High Bandwidth Memory (HBM2) Interface Intel® FPGA IPユーザーガイド

ID 683189
日付 10/05/2020
Public
ドキュメント目次

6.5.6. ECCエラー訂正および検出

HBM2コントローラーでは、シングルビット・エラー訂正およびダブルビット・エラー検出をサポートします。2つ以上のエラー ビットの訂正または検出はサポートしません。

ECCエンコーダおよびデコーダーブロックは、UIBサブシステム内に存在し、ECC ロジックの効率的な実行に役立ちます。このとき追加のレイテンシーはありません。ECCロジックでは次の動作を実行します。

  • シングルビット・エラーが検出されると、エラーは訂正され、AXIインターフェイスに渡されます。
  • ダブルビット・エラーが検出されると、信号がアサートされてエラーを示し、その信号がAXI Read Data Channel Interfaceの axi_ruser_err_dbe 信号を介して渡されます。
  • エラー情報の入手は、APBインターフェイスを介してすることができます。

HBM2コントローラーのRead-Modify-Write機能を使用して、HBM2 DRAM で検出されたシングルビット・エラーまたはダブルビット・エラーを訂正できます。シングルビット・エラーまたはダブルビット・エラーが対応するエラーは、64ビットHBM2 DQバスごとに検出されます。このため、次のような複数のエラーが検出される場合があります。

  • 複数のシングルビット・エラーは単一のシングルビット・エラーとして扱われ、シングルビット・エラー・カウントは1増加します。
  • 複数のダブルビット・エラーは単一のダブルビット・エラーとして扱われ、ダブルビット・エラー・カウントは1増加します。
  • シングルビット・エラーとダブルビット・エラーは、ダブルビット・エラーとして扱われます。これは、ダブルビット・エラーのプライオリティーが高いためです。 ダブルビット・エラー・カウントは1増加し、シングルビット・エラー・カウントは変化しません。

Read-Modify-Write

Read-Modify-Write機能では、HBM2 DRAMからの読み出し、データの変更、HBM2メモリーへの書き込みを行います。HBM2コントローラーでは、次の機能をRead-Modify-Writeプロセスの一部としてサポートします。

  • Dummy Write: シングルビット・エラーの発生が検出されたHBM2 DRAMデータを訂正します。
  • Partial Write: 部分書き込みの発行をイネーブルされていないバイトがあるHBM2 DRAMに対して行います。

Dummy Write

ECCデコーダーロジックによるReadデータのシングルビット・エラーの検出と訂正が行われると、ユーザーロジックでは、HBM2 DRAM内の対応ビットの訂正にDummy Writeプロセスを使用します。Dummy Writeでは、メモリー位置からのReadを発行し、訂正したReadデータを対応するメモリー位置に書き戻します。

Dummy Writeを要求するには、通常のAXI Writeトランザクションを対応アドレスに対して発行します。このとき、トランザクションのすべてのバイトイネーブルはデアサートします。

HBM2コントローラーでは、Read-Modify-Write動作を内部処理し、DRAMデータを訂正します。このとき、追加のユーザーの介入はありません。Read-Modify-Write動作は、次のプロセスに従います。

  • UIBサブシステム内のAXI Adaptorでは、すべてのバイトイネーブルをデアサートし、Read-Modify-Write要求を識別します。
  • 次に、HBM2コントローラーでは、HBM2 DRAM内の対応アドレスへのReadを発行します。
  • ECC Decoded ReadデータはWrite Dataとして使用されます。これが訂正済みReadデータになるのは、シングルビット・エラーが検出された場合です。
  • HBM2コントローラーでは、HBM2 Writeトランザクションを発行し、後でデコード済みReadデータをメモリーに書き込みます。

Partial Write

HBM2コントローラーのPartial Write機能により、ユーザーロジックでは、部分書き込みの発行をHBM2 DRAMに対して行うことができます。これは、アサートされないバイトイネーブルがあり、選択したDRAMバイトのみが書き込まれる場合です。Partial Write機能では、最初にメモリー位置からReadを発行し、次に正しいReadデータを正しいWriteデータにマージして、メモリー位置に書き戻します。(このプロセスが必要な理由は、Data Mask信号の使用は、ECCがイネーブルの場合にユーザーロジックではできないためです。) HBM2コントローラーでは、Partial Writeのインテリジェント・サポートをAXI4インターフェイスを使用して行います。

Partial Writeを要求するには、通常のAXI Writeトランザクションを発行します。このとき、アサートされていない (つまり完全Writeではない) バイトイネーブルがあります。また、対応WriteデータをHBM2 DRAMに書き込みます。

HBM2コントローラーでは、対応するメモリー・トランザクションの発行を処理します。このトランザクションはPartial Writeの完了に必要です。

  • UIB Subsystem内のAXI Adaptorでは、バイトイネーブルをデコードして、Partial Write要求を識別します。
  • 次に、HBM2コントローラーでは、HBM2 DRAM内の対応アドレスへのReadを発行します。
  • ECC Decoded Readデータは、要求されたWriteデータとマージされます。これは、バイトイネーブルに基づいて行われます。
  • HBM2コントローラーでは、HBM2 Writeトランザクションを発行し、マージされたデータのメモリーへの書き込みを後で行います。このとき、更新されたECCコードを使用します。