一、DRAM的存储结构
channel>DIMM>rank>chip>bank>row/column
1、channel 和 DIMM,DIMM和RANK
SIMM----->DIMM
2、rank 和 chip
现在市场上的DIMM条一般都有2个RANK。rank 指的是连接到同 一个CS(Chip Select)的chip,内存控制器能对同 一 rank 的 chip 进行读写操作。
有些人會有錯誤觀念,以 chip 的數量或是以記憶體模組的單、雙面進行 rank 的判斷,但其實要以記憶體控制器和記憶體顆粒的規格進行判斷,目前家用 PC 的記憶體控制器通道絕大部分都是 64bit 寬,記憶體顆粒則是 8bit 寬,因此 8 顆並聯即可滿足記憶體控制器的需求,也就是 1 組 rank。但偶爾也有以 16bit 寬的記憶體顆粒製成的記憶體模組,此時 4 個 chip 就是 1 組 rank。
3、chip 和 bank
chip 往下拆分為 bank,如图所示,一个chip有8个bank。
4、bank 和 row/column
bank 往下拆就是 1 個個的儲存單元,橫向 1 排稱之為 row,直向 1 排稱之為 column,每排 column 的下方都有個 row buffer,用以暫存讀出來的 row 排資料。
一般來說橫向選擇排數的線路稱為 row(row enable、row select、word line),直向負責傳遞訊號的線路為column(bitline),每組 bank 的下方還會有個 row buffer(sense amplifier),負責將獨出的 row 資料暫存,等待 column 位址送到後輸出正確的位元,以及判斷儲存的逻辑值是 0 還是 1。
二、内存的读写
内存控制器和DIMM之间的线路连接如下:
一个bank的读操作如下:
一个bank的写操作如下:
读操作时,首先内存控制器會將 1 組地址由位址線傳到内存上,控制線跟著傳送控制訊號;如果是多 rank 的安裝情形,CS 也會送出對應的訊號選擇目標 rank。接著由於每個 rank 由許多 chip 組成,1 個 chip 僅負責部分的資料讀取,chip 接收到位址訊號後,將位址丟入內部的 row/column 解碼器找出相對應的 bank 位址(每家每款產品的內部 bank 組合有可能不同,因此對應也會有所不同),接著開啟 row 線,同 1 排 row 的內部資料就會流到 row buffer 內部,row buffer 判斷訊號為 0 或是 1 之後就輸出資料。
写操作时,除了地址数据外,还会传送欲写入的数据至晶片內部的 input buffer,同樣的也是依照 row/column 解碼器找出對應位置之后再写入。
一个DRAM 晶片的内部功能图如下所示: