具有存储保护的多用户数据处理设备的制作方法

文档序号:6411014阅读:279来源:国知局
专利名称:具有存储保护的多用户数据处理设备的制作方法
一数据处理设备的基本装置为一处理器和一存储器。在存储器中一方面存放由处理器执行的指令,另一方面处理器可将运行结果写入存储器。通常全部可供使用的存储器,即可由处理器定址的存储器至少被划分为两个单独范围。在生产数据处理设备时,已在第一范围内(以下称操作系统存储范围)存放了操作系统编码,该编码主要用于管理设备的硬件组件。在第二范围内(以下称用户存储范围)可以存放数据处理设备的用户自己编写的程序及数据。
数据处理设备的处理器本身并不区分这两个存储范围。微处理器的整个地址范围只存储在一个不可改写的存储器内(例如ROM,只读存储器)还是存储在一个非易失的应用存储器内(例如EEPROM,电可擦可编程只读存储器)对于移动数据处理设备例如处理器芯片卡毫无区别。不论存储单元位于操作系统存储范围还是位于用户存储范围,处理器都根据需要利用全部地址范围独立访问任何一个存储单元。其结果是借助一独自的程序编码,即由用户存放在移动数据处理设备中一预留的用户存储范围内的用户指令,用户可以有目的地或随机地不受局限地读和/或写访问操作系统存储范围和分配给其它用户的用户存储范围以及设置在该范围的用户程序和用户数据。
在文献EP0561509A1中介绍了一种具有多个用户终端和输入输出接口的网络计算机系统。该计算机系统由一操作系统(如一UNIX操作系统指令组)运行。在该系统中,可以对用户基本封锁某些特定操作系统指令或输入输出接口。当计算机系统的用户具有一存放在存储器内的访问许可时,他可以在操作系统的监控下,通过输入一附加的操作系统指令间接调用或激活上述指令或接口。
在文献DE4115152A1中公开了一种用于便携式数据记录装置的具有数据保护功能的微处理器电路。该电路包括一个与实质的微处理器电路分立的附加保护电路,用于保证外来程序只访问那些允许访问的存储范围。在第一实施形式中,该附加保护电路包括一个带辅助寄存器的第一比较电路和带辅助寄存器的第二比较电路。与用户相关的用户访问存储范围的边界值或者存放在固定的逻辑电路中或者存放在一个安全的存储器中,这些边界值由实质的微处理器电路加载到辅助寄存器中,并通过比较电路与实质的微处理器电路的地址寄存器和程序计数器进行比较。比较电路的输出值通过一逻辑和门相互联结并被传送给实质的微处理器电路的控制电路。在第二种硬件实施形式中,该附加保护电路包括一个自身的具有脉冲频率分配电路的保护处理器和自身的存储装置。在该存储装置中存放了与用户相关的访问存储器范围的边界值,这些边界值通过保护处理器与实质的微处理器电路的地址寄存器和程序计数器相比较。
本发明的目的在于为一便携芯片卡提供一种存储访问保护,尽量不改变芯片卡的硬件结构就能实现该存储访问保护。
本发明的目的是这样实现的,首先,这样设计处理器的内部微编码,使其封锁执行加载到用户存储范围的要求读或写存储单元的内容的处理器标准指令。此外,在操作系统存储范围还存放了一个存储范围访问表,在该表中,对每个用户存储范围,分别存放了加载到各个用户存储范围的指令所允许访问的地址范围。此外,在处理器的操作系统中还存放了一个附加程序例程,该例程由一个加载到一用户存储范围的,要求读或写一存储单元的指令调用,并借助存储范围访问表在执行指令前检查当时的指令要求访问的存储单元是否处于允许访问的地址范围,若不是,则封锁该指令的执行。
本发明的优点在于可以用简单的方式,仅借助程序手段,将在用户程序存储范围包含的一个或多个应用程序的“操作半径(操作区域)”限制在数据处理设备的特定存储范围,而不需附加的硬件组件。允许用户程序指令读写的存储器地址范围可以与用户相关地存放在存储范围访问表中。通常,该允许地址范围与供用户使用的并含有独自的应用程序编码的用户存储范围是一致的。因此可禁止用户借助其应用程序编码读或写访问其指定的用户程序存储范围以外的存储单元,这些存储单元或处于为另一个用户指定的用户存储范围或处于操作系统存储范围。
以下结合附图
所示实施例详细说明本发明。图中示出一数据处理设备的存储器的典型划分,也称存储器布置。其中存储器大致分为两部分,上一部分为所谓的用于存储操作系统编码的操作系统存储范围,其地址范围从起始地址0000h开始(h=16进制码)。操作系统主要管理对处理器的控制,及数据处理设备中可能存在的其它装置的运行及对存储器的访问。与之相邻的用户存储范围用于存储通常不同用户的应用程序编码和应用数据编码,在本实施例中,该存储范围从起始地址8000h(h=16进制码)开始。因而该存储范围自身又划分为各个子范围,在图中举例示出了两个这种子范围,一个由起始地址8000h到8FFFh的范围供用户A存储应用程序编码和应用数据编码。一个与之相邻的从起始地址9000h到9FFFh的范围供第二用户B存储应用程序编码和应用数据编码。从下一个起始地址A000h到存储器的最后一个地址FFFh可以接着为其它用户指定子范围。
在示例中,例如,为用户A指定了8000h至8FFFh的地址范围为其用户存储范围,用户A根据该范围内安装的用户程序编码只能存取用户数据,这些用户数据编码也被存储在从起始地址8000h至终止地址8FFFh的存储单元中。根据本发明,通过在操作系统存储范围的存储范围访问表中以“应用程序A”标识的存储单元中写入一相应的记录可保证上述要求。在图中的示例中,用由S1表示的实线所示的正向的在自身的用户程序存储范围内的应用程序编码的允许程序分支表示这种情况。所有超过该用户程序存储范围的程序分支,如进入到操作系统存储范围的分支S5及进入到与用户A相邻的用户程序存储范围的分支S3(该存储范围为9000h到9FFFh)是不允许的,因而不会被执行。这种情况在图中用虚线表示。
同样,安装在另一用户B的用户程序存储范围9000h至9FFFh内的应用程序编码只能读或写访问位于自身的用户程序存储范围内的存储单元,例如只能执行图中以S2表示的逆向的程序分支。超越该用户程序存储范围从而进入到用户A的存储范围的读或写访问(图中用虚线S4表示)同样是不允许的,因而根据本发明不允许其执行。
对处理器的内部微编码进行有益的改变,使得在执行一要求读或写访问存储单元内容的处理器标准指令前,首先检查分别属于各标准指令的处理器的程序计数器中的当前内容。该当前内容大致“指向”当前待执行的指令的来源地址。如果程序计数器的内容指示一个位于操作系统存储范围内的存储单元地址,即该指令为操作系统的一部分,则允许执行该指令。在这种情况下,指令不是来源于用户而是来源于系统。相反,如果程序计数器的内容指示一个位于用户存储范围内的存储单元地址,便封锁该指令的执行。很明显,在这种情况下该指令是来源于用户的。
根据本发明,这种指令是通过处理器的操作系统内的例行程序间接执行的。这是采用以下方式有益设计的,即首先检查属于当时要求对存储单元执行读或写访问指令的处理器的堆栈存储器的当前内容。在该堆栈存储器中存储了指令的返回地址,该返回地址同样反映待执行的指令的来源。然后将该堆栈存储器的内容所包含的存储范围访问表的记录与各指令要求的对一存储单元的访问进行比较。如果所要求的对存储单元的访问指向一个存储范围访问表中的允许地址范围以外的存储单元,则封锁该指令的执行,反之,则执行该指令。
根据本发明的数据处理设备尤其适用于移动式工作方式,这是因为这种工作方式常常需要多个用户同时使用该数据处理设备。每个用户可以不受可能存在的其它用户的干扰或其它应用程序或数据的无意干扰使用数据处理设备。尤其可以保证各用户之间的数据保密,并阻止由一个安装在用户程序存储范围的应用程序编码未经允许地及可能非业务性地读和写访问操作系统。根据本发明,处理器芯片卡特别适合用作移动数据处理设备。
权利要求
1.一种具有一个处理器和一个存储器的便携式芯片卡,所述存储器被划分为一个操作系统存储范围和至少一个用户存储范围,其中a)适当改变处理器的内部微编码,以便封锁执行加载到用户存储范围的要求读或写访问存储单元内容的处理器标准指令,b)在所述操作系统存储范围存在一存储范围访问表,在该表中,为每个用户存储范围分别存放了加载到各用户存储范围的处理器标准指令的允许地址范围,c)在所述操作系统存储范围内有一个程序例程,该程序例程c1)由一个加载到用户存储范围的,要求读或写访问一存储单元的处理器标准指令调用,c2)利用存储范围访问表检查当时的处理器标准指令要求访问的存储单元是否位于允许的地址范围,c3)如果不是,则封锁执行处理器标准指令。
2.根据权利要求1所述的装置,其中这样调节处理器的内部微编码,使得a)在执行要求读或写访问存储单元内容的处理器标准指令前,检查属于当时的处理器标准指令的处理器程序计数器的当前内容,b)当程序计数器的内容指示一位于操作系统存储范围的存储单元的地址时,允许执行该处理器标准指令,c)当程序计数器的内容指示一位于用户存储范围的存储单元的地址时,封锁执行该处理器标准指令。
3.根据权利要求1或2所述的装置,其中这样设计位于处理器操作系统中的程序例程,使之a)检查属于当时要求读或写访问一存储单元的处理器标准指令的处理器的堆栈存储器的当前内容,b)将堆栈存储器的内容中所包含的存储范围访问表的记录与当时的处理器标准指令要求对存储单元的访问进行比较,c)当所要求的访问指向一个存储范围访问表中的允许地址范围以外的存储单元时,封锁执行该处理器标准指令。
全文摘要
一种具有存储保护的多用户数据处理设备,特别对处理器的微编码进行适当改变,以便封锁执行一加载到用户存储范围的,要求读或写访问存储单元内容的处理器标准指令,在操作系统存储范围有一存储范围访问表,在该表中,为每个用户存储范围存放了其中的指令的允许地址范围,此外还有一附加程序例程,该程序例程由一个加载到用户存储范围的,要求读或写访问一存储单元的指令调用,借助存储范围访问表,在执行指令前检查所要求访问的存储单元是否位于允许地址范围,如果不是,则封锁执行该命令。本发明的优点是,用简单的方式就能限制用户程序存储范围的一个或多个应用程序的“作用半径”。
文档编号G06F12/14GK1176700SQ96192133
公开日1998年3月18日 申请日期1996年3月7日 优先权日1995年3月10日
发明者马库斯·温兰德 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1