TWI457759B - 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體 - Google Patents

用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體 Download PDF

Info

Publication number
TWI457759B
TWI457759B TW100148032A TW100148032A TWI457759B TW I457759 B TWI457759 B TW I457759B TW 100148032 A TW100148032 A TW 100148032A TW 100148032 A TW100148032 A TW 100148032A TW I457759 B TWI457759 B TW I457759B
Authority
TW
Taiwan
Prior art keywords
processing unit
thread
processor
graphics processing
central processing
Prior art date
Application number
TW100148032A
Other languages
English (en)
Other versions
TW201241627A (en
Inventor
Boris Ginzburg
Esfir Natanzon
Ilya Osadchiy
Ronny Ronen
Eliezer Weissmann
Yoav Zach
Robert L Farrell
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 TW201241627A publication Critical patent/TW201241627A/zh
Application granted granted Critical
Publication of TWI457759B publication Critical patent/TWI457759B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter

Landscapes

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

Description

用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體
本發明係大致關於在特殊化的裝置(例如圖形處理單元)中發生的處理分頁錯誤之處理單元。
分頁錯誤(page fault)是一種中斷(interrupt),其發生於當軟體試圖自被標示為「不存在(not present)」之虛擬記憶位置讀取或寫入時、或當分頁許可屬性(page permission attribute)禁止對應的存取時。虛擬記憶系統對於虛擬記憶位址空間中的每一分頁保持此狀態資訊。這些分頁被映射至實體位址或係「不存在」於實體記憶體中。例如,當讀取或寫入係被偵測至未映射的虛擬位址時或當分頁存取許可被違反時,裝置「分頁移動器(page walker)」產生分頁錯誤中斷。作業系統(OS)分頁錯誤處理器因應此分頁錯誤會將資料從磁碟調換至系統記憶體、或會藉由分配新分頁(「寫入時複製(copy on write)」)及更新分頁表中的狀態資訊。
為了避免圖形處理單元中分頁錯誤的可能性,圖形處理單元一般會被強迫使用定頁型記憶體(pinned memory)。此意味著在後者的情形下,使用於圖形處理器的分頁係被預先分配且無法被調換至磁碟或被再映射(remap)至系統記憶體中的新位置。
在傳統系統中,單獨的分頁表係被中央處理單元與圖 形處理單元使用。作業系統管理中央處理單元所使用的主分頁表而圖形處理單元驅動器管理圖形處理單元所使用的分頁表。圖形處理單元驅動器從使用者空間複製資料至驅動器記憶體以於圖形處理單元處理。當指標(pointer)係由偏移(offset)所取代時,複雜的資料結構必須被再封裝(repack)成陣列(array)。當資料係以陣列表示時,有關複製與再封裝的管理負擔(overhead)會限制圖形處理單元的應用。因此,圖形處理單元在某些應用(包含那些涉及複雜資料結構(例如資料庫)者)上可能有受限的價值。
於某些實施例中,藉由使用不需要共享記憶體之定頁(pinning)的共享虛擬記憶體模型,圖形處理應用可使用複雜的資料結構(例如資料庫)。共享的虛擬記憶體之定頁會降低作業系統管理系統記憶體的能力。於某些實施例中,當不保證圖形處理單元所使用的分頁係存在系統記憶體中時,未被定頁之共享的虛擬記憶體可被使用於圖形處理單元。
圖形處理單元驅動器傳送圖形處理單元上之分頁錯誤至主機(host)/中央處理單元上之影子線程(shadow thread)。然後主機模擬分頁錯誤如同其發生於中央處理單元以觸發作業系統解決該錯誤來幫助圖形處理單元。
當術語「圖形處理單元」係被使用於本應用時,應了解的是,圖形處理單元可為或可不為單獨的積體電路。本 發明係可應用至當圖形處理單元與中央處理單元被集成於一個積體電路的情形。
此外,雖然有關圖形處理的範例係被給定於此,在其他實施例中,相同的分頁錯誤處理技術可被使用於其他特殊化的處理單元(例如視訊處理、卡(card)與輸入/輸出裝置)。一般而言,分頁錯誤處理技術可以任何可經歷分頁錯誤的裝置(其係藉由作用為代理伺服器(proxy)來解決那些分頁錯誤的處理器來實現)來使用。於此所使用的處理器或處理單元可為處理器、控制器、或協同處理器(coprocessor)。
參考第1圖,主機/中央處理單元16與圖形處理單元18通訊。主機/中央處理單元16包含將控制資訊提供至影子線程22之使用者應用程式20。影子線程22然後將例外(exception)及控制資訊與圖形處理單元驅動器26通訊。影子線程亦與主機作業系統24通訊。
如第1圖所示,使用者層級(user level)12包含影子線程22與使用者應用程式20,而核心層級(kernel level)14包含主機作業系統24與圖形處理單元驅動器26。圖形處理單元驅動器26是一種用於圖形處理單元的驅動器,即使驅動器常駐於中央處理單元16中。
於使用者層級12中的圖形處理單元18包含傳送與接收控制與例外訊息至作業系統30之g線程(gthread)28。G線程為在圖形處理單元運行的使用者碼(user code),與在中央處理單元運行的父線程共享虛擬記憶體。作業系統30可為相對小的作業系統,運行於圖形處理單元,其係負責 中央處理單元例外。於一個範例中,其係有關於主機作業系統24的小型者。
使用者應用程式20為任何運行於中央處理單元16之使用者程序。使用者應用程式20於圖形處理單元18產生線程。
延伸線程函式庫(eXtended Threaded Library;XTL)為於圖形處理單元建立與管理使用者線程的一種延伸(extension)。此函式庫對每個g線程建立影子線程。
使用者應用程式使用傳統多線程模型的延伸(如下式)而卸下(offload)計算至圖形處理單元。
xthread_create(thread,attr,gpu_worker,arg)
於圖形處理單元建立的g線程或工作線程(worker thread)與父線程共享虛擬記憶體。其表現與正常線程(於其中所有標準內處理(inter-process)同步機制(如Mutex和信號機)係可被使用)相同。同時,新的影子線程係被建立於主機中央處理單元16。此影子線程作用為用於例外處理單元及中央處理單元與圖形處理單元間的同步之代理伺服器。
於某些實施例中,父線程、主機影子線程、與圖形處理單元工作者線程可共享未被定頁的虛擬記憶體,如第2圖所示。主機/中央處理單元16包含父線程32,其產生xthread_create( )以用於影子線程22。影子線程22存取影子堆疊(shadow stack)(其係在處理位址空間36中的專用位址空間)。父線程32亦存取記憶體描述符(memory descriptor)34 與主堆疊(其係在處理位址空間36中的專用位址空間)。記憶體描述符34亦可與g線程工作者(worker)28通訊。g線程工作者28可存取處理空間36中的g線程碼以及共享的資料節(data section)與專用g線程堆疊。上區塊中的材料(material)對應至處理模型38而下區塊則對應至記憶體模型40。
參考第3圖,分頁錯誤處理演算法可利用硬體、軟體及/或韌體來實施。於軟體實施例中,演算法可被實施為儲存於非暫時性的電腦可讀取媒體(例如光學的、半導體的或磁性的記憶體)之電腦可執行的指令。於第3圖中,用於中央處理單元16之主機作業系統24、影子線程22、驅動器26與圖形處理單元18之作業系統30、g線程28的流程係以平行的垂直流程路徑顯示,而兩者間的交互作用係以水平箭號表示。
圖形處理單元作業系統30最初從g線程28接收一分頁錯誤(如以第3圖中的字「例外」與對應的箭號來表示)。作業系統30儲存內容(區塊62)並傳送帶有分頁錯誤資訊的訊息60至驅動器26。該訊息可包含作業碼(opcode)「exception_notification」與包含向量(vector)與額外資訊之資料。然後,作業系統30標示該線程為idle( ),如區塊66所示,使得該線程被認為「未準備好,等待分頁錯誤的解決(not ready,waiting for page fault resolution)」並切換至另一線程。
驅動器26喚醒影子線程22並將分頁錯誤資料傳送至 影子線程,如由標示為「傳送例外資訊(transfer exception info.)」的箭號所表示。
於區塊50,影子線程執行一阻擋讀取(blocking read)以阻止其他活動,直到分頁錯誤被解決。然後,影子線程22接收分頁錯誤資料。在檢查是否分頁為有錯的(菱形區塊52)之後,若分頁為有錯的,則影子線程再產生相同的存取至有錯的位址,如區塊54所示。若分頁不是有錯的,則流程進行至區塊58以檢查其他例外而跳過區塊54。接著,阻擋讀取在區塊56被解除。
主機作業系統24於分頁錯誤處理器42中處理分頁錯誤。有效率地,主機作業系統被引導而處理對於圖形處理單元的例外。接著,轉換查考緩衝區(Translation Lookaside Buffer;TLB)可在區塊44被清除(flush)。在菱形區塊46的檢查係決定是否分頁錯誤是好的(亦即,被修理了),在此情形中,其會通知影子線程22。否則,壞的分頁錯誤係被標示於區塊48,其可例如導致錯誤。
影子線程22傳送分頁錯誤被解決的訊息(亦即恢復執行(RESUME EXECUTION))至驅動器26。然後,影子線程進行至睡眠狀態以等待下一次來自驅動器的訊息(使用另一阻擋讀取56)。
驅動器26自影子線程接收恢復執行訊息並傳送PassGPUCommand至作業系統30,如區塊64所標示。該訊息可包含作業碼以恢復執行(無資料)。作業系統30標示該線程為準備好來執行,如區塊68所示,並藉由傳送恢 復訊息而從例外返回至g線程28。
第4圖所示的電腦系統130可包含硬碟134與可移除媒體136,其係藉由匯流排104而耦接至晶片組核心邏輯110。鍵盤與滑鼠120或其他傳統組件可藉由匯流排108而被耦接至晶片組核心邏輯。於一實施例中,核心邏輯可藉由匯流排105而耦接至圖形處理器112與中央處理器100。圖形處理器112亦可藉由匯流排106而被耦接至資訊框緩衝器(frame buffer)114。資訊框緩衝器114可藉由匯流排107而被耦接至顯示螢幕118。於一實施例中,圖形處理器112可為使用單一指令多資料(single instruction multiple data;SIMD)架構之多線程的(multi-threaded)、多核心的(multi-core)平行處理器。
在以軟體實施的情形下,相關碼(pertinent code)可被儲存於任何適合的半導體的、磁性的、或光學的記憶體,包含主記憶體132(如元件符號139所示)或圖形處理器中之任何可用的記憶體。因此,於一實施例中,執行第3圖中的順序之碼可被儲存於非暫時性的機器或電腦可讀取媒體(例如記憶體132、及/或圖形處理器112、及/或中央處理器100)且可被藉由處理器100及/或圖形處理器112所執行。
第3圖為流程圖。於某些實施例中,流程圖中所顯示的順序可利用硬體、軟體、或韌體來實施。於軟體實施例中,非暫時性的電腦可讀取媒體(例如半導體的記憶體、磁性的記憶體、或光學的記憶體)可被使用以儲存指令且 可被藉由處理器執行以實施第3圖所示的順序。
於此所說明的圖形處理技術可利用各種硬體架構來實施。例如,圖形功能性可被集成於一晶片組中。替代地,可使用離散(discrete)圖形處理器。於另一實施例中,圖形功能可被藉由常用(general purpose)處理器(包含多核心處理器)來實施。
整份說明書中所指稱的「一個實施例」或「一實施例」係指關於此實施例所說明的特定特徵、結構、或特性係被包含於包含於本發明中之至少一實施。因此,用語「一個實施例」或「一實施例」的使用並不一定是參照相同的實施例。再者,特定特徵、結構、或特性可被利用異於所示特定實施例之其他適合的形式來取代,且所有此種形式可被包含於本申請案之申請專利範圍中。
雖然本發明係參照有限數目的實施例加以說明,所屬技術領域中具有通常知識者將可從中了解到各種修改與變化。亦即,後附申請專利範圍涵蓋所有此種修改與變化,如同落於本發明之真實的精神與範疇中。
12‧‧‧使用者層級
14‧‧‧核心層級
16‧‧‧中央處理單元
18‧‧‧圖形處理單元
20‧‧‧使用者應用程式
22‧‧‧影子線程
24‧‧‧主機作業系統
26‧‧‧圖形處理單元驅動器
28‧‧‧g線程
30‧‧‧作業系統
32‧‧‧父線程
34‧‧‧記憶體描述符
36‧‧‧處理位址空間
38‧‧‧處理模型
40‧‧‧記憶體模型
42‧‧‧分頁錯誤處理器
44‧‧‧區塊
46‧‧‧區塊
48‧‧‧區塊
50‧‧‧區塊
52‧‧‧區塊
54‧‧‧區塊
56‧‧‧區塊
58‧‧‧區塊
60‧‧‧區塊
62‧‧‧區塊
64‧‧‧區塊
66‧‧‧區塊
68‧‧‧區塊
100‧‧‧主處理器
104‧‧‧匯流排
105‧‧‧匯流排
106‧‧‧匯流排
107‧‧‧匯流排
108‧‧‧匯流排
110‧‧‧晶片組核心邏輯
112‧‧‧圖形處理器
114‧‧‧資訊框緩衝器
118‧‧‧顯示螢幕
120‧‧‧鍵盤與滑鼠
130‧‧‧電腦系統
132‧‧‧記憶體
134‧‧‧硬碟
136‧‧‧可移除的媒體
139‧‧‧主記憶體
第1圖為本發明之一實施例的示意圖;第2圖為根據本發明之一實施例的延伸線程與記憶體模型;第3圖為根據本發明之一實施例的用於分頁錯誤處理之流程圖;及 第4圖為一實施例的系統圖式。
12‧‧‧使用者層級
14‧‧‧核心層級
16‧‧‧中央處理單元
18‧‧‧圖形處理單元
20‧‧‧使用者應用程式
22‧‧‧影子線程
24‧‧‧主機作業系統
26‧‧‧圖形處理單元驅動器
28‧‧‧g線程
30‧‧‧作業系統

Claims (14)

  1. 一種用於處理分頁錯誤的方法,包含:藉由運行在一中央處理單元的作業系統來處理在一圖形處理單元中所發生的分頁錯誤;使用運行在該中央處理單元的一影子線程(thread)以再產生(reproduce)及處理在該圖形處理單元上的分頁錯誤;以及於該影子線程,在該中央處理單元上建立該影子線程的另一線程,以及一在該圖形處理單元上的線程之間共享非定頁的虛擬記憶體。
  2. 如申請專利範圍第1項之方法,包含使用運行在一中央處理單元的作業系統來處理在一圖形處理單元中所發生的分頁錯誤。
  3. 如申請專利範圍第2項之方法,包含使用一圖形處理單元作業系統來將一分頁錯誤傳遞至於該中央處理單元之一驅動器。
  4. 如申請專利範圍第1項之方法,包含使用非定頁的(unpinned)共享虛擬記憶體。
  5. 一種非暫時性的電腦可讀取媒體,儲存有能使一第一處理器進行下列步驟的指令:藉由運行在一第二處理單元的作業系統來處理在一圖形處理單元中所發生的分頁錯誤;使用運行在該中央處理單元的一影子線程(thread)以再產生(reproduce)及處理在該圖形處理單元上的分頁錯 誤;以及於該影子線程,在該中央處理單元上建立該影子線程的另一線程,以及一在該圖形處理單元上的線程之間共享非定頁的虛擬記憶體。
  6. 如申請專利範圍第5項之媒體,更儲存有進行下列步驟的指令:使用運行在一中央處理單元的作業系統來處理在一圖形處理單元中所發生的分頁錯誤。
  7. 如申請專利範圍第6項之媒體,更儲存有進行下列步驟的指令:使用一圖形處理單元作業系統來將一分頁錯誤傳遞至於該中央處理單元之一驅動器。
  8. 如申請專利範圍第5項之媒體,更儲存有進行下列步驟的指令:使用非定頁的共享虛擬記憶體。
  9. 一種用於處理分頁錯誤的裝置,包含:一處理器,藉由運行在一第二處理單元的作業系統來處理在一圖形處理單元中所發生的分頁錯誤;使用運行在該中央處理單元的一影子線程(thread)以再產生(reproduce)及處理在該圖形處理單元上的分頁錯誤;以及於該影子線程,在該中央處理單元上建立該影子線程的另一線程,以及一在該圖形處理單元上的線程之間共享非定頁的虛擬記憶體;及一記憶體,耦接至該處理器。
  10. 如申請專利範圍第9項之裝置,其中該處理器為一中央處理單元。
  11. 如申請專利範圍第9項之裝置,包含另一處理器,其係遭受分頁錯誤且將該分頁錯誤傳送至該處理器以進行處理。
  12. 如申請專利範圍第9項之裝置,其中該另一處理器為一圖形處理單元。
  13. 如申請專利範圍第9項之裝置,包含該處理器與該另一處理器,其中該另一處理器將一分頁錯誤傳遞至於該中央處理單元之一驅動器。
  14. 如申請專利範圍第11項之裝置,其中該另一處理器使用非定頁的共享虛擬記憶體。
TW100148032A 2011-03-15 2011-12-22 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體 TWI457759B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/048,053 US20120236010A1 (en) 2011-03-15 2011-03-15 Page Fault Handling Mechanism

Publications (2)

Publication Number Publication Date
TW201241627A TW201241627A (en) 2012-10-16
TWI457759B true TWI457759B (zh) 2014-10-21

Family

ID=46828083

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100148032A TWI457759B (zh) 2011-03-15 2011-12-22 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體

Country Status (5)

Country Link
US (1) US20120236010A1 (zh)
EP (1) EP2686765A4 (zh)
CN (1) CN103430145A (zh)
TW (1) TWI457759B (zh)
WO (1) WO2012125201A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8842126B2 (en) * 2011-12-13 2014-09-23 Advanced Micro Devices, Inc. Methods and systems to facilitate operation in unpinned memory
US9477453B1 (en) * 2015-06-24 2016-10-25 Intel Corporation Technologies for shadow stack manipulation for binary translation systems
US20160381050A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
CN105117369B (zh) * 2015-08-04 2017-11-10 复旦大学 一种基于异构平台的多种并行错误检测系统
US10133647B2 (en) * 2015-11-02 2018-11-20 International Business Machines Corporation Operating a computer system in an operating system test mode in which an interrupt is generated in response to a memory page being available in physical memory but not pinned in virtual memory
KR102429903B1 (ko) 2015-12-03 2022-08-05 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법
US10394556B2 (en) 2015-12-20 2019-08-27 Intel Corporation Hardware apparatuses and methods to switch shadow stack pointers
US10430580B2 (en) 2016-02-04 2019-10-01 Intel Corporation Processor extensions to protect stacks during ring transitions
US10185595B1 (en) * 2018-06-04 2019-01-22 Confia Systems, Inc. Program verification using hash chains
US11829298B2 (en) * 2020-02-28 2023-11-28 Apple Inc. On-demand memory allocation
CN114077379B (zh) * 2020-08-19 2024-03-26 华为技术有限公司 一种计算机设备、异常处理的方法以及中断处理的方法
CN113419919B (zh) * 2021-06-24 2024-06-28 亿览在线网络技术(北京)有限公司 一种对第三方sdk进行线程监控的方法
GB2611542B (en) * 2021-10-06 2023-11-15 Advanced Risc Mach Ltd Circuitry and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760787B2 (en) * 1998-08-04 2004-07-06 Miscrosoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US20100153686A1 (en) * 2008-12-17 2010-06-17 Michael Frank Coprocessor Unit with Shared Instruction Stream
TW201107974A (en) * 2009-05-15 2011-03-01 Oracle America Inc Cache coherent support for flash in a memory hierarchy

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997214A (ja) * 1995-09-29 1997-04-08 Internatl Business Mach Corp <Ibm> 補助プロセッサのためのアドレス変換を含む情報処理システム
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US20050144402A1 (en) * 2003-12-29 2005-06-30 Beverly Harlan T. Method, system, and program for managing virtual memory
US7114040B2 (en) * 2004-03-02 2006-09-26 Hewlett-Packard Development Company, L.P. Default locality selection for memory objects based on determining the type of a particular memory object
US7711990B1 (en) * 2005-12-13 2010-05-04 Nvidia Corporation Apparatus and method for debugging a graphics processing unit in response to a debug instruction
US7484062B2 (en) * 2005-12-22 2009-01-27 International Business Machines Corporation Cache injection semi-synchronous memory copy operation
KR100755701B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 내장형 시스템을 위한 요구 페이징 장치 및 방법
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
US8035648B1 (en) * 2006-05-19 2011-10-11 Nvidia Corporation Runahead execution for graphics processing units
US7623134B1 (en) * 2006-06-15 2009-11-24 Nvidia Corporation System and method for hardware-based GPU paging to system memory
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US20110161620A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US9128849B2 (en) * 2010-04-13 2015-09-08 Apple Inc. Coherent memory scheme for heterogeneous processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760787B2 (en) * 1998-08-04 2004-07-06 Miscrosoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US20100153686A1 (en) * 2008-12-17 2010-06-17 Michael Frank Coprocessor Unit with Shared Instruction Stream
TW201107974A (en) * 2009-05-15 2011-03-01 Oracle America Inc Cache coherent support for flash in a memory hierarchy

Also Published As

Publication number Publication date
EP2686765A4 (en) 2014-12-31
TW201241627A (en) 2012-10-16
CN103430145A (zh) 2013-12-04
EP2686765A1 (en) 2014-01-22
US20120236010A1 (en) 2012-09-20
WO2012125201A1 (en) 2012-09-20

Similar Documents

Publication Publication Date Title
TWI457759B (zh) 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體
US9720846B2 (en) Memory swap for direct memory access by a device assigned to a guest operating system
TWI496076B (zh) 上下文狀態管理技術
US9772962B2 (en) Memory sharing for direct memory access by a device assigned to a guest operating system
US10310879B2 (en) Paravirtualized virtual GPU
TWI614669B (zh) 遷移異構處理器之間不同大小的分頁
US20170046185A1 (en) Page table based dirty page tracking
EP3654178B1 (en) Mechanism for issuing requests to an accelerator from multiple threads
US20110321060A1 (en) Operating system notification of actions to be taken responsive to adapter events
US10055136B2 (en) Maintaining guest input/output tables in swappable memory
TWI443583B (zh) 處理裝置間轉譯後備緩衝器同步化的方法、設備及非暫時性電腦可讀取媒體
US11036666B2 (en) Asynchronous mapping of hot-plugged device associated with virtual machine
US9575796B2 (en) Virtual device timeout by memory offlining
US9921875B2 (en) Zero copy memory reclaim for applications using memory offlining
TWI515564B (zh) 管理統一虛擬記憶體的分頁狀態目錄
US9753861B2 (en) Exit-less movement of guest memory assigned to a device in a virtualized environment
US20220398017A1 (en) Independently controlled dma and cpu access to a shared memory region
US11842200B2 (en) Multi-modal gather operation
US10748637B2 (en) System and method for testing processor errors
TWI452468B (zh) 虛擬機器記憶體的分享方法與電腦系統
US9952980B2 (en) Deferring registration for DMA operations

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees