系統最佳化設計時,如何選擇適當的SDRAM控制器非常重要,特別是檢討作業,經常發生研究人員忽略資料轉送率是控制器的關鍵性指標。
最近幾年IC設計越來越複雜,其結果造成市場強烈要求電子機器具備構成系統的各種要素,包含資料處理功能、晶片化匯流排等周邊介面,以及實現汎用或是應用固有動作機制的理論性電路,能夠全部微縮內建在體電路內部,此時為了使所有要素正常動作,必需使用高性能記憶體介面。
系統晶片(SoC)設計經常使用DRAM,不論是以晶片化DRAM(晶片組)為前提的設計,或是以外部DRAM次系統為對象的設計,幾乎所有的系統晶片,都必需使用記憶體控制器。
使用記憶體控制器的次系統(memory sub system)含蓋範圍非常廣泛,包含處理影像的畫格緩衝器(buffer)、網路分享用的資料緩衝器、行動電話與數位相機等消費性機器的聲音/影像存取器,都需要使用記憶體控制器次系統,因此上述系統晶片必需使用可以支援快閃記憶體、DDR2/3、攜帶型電子機器用DDR、顯示卡用DDR的記憶體控制器。
然而實際上選擇適合特定應用要求的最佳記憶體控制器卻非常困難,某些情況只能遷就現況,使用一般汎用記憶體控制器,有鑑於此本文針對DDR SDRAM(Synchronous DRAM),深入探討資料轉送率以及如何發揮資料轉送率等課題。
歷史背景
控制器封裝於系統晶片有兩種方法,一種是使用獨自開發的記憶體控制器,另外一種方法是向第三智產者(Third party Intellectual property)購買控制器的IP核心。
最近幾年基於某些理由後者已經成為市場主流,主要原因是對控制器的設計、驗證、測試、封裝,等次系統開發無經驗的工程師而言,控制器設計的成為複雜、高成本、高風險的工作。
目前DDR規格與支援的測試手法比較穩定,即使獨自開發記憶體控制器,面臨系統晶片化的快速發展時,採取獨自開發記憶體控制器方式,幾乎無法獲得產品差異化的效果,相較之下外購IP核心,長期而言反而可以抑制成本,交貨期的風險也能夠有效降低。
工程師一旦決定使用外購IP核心,專注結合產品差異化的功能設計、開發,成為該階段重要課題,此時必需決定成本、功能、尺寸、性能、延遲時間、消費電力等基本規格。
事實上除了以上規格選擇之外,資料轉送率具對系統晶片的功能設計有絕對性影響。所謂資料轉送率是指理論上最大頻寬,與實際可以達成的頻域寬度,兩者的百分比而言,因此正確判斷資料轉送率是否適合系統、控制器非常重要。
有關資料轉送率,首先必需清楚掌握DDR SDRAM的存取特性,如果對SDRAM的存取時間一直都是相同時,就可以輕易量測次系統介面的資料轉送率。
然而實際上DDR SDRAM記憶體與次系統的存取條件完全相異,因此存取時間也不相同,主要原因是DDR SDRAM的晶片內建4或是8個獨立的記憶區塊,記憶區域隨時處於主動或是閒置(idling)狀態,處於閒置狀態的記憶區塊,透過主動指令才會遷移至主動狀態,接著將指示的資料收容在感測(sense up)的排列內,讀取/寫入操作期間則持續保管(keep)資料。
由於從行讀取資料之前會要求over head,因此該存取需要花費一些時間。讀取與寫入的指令會使用位址,接著再存取收容在行的複數資料(2、4、8 Word)。由於控制器存取別行時會使使用中的記憶區塊的感測回到閒置狀態,因此此流程又稱為預充(pro-charge)。
記憶區塊完全變成閒置狀態,一直到可以擷取下一個主動指令為止,需要一些時間,此時依照長存取時間的順序,可以分成三種:
- ●行已經open時關閉朝別行的存取;
- ●對別行存取;
- ●對已經open的行存取。
除此之外控制器的封裝,還需要考慮更新(reflash)、pattern down、初期化等時序要件。必需注意的是記憶體次系統處理,從讀取一直到寫入的遷移,隨著介面的反相會產生延遲,如果頻繁發生延遲,記憶體的資料轉送效率整體會大幅劣化。
資料轉送效率的定義
如上所述資料轉送效率是指理論上最大轉送頻寬時,記憶體介面提供實際可利用的資料轉送頻寬的百分比,例如DDR2 雙列直插記憶體模組(Double In-line Memory Module;DIMM),理論上最大轉送速度為6400Mbps,實際平均轉送速度為3200Mbps時,因此資料轉送效率只有50%。
一般控制器的資料轉送效率大多取25%~90%,這意味著使用非效率性控制器封裝,會對系統主要特性產生很大影響,整體成本則大幅增加。此外受到記憶體存取特性的限制,某些場合不易實現高資料轉送效率。
對記憶體的存取主要進行開放(open)行的場合,可以實現理論上最大頻寬,相較之下對記憶體存取只進行分散性的場合,幾乎不會發生對同行的存取。隨著對不同行存取的頻繁發生,處理時間與平均存取時間都會隨著變長,因此整體的資料轉送效率大幅滑落。
利用控制器可以根據資料的流量特徵(traffic pattern)作高效率的操作組合,如此就能夠減輕非效率性流量特徵造成的影響。如果有某種新型得控制器,能夠不依照記憶體存取要求產生的順序執行,卻將對同行的存取作組合(Grouping),或是執行最適當的讀取、寫入處理,或是快速執行高優先度資料的存取,此時只要透過彼此具備的功能與特徵,就可以大幅改善資料轉送效率。
控制器的分類與性能
基本控制器
所謂的基本控制器是指類似上述記憶體存取未作最佳化,依照產生的要求依序執行動作的控制器而言。此外對開放頁(行)若發生存取時,存取花費的時間會變長或是變短。
基本控制器會隨著循序存取(sequence access)與隨機存取(random access)的不同,資料轉送效率也截然不同。進行循序存取的場合,幾乎所有的存取會標的(Hit)開放的頁(行),因此它可實現高速時間,亦即最大的資料轉送效率(接近100%)。相較之下隨機存取的場合,幾乎所有的存取不會標的(Hit)開放頁(行),因此存取時間變長,資料轉送效率則大幅下跌(大約只有20%左右)。表一是循序存取/隨機存取百分比相異的3種流量特徵的資料轉送效率一覽,三種流量特徵分別是指:
- ●20%的隨機存取與80%的循序存取;
- ●隨機存取與循序存取各50%;
- ●80%的隨機存取與20%的循序存取。
(表一) 一般控制器的資料轉送效率一覽
流量特徵 |
資料轉送效率 (%) |
80% (R) / 20 (S) |
10 |
50% (R) / 50 (S) |
20 |
20% (R) / 80 (S) |
30 |
內容定址記憶體(Content Addressable Memory;CAM)控制器
對存取具備最佳化功能的控制器,若與基本控制器比較,前者可以大幅提高性能。表二是使用上述三種流量特徵,對DRAM存取進行最佳化內容定址記憶體時,複雜控制器的資料轉送效率一覽。
使用這種複雜控制器時,要求會被保存在內容定址記憶體內部。產生新要求時,首先會對內容定址記憶體進行搜尋,接著再對保存以外的要求進行施最佳化,最後再作排列(queuing)。
如表二所示內容定址記憶體從8 entry開始,依序變成16、32、64,隨著entry值的增加,它可以同時作更多的比較,其結果使得對複雜流量特徵的資料轉送效率獲得大幅提升。
(表二) CAM控制器的資料轉換效率一覽
項目 |
CAM的門檻數量 |
流量特徵 |
資料轉送效率 (%) |
1 |
8 |
80%(R)/20%(S) |
28 |
2 |
8 |
50%(R)/50%(S) |
37 |
3 |
8 |
20%(R)/80%(S) |
59 |
4 |
16 |
80%(R)/20%(S) |
33 |
5 |
16 |
50%(R)/50%(S) |
47 |
6 |
16 |
20%(R)/80%(S) |
70 |
7 |
32 |
80%(R)/20%(S) |
37 |
8 |
32 |
50%(R)/50%(S) |
53 |
9 |
32 |
20%(R)/80%(S) |
85 |
10 |
64 |
80%(R)/20%(S) |
38 |
11 |
64 |
50%(R)/50%(S) |
58 |
12 |
64 |
20%(R)/80%(S) |
80 |
內容定址記憶體為8 entry的場合,隨機存取為80%、循序存取為20%的流量特徵,資料轉送效率只有28%;隨機存取與循序存取各50%的場合,資料轉送效率可以提升至37%;隨機存取為20%、循序存取為80%的流量特徵,資料轉送效率還可以再提升至59%。
內容定址記憶體(CAM)為16 entry的場合,資料轉送效率對應各特徵,分別是33%、47%、70%,換句話說32 entry與64 entry擁有同樣的資料轉送效率。一般內容定址記憶體(CAM)控制器與表1的基本控制器比較,一般內容定址記憶體(CAM)控制器可以實現大約兩倍的資料轉送效率,由此可知評鑑各種控制器封裝互動要件時,資料轉送效率是比較作業上非常重要的要素。
轉換系統的優點
記憶體次系統如果取得高資料轉送效率,設計者就可以將此轉換成低成本、低消費電力等系統優點。例如處理影像串流(video stream)、遙測串流(telemetry stream)時,即使對緩衝記憶體有很多時間性限制的應用,實際上只要滿足某個固定量的頻寬即可。
此處假設資料轉送效率從70%提升至90%,此時即使用速度很慢的記憶模組,同樣能夠維持充分的系統頻寬。目前速度很慢的記憶體模組,已經大量出現在一般市場,因此電子工程師可以輕易取得,而且價格很低廉。
低速記憶体模組對晶片與基板成本的抑制非常有效,同時它還可以使系統設計變得更容易,大幅縮短開發時間。類似這樣的成本優勢大多呈指數性關數增加,例如20%的資料轉送效率與20%的成本削減,幾乎是等號關係。
此外設計上最重要的基本特性,亦即記憶體介面提供的高資料轉送效率,同樣會與實現更高的系統性能直接劃上等號。特別是演算以適當速度擷取資料的場合,它可以發揮最大能力,而且性能也是呈指數性關數增加,不過此時資料的取得相當費時,而且演算受到時序上重大限制,一直到系統回復到最大性能為止,要求許多操作循環,類似這樣的失速如果頻繁發生,系統原本的處理性能會大幅降低。
高資料轉送效率與低消費電力化等系統要件也有直結關係,這意味著只要設計者充分應用慢速、低消費電力記憶體、I/O、處理器的特徵再加以組合,基本上還是可以實現必要的系統性能。例如提高資料轉送效率,可以使用更簡易的記憶系統,大幅削減消費電力。此外處理資料流量期間產生的閒置時間如果變長,利用控制器的省電功能,同樣可以降低消費電力。
設計時適當的資料流量選擇,通常會針對幾種一般性應用,再從表一選出適當的資料流量(traffic pattern),最後透過相異控制器的封裝,進行各種資料轉送效率的比較。資料處理演算最常發生隨機存取,主要原因是許多情況,相同演算使用的變數與碼(code)都是分散收容在記憶體,因此隨機存取的機會非常多。
記憶體的應用主要是處理資料緩衝與資料保存,例如影像通訊的應用,進行擷取演算資料處理前後,會將整合至某結構的資料加以緩衝,此時類似這類應用循序存取比率會變高,如果使用散列表(Hash table)或是鏈結串列(Linked list),某些情況會以同等比例進行隨機存取。
系統設計
在許多系統中,可以發現設計者大多試圖透過記憶體次系統的資料轉送效率提升,實現低成本、低消費電力、高效益等預期目標。由此可知資料轉送效率是系統設計的關鍵性要件,設計上如何以最佳形式發揮資料轉送效率的優點非常重要。
接著透過具體設計範例,介紹典型的效率分析順序與互動要因的調整方法。具體設計範例共有兩種,分別是「即時影像系統」與「系統設備的網路處理器」,利用這兩個範例,深入探討如何利用記憶體次系統的資料轉送效率評鑑結果,介紹有效削減系統成本、消費電力、開發時間,同時化解互動要因諸多限制的具體手法。
即時影像系統
處理影像串流的即時影像系統,非常重視時間,因此記憶體次系統處理資料時,首要條件必需避免發生嚴重的延遲時間。例如攝影機器攝影的影像,先在攝影機器內部數位化,接著再透過高速連接,當成影像串流傳送至影像處理器,影像處理器根據各影像畫格,分割成封包儲存在記憶體內,在這一連串處理之中,可能包含過濾(Filtering)或是某些擴充演算。
以上述設計範例的系統而言,受到影像處理記憶體頻寬的限制,必需即時支援16的影像串流。影像串流是以1000×1000畫素構成,各畫格(3Mbyte)的彩色資料為24bit,每秒為24畫格,此時各匯流(stream)要求的頻寬會變成72Mbps(3Mbyte×24),為支援16的影像串流,要求1152Mbps的資料轉送速度。
有關系統要件,為防止不明要因造成中斷時影像資料遺失,必需維持0.3秒(345Mbyte)的影像資料,此時標準512Mbyte的記憶體模組,理論上可以充分支援上述要求。
雖然與標籤表單(head table)、服務質量(QoS)資料、時戳(time stamp)有關的處理不會受到限制,然而實際上此系統有許多資料被依序存取,因此必需以20%隨機存取、80%循序存取等流量特徵進行評鑑。利用流量特徵獲得的資料轉送效率,基本控制器的場合大約是30%;內容定址記憶體(CAM)控制器的場合,資料轉送效率介於60%~90%之間,因此接著再考慮這些資料轉送效率,對記憶體系統設計會產哪些影響。使用標準64位元寬/512Mbyte記憶體模組的場合,如表2所示,會面臨複數選擇的困擾。
例如針對系統頻寬,如果使用8 entry的內容定址記憶體(CAM),達成59%的資料轉送效率為前提時,可以獲得比基本控制器大2倍的頻寬。若使用DDR2-400記憶體模組,可以實現1888MByte/s的頻寬(32208MByte/s×59%),如此就能夠充分滿足1152MByte/s的系統要件。
通常記憶體模組速度越低,消費電力與發熱就越少,此外系統的其它部位有可能以低速動作,這些都是選擇記憶體模組時必需檢討的細節。反過來說如果使用高資料轉送效率,而且具備類似內容定址記憶體(CAM)最佳化功能的控制器,理所當然系統整體可以獲得更大優點。
(表三) 各種DDR2記憶體的規格一覽
記憶體種類 |
循環時間(ns)
|
I/O匯流時脈頻率(MHz) |
模組規格 |
最大轉送速度(Mb/s)
|
DDR2-400 |
10 |
200 |
PC2-3200 |
3200 |
DDR2-533 |
7.5 |
266 |
PC2-4200 |
4264 |
DDR2-667 |
6 |
333 |
PC2-5300 |
5336 |
DDR2-800 |
5 |
400 |
PC2-6400 |
6400 |
DDR2-1066 |
3.75 |
533 |
PC2-8500 |
8500 |
系統設備的網路處理器
有關系統設備網路應用的網路處理器,它除了記憶體次系統的指令資料之外,還需要存取封包資料。此處假設隨機存取與循序存取都是50%,而且占用大部份應用演算的分散/聚集演算法(Scatter/Gather Algorithm),進行隨機存取的情況居多,相較之下封包資料與指令資料,則以進行循序存取的情況居多。
上述應用會一次處理與複數埠有關的作業,因此要求1500Mbps極高的頻寬,此時基本控制器如果進行各50%的隨機存取與循序存取,如此一來資料轉送效率就變成20%,最大頻寬要件則變成7500Mbps(7500Mbps×20%=1500Mbps)。
根據表三可知DDR2-1066記憶體模組,確實可以實現8500Mbps的最大頻寬,如果使用基本控制器,為滿足頻寬要件就必需選擇DDR2-1066記憶體模組。
若是32 entry的內容定址記憶體(CAM),以上述流量特徵的條件而言,理論上可以獲得53%的資料轉送效率,此時記憶體模組若使用具備3200Mbps,最大頻寬的DDR2-400,就可以達成1696Mbps(3200Mbps×53%)的頻寬。
綜合以上討論獲得以下結論,亦即基本控制器要求的高效益模組,與具備類似內容定址記憶體(CAM)最佳化功能的控制器,最後的選用完全取決於記憶體模組的價格差異。假設設計上必需使用高單價記憶體模組的前提,相對的系統整體的成本可能會暴增,價格競爭會非常不利。此外隨著高單價記憶體模組的使用,會產生高消費電力、低可靠性,以及交貨期冗長等弊害,因此以本範例而言,具備最佳化功能的控制器成本上比較有利。
結語
以上介紹選擇控制器時,具有指標性地位的資料轉送率重要性。掌握資料轉送率才能進行系統結構的互動關係分析,與系統最佳化設計。此外以資料轉送率為平台,還可以有效化解成本、消費電力、開發時間、可靠性等錯綜複雜的因果關係。