CN103080912A - 用于微处理器系统的存储器管理单元、微处理器系统及管理存储器的方法 - Google Patents
用于微处理器系统的存储器管理单元、微处理器系统及管理存储器的方法 Download PDFInfo
- Publication number
- CN103080912A CN103080912A CN201080068795XA CN201080068795A CN103080912A CN 103080912 A CN103080912 A CN 103080912A CN 201080068795X A CN201080068795X A CN 201080068795XA CN 201080068795 A CN201080068795 A CN 201080068795A CN 103080912 A CN103080912 A CN 103080912A
- Authority
- CN
- China
- Prior art keywords
- management unit
- address
- physical address
- memory management
- memory
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 97
- 230000008569 process Effects 0.000 claims abstract description 72
- 238000013507 mapping Methods 0.000 claims abstract description 28
- 238000003860 storage Methods 0.000 claims description 34
- 230000014509 gene expression Effects 0.000 claims description 25
- 238000000638 solvent extraction Methods 0.000 description 15
- 102100033356 Lecithin retinol acyltransferase Human genes 0.000 description 12
- 108010084957 lecithin-retinol acyltransferase Proteins 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/145—Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
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)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及用于微处理器系统(10)的存储器管理单元(20),存储器管理单元(20)被连接或可连接到微处理器系统(10)的至少一个处理器核心(12)并且被连接或可连接到微处理器系统(10)的物理存储器(14)。存储器管理单元(20)适合于在管理程序模式中或在监督模式中选择地操作,所述管理程序模式和监督模式有访问硬件的不同特权级别。存储器管理单元(20)包括表示用于彼此映射至少一个逻辑物理地址和至少一个实际物理地址的物理地址信息的第一寄存器表(22);表示可访问在监督模式内或在监督模式下运行的过程的物理地址的允许的地址范围的第二寄存器表(24);其中存储器管理单元(20)适合于防止通过不在管理程序模式中的过程而写访问第二寄存器表(24)。存储器管理单元(20)还适合于,如果至少一个物理地址在允许的地址范围内,允许写访问在监督模式内或在监督模式下运行的过程的第一寄存器表(22),从而以涉及至少一个物理地址的存储器映射信息重新配置在第一寄存器表(22)中被表示的物理地址信息,而如果至少一个物理地址不在允许的地址范围内,防止写访问在监督模式内或在监督模式下运行的过程的第一寄存器表(22)。本发明还涉及微处理器系统(12)和用于管理存储器的方法。
Description
技术领域
本发明涉及用于微处理器系统的存储器管理单元、带有处理器核心和存储器管理单元的微处理器系统以及在微处理器系统中管理存储器的方法。
背景技术
现代计算机系统通常足够强以并行运行多于一个的操作系统。为此,计算机系统的物理资源,例如处理器核心、存储器、外围器件、网络资源等等,通常分布在逻辑划分之上。对于逻辑划分,可提供代表硬件的映像的虚拟机和被分配给逻辑划分的资源。虚拟机通常紧密地反映下面的硬件。然而,有可能被呈现的虚拟机代表带有与计算机系统的物理存在的硬件或实际硬件非常不同设置的硬件。
在逻辑划分上,操作系统可被运行,所述操作系统可被称作客户操作系统。不同逻辑划分运行不同操作系统是有可能并且是相当常见的,例如一个逻辑划分可运行基于GNU/Linux的系统并且另一个逻辑划分可运行更加传统的类Unix操作系统,例如AIX或例如用于嵌入式系统的专业的操作系统,例如SmartDSP OS。对于带有多于一个处理器核心的系统,提供有至少一个处理器核心的逻辑划分是可行的。在一个核心上例如通过利用超线程技术运行多于一个的逻辑划分和操作系统也是可能的。
为了管理硬件和物理资源,管理程序(hypervisor)有时被提供。管理程序可以在硬件、固件、软件或这些任何的组合中被实施。管理程序的一个例子是Xen-管理程序。在很多情况下,管理程序将物理资源分配到逻辑划分并且提供位于硬件和在逻辑划分上运行的客户操作系统之间的接口。还可能提供通过客户操作系统看到的虚拟机。管理程序通常在所谓的管理程序模式中运行最高的特权级别,然而客户操作系统在所谓的监督模式中运行较低特权级别。特别是,管理程序通常控制客户操作系统访问物理资源。在一些情况下,如果只有一个操作系统在运行,操作管理程序甚至也是有用的。
计算机系统可被实施以便客户操作系统甚至不知道其被连接到受管理程序控制的虚拟机。管理程序的存在对操作系统是透明的也是可能的。这个方法通常称作准虚拟化。操作系统还可在硬件上直接运行裸机,其中管理程序不提供控制结构的附加层。
在很多情况下,现代操作系统有一个称作虚拟存储器的特征。通过使用虚拟存储器,给在操作系统的控制下运行的单独的过程例如用户应用程序以及操作系统自身提供一个大的并且同质的存储器结构是可能的。特别是,与实际物理随机存取存储器(RAM)包括的存储器数目相比,虚拟存储器可能给应用程序提供更大数目的存储器。如果存储器请求超过RAM的物理存储器,这样的虚拟存储器系统通常使用像硬盘的外围硬件存储器件以“交换”硬盘和RAM之间的数据。虚拟存储器通常独立于管理程序,由操作系统直接控制。
操作系统通常也有其自身模型的物理资源。这样的一个模型还可能涉及通过管理程序呈现的虚拟机。物理模型没必要描述操作系统运行的实际硬件。特别是,操作系统使用的物理地址没必要与硬件和管理程序使用的实际硬件物理地址相同。在其物理模型中,操作系统使用的物理地址通常被称作逻辑物理地址,以与实际物理地址区分开。此外,不同操作系统使用不同模型的物理资源。因此,对于带有管理程序的计算机系统,需要制定规定以将操作系统的物理模型以及正如操作系统所能看到的逻辑物理地址转化为真实或实际物理地址。US6,877,158B1描述了在物理系统和不同操作系统之间转化的管理程序调解地址的一个例子。
发明内容
正如在所附独立权利要求中所描述的,本发明提供了用于微处理器系统的存储器管理单元,微处理器系统以及用于管理用于微处理器系统的存储器的方法。
本发明的特定实施例在从属权利要求中被陈述。
本发明的这些和其它方面通过参照下文描述的实施例将非常明显并且被阐述。
附图说明
根据附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的符号被用于表示相同的或功能类似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。
图1示意性地显示了带有存储器管理单元的微处理器系统和管理存储器的方法。
图2示意性地显示了带有存储器管理单元的微处理器系统和管理存储器的方法的一种变型。
具体实施方式
由于本发明说明的实施例可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实施,细节不会在比上述所说明的认为有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
在本说明的情况下,虚拟存储器可能指通过操作系统所提供的虚拟存储器系统。虚拟存储器系统的地址可被称为虚拟地址。物理存储器模型可以是操作系统提供的物理存储器模型。可想象的是,计算机系统的至少一部分硬件,操作系统是否运行。特别是,物理模型可能对应于通过特权级别高于操作系统的过程,例如管理程序,呈现给操作系统的虚拟机。物理模型的地址可被称为逻辑物理地址。物理存储器、实际存储器或硬件可能指存储器以及硬件器件,所述硬件器件物理地存在于微处理器系统中。硬件的地址,特别是存储器地址,可被称为实际物理地址。术语物理地址可能指逻辑物理地址和实际物理地址。
微处理器系统可以是带有至少一个微处理器的任何器件,所述微处理器有至少一个计算核心。所述核心可以是多核心处理器的一个核心,其可以是单一核心微处理器的核心或其可以是称为SoC(片上系统)的芯片。还可想象的是,微处理器系统包括一个或多个微处理器,每个微处理器包括一个或多个核心。微处理器系统可能包括作为微处理器的数字信号处理器(DSP)。微处理器还可以是例如Intel或AMD制造的x86类型处理器,或IBM Power微处理器,以及基于ARM或属于任何其它类型的微处理器类型。在这种情况下,现场可编程门阵列(FPGA)如果相应地被编程的话也可被理解为微处理器系统。微处理器系统可在手持器件中被实施,如同移动电话或智能手机、嵌入式系统、或例如便携式电脑、台式电脑或服务器系统的手提或非手提计算系统的一部分。
操作系统可以是向应用程序,特别是用户应用程序提供基础功能和接口的任何系统。用于操作系统的例子是GNU/Linux或SmartDSP OS的各种实施的例子。客户操作系统可以是在管理程序控制下运行的操作系统。
还可被称作虚拟机监控器(VMM)的管理程序可能允许一个或多个操作系统同时地在微处理器系统上运行并且提供硬件虚拟化。管理程序可能给客户操作系统提供虚拟机并且可能监控客户操作系统或系统的执行。那样,多操作系统,包括相同操作系统的多个实例,可能共享硬件资源。管理程序可能在裸硬件以及实际硬件上运行。其可能分配穿过逻辑划分的系统资源以分享物理资源,例如CPU和核心、直接访问存储器件、存储器、网络资源等等。可以认为在至少一个硬件、固件和软件、或在其中的任何组合中实施管理程序。管理程序可能在称为管理程序模式的特权级别上运行,所述管理程序模式可能允许管理程序直接硬件访问。管理程序或操作系统可能作为一个过程运行或可能包括多个过程,所述过程可能并行运行。管理程序的过程可能在管理程序模式中运行。可以提供监督模式。操作系统可能包括一个或多个过程。可认为客户操作系统以及客户操作系统的一个或多个过程在监督模式中运行。多于一个操作系统可能在监督模式中运行。监督模式可能有比管理程序模式低的特权级别。特别是,可想象的是,在监督模式中的客户操作系统不允许直接访问硬件可能有限制硬件访问,例如访问地址的已定义的子集。可存在定义的不同监督模式,其中不同逻辑划分和操作系统有不同特权级别。可以认为一个或多个过程在监督模式中运行。在监督模式中运行的过程可能在监督模式的特权级别上或在低于监督模式的特权级别上运行,例如所述模式可能给硬件和/或软件或硬件接口提供较低级别的访问权限。在监督模式中运行的过程,例如客户操作系统,可能运行并分别地控制在监督模式下运行的过程。在监督模式中运行的过程可例如是在后台运行,提供系统服务或用户应用程序的后台程序。可定义用于在监督模式下运行的过程的特权级别。所述监督模式可例如被定义为用户模式。可定义一个或多个用于过程的不同特权级别,所述过程可在监督模式例如不同用户模式下运行。读访问可以是通过软件的直接读访问或硬件生成访问。写访问可以是通过软件的直接写访问或硬件生成访问。
寄存器表可能包括一个或多个寄存器。表示信息的寄存器表可能包括直接被表示的信息。可想象的是,表示信息的寄存器表包括直接或间接指向存储器区域的地址信息,在所述区域中被表示的信息可被存储。特别是,寄存器表可能包括一个或多个到一个或多个地址或存储器区域的地址范围的指针。存储器区域可例如是微处理器系统的常规物理存储器的部分、RAM、例如作为专用存储器或可单独地被提供。专用存储器可例如提供存储器管理单元(MMU)。寄存器表可能表示地址范围和存储器范围。表示的存储器范围和地址范围可以是连续的或者片段的。可认为所述存储器范围和地址范围是不连续的或是片段的。通常,除非特定说明,地址可以是虚拟、逻辑物理或实际物理地址。重新配置在寄存器表中表示的信息可能包括直接写数据到寄存器表中。其还可能包括写数据到存储器表指向的存储器区域。写访问存储器表可能包括直接写访问在寄存器表中的重新配置信息。可认为写访问寄存器表包括写访问地址或通过寄存器表指向的地址范围。
图1示意性地显示了微处理器系统10,所述微处理器系统10可能有至少一个计算核心12、物理存储器14以及高速缓存16。核心12可能通过存储器管理单元20访问存储器14是可行的。还可存在位于核心12和存储器14之间的直接连接。存储器14可通过不同的操作系统不同地被建模。正如在图1中的Linux操作系统和SmartDSP OS所表示的,不同操作系统可能提供存储器14的不同分段。特别是,微处理器系统10可以是DSP系统,核心12是DSP核心。管理程序可能提供微处理器系统的一个或多个逻辑划分并且可能监控一个或多个客户操作系统。管理程序可能访问和利用存储器管理单元20。管理程序可能在核心12上或在任何其它适合的计算器件上运行。
存储器管理单元20可被连接或可连接到微处理器系统10的至少一个处理器核心并可被连接或可连接到微处理器系统10的物理存储器14。可认为存储器管理单元20适合于在管理程序模式中或在监督模式中选择地操作。存储器管理单元操作所在的模式可选择地被决定,例如通过进入的请求。存储器管理单元20可适合于响应在核心12和微处理器系统12上运行的过程的读或写请求,取决于其是否和/或过程是在管理程序模式中还是在监督模式中操作。管理程序模式和监督模式可能有访问硬件的不同的特权级别。存储器管理单元20可能包括第一寄存器表22,表示用于彼此映射至少一个逻辑物理地址和至少一个实际物理地址的物理地址信息,以及包括第二寄存器表24,表示可以访问在监督模式内或在监督模式下运行的过程的物理地址的允许的地址范围。特别是,第二寄存器表24可能直接或间接指向或表示配置存储器区域。配置存储器区域可能存储第一寄存器表22的可能配置。可认为第一寄存器表22的可能配置包括第一寄存器表22的全部配置,允许在监督模式内或在监督模式下运行的相应的过程。配置可能提供用于彼此映射至少一个逻辑物理地址和至少一个物理地址的信息。配置可能识别一个或多个逻辑地址和一个或多个在彼此上被映射的相应的实际物理地址。可想象的是,配置代表逻辑地址和在逻辑地址上开始的逻辑地址的范围的大小和相应物理地址以及作为映射的物理地址的范围的大小。映射的形成可取决于在监督模式中运行的过程的存储器模型,特别是客户操作系统。可想象的是,映射是基于硬件结构的。映射可能代表页面和/或存储器的分段模型。允许的地址范围和配置可能代表或表示地址范围,特别是存储器范围,在监督模式内或在监督模式下运行的过程可被允许各自地读取和/或写入,以及可能具有读访问和/或写访问。可认为在监督模式内或在监督模式下运行的过程不允许访问物理地址,所述物理地址并未映射在配置存储器区域中,且不位于允许的地址范围。允许的地址范围可能对应于实际物理地址的范围。允许的地址范围可能包括两个或更多个物理地址的片段的范围。存储在配置存储器区域中的数据可认为代表允许的地址范围。特别是,包括在实际物理地址和相应的逻辑地址之间的映射的表,例如存储在配置存储器区域中的表,可认为代表或包括允许的地址范围。存储器管理单元20可适合于防止写访问不在管理程序模式中的过程的第二寄存器表24。可认为存储器管理单元20适合于防止不在管理程序模式中的过程的写访问第二寄存器表24指向的存储器区域以及配置存储器区域,在所述配置存储器区域中第一寄存器表22的可能配置被存储。如果至少一个物理地址在允许的地址范围内,存储器管理单元20还可适合于允许写访问在监督模式内或在监督模式下运行的过程的第一寄存器表22,从而以涉及至少一个物理地址的存储器映射信息重新配置在第一寄存器表22中的物理地址信息。可行的是,如果至少一个物理地址不在允许的地址范围内,存储器管理单元20适合于防止写访问在监督模式内或在监督模式下运行的过程的第一寄存器表22。至少一个物理地址可以是实际物理地址或逻辑物理地址。
存储器映射信息可以是存储在配置存储器区域的信息。特别是,存储器映射信息可被认为对应于或包括一个或多个配置,例如第一寄存器表22的一个或多个可能配置。与一个或多个逻辑地址和/或一个或多个物理地址有关的存储器映射信息可例如通过在监督模式内或在监督模式下运行的过程从通过第二寄存器表24表示的配置存储器区域被读取。特别是,在监督模式内或在监督模式下运行的过程可被允许读取存储器映射信息。可认为配置存储器区域是存储器14的区域。附加的专用的存储器可被提供给配置存储器区域。配置存储器区域可以是被保护的写以便只有在管理程序模式中的过程可能有写访问。可认为第一寄存器表22可只能通过从配置存储器区域读取的存储器映射信息被重新配置或更新。如果存储器映射信息可以从配置存储器区域被读取,即配置存储器区域包括相应的映射信息,可认为写访问第一寄存器表22可被允许到在监督模式内或在监督模式下运行的过程。写访问可被认为是防止至少一个不通过在配置存储器区域中的映射信息映射的逻辑或实际物理地址。
存储器管理单元20可适合于检查由在监督模式内或在监督模式下运行的过程请求的写访问第一寄存器表22是否涉及地址的允许范围。存储器映射信息可能包括至少一个逻辑物理地址和至少一个实际物理地址的彼此映射。可认为存储器映射信息表示如何改变通过第一寄存器表22表示的地址信息。可想象的是,存储在第一寄存器表22中的数据被改变和/或在重新配置期间存储在存储器地址或第一存储器表22指向的存储器范围被改变。在监督模式中运行的过程可以是操作系统。管理程序可在管理程序模式中运行。存储器管理单元20可被配置以决定第一寄存器表22的重新配置是在管理程序模式中还是在监督模式中被执行。在管理程序中,第一寄存器表22可被直接访问以在不检查第二寄存器表24的情况下写入。
第一寄存器表22可以是LRAT(逻辑真实地址转换)寄存器表,所述寄存器表包括关于在给定数量的逻辑物理地址和实际或真实物理地址之间的关系的信息。第一寄存器表22可能包括一个或多个寄存器条目。特别是,LRAT寄存器表22可能表示用于映射正如通过在监督模式中运行的操作系统所看到的逻辑物理存储器的存储器页面信息到关于实际物理存储器14的页面信息的信息。可想象的是,第一寄存器表22表示用于多于一个操作系统的物理地址信息。第一寄存器表22可适合于将逻辑物理地址从分段模式映射到实际物理地址的分段模式,或从页面模式到分段模式,或分段模式到页面模式。LRAT寄存器表22可能不能表示跨越有效的存储器的全部范围的信息,但是可能表示用于映射地址或地址范围的信息,所述地址范围通常或最近被访问。在读访问LRAT寄存器表22不能找到正如所需的地址的映射的情况下,LRAT页面错误误差可被表示或通过存储器管理单元20被发给核心12。存储器管理单元20可适合于允许写访问在管理程序模式中运行的过程的第一寄存器表22,特别是管理程序。可认为过程或在监督模式中的过程可被允许读访问第一寄存器表22。为了重新配置通过寄存器表22指向的第一寄存器表22信息,微处理器系统的操作码可被使用。特别是,可使用操作码,所述操作码已经存在于普通微处理器系统,或可存在被定义的访问第一寄存器表22特定的操作码。无论所需的写访问是否被允许,特定的操作码还可能表示或指示检查第二寄存器表24。这样的操作码可被提供适合的核心12或微处理器系统10。操作码可被定义从在监督模式内或在监督模式下的配置存储器区域读取存储器映射信息。可想象的是,操作码通过将存储器映射信息写入第一寄存器表22被定义。提供单独的操作码是可行的,所述操作码指示读取存储器映射信息和将信息写入第一寄存器表22。
第二寄存器表24可以是当前操作系统存储器寄存器表。其可能表示可以访问在监督模式内或在监督模式下运行的客户操作系统的物理地址的地址范围。特别是,第二寄存器表24可能包括当前OS表基地址寄存器(COSBAR)和当前OS表大小寄存器(COSSR)。可想象的是,COSBAR表示可以是实际物理存储器地址的存储器地址。其可能指向一个地址,在所述地址中,存储器分配信息被存储。所述地址可能表示存储器的开始范围,在所述范围内,存储器分配信息被存储。COSSR可能包括关于包括存储器分配信息的地址范围的大小的信息。第二寄存器表24可能表示关于大小的信息以及被分配到逻辑划分以及客户操作系统的存储器的实际物理地址。其可能包括关于被分配给多于一个操作系统和逻辑划分的存储器的信息。可想象的是,只有管理程序或在管理程序模式中运行的过程可能写入第二寄存器表24和/或通过第二寄存器表24表示和指向的存储器范围。指向的存储器范围可能自身指向存储器或地址范围,即允许的地址范围。第二寄存器表24可能指向或表示配置存储器区域,对于一个给定的监督模式,所述配置存储器区域包括第一寄存器表22的可允许配置。可想象的是,提供多于一个COSBAR和相应的COSSR以指向多于一个存储器范围。第二寄存器表24可适合于为操作系统和逻辑划分表示信息,特别是允许的地址范围。可想象的是,第二寄存器表24适合于为一个或多个或两个或更多个在监督模式中的过程表示允许的地址范围,特别是操作系统。可认为第二寄存器表24表示两个或更多个配置存储器区域,每个配置存储器区域代表在监督模式内或在监督模式下运行的不同过程的允许的地址范围,特别是对于不同操作系统正如图1中所显示的用于GNU/Linux操作系统和SmartDSP操作系统。用于图1中的单独的操作系统的所显示的分段可能相当于基于彼此映射逻辑物理地址和实际物理地址的分段。通过不同操作系统提供的分段可能彼此不同并且可能取决于考虑中的通过操作系统使用的存储器模型。配置存储器区域可能包括被分配以分别地允许客户操作系统的实际物理地址的和逻辑物理地址的彼此映射,逻辑物理地址是基于通过客户操作系统使用的存储器模型被决定的。通过第二寄存器表24指向的地址和地址范围可以是正常的物理RAM的部分或是由RAM单独地提供的存储器表示的。
存储器管理单元20可能包括第三寄存器表26,所述第三寄存器表26表示用于彼此映射至少一个虚拟地址和至少一个物理地址的虚拟地址信息。至少一个物理地址可以是实际物理地址或逻辑物理地址。存储器管理单元20可适合于允许读和/或写访问在监督模式内或在监督模式下运行的过程的第三寄存器表26,特别是操作系统。至少一个实际物理地址可以是物理存储器14的地址。可想象的是,第三寄存器表26表示用于一个或多于一个在监督模式中或在监督模式下运行的过程和操作系统的虚拟地址信息。根据图1中所显示的情况,第三寄存器表26表示用于彼此映射至少一个虚拟地址和至少一个逻辑物理地址的虚拟地址信息。可认为第一和/或第三寄存器表22、26不提供地址的完全的映射。恰恰相反,第一和/或第二寄存器表22、26可能提供对虚拟、逻辑物理以及实际物理地址的子集的映射。
可以考虑一种用于如上所述的带有至少一个处理器核心12、物理存储器14以及存储器管理单元20的微处理器系统10的存储器管理的方法。存储器管理单元20可被连接到核心12和物理存储器14。请求可被接收,所述请求用于通过在监督模式内或在监督模式下运行的过程访问第一寄存器表22,从而以涉及至少一个物理地址的存储器映射信息重新配置在第一寄存器表22中的地址信息。如果存储器映射信息涉及的至少一个物理地址在用于在监督模式内或在监督模式下运行的过程的允许的地址范围内,请求的写访问可被允许。如果读访问用于映射逻辑物理地址到实际物理地址的第一寄存器表22不成功,在监督模式内或在监督模式下运行的过程可能请求写访问第一寄存器表22。如果第一寄存器表22不表示用于映射给定的逻辑物理地址到实际物理地址的物理地址信息,可假定读访问不成功。给定的逻辑地址可能对应于给定的虚拟地址。可认为存储器映射信息涉及至少一个映射到至少实际物理地址的逻辑物理地址。映射可由存储器映射信息定义,所述存储器映射信息可被存储并且从第二寄存器表24指向或表示的配置存储器区域被读取。
特别是,在监督模式内或在监督模式下的过程以及在核心12上运行的客户操作系统可能访问第三寄存器表26,所述第三寄存器表26可能表示虚拟地址信息(S10)。在监督模式内或在监督模式下运行的过程可能指给定的虚拟地址。虚拟地址可在客户操作系统下运行的程序执行期间或在客户操作系统自身执行期间被使用。通过第三寄存器表26的帮助,虚拟地址可被转化为逻辑物理地址。如果将虚拟地址转化为逻辑地址是不可能的,例如因为客户操作系统尝试访问未定义的虚拟地址,异常信号可被发给核心12(S12)。在转化可通过使用第三寄存器表26被执行的情况下,访问高速缓存16是可能的,所述高速缓存16可能提供关于所需地址(S14)的快速信息。可认为是访问用于将虚拟地址转化为逻辑地址的物理存储器14。如果寻找的地址不在高速缓存中,LART第一寄存器表22可被访问(S15、S16)。在没有高速缓存被使用或寻找的地址不可高速缓存的情况下,第一寄存器表可被直接访问(S16)。
如果第一寄存器表22包括或表示映射逻辑物理地址到虚拟物理地址的信息,到实际地址的访问是可能的。在客户操作系统被允许访问实际硬件之前,无论实际地址是否位于用于客户操作系统的允许的地址范围内,检查可被执行。如果不是这种情况,访问实际地址可被否认。检查可通过管理程序或硬件实施被执行,例如通过存储器管理单元20。在LRAT寄存器表22不提供映射对应于虚拟地址的逻辑物理地址到实际物理地址的地址信息的情况下,异常的信号可被发给核心12(S18)。异常可能发出页面错误的信号。
页面错误信号可通过管理程序或客户操作系统被捕获。如果管理程序捕获信号,第一寄存器表22的重新配置可在管理程序模式中被执行。管理程序可能将重新配置的任务委派给客户操作系统。客户操作系统可能在监督模式中执行重新配置。可想象的是,客户操作系统要求管理程序执行重新配置。
由于管理程序模式可能允许直接写访问LART寄存器表22,在管理程序模式中的重新配置或可直接被执行(S20)。在监督模式中,用于写访问第一寄存器表22的请求可被接收。请求可通过核心12被发出并且其可通过存储器管理单元20被接收。核心12可能通过执行程序代码即操作码发出请求。请求可能直接指定其所指的哪一个物理地址或哪些物理地址。如果可以是实际物理地址的物理地址或一些地址位于如通过第二寄存器表24所表示的允许的地址范围内,在监督模式中的过程的写访问或可被授权并且第一寄存器表22可相应地被更新。可想象的是,存储器映射信息从第二寄存器表24指向的或表示的配置存储器区域被读取的。存储器映射信息可通过在监督模式内或在监督模式下运行的过程被读取,所述监督模式可能有对于存储器映射信息的读访问。特别是,用于不存储在第一寄存器表22中的逻辑地址的映射可从配置存储器区域被读取。如果配置存储器区域包括相应的映射,第一寄存器表22可被配置为相应的映射信息。在配置存储器区域不包括这样的映射的情况下,这可被认为是在监督模式内或在监督模式下运行的过程尝试访问非允许的地址的表示。在这种情况下,可认为写访问第一寄存器表22的配置被阻止了。特别是,可想象的是,第一寄存器表22可能只能通过在监督模式内或在监督模式下运行的过程被重新配置,其中信息被存储并且从配置存储器区域被读取。映射到相当于虚拟地址的逻辑地址的实际物理地址可被传递至过程,以及直接被传递至核心,或过程可被重新导向以从现在更新的LART寄存器表22读取实际物理地址。如果请求的物理地址位于允许的地址范围之外,写访问或可被否认。从逻辑物理地址到实际物理地址的转化可因为这个操作而被执行。对于转化,可认为访问物理存储器14,所述物理存储器14可能包括所需的转化信息以及位于通过客户操作系统建模的完整的逻辑物理存储器和实际物理存储器(见不带数字的箭头)之间的映射信息。所述方法提供了管理程序寄存器和用于在监督模式中的过程的寄存器的一个好的区分。特别是,第三寄存器表26可与监督模式相关,而第二寄存器表24可与管理程序模式相关。
图2显示了微处理器系统12,所述微处理器系统12与图1中所描述的系统非常类似。图2中所显示的系统与图1中所显示的系统之间的不同之处在于第三寄存器表26的使用。根据图2中所显示的变化,第三寄存器表26可能表示用于彼此映射至少一个虚拟地址和至少一个实际物理地址的虚拟地址信息。
现在参照图2描述一种用于在上述的特征上建立存储器管理的方法。所述方法可能包括特征,所述特征在监督模式内或在监督模式下运行的过程的写访问第一寄存器表22之后被实施(见例如如下面所描述的S104),表示用于彼此映射至少一个虚拟地址和至少一个实际物理地址的虚拟地址信息的第三寄存器表26被重新配置以表示存储器映射信息所指的虚拟地址和至少一个实际物理地址的映射。所述方法可特别适用于如上面所描述的微处理器系统。
可想象的是,可能在核心12上运行的、在监督模式内或在监督模式下运行的过程可能提供将被访问的虚拟地址并且所述地址被转换到实际物理地址。读访问第三寄存器表26可被执行(S100)。如果读访问提供在虚拟地址和实际物理地址之间的映射,转化已经成功了。在有误差的情况下,例如由于未定义的地址,误差信号以及异常可被扔向在监督模式内或在监督模式下运行的过程(S102)。类似于上面所描述的方法,可选地,高速缓存16可被访问(未显示)。
如果虚拟地址到实际物理地址的映射没有被执行,虚拟地址到逻辑物理地址的转换可通过客户操作系统被执行。为了将逻辑物理地址转化为实际物理地址,读访问第一寄存器表22可在监督模式中被执行(S104)。如果LRAT寄存器表22包括将对应于虚拟地址的逻辑物理地址映射到实际物理地址上的物理地址信息,所述实际物理地址可返回。在这种情况下,第三寄存器表26可被重新配置以包括映射到返回的实际物理地址上的虚拟地址的映射(S106)。如果读访问LRAT寄存器表22不提供所需的映射,LRAT寄存器表22的重新配置可被执行。如上面所描述的,重新配置可在管理程序模式或监督模式中被执行。如果在监督模式中被执行,无论物理地址或被映射的地址是否在用于客户操作系统的允许的地址范围内,第二寄存器表24可被检查(S108)。如果不是这种情况,重新配置第一寄存器表22的请求可被否认。如果地址在允许的地址范围内,如上面所描述的,重新配置可被执行。特别是,存储器映射信息可从通过第二寄存器表24表示的配置存储器区域被读取。在重新配置之后,第三寄存器表26可相应地被重新配置(与S106类似)。
可想象的是,如上面所描述的微处理器系统10包括至少一个处理器核心12和存储器管理单元20,所述存储器管理单元20被连接到处理器核心12。存储器管理单元可被连接到物理存储器16。适合于执行一种上面所描述的方法的微处理器系统可被考虑。
根据上面所描述的系统和方法,使客户操作系统或在监督模式内或在监督模式下运行的过程读访问LRAT寄存器表而不需要给管理程序发送访问请求以减少费用是可能的。LRAT寄存器表可通过客户操作系统而不是管理程序被更新,进一步减少费用。同时,针对其它操作系统资源的保护被确保了。
本发明还可在用于在计算机系统上运行的计算机程序中被实施,当在例如计算机系统的可编程装置上运行时,所述计算机程序至少包括用于执行根据本发明的方法的步骤的代码部分,或启动可编程装置以执行根据本发明的器件或系统的功能。
计算机程序是一系列指令例如特定应用程序和/或操作系统。计算机程序可能例如包括以下中的一个或多个:子程序、函数、程序、对象方法、对象实现、可执行的应用程序、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机系统上的执行的其它指令序列。
计算机程序可内在地存储在计算机可读存储介质或通过计算机可读传输介质传送到计算机系统。所有或者一些计算机程序可被永久地、可移除地提供在计算机可读介质或远程地耦合于信息处理系统。计算机可读介质可能包括,例如但不限于以下的任何数量:磁存储介质包括磁盘和磁带存储介质;光学存储介质例如光盘介质(例如,CD-ROM、CD-R等等)以及数字视盘存储介质;非易失性存储器存储介质包括半导体存储单元例如FLASH存储、EEPROM、EPROM、ROM;铁磁数字存储;MRAM;易失性存储介质包括寄存器、缓冲或缓存、主存储器、等等;以及数字传输介质包括计算机网络、点对点通信设备、以及载波传输介质,仅举几例。
计算机过程通常包括执行(运行)程序或程序的一部分、当前程序值和状态信息、以及被操作系统资源所使用以管理操作执行的资源。操作系统(OS)是管理计算机资源的共享以及提供带有接口用于访问这些资源的程序员的软件。操作系统处理系统数据和用户输入,以及通过分配和管理任务以及内部系统资源作为服务用户和程序系统的响应。提供虚拟机的管理程序可在操作系统和实际硬件之间分层。
计算机系统可能,例如,包括至少一个处理单元、关联内存和大量的输入/输出(I/O)器件。当执行计算机程序时,计算机系统根据计算机程序处理信息并且通过I/O器件生产合成输出信息。
在前面的说明中,参照本发明实施例的特定例子已经对本发明进行了描述。然而,很明显各种修改和变化可在不脱离所附权利要求中所陈述的本发明的宽范围精神及范围的情况下被做出。
本发明所讨论的连接可以是任何类型的连接,该连接适于将信号从各自的节点、单元或器件传输或传输到各自的节点、单元或器件,例如通过中间器件。因此,除非暗示或说明,连接,例如,可能是直接连接或间接连接。连接可被说明或描述,涉及到是单一连接、多个连接、单向连接、或双向连接。然而,不同实施例可能改变连接的实现。例如,可以使用单独单向连接而不是双向连接,反之亦然。此外,多个连接可被替换为连续地或以时间多路复用方式传输多个信号的单一连接。同样地,携带多个信号的单一连接可被分离成各种不同的携带这些信号的子集的连接。因此,存在传输信号的许多选项。
本领域所属技术人员将认识到逻辑块之间的界限仅仅是说明性的并且替代实施例可能合并逻辑块或电路元件或在各种逻辑块或电路元件上强加替代的分解功能。因此,应了解本发明描述的架构仅仅是示范的,并且事实上实现相同功能的很多其它架构可以被实现。例如,存储器管理单元可作为单一的单元被构造或被分布在几个组件之上。特别是,管理单元的寄存器表可在几个模块中被实施。例如,LRAT寄存器可在一个单元上被实施,并且第二寄存器或可在单独的单元上被实施。单元可互相连接。为实现相同功能的任何元件的布置是有效地“关联”以便所需的功能得以实现。因此,为实现特定功能,本发明中结合在一起的任何两个元件可以被看作彼此“相关联”以便所需的功能得以实现,不论架构还是中间元件。同样地,如此关联的任何两个元件还可以被认为是彼此被“可操作连接”或“可操作耦合”以实现所需的功能。
此外,本领域所属技术人员将认识到上述描述的操作之间的界限仅仅是说明性的。多个操作可被组合成单一操作,单一操作可分布在附加操作中以及操作可至少在时间上部分地重叠而被执行。而且,替代实施例可能包括特定操作的多个例子,并且操作的顺序可在各种其它实施例中被改变。
又如,在一个实施例中,说明的例子可被作为位于单一集成电路上的电路或在相同器件内的电路被实现。例如,存储器管理单元可在带有核心的芯片上被实施。或者,所述例子可作为任何数量的单独集成电路或以一种合适的方式彼此相联接的单独器件被实现。例如,核心和存储器管理单元可以是彼此连接的单独的单元。
又如,例子或其中的一部分可能作为物理电路的软或代码表征被实现,或作为能够转化成物理电路的逻辑表征,例如在任何合适类型的硬件描述语言中被实现。
此外,本发明不限定在非程序化硬件中被实现的物理设备或单元,但也可以应用在可编程设备或单元中。这些设备或单元通过操作能够执行所需的设备功能。该执行是根据合适的程序代码,例如,主机、微型计算机、服务器、工作站、个人电脑、笔记本、个人数字助理、电子游戏、汽车和其它嵌入式系统、手机和其它无线设备,在本申请中通常表示“计算机系统”。
在前面的说明中,参照本发明实施例的特定例子已经对本发明进行了描述。然而,很明显各种修改和变化可在不脱离所附权利要求中所陈述的本发明的宽范围精神及范围的情况下被做出。
然而,其它修改、变化和替代也是可能的。说明书和附图相应地被认为是说明性的而非限定意味。
在权利要求中,放置在括号之间的任何参考符号不得被解释为限定权利要求。词语“包括”不排除在权利要求中列出的那些元素或步骤之外的其它元素或步骤的存在。此外,本发明所用的“a”或“an”被定义为一个或多个。并且,在权利要求中的引入性术语,如“至少一个”以及“一个或多个”,不应被解释为,不定冠词“a”或“an”所引入的其它权利要求元素将包括这些引入的权利要求元素的任何特定权利要求限定为只包含一个这样的元素的发明,即使同一权利要求中包括引入性短语“一个或多个”或“至少一个”以及不定冠词,例如“a”或“an”。使用定冠词也是如此。除非另有说明,使用术语如“第一”以及“第二”是用于任意区分这些术语描述的元素的。因此,这些术语不一定表示时间或这些元素的其它优先次序。某些特定手段在相互不同的权利要求中被列举并不表示这些手段的组合不能被用于获取优势。
Claims (16)
1.一种用于微处理器系统(10)的存储器管理单元(20),所述存储器管理单元(20)被连接或可连接到所述微处理器系统(10)的至少一个处理器核心(12)并且被连接或可连接到所述微处理器系统(10)的物理存储器(14),所述存储器管理单元(20)适合于在管理程序模式中或在监督模式中选择地操作,所述管理程序模式和所述监督模式具有访问硬件的不同的特权级别,所述存储器管理单元(20)包括:
第一寄存器表(22),表示用于彼此映射至少一个逻辑物理地址和至少一个实际物理地址的物理地址信息;
第二寄存器表(24),表示可访问在监督模式内或在监督模式下运行的过程的物理地址的允许的地址范围;
其中所述存储器管理单元(20)适合于防止通过不在管理程序模式中的过程写访问所述第二寄存器表(24);以及
其中所述存储器管理单元(20)还适合于,如果至少一个物理地址在所述允许的地址范围内,允许写访问在监督模式内或在监督模式下运行的过程的所述第一寄存器表(22),从而以涉及所述至少一个物理地址的存储器映射信息来重新配置在所述第一寄存器表(22)中表示的所述物理地址信息,并且如果所述至少一个物理地址不在所述允许的地址范围内,则防止写访问在监督模式内或在监督模式下运行的所述过程的所述第一寄存器表(22)。
2.根据权利要求1所述的存储器管理单元(20),其中所述存储器映射信息被存储在通过所述第二寄存器表(24)表示的配置存储器区域中,其中存储在所述配置存储器区域中的数据代表所述允许的地址范围。
3.根据权利要求2所述的存储器管理单元(20),在监督模式内或在监督模式下运行的所述过程被允许读取所述存储器映射信息。
4.根据权利要求1到3之一所述的存储器管理单元(20),其中所述第二寄存器表(24)适合于表示在监督模式内或在监督模式下运行的两个或更多个过程的允许的地址范围。
5.根据权利要求1到4之一所述的存储器管理单元(20),其中所述存储器管理单元(20)还包括第三寄存器表(26),表示用于彼此映射至少一个虚拟地址和至少一个物理地址的虚拟地址信息。
6.根据权利要求5所述的存储器管理单元(20),其中映射到至少一个虚拟地址的所述至少一个物理地址是实际物理地址。
7.根据权利要求5或6所述的存储器管理单元(20),其中所述存储器管理单元(20)适合于允许写访问在监督模式内或在监督模式下运行的过程的所述第三寄存器(26)。
8.根据权利要求1到7之一所述的存储器管理单元(20),其中所述至少一个实际物理地址是物理存储器(14)的地址。
9.根据权利要求1到8之一所述的存储器管理单元(20),所述存储器管理单元(20)还适合于允许写访问在管理程序模式中运行的过程的所述第一寄存器(22)。
10.一种微处理器系统(10),包括至少一个处理器核心(12)和根据权利要求1到9之一所述的存储器管理单元(20),所述存储器管理单元(20)被连接到所述处理器核心(12)。
11.根据权利要求10所述的微处理器系统(10),所述存储器管理单元(20)被连接到物理存储器(14)。
12.一种用于微处理器系统(10)的存储器管理的方法,所述微处理器系统(10)具有处理器核心(12)、物理存储器(14)和根据权利要求1到9之一所述的存储器管理单元(20),所述存储器管理单元(20)被连接到所述处理器核心(12)和所述物理存储器(14),其中接收写访问请求,请求通过在监督模式内或在监督模式下运行的过程写访问第一寄存器表(22)从而以涉及至少一个物理地址的存储器映射信息来重新配置在所述第一寄存器表(22)中的物理地址信息,并且如果所述存储器映射信息所涉及的所述至少一个物理地址处于在监督模式内或在监督模式下运行的所述过程的允许的地址范围内,所述请求的写访问被允许。
13.根据权利要求12所述的方法,其中所述存储器映射信息是从所述第二寄存器表(24)表示的配置存储器区域读取的,其中存储在所述配置存储器区域中的数据代表所述允许的地址范围。
14.根据权利要求12或13所述的方法,其中,如果对于用于映射逻辑物理地址到实际物理地址的所述第一寄存器(22)的读访问不成功,在监督模式内或在监督模式下运行的所述过程请求写访问所述第一寄存器表(22)。
15.根据权利要求12或14之一所述的方法,其中所述存储器映射信息涉及映射到所述至少一个实际物理地址的至少一个逻辑物理地址。
16.根据权利要求15所述的方法,其中,在监督模式内或在监督模式下运行的所述过程对于所述第一寄存器(22)的写访问被实施之后,重新配置表示用于彼此映射至少一个虚拟地址和至少一个实际物理地址的虚拟地址信息的第三寄存器表(26),以表示虚拟地址与所述存储器映射信息所指的所述至少一个实际物理地址的映射。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2010/053852 WO2012025793A1 (en) | 2010-08-26 | 2010-08-26 | Memory management unit for a microprocessor system, microprocessor system and method for managing memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103080912A true CN103080912A (zh) | 2013-05-01 |
CN103080912B CN103080912B (zh) | 2015-11-25 |
Family
ID=45722961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080068795.XA Expired - Fee Related CN103080912B (zh) | 2010-08-26 | 2010-08-26 | 微处理器系统及用于其上的存储器管理单元和管理方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9043577B2 (zh) |
EP (1) | EP2609511B1 (zh) |
CN (1) | CN103080912B (zh) |
WO (1) | WO2012025793A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572507A (zh) * | 2013-10-16 | 2015-04-29 | 特拉博斯股份有限公司 | 用于控制功能组件的存储器使用的方法和设备 |
CN106068502A (zh) * | 2014-03-07 | 2016-11-02 | 微软技术许可有限责任公司 | 用于细分的特权级的操作系统/管理程序效率 |
CN107077356A (zh) * | 2014-09-10 | 2017-08-18 | 爱迪德技术有限公司 | 存储器特权 |
CN107209717A (zh) * | 2015-02-13 | 2017-09-26 | 高通股份有限公司 | 针对存储器元件的分叉存储器管理 |
CN107924366A (zh) * | 2015-08-27 | 2018-04-17 | Arm 有限公司 | 用于控制指令执行行为的装置及方法 |
CN108292264A (zh) * | 2015-12-02 | 2018-07-17 | 瑞典爱立信有限公司 | 用于管理存储器页的可用性的方法和存储器可用性管理模块 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886312B2 (en) | 2011-09-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Dynamic provisioning of virtual video memory based on virtual video controller configuration |
US11221967B2 (en) * | 2013-03-28 | 2022-01-11 | Hewlett Packard Enterprise Development Lp | Split mode addressing a persistent memory |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9792222B2 (en) * | 2014-06-27 | 2017-10-17 | Intel Corporation | Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure |
WO2016068962A1 (en) | 2014-10-31 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Indicating a privilege level |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
US9715410B2 (en) * | 2015-01-30 | 2017-07-25 | Red Hat Israel, Ltd. | Protected virtual machine function access |
US10196069B2 (en) * | 2015-03-02 | 2019-02-05 | Surya Kiran Satyavolu | Methods and systems of algorithmically controlling automotive functions |
US9286105B1 (en) * | 2015-03-16 | 2016-03-15 | AO Kaspersky Lab | System and method for facilitating joint operation of multiple hypervisors in a computer system |
CN107025180B (zh) * | 2016-02-01 | 2020-03-13 | 龙芯中科技术有限公司 | 内存管理方法和装置 |
GB2547247B (en) * | 2016-02-12 | 2019-09-11 | Advanced Risc Mach Ltd | An apparatus and method for controlling use of bounded pointers |
US10908832B2 (en) * | 2017-10-31 | 2021-02-02 | Micron Technology, Inc. | Common pool management |
KR102705754B1 (ko) * | 2019-03-05 | 2024-09-12 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
EP3792800A1 (en) * | 2019-09-12 | 2021-03-17 | Nxp B.V. | Managing equally sized virtual memory regions and physical memory regions in an electronic device |
FR3100901B1 (fr) * | 2019-09-12 | 2021-08-27 | Stmicroelectronics Grand Ouest Sas | Système de protection de la mémoire |
US11720384B2 (en) | 2020-06-05 | 2023-08-08 | Nxp B.V. | Program code protection in a data processing system |
US20230205705A1 (en) * | 2021-12-23 | 2023-06-29 | Advanced Micro Devices, Inc. | Approach for providing indirect addressing in memory modules |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064567A1 (en) * | 2004-05-24 | 2006-03-23 | Jacobson Quinn A | Translating loads for accelerating virtualized partition |
US20100125709A1 (en) * | 2008-11-17 | 2010-05-20 | International Business Machines Corporation | Logical Partition Memory |
CN101751283A (zh) * | 2008-12-18 | 2010-06-23 | 联想(北京)有限公司 | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2319102B (en) * | 1998-01-30 | 1998-12-23 | Ibm | A security system for a transaction processing system |
US6877158B1 (en) | 2000-06-08 | 2005-04-05 | International Business Machines Corporation | Logical partitioning via hypervisor mediated address translation |
US20060047959A1 (en) * | 2004-08-25 | 2006-03-02 | Microsoft Corporation | System and method for secure computing |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US8275971B2 (en) | 2008-08-27 | 2012-09-25 | International Business Machines Corporation | Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities |
-
2010
- 2010-08-26 US US13/817,940 patent/US9043577B2/en active Active
- 2010-08-26 CN CN201080068795.XA patent/CN103080912B/zh not_active Expired - Fee Related
- 2010-08-26 WO PCT/IB2010/053852 patent/WO2012025793A1/en active Application Filing
- 2010-08-26 EP EP10856354.5A patent/EP2609511B1/en not_active Not-in-force
-
2015
- 2015-05-18 US US14/715,196 patent/US9280491B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064567A1 (en) * | 2004-05-24 | 2006-03-23 | Jacobson Quinn A | Translating loads for accelerating virtualized partition |
US20100125709A1 (en) * | 2008-11-17 | 2010-05-20 | International Business Machines Corporation | Logical Partition Memory |
CN101751283A (zh) * | 2008-12-18 | 2010-06-23 | 联想(北京)有限公司 | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572507A (zh) * | 2013-10-16 | 2015-04-29 | 特拉博斯股份有限公司 | 用于控制功能组件的存储器使用的方法和设备 |
CN104572507B (zh) * | 2013-10-16 | 2018-04-13 | 特拉博斯股份有限公司 | 用于控制功能组件的存储器使用的方法和设备 |
CN106068502A (zh) * | 2014-03-07 | 2016-11-02 | 微软技术许可有限责任公司 | 用于细分的特权级的操作系统/管理程序效率 |
CN107077356A (zh) * | 2014-09-10 | 2017-08-18 | 爱迪德技术有限公司 | 存储器特权 |
CN107209717A (zh) * | 2015-02-13 | 2017-09-26 | 高通股份有限公司 | 针对存储器元件的分叉存储器管理 |
CN107924366A (zh) * | 2015-08-27 | 2018-04-17 | Arm 有限公司 | 用于控制指令执行行为的装置及方法 |
CN107924366B (zh) * | 2015-08-27 | 2022-08-05 | Arm 有限公司 | 用于控制指令执行行为的装置及方法 |
CN108292264A (zh) * | 2015-12-02 | 2018-07-17 | 瑞典爱立信有限公司 | 用于管理存储器页的可用性的方法和存储器可用性管理模块 |
Also Published As
Publication number | Publication date |
---|---|
WO2012025793A1 (en) | 2012-03-01 |
US9043577B2 (en) | 2015-05-26 |
US20130159663A1 (en) | 2013-06-20 |
US20150248355A1 (en) | 2015-09-03 |
EP2609511B1 (en) | 2016-10-19 |
CN103080912B (zh) | 2015-11-25 |
US9280491B2 (en) | 2016-03-08 |
EP2609511A4 (en) | 2014-03-26 |
EP2609511A1 (en) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103080912B (zh) | 微处理器系统及用于其上的存储器管理单元和管理方法 | |
US8041920B2 (en) | Partitioning memory mapped device configuration space | |
CN101236529B (zh) | 用于访问分区系统中的存储器的方法和设备 | |
US9430296B2 (en) | System partitioning to present software as platform level functionality via inter-partition bridge including reversible mode logic to switch between initialization, configuration, and execution mode | |
US8301717B2 (en) | Extended virtual memory system and method in a computer cluster | |
CN101004726A (zh) | 直接传送中断到虚拟处理器 | |
CN1991808B (zh) | 用于访客访问存储器映射的设备的方法和装置 | |
CN104685479A (zh) | 客户虚拟机内的虚拟输入/输出存储器管理单元 | |
KR20130112033A (ko) | 데이터 처리장치의 디버깅 | |
CN1920797A (zh) | 存储器访问控制装置 | |
CN105393229A (zh) | 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中 | |
CN104798053A (zh) | 安全区域内的存储器管理 | |
US9875132B2 (en) | Input output memory management unit based zero copy virtual machine to virtual machine communication | |
US11068418B2 (en) | Determining memory access categories for tasks coded in a computer program | |
US10402576B2 (en) | Safe physical function passthrough using virtual machine functions | |
US9367478B2 (en) | Controlling direct memory access page mappings | |
US10664304B2 (en) | Application memory protection using an extended page table switching virtual machine function | |
US20110264841A1 (en) | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility | |
US20180136867A1 (en) | Address based host page table selection | |
US10204060B2 (en) | Determining memory access categories to use to assign tasks to processor cores to execute | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
US20180157605A1 (en) | Configuration of a memory controller for copy-on-write | |
KR101535792B1 (ko) | 운영체제 구성 장치 및 방법 | |
CN115878210B (zh) | 一种系统配置处理方法及相关设备 | |
Scolari | Partitioning Deep Cache Hierarchies in Software for Predictable Performance |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Texas in the United States Patentee after: NXP USA, Inc. Address before: Texas in the United States Patentee before: FREESCALE SEMICONDUCTOR, Inc. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |