AMD芯片组如何开启AHCI/NCQ一直是颇有争议的话题,网上流传很多说法诸如
“开启NCQ后HD Tune磁盘信息特性复选框会变为填充块、看不到硬盘温度健康….
需要安装RAID驱动+RAIDXpert… WIN7集成的MSAHCI或AMD的独立AHCI驱动不能开启NCQ…“
然而此类说法欠缺有力数据支持,事实真的是这样吗?
下面我们将对提及的多款驱动进行测试验证。
----------------------------------------------------------------------------------------------------------------
测试
判别SATA控制器工作于何种模式这个比较简单,
通过AIDA64或设备管理器等查看SATA控制器的Class号即可
*IDE/RAID/AHCI controller(class code:0101/0104/0106)
测试结果:(图片都可点击放大)
1. IDE模式 AMD miniIDE Driver 5.2.1.78
2. AHCI模式 MSAHCI Driver 6.1.7601.17514
3. AHCI模式 AMD AHCI Driver 1.2.1.275
4. AHCI模式 AMD RAID Driver 3.1.1540.127(开启NCQ)
AHCI模式 AMD RAID Driver 3.1.1540.127(禁用NCQ)
5. AHCI模式 AMD RAID Driver 3.2.1540.75(开启NCQ)
AHCI模式 AMD RAID Driver 3.2.1540.75(禁用NCQ)
*CrystalDiskMark的相关技术名词:
Seq:连续读/写测试,区块大小为1024KB。
512K:随机读/写测试,区块大小为512KB。
4K:随机读/写测试,区块大小为4KB,队列深度为1。
4K QD32:针对NCQ和AHCI随机读/写测试,区块大小为4KB,队列深度为32。
----------------------------------------------------------------------------------------------------------------
从以上测试结果看,HD Tune的基准测试完全体现不出NCQ开启与否的差距。
在CrystalDiskMark的4K QD32测试项中
可以看到IDE和RAID驱动关闭NCQ的成绩很差,跟4K项之间差距非常小,由此可推断
4K与4K QD32差距大=NCQ生效
4K与 4K QD32差距小=NCQ未生效
非RAID驱动能否支持NCQ应该不用解释了吧。
下面谈谈驱动、RAIDXpert与注册表NCQEnableDiskIDBits值之间的关系
● RAID驱动安装后在对应注册表子键位置下可找到NCQEnableDiskIDBits,
32bit RAID驱动位置: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesahcix86sSettingsCAM]
64bit RAID驱动位置: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesahcix64sSettingsCAM]
另外在[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesamdsbsSettingsCAM]
也可发现NCQEnableDiskIDBits, 此值只有WIN7集成的amdsbs RAID驱动才会调用,如不使用该驱动这个可以无视。
● 非RAID驱动对应位置没有NCQEnableDiskIDBits。
● 正常情况NCQEnableDiskIDBits值直接决定NCQ的开关,该值随RAIDXpert下NCQ选项的更改而变化
对于老版本RAID驱动 (如 3.1.1540.127,默认值为0)
NCQEnableDiskIDBits值为0=关闭NCQ / 值为3=开启NCQ
新版RAID驱动 (如 3.2.1540.75,默认值ffffffff)
NCQEnableDiskIDBits值为 ffffffc=关闭NCQ / 值为ffffffff=开启NCQ
结论
1. WIN7自带MSAHCI、AMD独立AHCI与新版的RAID驱动默认自动开启NCQ,
2. 老版本的RAID驱动默认关闭NCQ,需要通过修改注册表NCQEnableDiskIDBits值或RAIDXpert来开启。
3. 如需测试开启NCQ后的效能请使用CrystalDiskMark、IOMeter等支持多线程/队列深度测试的工具。