赞
踩
DDR在逻辑组织结构上采用多Bank方式,每一个逻辑Bank即为一个存储阵列,一般一个DRAM芯片有2~8个Bank。我们可以把一个Bank想象为一个表格,如下:
每个表格中的一个小格子称之为存储单元,该存储单元的大小等于数据线位宽,也就是每次能从单个DDR芯片读取的最小数据长度。 例如,某DDR颗粒的有16根数据线,则每个存储单元能存储16bit数据。
那么,怎样访问里面的某个格子呢?
1. 首先发出一个片选信号,选中整个芯片;
2. 发出Bank地址,选择是哪一个Bank(即表格);
3. 发出行地址;
4. 发出列地址,才能选中是个格子;
5. 最终,通过数据总线DQ,将某个格子中的数据输出
其中,bank地址由BA[0,X]信号线输入,一般8个bank需要3个bank选择线;行地址和列地址公用A[0,Y]地址线,使用RAS(RowAddressStrobe,行地址信号)和CAS(ColumnAddressStrobe,列地址信号)加以区分。
1.容量的计算
在了解了内存的逻辑组织结构之后,可以得到容量的计算方法:
单个内存芯片的容量 = 每个bank的容量 * bank数
= ( 每个bank的存储单元的个数 * 每个存储单元的容量 )* bank数
其中,每个bank的存储单元的个数 = 2^(行地址数+列地址数)
每个存储单元的容量在数值上也就等于位宽,也就是数据线的个数
2.表示方法
内存芯片的容量是一般以bit为单位的,以镁光的4Gbit的DDR3L为例,有三种组织方式:
分别是:
128 Meg x 4 x 8 banks
64 Meg x 8 x 8 banks
32 Meg x 16 x 8 banks
三个参数可以分别理解为:每个bank中存储单元的个数(有的资料里面也称之为存储深度),数据线的位宽和bank的数量。
以32 Meg x 16 x 8 banks具体分析:
单个DDR3芯片内部有8个banks
每个bank中有32M个基本单元,每个基本单元存储16bit数据 ,即每个bank大小是32M*16 bit = 64MB
所以总大小是32M*16bit*8 = 4Gbit
又因为很多人都不懂内存的相关知识,为了直观的表示内存容量,通常使用多少M,如512MB,1024MB,1G等的方法表示
三星4Gbit的DDR3的组织结构:
有时候简要表示成1Gb x4、512Mbx8、256Mb x 16,如下表所示:
这么表示其实就是没有了bank信息的描述,即1Gb可以表示为整个芯片上所有基本单元的个数。
https://zhuanlan.zhihu.com/p/113187707
https://blog.51cto.com/ticktick/686447
https://blog.csdn.net/kickxxx/article/details/7231621
http://www.elecfans.com/emb/fpga/20170317497484.html
https://www.cnblogs.com/lzhu/p/7071488.html
https://www.cnblogs.com/yilang/p/11103061.html
http://www.docin.com/p-1995813221.html
https://wenku.baidu.com/view/441a85896529647d27285211.html
https://www.samsung.com/semiconductor/dram/ddr3/
https://zhidao.baidu.com/question/158594007.html
https://www.cnblogs.com/yhsy1002/p/7610797.html
https://blog.csdn.net/woshizzai/article/details/80190604
《“高手进阶_终极内存技术指南——完整/进阶版》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。