CN101095122A - 具有存储保护单元的数据处理设备 - Google Patents

具有存储保护单元的数据处理设备 Download PDF

Info

Publication number
CN101095122A
CN101095122A CNA2005800459098A CN200580045909A CN101095122A CN 101095122 A CN101095122 A CN 101095122A CN A2005800459098 A CNA2005800459098 A CN A2005800459098A CN 200580045909 A CN200580045909 A CN 200580045909A CN 101095122 A CN101095122 A CN 101095122A
Authority
CN
China
Prior art keywords
subregion
memory
storage area
equipment shown
address
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.)
Granted
Application number
CNA2005800459098A
Other languages
English (en)
Other versions
CN101095122B (zh
Inventor
P·基梅尔曼
R·R·格里森思怀特
D·J·西尔
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101095122A publication Critical patent/CN101095122A/zh
Application granted granted Critical
Publication of CN101095122B publication Critical patent/CN101095122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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

Landscapes

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

Abstract

一种数据处理器(100)具有可操作来存储数据值的存储器;一种存储保护单元(130),可操作来将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域。所述存储保护单元可操作来将所述多个存储区域(150)中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段(230)和用于保存子区域成员关系值的子区域字段(240)。所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域(160-1到160-8)是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。

Description

具有存储保护单元的数据处理设备
技术领域
本发明涉及数据处理系统。更特别地,本发明涉及具有存储保护单元的数据处理系统。
背景技术
已知利用存储保护单元来控制在数据处理系统中的存储器访问。这些存储保护单元定义了多个保护区域,这些保护区域的性质通过对保护单元寄存器进行写入来配置。这提供了存储性质上的控制级别,并且使得能够规定具有不同属性的不同存储区域。存储保护单元类似于存储器管理单元,但在以下方面更简单,它们不涉及从虚拟到物理地址的映射。此外,存储保护单元不使用转换表,但是将其本身限制到硬件中相对较少的区域,以提高响应的可预测性。
还知道对存储保护单元进行编程以具有两个或更多的重叠存储区域。重叠的区域增加了存储区域可以如何被映射到数据处理系统中的物理存储设备的灵活性。但是,为了简化实现成本,通常存在对分配存储区域的方式的某些约束。存储区域的大小必须是二的次方并且可以在例如250B到4GB的范围。但是,存储区域的开始地址被约束为区域大小的倍数,即是对于2n的区域大小,起始地址必须是k*2n,其中k是整数。这意味着不可能在这种系统定义任意大小的存储区域。尽管,可以构建具有任意大小存储区域的系统,但是如此做更加昂贵。存储保护单元通常提供在八到十六个不同存储区域的范围中。
由于在已知系统中对分配存储区域的方式的约束,可能需要分配具有相应存储属性集合的一个以上的存储区域,以便按照处理设备的要求来定义给定大小的存储块。这是因为存储属性必须应用于整个存储区域。
此外通过已知的存储保护单元对存储区域的描绘在如下的情况中是特别不灵活的,在该情况中运行在数据处理设备上的应用进程要求对不同组外围设备的访问许可。这种困难是由以下情况引起的,即通常将连续的存储块分配给外围设备的全集。由于数据处理设备所执行的不同应用进程的各种性质,所以正常的是,不同的进程将要求对已知存储单元中外围设备的不同子集的访问许可的不同集合。为了适应这种情况,已知的是向每个单独的外部设备分配相应的存储区域。由于通常只提供8到16个存储区域,所以来自有限数量的区域的要求太高,并且这已经导致要求要由存储保护单元定义的数量增加的存储区域。因此,存在这样的需要,即提供比已知存储保护单元更大的灵活性但不牵涉引入数量大增的存储保护区域的开销的数据处理设备。
发明内容
从本发明的一方面看去,提供了一种用于处理数据的设备,所述设备包括:
存储器,可操作来存储数据值;
存储保护单元,可操作来将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域,所述存储保护单元可操作来将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
本技术认识到,允许每个存储区域被划分为多个单独的子区域并在与存储区域关联的存储区域区分符中提供用于保存子区域成员关系值的子区域字段,所述子区域成员关系值规定每个子区域是应用了所定义的存储属性集合的成员子区域,还是可替换地没有应用与存储区域关联的存储属性的非成员子区域,以上操作在分配物理存储器中提供了很大的灵活性。将存储属性集合只关联到存储区域的规定部分即各个子区域的能力,允许克服存储区域的开始地址必须是存储区域大小的整数倍的限制,因为如果对于期望分配的存储块大小来说不可能定义整个存储区域,则仍然有可能向该存储块分配大小比所要求存储块大的为单个存储区域,但可能将该不要求的更大存储区域的一部分规定为非成员子区域。其它存储区域可接着使用非成员子区域,那时它们可以被选作为成员子区域。
只选择某些子区域作为成员子区域的能力还为每个外围设备解决了存储区域低效使用的问题。这是因为单个存储区域的不同子区域可以与外围设备全集中不同的外围设备相关联,并且通过简单地将与被准许访问的给定外围设备集合相关联的那些子区域分配为成员子区域,来在单个存储区域内接纳向不同应用进程准许的不同访问许可。
将理解的是,由存储区域区分符定义的存储属性集合可以是多个和变化的。在一个实施例中,存储属性集合包括存储器访问许可。因此,某些子区域可以被定义为只读、读写都可访问或都不可访问。在另一个实施例中,数据处理设备包括多个级别,包括用户级和特权级,并且存储器访问许可规定了允许访问其中的哪个级别。因此,例如特权的用户级对于普通应用进程可用,而在出现异常时,可以向特权级提供访问。因此,对于特定的存储区域,可以给予用户级访问只读许可,而可以为特权级访问提供读写许可。这提供了允许更高的特权级被准许对某些存储区域,比如那些保存指令和配置参数的存储区域进行访问的灵活性,该访问所受限制要小于在用户级上准许对这种存储区域的访问。
在进一步的实施例中,存储属性集合包括成员子区域是可高速缓冲存储器还是不可高速缓冲存储器的指示。另一个可替换的实施例具有包括成员子区域是可高速缓冲还是不可高速缓冲的指示的存储属性。这使得程序员能够控制与高速缓冲数据或缓冲数据相关联的任何相反效果。例如,可以期望避免分配可高速缓冲或可缓冲的存储子区域,以防止在程序员所不期望的时间出现存储器访问,或者可替换地避免存在可以保存数据项的多个物理位置。由于高速缓冲存储器的特性,某些存储器映射的输入/输出位置不适于高速缓冲。设计在可高速缓冲/不可高速缓冲的存储区域内的某些子区域和在可缓冲/不可缓冲的给定存储区域内的某些子区域的能力向程序员提供使存储器资源更有效使用的更多灵活性。
给定存储区域的子区域可以作为任何可能数量的成员子区域或非成员子区域及其组合而被分配,仅仅受可用子区域总数的约束。但是,在一个实施例中,子区域字段用于规定多个连续的成员子区域。这克服了可由存储保护单元定义的存储区域大小的任何限制,因为通过选择比所要求存储区域更大的存储区域并选择连续的子区域组作为成员子区域并将子区域剩余的块分配为非成员子区域来定义非标准大小的存储区域的等效物。这有效地定义了中间大小的存储区域,并且避免了已知系统中利用具有两个单独定义的存储属性集合的两个不同存储区域来形成非标准大小的存储区域的要求。
在本发明的一个不同的实施例中,子区域字段用于规定多个非连续的成员子区域。这在期望向两个不同的应用进程分配对外围设备的不同子集的访问许可而不消耗每个外围设备的整个存储区域的情况下提供了更大的灵活性。这是通过将外围设备与子区域相关联,以使得单个存储区域与外围设备集合相关联来实现的。对于不同的程序应用,与被许可了访问的外围设备关联的那些子区域被定义为成员子区域,而与没有被许可访问的外围设备关联的那些子区域被定义为非成员子区域。因此,利用具有有限数量的被定义存储区域的存储保护单元可以接纳更多的外围设备。
尽管存储保护单元的多个存储区域可以是不重叠的连续定义的存储区域,但在本发明的一个实施例中,存储保护单元的存储区域是重叠的存储区域。因此,如果给定的子区域位于一个以上的存储保护区域内,则可以向它应用例如编号最高的存储区域的存储属性。这在根据本技术的系统中尤其有用,其中每个存储区域包括多个子区域,这些子区域可以被分配为成员子区域或非成员子区域。非成员子区域可以通过位于低层次级中的存储区域而指派存储属性,其已经将该子区域定义为成员子区域。例如,如果存储器的给定部分被分配为最高编号的存储区域级别中的非成员子区域,则它的存储属性将仅仅对应于次最高存储区域级别的属性,为此该子区域被定义为成员子区域。在一个特殊的实施例中,如果多个存储区域之一的子区域字段将存储器的给定地址范围规定为非成员子区域,则与多个成员区域中不同的一个对应的子区域字段也将相同的给定地址范围规定为成员子区域。这避免了在没有指派的存储属性集合的情况下离开该存储器地址范围。
在本发明的一个实施例中,数据处理设备可操作来执行具有不同存储器地址映射的多个不同处理应用。这种设备的一个例子是一种能够执行不同处理应用的线程化运行的设备。在该实施例中,如果在执行多个不同处理应用中的不同应用之间出现上下文切换,则存储保护单元可操作来更新多个存储区域中至少一个的子区域字段。通过将每个成员区域的子区域中的不同子区域分配为成员子区域和非成员子区域,这使每个成员区域的存储属性能够保持固定,但是不能使不同的属性应用于不同的子区域。因此例如,如果最高编号的存储区域的子区域之前被分配为成员子区域,而在上下文切换之后,它被分配为非成员子区域,则在上下文切换之前,最高存储区域的存储属性将应用于该子区域,而在上下文切换之后,不同的较低编号的存储区域的存储属性将应用于该同一存储器部分。在一个进一步的实施例中,存储保护单元可操作来在上下文切换出现时更新属性字段。这允许给定存储区域的存储属性可以被改变,以反映正在执行的应用进程的存储器使用要求的变化。
尽管存储区域可以被划分为不同大小的子区域,但在一些实施例中,存储区域的子区域可以被设计成相等的大小。这简化了子区域的分配,例如简化了在与外围设备集合对应的连续存储块中为给定外围设备分配给定子区域。
将会理解,可以用各种不同方式来在数据处理设备中识别当前地址字的地址规定部分。但是,在本发明的一个实施例中,地址掩码用于根据规定相关存储区域大小的大小值来识别当前地址字的地址规定部分。这使得能够有效地识别当前存储器地址所属于的存储区域。
在一个实施例中,数据处理设备包括子区域有效性逻辑,可操作来确定子区域有效值,该子区域有效值规定当前存储单元是与成员子区域之一还是与非成员子区域之一相关联。这提供了识别给定存储器地址是否对应于给定存储区域和该给定存储区域的成员子区域两者的方便方式。
将会理解,当前存储单元所属于的子区域可以直接由当前地址字值连同区域大小和地址来确定,以作为该子区域和每个区域的单独确定。但是,这种识别可以更有效地用面积减小的电路通过使用基于地址掩码的方法来执行,使用基于地址掩码的方法是为了识别出当前存储单元属于多个区域中的哪个,并重新使用地址掩码来识别当前存储单元属于相同区域的多个子区域中的哪个。
在一个进一步的实施例中,有效性逻辑可操作为通过逻辑上将来自地址掩码的位和来自当前地址字的位相组合,使用地址掩码通过计算选择位集合来识别特殊子区域。在一个又进一步的实施例中,子区域有效性逻辑可操作来通过在逻辑上组合选择位集合中的不同选择位来计算最终的选择位集合。该方法降低了根据当前地址字确定与当前地址相关联的子区域所要求的多路复用器的数量。因此,这提供将那些规定与存储器地址相对应的特殊子区域的地址位隔离的方便方式。
在一个进一步的实施例中,子区域有效性逻辑包括排列逻辑,可操作来排列最终的选择位集合,以计算子区域的有效值。在一个实施例中,排列逻辑可操作来排列最终的选择位集合,而在另一个可替换实施例中,排列逻辑可操作来排列子区域成员关系值,以计算子区域有效值。这两个实施例提供了从地址掩码中恢复规定了对应存储区域的适当子区域的地址位的可替换方式。
尽管排列逻辑可以在存储子区域成员关系值之后但在在计算该子区域有效值之前执行该子区域成员关系值的排列,但是在本发明的一些实施例中,排列逻辑可操作来在向运算数存储器写入子区域成员关系值时执行排列。这通过将排列阶段与向存储器写入子区域成员关系值的阶段相组合来提供更有效的逻辑电路。
将会理解,可以提供单独的排列逻辑集合,以排列每个单独存储区域的子区域成员关系值。但是,在本发明的一个实施例中,单个逻辑模块被用于为多个存储区域的每一个执行排列。这减少了管理存储子区域供应所需要的电路数量。
从本发明的另一方面看去,提供了一种用于处理数据的方法,所述方法包括:
在存储器中存储数据值;
使用存储保护单元,来将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域;
将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
从本发明的又一方面看去,提供了一种用于处理数据的设备,所述设备包括:
用于存储数据值的装置;
存储保护装置,用于将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域,所述存储保护装置可操作来将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
通过下面对示例实施例的详细描述并结合附图阅读可以清楚的知道本发明上面以及其它目的、特征、和优点。
附图说明
图1示意性说明了具有存储保护单元的数据处理系统;
图2A示意性说明了已知存储保护单元的存储区域描述符;
图2B示意性说明了根据本技术并具有子区域字段的存储描述符;
图3示意性说明了可操作来分配重叠存储区域的存储保护单元的不同存储区域;
图4A示意性说明了分配两个不同存储区域以规定不同大小的存储块;
图4B示意性说明了如何根据本技术来使用单个存储区域,以按照图4A所规定的来规定相同的存储块;
图5A、5B和5C示意性说明了通过在数据处理系统上运行的不同应用进程来对不同外围设备进行访问的存储管理;
图6示意性说明了可操作来计算子区域有效位的逻辑;
图7说明了用于计算与图6的电路元件的输出相对应的值的公式;
图8A到8B说明了图6的电路的示例计算;
图9A示意性说明了电路中用于计算子区域有效位的部分,包括用于排列子区域成员关系值的逻辑;
图9B示意性说明了电路中用于计算子区域有效位的部分,具有可操作来排列最终选择位的排列逻辑;
图10示意性说明了排列逻辑中可操作来排列多个不同存储区域的子区域成员关系值的单个框;
图11示意性说明了可操作来确定成员子区域的区域命中的逻辑部分。
具体实施方式
图1示意性说明了根据本技术的数据处理设备。数据处理设备100包括处理逻辑110、可操作来存储数据和/或指令的存储器120和存储保护单元130。存储器120连接到总线105并且处理逻辑110连接到存储保护单元130,存储保护单元130依次连接到总线。存储保护单元130提供管理存储器120的方式并定义具有相应存储属性140集合的多个不同的存储区域。存储保护单元130管理物理存储地址空间。存储保护单元130通过向相应保护单元寄存器进行写入来定义与多个保护区域中的每一个相关联的属性。存储区域的大小是2n,其中n是整数并且大小的范围从4KB到4GB。存储区域的开始地址在该实施例中被限制为2n的倍数。图1示出了存储区域150,其被划分成多个子区域160-1到160-8。相对于整个存储区域150来定义存储属性140的集合。但是,存储区域150的存储区域区分符具有子区域字段,用于保存子区域成员关系值,该值为多个子区域160-1到160-8的每一个规定了该子区域是成员子区域还是非成员子区域。在图1中,成员子区域是阴影区域160-2和160-6。存储保护单元130只将存储属性140应用于成员子区域而不应用于非成员子区域。
存储属性140包括:存储访问许可;关于存储区域是否可读和/或可写的指示;存储区域是否是可高速缓冲存储区域的指示;和存储区域是否可缓冲的指示。访问许可包括访问的用户级和访问的特权级,并且存储区域区分符的属性字段的存储访问许可规定对相关存储区域进行访问的那些级别中的哪一个是被允许的。访问的特权级使对存储器、指令和配置参数的访问相比于用户级不那么受限制,并且处理逻辑110例如在产生异常时将从用户级切换到特权级。由于高速缓冲器和写缓冲器改变了对主存储器访问的次数、类型和定时,所以它们不适于存储与某些类型的存储单元关联的数据。例如,写缓冲器和回写高速缓冲器依赖于能够延迟到存储器120的存储,使得其实际上出现在由处理逻辑110执行存储指令的稍后时间。这可能不适合于某些类型的存储单元,比如存储映射的中断/输出单元。因此,存储保护单元130允许给定的存储区域被指定为不可高速缓冲的、不可缓冲的或这两者。规定存储器的子区域以及更粗略标度的存储区域的能力提供了在与已知存储保护系统有关的存储器资源管理中附加的灵活性。
图2A示意性说明如在已知存储保护单元中使用的存储区域区分符。存储区域区分符包括基地址字段210、大小字段220和属性字段230。为由存储保护单元130定义的每个存储区域提供一个这种存储区域区分符,其范围通常从8到16。基地址字段210规定了关联的存储区域150的第一字节的地址。第一字节的地址被要求为区域大小的倍数。此外,在该布置中,存在使存储区域与其大小的倍数对准的要求,因此,对于大小为2n的存储区域,该存储区域应当与k*2n对准,其中k是整数值。大小字段220规定了关联的存储区域的大小,在该布置中,其范围从250个字节到4GB。属性字段230规定了与存储区域关联的存储属性。这些存储属性包括访问的用户级或特权级是否被许可;与存储区域是否可读和/或可写有关的指示;存储区域是可高速缓冲还是不可高速缓冲的指示以及存储区域是可缓冲还是不可缓冲的指示。在已知的存储保护系统中,尽管存储区域的大小可以变化,但是存储属性只与整个存储区域关联,图2A的存储区域区分符与所述整个存储区域关联。
图2B示意性说明了根据本技术的存储区域区分符。图2B的存储区域区分符具有与图2A所示的已知区分符相同的三个字段(即基地址字段210、大小字段220和属性字段230)。但是,图2B的存储区域区分符具有附加的子区域字段240,其包含多位子区域成员关系值,该成员关系值为对应存储区域的多个子区域的每一个规定了存储区域的相应子区域是成员子区域还是非成员子区域。在属性字段230中规定的属性只应用于那些由子区域成员关系值规定作为成员子区域的子区域,并且规定的属性不应用于那些被表示为非成员子区域的子区域。因此,图2B的存储区域区分符使给定的存储区域能够被划分成多个子区域,使得对应于存储区域的属性不被应用于该区域的整个存储范围,而是只应用于由子区域成员关系值确定的子区域的子集。可在不需要从已知系统中的存储区域数量起增加存储区域的数量的情况下提供这种灵活性。尽管在图2B的实施例中,在描述符中规定了存储属性和子区域成员关系值,但是将会理解,这些值可以被分开存储在不同的寄存器中并由存储保护单元130获取。
图3示意性说明了由存储保护单元130管理的存储区域如何被布置为重叠区域。图3示出了对应于物理存储地址的地址块310。在该例子中,所示的地址范围是从0x0000(十六进制)到0x4000。并且在图3中示出的是多个不同的存储区域320、330、340、350。可以看出,在相应存储区域之间的物理存储地址空间中存在一些重叠。由于,在该布置中要求每个存储区域的大小是2n并且与2n对准,如果较小的存储区域重叠,则它们全部位于较大的区域内,如图所示。例如,存储区域320、330和340都包括地址0x1800。在图3中的相应存储区域的阴影区域表示成员子区域,而存储区域的非阴影区域表示非成员子区域。可以看出,物理存储地址0x1800对应于存储区域320和330的成员子区域,而且还对应于存储区域340的非成员子区域。重叠的存储区域增加了不同存储区域如何映射到数据处理系统中的物理存储设备的灵活性。为了有效管理重叠的区域,存储保护单元310应用固定的优先权方案以确定哪个存储区域在定义要应用于给定存储部分的存储属性中享有优先权,其中给定的存储部分落在多个存储区域中的一个以上内。特别地,与具有较高优先级的存储区域关联的属性从具有较低优先级的存储区域的那些属性接过优先权。在该例子中,优先级取决于如存储保护单元130所定义的存储区域的布置。因此,在图3的一个例子中,如果存储区域320是级别0区域,存储级别330是级别1区域,存储级别340是级别2区域并且存储级别350是级别3区域,则所遵循的是,因为存储区域320和存储区域330两者都具有包括地址0x1800的成员子区域,所以为存储级别1,即存储区域330规定的属性被优选地应用于为存储级别0,即存储区域320规定的存储属性。
存储器的重叠属性还可用于规定背景区域。例如,考虑到存储保护单元130已经定义了散布在整个4GB的物理存储地址空间中的多个存储区域的情况。如果编程误差出现并且处理器向没有落在任何所定义存储区域内的存储地址发出访问请求,则存储保护单元130将通常异常终止存储访问。但是,通过定义级别0处的存储区域为覆盖整个物理存储地址空间的4GB背景区域,如果存储访问没有落在任何其它所规定的存储区域内,则该访问将由缺省属性集合控制,所述缺省属性集合已经由用户编程到级别0处的存储区域的存储区域区分符中。
图4A和4B示意性说明了当规定存储区域内的连续子区域时由本技术提供的附加灵活性。由于存储保护单元130所实现的存储区域的大小和基地址方面的约束,即是,存储区域的开始地址是存储区域大小2n的倍数的约束,在只规定存储区域但不允许定义存储子区域的已知系统中,不可能分配任何大小的存储区域。该情况由图4A的例子来说明,其中应用进程请求分配大小为24KB的物理存储器的连续块。但是,存储保护单元130不具有分配大小为24GB的存储区域的灵活性,且因此需要分别地分配两个存储区域:长度为16KB的第一存储区域410和长度为8KB的第二存储区域420,以构成24KB的总存储块。与分别规定两个存储区域以分配连续的24KB存储块关联的开销较高,因为必须为两个存储区域的每一个单独地规定属性。
通过对比,图4B说明根据本技术的设备如何分配24KB的连续存储块。将存储区域划分成多个子区域并为这些子区域的每一个规定该存储区域是否应当应用于特殊子区域(利用子区域成员关系值的适当位)的能力,有可能通过向进程分配单个32KB区域并将该区域内的多个子区域设置为成员子区域而将剩余的子区域设置为非成员子区域来分配24KB部分的物理存储器。尤其,在图4B的例子中,32KB的存储区域被划分为8个相等的子区域,每一个的大小为4KB。因此,通过分配六个连续4KB的子区域作为成员子区域并且剩余的两个4KB子区域作为非成员子区域,就可以方便地定义24KB的存储部分。利用图4B的单个区域来定义24KB部分的优点在于,存储属性与整个32KB区域相关联,并因此可能通过使用关联存储区域区分符的子区域字段来只定义一次,该存储属性可只应用于32KB存储区域中所要求的24KB部分。
图5A到5C示意性说明了将不同的成员子区域集合分配给不同的处理外围设备集合。图5A说明了在处理逻辑110上运行的第一应用进程的全存储映像,而图5B说明了在处理逻辑110上运行的不同的第二应用进程的全存储映像。这些应用进程对应于诸如文字处理应用、电子数据表应用或计算机游戏应用的处理应用。在图5A到5C的例子中,考虑到所有8个外围设备由数据处理设备100提供的情况。通常,连续的存储块将被分配给所有8个外围设备。但是,图5A的进程1和图5B的进程2要求对不同外围设备子集的不同访问许可集合。例如,在图5A的第一进程中,所期望的是只能够访问如存储映像部分514、516、518分别指示的外围设备P1、P2和P5。该第一进程不允许使用外围设备P2、P4或P6到P8。通过对比,图5B的第二应用进程允许访问为P1、P2和P4的外围设备的不同子集,并且不允许访问剩余的外围设备P3和P5到P8。图5A的存储映像还示出分配给指令510的存储块和分配给数据存储的第二存储块512。类似地,如图5B的存储映像所说明的应用进程包括指令存储块520和单独的数据存储块522。每个数据存储的存储块512、522和每个指令存储块510和520可包括一个或多个存储区域。第二应用的指令存储器520不与第一应用的指令存储器510重叠。
在包括存储保护单元的已知系统中,向不同应用进程提供对不同外围设备子集的访问的要求是通过单独向每个外围设备分配相应的存储区域而满足的。由于通常提供8到16个存储区域,因此数据处理设备当试图满足大的外围设备组以及不同处理应用的不同要求时可迅速用完可用的存储区域。
但是,根据本技术,个别地向相应外围设备分配相应的存储区域的要求方便地被避免,因为它担负为每个存储区域定义各自子区域的灵活性。此外,每个子区域可以被指定为被活动施加了与区域关联的存储属性的成员子区域,或者没有被活动施加了与区域关联的存储属性的非成员子区域。因此,在图5A到5C的具有总共8个外围设备的系统中,图5C所示的存储区域被方便地再分成8个子区域,使得每个子区域可以与给定的外围设备关联。因此,在图5A的存储映像中说明的应用进程中,许可只访问外围设备P1、P3和P5的请求通过使用单个存储区域并且将与P1、P3和P5关联的子区域规定为成员子区域而将与P2、P4和P6到P8关联的子区域规定为非成员子区域而满足。类似地,在图5B中说明的第二应用进程的存储映像中,其中要求访问外围设备P1、P2和P4,这可以通过使用单个存储区域并且将与P1、P2和P4关联的子区域规定为成员子区域而将与P3和P6到P8关联的子区域规定为非成员子区域而实现。以这种方式,外围设备的不同子集可以由不同的应用进程来访问而不消耗每个外围设备的存储区域。更合适的是,单个存储区域可以与子区域的成员和非成员性质一起用于为不同进程规定外围设备访问许可的不同集合。
如果出现第一进程和第二进程之间的上下文切换,则存储保护单元130可操作成为每个存储区域更新图2B的子区域字段240,以便改变子区域中是该存储区域的成员子区域的子区域。此外,存储保护单元130也可以为一个或多个存储区域更新属性字段230,以按要求适应上下文切换所引起的系统存储器的变化。
图6示意性说明了子区域有效性逻辑中可操作来确定子区域有效位的部分,所述子区域有效位规定了给定的子区域是成员子区域还是非成员子区域。该逻辑布置包括用于存储当前地址字的第一寄存器610、用于存储掩码字的第二寄存器620、27个与门630-5到630-31的集合、三个逻辑或门642、644和646的集合;子区域成员关系值排列框650;寄存器660;和乘法器670。
寄存器610保存由处理逻辑110生成的32位地址字,而寄存器620保存用于识别当前地址字相关地址规定部分的地址掩码字。在寄存器620中存储的掩码字具有取决于在图2B的存储区域区分符中规定的大小值220的值。与门630-5到630-31被布置为计算相应的选择位Si。与门630-5例如接受来自地址字寄存器610的第五元件的第一输入,来自掩码字寄存器620的第八元件的第二输入和与掩码字寄存器620的第五寄存器元件对应的第三反向输入。通常,i=5到31的选择位Si由公式Si=M(i+3).Ai.NOT(Mi).[SI=Mi+3.AiNOT(Mi)]给出。第一或门接收选择位S10、S13、S16、S19、S22、S25、S28、S31作为输入值。第二或门644接受选择位S6、S9、S12、S15、S18、S21、S24、S27和S30作为输入,而第三或门646接收选择位S5、S8、S11、S14、S17、S20、S23、S26和S29作为输入。因此,或门642、644和646的每一个接收由与门630-5到630-31输出的27个选择位的子集作为输入,其中每隔两个选择位输出被提供给给定的或门。或门642、644和646的输出对应于最终的选择位;由F位表示,其用于确定与当前地址字对应的存储单元属于图5C的8个可能子区域中的哪个。使用三个或门642、644和646来从与门630-5到630-31选择包括每隔两个选择位的组,这简化了处理逻辑,因为不这样的话,将要求包括24个多路复用器的阵列。来自相应或门642、644和646的三个F位作为选择输入被提供给多路复用器670。子区域成员关系值排列块650接收图2B的大小字段220的大小值和8位的子区域成员关系值作为输入,该子区域成员关系值规定关联的存储区域的每个子区域是成员子区域还是非成员子区域。8位的子区域成员关系值在被写入到寄存器660并接着作为输入被提供给多路复用器670之前由排列块650排列。
多路复用器670的输出是子区域有效位,该子区域有效位规定了当前地址字是否表示属于成员子区域的存储单元。在本示例实施例中因为或门布置642、644和646的性质而要求排列块650,这意味着从这些或门输出的F位可表示三个地址位的顺序排列,该三个地址位规定了当前存储地址对应于8个可能子区域中的哪个。这将会在下面参考图7和图8A到8D来更全面地描述。
图7是说明选择位和F位是如何在图6的电路中被计算的例子。在该简化的例子中,当前地址字是8位地址字Ai,其中i=0到7,并且类似地,掩码字是8位掩码字Mi,其中i=0到7。选择位Si,i=0到7,表示图6的与门630-5到630-31的输出。选择位由如图7所示的公式710规定,并且从不同选择位的逻辑组合导出三个F位的每一个。特别地,第一F位,F0是通过对选择位S0、S3和S6进行逻辑或操作而给出的;第二F位,F1是通过对选择位S1、S4和S7进行逻辑或操作而给出的;并且第三F位,F2是通过对输入S2和S5进行逻辑或操作而给出的。这类似于由图6的逻辑或门642、644和646所执行的计算,因为图7的例子中的F位是根据由两个中间S位隔开的或等效地每隔两个S位的选择位来计算的,而在图6的电路中,到或门的输入是从每隔两个的逻辑与门选择的。
图8A到8D给出了根据图7给定的公式来计算F位的四个特定例子。在这四个例子的每一个中,根据公式710来计算选择位Si,并且非零的选择位总是对应于前三个位,这三个位紧跟着掩码字M的为1的串的末尾。在图8A的例子中,掩码字具有四个连续的1,之后跟着在最低位位置中四个连续的0。从公式710计算选择位,使得例如S1等于A1 AND M4 AND(NOT M1)=A1 AND 1 AND 1=A1。类似地,S0等于A0 AND M3 AND(NOT M0)=A AND 0 AND 1=0。选择字的其它位以类似的方式被计算。根据图7中给定的公式来计算最终的选择位Fi,使得F0=S0 OR S3 OR S6=0 OR A3 OR 0=A3;F1=S1 OR S4 OR S7=A1 OR0 OR 0=A1;和F2=S2 OR S5=A2 OR 0=A2。图8B到8D的另外三个例子的F位以类似的方式计算。三个F位一起规定了当前地址属于8个可能子区域中的哪一个。但是,由于使用图6的逻辑电路来计算F位的方式,所以可以排列规定给定区域内有关子区域的地址位Ai。为了确定F位是否实际上被排列,执行计算以确定log2(大小)以及当除以3时的log2(大小)的余数,这由符号log2(大小)%3来表示,从而提供是否要求实际重新排序的指示。该计算通过注释log2(大小)的值实际上对应于包括在掩码字中0的总数来简化。因此,在图8A的例子中,值log2(大小)=4并且4%3等于1。因为余数值为非零,因此这告诉我们,需要特殊的排列来恢复规定子区域的三个地址位的正确顺序。在图8B的例子中,掩码字包括5个连续的1,之后跟着在最低位位置中的三个连续的0。在该情况下,F位F0、F1和F2分别对应于地址位A0、A1和A2。因为在图8B的掩码字中存在三个0,所以log2(大小)等于3,使得在该情况下的余数为0并且不要求排列。在图8C中,掩码字包括三个连续1,之后跟着在最低位位置中的五个连续的0。在该情况下,如在图8A的情况下,F位以排列顺序被恢复。特殊的,F0、F1和F2分别等于地址位A3、A4和A2。在该情况下,因为掩码字具有五个0,所以log2(大小)等于5并且除以3时的余数等于2,使得要求排列。最后,在图8D的例子中,掩码字由两个1之后跟着在最低六个位位置中的六个连续的0所形成,并且F位以由如下事实指示的非排列顺序被恢复,该事实即是log2(大小)等于6,使得除以3的余数等于0。从图8A到8D的例子将会理解,从图6的电路中恢复的F位允许地址位的隔离,这些地址位规定了与给定当前地址字对应的适当子区域。但是,F位可表示以排列顺序规定地址位Ai的子区域,使得该排列必须被补偿。
图9A是用于计算子区域有效位的第一布置,子区域有效位用于确定给定当前地址是否在作为成员子区域的子区域中。该布置包括用于存储子区域成员关系值的8位寄存器910、用于排列该子区域成员关系值的位的排列逻辑920的方框和可操作来输出子区域有效位的多路复用器930。该布置应用了以下事实,要么对子区域成员关系值要么对F位本身执行用于恢复F位正确顺序的排列。图9A的布置在寄存器910中存储未排列的子区域成员关系值,并且将该子区域成员关系值提供给排列逻辑920,其中8位子区域成员关系值根据log2(大小)除以3的余数来排列。排列逻辑920输出排列的子区域成员关系值到多路复用器930。以非排列顺序的F位作为选择位被提供给多路复用器930,使得多路复用器的输出指示给定子区域是成员子区域还是非成员子区域。F位指示8个可能子区域中的特殊子区域,当前地址对应于该特殊子区域,而存储在寄存器910中的子区域有效值指示该特殊子区域是否是成员子区域。排列逻辑920根据log2(大小)%3的值来执行排列。在余数为0时,子区域成员关系值保持为未排列。如果未排列的子区域成员关系值具有位顺序[7,6,5,4,3,2,1,0],则为1的余数导致子区域有效值位顺序[7,3,6,2,5,1,3,0],而为2的余数导致子区域有效值位顺序[7,5,3,1,6,4,2,0]。图9A的布置类似于图6的布置之处在于,两种情况下都排列了子区域成员关系值。但是,在图6的布置中,在将子区域成员关系值写入到寄存器660之前执行排列,而在图9A的例子中,在从寄存器910读出子区域有效值之后并在将它提供给多路复用器930之前来排列它。
图9B示出了用于计算子区域有效位的可替换布置。类似于图9A,该布置包括用于保存8位的子区域成员关系值的寄存器910和多路复用器930。但是,在该特殊的布置中,不是在从寄存器910读出子区域成员关系值之后来排列它的位,而是将未排列的子区域成员关系值直接提供给多路复用器930。相反,在将F位提供给多路复用器930之前来排列它们。该排列由F位排列框940来执行。F位排列框940接收未排列F位作为输入并根据存储区域的大小,即值log2(大小)%3来执行排列。在上面已经相关于图8A到8D描述了排列的性质。此外,类似于图9A,多路复用器930的输出是子区域有效位。
图10示意性说明了排列子区域成员关系值以便计算子区域有效位的可替换布置。在该布置中,单个排列逻辑模块1010用于排列与多个存储区域的每一个对应的子区域成员关系值。在图10中,保存8位的子区域成员关系值的寄存器由框元素1022、1024、1026和1028表示。所有这四个寄存器是可写的。该布置规定了有效地重新使用相同的排列逻辑框来排列与保存8位子区域成员关系值的所有寄存器对应的子区域有效值。
图11示意性说明了可操作来计算区域命中值的逻辑布置,区域命中值指示与给定存储区域关联的存储属性是否应当被应用于当前地址字对应的特殊子区域。回忆存储属性只应用于是成员子区域的那些子区域。该布置包括三个32位的寄存器:-当前地址字寄存器1100;基地址寄存器1110和掩码字寄存器1120。该布置还包括一系列二十七个异或(XOR)门1130、一系列27个逻辑与门1140和一个逻辑或非门1150。由Ai来表示当前地址字1100的位,其中i是范围0到31的整数,并且由Bi来表示基地址1110的位,则可以看出一系列的异或门1130执行计算Ai XOR Bi,i=5到31。所述一系列的与门接收相应异或门1130的输出作为第一输入,和掩码字Mi的对应位作为第二输入。因此,由与门1140执行的逻辑操作是(Ai XOR Bi)AND Mi,i=5到31。所述一系列与门1140的27个输出作为输入被提供给或非门1150。或非门1150的附加输入是由图6的布置所计算的子区域有效位。在没有子区域有效位的附加输入的情况下,图11的布置对应于用于指示当前地址是否对应于与给定基地址关联的存储区域的非逻辑电路。但是,子区域有效位输入1160的包含改变了该电路的功能,使得它指示当前地址字表示在与所规定的基地址1110关联的存储区域中的地址,并且还指示当前地址所对应的特殊子区域是成员子区域。可以看出,如果子区域有效位的值是1,则由于在输入到或非门时它的值被反向以便实现区域命中,对应于来自或非门1150为1的输出,因此所必须的是,子区域有效位应当具有为1的输入值。
尽管这里参考附图详细描述了本发明的示例实施例,但将会理解的是,本发明不限于这些精确的实施例,并且各种变化和变型可以在这里由本领域技术人员实现,而不会偏离所附权利要求所限定的本发明的范围和精神。

Claims (24)

1.一种用于处理数据的设备,所述设备包括:
存储器,可操作来存储数据值;
存储保护单元,可操作来将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域,所述存储保护单元可操作来将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
2.如权利要求1所示的设备,其中所述存储属性集合包括存储访问许可。
3.如权利要求1所示的设备,其中所述设备可在包括用户级和特权级的多个级别中操作,并且所述存储访问许可规定所述多个访问级别中的哪个被许可。
4.如权利要求1所示的设备,其中所述存储属性包括与所述成员子区域是可读还是可写有关的指示。
5.如权利要求1所示的设备,其中所述存储属性集合包括所述成员子区域是可高速缓冲还是不可高速缓冲的指示。
6.如权利要求1所示的设备,其中所述存储属性集合包括所述成员子区域是可缓冲还是不可缓冲的指示。
7.如权利要求1所示的设备,其中所述存储保护单元可操作来使用所述子区域字段来规定多个连续的成员子区域。
8.如权利要求1所示的设备,其中所述存储保护单元可操作来使用所述子区域字段来规定多个非连续的成员子区域。
9.如权利要求1所示的设备,其中所述多个存储区域是重叠的存储区域。
10.如权利要求9所示的设备,其中所述多个存储区域之一的所述子区域字段将所述存储器的给定地址范围规定为非成员子区域,并且与所述多个存储区域中不同的一个相对应的子区域字段还将所述给定地址范围规定为成员子区域。
11.如权利要求9所示的设备,其中所述数据处理设备可操作来执行具有相应存储器地址映射的多个不同处理应用,并且其中当在执行所述多个不同处理应用中的不同应用之间出现上下文切换时,所述存储保护单元可操作来更新所述多个存储区域中至少一个的所述子区域字段。
12.如权利要求11所示的设备,其中所述存储保护单元可操作来在所述上下文切换出现时更新所述属性字段。
13.如权利要求1所示的设备,其中所述存储区域的所述多个子区域具有相等的大小。
14.如权利要求1所示的设备,其中地址掩码用于根据规定所述存储区域大小的大小值来识别当前地址字的地址规定部分,所述当前地址字对应于当前存储单元。
15.如权利要求14所示的设备,包括子区域有效性逻辑,可操作来确定子区域有效值,所述子区域有效值规定所述当前存储单元是与所述成员子区域之一还是与所述非成员子区域之一相关联。
16.如权利要求15所示的设备,其中所述子区域有效性逻辑可操作来使用所述地址掩码从所述当前地址字中识别所述当前存储单元所属于的所述多个子区域之一。
17.如权利要求16所示的设备,其中所述子区域有效性逻辑可操作来通过在逻辑上组合来自所述地址掩码的位和来自所述当前地址字的位来计算选择位集合。
18.如权利要求17所示的设备,其中所述子区域有效性逻辑可操作来通过在逻辑上组合所述选择位集合中的不同选择位来计算最终的选择位集合。
19.如权利要求18所示的设备,其中所述子区域有效性逻辑包括排列逻辑,可操作来排列所述最终的选择位集合,以计算所述子区域的有效值。
20.如权利要求18所示的设备,其中所述子区域有效性逻辑包括排列逻辑,可操作来排列所述子区域成员关系值,以计算所述子区域的有效值。
21.如权利要求20所示的设备,其中所述排列逻辑可操作来在向运算数存储器写入所述子区域成员关系值时执行所述排列。
22.如权利要求21所示的设备,其中所述排列逻辑包括单个逻辑模块,并且所述单个逻辑模块被用于为所述多个存储区域的每一个执行所述排列。
23.一种用于处理数据的方法,所述方法包括:
在存储器中存储数据值;
使用存储保护单元,来将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域;
将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
24.一种用于处理数据的设备,所述设备包括:
用于存储数据值的装置;
存储保护装置,用于将存储属性和所述存储器的一部分相关联,并且识别对应于所述存储器相应地址范围的多个存储区域,所述存储保护装置可操作来将所述多个存储区域中的至少一个与相应的存储区域区分符相关联,所述存储区域区分符包括用于定义与所述存储区域关联的存储属性集合的属性字段和用于保存子区域成员关系值的子区域字段,所述子区域成员关系值为所述存储区域的多个子区域的每一个规定相应的子区域是成员子区域还是非成员子区域,使得将所述存储属性应用于所述成员子区域但不应用于所述非成员子区域。
CN2005800459098A 2005-01-04 2005-09-29 具有存储保护单元的数据处理设备 Active CN101095122B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/028,501 2005-01-04
US11/028,501 US7068545B1 (en) 2005-01-04 2005-01-04 Data processing apparatus having memory protection unit
PCT/GB2005/003755 WO2006072756A1 (en) 2005-01-04 2005-09-29 Data processing apparatus having memory protection unit

Publications (2)

Publication Number Publication Date
CN101095122A true CN101095122A (zh) 2007-12-26
CN101095122B CN101095122B (zh) 2011-09-14

Family

ID=35447495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800459098A Active CN101095122B (zh) 2005-01-04 2005-09-29 具有存储保护单元的数据处理设备

Country Status (9)

Country Link
US (1) US7068545B1 (zh)
EP (1) EP1839159B1 (zh)
JP (1) JP4647668B2 (zh)
KR (1) KR101016714B1 (zh)
CN (1) CN101095122B (zh)
IL (1) IL183909A (zh)
MY (1) MY136195A (zh)
TW (1) TWI356995B (zh)
WO (1) WO2006072756A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8509619B2 (en) 2008-01-08 2013-08-13 Mitsubishi Electric Corporation Communication control method, station side device, subscriber side device, and communication system
CN104281805A (zh) * 2013-07-09 2015-01-14 晶心科技股份有限公司 安全保护方法和处理器
CN112449698A (zh) * 2018-07-27 2021-03-05 Arm有限公司 针对存储在存储器系统中的控制表的二分搜寻过程

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4661574B2 (ja) * 2005-12-14 2011-03-30 セイコーエプソン株式会社 組込機器、電子機器、組込機器の制御方法、制御プログラムおよび記録媒体
TW200805065A (en) * 2006-01-17 2008-01-16 Nxp Bv Region protection unit, instruction set and method for protecting a memory region
JP2007334432A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp 情報処理装置及びそのアクセス制御方法
US7634708B2 (en) * 2006-09-15 2009-12-15 International Business Machines Corporation Relocatable storage protect keys for system main memory
JP4916338B2 (ja) * 2007-02-26 2012-04-11 キヤノン株式会社 周辺装置およびそのアクセス制御方法
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
JP4939387B2 (ja) * 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US8593951B2 (en) * 2008-04-29 2013-11-26 Freescale Semiconductor, Inc. Multiplexing and demultiplexing data
EP2187173B1 (en) * 2008-11-14 2017-10-04 Kamstrup A/S Consumption meter with one processor handling legal and non-legal code
WO2010121330A1 (en) * 2009-04-24 2010-10-28 Aaron Antony Peapell Data storage system
GB2484927A (en) * 2010-10-26 2012-05-02 Advanced Risc Mach Ltd Provision of access control data within a data processing system
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US8639895B2 (en) * 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
US20130111181A1 (en) * 2011-10-31 2013-05-02 Lsi Corporation Methods and apparatus for increasing device access performance in data processing systems
US20140025852A1 (en) * 2012-07-19 2014-01-23 Lsi Corporation Configurable Response Generator for Varied Regions of System Address Space
US9229639B2 (en) * 2013-03-11 2016-01-05 Sandisk Technologies Inc. Method and non-volatile memory device for improving latency together with write protection
US9395993B2 (en) 2013-07-29 2016-07-19 Intel Corporation Execution-aware memory protection
US9307409B2 (en) 2013-12-27 2016-04-05 Intel Corporation Apparatus, system and method of protecting domains of a multimode wireless radio transceiver
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US9678899B2 (en) 2014-04-08 2017-06-13 Nxp Usa, Inc. Method and apparatus for providing memory protection
EP3029574B1 (en) 2014-12-02 2019-09-18 ARM Limited Memory management
US20170139844A1 (en) * 2015-11-17 2017-05-18 Silicon Laboratories Inc. Asymmetric memory
US10671547B2 (en) 2016-12-19 2020-06-02 Intel Corporation Lightweight trusted tasks
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
US20190196984A1 (en) * 2017-12-27 2019-06-27 Qualcomm Incorporated Method, apparatus, and system for dynamic management of integrity-protected memory
US11567878B2 (en) * 2020-12-23 2023-01-31 Intel Corporation Security aware prefetch mechanism
CN112836221B (zh) * 2021-01-13 2024-02-06 深圳安捷丽新技术有限公司 一种多安全级别分区的便携固态硬盘及其设计方法
US11928339B2 (en) 2022-05-26 2024-03-12 STMicroelectronics (Grand Quest) SAS Method, system, and circuit for memory protection unit configuration and content generation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776938B2 (ja) * 1981-06-27 1995-08-16 富士通株式会社 ファイル機密保護処理装置
EP0425771A3 (en) 1989-11-03 1992-09-02 International Business Machines Corporation An efficient mechanism for providing fine grain storage protection intervals
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US6519690B1 (en) 1999-08-23 2003-02-11 Advanced Micro Devices, Inc. Flexible address programming with wrap blocking
US6901505B2 (en) * 2001-08-09 2005-05-31 Advanced Micro Devices, Inc. Instruction causing swap of base address from segment register with address from another register
US6697276B1 (en) * 2002-02-01 2004-02-24 Netlogic Microsystems, Inc. Content addressable memory device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8509619B2 (en) 2008-01-08 2013-08-13 Mitsubishi Electric Corporation Communication control method, station side device, subscriber side device, and communication system
CN101971576B (zh) * 2008-01-08 2014-06-18 三菱电机株式会社 通信控制方法、站侧装置、加入者侧装置以及通信系统
CN104281805A (zh) * 2013-07-09 2015-01-14 晶心科技股份有限公司 安全保护方法和处理器
CN104281805B (zh) * 2013-07-09 2017-09-15 晶心科技股份有限公司 安全保护方法和处理器
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
CN112449698A (zh) * 2018-07-27 2021-03-05 Arm有限公司 针对存储在存储器系统中的控制表的二分搜寻过程
US11907301B2 (en) 2018-07-27 2024-02-20 Arm Limited Binary search procedure for control table stored in memory system

Also Published As

Publication number Publication date
CN101095122B (zh) 2011-09-14
KR101016714B1 (ko) 2011-02-25
US20060149911A1 (en) 2006-07-06
IL183909A0 (en) 2007-10-31
IL183909A (en) 2011-04-28
TW200625080A (en) 2006-07-16
MY136195A (en) 2008-08-29
TWI356995B (en) 2012-01-21
JP2008527483A (ja) 2008-07-24
EP1839159B1 (en) 2017-11-15
US7068545B1 (en) 2006-06-27
JP4647668B2 (ja) 2011-03-09
KR20070092717A (ko) 2007-09-13
WO2006072756A1 (en) 2006-07-13
EP1839159A1 (en) 2007-10-03

Similar Documents

Publication Publication Date Title
CN101095122B (zh) 具有存储保护单元的数据处理设备
Furber VLSI RISC architecture and organization
US8041920B2 (en) Partitioning memory mapped device configuration space
CN101911025B (zh) 带有取回保护的动态地址转换的方法和系统
CN101436120B (zh) 微控制器、执行指令的方法及电子系统
US6895491B2 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
CN101872328B (zh) 在虚拟机环境中的客户机之间共享信息
CN1307561C (zh) 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN101606130B (zh) 在处理器系统的指令级使能资源分配标识的方法和装置
CN102483719B (zh) 基于块的非透明高速缓存
EP0810527A1 (en) A sectored virtual memory management system and translation look-aside buffer (TLB) for the same
CN100390817C (zh) 动态逻辑分区并控制访问权限的ic智能卡及其实现方法
Yun et al. Bloom filter-based dynamic wear leveling for phase-change RAM
EP2786245B1 (en) A data processing apparatus and method for performing register renaming without additional registers
CN103383667A (zh) 存储器保护电路、处理单元和存储器保护方法
CN100593159C (zh) 降低高速缓存的功耗
CN100424659C (zh) 用基于物理地址的安全配置确定对象安全的方法及装置
CN101510176A (zh) 通用操作系统对cpu二级缓存访问的控制方法
WO2015008112A1 (en) System on chip and method therefor
US5317706A (en) Memory expansion method and apparatus in a virtual memory system
CN102007477B (zh) 增强的微处理器或微控制器
US6694407B1 (en) Cache memory with data transfer control and method of operating same
EP1573553B1 (en) Selectively changeable line width memory
Bloom et al. Considerations in the design of a computer with high logic-to-memory speed ratio
US6886159B2 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus

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