(57)【要約】【課題】  複数チップのフラッシュメモリを用いて仮想ブロックを形成して、並列処理を実行する場合に、アドレス変換テーブルの作成処理に掛かる処理時間を短縮する。【解決手段】  ゾーン群を複数のサブゾーン群に分割し、サブゾーン群毎に独立して仮想ブロックを形成している。仮想ブロックと論理アドレスとの対応関係を示す変換テーブルは、サブゾーン群毎に独立して作成する。更に、サブゾーン群毎に作成した変換テーブルを連結することにより、ゾーン群に対する変換テーブルを作成する。又、仮想的に結合される物理ブロックには、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示すアドレス情報が書込まれており、このアドレス情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得することができる。【選択図】図３
2006127234.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する手段と、
同一の前記サブゾーン群に属する前記各サブゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックに対して、論理アドレスが連続するデータを割当てる手段と、
前記サブゾーン群を複数集めて、ゾーン群を形成する手段と
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記アドレス情報が、各物理ブロックの冗長領域に記憶されていることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されていることを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であることを特徴とする請求項１乃至３のいずれか１項に記載のメモリコントローラ。
【請求項５】
前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成することを特徴とする請求項１乃至４のいずれか１項に記載のメモリコントローラ。
【請求項６】
ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
同じチップ内の前記サブゾーンを複数集めて、ゾーンを形成する手段と、
異なるチップ内の前記ゾーンを複数集めてゾーン群を形成する手段と、
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割り当てる手段と、
前記各ゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
任意の前記サブゾーンを選択し、選択した該サブゾーンの冗長領域に書き込まれている論理アドレスに関する情報に基づいて、変換テーブルを作成する手段とを備え、
前記変換テーブルを作成するときに選択された複数のサブゾーンにおいて、１のサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されないように構成されていることを特徴とするメモリコントローラ。
【請求項７】
請求項１乃至６のいずれか１項に記載のメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項８】
ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするフラッシュメモリの制御方法であって、
同一チップ内の物理ブロックを複数集めてゾーンを形成し、異なるチップ内の前記ゾーンを複数集めてゾーン群を形成し、該ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる処理と、
前記各ゾーンに複数のグループのサブゾーンを形成し、対応関係が設定されている各チップ内の該サブゾーンから選択された物理ブロックを、仮想的に結合することにより仮想ブロックを形成する処理と、
前記仮想ブロックに対して、論理アドレスが連続するデータを書込む処理と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む処理と、
を含むことを特徴とするフラッシュメモリの制御方法。
【請求項９】
前記アドレス情報が、各物理ブロックの冗長領域に記憶されていることを特徴とする請求項８に記載のフラッシュメモリの制御方法。
【請求項１０】
前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されていることを特徴とする請求項８又は９に記載のフラッシュメモリの制御方法。
【請求項１１】
前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であることを特徴とする請求項８乃至１０のいずれか１項に記載のフラッシュメモリの制御方法。
【請求項１２】
前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成することを特徴とする請求項８乃至１１のいずれか１項に記載のフラッシュメモリの制御方法。
【請求項１３】
異なるゾーンで前記サブゾーン群に対する前記変換テーブルの作成処理が平行して実効されることを特徴とする請求項１２に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。
【０００４】
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
ＮＡＮＤ型フラッシュメモリに対する書込み処理では、まず、書込みデータがＮＡＮＤ型フラッシュメモリ内のレジスタに転送され、レジスタに保持された書込みデータがメモリセルアレイに複写される。この複写（書込み）処理で、メモリセルを消去状態から書込状態に変化させる場合、コントロールゲートに高電圧が印加され、フローティングゲートに電子が注入される。
【０００６】
ここで、レジスタからメモリセルアレイへの複写（書込み）処理は、ＮＡＮＤ型フラッシュメモリに与えられる書込みコマンドに基づいて開始される。この処理が開始されると、ＮＡＮＤ型フラッシュメモリは処理中であることを示すビジー信号を出力する。ビジー信号が出力されている間、ＮＡＮＤ型フラッシュメモリに対するアクセスは拒否され、このビジー信号が出力されている期間が書込み処理の高速化を図る上での妨げになっている。
【０００７】
この問題を解決するために、下記特許文献１では、異なるチップに属する複数の物理ブロックを仮想的に結合することにより、仮想ブロックを形成し、論理アドレスが連続するデータにアクセスするときに、仮想ブロックに含まれる各物理ブロックに対して、並列に処理を実行できるようにしている。
【特許文献１】国際公開第０２／０４６９２９号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のように複数のチップに属する物理ブロックで、仮想ブロックを形成して、並列処理を実行する場合、論理アドレスから物理アドレスを得るためのアドレス変換テーブルを、チップ毎に作成しなければならない。従って、仮想ブロックを形成して並列処理を実行すれば、書込み処理や読出し処理の高速化を図ることができるが、アドレス変換テーブルの作成処理に掛かる処理時間が増加する。
【０００９】
そこで、本発明は、仮想ブロックを形成して書込み処理の高速化を図る場合に、アドレス変換テーブルの作成処理に掛かる負担を軽減することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する手段と、
同一の前記サブゾーン群に属する前記各サブゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックに対して、論理アドレスが連続するデータを割当てる手段と、
前記サブゾーン群を複数集めて、ゾーン群を形成する手段と
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
を備えることを特徴とする。
【００１１】
尚、前記アドレス情報は、各物理ブロックの冗長領域に記憶されてもよい。
【００１２】
また、前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されてもよい。
【００１３】
また、前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であってもよい。
【００１４】
また、前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成してもよい。
【００１５】
また、ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
同じチップ内の前記サブゾーンを複数集めて、ゾーンを形成する手段と、
異なるチップ内の前記ゾーンを複数集めてゾーン群を形成する手段と、
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割り当てる手段と、
前記各ゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
任意の前記サブゾーンを選択し、選択した該サブゾーンの冗長領域に書き込まれている論理アドレスに関する情報に基づいて、変換テーブルを作成する手段とを備え、
前記変換テーブルを作成するときに選択された複数のサブゾーンにおいて、１のサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されないように構成してもよい。
【００１６】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステムは、前述のいずれかのメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とする。
【００１７】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、
ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするフラッシュメモリの制御方法であって、
同一チップ内の物理ブロックを複数集めてゾーンを形成し、異なるチップ内の前記ゾーンを複数集めてゾーン群を形成し、該ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる処理と、
前記各ゾーンに複数のグループのサブゾーンを形成し、対応関係が設定されている各チップ内の該サブゾーンから選択された物理ブロックを、仮想的に結合することにより仮想ブロックを形成する処理と、
前記仮想ブロックに対して、論理アドレスが連続するデータを書込む処理と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む処理と、
を含むことを特徴とする。
【００１８】
尚、前記アドレス情報が、各物理ブロックの冗長領域に記憶されてもよい。
【００１９】
また、前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されていてもよい。
【００２０】
また、前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であってもよい。
【００２１】
また、前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成してもよい。
この場合、異なるゾーンで前記サブゾーン群に対する前記変換テーブルの作成処理が平行して実効されてもよい。
【発明の効果】
【００２２】
本発明によれば、サブゾーン群毎に、独立して仮想ブロックが形成されるので、仮想ブロックと論理アドレスの対応関係を示す変換テーブルを、サブゾーン群毎に独立して作成することができる。更に、サブゾーン群毎に作成した変換テーブルを連結することにより、ゾーン群に対する変換テーブルを、より効率的に作成することができる。又、仮想的に結合される物理ブロックには、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示すアドレス情報が書込まれているので、このアドレス情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得することができる。従って、仮想的に複数の物理ブロックが結合された仮想ブロックにアクセスするときに、同一の仮想ブロックに属する１個の物理ブロックに対するアドレス変換テーブルを作成するだけで、同一の仮想ブロックに属する全ての物理ブロックに対してアクセスすることができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明の実施形態に係るフラッシュメモリシステム１を、概略的に示すブロック図である。
図１に示したように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３で構成されている。又、フラッシュメモリシステム１は、通常、ホストシステム４に着脱可能に装着され、ホストシステム４に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ２及びメモリコントローラ３の詳細を説明する。
【００２４】
[フラッシュメモリ２の説明]
このフラッシュメモリシステム１において、データが記憶されるフラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００２５】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００２６】
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム４側から与えられる論理アドレスと、フラッシュメモリ２内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ２にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ２に対するアクセスが行なわれる。
【００２７】
図２は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、本実施形態のフラッシュメモリ２では、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。
【００２８】
ここで、ユーザー領域は、主に、ホストシステム４から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００２９】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
【００３０】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００３１】
次に、フラッシュメモリ２の回路構成について説明する。一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００３２】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行っている。
【００３３】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込状態）が、論理値"０"のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値"１"のデータに対応する。
【００３４】
［メモリコントローラ３の説明］
メモリコントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
【００３５】
マイクロプロセッサ６は、メモリコントローラ３を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック７は動作する。
【００３６】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続される。かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口として、メモリコントローラ３の内部に取り込まれ、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口として、ホストシステム４に供給される。
【００３７】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００３８】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成されている。
【００３９】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４の受取準備ができるまで、バッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込準備ができるまで、バッファ９に保持される。
【００４０】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づいて、フラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。
【００４１】
ここで、「内部コマンド」とは、メモリコントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００４２】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行なう機能ブロックである。
【００４３】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００４４】
［フラッシュメモリシステムの動作の説明］
本発明に係るフラッシュメモリシステムでは、複数チップでフラッシュメモリ２の記憶領域を構成し、互いに異なるチップに属する物理ブロックを仮想的に結合して、仮想ブロックを形成している。この仮想ブロックについて、図３及び図４を参照して説明する。
【００４５】
図３は、仮想的に結合された物理ブロックを示す図である。
図３では、フラッシュメモリ２の記憶領域をチップ０、チップ１、チップ２及びチップ３の４個のチップにより構成した例を示している。ここで、チップ０〜３の各チップ内には、１０２４個の物理ブロックでゾーンが形成されている。各ゾーンを構成する物理ブロックには、０〜１０２３の連番（＃０〜＃１０２３）が付けられている。更に、各ゾーンは、物理ブロック＃０〜＃５１１で構成されたサブゾーン０と、物理ブロック＃５１２〜＃１０２３で構成されたサブゾーン１とに分割されている。言い換えれば、物理ブロック＃０〜＃５１１で構成されたサブゾーン０と物理ブロック＃５１２〜＃１０２３で構成されたサブゾーン１を連結してゾーンを形成している。
【００４６】
各チップのゾーンには、それぞれ異なるチップ内のゾーンとの対応関係が設定されている。図３には、対応関係が設定されている各チップ内のゾーンが１つずつ示されている。ここで、チップ０内のゾーンＡ、チップ１内のゾーンＢ、チップ２内のゾーンＣ及びチップ３内のゾーンＤは対応関係が設定されており、ゾーンＡ〜Ｄがゾーン群を形成している。このゾーン群に対しては、論理アドレスが連続する記憶領域が割当てられる。例えば、図３に示したような４０９６個の物理ブロックで構成されたゾーン群に対して、物理ブロック４０００個分の記憶領域が割当てられる。
【００４７】
ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤは、それぞれサブゾーン０とサブゾーン１に分割されており、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン０（物理ブロック＃０〜＃５１１で構成されるサブゾーン）がサブゾーン群を形成している。一方、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン１（物理ブロック＃５１２〜＃１０２３で構成されるサブゾーン）もサブゾーン群を形成している。以下、ゾーンＡのサブゾーン０、ゾーンＢのサブゾーン０、ゾーンＣのサブゾーン０及びゾーンＤのサブゾーン０で形成される記憶領域をサブゾーン群０と言い、ゾーンＡのサブゾーン１、ゾーンＢのサブゾーン１、ゾーンＣのサブゾーン１及びゾーンＤのサブゾーン１で形成される記憶領域をサブゾーン群１と言う。
【００４８】
サブゾーン群０とサブゾーン群１では、互いに独立して仮想ブロックが形成される。つまり、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン０に属する物理ブロック同士、又は、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン１に属する物理ブロック同士は仮想的に結合されて仮想ブロックを形成するが、各ゾーンのサブゾーン０に属する物理ブロックと、それと異なるゾーンのサブゾーン１に属する物理ブロックは仮想的に結合されないように設定されている。
【００４９】
例えば、ゾーンＡのサブゾーン０に属する物理ブロック＃１、ゾーンＢのサブゾーン０に属する物理ブロック＃２、ゾーンＣのサブゾーン０に属する物理ブロック＃０及びゾーンＤのサブゾーン０に属する物理ブロック＃４が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン０に属する物理ブロック同士が仮想的に結合されている。又、ゾーンＡのサブゾーン１に属する物理ブロック＃５１３、ゾーンＢのサブゾーン１に属する物理ブロック＃５１２、ゾーンＣのサブゾーン１に属する物理ブロック＃５１３及びゾーンＤのサブゾーン１に属する物理ブロック＃５１４が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン１に属する物理ブロック同士が仮想的に結合されている。
【００５０】
つまり、この例では、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン０（物理ブロック＃０〜＃５１１）から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合と、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤのサブゾーン１（物理ブロック＃５１２〜＃１０２３）から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合とがある。
【００５１】
図４は、仮想ブロックに記憶されるユーザーデータの配列を説明するための説明図である。
ここで、仮想ブロックに記憶されるユーザーデータの配列について説明する。図４は、仮想ブロックを形成する各物理ブロックが、３２個のページで構成されている場合を示している。この仮想ブロックは、４個の物理ブロックが結合されているので、１つの仮想ブロックには１２８ページ分のユーザーデータが記憶される。論理アドレスが連続する１２８ページ分のユーザーデータを、ページ単位で区切り、論理アドレスが若い方から順番にＹＤ０〜ＹＤ１２７とすれば、論理アドレスが最も若いユーザーデータＹＤ０が、ゾーンＡの物理ブロック＃１のページ０（Ｐ０）に割当てられ、論理アドレスが次に若いユーザーデータＹＤ１が、ゾーンＢの物理ブロック＃２のページ０（Ｐ０）に割当てられる。
【００５２】
以下、論理アドレスが若い方から順番に、ユーザーデータＹＤ２が、ゾーンＣの物理ブロック＃０のページ０（Ｐ０）に割当てられ、ユーザーデータＹＤ３が、ゾーンＤの物理ブロック＃４のページ０（Ｐ０）に割当てられる。
【００５３】
この後も同様に、ゾーンＡの物理ブロック＃１、ゾーンＢの物理ブロック＃２、ゾーンＣの物理ブロック＃０及びゾーンＤの物理ブロック＃４に対して、ユーザーデータＹＤ４〜１２７が、論理アドレスが若い方から順番に割当てられる。
【００５４】
上記のように、論理アドレスが連続するユーザーデータを、ページ単位で、ゾーンＡ〜Ｄの物理ブロックに順次割当てた場合、論理アドレスが連続する複数ページ分のユーザーデータを、書込んだり、又は読み出したりするときに、フラッシュメモリ２のチップ０〜３に対して、並列に処理を実行することができる。又、チップ０〜３に接続するバスがチップ毎に独立していない場合であっても、チップ０〜３に対するユーザーデータの送受信やコマンドの送信を、各チップ０〜３内の処理が終了するのを待つことなく順次実行していくことができる。このような並列処理の実行や待機時間の短縮により、書込み処理や読出し処理に掛かる処理時間を短縮することができる。
【００５５】
次に、サブゾーン群毎に独立して形成される仮想ブロックと、論理アドレスの対応関係について説明する。仮想ブロックと論理アドレスの対応関係は、仮想ブロックを１個の物理ブロックと見做して、ブロック単位で管理されている。図３に示したように、４個の物理ブロックを仮想的に結合して、仮想ブロックを形成した場合、物理ブロック４個分の記憶領域に対して、連続する論理アドレスが割当てられる。
【００５６】
図５は、論理アドレス空間を示す図であり、論理アドレス空間をＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）で示している。
図５中のＬＢＡ０〜ＬＢＡ５１１はセクタ単位で付けた連番であり、１セクタの容量がフラッシュメモリ２の１ページの容量と等しく、各物理ブロックが３２個のページで構成されている場合、４個の物理ブロックを結合した仮想ブロックは、論理アドレス空間の１２８セクタに割当てられる。従って、論理アドレス空間の１２８セクタ分の領域を１つの論理ブロック群とすれば、１つの仮想ブロックに１つの論理ブロック群が割当てられる。
【００５７】
図５に示した例では、論理アドレス空間を、１２８セクタ毎に区切った論理ブロック群に連番ＬＢＮ０〜ＬＢＮ３を付けている（以下、論理ブロック群に付けた連番を論理ブロック連番という）。
論理ブロック連番ＬＢＮ０がＬＢＡ０〜ＬＢＡ１２７に対応し、論理ブロック連番ＬＢＮ１がＬＢＡ１２８〜ＬＢＡ２５５に対応し、以下同様に、１２８セクタ毎に論理ブロック連番が割当てられている。
【００５８】
この論理ブロック連番ＬＢＮ０〜ＬＢＮ３は、その論理ブロック連番に対応するユーザーデータが書込まれた物理ブロックの冗長領域に書込まれ、書込まれた論理ブロック連番に基づいて仮想ブロックと論理ブロック群の対応関係が管理される。
【００５９】
例えば、図３で、ＬＢＡ０〜ＬＢＡ１２７に対応するユーザーデータが書込まれた仮想ブロックに属する４個の物理ブロックの冗長領域にはＬＢＮ０が書込まれ、ＬＢＡ１２８〜ＬＢＡ２５５に対応するユーザーデータが書込まれた仮想ブロックに属する４個の物理ブロックの冗長領域には、ＬＢＮ１が書込まれる。
【００６０】
図３に示した４０９６個の物理ブロックで構成されたゾーン群には、例えば、４０００個の物理ブロックに相当する論理アドレスの領域が割当てられる。この４０００個の物理ブロックに相当する論理アドレスの領域は、論理アドレスが連続した領域であり、１２８セクタ毎に論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９に対応する論理ブロック群に分割される。論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９の各論理ブロック群に対応するユーザーデータは、サブゾーン群０に書込まれても、サブゾーン群１に書込まれてもよい。
【００６１】
例えば、論理ブロック連番ＬＢＮ０に対応するユーザーデータが、サブゾーン群０に書込まれている場合に、このデータに置き換えられる新たなユーザーデータ（論理ブロック連番ＬＢＮ０に対応するユーザーデータ）を、サブゾーン群１に書込んでもよい。
【００６２】
フラッシュメモリ２にアクセスするときには、論理ブロック群と仮想ブロックとの対応関係を示した変換テーブルが用いられる。
図６（ａ），（ｂ）は、変換テーブルの説明図である。
図３で示したように、異なるゾーンに属する４個の物理ブロックを仮想的に結合して物理ブロックを形成した場合、各論理ブロック連番に対して、異なるゾーンに属する４個の物理ブロックが対応する。従って、各論理ブロック連番に対応する物理ブロックを、ゾーン毎に示した変換テーブル（図６（ａ））が必要になる。
しかし、図６（ａ）に示したような変換テーブルを作成する場合には、冗長領域に書込まれている論理ブロック連番を読み出す処理を、４つのゾーンに対して実行しなければならない。つまり、１つのゾーンが１０２４個の物理ブロックで構成されている場合には、４０９６個の物理ブロックに対して読出し処理を実行しなければならない。
【００６３】
上記のような変換テーブルの作成にかかる負担を軽減するため、本発明に係るフラッシュメモリシステム１では、各仮想ブロックに属する１個の物理ブロックと論理ブロック連番との対応関係を示した変換テーブルだけを作成し、変換テーブルに論理ブロック連番との対応関係が示されていない物理ブロックについては、後述するリンク番号に基づいて、対応する論理ブロック連番やＬＢＡを知得している。
【００６４】
図６（ｂ）は、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）及びゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）と論理ブロック連番との対応関係を示した変換テーブルである。この変換テーブルは、各論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９が、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）若しくはゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）のいずれの物理ブロックに対応するかを示している。ここで、サブゾーン群０とサブゾーン群１では、独立して仮想ブロックが形成されるので、同じ論理ブロック連番に対応する物理ブロックが、ゾーンＡ内のサブゾーン０（物理ブロック＃０〜＃５１１）とゾーンＢ内のサブゾーン１（物理ブロック＃５１２〜＃１０２３）の双方に存在することはない。
【００６５】
仮に、サブゾーン群０とサブゾーン群１で、独立して仮想ブロックが形成されなかった場合、ゾーンＡ内のサブゾーン０（物理ブロック＃０〜＃５１１）に属する物理ブロックとゾーンＢ内のサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックを含んだ仮想ブロックが形成されることがある。このような場合、同じ論理ブロック連番に対応する物理ブロックが、ゾーンＡ内のサブゾーン０（物理ブロック＃０〜＃５１１）とゾーンＢ内のサブゾーン１（物理ブロック＃５１２〜＃１０２３）の双方に存在することになる。
【００６６】
上述のように、サブゾーン群０とサブゾーン群１で、独立して仮想ブロックが形成されるようにしたことにより、論理ブロック連番とゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）に属する物理ブロックとの対応関係、若しくは論理ブロック連番とゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックとの対応関係に基づいて、ゾーンＡ、ゾーンＢ、ゾーンＣ及びゾーンＤで構成されるゾーン群にアクセスすることができる。
【００６７】
例えば、図６（ｂ）の変換テーブルに基づいて、論理ブロック連番ＬＢＮ０に対応する仮想ブロックにゾーン０の物理ブロック＃１が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の３個の物理ブロックを知得し、論理ブロック連番ＬＢＮ０に対応する仮想ブロックにアクセスすることができる。又、論理ブロック連番ＬＢＮ５５０に対応する仮想ブロックにゾーン１の物理ブロック＃５１２が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の３個の物理ブロックを知得し、論理ブロック連番ＬＢＮ５５０に対応する仮想ブロックにアクセスすることができる。
【００６８】
ここで、図６（ｂ）の変換テーブルは、論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９とゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）に属する物理ブロック、若しくはゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックとの対応関係を示しているので、変換テーブルに示された物理ブロックの連番が＃０〜＃５１１の場合は、ゾーンＡに属する物理ブロックが対応し、変換テーブルに示された物理ブロックの連番が＃５１２〜＃１０２３の場合は、ゾーンＢに属する物理ブロックが対応する。
【００６９】
図７は、変換テーブルの作成方法を示す説明図である。
図６（ｂ）の変換テーブルを作成する場合、図７に示したようにゾーンＡのサブゾーン０に属する物理ブロック、つまり、ゾーンＡの物理ブロック＃０〜＃５１１の冗長領域に対する読出し処理と、ゾーンＢのサブゾーンに属する物理ブロック、つまり、ゾーンＢの物理物理ブロック＃５１２〜＃１０２３の冗長領域に対する読出し処理を、並行して進行させることができる。従って、１つのゾーンのサブゾーン０及びサブゾーン１の冗長領域に対する読出し処理を実行して、論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９と１つのゾーンに属する物理ブロック＃０〜＃１０２３との対応関係を示した変換テーブルを作成する場合よりも、短時間で変換テーブルを作成することができる。
【００７０】
図８（ａ），（ｂ）は、仮想的に結合された各物理ブロックの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
図８（ａ）では、ゾーンＡの物理ブロック＃１、ゾーンＢの物理ブロック＃２、ゾーンＣの物理ブロック＃０及びゾーンＤの物理ブロック＃４は仮想的に結合されて１つの仮想ブロックとなり、この仮想ブロックには、論理アドレス空間のＬＢＡ０〜１２７が割当てられている。従って、これらの物理ブロックの冗長領域には、セクタ単位の連番ＬＢＡ０〜１２７に対応する論理ブロック連番ＬＢＮ０が書込まれている。
【００７１】
同様に、仮想ブロックを形成しているゾーンＡの物理ブロック＃３、ゾーンＢの物理ブロック＃４、ゾーンＣの物理ブロック＃５及びゾーンＤの物理ブロック＃６の冗長領域には、セクタ単位の連番ＬＢＡ１２８〜ＬＢＡ２５５に対応する論理ブロック連番ＬＢＮ１が書込まれている。又、仮想ブロックを形成しているゾーンＡの物理ブロック＃７、ゾーンＢの物理ブロック＃６、ゾーンＣの物理ブロック＃８及びゾーンＤの物理ブロック＃９の冗長領域には、セクタ単位の連番ＬＢＡ２５６〜ＬＢＡ３８３に対応する論理ブロック連番ＬＢＮ２が書込まれている。
【００７２】
論理ブロック連番ＬＢＮ０〜ＬＢＮ２に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域には、更にリンク番号が書込まれている。このリンク番号は、仮想的に結合されている物理ブロックの結合関係を知得するために使用される。例えば、ゾーンＡの物理ブロック＃１の冗長領域には、この物理ブロック＃１と仮想的に結合するゾーンＢの物理ブロック＃２の番号＃２がリンク番号として書込まれ、ゾーンＢの物理ブロック＃２の冗長領域には、この物理ブロック＃２と仮想的に結合するゾーンＣの物理ブロック＃０の番号＃０がリンク番号として書込まれる。ゾーンＣの物理ブロック＃０の冗長領域には、この物理ブロック＃０と仮想的に結合するゾーンＤの物理ブロック＃４の番号＃４がリンク番号として書込まれている。
【００７３】
従って、ゾーンＡの物理ブロック＃１の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するゾーンＢの物理ブロック＃２の番号が＃２であることが分かり、ゾーンＢの物理ブロック＃２の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック＃２と仮想的に結合するゾーンＣの物理ブロック＃０の番号が＃０であることが分かる。同様に、ゾーンＣの物理ブロック＃０の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック＃０と仮想的に結合するゾーンＤの物理ブロック＃４の番号が＃４であることが分かる。
【００７４】
論理ブロック連番ＬＢＮ１、ＬＢＮ２に対応する仮想ブロックについても同様に、ゾーンＡの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＢの物理ブロックの連番がリンク番号として書込まれ、ゾーンＢの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＣの物理ブロックの連番がリンク番号として書込まれ、ゾーンＣの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＤの物理ブロックの連番がリンク番号として書込まれる。
これらのリンク番号によって、ゾーンＡの物理ブロック＃３と仮想的に結合する物理ブロックがゾーンＢの物理ブロック＃４であり、ゾーンＢの物理ブロック＃４と仮想的に結合する物理ブロックがゾーンＣの物理ブロック＃５であり、ゾーンＣの物理ブロック＃５と仮想的に結合する物理ブロックがゾーンＤの物理ブロック＃６であることが分かる。
また、ゾーンＡの物理ブロック＃７と仮想的に結合する物理ブロックがゾーンＢの物理ブロック＃６であり、ゾーンＢの物理ブロック＃６と仮想的に結合する物理ブロックがゾーンＣの物理ブロック＃８であり、ゾーンＣの物理ブロック＃８と仮想的に結合する物理ブロックがゾーンＤの物理ブロック＃９であることが分かる。
【００７５】
尚、変換テーブルが論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９とゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）に属する物理ブロックとの対応関係を示している場合、サブゾーン群０に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃５１１）に属する物理ブロックから順番にリンク番号を辿ることになる。
【００７６】
従って、ゾーンＤの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンＤの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンＡの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンＡ〜Ｄのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンＡ〜Ｄのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリ２にアクセスすることができる。
【００７７】
図８（ｂ）では、ゾーンＡの物理ブロック＃５１３、ゾーンＢの物理ブロック＃５１２、ゾーンＣの物理ブロック＃５１３及びゾーンＤの物理ブロック＃５１４が仮想的に結合されていることを示している。これらの物理ブロックの冗長領域には、この仮想ブロックに対応する論理ブロック連番ＬＢＮ５５０が書込まれている。同様に、仮想ブロックを形成しているゾーンＡの物理ブロック＃５１５、ゾーンＢの物理ブロック＃５１４、ゾーンＣの物理ブロック＃５１７及びゾーンＤの物理ブロック＃５１６の冗長領域には、論理ブロック連番ＬＢＮ５５１が書込まれている。又、仮想ブロックを形成しているゾーンＡの物理ブロック＃５１８、ゾーンＢの物理ブロック＃５２０、ゾーンＣの物理ブロック＃５１９及びゾーンＤの物理ブロック＃５２１の冗長領域には、論理ブロック連番ＬＢＮ５５２が書込まれている。
【００７８】
論理ブロック連番ＬＢＮ５５０〜５５２に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域にも、仮想的に結合されている物理ブロックの結合関係を知得するために使用されるリンク番号が書込まれている。論理ブロック連番ＬＢＮ５５０〜ＬＢＮ５５２に対応するこれらの仮想ブロックは、サブゾーン群１に属する物理ブロックで構成されている仮想ブロックに対応している。サブゾーン群１に対する変換テーブルが論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９とゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックとの対応関係を示している場合、ゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックから順番にリンク番号を辿ることになる。
【００７９】
従って、論理ブロック連番ＬＢＮ５５０〜ＬＢＡ９９９に対応する仮想ブロックについては、ゾーンＢの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＣの物理ブロックの連番がリンク番号として書込まれ、ゾーンＣの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＤの物理ブロックの連番がリンク番号として書込まれ、ゾーンＤの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンＡの物理ブロックの連番がリンク番号として書込まれる。
【００８０】
このリンク番号によって、ゾーンＢの物理ブロック＃５１２と仮想的に結合する物理ブロックがゾーンＣの物理ブロック＃５１３であり、ゾーンＣの物理ブロック＃５１３と仮想的に結合する物理ブロックがゾーンＤの物理ブロック＃５１４であり、ゾーンＤの物理ブロック＃５１４と仮想的に結合する物理ブロックがゾーンＡの物理ブロック＃５１３であることが分かる。
又、ゾーンＢの物理ブロック＃５１４と仮想的に結合する物理ブロックがゾーンＣの物理ブロック＃５１７であり、ゾーンＣの物理ブロック＃５１７と仮想的に結合する物理ブロックがゾーンＤの物理ブロック＃５１６であり、ゾーンＤの物理ブロック＃５１６と仮想的に結合する物理ブロックがゾーンＡの物理ブロック＃５１５であることが分かる。
また、ゾーンＢの物理ブロック＃５２０と仮想的に結合する物理ブロックがゾーンＣの物理ブロック＃５１９であり、ゾーンＣの物理ブロック＃５１９と仮想的に結合する物理ブロックがゾーンＤの物理ブロック＃５２１であり、ゾーンＤの物理ブロック＃５２１と仮想的に結合する物理ブロックがゾーンＡの物理ブロック＃５１８であることが分かる。
【００８１】
尚、変換テーブルが論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９とゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックとの対応関係を示している場合、サブゾーン群１に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンＢのサブゾーン１（物理ブロック＃５１２〜＃１０２３）に属する物理ブロックから順番にリンク番号を辿ることになる。従って、ゾーンＡの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンＡの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンＢの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンＡ〜Ｄのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンＡ〜Ｄのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリにアクセスすることができる。
【００８２】
このように冗長領域にリンク番号が書込まれていれば、仮想ブロックに属する１個の物理ブロックから、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報（例えば、物理アドレスや物理ブロックの連番等）を取得することができる。従って、ホストシステムから供給されたＬＢＡに対応する仮想ブロックに属する１個の物理ブロックのアドレス情報を、変換テーブルによって求めることができれば、変換テーブルによって求めた１個の物理ブロックと仮想的に結合する物理ブロックのアドレス情報を取得することができる。又、変換テーブルによって求められる１個の物理ブロックのアドレス情報は、仮想ブロックに属するいずれの物理ブロックのアドレス情報であってもよい。
【００８３】
又、ホストシステム４から供給された論理ブロックに基づいてフラッシュメモリ２にアクセスする場合は、まず、ホストシステム４から供給された論理ブロックアドレスに対応する仮想ブロックに属する１個の物理ブロックのアドレス情報を、変換テーブルを用いて取得する。続いて、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報を、リンク番号に基づいて取得する。その後、取得したアドレス情報に基づいてフラッシュメモリ２にアクセスすればよい。
【００８４】
以上の説明では、各ゾーンを２つのサブゾーンに分割したが、サブゾーンの数は特に限定されることはない。
図９は、サブゾーンの他の構成例を示す図である。
例えば、図９に示したようにサブゾーン０〜３の４つのサブゾーンに分割してもよい。この場合、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックと、ゾーンＢのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックと、ゾーンＣのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックと、ゾーンＤのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックとが仮想的に結合される。
【００８５】
又、ゾーンＡのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックと、ゾーンＢのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックと、ゾーンＣのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックと、ゾーンＤのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックとが仮想的に結合される。
【００８６】
又、ゾーンＡのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックと、ゾーンＢのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックと、ゾーンＣのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックと、ゾーンＤのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックとが仮想的に結合される。
【００８７】
又、ゾーンＡのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックと、ゾーンＢのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックと、ゾーンＣのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックと、ゾーンＤのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックとが仮想的に結合される。
【００８８】
変換テーブルに示される論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９と仮想ブロックに属する物理ブロックとの対応関係は、サブゾーン毎にゾーンＡ〜Ｄを選択することができる。例えば、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロック、ゾーンＢのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロック、ゾーンＣのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロック又はゾーンＤのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックと論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９との対応関係を示した変換テーブルであってもよい。
【００８９】
変換テーブルが、ゾーンＡのサブゾーン０（物理ブロック＃０〜＃２５５）、ゾーンＢのサブゾーン１（物理ブロック＃２５６〜＃５１１）、ゾーンＣのサブゾーン２（物理ブロック＃５１２〜＃７６７）又はゾーンＤのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックと論理ブロック連番ＬＢＮ０〜ＬＢＮ９９９との対応関係を示している場合には、次のようにしてリンク番号を辿ることになる。
【００９０】
図１０（ａ）〜（ｄ）は、リンク番号の辿り方の説明図である。
ゾーンＡ〜Ｄのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図１０（ａ）に示したようにゾーンＡのサブゾーン０（物理ブロック＃０〜＃２５５）に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンＡ、ゾーンＢ、ゾーンＣ、ゾーンＤの順番でリンク番号を辿る。
【００９１】
ゾーンＡ〜Ｄのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図１０（ｂ）に示したようにゾーンＢのサブゾーン１（物理ブロック＃２５６〜＃５１１）に属する物理ブロックから順番にリンク番号を辿る。
つまり、ゾーンＢ、ゾーンＣ、ゾーンＤ、ゾーンＡの順番でリンク番号を辿る。
【００９２】
ゾーンＡ〜Ｄのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図１０（ｃ）に示したようにゾーンＣのサブゾーン２（物理ブロック＃５１２〜＃７６７）に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンＣ、ゾーンＤ、ゾーンＡ、ゾーンＢの順番でリンク番号を辿る。
【００９３】
ゾーンＡ〜Ｄのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図１０（ｄ）に示したようにゾーンＤのサブゾーン３（物理ブロック＃７６８〜＃１０２３）に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンＤ、ゾーンＡ、ゾーンＢ、ゾーンＣの順番でリンク番号を辿る。
【００９４】
尚、リンク番号は、物理ブロックの物理アドレスを知得できるアドレス情報であれば、特に限定されることはない。又、仮想的に結合される物理ブロックの数や、ゾーンを構成する物理ブロックの数、ゾーン群を構成するゾーンの数、ゾーン群に含まれるサブゾーン群の数についても、特に限定されることはなない。
【００９５】
又、上記の説明では、各物理ブロックに仮想的に結合される１個の物理ブロックのアドレス情報を、リンク番号として書込んだが、仮想的に結合される複数の物理ブロックのアドレス情報又は仮想的に結合される全ての物理ブロックのアドレス情報を書込んでもよい。仮想的に結合される全ての物理ブロックのアドレス情報、リンク番号として書込んだ場合には、その物理ブロックに書込まれているリンク番号を全て読み出すだけで、その物理ブロックと仮想的に結合される全ての物理ブロックのアドレス情報を取得することができる。
又、図７に示した図６（ｂ）の変換テーブルの作成方法では、ゾーンＡ之サブゾーン０とゾーンＢのサブゾーン１を対象に変換テーブルの作成を行っている。従って、ゾーンＡのサブゾーン０に属する物理ブロックとゾーンＢのサブゾーン１に属する物理ブロックが仮想的に結合されて（仮想ブロックを形成し）、ゾーンＡのサブゾーン０とゾーンＢのサブゾーン１の双方に同じ論理ブロック連番に対応する物理ブロックがなければ、ゾーンＡとゾーンＢに属する物理ブロックと仮想的に結合されるゾーンＣとゾーンＤに属する物理フロックは、サブゾーン０とサブゾーン１のいずれに属していても支障がない。つまり、ゾーンＡのサブゾーン０に属する物理ブロックとゾーンＢのサブゾーン１に属する物理ブロック同士、もしくはゾーンＡのサブゾーン１に属する物理ブロックとゾーンＢのサブゾーン０に属する物理ブロック同士が仮想的に結合されれば、こちらの物理ブロックと仮想的に結合されるゾーンＣとゾーンＤに属する物理ブロックは、サブゾーン０とサブゾーン１のいずれに属していても、ゾーンＡのサブゾーン０とゾーンＢのサブゾーン１を対象として、変換テーブルを作成することができる。従って、少なくとも変換テーブルの作成対象になっている複数のサブゾーンにおいて、
１つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されなければ、つまり、１つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックに、同じ論理ブロック連番に対応する物理ブロックがなければ、本発明の効果を得ることができる。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施形態に係るフラッシュメモリシステムのブロック図である。
【図２】ブロックとページの関係を示す説明図である。
【図３】仮想的に結合された物理ブロックを示す図である。
【図４】仮想的に結合された物理ブロックに書込まれるユーザーデータの配列を示す図である。
【図５】論理アドレス空間を示す図である。
【図６】変換テーブルを示す図である。
【図７】変換テーブルの作成処理を説明するための図である。
【図８】フラッシュメモリの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
【図９】サブゾーンの他の構成例を示す図である。
【図１０】リンク番号を説明するための図である。
【符号の説明】
【００９７】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  メモリコントローラ
４  ホストシステム
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  外部バス
１４  内部バス
【図１】
2006127234.tif 000003
【図２】
2006127234.tif 000004
【図３】
2006127234.tif 000005
【図４】
2006127234.tif 000006
【図５】
2006127234.tif 000007
【図６】
2006127234.tif 000008
【図７】
2006127234.tif 000009
【図８】
2006127234.tif 000010
【図９】
2006127234.tif 000011
【図１０】
2006127234.tif 000012