开启硬盘高速之门——AHCI技术详解
技术空间
表弟今年刚考上大学,家里为了表示鼓励就给他买了一台配置比较先进的电脑,这配置还是笔者亲自帮他挑选的。这不,这家伙稍微有点入门就跑到我面前炫耀了。
“表哥,给你看看我的希捷250GB的测试成绩,他们都说这硬盘强呀!”
我看了一下,成绩其实比较一般。“嘿嘿,弟弟给你看看我的,同样的硬盘,你的主板和我的也是采用一样的芯片组,看下磁盘性能差异吧!”
“哇……大哥,你的硬盘的突发传输速率怎么比我高这么多?而且平均传输速率也高不少!”
“很简单,这其实是因为我打开了AHCI技术的缘故,AHCI技术中的NCQ功能可以提高一定的硬盘性能。”
刚入门的表弟听到如此神秘的技术顿时来了精神,“快说、快说,什么是AHCI技术?我要听。”
“别急别急,听我慢慢道来……”


一、什么是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设备之间扮演一个接口的角色。
“哦,听到这里,我有点明白了,表哥你的意思是,AHCI技术也就是一种指令排序功能?”
“呵呵,你没有完全正确理解到我的意思,别急,且听我说”。
SCSI硬盘不仅价格相当昂贵,而且对于普通用户而言安装也比较麻烦,短时间内显然无法得到大规模推广。而为了改变IDE或者SATA硬盘缺少指令优化执行功能而在性能上大幅度落后于SCSI硬盘的情况,Intel突破磁盘性能瓶颈,在AHCI 1.0规范中首次引入了NCQ功能。在具体了解NCQ功能之前,我们先来看看硬盘读写操作的工作原理。按照读写操作的先后顺序,硬盘在读取信息时大致要经过以下5个步骤,如下图。

通过以上5个步骤,即可完成对所需要数据的读写操作。但根据实际使用情况来看,用户在存储数据时往往非常随意,并不是C盘、D盘这么依次递进的。而在遇到某些体积较大的文件比如游戏安装文件压缩包时,有些用户甚至将几个压缩包分散在几个不同的分区存储。对不支持指令排序功能的硬盘来说,就需要反复重复以上5个步骤才能完成对所需要的硬盘数据的读写,这不仅降低了磁盘存取效率,长期使用还会影响磁盘寿命。而支持NCQ技术的硬盘通过重新排序,则完全避免了这种弊病。带NCQ技术的硬盘在接到读写指令后,会根据指令对访问地址进行重新排序。比如根据指令,硬盘需要访问330扇区、980扇区、340扇区,由于数据在磁盘上分布位置不同,普通硬盘只会按部就班地依次访问。而NCQ硬盘对指令进行优化排列之后,就可以先读取330扇区,接着读取340扇区,然后再读取980扇区。这样做的好处就是减少了磁头臂来回移动的时间,使数据读取更有效,同时有效地延长了硬盘的使用寿命。此外,优化后的排列算法不仅是简单的考虑数据的线性位置,还会考虑数据的角度位置,综合分析后再进行优化设计,减少读取时间,这个过程又可称之为基于寻道和旋转优化的命令重新排序。
“我大概有点明白了,表哥,是不是可以这么说,AHCI技术支持NCQ功能,而NCQ的优化排序功能也是目前AHCI技术带来的比较明显的技术优势?”
基本可以这么理解,准确地说,NCQ技术是由高级主机控制器接口(AHCI)支持的一项功能,其优势主要在于减少磁头臂移动,提高硬盘读写速率。不过你可千万别小看这点优势,从长期使用的角度来看,仅仅是有效减少磁头臂来回移动时间这一项,就能有效延长硬盘的使用寿命,这一点对普通用户而言也是非常必要的。何况通过对读取指令的综合优化,带来的性能提升对精益求精的高级用户而言也是非常有吸引力的。”
“表哥,听你这么一说,这个AHCI技术还真不错。快告诉我如何实现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技术的支持。
“啊,这么多主板型号,我怎么能记得住到底哪些板子支持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驱动了,是不是非常简单?