Definition

Advanced Host Controller Interface (AHCI)

What is Advanced Host Controller Interface?

Advanced Host Controller Interface, or AHCI, is a technical standard for an interface that enables software to communicate with Serial ATA (SATA) devices. These peripheral component interconnect (PCI)-class devices move data between system memory and SATA storage media. AHCI also supports redundant array of independent devices (RAID).

The interface established a new generation of controller technology that surpassed earlier Integrated Drive Electronics (IDE) specifications and improved storage device performance and compatibility.

The history of AHCI development

Intel released the AHCI specification in 2004 to define the functional behavior and software interface of AHCI. It also provides a standard way to program SATA-AHCI adapters.

The specification was developed by the AHCI Contributor Group, which was comprised of hardware, software and original equipment manufacturers, and chaired by Intel. Companies in the group included AMD, Dell, Marvell, Maxtor, Microsoft, Red Hat, Seagate and StorageGear.

AHCI was an important part of building momentum for SATA II technology. It provided a standard SATA controller interface that optimized advanced SATA features that weren't available with the older IDE interface.

AHCI version 1.3.1 is the most recent iteration of the AHCI specification. It supports native command queuing (NCQ), hot swapping and hot plugging, and improved support for modern operating systems (OSes).

How AHCI works

Most motherboards have AHCI enabled by default in the Unified Extensible Firmware Interface (UEFI) or BIOS. Older motherboards might have IDE mode enabled by default and must be switched to AHCI before the OS is installed.

AHCI is supported on current versions of Windows; Linux; OS X; and various open source OSes, such as OpenBSD 7.5, NetBSD 10.0 and FreeBSD 14.0.

SATA hard disk drives (HDDs) and solid-state drives (SSDs) offer several modes of operation: IDE, AHCI or RAID, which usually has AHCI mode enabled. However, it isn't easy to switch the BIOS setting from IDE mode to AHCI once the OS is installed. Windows has a registry workaround that will allow AHCI to be enabled after the OS is installed. Older OS versions require hardware-specific AHCI drivers.

As a traditional storage protocol developed for hard drives and tape, AHCI was designed to manage a single storage request queue. AHCI has a 32-command queue depth, which is the number of input/output (I/O) requests that can be kept waiting to be serviced in a port queue.

Comparison between AHCI and RAID.
AHCI and RAID serve different purposes and have different features as part of the overall storage environment.

Benefits and drawbacks of AHCI

AHCI enables advanced SATA features, such as hot swapping and NCQ. Hot swapping enables SATA drives to be switched out without having to shut down the computer.

NCQ optimizes the way SSDs and HDDs handle simultaneous requests for data, minimizing the movement of the read-write heads and speeding up access time on hard drives using AHCI. On solid-state drives, NCQ improves the performance of large file transfers.

One downside to AHCI is high latency when it's used with SSDs because the specification was developed for rotating storage media and not flash technology . Also, AHCI's limited queue depth means the number of I/O requests can easily become a bottleneck. Additional management is required to avoid having I/O requests fail because they exceed the queue depth.

AHCI vs. NVMe

Nonvolatile memory express (NVMe) is a communication interface developed for NAND flash and high-performance SSDs using PCI Express card slot technology. The NVMe controller directly interfaces with the host central processing unit, whereas AHCI interfaces with the SATA device controller.

Because it was specifically developed for SSDs, NVMe is faster than AHCI, reduces latency and provides better -- over 1 million -- I/O operations per second. NVMe significantly increases the number of I/O queues possible with queue depths of as much as 65,000.

How to switch to AHCI mode

Enabling AHCI improves the overall performance and reduces latency of SATA and SSD storage devices. The following steps are required to switch to AHCI mode:

  1. Verify that AHCI is needed. System operating requirements to ensure that the systems can and should be managed by AHCI.
  2. Back up files and data. This protects important resources from unanticipated incidents that may damage the data.
  3. Update UEFI or BIOS settings. Restart the computer and enter the UEFI or BIOS setting mode; this is where the AHCI mode is found.
  4. Find the correct SATA setting. Once in UEFI or BIOS mode identify the required SATA settings for configuring the storage devices.
  5. Change to AHCI mode. Once the SATA options are located, determine what the current setting is, such as IDE or RAID, and change the setting to AHCI.
  6. Save the setting changes. Once AHCI has been toggled and selected, click Save.
  7. Test and validate AHCI mode. Restart the computer, and check that it boots the OS using AHCI mode.

The future of AHCI

As noted earlier, NVMe technology provides better performance compared to AHCI, but AHCI is still in widespread use. Given the continual need to upgrade storage performance, it's likely NVMe and newer technologies will eventually supersede AHCI.

AHCI and RAID are fundamental to running efficient data management and storage. Learn how AHCI and RAID work and compare.

This was last updated in May 2024

Continue Reading About Advanced Host Controller Interface (AHCI)

Dig Deeper on Storage architecture and strategy