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
Application number
JP12473186A
Other languages
English (en)
Other versions
JPS62283496A (ja
Inventor
眞一 仲田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP12473186A priority Critical patent/JP2685173B2/ja
Publication of JPS62283496A publication Critical patent/JPS62283496A/ja
Application granted granted Critical
Publication of JP2685173B2 publication Critical patent/JP2685173B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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上の各ブロックの書き換え
頻度を平均化でき、書き換え寿命を大幅に延長できる優
れた利点を有する。 〔発明の効果〕 以上説明したように、この発明によれば、複数の領域
に分割されたメモリと各領域毎に設けられたカウンタと
を利用し、該分割された領域のうち書き込み可能な複数
の領域のカウンタ値を判断する工程と、前記判断された
各領域のカウンタ値に基づいて、前記書き込み可能な複
数の領域の中から、情報を書き込む領域を選択する工程
とを有することにより、各領域中のカウンタ値を平均化
して、書き込み耐久を分散させることができるので、書
き込み寿命を大幅に延長できる優れた効果を奏する。
【図面の簡単な説明】 第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は未使用ブロック群であ
る。

Claims (1)

  1. (57)【特許請求の範囲】 1.メモリに書き込まれた情報を電気的に書き換えので
    きるメモリの書き込み制御方法であって、 複数の領域に分割されたメモリと各領域毎に設けられた
    カウンタとを利用し、該分割された領域のうち書き込み
    可能な複数の領域のカウンタ値を判断する工程と、 前記判断された各領域のカウンタ値に基づいて、前記書
    き込み可能な複数の領域の中から、情報を書き込む領域
    を選択する工程とを有することにより、書き込み可能な
    複数の領域のカウンタ値を平均化し得ることを特徴とす
    るメモリ書き込み制御方法。
JP12473186A 1986-05-31 1986-05-31 メモリ書き込み制御方法 Expired - Lifetime JP2685173B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 半導体固定記憶装置

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