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