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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
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)
- 96. 5.1 i 1293145 十、申請專利範固: 正本 96.05.11· 第94134048號中請財請專利範圍修 1· 一種§己憶體快取裝置,包含: 取、°構用以儲存於一客屬實體位址之位址轉 譯成為一主屬實體位址時使用的所快取分錄,該客屬實 體位址係與由一輸入/輸出(I/O)元件所請求的-輸入/輸出(I/O)異動處理中由一客屬領域識別符所識別的一客 屬領域相對應;以及 一暫存裔’其儲存可識別一失效領域的一失效領域 識別符、及指示讓該等所快取的分錄中具有一標籤的一 分錄失效的一指示符。 2. 如申請專利範圍第丨項之裝置,其中該快取結構包含: 根表快取,來儲存由該I/O異動處理之客屬請求器 識別符所指示的根分錄;以及 麵合至該根表的上下文表快取,來儲存由該根分錄 所參照的所快取的上下文分錄,所快取的上下文分錄係 以可識別與I/O請求器識別符相應的上下文領域之上下 文領域識別符加標籤,該上下文領域識別符包括該客屬 領域識別符。 3. 如申請專利範圍第2項之裝置,其中該快取結構進—步 包含: 耦接至該上下文表快取的頁表快取’來儲存由該所 快取的上下文分錄所參照的所快取的頁表分錄,所快取 的頁表分錄提供該主屬實體位址的頁基礎,且以該上下 561293145 文領域識別符加標鐵。 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該上下文失效 571293145 暫存器及該頁表失效暫存器分別係與該上下文表快取 及該頁標快取相關聯。 513·如申請專利範園第2項之裝置,其中該指示符為選擇性 指示符及通用指示符中之一者,若標籤匹配該失效領域 識別符,則該選擇性指示符指示讓該分錄失效,而通用 指示符指示讓該分錄失效而與標籤無關。 14·—種記憶體快取方法,包含有下列步驟: 儲存所快取的分錄於一快取結構中,該等所快取的 分錄係供於一客屬實體位址之位址轉譯成為一主屬實 體位址期間使用,該客屬實體位址係與於一 "〇元件請 1520 求的一輸入/輸出(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項之系統,其中若所快取的上下文 611293145 分錄並非有效,則使用内設上下文分錄。 33·如申請專利範圍第29項之系統,其中該客屬領域識別符 係用來查詢該頁表快取。 34.如申請專利範圍第33項之系統,其中若於葉節點表中找 到與該客屬領域識別符相應的所快取的頁表分錄,則形 成該主屬實體位址。 35·如申請專利範圍第咖之系統,其中該頁表快取包括多1020 個所快取的頁表。 36·如申請專職圍第35項之系統,其中第二次快取存取所 快取的頁表中之-者係用來獲得與該客屬領域識別符 相應的所快取的頁表分錄。 37.如申請專利範㈣36項之系統,其中若第二次快取存取 為失誤,職記㈣中提取記憶體頁表分錄之所提取的 頁表中之一者。 申請專利額第28項之系統,其"㈣㈣上下文 =暫存4頁表失效暫存器中之—者該上下文失效 暫存器及該頁表失效暫存器分別係與該上下文表快取 及該頁標快取相關聯。 ^ Γ 39·如申請專利範圍第28項之 指示符及通用指示符中之二,’:::指示符為選擇性 識別符,則該選擇性指示符指示失效二 指示符指示讓該分錄失效效,而通用 吼-種包财資狀機財餘職兮 所存取時會造成該機器執行勺八 Λ貝料在由一機器 匕各下歹’J動作之操作·· 62 儲存所快取的分錄於一快取結構中,該等所快取的 分錄係供於一客屬實體位址之位址轉譯成為一主屬實 體位址期間使用,該客屬實體位址係與於一I/O元件請 求之一輸入/輸出(I/O)異動處理中由一客屬領域識別符 所識別的一客屬領域相對應;以及 儲存一失效領域識別符及一指示符於一暫存器 中’該失效領域識別符可識別一失效領域,該指示符可 指示讓該等所快取的分錄中具有一標籤的一分錄失效。 41·如申請專利範圍第40項之機器可存取媒體,其中該資料 4成機器執行儲存所快取的分錄於該快取結構包含資 料造成機器執行包含下列之操作: 儲存根分錄於根表快取,該等根分錄係由該〗/〇異 動處理的客屬請求器識別符所檢索;以及 儲存由該根分錄所參照的所快取的上下文分錄於 下文表丨夬取,所快取的上下文分錄係以可識別與I/O 。月求器識別符相應的上下文領域的上下文領域識別符 私籤4等上下文領域識別符包括該客屬領域識別 符。 生申”月專利fe圍第41項之機器可存取媒體,其中該資料 成機器執行儲存所快取的*錄於該快取結構包含資 料造成機器執行包含作: 儲存由所快取的上下文分錄所參照的所快取的頁 表分錄於頁表快取, 4所快取的頁表分錄提供主屬實體 位址的頁基礎,i 上下文領域識別符加標籤。 129314510 1520 年月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
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI486779B (zh) * | 2008-11-18 | 2015-06-01 | Freescale Semiconductor Inc | 用於資料處理系統中之快取之可程式化錯誤動作 |
Families Citing this family (92)
| 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)
| 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 |
-
2004
- 2004-09-30 US US10/956,206 patent/US7334107B2/en not_active Expired - Fee Related
-
2005
- 2005-09-29 TW TW094134048A patent/TWI293145B/zh not_active IP Right Cessation
- 2005-09-29 WO PCT/US2005/035476 patent/WO2006039643A1/en not_active Ceased
- 2005-09-29 CN CN200580032305A patent/CN100585574C/zh not_active Expired - Fee Related
- 2005-09-29 DE DE112005002328T patent/DE112005002328T5/de not_active Ceased
- 2005-09-29 KR KR1020077007177A patent/KR100871743B1/ko not_active Expired - Fee Related
-
2007
- 2007-03-07 GB GB0704417A patent/GB2433807B/en not_active Expired - Fee Related
Cited By (1)
| 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 |