專利名稱:智能卡的存儲器結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種智能卡的設(shè)計(jì),尤其涉及一種智能卡的存儲器結(jié)構(gòu)。
背景技術(shù):
現(xiàn)今,智能卡得到了非常廣泛的使用,如交通、酒店、金融及社保。正因?yàn)橛兄绱藦V泛的應(yīng)用,所以智能卡需要經(jīng)常更新或增加下載的程序以及經(jīng)常進(jìn)行大量的數(shù)據(jù)傳輸、加密和存儲。同時(shí)要求智能卡的能耗低,對CPU的運(yùn)算速度要求不高。因此,大部分的智能卡的CPU及存儲器結(jié)構(gòu)都是在標(biāo)準(zhǔn)的8051單片機(jī)的基礎(chǔ)上改進(jìn)得到的。
標(biāo)準(zhǔn)的8051單片機(jī)有五個(gè)獨(dú)立的存儲空間64K字節(jié)程序存儲器空間(0~0FFFFH);256個(gè)字節(jié)內(nèi)部RAM空間(0~0FFH);128個(gè)字節(jié)內(nèi)部特殊功能寄存器空間(80H~0FFH);位尋址空間(0~0FFH);64K字節(jié)外部數(shù)據(jù)存儲器空間(0~0FFFFH)。
程序存儲器空間為64K字節(jié),其地址指針為十六位的程序計(jì)數(shù)器PC。外部數(shù)據(jù)存儲器空間為64K字節(jié),其地址指針為十六位的數(shù)據(jù)指針DPTR。
但是面對日益復(fù)雜的應(yīng)用,數(shù)據(jù)存儲量增加,智能卡處理速度需要增加。需要擴(kuò)展的數(shù)據(jù)或代碼存儲空間包括程序存儲器和外部數(shù)據(jù)存儲器,同時(shí)指令的執(zhí)行速度要加快。標(biāo)準(zhǔn)8051的內(nèi)核顯然不能勝任。
而存儲空間的增加顯然不能通過增加程序計(jì)數(shù)器(PC)和數(shù)據(jù)指針(DPTR)的位數(shù)達(dá)到。因?yàn)檫@樣的做法不夠靈活,甚至無法達(dá)到某些應(yīng)用的要求。比如多個(gè)應(yīng)用程序在程序存儲器中共存時(shí),要求彼此在代碼和數(shù)據(jù)上完全隔離,依靠上述辦法就無法解決。
發(fā)明內(nèi)容
本實(shí)用新型需要解決的技術(shù)問題是提供了一種智能卡的存儲器結(jié)構(gòu),旨在解決目前在多個(gè)應(yīng)用程序在程序存儲器中共存時(shí),不能將彼此的代碼和數(shù)據(jù)上完全隔離的缺陷。
為了解決上述技術(shù)問題,本實(shí)用新型是通過以下技術(shù)方案實(shí)現(xiàn)的本實(shí)用新型的存儲器結(jié)構(gòu)包括存儲器管理單元(MMU),線性物理地址空間;所述的線性物理地址空間包括程序存儲器(ROM)和外部數(shù)據(jù)存儲器(XRAM)以及非易失性存儲器(NVM);將程序存儲器中的程序計(jì)數(shù)器和外部數(shù)據(jù)存儲器中的數(shù)據(jù)指針表示邏輯地址,設(shè)置八組映射關(guān)系,通過存儲器管理單元的控制來映射線性物理地址空間,每一組映射都可以在線性物理地址空間尋址。
與現(xiàn)有技術(shù)相比,本實(shí)用新型的有益效果是由于做到了映射關(guān)系在物理上彼此不重疊,可以將各種應(yīng)用程序的代碼和數(shù)據(jù)完全的隔離開來,大大增加了智能卡應(yīng)用的靈活性。
圖1是本實(shí)用新型的結(jié)構(gòu)示意圖;圖2是系統(tǒng)模式0-3組映射示意圖;圖3是應(yīng)用模式4-7組映射示意圖;圖4是邏輯段指針結(jié)構(gòu)示意圖;圖5是線性物理地址空間尋址示意圖;圖6是邏輯地址向線性物理地址空間的映射;圖7是邏輯段指針尋址示意圖;具體實(shí)施方式
以下結(jié)合附圖與具體實(shí)施方式
對本實(shí)用新型作進(jìn)一步詳細(xì)描述由圖1、2、3、4、5、6可見本實(shí)用新型的存儲器結(jié)構(gòu)包括存儲器管理單元1,線性物理地址空間2;所述的線性物理地址空間包括程序存儲器21和外部數(shù)據(jù)存儲器22以及非易失性存儲器23;將程序存儲器21中的程序計(jì)數(shù)器和外部數(shù)據(jù)存儲器22中的數(shù)據(jù)指針表示邏輯地址,設(shè)置八組映射關(guān)系,通過存儲器管理單元1的控制來映射線性物理地址空間2,每一組映射都可以在線性物理地址空間2尋址;所述的線性物理地址空間2是1M字節(jié),程序存儲器21的起始地址為00000H,結(jié)束地址為3FFFFH;外部數(shù)據(jù)存儲器22的起始地址為40000H,結(jié)束地址為7FFFFH;非易失性存儲器23的起始地址為80000H,結(jié)束地址為FFFFFH;所述的邏輯地址是將原先的代碼和數(shù)據(jù)尋址空間的地址作為邏輯地址,分別被劃分成兩個(gè)邏輯段,分別是邏輯程序存儲器地址空間和邏輯外部數(shù)據(jù)存儲器地址空間,每一個(gè)邏輯段的最大為32K字節(jié),尋址的范圍都是64K字節(jié);所述的八組映射關(guān)系是0-7組;所述的第0組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第1組映射是高32K字節(jié)范圍;所述的第2組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第3組映射是高32K字節(jié)范圍;所述的第4組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第5組映射是高32K字節(jié)范圍;
所述的第6組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第7組映射是高32K字節(jié)范圍;將0-3組映射關(guān)系歸于系統(tǒng)模式,4-7組映射關(guān)系歸于應(yīng)用模式;所述的邏輯段指針(映射關(guān)系)包括三個(gè)字節(jié),第一個(gè)字節(jié)是邏輯段的長度,第二、三個(gè)字節(jié)是邏輯段在線性物理地址空間2中的基址的高四位和低八位;所述的線性物理地址空間2是邏輯地址相對于邏輯段起始位置的偏移量加上基址;所述的通過存儲器管理單元1的控制來映射線性物理地址空間2是通過存儲器管理單元1來設(shè)置除第0組之外另外的7組、決定當(dāng)前應(yīng)使用的映射關(guān)系以及控制智能卡內(nèi)核的當(dāng)前模式是系統(tǒng)模式或者是應(yīng)用模式;所述的非易失性存儲器23可以是EEPROM。
本實(shí)用新型的控制方法通過以下步驟實(shí)現(xiàn)的將線性物理地址空間分為程序存儲器,外部數(shù)據(jù)存儲器以及非易失性存儲器;將程序存儲器中的程序計(jì)數(shù)器和外部數(shù)據(jù)存儲器中的數(shù)據(jù)指針表示邏輯地址,設(shè)置八組映射關(guān)系;通過存儲器管理單元的控制來映射線性物理地址空間,每一組映射都可以在線性物理地址空間尋址。
所述第一步中所述的線性物理地址空間是1M字節(jié),程序存儲器的起始地址為00000H,結(jié)束地址為3FFFFH;外部數(shù)據(jù)存儲器的起始地址為40000H,結(jié)束地址為7FFFFH;EEPROM的起始地址為80000H,結(jié)束地址為FFFFFH;所述的第二步中邏輯地址是將原先的代碼和數(shù)據(jù)尋址空間的地址作為邏輯地址,分別被劃分成兩個(gè)邏輯段,分別是邏輯程序存儲器地址空間和邏輯外部數(shù)據(jù)存儲器地址空間,每一個(gè)邏輯段的最大為32K字節(jié),尋址的范圍都是64K字節(jié);所述的八組映射關(guān)系是0-7組;所述的第0組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第1組映射是高32K字節(jié)范圍;所述的第2組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第3組映射是高32K字節(jié)范圍;所述的第4組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第5組映射是高32K字節(jié)范圍;所述的第6組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第7組映射是高32K字節(jié)范圍;將0-3組映射關(guān)系歸于系統(tǒng)模式,4-7組映射關(guān)系歸于應(yīng)用模式;所述的邏輯段指針(映射關(guān)系)包括三個(gè)字節(jié),第一個(gè)字節(jié)是邏輯段的長度,第二、三個(gè)字節(jié)是邏輯段在線性物理地址空間中的基址的高四位和低八位;所述的線性物理地址空間是邏輯地址相對于邏輯段起始位置的偏移量加上基址;所述的第三步中是通過存儲器管理單元來設(shè)置除第0組之外另外的7組、決定當(dāng)前應(yīng)使用的映射關(guān)系以及控制智能卡內(nèi)核的當(dāng)前模式是系統(tǒng)模式或者是應(yīng)用模式下面對本實(shí)用新型的原理作如下描述本實(shí)用新型提出了一種存儲器映射的概念,即程序計(jì)數(shù)器和數(shù)據(jù)指針表示邏輯地址,通過存儲器管理單元來映射一個(gè)1M字節(jié)的線性物理地址空間。線性物理地址空間包含了程序存儲器和外部數(shù)據(jù)存儲器以及永久保存數(shù)據(jù)或者代碼的非易失性存儲器(NVM,本實(shí)用新型中使用的是EEPROM)。為了增加靈活性,一共設(shè)置了八組映射關(guān)系。每一組映射(第0組外)都可以在線性的物理地址空間任意尋址,這樣八組映射各自獨(dú)立的映射到特定的物理地址。由于EEPROM可擦寫并可以在掉電時(shí)保存數(shù)據(jù),這樣就可以在出廠后在其中隨意的燒入應(yīng)用程序,大大增加了智能卡應(yīng)用的靈活性。同時(shí)只要做到映射關(guān)系在物理上彼此不重疊,就可以將各種應(yīng)用程序的代碼和數(shù)據(jù)完全的隔離開來。MMU設(shè)計(jì)當(dāng)中為了表明當(dāng)前使用的映射關(guān)系,設(shè)置了一個(gè)指針,該指針判斷程序計(jì)數(shù)器(PC)和指令執(zhí)行的狀態(tài)來指向相應(yīng)的映射,通過這個(gè)指針進(jìn)行物理地址的尋址。
存儲器管理單元控制著映射關(guān)系的使用,決定當(dāng)前應(yīng)使用的映射關(guān)系。同時(shí)通過判斷指令的執(zhí)行和程序計(jì)數(shù)器的位置,MMU控制著智能卡內(nèi)核的當(dāng)前模式。
共有兩種模式系統(tǒng)模式和應(yīng)用模式。系統(tǒng)模式下使用第0~3組映射關(guān)系,應(yīng)用模式下使用第4~7組映射關(guān)系。
系統(tǒng)模式下,邏輯程序存儲器地址空間的低32K字節(jié)范圍使用第0組映射,高32K字節(jié)范圍使用第1組映射;邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍使用第2組映射,高32K字節(jié)范圍使用第3組映射。
應(yīng)用模式下,邏輯程序存儲器地址空間的低32K字節(jié)范圍使用第4組映射,高32K字節(jié)范圍使用第5組映射;邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍使用第6組映射,高32K字節(jié)范圍使用第7組映射。
在MMU的設(shè)計(jì)中采用了邏輯段指針,即寄存器,用來指明當(dāng)前所使用的映射組。邏輯段指針用于邏輯地址,程序存儲器地址空間和外部數(shù)據(jù)存儲器地址空間各一個(gè)指針。程序存儲器段指針可以是0、1、4和5,外部數(shù)據(jù)存儲器段指針可以是2、3、6和7。
八組映射關(guān)系分別對應(yīng)著八組可以修改的寄存器。一組寄存器為三個(gè)字節(jié),第一個(gè)字節(jié)指出了邏輯段的長度,第二、三個(gè)字節(jié)指出邏輯段在物理存儲器地址空間中的基址的高四位和低八位。邏輯地址相對于邏輯段起始位置的偏移量加上基址就是最終需要的物理地址。
程序存儲器的起始地址為00000H,結(jié)束地址為3FFFFH;外部數(shù)據(jù)存儲器的起始地址為40000H,結(jié)束地址為7FFFFH;非易失性存儲器的起始地址為80000H,結(jié)束地址為FFFFFH。在此基礎(chǔ)上可以計(jì)算出ROM最大為256K字節(jié),XRAM最大為256K字節(jié),EEPROM最大為512K字節(jié)。這只是能夠適應(yīng)當(dāng)前應(yīng)用環(huán)境下的設(shè)置,只要芯片的生產(chǎn)技術(shù)和設(shè)計(jì)能力允許,完全可以繼續(xù)擴(kuò)充物理地址空間。
物理ROM存儲器的開始包含中斷入口地址和中斷向量,只有從這里才能進(jìn)入中斷服務(wù)程序(ISR)。
為了能夠在標(biāo)準(zhǔn)8051尋址能力的基礎(chǔ)上擴(kuò)充尋址的范圍,標(biāo)準(zhǔn)8051的代碼和數(shù)據(jù)地址作為邏輯地址通過存儲器管理單元(MMU)的映射去尋址物理存儲器空間的特定部分。邏輯代碼和外部數(shù)據(jù)地址空間分別被劃分成32K字節(jié)的兩段,使用不同的映射關(guān)系尋址物理存儲器。系統(tǒng)模式和應(yīng)用模式下各使用四組映射關(guān)系。系統(tǒng)模式下使用第0~3組映射關(guān)系,應(yīng)用模式下使用第4~7組映射關(guān)系。系統(tǒng)模式提供給操作系統(tǒng)使用,操作系統(tǒng)分配應(yīng)用程序使用的各類資源、響應(yīng)應(yīng)用程序的系統(tǒng)調(diào)用以及劃分應(yīng)用程序使用的代碼和數(shù)據(jù)的物理存儲器。因此,第0組映射關(guān)系即系統(tǒng)模式下從邏輯0地址起始的32K字節(jié)的邏輯尋址空間固定的映射到物理存儲器地址空間的0地址開始的32K字節(jié)空間,也就是物理ROM存儲器的低32K字節(jié)。這樣只有在系統(tǒng)模式下才能進(jìn)入中斷服務(wù)程序,保證中斷的調(diào)用由操作系統(tǒng)監(jiān)控。應(yīng)用模式下使用不同于系統(tǒng)模式的另外四組映射關(guān)系,系統(tǒng)模式下會事先設(shè)置好這四組映射關(guān)系。
八組映射關(guān)系實(shí)際是八組寄存器。每一組寄存器包含三個(gè)字節(jié)的數(shù)據(jù),第一個(gè)字節(jié)指出了邏輯段的長度,第二、三個(gè)字節(jié)指出邏輯段在物理存儲器地址空間中的基址的高四位和低八位。邏輯段最大為32K字節(jié),以256個(gè)字節(jié)為跨度,所以指定長度字節(jié)的低7位就可以確定邏輯段的大小,高位留待將來擴(kuò)充?;饭灿?2位有效位,也以256個(gè)字節(jié)為跨度,所以基址可以在大小為1M字節(jié)的物理存儲空間里定位。高位基址留待將來擴(kuò)充時(shí)使用。
在使用某一組映射關(guān)系時(shí)物理地址的計(jì)算方法。邏輯地址PC或者DPTR相對邏輯段的起始位置取偏移量的低15位,基址地址右邊加上八位0,與偏移量相加之后就得到了對應(yīng)的物理地址。
八組寄存器除第0組之外其余都可以設(shè)置,而對于邏輯段向物理地址空間的映射沒有任何限制。因此可以通過設(shè)置映射關(guān)系將邏輯代碼映射到到ROM以及XRAM和NVM,即代碼將從XRAM或NVM中執(zhí)行,同理我們也可以把邏輯外部數(shù)據(jù)映射到XRAM和NVM以及ROM,這樣外部數(shù)據(jù)就可以從ROM存儲的代碼中取出??梢园褢?yīng)用程序的代碼存儲在NVM中,需要執(zhí)行時(shí),只要將邏輯代碼映射到NVM就可以從其中執(zhí)行。NVM中的代碼可以根據(jù)不同的應(yīng)用更新,當(dāng)應(yīng)用發(fā)生變化時(shí)也可以修改代碼后重新下載??梢钥吹竭@種存儲器映射的結(jié)構(gòu)具有非常大的靈活性。
此外,第4~7組映射關(guān)系是專門分配給應(yīng)用程序使用的。映射寄存器中的數(shù)據(jù)是操作系統(tǒng)事先分配好的,只要映射的設(shè)置在物理上不重疊,就可以保證應(yīng)用程序的代碼和數(shù)據(jù)彼此之間被完全的隔離開來。這一點(diǎn)體現(xiàn)了這種存儲器映射結(jié)構(gòu)的的安全性。
存儲器管理單元處在CPU和物理儲存器之間,它確定當(dāng)前CPU的操作模式,并根據(jù)模式選擇正確的代碼或者數(shù)據(jù)映射關(guān)系。在MMU的設(shè)計(jì)中,為了正確指明當(dāng)前應(yīng)該使用的代碼或數(shù)據(jù)映射關(guān)系,我們引入了邏輯段指針的概念。段指針指出當(dāng)前應(yīng)該使用第幾組映射關(guān)系將邏輯地址映射到物理地址。一共有兩個(gè)段指針,一個(gè)代碼段指針,另一個(gè)是數(shù)據(jù)段指針。如圖7所示,如果當(dāng)前處在系統(tǒng)模式下,PC位于邏輯地址8000H~FFFFH之間時(shí),代碼段指針應(yīng)該置為1,即使用第1組映射關(guān)系來尋址物理地址,而DPTR位于邏輯數(shù)據(jù)地址0000H~7FFFH之間時(shí),數(shù)據(jù)段指針應(yīng)該置為2,即使用第2組映射關(guān)系來尋址物理地址。同理在應(yīng)用模式下時(shí),代碼段指針應(yīng)置為5,數(shù)據(jù)段指針應(yīng)置為6。
段指針實(shí)際上是寄存器,通過判斷模式轉(zhuǎn)換的條件相應(yīng)的變換取值。段指針的概念使設(shè)計(jì)的代碼簡單易懂、清楚明了,而且編程時(shí)思路非常的清晰。
本實(shí)用新型的存儲器結(jié)構(gòu)具有良好的擴(kuò)充能力。映射寄存器組中的物理基址字段實(shí)際上只使用了12位,如果將其全部16位都利用起來的話,最大可以尋址16M字節(jié)的物理存儲器地址空間。而邏輯段長度字段使用了7位,如果使用8位邏輯段的最大長度為64K字節(jié),如果只使用6位,那么邏輯段的最大長度為16K字節(jié)。這樣就可以適應(yīng)不同復(fù)雜程度的應(yīng)用。
綜上所述,本實(shí)用新型相對于現(xiàn)有智能卡存儲器管理技術(shù)的優(yōu)點(diǎn)在于,大大增加了存儲器空間,可以容納多個(gè)應(yīng)用程序,應(yīng)用程序彼此間以及應(yīng)用程序和操作系統(tǒng)間在代碼和數(shù)據(jù)上完全隔離,安全性高,同時(shí)還具有很強(qiáng)的擴(kuò)展能力。
權(quán)利要求1.一種智能卡的存儲器結(jié)構(gòu),其特征在于包括存儲器管理單元(1),線性物理地址空間(2);所述的線性物理地址空間包括程序存儲器(21)和外部數(shù)據(jù)存儲器(22)以及非易失性存儲器(23);將程序存儲器(21)中的程序計(jì)數(shù)器和外部數(shù)據(jù)存儲器(22)中的數(shù)據(jù)指針表示邏輯地址,設(shè)置八組映射關(guān)系,通過存儲器管理單元(1)的控制來映射線性物理地址空間(2),每一組映射都可以在線性物理地址空間(2)尋址。
2.根據(jù)權(quán)利要求1所述的智能卡的存儲器結(jié)構(gòu),其特征在于所述的線性物理地址空間(2)是1M字節(jié),程序存儲器(21)的起始地址為00000H,結(jié)束地址為3FFFFH;外部數(shù)據(jù)存儲器(22)的起始地址為40000H,結(jié)束地址為7FFFFH;非易失性存儲器(23)的起始地址為80000H,結(jié)束地址為FFFFFH;所述的邏輯地址是將原先的代碼和數(shù)據(jù)尋址空間的地址作為邏輯地址,分別被劃分成兩個(gè)邏輯段,分別是邏輯程序存儲器地址空間和邏輯外部數(shù)據(jù)存儲器地址空間,每一個(gè)邏輯段的最大為32K字節(jié),尋址的范圍都是64K字節(jié);所述的八組映射關(guān)系是0-7組;所述的第0組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第1組映射是高32K字節(jié)范圍;所述的第2組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第3組映射是高32K字節(jié)范圍;所述的第4組映射是邏輯程序存儲器地址空間的低32K字節(jié)范圍;所述的第5組映射是高32K字節(jié)范圍;所述的第6組映射是邏輯外部數(shù)據(jù)存儲器地址空間的低32K字節(jié)范圍;所述的第7組映射是高32K字節(jié)范圍;將0-3組映射關(guān)系歸于系統(tǒng)模式,4-7組映射關(guān)系歸于應(yīng)用模式;所述的邏輯段指針(映射關(guān)系)包括三個(gè)字節(jié),第一個(gè)字節(jié)是邏輯段的長度,第二、三個(gè)字節(jié)是邏輯段在線性物理地址空間2中的基址的高四位和低八位;所述的線性物理地址空間2是邏輯地址相對于邏輯段起始位置的偏移量加上基址;所述的通過存儲器管理單元1的控制來映射線性物理地址空間2是通過存儲器管理單元1來設(shè)置除第0組之外另外的7組、決定當(dāng)前應(yīng)使用的映射關(guān)系以及控制智能卡內(nèi)核的當(dāng)前模式是系統(tǒng)模式或者是應(yīng)用模式。
3.根據(jù)權(quán)利要求1或2所述的智能卡的存儲器結(jié)構(gòu),其特征在于所述的非易失性存儲器23可以是EEPROM。
專利摘要本實(shí)用新型涉及一種智能卡的存儲器結(jié)構(gòu),本實(shí)用新型的結(jié)構(gòu)包括存儲器管理單元(1),線性物理地址空間(2);所述的線性物理地址空間包括程序存儲器(21)和外部數(shù)據(jù)存儲器(22)以及非易失性存儲器(23);將程序存儲器(21)中的程序計(jì)數(shù)器和外部數(shù)據(jù)存儲器(22)中的數(shù)據(jù)指針表示邏輯地址,設(shè)置八組映射關(guān)系,通過存儲器管理單元(1)的控制來映射線性物理地址空間(2),每一組映射都可以在線性物理地址空間(2)尋址;本實(shí)用新型的有益效果是由于做到了映射關(guān)系在物理上彼此不重疊,可以將各種應(yīng)用程序的代碼和數(shù)據(jù)完全的隔離開來,大大增加了智能卡應(yīng)用的靈活性。
文檔編號G06K19/077GK2678026SQ03255249
公開日2005年2月9日 申請日期2003年7月4日 優(yōu)先權(quán)日2003年7月4日
發(fā)明者郭俊, 周江, 印義言 申請人:上海華園微電子技術(shù)有限公司