(57)【特許請求の範囲】
【請求項１】
不揮発性メモリを使用した外部記憶装置において、
不揮発性メモリを記憶媒体とし、この記憶媒体の内部をデータの読み書きの単位である物理セクタに分割し、物理セクタをホストコンピュータからの書込みデータを保持するデータ領域と管理領域とに分割し、管理領域にはホストコンピュータのアクセスアドレスである論理セクタアドレスを格納すると共に、論理セクタアドレスとこの論理セクタアドレスのデータが格納されている上記記憶媒体内の物理セクタアドレスの対応表を少なくとも二重化してマッピングテーブルに格納し、ホストコンピュータからのデータ読み出し時は、ホストコンピュータからの論理セクタアドレスに対応する物理セクタアドレスを上記二重化した各々のマッピングテーブルから読み出し、読み出した値が互いに一致している場合は、上記マッピングテーブルの内容が正しいと判断し、上記マッピングテーブルから得られたフラッシュメモリの物理セクタアドレスのデータをホストコンピュータに送り、上記二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なる場合は、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタの管理領域にアクセスし、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在する場合、この物理セクタに格納されたデータを、ホストコンピュータに送ると共にマッピングテーブルの内容を、上記ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスに修正することを特徴とする不揮発性メモリを使用した外部記憶装置。
【請求項２】
請求項１記載の不揮発性メモリを使用した外部記憶装置において、ホストコンピュータからこの外部記憶装置へのデータ読み出し時に、二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なり、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在しない場合には、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの互いに値の異なるビットの値を変化させた物理セクタアドレスの物理セクタの管理領域をアクセスしていき、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在する場合、この物理セクタに格納されたデータをホストコンピュータに送ると共にマッピングテーブルの内容を修正することを特徴とする不揮発性メモリを使用した外部記憶装置。
【請求項３】
請求項２記載の外部記憶装置において、ホストコンピュータからこの外部記憶装置へのデータ読み出し時に、二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なり、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在せず、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの値の互いに異なるビットの値を変化させた物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在しない場合には、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの値が互いに同じビットの値を変化させ、変化させた物理セクタアドレスの物理セクタの管理領域にアクセスしていき、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在するときには、この物理セクタに格納されたデータをホストコンピュータに送ると共にマッピングテーブルの内容を修正することを特徴とする不揮発性メモリを使用した外部記憶装置。
【請求項４】
請求項１、２又は３記載の不揮発性メモリを使用した外部記憶装置において、上記マッピングテーブルを三重化以上に多重化したことを特徴とする不揮発性メモリを使用した外部記憶装置。
【請求項５】
請求項４記載の不揮発性メモリを使用した外部記憶装置において、多重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なる場合であって、多重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値の多数決を取れるときには、多数となる物理セクタアドレスの物理セクタのデータをホストコンピュータに送ると共に、マッピングテーブルのホストコンピュータからの論理アドレスに対応する物理セクタアドレスの値を上記多数となる物理セクタアドレスに書き換えて処理を終了させることを特徴とする不揮発性メモリを使用した外部記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性メモリとして、例えばフラッシュメモリを用いたコンピュータの外部記憶装置に関する。
【０００２】
【従来の技術】
コンピュータの外部記憶装置としては、磁気ディスクドライブ（ハードディスクドライブ、以下Ｈ／Ｄと記す）がある。このＨ／Ｄは、大容量であるが機械部品を使用しているため、衝撃や振動に弱い欠点がある。この欠点を解消するためにフラッシュメモリを記憶媒体に使用する外部記憶装置が開発された。
【０００３】
外部記憶装置はセクタ単位で読み出しや書込みのアクセスが行われ、セクタのサイズとしては５１２バイトがよく使用されている。
【０００４】
フラッシュメモリは、その素子の構造から、書込みを行う前に消去が行われる必要がある。また、フラッシュメモリは、読み出しアクセス時間は速いが、消去時間と書込み時間とが長い。さらに、フラッシュメモリは、現状では書込み回数に１０5回という制限がある。このため、フラッシュメモリ内の一定個所が、書込みの集中により、上述した書込み回数の制限に達した場合には、フラッシュメモリのその他の領域が使用可能であっても、外部記憶装置としては、使用不可能となってしまう。
【０００５】
したがって、従来においては、フラッシュメモリはセクタサイズのデータを格納する複数の物理セクタに分割され、ホストコンピュータからの書込みデータを書込み回数の少ない物理セクタに書き込むように制御することにより、フラッシュメモリ内の一定個所への書込みの集中が回避され、フラッシュメモリの寿命を延ばし、フラッシュメモリを用いた外部記憶装置の長寿命化を図っていた。
【０００６】
【発明が解決しようとする課題】
ところで、従来の技術においては、フラッシュメモリ内の物理セクタは、ホストコンピュータからの書込みデータを保持するデータ領域と管理領域とに分けられ、この管理領域にはホストコンピュータのアクセスアドレスである論理セクタアドレスを格納していた。
【０００７】
ホストコンピュータからのデータの書込み時は、ホストコンピュータからの書込みデータをフラッシュメモリの物理セクタのデータ領域に書込んだ後に物理セクタの管理領域にホストコンピュータのアクセスアドレスである論理セクタアドレスを書込む。
【０００８】
また、フラッシュメモリを用いた外部記憶装置では、ホストコンピュータからのアクセスアドレスである論理セクタアドレスをフラッシュメモリ内の物理セクタアドレスに変換するマッピングテーブルが備えられている。そして、マッピングテーブルとポインタとは、特定の書き込み領域のみが繰り返し書き込まれるのを避けるため、特定ホストコンピュータからの書込みのたびに更新される。このため、マピングテーブルとポインタとはＲＡＭ上に作成される。
【０００９】
一方、半導体の分野では、微細化技術が著しく進展している。
各種メモリ素子では、この微細化技術の進展により、メモリ素子１個あたりの記憶容量は増大される反面、記憶セル１個の占める体積の縮小による蓄積電荷量の減少、微小欠陥の発生確率の上昇や、動作の高速化に伴う電気的なノイズの印加等の外部要因により、データ中のエラービットの発生確率が高くなる。
【００１０】
そこで、従来の技術においては、データの信頼性確保のために、セクタ毎に、フラッシュメモリに格納されるデータに対し、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｎｇ  ｆｅａｔｕｒｅ）に代表される誤り訂正可能な冗長化機構（以下ＥＣＣと記す）のチェックビットを用いていた。
【００１１】
しかしながら、マッピングテーブルに対しては、ＥＣＣは用いられていなかった。これは、マッピングテーブルにＥＣＣを用いるためには、マッピングテーブル用に別個のＥＣＣ用ＲＡＭが余分に必要となり、コストアップ、大型化、電力需要が大となるためである。
【００１２】
このため、マッピングテーブルが格納されているＲＡＭにおいてエラービットが発生すると、論理セクタアドレスから物理セクタアドレスへの変換が誤って行われ、ホストコンピュータに対し、要求した論理セクタアドレスのデータとは異なったデータを送ることになる。
【００１３】
以上述べたように、従来の技術では、マッピングテーブルを格納するＲＡＭ内でエラービットが生じた場合、フラッシュメモリを使用した外部記憶装置内のデータが破壊されるという問題点があった。
【００１４】
本発明の目的は、マッピングテーブル用に別個のＥＣＣ用ＲＡＭを必要とすること無く、マッピングテーブルの信頼性を向上させ、マッピングテーブルを格納するＲＡＭ内でエラービットが生じた場合でも、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することである。
【００１５】
【課題を解決するための手段】
本発明は、上記目的を達成するため、次のように構成される。
（１）不揮発性メモリを使用した外部記憶装置において、不揮発性メモリを記憶媒体とし、この記憶媒体の内部をデータの読み書きの単位である物理セクタに分割し、物理セクタをホストコンピュータからの書込みデータを保持するデータ領域と管理領域とに分割し、管理領域にはホストコンピュータのアクセスアドレスである論理セクタアドレスを格納すると共に、論理セクタアドレスとこの論理セクタアドレスのデータが格納されている上記記憶媒体内の物理セクタアドレスの対応表を少なくとも二重化してマッピングテーブルに格納し、ホストコンピュータからのデータ読み出し時は、ホストコンピュータからの論理セクタアドレスに対応する物理セクタアドレスを上記二重化した各々のマッピングテーブルから読み出し、読み出した値が互いに一致している場合は、上記マッピングテーブルの内容が正しいと判断し、上記マッピングテーブルから得られたフラッシュメモリの物理セクタアドレスのデータをホストコンピュータに送り、上記二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なる場合は、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタの管理領域にアクセスし、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在する場合、この物理セクタに格納されたデータを、ホストコンピュータに送ると共にマッピングテーブルの内容を、上記ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスに修正する。
【００１６】
マッピングテーブルは少なくとも二重化されているので、二重化されたマッピングテーブルのそれぞれに記憶された値を互いに比較すれば、マッピングテーブル内でエラービットが生じたことを判断することができる。そして、マッピングテーブル内でエラービットが生じた場合は、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタの管理領域にアクセスし、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタに格納されたデータを、ホストコンピュータに送ると共にマッピングテーブルの内容を、上記ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスに修正する。したがって、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
【００１７】
（２）好ましくは、上記（１）において、ホストコンピュータからこの外部記憶装置へのデータ読み出し時に、二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なり、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在しない場合には、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの互いに値の異なるビットの値を変化させた物理セクタアドレスの物理セクタの管理領域をアクセスしていき、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在する場合、この物理セクタに格納されたデータをホストコンピュータに送ると共にマッピングテーブルの内容を修正する。
【００１８】
マッピングテーブルに正しい物理セクタアドレスが格納されていない場合でも、各々のマッピングテーブルから読み出された物理アドレスの互いに値の異なるビットの値を変化させた物理セクタアドレスの物理セクタの管理領域をアクセスしていくので、さらに、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
（３）また、好ましくは、上記（２）において、ホストコンピュータからこの外部記憶装置へのデータ読み出し時に、二重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なり、各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在せず、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの値の互いに異なるビットの値を変化させた物理セクタアドレスの物理セクタで、管理領域にホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在しない場合には、上記二重化した各々のマッピングテーブルから読み出された物理アドレスの値が互いに同じビットの値を変化させ、変化させた物理セクタアドレスの物理セクタの管理領域にアクセスしていき、ホストコンピュータからのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタが存在するときには、この物理セクタに格納されたデータをホストコンピュータに送ると共にマッピングテーブルの内容を修正する。
【００１９】
各々のマッピングテーブルから読み出された物理アドレスの値が互いに同じビットの値を変化させ、変化させた物理セクタアドレスの物理セクタの管理領域にアクセスしていくので、さらに、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
【００２０】
（４）また、好ましくは、上記（１）、（２）又は（３）において、上記マッピングテーブルを三重化以上に多重化する。
【００２１】
（５）また、好ましくは、上記（４）において、多重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値が互いに異なる場合であって、多重化した各々のマッピングテーブルから読み出した物理セクタアドレスの値の多数決を取れるときには、多数となる物理セクタアドレスの物理セクタのデータをホストコンピュータに送ると共に、マッピングテーブルのホストコンピュータからの論理アドレスに対応する物理セクタアドレスの値を上記多数となる物理セクタアドレスに書き換えて処理を終了させる。
【００２２】
各々のマッピングテーブルから読み出した物理セクタアドレスの値の多数決を取れるときには、アドレスの物理セクタの管理領域からの読み出しを省略でき、ホストコンピュータに対する不揮発性メモリを使用した外部記憶装置のアクセス速度を高速化することが可能となる。
【００２３】
【発明の実施の形態】
以下、図面を用いて本発明の実施形態を説明する。
図１は、本発明の第１の実施形態である外部記憶装置の概略構成を示す図である。図１において、１００はフラッシュメモリを使用した外部記憶装置であり、この外部記憶装置１００はホストコンピュータ２００と接続される。
【００２４】
また、１はホストコンピュータインタフェースであり、２は本発明の記憶媒体として使われるフラッシュメモリ（記憶媒体）である。そして、３はマッピングテーブルを格納するＲＡＭである。
【００２５】
また、４は制御回路であり、この制御回路４は、ホストインタフェース１、フラッシュメモリ２、ＲＡＭ３を制御する。さらに、制御回路４は、ホストインタフェースバス５、ホストインタフェース制御線６を介してホストインタフェース１を制御する。そして、フラッシュメモリ２と、ＲＡＭ３のメモリアドレスバス７と、メモリデータバス８とは、メモリ制御線９を介して制御回路４により制御される。
【００２６】
図２は、図１に示したフラッシュメモリ２の構成図である。
図２において、フラッシュメモリ２の内部は、データの読み書きの単位である物理セクタ２０に分けられる。この物理セクタ２０のデータのサイズとしては、１物理セクタで、５１２バイトがよく使用されている。
【００２７】
図３は、図２に示した物理セクタ２０の構成図である。
図３において、物理セクタ２０はホストコンピュータ２００からの書込みデータを格納するデータ領域２１と、物理セクタ２０の管理情報を格納する管理領域２２とから構成される。この管理領域２２にはデータ領域２１に書込まれたデータに対するホストコンピュータ２００のアクセスアドレスである論理セクタアドレス２３が格納される。
【００２８】
図４は、マッピングテーブル（論理セクタアドレスとこの論理セクタアドレスのデータが格納されている記憶媒体内の物理セクタアドレスの対応表）を格納するＲＡＭ３の構成図である。本発明では、ＲＡＭ３内にマッピングテーブルを多重化してもち、この図４の例は、マッピングテーブルを二重化した場合の構成例である｛（アドレス０〜ｎ）、（０＋ｘ〜ｎ＋ｘ）｝。
【００２９】
図４において、論理セクタアドレス０のデータを格納する物理セクタのアドレスは、ＲＡＭ３のアドレス０及びアドレス０＋ｘに格納される。同様に、論理セクタアドレス１のデータを格納する物理セクタのアドレスは、ＲＡＭ３のアドレス１及びアドレス１＋ｘに格納される。
【００３０】
つまり、ａを任意のアドレス番号とすれば、論理セクタアドレスａのデータを格納する物理セクタのアドレスは、ＲＡＭ３のアドレスａ及びアドレスａ＋ｘに格納される。
【００３１】
ここで、ｘはフラッシュメモリを使用した外部記憶装置１００の論理セクタ数である。ＲＡＭ３に必要な容量はマッピングテーブルの多重度をｍ、物理セクタアドレスを格納するために必要なバイト数をｂとすると、ｍ×ｘ×ｂとなる。
【００３２】
次に、図５及び図６を用いて、ホストコンピュータ２００からフラッシュメモリ２を使用した外部記憶装置１００への書込み動作について説明する。
図５は、ホストコンピュータ２００からフラッシュメモリ２を使用した外部記憶装置１００にデータの書込みがあった際のフラッシュメモリ２へのデータの書込み動作を示す。
【００３３】
まず、ホストコンピュータ２００は、書込みを行うセクタのアドレスと書込みデータとをホストインタフェース１に送る。次に、制御回路４は、ホストインタフェースバス５を介して、書込みを行う論理セクタアドレスと書込みデータとホストインターフェース１から受け取る。
【００３４】
そして、制御回路４は、メモリアドレスバス７を介して、フラッシュメモリ２の書込みが行われる物理セクタ２０のアドレスを指定して、書込みデータ及び論理セクタアドレスをメモリデータバス８に乗せ、フラッシュメモリ２に書込む。この際、制御回路４は、アルゴリズムにより、ホストコンピュータ２００からの書込みデータを格納するために、書き換え回数の少ない物理セクタ２０を選定する。
【００３５】
また、フラッシュメモリ２は、その素子の構造から書込みを行う前に消去を行う必要があるため、フラッシュメモリ２の書込みを行う物理アドレスセクタの消去が行われていない場合は、データの書込み前にその消去を行う。ホストコンピュータ２００からの書込みデータは、物理セクタ２０のデータ領域２１に書き込まれ、ホストコンピュータ２００からの論理セクタアドレスは管理領域２２に書き込まれる。
【００３６】
図６は、フラッシュメモリ２への書込み後のフラッシュメモリ２を使用した外部記憶装置１００のマッピングテーブルの更新動作を示す図である。図６において、制御回路４は、メモリアドレスバス７を介してＲＡＭ３の書込みが行われるアドレスを指定して、書込みが行われたフラッシュメモリ２の物理セクタアドレスをメモリデータバス８に乗せ、ＲＡＭ３に書込む。
【００３７】
図５に示した動作でホストコンピュータ２００からの論理セクタアドレスをＲ１、制御回路４により選定された物理セクタの物理セクタアドレスをＰ１とすると、図４に示されるＲＡＭ３の構造では、ＲＡＭ３のアドレスＲ１とＲ１＋ｘとに、書込みが行われたフラッシュメモリ２の物理セクタアドレスＰ１が書き込まれる。
【００３８】
図７から図９は、マッピングテーブルを格納するＲＡＭ３にエラービットが生じてない場合の、ホストコンピュータ２００のフラッシュメモリ２を使用した外部記憶装置１００への読み出しアクセス時の動作を示す図である。
【００３９】
図７において、ホストコンピュータ２００は、読み出しをおこなう論理セクタアドレスをホストインタフェース１に送る。制御回路４はホストインタフェースバス５を介して読み出しを行う論理セクタアドレスを受け取る。
【００４０】
図８において、その後、制御回路４は、メモリアドレスバス７を介して、ＲＡＭ３のホストコンピュータ２００からの読み出しを行う論理セクタアドレスに対応するフラッシュメモリ２の物理セクタアドレスを格納するアドレスを指定して、メモリデータバス８を介してＲＡＭ３から物理セクタアドレスを読み出す。
【００４１】
図７に示した動作において、ホストコンピュータ２００からの論理セクタアドレスをＲ２とし、論理セクタアドレスＲ２のデータが格納されているフラッシュメモリ２の物理セクタのアドレスＰ２とすると、制御回路４は、ＲＡＭ３のアドレスＲ２に格納されている物理セクタアドレスと、Ｒ２＋ｘに格納されている物理セクタアドレスとを比較する。この場合、図４に示されるＲＡＭ３の構造では、ＲＡＭ３のアドレスＲ２とＲ２＋ｘとから、物理セクタアドレスＰ２が読み出され、両者は一致することとなる。
【００４２】
図９において、ＲＡＭ３からホストコンピュータ２００からの論理セクタアドレスのデータを格納する物理セクタ２０のアドレスが得られたら、制御回路４は、メモリアドレスバス７を介して、ＲＡＭ３から得られた物理セクタ２０のアドレスを指定して、メモリデータバス８を介してフラッシュメモリ２からデータを読み出す。
【００４３】
そして、制御回路４は、ホストインタフェースバス５を介して、読み出したデータをホストインタフェース１に送り、更に、ホストインタフェース１からホストコンピュータ２００に読み出したデータを送る。
【００４４】
二重化した各々のマッピングテーブルから読み出した物理セクタアドレスが一致しないと、制御回路４が判断した場合は、上記図８から図９の動作の間に各々のマッピングテーブルから読み出された物理セクタアドレスの物理セクタ２０の管理領域２２にアクセスし、ホストコンピュータ２００からのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタ２０が存在するかどうか確認する動作とマッピングテーブルの内容の修正動作とが加わる。
【００４５】
この様子を図１０から図１３を用いて説明する。
図１０において、制御回路４は、メモリアドレスバス７により、ＲＡＭ３の各々のマッピングテーブルから得られた物理セクタ２０のアドレスを指定して、メモリデータバス８を介して物理セクタ２０の管理領域２２に格納されている、上記物理セクタ２０のデータ格納領域２１に格納されたデータの論理アドレスを読み出す。
【００４６】
図１１に示すように、ＲＡＭ３のアドレス０と０＋ｘとに格納されている、論理セクタアドレス０のデータを格納する物理セクタアドレスが、それぞれ、１０００００と１００００１とであり、互いに異なっている場合は、図１０に示した動作のように、アドレスが１０００００と１００００１の物理セクタ２０の管理領域２２のデータを読み出す。
【００４７】
そして、制御回路４は、各物理セクタ２０の管理領域２２から論理セクタアドレスの読み出しを行ったら、それらがホストコンピュータ２００からの論理セクタアドレスと一致するかどうかを確認する。
【００４８】
図１２に示すように、アドレスが１０００００と１００００１の物理セクタ２０の管理領域２２のデータが、それぞれ、５、０となっているとすると、アドレス１００００１の物理セクタ２０が論理セクタアドレス０のデータを格納しており、アドレス１００００１が正しいアドレスであるということが判断されることとなる。
【００４９】
図１１、図１２に示した例のように、ホストコンピュータ２００からのアクセスアドレスと同じ論理セクタアドレスを持つ物理セクタ２０が存在す場合は、図６に示した動作により、ＲＡＭ３のマッピングテーブルを修正する。
【００５０】
図１１、図１２に示した例では、図１３に示すように、ＲＡＭ３のアドレス０に格納されている論理セクタアドレス０に対応する物理セクタアドレスの値が１０００００から１００００１に書き換えられる。
【００５１】
そして、マッピングテーブルの修正が終わったら、図９に示した動作により、ホストコンピュータ２００からの論理セクタアドレスに対応する物理セクタ２０のデータをホストコンピュータ２００に送る。
【００５２】
図１１、図１２に示した例では、ホストコンピュータ２００からの論理セクタアドレス０のデータを格納している物理セクタ２０のアドレスは、１００００１であるため、アドレス１００００１の物理セクタ２０のデータ領域２１に格納されているデータをホストコンピュータ２００に送る。
【００５３】
図１１、図１２の例のように、ＲＡＭ３のアドレス０でエラービットが生じた場合、従来の技術においては、マッピングテーブルが一つしかないので、ＲＡＭ３のアドレス０に格納された１０００００を論理セクタアドレス０のデータを格納する物理セクタのアドレスとみなす。
【００５４】
そのため、アドレス１０００００の物理セクタは、論理セクタアドレス５のデータを格納しているにも拘わらず、フラッシュメモリ２を使用した外部記憶装置１００は、アドレス１０００００の物理セクタに格納されたデータを論理セクタアドレス０のセクタのデータとして、ホストコンピュータ２００に送ってしまう。
この結果、従来の技術においては、ＲＡＭ３にエラービットが生じた場合は、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性が損なわれてしまっていた。
【００５５】
これに対して、本発明の第１の実施形態によれば、ＲＡＭ３にエラーが生じても上述した動作により、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性を確保できる。
【００５６】
つまり、本発明の第１の実施形態によれば、マッピングテーブル用に別個のＥＣＣ用ＲＡＭを必要とすること無く、マッピングテーブルの信頼性を向上させ、マッピングテーブルを格納するＲＡＭ内でエラービットが生じた場合でも、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
【００５７】
なお、最近は、微細化の進行により、ＲＡＭの容量が増大しているため、ＲＡＭの素子数を増やさずに、マッピングテーブルを多重化でき、コストアップ無しに、フラッシュメモリを使用した外部記憶装置１００のデータの信頼性を向上させることが出来る。
【００５８】
上述した本発明の第１の実施形態では、ＲＡＭ３にエラービットが生じた場合であって、エラービットの数が１ビットのときには、図１１、図１２に示した例のようにして、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性を確保することができるが、エラービットの数が複数になると、図１１、図１２の例に示した方法では、フラッシュメモリを使用した外部記憶装置１００のデータの信頼性を確保できない場合がある。
【００５９】
その場合のデータの信頼性を確保する場合の例が、本発明の第２の実施形態である。この第２の実施形態を図１４及び図１５を用いて説明する。
【００６０】
図１４において、ＲＡＭ３のアドレス１と１＋ｘに格納されている、論理セクタアドレス１のデータを格納する物理セクタアドレスは、それぞれ１００１００と１００１１１とである。そこで、制御回路４は、図１０に示した動作のように、。アドレスが１００１００と１００１１１の物理セクタ２０の管理領域２２のデータを読み出す。
【００６１】
しかし、図１５に示すように、アドレスが１００１００と１００１１１の物理セクタ２０の管理領域２２のデータは、それぞれ、４、６となっているとすると、それらは、ホストコンピュータ２００からの論理セクタアドレス１とは一致しない。
【００６２】
図１４に示した例では、ＲＡＭ３のアドレス１と１＋ｘに格納されている、物理セクタアドレスは、下位の２ビットが異なっているため、ＲＡＭ３のアドレス１と１＋ｘに格納されている、物理セクタアドレスの下位２ビットの値を変化させた、１００１０１と１００１１０の物理セクタ２０の管理領域２２のデータを読み出し、制御回路４にて、ホストコンピュータ２００からの論理セクタアドレス１と一致するかどうか確認する。
【００６３】
図１５に示すように、アドレスが１００１０１と１００１１０の物理セクタ２０の管理領域２２のデータがそれぞれ、２、１となっているとすると、アドレス１００１１０の物理セクタ２０が論理セクタアドレス１のデータを格納していることとなる。
【００６４】
そこで、図６に示した動作により、図１６に示すように、ＲＡＭ３のアドレス１、１＋ｘに格納されている論理セクタアドレス１に対応する物理セクタアドレスの値を、それぞれ１００１００、１００１１１から１００１１０に書き換えて、マッピングテーブルを修正する。
【００６５】
そして、マッピングテーブルの修正が終わったら、図９に示したの動作により、ホストコンピュータ２００からの論理セクタアドレス１に対応するアドレス１００１１０の物理セクタ２０のデータをホストコンピュータ２００に送る。
【００６６】
このようにして、ＲＡＭ３に発生するエラービットが複数の場合でもフラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性を確保することができる。
【００６７】
図１５及び図１６を用いて説明した動作のように、管理領域２２に、ホストコンピュータ２００からの論理セクタアドレスと同じ論理セクタアドレスを持つ物理セクタ２０が存在しない場合は、各々のマッピングテーブルから読み出された物理アドレスの値が同じビットの値を変化させて、図１５及び図１６を用いて説明した動作と同様の動作を行うことにより、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性を確保することができる。
【００６８】
つまり、本発明の第２の実施形態によれば、エラービットの数が複数であっても、マッピングテーブル用に別個のＥＣＣ用ＲＡＭを必要とすること無く、マッピングテーブルの信頼性を向上させ、マッピングテーブルを格納するＲＡＭ内でエラービットが生じた場合でも、フラッシュメモリを使用した外部記憶装置のデータの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
【００６９】
以上、本発明において、マッピングテーブルを二重化した場合のフラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性の向上について述べたが、マッピングテーブルを三重化以上に多重化した場合には、さらに、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性の向上を図ることができる。
【００７０】
例えば、マッピングテーブルを二重化した場合、論理セクタアドレスａに対応する物理セクタアドレスを格納するＲＡＭ３のアドレスはａとａ＋ｘとなるが、ＲＡＭ３のアドレスａとａ＋ｘの同じビットにエラービットが生じた場合は、ＲＡＭ３のエラービットの発生を検出できず、ホストコンピュータ２００からの論理セクタアドレスａに対する読み出しアクセス時に、誤ったデータを送ってしまう。
【００７１】
しかし、マッピングテーブルを三重化以上に多重化した場合は、エラービットが生じていないマッピングテーブルが、少なくとも一つ以上存在する可能性が非常に高いために、各々のマッピングテーブルから読み出された物理セクタアドレスの比較時に、ＲＡＭ３のエラービット発生をほぼ確実に検出でき、フラッシュメモリ２を使用した外部記憶装置１００のデータの信頼性を確保することができる。
【００７２】
また、マッピングテーブルを三重化以上に多重化し、各々のマッピングテーブルから読み出された物理セクタアドレスを比較して一致しない場合、各々のマッピングテーブルから読み出された物理セクタアドレスの多数決によりホストコンピュータ２００からの論理セクタアドレスに対応する物理セクタアドレスを決定すれば、各々のマッピングテーブルから読み出されたアドレスの物理セクタ２０の管理領域２２からの読み出しを省略でき、ホストコンピュータ２００に対するフラッシュメモリ２を使用した外部記憶装置１００のアクセス速度を高速化することが可能となる。
【００７３】
なお、上述した例は、不揮発性メモリとしてフラッシュメモリを使用した場合の例であるが、不揮発性メモリとしては、フラッシュメモリだけでなく、他のメモリ、例えば、ＥＥＰＲＯＭ、強誘電体メモリ等を使用することも可能である。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、マッピングテーブル用に別個のＥＣＣ用ＲＡＭを必要とすること無く、マッピングテーブルの信頼性を向上させ、マッピングテーブルを格納するＲＡＭ内でエラービットが生じた場合でも、データの信頼性を維持することが可能な、不揮発性メモリを使用した外部記憶装置を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態である外部記憶装置の概略構成図である。
【図２】図１に示したフラッシュメモリの構成を示す図である。
【図３】図２に示した物理セクタの構成を示す図である。
【図４】図１に示したＲＡＭの構成を示す図である。
【図５】ホストコンピュータから外部記憶装置にデータの書込みがあった際のフラッシュメモリへのデータの書込み動作を示す図である。
【図６】マッピングテーブル更新のためのＲＡＭへのデータの書込み動作を示す図である。
【図７】ホストコンピュータから外部記憶装置への読み出しを行う論理セクタアドレスの送出動作を示す図である。
【図８】ＲＡＭに格納されたマッピングテーブルへの読み出しアクセス動作を示す図である。
【図９】ホストコンピュータのからの外部記憶装置への読み出しアクセス時に、フラッシュメモリからのデータ読み出し動作を示す図である。
【図１０】フラッシュメモリの物理セクタの管理領域からの読み出し動作を示す図である。
【図１１】マッピングテーブルを格納するＲＡＭ内のデータの例を示す図である。
【図１２】フラッシュメモリの物理セクタの管理領域のデータの例を示す図である。
【図１３】ＲＡＭ内のマッピングテーブルの更新動作を示す図である。
【図１４】本発明の第２の実施形態におけるマッピングテーブルを格納するＲＡＭ内のデータの例を示す図である。
【図１５】本発明の第２の実施形態におけるフラッシュメモリの物理セクタの管理領域のデータの例を示す図である。
【図１６】ＲＡＭ内のマッピングテーブルの更新動作を示す図である。
【符号の説明】
１        ホストインタフェース
２        フラッシュメモリ
３        ＲＡＭ
４        制御回路
５        ホストインタフェースバス
６        ホストインタフェース制御線
７        メモリアドレスバス
８        メモリデータバス
９        メモリ制御線
２０      物理セクタ
２１      データ領域
２２      管理領域
１００    フラッシュメモリを使用した外部記憶装置
２００    ホストコンピュータ
【図１】
0003769395.tif 000002
【図２】
0003769395.tif 000003
【図３】
0003769395.tif 000004
【図４】
0003769395.tif 000005
【図５】
0003769395.tif 000006
【図６】
0003769395.tif 000007
【図７】
0003769395.tif 000008
【図８】
0003769395.tif 000009
【図９】
0003769395.tif 000010
【図１０】
0003769395.tif 000011
【図１１】
0003769395.tif 000012
【図１２】
0003769395.tif 000013
【図１３】
0003769395.tif 000014
【図１４】
0003769395.tif 000015
【図１５】
0003769395.tif 000016
【図１６】
0003769395.tif 000017