TWI321751B - Performance enhancement of address translation using translation tables covering large address spaces - Google Patents

Performance enhancement of address translation using translation tables covering large address spaces Download PDF

Info

Publication number
TWI321751B
TWI321751B TW094130877A TW94130877A TWI321751B TW I321751 B TWI321751 B TW I321751B TW 094130877 A TW094130877 A TW 094130877A TW 94130877 A TW94130877 A TW 94130877A TW I321751 B TWI321751 B TW I321751B
Authority
TW
Taiwan
Prior art keywords
page
address
page table
login
field
Prior art date
Application number
TW094130877A
Other languages
English (en)
Other versions
TW200622885A (en
Inventor
Ioannis Schoinas
Gilbert Neiger
Rajesh Madukkarumukumana
Ku Jei King
Richard Uhlig
Achmed Zahir
Koichi Yamada
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 TW200622885A publication Critical patent/TW200622885A/zh
Application granted granted Critical
Publication of TWI321751B publication Critical patent/TWI321751B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation

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

九、發明說明:
t菊!^明所屬冬时々貝J 發明領域 本發明係有關於微處理器之領域,且更明確地有關於 輸入/輸出(I/O)虛擬化。 ί:先前技術】 發明背景 由於微處理器架構變得越來越複雜以支援高效能應用 ,I/O管理出現了挑戰。 應付I/O管理問題之現存技術具有數個缺點。一技術使 用唯軟體式I/O虛擬化以支援虛擬機器(VM)I/〇。此技術的 功能、效能與健全性有限。客屬作業系統(os)與應用程式 所見到之功能被在VM監視器(VMM)軟體中所模擬的虛擬 裝置支援的功能加限制。客屬1/0作業被VMM陷住且在被交 給下面之實體裝置硬體前被模擬或被代理而形成不佳之效 月b。此外’硬體裝置用之部分或全部裝置驅動器被執行成 為部分之相VMM軟體,其有害地影響該平台之整體健全 性。使用專業轉譯結構之技術可只支援特定之裝置或受限 之使用模型。-般之1/()純#理單元p、提供具有有限大小 或複雜性之I/O虛擬位址空間的支援。 【^^明内容】 發明概要 本案揭示一種裝置,其包含:一暫 .,4t b 仔°°以儲存能力指 ㈣曰出被用於-客屬實體位址對主屬實體位址之位址轉 譯的一晶片組中的一電路所支援之能力;以及用於在位址 轉譯中之頁行走的數個多層頁表,每一個頁表具有頁表登 入值,每一個頁表登入值具有至少一登入值指定符對應於 被該等能力指標所指出之能力。 5 本發明之實施例可藉由參照被用以說明本發明之實施 例的下列描述與附圖而最佳地被了解。 圖式簡單說明 第1圖為本發明之一實施例可被實作之系統圖。 第2圖顯示依據本發明一實施例的一輸入/輸出(I/O)裝 10 置指派。 第3圖顯示使用依據本發明一實施例的直接記憶體存 取(DMA)再映射之虛擬化。 第4圖顯示依據本發明一實施例的I/O位址轉譯。 第5圖顯示依據本發明一實施例的DMA再映射結構。 15 第6圖顯示依據本發明一實施例的一暫存器集,包含共 同暫存器。 第7圖顯示依據本發明一實施例的一暫存器集,包含位 址過遽暫存器。 第8A圖顯示依據本發明一實施例的一根登入值。 20 第8B圖顯示依據本發明一實施例的一内容登入值。 第8C圖顯示依據本發明一實施例的一頁表登入值。 第9A圖顯示使用依據本發明一實施例的多層表之位址 轉譯結構。 第9B圖顯示使用依據本發明一實施例的單表之位址轉 6 1321751 譯結構。 第9C圖顯示使用依據本發明一實施例的基地/周界轉 譯之位址轉譯結構。 第10圖顯示依據本發明一實施例的一暫存器集,包含 5 一能力暫存器。 第11A圖顯示使用依據本發明一實施例的多層表與跨 距之位址轉譯結構。 第11B圖顯示使用依據本發明一實施例的多層表與超 頁之位址轉譯結構。 10 【實施方式】 較佳實施例之詳細說明 本發明之一實施例為位址轉譯效能增強技術。一暫存 器儲存能力指標以指出用於一客屬實體位址轉譯為主屬實 體位址的晶片組之中一電路所支援之能力。數個多層頁表 15 被用於在該記憶體中行走之頁。每一頁表具有頁表登入值 。每一頁表登入值具有至少一登入值指定元對應於該等能 力指標所指出之能力。 在下列之描述中很多特定細節被設立。然而,其被了 解本發明之實施例可不需這些特定細節地被實作。在其他 20 實例中,相當習知之電路、結構未曾被晝出以免模糊此描 述之了解。 第1圖為本發明之一實施例可被實作之系統100的圖。 系統100包括一處理器110、一處理器匯流排120、一記憶體 控制中框(MCH)130、一系統記憶體140、一輸入/輸出控制 7 中樞(ICH)l5〇、-週邊匯流排丨55、一大量儲存裝置/介面削 與輸入/輸出裝置180j180k及185。注意系统應可包括比 上面較多或較少之元件。 處理器110代表各種型式架構之中央處理單元,如埋入 式處理器、行動處理器、微控制器、數位信號處理器'超 級電腦、向量處理器、單指令多資msIMD)電腦、複式指 令集電腦(CISC)、縮減指令集電腦(RISC) '非常長指令句 組(VLIW)或混合式架構。 處理器匯流排120提供介面信號以允許處理器11〇與如 MCH 130之其他處理器或裝置通訊。處理器匯流排12〇可支 援單處理器或多處理器組構。處理器匯流排12〇可為並列、 循序、管線、非同步、同步或其任何組合。 MCH 130提供如系統記憶體〗4〇與ICH 150之記憶體與 輸入/輸出裝置的控制及組構。MCH 130可被整合至一晶片 組内,其整合如隔離執行模式、主機對週邊匯流排介面、 記憶體控制之多重功能。MCH 130直接或經由ICH 150對週 邊匯流排155成介面。為清楚起見,並非全部之週邊匯流排 被晝出。其被意圖系統100亦包括週邊匯流排,如週邊元件 互連(PCI) ’ PCI Express,加速圖形埠(AGP),工業標準架 構(ISA)匯流排與統一序列匯流排(USB)等。 MCH 130包括一直接記憶體存取(DMA)再映射電路 135。DMA再映射電路135在I/O交易中映射一I/O裝置(如I/O 裝置1801至1801(與185之一)至系統記憶體140中之一域内。 該I/O交易典型上為一DMA請求。DMA再映射電路135提供 硬體支援以促進或增強I/O指派及/或管理。DMA再映射電 路135亦可被納入非MCH 130(如ICH 150)之任一晶片組内 。其亦可部分地或全部地在處理器110中被施作,或成為分 離之處理器或對其他處理器或裝置之共處理器。 5 系統記憶體140儲存系統碼與資料。系統記憶體14〇典 型上以動態隨機存器記憶體〇DRAM)與靜態隨機存器記憶 體(SRAM)被施作。系統記憶體包括程式碼或碼段而施作本 發明之一實施例《該系統記憶體包括一作業系統(〇s) 142或 -部分之OS或一核、及一I/O驅動器145。〇s 142或I/O驅動 1〇器145之任一元件可用硬體、軟體、韌體、微碼或其任一組 合被施作。系統記憶體140亦可包括未被顯示之其他程式或 資料。 ICH 150具有數個功能被設計以支援1/()功能。ICH 15〇 亦可與MCH 130—起或與之分離地被整合至一晶片組内以 15執行1/0功能。ICH 150可包括如PCI匯流排介面之數個介面 與I/O功能以對週邊匯流排155、處理器介面、岔斷控制器 '直接記憶體存取(DMA)控制器、電力管理邏輯、計時器 、系統管理匯流排(SMBus)、統一序列匯流排(USB)介面、 大量儲存器介面與低接角計數(LPC)介面等成介面。 20 大置儲存器裝置/介面170提供如碼、程式、檔案、資料 、應用%式與作業系統之檔案資訊。大量儲存器農置/介面 170可介接到CDrOM172、DVD 173、軟碟機m、硬碟176 與任何其他磁性或光學儲存裝置。大量儲存器装置/介面 Π0提供讀取機器可存取媒體之機制。機器可存取媒體可包 9 1321751 含電腦可讀取程式碼以如下列描述地執行工作。 1/◦裝置180!至180k可包括任何I/O裝置以執行包括 DMA請求之I/O功能。其被對週邊匯流排155成介面。I/O裝 置1801至1801(之例子包括控制器用於輸入裝置(如鍵盤、滑 鼠、執跡球、指向裝置)' 媒體卡(如音頻、視訊、圖形)、 網路卡與任何其他週邊控制器^ I/O裝置185直接對ICH 150 成介面。週邊匯流排155為支援I/O交易之任何匯流排。週 邊匯流排155之例子包括PCI匯流排與PCI Express等。 10 15 20 本發明之實施例可用硬體、韌體或其任何組合被施作 。硬體一詞一般指具有如電子、電磁、光學、光電、機械 與機電零件等實體結構之元件。軟體一詞一般指邏輯結構 、方法 '程序、程式 '常式、處理、法則、函數與陳式等 。韌體一詞一般指邏輯結構、方法、程序、程式、常式、 處理、法則、函數與陳式等,其在硬體結構(如快閃記憶體 、唯讀記憶體、可擦拭唯讀記憶體作被施作或被實施。勒 體之例子可包括微碼、可寫人之控制選通、微程式結構。 本發明之—實施例的元件以軟體或㈣被施作時基本上為 實施必要功之碼段。錄體/㈣可包括實施在本發明之 —實施例中被描述的作業之實際碼或模擬該等作掌之碼。 =等程式或碼段可被儲存在—處理料機器可存取之媒體 U被在載波調變的-信號被發射。該「處理器可讀取 二可子取之媒體」或r機器可讀取或可存取之媒體 ,存、發射或傳送資訊之任何媒體。處理器可讀取或 子取之媒體之例子包括電子電路、半導體記憶體裝置、 10 1321751 10 唯讀記憶體(ROM)、快閃記憶體、可擦拭尺〇]^(£11〇]^)、軟 碟片、CD-ROM、光碟、硬體、光纖媒體、與射頻(RF)連 結等。電腦資料信號包括可在如電子網路頻道、光纖、空 氣、電磁與RF等之傳輸媒體上傳播的任何信號。碼段可經 由如網際網路或企業内網路等之電腦網路被下載。機器可 存取之媒體可包括在被機器存取時致使機器執行下列作業 之資料。機器可存取之媒體可包括被埋入其中之程式碼。 程式碼可包括機器可讀取之碼以執行下列被描述之作業。「 資料」一祠係指就機器可讀取之目的被編碼之任何型式之 貧訊。所以,其可包括程式、碼、資料與檔案等。 本發明之全部或部分實施例可用硬體、㈣' 韌體或 其任何組合被施作。該等硬體、軟體、城元件可具有數 個模組彼此被輕合。—硬體模組用機械、電氣 15 磁細可實體連接被耦合至另一模組。一軟體模組用函數 耘序方法田ij程式、常規呼叫、跳越、連結、參數、 引數傳送與錄送回特㉟合至另—馳。—軟體模 輕合至mx魏參數、引數與指標粒/或產生 运結果、更新後變數與指標等一勒體模組用 20 與軟體輕合方法之任何組合仙合以—额。硬體7 體《刃龍組可_合至任—其他硬體、軟體絲人 。模組亦可為-軟體驅動器以與在平台上運: 互動。模組亦可為1體驅動器以組構、設立、運用= 送及接收與硬體裝置來 傳 體或韌體模組之任何組合。 軟 11 1321751 本發明之一實施例可被描述為一處理,其經常被描述 為流程圖、結構圖或方塊圖。雖然流程圖會將作業描述成 循序之處理,很多作業可並列或同時地被執行。此外,# 業之順序可重新被安排。當處理之作業完成時其被终止。 5 一處理可對應於方法、程序、程式或製造或製作方法等。 在標準計算平台中,I/O子系統元件作用成部分之單域 且被作業系統軟體管理。本發明之一實施例提供所需要之 硬體支援以指派在計算平台中之I/O裝置至多域。 一域抽象地被定義為平台之隔離環境,主機之實體兰己 10 憶體的部分集合被分配於此。該主機實體記憶體被包括於 系統記憶體140中。被允許直接存取被分配至一域之實體記 憶體的I/O裝置被稱為該域之指定裝置。一域之隔離性質藉 由封鎖對其實體記憶體之存取免於非被指定給它的資源、而 被達成。多隔離域藉由確保所有I/O裝置被指定給一些域( 15 可能是内定之域),及藉由限制來自每一被指定裝置之存取 僅至被分配給其域之實體記憶體。 每一域以實體記憶體或實體位址空間為目的,其可能 與實體記憶體之系統觀點不同。一域之資源所用以存取其 實體位址空間之位址被稱為其客屬實體位址(GPA)。主屬實 2 0 體位址(HP A)係指被用以存取記憶體之系統實體位址。若一 域之GPA被轉譯為新的ΗΡΑ以存取其被分配之系統實體記 憶體時該域被稱為非再配置的。GPA與ΗΡΑ之邏輯隔離提供 執行記憶體保護之基礎,其要求實體位址轉譯與保護機制 ’其可驗證被域指定裝置產生之客屬實體位址並將之轉譯 12 為主屬實體位址。DMA再映射電路135提供此硬體支援。 為指定I/O裝置至域,實體位址轉譯與保護就來自平台 中之所有I/O裝置的DMA請求被施用。為簡單起見,1/〇裝 置DMA請求之實體位址轉譯功能被稱為〇肘入再映射。 第2圖顯示依據本發明一實施例的一輸入/輸出(1/〇)裝 置指派。該I/O指定為映射一 1/〇裝置至系統記憶體14〇中之 一域。該映射被DMA再映射電路135支援。例如,裝置A 21〇 被映射至系統記憶體14〇中之域! 240。域1可具有裝置A 210用之一驅動器242。多於一個驅動器亦可被使用。 DMA再映射電路135包括一DMA再映射結構222與一 邏輯電路224。暫存n集22G包括數個暫存器,其提供 再映射結構222與龍電路224職社㈣紐態資訊及 I/O裝置用之程式或驅動器。DMA再映射結構222在適當之 域中提供在客屬實體位址對主屬實體位址之再映射或位址 轉譯所使㈣基本結構、儲存器或表。邏輯電路224提供執 行再映射或位址轉譯作業與其他介面功能之電路。顯A再 映射電路135可具有不同之施作以支援不同組構與提供再 映射或位址轉譯作業之不同能力。 使用DMA再映射電路135之1/〇裝置指定及/或管理可 提供數個使用與應用。二個有用之應用為健全性應用與 虛擬化應用。
OS健全性應用為域隔離就作業系統軟體具有多用途。 例如,0S可定義—域包含記憶體中之其關鍵碼與資料結構 ’且限制在系統巾由所有1/0裝置對此域之存取。此允許OS 1321751 限制透過裝置驅動 凡之pci裝置至高記憶體(高於4GB)的dma。此藉由允許分 配32位S之裝置至—個或多個域並規劃其心實體-位址_ 轉譯機制以由這些裝置再映射圓“高記憶體而被達成。 在,又有此支援下,軟體必須透過〇s跳回緩衝器恢復資料複
在更涉人之使用中,〇s可藉㈣立多域及㈣一個或 10夕個I/O裝置至各別的域而管理1/〇。在此使用中裝置驅動 益外顯地以OS登記其I/O緩衝器’及〇5指定這些1/〇缓衝器 至特定之域而使用硬體來執行DMA域保護。在此模型中, OS使用I/O位址轉譯與保護機制作為1/〇記憶體管理單元 (I/O MMU)。
益之震置的不正確程式所致之其資料與 碼的錯誤或非故意之敗壞而改善其健全性。 _在另—使用中’⑽可使用域以較佳地管理由傳統32位 虛擬化應用為該虛擬化技術允許在單一系統上一個或 多個虛擬機器(VM)之創立。每一 VM可運用其下面之實體 硬體資源而運轉。虛擬機器允許多作業系統實體在同一處 理1§上執行而提供如系統合併、傳統移入、活動分割與保 全之利益。 虛擬化架構典型上涉及二種主要類別之軟體元件:(a) 虛擬機器監視器(VMm)與(b)虛擬機器。VMM軟體層在最高 特權等級運轉且具有其下面的系統硬體之完整的所有權。 VMM允許VM共用其下面的系統硬體而又提供vm間之隔 離。 14 1321751 就ι/ο虛擬化之唯軟體方法的限制可用藉由使用dma 再映射電路135直接指定1/〇裝置至跑而被去除。以裝置之 直接指定下,被指定之I/O裝置的驅動器僅在其被指定之 VM中執行且被允許不致陷於VMM地直接與裝置硬體互動 5 。該硬體支援致用0厘八再映射而不需有VMM中之裝置特定 知識。 在此模型中,VMM將其本身限制於一控制功能,其外 顯示地進行對VM指定之裝置指定的設立與撕裂。非如在 I/O虛擬化之唯軟體方法之情形中地就所有客屬1/〇存取陷 10入於VMM,VMM要求客屬存取如裝置組構空間存取與 岔斷官理等地僅陷入於保護特定資源,其影響系統功能。 為支援I/O裝置對VM之直接指定,VMM管理來自I/O裝 置之DMA。VMM可映射本身至一域且映射每—VM至獨立 域。I/O裝置可被指定至域,且DMA再映射電路135所提供 15之貫體位址轉譯硬體可被用以來自I/O裝置之DMA僅至被 指定至其雙親域之實體記憶體。就在實體記憶體中可被重 新配置之VM而言(即GPA與ΗΡΑ不同),DMA再映射電路135 可被規劃以進行必要之GPA對ΗΡΑ轉譯。 利用對I/O裝置指定之硬體支援,VMM施作可選擇唯軟 20體1/0虛擬化方法與直接裝置指定之組合以呈現I/O裝置資 源至VM。 第3圖顯示使用依據本發明一實施例的直接記憶體存 取(DMA)再映射之虛擬化。該虛擬化包括二裝置a與b 310 與312、DMA再映射電路135、一VMM或主機OS 320、VM〇 15 1321751 340與VMm 360。 一裝置A與B 310與312分別為被二VM 340與360支 援之二I/O裝置。DMA再映射電路135以不需VMM或主機 OS 320之特定知識地直接映射此二裝置至各別之VM34〇 5 與360。 VMM或主機〇S 320為其正在指定之平台或系統的基 礎硬體提供支援。VM 340與360具有類似之架構元件但彼 此完全被隔離。其對VMM或主機〇S 320成介面以對系統硬 體存取。VM 340包括應用程式342與344。較多或較少之應 10用程式可被支援。其具有客屬OS 346與一裝置A驅動器350 。裝置A驅動器350為驅動、控制、或介面或支援裝置a 31〇 之驅動器。類似地,VM 360包括應用程式362與366。較多 或較少之應用程式可被支援。其具有客屬〇s 366與一裝置6 驅動益370。客屬OS 366可與VM 340中之客屬〇s 346相同 15或不同。裝置B驅動器370為驅動、控制、或介面或支援裝 置B 312之驅動器。 在沒有DMA再映射電路135之唯軟體方法中,裝置a與 B驅動器350與370會駐於VMM或主機〇s 320中。此二驅動 斋之功能因而被在VMM中模擬之功能加以限制。在沒有 20 DMA再映射支援下,VMM必須提供模擬/代理驅動器且客 屬OS使用VMM決定要曝現之對虛擬裝置為特定的裝置驅 動器。其可能為與真實平台裝置無關之裝置或與真實平台 裝置相同之裝置。在後者之情形中,VMM將該真實裝置代 理。此外,由於客屬I/O作業被VMM或主機〇S 320陷住且 16 在被交給下_實财置硬财被代理級賴,其效能 可能被限制。最後,由於全部或部分之裝置A與B驅動器350 與370被執行作為部分之彳特權#vmm軟體,平台之整體 健王I·生被折衷’尤其是當這些驅動器會產生錯誤而撞擊 VMM或主機〇s 320時為,然。以DMA再映射電路135下裝置 A與B驅動|§35G與37G可直接對各1/0裝置31〇與312互動而 避免所有上面的限制。 DMA再映射架構被DMA再映射電路135提供而促進指 定I/O裝置至任意個數之域。每—域具有可能與系統實體位 址工間不同之貫體位址空間eDMA再映射提供在來自裝 置的DMA請求中之客屬實體位址(GpA)交換為被分配至其 域的對應之主屬實體位址(HPA)。 為支援此點,該平台可支援一個或多個實體位址轉譯 硬體單το。每一位址轉譯硬體單元支援起源於其硬體領域 内之I/O交易的再映射。例如,一桌上型晶片組施作可曝現 單一DMA再映射硬體,其轉譯在記憶體控制中樞(mch)元 件之所有I/O交易。具有一個或多個心晶片組元件之伺服器 平台可支援在每一元件中之獨立的轉譯硬體單元,每一轉 課DMA請求係起源於其I/O階層内。該架構支援這些硬體單 元可共用系統記憶體中之相同轉譯資料結構或使用獨立之 結構(依軟體規劃而定)的組構。 該晶片組DMA再映射電路135處理DMA請求中之位址 成為客屬實體位址(GPA)。DMA再映射電路135可施用位址 轉譯至到來之位址以將之變換為主屬實體位址(ΗΡΑ),此係 1321751 在如窺視處理器快取記憶體或傳遞至記憶體控制器之進一 步處理前進行。 在各種虛擬化背景中,被DMA再映射電路丨35施作之位 址轉譯功能依VMM所支援之實體記憶體管理而定。例如, 5在軟體進行主機實體記憶體分配作為連續區域之使用中, 為變換GPA至ΗΡΑ之DMA轉譯可為簡單之偏差相加。在 VMM以頁之顆粒性管理實體記憶體的使用中,DMA再映射 電路135可使用記憶體常駐位址轉譯結構。 第4圖顯示依據本發明一實施例的I/O位址轉譯。該I/O 10位址轉譯包括二I/O裝置1與2 410與412、DMA再映射電路 135、一實體記憶體420與一客屬觀點440。 I/O裝置1與2 410與412被指定至分離之域。其對位址 DMA_ADR指定I/O請求DMA請求。DMA再映射電路135映 射此二裝置至實體記憶體420中被分配之對應的域。實體記 15 憶體420分配域1 422與424及域2 426與428。較多或較少被 分配之記憶體段可為這些裝置被分配。域1 422與424對應 於裝置1 410及域2 426與428對應於裝置2 412。在第4圖顯 示例中,裝置1 410被映射至域1 422及裝置2 412被映射或 被指定至域2 428。 20 客屬觀點44〇為由客屬I/O裝置之邏輯觀點。其包括域1 442與2 444。域1 442對應實體記憶體420中之二域1 422與 424。域2 444對應域2 426與428。由客屬觀點440,其只有 一域對應一I/O裝置。來自裝置1 410之DMA_ADR位址被映 射至位於位址空間内之域1 442由0至L的DMA_ADIU。類似 18 1321751 地’來自裝置2 412之DMA_ADR位址被映射至位於位址空 間内之域2 444由0至K的DMA_ADR2。 負責該等域之創立與管理的軟體為二域分配實體記憶 體420並設立DMA再映射電路135中之GPA對ΗΡΑ位址轉譯 5功能。DMA再映射電路135轉譯裝置410與412所產生之GPA 為適當的ΗΡΑ。 第5圖顯示依據本發明一實施例的dma再映射結構。
DMA再映射結構222接收一來源辨識元51〇且包括一根表 520、數個内容表530〇至530u及數個位址轉譯結構表54〇〇至 10 54仏。再映射結構222由1/0裝置接收來源辨識元51〇與一客 屬實體位址,且轉譯該客屬實體位址為在指定域中之一主 屬實體位址。該轉譯可使用以階層方式被配置之轉譯表被 執行。該轉譯機制由根表520開始,並橫越或行進通過内容 表530〇至530„及數個位址轉譯結構表54〇q至“I。 15 20 —出現在DMA再映射電路⑶之1/〇交易之請求者身份決 定該起源之裝置與該起源之1/〇裝置被指定的域。來源辨識 兀510為辨識1/〇交易之起源者的屬性。DMA再映射電路135 可以施作特定之方式決定一交易之來源辨識元I例如, 一些1/〇控制通訊協定可提供_裝置之身份作為每-1/0 父易的一部分。在其他情形如晶片組集積裝置中,來源辨 識凡510可根據晶片組之内部施作被隱喻。 至被提 裝置而言’來源辨識元Μ。被映“ 構請求者辨識元。請求者辨識· 構軟體所衫之其PCI控卿、置/魏_㈣ 19 1321751 出啟動ι/ο請求之硬體功能。在一實施例中,來源辨識元510 包括一功能號碼512、一裝置號碼514與一匯流排號碼516。 在第5圖顯示之例中,功能號碼為K位元寬、裝置號碼514 為L位元寬、及匯流排ϊ虎碼516為Μ位元寬。匯流排號碼516 5 定出I/O交易被產生之控制。裝置號碼514定出被辨識之控 制上的特定裝置。功能號碼512定出被I/O裝置請求之特定 功能。來源辨識元510被用以對根表520與内容表530〇至53〇11 查表或為其定檢索指標。在第5圖顯示之例中,其有二ι/ο 交易使用控制匯流排〇與控制匯流排m。 10 就PCI Express裝置而言,根表520儲存被來源辨識元 510或來源辨識元510之控制號碼516定檢索指標之根登入 值525〇至525m·〗。該等根登入值作用成頂層結構以映射一特 定控制上之裝置至其各別的雙親域。根登入值〇 525G對應使 用控制0之I/O交易。根登入值m 525m對應使用控制 15交易。該等根登入值〇 5250與525„/分別指向内容表530〇與 530m。在一實施例中,這些登入值為對應之内容表提供基 地位址。 内谷表530〇至530u儲存用根登入值所參照之内容登入 值535k。該等内容登入值535、映射該等I/O裝置至其對應之 20域。裝置號碼514與功能號碼512被用以獲得對應I/O交易之 内容登入值。在一實施例中,其形成一指標以指向或參照 被對應之根登入值所參照之内容表。其有2m*2l*2k4 2m+l+k個内容登入值。在一實施例中,k=3,L=5及M=8, 形成總數為64K登入值而被組織為2m(28=256)個内容登入 20 值之表。在第4圖顯示之例中,二個1/〇交易用之二個内容 登入值為在内容表53〇〇中之内容登入值535〇與在内容表 530„中之内容登入值53&。内容登入值535〇與535^分別指 向位址轉譯結構540()與54〇111。 5 位址轉譯結構54〇〇至540v使用對應於I/O交易之客屬實 體位址提供對主屬實體位址之位址轉譯。每一位址轉譯結 構54〇0至540v可為多重表55〇、單表56〇或基地/周界57〇而分 別對應於使用多重表、單表與基地/周界之三種轉譯機制。 在下列之描述中’ 4KB之普通頁大小被使用。如熟習本技 1〇蟄者所習知者,其他大小亦可被使用。 為提供DMA再映射電路135之軟體彈性控制,DMA再 映射電路135具有數個暫存器被包含於第2圖中顯示之暫存 °。集220中。暫存器集220透過一基地位址暫存器(bar)被置 於主屬貫體位址空間中。轉譯硬體BAR暫存器以施作相依 方式被曝現至軟體。此可被曝現成在晶片組集積裝置(如記 憶體控制裝置)之一中的一PCI組構空間暫存器。在一實施 例中,BAR暫存器最小有4尺之位址窗。暫存器集22〇中之暫 存器具有控制襴位。一欄位可被主張或被否決。當一欄位 含有一位元時,主張係表示該位元被設定為被定義之邏 20輯狀態(如真、邏輯1)及否決係表示該位元被重置為被定 義之邏輯狀態,其與該主張之狀態互補(如假、邏輯0)。 在下文中’主張或否決狀態之使用為任意的。一欄位可 被主張以指出一第一狀態且被否決以指出一第二狀態, 反之亦然。 21 在暫存器之一襴位可用DMA再映射φ 被規劃、初純或_。其可難於㈣5及/或軟體 結構、函數、常規或方法所施作之功能體電:或資料 被分組至暫存哭内。 在下文中,攔位 分乡且、柊切^组 中的這些欄位或位元之 。式化或,'且織係為說明之 组、抹k些欄位之其他分 。式化或組織方法可被使用。—攔位 個暫存器中被複製。暫在„„ , ,' 口 S、夕 暫存②可比職述者具有較多或較少 ^欄位。此外,暫存器可用很多方法被施作包括作為儲 存元件或記憶體元件。 1〇 第6圖顯不依據本發明-實施例的-暫存器集,包含共 同暫存器。該共同暫存器包括―記憶體型式報告暫存器 (MTYPE一REG)610、一全面命令暫存器(gcmd—reg)62〇 、一根登入值表位址暫存器(RTADDRJlEG)63〇與一内定内 容暫存器(DEF_REG)640。 MTYPE_REG 610報告轉譯資料結構之記憶體型式。其 包括一錯誤日誌記憶體型式(FMT)欄位、一頁表記憶體型式 (PMT)欄位、一内容登入值表記憶體型式(CMT)、與一根登 入值表記憶體型式(RMT)攔位618。 FMT攔位612指出該錯誤日誌區域是否為可快取的。若 20 為否,其指出該錯誤日誌區域不為可快取的。在被主張時 其指出該錯誤日誌區域為在可快取之區域内。PMT攔位指 出該等頁表是否為可快取的。若為否’其指出該等頁表為 在不被快取之區域内。在被主張時其指出該等頁表為在可 被快取之區域内。CMT攔位616指出該等内容表是否為可快 22 1321751 取的。在被否決時’其指出該等内容表為在不被快取之記 憶體區域内。在被主張時,其指出該等内容表為在可被快 取之記憶體區域内。RMT欄位618指出該等根表是否為可快 取的。在被否決時,其指出該等根表為在不被快取之記憶 5體區域内。在被主張時’其指出該等根表為在可被快取之 記憶體區域内。 GCMD-REG 620控制轉譯行為。其包括一轉譯硬體致 用(HE)欄位622與一寫入緩衝器沖刷(WBF)攔位624。 HE欄位622為一軟體可程式控制欄位以致用或不致用 10轉譯硬體。在被否決時’其指出不要致用轉譯硬體。在被 主張時’其指出要致用轉譯硬體。在更新此欄位時,軟體 應讀回及檢查此欄位以確認致用/不致用狀態。 WBF欄位624被用以沖刷晶片組内部寫入緩衝器。此被 完成以確保對内容頁或頁表之任何更新不會被保存於任何 15内部寫入張貼緩衝器中。軟體主張此襴位以發出緩衝器沖 刷命令。邏輯電路224否決之以提供寫入緩衝器沖刷完成之 指示。軟體應讀回及檢查此將被否決之欄位以域認沖刷完 成。 RTADDR_REG 630設立記憶體常駐根表之基地位址。 20 軟體應藉由寫入最後低雙句組(DWORD)來規劃此暫存器 。其包括一根表基地位址(RTA)攔位632與一致用内容登入 值(ECE)欄位634。RTA欄位632指向系統記憶體中頁對齊、 普通大小之根表的基地。普通大小可為任何方便之預先定 義的大小。在一實施例中,該普通大小為4KB。DMA再映 23 射電路135可只施作最小有效錄元,此處N為主機位址寬 度一12。其餘之攔位可被處理成唯讀的。ECE欄位634為致 用或不致用内容登入值之一控制攔位。DMA請求根據内定 暫存器之規劃被處理。根與内容表在記憶體中被設立,及 5根表之基地在上位元(如位元12至63)中被提供。 DEF—REG 640定出内定内容。内容表中之每一内容登 入值定出如何管理來自特定裝置之DMA請求。内定内容代 表被DMA再映射電路135管理之裝置初始地被指定至軟體 規劃該裝置以在域中映射表及致用這些表之查表為止的一 10内定域。例如,在熱插用一I/O裝置至系統之際,若此裝置 之内谷未被軟體預先規劃,該裝置被指定至該内定域至軟 體外顯地將之指定至另一域為止。該内定内容透過 DEFJUEG 640被規劃。 轉譯硬體如下列地檢查DMA請求中之來源辨識元。若 15内容登入值被致用(如透過一全面命令暫存器),在到來之 DMA請求中之來源辨識元被用以檢查其對應之根登入值及 透過根登入值查内容登入值。在此情形中,DMA依據該等 根與内容登入值之規劃被處理。若該内容未被啟用,DMa 請求依據REF_REG 640被處理。 2〇 類似其他内容登入值者,内定内容可被規劃以執行特 定型式之轉譯功能’如封鎖、通過、位址過濾與使用轉, 結構被轉譯之位址等。 一單/多層表 REF_REG 640包括一出現(P)攔位642、 搁位650、一位址空間根(ASR)棚位654、一客屬位址寬声 24 1321751 (GAW)搁位656、*錯誤處理搁位660、與一域辨識元(DID) 欄位662。典型上’ P欄位642與Μ欄位650為一位元之指 標。 Ρ欄位642在處理交易時應永遠被檢查。在被否決時, 5 其指出透過此内容登入值之所有交易被封鎖時。在被主張 時其指出透過此内容登入值之處理交易係根據其他攔位之 規劃。 Μ欄位650被用以指出多層表交易是否被使用。在被主 張時’就此内容登入值位元被使用之單層頁表應被使用以 10將該頁表中之登入值定檢索指標。在被否決時,就此内容 登入值被使用之多廣頁表應被使用以在該根表中杳該等登 入值。 ASR欄位654為位址空間根之大小被對齊之主屬實體 位址。在使用連續位址空間時’此攔位包含該域之實體位 15址空間的基地位址。在使用頁表(單層或多層),此攔位指向 根表之基地。GAW欄位656僅對定出單或多層頁表之内容登 入值為有效的。在使用多層頁表時,此攔位指出將被〇河八 再映射電路135為頁表行進所使用之調整後的客屬位址寬 度(AGAW)。在此欄位中被定出之值為被dma再映射電路 2〇 135支援且在能力暫存器中被報告的AGAW值。該能力暫存 器為指出被DMA再映射電路丨35支援之能力的一暫存器。在 此欄位被定出之值為介於單層頁表之最小GAW與被能力暫 存器中之DMA再映射電路135報告之MGAW間。 若DMA再映射電路135檢測到在此攔位中之值未被其 25 下之基礎施作支援,透過此内容登入值之DMA請求被封鎖 且形成轉譯錯誤之結果。透過此内容登入值之任一DMA請 求及存取高於2GAW-1(此處GAW為在此欄位中之該值)之存 取被封鎖且形成轉譯錯誤之結果 IP襴位660致用或不致用被DMA請求處理透過此内容 登入值之錯誤的記錄。 DID欄位662指出該内定域之域辨識元。 位址過渡 該多層頁表結構式之位址轉譯藉由允許軟體以普通頁 之顆粒度(如4KB)管理記憶體而提供最大之彈性。然而,多 層頁表結構由於其要求硬體走過頁表而引發最大之位址轉 譯延遲。就算硬體施作可運用轉譯快取以降低轉譯費用在 I/O轉譯後備匯流排(TLB)漏失上引發之頁行走延遲就某些 形式之I/O父通可為不適合的。例如,使用等時頻道之如高 定義音頻的來自PCI-Express裝置與如集積圖形之某些晶片 組集積裝置的DMA請求無法引發定性之DMA再映射延遲。 就支援可能被DMA再映射延遲負面地影響之1/〇裝置 的硬體轭作而言,該架構定義透過D]yLVfe址過濾(取代位址 轉譯)對非重新配置之域的裝置指定。非重新配置之域為其 客屬實體位址空間為系統之主屬實體位址空_部分集合 之域。位址過濾保存對管理普通大小(如4KB)之頁中的主機 I/O裝置的軟體彈性且只引發最小之費用。 對位址過濾之支援被〇]^八再映射電路135透過暫存器 集220中之能力暫存器加以報告。如未域料頻道之硬二 施作能進行來自所有裝置之DMA請求’其不被要求要支援 位址過濾。若一平台組構如每一個晶片組元件或PCI-
Express根表有一個地要求多DMA再映射硬體單元,或位址 過濾支後若被該等單元之一要求,則其被所有硬體單元支 5 援。 就位址過濾而言,在被分配至非重新配置之域中之記 1¾體内的頁透過如在第7圖被顯示之被稱為過濾位元地圖 表之記憶體常駐表被指出。該架構只支援單一非重新配置 之域且因而只支援每一被報告的DMA再映射硬體的單—過 10渡位元地圖表指標。該過濾位元地圖表之位置與大小透過 第7圖顯示之位址過濾基地與大小暫存器被規劃。過濾位元 地圖表之大小被計算成4KB*2S,此處S為對位址過濾大小 暫存器被規劃之值。在表中之每一位元代表4K之主頁,而 以第一位元代表第一個4K之主屬實體位址空間。過濾位元 15 地圖表之最小大小為4KB,此映射該主機記憶體之第-個 128 MB區域。 其DMA請求只可被硬體加以位址過濾之裝置被平台細 體報告至軟體。為這些裝置之内容登入值的任何規劃應確 保其被設立以進行位址過慮而非封鎖以允許通過,或對該 20 DMA請求作位址轉譯。 其DMA請求亦可被位址轉譯或位址過濾之I/O裝置可 藉由規劃對應之内容登入值以指出位址過濾而被指定至非 重新配置之域。類似地,該非重新配置之域可藉由規劃該 内定内容暫存器以指出位址過滤而被做成與内定域相同。 27 若内容登入值被規劃以指出位址過濾,其餘之登入值攔 位(非有效、出現與通過欄位)被DMA再映射電路135忽略。 透過疋出位址過濾之内容登入值被處理的DMA請求被 DMA再映射電路135如下列般地被處理: 5 1·〇ΜΑ明求被驗證以正透過正常晶片組DMA位址解 碼邏輯在存取記憶體。若DMA請求被解碼為層對層,DMA 請求被封鎖。 2.若DMA請求為對記憶體,DMA請求以之為目標的記 憶體位置被驗證為在一 4&之頁内。 1〇 3·若上面的二種檢查通過,DMA請求中之GPA被驗證 為在非重新配置之域的位址空間内。企圖要存取高於 (2(Ρ+27)-1)位址之DMA請求被封鎖,此處?為在過濾位元地 圖大小暫存器中被規劃之值。 4.若所有上面的檢查通過,DMA再映射電路135檢查對 I5應於被DMA請求在過濾位元地圖表中之位元偏置 [GPA»12]存取的頁之位元。若該位元為空的,圓八請求 被處理為正常的。若該位元被設定,DMA請求被封鎖。 第7圖顯示依據本發明一實施例的一暫存器集22〇,包 含位址過濾暫存器。暫存器集220包括一過濾大小暫存器 20 (FSIZE_REG)710、一過濾基地暫存器(FBASE REG)72〇、 一過濾控制暫存器(FCTL_REG)73〇與一過濾錯誤暫存器 (FFLT—REG)740。 FSIZE_REG 710指出位址過濾位元地圖表之大小。若 DMA再映射電路135不支援位址過濾’此暫存器被處理成為 28 1321751 保留的(如寫入被忽略,及讀取送回〇)。其包括一過濾表大 小(FTS)攔位712與一過濾位元地圖記憶體型式(BMT)欄位 715 β BMT攔位715指出位元地圖區域是否為可快取的。在 被否決時,其指出位元地圖區域不為可快取的。對此欄位 5 之寫入被忽略。在被主張時,其指出位元地圖區域在為可 快取的區域中。FET攔位712指出位址過濾表之大小。此大 小用下列之公式被計算。TableSize = 4K*2FSIZE-REG個位元 組。例如:OOOOh : 4KB表支援128MB記憶體;OOOlh : 8KB 表支援256MB主記憶體;〇〇〇5h : 128KB表支援4GB主記憶 10 體等。 FBASE_REG 720保存指向位址過濾位元地圖表之基地 位址的指標。若DMA再映射電路135不支援位址過濾,此暫 存器被處理成為保留的(如寫入被忽略,及讀取送回0)。其 包括一過濾表基地(FTB)攔位725。FTB攔位725為指向記憶 15 體中之位址過濾表中之基地位址的一指標。該表以大小被 對齊。最小之表的大小要支援4GB之可定位址性的128K。 FCTL_REG 730控制位址過濾位元地圖表之快取。若 DMA再映射電路135不支援位址過濾,此暫存器被處理成為 保留的(如寫入被忽略,及讀取送回0)。其包括一過濾緩衝 20器致用(FHE)攔位732、一寫入緩衝器沖刷(WBF)欄位734、 一過濾快速無效(FCI)欄位736、與一過濾表保護(FTP)欄738 。FHE欄位732為一軟體可程式控制欄位以致用或不致用該 位址過濾硬體。在被否決時,其指出不致用該位址過濾硬 體。反而被位址過濾之任一DMA請求被處理成為通過。在 29 1321751 被主張時,其指出致用該位址過濾硬體過濾基地與大小暫 存器被規劃’此係在透過此欄位在致用位址過遽 進行。WBF欄位734被用財刷晶片_部寫入緩衝器。此 被完成以過濾位元地圖表更新不會被保存於任何内部寫入 5張貼緩衝器中。軟體主張此欄位以發出寫入緩衝器沖刷命 令。DMA再映射電路135將之否決以提供寫人緩衝器沖刷完 成之指示。該軟體應讀回及檢查將被否決之攔位以確認沖 刷完成。FCI襴位736使位址過濾位元地圖快取無效。軟體 主張此棚位以请求位址過濾位元地圖快取無效。Dma再映 10射電路135將其否決以指出無效完成該軟體應讀回及檢查 將被否決之攔位以確認無效完成仆T P欄位指出保護位址過 濾位元地圖區域。在其被軟體主張時,硬體開始保護位址 過濾位元地圖區域免於DMA存取。該軟體應讀取並檢查將 被否決之此攔位以確認位址過濾位元地圖區域被保護。在 15其被軟體否決時’硬體停止保護位址過濾位元地圖區域免 於DMA存取。 FELT_REG 740報告位址過濾硬體所檢測之錯誤。若 DMA再映射電路135不支援位址過濾,此暫存器被處理成為 保留的(如寫入被忽略,及讀取送回〇)。其包括一錯誤位址 20 (FA)欄位742、一型式(T)欄位744與一有效(V)欄位746。FA 攔位742為被錯誤DMA請求所存取之位置的訊框位址。T欄 位744指出錯誤DMA請求之記憶體存取型式。在被否決時其 指出DMA寫入。在被主張時其指出DMA讀取請求。V欄位 746指出錯誤DMA請求之頁訊框位址是否被閂鎖。在其被主 30 1321751 張時,錯誤DMA請求之頁訊框位址在該錯誤位址欄位被閂 鎖且無進一步位址過濾錯誤位址被閃鎖。軟體應外顯地透 過寫入否決此襴位以重新致用位址過淚錯誤記錄。 第8A圖顯示依據本發明一實施例的—根登入值520。根 5 登入值520包括一出現(P)欄位810與一内容登入值表指標 (CEP)欄位815。 P棚位810指出根登入值是否出現。在被否決時其指出 根登入值未出現且不應被使用。DMA再映射電路135使透過 此根登入值被處理的DMA請求錯誤。在被主張時,其指出 10 根登入值出現且可被用以處理該交易。 CEP欄位815為對此匯流排所用之内容表的一指標。該 内容表之大小為4KB且被以頁對齊。 第8B圖為依據本發明一實施例的内容登入值535。内容 登入值535包括一出現(p)欄位822、一多層(M)欄位830、一 15位址空間根(ASR)欄位834、一客屬位址寬度(GAW)攔位836 、一錯誤處理(FP)欄位840與一域辨識元(DID)欄位842。内 谷登入值535具有之欄位類似第6圖中顯示之錯誤暫存器 DEF_REG 640者。典型上,p攔位822與μ欄位830為一位元 之指標。 20 ^位822、厘欄位83〇、ASR欄位834與GAW攔位836分 別類似第6圖中顯示之錯誤暫存器(DEF一REG 64〇)的ρ欄位 642、Μ襴位 650、ASR欄位654與GAW欄位656。 DID攔位842為此内容登入值所屬之域的辨識元。軟體 必須確保所有裝置使用同一頁表結構,且因而使位址相同 31 1321751 地被轉譯、在其内容登人值具有相同之域辨識sDMA再映 射電路135可使用該域辨識元用於在快取支援被使用時為 被快取之登入值加標籤。 第8C圖為依據本發明一實施例的頁表登入值(pTE) 5 565。PTE 565包括一可1 買取(R)攔位850、一可寫入(w)欄位 852、一連貫(〇欄位854、一超頁攔位8S6與一位址(ADDR) , 欄位860。注意,比這些攔位多或少之攔位可被定義。 φ R襴位850指出頁是否就DMA為可讀取的。在被否決時 ,其指出該頁對DMA讀取請求不為可存取的。透過此頁表 10登入值之DMA讀取請求被封鎖。若錯誤報告被致用,一轉 譯錯誤被產生。在被主張時,其指出該頁對D M A讀取請求 為可存取的。 W攔位852指出頁是否就DMA為可寫入的。在被否決時 ,其指出該頁對DMA讀取請求不為可存取的。透過此頁表 15登入值之DMA讀取請求被封鎖。若錯誤報告被致用,一轉 • 孑錯誤被產生。在被主張時,其指出該頁對讀取請求 為可存取的。 : C襴位854指出對被轉譯之主屬實體位址的存取是否為 連貫的。在被否決時,其指出對被轉譯之主屬實體位址的 20 DMA存取遵循在I/O交易中被定出之連貫性屬性。例如,具 有「無偷窺」屬性之PCI-X或PCI-Εχρ聰請求設定沒有被偷 窺地存取被轉譯之主屬實體位址。在被主張時,其指出對 被轉譯之主屬實體位址的DMA存取被處理為連貫的。在所 有頁表登入值中當DMA再映射電路135若不支援c欄位之 32 丄以1751 被主張的設定(如在能力暫存器中被報告者),且在具有分 摘位之非活頁頁表登入值被主張時,該軟體應確定此搁位 被處理為被保留的(〇)。 SP欄位854對DMA再映射電路135指出此為一活頁頁 5表登入值且完成頁行走。在被否決時,其指出繼續頁行走 且使用下一層之表。在被主張時,其指出停止頁行走且使 用在頁行走之客屬實體位址中未被使用之下位元以及在 ADDR攔位860中所提供之頁基地位址的上位元來形成主屬 實體位址。DMA再映射電路135僅在對應於其支援之頁表登 10入值中評估SP欄位成為在能力暫存器中被報告者。軟體應 在下列情形中處理此攔位作為被保留的(如〇) : (1)在多層頁 表中之4KB活頁頁表登入值;(2)在對應於未被DMA再映射 電路135支援之超頁大小的多層頁表中之非活頁頁表登入 值;及(3)在單層頁表中之頁表登入值。 15 若該頁框為活頁節點,ADDR欄位860包含該頁框之主 屬實體位址。否則其包含指向下一層頁表之指標。此攔位 以大小被對齊。 注意,額外之欄位可被定義以進一步使位址轉譯機制 之屬性特徵化。例如,下面之屬性可被定義:要致用基地/ 20 周界轉譯之一基地/周界屬性、要指出在多層表轉譯中第一 層頁表的大小之一跨距屬性、及要指出I/O交易是否被允許 不需轉譯地通過的一通過屬性。 位址轉譯機制 為支援軟體所支援之實體記憶體管理的顆粒性變化, 33 DMA再映射架構定義三種型式之位址轉譯結構。晶片組施 作可支援登入值指定元之這些轉譯結構且透過其能力暫存 器報告所支援之型式。這些機制提供變化之成本、複雜性 與效能權衡。為施作支援多轉譯結構,每一内容登入值可 被規劃以使用不同之轉譯結構型式。 下列之位址轉譯結構被定義:(1)多層頁表結構以透過 多層之頁大小的頁表以每一個在頁大小之區域地致用區域 之以頁為顆粒度的分配;(2)單層頁表結構以透過單一連續 頁表致用以頁為顆粒度的分配;及(3)基地/周界轉譯結構以 致用對域之連續的區域分配。任一上面之轉譯結構可被選 擇作為内定的或備選的。 第9Α圖顯示使用依據本發明一實施例的多層表之位址 轉譯結構540。位址轉譯結構54〇包括内容登入值535,一調 整後之客屬實體位址(AGPA)910、一第一層頁表920、一中 間表930、一活頁節點表94〇、與一頁95〇。該多層表包括以 階層方式被配置之數個轉譯表。 内容登入值535之ASR欄位為第一層頁表920提供基地 位址。AGPA 910包括一偏差攔位912、一活頁節點頁表攔 位914、一中間頁表欄位916、及一第一層頁表欄位918。其 應被注意在多層頁表中之層數可依AGPA910之寬度、記憶 體空間 '記憶體管理政策、句組寬度與任何其他施作因素 而定地為任何適當之數目。 第一層頁表攔位918與ASR所提供之第一層基地位址 被組合以將第一層頁表920定檢索指標。在一實施例中,每 1321751 登入值為8位元組,第一層頁表攔位918被移位器922移位 3個位元,然後用加法器924被加到第一層客屬實體位址以 提供一第一層指標至第一層頁表92〇β被指定指標之第一層 頁表登入值為中間層頁表93 0提供該中間基地位址。 5 中間頁表棚位916與中間基地位址被組合以將中間頁 表930定檢索指標。由於每一登入值為8位元組,中間頁表 欄位916被移位器932移位3個位元,然後用加法器934被加 到中間客屬實體位址以提供一中間指標至中間頁表92〇。被 指定指標之中間頁表登入值為活頁節點頁表94〇提供該活 10 頁節點基地位址。 活頁節點頁表欄位914與ASR所提供之活頁節點基地 位址被組合以將活頁節點頁表940定檢索指標。在一實施例 中,由於母一登入值為8位元組,活頁節點頁表攔位914被 移位器942移位3個位元,然後用加法器944被加到活頁節點 15客屬實體位址以提供一活頁節點指標至活頁節點頁表940 。被指定指標之活頁節點頁表登入值為頁頁表95〇提供該客 屬基地位址。 然後偏差912與客屬基地位址被組合以產生頁95〇中之 客屬實體位址。 2〇 該多層頁表允許軟體以頁之顆粒度(如4Κ)管理主機實 體記憶體並以頁目錄與頁表設立階層結構。邏輯電路224使 用DMA交易中所提供之GPA施作頁行走邏輯並橫越這些結 構。需被橫越以轉譯DMA請求中之GPA的頁表之最大層數 為對應的内容登入值之客屬位址寬度的函數。軟體可透過 35 此力暫存器查詢被DMA再映射電路135之已知硬體施作 所支援的最大客屬位址寬度。 為曰通頁大小、Q為每一登入值之位元組個數、p ^n#2P==I^2q=Q。—域之調整後客屬位址寬度 (AGAW)為其客屬位址寬度(GAW)值被調整,使得(AGAw P)為(p-q)之倍數。AGAW如下地被決定: R==(GAW-p)MOD(p-q); 右(R= = 〇) { AGAW=GAW ; }否則{ AGAW = GAW+(p — q) — R ; } 例如’假設P = 4K及Q=8,則p=12及q=3。2GB之記 憶體被分配之一域具有之GAW為3i。其AGAW為: 15 R= (31 — 12)mod 9=1 AGAW=31 + 9- 1 = 39 調整後之客屬位址寬度(AGAW)指出頁行走之層數。 DMA再映射電路135支援被定義之AGAW,此處對應GAW 等於主屬位址寬度。在為一域使用多層頁表時,軟體如上 2〇 述地計算客屬位址寬度(AGAW)。該軟體在設立多層頁表結 構時使用AGAW。其為被指定至此域之所有裝置規劃在内 容登入值中之該域的GAW與AGAW。 DMA再映射電路135亦支援較小的調整後之客屬位址 寬度。其可透過能力暫存器報告該被支援的調整後之客屬 36 1321751 位址寬度。軟體應確保其使用在為一域設立多層頁表時被 在其下之基礎硬體施作所支援的一 AGAW。該軟體亦應為 被指定至此域之裝置規劃在内容登入值中之該域的 AGAW。 5 透過内容登入值被處理之DMA請求定出多層位址轉譯 係如下列般地被DMA再映射電路135處理: 1.在DΜA請求被定出之gpA/長度組合依據DMA再映 射電路135是否支援頁邊界穿越而被使用。若dma再映射電 路135支援頁邊界穿越,且(}1>八/長度指出dma請求穿越頁 10邊界,則DMA請求之目標的每一頁區域獨立地被位址轉譯 。若DMA再映射電路135不支援頁邊界穿越,且GpA/長度指 出DMA請求穿越頁邊界,則形成一位址轉譯錯誤之結果。 2·在内容登入值中之GAW欄位不為DMA再映射電路 135所支援之調整後客屬位址寬度,其在能力暫存器中被報 15告,然後DMA請求被封鎖,且形成一位址轉譯錯誤之結果。 3.DMA請求中之GPA被驗證為在該裝.置被指定之域的 客屬貫體位址空間内。企圖存取高於(2X—1)位址之記憶體 位置的任一DMA請求被封鎖,此處X為被用以處理此dma 請求之内容登入值中規劃的客屬位址寬度。 2〇 4.若上面的檢查為成功的’ DMA請求中之GPA被調整 為X位元以形成一調整客屬實體位址(AGPA),此處X為被用 以處理此DMA請求之内容登入值中規劃的客屬位址寬度。 對AGPA之DMA請求依據該等多層頁表結構之規劃被封鎖 或被轉譯為有效的ΗΡΑ。 37 1321751 5. DMA再映射電路135執行被步驟4所產生之ΗΡα的正 常晶片組位址解碼,並處理DMA請求作為對記憶體< —存 取或一層對層請求。 6. 若被轉譯之ΗΡΑ被解碼以記憶體為目的地,HPA依據 5 為设疋連貫(C)屬性之支援被存取。若DMA再映射電路135 只支援在頁表登入值中連貫(C)屬性之否決設定,記憶體依 據DMA請求中定出之連貫性(或由其被推論)被存取。例如 ,若PCI Express請求定出DMA請求為非窥視的,記憶體以 未被窺視地被存取。若DMA再映射電路B5支援在頁表八入 10值中連貫(C)屬性之被致用及被否決設定,記憶體依據被用 以將DMA請求位址轉譯之活頁頁表登入值中連貫(c)屬性 的規劃被存取。 第9 B圖顯示使用依據本發明一實施例的單表之位址轉 澤結構540。位址轉譯結構540包括内容登入值535、__客屬 15實體位址(GPA)960、一單一頁表970與一頁980。 該單層頁表提供-替選機制至軟體以提供不須長的頁 行走地提供4K顆粒度之頁分配,但代價為保留大的連續頁 表結構。該單層頁表之頁表登入值大小(如64位元)與格式除 了其跨距欄位被處理為被㈣的外額類似在前面各段被描 2〇 述之多層結構的頁表登入值者。 頁表之大小依客屬之位址空間的大小而定。例如,就 脳之客屬可定位址性(GAW=3〇)而言,軟體需分配厕 之頁表而具有218個頁表登入值。絲 ι/ϋ轉譯後備緩衝器(TLB) 亦使用單層頁表對DMA位址轉譯為可應用的。 38 透過定出單層位址轉譯之内容登入值被處理的DMA請 求被DMA再映射電路丨35如下列般地被處理: 1. 在DMA請求被定出之GPA/長度組合依據DMA再映 射電路135是否支援頁邊界穿越而被使用。若DMA再映射 電路135支援頁邊界穿越,且GPA/長度指出DMA請求穿越 頁邊界’則DMA請求之目標的每一頁區域獨立地被位址 轉譯。若DMA再映射電路135不支援頁邊界穿越,且GPA/ 長度指出DMA請求穿越頁邊界,則形成一位址轉譯錯誤 之結果。 2. 若在内容登入值中被規劃之GAW欄位不是介於能力 頁表登入值中之DMA再映射電路135所報告的最小值(如21) 與最大客屬位址寬度(MGAW)間,狀態為DMA再映射電路 135所支援之調整後客屬位址寬度,其在能力暫存器中被 報告,然後DMA請求被封鎖,且形成一位址轉譯錯誤之 結果。 3. DMA請求中之GPA被驗證為在該裝置被指定之域的 客屬實體位址空間内。企圖存取高於(2X—U位址之記憶體 位置的任一DMA請求被封鎖,此處X為被用以處理此Dma 請求之内容登入值中規劃的客屬位址寬度。 4. 若上面的檢查為成功的,dma請求中之GPA被調整 為X位元以形成一調整客屬實體位址(AGpA),此處χ為被用 以處理此DMA請求之内容登入值中規劃的客 屬位址寬度。 對AGPA之DMA請求依據該等多層頁表結構之規劃被封鎖 或被轉譯為有效的ΗΡΑ。 1321751 5. DMA再映射電路135執行被步驟4所產生之ΗΡΑ的正 常晶片組位址解碼,並處理DMA請求作為對記憶體之一存 取或一層對層請求。 6. 若被轉譯之ΗΡΑ被解碼以記憶體為目的地,ηρα依據 5為設定連貫(C)屬性之支援被存取◎若DMA再映射電路135 只支援在頁表登入值中連貫(C)屬性之否決設定,記憶體依 據DMA請求中定出之連貫性(或由其被推論)被存取。例如 ,若PCI Express請求定出DMA請求為非窺視的,記憶體以 未被窺視地被存取。若DMA再映射電路135支援在頁表登入 10值中連貫(c)屬性之被致用及被否決設定,記憶體依據被用 以將DMA請求位址轉譯之活頁頁表登入值中連貫(c)屬性 的規劃被存取。 内谷登入值535之ASR搁位提供基地位址以放置單一 頁表970。GPA 960包括一偏差欄位962與一頁表欄位964。 15單一頁表970包含頁表登入值指向對應於GPA 960之致用的 頁。 為查對應之頁表登入值,頁表攔位964與ASR欄位所提 供之基地位址被組合。由於每一登入值占用8個位元組,頁 表攔位964被移位器972以3位元加以移位,然後被加法器 20 974加到ASR以提供對單一頁表970之指標。 然後對應於該指標之頁表登入值為頁980提供基地位 址。偏差櫊位962被加法器984加到此基地位址以提供頁980 中之ΗΡΑ結果。 第9C圖顯示使用依據本發明一實施例的基地/周界轉 40 譯之位址轉譯結構540。位址轉譯結構54〇包括内容登入值 535、一客屬實體位址(GPA)960與一實體記憶體空間99〇。 該等基地·周界提供㈣轉譯之最簡單的形式,此處 DMA請求中之GPA就此域被用作為來自基地位址的一偏差 5。該域之基地位址為—主屬實體位址且透翻容登入值奶 之ASR攔位(第關)被規劃。内容登入值中之客屬位址寬度 (GAW)扣出该偏差限度。具有高於〇八臂所指出之限度的客 屬位址之任何DMA請求被DMA再映射電路135封鎖。 在一實施例中,該主屬實體位址為64位元。就有效之 10客屬位址(如在GAW可定位址性内之位址)而言,DMA再映 射電路135執行下列之作業以產生該主屬實體位址: 主屬貫體位址[63:GAW]=位址空間根[63:GAW] 主屬實體位址[GAW-1:0] =客屬實體位址[GAW_1:0] 15 上述之位址轉譯機制可被增強以改善效能及/或彈性。 增加技術為具有在多層頁表結構中被使用的變化大小之 轉°睪表’包括小表與大表。此可藉由使用在頁表登入值或 内疋内容暫存器640中之一跨距(S)欄位被完成。S攔 位可定 出任何數目之表大小與任何適當的表大小。在一實施例中 2〇 ’一種表大小被使用,即4KB與2MB。4KB之表對應9位元 5距及2MB之表對應於18位元之跨距。小與大跨距可 在行走或橫越頁表之際不以任何順序地被相互混合。其被 先則之頁表登入值中的跨距攔位定義。 另—增強技術為定義可被晶片組硬體支援之數個頁大 41 1321751 小 叙化之超頁攔位在一頁表登入值中被定義以允許超 過2MB之超頁大小的多數性。一般化之超頁適於記憶體在 啟動過程早期被分配至VM之使用模型。中間效能利益可藉 由顯著地減少轉譯步驟數目而被達成。此外,與頁表有關 5聯之記憶體費用可顯著地減少。 頁表登入值中之超頁欄位促成較大之頁分配。當具有 超頁攔位被主張之頁表登入值在頁表行走被遭遇時,被轉 譯之位址藉由以未使用之客屬實體位址位元組合頁表登入 值中的頁基地位址立刻被形成。根據以超頁欄位被主張之 10頁表登入值的頁表階層’該架構定義2MB,1GB、512GB ' 256TB與128PB之超頁。如熟習本技藝者所知曉者 ,任何 其他超頁大小可被使用。 包含DMA再映射電路135以支援這些增強與其他再映 射作業之晶片組的能力可在能力暫存器中被報告。軟體可 15頜取此能力暫存器以找到被晶片組或DMA再映射電路135 支援之各種能力。 第10圖顯示依據本發明一實施例的一暫存器集220,包 含一能力暫存器。暫存器集22〇包括一能力暫存器 CAP REG 1010。 20 CAP一REG 1010報告一般之轉譯硬體能力。其包括數個 指標以指出DMA再映射電路135所支援之能力。這些指標包 括一單層頁表支援(SL)欄位1〇12、一多層頁表支援(ML)欄 位1014、一要求寫入緩衝器沖刷(RWBF)攔位1〇16、一先進 錯誤登錄支援(AFL)攔位1〇18 ' —連貫性控制攔位(cc)欄位 42 1321751 1020、一支援調整後客屬位址寬度(SAGAW)攔位1〇22、一 超頁支援(SPS)欄位1024、與—最大客屬位址寬度(]^(}八琛) 攔位1026。 SL欄位1012指出單層頁表是否被支援。在被否決時, 5無單層頁表被支援。在被主張時,單層頁表被支援。 ML攔位1014指出多層頁表是否被支援。在被否決時, 無多層頁表被支援。在被主張時,多層頁表被支援。 RWBF欄位1016指出要求之寫入緩衝器沖刷。在被否決 時,其指出無寫入緩衝器沖刷為需要的以反映對DMA再映 10射電路135之記憶體常駐記憶體結構的改變。在被主張時, 其對軟體指出DMA再映射電路135之施作要求寫入缓衝器 沖刷(如透過全面命令暫存器)以反映對DMA再映射電路 135之記憶體常駐記憶體結構被做成的更新。 AFL欄位1018指出先進錯誤登錄支援。在被否決時, 15其指出透過記憶體常駐錯誤登錄之先進錯誤登錄未被支援 。只有第一個被檢測之錯誤透過錯誤記錄暫存器被記錄。 在被主張時,其指出先進錯誤登錄被支援。該先進錯誤登 錄透過錯誤日誌暫存器被促成。 CC欄位1020指出連貫性控制支援。在被否決時,其指 20出只有頁表登入值中之連貫性(C)攔位的被否決之設立被 DMA再映射電路135支援。在被主張時,頁表登入值中之連 貫性(C)攔位的被否決與被主張二者之設立被〇]^八再映射 電路135支援。 SAGAW欄位1022指出被支援之調整客屬位址寬度,其 43 再代表被其下面基礎的DMA再映射電路135之施作所支援 的頁表行走之層級。該欄位多層頁表支援透過ML攔位1014 之被主張的設立加以指出。 在這些位元任一個中的被主張之值指出被支援的對應 5 之客屬位址寬度。在一實施例中,對應於在此攔位内之各 種位元位置的客屬位址寬度為: 0 : 21位元之客屬位址寬度(1層之頁表) 1 : 30位元之客屬位址寬度(2層之頁表) 2 : 39位元之客屬位址寬度(3層之頁表) 1〇 3 : 48位元之客屬位址寬度(4層之頁表) 4 : 57位元之客屬位址寬度(5層之頁表) DMA再映射電路135支援涵蓋其下面基礎之主屬位址 I度的客屬位址寬度。例如,支援40位元之主屬位址寬度 支援48位元之客屬位址寬度。DMA再映射電路135亦可備選 5 地支援較小之客屬位址寬度。軟體應確保被用以設立頁表 <調整後客屬位址寬度為在此攔位中所報告之被支援的客 屬位址寬度之一。 SPS攔位1024指出被DMA再映射電路135之下面基礎 施作所支援的被支援之超頁表大小。該欄位僅在被支援之 多層頁表透過ML欄位1014被主張被指出時為有效的。 在這些位元任一個中的被主張之值指出被支援的對應 之超頁大小。在一實施例中,對應於在此欄位内之各種位 元位置的超頁大小為: 0 : 2MB之超頁(對頁框之21位元的偏差) 44 1 : 1GB之超頁(對頁框之3〇位元的偏差) 2 : 512GB之超頁(對頁框之39位元的偏差) 3 : 256TB之超頁(對頁框之48位元的偏差) 4: 128PB之超頁(對頁框之57位元的偏差) 當所有位元否決時,普通之頁大小被支援。DMA再映 射電路135可備選地支援一個或多個超頁大小。 MGA欄位1〇26指出在使用單層頁表轉譯時被DMA再 映射電路135支援之最大客屬位址寬度。此欄位僅在單層頁 表透過SL欄位1012之被主張的設定被指出時為有效的。 第11A圖顯示使用依據本發明一實施例的多層表與跨 距之位址轉譯結構540。位址轉譯結構540包括内容登入值 535、一調整客屬實體位址(AGPA)910、一第一層頁表112〇 、—活頁節點頁表1130、與一頁1140。 内容登入值535中之ASR欄位為第一層頁表112〇提供 基地位址。AGPA 910包括一偏差欄位912、一活頁節點頁 表攔位914、與一第一層頁表欄位916。 第一層頁表欄位916與ASR欄位所提供之第一層基地 位址被組合而為第一層頁表1120定檢索指標。由於每一登 入值為8個位元組,苐一層頁表欄位916被一移位器1122以 二個位元加以移位’然後被一加法器1124加到第一層基地 位址以提供一第一層指標至第一層頁表1120。被定檢索指 標之第一層頁表登入值為活頁節點頁表1130提供活頁節點 基地位址。此外,被定檢索指標之第一層頁表登入值中的s 攔位被主張(如被設定為1)以指出為下一個表之跨距為一大 1321751 表(即2MB)。 活頁節點頁表1130具有被定檢索指標之第一層頁表登 入值所指出的大小。在第11A圖顯示例中,S欄位被主張, 指出活頁節點頁表1130之大小為大的(如2MB)。活頁節點頁 5 表欄位914與活頁基地位址被組合而為活頁節點頁表1130 定檢索指標。由於主屬實體位址支援為8位元組,活頁節點 頁表欄位914被一移位器1132以三個位元加以移位,然後被 一加法器1134加到活頁節點基地位址以提供活頁節點指標 至活頁節點頁表1130。該被定檢索指標之活頁節點頁表登 10 入值為頁1140提供主屬基地位址。 然後偏差912與主屬基地位址被組合以產生頁1140中 之主屬實體位址。 第11B圖顯示使用依據本發明一實施例的多層表與超 頁之位址轉譯結構。位址轉譯結構540包括内容登入值535 15 、一調整客屬實體位址(AGPA)910、一第一層頁表1150、一 活頁節點頁表1160、與一頁1170。 内容登入值535中之ASR欄位為第一層頁表1150提供 基地位址。AGPA 910包括一偏差欄位912、一活頁節點頁 表欄位914、與一第一層頁表欄位916。 20 第一層頁表欄位916與ASR欄位所提供之第一層基地 位址被組合而為第一層頁表1150定檢索指標。由於每一登 入值為8個位元組,第一層頁表攔位916被一移位器1152以 三個位元加以移位,然後被一加法器1154加到第一層基地 位址以提供一第一層指標至第一層頁表1150。被定檢索指 46 1321751 標之第一層頁表登入值為活頁節點頁表116〇提供活頁節點 指標之第—層頁表登入值中的§ 欄位被主張(如被設定為〇)以指出為下—個表之跨距為一小 表(即4ΚΒ)。 5 #頁節點頁表U6G具有被定檢—標之第1頁表登 ' 人值所指出社小。在第丨_顯示例巾,S欄位被主張, ^ 指出活頁節點頁表1160之大小為小的(如4KB)。活頁節點頁 • 表搁位914與活頁基地位址而為活頁節點頁表1160定檢索 指標。由於主屬實體位址支援為8位元植,活頁節點頁表搁 Π)位914被-移位龍62以三個位元加以移位,然後被一加法 ,器1164加㈣頁節點基地純以提供活頁節職標至活頁 節點頁表1160。該被定檢索指標之活頁節點頁表登入值為 頁117〇提供主屬基地位址。此外,被定檢索指標之活頁節 點頁表登入值被主張,指出其為活頁節點表。 15 頁1170之大小如被能力暫存器中被提供的晶片組所支 • 援之此力加以决疋。在弟11B圖中顯示者,能力暫存器指出 - 2MB之超頁大小被支援。偏差912與主屬基地位址被加法器 . 1144組合以產生頁1170中之主屬實體位址。 雖然本發明已以數個實施例為準被描述,熟習本技藝 20者將了解本發明不受限所描述之實施例,而是可以在所附 之中請專利範圍的精神與領域内之修改與變更被施作。因 而本描述被視為說明性而非限制性的。 式簡單說明】 第1圖為本發明之一實施例可被實作之系統圖。 47 1321751 第2圖顯示依據本發明一實施例的一輸入/輸出(I/O)裝 置指派。 第3圖顯示使用依據本發明一實施例的直接記憶體存 取(DMA)再映射之虛擬化。 5 第4圖顯示依據本發明一實施例的I/O位址轉譯。 第5圖顯示依據本發明一實施例的DMA再映射結構。 第6圖顯示依據本發明一實施例的一暫存器集,包含共 同暫存器。 第7圖顯示依據本發明一實施例的一暫存器集,包含位 10 址過濾暫存器。 第8A圖顯示依據本發明一實施例的一根登入值。 第8 B圖顯示依據本發明一實施例的一内容登入值。 第8C圖顯示依據本發明一實施例的一頁表登入值。 第9A圖顯示使用依據本發明一實施例的多層表之位址 15 轉譯結構。 第9 B圖顯示使用依據本發明一實施例的單表之位址轉 譯結構。 第9 C圖顯示使用依據本發明一實施例的基地/周界轉 譯之位址轉譯結構。 20 第10圖顯示依據本發明一實施例的一暫存器集,包含 一能力暫存器。 第11A圖顯示使用依據本發明一實施例的多層表與跨 距之位址轉譯結構。 第11B圖顯示使用依據本發明一實施例的多層表與超 48 1321751 頁之位址轉譯結構。 【主要元件符號說明 100…系統 222…DMA再映射結構 110…處理器 224…邏輯電路 120···處理器匯流排 240…域 130 …MCH 242…驅動器 135··ΌΜΑ再映射電路 310…裝置 140…系統記憶體 312…裝置 142 …OS 320...VMM 或主機 OS 145…I/O驅動器 340…VM 150 …ICH 342…應用程式 155…週邊匯流排 344…應用程式 170…大量儲存裝置/介面 346…客屬OS 172 …CD 350…驅動器 173 …DVD 360..VM 174…軟碟機 362…應用程式 176…硬碟 364…應用程式 18〇r···輸入/輸出裝置 366…客屬OS 180R…輸入/輸出裝置 370…作業 185…輸入/輸出裝置 410…裝置 210…裝置 412…裝置 220…暫存器集 420···實體記憶體 49 1321751 422…域 424…域 426…域 428."域 440…客屬說點 442…域 444…域 510…來源辨識元 512…功能號A馬 514…裝置號^嗎 516…匯流排號碼 520…根表 525…根登入值 530…内容表 535···内容登入值 540···位址轉譯結構 550…多重表 552--PTE 560…單表 565…頁表登入值 570…基地/周界 610···記憶體型式報告暫存器 612…FMT搁位 614…PMT欄位 616…CMT搁位 618“.RMT 欄位 620…全面命令暫存器 622…位 624“.WBF搁位 630…根登入值表位址暫存器 632.. .RTA欄位 634"vECEi«位 640…内定内容暫存器 642…P搁位 650…Μ欄位 654…ASR櫊位 656-GAW欄位 660···錯誤處理欄位 662…DID搁位 710···過濾大小暫存器 712·· •FTS-^^i 715.. ·ΒΜΤ欄位 50 1321751 720…過濾基地暫存器 854". 位 725…FTB搁位 856”.SP 搁位 730···過濾控制暫存器 860…ADDR欄位 732· 910…調整後客屬實體位址 734…WBF搁位 912…偏差欄位 736…FCI欄位 914…活頁節點頁表欄位 738· 欄位 916…中間頁表欄位 740…過濾錯誤暫存器 918…第一層頁表欄位 742…FA欄位 920…第一層頁表 744”. T搁位 922···移位器 746…V欄位 924···加法器 810…P搁位 930…中間表 815”.CEP 攔位 932···移位器 822". P欄位 934···加法器 830· "M欄位 940…活頁節點表 83+"ASR攔位 942···移位器 836".GAW欄位 944···加法器 840-FP欄位 950…頁 842…DID欄位 954···加法器 850,"R欄位 960…客屬實體位址 852···\ν欄位 962…偏差欄位 51 1321751 964…頁表搁位 1026“.MGAW欄位 970··.單一頁表 1120…第一層頁表 972···移位器 1122···移位器 974…加法器 1124···加法器 980…頁 1130…活頁節點頁表 984···加法器 1134···加法器 990…實體記憶體空間 1140…頁 994…加法器 1144···加法器 1010…能力暫存器 1150···第一層頁表 1012 …SD|§1 位 1152···移位器 1014···ΐνΜ« 位 1154…加法器 1016*"RWRF搁位 1160…活頁節點頁表 1018_“AFU«位 1162···移位器 1020…COf«位 1164…加法器 1022-SAGAW欄位 1170…頁 1024...SPS 欄位 1174…加法器 52

Claims (1)

1321751
10 15
月丨丨曰修正本 第94130877號申請案申請專利範圍修正本 98.08.11.十、申請專利範圍: 1. 一種可使位址轉譯效能增強的裝置,其包含: 一暫存器,該暫存器係用以儲存能力指標,以指出 一晶片組中的一電路所支援的用於一客屬實體位址對 一主屬實體位址之位址轉譯的能力;以及 用於在該位址轉譯中之頁行走的數個多層頁表,每 一個頁表皆具有多個頁表登入值,且每一個頁表登入值 皆具有對應於該等能力指標所指出之能力的至少一個 登入值指定符。 2. 如申請專利範圍第1項所述之裝置,其中該等能力指標 包括下列指標中的至少一種:一單層頁表支援、一多層 頁表支援、一要求寫入緩衝器沖刷、一先進錯誤登錄支 援、一連貫性控制支援、一支援調整客屬位址寬度、一 超頁支援、與一最大客屬位址寬度(MGAW)。 3. 如申請專利範圍第2項所述之裝置,其中有一超頁指標 指出在該位址轉譯中所使用的一普通頁大小與一超頁 大小之一。 4. 如申請專利範圍第3項所述之裝置,其中該至少一登入 值指定符包括一跨距襴位與一超頁欄位之一,該跨距欄 20 位決定用於檢索該等多層頁表中之一下一層表的客屬 位址位元之數目,該超頁欄位指出每一該等頁表登入值 是否為一活頁頁表登入值。 5. 如申請專利範圍第4項所述之裝置,其中若該超頁欄位 指出每一該等頁表登入值皆為一非活頁頁表登入值,頁 53 行走即繼續進行。 6· ^申請專利範圍第4項所述之裝置,其中賴超頁搁位 指出每-該等頁表登入值皆為一活頁頁表登入值,則頁 ^走即停止,且該主屬實體位址便在具有該超頁指標所 指出之一頁大小的一頁中形成。 7. ^申請專利範圍第4項所述之裝置,其中當有-超頁表 指標指出支援複數個頁之大小時,則該跨距欄位即被評 估。 8. 如申請專利_第4項所述之裝置,其中用以檢索該下 一層頁表之客屬位址位元的數目係對應於一普通的頁 大小或一大的頁大小。 9. 如申請專利範圍第i項所述之裝置,其中該等能力指標 為唯讀的。 1〇.了種可使位址轉譯效能增強的方法,其包含有下列步驟 在一暫存器中儲存多個能力指標,以指出一晶片組 内的電路所支援的用於一客屬實體位址對一主屬實 體位址之位址轉譯的能力;以及 行走通過該位址轉譯中的數個多層頁表,每一個頁 表皆具有多個頁表登人值,且每―個頁表登人值皆具有 對應於該等能力指標所指出之能力的至少一個登入值 指定符。 U.如申請專利範圍第10項所述之方法,其中該等能力指標 包括下列指標中的至少-種:—單層頁表支援、-多層 54 1321751 頁表支援、一要求寫入緩衝器沖刷、一先進錯誤登錄支 援、一連貫性控制支援、一支援調整客屬位址寬度、一 超頁支援、與一最大客屬位址寬度(MGAW)。 12. 如申請專利範圍第11項所述之方法,其中有一超頁指標 5 指出在該位址轉譯中所使用的一普通頁大小與一超頁 大小之一。 13. 如申請專利範圍第12項所述之方法,其中該至少一個登 入值指定符包括一跨距欄位與一超頁欄位之一,該跨距 欄位決定用以檢索該等多層頁表中之一下一層表的客 10 屬位址位元之數目,且該超頁欄位指出各個該等頁表登 入值是否為一活頁頁表登入值。 14. 如申請專利範圍第13項所述之方法,其中行走步驟包含 :若該超頁欄位指出每一該等頁表登入值皆為一非活頁 頁表登入值,即繼續行走動作。 15 15.如申請專利範圍第13項所述之方法,其中行走步驟包含 :若該超頁攔位指出每一該等頁表登入值皆為一活頁頁 表登入值,即在具有該超頁指標所指出之一頁大小的一 頁中形成該主屬實體位址。 16. 如申請專利範圍第13項所述之方法,其中行走步驟包含 20 :在有一超頁表指標指出支援複數個頁之大小時,評估 該跨距欄位。 17. 如申請專利範圍第13項所述之方法,其中用以檢索該下 一層頁表之客屬位址位元的數目,係對應於一普通的頁 大小或一大的頁大小。 55 1321751 18. 如申請專利範圍第10項所述之方法,其中儲存步驟包含 ••儲存該等能力指標以供唯言買。 19. 一種可使位址轉譯效能增強的系統,包含: 一記憶體; 5 在存取該記憶體之一請求下產生一客屬實體位址 的一個輸入/輸出(I/O)裝置;以及 耦合於該I/O裝置與該記憶體之一晶片組,該晶片 組包括一電路,該電路包含: 一暫存器,用以儲存多個能力指標,以指出該晶片 10 組所支援的用於該客屬實體位址對一主屬實體位址之 位址轉譯的能力;以及 用於在該位址轉譯中之頁行走的數個多層頁表,每 一個頁表皆具有多個頁表登入值,每一個頁表登入值皆 具有對應於該等能力指標所指出之該能力的至少一登 15 入值指定符。 20. 如申請專利範圍第19項所述之系統,其中該等能力指標 包括下列指標中的至少一種:一單層頁表支援、一多層 頁表支援、一要求寫入緩衝器沖刷、一先進錯誤登錄支 援、一連貫性控制支援、一支援調整客屬位址寬度、一 20 超頁支援、與一最大客屬位址寬度(MGAW)。 21. 如申請專利範圍第20項所述之系統,其中有一超頁指標 指出在該位址轉譯中所使用的一普通頁大小與一超頁 大小之一。 22. 如申請專利範圍第21項所述之系統,其中該至少一登入 56 1321751 值指定符包括一跨距欄位與一超頁欄位之一,該跨距欄 位決定用以檢索該等多層頁表中之一下一層表的客屬 位址位元之數目,且該超頁欄位指出各個該等頁表登入 值是否為一活頁頁表登入值。 5 23.如申請專利範圍第22項所述之系統,其中若該超頁欄位 指出每一該等頁表登入值皆為一非活頁頁表登入值,頁 行走即繼續進行。 24. 如申請專利範圍第22項所述之系統,其中若該超頁欄位 指出每一該等頁表登入值皆為一活頁頁表登入值,頁行 10 走即停止,且該主屬實體位址在具有該超頁指標所指出 之一頁大小的一頁中形成。 25. 如申請專利範圍第22項所述之系統,其中當有一超頁表 指標指出支援複數個頁之大小時,則該跨距欄位即被評 估。 15 26.如申請專利範圍第22項所述之系統,其中用以檢索該下 一層頁表之客屬位址位元的數目,係對應於一普通的頁 大小或一大的頁大小。 27.如申請專利範圍第19項所述之系統,其中該等能力指標 為唯讀的。 20 57
TW094130877A 2004-09-30 2005-09-08 Performance enhancement of address translation using translation tables covering large address spaces TWI321751B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/957,306 US8843727B2 (en) 2004-09-30 2004-09-30 Performance enhancement of address translation using translation tables covering large address spaces

Publications (2)

Publication Number Publication Date
TW200622885A TW200622885A (en) 2006-07-01
TWI321751B true TWI321751B (en) 2010-03-11

Family

ID=35789151

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094130877A TWI321751B (en) 2004-09-30 2005-09-08 Performance enhancement of address translation using translation tables covering large address spaces

Country Status (7)

Country Link
US (2) US8843727B2 (zh)
JP (1) JP4772795B2 (zh)
CN (1) CN100593160C (zh)
DE (1) DE112005002298B4 (zh)
GB (1) GB2432443B (zh)
TW (1) TWI321751B (zh)
WO (1) WO2006039057A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10678685B2 (en) 2016-11-15 2020-06-09 Silicon Motion, Inc. Data management method applicable to data storage device

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030069899A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Method, system, and program for providing personal preference information when scheduling events
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
US7487327B1 (en) 2005-06-01 2009-02-03 Sun Microsystems, Inc. Processor and method for device-specific memory address translation
US7370137B2 (en) * 2005-06-06 2008-05-06 Intel Corporation Inter-domain data mover for a memory-to-memory copy engine
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7330958B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US9658849B2 (en) * 2006-07-06 2017-05-23 Imperas Software Ltd. Processor simulation environment
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8700883B1 (en) * 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
JP4356765B2 (ja) * 2007-04-20 2009-11-04 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8095773B2 (en) * 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US20100169673A1 (en) * 2008-12-31 2010-07-01 Ramakrishna Saripalli Efficient remapping engine utilization
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
US8195917B2 (en) * 2009-07-01 2012-06-05 Advanced Micro Devices, Inc. Extended page size using aggregated small pages
US8386745B2 (en) * 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
US7966433B2 (en) * 2009-09-04 2011-06-21 Silicon Motion Inc. Method for enhancing performance of data access between a personal computer and a USB Mass Storage, associated personal computer, and storage medium storing an associated USB Mass Storage driver
US8489843B2 (en) * 2010-04-20 2013-07-16 Chip Memory Technology, Inc. Configurable memory device
US8639858B2 (en) * 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US20120246381A1 (en) * 2010-12-14 2012-09-27 Andy Kegel Input Output Memory Management Unit (IOMMU) Two-Layer Addressing
US9606936B2 (en) * 2010-12-16 2017-03-28 Advanced Micro Devices, Inc. Generalized control registers
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
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
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US20130326143A1 (en) * 2012-06-01 2013-12-05 Broadcom Corporation Caching Frequently Used Addresses of a Page Table Walk
US9104560B2 (en) 2012-06-13 2015-08-11 Caringo, Inc. Two level addressing in storage clusters
US8762353B2 (en) 2012-06-13 2014-06-24 Caringo, Inc. Elimination of duplicate objects in storage clusters
US8799746B2 (en) 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
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
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9280488B2 (en) * 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US10241923B2 (en) * 2012-11-06 2019-03-26 International Business Machines Corporation Configurable I/O address translation data structure
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US10445243B2 (en) 2013-03-14 2019-10-15 Nvidia Corporation Fault buffer for resolving page faults in unified virtual memory system
DE102013022169A1 (de) 2013-03-14 2014-09-18 Nvidia Corporation Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem
TWI493342B (zh) * 2013-04-12 2015-07-21 Faraday Tech Corp 記憶體管理裝置及管理方法
US10509729B2 (en) 2016-01-13 2019-12-17 Intel Corporation Address translation for scalable virtualization of input/output devices
US10089090B2 (en) 2016-06-07 2018-10-02 Honeywell International Inc. System and method for facilitating dynamic remapping of absolute addresses during software migration
US10048881B2 (en) 2016-07-11 2018-08-14 Intel Corporation Restricted address translation to protect against device-TLB vulnerabilities
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10394711B2 (en) * 2016-11-30 2019-08-27 International Business Machines Corporation Managing lowest point of coherency (LPC) memory using a service layer adapter
US10241925B2 (en) 2017-02-15 2019-03-26 Ati Technologies Ulc Selecting a default page size in a variable page size TLB
US10282309B2 (en) 2017-02-24 2019-05-07 Advanced Micro Devices, Inc. Per-page control of physical address space distribution among memory modules
US11200183B2 (en) * 2017-03-31 2021-12-14 Intel Corporation Scalable interrupt virtualization for input/output devices
US10339068B2 (en) 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10228981B2 (en) 2017-05-02 2019-03-12 Intel Corporation High-performance input-output devices supporting scalable virtualization
US10642751B2 (en) * 2017-07-20 2020-05-05 Vmware, Inc. Hardware-assisted guest address space scanning in a virtualized computing system
US10169185B1 (en) * 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation
US10700711B1 (en) 2017-11-03 2020-06-30 Caringo Inc. Multi-part upload and editing of erasure-coded objects
US11372787B2 (en) * 2017-12-09 2022-06-28 Intel Corporation Unified address space for multiple links
CN109933553B (zh) * 2019-02-28 2020-09-29 厦门码灵半导体技术有限公司 一种控制系统及其设计方法、一组控制系统、电子装置
US10884948B2 (en) * 2019-05-16 2021-01-05 Advanced Micro Devices, Inc. Replacing pointers with hashing in tree-based page table designs
TWI719654B (zh) * 2019-06-21 2021-02-21 慧榮科技股份有限公司 閃存實體資源集合管理裝置及方法以及電腦程式產品
US10817433B2 (en) * 2019-06-28 2020-10-27 Intel Corporation Page tables for granular allocation of memory pages
US11314674B2 (en) 2020-02-14 2022-04-26 Google Llc Direct memory access architecture with multi-level multi-striding
CN111367831B (zh) * 2020-03-26 2022-11-11 超睿科技(长沙)有限公司 翻译页表的深度预取方法、部件、微处理器及计算机设备
GB2594258B (en) * 2020-04-20 2022-07-20 Advanced Risc Mach Ltd Variable nesting control parameter for table structure providing access control information for controlling access to a memory system
US20210149815A1 (en) * 2020-12-21 2021-05-20 Intel Corporation Technologies for offload device fetching of address translations
CN115079957B (zh) * 2022-07-20 2023-08-04 阿里巴巴(中国)有限公司 请求处理方法、装置、控制器、设备及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2230258A5 (zh) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
JPS60117350A (ja) * 1983-11-30 1985-06-24 Toshiba Corp メモリマッピング装置
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
JPH0653659B2 (ja) * 1985-07-22 1994-07-20 ニチバン株式会社 粘膜付着製剤
JPS6299844A (ja) * 1985-10-28 1987-05-09 Hitachi Ltd アドレス変換装置
JPS6356746A (ja) * 1986-08-28 1988-03-11 Nec Corp 仮想計算機におけるペ−ジングバイパス方式
JPS6417137A (en) * 1987-07-13 1989-01-20 Nippon Telegraph & Telephone Control system for large-capacity page
JPH06105431B2 (ja) * 1987-08-25 1994-12-21 富士通株式会社 ベクトル・プロセッサにおける仮想計算機装置
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
JP2635058B2 (ja) * 1987-11-11 1997-07-30 株式会社日立製作所 アドレス変換方式
JPH0331967A (ja) * 1989-06-29 1991-02-12 Fujitsu Ltd ベクトル処理装置
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
JPH04311233A (ja) * 1991-04-09 1992-11-04 Nec Corp アドレス変換装置
CA2083634C (en) * 1991-12-30 1999-01-19 Hung Ping Wong Method and apparatus for mapping page table trees into virtual address space for address translation
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
DE69429503T2 (de) * 1994-03-24 2002-05-16 Hewlett Packard Co Übersetzungsmechanismus für Ein-/Ausgabeadressen
JPH0981720A (ja) * 1995-09-11 1997-03-28 Toshiba Corp イメージ処理装置
WO1998014877A1 (en) 1996-09-30 1998-04-09 Cirrus Logic, Inc. Virtual addressing for subsystem dma
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6088780A (en) * 1997-03-31 2000-07-11 Institute For The Development Of Emerging Architecture, L.L.C. Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6233668B1 (en) * 1999-10-27 2001-05-15 Compaq Computer Corporation Concurrent page tables
US6446186B1 (en) * 1999-10-27 2002-09-03 Nvidia Corporation Method, apparatus and article of manufacture for mapping physical memory in a virtual address system
US6715063B1 (en) * 2000-01-14 2004-03-30 Advanced Micro Devices, Inc. Call gate expansion for 64 bit addressing
JP2001209578A (ja) * 2000-01-26 2001-08-03 Nec Kofu Ltd メモリ更新履歴管理方式
EP1182564A3 (en) 2000-08-21 2004-07-28 Texas Instruments France Local memory with indicator bits to support concurrent DMA and CPU access
US6715057B1 (en) * 2000-08-31 2004-03-30 Hewlett-Packard Development Company, L.P. Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes
US6721848B2 (en) * 2000-12-08 2004-04-13 Hewlett-Packard Development Company,L.P. Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US6804741B2 (en) * 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US20050080934A1 (en) * 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10678685B2 (en) 2016-11-15 2020-06-09 Silicon Motion, Inc. Data management method applicable to data storage device

Also Published As

Publication number Publication date
US20060069899A1 (en) 2006-03-30
DE112005002298T5 (de) 2007-09-27
CN100593160C (zh) 2010-03-03
TW200622885A (en) 2006-07-01
WO2006039057A3 (en) 2006-06-29
GB2432443B (en) 2008-04-02
GB0704914D0 (en) 2007-04-25
JP2008515093A (ja) 2008-05-08
WO2006039057A2 (en) 2006-04-13
US20100011187A1 (en) 2010-01-14
JP4772795B2 (ja) 2011-09-14
CN101027653A (zh) 2007-08-29
GB2432443A (en) 2007-05-23
DE112005002298B4 (de) 2018-09-06
US8843727B2 (en) 2014-09-23

Similar Documents

Publication Publication Date Title
TWI321751B (en) Performance enhancement of address translation using translation tables covering large address spaces
TWI285315B (en) Address translation for input/output devices using hierarchical translation tables
KR100871743B1 (ko) 직접 메모리 액세스 주소 변환을 위한 캐싱 지원
US7882330B2 (en) Virtualizing an IOMMU
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
TWI363967B (en) A computer hardware apparatus to utilize address window support for direct memory access translation
KR100915714B1 (ko) 폴트 처리 장치, 폴트 처리 방법, 폴트 처리 시스템 및 머신 액세스 가능한 매체를 포함하는 제조물
JP5038907B2 (ja) 仮想マシン環境のアドレス変換をサポートするための方法と装置
US7739466B2 (en) Method and apparatus for supporting immutable memory
US10691341B2 (en) Method for improving memory system performance in virtual machine systems
US8443156B2 (en) Virtualization system using hardware assistance for shadow page table coherence
JP5680642B2 (ja) 周辺相互接続におけるi/o及び計算負荷軽減デバイスのための2レベルのアドレストランスレーションを用いるiommu
US7516247B2 (en) Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
US20140304488A1 (en) Linear to physical address translation with support for page attributes
JP2013500525A (ja) I/oのための多重レベルアドレストランスレーションを含むi/oメモリ管理ユニット及び計算負荷軽減
US7480784B2 (en) Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
BR112014031436B1 (pt) Comparar e substituir entrada de tabela dat
JP2016517992A (ja) 属性フィールドのマルチコアページテーブルセット
US10642751B2 (en) Hardware-assisted guest address space scanning in a virtualized computing system
US20230229609A1 (en) Iommu-based direct memory access (dma) tracking for enabling live migration of virtual machines (vms) using passthrough physical devices

Legal Events

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