欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

直接存儲器存取轉(zhuǎn)換的地址窗口支持的制作方法

文檔序號:6567864閱讀:294來源:國知局
專利名稱:直接存儲器存取轉(zhuǎn)換的地址窗口支持的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及微處理器,更具體地說,本發(fā)明涉及輸入/輸出(1/0)
虛擬化。
背景技術(shù)
隨著微處理器體系結(jié)構(gòu)變得越來越復(fù)雜以支持高性能應(yīng)用程序,I/O管理提出了挑戰(zhàn)。解決I/O管理問題的現(xiàn)有技術(shù)有許多缺點。一 種技術(shù)使用只有軟件的I/O虛擬化來支持虛擬機(VM) I/O。此技術(shù)具 有有限的功能、性能和魯棒性。
客戶操作系統(tǒng)(OS)和應(yīng)用程序所看到的功能受VM監(jiān)控器(VMM) 軟件中模擬的虛擬裝置支持的功能限制??蛻?/0操作由VMM捕獲, 并在提交到基礎(chǔ)物理裝置硬件前被代理或模擬,從而導(dǎo)致性能差。
另外,硬件裝置的所有或部分裝置驅(qū)動程序作為部分特權(quán)VMM 軟件運行,這可能對平臺的整體魯棒性有負(fù)面影響。使用專用轉(zhuǎn)換結(jié) 構(gòu)的技術(shù)只能支持特定的裝置或有限的使用模型。通用1/0存儲器管 理部件只對大小或復(fù)雜性有限的I/O虛擬地址空間提供支持。


通過下面給出的詳細(xì)說明和本發(fā)明各種實施例的附圖,將更全面 地理解本發(fā)明。然而,附圖不應(yīng)視為將本發(fā)明局限于具體實施例,而 只是為了便于說明和理解。
圖1示出計算機系統(tǒng)的一個實施例;
圖2示出輸入/輸出(I/0)裝置指定的一個實施例;
圖3示出使用直接存儲器存取(DMA)重新映射的虛擬化的一個實 施例;
圖4示出1/0地址轉(zhuǎn)換的一個實施例;
圖5示出DMA重新映射結(jié)構(gòu)的一個實施例;
圖6示出地址窗口頁表項目格式的一個實施例;
圖7示出基于地址窗口的DMA地址轉(zhuǎn)換進程的一個實施例;
圖8示出地址窗口表格式的一個實施例;
圖9示出地址窗口刷新寄存器的一個實施例;
圖IO示出地址窗口刷新寄存器格式的一個實施例;
圖11示出DMA轉(zhuǎn)換的一個實施例的流程圖;以及
圖12示出計算機系統(tǒng)的另一個實施例。
具體實施例方式
下面描述實現(xiàn)基于地址窗口的轉(zhuǎn)換的直接存儲器存取(DMA)轉(zhuǎn)換 體系結(jié)構(gòu)。在說明書中提到"一個實施例"或"實施例"是指結(jié)合該實施 例描述的特定特性、結(jié)構(gòu)或特征包括在本發(fā)明的至少一個實施例中。 在說明書中各個位置出現(xiàn)的短語"在一個實施例中"不一定全部都指同 一實施例。
在下面的描述中,闡述了許多細(xì)節(jié)。然而,本領(lǐng)域的技術(shù)人員將 明白,本發(fā)明可在沒有這些具體細(xì)節(jié)的情況下實施。其它情況下,熟 知的結(jié)構(gòu)和裝置以框圖形式顯示,而不是詳細(xì)顯示,以免混淆本發(fā)明。
圖1示出計算機系統(tǒng)100的一個實施例。計算機系統(tǒng)100包括處 理器110、處理器總線120、存儲器控制中心(MCH) 130、系統(tǒng)存儲 器140、輸入/輸出控制中心(ICH) 150、外圍總線155、海量存儲器裝 置/接口 170以及輸入/輸出裝置180,到180K和185 。注意,系統(tǒng)100 可包括比上述更多或更少的單元。
處理器110表示任一類型體系結(jié)棉的中央處理器,諸如嵌入式處 理器、移動處理器、微控制器、數(shù)字信號處理器、超標(biāo)量處理器、多 線程處理器、多核處理器、向量處理器、單指令多數(shù)據(jù)(SIMD)計算 機、復(fù)雜指令集計算機(CISC)、精簡指令集計算機(RJSC)、超長指令字(VLI W)或混合伴系結(jié)構(gòu)。
處理器碌線120提供接口信號,以允許處理器UO與例如MCH 130 等其它處理器或裝置通信。處理器總線120可支持單處理器或多處理 器配置。處理器總線120可以為并行、順序、流水線、異步、同步或 其任意組合。
MCH 130提供存儲器和輸入/輸出裝置諸如系統(tǒng)存儲器140和ICH 150的控制和配置。MCH 130可集成到芯片組中,該芯片組集成了多 個功能,諸如隔離執(zhí)行模式、主機到外圍總線接口、存儲器控制。MCH 130直接或經(jīng)ICH 150對接到外圍總線155。為清晰起見,未顯示所 有外圍總線。預(yù)期系統(tǒng)100還可包括諸如外圍組件互連(PCI)、 PCI Express、加速圖形端口(AGP)、工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線和通用串 行總線(USB)等外圍總線。
MCH 130包括直接存儲器存取(DMA)重新映射電路135。在I/O 事務(wù)處理中,DMA重新映射電路135辨1/0裝置(例如,I/O裝置180, 到180k和185之一)映射到系統(tǒng)存儲器140中的一個域。I/O事務(wù)處 理一般為DMA請求。DMA重新映射電路135提供硬件支持,以便 于或增強I/O裝置指定和/或管理。DMA重新映射電路135還可包括 在除MCH 130外的任何芯片組中,諸如ICH 150。它也可部分或完 全實現(xiàn)在處理器110中,或者實現(xiàn)為單獨的處理器或與其它處理器或 裝置的協(xié)處理器。
系統(tǒng)存儲器140存儲系統(tǒng)代碼和數(shù)據(jù)。系統(tǒng)存儲器140 —般用動
統(tǒng)存儲器可包括實現(xiàn)本發(fā)明 一個實施例的程序代碼或代碼段。系統(tǒng)存 儲器包括操作系統(tǒng)(OS) 142或一部分OS或內(nèi)核及I/0驅(qū)動程序145。 OS 142或I/0驅(qū)動程序145中的任一單元可通過硬件、軟件、固件、 微代碼或其任意組合實現(xiàn)。系統(tǒng)存儲器140還可包括未示出的其它程 序或數(shù)據(jù)。
ICH 150具有設(shè)計為支持I/O功能的多個功能。ICH 150也可與
MCH130—起或與其分開集成到芯片組中,以執(zhí)行I/0功能。ICH150 可包括多個接口和I/O功能,諸如PCI總線接口 ,以對接到外圍總線 155、處理器接口、中斷控制器、'直接存儲器存取(DMA)控制器、電 源管理邏輯、計時器、系統(tǒng)管理總線(SMBus)、通用串行總線(USB) 接口、海量存儲器接口、低引腳數(shù)(LPC)接口等。
海量存儲器裝置/接口 170提供諸如代碼、程序、文件、數(shù)據(jù)、應(yīng) 用程序及操作系統(tǒng)等檔案信息的存儲。海量存儲器裝置/接口 170可 對接到壓縮盤(CD) ROM 172、數(shù)字視頻/多功能盤(DVD) 173、軟盤 驅(qū)動器174、硬盤驅(qū)動器176以及任何其它磁或光存儲裝置。海量存 儲器裝置/接口 170提供一種讀取機器可存取介質(zhì)的機制。機器可存 取介質(zhì)可包含執(zhí)行如下所述任務(wù)的計算機可讀程序代碼。
I/O裝置180,到180k可包括批行包括DMA請求等I/O功能的任 何I/0裝置。它們對接到外圍總線155。 I/O裝置180,到180k的示例 包括用于輸入裝置(例如,鍵盤、鼠標(biāo)、跟蹤球、定點裝置)的控制器、 媒體卡(例如,音頻、視頻、圖形)、網(wǎng)卡以及任何其它外圍控制器。I/O
裝置185直接對接到ICH 150。外圍總線155是支持I/O事務(wù)處理的 任何總線。外圍總線155的示例包括PCI總線、PQ Express等。
本發(fā)明一個實施例的單元可通過硬件、固件、軟件或其任意組合 實現(xiàn)。術(shù)語"硬件" 一般指具有物理結(jié)構(gòu)的單元,諸如電、電磁、光、 光電、機械、機電部件等。術(shù)語"軟件" 一般指邏輯結(jié)構(gòu)、方法、過 程、程序、例程、進程、算法、公式、函數(shù)、表達式等。術(shù)語"固件" 一般指在硬件結(jié)構(gòu)(例如,閃存、只讀存儲器、可擦除只讀存儲器)中 實現(xiàn)或包含的邏輯結(jié)構(gòu)、方法、過程、程序、例程、進程、算法、公 式、函數(shù)、表達式等。固件的示例可包括微代碼、可寫控制存儲器、 微程序設(shè)計結(jié)構(gòu)。當(dāng)用軟件或固件實現(xiàn)時,本發(fā)明實施例的單元實質(zhì) 上是執(zhí)行必需任務(wù)的代碼段。^L件/固件可包括執(zhí)行在本發(fā)明 一 個實 施例中所述操作的實際代碼,或者模擬或模仿該操作的代碼。程序或 代碼段可存儲在處理器或機器可存取介質(zhì)中,或者通過傳輸介質(zhì),由載波中包含的計算機數(shù)據(jù)信號或由載波調(diào)制的信號傳輸。"處理器可 讀或可存取介質(zhì)"或"機器可讀或可存取介質(zhì)"可包括任何可存儲、傳 輸或傳送信息的介質(zhì)。處理器可讀或機ll可存取介質(zhì)的示例包括電子電路、半導(dǎo)體存儲器件、只讀存儲器(ROM)、閃存、可擦除ROM (EROM)、軟盤、壓縮盤(CD)ROM、光盤、硬盤、光纖介質(zhì)、射頻(RF) 鏈路等。計算機數(shù)據(jù)信號可包括任何寸通過諸如電子網(wǎng)絡(luò)信道、光纖、 空氣、電磁、RF鏈路等傳輸介質(zhì)傳播的信號。代碼段可經(jīng)諸如因特 網(wǎng)、內(nèi)聯(lián)網(wǎng)等計算機網(wǎng)絡(luò)下載。機器可存取介質(zhì)可包含在制品中。機據(jù)。機器可存取介質(zhì)還可包括嵌入其中的程序代碼。程序代碼可包括 執(zhí)行下文所述操作的機器可讀^/馬。術(shù)語"數(shù)據(jù)"這里是指為機器可讀 目的而編碼的任何類型信息。因此,它可包括程序、代碼、數(shù)據(jù)、文 件等。
所有或部分本發(fā)明實施例可通過硬件、軟件或固件或其任意組合 實現(xiàn)。硬件、軟件或固件單元可具有相互耦合的幾個模塊。硬件模塊 通過機械、電、光、電磁或任何物理連接耦合到另一模塊。軟件模塊 通過函數(shù)、過程、方法、子程序或子例程調(diào)用、跳轉(zhuǎn)、鏈接、參數(shù)、 變量及變元傳遞、函數(shù)返回等耦合到另一模塊。軟件模塊耦合到另一 模塊以接收變量、參數(shù)、變元、指針等,和/或生成或傳遞結(jié)果、更 新的變量、指針等。固件模塊通過上述硬件和軟件耦合方法的任意組 合耦合到另一模塊。硬件、軟件或固件模塊可耦合到另一硬件、軟件 或固件模塊中的任一個。模塊還可以是與運行在平臺上的操作系統(tǒng)交 互作用的軟件驅(qū)動程序或接口。模塊還可以是配置、設(shè)置、初始化、 向硬件裝置發(fā)送數(shù)據(jù)和從硬件裝置接收數(shù)據(jù)的硬件驅(qū)動程序。設(shè)備可 包括硬件、軟件和固件模塊的任意組合。
本發(fā)明的一個實施例可描述為通常示為流程圖、流程框圖、結(jié)構(gòu) 圖或框圖的進程。雖然流程圖可將才喿作描述為順序進程,但其中許多 操作可并行或并發(fā)執(zhí)行。另外,操作的順序可重新布置。進程在其操作完成時終止。進程可對應(yīng)于方法、程序、過程、制造或加工方法等。
在標(biāo)準(zhǔn)計算平臺中,I/O子系統(tǒng)組件用作單個域的一部分,并且 由操作系統(tǒng)軟件管理。本發(fā)明的一個實施例提供了將計算平臺中的I/O
裝置指定給多個域所需的硬件支持。
域被抽象地定義為平臺中的隔離環(huán)境,主機物理存儲器的子集被
分配給域。主機物理存儲器包括在系統(tǒng)存儲器140中。允許對分配給 域的物理存儲器進行直接存取的I/O裝置被稱為域的指定裝置。域的 隔離屬性是通過阻止未指定給它的資源存取其物理存儲器而實現(xiàn)的。 通過確保所有I/O裝置都指定給某個域(可能是默認(rèn)域),并通過限制 每個指定裝置只存取分配給其域的物理存儲器,可支持多個隔離的 域。域可共享資源(例如,存儲器、I/O裝置),或者完全彼此隔離, 這憑執(zhí)行分區(qū)的軟件或其它實體自行處理。
每個域具有物理存儲器視圖或物理地址空間,這可能與物理存儲 器系統(tǒng)視圖不同。由域的資源用于存取其物理地址空間的地址稱為客 戶物理地址(GPA)。主機物理地址(HPA)是指用于存取存儲器的系統(tǒng) 物理地址。如果域的GPS中的一個或多個必須轉(zhuǎn)換到新的HPA,而 新的HPA與存取其分配的系統(tǒng)物理存儲器的GPA不同,則域被認(rèn)為 已重新定位。如果域的所有客戶物理地址與用于存取其分配的系統(tǒng)物 理存儲器的主機物理地址都相同,則域被稱為未重新定位。已重新定 位和未重新定位的域均可分配有可用系統(tǒng)物理存儲器的子集,并且可 被阻止存取存儲器的某些部分。物理存儲器保護和分區(qū)需要一種物理 地址轉(zhuǎn)換機制和一種保護機制,這些機制可-驗證由包括處理器和I/O 裝置等域的指定裝置生成的客戶物理地址,并將它轉(zhuǎn)換成有效的主機 物理地址。DMS重新映射電路135提供這種支持。
為將I/O裝置指定給域,對于來自平臺中所有I/O裝置的DMA 請求應(yīng)用物理地址轉(zhuǎn)換和保護。為簡明起見,I/O裝置DMA請求的 物理地址轉(zhuǎn)換功能稱為DMA重新映射。在下面的論述中,應(yīng)理解, 術(shù)語"重新映射"除了將地址從一個地址空間映射到另 一個地址空間(例如,客戶物理地址到主機物理地址)外,還包括保護機制。
圖2示出了 I/O裝置指定的一個實施例。I/O裝置指定是將I/O裝 置映射到系統(tǒng)存儲器140中的域。映射由DMA重新映射電路135支 持。例如,裝置A 210映射到系統(tǒng)存儲器140中的域1 240。域l可 具有用于裝置A 210的兩個驅(qū)動程序242和244。
DMA映射電路135包括寄存器組220、 DMA重新映射結(jié)構(gòu)222 和邏輯電路224。寄存器組220包括多個寄存器,其提供由DMA重 新映射結(jié)構(gòu)222、邏輯電路224和I/O裝置的程序或驅(qū)動程序使用的 控制或狀態(tài)信息。DMA重新映射結(jié)構(gòu)222提供在適當(dāng)域中客戶物理 地址到主機物理地址的重新映射或地址轉(zhuǎn)換中使用的基本結(jié)構(gòu)、存儲 器或表。邏輯電路224包括執(zhí)行重新映射或地址轉(zhuǎn)換操作和其它對接 功能的電路。DMA重新映射電^各135可具有不同的實現(xiàn),以支持不 同的配置和為重新映射或地址轉(zhuǎn)換操作提供不同的能力。
使用DMA重新映射電路135的I/O裝置指定和/或管理提供了多 種使用或應(yīng)用。兩個有用的應(yīng)用是OS魯棒性應(yīng)用和虛擬化應(yīng)用。
OS魯棒性應(yīng)用域隔離對于操作系統(tǒng)軟件具有多種使用。例如, OS可在存儲器中定義包含其關(guān)鍵代碼和數(shù)據(jù)結(jié)構(gòu)的域,并限制系統(tǒng) 中所有I/O裝置存取此域。這使OS可限制裝置驅(qū)動程序通過不正確 的裝置編程而對數(shù)據(jù)和代碼造成錯誤或無意的破壞,或者限制某些種 類的裝置故障,從而改進其魯棒性?;蛘?,OS可允許可信裝置的子 集存取存儲器中的關(guān)鍵代碼和數(shù)據(jù)結(jié)構(gòu),但不允許從其它裝置存取。
在另 一種使用中,OS可使用域更好地管理從傳統(tǒng)32位PCI裝置 到高位存儲器(4GB以上)的DMA。這是通過如下方式實現(xiàn)的將32 位裝置分配給一個或多個域,并將I/O物理地址轉(zhuǎn)換機制編程為將 DMA從這些裝置重新映射到高位存儲器。沒有這種支持,軟件必須 借助于通過OS彈跳緩沖器進行數(shù)據(jù)復(fù)制。
在一個更有關(guān)的使用中,OS可通過創(chuàng)建多個域并將一個或多個1/0 裝置指定給各個域來管理I/O。在這種使用中,裝置驅(qū)動程序顯式地向OS登記其I/O緩沖器,并且OS將這些I/O緩沖器指定給特定域, 使用硬件來實施DMA域保護。在此模型中,OS將I/O地址轉(zhuǎn)換和 保護機制用作1/0存儲器管理部件(I/Q MMU)。
虛擬化應(yīng)用虛擬化技術(shù)允許在單個系統(tǒng)上創(chuàng)建一個或多個虛擬 機(VM)。每個VM可利用基礎(chǔ)物理硬件資源同時運行。虛擬機允許 多個操作系統(tǒng)實例運行在同一處理器上,提供了諸如系統(tǒng)強化、傳統(tǒng) 遷移、活動分區(qū)和安全性等優(yōu)點。
虛擬化體系結(jié)構(gòu)一般涉及兩個主要種類的軟件組件(a)虛擬機監(jiān) 控程序(VMM)和(b)虛擬機(VM)。 VMM軟件層在最高特權(quán)級運行, 并具有基礎(chǔ)系統(tǒng)硬件的全部所有權(quán)。VMM允許VM共享基礎(chǔ)硬件, 并且還提供VM之間的隔離。
通過使用DMA重新映射電路135將I/O裝置直接指定給VM, 可消除I/0虛擬化只有軟件方法的限制。用裝置的直接指定,指定1/0 裝置的驅(qū)動程序只運行在其指定到的VM中,并被允許直接與裝置硬 件交互作用,而不捕獲到VMM。硬件支持實現(xiàn)了 DMA重新映射, 而在VMM中無需裝置特定的知識。
在此模型中,VMM將其自身限制為控制功能,其中它顯式地進 行建立和拆毀對VM的裝置指定。不同于在I/O虛擬化只有軟件方法 的情況下對客戶I/O存取捕獲到VMM, VMM只需要客戶I/O存取 捕獲,以保護影響系統(tǒng)功能的特定資游、,諸如裝置配置空間存取、中 斷管理等。
為支持I/O裝置到VM的直4矣指定,VMM從I/O裝置管理DMA。 VMM可將其自身映射到一個域,并將每個VM映射到一個獨立的域。 I/O裝置可被指定給域,并且由DMA重新映射電路135提供的物理 地址轉(zhuǎn)換硬件可用于允許從I/O裝置只到指定給指定VM域的物理存 儲器的DMA。對于在物理存儲器中可重新定位的VM(即,GPA與HPA 不同),DMA重新映射電路135可編程為進行必需的GPA到HAP轉(zhuǎn) 換。
用I/O裝置指定的硬件支持,VMM實現(xiàn)可選擇只有軟件的I/Q 虛擬化方法與直接裝置指定的組合,以便向VM呈現(xiàn)I/O裝置資源。
圖3示出了使用DMA重新映射的虛擬化的一個實施例。虛擬化 包括兩個裝置A 310和B 312、 DMA重新映射電路135、 VMM或宿 主OS 32Q、 VM。340以及VMn360。兩個裝置A 310和B 312是分別 由兩個VM 340和360支持的兩個I/O裝置。DMA重新映射電路135 將這兩個裝置直接映射到相應(yīng)的VM 340和360,無需VMM或宿主 OS 320的特定知識。支持的I/O裝置和VM可更多或更少。
VMM或宿主OS 320為它在其上執(zhí)行的平臺或系統(tǒng)的基礎(chǔ)硬件提 供支持。VM 340和360具有類似的體系結(jié)構(gòu)組件,但相互完全隔離。 它們對接到VMM或宿主OS 320,以存取系統(tǒng)硬件。VM 340包括應(yīng) 用程序342和344。支持的應(yīng)用程序可更多或更少。它具有客戶OS 346 和裝置A驅(qū)動程序350。裝置A驅(qū)動程序350是驅(qū)動、控制、對接 或支持裝置A 310的驅(qū)動程序。類似地,VM 360包括應(yīng)用程序362 和364。支持的應(yīng)用程序可更多或更少。它具有客戶OS 366和裝置 B驅(qū)動程序370??蛻鬙S 366可與VM 340中的客戶OS 346相同或 不同。裝置B驅(qū)動程序370是驅(qū)動、控制、對接或支持裝置B312的 驅(qū)動程序。
由DMA重新映射電路135提供的DMA重新映射體系結(jié)構(gòu)便于 I/O裝置指定到任意數(shù)量的域。每個域具有可與系統(tǒng)物理地址空間不 同的物理地址空間。DMA重新映射提供來自I/O裝置的DMA請求變換。
為支持它,平臺可支持一個或多個I/O物理地址轉(zhuǎn)換硬件部件。 每個轉(zhuǎn)換硬件部件支持源于其硬件范圍內(nèi)的I/O事務(wù)處理的重新映 射。例如,桌面芯片組實現(xiàn)可顯露單個DMA重新映射硬件部件,該 部件轉(zhuǎn)換在存儲器控制中心(MCH)組件的所有I/O事務(wù)處理。具有一 個或多件部件,每個部件轉(zhuǎn)換源于其I/O分級結(jié)構(gòu)內(nèi)的DMA請求。該體系 結(jié)構(gòu)支持這些硬件部件可共享系統(tǒng)存儲器中的相同轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)或者 根據(jù)軟件編程使用獨立結(jié)構(gòu)的配置。
芯片組DMA重新映射電路135將DMA請求中的地址一見為客戶 物理地址(GPA)。 DMA重新映射電路135可將地址轉(zhuǎn)換功能應(yīng)用于 輸入地址,以在諸如窺探處理器高速緩存或轉(zhuǎn)發(fā)到存儲器控制器等進 一步硬件處理前,將它轉(zhuǎn)換成主機物理地址(HPA)。
在虛擬化上下文中,由DMA重新映射電路135實現(xiàn)的地址轉(zhuǎn)換 功能取決于VMM支持的物理存儲器管理。例如,在軟件將主機物理 存儲器分配為連續(xù)區(qū)域的使用中,將GPA轉(zhuǎn)換成HPA的DMA轉(zhuǎn)換 可以為簡單的偏移相加。在VMM在頁粒度管理物理存儲器的使用 中,DMA重新映射電路135可使用存儲器常駐地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。
圖4示出了 1/0地址轉(zhuǎn)換的一個實施例。I/0地址轉(zhuǎn)換包括兩個I/0 裝置l 410和2 412、 DMA重新映射電路135、物理存儲器420以及 客戶視圖430。 1/0裝置1 410和2 412被指定給兩個單獨的域。它們 執(zhí)行到地址DMA—ADR的I/O請求或DMA請求。
DMA重新映射電路135將這兩個裝置映射到在物理存儲器420 中分配的對應(yīng)域。物理存儲器420被分區(qū)成存儲器段422與424以及 存儲器段426與428。更多或更少的已分配存儲器段可指定給一個或 多個域。在圖4中,存儲器段422與424被指定給域1 422并對應(yīng)于 裝置1 410,并且存儲器段424與428被指定給域2 444并對應(yīng)于裝 置1412。在圖4所示的示例中,裝置1 410映射到域1 422,并且裝 置2 412映射或指定到域2 428。
客戶視圖430是來自客戶I/O裝置的邏輯視圖。它包括域1 442 和域2 444。域1 442對應(yīng)于物理存儲跨420中的兩個存儲器段422 與424。域2 444對應(yīng)于兩個存儲器段426與428。對于特定客戶, 域可以是物理存儲器的客戶視圖430的已分配部分。每個域可被指定 給一個或多個I/O裝置。來自裝置1 410的DMA—ADR地址凈皮映射到
位于域l 442從0到L的地址空間內(nèi)的DMA一ADR1。類似地,來自 裝置2 412的DMA一ADR地址:帔映射到位于域2 444從0到K的地 址空間內(nèi)的DMA—ADR2。
負(fù)責(zé)創(chuàng)建和管理域的軟件為兩個域分配物理存儲器420,并在 DMA重新映射電路135中建立GPA到HPA地址轉(zhuǎn)換功能。DMA 重新映射電路135將裝置410與412生成的GPA轉(zhuǎn)換成適當(dāng)?shù)腍PA。
圖5示出了 DMA重新映射結(jié)構(gòu)222的一個實施例。DMA重新 映射結(jié)構(gòu)222接收源標(biāo)識符510,并包括根表520、多個上下文表(顯 示了兩個530。與530m)以及多個地址轉(zhuǎn)換結(jié)構(gòu)(顯示了兩個540。與 540J。重新映射結(jié)構(gòu)222從I/O裝置接收源標(biāo)識符510和客戶物理地 址,并將指定域中的客戶物理地址轉(zhuǎn)換成主機物理地址。該轉(zhuǎn)換可使 用以分級結(jié)構(gòu)方式布置的轉(zhuǎn)換表執(zhí)行。.轉(zhuǎn)換機制從根表520開始,并 遍歷或走過上下文表(例如,530。與530m)和地址轉(zhuǎn)換結(jié)構(gòu)(例如,540Q 與540m)。
在DMA重新映射電路135出現(xiàn)的I/O事務(wù)處理的請求方身份確 定始發(fā)裝置和始發(fā)I/O裝置被指定到的域。源標(biāo)識符510是標(biāo)識I/O 事務(wù)處理始發(fā)方的屬性。DMA重新映射電路135可以實現(xiàn)特定方式 確定事務(wù)處理的源標(biāo)識符510。例如, 一些I/O總線協(xié)議可將始發(fā)裝 置身份作為每個I/O事務(wù)處理的一部分提供。在其它情況下,諸如對 于芯片組集成裝置,可基于芯片組的體系結(jié)構(gòu)或?qū)崿F(xiàn)而暗示源標(biāo)識符 510。
對于PCI Express裝置,源標(biāo)識符510被映射到作為I/O事務(wù)處理 標(biāo)題一部分提供的請求方標(biāo)識符。裝置的請求方標(biāo)識符包括由配置軟 件指定的其PCI總線/裝置/功能編號,并唯一地標(biāo)識發(fā)起I/O請求的 硬件功能。在一個實施例中,源標(biāo)識符510包括功能編號512、裝置 編號514和總線編號516。在圖5所示的示例中,功能編號512是K 位寬,裝置編號514是L位寬,并且總線編號516是M位寬??偩€ 編號516標(biāo)識在其上生成I/O事務(wù)處理的總線。裝置編號514標(biāo)識在
所標(biāo)識總線上的特定裝置。功能編號512標(biāo)識I/O裝置的特定功能。 源標(biāo)識符510用于索引或查找才艮表520和上下文表(例如,530。和 530m)。在圖5所示的示例中,通過DMA重新映射結(jié)構(gòu)222的其路徑 被示為用于分別使用總線0和總線m的兩個I/O事務(wù)處理。
對于PCI Express裝置,根表520存儲由源標(biāo)識符510或源標(biāo)識 符510的總線編號516索引的才艮項目525。到5252,,。根項目用作頂 層結(jié)構(gòu),以將特定總線上的裝置映射到其相應(yīng)的父域。根項目0 525。 對應(yīng)于使用總線0的I/O事務(wù)處理。根項目m 525m對應(yīng)于使用總線 m的I/O事務(wù)處理。根項目0 525。與525m分別指向上下文表530。與 530m。在一個實施例中,這些項目提供對應(yīng)上下文表的基地址。
上下文表530 (例如,530o與530J存儲由根項目引用的上下文項 目535 (例如,535()與535J。上下文項目535將I/O裝置映射到其對 應(yīng)的域。裝置編號514和功能編號512用于獲得與I/O事務(wù)處理對應(yīng) 的上下文項目。在一個實施例中,它們形成索引以指向或引用由對應(yīng) 根項目引用的上下文表。在所有上下文表中有2^2"2K或2"+1^個 上下文項目。在一個實施例中,K=3, L=5,并且M=8,產(chǎn)生了總共 64K個項目,組織成2M (28=256)個上下文表。在圖4所示的示例中, 用于兩個I/O事務(wù)處理的兩個上下文項目是上下文表530。中的上下文 項目535。和上下文表530m中的上下文項目535m。上下文項目535。和 535m分別指向地址轉(zhuǎn)換結(jié)構(gòu)540。和540m。
地址轉(zhuǎn)換結(jié)構(gòu)540(例如,540。與540J提供使用對應(yīng)于I/O事務(wù) 處理的客戶物理地址到主機物理地址的地址轉(zhuǎn)換。每個地址轉(zhuǎn)換結(jié)構(gòu) 可以為分別對應(yīng)于使用多表、單表和基本/綁定轉(zhuǎn)換的三種轉(zhuǎn)換機制 的多表550、單表560或基本/綁定570。在下面的描述中,使用常規(guī) 頁面大小4KB。正如本領(lǐng)域的技術(shù)人員所熟知的一樣,還可使用任何 其它大小。
為提供DMA重新映射電路135的軟件靈活控制,DMA重新映 射電路135具有圖2所示的寄存器組220中包括的多個寄存器。寄存器組220通過基地址寄存器(BAR)位于主機物理地址空間中。轉(zhuǎn)換硬 件BAR以實現(xiàn)相關(guān)方式顯露^^軟件。在芯片組集成裝置之一諸如存 儲器控制器裝置中,這可顯露為PCI配置空間寄存器。在一個實施例 中,BAR提供最小4K地址窗口 。寄存器組220中的寄存器可具有多 個字段。字段可被斷言或否定。在字段只由單個位組成時,斷言表示 該位被設(shè)為定義的邏輯狀態(tài)(例如,真,邏輯1),并且否定表示該位 被復(fù)位為定義的邏輯狀態(tài),該狀態(tài)是斷言狀態(tài)的互補(例如,假,邏 輯0)。在下文中,斷言或否定狀態(tài)的使用是任意的。字段可被斷言以 指示第一狀態(tài),并且可被否定以指示第二狀態(tài),或反之亦然。
寄存器中的字段可由DMA重新映4于電路135和/或軟件進行編 程、初始化或配置。它也可對應(yīng)于專用硬件電路或由數(shù)據(jù)結(jié)構(gòu)、函數(shù)、 例程或方法實現(xiàn)的功能。在下文中,字段被分組到寄存器中。在下面 寄存器中這些字段或位的分組、格式化或組織是為了便于說明??墒?用其它方式分組、格式化或組織這些字段。字段也可復(fù)制在不止一個 寄存器中。寄存器可具有比所述字段更多或更少的字段。另外,寄存 器可以多種方式實現(xiàn),包括作為存儲單元或內(nèi)存單元。
上述DMA重新映射體系結(jié)構(gòu)包括如圖5所示使用單級或多級頁 表(TLB)轉(zhuǎn)換的DMA。此類體系結(jié)構(gòu)適用于傳統(tǒng)軟件使用(例如,其 中OS或VMM不知道驅(qū)動程序DMA使用)。此外,單級或多級頁表 轉(zhuǎn)換可為大多數(shù)I/O裝置提供良好到一般的DMA性能(根據(jù)DMA吞 吐量測量)。然而,此類系統(tǒng)具有限制。
一個限制是,對于其性能取決于保證的最壞情況(等時)DMA性能 的I/O裝置而言,由多個順序存儲器存取為有關(guān)TLB未中的走頁而 弓1入的最壞情況等待時間是禁止的。這些類型裝置的示例包括支持等 時DMA的PCI Express裝置(如高性能音頻控制器)、圖形裝置的顯示 引擎以及USB控制器裝置。
另一個限制是,對于可能更了解驅(qū)動程序DMA使用的非傳統(tǒng)軟 件使用(例如,較新的OS和VMM),當(dāng)前體系結(jié)構(gòu)未提供任何部件
使軟件提供DMA使用提示,以改進DMA重新映射性能。
最后,用于走頁的存儲器存取等待時間例如隨著平臺配置移到在
處理器復(fù)合體內(nèi)實現(xiàn)的存儲器控制器而增大。
基于地址窗口的DMA地址凈爭換
基于上述DMA重新映射體系結(jié)構(gòu)的限制,DMA重新映射電^各135 配置為除了基于單級和多級頁表的地址轉(zhuǎn)換外,還支持基于地址窗口 的地址轉(zhuǎn)換。因此,每個DMA重新映射電路135可支持多個地址窗 口,其中所支持的地址窗口的確切數(shù)量隨硬件實現(xiàn)而變化。在一個實 施例中,系統(tǒng)固件為每個DMA重新映射電3各135指定一個地址窗口 (AW)范圍(開始和結(jié)束AW編號)。
在又一實施例中,除了現(xiàn)有重新映射電路135高速緩存結(jié)構(gòu)外, 芯片組還支持附加的高速緩存結(jié)構(gòu)。這些附加的結(jié)構(gòu)稱作為地址窗口 轉(zhuǎn)換而實現(xiàn)的AWPTR表。下面將更詳細(xì)地論述AWPTR表。
根據(jù)一個實施例,裝置物理地址(DPA)是指由I/O裝置在其DMA 請求中規(guī)定的目標(biāo)地址。在一個實施例中,DPA地址空間跨越計算 機系統(tǒng)中的所有I/O裝置,并再分成多個AW。在此類實施例中,每 個AW覆蓋DPA空間的連續(xù)2MB區(qū)域。例如,A WO可覆蓋DPA 0 到2MB, AW1可覆蓋DPA 2MB到4MB等。給定任一 DPA,相關(guān) 聯(lián)的AW編號通過檢查DPA中的位確定(例如,AW# :=DPA[63:21])。
在又一實施例中,每個AW由存儲器中稱為地址窗口頁表(AWPT) 的DPA到HPA轉(zhuǎn)換結(jié)構(gòu)描述。AWPT中的項目稱為AW頁表項目 (AWPTE)。每個AWPTE為AW內(nèi)的4KB區(qū)域(稱為槽)提供轉(zhuǎn)換。 因此,在一個AW中有512個槽,并且與每個AW相關(guān)聯(lián)的AWPT 為4KB大小(具有512,個AWPTE)。根據(jù)一個實施例,AWPTE為64 位大小,并具有如圖6所示的才各式。在一個實施例中,AWPTE包括 存取控制位,諸如規(guī)定是否允許對用于存取AWPTE的DPA進行讀 存取和/或?qū)懘嫒〉奈?"讀"和"寫")。在一個實施例中,地址字段 ("ADDR,,)規(guī)定DPA中的位子集到HPA的映射。在一個實施例中,
其余位(例如,位[11:0])可不經(jīng)修改而從DAP傳遞到HPA。許多其它 配置是可能的,并不限制本發(fā)明的范圍。
系統(tǒng)軟件可將一個或多個AW綁定到特定I/0裝置。為此,驅(qū)動 程序向綁定到裝置的AW登記其DMA緩沖器(例如,在主機物理地 址空間中)以生成DPA映射。裝置的驅(qū)動程序使用其DPA向裝置硬 件標(biāo)識其目標(biāo)緩沖器。來自裝置的DMA請求中的地址是由重新映射 電路135基于綁定到裝置的AW和地址窗口的DPA到HPA轉(zhuǎn)換而 轉(zhuǎn)換的DPA。
圖7示出了在有地址窗口的情況下轉(zhuǎn)換DMA地址的進程的一個 實施例。圖7示出了使用AWPT和AWPTR表提供轉(zhuǎn)換。在一個實 施例中,重新映射電路135中的AWPTR表具有與其重新映射電路135 支持的地址窗口數(shù)量一樣多的項目。AWPTR表中的項目與在其重新 映射電路135上配置的特定AW相關(guān)聯(lián)。
此外,每個AWPTR表項目包括特定AW的HPA到AWPT的基 址。每個AWPTR表項目標(biāo)記有相關(guān)聯(lián)AW被分配到的I/O裝置的裝 置ID。在一個實施例中,AWPTR表結(jié)構(gòu)經(jīng)過存儲器映射來允許軟件 修改其中的項目。AWPTR表的基址稱為AWPTR—TABLE—BASE。 AWPTR表項目稱為AWPTR,并且高速緩存中特定索引處的特定項 目被標(biāo)注為AWPTR[INDEX]。
圖8示出了實現(xiàn)兩個重新映射電路135的芯片組的AWPTR表結(jié) 構(gòu)的一個實施例,其中每個電路配置為支持兩個AW (分別為4到5 和6到7)。根據(jù)一個實施例,雖然AWPTR表存儲在寄存器中,但表 對軟件呈現(xiàn)為常駐在由AWPTR—TABLE_BASE規(guī)定的地址。
此外,在一個實施例中,AWPTR表中的每個項目包括有效、標(biāo) 記和數(shù)據(jù)字段。有效字段指示項目是否有效。在另一實施例中,不存 在有效位,并且重新映射電路135將所有AWPTR表項目視為有效。 標(biāo)記字段指示項目關(guān)聯(lián)到的特定裝置ID。例如,在圖8中,軟件已 將AW 4綁定到具有裝置ID 11的I/O裝置,并且將AW 6綁定到具有裝置ID 18的1/0裝置。在一個實施例中,始發(fā)存取(例如,確定裝 置ID)的裝置標(biāo)識可包括有關(guān)總線、裝置和裝置內(nèi)功能的信息。DMA 請求的始發(fā)方在本文稱為"裝置"或"請求I/O裝置",并由"裝置ID,,標(biāo) 識。然而,應(yīng)理解,在其它實施例中,單個物理裝置可由一個或多個 裝置ID標(biāo)識。
根據(jù)又一實施例,重新映射電路135支持稱為AW—FLUSH寄存 器的一組16位存儲器映射寄存器。圖9示出了 AW—FLUSH刷新寄 存器的一個實施例。AW—FLUSH刷新寄存器實現(xiàn)為一種機制,以便 軟件使可由重新映射電路135的一個或多個單元高速緩存的轉(zhuǎn)換無 效。在一個實施例中,為重新映射電路135支持的每個AW實現(xiàn)一 個AW—FLUSH刷新寄存器。
在一個實施例中,此存儲器映射寄存器范圍的基址(AW— FLUSH—BASE)由平臺固件初始化。例如,如圖9所示,如果芯片組 組件支持兩個重新映射電路135,并且重新映射電路135分別支持AW 4到5和6到7,則芯片組支持總共4個AW—FLUSH寄存器。圖10 示出了用于每個AW一FUJSH寄存器的格式的 一個實施例。
再參照圖7,如果在用于I/O裝置的上下文項目中已規(guī)定,則發(fā) 生基于地址窗口的轉(zhuǎn)換。在一個實施例中,上下文項目可由重新映射 電路135高速緩存,排除了存耳又存儲器以作出此確定的需要。在又一 實施例中,上下文項目高速緩存結(jié)構(gòu)可由軟件直接存取,使軟件可以 預(yù)填充高速緩存以減少第一次存取上下文項目的等待時間。這樣,軟 件能保證特定裝置的最壞情況存儲器存取行為限于單次存儲器存取, 如下所述。
如果規(guī)定基于地址窗口的轉(zhuǎn)換,則重新映射電路135進行檢驗以 確定DMA請求中的DPA所屬的AW是否為綁定到規(guī)定裝置的AW 之一。根據(jù)一個實施例,重新映射電路135通過先找到對應(yīng)于DMA 請求中DPA的地址窗口編號(AW存)(例如,通過AW# = DPA[(HAW-l): 21]計算得出,其中HAW是系統(tǒng)的支持物理地址寬度)來執(zhí)行此檢驗。
隨后,確定該AW弁是否分配給轉(zhuǎn)換該DMA請求的重新映射電^各 135。如果AW^未分配給重新映射電路135,則發(fā)生轉(zhuǎn)換故障。在一 個實施例中,轉(zhuǎn)換故障可生成處理器的中斷。在另一實施例中,管理 重新映射電路135的軟件負(fù)責(zé)定期輪詢重新映射電路135,以確定是 否已發(fā)生了任何轉(zhuǎn)換故障。如果AW^有效,則找到相關(guān)聯(lián)AW表項 目索引(通過INDEX = AW# - START—AW計算得出)。接著,存取在 AWPTR[INDEX]處的AW表項目,并確定它是否標(biāo)記有DMA請求 中的裝置ID。如果檢驗成功,貝'J AWPTR值指示AW頁表的基址。 DPA[21:12]字段中的值用于取AW頁表中的適當(dāng)AWPTE。
基于AWPTE的編程,DMA請求凈皮完成到在AWPTE中規(guī)定的 HPA,或者它被阻止。AWPTE處理類似于在重新映射電路135中如 何為所述的多級I/O頁表處理葉PTE。在一個實施例中,如果轉(zhuǎn)換成 功,它由重新映射電路135在I/O轉(zhuǎn)換后備緩沖器(1/0 TLB)高速緩存。
如上所述,除了基于單級和多級頁表的地址轉(zhuǎn)換外,重新映射電 路135還執(zhí)行基于地址窗口的轉(zhuǎn)換。圖11是一個流程圖,示出了重 新映射電路135執(zhí)行基于地址窗口的轉(zhuǎn)換和基于單級和多級頁表的地 址轉(zhuǎn)換的操作的 一 個實施例。
在處理框1110, 1/0裝置生成DMA請求。在處理框1120, DMA 請求經(jīng)重新映射電路135以常規(guī)方式處理。在判定框1130,確定在I/O TLB中是否找到在DMA請求中規(guī)定的地址的轉(zhuǎn)換(例如,標(biāo)記有事 務(wù)處理中的裝置ID)。如果在I/O TLB中找到了在DMA請求中規(guī)定 的地址的轉(zhuǎn)換,則在處理框1140,完成轉(zhuǎn)換而無需任何存儲器存取。 這包括可使用單級或多級頁表或通過地址窗口轉(zhuǎn)換的DMA。
如果在I/O TLB中未找到在DMA請求中規(guī)定的地址的轉(zhuǎn)換(例 如,檢測到未中),則在處理框1150,查找上下文高速緩存以確定裝 置的轉(zhuǎn)換行為。在判定框1160,確定是否要通過單級或多級頁表阻 止或處理轉(zhuǎn)換。如果要通過單級或多級頁表阻止或處理轉(zhuǎn)換,則在處 理框1170,按照在如上參照圖1-5所述的常失見重新映射電^各135體系
結(jié)構(gòu)中所述的處理該請求。然而,如果不通過單級或多級頁表阻止或 處理轉(zhuǎn)換,則裝置的上下文項目規(guī)定基于地址窗口的轉(zhuǎn)換。因此,在處理框1180,按照如上參照圖7所述的執(zhí)行基于地址窗口的轉(zhuǎn)換。
圖12示出了計算機系統(tǒng)100的另一實施例。在此實施例中,芯 片組包括與單獨的MCH和ICH相對的單個控制中心1230。另外, 存儲器控制位于處理器110中。因此,系統(tǒng)存儲器140耦合到處理器 110。在一個實施例中,重新映射電路135包括在控制中心1230中。 在另一實施例中,重新映射電路135包括在處理器UO或系統(tǒng)存儲器 140中。
上述重新映射體系結(jié)構(gòu)實現(xiàn)了類似于多級頁表的4K粒度DMA 地址轉(zhuǎn)換,并仍提供了限制于與單個存儲器查找相關(guān)聯(lián)的開銷的最壞 情況性能保證。
盡管在閱讀了上述說明后,本領(lǐng)域的技術(shù)人員將毫無疑問地明白 本發(fā)明的許多變化和修改,但要理解,通過圖示顯示和描述的任何具 體實施例決不可視為限制。因此,對各種實施例細(xì)節(jié)的引用無意限制 權(quán)利要求書的范圍,在其自身中只敘述了被視為本發(fā)明的那些特性。
權(quán)利要求
1.一種設(shè)備,包括重新映射電路以便于一個或多個輸入/輸出(I/O)裝置使用直接存儲器存取(DMA)事務(wù)處理存取存儲器裝置,所述重新映射電路包括第一轉(zhuǎn)換機制以經(jīng)基于地址窗口的轉(zhuǎn)換對I/O DMA事務(wù)處理執(zhí)行存儲器地址轉(zhuǎn)換。
2. 如權(quán)利要求1所述的設(shè)備,還包括第二轉(zhuǎn)換機制以經(jīng)單級頁表和多級頁表中至少一個對I/O DMA事務(wù)處理執(zhí)行存儲器地址轉(zhuǎn)換。
3. 如權(quán)利要求1所述的設(shè)備,其中第一轉(zhuǎn)換機制包括地址窗口指針表(AWPTR)以執(zhí)行所述基于地址窗口的轉(zhuǎn)換。
4. 如權(quán)利要求3所述的設(shè)備,其中所述AWPTR包括至少一個項目,所述項目包含至少一個地址窗口(AW)的地址窗口頁表(AWPT)的基址。
5. 如權(quán)利要求4所述的設(shè)備,其中每個AWPTR項目標(biāo)記有指示相關(guān)聯(lián)AW被分配到的1/0裝置的裝置ID。
6. 如權(quán)利要求5所述的設(shè)備,其中所述裝置ID還包括指示總線、裝置和所述裝置內(nèi)功能中至少一項的信息。
7. 如權(quán)利要求4所述的設(shè)備,其中每個AWPT項目為所述AW內(nèi)的4KB槽提供轉(zhuǎn)換。
8. 如權(quán)利要求4所述的設(shè)備,其中每個AWPT項目包括存取控制位,所述存取控制位規(guī)定是否允許對用于存取所述AWPT項目的裝置物理地址進行讀存取或?qū)懘嫒 ?br> 9. 一種方法,包括在重新映射電路從請求輸入/輸出(I/0)裝置接收直接存儲器存取 (DMA)請求;確定是否容許完成所述DMA請求;以及如果容許所述存取,則在存儲器中將裝置物理地址(DPA)轉(zhuǎn)換成 主才幾物理地址(HPA)。
10. 如權(quán)利要求9所述的方法,其中確定是否容許完成所述DMA 請求包括計算與所述DPA相關(guān)聯(lián)的被請求地址窗口 (AW); 確定所述被請求AW是否綁定到所述重新映射電路;以及 確定所述被請求AW是否綁定到所述請求I/O裝置。
11. 如權(quán)利要求10所述的方法,其中如果確定所述被請求AW 未綁定到所述請求I/0裝置,則發(fā)生轉(zhuǎn)換故障。
12. 如權(quán)利要求10所述的方法,其中如果確定所述被請求AW 未綁定到所述重新映射電路,則發(fā)生所述轉(zhuǎn)換故障。
13. 如權(quán)利要求9所述的方法,還包括 找到所述DPA的相關(guān)聯(lián)AW指針表項目索引;以及 在所述索引處查找所述AW指針表項目。
14. 如權(quán)利要求13所述的方法,還包括確定所述AW指針表項 目是否標(biāo)記有對應(yīng)于所述請求I/O裝置的裝置ID。
15. 如權(quán)利要求13所述的方法,還包括存取存儲器中與所述AW 指針表項目和所述DPA相關(guān)聯(lián)的AW頁表項目(AWPTE)。
16. 如權(quán)利要求15所述的方法,還包括#_用所述AWPTE計算與 所述DPA相關(guān)^:的所述HPA。
17. 如權(quán)利要求16所述的方法,還包括基于所述AWPTE中至少一個容許位和所述DMA請求類型,確 定是否允許完成所述DMA請求;以及如果在所述至少一個容許位不允許所述DMA請求類型,則阻止 完成所述DMA請求。
18. 如權(quán)利要求9所述的方法,還包括高速緩存所完成的轉(zhuǎn)換。
19. 一種計算機系統(tǒng),包括 主存儲器裝置;一個或多個輸入/輸出(1/0)裝置,經(jīng)直接存儲器存取(DMA)存取所 述存儲器裝置;以及存儲器控制器,耦合到所述存儲器裝置,具有DMA重新映射電 路以便于所述一個或多個I/O裝置存取所述存儲器裝置,所述DMA 重新映射電路包括第一轉(zhuǎn)換機制,經(jīng)基于地址窗口的轉(zhuǎn)換對I/O DMA事務(wù)處 理執(zhí)行存儲器地址轉(zhuǎn)換。
20. 如權(quán)利要求19所述的計算機系統(tǒng),il包括第二轉(zhuǎn)換機制,以 經(jīng)單級頁表和多級頁表中至少一個對I/O DMA事務(wù)處理執(zhí)行存儲器 地址轉(zhuǎn)換。
21. 如權(quán)利要求19所述的計算機系統(tǒng),其中所述存儲器裝置再分 成至少一個地址窗口(AW)。
22. 如權(quán)利要求21所述的計算機系統(tǒng),其中所述存儲器裝置還包 括AW頁表(AWPT),所述AWPT定義裝置物理地址(DPA)到主機物 理地址(HPA)轉(zhuǎn)換。
23. 如權(quán)利要求22所述的計算機系統(tǒng),其中所述AWPT包括至 少一個AW頁表項目(AWPTE),所述AWPTE為所述AW內(nèi)的至少 一個地址提供轉(zhuǎn)換。
24. 如權(quán)利要求21所述的計算機系統(tǒng),其中所述至少一個AW 中的每個被綁定到一個I/O裝置。
25. 如權(quán)利要求22所述的計算機系統(tǒng),其中第一轉(zhuǎn)換機制包括執(zhí) 行所述基于地址窗口的轉(zhuǎn)換的束(AWPTR)。
26. 如權(quán)利要求22所述的計算機系統(tǒng),其中所述AWPTR包括至 少一個項目,所述項目包括特定AW的AWPT的基址。
27. 如權(quán)利要求26所述的計算機系統(tǒng),其中每個AWPTR項目標(biāo) 記有指示相關(guān)聯(lián)AW被分配到的I/O裝置的裝置ID。
全文摘要
本文公開了一種設(shè)備。該設(shè)備包括重新映射電路以便于一個或多個I/O裝置為直接存儲器存取(DMA)事務(wù)處理存取存儲器裝置。重新映射電路包括一種轉(zhuǎn)換機制以經(jīng)基于地址窗口的轉(zhuǎn)換對I/ODMA事務(wù)處理執(zhí)行存儲器地址轉(zhuǎn)換。
文檔編號G06F13/20GK101203838SQ200680022186
公開日2008年6月18日 申請日期2006年6月20日 優(yōu)先權(quán)日2005年6月21日
發(fā)明者A·安德森, G·奈格爾, R·??ㄌm, S·本內(nèi)特, U·施泰因伯格 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沈阳市| 蕉岭县| 阿拉善右旗| 育儿| 屯门区| 富民县| 湖州市| 益阳市| 海门市| 新密市| 高密市| 浦县| 阿荣旗| 安康市| 扎鲁特旗| 天峻县| 晴隆县| 延寿县| 客服| 辽宁省| 五指山市| 绍兴市| 赣州市| 南木林县| 玉山县| 西吉县| 泾源县| 永胜县| 开封县| 呼伦贝尔市| 河源市| 五河县| 铜川市| 依兰县| 昭苏县| 兴宁市| 蒙城县| 新建县| 永兴县| 交城县| 绥中县|