(57)【特許請求の範囲】
【請求項１】
Ｍ個のセクタよりなるフラッシュメモリと、
Ｎ＜Ｍの関係を満たす番号Ｎまでの１〜Ｎの論理セクタ番号の入力に対して、１〜Ｎの物理セクタ番号を出力するアドレス変換テーブルを記憶するＲＡＭと、
１≦Ｌ≦Ｍの関係の関係を満たす論理セクタ番号Ｌのセクタにデータの更新を行う際は、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭに記憶されているアドレス変換テーブルにより論理セクタ番号Ｌに対して特定される物理セクタ番号のセクタのデータを消去し、番号が１〜Ｎの物理セクタの内、未使用又は既にデータの消去が行われているセクタに対して更新するデータを書き込むと共に、アドレス変換テーブルにおいて、論理セクタ番号Ｌに対応する上記の未使用又は既にデータの消去が行われているセクタの番号を、更新するデータの書き込みを行ったセクタの番号に変更し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを消去し、当該セクタにデータを書き込むデータ書込手段と、
入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭのアドレス変換テーブルにおいて論理セクタ番号Ｌに対応する物理セクタ番号のセクタのデータをフラッシュメモリより読み出し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを、フラッシュメモリより読み出すデータ読み出し手段とを備えることを特徴とするフラッシュディスクカード。
【請求項２】
Ｍ個のセクタ及びｒ個の冗長セクタよりなるフラッシュメモリと、
Ｎ＜Ｍの関係を満たす番号Ｎまでの１〜Ｎの論理セクタ番号の入力に対して、１〜Ｎの物理セクタ番号及び１〜ｒの冗長セクタ番号の内のいずれかを特定するアドレス変換テーブルを記憶するＲＡＭと、
１≦Ｌ≦Ｍの関係を満たす論理セクタ番号Ｌのセクタにデータの更新を行う際は、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭに記憶されているアドレス変換テーブルにより論理セクタ番号Ｌに対して特定される物理セクタ番号のセクタのデータを消去し、番号が１〜Ｎの物理セクタ及び１〜ｒの冗長セクタの内、未使用又は既にデータの消去が行われているセクタに対して更新するデータを書き込むと共に、アドレス変換テーブルにおいて、論理セクタ番号Ｌに対応する上記の未使用又は既にデータの消去が行われているセクタの番号を、更新するデータの書き込みを行ったセクタの番号に変更し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを消去し、当該セクタにデータを書き込むデータ書き込み手段と、
入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭのアドレス変換テーブルにおいて論理セクタ番号Ｌに対応する物理セクタ番号又は冗長セクタ番号のセクタのデータをフラッシュメモリより読み出し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを、フラッシュメモリより読み出すデータ読み出し手段とを備えることを特徴とするフラッシュディスクカード。
【請求項３】
請求項２に記載されたフラッシュディスクカードであって、
フラッシュメモリの備える各セクタは、ファイルデータを書き込むデータエリアと、当該セクタが有効か又は無効かを意味するデータを書き込む管理エリアとからなり、
上記ＲＡＭは、更に欠陥セクタ置換テーブルを備え、
上記データ書き込み手段は、指定された論理セクタ番号ＬがＮよりも大きく、かつ、物理セクタ番号Ｌのセクタに欠陥が生じた場合、当該セクタの管理エリアに無効セクタを意味するデータを書き込み、ｒ個の冗長セクタの内、データの書き込まれていないセクタにデータを書き込むと共に、欠陥セクタ置換テーブルに、論理セクタ番号Ｌに対して、データの書き込みを行った冗長セクタの番号を記憶させ、
上記データ読み出し手段は、指定された論理セクタ番号ＬがＮよりも大きく、かつ、物理セクタ番号Ｌの管理エリアに無効セクタを意味するデータが書き込まれている場合には、欠陥セクタ置換テーブルを参照して、特定される冗長セクタ番号のデータを読み出すことを特徴とするフラッシュディスクカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリを用いて、ハードディスク装置をエミュレートするフラッシュディスクカードに関する。
【０００２】
【従来の技術】
フラッシュメモリは、書き込み可能な不揮発性記憶媒体として半導体ディスクカードに用いられる。フラッシュメモリには、次のような問題があることが知られている。
（１）データの書き込みの前に消去動作が必要である。
（２）データの消去単位が、数キロバイト〜数十キロバイトのブロック単位またはチップ単位と大きい。
（３）読み出しに比べて書き込みや消去に要する時間が長い。
（４）書換回数が１０４〜１０６回／ブロックと制限されている。
このようなフラッシュメモリを用いて、ハードディスク装置をエミュレートするフラッシュディスクカードを構成する場合には、処理時間を短くするためホスト装置からのセクタ（５１２バイト）単位でのデータ更新命令に対して、旧セクタデータの消去は行わずに、単にそのセクタが無効であることを意味する情報を当該セクタのセクタＩＤに書き込み、更新データは、既にデータ消去済みの空きエリアに対して書き込むという手法が一般的に採用されている。この際、データ更新の都度、ホスト装置が指定するセクタ単位のアドレス（論理セクタ番号）と、更新データが実際に書き込まれるフラッシュメモリのアドレス（物理セクタ番号）の対応が変化する。これに対処するため、論理セクタ番号と物理セクタ番号との対応を記憶するアドレス変換テーブルを用意する必要がある。
【０００３】
【発明が解決しようとする課題】
アドレス変換テーブルのサイズは、フラッシュメモリのメモリ容量に比例して大きくなる。例えば、数十メガバイトのメモリ容量のカードでは、アドレス変換テーブルを記憶するために数メガビットの容量のＲＡＭが必要となり、コストアップ、及び、部品点数の増加による実装面積の増大といった問題が生じる。
近年、このようなディスク用途に特化したフラッシュメモリとして、セクタ単位でのデータ消去及び書き込みが可能なデバイスが開発され、フラッシュディスクカードに使用されている。この場合、ホスト装置からのセクタ更新命令の都度、旧セクタデータの消去、及び、更新データの書き込みが可能となり、アドレス変換テーブルは不要になる。
現在、ファイルの名称、サイズ、先頭位置情報が格納されるディレクトリエントリ、及びファイルの位置、構造を示すファイルアロケーションテーブル（ＦＡＴ）を、ディスク上の一部の特定エリアに格納するディスクオペレーティングシステムが知られている。ディレクトリエントリ及びＦＡＴは、ファイルデータ更新の都度、書き換えられる。１ファイル分のディレクトリエントリは、３２バイトである。即ち、１セクタ（５１２バイト）当たり１６個のファイルのディレクトリエントリが格納される。例えば、同一セクタ上にディレクトリエントリを有する４つのファイルデータが更新された場合、各ファイルデータを記憶するセクタについては、それぞれ１回更新されるだけであるが、ディレクトリエントリを格納するセクタは４回更新されることになる。ＦＡＴについても同様に、その格納セクタの更新回数は、データ格納セクタの更新回数よりも多くなる。このため、当該特定エリアの寿命が短くなり、フラッシュディスクカード自体の製品としての寿命が短くなるという問題があった。
【０００４】
本発明の目的は、フラッシュメモリをより長期間有効に使用するフラッシュディスクカードを提供することである。
【０００５】
【課題を解決するための手段】
本発明の第１のフラッシュディスクカードは、Ｍ個のセクタよりなるフラッシュメモリと、Ｎ＜Ｍの関係を満たす番号Ｎまでの１〜Ｎの論理セクタ番号の入力に対して、１〜Ｎの物理セクタ番号を出力するアドレス変換テーブルを記憶するＲＡＭと、１≦Ｌ≦Ｍの関係を満たす論理セクタ番号Ｌのセクタにデータの更新を行う際は、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭに記憶されているアドレス変換テーブルにより論理セクタ番号Ｌに対して特定される物理セクタ番号のセクタのデータを消去し、番号が１〜Ｎの物理セクタの内、未使用又は既にデータの消去が行われているセクタに対して更新するデータを書き込むと共に、アドレス変換テーブルにおいて、論理セクタ番号Ｌに対応する上記の未使用又は既にデータの消去が行われているセクタの番号を、更新するデータの書き込みを行ったセクタの番号に変更し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを消去し、当該セクタにデータを書き込むデータ書込手段と、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭのアドレス変換テーブルにおいて論理セクタ番号Ｌに対応する物理セクタ番号のセクタのデータをフラッシュメモリより読み出し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを、フラッシュメモリより読み出すデータ読み出し手段とを備える。
【０００６】
本発明の第２のフラッシュディスクカードは、Ｍ個のセクタ及びｒ個の冗長セクタよりなるフラッシュメモリと、Ｎ＜Ｍの関係を満たす番号Ｎまでの１〜Ｎの論理セクタ番号の入力に対して、１〜Ｎの物理セクタ番号及び１〜ｒの冗長セクタ番号の内のいずれかを特定するアドレス変換テーブルを記憶するＲＡＭと、１≦Ｌ≦Ｍの関係を満たす論理セクタ番号Ｌのセクタにデータの更新を行う際は、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭに記憶されているアドレス変換テーブルにより論理セクタ番号Ｌに対して特定される物理セクタ番号のセクタのデータを消去し、番号が１〜Ｎの物理セクタ及び１〜ｒの冗長セクタの内、未使用又は既にデータの消去が行われているセクタに対して更新するデータを書き込むと共に、アドレス変換テーブルにおいて、論理セクタ番号Ｌに対応する上記の未使用又は既にデータの消去が行われているセクタの番号を、更新するデータの書き込みを行ったセクタの番号に変更し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを消去し、当該セクタにデータを書き込むデータ書き込み手段と、入力された論理セクタ番号ＬがＮ以下である場合には、ＲＡＭのアドレス変換テーブルにおいて論理セクタ番号Ｌに対応する物理セクタ番号又は冗長セクタ番号のセクタのデータをフラッシュメモリより読み出し、入力された論理セクタ番号ＬがＮよりも大きい場合には、物理セクタ番号Ｌのセクタのデータを、フラッシュメモリより読み出すデータ読み出し手段とを備える。
【０００７】
上記の第２のフラッシュディスクカードにおいて、好ましくは、フラッシュメモリの備える各セクタは、ファイルデータを書き込むデータエリアと、当該セクタが有効か又は無効かを意味するデータを書き込む管理エリアとからなり、上記ＲＡＭは、更に欠陥セクタ置換テーブルを備え、上記データ書き込み手段は、指定された論理セクタ番号ＬがＮよりも大きく、かつ、物理セクタ番号Ｌのセクタに欠陥が生じた場合、当該セクタの管理エリアに無効セクタを意味するデータを書き込み、ｒ個の冗長セクタの内、データの書き込まれていないセクタにデータを書き込むと共に、欠陥セクタ置換テーブルに、論理セクタ番号Ｌに対して、データの書き込みを行った冗長セクタの番号を記憶させ、上記データ読み出し手段は、指定された論理セクタ番号ＬがＮよりも大きく、かつ、物理セクタ番号Ｌの管理エリアに無効セクタを意味するデータが書き込まれている場合には、欠陥セクタ置換テーブルを参照して、特定される冗長セクタ番号のデータを読み出す。
【０００８】
【発明の実施の形態】
図１は、本発明の実施の形態の一例であるフラッシュディスクカード１を構成する各ブロックを示す。フラッシュディスクカード１は、ホストインターフェース回路５、バス制御回路１０、マイクロプロセッサ（ＭＰＵ）６、セクタバッファ７、論理／物理アドレス変換テーブル９１（図示せず）を記憶するＲＡＭ９、エラーチェックコード回路（ＥＣＣ回路）１１、フラッシュメモリ制御回路８、及び、フラッシュメモリ４が一体に集積されてなる。ホスト装置２から入力されるデータ書き込みコマンドや読み出しコマンドは、ホストインターフェース回路５及びバス制御回路１０を介してＭＰＵ６に入力される。後に説明するように、ＭＰＵ６は、ＲＡＭ９に記憶する論理／物理アドレス変換テーブル９１を必要に応じて参照してフラッシュメモリ４内の物理セクタ番号の情報を得る。フラッシュメモリ制御回路８は、この物理セクタ番号のアクセスするセクタのデータをフラッシュメモリ４より読み出し、セクタバッファ７に展開する。ＥＣＣ回路１１は、データの読み出しエラーをチェックする。
【０００９】
図２は、フラッシュメモリ４内のメモリ空間と、ＲＡＭ９内のアドレス変換テーブル９１を示す。フラッシュメモリ４は、Ｍ個のセクタと、ｒ個の冗長セクタとからなり、ＡＮＤ型フラッシュメモリのように５１２＋１６バイト単位で消去することができる。５１２バイトのセクタデータ領域１００には、ハードディスク装置のデータアクセス単位であるセクタ（５１２バイト）のデータが格納される。１６バイトのセクタ管理データ領域１０１には、当該セクタの論理セクタ番号（以下、ＬＳＮとも表す）、該セクタデータに対するＥＣＣデータ、該セクタの有効性を示すフラグ情報等のデータが格納される。このフラッシュメモリ４のメモリ空間は、大きく３つのエリア１０３、１０４及び１０５に分けられている。第１エリア１０３は、ホスト装置２により頻繁に書き換えられるセクタからなるエリアであり、物理セクタ番号（以下、ＰＳＮとも表す）１〜Ｎのセクタからなる。ホスト装置２のアクセスする物理セクタ番号は、ＲＡＭ９に記憶される論理／物理アドレス変換テーブル９１に基づいて定められる。第１エリア１０３に格納されるデータについては後に説明する。第２エリア１０４は、ファイルデータを格納するエリアであり、物理セクタ番号Ｎ＋１〜Ｍのセクタからなる。ホスト装置２のアクセスする物理セクタ番号は、論理セクタ番号と同じ値である。このため、当該第２エリア１０４内のセクタへのアクセスに関しては、アドレス変換テーブルを使用しない。第３エリア１０５は、上記第１エリア１０３のいわゆる拡張用セクタとして用いるｒ個の冗長セクタからなるエリアであり、物理セクタ番号Ｍ＋１〜Ｍ＋ｒのセクタからなる。
【００１０】
第１エリア１０３、又は、第３エリア１０５にあるセクタに書き込まれるデータの具体例を説明する。ファイルの名称、サイズ、先頭位置情報などを格納するディレクトリエントリ、及びファイルの位置、構造を示すファイルアロケーションテーブル（ＦＡＴ）を用いてファイル管理を行うディスクオペレーティングシステムでは、これらのデータを第１エリア１０３または第３エリアに記憶する。ディレクトリエントリ及びＦＡＴは、ファイルデータの書き換えの都度、更新される。一般的にディレクトリエントリのデータのサイズは、３２バイトである。従って、１セクタ（５１２バイト）当りファイル１６個分のディレクトリエントリのデータ１０２が書き込まれる。フラッシュメモリ４は、セクタ（５１２バイト＋１６バイト）単位でデータの更新を行う。
先に説明したように、従来は、同一セクタ内にディレクトリエントリを有するｎ個（但し、２≦ｎ≦１６の関係を満たす）のファイルのデータを書き換える場合には、当該セクタのディレクトリエントリのデータをｎ回更新する。即ち、複数のファイルについてのディレクトリエントリのデータを格納するセクタは、ファイルデータを格納するセクタに比較して、頻繁に書き換えられることになる。そこで、ＭＰＵ６は、第１エリア１０３内のセクタ、又は、第３エリア１０５内のセクタのデータの更新時には、更新前のデータを記憶していたセクタのデータを消去すると共に、未使用のセクタ、又は、既にデータの消去されているセクタに対して、更新データを書き込む。そして、論理／物理アドレス変換テーブル９１を更新する。このように、データの書き込みを行うセクタを分散し、特定のセクタに書き込み動作が集中しないようにする。これにより書き換え回数が減少、かつ均一化され、第１エリア１０３内の特定セクタの劣化が軽減され、フラッシュディスクカード自体の製品としての寿命を延ばすことができる。例えば、第１エリア１０３の備えるセクタの数と同数の冗長セクタを第３エリア１０５に備えることで、第１エリア１０３にある各セクタへの書き込み回数は半分に減少し、寿命は２倍に延びる。
なお、図２において、論理／物理アドレス変換テーブル９１の左側にはホスト装置２により入力される論理セクタ番号（ＬＳＮ）を示し、テーブル内には入力された論理セクタ番号に対応して出力する物理セクタ番号（ＰＳＮ）を示す。また、セクタ管理データ領域１０１には、対応する論理セクタ番号の値を括弧書きで示す。ＲＡＭ９内の論理／物理アドレス変換テーブル９１は、フラッシュディスクカード１の電源投入時に、フラッシュメモリ４内の第１エリア１０３及び第３エリア１０５のセクタ管理データ領域１０１に書き込まれている論理セクタ番号に基づいて形成される。
【００１１】
図３は、ＭＰＵ６の実行するデータの書き込み処理のフローチャートである。ホスト装置２により指定された論理セクタ番号（フローチャート中、ＬＳＮと表す）の値Ｌを求める（ステップＳ１）。ここで値ＬがＮよりも大きい場合には（ステップＳ２でＹＥＳ）、第２エリア１０４へのアクセスであるため、物理セクタ番号（フローチャート中、ＰＳＮと表す）の値がＬのセクタにデータの書き込みを行う（ステップＳ３）。また、値ＬがＮ以下である場合（ステップＳ２でＮＯ）、ＲＡＭ９の備える論理／物理アドレス変換テーブル９１に基づいて定められる値の物理セクタ番号のセクタのデータを消去する（ステップＳ４）。第１エリア１０３又は第３エリア１０５にあるセクタ（物理セクタ番号が１〜Ｎ、又はＭ＋１〜Ｍ＋ｒ）であって、未使用のセクタ、又は、既にデータの消去されたセクタに対してデータの書き込みを行う（ステップＳ５）。ＲＡＭ９の備えるアドレス変換テーブル９１の内容を更新して、論理セクタ番号Ｌに対する物理セクタ番号を、ステップＳ５においてデータの書き込みを行ったセクタの番号に書き換える（ステップＳ６）。
【００１２】
図４は、ＭＰＵ６の実行するデータの読み出し処理のフローチャートである。ホスト装置２により指定された論理セクタ番号（フローチャート中、ＬＳＮと表す）の値Ｌを求める（ステップＳ１１）。ここで値ＬがＮよりも大きい場合（ステップＳ１２でＹＥＳ）、第２エリア１０４へのアクセスであるため、物理セクタ番号（フローチャート中、ＰＳＮと表す）の値をＬに設定する（ステップＳ１３）。また、値ＬがＮ以下である場合には（ステップＳ１２でＮＯ）、ＲＡＭ９の備える論理／物理アドレス変換テーブル９１に基づいて、物理セクタ番号の値を定める（ステップＳ１４）。ステップＳ１３又はＳ１４により設定された値の物理セクタ番号のデータを読み出す（ステップＳ１５）。
【００１３】
以上、説明するように、フラッシュディスクカード１では、ファイルデータに比べて頻繁に書き換えられるセクタのあるエリア（物理セクタ番号が１〜Ｎ及びＭ＋１〜Ｍ＋ｒであるエリア）に対して、アドレス変換テーブル９１を用意する。ファイルデータを記憶するセクタを格納するエリア（物理セクタ番号がＮ＋１〜Ｍであるエリア）では、アドレス変換テーブルを使用せず、入力される論理セクタ番号（＝ＬＳＮ）をそのまま物理セクタ番号（＝ＰＳＮ）として取り扱う。これにより、フラッシュメモリを使用するのに必要なアドレス変換テーブルのサイズを小さくする。また、ｒ個の冗長セクタエリアを用意し、第１エリア１０３にあるセクタへのデータの書き込みが集中することを防止する。これにより、第１エリア１０３内におけるセクタの劣化を軽減し、この結果として、フラッシュディスクカード自体の製品としての寿命を延ばす。
【００１４】
次に、フラッシュディスクカードの実施の形態２を説明する。図５は、このフラッシュディスクカード１’におけるフラッシュメモリ４’のメモリ空間と、ＲＡＭ９’に記憶される論理／物理アドレス変換テーブル９１と、欠陥セクタ置換テーブル９２との関係を示す。図５において、図２と同じ構成部分には同一の参照番号を付す。ここでは、重複した説明を避けるため、先述のフラッシュディスクカード１と異なる構成の部分と、これにより生じる作用及び効果について説明する。ＲＡＭ９’には、フラッシュメモリ４’のメモリ空間を構成する第１エリア１０３及び第３エリア１０５にあるセクタに対する論理／物理アドレスの変換テーブル９１の他に、第３エリア１０５にあるセクタに対する欠陥セクタ置換テーブル９２の２種類のテーブルを記憶する。
ＭＰＵ６は、フラッシュメモリ４’のメモリ空間を構成する第２エリア１０４内のセクタへのアクセスに関して、アドレス変換テーブルを使用しない。しかし、データの読み出しを行うセクタのセクタ管理データ領域１０１に、当該セクタが欠陥を有する無効セクタであることを意味するデータが書き込まれている場合には、欠陥セクタ置換テーブル９２を参照し、当該テーブル９２により特定される物理セクタ番号に該当する第３エリア１０５内の冗長セクタのデータを読み出す。
フラッシュメモリ４’のメモリ空間を構成する第３エリア１０５は、ｒ個の冗長セクタ（物理セクタ番号Ｍ＋１〜Ｍ＋ｒ）からなり、上記第１エリア１０３の拡張用セクタとして、かつ第２エリア１０４のセクタに欠陥が生じた場合の予備セクタとして用いる。このｒ個の冗長セクタの内、第２エリア１０４に生じた欠陥セクタの替わりに使用されているセクタ以外のものは、第１エリア１０３の備えるセクタと同様に用いられる。
ＭＰＵ６は、第１エリア１０３内のセクタ、又は、第３エリアのセクタの内、第２エリア１０４に生じた欠陥セクタの替わりに使用されているセクタ以外のセクタのデータの更新時には、更新前のデータを記憶していたセクタのデータを消去すると共に、論理／物理アドレス変換テーブル９１を書き換えて、未使用のセクタ、又は、既にデータの消去されているセクタに対して、更新データを書き込む。このように、ＭＰＵ６は、データの書き込みを行うセクタを分散し、特定のセクタに書き込み動作が集中しないようにする。
以上に説明したフラッシュディスクカード１’では、欠陥セクタ置換テーブル９２を用意して、フラッシュメモリ上の欠陥セクタを第３エリア１０５に用意する冗長セクタ内の正常セクタで置換可能としたため、フラッシュディスクカード自体の製品としての寿命を延ばすことができる。また、上記構成により初期的に欠陥を有するフラッシュメモリの使用が可能となり、フラッシュディスクカード本体のコストダウンを図ることができる。
なお、図５において、論理／物理アドレス変換テーブル９１及び欠陥セクタ置換テーブル９２の左側にはホスト装置２により入力される論理セクタ番号（ＬＳＮ）を示し、テーブル内には入力された論理セクタ番号に対応して出力する物理セクタ番号（ＰＳＮ）を示す。また、セクタ管理データ領域１０１には、対応する論理セクタ番号の値を括弧書きで示す。第２エリアにある欠陥セクタには、そのセクタ管理データ領域１０１に、論理セクタ番号の代わりに無効セクタであることを意味するデータが書き込まれる（物理セクタ番号Ｂのセクタを参照）。ＲＡＭ９内の論理／物理アドレス変換テーブル９１は、フラッシュメモリ４’内の第１エリア１０３と第３エリア１０５のセクタ管理データ領域１０１に書き込まれている論理セクタ番号に基づいて形成される。また、欠陥セクタ置換テーブル９２は、フラッシュメモリ４’内の第３エリア１０５のセクタ管理データ１０１に書き込まれている論理セクタ番号がＮ＋１〜Ｍであるセクタに基づいて形成される。
【００１５】
図６は、当該フラッシュディスクカード１’において、ＭＰＵ６の実行するデータ書き込み処理のフローチャートである。ホスト装置２により指定された論理セクタ番号（フローチャート中、ＬＳＮと表す）の値Ｌを求める（ステップＳ２１）。ここで、値ＬがＮよりも大きい場合（ステップＳ２２でＹＥＳ）、第２エリア１０４へのアクセスであるため、物理セクタ番号（フローチャート中、ＰＳＮと表す）Ｌのセクタにデータの書き込みを行う（ステップＳ２３）。データの書き込みが正常に終了した場合には（ステップＳ２４でＹＥＳ）、処理を終了する。しかし、データの書き込みが正常に終了しない場合（ステップＳ２４でＮＯ）、当該セクタのセクタ管理データ領域１０１に無効セクタであることを意味するデータを書き込み（ステップＳ２５）、第３エリア１０５内にあるセクタであって、未使用のセクタ、又は、既にデータの消去されているセクタにデータを書き込む（ステップＳ２６）。ＲＡＭ９’の備える欠陥セクタ置換テーブル９２に、論理セクタ番号Ｌ（但し、Ｌ＞Ｎ）に対して、ステップＳ２６においてデータの書き込みを行ったセクタの物理セクタ番号を書き込む（ステップＳ２７）。
また、値ＬがＮ以下である場合（ステップＳ２２でＮＯ）、ＲＡＭ９’の備える論理／物理アドレス変換テーブル９１に基づいて定められる値の物理セクタ番号のセクタのデータを消去する（ステップＳ２８）。第１エリア１０３又は第３エリア１０５にあるセクタ（物理セクタ番号が１〜Ｎ、又は、Ｍ＋１〜Ｍ＋ｒ）であって、欠陥セクタの代替として使用されていないセクタの内、未使用または既にデータの消去されたセクタに対してデータの書き込みを行う（ステップＳ２９）。ＲＡＭ９’の備える論理／物理アドレス変換テーブル９１の内容を更新して、論理セクタ番号Ｌに対する物理セクタ番号を、ステップＳ２９においてデータの書き込みを行った物理セクタの番号に書き換える（ステップＳ３０）。
【００１６】
図７は、当該フラッシュディスクカード１’において、ＭＰＵ６の実行するデータの読み出し処理のフローチャートである。ホスト装置２により指定された論理セクタ番号（フローチャート中、ＬＳＮと表す）Ｌを求める（ステップＳ３１）。ここで、値ＬがＮよりも大きい場合（ステップＳ３２でＹＥＳ）、第２エリア１０４へのアクセスであるため、物理セクタ番号（フローチャート中、ＰＳＮと表す）をＬに設定する（ステップＳ３３）。物理セクタ番号Ｌのセクタのセクタ管理データ領域１０１に記憶されているデータを読み出す（ステップＳ３４）。当該セクタについて無効を意味するデータが書き込まれておらず、有効なセクタであると判断される場合（ステップＳ３５でＹＥＳ）、物理セクタ番号Ｌのセクタのデータを読み出す（ステップＳ３８）。セクタ管理データ領域１０１に、当該セクタが無効セクタであることを意味するデータが書き込まれている場合（ステップＳ３５でＮＯ）、ＲＡＭ９’に記憶される欠陥セクタ置換テーブル９２を参照して、論理セクタ番号Ｌに対応する物理セクタ番号を調べる（ステップＳ３６）。ステップＳ３６において特定される物理セクタ番号の冗長セクタのデータを読み出す（ステップＳ３８）。
また、論理セクタ番号ＬがＮ以下である場合には（ステップＳ３２でＮＯ）、ＲＡＭ９’の備える論理／物理アドレス変換テーブル９１に基づいて、物理セクタ番号を定める（ステップＳ３７）。ステップＳ３７により特定された物理セクタ番号のセクタに書き込まれているデータを読み出す（ステップＳ３８）。
【００１７】
【発明の効果】
本発明の第１のフラッシュディスクカードでは、フラッシュメモリの内、頻繁に書換の行われるような特定のエリアに対してのみアドレス変換テーブルを準備する。この特定エリア内のセクタについてデータの更新を行う場合には、データの書き込まれているセクタのデータを消去すると共に、既にデータの消去されているセクタに更新データを書き込み、一部のセクタに対してデータの書き換えが集中するのを防ぐ。これによりフラッシュディスクカード自体の製品としての寿命を延ばすことができる。また、アドレス変換テーブルのサイズを小さくすることができる。
【００１８】
また、本発明の第２のフラッシュディスクカードでは、フラッシュメモリ内にｒ個の冗長セクタを備え、当該冗長セクタも、アドレス変換テーブルにより指定することができるようにすることで、第１のフラッシュディスクカードに比べて、より一層、特定のエリアへの書き込みの集中によるフラッシュメモリの劣化を遅らせ、フラッシュディスクカード自体の製品としての寿命を延ばすことができる。
【００１９】
また、より好ましい構成の第２のフラッシュディスクカードでは、アドレス変換テーブルを備えないエリアにあるセクタに欠陥が生じた場合、上記冗長セクタの内、正常なセクタで置き換える。これにより、フラッシュディスクカード自体の製品としての寿命を延ばすことができる。更に、初期的に欠陥を有するフラッシュメモリデバイスの採用が可能なり、コストを抑えることができる。
【図面の簡単な説明】
【図１】フラッシュディスクカードの機能ブロックを示す。
【図２】フラッシュメモリ内のメモリ空間と、ＲＡＭ内のアドレス変換テーブルを示す。
【図３】データの書き込み処理のフローチャートである。
【図４】データの読み出し処理のフローチャートである。
【図５】フラッシュディスクカードの他の実施の形態におけるフラッシュメモリのメモリ空間と、ＲＡＭに記憶される論理／物理アドレス変換テーブルと、欠陥セクタ置換テーブルとの関係を示す図である。
【図６】フラッシュディスクカードの他の実施の形態におけるデータ書き込み処理のフローチャートである。
【図７】フラッシュディスクカードの他の実施の形態におけるデータ読み出し処理のフローチャートである。
【符号の説明】
１，１’…フラッシュディスクカード、２…ホスト装置、３…フラッシュディスク制御回路、４，４’…フラッシュメモリ、５…ホストインターフェース回路、６…ＭＰＵ、７…セクタバッファ、８…フラッシュメモリ制御回路、９，９’…ＲＡＭ、１０…バス制御回路、１１…ＥＣＣ回路、９１…論理／物理アドレス変換テーブル、９２…欠陥セクタ置換テーブル、１００…セクタデータ領域、１０１…セクタ管理データ領域、１０２…ディレクトリエントリ及びＦＡＴのデータ、１０３…第１エリア、１０４…第２エリア、１０５…第３エリア
【図１】
0003604466.tif 000002
【図２】
0003604466.tif 000003
【図３】
0003604466.tif 000004
【図４】
0003604466.tif 000005
【図５】
0003604466.tif 000006
【図６】
0003604466.tif 000007
【図７】
0003604466.tif 000008