加载中…
正文 字体大小:

AHCI 串行ATA高级主控接口  NCQ 原生命令排序

(2010-12-14 20:05:21)
标签:

ncq

ahci

it

分类: 系统

时间:2008年05月25日  出处:湖南  编辑:小熊在线——WolStame

http://bak2.beareyes.com.cn/2/lib/200805/25/20080525003.htm 

    AHCI,全称为Serial ATA Advanced Host Controller Interface(串行ATA高级主控接口),是在Intel的指导下,由多家公司联合研发的接口标准,其研发小组成员主要包括Intel、AMD、戴尔、Marvell、迈拓、微软、Red Hat、希捷和StorageGear等著名企业。AHCI描述了一种PCI类设备,主要是在系统内存和串行ATA设备之间扮演一种接口的角色,而且它在不同的操作系统和硬件中是通用的。

    AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA功能。由于AHCI统一接口的研发成功,使得支持串行ATA产品的开发工作大为简化,操作系统和设备制造商省去了单独开发接口的工作,取而代之的是直接在统一接口上进行操作,可以实现包括NCQ(Native Command Queuing)在内的诸多功能。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

 NCQ(Native Command Queuing原生命令排序)技术,通过有效减少硬盘磁头移动,从而使硬盘读取速度更高、发热量更低、寿命更长。

    一直以来SCSI硬盘在多任务负载下的表现能力为人称道,其根本的原因除了SCSI接口惊人的接口速率外,便是它的指令排序功能。以往的PATA、SATA硬盘也正是因为缺少一种指令优化执行功能而在性能上落后于SCSI硬盘。针对这一困境,Intel的AHCI 1.0规范首次引入的NCQ(Native Command Queuing),它的应用能够大幅度减少硬盘无用的寻道次数和数据查找时间,这样就能显著增强多任务情况下硬盘的性能,AHCI也是使得eSATA支持热插拔的条件,可以像硬盘像USB一样支持热插拔。

    也就是说,目前SATA比较重要的特性,是通过打开AHCI才能去实现,换句话说,没有打开ACHI的SATA就只能说是单纯提高了外部传输率的IDE。

    试想一下,你经常做一些I/O密集型的数据读写工作,或者小文件copy,delete,这种有NCQ技术就可以使性能提升50%甚至更高的操作并不乏应用。又或者你不满USB的速度,喜欢使用eSATA但又要希望保留USB的热插拔性,这时候,你就需要AHCI。其实,AHCI也不是那么重要,毕竟对于硬盘而言,质量,容量,速度才是更为重要的因素,但是我们不能容忍的,明明现在大部分的硬盘以及主板都支持AHCI,可我们却不能使用。

  首先,NCQ是AHCI所支持的一项技术,AHCI是需要两个设备同时支持,也就是硬盘和主板都支持。而硬盘无需要设置,只要主板这一段才能设置是否打开AHCI,开启AHCI是第一步。AHCI属于SATA2的高级特征之一,支持SATA功能的主板并不一定支持AHCI。只有在主板BIOS中能找到AHCI选项才表明这款主板能支持NCQ。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

 每块主板的BIOS设置位置可能不太一样,但只要找到“AHCI”字样就没错了。

    很不幸,我们现在大多数的系统,都只支持最常见的通用磁盘控制器,所以AHCI是没办法支持的。而如果需要在Windows XP/2K上安装AHCI的驱动,那必须有一个软驱,并且得在安装时按f6才能安装。这么麻烦的事肯定会使得消费者非常反感,所以主板厂商肯定不会做这种让消费者抗拒的事,于是他们设计了一个比较折中的方法,所有SATA的设备可以模拟IDE,使用IDE的通用驱动,这样既保存了SATA的高传输率,也可以使得安装系统时非常简单,并且这个设计使得几乎所有主板的默认选项,都是使用IDE的驱动。这个设计非常帖心,同时也非常令人惋惜的,因为它直接牺牲AHCI这个非常重要的特性,所以我们如何要想正确开启它,必须手动进BIOS里去调整。

  Intel ICH6-R南桥的主板相关的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种。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
 要支持NCQ功能,BIOS中的“SATA Mode”应设为“AHCI”。

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

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

只要打开AHCI再装上正确的驱动,就可以打开ACHI功能了,这样才能摆脱IDE的阴影。如图就是正确打开了AHCI

 

Windows XP/2K的开启AHCI方法

    因为打开了AHCI之后,换了一种模式的磁盘控制器,对于WINDOWS就是一个新的设备了,而新的设备WINDOWS并不支持,开机就会蓝屏。现在大部分的PE及GHOST系统都不支持AHCI,安装前请先确定文件的版本。

    我们下面的想法基本是这样,先强制让Windows安装上新的AHCI,然后再重启,重启的时候再进入Bios开启AHCI。好,下面开始吧,以Intel P965 ICH8R为例子,Intel芯片组基本都一样,NV/AMD芯片组驱动会不一样,但原理是一样的。首先,要确定安装主板驱动,我在这里安装的是Intel(R) Chipset Device Software 8.4.0.1010,版本无所谓,只要支持你的主板就ok。我们要把两个红圈内的驱动强制换掉。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

换之前,我们要准备更换的驱动。Intel的支持AHCI/Raid的驱动是Intel(R) Matrix Storage Manager。然后我们运行安装,注意的是因为你的主板并没有开启AHCI,而也没有RAID的话,Matrix Storage Manager是没有办法安装上的,它会说不满足的最低要求,因为你现在还没有这个设备。这没关系,我们也没指望他现在就可以装上这个驱动,我们只是希望能通过个安装来提取出我们所需要的驱动。双击Matrix Storage Manager,一直next到下图所示,就不能再继续,因为再继续就停止安装了(不满足最低安装要求)。
AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
到了这一步,我们要查找刚才这个程序解压出来的临时文件放到哪里,所以我们用搜索的方法去查找,关键字为“AHCI”,这下我们知道,它在Windows\temp\iif\winall里面,这是一个临时文件,所以我们要把它Copy出来存起来以备以后安装使用。由于笔者使用的32位XP,所以我们使用Driver里的驱动。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

Intel官方驱动下载地址:http://www.intel.com/p/en_US/support/highlights/chpsts/imsm

联想官方技术支持库有各型号的AHCI驱动及安装方法,可以直接搜索AHCI。

http://support1.lenovo.com.cn/lenovo/wsi/htmls/doclist.aspx

 

现在我们就来把刚才的Intel(R) ICH8 2 Port Serial ATA Storage Controller - 2825以及Intel(R) ICH8 4 Port Serial ATA Storage Controller - 2820的驱动按以下方法强制安装(两个都需要更换)。
AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
    从磁盘安装里选择刚才保存下来的Driver文件夹,选择Iaahci.inf。然后到了选择Iaahci.inf里面所有包含的achi驱动,这里可以查一查自己的南桥芯片组对应的驱动,这个可以上google,baidu去查找,选错了没有多大问题,大不了恢复一下再重新来过。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

    当按下下一步的时候,如果你的系统硬盘正好挂在上面,有可能会蓝屏,因为你当前使用的系统盘突然变了一个驱动,导致Windows无法读写硬盘,自然就会蓝屏。这没问题,只要你当前没有需要保存的操作即可,这时候蓝屏完后重启,我们就需要在Bios里打开AHCI,要不然再进去Windows还是会蓝屏,因为驱动已经是AHCI的了。

    这里说一下,如果你选择错误还是其它什么别的原因导致既然BIOS里更改成了AHCI也没办法正常进入WINDOWS,不要惊慌,没啥大不了,可以在计算机启动时,不停按下f8,然后在启动界面里,选择“最后一次正确的配置(您的起作用的最近位置)”即可恢复成原来的样子,所以说这个做法并没有危险性。如果成功之后,我们就可以进入Windows了,这时再查看驱动,ok,驱动已经正确装上了(其实就算选错了,只要是其它南桥ahci的驱动,一般也能进入Windows)。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
   到这里面算完了么,NO,我们只是把驱动装好了,Intel(R) Matrix Storage Manager我们并没有安装上呢,只是用了它里面的驱动,而其它功能要重新安装一次才能成功,而这个过程中,如果你的驱动重错了,它也会帮你更正过来。这次因为我们有AHCI的设备了,所以它会老老实实的安装完毕,再也不会出来闹唤了。我们在打开了Intel Matrix Storage Console程序来查看,发现已经正确打开Sata 2并且支持NCQ了,到此整个XP的安装结束,虽然有点麻烦,但却一劳永逸,以后有新驱动直接更新就是,不再需要这么麻烦了。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
  我再用文字把刚才XP安装的原理总结一遍,以方便非Intel芯片组的安装:首先准备好Ahci的驱动,部分驱动可以直接用Winrar解压,而不能解压的可以使用安装来解压,再用"ahci,ide,sata“等关键字来搜索解压出来的临时文件夹,再强制安装上驱动,随后重启,再在BIOS里打开AHCI,回到Windows下就已经安装成功,但最好再把软件再安装一次,确保可以使用到所有功能。

 

说到Vista或WIN7打开AHCI,那安装可就太简单了

根据http://support.microsoft.com/kb/922976的资料,既然只要修改注册表,就能正确打开AHCI。

1. 退出所有基于 Windows 的程序。
2. 单击“开始”,在“开始搜索”框中键入 regedit,然后按 Enter。
3. 如果显示“用户帐户控制”对话框,请单击“继续”。
4. 找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
5. 在右窗格中,右键单击“名称”列中的“Start”,然后单击“修改”。
6. 在“数值数据”框中,键入 0,然后单击“确定”。
7. 在“文件”菜单上,单击“退出”以关闭注册表编辑器。

同样,也要把Intel(R) Matrix Storage Manager安装一遍,其它的芯片组也是如此。

AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序
AHCI <wbr>串行ATA高级主控接口 <wbr> <wbr>NCQ <wbr>原生命令排序

0

阅读 评论 收藏 转载 喜欢 打印举报
前一篇:RAID 0
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    < 前一篇RAID 0
      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有