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

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

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

老狼:内存系列一:快速读懂内存条标签zhuanlan.zhihu.com图标老狼:内存系列二:深入理解硬件原理zhuanlan.zhihu.com图标

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的关系参见:

老狼:内存系列一:快速读懂内存条标签zhuanlan.zhihu.com图标

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又没有问题了呢?因为协议没有公布,等公布后我们再来回顾这个问题。

最后再加个彩蛋,谁知道题图是哪种内存(UDIMM / RDIMM / LPDIMM / LRDIMM / FBDIMM,等等),为什么?请留言,谁先猜出来,会推荐成精彩评论哦。

其他内存相关文章:

老狼:服务器最大内存是多少?制约因素有些什么呢?zhuanlan.zhihu.com图标老狼:神秘消失的内存去哪了?zhuanlan.zhihu.com图标老狼:内存系列一:快速读懂内存条标签zhuanlan.zhihu.com图标老狼:内存系列二:深入理解硬件原理zhuanlan.zhihu.com图标老狼:内存系列三:内存初始化浅析zhuanlan.zhihu.com图标老狼:为什么现在的电脑都这么吃内存?zhuanlan.zhihu.com图标老狼:内存条应该怎么插?为什么要从远端插起?不遵循为啥还可以work?有啥副作用?zhuanlan.zhihu.com图标老狼:16个内存小问题,一次全部回答!zhuanlan.zhihu.com图标老狼:内存的容错设计是怎样的?内存容量比你看到的更大!zhuanlan.zhihu.com图标老狼:Win10任务管理器中的"专用GPU内存"是怎么回事?“共享GPU内存”又是什么?zhuanlan.zhihu.com图标老狼:单根内存条的极限容量是多少?内存条上的2R X 8代表了什么意思?zhuanlan.zhihu.com图标

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

用微信扫描二维码加入UEFIBlog公众号

参考资料:

[1]: en.wikipedia.org/wiki/D

[2]: en.wikipedia.org/wiki/D

[3]: en.wikipedia.org/wiki/D

[4]: systemverilog.io/ddr4-b

编辑于 2019-04-12

文章被以下专栏收录

    从首次运用于Intel 安腾处理器,到第一版统一的可扩展固件接口(UEFI)规范出版,无论是在高性能服务器,移动设备或是深度嵌入式设备等,UEFI已在所有平台完全淘汰了BIOS。这里有关于UEFI的一切。