DDR存储颗粒度大小 | 您所在的位置:网站首页 › ddr2内存最大多少g › DDR存储颗粒度大小 |
总结:DDR存储结构,从大到小排列依次是:channel/DIMM/rank/chip/bank/row-col/cell ========================================================================= DDR存储芯片内部结构一个最小存储单位为:Cell(细胞)。 一整行Cell构成了:Row(行), 一整列Cell构成了:Column(列) Row*Column形成一个:Bank(块) 多个Bank构成一个:Chip(片) 注: 以上5个概念词,可以按照立方体的“长 - 宽 - 高”,来理解。 行(Row):长 列(Column):宽 长与宽组成一个平面(Bank) 多个面一层一层叠加就构成了一个立体的芯片(chip) ========================================================================= DDR存储芯片外部结构从DDR内存条的外观可以看到,多块Chip(芯片)排列在一个DDR内存条的一面。 再加上一个片选信号就构成一个内存条的一个面,即:Rank。 一个DDR内存条一般有两个面,多个(一般指2个)Rank就构成了一根内存条。 一个内存条配备一个插槽,即:DIMM(双列直插)。 多个DIMM就构成一个通道,即Channel。 一般一个Channel对应于CPU的一个内存控制器。 一个CPU有几个内存控制器,就可以做几个(一般是2个)Channel。 ========================================================================= DDR/GDDR/HBM DDR/GDDR/HBM请参考文献 1.ddr的层级结构一个soc或者PC上的ddr都是有很多颗ddr single chip组成的。这么多颗ddr又组成了不同的层级。这些层级从大到小分为: channel->rank->chip->bank->row->col->cell 其中channel->rank->chip是ddr颗粒(就是单颗ddr,对应上图中黑色方块)之外的层级,bank->row->col->cell是ddr颗粒内部的层级。 1.1ddr颗粒之外的层级一个现实的例子是:(该实例摘自原文链接:https://blog.csdn.net/u012489236/article/details/107730731) 在这个例子中,一个i7 CPU支持两个Channel(双通道),每个Channel上可以插俩个DIMM,而每个DIMM由两个rank构成,8个chip组成一个rank。由于现在多数内存颗粒的位宽是8bit,而CPU带宽是64bit,所以经常是8个颗粒可以组成一个rank。所以内存条2R X 8的意思是由2个rank组成,每个rank八个内存颗粒。由于整个内存是4GB,我们可以算出单个内存颗粒是256MB。 以 hmt351s6bfr8c-h9内存条为例 一个i7的cpu支持两个通道 每个通道上插两个DIMM就可以一共插4个hmt351s6bfr8c-h9内存条。共16G。 一个hmt351s6bfr8c-h9内存条就是一块DIMM(Dual Inline Memory Module,双列直插内存模块, 或者有的叫做内存模组)。 1.2 DDR颗粒内部的层级这次我们来看看rank和Chip里面有什么,如下图: 这是个DDR3一个Rank的示意图。我们把左边128MB Chip拆开来看,它是由8个Bank组成,每个Bank核心是一个存储矩阵,就像一个大方格子阵。这个格子(cell)阵有很多列(Column)和很多行(Row),这样我们想存取某个格子(cell),只需要告知是哪一行哪一列就行了,这也是为什么内存可以随机存取而硬盘等则是按块存取的原因。 实际上每个格子的存储宽度是内存颗粒(Chip)的位宽,在这里由8个Chip组成一个Rank,而CPU寻址宽度是64bit,所以64/8=8bit,即每个格子是1个字节。 2.ddr地址的时分复用DDR4芯片有20根地址线(17根Address、2根BA、1根BG),16根数据线。在搞清楚这些信号线的作用以及地址信号为何还有复用功能之前,我们先抛出1个问题。假如我们用20根地址线,16根数据线,设计一款DDR,我们能设计出的DDR寻址容量有多大? Size(max)=(2^20) * 16=1048576 * 16=16777216bit=2097152B=2048KB=2MB。 但是事实上,该DDR最大容量可以做到1GB,比传统的单线编码寻址容量大了整整512倍,它是如何做到的呢?答案很简单,分时复用。我们把DDR存储空间可以设计成如下样式: 首先将存储空间分成两个大块,分别为BANK GROUP0和BANK GROUP1,再用1根地址线(还剩19根),命名为BG,进行编码。若BG拉高选择BANK GROUP0,拉低选择BANK GROUP1。(当然你也可以划分成4个大块,用2根线进行编码) 再将1个BANK GROUP区域分成4个BANK小区域,分别命名为BANK0、BANK1、BANK2、BANK3。然后我们挑出2根地址线(还剩余17根)命名为BA0和BA1,为4个小BANK进行地址编码。 此时,我们将DDR内存颗粒划分成了2个BANK GROUP,每个BANK GROUP又分成了4个BANK,共8个BANK区域,分配了3根地址线,分别命名为BG0,BA0,BA1。然后我们还剩余17根信号线,每个BANK又该怎么设计呢?这时候,就要用到分时复用的设计理念了。 剩下的17根线,第一次用来表示行地址,第二次用来表示列地址。现在修改为传输2次地址,在传输1次数据,寻址范围最多被扩展为2GB。虽然数据传输速度降低了一半,但是存储空间被扩展了很多倍。这就是改善空间。 所以,剩下的17根地址线,留1根用来表示传输地址是否为行地址。 在第1次传输时,行地址选择使能,剩下16根地址线,可以表示行地址范围,可以轻松算出行地址范围为2^16=65536个=64K个。 在第2次传输时,行地址选择禁用,剩下16根地址线,留10根列地址线表示列地址范围,可以轻松表示的列地址范围为2^10=1024个=1K个,剩下6根用来表示读写状态/刷新状态/行使能、等等复用功能。 这样,我们可以把1个BANK划分成67108864个=64M个地址编号。如下所示 所以1个BANK可以分成65536行,每行1024列,每个存储单元16bit。 所以1个BANK可以分成65536行,每行1024列,每个存储单元16bit。 每行可以存储1024*16bit=2048bit=2KB。每行的存储的容量,称为Page Size。 单个BANK共65536行,所以每个BANK存储容量为65536*2KB=128MB。 单个BANK GROUP共4个BANK,每个BANK GROUP存储容量为512MB。 单个DDR4芯片有2个BANK GROUP,故单个DDR4芯片的存储容量为1024MB=1GB。 至此,20根地址线和16根数据线全部分配完成,我们用正向设计的思维方式,为大家讲解了DDR4的存储原理以及接口定义和寻址方式。 3. 总结本章主要是针对DDR的发展和原理进行了学习,主要集中在硬件的组成原理,其中涉及到Channel > DIMM > Rank > Chip > Bank > Row/Column,其组成如下图所示 更多内容可以参考深入浅出DDR系列(一)--DDR原理篇 4.参考文献内存系列一:快速读懂内存条标签 内存系列二:深入理解硬件原理 内存系列三:内存初始化浅析 DDR3 vs DDR4? 为什么说内存是个很傻的设备?DDR5在哪里? DDR5有什么新特性?是不是该等它再升级电脑呢? GDDR6 vs DDR4 vs HBM2?为什么CPU还不用GDDR?异构内存的未来在哪里? 老狼 |
CopyRight 2018-2019 实验室设备网 版权所有 |