存儲器技術的發(fā)展使存儲器系統(tǒng)的性能得到提高,盡管峰值速率依然是存儲器技術最重要的參數之一,但其它結構參數也極大地影響存儲器系統(tǒng)的性能。本文將重點介紹存儲器架構對系統(tǒng)性能的影響?! 〈鎯ζ骷夹g大多數根據其運行速度來命名。例如,PC100 SDRAM器件是指數據速率為100MHz的存儲技術,PC133則表示數據速率為133MHz,等等。盡管這種命名的習慣隨著時間發(fā)展而變化,但通常還是能給潛在買家提供關于存儲器運行速度的信息。事實上,今天的主流存儲技術都是按照其峰值數據速率來命名的,這將繼續(xù)成為評估存儲系統(tǒng)性能的要素之一。不過,在實際系統(tǒng)中,沒有存儲器能完全工作在其峰值速率下?! 膶懨钷D換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據總線在一定時間內保持休止狀態(tài),這樣就不能充分利用存儲器通道。此外,寬并行總線和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決于系統(tǒng)的特定應用。有效數據速率隨著時間而變化,常低于峰值數據速率。在某些系統(tǒng)中,有效數據速率可下降到峰值速率的10[%]以下。 表1:每百周期發(fā)生兩個總線轉換時的有效數據速率和峰值數據速率。
通常,這些系統(tǒng)受益于那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 Transmeta等公司已經指出,在測量基于CPU的系統(tǒng)的性能時,時鐘頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許并不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統(tǒng)的性能。 影響有效數據速率的參數 有幾類影響有效數據速率的參數,其一是導致數據總線進入若干周期的停止狀態(tài)。在這類參數中,總線轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發(fā)系統(tǒng)結構中的大部分延遲問題。 總線轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統(tǒng)為例,該系統(tǒng)對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統(tǒng)的有效數據速率與其峰值速率相當。不過,假設100個時鐘周期中,存儲器控制器從讀轉換到寫。由于這個轉換需要6個時鐘周期,有效的數據速率下降到峰值速率的 94[%]。在這100個時鐘周期中,如果存儲器控制器將總線從寫轉換到讀的話,將會丟失更多的時鐘周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79[%]。表1顯示出針幾種高性能存儲器技術類似的計算結果。 顯然,所有的存儲器技術并不相同。需要很多總線轉換的系統(tǒng)設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統(tǒng)能將處理事務分組成非常長的讀寫序列,那么總線轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。 DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對于還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。 表2:不同存儲技術的總峰值帶寬以及控制器管腳數的總線帶寬。
大多數存儲器技術有4個或者8個庫,在數十個時鐘周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發(fā)生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。 存儲器讀事務處理 考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發(fā)出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突??刂破鞅仨氃诖蜷_一個頁和打開后續(xù)頁之間等待一個tRC時間,這樣增加了與頁循環(huán)相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定于I/O,并主要受限于DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20[%]到30[%]。 在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決于很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環(huán)地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。 第三種情況,每個事務處理就是一次頁命中,在開放頁中尋址不同的列地址??刂破鞑槐卦L問關閉頁,允許完全利用總線,這樣就得到一種理想的情況,即有效數據速率等于峰值速率。 第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器接口中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。 然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20[%]。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。 實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據總線無中斷地運行,在開放一個行之后,只須讀取很少量的數據,即使不需要額外的數據。 另外一種減少存儲器系統(tǒng)有效帶寬的主要特性被歸類到列存取粒度范疇,它規(guī)定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規(guī)定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易于量化的巨大影響。因為它規(guī)定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統(tǒng)帶來了問題。例如,一個需要來自兩列各8字節(jié)的16字節(jié)存取粒度系統(tǒng),必須讀取總共32字節(jié)以存取兩個位置。因為只需要32個字節(jié)中的16個字節(jié),系統(tǒng)的有效數據速率降低到峰值速率的50[%]??偩€帶寬和脈沖時間長度這兩個結構參數規(guī)定了存儲器系統(tǒng)的存取粒度。 表3:目前主流存儲技術的存取粒度和總線帶寬值。
總線帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對于一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規(guī)定對于指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1??偟牧写嫒×6群芎唵危毫写嫒×6?總線寬度×脈沖時間長度。 很多系統(tǒng)架構僅僅通過增加DRAM器件和存儲總線帶寬就能增加存儲系統(tǒng)的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那么8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。 首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器總線所能達到的最大值。具有256位甚或512位存儲總線的圖形控制器已并不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規(guī)劃工程師以及電路板設計工程師不能找到采用便宜的、商業(yè)上可行的方法來對這么多信號進行布線的硅片區(qū)域。僅僅增加總線寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。 假設某個特定存儲技術的脈沖時間長度等于1,對于一個存儲器處理,512位寬系統(tǒng)的存取粒度為512位(或者64字節(jié))。如果控制器只需要一小段數據,那么剩下的數據就被浪費掉,這就降低了系統(tǒng)的有效數據速率。例如,只需要存儲系統(tǒng)32字節(jié)數據的控制器將浪費剩余的32字節(jié),進而導致有效的數據速率等于50[%]的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器接口數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大于1。 內核預取 一種稱為內核預取的功能主要負責增加最小的脈沖時間長度。DRAM內核電路不能跟上I/O電路速度的速增。由于數據不能再連續(xù)地從內核中取出以確??刂破餍枨?,內核通常為I/O提供比DRAM總線寬度更大的數據集。 本質上,內核傳輸足夠的數據到接口電路,或者從接口電路傳輸足夠的數據,以使接口電路保持足夠長時間的繁忙狀態(tài),以便讓內核準備下一個操作。例如,假設DRAM內核每個納秒才能對操作響應一次。不過,接口可以支持每納秒兩位的數據速率。 DRAM內核每次操作取兩個數據位,而不是一個數據位,因而不必浪費接口一半的容量。在接口傳輸數據之后,內核已經準備好響應下一個請求,而不需增加延時。增加的內核預取導致最小脈沖時間長度增加為2,這將直接影響列存取粒度。 對于每個增加到總線寬度的額外信號,存儲器接口將傳輸兩個額外的數據位。因此具有最小脈沖時間長度為2的512位寬的存儲系統(tǒng),其取粒度為 1,024位(128字節(jié))。很多系統(tǒng)對最小存取粒度的問題并不敏感,因為它們存儲大量的數據。不過,某些系統(tǒng)依賴存儲器系統(tǒng)提供小的數據單元,并獲益于更窄、更有效的存儲器技術。 小結 隨著存儲技術向峰值數據速率發(fā)展,有效的數據速率變的越來越重要。在選擇存儲器時,設計師必須深入了解已公布的存儲器規(guī)范,并明白某個特定的技術特性將對應用設計產生怎樣的影響。存儲器系統(tǒng)設計師必須超越峰值數據速率規(guī)范,就像CPU設計師不再用千兆Hz作為唯一的性能衡量標準一樣。盡管對于存儲器接口而言,峰值數據速率依然是最終要的性能規(guī)范,但有效的數據速率已開始為系統(tǒng)設計師和架構師提供更大的空間。未來產品的性能將極大地取決于其存儲器系統(tǒng)的有效利用程度。