Advanced Configuration and Power Interface

出典: フリー百科事典『ウィキペディア(Wikipedia)』

ACPI から転送)

ACPIAdvanced Configuration and Power Interfaceの略)は1997年インテル東芝マイクロソフトが共同で作り上げた、電源制御と構成要素に関する公開された統一規格。ACPI2.0(2000年8月に公開)からはさらにコンパックヒューレットパッカード)、フェニックステクノロジーズが主な開発団体として参加している。2006年10月にACPI 3.0bの規格が公開された。

ACPIは電源管理のための枠組であるだけではなく、プラットホームの構成要素を列挙し管理する統一された枠組でもあり、プラットホームの電源管理を行うAPMのみならず、マザーボード上のリソースを列挙するPnPBIOS,マルチプロセッサの列挙を行うMPTable等をも統一した形で置き換えるものである。これらはBIOS主導の管理方式だったが、ACPIはオペレーティングシステム主導の管理を実現し、システム全体の電源管理だけでなく緻密なデバイスの電源をも含めた管理に加え、温度管理やスタンバイ(サスペンド)、ファン制御など、さまざまな機能を提供する。また、マルチプロセッサや16ビットコードの呼び出しにくい64ビットのプロセッサ、CPUの速度制御も可能になり、最近ではノートパソコンだけでなくデスクトップやワークステーション、サーバに関しても使用される局面が多くなった。

必要の無いデバイスへの電源供給を停止したり、使用しないときは自動的にスタンバイ(サスペンド)したりすることにより消費電力を抑えることができる。これによりノートパソコンではバッテリーの持続時間が飛躍的に長くなった。

実装の複雑さおよびOSとの競合で問題が出やすいため、最近ではAPMをサポートしないACPIのみのBIOSが増えてきている。

ACPIはACPI ハードウエアレジスタ,ACPI BIOS,ACPI テーブルおよびACPI Machine Language (AML) の構成要素を持つ。ACPI BIOSはACPI テーブルを初期化し、OS起動後は必要とされる機会は少ないが(IA-32の場合はシステムマネジメントモードを通すことにより)必要に応じて動作する。APMとは違い、電源イベントは主にOS側に見える割り込みとして伝わって来る。 ACPI テーブルはメモリ上に置かれたデータ構造で、システムの初期化に必要なデータが拡張性の高い形で並べられている。 ACPIテーブルにはAMLが含まれたデータがある。AMLとはプラットホームから独立した中間言語列でACPI Source Language (ASL) から生成され、これをOSが解釈することで、高度な機能を実現する。木構造の名前空間やサブルーチン呼出や繰り返しなどの制御構造を持ち、デバイスはその木構造の名前空間の中にあるオブジェクトとして表現され、その識別の枠組に関しては、使用される識別用IDや、使用リソースの記述に使われるデータ構造等の点でPnPBIOSの特徴を受け継いでいる。このように、高級言語により、OSのブートに使われる構成情報を記述するものにOpen Firmwareがある。

[編集] サポートされるプラットフォーム

いわゆるAT互換機アーキテクチャの他にAMD64IA-64を使用したシステムで使用されている。特にIA-64上のOSではACPIサポートは必須の要件となっている。その上で動くOSではWindowsではWindows98から、Linuxでは(開発バージョンの)2.3.19からFreeBSDでは5-CURRENTからACPIが利用できるようになったが、管理対象となるデバイス全てがACPIをサポートしていないと不具合が出ることがある。ACPI 3.0の規格書の\_OSIオブジェクトの記述から読み取れる通りこの他にIA-64上のHP-UX, OpenVMSでもサポートされている。

LinuxやFreeBSDやNetBSDではインテルによって開発及び保守されているACPI Component Architecture(ACPI-CA) と呼ばれるカーネル内コンテキストで動作するライブラリを使用して実装されている。


[編集] 外部リンク