專利名稱:具有用于依據(jù)應(yīng)用可重新裝入程序的存儲器的芯片卡的制作方法
芯片卡常常有一個數(shù)據(jù)存儲器,這種存儲器例如以一種層次文件系統(tǒng)的形式被組織,并且尤其以一種EEPROM存儲器模塊的形式被提供。而且,特別是芯片卡的數(shù)據(jù)存儲器也適于作為一種依據(jù)應(yīng)用可重新裝入程序的存儲器。在芯片卡被制成之后,以及特別是它被個性化或初始化之后,程序的重新裝入允許以后的尤其是例行程序或文件,諸如編碼算法的重新裝入,這些重新裝入的內(nèi)容只有芯片卡的應(yīng)用提供者才知道,而芯片卡的制造者是不知道的。用于矯錯或擴(kuò)展例行程序,尤其是用于芯片卡的運(yùn)行系統(tǒng)的程序也可以在以后被重新裝入。例如,需要用高昂費(fèi)用去完成對帶有諸多缺點(diǎn)的芯片卡運(yùn)行系統(tǒng)的一個ROM存儲器模塊的重新設(shè)計的工作就可以因此被免除,因為用于糾錯的例行程序可以被重新裝入。例如,依據(jù)應(yīng)用也可以將應(yīng)用程序及使用者的程序重新裝入。
在芯片卡的情況下,這里有一個問題,對于通常是被創(chuàng)建在芯片卡編碼的水平上,尤其是在機(jī)器命令的水平上的程序,只有那些有著絕對地址參數(shù)的命令指令才是可利用的程序。這是一些有一個絕對存儲器地址系統(tǒng)的命令指令,芯片卡的存儲器中的訪問地址被直接指定在這個絕對存儲器地址系統(tǒng)內(nèi),并且它是與相應(yīng)的命令指令自身的存儲器地址無關(guān)的。在芯片卡中,通常被用在PC系統(tǒng)中并有一個相關(guān)的存儲器編址系統(tǒng)的那些命令指令是全然不能利用的,或者僅對一個非常受限制的范圍是可以用的,因而在用于芯片卡的程序的情況下必須依靠有一個絕對存儲器編址系統(tǒng)的命令指令。在有絕對地址參數(shù)的芯片卡的情況下,這樣一些命令指令是,尤其是,跳轉(zhuǎn)指令、移位指令或者地址指令,例如所謂的‘MOV_DPTR’,‘#adrs’,‘LCALL_adrs’或者‘LJMP_adrs’命令指令。
當(dāng)一個可重新裝入的程序用適于芯片卡的有絕對地址參數(shù)的命令指令被創(chuàng)建的時候,被提供的存儲區(qū)域因此必須是要知道的,特別是程序?qū)⒈恢匦卵b入的初始地址是要知道的。
如果程序是被貯存在存儲器的另一個地址,那么就必須去適配有絕對地址參數(shù)的特定的命令指令。因此有,特別是,兩組有絕對地址參數(shù)的命令指令是可以利用的。第一組命令指令是與在存儲器中程序占據(jù)的存儲區(qū)域無關(guān)的,特別是因為地址參數(shù)涉及不被可重新裝入的程序占據(jù)的存儲區(qū)域,例如涉及芯片卡的運(yùn)行系統(tǒng)。另一方面,第二組命令指令是與在存儲器中程序占據(jù)的存儲區(qū)域有關(guān)系的,特別是因為地址參數(shù)涉及被可重新裝入的程序占據(jù)的存儲區(qū)域。如果程序被移轉(zhuǎn),第二組命令指令的地址參數(shù)就必須與此適配,而第一組命令指令的地址參數(shù)必須保持是不變的。
這里的一個問題是,有絕對地址參數(shù)的命令指令可以是與存儲器中可重新裝入的程序的存儲區(qū)域無關(guān)的或者是有關(guān)系的。對于有絕對地址參數(shù)的命令指令,第一組與第二組之間的區(qū)別在這里不依賴于相應(yīng)的命令指令的類型。已經(jīng)知道可能的不利情況是,在一種用于芯片卡的可重新裝入的程序的實際創(chuàng)建期間,相應(yīng)的可重新裝入的程序的一種特定方案,它考慮了在芯片卡存儲器中它的相應(yīng)的相關(guān)應(yīng)用安排,被創(chuàng)建用于可以被提供的任何可預(yù)見到的應(yīng)用。
特別不利的是,這樣一種程序的適應(yīng)在芯片卡的存儲器中的依據(jù)應(yīng)用的存儲區(qū)域通常尤其是不可能被使用者自己完成,因為使用者常常不知道可重新裝入的程序的結(jié)構(gòu),或者也完全不應(yīng)知道。特別是,費(fèi)力的程序修改必須由可重新裝入的程序的制造者“人工地”或用特定的程序編制器或者解釋機(jī)來完成。
本發(fā)明的目的是要給定一種具有用于依據(jù)應(yīng)用可再裝入程序的存儲器的芯片卡,它使有關(guān)程序更有利地適配芯片卡存儲器中其依據(jù)應(yīng)用的存儲區(qū)的占用成為可能。
用權(quán)利要求1中給定的芯片卡,實現(xiàn)了本發(fā)明的目的。
依據(jù)本發(fā)明的芯片卡的一個優(yōu)點(diǎn)是,在創(chuàng)建一個有絕對地址參數(shù)的命令指令的可重新裝入的程序期間,僅需要去創(chuàng)建一個單一的程序方案。這個基本的程序方案而后作為依據(jù)應(yīng)用可以被重新裝到芯片卡中,并且尤其可以通過芯片卡自己可被裝入或可被形成,即可與依據(jù)應(yīng)用所占據(jù)的存儲區(qū)域適配。
特別有利的是,依據(jù)本發(fā)明,被可重新裝入的程序占據(jù)的存儲區(qū)域,具有一個第一存儲單元和一個第二存儲單元,用于分隔至少有絕對地址參數(shù)的命令指令,它涉及被程序占據(jù)的存儲區(qū)域,及沒有被程序占據(jù)的存儲區(qū)域。因此,必要的可重新裝入的程序的調(diào)整以適應(yīng)被它占據(jù)的存儲區(qū)域,即,程序的必要的調(diào)整尤其是適應(yīng)其依據(jù)應(yīng)用的初始地址,可以有利地通過芯片卡的程序執(zhí)行單元完全完成。為了重新裝入一個程序,一個芯片卡的使用者因此有利地不需要程序結(jié)構(gòu)的詳細(xì)知識,其結(jié)果特別是,也可能重新裝入甚至是涉及芯片卡安全的程序,并且其內(nèi)部結(jié)構(gòu)對使用者不應(yīng)該是已知的。
本發(fā)明的其他一些有利的具體實例在從屬權(quán)利要求中被詳細(xì)說明。
參照在下面被簡單描述的附圖中給出的實施例對本發(fā)明作進(jìn)一步說明,其中
圖1給出了依據(jù)本發(fā)明的芯片卡的結(jié)構(gòu)示意圖,有程序執(zhí)行單元和存儲器,在存儲器中依據(jù)應(yīng)用可以被重新裝入的程序被貯存,所說的程序有第一和第二命令指令,這些指令有絕對地址參數(shù),以及圖2給出了一個可重新裝入的程序結(jié)構(gòu)示意圖,由該程序的第一和第二命令指令,在被可重新裝入的程序占據(jù)的存儲區(qū)域的第一和第二分區(qū)中被分隔開。
圖1給出了,作為例子,有一個程序執(zhí)行單元P和一個存儲器S的依據(jù)本發(fā)明的芯片卡CK的結(jié)構(gòu)示意圖。存儲器S具有至少一個依據(jù)應(yīng)用可以重新裝入的程序,其中在圖1中作為例子示出用參考符號P1到Pn表示的依據(jù)應(yīng)用的被重新裝入到存儲器S中的程序。這些可重新裝入的程序P1到Pn的每一個程序,以在存儲器S中被重新裝入的狀態(tài),占據(jù)一個特定的存儲區(qū)域B1到Bn,它們的每一個都有,特別是,一個初始地址SA1到SAn。本發(fā)明將在下面被描述,特別是根據(jù)可重新裝入的程序P1的例子來進(jìn)行描述。
可重新裝入的程序P1有用OP1表示的第一命令指令,它有絕對地址參數(shù)A1,該絕對地址參數(shù)指出未被可重新裝入的程序P1到Pn占據(jù)的存儲區(qū)域。例如,對于圖1中說明的可重新裝入的程序P1而言,這些是存儲器S的那些存儲區(qū)域,即在存儲區(qū)域B1外邊的那些存儲區(qū)域。經(jīng)地址參數(shù)A1被要求的第一命令指令OP1的絕對編址標(biāo)記在圖1中作為例子用箭頭J1表示。
此外,可重新裝入的程序P1具有用OP2表示的第二命令指令,該第二命令指令有指出存儲區(qū)域B1的絕對地址參數(shù)A2,該存儲區(qū)域B1被可重新裝入的程序P1占據(jù)。經(jīng)地址參數(shù)A2被要求的第二命令指令OP2的絕對編址標(biāo)記在圖1中作為例子用箭頭J2表示。
在圖2中,依據(jù)本發(fā)明的芯片卡CK的可重新裝入的程序P1作為例子被示出,所說的程序P1占據(jù)依據(jù)本發(fā)明的芯片卡CK的存儲器S的存儲區(qū)域B1。在圖1中有相應(yīng)的參考符號OP1和OP2的第一和第二命令指令,在圖2中作為例子則分別有參考符號OP11到OP1z和OP21到OP2x,分別有絕對地址adr11到adr1z和adr21到adr2x。在存儲器S中可重新裝入的程序P1占據(jù)的存儲區(qū)域B1,依據(jù)本發(fā)明有一個第一分區(qū)NLA1和至少一個第二分區(qū)LA1。這里,依據(jù)本發(fā)明,第一命令指令OP11到OP1z被安排在第一分區(qū)NLA1中,而第一命令指令OP11到OP1z的絕對地址參數(shù)adr11到adr1z指出沒被可重新裝入的程序P1占據(jù)的存儲區(qū)域。第一命令指令OP11和OP1y到?jīng)]有被可重新裝入的程序P1占據(jù)的存儲區(qū)域的編址標(biāo)記在圖2中作為例子分別用箭頭J4和J5表示。第二命令指令OP21到OP2x依據(jù)本發(fā)明被安排在第二分區(qū)LA1中,第二命令指令OP21到OP2x的絕對地址參數(shù)adr21到adr2x指出被可重新裝入的程序P1占據(jù)的存儲區(qū)域B1。第二命令指令OP21到OP2x到被可重新裝入的程序P1占據(jù)的存儲區(qū)域B1的編址標(biāo)記在圖2中作為例子分別用箭頭J6和J7表示。
在圖2中以示意圖形式表示的可重新裝入的程序P1的結(jié)構(gòu),當(dāng)然是可用于在圖1中給出的程序P1到Pn的,依據(jù)本發(fā)明可以被重新裝入并占據(jù)存儲器S中的存儲區(qū)域B1到Bn。所說的存儲區(qū)域B1到Bn分別有第一和第二分區(qū)NLA1到NLAn和LA1到LAn,它們在圖1中被表示出。
參照圖2中給出的具體示范實例將對本發(fā)明進(jìn)行更詳細(xì)的說明。在這里,依據(jù)本發(fā)明,程序執(zhí)行單元P修改,例如,第二命令指令OP21到OP2x的那些地址參數(shù)adr21到adr2x,該第二命令指令OP21到OP2x在把程序P1重新裝入到存儲區(qū)域B1期間被安排在第二分區(qū)LA1,存儲區(qū)域B1依據(jù)應(yīng)用被占據(jù)。依據(jù)本發(fā)明出現(xiàn)的,分別為OP11到OP1z和OP21到OP2x的第一和第二命令指令的有利分類,作為其結(jié)果,只有被安排在第二命令指令單元LA1中的第二命令指令OP21到OP2x的那些地址參數(shù)必須被修改。尤其是,第二命令指令OP21到OP2x的修改依據(jù)存儲區(qū)域B1的一種初始地址SA1而被完成,而該存儲區(qū)域B1被重新裝入的程序P1占據(jù)。另一方面,因為所說的地址參數(shù)adr11到adr1z涉及存儲區(qū)域B1外邊的存儲區(qū)域,所以對于被安排在第一分區(qū)NLA1中的第一命令指令OP11到OP1z的地址參數(shù)adr11到adr1z來說,程序執(zhí)行單元P沒有執(zhí)行任何調(diào)整。
例如,在重新裝入之前,程序P1首先以用于初始地址的十六進(jìn)位制的形式0000h被創(chuàng)建。在程序P1被重新裝入依據(jù)應(yīng)用的初始地址SA1之后,程序執(zhí)行單元P把初始地址SA1的值全部加到第二命令指令OP21到OP2x的所有地址參數(shù)adr21到adr2x上,該第二命令指令被安排在第二分區(qū)LA1。作為一個結(jié)果,地址參數(shù)adr21到adr2x的絕對編址標(biāo)記,并且因此程序P1的運(yùn)行能力,被保持。
由于在一個程序中的命令指令之間的程序技術(shù)關(guān)系,尤其是語義關(guān)系,它尤其可能必須也能夠從重新裝入的程序P1的部分去訪問被占據(jù)的存儲區(qū)域B1外邊的存儲區(qū)域,重新裝入的程序P1被貯存在第二分區(qū)LA1中。在本發(fā)明的一個有利的實施例中,用被安排在第一分區(qū)NLA1中的第一命令指令OP11到OP1z通過在第二分區(qū)LA1中的第二命令指令OP21到OP2x,對存儲區(qū)域的一個程序技術(shù)的訪問被完成,而存儲區(qū)域是沒被可重新裝入的程序P1占據(jù)的。這一點(diǎn)在下面參照有參考符號OP21的一個第二命令指令OP21的例子將被說明。被安排在第二分區(qū)LA1中的第二命令指令OP21的絕對地址參數(shù)adr21在這里指出被安排在第一分區(qū)NLA1中的一個第一命令指令OP1y,正如在圖2中作為例子用箭頭J6表示出來的那樣。相應(yīng)的第一命令指令OP1y的絕對地址參數(shù)adr1y涉及存儲區(qū)域,即,尤其是,涉及將要對其進(jìn)行程序技術(shù)的訪問的存儲器S的存儲地址,正如在圖2中的示例用箭頭J5表示出來的那樣。特別是,一個有第一命令指令OP1y到OP1z的跳轉(zhuǎn)表格T被有利地安排在第一分區(qū)NLA1,借助它,被安排在第二分區(qū)LA1中的第二命令指令OP21到OP2x的一個對存儲區(qū)域的程序技術(shù)的訪問可以被執(zhí)行,而該存儲區(qū)域沒有被可重新裝入的程序P1占據(jù),這些正是,例如,芯片卡的存儲區(qū)域,運(yùn)行系統(tǒng)例行程序被貯存在這里。
下面將參照圖1和圖2對本發(fā)明的另外的有利的實例進(jìn)行更詳細(xì)的說明。
在本發(fā)明的另一個有利的實施例中,芯片卡CK的存儲器S有一個第一存儲分部S1,可重新裝入的程序P1到Pn的第一命令指令OP1的地址參數(shù)涉及第一存儲分部S1。此外,存儲器S有利地有至少一個第二存儲分部S2,可重新裝入的程序P1到Pn占據(jù)的存儲區(qū)域B1到Bn被裝在其中。特別是,芯片卡CK的運(yùn)行系統(tǒng)程序BS優(yōu)先被貯存在存儲器S的第一存儲分部S1中。第一存儲分部S1和第二存儲分部S2是芯片卡的,特別是,物理上不同的存儲器,例如ROM模塊形式的一個只讀存儲器或EEROM模塊形式的一個讀/寫存儲器。例如,當(dāng)在芯片卡CK制造期間運(yùn)行系統(tǒng)程序BS可能已經(jīng)被貯存在存儲器S的第一存儲分部S1中時,程序P1到Pn依據(jù)應(yīng)用可以隨后被重新裝入到第二存儲分部S2中。分別與第一和第二存儲分部S1和S2無關(guān),芯片卡CK的存儲器S可以有利地使全面的存儲器編址一個系統(tǒng),例如從十六進(jìn)位制的0000h到十六進(jìn)位制的FFFFh。
在本發(fā)明的一個有利的實施例中,至少存儲區(qū)域B1到Bn的第一分區(qū)NLA1到NLAn的值被貯存在芯片卡的存儲器S中,存儲區(qū)域B1到Bn被可重新裝入的程序P1到Pn占據(jù)。第一分區(qū)NLA1到NLAn的值被有利地貯存在相應(yīng)的被占據(jù)的存儲區(qū)域B1到Bn,正如在圖2中作為例子對程序P1用參考符號L1表示出來的那樣。此外,尤其是,貯存第二分區(qū)LA1到Lan的值也是可能的,正如在圖2中作為例子對程序P1用參考符號L2所表示的那樣。
權(quán)利要求
1.一種芯片卡(CK),有一個程序執(zhí)行單元(P)和一個用于至少一個依據(jù)應(yīng)用可重新裝入的程序(P1...Pn)的存儲器(S),a)在存儲器(S)中可重新裝入的程序(P1...Pn)在被重新裝入的狀態(tài)占據(jù)一個特定的存儲區(qū)域(B1...Bn),并有至少a1)有絕對地址參數(shù)(A1,adr11...adr1z)的第一命令指令(OP1,OP11...OP1z),該絕對地址參數(shù)指出沒有被可重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(S1),和a2)有絕對地址參數(shù)(A2,adr21…adr2x)的第二命令指令(OP2,OP21…OP2x),該絕對地址參數(shù)指出被可重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(B1...Bn),和其中b)在存儲器(S)中被可重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(B1…Bn),有一個第一分區(qū)(NLA)和至少一個第二分區(qū)(LA),其中b1)第一命令指令(OP1,OP11…OP1z)被安排在第一分區(qū)(NLA1…NLAn),和b2)第二命令指令(OP2,OP21...OP2x)被安排在第二分區(qū)(LA1…Lan),以及c)程序執(zhí)行單元(P)調(diào)整被安排在第二分區(qū)(LA1…LAn)中的第二命令指令(OP2,OP21…OP2x)的地址參數(shù)(A2,adr21…adr2x),當(dāng)程序(P1...Pn)重新裝入時以適應(yīng)按應(yīng)用被占據(jù)的存儲區(qū)域(B1...Bn)。
2.依據(jù)權(quán)利要求1的芯片卡(CK),第二命令指令(OP2,OP21...OP2x)的地址參數(shù)(A2,adr21...adr2x)適配依據(jù)被重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(B1...Bn)的一種初始地址(SA1...SAn)來實現(xiàn)。
3.依據(jù)權(quán)利要求1或2的芯片卡(CK),通過第二命令指令(OP21)對沒有被可重新裝入的程序(P1)占據(jù)的存儲區(qū)域(S1)的一種程序技術(shù)的訪問(J5,J6)由于下列事實而發(fā)生a)被安排在第二分區(qū)(LA)中的第二命令指令(OP21)的絕對地址參數(shù)(adr21)指向(J6)被安排在第一分區(qū)(NLA1)中的第一命令指令(OP1y,T),和b)被安排在第一分區(qū)(NLA1)中的相應(yīng)的第一命令指令(OP1y,T)的絕對地址參數(shù)(adrly)指向存儲區(qū)域(S1),程序技術(shù)的訪問(J5,J6)應(yīng)該到存儲區(qū)域(S1)實現(xiàn)。
4.依據(jù)前面權(quán)利要求之一的芯片卡(CK),其中存儲器(S)有a)一個第一存儲分部(S1),可重新裝入的程序(P1...Pn)的第一命令指令(OP1,OP11...OP1z)的地址參數(shù)(A1,adr11...adr1z)指向該第一存儲分部,和b)至少一個第二存儲分部(S2),被可重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(B1...Bn)位于該存儲部分內(nèi)。
5.依據(jù)權(quán)利要求4的芯片卡(CK),其中芯片卡(CK)的一個運(yùn)行系統(tǒng)程序(BS)被儲存在第一存儲分部(S1)中。
6.依據(jù)權(quán)利要求4或5之一的芯片卡(CK),其中第一存儲分部(S1)和第二存儲分部(S2)是芯片卡(CK)的物理上不同的存儲器。
7.依據(jù)前面的權(quán)利要求之一的芯片卡(CK),其中至少被可重新裝入的程序(P1...Pn)占據(jù)的存儲區(qū)域(B1...Bn)的第一分區(qū)(NLA1...NLAn)的值被貯存(L1)在存儲器(S)中。
全文摘要
依據(jù)本發(fā)明的芯片卡(CK)有一個程序執(zhí)行單元(P)和一個用于至少一個依據(jù)應(yīng)用可以重新裝入的程序(P1…Pn)的存儲器(S),在每個可重新裝入的程序(P1…Pn)中,有絕對地址參數(shù)(adr11…adr1z)的第一命令指令(OP11…OP1z)是與有絕對地址參數(shù)(adr21…adr2x)的第二命令指令(OP21…OP2x)分隔開的,絕對地址參數(shù)(adr11…adr1z)指示存儲區(qū)域(S1)并且存儲區(qū)域(S1)沒被可重新裝入的程序(P1…Pn)占據(jù),而絕對地址參數(shù)(adr21…adr2x)指出存儲區(qū)域(B1…Bn),并且存儲區(qū)域(B1…Bn)被可重新裝入的程序(P1…Pn)所占據(jù)。通過程序執(zhí)行單元(P),可重新裝入的程序依據(jù)應(yīng)用被重新裝入到存儲器(S)中的任何要求的初始地址(SA1…SAn),并且被調(diào)整到所說的初始地址(SA1…SAn)是有利地可能的。特別是,對于可能的涉及應(yīng)用的初始地址,需要去創(chuàng)建不同的可重新裝入的程序方案的工作可以有利地被省去。
文檔編號G06F9/445GK1269898SQ98808948
公開日2000年10月11日 申請日期1998年8月27日 優(yōu)先權(quán)日1997年9月9日
發(fā)明者M·溫萊恩德 申請人:西門子公司