用于将一个应用程序装入一个芯片卡的方法

文档序号:6412722阅读:353来源:国知局
专利名称:用于将一个应用程序装入一个芯片卡的方法
技术领域
本发明的目的在于将一个应用程序装入一个便携式的芯片载体,特别是芯片卡中。该方法用于我们想在同一芯片上同时拥有几种不同类型的应用的场合。“应用”是指发生在一个芯片卡和一个持卡人将卡插入其中以满足特定需求的读卡器中的操作。这些操作包括卡和读卡器电路中的电子处理以及发生在与读卡器连接的外设上的操作,其中某些操作可能是机械操作。从而一个应用包括一个存储在卡存储器中的卡操作程序,并且该程序包含指令集。
一个芯片卡的通用结构包括一个与一个程序存储器连接的微处理器,一个或多个数据存储单元以及一个用以与外界进行通信的接口。考虑到将几个应用程序输入到同一个卡上可以使芯片卡更加实用。例如,可以一起输入一个银行程序和一个汽车预约程序。对这两个应用程序负责的两个服务提供者、一个银行和一个金融机构一般不具有任何共性并且彼此之间是完全独立的。它们甚至不知道它们的客户所拥有的芯片卡上还包括其它服务提供者所提供的应用程序。
这种几个应用中共享一个芯片卡资源的主要问题是共同考虑数据和不同应用程序指令的完整性。
为了解决由这种共存而引起的问题,根据由具有较高权限一方,例如卡的制造公司进行干涉的原则,开发出了几种方法。这几种方法都是可用的。
例如,构成卡的集成电路的制造商可具有这样的权限。另外,所制造的集成电路可以是完全空白的或只包括对卡进行操作的基本指令集。这个基本指令集是该集成电路的操作系统。这个系统可在制造时直接(在这种情况下通常是以一个模板编程)或在测试过程中被编程于集成电路内。
另一种可能性是由一个公司将操作系统安装到集成电路中,该公司向服务提供者提供了一批具有操作系统和符合其需求的应用程序的卡。在后一种情况下,通过为每一种情况设计一种专用的操作系统以使几个不同的(但是被预先标识的)的应用能够被存储在卡上而不会使各个应用彼此影响,除非各服务提供者都同意,来实现同一芯片卡中同一集成电路上的各个应用的共存。
这种方法的缺点是使用该方法的公司必须从一开始就知道由服务提供者提供的所有卡服务用途。这造成了修正和升级困难。另一个缺点是此方法依赖于各服务提供者在将操作系统和应用程序安装到卡的集成电路中的公司中所拥有的置信度。在这些应用包括了对服务提供者来说是很敏感的操作时,就很难建立和保持这种置信度。
除了应用的升级问题之外,还存在将应用程序存储到芯片卡的集成电路的存储器中的困难,因为其实现必须通过对卡上的可用存储区域分配绝对地址,即必须暴露卡集成电路的整个结构,尤其是暴露了用以存储卡机密的地址。为了将应用程序存储到芯片卡上,就必须知道这些用于编码的私有密钥。
本发明通过在集成电路的操作系统中包括了一个装入宏指令而解决了这个问题,该指令根据一个已知地址计算存储应用程序指令的绝对地址,并修改应用程序,将用于此程序的指令记录到计算出的地址上。
在本发明中,集成电路的应用程序还包括一个数据存储空间的定义,它对于使用是必须的。本发明的装入宏指令读取存在于该应用程序中(通常在程序的开头部分)的此定义,并在数据存储器中保留存储相应数据所需的空间。在装入过程中,本发明的装入宏指令理论上还更新一个表示此应用的应用程序存储在存储器中的存储区域。例如,此存储区域可包括一个文件描述符。
从而本发明涉及一种用于将一个电子芯片装入到一个具有一个用于操作该芯片卡的程序的便携式芯片载体上的方法,该便携式芯片载体包括一个微处理器和存储单元。该程序包括指令,其中-该芯片具有一个包括用于装入存储器的程序的操作系统。这个操作系统控制微处理器和存储器的操作,-利用存储器装入程序,应用程序被记录到存储器中,其特征在于-在应用程序中,我们在芯片存储器中定义一个所需大小的空间以包含定义该应用程序所使用的数据,-在装入过程中,这个存储器装入程序计算绝对地址以将应用程序中所用的数据和应用程序指令记录到存储器中,
-于是修改应用程序,-这个装入程序将出现在应用程序中的数据和指令记录在计算出的绝对地址上。
芯片卡所固有的另一个问题是给服务提供者以编程新应用或无须知道操作系统的功能即可修改他们的应用的可能性。因此在本发明中,卡的集成电路将包括一个命令解释程序。这样的命令解释程序能够使集成电路的微处理器以高级语言(符号)执行指令,这些指令被读到一个程序存储器中并被直接快速地翻译,即转换成微处理器能够执行的指令。然后这些可执行指令被装入到微处理器的指令寄存器中。
在这种情况下,对服务提供者的唯一约束条件是他们必须为他们的应用程序提供数据所需的空间定义并且他们必须使用计算通用的高级语言程序。高级语言可以是C、FORTH、FORTRAN或COBOL等。如果需要,装入宏指令可以首先识别正在使用的语言以正确地翻译命令。这样,对于不同的语言,具有不同的翻译器。
因此本发明的目的在于前述的一种方法,其特征在于-芯片具有一个包括一个命令解释程序33的操作系统,-利用存储器装入程序,芯片的存储器记录以高级语言编写的用于该芯片卡的应用程序15,该应用程序包括不能被微处理器直接执行的指令,在这些指令经过命令解释程序的解释之后,微处理器能够执行从这些指令(不能直接执行)翻译而成的解释指令,-在进行记录时,存储器装入程序计算地址以将高级语言的程序指令记录到芯片存储器中,-修改基于此计算的高级语言指令,-这些高级语言指令被记录到存储器中由装入程序计算出的绝对地址上。
参照后面的描述和附图将能够更好地理解本发明。这些描述和附图不构成对本发明的限制。这些附图如下

图1一个适用于使用本发明方法的电子载体的集成电路结构;图2示出了依据本发明方法的装入操作的流程图;图3a-3c以高级语言编写的并且在记录到集成电路的存储器之前经过相对寻址和各种转换的程序的简意示例;
图4用于这样的程序中的特定指令的语法描述。
图1示出了一个使用本发明方法的便携式载体的集成电路结构。图中未示出的便携式载体上具有一个电子芯片1。在一个实施例中,便携式载体是一个芯片卡。芯片1包括一个微处理器2和一个存储器。在该实施例中,存储器是一个双存储器。它包括一个用于存储集成电路操作系统的第一存储器3。存储器3最好是一个非可编程存储单元,通过模板对该单元编程或者开始是可编程的,但在编程之后就被锁定以使其不能再被编程。它是一个非易失性存储器,存储单元类型可以是EPROM或EEPROM。存储器的另一部分4可在需要时被编程和擦除,并且最好是EPROM类型。它也是非易失性存储器。服务提供者可包括他想输入的所有应用程序以便集成电路1能够处理所需要的所有应用。
记录在存储器3中的操作系统至少包括一种公知类型的第一指令集5。例如,这些指令可以是MOVE、MULT、PLUS或GOTO。一旦将其装入处理器2的指令寄存器6,它们的目的就是触发将数据(或指令)传输到微处理器2的一个数据寄存器7中以使微处理器能够处理这些数据。此系统(公知类型)的功能如下所述。当启动(包含在存储器4的部分6中的)应用程序时,读入此部分的一个指令触发将一个指令从操作系统5装入寄存器6(在某些情况下,它触发从操作系统连续装入几个指令)。此时,有用数据被装入到微处理器的数据寄存器7中。例如该数据可来自存储器4的一个部分9。然后微处理器2处理这些数据,并将结果存入寄存器7(例如)。部分8和9共同构成了为所述应用而保留的存储器4上的一个区域10。在所示的实施例中,示意性地将该应用表示为一个银行类型的应用。例如,它相应于在读卡器屏幕上查看银行帐户结余的方法。
在现有技术中,由用以代替集成电路1的一个外部系统11通过一个接口12来触发用于该银行应用的指令和分别位于存储器4的区域8和9中与此应用相关的数据的装入,其中接口12用于是集成电路1与外界进行通信。接口12和芯片电路通过一条总线13彼此连接,为简化起见,该总线13用于传输地址、数据和命令。
电路11还可从外部驱动存储器4中的一个写电路14。写电路14的驱动必须是在指定了绝对地址的情况下进行的。例如,第一指令INSTRUCTION1必须被存在存储器4的地址0000上。在现有技术中,电路14在电路11通过接口12进行的控制之下工作。电路11和控制该电路的人员必须具有必备的知识和信心来进行此记录操作。
在本发明中,为了避免电路11的不适时操作,特别是在区域4中具有几种类型的使用时,在一个外部电路11的控制之下不在区域8中存储任何指令。
为了实现这种效果,本发明的操作系统5具有一个特定的装入宏指令,这里用操作系统中的LOAD指令来象征性地表示这个装入宏指令。LOAD指令的功能是将用于一个应用程序15的指令记录到存储器4中并为该程序15所用的数据保留必要的存储器空间。
现在描述这两个操作。两个操作发生的顺序是不重要的,只要预先考虑好就行。实际上,程序15和所用数据的定义以LOAD指令所参考的文件17的形式被送到接口12。在本发明中,利用一个对已记录的指令计数的计数器16,存储一个初始CPTIO地址,表示该地址是可用于一个新程序的指令的第一地址。
以下述方式完成装入操作。如图2所示,在执行LOAD指令的过程中,微处理器2通过接口12读取(步骤18)程序15中行数为1的第一指令。然后LOAD指令向这个第1行指令分配(步骤19)一个等于CPTI的绝对地址。在装入CPTI地址的开始是一个初始CPTIO地址。以一个任意实施例为例,存储器4中的CPTIO地址为2356。在LOAD指令的下一步骤20中,此第1行指令被记录到存储器4中的要求地址为2356的区域21中。所述分配涉及绝对地址的计算。这个分配过程包括修改程序以使必须记录的指令的开始部分(或结尾部分)位于该绝对地址。在进行记录时,LOAD指令读取此绝对地址并将该指令记录到相应地址上。然后通过一个测试步骤21,LOAD指令验证(刚刚记录的)程序指令15是最后要记录的指令。如果不是,则在步骤22,计数器16的内容增加使得计数器16的一个区域23包括当前增加后的CPTI值(例如等于2357)。然后LOAD指令触发返回步骤18以便读取程序15中的后一条指令,即第2行指令,并将其记录到地址2357。以同一方式继续此过程,直到所有的指令都被记录为止。
一个诸如程序15的程序通常都包括跳转指令。如程序15中所示,第n行指令将触发第p行指令的跳转。一个跳转指令通常是一个IF或GOTO类型的指令。有时也利用分支指令。在这种情况下,第p行指令是第n行指令的目的。对于一个以一种公知的高级语言编写而成的程序来说,LOAD指令包括一个用以检查要记录的第n行指令是否是一个跳转指令的测试过程24。现在并不属于这种情况。这种情况只用于第n行指令。
在步骤25中,一个绝对目的(存储器中的一个绝对地址)取代了目的p(相对指示)。这个绝对地址等于初始CPTIO指令的计数器状态加上值p。在指令25中,在计算出绝对目的地址之后,LOAD指令修改第n行指令以将其转换成目的不再是p(相对目的)而是新的绝对目的的指令。然后,在LOAD指令的步骤20,第n行指令被记录到区域21中的地址CPTIO+n-1上。以同样的方式继续执行程序,直到记录了程序15的第q行指令为止。
如果程序16的第1,2,3,n,p和q行指令序列中存在孔(holes),则可以首先用一个LOAD指令来填充这些孔(为计算一个连续的相对地址),然后在发生跳转的情况下首次修改p目的地址以考虑一个连续的序列。在这种情况下,将以p`(相应于连续变化的行)取代p并且LOAD指令的步骤25将应用值p`。
有两种机会将数据存储到存储器中。首先,如图3a到3c所示,在第一次读取程序15的过程中检测程序15的resul、index、temp、nain变量。通常将按照@data0到@data3排序的地址分配给它们。然后将这些相对排序的地址转换成绝对地址(利用同于指令所用的机构)。然后修改程序15以便用绝对地址2450到2495代替这些相对排序的地址。这在图3a到3c中是显而易见的。
可替换地,程序15具有一个具备一个相关自变量所需的存储器空间的定义指令DEFIN。例如,程序15的第0行指令以与自变量45组合的DEFIN指令开始。通过这个第0行指令,LOAD指令知道必须在数据存储器4中保留一个区域26来存储程序15所用的数据。这就使得操作系统5在必要时可以具有变长存储能力。
在本发明的两种情况中,第二计数器27包含用于在存储器4中存储数据的起始地址和一个考虑到程序15所用的变量个数或DEFIN命令中所指示的自变量45的最终地址。在存储器中所保留的空间是位于这两个地址之间的空间。下面将说明计数器16和27是如何进行不同排列的。这里给出的说明有利于理解本发明的方法。
在一个最佳实施例中,存储器的区域21和26是连续的地址彼此相接。包含计数器(16和计数器27的最终地址)CPTIO值的起始地址确定存储器的总占用量。在这些条件下,在一个初始步骤28)中可以通过LOAD指令来计算计数器27的起始数据地址。这样,通过与测试22相似的测试过程,将显示出包含最后第q行指令这里存在多少已知指令并将CPTDO地址和以CPTIO+q起始的下一个地址分配给该数据。
图2所示的流程图是任选的,它可不同于下面所述的。例如,如果程序15具有94个指令,即q=94,则CPTDO数据计数器的起始地址将是对应于CPTIO计数器的起始地址与所存储的指令个数之和的地址2450。然后在步骤29中,LOAD指令读取第0行指令(如果有的话)并保留存储器中直到地址2495为止的区域空间26。然后在步骤30,利用LOAD指令修改程序指令以记录必要的绝对地址跳转地址(用于本身存储在地址2362的第6行指令BNZE的地址2358)和存储器中从程序所用的变量值的存储位置开始的地址。
图3a到3c示出了存储在存储器4中的程序示例。首先(图3b),提及的变量被相对排序的地址所代替,其顺序相应于变量在程序中出现的顺序。
实际上,LOAD指令将图3a所示的程序15转换成图3c所示的程序15。这对于首先保留数据,向数据和变量分配数据存储器26中的绝对地址,然后在存储器4中将它们的位置分配给指令。
一旦已经将程序15装入存储器4的区域21和26中,LOAD指令就在步骤31将一个描述符记录到存储器4的区域32中。区域32中的描述符用于指示应用的名称,此例中为SERVICE应用。它还相关于用于存储所有的程序指令和数据的起始绝对地址2356和最终地址2495。将指令存储在区域21中低于区域26中的数据的行地址上的优点在于程序能够直接从地址2356开始。当它识别出SERVICE应用的名称时,区域32中的描述符通知操作系统所涉及的程序从地址2356开始。
如程序15和图3a到3c所示,并依据本发明的最佳模式,指令相应于一种高级符号语言,这种语言本身涉及由微处理器可执行的指令。例如,MOVE的作用是将第二自变量中给出的值复制到第一自变量所指示的地址。MULT指令的作用是将存储在此指令的第二自变量的地址中的内容与存储在第一自变量的地址中的内容相乘并将结果放入第一自变量的地址中。图4对此进行了总结。特别是从中可以看出BNZE指令是跳转指令。
通常在将这样一个程序记录到存储器4之前对该程序进行编译。编译的目的是将诸如MOVE、MULT或其它指令之类的宏指令中的每一个转换成微处理器2能够直接执行的宏指令序列。当然,这些宏指令序列的作用是完成宏指令的功能,并组织对存储器3和4的所有读取、到总线13的所有传输以及寄存器7的有效释放等。
为了便于服务提供者的操作,本发明不需要他们对他们的程序进行编译也无须以处理器2能够执行的机器语言来编写程序15。
与存储以微处理器2能够直接执行的语言编写而成的指令,即可装入到微处理器的指令寄存器6中的指令不同,最好要求服务提供者以一种高级语言(图4中所示类型的指令)来编写他们的程序。
在这种情况下,记录在存储器3中的操作系统具有一个能够将每个宏指令(MOVE、MULT、PLUS等)转换成微处理器2能够直接执行的宏指令序列的命令翻译器33。
在本发明中,LOAD指令是装入到操作系统5中的指令之一。
命令翻译器程序32包括相应于这个LOAD指令的一个宏指令序列。
宏指令是指在步骤18到31中提及的那些指令。当执行该应用时,一个来自区域21的(高级语言)指令发送一个将由翻译器程序33进行翻译的宏指令。
在运行该应用时,每次使用的应用描述符验证处于运行中的程序上的地址是包含在由区域32中的描述符所指示的限定之内的地址。
在决定执行操作系统和翻译器程序33中的一个时,最好在制造集成电路1时就将操作系统和翻译器程序33记录在非可编程存储器3中。这样,这些程序部分就不能被装在例如存储器4中的应用所替换。
已经通过寄存器描述了计数器16和27。但是这些计数器能够由微处理器2所能够执行的计数类型指令和相应的LOAD指令替代。这些计数指令的作用尤其在于检查已经存在于存储器中的描述符。从外表上看,这些计数器还可以更物理化一些。可以通过读取最后的描述符32来取代存储计数器16和27的初始值。当有几个应用被记录到存储器4中时,就存在几个描述符。通过向后读取存储器来发现最后被记录的一个描述符这就是在一个空位置之前所被使用的最后一个位置。
权利要求
1.一种用于装入一个被安装到一个芯片载体上的电子芯片(1)的方法,所述电子芯片包括一个微处理器(2)和一个存储器(3,4),并具有一个用于该芯片载体的应用程序(15),这个程序包含指令,其中-该芯片具有一个包括一个存储器装入程序(LOAD)在内的操作系统(5),该操作系统控制微处理器和存储器的运行,-利用存储器装入程序将该应用程序(15)记录到(20)存储器中,其特征在于在该应用程序中,定义在芯片存储器(4)中包含该应用程序将要利用的数据的所需的一些空间(DEFIN,resul,temp,index...),-在装入过程中,这个存储器装入程序计算绝对地址以将用于该应用程序的数据和用于该应用程序的指令记录到存储器中,-从而修改该应用程序,以及-此装入程序将出现在应用程序中的数据和指令记录到计算出的绝对地址上。
2.如权利要求1所述的方法,其特征在于装入程序记录了一个描述符(32),该描述符是关于计算出的绝对地址的限定,在该绝对地址能够找到这些指令和数据。
3.如权利要求1或2之一所述的方法,其特征在于-检查被装入的指令是否是一个跳转指令,并且在如果是跳转指令的情况下,-计算跳转目的的绝对地址,-在该指令中,通过以计算出的绝对跳转地址取代跳转目的来修改该跳转目的等,-记录修改后的跳转指令。
4.如权利要求1至3中任一所述的方法,其特征在于-计算存储器中的位置作为此存储器的可用空间。
5.如权利要求1至4中任一所述的方法,其特征在于-程序数据和指令被装入到连续的存储器区域中,以及-对这些连续区域地址的限定被记录到存储器的描述符区域中。
6.如权利要求1至5中任一所述的方法,其特征在于-芯片具有一个包括一个命令翻译器程序(33)在内的操作系统,-利用存储器装入程序将一个用于该芯片卡的应用程序(15)记录到芯片的存储器中,该应用程序包括以一种高级语言编写的指令,这些指令不能被微处理器直接执行,这些指令(不能被直接执行)在经过命令翻译器程序的翻译之后能够被微处理器执行,-在进行此记录过程时,存储器装入程序计算用以将用高级语言编写而成的程序指令记录到芯片存储器中的地址,-在此计算的基础上修改这些高级语言指令,-这些高级语言指令被记录到存储器中由装入程序计算出的绝对地址上。
7.如权利要求6所述的方法,其特征在于-在执行应用程序时,利用将要执行的每个翻译指令验证能够在包含在记录于判定表的描述符中的限定内的地址上找到翻译指令所涉及的数据或指令。
8.如权利要求6或7之一所述的方法,其特征在于-从芯片被制造出来开始,就将包括了存储器装入程序和命令翻译器程序的操作系统记录到芯片存储器中。
全文摘要
为了解决由同一芯片卡中的不同程序的共存(BANK,SERVICE)而引起的问题,本发明的目的是利用一个能够转换整个应用程序(15)的装入程序(CHAR)来装配所述芯片卡(1)的操作系统(5),使得这个应用程序的指令和数据位于集成电路中直接可用且相应于所述集成电路的数据存储器(4)中的实际地址的绝对地址(2356)。因此这样做,能够同时确保芯片组中应用程序的共存性和独立性。
文档编号G06K19/07GK1247609SQ9718191
公开日2000年3月15日 申请日期1997年12月30日 优先权日1996年12月30日
发明者P·帕拉迪纳斯, J·-J·范德瓦勒, P·比格特, P·乔治, S·勒科姆特 申请人:格姆普拉斯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1