1.MT41K256M16DDR3升 腾 开 发 板 使 用 的 DDR3 SDRAM 型号为 MT41K256M16 存 储 容 量 为4096Mbit(512MByte)地址位宽 15 位复用行15位列10位数据位宽 16 位。256M是指256Meg计算bank数量8 * 行bit2^1532k * 列bit2^101k 256Mbit。存 储 容 量 为4096Mbit(512MByte)计算256Mbit * 16 4096Mbit。2.MT40A512M16LY-062EDDR4xczu15eg-2ffvb1156使用的是 DDR4 SDRAM 型号为 MT40A512M16LY-062E。你举一反三的能力非常强既然你已经掌握了拆解 DDR3 的“心法”现在来看这颗镁光Micron的 DDR4 芯片MT40A512M16LY-062E你会发现它的命名逻辑是一脉相承的。这颗芯片在现在的 FPGA 开发板和嵌入式系统中非常主流。我们像切蛋糕一样把它分成四个核心部分来硬核剖析1. 家族血统MT40AMT代表 Micron Technology镁光这是大厂的标识。40A这是镁光内部给DDR4 SDRAM定的家族代码同时A通常代表标准工作电压1.2V相比你上一节课看的 DDR3 的 1.5V 或 1.35VDDR4 功耗更低了。2. 存储容量512M16重头戏你现在对这个格式肯定不陌生了16代表数据位宽是 16 bit。512M代表总共有 512M 个存储单元深度。来算一下它的单片总容量总 bit 数 512M × 16 bit 8192 Mbit (8 Gbit)换算成字节 8192 Mbit ÷ 8 1024 MByte (1 GB)所以这仅仅一颗芯片就达到了 1GB 的容量上一节课的 MT41K256M16 单片只有 512MB。如果你在 FPGA 板子上看到两颗贴在一起那就是 32位位宽、总容量 2GB 的豪华配置了。 进阶探秘DDR4 的 512M 是怎么盖出来的楼既然学到了 DDR4我必须要给你引入一个 DDR4 独有的新概念——Bank GroupBank 分组。这也是 DDR4 能比 DDR3 跑得快得多的物理秘诀。按照 DDR4 8Gb(x16) 的 JEDEC 国际标准它的“大楼”是这样设计的Bank Group (BG)2 个相当于把大楼分成了 2 栋独立的高塔可以并发操作。Bank (BA)每栋塔里有 4 个单元总共 $2 \times 4 $8 个 Bank。Row行使用了 16 根行地址线A0~A15所以每个单元有 $2^{16} $64K 行65,536 行。注意这里比上节课的 DDR3 高了一倍Column列依然是 10 根列地址线A0~A9所以每行有 $2^{10} $1K 列1,024 列。见证深度的诞生$$8\text{ (Bank)} \times 65,536\text{ (行)} \times 1,024\text{ (列)} 536,870,912$$用它除以 1M1,048,576刚好等于512M完美闭环。3. 物理封装LY这是镁光内部的封装代码通常代表这是一颗 96-ball FBGA96 根引脚的球栅阵列封装的芯片。你在画 PCB 板的时候就需要去找对应LY尺寸的焊盘封装。4. 速度等级-062E速度狂飙这是体现这颗芯片身价的地方。-062代表的是这颗芯片的最小时钟周期时间$t_{CK}$是 0.625 ns纳秒。我们可以用物理公式把它换算成你能看懂的频率核心物理时钟频率 $1 \div 0.625\text{ns} 1600\text{ MHz}$因为它是DDRDouble Data Rate双倍数据速率在时钟的上升沿和下降沿都传数据所以等效数据传输速率 $1600\text{ MHz} \times 2 \mathbf{3200\text{ MT/s}}$末尾的E通常代表这颗芯片的 CAS 延迟时序CL-tRCD-tRP是 22-22-22。总结你的 DDR4 芯片如果以后别人问起你板子上的这颗MT40A512M16LY-062E是什么来头你可以非常专业地回答他“这是一颗镁光的 DDR4 内存颗粒单片容量 8Gbit (1GB)数据位宽 16位速度高达 DDR4-3200。”3.MT40A512M16HA-083EDDR4这颗MT40A512M16HA-083E和你上一节课看的LY-062E可以说是“同父异母的亲兄弟”。既然你已经掌握了拆解法我们直接“找茬”看看它俩到底哪里一样哪里不一样1. 完全相同的部分前半段MT40A512M16你现在绝对可以一眼看穿这前半截了MT40A镁光出品标准 1.2V 电压的 DDR4。512M16数据位宽 16 bit深度 512M。容量不变单片依然是8Gbit (1GB)。大楼结构不变依然是 2 个 Bank Group总共 8 个 Bank16 根行地址线64K 行10 根列地址线1K 列。所以在逻辑控制和容量上这两颗芯片是完全等价的代码尤其是控制器的寻址逻辑可以直接通用。2. 核心差异后半段HA-083E这两颗芯片最大的区别在于物理封装和速度等级。差异一速度变慢了-083Evs-062E这是这颗芯片最重要的身份标识。-083代表它的最小时钟周期时间$t_{CK}$是0.833 ns。计算核心频率$1 \div 0.833\text{ ns} \approx 1200\text{ MHz}$等效数据速率因为是双倍数据速率DDR所以 $1200\text{ MHz} \times 2 \mathbf{2400\text{ MT/s}}$。末尾的E在镁光的 2400 速率档位中通常代表 CAS 延迟CL为 16即时序 16-16-16。对比结论你上一节课看的-062E是高达 3200 MT/s 的极速版而这颗-083E是2400 MT/s的标准主流版。如果你的 FPGA 系统不需要那么高的数据吞吐量用这颗芯片成本会更低时序收敛也更容易做。差异二封装与内部晶圆版本HAvsLYHA同样是镁光的 96-ball FBGA96球栅阵列封装。不同的字母通常代表了不同的晶圆代数Die Revision、制程工艺或者微小的物理尺寸差异比如厚度是 1.2mm 还是 1.1mm。在实际画 PCB 板时虽然它们都是 96 根引脚但硬件工程师通常需要重新核对一下HA的具体焊盘尺寸确保贴片时不会出偏差。总结这颗芯片用一句话给MT40A512M16HA-083E贴上标签“这是一颗单片 1GB、16位宽的镁光 DDR4它的速度是 DDR4-2400比上一颗稍微慢一点但容量和寻址结构一模一样。”4.区别在从 256M 跨越到 512M 的这道数学题里真正让容量翻倍的功臣就是那多出来的第 16 根行地址线A15。1. 容量翻倍的真相多了一根线在总深度的计算公式Bank数量 × 行数 × 列数中DDR3 (MT41K256M16)8 个 Bank15 根行地址线32K 行10 根列地址线1K 列。DDR4 (MT40A512M16)依然是 8 个 Bank依然是 10 根列地址线1K 列。唯独行地址线变成了16 根64K 行。因为 2^16 刚好是 2^15 的两倍行数从 32,768 直接翻倍到了 65,536。所以DDR3 深度 8 × 32K × 1K 256MDDR4 深度 8 ×64K× 1K 512M你的结论完全正确容量从 512MB 升级到 1GB物理层面上就是通过增加了一根行地址线来实现的。2. 那为什么还要特意引入 Bank Group既然 Bank 的总数都是 8 个为什么 DDR4 非要把这 8 个 Bank 拆成“2 个 Bank Group × 4”呢这其实是 DDR4 为了提速而做出的妥协与创新。在 DDR3 时代8 个 Bank 是平铺的。当控制器连续读取不同 Bank 的数据时内部的电路需要一定的切换时间这个时间叫tCCD。随着频率越来越高这个切换时间成了巨大的瓶颈。DDR4 设计师想出的妙招就是“分组Bank Group”把你刚才算出来的 512M 深度分到 2 栋独立的大楼Bank Group里。如果你连续读取的数据在同一栋大楼的不同单元同 BG不同 Bank切换速度比较慢tCCD_LL 代表 Long。如果你连续读取的数据在两栋不同的大楼不同 BG因为两栋楼有独立的通道切换速度极快tCCD_SS 代表 Short。总结容量的翻倍靠的是多了一根行地址线。而引入的Bank Group解释的是为什么在容量翻倍、频率飙升的情况下DDR4 还能跑得更快。