(57)【要約】【課題】  フラッシュメモリをホストシステムの内部に実装できるようにする。【解決手段】  ホストシステムの持つバスに電気的に接続されるコネクタ１４ａと、フラッシュメモリ２と、メモリコントローラ３とを、基板に搭載し、ホストシステムの内部に実装されるようになっている。コネクタ１４ａは、ホストシステムの持つバスに電気的に接続され、コネクタ１４ａを介してそのバスから与えられる書込み命令若しくは読出し命令に基づいてメモリコントローラ３がフラッシュメモリ２に対するアクセスを制御する。【選択図】  図１
2006040484.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムの持つバスに電気的に接続されるコネクタと、
フラッシュメモリと、
前記フラッシュメモリに接続され、前記コネクタを介して前記バスから与えられる書込み命令若しくは読出し命令に基づいて該フラッシュメモリに対するアクセスを制御する制御回路と、
前記コネクタ、前記制御回路及び前記フラッシュメモリが実装された基板と、
を備えることを特徴とするフラッシュメモリモジュール。
【請求項２】
前記コネクタを介して供給される電源の電圧値を検出する手段と、
前記電圧値が予め設定された電圧値に達するまで、前記制御回路を停止状態にする起動制御回路と、
を備えることを特徴とする請求項１に記載のフラッシュメモリモジュール。
【請求項３】
前記コネクタが前記バスに接続されることにより、前記基板が前記ホストシステムの内部の主基板に実装され、該基板と該主基板とが対向することを特徴とする請求項１又は２に記載のフラッシュメモリモジュール。
【請求項４】
前記制御回路の少なくとも一部と前記フラッシュメモリとが、前記基板の互いに異なる面に実装されていることを特徴とする請求項１乃至３のいずれか１項に記載のフラッシュメモリモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリモジュールに関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスク等の形態でメモリシステムに使用される半導体メモリとして、フラッシュメモリが広く採用されている。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリである。
ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“１”を示し、書込み状態の時に“０”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
【０００４】
これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルは他のメモリセルと独立して変化させることができない。この書込状態から消去状態に変化させるときには、ブロックと称される予め定められた所定数のメモリセルを全て同時に消去状態にする。この一括消去動作は、一般的に、「ブロック消去」と称されている。ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位に処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
又、フラッシュメモリには寿命があり、消去処理と書込処理が繰り返される書替の回数が増大すると、正常な書込みを行なうことができない不良ブロックが発生する。この不良ブロックの数が増えると、フラッシュメモリの信頼性が低下し、使用し続けることが困難になる。従って、フラッシュメモリは、通常、ホストシステムの基板に実装して使用されず、各種の外部インターフェースコネクタを介して接続される外部記憶メディアとして使用されている。
【０００６】
下記特許文献１では、コンパクトフラッシュ（登録商標）でありながら、スマートメディアとしても利用できる外部記憶メディアが提案されている。
【特許文献１】特開２００２−４２０６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
フラッシュメモリに、ブートプログラムやドライバプログラム等を記憶して、ホストシステム内に内臓して使用したい場合がある。しかしながら、特許文献１に示されているコンパクトフラッシュ（登録商標）やスマートメディアは、外部記憶メディアとして使用することはできるが、ホストシステム内に内臓して使用することはできなかった。
【０００８】
本発明は、ホストシステム内に内臓して使用するのに好適なフラッシュメモリモジュールを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の観点に係るフラッシュメモリモジュールは、ホストシステムの持つバスに電気的に接続されるコネクタと、フラッシュメモリと、前記フラッシュメモリに接続され、前記コネクタを介して前記バスから与えられる書込み命令若しくは読出し命令に基づいて該フラッシュメモリに対するアクセスを制御する制御回路と、前記コネクタ、前記制御回路及び前記フラッシュメモリが実装された基板と、を備えることを特徴とする。
【００１０】
なお、前記コネクタを介して供給される電源の電圧値を検出する手段と、前記電圧値が予め設定された電圧値に達するまで、前記制御回路を停止状態にする起動制御回路と、を備えてもよい。
【００１１】
又、前記コネクタが前記バスに接続されることにより、前記基板が前記ホストシステムの内部の主基板に実装され、該基板と該主基板とが対向するようにしてもよい。
【００１２】
又、前記制御回路の少なくとも一部と前記フラッシュメモリとが、前記基板の互いに異なる面に実装されてもよい。
【発明の効果】
【００１３】
本発明のフラッシュメモリモジュールは、コネクタを介してホストシステム内の主基板に実装することができるので、ブートプログラムやドライバプログラム等を記憶したフラッシュメモリモジュールを、ホストシステム内に容易に内蔵させることができる。又、コネクタを介して実装されているので、不良ブロックの増加等の不具合が生じた場合であっても、容易に交換することができる。更に、フラッシュメモリモジュールの初期化等を別の装置で行なった後に、ホストシステム内の主基板に実装することもできる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づき、本発明の実施形態について説明する。
図１は、本発明の実施形態に係るフラッシュメモリモジュール１を概略的に示す機能ブロック図である。
図２は、フラッシュメモリモジュールの外形を示す図である。
【００１５】
図１のように、フラッシュメモリモジュール１は、ＮＡＮＤ型フラッシュメモリで構成されたフラッシュメモリ２と、フラッシュメモリ２を制御するメモリコントローラ３とを備えている。
【００１６】
フラッシュメモリモジュール１は、図２（ｂ）に示したようにホストシステム内の主基板１６にコネクタ１４ａを介して実装され、ホストシステム内に内蔵された記憶装置として用いられる。フラッシュメモリモジュール１は、外部インターフェースコネクタに接続される記憶メディアとは異なり、頻繁に抜差しされることがないため、ブートプログラムやドライバプログラム等のプログラムやホストシステムで頻繁使用されるデータ等を保存する用途に適している。
【００１７】
フラッシュメモリモジュール１は、図２（ａ）に示したように、基板１５の一方の面にフラッシュメモリ２が実装され、他方の面にメモリコントローラ３が実装されている。このように、フラッシュメモリ２とメモリコントローラ３を異なる面に実装することにより、基板１５の面積を小さくすることができる。
【００１８】
基板１５のメモリコントローラ３が実装されている面には、ホストシステム内の主基板１６と接続するためのコネクタ１４ａが実装されている。ホストシステム内の主基板１６には、フラッシュメモリモジュール１の基板１５に実装されているコネクタ１４ａと接続するコネクタ１４ｂが実装されている。このコネクタ１４ｂは、フラッシュメモリモジュール１内のＡＴＡバス４に接続されている。従って、コネクタ１４ａとコネクタ１４ｂが接続されることにより、フラッシュメモリモジュール１は、ホストシステム内のＡＴＡバス４に接続される。
【００１９】
基板１５に実装されているフラッシュメモリ２及びメモリコントローラ３は、コネクタ１４（１４ａ、１４ｂ）を介してホストシステム内の主基板１６側から供給される電源によって動作する。この電源の電圧が、低い状態でフラッシュメモリ２やメモリコントローラ３が動作を開始してしまうと、フラッシュメモリモジュール１が誤動作を起こす恐れがある。従って、主基板１６側から供給される電源の電圧が所定の電圧レベルに達するまで、フラッシュメモリ２及びメモリコントローラ３が起動しないように制御する回路を、基板１５に実装することが好ましい。
【００２０】
尚、フラッシュメモリ２、メモリコントローラ３及びコネクタ１４ａとして、表面実装タイプのものを用いた方が、フラッシュメモリモジュール１の小型化に適している。フラッシュメモリモジュール１の基板１５とホストシステム内の主基板１６とが対向配置されるようにすれば、フラッシュメモリモジュール１のホストシステム内の主基板１６上での高さを低くすることができる。コネクタ１４（１４ａ、１４ｂ）だけの固定では不十分な場合には、保持部材等を用いて、確実に固定することが好ましい。
【００２１】
フラッシュメモリモジュール１とホストシステム内の主基板１６はコネクタ１４（１４ａ、１４ｂ）を介して接続されるので、ホストシステム側のコネクタ１４ｂと同一のコネクタを実装した検査装置等で、フラッシュメモリモジュール１の動作確認や初期設定を行なった後に、フラッシュメモリモジュール１をホストシステム内の主基板１６に実装することもできる。
【００２２】
尚、ホストシステムとしては、文字、音声、或いは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【００２３】
フラッシュメモリ２は、ページ単位で読出し又は書込みを実行し、ブロック単位で消去を実行するデバイスである。
【００２４】
メモリコントローラ３は、ホストシステム内のＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）バス４を介したフラッシュメモリ２のアクセスを制御する回路であり、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、内部インターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。
【００２５】
これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【００２６】
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づきホストインターフェースブロック７は動作する。
マイクロプロセッサ６は、メモリコントローラ３を構成する各機能ブロック全体の動作を制御する機能ブロックである。
【００２７】
ホストインターフェースブロック７は、ＡＴＡバス４を介してデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリモジュール１がホストシステム内に実装されると、フラッシュメモリモジュール１はホストシステム内のＡＴＡバス４に接続される。この状態において、ＡＴＡバス４を介して供給されるデータ等は、ホストインターフェースブロック７を入口としてメモリコントローラ３の内部に取り込まれる。フラッシュメモリモジュール１からＡＴＡバス４に供給されるデータ等は、ホストインターフェースブロック７を出口としてＡＴＡバス４に供給される。
【００２８】
さらに、ホストインターフェースブロック７は、ＡＴＡバス４を介して供給されるアドレス情報及び外部コマンドを一時的に保持するタスクファイルレジスタ（図示せず）及びエラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００２９】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のスタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：以下、ＳＲＡＭという）によって構成される機能ブロックである。
【００３０】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出されたデータは、メモリコントローラ３が受取準備できたことを知せる信号を、ＡＴＡバス４を介して受取るまでバッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込み準備ができるまでバッファ９に保持される。
【００３１】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づきフラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。
【００３２】
ここで、「内部コマンド」とは、メモリコントローラ３からフラッシュメモリ２に与えられるコマンドであり、ＡＴＡバス４を介してフラッシュメモリモジュール１に与えられるコマンドである「外部コマンド」とは区別される。
【００３３】
内部インターフェースブロック１０は、内部バス１３を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行なう機能ブロックである。
【００３４】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、フラッシュメモリ２から読出したデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００３５】
次に、フラッシュメモリ２について説明する。
フラッシュメモリモジュール１で、フラッシュメモリ２を構成するＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で行われ、消去についてはブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みを行なう。
【００３６】
フラッシュメモリ２は、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済みブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。このようなデータの書替えを行なった場合、書替後のデータは、書替前のデータと異なるブロックに書込まれる。
【００３７】
そのため、ＡＴＡバス４を介して与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ２内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
【００３８】
上記ブロックの構成は、ＮＡＮＤ型フラッシュメモリの仕様によって異なる。
図３（ａ），（ｂ）は、ブロックとページの関係を示す説明図である。
一般的なＮＡＮＤ型フラッシュメモリでは、図３（ａ）に示したように、１ブロックが３２ページ（Ｐ００〜Ｐ３１）で構成され、各ページが５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。
【００３９】
又、記憶容量の増加に伴い、図３（ｂ）に示したように、１ブロックが６４ページ（Ｐ００〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザ領域と６４バイトの冗長領域で構成されているものも提供されている。
【００４０】
この実施形態のフラッシュメモリ２では、１ブロックが３２ページ（Ｐ００〜Ｐ３１）で構成され、各ページを５１２バイトのユーザ領域と１６バイトの冗長領域で構成したものを用いる。
【００４１】
ユーザ領域は、主に、ＡＴＡバス４を介して供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。
エラ―コレクションコードとは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のＥＣＣブロック１１によって生成される。
【００４２】
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示すものである。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済みブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済みブロックであると判断される。
【００４３】
ブロックステータスは、そのブロックが不良ブロック（正常にデータの書込み等を行なうことができないブロック）であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００４４】
一般的なＮＡＮＤ型フラッシュメモリと同様に、フラッシュメモリ２は、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタとの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００４５】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと呼ばれ、下側のゲートはフローティングゲートと呼ばれている。フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書込み若しくはデータの消去を行なっている。
【００４６】
このフローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。
【００４７】
フローティングゲートに電子が注入されている状態（書込状態）が、論理値の“０”のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値の“１”のデータに対応する。
【００４８】
次に、フラッシュメモリ２に対するアクセスについて説明する。
フラッシュメモリ２内の複数のブロックでゾーンを構成し、フラッシュメモリ２に対するアクセスを制御する場合について説明する。
【００４９】
図４は、ゾーンの説明図であり、例えば、１０２４のブロックでゾーンを構成した例を示している。
フラッシュメモリ２では、例えば１０２４のブロックＢ００００〜Ｂ１０２３で１つのゾーンを構成している。各ブロックは、３２ページＰ００〜Ｐ３１で構成されている。前述したように、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリ２の仕様によって異なる。
【００５０】
このゾーンは、一定範囲の論理ブロックアドレス空間に割当てられている。図５に示した例では、１０２４のブロックで構成されたゾーンを、１０００ブロック分の論理ブロックアドレスの空間に割当てている。ここで、ゾーンを構成するブロックが、２４ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので、実質的には２３ブロック分が余計に割当てられていることになる。尚、ゾーンを構成するブロックの数は、フラッシュメモリモジュール１の用途やフラッシュメモリ２の仕様に応じて適宜設定される。
【００５１】
各ゾーンに割当てられている１０００ブロック分の論理ブロックアドレスと、ゾーンを構成する各ブロックとの対応関係、つまり、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理するため、各ブロックの冗長領域には、対応論理ブロックアドレスが書込まれる。この対応論理ブロックアドレスは、ＡＴＡバス４を介して与えられる論理ブロックアドレスをそのまま書込んでもよいが、各ゾーンに割当てられた論理ブロックアドレス空間内での通番（各ゾーンを１０００ブロック分の論理ブロックアドレスの空間に割当てた場合は０〜９９９までの通番）を書込んでもよい（以下、各ゾーンに割当てられた論理ブロックアドレス空間内での通番を論理通番と言う）。
【００５２】
図５は、論理ブロックアドレスとゾーンを示す説明図である。
ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。
【００５３】
例えば図５で、ゾーン０に割当てられた論理ブロックアドレス空間の先頭アドレスがＡＤＤ０の場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン０：ＡＤＤ０
ゾーン１：ＡＤＤ０＋１０００×１
ゾーン２：ＡＤＤ０＋１０００×２
ゾーン３：ＡＤＤ０＋１０００×３
・
・
・
ゾーンＮ：ＡＤＤ０＋１０００×Ｎ
【００５４】
次に、アドレス変換テーブルについて図面を参照して説明する。
フラッシュメモリモジュール１のマイクロプロセッサ６は、ＡＴＡバス４を介して与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ２内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ２にアクセスしている。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、アドレス変換テーブルを用いて行なわれる。
【００５５】
アドレス変換テーブルは、各ゾーンに割当てられている論理ブロックアドレスとゾーンを構成するブロックとの対応関係を示したテーブルであり、マイクロプロセッサ６が、ワークエリア８を利用してゾーンごとに作成する。
【００５６】
図６は、アドレス変換テーブルの説明図である。
このアドレス変換テーブルでは、１０００ブロック分の論理ブロックアドレスに対応する物理ブロックが、物理通番で示されている。ここで、物理通番とは、各ゾーン内で物理ブロックアドレスの順番で付けた通番（２進数：０００  ００００  ００００ｂ〜０１１  １１１１  １１１１ｂ）であり、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ２内での実際の物理ブロックアドレスに変換することができる。
【００５７】
例えば、フラッシュメモリ２内のブロックをアドレス順でゾーン０からゾーンＮに割付けた場合、各ゾーンには次のようなオフセットが割当てられる。
ゾーン０：０
ゾーン１：０＋１０００×１
ゾーン２：０＋１０００×２
ゾーン３：０＋１０００×３
・
・
・
ゾーンＮ：０＋１０００×Ｎ
【００５８】
このアドレス変換テーブルを用いて論理ブロックアドレスを物理ブロックアドレスに変換するときは、ＡＴＡバス４を介して与えられる論理ブロックアドレスの割当てられているゾーン（ゾーン０〜Ｎのいずれかのゾーン）を求め、そのゾーンに対応するアドレス変換テーブルを用いてアドレス変換処理を行なう。
【００５９】
このアドレス変換処理では、ＡＴＡバス４を介して与えられる論理ブロックアドレスから求めた論理通番に対応する物理通番をアドレス変換テーブルから読出し、読出した物理通番を物理ブロックアドレスに変換する。
【００６０】
例えば、図６の例では、ＡＴＡバス４を介して与えられた論理ブロックアドレスから求めた論理通番が“０”であれば、この論理通番に対応する物理通番は“９”（０００  ００００  １００１ｂ（２進数））になる。同様に、論理ブロックアドレスから求めた論理通番が“１”であれば、この論理通番に対応する物理通番は“２”（０００  ００００  ００１０ｂ（２進数））になる。この物理通番に、各ゾーンに割当てられているオフセットを加えることにより、論理ブロックアドレスを物理ブロックアドレスに変換することができる。
【００６１】
図６に示したアドレス変換テーブルを作成する場合、例えば、１０００ブロック分の物理通番を記述できる領域をワークエリア８上に確保する。この際、１０００ブロック分の領域を、論理通番の順番で、各論理通番に対応する物理通番を記述する領域として割当てる。ここで、更に、各論理通番に対応するデータが記憶されているか否かを判断するために、データが記憶されているか否かを示す情報を設定できるようにすることが好ましい。図６では、最上位ビットが“１”のとき、データが記憶されていないことを示している。
【００６２】
例えば、特定のビットを、データが記憶されているか否かを示す情報に割当て、そのビットの論理値によってデータが記憶されているか否かを示すようにしてもよい。
【００６３】
このデータが記憶されているか否かを示す情報は、テーブル作成開始時に、データが記憶されていないことを示す値に初期設定される。その後、アドレス変換テーブルを作成するゾーン内の各ブロックの冗長領域を順次読出していき、冗長領域に論理通番が記述されていた場合には、アドレス変換テーブルにおいてその論理通番に対応する部分に、その論理通番が記述されていたブロックの物理通番を記述し、更に、データが記憶されていないことを示す情報を、データが記憶されていることを示す値に変更する。この処理を、ゾーンを構成する１０２４の各ブロックについて順次行なっていき、この処理が完了するとアドレス変換テーブルが完成する。
【００６４】
フラッシュメモリモジュール１におけるデータの書替処理では、ブロック消去されている消去済みブロックに新たなデータ（書替後のデータ）を書込み、その後、古いデータ（書替前のデータ）が書込まれていたブロックを消去する。この書替処理では、論理ブロックアドレスと物理ブロックアドレスの対応関係（論理通番と物理通番の対応関係）が、データの書替処理を行なう毎に変化するので、マイクロプロセッサ６は、アドレス変換テーブル上で対応関係が変化した部分をその都度、更新する。
【００６５】
次に、消去済みブロックを検索するためのテーブルである消去済みブロック検索用テーブルについて説明する。
【００６６】
図７（ａ），（ｂ）は、消去済みブロック検索用テーブルの説明図である。
書替処理では、この消去済みブロック検索用テーブルで検索した消去済みブロックに、新たなデータ（書替後のデータ）が書込まれる。この消去済みブロック検索用テーブルは、ワークエリア８上に作成される。
【００６７】
消去済みブロック検索用テーブルでは、ゾーンを構成する各ブロックを、ワークエリア８を構成するＳＲＡＭ上の各ビットに対応させ、各ビットの論理値の“０”又は“１”で、データが書込まれている状態、又はデータが書込まれていない状態をそれぞれ示している。
【００６８】
ゾーンを構成する各ブロックとＳＲＡＭ上の各ビットとの対応関係については、消去済みブロック検索用テーブル上のビットを、若番側から順に（図７（ａ）のように上の行から下の行へ、各行を左から右へ）物理通番の順番に対応させている。従って、消去済みブロック検索用テーブルの左上のビットが、物理通番０のブロックに対応し、右下のビットが、物理通番１０２３のブロックに対応する。各ビットの論理値については、データが書込まれている場合（又は不良ブロックであることを示すブロックステータスが記述されている場合）は、そのビットに“０”を、データが書込まれていない場合（消去済みブロックの場合）は、そのビットに“１”を設定する。
【００６９】
この消去済みブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。
【００７０】
例えば、消去済みブロック検索用テーブルを作成するＳＲＡＭ上の領域に"０"を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに“１”を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。
【００７１】
又、この消去済みブロック検索用テーブルの更新については、消去済みブロックにデータを書込んだときに、そのブロックに対応するビットを“１”から“０”に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを“０"から“１”に変更する。
【００７２】
この消去済みブロック検索用テーブルを用いて、消去済みブロックを検索する場合、物理通番０に対応するビット（図７（ｂ）の一番上の行の一番左のビット）から、物理通番１０２３に対応するビット（図７（ｂ）の一番下の行の一番右のビット）までを走査していき、消去済みブロックに対応する“１”のビットを検索する。
【００７３】
その結果、例えば走査の途中でテーブルで消去済みブロックに対応する“１”のビットが検出された場合、そこで検索を終了し、そのビットに対応する物理通番のブロックが、新たなデータ（書替後のデータ）が書込まれる物理ブロックになる。次回の検索は、消去済みブロックとして検出された“１”のビットの次のビットから走査が開始される。その後も、同様の検索を続けていき、最期のブロックに相当するビットまで走査が進んだときは、最初のブロックに相当するビットに戻る。このようにして検索された消去済みブロックに、新たなデータ（書替後のデータ）が書込まれる。
【００７４】
以上のように、本発明の実施形態に係るフラッシュメモリモジュール１は、ホストシステムのＡＴＡバス４に電気的に接続されるコネクタ１４ａと、フラッシュメモリ２と、メモリコントローラ３とを、基板１５に搭載したので、ホストシステムの内部に実施可能になっている。
【００７５】
また、基板１５の一方の面にフラッシュメモリ２が実装され、他方の面にメモリコントローラ３が搭載されているので、基板１５の面積を小さくすることができる。
【００７６】
また、主基板１６側から供給される電源の電圧が所定の電圧レベルに達するまで、フラッシュメモリ２及びメモリコントローラ３が起動しないように制御する回路を基板１５に設けることにより、フラッシュメモリモジュール１の誤動作を防止できる。
また、コネクタ１４ａによって、ホストシステムが接続されるので、不具合が生じたときにも交換が可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施形態に係るフラッシュメモリモジュールを示す機能ブロック図である。
【図２】本発明の実施形態に係るフラッシュメモリモジュールを示す外形図である。
【図３】ブロックとページの関係を示す説明図である。
【図４】ゾーンの説明図である。
【図５】論理ブロックアドレスとゾーンを示す説明図である。
【図６】アドレス変換テーブルの説明図である。
【図７】消去済みブロック検索用テーブルの説明図である。
【符号の説明】
【００７８】
１  フラッシュメモリモジュール
２  フラッシュメモリ
３  メモリコントローラ
４  ＡＴＡバス
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  内部インターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  内部バス
１４ａ  コネクタ
１５  基板
１６  主基板
【図１】
2006040484.tif 000003
【図２】
2006040484.tif 000004
【図３】
2006040484.tif 000005
【図４】
2006040484.tif 000006
【図５】
2006040484.tif 000007
【図６】
2006040484.tif 000008
【図７】
2006040484.tif 000009