(57)【要約】【課題】フラッシュメモリ等に代表される不揮発性メモリのセクタ当たりのデータ書換え可能回数を実質的に増加し、寿命を延ばすようにする。【解決手段】フラッシュメモリ１が有する複数のセクタ１ａそれぞれを複数のブロック１ｂに分割し、これら複数のセクタ全体に亘るブロックのデータ記録領域１ｃに対し環状の順序にてデータを記録し、記録データはセクタ１ａ内の全ブロック１ｂが記録済みとなった後にセクタ単位で一括消去する。また、記録したデータ量をブロック長として記録するブロック長管理領域１ｄを設け、このデータ量に対応させてブロック１ｂのデータ記録領域１ｃを変更する一方、このブロック長を前記ブロック長管理領域１ｄに記録する。【選択図】図１
2007164364.tif 000002
【特許請求の範囲】
【請求項１】
データ消去の単位となるセクタを複数有し、これら複数のセクタそれぞれは複数のブロックに分割し、該複数のブロックそれぞれには情報データを記録するデータ記録領域と該データ記録領域へ記録したデータ量をブロック長として記録するブロック長管理領域およびブロックへのデータ記録の状態を記録するブロック状態管理領域とを有するとともに、前記複数のセクタそれぞれには一つ前のセクタのデータ消去の状態を記録する前セクタ消去状態管理領域が設けられてなる不揮発性メモリと、
前記ブロック長管理領域とブロック状態管理領域および前セクタ消去状態管理領域それぞれに対し前記ブロック長または状態を記録するとともに、これら記録データを基に前記複数のセクタ全体に亘るブロックのデータ記録領域に対し環状の順序に従ったデータの記録と、記録データの読出しおよびセクタごとの記録データの一括消去、さらに、前記ブロック長管理領域とブロック状態管理領域および前セクタ消去状態管理領域それぞれの記録データを更新するように前記不揮発性メモリを制御する制御部とを備えた情報記録読出装置。
【請求項２】
制御部は、ブロック長に応じてブロックのデータ記録領域を大きくまたは小さくするように変更することを特徴とする請求項１記載の情報記録読出装置。
【請求項３】
制御部は、データの読出しから記録までの間にセクタごとに記録データを一括消去することを特徴とする請求項１または請求項２記載の情報記録読出装置。
【請求項４】
制御部は、消去対象となるセクタと論理的に接続される後続の他のセクタに属するブロックのデータ記録領域に情報データが記録されるまでは、前記消去対象となるセクタの記録データを消去しないことを特徴とする請求項１または請求項２記載の情報記録読出装置。
【請求項５】
制御部は、ブロック状態管理領域および前セクタ消去状態管理領域それぞれの記録データを基に、データ記録の対象となるブロックの位置、データ読み出しの対象となるブロックの位置および消去対象となるセクタの位置を算出することを特徴とする請求項１または請求項２記載の情報記録読出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フラッシュメモリ等に代表される不揮発性メモリに対するデータの記録、読出しおよび消去を行う情報記録読出装置に関するものである。
【背景技術】
【０００２】
フラッシュメモリ等に代表される不揮発性メモリは電源切断後も記録内谷を保持できるという特徴を有し、この特徴を利用して機器等の電源切断直前の設定状態を記録するとともに電源切断後もこの記録内容を保持し、電源再投入時には電源切断時の設定状態を読み出し設定するという使用方法が考えられ、近年では、ＤＶＤプレーヤ等の様々な電子情報機器においてこのような使用方法が採用されている。このフラッシュメモリは、データ消去の単位となるセクタを複数有している。また、このフラッシュメモリの場合、１が設定されているビットを０にする場合はビット単位で行なうのに対し、０が設定されているビットを１に設定するにはセクタ単位で行なう(セクタ消去という)必要がある。このため、あるセクタに記録されているデータを更新する場合、従来はそのセクタに記録されているデータを消去した後、この同一のセクタに更新されたデータを記録するという方法がとられてきた。
しかし、この方法では、特定のセクタに書換えが集中し、セクタ当たりの消去回数に制限のあるフラッシュメモリの寿命を短くするという問題があった。この寿命の問題に対処した従来の情報記録読出装置として例えば以下のものがある。
【０００３】
従来例その１として、この従来例はフラッシュメモリの内部をファイルデータの書き込み消去単位であるセクタに分け、各セクタに書き込んだファイルに番号を付し、これを管理するテーブルを備え、すでに書いたファイルの書換え時にも新たなデータとして別のセクタに書き込み、古いデータは消去して新たに書き込み可能領域として前記テーブル上で管理するようにしたものであり、これにより、頻繁に書換えのあるファイルが特定のセクタに割り当てられないこととなり、フラッシュメモリの消去箇所が一部に集中することなく分散し、フラッシュメモリの寿命を延ばすことができる（例えば、特許文献１参照）。
【０００４】
また、従来例その２として、この従来例は複数のメモリブロックを有したブロック消去形フラッシュメモリに関し、複数のメモリブロック各々はデータ書込み領域（エリア）と管理ステータス書込み領域とを有し、この管理ステータス書込み領域には書込データ特定データＩＤとデータ書込メモリブロックの消去回数を示す消去カウンタと同一データＩＤで書込データの時系列的順番を示す書込みステータスとが書込まれ、プロセッサで新たなデータを書込む際には、書込みステータスが書込み可能を示し、且つ、消去カウンタが最小を示すメモリブロックを消去した後に、新たなデータおよび管理ステータスを書込み、他のメモリブロックの内の同一データＩＤを含む管理ステータスを更新するようにしたものであり、これにより、データ書込みおよび消去が特定のメモリブロックに偏ることが防止され、フラッシュメモリの寿命を延ばすことができる（例えば、特許文献２参照）。
【０００５】
【特許文献１】特開平６−１２４５９６号公報
【特許文献２】特開２００１−３１２８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の情報記録読出装置は以上のように構成され、従来例その１（特許文献１）および従来例その２（特許文献２）の双方とも、フラッシュメモリのデータ書込みおよび消去箇所が一部のセクタ（またはメモリブロック）に集中しないように分散し、フラッシュメモリの寿命を延ばすように改善している。
しかし、上記従来例における寿命の改善は、データ書込みおよび消去箇所が一部のセクタ（またはメモリブロック）に集中させないようにした範囲での効果であり、セクタ当たりのデータ書換え可能回数を実質的に増加、または、このデータ書換えの回数との関係においてデータ消去回数を実質的に減少させるものではない。このため、フラッシュメモリの寿命を延ばす更なる改善が必要であるという課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、フラッシュメモリ等に代表される不揮発性メモリにおけるセクタ当たりのデータ書換え可能回数を実質的に増加し、また、このデータ書換え回数との関係においてデータ消去回数を実質的に減少させ、不揮発性メモリの寿命を延ばすようにするとともに、データ処理の効率の改善および情報記録の精度の向上を図った情報記録読出装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る情報記録読出装置は、データ消去の単位となるセクタを複数有し、これら複数のセクタそれぞれは複数のブロックに分割し、該複数のブロックそれぞれにはデータ記録領域と該データ記録領域へ記録したデータ量をブロック長として記録するブロック長管理領域およびデータ記録の状態を記録するブロック状態管理領域とを有するとともに、前記複数のセクタそれぞれには一つ手前のセクタのデータ消去の状態を記録する前セクタ消去状態管理領域が設けられた不揮発性メモリと、前記ブロック長管理領域とブロック状態管理領域および前セクタ消去状態管理領域それぞれに対し前記ブロック長または状態を記録するとともに、これら記録データを基に前記複数のセクタ全体に亘るブロックのデータ記録領域に対し環状の順序に従ったデータの記録と、記録データの読出しおよびセクタごとの記録データの一括消去、さらに、前記ブロック長管理領域とブロック状態管理領域および前セクタ消去状態管理領域それぞれの記録データを更新するように前記不揮発性メモリを制御する制御部とを備えたものである。
【発明の効果】
【０００９】
以上のように、この発明によれば、不揮発性メモリが有する複数のセクタそれぞれを複数のブロックに分割し、これら複数のセクタ全体に亘るブロックのデータ記録領域に対し環状の順序にてデータを記録し、記録データはセクタ内の全ブロックが記録済みとなった後にセクタ単位で一括消去するように構成したので、セクタより記憶容量の小さいブロック単位で情報データを記録するとともに記録位置が環状の順序でずれていくこととなり、また、セクタ単位での記録データの一括消去により、セクタ当たりの消去回数に上限のある不揮発性メモリのセクタ当たりのデータ書換え可能回数を実質的に増加し、このデータ書換えの回数との関係においてデータ消去回数を実質的に減少し、これにより、不揮発性メモリの寿命を延ばすことができる。
また、ブロック長管理領域を設け、この管理領域にデータ記録領域へ記録したデータ量をブロック長として記録するように構成したので、記録したデータ量が容易に検知でき、情報記録の精度を向上することができる。
また、ブロック状態管理領域を設け、この管理領域にデータ記録の状態を記録するように構成したので、更新データの記録が中断されたかどうかを検知することができ、情報記録の精度を向上することができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による情報記録読出装置の構成図である。
図１において、この情報記録読出装置は不揮発性メモリとしてフラッシュメモリ１を使用し、このフラッシュメモリ１を制御部２がインターフェース３を介し制御する構成としている。
上記構成において、フラッシュメモリ１はデータ消去の単位となるセクタ１ａを複数有しており、図１はこのセクタ１ａをセクタ１ａ（１）からセクタ１ａ（４）の４つのセクタから成るとした例である。また、これらセクタ１ａ（１）からセクタ１ａ（４）の各セクタ１ａは更に小さなデータ単位（容量）にした複数のブロック１ｂに分割される。
【００１１】
図１は各セクタ１ａを４つのブロックに分割し、セクタ１ａ（１）からセクタ１ａ（４）に亘りブロック１ｂ（１）からブロック１ｂ（１６）の１６ブロックから成るとした例である。末尾の数字（１）〜（１６）はブロック１ｂの位置を表す。
これらブロック１ｂ（１）からブロック１ｂ（１６）の各ブロックはデータ記録領域１ｃ、ブロック長管理領域１ｅおよびブロック状態管理領域１ｄとを有している。このうち、データ記録領域１ｃには保存する情報データが記録（格納）される。この場合、各ブロック１ｂのデータ記録領域１ｃへのデータ記録はブロック１ｂ（１）からブロック１ｂ（１６）に対し環状の順序にて記録される。
また、ブロック長管理領域１ｅは各ブロック１ｂのデータ記録領域１ｃへ記録したデータの量を表すブロック長のデータを記録し管理する領域である。
ブロック状態管理領域１ｄはこのブロック状態管理領域１ｄが属するブロック１ｂへのデータ記録の状態を記録し管理する領域であり、具体的にはそのブロック１ｂのデータ記録領域１ｃにデータが未記録、記録中または記録済かを示すデータが記録される。
【００１２】
図２は上記ブロック状態管理領域１ｄに記録されるデータとそのデータが示す状態の説明図である。
図２において、１１はブロック状態管理領域１ｄの記録データ（内容）、１２はその記録データが示すブロック１ｂの状態である。
記録データが「１１１」の場合は「未記録」の状態であり、そのブロック１ｂのデータ記録領域１ｃにデータが記録されていないことを示す。
記録データが「０１１」の場合は「記録中」の状態であり、データ記録領域１ｃにデータが記録中であることを示す。また、この「記録中」の状態はそのデータ記録領域１ｃに記録されているデータが不完全なデータであることを示す。
記録データが「００１」の場合は「記録済」の状態であり、データ記録領域１ｃにデータ記録が完了したことを示し、また、記録データが正常であることを示す。
このとき、フラッシュメモリのデータは１を０にする場合はビット単位で行なえるので、「未記録」を「記録中」または「記録済」に変更でき、「記録中」は「記録済」に変更することが可能である。
一方、「記録中」または「記録済」を「未記録」にするためにはセクタ消去を行なう。
【００１３】
また、セクタ１ａ（１）からセクタ１ａ（４）の４つのセクタそれぞれには前セクタ消去状態管理領域１ｆが設けられている。この前セクタ消去状態管理領域１ｆは、一つ前のセクタ１ａのデータ消去の状態を示すデータを記録する領域である。例えば、セクタ１ａ（２）の前セクタ消去状態管理領域１ｆには一つ前のセクタ１ａ（１）のデータ消去の状態を示すデータが記録される。
【００１４】
図３は上記前セクタ消去状態管理領域１ｆに記録されるデータとそのデータが示す状態の説明図である。
図３において、２１は前セクタ消去状態管理領域１ｆの記録データ（内容）、２２はその記録データが示す一つ前のセクタ１ａの状態である。
記録データが「１１１」の場合は初期状態である「未消去」の状態を示す。
記録データが「０１１」の場合は１つ前のセクタ１ａのデータ消去を開始したことを示す「消去中」の状態を示す。
記録データが「００１」の場合は１つ前のセクタ１ａのデータ消去が完了したことを示す「消去済」の状態を示す。
【００１５】
制御部２は、データの記録と読出しを行なう位置の特定、データの記録と読出制御、消去対象セクタの特定、セクタ消去と消去中断制御等を行なうものであり、このため、ブロック長管理領域１ｅとブロック状態管理領域１ｄおよび前セクタ消去状態管理領域１ｆそれぞれに対しブロック長、ブロック１ｂへのデータ記録の状態または一つ前のセクタのデータ消去の状態を記録するとともに、これら記録データを基に複数のセクタ１ａ（１）からセクタ１ａ（４）の全体に亘るブロック１ｂ（１）からブロック１ｂ（１６）の各データ記録領域１ｃに対し環状の順序に従ったデータの記録と、記録データの読出しおよびセクタ１ａごとの記録データの一括消去、さらに、前記ブロック長管理領域１ｅとブロック状態管理領域１ｄおよび前セクタ消去状態管理領域１ｆそれぞれの記録データを更新するようにフラッシュメモリ１を制御する。また、これら制御に関する各種判断および演算等の処理を行う。
以上説明の制御部２はＣＰＵ（中央処理装置）とメモリ等、または、マイクロコンピュータ等で構成される。
インターフェース３はフラッシュメモリ１と制御部２とを制御可能に接続する。
【００１６】
次に、各ブロック１ｂのデータ記録領域１ｃへ記録するデータに関し、各図を用いて説明する。
図４は各ブロック１ｂのデータ記録領域１ｃへ記録するデータに関する説明図であって、ＤＶＤ再生機器を例としたものであり、このＤＶＤ再生機器における動作モードの状態遷移を示す図である。
図４に示すように、このＤＶＤ再生機器はＤＶＤの他にＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）の再生も対象としたものであり、ＤＶＤについては１層ＤｉｓｃのＤＶＤ−ＶｉｄｅｏとＤＶＤ−ＲＯＭ（読み出し専用）、２層ＤｉｓｃのＤＶＤ−ＶｉｄｅｏとＤＶＤ−ＲＯＭ、ＣＤについてはＣＤ＿ＤＡとＣＤ＿ＭＰ３等をそれぞれ再生の対象とする。これら再生対象の再生動作は以下のように遷移（進行）する。
【００１７】
例えば、今、上記再生対象のうちのいずれかを再生したモードの動作をストップ（ＳＴＯＰ）した時点（Ｓ１）を起点とした場合、次の操作としてはその再生対象を装着位置から取り外す（ＥＪＥＣＴ）（Ｓ２）。次いで、新たな再生対象（Ｄｉｓｃ）が装着位置に装着される（ＬＯＡＤＩＮＧ）（Ｓ３）。装着された再生対象（Ｄｉｓｃ）は判別され（Ｓ４）、ＤＶＤ再生機器はこの判別に対応する所要の動作モードへ移行する。この判別された再生対象が例えばＣＤ＿ＤＡであれば、このＣＤ＿ＤＡが再生される（Ｓ５）。同様にして、
装着された再生対象の判別（Ｓ４）の結果がＣＤ＿ＭＰ３であればこのＣＤ＿ＭＰ３が再生され（Ｓ６）、以下同様に、再生対象の判別（Ｓ４）の結果に従い、１層ＤｉｓｃのＤＶＤ−ＲＯＭ（ＤＶＤ−１層ＲＯＭ）の再生（Ｓ７）、２層ＤｉｓｃのＤＶＤ−ＲＯＭ（ＤＶＤ−２層ＲＯＭ）の再生（Ｓ８）、２層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏ（２層ＤＶＤ−Ｖｉｄｅｏ）の再生（Ｓ９）、または１層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏ（１層ＤＶＤ−Ｖｉｄｅｏ）の再生（Ｓ１０）が行われる。
【００１８】
以上説明のように遷移する動作モードの状態における保持データは再生対象によりデータ量が異なる。このデータ量の例を図５に示す。
図５は前記遷移状態における各再生対象の保持データの説明図であり、図５（ａ）は１層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏにおける保持データ、図５（ｂ）は２層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏにおける保持データ、図５（ｃ）は１層ＤｉｓｃのＤＶＤ−ＲＯＭにおける保持データ、図５（ｄ）は２層ＤｉｓｃのＤＶＤ−ＲＯＭにおける保持データ、図５（ｅ）はＣＤ＿ＤＡにおける保持データ、図５（ｆ）はＣＤ＿ＭＰ３における保持データの例をそれぞれ示す。
【００１９】
これら図５（ａ）〜図５（ｆ）に示すように、保持データはパケット番号とその内容および対象メディアで構成され、これら再生対象の再生を実行するにはそれぞれのパラメータを保持する必要がある。例えば、１層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏの再生を実行するには図５（ａ）に示すパラメータを保持する必要がある。この全てのパラメータを図１に示すブロック１ｂのデータ記録領域１ｃへ記録する。このパラメータは図５（ａ）〜図５（ｆ）に示すように、再生対象によりデータ量が異なる。従って、ブロック１ｂはいずれのパラメータについても記録可能なブロックサイズ（データ記録容量）を有していることが必要となる。
この対処法として、再生対象中で最も大きなデータ量となる再生対象を前提にしてブロック１ｂの大きさ（サイズ）を定め、セクタ１ａ内をこの大きさのブロック１ｂに等分する方法がある。しかし、この方法の場合、最大のデータ量を前提に等分したブロック１ｂにデータ量の小さいパラメータが記録されたときには記録領域が残存することとなり、冗長な領域の発生をもたらすこととなる。
【００２０】
このような冗長な領域の発生を防止すためにはブロック１ｂのサイズを記録するデータ量に応じて変更すればよい。このブロックサイズの変更について図６に示す。
図６はブロックサイズ変更の説明図であり、図１と同一のものには同一符号を付し、図６（ａ）はセクタ１ａ内を同一サイズのブロック１ｂに分割した場合の説明図、図６（ｂ）はセクタ１ａ内を記録するデータ量に応じてブロック１ｂのサイズを変更して分割した場合の説明図である。
図６（ａ）において、セクタ１ａ内を同一サイズのブロック１ｂ（１）〜ブロック１ｂ（４）に４分割したときには各ブロック１ｂのブロック長はセクタ１ａの全記録容量の４分の１ずつとなる。この場合、４分割した各ブロック１ｂのブロック長がいずれの再生対象のパラメータを記録できるサイズであればデータの記録上では問題ないが、前記冗長な領域が発生する。また、記録するデータ量が４分割したブロック長を超えるような再生対象については全てのデータを記録することができず、このような再生対象については対応できないこととなる。
【００２１】
これに対し、図６（ｂ）は記録するデータ量に応じてブロック１ｂ（１）のサイズをセクタ１ａの全記録容量の２分の１とし、残分（２分の１）については等分、即ち、セクタ１ａの全記録容量に対し６分の１ずつに分割してブロック１ｂ（２）〜ブロック１ｂ（４）とし、図６（ａ）と同様に４分割した例である。このようなブロック１ｂ（１）のサイズの可変設定は制御部２により実行される。なお、図６（ｂ）の分割形態は１例であり、他の分割形態であってもよいことはいうまでもない。
この図６（ｂ）のように、セクタ１ａ内を記録するデータ量に応じてブロック１ｂのサイズを変更して分割することにより、無駄な使用となる前記冗長な領域の発生を防止し、実質的な書換え回数の増加を可能とする。また、データ量の大きい再生対象についても対応可能となる。
【００２２】
次に、データ記録の処理につて図７で説明する。
図７は制御部２によるフラッシュメモリ１のＢ＿ＷＲ番目のブロックに対するデータ記録の処理を示すフローチャートである。
ここで、以下説明の処理における制御部２は、更新データを記録するブロックの番号Ｂ＿ＷＲ、ブロック長を示すＢ＿ＬＥＮＧＴＨ、最新データが記録されているブロックの番号Ｂ＿ＲＤ、使用済みとなり消去の対象となったセクタの番号Ｓ＿ＥＲを管理し、フラッシュメモリ１から主制御用のマイコンのメモリ（いずれも図示せず）に対しデータを読み出して、その後このデータが更新された場合に前記メモリの内容をフラッシュメモリ１に記録する。フラッシュメモリ１にデータがまだ記録されていない場合の初期値をＢ＿ＷＲ＝１、Ｂ＿ＲＤ＝０、Ｓ＿ＥＲ＝１とする。
【００２３】
以下、図１に示すフラッシュメモリ１のブロック１ｂ（１）からブロック１ｂ（１６）中のＢ＿ＷＲ番目のブロック１ｂのデータ記録領域１ｃにデータを記録するときの処理について説明する。
図７において、ステップＳＴ１では、制御部２は自己が管理しているデータ記録を行なうブロック１ｂの番号Ｂ＿ＷＲを取得し、記録ブロック指定変数Ｎに格納する（Ｎ＝Ｂ＿ＷＲとおく）。
ステップＳＴ２では、制御部２はＮ番目のブロック１ｂのブロック状態管理領域１ｄを「記録中」に設定する。
ステップＳＴ３では、制御部２はＮ番目のブロック１ｂのブロック長管理領域１ｅにブロック長Ｂ＿ＬＥＮＧＴＨを記録する。
ステップＳＴ４では、制御部２はこのＮ番目のブロック１ｂにはデータが記録されるので、ステップＳＴ１のブロック番号Ｂ＿ＷＲに１を加算し（Ｂ＿ＷＲ＝Ｂ＿ＷＲ＋１）、次のブロックを示すようにしておく。
【００２４】
ステップＳＴ５では、制御部２はブロック番号Ｂ＿ＷＲがブロックの総数（図１では１６）を超えた（Ｂ＿ＷＲ＞ブロック総数）かについて判断し、ブロック総数を超えた場合（ステップＳＴ５―ＹＥＳ）は、ステップＳＴ６へ進み、ブロック総数を超えていない場合（ステップＳＴ５―ＮＯ）は、ステップＳＴ７へ進む。
ステップＳＴ６では、制御部２はブロック番号Ｂ＿ＷＲを１に設定し（Ｂ＿ＷＲ＝１）、ステップＳＴ７へ進む。
ステップＳＴ７では、制御部２は前記主制御用マイコンのメモリより取得したＢ＿ＬＥＮＧＴＨ（ステップＳＴ３）の長さのデータをＮ番目のブロック１ｂのデータ記録領域１ｃに記録する。
ステップＳＴ８では、制御部２はＮ番目のブロック１ｂのブロック状態管理領域１ｄを「記録済」に設定する。この設定により、Ｎ番目のブロック１ｂのデータ記録領域１ｃに記録したデータが最新のデータとなる。
ステップＳＴ９では、制御部２は最新データが記録され、次回の読み出し対象となるブロック番号Ｂ＿ＲＤにＮをセットし（Ｂ＿ＲＤ＝Ｎ）、記録処理を終了する。
【００２５】
以上の説明のように、記録するブロック１ｂの位置を環状の順序でずらしながらデータ記録を行なうことにより１つのセクタ１ａには分割ブロック数Ｎ（複数）の回数についてデータを記録することができので、セクタ１ａ当たりのデータ書換回数をＮ倍に増やすことができる。また、ブロック１ｂのデータ記録状態をブロック状態管理領域１ｄに書き込むので、そのブロック１ｂに記録されているデータが信頼できるかどうかを容易に知ることができる。
【００２６】
次に、データ読出しの処理について図８で説明する。
図８は制御部２によるフラッシュメモリ１のＢ＿ＲＤ番目のブロックに対するデータ読出しの処理を示すフローチャートである。
以下、図１に示すフラッシュメモリ１のブロック１ｂ（１）からブロック１ｂ（１６）中で最新のデータが記録されているＢ＿ＲＤ番目のブロック１ｂからデータを読み出す場合の処理について説明する。
図８において、ステップＳＴ１１では、制御部２はＢ＿ＲＤが０（Ｂ＿ＲＤ＝０）か否かを判断し、「Ｂ＿ＲＤ＝０」であれば（ステップＳＴ１１―Ｙｅｓ）、ステップＳＴ１２へ進み、「Ｂ＿ＲＤ＝０」でなければ（ステップＳＴ１１―Ｎｏ）、ステップＳＴ１３へ進む。
【００２７】
ステップＳＴ１２では、制御部２は初期値を読み出してデータ読出しの処理を終了する。
「Ｂ＿ＲＤ＝０」であれば、まだフラッシュメモリ１に読み出し可能なデータが記録されていないので初期値を読み出すものである。
ステップＳＴ１３では、制御部２はＢ＿ＲＤ番目のブロック１ｂのブロック長管理領域１ｅからブロック長Ｂ＿ＬＥＮＧＴＨを取得する。
ステップＳＴ１４では、制御部２はＢ＿ＲＤ番目のブロック１ｂのデータ記憶領域１ｃからブロック長Ｂ＿ＬＥＮＧＴＨの長さ分データを読み出してデータ読出しの処理を終了する。
【００２８】
次に、データ消去の対象となるセクタ１ａの番号Ｓ＿ＥＲを検索する処理について図９で説明する。
図９はデータ消去の対象となるセクタ１ａの番号Ｓ＿ＥＲを検索する処理を示すフローチャート（サブルーチン）である。
この図９のフローチャートは後述（図１１）のデータ消去の処理の際に使用するサブルーチンの関係となる。
図９において、ステップＳＴ２１では、制御部２は前セクタ消去状態管理領域１ｆを確認するセクタ１ａの番号を格納する変数Ｎを1とおく（Ｎ＝１）。
ステップＳＴ２２では、制御部２はＮ＋１番目のセクタ１ａの前セクタ消去状態管理領域１ｆのデータが「消去中」であるかどうかを判断し、「消去中」でない場合（ステップＳＴ２２―Ｎｏ）は、Ｎ番目のセクタ１ａに記録されている内容は信用できるのでステップＳＴ２３へ進み、「消去中」である場合（ステップＳＴ２２―Ｙｅｓ）は、ステップＳＴ２９へ進む。
【００２９】
ステップＳＴ２３では、制御部２はＮ番目セクタ１ａの前セクタ消去状態管理領域１ｆが「消去済」かどうかを判断し、「消去済」でない場合（ステップＳＴ２３―Ｎｏ）は、ステップＳＴ２４へ進み、「消去済」である場合（ステップＳＴ２３―Ｙｅｓ）は、ステップＳＴ７−２９へ進む。
ステップＳＴ２４では、制御部２はこのセクタ１ａについては消去対象ではないのでＮをＮ＋１とおく（Ｎ＝Ｎ＋１）。
ステップＳＴ２５では、制御部２はＮがセクタ１ａの総数と一致するかについて判断し、一致しない場合（ステップＳＴ２５―Ｎｏ）は、ステップＳＴ２２へ戻って検索を継続する。これに対し一致する場合（ステップＳＴ２５―Ｙｅｓ）、Ｎ番目のセクタ１ａは物理的に最後のセクタ１ａであることを示し、この場合はステップＳＴ２６へ進む。
【００３０】
ステップＳＴ２６では、制御部２は１番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去中」であるかどうかを判断し、「消去中」でない場合（ステップＳＴ２６―Ｎｏ）は、ステップＳＴ２７へ進み、「消去中」である場合（ステップＳＴ２６―Ｙｅｓ）は、ステップＳＴ２９へ進む。
ステップＳＴ２７では、制御部２はＮ番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去済」であるかどうかを判断し、「消去済」でない場合（ステップＳＴ２７―Ｎｏ）は、ステップＳＴ２８へ進み、「消去済」である場合（ステップＳＴ２７―Ｙｅｓ）は、ステップＳＴ２９へ進む。
ステップＳＴ２８では、制御部２はデータ消去の対象となるセクタ１ａの番号Ｓ＿ＥＲを１とおき（Ｓ＿ＥＲ＝１）、この検索処理を終了する。このように処理するのは、ステップＳＴ２７において、Ｎ番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去済」でない場合は全てのセクタ１ａにおいてまだ一度も消去が行なわれていないことを示し、従って、最も古いセクタ１ａは1番目のセクタであるのでＳ＿ＥＲを１とおく。
【００３１】
ステップＳＴ２９では、制御部２はデータ消去の対象となるセクタ１ａの番号Ｓ＿ＥＲをＮとおき（Ｓ＿ＥＲ＝Ｎ）、この検索処理を終了する。
このステップＳＴ２９の処理は、ステップＳＴ２２―Ｙｅｓ、ステップＳＴ２３―Ｙｅｓ、ステップＳＴ２６―ＹｅｓおよびステップＳＴ２７―Ｙｅｓの場合に行われる。
ステップＳＴ２２の判断が「Ｙｅｓ」の場合、過去にＮ番目のセクタ１ａに対して消去処理が行なわれているため、Ｎ番目のセクタ１ａが消去対象のセクタ１ａとあるとしてＳ＿ＥＲをＮとおく。
ステップＳＴ２３の判断が「Ｙｅｓ」の場合、直前のセクタ１ａが前回消去され、Ｎ番目のセクタ１ａが最も古いセクタということになるのでＳ＿ＥＲをＮとおく。
また、ステップＳＴ２６およびステップＳＴ２７それぞれの判断が「Ｙｅｓ」の場合、Ｎ番目のセクタ１ａが消去対象のセクタとなるのでＳ＿ＥＲをＮとおく。
【００３２】
次に、最新データが記録されているセクタ１ａの番号Ｓ＿ＲＤを算出する処理について図１０で説明する。
図１０は最新データが記録されているセクタ１ａの番号Ｓ＿ＲＤの算出処理を示すフローチャート（サブルーチン）である。
この図１０のフローチャートは後述（図１１）のデータ消去の処理の際に使用するサブルーチンの関係となる。
図１０において、ステップＳＴ３１では、初期値として、ブロック数をＢＬＫ＿ＳＵ＝１、セクタ内のデータ長（ブロック単位）をＢＬＫ＿ＬＧＴＨ＿Ｎとおき、ステップＳＴ３２ではブロック内のデータ長であるＤＡＴＡ＿ＬＧＴＨを読み、ＢＬＫ＿ＬＧＴＨ＝ＤＡＴＡ＿ＬＧＴＨ＋９とおく。
次にステップＳＴ３３では、ＢＬＫ＿ＬＧＴＨ＿Ｎ＝ＢＬＫ＿ＬＧＴＨ＿Ｎ＋ＢＬＫ＿ＬＧＴＨとしたうえで、ステップＳＴ３４にてこのＢＬＫ＿ＬＧＴＨ＿Ｎがセクタサイズと比較する。セクタサイズの方が大きければ、ステップＳＴ３５にてＳ＿ＲＤに１を加算して、ステップＳＴ３２を実行する。小さければステップＳＴ３６にてＢＬＫ＿ＳＵとＢ＿ＲＤを比較する。ＢＬＫ＿ＳＵの方が小さければステップＳＴ３７にてＢＬＫ＿ＳＵ＝ＢＬＫ＿ＳＵ＋１を実行し、大きければこのときのＳ＿ＲＤを保持してもどる。
【００３３】
次に、セクタ１ａのデータ消去（セクタ消去）の処理について図１１で説明する。
図１１は制御部２によるフラッシュメモリ１に対するデータ消去の処理を示すフローチャートである。
図１１において、ステップＳＴ４１では、制御部２はデータ消去の対象となるセクタ１ａの番号Ｓ＿ＥＲを、前記図９で説明したサブルーチンを呼び出し検索する。
ステップＳＴ４２では、制御部２は最新データが記録されているセクタ１ａの番号Ｓ＿ＲＤを、前記図１０で説明したサブルーチンを呼び出し算出する。
ステップＳＴ４３では、制御部２は最新データの読出しが完了し、且つ、データ記録処理を要するデータ記録の要求が無いかについて判断し、この要求が有る場合（ステップＳＴ４３―Ｎｏ）は、まだセクタ１ａのデータ消去を開始できない状態なのでステップＳＴ４２に戻って待機し、上記要求が無い場合（ステップＳＴ４３―Ｙｅｓ）は、ステップＳＴ４４へ進む。
【００３４】
ステップＳＴ４４では、制御部２はデータ消去するセクタ１ａの番号Ｓ＿ＥＲと最新データが記録されているセクタ１ａの番号Ｓ＿ＲＤとが一致（Ｓ＿ＥＲ＝Ｓ＿ＲＤ）するかについて判断し、両者が一致する場合（ステップＳＴ４４―Ｙｅｓ）は、Ｓ＿ＥＲ番目のセクタ１ａのデータを消去すると最新データが消失することを意味し、この最新データの消失を防止するためにステップＳＴ４２に戻って待機する。これに対し、両者が一致しない場合（ステップＳＴ４４―Ｎｏ）は、Ｓ＿ＥＲ番目セクタ１ａの全てのブロック１ｂにデータ記録が行われ、消去してもよいセクタとなるのでステップＳＴ４５へ進む。
ステップＳＴ４５では、制御部２はフラグ設定を行うセクタ１ａの番号を示す変数Ｎを「Ｓ＿ＥＲ＋１」とおく（N＝Ｓ＿ＥＲ＋１）。
ステップＳＴ４６では、制御部２はステップＳＴ４５の処理における変数Ｎがセクタ１ａの総数（本例では４セクタ）を越えているかについて判断し、セクタ１ａの総数を超えている場合（ステップＳＴ４６―Ｙｅｓ）は、ステップＳＴ４７へ進み、セクタ１ａの総数を超えていない場合（ステップＳＴ４６―Ｎｏ）は、ステップＳＴ４８へ進む。
【００３５】
ステップＳＴ４７では、制御部２は前記変数Ｎを1とおく（Ｎ＝１）。
ステップＳＴ４８では、制御部２はN番目のセクタ１ａの前セクタ消去状態管理領域１ｆのデータを「消去中」に設定する。
ステップＳＴ４９では、制御部２はフラッシュメモリ１に対しＳ＿ＥＲ番目のセクタ１ａの記録データを消去する。
ステップＳＴ５０では、制御部２はステップＳＴ４９のセクタ１ａの記録データ消去が完了したときには、Ｎ番目のセクタ１ａの前セクタ消去状態管理領域１ｆのデータを「消去済」に設定する。
ステップＳＴ５１では、次に消去を行うセクタはステップＳＴ４５でフラグ設定したセクタ１ａであるので、制御部２はＳ＿ＥＲをN（Ｓ＿ＥＲ＝N）とおき、ステップＳＴ４２へ戻って後続セクタの消去を続行する。この処理はデータ記録が開始されるまで繰り返される。
【００３６】
以上によれば、データの読み書きが行われていない空き時間を使って予めセクタ１ａの記録データの消去を行うことができるので（ＳＴ４３）、データ記録処理を高速に実施することができる。
また、消去対象となるセクタと論理的に接続される後続の他のセクタ１ａに属するブロック１ｂのデータ記録領域１ｃ、即ち、次の記録対象のセクタ１ａのデータ記録領域１ｃに情報データが記録されるまでは、前記消去対象となるセクタ１ａの記録データを消去しないので（ＳＴ４４）、必ず最新のデータを消失することなく残すことができる。
【００３７】
次に、最も古いデータが記録されているブロック１ｂの番号Ｂ＿ＯＬＤを算出する処理について図１２で説明する。
図１２は最も古いデータが記録されているブロック１ｂの番号Ｂ＿ＯＬＤの算出処理を示すフローチャート（サブルーチン）である。
この図１２のフローチャートは後述（図１３）の記録対象ブロック１ｂの番号Ｂ＿ＷＲおよび読み出し対象ブロック１ｂの番号Ｂ＿ＲＤを算出する処理の際に使用するサブルーチンの関係となる。
これら記録対象ブロック１ｂの番号Ｂ＿ＷＲおよび読み出し対象ブロック１ｂの番号Ｂ＿ＲＤを算出するためには、最も古いデータが記録されているブロック１ｂの番号Ｂ＿ＯＬＤを求める必要がある。
また、このブロックＢ＿ＯＬＤを求めるため、最も古いデータが記録されているセクタ１ａの番号Ｓ＿ＯＬＤを先に求め、次いでブロック１ｂの番号Ｂ＿ＯＬＤを算出する。
【００３８】
図１２において、ステップＳＴ６１では、制御部２は検索対象となるセクタ１ａの番号を格納する変数Ｎを１とおく（Ｎ＝１）。
ステップＳＴ６２では、制御部２はＮ＋１番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去中」であるかどうかを判断し、「消去中」である場合（ステップＳＴ６２―Ｙｅｓ）は、ステップＳＴ６３へ進み、「消去中」でない場合（ステップＳＴ６２―Ｎｏ）は、ステップＳＴ６４へ進む。
ステップＳＴ６３では、制御部２はＳ＿ＯＬＤをＮ＋１とおき（Ｓ＿ＯＬＤ＝Ｎ＋１）、ステップＳＴ７１へ進む。このように処理するのは、このセクタ１ａ内のデータは信頼できないことによる。
ステップＳＴ６４では、制御部２はＮ番目セクタ１ａの前セクタ消去状態管理領域１ｆが「消去済」であるかどうかを判断し、「消去済」でない場合（ステップＳＴ６４―Ｎｏ）は、ステップＳＴ６５へ進み、「消去済」である場合（ステップＳＴ６４―Ｙｅｓ）は、ステップＳＴ７０へ進む。
【００３９】
ステップＳＴ６５では、制御部２は次のセクタ１ａについて確認するためＮをＮ＋１とおく（Ｎ＝Ｎ＋１）。
ステップＳＴ６６では、制御部２はＮがセクタ１ａの総数と一致するかについて判断し、一致しない場合（ステップＳＴ６６―Ｎｏ）は、ステップＳＴ６２へ戻って確認を継続し、一致する場合（ステップＳＴ６６―Ｙｅｓ）は、Ｎ番目のセクタ１ａが物理的に最後のセクタであるためステップＳＴ６７へ進む。
ステップＳＴ６７では、制御部２は１番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去中」であるかどうかを判断し、「消去中」でない場合（ステップＳＴ６７―Ｎｏ）は、ステップＳＴ６８へ進み、「消去中」である場合（ステップＳＴ６７―Ｙｅｓ）は、ステップＳＴ６９へ進む。
ステップＳＴ６８では、制御部２はＮ番目のセクタ１ａの前セクタ消去状態管理領域１ｆが「消去済」であるかどうかを判断し、「消去済」でない場合（ステップＳＴ６８―Ｎｏ）は、ステップＳＴ６９へ進み、「消去済」である場合（ステップＳＴ６８―Ｙｅｓ）は、ステップＳＴ７０へ進む。
【００４０】
ステップＳＴ６９では、制御部２はＳ＿ＯＬＤを１とおき（Ｓ＿ＯＬＤ＝１）、ステップＳＴ７１へ進む。このように処理するのは、ステップＳＴ６７において「消去中」と判断されたこと（ステップＳＴ６７―Ｙｅｓ）、およびステップＳＴ６８において「消去済」でない場合（ステップＳＴ６８―Ｎｏ）は、どのセクタも消去されていないことを示すので、最も古いセクタは１であることによる。
ステップＳＴ７０では、制御部２はＳ＿ＯＬＤをＮとおき（Ｓ＿ＯＬＤ＝Ｎ）、ステップＳＴ７１へ進む。
ステップＳＴ７1では、ブロック内のデータ長であるＤＡＴＡ＿ＬＧＴＨを読み、ＢＬＫ＿ＬＧＴＨ＿Ｎ＝ＤＡＴＡ＿ＬＧＴＨ＋９とおく。
次にステップＳＴ７２では、セクタサイズとＢＬＫ＿ＬＧＴＨ＿Ｎとを比較し、セクタサイズの方が小さいときは、ステップＳＴ７３にてＢ＿ＯＬＤに１加算する。大きいときはステップＳＴ７４にてＳ＿ＯＬＤが１になったか比較し、１になっていないときはステップＳＴ７５にてＳ＿ＯＬＤに１を加算する。
以上の処理を実行することにより、最も古いブロックが記録されているＢ＿ＯＬＤが求まる。
【００４１】
次に、データ記録の対象となるブロック番号Ｂ＿ＷＲおよびデータ読出しの対象となるブロック番号Ｂ＿ＲＤを算出する処理について図１３で説明する。
図１３はデータ記録対象となるブロック番号Ｂ＿ＷＲおよびデータ読出対象となるブロック番号Ｂ＿ＲＤの算出処理を示すフローチャートである。
図１３において、ステップＳＴ８１では、制御部２は上記Ｂ＿ＷＲおよびＢ＿ＲＤの算出処理に必要であって、最も古いデータが記録されたブロック１ｂの番号Ｂ＿ＯＬＤを、前記図１２で説明したサブルーチンを呼び出し算出する。
ステップＳＴ８２では、制御部２はブロック状態管理領域１ｄを確認するブロック１ｂの番号を格納する変数ＮをＢ＿ＯＬＤとおき（Ｎ＝Ｂ＿ＯＬＤ）、また、Ｂ＿ＲＤを０とおいて（Ｂ＿ＲＤ＝０）初期化する。
【００４２】
ステップＳＴ８３では、制御部２はＮ番目ブロック１ｂのブロック状態管理領域１ｄの記録データが「記録済」、「記録中」または「未記録」のいずれの状態であるかを判断し、「記録済」であれば、Ｎ番目のブロック１ｂは読出し可能なデータが記録されているのでステップＳＴ８４進み、「記録中」であれば、記録データは正常なデータではないのでステップＳＴ８５進み、また、「未記録」であれば、Ｎ番目のブロック１ｂにデータを記録することが可能なのでステップＳＴ８９進む。
ステップＳＴ８４では、制御部２はＢ＿ＲＤをＮ（Ｂ＿ＲＤ＝Ｎ）とおき、ステップＳＴ６５へ進む。
ステップＳＴ８５では、制御部２は次のブロック１ｂのブロック状態管理領域１ｄを確認するため、ＮをＮ＋１とおく（Ｎ＝Ｎ＋１）。
【００４３】
ステップＳＴ８６では、制御部２はステップＳＴ８５で設定したＮが全ブロックの総数（本例では１６ブロック）を超えているかについて判断し、超えている場合（ステップＳＴ８６―Ｙｅｓ）は、ステップＳＴ８７へ進み、超えていない場合（ステップＳＴ８６―Ｎｏ）は、ステップＳＴ８８へ進む。
ステップＳＴ８７では、制御部２はＮを１とおく（Ｎ＝１）。
ステップＳＴ８８では、制御部２は、全てのブロック１ｂに対しステップＳＴ８３以降ステップＳＴ８７までの処理について検索を完了したかについて確認するためにＮとＢ＿ＯＬＤとが一致（Ｎ＝Ｂ＿ＯＬＤ）するかについて判断し、ＮとＢ＿ＯＬＤとが一致していない場合（ステップＳＴ８８―Ｎｏ）は、全てのブロック１ｂに対する検索が完了していないのでステップＳＴ８３へ戻って処理を継続し、一致している場合（ステップＳＴ８８―Ｙｅｓ）は、全てのブロック１ｂにデータが記録されていることを示す。この場合、ステップＳＴ８９へ進む。
ステップＳＴ８９では、制御部２はＢ＿ＷＲをＮとおき（Ｂ＿ＷＲ＝Ｎ）、この算出処理を終了する。
【００４４】
また、全てのブロック１ｂにおいて「記録中」または「記録済」の場合はＢ＿ＷＲがＢ＿ＯＬＤになるが、実際にデータ記録が行われるまでにセクタ１ａのデータ消去が行われることを想定し、データ記録時に処理を行う。このときのデータ記録処理は以下のように行う。
制御部２はセクタ１ａのデータ消去の処理中であれば、このデータ消去を中断する処理を行った後、記録を行うＢ＿ＷＲ番目のブロック１ｂのブロック状態管理領域１ｄが「未記録」であることを確認する。この確認において「未記録」であれば、制御部２は前記図７で説明したデータ記録の処理を行ない、「未記録」でなければデータを記録することが4できないので制御部２はエラーを出力し、このデータ記録の処理を終了する。
【００４５】
以上のように、この実施の形態１によれば、フラッシュメモリ１が有する複数のセクタ１ａそれぞれを複数のブロック１ｂに分割し、これら複数のセクタ全体に亘るブロック１ｂのデータ記録領域１ｃに対し環状の順序にてデータを記録し、記録データはセクタ１ａ内の全ブロック１ｂが記録済みとなった後にセクタ単位で一括消去するように構成したので、セクタ１ａより記憶容量の小さいブロック１ｂの単位で情報データを記録するとともに記録位置が環状の順序でずれていくこととなり、また、セクタ単位での記録データの一括消去により、セクタ１ａ当たりの消去回数に上限のある不揮発性メモリのセクタ当たりのデータ書換え可能回数を実質的に増加し、このデータ書換えの回数との関係においてデータ消去回数を実質的に減少する。これにより、フラッシュメモリ１の寿命を延ばすことができる。即ち、一つのセクタ内を分割数ｎのブロックに分割した場合、データ書換え回数は従来に比しｎ倍に増加し、データ消去の回数はデータ書換え回数との関係において１／ｎとなる。従って、図１のように、一つのセクタ１ａ（１）をブロック１ｂ（１）からブロック１ｂ（４）に４分割した場合、データ書換え回数は従来に比し４倍に増加し、データ消去の回数はデータ書換え回数との関係において１／４となる。
【００４６】
また、ブロック長管理領域１ｅを設け、この管理領域にデータ記録領域１ｃへ記録したデータ量をブロック長として記録するように構成したので（図７・ＳＴ３）、記録したデータ量が容易に検知でき、情報記録の精度を向上することができる。
また、ブロック状態管理領域１ｄを設け、この管理領域に「未記録」、「記録中」または「記録済み」等のデータ記録の状態を記録するように構成したので、更新データの記録が中断されたかどうか等のデータ記録の状態（信頼性）を検知することができ、情報記録の精度を向上することができる。
また、遷移状態（データ量）に対応させてブロック１ｂのデータ記録領域１ｃを大きくまたは小さくするように変更する構成としたので（図７・ＳＴ７）、必要なパラメータまたは情報のみを記録することとなり、データ記録領域１ｃに冗長な領域の発生を防止し、これにより、セクタ１ａ内のブロック１ｂの数の増加へつなげることができ、書換え回数の増加、この書換え回数との関係においてデータ消去回数の減少が可能となる。
【００４７】
また、データの読出しから記録までの間に記録データを一括消去するように構成したので（図１１・ＳＴ４３）、電源切断時に更新データを記録するシステムにおいて、フラッシュメモリ１の所要のブロック１ｂよりデータを読み出した後に前もってデータ消去が行われ、この結果、電源切断時のデータ消去が省略され、フラッシュメモリ１の所要のブロック１ｂに対し更新データの記録だけを実施すればよく、緊急時においても短い時間でデータ更新処理を実施することができ、データ処理の効率を改善することができる。
また、消去対象となるセクタと論理的に接続される後続の他のセクタ１ａに属するブロック１ｂのデータ記録領域１ｃに情報データが記録されるまでは前記消去対象となるセクタ１ａの記録データを消去しない、換言すれば、次のブロック１ｂのデータ記録領域１ｃに情報データが記録されてからセクタ消去を行うように構成したので（図１１・ＳＴ４４）、必ず最新のデータを消失することなく残すことができる。
【００４８】
また、ブロック状態管理領域１ｄおよび前セクタ消去状態管理領域１ｆそれぞれの記録データを基に、データ記録の対象となるブロック１ｂの位置（Ｂ＿ＷＲ）、データ読み出しの対象となるブロック１ｂの位置（Ｂ＿ＲＤ）および消去対象となるセクタ１ｆの位置（Ｓ＿ＥＲ）を算出するように構成したので（図９，１３）、装置への電力供給が完全に遮断された場合であっても、別途データ記録位置と読み出し位置およびセクタ消去位置を管理することなく、最新のデータ記録位置、読み出し位置およびセクタ消去位置を確実に特定することができる。
また、セクタ消去が中断された場合であっても必ず消去対象セクタ（Ｓ＿ＥＲ）を特定でき、また、データ記録が途中で中断された場合であっても、不完全なデータを読み出すことなく、最新の正常なデータを読み出すことが可能になる。
【図面の簡単な説明】
【００４９】
【図１】この発明の実施の形態１による情報記録読出装置の構成図である。
【図２】この発明の実施の形態１による情報記録読出装置におけるフラッシュメモリのブロック状態管理領域に記録されるデータとそのデータが示す状態の説明図である。
【図３】この発明の実施の形態１による情報記録読出装置におけるフラッシュメモリの前セクタ消去状態管理領域に記録されるデータとそのデータが示す状態の説明図である。
【図４】この発明の実施の形態１による情報記録読出装置におけるフラッシュメモリの各ブロックのデータ記録領域へ記録するデータに関する説明図である。
【図５】この発明の実施の形態１による情報記録読出装置におけるフラッシュメモリの各ブロック記録されるデータに関し、遷移状態における各再生対象の保持データの説明図であり、（ａ）は１層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏにおける保持データ、（ｂ）は２層ＤｉｓｃのＤＶＤ−Ｖｉｄｅｏにおける保持データ、（ｃ）は１層ＤｉｓｃのＤＶＤ−ＲＯＭにおける保持データ、（ｄ）は２層ＤｉｓｃのＤＶＤ−ＲＯＭにおける保持データ、（ｅ）はＣＤ＿ＤＡにおける保持データ、（ｆ）はＣＤ＿ＭＰ３における保持データの例をそれぞれ示す。
【図６】この発明の実施の形態１による情報記録読出装置におけるフラッシュメモリのブロックサイズ変更の説明図である。
【図７】この発明の実施の形態１による情報記録読出装置におけるデータ記録の処理を示すフローチャートである。
【図８】この発明の実施の形態１による情報記録読出装置におけるデータ読出しの処理を示すフローチャートである。
【図９】この発明の実施の形態１による情報記録読出装置におけるデータ消去の対象となるセクタの番号Ｓ＿ＥＲを検索する処理を示すフローチャートである。
【図１０】この発明の実施の形態１による情報記録読出装置における最新データが記録されているセクタの番号Ｓ＿ＲＤの算出処理を示すフローチャートである。
【図１１】この発明の実施の形態１による情報記録読出装置におけるデータ消去の処理を示すフローチャートである。
【図１２】この発明の実施の形態１による情報記録読出装置における最も古いデータが記録されているブロックの番号Ｂ＿ＯＬＤの算出処理を示すフローチャートである。
【図１３】この発明の実施の形態１による情報記録読出装置におけるデータ記録対象となるブロック番号Ｂ＿ＷＲおよびデータ読出対象となるブロック番号Ｂ＿ＲＤの算出処理を示すフローチャートである。
【符号の説明】
【００５０】
１  フラッシュメモリ、１ａ  セクタ、１ｂ  ブロック、１ｃ  データ記録領域、１ｄ  ブロック状態管理領域、１ｅ  ブロック長管理領域、１ｆ  前セクタ消去状態管理領域、２  制御部、３  インターフェース。
【図１】
2007164364.tif 000003
【図２】
2007164364.tif 000004
【図３】
2007164364.tif 000005
【図４】
2007164364.tif 000006
【図５】
2007164364.tif 000007
【図６】
2007164364.tif 000008
【図７】
2007164364.tif 000009
【図８】
2007164364.tif 000010
【図９】
2007164364.tif 000011
【図１０】
2007164364.tif 000012
【図１１】
2007164364.tif 000013
【図１２】
2007164364.tif 000014
【図１３】
2007164364.tif 000015