CN1147775C - 受保护的存储器系统和方法 - Google Patents

受保护的存储器系统和方法

Info

Publication number
CN1147775C
CN1147775C CNB951932470A CN95193247A CN1147775C CN 1147775 C CN1147775 C CN 1147775C CN B951932470 A CNB951932470 A CN B951932470A CN 95193247 A CN95193247 A CN 95193247A CN 1147775 C CN1147775 C CN 1147775C
Authority
CN
China
Prior art keywords
memory
address
memory access
storage
access request
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.)
Expired - Fee Related
Application number
CNB951932470A
Other languages
English (en)
Other versions
CN1149342A (zh
Inventor
B・R・吉列西
B·R·吉列西
加布斯
E·D·加布斯
M·A·汗
约翰逊
T·M·约翰逊
奥康纳
D·M·奥康纳
希布
J·S·希布
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1149342A publication Critical patent/CN1149342A/zh
Application granted granted Critical
Publication of CN1147775C publication Critical patent/CN1147775C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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

Abstract

本发明涉及基于非虚拟存储器系统中存储器保护的技术领域。在存储器管理单元不引起额外开销的条件下,所描述的系统和方法提供存储器访问的检测和保护。处理器包括一个受保护的存储器单元,他通过监控存储器总线(510、520、530、540)的传输来监控将被执行的存储器访问。受保护的存储器单元包括多个寄存器,它们标识存储器地址(555、565、575、585)和能够引起存储器保护或检测破坏的产生的模式(550、560、570、580)。如果发生了存储器保护破坏,就发出一个取消信号以在存储器操作完成之前取消该操作,从而保护存储器免于非授权访问(350)。如果检测到存储器破坏,则允许完成该存储器操作并向处理器发出一个错误信号以通知检测到一个存储器破坏。由于保护机构在处理器中不需要单独的时钟周期,并且只是监控用于存储器访问的存储器总线,所以可以解决现有存储器保护方案中处理器的额外开销问题地执行存储器的保护和检测。

Description

受保护的存储器系统和方法
技术领域
本发明的系统和方法涉及无性能损失地保护存储器免予被非授权访问。特别是,本发明的系统和方法涉及在一个基于诸如嵌入式控制器系统的非虚拟存储器中的存储保护。
背景技术
随着计算机处理器和控制器的逐渐复杂,操作这些处理器和控制器的软件其复杂性也在增加。为了对当今的处理器和控制器编程,一般需要一群程序员来开发代码以操作这些处理器和控制器。通常,一组程序员将在代码的不同部分同时从事开发工作。这样在开发过程中就会出现错误以及存储器使用上的冲突。因此,就希望能够灵活地保护存储器的特定区域。例如,如果代码的某一部分已被检验并被证明将会准确运行,那么就希望保护这部分代码不再被故意或偶然地修改。而且,希望保护这部分代码所用的存储器特定区域不再被代码的其它部分访问以便于在开发过程中将错误降至最少。
在一个基于虚拟存储器系统的微处理器中,存储器管理单元(MMU)不仅提供从虚拟存储器访问到实际存储器访问的映象功能,而且还在存储器的不同部分执行保护检查。因此,对某些访问来说,可将存储器的特定部分规定为受保护部分而不能访问,例如,一些特定的过程不能访问存储器的特定部分。
但是,MMU引起了用于每次访问的显著开销,因为执行一次虚拟地址到实际地址的转换过程是非常耗费时间的。从提供虚拟存储器访问的好处来说,这个代价是可以接受的。但是,嵌入式控制器或微处理器不需要虚拟寻址的灵活性,因为该控制器/微处理器所执行的应用是非常明确并且一般不需要以虚拟寻址的灵活性的方式进行改变。在开发过程中,因为速度快且需要较少的硬件和软件开销,所以,利用物理地址对嵌入式控制器和微处理器编码。
因此,由于没有执行虚拟寻址,所以不是所有的微处理器和控制器都包括一个MMU并且这些微处理器/控制器没有提供一个存储器保护机制。而且,随着操作这些控制器/微处理器所需的代码变得越来越复杂,也就需要越来越多的程序员来开发这些代码,从而提供一定形式的保护机制的需求也就变得明显起来。此外,还希望该保护机制不会导致处理器损失性能或引起任何由于提供此保护机制而出现的额外开销。
发明内容
因此,本发明的一个目的是提供一种禁止以很少或没有性能损失对存储器进行非授权访问的存储器保护机制。
本发明的另一个目的是提供一种速度快、成本低、并能检测和禁止对存储器的非授权访问的存储器保护机制。
在本发明的系统中,一个保护的存储器单元被包括在控制器/处理器中以保护和检测对存储器的非授权访问。该保护的存储器单元监控发出存储器访问请求的存储器总线。保护的存储器单元最好包括多个保护寄存器对和多个检测寄存器对,它们存储所需的保护和检测信息以确定通过存储器总线传送的访问是否已被授权。这个机制在处理器中以很小的或不明显的开销工作以便于为提供此附加能力没有引起性能损失。
这些寄存器是可编程的,从而在确定非授权访问方面提供了灵活性。因此保护的存储器单元监控在存储器总线上发出的每一个存储器访问请求。然后就是否已在特定的地址发生了存储器保护破坏或存储器检测破坏,根据寄存器中的值确定一个比较。如果已经发生了存储器保护破坏,根据利用保护寄存器中的信息执行的比较,保护的存储器单元发出一个信号,中止该存储器访问的执行。还产生一个内部错误到处理器核心以通知该核心产生了保护性破坏。该核心确认该错误,然后转移到一个错误处理例行程序以对存储器保护破坏寻址。
可替代地,保护的存储器单元可以检测一个存储器检测破坏。一个存储器检测破坏不会异常中止存储器访问,而仅仅是报告已发生了一个破坏。这样,当保护存储器单元检测到一个存储器检测破坏时,产生一个错误到处理器以通知处理器已发生了一个检测破坏。此时处理器将转移到一个错误处理例程以处理该错误。从而,提供了一个简单的非侵入机制来保护和/或检测出可能发生的存储器破坏。
附图说明
通过下面详细的描述,对于本专业技术领域以内的技术人员来讲,本发明的目的、特性和优点将变得非常明显。
图1是本发明的包括了一个处理器/控制器和存储器的系统的简略方框图,该系统受到根据本发明技术的保护。
图2是包括了用于保护存储器免受破坏的保护存储器单元的处理器/控制器的简略方框图;
图3a,3b,3c是表示本发明处理的实施例的简略流程图;
图4是本发明的保护存储器单元的一个实施例的方框图;
图5是在图4所示的实施例的保护存储器单元中发现的错误发生块的方框图;
图6是说明图4所示的保护存储器单元使用的寄存器的一个实施例的表;
图7说明了图4所示的保护存储器单元使用的存储器保护地址寄存器的一个实施例;
图8是说明存储器屏蔽寄存器和依据本发明技术能被保护的可能的块容量的表格;
图9a说明了一个对地址寄存器编程以保护寄存器不被非授权访问的例子;图9b是第二个表示对寄存器编程以保护寄存器不被非授权地址访问的例子;
图10说明了用于根据本发明的技术进行存储器破坏检测的寄存器;
图11说明了一个对检测寄存器编程以检测寄存器不被非授权访问的例子;
图12说明了一个用于图4所示实施例的保护存储器单元中的保护存储器单元控制寄存器的实施例。
具体实施方式
在下面的描述中,为了解释而给出了大量的详细说明。但是,对本领域的技术人员来说,显然不需要这些实施本发明的具体描述,即已知的电子结构和电路不必显示在方框图中以免使得本发明难以理解。
本发明的存储器保护和检测系统提供了一种用于检测存储器破坏和保护存储器免于破坏的非入侵的(non-intrusive)、无额外开销的方法和装置。该系统和方法将从一个嵌入式控制器的角度被描述,但是,显然本系统和方法也适用于各种不同类型的需要存储器检测和/或保护机制的微处理器和控制器。
图1示出了本系统的简要方框图。处理器或控制器(下文中称作为处理器)与存储器15相连。本发明的系统和方法将阻止对存储器的非授权访问以及检测在处理过程中可能发生的存储器破坏。
图2示出了该系统一个实施例的更详细的方框图。本实施例中,指令单元50包括一个指令高速缓存和指令队列/调度程序,用于将指令调度到管道排序器55。在本实施例中,管道排序器55向多端口寄存器60并行发出控制、存储和寄存器指令以分配给适当的元件65、70、75、100、95、90和85执行。在本实施例中,这些元件包括中断控制器65、乘法/除法单元70、整数执行单元75、地址产生单元100、局部寄存器高速缓存/内部数据RAM95、总线控制器90和数据高速缓存单元85。对本领域的技术人员来说,显然此结构只是一个例子,并可以使用不同的处理器结构。在处理器中还包括一个保护存储器单元(GMU80)。该保护存储单元80还能以用GMU80监控总线60发出的存储器访问请求的方式与存储器总线60相连。
GMU80监控存储器访问以检测存储器破坏并识别存储器保护破坏和存储器检测破坏。存储器保护破坏使得GMU80取消当前的存储器请求以防止存储器破坏发生。并且,向指令单元50发出一个错误指令以通知指令单元50已发生了一次存储器保护破坏。此外,在本实施例中,还提供了一个仅检测某些存储器破坏的机制。如果检测到一个存储器破坏,则允许完成该存储器操作但GMU80向指令单元50发出一个错误指令以通知指令单元50已检测到一次存储器破坏。
最好参照图3a,3b,3c示出的简要流程图来说明处理过程。图3a说明了存储器破坏的检测过程。在步骤150,监视总线是否传输了例如是一个存储器请求信号的表示存储器操作开始的信号。在步骤152,当检测到一次存储器操作时,执行地址比较以确定该存储器操作的地址是否在表示存储器破坏的地址范围之内。在步骤154,如果该地址在此地址范围之内,则将存储器操作属性与表示破坏的属性(如操作类型或访问模式)相比较。在步骤158,如果属性匹配,则GMU发出错误信号,在步骤160,GMU向CPU、在本实施例中是向CPU的指令单元发回一个错误信号,以报告检测到存储器破坏。根据此错误信号,处理器核心转向一个错误处理例程以对该存储器破坏寻址。错误处理例程可以仅产生一个破坏报告或执行一个特定的过程以将存储器破坏的影响减至最小。
存储器保护过程不同于存储器检测过程,因为存储器保护过程阻止了特定的存储器操作发生。参照图3b,在步骤170,GUM监视存储器操作用于的总线。在步骤172,执行地址比较以确定该存储器操作的地址是否在保护的存储器的地址范围之内。在步骤174,如果该地址在此地址范围之内,则在步骤176将存储器操作属性与表示存储器破坏的属性相比较。在步骤178,如果属性匹配,则表示发生保护破坏,在步骤180,GMU发出一个取消信号以终止该存储器操作的执行。在较佳实施例中,取消信号通过CTRL信号线被发到总线控制单元。根据接收到的取消信号,总线控制单元异常中止该存储器操作。在步骤182,GMU发出一个错误信号以报告存储器保护破坏。根据此错误信号,在步骤184,处理器转向相应的错误处理例程。
最好系统既执行破坏的存储器检测,又执行破坏的存储器保护。该过程能被初始化使得存储器在某些具有特定属性的指定地址被保护以免发生存储器破坏,而在其它地址的存储器破坏只是被检测和报告给处理器。下面参照图3c描述这个过程。在步骤200,GMU监视用于存储器操作,特别是指令单元发出的存储器请求的总线。当发出一个存储器请求时,在步骤210,请求的地址与保护存储器单元中的保护和检测寄存器中的地址相比较,这些地址表示那些被提供受限访问的存储器地址。在步骤220,如果该地址不在寄存器中的地址范围内,则允许该存储器请求被处理并且保护存储器单元继续监视用于后继存储器操作的总线。如果该地址在保护或检测寄存器指定的地址范围内,则在步骤230,将该存储器操作的属性与保护或检测寄存器中设置的属性相比较以确定该访问是否被授权。这样的属性包括,例如,该操作发生在用户模式下还是管理器模式下,或者正在执行的是一次读、写或执行操作。
在步骤240,如果存在一次保护破坏,GMU向总线控制单元发出一个取消信号以终止存储器操作的完成。在步骤250,这就保护了存储器免于实际的非授权访问。在步骤260,如果发生了一次检测破坏,则允许完成该存储器操作的完成,GMU向处理器的指令调度器发出一个错误信号270,以通知处理器产生了存储器检测破坏。相似地,当发生了一次保护破坏时,GMU向指令单元发出一个错误信号以通知指令单元发生了破坏。在步骤280,该指令单元转到错误处理例程以处理接收到的错误。这样,一个简单的非入侵但却有效的机制被提供用于检测和防止存储器破坏。
图4示出了保护存储器单元的一个实施例的简化方框图。保护存储器单元包括多个在此用作存储器映象寄存器(MMR)的可编程寄存器300。寄存器300被编程以标识一个引起存储器破坏的存储器操作的地址和其它属性。
图6示出了存储器映象寄存器的一个实施例。最好,这些寄存器包括一个控制寄存器、两对存储器保护寄存器和六对存储器检测寄存器。显然这里所示的配置只是一个举例,也可以使用其它的配置。例如,这些寄存器可以包括所有的存储器保护寄存器,借此系统保护存储器以免发生存储器破坏。相似地,这些寄存器可以只包括存储器检测寄存器,借此该机制只检测存储器破坏。而且,通过寄存器的适当配置,可以使用不同数量的存储器保护寄存器和存储器检测寄存器。
这些寄存器被控制电路310控制并编程,该电路接收输入地址和读/写控制信息以执行对这些寄存器的读和写操作。在本实施例中,控制逻辑电路310接收输入的MMR读、MMR写、MMR地址、SFR读、SFR写和SFR地址信号以分别对存储器和特殊功能寄存器(SFR)进行读和写。输入给电路310以及错误发生块350的输入是一个管理器用户模式信号340,该信号用于识别处理器是在管理器模式下还是在用户模式下运行。电路310接收这些输入并产生多个使能信号到MMR寄存器以执行MMR访问或SFR访问,将数据导入存储寄存器或从中取出。
存储器寄存器块330接收SFR数据总线、MMR数据总线和来自控制逻辑电路310的使能信号作为输入。该使能信号控制用于向寄存器写的数据的接收或者从/向SFR数据总线或MM数据总线输出从寄存器读出的数据。最好存储器寄存器块330包括多个如图6中所定义的寄存器并向错误模式发生块350提供一个输出。
错误模式发生块350接收来自存储器寄存器块330的存储寄存器值和有关将被比较的当前总线访问的信息作为输入。这个输入最好包括当前访问的读输入、写输入、执行输入、内部地址总线和用户管理器输入。这个错误模式发生块350在破坏发生时执行比较并输出GMU取消和GMU错误选通输出。图5举例说明了这个块的进一步分解。
图5举例说明了错误模式发生块的一个实施例。参照图5,该块由多个错误模式电路550、560、570、580和地址匹配电路555、565、575、585构成。每个错误模式电路接收读输入、写输入、执行输入、用户/管理器输入和被访问的当前内部地址作为输入。错误模式电路还接收相应的包含了存储器操作属性信息的存储器保护地址寄存器位,在本实施例中为0-6位。这个第一错误模式电路550还从存储器寄存器接收相应的属性信息MPAR0(位0至6),以确定当前访问的属性是否与MPAR0 MMR寄存器中标识的属性相匹配。如果匹配成功,错误模式电路产生一个去往相应的地址匹配电路555,565,575,585的使能输出。
地址匹配错误发生块也接收将被执行的来自内部地址总线的存储器操作的地址和存储器寄存器中被标识的地址范围作为输入。例如,第一地址匹配电路555接收来自存储寄存器的MPAR0 MPMR0、内部地址和来自错误模式块550的使能信号作为输入。地址匹配错误发生块比较该地址并且如果该地址是一个被寄存器规定的地址而且该使能信号已被发出,则产生一个错误输出信号和一个GMU取消输出信号。第一错误模式电路550和地址匹配电路555工作以执行存储器保护操作。相似的过程发生在执行存储器破坏检测操作的电路中。例如,错误模式电路570和地址匹配电路575工作以执行存储器破坏检测操作。如果检测到存储器破坏,则产生一个错误输出信号。通过提供多个错误模式检测电路455、460、465、470,可以并行执行存储器检测和保护比较。显然通过适当修改图示的电路,可以采用一系列的方法和机制。
图7示出了本实施例采用的存储器保护地址寄存器的一个实施例。在本实施例中,存储器保护地址寄存器包括一个寄存器对,存储器保护地址寄存器600和一个存储器保护屏蔽寄存器610。存储器保护地址寄存器600包括多个为标识是否允许例如用户模式读、用户模式写、用户模式执行、管理器模式读、管理器模式写和管理器模式执行等某些模式的存储器操作所分配的位。每一位用于标识某一模式是否在存储器操作过程中产生一个错误。
寄存器600还包括将被保护的基地址,在本实施例中,基地址以一个32位地址的高20位表示。这种分辨度对保护机制来说是足够的。但是显然当适用于不同的存储器时,基地址也可用32位或更多位表示。
存储器保护屏蔽寄存器610提供了屏蔽位,用于确定将与存储器操作的地址相比较的位以确定是否发生了存储器保护破坏。这个屏蔽寄存器610能改变比较的分辨度以增强机构的灵活性。图8说明了在存储器保护屏蔽寄存器中通过设置适当的屏蔽值可以获得不同的块容量。
图9a说明了一个依本发明在存储器保护地址寄存器和存储器保护屏蔽寄存器中通过设置相应位而受到保护的地址的示例。图9b说明了另一个在存储器保护屏蔽寄存器中进行修改使得在256K字节块中多个地址被保护的情况。
图10说明了存储器破坏检测寄存器的一个实施例。参照图10,每组寄存器由一个上界寄存器650和一个下界寄存器660组成。上界寄存器650识别将被检测的一个存储器地址范围的上界,特别是在本实施例中,上界的高20位被标识。下界寄存器660识别将被检测的存储器地址范围的下界。显然也可使用全32位或其它分辨度。寄存器650的低8位标识将被检测的模式。在本实施例中,这些模式包括用户模式读、用户模式写、用户模式执行、管理器模式读、管理器模式写和管理器模式执行。
应当注意,在本实施例中,用于存储器保护和存储器检测的寄存器配置稍有不同。配置的细微区别是由于系统带来的时间限制造成的。特别是,因为屏蔽操作需要很少的时钟周期来完成,所以,屏蔽位要与存储起来标识用于存储器保护的适当地址的地址联合使用。这一点是很重要的,因为如果发生了保护破坏,就必须尽可能快地发出取消信号以在存储器受到此存储器操作执行的影响之前确保此存储器操作被终止。但是,存储器破坏检测不发出取消信号并允许完成此存储器操作的处理,而只是报告一次错误。因此,可采用一个更长的地址匹配过程。通过指定存储器的起始地址和终止地址,在花费附加时钟周期执行地址匹配的情况下可以获得更好的分辨度。显然,对于一个本领域的技术人员来说,用于存储器保护的寄存器配置可用于存储器检测,并且同样,用于存储器检测的寄存器配置也可用于存储器保护。而且,可以采用其它的配置。
图11说明了一个存储器检测寄存器的示例和依据本发明的技术检测到的相关地址。图11示出了发生在图示的设置下的地址的保护范围和操作的保护类型。
存储器寄存器也包括一个控制寄存器,它提供一些可用于系统的保护和检测机制的一般设置。在图12所示的实施例中,某些位能被置位或复位以启动和关闭相应的存储器保护和存储器检测机制。
这样,我们已经讨论了一个用于检测和保护存储器免于破坏的有效机制。已结合较佳实施例详细描述了本发明。但是,显然不偏离本发明构思的任何修改、替换、改变和使用均应属于下述权利要求的保护范围之内。

Claims (6)

1.一种用于检测存储器访问破坏的非入侵装置,包括:
多个存储器寄存器组,每一组用于存储一个上界地址,一个下界地址,以及标识非授权存储器访问操作的属性位,用上界地址和下界地址识别存储器的保护范围;
一个监控器,用于读出在一个与处理器相连的存储器总线上进行通信的任何存储器访问请求,该存储器访问请求具有一个相关的操作模式和访问类型,监控器确定用于每个存储器访问请求的存储器地址;
一个模式输入装置,用于接收表示每个存储器访问请求的相关操作模式和访问类型的信号;
一个比较器,用于向处理器提供一个错误信号,该信号表示根据由属性位确定的操作模式和访问类型,每个存储器访问请求是否是对存储器保护范围的一次非授权存储器访问操作,比较器向与存储器总线相连的总线控制单元提供一个取消信号,该取消信号表示存储器访问请求的地址是否位于存储器地址范围之内并且存储器访问请求的操作模式和存储器访问类型是否是由属性位确定的非授权存储器访问操作的一种,其中总线控制单元中止存储器访问请求。
2.如权利要求1所述的装置,其中比较器包括:
一个地址匹配电路,用于确定存储器地址是否在存储器的保护范围之内;以及
一个错误模式电路,用于确定存储器访问请求是否是通过将操作模式和访问类型与属性位相比较而确定的非授权存储器访问操作中的一个。
3.如权利要求2所述的装置,其中,如果操作模式是非授权存储器访问操作中的一种,错误模式电路则产生一个使能输出到地址匹配电路。
4.一种用于保护存储器免于访问破坏的非入侵装置,包括:
多个存储器保护地址寄存器,每一个用于存储一个存储器基地址以及标识非授权存储器访问操作的属性位;
一个监控器,用于读出在一个与处理器相连的存储器总线上进行通信的任何存储器访问请求,该存储器访问请求具有一个相关的操作模式和访问类型,监控器确定用于每个存储器访问请求的存储器地址;
多个屏蔽寄存器,每个与存储器保护地址寄存器中的一个相连,用于存储屏蔽位,屏蔽位用于选择确定将与存储器地址的一部分与存储器基地址的一部分相比较,以判定一个匹配;
一个模式输入装置,用于接收表示存储器访问请求的操作模式和访问类型的信号;以及
一个错误模式产生块,用于向处理器提供一个错误信号,该错误信号表示根据由属性位确定的操作模式和访问类型,每个存储器访问请求是否是由屏蔽位所确定的对存储器保护范围的一个非授权存储器访问操作,如果存储器访问请求是非授权存储器访问操作的一种,错误模式产生块还向与存储器总线相连的总线控制单元提供一个取消信号。
5.一种用于检测存储器的访问破坏的非入侵方法,包括步骤:
a)监控存储器总线以检测一个存储器访问请求;
b)确定存储器访问请求的所请求的操作模式;
c)确定存储器访问请求的访问类型;
d)确定存储器访问请求的存储器地址;
e)将所述的存储器地址和一个具有上界地址和下界地址的所存储的无效存储器范围进行比较,以确定该存储器地址是否在无效存储器范围内;
f)如果存储器地址在无效存储器范围内,则执行下述步骤:
i)将请求的存储器访问模式和存储器操作的类型与存储的表示无效存储器范围的无效存储器访问模式和无效存储器操作类型的属性位相比较;以及
ii)如果根据属性位标识请求的存储器访问模式和存储器操作类型为存储器访问破坏,则产生一个错误信号到与存储器总线相连的处理器;
iii)向与存储器总线相连的总线控制单元发出一个取消信号,以中止存储器访问请求。
6.一种用于保护存储器免于访问破坏的非入侵方法,包括步骤:
a)监控存储器总线以检测一个存储器访问请求;
b)确定存储器访问请求的请求操作模式;
c)确定存储器访问请求的访问类型;
d)从存储器访问请求确定存储器地址;
e)比较存储器地址和一个存储的基地址,以确定该存储器地址是否在一个受保护的存储器范围内,所述判定过程通过下述步骤完成:
i)用屏蔽位屏蔽基地址以识别将比较的基地址的一部分;
ii)将基地址的一部分与存储器地址的相应部分相比较,以确定是否发生匹配,所述匹配表明存储器地址在受保护的存储器范围之内;
f)如果存储器地址在受保护的存储器范围内,则执行下述步骤:
i)将请求的存储器访问模式和存储器操作的类型与存有的表示对于受保护的存储器范围的存储器访问的无效模式和无效存储器操作类型的属性位相比较;以及
ii)如果根据属性位将请求的存储器访问模式和存储器操作类型标识为存储器访问破坏,则产生一个错误信号到与存储器总线相连的处理器;
iii)向与存储器总线相连的总线控制单元发出一个取消信号,以中止存储器访问请求。
CNB951932470A 1994-05-25 1995-05-23 受保护的存储器系统和方法 Expired - Fee Related CN1147775C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/249,011 1994-05-25
US08/249,011 US5513337A (en) 1994-05-25 1994-05-25 System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type

Publications (2)

Publication Number Publication Date
CN1149342A CN1149342A (zh) 1997-05-07
CN1147775C true CN1147775C (zh) 2004-04-28

Family

ID=22941665

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB951932470A Expired - Fee Related CN1147775C (zh) 1994-05-25 1995-05-23 受保护的存储器系统和方法

Country Status (8)

Country Link
US (2) US5513337A (zh)
EP (1) EP0760975B1 (zh)
CN (1) CN1147775C (zh)
AU (1) AU2646195A (zh)
BR (1) BR9507756A (zh)
DE (1) DE69533312T2 (zh)
TW (1) TW284868B (zh)
WO (1) WO1995032460A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486755A (zh) * 2010-12-03 2012-06-06 罗伯特·博世有限公司 存储器保护单元和用于控制对存储设备的访问的方法

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728363A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Dispositif de protection de l'acces a des mots memoires
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US6289408B1 (en) * 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US7113508B1 (en) 1995-11-03 2006-09-26 Cisco Technology, Inc. Security system for network address translation systems
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
AU1206097A (en) * 1995-12-28 1997-07-28 Eyal Dotan Method for protecting executable software programs against infection by software viruses
US5754647A (en) * 1996-03-27 1998-05-19 United Microelectronics Corporation Software protection apparatus and the method of protection utilizing read-write memory means having inconsistent input and output data
US5778199A (en) * 1996-04-26 1998-07-07 Compaq Computer Corporation Blocking address enable signal from a device on a bus
US6330648B1 (en) * 1996-05-28 2001-12-11 Mark L. Wambach Computer memory with anti-virus and anti-overwrite protection apparatus
US5974482A (en) * 1996-09-20 1999-10-26 Honeywell Inc. Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities
US5864692A (en) * 1996-12-16 1999-01-26 Hewlett-Packard Company Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions
JP3082701B2 (ja) * 1997-03-14 2000-08-28 日本電気株式会社 メモリ保護装置およびメモリ保護方法
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6035404A (en) * 1997-09-09 2000-03-07 International Business Machines Corporation Concurrent user access control in stateless network computing service system
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
US6516395B1 (en) 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6049876A (en) * 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
US6583945B1 (en) 1998-10-30 2003-06-24 Iomega Corporation Method for irreversibly write-securing a magnetic storage cartridge
US6434627B1 (en) 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
US6453429B1 (en) 1999-04-29 2002-09-17 International Business Machines Corporation Method and apparatus for bus hang detection and identification of errant agent for fail safe access to trapped error information
DE19921536C2 (de) * 1999-05-11 2001-06-07 Bosch Gmbh Robert Elektronisches Gerät
US6488581B1 (en) * 1999-06-22 2002-12-03 Igt Mass storage data protection device for a gaming machine
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
AUPQ321699A0 (en) 1999-09-30 1999-10-28 Aristocrat Leisure Industries Pty Ltd Gaming security system
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
GB0005535D0 (en) * 2000-03-09 2000-04-26 Smiths Industries Plc Processing systems
JP2002042414A (ja) * 2000-07-19 2002-02-08 Toshiba Corp ディスク記憶装置及び同装置に適用するセキュリティ方法
US8037530B1 (en) * 2000-08-28 2011-10-11 Verizon Corporate Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation as an intrusion detection sensor
US7043633B1 (en) * 2000-08-28 2006-05-09 Verizon Corporation Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation
US6826684B1 (en) * 2000-08-28 2004-11-30 Verizon Corporate Services Group Inc. Sliding scale adaptive self-synchronized dynamic address translation
US6895508B1 (en) * 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
US6763453B2 (en) * 2000-12-28 2004-07-13 Intel Corporation Security on hardware loops
DE10105284A1 (de) * 2001-02-06 2002-08-29 Infineon Technologies Ag Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
EP1258807A3 (en) * 2001-05-14 2005-11-02 Matsushita Electric Industrial Co., Ltd. Illegal access monitoring device, ic card, and illegal access monitoring method
US6779099B2 (en) * 2001-07-20 2004-08-17 Chien-Tzu Hou Operation method for controlling access attributes of a memorized page of a memory unit and its structure
US7334049B1 (en) 2001-12-21 2008-02-19 Cisco Technology, Inc. Apparatus and methods for performing network address translation (NAT) in a fully connected mesh with NAT virtual interface (NVI)
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7165018B2 (en) * 2002-11-22 2007-01-16 Texas Instruments Incorporated Address range comparator for detection of multi size memory accesses with data matching qualification and full or partial overlap
EP1471421A1 (en) 2003-04-24 2004-10-27 STMicroelectronics Limited Speculative load instruction control
US7864780B1 (en) 2003-04-29 2011-01-04 Cisco Technology, Inc. Apparatus and methods for handling name resolution over IPV6 using NAT-PT and DNS-ALG
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US20050283770A1 (en) * 2004-06-18 2005-12-22 Karp Alan H Detecting memory address bounds violations
DE102004033118A1 (de) * 2004-07-08 2006-02-02 Siemens Ag Einrichtung zur Ablaufsteuerung von Prozessen in einem Prozessorsystem
RU2007105099A (ru) * 2004-07-12 2008-08-20 Биометрик Системз Интернэшнл Пти Лтд (Au) Система безопасности
DE102004048945B4 (de) * 2004-10-07 2007-10-11 Nec Electronics (Europe) Gmbh Systemüberwachungseinheit
TWI330783B (en) * 2005-01-13 2010-09-21 Via Tech Inc Memory address monitoring device and method thereof
US20060168414A1 (en) * 2005-01-25 2006-07-27 Micron Technology, Inc. Memory block locking apparatus and methods
US7437599B2 (en) 2005-02-15 2008-10-14 Maxwell Technologies, Inc. System and method for effectively implementing an immunity mode in an electronic device
WO2006136189A1 (de) * 2005-06-23 2006-12-28 Bayerische Motoren Werke Aktiengsellschaft Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
US8683158B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Steering system management code region accesses
US7896823B2 (en) * 2006-01-17 2011-03-01 Theranova, Llc Method and apparatus for treating wound using negative pressure therapy
JP5011818B2 (ja) * 2006-05-19 2012-08-29 富士通セミコンダクター株式会社 半導体記憶装置及びその試験方法
JP4984721B2 (ja) * 2006-07-28 2012-07-25 ソニー株式会社 データ記憶装置、電力制御方法、並びに、通信装置
ITTO20070229A1 (it) * 2007-03-30 2008-09-30 Faiveley Transport Italia Spa Metodo per la protezione della memoria fisica in un sistema a microprocessore
US7917716B2 (en) * 2007-08-31 2011-03-29 Standard Microsystems Corporation Memory protection for embedded controllers
US8719925B1 (en) * 2009-08-25 2014-05-06 Sandia Corporation Content-addressable memory based enforcement of configurable policies
KR20110124992A (ko) 2010-05-12 2011-11-18 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 시스템
JP2013196167A (ja) * 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
US9734333B2 (en) * 2012-04-17 2017-08-15 Heat Software Usa Inc. Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
US9720843B2 (en) * 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US9405551B2 (en) 2013-03-12 2016-08-02 Intel Corporation Creating an isolated execution environment in a co-designed processor
US9239801B2 (en) * 2013-06-05 2016-01-19 Intel Corporation Systems and methods for preventing unauthorized stack pivoting
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US10346306B2 (en) * 2016-04-02 2019-07-09 Intel Corporation Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
US10795997B2 (en) * 2017-06-21 2020-10-06 Intel Corporation Hardened safe stack for return oriented programming attack mitigation
CN116097229A (zh) * 2020-09-02 2023-05-09 斯法夫股份有限公司 屏蔽存储器访问的高效处理

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
JPS4930578B1 (zh) * 1970-09-30 1974-08-14
JPS5140772B2 (zh) * 1971-07-26 1976-11-05
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
FR2323190A1 (fr) * 1975-09-05 1977-04-01 Honeywell Bull Soc Ind Dispositif pour proteger l'information contenue en memoire dans un calculateur numerique
DE2842548A1 (de) * 1978-09-29 1980-04-10 Siemens Ag Programmierbare speicherschutzlogik fuer mikroprozessorsysteme
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
JPH0782458B2 (ja) * 1985-09-06 1995-09-06 株式会社日立製作所 データ処理装置
US5155829A (en) * 1986-01-21 1992-10-13 Harry M. Weiss Memory system and method for protecting the contents of a ROM type memory
US5051889A (en) * 1987-10-23 1991-09-24 Chips And Technologies, Incorporated Page interleaved memory access
JPH01219982A (ja) * 1988-02-29 1989-09-01 Hitachi Maxell Ltd Icカード
JPH0812646B2 (ja) * 1989-03-03 1996-02-07 三菱電機株式会社 半導体集積回路
JPH02278446A (ja) * 1989-04-20 1990-11-14 Nec Ibaraki Ltd メモリアクセス制御回路
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486755A (zh) * 2010-12-03 2012-06-06 罗伯特·博世有限公司 存储器保护单元和用于控制对存储设备的访问的方法
CN102486755B (zh) * 2010-12-03 2017-05-24 罗伯特·博世有限公司 存储器保护单元和用于控制对存储设备的访问的方法

Also Published As

Publication number Publication date
EP0760975A4 (en) 1997-09-03
DE69533312T2 (de) 2005-07-21
EP0760975B1 (en) 2004-07-28
WO1995032460A1 (en) 1995-11-30
CN1149342A (zh) 1997-05-07
US5657475A (en) 1997-08-12
EP0760975A1 (en) 1997-03-12
US5513337A (en) 1996-04-30
DE69533312D1 (de) 2004-09-02
TW284868B (zh) 1996-09-01
BR9507756A (pt) 1997-10-07
AU2646195A (en) 1995-12-18

Similar Documents

Publication Publication Date Title
CN1147775C (zh) 受保护的存储器系统和方法
US6430667B1 (en) Single-level store computer incorporating process-local address translation data structures
US6631460B1 (en) Advanced load address table entry invalidation based on register address wraparound
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US4017839A (en) Input/output multiplexer security system
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
EP0327707A2 (en) Nonhierarchical program authorization mechanism
EP0026589A2 (en) Multi-programming data processing system process suspension
HUT67635A (en) Method and arrangement for preventing unauthorized access of the units of data in the storage blocks
US6904490B2 (en) Method and system of managing virtualized physical memory in a multi-processor system
KR20070080589A (ko) 메모리 속성들을 사용하기 위한 기술
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
CN1628284B (zh) 用于处理安全异常的方法与系统
EP0109504A2 (en) Protection system for storage and input/output facilities and the like
US4799186A (en) Electronic circuit constituting an improved high-speed stable memory with memory zones protect from overlap
CN113672237A (zh) 防内存越界的程序编译方法及装置
WO1993013483A1 (en) Software control of hardware interruptions
KR100791815B1 (ko) 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법
CN1016830B (zh) 利用存取和故障逻辑信号保护主存储器单元的设备和方法
US20240086195A1 (en) Monitor exclusive instruction
US20230236925A1 (en) Tag checking apparatus and method
JP7369701B2 (ja) 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法
EP0389886B1 (en) Ring reduction logic mechanism
KR100497671B1 (ko) 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템
JPH0412861B2 (zh)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040428

Termination date: 20100523