一招完美解决SSD系统盘卡顿死机的问题!

时间:2022-07-09 08:11:06

小编自从在电脑上配备了一块SATA SSD作为系统盘, 电脑运行比之前的机械硬盘快了很多,浏览网页,玩游戏都很流畅了。

可是,最近小编发现电脑经常会出现卡顿,或者重启的时候会卡机,这让小编愉悦的心情平添了一丝失落。于是,小编觉得探索一下问题的根源。

根据小编处理SSD案例的经验,小编决定先通过SATA Trace看看,能否会找到问题的端倪。

接下来的任务就是搭建SATA tracer平台了,小编这里采用的是SerialTek SATA分析仪。

一招完美解决SSD系统盘卡顿死机的问题!

SATA分析仪的环境搭建完毕,开始录制fail时刻的SATA trace. 经过多次的复现操作,终于抓到了reboot卡机时的SATA trace, 如下图:

一招完美解决SSD系统盘卡顿死机的问题!

从上图抓到的SATA trace,我们看到在Device发送进入Slumber电源状态的请求后,Device就进入了休眠。然后之后却一直没有收到Host的唤醒动作。在这里我们也可以推测得到一个信息,Device启动了DIPM电源管理功能。

说到这里,估计很多朋友开始有疑惑,“小编,怎么看懂这个图呢?”

首先,解释几个关键的名词:

1,Slumber:为了节能环保,在SATA协议中,提供了两种低功耗的电源模式,分别是Partial和Slumber。其中,Partial状态下,功耗大约在75W, 而Slumber是更深度的低功耗电源状态,功耗大约只有25W。

2,DIPM: 全称是Device Initiated Link Power Management,翻译一下,设备触发链路电源管理。也就是由Device发起进入Partial或者Slumber电源状态的请求。在上图抓到的Sata trace中,我们看到有一个参数叫做PMREQ_S, 这个代表Device请求进入Slumber电源状态。

我们再来看看,正常的reboot SATA trace:

一招完美解决SSD系统盘卡顿死机的问题!

从正常的SATA trace来看,Device进入Slumber状态之后,后续Host有去唤醒Device。

所以,基于上面的分析,基本可以判断,系统reboot卡机应该是与DIPM功能与主板兼容性的问题。

找到的问题的根源,那我们就去解决它。

由于DIPM与主板存在兼容性的问题,那我就把DIPM关掉咯。方法有两个:

第一:通过厂商提供的量产工具,对SSD进行固件升级的同时,关闭DIPM功能。

第二:通过修改注册表,关掉DIPM功能。

注册表目录HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesamdsbsSettingsCAM下,将EnableDIPM改为0.

一招完美解决SSD系统盘卡顿死机的问题!


更多精彩内容,敬请关注头条号【存储随笔】获取更多活动内容。
同时,也可以关注公众号: 存储随笔,Memory-logger. 

一招完美解决SSD系统盘卡顿死机的问题!