Essence 发表于 2021-11-12 12:02

解读谜一般的NVMe SSD温度数据

NVMe固态硬盘的温度读数很迷。有些软件按照机械硬盘的习惯评价NVMe SSD,动不动就提示硬盘过热。另一方面,似乎是为了避免软件报警,又有部分NVMe SSD似乎习惯性虚报低温:以致于“夏天能制冷”。


NVMe SSD报告的温度数据为何如此不靠谱?正常的标准应该是怎样的?

首先要明确的是,NVMe SSD中不同部件的温度差异是很大的,主控是最大发热源,但触发过热限速通常跟闪存温度有关,闪存实际是被主控给烤热的(所以我们能够看到西数SN550等SSD会刻意拉开主控和闪存颗粒的距离)。


我们通过CrystalDiskInfo或其他工具软件检测到的是一个“综合温度”,下图中的311K(热力学温度)即38℃,它是整合了不同部件的一个综合值。

在三星等个别品牌的NVMe SSD中会提供第二温度读数,通过HWiNFO64可以查询到。这个温度通常是主控温度,也就是NVMe SSD最热点的温度。目前能提供第二温度读数的SSD相对较少。


那么接下来就是“综合温度”到底综合了哪些温度,又是如何综合计算出来的。在查阅英特尔的白皮书后我得到了不少有趣的信息。按照英特尔的介绍,NVMe将综合ASIC(主控)、NAND闪存、板载温度传感器和电源管理芯片传递的温度信息,这些原件的耐温极限各有不同。在下图中这个案例当中,发热量最高的主控能够耐受115度的高温,电源管理芯片也可以耐受105度高温,而NAND闪存的耐温值为85度。


英特尔的目标是将这四个不同的温度数据整合成以70度为基准的综合温度:分别计算各组件距离耐温上限的温度差值,用70减去最小的差值,得到最终的“综合温度”。譬如上图中的情况,综合温度=70-min[(115-89),(85-62),(70-58),(105-64),综合温度结果为58度。我们可以将这个综合温度和70度的标准上限做对比,来评估它距离过热还有多远。

在一些特殊极端情况下,NVMe SSD的温度会报告出“制冷效果”,原因就是组件耐温上限较高而当前温度较低,差值很大。下图中的例子就会报告出12度的综合温度,实际上各个组件中最低的温度也有24度。这并不代表SSD正在“制冷”,而是SSD在传达一个“我很舒适,距离过热还差的很远”的信息。



在消费级SSD测试的过程中我们发现,并不是所有SSD制造商都会遵循英特尔白皮书中的这套“综合温度计算方法”,所以最终体现出来的综合温度也是五花八门。很多时候没办法根据综合温度来判断SSD是否进入过热状态,还需要结合读写性能变化来确认。

相对来说三星等原厂SSD做的还是比较严谨的。以970EVO Plus为例,Smartmontools中可以查询到它的温控限制点是82度。



实际的温度压力测试中可以看到,最高温度确实正好被限制在83度以内,说明它的主控确实是按照显示的综合温度去执行温控的。用户根据这些信息能够在任意时间很容易地判断出SSD到底有无过热限速。



当然并不是所有NVMe SSD都会这样严谨,综合温度在50多度时就已经过热限速的也很多,Smartmontools中查询到的温度限制阈值也常常是和实际对不上号。好在家用电脑中持续高负载的情况不是很多,只要加装一个散热片通常就不会有过热引发的明显性能影响。

ssshjp 发表于 2021-11-12 13:19

说起来Fusion-IO的NVME盘变成了老大的散热片

苹果弄了个T2(要死一起死),啥时候PC也把这部分工作交给CPU

yhhuada66 发表于 2021-11-12 20:18

一直在台式机上用nvme固态,之前是盘插在转接卡插在pcie插槽里,现在傲腾800p直接插m.2插槽里,反正我个人从未关注过温度,也没有贴过散热片,也没有感觉到固态过热导致速度慢的,是不是太木了,哈哈

DGX 发表于 2021-11-12 22:07

U.2盘子表示夏天也没上过30度

eikeime 发表于 2021-11-14 20:53

固件 知道 各部件 温度 能做出对应决策就行了

墙上的另一块砖 发表于 2021-12-2 20:19

专业!领教 了

nazca001 发表于 2021-12-10 20:07

没人推广U.2,搞得来台式机也用M2

guangyunjian 发表于 2021-12-12 15:47

用过些盒子,80左右要卡死机,加散热片好多了。降速但不死了
页: [1]
查看完整版本: 解读谜一般的NVMe SSD温度数据