查看原文
其他

DDR3 vs DDR4? 为什么说内存是个很傻的设备?DDR5在哪里?

wolf uefiblog UEFI社区 2022-09-05
点击上方“公众号” 可以订阅哦!

DDR4已经在市面上好几年了,DDR5的draft也已经起草完毕,它的支持已经在视线可及的地平线上。作为BIOS从业者,可以说内存初始化是BIOS中最重要的部分,也可以说是计算机系统里面最傻的设备。这个“傻”表现在它是完全被动的,所有活动全部需要内存控制器来指挥,自己并没有固件(排除最近的NvDIMM傲腾)。它的傻还表现在为了节约成本,增加容量,核心频率十数年没有提高。毕竟增加逻辑就要增加电路,会费电和提高成本;提高核心频率也会费电和提高成本;所有的一切都是能省则省。为什么这么傻的设备在这个世界还能够存活,我们还可以忍受呢?我今天就从DDR4到底比DDR3强在哪里,DDR5又有些什么特性可以期待来展开讨论。阅读前如果对DDR不了解可以参考这两篇文章:

内存系列一:快速读懂内存条标签

内存系列二:深入理解硬件原理

DDR3和它的先辈们

可以说DDR4是DDR系列从SDRAM脱胎以来,变化最大的一次。为什么这么说呢?如果我们看DDR3和它的前辈们的演变关系:

注意我红框标出的DRAM的核心频率基本不变,传输速度的提高是通过增加prefetch的位数(黄框)来做到的。例如同样是100MHz的核心频率,SDRAM一周期取一次,它和内存控制器的速度是100M T/s(这里的T是传输的意思);DDR上升沿下降沿各取一次,相当于2次prefetch,Bus速度变成200;DDR2变成4n prefetch,Bus speed变成400;DDR3,照此办理,8n带来了800。MT/s和带宽MB/s的关系参见:内存系列一:快速读懂内存条标签

DDRx的核心频率一直维持在100Mhz到266MHz的水平上,每代速度的提升都是靠倍增Prefetch的个数来达到的。我们看DDR2和DDR3的对照表:

DDR2,注意看Clock rate。(来源wikipedia,参考资料1)

DDR3,注意看cell array clock(来源wikipedia,参考资料2)

这么做有什么好处吗?当然最重要的是降低成本和省电了。如果看看内存颗粒里面的结构:

DDR2,4n prefetch

和外部Bus速度相同的是紫色部分(front end),而大片白色的部分(back end)都是工作在核心频率下,也就是100~266HMz下。低速带来了两个好处:

1.低频漏电流小,功耗低。

2.工艺简单,可以大规模堆量。

聪明的工程师从DDR开始不停的倍增prefetch,帽子戏法一而再,再而三上演,DDRx的外部总线带宽稳步提升,成本却提高不大,两全其美,太棒了。直到DDR4,这个故事不能够继续上演。

DDR4来了

DDR4当然和前代每次变化一样,降低了电压;增加了地址线Ax,所以可以支持更大容量。除此之外,有个明显的不同变化,prefetch的倍增停止了。

DDR4和DDR3一样,只有8n的prefetch,但为了提升前端Front End的总线速度,不得不在核心频率上动起了手脚:

DDR4,来源wikipedia(参考资料3)

核心频率不在徘徊在100~266HMz,直接200起跳,到400Mhz。因为核心频率提高,8bit的prefetch不变,总线速度才得以提升。

现在我给大家留一个思考题,为什么DDR3之前可以不停提高prefetch,而DDR4却不行了?这里给一点提示,和Cache line和BL(Burst Length)有关。我过一阵会公布答案,也欢迎在评论区留言。

DDR4还有个巨大且很有意思的改变,也和效能有关。那就是Bank Group:

图片出自参考资料4

随着Bank Group还带来了两个新Timings:tCCD_S和tCCD_L。CCD代表“Column to Column Delay”。S是Short,L是Long。每个Group都可以单独工作,一次完整的8n prefetch不需要等待另一个group,所以是短的delay,也就是tCCD_S,一般是4。Group内部,每次都要等待一个更长的时间,也就是tCCD_L,tCCD_L随不同频率各不相同。

如果我们的数据十分凑巧,都分布在不同的group中,Bank Group会带来巨大的性能提升。最好情况下,2个bank groups和16n prefetch的提升一样,4个bank groups和32n prefetch一样。如果我们的数据刚好都在一个bank group中,频率又十分高,最坏情况,bank group不会带来任何好处。借助Bank interleave,我们的实际情况一般在最好和最坏之间。

DDR4借助核心频率的提升和bank group,性能提升不少。即使PC4-12800和PC3-12800相比,无论功耗和性能,都有不少提高。

DDR5会带来什么?

DDR5的标准尚未公布,据悉会进一步降低电压,这当然是拜现在芯片工艺提升所赐。另外prefetch会进一步从8n prefetch变成16n prefetch。

有同学会问了,你刚才说了DDR4不能从8n变成16n,是碰到了巨大的问题。为什么DDR5又没有问题了呢?因为协议没有公布,等公布后我们再来回顾这个问题。

参考资料

[1]: https://en.wikipedia.org/wiki/DDR2_SDRAM

[2]: https://en.wikipedia.org/wiki/DDR3_SDRAM

[3]: https://en.wikipedia.org/wiki/DDR4_SDRAM

[4]: https://www.systemverilog.io/ddr4-basics


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存