(57)【特許請求の範囲】
【請求項１】
ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、
対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段と、
前記論理ゾーンを２のべき乗個集めた論理グループを構成し、該論理グループに論理アドレスが連続する所定範囲の領域を割り当てる論理グループ管理手段と、
前記論理グループに割り当てられた所定範囲の領域に含まれるセクタを、該論理グループに含まれる前記論理ゾーンに対して論理アドレスが連続する２のべき乗個のセクタ単位で順次割り振る論理アドレス分配手段と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記論理グループに含まれる前記論理ゾーンの個数が２ｐ個で、前記２のべき乗個のセクタに含まれるセクタの数が２ｑ個のときに、前記論理アドレスの下位から数えてｐ＋ｑビット目からｑ＋１ビット目までの値に基づいて、振り分け先の前記論理ゾーンを判別することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記２のべき乗個のセクタに相当する容量が１個又は複数個の前記物理ブロックの容量と等しいことを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
請求項１乃至３のいずれか１項に記載のメモリコントローラと、フラッシュメモリと、から構成される、
ことを特徴とするフラッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。
【背景技術】
【０００２】
近年、不揮発性の記憶媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器（ホストシステム）の記憶媒体として普及している。
【０００３】
このような機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。このように大容量化したフラッシュメモリの記憶領域を円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている（例えば特許文献１を参照）。
【０００４】
従来の複数のゾーンを有するフラッシュメモリの記憶領域を、より具体的に示せば、例えば図９に示す形に区画され、管理されていた。
【０００５】
すなわち、データ消去の単位である物理ブロックは、複数の物理ゾーンのいずれかに属している。又、各物理ブロックには、それぞれに固有の物理ブロックアドレス（ＰＢＡ）が割り当てられ、各物理ゾーンには、それぞれに固有の物理ゾーン番号（ＰＺＮ）が割り当てられる。
【０００６】
図９に示した例では、計２０４８個の物理ブロックに＃０〜＃２０４７の連続するＰＢＡが割り当てられており、ＰＢＡ＃０〜＃５１１の計５１２個の物理ブロックがＰＺＮ＃０の物理ゾーンに属し、ＰＢＡ＃５１２〜＃１０２３の計５１２個の物理ブロックがＰＺＮ＃１の物理ゾーンに属し、ＰＢＡ＃１０２４〜＃１５３５の計５１２個の物理ブロックがＰＺＮ＃２の物理ゾーンに属し、ＰＢＡ＃１５３６〜＃２０４７の計５１２個の物理ブロックがＰＺＮ＃３の物理ゾーンに属する。つまり、各物理ゾーンには、ＰＢＡが連続する物理ブロックが属していた。
【０００７】
また、物理ブロックは書き込み又は読み出しの処理単位であるページを複数個含み、各ページには物理ページアドレス（ＰＰＡ）が割り当てられている。ＰＰＡは、ページが属する物理ブロックのＰＢＡの下位に、当該物理ブロック内での当該ページの通番であるページ番号（ＰＮ）を付加した形をとっている。
【０００８】
一方、ホストシステム側のアドレス空間は、セクタ（５１２バイト）単位で分割した領域に付けた通番であるＬＢＡ（Logical Block Address）で管理されている。更に、複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。又、論理ブロックに付けられた通番を論理ブロック番号（ＬＢＮ）と呼び、論理ゾーンに付けられた通番を論理ゾーン番号（ＬＺＮ）と呼んでいる。又、各論理ゾーンに含まれる論理ブロックの、各論理ゾーン内での通番を論理ゾーン内ブロック番号（ＬＺＩＢＮ）と呼んでいる。
【０００９】
従って、各論理ゾーンに含まれる論理ブロック数をｎとした場合、ＬＢＮをｎで割ったときの商がＬＺＮに対応し、余りがＬＺＩＢＮに対応する。
【００１０】
又、各論理ゾーンにはそれぞれ１個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。更に、データが書き込まれた物理ブロックの冗長領域には、そのデータに対応する論理ブロックを示す情報（以下、論理アドレス情報と言う。）が書き込まれる。
【００１１】
又、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがＬＢＡの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することによって、ホストシステムから与えられるＬＢＡとフラッシュメモリ内のアクセス領域の対応関係を管理することができる。
【００１２】
又、各論理ブロックに含まれるセクタ数は、対応関係にある物理ブロックに含まれるページ数及び１ページに含まれるセクタ数に応じて設定される。例えば、１個の物理ブロックが３２個のページを含み、１個のページが１個のセクタに対応するフラッシュメモリを使用して、１個の論理ブロックを１個の物理ブロックに対応させた場合には、１個の論理ブロックに含まれるセクタ数は３２セクタになる。
【００１３】
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。又、論理ゾーンと物理ゾーンとの対応関係は予め設定されているので、各物理ゾーンに含まれる物理ブロックの冗長領域に書き込まれている論理アドレス情報を参照することにより、論理ゾーン毎にアドレス変換テーブルを作成することができる。ここで、論理アドレス情報としては、ＬＺＩＢＮ又はＬＢＮを用いることができるが、一般的にはデータ量の少ないＬＺＩＢＮが用いられる。
【００１４】
通常、各論理ゾーンには、ＬＢＡが連続する複数のセクタが割り当てられる。図９の例では、ＬＺＮ＃０の論理ゾーンにＬＢＡ＃０〜＃１５９９９のセクタが、ＬＺＮ＃１の論理ゾーンにＬＢＡ＃１６０００〜＃３１９９９のセクタが、ＬＺＮ＃２の論理ゾーンにＬＢＡ＃３２０００〜＃４７９９９のセクタが、ＬＺＮ＃３の論理ゾーンにＬＢＡ＃４８０００〜＃６３９９９のセクタが、それぞれ割り当てられている。
【００１５】
この例では、フラッシュメモリの１個のページが１個のセクタに対応し、各物理ブロックが３２個のページを含んでいるので、各論理ゾーンに割り当てられた１６０００個のセクタは、ＬＢＡが連続する３２個のセクタ単位で論理ブロックとして管理されている。従って、言い換えれば、ＬＢＡが連続する３２個のセクタを論理ブロックとして、ＬＢＮが連続する論理ブロックを各論理ゾーンに５００個（ＬＺＩＢＮ＃０〜＃４９９）ずつ割り当てている。ここで、論理ブロックに含まれるセクタ数については、１個の論理ブロックと１個又は複数個の物理ブロックの容量が一致するよう適宜設定される。
【特許文献１】特開２００５−１８４９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、各論理ゾーンにＬＢＡが連続する領域を割り当てた場合、ＬＢＡが特定範囲の領域（例えば、ファイルアロケーションテーブルが格納される領域）にデータの書き込みや書き換えが集中すると、そのＬＢＡが割り当てられた論理ゾーンに対応する物理ゾーンに含まれる物理ブロックに書き込みが集中して、その物理ゾーンに含まれる物理ブロックの劣化（不良ブロック化）だけが極端に早まる、という問題が生じる。
【００１７】
本発明は上記の実情に鑑みてなされたもので、データの書き込みがフラッシュメモリの特定の領域に集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明のメモリコントローラは、
ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、  前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、
対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段と、
前記論理ゾーンを２のべき乗個集めた論理グループを構成し、該論理グループに論理アドレスが連続する所定範囲の領域を割り当てる論理グループ管理手段と、
前記論理グループに割り当てられた所定範囲の領域に含まれるセクタを、該論理グループに含まれる前記論理ゾーンに対して論理アドレスが連続する２のべき乗個のセクタ単位で順次割り振る論理アドレス分配手段と、
を備えることを特徴とする。
【００１９】
従って、各論理グループに割り当てられたＬＢＡが連続する領域は、２のべき乗個のセクタ単位で、２のべき乗個の論理ゾーンに順次振り分けられる。又、前記論理グループに含まれる前記論理ゾーンの個数が２ｐ個で、前記２のべき乗個のセクタに含まれるセクタの数が２ｑ個のときに、前記論理アドレスの下位から数えてｐ＋ｑビット目からｑ＋１ビット目までの値に基づいて、振り分け先の前記論理ゾーンを判別することができる。つまり、ＬＢＡの一部のビットの値に基づいて、振り分け先の論理ゾーンを容易に判別することができる。
【００２０】
又、前記２のべき乗個のセクタに相当する容量は、１個又は複数個の前記物理ブロックの容量と等しくすることが好ましい。こうすることにより、各論理ゾーンに対して、１個又は複数個の物理ブロック単位で領域を割り振ることができる。
【００２１】
又、上記のメモリコントローラとフラッシュメモリでフラッシュメモリシステムを構成してもよい。
【発明の効果】
【００２２】
本発明によれば、ＬＢＡが特定範囲の領域に書き込みや書き換えが集中した場合であっても、データの書き込みがフラッシュメモリの特定の領域に集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムが実現される。つまり、フラッシュメモリ内の物理ブロックを複数個まとめた物理ゾーンを構成して、各物理ゾーン単位でアクセスを管理する場合に、特定の物理ゾーンに含まれる物理ブロックに書き込みが集中することを回避することができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。図１に示すように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するコントローラ３で構成されている。
【００２４】
なお、フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続される。ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Central Processing Unit）、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム４は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００２５】
フラッシュメモリ２は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ２は、レジスタとメモリセルアレイとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
【００２６】
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
【００２７】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書き込み若しくはデータの消去が行われる。
【００２８】
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。
【００２９】
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「０」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「１」に対応する。
【００３０】
このようなフラッシュメモリ２のアドレス空間を図２に示す。フラッシュメモリ２のアドレス空間は、“ページ”及び“ブロック（物理ブロック）”で構成されている。
【００３１】
ページは、フラッシュメモリ２にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ２にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
【００３２】
図２に示したフラッシュメモリ２では、１つのページは、１セクタ（５１２バイト）のユーザ領域２５と、１６バイトの冗長領域２６で構成され、１つの物理ブロックは３２個のページで構成されている。なお、１個のページが４セクタのユーザ領域と６４バイトの冗長領域で構成され、１個の物理ブロックが６４個のページで構成されているフラッシュメモリもある。ここで、ユーザ領域２５は、ホストシステム４から供給されるユーザデータを格納するための領域である。又、冗長領域２６は、エラーコレクションコード、論理アドレス情報、ブロックステータス（フラグ）等の付加データを記録するための領域である。
【００３３】
エラーコレクションコードは、ユーザ領域２５に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
【００３４】
論理アドレス情報は、フラッシュメモリ２の各物理ブロックのユーザ領域２５に記憶されているデータに対応する論理ブロックを特定するための情報である。
【００３５】
なお、ユーザ領域２５に有効なデータが格納されていない物理ブロックについては、そのブロックの冗長領域２６に、論理アドレス情報は格納されていない。
【００３６】
従って、冗長領域２６に論理アドレス情報が格納されているか否かを判定することにより、その冗長領域２６が含まれている物理ブロックに有効なデータが格納されているか否かを判断することができる。つまり、冗長領域２６に論理アドレス情報が格納されていないとき、その物理ブロックには、有効なデータが格納されていないと判断する。
【００３７】
上述のように、１個の物理ブロックは、複数個のページで構成されている。これらのページには、データの上書きができない。このため、１個のページに格納されたデータのみを書き換えるときであっても、そのページが含まれた物理ブロック内の全ページに格納されたデータを、再度、別の物理ブロックに書き込まなければならない。
【００３８】
つまり、通常のデータ書き換えでは、書き換えるページが含まれる物理ブロックの全ページに格納されたデータが、別の消去されている物理ブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータがそのまま再度書き込まれる。
【００３９】
上記のようにデータを書き換えるにあたっては、書き換えられたデータは、通常、以前に格納されていた物理ブロックとは異なる物理ブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ２にてデータが書き換えられる毎に、動的に変化する。
【００４０】
従って、論理ブロックと物理ブロックとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各物理ブロックの冗長領域２６に記憶されている論理アドレス情報（通常は、ＬＺＩＢＮ又はＬＢＮを示す情報）に基づいて作成される。なお、このような動的なアドレス管理手法は、上述の通り、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
【００４１】
ブロックステータス（フラグ）は、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域２６には、不良ブロックであることを示すブロックステータス（フラグ）が書き込まれる。
【００４２】
このようなフラッシュメモリ２は、コントローラ３から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
【００４３】
ここで、内部コマンドとは、コントローラ３がフラッシュメモリ２に処理の実行を指示するためのコマンドであり、フラッシュメモリ２は、コントローラ３から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム４がフラッシュメモリシステム１に対して処理の実行を指示するためのコマンドである。
【００４４】
コントローラ３は、図１に示すように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、ＲＯＭ（Read Only Memory）１２と、から構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
【００４５】
マイクロプロセッサ６は、ＲＯＭ１２に記憶されているプログラムに従って、コントローラ３の全体の動作を制御する。例えば、マイクロプロセッサ６は、各種処理等を定義したコマンドセット（シーケンスコマンド）をＲＯＭ１２から読み出してフラッシュメモリインターフェースブロック１０に供給し、フラッシュメモリインターフェースブロック１０に処理を実行させる。
【００４６】
ホストインターフェースブロック７は、図３に示すようにコマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３を備えており、ホストシステム４との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてフラッシュメモリシステム１の内部（例えば、バッファ９）に取り込まれる。また、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００４７】
図１に示すワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Static Random Access Memory）セルによって構成される。ワークエリア８には、例えば、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル、空きブロックを検索するための空きブロックテーブルなどが記憶される。
【００４８】
バッファ９は、フラッシュメモリ２から読み出されたデータ及びフラッシュメモリ２に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ２から読み出されたデータは、ホストシステム４が受け取り可能な状態となるまでバッファ９に保持され、フラッシュメモリ２に書き込むべきデータは、フラッシュメモリ２が書き込み可能な状態となるまでバッファ９に保持される。
【００４９】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、図３に示すように、物理ブロックアドレスレジスタＲ１１、ページ番号レジスタＲ１２、カウンタＲ１３，を備える。
【００５０】
物理ブロックアドレスレジスタＲ１１は、フラッシュメモリ２のアクセス対象の物理ブロックの物理ブロックアドレスＰＢＡを格納する。物理ブロックアドレスレジスタＲ１１に設定される物理ブロックアドレスＰＢＡは、ワークエリア８に作成されるアドレス変換テーブルに基づいて決定される。このアドレス変換テーブルは、対応する論理ゾーンと物理ゾーンの組毎に形成され、論理ゾーン内ブロック番号ＬＺＩＢＮと物理ゾーン内ブロック番号ＰＺＩＢＮとの対応関係を記憶する。
【００５１】
ページ番号レジスタＲ１２は、アクセス対象のページのページ番号ＰＮを格納する。カウンタＲ１３は、各物理ブロック内のアクセス対象ページの残数をカウントする。
【００５２】
フラッシュメモリインターフェースブロック１０は、ＲＯＭ１２から読み出されたシーケンスコマンドに従って内部コマンド、アドレス情報等をフラッシュメモリ２に供給することにより、フラッシュメモリ２に読み出し、書き込み等を実行させる。ここで、フラッシュメモリ２に供給されるアドレス情報は、物理ブロックアドレスレジスタＲ１１及びページ番号レジスタＲ１２に保持されている情報に基づいて生成される。
【００５３】
ＥＣＣブロック１１は、フラッシュメモリ２に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
【００５４】
ＲＯＭ１２は、マイクロプロセッサ６による処理の手順を定義するシーケンスコマンドを格納する不揮発性の記憶素子である。
【００５５】
次に、上記構成のフラッシュメモリシステムにより実現される論理アドレス空間と物理アドレス空間の割り当てについて説明する。
【００５６】
本実施の形態においては、図４に示すように、２のべき乗個の論理ゾーンを含む論理グループがｍ（２以上の整数）個構成され、各論理グループには＃０〜＃ｍ−１の論理グループ番号ＬＧＮが付けられている。ＬＧＮ＃０〜＃ｍ−１の各論理グループに含まれる論理ゾーンには、それぞれ１個の物理ゾーンが割り当てられている。図４に示した例では、ＬＧＮ＃０の論理グループにｉ個の論理ゾーンが含まれ、ＬＧＮ＃０の論理グループに含まれる論理ゾーンには＃０〜＃ｉ−１の通番（以下、論理グループ内ゾーン番号（ＬＧＩＺＮ）と言う。）が付けられている。同様に、ＬＧＮ＃１の論理グループには、ＬＧＩＺＮ＃０〜＃ｊ−１のｊ個の論理ゾーンが含まれ、ＬＧＮ＃２の論理グループには、ＬＧＩＺＮ＃０〜＃ｋ−１のｋ個の論理ゾーンが含まれ、ＬＧＮ＃ｍ−１の論理グループには、ＬＧＩＺＮ＃０〜＃ｎ−１のｎ個の論理ゾーンが含まれている。
【００５７】
ＬＧＮ＃０〜ＬＧＮ＃ｍ−１の各論理グループには、ＬＢＡが連続する論理アドレス領域が割り当てられている。例えば、各論理ゾーンに１６０００セクタの領域を割り当てる場合、ＬＧＮ＃０の論理グループには、ＬＢＡが連続する（１６０００×ｉ）セクタの領域が割り当てられ、ＬＧＮ＃１の論理グループには、ＬＢＡが連続する（１６０００×ｊ）セクタの領域が割り当てられ、ＬＧＮ＃２の論理グループには、ＬＢＡが連続する（１６０００×ｋ）セクタの領域が割り当てられ、ＬＧＮ＃ｍ−１の論理グループには、ＬＢＡが連続する（１６０００×ｎ）セクタの領域が割り当てられる。更に、各論理グループに割り当てられた領域は、論理グループに含まれる論理ゾーンに対して、所定のセクタ数単位で順次振り分けられる。
【００５８】
尚、上記論理ゾーンのグループ分けについては、論理ゾーンの個数に応じて適宜設定する。例えば、論理ゾーンの個数が２０（２進数表示：１  ０１００）個の場合には、論理ゾーンを１６個含む論理グループと４個含む論理グループを構成し、論理ゾーンの個数が２６（２進数表示：１  １０１０）個の場合には、論理ゾーンを１６個含む論理グループと８個含む論理グループと２個含む論理グループを構成する。
【００５９】
次に、各論理グループに割り当てられた領域の振り分けについて図５〜８を参照して説明する。図５に示した例では、８個の論理ゾーンを含む論理グループと４個の論理ゾーンを含む論理グループと２個の論理ゾーンを含む論理グループが構成され、各論理ゾーンには１６０００セクタの領域が割り当てられる。ここで、１個の論理ブロックは３２セクタに対応するので、各論理ゾーンには５００個の論理ブロックに対応する領域が割り当てられる。
【００６０】
図５に示した例では、ＬＺＮ＃０〜＃７の８個の論理ゾーンを含むＬＧＮ＃０の論理グループには、ＬＢＮ＃０〜＃３９９９の論理ブロックに相当する領域が割り当てられ、ＬＺＮ＃８〜＃１１の４個の論理ゾーンを含むＬＧＮ＃１の論理グループには、ＬＢＮ＃４０００〜＃５９９９の論理ブロックに相当する領域が割り当てられ、ＬＺＮ＃１２〜＃１３の２個の論理ゾーンを含むＬＧＮ＃２の論理グループには、ＬＢＮ＃６０００〜＃６９９９の論理ブロックに相当する領域が割り当てられている。
【００６１】
次に、ＬＧＮ＃０の論理グループに割り当てられたＬＢＮ＃０〜＃３９９９の論理ブロックに相当する領域の各物理ゾーンへの振り分けについて図６を参照して説明する。図６に示した例では、１２８セクタ単位で各論理ゾーンに領域を振り分けている。ここで、１個の論理ブロックは３２セクタに対応するので、図６（ｂ）に示したように、ＬＢＮ＃０〜＃３の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、ＬＢＮ＃４〜＃７の論理ブロックに相当する領域がＬＧＩＺＮ＃１の論理ゾーンに振り分けられ、ＬＢＮ＃８〜＃１１の論理ブロックに相当する領域がＬＧＩＺＮ＃２の論理ゾーンに振り分けられ、以下同様に、ＬＢＮ＃２４〜＃２７の論理ブロックに相当する領域がＬＧＩＺＮ＃７の論理ゾーンに振り分けられ、ＬＢＮ＃２８〜＃３１の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられる。
【００６２】
振り分け先の論理ゾーンは、図６（ａ）に示したようにＬＢＮの下位から数えて５ビット目から３ビット目までの３ビットの値によって判断することができる。この３ビットの値が０（２進数表示：０００）のときはＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、１（２進数表示：００１）のときはＬＧＩＺＮ＃１の論理ゾーンに振り分けられ、２（２進数表示：０１０）のときはＬＧＩＺＮ＃２の論理ゾーンに振り分けられ、３（２進数表示：０１１）のときはＬＧＩＺＮ＃３の論理ゾーンに振り分けられ、以下同様に、７（２進数表示：１１１）のときはＬＧＩＺＮ＃７の論理ゾーンに振り分けられる。
【００６３】
尚、ＬＧＮ＃０の論理グループに含まれるＬＧＩＺＮ＃０〜＃７の論理ゾーンはＬＺＮ＃０〜＃７の論理ゾーンにそれぞれ対応する。又、各論理ゾーンに振り分けられた論理ブロックのＬＺＩＢＮ（＃０〜＃５００）は、ＬＢＮの下位から数えて１４ビット目から６ビット目までの９ビットの値に対応する。
【００６４】
次に、ＬＧＮ＃１の論理グループに割り当てられたＬＢＮ＃４０００〜＃５９９９の論理ブロックに相当する領域の振り分けについて図７を参照して説明する。ＬＧＮ＃１の論理グループの場合も、ＬＧＮ＃０の論理グループの場合と同様に、１２８セクタ単位で各論理ゾーンに領域を振り分けている。ここで、１個の論理ブロックは３２セクタに対応するので、図７（ｂ）に示したように、ＬＢＮ＃４０００〜＃４００３の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、ＬＢＮ＃４００４〜＃４００７の論理ブロックに相当する領域がＬＧＩＺＮ＃１の論理ゾーンに振り分けられ、ＬＢＮ＃４００８〜＃４０１１の論理ブロックに相当する領域がＬＧＩＺＮ＃２の論理ゾーンに振り分けられ、ＬＢＮ＃４０１２〜＃４０１５の論理ブロックに相当する領域がＬＧＩＺＮ＃３の論理ゾーンに振り分けられ、ＬＢＮ＃４０１６〜＃４０１９の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられる。
【００６５】
振り分け先の論理ゾーンを判別するときは、ＬＧＮ＃１の論理グループに割り当てられた論理ブロックの通番に相当するＬＢＮ’（ＬＢＮ’＝ＬＢＮ−４０００）を求めることにより、ＬＧＮ＃０の論理グループの場合と同様に振り分け先の論理ゾーンを判別することができる。つまり、振り分け先の論理ゾーンは、図７（ａ）に示したようにＬＢＮ’の下位から数えて４ビット目から３ビット目までの２ビットの値によって判断することができる。この２ビットの値が０（２進数表示：００）のときはＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、１（２進数表示：０１）のときはＬＧＩＺＮ＃１の論理ゾーンに振り分けられ、２（２進数表示：１０）のときはＬＧＩＺＮ＃２の論理ゾーンに振り分けられ、３（２進数表示：１１）のときはＬＧＩＺＮ＃３の論理ゾーンに振り分けられる。
【００６６】
尚、ＬＧＮ＃１の論理グループに含まれるＬＧＩＺＮ＃０〜＃３の論理ゾーンはＬＺＮ＃８〜＃１１の論理ゾーンにそれぞれ対応する。又、各論理ゾーンに振り分けられた論理ブロックのＬＺＩＢＮ（＃０〜＃５００）は、ＬＢＮ’の下位から数えて１３ビット目から５ビット目までの９ビットの値に対応する。
【００６７】
次に、ＬＧＮ＃２の論理グループに割り当てられたＬＢＮ＃６０００〜＃６９９９の論理ブロックに相当する領域の振り分けについて図８を参照して説明する。ＬＧＮ＃２の論理グループの場合も、ＬＧＮ＃０の論理グループの場合と同様に、１２８セクタ単位で各論理ゾーンに領域を振り分けている。ここで、１個の論理ブロックは３２セクタに対応するので、図８（ｂ）に示したように、ＬＢＮ＃６０００〜＃６００３の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、ＬＢＮ＃６００４〜＃６００７の論理ブロックに相当する領域がＬＧＩＺＮ＃１の論理ゾーンに振り分けられ、ＬＢＮ＃６００８〜＃６０１１の論理ブロックに相当する領域がＬＧＩＺＮ＃０の論理ゾーンに振り分けられる。
【００６８】
振り分け先の論理ゾーンを判別するときは、ＬＧＮ＃２の論理グループに割り当てられた論理ブロックの通番に相当するＬＢＮ”（ＬＢＮ”＝ＬＢＮ−６０００）を求めることにより、ＬＧＮ＃０の論理グループの場合と同様に振り分け先の論理ゾーンを判別することができる。つまり、振り分け先の論理ゾーンは、図８（ａ）に示したようにＬＢＮ”の下位から３ビット目のビットの値によって判断することができる。このビットの値が０（２進数表示：０）のときはＬＧＩＺＮ＃０の論理ゾーンに振り分けられ、１（２進数表示：１）のときはＬＧＩＺＮ＃１の論理ゾーンに振り分けられる。
【００６９】
尚、ＬＧＮ＃２の論理グループに含まれるＬＧＩＺＮ＃０〜＃１の論理ゾーンはＬＺＮ＃１２〜＃１３の論理ゾーンにそれぞれ対応する。又、各論理ゾーンに振り分けられた論理ブロックのＬＺＩＢＮ（＃０〜＃５００）は、ＬＢＮ”の下位から数えて１２ビット目から４ビット目までの９ビットの値に対応する。
【００７０】
上述のように２のべき乗個の論理ブロックに相当する領域単位で、各論理ゾーンに領域を振り分ける場合には、ＬＢＮの一部のビットの値に基づいて振り分け先の論理ゾーンを判別することができる。つまり、論理グループに含まれる論理ゾーンの個数が２ｉ個で、この２ｉ個の論理ゾーンに２ａ個の論理ブロックに相当する領域を順次割り振っていく場合には、ＬＢＮの下位から数えてｉ＋ａビット目からａ＋１ビット目までの値に基づいて振り分け先の前記物理ゾーンを判別することができる。
【００７１】
又、２のべき乗個のセクタに相当する領域単位で、各論理ゾーンに領域を振り分ける場合には、ＬＢＡの一部のビットの値に基づいて振り分け先の論理ゾーンを判別することになるが、この場合も同様に判別することができる。つまり、論理グループに含まれる論理ゾーンの個数が２ｐ個で、この２ｐ個の論理ゾーンに２ｑ個のセクタに相当する領域を順次割り振っていく場合には、ＬＢＡの下位から数えてｐ＋ｑビット目からｑ＋１ビット目までの値に基づいて振り分け先の前記物理ゾーンを判別することができる。
【００７２】
尚、１個の論理ブロックが３２（２５）セクタに対応する場合、２ａ個の論理ブロックは２ａ＋５個のセクタに相当し、ＬＢＮはＬＢＡの下位５ビットを削除したものに相当する。ここで、ＬＢＡの一部のビットの値に基づいて振り分け先の論理ゾーンを判別した場合、ＬＢＡの下位から数えてｉ＋（ａ＋５）ビット目から（ａ＋５）＋１ビット目までの値に基づいて振り分け先の前記物理ゾーンを判別することになる。従って、ＬＢＡの一部のビットの値に基づいて振り分け先の論理ゾーンを判別しても、ＬＢＮの一部のビットの値に基づいて振り分け先の論理ゾーンを判別しても、実質的には同一部分のビットの値に基づいて振り分け先の論理ゾーンが判別される。
【００７３】
次に、フラッシュメモリ２からの読み出し処理について説明する。
【００７４】
読み出し処理は、ホストインターフェースブロック７のセクタ数レジスタＲ２に設定されたセクタ数、ＬＢＡレジスタＲ３に設定されたＬＢＡの先頭値（書き込みを開始するＬＢＡ）、コマンドレジスタＲ１に設定された外部コマンドに基づいて処理が実行される。尚、この読み出し処理は、読み出し処理を指示する外部コマンドが、コマンドレジスタＲ１に設定されると開始される。
【００７５】
まず、マイクロプロセッサ６は、ＬＢＡレジスタＲ３に格納された先頭ＬＢＡとセクタ数レジスタＲ２に設定されたアクセス対象のセクタ数に基づいて、アクセス対象領域が含まれる論理ブロックのＬＢＮを求める。ＬＢＮは、ＬＢＡから論理ブロック内のページ番号ＰＮを示す下位５ビットを除去することによって求めることができる。
【００７６】
求めたＬＢＮに基づいて、この論理ブロックが含まれる論理グループを判別する。図５に示した例では、ＬＢＮの値が＃０〜＃３９９９であれば、この論理ブロックがＬＧＮ＃０の論理グループに含まれると判断し、ＬＢＮの値が＃４０００〜＃５９９９であれば、この論理ブロックがＬＧＮ＃１の論理グループに含まれると判断し、ＬＢＮの値が＃６０００〜＃６９９９であれば、この論理ブロックがＬＧＮ＃２の論理グループに含まれると判断する。
【００７７】
続いて、求めたＬＢＮに対応する論理ブロックの論理グループ内での通番（上記ＬＢＮ、ＬＢＮ’又はＬＢＮ”に相当する値）を求める。この論理グループ内での通番（上記ＬＢＮ、ＬＢＮ’又はＬＢＮ”に相当する値）の一部のビットに基づいて、求めたＬＢＮに対応する論理ブロックが振り分けられている論理ゾーンのＬＺＮと、その論理ブロックのＬＺＩＢＮを求める。例えば、求めたＬＢＮに対応する論理ブロックが図５に示したＬＧＮ＃０のグループに含まれる場合には、ＬＢＮの下位から数えて５ビット目から３ビット目までの３ビットの値に基づいて振り分け先の論理ゾーンのＬＧＩＺＮを求め、ＬＢＮの下位から数えて１４ビット目から６ビット目までの９ビットの値に基づいて振り分け先の論理ゾーンにおけるＬＺＩＢＮを求める。ＬＧＮ＃１のグループに含まれる場合には、ＬＢＮ’（ＬＢＮ’＝ＬＢＮ−４０００）の下位から数えて４ビット目から３ビット目までの２ビットの値に基づいて振り分け先の論理ゾーンのＬＧＩＺＮを求め、ＬＢＮ’の下位から数えて１３ビット目から５ビット目までの９ビットの値に基づいて振り分け先の論理ゾーンにおけるＬＺＩＢＮを求める。ＬＧＮ＃２のグループに含まれる場合には、ＬＢＮ”（ＬＢＮ”＝ＬＢＮ−６０００）の下位から数えて３ビット目の値に基づいて振り分け先の論理ゾーンのＬＧＩＺＮを求め、ＬＢＮ”の下位から数えて１２ビット目から４ビット目までの９ビットの値に基づいて振り分け先の論理ゾーンにおけるＬＺＩＢＮを求める。
【００７８】
尚、ＬＧＩＺＮは、各論理グループに応じたオフセットを加算することによりＬＺＮに変換することができる。図５に示したＬＧＮ＃０のグループに含まれる論理ゾーンの場合、求めたＬＧＩＺＮとＬＺＮが一致し（ＬＺＮ＝ＬＧＩＺＮ）、ＬＧＮ＃１のグループに含まれる論理ゾーンの場合、求めたＬＧＩＺＮに８を加算した値がＬＺＮに一致し（ＬＺＮ＝ＬＧＩＺＮ＋８）、ＬＧＮ＃２のグループに含まれる論理ゾーンの場合、求めたＬＧＩＺＮに１２を加算した値がＬＺＮに一致する（ＬＺＮ＝ＬＧＩＺＮ＋１２）。
【００７９】
次に、上述のようにして求めたアクセス対象領域が含まれる論理ブロックのＬＺＮとＬＺＩＢＮに基づいて、この論理ブロックに対応する物理ブロックのＰＢＡを求める。この論理ブロックに対応する物理ブロックのＰＢＡを求めるときは、アドレス変換テーブルを参照してこの論理ブロックのＰＺＩＢＮを求め、求めたＰＺＩＢＮをＰＢＡに変換する。
【００８０】
上記アドレス変換テーブルは論理ゾーンに含まれる論理ブロックのＬＺＩＢＮと物理ゾーンに含まれる物理ブロックのＰＺＩＢＮとの対応関係を示したテーブルであり、物理ブロックの冗長領域２６に書き込まれているＬＺＩＢＮ（論理アドレス情報）を参照することによって作成することができる。又、論理ゾーンと物理ゾーンの対応関係は予め設定されている。図５に示した例では、ＬＺＮ＃０の論理ゾーンがＰＺＮ＃０の物理ゾーンに対応し、ＬＺＮ＃１の論理ゾーンがＰＺＮ＃１の物理ゾーンに対応し、ＬＺＮ＃２の論理ゾーンがＰＺＮ＃２の物理ゾーンに対応し、以下同様にして、ＬＺＮ＃１３の論理ゾーンがＰＺＮ＃１３の物理ゾーンに対応する。ここで、例えば、ＬＺＮ＃７の論理ゾーンに含まれる論理ブロックと対応する物理ブロックのＰＢＡを求めるときは、ＬＺＮ＃７の論理ゾーンに含まれる論理ブロックのＬＺＩＢＮとＰＺＮ＃７の物理ゾーンに含まれる物理ブロックのＰＺＩＢＮの対応関係を示したアドレス変換テーブルを参照する。又、このアドレス変換テーブルは、ＰＺＮ＃７の物理ゾーンに含まれる物理ブロックの冗長領域２６に書き込まれているＬＺＩＢＮ（論理アドレス情報）を参照することによって作成することができる。
【００８１】
このアドレス変換テーブルを参照して求めたＰＺＩＢＮは、各物理ゾーンに応じたオフセットを加算することによってＰＢＡに変換することができる。図５に示した例では、各物理ゾーンに５１２個の物理ブロックが含まれているので、ＰＺＮ＃０の物理ゾーンに含まれる物理ブロックの場合、求めたＰＺＩＢＮがそのままＰＢＡに対応し、ＰＺＮ＃１の物理ゾーンに含まれる物理ブロックの場合、求めたＰＺＩＢＮに５１２を加算した番号がＰＢＡに対応し、ＰＺＮ＃２の物理ゾーンに含まれる物理ブロックの場合、求めたＰＺＩＢＮに１０２４（５１２×２）を加算した番号がＰＢＡに対応し、ＰＺＮ＃３の物理ゾーンに含まれる物理ブロックの場合、求めたＰＺＩＢＮに１５３６（５１２×３）を加算した番号がＰＢＡに対応し、以下同様にして、ＰＺＮ＃１３の物理ゾーンに含まれる物理ブロックの場合、求めたＰＺＩＢＮに６６５６（５１２×１３）を加算した番号がＰＢＡに対応する。
【００８２】
次に、マイクロプロセッサ６は、フラッシュメモリインタフェースブロック１０の物理ブロックアドレスレジスタＲ１１に読み出し対象の物理ブロックの物理ブロックアドレスＰＢＡを設定し、ページ番号レジスタＲ１２にその物理ブロック内の読み出しを開始するページのページ番号を設定し、カウンタＲ１３に読み出し対象のページ数を設定する。ここで、読み出しを開始するページのページ番号は、ＬＢＡレジスタＲ３に設定された読み出しを開始するＬＢＡから論理ブロック番号ＬＢＮを示すビットを除いて残った下位ビットが対応する。つまり、１個の論理ブロックが３２セクタに対応する場合は、読み出しを開始するＬＢＡの下位５ビットが読み出しを開始するページのページ番号に対応する。又、カウンタＲ１３に設定するページ数は、セクタ数レジスタＲ２に設定されたセクタ数に基づいて設定される。尚、アクセス対象領域が複数の論理ブロックにまたがっている場合は、ＬＢＮの若い方から順番に上記の設定を行う。
【００８３】
続いて、コマンドレジスタＲ１に設定された外部コマンドに対応するシーケンスコマンドがＲＯＭ１２から読み出され、このシーケンスコマンドに従ってフラッシュメモリインタフェースブロック１０が、フラッシュメモリ２を制御するための内部コマンド、アドレス情報等を出力し、フラッシュメモリ２から読み出したデータをバッファ９に格納する。ここで、フラッシュメモリ２に与えられる内部コマンドは、読み出しを指示する内部コマンドである。又、フラッシュメモリ２に与えられるアドレス情報は、物理ブロックアドレスレジスタＲ１１とページ番号レジスタＲ１２に設定されている設定値に基づいて生成される。尚、フラッシュメモリ２から１ページ（１セクタ）分のデータが読み出される毎に、ページ番号レジスタＲ１２に設定されている設定値はインクリメント（１ずつ加算）され、カウンタＲ１３に設定されている設定値はデクリメント（１ずつ減算）され、インクリメントされたページ番号レジスタＲ１２の設定値に基づいて、次のアドレス情報が生成される。尚、バッファ９に格納されたデータは、ホストインターフェースブロック７と外部バス１３を介してホストシステム４に提供される。
【００８４】
この物理ブロックアドレスレジスタＲ１１、ページ番号レジスタＲ１２及びカウンタＲ１３に設定された情報に基づく読み出し処理は、カウンタＲ１３に設定されている設定値が“０”になると終了する。つまり、この読み出し処理では、ページ番号レジスタＲ１２に最初に設定された設定値に対応するページ（セクタ）から順番に、カウンタＲ１３に最初に設定されたページ数（セクタ数）分のデータが読み出される。  
【００８５】
次に、フラッシュメモリ２への書き込み処理について説明する。書き込み処理の場合は、書き込み処理を指示する外部コマンドが、コマンドレジスタＲ１に設定されると、書き込み処理が開始され、ホストインターフェースブロック７のセクタ数レジスタＲ２に設定されたセクタ数、ＬＢＡレジスタＲ３に設定された先頭ＬＢＡ（書き込みを開始するＬＢＡ）に基づいて処理が実行される。
【００８６】
書き込み処理の場合も、読み出し処理の場合と同様に書き込み先の論理ブロック（アクセス対象領域が含まれる論理ブロック）に対応する物理ブロックのＰＢＡが求められるが、書き込み先の論理ブロックと対応する物理ブロックが無いときや対応する物理ブロックに追加書き込みをすることができないときは、空きブロックの検索が行われる。この空きブロックの検索では、書き込み先の論理ブロックが含まれる論理ゾーンに対応する物理ゾーン内の空きブロックが検索される。
【００８７】
次に、フラッシュメモリインタフェースブロック１０の物理ブロックアドレスレジスタＲ１１には書き込み先の物理ブロックのＰＢＡが設定され、ページ番号レジスタＲ１２には書き込みを開始するページのページ番号を設定され、さらに、カウンタＲ１３にはデータが書き込まれるページのページ数が設定される。
【００８８】
続いて、コマンドレジスタＲ１に設定された外部コマンドに対応するシーケンスコマンドがＲＯＭ１２から読み出され、このシーケンスコマンドに従ってフラッシュメモリインタフェースブロック１０のが、フラッシュメモリ２を制御するための内部コマンド、アドレス情報等を出力すると共に、フラッシュメモリ２に書き込むデータを、バッファ９からフラッシュメモリ２に供給する。
【００８９】
読み出し処理の場合と同様に、物理ブロックアドレスレジスタＲ１１、ページ番号レジスタＲ１２、カウンタＲ１３及びコマンドレジスタＲ２１に設定された情報に基づく書き込み処理は、カウンタＲ１３に設定されている設定値が“０”になると終了する。つまり、この書き込み処理では、ページ番号レジスタＲ１２に最初に設定された設定値に対応するページ（セクタ）から順番に、カウンタＲ１３に最初に設定されたページ数（セクタ数）分のデータが書き込まれる。
【００９０】
以上で説明したように、本実施の形態のフラッシュメモリシステム１では、論理ゾーンを２のべき乗個を含む論理グループを複数個構成し、各論理グループに割り当てられたＬＢＡが連続する領域を、２のべき乗個のセクタに対応する領域単位で、論理グループに含まれる各論理ゾーンに振り分けている。こうすることにより、論理ゾーンの総数が２のべき乗個でない場合であっても、各論理グループにおける振り分け先の論理ゾーンの個数は２のべき乗個になるので、ＬＢＡの一部のビットの値に基づいて、振り分けの論理ゾーンを判別することができる。又、各論理グループに割り当てられたＬＢＡが連続する領域は、各論理グループ内で、その論理グループに含まれる各論理ゾーンに振り分けられるので、ＬＢＡが特定範囲の領域に書き込みや書き換えが集中した場合であっても、データの書き込みが特定の物理ゾーンに集中することを回避できる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態に係るフラッシュメモリシステムを概略的に示すブロック図である。
【図２】この発明の実施の形態のフラッシュメモリのアドレス空間の構造を概略的に示す図である。
【図３】ホストインターフェースブロック及びフラッシュメモリインタフェースブロックの構成を示すブロック図である。
【図４】論理ブロックのグループ化及び論理アドレスと物理アドレスとの対応関係を説明するための図である。
【図５】論理ブロックのグループ化及び論理アドレスと物理アドレスとの対応を具体的に示す図である。
【図６】論理ブロックのグループ内論理ゾーンへの割り当ての例を示す図である。
【図７】論理ブロックのグループ内論理ゾーンへの割り当ての例を示す図である。
【図８】論理ブロックのグループ内論理ゾーンへの割り当ての例を示す図である。
【図９】従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。
【符号の説明】
【００９２】
１    フラッシュメモリシステム
２    フラッシュメモリ
３    コントローラ
４    ホストシステム
６    マイクロプロセッサ
７    ホストインターフェースブロック
８    ワークエリア
９    バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  ＲＯＭ
１３  外部バス
１４  内部バス
１５  内部クロック源
２５  ユーザ領域
２６  冗長領域
【図１】
0004434171.tif 000002
【図２】
0004434171.tif 000003
【図３】
0004434171.tif 000004
【図４】
0004434171.tif 000005
【図５】
0004434171.tif 000006
【図６】
0004434171.tif 000007
【図７】
0004434171.tif 000008
【図８】
0004434171.tif 000009
【図９】
0004434171.tif 000010