JP2001195889A - 記憶装置の書き込み/消去方法 - Google Patents

記憶装置の書き込み/消去方法

Info

Publication number
JP2001195889A
JP2001195889A JP2000347501A JP2000347501A JP2001195889A JP 2001195889 A JP2001195889 A JP 2001195889A JP 2000347501 A JP2000347501 A JP 2000347501A JP 2000347501 A JP2000347501 A JP 2000347501A JP 2001195889 A JP2001195889 A JP 2001195889A
Authority
JP
Japan
Prior art keywords
block
data
sector
written
writing
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.)
Granted
Application number
JP2000347501A
Other languages
English (en)
Other versions
JP3573706B2 (ja
Inventor
Shinpei Komatsu
新平 小松
Yumi Morita
由美 森田
Tomohiro Hayashi
朋弘 林
Shogo Shibazaki
省吾 柴崎
Hiroyuki Ito
裕之 伊藤
Masaru Takehara
勝 竹原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000347501A priority Critical patent/JP3573706B2/ja
Publication of JP2001195889A publication Critical patent/JP2001195889A/ja
Application granted granted Critical
Publication of JP3573706B2 publication Critical patent/JP3573706B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 上書きができず、また、バイト単位で消去す
ることができないメモリの消去を効率的に行うこと。 【解決手段】 本体処理装置2から記憶装置1に書き込
みデータが送られてくると、制御手段1bはデータを一
次記憶媒体1cに格納し、記憶領域1aの新たなセクタ
もしくはブロックに書き込む。また、ブロック毎に書き
込みの有無を示すフラグF1を設けて、データを消去す
る際、フラグF1を参照して、書き込まれたデータを消
去する。さらに、全記憶領域を消去する際、書き込みの
有無を示すフラグF1を参照して、書き込みの有るブロ
ックのみを消去する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はパソコンの外部記憶装置
等に使用されるフラッシュ・メモリ等の上書きのできな
い記憶装置の書き込み/消去方法に関する。
【0002】
【従来の技術】近年、パソコン等の外部記憶装置とし
て、フラッシュ・メモリを使った外部記憶装置が注目を
あびている。フラッシュ・メモリは、不揮発性のためバ
ックアップ電源が不要であり、電気的に書き換えること
ができ、しかも安価であるが、次のような問題点を持っ
ている。 データを消去してからでなければ、データの書き込
みはできず、また、消去の単位はバイト単位は不可能で
あり、セクタ、ブロックもしくはチップ単位となる。こ
のため、通常のメモリのように、バイト単位でデータを
書き換えることはできず、読み出し速度に対して、書き
込み速度あるいは消去速度が遅い。 消去回数に制限があり、通常、消去回数が10万〜
100万回程度で消去不能となるといわれている。この
ため、セクタ、もしくはブロックの消去回数が平均化す
るように使用しないと、消去回数の多い部分が先に不良
となり、使用可能領域が減少する。フラッシュ・メモリ
は上記のような問題点をもっているため、フラッシュ・
メモリを使用するにあたっては、データの退避領域を用
意し、データの書き換え時にデータを退避したり、管理
テーブルを設けてデータの書き込み/消去を管理した
り、さらに、不良セクタ、ブロック等が発生した場合に
救済措置を講ずるなど、種々の方策が講じる必要があ
る。
【0003】
【発明が解決しようとする課題】フラッシュ・メモリは
不揮発性で電気的に書き換えることができる等の長所を
持っている反面、上記のように多くの問題点を持ってお
り、従来から使用されているDRAM、SRAM等の半
導体メモリとは異なり、その使用にあたって解決しなけ
ればならない問題点も多い。本発明は上記した問題点に
鑑みなされたものであって、本発明の目的は、フラッシ
ュ・メモリ等のように上書きができず、また、バイト単
位で消去することができないメモリの消去を効率的に行
うことである。
【0004】
【課題を解決するための手段】図1は本発明の全体の概
略構成を示す原理図、図2〜図4は本発明の概要を示す
原理図である。図1ないし図4において、1は記憶装
置、1aは上書きすることができず、また、セクタ、ブ
ロック等の所定の単位でしかデータを消去することがで
きない、例えばフラッシュ・メモリ等から構成される記
憶領域、1bは記憶領域1aへのデータの書き込み等を
制御したり、記憶領域1aの消去等を行う制御手段、1
cは記憶領域1aへのデータの書き込み時に一時的にデ
ータを格納したり、また、記憶領域1aのデータを退避
するための一次記憶媒体、1d,1eは記憶領域1aの
アドレスをデコードするためのデコードテーブル、2は
本体処理装置である。
【0005】前記課題を解決するため、本発明の請求項
1の発明は、記憶領域1aが複数のブロック1a−1,
…,1a−Nから構成され、書き込まれたデータをブロ
ック単位で消去する記憶装置1において、図3(b)に
示すようにブロック毎に書き込みの有無を示すフラグF
1を設けて、フラグF1を参照して、書き込まれたデー
タを消去するようにしたものである。本発明の請求項2
の発明は、請求項1の発明において、全記憶領域を消去
する際、書き込みの有無を示すフラグF1を参照して、
書き込みの有るブロックのみ消去するようにしたもので
ある。
【0006】
【作用】図1において、本体処理装置2から記憶装置1
に書き込みデータが送られてくると、制御手段1bはデ
ータを一次記憶媒体1cに格納する。そして、デコード
・テーブル1d(1e)を参照してアドレスをデコード
し、一次記憶媒体1cに格納されたデータを記憶領域1
aの新たなセクタもしくはブロックに書き込む。その
際、書き込むデータの論理アドレスと同一の論理アドレ
スのデータが記憶領域1aに既に存在している場合に
は、そのデータを消去したり、そのデータを格納した領
域に消去可能フラグを立てる。また、データを格納した
領域に消去フラグを立てた場合には、制御手段1bは所
定の時期に所定の単位で、消去不可のデータを一次記憶
媒体1cに退避して記憶領域1aを消去し、一次記憶媒
体1cに退避したデータを記憶領域1aに書き戻す等の
処理を行い、空き領域の作成等を行う。さらに、制御手
段1bは記憶領域1aの一部が不良になった場合には、
デコード・テーブル1d(1e)を書き換えるなどし
て、不良部分を予備領域で代替する。
【0007】図2(a)に示す記憶領域1aが複数のブ
ロック1a−1,…,1a−Nと、該ブロックを区切っ
たセクタから構成され、書き込まれたデータをブロック
単位で消去する記憶装置、図4に示す記憶領域が上書き
できない複数のセクタで構成され、セクタに書き込まれ
たデータをセクタ単位で消去する記憶装置において、デ
ータの書き込み/消去は次のように行われる。 (1) 記憶領域1aが複数のブロック1a−1,…,1a
−Nと、該ブロックを区切ったセクタから構成され、書
き込まれたデータをブロック単位で消去する記憶装置1
において、ブロック1a−1,…,1a−N内の消去不
可のデータを空きセクタがある他のブロックに退避する
に際して、図2(b)に示すように消去可能なセクタ数
が多いブロックからmブロックと、消去可能が少ないブ
ロックからnブロック(m,nは任意の整数)を選択
し、選択されたブロックを同時に空きセクタがある他の
ブロックに、セクタを散在させて均一に、退避する。こ
れにより、空きブロックを作成することができるととも
に、結果的に各ブロックに書き換えが多いセクタと書き
換えが少ないセクタが混在することとなり、ブロックの
消去回数を平均化することができる。 (2) 記憶領域1aが、退避領域を含む複数のブロック1
a−1,…,1a−Nから構成され、書き込まれたデー
タをブロック単位で消去する記憶装置において、、図2
(c)に示すように消去可能なデータを含むブロック1
a−1,…,1a−Nのデータの内、消去不可のデータ
のみを退避領域に移動したのち、上記ブロックのデータ
を消去し、消去したブロックを新たな退避領域として、
空き領域を作成する。これにより、消去可能データをな
くすことができ、本処理を予め行っておくことにより、
書き込み時間を短縮することができる。 (3) データの書き込み方向に対して、退避領域の反対側
のブロックの消去不可のデータのみを退避領域に移動し
たのち、上記ブロックのデータを消去し、消去したブロ
ックを新たな退避領域とする。これにより、書き込み場
所を示す書き込みポインタと退避領域の間に全ての空き
領域を存在させることができる。したがって、処理の中
断があっても、書き込みポインタの示す位置からデータ
を書き込むことができ、処理中断後に必要とする処理量
を少なくすることができる。
【0008】(4) 記憶領域1aが、予備領域を含む複数
のブロック1a−1,…,1a−Nから構成され、書き
込まれたデータをブロック単位で消去する記憶装置にお
いて、図2(a)、図3(a)に示すように書き込みポ
イントを予備領域に設定し、データが書き込まれたブロ
ックの消去不可のデータを予備領域に移動したのち、上
記ブロックのデータを消去する処理を繰り返し、最後に
消去したブロック以外のブロックの空きセクタ数が予備
領域にあるセクタ数と等しいか、もしくは、大きくなっ
たとき、予備領域のデータを最後に消去したブロック以
外のブロックに移動する。これにより、空き領域を作成
することができる。また、空きブロックが使用不可にな
ったとき、使用不可となったブロックを救済して空きブ
ロックを作成することができる。さらに、予備領域のデ
ータを、データを最後に消去したブロック以外のブロッ
クに移動する際、移動先の書き込みポイントを、データ
を最後に消去したブロックの後のブロックから検索して
予備領域のデータを移動するようにすることにより、最
後に消去をかけたブロックと書き込みポインタの間に全
ての空きセクタを存在させることができ、処理中断後の
処理を簡単にすることができる。またさらに、処理中断
後、処理を再開したとき、予備領域に消去可能なデータ
があるか、あるいは、消去不可のデータのみがあるかに
応じて、処理中断時点を判断することができ、処理中断
時点の判断を単純化することができる。 (5) 図4に示すように、記憶領域1が上書きできない複
数のセクタで構成され、セクタに書き込まれたデータを
セクタ単位で消去する記憶装置において、同一のセクタ
番号を持つセクタを少なくとも2個用意し、同一番号が
付されたセクタのいずれか一方にデータがあった場合、
他方のセクタにデータを書き込むと同時に、一方のセク
タのデータを消去する。これにより、書き込み速度を向
上することができる。 (6) 図4に示す記憶装置において、書き込みするセクタ
にデータがある場合、データを一次記憶装置1cに転送
している間に、上記セクタのデータを消去し、データの
消去完了後、もしくは、データ転送の終了後、上記セク
タにデータを書き込む。これにより書き込み速度を向上
することができる。 (7) 図4に示す記憶装置において、不良なセクタを代替
する予備の領域1b−1,1b−2と、書き込みセクタ
を管理する書き換え可能なデコード・テーブル1dを設
け、不良なセクタが発生したとき、上記デコード・テー
ブル1dを書き換えることにより、予備の領域1b−
1,1b−2に書き込みセクタを変更し、予備の領域1
b−1,1b−2がなくなつたとき、デコード・テーブ
ル1dを書き換えてセクタを再構成するようにしたの
で、不良セクタ発生時の救済を行うことができる。 (8) 図4に示す記憶装置において、N個のセクタ番号に
対してN+1個のセクタを設けるとともに、N+1個の
各セクタをN個のセクタ番号で共有し、データをセクタ
へ書き込む際、データをN+1個のセクタの内の空いて
いるセクタに書き込む。これにより、書き込み速度を向
上することができるとともに、余分に用意するセクタの
数を少なくすることができ、コストダウンを図ることが
できる。また、不良なセクタを代替する予備の領域1b
−1,1b−2を設け、不良なセクタが発生したとき、
デコード・テーブル1dを書き換え、予備の領域1b−
1,1b−2に書き込みブロックあるいはセクタを変更
するようにしたり、デコード・テーブル1dを再編成す
る。これにより、不良セクタ発生時の救済を行うことが
できる。 (9) 読み書きが可能で、かつ、記憶領域の一部が破壊す
る可能性のある記憶領域1aと、記憶領域1a中のデー
タが記憶されている場所を示す書き換え可能なデコーダ
1dとを備えた記憶装置において、図4に示すようにデ
コーダを2段設け、記憶装置1の記憶領域1aの一部が
破壊したとき、もしくは、デコータ1d,1eの一部が
破壊したとき、2段のデコーダ1d,1eのいずれか一
方、もくしは、両方を書き換えることにより、破壊した
部分へのデコードが行われないようにする。これによ
り、デコーダとして、EEPROM、フラッシュメモリ
等のその一部が破壊する可能性のある記憶媒体を用いた
場合においても、アドレスがエラーとなる確率を著しく
減少させることができ、信頼性を確保することができ
る。 (10)記憶領域1aが複数に分割されており、分割された
チップ内に複数のブロックが設けられ、チップ内のブロ
ックにデータを書き込む際、新たなブロックにデータを
書き込み、書き込んだデータがチップ内に既に存在して
いる場合には、そのデータをブロック単位で消去する記
憶装置において、データを書き込むチップを、書き込む
データに対応させて固定する。これにより、制御手段1
bは各チップ内のデータのみを管理すればよく、全領域
を管理する必要がない。このため、制御手段1bにおけ
る管理テーブルを簡単にすることができ、書き込み速度
を向上させることができる。また、各チップ内にデータ
を書き込むための複数のワークブロックを設けることに
より、ワークブロックに不良が発生した場合に、不良と
なったワークブロックを救済することができる。
【0009】本発明の請求項1,2の発明は、上述の記
憶領域1aが複数のブロック1a−1,…,1a−Nか
ら構成され、書き込まれたデータをブロック単位で消去
する記憶装置1において、ブロック毎に書き込みの有無
を示すフラグF1を設けて、図3(b)に示すように、
フラグF1を参照して書き込まれたデータを消去するよ
うにしたので、不要な消去を避けることができ、消去時
間の短縮を図ることができるとともに、記憶媒体の寿命
を延ばすことができる。なお、記憶領域1a上に同一の
機能に対応した複数ビットのフラグを記録し、該フラグ
の論理積によりフラグの判定を行うようにすれば、全ビ
ットが不良にならない限り、正しい判定値を常に出力す
ることができ、システムの信頼性を向上させることがで
きる。
【0010】
【実施例】次に、本発明の実施例を説明する。 A.本発明の前提となる記憶装置の構成。図5は本発明
の前提となるフラッシュ・メモリを使用した記憶装置の
構成を示すブロック図である。同図において、20は例
えばメモリ・カード等の記憶装置、21はフラッシュ・
メモリのデータの書換え、消去等を制御するコントロー
ラLSI、22はプロセッサ、23は各種テーブルを格
納したり、データの書き込み時のデータ・バッファある
いは退避バッファとして使用されるSRAM、24はク
ロック発振器、25−1〜25−5はフラッシュ・メモ
リである。同図において、本体よりSRAM23に転送
されたデータをフラッシュ・メモリ25−1〜25−5
に書き込む際、前記したようにフラッシュ・メモリは上
書きができないので、データを書き込み場合には、新た
な領域にデータを書き込む。また、データ更新の場合に
は、旧データに消去フラグを立てる等の措置を講ずる。
そして、旧データに消去フラグが立てられている場合に
は、所定の時期に、消去フラグが付されていないデータ
のみを所定の単位でSRAM23の退避領域に退避し、
フラッシュ・メモリの書き込むべき領域を消去したの
ち、データを書き戻すことによりデータの整理を行う。
【0011】図6は上記したSRAM23の内容を示す
図であり、同図に示すように、SRM23には下記のデ
ータが格納される。 (1) 消去回数テーブル フラッシュ・メモリの各ブロックの消去回数を保持して
いる。 (2) 消去可能セクタ数テーブル 各ブロックの消去可能セクタ・フラグの立っている総数
値を保持する。 (3) 書き込みポインタ フラッシュ・メモリに書き込みを開始するチップNo. ,
ブロックNo. ,セクタ・アドレスNo. を保持する。 (4) WORK−BLOCK−No. 現在のWORK−BLOCK−No. を示し、チップNo.
,ブロックNo. を保持する。 (5) 整理ポインタ 現在、整理をしているチップNo. ,ブロックNo. ,セク
タ・アドレスNo. を保持する。 (6) 書き換え有無 現在、書き込みするデータが新規であるかどうかを示
す。 (7) 書き込み回数 整理時の本体書き込み回数を管理する。 (8) 退避カウンタ 整理時の退避動作のセクタ数を管理する。 (9) チップ数 カードの搭載フラッシュ−チップ数を保持する。 (10)セクタマップ・テーブル 論理アドレスの変換用にチップNo. ,ブロックNo. ,セ
クタ・アドレスNo. を保持する。
【0012】図7、図8はフラッシュ・メモリ25−1
〜25−5の内容を示す図であり、フラッシュ・メモリ
の各セクタには、次の(1) から(5) に示す制御情報、デ
ータ等が格納されている。なお、この例においては、セ
クタが126設けられており、各セクタには、(1) から
(5) の管理情報等とデータが格納され、126番目のセ
クタの後に、次の(6) から(14)の管理情報等が格納され
ている。 (1) 不良フラグ このセクタの状態を示し、使用不可の場合に、ここに書
き込みを行う。 (2) 消去フラグ このセクタのデータの状態を示し、書き換え等で無効に
なった場合に、ここに書き込みを行う。 (3) 論理アドレス このセクタの論理アドレスを示す。 (4) データ このセクタに書き込まれたデータ。 (5) チェックサム 書き込んだデータのチェックサム (6) 不良セクタ・メモリ 整理対象ブロックの中の不良セクタを示す。 (7) 整理元消去回数 整理対象ブロックの消去回数。 (8) 退避ブロックNo. データを退避してくるチップNo. ,ブロックNo. (9) 消去Start 整理対象ブロックの消去を開始する時に立てる。 (10)消去End 整理対象ブロックの消去を終了するときに立てる。 (11)All Erase対象 All Erase時に消去対象として確定した時に立
てる。 (12)空きブロック ブロック内にデータがあるかを示し、データがある場合
に立てられる。 (13)ブロック・ステータス このブロックの状態を示し、使用不可になった場合に立
てる。
【0013】図9ないし図13はフラッシュ・メモリ2
5−1から25−5へのデータ書き込み時のプロセッサ
22における処理を示すフローチャートであり、同図を
参照して書き込み時の動作を詳細に説明する。図9のス
テップS1において、SRAM23の、現在書き込みを
するデータが新規であるか否かを示す「書き換えの有
無」(図6参照)を0として、ステップS2において、
整理中であるか否かを判別する。整理中でない場合に
は、ステップS5に行き、SRAM23の、整理時の本
体書き込み回数を管理する「書き込み回数」を0にしス
テップS7に行く。また、整理中の場合には、ステップ
S3に行き、「書き込み回数」に1を加え、ステップS
4において、書き込み回数が6であるか否かを判別す
る。書き込み回数が6の場合には、ステップS6に行
き、書き込み回数を1にする。また、書き込み回数が6
でない場合には、ステップS7に行く。
【0014】上記処理は、後述するように、書き込み回
数が2〜5の場合には整理動作を行わないようし、書き
込み回数が1の時のみ整理動作を行うことにより、頻繁
な整理動作を避けるためであり、上記のように書き込み
回数を設定することにより、5回に1回整理動作を行う
こととなる。ステップS7において、書き込むデータの
論理アドレスがオーバーしているか否かを判別し、オー
バーしている場合には、エラー処理を行う。論理アドレ
スがオーバーしていない場合には、ステップS8に行
き、旧データかあるか否か、すなわち、現在書き込むデ
ータが新規なデータであるか否か判別し、新規なデータ
でない場合には、ステップS9において、SRAM23
の「書き換えの有無」を1にしてステップS11に行
く。また、新規なデータの場合には、ステップS10に
おいて、SRAM23の「書き換えの有無」を0にして
ステップS11に行く。
【0015】ついで、ステップS11において、本体か
らデータをSRAMに転送し、ステップS12において
転送エラーがあるか否かを判別する。転送エラーがある
場合にはエラー処理を行う。転送エラーがない場合に
は、図10のステップS13に行き、書き換えの有無、
すなわち、新規データであるかどうか判別し、新規デー
タでない場合には、データの更新であるので、ステップ
S14において旧データのあるセクタに消去ビットを書
き込み、ステップS15に行く。ステップS15におい
て、SRAM23の整理時の書き込み回数を管理する
「書き込み回数」が1であるか否かを判別し、「書き込
み回数」が1の場合には、ステップS16以降でフラッ
シュ・メモリの整理を行う。また、「書き込み回数」が
1でない場合には、図13のステップS46に行き、ス
テップS46以降で、SRAM23のデータをフラッシ
ュ・メモリへ書き込む。
【0016】ステップS16において、SRAM23上
の整理時における退避動作のセクタ数を管理する「退避
カウンタ」を0にして、ステップS17において、現在
整理をしているセクタアドレスNo. を示す「整理ポイン
タ」(セクタアドレス)が126セクタより多いか否か
を判別し、126より小さくない場合には、整理が終了
したものとして、図12のステップS38に行く。ま
た、「整理ポインタ」(セクタアドレス)が126セク
タより少ない場合には、ステップS18に行き、整理ポ
インタが0であるか否かを判別し、整理ポインタが0で
ない場合にはステップS22に行く。整理ポインタが0
の場合には、ステップS19において、各ブロックの消
去回数や消去可能セクタ数をSRAM23のテーブルか
ら求め、それをもとにして、整理対象を選択する。つい
で、ステップS20において、フラッシュ・メモリ上の
WORK−BLOCKの退避ブロックNo. (図8参照)
に整理対象のチップNo. ,ブロックNo. を書き込む。
【0017】ステップS21において、書き込みエラー
があるか否か判別し、書き込みエラーがある場合には、
エラー処理を行い、書き込みエラーがない場合には、ス
テップS22に行く。ステップS22において、退避す
るデータを検索する。すなわち、フラッシュ・メモリの
データに消去フラグ(図7参照)が書き込まれている場
合には、次のセクタに行く。また、論理アドレスが無い
場合には消去フラグを書き込み、次のセクタに行き、論
理アドレスが異常のものは消去フラグと不良フラグを書
き込み、次のセクタに行く。次いで、図11のステップ
S23に行き、書き込みエラーがあるか否かを判別し、
書き込みエラーがない場合には、ステップS24におい
て、整理ポインタ(セクタアドレス)が126番目のセ
クタを指しているか否かを判別し、整理ポインタが12
6である場合には、整理が終わったものとして、図12
のステップS38に行く。
【0018】整理ポインタが126でない場合には、ス
テップS25に行き、退避するデータをフラッシュ・メ
モリからSRAM23に移動し、ステップS26におい
て、生成したチェックサムがフラッシュ・メモリ上のチ
ェックサム(図7参照)と一致するか否かを判別する。
一致しない場合には、ステップS27において、チェッ
クサムがFFhであるか否かを判別する。そして、チェ
ックサムがFFhでない場合には、ステップS28にい
き、フラッシュ・メモリ上のチェックサムをFFhと
し、データ退避元のセクタの不良フラグを書き込み、ス
テップS29に行く。ステップS29において、書き込
みエラーが有るか否か判別し、ステップS30に行く。
また、ステップS26において、チェックサムが一致す
るか、S27において、チェックサムがFFhの場合に
は、ステップS30に行き、書き込みポインタが示すセ
クタから書き込めるセクタを探し、ステップS31にお
いて、書き込み可能セクタがあるか否かを判別する。書
き込み可能セクタがない場合には、エラー処理を行い、
書き込み可能セクタがある場合には、ステップS32に
行き、SRAM23上のデータをフラッシュ・メモリに
移動する。ステップS33において、書き込みエラーが
有るか否かを判別し、書き込みエラーがある場合には、
ステップS30に戻る。書き込みエラーがない場合に
は、図12のステップS34に行き、データ退避元のセ
クタの消去フラグを書き込む。
【0019】そして、ステップS35において、書き込
みエラーがあるか否かを判別し、書き込みエラーがない
場合には、ステップS36において、SRAM23上の
セクタマップテーブルを書き換えるとともに、退避カウ
ンタに1を加える。ついで、ステップS38において、
退避動作が予め定められた所定回数(この場合には60
回)行われたか否かを判別し、退避動作が60回になっ
た場合には、ひとまずフラッシュメモリの整理を終えて
ステップS38に行く。また、退避動作が60回になっ
ていない場合には、図10のステップS22に戻り上記
処理を繰り返す。退避カウンタが60になっているか、
前記した図10のステップS17において、整理ポイン
タが126より小さくないと判別された場合には、ステ
ップS38に行き、退避カウンタが0であるか否か判別
する。そして、退避カウンタが0である場合、つまり、
整理ポインタが126より小さくない場合であって、か
つ、退避動作が行われていない場合には、ステップS3
9に行き、ステップS39以降で、不良フラグの情報を
不良セクタメモリに書き込む等の処理を行う。
【0020】すなわち、退避カウンタが0である場合に
は、処理時間が短かかったので、S39以降の不良フラ
グの情報を不良セクタメモリに書き込む等の処理を行
い、また、退避カウンタが0でない場合には、図13の
ステップS46に行き、SRAM23上のデータをフラ
ッシュ・メモリに移動する等の処理を行う。ステップS
39において、退避したブロックの不良フラグの情報を
書き込み先(書き込み先はWORK−BLOCK)の不
良セクタ・メモリ(図8参照)に書き込み、また、消去
回数を整理元消去回数欄(図8参照)に書き込む。ステ
ップS40において、書き込みエラーがあるか否かを判
別し、書き込みエラーがない場合には、ステップS41
に行き、整理したブロックを消去する。ステップS42
において、消去エラーがあるか否か判別し、消去エラー
がない場合には、図13のステップS43に行き、消去
したブロックに不良セクタメモリから不良フラグ情報を
戻し、整理元消去回数に1を加えて、消去回数に書き込
む。
【0021】ついで、ステップS44において、消去し
たブロックに対応するテーブルの消去回数に1を加え、
消去可能セクタ数を0にする。ステップS45におい
て、整理ポインタをWORK−BLOCKに入れ、整理
ポインタを0とする。次にステップS46に行き、書き
込みポインタの示すセクタから書き込めるセクタを探
し、ステップS47において書き込み可能セクタが有る
か否かを判別する。書き込み可能セクタがある場合に
は、ステップS48に行き、SRAM23上のデータを
フラッシュ・メモリに移動し、ステップS49におい
て、書き込みエラーがあるか否かを判別する。書き込み
エラーが有る場合には、ステップS46に戻り、書き込
みエラーがない場合には、ステップS50に行く。ステ
ップS50において、書き換え有無が1であるか否か、
すなわち、書き込みするデータが新規であるか否か判別
し、書き換えの有無が1の場合には、ステップS51で
消去フラグを書き込んだセクタに対応する消去可能セク
タ数テーブル(図6参照)の値に1を加え、ステップS
52に行く。ステップS50において、書き換え有無が
0である場合には、ステップ52において、セクタマッ
プテーブル(図6参照)を書き換え、ステップS53に
おいて、次の書き込みに備えて、書き込みポインタの示
すセクタから書き込めるセクタを探しておき終了する。
【0022】B.書き込み/消去処理。前記したよう
に、フラッシュ・メモリは、消去回数に制限があり、全
てのメモリを有効に活用するためには、消去回数を平均
化する必要がある。また、フラッシュ・メモリは上書き
をすることができず、データを書き換える場合には、新
たなセクタにデータを書き込んで、旧データに消去可能
フラグを立ておくなどの措置を講じ、適宜の時点で消去
可能フラグが立っているセクタを消去する必要がある。
このため、消去可能なデータを消去してデータを書き込
むための空き領域を確保する必要があるとともに、上記
空き領域が、不良ブロックが発生するなどの原因により
使えなくなったとき、救済措置を講じて新たな空き領域
を作成する必要がある。
【0023】以下に、上記した消去回数の平均化(実施
例1)、消去可能なデータを消去して空き領域を確保す
る空き領域の作成(実施例2)、不良ブロック発生時の
空き領域作成のための救済措置(実施例3)等の領域処
理についての本発明の実施例を示す。 (1)実施例1(消去回数の平均化) 前記したように、フラッシュ・メモリは、消去回数に制
限があり、全てのメモリを有効に活用するためには、消
去回数を平均化する必要がある。本実施例は、各ブロッ
クの消去回数を意識することなく、消去回数のバラツキ
を抑えることが可能な実施例を示しており、本実施例に
おいては、セクタ単位で追記書き込み、ブロック単位で
消去するメモリにおいて、ブロックをセクタ単位で区切
り、以下に示すように、消化可能なセクタが多いブロッ
クと、消去可能なセクタが少ないブロックとを混ぜ合わ
せて新しいブロックに書き込むことにより、消去回数を
平均化している。
【0024】次に本実施例について説明する。図14な
いし図18は本実施例における書き込み処理を示す図で
あり、本実施例においては、6セクタを持つ6ブロック
のフラッシュ・メモリにAからOの論理セクタを書き込
む例を示している。また、以下の説明においては、ブロ
ック内の空きセクタの数がN個(本実施例では2個)に
なった場合にM個のブロック(本実施例では2個)に退
避動作を行うこととし、また、消去可能セクタ数が多い
方からmブロック(本実施例では1ブロック)と消去可
能セクタの少ない方からnブロック(本実施例では1ブ
ロック)を選択して、同時に退避する。なお、退避動作
を行う場合には、前記したように、消去可能フラグが立
っていないセクタを読み出して、図5に示すSRAM2
3に移動し、ついで、SRAM23に移動したセクタを
新たなブロックに書き込む。
【0025】図14の(a)において、同一のセクタが
ないので、ブロック1とブロック2にセクタA,B,
C,D,E,F,G,H,Iを、最初のセクタから順番
に書き込む。(b)において、セクタC,Dを書き込
む。この場合には、同一のセクタC,Dがあるので、既
にC,Dが書き込まれているセクタに消去可能フラグを
立て、新しいセクタC,Dを書き込む。ついで、図15
の(c)において、セクタJ,K,L,M,N,Oを書
き込む。この場合にも、(a)の場合と同様、同一のセ
クタがないので、既に書き込まれたセクタの後に順番に
書き込む。(d)において、セクタH,I,J,K,
M,Nを書き込む。同一セクタが書き込まれているの
で、消去可能フラグを立て、新しいセクタH,I,J,
K,M,Nを書き込む。
【0026】図16(e−1),(e−2)において、
セクタC,Dを書き込む。その際、空きブロックの数が
2個になっているので、退避動作を行う。すなわち、図
15の(d)において、消去可能なセクタが最も多いブ
ロック3と、消去可能セクタが最も少ないブロック4を
選択し、ブロック3のセクタとブロック4のセクタを混
在させ、退避先の各ブロックのセクタ数が均一になるよ
うに、空きブロック5と6に書き込む。その結果、図1
6(e−1)に示すように、セクタO,I,K,Mがブ
ロック5に、また、セクタH,J,L,Nがブロック6
に書き込まれ、ブロック3と4が空きブロックとなる。
この状態で、既にC,Dが書き込まれたブロック2に消
去可能フラグを立て、セクタC,Dを図16(e−2)
に示すようにブロック5に書き込む。
【0027】図17(f−1)において、セクタH,
I,Jを書き込む。この場合にも、同一のセクタが既に
あるので、ブロック5とブロック6に消去可能フラグを
立て、ブロック6にセクタH,Iを書き込むが、セクタ
Jを書き込む時点で空きブロックが2個になったので、
前記と同様退避動作を行う。すなわち、(f−2)に示
すように、消去可能なセクタが最も多いブロック2と、
消去可能セクタが最も少ないブロック6を選択し、ブロ
ック2のセクタとブロック6のセクタを混在させ、退避
先の各ブロックのセクタ数が均一になるように、空きな
ブロック3と4に書き込む。ついで、(f−3)に示す
ように、セクタJを書き込む。この場合にも同一セクタ
があるので、既に書き込まれているブロック4のセクタ
に消去可能フラグを立て、ブロック3にセクタJを書き
込む。図18(g)において、セクタE,F,Gを書き
込む。この場合にも同一セクタがあるので、既に書き込
まれているブロック1,3のセクタに消去可能フラグを
立て、ブロック3と4にセクタE,F,Gを書き込む。
【0028】図19は本実施例の処理を示すフローチャ
ートであり、同図により本実施例の処理について説明す
る。ステップS1において、本体よりデータを受け取る
と、ステップS2のおいて、空きセクタ有りのブロック
数がN以下であるか否か判別する。空きセクタ有りのブ
ロック数がN以下でない場合には、ステップS7に行
く。空きセクタ有りのブロック数がN以下の場合には、
ステップS3において、消去可能セクタ数が多いブロッ
クからmブロックを退避対象とし、ステップS4におい
て、消去可能セクタ数が少ないブロックからnブロック
を退避対象とする。ステップS5において、退避対象の
ブロックからデータを空きブロックに移動する。その際
の書き込み方は、データを移動する毎に書き込みブロッ
クを変え、M個のブロックに書き込んだら最初に書き込
んだブロックに戻る。ついで、ステップS6において、
退避対象のブロックを消去する。ステップS7におい
て、同一論理セクタがあれば、既に書き込まれている物
理セクタに消去可能フラグを立て、ステップS8におい
て、本体から受け取ったデータをフラッシュ・メモリに
書き込む。
【0029】ところで、一般にセクタには、システム・
プログラムのように殆ど書き換えが行われないデータを
格納したセクタと、常時書き換えが行われるデータを格
納したセクタがあり、普通にデータの書き込み/退避を
おこなっていると、殆ど書き換えが行われないセクタが
多いブロックは消去回数が少なくなる。したがって、上
記のように、消去可能なセクタが多いブロック(常時書
き換えが行われるセクタが多いブロック)と、消去可能
なセクタが少ないブロック(殆ど書き換えが行われない
セクタが多いブロック)とを混ぜ合わせて新しいブロッ
クに書き込むことにより、結果的に各ブロックに書き換
えが多いセクタと書き換えが少ないセクタが混在するこ
ととなり、ブロックの消去回数を平均化することができ
る。
【0030】本実施例においては、上記のような原理に
基づき書き込み処理をおこなっているので、各ブロック
の消去回数を意識することなく、消去回数のバラツキを
抑えることができ、フラッシュ・メモリのように消去回
数が有限なメモリの寿命を延ばすことが可能となる。ま
た、消去回数をカウントすることなく消去回数のバラツ
キを抑えることができるので、消去回数をカウントする
ための領域を設けることなく、メモリの管理を行うこと
も可能となる。
【0031】(2)実施例2(消去可能データの消去に
よる空き領域の作成) 前記したように、フラッシュ・メモリは上書きをするこ
とができず、消去した後でなければ書き込みを行うこと
ができない。このため、書き込み時、同一のセクタがあ
る場合には消去可能フラグを立て、適宜の時点で消去可
能フラグが立っているセクタを消去する必要がある。本
実施例は、上記のように、消去フラグがたっている消去
可能なデータを記憶媒体上からなくすための領域処理を
示しており、本実施例による領域処理を処理の空き時間
などに予め行っておくことにより、書き込みできる領域
を確保でき、書き込み時間を短縮することができる。
【0032】図20から図23は本実施例における書き
込み/消去処理を示す図であり、同図により本実施例を
説明する。なお、本実施例においては、次の点を前提と
している。 ブロック数が6個で、1ブロックあたり、6個のセ
クタがあり、リード/ライトはセクタ単位で行い、消去
はブロック単位で行う。 書き込み方式は追記書き込み方式であり、同じアド
レスの論理セクタを書き込むときは、旧論理セクタに格
納されている物理セクタに消去可能フラグを立てる。 追記のために書き込み領域を5ブロック+退避領域
1ブロック(ブロック1〜ブロック6)とする。 書き込み領域がなくなった場合には、消去可能フラ
グが立っている物理セクタが一番多いブロックの消去不
可の物理セクタのデータを退避領域に移動して、移動元
のブロックを消去する。そして、そのブロックを退避領
域として使用し、今までの退避領域を書き込み領域とす
る(この一連の動作を退避動作と呼ぶ)。 本体から送られて来るセクタのアドレスはAからP
とする。 ブロック中に消去可能なデータがm以上あるとき、
本実施例における領域処理の対象とする(図20から図
23の例においては、m=1としている)。なお、図2
0から図23中のブロックの右に付された矢印は書き込
み場所を示す書き込みポインタの位置である。
【0033】図20(a)において、論理セクタA〜G
を書き込む。この場合には、同一アドレスの論理セクタ
がないので、書き込みポインタが指す位置から順番に書
き込む。(b)において、論理セクタA,D〜Gを書き
込む。この場合には、同アドレスの論理セクタ(A,
D,E,F,G)があるので、消去可能フラグを立てた
後に、(a)と同様に書き込む。(c)において、論理
セクタH〜Nを書き込む。この場合には、同一アドレス
の論理セクタがないので、そのまま書き込む。図21
(d)において、A,G〜Lを書き込む。この場合に
は、同アドレスの論理セクタ(A,G,H,I,J,
K,L)があるので、消去可能フラグを立てた後に書き
込む。(e)において、A,H〜Jを書き込む。この場
合にも、同アドレスの論理セクタ(A,H,I,J,)
があるので、消去可能フラグを立てた後に書き込む。
(f−1)において、A,I〜Lの書き込みを行おうと
するが書き込み領域がないので、退避動作をを行う。す
なわち、消去可能フラグが立っている物理セクタが一番
多いブロック(ブロック3)のデータを退避領域(ブロ
ック6)に移動して、移動元のブロックを消去する。そ
して、そのブロック(ブロック3)を退避領域として使
用し、今までの退避領域(ブロック6)を書き込み領域
とする。その結果、(f−1)のようになる。
【0034】ついで、図22(f−2)に示すように、
A,I〜Lを書き込む。この場合には、同アドレスの論
理セクタがあるので、消去可能フラグを立てた後にA,
I〜Lを書き込む。この時、書き込みポインタは退避領
域(ブロック6)の先頭にある。以上のよう書き込むこ
とにより、消去可能なデータを増えたので、本実施例に
よる領域処理を行う。すなわち、退避領域(ブロック
3)から見て、書き込み方向に対して一つ反対方向のブ
ロック(ブロック2)を処理対象として、ブロック2と
3で退避動作を行う。その結果、図22(g−1)に示
すように、ブロック2が退避領域となり、ブロック3に
ブロック2の消去不可のデータが移される。
【0035】次に上記と同様に、ブロック1とブロック
2で退避動作を行う。その結果(g−2)に示すよう
に、ブロック1が退避領域となり、ブロック2にブロッ
ク1の消去不可のデータが移される。ついで、上記と同
様にブロック5と1で退避動作を行う。その結果、図2
3(g−3)に示すように、ブロック5が退避領域とな
り、ブロック1にブロック5の消去不可のデータが移さ
れる。なお、ブロック6には消去可能のデータがないの
で、領域処理の対象としない。同様にブロック4と5で
退避動作を行う。その結果、(g−4)に示すように、
ブロック4が退避領域となり、ブロック5にブロック4
の消去不可のデータが移される。そして、退避領域の位
置が処理を行う前の退避領域の位置まできたので、領域
処理を終わる。以上のような処理を行うことにより、消
去可能データは記憶媒体上からなくなる。
【0036】次に(h)に示すように、A,H〜Jを書
き込む。この場合にも、同アドレスの論理セクタがある
ので、消去可能フラグを立てたのち書き込む。図24は
本実施例の処理を示すフローチャートであり、同図によ
り本実施例の処理を説明する。ステップS1において、
現在の退避領域のブロックNo. を記憶し、ステップS2
において、退避領域を処理対象とする。ステップS3に
おいて、処理対象を書き込み方向とは反対方向に一つ進
める。ステップS4において、処理対象とステップS1
において保存した保存ブロックNo. を比較し、同じであ
れば処理を終了する。処理対象と保存ブロックNo. が異
なる場合には、ステップS5に行き、処理対象の消去可
能セクタ数を所定値mと比較し、消去可能セクタ数がm
以下の場合には、ステップS3に戻り、上記処理を繰り
返す。消去可能セクタ数がmより大きい場合には、ステ
ップS6に行き、処理対象を退避対象として、ステップ
S7において、書き込みポインタを退避領域の先頭に移
動する。ステップS8において、退避対象のブロックか
らデータを移動する。ステップS9において、退避対象
のブロックを消去し、ステップS10において、退避対
象のブロックを退避領域とし、ステップS3に戻り上記
処理を繰り返す。
【0037】本実施例においては、上記のようにして領
域処理を行っているので消去可能データを無くすことが
でき、本実施例の領域処理を予めおこなっておくことに
より、書き込み時間の短縮を図ることができる。また、
領域処理の対象となるブロックを書き込み方向とは反対
方向に進めているので、書き込み場所を示している書き
込みポインタと退避領域の間に全ての空き領域を存在さ
せることができる。その結果、どのような場合に処理の
中断がおこっても、書き込みポインタの示す位置からデ
ータを書き込んで行くことができ、処理中断後に必要と
する処理を少なくすることができ、また、処理を全てお
えていなくても、支障がない。
【0038】(3)実施例3(空き領域の作成のための
救済措置) 前記したように、フラッシュ・メモリはデータ書込みの
ため、メモリ中に空き領域を確保しておく必要がある
が、本実施例は、上記空き領域が、不良ブロックが発生
するなどの原因により使えなくなったとき、救済措置を
講じて新たな空き領域を作成する実施例を示している。
図25から図31は本実施例の空き領域の作成処理を示
す図であり、同図により本実施例を説明す。なお、本実
施例においては、次の点を前提としている。 ブロック数が7個で、1ブロックあたり、6個のセ
クタがあり、リード/ライトはセクタ単位で行い、消去
はブロック単位で行う。 書き込み方式は追記書き込み方式であり、同じアド
レスの論理セクタを書き込むときは、旧論理セクタに格
納されている物理セクタに消去可能フラグを立てる。 障害時の救済用に1ブロックの予備領域(ブロック
0)を確保し、追記のために書き込み領域を5ブロック
+退避領域1ブロック(ブロック1〜ブロック6)とす
る。 書き込み領域がなくなった場合には、消去可能フラ
グが立っている物理セクタが一番多いブロックの消去不
可の物理セクタのデータを退避領域に移動して、移動元
のブロックを消去する。そして、そのブロックを退避領
域として使用し、今までの退避領域を書き込み領域とす
る(この一連の動作を退避動作と呼ぶ)。 本体から送られて来るセクタのアドレスはAからP
とする。
【0039】図25(a)において、セクタA〜Gを書
き込む。この場合には、同じ論理セクタがないので、そ
のまま、ブロック1から書き込む。(b)において、セ
クタA,D〜Gを書き込む。この場合には、セクタA,
D〜Gと同一論理セクタがあるので、同一の論理セクタ
に消去可能フラグを立てたのち書き込む。(c)におい
て、セクタH〜Nを書き込む。この場合には、同じ論理
セクタがないので、そのまま書き込む。図26(d)に
おいて、セクタA,G〜Lを書き込む。この場合、セク
タA,G〜Lと同一論理セクタがあるので、同一の論理
セクタに消去可能フラグを立てたのち書き込む。(e)
において、セクタA,H〜Jを書き込む。この場合、セ
クタA,H〜Jと同一論理セクタがあるので、同一の論
理セクタに消去可能フラグを立てたのち書き込む。
【0040】図27(f−1)において、セクタA,I
〜Lを書き込むが、この場合には、書き込み領域がない
ので、退避動作を行った後書き込み処理を行う。すなわ
ち、消去可能フラグが立っているデータが最も多いブロ
ック(ブロック3)の消去可能でないデータを退避領域
(ブロック6)に移動して、移動元のブロックを消去す
る。そして、そのブロック(ブロック3)を退避領域と
して使用し、今までの退避領域を書き込み領域とする。
ついで、(f−2)において、セクタA,I〜Lを書き
込み領域となったブロック6に書き込む。次に、(g)
において、A,M,Nを書き込みを行うが、上記(f)
と同様書き込み領域がないので、まず、退避動作を行
う。すなわち、消去可能フラグが立っているデータが最
も多いブロック(ブロック5)の消去可能でないデータ
を退避領域(ブロック3)に移動して、移動元のブロッ
クを消去する。そして、そのブロック(ブロック5)を
退避領域として使用し、今までの退避領域を書き込み領
域とする。
【0041】ここで、ブロック5が消去失敗により使用
不可となったとすると、退避領域がなくなるので救済措
置を行う。そこで、図28(h)に示すように、予備ブ
ロック0を仮の退避領域として退避動作を行う。すなわ
ち、図27(g)において、消去可能でないデータが最
も多いブロック(ブロック1)の消去可能でないデータ
を仮の退避領域(ブロック0)に移動して、移動元のブ
ロックを消去する。そして、そのブロック(ブロック
1)を退避領域として使用する。ついで、(i)に示す
ように、予備ブロック(ブロック0)の退避動作を行
う。すなわち、仮の退避領域として用いた予備領域(ブ
ロック0)の論理セクタB,Cをブロック3に移動す
る。これで、予備領域と退避領域が作成されたので、
(j)において、論理セクタA,M,Nをブロック3に
書き込む。次に、セクタA,G,H,O,Pを書き込も
うとするが、書き込み領域がないので、図29(k−
1)に示すように退避動作を行う。すなわち、消去可能
なデータが最も多いブロック(ブロック4)の消去可能
でないデータを退避領域(ブロック1)に移動して、移
動元のブロックを消去する。そして、そのブロック(ブ
ロック4)を退避領域として使用する。
【0042】ついで、(k−2)に示すように、セクタ
A,G,H,O,Pを書き込むが、セクタA,G,Hに
ついては同じアドレスの論理セクタがあるので、消去フ
ラグを立てたのちブロック1に書き込み、セクタO,P
については、そのまま、書き込む。次に、(l)におい
て、セクタAを書き込もうとするが、書き込み領域がな
いので、退避動作を行う。その結果、ブロック2が退避
領域となり、ブロック2にあったセクタD,E,Fがブ
ロック4に移動する。ここで、ブロック2が消失失敗で
使用不可になったとすると、退避領域がなくなるので、
救済措置を行う。すなわち、消去可能なデータが最も多
いブロック(ブロック3)のデータを仮の退避領域(ブ
ロック0)に移動して、移動元のブロックを消去する。
そして、そのブロック(ブロック3)を退避領域として
使用する。その結果、図30(m)に示すようになる。
【0043】なお、この状態で、電力不足などにより、
処理に一旦ストップをかけたすると、処理を再開したと
き、装置側は予備領域に消去可能なセクタがなく、デー
タがあるので、空き領域作成中と判断できる。続いて、
空き領域作成のための救済措置を行い、ブロック6のセ
クタI,Jを予備領域(ブロック0)に移動し、ブロッ
ク6のセクタK,Lをブロック3に移動する。その結果
図30(n)に示すようになる。ここで、退避領域のセ
クタを除いた空きセクタ数が、予備領域(ブロック0)
にあるデータの数以上なので、書き込みポイントを退避
領域の後ろから検索し、空いている領域に、予備領域
(ブロック0)からデータを移動する。その際、図31
(o)に示すように、予備領域(ブロック0)のセクタ
B,C,M,Nを移動した段階で、本体側が電力不足等
により一旦処理にストップをかけたとする。この場合に
は、処理を再開した時に、装置側は予備領域に消去可能
なセクタがあるので、空きブロック作成中の予備領域の
データ移動中と判断できる。続いて、図31(p)に示
すように、予備領域(ブロック0)の論理セクタI,J
をブロック4に移動して処理を終了する。
【0044】図32は本実施例における空き領域作成処
理を示すフローチャートであり、同図により、本実施例
の処理を説明する。ステップS1において、予備領域に
消去可能セクタが有るか否かを判別し、ある場合には、
ステップS11に行く。ない場合には、ステップS2に
行き、書き込みポインタを予備領域の先頭とし、ステッ
プS3において予備領域にデータがあるか否かを判別す
る。予備領域にデータがある場合には、ステップS10
に行き、ない場合にはステップS4に行き、退避領域を
予備領域とする。ステップS5において、書き込み領域
の各ブロックに消去可能セクタがない場合には、空き領
域を作成できないので処理を放棄(Abort )する。消去
可能セクタがある場合には、ステップS6に行き、消去
可能セクタの一番多いブロックを退避対象とし、ステッ
プS7において、退避対象のブロックからデータを予備
領域に移動する。ステップS8において退避対象となる
ブロックを消去し、ステップS9において、退避対象の
ブロックを退避領域にする。ステップS10において、
予備領域のデータ数が退避領域以外の空きセクタ数
より多いか否か判別し、>の場合には、ステップS
5に戻り、上記処理を繰り返す。また、≦の場合に
は、ステップS11に行き、書き込みポインタを退避領
域の次から書き込み方向に対して検索し、ステップS1
2において、空きセクタに予備領域からデータを移動す
る。ステップS13において、予備領域を消去して終了
する。
【0045】本実施例においては、上記のように空き領
域を作成しているので、記憶媒体中に使用不可のブロッ
クが発生しても、救済措置により空き領域を作成するこ
とができ、記憶装置して使用不可能となることを避ける
ことができる。また、処理途中で、本体側の電力不足な
どにより処理が中断しても、どの段階で処理が中断した
かを容易に判断することができ、処理中断における処理
段階の判断を単純化することが可能となる。
【0046】C.消去処理の効率化 次に、本発明の請求項1,2の発明の実施例について説
明する。フラッシュ・メモリは前記したように上書きを
することができず、消去した後でなければ書き込みを行
うことができない。本実施例は、上記のようなフラッシ
ュ・メモリにおいて、書き込み有無を示すフラグと、全
空間消去処理を実行中であることを示す実行中フラグを
設けることにより、全記憶空間を消去する際の消去処理
を効率良く行うとともに、消去中に何らかの原因で処理
が中断された場合においても、処理再開をすることがで
きるようにしたものである。次に図33、図34により
本実施例の処理を説明する。なお、本実施例においは、
ブロック数は6個とし、各ブロックに書き込みフラグを
書き込む領域を設け、ブロック6に全空間消去処理を実
行中であることを示す実行中フラグを書き込む領域を設
けている。
【0047】図33(a)において、ブロック1,2,
4の書き込み前に、ブロック1,2,4に書き込み有無
フラグを書き込む。ついで、全空間をクリアする初期化
処理に当たり、(b−1)に示すように、ブロック6に
実行中フラグを書き込む。(b−2)において、書き込
み有無フラグが書き込まれたブロック1を消去し、書き
込む有無フラグを消す。図33(b−3)において、書
き込み有無フラグが書き込まれたブロック2を消去し、
書き込む有無フラグを消す。ここで、ブロック2の消去
後、何らかの原因により、ストップ・シーケンスに移
り、その後立ち上がった場合でも、ブロック6に実行中
フラグが書き込まれているので、直ちに初期化動作中と
判断し、初期化動作に移ることができる。(b−4)に
おいて、ブロック1〜3には書き込み有無フラグに書き
込まれていないため、ブロック4を消去し、書き込む有
無フラグを消す。(b−5)において、ブロック1〜5
には書き込み有無フラグに書き込まれていないため、ブ
ロック6を消去し、実行中フラグを消す。
【0048】図35は本実施例の処理を示すフローチャ
ートであり、同図により本実施例を説明する。ステップ
S1において、実行中フラグの書き込みがあるか否かを
判別し、有る場合には、ステップS3に行き、ない場合
にはステップS2において、最終処理ブロックに実行中
フラグを書き込む。ステップS3において、処理対象を
クリアし、ステップS4において、処理対象に書き込み
有無フラグがあるか否かを判別する。書き込み有無フラ
グがない場合には、ステップS6に行き、有る場合に
は、ステップS5において、処理対象を消去し、ステッ
プS6において、処理対象を次に進める。ステップS7
において、実行中フラグの書き込みかあるか否か判別
し、ある場合には、ステップS4に戻り上記処理を繰り
返す。また、実行中フラグがない場合には、終了する。
本実施例においては、上記のように書き込み有無フラグ
を設けているので、不要な消去を避けることができ、消
去時間を短縮することができるとともに、媒体の寿命を
延ばすことができる。また、初期化実行中であることを
示す実行中フラグを設けているので、不意の中断に対応
することができる。
【0049】D.書き込み速度の向上、および、不良セ
クタ発生時の予備領域の割り当て 前記したように、フラッシュ・メモリは上書きをするこ
とができず、消去した後でなければセクタの書き込みを
行うことができない。このため、前記したように、書き
込み時、同一のセクタがある場合には消去可能フラグを
立て、適宜の時点で消去可能フラグが立っているセクタ
を消去する必要があり、書込みの時間が掛かる。また、
前記したように、フラッシュ・メモリは、消去回数に制
限があり、所定回数以上消去を行うと消去が出来なくな
る。このため、不良セクタが発生した場合には、予備の
領域を割り当て救済措置を講ずる必要があり、以下に示
す実施例は、上書きができず、セクタ単位で消去可能な
メモリにおいて、上記した書き込み時のタイムラグをな
くし、書き込み速度を向上するとともに、不良セクタが
発生した場合に予備領域を割り当てる実施例を示してい
る。
【0050】図36は本実施例のシステム構成を示す図
であり、図5に示したシステムに、EEPROM26が
付加されており、その他の構成は図5に示したものと同
一である。EEPROM26にはアドレス変換を行うデ
コード・テーブルが格納されており、上記EEPROM
26によりアドレスのデコードが行われる。そして、フ
ラッシュ・メモリの一部が不良になったとき、EEPR
OM26を書き換えて、救済措置を行う。なお、図36
には、EEPROM26が例示されているが、デコード
・テーブルを格納した記憶媒体としては、書き換えが可
能な記憶媒体であればよく、その他フラッシュ・メモリ
等を用いることができる。
【0051】(1)実施例1 図37、図38は本実施例の構成を示す図であり、図3
7において、261はEEPROM26(もしくはフラ
ッシュ・メモリ等の書き換え可能なROM)から構成さ
れるセクタ変換部である。25はフラッシュ・メモリで
あり、フラッシュ・メモリは第1の領域A、第2の領域
B、および予備領域Cが設けられ、第1の領域A、第2
の領域Bには、それぞれ、1〜4の4個のセクタが設け
られている。図37において、データをセクタ1に書き
込む場合には、第1の領域Aと第2の領域Bを見て、既
に第1の領域Aにデータが有る場合には、第2の領域B
にデータを書き込む。また、上記データを書き込んでい
る間に、第1の領域Aのセクタ1−Aを消去する。その
際、書き込みエラーが発生した場合には、予備領域Cを
代替セクタとして割り当てる。すなわち、第1の領域A
のセクタ1−Aに書き込みエラーが発生した場合には、
予備領域Cをセクタ1−Aの代替とするため、セクタ変
換部261のROMを書き換え、図38に示すように、
セクタ1−Aとして、予備領域Cを割り当てる。以上の
ように、書き込みエラーが発生した場合、予備がある限
り予備領域のセクタを割り当て、予備がなくなった場合
には、データを全て図36に示したSRAM23等の外
部の領域に退避し、セクタ変換部261のROMを再編
成し、データの空間と予備の空間に分ける。また、その
時、セクタは、システムの構成に応じて、昇順、また
は、降順で初期状態と同様に割り当てていくが、不良セ
クタは除外する。
【0052】本実施例においては、上記のように、書き
込みと同時に消去を行っているので、書き込み時のタイ
ムラグをなくすことができ、書き込み速度を向上させる
ことができる。また、予備領域を設け、不良セクタが発
生した場合に、予備領域に代替しているので、不良セク
タが発生した際の救済を行うことができる。
【0053】(2)実施例2 図39、図40は本実施例の構成を示す図であり、図3
9において、261はEEPROM、もしくは、フラッ
シュ・メモリ等の書き換え可能なROMから構成される
セクタ変換部、25はフラッシュ・メモリであり、フラ
ッシュ・メモリは第1の領域A、予備領域Cが設けら
れ、第1の領域Aには1〜4の4個のセクタが設けられ
ている。また、231は図36に示したSRAM23等
のデータの一次記憶媒体である。図39において、デー
タの書き込み時、一次媒体231にデータを転送してい
る間に、書き込むセクタを調べ、書き込むべきセクタに
データがあった場合には、そのセクタを消去する。な
お、転送が早く終了した場合には、消去終了までまち、
また、転送が遅い場合には、転送終了後、データを書き
込む。また、書き込みエラーが発生した場合には、セク
タ変換部261のROMの書き換えをおこなって、図4
0に示すように(セクタ1−Aにエラーが発生した場合
を示している)、予備領域Cにセクタ1−Aの書き込み
を行う。なお、通常のセクタがエラーにならない限り、
予備領域Cへの書き込みは行わない。
【0054】本実施例においては、上記のように、デー
タを一次記憶媒体231に転送している間に、書き込む
べきセクタにデータがあった場合、消去を行っているの
で、第1の実施例と同様、書き込み時のタイムラグをな
くすことができ、書き込み速度を向上させることができ
る。また、予備領域を設け、不良セクタが発生した場合
に、予備領域に代替しているので、不良セクタが発生し
た際の救済を行うことができる。
【0055】(3)実施例3 図41、図42は本実施例の構成を示す図であり、図4
1において、261はEEPROM、もしくは、フラッ
シュ・メモリ等の書き換え可能なROMから構成される
セクタ変換部、25はフラッシュ・メモリであり、フラ
ッシュ・メモリはブロック1,ブロック2,予備ブロッ
ク1,予備ブロック2が設けられ、各ブロックには、ブ
ロック1,ブロック2には、セクタ1〜3A,1〜3
B,…,1〜3D、4〜6A,4〜6B,…,4〜6D
が設けられている。そして、セクタ1〜3A,1〜3
B,…,1〜3Dは物理アドレスとしてはそれぞれ1セ
クタであり、ここに論理アドレス1,2または3のデー
タを書き込むことができる。すなわち、論理アドレス
1,2または3のデータを書き込む領域がA〜Dの4セ
クタ分設けられており、データを書き込む場合には、A
〜Dの内の空いている領域に書き込む。同様に、セクタ
4〜6A,4〜6B,…,4〜6Dも上記と同様であ
り、論理アドレス4,5または6のデータを書き込む場
合には、A〜Dの内の空いている領域に書き込む。以上
のように、本実施例においては、n+1(この実施例に
おいてはn=3)セクタ単位でブロック化されており、
書き込む論理アドレスに対して、1セクタの空きが設け
られている。
【0056】図41において、データをセクタ1に書き
込む際、セクタ1〜3A,1〜3B,…,1〜3Dを見
て、これらの中にセクタ1が既に存在する場合には、そ
のセクタを消去する。また、セクタには必ず空いている
セクタが存在するので、上記した消去と同時に、空いて
いるセクタに書き込みを行う。書き込み時、書き込みエ
ラーが発生した場合には、代替ブロックとして予備ブロ
ックを割り当てる。例えば、セクタ1〜3Aが不良とな
った場合には、図42に示すように、予備ブロック1を
代替ブロックとして割り当てる。そして、セクタ変換部
261のROMを書き換えて、エラーのあったブロック
1を予備ブロック1に割り当てる代替処理を行う。これ
により予備ブロック1がブロック1となる。予備がある
限り上記のような処理を行い、予備がなくなった場合に
は、データを全て図36に示したSRAM23等の外部
の領域に退避し、セクタ変換部261のROMを再編成
し、データの空間と予備の空間に分ける。また、その
時、セクタは、システムの構成に応じて、昇順、また
は、降順で初期状態と同様に割り当てていくが、不良セ
クタは除外する。セクタ変換部261は、論理セクタか
ら物理セクタへの変換時、上記したように、n+1セク
タ単位でブロック化し、デコードするセクタ1に対し
て、書き込み可能なn+1のセクタが存在するように構
成する。そして、一部のセクタが不良となった場合に
は、上記セクタ変換部261のテーブルを書き換えるこ
とにより、書き込みブロックを移動して、常にn+1の
セクタのブロックを作成する。
【0057】本実施例においては、上記のように、n+
1セクタ単位でブロック化し、1セクタを空けておき、
書き込みと同時に消去を行っているので、実施例1,2
と同様、書き込み時のタイムラグをなくすことができ、
書き込み速度を向上させることができる。また、予備領
域を設け、不良セクタが発生した場合に、予備領域に代
替しているので、不良セクタが発生した際の救済を行う
ことができる。
【0058】(4)実施例4 図43、図44は本実施例の構成を示す図であり、図4
3において、261はEEPROM、もしくは、フラッ
シュ・メモリ等の書き換え可能なROMから構成される
セクタ変換部、25はフラッシュ・メモリであり、フラ
ッシュ・メモリはブロック1,ブロック2,予備1A〜
1Dが設けられ、ブロック1,ブロック2には、それぞ
れ、セクタ1〜3A,1〜3B,…,1〜3D,4〜6
A,4〜6B,…,4〜6Dが設けられている。また、
本実施例においては、実施例3と同様、n+1(この実
施例においてはn=3)セクタ単位でブロック化し、1
セクタを空けておく。
【0059】図43において、データをセクタ1に書き
込む際、セクタ1〜3A,1〜3B,…,1〜3Dを見
て、これらの中にセクタ1が既に存在する場合には、そ
のセクタを消去する。また、セクタには必ず空いている
セクタが存在するので、上記した消去と同時に、空いて
いるセクタに書き込みを行う。書き込み時、書き込みエ
ラーが発生した場合には、代替セクタとして予備1A〜
1Dを割り当てる。例えば、セクタ1〜3Aが不良とな
った場合には、図44に示すように、予備1A〜1Dが
ブロック1となり、セクタ1〜3Aに対して予備1Aを
割り当て、セクタ変換部261のROMを書き換えて代
替処理を行う。これにより予備セクタ1Aがセクタ1〜
3Aとなり、予備1B〜1Dはブロック1の予備とな
る。予備がある限り上記のような処理を行い、予備がな
くなった場合には、データを全て図36に示したSRA
M23等の外部の領域に退避し、セクタ変換部261の
ROMを再編成し、データの空間と予備の空間に分け
る。また、その時、セクタは、システムの構成に応じ
て、昇順、または、降順で初期状態と同様に割り当てて
いくが、不良セクタは除外する。セクタ変換部261
は、論理セクタから物理セクタへの変換時、上記したよ
うに、n+1セクタ単位でブロック化し、デコード時に
は、そのデコード・データよりアドレス変換するテーブ
ルを設けセクタ1に対して書き込み可能なn+1のセク
タが存在するように構成する。そして、一部のセクタが
不良となった場合には、上記セクタ変換部261のテー
ブルを書き換えることにより、常にn+1のセクタのブ
ロックを作成する。
【0060】本実施例においては、上記のように、n+
1セクタ単位でブロック化し、1セクタを空けておき、
書き込みと同時に消去を行っているので、実施例1,
2,3と同様、書き込み時のタイムラグをなくすことが
でき、書き込み速度を向上させることができる。また、
予備領域を設け、不良セクタが発生した場合に、予備領
域に代替しているので、不良セクタが発生した際の救済
を行うことができる。
【0061】(5)実施例5 図45、図46は本実施例の構成を示す図であり、図4
5,図46において、図37、図38に示したものと同
一のものには同一の符号が付されており、261はEE
PROM、もしくは、フラッシュ・メモリ等の書き換え
可能なROMから構成されるセクタ変換部、25はフラ
ッシュ・メモリであり、フラッシュ・メモリはブロック
1,ブロック2,予備ブロック1,予備ブロック2が設
けられ、ブロック1,ブロック2、セクタ1〜3A,1
〜3B,…,1〜3D,4〜6A,4〜6B,…,4〜
6Dが設けられている。また、本実施例においては、実
施例3と同様、n+1(この実施例においてはn=3)
セクタ単位でブロック化し、1セクタを空けておく。
【0062】図45において、データをセクタ1に書き
込む際、セクタ1〜3A,1〜3B,…,1〜3Dを見
て、これらの中にセクタ1が既に存在する場合には、そ
のセクタを消去する。また、必ず空いているセクタが存
在するので、上記した消去と同時に、空いているセクタ
に書き込みを行う。書き込み時、書き込みエラーが発生
した場合には、代替セクタとして予備セクタを割り当て
る。例えば、セクタ1〜3Aが不良となった場合には、
予備ブロック1を割り当て、セクタ変換部261のRO
Mを書き換えて、代替処理を行う。これにより、図46
に示すように、予備ブロックのセクタ1,n,mAがセ
クタ1に置き変わり、予備ブロックにセクタ1が存在す
ることとなり、元のブロックにはセクタ2,3がそのま
ま残る。すなわち、この実施例においては、ブロックの
構成は続きセクタでなくてもよく、元のブロックの構成
数を変更する。予備がある限り上記のような処理を行
い、予備がなくなった場合には、データを全て図36に
示したSRAM23等の外部の領域に退避し、セクタ変
換部11のROMを再編成し、データの空間と予備の空
間に分ける。また、その時、セクタは、システムの構成
に応じて、昇順、または、降順で初期状態と同様に割り
当てていくが、不良セクタは除外する。
【0063】本実施例においては、上記のように、n+
1セクタ単位でブロック化し、1セクタを空けておき、
書き込みと同時に消去を行っているので、実施例1,
2,3,4と同様、書き込み時のタイムラグをなくすこ
とができ、書き込み速度を向上させることができる。ま
た、予備領域を設け、不良セクタが発生した場合に、予
備領域に代替しているので、不良セクタが発生した際の
救済を行うことができる。
【0064】図47〜図49は上記実施例における処理
を示すフローチャートであり、図36に示したシステム
における本実施例の処理を説明する。ステップS1にお
いて、本体からセクタデータの書き込み要求があると、
ステップS2において、CPU22はコントローラLS
I21からの通知によりデータの書き込み要求があるこ
とを認識する。なお、コントローラLSI21がCPU
22に割り込みをかけて、データの書き込み要求を通知
してもよい。ステップS3において、CPU22はEE
PROM26のデータを読み込み、その書き込み場所を
認識し、セクタデータが書かれているか否かをチェック
するため、フラッシュ・メモリ25−1,…,25−5
をアクセスし、ECCデータ、あるいは、フラッシュ・
メモリに格納された管理情報等を参照する。そして、ス
テップS5において、フラッシュ・メモリにデータが書
かれているか否かを判断し、データが書かれていない場
合には、図48のステップS8に行く。また、データが
書かれている場合には、ステップS6において、第2の
セクタにデータを書き込むための情報を読み込むため、
CPU22はEEPROM26をアクセスし、データを
得る。ついで、ステップS7において、フラッシュ・メ
モリのデータを消去し(効率を上げるためエラーチェッ
クは後で行う)、図48のステップS8に行く。
【0065】ステップS8において、本体よりデータを
SRAM23にデータを転送し、終了を待つ。ステップ
S9において、フラッシュ・メモリにデータを書き込む
ため、CPU22はコントローラLSI21に対してデ
ータの書き込みを通知し、コントローラLSI21はS
RAM23よりフラッシュ・メモリにデータを書き込
む。ついで、ステップS10において、CPU22はコ
ントローラLSI21よりデータ書き込み終了の通知を
受け、ステップS11において、データの書き込みエラ
ーがあったか否かを判断する。データの書き込みエラー
がなかった場合には終了し、書き込みエラーがあった場
合には、ステップS12において、代替用セクタが有る
か否かを判断し、代替用セクタがある場合には、ステッ
プS13に行き、セクタアドレスを変更するため、EE
PROM26をアクセスしてデータを変更し、ステップ
S9に戻る。また、代替用セクタがない場合には、図4
9のステップS14に行き、消去中のフラッシュ・メモ
リがあるか否かを判断し、消去中のフラッシュ・メモリ
がある場合には、ステップS15に行き、消去終了まで
待って、消去したセクタにデータを書き込み終了する。
ステップS14において、消去中のフラッシュ・メモリ
がないと判断された場合には、ステップS16におい
て、本体側にエラーを通知する。
【0066】本体側では、ステップS17において、デ
ータを吸い上げEEPROM26を再編成するコマンド
を送る。記憶装置側では、本体側からのコマンドに応じ
て、EEPROM26を再編成し、本体から送られる1
論理セクタに対して、2セクタ以上の選択ができるよう
にする。これにより、少し容量は減るが記憶装置として
使用可能となる。なお、上記処理においては、SRAM
23にデータを転送し、フラッシュ・メモリにデータを
書き込む場合について説明したが、SRAM23を設け
ず、直接フラッシュ・メモリにデータを書き込むことも
できる(この場合には、上記フローチャートのステップ
S8,S9は一処理となる)。
【0067】E.アドレス変換用デコード部の信頼性の
向上 論理アドレスを物理アドレスに変換するための変換テー
ブルとしてROMが使用されることがある。また、RO
Mの代わりに、フラッシュEEPROM、EEPROM
等を使用することも可能であるが、通常はデコード部を
可変にする必要がないため、使用されることが少ない。
一方、フラッシュ・メモリは、その媒体の性質上、消去
回数に制限があり、不良になると、不良になったアドレ
スが使用出来なくなる。そこで、前記したD.の実施例
(1)〜(5)に示すように、論理アドレスを物理アド
レスに変換するための変換テーブルとして、フラッシュ
EEPROM、EEPROMなどの書き換え可能なデコ
ード部を用い、不良のセクタが発生した場合、デコード
部を書き換え、不良アドレスがないように見せかける方
法が用いられる。しかしながら、変換テーブルとして、
フラッシュEEPROM、EEPROMなどを用いた場
合、これらのフラッシュEEPROM、EEPROMな
どにも、消去回数に制限があり、所定回数以上消去を行
うと不良が発生する。本実施例は、上記のように、デコ
ード部としてフラッシュEEPROM、EEPROMな
どの書き換え可能な記憶媒体が使用されている場合にお
いて、前記図4に示したようにデコード部を2段化とす
ることにより、デコード部の寿命を延ばし、アドレス変
換用デコード部の信頼性を向上させる実施例を示してい
る。
【0068】図50は本実施例のデコード部の構成を示
す図であり、同図(a)は通常の場合、(b)はセクタ
が不良になった場合、(c)はデコード部が不良になっ
た場合を示しており、301は1次デコード部、302
は2次デコード部、303はフラッシュ・メモリのセク
タを示している。同図において、フラッシュ・メモリの
セクタが正常な場合には、(a)に示すように、1次デ
コード部301がセクタ0のアドレスのデコード値とし
てアドレス「0000h」を出力し、2次デコード部3
02が「0000h」のデコード値として物理アドレス
「5555h」を出力し、フラッシュ・メモリのセクタ
0の物理アドレスを指定している。ここで、フラッシュ
・メモリの消去回数が制限値を越えてセクタが不良とな
り、セクタ0の物理アドレスをアドレス8888hの予
備のセクタに切り替える場合には、同図(b)に示すよ
うに、2次デコード部302を書き換えて、「0000
h」のデコード値を「5555h」から「8888h」
に切り替える。これにより、セクタ0として物理アドレ
ス「8888h」が割り当てられる。
【0069】上記のようにして、2次デコード部(もし
くは1次デコード部)を何度か書き換えることにより書
き換え制限値以上になり、2次デコード部に不良になる
と、同図(c)に示すように、一次デコード部301を
書き換えてそのデコード値をずらし、2次デコード部3
02がデコード値として「8888h」を出力する「2
222h」をデコード値として出力するように書き換え
る。これにより、2次デコード部302が不良になって
も、物理アドレス「8888h」をデコード値として出
力することができる。以上のように、デコード部を2段
化し、一方のデコード部が不良になった場合に、他方の
デコード部を書き換えることにより、デコード部の寿命
を2乗化することができる。例えば、セクタが不良にな
るまでの回数をL回(書き換え制限値)、2次デコード
部が不良になるまでの回数をM回(書き換え制限値)、
1次デコード部が不良になるまでの回数をN回(書き換
え制限値)とすると、アドレスがエラーになるまでの回
数はN×M×L回となる。基本的に書き換え制限値はフ
ラッシュEEPROMで10万〜100万回、EEPR
OMで1万回程度といわれているので、事実上、デコー
ド部を2段化するだけで、信頼性を十分確保することが
できる。
【0070】F.書き込み時間の推定処理 フラッシュ・メモリにおいては、データの書き込みに
際、退避処理等を行う必要があり、通常の半導体メモリ
の場合より書き込みに時間がかかる。本実施例は、フラ
ッシュ・メモリへの書き込み時間の推定を行い、消費電
力の推定、異常の検出等を行う実施例を示している。図
51に本実施例のシステム全体の概略構成を示す。1は
記憶装置、1aは上書きすることができず、また、セク
タ、ブロック等の所定の単位でしかデータを消去するこ
とができない、例えばフラッシュ・メモリ等から構成さ
れる記憶領域、1bはコントローラ、2は本体処理装置
である。
【0071】次に本実施例について説明する。今、記憶
装置が図52に示すような状態になっている場合に、3
セクタのデータを書き込む場合を考える。まず、前記し
た図5の本体よりプロセッサ22に書き込むセクタ数を
送る。書き込むセクタ数がプロセッサ22に送られる
と、プロセッサは書き込むセクタ数により書き込み時間
を求める。ここで、図52のように書き込むブロックが
無い場合には、退避動作が行われるので、書き込み時間
tは次のようにして求められる。 t=〔1セクタの書き込みに掛かる時間〕×3+〔データの退避時間〕(秒) プロセッサ22は上記のようにして書き込み時間を計算
し、本体へ返す。本体は、上記書き込み時間を元に、次
の式により書き込み動作時の消費電力W1を求める。 W1=t÷3600×〔書き込み動作の消費電力〕(W) また、本体はその電源部から残りの電力W2を読み取
り、得られた書き込み電力と比較し、W2>W1ならデ
ータの書き込みを行う。一方、本体は上記のようにして
得た書き込み時間tと実際の書き込み時間を比較し、上
記書き込み時間tを越えても書き込みが終了しない場合
には、記憶装置の異常と判断し、例えば、ユーザに通知
したり、書き込み処理をストップ等の措置を行う。
【0072】図53は本実施例における本体の処理を示
すフローチャートであり、同図により本実施例を説明す
る。ステップS1において、これから書き込むデータの
サイズを記憶装置に送り、書き込みにかかる時間を得
る。ステップS2において、書き込みにかかる時間と、
時間当たりの消費電力をかけて書き込みにかかる電力を
得る。ステップS3において、残り電力と書き込みで使
用する電力を比較し、残り電力の方が少ない場合には、
異常処理を行う。また、残り電力の方が多い場合には、
ステップS4に行きデータを書き込み、ステップS5に
おいて、実際の書き込み時間が予想した時間より多いか
否か判別し、多い場合には、異常処理を行う。また、書
き込み時間が予想した時間以内の場合には、ステップS
6に行き、書き込み終了か否かを判別し、書き込み終了
でない場合にはステップS5に戻り、書き込み終了の場
合には、終了する。
【0073】以上のように、本実施例においては、書き
込み時間を求めることにより、書き込みに要する電力を
推定しているので、残り電力量で書き込みができるかど
うかの判断を行うことができる。このため、電池駆動等
のシステムにおいて、書き込み中に電力がなくなり書き
込みが途中で中断することを避けることができ、システ
ムの信頼性を向上させることができる。また、実際の書
き込み時間と推定した書き込み時間を比較することによ
り、記憶装置の異常を検出することができ、また、書き
込み時間を表示するなどしてユーザに知らせることによ
り、ユーザが記憶装置の異常を判断することが可能とな
る。
【0074】G.フラグ判定処理における信頼性の向上 フラグの判定は、通常、1ビットを1機能に割り当て判
定している場合が多い。しかしながら、フラッシュ・メ
モリは過剰消去により消去不能になるという、致命的不
良原因を構造的にもっており、これが発生したセルはハ
イレベルのままで、ローレベルに戻らない状態に陥る。
このため、フラッシュ・メモリ上のフラグを1ビット1
機能に対応させた場合には、そのビットが不良になった
とき、フラグの有効性がなくなってしまう。本実施例
は、フラッシュ・メモリ上の消去フラグ、不良フラグ、
パリテイー等に対して、フラグを複数用意することによ
り、上記したフラッシュ・メモリの構造的欠点に対処
し、前記図51に示したように、論理積によりフラグ判
定を行うことにより、フラグ判定の信頼性を向上させた
実施例を示している。
【0075】(1)実施例1 図54は実施例1を示す図であり、同図(a)はフラグ
レジスタ、(b)は判定のための論理積回路、(c)は
真理値表を示している。本実施例においては、同図
(a)に示すように、一つの機能に対してフラグb0 ,
b4 を用意してフラグレジスタに格納する。そして、フ
ラグ判定を行う場合には、(b)に示すように、これら
のフラグの論理積を求めることにより、最終的な判定結
果を得る。上記のように判定しているので、同図(c)
の行番号2のようにビットb0 がハイレベルで固定にな
っても、その論理積結果としては、正しい結果を得るこ
とができる。同様に、行番号3のように、ビットb4 が
ハイレベルで固定になっても、その論理積結果として
は、正しい結果を得ることができる。
【0076】(2)実施例2 図55は実施例2を示す図であり、同図(a)は第1の
フラグレジスタ、(b)は第2のフラグレジスタ、
(c)はフラグ判定を行う論理積回路を示している。本
実施例は同一機能に対するフラグを別々のフラグレジス
タに格納するようにしたものであり、同図(a)に示す
第1のフラグレジスタのビットb0 にフラグを格納し、
同図(b)に示す第2のフラグレジスタのビットb0 と
ビットb2 に第1のフラグレジスタに格納したフラグと
同一の機能に対応するフラグを格納している。そして、
フラグを判定する場合には、同図(c)に示す論理積回
路により上記フラグの論理積を求める。本実施例におい
ても、実施例1と同様、フラグの一部がハイレベルで固
定しても、正しい判定結果を得ることができる。以上の
ように、本実施例においては、フラグの判定を複数ビッ
トで行うようにしているので、全てのビットが不良にな
らない限り、正しい判定値を常に出力することができ、
フラグ判定の信頼性を向上することができる。
【0077】H.管理テーブルの節約 本実施例は記憶装置が複数チップで構成され、各チップ
内に複数のブロックが設けられたフラッシュ・メモリ・
システムにおいて、管理テーブルを簡単化するととも
に、各ブロックを平均的に使用することができる実施例
を示している。以上示した実施例においては、データを
書き込むチップ、ブロックに制約がなく、データは全ブ
ロックのセクタに書き込むことができたため、全領域を
管理するテーブルを設ける必要があったが、本実施例に
おいては、各チップ内に書き込むデータを固定とし、チ
ップ内において書き込むブロックを移動して書き込んで
いくことにより、全領域を管理することなくデータの書
き込みができるようにし、フラッシュ・メモリの管理を
簡単化するとともに、各ブロックの使用を平均化してい
る。また、本実施例においては、チップ内に書き込まれ
るデータをチップの全容量より一定量少なくし、この一
定量のブロックをワークブロックと不良ブロック発生時
の救済ブロックに当てている。そして、ブロック内のデ
ータの並びは固定とし、データを書き換える場合、すで
に旧ブロックに有効なデータが存在している場合には、
そのデータを前記した図5のSRAM23に退避して、
新データと一緒にして空いている領域に書き込み、書き
込みが成功したら旧データのブロックを消去するように
している。
【0078】次に本実施例を説明する。図56は本実施
例におけるチップ、ブロック、セクタ内構成を示す図で
あり、同図に示すように、チップは2Mbyteであり、チッ
プ内は1ブロック4KbyteのNo.000〜No.511
の512個のブロックに分割され、各ブロック内には、
1セクタ528byte のNo.00〜No.07の8個のセ
クタが設けられている。なお、同図のブロックNo.お
よびセクタNo.は物理アドレスを示している。さら
に、セクタ内には、同図に示すように、256byte の実デ
ータ領域、Long命令用のECC領域、不良データフ
ラグ、不良ブロックフラグ、ブロックアドレス、256byt
e の実データ用領域ECC領域が設けられている。ブロ
ック・アドレスは、SRAM23に格納されているブロ
ック・ポインタのアドレス値を示し、ブロック・アドレ
スには、実データなしと判断したセクタも書き込むこと
としている。このようにすることにより、活線抜き差し
時、セクタアドレス数が多い物が正常データと判断する
ことができる。なお、セクタアドレス数が等しい場合は
ECC・チェックサムの正誤で判断する。
【0079】不良ブロックフラグは、ブロックのコンデ
ィションを示しており、FFhで正常ブロック、≠FF
hで不良ブロックとしている。不良データフラグは、デ
ータのコンディションを示しており、FFhで正常デー
タ、≠FFhで不良データとしている。Long命令用
のECC領域は最大4byte である。ECC領域は、実デ
ータのコンディションを示しており、この領域の値によ
りデータの訂正および誤り検出を行う。
【0080】図57〜図61は本実施例における書き込
み処理を示す図であり、同図により本実施例を説明す
る。本実施例においては、チップがNo.00〜No.
04の5個で、各チップにワークブロックを4個設けた
場合の書き込みおよび管理方式を示している。図57は
全ブロックを消去した状態を示しており、同図に示すよ
うに、各チップにはワークブロックがwork01〜0
4の4個設けられており、データは上記ワークブロック
work01〜04に書き込まれる。書き込みはセクタ
単位で可能であるが、セクタ005の書き込み後にセク
タ004を書き込むなど、上位のセクタの書き込み後に
は下位のセクタの書き込みはできない。また、チップを
越えてデータが移動することはなく、ブロック内のセク
タの順番は不動である。さらに、例えば、論理ブロック
アドレス00にセクタ000〜005のみを書き込む場
合のように、書き込みデータが8セクタ全てを満たさな
い場合には、セクタ000〜005のデータを書き込み
後、セクタ006,007にブロックアドレスのみを書
き込む。なお、この場合、1ブロックが8セクタであ
り、また、チップが5個であるので、論理アドレスnの
データは、(論理アドレスn÷8)の商をさらに5で割
ったときに得られた余りのチップに書き込まれる。例え
ば、n=121の場合には、121÷8は15で余り1
であり、15÷5は5で余りが0なので、No.00の
チップに書き込まれる。
【0081】本実施例におけるデータの書き込み処理は
次のように行われる。まず、図57に示す全ブロックを
消去した状態からセクタNo.000〜039(論理ア
ドレス)の40セクタを連続書き込みすると、図58に
示すように各チップのwork01にデータが書き込ま
れる。すなわち、最初に書き込まれるセクタNo.00
0〜007は論理ブロックアドレスが00なので、本体
からSRAM23にセクタNo.000〜007のデー
タを転送して、チップNo.00の書き込みポインタが
指すwork01からデータを書き込む。なお、論理ブ
ロックアドレスはチップ単位で管理される。そして、こ
の場合には論理ブロックアドレス00が過去の存在しな
いので、チップNo.00のwork01はwork0
4の次の空き領域に移動する。8セクタ分の書き込みが
終了したら、書き込みポインタをチップNo.01のw
ork01に移動し、上記と同様にセクタNo.008
〜015のデータをwork01に書き込む。
【0082】以上のようにして、書き込みがチップN
o.04まで完了したら、書き込みポインタをチップN
o.00のwork02に移動する。次に、図58の状
態から、図59に示すようにセクタNo.120〜19
1(論理アドレス)の72セクタの連続書き込みをす
る。上記と同様、本体からSRAM23にセクタNo.
120〜127のデータを転送して、セクタNo.12
0〜127は論理ブロックアドレスが03なので、チッ
プNo.00の書き込みポインタが指すwork02か
らデータを書き込む。そして、上記と同様、チップN
o.00のwork02、work03はwork01
の次の空き領域に移動する。以下同様に、セクタNo.
128〜191のデータをチップNo.00〜No.0
4に書き込む。
【0083】ここで、図59の状態から、セクタNo.
002〜003の2セクタを連続書き込みすると、図6
0に示すようになる。まず、SRAM23にセクタN
o.002〜003のデータを転送する。この場合、書
き込みデータがセクタNo.002〜003なので、論
理ブロックアドレス00が指定され、これは過去に存在
するので、旧データの退避が必要と判断される。また、
書き込みデータがセクタNo.002〜003で、論理
ブロックアドレス00の最初から書き込まれないので、
旧論理ブロックアドレス00のデータをSRAM23に
退避する。なお、書き込みデータが論理ブロックアドレ
スの先頭より2セクタ分のときには、書き込みデータを
先に処理した後に旧論理ブロックアドレスのデータの退
避動作を行う。
【0084】次に、SRAM23に退避した旧データ0
00,001,004,005,006,007と新デ
ータ002,003を書き込みポインタが指すチップN
o.00のwork04に書き込む。その際、書き込み
は000,001,002,003,004,005,
006,007の順番に書き込む。ついで、論理ブロッ
クアドレス00がすでに存在しているので、旧論理ブロ
ックアドレスの消去を行う。また、work04を旧論
理ブロックアドレス00に移動する。上記のように2セ
クタ連続書き込みを行ったのち、電源がOFFになり、
再びONにすると、図61に示すように、ワークブロッ
クは使われているブロックの次より指定される。また、
上記のようにワークブロックを指定していき、チップの
最後まで検索してもワークブロックを全部指定できなく
なった場合には、チップの最初に戻り、ワークブロック
を指定する。
【0085】上記の処理において、ブロック消去エラー
が発生した場合には、不良フラグに00hを設定し、そ
のブロックは書き込みおよび読み出し不可とする。すな
わち、ワークブロックを一つ潰すことにより対処し、ワ
ークブロックがなくなったら、そのシステムは書き込み
不可とする。また、データ退避途中にエラーが発生した
場合には、不良データフラグを立てたのちにデータを書
き込む。なお、読み出し動作ではそのブロックにエラー
が検出されても、そのブロックを不良ブロックとしては
扱わない。データ書き込みエラーが発生した場合には、
そのブロックを不良ブロックとする。不良フラグの立て
方は、一度書かれているデータを退避し、不良ブロック
フラグのみを立てて、再度書き込む。不良ブロックフラ
グも通常書き込みと同様、該当ブロック全てのセクタに
対して立てる。データ消去途中でエラーが検出された場
合には、そのブロックは不良ブロックとする。不良ブロ
ックフラグの立て方は、不良ブロックフラグのみを立て
るのではなく、実データを含め全てALL
〔00〕を書
き込む。不良処理は該当ブロック全てのセクタに対して
行う。
【0086】以上のように、本実施例においては、各チ
ップ内に書き込むデータを固定とし、チップ内において
書き込むブロックを移動して書き込んでいくので、全領
域を管理する必要がない。このため、データを各チップ
内でのみ管理すればよく、管理テーブルを節約すること
ができ、また、書き込み動作の高速化を図ることができ
る。また、ワークブロックにデータを書き込み、ワーク
ブロックをチップ内で移動させるように構成したので、
各ブロックを平均的に使用することができる。
【0087】
【発明の効果】以上説明したように、本発明において
は、記憶領域が複数のブロックと、該ブロックを区切っ
たセクタから構成され、書き込まれたデータをブロック
単位で消去する記憶装置において、ブロック毎に書き込
みの有無を示すフラグを設けて、書き込みの有無を示す
フラグを参照して、書き込まれたデータを消去するよう
にしたので、不要な消去を避けることができ、消去時間
の短縮を図ることができるとともに、記憶媒体の寿命を
延ばすことができる。
【図面の簡単な説明】
【図1】本発明の全体の概略構成を示す原理図である。
【図2】本発明の原理を示す原理図(1)である。
【図3】本発明の原理を示す原理図(2)である。
【図4】本発明の原理を示す原理図(3)である。
【図5】本発明の前提となる記憶装置の構成を示すブロ
ック図である。
【図6】記憶装置におけるSRAMの内容を示す図であ
る。
【図7】記憶装置におけるフラッシュ・メモリの内容を
示す図である。
【図8】記憶装置におけるフラッシュ・メモリの内容を
示す図(続き)である。
【図9】記憶装置における書き込み時の処理を示すフロ
ーチャートである。
【図10】記憶装置における書き込み時の処理を示すフ
ローチャート(続き)である。
【図11】記憶装置における書き込み時の処理を示すフ
ローチャート(続き)である。
【図12】記憶装置における書き込み時の処理を示すフ
ローチャート(続き)である。
【図13】記憶装置における書き込み時の処理を示すフ
ローチャート(続き)である。
【図14】消去回数のバラツキを抑える実施例を示す図
である。
【図15】消去回数のバラツキを抑える実施例を示す図
(続き)である。
【図16】消去回数のバラツキを抑える実施例を示す図
(続き)である。
【図17】消去回数のバラツキを抑える実施例を示す図
(続き)である。
【図18】消去回数のバラツキを抑える実施例を示す図
(続き)である。
【図19】消去回数のバラツキを抑える実施例の処理を
示すフローチャートである。
【図20】消去可能データをなくす処理の実施例を示す
図である。
【図21】消去可能データをなくす処理の実施例を示す
図(続き)である。
【図22】消去可能データをなくす処理の実施例を示す
図(続き)である。
【図23】消去可能データをなくす処理の実施例を示す
図(続き)である。
【図24】消去可能データをなくす処理の実施例を示す
フローチャートである。
【図25】空き領域の作成処理の実施例を示す図であ
る。
【図26】空き領域の作成処理の実施例を示す図(続
き)である。
【図27】空き領域の作成処理の実施例を示す図(続
き)である。
【図28】空き領域の作成処理の実施例を示す図(続
き)である。
【図29】空き領域の作成処理の実施例を示す図(続
き)である。
【図30】空き領域の作成処理の実施例を示す図(続
き)である。
【図31】空き領域の作成処理の実施例を示す図(続
き)である。
【図32】空き領域の作成処理の実施例のフローチャー
トである。
【図33】消去処理の実施例を示す図である。
【図34】消去処理の実施例を示す図(続き)である。
【図35】消去処理の実施例のフローチャートである。
【図36】書き込み速度の向上を図る実施例のシステム
構成を示す図である。
【図37】書き込み速度の向上を図る第1の実施例を示
す図である。
【図38】書き込み速度の向上を図る第1の実施例を示
す図(続き)である。
【図39】書き込み速度の向上を図る第2の実施例を示
す図である。
【図40】書き込み速度の向上を図る第2の実施例を示
す図(続き)である。
【図41】書き込み速度の向上を図る第3の実施例を示
す図である。
【図42】書き込み速度の向上を図る第3の実施例を示
す図(続き)である。
【図43】書き込み速度の向上を図る第4の実施例を示
す図である。
【図44】書き込み速度の向上を図る第4の実施例を示
す図(続き)である。
【図45】書き込み速度の向上を図る第5の実施例を示
す図である。
【図46】書き込み速度の向上を図る第5の実施例を示
す図(続き)である。
【図47】書き込み速度の向上を図る実施例のフローチ
ャートである。
【図48】書き込み速度の向上を図る実施例のフローチ
ャート(続き)である。
【図49】書き込み速度の向上を図る実施例のフローチ
ャート(続き)である。
【図50】アドレス変換用デコード部を2段とした実施
例を示す図である。
【図51】書き込み時間推定処理を行うシステムの全体
の概略構成を示す図である。
【図52】書き込み時間推定処理の実施例における記憶
領域の状態を示す図である。
【図53】書き込み時間推定処理の実施例のフローチャ
ートである。
【図54】フラグ判定処理の第1の実施例を示す図であ
る。
【図55】フラグ判定処理の第2の実施例を示す図であ
る。
【図56】管理テーブルを節約する実施例における記憶
領域の構成を示す図である。
【図57】管理テーブルを節約する実施例を示す図であ
る。
【図58】管理テーブルを節約する実施例を示す図(続
き)である。
【図59】管理テーブルを節約する実施例を示す図(続
き)である。
【図60】管理テーブルを節約する実施例を示す図(続
き)である。
【図61】管理テーブルを節約する実施例を示す図(続
き)である。
【符号の説明】
1,20 記憶装置 1a 記憶領域 1b 一次記憶媒体 1c 制御手段 1d,1e デコード・テーブル 2 本体処理装置 21 コントローラLSI 22 プロセッサ 23 SRAM 24 クロック発振器 25−1〜25−5 フラッシュ・メモリ 26 EEPROM 261 セクタ変換部 301 1次デコード部 302 2次デコード部
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G11C 29/00 671 G11C 17/00 601B 601E 639A 639C (72)発明者 林 朋弘 神奈川県横浜市中区本町4丁目36番地 株 式会社富士通コンピュータテクノロジ内 (72)発明者 柴崎 省吾 神奈川県横浜市中区本町4丁目36番地 株 式会社富士通コンピュータテクノロジ内 (72)発明者 伊藤 裕之 神奈川県横浜市中区本町4丁目36番地 株 式会社富士通コンピュータテクノロジ内 (72)発明者 竹原 勝 神奈川県横浜市中区本町4丁目36番地 株 式会社富士通コンピュータテクノロジ内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 記憶領域(1a)が複数のブロック(1a-1,
    …,1a-N)から構成され、書き込まれたデータをブロック
    単位で消去する記憶装置(1) の書き込み/消去方法にお
    いて、 ブロック毎に書き込みの有無を示すフラグ(F1)を設け、
    フラグ(F1)を参照して書き込まれたデータを消去するこ
    とを特徴とする記憶装置の書き込み/消去方法。
  2. 【請求項2】 全記憶領域を消去する際、書き込みの有
    無を示すフラグ(F1)を参照して、書き込みの有るブロッ
    クのみ消去することを特徴とする請求項1の記憶装置の
    書き込み/消去方法。
JP2000347501A 2000-11-15 2000-11-15 記憶装置の書き込み/消去方法 Expired - Lifetime JP3573706B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000347501A JP3573706B2 (ja) 2000-11-15 2000-11-15 記憶装置の書き込み/消去方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000347501A JP3573706B2 (ja) 2000-11-15 2000-11-15 記憶装置の書き込み/消去方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP24654793A Division JP3215237B2 (ja) 1993-10-01 1993-10-01 記憶装置および記憶装置の書き込み/消去方法

Publications (2)

Publication Number Publication Date
JP2001195889A true JP2001195889A (ja) 2001-07-19
JP3573706B2 JP3573706B2 (ja) 2004-10-06

Family

ID=18821216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000347501A Expired - Lifetime JP3573706B2 (ja) 2000-11-15 2000-11-15 記憶装置の書き込み/消去方法

Country Status (1)

Country Link
JP (1) JP3573706B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7073015B2 (en) 2002-03-20 2006-07-04 Kabushiki Kaisha Toshiba Information storage apparatus
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
US8040751B2 (en) 2002-05-29 2011-10-18 Elpida Memory, Inc. Semiconductor memory device
JP2012068766A (ja) * 2010-09-21 2012-04-05 Mitsubishi Electric Corp メモリコントローラ

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
JPH05282889A (ja) * 1992-03-31 1993-10-29 Toshiba Corp 不揮発性半導体メモリ装置
JPH0757481A (ja) * 1993-08-06 1995-03-03 Brother Ind Ltd 記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
JPH05282889A (ja) * 1992-03-31 1993-10-29 Toshiba Corp 不揮発性半導体メモリ装置
JPH0757481A (ja) * 1993-08-06 1995-03-03 Brother Ind Ltd 記憶装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7073015B2 (en) 2002-03-20 2006-07-04 Kabushiki Kaisha Toshiba Information storage apparatus
US7404030B2 (en) 2002-03-20 2008-07-22 Kabushiki Kaisha Toshiba Method of controlling a non-volatile memory device in which a data erase block is larger than a data write block
US8040751B2 (en) 2002-05-29 2011-10-18 Elpida Memory, Inc. Semiconductor memory device
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
JP2012068766A (ja) * 2010-09-21 2012-04-05 Mitsubishi Electric Corp メモリコントローラ

Also Published As

Publication number Publication date
JP3573706B2 (ja) 2004-10-06

Similar Documents

Publication Publication Date Title
JP3215237B2 (ja) 記憶装置および記憶装置の書き込み/消去方法
KR0128218B1 (ko) 일괄 소거형 비휘발성 메모리
EP0619541B1 (en) Information processing system with cached flash memory
US6078520A (en) Flash memory control method and information processing system therewith
US7237057B2 (en) Window-based flash memory storage system and management and access methods thereof
US5742934A (en) Flash solid state disk card with selective use of an address conversion table depending on logical and physical sector numbers
US6865658B2 (en) Nonvolatile data management system using data segments and link information
JPH06111588A (ja) 一括消去型不揮発性メモリ
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JPH05314019A (ja) メモリカード装置
CN111124294B (zh) 一种扇区映射信息的管理方法及装置、存储介质和设备
JP2001195889A (ja) 記憶装置の書き込み/消去方法
JP2001188711A (ja) 記憶装置のフラグ判定方法
JP3362031B2 (ja) 記憶装置の書き込み/消去方法
JP2001188713A (ja) 記憶装置の管理方法
JP3390740B2 (ja) 記憶装置の制御方法
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム
CN114371816A (zh) 一种数据存储方法及电子设备
JPH0573434A (ja) メモリカードの不良記憶素子代替回路

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100709

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100709

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 9

EXPY Cancellation because of completion of term