大家好,這里是大話硬件
這篇文章將分析實際SDRAM內部是如何進行尋址以及內存單元分布方式。
根據前面的內容,從小容量到大容量進行迭代分析。
1. 1bit容量
這個存儲單元只能存儲1個bit位。假設現在需要8bit內存容量顆粒,則需要8顆這樣的存儲器件。
2. 4bit容量
這個存儲單元能存儲4bit數據。假設現在需要8bit的內存容量,則需要2顆這樣的存儲器件。
為了優化上面4bit的排列方式,使用矩陣式更節省空間和放大器數量。在存儲容量和位寬都不變的情況下,很明顯矩陣式的方案比上面橫向排布式在成本和面積上更有優勢。
矩陣式容量的計算:
容量:4 bit=2行x2列 bit;
放大器:放大器數量和列數相等,2個;
尋址:行地址線1位(2的1次方2),列地址線1位(2的1次方2)
3. 1Kb bit容量
按照矩陣式排列邏輯,如果構建1Kb容量內存顆粒,計算方式:
容量:1Kb bit=1024 bit=32行x32列 bit
放大器:放大器數量和列數相等,32個;
尋址:行地址線5位(2的5次方32),列地址線5位(2的5次方32)
結合上面的方案,要實現更大容量存儲顆粒,只需要增加芯片內部面積即可。但是有個問題,無論是器件存儲容量為多大,每個器件輸出位數僅僅只有1位。假設CPU需要32bit數據位寬,則上面的器件都需要放置32個。很明顯這樣不可取。
4. 1Kb bit 2位寬
將32列數據分為16組,就能組成2位寬的存儲器,此時計算方式:
容量:1Kb bit=1024 bit=32行x32列 bit
放大器:放大器數量和列數相等,32個;
列分組:32列/2位寬=16組
尋址:行地址線5位(2的5次方32),列地址線4位(2的4次方16)
從1bit到1Kb,1位寬到2位寬,可以看成全是單bank架構。在最開始文章中就提到過SDRAM內部是多bank架構,下面繼續增加位寬和容量,并引入page和bank的概念。
5. 4 Bank架構 16Kb 4位寬
構建一個16Kb 4位寬,內部有4個bank的存儲顆粒,計算方式:
容量:16Kb bit=4Bank x4Kb bit ;
1Bank=4Kb bit =64行x64列=64行x(16組x4位寬)列
放大器:每個bank放大器的數量和列數相等,64個
尋址:bank尋址2位(2的2次方4),行地址線6位(2的6次方64),列地址線4位(2的4次方16)
6. 8Bank架構 4Gb 4位寬
根據前面分析內容,構建一個4Gb 4位寬的DDR內存
4Gb容量,分為8bank,則每個Bank的容量是512Mb。
在SDRAM中為了更加方便描述,使用page這個概念來描述bank上一行的大小,其中1個page=8KB,所以在每個bank的其中的任意1行,會有8kbit個單元和這一行的word line相連。因此,需要8kbit列和這一行的存儲單元相連。
由于每個bank有512Mb的容量,因此word line的數量為512Mb/8Kb=64K行,所以1個bank的架構如下所示:
位寬為4,則需要2K組X4=8K。綜上所示,整個內存的單元的計算方式如下:
器件總容量:4Gb
每個bank的容量:512Mb
每個ban放大器:放大器數量和列數相等,8k個;
尋址:banK尋址3位(2的3次方8)列尋址11位(2的11次方2k),行尋址16位(2的16次方64K);
因此,整個內存顆粒內部的分布如下所示: