

電源投入時自己診断テスト(POST )は、コンピュータやその他のデジタル電子機器の電源投入直後にファームウェアまたはソフトウェアルーチンによって実行されるプロセスです。 [ 1 ]
POSTプロセスは、デバイスの初期状態を設定し、ハードウェアコンポーネントに不具合がないかを検出します。POSTの結果は、デバイスに内蔵されたパネルに表示されたり、外部デバイスに出力されたり、診断ツールによる将来の取得のために保存されたりします。一部のコンピュータでは、コンピュータのディスプレイに不具合が発生した場合に、エラーコードを点滅やビープ音のシーケンスとして表示するためのインジケータランプやスピーカーが備えられている場合があります。
POSTルーチンは、コンピュータの起動前処理シーケンスの一部です。POSTルーチンが正常に完了すると、ブートストラップローダーコードが呼び出され、オペレーティングシステムがロードされます。
IBM PC互換コンピュータでは、POSTの主な処理はBIOSまたはUEFIによって行われますが、これらの処理の一部は、特にビデオやSCSIの初期化など、特定の周辺機器を初期化するために設計された他のプログラムに委任される場合があります。これらの特定の機能を持つプログラムは、一般的にオプションROMとして総称されるか、個別にビデオBIOS、SCSI BIOSなどと呼ばれます。
2000年頃までの初期のBIOSでは、POST(パワーオンセルフテスト)でメモリテストを含むすべてのデバイスの徹底的なテストが実行されていました。IBMによるこの設計は、コールドスタートプロセスの一環としてハードウェアテストを実行する同社の大型メインフレームシステムをモデルにしたものです。PCプラットフォームがより汎用的な消費者向けデバイスへと進化するにつれ、パリティメモリやPOSTにおける徹底的なメモリテストなど、メインフレームやミニコンピュータに由来する高信頼性機能は、ほとんどのモデルから削除されました。メモリ価格の急激な下落に伴い、PCのメモリ容量が飛躍的に増加したことも、この要因の一つです。特定のCPUを使用したメモリテストの所要時間は、メモリ容量に正比例するからです。
初代 IBM PC は、最小で 16 KB の RAM を搭載でき、通常は 64 KB から 640 KB を搭載していました。搭載メモリの量に応じて、コンピュータの 4.77 MHz 8088 は POST を完了するのに 5 秒から 1.5 分かかり、これをスキップする方法はありませんでした。IBM XT 以降、POST 中は空白の画面ではなくメモリ カウントが表示されるようになりました。[ 2 ]バス レートが約 1 GHz、32 ビット バスを備えた現代の PC は、2000 倍または 5000 倍高速かもしれませんが、メモリははるかに多くのギガバイトを搭載している可能性があります。1980 年代よりも起動時間が重要視されるようになった現在、30 秒から 60 秒のメモリ テストは、ほとんどのユーザーがそのコストに見合うとは考えていない信頼性という利点のために、望ましくない遅延を追加します。ほとんどのクローンPCのBIOSでは、キーを押すことでPOST RAMチェックをスキップすることができました。また、2000年代以降のより新しい機種では、BIOS設定で有効にしない限り、RAMテストは実行されないことがよくありました。さらに、現代のDRAMは1980年代のDRAMよりもはるかに信頼性が高くなっています。
POST(パワーオンセルフテスト)中、BIOSは、PCがサポートすることが想定されるハードウェアとオペレーティングシステムのマトリックスに関する、競合し、変化し、さらには相互に排他的な複数の標準とイニシアチブを統合する必要があります。ただし、表示されるのはせいぜい簡単なメモリテストとセットアップ画面のみです。POST中のメインBIOSの主な役割は次のとおりです。
上記の機能は、最初のBIOSバージョンからすべてのBIOSバージョンにおいてPOSTによって提供されます。それ以降のBIOSバージョンでは、POSTはさらに以下の機能も提供します。
初期のBIOSでは、POSTは起動デバイスを整理したり選択したりする機能はなく、単にフロッピーディスクやハードディスクを識別するだけで、システムは常にその順序で起動を試みました。
CPUがリセットされると、BIOSはPOSTを開始します。CPUが最初に実行しようとするメモリ位置は、リセットベクタと呼ばれます。ハードリブートの場合、ノースブリッジはシステムフラッシュメモリにあるBIOSにコードフェッチ要求を送信します。ウォームブートの場合、BIOSはRAMの適切な場所に配置され、ノースブリッジはリセットベクタ呼び出しをRAMに送信します。チップセットが標準化される前の初期のPCシステムでは、BIOS ROMはリセットベクタを含むアドレス範囲に配置され、BIOSはROMから直接実行されていました。これが、従来のメモリマップでマザーボードのBIOS ROMがセグメントF000にある理由です。
現代のBIOSのPOSTフローにおいて、BIOSが最初に行うべきことの一つは、実行理由を特定することです。例えば、コールドブートの場合、BIOSはすべての機能を実行する必要があるかもしれません。しかし、システムが省電力モードやクイックブートモードをサポートしている場合、BIOSは標準的なPOSTデバイス検出を回避し、プリロードされたシステムデバイステーブルからデバイスをプログラムするだけで済む可能性があります。
起動シーケンスの一環として、POSTルーチンはBIOSの組み込み設定機能にアクセスするためのキーを押すようユーザーに促すメッセージを表示する場合があります。これにより、ユーザーはオペレーティングシステムがロードされる前に、マザーボード固有のさまざまなオプションを設定できます。キーが押されない場合、POSTはインストール済みのオペレーティングシステムをロードするために必要なブートシーケンスに進みます。
多くの最新のBIOSおよびUEFI実装では、POST中にメーカーのロゴが表示され、エラーが発生しない限り従来のテキスト画面は非表示になります。テキスト画面は、BIOS設定で「Quiet Boot」オプションを無効にすることで有効にできる場合が多いです。




オリジナルの IBM BIOS では、POST 診断情報をI/O ポート0x80に数値を出力することで提供していました(一部の障害モードでは画面表示が不可能でした)。進行状況表示とエラー コードの両方が生成されました。コードが生成されない障害の場合は、最後に正常に実行された操作のコードが問題の診断に役立てられました。ロジック アナライザまたは専用のPOST カード(ポート 0x80 の出力を小型ディスプレイに表示するインターフェースを使用することで、技術者は問題の原因を特定できました。コンピュータ上でオペレーティングシステムが実行されると、Linuxなどの一部の OS ではポート 0x80 を I/O タイミング操作に使用するため、このようなボードによって表示されるコードは意味をなさなくなる可能性があります。可能なステージとエラー状態に対応する実際の数値コードは、BIOS のサプライヤーによって異なります。同じサプライヤーの異なる BIOS バージョンでもコードが異なる場合がありますが、多くのコードは異なるバージョンでも変更されません。
後期のBIOSでは、マザーボードに接続されたPCスピーカー(搭載されていて正常に動作している場合)からの一連のビープ音を使用してエラーコードを通知していました。一部のベンダーは、MSIのDブラケットなど、独自のバリエーションや拡張機能を開発しました。POSTビープ音のコードはメーカーによって異なります。
数値コードとビープ音コードに関する情報は、BIOSおよびマザーボードの製造元から入手できます。多くのBIOSのコードを収集しているウェブサイトもあります。[ 3 ]
これらのPOSTビープ音コードは、CompTIA A+試験で具体的に扱われています。
AppleのMacintoshコンピュータも、コールドブート後にPOSTを実行します。致命的なエラーが発生した場合、Macは起動音を鳴らしません。
1987 年以前に製造された Mac は、POST に失敗すると、音を立てずに静かにクラッシュし、フリーズします。動作している場合は、画面に1 つの 16 進数文字列とSad Macアイコンが表示されます。1987 年以降 1998 年以前に製造された Mac は、POST に失敗すると、モデルによって異なる「デス チャイム」と呼ばれる音で即座に停止します。デス チャイムは、単純なビープ音、自動車の衝突音、ガラスが割れる音、短い音楽音などです。動作している場合は、画面に Sad Mac アイコンと 2 つの 16 進数文字列が表示され、これを使用して問題を特定できます。同じ期間に製造された Mac の中には、1987 年以前に製造された Mac のようにデス チャイムを使用しないものもありますが、デス チャイムを使用していたものと同じ形式、つまり画面に Sad Mac アイコンと 2 つの 16 進数文字列が表示される形式は維持されています。 1998年以前のPCIアーキテクチャに基づいた旧型Macでは、Sad Macアイコンも画面上の16進数文字列も表示されず、終了音だけが鳴ります。
Appleが1998年にiMacを発表したとき、それは当時の他のMacとは根本的に異なるものでした。iMacは、いわゆる「ニューワールドMac」の生産を開始しました。iMac G3、Power Macintosh G3(ブルー&ホワイト)、Power Mac G4(PCIグラフィックス)、PowerBook G3(ブロンズキーボード)、PowerBook G3(FireWire)などのニューワールドMacは、ハードドライブからMac OS ROMをロードします。致命的なハードウェアエラーではないエラーが発生した場合、起動時に⌘ Command+++を押し続けたときと同じ画面が表示されますが、「0 >」プロンプトの代わりに⌥ Optionエラーメッセージが表示されます。致命的なハードウェアエラーが発生した場合は、次のビープ音が鳴ります。[ 5 ]OF
ビープ音コードは1999年10月に改訂されました。[ 6 ]さらに、一部のモデルでは、電源LEDが一定のリズムで点滅します。
IntelベースのMacがUEFIを使用して導入されたことで、起動音は再び変更されました。[ 7 ] [ 8 ]これらの音は、 T2セキュリティチップを搭載したIntelベースのMacには存在しません。[ 7 ]これは、T2セキュリティチップを搭載していないMacとはPOSTプロセスの処理方法が異なるためです。
MacがAppleシリコンに移行したことで、MacのPOSTプロセスは根本的に変わりました。UEFIを搭載したほとんどのIntelベースのMacとは異なり、AppleシリコンベースのMacは、 iPhoneやiPadのファームウェアと同様に、低レベルブートローダー(LLB)をロードするブートROMを使用します。T2セキュリティチップを搭載したIntelベースのMacと同様に、ハードウェア障害を示すためのビープ音やトーンは使用されません。致命的なハードウェアエラーではないエラーが発生した場合、画面に感嘆符が表示されるか、デバイスはデバイスファームウェアアップデート(DFU)モードに入ります。致命的なハードウェアエラーが発生した場合は、音声または視覚的なフィードバックは提供されません。さらに、一部のモデルでは、電源LEDが一定のリズムで点滅します。
Amigaの歴史的なコンピュータシリーズ(A1000から4000まで)は、興味深いPOSTシーケンスを備えています。これは、他のシステムのようにビープ音を鳴らすのではなく、さまざまな色の点滅する画面のシーケンスでユーザーに、さまざまなハードウェアPOSTテストが正しく行われたか、失敗したかを示すものです。
Amigaシステムは起動時に以下の手順を実行します。
システムがROMテストに失敗すると、画面表示が赤くなり、システムが停止します。
ほぼすべてのアミーガモデルは、電源を入れると、黒画面、濃い灰色、薄い灰色のカラー画面がモニター画面全体を素早く順に埋めるという同じ色のシーケンスを表示します(アミーガは通常、電源を入れて起動するのに2~3秒かかります)。[ 9 ]
A4000は起動時に薄いグレーの画面を表示するだけです(起動時間は2秒から最大3秒です)。
初期のコンピュータ時代のように独自規格ではなく、歴史的なAmigaモデルのキーボードは、より実用的な意味で国際規格ANSI / ISO 8859-1に基づいていました。キーボード自体はインテリジェントなデバイスであり、独自のプロセッサと、押されたキーのシーケンスをバッファとして保持するための4キロバイトのRAMを搭載していました。そのため、メインLEDを順番に点滅させることで、エラーが検出された場合にユーザーに通知することができました。
大型家電、航空電子機器、通信機器、医療機器などの多くの組み込みシステムには、電源投入時に自動的に呼び出される自己テストルーチンが組み込まれています。 [ 11 ]