在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決于很多因素,包括tRC和內存核心中庫數(shù)量之間的相互作用。tRC值越小,開放頁循環(huán)地越快,導致庫沖突的損失越小。此外,內存技術具有的庫越多,隨機地址存取庫沖突的機率就越小。
第三種情況,每個事務處理就是一次頁命中,在開放頁中尋址不同的列地址??刂破鞑槐卮嫒£P閉頁,允許完全利用總線,這樣就得到一種理想的情況,即有效數(shù)據(jù)速率等于峰值速率。
第一種和第三種情況都涉及到簡單的運算,隨機情況受其它的特性影響,這些特性沒有包括在DRAM或者內存接口中。內存控制器仲裁和排隊會大幅改善庫沖突頻率,因為更有可能出現(xiàn)不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。
然而,增加內存隊列深度未必增加不同內存技術之間的相對有效數(shù)據(jù)速率。例如,即使增加內存控制隊列深度,XDR的有效數(shù)據(jù)速率也比GDDR3高20%。這種增量主因是XDR具有更高的庫數(shù)量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數(shù)量以及更大的控制器隊列能產生更高的有效頻寬。
實際上,很多效率限制現(xiàn)象是與行存取粒度相關的問題。tRC約束本質上要求內存控制器從新開放的行中存取一定量的數(shù)據(jù),以確保數(shù)據(jù)管線保持充滿。事實上,為保持數(shù)據(jù)總線無中斷地執(zhí)行,在開放一個行之后,只須讀取很少量的數(shù)據(jù),即使不需要額外的數(shù)據(jù)。
另外一種減少內存系統(tǒng)有效頻寬的主要特性被歸類到列存取粒度范疇,它規(guī)定了每次讀寫作業(yè)必須傳輸?shù)臄?shù)據(jù)量。與之相反,行存取粒度規(guī)定每個行啟動(一般指每個RAS的CAS作業(yè))需要多少單獨的讀寫作業(yè)。列存取粒度對有效數(shù)據(jù)速率具有不易于量化的巨大影響。因為它規(guī)定一個讀取或寫入作業(yè)中需要傳輸?shù)淖钚?shù)據(jù)量,列存取粒度為那些一次只需要很少數(shù)據(jù)量的系統(tǒng)帶來了問題。如一個需要來自兩列各8字節(jié)的16字節(jié)存取粒度系統(tǒng),必須讀取總共32字節(jié)以存取兩個位置。因為只需要32個字節(jié)中的16個字節(jié),系統(tǒng)的有效數(shù)據(jù)速率降低到峰值速率的50%??偩€頻寬和脈沖時間長度這兩個結構參數(shù)規(guī)定了內存系統(tǒng)的存取粒度。
總線頻寬是指連接內存控制器和內存之間的數(shù)據(jù)線數(shù)量。它設定最小的存取粒度,因為對于一個指定的內存事務處理,每條數(shù)據(jù)線必須至少傳遞一個數(shù)據(jù)位。而脈沖時間長度則規(guī)定對于指定的事務處理,每條數(shù)據(jù)線必須傳遞的位數(shù)量。每個事務處理中的每條數(shù)據(jù)線只傳一個數(shù)據(jù)位的儲存技術,其脈沖時間長度為1。總列存取粒度很簡單:列存取粒度=總線寬度×脈沖時間長度。
很多系統(tǒng)架構僅僅透過增加DRAM組件和儲存總線頻寬就能增加儲存系統(tǒng)的可用頻寬。畢竟,如果4個400MHz數(shù)據(jù)速率的連接可實現(xiàn)1.6GHz的總峰值頻寬,那么8個連接將得到3.2GHz。增加一個DRAM組件,電路板上的聯(lián)機以及ASIC的接腳就會增多,總峰值頻寬相對倍增。
首要的是,架構師希望完全利用峰值頻寬,這已經達到他們透過實體設計內存總線所能達到的最大值。具有256位甚或512位儲存總線的圖形控制器已并不鮮見,這種控制器需要1,000個,甚至更多的接腳。封裝設計師、ASIC底層規(guī)劃工程師以及電路板設計工程師不能找到采用便宜的、商業(yè)上可行的方法來對這么多訊號進行布線的硅芯片區(qū)域。僅僅增加總線寬度來獲得更高的峰值數(shù)據(jù)速率,會導致因為列存取粒度限制而降低有效頻寬。
假設某個特定儲存技術的脈沖時間長度等于1,對于一個內存處理,512位寬系統(tǒng)的存取粒度為512位(或者64字節(jié))。如果控制器只需要一小段數(shù)據(jù),那么剩下的數(shù)據(jù)就被浪費掉,這就降低了系統(tǒng)的有效數(shù)據(jù)速率。如只需要儲存系統(tǒng)32字節(jié)數(shù)據(jù)的控制器將浪費剩余的32字節(jié),進而導致有效的數(shù)據(jù)速率等于50%的峰值速率。這些運算都假定脈沖時間長度為1。隨著內存接口數(shù)據(jù)速率增加的趨勢,大多數(shù)新技術的最低脈沖時間長度都大于1。
核心預取一種稱為核心預取的功能主要負責增加最小的脈沖時間長度。DRAM核心電路不能跟上IO電路速度的速增。由于數(shù)據(jù)不能再連續(xù)地從核心中取出以確??刂破餍枨螅诵耐ǔ镮O提供比DRAM總線寬度更大的數(shù)據(jù)集。
本質上,核心傳輸足夠的數(shù)據(jù)到接口電路,或者從接口電路傳輸足夠的數(shù)據(jù),以使接口電路保持足夠長時間的繁忙狀態(tài),以便讓核心準備下一個作業(yè)。如假設DRAM核心每個奈秒才能對作業(yè)響應一次。不過,接口可以支持每奈秒兩位的數(shù)據(jù)速率。
DRAM核心每次作業(yè)取兩個數(shù)據(jù)位,而不是一個數(shù)據(jù)位,因而不必浪費接口一半的容量。在接口傳輸數(shù)據(jù)之后,核心已經準備好響應下一個請求,而不需增加延遲。增加的核心預取導致最小脈沖時間長度增加為2,這將直接影響列存取粒度。
對于每個增加到總線寬度的額外訊號,內存接口將傳輸兩個額外的數(shù)據(jù)位。因此具有最小脈沖時間長度為2的512位寬的儲存系統(tǒng),其存取粒度為1,024位(128字節(jié))。很多系統(tǒng)對最小存取粒度的問題并不敏感,因為它們儲存大量的數(shù)據(jù)。不過,某些系統(tǒng)依賴內存系統(tǒng)提供小的數(shù)據(jù)單元,并獲益于更窄、更有效的內存技術。
隨著儲存技術向峰值數(shù)據(jù)速率發(fā)展,有效的數(shù)據(jù)速率變的越來越重要。在選擇內存時,設計師必須深入了解已公布的內存規(guī)格,并明白某個特定的技術特性將對應用設計產生怎樣的影響。內存系統(tǒng)設計師必須超越峰值數(shù)據(jù)速率規(guī)格,就像CPU設計師不再用GHz作為唯一的性能衡量標準一樣。盡管對于內存接口而言,峰值數(shù)據(jù)速率依然是最終要的性能規(guī)格,但有效的數(shù)據(jù)速率已開始為系統(tǒng)設計師和架構師提供更大的空間。未來產品的性能將大幅取決于其內存系統(tǒng)的有效利用程度。(IT專家網)
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com