首页> 中国专利> 动态逻辑分区并控制访问权限的IC智能卡及其实现方法

动态逻辑分区并控制访问权限的IC智能卡及其实现方法

摘要

公开了一种具有动态划分多逻辑分区及存储器访问控制功能的IC智能卡及其实现方法。该IC智能卡包括微处理器、存储器组和串行I/O接口电路。其中存储器组采用混合存储器结构,包括可编程非易失性存储器,其中可编程非易失性存储器作为动态划分存储器,在逻辑上可划分为多个逻辑分区。在微处理器内增加存储器动态划分寄存器MAR,用于在其中动态设置可编程非易失性存储器中各逻辑分区的大小;在微处理器与存储器组之间加入存储器管理模块,用于将可编程非易失性存储器动态划分为多个逻辑分区并且进行相应的存储器访问权限控制。

著录项

  • 公开/公告号CN1567362A

    专利类型发明专利

  • 公开/公告日2005-01-19

    原文格式PDF

  • 申请/专利权人 大唐微电子技术有限公司;

    申请/专利号CN03137511.1

  • 发明设计人 孙东昱;龚宗跃;

    申请日2003-06-10

  • 分类号G06K19/07;

  • 代理机构

  • 代理人

  • 地址 100083 北京市海淀区学院路40号

  • 入库时间 2023-12-17 15:47:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-27

    专利权有效期届满 IPC(主分类):G06K19/07 专利号:ZL031375111 申请日:20030610 授权公告日:20080528

    专利权的终止

  • 2018-03-02

    专利权的转移 IPC(主分类):G06K19/07 登记生效日:20180208 变更前: 变更后: 申请日:20030610

    专利申请权、专利权的转移

  • 2008-05-28

    授权

    授权

  • 2005-03-16

    实质审查的生效

    实质审查的生效

  • 2005-01-19

    公开

    公开

说明书

技术领域

本发明涉及IC智能卡领域,特别是涉及一种能将IC智能卡中的一个物理存储器动态划分为多个逻辑分区、并且控制存储器访问权限的IC智能卡及其实现方法。

背景技术

在信息社会,人们对信息载体的安全性、可靠性、易用性等方面提出了更高的要求。具有存储、加密及数据处理能力的IC智能卡,以其严密的数据安全性,广泛的应用灵活性和强大的功能扩展性,为现代信息的处理和传递提供了一种便捷可靠的手段。

在IC智能卡芯片中常用到的存储器有随机存储器(RAM)、只读存储器(ROM)、可编程非易失性存储器(EEPROM或FLASH MEMORY)。RAM一般用于存放运算过程中的中间数据或变量,具有高速存取数据能力,但是掉电后存储的数据会丢失,而且面积较大;ROM可用于存放IC智能卡的操作系统(COS)、常数、与安全和认证相关的加密算法或其它通用应用程序,它的存储容量大、集成度高、性能稳定可靠,但数据只能读出,无法改写;EEPROM(或FLASH MOMORY)可用于存放IC智能卡的操作系统、用户数据和管理数据,能进行读写操作,面积适中,但写入速度较慢。

根据半导体存储器的存储容量、存取时间、功耗、面积和使用寿命等特性,合理分配存储器空间,采用不同的半导体存储器组合作为系统存储器具有极重要的意义,因为它对芯片的功耗,工作频率和成本等方面具有很大影响。

IC智能卡芯片的存储器分区结构有两种:一种是物理分区结构;另一种是逻辑分区结构。对于物理分区结构来说,是将几种不同的存储器(如ROM,RAM,EEPROM等)集成在一个IC卡芯片中,由控制电路统一进行管理;而对于逻辑分区结构来说,是人为规定存储器中存储单元的应用属性,以达到可控访问的目的。

传统的IC智能卡芯片由微处理器、存储器和I/O接口电路组成,一般采用ROM作为程序存储区,EEPROM(或FLASH MEMORY)作为数据存储区使用,这种存储器结构组合很适合于大批量定型产品,其成本和安全性均能得到有效保证,但它最大的缺陷是它缺乏灵活性,固化在ROM中的COS无法根据新业务需求进行修改或补充。在竞争日益激烈的今天,如何提供高质量、多样化、个性化的增值服务,成为了各服务商不懈努力的方向,而原有的芯片结构是无法满足这种需求的。因此出现了EEPROM(或FLASH MEMORY)既作为数据存储器,也作为程序存储器的IC智能卡(参见中国专利申请00136740.4),使物理地址连续完整的一个物理存储器,在逻辑上能够按照不同应用划分为不同的存储区域,各存储区域分别完成不同功能。这种划分,为服务商推出新业务提供了较强的灵活性,如电子商务动态菜单下载、增值业务空中下载等,但是这种结构的数据存储器和程序存储器等逻辑分区的划分在芯片设计完成后,其大小就无法改变,并且只能进行应用数据下载。

另一种IC智能卡存储器管理是通过在COS中增加存储器管理功能来实现的(参见公开号为WO 01/16759 A1的PCT专利申请),如图4A所示,是以软件实现存储器管理的IC智能卡的系统框图。在这种方式下,对存储器的管理完全由操作系统(OS)来完成。应用程序产生的存储器访问请求被传送到操作系统(OS),操作系统(OS)根据预先设定的访问权限来判断应用程序对存储器的访问是否合法,以判决是否产生相应的操作。

发明内容

本发明的一个目的是在硬件电路上提供一种具有动态划分多逻辑分区功能和存储器访问控制功能的IC智能卡。程序员可以根据实际需要,将IC智能卡芯片内的物理存储器动态划分为多逻辑分区,并且进行存储器访问控制管理,从而适应不同应用对存储区大小和访问权限的需求。

本发明的另一目的是提供了一种将上述IC智能卡中的一个物理存储器动态划分为多个逻辑分区、并对卡内存储器进行访问权限控制的方法。

本发明适用于具有如下体系结构的IC智能卡芯片:

  ●程序存储器和数据存储器分开编址;

  ●指令由操作码和地址码组成;

  ●I/O接口与存储器的数据交换通过微处理器协助完成。

依据本发明的第一个方面,提供了一种具有动态划分多逻辑分区和存储器访问控制功能的IC智能卡芯片,它包括微处理器、存储器组和串行I/O接口电路等,其中存储器组采用混合存储器结构,包括可编程非易失性存储器(如EEPROM或FLASH MEMORY)。在微处理器内增加存储器动态划分寄存器MAR(memory allocationregister),在微处理器与存储器组之间有一个存储器管理模块。如图4B所示为改进了存储器管理的IC智能卡的系统框图。存储器动态划分寄存器MAR是程序员可访问的特殊功能寄存器,可由程序员根据需要在其中动态设置可编程非易失性存储器中各逻辑分区的大小。

存储器管理模块用于根据存储器动态划分寄存器MAR中的值,将非易失性存储器动态划分为多个逻辑分区,并控制所有微处理器访问存储器组的操作。

存储器管理模块包含以下模块:可动态划分存储器逻辑分区地址生成模块,根据MAR的值,生成可编程非易失性存储器中各逻辑分区的地址范围;

地址译码模块,在COS通过微处理器对存储器进行访问时对系统输入地址ADDR_IN进行译码;

存储器选择模块,依据由地址译码模块译码后产生的地址选择微处理器访问的存储器;

指令译码模块,对微处理器内指令寄存器中存储的指令进行译码从而判断操作类型;

读写权限控制模块,根据PC指针和存储器访问权限决定是否能对存储器选择模块选取的存储器进行读写操作;

存储器接口控制信号生成模块,依据上述判断结果,如果可以对所选存储器进行访问操作,则产生相应的存储器控制信号,如果禁止进行操作,即使微处理器产生了存储器访问控制信号,也将会被存储器管理模块屏蔽,不进行读写操作,从而硬件实现了在一个物理存储器内动态划分多逻辑分区及存储器访问权限控制。

依据本发明的另一方面,还提供了一种将上述IC智能卡中的一个物理存储器动态划分为多个逻辑分区,并对卡内存储器进行访问权限控制的方法。该方法包含以下步骤:在微处理器内增加存储器动态划分寄存器MAR,在其中设置可编程非易失性存储器中各逻辑分区的大小;根据存储器动态划分寄存器MAR中的值,生成可动态划分存储器中各逻辑分区的地址范围,根据地址划分界限将可动态划分存储器划分成不同逻辑分区;根据逻辑分区结果,对CPU当前工作状态进行判断,完成对各个存储器模块的访问权限控制。

其中所述完成对各个存储器模块的访问权限控制的步骤包括:在COS通过微处理器对存储器进行访问时,微处理器将产生系统地址信号ADDR_IN、以及存储器访问控制信号,如果是写入操作,数据总线上还将加载欲写入数据信息;对系统输入地址ADDR_IN进行译码;依据译码后产生的地址选择微处理器访问的存储器;对微处理器内指令寄存器中存储的指令进行译码从而判断操作类型;根据PC指针和存储器访问权限决定是否能对存储器选择模块选取的存储器进行读写操作;依据上述判断结果,如果可以对所选存储器进行访问操作,则产生相应的存储器控制信号,如果禁止进行操作,即使微处理器产生了存储器访问控制信号,也将会被存储器管理模块屏蔽,不进行读写操作,从而实现了在一个物理存储器内动态划分多逻辑分区及存储器访问权限控制。

在微处理器和存储器组之间设置存储器管理模块,由其控制微处理器对存储器组的所有操作,并且该存储器管理模块和存储器动态划分寄存器MAR结合后,可以动态调整EEPROM等非易失性存储器中数据存储区和程序存储区两个分区的大小。逻辑分区动态调整后,可以满足不同应用对存储区大小的需求,或是通过修改EEPROM等非易失性存储器中程序存储区的代码,即可增加新的应用或对固化在ROM中的程序进行修正,不会因为应用的不同,而必须重新进行芯片设计和芯片制造,节省了开发时间与成本,为基于智能卡的增值业务的升级和扩展提供了高效、灵活的硬件平台。

附图说明

图1为动态逻辑分区并控制访问权限的IC智能卡芯片逻辑框图;

图2为存储器动态划分寄存器示意图;

图3为存储器管理模块逻辑结构框图;

图4A为现有技术中以软件实现存储器管理的IC智能卡的系统框图,图4B为依据本发明改进了存储器管理的IC智能卡系统框图;

图5为存储器动态划分和访问控制流程图

图6为一个物理存储器逻辑划分前后的存储区分布图;

图7为IC智能卡芯片内的存储器空间分布图;

图8为ROM存储器访问控制流程图;

图9为RAM存储器访问控制流程图;

图10为EEPROM存储器动态划分及访问控制流程图;

图11为IC智能卡芯片内存储器空间动态划分后的存储区分布图。

具体实施方式

下面将结合附图对本发明的具体实施方式进行进一步的详细说明。

以INTEL 8051兼容微处理器为例,介绍本发明的具体实现。对于本领域技术人员来说显然本发明也可以适用于其它类型的微处理器。

图1所示为本发明采用的在一个物理存储器内动态划分多逻辑分区并实现存储器访问控制的IC智能卡芯片框图,该IC智能卡芯片由微处理器1及其外围电路2组成,外围电路2包括存储器组3,存储器管理模块4和串行I/O接口电路8。

该IC智能卡芯片内采用混合存储器结构,存储器组3包括EEPROM存储器5、ROM存储器6和RAM存储器7。其中ROM存储器6作为程序存储器,RAM存储器7作为数据存储器,而EEPROM存储器5在逻辑上划分为两部分:一部分作数据存储区,另一部分作程序存储区。

此处所说的EEPROM存储器5和ROM存储器6也可用其它非易失存储器代替。

本发明是通过在芯片微处理器1中增加存储器动态划分寄存器MAR,并在微处理器1与存储器组3之间加入存储器管理模块4,来实现在一个物理存储器内动态划分多逻辑分区以及对存储器组3的访问权限进行控制的。

在图2中显示了存储器动态划分寄存器MAR的示意图,为8比特字节。它是一个特殊功能寄存器,可由程序员根据需要对其进行设置。在IC智能卡上电复位后,由COS对存储器动态划分寄存器MAR赋值,如果不进行赋值,则缺省情况下MAR为全0。

可以根据应用特点,选取存储器动态划分寄存器8位中的n位(1≤n≤8)来决定划分的颗粒度:

例如存储器可动态划分区间容量为31K,取n=5,则存储器划分的颗粒度,即划分的最小区间为1K。

存储器管理模块4位于微处理器1与存储器组3之间,微处理器1访问存储器组3的所有操作均受其控制。存储器管理模块4和存储器动态划分寄存器MAR结合,可以动态调整EEPROM存储器5中数据存储区和程序存储区两个分区的大小,满足不同应用对存储区大小的需求。

图3为存储器管理模块4的结构框图,它由可动态划分存储器逻辑分区地址生成模块31、地址译码模块32、存储器选择模块33、读写权限控制模块34、指令译码模块35、及存储器接口控制信号生成模块36、37、38组成。

现将图3中的各个信号说明如下:

其中输入信号为:

ADDR_IN:系统地址信号,标识微处理器访问的存储器地址

PC指针:程序指针寄存器输入,标识当前程序执行的位置

MAR输入:存储器动态划分寄存器输入,用于存储器多逻辑分区地址生成

IR输入:指令寄存器输入,标识当前执行的操作

ALE:系统地址锁存信号

PSEN:程序存储器访问选通信号

RD:数据存储器读信号

WR:数据存储器写信号

输出信号为:

可编程非易失存储器EEPROM读写控制信号:控制对EEPROM进行读写操作

只读存储器ROM读控制信号:控制对ROM进行读操作

随机存储器RAM读写控制信号:控制对RAM进行读写操作

存储器动态划分是由程序员通过系统命令修改存储器动态划分寄存器MAR的值来实现的,存储器管理模块4中可动态划分存储器逻辑分区地址生成模块31根据MAR值生成可编程非易失性存储器5中各逻辑分区的地址范围,方法为:MAR中的n位有效值与地址信号组合形成新的地址信号,例如将MAR中的低5位与地址信号ADDR[15],ADDR[9...0]组合,形成′1′& MAR[4...0]&″0000000000″地址划分界限,高于此地址划分界限的存储区域设定为程序存储区,低于此地址划分界限的存储区域设定为数据存储区,当MAR的值变化后,逻辑分区的地址范围也会相应变动,从而在可编程非易失性存储器5中形成32种可选划分方案,实现了存储器动态划分。

在INTEL 8051兼容微处理器指令系统中,MOVC和MOVX指令将控制微处理器1对存储器组3进行访问操作,存储器管理模块4就是要对MOVC和MOVX指令,以及程序取指令操作进行控制。

当COS通过微处理器1对存储器组3进行访问时,微处理器1将产生系统地址信号ADDR_IN,存储器访问控制信号ALE,PSEN,RD和WR,如果进行写入操作,数据总线上还会加载欲写入数据信息。

系统输入地址ADDR_IN通过存储器管理模块4中的地址译码模块32译码,并结合可动态划分存储器逻辑分区地址生成模块31生成的逻辑分区地址,来选择微处理器1将访问的存储器,同时微处理器内IR寄存器存储的指令经指令译码模块35译码判断操作类型,由读写权限控制模块34根据PC指针和存储器访问权限决定是否对存储器选择模块33选取的存储器进行读写操作,其中PC指针用于判断程序目前在存储器中所处位置,如是合法的访问操作,则由存储器接口控制信号生成模块36、37、38产生相应的存储器读写控制信号;如果禁止进行操作,即使微处理器1产生了存储器访问控制信号,也将会被存储器管理模块4屏蔽,无法进行读写操作。

存储器动态划分和访问控制的流程如图5所示。

在图6中显示了EEPROM 5在逻辑划分前后的存储区分布。EEPROM 5可以划分为两个或两个以上的逻辑分区,其划分前如图6左侧所示,其中逻辑分区61用作存储IC智能卡COS的程序存储区;逻辑分区63用作存储用户数据的数据存储区;第三个分区62作为程序/数据动态划分区。EEPROM存储器5的一种划分结果如图6右侧所示,程序存储区64包括逻辑分区61全部和逻辑分区62中划分为程序存储区的部分;数据存储区65包括逻辑分区63全部和逻辑分区62中划分为数据存储区的部分。

在软件升级和新业务增加时,可以通过设置存储器动态划分寄存器MAR的内容调整EEPROM 5的逻辑划分,重新分配EEPROM 5中程序存储器和数据存储器的容量。例如把空闲的部分数据存储区转变为程序存储区使用,以增加新的应用,或通过修改EEPROM存储器5中程序存储区的代码,对固化在ROM中的程序进行修正,或反之,把空闲的程序存储区转变为数据存储区使用,以提供更大的用户存储空间,不会因为应用略有不同,而必须重新进行芯片设计。

为了方便程序员编程,保证程序存储区或数据存储区的起始地址都从0000H开始,存储器管理模块4还要对逻辑地址进行变换,以映射到物理存储器的不同物理地址,从而可以根据应用把物理地址连续完整的一个物理存储器划分为大小可灵活调整的多逻辑分区。

以图7所示的存储器划分结构为例,假如32K ROM存储器74作为程序存储器,1K RAM存储器72作为数据存储器,64K EEPROM存储器76(逻辑上由EEPROM存储器71,73,75组成)动态划分为程序存储器和数据存储器。可以设定存储器读写控制权限参见表1:

表1

表1所示存储器读写控制权限表仅为示例,可以根据需要设置为其它权限。

下面举例说明如何实现动态划分多逻辑分区以及存储器访问控制权限。

如图7所示,32K ROM存储器74作为程序存储器,1K RAM存储器72作为数据存储器,64K EEPROM存储器76分为3个区,其中1K EEPROM存储器71固定作为程序存储器,位于程序区高端,地址范围为:FC00H-FFFFH,32K EEPROM存储器75固定作为数据存储器,位于数据区低端,地址范围为:0000H-7FFFH,31KEEPROM存储器73作为程序/数据可动态划分存储器,为了保证数据区连续,其低端作为数据存储器,高端作为程序存储器,划分界限由存储器动态划分寄存器MAR决定。

假设存储器动态划分寄存器MAR有效位设为5位(在设计阶段确定),则划分的最小区间为1K,由存储器动态划分寄存器MAR的低5位决定程序存储区的起始地址,共32种选择。如要调整存储器划分区间,可以通过改变存储器动态划分寄存器MAR的值完成。

现假设存储器动态划分寄存器MAR设为10000,从而把31K EEPROM存储器73划分为两个区间:从8000H-BFFFH为数据存储区,C000H-FBFFH为程序存储区,存储器空间动态划分后分布图如图11所示:

程序存储区为48K,地址范围为:32K ROM存储器113(0000H-7FFFH),16KEEPROM存储器111和115(C000H-FFFFH);

数据存储区为49K,地址范围为:48K EEPROM存储器114和116(0000H-BFFFH),1K RAM存储器112(FC00H-FFFFH)。

根据读写控制权限表1,当程序运行于ROM存储器113时,可对ROM存储器113和EEPROM存储器111,115程序区进行MOVC读操作,对1K RAM存储器112和EEPROM存储器114,116数据区进行MOVX读写操作;当程序运行于EEPROM存储器固定划分程序区111时,可读EEPROM存储器111,115的内容,禁止读ROM存储器113,对1K RAM存储器112和EEPROM存储器114,116数据区仍可进行MOVX读写操作;当程序运行于EEPROM存储器动态划分程序区115时,可读EEPROM存储器动态划分程序区115的内容,对EEPROM存储器动态划分数据区116可进行MOVX读写操作,禁止访问其它存储区。

以上的EEPROM动态划分多逻辑分区仅仅是作为例子给出的,也可以采用其它的划分方案,例如:

如果存储器分配寄存器信号MAR设为00000时,31K动态划分区间73全部作为程序存储区,EEPROM存储器76动态划分后的分区情况为:

程序存储区为32K,地址范围为:8000H~FFFFH

数据存储区为32K,地址范围为:0000H~7FFFH

如果存储器分配寄存器信号MAR设为00011时,31K动态划分区间73中3K空间作为数据存储区,其它28K空间作为程序存储区,EEPROM存储器76动态划分后的分区情况为:

程序存储区为29K,地址范围为:8400H~FFFFH

数据存储区为3K,地址范围为:8000H~83FFH

上述各个存储器的读写信号可通过以下方法产生:

参照图8 ROM存储器访问控制流程图,32K ROM存储器74的操作如下:

当系统地址ADDR_IN[15]=′0′,PC指针PC[15]=′0′时,通过读写权限控制模块32可知道程序位于ROM存储器74,如此时IR输入经指令译码模块35判断为MOVX指令,经读写权限控制模块34判决,属于非法操作,ROM存储器74控制信号无效;否则ROM存储器74时钟信号由ALE信号产生,进行取指令操作或MOVC指令操作。

其它情况,ROM存储器74时钟信号无效。

ROM存储器74片选信号由上述时钟信号生成。

参照图9 RAM存储器访问控制流程图,1K RAM存储器72的操作如下:

如果系统地址ADDR_IN[15...10]=″111111″,通过地址译码模块32,选择RAM存储器72,如此时IR输入是MOVX指令,且指令运行于ROM区或EEPROM固定程序区(由PC指针判定),则经指令译码模块35和读写权限控制模块34判决,存储器读写信号分别由数据存储器读信号RD和写信号WR产生;否则读写控制信号无效。

参照图10 EEPROM存储器动态划分及访问控制流程图,64K EEPROM存储器76的操作如下:

如前所述,假定逻辑分区75固定划分为32K,逻辑分区71固定划分为1K,逻辑分区73为31K可动态划分区间。现取n=5,划分的颗粒度为1K。

可动态划分存储器逻辑分区地址生成模块31划分的逻辑分区为:

如果″FBFF″≥ADDR_IN[15...0]≥′1′&MAR[4...0]&″0000000000″,则对应空间为动态划分程序存储区115;

如果″7FFF″<ADDR_IN[15...0]<′1′&MAR[4...0]&″0000000000″,则对应空间为动态划分数据存储区116;

当系统地址ADDR_IN经地址译码模块32判定为数据存储区114或动态划分数据存储区116地址后,且IR输入经指令译码模块35发现是MOVX指令时:

●当指令运行于ROM区113或EEPROM固定程序区111时(由PC指针判定),经读写权限控制模块34判决,EEPROM存储器76片选信号有效,读写信号分别由数据存储器读信号RD和写信号WR产生;

●当指令运行于EEPROM动态划分程序存储区115(由PC指针判定),则只有对动态划分数据存储区116进行读写操作时,EEPROM存储器76片选信号有效,读写信号分别由数据存储器读信号RD和写信号WR产生,对数据存储区114禁止进行操作。

当系统地址线ADDR_IN经地址译码模块32判定为固定程序存储区111地址,IR输入经指令译码模块35发现是MOVX指令,经读写权限控制模块34判决,EEPROM存储器76所有控制信号无效;如IR输入经指令译码模块35发现是MOVC指令且程序运行于ROM区113或EEPROM固定程序区111,或者进行加载指令操作,经读写权限控制模块34判决,EEPROM存储器76片选信号有效,读信号由地址锁存信号ALE产生,写信号无效。

当系统地址线ADDR_IN经地址译码模块32判定为动态划分程序存储区115地址,IR输入经指令译码模块35发现是MOVX指令,经读写权限控制模块34判决,EEPROM存储器76所有控制信号无效;如IR输入经指令译码模块35发现是MOVC指令,或者进行加载指令操作,经读写权限控制模块34判决,EEPROM存储器76片选信号有效,读信号由地址锁存信号ALE产生,写信号无效。

这样通过动态设置存储器动态划分寄存器MAR的值,并结合存储器管理模块4,可以动态调整非易失性存储器中各个逻辑分区的大小,以适应不同应用对存储区大小的需求;另外,修改非易失性存储器中程序存储区的代码,即可增加新的应用或是对固化在ROM中的程序进行修正,不会因为应用略有不同而必须重新进行芯片设计和芯片制造,从而节省了开发时间与成本,为基于智能卡的增值业务的升级和扩展提供了高效、灵活的硬件平台。

以上结合本发明的一种实施方式对本发明的实现原理进行了说明,并不用于限制本发明,本发明的保护范围由附加的权利要求进行限定。对本领域普通技术人员来说,可以在不背离本发明保护范围的情况下对上述实施方式进行各种变化和修改,这些都在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号