[go: up one dir, main page]

TWI293145B - Memory caching apparatus and method, computing system, and machine-accessible medium including data - Google Patents

Memory caching apparatus and method, computing system, and machine-accessible medium including data Download PDF

Info

Publication number
TWI293145B
TWI293145B TW094134048A TW94134048A TWI293145B TW I293145 B TWI293145 B TW I293145B TW 094134048 A TW094134048 A TW 094134048A TW 94134048 A TW94134048 A TW 94134048A TW I293145 B TWI293145 B TW I293145B
Authority
TW
Taiwan
Prior art keywords
context
entry
cache
cached
page
Prior art date
Application number
TW094134048A
Other languages
English (en)
Other versions
TW200619934A (en
Inventor
Ioannis Schoinas
Rajesh Madukkarumukumana
Gilbert Neiger
Richard Uhlig
Balaji Vembu
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 TW200619934A publication Critical patent/TW200619934A/zh
Application granted granted Critical
Publication of TWI293145B publication Critical patent/TWI293145B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

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

1293145 九、發明說明: 【發明所屬技術領織】 發明領域 本發明之貫施例係有關微處理器領域,更特別係有關 5 輸入/輸出I/O虛擬化。 【先前技術】 發明背景 隨著微處理器架構變成愈來愈複雜來支援高效能用 途,I/O管理出現挑戰。 現有I/O管理問職解決技術具有多項缺點。—項技術 係使用唯軟體I/O虛擬化來支援虛擬機器(VM) i/〇。此項技 術之功能、效能、及強勁程度有限。客屬操作系統_及 應用之功能❹監絲(VMM)軟體巾藉仿真的虛擬 元件所支援的功能。客屬1/0操作係、由VMM捕捉,而於遞交 15
基本實體元件硬狀前進行代職取錢㈣真,結果導 4不&。此外’全部或部分硬體元件之元件驅動器係 執行作為娜VMM軟紅—部分,可料平台的整體強勁 2造成不良雜。《特殊轉譯結構的技術只可支援特 件或有限使用权式。—般1/〇記憶體管理單元只能對有 、大小或有限複減的1/0虛擬位址空間提供支援。 氤發明内容】 於—本U揭路-種I置’包含快取結構,用以儲存 的:客屬實體位址之位址轉譯成為—主屬實體位址時使用 快取分錄,該客屬實體位址係與由_輸人/輸出_元 20 1293145 件所請求的一輸入/輸出(I/O)異動處理中由一客屬領域識 別符所識別的一客屬領域相對應;以及一暫存器,其儲存 可識別一失效領域的一失效領域識別符、及指示讓該等所 快取的分錄中具有一標籤的一分錄失效的一指示符。 5 圖式簡單說明 本發明之實施例經由參照後文說明及用來舉例說明本 發明之實施例之附圖將最為明瞭。附圖者: 第1圖為略圖,顯示可實作本發明之一個實施例之系 統。 10 第2圖為略圖,顯示根據本發明之一個實施例之輸入/ 輸出(I/O)元件分派。 第3圖為略圖,顯示根據本發明之一個實施例之使用直 接記憶體存取(DMA)再映射之虛擬化。 第4圖為略圖,顯示根據本發明之一個實施例之I/O位 15 址轉譯。 第5圖為略圖,顯示根據本發明之一個實施例之DMA 再映射結構。 第6圖為略圖,顯示根據本發明之一個實施例之含有共 通暫存器的暫存器組。 20 第7圖為略圖,顯示根據本發明之一個實施例之含有位 址過濾暫存器的暫存器組。 第8 A圖為略圖’顯不根據本發明之一個貫施例之根分 錄0 第8B圖為略圖,顯示根據本發明之一個實施例之上下 1293145 文分錄。 ^囷為略圖’顯示根據本發明之一個實施例之頁表 分錄。 第9A圖為略圖,顯示根據本發明之一個實施例之使用 5多階表之位址轉譯結構。 第圖為略圖,顯示根據本發明之^固實施例之使用 單一表的位址轉譯結構。 • 狄圖為略圖,顯示根據本發明之一個實施例之使用 基本/限㈣譯恤址_賴。 10 第10圖為略圓,知— ^ 颂示根據本發明之一個實施例,含有 絲㈣暫存ϋ㈣存 第11圖為流程圖,顯示根據本發明之〆個實施例以所 快取,結構執行位址轉譯之處理程序。 第12圖為流程圖,顯示根據本發明之一個實施例,獲 • 15得葉頁表分叙處理程序。 鲁 【實施方式】 較佳實施例之詳細說明 本务明之貫施例為一種提供用於直接記憶體存取位址 轉#之丨夬取支援技術。一種快取結構儲存用於客屬實體位 20址之位址轉譯成主屬實體位址之所快取的分錄。客屬實體 位址係與由輪入/輸出(I/O)元件所請求的、於輸入/輸出(I/O) 異動處理之客屬領域識別符所識别的客屬領域相應。一種 暫存益儲存識別失效領域的失效領域識別符、和指示所快 取的为錄中讓一個具有標藏的分錄失效之指示符。 7 1293145 後文說明中陳述多項特定細節。但須瞭解本發明之實 施例可未採用此等待定細節而實施。於其它情況下並未顯 示眾所周知的電路、結構及技術以免混淆對本發明的瞭解。 第1圖為略圖,顯示可實作本發明之一個實施例之系統 5 10〇。系統包括處理器110、處理器匯流排120、記憶體 控制中樞(MCH) 130、系統記憶體140、輸入/輸出控制中樞 (ICH) 150、周邊匯流排155、大量儲存元件/介面no、及輸 入/輸出元件180^ 180κ、及185。注意系統1〇〇可包括比前 述更多或更少的元件。 10 處理器110表示任何型別架構的中央處理單元,諸如敌 置處理器、行動處理器、微控制器、數位信號處理器、超 擴充器電腦、向量處理器、單一指令多重資料(SIMD)電腦、 複雜指令集電腦(CISC)、精簡指令集電腦(幻3〇、極長指 令字(VLIW)、或混成架構。 15 處理器匯流排120提供介面信號,來允許處理器no與 其它處理器或元件例如MCH 130通訊。處理器匯流排120可 支援單處理器架構或多處理器架構。處理器匯流排12〇可為 並列、循序、管線化、異步、同步、或其任一種組合。 MCH 130提供記憶體及輸入/輸出元件如系統記憶體 20 M0及1CH I50之控制及組配結構。MCH 130可整合成為晶 片組’該晶片組整合諸如分別執行模態 '主機至周邊匯流 排介面、記憶體控制等多項功能。MCH 130直接介面或透 過ICH 150而介接至周邊匯流排155。為求请晰,並未顯示 全部周邊匯流排。預期系統丨〇〇也包括諸如周邊元件互連結 1293145 構(PCI)、PCI高速匯流排、加速圖形埠(AGp)、工業標準架 構(ISA)匯流排、及通用串列匯流排(USB)等周邊匯流排。 MCH 130包括直接記憶體存取(dma)再映射電路 135AMA再映射電路135於1/〇異動處理將1/〇元件(例如1/〇 5兀件1801至18〇1"及185中之一者)映射入系統記憶體140之領 域。I/O異動處理典型為DMA請求。DMA再映射電路135提 供硬體支援來輔助或增強1/0元件的分派及/或管理。DMA 再映射電路135也含括於MCH 13〇以外的任何晶片組,諸如 ICH 150。DMA再映射電路135也可部分或全部於處理器15〇 10貫作,或貫作為分開處理器或實作為其它處理器或元件之 分開處理器或共同處理器。 糸統a己fe體140儲存系統碼及資料。系統記憶體“ο典 型係以動態隨機存取記憶體(DRAM)或靜電隨機存取記憶 體(SRAM)貫作。系統記憶體包括實作本發明之一個實施例 15之程式碼或碼片段。系統記憶體包括作業系統(OS) 142、或 OS的一部分或梭心及I/O驅動器145。〇s ι42或1/〇驅動器 145之各元件中之任一者可藉硬體、軟體、韌體、微碼、或 其任一種組合來實作。系統記憶體140也包括其它未顯示的 程式或資料。 2〇 ICH 150有设计來支援I/O功能的多項功能。〖[Η 150也 共同整合成為晶片組,或與MCH 130分開來執行1/()功能。 ICH 150可包括多種介接功能及I/O功能諸如pc〗匯流排介 面來介接周邊匯流排155、處理器介面、中斷控制哭、直接 3己憶體存取(DMA)控制為、、電源管理邏輯、計時哭、夺统 9 1293145 管理匯流排(SMBus)、通用串列匯流排(USB)介面、大量儲 存襞置介面、低接腳數目(LPC)介面等。 大里儲存元件/介面170提供諸如碼、程式、槽案、資 料、應用私式及作業糸統等稽案資訊的儲存。大量儲存元 5件/介面170可介接至雷射光碟(CD) ROM 172、數位視訊/影 音光碟(DVD) 173、軟碟機174、及硬碟機176及任何其它磁 性儲存元件或光學儲存元件。大量儲存元件/介面提供 讀取機器可存取媒體的讀取機構。機器可存取的媒體可含 有電腦可讀取程式碼來執行如後文說明之各項工作。 10 1/0元件18〇ι至18〇κ包括任何I/O元件來執行包括dma 請求之I/O功能。其係介接至周邊匯流排155。1/0元件18〇1 至180κ之實例包括輸入元件(例如鍵盤、滑鼠、軌跡球、指 才示元件)之控制器、媒體卡(例如音訊、視訊、圖形)、網路 卡、及任何其它周邊控制器。I/O元件185係直接介接至ICH 15 150。周邊匯流排丨55可為任一種支援I/O異動處理的匯流 排。周邊匯流排155之實例包括PCI匯流排、pci高速匯流排 (PCI Express)等。 本發明之一個實施例之元件可藉硬體、韌體、軟體或 其任一種組合實作。硬體一詞通常係指具有實體結構之元 20件,諸如電子部件、電磁部件、光學部件、電-光部件、機 械部件、電機部件等。軟體一詞通常係指邏輯結構、方法、 程序、程式、常式、處理、演繹法則、公式、函式、表示 式等。韌體一詞通常係指可於硬體結構(例如快閃記憶體、 唯讀記憶體、可抹除唯讀記憶體)中實作或具體實施的邏輯 1293145 結構、方法、程序、程式、常式、處理、演繹法則、公式、 式表不式等。韌體實例可包括微碼、可寫入控制儲存 : 铋規劃結構。本發明之實施例之各元件當於軟體、 或韌體實作@+ π 5 10 15 20 ^ 二 主要為執行所需工作的碼片段。軟體/韌體 匕Κ際碼來執行本發明之一個實施例所述的操作,或 ι二或模擬該操作之碼。程式或瑪片段可儲存於處理器或 幾。可儲存媒體,或藉於載波具體實施之電腦資料信號發 ^ ^為於傳輪媒體上方藉载波而調變之信號。「處理器可 貝取或可存取媒體」或「機ϋ可讀取或麵媒體」等詞包 *種可儲存、發射或傳輸資訊之任何媒體。處理哭可 讀^體或機器可存取媒體之實例包括電子電路、料體 。己L體7L件、唯讀記憶體(RQM)、快閃記憶體 --情(RF)鏈路等。電腦資料信號可包括任 過諸如電子網路頻道、光纖、魏、電磁波、奸鏈路等的 發射媒體而傳播。碼片段例如可透過諸如網際網路、企業 職等電腦網路下载。機器可存取媒體可於製造物件呈體 實施。機ϋ可存取媒體可包括f料,該資料藉機器存取時, 造成機器執行後文說明之操作。機器可存也 =的程式碼。程式碼可包括機器可讀心 =目 此處「資料」一詞係指可編,於機器可 2之任—型資訊。因此可包括程式、碼、資料、檔 全部或部分本發明之實施例可藉硬體、軟體、或韋刃體 11 1293145 或,、任一種組合而實作。硬亓 可有彼此輕接的數個模組軟體元件或韋刃體元件 磁或任何物理連結而轉接至另體輪組係藉機械、電光、電 式、程序、方法、子程 輪組。軟體模組係藉函 10 參數、變數、及爭論的進送^常式呼叫、跳越、鏈路、 模組。軟體模組係轉接至另能的回送等來輕接至另一 論、指標器等,及/或產生_送2接收魏、參數、筆 標器等。勒體模組係藉前文說明:果、更新後之變數、指 任-種組合輪至另—方法之 可難至另-硬體、軟體 、^體、或動體模組 也可為軟體驅動器或介面來與 彳者拉、、且 動。模組也可σ上執仃的作業系統互 也了為硬體驅動器來組配、設 15 20 體元件以及由硬體元件接收資料。裝置^ 體核'、且、軟體模組、及拿刃體模組之任一餘人。 圖、述為—種通常係以流程 但多項操作可並列進行或同 此外,操作順序可重新排列。當操作完成時處理 :序:束。程序可與方法、程式、程序、製造加 造組裝方法等相應。 衣 一立於準運算平台中,ί/0次系統元件係作為單一領域的 一部分’域#作為練辭理。本㈣之 :=平——: 12 1293145 領域係絶對定義為於平台之分離環境,對領域佈署主 屬實體記憶體的子集。主屬實體記憶體係含括於系統記憶 體140。允許直接存取分派給—領域的實體記憶體之1/〇元 件稱作為該領域的分派元件。領域之分離性質允許藉阻斷 5由非分派給該領域之資源存取其實體記憶體而達成。多個 分開領_转全部丨咖件冑齡派給錢領域(可 能為内設領域)來支援’或經由限制從各個分派的元件只存 取分配給該領域之實體記憶體而支援。 各個領域具有貫體記憶體之視野或實體位址空間其係 10與由實體記憶體之系統觀點不同。領域資源使用來存取其 實體位址空間的位址稱作為其客屬實體位址(GPA)。主屬實 體位址(ΗΡΑ)係指用來存取記憶體之系統實體位址。若一個 領域之GPA被轉移至新ΗΡΑ來存取所分配的系統實體記憶 體’則該領域被考慮為重新定位。若領域的客屬實體位址 I5空間係與系統的主屬實體位址空間相同,或為主屬實體位 址空間的一個子集,則該領域稱作為未經重新定位。GAP 及ΗΡΑ之邏輯分隔’提供加強記憶體保護的基礎。要求實 體位址轉譯及保護機構可讓領域所分派之元件所產生之客 屬實體位址變有效,且轉譯該位址成為有效主屬實體位 20 址。DMA再映射電路135提供此種硬體支援。 欲分派I/O元件給領域,對得自平台全部I/O元件的 DMA請求施加實體位址轉譯及保護。為求簡明,I/O元件 DMA請求的實體位址轉譯功能稱作為DMA再映射。 第2圖為略圖,顯示根據本發明之一個實施例之輸入/ 13 1293145 輸出ι/ο兀件的分派。1/0元件的分派為1/〇元件映射至系統 a己憶體140的領域。映射係由謝八再映射電路135支援。舉 例吕之,兀件A 210映射至系統記憶體14〇之領域丨24〇。領 域1可具有it件A 210之驅動器242。也可使用多於一個驅動 5器。 DMA再映射電路135包括暫存器組22〇、dmA再映射結 構222、及邏輯電路224。暫存器組22〇包括多個暫存器,其 可提供由DMA再映射結構222、邏輯電路224及I/O元件的程 式或驅動器所使用的控制資訊或狀態資訊。DMA再映射結 10構222提供客屬實體位址之再映射或位址轉譯成為適當領 域的主屬實體位址使用的基本結構、儲存元件或表。邏輯 電路224包括執行再映射操作或位址轉譯操作及其它介面 功能的電路。DMA再映射電路135可有不同實作來支援不同 組配結構,也提供不同再映射操作或位址轉譯操作的能力。 15 使用DMA再映射電路135,I/O元件的分派及/或管理提 供多項應用或用途。兩種有用的用途為〇S強勁用途及虛擬 化用途。 OS強勁用途:領域分隔對作業系統軟體有多重用途。 舉例言之,OS可定義領域含有其關鍵碼及資料結構於記憶 2〇 體’而限制系統的全部I/O元件存取本領域。如此允許qs 限制其資料及碼由元件驅動器經由不正確的元件規書彳造成 資料及碼的錯誤fb誤或非期望的說誤,因而改善系統強勁 度。 於另一項甩途中,OS使用領域來更良好管理從老式32 14 1293145 位元PCI元件至高量記憶體(高於4GB)的DMA。其達成方式 係經由分配32位元元件給_個或多個領域,且規卿〇實體 位址轉譯機構來從此等元件再映射祕至高量記憶體。若 無此種支援,軟體須訴諸經由〇S彈回緩衝器進行的資料拷 5 貝。
於較為相關之用途中,經由形成多個領域,且分派一 個或多個I/Otl件給個別領域,〇s可管理1/〇。於此項用途 中,7L件驅動器外顯地校準其1/〇緩衝器與〇s,且〇§分派 此等I/O緩衝斋給特定領域,利用硬體來增強]〇]^八領域的保 4。此種模型中,〇S使用1/〇位址轉譯及保護機構來作為1/〇 記憶體管理單元(I/O MMU)。 虛擬應用·虛擬技術允許於單一系統形成一個或多個 虛擬機裔(VM)。各個VM可利用潛在實體硬體資源來執 行。虛擬機器允許多重作業系統於同一個處理器執行,來 提供諸如系統加強、老式遷移、活性分割、及安全性等效 果。 虛擬架構實質上涉及兩大類軟體元件:(a)虛擬機器監 視器(VMM)及⑻虛擬機器(VM)。VMM軟體層係於最高特 權層面執行,具有基本系統硬體的完整所有權。VMM允許 20 ¥%來共享基本硬體,但又提供VM間的隔離。 I/O虛擬化之唯有軟體方法之限制可經由使用DMA再 映射電路135將I/O元件直接分派給VM來去除。以I/O元件的 直接分派,一個被分派的I/O元件之驅動器只在其被分派的 VM執行,允許與元件硬體的直接互動,而未分接至VMM。 15 1293145 硬體的支援允許DMA再映射,而未對VMM中的元件有特殊 知曉。 於此種模型中,VMM將其本身限於控制功能,外顯執 行I/Otg件分派至VM的設定與拆卸。替代如同1/〇虛擬化之 5准有軟體方法,並非對全部客屬1/〇存取分接至vmm,vmm 要求客屬i/Q存取分接只是為了賴特定㈣,諸如元件組 態空間存取、中斷管理等可能影響系統功能的特殊資源。 為了支援I/O元件的直接分派給VM,乂厘河管理來自1/〇 元件的DMA。VMM可將本身映射至一領域,且將各個. Η)映射至-個獨立領域。1/0元件可分派給各領域,由dma再 映射電路135所提供之實體位址轉譯硬體,可用來只允許來 自I/O元件的DMA顧至分派給其親代領域的實體記憶 體。對於可於實體記憶體重新定位的VM (亦即GpA非與 ΗΡΑ相同),應祕映射電路135可經規劃來從事所需GpA 15 至ΗΡΑ的轉譯。 使用硬體支援I/O元件的分派,VMM實作可選擇只有 軟體之I/O虛擬法與直接元件分派的組合來呈現1/〇元件資 源予VM 〇 第3圖為略圖,顯示根據本發明之一個實施例,使用直 20接記憶體存取(DMA)再映射之虛擬化。虛擬化包括二元件A 3職元件B 32G、DMA再映射電路135、vmm或主屬⑽ 320、VM〇 340、及VMn 360。 兩個兀件A 310及B 312為分別由兩個VM 34〇、及VM 360所支援之1/0元件。DMA再映射電路i35直接將此二元件 16 1293145 映射至個別的VM 340、及VM 360,而未特定知蹺乂]^]\/1或 主屬OS 320 〇 VMM或主屬〇S 320對其本身於其上執行的平台或系 統的基本硬體提供支援。VM 340、及360具有類似架構之 5 元件,但彼此完全隔開。VM 340、及360介接至VMM或主
• 屬OS 320來存取系統硬體。Vm 340包括應用程式342及 344。可支援更多或更少的應用程式。VM 340具有客屬〇S φ 346及元件A驅動器350。元件A驅動器350為可驅動、控制、 介接、或支援元件A 310的驅動器。同理,VM 360包括應用 10程式362及364。可支援更多或更少的應用程式。vm 360具 有客屬OS 366及元件B驅動器370。客屬0S 366可與VM 340 之客屬OS 346相同或扭異。元件b驅動器370為可驅動、控 制、介接、或支援元件B 312的驅動器。 於不含DMA再映射電路135之唯有軟體方法中,元件a • 15及6驅動器35〇及370係駐在VMM或主屬OS 320。此二驅動 • 器之功能受到於VMM中的仿真功能所限。若無DMA之再映 射支援,VMM必須提供仿真/代理快取驅動器,且客屬〇s 將使用VMM決定暴露的該虛擬元件的特定元件驅動器。元 件可為與真正平台元件不相關的元件,或與真正平台元件 2〇相同的元件。後述情況下,VMM代理快取實際元件。此外, 效旎叉限制’原因在於客屬1/〇操作於遞送至基本實體元件 硬體之㈤,被VMM或主屬〇s 320所捕捉且經過代理快取或 仿真。最後,因全部或部分元件A&B驅動器35〇及37〇係作 為MVMM軟體之-部分而執行,平台的整體強勁度可能 17 1293145 受損,特別於驅動器產生錯誤時,摧毀VMM或主屬〇s 320。使用DMA再映射電路135,元件八及6驅動器35〇及別 可與個別I/O兀件310及312直接互自,因而避免全部前述限 制。 , 5 由讓八再映射電路135所提供之dma再映射架構,輔 ♦ 賴Q元件分派至任意、數目的領域。各個領域具有實體位址 空間可能與系統實體位址空間不同。DMA再映射提供得自 φ 1/〇兀件之DMA請求中的客屬實體位址(GPA)轉換成為分配 給其領域的相應主屬實體位址(HPA)。 1〇 》了支援此點,平台可支援-個或多個I/O實體位址轉 #硬體單元。各_譯硬體單元錢源自於其硬體範圍内 部的I/O異動處理的再映射。例如桌上型晶片組實作可暴露 單一DMA再映射硬體單元,該〇]^入再映射硬體單元轉譯於 記憶體控制器中樞(MCH)元件的全部1/〇異動處理。有一個 15或多個核心晶片組元件之伺服器平台可支援於各個元件之 春獨立轉譯硬體單元,各個轉譯硬體單元各自轉譯源自於其 I/O階層組織内部的DMA請求。該架構支援組態,該組態中 依據軟體規劃而定,硬體單元可共享系統記憶體内部的相 同轉譯實料結構、或使用獨立結構。 2〇 晶片組DMA再映射電路135處理DMA的請求的位址作 為客屬實體位址(GPA)。DMA再映射電路135可應用位址轉 澤功此予輸入的位址,來將談位址轉成主屬實體位址 (ΗΡΑ),隨後才進行進一步硬體處理,諸如窺探處理器快 取,或進送至記憶體控制器。 18 1293145 於虛擬上下文中,由DMA再映射電路135所實作之位 址轉譯功能係依據VMM所支援之實體記憶體管理來決 定。舉例言之,於軟體從事主屬實體記憶體分派為連續區 之用途中,GAP轉換為ΗΡΑ之DMA轉譯可為簡單偏位加 5法。於VMM以頁解析度管理實體記憶體之用途中,DMA 再映射電路135可使用駐在記憶體之位址轉譯資料結構。 弟4圖為略圖’顯不根據本發明之一個實施例之I/O位 址轉譯。I/O位址轉譯包括兩個I/O元件i 41〇及2 412、DMA 再映射電路135、實體記憶體420、及客屬景觀440。 10 I/O元件1 410及2 412分派給二分開領域。該等I/O元件 執行1/0請求或〇乂八請求至位址〇]\4八_八〇11。〇]\4八再映射電 路135將此二元件映射至分派於實體記憶體420之相應領 域。實體記憶體420分配領域1 422及424、及領域2 426及 428。可分配更多或更少的記憶體區段給此等元件。領域1 15 422及424係與元件1 410相應,而領域2 424及428係與元件1 412相應。第4圖所示實例中,元件1 410係映射至領域1 422,而元件2412係映射至或分派至領域2 428。 客屬景觀440為從客屬I/O的邏輯景觀。包括領域1 442 及2 444。領域1 442係對應於實體記憶體420中的兩個領域1 2〇 422及424。領域2 444係與兩個領域2 426及428相應。由客 屬景觀440,只有一個領域係與一個I/O元件相應。得自元 件1 410之DMA_ADR位址係映射至位於領域1 442由0至L 的位址空間内部的DMA—ADR1。同理,得自元件2 412之 DMA_ADR位址係映射至位於領域2 444由0至K的位址空 19 1293145 間内部的DMA_ADR2 〇 負責領域的形成與管理的軟體對二領域分派實體記憶 體420,且於DMA再映射電路135設定GPA至ΗΡΑ位址轉譯 功能。DMA再映射電路135將元件410及412所產生之GPA 5 轉成為適當的ΗΡΑ 〇 第5圖為略圖,顯示根據本發明之一個實施例之dma 再映射結構222〇DMA再映射結構222接收來源識別符510, 包括根表520、多個上下文表530〇至53〇u,及多個位址轉譯 結構540〇至540v。DMA再映射結構222接收來源識別符51〇 10及得自I/O元件之客屬實體位址,且將該客屬實體位址轉譯 成為於所分派領域中的主屬實體位址。轉譯可使用排列成 階層組織方式的轉譯表進行。轉譯機構始於根表520,行進 通過上下文表530〇至53〇u,及位址轉譯結構540G至540v。 出現於DMA再映射電路135的I/O異動處理的請求器身 1S分決定源起的元件,以及該源起1/〇元件所被分派的領域。 來源識別符510為識別I/O異動處理之來源器的屬性。DMa 再映射電路135可以特定實作方式來決定異動處理的來源 識別符510。舉例言之,若干1/〇匯流排協定可提供源起元 件身分作為各個I/O異動處理之一部分。其它情況下,諸如 20用於晶片組積體元件,來源識別符510可基於晶片組的内部 實作而暗示。 用於PCI高速匯流排元件,來源識別符510係映射至提 供作為I/O異動處理之標頭一部分的請求器識別符。元件的 凊求器識別符係由藉組態軟體所分派的ρα匯流排/元件/功 20 1293145 能號碼組成,且可獨特識別初始化〗/〇請求的硬體功能。一 個實施例中,來源識別符5)0包括功能號碼512、元件號碼 514及匯流排號碼516。於第5圖所示實例中,功能號碼512 為K位元寬,元件號碼514為L位元寬,及匯流排號碼516為 5 Μ位元寬。匯流排號碼516識別產生I/O異動處理之匯流排。 元件號碼514識別於所識別之匯流排上的特定元件。功能號 碼512識別由I/O元件所請求的特定功能。來源識別符51〇用 ^ 來檢索或查詢根表520及上下文表530〇至53〇υ。第5圖所示 實例中,使用匯流排〇及匯流排m進行兩次l/ο異動處理。 10 對PCI高速匯流排元件,根表520儲存由來源識別符51〇 檢索的根分錄525〇至525M_i或來源識別符51〇之匯流排號碼 516。根分錄係作為頂層結構,來將特定匯流排的元件映射 至其親代領域。根分錄0 525〇係與使用匯流排〇之i/q異動處 理相應。根分錄m 52(^係與使用匯流排瓜之1/〇異動處理相 * 15應。根分錄〇 及520m分別係指向上下文表$地及。 % 一個實施例中,此等分錄對相應之上下文表提供基礎位址。 上下文表530〇至53〇u儲存由根分錄所參照之上下文分 錄535k。上下文分錄535k將I/O元件映射至其相應的領域。 元件號碼514及功能號碼512用來獲得與1/〇異動處理相應 20白勺上下文分錄。—個實施例+,其形成指標來指向或參照 由相應之根分錄所參照的上下文表。有2m*2l*2k或2m+l+k 上下文分錄。一個實施例中,κ=3、L4及M=8,共獲得64K 分錄,組織成2M (28=256)上下文_分錄表。第4圖所示實例 中,兩次I/O異動處理的兩個上下文分錄分別為上下文表 21 1293145 53〇〇之上下文分錄535g及上下文表53〇m之上下文分錄 535m。上下文表535()及53&分別指向位址轉譯結構54〇〇及 540m 〇 位址轉譯結構540〇至MOv使用與I/O異動處理的客屬實 5體位址來對主屬實體位址提供位址轉譯。各個位址轉譯結 構54〇0至54〇v可為分別使用多表、單表、及基本/限制轉譯 等三種轉譯機構相應的多表550、單表56〇或基本/限制 570。後文說明中,使用4KB之規則頁大小。如熟諳技藝人 士已知,也可使用任何其它的尺寸。 1〇 為了提供DMA再映射電路135之軟體彈性控制,DMa 再映射電路135有多個含於第2圖所示暫存器組22〇的暫存 暫存為組220係經由基礎位址(BAR)暫存器而位於主屬 實體位址空間。轉譯硬體BAR暫存器以實作相依性方式暴 路於权體。可暴露作為晶片組積體元件之一(諸如記憶體控 5制1^元件)作為pci組態空間暫存器。一個實施例中,bar 暫存器提供最小4K位址窗。暫存器組22〇的暫存器有多個欄 位。攔位可被宣告或被否認。當攔位只由單一位元組成時, 旦告暗示該位元被設定為確定邏輯態(例如TRUE,邏輯U, 而否認暗示該位元被復置成為與宣告態互補的經界定的邏 輯態(例如FALSE,邏輯0)。後文中,宣告態或否認態的使 用為任意。一個欄位可被宣告來指示第一態,而被否認來 指示第二態,反之亦然。 暫存器的攔位可藉DMA再映射電路135及/或藉軟體規 、初始化或組配。也可與特殊硬體電路或藉資料結構、 22 1293145 /以或方法等執行的功能相應。後文中,欄位被分 、且成為暫存器。τ列暫存器中之欄位或位元的分組、样式 7、、或組織僅供舉例說明之用。可❹其它方式來分、:、 5 =式化或組織此等攔位。攔位也可於多於一個暫存器複 5製。暫存器可有比較所述攔位更多或更少的欄位。此外, 暫存盗可以多種方式實作’包括實作為儲存元件或記憶體 元件。 # 第6圖為略圖,顯示根據本發明之一個實施例之含有共 通暫存器的暫存器組。通用暫存器包括記憶體型別報告暫 10存裔(MTYPE—REG) 610、全部通用暫存器(GCMD—REG) 620、根分錄表位址暫存器(RTADDR一reg) 63〇、及内設上 下文暫存器(DEF_REG) 640 〇 MTYPE—REG 610報告轉譯資料結構之記憶體型別。 MTYPE—REG 610包括錯誤對數記憶體型別(FMT)攔位 15 612、頁表記憶體型別(PMT)攔位614、上下文分錄表記憶體 • 型別(CMT)攔位616、及根分錄表記憶體型別(RMT)攔位 618。 FMT欄位612指示錯誤對數區是否可快取。當否認時, 4曰示錯誤對數區無法被快取。當宣告時,指示錯誤對數區 20可於可快取之區。PMT攔位614指示頁表是否為可快取。當 否認時,指示頁表係於非可快取之記憶體區。當官告時, 指不頁表係於可快取區。CMT搁位616指示上下文表是否為 可快取。當否認時,指示上下文表係於非可快取之記憶體 區。當宣告時,指示上下文表係於可快取區。RMT攔位618 23 1293145 指不根表疋否為可快取。當否5忍時’指不根表係於非可^ 取之記憶體區。當宣告時,指示根表係於可快取區。 GCMD—REG 620控制轉譯行為。包括轉譯硬體可作用 (HE)欄位622及寫入緩衝器清理(WBF)攔位624。 5 HE欄位622為讓轉譯硬體可發揮作用或無法發揮作用 的軟體可規劃控制欄位。當否認時,指示讓轉譯硬體無、、套 發揮效用。當宣告時,指示讓轉譯硬體發揮效用。當更新
此欄位時,軟體將回讀 態0 檢查此欄位來驗證可作用/無作用 10 WBF欄位624用來清理晶片組内部寫入緩衝器。如此確 保對上下文表或頁表的任何更新不會被保持於任何内部寫 入張貼緩衝器。軟體宣告此欄位來發出寫入緩衝器清理命 令。邏輯電路224否認此點,來提供寫入缓衝器清理完成的 指示。軟體將回讀,且檢查欲否認之欄位來驗證清理的完 15 成。 RTADDR—REG 630設定記憶體駐在根表的基礎位址。 軟體係經由最末寫入下雙字(DWORD)來規劃此暫存器。包 括根表基礎位址(RTA)欄位632及可作用上下文分錄(ece) 欄位634。RTA攔位632係指向系統記憶體中與頁校準的常 20規尺寸的根表底部。常規尺寸可為任一種方便的預先定義 尺寸。一個實施例中,常規尺寸為4KB。DMA再映射電路 135可只實作最低有效N位元,此處n為(主位址寬度」12)。 欄位之其餘部分可當作為唯讀來處理。ECE攔位634為控制 攔位,俾讓上下文分錄的使用可作用或無作用。如此並不 24 1293145 影響内设上下文的使用。當否認時,指示讓上下文分錄無 法使用。DMA請求係基於内設暫存器之規劃來處理。當宣 告時,指示允許使用上下文分錄來處理DMA請求。根表及 上下文表係設定於記憶體,根表之基礎設於上方位元(例如 5 位元12至63)。 DEF—REG 640規劃内設上下文。於上下文表之各個上 下文分錄規定如何從特定元件管理DMA請求。内設上下文 表示由DMA再映射電路135所管理的元件的内設領域初步 被分派,直到軟體規劃元件至領域之映射表,且允許查詢 1〇此等表為止。舉例言之,於系統内的I/O元件的熱插拔,若 此元件之上下文並未事先藉軟體規劃,則該元件被分派至 内設領域,直到軟體明白分派該元件至另一領域為止。内 設上下文係經由DEF_REG 640規劃。 轉譯硬體檢查於DMA請求的來源識別符如後。若上下 15 文分錄已經(例如經由通用暫存器)可發揮效用,則於輸入 DMA請求中的來源識別符被用來查詢其相應之根分錄,以 及經由該根分錄來查詢上下文分錄。此種情況下,DMA係 根據根分錄及上下文分錄之規劃來處理。若上下文分錄未 能發揮作用,則DMA請求係根據DEF—REG 640處理。 2〇 類似其它上下文分錄,内設上下文可經規劃來執行特 定型別的轉譯功能,諸如使用轉譯結構之阻擋、通過、位 址過濾、位址轉譯等。 DEF—REG 640包括親代(P)欄位642、單階/多階表(M) 欄位650、位址空間根(ASR)欄位654、客屬位址寬度(GAW) 25 1293145 欄位656、錯誤處理攔位660及領域識別符(DID)欄位662。 典型地,P欄位642及Μ攔位650為1位元指標器。 處理異動處理時須經常性檢查Ρ欄位642。當否認時, 指示經由此上下文分錄的全部異動處理皆被阻擋。當宣告 5 時,指示基於其它欄位之規劃,經由此上下文分錄進行異 動處理。 Μ欄位650用來指示是否使用多階表轉譯。當宣告時, 其指示用於本上下文分錄位元的單階頁表須用來檢索於頁 表的分錄。當否認時,指示用於本上下文分錄的多階頁表 10 須用來查詢根表的分錄。 ASR欄位654為位址空間根之尺寸經校準的主屬實體 位址。當使用連續位址空間時,此欄位含有該領域之實體 位址空間的基礎位址。當使用頁表(單階或多階)時,此攔位 係指向根表基礎。 15 GAW;f闌位656唯有對載明單階或多階頁表的上下文分 錄才有效。當使用多階頁表時,本攔位指示調整後之客屬 位址寬度(AGAW)須由DMA再映射電路丨35用於表的行 進。此欄位載明之值為DMA再映射電路135所支援且報告於 能力暫存器的AGAW值。能力暫存器為指示DMA再映射電 2〇路135所支援的能力的暫存器。當使用單階頁表時,本搁位 指示領域的客屬位址寬度。本攔位載明之值為介於單階頁 表之最小GAW與能力暫存器中由DMA再映射電路出所竣 告之MGAW值間之數值。 SDMA再映射電路丨35檢測得本攔位之值並未由基本 26 1293145 貫作所支援,則經由本上下文分錄的全部DMA請求皆被阻 擋’導致轉譯錯誤結果。經由本上下文分錄處理的任何dma 請求,其存取高於2gaw-1 (此處GAW為本攔位數值)之客屬 實體位址受阻擋,結果導致轉譯錯誤。 5 FP欄位660可讓藉0]^八請求經上下文分錄處理的錯誤 允許作記錄或不記錄。 DID欄位662指示内設領域之領域識別符。 felL過濾: 基於多階頁表結構之位址異動處理,經由允許軟體於 1〇常規(例如4KB)頁解析度來管理記憶體,而提供最大彈性。 但多階頁表結構由於要求硬體通過頁表,因而招致大部分 位址轉譯潛伏期延遲。即使經由硬體實作,利用轉譯快取 來減少轉譯之額外管理資訊量,於1/0轉譯旁侧匯流排(TLB) 失疾招致的頁通過潛伏期延遲,可能不適合用於某些型別 之ho資訊流量。舉例言之,使用異步通道的得自pc〗高速 匯流排元件(諸如高解析度音訊)之DMA請求、及某些晶片 、組積體元件如積分圖形不會招致不確定的DMA再映射潛伏 期延遲。 用於可能受DMA再映射潛伏期延遲造成負面影響的 支援I/O元件的硬體實作,架構定義經由DMA位址過滤(替 代仇址轉譯)來將各個元件分派給非再度定位的領域。非再 度定位的領域乃其客屬實體位址空間屬於系統的主屬實體 址空間之子集的一個領域。位址過濾硬體保有軟體彈性 來嘗理常規大小(例如4KB)頁大小的主記憶體,而只帶來極 27 1293145 小的額外管理資料量。 支援位址過濾係由D Μ A再映射電路丨3 5經由於暫存器 組220的能力暫存器所報告。諸如未支援異步通道而可定址 來自全部元件的位址轉譯DMA請求的硬體實作並未被要求 5來支援位址過濾。若平台組態要求多個DMA再映射硬體單 元,諸如每個晶片組元件或PCI高速匯流排根埠有一個 DMA再映射硬體單元,且若其中一個單元要求位址過濾支 援’則係由全部硬體單元所支援。 用於位址過濾,分派給非經再定位之領域的記憶體頁 10係透過記憶體駐在表而指示,如第7圖所示,該記憶體駐在 表稱作為過濾位元映射表。該架構只支援單一非再定位領 域,因此每個所報告的DMA再映射硬體只支援單一過濾位 凡映射表指標器。過濾位元映射表的所在位置之大小如第7 圖所示,係經由位址過濾基礎暫存器及大小暫存器而規 15劃。位元映射表之大小係運算為(4KB*2S),此處3為經規劃 成為位址過濾大小暫存器之數值。表中的各個位元表示4尺 主頁,第一位元表示第一4K主屬實體位址空間。過濾位元 映射表之最小大小為4KB,其映射主記憶體的第— 128mb 0 2〇 ^ /、DMA请求只能藉硬體位址過濾的元件係由平么勤 體報告給軟體。此等元件之上下文分錄的任何規劃必須確 保其係設定至位址過濾器,而非設定至區塊,來允許作為 通過,或位址轉譯DMA請求。 其DMA請求也可經位址轉譯或經過位址過遽的ι/〇元 1293145 件可經由規劃相應的上下文分錄,指示位址過濾,來分派 至非再定位領域。同理,經由規劃内設上下文暫存器指示 位址過濾,可讓非再定位領域與内設領域相同。 若上下文分錄經規劃來指示位址過濾,則其餘上下文 5分錄欄位(有效攔位、存在攔位及通過欄位以外的攔位)由 DMA再映射電路135忽略。 經由载明位址過濾的上下文分錄所處理的D Μ A請求 由DMA再映射電路135操作如後: 1· DMA請求經過確認有效,來確保其經由普通晶片組 10 DMA位址解碼邏輯存取記憶體。若DMA請求係以同層級對 等關係解碼,則該DMA請求被阻播。 2·若DMA請求將送至記憶體,則DMA請求鎖定目標的 記憶體所在位置經確認有效於4反頁内部。 3·若通過前兩項檢查,則DMA請求中的GpA經過確認 I5係於非再定位領域的位址空間内部。任何嘗試存取高於位 址(巧+乂1)的記憶體位置的DMA請求經過阻擋,此處p為 過濾位元映射大小暫存器中所規劃的數值。 4·若前述全部檢查皆通過,則DMA再映射電路m查 询位兀欄位,該位元攔位係與過濾位元映射表中於位元偏 2〇位[GPA»%,由DMA請求所存取的該頁相應。若該位元 被清除,則DMA請求如常處理。若該位元經設定,則應八 請求經過阻擋。 第7㈣略圖’顯示根據本發明之—個實施例之含有位 址過遽暫存器的暫存器組220。暫存器組22〇包括過遽大小 29 1293145 暫存器(FSIZE REG) 710、過濾基礎暫存器(fbase_reg) 720、過濾控制暫存器(FCTL一REG) 730、及過濾錯誤暫存 器(FFLTJRJEG) 740。 FSIZE—REG 710指示位址過濾位元映射表之大小。若 5 DMA再映射電路135未支援位址過滤,則此暫存器被當作保 留處理(例如寫入經忽略,而讀取返回〇)。其包括過濾表大 小(FTS)攔位712及過濾位元映射記憶體型別(bmt)攔位 715。BMT攔位715指示位元映射區是否為可被快取。當否 認時,指示位元映射區未被快取。寫入至此欄位被忽略。 10 當宣告時,指示位元映射區可於可快取區。ftS欄位712指 示位址過濾表的大小。該大小係由下式算出。
TableSize=4K*2FSIZE-REG位元組。例如 〇〇〇〇h : 4KB 表支援 128MB記憶體,〇〇〇lh: 8KB表支援256MB記憶體,〇〇〇5h : 128KB表支援4GB記憶體等。 15 FBASE—REG 720保持指標器指向位址過濾位元映射 表的基礎位址。若DMA再映射電路135並未支援位址過渡, 則此暫存器被當作為保留處理(例如寫入經忽略,而讀取返 回〇)。其包括過濾表基礎(FTB)欄位725。FTB攔位725為鎖 定記憶體中位址過濾表的基礎位址的指標器。該表之大小 2〇 經過校準。最小的表大小為128K支援4GB的定址能力。 FCTL_REG 730控制位址過濾位元映射表的快取。若 DMA再映射電路135不支援位址過濾,則此暫存器被視為保 留處理(例如寫入經忽略,而讀取返回0)。FCTL_REG 730 包括過濾硬體致能(FHE)欄位732、寫入緩衝器清理(WBF) 30 1293145 欄位734、過濾快取無效(FCI)攔位736、及過濾表保護(FTP) 棚位738。FHE攔位732為讓位址過濾硬體可作用或無法作 用的可軟體規劃控制欄位。當否認時,指示讓位址過濾硬 體不發揮作用。任何經過位址過濾的DMA請求被當作為通 5過處理。而當被宣告時,指示位址過濾硬體可發揮作用。 過濾基礎暫存器及過濾大小暫存器係於讓位址過濾硬體可 發揮作用前經由本欄位來規劃。WBF欄位734用來清理晶片 組内部寫入緩衝器。如此進行來確保過濾位元映射表的更 新並未保持於任何内部寫入告示緩衝器。軟體宣告本攔 10位’發出寫入緩衝器清理命令。DMA再映射電路135否認而 提供寫入緩衝器清理完成的指示。軟體可被回讀,檢查欲 否認欄位來證實清理完成。FCI欄位736讓位址過濾、映射快 取失效。軟體宣告此欄位來請求位址過濾快取失效。DMA 再映射電路135否認來指示失效完成。軟體可被回讀,檢查 15 欲否認的此欄位來驗證失效的完成。FTP欄位738指示保護 位址過濾位元映射區。當FTP欄位738由軟體宣告時,硬體 開始保護位址過濾位元映射區不被DMA存取。軟體係讀取 此搁位’且檢查欲宣告的此棚位’確認位址過濾、位元映射 區受到保護。當此欄位由軟體否認時,DMA再映射電路135 2〇 停止保護位址過遽位元映射區不被DMA存取。 FFLT_REG報告由位址過瀘硬體檢測得之錯誤。若 DMA再映射電路135並未支援位址過濾,則此暫存器被視為 保護處理(例如寫入經忽略,且讀取返回〇)。FFLT REG包 括錯誤位址(FA)攔位742、型別(T)欄位744及有效(V)欄位 31 1293145 746。FA欄位742為藉錯誤DMA請求所存取位置之圖框位 址。T攔位744指示錯誤DMA請求之記憶體存取型別。當否 認時,其指示DMA寫入。當宣告時,其指*DMA讀取請求。 V欄位746指示錯誤DMA請求之頁圖柩位址是否經過問 5鎖。當被宣告時,錯誤DMA請求之頁圖框位址係閃鎖於錯 誤位址攔位,而不再進一步閃鎖位址過濾錯誤位址。軟體 須經由寫入而外顯否認此欄位,讓位址過濾錯誤記錄可再 運作。 弟8 A圖為略圖’顯示根據本發明之一個實施例之根分 10錄520。根分錄520包括一存在(P)欄位81〇及一上下文分錄表 指標器(CEP)欄位815 〇 P搁位810‘示疋否存在有根分錄。當否認時,表示根 分錄不存在故不應使用根分錄。DMA再映射電路135經由此 根分錄處理DMA請求錯誤。當宣告時,指示存在有根分錄, 15 可用來處理異動處理。 CEP欄位815係鎖定本匯流排之上下文表之指標器。上 下文表之大小為4KB,經過頁校準。 苐8B圖為略圖,顯示根據本發明之一個實施例之上下 文分錄535。上下文分錄535包括存在(P)攔位822、多階(M) 20欄位83〇、位址空間根(ASR)欄位834、客屬位址寬度(GAW) 攔位836、錯誤處理(FP)欄位840、及領域識別符(DID)欄位 842。上下文分錄535具有類似第6圖所示内設暫存器 DEF—REG 640之攔位。典型地,p攔位822及Μ欄位830為一 位元指示符。 32 1293145 P攔位822、Μ攔位830、ASR欄位834、及GAW欄位836 分別係類似第6圖所示内設暫存器(DEFJRJEG 640)的P攔位 642、Μ欄位650、ASR欄位654、及GAW欄位656。 DID欄位842為本上下文分錄所屬領域的識別符。軟體 5 須確保全部元件使用相同的頁表結構,因而讓位址經過相 同轉譯,於上下文分錄中有相同領域識別符。DMA再映射 電路135可使用該領域識別符來於使用快取支援時標示其 被快取的分錄。 弟8C圖為略圖’頒不根據本發明之一^固貫施例之頁表 10分錄(PTE) 565。PTE 565包括可讀取(R)欄位85〇、可寫入(W) 欄位852、相干性(C)攔位854、超頁(8卩)欄位856、及位址 (ADDR)欄位860。注意可定義比此等欄位更多或更少的攔 位0 R攔位850指示一頁是否可用於〇μΑ讀取。當否認時, 15表不該頁不可存取〇¥八讀取請求。經由本頁表分錄處理的 DMA讀取請求被阻擋。若讓錯誤報告可運作,則產生轉譯 錯誤。當宣告時,表示該頁可存取DMA讀取請求。 W攔位852指示該頁是否可用於DMA寫入。當否認時, 表不該頁不可存取DMA寫入請求。經由本頁表分錄處理的 20 DMA寫入請求被阻⑮。若讓錯言吳報告可運作,則產生轉譯 錯誤。當宣告時,表示該頁可存取DMA寫入請求。 c攔位854制存取經轉譯之主4實體位址是否為相干 性。當否認時,指示DMA存取經轉譯之主屬實體位址,係 遵於I/O異動處理中載明的相干性屬性。舉例言之
,PCI-X 33 1293145 或PCI高速匯流排請求附有「無窺探」屬性設定存取經轉譯 之主屬實體位址,而未被窺探。當宣告時,表示DMA存取 轉澤後之主屬貫體位址係以相干性處理。於下述情況下, 軟體須雄定此攔位被當作保留(〇)處理··全部頁表分錄中, 5若DMA#映射電路135並未支援c攔位所宣告的設定值(如 能力暫存器的報告),且於非葉頁表分錄,sp搁位係被否認。 SP攔位856對DMA再映射電路丨35指示此乃葉頁表分 錄及完整頁行進。當否認時,表示持續頁行進,但使用下 個層級表。t宣告日夺,表示停止表的前進,用於頁前進 10的客屬實體位址中的未使用的下位元、連同設於ADDR搁位 860的頁基礎位址之上位元,來形成主屬實體位址。 再映射電路135只評估頁表分錄中、與能力暫存器報告的所 支援的超頁大小相應的S P攔位8 5 6。軟體須將此攔位視為保 留(例如0)處理於:(1)於多階頁表的4KB葉頁表分錄,(2) 15於多階頁表中,與未由DMA再映射電路135所支援的超頁大 小相應的非葉頁表分錄,以及(3)單階頁表中的頁表分錄。 若屬葉節點,則ADDR欄位860含有頁圖框的主屬實體 位址。否則含有下一階頁表的指標器。此攔位係經過大小 校準。 20 x 左意可定義額外欄位’來進一步決定位址轉譯機構的 屬性特徵。例如可定義下列屬性:基本/限制屬性來讓基本 7限制轉譯可運作;形成屬性來指示於多階表轉譯中的第一 /自頁表的大小;以及通過屬性來指示是否允許通過I/O異動 處理而未轉譯。 34 1293145 位址轉課機槿: 為了支援由軟體所支援的實體記憶體管理之各種解析 度,DMA再映射架構定義三型位址轉譯結構。晶片组實作 可支援此等轉譯結構巾之-❹者,且透職力暫存器報 5告所支援的型別。此等機構提供各種成本、複雜度、與效 能間的折衷。用於支援多重轉譯結構之實作,各個上下文 分錄可規劃來使用不同的轉譯結構型別。 疋義下列位址轉譯結構:(1)多階頁表結構來經由多階 頁大小之頁表(各自於頁大小區域内)來允許該區之頁解析 10度分配;(2)單階頁表結構來經由單一接續頁表而允許多區 的頁解析度分配;以及(3)基本/限制轉譯結構來讓連續區分 配至多個領域。前述轉譯結構中之任一者可選定為内設或 為選擇性。 弟9A圖為略圖’顯示根據本發明之一個實施例,使用 15多階表之位址轉譯結構540。位址轉譯結構540包括上下文 分錄535、經調整的客屬實體位址(AGPA) 910、第一階頁表 920、中間表930、葉節點表940、及頁950。多階表包括排 列成為階層組織方式的多個轉譯表。 於上下文分錄535的ASR欄位對第一階頁表92〇提供基 2〇礎位址。AGPA 910包括偏位攔位912、葉節點頁表攔位 914、中間頁表欄位916、及第一階頁表欄位918。須注意, 於多階頁表的階數依據AGPA 910的寬度、記憶體空間、記 憶體管理策略、字長度、及任何其它實作因素可為任何數 目' 35 1293145 第一階頁表攔位918組合由ASR提供的第一階基礎位 址,來指示第一階頁表92〇。一個實施例中,各個分錄為8 位兀組,第一階頁表攔位918藉位移器922位移3位元,然後 藉加法為924加至第_階基礎位址,來提供第一階指數給第 5 -階頁表92〇。加指數的第一階頁表分錄對中間階頁表謂 提供中間基礎位址。 巾間頁表攔位916組合該中間基礎位址來指示中間階 • 頁表93〇°由於各個分錄為8位元組,第一階頁表欄位918藉 位移裔932而位移3位元,然後藉加法器934加至中間階基礎 1〇位址,來提供中間階指數給中間階頁表93〇。加指數的中間 階頁表分錄提供葉節點基礎位址給葉節點頁表940。 葉節點頁表攔位914組合葉節點基礎位址來檢索葉節 ”、、έ頁表940目各個分錄為8位^,故葉節點頁表欄位则 藉位移斋942而位移3位元,然後藉加法器944加至葉節點基 -is礎位址,來提供葉節點指數給葉節點頁表94〇。加指數的葉 修 節點頁表分錄對頁95〇提供主基礎位址。 。'後偏位912與主基礎位址組合來於頁95〇產生主屬實 體位址。 夕^頁表允許軟體於頁(例如4Κ)解析度管理主屬實體 2〇記憶體,且以頁目錄及頁表來設定階層結構。邏輯電路224 實作頁前進邏輯,使用於DMA異動處理所提供的⑽來通 k 構。於dma請求中需要通過來轉譯gpa的最大頁 表階數為相應上下文分錄的客屬位址寬度之函數。軟體可 透過能力暫存器來查詢由DMA再映射電路135之指定硬體 36 1293145 實作所支援的最大客屬位址寬度。 設P為常規頁大小。設Q為每個分錄之位元組數目。設 P及q為2p=P及2q=Q。一個領域之經調整的客屬位址寬度 (AGAW)為調整後之客屬位址寬度(GAW)值,故(AGAW-p) 5 為(p-q)之倍數。AGAW測定如後, R=(GAW-p)MOD(p-q);
If(R==0){ AGAW=GAW ; } else { 10 AGAW=GAW+(p-q)-R ; } 例如假設P=4K及Q=8,則p=12及q=3。分配記憶體之 2GB給一領域,該領域具有GAW=31。AGAW運算為: R=(31-12) mod 9=1 15 AGAW=31+9-l=39 調整後的客屬位址寬度(agaw)指示頁前進的階數。 DMA再映射電路13 5支援特定的AGAW,相應的GAW係等 於主屬位址寬度。當使用多階頁表用於一個領域時,軟體 如前文說明來運算AGAW。當設定多階頁表結構時,軟體 2〇使用agaw。對分派給此領域的全部元件,於上下文分錄 規劃該領域的GAW及AGAW 〇 DMA再映射電路135也支援較小的經調整的客屬位址 覓度。可透過能力暫存器來報告所支援的經調整的客屬位 址寬度。當設定多階頁表用於一個領域時,軟體須確保其 37 1293145 使用由潛在硬體實作所支援的AGAW。軟體也對分派給此 領域的各個元件規劃領域的AGAW於上下文分錄。 透過載明多階位址轉譯的上下文分錄所處理的DMA 請求係由DMA再映射電路135處理如後: 5 1 ·於01^八請求中所載明的〇?八/長度組合係根據〇撾八 再映射電路135是否支援頁邊界的交越而使用。若DMA再映 射|路135支援交越頁邊界的DMA請求,且GPA/長度組合 指示DMA請求交越頁邊界,則由DMA請求鎖定目標的各個 頁區係獨立經過位址轉譯。若DMA再映射電路135未支援交 10越頁邊界的DMA請求,而GPA/長度組合指示DMA請求交越 頁邊界,則導致位址轉譯錯誤。 2·若於上下文分錄規劃的GAW攔位並非由DMA再映 射電路135所支援的經調整的客屬位址寬度(報告於能力暫 存态)’則该DMA請求被阻擒,結果導致位址轉譯錯誤。 15 3· DMA請求中的GAP經確認係於該元件所被分派的 該領域之客屬實體位址空間内部。任何嘗試存取位址px—i) 上方的記憶體位置的DMA皆被阻擋,此處χ為規劃於用來 處理本DMA請求的上下文分錄中的客屬位址寬度。 4·若前述檢查為成功,則DMA請求的GpA被調整為义 位元,來形成調整客屬實體位址(AGPA),此處又為規劃於 用來處理本DMA請求的上下文分錄的客屬位址寬度。 AGPA的DMA請求或被阻擋,或根據多階頁表結構的規劃 被轉譯成為有效ΗΡΑ。 5. DMA再映射電路m執行步驟*所生成的ΗρΑ之普通 38 1293145 晶Μ組位址解碼,且處理DMA請求作為存取 ㈣ 為同層級的對等請求。 6.右轉科的HAp經過解碼而目的地係鎖定記憶體, 則ΗΡΑ係根據設定相干性(c)屬性的支援來存取。若舰a再 :5 =電路135只支援於頁表分錄中的相干性_性的否認 : ⑸疋,則記憶體係、根據]0财請求中載明的(或推論的)相干 性來存取。舉例言之,若DMA請求中載明的ρα高速匯流 φ 麟求為非窺探,則記憶體被存取而未被窺探。若舰八再 映射电路13 5支援於頁表分錄中相干性(c)屬性的宣告設定 1〇及否認設定,則記憶體係根據用來位址轉譯dma請求的葉 頁表分錄中的相干性屬性之規劃來存取。 第9B圖為略圖,顯示根據本發明之一個實施例,使用 單一表的位址轉譯結構540。位址轉譯結構54〇包括上下文 分錄535、客屬實體位址(GAp) 96〇、單一頁表97〇、及頁 : 15 980 。 φ 單階頁表可對軟體提供另一機構來提供4K解析度之頁 分配,而無長頁前進,但犧牲保留大型連讀頁表結構。單 Ρό頁表的頁表分錄大小(例如64位元)及格式係類似前一段 所述用於多階結構的頁表分錄,但行程攔位被當作保留處 20 理。 頁表大小係依據客屬位址空間大小來決定。舉例言 之,對於客屬定址能力1GB (GAW=3〇),軟體需分配21^ 頁表’有218頁表分錄。I/O轉譯後備緩衝器(TLB)也可應用 於使用單階頁表的DMA位址轉譯。 39 1293145 透過載明多階位址轉譯的上下文分錄所處理的dma 請求係由DMA再映射電路135處理如後: 1 ·於DMA請求中所載明的GPA/長度組合係根據dma 再映射電路135是否支援頁邊界的交越而使用。若dma再映 5射電路I%支援父越頁邊界的DMA請求,且GPA/長度組合 指示DMA晴求父越頁邊界,則由DMA請求鎖定目標的各個 頁區係獨立經過位址轉譯。若DMA再映射電路135未支援交 越頁邊界的DMA請求,而GPA/長度組合指示DMA請求交越 頁邊界,則導致位址轉譯錯誤。 10 2·右於上下文分錄規劃的GAW攔位並非介於能力暫 存器中由DMA再映射電路135所報告的最小值(例如21)與 最大客屬位址寬度(MGAW)間,則DMA請求被阻擋,而導 致位址轉譯錯誤。 3· DMA請求經確認係於該元件所被分派的該領域之 15客屬貫體位址空間内部。任何嘗試存取位址(2X_1)上方的記 憶體位置的DMA皆被阻擋,此處X為規劃於用來處理本 DMA請求的上下文分錄中的客屬位址寬度(GAW搁位)。 4·若鈾述檢查為成功,則dma再映射電路135使用位 兀(X-1) : 12來查詢於單階頁表的頁表分錄。DMA請求係根 20 據頁表分錄的規劃而被阻擔或被轉譯成有效ΗΡΑ。 5· DMA再映射電路135執行步驟4所生成的册八之普通 晶片組位址解碼,且處理DMA請求作為存取記憶體,或作 為同層級的對等請求。 6·若轉譯後的HAP經過解碼而目的地係鎖定記憶體, 40 1293145 映射t係根據°又疋相干性(C)屬性的支援來存取。若DMA再 二%路丨如支援於f表分錄巾的相干性(〇屬性的否認 二,則記憶體係根據DMA請求中載明的(或推論的)相干 存取。舉例言之,若祕請求中載明的阳高速匯流 月长為非規奴,則記憶體被存取而未被窺探。若DMA再 映射Ί路135支援於頁表分錄巾相千性(c)屬性的宣告設定 及否認設定,敎憶體餘據用來位址轉譯DMA請求的葉 • 頁表分錄中的相干性屬性之規劃来存取。 上下文分錄535之ASR攔位提供基礎位址來定位頁單 1〇 —表970。GAP 960包括偏位攔位962及頁表欄位%4。單一 頁表970含有頁表分錄來指向與GPA 960相應的主屬實體位 址該頁。 為了查詢相應的頁表分錄,頁表欄位964組合由asr攔 位所提供的基礎位址。因各個分錄佔有8位元組,故頁表欄 15位964藉位移器972位移3位元,然後藉加法器974加至ASR (I 來提供指數給單一頁表970。 然後與該指數相應的頁表分錄提供頁980的基礎位 址。偏位攔位962藉加法器984加至本基礎位址來提供於頁 980所得的ΗΡΑ 〇 20 第9C圖為略圖,顯示根據本發明之一個實施例,使用 基本/限制轉譯的位址轉譯結構540。位址轉譯結構540包括 上下文分錄535、客屬實體位址(GAP) 960及實體記憶體空 間 990。
基本-限制轉譯提供最簡單的位址轉譯形式,此處DMA 41 1293145 請求巾的GPA㈣為該賴與基礎位址的偏位。該領域的 基礎位址為主屬實體位址,係透過上下文分錄奶(第犯圖) 的ASR欄位834規劃。上下文分錄中的客屬位址寬度⑹謂) 指示偏位極限。任何具有客屬位址高於GAW所指示的極限 : 5的DMA請求皆被DMA再映射電路135所阻擋。 : 個貝施例中,主屬實體位址為64位元。用於有效客 屬位址(例如於GAW定址能力内部的位址),DMa再映射電 φ 路135執行下列操作來產生主屬實體位址: 主屬貫體位址[63 : GAW]=位址空間根[63 : GAW] 10 主屬實體位址[GAW·1 ·· 〇]=客屬實體位址[GAW-1 : 0] 快取支接: DMA再映射電路135包括邏輯電路來快取上下文分錄 俾便減少當由記憶體提取上下文分錄時所招致的額外管理 資訊量及潛伏期延遲。DMA再映射電路135管理該上下文分 : 15錄的快取,且支援軟體的快取失效請求。 φ 每當軟體更新記憶體的任何根分錄或上下文分錄時, 軟體必須讓上下文分錄快取失效。上下文分錄快取的失效 可能於任何/全部型別根分錄及上下文分錄更新時要求執 行該動作,包括涉及由非目前狀態改變為目前狀態的更新 20時也要求執行上下文分錄快取的失效。 DMA再映射架構允許以個別上下文快取分錄的領域 識別符來對上下文快取分錄加標籤的實作。DMA再映射架 構疋義下列型別的上下文快取失效請求來支援各項軟體使 用模型:(1)通用失效:全部所快取的上下文分錄透過通用 42 1293145 失效而變失效;(2)領域選擇性失效:全部所快取的屬於特 定領域(具有特定領域識別符)的上下文分錄經由領域選擇 性失效而變失效;以及元件選擇性失效:與特定元件相 應的(具有特定來源識別符及領域識別符)的所快取的上下 : 5文分錄透過元件選擇性失效而變失效。 : DMA再映射電路135允許軟體識別前述三種型別失效 請求中的任一種,但若不支援所請求的失效解析度,則DMa φ 再映射電路135可於較粗糙的解析度執行實際失效動作。舉 例言之,若不支援元件選擇性失效,則可於元件選擇性失 10效清求時執行領域選擇性失效。DMA再映射電路135可指示 軟體執行實際請求的解析度。 DMA再映射架構定義用於改良位址轉譯效能而快取 葉頁表分錄之支援技術。頁表分錄快取稱作為1/〇轉譯後備 緩衝态(I/O TLB)。類似上下文分錄快取,〇μα再映射電路 : 15 135管理"otlb,且支援軟體的失效請求。 # 每當更新記憶體的任何主動頁表時,軟體讓I/O TLB的 所快取的頁表分錄失效。當任何/全部型別頁表分錄更新 %,可要求I/O TLB的失效,該等更新包括涉及只有讀/寫 屬性改變的更新、或將其由非目前規劃成為目前的更新; 2〇 DMA再映射電路135以領域識別符將I/〇 TLB的所快取 的頁表分錄加標籤。領域識別符係由軟體透過上下文分錄 來規劃。若有多個上下文分錄參照同一個頁表時,彷彿當 多個元件被分派給同一個領域時的情況,軟體係以相同的 領域識別符來規劃此等上下文分錄。 43 1293145 DMA再映射電路13 5定義下列形式的I/〇 TLB失效請求 來支援各種軟體使用模型:(丨)通用失效:I/〇 TLB的全部所 夬取的頁表分錄須透過通用失效而被失效;(2)領域選擇性 失效··全部所快取的屬於特定領域具有特定領域識別符的 5上下文分錄經由領域選擇性失效而變失效;以及(3)頁選擇 性失效:與特定領域中的特定客屬實體位址(GpA)相應的特 定所快取的頁表分錄係經由頁選擇性失效而被失效。 DMA再映射電路135允許軟體識別前述三種型別失效 請求中的任一種,但若不支援所請求的失效解析度,則DMa 10再映射電路135可於較粗糙的解析度執行實際失效動作。舉 例言之,若不支援頁選擇性失效,則可於頁選擇性失效請 求打執行領域選擇性失效。DMA再映射電路135可指示軟體 執行實際請求的解析度。 為了改良位址過濾效能,DMA再映射電路135也定義 15快取過濾位元映射圖攔位的支援技術。若由DMA請求所存 取的記憶體位置充分為線性,且若對平台的全部1/〇流有足 夠的快取分錄,則該過濾位元映射圖快取將有高命中率。 類似上下文快取及I/O TLB,DMA再映射電路135管理過濾、 位元映射圖快取,且支援來自軟體的失效請求。當頁被加 20至或移動至非再度定位領域時,預期軟體可外顯地讓過滤 位元映射圖快取失效。 用於多階頁表轉譯,表係於各階被快取。用於]^階,則 有N個被快取的表。此等快取表可於—個快取結構朗個分 開快取結構(每階有一個結構)來實作。經由於各階有分開且 44 1293145 獨立的快取結構,效能改良。於個別彼此獨立無關執行失 效或執行清理。此外,當有快取失誤時,位址轉譯機構只 存取記憶體。典型地,非葉快取映射入大型客屬位址區, 因而命中非葉快取的命中率高,結果獲得快速轉譯。 5 第10圖為略圖’顯示根據本發明之一個實施例,含有 快取控制暫存器的暫存器組220。暫存器組22〇包括上下文 命令暫存器(CCMD—REG) 1010、I/O轉譯後備緩衝器失效暫 存裔(IOTLB一REG) 1020、及失效位址暫存器(jyA reg) 1030 〇 10 〇0^0)_^^0 1010管理上下文分錄快取。(^]\40 11£0 1010包括失效上下文分錄快取(ICC)攔位1012、失效請求解 析度(IRG)欄位1014、實際失效解析度(aig)欄位1〇16、領 域識別符(DID) 1018、及來源識別符(SID)欄位1019。 ICC欄位1012由軟體宣告來請求上下文分錄快取的失 15 效。軟體也經由規劃IRG欄位來設定所請求的失政解析度。 軟體必須確定唯有於ICC欄位被否認時才對DMA再映射電 路135作失效請求,換言之,每次於DMA再映射電路135只 有一個上下文分錄快取。 DMA再映射電路135否認ICC攔位,指示失玫請求的完 2〇 成。〇]^八再映射電路135也指示經由人10攔位所執行失效操 作的解析度。軟體必須回讀且檢查欲否認的ICC攔位來驗證 失效的完成。 IRG欄位1014由軟體用來請求DMA再映射電路135來 讓上下文分錄快取失效。軟體經由此IRG欄位1014寫入所請 45 1293145 求的失效解析度。 一個實施例中,IRG欄位1014係藉二位元編碼如後: 00 :保留。DMA再映射電路135忽略該失效請求,經 由清除ICC搁位且報告〇〇於aig搁位來報告失效 5 完成。經由錯誤態暫存器而報告失效規劃錯誤。 01 :通用失效請求。 10:領域選擇性失效請求。於DID攔位載明目標領域 識別符。 11 ·元件選擇性失效請求。於SID攔位載明目標sid, 10 於DID攔位提供領域識別符(規劃於本元件之上下 文分錄)。 AIG攔位1016由DMA再映射電路135用來報告當報告 失效元成日守(經由清除ICC欄位),處理失效請求時報告該解 析度。 I5 —個實施例中,AIG欄位1016係由二位元編碼如後: 00 :保留。此乃復置值。 01 :執行通用失效。可響應於通用失效請求、領域選 擇性失效請求或元件選擇性失效請求。 10 :使用軟體於DID欄位所載明的領域識別符所執行 20 的領域選擇性失效。可響應於領域選擇性失效过 求或元件選擇性失效請求。 依據DMA再映射電路135之實作所支援的失效解析声 而定,可將由於較粗糙的解析度執行失效來處理失致= 求。DMA再映射電路135經由否認Icc攔位來指示失效請^ 46 1293145 的完成。此時,DMA再映射電路135也經由AIG欄位1016來 指示執行實際失效的解析度。 DID欄位1018指示上下文分錄須被選擇性失效的該領 域的識別符。SID欄位1019指示其相應的上下文分錄必須被 5 選擇性失效的該元件的識別符。 IOTLB—REG 1020控制頁表分錄快取。包括yo TLB(IVT)攔位1022、失效請求解析度(irg)欄位1〇24、實際 失效解析度(AIG)欄位1026及領域識別符(DID)欄位1028的 失效。 10 IVT攔位1022由軟體宣告來請求I/O TLB的失效。軟體 也經由規劃IRG攔位來設定所請求的失效解析度。軟體必須 確定唯有於IVT欄位被否認時才對DMA再映射電路135作 失效請求,換言之,每次於DMA再映射電路135只有一個I/O TLB 〇 15 DMA再映射電路135否認IVT欄位1022,指示失效請求 的完成。DMA再映射電路135也指示經由AIG攔位1026所執 行失效操作的解析度。軟體必須回讀且檢查欲否認的IVT 欄位1022來驗證失效的完成。 IRG欄位1024由軟體用來請求DMA再映射電路135來 20 讓I/O TLB失效。軟體經由此IRG欄位1014寫入所請求的失 效解析度。 一個實施例中,IRG欄位1024係藉二位元編碼如後: 00 :保留。DMA再映射電路135忽略該失效請求,經 由否認IVT欄位1022且報告00於AIG欄位1026報 47 1293145 告〇〇來報告失效完成。經由錯誤態暫存器而報告 失效規劃錯誤。 01 :通用失效請求。 10 :領域選擇性失效請求。於DID欄位1028載明目標 5 領域識別符。 11 :元件選擇性失效請求。於SID欄位載明目標sID, 於DID欄位1028提供領域識別符(規劃於本元件之 上下文分錄)。 AIG攔位1026由DMA再映射電路135用來報告當報i 10失效完成時(經由否認IVT攔位1022),處理失效請求時報告 該解析度。 一個實施例中,AIG攔位1026係由二位元編碼如後: 〇〇 :保留。此乃復置值。 01 ··執行通用失效。可響應於通用失效請求、領域選 擇性失效請求或頁選擇性失效請求。
10 :使用軟體於聰攔位刪所載明的領域識別符所 執行的領域選擇性失效。可響應於領域選擇性失 效請求或頁選擇性失效請求。 11 ··使用錄耗日胁失触址暫存⑽該位址來執 行頁選擇性失效。只可響應於頁選擇性失效請求 而執行。 依據 由硬體實作所支援的失效解析度,可由 較粗_解析度執行失效來處理失效Μ n 於 路135姐A /弓求。DMA再映射電 路135經由否認IVT欄位侧來指示 兒 下矢效凊未的完成。此 48 1293145 時,DMA再映射電路135也經由AIG攔位1026來指示執行實 際失效的解析度。 DID攔位1028指示領域请理或領域失效的領域。 IVA—REG 1030提供客屬實體位址(GPA),該客屬實體 5位址(GPA)的相應"Ο TLB分錄將經由IOTLB—REG 1020而 變失效。IVA—REG 1030包括客屬實體位址(GPA)欄位 1032 'GPA欄位1032由軟體用來對DMA再映射電路135請求 特殊頁失效請求。軟體首先將相應的客屬實體位址寫至此 暫存器,然後經由IOTLB—REG 1020而發出特殊頁失效命 10 令。 DMA再映射電路135可只實作本攔位的最低有效^^位 元,此處N為(主屬位址寬度-12)。其餘位元則視同唯讀(〇) 來處理。 第11圖為流程圖,顯示根據本發明之一個實施例,以 15 快取之表結構執行位址轉譯之處理程序。 於START時,處理程序1100使用請求器識別符來查詢 δ亥上下文分錄(方塊1110)。其次’處理程序11⑻判定是否有 上下文分錄快取命中(方塊1115)。若是,則處理程序u〇〇 前進至方塊1125。否則,處理程序1100走過根表及上下文 2〇表來提取該上下文分錄(方塊1120)。然後,處理程序11〇〇 判定該上下文分錄是否為有效(方塊1125)。可經由檢查於該 上下文分錄的V攔位來執行。若該上下文分錄並非有效,則 處理私序1100使用得自内設上下文暫存器的内設上下文 (方塊1130),且前進至方塊U35。否則,處理程序11〇〇獲得 49 1293145 葉頁表分錄(方塊1135)。該葉頁表分錄為最末表中的分錄。 其次’處理程序1100根據頁表分錄屬性來處理dma請求(方 塊1140),然後結束。 弟12圖為流程圖’顯示根據本發明之一個實施例,獲 5 得葉頁表分錄的處理程序1135。 於START時,處理程序U35判定是否已經找到所快取 的葉節點(方塊1210)。此項處理可經由判定於該頁表分錄是 否宣告超頁攔位來進行。若找到所快取的葉節點,則處理 程序取還於該葉節點中的該頁表分錄(方塊1240)然後結 10 束。否則,處理程序1135查詢快取的第一階PTE(方塊1215)。 然後,處理程序1135判定PTE表中是否有快取命中(方 塊1220)。若是,則處理程序1135前進至方塊1230。否則, 處理程序1135提取由記憶體至快取的PTE,且對該PTE加標 籤(方塊1225)。其次,處理程序1135判定PTE是否為葉節點 15 分錄(方塊1230)。若否,則處理程序1135查詢快取表中的下 一階PTE(方塊1235)且返回方塊122〇。否則,結束處理程序 1135 〇 雖然已經就若干實施例說明本發明,但熟諳技藝人士 瞭解本發明非僅限於所述實施例,反而可於隨附之申請專 20利範圍之精髓及範圍内以修改或變化來實施。如此本文說 明須視為說明性而非限制性。 【圖式簡單説明】 第1圖為略圖,顯示可實作本發明之一個實施例之系 統0 50 1293145 第2圖為略圖,顯示根據本發明之一個實施例之輸入/ 輸出(I/O)元件分派。 第3圖為略圖,顯示根據本發明之一個實施例之使用直 接記憶體存取(DMA)再映射之虛擬化。 5 第4圖為略圖,顯示根據本發明之一個實施例之I/O位 址轉譯。 第5圖為略圖,顯示根據本發明之一個實施例之DMA 再映射結構。 第6圖為略圖,顯示根據本發明之一個實施例之含有共 10 通暫存器的暫存器組。 第7圖為略圖,顯示根據本發明之一個實施例之含有位 址過濾暫存器的暫存器組。 第8A圖為略圖,顯示根據本發明之一個實施例之根分 錄。 15 第8B圖為略圖,顯示根據本發明之一個實施例之上下 文分錄。 第8C圖為略圖,顯示根據本發明之一個實施例之頁表 分錄。 第9A圖為略圖,顯示根據本發明之一個實施例之使用 20 多階表之位址轉譯結構。 第9B圖為略圖,顯示根據本發明之一個實施例之使用 單一表的位址轉譯結構。 第9C圖為略圖,顯示根據本發明之一個實施例之使用 基本/限制轉譯的位址轉譯結構。 51 1293145 個實施例,含有 第10圖為略圖,顯示根據本發明之一 快取控制暫存器的暫存器組。 第11圖為流程圖,顯示根據本發明之—個實施例 快取的表結構執行位址轉譯之處理程序。 第12圖為流程圖,顯示根據本發明之—個實施例‘ 付葉頁表分錄之處理程序。
【主要元件符號說明】 100···糸統 185···輸入/輸出元件 110…處理器 210…元件A 120···處理器匯流排 220···暫存器組 130···記憶體控制中樞(mch) 222··Χ)ΜΑ再映射結構 135···直接記憶體存取(DMA) 224…·邏輯電路 再映射電路 240…領域1 140…系統記憶體 242·.·驅動器 142···作業系統(〇s) 310…元件A 145…I/O元件 312···元件 B 150.··輸入/輸出控制中樞(ich) 320…VMM或主屬OS 155···周邊匯流排 340…VM〇 170···大置儲存兀件/介面 342、344…應用程式 172···雷射光碟(CD) ROM 346···客屬 OS 173…視訊/影音光碟(DVD) 350···元件A驅動器 174…軟碟 360…VMn 176…硬碟 362、364···應用程式 180···輸入/輸出元件 366...客屬 OS 52 1293145
370.. .元件B驅動器 410、412...I/0元件 420…實體記憶體 422、424...領域 1 426、428···領域2 440…客屬景觀 442、444…領域 510.. .來源識別符 512…功能數目 514···元件數目 516·.·匯流排數目 520…根表 525…根分錄 530…上下文表 535…上下文分錄 540···位址轉譯結構 550…多表 560…單表 570…基本/限制 61〇···記憶體型別報告暫存器 612···錯誤檔記憶體型別(FMT) 欄位 614· ••頁表記憶體型別(pMT)搁位 616…上下文分錄表記憶體型 別(CMT)攔位 618···根分錄表記憶體型別 (RMT)搁位 620···通用命令暫存器 622···轉譯硬體致能(HE)欄位 624…寫入緩衝器清理(WBF)欄位 630…根分錄表位址暫存器 632···根表基本位址(RTA)棚位 634.··致能上下文分錄(ECE)欄位 640···内設上下文暫存器 642…存在(p)攔位 650···單階/多階表(M)欄位 654…位址空間根(ASR)搁位 656···實位址寬度沿_欄位 660…錯誤處理攔位 662···領域識別符(DID)欄位 710···過濾大小暫存器 712···過濾表大小(FTS)欄位 715…過濾位元映射圖記憶體 型別(BMT)襴位 720…過滤基本暫存器 725···過濾表基本(FTB)攔位 730···過濾控制暫存器 732···過濾硬體致能(FHE)欄位 53 1293145
734…寫人緩衝器清理_F)攔位 736···過濾快取無效(FCI)攔位 738···過濾表保護(ftp)欄位 740…過濾錯誤暫存器 742···錯誤位址(fa)攔位 744···型別⑺攔位 746··.有效(V)搁位 810···存在(P)攔位 815—^下文分錄表指標器(Qgp) 欄位 822…存在(P)搁位 830···多階(M)攔位 834···位址空間根(ASR)欄位 836.··客屬位址寬度(GAW)攔位 840···錯誤處理(FP)欄位 842…領域識別符(DID)欄位 850···可讀取(R)攔位 852···可寫入(W)攔位 854·.·相干(C)欄位 856···超頁(SP)櫊位 860"•位址(ADDR)欄位 910···經調整的客屬實體位址 (AGFA) 912···偏位欄位 914···葉節點頁表欄位 916…中間頁表攔位 920···第一階頁表 930…中間表 940…葉節點表 942…位移器 944…加法器 950…頁 960···客屬實體位址(GPA) 962···偏位搁位 964…頁表搁位 970…單頁表 972…位移器 974…加法器
980... I 984…加法器 990···實體記憶體空間 1010…上下文命令暫存器 1012…失效上下文分錄快取(ICC) 欄位 1 〇 14…纽請求解析度(IRG)欄位 1016…實際失效解析度(AIG)欄位 1018…領域識別符(DID)欄位 1019··.來源識別符(SID)欄位 54 1293145 1020···Ι/〇轉譯備用緩衝器失效 暫存器 1022…失效I/〇TLB(IVT)攔位 1024…纽請求解析度(IRG)攔位 1026…實際失效解析度(AIG)欄位 1028…領域識別符(DID)攔位 1030···失效位址暫存器 1032···客屬實體位址(GPA)欄位 1100···處理程序 1110-1140·.·方塊 1135···處理程序 1210-1235···方塊 55

Claims (1)

  1. 96. 5.1 i 1293145 十、申請專利範固: 正本 96.05.11· 第94134048號中請財請專利範圍修 1· 一種§己憶體快取裝置,包含: 取、°構用以儲存於一客屬實體位址之位址轉 譯成為一主屬實體位址時使用的所快取分錄,該客屬實 體位址係與由一輸入/輸出(I/O)元件所請求的-輸入/輸
    出(I/O)異動處理中由一客屬領域識別符所識別的一客 屬領域相對應;以及 一暫存裔’其儲存可識別一失效領域的一失效領域 識別符、及指示讓該等所快取的分錄中具有一標籤的一 分錄失效的一指示符。 2. 如申請專利範圍第丨項之裝置,其中該快取結構包含: 根表快取,來儲存由該I/O異動處理之客屬請求器 識別符所指示的根分錄;以及 麵合至該根表的上下文表快取,來儲存由該根分錄 所參照的所快取的上下文分錄,所快取的上下文分錄係 以可識別與I/O請求器識別符相應的上下文領域之上下 文領域識別符加標籤,該上下文領域識別符包括該客屬 領域識別符。 3. 如申請專利範圍第2項之裝置,其中該快取結構進—步 包含: 耦接至該上下文表快取的頁表快取’來儲存由該所 快取的上下文分錄所參照的所快取的頁表分錄,所快取 的頁表分錄提供該主屬實體位址的頁基礎,且以該上下 56
    1293145 文領域識別符加標鐵。 4.々如申請專利範圍第3項之裝置,其中該客屬請求器識別 符係用於第-錢取存取該上τ文錢取來查詢於該 上下文表快取中所快取的上下文分錄。 5 5·如中請專利範圍第4項之裝置,其中該請求器識別符係 用來檢索雜表分錄,若第—次快取存取失誤時,由該 上下文表快取中提取所快取的上下文分錄。 6·如申請專利範圍第5項之裝置,其中若所快取的上下文 为錄並非有效,則使用内設上下文分錄。 10 7·如申5月專利㈣第3項之裝置,其中該客屬領域識別符 係用來查詢該頁表快取。 8·如申印專利圍第7項之裝置,其中若於葉節點表中找 到與該客屬領域朗符相應的職表分錄,則形 成該主屬實體位址。 15 9·如巾請專利範圍第7項之裝置,其中該頁表快取包括多 個所快取的頁表。 10·如申請專利範圍第9項之裝置,其中第二次快取存取所 快取的頁表中之一者係用來獲得與該客屬領域識別符 相應的所快取的頁表分錄。 20 U·如申請專利範圍第10項之裝置,其中若第二次快取存取 為失誤,則從記憶體中提取記憶體頁表分錄之所提取的 頁表中之一者。 12.如申請專利範圍第2項之裝置,其中該暫存器為上下文 失效暫存n與頁表域暫存Md該上下文失效 57
    1293145 暫存器及該頁表失效暫存器分別係與該上下文表快取 及該頁標快取相關聯。 5
    13·如申請專利範園第2項之裝置,其中該指示符為選擇性 指示符及通用指示符中之一者,若標籤匹配該失效領域 識別符,則該選擇性指示符指示讓該分錄失效,而通用 指示符指示讓該分錄失效而與標籤無關。 14·—種記憶體快取方法,包含有下列步驟: 儲存所快取的分錄於一快取結構中,該等所快取的 分錄係供於一客屬實體位址之位址轉譯成為一主屬實 體位址期間使用,該客屬實體位址係與於一 "〇元件請 15
    20 求的一輸入/輸出(I/O)異動處理中由一客屬領域識別符 所識別的一客屬領域相對應;以及 儲存一失效領域識別符及一指示符於一暫存器 内’錢效領域酬符可制—失效領域,該指示符可 才曰示讓該等所快取的分錄中具有_標籤的—分錄失效。 申明專利|&圍第14項之方法,其巾儲存該所快取的分 錄於快取結構包含: 儲存根分錄於根表快取,料根分_由該ι/〇異 動處理的客屬請求器識別符所檢索;以及 儲存由該根分錄所參照的所快取的上下文分錄於 μ 表决取所快取的上下文分錄係以可識別與1/0 =器識別符相應的上下文領域的上下文領域識別符 〜戴’該等上下巧賴叫包_客屬領域識別 58 膝5·1凡
    1293145 - 16·如中4專利範圍第15項之方法,其中儲存所快取的分錄 於快取結構進—步包含·· 儲存由所快取的上下文分錄所參照的所快取的頁 5 ♦刀錄於頁表快取’該所快取的頁表分錄提供主屬實體 5 位址的頁基礎,且以上下文領域識別符加標籤。 K如申凊專利範圍第_之方法,進—步包含: 於第一次快取存取上下文表分錄中,使用該客屬請 ® &器識別付來查詢於該上下文表快取中的所快取的上 下文分錄。 10 18.如中請專利範圍第Π項之方法,進-步包含: 若第一次快取存取為失誤,則使用該請求器識別符 檢索該根表快取來從上下文表快取中提取所快取的上 下文分錄。 19·如申請專利範圍第18項之方法,進一步包含: 若所快取的上下文分錄並非有效,則使用内設上下 文分錄。 2〇·如申請專利範圍第16項之方法,進一步包含: 使用該客屬領域識別符來查詢該頁表快取。 1·如申請專利範圍第2〇項之方法,進一步包含: 20 若於葉節點表中找到與該客屬領域識別符相應的 所快取的頁表分錄,則形成該主屬實體位址。 22·如申請專利範圍第20項之方法,其中該頁表快取包括多 個所快取的頁表。 23·如申請專利範圍第22項之方法,進一步包含: 59 ^使用第二次快取存取該所快取的頁表中之一者,來 獲侍與該客屬領域識別符相應的所快取的頁表分錄。 24·如申請專利範圍第23項之方法,進一步包含: 右第二次快取存取為失誤,則從記憶體中提取記憶 體頁表分錄至所快取的頁表中之一者。 25_如申請專利範圍第15項之方法,其中該暫存器為上下文 失效暫存器與頁表失效暫存器中之一者,該上下文失效 暫存器及該頁表失效暫存器分別係與該上下文表快取 及該頁標快取相關聯。 26·如申睛專利範圍第15項之方法,其中該指示符為選擇性 才曰不符及通用指示符中之一者,若標籤匹配該失效領域 識別符,則該選擇性指示符指示讓該分錄失效,而通用 指示符指示讓該分錄失效而與標籤無關。 27·—種電腦運算系統,包含: 一記憶體; 於存取該記憶體之一輸入/輸出(1/〇)異動處理中產 生一客屬實體位址之一輸入/輸出(1/〇)元件;以及 耦接至該I/O元件及該記憶體之一晶片組,該晶片 組包括一電路,該電路包含: 一快取結構,用以儲存於一客屬實體位址之位 址轉譯成為一主屬實體位址時使用的所快取之分 錄,該客屬實體位址係與該輪入/輸出(1/〇)異動處 理中由一客屬領域識別符所識別的一客屬領域相 對應,以及 -------------------------- 1293145 曰錄,替換頁 一暫存器,其儲存可識別一失效領域的一失敦 領域識別符、及指示讓該等所快取的分錄中具有〜 標籤的一分錄失效的一指示符。 28·如申請專利範圍第27項之系統,其中該快取結構包含· 根表快取,來儲存由該I/O異動處理之客屬請求器 識別符所指示的根分錄;以及 耦合至該根表的上下文表快取,來儲存由該根分鲦 所參的所快取的上下文分錄,所快取的上下文分錄= 以可識別與I/O請求器識別符相應的上下文領域之上下 10 文領域識別符加標籤,該上下文領域識別符包括該客 領域識別符。 29·如申请專利範圍第28項之系統,其中該快取結構進—沭 包含: > 15 耦接至該上下文表快取的頁表快取,來儲存由該所 快取的上下文分錄所參照的所快取的頁表分錄,所快取 的頁表分錄提供該主屬實體位址的頁基礎,且以該上下 文領域識別符加標籤。 20 3〇·如申請專利範圍第29項之系統,其中該客屬請求器識别 符係用於第-次快取存取該上下文表快取,來查詢於該 上下文表快取中所快取的上下文分錄。 X 31. 如申請專利範圍第30項之系統,其中該請求器識別符係 用來檢索該根表分錄,若第—次快取存取失誤時,由該 上下文表快取中提取所快取的上下文分錄。 32. 如申請專利範圍第31項之系統,其中若所快取的上下文 61
    1293145 分錄並非有效,則使用内設上下文分錄。 33·如申請專利範圍第29項之系統,其中該客屬領域識別符 係用來查詢該頁表快取。 34.如申請專利範圍第33項之系統,其中若於葉節點表中找 到與該客屬領域識別符相應的所快取的頁表分錄,則形 成該主屬實體位址。 35·如申請專利範圍第咖之系統,其中該頁表快取包括多
    10
    20 個所快取的頁表。 36·如申請專職圍第35項之系統,其中第二次快取存取所 快取的頁表中之-者係用來獲得與該客屬領域識別符 相應的所快取的頁表分錄。 37.如申請專利範㈣36項之系統,其中若第二次快取存取 為失誤,職記㈣中提取記憶體頁表分錄之所提取的 頁表中之一者。 申請專利額第28項之系統,其"㈣㈣上下文 =暫存4頁表失效暫存器中之—者該上下文失效 暫存器及該頁表失效暫存器分別係與該上下文表快取 及該頁標快取相關聯。 ^ Γ 39·如申請專利範圍第28項之 指示符及通用指示符中之二,’:::指示符為選擇性 識別符,則該選擇性指示符指示失效二 指示符指示讓該分錄失效效,而通用 吼-種包财資狀機財餘職兮 所存取時會造成該機器執行勺八 Λ貝料在由一機器 匕各下歹’J動作之操作·· 62 儲存所快取的分錄於一快取結構中,該等所快取的 分錄係供於一客屬實體位址之位址轉譯成為一主屬實 體位址期間使用,該客屬實體位址係與於一I/O元件請 求之一輸入/輸出(I/O)異動處理中由一客屬領域識別符 所識別的一客屬領域相對應;以及 儲存一失效領域識別符及一指示符於一暫存器 中’該失效領域識別符可識別一失效領域,該指示符可 指示讓該等所快取的分錄中具有一標籤的一分錄失效。 41·如申請專利範圍第40項之機器可存取媒體,其中該資料 4成機器執行儲存所快取的分錄於該快取結構包含資 料造成機器執行包含下列之操作: 儲存根分錄於根表快取,該等根分錄係由該〗/〇異 動處理的客屬請求器識別符所檢索;以及 儲存由該根分錄所參照的所快取的上下文分錄於 下文表丨夬取,所快取的上下文分錄係以可識別與I/O 。月求器識別符相應的上下文領域的上下文領域識別符 私籤4等上下文領域識別符包括該客屬領域識別 符。 生申”月專利fe圍第41項之機器可存取媒體,其中該資料 成機器執行儲存所快取的*錄於該快取結構包含資 料造成機器執行包含作: 儲存由所快取的上下文分錄所參照的所快取的頁 表分錄於頁表快取, 4所快取的頁表分錄提供主屬實體 位址的頁基礎,i 上下文領域識別符加標籤。 1293145
    10 15
    20 年月E]修土替換頁 43.如申請專利範圍第42項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 於第一次快取存取上下文表分錄中,使用該客屬請 求器識別符來查詢於該上下文表快取中的所快取的上 5 下文分錄。 44.如申請專利範圍第43項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 若第一次快取存取為失誤,則使用該請求器識別符 檢索該根表快取來從上下文表快取中提取所快取的上 下文分錄。 45. 如申請專利範圍第44項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 若所快取的上下文分錄並非有效,則使用内設上下 文分錄。 46. 如申請專利範圍第42項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 使用該客屬領域識別符來查詢該頁表快取。 47_如申請專利範圍第46項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 若於葉節點表中找到與該客屬領域識別符相應的 所快取的頁表分錄,則形成該主屬實體位址。 48.如申請專利範圍第46項之機器可存取媒體,其中該頁表 快取包括多個所快取的頁表。 49_如申請專利範圍第48項之機器可存取媒體,其中該資料 64 1293145 gdrsr^·~ 一/ — 年月曰修(髮1止替換頁 進一步包含造成該機器執行包含下列操作之資料: 使用第二次快取存取該所快取的頁表中之一者,來 獲得與該客屬領域識別符相應的所快取的頁表分錄。 50. 如申請專利範圍第49項之機器可存取媒體,其中該資料 進一步包含造成該機器執行包含下列操作之資料: 若第二次快取存取為失誤,則從記憶體中提取記憶 體頁表分錄至所快取的頁表中之一者。 10 51. 如申請專利範圍第41項之機器可存取媒體,其中該暫存 器為上下文失效暫存器與頁表失效暫存器中之一者,該 上下文失效暫存器及該頁表失效暫存器分別係與該上 下文表快取及該頁標快取相關聯。 15 52. 如申請專利範圍第41項之機器可存取媒體,其中該指示 符為選擇性指示符及通用指示符中之一者,若標籤匹配 該失效領域識別符,則該選擇性指示符指示讓該分錄失 效,而通用指示符指示讓該分錄失效而與標籤無關。
    65
TW094134048A 2004-09-30 2005-09-29 Memory caching apparatus and method, computing system, and machine-accessible medium including data TWI293145B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/956,206 US7334107B2 (en) 2004-09-30 2004-09-30 Caching support for direct memory access address translation

Publications (2)

Publication Number Publication Date
TW200619934A TW200619934A (en) 2006-06-16
TWI293145B true TWI293145B (en) 2008-02-01

Family

ID=35697103

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094134048A TWI293145B (en) 2004-09-30 2005-09-29 Memory caching apparatus and method, computing system, and machine-accessible medium including data

Country Status (7)

Country Link
US (1) US7334107B2 (zh)
KR (1) KR100871743B1 (zh)
CN (1) CN100585574C (zh)
DE (1) DE112005002328T5 (zh)
GB (1) GB2433807B (zh)
TW (1) TWI293145B (zh)
WO (1) WO2006039643A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI486779B (zh) * 2008-11-18 2015-06-01 Freescale Semiconductor Inc 用於資料處理系統中之快取之可程式化錯誤動作

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210653B2 (en) * 2002-10-22 2007-05-01 The Boeing Company Electric-based secondary power system architectures for aircraft
US7127566B2 (en) * 2003-12-18 2006-10-24 Intel Corporation Synchronizing memory copy operations with memory accesses
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
US7308557B2 (en) * 2005-02-09 2007-12-11 International Business Machines Corporation Method and apparatus for invalidating entries within a translation control entry (TCE) cache
JP2006251916A (ja) * 2005-03-08 2006-09-21 Fujitsu Ltd Dma転送システム及びdma転送方法
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US8001543B2 (en) * 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
KR100678913B1 (ko) * 2005-10-25 2007-02-06 삼성전자주식회사 가상 메모리 시스템에서 페이지 폴트를 줄이는 장치 및방법
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
EP2062135A1 (en) * 2006-09-14 2009-05-27 1060 Research Limited Method for locating, resolving and invoking software functions
US7590817B2 (en) * 2006-10-17 2009-09-15 International Business Machines Corporation Communicating with an I/O device using a queue data structure and pre-translated addresses
US7587575B2 (en) * 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US8769168B2 (en) * 2006-10-17 2014-07-01 International Business Machines Corporation Method for communicating with a network adapter using a queue data structure and 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
US8239657B2 (en) 2007-02-07 2012-08-07 Qualcomm Incorporated Address translation method and apparatus
US8429358B2 (en) * 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
US8001282B2 (en) * 2007-08-14 2011-08-16 Intel Corporation Virtualization aware hard drive
US8164656B2 (en) * 2007-08-31 2012-04-24 Unity Semiconductor Corporation Memory emulation in an image capture device
US8676362B2 (en) * 2007-09-11 2014-03-18 Intel Corporation Encapsulation of high definition audio data over an input/output interconnect
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8510750B2 (en) * 2008-09-23 2013-08-13 1060 Research Limited Method for caching resource representations in a contextual address space
US8291415B2 (en) * 2008-12-31 2012-10-16 Intel Corporation Paging instruction for a virtualization engine to local storage
US8081879B2 (en) * 2009-01-13 2011-12-20 Gtran Corporation System for dynamically optimizing a decision threshold voltage in an optical transponder
US20100228943A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique for storage-efficient mapping between identifier domains
US8473644B2 (en) * 2009-03-04 2013-06-25 Freescale Semiconductor, Inc. Access management technique with operation translation capability
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9069672B2 (en) * 2009-06-12 2015-06-30 Intel Corporation Extended fast memory access in a multiprocessor computer system
US9535849B2 (en) * 2009-07-24 2017-01-03 Advanced Micro Devices, Inc. IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect
CN101702688B (zh) * 2009-11-24 2012-01-04 武汉绿色网络信息服务有限责任公司 一种数据包收发方法
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8639858B2 (en) * 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8838935B2 (en) * 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US8719843B2 (en) * 2011-07-27 2014-05-06 Intel Corporation Virtualizable and forward-compatible hardware-software interface
WO2013103340A1 (en) * 2012-01-04 2013-07-11 Intel Corporation Substitute virtualized-memory page tables
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
TWI477966B (zh) * 2012-05-31 2015-03-21 Silicon Motion Inc 資料儲存裝置與快閃記憶體操作方法
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US9196014B2 (en) * 2012-10-22 2015-11-24 Industrial Technology Research Institute Buffer clearing apparatus and method for computer graphics
US20150067237A1 (en) * 2013-09-05 2015-03-05 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
US20150089185A1 (en) * 2013-09-23 2015-03-26 International Business Machines Corporation Managing Mirror Copies without Blocking Application I/O
CN103577250A (zh) * 2013-11-15 2014-02-12 浪潮(北京)电子信息产业有限公司 一种应用于虚拟机的设备直通方法
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US9489309B2 (en) * 2014-10-31 2016-11-08 Oracle International Corporation Method and system for dynamic cache partitioning using address remapping
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US20170139740A1 (en) * 2015-11-12 2017-05-18 Futurewei Technologies, Inc. Systems and Methods for Real Time Context Based Isolation and Virtualization
US20170220466A1 (en) * 2016-01-30 2017-08-03 Intel Corporation Sharing a guest physical address space among virtualized contexts
US10042691B2 (en) 2016-04-26 2018-08-07 International Business Machines Corporation Operation of a multi-slice processor implementing exception handling in a nested translation environment
US10048881B2 (en) 2016-07-11 2018-08-14 Intel Corporation Restricted address translation to protect against device-TLB vulnerabilities
KR101716715B1 (ko) * 2016-12-27 2017-03-15 주식회사 티맥스클라우드 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치
WO2018176360A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Scalable interrupt virtualization for input/output devices
US20180300253A1 (en) * 2017-04-13 2018-10-18 Advanced Micro Devices, Inc. Translate further mechanism
US10585734B2 (en) * 2018-01-04 2020-03-10 Qualcomm Incorporated Fast invalidation in peripheral component interconnect (PCI) express (PCIe) address translation services (ATS)
US10740239B2 (en) * 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
WO2020167459A1 (en) * 2019-02-13 2020-08-20 Google Llc Caching streams of memory requests
CN109933553B (zh) * 2019-02-28 2020-09-29 厦门码灵半导体技术有限公司 一种控制系统及其设计方法、一组控制系统、电子装置
US12475047B2 (en) * 2019-08-26 2025-11-18 Arm Limited Filtering invalidation requests
GB2586984B (en) * 2019-09-10 2021-12-29 Advanced Risc Mach Ltd Translation lookaside buffer invalidation
CN112860600B (zh) * 2019-11-28 2025-07-11 深圳市海思半导体有限公司 一种加速硬件页表遍历的方法及装置
US12326816B2 (en) * 2020-12-21 2025-06-10 Intel Corporation Technologies for offload device fetching of address translations
CN115729443A (zh) * 2021-09-01 2023-03-03 北京特纳飞电子技术有限公司 用于对数据进行排序的方法和装置,存储装置
CN113946521A (zh) * 2021-10-22 2022-01-18 上海兆芯集成电路有限公司 快速搜索高速缓存的方法及装置
US12032483B2 (en) 2022-04-11 2024-07-09 Samsung Electronics Co., Ltd. Systems and methods for pre-populating address translation cache
CN115022920B (zh) * 2022-05-25 2025-07-25 Oppo广东移动通信有限公司 报文过滤器装置及通信芯片
US20240004990A1 (en) * 2022-06-30 2024-01-04 Intel Corporation Techniques to enable co-existence and inter-operation of legacy devices and tee-io capable devices from confidential virtual machines

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429503T2 (de) * 1994-03-24 2002-05-16 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Übersetzungsmechanismus für Ein-/Ausgabeadressen
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6338128B1 (en) * 1999-05-20 2002-01-08 International Business Machines Corp. System and method for invalidating an entry in a translation unit
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US7155576B1 (en) * 2003-05-27 2006-12-26 Cisco Technology, Inc. Pre-fetching and invalidating packet information in a cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI486779B (zh) * 2008-11-18 2015-06-01 Freescale Semiconductor Inc 用於資料處理系統中之快取之可程式化錯誤動作

Also Published As

Publication number Publication date
KR20070049680A (ko) 2007-05-11
DE112005002328T5 (de) 2007-08-23
GB0704417D0 (en) 2007-04-18
CN100585574C (zh) 2010-01-27
WO2006039643A1 (en) 2006-04-13
TW200619934A (en) 2006-06-16
GB2433807B (en) 2008-10-22
GB2433807A (en) 2007-07-04
US20060075147A1 (en) 2006-04-06
KR100871743B1 (ko) 2008-12-05
US7334107B2 (en) 2008-02-19
CN101027652A (zh) 2007-08-29

Similar Documents

Publication Publication Date Title
TWI293145B (en) Memory caching apparatus and method, computing system, and machine-accessible medium including data
TWI363967B (en) A computer hardware apparatus to utilize address window support for direct memory access translation
CN101031893B (zh) 使用分层转换表对输入/输出设备的地址转换
TWI342492B (en) Method of providing extended memory protection
KR100915714B1 (ko) 폴트 처리 장치, 폴트 처리 방법, 폴트 처리 시스템 및 머신 액세스 가능한 매체를 포함하는 제조물
CN100593160C (zh) 利用覆盖较大地址空间的转换表的地址转换性能增强
CN102789429B (zh) 支持页属性的虚拟地址至物理地址的转换
US8719548B2 (en) Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
JP5636097B2 (ja) 入力/出力アドレスをメモリ・アドレスに変換するための方法、コンピュータ・システム、およびコンピュータ・プログラム
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
US20150278106A1 (en) Transparent code patching including updating of address translation structures
CN102947808A (zh) 用于适配器函数的转换格式的运行时确定
CN102473139A (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
BR112014031436B1 (pt) Comparar e substituir entrada de tabela dat
CN102117247A (zh) 用于一系列页面的高速缓存刷新和一系列条目的tlb无效的系统、方法和设备
CN102906720A (zh) 启用/禁用计算环境的适配器
US20070038799A1 (en) Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
CN113272789A (zh) 由输入输出存储器管理单元进行的域标识符和装置标识符转译
US7519792B2 (en) Memory region access management
WO2025210329A1 (en) Isolated address region assignment updating instruction
WO2023064590A1 (en) Software indirection level for address translation sharing

Legal Events

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