
谢邀。实际上内存条可以达到很高的温度,而且有很多内存都有温度传感器。在内存密度很大的服务器上,内存条温度的检测和高温处理是个需要严肃处理的问题,它的内存条大都带有散热片:
那么为什么我们一般都只看到CPU和硬盘温度,而和题主一样没有听说内存温度呢?今天我们来一起了解一下内存条的温度传感器相关标准和读取方法,高温处理方法,心急的同学可以直接看结论。
早在DDR3的时候,它的标准制定组织JEDEC,就在标准中加入了温度传感器的内容。对于RDIMM等服务器内存和ECC DIMM来说,这是个强制标准,意味着必须要有。而对于一般大家喜闻乐见的台式机内存没有ECC的UDIMM,就只是可选的了(optional)。这是考虑到普通用户内存条比较少,内存操作不够频繁,内存数据不是"那么"珍贵,另外一方面对价格比较敏感的原因。从那以后,ECC或者RDIMM等等内存都带有温度传感器,UDIMM就各凭良心了。
温度传感器大都是专门的一块小小芯片,它就在DIMM上面:
当然位置不是绝对的。芯片目前市面上有好几种,大家知道就好。
读取方法和读取内存条的SPD内容一样,都是通过Smbus。SPD(serial presence detect)是一块EEPROM
上面存贮这DIMM的厂家、时序等等内容,详见:老狼:内存运行频率是由谁决定的?
SMBus,我打算单独写篇文章详细介绍,这里只要知道它是一种I2C总线的扩展,但是加入了多Host的内容。它是一种低速,高可扩展总线,主要用来读取和配置一些硬件信息。
如果高温了怎么办?实际上,服务器内存高温了,会和CPU一样通过改变占空比来降温,也会改变带宽,就是OLTT和CLTT,如果大家感兴趣请留言,人多的话我会专门讲一下。这个是服务器高可用性RAS特性的一部分。而台式机BIOS就几乎没有任何相关处理,有些超频的内存在高温后,往往出现数据错误,蓝屏了事。
内存条不但有温度传感器,而且还很重要。只不过大家经常见到的台式机UDIMM因为成本的考虑而缺席了。注意我说的ECC DIMM这是必须项,所以E3等HPC就包含温度传感器,如果你碰巧有,可以安装些软件测量一下,如AIDA64等。
欢迎大家关注我的专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!
