CN103782282B - 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统 - Google Patents

具有用于虚拟化输入/输出的处理器局部一致性的计算机系统 Download PDF

Info

Publication number
CN103782282B
CN103782282B CN201280041849.2A CN201280041849A CN103782282B CN 103782282 B CN103782282 B CN 103782282B CN 201280041849 A CN201280041849 A CN 201280041849A CN 103782282 B CN103782282 B CN 103782282B
Authority
CN
China
Prior art keywords
treater
physical address
initiating
data
virtual
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
CN201280041849.2A
Other languages
English (en)
Other versions
CN103782282A (zh
Inventor
克里斯托弗·爱德华·科布
卢西恩·科德雷斯库
埃里克·詹姆斯·普隆迪克
布赖恩·C·拜尔德费尔
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103782282A publication Critical patent/CN103782282A/zh
Application granted granted Critical
Publication of CN103782282B publication Critical patent/CN103782282B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • 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/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种方法包含在管理装置虚拟地址到物理地址的转换的控制器处将物理地址选择性地路由到发起装置而非共享存储器。所述物理地址对应于来自虚拟装置的数据存取。所述方法可在实施虚拟化输入/输出的计算系统处提供局部一致性。

Description

具有用于虚拟化输入/输出的处理器局部一致性的计算机系统
技术领域
本发明大体上涉及用于虚拟化输入/输出的处理器局部一致性。
背景技术
多处理器计算机系统可包含对一个或一个以上输入/输出(I/O)装置具有存取权的多个处理器。一些系统可支持I/O虚拟化。举例来说,在双处理器系统处虚拟化单一I/O装置可使单一I/O装置看似为两个独立的I/O装置,其中每一处理器“拥有”两个独立的I/O装置中的一者。虚拟化可促进多个处理器共享I/O装置。通常,虚拟化系统可保持完全一致。也就是说,多处理器系统中的每一处理器可跟踪虚拟I/O装置与共享存储器之间的所有I/O操作。
可经由硬件或软件来实施全一致性。然而,随着虚拟I/O装置的数目以及处理器的数目增加,缩放性问题可在全一致系统中出现。举例来说,增加处理器的数目可增加与一致的虚拟化I/O装置相关联的复杂性,因为处理器中的每一者知晓由其它处理器中的每一者执行的虚拟化I/O装置的每一读取和写入操作。此可涉及处理器中的每一者处的额外数据处理,且可进一步消耗共享资源(例如,处理器与共享存储器之间的总线)。
发明内容
在虚拟化系统中,虚拟I/O装置可基于虚拟地址空间而操作,而共享存储器(例如,随机存取存储器(RAM))可支持基于物理地址空间的寻址。在此些系统中,控制器(例如,I/O存储器管理单元(MMU)控制器)可耦合到虚拟I/O装置、耦合到处理器(其还可被虚拟化为虚拟处理器),且耦合到共享存储器。控制器可在虚拟地址与物理地址之间转换。在全一致系统中,当与虚拟I/O装置相关联的处理器(例如,“发起”处理器)进行数据存取请求时,控制器可将对应的数据存取(例如,由虚拟装置起始的直接存储器存取(DMA)写入操作)路由到共享存储器。为了维持全一致性,所有处理器,包含发起处理器,可更新其个别高速缓冲存储器以反映写入操作。然而,在虚拟化系统中,由特定虚拟装置写入到共享存储器的数据可仅曾由对应的处理器或虚拟处理器(即,发起数据存取请求的处理器)存取。因此,在所述系统中维持此类数据与所有其它处理器之间的全一致性可能没有用。
根据所揭示的系统和方法,可实施用于虚拟化I/O的处理器局部一致性。举例来说,控制器可将物理地址以及与其相关联的数据选择性地重新引导到发起(例如,请求的)处理器,而不是共享存储器。所述发起处理器可高速缓冲所述数据且可随后将所述数据存储在共享存储器中,而系统中的其它处理器可不受影响。在包含对应于N个处理器的N个虚拟I/O装置的系统中(其中N为大于一的整数),每一处理器可相对于其对应的虚拟I/O装置是一致的,但相对于任何其它处理器或虚拟I/O装置可为不一致的。
在特定实施例中,一种方法包含在管理装置虚拟地址到物理地址的转换的控制器处将物理地址选择性地路由到发起装置而非共享存储器。所述物理地址对应于来自虚拟装置的数据存取。
在另一特定实施例中,一种系统包含:虚拟化装置;多个装置,其具有对所述虚拟化装置的存取权;存储器,其由多个处理器中的每一者共享;以及控制器,其耦合到所述虚拟化装置且耦合到所述多个装置中的每一者。所述控制器经配置以将对应于来自所述虚拟化装置的数据存取的物理地址(和数据)选择性地重新引导到所述多个装置中的一者而非所述存储器。
在另一特定实施例中,一种设备包含控制器。所述控制器包含用于管理装置虚拟地址到物理地址的转换的装置,以及用于将对应于来自虚拟装置的数据存取的物理地址选择性地路由到发起装置而非共享存储器的装置。
在另一特定实施例中,一种设备包含控制器。所述控制器包含存储虚拟地址和物理地址的存储器。所述控制器还包含重新引导单元,所述重新引导单元经配置以将对应于来自虚拟装置的数据存取的物理地址选择性地路由到发起装置而非共享存储器。
在另一特定实施例中,一种有形处理器可读媒体包含可由处理器在控制对虚拟装置的存取的控制器处执行的指令。所述指令致使所述处理器监视总线以寻找从发起装置发送到虚拟化装置的存取请求,且将来自虚拟装置的数据(即,响应于存取请求的数据)选择性地重新引导到发起装置而非共享存储器。
由所揭示的实施例中的至少一者提供的一个特定优点是包含一个或一个以上虚拟化装置和多个处理器的系统处的提高的数据处理量和减少的电力消耗,这归因于用装置专有(例如,处理器专有)一致性取代系统范围的硬件一致性。
在检视整个申请案后,将明白本发明的其它方面、优点和特征,申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
图1是可操作以将对应于来自虚拟装置的数据存取的数据路由到发起装置而非共享存储器的系统的特定说明性实施例的图;
图2是将来自虚拟装置的数据路由到发起装置而非共享存储器的方法的特定说明性实施例的流程图;
图3是将来自虚拟装置的数据路由到发起装置而非共享存储器的方法的另一特定说明性实施例的流程图。
具体实施方式
部分一致(例如,处理器局部一致)的虚拟化输入/输出(I/O)系统可将对应于来自虚拟装置的数据存取的数据路由到对应的发起装置(例如,处理器)而非存储器。举例来说,当处理器向对应的虚拟装置请求数据时,MMU控制器可将来自虚拟装置的相关联的物理地址和所请求的数据路由到请求处理器而非共享存储器。系统中的其它处理器可不知晓所述路由。在某些条件下,其它处理器的非一致性可为可接受的或有利的,因为(例如)其它处理器可能不具有对所请求数据的存取权或不需要所述存取权。
图1是可操作以将对应于来自虚拟装置的数据存取的数据选择性地路由到发起装置(例如,发起处理器或其它装置)而非共享存储器的系统100的特定说明性实施例的图。系统100包含控制器110,所述控制器通信地耦合到I/O装置140、共享存储器150和多个处理器(例如,说明性处理器120、130)。在特定实施例中,控制器110可为输入/输出(I/O)存储器管理单元(MMU)控制器。或者,所述控制器可为另一类型的控制器。可经由一个或一个以上硬件总线170和通信电路在计算机系统中实施控制器110、处理器120和130、I/O装置140与共享存储器150之间的耦合。在特定实施例中,共享存储器150可为随机存取存储器(RAM)。
应注意,虽然图1的特定实施例说明双处理器系统,但在系统100中可存在两个以上或两个以下处理器。举例来说,系统100可包含在例如计算机服务器等计算装置内,且所述计算装置可包含两个以上处理器或可为支持虚拟化的单处理器服务器或装置。
处理器120和130可支持虚拟化。举例来说,处理器120和130中的每一者可包含高速缓冲存储器124和134,且可支持一个或一个以上虚拟处理器,例如所说明的虚拟处理器122和132。在特定实施例中,每一虚拟处理器122、132可对应于正在基础处理器120、130处执行的特定操作系统。I/O装置140还可支持虚拟化。举例来说,当在系统100中存在“n”个处理器120、130时,I/O装置140可支持“n”个对应的虚拟装置142、144(在图1中所说明的实例中,“n”等于二)。在特定实施例中,可经由根据I/O虚拟化协议的命令存取每一虚拟装置142、144。举例来说,可在具有外围组件互连快递(PCIe)硬件拓扑的计算机系统(例如,具有PCIe总线的计算机系统)处经由遵从单根I/O虚拟化(SR-IOV)协议的命令来存取虚拟装置142、144。虚拟装置142、144可在处理器120、130的控制下执行数据读取和/或数据写入操作(例如,直接存储器存取(DMA)操作)。
控制器110可控制对虚拟装置142、144的存取权,且可管理虚拟地址到物理地址的转换,且反之亦然。在特定实施例中,控制器110可包含总线监视单元112、重新引导单元114和虚拟-物理地址表116。可使用专用硬件和存储器,使用可由控制器110或其中的处理器执行的指令,或其任何组合来实施总线监视单元112、重新引导单元114和虚拟-物理地址表116。
总线监视单元112可监视总线170以寻找从处理器120、130和/或虚拟处理器122、132中的任一者发送到虚拟化装置142、144的数据存取请求。举例来说,总线监视单元112可检测由第一处理器120发送到对应的第一虚拟装置142的数据存取请求126。数据存取请求可为对数据读取、数据写入或其任何组合的请求。
重新引导单元114可以可操作以将物理地址和数据选择性地重新引导到处理器120、130而非共享存储器150。举例来说,当控制器110响应于由第一处理器120发送的数据存取请求126而从I/O装置140接收数据存取160时,数据存取160可指定目的地虚拟地址162,且可包含数据164(例如,待写入到目的地虚拟地址162的数据)。重新引导单元114可存取虚拟-物理地址表116以将目的地虚拟地址162映射到共享存储器150中的对应的目的地物理地址。在特定实施例中,可将共享存储器150划分为对应于“n”个虚拟装置142、144和“n”个处理器120、130的“n”个分区152、154。在此实施例中,对应于目的地虚拟地址162的目的地物理地址可位于对应于第一处理器120的分区(例如,第一分区152)中。
重新引导单元114还可识别所确定的目的地物理地址将被路由到的发起处理器120。可根据各种方法来识别发起处理器120。为了说明,在特定实施例中,数据存取160可包含发起处理器数目或数据(例如,根据SR-IOV标准而存储在一个或一个以上数据字段中的SR-IOV数据)166,且重新引导单元114可基于此信息来识别发起处理器120。在另一特定实施例中,系统100可支持经扩展的地址空间。举例来说,虚拟地址162和/或物理地址可为经扩展的地址,且可基于经扩展的地址的至少一个位来识别发起处理器120。在包含“2B”个处理器的系统中,可使用经扩展的地址的“B”位来识别发起处理器。在识别发起处理器120后,重新引导单元114可即刻将目的地物理地址和数据164路由到发起处理器120而非共享存储器150。在特定实施例中,数据164可对应于对应的虚拟装置进行的直接存储器存取(DMA)读取操作,其中所述对应的处理器(或虚拟处理器)可在数据不在对应的本地高速缓冲存储器中的情况下从系统存储器检索数据。举例来说,可将数据164选择性地路由到对应的处理器且由所述处理器直接消耗,而非写入到共享存储器,因为所述数据可为所述对应的处理器专有的(即,不被其它处理器存取)。当数据是特定处理器专有的时,可将所述数据选择性地路由到特定处理器而非共享存储器,进而减少总线170上的拥塞。在替代实施例中,可经由总线170而非经由图1中所说明的单独连接将目的地物理地址和数据164路由到发起处理器120。
在操作期间,总线监视单元112可检测来自处理器120、130中的一者或一者以上的数据存取请求。举例来说,总线监视单元112可检测从第一处理器120发送到第一虚拟装置142的数据存取请求126,其中数据存取请求126对应于从I/O装置140检索数据。响应于数据存取请求126,虚拟装置142可发出数据存取160,所述数据存取包含目的地虚拟地址162和待写入到目的地虚拟地址162的数据164。控制器110处的重新引导单元114可基于虚拟-物理地址表116将目的地虚拟地址162转换为对应的目的地物理地址,且可将目的地物理地址和数据164路由到发起处理器120而非共享存储器150。
处理器120可在基于物理地址的位置处将数据164存储在高速缓冲存储器124中因此,虚拟装置142和数据存取160可相对于高速缓冲存储器124一致。然而,高速缓冲存储器124相对于共享存储器150且相对于与其它处理器相关联的其它高速缓冲存储器(例如,与第二处理器130相关联的第二高速缓冲存储器134)可不一致。在特定实施例中,发起处理器120可承担将数据164转发到共享存储器150的责任。举例来说,在将数据164存储在高速缓冲存储器124中之后,发起处理器120可将数据164(或数据164的副本)路由到第一分区152中的对应于目的地物理地址的位置。在特定实施例中,当系统100启用从处理器120到处理器130的过程迁移时,处理器120可将数据164转发到共享存储器150,使得处理器130可存取数据164。
在特定实施例中,图1的系统100可支持软件实施的一致性以用于特定事件。举例来说,图1的系统100可在虚拟装置初始化、虚拟装置毁坏和过程迁移(例如,从一个处理器到另一处理器)的情况下支持软件实施的全一致性。
图1的系统100可因此用部分一致性取代系统范围的全一致性。举例来说,系统100中的每一处理器-装置对可为一致的。然而,每一处理器-装置对相对于其它处理器-装置对可不一致,如在全硬件一致系统中。图1的系统100可因此减小硬件复杂性且减少总线170上的拥塞。通过用部分一致性取代系统范围的全一致性,图1的系统100还可实现减少的电力消耗且可以比全一致系统低的成本来建置或操作。
图2是将数据路由到处理器而非共享存储器的方法200的特定说明性实施例的流程图。在说明性实施例中,方法200可由图1的控制器110执行。
方法200可包含在202处在管理装置虚拟地址到物理地址的转换的控制器处接收来自虚拟装置的数据存取。所述数据存取可指定虚拟地址。举例来说,在图1中,控制器110可从第一虚拟装置142接收数据存取160,其中数据存取160指定目的地虚拟地址162。
方法200还可包含在204处基于虚拟地址确定对应于数据存取的物理地址。举例来说,在图1中,重新引导单元114可基于虚拟-物理地址表116从目的地虚拟地址162确定目的地物理地址。
方法200可进一步包含在206处识别物理地址被路由到的处理器。所识别的处理器可为数据存取的发起处理器。在特定实施例中,可基于处理器编号、SR-IOV数据,或物理地址的一个或一个以上位来识别发起处理器。举例来说,在图1中,重新引导单元114可基于发起处理器编号/SR-IOV数据166或基于目的地物理地址的一个或一个以上位而将第一处理器120识别为发起处理器。
方法200可包含在208处将对应于数据存取的物理地址选择性地路由到处理器而非共享存储器。所述处理器可支持对应于虚拟装置的虚拟处理器。举例来说,在图1中,重新引导单元114可将目的地物理地址和对应数据164路由到发起处理器120而非共享存储器150,其中发起处理器120支持对应于第一虚拟装置142的第一虚拟处理器122。在特定实施例中,发起处理器120可在基于物理地址所确定的位置处将数据164存储在高速缓冲存储器124中,且可随后将数据转发到共享存储器150的第一分区152。在特定实施例中,在将数据164存储在共享存储器150中之后,可通过除了发起处理器120之外的处理器(例如,第二处理器130)来存取数据164。
图3是从虚拟化装置路由数据的方法300的另一特定说明性实施例的流程图。在说明性实施例中,方法300可由图1的控制器110执行。
方法300可包含在302处在控制对虚拟化装置的存取的控制器处监视总线以寻找来自发起处理器的对虚拟化装置的存取请求。举例来说,在图1中,控制器110的总线监视单元112可监视总线170以寻找存取请求,例如数据存取请求126。响应于检测到来自发起装置120的对I/O装置140的数据存取请求126,控制器110可开始监视I/O装置140的通信以寻找对数据存取请求126(例如,数据存取160)的响应。
方法300还可包含在304处将来自虚拟化装置的数据选择性地重新引导到发起处理器而非将所述数据发送到共享存储器。在说明性实施例中,共享存储器可由耦合到控制器的多个处理器共享。举例来说,在图1中,控制器110的重新引导单元114可将数据164选择性地重新引导到发起处理器120而非共享存储器150。在特定实施例中,方法300可进一步包含在306处在发起处理器处高速缓冲由控制器路由的数据,且随后将所述数据存储在共享存储器的被指派给所述发起处理器的分区中。举例来说,在图1中,发起处理器120可将数据164存储在高速缓冲存储器124中,且可随后发送数据164以供存储在共享存储器150的被指派给发起处理器120的第一分区152中。
图2到3的方法200、300可用部分一致性的多个实例取代系统范围的全一致性。举例来说,每一处理器-装置对(例如,图1的第一处理器120和第一虚拟装置142和图1的第二处理器130和第二虚拟装置144)可在内部一致,但相对于其它处理器-装置对可不一致,如在全一致性系统中。图2到3的方法200、300可因此实现虚拟化系统(例如,具有根据SR-IOV标准的虚拟化装置的计算机服务器)中的减小的硬件复杂性,减少的总线拥塞以及较低的电力消耗。
结合所描述的实施例,揭示一种设备,其包含具有用于管理装置虚拟地址到物理地址的转换的装置的控制器。举例来说,所述用于管理转换的装置可包含图1的控制器110、图1的重新引导单元114、经配置以管理装置虚拟地址到物理地址的转换的一个或一个以上其它装置中的一者或一者以上,或其任何组合。
所述控制器还可包含用于将对应于来自虚拟装置的数据存取的物理地址和数据路由到处理器而非共享存储器的装置。举例来说,所述用于路由的装置可包含图1的控制器110、图1的重新引导单元114、经配置以将物理地址路由到处理器而非共享存储器的一个或一个以上其它装置中的一者或一者以上,或其任何组合。
所属领域的技术人员将进一步了解,可将结合本文所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。上文已大体在其功能性方面描述各种说明性组件、块、配置、模块、电路和步骤。所述功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但所述实施方案决策不应被解释为导致偏离本发明的范围。
可直接以硬件、以由处理器执行的软件模块或以上述两者的组合实施结合本文所揭示的实施例而描述的方法或算法的步骤。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(CD-ROM),或此项技术中己知的任何其它形式的存储媒体中。示范性非暂时性(例如,有形)存储媒体耦合到处理器,使得处理器可从所述存储媒体读取信息以及将信息写入到所述存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留在计算装置或用户终端中。
提供对所揭示的实施例的先前描述以使所属领域的技术人员能够制作或使用所揭示的实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将为显而易见的,且可在不偏离本发明的范围的情况下将本文中所界定的原理应用于其它实施例。因此,本发明无意限于本文中所展示的实施例,而是将赋予本发明与如由所附权利要求书界定的原理和新颖特征一致的可能的最广范围。

Claims (23)

1.一种用于对虚拟装置进行存取的方法,其包括:
在管理装置虚拟地址到物理地址的转换的控制器处将物理地址选择性地路由到发起装置而非共享存储器,其中所述物理地址对应于所述共享存储器中的位置且是基于来自所述虚拟装置的数据存取。
2.根据权利要求1所述的方法,其进一步包括:
从所述虚拟装置接收所述数据存取,其中所述数据存取指定虚拟地址;以及
基于所述虚拟地址确定对应于所述数据存取的所述物理地址。
3.根据权利要求1所述的方法,其中所述发起装置包括支持对应于所述虚拟装置的虚拟处理器的处理器,且其中通过根据I/O虚拟化协议将来自所述虚拟处理器的命令发送到所述虚拟装置,所述虚拟处理器可存取所述虚拟装置。
4.根据权利要求3所述的方法,其中所述控制器包括输入/输出I/O存储器管理单元MMU控制器,且其中所述I/O虚拟化协议包括单根输入/输出虚拟化SR-IOV协议。
5.根据权利要求1所述的方法,其进一步包括在路由所述物理地址之前识别所述发起装置。
6.根据权利要求5所述的方法,其中基于与所述数据存取相关联的处理器编号来识别所述发起装置。
7.根据权利要求5所述的方法,其中基于与所述数据存取相关联的单根输入/输出虚拟化SR-IOV数据来识别所述发起装置。
8.根据权利要求5所述的方法,其中所述物理地址是经扩展的地址,且其中基于所述经扩展的地址的至少一个位来识别所述发起装置。
9.根据权利要求1所述的方法,其中所述数据存取包括写入操作、读取操作或其组合。
10.根据权利要求1所述的方法,其中所述虚拟装置包括虚拟化输入/输出装置。
11.根据权利要求1所述的方法,其中所述发起装置包括包含高速缓冲存储器的处理器,且其中来自所述虚拟装置的所述数据存取相对于所述处理器的所述高速缓冲存储器是一致的。
12.根据权利要求11所述的方法,其中所述高速缓冲存储器相对于具有对所述共享存储器的存取权的第二处理器的第二高速缓冲存储器是不一致的。
13.根据权利要求11所述的方法,其进一步包括将对应于所述数据存取的数据选择性地路由到所述处理器,其中所述处理器将所述数据存储在所述高速缓冲存储器中基于所述物理地址而确定的位置处。
14.根据权利要求13所述的方法,其中在将所述数据存储在所述高速缓冲存储器中之后,所述处理器将所述数据发送到所述共享存储器的对应于所述物理地址的位置。
15.根据权利要求13所述的方法,其中所述数据存取包括由所述虚拟装置执行的直接存储器存取DMA读取操作,且其中在所述处理器与第二处理器之间共享所述共享存储器。
16.一种用于对虚拟装置进行存取的系统,其包括:
所述虚拟装置;
多个装置,其具有对所述虚拟装置的存取权;
存储器,其由所述多个装置中的每一者共享;以及
控制器,其耦合到所述虚拟装置以及所述多个装置中的每一者,其中所述控制器经配置以将对应于物理地址的数据选择性地重新引导到所述多个装置中的一者而非所述存储器,且其中所述物理地址对应于所述存储器中的位置且是基于来自所述虚拟装置的数据存取。
17.根据权利要求16所述的系统,其中所述控制器包括输入/输出I/O存储器管理单元MMU控制器,且其中所述数据存取包括所述数据和虚拟地址。
18.一种用于对虚拟装置进行存取的设备,其包括:
控制器,其包含:
用于管理装置虚拟地址到物理地址的转换的装置;以及
用于将物理地址选择性地路由到发起装置而非共享存储器的装置,其中所述物理地址对应于所述共享存储器中的位置且是基于来自所述虚拟装置的数据存取。
19.根据权利要求18所述的设备,其中所述发起装置包括所述数据存取的发起处理器,且其中所述控制器进一步包含用于识别所述发起处理器的装置。
20.一种用于对虚拟装置进行存取的设备,其包括:
控制器,其包含:
存储器,其存储虚拟地址和物理地址;以及
重新引导单元,其经配置以将物理地址选择性地路由到发起装置而非共享存储器,其中所述物理地址对应于所述共享存储器中的位置且是基于来自所述虚拟装置的数据存取。
21.根据权利要求20所述的设备,其中所述存储器存储地址表以管理虚拟地址到物理地址的转换,其中所述发起装置包括所述数据存取的发起处理器,且其中所述重新引导单元进一步经配置以识别所述发起处理器。
22.一种用于对虚拟装置进行存取的方法,其包括:
在控制对所述虚拟装置的存取的控制器处:
监视总线以寻找从发起装置发送到虚拟装置的存取请求;以及
将来自所述虚拟装置的数据选择性地重新引导到所述发起装置而非共享存储器,其中所述数据对应于物理地址,且其中所述物理地址对应于所述共享存储器中的位置且是基于来自所述虚拟装置的数据存取。
23.根据权利要求22所述的方法,其进一步包括检测来自所述发起装置的存取请求,其中所述存取请求与所述数据相关联。
CN201280041849.2A 2011-09-01 2012-09-04 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统 Active CN103782282B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/223,347 2011-09-01
US13/223,347 US8656137B2 (en) 2011-09-01 2011-09-01 Computer system with processor local coherency for virtualized input/output
PCT/US2012/053682 WO2013033709A1 (en) 2011-09-01 2012-09-04 Computer system with processor local coherency for virtualized input/output

Publications (2)

Publication Number Publication Date
CN103782282A CN103782282A (zh) 2014-05-07
CN103782282B true CN103782282B (zh) 2016-06-01

Family

ID=46852401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280041849.2A Active CN103782282B (zh) 2011-09-01 2012-09-04 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统

Country Status (6)

Country Link
US (1) US8656137B2 (zh)
EP (1) EP2751698B1 (zh)
JP (1) JP5841255B2 (zh)
KR (1) KR101558427B1 (zh)
CN (1) CN103782282B (zh)
WO (1) WO2013033709A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152394B (zh) * 2013-02-06 2016-09-28 华为技术有限公司 数据存取系统、内存共享设备及数据读取方法
US9218291B2 (en) * 2013-07-25 2015-12-22 International Business Machines Corporation Implementing selective cache injection
JP6164125B2 (ja) * 2014-03-19 2017-07-19 富士ゼロックス株式会社 印刷制御システム
US9766916B2 (en) * 2014-05-05 2017-09-19 International Business Machines Corporation Implementing coherent accelerator function isolation for virtualization
AU2014203218B2 (en) * 2014-06-13 2016-08-25 Canon Kabushiki Kaisha Memory configuration for inter-processor communication in an MPSoC
US9720846B2 (en) * 2015-05-28 2017-08-01 Red Hat Israel, Ltd. Memory swap for direct memory access by a device assigned to a guest operating system
US9772962B2 (en) 2015-05-28 2017-09-26 Red Hat Israel, Ltd. Memory sharing for direct memory access by a device assigned to a guest operating system
US9886210B2 (en) * 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
FR3048526B1 (fr) * 2016-03-07 2023-01-06 Kalray Instruction atomique de portee limitee a un niveau de cache intermediaire
KR20180041037A (ko) * 2016-10-13 2018-04-23 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
US20190302724A1 (en) * 2016-10-21 2019-10-03 Kabushiki Kaisha Toshiba Controller
KR101718695B1 (ko) * 2016-12-28 2017-03-22 비콤시스템주식회사 가상화 기반 컨트롤러가 탑재된 빌딩자동제어 장치
CN109460373B (zh) * 2017-09-06 2022-08-26 阿里巴巴集团控股有限公司 一种数据共享方法、终端设备和存储介质
WO2019124450A1 (ja) * 2017-12-20 2019-06-27 日本電気株式会社 入出力実行装置、デバイス仮想化システム、入出力実行方法、および、記録媒体
US11429526B2 (en) * 2018-10-15 2022-08-30 Texas Instruments Incorporated Credit aware central arbitration for multi-endpoint, multi-core system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101802810A (zh) * 2007-05-31 2010-08-11 雷丁大学 处理器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2819982B2 (ja) 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US20060112226A1 (en) 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7609649B1 (en) * 2005-04-26 2009-10-27 Cisco Technology, Inc. Methods and apparatus for improving network based virtualization performance
US7702826B2 (en) 2005-12-28 2010-04-20 Intel Corporation Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices
US7426627B2 (en) * 2006-03-10 2008-09-16 Microsoft Corporation Selective address translation for a resource such as a hardware device
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US7617377B2 (en) * 2006-10-17 2009-11-10 International Business Machines Corporation Splitting endpoint address translation cache management responsibilities between a device driver and device driver services
US7913055B2 (en) * 2006-11-04 2011-03-22 Virident Systems Inc. Seamless application access to hybrid main memory
US7904692B2 (en) * 2007-11-01 2011-03-08 Shrijeet Mukherjee Iommu with translation request management and methods for managing translation requests
US8250254B2 (en) 2007-07-31 2012-08-21 Intel Corporation Offloading input/output (I/O) virtualization operations to a processor
US20100217937A1 (en) 2009-02-20 2010-08-26 Arm Limited Data processing apparatus and method
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US9921967B2 (en) * 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101802810A (zh) * 2007-05-31 2010-08-11 雷丁大学 处理器

Also Published As

Publication number Publication date
EP2751698A1 (en) 2014-07-09
US8656137B2 (en) 2014-02-18
US20130061020A1 (en) 2013-03-07
JP5841255B2 (ja) 2016-01-13
KR101558427B1 (ko) 2015-10-12
CN103782282A (zh) 2014-05-07
KR20140069079A (ko) 2014-06-09
EP2751698B1 (en) 2016-03-23
WO2013033709A1 (en) 2013-03-07
JP2014529829A (ja) 2014-11-13

Similar Documents

Publication Publication Date Title
CN103782282B (zh) 具有用于虚拟化输入/输出的处理器局部一致性的计算机系统
US8850158B2 (en) Apparatus for processing remote page fault and method thereof
CN111124277B (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
US20140164666A1 (en) Server and method for sharing peripheral component interconnect express interface
US11698868B2 (en) Logging pages accessed from I/O devices
JP2016072963A (ja) バーチャルマシンの間でサービスチェーンフローパケットを経路指定するための技術
US10338813B2 (en) Storage controller and using method therefor
CN105359114B (zh) 用于在寻址方案之间进行迁移的方法和系统
TW201222413A (en) System and method for updating firmware of a baseboard management controller
CN111183411A (zh) 用于虚拟机的动态地址转换
CN106155575A (zh) 用于扩展存储系统的高速缓存的方法和装置
CN113794764A (zh) 服务器集群的请求处理方法、介质和电子设备
JP5307151B2 (ja) リンクに基づくシステムにおけるシステムルーティング情報の変更
CN109597697B (zh) 一种资源撮合处理方法及装置
US20180048732A1 (en) Techniques for storing or accessing a key-value item
CN110737618B (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
CN103488606A (zh) 基于节点控制器的请求响应方法和装置
US10498604B2 (en) Capability determination for computing resource allocation
WO2023200502A1 (en) Direct swap caching with zero line optimizations
WO2017011021A1 (en) Systems and methods facilitating reduced latency via stashing in systems on chips
CN113536168B (zh) 组件处理方法及设备
WO2022089249A1 (zh) 信息采集方法、装置、服务器及存储介质
US20120159087A1 (en) Ensuring Forward Progress of Token-Required Cache Operations In A Shared Cache
CN107679093B (zh) 一种数据查询方法及装置
CN113961302A (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