TWI497417B - 虛擬機器之資料存取方法、資料存取系統與主控端模組 - Google Patents

虛擬機器之資料存取方法、資料存取系統與主控端模組 Download PDF

Info

Publication number
TWI497417B
TWI497417B TW103125121A TW103125121A TWI497417B TW I497417 B TWI497417 B TW I497417B TW 103125121 A TW103125121 A TW 103125121A TW 103125121 A TW103125121 A TW 103125121A TW I497417 B TWI497417 B TW I497417B
Authority
TW
Taiwan
Prior art keywords
memory
virtual
client
memory address
address
Prior art date
Application number
TW103125121A
Other languages
English (en)
Other versions
TW201604786A (zh
Inventor
Ming Ting Wei
Che Rung Lee
Original Assignee
Nat Univ Tsing Hua
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 Nat Univ Tsing Hua filed Critical Nat Univ Tsing Hua
Priority to TW103125121A priority Critical patent/TWI497417B/zh
Priority to US14/504,085 priority patent/US20160026567A1/en
Application granted granted Critical
Publication of TWI497417B publication Critical patent/TWI497417B/zh
Publication of TW201604786A publication Critical patent/TW201604786A/zh

Links

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
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • 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/45558Hypervisor-specific management and integration aspects
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

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

Description

虛擬機器之資料存取方法、資料存取系統與主控端模組
本發明關於一種資料存取方法與系統,特別是關於一種用於虛擬機器之資料存取方法、系統以及主控端模組。
虛擬化是一個用來分配運算資源的常見方法之一。由於當今各種硬體對虛擬化的支援,虛擬機器的運作開銷越來越小,而其執行速度可以與相同效能的實體機器相匹敵,使其可以與高效能運算(High Performance Computing,HPC)互相搭配。資料傳輸(Input/Output,I/O)是評估高效能運算叢集的一個重要因素,雖然虛擬化會產生額外的開銷,但是各項虛擬化技術,如(Single Root I/O Virtualization,SR-IOV)、半虛擬化(Paravirtualization)能有效幫助減少因虛擬化而產生的額外開銷。
進一步地說,由於現在高效能運算仰賴高速通訊介面卡以及硬體加速卡等硬體,為了降低計算資源的消耗,這些硬體大多可以進行大範圍記憶體的直接記憶體存取(Direct Memory Access,DMA)。因此,要將這些裝置提供於虛擬機器內使用,記憶體的配置即為重要的問題。於傳統上,作業系統為了將記憶體分配給各個應用程式,會以分頁機制將記憶體以固定大小切割成分頁以管理程式的記憶體來進行映射(Mapping),因此各個應用程式會有自己的虛擬記憶體定址空間,而映射到虛擬記憶體的定址空間之 位址所對應的實體記憶體定址空間之位址不一定是連續的。
請參閱圖1,圖1為傳統虛擬機器之資料存取時客戶端與主控端定址空間之示意圖。圖1中示出了客戶端虛擬記憶體空間101、客戶端實體記憶體空間102與主控端虛擬記憶體空間103。客戶端虛擬記憶體空間101、客戶端實體記憶體空間102與主控端虛擬記憶體空間103分別包括了記憶體位址101a~101d、102a~102d與103a~103d。
在虛擬機器的環境下,客戶端虛擬記憶體定址空間101內為連續的客戶端虛擬記憶體位址101a~101d,不保證在客戶端實體記憶體定址空間102以及主控端虛擬記憶體定址空間103內也為連續。而且,在可以進行大範圍直接記憶體存取的實體裝置中,執行時必然會需要一段在虛擬記憶體定址空間中連續的記憶體用來提供傳輸資料時所需之複製存取的動作。因此,傳統複製資料的傳輸方式於連續記憶體的方式使得整體效能無法提升。
有鑑於此,本發明可以將不連續的主控端虛擬記憶體定址空間中的記憶體位址直接映射到額外多個連續的記憶體位址的連續記憶體上,進而使得實體裝置可以直接透過映射的方式存取所指定的客戶端內的記憶體分頁。
本發明實施例提出一種虛擬機器之資料存取方法,包括以下步驟:首先,根據客戶端實體記憶體位址取得主控端虛擬記憶體位址;接著,配置共享記憶體提供對應主控端虛擬記憶體位址之資料進行存取;其後,將共享記憶體映射至包含連續的多個記憶體位址之連續記憶體;以及使用連續記憶體提供實體裝置驅動單元存取對應主控端虛擬記憶體位址之資料。
本發明實施例提出一種虛擬機器之資料存取系統,包括至少一客戶端模組以及主控端模組。主控端模組包括記憶單元、實體 裝置驅動單元以及虛擬輸出輸入單元。主控端模組耦接於至少一客戶端模組。實體裝置驅動單元耦接於記憶單元,虛擬輸出輸入單元耦接於實體裝置驅動單元與記憶單元。至少一客戶端模組產生客戶端實體記憶體位址。虛擬輸出輸入單元用以根據客戶端實體記憶體位址取得主控端虛擬記憶體位址,從記憶單元中配置共享記憶體提供對應主控端虛擬記憶體位址之資料進行存取並將共享記憶體映射至包含連續的多個記憶體位址之連續記憶體。其中實體裝置驅動單元使用連續記憶體存取對應主控端虛擬記憶體位址之資料。
本發明實施例提出一種適用於虛擬機器之資料存取之主控端模組。主控端模組耦接於至少一客戶端模組,至少一客戶端模組提供客戶端虛擬記憶體位址以產生客戶端實體記憶體位址。主控端模組包括記憶單元、實體裝置驅動單元以及虛擬輸出輸入單元。實體裝置驅動單元耦接於記憶單元,虛擬輸出輸入單元耦接於實體裝置驅動單元與記憶單元。虛擬輸出輸入單元用以根據客戶端實體記憶體位址取得主控端虛擬記憶體位址,從記憶單元中配置共享記憶體提供對應主控端虛擬記憶體位址之資料進行存取並將共享記憶體映射至包含連續的多個記憶體位址之連續記憶體。其中實體裝置驅動單元使用連續記憶體存取對應主控端虛擬記憶體位址之資料。
綜上所述,透過本發明實施例所提出之虛擬機器之資料存取方法、系統以及主控端模組,可以將不連續的主控端虛擬記憶體定址空間中的記憶體映射到連續的記憶體定址上,進而使得實體裝置可以直接存取所指定的客戶端內的記憶體分頁(不論是連續或是不連續)而不須將其複製至另外的連續之記憶體空間後再進行存取,有效提升存取速率。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用 來說明本發明,而非對本發明的權利範圍作任何的限制。
101、201‧‧‧客戶端虛擬記憶體定址空間
102、202‧‧‧客戶端實體記憶體定址空間
103、203‧‧‧主控端虛擬記憶體定址空間
204‧‧‧主控端實體記憶體定址空間
101a~101d、102a~102d、103a~103d‧‧‧記憶體位址
201a~201e、202a~202d、2031a~2031d、2032a~2032d、204a~204d‧‧‧記憶體位址
2‧‧‧資料存取系統
21‧‧‧主控端模組
22‧‧‧客戶端模組
23‧‧‧實體裝置
21a、22a‧‧‧用戶空間
21b、22b‧‧‧核心空間
211‧‧‧虛擬輸出輸入處理單元
212‧‧‧實體裝置驅動單元
213‧‧‧記憶單元
214‧‧‧虛擬機器監控單元
221‧‧‧應用程式執行單元
222‧‧‧函式庫單元
223‧‧‧虛擬機器驅動單元
S101~S111‧‧‧為方法步驟流程
圖1為傳統虛擬機器之資料存取時客戶端與主控端定址空間之示意圖;圖2為本發明實施例之虛擬機器之資料存取系統架構圖;圖3為本發明實施例之虛擬機器之資料存取時客戶端與主控端定址空間之示意圖;圖4為本發明另一實施例之虛擬機器之資料存取時客戶端與主控端定址空間之示意圖;圖5為本發明實施例之虛擬機器之資料存取方法流程圖。
在下文將參看隨附圖式更充分地描述各種例示性實施例,在隨附圖式中展示一些例示性實施例。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。確切而言,提供此等例示性實施例使得本發明將為詳盡且完整,且將向熟習此項技術者充分傳達本發明概念的範疇。在諸圖式中,可為了清楚而誇示層及區之大小及相對大小。類似數字始終指示類似元件。
請參閱圖2,圖2為本發明實施例之虛擬機器之資料存取系統架構圖。資料存取系統2包括主控端模組21、客戶端模組22以及實體裝置23。主控端模組21包括用戶空間21a以及核心空間21b。客戶端模組22包括用戶空間22a以及核心空間22b。主控端模組21之用戶空間21a更包括虛擬輸出輸入處理單元211,主控端模組21之核心空間21b更包括實體裝置驅動單元212、記憶單元213以及虛擬機器監控單元214。客戶端模組22之用戶空間22a更包括應用程式執行單元221以及函式庫單元222,客戶端模組22之 核心空間22b更包括虛擬機器驅動單元223。實體裝置驅動單元212、虛擬機器監控單元214與記憶單元213共同耦接於虛擬輸出輸入單元211,記憶單元213耦接於實體裝置驅動單元212。應用程式執行單元221耦接於函式庫單元222,函式庫單元222耦接於虛擬機器驅動單元223。客戶端模組22耦接於主控端模組21,更仔細地說,客戶端模組22之虛擬機器驅動單元223耦接於主控端模組21之虛擬輸出輸入處理單元211。實體裝置23耦接於實體裝置驅動單元212。
在本發明實施例中,主控端模組21為主要之作業系統,而客戶端模組22為模擬出之其他多個作業系統。在本領域具通常知識者應了解在虛擬機器的架構下,使用者可執行任何作業系統,譬如可以在個人電腦上模擬出並執行多個不同的作業系統。然而,在本發明實施例中,將以第二類(Type 2)進行說明。更仔細地說,在第二類(Type 2)虛擬機器監督程序(Virtual Machine Hypervisor,VMH)上,虛擬機器監控單元214會產生四個記憶體定址空間,也就是主控端實體記憶體定址空間(Host Physical Memory Addressing Space)、主控端虛擬記憶體定址空間(Host Memory Addressing Space)、客戶端實體記憶體定址空間(Guest Physical Memory Addressing Space)以及客戶端虛擬記憶體定址空間(Guest Memory Addressing Space)。在實際應用上,可透過QEMU、KVM或其他虛擬機器實施,但本發明並不以此做為限制。
在虛擬機器監控單元214所產生之主控端實體記憶體定址空間、主控端虛擬記憶體定址空間、客戶端實體記憶體定址空間以及客戶端虛擬記憶體定址空間,其分別對應至核心空間21b、用戶空間21a、核心空間22b以及用戶空間22a。用戶空間21a、22a係用以提供使用操作之空間。換句話說,透過用戶空間21a使用者可操作主控端模組21以執行其所需之動作。而核心空間21b、22b係分別為視為實體機器硬體與模擬出的虛擬機器硬體的運算 核心。
請同時參閱圖2與圖3,圖3為本發明實施例之虛擬機器之資料存取時客戶端與主控端定址空間之示意圖。圖3示出了客戶端虛擬記憶體定址空間201、客戶端實體記憶體定址空間202、主控端虛擬記憶體定址空間203以及主控端實體記憶體定址空間204,廣義上來說,其分別可對應至上述之用戶空間22a、核心空間22b、用戶空間21a以及核心空間21b。如圖3之舉例,客戶端虛擬記憶體定址空間201具有客戶端虛擬記憶體位址201a~201d、客戶端實體記憶體定址空間具有客戶端實體記憶體位址202a~202d、主控端虛擬記憶體定址空間203具有主控端虛擬記憶體位址2031a~2031d、2032a~2032d以及主控端實體記憶體定址空間204具有主控端實體記憶體位址204a~204d。更進一步地說,客戶端虛擬記憶體位址201a~201d為多個連續的記憶體分頁位址所組成(如圖3所示,記憶體位址201a~201d分別為0x0000、0x1000、0x2000以及0x3000),客戶端實體記憶體位址202a~202d為多個不連續的記憶體分頁位址所組成(如圖3所示,記憶體位址202a~202d分別為0xd000、0x9000、0xf000以及0xb000),以及主控端虛擬記憶體位址2031a~2031d為多個不連續的記憶體分頁位址所組成(如圖3所示,記憶體位址2031a~2031d分別為0xad000、0xa9000、0xaf000以及0xab000)。值得注意的是,主控端的虛擬記憶體定址空間2031a~2031d,是客戶端實體記憶體定址空間202a~202d的固定位移。
在客戶端模組22中,應用程式執行單元221可包含適當的電路、邏輯和/或編碼。在本發明實施例中,應用程式執行單元221用以提供使用者執行應用程式。舉例來說,使用者可透過應用程式執行單元221執行相應之應用程式,並進一步透過函式庫單元223執行後續動作。
函式庫單元222可包含適當的電路、邏輯和/或編碼。在本發 明實施例中,函式庫單元222係用以當使用者透過應用程式執行單元221要求申請記憶體區間時,資料存取系統2為了將記憶體分配給應用程式執行單元221進行使用,則會進一步要求函式庫單元222提供客戶端虛擬記憶體位址201a~201d。接著,函式庫單元222會進一步傳送客戶端虛擬記憶體位址201a~201d至虛擬機器驅動單元223。
虛擬機器驅動單元223可包含適當的電路、邏輯和/或編碼。在本發明實施例中,虛擬機器驅動單元223對客戶端虛擬記憶體位址201a~201d進行固定記憶體(Pin memory)之動作以獲得客戶端實體記憶體位址202a~202d。更仔細地說,虛擬機器驅動單元223執行固定記憶體之動作係為避免記憶體空間被置換(Swap),且透過客戶端虛擬記憶體位址201a~201d(包括位置與記憶體大小)取得客戶端實體記憶體定址空間202中的客戶端實體記憶體位址202a~202d。
在主控端模組21中,虛擬輸出輸入處理單元211可包含適當的電路、邏輯和/或編碼。在本發明實施例中,虛擬輸出輸入處理單元211用以根據客戶端實體記憶體位址202a~202d取得在主控端虛擬記憶體定址空間203中的主控端虛擬記憶體位址2031a~2031d。另外,虛擬輸出輸入處理單元211更用以提供主控端虛擬記憶體位址2032a~2032d(其包含連續的多個記憶體位址2032a~2032d之連續記憶體之空間)。同樣地,主控端虛擬記憶體位址2032a~2032d位於主控端實體記憶體定址空間203中。值得一提的是,其中客戶端虛擬記憶體位址201a~201d之多個連續的記憶體分頁位址與主控端虛擬記憶體位址2032a~2032d(亦即為連續記憶體之連續的多個記憶體位址)順序相同。
另一方面,記憶單元213可包含適當的電路、邏輯和/或編碼。在本發明實施例中,記憶單元213用以提供所需配置的共享記憶體給對應主控端虛擬記憶體位址主控端虛擬記憶體位址 2031a~2031d之資料進行存取,亦即為圖3所示之主控端實體記憶體定址空間204之主控端實體記憶體位址204a~204d。值得一提的是,虛擬輸出輸入處理單元211將主控端實體記憶體位址204a~204d映射至主控端虛擬記憶體位址2032a~2032d上。值得注意的是,於本發明實施例中,客戶端虛擬記憶體位址201a~201d與主控端虛擬記憶體位址2032a~2032d之順序相同。
實體裝置驅動單元212可包含適當的電路、邏輯和/或編碼。在本發明實施例中,實體裝置驅動單元212為提供實體裝置23連接之介面。更仔細地說,實體裝置驅動單元212透過對記憶單元213的存取,提供客戶端模組22與主控端模組23使用實體裝置23。
在本發明實施例中,實體裝置23為硬體加速卡(GPU、FPGA)或高速通訊界面卡(InfiniBand、Fiber channel、PCIe switch)。但本發明僅以此做為說明,並不以此做為限制。
接著請參閱圖4,圖4為本發明另一實施例之虛擬機器之資料存取時客戶端與主控端定址空間之示意圖。圖4與圖3的差異僅在於客戶端虛擬記憶體定址空間201之客戶端虛擬記憶體位址201e、201b~201d為不連續的(如圖4所示,客戶端虛擬記憶體記憶體位址201為0x8000)。於此實施例中,客戶端實體記憶體位址202a~202d仍為多個不連續的記憶體分頁位址所組成以及0xb000),以及主控端虛擬記憶體位址2031a~2031d仍為多個不連續的記憶體分頁位址所組成。但同樣地,客戶端虛擬記憶體位址201e、201b~201d與主控端虛擬記憶體位址2032a~2032d之順序相同。
請參閱圖5,圖5為本發明實施例之虛擬機器之資料存取方法流程圖。資料存取方法流程包括以下步驟:步驟S101,當應用程式執行單元申請記憶體區間時,函式庫單元提供客戶端虛擬記憶體位址給虛擬機器驅動單元;步驟S103,虛擬機器驅動單元對客 戶端虛擬記憶體位址進行固定記憶體之動作以獲得客戶端實體記憶體位址;步驟S105,虛擬輸出輸入單元根據客戶端實體記憶體位址取得主控端虛擬記憶體位址;步驟S107,虛擬輸出輸入單元從記憶單元中配置共享記憶體以提供對應主控端虛擬記憶體位址之資料進行存取;步驟S109,虛擬輸出輸入單元將共享記憶體映射至包含連續的多個記憶體位址之連續記憶體;步驟S111,實體裝置驅動單元使用連續記憶體存取主控端虛擬記憶體位址之資料。
請同時參閱圖3與圖5。在本發明實施例中,客戶端虛擬記憶體位址201a~201d為多個連續的記憶體分頁位址所組成(如圖3所示,記憶體位址201a~201d分別為0x0000、0x1000、0x2000以及0x3000),客戶端實體記憶體位址202a~202d為多個不連續的記憶體分頁位址所組成(如圖3所示,記憶體位址202a~202d分別為0xd000、0x9000、0xf000以及0xb000),以及主控端虛擬記憶體位址2031a~2031d為多個不連續的記憶體分頁位址所組成(如圖3所示,記憶體位址2031a~2031d分別為0xad000、0xa9000、0xaf000以及0xab000)。其中客戶端虛擬記憶體位址201a~201d之多個連續的記憶體分頁位址與主控端虛擬記憶體位址2032a~2032d(亦即為連續記憶體之連續的多個記憶體位址)順序相同。
另外,請同時參閱圖4與圖5。在本發明實施例中,客戶端虛擬記憶體定址空間201之客戶端虛擬記憶體位址201e、201b~201d為不連續的(如圖4所示,客戶端虛擬記憶體記憶體位址201為0x8000),客戶端實體記憶體位址202a~202d為多個不連續的記憶體分頁位址所組成以及0xb000),以及主控端虛擬記憶體位址2031a~2031d為多個不連續的記憶體分頁位址所組成。其中客戶端虛擬記憶體位址201e、201b~201d之多個連續的記憶體分頁位址與主控端虛擬記憶體位址2032a~2032d(亦即為連續記憶體之連續的多個記憶體位址)順序相同。
〔本發明可能之功效〕
綜上所述,透過本發明實施例所提出之虛擬機器之資料存取方法、系統以及主控端模組,可以將不連續的主控端虛擬記憶體定址空間中的記憶體映射到連續的記憶體定址上,進而使得實體裝置可以直接存取所指定的客戶端內的記憶體分頁(不論是連續或是不連續)而不須將其複製至另外的連續之記憶體空間後再進行存取。因此,可以進行直接記憶體存取之硬體加速卡(GPU、FPGA)或高速通訊界面卡(InfiniBand、Fiber channel、PCIe switch)等常見高效能計算之電腦硬體之虛擬化使用。
以上所述,僅為本發明最佳之具體實施例,惟本發明之特徵並不侷限於此,任何熟悉該項技藝者在本發明之領域內,可輕易思及之變化或修飾,皆可涵蓋在以下本案之專利範圍。
S101~S111‧‧‧為方法步驟流程

Claims (20)

  1. 一種虛擬機器之資料存取方法,包括以下步驟:根據一客戶端實體記憶體位址取得一主控端虛擬記憶體位址;配置一共享記憶體提供對應該主控端虛擬記憶體位址之資料進行存取;將該共享記憶體映射至包含連續的多個記憶體位址之一連續記憶體;以及使用該連續記憶體提供一實體裝置驅動單元存取對應該主控端虛擬記憶體位址之資料。
  2. 如請求項1所述之虛擬機器之資料存取方法,在根據該客戶端實體記憶體位址取得該主控端虛擬記憶體位址的步驟之前,一函式庫單元提供一客戶端虛擬記憶體位址以獲得該客戶端實體記憶體位址。
  3. 如請求項2所述之虛擬機器之資料存取方法,在該函式庫單元提供該客戶端虛擬記憶體位址以獲得該客戶端實體記憶體位址的步驟中,一虛擬機器驅動單元對該客戶端虛擬記憶體位址進行固定記憶體(Pin memory)之動作以獲得該客戶端實體記憶體位址。
  4. 如請求項2所述之虛擬機器之資料存取方法,其中該客戶端虛擬記憶體位址為多個連續的記憶體分頁位址所組成;該客戶端實體記憶體位址為多個不連續的記憶體分頁位址所組成;以及該主控端虛擬記憶體位址為多個不連續的記憶體分頁位址所組成。
  5. 如請求項4所述之虛擬機器之資料存取方法,其中該客戶端虛擬記憶體位址之該多個連續的記憶體分頁位址與該連續記憶體之連續的多個記憶體位址順序相同。
  6. 如請求項2所述之虛擬機器之資料存取方法,其中該客戶端虛 擬記憶體位址為多個不連續的記憶體分頁位址所組成;該客戶端實體記憶體位址為多個不連續的記憶體分頁位址所組成;以及該主控端虛擬記憶體位址為多個不連續的記憶體分頁位址所組成。
  7. 如請求項6所述之虛擬機器之資料存取方法,其中該客戶端虛擬記憶體位址之該多個不連續的記憶體分頁位址與該連續記憶體之連續的多個位址順序相同。
  8. 如請求項1所述之虛擬機器之資料存取方法,其中該共享記憶體為一主控端實體記憶體定址空間。
  9. 如請求項1所述之虛擬機器之資料存取方法,其中該連續記憶體屬於一主控端虛擬記憶體定址空間。
  10. 一種虛擬機器之資料存取系統,包括:至少一客戶端模組,該至少一客戶端模組產生一客戶端實體記憶體位址;以及一主控端模組,耦接於該至少一客戶端模組,包括:一記憶單元;一實體裝置驅動單元,耦接於該記憶單元;及一虛擬輸出輸入單元,耦接於該實體裝置驅動單元與該記憶單元,用以根據該客戶端實體記憶體位址取得一主控端虛擬記憶體位址,從該記憶單元中配置一共享記憶體提供對應該主控端虛擬記憶體位址之資料進行存取並將該共享記憶體映射至包含連續的多個記憶體位址之一連續記憶體;其中該實體裝置驅動單元使用該連續記憶體存取對應該主控端虛擬記憶體位址之資料。
  11. 如請求項10所述之虛擬機器之資料存取系統,其中該客戶端模組包括:一函式庫單元,提供一客戶端虛擬記憶體位址;以及一虛擬機器驅動單元,耦接於該函式庫單元,用以接收該 客戶端虛擬記憶體位址進行固定記憶體之動作以獲得該客戶端實體記憶體位址。
  12. 如請求項10所述之虛擬機器之資料存取系統,其中該主控端模組更包括:一虛擬機器監控單元,耦接於該虛擬輸出輸入處理單元,用以產生一客戶端虛擬記憶體定址空間、一客戶端實體記憶體定址空間、一主控端虛擬記憶體定址空間以及一主控端實體記憶體定址空間。
  13. 如請求項11所述之虛擬機器之資料存取系統,其中該客戶端虛擬記憶體位址為多個連續的記憶體分頁位址所組成;該客戶端實體記憶體位址為多個不連續的記憶體分頁位址所組成;以及該主控端虛擬記憶體位址為多個不連續的記憶體分頁位址所組成。
  14. 如請求項13所述之虛擬機器之資料存取系統,其中該客戶端虛擬記憶體位址之該多個連續的記憶體分頁位址與該連續記憶體之連續的多個記憶體位址順序相同。
  15. 如請求項11所述之虛擬機器之資料存取系統,其中該客戶端虛擬記憶體位址為多個不連續的記憶體分頁位址所組成;該客戶端實體記憶體位址為多個不連續的記憶體分頁位址所組成;以及該主控端虛擬記憶體位址為多個不連續的記憶體分頁位址所組成。
  16. 如請求項15所述之虛擬機器之資料存取系統,其中該客戶端虛擬記憶體位址之該多個不連續的記憶體分頁位址與該連續記憶體之連續的多個位址順序相同。
  17. 一種主控端模組,適用於虛擬機器之資料存取,耦接於至少一客戶端模組,該至少一客戶端模組提供一客戶端虛擬記憶體位址以產生一客戶端實體記憶體位址,該主控端模組包括:一記憶單元; 一實體裝置驅動單元,耦接於該記憶單元;以及一虛擬輸出輸入單元,耦接於該實體裝置驅動單元與該記憶單元,用以根據該客戶端實體記憶體位址取得一主控端虛擬記憶體位址,從該記憶單元中配置一共享記憶體提供對應該主控端虛擬記憶體位址之資料進行存取並將該共享記憶體映射至包含連續的多個記憶體位址之一連續記憶體;其中該實體裝置驅動單元使用該連續記憶體存取對應該主控端虛擬記憶體位址之資料。
  18. 如請求項17所述之主控端模組,更包括:一虛擬機器監控單元,耦接於該虛擬輸出輸入處理單元,用以產生一客戶端虛擬記憶體定址空間、一客戶端實體記憶體定址空間、一主控端虛擬記憶體定址空間以及一主控端實體記憶體定址空間。
  19. 如請求項18所述之主控端模組,其中該共享記憶體屬於該主控端實體記憶體定址空間。
  20. 如請求項18所述之主控端模組,其中該連續記憶體屬於該主控端虛擬記憶體定址空間。
TW103125121A 2014-07-22 2014-07-22 虛擬機器之資料存取方法、資料存取系統與主控端模組 TWI497417B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103125121A TWI497417B (zh) 2014-07-22 2014-07-22 虛擬機器之資料存取方法、資料存取系統與主控端模組
US14/504,085 US20160026567A1 (en) 2014-07-22 2014-10-01 Direct memory access method, system and host module for virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103125121A TWI497417B (zh) 2014-07-22 2014-07-22 虛擬機器之資料存取方法、資料存取系統與主控端模組

Publications (2)

Publication Number Publication Date
TWI497417B true TWI497417B (zh) 2015-08-21
TW201604786A TW201604786A (zh) 2016-02-01

Family

ID=54343362

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103125121A TWI497417B (zh) 2014-07-22 2014-07-22 虛擬機器之資料存取方法、資料存取系統與主控端模組

Country Status (2)

Country Link
US (1) US20160026567A1 (zh)
TW (1) TWI497417B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991057B (zh) * 2017-04-11 2020-09-11 深信服科技股份有限公司 一种共享显卡虚拟化中内存的调用方法及虚拟化平台
US10733112B2 (en) * 2017-06-16 2020-08-04 Alibaba Group Holding Limited Method and apparatus for hardware virtualization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718540B1 (en) * 1997-11-17 2004-04-06 International Business Machines Corporation Data processing system and method for storing data in a communication network
TWI252427B (en) * 2002-04-16 2006-04-01 Intel Corp Control register access virtualization performance improvement in the virtual-machine architecture
TW200802095A (en) * 2005-10-08 2008-01-01 Ibm Direct memory access between input/output device and physical memory within virtual machine environment
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7490217B2 (en) * 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
TW200917039A (en) * 2007-08-15 2009-04-16 Ibm Enabling parallel access volumes in virtual machine environments

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843669B2 (en) * 2011-09-09 2014-09-23 Microsoft Corporation Guest partition high CPU usage mitigation when performing data transfers in a guest partition

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718540B1 (en) * 1997-11-17 2004-04-06 International Business Machines Corporation Data processing system and method for storing data in a communication network
TWI252427B (en) * 2002-04-16 2006-04-01 Intel Corp Control register access virtualization performance improvement in the virtual-machine architecture
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
TW200802095A (en) * 2005-10-08 2008-01-01 Ibm Direct memory access between input/output device and physical memory within virtual machine environment
US7490217B2 (en) * 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
TW200917039A (en) * 2007-08-15 2009-04-16 Ibm Enabling parallel access volumes in virtual machine environments

Also Published As

Publication number Publication date
TW201604786A (zh) 2016-02-01
US20160026567A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
US8239938B2 (en) Centralized device virtualization layer for heterogeneous processing units
CN105830026B (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
JP5583180B2 (ja) 仮想gpu
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
WO2018119952A1 (zh) 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品
US8893267B1 (en) System and method for partitioning resources in a system-on-chip (SoC)
US9727359B2 (en) Virtual machine function based sub-page base address register access for peripheral component interconnect device assignment
US11194735B2 (en) Technologies for flexible virtual function queue assignment
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
WO2012087984A2 (en) Direct sharing of smart devices through virtualization
KR20170121046A (ko) NVMe 인터페이스를 사용하는 장치에 커널 모드 액세스 및 사용자 모드 액세스를 동시에 제공하는 시스템 및 방법
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
JP7123235B2 (ja) 仮想化用のgpuタスクコンテナとしてのvmid
US20170147374A1 (en) Virtual pci device based hypervisor bypass for vm bridging
US20180136868A1 (en) Translation bypass by host iommu for systems with virtual iommu
TWI497417B (zh) 虛擬機器之資料存取方法、資料存取系統與主控端模組
JP5824472B2 (ja) メモリーアクセス制御システム及び画像形成装置
JP2019057162A (ja) 仮想化システム、仮想化プログラム、及び、記憶媒体
TW201351276A (zh) 計算工作的排程和執行
US9262348B2 (en) Memory bandwidth reallocation for isochronous traffic
US20220276966A1 (en) Data processors
US11119787B1 (en) Non-intrusive hardware profiling
JP2022541059A (ja) ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間
US20200201758A1 (en) Virtualized input/output device local memory management
US20230315328A1 (en) High bandwidth extended memory in a parallel processing system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees