すでに書き込まれた領域を避けた場合、以前に書き込まれたページに書き込むことができますか?
pを理解している場合 16のデータシートを正しく読みます:この特定のチップでは、すでに書き込まれた領域を避けても、以前に書き込まれたページに書き込むことはできません。
詳細
SST25VF064Cフラッシュメモリチップのデータシート Pに。16は、「ページプログラム命令がメモリ内の最大256バイトのデータをプログラムします。ページプログラム操作を開始する前に、選択されたページアドレスは消去状態(FFH)でなければなりません。」
したがって、「ページプログラム操作を開始する前に、選択されたページ全体が消去状態(ページFFhのすべてのバイト)になっている必要がある」と仮定します。SSTまたはMicrochipは、この途方もなく曖昧な文を明確にするドキュメントをリリースしましたか?
私の経験では、すべてのMLCフラッシュチップといくつかの新しいSLCフラッシュチップの製造元は、ページが書き込まれたら、1ビットだけを変更したい場合でも、ページを再度書き込む前にページを消去する必要があることを義務付けています0ビット。(これは、YAFFSの記事では「1回限りのルール」と呼ばれています。)
私の経験では、古いフラッシュチップはすべて、そのビットがページ内にある場合や、すでに他のビットがゼロにプログラムされているバイトであっても、消去サイクルなしで1ビットを0ビットに変更できます。フラッシュのページは、消去と消去の間に複数回プログラムできます。(これは、YAFFSの記事では「複数書き込み」と呼ばれます)。
製造業者のデータシートは、製造業者があなたに対して行う条件付きの約束です。データシートのすべての推奨事項に従う限り、メーカーはチップが指定どおりに動作することを約束します。既に書き込まれた領域を避けて、以前に書き込まれたページをプログラムする場合、すぐにリードバックすることで期待するデータが得られる可能性が高いと思われます-新しく書き込まれたバイトは、書き込んだ値です。他のバイトはおそらく変更されていません。ただし、これはデータシートの推奨事項に従わないため、データシート内のすべての約束に依存することはできなくなります。プログラム妨害、オーバープログラミング、チャージトラップ、DRAMロウハンマーに類似した影響などにより、このような認可されていないアクティビティがデータ保持時間と耐久性を低下させるという噂を聞きます。
「メモリ使用スキームは、ビットエラーレートに影響します。部分ページプログラミング、ブロック内での非シーケンシャルページプログラミング、消去なしのブロックごとの過剰な読み取り、および単一ブロック内での読み取り操作の不均等回数による読み取り回数の増加エラーを妨げます。」-ミハル・ジェドラック。
「組み込みシステムのNANDフラッシュメモリ」。
「ページプログラミングイベント中にビットが意図せずに「1」から「0」にプログラムされると、プログラム障害が発生します。このビットエラーは、プログラム中のページまたはブロック内の別のページで発生する可能性があります。バイアス電圧条件ページプログラミング中のブロックにより、少量の電流が近くのメモリセルにトンネルする可能性があります。部分的なページプログラミングを繰り返し試行すると、この状態がさらに悪化します。」-ダグラスシェルドンとマイケルフライ。
「フラッシュメモリで着信拒否テスト」。p。8、9。
「プログラミング操作中にビットが意図せずにプログラムされると(1から0)プログラムの妨害が発生します。...この状態は、ブロック内のランダムプログラミングおよびページへの複数の部分書き込みの適用により悪化します。」
「Yaffs NANDフラッシュ障害の軽減」