高级主机控制器接口(AHCI)是一种接口技术标准,使软件可以与串行ATA(SATA)设备进行通信,这些外围组件互连(PCI )类设备在系统内存和SATA存储介质之间移动数据。
历史/发展
2004年,英特尔发布了AHCI规范,以定义AHCI的功能行为和软件接口,该规范还提供了编程SATA-AHCI适配器的标准方法。该规范由AHCI贡献者小组开发,该小组由硬件,软件和OEM厂商组成,由英特尔担任主席。该组中的公司包括AMD,戴尔,Marvell,迈拓,微软,红帽,希捷和StorageGear。
AHCI是构建SATA II技术动力的重要组成部分,它提供了一个标准的控制器接口,可以优化高级SATA功能,而这些功能是旧的集成驱动电子(IDE)标准接口所不具备的,版本1.3.1是AHCI规范的最新版本。
AHCI如何运作?
大多数主板默认在统一可扩展固件接口(UEFI)或BIOS中启用AHCI ,较旧的主板可能默认情况下启用了IDE模式,并且在安装操作系统(OS)之前需要切换到AHCI。
Windows Vista和更高版本的Windows支持AHCI,从2.6.19版本开始的Linux,OS X,以及各种开源操作系统,例如OpenBSD,NetBSD和FreeBSD。尽管Windows Vista和Windows 7包含AHCI驱动程序,但是如果未在启动驱动器的控制器上启用AHCI,则这些操作系统将不会安装AHCI。
AHCI的优缺点
AHCI支持高级SATA功能,例如热插拔和本机命令队列(NCQ),热插拔无需关闭计算机即可关闭SATA驱动器。
NCQ优化了SSD和硬盘驱动器同时处理数据请求的方式,从而最大程度地减少了读写头的移动,并加快了使用AHCI在硬盘驱动器上的访问时间。在SSD上,NCQ改善了大文件传输的性能。
与AHCI一起使用时,AHCI的缺点之一是延迟高,因为该规范是为旋转存储介质而非闪存开发的。同样,AHCI的队列深度有限,这意味着I / O请求的数量很容易成为瓶颈。为了避免I / O请求超过队列深度而失败,需要进行额外的管理。
AHCI与NVMe
非易失性存储器Express(NVMe)是使用PCI Express(PCIe)卡插槽技术为NAND闪存和高性能SSD开发的通信接口。因为它是专门为SSD开发的,所以NVMe比AHCI快得多,减少了延迟并提供了更好的IOPS。具体来说,NVMe大大增加了可能的I / O队列的数量,队列深度高达65,000。