硬盘开启NCQ功能全解

硬盘发展的速度大家是有目共睹的,在2005年,SATA接口的硬盘顺利代替了PATA硬盘,成为市场中主流的热点产品。而在2005年末,关于SATA硬盘的一项新的技术NCQ又进入了人们的视野。
  对于硬盘的NCQ技术,相信多数朋友还是是很了解吧。到底什么是主板的NCQ?硬盘的NCQ功能对硬盘本身会带来什么样的性能提升,小编通过搜索查找,整理收集了大量的资料,接下来就让我们一块来认识一下硬盘的NCQ功能和缓存?
一、认识硬盘的NCQ
  NCQ(Native Command Queuing)是SATA规范支持的一种新的功能,它是一种使硬盘内部优化工作负荷执行顺序,通过对内部队列中的命令进行重新排序实现智能数据管理,改善硬盘因机械部件而受到的各种性能制约,以发挥硬盘最高的效率、使延迟最小化。
  我们的硬盘是怎么写数据的?其过程很简单,从磁碟的最外圈开始往内圈写,一个圈叫做一个磁道track,所有碟(platter,即平时说的单碟),面(一个碟可能有两个面)上同一磁道组成一个柱面(cylinder),写硬盘就是按照从外到里一点点顺序写的。可惜我们读取的时候肯定不是按照这样的顺序的,我们一般是随机的读取分散在盘片上的数据,我们需要在快速转动的同时准确定位,可以想象这是多么不容易。



暗红色的区域表示磁道,鲜红色的区域表示簇,而黄色区域表示磁盘上的扇区。
  要精确定位,我们会遇到两个敌人:寻道延迟和转动延迟。
  寻道延迟是磁头找到磁道的时间。我们可以想象一下磁头反复地在一个个同心圆之间伸长,缩短,其延迟就是寻道延迟,或者在硬盘技术参数中称为寻道时间。
  我们可以将硬盘的存储数据的逻辑块地址(LBA,Logical Block Address)当作是一个地区内的不同的房子。如果要给这些房子送信,先送完第一间房子,然后再跑到2公里外的另一个房子,后再跑到第一个房子的邻居送信,最后把信送到附近不远的另一个房子,这是多么“愚蠢”的做法!显然,这浪费了大量的时间。下面的两个如分别表示了没有采用NCQ技术(non-NCQ)和采用了NCQ技术的两种不同的情况。





  第一个图为不支持NCQ技术的硬盘的工作情况。和前面提到的送信的“愚蠢”做法的一样的,但是在刚开始的硬盘中确实是采用了这种做法。



  第二个图是支持NCQ技术的硬盘的工作情况。这才是送信的最佳方式,它极大的提高了工作效率,节省了很多时间。
  支持NCQ技术的硬盘对接收到的指令按照他们访问的地址的距离进行了重排列,这样对硬盘机械动作的执行过程实施智能化的内部管理,大大地提高整个工作流程的效率:即取出队列中的命令,然后重新排序,以便有效地获取和发送主机请求的数据,在硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中。
  转动延迟是找到准确磁道后,那个正确的地址所在位置转到磁头下面的时间。这里我们可以想象转得越快,这个时间就越短,对5400转硬盘,转一圈要11.1毫秒,7200转要8.3毫秒,而万转硬盘只要6毫秒。
  要减少转动延迟,一般的办法是提高转速,但是我们知道提高转速很难,否则我们不会到现在还在用7200转的硬盘。除了这个办法还有1.优化排序2.乱序执行。
  两个延迟加起来就是我们遇到的总延迟,我们希望总延迟越小越好。以前的做法是优化排序任务从而减少寻道时间,但是后来发现追求最小寻道时间会导致转动延迟变大,两者相加不一定是最小的。所以提出了一种综合考虑寻道和转动的优化方法,这种方法就称为“tagged command queuing”,而在SATA 300标准中使用的特殊的优化方法就叫做“Native Command Queuing”,就是NCQ。
二、什么设备支持NCQ?SATAII等于300MB/S+NCQ吗?
  目前在市面上的硬盘中,由于技术SATA技术已经相当成熟并占据了市场的绝对主流,而从去年底,各大厂商生产的硬盘基本上都提供了对NCQ功能的支持,但仍有部分产品是不支持的,我们经常提到的希捷7200.7、7200.8和7200.9和Maxtor的金钻10系列支持NCQ。
  在支持的主板方面,目前只有Intel最新的9X5系列中使用的ICH6系列南桥支持NCQ,而NVIDIA NF4系列和VIA VT8251和SiS 963/964/965南桥也将支持NCQ,NVIDIA C51主板芯片组虽然提供对SATA II的支持,但并不支持NCQ功能。
  很多人都认为,不支持NCQ的硬盘就不能叫做"SATAII"。其实SATAII规范包含许多特性,在时间上分为两个阶段的,分别是Phase1和Phase2。第一阶段所具有的特性包括:加入NCQ的支持,增加风扇控制,温度控制,状态指示等特征,引入背板接口互联,并支持热插拨。(目前只有NCQ功能被应用在桌面硬盘产品,其他的应用在服务器硬盘上)。第二阶段所具有的特性包括:接口速度提高到300MB/S,提供多个硬盘同时连接到一个接口的功能,提供两个控制器沉余技术,实现完全的热插拨和交错启动(目前只有300MB/S功能被应用在桌面硬盘产品,其他的应用在服务器硬盘上)。

  这种发展过程结合硬盘厂商的行为在业界形成这样的理解:具有NCQ功能的SATA硬盘是SATAIIPhase1硬盘,而具有NCQ技术和300MB/S速度的SATA硬盘是SATAIIPhase2硬盘,即所谓的标准"SATAII"硬盘,这就让人产生SATAII等于300MB/S+NCQ的错误理解。
三、硬盘NCQ功能使用详解(以下内容来自微型计算机)
即便主板和硬盘具备了NCQ功能,但NCQ功能在默认状况下并未自动打开,还需进行一番设置。
  首先,NCQ是AHCI(高级主控界面)所支持的一项技术,开启AHCI是第一步。AHCI属于SATA2的高级特征之一,支持SATA功能的主板并不一定支持AHCI。只有在主板BIOS中能找到AHCI选项才表明这款主板能支持NCQ。


  进入主板BIOS,找到“Integrated Peripherals”→“OnChip Serial ATA Device”,查看此处是否有“AHCI”选项。
BIOS设置
  下面以采用Intel ICH6-R南桥的主板为例介绍NCQ相关的BIOS设置。在BIOS的SATA工作模式选项中,除了RAID和IDE外,还多出了一个AHCI选项。大家知道IDE模式是指让SATA硬盘工作在普通IDE模式下,通常用于单个SATA硬盘,而RAID模式则是通过RAID控制器来管理SATA硬盘,适合建立SATA RAID。新增的AHCI模式则利用AHCI控制器来管理SATA硬盘。
  在某些主板的BIOS选择中,SATA工作模式和AHCI功能是两个选项,当SATA模式设置为RAID时,AHCI自动处于“支持”;当SATA模式设为IDE时,AHCI可选择“支持”或“不支持”,两种设置可能存在的选项有3种。



要支持NCQ功能,BIOS中的“SATA Mode”应设为“AHCI”
  其实,AHCI和SATA模式的关系并不复杂。当开启SATA RAID控制器时,AHCI会同时生效;如果不使用SATA RAID,AHCI可设置为关(即普通IDE模式)或开(单独启用AHCI)。无论如何,只有AHCI设置为开时,方可支持NCQ。

 

Windows安装

  综上所述,使用支持NCQ的主板时,通过BIOS可把SATA接口设置为3种不同模式:RAID、AHCI和IDE。IDE模式安装Windows的方法没有什么特别之处,而RAID模式需要在启动时按F6,并通过软盘载入RAID控制器的驱动程序。AHCI模式和RAID一样,在启动时也需按F6,通过软盘载入驱动程序。值得注意的是,在AHCI模式下,应选择AHCI驱动程序,而非RAID驱动,其它安装则与RAID模式完全相同。

  

选择正确的AHCI驱动程序


 

 

软件支持

  不同的南桥都有各自的硬盘驱动程序,ICH6-R南桥在RAID和AHCI模式时,均需配合IAA RAID版(应用程序加速器RAID版,新版本为Intel英特尔Matrix Storage Manager驱动)驱动。驱动安装好后,在IAA RAID版控制界面中能够看到NCQ的状态。

  

IAA RAID控制界面中可以查看NCQ的工作状态



四、打开NCQ前后的性能对比

  笔者使用金钻8代搭配富士康925XE主板,分别在IDE模式(未启用NCQ)和AHCI模式(启用NCQ)下安装Windows,并用PCMark04测试硬盘性能,硬盘性能得分分别为5286和5682,可见该测试中NCQ带来了7%的硬盘性能提升。事实上,在频率读取数据的实际应用中,NCQ的好处表现得更加明显。
  目前市场中希捷的7200.7系列硬盘中有很多已经提供了对NCQ功能的支持,迈拓金钻十代和日立、西部数据、三星等硬盘大厂的部分产品也提供了对NCQ功能的支持,虽然在目前家用台式机中NCQ性能的表现并不算太令人惊喜,但在频率读取数据应用中,NCQ的表现还是令人满意的。在价格方面,支持NCQ功能的硬盘比不支持此项功能的硬盘之间仅有20余元的差价,所以我还是非常建议用户在选购硬盘时,多花点钱买一款具备NCQ功能的硬盘。

五、启用NCQ的设置
1、必要条件
①支持NCQ的芯片组(南桥),支持SATA2
②支持NCQ的硬盘,SATA2硬盘
③NTFS分区
上述三条是启用NCQ的必要条件,缺一不可。如果在FAT32分区下启用NCQ,系统将变得很迟钝。
由于NCQ在SATA2时代才正式实施。所以支持NCQ的芯片组必须是支持SATA2的,硬盘也必须是SATA2的。尽管某些SATA1的产品说支持NCQ,但很难搭配硬盘和芯片组。所以,应当以SATA2为准。
目前支持NCQ的芯片组有:
Intel:ICH6R、ICH7R、ICH8R
nVIDIA:nForce4 Ultra、nForce4 SLI、nForce5
Uli M1697
VIA:VT8251
支持NCQ的硬盘:
目前的各品牌SATA2代硬盘。,
Seagate Barracuda 7200.8
Seagate Barracuda 7200.9
Maxtor DiamondMax
Western Digital WD2000
可以用Everest软件检测硬盘是否支持NCQ。

2、启用NCQ设置
单个硬盘启用NCQ
⑴、Intel ICH7R芯片组;
首先在BIOS内把SATA MODE选项设置为ACHI。

第二准备ICH7R的RAID安装软盘。安装XP(SP2)/2000(SP4)时,敲F6键,把ICH7R的软盘插入软驱。当提示敲S键指定添加设备驱动时,敲S键,系统读取软盘,并提示可以安装的驱动时,选择ACHI For ICH7R

系统安装完成后,可以在设备管理器看到Intel 82801GR SATA AHCI Controller:

这就表示已经开启了NCQ。
⑵、nFoece 5芯片组
第一在BIOS里启用SATA控制器

安装操作系统XP(SP2)时不需要加载驱动软盘。
第二安装nForce芯片组驱动时注意,一定要安装IDE SW驱动。安装完成,在设备管理器可以看到NVIDIA nForce 590/570/550 Serial ATA Controller。在控制器属性里可以看到已经开启NCQ。

⑶、M1697芯片组
第一在BIOS里启用SATA控制器
安装操作系统XP(SP2)时不需要加载驱动软盘。
第二安装M1697芯片组驱动。安装完成,在设备管理器可以看到ULi Serial ATA/RAID Controller。在控制器属性里可以看到已经开启NCQ。

毋庸置疑,NCQ绝对是一个非常优秀的技术,在已知的测试中NCQ都对性能带来了不小的提升。在SATA官方网站上公布的测试结果,同样型号、同样容量的硬盘,支持NCQ的比不支持NCQ的性能最多提升13%。NCQ相当于存储界的超线程技术,就像超线程刚发布时由于缺乏软件支持性能提升幅度不大,我们有理由相信NCQ能取得比这更好的结果。用现在的一些测试软件也看不出性能的提高。今年以来,主板I/O控制器开始支持NCQ,随着支持NCQ的SATA2硬盘上市,NCQ终于不再是厂商宣传SATA的噱头,而是实实在在地出现在市场上。随着时间的推移,SATA在得到普及后,NCQ必将得到更深入的开发和更好的利用。

 

你可能感兴趣的:(OS操作系统,IT应用)