TW201738756A - 使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置 - Google Patents

使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置 Download PDF

Info

Publication number
TW201738756A
TW201738756A TW106107679A TW106107679A TW201738756A TW 201738756 A TW201738756 A TW 201738756A TW 106107679 A TW106107679 A TW 106107679A TW 106107679 A TW106107679 A TW 106107679A TW 201738756 A TW201738756 A TW 201738756A
Authority
TW
Taiwan
Prior art keywords
application
address
operating system
memory
physical
Prior art date
Application number
TW106107679A
Other languages
English (en)
Other versions
TWI738737B (zh
Inventor
馬諾基 K 古素拉
文卡塔 巴努 普拉卡什 葛拉普迪
Original Assignee
三星電子股份有限公司
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 三星電子股份有限公司 filed Critical 三星電子股份有限公司
Publication of TW201738756A publication Critical patent/TW201738756A/zh
Application granted granted Critical
Publication of TWI738737B publication Critical patent/TWI738737B/zh

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/023Free address space management
    • 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency 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/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Abstract

本發明概念是有關於使應用程式、作業系統、及硬體彼此通訊的由電腦實施的方法。所述方法使所述應用程式將應用程式層階虛擬位址轉換成物理位址並將所述物理位址傳送至作業系統。所述作業系統接著利用所述物理位址來確定作業系統層階虛擬位址並完成資料傳遞。

Description

使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置
本揭露大體而言是有關於記憶體緩衝器,且更具體而言是有關於一種伴隨記憶體預配置的緩衝器映射方案。
在以UNIX為基礎的儲存器/伺服器系統中,存在各自執行特定任務的各種應用程式及元件驅動器。為了使應用程式、作業系統(operating system,OS)/核心、及硬體有效地進行通訊,它們常會圍繞記憶體緩衝器進行傳遞。通常,在該些通訊期間,應用程式會將自己的應用程式層階虛擬位址傳送至作業系統/核心。記憶體緩衝器利用應用程式層階虛擬位址來調用驅動器,且驅動器將應用程式層階虛擬位址映射至作業系統/核心層階虛擬位址。
為使此種轉譯更加容易,虛擬記憶體及物理記憶體被劃分成大小方便的組塊(被稱作頁面(page))。在此種分頁的模型中,虛擬位址是由偏移量(offset)及虛擬頁面訊框號(virtual page frame number)構成。每當處理器遇到虛擬位址時,處理器會自虛擬位址提取偏移量及虛擬頁面訊框號。處理器接著會將虛擬頁面訊框號轉譯成物理頁面訊框號以存取在此一物理頁面中具有正確偏移量的位置。為了將虛擬位址轉譯成物理位址,處理器會首先算出虛擬位址頁面訊框號及在此一虛擬頁面內的偏移量。處理器利用虛擬頁面訊框號作為處理頁面表的索引以擷取所述處理頁面表的頁面表項。若處於所述偏移量的頁面表項有效,則處理器會自此表項取出物理頁面訊框號。被處理器用來將虛擬頁面訊框號轉換成物理訊框號的表被稱作頁面表(page table)。
虛擬位址是藉由將偏移量加至虛擬頁面號來計算。為了進一步加強保護,對於使用者空間應用程式及核心而言存在單獨的頁面表。為對使用者空間虛擬位址進行存取,核心層階軟體將使用者空間位址映射至核心位址空間。此過程涉及到為使用者空間位址創建核心頁面表項。
至於硬體而言,作業系統/核心與硬體之間的連接是藉由直接記憶體存取(direct memory access,DMA)而發生。藉由利用直接記憶體存取,硬體元件可在無中央處理單元(central processing unit,CPU)參與的情況下往來於電腦的主記憶體而傳遞資料。為使直接記憶體存取發揮作用,記憶體緩衝器被頻繁地映射至對硬體元件而言可見的位址範圍。此位址範圍被稱作輸入輸出(input/output,IO)虛擬位址。視架構而定,此可涉及在輸入輸出虛擬位址與電腦主記憶體的物理位址之間設置轉譯。通常,此會在利用輸入輸出記憶體管理單元(IO memory management unit,IOMMU)硬體時發生。對於某些架構,輸入輸出虛擬位址可能與電腦主記憶體的物理位址相同。
上述映射方案對作業系統/核心造成很重的負擔,作業系統/核心需要首先藉由設置頁面表項而將應用程式層階虛擬位址轉譯成作業系統層階虛擬位址。相似地,應為每一次直接記憶體存取傳遞建立直接記憶體存取映射。需要一種使作業系統、應用程式、及硬體更高效地進行通訊的方法。
在一個態樣中,本發明概念是有關於一種使作業系統與應用程式進行通訊的由電腦實施的方法。所述方法涉及自應用程式直接接收物理位址的作業系統以及基於記憶體的所述物理位址來確定作業系統層階虛擬位址。
在另一態樣中,本發明概念是有關於一種使單一節點中的應用程式、作業系統、及硬體彼此通訊的由電腦實施的方法。所述方法使所述應用程式將應用程式層階虛擬位址轉換成物理位址,並將所述物理位址傳送至所述作業系統。所述作業系統接著利用所述物理位址確定作業系統層階虛擬位址。
在又一態樣中,本發明概念是有關於一種控制資料傳遞的裝置,所述裝置包括記憶體映射器,所述記憶體映射器使應用程式能夠將所述應用程式的應用程式層階虛擬位址轉換成物理位址並將所述物理位址傳送至作業系統。
本系統使得作業系統不必每當通過記憶體緩衝器時便設置基於核心層階頁面表的轉譯。在本揭露中,應用程式將物理位址傳送至核心。根據一個實施例,所述核心具有此緩衝器所需的映射。因此,核心可計算虛擬位址且無需每次均執行映射操作。由於所有核心模組共享同一虛擬位址空間,因此任何作業系統模組(不僅是對記憶體進行配置的作業系統模組)皆可利用物理位址獲得虛擬位址並對緩衝器進行操作。
不同應用程式之間利用緩衝器偏移量進行通訊。應用程式利用虛擬位址對緩衝器進行操作。所述應用程式可藉由僅將偏移量加至緩衝器起始處的虛擬位址來計算其有的虛擬位址。
應用程式可藉由僅將偏移量加至緩衝器起始處的直接記憶體存取位址而確定所述偏移量的直接記憶體存取位置。應用程式可在無核心參與的情況下將緩衝器位址直接傳遞至硬體元件。
儘管本揭露是在單一節點的上下文中書寫,然而此並非是對揭露的限制。
圖1是根據一個實施例在單一節點中的提供一個可能環境的使用者空間、核心空間、及硬體的概念圖。如圖所示,形成使用者空間的應用程式100、作業系統(OS)/核心200、及硬體300彼此通訊以接收並執行使用者請求。硬體300包括各種元件、中央處理單元、及系統記憶體。作業系統200在使用者空間與硬體300之間進行介接,並使得應用程式100能夠存取系統記憶體等。元件驅動器通常是作業系統200的一部分。記憶體映射器將影像檔案及資料檔案映射至使用者空間中的應用程式中。在記憶體映射中,檔案的內容被鏈結至虛擬位址。
圖2A是示出根據一個實施例的應用程式、作業系統、及硬體之間的通訊的示意圖。就應用程式100而言,示出有兩個應用程式(應用程式X及應用程式Y)。所述兩個應用程式中的每一者均具有其自己的虛擬記憶體及其自己的虛擬位址集合(在圖2A中示作VM-X及VM-Y)。每一應用程式亦具有其自己的頁面表110,頁面表110將所述每一應用程式自己的相應虛擬頁面映射成記憶體的物理頁面。舉例而言,如圖所繪示,將應用程式X的虛擬頁面訊框號0(VPFN 0)映射成記憶體中的物理頁面訊框號1(PFN1),且將應用程式Y的虛擬頁面訊框號1(VPFN1)映射成記憶體中的物理頁面訊框號4(PFN4)。
利用虛擬頁面訊框號作為偏移量對頁面表110進行存取。為了將虛擬位址轉譯成物理位址,會首先確定虛擬位址頁面訊框號及在虛擬頁面內的偏移量。若虛擬記憶體位址有效且表項有效,則處理器會取出物理頁面訊框號並將其乘以頁面大小以得到物理記憶體中的頁面的基點(base)的位址。接著,加上所述偏移量。
舉例而言,在圖2A所說明的情形中,假定頁面大小為0 ´ 2000。對於VM-Y中為0 ´ 2194的位址而言,處理器會將此一位址轉譯成0 ´ 194的偏移量且在虛擬頁面訊框號1中。此虛擬頁面訊框號1被映射至以0 ´ 8000(4 ´ 2000)開始的物理頁面訊框號4。將0 ´ 194的偏移量加至物理頁面訊框號會產生為0 ´ 8194的最終物理位址。儘管各應用程式僅利用基點的虛擬位址及相對於虛擬位址的偏移量來彼此通訊,然而本揭露的系統使得各應用程式能夠利用物理位址來與核心進行通訊。如圖所示,核心轉譯表210用於將物理位址轉譯成作業系統層階虛擬位址。核心轉譯表210使得能夠將物理位址轉譯成虛擬位址,且核心轉譯表210可為作業系統專用的。
根據一個實施例,記憶體被預配置且與應用程式100共享,使得應用程式100及作業系統200可均對物理位址表進行存取。本文所述「預配置」意指在對緩衝器進行任何使用以在應用程式/核心/硬體域之間傳遞資料之前進行的配置。此外,作業系統200中的不同模組(其中所有模組共享同一虛擬位址空間)將物理位址轉換成所述作業系統自己的作業系統層階虛擬位址。被每一作業系統用來將物理位址轉譯成虛擬位址的方法取決於每一作業系統的架構。舉例而言,Linux作業系統可針對某些位址範圍利用簡單算術法將物理位址轉譯成虛擬位址。當實作於Linux中時,本揭露系統的經預配置的緩衝器落於其中利用簡單算術法來達到物理位址的此位址範圍中。某些其他作業系統可以不同的機制來達成此結果。
應用程式可藉由僅將偏移量加至緩衝器起始處的直接記憶體存取位址來計算所述偏移量的直接記憶體存取位址。在此方式,應用程式可在無作業系統200參與的情況下將緩衝器位址直接傳遞至硬體300元件。
圖2B是根據一個實施例的另一示意圖,其示出使用者空間中的多個應用程式及核心中的不同虛擬位址指向同一物理位址進而達成緩衝器共享。圖2B示出應用程式使用者空間100中的應用程式X及應用程式Y。在應用程式X中,被標記為「緩衝器-1」的資料儲存於應用程式X位址空間中的0 ´ 3000處。此資料例如利用圖2A中所示處理而轉譯至核心位址空間0 ´ 5000。同一資料(緩衝器-1)對應於應用程式-Y位址空間中的位址0 ´ 1000處的資料,但應用程式X與應用程式Y二者均能夠利用物理位址而指向同一資料。被標記為「緩衝器-2的資料儲存於應用程式Y的虛擬位址0 ´ 4000處且對應於核心位址空間0 ´ 7000。由於各核心模組共享同一虛擬位址空間此一事實,任何作業系統模組均可利用圖2B中所示核心位址來獲取虛擬位址。
圖3是說明根據一個實施例的應用程式、作業系統、及硬體之間的通訊方法的圖。更具體而言,圖3所示實施例示出使用者空間(應用程式100)中的應用程式-1 102與應用程式-2 104利用偏移量106彼此通訊、以及應用程式-2 104利用物理位址204而與核心模組202進行通訊。所述應用程式(在此實例中為應用程式-2 104)亦可利用藉由利用偏移量而產生的直接記憶體存取位址而與硬體元件302直接通訊。
根據一個實施例,本揭露的系統包括一種其儲存有電腦程式的機器可讀取儲存器(machine-readable storage),所述電腦程式具有可由機器執行的至少一個碼段(code section),藉此使所述機器執行如上所述的各步驟。
根據一個實施例,本揭露的系統可達成於硬體、軟體、或硬體與軟體的組合中。儘管本揭露著重於涉及一個電腦系統的單一節點實施方案,然而本揭露亦可適用於其中不同組件橫跨多個互連的電腦系統的分佈式方式。適於施行本文所述方法的任何種類的電腦系統或裝置均適合。硬體與軟體的典型組合可為具有電腦程式的通用電腦系統,所述電腦程式在被加載及執行時控制電腦系統以使所述電腦系統施行本文所述方法。
本揭露的系統可嵌置於電腦程式產品中,所述電腦程式產品包括能夠達成本文所述方法的所有特徵且在被加載於電腦系統中時能夠施行該些方法。在本上下文中,「電腦程式」意指旨在使具有資訊處理能力的系統直接執行特定功能或在以下操作中的一者或兩者之後執行特定功能的呈現任何語言、代碼、或記法(notation)的表達形式的一組指令:轉換成另一語言、代碼、或記法;以不同材料形式進行再製(reproduction)。
儘管已參照某些實施例闡述了本揭露,然而熟習此項技術者應理解,可作出各種改變且可對等效形式進行替代,而此並不背離發明的範圍。另外,可在不背離本揭露的範圍的條件下作出諸多潤飾以使特定情景或材料適應於本揭露的教示內容。因此,旨在使本揭露不僅限於所揭露的特定實施例,而是本揭露將包括落於隨附申請專利範圍的範圍內的所有實施例。
100‧‧‧應用程式/應用程式使用者空間 102‧‧‧應用程式-1 104‧‧‧應用程式-2 106‧‧‧偏移量 110‧‧‧頁面表 200‧‧‧作業系統/核心 202‧‧‧核心模組 204‧‧‧物理位址 210‧‧‧核心轉譯表 300‧‧‧硬體 302‧‧‧硬體元件 VM-X、VM-Y‧‧‧虛擬位址集合
圖1是根據一個實施例的在單一節點中的提供一個可能環境的使用者空間、核心空間、及硬體的概念圖。 圖2A是示出根據一個實施例的應用程式、作業系統、及硬體之間的通訊的示意圖。 圖2B是根據一個實施例的另一示意圖,其示出使用者空間中的多個應用程式及核心中的不同虛擬位址指向共用物理位址進而達成緩衝器共享。 圖3是說明根據一個實施例的應用程式、作業系統、及硬體之間的通訊方法的圖。
100‧‧‧應用程式/應用程式使用者空間
102‧‧‧應用程式-1
104‧‧‧應用程式-2
106‧‧‧偏移量
200‧‧‧作業系統/核心
202‧‧‧核心模組
204‧‧‧物理位址
300‧‧‧硬體
302‧‧‧硬體元件

Claims (12)

  1. 一種使作業系統與應用程式進行通訊的由電腦實施的方法,所述方法包括: 直接自所述應用程式接收物理位址;以及 基於記憶體的所述物理位址確定作業系統層階(OS層階)虛擬位址,以達成資料傳遞。
  2. 如申請專利範圍第1項所述的方法,更包括: 在所述應用程式接收使用者輸入之前,執行記憶體配置並與所述應用程式共享所述配置。
  3. 如申請專利範圍第1項所述的方法,其中在所述作業系統中存在多個模組,所述模組中的每一者均具有其自己的作業系統層階虛擬記憶體,所述方法更包括:容許所有所述模組利用所述物理位址而與所述應用程式直接通訊。
  4. 一種使單一節點中的應用程式、作業系統、及硬體利用緩衝器而彼此通訊的由電腦實施的方法,所述方法包括: 所述應用程式將應用程式層階虛擬位址轉換成物理位址,並將所述物理位址傳送至所述作業系統;以及 所述作業系統利用所述物理位址確定作業系統層階虛擬位址。
  5. 如申請專利範圍第4項所述的方法,其中所述應用程式是第一應用程式,更包括第二應用程式,其中所述第一應用程式與所述第二應用程式利用欲被應用於所述物理位址的偏移量而彼此通訊。
  6. 如申請專利範圍第4項所述的方法,其中所述應用程式利用直接記憶體存取(DMA)位址在無所述作業系統參與的情況下與所述硬體進行通訊,所述直接記憶體存取位址是利用偏移量計算出。
  7. 如申請專利範圍第4項所述的方法,其中所述作業系統在接收使用者輸入之前預配置記憶體緩衝器並提供將物理位址映射至應用程式的途徑。
  8. 如申請專利範圍第4項所述的方法,其中在利用緩衝器在所述應用程式、所述作業系統、及所述硬體之間傳遞資料之前,所述應用程式得到記憶體的所述物理位址及直接記憶體存取位址。
  9. 如申請專利範圍第4項所述的方法,其中在所述作業系統中存在多個模組,且其中所述模組中的每一者利用所述物理位址而與所述應用程式直接通訊並確定自己的作業系統層階虛擬位址。
  10. 一種控制資料傳遞的裝置,所述裝置包括記憶體映射器,所述記憶體映射器使應用程式能夠將所述應用程式的應用程式層階虛擬位址轉換成物理位址並將所述物理位址傳送至作業系統。
  11. 如申請專利範圍第10項所述的裝置,其中所述記憶體映射器使各自具有其自己的應用程式層階虛擬記憶體的不同應用程式能夠僅利用偏移量來彼此通訊。
  12. 如申請專利範圍第10項所述的裝置,其中所述記憶體映射器使所述應用程式能夠利用直接記憶體存取位址及偏移量來與硬體直接通訊。
TW106107679A 2016-04-22 2017-03-09 使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置 TWI738737B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662326537P 2016-04-22 2016-04-22
US62/326,537 2016-04-22
US15/333,010 US10380012B2 (en) 2016-04-22 2016-10-24 Buffer mapping scheme involving pre-allocation of memory
US15/333,010 2016-10-24

Publications (2)

Publication Number Publication Date
TW201738756A true TW201738756A (zh) 2017-11-01
TWI738737B TWI738737B (zh) 2021-09-11

Family

ID=60090251

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106107679A TWI738737B (zh) 2016-04-22 2017-03-09 使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置

Country Status (5)

Country Link
US (1) US10380012B2 (zh)
JP (1) JP6757289B2 (zh)
KR (1) KR20170121045A (zh)
CN (1) CN107305509B (zh)
TW (1) TWI738737B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119637B (zh) * 2018-02-07 2023-04-14 联发科技股份有限公司 硬件控制方法与硬件控制系统
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69524916T2 (de) 1994-10-11 2002-11-14 Sun Microsystems Inc Verfahren und Vorrichtung zur Datenübertragung im Bereich der Rechnersysteme
US20050273571A1 (en) * 2004-06-02 2005-12-08 Lyon Thomas L Distributed virtual multiprocessor
US7590777B2 (en) 2004-12-10 2009-09-15 International Business Machines Corporation Transferring data between system and storage in a shared buffer
US7739474B2 (en) * 2006-02-07 2010-06-15 International Business Machines Corporation Method and system for unifying memory access for CPU and IO operations
US20070255866A1 (en) 2006-05-01 2007-11-01 Eliezer Aloni Method and system for a user space TCP offload engine (TOE)
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table
US8166194B2 (en) 2006-12-13 2012-04-24 Microsoft Corporation Lock-free shared audio buffer
US7979645B2 (en) * 2007-09-14 2011-07-12 Ricoh Company, Limited Multiprocessor system for memory mapping of processing nodes
US8504744B2 (en) 2010-10-28 2013-08-06 Alcatel Lucent Lock-less buffer management scheme for telecommunication network applications
US8909727B2 (en) 2010-11-24 2014-12-09 International Business Machines Corporation RDMA read destination buffers mapped onto a single representation
US9092426B1 (en) * 2011-01-03 2015-07-28 Applied Micro Circuts Corporation Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
US8909894B1 (en) * 2011-03-16 2014-12-09 Tintri Inc. Automatically aligning virtual blocks to physical blocks
US8868867B2 (en) 2011-09-15 2014-10-21 The Regents Of The University Of California Method for reducing latency of accessing data stored in a file system on a computer storage device by caching file system permission information in the computer storage device
CN102402487B (zh) * 2011-11-15 2014-10-22 北京天融信科技股份有限公司 一种零拷贝接收报文的方法和系统
US10210096B2 (en) * 2013-10-01 2019-02-19 Ampere Computing Llc Multi-stage address translation for a computing device

Also Published As

Publication number Publication date
JP2017194964A (ja) 2017-10-26
TWI738737B (zh) 2021-09-11
US10380012B2 (en) 2019-08-13
CN107305509B (zh) 2023-07-04
CN107305509A (zh) 2017-10-31
KR20170121045A (ko) 2017-11-01
JP6757289B2 (ja) 2020-09-16
US20170308460A1 (en) 2017-10-26

Similar Documents

Publication Publication Date Title
TW201738756A (zh) 使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置
US8719464B2 (en) Efficient memory and resource management
CN103942087B (zh) 虚拟机热迁移方法及相关装置和集群系统
US7493465B2 (en) Method and system for extended memory with user mode input/output operations
JP2013546104A (ja) 入出力メモリ管理ユニット(iommu)二層アドレッシング
US20050144422A1 (en) Virtual to physical address translation
TW201732607A (zh) 用於輸入/輸出裝置之可縮放虛擬化的位址轉譯
US20070130372A1 (en) I/O address translation apparatus and method for specifying a relaxed ordering for I/O accesses
JP2017194964A5 (zh)
US10754679B2 (en) Method and apparatus for handling network I/O device virtualization
EP3159802B1 (en) Sharing method and device for pcie i/o device and interconnection system
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
WO2023087778A1 (zh) 窗口信息处理方法、装置、电子设备及存储介质
US20230195633A1 (en) Memory management device
US10331591B2 (en) Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention
US9436395B2 (en) Mechanisms to save user/kernel copy for cross device communications
CN105745640A (zh) 访问文件的方法、系统和主机
US20180285262A1 (en) Techniques for shared virtual memory access protection
US11836517B2 (en) Support for encrypted memory in nested virtual machines
US20220335109A1 (en) On-demand paging support for confidential computing
JP2018502392A (ja) レジスタを備えている複数のスレーブデバイスにネットワークを介してマスタデバイスがアクセスするための方法
EP4016358A1 (en) Storage encryption using converged cryptographic engine
US20190102321A1 (en) Techniques to provide access protection to shared virtual memory
WO2021249030A1 (zh) 随机数序列生成方法和随机数引擎
US10747594B1 (en) System and methods of zero-copy data path among user level processes