JP2685173B2 - メモリ書き込み制御方法 - Google Patents
メモリ書き込み制御方法Info
- Publication number
- JP2685173B2 JP2685173B2 JP12473186A JP12473186A JP2685173B2 JP 2685173 B2 JP2685173 B2 JP 2685173B2 JP 12473186 A JP12473186 A JP 12473186A JP 12473186 A JP12473186 A JP 12473186A JP 2685173 B2 JP2685173 B2 JP 2685173B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- area
- file
- written
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、メモリに書き込まれた情報を電気的に書
き換えできるメモリの書き込みを制御するメモリの書き
込み制御方法に関するものである。 〔従来の技術〕 従来のEEPROM(Electrical Erasable and Programmab
le ROM)は、容量も少なく、また書き込むために必要な
外部回路が多かった。さらに、チップ内のすべてのデー
タを消去するモードしか有していなかった。最近は、容
量も大きくなるとともに、外部回路も殆ど必要なくCPU
のアドレスバス,データバスに結線できるようになり、
またEEPROM内の1バイトのデータのみの消去も可能とな
ってきた。以上の改良により、使用目的によっては、従
来のランダムアクセスメモリ(RAM)で構成していた機
能の置換が可能となった。 例えば、従来の小型パソコン、日本語ワープロで作成
したプログラムや文章,外字等を保存しておくためにメ
モリカードと云うものがある。これは、必要なときにパ
ソコン,日本語ワープロ等の本体に差し込んでプログラ
ムや文章を記憶させ、本体から引き抜いても、そのデー
タを記憶しているように、メモリカード内にはRAMと電
池が搭載されていた。そこで、メモリカードをEEPROMで
構成することにより、電池を無くすことができると考え
られた。 〔発明が解決しようとする問題点〕 ところが、従来のプログラマブルリードオンリメモ
リ、例えばEEPROMの書き換え回数を正確に管理していな
いため、記憶領域に対する書き換え回数がEEPROMの許容
書き込み回数を越えてしまい、記憶しているはずの貴重
なデータが消失してしまう等の問題点があった。 この発明は、上記の問題点を解決するためになされた
もので、複数の領域に分割されたメモリに対する各領域
毎にデータ書き込み回数を管理し、各領域のカウンタ値
に基づき、書き込み可能な複数の領域の中から、情報を
書き込む領域を選択することにより、各領域の書き込み
回数を示すカウンタ値を平均化し、各領域の書き込み耐
久を分散させてメモリに対する書き込み寿命を大幅に延
長できるメモリ書き込み制御方法を提供することを目的
とする。 〔問題点を解決するための手段〕 この発明に係るメモリ書き込み制御方法は、複数の領
域に分割されたメモリと各領域毎に設けられたカウンタ
とを利用し、該分割された領域のうち書き込み可能な複
数の領域のカウンタ値を判断する工程と、前記判断され
た各領域のカウンタ値に基づいて、前記書き込み可能な
複数の領域の中から、情報を書き込む領域を選択する工
程とを有するものである。 〔作用〕 この発明においては、任意の領域の書き込み回数が許
容される所定の書き込み回数を越える場合に、該所定の
書き込み回数以下の他の領域にデータを書き込んで、複
数の領域中における任意の領域の情報のみが頻繁に書き
換えられても、書き込み回数が周辺の各領域に比べて差
が生じないように当該領域の情報を書き込み回数が小さ
い他の領域にデータを書き込み、メモリ全体としてみれ
ば、書き込み可能な複数の領域のカウンタ値を平均化し
て書き込み耐久を分散させてメモリに対する書き込み寿
命を延長させる。 〔実施例〕 第1図(a)はこの発明の一実施例を示すプログラマ
ブルリードオンリメモリへの書き込み制御方法を説明す
る模式図であり、1はEEPROMで、例えば書き込み容量が
32798バイト×8ビットで、書き込み回数が1万回に設
定してある。EEPROM1は、ポインタブロック1aおよび予
備ポインタブロックSPB1〜SPB50より構成される。ポイ
ンタブロック1aは5アドレス(各1バイト)で構成さ
れ、『0〜1』番地の20バイトで、書き換え回数WCNT、
例えば『138816』を記憶している。またポインタブロッ
ク1aの『2』番地の1バイトは、ディレクトリDB、例え
ば『0116』を記憶している。さらに、ポインタブロック
1aの『3』番地の1バイトは、未使用のスタートブロッ
ク番号OSB、例えば『3316』を記憶している。またポイ
ンタブロック1aの『4』番地の1バイトは、未使用のエ
ンドブロック番号OEB、例えば『8A16』を記憶してい
る。 第1図(b)はこの発明の装置構成の一例を説明する
ブロック図であり、11はCPUで、ROM11a,RAM11bを有し、
ROM11aに格納された第7図,第8図に示すフローに準じ
たプログラムに応じて各部を制御する。12は入力手段
で、データ書き込み装置13にセットされるEEPROM1への
データ書き込みおよびデータ消去を指示する。なお、CP
U11にはデータの転送を行うアキュムレータACC,BCCを有
している。 第2図は第1図(a)に示すEEPROM1の構造を示す模
式図であり、21はブロック番号であり、例えば127個の
ブロックBLOCK1〜BLOCK127に分割されている。各ブロッ
クは、例えば256バイトで構成され、先頭の2バイト
で、そのブロックが更新された回数、すなわち、後述す
る更新回数が記憶されている。次に続く253バイトは記
憶データDATAが記憶されており、最後の1バイトは、記
憶データDATAがこのブロックに留まるか、または他のブ
ロックに及ぶかどうかを示す継続ブロックエリアCBがあ
り、他のブロックに記憶データDATAが及ぶ場合は、継続
ブロックエリアCBには継続するブロック番号が記憶さ
れ、他のブロックに記憶データDATAが及ばない場合は、
継続ブロックエリアCBには『FF16』が記憶されている。 第3図は第2図に示す各ディレクトリブロック構造を
説明する模式図であり、30は前記ディレクトリDBに指示
されるディレクトリブロック、31は前記ディレクトリブ
ロック30の更新カウンタで、例えば2バイトで構成され
る。32はファイル領域で、各ファイル名が12バイトで記
憶される。33はスタートブロック番号エリア(SB)で、
例えば1バイトで構成され、ファイルのスタートブロッ
ク番号が記憶されている。34はエンドブロック番号エリ
ア(EB)で、例えば1バイトで構成され、ファイルのエ
ンドブロック番号が記憶されている。35はチェーンブロ
ックエリア(CB)で、ディレクトリブロック30に継続す
るディレクトリブロックの有無を記憶する。例えばチェ
ーンブロックエリア35が『FF16』となる。なお、ディレ
クトリブロック30は、例えば18個のファイル領域32で構
成される。 次に第1図(a)および第3図を参照しながらEEPROM
1の構造について説明する。 第1図(a)に示すようにポインタブロック1aの書き
換え回数WCNTに、例えば『138816』が記憶されていると
すると、5000回の更新が行われたことを示し、またディ
レクトリDBには『0116』が記憶されているので、ディレ
クトリDBに指示されるディレクトリブロック30のブロッ
ク番号が『1』で、そのディレクトリブロック30の更新
カウンタ31には、『142F16』が記憶されている。これ
は、このディレクトリブロック30を5167回更新したこと
を示し、ファイル領域32のファイル(FiLe)1(ファイ
ル名)はスタートブロック番号エリア33が『0216』で、
エンドブロック番号エリア34が『0516』となっているた
め、ブロックBLOCK2から始まり、ブロックBLOCK5で終る
ことになる。またファイル領域32のファイル2は、スタ
ートブロック番号エリア33が『0A16』で、エンドブロッ
ク番号エリア34が『0F16』となっているため、ブロック
BLOCK10から始まり、ブロックBLOCK15で終ることにな
る。さらに、ファイル領域32のファイル3(ファイル
名)は、スタートブロック番号エリア33が『1516』で、
エンドブロック番号エリア34が『1816』となっているた
め、ブロックBLOCK21から始まり、ブロックBLOCK24で終
ることになる。またファイル領域32のファイル3の次に
『FF16』が書かれているので、このファイル領域32はフ
ァイル3で終了していることになる。 第4図は未使用のEEPROM1の状態を説明する模式図で
あり、第1図(a),第3図と同一のものには同じ符号
を付している。 この図から分かるように、未使用のEEPROM1のポイン
タブロック1aの書き換え回数WCNTが『000116』、ディレ
クトリDBが『0116』、未使用のスタートブロック番号OS
Bが『0216』、未使用のエンドブロック番号OEBが『7
F16』がそれぞれポインタブロック1aの0番地から4番
地にそれぞれ記憶されている。これにより、ディレクト
リDBに指示されるブロックBLOCK1を参照すると、更新カ
ウンタ31に『000116』が書き込まれているとともに、フ
ァイル領域32のファイル1に『FF16』が書き込まれてお
り、さらに、チェーンブロックエリア35に『FF16』が書
き込まれており、EEPROM1が未使用状態であることを示
している。 さらに、ポインタブロック1aのスタートブロック番号
CSBおよびエンドブロック番号OEBには『0216』,『7
F16』がそれぞれ書き込まれている。すなわち、ブロッ
クBLOCK2〜127には先頭の2バイトに『000116』が書き
込まれ、最終の1バイトに各後続のブロックの継続を示
すチェーンブロックエリア35には、ブロックBLOCK2〜12
6に対して『03〜7F16』が書き込まれ、ブロックBLOCK12
7のチェーンブロックエリア35には『FF』が書き込まれ
ている。このように、各ブロックBLOCK2〜127は1つの
チェイン構造となる。 次に第3図,第5図(a),(b)を参照しながらEE
PROM1への書き込み動作を説明する。 第5図(a),(b)はEEPROM1への書き込み動作を
説明する模式図であり、第1図(a),第3図と同一の
ものには同じ符号を付している。なお、書き込み直前
は、第3図に示す状態であったものとする。 まず、ディレクトリブロック30のファイル領域32の先
頭が『0016』のところを探し当てる。第3図の場合は、
ファイル2とファイル3との間に『0016』があり、そこ
にファイル4という名前を12バイトで書き込み、ポイン
タブロック1aの未使用ブロックのスタートブロック番号
OSBを参照して、スタートブロック番号OSBの指示するブ
ロックBLOCK、すなわち『5716』の先頭の2バイト情
報、すなわち、更新カウンタ31を『1』インクリメント
し、その加算値が、例えば1万回を越えているようであ
れば、ファイル4のチェーンブロックエリア35が示すブ
ロックBLCOKに対して同様の操作を行い、更新カウンタ3
1が1万回以下のブロックBLOCKを探し当てて、そのブロ
ックBLOCKの番号をポインタブロック1aのスタートブロ
ック番号OSBに書き込むとともに、ファイル4のデータ
をブロックBLOCK87(253バイト)に書き込み、ブロック
BLOCK87に溢れるようであれば、ブロックBLOCK87のチェ
ーンブロックエリア35の指示するブロックBLOCKの更新
カウンタ31を『1』インクリメントして加算値が、例え
ば1万回を越えているかどうかを調べ、指示されるブロ
ックBLOCKの更新カウンタ31が1万回を越えるようであ
れば、更新回数が1万回以下のブロックBLOCKを探し当
て、そのブロックBLOCKの番号を直前に書き込んだブロ
ックBLOCKのチェーンブロックエリア35に書き込む。こ
のようにして、データの書き込みが行われ、更新回数が
1万回を越えるブロックBLOCKが排除されて行く。そし
て、書き込みデータがなくなるまで同様の操作を行い、
最後に書き込んだブロックBLOCKのチェーンブロックエ
リア35に記憶されていた内容を新しい未使用のスタート
ブロック番号OSBに書き換え、ポインタブロック1aの書
き換え回数WCNTを『1』インクリメントして『138916』
となり、最後にデータを書き込んだブロックBLOCKのチ
ェーンブロックエリア35を『FF16』にする。そして、デ
ィレクトリブロック30の最終ブロック番号を記憶するエ
ンドブロック番号エリア34に最後のデータを書き込んだ
ブロックBLOCKの番号を書き込むとともに、更新カウン
タ31を『1』インクリメントすると、第5図(b)に示
されるように、更新カウンタ31が『143016』となり、フ
ァイル4のスタートブロック番号エリア33が『3316』
で、エンドブロック番号エリア34が『3716』となる。 次に第5図(a),(b)を参照しながらEEPROM1に
書き込まれているファイル1の削除動作について説明す
る。 ディレクトリブロック30となるブロックBLOCK1よりフ
ァイル1を探し、ファイル領域32の先頭の2バイトを
『0016』とする。次いで、ディレクトリブロック30の更
新カウンタ31を『1』インクリメントし、ファイル1の
スタートブロック番号エリア33とエンドブロック番号エ
リア34のデータを参照して、ポインタブロック1aのエン
ドブロック番号OEBが指示するブロックのチェーンブロ
ックエリア35の内容(削除直前までは『FF16』であっ
た)をスタートブロック番号エリア33の内容に変更し、
このブロックの更新カウンタ31を『1』インクリメント
する。すなわち、未使用ブロックの最後に今削除したフ
ァイル4を接続するわけである。このようにして、更新
カウンタ31を進めながら何度もファイルの更新,削除を
実行して行くうちに、更新カウンタ31が1万回に接近す
る。 次に更新カウンタ31が1万回に到達した場合のアクセ
ス処理について説明する。 まず、ポインタブロック1aのスタートブロック番号OS
Bの内容が示しているブロックBLOCKのチェーンブロック
エリア35の内容を新規のスタートブロック番号OSBとす
る。次いで、このブロック直前のディレクトリブロック
30の更新カウンタ31の情報以外の内容を転送する。そし
て、ポインタブロック1aのディレクトリDBに新規のディ
レクトリブロック番号を書き込み、ポインタブロック1a
の書き換え回数WCNTおよび更新カウンタ31を『1』イン
クリメントする。 一方、ポインタブロック1aの書き換え回数WCNTは1万
回を越えた場合は、予備ポインタブロックSPB1〜SPB50
のうち一番近い予備ポインタブロックへ書き換え回数WC
NTの情報以外のデータを転送し、新規のポインタブロッ
クの書き換え回数WCNT(000016)を『1』インクリメン
トして『000116』に設定する。この場合、破棄されたポ
インタブロック1aの書き換え回数WCNTは1万回以上とな
り、新のポインタブロック1aの書き換え回数WCNTは1万
回以下となる。このようにして、ディレクトリブロック
30およびポインタブロック1aの書き込み削除を管理す
る。また削除されたファイルが使用していたブロックは
未使用ブロックの一番最後に回される。これは、未使用
ブロックの使用回数を平均化するためである。しかし、
使用されているファイルが更新されずにずっとそのまま
であると、そのファイルが使用しているブロックは更新
回数がそのまま変化しない。例えば、最初に作成された
ファイルがそのままずっと登録されたまま残っている
と、他のブロックは更新回数が5000回以上なのに、この
ファイルだけは2回というようなアンバランスが生じ
る。そこで、EEPROM1の使用状態を平均化するための補
正処理を行う。 補正処理起動条件は下記(a),(b)の場合におい
てである。 (a)ポインタブロック1aの書き換え回数WCNTの値が25
6の整数倍になった時点。 (b)ファイルを構成するブロックの更新カウンタ31の
平均値が一番低い値と、未使用ブロックの更新カウンタ
31の平均値との差が256を越えた時点。 すなわち、新規のファイルを作成したり、削除したり
した後、ポインタブロック1aの書き換え回数WCNTを見
て、ちょうど256の整数倍、2バイトの16進数の下桁が
『0016』になった時点で、ディレクトリブロック30に登
録されている順にファイルを検査して行く。そして、フ
ァイルを構成するブロックの更新カウンタ31を加算し、
さらに構成するブロック数で除して更新平均値を算出す
る。次いで、次のファイルに対しても同様の更新平均値
を出して比較し、低いものをその比較対照として残し、
次のファイルの更新平均値と比較して行き、一番低い更
新回数で構成されるファイルを探し出す。そして、未使
用のブロックの更新回数の平均を計算し、平均更新回数
の一番低いファイルとの差を算出する。 次に第6図(a)〜(c)を参照しながら補正処理動
作について説明する。 第6図(a)〜(c)はこの発明による補正動作を説
明する模式図であり、これらの図において、41はファイ
ルで、ブロックBLOCK5〜7で構成され、平均更新回数が
最も低いものである。42は未使用ブロック群で、ポイン
タブロック1aの未使用スタートブロック番号OSBで指示
される。未使用ブロック群42は、ブロックBLOCK50,10,1
1,18,55,80,81が1つのチェイン構造となっている。 まず、ファイル41のスタートブロックを未使用ブロッ
ク群42のブロックBLOCK81の後段に接続させるため、同
図(a)に示すようにブロックBLOCK81のチェーンブロ
ックエリア35の内容が『FF16』から同図(b)に示すよ
うに、チェーンブロックエリア35の内容が『0516』、す
なわち、ファイル41のブロックBLOCK5を指示させ、さら
に、ファイル41のブロックBLOCK5〜7(ファイル41のチ
ェーンブロックエリア35の内容が『FF16』になるまで)
を未使用ブロック群42のブロックBLOCK81の後段に接続
させ、同図(c)に示すように、ディレクトリブロック
30のファイル41のスタートポインタをブロックBLOCK50
にするとともに、終了ポインタをブロックBLOCK11に変
更する。次いで、未使用ブロック群42の未使用のスター
トブロック番号OSBを『1216』、未使用のエンドブロッ
ク番号OEBを『OB16』にする。これにより、登録された
ファイルを構成するブロックに対しても再度使用可能と
なり、EEPROM1全体のブロックが平均的に使用,更新さ
れることになる。 第7図はこの発明の一実施例を示すメモリの書き込み
制御方法を説明するためのフローチャートである。な
お、(1)〜(18)は各ステップを示す。 まず、ディレクトリブロック30の空エリアを探して、
新規のファイル名を書き込む(1)。次いで、未使用の
スタートブロック番号OSBをCPU11のアキュムレータACC
に記憶させる(2)。アキュムレータACCが指示するブ
ロックの書き換え回数WCNTを+1更新する(3)。ここ
で、書き換え回数WCNTが10000を越えたかどうかを判断
し(4)、YESならばアキュムレータACCの指示するブロ
ックの継続ブロックエリアCBをアキュムレータACCに記
憶し(5)、ステップ(3)に戻り、NOならばディレク
トリブロック30のスタートブロック番号エリア(SB)33
にアキュムレータACCの内容を書き込む(6)。次い
で、アキュムレータACCが指示するブロックのデータエ
リアにデータを書き込む(7)。ここで、書き込みデー
タがアキュムレータACCが指示するブロックの容量が235
バイトを越えるかどうかを判断し(8)、YESならばア
キュムレータACCが指示するブロックの継続ブロックエ
リアCBをアキュムレータBCCに記憶させる(9)。次い
で、アキュムレータBCCが指示するブロックの書き換え
回数WCNTを+1更新する(10)。次いで、書き換え回数
WCNTが10000を越えたかどうかを判断し(11)、YESなら
ばアキュムレータBCCの指示するブロックの継続ブロッ
クエリアCBを記憶させ(12)、ステップ(10)に戻り、
NOならばアキュムレータACCが指示するブロックの継続
ブロックエリアCBにアキュムレータBCCの内容を書き込
み(13)、ステップ(7)に戻る。 一方、ステップ(8)の判断でNOの場合は、アキュム
レータACCが指示する継続ブロックエリアCBを未使用の
スタートブロック番号OSBに書き込む(14)。次いで、
ポインタブロック1aの書き換え回数WCNTを+1更新する
(15)。次いで、アキュムレータACCが指示するブロッ
クの継続ブロックエリアCBへ「FF16」を書き込む(1
6)。そして、ディレクトリブロック30の新ファイル位
置のエンドブロック番号エリア34へアキュムレータACC
の内容を書き込む(17)。次いで、ディレクトリブロッ
ク30の書き換え回数WCNTを更新する(18)。 第8図はこの発明による補正制御動作手順を説明する
ためのフローチャートである。なお、(1)〜(7)は
各ステップを示す。 ポインタブロック1aの書き換え回数WCNTが256の整数
倍であるかどうかを判断し(1)、NOならばリターン
(RETURN)し、YESならばディレクトリブロック30に登
録された各ファイルを構成するブロックの更新カウンタ
31の平均値を算出して、最も更新回数が少ないファイル
を探し出す(2)。次いで、未使用のブロックの更新回
数の平均値を算出する(3)。次いで、未使用ブロック
の更新カウンタの平均値からファイルを構成するブロッ
クの更新カウンタの平均値の最小値を減算し、さらに減
算値から256を差し引いた値が正かどうかを判断し
(4)、NOならばリターンし、YESならば未使用ブロッ
クの最後尾に該当するファイルのヘッドを接続させる
(5)。次いで、接続したファイルの内容を未使用ブロ
ックへ転送させ(6)、ディレクトリブロック30にある
接続したファイルのスタートポインタ,エンドポインタ
を変更し(7)、リターンする。 このように、この発明に係るメモリ書き込み制御方法
は、複数の領域に分割されたメモリと各領域毎に設けら
れたカウンタとを利用し、該分割された領域のうち書き
込み可能な複数の領域のカウンタ値を判断し、前記判断
された各領域のカウンタ値に基づいて、前記書き込み可
能な複数の領域の中から、情報を書き込む領域を選択す
るので、複数の領域中における任意の領域の情報のみが
頻繁に書き換えられても、書き込み回路が周辺の各領域
に比べて差が生じないように当該領域の情報を書き込み
回数が小さい他の領域にデータを書き込み、メモリ全体
としてみれば書き込み可能な複数の領域のカウンタ値を
平均化して書き込み、耐久を分散させてメモリに対する
書き込み寿命を延長させることが可能となる。 以上説明したように、この発明は記憶領域を複数に分
割し、各ブロック毎に書き込み回数を記憶し、この書き
込み回数に応じて書き込み頻度の低いブロックを未使用
ブロックの先頭から書き込むとともに、書き込み頻度の
低いブロックを未使用ブロックの最後尾に接続させるよ
うにしたので、EEPROMに書き込まれるデータの消失を防
止するとともに、EEPROMへの書き込み回数を平均化させ
ることができる。またEEPROM上の各ブロックの書き換え
頻度を平均化でき、書き換え寿命を大幅に延長できる優
れた利点を有する。 〔発明の効果〕 以上説明したように、この発明によれば、複数の領域
に分割されたメモリと各領域毎に設けられたカウンタと
を利用し、該分割された領域のうち書き込み可能な複数
の領域のカウンタ値を判断する工程と、前記判断された
各領域のカウンタ値に基づいて、前記書き込み可能な複
数の領域の中から、情報を書き込む領域を選択する工程
とを有することにより、各領域中のカウンタ値を平均化
して、書き込み耐久を分散させることができるので、書
き込み寿命を大幅に延長できる優れた効果を奏する。
き換えできるメモリの書き込みを制御するメモリの書き
込み制御方法に関するものである。 〔従来の技術〕 従来のEEPROM(Electrical Erasable and Programmab
le ROM)は、容量も少なく、また書き込むために必要な
外部回路が多かった。さらに、チップ内のすべてのデー
タを消去するモードしか有していなかった。最近は、容
量も大きくなるとともに、外部回路も殆ど必要なくCPU
のアドレスバス,データバスに結線できるようになり、
またEEPROM内の1バイトのデータのみの消去も可能とな
ってきた。以上の改良により、使用目的によっては、従
来のランダムアクセスメモリ(RAM)で構成していた機
能の置換が可能となった。 例えば、従来の小型パソコン、日本語ワープロで作成
したプログラムや文章,外字等を保存しておくためにメ
モリカードと云うものがある。これは、必要なときにパ
ソコン,日本語ワープロ等の本体に差し込んでプログラ
ムや文章を記憶させ、本体から引き抜いても、そのデー
タを記憶しているように、メモリカード内にはRAMと電
池が搭載されていた。そこで、メモリカードをEEPROMで
構成することにより、電池を無くすことができると考え
られた。 〔発明が解決しようとする問題点〕 ところが、従来のプログラマブルリードオンリメモ
リ、例えばEEPROMの書き換え回数を正確に管理していな
いため、記憶領域に対する書き換え回数がEEPROMの許容
書き込み回数を越えてしまい、記憶しているはずの貴重
なデータが消失してしまう等の問題点があった。 この発明は、上記の問題点を解決するためになされた
もので、複数の領域に分割されたメモリに対する各領域
毎にデータ書き込み回数を管理し、各領域のカウンタ値
に基づき、書き込み可能な複数の領域の中から、情報を
書き込む領域を選択することにより、各領域の書き込み
回数を示すカウンタ値を平均化し、各領域の書き込み耐
久を分散させてメモリに対する書き込み寿命を大幅に延
長できるメモリ書き込み制御方法を提供することを目的
とする。 〔問題点を解決するための手段〕 この発明に係るメモリ書き込み制御方法は、複数の領
域に分割されたメモリと各領域毎に設けられたカウンタ
とを利用し、該分割された領域のうち書き込み可能な複
数の領域のカウンタ値を判断する工程と、前記判断され
た各領域のカウンタ値に基づいて、前記書き込み可能な
複数の領域の中から、情報を書き込む領域を選択する工
程とを有するものである。 〔作用〕 この発明においては、任意の領域の書き込み回数が許
容される所定の書き込み回数を越える場合に、該所定の
書き込み回数以下の他の領域にデータを書き込んで、複
数の領域中における任意の領域の情報のみが頻繁に書き
換えられても、書き込み回数が周辺の各領域に比べて差
が生じないように当該領域の情報を書き込み回数が小さ
い他の領域にデータを書き込み、メモリ全体としてみれ
ば、書き込み可能な複数の領域のカウンタ値を平均化し
て書き込み耐久を分散させてメモリに対する書き込み寿
命を延長させる。 〔実施例〕 第1図(a)はこの発明の一実施例を示すプログラマ
ブルリードオンリメモリへの書き込み制御方法を説明す
る模式図であり、1はEEPROMで、例えば書き込み容量が
32798バイト×8ビットで、書き込み回数が1万回に設
定してある。EEPROM1は、ポインタブロック1aおよび予
備ポインタブロックSPB1〜SPB50より構成される。ポイ
ンタブロック1aは5アドレス(各1バイト)で構成さ
れ、『0〜1』番地の20バイトで、書き換え回数WCNT、
例えば『138816』を記憶している。またポインタブロッ
ク1aの『2』番地の1バイトは、ディレクトリDB、例え
ば『0116』を記憶している。さらに、ポインタブロック
1aの『3』番地の1バイトは、未使用のスタートブロッ
ク番号OSB、例えば『3316』を記憶している。またポイ
ンタブロック1aの『4』番地の1バイトは、未使用のエ
ンドブロック番号OEB、例えば『8A16』を記憶してい
る。 第1図(b)はこの発明の装置構成の一例を説明する
ブロック図であり、11はCPUで、ROM11a,RAM11bを有し、
ROM11aに格納された第7図,第8図に示すフローに準じ
たプログラムに応じて各部を制御する。12は入力手段
で、データ書き込み装置13にセットされるEEPROM1への
データ書き込みおよびデータ消去を指示する。なお、CP
U11にはデータの転送を行うアキュムレータACC,BCCを有
している。 第2図は第1図(a)に示すEEPROM1の構造を示す模
式図であり、21はブロック番号であり、例えば127個の
ブロックBLOCK1〜BLOCK127に分割されている。各ブロッ
クは、例えば256バイトで構成され、先頭の2バイト
で、そのブロックが更新された回数、すなわち、後述す
る更新回数が記憶されている。次に続く253バイトは記
憶データDATAが記憶されており、最後の1バイトは、記
憶データDATAがこのブロックに留まるか、または他のブ
ロックに及ぶかどうかを示す継続ブロックエリアCBがあ
り、他のブロックに記憶データDATAが及ぶ場合は、継続
ブロックエリアCBには継続するブロック番号が記憶さ
れ、他のブロックに記憶データDATAが及ばない場合は、
継続ブロックエリアCBには『FF16』が記憶されている。 第3図は第2図に示す各ディレクトリブロック構造を
説明する模式図であり、30は前記ディレクトリDBに指示
されるディレクトリブロック、31は前記ディレクトリブ
ロック30の更新カウンタで、例えば2バイトで構成され
る。32はファイル領域で、各ファイル名が12バイトで記
憶される。33はスタートブロック番号エリア(SB)で、
例えば1バイトで構成され、ファイルのスタートブロッ
ク番号が記憶されている。34はエンドブロック番号エリ
ア(EB)で、例えば1バイトで構成され、ファイルのエ
ンドブロック番号が記憶されている。35はチェーンブロ
ックエリア(CB)で、ディレクトリブロック30に継続す
るディレクトリブロックの有無を記憶する。例えばチェ
ーンブロックエリア35が『FF16』となる。なお、ディレ
クトリブロック30は、例えば18個のファイル領域32で構
成される。 次に第1図(a)および第3図を参照しながらEEPROM
1の構造について説明する。 第1図(a)に示すようにポインタブロック1aの書き
換え回数WCNTに、例えば『138816』が記憶されていると
すると、5000回の更新が行われたことを示し、またディ
レクトリDBには『0116』が記憶されているので、ディレ
クトリDBに指示されるディレクトリブロック30のブロッ
ク番号が『1』で、そのディレクトリブロック30の更新
カウンタ31には、『142F16』が記憶されている。これ
は、このディレクトリブロック30を5167回更新したこと
を示し、ファイル領域32のファイル(FiLe)1(ファイ
ル名)はスタートブロック番号エリア33が『0216』で、
エンドブロック番号エリア34が『0516』となっているた
め、ブロックBLOCK2から始まり、ブロックBLOCK5で終る
ことになる。またファイル領域32のファイル2は、スタ
ートブロック番号エリア33が『0A16』で、エンドブロッ
ク番号エリア34が『0F16』となっているため、ブロック
BLOCK10から始まり、ブロックBLOCK15で終ることにな
る。さらに、ファイル領域32のファイル3(ファイル
名)は、スタートブロック番号エリア33が『1516』で、
エンドブロック番号エリア34が『1816』となっているた
め、ブロックBLOCK21から始まり、ブロックBLOCK24で終
ることになる。またファイル領域32のファイル3の次に
『FF16』が書かれているので、このファイル領域32はフ
ァイル3で終了していることになる。 第4図は未使用のEEPROM1の状態を説明する模式図で
あり、第1図(a),第3図と同一のものには同じ符号
を付している。 この図から分かるように、未使用のEEPROM1のポイン
タブロック1aの書き換え回数WCNTが『000116』、ディレ
クトリDBが『0116』、未使用のスタートブロック番号OS
Bが『0216』、未使用のエンドブロック番号OEBが『7
F16』がそれぞれポインタブロック1aの0番地から4番
地にそれぞれ記憶されている。これにより、ディレクト
リDBに指示されるブロックBLOCK1を参照すると、更新カ
ウンタ31に『000116』が書き込まれているとともに、フ
ァイル領域32のファイル1に『FF16』が書き込まれてお
り、さらに、チェーンブロックエリア35に『FF16』が書
き込まれており、EEPROM1が未使用状態であることを示
している。 さらに、ポインタブロック1aのスタートブロック番号
CSBおよびエンドブロック番号OEBには『0216』,『7
F16』がそれぞれ書き込まれている。すなわち、ブロッ
クBLOCK2〜127には先頭の2バイトに『000116』が書き
込まれ、最終の1バイトに各後続のブロックの継続を示
すチェーンブロックエリア35には、ブロックBLOCK2〜12
6に対して『03〜7F16』が書き込まれ、ブロックBLOCK12
7のチェーンブロックエリア35には『FF』が書き込まれ
ている。このように、各ブロックBLOCK2〜127は1つの
チェイン構造となる。 次に第3図,第5図(a),(b)を参照しながらEE
PROM1への書き込み動作を説明する。 第5図(a),(b)はEEPROM1への書き込み動作を
説明する模式図であり、第1図(a),第3図と同一の
ものには同じ符号を付している。なお、書き込み直前
は、第3図に示す状態であったものとする。 まず、ディレクトリブロック30のファイル領域32の先
頭が『0016』のところを探し当てる。第3図の場合は、
ファイル2とファイル3との間に『0016』があり、そこ
にファイル4という名前を12バイトで書き込み、ポイン
タブロック1aの未使用ブロックのスタートブロック番号
OSBを参照して、スタートブロック番号OSBの指示するブ
ロックBLOCK、すなわち『5716』の先頭の2バイト情
報、すなわち、更新カウンタ31を『1』インクリメント
し、その加算値が、例えば1万回を越えているようであ
れば、ファイル4のチェーンブロックエリア35が示すブ
ロックBLCOKに対して同様の操作を行い、更新カウンタ3
1が1万回以下のブロックBLOCKを探し当てて、そのブロ
ックBLOCKの番号をポインタブロック1aのスタートブロ
ック番号OSBに書き込むとともに、ファイル4のデータ
をブロックBLOCK87(253バイト)に書き込み、ブロック
BLOCK87に溢れるようであれば、ブロックBLOCK87のチェ
ーンブロックエリア35の指示するブロックBLOCKの更新
カウンタ31を『1』インクリメントして加算値が、例え
ば1万回を越えているかどうかを調べ、指示されるブロ
ックBLOCKの更新カウンタ31が1万回を越えるようであ
れば、更新回数が1万回以下のブロックBLOCKを探し当
て、そのブロックBLOCKの番号を直前に書き込んだブロ
ックBLOCKのチェーンブロックエリア35に書き込む。こ
のようにして、データの書き込みが行われ、更新回数が
1万回を越えるブロックBLOCKが排除されて行く。そし
て、書き込みデータがなくなるまで同様の操作を行い、
最後に書き込んだブロックBLOCKのチェーンブロックエ
リア35に記憶されていた内容を新しい未使用のスタート
ブロック番号OSBに書き換え、ポインタブロック1aの書
き換え回数WCNTを『1』インクリメントして『138916』
となり、最後にデータを書き込んだブロックBLOCKのチ
ェーンブロックエリア35を『FF16』にする。そして、デ
ィレクトリブロック30の最終ブロック番号を記憶するエ
ンドブロック番号エリア34に最後のデータを書き込んだ
ブロックBLOCKの番号を書き込むとともに、更新カウン
タ31を『1』インクリメントすると、第5図(b)に示
されるように、更新カウンタ31が『143016』となり、フ
ァイル4のスタートブロック番号エリア33が『3316』
で、エンドブロック番号エリア34が『3716』となる。 次に第5図(a),(b)を参照しながらEEPROM1に
書き込まれているファイル1の削除動作について説明す
る。 ディレクトリブロック30となるブロックBLOCK1よりフ
ァイル1を探し、ファイル領域32の先頭の2バイトを
『0016』とする。次いで、ディレクトリブロック30の更
新カウンタ31を『1』インクリメントし、ファイル1の
スタートブロック番号エリア33とエンドブロック番号エ
リア34のデータを参照して、ポインタブロック1aのエン
ドブロック番号OEBが指示するブロックのチェーンブロ
ックエリア35の内容(削除直前までは『FF16』であっ
た)をスタートブロック番号エリア33の内容に変更し、
このブロックの更新カウンタ31を『1』インクリメント
する。すなわち、未使用ブロックの最後に今削除したフ
ァイル4を接続するわけである。このようにして、更新
カウンタ31を進めながら何度もファイルの更新,削除を
実行して行くうちに、更新カウンタ31が1万回に接近す
る。 次に更新カウンタ31が1万回に到達した場合のアクセ
ス処理について説明する。 まず、ポインタブロック1aのスタートブロック番号OS
Bの内容が示しているブロックBLOCKのチェーンブロック
エリア35の内容を新規のスタートブロック番号OSBとす
る。次いで、このブロック直前のディレクトリブロック
30の更新カウンタ31の情報以外の内容を転送する。そし
て、ポインタブロック1aのディレクトリDBに新規のディ
レクトリブロック番号を書き込み、ポインタブロック1a
の書き換え回数WCNTおよび更新カウンタ31を『1』イン
クリメントする。 一方、ポインタブロック1aの書き換え回数WCNTは1万
回を越えた場合は、予備ポインタブロックSPB1〜SPB50
のうち一番近い予備ポインタブロックへ書き換え回数WC
NTの情報以外のデータを転送し、新規のポインタブロッ
クの書き換え回数WCNT(000016)を『1』インクリメン
トして『000116』に設定する。この場合、破棄されたポ
インタブロック1aの書き換え回数WCNTは1万回以上とな
り、新のポインタブロック1aの書き換え回数WCNTは1万
回以下となる。このようにして、ディレクトリブロック
30およびポインタブロック1aの書き込み削除を管理す
る。また削除されたファイルが使用していたブロックは
未使用ブロックの一番最後に回される。これは、未使用
ブロックの使用回数を平均化するためである。しかし、
使用されているファイルが更新されずにずっとそのまま
であると、そのファイルが使用しているブロックは更新
回数がそのまま変化しない。例えば、最初に作成された
ファイルがそのままずっと登録されたまま残っている
と、他のブロックは更新回数が5000回以上なのに、この
ファイルだけは2回というようなアンバランスが生じ
る。そこで、EEPROM1の使用状態を平均化するための補
正処理を行う。 補正処理起動条件は下記(a),(b)の場合におい
てである。 (a)ポインタブロック1aの書き換え回数WCNTの値が25
6の整数倍になった時点。 (b)ファイルを構成するブロックの更新カウンタ31の
平均値が一番低い値と、未使用ブロックの更新カウンタ
31の平均値との差が256を越えた時点。 すなわち、新規のファイルを作成したり、削除したり
した後、ポインタブロック1aの書き換え回数WCNTを見
て、ちょうど256の整数倍、2バイトの16進数の下桁が
『0016』になった時点で、ディレクトリブロック30に登
録されている順にファイルを検査して行く。そして、フ
ァイルを構成するブロックの更新カウンタ31を加算し、
さらに構成するブロック数で除して更新平均値を算出す
る。次いで、次のファイルに対しても同様の更新平均値
を出して比較し、低いものをその比較対照として残し、
次のファイルの更新平均値と比較して行き、一番低い更
新回数で構成されるファイルを探し出す。そして、未使
用のブロックの更新回数の平均を計算し、平均更新回数
の一番低いファイルとの差を算出する。 次に第6図(a)〜(c)を参照しながら補正処理動
作について説明する。 第6図(a)〜(c)はこの発明による補正動作を説
明する模式図であり、これらの図において、41はファイ
ルで、ブロックBLOCK5〜7で構成され、平均更新回数が
最も低いものである。42は未使用ブロック群で、ポイン
タブロック1aの未使用スタートブロック番号OSBで指示
される。未使用ブロック群42は、ブロックBLOCK50,10,1
1,18,55,80,81が1つのチェイン構造となっている。 まず、ファイル41のスタートブロックを未使用ブロッ
ク群42のブロックBLOCK81の後段に接続させるため、同
図(a)に示すようにブロックBLOCK81のチェーンブロ
ックエリア35の内容が『FF16』から同図(b)に示すよ
うに、チェーンブロックエリア35の内容が『0516』、す
なわち、ファイル41のブロックBLOCK5を指示させ、さら
に、ファイル41のブロックBLOCK5〜7(ファイル41のチ
ェーンブロックエリア35の内容が『FF16』になるまで)
を未使用ブロック群42のブロックBLOCK81の後段に接続
させ、同図(c)に示すように、ディレクトリブロック
30のファイル41のスタートポインタをブロックBLOCK50
にするとともに、終了ポインタをブロックBLOCK11に変
更する。次いで、未使用ブロック群42の未使用のスター
トブロック番号OSBを『1216』、未使用のエンドブロッ
ク番号OEBを『OB16』にする。これにより、登録された
ファイルを構成するブロックに対しても再度使用可能と
なり、EEPROM1全体のブロックが平均的に使用,更新さ
れることになる。 第7図はこの発明の一実施例を示すメモリの書き込み
制御方法を説明するためのフローチャートである。な
お、(1)〜(18)は各ステップを示す。 まず、ディレクトリブロック30の空エリアを探して、
新規のファイル名を書き込む(1)。次いで、未使用の
スタートブロック番号OSBをCPU11のアキュムレータACC
に記憶させる(2)。アキュムレータACCが指示するブ
ロックの書き換え回数WCNTを+1更新する(3)。ここ
で、書き換え回数WCNTが10000を越えたかどうかを判断
し(4)、YESならばアキュムレータACCの指示するブロ
ックの継続ブロックエリアCBをアキュムレータACCに記
憶し(5)、ステップ(3)に戻り、NOならばディレク
トリブロック30のスタートブロック番号エリア(SB)33
にアキュムレータACCの内容を書き込む(6)。次い
で、アキュムレータACCが指示するブロックのデータエ
リアにデータを書き込む(7)。ここで、書き込みデー
タがアキュムレータACCが指示するブロックの容量が235
バイトを越えるかどうかを判断し(8)、YESならばア
キュムレータACCが指示するブロックの継続ブロックエ
リアCBをアキュムレータBCCに記憶させる(9)。次い
で、アキュムレータBCCが指示するブロックの書き換え
回数WCNTを+1更新する(10)。次いで、書き換え回数
WCNTが10000を越えたかどうかを判断し(11)、YESなら
ばアキュムレータBCCの指示するブロックの継続ブロッ
クエリアCBを記憶させ(12)、ステップ(10)に戻り、
NOならばアキュムレータACCが指示するブロックの継続
ブロックエリアCBにアキュムレータBCCの内容を書き込
み(13)、ステップ(7)に戻る。 一方、ステップ(8)の判断でNOの場合は、アキュム
レータACCが指示する継続ブロックエリアCBを未使用の
スタートブロック番号OSBに書き込む(14)。次いで、
ポインタブロック1aの書き換え回数WCNTを+1更新する
(15)。次いで、アキュムレータACCが指示するブロッ
クの継続ブロックエリアCBへ「FF16」を書き込む(1
6)。そして、ディレクトリブロック30の新ファイル位
置のエンドブロック番号エリア34へアキュムレータACC
の内容を書き込む(17)。次いで、ディレクトリブロッ
ク30の書き換え回数WCNTを更新する(18)。 第8図はこの発明による補正制御動作手順を説明する
ためのフローチャートである。なお、(1)〜(7)は
各ステップを示す。 ポインタブロック1aの書き換え回数WCNTが256の整数
倍であるかどうかを判断し(1)、NOならばリターン
(RETURN)し、YESならばディレクトリブロック30に登
録された各ファイルを構成するブロックの更新カウンタ
31の平均値を算出して、最も更新回数が少ないファイル
を探し出す(2)。次いで、未使用のブロックの更新回
数の平均値を算出する(3)。次いで、未使用ブロック
の更新カウンタの平均値からファイルを構成するブロッ
クの更新カウンタの平均値の最小値を減算し、さらに減
算値から256を差し引いた値が正かどうかを判断し
(4)、NOならばリターンし、YESならば未使用ブロッ
クの最後尾に該当するファイルのヘッドを接続させる
(5)。次いで、接続したファイルの内容を未使用ブロ
ックへ転送させ(6)、ディレクトリブロック30にある
接続したファイルのスタートポインタ,エンドポインタ
を変更し(7)、リターンする。 このように、この発明に係るメモリ書き込み制御方法
は、複数の領域に分割されたメモリと各領域毎に設けら
れたカウンタとを利用し、該分割された領域のうち書き
込み可能な複数の領域のカウンタ値を判断し、前記判断
された各領域のカウンタ値に基づいて、前記書き込み可
能な複数の領域の中から、情報を書き込む領域を選択す
るので、複数の領域中における任意の領域の情報のみが
頻繁に書き換えられても、書き込み回路が周辺の各領域
に比べて差が生じないように当該領域の情報を書き込み
回数が小さい他の領域にデータを書き込み、メモリ全体
としてみれば書き込み可能な複数の領域のカウンタ値を
平均化して書き込み、耐久を分散させてメモリに対する
書き込み寿命を延長させることが可能となる。 以上説明したように、この発明は記憶領域を複数に分
割し、各ブロック毎に書き込み回数を記憶し、この書き
込み回数に応じて書き込み頻度の低いブロックを未使用
ブロックの先頭から書き込むとともに、書き込み頻度の
低いブロックを未使用ブロックの最後尾に接続させるよ
うにしたので、EEPROMに書き込まれるデータの消失を防
止するとともに、EEPROMへの書き込み回数を平均化させ
ることができる。またEEPROM上の各ブロックの書き換え
頻度を平均化でき、書き換え寿命を大幅に延長できる優
れた利点を有する。 〔発明の効果〕 以上説明したように、この発明によれば、複数の領域
に分割されたメモリと各領域毎に設けられたカウンタと
を利用し、該分割された領域のうち書き込み可能な複数
の領域のカウンタ値を判断する工程と、前記判断された
各領域のカウンタ値に基づいて、前記書き込み可能な複
数の領域の中から、情報を書き込む領域を選択する工程
とを有することにより、各領域中のカウンタ値を平均化
して、書き込み耐久を分散させることができるので、書
き込み寿命を大幅に延長できる優れた効果を奏する。
【図面の簡単な説明】
第1図(a)はこの発明の一実施例を示すプログラマブ
ルリードオンリメモリへの書き込み制御方法を説明する
模式図、第1図(b)はこの発明の装置構成を説明する
ためのブロック図、第2図は第1図(a)に示すEEPROM
の構造を示す模式図、第3図は第2図に示す各ディレク
トリブロック構造を説明する模式図、第4図は未使用の
EEPROMの状態を説明する模式図、第5図(a),(b)
はEEPROMへの書き込み動作を説明する模式図、第6図
(a)〜(c)はこの発明による補正処理動作を説明す
る模式図、第7図はこの発明の一実施例を示すメモリの
書き込み制御方法を説明するためのフローチャート、第
8図はこの発明による補正制御動作手順を説明するため
のフローチャートである。 図中、1はEEPROM、1aはポインタブロック、21はブロッ
ク番号、30はディレクトリブロック、31は更新カウン
タ、32はファイル領域、33はスタートブロック番号エリ
ア、34はエンドブロック番号エリア、35はチェーンブロ
ックエリア、41はファイル、42は未使用ブロック群であ
る。
ルリードオンリメモリへの書き込み制御方法を説明する
模式図、第1図(b)はこの発明の装置構成を説明する
ためのブロック図、第2図は第1図(a)に示すEEPROM
の構造を示す模式図、第3図は第2図に示す各ディレク
トリブロック構造を説明する模式図、第4図は未使用の
EEPROMの状態を説明する模式図、第5図(a),(b)
はEEPROMへの書き込み動作を説明する模式図、第6図
(a)〜(c)はこの発明による補正処理動作を説明す
る模式図、第7図はこの発明の一実施例を示すメモリの
書き込み制御方法を説明するためのフローチャート、第
8図はこの発明による補正制御動作手順を説明するため
のフローチャートである。 図中、1はEEPROM、1aはポインタブロック、21はブロッ
ク番号、30はディレクトリブロック、31は更新カウン
タ、32はファイル領域、33はスタートブロック番号エリ
ア、34はエンドブロック番号エリア、35はチェーンブロ
ックエリア、41はファイル、42は未使用ブロック群であ
る。
Claims (1)
- (57)【特許請求の範囲】 1.メモリに書き込まれた情報を電気的に書き換えので
きるメモリの書き込み制御方法であって、 複数の領域に分割されたメモリと各領域毎に設けられた
カウンタとを利用し、該分割された領域のうち書き込み
可能な複数の領域のカウンタ値を判断する工程と、 前記判断された各領域のカウンタ値に基づいて、前記書
き込み可能な複数の領域の中から、情報を書き込む領域
を選択する工程とを有することにより、書き込み可能な
複数の領域のカウンタ値を平均化し得ることを特徴とす
るメモリ書き込み制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12473186A JP2685173B2 (ja) | 1986-05-31 | 1986-05-31 | メモリ書き込み制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12473186A JP2685173B2 (ja) | 1986-05-31 | 1986-05-31 | メモリ書き込み制御方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2341893A Division JP2749752B2 (ja) | 1993-01-20 | 1993-01-20 | メモリの書き込み制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62283496A JPS62283496A (ja) | 1987-12-09 |
JP2685173B2 true JP2685173B2 (ja) | 1997-12-03 |
Family
ID=14892712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12473186A Expired - Lifetime JP2685173B2 (ja) | 1986-05-31 | 1986-05-31 | メモリ書き込み制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2685173B2 (ja) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01286199A (ja) * | 1988-05-12 | 1989-11-17 | Hitachi Ltd | 書替え可能な不揮発性メモリ書替え装置 |
US5268870A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5268319A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Highly compact EPROM and flash EEPROM devices |
US7447069B1 (en) | 1989-04-13 | 2008-11-04 | Sandisk Corporation | Flash EEprom system |
EP1031992B1 (en) * | 1989-04-13 | 2006-06-21 | SanDisk Corporation | Flash EEPROM system |
US5023813A (en) * | 1989-08-03 | 1991-06-11 | International Business Machines Corporation | Non-volatile memory usage |
JPH03250499A (ja) * | 1990-02-27 | 1991-11-08 | Nec Corp | データ記憶回路 |
JP2584120B2 (ja) * | 1990-09-28 | 1997-02-19 | 富士写真フイルム株式会社 | メモリカードにおけるデータ記録方法およびメモリカードシステム |
EP0492450B1 (en) * | 1990-12-25 | 2002-08-28 | Fuji Photo Film Co., Ltd. | Memory card having an EEPROM |
US5222109A (en) * | 1990-12-28 | 1993-06-22 | Ibm Corporation | Endurance management for solid state files |
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP2883759B2 (ja) * | 1991-10-17 | 1999-04-19 | 東芝テック株式会社 | 情報記憶装置 |
JP4086083B2 (ja) * | 1991-11-28 | 2008-05-14 | 株式会社日立製作所 | フラッシュメモリを備えた情報機器 |
JPH05151097A (ja) * | 1991-11-28 | 1993-06-18 | Fujitsu Ltd | 書換回数制限型メモリのデータ管理方式 |
US6256642B1 (en) * | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
JP3485938B2 (ja) * | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
JP3390482B2 (ja) * | 1992-06-12 | 2003-03-24 | 株式会社リコー | ファクシミリ装置 |
JPH0750558B2 (ja) * | 1992-09-22 | 1995-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリ |
US5369616A (en) * | 1992-10-30 | 1994-11-29 | Intel Corporation | Method for assuring that an erase process for a memory array has been properly completed |
EP0613151A3 (en) * | 1993-02-26 | 1995-03-22 | Tokyo Shibaura Electric Co | Semiconductor memory system with flash EEPROM. |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
JPH06338195A (ja) * | 1993-05-31 | 1994-12-06 | Nec Corp | 電気的消去可能な不揮発性メモリの書き込み回数管理装置 |
US5592641A (en) * | 1993-06-30 | 1997-01-07 | Intel Corporation | Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status |
US5600821A (en) * | 1993-07-28 | 1997-02-04 | National Semiconductor Corporation | Distributed directory for information stored on audio quality memory devices |
JP3215237B2 (ja) * | 1993-10-01 | 2001-10-02 | 富士通株式会社 | 記憶装置および記憶装置の書き込み/消去方法 |
US5765175A (en) * | 1994-08-26 | 1998-06-09 | Intel Corporation | System and method for removing deleted entries in file systems based on write-once or erase-slowly media |
US6757800B1 (en) | 1995-07-31 | 2004-06-29 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5845313A (en) * | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
US6081878A (en) * | 1997-03-31 | 2000-06-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5838614A (en) | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US6801979B1 (en) | 1995-07-31 | 2004-10-05 | Lexar Media, Inc. | Method and apparatus for memory control circuit |
US5907856A (en) * | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
US6125435A (en) * | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
US5928370A (en) * | 1997-02-05 | 1999-07-27 | Lexar Media, Inc. | Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure |
US6411546B1 (en) | 1997-03-31 | 2002-06-25 | Lexar Media, Inc. | Nonvolatile memory using flexible erasing methods and method and system for using same |
US6034897A (en) * | 1999-04-01 | 2000-03-07 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
US6122195A (en) * | 1997-03-31 | 2000-09-19 | Lexar Media, Inc. | Method and apparatus for decreasing block write operation times performed on nonvolatile memory |
US6076137A (en) * | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
GB9801373D0 (en) | 1998-01-22 | 1998-03-18 | Memory Corp Plc | Memory system |
US6040997A (en) * | 1998-03-25 | 2000-03-21 | Lexar Media, Inc. | Flash memory leveling architecture having no external latch |
US6374337B1 (en) | 1998-11-17 | 2002-04-16 | Lexar Media, Inc. | Data pipelining method and apparatus for memory control circuit |
US6141249A (en) * | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
US6681240B1 (en) * | 1999-05-19 | 2004-01-20 | International Business Machines Corporation | Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
US6567307B1 (en) | 2000-07-21 | 2003-05-20 | Lexar Media, Inc. | Block management for mass storage |
GB0123412D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
US7231643B1 (en) | 2002-02-22 | 2007-06-12 | Lexar Media, Inc. | Image rescue system including direct communication between an application program and a device driver |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
US7174440B2 (en) | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
US7526599B2 (en) | 2002-10-28 | 2009-04-28 | Sandisk Corporation | Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system |
US7234036B1 (en) | 2002-10-28 | 2007-06-19 | Sandisk Corporation | Method and apparatus for resolving physical blocks associated with a common logical block |
US7254668B1 (en) | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US7035967B2 (en) | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
DE60316171T2 (de) | 2002-10-28 | 2008-05-29 | SanDisk Corp., Milpitas | Automatischer abnutzungsausgleich in einem nicht-flüchtigen speichersystem |
US7171536B2 (en) | 2002-10-28 | 2007-01-30 | Sandisk Corporation | Unusable block management within a non-volatile memory system |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
US7181611B2 (en) | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US7559004B1 (en) | 2003-10-01 | 2009-07-07 | Sandisk Corporation | Dynamic redundant area configuration in a non-volatile memory system |
US7188228B1 (en) | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US7089349B2 (en) | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
US8706990B2 (en) | 2003-10-28 | 2014-04-22 | Sandisk Technologies Inc. | Adaptive internal table backup for non-volatile memory system |
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58215794A (ja) * | 1982-06-08 | 1983-12-15 | Toshiba Corp | 不揮発性メモリ装置 |
JPS60212900A (ja) * | 1984-04-09 | 1985-10-25 | Nec Corp | 半導体固定記憶装置 |
-
1986
- 1986-05-31 JP JP12473186A patent/JP2685173B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS62283496A (ja) | 1987-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2685173B2 (ja) | メモリ書き込み制御方法 | |
JPH07109717B2 (ja) | メモリ書き込み制御方法 | |
US5682497A (en) | Managing file structures for a flash memory file system in a computer | |
US6871259B2 (en) | File system including non-volatile semiconductor memory device having a plurality of banks | |
US5530827A (en) | Data management system for programming-limited type semiconductor memory and IC memory card employing data save/erase process with flag assignment | |
US5933846A (en) | Rewritable ROM file device having read/write buffer access control via copy of rewritable area | |
US6839823B1 (en) | Increased reliability of data stored on flash memory in applications sensitive to power-loss | |
US7493442B2 (en) | Multiple segment data object management | |
US5448728A (en) | Storage medium control system for controlling a write-once read-many storage medium | |
US7039786B2 (en) | Memory device and recording and/or reproducing apparatus employing this memory device | |
US20040085849A1 (en) | Flash memory, and flash memory access method and apparatus | |
US20090307291A1 (en) | Smart card storage system and file management method therein | |
US20010054129A1 (en) | Method, system and computer program | |
JPH08328762A (ja) | 半導体ディスク装置及びそのメモリ管理方法 | |
JP4175881B2 (ja) | 不揮発性メモリの記憶方法及び記憶装置 | |
US5748537A (en) | Method and apparatus for storing items in flash memory | |
CN113641629A (zh) | 一种flash存储器的文件写入和读取方法 | |
JPH113287A (ja) | 記憶装置およびそれに用いられる記憶領域管理方法 | |
US20030200232A1 (en) | Information processor and program | |
CN116301614A (zh) | 存储器数据存取方法、系统、设备和存储介质 | |
JP2749752B2 (ja) | メモリの書き込み制御装置 | |
JPH04123243A (ja) | データ書込装置 | |
KR100319254B1 (ko) | 플레쉬 메모리를 이용한 비휘발성 데이터 영역 복구 방법 | |
JPH1091535A (ja) | 半導体メモリ装置 | |
CN111597066A (zh) | Ssd修复方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |