CN1227367A - 存储器保护方法及所用装置 - Google Patents

存储器保护方法及所用装置 Download PDF

Info

Publication number
CN1227367A
CN1227367A CN99100621A CN99100621A CN1227367A CN 1227367 A CN1227367 A CN 1227367A CN 99100621 A CN99100621 A CN 99100621A CN 99100621 A CN99100621 A CN 99100621A CN 1227367 A CN1227367 A CN 1227367A
Authority
CN
China
Prior art keywords
storage
access
memory
protection
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN99100621A
Other languages
English (en)
Inventor
猪瀨伸一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN1227367A publication Critical patent/CN1227367A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

一种存储器保护方法和装置,通过在存储器中设计各自的布局致使可以为每个处理过程实现存储器保护功能。为存储器保护字段分配程序计数器的最高有效位至第X位和地址空间的最高有效位至第X位,从而提供2X特许级别。在执行指令包括存储器存取时,程序计数器的特许级别(第X位值)和将被存取的地址的特许值(第X位值)相比较。如果程序计数器的特许值低于将被存取的地址的特许值,则禁止存储器存取。

Description

存储器保护方法及所用装置
本发明涉及计算机系统的存储器管理单元中使用的存储器保护方法及所用装置,具体地说,涉及一种存储器保护方法及所用装置,其是通过在计算机系统的程序计数器中保留信息的使用和在存储器地址的值中所包含的存储器保护信息,根据一预定的规则通过在存储器空间安排各单个的处理过程以实现存储器保护。
多数内置CPU和单片微处理器没有MMU(存储器管理单元)。当用其开发一大规模应用程序时,由于大量的程序模块(如操作系统、驱动程序和程序库)相互协同地操作,有时需要大量的时间用于确定问题产生的原因。尤其是在由于指针设定错误、堆栈溢出等类似情况造成的程序超时运行的情况下,因为所有的任务(包括操作系统和驱动程序)是在同一存储空间中操作的,所以不能简单的确定超时运行的原因。考虑到这种情况,对每一处理过程需要提供最小需要的存储器保护功能。
根据应用于常规计算机系统的一存储器保护方法,为了实现存储器保护功能,采用了一状态寄存器用于识别执行状态下指令的特许级别和存取目标存储器的特许级别,而且存储器保护信息被存储在各存储段。然而,这导致硬件尺寸增大(见日本专利申请56-93163,59-177667,61-94156和2-230442)。
本发明的目的是提供一种存储器保护方法和装置,其通过在存储器中设计各单一处理过程的一布局以致于对每一处理过程实现存储器保护功能,仅附加少量的硬件资源即可实现存储器保护。
根据本发明的一个方面,在此提供了包括如下步骤的一种存储器保护方法:把存储器保护字段之一分配到各个程序计数器的预定区和存储空间的预定区中;将存储器保护字段的值相互进行比较,以便确定在执行指令期间是否允许或禁止存储器存取。
根据本发明的另一方面,在此提供了包括如下步骤的一存储器保护方法:把程序计数器的最高有效位(MSB)至第X位和存储器空间的最高有效位到第X位用于存储器保护字段,从而提供2X个特许级别;在执行的指令包括存储器存取时,将程序计数器的特许级别和将被存取的地址的特许级别相互比较;当程序计数器的特许级别低于将被存取的地址的特许级别时禁止存储器的存取。
在此情况下,最好是只有在执行指令期间出现需要获得存储器存取时,对分配给存储器空间的存储器保护字段作一基准,且分配给存储器空间的存储器保护字段在其它情况下用于一常规地址的字段。
根据本发明的另一方面,提供了一种存储器保护装置,其包括:一执行级别比较器,其用于从程序计数器取出最高有效位至第X位和从存储器空间取出最高有效位至第X位,并将从程序计数器取出的第X位的值A与从存储器空间取出的第X位的值B比较;以及输出装置,其用于基于比较的结果,输出显示在执行指令期间是否允许或禁止存储器存取的一信号。
在上述存储器保护装置中,当执行级别比较器确定值A等于值B时,输出装置输出存储器存取允许信号;当执行级别比较器确定值A大于值B时,输出装置输出存储器存取允许信号;以及当执行级别比较器确定值A小于值B时,输出装置输出用于禁止存储器存取的异常产生信号。
在本发明中,在每个存在程序计数器和地址空间的第X位存储特许级别。这使存储器保护功能在不增加大尺寸硬件资源的情况下能够得以实现。
图1是显示本发明的地址空间和存储器保护字段之间关系的示意图;
图2是显示本发明的地址空间和特许级别之间关系的示意图;
图3是本发明的实施例的存储器保护装置的示意图;
图4是本发明的实施例的存储器保护装置的流程图;
图5是本发明的实施例的操作示意图。
下面将参照附图详细描述本发明的一实施例。在本发明中,用作存储器保护标识符的数字被分配给指令和数据条目。是否允许或禁止一存储器的存取是根据前面所述的数字是否满足“大于”或“小于”的关系来确定的。分配给指令和数据条目的后面将称为“特许级别”。
通常,在计算机系统中使用的程序计数器保留执行指令的顶端地址。当执行指令包括存储器存取时,它们包含涉及直接存储的存取目标(即直接地址)或非直接存储的存取目标(即相对地址)的地址信息。
按照本发明,存储器保护信息(特许级别)是从计算机系统的程序计数器以及从涉及存取目标存储器的地址信息中取出的,且取出的信息用于确定是否进行存储器保护。下面说明特许级别取出方法,如图1所示,存储器保护字段分配给从程序计数器的最高有效位至第X位延伸的一区域。程序计数器的存储器保护字段确定指令的特许级别。特许级别数取决于分配给存储器保护字段的位数。具体地说,如果X位被分配给存储器保护字段,那么有2X个特许级别。
所分配的位数是任意的,设定其不小于1。然而,如果分配的位数较大时,可以用于一个任务(即,一组连续排列的指令;也就是,一个处理过程)的地址空间变窄。通常说,采用32位地址的一计算机系统具有4(232)吉字节的地址空间。如果32位中的2位用于存储器保护段,被一个任务使用的地址空间的大小可以变成512(229)兆字节。特许级别既可以是递增的数字也可以是递减的数字。然而,为了便于在说明书中说明,设定其为较大的值,较高的特许级别。且规则是具有较高特许级别的指令可以命令对具有较低特许级别的一存储器空间的存取。
如图2所示,一X位地址字段也被分配到存储器空间,致使存储器空间被分成2X部分,该X位地址字段用于确定已被分配到存储器空间的指令和数据条目的特许级别。只有在执行指令包括存取时,才对前面所述的存储器保护字段作一引用,而在其它情况下,存储器保护字段作为用于一常规的地址。
当执行的指令包括存储器存取时,执行存储器保护控制。当执行的指令不包括存储器存取时,执行一常规操作。当执行的指令包括存储器存取时,存储器保护控制是按下面程序进行的。
图3是本发明实施例存储器保护装置的示意图。执行级别比较器1从程序计数器取出从最高有效位至第X位和从存储器空间取出从最高有效位至第X位,并将从程序计数器取出的第X位的值A与从存储器空间取出的第X位的值B比较。输出装置基于比较器1的比较结果,输出显示在执行指令期间是否允许或禁止存储器存取的一信号。
图4示出了存储器保护装置执行的控制流程。当需要获得一存储器存取时:
①程序计数器的最高有效位至第X位被取出作为值A。
②将被存取的存储器地址的最高有效位至第X位被取出作为值B。
③将值A和值B相比较。当两个值相等时,允许存储器存取,并继续常规的操作(步骤S1)。
④当值A和值B不相等时,检查值A和值B之间的关系。如果值A和B之间满足A>B的关系,则允许存储器存取,并继续正常的操作。
⑤如果值A和B之间满足A<B的关系,由于存储器保护的破坏而产生一异常情况,以禁止存储器存取,并中断由操作系统等执行的处理过程。
在硬件方面,存储器保护功能是按上述方法提供的。为了允许上述的存储器保护功能在操作系统等中正确的操作,任务需要被安排在适当的存储空间。
现将参照图5描述本发明的一实施例。在此实施例中,本发明被用于一16位地址的计算机。且存储器保护字段是2位字段。另外,0到3四个级别可适用于任务的特许级别。2位值越大,特许级别越高。因此,当存储器保护字段指定为“00”时,特许级别为最低或“0”,其中当存储器保护字段指定为“11”时,特许级别为最高或“3”。
然而,设定三个任务A、B和C(每一个为包括指令和数据条目的处理过程)可以由计算机系统执行。任务A是被安排在地址0x0000和0x3fff之间,任务B是被安排在地址0x4000和0x7fff之间,任务C是被安排在地址0xc0000和0xffff之间。此外,任务A、B和C分别具有特许级别0、1和3。
下面将介绍上述结构的每种情况下存储器保护装置的工作情况:
(a)在计算机系统执行任务的情况下。
由于任务A的指令和数据条目是在地址0x0000和0x3fff之间的地址空间内,所以任务A具有特许级别0。此时,在执行任务A期间当出现获得一存储器存取(一个装载和存储指令)的需要时,根据存储器保护控制的流程确定是否许可或禁止存储器存取(图4)。如果存取目标存储器地址是在0x0000和0x3fff之间,执行的指令的特许级别和存取目标存储器的特许级别相等,因此允许存储器存取并进行正常操作(状态1)。
接着,如果存取目标存储器地址是在0x4000或更高,执行的指令的特许级别(0)低于存取目标存储器的特许级别(1或更高),因此禁止存储器存取并产生一异常情况(状态3)。通常,当产生一异常情况时,处理过程移交到操作系统。进行了适当的动作之后,返回到正常操作。
(b)在计算机系统执行任务B的状态下。
在执行任务B期间,如果执行指令包括一存储器存取,根据存储器保护控制的流程确定是否许可或禁止存储器存取。任务B具有特许级别1。如果存取目标存储器地址低于0x4000,则执行的指令的特许级别高于存取目标存储器的特许级别,因此允许存储器存取(状态2)。如果存取目标存储器地址是在0x4000和0x7fff之间,或如果存取目标存储器地址是0x8000或更高,则执行与(b)相同的操作。具体地说,如果存取目标存储器地址是在0x4000和0x7fff之间,由于执行指令的特许级别等于存取目标存储器的特许级别,因此允许存储器存取。如果存取目标存储器地址是0x8000或更高,因为执行指令的特许级别低于存取目标存储器的特许级别,所以禁止存储器存取。
(c)在计算机系统执行任务C的情况下。
在执行任务C期间,如果执行指令包括一存储器存取,根据存储器保护控制的流程确定是否许可或禁止存储器存取。然而,由于任务C具有最高特许级别3,它的执行指令的特许级别高于或等于存取目标存储器的特许级别。从状态1和状态2的控制流程可看出,任意一个存取都许可。
根据常规的计算机系统,为了实现存储器保护功能,采用了一状态存储器用于识别执行指令的特许级别和存取目标存储器的特许级别,而且存储器保护信息被存储在每一存储区段中。这就导致了硬件尺寸较大。在上述的本发明的实施例中,与其不同的是,存储器保护功能是根据地址空间使用程序计数器和固定的特许级别实现的。在此情况下,只要附加少量的硬件资源即可获得存储器保护功能。
本发明不受上述实施例的限制。例如,本发明可应用与存储涉及执行指令的地址信息的程序计数器,以及应用于通过使用地址存取存储器的一计算机系统。由于本发明不取决于计算机所使用的位数,所以本发明的存储器保护方法几乎可应用于所有类型的计算机系统。此外,按照本发明,分配给存储器保护字段的位数可以设置为任意的数。
根据本发明,如上所述,不需要用于识别特许级别的状态寄存器,并且也不需要在每一存储区段中存储存储器保护信息。存储器保护功能是根据地址空间使用存在的程序计数器和固定的特许级别实现的,在此情况下,只要附加少量的硬件资源即可获得存储器保护功能。

Claims (13)

1.一种存储器保护方法,其特征在于包括如下步骤:
分配存储器保护字段到各个程序计数器的预定区和存储空间的预定区;以及
将存储器保护字段的值相互进行比较,以便确定在执行指令期间是否允许或禁止存储器存取。
2.一种存储器保护方法,其特征在于包括如下步骤:
分配程序计数器的最高有效位至第X位和存储器空间的最高有效位至第X位用于存储器保护字段,从而提供2X特许级别;以及
在执行的指令包括存储器存取时,将程序计数器的特许级别和将被存取的地址的特许级别相互比较;以便确定在指令执行期间是否允许或禁止存储器的存取。
3.根据权利要求2所述的存储器保护方法,其特征在于:
将程序计数器的特许级别和将被存取的地址的特许级别相互比较,并当程序计数器的特许级别低于将被存取的地址的特许级别时,禁止存储器的存取。
4.根据权利要求1所述的存储器保护方法,其特征在于:
只有在执行指令期间出现需要获得存储器存取时,对分配给存储器空间的存储器保护字段作一基准,且分配给存储器空间的存储器保护字段在其它情况下用于一常规地址的字段。
5.根据权利要求2所述的存储器保护方法,其特征在于:
只有在执行指令期间出现需要获得存储器存取时,对分配给存储器空间的存储器保护字段作一基准,且分配给存储器空间的存储器保护字段在其它情况下用于一常规地址的字段。
6.根据权利要求3所述的存储器保护方法,其特征在于:
只有在执行指令期间出现需要获得存储器存取时,对分配给存储器空间的存储器保护字段作一基准,且分配给存储器空间的存储器保护字段在其它情况下用于一常规地址的字段。
7.一种存储器保护装置,其特征在于包括:
一执行级别比较器,其用于从程序计数器取出最高有效位至第X位和从存储器空间取出最高有效位至第X位,并将从程序计数器取出的第X位的值A与从存储器空间取出的第X位的值B比较;以及
输出装置,其用于基于比较的结果,输出显示在执行指令期间是否允许或禁止存储器存取的一信号。
8.根据权利要求7所述的存储器保护装置,其特征在于:
当所述执行级别比较器确定值A等于值B时,输出装置输出存储器存取允许信号。
9.根据权利要求7所述的存储器保护装置,其特征在于:
当执行级别比较器确定值A大于值B时,所述输出装置输出存储器存取允许信号。
10.根据权利要求8所述的存储器保护装置,其特征在于:
当执行级别比较器确定值A大于值B时,所述输出装置输出存储器存取允许信号。
11.根据权利要求7所述的存储器保护装置,其特征在于:
当执行级别比较器确定值A小于值B时,所述输出装置输出用于禁止存储器存取的异常产生信号。
12.根据权利要求8所述的存储器保护装置,其特征在于:
当执行级别比较器确定值A小于值B时,所述输出装置输出用于禁止存储器存取的异常产生信号。
13.根据权利要求9所述的存储器保护装置,其特征在于:
当执行级别比较器确定值A小于值B时,所述输出装置输出用于禁止存储器存取的禁止产生信号。
CN99100621A 1998-02-23 1999-02-09 存储器保护方法及所用装置 Pending CN1227367A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP10040557A JPH11238016A (ja) 1998-02-23 1998-02-23 メモリ保護方法及び装置
JP040557/98 1998-02-23

Publications (1)

Publication Number Publication Date
CN1227367A true CN1227367A (zh) 1999-09-01

Family

ID=12583765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99100621A Pending CN1227367A (zh) 1998-02-23 1999-02-09 存储器保护方法及所用装置

Country Status (4)

Country Link
EP (1) EP0938047A1 (zh)
JP (1) JPH11238016A (zh)
KR (1) KR19990072560A (zh)
CN (1) CN1227367A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436163B (zh) * 2007-11-16 2011-12-28 慧荣科技股份有限公司 非挥发性存储器储存装置及其存取方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1507185A1 (fr) * 2003-08-11 2005-02-16 Axalto S.A. Méthode et dispositif de protection contre l'accès non-autorisé à une routine sensible
US10909046B2 (en) * 2018-06-15 2021-02-02 Micron Technology, Inc. Memory access determination

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5325496A (en) * 1991-12-24 1994-06-28 Intel Corporation Selectable pointer validation in a computer system
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436163B (zh) * 2007-11-16 2011-12-28 慧荣科技股份有限公司 非挥发性存储器储存装置及其存取方法

Also Published As

Publication number Publication date
JPH11238016A (ja) 1999-08-31
KR19990072560A (ko) 1999-09-27
EP0938047A1 (en) 1999-08-25

Similar Documents

Publication Publication Date Title
US6735666B1 (en) Method of providing direct user task access to operating system data structures
EP1012715B1 (en) Hardware assisted method of context switching
US7178145B2 (en) Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system
US7386646B2 (en) System and method for interrupt distribution in a multithread processor
US5634046A (en) General purpose use of a stack pointer register
CN105556466B (zh) 代码堆栈管理方法
US5010482A (en) Multi-event mechanism for queuing happened events for a large data processing system
US20020004966A1 (en) Painting apparatus
US20070156997A1 (en) Memory allocation
US20040055003A1 (en) Uniprocessor operating system design facilitating fast context swtiching
EP0026589A2 (en) Multi-programming data processing system process suspension
GB2478733A (en) Stack management with multiple levels of exception
GB2386715A (en) Method for the use of a stack in a Java accelerator device
EP0955581A1 (en) Software interrupt mechanism
CN1296819C (zh) 便携式数据载体的控制程序执行
US6895583B1 (en) Task control block for a computing environment
EP1429246A1 (en) Apparatus and method for switching mode in a computer system
Devarakonda et al. Issues in Implementation of Cache-A nity Scheduling
US20120226842A1 (en) Enhanced prioritising and unifying interrupt controller
WO2004095275A2 (en) Method and apparatus for creating an execution shield
CN1227367A (zh) 存储器保护方法及所用装置
US7210134B1 (en) Deterring reverse-engineering of software systems by randomizing the siting of stack-based data
EP2495656B1 (en) Enhanced prioritising and unifying interrupt controller
US5202991A (en) Reducing the effect processor blocking
CN1337024A (zh) 跟踪数据的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication