專利名稱:存儲器微塊化推測性返回的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng);更具體而言,本發(fā)明涉及存儲器訪問控制。
背景技術(shù):
對視頻存儲器的主存儲器進行訪問的圖形控制器是實現(xiàn)統(tǒng)一存 儲器架構(gòu)(UMA)的計算機系統(tǒng)的特色。然而,UMA圖形系統(tǒng)的存 儲器效率可能由于CPU高速緩存線大小的需求而受到限制。例如, 用于圖形的理想存儲器訪問大小可以是4到16字節(jié),因為圖形控制 器能夠一次對一個或幾個像素或者紋理元素(texel)進行操作。然而, 常常針對64字節(jié)的CPU高速緩存線大小來優(yōu)化存儲器架構(gòu),以使得 CPU存儲器效率最優(yōu)化。其結(jié)果是,平均起來,從存儲器中讀出的 相當(dāng)大量的數(shù)據(jù)可能從未被圖形存儲器使用過。分立式圖形控制器的 制造商通過使用更為狹窄的存儲器通道而在取出(fetch)過程中使得 該問題最小化。然而,該解決方案不能用于基于UMA的集成圖形控 帝ll器。
將通過舉例的方式來圖示本發(fā)明,但是并不局限于附圖中的特 征,在附圖中,相同的參考標(biāo)記表示類似的元件,并且在附圖中 圖1是計算機系統(tǒng)的一個實施例的框圖; 圖2示出了存儲器控制器的一個實施例; 圖3示出了邏輯虛擬地址的一個實施例; 圖4示出了存儲器控制器的另一個實施例; 圖5A和5B示出了性能上的改善;以及 圖6是計算機系統(tǒng)的另一個實施例的框圖。
具體實施例方式
要描述的是對于存儲器事務(wù)(transaction)的推測性返回 (speculative return)。在以下對于本發(fā)明的詳細(xì)描述中,闡述了多個 具體細(xì)節(jié),以便提供對本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員要 理解的是,沒有這些具體細(xì)節(jié),本發(fā)明也是可以實現(xiàn)的。在其他實例 中,以框圖的形式示出了已知的結(jié)構(gòu)和裝置,而不是給出細(xì)節(jié),以便 避免本發(fā)明變得不清楚。
在說明書中提到的"一個實施例"或者"實施例"意思是結(jié)合該 實施例所描述的特定特征、結(jié)構(gòu)、或者特點包含在本發(fā)明的至少一個 實施例中。說明書中各個地方出現(xiàn)的短語"在一個實施例中"并非都 一定指的是同一實施例。
圖1是計算機系統(tǒng)100的一個實施例的框圖。計算機系統(tǒng)100包 括中央處理單元(CPU) 102,其耦合到接口 105。在一個實施例中, CPU 102是來自加利福尼亞Santa Clara的Intel公司的Pentium 系列 的處理器,Pentium IV處理器??商鎿Q地,也可以使用其他CPU。 例如,可以使用多個處理內(nèi)核來實現(xiàn)CPU102。在另一個實施例中, 計算機系統(tǒng)100可以包括多個CPU 102。
在另一個實施例中,芯片組107也耦合到接口 105。芯片組107 包括存儲器控制組件110。存儲器控制組件110可以包括耦合到系統(tǒng) 主存儲器115的存儲器控制器112。系統(tǒng)主存儲器115存儲數(shù)據(jù)和由 CPU 102或者系統(tǒng)100中包含的任何其他器件所執(zhí)行的指令序列。在 一個實施例中,系統(tǒng)主存儲器115包括動態(tài)隨機存取存儲器 (DRAM);然而,系統(tǒng)主存儲器115可以使用其他存儲器類型來實 現(xiàn)。還可以將其他器件耦合到接口 105,例如多個CPU和/或多個系 統(tǒng)存儲器。
存儲器控制組件110可以通過接口耦合到輸入/輸出(I/O)控制 組件140。 I/O控制組件140提供通往計算機系統(tǒng)100中的I/O器件 的接口 。1/0控制組件140可以支持I/O總線(例如外設(shè)部件互連(PCI) Express、加速圖形端口 (AGP)、通用串行總線(USB)、少針腳型接
口 (lowpincount, LPC)總線、或者其他類型的I/0總線(未示出)) 上的標(biāo)準(zhǔn)I/0操作。
根據(jù)一個實施例,圖形控制器160與芯片組107進行通信,并且 圖形控制器160被實現(xiàn)為提供視頻圖形至耦合到計算機系統(tǒng)100的顯 示器(未示出)。圖形控制器160訪問用于視頻存儲器的主存儲器115。 如上所述,支持圖形系統(tǒng)和CPU的存儲器器件的存儲器效率受到限 制,因為用于圖形的存儲器訪問大小經(jīng)常理想地為4到16字節(jié),而 存儲器架構(gòu)是針對64字節(jié)的CPU線大小進行優(yōu)化以使CPU效率最 優(yōu)化的。
根據(jù)一個實施例,存儲器控制組件110降低了圖形器件的存儲器 請求大小,同時保持了 64字節(jié)的存儲器事務(wù)。標(biāo)準(zhǔn)存儲器通道,例 如基于DDRDRAM技術(shù)的存儲器通道,具有某種m比特的物理寬度。 存儲器事務(wù)由T次傳送(transfer)組成,其總邏輯寬度為M=m*T/8 個字節(jié)。在每次事務(wù)中的字節(jié)被認(rèn)為是具有連續(xù)的地址。在隨后的討 論中,術(shù)語寬度表示邏輯寬度。
微塊化(micro-tiling)將M字節(jié)寬度的通道劃分為S個子通道, 每個子通道寬度為N-M/S字節(jié),其中,在每個子通道上傳送N字節(jié) 的數(shù)據(jù)。為每個子通道提供地址,其中,某一數(shù)量(0的獨立地址 比特可能不同于給予其他子通道的地址中的對應(yīng)比特。在每個子通道 上傳送的數(shù)據(jù)被認(rèn)為是表示毗鄰的地址范圍。然而,在每個子通道上 的數(shù)據(jù)塊并非一定來自于毗鄰的地址范圍。每個子通道包括通道的總 存儲單元的子集。
圖2示出了支持微塊化(micro-tiling)的存儲器控制組件110的 一個實施例。在一個實施例中,多通道存儲器子系統(tǒng)每個通道具有一 個微塊化存儲器控制器。因此,如圖2所示,存儲器控制組件110包 括兩個存儲器控制器112 (存儲器控制器1和2),分別用于這兩個通 道的每一個。每個通道包括S個子通道,每個子通道寬度為N字節(jié)。 于是,每個通道寬度為]VNNfS字節(jié)。
在該圖中,對存儲器讀出或?qū)懭氲恼埱蟊皇緸?X2的正方形陣 列,其可以表示像素或者紋理元素的2X2陣列。對于在分配給子通道之前的請求進行了圖示。在子通道分配之后,將請求編號為0—S-1, 以指示子通道分配。對于耦合到存儲器控制組件110的請求者205的 N字節(jié)返回是在讀出事務(wù)的情況下發(fā)生的。
存儲器控制組件110包括通道分配邏輯210,其耦合到存儲器控 制器112。通道分配210經(jīng)由存儲器控制器112將從請求者205接收 的每個請求分配至存儲器通道240。更進一步地,每個存儲器控制器 112包括子通道分配215、重排序緩沖器220和事務(wù)匯集器(assembler) 230。因此,如圖2所示,將請求分配給存儲器控制器1或者存儲器 控制器2。
子通道分配215將每個請求分配給在存儲器通道240中的子通 道。重排序緩沖器220收集請求,以使得事務(wù)匯集器230嘗試匯集對 于每個存儲器240的子通道的存儲器訪問。根據(jù)一個實施例,每個子 通道具有相等的N字節(jié)寬度。
在圖2所示的系統(tǒng)的操作期間,將進入到存儲器控制器(1或2) 的請求分配給子通道并且將其放置在重排序緩沖器220中,該請求是 地址A處的對于N字節(jié)數(shù)據(jù)塊進行讀出或者寫入的請求。在一個實 施例中,采用以下處理定義同一性子通道分配(Identity Subchannel Assignment) s:將該請求地址A向右偏移P^log2(N)個比特,得到新 的整數(shù)值A(chǔ) (例如,A=A P);并且s是A的Q二log2(S)個最低有效 比特(例如,s=A&((l Q)-l))。
存儲器控制器通過從重排序緩沖器220選擇S個讀出請求(分別 用于每個子通道)來形成存儲器讀出事務(wù)。存儲器控制器通過從重排 序緩沖器220選擇S個寫入請求(分別用于每個子通道)來形成存儲 器寫入事務(wù)。由共享地址線所表示的地址部分與在該事務(wù)中所有的子 通道請求相同。
圖3示出了對物理地址中的地址比特的解釋的一個實施例。圖3 中所示的對于共享和獨立地址比特的選擇以及子通道選擇比特是為 了圖示說明目的,因為可以隨意地將在P個子通道數(shù)據(jù)地址比特之上 的地址比特劃分為共享和獨立的地址比特以及子通道選擇比特。獨立 地址比特在子通道之間是不同的,并且未必是毗鄰的。發(fā)送到子通道 的地址比特是該子通道的共享地址比特和獨立地址比特。
圖4示出了存儲器控制組件110的一個實施例,其從4個16字 節(jié)的請求匯集成64字節(jié)的事務(wù),圖中僅示出了單個通道。圖4所示 出的重排序緩沖器220被實現(xiàn)為用于每個子通道的重排序隊列。然 而,在其他實施例中,重排序緩沖器220可以通過其他機制實現(xiàn)。
在該實施例中,事務(wù)匯集器230從16B的請求(分別用于每個 子通道)構(gòu)建64B的存儲器請求。形成該存儲器請求的所有16B請 求都具有相同的共享地址比特。因此,匯集器230查詢該隊列,根據(jù) 請求是否具有共同的共享地址來找到能夠被匯集到單個事務(wù)中的請 求。
注意,在圖4所示的實施例中,匯集器230不能找到用于子通道 lc的請求。當(dāng)嘗試形成事務(wù)時,存儲器控制器可能不能為每個子通 道找到請求以使得所有子通道都具有相同的共享地址段(例如,使得 每個共享地址比特的值在所有請求之間都相同)。發(fā)生這種事件的子 通道可以稱為是"空"子通道。
根據(jù)一個實施例,如果子通道不能用在相應(yīng)隊列中的請求進行填 充,則結(jié)果是不執(zhí)行去往/來自該子通道的傳送。在這種實施例中, 如果子通道不能用請求進行填充,則讀出任意存儲單元并且將結(jié)果拋 棄。在替換實施例中,每個子通道包括附加控制線,其用于在不存在 對于該通道的相應(yīng)請求時,減小(powerdown)子通道的功率。
在另一實施例中,執(zhí)行推測性讀出并將其返回到請求者,而不是 拋棄所取得的數(shù)據(jù)。推測性返回涉及在其他未使用的(otherwise unused)子通道上讀出N字節(jié)的數(shù)據(jù)塊,并且像對任何其他讀出請求 那樣,將該數(shù)據(jù)返回到某個請求者。因此,存儲器控制器可以選擇在 其他"空"(otherwise "empty")子通道上讀出具有與在同一存儲器 事務(wù)中在其他子通道上被訪問的數(shù)據(jù)相同的共享地址比特的任意對 齊的(any aligned) N比特數(shù)據(jù)塊,并且使得該數(shù)據(jù)可由某個請求者 使用。
根據(jù)一個實施例,通過為與該"空"子通道相關(guān)聯(lián)的獨立地址線 分配相鄰子通道的獨立地址比特,來在事務(wù)匯集器230上實現(xiàn)推測性
返回,其結(jié)果是返回2個N字節(jié)數(shù)據(jù)塊,其具有相同的共享和獨立 地址比特。盡管以上所述的是復(fù)制獨立地址線,其他實施例也可以實 施其他機制來選擇被推測性返回的數(shù)據(jù)塊。
作為一個實例參考圖4,不能找到用于子通道lc的請求。因此 子通道lc是"空"子通道。在所公開的實施例中,事務(wù)匯集器230 將子通道ld的獨立地址比特分配給子通道lc,并且將子通道lc的數(shù) 據(jù)返回給與子通道ld相關(guān)聯(lián)的請求者。因此,推測性返回通過執(zhí)行 推測性子通道讀出并將結(jié)果返回至請求者,提高了有效存儲器利用。 如果請求者稍后需要該數(shù)據(jù),則其可以已經(jīng)/仍然被保持在例如高速 緩存中。
微塊化存儲器子通道能夠訪問在由共享地址比特和I個獨立地址 比特所確定的某個地址范圍之內(nèi)的不毗鄰的存儲器地址。因此,與將 I個地址信號復(fù)制到每個子通道的成本進行權(quán)衡,對于I的明智選擇 能夠提供獨立子通道的增強的并行性和帶寬效率。
圖5A和5B示出了微塊化的性能改善。每個圖示出了在分塊地 址空間(tiled address space)中的三角形的光柵化(rasterization),每 個小正方形表示4字節(jié)像素或者紋理元素。圖5A示出了當(dāng)每個請求 是64字節(jié)時,在標(biāo)準(zhǔn)存儲器系統(tǒng)中的過讀取(overfetch)。每個4X4 像素塊表示64字節(jié)的對齊的存儲器塊。該三角形包圍了 57個像素。 采用標(biāo)準(zhǔn)存儲器子系統(tǒng),這57個像素在11個(64字節(jié))存儲器塊 中。因此,為了訪問這57個像素,需要訪問可能不被使用的額外的 119個像素的代價數(shù)據(jù)(worth of data)(例如,得到32%的效率)。
圖5B示出了在每個請求是16字節(jié)并且所有這些請求都可以由 微塊化匯集器用來構(gòu)建不帶有未使用的子通道的64字節(jié)存儲器事務(wù) 的情況下的過讀取。在該情況下,三角形接觸23個2X2像素陣列, 結(jié)果是訪問35個額外的代價數(shù)據(jù)(例如,得到62%的效率)。微塊 化的有效性取決于匯集器構(gòu)建完全填充的存儲器事務(wù)的能力。
圖6示出了計算機系統(tǒng)100的另一實施例。在該實施例中,與獨 立的存儲器控制組件和I/O控制組件不同,芯片組107包括單個控制 集線器(control hub) 620。從而,存儲器控制器112被包含在CPU 102
中,存儲器115耦合到CPU 102。在這樣的實施例中,圖形控制器160 耦合到控制集線器620,并且經(jīng)由CPU 102訪問主存儲器115。
然而,在閱讀了以上描述之后,本發(fā)明的很多替換和修改對于本 領(lǐng)域技術(shù)人員而言毫無疑問地變得顯而易見,要理解的是,通過圖示 說明所示出和描述的任何特定實施例并非意欲被認(rèn)為是限制性的。因 此,對于各種實施例的細(xì)節(jié)的參考并非意欲限制權(quán)利要求的范圍,在 權(quán)利要求中僅僅闡述了被認(rèn)為是對本發(fā)明而言是必要的那些特征。
權(quán)利要求
1、一種存儲器控制器,包括分配邏輯,其接收訪問存儲器通道的請求,并且分配所述請求以訪問在所述通道之中的兩個或更多子通道之一;以及事務(wù)匯集器,其將所述請求與一個或多個附加請求進行組合,以訪問在所述通道之中的所述兩個或更多子通道,并且便于從無可用子通道請求的子通道推測性返回數(shù)據(jù)。
2、 如權(quán)利要求1所述的存儲器控制器,其中,每個所述子通道 請求包含獨立地址部分和共享地址部分。
3、 如權(quán)利要求2所述的存儲器控制器,其中,子通道請求的所 述獨立地址部分與子通道相關(guān)聯(lián)。
4、 如權(quán)利要求3所述的存儲器控制器,其中,所述事務(wù)匯集器 通過選擇將要與所述的無可用請求的子通道相關(guān)聯(lián)的獨立地址部分, 來便于從所述的無可用請求的子通道推測性返回數(shù)據(jù)。
5、 如權(quán)利要求4所述的存儲器控制器,其中,從所述的無可用請求的子通道中所推測性讀取的數(shù)據(jù)被返回至請求者。
6、 如權(quán)利要求1所述的存儲器控制器,還包括重排序緩沖器,其存儲所述請求。
7、 如權(quán)利要求6所述的存儲器控制器,其中,所述重排序緩沖器包括與所述兩個或更多子通道中每一個相關(guān)聯(lián)的隊列。
8、 如權(quán)利要求7所述的存儲器控制器,其中,每個隊列存儲要 傳送至相關(guān)聯(lián)的子通道的請求。
9、 一種方法,包括在存儲器控制器處,接收訪問耦合至所述存儲器控制器的存儲器 通道的請求;將每個所述請求分配給相關(guān)聯(lián)的、所述存儲器通道之中的、可獨 立尋址的子通道;將所述請求與一個或多個附加請求進行組合,以訪問在所述通道 之中的兩個或更多的可獨立尋址的子通道;以及從子通道推測性地返回數(shù)據(jù),對于該子通道而言請求不可用。
10、 如權(quán)利要求9所述的方法,其中,從無可用請求的子通道推 測性地返回數(shù)據(jù)的過程包括選擇將要與所述的無可用請求的子通道 相關(guān)聯(lián)的獨立地址部分。
11、 如權(quán)利要求9所述的方法,還包括在將每個所述請求分配 給子通道之后,將所述請求存儲在重排序緩沖器中。
12、 如權(quán)利要求9所述的方法,還包括在匯集了所述請求之后, 將所述請求轉(zhuǎn)發(fā)至所述相關(guān)聯(lián)的子通道。
13、 如權(quán)利要求10所述的方法,還包括將從所述的無可用請 求的子通道中所推測性返回的數(shù)據(jù)返回至請求者。
14、 一種系統(tǒng),包括存儲器器件,其具有一個或多個通道;以及芯片組,其耦合至所述存儲器器件,具有存儲器控制器,用于接 收訪問一個或多個存儲器通道中的一個的請求,分配所述請求以訪問 在所述通道之中的兩個或更多可獨立尋址的子通道中的一個,將所述 請求與一個或多個附加請求進行組合,以訪問在所述通道之中的所述 兩個或更多可獨立尋址的子通道,并且便于從無可用請求的子通道推測性返回數(shù)據(jù)。
15、 如權(quán)利要求14所述的系統(tǒng),其中包括 分配邏輯,用于分配所述請求以訪問所述子通道;以及事務(wù)匯集器,用于組合所述請求,并且便于所述的數(shù)據(jù)的推測性 返回。
16、 如權(quán)利要求15所述的系統(tǒng),其中,所述存儲器控制器還包 括重排序緩沖器,用于存儲所述子通道請求。
17、 如權(quán)利要求16所述的系統(tǒng),其中,所述重排序緩沖器包括 與所述兩個或更多子通道中每一個相關(guān)聯(lián)的隊列。
18、 如權(quán)利要求16所述的系統(tǒng),其中,所述事務(wù)匯集器通過選 擇將要與所述的無可用請求的子通道相關(guān)聯(lián)的獨立地址部分,來便于 從所述的無可用請求的子通道推測性返回數(shù)據(jù)。
19、 如權(quán)利要求14所述的系統(tǒng),還包括耦合至所述存儲器器件 和所述存儲器控制器的請求者,其中,從所述的無可用請求的子通道 中所推測性讀取的數(shù)據(jù)被返回至所述請求者。
20、 如權(quán)利要求14所述的系統(tǒng),其中,所述芯片組包括第二存 儲器控制器,用于接收訪問一個或多個存儲器通道中的一個的請求, 分配所述請求以訪問在所述通道之中的兩個或更多可獨立尋址的子 通道中的一個。
全文摘要
根據(jù)一個實施例,公開了一種存儲器控制器。該存儲器控制器包括分配邏輯和事務(wù)匯集器。該分配邏輯接收訪問存儲器通道的請求,并且分配所述請求以訪問在所述通道之中的兩個或更多的可獨立尋址的子通道中的一個。該事務(wù)匯集器將所述請求與一個或多個附加請求進行組合,以訪問在所述通道之中的所述兩個或更多的可獨立尋址的子通道,并且便于從無可用子通道請求的子通道推測性返回數(shù)據(jù)。
文檔編號G06F13/16GK101208672SQ200680020377
公開日2008年6月25日 申請日期2006年6月23日 優(yōu)先權(quán)日2005年6月23日
發(fā)明者J·秋山, W·克利福德 申請人:英特爾公司