登录注册.
高级搜索  

作者 主题: 12--解开NCQ情结 <2011-4-6>  (阅读 1667 次)

0 会员 以及 1 访客 正在阅读本主题.

gogochen

  • 访客
12--解开NCQ情结 <2011-4-6>
« 于: 八月 08, 2014, 01:00:06 上午 »

解开NCQ情结

dong-bei 发表于 2011-4-6

自从SATAII标准引入NCQ以来,很多电脑用户都试图启用NCQ以提高硬盘性能,结果发现硬盘性能并没有明显提高。于是纠结NCQ用户也就源源不断。本文目地就是要解开NCQ情节。

一、AHCI和NCQ常识

AHCI的英文全称是Serial ATA Advanced Host Controller Interface,中文的意思是“SATA高级主控接口”。AHCI本质是一种PCI类设备,在系统内存总线和SATA设备之间扮演一种通用接口的角色(即它在不同的操作系统和硬件中是通用的)。AHCI的最大特色是支持2种高级SATA 功能,就是“本机命令队列”和“热插拔”。
NCQ的英文全称是Native Command Queuing,中文意思是“本机命令队列”。NCQ技术是SATAII标准规定的一种属于AHCI的SATA高级功能。当SATA控制器启用AHCI接口时,“本机命令队列”和“热插拔”就自动启用了,安装操作系统时加载AHCI驱动后就开始了NCQ,不需要在系统下通过软件开启。
热插拔就是使SATA硬盘像U盘一样可以在开机状态下插拔,使SATA硬盘成为移动存储设备,一般叫做e-SATA。
       
二、AMD主板的NCQ情结

1、RAIDXpert看不到磁盘的情结
还在AMD的SB7xx南桥时代,有人发现AMD的RAIDXpert软件有启用NCQ的设置项,并在媒体上发文:“注意:780G开NCQ必须安装RAIDXpert才能真正开启!” (http://itbbs.pconline.com.cn/diy/9708137.html),“实战!借助AMD RAIDXpert WINDOWS下开启NCQ” (http://mb.yesky.com/273/8807773.shtml)。很多网友看过此文便纷纷效仿。
现在AMD的南桥进展到SB8xx,有些网友发现安装RAIDXpert软件看不到磁盘了。于是有人发帖子“WIN7下的AMD RAIDXpert看不到硬盘”(http://nga.178.com/read.php?tid=3706362)。

2、RAIDXpert能不能看到磁盘根源是AMD的AHCI驱动
从AHCI驱动的加载方式区分,AMD提供的AHCI驱动有2种:软盘版驱动和安装版驱动。软盘版驱动可用于XP和WIN7,安装版一般用于WIN7。

2-1、软盘版驱动
这种驱动是安装XP时,敲F6键通过软盘加载。所以称之为软盘版驱动。软盘版的驱动一定要含有txtsetup.oem文件。安装XP时必须先加载,否则检测不到AHCI硬盘。加载方式可以用软盘,也可以先整合到XP系统安装盘。

随着芯片组的进步,软盘版驱动也不断更新。新版本覆盖老版本并支持以前的芯片组。在驱动的内容方面,新版本还可能与老版本有所差异。

先看SB7xx时代的软盘版驱动,驱动加载后在设备管理器除了能看到AMD AHCI Compatible RAID Controller外,还有一个AMD RAID 控制台。


AMD RAID控制台就是RAIDXpert软件的根基。有AMD RAID控制台,RAIDXpert就可以显示出硬盘。


SB8xx时代的软盘版AHCI驱动就没有了AMD RAID控制台。


没有AMD RAID控制台,自然也就不能支持RAIDXpert软件显示出硬盘了。


即使组建RAID,也不能显示硬盘。


2-2、安装版驱动
这种驱动一般是给WIN7用的,可以在系统下直接安装。由于WIN7自带AHCI(RAID)驱动,不先加载AMD的AHCI驱动也能安装系统。系统安装后可以安装AMD的AHCI驱动。


WIN7下安装这种驱动后,设备管理器看到的是AMD SATA Control。


同样没有AMD RAID控制台,当然也就不能支持RAIDXpert软件显示出硬盘了。


下面是SB7xx驱动和SB8xx驱动的版本差异。


开结:AMD的AHCI驱动有软盘版和安装版,只有SB7xx时代的软盘版驱动在设备管理器有AMD RAID控制台,也就能让RAIDXpert看到硬盘。

3、RAIDXpert真的能启用NCQ?

RAIDXpert是否真能启用NCQ?只有实践才能验证。
我们安装SB7xx软盘版AHCI驱动和RAIDXpert软件(2.4.1540.26版)。第一次启动RAIDXpert看到的“物理驱动器信息”是“已启用NCQ”,就是说NCQ已经启用了。


“写入缓存”也是“已启用”,2个关系到磁盘读写性能的选项,默认都是“已启用”,而设置项一个是“启用”一个是“禁用”。
现在都设置为“禁用”,“提交”后按道理“已启用”应该变为“已禁用”,但左侧的提示还是“已启用NCQ”和“已启用写入缓存”。


再都设置为“启用”,“提交”后,左侧的提示还是“已启用NCQ”和“已启用写入缓存”。

无论你怎么设置,RAIDXpert软件显示的NCQ和写入缓存都是“已启用”。

开结:即使RAIDXpert能看见磁盘,但既不能开启NCQ,也不能禁用NCQ。应该说RAIDXpert启用NCQ功能是个BUG。

4、软盘版驱动的加载

软盘版驱动可以在安装XP是通过软盘加载,也可以在XP下通过设备管理器更新驱动方式更换不同版本的AHCI驱动。当然安装WIN7时也可以在安装时通过U盘加载,也可以在安装后通过设备管理器更新驱动方式来更换不同版本的AHCI驱动。
这里介绍一下更新驱动的方法。事先准备好更换的驱动放在U盘或拷贝到硬盘。

右键-更新驱动程序软件


浏览计算机以查找驱动程序软件


从计算机的设备驱动程序列表中选择


从磁盘安装


浏览找到要更换的驱动,找到后“打开”


打开后再次提示,点“确定”


显示出驱动程序,点“下一步”


更换完成,驱动已经改变。


上面介绍的是WIN7的驱动更新,XP的更新于此相同。

三、Intel主板的NCQ情结

1、SATAII硬盘为何还是UDMA5模式?
这是沉淀于众多Intel主板用户心中一直挥之不去的情结。

从HD Tune的硬盘信息可以看到硬盘是支持UDMA6的,但是当前模式是UDMA5。

2、UDMA5的来由
这要从IDE硬盘的传输模式说起。IDE硬盘是并口模式,为了加快内存和硬盘交换数据,CPU发出读写命令后,硬盘和内存之间直接传输数据,不经过CPU,这种模式就叫DMA。DMA也发展了好几代,最后的叫UDMA6。

从上图可以看到IDE接口有16条(3-18)数据线,一次传送2个字节(2x8)的数据。UDMA6又叫ATA133。这个规格是硬盘厂商迈拓提出来的。当时Intel正联合硬盘厂商搞SATA标准,SATA传输速率起点就是150MB,已经高于133MB。但是迈拓独自搞了ATA133,Intel始终不承认,后来AMD、VIA和几个硬盘厂支持,也就列入ATA标准,定义为ATA133,UDMA6。但Intel到现在还不承认,它的芯片组支持IDE规格就到ATA100,也就是UDMA5。
这也就是所有Intel南桥的IDE以及后来的SATA的IDE模式始终是UDMA5的原因。
请注意这里说的UDMA是并口硬盘接口,不是串口硬盘接口(SATA)。

串口硬盘接口(SATA)只有2对数据线,数据是串行传输的。传输标准不会还沿用DMA了。

SATA需要加载SATA驱动,在XP时代使用起来不是很方便,于是增加了一个模拟IDE模式。当SATA接口模拟为IDE接口时也就借用了UDMA规格,Intel主板支持的UDMA最高规格是UDMA5,所以SATA模拟IDE在Intel主板上也就是UDMA5。
UDMA5是ATA100,速率是100MB,UDMA6是133MB。2者相差很小。
当开启AHCI后,SATA硬盘真正是SATA模式了。那么就不用UDMA了而是SATA的规格,SATAI是150MB,SATAII是300MB,SATAIII是600MB。当然这是理论的突发模式,实际由于机械硬盘的局限,达不到理论速度。

四、启用NCQ是否能提高硬盘读写速度?

很多人开启AHCI后用软件测试硬盘读写速度,发现和IDE模式没有多大差别,于是就怀疑是否启用了NCQ。
下图是NCQ和传统读写模式差异的对比图。注意这个对比图描述传统硬盘读写模式有误。

传统硬盘读写模式有2种:顺序读写和随机读写。上图描述的传统硬盘读写模式是随机读写。传统模式的顺序读写就是NCQ的读写模式。

4-1、随机读写和顺序读写
随机读写就是把一笔数据分散写到不同磁道和扇区。这是由于磁盘转速较快,一段数据写入一个或几个扇区,再继续写后续的数据时,盘片已经转过几个扇区,后续的数据就写入不连续的磁道和扇区。读数据时也就要按地址标记随机的读取。
顺序读写就是从磁盘开始的数据磁道起按顺序一个扇区、一个扇区的写入。读取时也是从头到尾顺序读取。
NCQ就是按读写命令先后排序,然后把数据按顺序写入连续的磁道和扇区。

4-2、NCQ节省的是磁头移动次数
从上面的顺序读取原理可以知道,NCQ提高读写速度的实质就是减少磁头寻道的次数,节省磁头移动的次数,从而提高硬盘读写速度。
不过硬盘磁头移动(寻道)时间很短。现在的硬盘平均寻道时间在9ms。NCQ节省磁头寻道次数,也就是节省一次是9ms,一般很难感觉到快很多的。

4-3硬盘测试软件测试的也是顺序读写
很多人用HD Tune软件测试开启NCQ的硬盘读写数度。只要细心看看就知道HD Tune首先测试的是顺序读写。顺序读写就是NCQ了,所以,就同一种芯片组使用同一型号硬盘来说,启用NCQ和不启用NCQ,用HD Tune软件测试是看不出快慢的。

这是开启AHCI,启用NCQ的硬盘顺序读取和随机读取成绩。


这是IDE模式的硬盘顺序读取和随机读取成绩。


2者的顺序读取成绩基本相同,IDE模式还略微高一点。突发传输也是IDE模式略高一点。

开结:NCQ可以提高硬盘读写速度,但提高的幅度很低,就是节省磁头移动的时间,是毫秒级的。无论是否启用NCQ,HD Tune等软件测试的都是顺序读写,顺序读写就是NCQ。从HD Tune测试成绩看,NCQ与IDE没有区别。

从实际使用来看,开启AHCI启用NCQ,并没有明显提高硬盘的读写速度。硬盘性能的瓶颈不再传输接口,而在硬盘本体,性能的提高只有改变硬盘本体的结构。目前的技术使机械硬盘很难再大步前进,SSD固态硬盘将是未来的方向。

AMD AHCI软盘版驱动下载
SB7xx驱动
AMD-SB7xx.rar (237.21 KB)

SB8xx驱动
AMD-SB8xx.rar (234.38 KB)

Intel  AHCI软盘版驱动(最新版支持6系列芯片组)
« 最后编辑时间: 十一月 17, 2014, 03:38:59 下午 作者 Superman »
已记录