CN103080912B - 微处理器***及用于其上的存储器管理单元和管理方法 - Google Patents

微处理器***及用于其上的存储器管理单元和管理方法 Download PDF

Info

Publication number
CN103080912B
CN103080912B CN201080068795.XA CN201080068795A CN103080912B CN 103080912 B CN103080912 B CN 103080912B CN 201080068795 A CN201080068795 A CN 201080068795A CN 103080912 B CN103080912 B CN 103080912B
Authority
CN
China
Prior art keywords
address
physical address
management unit
enforcement mechanisms
memory management
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.)
Active
Application number
CN201080068795.XA
Other languages
English (en)
Other versions
CN103080912A (zh
Inventor
多夫·莱翁利克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN103080912A publication Critical patent/CN103080912A/zh
Application granted granted Critical
Publication of CN103080912B publication Critical patent/CN103080912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual 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)
  • Storage Device Security (AREA)
  • Memory System (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或例如用于嵌入式***的专业的操作***,例如SmartDSPOS。对于带有多于一个处理器核心的***,提供有至少一个处理器核心的逻辑划分是可行的。在一个核心上例如通过利用超线程技术运行多于一个的逻辑划分和操作***也是可能的。
为了管理硬件和物理资源,管理程序(hypervisor)有时被提供。管理程序可以在硬件、固件、软件或这些任何的组合中被实施。管理程序的一个例子是Xen-管理程序。在很多情况下,管理程序将物理资源分配到逻辑划分并且提供位于硬件和在逻辑划分上运行的客户操作***之间的接口。还可能提供通过客户操作***看到的虚拟机。管理程序通常在所谓的管理程序模式中运行最高的特权级别,然而客户操作***在所谓的监督模式中运行较低特权级别。特别是,管理程序通常控制客户操作***访问物理资源。在一些情况下,如果只有一个操作***在运行,操作管理程序甚至也是有用的。
计算机***可被实施以便客户操作***甚至不知道其被连接到受管理程序控制的虚拟机。管理程序的存在对操作***是透明的也是可能的。这个方法通常称作准虚拟化。操作***还可在硬件上直接运行裸机,其中管理程序不提供控制结构的附加层。
在很多情况下,现代操作***有一个称作虚拟存储器的特征。通过使用虚拟存储器,给在操作***的控制下运行的单独的过程例如用户应用程序以及操作***自身提供一个大的并且同质的存储器结构是可能的。特别是,与实际物理随机存取存储器(RAM)包括的存储器数目相比,虚拟存储器可能给应用程序提供更大数目的存储器。如果存储器请求超过RAM的物理存储器,这样的虚拟存储器***通常使用像硬盘的***硬件存储器件以“交换”硬盘和RAM之间的数据。虚拟存储器通常独立于管理程序,由操作***直接控制。
操作***通常也有其自身模型的物理资源。这样的一个模型还可能涉及通过管理程序呈现的虚拟机。物理模型没必要描述操作***运行的实际硬件。特别是,操作***使用的物理地址没必要与硬件和管理程序使用的实际硬件物理地址相同。在其物理模型中,操作***使用的物理地址通常被称作逻辑物理地址,以与实际物理地址区分开。此外,不同操作***使用不同模型的物理资源。因此,对于带有管理程序的计算机***,需要制定规定以将操作***的物理模型以及正如操作***所能看到的逻辑物理地址转化为真实或实际物理地址。US6,877,158B1描述了在物理***和不同操作***之间转化的管理程序调解地址的一个例子。
发明内容
正如在所附独立权利要求中所描述的,本发明提供了用于微处理器***的存储器管理单元,微处理器***以及用于管理用于微处理器***的存储器的方法。
本发明的特定实施例在从属权利要求中被陈述。
本发明的这些和其它方面通过参照下文描述的实施例将非常明显并且被阐述。
附图说明
根据附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的符号被用于表示相同的或功能类似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。
图1示意性地显示了带有存储器管理单元的微处理器***和管理存储器的方法。
图2示意性地显示了带有存储器管理单元的微处理器***和管理存储器的方法的一种变型。
具体实施方式
由于本发明说明的实施例可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实施,细节不会在比上述所说明的认为有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
在本说明的情况下,虚拟存储器可能指通过操作***所提供的虚拟存储器***。虚拟存储器***的地址可被称为虚拟地址。物理存储器模型可以是操作***提供的物理存储器模型。可想象的是,计算机***的至少一部分硬件,操作***是否运行。特别是,物理模型可能对应于通过特权级别高于操作***的过程,例如管理程序,呈现给操作***的虚拟机。物理模型的地址可被称为逻辑物理地址。物理存储器、实际存储器或硬件可能指存储器以及硬件器件,所述硬件器件物理地存在于微处理器***中。硬件的地址,特别是存储器地址,可被称为实际物理地址。术语物理地址可能指逻辑物理地址和实际物理地址。
微处理器***可以是带有至少一个微处理器的任何器件,所述微处理器有至少一个计算核心。所述核心可以是多核心处理器的一个核心,其可以是单一核心微处理器的核心或其可以是称为SoC(片上***)的芯片。还可想象的是,微处理器***包括一个或多个微处理器,每个微处理器包括一个或多个核心。微处理器***可能包括作为微处理器的数字信号处理器(DSP)。微处理器还可以是例如Intel或AMD制造的x86类型处理器,或IBMPower微处理器,以及基于ARM或属于任何其它类型的微处理器类型。在这种情况下,现场可编程门阵列(FPGA)如果相应地被编程的话也可被理解为微处理器***。微处理器***可在手持器件中被实施,如同移动电话或智能手机、嵌入式***、或例如便携式电脑、台式电脑或服务器***的手提或非手提计算***的一部分。
操作***可以是向应用程序,特别是用户应用程序提供基础功能和接口的任何***。用于操作***的例子是GNU/Linux或SmartDSPOS的各种实施的例子。客户操作***可以是在管理程序控制下运行的操作***。
还可被称作虚拟机监控器(VMM)的管理程序可能允许一个或多个操作***同时地在微处理器***上运行并且提供硬件虚拟化。管理程序可能给客户操作***提供虚拟机并且可能监控客户操作***或***的执行。那样,多操作***,包括相同操作***的多个实例,可能共享硬件资源。管理程序可能在裸硬件以及实际硬件上运行。其可能分配穿过逻辑划分的***资源以分享物理资源,例如CPU和核心、直接访问存储器件、存储器、网络资源等等。可以认为在至少一个硬件、固件和软件、或在其中的任何组合中实施管理程序。管理程序可能在称为管理程序模式的特权级别上运行,所述管理程序模式可能允许管理程序直接硬件访问。管理程序或操作***可能作为一个过程运行或可能包括多个过程,所述过程可能并行运行。管理程序的过程可能在管理程序模式中运行。可以提供监督模式。操作***可能包括一个或多个过程。可认为客户操作***以及客户操作***的一个或多个过程在监督模式中运行。多于一个操作***可能在监督模式中运行。监督模式可能有比管理程序模式低的特权级别。特别是,可想象的是,在监督模式中的客户操作***不允许直接访问硬件可能有限制硬件访问,例如访问地址的已定义的子集。可存在定义的不同监督模式,其中不同逻辑划分和操作***有不同特权级别。可以认为一个或多个过程在监督模式中运行。在监督模式中运行的过程可能在监督模式的特权级别上或在低于监督模式的特权级别上运行,例如所述模式可能给硬件和/或软件或硬件接口提供较低级别的访问权限。在监督模式中运行的过程,例如客户操作***,可能运行并分别地控制在监督模式下运行的过程。在监督模式中运行的过程可例如是在后台运行,提供***服务或用户应用程序的后台程序。可定义用于在监督模式下运行的过程的特权级别。所述监督模式可例如被定义为用户模式。可定义一个或多个用于过程的不同特权级别,所述过程可在监督模式例如不同用户模式下运行。读访问可以是通过软件的直接读访问或硬件生成访问。写访问可以是通过软件的直接写访问或硬件生成访问。
寄存器表可能包括一个或多个寄存器。表示信息的寄存器表可能包括直接被表示的信息。可想象的是,表示信息的寄存器表包括直接或间接指向存储器区域的地址信息,在所述区域中被表示的信息可被存储。特别是,寄存器表可能包括一个或多个到一个或多个地址或存储器区域的地址范围的指针。存储器区域可例如是微处理器***的常规物理存储器的部分、RAM、例如作为专用存储器或可单独地被提供。专用存储器可例如提供存储器管理单元(MMU)。寄存器表可能表示地址范围和存储器范围。表示的存储器范围和地址范围可以是连续的或者片段的。可认为所述存储器范围和地址范围是不连续的或是片段的。通常,除非特定说明,地址可以是虚拟、逻辑物理或实际物理地址。重新配置在寄存器表中表示的信息可能包括直接写数据到寄存器表中。其还可能包括写数据到存储器表指向的存储器区域。写访问存储器表可能包括直接写访问在寄存器表中的重新配置信息。可认为写访问寄存器表包括写访问地址或通过寄存器表指向的地址范围。
图1示意性地显示了微处理器***10,所述微处理器***10可能有至少一个计算核心12、物理存储器14以及高速缓存16。核心12可能通过存储器管理单元20访问存储器14是可行的。还可存在位于核心12和存储器14之间的直接连接。存储器14可通过不同的操作***不同地被建模。正如在图1中的Linux操作***和SmartDSPOS所表示的,不同操作***可能提供存储器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 (15)

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到3之一所述的存储器管理单元(20),其中所述存储器管理单元(20)还包括第三寄存器表(26),表示用于彼此映射至少一个虚拟地址和至少一个物理地址的虚拟地址信息。
6.根据权利要求5所述的存储器管理单元(20),其中映射到至少一个虚拟地址的所述至少一个物理地址是实际物理地址。
7.根据权利要求5所述的存储器管理单元(20),其中所述存储器管理单元(20)适合于允许写访问在监督模式内或在监督模式下运行的过程的所述第三寄存器(26)。
8.根据权利要求1到3之一所述的存储器管理单元(20),其中所述至少一个实际物理地址是物理存储器(14)的地址。
9.根据权利要求1到3之一所述的存储器管理单元(20),所述存储器管理单元(20)还适合于允许写访问在管理程序模式中运行的过程的所述第一寄存器(22)。
10.一种微处理器***(10),包括至少一个处理器核心(12)和根据权利要求1到9之一所述的存储器管理单元(20),所述存储器管理单元(20)被连接到所述处理器核心(12)。
11.一种用于微处理器***(10)的存储器管理的方法,所述微处理器***(10)具有处理器核心(12)、物理存储器(14)和根据权利要求1到9之一所述的存储器管理单元(20),所述存储器管理单元(20)被连接到所述处理器核心(12)和所述物理存储器(14),其中接收写访问请求,请求通过在监督模式内或在监督模式下运行的过程写访问第一寄存器表(22)从而以涉及至少一个物理地址的存储器映射信息来重新配置在所述第一寄存器表(22)中的物理地址信息,并且如果所述存储器映射信息所涉及的所述至少一个物理地址处于在监督模式内或在监督模式下运行的所述过程的允许的地址范围内,所述请求的写访问被允许。
12.根据权利要求11所述的方法,其中所述存储器映射信息是从所述第二寄存器表(24)表示的配置存储器区域读取的,其中存储在所述配置存储器区域中的数据代表所述允许的地址范围。
13.根据权利要求11或12所述的方法,其中,如果对于用于映射逻辑物理地址到实际物理地址的所述第一寄存器(22)的读访问不成功,在监督模式内或在监督模式下运行的所述过程请求写访问所述第一寄存器表(22)。
14.根据权利要求11所述的方法,其中所述存储器映射信息涉及映射到所述至少一个实际物理地址的至少一个逻辑物理地址。
15.根据权利要求14所述的方法,其中,在监督模式内或在监督模式下运行的所述过程对于所述第一寄存器(22)的写访问被实施之后,重新配置表示用于彼此映射至少一个虚拟地址和至少一个实际物理地址的虚拟地址信息的第三寄存器表(26),以表示虚拟地址与所述存储器映射信息所指的所述至少一个实际物理地址的映射。
CN201080068795.XA 2010-08-26 2010-08-26 微处理器***及用于其上的存储器管理单元和管理方法 Active CN103080912B (zh)

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 CN103080912A (zh) 2013-05-01
CN103080912B true CN103080912B (zh) 2015-11-25

Family

ID=45722961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080068795.XA Active 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)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
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
FI20136023A (fi) * 2013-10-16 2015-04-17 Tellabs Oy Menetelmä ja laite toiminnallisen komponentin muistinkäytön hallitsemiseksi
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
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
CN107077356A (zh) * 2014-09-10 2017-08-18 爱迪德技术有限公司 存储器特权
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
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
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
GB2541714B (en) * 2015-08-27 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling instruction execution behaviour
EP3384393B1 (en) * 2015-12-02 2020-03-11 Telefonaktiebolaget LM Ericsson (publ) Method and memory availability managing module for managing availability of memory pages
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
KR20200106682A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire
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
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751283A (zh) * 2008-12-18 2010-06-23 联想(北京)有限公司 虚拟机监视器,虚拟机***及客户操作***状态获取方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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
US7167970B2 (en) 2004-05-24 2007-01-23 Sun Microsystems, Inc. Translating loads for accelerating virtualized partition
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
US8135937B2 (en) * 2008-11-17 2012-03-13 International Business Machines Corporation Logical partition memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751283A (zh) * 2008-12-18 2010-06-23 联想(北京)有限公司 虚拟机监视器,虚拟机***及客户操作***状态获取方法

Also Published As

Publication number Publication date
EP2609511A4 (en) 2014-03-26
US20130159663A1 (en) 2013-06-20
EP2609511B1 (en) 2016-10-19
WO2012025793A1 (en) 2012-03-01
US20150248355A1 (en) 2015-09-03
US9280491B2 (en) 2016-03-08
US9043577B2 (en) 2015-05-26
CN103080912A (zh) 2013-05-01
EP2609511A1 (en) 2013-07-03

Similar Documents

Publication Publication Date Title
CN103080912B (zh) 微处理器***及用于其上的存储器管理单元和管理方法
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
KR100914081B1 (ko) 분할 시스템에서 메모리를 액세스하는 디바이스들에 대한게스트 대 호스트 어드레스 변환
US8041920B2 (en) Partitioning memory mapped device configuration space
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
US9069907B2 (en) Abstracting special file interfaces to concurrently support multiple operating system levels
US9952788B2 (en) Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme
US7840964B2 (en) Mechanism to transition control between components in a virtual machine environment
US8447916B2 (en) Interfaces that facilitate solid state storage configuration
US9367478B2 (en) Controlling direct memory access page mappings
KR20130112033A (ko) 데이터 처리장치의 디버깅
KR101355105B1 (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
JPWO2010097925A1 (ja) 情報処理装置
US10437523B2 (en) Secure receive packet processing for network function virtualization applications
JP3629507B2 (ja) コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法
US7536694B2 (en) Exception handling in a multiprocessor system
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
US20170017579A1 (en) Flexible i/o dma address allocation in virtualized systems
US6928492B1 (en) Computer I/O device access method
US10705983B1 (en) Transparent conversion of common virtual storage
CN115878210A (zh) 一种***配置处理方法及相关设备
CN114490118A (zh) 一种基于共享内存的可跨设备的传感器数据管理方法及装置
CN118210622A (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
CP01 Change in the name or title of a patent holder

Address after: Texas in the United States

Patentee after: NXP America Co Ltd

Address before: Texas in the United States

Patentee before: Fisical Semiconductor Inc.

CP01 Change in the name or title of a patent holder