インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

4.2.7. エラーの処理

CCUでは、訂正不可能なエラーと訂正可能なエラーの2種類が報告されます。訂正不可能なエラーとは、ハードウェアで訂正できないエラーです (ダブルビットECCなど)。訂正可能なエラーとは、ハードウェアで訂正できるエラーです。ハードウェアは訂正可能なエラーをソフトウェアに報告します。

CCUは、エラーを検出してエラーに関する情報をログに記録し、割り込み (correctible_error_irqおよびuncorrectible_error_irq) として通知します。各CCUコンポーネントは、2つのレジスターセットを実装しています。controlレジスターではエラー報告を有効にし、statusレジスターではエラーをログに記録します。エラー・コントロール・レジスターは、エラー検出イネーブルビット、エラー割り込みイネーブルビット、およびエラーのしきい値フィールドで構成されます。ソフトウェアでは、すべてのアクティブなコンポーネントに対してエラーの検出、訂正、およびログを有効にする必要があります。Correctable Error Control Registerのエラーしきい値フィールドは、訂正可能なエラーをログに記録するまでに発生する訂正可能なエラーの数を決定します。設定されているしきい値に達すると、次に検出された訂正可能なエラーがログに記録されます。

ソフトウェアでは、エラーレジスターのプログラミング、およびハードウェアによって記録されるエラーの処理を担います。リセット時にすべてのエラー・コントロール・レジスターは0に初期化され、エラーの検出、訂正、ログの記録が無効になり、割り込みがマスクされます。ソフトウェアでは、イネーブルビットを1に設定し、しきい値フィールドを目的の値にプログラミングする必要があります。また、Error ValidビットとError Overflowビットはリセット時に0に初期化されます。エラーが検出されるとこれらのビットが設定され、エラー割り込み信号がアサートされます。ソフトウェアでは各ビットに1を書き込み、エラーをクリアする必要があります。
注: 設定されていないビットに1を書き込むことは未定義であり、エラーの損失につながる可能性があります。また、Error Validビットに1を書き込むと、Error Countフィールドもクリアされます。
インテル® Agilex™ HPSでは、訂正可能割り込みと訂正不可能割り込みが結合されて単一のCCU_INTERRUPTを生成します。エラーのISRでは次のステップが実行されます。
  1. ISRでは、Coherent Subsystem Correctable Error Interrupt Status Register (CSCEISRn) およびCoherent Subsystem Uncorrectable Error Interrupt Status Register (CSUEISRn) を読み出し、エラーを検出したユニットを特定します。
  2. 複数のエラーが発生している場合、ISRではエラーに優先順位を付け、処理するエラーを選択します。
  3. ISRでは、最優先のエラーが発生しているユニットのCorrectable Error Status RegisterまたはUncorrectable Error Status Registerを読み出します。
  4. Error ValidビットがError Status Registerで設定されると、ISRでは適切なError Location Registerを読み出します。
  5. ISRでは、Error ValidビットとError Overflowビットの一方または両方に「1」を書き込み、エラーに肯定応答します。
  6. ISRでは、Error Status RegisterおよびError Location Registerからの情報を使用し、エラーの処理に必要な動作を行い、戻ります。