Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

ACPI(エイシーピーアイ)とは | 意味や読み方など丁寧でわかりやすい用語解説

ACPI(エイシーピーアイ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

アドバンスト・コンフィギュレーション&パワー・インターフェイス (アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス)

英語表記

ACPI (エイシーピーアイ)

用語解説

ACPIは、Advanced Configuration and Power Interface(アドバンスト・コンフィギュレーション・アンド・パワー・インターフェース)の略称で、オペレーティングシステム(OS)がコンピュータのハードウェア構成と電源管理を制御するための業界標準のインターフェースである。これは、OSがハードウェアと直接対話し、システムの電源状態、デバイスの構成、熱管理、および様々なイベント処理をより柔軟かつ効率的に行うための基盤を提供する。ACPIが登場する以前は、ハードウェアの管理は主にBasic Input/Output System(BIOS)に依存しており、OSができることは限定的だったが、ACPIはこの状況を根本的に変え、現代のPCにおける省電力機能や高度なハードウェア制御を可能にした。

ACPIが登場した背景には、Windows 95で導入されたPlug and Play(PnP)機能の成功と、コンピュータの性能向上に伴う消費電力の増大、そしてノートPCの普及によるバッテリー駆動時間の要求があった。従来のBIOSは、リアルモードで動作し、ハードウェア固有の処理を直接記述する必要があったため、OSがハードウェアの詳細を把握して複雑な電源管理を行うことは困難だった。例えば、スリープモードからの復帰や、個々のデバイスの電源オン/オフをOSから細かく制御することはできなかった。この問題を解決するため、Intel、Microsoft、Toshibaなどが中心となって、OSがシステム全体のハードウェアを統一されたインターフェースで制御できるACPIが策定された。ACPIは、「OSセントリック」、つまりOSが中心となってハードウェアを制御するという思想に基づいている。

ACPIの主要な機能は多岐にわたる。最も重要なのが電源管理である。ACPIは、システム全体の電源状態(S-states)と、個々のCPUやデバイスの電源状態(C-states、D-states)を定義している。 システム電源状態(S-states)には、主に以下のものがある。 S0:システムが完全に稼働している状態である。 S1:CPUのクロックが停止し、一部のデバイスへの給電が停止するが、RAMには給電が維持され、比較的早く復帰できる状態である。 S3:一般に「スタンバイ」または「サスペンド・トゥ・ラム(STR)」と呼ばれる状態である。CPUと多くのデバイスへの給電が停止するが、RAMには給電が維持されるため、RAMの内容が保持される。消費電力は非常に低く、数秒でS0状態に復帰できるため、一時的な中断によく利用される。 S4:一般に「休止状態」または「サスペンド・トゥ・ディスク(STD)」と呼ばれる状態である。RAMの内容がハードディスクドライブ(またはSSD)に書き込まれ、システム全体の電源がオフになる。S3よりも復帰に時間がかかるが、S5に匹敵する低消費電力を実現する。 S5:システムが完全にシャットダウンした状態である。RAMの内容は失われ、最も低い消費電力となる。

CPU電源状態(C-states)は、CPUがアイドル状態になったときに消費電力を削減するための機能である。C0はCPUが完全に稼働している状態を指し、C1、C2、C3と数字が大きくなるにつれて、CPUの停止レベルが深くなり、消費電力が削減される。例えば、C3状態ではCPUのコアクロックやキャッシュへの給電が停止され、より深い省電力を実現する。

デバイス電源状態(D-states)は、個々のデバイス(例:HDD、ネットワークカード、USBコントローラー)の電源管理をOSが制御できるようにする。D0が完全に稼働している状態、D3が完全に電源がオフになった状態である。OSはデバイスの使用状況に応じて、適切なD-stateに移行させることで、システム全体の消費電力を最適化する。

次に重要な機能は**デバイス構成とプラグ&プレイ(PnP)**である。ACPIは、OSがシステム内の各デバイスを検出、識別し、割り込み要求(IRQ)、DMAチャネル、I/Oポート、メモリ領域といったシステムリソースを動的に割り当てたり、デバイスを有効/無効にしたりできるようにする。これにより、ユーザーはデバイスの追加や削除を簡単に行えるようになり、システムリソースの競合もOSが自動的に解決できるようになる。

**熱管理(Thermal Management)**もACPIの重要な役割の一つである。ACPIは、CPU、GPU、チップセットなどの温度センサーからの情報に基づいて、OSがシステムの熱を管理するためのインターフェースを提供する。OSはこれらの温度情報を受け取り、冷却ファンの速度を制御したり、CPUのクロック周波数や電圧を一時的に引き下げたり(サーマルスロットリング)することで、システムが過熱するのを防ぎ、安定した動作を維持する。

さらに、ACPIはシステムイベント管理機能も提供する。電源ボタン、スリープボタンの押下、ノートPCのカバーの開閉、バッテリー残量の低下、ACアダプターの接続/切断といったハードウェアからの様々なイベントをOSに通知する。OSはこれらのイベントに基づいて、システムをスリープ状態に移行させたり、警告メッセージを表示したり、適切なアクションを実行したりする。

ACPIのアーキテクチャは、主にACPI BIOS、ACPIテーブル、およびAML(ACPI Machine Language)から構成される。 ACPI BIOSは、マザーボードのファームウェア(現代ではUEFIと呼ばれることが多い)の一部であり、ハードウェア固有の低レベルな制御ロジックや、後述するACPIテーブルを格納している。 ACPIテーブルは、システム内のハードウェア構成、電源状態の定義、およびハードウェアを制御するためのコード(AML)が記述されたデータ構造である。OSは起動時にこれらのテーブルを読み込み、システムがどのようなハードウェアを備え、どのような電源管理機能を持つかを把握する。代表的なACPIテーブルには、Root System Description Pointer (RSDP)、Root System Description Table (RSDT)、Fixed ACPI Description Table (FADT)、Differentiated System Description Table (DSDT)、Secondary System Description Table (SSDT)などがある。特にDSDTやSSDTには、ハードウェアを操作するための具体的な手順がAMLコードとして記述されている。 **AML(ACPI Machine Language)**は、ACPI BIOSが提供する独自のスクリプト言語である。OSはACPIテーブルから読み込んだAMLコードを解釈・実行することで、特定のハードウェアの実装詳細を知らなくても、共通のインターフェースを通じてハードウェアを制御できる。これにより、OS開発者は異なるハードウェアプラットフォームに対応するために、ハードウェア固有のドライバを大量に記述する必要がなくなり、OSのポータビリティが向上した。

OS側にはACPIドライバが組み込まれており、これがACPIテーブルを解析し、AMLコードを実行し、ハードウェアからのイベントを処理する役割を担う。つまり、ACPIはハードウェアの詳細を抽象化し、OSがより高レベルな視点からシステム全体を管理するための標準化された橋渡し役となっている。この仕組みによって、現在のコンピュータシステムは、ユーザーが意識することなく高度な省電力機能やスムーズなデバイス管理を実現し、高速な起動や終了、バッテリー駆動時間の延長、静音性の向上といった利便性を提供している。ACPIは、モダンなOSの機能とユーザー体験を支える不可欠な技術基盤であると言える。

関連コンテンツ

関連IT用語