AHCI介绍

AHCI介绍

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

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

一直以来SCSI硬盘在多任务负载下的表现能力为人称道,其根本的原因除了SCSI接口惊人的接口速率外,便是它的指令排序功能。以往的 PATASATA硬盘也正是因为缺少一种指令优化执行功能而在性能上落后于SCSI硬盘。针对这一困境,IntelAHCI 1.0规范首次引入的NCQNative Command Qu),它的应用能够大幅度减少硬盘无用的寻道次数和数据查找时间,这样就能显著增强多任务情况下硬盘的性能。

另外,作为SATA标准的改进版,Intel完善了Serial ATA II接口的详细规格,并表示串行ATA II的研发将属于AHCI统一接口的第二个阶段。而其中第一阶段从去年已经开始,不少厂商也推出Serial ATA接口的产品,包括硬盘和主板。但这仅仅是作为过渡,在第二阶段,Serial ATA II将会凭借更高的信号传输速度直接取代SATA.

高级主机控制器接口 (AHCI) 是一种接口技术指标,它允许存储驱动程序启用高级串行 ATA 功能,如本机命令队列和热插拔。

注:AHCI 需要英特尔应用程序加速器 4.1 或更高版本,并与下列控制器集线器一同置入芯片组:

英特尔82801GBM I/O 控制器集线器 (ICH<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="7" unitname="m">7M</chmetcnv>) - 仅限 AHCI

英特尔 82801GR I/O 控制器集线器 (ICH7R) - RAID AHCI

英特尔 82801GH I/O 控制器集线器 (ICH7DH) - RAID AHCI

英特尔 82801FR I/O 控制器集线器(ICH6R- RAID AHCI

英特尔 82801FBM I/O 控制器集线器 (ICH<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="m">6M</chmetcnv>) - 仅限 AHCI

基于ICH7 ICH6的芯片组,以及基于 ICH5 ICH5R 的芯片组,未使用 AHCI

下面是某人在SATA硬盘上安装Windows的方法介绍:

HOWTO: enable SATA AHCI mode after installing Windows

Not sure if this has been posted before, but I managed to successfully enable AHCI mode after installing Windows. Here's how...

AHCI (Advanced Host Controller Interface) is present on newer Intel chipsets such as 975X (ICH7), P965 (ICH8), and P35 (ICH9). AHCI mode is enabled in the BIOS and 3 settings are commonly available: IDE, AHCI, and RAID. The last two (AHCI and RAID) require a driver floppy and the F6 method when installing Windows XP otherwise the hard disks won't be detected.

AHCI mode brings 3 main advantages:

  1. Supports NCQ (Native Command Queuing) allowing SATA drives to accept more than one command at a time and dynamically reorder the commands for maximum efficiency.

  2. Supports hot plugging of devices

  3. Supports staggered spin ups of multiple hard drives at boot time

However, in the real world the performance difference isn't huge.

The problem is that if you installed Windows in IDE mode (ie you didn't use F6 and supply a driver disk), then simply changing the BIOS setting to AHCI mode and rebooting will cause Windows to fail and will require a repair install. Most people have been advising to reinstall Windows if you want AHCI enabled.

I managed to enable AHCI on Windows XP Professional for a Gigabyte P35-DS4 (ICH9R) without needing to reinstall. This should work on any P35 ICH9 based board:

1. Go to Intel's download centre and download the latest version of the Intel Matrix Storage Manager (<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">7.6.0</chsdate>.1011, <chsdate w:st="on" isrocdate="False" islunardate="False" day="2" month="8" year="2007">8/2/2007</chsdate> at time of writing) for your OS:

http://downloadcenter.intel.com/Prod...=2101&lang=eng

Keep this file as you'll need it again in step 4.

2. Run the installer with the -a switch to extract the files. This will NOT install the software, just extract the files. Follow the prompts as if you were installing the software:

iata76_enu.exe -a

The above should extract the files to /Program Files/Intel/Intel Matrix Storage Manager. There are two folders, /Drivers and /Drivers64 for 32-bit and 64-bit OS's, respectively.

Copy the file IaStor.sys from the Drivers folder to C:/Windows/System32/drivers/

3. copy the following registry file to your desktop (copy and paste into notepad) and save as ahci.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/CriticalDeviceDatabase/pci#ven_8086&dev_2922&cc_0106]

"Service"="iaStor"

"ClassGUID"="{4D36E<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="96" unitname="a">96A</chmetcnv>-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor]

"Type"=dword:00000001

"Start"=dword:00000000

"Group"="SCSI miniport"

"ErrorControl"=dword:00000001

"ImagePath"="system32//drivers//iaStor.sys"

"tag"=dword:00000019

"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor/Parameters]

"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor/Enum]

"0"="PCI//VEN_8086&DEV_2922&SUBSYS_B0051458&REV_02//3&<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="13" unitname="C">13c</chmetcnv>0b<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="C">0c</chmetcnv>5&0&FA"

"Count"=dword:00000001

"NextInstance"=dword:00000001

4. Double check you've copied the IaStor.sys file as part of step 2. Now do the following:

  • Run the ahci.reg file to add the entries into the registry

  • Reboot the computer and enter the BIOS - DO NOT allow it to start Windows yet.

  • Change the setting for the on board Intel controller to AHCI, save and exit BIOS

  • Boot into Windows


When Windows loads it will detect a new hard disk - cancel the wizard for installing the new hardware and run the Intel driver installer you downloaded in step 1.
Reboot the system again and you're good to go

Now, under Device Manager > IDE ATA/ATAPI controllers you should see Intel(R) ICH9 SATA AHCI Controller listed.

Hope someone finds this useful - I wanted to do this as I needed AHCI mode to dual boot Linux and I didn't have a floppy drive on the machine to allow me to install Windows XP in AHCI mode. This is one area <place w:st="on">Vista</place> has moved forward - it will allow you to install drivers from devices other than A: such as a USB pendrive or CD.

If you want to enable write caching, see einshem's tip here:

http://forums.pcper.com/showthread.p...5&postcount=23

Originally Posted by einshem

2. All this process worth nothing if you forget at the end to go to device manager, double klick your hard-drive(s) under "disk drivers", go to "policies" tab and mark "Enable write caching for this disk" (I recommend adding this to the guide)

EDIT: Here is a Registry file that should work for 975X and P965 based boards:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/CriticalDeviceDatabase/pci#ven_8086&dev_2821&cc_0106]

"Service"="iaStor"

"ClassGUID"="{4D36E<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="96" unitname="a">96A</chmetcnv>-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor]

"Type"=dword:00000001

"Start"=dword:00000000

"Group"="SCSI miniport"

"ErrorControl"=dword:00000001

"ImagePath"="system32//drivers//iaStor.sys"

"tag"=dword:00000019

"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor/Parameters]

"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iaStor/Enum]

"0"="PCI//VEN_8086&DEV_2821&SUBSYS_B0051458&REV_02//3&<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="13" unitname="C">13c</chmetcnv>0b<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="C">0c</chmetcnv>5&0&FA"

"Count"=dword:00000001

"NextInstance"=dword:00000001

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值