为什么服务器内存硬件上的黑色颗粒这么多?
创始人
2025-01-20 10:04:53
0

大家好,我是飞哥!

之前有位读者问我为什么服务器内存上有这么多的颗粒,今天我专门就这个话题成文一篇作为回复。

各位从事服务器端开发的同学天天都在开发代码,代码都需要内存。确实了解一下服务器内存硬件是挺有有必要的。

所以我特地找来了一个服务器内存条来。下图是一个 32 GB 服务器内存条的正面和反面图。

0778573103bffbab786b49db585f85ab.png8e2c94e30a7e9ebe62d81d6409f83726.png

可见服务器内存上有很多的黑色颗粒,相比下面的台式机内存颗粒要多很多。

532b6a28703610d366f6ff27eb1a66e5.png

今天我们就专门写一篇文章来给大家解释为什么服务器内存中颗粒更多的原因。

原因1:服务器内存需要 ECC 功能

在开篇所示的内存正面有着一串字符串标识32 GB 2R\*4 PC4-2666V-RB2-12-DB1

在这段标识中,第一段的 32 GB,是内存的容量大小。第二段后面的 2R*4 我们在《理解内存的Rank、位宽以及内存颗粒内部结构》一篇文章中也介绍过了,2R:表示该内存有 2 个 Rank,*4:表示每个内存颗粒的位宽是 4 bit。

不过按照这个位宽参数,每个 Rank 只需要 16 个内存颗粒就够了,2 个 Rank 需要 32 个 Chip 内存颗粒就够了。

而我们上图中的内存正面有 19 个 内存颗粒,背面有 18 个内存颗粒。19 + 18 = 37 个黑色颗粒

这是因为服务器区别于普通的台式机电脑,需要 ECC 纠错功能,以及 RDIMM/LRDIMM 在内存颗粒中加入寄存器模块,使得内存的频率更高(频率高的内存性能就会更好),容量更大。

DRAM 内存是一种易失性的存储,它是不能 100% 保证存储的数据不发生变化的。一根 8 GB 的内存条平均大约每小时会出现 1 - 5 个比特翻转错误。

我们个人在办公的时候,由于内存主要都用来处理图片、视频等数据。即使内存出现了比特翻转,可能影响的只是一个像素值,没有太大的影响,也很难感觉出来。

在服务器应用中,处理的一般都是非常重要的计算,可能是一些推荐计算,也可能是一笔订单交易,对出错的容忍度是很低的。另外一台服务器经常是连续要运行几个月甚至是几年。因此总的来说,服务器对稳定性的要求极高,不允许比特翻转错误发生。

ECC 是一种内存专用的技术。它的英文全称是 “Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”。从它的名称中我们可以看出,ECC 不但能发现内存中的错误,而且还可以进行纠正。

在实现上,ECC 内存会板上额外再添加内存颗粒来专门负责检查错误并纠正错误。

0483e24746ac1dd74e22bba41c891205.png86dbaad323a70fbdfa4fa5704d790bb3.png

带 ECC 功能的内存,需要为 CPU 同时提供 72 位的读写,其中 64 位是数据,另外 8 位用于 ECC 校验。

3eb00f90e90d67583e50505e32994724.png

我们开篇提到的内存的颗粒。

  • 位宽是 4,为了提供 8 位的 ECC 校验数据,每个 Rank 需要额外 2 个内存颗粒来存储 ECC 数据。所以每个 Rank 总共需要 16 + 2 = 18 个内存颗粒。

  • Rank数量是2,所以总共需要 18 * 2 = 36 个内存颗粒来存储用户数据以及校验位

原因2:RDIMM 地址信号缓存

上一小节我们对开篇内存计算其包含 ECC 功能后总共需要 36 个内存颗粒,而在图片中我们实际看到有 37 个黑色颗粒。

这个多出来的一个颗粒是做地址等控制信号缓存的。

服务器一般采用的是 RDIMM(带寄存器双列直插模块)或者 LRDIMM(低负载双列直插内存模块)。无论是 RDIMM 还是 LRDIMM,都比普通的内存要多一个带寄存器的时钟驱动器(RCD)模块。

598f87816258ed65c9e87c13f32e6fc2.png

RCD从主机存储器控制器获取命令地址总线、控制信号和时钟信号,然后将这些信号流扇出到DIMM上的DRAM。所有的信号通过RCD进入RDIMM后都会重新计时和清理。

从开篇的图中,我们确实也找到了这个模块。

b89c8d6d55bd338e50eab11b245fc6ef.png

有了这个模块的支持,能显著降低信号干扰,进而大幅提升稳定性。这样单条内存的容量可以做到更大一些。

原因3:LRDIMM 数据信号缓存

另外还有就是对于大内存的服务器,可能 RDIMM 提供的单条内存容量还不够,还需要更大。

LRDIMM 相比 RDIMM 在引入寄存缓存器 RCD 的基础上,又进一步引入了数据缓冲器 DB(Data Buffer)。

引入DB数据缓冲器作用是缓冲来自内存控制器或内存颗粒的数据信号。实现了对地址、控制信号、数据的全缓冲。这种内存价格更贵,但可以支持更大容量。

ab3d76dce5cc9234771e262fced25025.png

如下是一个 LRDIMM 的实物图。

964c50b47a55fd38fb0a958546fcde20.png

简单总结一下,服务器内存硬件上颗粒数量更多的原因有3个

  • 需要 ECC 功能,需要比普通内存多 1/8 的颗粒数来支持 ECC

  • 需要 RCD 模块降低地址等控制信号干扰影响,将单条容量做到更大

  • 需要 DB 模块降低数据信号干扰影响,进一步将单条容量提高

想深入了解 RDIMM 和 LRDIMM 原理的话,我推荐大家一个 youtube 上的视频,我觉得讲解的非常清楚。视频地址:https://www.youtube.com/watch?app=desktop&v=opR0pARpieg

好了,本期分享到这里。飞哥通过「开发内功修炼」陪你一起在技术之路上成长!

1ae7ee95479bdd76d6872a0f8b2580bf.png

相关内容

热门资讯

四分钟辅助(九酷互娱辅助)确实... 四分钟辅助(九酷互娱辅助)确实有挂(详细辅助解说技巧);1、任何九酷互娱辅助ai辅助神器的玩家都可以...
六分钟了解“传送屋app辅助下... 六分钟了解“传送屋app辅助下载”原来有挂(辅助挂)详细辅助可靠技巧;进入游戏-大厅左侧-新手福利-...
第5分钟辅助!多乐辅助器免费版... 第5分钟辅助!多乐辅助器免费版(辅助挂)最初存在有挂(详细辅助力荐教程)(1)第5分钟辅助!多乐辅助...
透视好牌!西元红河脚本,情怀宜... 1、透视好牌!西元红河脚本,情怀宜春辅助挂定制交易平台,揭秘教程(有挂透视)。2、情怀宜春辅助挂定制...
第九分钟辅助(泸州大二实战技巧... 第九分钟辅助(泸州大二实战技巧)其实是真的有挂(详细辅助必赢方法);1、泸州大二实战技巧ai机器人多...
科技新动态“蜀山四川小程序脚本... 科技新动态“蜀山四川小程序脚本”原来存在有挂(辅助挂)详细辅助我来教教你1、系统规律教程、辅助透视等...
第3分钟辅助!创思维正版辅助器... 第3分钟辅助!创思维正版辅助器(辅助挂)一贯有挂(详细辅助德州论坛)您好,创思维正版辅助器,确实是有...
透视挂!九九山城插件程序,神途... 透视挂!九九山城插件程序,神途游戏辅助软件,技巧教程(有挂技巧);支持2-10人实时对战,虚拟庄家发...
四分钟辅助(丫丫辅助器)切实是... 四分钟辅助(丫丫辅助器)切实是有挂(详细辅助必胜教程);1、丫丫辅助器系统规律教程、丫丫辅助器辅助透...
第五分钟辅助!广东闲来辅助器(... 第五分钟辅助!广东闲来辅助器(辅助挂)从来真的是有挂(详细辅助必备教程)是一款可以让一直输的玩家,快...