WHEA-LoggerはAMDとIntelで出方が違うのか|PCIe AERは共通仕様、CPU側MCAの違いを整理【2026年版】
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
共通なのはWindowsのWHEAとPCIeのAER規格、違うのはCPU内部のMachine Check Architectureです
WHEA-LoggerのイベントID 17・18・19やID 1を調べていると、Primary Device Nameに表示されるベンダーIDが環境によって違ったり、AMD環境の解説記事とIntel環境の解説記事で書かれている対処法が微妙に食い違っていたりすることがあります。WHEA(Windows Hardware Error Architecture)という枠組み自体はAMD・Intelどちらでも共通のWindows機能ですが、CPUがエラーを検出して報告する仕組み(Machine Check Architecture)の実装は、AMDとIntelでそれぞれ独自に定義されています。
AMD公式のAMD64 Architecture Programmer’s ManualとIntel公式のSoftware Developer’s Manualという一次情報を突き合わせ、どこが共通でどこが違うのか、そして今使っている環境ではどこを重点的に確認すればいいのかを整理します。
出典:Microsoft WHEA概要・Microsoft Hardware Errors and Error Sources・Microsoft PCIデバイスの識別子・AMD64 Architecture Programmer’s Manual Volume 2(第9章 Machine Check Architecture)・Intel 64 and IA-32 Architectures SDM Volume 3B・Linuxカーネル公式ドキュメント PCIe AER
AMD環境とIntel環境の両方を触っていると、あるいは片方から片方に乗り換えると、WHEA-Loggerに記録される内容やPrimary Device Nameのベンダー表示の見え方に違いを感じることがあります。「AMDとIntelでWHEAの仕組み自体が違うのか」「プラットフォームによって原因の切り分け方は変わるのか」という疑問に、正確な線引きで答えます。
結論からいうと、WHEA(Windows Hardware Error Architecture)というログの枠組み自体はAMD・Intelどちらでも同じWindows機能で、イベントID・Reported by component・Error Source・Error Typeといった表示項目のフォーマットに違いはありません。一方で、CPUがエラーを検出してWHEAへ報告する仕組み、つまりMachine Check Architecture(MCA)の実装は、AMDとIntelがそれぞれ自社のプロセッサ向けに独自に定義しています。
既存記事のイベントID 17・18・19の解説とイベントID 1の記事は、いずれもIntelのSoftware Developer’s ManualをベースにMachine Check Architectureを解説してきました。この記事では、AMD公式のAMD64 Architecture Programmer’s Manual第9章を新たに一次情報として調査し、Intel側と実際にどこが同じでどこが違うのかを整理したうえで、AMD環境・Intel環境それぞれで実務上どこを重点的に確認すべきかまで踏み込みます。
目次
基礎知識WHEA自体はAMD・Intelどちらでも同じ仕組みで動作している
WHEA(Windows Hardware Error Architecture)は、CPU・メモリ・PCI Expressデバイスなど、さまざまなハードウェアが検出したエラー情報を標準化し、Windowsのシステムイベントログへ記録する仕組みです。この記録を実際にイベントビューアーへ書き出す役割を担っているのが「Microsoft-Windows-WHEA-Logger」というプロバイダーで、AMD環境かIntel環境かによってプロバイダー名やログの構造が変わることはありません。
イベントID 17・18・19の記事やイベントID 1の記事で解説したイベントIDの意味、Reported by component・Error Source・Error Type・Processor APIC ID・Primary Device Nameといった表示項目は、いずれもWindows側(WHEA)が定義しているものです。AMD環境でもIntel環境でも同じイベントID・同じ項目名でログが記録され、イベントビューアーの操作方法やPowerShellでの抽出コマンドも共通です。
また、AMD64 Architecture Programmer’s Manualには「System software executes the CPUID instruction to determine whether a processor implements the machine-check exception (#MC) and the global MCA MSRs」という記載があり、AMDのCPUもmachine-check例外(#MC)という同じ名称の例外機構を使ってエラーを報告します。#MCという例外自体はAMD・Intelどちらのx86プロセッサにも共通する枠組みで、WHEAはこの#MCやMCAレジスタから得た情報を、CPUベンダーを問わず同じ形式のイベントログへ変換しています。違いが生じるのは、この先で説明するCPU内部の実装部分です。
実装の差CPU内部で違うのはIntelのCMCIとAMDのエラースレッショルディング
WHEAが受け取るエラー情報のもとになっているのは、CPU内部のMachine Check Architecture(MCA)です。MCAという名称自体はAMD・Intelどちらの公式資料でも使われていますが、その実装(レジスタ構成・エラー分類・割り込みの仕組み)は各社が自社のマニュアルで個別に定義しています。
Intelの場合|CMCIとポーリングの2経路
イベントID 1の記事で詳しく解説したとおり、Intelの Software Developer’s Manual Volume 3Bは、Corrected Machine Check Interrupt(CMCI)という割り込みベースの仕組みを定義しています。CPUの各Machine Checkバンクには訂正済みエラーの発生回数を数えるカウンターがあり、IA32_MCi_CTL2レジスタでしきい値を設定しておくと、カウンターがそのしきい値に達した時点でCMCIという局所割り込みが発生し、OS側へ即座に通知されます。CMCIが利用できない場合は、WHEAが一定間隔でMachine CheckバンクのMSRを読みに行くポーリングで代替します。
AMDの場合|エラースレッショルディングとポーリング
AMD64 Architecture Programmer’s Manual第9章「Machine Check Architecture」には、Intelとは異なる形の仕組みが定義されています。まず、AMDのMCAはエラーを「corrected(訂正済み)」「uncorrected(未訂正)」に加えて「deferred(遅延)」という3つに分類します。deferredエラーは、検出された時点ではまだ命令実行やアーキテクチャ状態に影響していない潜在的なエラーで、実際にそのデータが使用される段階になって初めてuncorrectedへ格上げされ、machine-check例外として報告される仕組みです。
訂正済みエラーの通知方法についても、AMD公式資料には「IntelのCMCIと同じ名称」の仕組みは登場しません。かわりに定義されているのが、MCi_MISCj レジスタを使った「エラースレッショルディング(error thresholding)」です。マニュアルには「Thresholding is a mechanism provided by hardware to count detected errors, and (optionally) generate an APIC-based interrupt when a programmed number of errors has been counted」と説明されており、エラーの発生回数をハードウェアがカウントし、指定した回数に達するとAPIC割り込みでOSへ通知するという、目的はCMCIに近い仕組みです。ただしレジスタ構成は異なり、VAL(有効)・CTRP(カウンタ存在)・LKD(ロック)・IntP(割り込みサポート)・LVTOFF(APIC LVTアドレス)・CNTE(カウンタ有効化)・INTT(割り込み種別)・OF(オーバーフロー)・ERRCT(エラーカウント)といったビットフィールドで構成されています。さらにAMDには、corrected errorのしきい値割り込みとは別に、deferred errorを検出した時点で割り込みを発生させる「deferred error interrupt」という仕組みも用意されており、どちらもMCA_INTR_CFGレジスタ(MSR C000_0410)のLVTオフセット設定で有効にします。
Intel: IA32_MCi_CTL2(CMCIのしきい値・有効化ビット。SDM Volume 3B)
AMD: MCi_MISCj(Thresholding Register Format。VAL/CTRP/LKD/IntP/LVTOFF/CNTE/INTT/OF/ERRCT。APM Vol.2 第9章)
つまり、「訂正済みエラーが増えたらポーリングを待たずに割り込みで即座に知らせる」という目的自体はIntel・AMD共通ですが、その実装名称・レジスタ構成・エラー分類の細かさはCPUベンダーごとに異なります。Corrected・Uncorrectedの危険度早見表で解説した重大度の考え方自体は、WHEAが両方の実装を吸収したうえで付与するものなので、AMD・Intelどちらの環境でも共通して使えます。
共通仕様PCIeのAER(Advanced Error Reporting)はCPUベンダーに関係のないPCI-SIG規格
WHEA-LoggerのイベントID 17でよく見る「Error Source: Advanced Error Reporting (PCI Express)」というAER(Advanced Error Reporting)は、CPUメーカーが独自に定めた機能ではありません。AERはPCI-SIGが策定するPCI Express仕様そのものの一部で、Linuxカーネル公式ドキュメントにも「PCIe defines two error reporting paradigms: the baseline capability and the Advanced Error Reporting capability」と説明されているとおり、PCIeバス上のRoot PortやEndpointが標準で備える(あるいはオプションとして実装する)エラー報告の枠組みです。
AMDのRyzenプラットフォームでも、Intelの Coreプラットフォームでも、GPUやNVMe SSDが接続されるPCIe Root Portは同じAERの仕組みでエラーを検出し、同じ形式でWHEAへ報告します。したがって、イベントID 17が記録される頻度や内容は、GPU・SSD・マザーボードの実装(信号品質、PCIeライザーケーブルの有無、リンク速度など)に左右されるのであって、CPUがAMDかIntelかという違いそのものが直接の原因になるわけではありません。GPUの一瞬の切断やブラックアウトを伴う場合の切り分け手順は、グラボが一瞬消えて復帰する原因の記事で解説しています。
識別子Primary Device NameのベンダーID表示もプラットフォーム共通の仕組み
WHEA-Loggerのイベントログに表示される「Primary Device Name」には、PCI\VEN_xxxx&DEV_xxxxという形式のハードウェアIDが含まれます。VENの部分はPCI-SIGが管理するベンダーIDで、NVIDIAなら10DE、AMDなら1002、Intelなら8086という具合に、そのエラーを検出したPCIeデバイスのメーカーを示します。Microsoft公式のPCIデバイス識別子ドキュメントが定めるこの表示形式そのものは、システムに搭載しているCPUがAMDかIntelかによって変わることはありません。
ここで混同しやすいのは、Primary Device Nameに表示されるベンダーIDが「デバイス側」の情報であり、「CPU側」のブランドとは別物という点です。たとえばIntel Core環境にAMD製GPUを搭載していれば、Primary Device NameにはAMDのベンダーID1002が表示されます。逆にAMD Ryzen環境にNVIDIA製GPUを搭載していれば10DEが表示されます。CPUのプラットフォームとPCIeデバイスのベンダーは独立した情報なので、「AMD環境だからベンダーIDの出方が違う」という現象は原則として起こりません。
一覧AMDとIntelで何が同じで何が違うか
ここまで整理した内容を、項目ごとに一覧にします。
| 項目 | AMD | Intel |
|---|---|---|
| WHEAの枠組み自体 | 共通(Windowsが管理、Event ID・項目名は同じ) | 共通(Windowsが管理、Event ID・項目名は同じ) |
| CPU側の分類名(公式マニュアル上) | corrected/uncorrected/deferredの3分類 | corrected/uncorrectedが基本 |
| 訂正済みエラーの割り込み通知 | エラースレッショルディング(MCi_MISCjレジスタ) | CMCI(IA32_MCi_CTL2レジスタ) |
| よく確認するBIOS設定名 | PBO、Curve Optimizer、EXPO、SoC電圧、FCLK/UCLK | 電圧オフセット、自動OC機能(Multi-Core Enhancement系)、XMP |
| PCIeのAER規格 | PCI-SIG規格で共通、CPUベンダー非依存 | PCI-SIG規格で共通、CPUベンダー非依存 |
| Primary Device Nameの表示形式 | 共通のVEN_/DEV_形式(デバイス側のベンダーID) | 共通のVEN_/DEV_形式(デバイス側のベンダーID) |
表の上3行(WHEAの枠組み・CPU側の分類名・割り込み通知の仕組み)がAMDとIntelで実装が分かれる部分、下3行(PCIeのAER規格・Primary Device Nameの表示形式)は共通です。「よく確認するBIOS設定名」は公式マニュアルの機能名ではなく、実務上そのプラットフォームで不安定の原因になりやすいチューニング項目の一般的な呼び名です。
実務今使っている環境でどこを重点的に確認すべきか
WHEAのログ形式自体は共通なので、確認する手順(イベントビューアーでWHEA-Loggerを絞り込む、Reported by component・Error Source・Error Typeを見る)はAMD・Intelどちらでも同じです。違うのは、エラーの原因になりやすいプラットフォーム固有のチューニング項目です。
言い換えると、AMD環境からIntel環境へ乗り換えた(あるいはその逆)としても、WHEA-Loggerの見方自体を学び直す必要はありません。変わるのは「まず疑うべきBIOS設定の名前」であり、切り分けの考え方そのものではないという点が、実務上いちばん押さえておきたいポイントです。
Q&Aよくある質問
まとめ共通なのはWHEAとAER、違うのはCPU内部のMCA実装
WHEA-Loggerのイベントログという枠組み自体は、AMD・Intelどちらの環境でも共通のWindows機能です。イベントID・Reported by component・Error Source・Error Type・Primary Device Nameといった表示項目のフォーマットに、CPUベンダーによる違いはありません。
実際に違うのは、CPU内部でエラーを検出し報告する仕組み(Machine Check Architecture)の実装です。IntelはCMCI(IA32_MCi_CTL2レジスタ)、AMDはエラースレッショルディング(MCi_MISCjレジスタ)という、目的は近いが名称もレジスタ構成も異なる仕組みを持ち、AMDはさらにcorrected・uncorrectedに加えてdeferredという分類も定義しています。PCIeのAERやPrimary Device Nameのベンダー表示は、いずれもCPUベンダーに関係のない共通規格です。
実務では、WHEA-Loggerの見方そのものを学び直す必要はありません。AMD環境ならPBO・Curve Optimizer・EXPO・SoC電圧、Intel環境なら電圧オフセット・自動OC機能・XMPというプラットフォーム固有のチューニング項目を優先して確認してください。基本的な切り分け手順はイベントID 17・18・19の記事、ID 1特有の見方はイベントID 1の記事で解説しています。




