オプションのECCは、エンコーダとデコーダ・コレクタで構成されており、シング ル・ビット・エラーの検出と訂正、ダブル・ビット・エラーの検出を行います。ECC は各64ビット・メッセージに8ビットECCを使用します。ECCは以下の特長を備え ています。
■ HammingコードECC:64ビットの各データを、8ビットのHammingコード・パリ
ティ・ビットを持つ72ビットのコードワードにエンコードします。
■ レイテンシ:
■ 書き込み時、最大1または2クロック遅延
■ 読み出し時、最大1または3クロック遅延
■ すべてのシングル・ビット・エラーを検出し、訂正します。また、ECCはシング ル・ビット・エラーのユーザ定義スレッショルドに達すると割り込みを送信しま す。
■ すべてのダブル・ビット・エラーを検出します。また、ECCはダブル・ビット・
エラーのユーザ定義スレッショルドに達すると、ダブル・ビット・エラー数をカ ウントして、割り込みを送信します。
■ 部分的書き込みを受け入れます。
■ 強制エラーを作成して、ECCの動作をチェックします。
■ レディ・ステートにパワーアップします。
図 6–3に、ECCのブロック図を示します。
第 6 章 : 機能の説明 ̶ 高性能コントローラ 6–7 ブロック説明
ECCは以下のブロックで構成されます。
■ エンコーダ—64ビット・メッセージを72ビット・コードワードにエンコードしま す。
■ デコーダ・コレクタ—可能な場合、72ビット・コードワードをデコードおよび訂 正します。
図 6‒3. ECC のブロック図
デコーダ-コレクタ
ECC コントローラ
エンコーダ ライト・メッセージ
N x 64ビット ECC
ライト符号語 N x 72ビット
リード・メッセージ N x 64ビット
32ビット
リード符号語 N x 72ビット
N x 72ビット DDRまたはDDR2 SDRAM メモリ・
コントローラ ローカル・
インタフェースへ ローカル・
インタフェースから
ローカル・インタフェースへ、
ローカル・インタフェースから
6–8 第 6 章 : 機能の説明 ̶ 高性能コントローラ ブロック説明
■ ECCロジック—複数のエンコーダとデコーダ・コレクタを制御するため、ECCはさ まざまなバス幅を扱うことができます。 また、エンコーダおよびデコーダ・コレ クタの以下の機能も制御します。
■ 割り込み:
■ 検出および訂正されたシングル・ビット・エラー
■ 検出されたダブル・ビット・エラー
■ シングル・ビット・エラー・カウンタ・スレッショルドの超過
■ ダブル・ビット・エラー・カウンタ・スレッショルドの超過
■ コンフィギュレーション・レジスタ:
■ シングル・ビット・エラー検出カウンタ・スレッショルド
■ ダブル・ビット・エラー検出カウンタ・スレッショルド
■ 最初に検出されたエラーまたは最新エラーのステータスのキャプチャ
■ テストを目的とするECCの意図的な破損
■ ステータス・レジスタ:
■ エラー・アドレス
■ エラー・タイプ:シングル・ビット・エラーまたはダブル・ビット・エ ラー
■ 対応するバイト・エラーECCシンドローム
■ エラー信号—データ・ワードに対応するエラー信号がデータと共に供給され、
訂正不能なダブル・ビット・エラーがリターン・データ・ワードで発生した 場合にHighになります。
■ カウンタ:
■ 検出および/または訂正されたシングル・ビット・エラー
■ 検出されたダブル・ビット・エラー
ECCは、それぞれパラレルに動作する複数のエンコーダをインスタンス化し、デー タ・ワードの幅が64の整数倍であると仮定して任意のデータ・ワード幅をエンコー ドすることができます。
ECCは、ローカル(ネイティブまたはAvalon-MMインタフェース)およびメモリ・
コントローラ間で動作します。
ECCは、ローカル・インタフェースとECC間にN × 64ビット(Nは整数)幅のイン タフェースを持ち、ローカル・インタフェースからデータを受信および返信するた めに使用されます。このインタフェースは、ネイティブ・インタフェースまたは
Avalon-MMスレーブ・インタフェースのどちらも可能であり、インタフェースのタイ
プはMegaWizardインタフェースで選択します。
ECCは、ローカル・インタフェースとECC間に第2インタフェースとして、ECCロ ジックの動作ステータスを制御およびレポートする32ビット幅のAvalon-MMスレー ブ・インタフェースを持っています。
ECCからのエンコードされたデータは、ECCとメモリ・コントローラ間にあるN× 72 ビット幅のAvalon-MMマスタ・インタフェースを使用して、メモリ・コントローラ
第 6 章 : 機能の説明 ̶ 高性能コントローラ 6–9 ブロック説明
DDR SDRAM高性能コントローラをテストするときには、ECCをオフにできます。
割り込み
ECCは以下のいずれかのシナリオが発生すると、割り込みを発行します。
■ シングル・ビット・エラー・カウンタが、設定された最大シングル・ビット・エ ラー・スレッショルド値に達します。
■ ダブル・ビット・エラー・カウンタが、設定された最大ダブル・ビット・エ ラー・スレッショルド値に達します。
リターン・データ・ワードのN個のすべての部分に対して、対応するイベントが発 生するたびに、エラー・カウンタがインクリメントされます。 このインクリメント値 は、最大スレッショルドと比較され、最大スレッショルドと同じときは割り込み信 号が送信されます。対応するステータス・レジスタに1を書き込むと、ECCは割り 込みをクリアします。コントロール・ワードを使用して、いずれかのカウンタから の割り込みをマスクできます。
部分的書き込み
ECCは部分的書き込みをサポートします。 アドレス信号、データ信号、およびバース ト信号に加え、Avalon-MMインタフェースは、バイト・イネーブルのための信号ベク タもサポートします。この信号ベクタの各ビットは、データ・バス上の1バイトを 表します。 したがって、これらの任意のビットの0は、コントローラがその特定の 場所に書き込みを行えないようにする信号です(部分的書き込み)。
部分的書き込みの場合、ECCは以下のステップを実行します。
1. ECCロジックは部分的書き込み条件を受信すると、Avalon-MMインタフェースか
らのそれ以降のリード・コマンドまたはライト・コマンドを停止します。
2. 同時に、部分的書き込みアドレスに対する自己生成リード・コマンドをメモリ・
コントローラに送信します。
3. 特定のアドレスに対して、メモリ・コントローラからリターン・データを受信す ると、デコーダはデータをデコードし、エラーをチェックし、そのデータをECC ロジックに送信します。
4. ECCロジックは、訂正されたデータワードまたは正しいデータワードと受信情報
をマージします。
5. ECCロジックは、更新されたデータワードを、エンコーディングのためにエン
コーダに送信し、次にライト・コマンドでメモリ・コントローラに送信します。
6. ECCロジックは、Avalon-MMインタフェースからのコマンドの停止を防止します。
これにより、Avalon-MMインタフェースは新しいコマンドを受信できるようにな ります。
以下のコーナー・ケースが発生する可能性があります。
■ リード・モディファイ・ライト・プロセスのリード・フェーズ中のシングル・
ビット・エラー。 この場合、シングル・ビット・エラーが最初に訂正され、シン グル・ビット・エラー・カウンタがインクリメントされ、この訂正済みのデコー ドされたデータ・ワードに部分的書き込みが実行されます。
6–10 第 6 章 : 機能の説明 ̶ 高性能コントローラ ブロック説明
■ リード・モディファイ・ライト・プロセスのリード・フェーズ中のダブル・ビッ ト・エラー。 この場合、ダブル・ビット・エラー・カウンタがインクリメントさ れ、Avalon-MMインタフェースを介して割り込みが送信されます。新しいライ ト・ワードは、その場所に書き込まれません。この条件は割り込みステータス・
レジスタの個別フィールドにハイライトされます。
図 6–4および図 6–5に、フル・レートおよびハーフ・レートにおけるHPCの部分書 き込み動作を示します。フル・レートHPCはローカル・サイズ1および2をサポー トし、またハーフ・レートHPCはローカル・サイズ1のみをサポートします。
部分的バースト
DIMMにはDMピンがないため部分的バーストをサポートしません。 最低4ワードを 同時にメモリに書き込む必要があります。
図 6–6に、HPCの部分的バーストを示します。
図 6‒4. HPC の部分書き込み ̶ フル・レート
図 6–4の注:
(1) Rはリード・モディファイ・ライト・プロセス中の内部リード・バック・メモリ・データを表しま
す。
図 6‒5. HPC の部分書き込み ̶ ハーフ・レート
図 6–5の注:
(1) Rはリード・モディファイ・ライト・プロセス中の内部リード・バック・メモリ・データを表しま
す。
local_address local_size local_be local_wdata mem_dm mem_dq
0 1
2
X1 XF
01234567 89ABCDEF
67 R R R EF CD AB 89
local_address local_size local_be local_wdata mem_dm mem_dq
0 1 X1 01234567
67 R R R
第 6 章 : 機能の説明 ̶ 高性能コントローラ 6–11 ブロック説明
ECC レイテンシ
ECCを使用すると、以下のレイテンシの変更が生じます。
■ ローカル・バースト・レングス1
■ ローカル・バースト・レングス2
ローカル・バースト・レングス 1
ローカル・バースト・レングス1の場合、ライト・レイテンシは1クロック・サイ クルだけ増加し、リード・レイテンシは1クロック・サイクルだけ増加します
(チェックおよび訂正を含む)。
部分的書き込みでは、ECCロジックで読み出しとそれに続く書き込みが発生するた め、レイテンシはコントローラが特定のアドレスからデータをフェッチするのに要 する時間によって異なります。
表 6–3に、バースト・レングスとレートの関係を示します。
ローカル・バースト・レングス 2
ローカル・バースト・レングス2の場合、ライト・レイテンシは2クロック・サイ クルだけ増加し、リード・レイテンシは1クロック・サイクルだけ増加します
(チェックおよび訂正を含む)。
部分的書き込みでは、ECCロジックで読み出しとそれに続く書き込みが発生するた め、レイテンシはコントローラが特定のアドレスからデータをフェッチするのに要 する時間によって異なります。
シングル・ビット・エラーの場合、メモリの自動訂正は、リード・サイクルを停止 せずに行われ(可能な場合)、訂正中はECCロジックへの追加コマンドは停止されま す。
ECC レジスタ
表 6–4に、ECCレジスタを示します。
図 6‒6. HPC の部分的バースト
表 6‒3. バースト・レングスおよびレート ...
ローカル・バースト・
レングス レート メモリ・バースト・レングス
1 ハーフ 4
2 フル 4
local_address local_size local_be local_wdata mem_dm mem_dq
0 1 X1 01234567
67 45 23 01