大家好,这里是大话硬件。这篇文章将分析实际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);
因此,整个内存颗粒内部的分布如下所示:
关注我,让我成为你的专属小太阳吧
782