1. 程式人生 > >一文讀懂SDRAM記憶體模組與基本概念

一文讀懂SDRAM記憶體模組與基本概念

 

轉載https://www.mianbaoban.cn/blog/443713-205259.html

 

本文可以瞭解什麼?

  1. DDR-DDR4記憶體模組的差異以及對比;
  2. 邏輯BANK的概念與定義;
  3. 晶片的位寬的解釋。

下圖是DDR3的PHY IP Core的定義規範。

DDR-DDR4的物理結構差異

首先,我們來對比一下DDR, DDR2, DDR3 SDRAM, and DDR4 SDRAM物理結構上的差別,如下圖所示。

下表是SDRAM-DDR4前後的電壓,時鐘,速率的對比詳圖。

SDRAM, DDR1, DDR2, DDR3以及DDR4對比表

 

邏輯BANK與晶片位寬

我們平時看到的SDRAM都是以模組形式出現,即便是手機或者pad中的記憶體單元,一般一會是好幾顆,為什麼要做成這種形式呢?要解釋這個問題,首先要接觸到兩個概念:物理Bank與晶片位寬。

1、邏輯Bank

簡單地說,SDRAM的內部是一個儲存陣列。由於採用管道式儲存(如同排隊買票),就很難做到隨機訪問了。

陣列就如同表格一樣,將資料“填”進去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個行(Row),再指定一個列(Column),我們就可以準確定位所需要的單元格,這就是記憶體晶片定址的基本原理。對於記憶體來說,這個單元格可稱為儲存單元,那麼這個表格(儲存陣列)我們就稱之為邏輯Bank(Logical Bank)。

由於SDRAM的工作原理限制,單一的邏輯Bank將會造成非常嚴重的定址衝突,大幅降低記憶體效率,因此由於技術、成本等各方面原因,不可能一顆晶片只做一個全容量的邏輯Bank。所以架構師在SDRAM內部分割成多個L-Bank,在DDR2的標準中,邏輯Bank的數量是8個。

這樣一來,在進行定址時就要先確定是哪個邏輯Bank,然後再在這個選定的邏輯Bank中選擇相應的行與列定位記憶體單元進行定址。可見對記憶體的訪問,一次只能是一個邏輯Bank工作,而每次交換的資料就是邏輯Bank儲存陣列中一個“儲存單元”的容量。

2、晶片位寬

傳統記憶體系統為了保證CPU的正常工作,必須一次傳輸完CPU在一個傳輸週期內所需要的資料。而CPU在一個傳輸週期能接受的資料容量就是CPU資料匯流排的位寬,單位是bit(位)。當時控制記憶體與CPU之間資料交換的晶片也因此將記憶體匯流排的資料位寬等同於CPU資料匯流排的位寬,記憶體的位寬需要與CPU對應,才能正常執行。

SDRAM記憶體系統必須要組成一個物理Bank的位寬,才能使CPU正常工作,那麼這個物理Bank位寬怎麼得到呢?這就涉及到了記憶體晶片的結構。

每個記憶體晶片也有自己的位寬,即每個傳輸週期能提供的資料量。理論上,完全可以做出一個位寬為64bit的晶片來滿足物理Bank的需要,但這對技術的要求很高,在成本和實用性方面也都處於劣勢。所以晶片的位寬一般都較小。對於桌上型電腦市場所用的SDRAM晶片位寬最高也就是16bit,常見的則是8bit。這樣,為了組成物理Bank所需的位寬,就需要多顆晶片並聯工作。對於16bit晶片,需要4顆(4×16bit=64bit)。對於8bit晶片,則就需要8顆了。

這樣大概可以說清楚晶片位寬、晶片數量與物理Bank的關係。物理Bank其實就是一組記憶體晶片的集合,這個集合的容量不限,但這個集合的總位寬必須與CPU資料位寬相符。