專利名稱:靠近局部輸入/輸出總線的橋接器中的輸入/輸出地址轉(zhuǎn)換的制作方法
版權通知本文所含材料受到版權保護。本版權所有者不反對任何人按專利和商標局的專利文件或記錄中呈現(xiàn)的那樣復制本專利的公開,但是另一方面,無論如何要保留對該版權的所有權利。
背景技術:
總之,由于外圍設備采用與主計算機系統(tǒng)的主存儲器不同的地址空間,所以需要一種稱為“地址轉(zhuǎn)換”的處理,以便把外圍設備所提供的虛擬地址映射到主存儲器中相應的可能不連續(xù)的物理地址。
現(xiàn)在參考
圖1說明地址轉(zhuǎn)換的現(xiàn)有技術的一個實例。圖1是說明圖形地址與物理地址轉(zhuǎn)換的通用計算機系統(tǒng)100的高級框圖。計算機系統(tǒng)100包括處理裝置、如一個或多個處理器105和110,芯片組120,主存儲器125,存儲器總線124,圖形加速端口(AGP)總線130以及PCI(外圍部件互連)總線140。在此實例中,主存儲器包含圖形地址重定位表(GART),該表包含一些項目,用于把外圍設備、如圖形加速器135所用的虛擬地址映射到主存儲器125中的物理地址。
芯片組120提供AGP總線130、PCI總線140以及存儲器總線124之間的橋接功能。作為橋接功能的一部分,芯片組120利用GART 126將入站讀和寫事務(例如,由圖形加速器135始發(fā)的讀和寫事務)中包含的圖形地址轉(zhuǎn)換到主存儲器125中對應的物理地址。因此,在按照圖1配置的計算機系統(tǒng)中,圖形數(shù)據(jù)的處理、如紋理映射需要對主存儲器125的多次存取。首先,芯片組120必須從GART 126中檢索與正在執(zhí)行的事務中指定的圖形地址對應的項目。然后,在芯片組120確定了所需的物理地址之后,芯片組120必須執(zhí)行對主存儲器125的第二次存取,以便讀出或?qū)懭朐撌聞账付ǖ臄?shù)據(jù)。
AGP的最大優(yōu)點之一是,它將視頻子系統(tǒng)與計算機系統(tǒng)的其余部分隔離,這樣幾乎不會有如采用PCI的情況那么多的I/O帶寬上的爭用。但是,根據(jù)上述描述,顯然存在許多與目前處理AGP事務的轉(zhuǎn)換方式有關的低效率情況。例如,首先對通常由動態(tài)隨機存取存儲器(DRAM)構成的主存儲器125的存取與對靜態(tài)隨機存取存儲器(SRAM)的存取相比要相對慢一些。第二,用于地址轉(zhuǎn)換的主存儲器125存取必須與其他存取請求、如由處理器105或110始發(fā)并經(jīng)系統(tǒng)總線115接收的那些請求、或者在PCI總線140上接收的那些請求競爭。結果,因競爭通信量而減慢AGP轉(zhuǎn)換。最后,如果轉(zhuǎn)換單元(未示出)處理多種類型的通信量,例如系統(tǒng)總線通信量、PCI通信量以及AGP通信量,則由于需要仲裁邏輯來解決各種類型的入站和出站事務中轉(zhuǎn)換單元的爭用問題,所以情況會更加復雜。
因此,最好提供一種用于轉(zhuǎn)換I/O地址技術,以便加速I/O事務的執(zhí)行并提供地址轉(zhuǎn)換邏輯的簡化實現(xiàn)。此外,最好在與其他類型的通信量、如系統(tǒng)總線通信量或來自其他I/O裝置的通信量隔離的裝置中執(zhí)行必要的I/O地址轉(zhuǎn)換。
發(fā)明概述現(xiàn)在描述用于在輸入/輸出(I/O)擴展橋接器中執(zhí)行地址轉(zhuǎn)換的方法和裝置。I/O擴展橋接器包括第一接口單元、第二接口單元以及地址轉(zhuǎn)換單元。第一接口單元被配置成通過一個或多個I/O端口與系統(tǒng)存儲器和I/O控制器耦合。第一接口單元使數(shù)據(jù)能通過所述一個或多個I/O端口傳到計算機系統(tǒng)的主存儲器或者從其中傳出。第二接口單元提供總線控制信號和地址,使數(shù)據(jù)能通過總線傳遞到外圍設備或從外圍設備中傳出。地址轉(zhuǎn)換單元與第一接口單元和第二接口單元耦合。地址轉(zhuǎn)換單元通過訪問局部存儲器來轉(zhuǎn)換與第二接口上接收的事務相關的地址,所述局部存儲器含有計算機系統(tǒng)的主存儲器中頁面的物理地址。
本發(fā)明的其他特征和優(yōu)點將從附圖和詳細描述中變得清楚明白。
附圖簡介在附圖中以舉例而非限制的方式說明本發(fā)明,圖中的類似參考標號表示類似部分,其中圖1是說明用于圖形地址轉(zhuǎn)換的現(xiàn)有技術方法的框圖。
圖2是說明根據(jù)本發(fā)明的一個實施例的輸入/輸出地址轉(zhuǎn)換的框圖。
圖3是說明根據(jù)本發(fā)明的一個實施例的圖形地址轉(zhuǎn)換的框圖。
圖4是說明可以實現(xiàn)本發(fā)明的實施例的示例芯片組的框圖。
圖5A是說明根據(jù)本發(fā)明的一個實施例的圖形擴展橋接器的功能單元中高級互連的簡化框圖。
圖5B是說明根據(jù)本發(fā)明的一個實施例的圖形擴展橋接器的更詳細視圖的簡化框圖。
圖6是在概念上說明根據(jù)本發(fā)明的一個實施例的事務處理的高級流程圖。
圖7是說明根據(jù)本發(fā)明的一個實施例的入站PCI寫事務處理的流程圖。
圖8是說明根據(jù)本發(fā)明的一個實施例的出站PCI寫事務處理的流程圖。
圖9在概念上說明根據(jù)本發(fā)明的一個實施例的圖形(虛擬)至物理地址空間的轉(zhuǎn)換。
圖10A說明可用來查閱駐留在主存儲器中4千字節(jié)頁面中的數(shù)據(jù)的示例虛擬地址格式。
圖10B說明可用來查閱駐留在主存儲器中4兆字節(jié)頁面中的數(shù)據(jù)的示例虛擬地址格式。
圖11A說明支持至主存儲器中4千字節(jié)頁面的地址轉(zhuǎn)換的示例GART項目格式。
圖11B說明支持至主存儲器中4兆字節(jié)頁面的地址轉(zhuǎn)換的示例GART項目格式。
本發(fā)明的詳細描述現(xiàn)在描述用于在I/O擴展橋接器中執(zhí)行地址轉(zhuǎn)換的方法和裝置。概括地講,本發(fā)明的實施例嘗試提供一種用于轉(zhuǎn)換I/O地址的技術,它將I/O轉(zhuǎn)換裝置、如I/O擴展橋接器與其他類型的通信量、如系統(tǒng)總線事務隔離,從而加速I/O事務的執(zhí)行。根據(jù)本發(fā)明的一個特征,GART可以存儲在局部SRAM中而不用跨過存儲器總線。有利的是,由于接口是局部的并且提取GART項目的存取不必與其他類型的通信量競爭,所以可以更快地完成事務,而且可簡化轉(zhuǎn)換裝置的實現(xiàn)。
在以下描述中,為了說明而給出大量的特定細節(jié),以便提供對本發(fā)明的透徹理解。但是,顯然對于本領域的技術人員來說,沒有這些特定細節(jié)也可以實施本發(fā)明。在其他例子中,眾所周知的結構和裝置以框圖形式表示。
本發(fā)明包括將在下面描述的各種步驟。本發(fā)明的步驟可以由硬件組件來執(zhí)行,也可以用機器可執(zhí)行指令來實現(xiàn),這可用來使以這些指令編程的通用或?qū)S锰幚砥骰蜻壿嬰娐穲?zhí)行這些步驟?;蛘?,可以通過硬件與軟件的組合來執(zhí)行這些步驟。
重要的是,雖然本發(fā)明的實施例是參照可在本地、由轉(zhuǎn)換各種AGP和PCI類事務的圖形擴展橋接器(GXB)訪問的圖形加速端口(AGP)和圖形地址重定位表(GART)來描述的,但是此處所述的方法和裝置同樣適用于其他類型的I/O事務和I/O擴展橋接器、或者其中I/O總線上的裝置需要主存儲器的相連視圖的其他類型的總線。例如,此處所述技術被認為在與涉及VESA(視頻電子標準協(xié)會)局部總線(VLB)和/或外圍部件互連(PCI)總線的事務結合時是有用的。術語在描述可以實現(xiàn)本發(fā)明各種實施例的示例環(huán)境之前,先簡要地定義在整個本申請中要用到的一些術語。
術語“總線”一般指物理通信媒體或信道,信息通過它在兩個或兩個以上裝置之間流動。雖然有人認為其上只有兩個裝置的總線是“端口”,但是此處所用的術語“總線”意在涵蓋這種端口。
術語“處理器總線”、“系統(tǒng)總線”或“主機總線”一般指計算機系統(tǒng)的總線分級結構中的最高級總線。該總線通常被系統(tǒng)芯片組用于將信息發(fā)送到計算機系統(tǒng)的一個或多個處理器以及從這些處理器發(fā)送信息。
“存儲器總線”指將存儲器子系統(tǒng)連接到系統(tǒng)芯片組和處理器的總線。注意,在某些計算機系統(tǒng)中,處理器總線和存儲器總線可能是同一條總線。
“局部I/O總線”一般是用于將各種類型的外圍設備連接到計算機系統(tǒng)的存儲器、系統(tǒng)芯片組和/或處理器的高速輸入/輸出(I/O)總線。例如,視頻卡、盤存儲裝置、高速網(wǎng)絡接口以及其他關鍵性能的外圍設備通常都與此類型的總線耦合。常用的局部I/O總線包括VESA局部總線(VLB)、外圍部件互連(PCI)總線以及圖形加速端口(AGP)總線。同樣出于本公開的目的,設計成由兩個以上裝置共用的總線和設計成僅供兩個裝置使用的端口、如I/O端口或AGP都被認為是總線。
“圖形加速端口”(AGP)是一種高性能總線規(guī)范,如《圖形加速端口接口規(guī)范》1998年5月4日的修訂版2.0以及其后續(xù)修訂版所述,該規(guī)范是為三維圖形和視頻圖像的快速、高質(zhì)量顯示而設計的。
“PCI事務”一般指具有AGP總線上發(fā)布的AGP語義的PCI事務。
此處所用的“橋接器”一般指在芯片組中實現(xiàn)的邏輯和電路,例如,它用來連接兩條總線,并且使一條總線上的裝置可與另一條總線上的裝置通信,反之亦然。例如,計算機系統(tǒng)中見到的一種常用橋接器是PCI-ISA(工業(yè)標準體系結構)橋接器,它通常是系統(tǒng)芯片組的一部分。PCI總線也可以還具有一個到處理器總線的橋接器,稱為PCI擴展橋接器(PXB)。
在此申請的上下文中,“事務”包括一個或多個請求(地址)階段和數(shù)據(jù)階段。事務通常包括開始地址、事務類型以及要傳送的數(shù)據(jù)量的指示。
特定事務的方向是從處理器的觀點來確定的。因此,“入站事務”一般指由外圍設備、如視頻卡、盤存儲裝置或高速網(wǎng)絡接口指向計算機系統(tǒng)的讀或?qū)懻埱?;而“出站事務”一般指由計算機系統(tǒng)指向外圍設備的讀或?qū)懻埱?。輸?輸出地址轉(zhuǎn)換本發(fā)明的各種特征被認為通常在與I/O擴展橋接器中執(zhí)行地址轉(zhuǎn)換結合時有用。為了在上下文中闡述本發(fā)明的廣泛方面,下面參考圖2描述可用來實現(xiàn)本發(fā)明的一個實施例的示例性的計算機系統(tǒng)體系結構。圖2說明通用計算機系統(tǒng)200,其中可執(zhí)行根據(jù)本發(fā)明的一個實施例的方法的一個或多個步驟,并且其中可設有根據(jù)本發(fā)明的一個實施例的裝置。計算機系統(tǒng)200包括處理裝置、如一個或多個處理器205和210、芯片組220、主存儲器225、存儲器總線224以及局部I/O總線230。根據(jù)本實施例,芯片組220包含地址轉(zhuǎn)換表226。地址轉(zhuǎn)換表包含許多項目(未示出),便于把從外圍設備235接收的虛擬地址轉(zhuǎn)換成主存儲器225中的物理地址。如下面進一步描述的,芯片組220可包括一個或多個集成電路,可在其上面分布各種芯片組功能,例如系統(tǒng)總線仲裁、I/O地址轉(zhuǎn)換等。在此實例中,芯片組220起到局部I/O總線230和系統(tǒng)總線215與存儲器總線224之間的橋接器的作用。作為橋接操作的一部分,芯片組220訪問局部地址轉(zhuǎn)換表226,以便將外圍設備235使用的連續(xù)I/O地址空間轉(zhuǎn)換到主存儲器225的物理地址空間。注意,正如以下要進一步說明的,通過將地址轉(zhuǎn)換表226放置對于芯片組220來說是本地的位置(例如專用片內(nèi)或片外SRAM中),可以更為有效地執(zhí)行來自外圍設備235的入站事務。圖形地址轉(zhuǎn)換本發(fā)明的各種特征被認為對于執(zhí)行從如AGP兼容圖形裝置使用的圖形地址空間到主存儲器225的物理地址空間的地址轉(zhuǎn)換特別有用。圖3是說明其中可以實現(xiàn)根據(jù)本發(fā)明一個實施例改進的虛擬地址轉(zhuǎn)換技術的通用計算機系統(tǒng)300的高級框圖。計算機系統(tǒng)300包括處理裝置、如一個或多個處理器305和310、芯片組320、主存儲器225、存儲器總線324、圖形加速端口(AGP)總線330以及PCI總線340。在所述實施例中,芯片組320包括圖形地址重定位表(GART)326。GART 326包含GART項目(以下描述),這些項目包含用于實現(xiàn)從圖形加速器335接收的虛擬地址到主存儲器325的物理地址的轉(zhuǎn)換的信息。
根據(jù)本實施例,GART 326可由芯片組320局部地訪問,而不是跨過存儲器總線324設置在主存儲器325中。芯片組320提供AGP總線330、PCI總線340與存儲器總線324之間的橋接功能。作為橋接功能的一部分,芯片組320利用局部GART 326將入站讀和寫事務(例如,由圖形加速器335始發(fā)的讀和寫事務)中包含的圖形地址轉(zhuǎn)換成主存儲器325中相應的物理地址。如上所述,參考圖2,通過將GART 326設置在芯片組320中,可以更為有效地處理和執(zhí)行來自外圍設備、如圖形加速器335的入站事務。注意,與從主存儲器325(例如DRAM)提取數(shù)據(jù)可能需要大約300至500毫微秒不同,從局部SRAM提取可以在大約30毫微秒或更短的時間內(nèi)完成。示例性芯片組簡要描述了可采用本發(fā)明的示例性環(huán)境之后,將參考圖4描述示例性芯片組實現(xiàn)。圖4說明根據(jù)本發(fā)明的一個實施例的多個單元(例如芯片)中功能的示范性分配。在本實例中,芯片組320包括系統(tǒng)地址控制器(SAC)415、系統(tǒng)數(shù)據(jù)控制器(SDC)420、PCI擴展橋接器(PXB)425、圖形擴展橋接器(GXB)410以及靜態(tài)RAM(SRAM)405。
SAC 420連接到系統(tǒng)總線315的地址和控制部分(未示出)。SAC負責對系統(tǒng)總線315對適當I/O端口或主存儲器325的存取進行轉(zhuǎn)換和定向。它還作為入站通信量的路由代理,將其定向到對等I/O端口412或427、主存儲器325或者系統(tǒng)總線315。
SDC連接到系統(tǒng)總線315上的數(shù)據(jù)信號(未示出),還通過存儲器總線324和SAC 420連接到主存儲器325。無論是從系統(tǒng)總線315到主存儲器325,還是從I/O端口412或427之一到存儲器或者在對等I/O端口412或427之間,所有要傳遞的數(shù)據(jù)都經(jīng)過SDC。SAC 415和SDC 420之間的連接允許同時把數(shù)據(jù)傳遞至系統(tǒng)總線315和I/O端口412或427,從而使到各個系統(tǒng)代理者的可用帶寬最大化。在另一個實施例中,SAC 420和SDC的功能可以組合成單個系統(tǒng)存儲器和I/O控制器421或者分布在附加的集成電路上。
PXB 425提供I/O端口427、如F16總線與PCI總線340之間的總線協(xié)議橋接功能。單個PXB 425通常連接到一個I/O端口427并且構建兩條33兆赫的32位PCI總線?;蛘?,PXB 425可以支持單個64位PCI總線。計算機系統(tǒng)可包括多個PXB(通常為1至4個)。
GXB 410通過在I/O端口412與AGP總線330之間提供總線協(xié)議橋接功能,在I/O端口412、例如兩條F16總線和AGP總線330之間構建橋接器。以這種方式,GXB 410為計算機系統(tǒng)添加了高性能的專用圖形端口??梢栽谟嬎銠C系統(tǒng)中以具體例子說明多個GXB,從而構建多圖形端口的工作站。GXB 410的主要功能是構建I/O端口412與AGP總線330之間的橋接器。簡要地說,GXB 410實現(xiàn)此功能是通過從I/O端口412接收出站事務,將它們存儲在內(nèi)部,然后利用適當信號發(fā)送協(xié)議在AGP總線330上傳遞它們。相反地,GXB 410接收AGP總線330上發(fā)出的入站事務,也將它們存儲在內(nèi)部,轉(zhuǎn)換與該入站事務相關的圖形地址,并將所轉(zhuǎn)換的入站事務發(fā)送到I/O端口412上。正如下面將進一步詳細描述的,GXB 410通過訪問存儲在片內(nèi)或片外SRAM 405中的GART 326來執(zhí)行地址轉(zhuǎn)換。通過圖4的芯片組體系結構得到若干優(yōu)點。首先,GXB 410與系統(tǒng)總線315以及相關的系統(tǒng)通信量隔離,從而消除了爭用GXB 410資源的原因,免除了對相關的仲裁邏輯的需要。其次,因為GART 326駐留在GXB410中,地址轉(zhuǎn)換處理不會影響主存儲器通信量,且存儲器總線324被更為有效地利用。另外,對GART 326的局部SRAM存取大約比GXB 410必須越過存儲器總線324的情況快10倍。因此,最終結果是用于服務AGP總線330上事務的改進的協(xié)議橋接器。該改進的協(xié)議橋接器比上述目前的橋接技術更簡單、更快速和更有效。下面將描述GXB 410的示例性內(nèi)部劃分。
注意,鑒于最近集成的趨勢,設想可以將一個或多個GXB 410組件集成到單個集成電路(IC)上。此外,在備選實施例中,一個或多個GXB 410組件可與處理器和/或存儲器集成到單個集成電路上。圖形擴展橋接器的功能劃分現(xiàn)在將參考圖5A描述將GXB 410的各種功能劃分為特定單元的實例。圖5A是說明根據(jù)本發(fā)明的一個實施例的圖形擴展橋接器的功能單元中高級互連的簡化框圖。在本實例中,GXB 410包括AGP總線接口單元505、數(shù)據(jù)緩沖器單元510、事務排隊單元515、GART單元520以及I/O端口接口單元525。AGP總線接口單元505可以基于66兆赫的32位PCI總線。實際應用中,為了易于實現(xiàn),AGP總線接口單元505可以被進一步劃分成核心PCI總線和添加AGP功能的增量邏輯。在AGP一側(cè),AGP總線接口單元505包括用于管理入站和出站事務之間的AGP總線330所有權的仲裁邏輯(未示出)。此外,AGP總線接口單元505提供總線控制信號和地址,使AGP數(shù)據(jù)能在AGP總線330上傳遞。AGP總線接口單元505還可以維持內(nèi)部事務排隊和數(shù)據(jù)緩沖器(未示出),以用于執(zhí)行任何必需的流內(nèi)重排序和用于保留某事務、直到在事務排隊單元515中有足夠的資源可用來服務于該事務。
正如下面進一步描述的,事務排隊單元515實現(xiàn)用于入站和出站事務的一個或多個內(nèi)部事務排隊。緩沖器空間也可以在GXB 410中實現(xiàn),以便支持各種數(shù)據(jù)緩沖需要。例如,數(shù)據(jù)緩沖器單元510可包括數(shù)據(jù)緩沖器,用于暫時在GXB 410內(nèi)存儲數(shù)據(jù)。數(shù)據(jù)緩沖器可作為用于各方向上的各事務類型的分立緩沖器或者作為公用緩沖器來實現(xiàn)。
如上所述,在目前的圖形地址轉(zhuǎn)換機制中,GART 126存儲在主存儲器125中。因此,在這種實現(xiàn)中,GART功能是靠近主存儲器125來執(zhí)行的。相反,根據(jù)本實施例,GART功能是在GXB 410內(nèi)由GART單元520執(zhí)行的。根據(jù)一個實施例,無論何時事務隊列之一中駐留有效事務,GART單元就實現(xiàn)進棧模式并且轉(zhuǎn)換事務。在這一點上,GART單元520負責從事務隊列中接受入站事務并按照需要轉(zhuǎn)換該事務。在所述實施例中,GART單元520耦合到包括GART 326的局部片外SRAM 405。或者,GART 326也可以存儲在片內(nèi)SRAM中。GART單元520還負責對SRAM 405的內(nèi)容編程。在任何存取開始之前,SRAM 405應該被初始化為無效的或被編程。例如,每當啟動新應用程序時,可以指定GART單元520來動態(tài)地對SRAM 405編程??梢酝ㄟ^從系統(tǒng)總線315發(fā)出編程存取請求來實現(xiàn)編程。
I/O端口接口單元525通過在一個或多個I/O端口上啟動請求和數(shù)據(jù)傳遞來為一個或多個I/O端口提供接口。例如,根據(jù)一個實施例,I/O端口接口單元525對接兩條F16總線。I/O端口接口單元525根據(jù)可用性和流優(yōu)先權從保持事務排隊單元515中保存的入站事務隊列中刪除事務,并通過適當?shù)腎/O端口412發(fā)送事務。如果該請求是寫,則從數(shù)據(jù)緩沖器單元510中適當?shù)木彌_器讀取數(shù)據(jù),也將其發(fā)送。對于出站事務,在保持在事務排隊單元515中的適當出站事務隊列中添加項目。如果需要的話,與出站事務相關的數(shù)據(jù)被交付到數(shù)據(jù)緩沖器單元510中適當?shù)木彌_器中。
出于說明的目的,事務和與之相關的數(shù)據(jù)被劃分為獨立的單元。但是,還設想了各種其他替代實施例。例如,根據(jù)一個實施例,可以將相關的數(shù)據(jù)緩沖器和事務歸為一組。因此,此處任何公開不應被認為把本發(fā)明限定于根據(jù)特定GXB功能劃分的實施例。
圖5B是說明根據(jù)本發(fā)明的一個實施例的圖形擴展橋接器410的詳細情況的簡化框圖。根據(jù)本實例,在AGP規(guī)范的精神中,高和低AGP和PCI流都被作為獨立結構一直保持到I/O端口接口單元525。事務排隊單元515包括AGP低優(yōu)先權隊列560、AGP高優(yōu)先權隊列565、PCI入站隊列570、SAC入站控制邏輯580、SAC出站控制邏輯585以及PCI出站隊列590。AGP總線接口單元505從AGP總線330接收入站AGP事務,并將它們添加到適當?shù)年犃?60、565或570。例如,來自AGP總線330的入站PCI事務被AGP總線接口單元505指定到PCI入站隊列570的路由。
SAC出站控制邏輯585從I/O端口412接收出站事務,并將它們排列到PCI出站隊列590中。然后,PCI出站隊列590被AGP總線接口單元505卸載。注意,因為出站事務不需要地址轉(zhuǎn)換,所以它們不必經(jīng)過GART單元520。
根據(jù)本實施例,GART單元520包括仲裁單元530、執(zhí)行單元535以及回寫單元540。仲裁單元530執(zhí)行兩個主要功能(1)在來自配置控制單元595的AGP和PCI存取和SRAM存取(編程存取)之間仲裁;以及(2)產(chǎn)生SRAM地址(GART索引)。仲裁單元530的仲裁功能包括確定下一步將轉(zhuǎn)換事務隊列560、565和570開頭那些事務中的哪一個。與事務隊列560、565和570中入站事務相關的虛擬地址(在一個實施例中其寬度為40位)太寬,以致無法直接饋送到SRAM 405。因此,仲裁單元530的SRAM地址產(chǎn)生功能(GART索引產(chǎn)生功能)根據(jù)贏得仲裁的事務的虛擬地址確定SRAM地址。仲裁單元530然后可以向執(zhí)行單元535發(fā)出信息,使它應該斷定用于SRAM操作(例如讀或?qū)?的適當控制信號。以此方式,執(zhí)行單元535可以立即發(fā)出SRAM周期,而不必進一步處理地址?;蛘?,仲裁單元530可以向執(zhí)行單元535提供SRAM地址,而執(zhí)行單元535可以組裝一個完整的數(shù)據(jù)包,并將其發(fā)送到SRAM 405。
最好是,SRAM 405應該以流水線方式運行,并且每個時鐘,仲裁單元530都應該能夠提供要轉(zhuǎn)換的下一個事務的地址,并且將下一個事務的可用性傳達到執(zhí)行單元535。
在一個實施例中,執(zhí)行單元535通過在適當時間斷定和取消SRAM控制信號來啟動和控制各種SRAM操作。在一個替代實施例中,執(zhí)行單元535可完成執(zhí)行階段,該階段包括處理來自仲裁單元530的輸入SRAM地址,以及通過將其發(fā)送到SRAM 405來執(zhí)行它。當執(zhí)行單元535接收了GART項目時,它們被用來執(zhí)行地址轉(zhuǎn)換或被廢棄。如果GART項目所對應的入站事務地址在GART孔內(nèi),則該GART項目被用于執(zhí)行地址轉(zhuǎn)換。但是,如果入站事務地址在GART孔(例如,它是某個物理地址)以外,則放棄該GART項目,而且不執(zhí)行地址轉(zhuǎn)換。在一個替代實施例中,執(zhí)行單元535可以保留舊的轉(zhuǎn)換或者利用轉(zhuǎn)換后備緩沖器以便于地址轉(zhuǎn)換。而無論如何,“轉(zhuǎn)換的地址”,例如原入站事務地址或物理地址會被提供給回寫單元540。
回寫單元540接收執(zhí)行單元535提供的SRAM數(shù)據(jù)和使用信息,配置控制單元595將該數(shù)據(jù)格式化,并為其指定到正確目的地的路由(例如,事務排隊單元515中的隊列的一個項目)。例如,根據(jù)所述實施例,回寫單元540負責以執(zhí)行單元提供的轉(zhuǎn)換地址重寫入站事務的虛擬地址。高級事務處理圖6是在概念上說明根據(jù)本發(fā)明一個實施例的事務處理的高級流程圖。在本實例中,在步驟610,接收到事務。然后在步驟620,根據(jù)事務類型判斷是否執(zhí)行地址轉(zhuǎn)換。如果事務是入站事務(例如,從AGP總線330接收的事務),則事務處理繼續(xù)進行步驟630。否則,如果事務是出站事務(例如,從一個或多個I/O端口412接收的事務),則事務處理繼續(xù)進行步驟640。在步驟630,執(zhí)行轉(zhuǎn)換處理。雖然為了方便,可以投機性地從SRAM 410中提取GART項目,但是不是所有的入站事務都被轉(zhuǎn)換。例如,指定超出AGP范圍(例如,GART孔)的虛擬地址的入站事務將不被轉(zhuǎn)換。在步驟640,出站事務繞過轉(zhuǎn)換處理。最后,在步驟650,在適當總線上執(zhí)行事務(例如,在一個或多個I/O端口412上執(zhí)行入站事務,在AGP總線330上執(zhí)行出站事務)。入站PCI寫事務處理最好,如圖5B所示,GXB 410被配置為處理AGP總線330上接收的AGP事務和PCI事務,以便提供向后兼容級。通過GXB 410的處理流程,對于PCI、低優(yōu)先權的AGP以及高優(yōu)先權的AGP流中的每一個都非常類似。因此,此處將只描述示范性PCI事務的處理。
圖7是說明根據(jù)本發(fā)明一個實施例的入站PCI寫事務處理的流程圖。在所述實例中,在步驟710,PCI周期運行在AGP總線330上,將PCI事務遞送到GXB 410,之后是遞送與該PCI事務相關的數(shù)據(jù)。在步驟720,把PCI事務緩存在PCI入站緩沖器570中。一旦贏得仲裁,與該PCI事務相關的虛擬地址被轉(zhuǎn)換為主存儲器325中的物理地址(步驟730),下面將進一步地說明。在步驟740,用轉(zhuǎn)換的地址重寫PCI事務的虛擬地址。由于檢索GART項目的投機性,當不要執(zhí)行轉(zhuǎn)換時,轉(zhuǎn)換的地址可能與虛擬地址相同。在任何情況下,在步驟750,把轉(zhuǎn)換的PCI事務緩存在SAC入站緩沖器580中,直到可以在適當I/O端口412上執(zhí)行該事務。最后,通過在I/O端口412上執(zhí)行寫周期來完成轉(zhuǎn)換的PCI事務。出站PCI寫事備處理如上所述,出站事務不需要由GXB 410轉(zhuǎn)換。為了進一步說明這一點,現(xiàn)在參考圖8描述與出站PCI寫事務相關的處理。根據(jù)此實例,在I/O端口412上執(zhí)行寫請求,PCI請求被接收并送到SAC出站控制邏輯585(步驟810和820)。與PCI請求相關的數(shù)據(jù)被傳遞到數(shù)據(jù)緩沖器單元510。在步驟840,一旦贏得仲裁時隙,通過在AGP總線330上執(zhí)行寫周期來完成出站PCI寫事務。在成功完成出站PCI寫事務之后,可以提供寫完成指示(步驟850和860)。地址轉(zhuǎn)換概述圖9在概念上說明根據(jù)本發(fā)明一個實施例的圖形(虛擬)至物理地址空間的轉(zhuǎn)換。簡要地說,在此實例中,虛擬地址915包括AGP地址920和偏移量925。例如,虛擬地址915表示圖形加速器335所使用的連續(xù)邏輯地址空間中的地址。AGP地址920、它的一部分或者由AGP地址920推導的其他信息被用于從GART 905中檢索適當?shù)捻椖?。包含在GART項目內(nèi)的信息標識了包含對應于虛擬地址915的物理地址的主存儲器325中的物理頁面。GART項目所標識的物理頁面和與虛擬地址915間的偏移量925組合,從而構成主存儲器地址930。對多種頁面大小的支持根據(jù)一個實施例,GXB 410支持主存儲器325中兩種不同的頁大小。虛擬地址915的轉(zhuǎn)換取決于相應的物理地址駐留于其中的頁面大小。在一個實施例中,對于落在GART孔內(nèi)的所有頁面使用固定的頁面大小(例如,4千字節(jié)或4兆字節(jié)),并且在系統(tǒng)引導期間,頁面大小的指示被存儲在GXB 410的控制寄存器中。目前,對于GART項目,AGP程序設計模型是采用4千字節(jié)頁面設計的。通過允許更大的頁面大小(例如,2兆字節(jié)、4兆字節(jié)等),GXB 410與高性能計算機系統(tǒng)兼容。
雖然上述GART孔中的所有頁面不是一種大小就是另一種大小,但是在替代實施例中,GART孔可以同時包括不同大小的頁面。在本實施例中,地址轉(zhuǎn)換需要被動態(tài)地控制,如下所述。
圖10A說明可用于查閱駐留在主存儲器中的4千字節(jié)頁面中的數(shù)據(jù)的示范性虛擬地址格式。根據(jù)本實施例,虛擬地址915是40位寬。AGP地址1020包含28位而偏移量1025包含12位。
圖10B說明可用于查閱駐留在主存儲器中的4兆字節(jié)頁面中的數(shù)據(jù)的示范性虛擬地址格式。根據(jù)本實施例,虛擬地址915也是40位寬。但是,AGP地址1021被減少到18位而偏移量1025被增加到22位。設想各種其他的頁面大小也是適用的。
圖11A說明支持地址轉(zhuǎn)換到主存儲器中4千字節(jié)頁面的示范性GART項目格式1105。在本實例中,項目1105有32位寬,包括奇偶位1115、相干位1120、有效位1125、新頁面地址1130以及保留區(qū)1110。每個項目涵蓋一個4千字節(jié)的頁面。一兆字節(jié)就足以保存256K個項目或者總計1GB的用于4千字節(jié)頁面的可轉(zhuǎn)換空間。
奇偶位1115涵蓋整個GART項目1105。它可以由硬件產(chǎn)生,經(jīng)計算,使得包括奇偶位1115的1的總數(shù)合計為偶數(shù)或奇數(shù)。
相干位1120指示來自圖形卡的通信量是否需要與系統(tǒng)總線315相干。下文會進一步討論相干性。
有效位1125指示SRAM 405是否包含用于此項目的有效數(shù)據(jù)。如果有效位1125指示該數(shù)據(jù)對于該項目是有效的,則可以利用該項目進行地址轉(zhuǎn)換。
在此實例中,新頁面地址1130是24位寬。新頁面地址1130包含主存儲器325中包含所需物理地址的4千字節(jié)物理頁面的起始地址。
圖11B說明支持地址轉(zhuǎn)換至主存儲器中的4兆字節(jié)頁面的示范GART項目格式。在此實例中,如上所述,項目1106是32位寬,包括奇偶位1116、相干位1121、有效位1126、新頁面地址1131以及保留區(qū)1111和1136。每個項目涵蓋一個4兆字節(jié)的頁面。
如上所述,奇偶位1116涵蓋整個GART項目1106,可以經(jīng)計算使得包括奇偶位1116的1的總數(shù)合計為偶數(shù)或奇數(shù)。
相干位1121指示來自圖形卡的通信量是否需要與系統(tǒng)總線315相干。下面將進一步討論相干性。
有效位1126指示SRAM 405是否包含可供正討論的項目使用的有效數(shù)據(jù)。如果有效位1126指示該數(shù)據(jù)對于該項目是有效的,則可以利用該項目進行地址轉(zhuǎn)換。
在此實例中,新頁面地址1131是14位寬。新頁面地址1131包含主存儲器325中的包含所需物理地址的4兆字節(jié)物理頁面的起始地址。
在替代實施例中,位和字段的相關位置安排可能不同于圖11A和圖11B的實例所示。再者,在替代實施例中,項目的格式還可以包括指示目的頁面大小(例如4千字節(jié)或4兆字節(jié))的頁面模式位,從而提供地址轉(zhuǎn)換處理的動態(tài)控制。以此方式,可以同時支持一種以上的不同頁面大小。相干性來自圖形卡(例如圖形加速器335)的通信量可能要與系統(tǒng)總線325相干,也可能不要與之相干。根據(jù)一個實施例,相干性可在逐頁基礎上選擇。出于公開的目的,“相干性”指地址出現(xiàn)在系統(tǒng)總線325上,使得一個或多個處理器305和310可以監(jiān)聽它們的高速緩存來獲取該地址。如果紋理映射或其他圖像數(shù)據(jù)被處理器標為寫組合(WC),則該數(shù)據(jù)是不相干的。處理器的WC緩存器中命中的系統(tǒng)總線325上的地址不會被監(jiān)聽?;蛘?,應用程序可能知道主存儲器325中的數(shù)據(jù)未被處理器使用(例如,它來自磁盤),并且希望圖形卡提取數(shù)據(jù)而不占用系統(tǒng)總線325的帶寬,所以強制該存取為不相干。
如上所述,對于AGP范圍中命中的所有AGP類型的存取,每個GART項目都有一位來確定該地址是否相干。對于AGP范圍外的AGP類型的存取,可以從GXB 410的配置寄存器中讀取信息(例如一個位相干指示符)來確定相干性。注意,相干性或不相干性適用于僅采用AGP協(xié)議的存取。采用PCI協(xié)議的存取始終是相干地進行的,無論它們是否命中轉(zhuǎn)換表。
在上述說明書中,已經(jīng)參考特定實施例描述了本發(fā)明。但是,顯然,在不違背本發(fā)明更廣精神和范圍的前提下可以對其進行各種修改和變化。因此,說明書和附圖應被看作說明性而非限定性的意義。
權利要求
1.一種輸入/輸出(I/O)擴展橋接器,它包括第一接口單元,它被配置成通過一個或多個I/O端口與系統(tǒng)存儲器和I/O控制器耦合,所述第一接口單元使數(shù)據(jù)能通過所述一個或多個I/O端口傳到計算機系統(tǒng)的主存儲器或者從計算機系統(tǒng)的主存儲器傳出;第二接口單元,它提供總線控制信號和地址,使數(shù)據(jù)能通過總線傳到外圍設備或者從外圍設備傳出;以及地址轉(zhuǎn)換單元,它與所述第一接口單元和所述第二接口單元耦合,所述地址轉(zhuǎn)換單元通過訪問包含所述計算機系統(tǒng)的主存儲器中頁面的物理地址的局部存儲器來轉(zhuǎn)換與所述第二接口上接收的事務相關的地址。
2.如權利要求1所述的I/O擴展橋接器,其特征在于所述總線包括圖形加速端口(AGP)總線。
3.如權利要求2所述的I/O擴展橋接器,其特征在于所述局部存儲器中包含圖形地址重定位表(GART)。
4.如權利要求3所述的I/O擴展橋接器,其特征在于所述局部存儲器包括芯片內(nèi)的靜態(tài)隨機存取存儲器(SRAM)。
5.如權利要求3所述的I/O擴展橋接器,其特征在于所述局部存儲器包括芯片外的靜態(tài)隨機存取存儲器(SRAM)。
6.如權利要求3所述的I/O擴展橋接器,其特征在于所述GART包括多個分別與主存儲器中頁面相關的項目,所述項目包括標識是否在所述計算機系統(tǒng)的處理器總線上監(jiān)聽所述頁面內(nèi)地址的指示。
7.如權利要求3所述的I/O擴展橋接器,其特征在于所述地址轉(zhuǎn)換單元通過根據(jù)第一格式或第二格式解釋所述GART中的項目來支持多種頁面大小。
8.如權利要求7所述的I/O擴展橋接器,其特征在于所述多種頁面大小包括兩個或兩個以上的4千字節(jié)頁面、2兆字節(jié)頁面和4兆字節(jié)頁面。
9.一種圖形擴展橋接器,它包括第一接口單元,它被配置成通過一個或多個I/O端口與系統(tǒng)存儲器和I/O控制器耦合,所述第一接口單元使數(shù)據(jù)能通過所述一個或多個I/O端口傳到計算機系統(tǒng)的主存儲器或者從計算機系統(tǒng)的主存儲器傳出;圖形加速端口(AGP)接口單元,它提供總線控制信號和地址,使數(shù)據(jù)能通過AGP總線傳到外圍設備或者從外圍設備傳出來;以及地址轉(zhuǎn)換單元,它與所述第一接口單元和所述AGP接口單元耦合,所述地址轉(zhuǎn)換單元通過訪問包含圖形地址重定位表(GART)的芯片外靜態(tài)隨機存取存儲器(SRAM)來轉(zhuǎn)換與所述AGP總線上接收的入站AGP事務相關的圖形地址,所述GART包括所述計算機系統(tǒng)的主存儲器中頁面的物理地址。
10.如權利要求9所述的圖形擴展橋接器,其特征在于所述GART包括多個分別與主存儲器中頁面相關的項目,而且所述項目包括標識是否在所述計算機系統(tǒng)的處理器總線上監(jiān)聽所述頁面內(nèi)地址的指示。
11.如權利要求9所述的I/O擴展橋接器,其特征在于所述地址轉(zhuǎn)換單元通過根據(jù)第一格式或第二格式解釋所述GART中的項目來支持多種頁面大小。
12.如權利要求11所述的I/O擴展橋接器,其特征在于所述多種頁面大小包括4千字節(jié)和4兆字節(jié)。
13.一種芯片組,它包括橋接裝置,用于在一個或多個輸入/輸出(I/O)端口與圖形加速端口(AGP)總線之間提供總線協(xié)議橋接功能,所述橋接裝置被配置成根據(jù)存儲在局部存儲器中的圖形地址重定位表(GART)、將與入站事務相關的虛擬地址轉(zhuǎn)換為計算機系統(tǒng)的主存儲器內(nèi)的物理地址;以及控制器裝置,它與所述橋接裝置耦合,并且被配置成與所述計算機系統(tǒng)的系統(tǒng)總線和存儲器總線耦合,以便代表所述橋接裝置執(zhí)行往返于所述主存儲器的數(shù)據(jù)傳遞。
14.一種芯片組,它包括圖形擴展橋接器,它在一個或多個輸入/輸出(I/O)端口與圖形加速端口(AGP)總線之間提供總線協(xié)議橋接功能,所述圖形擴展橋接器被配置成根據(jù)存儲在局部存儲器中的圖形地址重定位表(GART)、將與入站事務相關的虛擬地址轉(zhuǎn)換為計算機系統(tǒng)的主存儲器內(nèi)的物理地址;以及系統(tǒng)存儲器和I/O控制器,它們與所述圖形擴展橋接器耦合,并且被配置成與所述計算機系統(tǒng)的系統(tǒng)總線和存儲器總線連接,所述系統(tǒng)存儲器和I/O控制器被配置成代表所述圖形擴展橋接器執(zhí)行往返于所述主存儲器的數(shù)據(jù)傳遞。
15.一種在橋接器中轉(zhuǎn)換輸入/輸出(I/O)事務的方法,所述方法包括以下步驟所述橋接器接收局部I/O總線上的I/O事務;確定與所述I/O事務相關的地址和偏移量;根據(jù)所述地址從地址轉(zhuǎn)換表中檢索項目,所述地址轉(zhuǎn)換表被存儲在與所述橋接器直接耦合的局部存儲器中;以及根據(jù)所述項目和所述偏移量形成標識計算機系統(tǒng)的主存儲器中的位置的物理地址。
16.如權利要求15所述的方法,其特征在于所述局部I/O總線包括圖形加速端口(AGP)總線,以及所述橋接器接收局部I/O總線上的I/O事務的步驟包括所述橋接器接收所述AGP總線上的AGP事務。
17.如權利要求15所述的方法,其特征在于所述局部存儲器包括靜態(tài)隨機存取存儲器(SRAM)。
18.如權利要求15所述的方法,其特征在于所述方法還包括以下步驟確定所述位置是在所述主存儲器中的4千字節(jié)的頁面內(nèi)還是在4兆字節(jié)的頁面內(nèi);以及根據(jù)所述確定步驟的結果解釋所述項目。
19.如權利要求15所述的方法,其特征在于所述方法還包括確定對所述物理地址的存取是相干還是不相干的步驟。
全文摘要
提供一種在輸入/輸出(I/O)擴展橋接器中執(zhí)行地址轉(zhuǎn)換的方法和裝置。該I/O擴展橋接器包括第一接口單元、第二接口單元和地址轉(zhuǎn)換單元。第一接口單元被配置成通過一個或多個I/O端口與系統(tǒng)存儲器和I/O控制器耦合。第一接口單元使數(shù)據(jù)能通過一個或多個I/O端口往返于計算機系統(tǒng)的主存儲器進行傳遞。第二接口單元提供總線控制信號和地址,使數(shù)據(jù)能通過總線傳遞到外圍設備或從外圍設備傳出。地址轉(zhuǎn)換單元與第一接口單元和第二接口單元連接。地址轉(zhuǎn)換單元通過訪問包含計算機系統(tǒng)的主存儲器中頁面的物理地址的局部存儲器來轉(zhuǎn)換與第二接口上接收的事務相關的地址。
文檔編號G06F13/36GK1382277SQ00814726
公開日2002年11月27日 申請日期2000年8月18日 優(yōu)先權日1999年8月30日
發(fā)明者R·奈亞, D·R·莫蘭, L·W·克羅斯 申請人:英特爾公司