インテルのみ表示可能 — GUID: szc1523133762610
Ixiasoft
インテルのみ表示可能 — GUID: szc1523133762610
Ixiasoft
6.5.6. ECCエラー訂正および検出
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コードを使用します。