- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
S29GL512T10TFI020のECC機能の挙動について質問があります。
S29GL512T10TFI020搭載基板でECCの挙動について以下確認を行いました。
【確認内容】
①フラッシュの先頭から128KB分イレース
②フラッシュの先頭から2byteだけWord Writeで書き込み
③ECCステータスをリード→0:ECC有効
内蔵ECC機能は下記動作の場合、無効となると認識しております。
・Single Word(Byte) Program
・同じWrite Pageに対して2回以上の書き込み(WBP使用)
・同じアドレスへの上書き(WBP使用)
この条件に則るとECCが無効になると思うのですが
なぜかECCのステータスが有効となっていました。
追加で以下の確認を行ったところECCステータスは無効となりました。
【追加確認内容①】
①フラッシュの先頭から128KB分イレース
②フラッシュの先頭から3byte目から2byteだけWord Writeで書き込み
③ECCステータスをリード→1:ECC無効
【追加確認内容②】
①フラッシュの先頭から128KB分イレース
②フラッシュの先頭から128KB分Word Writeで書き込み
③ECCステータスをリード→1:ECC無効
上記結果について、なぜWord Writeでセクタの先頭1Wordだけ書き込みしたときに
ECCが有効になるのか何か考えられる要因ありますでしょうか?
解決済! 解決策の投稿を見る。
- ラベル:
-
Parallel NOR
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
S29GL512T10TFI020のECC領域もメインアレイ同様、フラッシュメモリセルによって構成されています。
メインアレイへの上書き等によりECC値も変更されますが、
ECC値が上書き可能(ECC値の変更が1->0の方向のみ)な場合はECCは有効のままとなります。
詳しい内容はAN200621の第二章「自動 ECC」をご参照ください。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
S29GL512T10TFI020のECC領域もメインアレイ同様、フラッシュメモリセルによって構成されています。
メインアレイへの上書き等によりECC値も変更されますが、
ECC値が上書き可能(ECC値の変更が1->0の方向のみ)な場合はECCは有効のままとなります。
詳しい内容はAN200621の第二章「自動 ECC」をご参照ください。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
Shupingさん
別のディスカッションにて質問しておりましたが、こちらで続きをとのことでしたので
改めてこのディスカッションにて質問させていただきます。
---過去の質問---
S29GL512T10TFI020のECC機能について。
以下の使用方法にてECCによる保護は機能しますか?
・WriteBufferにより0xFFと任意の値を書き込む。
例として前半8ワードが0xAA、後半8ワードが0xFFの16ワードデータを書き込む。
そのページに対してEraseを実施せず、WriteBuffer(ページ単位)により前半8ワードが0xAA(書き込み前と同データ)、
後半8ワードが0x55(任意のデータ)の16ワードを書き込む。
(べージ単位のWriteBufferかつ、0xFF箇所のみのデータ変更であればErase処理がなくてもECCが機能するか)
なお、上記アクセス時のECCステータスを確認したところ、有効ビットが0(有効)でした。
上記アクセスがCypressが保証する使用方法か否かについてご確認頂きたくお願いいたします。
添付に上記確認内容を記載しております。
--------------------
本来この使用方法では同じページへの2回以上の書き込みとなりECCが無効となる。
しかし、今回の場合0xFF→0x55への書き込みだったため自動ECCが働きECCが有効となったということでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
Sawaiさん
S29GL512T10TFI020のECC機能の有効性につきましてはcorrect answerに説明させて頂いたとおり、AN200621の第二章「自動 ECC」をご参照ください。
また、本スレッド内に記載されているシーケンスと添付ファイルに記載されているシーケンスが合っておりません。
どちらのシーケンスを検証されたかを教えていただけないでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ShupingZさん
返信ありがとうございます。
検証したシーケンスは添付の物となります。
以下にまとめさせていただきます。
--ECCの挙動として--
同じページに二回以上書込む場合、そのページのECC機能は無効になります
メモリセルへ書込む前にデバイスは一度データを読取り、書込みデータと照合し、データが一致する場合、その書込み動作は内部的に実行されません。そのため、ECCも有効のままです。
ページ単位で書き込みを行うため、もし前半8ワードに変更が無かったとしても16ワード全てに書き込みが実行されます。
(1)
消去されたページ
↓
0xFFを書き込む (書き込みは実行されない)
↓
0xFF以外のデータを書き込む(1回目の書き込みなのでECCは有効)
(2)
消去されたページ
↓
前半8ワード0xAA:後半8ワード0xFFを書き込む(後半部分も含めて1回目の書き込みとなる)
↓
前半8ワード0xAA:後半8ワード0x55を書き込む(前半部分も含めて2回目の書き込みとなるのでECCは無効)
もし、(2)のような用法でECCが有効となっていたとしてもそれは自動ECCによるものとなります。
自動ECCが働くようにECCの計算結果をユーザーが予測しアプリケーションを組むことは現実的ではありません。
---------------------
このような認識でよろしいでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
Sawaiさん、
添付資料には「8バイト」と記載され、ズレットには「8ワード」と記載されています。これにより、具体的なデータが変わりますので、ECCの有効性も変わる可能性があります。ですが、デバイスのふるまいは一緒です。
同一ページに対して、消去せずに二回書込みましたら、ECC機能が無効になる可能性は非常に高いです。これはデータに依存しますので、予測するのは困難です。
シーケンスだけ(消去→書き込み→書き込み)を見ますと、ご認識は正しいです。
具体的なデータに関するECCの有効性につきましては、実機の検証結果に基づいてください。
なお、同一ページに対して、消去後の書込みは一回であれば、ECCの有効性が確保できます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ShupingZさん
ご返信ありありがとうございます。
資料の誤記申し訳ございません。「8バイト」→「8ワード(16バイト)」が正しいです。
シーケンスを見ていただきありがとうございます。
以下につきまして承知いたしました。
同一ページに対して、消去せずに二回書込み→ECC機能が無効になる可能性は非常に高い
同一ページに対して、消去後の書込みは一回であれば、ECCの有効性が確保できます。