CN101236529A - 用于设备访问分区系统中的存储器的访客地址至主机地址转换 - Google Patents

用于设备访问分区系统中的存储器的访客地址至主机地址转换 Download PDF

Info

Publication number
CN101236529A
CN101236529A CNA2007103073964A CN200710307396A CN101236529A CN 101236529 A CN101236529 A CN 101236529A CN A2007103073964 A CNA2007103073964 A CN A2007103073964A CN 200710307396 A CN200710307396 A CN 200710307396A CN 101236529 A CN101236529 A CN 101236529A
Authority
CN
China
Prior art keywords
equipment
subregion
logic
address translation
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
CNA2007103073964A
Other languages
English (en)
Other versions
CN101236529B (zh
Inventor
S·苏古马
K·S·潘萨
N·N·艾尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101236529A publication Critical patent/CN101236529A/zh
Application granted granted Critical
Publication of CN101236529B publication Critical patent/CN101236529B/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/02Addressing or allocation; Relocation
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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

Abstract

公开用于设备访问分区系统中的存储器的访客地址至主机地址转换的设备、方法和系统的实施例。在一个实施例中,设备包括接口、分区逻辑、第一地址转换逻辑和第二地址转换逻辑。该接口用于从设备接收要访问分区系统中的存储器的请求。该分区逻辑用于确定该设备被指定到第一分区还是第二分区。第一地址转换逻辑用于将第一访客地址转换成所述第一分区中的第一主机地址。第二地址转换逻辑用于将第二访客地址转换成所述第二分区中的第二主机地址。

Description

用于设备访问分区系统中的存储器的访客地址至主机地址转换
技术领域
本公开涉及信息处理的领域,更具体地说,涉及分区信息处理系统的领域。
背景技术
通常,信息处理系统中分区的概念是指将系统分成多个分区,其中每个分区是可以作为完整且独立系统来工作的系统资源的集合。可以分配给分区的系统资源包括处理器、处理器核(其中可以将多核处理器的各个核分配到不同分区)、系统存储器的若干部分和输入/输出(“I/O”)装置。
有不同类型分区是公知的。在“软”分区中,系统资源可以在分区之间共享。软分区的一种形式是虚拟化,这允许一个或多个操作系统(每一个,“OS”)的多个实例在单个系统上运行,即使每个OS被设计为对系统及其资源具有完全直接控制。虚拟化通常使用公知为虚拟机监视器(“VMM”)的软件来实现,虚拟机监视器直接控制系统的物理资源并向每个OS呈交具有虚拟资源的“虚拟机”(“VM”),这些虚拟资源包括OS可以完全且直接控制的一个或多个虚拟处理器。VMM维护用于实现例如在VM之间共享和/或分配物理资源的虚拟化策略的系统环境(“虚拟化环境”)。运行在VM上的每个OS和任何其他软件称为“访客”或“访客软件”,而“主机”或“主机软件”是运行在虚拟化环境之外且可能知道或可能不知道该虚拟化环境的例如VMM的软件。
软分区通常要求VMM、监管程序、OS或其他此类软件设计为在分区系统的一个分区中运行并强制共享物理资源,这可以包括阻止运行于其他分区中的任何此类软件直接控制物理资源。
在“硬”分区中,每个系统资源通常专用于相应分区。硬分区支持任何OS、VMM、监管程序或其他此类软件运行在每个分区中而不要求针对分区系统设计的软件,因为此类软件可以直接控制其分区的物理资源。
发明内容
根据本发明的一方面,本发明涉及一种设备,包括:接口,所述接口用于从设备接收访问分区系统中的存储器的请求;分区逻辑,所述分区逻辑用于确定所述设备被指定到所述分区系统中的第一分区还是第二分区;第一地址转换逻辑,所述第一地址转换逻辑用于将第一访客地址转换成所述第一分区中的第一主机地址;以及第二地址转换逻辑,所述第二地址转换逻辑用于将第二访客地址转换成所述第二分区中的第二主机地址。
根据本发明的另一方面,本发明涉及一种方法,包括:
从设备接收访问分区系统中的存储器的请求;确定所述设备被指定到所述分区系统中的第一分区还是第二分区;响应确定所述设备被指定到所述第一分区而将所述请求转发到第一地址转换逻辑;以及响应确定所述设备被指定到所述第二分区而将所述请求转发到第二地址转换逻辑。
根据本发明的又一方面,本发明涉及一种系统,包括:
第一分区,所述第一分区包括:
存储器的第一部分;第一设备;以及第一地址转换逻辑,所述第一地址转换逻辑用于将第一访客地址转换成所述存储器的第一部分中的第一主机地址;以及
第二分区,所述第二分区包括:
所述存储器的第二部分;第二设备;以及第二地址转换逻辑,所述第二地址转换逻辑用于将第二访客地址转换成所述存储器的第二部分中的第二主机地址;以及
分区逻辑,所述分区逻辑用于将来自所述第一设备的第一请求转发到所述第一地址转换逻辑,以及将来自所述第二设备的第二请求转发到所述第二地址转换逻辑。
附图说明
附图中通过举例方式而非限制来说明本发明。
图1示出信息处理系统中的本发明实施例。
图2图示将设备指定到域。
图3图示设备至访问系统存储器的地址转换。
图4图示存储器访问数据结构中的项。
图5示出图1的实施例的分区逻辑。
图6示出本发明的方法实施例。
具体实施方式
本发明可以在用于设备访问分区系统中的存储器的访客地址至主机地址转换的设备、方法和系统中实施,下文将对此进行描述。在下文描述中,阐述了诸如组件和系统配置的许多特定细节以便更透彻地理解本发明。然而,本领域技术人员将认识到,在没有这些特定细节的情况下,仍可以实施本发明。此外,未详细示出一些公知的结构、电路等,以免不必要地妨碍对本发明的理解。
本发明的实施例可以用于提高分区系统的虚拟化能力。
本发明实施例的部件可以通过硬件、软件、固件或硬件、软件、固件的任何组合来实现。术语硬件通常是指具有物理结构的部件,例如电子、电磁、光、电光、机械、机电元件等。术语软件通常是指逻辑结构、方法、过程、程序、例行程序、进程、算法、公式、表达式等。术语固件通常是指在硬件结构(例如闪速存储器或只读存储器)中实现或包含在其中的逻辑结构、方法、过程、程序、例行程序、进程、算法、公式、表达式。固件的示例是微代码、可写控制存储装置和微编程的结构。
图1示出信息处理系统100中的本发明实施例。系统处理系统100包括裸平台硬件110,裸平台硬件110可以是能够执行任何OS、VMM或其他软件的任何设备。例如,裸平台硬件110可以是个人计算机、主机计算机、便携式计算机、手持设备、机顶盒、服务器或任何其他计算系统的硬件。在此实施例中,裸平台硬件110包括一个或多个处理器封装120、芯片组130、系统存储器140和设备151、152、153和154。
处理器120可以是具有一个或多个执行核的任何组件,其中每个执行核能够基于多种不同类型的处理器的任何一种,包括通用微处理器、例如Intel公司出产的IntelPentium处理器系列、Itanium处理器系列或其他处理器系列中的处理器,或其他公司出产的其他处理器,或数字信号处理器或微控制器,或可以是可重新配置核(例如现场可编程门阵列)。虽然图1仅示出一个此类处理器120,但是裸处理硬件110可以包括任何数量的处理器,包括任何数量的多核处理器(其中每个多核处理器具有任何数量的执行核)以及任何数量的多线程处理器(其中每个多线程处理器具有任何数量的线程)。
芯片组130可以是支持存储器操作、输入/输出操作、配置、控制、内部或外部接口、连接或通信功能(例如“胶水”逻辑和总线桥)和/或处理器120和/或系统100的任何类似功能的电路和逻辑的任何集合。可以将芯片组130的各个部件归组在单个芯片上、一对芯片上、散布在多个芯片中和/或部分地、全部地、冗余地或根据分布式方法将其集成到一个或多个处理器(包括处理器120)中。
系统存储器140可以是其上可存储例如数据和/或程序代码的信息的任何介质,例如静态或动态随机存取存储器、基于半导体的只读或闪速存储器、磁盘或光盘存储器或处理器120可读的任何其他类型的介质或此类介质的任何组合。
设备151、152、153和154均可以表示任何数量的任何类型的I/O、外设或其他设备,例如键盘、鼠标、跟踪球、指向设备、监视器、打印机、介质卡、网络接口、信息存储设备等。设备151、152、153和154的每个设备可以包含在离散组件中,或者它们中的任何一个或多个可以与与任何其他设备包括在集成组件中。在一个实施例中,设备151、152、153和154均可以表示多功能I/O、外设或其他设备中的不同功能。
处理器120、芯片组130、系统存储器140和设备151、152、153和154可以根据任何公知的方法、例如直接或间接通过一个或多个并行、串行、管线化(pipelined)、异步、同步、有线、无线或其他总线或点到点连接彼此耦合或彼此通信。例如,芯片组130包括从设备151、152、153和154接收事务的接口133。裸平台硬件110还可以包括任何数量的附加设备、代理、组件或连接。
根据分区技术将裸平台硬件110分区成分区111和112。多核处理器120的核121、芯片组130的地址转换逻辑131、系统存储器140的一部分141和设备151和153被分配到分区111。多核处理器120的核122、芯片组130的地址转换逻辑132、系统存储器140的部分142和设备152和154被分配到分区112。每个分区还可以包括附加处理器、核、芯片组或其他逻辑、存储器的若干部分、设备或上文描述或另外在信息处理领域中公知的任何其他物理资源
除了裸平台硬件110,图1还图示分区111中由VMM维护的虚拟化环境113,以及分区112中由VMM 116维护的虚拟化环境114。VMM 115和116可以是安装在裸平台硬件110上或裸平台硬件110可访问以便向访客呈交VM(即裸平台硬件110的抽象)或另外创建VM、管理VM和实施虚拟化策略的任何软件、固件或硬件主机。VMM115和116均可以是相同VMM的实例或两个不同VMM的实例。
访客可以是任何OS、包括VMM 115或116的另一个实例的任何VMM、任何监管程序或任何应用程序或其他软件。每个访客期望根据VM中呈交的处理器和平台的体系结构来访问裸平台硬件110的物理资源(例如处理器和平台寄存器、存储器和输入/输出设备)。图1示出四个VM,其中在VM 161上安装有访客OS 171和访客应用程序181和设备驱动程序185,在VM 163上安装有访客OS 173和访客应用程序183和设备驱动程序187,在VM 162上安装有访客OS172和访客应用程序182和设备驱动程序186,以及在VM 164上安装有访客OS 174和访客应用程序184和设备驱动程序188。虽然图1仅示出四个VM以及对应于每个VM的一个应用程序和一个驱动程序,但是在本发明范围内,可以创建任何数量的VM,以及任何数量的应用程序和/或驱动程序可以运行在每个VM。
访客可访问的资源可以分类成“特权”或“非特权”资源。对于特权资源,VMM使访客期望的功能易于实现同时保持对该资源的最终控制。非特权资源不一定要由VMM来控制,而可以被访客直接访问。
而且,每个访客OS期望处理多种事件,例如异常(例如,页故障和一般保护故障)、中断(例如,硬件中断和软件中断)以及平台事件(例如初始化和系统管理中断)。在本文中将这些异常、中断和平台事件统一且单独地称为“虚拟化事件”。这些虚拟化事件的其中一些称为“特权事件”,因为它们必须由VMM来处理以确保VM的正确操作、保护VMM免受访客的影响以及保护访客免受访客相互之间的影响。
在任何给定时间,处理器核可以执行来自VMM或任何访客的指令,因此VMM或访客可以在处理器核上运行或控制处理器核。当特权事件发生或访客试图访问特权资源时,可以将控制从访客转移到VMM。本文将控制从访客转移到VMM称为“VM退出”。在处理事件或恰当地协助对资源的访问之后,VMM可以将控制返回到访客。本文将控制从VMM转移到访客称为“VM进入”。
为了支持虚拟化,可以在I/O事务中使用地址转换逻辑(例如地址转换逻辑131或132)来将设备(例如设备151、152、153或154)映射到系统存储器140中的域(下文将对此进行描述)。I/O事务通常是DMA请求(即来I/O设备直接访问系统存储器140的请求),但是也可以是任何其他类型的事务。地址转换逻辑提供硬件支持以协助或增强I/O设备指定和/或管理。如图1所示,地址转换逻辑可以包括在芯片组130中,或部分或全部地在处理器120或任何其他处理器、协处理器、芯片组或其他组件中实现。
抽象地将域定义为系统中将系统存储器140的子集分配到其中的隔离环境。例如,VM 161、162、163和164的每个VM可以视为一个域。允许直接访问系统存储器中分配到域的那一部分的设备称为该域的指定的设备。域的隔离通过阻止未指定到该域的设备访问对该域分配的存储器来实现。通过确保将所有设备指定到某个域(可能为缺省域),并将来自每个指定的设备的访问限制于分配给它的域的存储器来支持多个隔离的域。
每个域具有可能与存储器的系统视图不同的系统存储器或物理地址空间的视图。根据存储器的系统视图来访问系统存储器所用的地址称为主机物理地址(“TIPA”)。域的资源访问其物理地址空间所用的地址称为访客物理地址(“GPA”)。如果域的GPA空间与HPA空间相同或是HPA空间的子集,则将该域视为非重新定位的。如果将域的GPA空间转换才能访问它分配的HPA空间,则将该域视为重新定位的。GPA和HPA空间的逻辑分离提供加强存储器保护的基础。需要可以验证域的指定设备生成的GPA是否有效并可能地将它们转换成有效的HPA的地址保护和可能的转换机制。地址转换逻辑(例如地址转换逻辑131和132)提供对此功能的硬件支持,有时称为DMA重新映射。
图2是图示将设备指定或映射到域的示例的示意图。在图2中,将设备151映射到系统存储器140中的域240。域240可以包括设备驱动程序241,设备驱动程序241可以是控制或另外支持设备151的任何软件。地址转换逻辑131支持将设备151映射到域240。
地址转换逻辑131包括寄存器组231、重新映射结构232和逻辑电路233。寄存器组231包括用于存储重新映射结构232、逻辑电路233和设备的程序或驱动程序所使用的控制或状态信息的多个寄存器。重新映射结构232提供将GPA重新映射或地址转换到HPA时使用的基本结构、存储装置或表。逻辑电路233包括用于执行重新映射或地址转换操作的电路。
返回图1,设备151、152、153和154示为指定到不同的域。分区111中的地址转换逻辑131支持将设备151映射到VM 161的域以及将设备153映射到VM 163的域。VM 161的域中的设备驱动程序185控制设备151。VM 163的域中的设备驱动程序187控制设备153。分区112中的地址转换逻辑132支持将设备152映射到VM 162的域以及将设备154映射到VM 164的域。VM 162的域中的设备驱动程序186控制设备152。VM 164的域中的设备驱动程序188控制设备154。
一般来说,访客例如通过在尝试I/O操作时产生VM退出通过VMM来访问系统资源。但是,因为将设备151指定到VM 161,其驱动程序185在VM 161上运行,所以访客OS 171和应用程序181可以无需使VM退出到VMM 420来访问设备151。而且,设备151可以通过例如DMA请求来访问分配给VM 161的域的存储器而无需产生VM退出。地址转换逻辑131通过将设备151使用的GPA转换成对应的HPA并拒绝从设备151对其分配的域之外的存储器位置进行访问来支持此功能。相似地,访客OS 172和应用程序182可以访问设备152,设备152可以访问分配给VM 162的域的存储器,访客OS 173和应用程序183可以访问设备153,设备153可以访问分配给VM 163的域的存储器,访客OS 174和应用程序184可以访问设备154,以及设备154可以访问分配给VM 164的域的存储器,而它们全都无需产生VM退出。
图3图示用于DMA重新映射的地址转换的示例。在图3中,将设备151指定到域A,将设备153指定到域B。每个设备可以执行I/O请求或DMA请求来寻址DMA_ADR。地址转换逻辑131将对DMA_ADR的请求从设备151映射到物理存储器140的区段(section)341,其中物理存储器的区段341和345分配给域A。同样地,地址转换逻辑131将对DMA_ADR的请求从设备153映射到物理存储器140的区段347,其中物理存储器的区段343和347分配给域B。区段341、343、345和347可以为根据系统的存储器管理模型的页的大小或物理存储器的一部分的任何其他大小。
系统存储器的访客视图350是从设备151和153的视角来看的逻辑视图。设备151将区段351看作系统的地址空间,而设备153将区段353看作系统的地址空间。VMM 115或负责创建和管理域的其他软件为每个域分配物理存储器140,并建立地址转换逻辑131中的GPA至HPA转换功能。
地址转换逻辑131实现的地址转换功能具体根据系统的物理存储器管理模型而定。例如,在将主机物理存储器作为连续区域分配给域的情况中,转换功能可以是简单的偏移量相加。或者,地址转换逻辑131可以参考执行地址转换的数据结构,例如其中按页粒度来管理主机物理存储器。其他实施例可以使用定义允许各个设备访问的地址范围的数据结构。其他实施例可以使用这些或其他技术的任何组合。
地址转换逻辑131参考的数据结构(“存储器访问数据结构”)可以是任何形式的数据结构,例如单级表或多级表。可以将存储器访问数据结构或存储器访问数据结构的任何部分存储在地址转换逻辑131可访问的任何存储空间(例如重新映射结构232或系统存储器140中的存储器访问表141)中。可以在一个或多个存储空间中拷贝或复制存储器访问数据结构中的全部信息或部分信息(例如来自存储器访问表141的项),或者可以将地址转换逻辑131的转换结果存储在重新映射结构232中的转换后备缓冲器或其他缓冲器中或其他位置。
图4示出根据本发明实施例的存储器访问数据结构中的项400。项400包括三个字段,每个字段可以包括任何数量的位位置。GPA字段410用于存储可被设备用于访问系统存储器所用的GPA或GPA的一部分。HPA字段420用于存储如上文描述的根据任何存储器地址转换功能与GPA字段410中存储的GPA对应的HPA或HPA的一部分。在一个实施例中,GPA字段410和HPA字段420中存储的每个地址指定系统存储器的页的基地址,使得对系统存储器中的单个页的所有访问只需要存储器访问数据结构中的一个项。在此实施例或其他实施例中,存储器访问数据结构中的单个项可以表示不同于单个地址的地址范围。
存储器访问属性字段430用于存储与字段410和420中的项对应的存储器访问属性。例如,存储器访问字段430可以用于存储指示是否允许至对应地址或地址范围的DMA(或其他I/O)事务的值、指示是否必须针对至对应地址或地址范围的DMA(或其他I/O)事务来窥探(snoop)处理器高速缓存的值以及与至对应地址或地址范围的DMA(或其他I/O)事务相关的任何其他值或指示符。
返回图1,系统100被分区成分区111和112。该分区可以根据任何公知的方法来实现,例如通过在系统初始化时执行分区固件或软件将硬件资源(包括设备)指定到每个分区来配置系统来实现分区。
可以根据任何数量的方法来实现和/或维护设备到分区的指定。在第一种方法中,可以将设备指定到与特定分区对应的存储器的一部分。例如,可以通过将一个或多个下方地址、上方地址和/或偏移量存储在一个或多个存储器范围或其他寄存器中、与特定分区对应的其他存储位置或数据结构项来将存储器的一部分分配到该分区。然后,可以使用访问控制列表、映射图(map)或其他数据结构将设备限制于发出和/或响应存储器的该部分内的事务。可以在访问控制列表、映射图或其他数据结构中利用任何唯一标识符(例如根据系统中特定总线上的特定设备内设备的特定功能来标识设备的总线、设备、功能编号(“BDF”))来标识设备。
根据第二种方法,可以将设备直接指定到分区。例如,可以通过分区固件或软件创建和/或维护数据结构来在系统中存储每个设备的标识符(例如BDF)和已将其指定到的分区的标识符。或者,可以对某些设备编程以存储已将他们指定到的分区的标识符。在本发明范围内其他方法也是可能的。
根据任何此类设备指定方法,分区逻辑190确定已将事务中涉及的设备指定到哪个分区。在一个实施例中,分区逻辑190通过查询访问控制列表或其他此类数据结构中与事务关联的设备标识符(例如事务内包含的BDF)来确定已将设备指定到的分区。该访问控制列表指示将设备指定到存储器的部分,又指示将设备指定到的分区。在另一个实施例中,可以使用与事务关联的设备标识符来查找表、映射图或其他数据结构中直接指示已将该设备指定到哪个分区的的项。在另一个实施例中,事务协议可以包括例如通过提供将分区标识符包括在事务内的请求设备来直接标识分区的方式。
图5示出根据图1的实施例的分区逻辑190。查询模块510接收涉及设备的事务,并如上文描述或根据任何其他方法确定已将该设备指定到哪个分区。路由模块520将事务路由到已将该设备指定到的分区的地址转换逻辑。例如,对于来自设备151的DMA请求,查询模块510确定设备151被指定到分区111,所以路由模块520将DMA请求路由到地址转换逻辑131。
查询模块510可以参考访问控制列表、设备访问映射图、存储器范围寄存器或其他存储位置或数据结构的任何其中之一或它们的组合来如上文描述地或根据任何其他方法来确定设备被指定到哪个分区。在图5的实施例中,分区逻辑190包括设备访问映射图530,设备访问映射图表示查询模块510用来确定设备至分区指定的信息的存储位置。此类信息可以是直接用于确定设备至分区指定的信息,例如设备至存储器、存储器至分区或任何其他系统资源映射的表或列表,或者可以是系统100内至可存储此类信息的任何一个或多个位置的指针或引用。它参考的设备访问映射图530和/或任何寄存器、存储器地址或其他存储位置或数据结构可以由上述分区固件或软件或由任何OS、VMM或其他此类软件来初始化和/或维护。
在图5的实施例中,分区逻辑190还包括后备高速缓存540,后备高速缓存540用于存储查询模决510的任何先前确定得到的结果。例如,在查询模块510使用BDF来确定将设备指定到的分区的情况中,可以将分配给该分区的BDF和地址转换逻辑的标识符存储在后备高速缓存项中。此后,可以在后备高速缓存540中找到BDF至地址转换逻辑的映射,而不由查询模块510来确定。
分区逻辑190还包括后备高速缓存管理器550,后备高速缓存管理器550用于使与已经从系统100移除的设备对应的后备高速缓存项失效。例如,如果可移动设备板或卡从外设总线槽移除,则高速缓存管理器550使后备高速缓存540中与该设备板或卡对应的所有项失效。这样,可以将新设备板或卡插入在该槽中并将其指定到不同分区。
图6图示方法600中的本发明实施例,这是一种用于设备访问分区系统中的存储器的访客地址至主机地址转换的方法。为描述图6的方法实施例参考了对图1的系统100的描述,但是方法实施例并不限于此方面。
在图6的框610中,将系统(例如系统100)分区成两个分区(例如分区111和112)。此分区包括将系统资源(例如系统存储器的若干部分、I/O设备和地址转换逻辑)分配到每个分区。例如,可以将设备151分配到分区111,并可以将设备152分配到分区112。设备151和152可以具有包括相同访客物理地址(例如DMA_ADR)的系统存储器的访客视图。
在框620中,设备151启动涉及访问系统存储器的事务(例如DMA请求)。该事务包含设备标识符(例如设备151的BDF)和访客物理地址(例如DMA_ADR)。
在框622中,使用设备标识符来确定该设备所指定的分区(例如分区111)。在框624中,创建后备高速缓存项。高速缓存项包含设备标识符和已经分配到分区111的地址转换逻辑(例如地址转换逻辑131)的标识符。
在框630中,将事务路由到地址转换逻辑131,由此将设备151使用的访客物理地址DMA_ADR与设备152使用的访客物理地址DMA_ADR区分。在框632中,地址转换逻辑131将访客物理地址DMA_ADR转换成分区111中的主机物理地址。在框634中,框620中启动的事务至框632中找到主机物理地址而完成。
在框640中,设备151启动涉及访问系统存储器的另一个事务(例如DMA请求)。该事务包含设备标识符(例如设备151的BDF)和访客物理地址(例如DMA_ADR)。
在框642中,在后备高速缓存中找到该设备标识符。在框644中,基于后备高速缓存中找到的项将事务路由到地址转换逻辑131。在框646中,地址转换逻辑131将访客物理地址DMA_ADR转换成分区111中的主机物理地址。在框648中,框640中启动的事务至框646中找到主机物理地址而完成。
在框650中,从系统100中移除设备151。在框652中,使与设备151对应的后备高速缓存项失效。
在本发明的范围内,可以通过省略一些图示的框、添加一些附加的框或将对框重新排序、省略框或附加的框进行组合来执行方法600。例如,在事务包括分区标识符的情况中,可以省略框622和624。
可以在从创建到模拟到制造的多个不同阶段设计根据本发明实施例设计的任何组件或组件的一部分。表示设计的数据可以通过多种方式表示该设计。首先,如模拟中有用的,可以使用硬件描述语言或另一种功能描述语言来表示硬件。此外或作为替代,可以在设计过程的一些阶段制作具有逻辑和/或晶体管门的电路级模型。而且,在一些阶段,大多数设计达到利用表示多种设备的物理布置的数据对其建模的级别。在使用常规半导体制造技术的情况中,表示设备布置模型的数据可以是指定用于制作集成电路的掩模的不同掩模层上的多种功能特征是否存在的数据。
在设计的任何表示中,可以将该数据存储在任何形式的机器可读介质中。为传输此类信息而调制或以其他方式生成的光或电波、存储器或磁或光存储介质(例如光盘)都可以是机器可读介质。这些介质的任何一种可以“承载”或“指示”该设计或本发明实施例中使用的其他信息。当达到复制、缓存或重传电信号的程度来传输指示或承载信息的电载波时,就制作新副本。因此,通信提供商或网络提供商的动作可能构成制作包含本发明原理的产品(例如载波)的副本。
因此,已经公开了用于设备访问分区系统中的存储器的访客地址至主机地址转换的设备、方法和系统。虽然描述并在附图中示出了某些实施例,但是要理解,此类实施例仅仅是说明性的并非是对范围广泛的本发明的限制,以及本发明不限于示出和描述的特定构造和布置,因为本领域技术人员研读本公开内容时可能设想到多种其他修改。在发展迅速以及后续进步不易预测的技术领域中,在不背离本发明公开内容的原理或所附权利要求的范围的前提下,可以通过启用技术进步作为帮助对所公开的实施例在布置和细节上容易地进行修改。

Claims (20)

1.一种设备,包括:
接口,所述接口用于从设备接收访问分区系统中的存储器的请求;
分区逻辑,所述分区逻辑用于确定所述设备被指定到所述分区系统中的第一分区还是第二分区;
第一地址转换逻辑,所述第一地址转换逻辑用于将第一访客地址转换成所述第一分区中的第一主机地址;以及
第二地址转换逻辑,所述第二地址转换逻辑用于将第二访客地址转换成所述第二分区中的第二主机地址。
2.如权利要求1所述的设备,其特征在于,所述分区逻辑还用于响应确定所述设备被指定到所述第一分区而将所述请求转发到所述第一地址转换逻辑,以及响应确定所述设备被指定到所述第二分区而将所述请求转发到第二地址转换逻辑。
3.如权利要求1所述的设备,其特征在于,所述分区逻辑包括查询模块,所述查询模块使用所述请求中包含的设备标识符来确定分区标识符。
4.如权利要求3所述的设备,其特征在于,所述查询模块使用所述设备标识符找到数据结构中的项。
5.如权利要求3所述的设备,其特征在于,所述项指示所述设备可访问的存储器范围。
6.如权利要求3所述的设备,其特征在于,所述项指示分区标识符。
7.如权利要求1所述的设备,其特征在于,所述分区逻辑包括高速缓存,所述高速缓存用于存储所述确定的结果。
8.如权利要求2所述的设备,其特征在于,所述分区逻辑基于
所述请求中包含的分区标识符来确定所述设备被指定到第一分区还是第二分区。
9.如权利要求2所述的设备,其特征在于,所述分区逻辑还包括转换支持逻辑,所述转换支持逻辑用于支持所述第一地址转换逻辑和所述第二地址转换逻辑。
10.一种方法,包括:
从设备接收访问分区系统中的存储器的请求;
确定所述设备被指定到所述分区系统中的第一分区还是第二分区;
响应确定所述设备被指定到所述第一分区而将所述请求转发到第一地址转换逻辑;以及
响应确定所述设备被指定到所述第二分区而将所述请求转发到第二地址转换逻辑。
11.如权利要求10所述的方法,其特征在于,还包括使用所述请求中包含的设备标识符来确定分区标识符。
12.如权利要求11所述的方法,其特征在于,还包括使用所述设备标识符找到数据结构中的项。
13.如权利要求12所述的方法,其特征在于,所述项指示所述设备可访问的存储器范围。
14.如权利要求12所述的方法,其特征在于,所述项指示分区标识符。
15.如权利要求10所述的方法,其特征在于,还包括将所述确定的结果存储在高速缓存中。
16.如权利要求10所述的方法,其特征在于,确定包括读取存储有关所述设备被指定到所述第一分区还是所述第二分区的先前确定结果的高速缓存项。
17.如权利要求16所述的方法,其特征在于,还包括响应从所述系统移除所述设备而使所述高速缓存项失效。
18.一种系统,包括:
第一分区,所述第一分区包括:
存储器的第一部分;
第一设备;以及
第一地址转换逻辑,所述第一地址转换逻辑用于将第一访客地址转换成所述存储器的第一部分中的第一主机地址;以及
第二分区,所述第二分区包括:
所述存储器的第二部分;
第二设备;以及
第二地址转换逻辑,所述第二地址转换逻辑用于将第二访客地址转换成所述存储器的第二部分中的第二主机地址;以及
分区逻辑,所述分区逻辑用于将来自所述第一设备的第一请求转发到所述第一地址转换逻辑,以及将来自所述第二设备的第二请求转发到所述第二地址转换逻辑。
19.如权利要求18所述的系统,其特征在于,所述分区逻辑用于响应使用第一设备标识符找到数据结构中的项而转发所述第一请求,其中所述项指示所述第一设备被指定到所述第一分区。
20.如权利要求18所述的系统,其特征在于,所述存储器是动态随机存取存储器。
CN2007103073964A 2006-12-27 2007-12-27 用于访问分区系统中的存储器的方法和设备 Active CN101236529B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/616662 2006-12-27
US11/616,662 US7685401B2 (en) 2006-12-27 2006-12-27 Guest to host address translation for devices to access memory in a partitioned system

Publications (2)

Publication Number Publication Date
CN101236529A true CN101236529A (zh) 2008-08-06
CN101236529B CN101236529B (zh) 2013-02-06

Family

ID=39048237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103073964A Active CN101236529B (zh) 2006-12-27 2007-12-27 用于访问分区系统中的存储器的方法和设备

Country Status (8)

Country Link
US (1) US7685401B2 (zh)
EP (1) EP1959348B1 (zh)
JP (3) JP2008165789A (zh)
KR (1) KR100914081B1 (zh)
CN (1) CN101236529B (zh)
DE (2) DE102007063946B4 (zh)
FR (1) FR2910985B1 (zh)
GB (1) GB2445831B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292268A (zh) * 2015-12-29 2018-07-17 英特尔公司 用于分布式一致性存储器的系统、方法和设备
CN110178124A (zh) * 2017-01-13 2019-08-27 Arm有限公司 划分tlb或缓存分配
CN110336563A (zh) * 2019-05-09 2019-10-15 核芯互联(北京)科技有限公司 一种工作模式选择方法、装置、系统及存储介质
CN112667354A (zh) * 2020-12-30 2021-04-16 上海壁仞智能科技有限公司 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US9317309B2 (en) * 2006-12-28 2016-04-19 Hewlett-Packard Development Company, L.P. Virtualized environment allocation system and method
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
US7979869B2 (en) * 2007-09-28 2011-07-12 Oracle America, Inc. Method and system for performing I/O operations using a hypervisor
US20090217280A1 (en) * 2008-02-21 2009-08-27 Honeywell International Inc. Shared-Resource Time Partitioning in a Multi-Core System
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8910169B2 (en) 2008-09-30 2014-12-09 Intel Corporation Methods and systems to perform a computer task in a reduced power consumption state
US8417895B1 (en) * 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8775741B1 (en) 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8285961B2 (en) * 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8650362B2 (en) 2009-04-17 2014-02-11 Violin Memory Inc. System for increasing utilization of storage media
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
JP5491102B2 (ja) * 2009-08-27 2014-05-14 ルネサスエレクトロニクス株式会社 データプロセッサ
US8402246B1 (en) 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
WO2011044154A1 (en) * 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
US8688897B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US9229757B2 (en) 2010-07-19 2016-01-05 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US8863117B2 (en) 2010-07-19 2014-10-14 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8954959B2 (en) * 2010-09-16 2015-02-10 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
US9740624B2 (en) * 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9348757B2 (en) * 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
GB2511794B (en) * 2013-03-13 2020-12-02 Advanced Risc Mach Ltd A Protection Unit and Method for Controlling Access by Plural Processes to a Storage Unit
WO2014174580A1 (ja) 2013-04-22 2014-10-30 富士通株式会社 情報処理装置、方法、及びプログラム
US9411765B2 (en) * 2013-12-20 2016-08-09 Qualcomm Incorporated Methods of using a peripheral component interconnect express (PCIE) device in a virtual environment
WO2015162745A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US9612970B2 (en) 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
US10180908B2 (en) 2015-05-13 2019-01-15 Qualcomm Incorporated Method and apparatus for virtualized control of a shared system cache

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
US6381682B2 (en) * 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6976083B1 (en) * 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
US7003771B1 (en) * 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
JP2002132518A (ja) * 2000-10-25 2002-05-10 Fujitsu Ltd 仮想計算機システムおよび仮想計算機間の入出力装置交換方法
JP4018900B2 (ja) * 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
US20030110205A1 (en) * 2001-12-07 2003-06-12 Leith Johnson Virtualized resources in a partitionable server
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US6834296B2 (en) * 2002-03-01 2004-12-21 International Business Machines Corporation Apparatus and method of multicasting or broadcasting data from one partition of a partitioned computer system to a plurality of other partitions
US7054985B2 (en) * 2002-07-23 2006-05-30 Hewlett-Packard Development Company, L.P. Multiple hardware partitions under one input/output hub
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US20040098544A1 (en) * 2002-11-15 2004-05-20 Gaither Blaine D. Method and apparatus for managing a memory system
US7076634B2 (en) * 2003-04-24 2006-07-11 International Business Machines Corporation Address translation manager and method for a logically partitioned computer system
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7200687B2 (en) * 2003-09-25 2007-04-03 International Business Machines Coporation Location-based non-uniform allocation of memory resources in memory mapped input/output fabric
CN1253829C (zh) * 2003-10-15 2006-04-26 大唐微电子技术有限公司 一种优化存储器逻辑分区结构的非cpu集成电路卡
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US7426625B2 (en) * 2004-03-31 2008-09-16 International Business Machines Corporation Data processing system and computer program product for support of system memory addresses with holes
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US8914606B2 (en) * 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system
JP4982971B2 (ja) * 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US7302547B2 (en) * 2004-09-30 2007-11-27 Hewlett-Packard Development Company, L.P. Method and system for supporting virtual mappings for shared firmware
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US9058292B2 (en) * 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US20060288130A1 (en) 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292268A (zh) * 2015-12-29 2018-07-17 英特尔公司 用于分布式一致性存储器的系统、方法和设备
CN108292268B (zh) * 2015-12-29 2024-03-22 英特尔公司 用于分布式一致性存储器的系统、方法和设备
CN110178124A (zh) * 2017-01-13 2019-08-27 Arm有限公司 划分tlb或缓存分配
CN110178124B (zh) * 2017-01-13 2023-08-04 Arm有限公司 用于划分tlb或缓存分配的方法和装置
CN110336563A (zh) * 2019-05-09 2019-10-15 核芯互联(北京)科技有限公司 一种工作模式选择方法、装置、系统及存储介质
CN112667354A (zh) * 2020-12-30 2021-04-16 上海壁仞智能科技有限公司 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法
CN112667354B (zh) * 2020-12-30 2022-05-06 上海壁仞智能科技有限公司 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法
TWI777491B (zh) * 2020-12-30 2022-09-11 大陸商上海壁仞智能科技有限公司 虛擬化暫存器裝置和存取該裝置的方法和電腦程式產品
US11941424B2 (en) 2020-12-30 2024-03-26 Shanghai Biren Technology Co., Ltd Apparatus for virtualized registers and method and computer program product for accessing to the same

Also Published As

Publication number Publication date
JP2008165789A (ja) 2008-07-17
KR100914081B1 (ko) 2009-08-27
GB2445831A (en) 2008-07-23
FR2910985A1 (fr) 2008-07-04
CN101236529B (zh) 2013-02-06
EP1959348B1 (en) 2018-05-16
DE102007063946B4 (de) 2024-04-25
KR20080063125A (ko) 2008-07-03
JP2012022694A (ja) 2012-02-02
EP1959348A3 (en) 2009-07-22
DE102007062744A1 (de) 2008-08-14
GB0724597D0 (en) 2008-01-30
US7685401B2 (en) 2010-03-23
EP1959348A2 (en) 2008-08-20
US20080162864A1 (en) 2008-07-03
JP5735070B2 (ja) 2015-06-17
DE102007062744B4 (de) 2018-09-06
FR2910985B1 (fr) 2015-09-04
GB2445831B (en) 2010-03-31
JP2014017012A (ja) 2014-01-30

Similar Documents

Publication Publication Date Title
CN101236529B (zh) 用于访问分区系统中的存储器的方法和设备
CN101187902B (zh) 在虚拟机环境中的客户机之间共享信息
US8041920B2 (en) Partitioning memory mapped device configuration space
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
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
CN101351773B (zh) 基于存储器访问数据结构执行直接高速缓存访问事务
CN110659245A (zh) 具有可编程多上下文加速器电路的系统
EP2889777A2 (en) Modifying memory permissions in a secure processing environment
CN103034524A (zh) 半虚拟化的虚拟gpu
CN102906702A (zh) 对适配器的地址空间的访客端访问
CN101004726A (zh) 直接传送中断到虚拟处理器
CN1737780A (zh) 从一个设备驱动程序向另一个传送信息的系统和方法
CN104798061A (zh) 在虚拟化环境中控制对存储器页面组的访问
US10402576B2 (en) Safe physical function passthrough using virtual machine functions
EP2889778B1 (en) Shared memory in a secure processing environment
US9875132B2 (en) Input output memory management unit based zero copy virtual machine to virtual machine communication
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
CN100594481C (zh) 允许运行在逻辑分区上的程序访问资源的方法与系统
CN101833470A (zh) 注入事务以支持物理设备控制器的虚拟化
Lee et al. gShare: a centralized GPU memory management framework to enable GPU memory sharing for containers
Achermann On memory addressing
CN101982814B (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