標籤

2009年2月11日 星期三

memory interleaving

記憶體交錯(memory interleaving)可以讓系統對記憶體的不同bank進行同時存取,而不是持續存取。Bank表示一個SDRAM設備內部的邏輯儲存於庫的數量(現在通常是4個bank)。Interleave是加快記憶體速度的一種技術,舉例來說,將儲存於體的奇數位址和偶數位址部分分開,這樣當前字元被重新整理時,可以不影響下一個字元的訪問。這樣,2或4路交錯技術減少了等待時間,讓記憶體更快,雖然不是2或4倍的速度,但還是快了許多。要購買VIA晶片主機板的朋友,一定要認準有4 Bank interleaving調節的板子再買,沒有它,記憶體效能上可要大打折扣的!

多數高性能系統而言,高性能記憶體介面對保證高吞吐量非常關鍵。通常,在較差的系統設計中,具有極高性能的處理器經常處在一種無數據處理的‘飢餓’狀態。

提高總吞吐量的方法之一是採用記憶體交錯處理(memory interleaving)。記憶體交錯處理能使處理器在指定時間內讀寫更多資訊,有助於減少潛在瓶頸問題。

交錯處理的原理是將系統記憶體劃分成多個區塊。通常記憶體被劃分成2個或4個區塊。這些系統也被稱為雙路或四路交錯系統。即使有兩個實體上的獨立記憶體庫,軟體也會把它們視為一個記憶體區塊。

為了實現記憶體交錯處理,必須能使用一組單獨的控制線路存取每個記憶體區塊。一旦開始對第一個記憶體區塊的存取,對第二個區塊的存取也能同時進行。

在交錯處理的記憶體系統中,仍有兩個DRAM實體庫。然而,處理器在邏輯上只看到一個記憶體庫。對記憶體的存取是輪流進行的,先是庫1的數據,然後是庫2的數據,然後又再是庫1的數據。邏輯庫的所有偶數長字存放在實體庫1中,所有奇數長字存放在實體庫2中(見圖1)。


這種做法具有明顯的速度優勢,因為對這些記憶體的存取採用的是獨立的匯流排,時間上可以同時進行。

千萬不要把記憶體交錯與傳統系統中使用多個記憶體庫相混淆。這些‘傳統’系統只是簡單地透過增加記憶體庫來提高記憶體容量,通常是插入雙列直插記憶體模組(DIMM)。雖然新增的庫可能被賦予獨立的晶片選擇線路,但它們一般都共享控制線路,如列位址閘控(RAS)和行位址閘控(CAS),因此不允許同時存取。兩個記憶體控制器間的交錯能力可為系統設計師提供兩大優勢:首先,它不需要處理器利用軟體平衡對兩個記憶體庫的存取,而是可以自動平衡,因此能讓處理器充分發揮記憶體控制器的頻寬優勢;其次,它允許一次打開兩倍具有空間方位性的DRAM頁,這樣可顯著提高打開頁被存取到的概率,因而減少延遲。

過去嵌入式記憶體一直未採用記憶體交錯處理,因為新增記憶體和支援這種架構所需的複雜晶片組成本都非常高。然而,隨著記憶體成本的不斷下降,PC市場的大力推動以及大量處理器中整合具有交錯處理能力的記憶體控制器,這種技術已走向實際應用。

以飛思卡爾的MPC8641D Power處理器為例,它能透過記憶體交錯技術存取整合在內部的DDRII DRAM控制器。該處理器支援兩個DDRII記憶體控制器,記憶體事務可根據地址分派給DDRII控制器1或DDRII控制器2。另外,控制器也可以經過配置支援兩個記憶體控制器之間的交錯事務。兩個記憶體控制器之間的交錯處理能以快取記憶體線(cache line)或頁為基礎進行。

沒有留言: