[转帖]从DDR到DDR4,内存核心频率基本上就没太大的进步!

ddr,ddr4,内存,核心,频率,基本上,太大,进步 · 浏览次数 : 0

小编点评

## 核心频率的改变 核心频率是内存电路的震荡频率,它是内存工作基础的基石。它与内存的速度和性能密切相关,但近年来其实质性变化不大。 * **SDR时代:**核心频率在133MHz~200MHz之间徘徊,主要通过提升内存电路的频率来提高性能。 * **DDR2时代:**核心频率提升到200MHz,并通过Prefech提升提高到核心频率的4倍。 * **DDR3时代:**核心频率进一步提升到8倍,并通过Bank Group设计进一步提升到16倍。 * **DDR4时代:**核心频率继续提升,目前主流的DDR4内存的核心频率可以达到1067MHz。 **核心频率的影响:** * 数据传输的速度 (Speed) 和数据带宽 (Data Width) 是内存速度的两个关键指标。 * 核心频率是数据传输的频率,它直接影响数据传输的速度。 * 核心频率也是内存电路的震荡频率,它会影响内存的延迟。

正文

 

从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR、DDR2、DDR3、DDR4四个大的规格时代了(DDR5现在也出来了)。内存的工作频率也从DDR时代的266MHz进化到了今天的3200MHz。这个频率在操作系统里叫Speed、在内存术语里叫等效频率、或干脆直接简称频率。这个频率越高,每秒钟内存IO的吞吐量越大。但其实内存有一个最最基本的频率叫核心频率,是实际内存电路的工作时的一个振荡频率。它是内存工作的基础,很大程度上会影响内存的IO延迟。我今天想给大家揭开另外一面,这个叫核心频率的东东其实在最近的18年里,基本上就没有什么太大的进步。

内存Speed

在Linux上可以查看到你机器上内存的Speed。

# dmidecode | grep -P -A16 "Memory Device"
Memory Device
Array Handle: 0x0009
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM02
Bank Locator: BANK02
Type: Other
Type Detail: Unknown
Speed: 1067 MHz
Manufacturer: Micron
Serial Number: 65ED91DC
Asset Tag: Unknown
Part Number: 36KSF1G72PZ-1G4M1
......

上述命令可以看出每一个插槽上内存物理设备的情况,由于结果太长我只抽取了其中一个内存的信息列了出来。对于我们开发者来说,其中有两个数据比较关键。

  • Speed: 1067 MHz: 每秒能进行内存数据传输的速度,
  • Data Width: 64 bits: 内存工作一次传输的数据宽度

我的机器上所有的内存条的Speed都是1067(大家别笑话,因为我的测试机器是线上过保淘汰下来的机器,所以老了一点点)。 把Data Width和Speed相乘后得到的就是数据带宽了。我们把历史上各个阶段的内存的Speed和带宽汇总了一下,如下图。

 

图1 各代内存频率

内存背后的秘密-核心频率

通过Linux我们只看到了内存的一个Speed,它是数据传输的频率。这个频率又叫Data Speed,或等效频率。各个商家在内存的销售页面上也把这个频率标在特别明显的位置,提醒消费者他家的内存有多快多快。但其实从内存条的技术参数上来讲,有个最为重要的频率,是核心频率,它是内存电路的震荡频率,是内存一切工作的基石。

我们来看一下各代内存的更全面详细的数据。

图2 各代内存的核心频率与技术提升手段

我汇总了从SDR时代,一直到目前主流的DDR4的内存的频率表对比。大家可以看到核心频率已经多年没有实质性进步了,这是受物理材料的极限限制,内存的核心频率一直在133MHz~200MHz之间徘徊。我们所看到的内存Speed是在这个核心频率的基础上,通过各种技术手段放大出来的。之所以我们感觉内存在越来越快,就是放大技术手段在不断进步而已。

  • SDR时代:在最古老的SDR(Single Data Rate SDRAM)年代里,一个时钟脉冲只能在脉冲上沿时传输数据,所以也叫单倍数据传输率内存。这个时期内存的提升方法就是提升内存电路的核心频率。
  • DDR时代:但是内存制造商们发现核心频率到了200MHz再提升的话,难度就很大了。所以在电路时钟周期内预取2bit,输出的时候就在上升期和下降期各传输一次数据。所以核心频率不变的情况下,Speed(等效频率)就翻倍了。
  • DDR2时代:同样是在上下沿各传一次数据,但将Prefech提升为4,每个电路周期一次读取4bit。所以DDR2的Speed(等效频率)就达到了核心频率的4倍。
  • DDR3时代:同样也是上下沿各传一次数据,进一步将Prefect提升为8。所以DDR3的等效频率可以达到核心频率的8倍。
  • DDR4时代:这时预取的提升已经非常困难,所以和DDR3一样,Prefech仍然为8。内存制造商们又另辟蹊径,提出了Bank Group设计。允许各个Bank Group具备独立启动操作读、写等动作特性。所以等效频率可以提升到核心频率的16倍。
内存还有个概念叫IO频率、也叫时钟频率。简单理解为将DDR内存的Speed频率除以2,就是内存的IO频率。这个必须和CPU的外频相匹配才能工作。例如对于DDR3来说,假如核心频率133Mhz的内存工作频率下,匹配533MHz的CPU外频,其IO频率就是533Mhz。数据传输因为上下沿都可以传,所以是核心频率的8倍,也就是1066MHz。

我曾试图在Linux下找到能查看核心频率和IO频率的命令,但是没有找到,在售的各种内存条似乎也很少会提及它。 但我们是IT从业人员,非普通用户。因此我觉得大家有必要来了解这个原理。(事实上,这两个频率会影响后面讨论的内存的延迟参数,而延迟参数又决定了内存的真正性能)

汇总一句话,内存真正的工作频率是核心频率,时钟频率和数据频率都是在核心频率的基础上,通过技术手段放大出来的。内存越新,放大的倍数越多。但其实这些放大手段都有一些局限性。比如你的内存数据存储并不连续,这时候DDR2、DDR3的数据预取对你帮助并不大。再比如你的进程数据都存在一个Bank Group里,你的进程内存IO就根本不会达到DDR4厂家宣传的速度。

扩展知识:内存延迟

除了频率以外,内存还有几个比较重要的参数,但是同样在Linux里没有找到查看的命令。内存的销售页面想找到这几个参数也不是特别容易。

所有的内存条都有CL-tRCD-tRP-tRAS四个参数。其中最重要的是CL-tRCD-tRP这三个参数,只要你费点劲,所有的在售内存你都能找到这3个值。例如经典的DDR3-1066、DDR3-1333及DDR3-1600的CL值分别为7-7-7、8-8-8及9-9-9。现在京东上一条比较流行的台式机内存金士顿(Kingston)DDR4 2400 8G,其时序是17-17-17。

第四个参数有时候会被省略。原因有二,第一:现在的开发者不需要直接和内存打交道,而操作系统呢又做的比较内存友好,很少会有这个开销真正发生。第二,这个开销的值要比其它的值大很多,实在不太好看。商家为了内存能多卖一些,干脆就避而不谈了。

好了,问题来了。为什么内存越进步,延迟周期反而会变大了呢?
这就是因为标示延迟周期数是用延迟时间除以内存时钟周期(Speed/2)得出来的。这其实不算太科学,最直接的办法应该是用延迟时间来评估。延迟时间很大程度上是受内存的核心频率的制约的。而这些年核心频率又基本上没有进步,所以延迟时间也不会有实质的降低。假定延迟时间不变,而时钟周期翻倍了,这样延迟周期看起来就是新的内存更大。

今天就带大家了解到这里,后面我会用实验来让你理解你的内存的实际延时。

欢迎关注个人公众号“开发内功修炼”,打通理论与实践的任督二脉!

与[转帖]从DDR到DDR4,内存核心频率基本上就没太大的进步!相似的内容:

[转帖]从DDR到DDR4,内存核心频率基本上就没太大的进步!

https://zhuanlan.zhihu.com/p/84194049 从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR、DDR2、DDR3、DDR4四个大的规格时代了(DDR5现在也出来了)。内存的工作频率也从DDR时代的266MHz进化到了今天的3200MHz。这个频率

[转帖]远超DDR4,速度可达DDR5 6400!DDR5内存技术、产品解析

https://www.sohu.com/a/326810241_616364 内存是计算机技术的重要组成部分,经历了长时间的竞争更替和路线选择之后,PC内存技术被稳定在以DDR技术为基础的发展路线上。从DDR到DDR2、DDR3,今天主流的内存已进化至DDR4。乐观估计,DDR5将从2019年起降

[转帖]一代更比一代强!一文带你回顾DDR内存的前世今生

根据冯诺·依曼结构,计算机中要有存储器。所以直到今天,内存和硬盘仍然在电脑中占有非常重要的地位。与大容量的硬盘不同,内存在存取速度上有着非常惊人的表现,但是断电后又不能保存存入的信息。因此在电脑硬件长期的发展过程中,内存一直扮演着中转站的角色。和其他硬件一样,内存遵循着摩根定律,从最远古的SIMM到

[转帖]从生命周期的角度来谈谈Oracle 软件的版本(12c/18c/19c/20c/21c)问题

2022-04-21 20:3720050原创Oracle 19c 本文链接:https://www.cndba.cn/dave/article/107944 在2017年之前,Oracle 的版本路线是非常清晰的,我接触过的几个版本有:9i、10g、11g、12c。 但是到了2018年之后,Ora

[转帖]从《Why I Left Facebook》扯到蘇東坡《卜算子》

https://blog.mygraphql.com/zh/notes/wu/career/jerks/why-i-left-facebook/ 前段时间,由于要研究一个 TCP 接收缓冲区大小配置的问题,搜索到了一编 Blog: A TCP Timeout Investigation。 感觉 Bl

[转帖]从性能问题定位,扯到性能模型,再到 TCP - 都微服务云原生了,还学 TCP 干嘛系列 Part 1

https://blog.mygraphql.com/zh/posts/low-tec/network/tcp-flow-control-part1/ 引 本来想直接写理论、和实践分析的,但为了不 “赶客出門” 和不 TL;DR,还是以故事形式展开吧。语言要生动活泼。 故事的开始 话说,一次性能测试

[转帖]从Linux零拷贝深入了解Linux-I/O

https://aijishu.com/a/1060000000375591 作者:kevineluo,腾讯 CSIG 后台开发工程师 本文将从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程、优化手段以及实际应用。 前言 存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要

[转帖]从多核到众核处理器

其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多核处理器是2002年IBM推出的POWER4。当然,多核这个词汇的流行主要归功与AMD和Intel的广告,Intel与AMD的真假四核之争,以及如今的电脑芯片市场上全是多核处理器的事实。接下来,学术界的研究人员开始讨论未来成百上千核的处

[转帖]从VMware ESXI主机在线扩容到虚拟机磁盘扩容

一、需求 虚拟机磁盘空间不足,需要扩容,ESXI主机未接存储,且虚拟机磁盘模式均为“厚置备延迟置零”,主机仅剩余16GB存储空间,无法满足扩容需求,需要为ESXI主机的磁盘组进行扩容。 操作过程:插入物理磁盘–>配置磁盘RAID–>ESXI存储扩容–>虚拟机添加硬盘–>linux lvm扩容。 整个

[转帖]从下往上看内存

1 内存条、总线与DMA 计算机组成中内存或者叫主存是非常重要的部件。内存因为地位太重要,所以和CPU直接相连,通过数据总线进行数据传输,并通过地址总线来进行物理地址的寻址。 除了数据总线、地址总线还有控制总线、IO总线等。IO总线是用来连接各种外设的,例如USB全称就是通用串行总线。再比如PCIE