ECCに関していくつか質問があります。
現在、MCM_LMFARを使用してECCが障害を引き起こした場所を特定し、そのアドレスを使用して読み取りと書き込みを行い、障害を修正しています。
質問:
1. ECCにはビットを自動修正する機能がありますか?それとも、修正するためには本当にこのアドレスへの読み書きを実行する必要があるのでしょうか?
2. 自動修正機能がない場合、読み書き修正メカニズムを実行する際にバイトアライメントを補正する必要がありますか?現在、MCM_LMFARで示されるアドレスに対して4バイトの読み書き処理を実行しています。MCM_LMFARが常に4バイト境界に揃ったアドレスを表示するとは限らないため、これは危険だと感じています。
こんにちは、 @sean_dvorscak さん、
投稿ありがとうございます。
KE1ファミリの中でどのデバイスを使っているのか教えていただけますか?
これにより、関連するドキュメントをより正確に見つけたり、同じデバイスで検証を行うのに役立ちます。
BR
セレステ
型番はKE18F512VLH16です。
ご助言ありがとうございます。
確認と情報提供ありがとうございます。
はい、訂正不可能なビットエラーの処理方法は異なります。
もう一つ質問があります。
自動ハードウェアECC補正機能はデフォルトで有効になっていますか?MCMレジスタの中には、無効化・有効化できる機能を示すようなビットは特に見当たりません。
こんにちは、 @sean_dvorscak さん、
ご返信ありがとうございます。
ですので、あなたの質問に答えてください:
1. ECCにはビットを自動修正する機能がありますか?それとも、修正するためには本当にこのアドレスへの読み書きを実行する必要があるのでしょうか?
->> はい、ECCはシングルビットエラーのハードウェア訂正をサポートしています。したがって、訂正データを取得するためにソフトウェアの読み書きシーケンスは必要ないはずです。
2. 自動修正機能がない場合、読み書き修正メカニズムを実行する際にバイトアライメントを補正する必要がありますか?現在、MCM_LMFARで示されるアドレスに対して4バイトの読み書き処理を実行しています。MCM_LMFARが常に4バイト境界に揃ったアドレスを表示するとは限らないため、これは危険だと感じています。
->> オプションのスクラブを実装する場合は、アクセスを実際のアクセスサイズやスクラブの粒度に基づいてアライメントし、生の MCM_LMFAR 値に盲目的に合わせないでください。また、アドレスを適切にアラインメントし、アクセスサイズが有効であることを確認しない限り、固定4バイトのアクセスは使わないでください。
実際、マルチビット/非訂正ECCイベントの場合、読み書きでデータを修復できるとは限らず、データを破損として扱い、適切な適切な元から回復するか、影響を受けたメモリを再初期化する必要があります。
お役に立てば幸いです。
BR
セレステ
---------------------------------------------------------------------------------------------------------------------
注:この投稿があなたの質問への回答になっている場合は、「解決策として承認」ボタンをクリックしてください。ありがとう!
---------------------------------------------------------------------------------------------------------------------
はい、リセット後、ECCチェック/生成はデフォルトで有効になります。
さらに質問があります。
ハードウェアはメモリセル内のデータを修正するのか、それとも読み出しデータのみを修正するのか?
AN5335の例では、読み出しデータは0~1の範囲で補正されていますか?つまり、実際に値をクリアするには、修正した値をRAMに書き戻す必要があるということだ。
RAMメモリセルのデータが修正されなければ、1ビットの誤りが2ビットの誤りに悪化する恐れがあります。
こんにちは、 @sean_dvorscak さん、