正文内容 评论(0)
[服务器模组中的ECC和Registered]
服务器所承担的都是关键性任务,往往要求24小时×365天的不间断运行,而且不允许中途故障频出或者频繁重启,对可靠性和稳定性两项指标要求极为苛刻。但PC机就简单得多,系统崩溃重启即可,每天开机时间多数不超过10小时。截然不同的应用实际决定了二者在内存技术上的差异,服务器内存拥有ECC和Registers功能,而针对PC的普通内存条则没有这两项技术,那么它们究竟起到什么作用呢?
ECC校验功能
ECC校验功能大家应该比较熟悉,在许多地方都有它的踪迹。ECC功能所起的作用就是检查数据在传输过程中是否出错,一旦发现接收到的数据错误就立刻将它抛弃,并命令对方重新发送一次。这种机制可以有效减少服务器的故障率,倘若数据在传输中出错却没被检查出来,CPU使用错误的数据后很可能出现更严重的错误,造成系统意外崩溃的情形。虽然在日常应用中这种情况极少出现,但服务器在高负载、长时间不间断运行的状态下,数据出错就难免了,因此对这些领域来说,内存模组拥有ECC校验功能是必不可少的。ECC的实现原理较为简单,它在每个字节中增加一个校验字位,并以此为基础来判断数据正确与否。我们可以看到,普通DDR/DDR2内存模组都为64bit位宽,而ECC模组的位宽达到72bit,多出的8bit其实就是校验位。另外,我们必须明确一个概念,ECC只能对数据包进行检查,判断数据是否正确,如果发现错误便让对方重发,而不是直接修复数据。目前,具有错误自动修复功能的内存只有在某些大型计算机、军用战机、人造卫星、空间探测器、火星车等高精尖设备中才会用到。
ECC功能由模组中附加ECC校验芯片来实现,但要让ECC发挥作用还离不开内存控制器的支持,目前针对服务器的芯片组均可支持该项特性。一般ECC校验只能检查出1bit的数据错误,但如果内存控制器设计得足够强大,ECC机制也可以侦测到一个字节数据中多个比特位同时出错的情形。
Registers功能
Registers通常与ECC概念被一并提起,不少人甚至认为二者都是纯粹的错误校验。其实,Registers的概念与ECC大不相同,它指的是信号的重新驱动(re-driving)过程—在很多时候,内存中保留的数据经过多次刷新之后有可能出现失真,代表二进制数据的电平信号发生偏差。一旦出现这种情况,很容易导致数据传输出错的情形,而Registers所起到的其实是一个事前预防的作用。拥有Registers功能的内存模组,可以通过重新驱动控制信号来改善内存的运作,提高电平信号的准确性,有助于保持系统长时间稳定运作。不过,因为Registers的信号重驱动需花费一个时钟周期,延迟时间有所增加,因此它的实际性能会稍低于普通内存,相当于以性能换取稳定性。
Registers功能同样要由专门的芯片实现,它承担信号重驱动的控制职能。由于工作方式不同,有无Registers功能的两种模组是不能混用的。
ECC Registers功能的168-pin SDRAM,图中上部方框所示为Registers芯片。
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...