(57)【要約】【課題】ＦＡＴのような小ブロックのランダムライトが連続した場合にかかる時間の最大値を抑制する。【解決手段】ＦＡＴを構成するＮ個（Ｎは２以上の整数）のブロックに対して、夫々に（２＊Ｍ）ページから構成される２個の物理ブロックを割り当てる。そしてＦＡＴ更新の際には、ブロック管理手段１６はＮ個の論理ブロックに対してページ単位で、各ブロックのページ順に第１物理ブロック、第２の物理ブロックの順番に書き込む。ＦＡＴの論理アドレスにかかる書き込み回数が（Ｍ／Ｎ）回増加する毎に、ＦＡＴ部を構成するＮ個の論理ブロック番号順に、各論理ブロックの第２物理ブロックに書き込まれたページ数を検出し、ページ数が予め定められた基準ページ数より多い場合は、消去済みの新物理ブロックに集約する。これにより、ＦＡＴのような小ブロックの書き込み時間の最大値を抑制できる。【選択図】図４
2009282568.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、外部のホスト機器からのコマンドに基づいて前記不揮発性メモリにデータを書き込み又は読み出すメモリコントローラとを具備する半導体記録装置であって、
不揮発性メモリは、
消去の単位を物理ブロックとすると、複数の物理ブロックを有するものであり、各物理ブロックは２Ｍ個（Ｍは１以上の整数）のページから成り、
前記メモリコントローラは、
ホスト機器が発行する転送命令にかかる論理ブロックと前記不揮発性メモリの物理ブロックとを対応づけると共に、特定のＮ個（Ｎは２以上の整数）の論理ブロックには、夫々第１物理ブロックと第２物理ブロックの２個の物理ブロックを対応づける論物変換テーブルと、
前記特定論理ブロックに対して書き込みを行うときに前記第１物理ブロック、第２物理ブロックの順番で書き込むブロック管理手段と、
前記特定論理ブロックとそれに対応する（２＊Ｎ）個の物理ブロックにおいて、そのページに記録されている論理ブロックを構成する論理ページとの対応を管理するページ管理テーブルと、
前記特定論理ブロックにかかるライトコマンド数を論理ページ単位で計数する論理ページ計数手段と、
前記論理ページ計数手段により計数された書き込み済みの論理ページ数が所定の増加ページ数（Ｒ１ページ）を増加する毎に、前記特定論理ブロックを順番に１論理ブロック抽出し、前記ページ管理テーブルを参照にして、抽出した論理ブロックに対応する第２の物理ブロックに記録されているページ数を検出する記録ページ数検出手段と、
前記記録ページ数検出手段において検出された第２の物理ブロックのページ数が基準ページ数（Ｒ２ページ）を超えた場合には、消去された２つの物理ブロックを新規の第１，第２の物理ブロックとして確保し、前記ページ管理テーブルを参照にしながら、当該第１及び第２の物理ブロックに書き込まれている有効なデータを新規の第１の物理ブロックに集約する集約手段と、を備えた半導体記録装置。
【請求項２】
前記所定の増加ページ（Ｒ１ページ）は、（Ｍ／Ｎ）ページであり、
前記基準ページ（Ｒ２ページ）は、Ｍページである請求項１に記載の半導体記録装置。
【請求項３】
不揮発性メモリと、外部のホスト機器からのコマンドに基づいて前記不揮発性メモリにデータ及びファイルアロケーションテーブル（以下、ＦＡＴ）を書き込み又は読み出すメモリコントローラとを具備する半導体記録装置であって、
前記不揮発性メモリは、
消去の単位を物理ブロックとすると、複数の物理ブロックを有するものであり、各物理ブロックは２Ｍ個（Ｍは１以上の整数）のページから成り、
前記メモリコントローラは、
ホスト機器が発行する転送命令にかかる論理ブロックと前記不揮発性メモリの物理ブロックとを対応づけると共に、ＦＡＴを記録する特定のＮ個（Ｎは２以上の整数）の論理ブロックには、夫々第１物理ブロックと第２物理ブロックの２個の物理ブロックを対応づける論物変換テーブルと、
前記ＦＡＴを記録する論理ブロックに対してフォーマット時には前記第１物理ブロック、それ以降の書き込みには第２物理ブロックに書き込むブロック管理手段と、
前記ＦＡＴを記録する論理ブロックとそれに対応する（２＊Ｎ）個の物理ブロックにおいて、各物理ブロックの各ページと、そのページに記録されている論理ブロックを構成する論理ページとの対応を記録するページ管理テーブルと、
前記ＦＡＴのフォーマット後のライトコマンド数を論理ページ単位で計数する論理ページ計数手段と、
前記論理ページ計数手段により計数された書き込み済みの論理ページ数がＭ／Ｎページ数増加する毎に、前記ＦＡＴを記録するＮ個の論理ブロックから順番に１論理ブロック抽出し、前記ページ管理テーブルを参照にして、抽出した論理ブロックに対応する第２の物理ブロックに記録されているページ数を検出する記録ページ数検出手段と、
前記記録ページ数検出手段において検出された第２の物理ブロックのページ数がＭページを超えた場合には、消去された２つの物理ブロックを新規の第１，第２の物理ブロックとして確保し、前記ページ管理テーブルを参照にしながら、当該第１及び第２の物理ブロックに書き込まれている有効なデータを新規の第１の物理ブロックに集約する集約手段と、を備えた半導体記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードなどの半導体記録装置に関し、特にファイルシステムの書き込み速度を保証する技術に関する。
【背景技術】
【０００２】
従来、フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード等の半導体記録装置は、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。
【０００３】
この半導体記録装置に内蔵されているフラッシュメモリは、一定サイズの多数の物理ブロックから成り、物理ブロックの単位でデータを消去し書き換えを行うメモリである。各物理ブロックは複数個のページによって構成され、書き込みの際にはページの番号順にのみ書き込めるが、消去は物理ブロックを構成する全ページの消去となる。
【０００４】
一方、メモリカードのファイルシステムはファイルアロケーションテーブル（以下、ＦＡＴという）が多く使用されている。ＦＡＴは小ブロックのランダムな書き込みを前提としたファイルシステムである。よって、フラッシュメモリにおいては、論理ブロックのページ単位での書き換えが多々発生することになる。論理ブロックの一部のデータを書き換える処理は以下のようになる。
（１）消去済みの新物理ブロックの確保
（２）確保した新物理ブロックへ、更新するデータをページ単位で書き込み
（３）旧物理ブロックのデータを新物理ブロックへ移動
（４）旧物理ブロックの消去
【０００５】
例えば、フラッシュメモリの物理ブロックのサイズを２５６ｋバイト（以下、単にＢという）とし、夫々の物理ブロックが６４ページによって構成されているものとする。このときページのサイズは４ｋＢとなる。さて１ページ分の４ｋＢ分のＦＡＴを更新するにあたり、このアルゴリズムを適用すると、６３ページ分のリードとライトが発生することになる。この手法は、ＦＡＴ部の書き換え速度の劣化、書き換え回数の増加によるメモリ寿命の低下の点から好ましくない。
【０００６】
そこで特許文献１では、ＦＡＴ部に相当する論理ブロックに対して、複数個の物理ブロックを用意しておき、ＦＡＴの論理アドレスのデータを書き換える際、複数の物理ブロックに順次書き込んでいくことにより、書き換え速度の劣化やメモリ寿命の低下といった課題を抑制している。
【０００７】
以下、特許文献１のアルゴリズムについて説明する。ここでは５１２ｋＢのＦＡＴの論理アドレス領域に対して１ＭＢの物理アドレスを割当てて、ＦＡＴを更新していくものとする。ＦＡＴ領域は５１２ｋＢなので、ＦＡＴ領域にかかる論理アドレス２５６ｋＢずつに２分割し、前半のＦＡＴ領域をＦＡＴ０、後半のＦＡＴ領域をＦＡＴ１とする。これはフラッシュメモリの物理ブロックサイズに対応させたものであり、分割したＦＡＴ０及びＦＡＴ１には、夫々２個の物理ブロックを割り当てる。
【０００８】
ＦＡＴ領域に対する書き込みや更新は、フォーマット時の全領域の書き込みと所定の間隔のＦＡＴの更新に分類される。
【０００９】
図１は、従来のＦＡＴを書き込んだ物理ブロックの説明図であり、図１（ａ）は、フォーマット直後の物理ブロックの状態、図１（ｂ）は１６回のＦＡＴを更新した後の物理ブロックの状態、図１（ｃ）は３２回のＦＡＴを更新した後の物理ブロックの状態を示す。図１（ｄ）は７３回ＦＡＴ更新後の物理ブロックの状態を示す図で、図１（ｅ）は７４回目のＦＡＴ更新がＦＡＴ０に発生した場合の物理ブロックの状態を示す。
【００１０】
まずＦＡＴ０に割当てられた２個の物理ブロックをＰＢ０，ＰＢ１とし、ＦＡＴ１に割り当てられた２個の物理ブロックをＰＢ１０，ＰＢ１１とする。フォーマット時は、図１（ａ）に示すように、夫々片方の物理ブロックＰＢ０，ＰＢ１０の全ページにＦＡＴが書き込まれる。尚ハッチングは書き込み済みを示す。
【００１１】
図１（ｂ）は、前半のＦＡＴ領域（ＦＡＴ０）に対応するＦＡＴの更新が１３回、後半のＦＡＴ領域（ＦＡＴ１）に対応するＦＡＴの更新が３回発生した状態である。この場合は、物理ブロックＰＢ１及びＰＢ１１にＦＡＴがページ単位で書き込まれるため、ＦＡＴの１回の更新にかかる時間は、単位ページの書き込み時間だけである。
【００１２】
図１（ｃ）は、さらに前半のＦＡＴ領域（ＦＡＴ０）に対応するＦＡＴの更新が１０回、後半のＦＡＴ領域（ＦＡＴ１）に対応するＦＡＴの更新が６回発生した状態である。これはフォーマット直後からは合計３２回のＦＡＴ更新となる。
【００１３】
図１（ｄ）は、図１（ｃ）の状態から、連続して４１回前半のＦＡＴ領域（ＦＡＴ０）の更新が発生した場合を示す。この場合はＦＡＴ０に割り当てられた２個の物理ブロックＰＢ０，ＰＢ１は、共に全６４ページが書き込み済みになっている。
【００１４】
図１（ｅ）は図１（ｄ）の状態から、前半のＦＡＴ領域（ＦＡＴ０）に更新があった場合である。ＦＡＴ０に割り当てられた２個の物理ブロックＰＢ０，ＰＢ１の全ページは書き込み済みであるので、新しい物理ブロックを２個確保する。新物理ブロックを例えば物理ブロックＰＢ２０，ＰＢ２１とする。そして、２個の旧物理ブロックＰＢ０，ＰＢ１に書き込まれているＦＡＴ０のデータを、論理アドレスの順番に、新規に確保した物理ブロックＰＢ２０に集約する。同一論理アドレスにかかるデータが２個の旧物理ブロックの複数のページに書き込まれている場合は、後で書き込まれたデータを新物理ブロックＰＢ２０にコピーする。そして、新たに発生した７４回目のＦＡＴ更新によるデータは、新たに確保した他方の物理ブロックＰＢ２１の最初のページに書き込む。
【００１５】
このように、ＦＡＴ領域に複数の物理ブロックを割当て、複数の物理ブロックが共に書き込み済みになるまでＦＡＴにかかるデータを書き込む。こうすれば、ＦＡＴ領域への書き込みが発生する毎に、新物理ブロックを確保して以前に書き込んでいた旧物理ブロックのデータをコピーすることが不要になるため、書き換え速度の劣化やメモリ寿命の低下を抑制することができる。
【特許文献１】特開２００６−４０２６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところでカメラレコーダ等の記録媒体にメモリカードを用いた場合、電源断等における記録データ破損の影響を小さくするために、ＦＡＴの更新を数秒毎に実施している。
【００１７】
カメラレコーダで撮影映像信号の１秒当たり入力レートをＡ［ＭＢ／ｓｅｃ］、ＦＡＴの更新間隔を２秒、２秒毎に更新するＦＡＴのデータ量をＢ［ＭＢ］、ＦＡＴデータとしてＢ［ＭＢ］の記録時間の最大値をＣ［ｓｅｃ］とした場合について考察する。
【００１８】
まず記録レートについて考察する。映像信号データの記録は連続アドレスの記録、ＦＡＴ部の記録がランダムアクセスの記録となるため、映像信号データの記録レートとＦＡＴ部の記録レートを別々に考察する。
【００１９】
ＦＡＴが記録されている間は映像信号の記録はできないため、本システムの場合の映像信号の記録レートＲａｔｅ１は次式（１）を満たすことが必要である。
Ｒａｔｅ１≧２Ａ／（２−Ｃ）  ・・・（１）
また、ＦＡＴ部の記録レートＲａｔｅ２は次式（２）を満たすことが必要になる。
Ｒａｔｅ２≧Ｂ／Ｃ  ・・・（２）
【００２０】
次に、映像信号を一時記録しておくバッファ量について説明する。上述したように、ＦＡＴの記録中は映像信号を記録することはできないため、映像信号を一時記録するバッファーメモリが必要となる。バッファーメモリの容量ＢＵＦの最小値は、（映像信号の入力レート）＊（ＦＡＴの記録にかかる時間の最大値）となり、次式（３）を満たすことが必要となる。
ＢＵＦ≧Ａ＊Ｃ  ・・・（３）
【００２１】
ここで、ＦＡＴの記録にかかる時間の最大値について考察する。４ＧＢのメモリカードにおいてクラスタサイズを３２ｋＢとすると、１２８Ｋ個のクラスタが割り当てられる。１クラスタに必要なＦＡＴのデータ量は４Ｂであるので、ＦＡＴに必要とされるデータ量は５１２ｋＢとなる。
【００２２】
また、記録レートの保証値が４ＭＢ／ｓｅｃのメモリカードを使用した場合、２秒間に記録できる最大データ量は８ＭＢなので、更新することができる最大クラスタ数は２５６クラスタとなる。ここで、２５６クラスタ分に相当するＦＡＴのデータ量は１ｋＢである。映像信号は連続アドレスに記録するので、上記の２５６個のクラスタは連続するクラスタになる。
【００２３】
一方、フラッシュメモリのページは４ｋＢであり、更新する２５６個のクラスタのための１ｋＢのＦＡＴデータは、最大２個のページに分散されて記録される。
【００２４】
連続するクラスタが記録されるページは、更新するＦＡＴの論理アドレスにより、以下に示す２パターンに分類される。
（パターン１）更新するＦＡＴが共にＦＡＴ０またはＦＡＴ１の場合
（パターン２）更新するＦＡＴがＦＡＴ０とＦＡＴ１の場合
さらに、記録する物理ブロックの未記録ページの状態により各パターンは、以下のように分類される。これらのパターンの詳細を図２に示す。
【００２５】
（パターン１−１）  図２（ａ）に示すように、更新するＦＡＴの論理アドレスが共にＦＡＴ０またはＦＡＴ１であって、ＦＡＴ更新対象の論理アドレスに対応する物理ブロックの未記録ページ数が最低２ページ分以上である場合。
（パターン１−２）  図２（ｂ）に示すように、更新するＦＡＴの論理アドレスが共にＦＡＴ０またはＦＡＴ１であって、ＦＡＴ更新対象の論理アドレスに対応する物理ブロックの未記録ページ数が１ページ以下の場合。
（パターン２−１）  図２（ｃ）に示すように、更新するＦＡＴの論理アドレスがＦＡＴ０とＦＡＴ１であって、ＦＡＴ０とＦＡＴ１に対応する夫々の物理ブロックの未記録ページが共に１ページ以上である場合。
（パターン２−２）  図２（ｄ）に示すように、更新するＦＡＴの論理アドレスがＦＡＴ０とＦＡＴ１であって、ＦＡＴ０とＦＡＴ１に対応するどちらかの物理ブロックの未記録ページが存在しない場合。
（パターン２−３）  図２（ｅ）に示すように、更新するＦＡＴの論理アドレスがＦＡＴ０とＦＡＴ１であって、ＦＡＴ０とＦＡＴ１に対応する双方の物理ブロックの未記録ページが存在しない場合。
【００２６】
図３にＦＡＴを更新した後の物理ブロックの状態を示す。図３において、黒く塗りつぶした箇所はＦＡＴの更新ページである。また斜線部は図２と同一の書き込み状態、縦線部は図２に示す斜線部のデータをコピーした新物理ブロックであることを示す。図３（ａ），（ｂ）は夫々図２（ａ），（ｂ）の状態からＦＡＴ０の最初の８ｋＢが更新された後の状態を示す。また図３（ｃ），（ｄ），（ｅ）は、図２の（ｃ），（ｄ），（ｅ）の状態から、ＦＡＴ０の最終の４ｋＢとＦＡＴ１の最初の４ｋＢが更新された後の状態である。以下図３の各パターンについて説明する。
【００２７】
図３（ａ）はＦＡＴ０に対応する物理ブロックに未記録ページが２ページ以上あるので、順番に２ページ分更新したＦＡＴデータを書き込んでいる。よって、ＦＡＴの更新にかかる時間は２ページの記録時間になる。
【００２８】
図２（ｂ）では、ＦＡＴ０に対応する物理ブロックＰＢ１の未記録ページは１ページしかない。よって、最初の１ページを物理ブロックＰＢ１に追記する。この状態でＦＡＴ０に割り当てられた２個の物理ブロックＰＢ０，ＰＢ１は全ページ記録済みとなる。よって次の１ページを更新する場合は、図３（ｂ）に示すように新規物理ブロックＰＢ２０，ＰＢ２１を確保し、物理ブロックＰＢ０，ＰＢ１のデータを新規物理ブロックＰＢ２０にコピーする。書き込み済みデータ、更新データの論理アドレスが重複している場合は、時間軸の遅いデータを選択して新規物理ブロックＰＢ２０に書き込む。よって、ＦＡＴの更新にかかる時間は、６５ページの記録時間と２物理ブロックの消去時間の和になる。
【００２９】
図２（ｃ）はＦＡＴ０及びＦＡＴ１に対応する夫々の物理ブロックＰＢ１，ＰＢ１１に未記録ページが１ページ以上ある。従って図３（ｃ）に示すように、ＦＡＴ０にかかる物理ブロックＰＢ１に１ページ追記し、ＦＡＴ１にかかる物理ブロックＰＢ１１に１ページ追記する。こうすれば、ＦＡＴの更新にかかる時間は２ページの記録時間になる。
【００３０】
図２（ｄ）は、ＦＡＴ１に対応する物理ブロックＰＢ１１に未記録ページは存在しているが、ＦＡＴ０に対応する物理ブロックＰＢ０，ＰＢ１に未記録ページは存在しない。よって、ＦＡＴ０にかかる１ページを更新する場合は、図３（ｄ）に示すように新規物理ブロックＰＢ２０，ＰＢ２１を確保し、物理ブロックＰＢ０，ＰＢ１のデータを新規物理ブロックＰＢ２０にコピーする。書き込み済みデータ、更新データの論理アドレスが重複している場合は、時間軸の遅いデータを選択して新規物理ブロックＰＢ２０に書き込む。また、ＦＡＴ１に対応するデータは、既存の物理ブロックＰＢ１１の未記録ページに書き込めばよい。以上より、ＦＡＴの更新にかかる時間は、６５ページの記録時間と２物理ブロックの消去時間の和になる。
【００３１】
図２（ｅ）は、ＦＡＴ０及びＦＡＴ１に対応する物理ブロックＰＢ０，ＰＢ１及びＰＢ１０，ＰＢ１１には、共に未記録ページは存在しない。よって、ＦＡＴ０にかかる１ページを更新する場合は、図３（ｅ）に示すように新規物理ブロックＰＢ２０，ＰＢ２１を確保し、物理ブロックＰＢ０，ＰＢ１のデータを新規物理ブロックにコピーする。書き込み済みデータ、更新データの論理アドレスが重複している場合は、時間軸の遅いデータを選択して新規物理ブロックに書き込む。ＦＡＴ１に対応するデータの更新も同様に新規物理ブロックＰＢ３０，ＰＢ３１を確保し、そのうち物理ブロックＰＢ３０に集約して書き込む。よって、ＦＡＴの更新にかかる時間は、１２８ページの記録時間と４物理ブロックの消去時間の和になる。
【００３２】
以上説明したように、ＦＡＴの更新にかかる時間は、２ページの書き込みの場合から、１２８ページの書き込みと４物理ブロックの消去の合計時間の場合まであり、非常にバラツキが大きい。
【００３３】
ホスト側にバッファとして必要なデータ容量も、ＦＡＴ更新にかかる時間の最大値が必要となる。例えば、１ページの記録時間を０．８ｍｓ、１物理ブロックの消去時間を２ｍｓとすると、最悪の場合は約９ｍｓ（＝１２８＊０．８＋８）となる。入力レート３ＭＢ／ｓの映像信号を記録するには、２７ＭＢの容量を持つバッファが必要となる。
【００３４】
本発明は、上記問題を解決するものであり、ＦＡＴのような小ブロックのランダムライトが連続した場合にかかる時間の最大値を抑制するとともに、比較的高速に書き込みができる半導体記録装置を提供することを目的とする。
【課題を解決するための手段】
【００３５】
この課題を解決するために、本発明の半導体記録装置は、不揮発性メモリと、外部のホスト機器からのコマンドに基づいて前記不揮発性メモリにデータを書き込み又は読み出すメモリコントローラとを具備する半導体記録装置であって、不揮発性メモリは、消去の単位を物理ブロックとすると、複数の物理ブロックを有するものであり、各物理ブロックは２Ｍ個（Ｍは１以上の整数）のページから成り、前記メモリコントローラは、ホスト機器が発行する転送命令にかかる論理ブロックと前記不揮発性メモリの物理ブロックとを対応づけると共に、特定のＮ個（Ｎは２以上の整数）の論理ブロックには、夫々第１物理ブロックと第２物理ブロックの２個の物理ブロックを対応づける論物変換テーブルと、前記特定論理ブロックに対して書き込みを行うときに前記第１物理ブロック、第２物理ブロックの順番で書き込むブロック管理手段と、前記特定論理ブロックとそれに対応する（２＊Ｎ）個の物理ブロックにおいて、そのページに記録されている論理ブロックを構成する論理ページとの対応を管理するページ管理テーブルと、前記特定論理ブロックにかかるライトコマンド数を論理ページ単位で計数する論理ページ計数手段と、前記論理ページ計数手段により計数された書き込み済みの論理ページ数が所定の増加ページ数（Ｒ１ページ）を増加する毎に、前記特定論理ブロックを順番に１論理ブロック抽出し、前記ページ管理テーブルを参照にして、抽出した論理ブロックに対応する第２の物理ブロックに記録されているページ数を検出する記録ページ数検出手段と、前記記録ページ数検出手段において検出された第２の物理ブロックのページ数が基準ページ数（Ｒ２ページ）を超えた場合には、消去された２つの物理ブロックを新規の第１，第２の物理ブロックとして確保し、前記ページ管理テーブルを参照にしながら、当該第１及び第２の物理ブロックに書き込まれている有効なデータを新規の第１の物理ブロックに集約する集約手段と、を備えたものである。
【００３６】
ここで前記所定の増加ページ（Ｒ１ページ）は（Ｍ／Ｎ）ページであり、前記基準ページ（Ｒ２ページ）は、Ｍページとしてもよい。
【００３７】
この課題を解決するために、本発明の半導体記録装置は、不揮発性メモリと、外部のホスト機器からのコマンドに基づいて前記不揮発性メモリにデータ及びファイルアロケーションテーブル（以下、ＦＡＴ）を書き込み又は読み出すメモリコントローラとを具備する半導体記録装置であって、前記不揮発性メモリは、消去の単位を物理ブロックとすると、複数の物理ブロックを有するものであり、各物理ブロックは２Ｍ個（Ｍは１以上の整数）のページから成り、前記メモリコントローラは、ホスト機器が発行する転送命令にかかる論理ブロックと前記不揮発性メモリの物理ブロックとを対応づけると共に、ＦＡＴを記録する特定のＮ個（Ｎは２以上の整数）の論理ブロックには、夫々第１物理ブロックと第２物理ブロックの２個の物理ブロックを対応づける論物変換テーブルと、前記ＦＡＴを記録する論理ブロックに対してフォーマット時には前記第１物理ブロック、それ以降の書き込みには第２物理ブロックに書き込むブロック管理手段と、前記ＦＡＴを記録する論理ブロックとそれに対応する（２＊Ｎ）個の物理ブロックにおいて、各物理ブロックの各ページと、そのページに記録されている論理ブロックを構成する論理ページとの対応を記録するページ管理テーブルと、前記ＦＡＴのフォーマット後のライトコマンド数を論理ページ単位で計数する論理ページ計数手段と、前記論理ページ計数手段により計数された書き込み済みの論理ページ数がＭ／Ｎページ数増加する毎に、前記ＦＡＴを記録するＮ個の論理ブロックから順番に１論理ブロック抽出し、前記ページ管理テーブルを参照にして、抽出した論理ブロックに対応する第２の物理ブロックに記録されているページ数を検出する記録ページ数検出手段と、前記記録ページ数検出手段において検出された第２の物理ブロックのページ数がＭページを超えた場合には、消去された２つの物理ブロックを新規の第１，第２の物理ブロックとして確保し、前記ページ管理テーブルを参照にしながら、当該第１及び第２の物理ブロックに書き込まれている有効なデータを新規の第１の物理ブロックに集約する集約手段と、を備えたものである。
【発明の効果】
【００３８】
本発明によれば、特定論理ブロックに対応する物理ブロックの書き込みページ数が所定のページ数増加（Ｒ１）する毎に、対象とする１論理ブロックの第２の物理ブロックに書き込まれているページ数が基準ページ数（Ｒ２）を超えた場合にのみ、当該論理ブロックを構成する２個の物理ブロックのデータを消去済み物理ブロックに集約させる。よって、２個の物理ブロックのデータを消去済み物理ブロックに集約させる動作が集中して発生することを防止できる。従ってＦＡＴのような小ブロックの書き込みにかかる時間の最大値を抑制することができる。またＦＡＴ更新に備えて、ホスト機器にデータを一時記録するバッファーメモリ容量を小さくすることができる。また、ＦＡＴの更新速度をＲ１回のライト時間の総和で定義すれば、より高速なＦＡＴ更新速度を保証することができるという効果が得られる。
【発明を実施するための最良の形態】
【００３９】
図４に本発明による半導体記録装置の実施の形態の構成図を示す。本実施の形態において半導体記録装置をメモリカードとする。メモリカードはメモリコントローラ１０及び不揮発性のフラッシュメモリ３０によって構成される。
【００４０】
次にフラッシュメモリ３０について詳細に説明する。図５はフラッシュメモリ３０の領域マップであり、図６は１つの物理ブロックの構成図を示す。フラッシュメモリ３０は例えば４ＧＢの容量を持つものとし、Ａ個（Ａは自然数）の物理ブロックより構成されている。物理ブロックはデータ消去の単位であり、ここでは２５６ｋＢの容量とする。本実施の形態では、Ａ個の物理ブロックに対してＰＢ０〜ＰＢ（Ａ−１）の物理ブロック番号を付している。
【００４１】
そして、物理ブロック番号ＰＢ０〜ＰＢ（Ｂ−１）（Ｂは、Ｂ＜Ａを満たす自然数）のＢ個の物理ブロックをフラッシュメモリ３０の第１領域３１−１、物理ブロック番号Ｂ〜（Ａ−１）の（Ａ−Ｂ）個の物理ブロックをフラッシュメモリ３０の第２領域３１−２とする。第１領域３１−１は、ホストから転送されるユーザデータ（ＦＡＴ等のファイルシステムを含む）を記録する領域である。また第２領域３１−２は後述するように論物変換テーブル１３、ページ管理テーブル１４等のシステムデータを記録する領域である。
【００４２】
また論理ブロック番号ＬＢは０〜（Ｂ−ｍ）（ｍ＞１）とする。論理ブロックに対応するメモリの第１領域の物理ブロック数を論理ブロック数より多く割り当てる。これにより、書き込み済みの論理ブロックを書き換える場合において、論物変換テーブル１３を用いて当該論理ブロックに対応して書き込まれている物理ブロックとは別の物理ブロックに書き込むことが可能となる。よって、ホスト機器から同一の論理ブロックに集中してライトコマンドが発行された場合においても、書き換えが同一の物理ブロックに集中することを防止している。
【００４３】
また、各物理ブロックは図６に示すように、ｎ個（ｎは自然数）のページによって構成され、各ページには０〜（ｎ−１）のページ番号ＰＮが付される。物理ブロックのページは書き込みの単位であり、ここではｎを例えば６４とする。データサイズが１ページに相当する場合は、同一物理ブロックに６４回データを書き込むことができる。
【００４４】
次にこのメモリコントローラ１０の詳細について図４を用いて説明する。メモリコントローラ１０において、外部インターフェイス１１はホスト機器からのコマンド受信及びデータの転送を行うものである。
【００４５】
コマンド解析手段１２は外部インターフェイス１１によって受信されたコマンドを解析するものである。
【００４６】
論物変換テーブル１３は、ホストから発行される論理アドレス番号とフラッシュメモリ３０に書き込まれている物理アドレス番号との対応を示すテーブルである。このテーブルはフラッシュメモリ３０の第２領域３１−２にも書き込まれる。本実施の形態では、ＦＡＴのランダムな高頻度の書き込みに対応するため、ＦＡＴを記録するための論理ブロック１個について、２個の物理ブロックを割り当ててフラッシュメモリを管理している。
【００４７】
図７に、論物変換テーブル１３の一例を示す。４ＧＢのメモリカードの場合、ＦＡＴにかかる容量は５１２ｋＢであるので、前半のＦＡＴ領域（ＦＡＴ０）に２５６ｋＢ、後半のＦＡＴ領域（ＦＡＴ１）に２５６ｋＢを割当てる。具体的には、論理ブロック番号ＬＢ１をＦＡＴ０、論理ブロック番号ＬＢ２をＦＡＴ１とし、論理ブロック番号ＬＢ１，ＬＢ２には、夫々２個の物理ブロックを割り当てる。図７では、論理ブロック番号１を区別するためＬＢ１（１）、ＬＢ１（２）で示している。論理ブロック番号２を区別するため同様にＬＢ２（１）、ＬＢ２（２）で示している。
【００４８】
また図７では、論理ブロック番号ＬＢ０は物理ブロックＰＢ３に、論理ブロック番号ＬＢ１（１），ＬＢ１（２）の論理ブロック（ＦＡＴ０）は物理ブロックＰＢ４，ＰＢ６にマッピングされている。論理ブロック番号ＬＢ２（１），ＬＢ２（２）のブロック（ＦＡＴ１）は物理ブロックＰＢ５，ＰＢ７にマッピングされている。また論理ブロック番号ＬＢＪ，ＬＢ（Ｊ＋１）の論理ブロックは、データが書かれていないことを示している。ブロック番号は０〜Ａ−１が有効値なので、Ａを書き込むことにより、無効であることを示す。
【００４９】
図８にページ管理テーブル１４の一例を示す。ページ管理テーブル１４は、ＦＡＴを構成する各論理ブロックにアサインされた２個の物理ブロックの各物理ページとその物理ページに書き込まれている論理ページとの対応を示すテーブルである。以下では、２個の物理ブロックを第１物理ブロックＰＢ−Ｆと第２物理ブロックＰＢ−Ｓとする。
【００５０】
ページ管理テーブル１４は、フラッシュメモリ３０の第２領域３１−２にページ管理テーブル用の物理ブロックとして割り当てられ、ＦＡＴを更新する毎にその物理ブロックのページに追記していく。
【００５１】
本実施の形態のＦＡＴ部は５１２ｋＢであり、ＦＡＴ０，ＦＡＴ１を構成する論理ページ数は物理ブロックのページ数と一致し、夫々６４ページからなる。
【００５２】
ページ管理テーブル１４のＫ番目のワード（０≦Ｋ≦６３）には、ＦＡＴ０の第１物理ブロックのＫページに書き込まれているＦＡＴ０の論理ページ番号を格納する。
【００５３】
また、ページ管理テーブル１４のＫ番目のワード（６４≦Ｋ≦１２７）には、ＦＡＴ０の第２物理ブロックの（Ｋ−６４）ページに書き込まれているＦＡＴ０の論理ページ番号を格納する。
【００５４】
同様に、ページ管理テーブル１４のＫ番目のワード（１２８≦Ｋ≦１９１）には、ＦＡＴ１の第１物理ブロックの（Ｋ−１２８）ページに書き込まれているＦＡＴ１の論理ページ番号を格納する。
【００５５】
また、ページ管理テーブル１４のＫ番目のワード（１９２≦Ｋ≦２５５）には、ＦＡＴ１の第２物理ブロックの（Ｋ−１９２）ページに書き込まれているＦＡＴ１の論理ページ番号を格納する。
【００５６】
そして、ＦＡＴ０を構成する論理セクタ番号は５１２〜１０２３であり、各論理ページは４ｋＢからなるので、各論理ページには８セクタ割り当てられる。よって、ＦＡＴ０の論理ページ０には５１２番〜５１９番のセクタが、ＦＡＴ０の論理ページ１には５２０番〜５２７番のセクタ、ＦＡＴ０の論理ページ６３には１０１６〜１０２３番のセクタが割り当てられる。同様に、ＦＡＴ１の論理ページ０には１０２４番〜１０３１番のセクタが、ＦＡＴ１の論理ページ１には１０３２番〜１０３９番のセクタ、ＦＡＴ１の論理ページ６３には１５２８番〜１５３５番のセクタが割り当てられる。
【００５７】
ブロック管理テーブル１５は、各物理ブロックが、消去可能であるかどうかを登録するものである。ブロック管理テーブル１５は特にフラッシュメモリ３０に書き込む必要はない。電源投入時に論物変換テーブル１３を読み取り、フラッシュメモリ３０の全物理ブロックについて、論物変換テーブル１３に登録されているブロックを「０」、そうでないブロックを「１」のように登録して作成する。この場合に「１」と登録されたフラッシュメモリの第１領域３１−１の物理ブロックが消去可能ブロックとなる。
【００５８】
ブロック管理手段１６は、ホストよりライトコマンドが発行された場合、ブロック管理テーブル１５を参照して新物理ブロックを抽出し、抽出された物理ブロックにデータを書き込み、データを書き込んだ物理ブロック番号とホストから発行された論理ブロック番号の対応関係を論物変換テーブル１３に登録するものである。
【００５９】
論理ページ数計数手段１７は、ここではＦＡＴブロックを保持する４つの物理ブロックへのライトコマンド数をＦＡＴ更新回数Ｔとして論理ページ単位で計数するものである。詳細については後述する。
【００６０】
記録ページ数検出手段１８は、論理ページ計数手段１７により計数されたＦＡＴ更新回数Ｔが所定のページ数増加（Ｒ１ページ）する毎に、ＦＡＴ部の論理ブロックを順番に１論理ブロック抽出し、ページ管理テーブル１４を参照にして、抽出した論理ブロックに対応する第２物理ブロックＰＢ−Ｓに記録されているページ数を検出するものである。本実施の形態では、記録ページ数検出手段１８はＦＡＴ更新回数Ｔが１６増加する毎に第２物理ブロックの書き込み済みページ数を検出している。
【００６１】
集約手段１９は、記録ページ数検出手段１８において検出された第２物理ブロックのページ数が基準ページ数（Ｒ２ページ）を超えた場合には、消去可能な２個の新規物理ブロック（第１，第２物理ブロック）を確保し、ページ管理テーブル１４を参照にしながら、後述するルールに基づいて当該第１及び第２の物理ブロックに書き込まれているデータを新規の第１物理ブロックに集約するものである。本実施の形態では集約手段１９の基準ページ数Ｒ２は物理ブロックのページ数の１／２、即ち３２とする。
【００６２】
フラッシュ制御手段２０は、フラッシュメモリ３０へのデータの書き込み及びフラッシュメモリ３０からのデータの読み出しを行うものである。
【００６３】
次に本実施の形態による半導体記録装置の動作、特にＦＡＴデータの更新と集約処理について説明する。ＦＡＴデータの更新と集約は以下のルールに従って行われる。
（ルール０）ＦＡＴ０には、２個の物理ブロックが割り当てられる。これを第１物理ブロックＰＢ−Ｆと第２物理ブロックＰＢ−Ｓとする。ＦＡＴ１についても、２個の物理ブロックが割り当てられる。これを第１物理ブロックＰＢ−Ｆと第２物理ブロックＰＢ−Ｓとする。これらは夫々独立して管理される。
（ルール１）同一論理ページ番号が複数の物理ページに割り当てられている場合は、第２物理ブロックが優先される。
（ルール２）同一論理ページ番号が同一物理ブロックの複数の物理ページに割り当てられている場合は、大きい物理ページ番号に格納されている論理ページが優先される。
【００６４】
本実施の形態では、ＦＡＴの更新に以下のルールを追加している。
（ルール３）論理フォーマット直後では、ＦＡＴ０とＦＡＴ１は共に第１物理ブロックのみに割り当てられている状態であり、これを初期状態とする。このときのＦＡＴ更新回数Ｔを０とする。
（ルール４）ＦＡＴを更新すると、ＦＡＴ更新回数Ｔをインクリメントする。
（ルール５−１）Ｔ％３２が１６の状態の次のＦＡＴの更新をＦＡＴ０の新物理ブロックへの更新可能タイミングとする。
（ルール５−２）Ｔ％３２が０の状態の次のＦＡの更新をＦＡＴ１の新物理ブロックへの更新可能タイミングとする。
（ルール６−１）ルール５−１の更新タイミングにおいて、ＦＡＴ０の第２物理ブロックに書き込まれているページ数が３２ページより多い場合に、新物理ブロックへの更新を行う。
（ルール６−２）ルール５−２の更新タイミングにおいて、ＦＡＴ１の第２物理ブロックに書き込まれているページ数が３２ページより多い場合に、新物理ブロックへの更新を行う。
（ルール７）新物理ブロックへの更新時には第１物理ブロックと第２物理ブロックを確保し、書き込み済みの第１，第２物理ブロックに書き込まれているＦＡＴデータを、新規に確保した第１物理ブロックにコピーする。
（ルール８）新物理ブロックへの更新後のＦＡＴデータは、新第２の物理ブロックに書き込む。
【００６５】
ＦＡＴを更新する場合の動作は、ページ管理テーブル１４を参照して、ＦＡＴブロックに割り当てられた物理ブロックのページの状態を検出し、空きページがあれば、更新するＦＡＴを追記するとともにページ管理テーブル１４を更新する。
【００６６】
次に上記のルールを適用したＦＡＴの更新について、図９Ａを参照にしながら説明する。図９Ａ（ａ）は、フォーマット直後の物理ブロックの状態、図９Ａ（ｂ）は１６回のＦＡＴ更新後の物理ブロックの状態、図９Ａ（ｃ）は３２回のＦＡＴ更新後の物理ブロックの状態を示す。図９Ａ（ｄ）は４８回のＦＡＴ更新後の物理ブロックの状態を示す図で、図９Ａ（ｅ）は集約処理後の状態、図９Ｂは４９回目のＦＡＴ更新がＦＡＴ０に発生した場合の物理ブロックの状態を示す。
【００６７】
図９Ａ（ａ）に示すように、フォーマットのときに、ＦＡＴ０に割り当てられた２個の物理ブロックをＰＢ０，ＰＢ１とし、ＰＢ０を第１物理ブロックＰＢ−Ｆ，ＰＢ１を第２物理ブロックＰＢ−Ｓとする。またＦＡＴ１に割り当てられた２個の物理ブロックをＰＢ１０，ＰＢ１１とし、ＰＢ１０を第１物理ブロックＰＢ−Ｆ，ＰＢ１１を第２物理ブロックＰＢ−Ｓとする。そして夫々の第１物理ブロックＰＢ−Ｆである物理ブロックＰＢ０，ＰＢ１０には全ページに書き込まれる。論理ページ計数手段１７は、ＦＡＴ更新回数Ｔを０に初期化する。
【００６８】
図９Ａ（ｂ）は、前半のＦＡＴ領域（ＦＡＴ０）に対応するＦＡＴの更新が１３回、後半のＦＡＴ領域（ＦＡＴ１）に対応するＦＡＴの更新が３回発生した状態である。論理ページ計数手段１７はＦＡＴ０，ＦＡＴ１の領域は区別せずに計数しているため、ＦＡＴ更新回数Ｔは１６となる。また図９Ａ（ｂ）は１６回目のＦＡＴ更新後（Ｔ＝１６）の状態であり、次の書き込みはルール５−１に相当する。よって、記録ページ数検出手段１８は、ページ管理テーブル１４を参照にしながら、ＦＡＴ０の第２物理ブロックＰＢ１に書き込まれているページ数を検出する。しかしながら、ＦＡＴ０の第２物理ブロックに書き込まれているページ数は１３ページであり、３２ページ以下であるため、ルール６−１を満たさず新物理ブロックへの更新はなされない。
【００６９】
同様に図９Ａ（ｃ）は、さらに前半のＦＡＴ領域（ＦＡＴ０）に対応するＦＡＴの更新が１０回、後半のＦＡＴ領域（ＦＡＴ１）に対応するＦＡＴの更新が６回発生した状態である。この状態は、フォーマット直後からは合計３２回のＦＡＴ更新である。論理ページ計数手段１７が計数しているＦＡＴ更新回数Ｔは３２となり、次の書き込みはルール５−２に相当する。よって、記録ページ数検出手段１８は、ページ管理テーブル１４を参照にしながら、ＦＡＴ１の第２物理ブロックＰＢ１１に書き込まれているページ数を検出する。しかしながら、ＦＡＴ１の第２物理ブロックに書き込まれているページ数は９ページであり、３２ページ以下であるためルール６−２を満たさず、新物理ブロックへの更新はなされない。
【００７０】
図９Ａ（ｄ）は、ＦＡＴの書き込みが４８回目（Ｔ＝４８）の書き込み終了時の状態であり、論理ページ計数手段１７により、ＦＡＴ更新回数Ｔは４８となる。従って次の更新はルール５−１に相当する。よって、記録ページ数検出手段１８は、ページ管理テーブル１４を参照にしながら、ＦＡＴ０の第２物理ブロックの記録ページ数を検出する。ＦＡＴ０の第２物理ブロックＰＢ１には３３ページ記録されているので、ルール６−１を満たし、新物理ブロックへの更新条件となり、集約手段１９が起動される。
【００７１】
次に集約手段１９の動作について説明する。図９Ａ（ｅ）は図９Ａ（ｄ）の状態から、前半のＦＡＴ領域（ＦＡＴ０）に更新が発生する場合である。本状態では、以下のステップでＦＡＴ０の更新を実施する。
（ステップ１）ブロック管理テーブル１５では、消去可能な２個の新物理ブロック、例えばＰＢ２０，ＰＢ２１を新規の第１，第２物理ブロックとして確保し、消去する。
（ステップ２）ページ管理テーブル１４を参照にしながら、（ルール０）〜（ルール２）に従い、現在の第１，第２物理ブロックＰＢ０，ＰＢ１に書き込まれているＦＡＴ０の有効なデータを、新規に確保した第１物理ブロックＰＢ２０に集約する。これにより図９Ａ（ｅ）の状態となる。
（ステップ３）論物変換テーブル１３におけるＦＡＴ０に対応する物理ブロックを新第１の物理ブロックＰＢ２０、新第２の物理ブロックＰＢ２１に更新する。またこれに対してページ管理テーブル１４を更新する。更に元の物理ブロックＰＢ０，ＰＢ１を消去可能ブロックとし、新物理ブロックＰＢ２０，ＰＢ２１を有効ブロックとしてブロック管理テーブル１５に登録する。
【００７２】
次にＦＡＴ０の更新が必要となった場合には、図９Ｂに示すように書き込むべきＦＡＴ０のデータを新規に確保した物理ブロックＰＢ２１に書き込む。これによりＦＡＴ更新回数Ｔは４９となる。
【００７３】
一方、後半のＦＡＴ領域（ＦＡＴ１）に更新が発生する場合もルール５−２，６−２を満たしている場合には、集約手段１９を起動して同様に集約処理を実施する。そして、ＦＡＴ１の第２の物理ブロックにＦＡＴ１に対応するデータを書き込む。こうして前半と後半のＦＡＴの集約可能タイミングを交互になるようにしている。
【００７４】
次に図９Ａ（ｅ）において、ＦＡＴ更新にかかる時間について説明する。
（ステップ１）では、２個の物理ブロックの消去にかかる時間を要する。
（ステップ２）では、６４ページの読み出しにかかる時間と６４ページの書き込みにかかる時間を要する。よって、図９Ａ（ｅ）でＦＡＴ更新にかかる時間は２物理ブロックの消去及び６４ページの読み出し、書き込みに要する時間となる。なお、論物変換テーブル１３、ページ管理テーブル１４の更新についてもいくらかの時間を要するが、従来例も同様の更新が発生するので、説明を割愛する。
【００７５】
以上説明したように、（ルール０）〜（ルール８）を適用した場合の１回のＦＡＴ更新にかかる時間は、１ページの書き込みに要する時間をＴｗｐ、１ページの消去に要する時間をＴｅｐ、１物理ブロックの消去に要する時間をＴｅｂとすると、以下のいずれかのパターンになる。
（パターン１）Ｔｗｐ
（パターン２）２Ｔｅｂ＋６４Ｔｗｐ＋６４Ｔｒｐ
そして（パターン２）の発生する最短周期は１６回の更新間隔である。
よって、ＦＡＴの更新にかかる時間の最悪値は、ＦＡＴ更新の１６回の平均値で定義できる。この場合パターン１が１５回、パターン２が１回なので、上記最悪値をＴ＿１６ＡＶで定義すると、次式（４）で表される。
Ｔ＿１６ＡＶ＝（２Ｔｅｂ＋７９Ｔｗｐ＋６４Ｔｒｐ）／１６  ・・・（４）
【００７６】
従来例では、図２（ｅ）から図３（ｅ）になるときのように、ＦＡＴ０における新物理ブロックへの更新とＦＡＴ１における新物理ブロックへの更新が２回連続して発生するため、１回のＦＡＴ更新にかかる時間は次式（５）で示される。
Ｔ＿１６ＡＶ＝（４Ｔｅｂ＋１４４Ｔｗｐ＋１２８Ｔｒｐ）／１６  ・・・（５）
【００７７】
このように本実施の形態では、１６回のＦＡＴの更新にかかる時間の平均値を約半分にすることが可能となる。
【００７８】
尚本実施の形態では、ＦＡＴを構成するブロックがＦＡＴ０及びＦＡＴ１の２論理ブロックであり、物理ブロックを構成するページ数が６４ページの場合について説明した。以下では、ＦＡＴを構成するブロックがＮ個、ＦＡＴを構成する各物理ブロックのページ数が２Ｍページの場合に、ＦＡＴの更新について一般化して説明する。
（ルール００）ＦＡＴをＮ個の論理ブロックに分割し、分割されたＦＡＴを以下ＦＡＴ［ｉ］（０≦ｉ＜Ｎ）で示す。夫々の論理ブロックには２個の物理ブロック、即ち第１物理ブロックＰＢ−Ｆと第２物理ブロックＰＢ−Ｓを割り当てる。
（ルール０１）同一論理ページ番号が複数の物理ページに割り当てられている場合は、第２物理ブロックＰＢ−Ｓのページを優先する。
（ルール０２）同一論理ページ番号が同一物理ブロックの複数の物理ページに割り当てられている場合は、大きい物理ページ番号に格納されている論理ページを優先する。
（ルール０３）論理フォーマット直後のＦＡＴ［ｉ］の状態、即ち第１物理ブロックのみで構成され、全論理ページが第１物理ブロックに割り当てられている状態を初期状態とし、このときのＦＡＴ更新回数Ｔを０とする。
（ルール０４）ＦＡＴを更新すると、Ｔをインクリメントする。
（ルール０５）ＦＡＴ［ｉ］（０≦ｉ＜（Ｎ−１））を新物理ブロックへ更新することが可能となるタイミングは、以下の条件とする。
Ｔ％Ｍ＝（ｉ＋１）＊Ｍ／Ｎ
ＦＡＴ［Ｎ−１］における新物理ブロックへの更新可能タイミングは、以下の条件とする。
Ｔ％Ｍ＝０
（ルール０６）上記更新タイミングにおいて、そのＦＡＴ［ｉ］の第２物理ブロックに書き込まれているページ数がそのブロックの半分、即ちＭページを超える場合に、新物理ブロックへの更新を行う。
（ルール０７）新物理ブロックへの更新時には、新たに第１物理ブロックと第２物理ブロックを確保し、書き込み済みの第１物理ブロックと第２物理ブロックに書き込まれているＦＡＴデータを、新規に確保した第１物理ブロックにコピーする。
（ルール０８）新物理ブロックへの更新後のＦＡＴデータは新第２の物理ブロックに書き込む。
【００７９】
上記（ルール０５）（ルール０６）について、さらに詳細に説明する。一例として、物理ブロックを構成するページ数が１２８ページ、ＦＡＴを４個の論理ブロックに分割した場合の新物理ブロックへの更新について説明する。この場合にはＮは４、Ｍは６４となる。
【００８０】
この場合ＦＡＴは、ＦＡＴ［０］、ＦＡＴ［１］、ＦＡＴ［２］、ＦＡＴ［３］に分割される。夫々のＦＡＴ［ｉ］の新物理ブロックへの更新可能タイミングは、ルール０５によりＴが以下の場合となる。
ＦＡＴ［０］：１６、１６＋６４、１６＋２＊６４、・・・・
ＦＡＴ［１］：３２、３２＋６４、３２＋２＊６４、・・・・
ＦＡＴ［２］：４８、４８＋６４、４８＋２＊６４、・・・・
ＦＡＴ［３］：６４、６４＋６４、６４＋２＊６４、・・・・
【００８１】
ルール０６では、各更新可能タイミングにおいて、第２物理ブロックのページ数がＭ、即ち６４より多い場合に更新を実施する。ＦＡＴ［ｉ］の更新タイミングにおいて、更新されない場合のページの最大値は６４ページであるから、次の更新タイミングまでのＦＡＴが全てＦＡＴ［ｉ］に属する論理アドレスであった場合も、ＦＡＴ［ｉ］に割り当てられた第２の物理ブロックのページ数は１２８ページにしかならない。よって、ページ数が６４ページを超えた場合にのみ更新すればよいことがわかる。
【００８２】
また、更新タイミングの周期の最小値は  （Ｍ／Ｎ）で規定できるので、ＦＡＴ更新にかかる時間の最悪値は連続する（Ｍ／Ｎ）回のＦＡＴ更新時間の平均値で規定できる。
【００８３】
以上説明したように、ＦＡＴを構成するＮ個（Ｎは２以上の整数）のブロックに対して、夫々に（２＊Ｍ）ページから構成される２個の物理ブロックを割り当てる。そしてＦＡＴ更新の際には、ブロック管理手段はＮ個の論理ブロックに対してページ単位で、各ブロックのページ順に第１物理ブロック、第２の物理ブロックの順番に書き込む。ＦＡＴの論理アドレスにかかる書き込み回数が（Ｍ／Ｎ）回増加する毎に、ＦＡＴ部を構成するＮ個の論理ブロック番号順に、各論理ブロックの第２物理ブロックに書き込まれたページ数を検出し、前記ページ数が予め定められた基準ページ数（Ｍ）より多い場合は、集約手段は、当該論理ブロックを構成する２個の物理ブロックのデータを消去済みの新物理ブロックに集約する。
【００８４】
従来のＦＡＴ更新では、ＦＡＴを構成する論理ブロックがＮ個ある場合は、集約処理がＮ回連続して発生する可能性があったが、本実施の形態では必ず周期的に発生する。ＦＡＴを構成するＮ個の論理ブロックにおいて、夫々の論理ブロックを構成する２個の物理ブロックのデータを消去済み物理ブロックに集約させる動作が発生するのは最小（Ｍ／Ｎ）回毎になる。従って、２個の物理ブロックのデータを新物理ブロックに集約させる動作が集中して発生することを防止できるため、ＦＡＴのような小ブロックの書き込みにかかる時間の最大値を抑制することができる。よってＦＡＴの更新速度を集約処理が発生するＦＡＴ更新の周期の総時間で定義すれば、より高速なＦＡＴ更新速度を保証することも可能である。またＦＡＴ更新に備え、ホスト機器にデータを一時記録するバッファーメモリ容量を小さくすることができる。
【００８５】
次に電源投入時の動作について説明する。ＦＡＴ更新回数Ｔは論理フォーマット直後に０にリセットされる。電源投入後に常時論理フォーマットを実施するとは限らないので、Ｔの初期値を求める必要がある。Ｔの初期設定は、Ｔを不揮発性メモリに記録していてもよいが、Ｔを記録する直前に電断が発生した場合、Ｔの初期値が得られなくなる。そこで本実施の形態では、電源投入時に各ＦＡＴ［ｉ］の夫々の第２物理ブロックの書き込み済みページ数の和をＦＡＴ更新回数Ｔとする。これにより電源投入後にも、前述した処理を行うことができる。
【００８６】
このように、（ルール０）〜（ルール８）に従ってＦＡＴを更新するので、特にＦＡＴの更新回数を不揮発性メモリに記録することなく、ＦＡＴを構成する各物理ブロックに書き込まれているページ数を検出すれば足りる。
【００８７】
なお、上記説明ではＦＡＴの論理ブロック数４個、物理ブロックを構成するページ数を１２８ページで説明したが、これに制限されるものではない。
【００８８】
本実施の形態ではＦＡＴの記録のため１つの論理ブロックに対し第１，第２の物理ブロックを割り当てるようにしているが、ＦＡＴの記録には限らず、他のデータを保持するための比較的小さい範囲の論理ブロックの更新についても本発明を適用することができる。さらに、本実施の形態では、ページ管理テーブルをフラッシュメモリの第２領域に記録したが、第１領域に記録するようにしてもよい。
【００８９】
一般にページはデータ記録領域と冗長領域で構成されている。１ページ当たり４ｋＢの容量のあるページは、実際には記録バイト数は（４０９６＋２５６）Ｂであり、２５６Ｂ分が冗長領域である。冗長領域には、エラー訂正パリティや管理情報を記録している。
【００９０】
よって、ＦＡＴにかかる論理ブロックを構成する物理ブロックの各ページの冗長領域の一部にページ管理テーブルを記録することも可能である。
【産業上の利用可能性】
【００９１】
本発明の半導体記録装置は、ＦＡＴのような小ブロックのランダムライトの速度を保証できるので、リアルタイム記録が要求される映像記録分野で使用される可能性が大きい。
【図面の簡単な説明】
【００９２】
【図１】従来におけるＦＡＴの物理ブロックの書き込み状態の遷移図
【図２】ＦＡＴの物理ブロックの書き込み状態のパターンの説明図
【図３】図２の各パターンからＦＡＴを更新する場合の遷移説明図
【図４】本発明の実施の形態における半導体記録装置の構成図
【図５】本実施の形態のフラッシュメモリにおけるメモリ領域の説明図
【図６】本実施の形態のフラッシュメモリを構成する物理ブロックの構成図
【図７】本実施の形態の論物変換テーブルの説明図
【図８】本実施の形態のページ管理テーブルの説明図
【図９Ａ】本実施の形態のＦＡＴの書き込みルールの説明図
【図９Ｂ】本実施の形態のＦＡＴの書き込みルールの説明図
【符号の説明】
【００９３】
１０  メモリコントローラ
１１  外部インターフェイス
１２  コマンド解析手段
１３  論物変換テーブル
１４  ページ管理テーブル
１５  ブロック管理テーブル
１６  ブロック管理手段
１７  論理ページ計数手段
１８  記録ページ数検出手段
１９  集約手段
２０  フラッシュ制御手段
３０  フラッシュメモリ
【図１】
2009282568.tif 000003
【図２】
2009282568.tif 000004
【図３】
2009282568.tif 000005
【図４】
2009282568.tif 000006
【図５】
2009282568.tif 000007
【図６】
2009282568.tif 000008
【図７】
2009282568.tif 000009
【図８】
2009282568.tif 000010
【図９Ａ】
2009282568.tif 000011
【図９Ｂ】
2009282568.tif 000012