AHCI【Advanced Host Controller Interface】
概要

初期のSATAは、従来のATA/IDE(パラレルATA)からの移行をスムーズにするため、コマンド体系やドライバ仕様の多くを旧来のものから引き継いでいた。コントローラが従来のIDEコントローラを模倣して動作するこの方式では、SATAが備える機能を十分に活用できなかった。AHCIはこれらの仕様をSATA専用のものに刷新し、専用のレジスタ構成やコマンド処理方式を採用することで、SATA向けに最適化された制御を実現している。
AHCIを利用することで有効になる機能として、NCQ(ネイティブコマンドキューイング)とホットスワップ(ホットプラグ)がある。NCQはストレージ装置が複数の読み書き要求を受けた際にコマンドの実行順序を最適化する仕組みで、磁気ディスク装置ではヘッドの移動効率を高めてアクセス速度を向上させる。ホットスワップはコンピュータの電源を入れたままストレージ装置の着脱を行う機能で、サーバや業務用機器での運用に有用である。
AHCIを利用するには、チップセット等に内蔵されているSATAコントローラ、接続するストレージ装置、オペレーティングシステム(OS)のドライバのすべてがAHCIに対応している必要がある。コンピュータのBIOSやUEFIでは、コントローラの動作モードとして「AHCIモード」と「IDEエミュレーションモード」を切り替えられる場合がある。現在では多くのOSがAHCIドライバを標準で備えており、特別な設定なしに利用できる環境が一般的となっている。
近年ではSSDの普及に伴い、PCI Express接続のストレージ向けに「NVMe」(NVM Express)が広く用いられるようになった。NVMeはAHCIとは異なる仕様で、フラッシュメモリの高い並列処理性能を活用できるよう設計されており、より低遅延・高スループットを実現している。一方、SATA接続のSSDやハードディスクでは現在もAHCIが標準的な制御方式として用いられる。