新四季網

存儲器微塊化請求重排序的製作方法

2023-05-30 04:06:16


專利名稱::存儲器微塊化請求重排序的製作方法
技術領域:
:本發明涉及計算機系統;更具體而言,本發明涉及存儲器訪問控制。
背景技術:
:對視頻存儲器的主存儲器進行訪問的圖形控制器是實現統一存儲器架構(UMA)的計算機系統的特色。然而,UMA圖形系統的存儲器效率可能由於CPU高速緩存線大小的需求而受到限制。例如,用於圖形的理想存儲器訪問大小可以是4到16位元組,因為圖形控制器能夠一次對一個或幾個像素或者紋理元素(texel)進行操作。然而,常常針對64位元組的CPU高速緩存線大小來優化存儲器架構,以使得CPU存儲器效率最優化。其結果是,平均起來,從存儲器中讀出的相當大量的數據可能從未被圖形存儲器使用過。分立式圖形控制器的製造商通過使用更為狹窄的存儲器通道而在取出(fetch)過程中使得該問題最小化。然而,該解決方案不能用於基於UMA的集成圖形控制器。將通過舉例的方式來圖示本發明,但是並不局限於附圖中的特徵,在附圖中,相同的參考標記表示類似的元件,並且在附圖中圖1是計算機系統的一個實施例的框圖;圖2示出了存儲器控制器的一個實施例;圖3示出了邏輯虛擬地址的一個實施例;圖4示出了存儲器控制器的另一個實施例;圖5示出了存儲器控制器的再一個實施例;圖6示出了重排序表(reordertable)的一個實例;圖7示出了環形緩衝器條目及邏輯;圖8示出了重排序表的另一個實例;圖9示出了比較與選擇邏輯的一個實施例;圖IOA和IOB示出了性能上的改善;以及圖11是計算機系統的另一個實施例的框圖。具體實施例方式描述了一種存儲器請求重排序架構。在以下對本發明的詳細描述中,闡述了多個具體細節,以便提供對本發明的透徹理解。然而,本領域技術人員要理解的是,沒有這些具體細節,本發明也是可以實現的。在其他實例中,以框圖的形式示出了已知的結構和裝置,而不是給出細節,以便避免本發明變得不清楚。在說明書中提到的「一個實施例」或者「實施例」意思是結合該實施例所描述的特定特徵、結構、或者特點包含在本發明的至少一個實施例中。說明書中各個地方出現的短語「在一個實施例中」並非都一定指的是同一實施例。圖1是計算機系統100的一個實施例的框圖。計算機系統100包括中央處理單元(CPU)102,其耦合到接口105。在一個實施例中,CPU102是來自加利福尼亞SantaClara的Intel公司的Pentium系列的處理器,PentiumIV處理器。可替換地,也可以使用其他CPU。例如,可以使用多個處理內核來實現CPU102。在另一個實施例中,計算機系統100可以包括多個CPU102。在另一個實施例中,晶片組107也耦合到接口105。晶片組107包括存儲器控制組件110。存儲器控制組件110可以包括耦合到系統主存儲器115的存儲器控制器112。系統主存儲器115存儲數據和由CPU102或者系統100中包含的任何其他器件所執行的指令序列。在一個實施例中,系統主存儲器115包括動態隨機存取存儲器(DRAM);然而,系統主存儲器115可以使用其他存儲器類型來實現。還可以將其他器件耦合到接口105,例如多個CPU和/或多個系統存儲器。存儲器控制組件110可以通過接口耦合到輸入/輸出(I/O)控制組件140。I/O控制組件140提供通往計算機系統100中的I/O器件的接口。I/O控制組件140可以支持I/0總線(例如外設部件互連(PCI)、加速圖形埠(AGP)、通用串行總線(USB)、少針腳型接口(lowpincount,LPC)總線、或者其他類型的I/O總線(未示出))上的標準I/O操作。根據一個實施例,圖形控制器160與晶片組107進行通信,並且圖形控制器160被實現為提供視頻圖形至耦合到計算機系統100的顯示器(未示出)。圖形控制器160訪問用於視頻存儲器的主存儲器115。如上所述,支持圖形系統和CPU的存儲器器件的存儲器效率受到限制,因為用於圖形的存儲器訪問大小經常理想地為4到16位元組,而存儲器架構是針對64位元組的CPU線大小進行優化以使CPU效率最優化的。根據一個實施例,存儲器控制組件110特徵降低了圖形器件的存儲器請求大小,同時保持了64位元組的存儲器事務。標準存儲器通道,例如基於DDRDRAM技術的存儲器通道,具有某種m比特的物理寬度。存儲器事務由T次傳送(transfer)組成,其總邏輯寬度為M=m*T/8個字節。在每次事務中的字節被認為是具有連續的地址。在隨後的討論中,術語寬度表示邏輯寬度。微塊化(micro-tiling)將M字節寬度的通道劃分為S個子通道,每個子通道寬度為N=M/S字節,其中,在每個子通道上傳送N字節的數據。為每個子通道提供地址,其中,某一數量(I)的獨立地址比特可能不同於給予其他子通道的地址中的對應比特。在每個子通道上傳送的數據被認為是表示毗鄰的地址範圍。然而,在每個子通道上的數據塊並非一定來自於毗鄰的地址範圍。每個子通道包括通道的總存儲單元的子集。圖2示出了存儲器控制組件110的一個實施例。在一個實施例中,多通道存儲器子系統每個通道具有一個微塊化存儲器控制器。因此,如圖2所示,存儲器控制組件110包括兩個存儲器控制器112(存儲器控制器1和2),分別用於這兩個通道的每一個。每個通道包括S個子通道,每個子通道寬度為N字節。於是,每個通道寬度為M=N*S字節。在該圖中,對存儲器讀出或寫入的請求被示為2X2的正方形陣列,其可以表示像素或者紋理元素的2X2陣列。對於在分配給子通道之前的請求進行了圖示。在子通道分配之後,將請求編號為O-(S-I),以指示子通道分配。對於耦合到存儲器控制組件110的請求者205的N字節返回是在讀出事務的情況下發生的。存儲器控制組件110包括通道分配邏輯210,其耦合到存儲器控制器112。通道分配210經由存儲器控制器112將從請求者205接收的每個請求分配至存儲器通道240。更進一步地,每個存儲器控制器112包括子通道分配215、重排序緩衝器220和事務匯集器(assembler)230。因此,如圖2所示,將請求分配給存儲器控制器1或者存儲器控制器2。子通道分配215將每個請求分配給在存儲器通道240中的子通道。重排序緩衝器220收集請求,以使得事務匯集器230嘗試匯集對於每個存儲器240的子通道的存儲器訪問。根據一個實施例,每個子通道具有相等的N字節寬度。在圖2所示的系統的操作期間,可以將進入到存儲器控制器(1或2)的請求分配給子通道並且可以將其放置在重排序緩衝器220中,該請求是地址A處的對於N字節數據塊進行讀出或者寫入的請求。在一個實施例中,採用以下處理定義同一性子通道分配(IdentitySubchannelAssignment)s將該請求地址A向右偏移P=Iog2(N)個比特,得到新的整數值A(例如,A二AP);並且s是A的Q=(S)個最低有效比特(例如,s=A&((1Q)-1))0存儲器控制器通過從重排序緩衝器220選擇S個讀出請求(分別用於每個子通道)來形成存儲器讀出事務。存儲器控制器通過從重排序緩衝器220選擇S個寫入請求(分別用於每個子通道)來形成存儲器寫入事務。由共享地址線所表示的地址部分與在該事務中所有的子通道請求相同。圖3示出了對物理地址中的地址比特的解釋的一個實施例。圖3中所示的對於共享和獨立地址比特的選擇以及子通道選擇比特是為了圖示說明目的,因為可以隨意地將在P個子通道數據地址比特之上的地址比特劃分為共享和獨立的地址比特以及子通道選擇比特。獨立地址比特在子通道之間是不同的,並且未必是毗鄰的。發送到子通道的地址比特是該子通道的共享地址比特和獨立地址比特。圖4示出了存儲器控制組件110的一個實施例,其從4個16位元組的請求匯集成64位元組的事務,圖中僅示出了單個通道。圖4所示出的重排序緩衝器220被實現為用於每個子通道的重排序隊列。然而,在其他實施例中,重排序緩衝器220可以通過其他機制實現。在該實施例中,事務匯集器230從16B的請求(分別用於每個子通道)構建64B的存儲器請求。形成該存儲器請求的所有16B請求都具有相同的共享地址比特。因此,匯集器230查詢該隊列,根據請求是否具有共同的共享地址來找到能夠被匯集到單個事務中的請求。注意,在圖4所示的實施例中,匯集器230不能找到用於子通道Ic的請求。當嘗試形成事務時,存儲器控制器可能不能為每個子通道找到請求以使得所有子通道都具有相同的共享地址段(例如,使得每個共享地址比特的值在所有請求之間都相同)。如果子通道不能用在相應隊列中的請求進行填充,則結果是不執行去往/來自該子通道的傳送。在一個實施例中,如果子通道不能用請求進行填充,則可以讀出任意存儲單元並且將結果拋棄。在替換實施例中,每個子通道可以包括附加控制線,其用於在不存在對於該通道的相應請求時,減小(powerdown)子通道的功率。在上述實施例中,事務匯集器230通過從每個重排序序列中選擇子通道請求,來匯集通道請求。然而,在替換實施例中,可以實施重排序表來存儲子通道請求,而不是每個子通道有獨立的相關聯的重排序序列。圖5示出了存儲器控制組件110的實施例,其具有通過重排序表520的請求流(aflowofrequests)0在該實施例中,所示出的請求可以包含共享地址部分和獨立地址部分。在圖5中以圖案示出了共享地址部分,以表示不同或者相同的值。請求的獨立地址部分在分配子通道之前可以是空白的。在一個實施例中,上述的Im2(N)個子通道數據地址比特在該級別上與存儲器事務不相關,因此沒有將其示出。類似地,所傳送的實際數據也未示出。重排序表520的每個表元素都具有共享地址部分和S個獨立地址部分,S個獨立地址部分分別對應每個子通道。如圖5中所示,表元素是空白的,以指示還未分配共享地址值。每個獨立地址部分也可以是空白的,直到分配了獨立地址值為止。在子通道分配之後,在圖5中,可以標記請求的獨立地址部分,以指示要將該獨立地址部分分配給其的子通道(例如,Ia用於子通道la,lb用於子通道lb,等等)。然後,可以將共享地址值與存儲在每個表條目(tableentry)中的共享地址值進行比較。如果存在匹配且在該表條目中的相應的子通道地址部分是可用的,就可以將該獨立地址值放置在該子通道地址部分中。如果該子通道地址部分已經包含值,則繼續搜索具有相匹配的共享地址值的表條目。如果未搜索到,則將該請求的共享的和獨立的地址值放置在一個空表條目中。圖5示出了具體實例,其中,有S=4個子通道,並且其中最大表深度D=8。S和D均可採用任何值,為重排序表520創建了大數可能配置。為了發出事務,可以選擇表條目,並將其轉發到事務匯集器230,然後將其作為空表條目返回至重排序表520以便將來使用。根據一個實施例,匯集器從在一個重排序表520行上的16位元組請求構建64位元組的存儲器請求,並且所有的子跨度(SUbspan)都具有相同的共享地址比特。此外,如果在所選擇的表條目中的子通道部分是空的,則事務匯集器230能夠推測性地插入用於存儲器讀出的子跨度請求。圖6示出了實現該機制的重排序表520的一個實施例。重排序表520包括被稱為環形緩衝器條目及邏輯(ringbufferentryandlogic)620的比較邏輯單元的一個環。圖7示出了環形緩衝器條目及邏輯620的一個實施例。返回參考圖6,表條目可以表示為能夠為每個子通道存儲單個共享地址值和獨立地址值的寄存器。表條目可以實現為一系列寄存器,並且具有用於指示當前存儲的值是否有效的有效位。通過選擇表條目並將其發送至事務匯集器230,來生成輸出請求。然後,將相應的表條目部分標記為無效。根據一個實施例,每個表條目可以耦合至邏輯單元620。此外,每個輸入的請求在被表條目選擇邏輯630所選擇時,可以被插入到該環中與下一個表條目相關聯的邏輯單元620處,以將其傳遞至事務匯集器230。輸入的請求包含共享地址值、獨立地址值以及子通道分配,可以按照如下將該輸入的請求與相關聯的表條目進行比較。首先,如果在該表條目中的共享地址值是無效的,則可以將在該請求中的共享地址值複製至該表條目中,可以將在該請求中的獨立地址值複製至在該表條目中的相應子通道地址部分中。該表條目中的兩個元素都標記為有效。然後,拋棄該請求。然而,如果在該請求和表條目中的共享地址值相等,並且在該表條目中的所分配的子通道的獨立地址值是無效的,則可以將在該請求中的獨立地址值寫入至該表條目中並將其標記為有效。然後,拋棄該請求。否則,則將該請求傳送至下一個相繼的環形緩衝器元素,並且重複該過程。根據一個實施例,如果對於所有的環形緩衝器條目的比較都失敗,則該輸入請求可以被阻塞(stalled),直到可以生成輸出請求並因此釋放環形緩衝器條目為止。圖8示出了實現該機制的重排序表520的另一個實施例。重排序表520包括被稱為比較與選擇邏輯820的比較器邏輯單元的環。圖9示出了比較與選擇邏輯820的一個實施例。返回參考圖8,表條目被表示為能夠為每個子通道存儲單個共享地址值和獨立地址值的寄存器。表條目可以實現為一系列寄存器,並且具有用於指示當前存儲的值是否有效的有效位。通過選擇最高優先級的表條目並將其發送至事務匯集器230,來生成輸出請求。然後,將相應的表條目部分標記為無效。根據一個實施例,每個表條目耦合至邏輯單元820。此外,每個輸入的請求被每個邏輯單元820所看到。輸入的請求包含共享地址值、獨立地址值以及子通道分配,每個邏輯單元820按照如下將該輸入的請求與相關聯的表條目進行比較(「輸入的請求比較」)。首先,如果在該表條目中的共享地址值是無效的,則該比較成功。否則,如果在該請求中的共享地址值與該表條目是相等的並且在該表條目中的所分配子通道的獨立地址值是無效的,則該比較成功。否則,該比較失敗。在一個實施例中,每個邏輯820單元具有固定的和唯一的表條目Id,並且在被表條目選擇邏輯620所選擇時將該表條目Id與最高優先級表條目進行比較,以將其發送至事務匯集器230。如果由最高優先級條目所執行的該輸入請求的比較成功,則將在該請求中的獨立地址值複製至在該表條目中的相應子通道地址部分中。該表條目中的兩個元素都標記為有效。然後,拋棄該請求。否則,如果在優先級環上的下一個表條目所執行的該輸入請求的比較成功,則將該輸入請求複製到該表條目中。否則,重複該過程,直到發現對其而言輸入請求比較成功的一個表條目為止。如果沒有發現對其而言輸入請求比較成功的表條目,則中止該輸入請求的插入,直到生成了輸出請求並因此釋放了環形緩衝器條目為止。微塊化存儲器子通道能夠訪問在由共享地址比特和I個獨立地址比特所確定的某個地址範圍之內的不毗鄰的存儲器地址。因此,與將I個地址信號複製到每個子通道的成本進行權衡,對於I的明智選擇能夠提供獨立子通道的增強的並行性和帶寬效率。圖IOA和IOB示出了微塊化的性能改善。每個圖示出了在分塊地址空間(tiledaddressspace)中的三角形的光柵化(rasterization),每個小正方形表示4位元組像素或者紋理元素。圖IOA示出了當每個請求是64位元組時,在標準存儲器系統中的過讀取(overfetch)0每個4X4像素塊表示64位元組的對齊的存儲器塊。該三角形包圍了57個像素。採用標準存儲器子系統,這57個像素在11個(64位元組)存儲器塊中。因此,為了訪問這57個像素,需要訪問可能不被使用的額外的119個像素的代價數據(worthofdata)(例如,得到32%的效率)。圖IOB示出了在每個請求是16位元組並且所有這些請求都可以由微塊化匯集器用來構建不帶有未使用的子通道的64位元組存儲器事務的情況下的過讀取。在該情況下,三角形接觸23個2X2像素陣列,結果是訪問35個額外的代價數據(例如,得到62%的效率)。微塊化的有效性取決於匯集器構建完全填充的存儲器事務的能力。此外,上述重排序表機制對輸入的存儲器請求執行各種比較,而不是試圖在輸出端構建請求。這就允許有更多的時間來執行比較,潛在地避免了競爭狀態,並且減少了比較器的數量(因此,降低了重排序隊列的門的總數)。每個時鐘僅僅存在D次比較,而不是每個時鐘SXD次比較。圖11示出了計算機系統100的另一實施例。在該實施例中,與獨立的存儲器控制組件和I/O控制組件不同,晶片組107包括單個控制集線器(controlhub)1120。從而,存儲器控制器112被包含在CPU102中,存儲器115耦合到CPU102。在這樣的實施例中,圖形控制器160耦合到控制集線器1120,並且經由CPU102訪問主存儲器115。然而,在閱讀了以上描述之後,本發明的很多替換和修改對於本領域技術人員而言毫無疑問地變得顯而易見,要理解的是,通過圖示說明所示出和描述的任何特定實施例並非意欲被認為是限制性的。因此,對於各種實施例的細節的參考並非意欲限制權利要求的範圍,在權利要求中僅僅闡述了被認為是對本發明而言是必要的那些特徵。權利要求一種用於存儲器訪問控制的方法,包括在存儲器控制器處接收第一請求,以訪問耦合至所述存儲器控制器的隨機存取存儲器器件中的通道;在所述存儲器控制器處接收第二請求,以訪問所述通道;分配所述第一請求和所述第二請求以訪問在所述通道中的兩個或者更多可獨立尋址的子通道之一;將所述第一請求和所述第二請求與在重排序表中的每個表條目進行比較,每個表條目具有共享地址部分,以及與所述兩個或者更多可獨立尋址的子通道中的每一個相對應的獨立地址部分;以及通過以下操作來構建對所述隨機存取存儲器器件的存儲器請求,所述操作包括將所述第一請求和一個或多個其他請求進行組合以訪問所述通道之中的第一可獨立尋址的子通道,以及將所述第二請求和一個或多個其他請求進行組合以訪問所述通道之中的第二可獨立尋址的子通道。2.如權利要求1所述的方法,還包括判斷請求的共享地址值是否與表條目的共享地址部分相匹配;以及如果匹配,則判斷該表條目的獨立地址部分是否為空。3.如權利要求2所述的方法,還包括如果該表條目的獨立地址部分為空,則將所述請求插入到所述表條目中。4.如權利要求3所述的方法,還包括將所述請求轉發至相關聯的子通道。5.如權利要求4所述的方法,還包括在將所述請求轉發至相關聯的子通道之後,將該空表條目返回至所述重排序表的末尾。全文摘要根據一個實施例,公開了一種存儲器控制器。該存儲器控制器包括分配邏輯、重排序表和事務匯集器。該分配邏輯接收訪問存儲器通道的請求,並且分配所述請求以訪問在所述通道之中的兩個或更多的可獨立尋址的子通道中的一個。該重排序表包括兩個或者更多的表元素。每個表元素都具有共享地址部分,以及與所述兩個或者更多可獨立尋址的子通道中的每一個相對應的獨立地址部分。該事務匯集器將在重排序表元素中的共享地址部分和獨立地址部分進行組合,並發出單個存儲器事務。文檔編號G06F13/16GK101930412SQ20101016666公開日2010年12月29日申請日期2006年6月23日優先權日2005年6月23日發明者J·秋山,P·布朗,W·克利福德申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀