开启硬盘高速之门

开启硬盘高速之门——AHCI技术详解(NCQ)

 一、什么是AHCI技术,优势何在?
AHCI技术的全称是Serial ATA Advanced Host Controller Interface(即串行ATA主机控制接**术),它是由Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等多家企业联合开发的一种高级主机控制器接口,它允许存储驱动程序启用高级串行 ATA 功能,而我们这里提到的高级功能主要是指NCQ(全速命令队列)和热插拔技术。
“那么,你吹得如此玄乎的AHCI技术又有哪些看得见摸得着的优势呢?”
相信没有几个普通玩家会闲得无事成天热插拔硬盘玩,所以这里我主要介绍一下AHCI技术带来的性能优势。”
排除噪音干扰因素之外,为什么追求极致性能的硬件发烧友们如此推崇SCSI硬盘,经常把它用来当作系统盘或者是BT下载盘呢?其根本原因在于SCSI硬盘除了拥有惊人的接口速度之外,在指令排序功能指引下,其多任务响应速度也远远快于普通的IDE或者SATA硬盘。AHCI技术其实主要是在系统内存和串行ATA设备之间扮演一个接口的角色。

SCSI硬盘不仅价格相当昂贵,而且对于普通用户而言安装也比较麻烦,短时间内显然无法得到大规模推广。而为了改变IDE或者SATA硬盘缺少指令优化执行功能而在性能上大幅度落后于SCSI硬盘的情况,Intel突破磁盘性能瓶颈,在AHCI 1.0规范中首次引入了NCQ功能。在具体了解NCQ功能之前,我们先来看看硬盘读写操作的工作原理。按照读写操作的先后顺序,硬盘在读取信息时大致要经过以下5个步骤,如下图。

通过以上5个步骤,即可完成对所需要数据的读写操作。但根据实际使用情况来看,用户在存储数据时往往非常随意,并不是C盘、D盘这么依次递进的。而在遇到某些体积较大的文件比如游戏安装文件压缩包时,有些用户甚至将几个压缩包分散在几个不同的分区存储。对不支持指令排序功能的硬盘来说,就需要反复重复以上5个步骤才能完成对所需要的硬盘数据的读写,这不仅降低了磁盘存取效率,长期使用还会影响磁盘寿命。而支持NCQ技术的硬盘通过重新排序,则完全避免了这种弊病。带NCQ技术的硬盘在接到读写指令后,会根据指令对访问地址进行重新排序。比如根据指令,硬盘需要访问330扇区、980扇区、340扇区,由于数据在磁盘上分布位置不同,普通硬盘只会按部就班地依次访问。而NCQ硬盘对指令进行优化排列之后,就可以先读取330扇区,接着读取340扇区,然后再读取980扇区。这样做的好处就是减少了磁头臂来回移动的时间,使数据读取更有效,同时有效地延长了硬盘的使用寿命。此外,优化后的排列算法不仅是简单的考虑数据的线性位置,还会考虑数据的角度位置,综合分析后再进行优化设计,减少读取时间,这个过程又可称之为基于寻道和旋转优化的命令重新排序。

读取硬盘数据的步骤

NCQ技术是由高级主机控制器接口(AHCI)支持的一项功能,其优势主要在于减少磁头臂移动,提高硬盘读写速率。从长期使用的角度来看,仅仅是有效减少磁头臂来回移动时间这一项,就能有效延长硬盘的使用寿命,这一点对普通用户而言也是非常必要的。何况通过对读取指令的综合优化,带来的性能提升对精益求精的高级用户而言也是非常有吸引力的。”
二、支持AHCI技术的硬件
从硬件基本层面而言,AHCI技术的打开需要硬盘和主板两方面的支持。硬盘部分,目前暂时还没有哪个型号产品可以声称完整支持AHCI,不过型号较新的产品已经基本支持NCQ功能,所以大家选购型号较新的硬盘产品即可。不过即使是在主板和硬盘都支持NCQ功能的情况下,也可能出现无法打开AHCI技术的情况,因为这还需要主板芯片组支持。芯片组方面,Intel的ICH系列南桥芯片组中ICH6R、ICH6M、ICH7R、ICH7DH、ICH7M、ICH8R以及P35系列采用ICH9系列芯片组都支持AHCI技术。而之前的ICH5、ICH5R、ICH6、ICH7和ICH8则不能直接支持AHCI,需要通过主板上的板载芯片来实现。值得注意的是,Intel的ICH8南桥应用范围很广,相当多的P965系列芯片组都是采用这一型号芯片,如我使用的这块技嘉P965-DS3主板就是通过板载的外接芯片以及BIOS的配合实现对AHCI技术的支持。AMD芯片组方面,采用SB600南桥芯片的主板,如690G系列已经直接提供了对AHCI技术的支持。

进入主板BIOS,查看“Integrated Peripherals”中的“OnChip Serial ATA Device”这一项。如果主板芯片组支持AHCI的话,那么这里就应该有个AHCI的选项,否则就只有“IDE”和“RAID”两项。不过需要注意一下,某些主板的BIOS比较特别,SATA工作模式和AHCI功能是独立的两个选项,当SATA模式设置为RAID时,AHCI自动处于“Enable”状态;而当SATA硬盘工作在模拟IDE模式时,AHCI选项就有“支持”或“不支持”两种。根据前面我们已经介绍过AHCI与NCQ之间的关系,这里的BIOS设置就非常明确了,而要实现NCQ功能,BIOS中的SATA 模式显然必须设为AHCI。

三、支持AHCI技术的软件
安装AHCI技术的软件步骤其实并不复杂,只要有BIOS和驱动的支持就可以打开。但说来简单,对刚入门的玩家来说真正要完美实现AHCI技术可能就需要费一番功夫了。软件方面,目前实现AHCI主要有三种途径:1.使用集成有AHCI驱动的系统安装光盘。2.用光盘装系统时通过软盘加载AHCI驱动。3.通过**驱动的方式,装好系统后打开AHCI功能。
“晕,这个时代谁还有软盘啊?我看还是用**驱动比较方便。”
确实,软盘这玩意现在越来越少见了,但通过第3种**驱动实现AHCI的方法也不一定可行。首先有部分用户反映通过**驱动实现AHCI后系统总是容易出现一些奇怪现象。其次也有消息称**驱动的方式,严格来说并没有真正打开AHCI,只是欺骗了系统而已,部分用户提供的测试也可以说明这点,通过**驱动实现的AHCI并没有为整机磁盘性能带来明显提高。”
“照你这么说,集成AHCI驱动的安装光盘倒是最方便。但我常用的精简版Windows XP没有集成ACHI驱动怎么办?是不是换成Vista会方便一些?”
确实是这样的。首先,Vista系统已经集成有AHCI驱动,只要在装系统前在BIOS中选择磁盘模式为AHCI即可,非常方便。至于精简版系统没有集成AHCI驱动的问题就更简单了,借助nLite工具,几分钟之内就可以做一个集成驱动的系统安装光盘,然后直接刻录就行了。
“啊,这么爽,快教我,如何集成AHCI驱动到系统安装盘里面。”
nLite的运行需要Microsoft?.NET?Framework的支持,安装好Framework后,直接点击桌面上的nLite图标,语言栏那里选择“Simplified Chinese”,然后“前进”
选择XP安装光盘的位置。你可以把XP安装光盘的全部内容复制到硬盘上,也可以直接选择光驱所在的盘符,直接复制。
为修改好的系统镜像选择一个存储空间。
选择需要整合的文件类型,以及创建的文件类型。玩家也可以不选择直接创建ISO镜像,然后自行封装。
选择需要集成的驱动。首先将下载好的驱动解压,然后添加里面的”graid_f.inf”文件
以文本模式,选择需要集成的驱动。就这样,一个集成有AHCI驱动的系统安装光盘就整合完毕了。对于初学者来说,一路点击“前进”,就可以得到一个集成有AHCI驱动的系统镜像,然后直接刻盘安装,就可以搞定AHCI驱动了,是不是非常简单?

启用AHCI无须重装系统即可实现硬盘NCQ功能
假如你购买了一块支持NCQ功能的硬盘却发现无法开启这项特性,你又该怎么办呢?也许你会说,重新安装就好了啊!其实,不用的,我们还有更快捷的方法迅速打开NCQ功能,让AHCI跟NCQ垂手可得。 大家都知道,如果要开启SATA硬盘的NCQ功能,必须在主板BIOS内将SATA模式设为AHCI,在这个模式下的SATA硬盘将采用原生方式工作以支持NCQ。不过,如果我们预先在BIOS中将SATA模式设置为STANDARD IDE来安装操作系统的话,那么在后期切换到AHCI后将无法进入操作系统,因为系统无法正确识别硬盘。反过来,在AHCI模式下安装操作系统,却可以在BIOS中自由切换AHCI于STANDARD IDE两种模式,以开启或关闭NCQ功能。

目前几乎所有主板的SATA模式在缺省设置下都是STANDARD IDE,所以很多玩家都已经在该模式下安装了WINDOWS XP。此时,你不能直接将STANDARD IDE改成AHCI,否则会在WINDOWS XP启动时出现蓝屏。有没有办法不用重装系统也能成功切换到AHCI模式呢?当然有!笔者就采用了一个既简单又快捷的方法完成了从STANDARD IDE到AHCI的切换,经笔者测试证明完全可行。如果您在添加了支持NCQ功能的硬盘之后也想开启这项特性,就和笔者一起来看看怎样完成STANDARD IDE向AHCI的转变吧。 在进行下文所述操作之前,请您确定您的主板是否支持AHCI以及硬盘是否支持NCQ。有一个简单的方法可以判断您的主板是否支持AHCI:如果在主板的BIOS里关于SATA模式的设置选项里有AHCI可以选择,那么您的主板支持AHCI。已经购买了SATA硬盘的玩家,可以用EVEREST软件来查看你的硬盘是否具备NCQ功能。另外,启用NCQ功能之前最好确保自己硬盘分区格式为NTFS,因为在FAT32格式下启用NCQ将会导致系统缓慢。

下载IMSM驱动并执行预安装脚本

首先,从THINKPAD的网站上下载最新版的INTEL MATRIX STORAGE DRIVER。执行下载的79IM05WW.EXE文件之后,驱动程序会被解压到C:\DRIVERS\WIN\IMSM目录下,这个驱动程序可以支持INTEL当前所有的AHCI控制器。显然,THINKPAD的工程师们考虑到了THINKPAD用户有可能需要在已安装了WINDOWS XP的情况下切换到AHCI模式,所以专门提供了一个脚本用来避免在STANDARD IDE切换到AHCI模式后出现蓝屏,这个脚本放在C:\DRIVERS\WIN\IMSM\PREPARE目录下。 由于这个脚本是专门提供给THINKPAD笔记本使用的,所以必须先修改一下才可以用在台式机上。用记事本打开C:\DRIVERS\WIN\IMSM\PREPARE\IMSM_PRE.INF,将ICH7M的AHCI设备编号27C5替换成自己主板的AHCI设备编号,例如ICH7R的设备编号为27C1(ICH6R:2652 ICH7R/DH:27C1 ICH7M:27C5),全部替换后保存并关闭文件。接下来双击执行INSTALL.CMD,脚本成功执行后就可以重启系统了。 将BIOS中的SATA模式修改为AHCI 完成AHCI转换教本的安装后重新启动电脑,进入CMOS界面找到SATA模式设置选项,将其设置为AHCI,然后保存并重启即可。 本人的主板时采用AMI BIOS,SATA模式选项在IDE CONFIGURATION下,名称是CONFIGURE SATA。如果是AWARD BIOS,这个选项一般都在SATA DEVICES CONFIGURATION下,名称是SATA MODE。 安装AHCI管理程序 完成上面的两步操作后,便能成功的进入WINDOWS XP,而且不会出现蓝屏。

进入系统后会提示找到新的硬件设备,在硬件安装向导中依次选择 否,暂时不(T)~从列表或指定位置安装(高级)。然后指定AHCI驱动程序所在的目录即可。此时即可使用前面从THINKPAD官方网站下载的IMSM驱动程序,也可以使用主板驱动光盘中提供的配套IMSM驱动程序,完成安装后需要重新启动系统。 最后的工作就是安装AHCI管理程序。本人主板的南桥是ICH7R,所以需要安装INTEL MATRIX STORAGE MANAGER程序(如果设置在STANDARD IDE模式,程序在安装时会提示没有检测到相应的硬件而拒绝安装)。INTEL MATRIX STORAGE MANAGER程序在主板的驱动光盘里有,从网上也可以下载到最新的版本。安装完成后,打开INTEL MATRIX STORAGE C**OLE,从菜单里选择高级模式,然后就可以查看到硬盘状态和是否已经开启了NCQ功能了。
目前而言,只有INTEL和NF4芯片组的驱动程序能够得知两者的工作状态。INTEL芯片组方面,BIOS里只要选择了AHCI/RAID模式,并且安装了IAARAID磁盘驱动程序,即可通过此驱动来得知工作状态。

  而NF4芯片组的主板,BIOS里可能会有3Gb/s和1.5bGb/S模式选择,也有些主板不提供这样的功能,如果有则选择3Gb/s模式,如果没有并不代表不支持3Gb/s的传输速率。而NCQ选项是没有的,然后安装好NVSW磁盘驱动,在设备管理器里的IDEATA/ATAPI属性里,选择硬盘所在的通道,在“Transfermode”框里写着“SerialATAGeneration2-3G”,其中的“3G”即表示硬盘接口工作在300MB/S速率了。

  “Enablecommandqueuing”是用来控制NCQ的开闭。NCQ的全称是“NativeCommandQueuing”,而这里就是因为少了“Native”这个单词,所以使不少人误解此选项的功能。


808 Views