(57)【要約】【課題】ＡＴＡインターフェースに接続されたフラッシュメモリシステムで、ホストシステム側から要求されるフラッシュメモリシステム内の内部情報を、ホストシステム側に効率的に転送すること。ホストシステムが、ステータスレジスタの長さ以上のステータス情報をフラッシュメモリから簡単な手段で取得できるようにする。【解決手段】ホストシステムから与えられる指示情報に応答して、フラッシュメモリ内の状態に関する内部情報を、バッファに書き込み、バッファへの内部情報の書き込みが終了したときに、ホストシステムに対して、バッファに転送可能なデータが保持されていることを通知し、バッファに保持されている内部情報を、ホストシステムに転送する。ホストシステムは、フラッシュメモリに記憶されているデータを読み出すときと同様の動作で内部情報を取得することができる。【選択図】図５
2008176606.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリに書き込む書き込みデータ又は前記フラッシュメモリから読み出した読み出しデータを１又は複数セクタ単位で保持するデータ保持手段と、
前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知手段と、
前記データ保持手段に保持されているデータを、前記ホストシステムに転送するデータ転送手段と、
前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを前記データ保持手段に書き込むデータ設定手段とを備え、
前記通知手段は、前記ホストシステムに転送可能な前記読み出しデータが前記データ保持手段に保持されたとき、又は前記情報設定手段による前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記データ保持手段に転送可能なデータが保持されていることを通知することを特徴とするメモリコントローラ。
【請求項２】
前記内部情報は、前記フラッシュメモリ内の不良ブロック数および空きブロック数であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
請求項１又は２に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項４】
ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを、前記フラッシュメモリに書き込むデータ又は前記フラッシュメモリから読み出したデータを１又は複数セクタ単位で保持するデータ保持手段に書き込むデータ設定ステップと、
前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知ステップと、
前記データ保持手段に保持されている前記内部情報データを、前記ホストシステムに転送するデータ転送ステップと、
を含むことを特徴とするフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、不揮発性の記憶媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器（ホストシステム）の記憶媒体として普及している。そして、このような情報機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。そのため、集積度に優れ、大容量化が容易なＮＡＮＤ型フラッシュメモリが注目されている。
【０００３】
ＮＡＮＤ型フラッシュメモリは、メモリセルを消去状態（論理値＝１）から書込状態（論理値＝０）に変化させる場合には、メモリセル単位で行なうことができる。しかし、メモリセルを書込状態（論理値＝０）から消去状態（論理値＝１）に変化させる場合には、複数のメモリセルからなる所定の消去単位（ブロック単位）でしか行なうことができない。データの読み出し及び書き込みはページ単位で行われ、消去単位であるブロックは複数のページで構成されている。
【０００４】
ＮＡＮＤ型フラッシュメモリのページは、磁気ディスク装置における１又は複数のセクタに対応している。従って、ＮＡＮＤ型フラッシュメモリを用いたメモリシステムは、従来の磁気ディスク装置を置換える用途に使用されることが多くなっている。このような理由により、ＮＡＮＤ型フラッシュメモリを用いたメモリシステムのインターフェースには、通常、磁気ディスク装置で用いられているＡＴＡ（AT Attachment）が採用されている。
【０００５】
ＡＴＡに準拠したインターフェース（以下、ＡＴＡインターフェースと言う）は、図７のようにコマンドレジスタ１５ａ、セクタカウントレジスタ１５ｂ、ＬＢＡ（Logical Block Address）レジスタ１５ｃ、データレジスタ１５ｄ及びステータスレジスタ１５ｅ等のＡＴＡレジスタ１５を備えている。このＡＴＡレジスタ１５に対して書き込み又は読み出しを行なうことにより、ＡＴＡインターフェースに接続された周辺機器に対するアクセスが行なわれる。従って、周辺機器が記憶媒体としてフラッシュメモリを用いたフラッシュメモリシステムの場合も、ホストシステム側からフラッシュメモリシステムにアクセスするときには、ＡＴＡレジスタ１５にコマンド、アドレス等の指示情報を設定することによりアクセスが行なわれる。
【０００６】
例えば、ホストシステム側からフラッシュメモリシステムに対して、読み出し若しくは書き込みを実行する場合、ホストシステム側から、読み出し若しくは書き込みを実行するセクタの先頭アドレスがＬＢＡレジスタ１５ｃに設定され、読み出すセクタ数若しくは書き込むセクタ数がセクタカウントレジスタ１５ｂに設定され、読み出し若しく書き込みのコマンドは、コマンドレジスタ１５ａに設定される。この設定に基づいて、書き込みの場合は、フラッシュメモリにデータが書き込まれ、読み出しの場合は、フラッシュメモリからデータが読み出される。
【０００７】
また、ホストシステムは、ＡＴＡインターフェースに接続された周辺機器の状態を、ステータスレジスタ１５ｅに設定されている情報に基づいて知ることができる。つまり、ＡＴＡインターフェースに接続された周辺機器の状態を知りたいときは、下記特許文献１にも開示されているように、ステータスレジスタ１５ｅに設定されている情報（以下、ステータス情報と言う。）が読み出される。この、ステータスレジスタ１５ｅの各ビットには所定の情報が割り当てられている。従って、ステータスレジスタ１５ｅから読み出されたステータス情報の各ビットの論理値に基づいて、周辺機器の状態を判断することができる。
【０００８】
【特許文献１】特開２００５−７１５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ステータスレジスタ１５ｅから読み出されたステータス情報からは、ステータスレジスタ１５ｅの各ビットに割り当てられている情報だけしか知ることができない。従って、ＡＴＡインターフェースに接続されたフラッシュメモリシステムでは、フラッシュメモリ内の不良ブロック数、空きブロック数等の内部状態を示す情報（以下、内部情報と言う）を取得することができかった。
【００１０】
そこで、本発明は、ＡＴＡインターフェースに接続されたフラッシュメモリシステムの内部情報を、ホストシステム側から取得するのに好適なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明によるメモリコントローラは、ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、前記フラッシュメモリに書き込む書き込みデータ又は前記フラッシュメモリから読み出した読み出しデータを１又は複数セクタ単位で保持するデータ保持手段と、前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知手段と、前記データ保持手段に保持されているデータを、前記ホストシステムに転送するデータ転送手段と、前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを前記データ保持手段に書き込むデータ設定手段とを備え、前記通知手段は、前記ホストシステムに転送可能な前記読み出しデータが前記データ保持手段に保持されたとき、又は前記情報設定手段による前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記データ保持手段に転送可能なデータが保持されていることを通知することを特徴とする。
【００１２】
前記内部情報は、前記フラッシュメモリ内の不良ブロック数および空きブロック数であることが好ましい。
【００１３】
上記目的を達成するために、本発明によるフラッシュメモリシステムは、前記メモリコントローラのいずれか１つとフラッシュメモリを備えている。
【００１４】
上記目的を達成するために、本発明によるフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に基づいて、記憶データの消去が物理ブロック単位で行われるフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、前記ホストシステムから与えられる指示情報に応答して、前記フラッシュメモリ内の状態に関する内部情報データを、前記フラッシュメモリに書き込むデータ又は前記フラッシュメモリから読み出したデータを１又は複数セクタ単位で保持するデータ保持手段に書き込むデータ設定ステップと、前記データ保持手段への前記内部情報データの書き込みが終了したときに、前記ホストシステムに対して、前記データ保持手段に転送可能なデータが保持されていることを通知する通知ステップと、前記データ保持手段に保持されている前記内部情報データを、前記ホストシステムに転送するデータ転送ステップとを含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ＡＴＡインターフェースに接続されたフラッシュメモリシステムで、ホストシステム側から要求されるフラッシュメモリシステム内の内部情報を、ホストシステム側に効率的に転送することができる。又、ホストシステムは、フラッシュメモリに記憶されているデータを読み出すときと同様の動作で内部情報を取得することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
【００１７】
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。図１に示すように、フラッシュメモリシステム１は、ＮＡＮＤ型フラッシュメモリであるフラッシュメモリ２と、それを制御するコントローラ３で構成されている。
【００１８】
なお、フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続される。ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Central Processing Unit）、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム４は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００１９】
フラッシュメモリ２は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ２は、レジスタとメモリセルアレイとの間でデータの書き込み又は読み出しを行なう。
【００２０】
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの書き込み又は読み出しが行われる。
【００２１】
メモリセルアレイを構成するメモリセルは、コントロールゲートとフローティングゲートを備えており、フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書き込み若しくはデータの消去が行われる。ここで、消去状態が論理値「１」に対応し、書き込み状態が論理値「０」に対応している。
【００２２】
ＮＡＮＤ型フラッシュメモリであるフラッシュメモリ２の構造を図２に示す。フラッシュメモリ２は、「ページ」及び「ブロック（物理ブロック）」で構成されている。
【００２３】
ページは、フラッシュメモリ２にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ２にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
【００２４】
上記物理ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、図２（ａ）に示したような小ブロックのフラッシュメモリと、図２（ｂ）に示したような大ブロックのフラッシュメモリが一般的に使用されている。小ブロック構成では、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイト（１セクタ）のユーザ領域２５と１６バイトの冗長領域２６で構成されている。また、大ブロック構成では、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイト（４セクタ）のユーザ領域２５と６４バイトの冗長領域２６で構成されている。
【００２５】
ここで、ユーザ領域２５は、ホストシステム４から供給されるユーザデータを記憶するための領域である。
【００２６】
また、冗長領域２６は、誤り訂正符号、論理アドレス情報、ブロックステータス等の付加データを記憶するための領域である。
【００２７】
誤り訂正符号は、ユーザ領域２５に記憶されているユーザデータに含まれる誤りを検出し、訂正するためのデータである。
【００２８】
論理アドレス情報は、物理ブロックに有効なユーザデータが記憶されている場合に、そのユーザデータに対応する論理ブロックを特定するために用いられる情報である。論理ブロックは、ホストシステム４側のアドレス空間におけるセクタを複数個まとめたものであり、この論理ブロックと物理ブロックの対応関係を管理することにより、ホストシステム４で管理されている論理アドレスとフラッシュメモリ２内の物理アドレスの対応関係を管理している。尚、ホストシステム４側のアドレス空間は、セクタ（５１２バイト）単位で分割した領域に付けた通番であるＬＢＡ（Logical Block Address）で管理されている。ホストシステム４は、このＬＢＡでフラッシュメモリ２内のアクセス領域を指定する。
【００２９】
物理ブロックに有効なユーザデータが記憶されていない場合、その物理ブロックの冗長領域２６には、冗長領域２６に、論理アドレス情報が書き込まれていない。従って、冗長領域２６に論理アドレス情報が書き込まれているか否かで、その物理ブロックが空きブロック（消去済ブロック）であるか否かを判断することができる。つまり、論理アドレス情報が書き込まれていない場合は、空きブロック（消去済ブロック）であると判断される。
【００３０】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書き込み等を行なうことができない物理ブロック）であるか否かを示す情報であり、この情報に基づいて不良ブロックであるか否かが識別される。従って、不良ブロックであると判断された物理ブロックの冗長領域２６には、不良ブロックであることを示す情報がブロックステータスとして設定される。
【００３１】
このようなフラッシュメモリ２は、コントローラ３から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し、書き込み、消去等の各動作を実行する。
【００３２】
コントローラ３は、図１に示すように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（Error Correcting Code）ブロック１１と、ＲＯＭ（Read Only Memory）１２と、から構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
【００３３】
マイクロプロセッサ６は、ＲＯＭ１２に記憶されているプログラムに従って、コントローラ３の全体の動作を制御する。例えば、マイクロプロセッサ６は、各種処理等を定義したコマンドセット（シーケンスコマンド）をＲＯＭ１２から読み出してフラッシュメモリインターフェースブロック１０に供給し、フラッシュメモリインターフェースブロック１０に処理を実行させる。
【００３４】
ホストインターフェースブロック７は、ホストシステム４との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてフラッシュメモリシステム１の内部（例えば、バッファ９）に取り込まれる。また、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００３５】
ワークエリア８は、フラッシュメモリ２の制御等に必要なデータが一時的に記憶される作業領域であり、複数のＳＲＡＭ（Static Random Access Memory）セルによって構成される。ワークエリア８には、例えば、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル、空きブロックを検索する空きブロック検索テーブルなどが記憶される。
【００３６】
バッファ９は、フラッシュメモリ２から読み出されたデータ及びフラッシュメモリ２に書き込むべきデータを１セクタ単位又は複数セクタ単位で一時的に保持する。すなわち、フラッシュメモリ２から読み出されたデータは、ホストシステム４が受け取り可能な状態となるまでバッファ９に保持され、フラッシュメモリ２に書き込むべきデータは、フラッシュメモリ２が書き込み可能な状態となるまでバッファ９に保持される。
【００３７】
フラッシュメモリインターフェースブロック１０は、バッファ９からフラッシュメモリ２への書き込み処理やフラッシュメモリ２からバッファ９への読み出し処理を制御するブロックである。書き込み処理や読み出し処理を実行するときの一連の制御動作は、ＲＯＭ１２に記憶されている一連の制御動作を指示するシーケンスコマンドに基づいて実行される。
【００３８】
ＥＣＣブロック１１は、フラッシュメモリ２に書き込むデータに付加される誤り訂正符号（ＥＣＣ：Error Correcting Code）を生成するとともに、フラッシュメモリ２から読み出したデータに付加された誤り訂正符号（ＥＣＣ）に基づいて、読み出したデータに含まれる誤りを検出・訂正する。
【００３９】
ＲＯＭ１２は、マイクロプロセッサ６によって実行される処理の手順を定義するプログラム等を格納する不揮発性の記憶素子である。具体的には、ＲＯＭ１２は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
【００４０】
次にフラッシュメモリの記憶領域の管理方法について説明する。フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。
【００４１】
図３は、フラッシュメモリ２の記憶領域を複数のゾーン（物理ゾーン）に分割して管理する場合の一例である。記憶データの消去単位である物理ブロックには、それぞれに固有の物理ブロックアドレス（ＰＢＡ）が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれ物理ゾーン番号（ＰＺＮ）が割り当てられる。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号（ＰＺＩＢＮ）と呼んでいる。図３の例では、物理ブロックには＃０から連続するＰＢＡが割り当てられており、ＰＢＡ＃０〜＃１０２３の計１０２４個の物理ブロックがＰＺＮ＃０の物理ゾーンに含まれ、ＰＢＡ＃１０２４〜＃２０４７の計１０２４個の物理ブロックがＰＺＮ＃１の物理ゾーンに含まれ、ＰＢＡ＃２０４８〜＃３０７１の計１０２４個の物理ブロックがＰＺＮ＃２の物理ゾーンに含まれる。
【００４２】
一方、ホストシステム４側のアドレス空間も複数のゾーン（論理ゾーン）に分割され、１つの論理ゾーンに対して１つの物理ゾーンが割り当てられる。論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。尚、論理ゾーンに含まれる論理ブロックの数は、物理ゾーンに含まれる物理ブロックの数よりも少なくなるように設定される。例えば、１０００個の論理ブロックを含む論理ゾーンを、１０２４個の物理ブロックを含む物理ゾーンに割り当てる。このように、論理ゾーンに含まれる論理ブロックの数を、物理ゾーンに含まれる物理ブロックの数よりも少なくするのは、先天性の不良ブロックの数、及び後天的に不良化するブロックの数を考慮したものである。
【００４３】
又、データが書き込まれた物理ブロックの冗長領域には、書き込んだデータに対応する論理アドレス情報が書き込まれる。この論理アドレス情報は、論理ブロックに付けた通番である論理ブロック番号（ＬＢＮ）であっても、各論理ゾーンに含まれる論理ブロックの各論理ゾーン内での通番である論理ゾーン内ブロック番号（ＬＺＩＢＮ）であってもよい。
【００４４】
次にホストシステム４側からフラッシュメモリ２の内部状態を示す情報（内部情報）を取得する手順を説明する。以下の説明では、内部情報として、図４に示したような物理ゾーン毎の不良ブロック数と空きブロック数を取得するものとする。以下、メモリコントローラ３によって物理ゾーン毎の不良ブロック数と空きブロック数に関する情報が作成され、ホストシステム４側から作成された情報が読み出されるまで（ホストシステム４側に作成された情報が転送されるまで）を、図４から図６を参照して説明する。
【００４５】
尚、本実施形態では、物理ゾーン毎の不良ブロック数と空きブロック数を取得するためのコマンドに対して、ＡＴＡ規格では動作が規定されていないコマンドコードを割り当てている。このようなＡＴＡ規格に規定されていないベンダーユニークな特殊コマンドは、ベンダーコマンドと呼ばれている。以下の説明で、物理ゾーン毎の不良ブロック数と空きブロック数を取得するためのベンダーコマンドを内部情報取得コマンドと言う。
【００４６】
図５を参照して、本発明の第１の実施形態における内部情報の作成及び作成された内部情報のホストシステム４側からの読み出し（ホストシステム４側への転送）について説明する。第１の実施形態では、まず、ホストシステム４により、メモリコントローラ３内のコマンドレジスタ（図７に示したＡＴＡレジスタ１５のコマンドレジスタ１５ａ）に内部情報取得コマンドのコマンドコードが書き込まれる。メモリコントローラ３は、この内部情報取得コマンドに応答して物理ゾーン毎の不良ブロック数と空きブロック数に関する情報の作成を開始する。この作成処理では、各物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報が順次読み出し、読み出したブロックステータスと論理アドレス情報に基づいて物理ゾーン毎の不良ブロック数と空きブロック数をカウントする。
【００４７】
最初に、ＰＢＡ＃０〜＃１０２３の物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を順次読み出し、ＰＺＮ＃０の物理ゾーンの不良ブロック数と空きブロック数をカウントする。ここで、不良ブロック数については、ブロックステータスとして不良ブロックであることを示す情報が書き込まれている物理ブロックの数がカウントされる。空きブロック数については、ブロックステータスとして不良ブロックであることを示す情報が書き込まれておらず、かつ、論理アドレス情報が書き込まれていない物理ブロックの数がカウントされる。ＰＺＮ＃０の物理ゾーンの不良ブロック数と空きブロック数のカウントが終了すると、ＰＺＮ＃０の物理ゾーンの不良ブロック数と空きブロック数がバッファ９に書き込まれる。
【００４８】
次に、ＰＢＡ＃１０２４〜＃２０４７の物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を順次読み出し、ＰＺＮ＃１の物理ゾーンの不良ブロック数と空きブロック数をカウントする。ＰＺＮ＃１の物理ゾーンの不良ブロック数と空きブロック数のカウントが終了すると、ＰＺＮ＃１の物理ゾーンの不良ブロック数と空きブロック数がバッファ９に書き込まれる。このようにして、ＰＺＮ＃０〜＃７の物理ゾーンの不良ブロック数と空きブロック数がカウントされ、この物理ゾーン毎の不良ブロック数と空きブロック数が内部情報としてバッファ９に書き込まれる。物理ゾーン毎の不良ブロック数と空きブロック数をカウントするときは、物理ゾーン毎の不良ブロック数と空きブロック数を書き込む領域をバッファ９上に割り当て、割り当てられた領域に初期値として「０」を書き込み、不良ブロック又は空きブロックが検出されたときにそれらの領域に書き込まれている値を１ずつ増加させていってもよい。例えば、ＰＺＮ＃１の物理ゾーンに含まれる不良ブロックが検出されたときに、ＰＺＮ＃１の物理ゾーンの不良ブロック数を書き込む領域に「３」が書き込まれていた場合は、その値を「４」に書き換える。
【００４９】
次に、バッファ９に書き込まれた内部情報（物理ゾーン毎の不良ブロック数と空きブロック数に関する情報）のホストシステム４側からの読み出し（ホストシステム４側への転送）について説明する。
【００５０】
バッファ９に全ての内部情報が書き込まれたときに、メモリコントローラ３はホストシステム４に対して、その旨を通知する。この通知には、メモリコントローラ３のレディ・ビジー（Ｒ／Ｂ）端子から出力される信号が用いられる。つまり、レディ・ビジー（Ｒ／Ｂ）端子から出力される信号のレベル（ハイレベル又はローレベル）で、レディ状態又はビジー状態を示している（以下、レディ状態を示す信号をレディ信号と言い、ビジー状態を示す信号をビジー信号と言う）。例えば、ハイレベルをレディ状態に、ローレベルをビジー状態に設定した場合、バッファ９に対する内部情報の書き込みが終了するまでは、レディ・ビジー（Ｒ／Ｂ）端子からローレベル（ビジー信号）を出力し、バッファ９に対する内部情報の書き込みが終了したときにレディ・ビジー（Ｒ／Ｂ）端子からハイレベル（レディ信号）を出力する。
【００５１】
尚、ホストシステム４に対して、バッファ９に全ての内部情報が書き込まれたことを通知する方法は、割り込み信号を出力したり、ステータスレジスタ１５ｅ内の特定のビットの論理値を書き換えたりする方法であってもよい。
【００５２】
メモリコントローラ３がホストシステム４に対して、バッファ９に全ての内部情報が書き込まれたことを通知すると、ホストシステム４はメモリコントローラ３のリードイネーブル（ＲＥ）端子にハイレベルとローレベルの信号を交互に入力する。メモリコントローラ３は、リードイネーブル（ＲＥ）端子に入力される信号のレベルが遷移するタイミング（ハイレベルからローレベル、又はローレベルからハイレベルに遷移するタイミング）でバッファ９に書き込まれた内部情報をデータレジスタ１５ｄに転送する。ここで、データレジスタ１５ｄのビット数が８ビットの場合は１バイト単位で、データレジスタ１５ｄのビット数が１６ビットの場合は２バイト単位で、バッファ９に書き込まれた内部情報が転送される。一方、ホストシステム４は、リードイネーブル（ＲＥ）端子にハイレベルとローレベルの信号を交互に入力すると共に、データレジスタ１５ｄに保持されている情報を読み出す。
【００５３】
このようにして、バッファ９に書き込まれた内部情報はデータレジスタ１５ｄに転送され、ホストシステム４によって読み出される。バッファ９に書き込まれた全ての内部情報がデータレジスタ１５ｄにされたときに、メモリコントローラ３はレディ・ビジー（Ｒ／Ｂ）端子からビジー信号を出力し、ホストシステム４は、リードイネーブル（ＲＥ）端子への信号の入力と、データレジスタ１５ｄに保持されている情報の読み出しを終了する。
【００５４】
次に、図６を参照して、本発明の第２の実施形態における内部情報の作成及び作成された内部情報のホストシステム４側からの読み出し（ホストシステム４側への転送）について説明する。第２の実施形態の場合には、ホストシステム４から内部情報取得コマンドが与えられたときに不良ブロック数と空きブロック数のカウントを開始するのではなく、アドレス変換テーブルと空きブロックテーブルを作成するときに、並行して不良ブロック数と空きブロック数のカウントを行い、物理ゾーン毎の不良ブロック数と空きブロック数をワークエリア８内に保持しておく。
【００５５】
その後、ホストシステム４から内部情報取得コマンドが与えられたときに、メモリコントローラ３は、ワークエリア８内に保持されている内部情報（物理ゾーン毎の不良ブロック数と空きブロック数に関する情報）をバッファ９に書き込み、レディ・ビジー（Ｒ／Ｂ）端子からレディ信号を出力する。この後、第１の実施形態の場合と同様に、バッファ９に書き込まれた内部情報はデータレジスタ１５ｄに転送され、ホストシステム４によって読み出される。尚、アドレス変換テーブルと空きブロックテーブルを作成するときに、並行して不良ブロック数と空きブロック数のカウントをするの、アドレス変換テーブルと空きブロックテーブルを作成するときに、各物理ブロックの冗長領域に書き込まれているブロックステータスと論理アドレス情報を読み出すからである。
【００５６】
ここで、アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を示したテーブルであり、空きブロックテーブルは空きブロックの物理ブロックアドレス（ＰＢＡ）を示したテーブルである。このアドレス変換テーブルと空きブロックテーブルは、論理ゾーン毎に作成することができる。従って、アクセスされなかった論理ゾーンについては、アドレス変換テーブルと空きブロックテーブルが作成されない場合がある。従って、そのような場合は、ホストシステム４から内部情報取得コマンドが与えられたときに、アドレス変換テーブルと空きブロックテーブルが作成されない論理ゾーンに対応する物理ゾーンについてだけ、不良ブロック数と空きブロック数のカウントを行なう。
【００５７】
この実施形態の場合、内部情報がワークエリア８内に保持されているため、第１の実施形態のようにホストシステム４から、内部情報取得コマンドを与えられたときに、不良ブロック数と空きブロック数をカウントする必要がなくなり、内部情報取得コマンドに対して速く応答できるという利点を有している。
【００５８】
ただし、この実施形態の場合、空きブロック数および不良ブロック数は随時変化していくため、変化する毎に内部情報を更新する必要がある。例えば、空きブロックにユーザデータが書き込まれた場合は、対応する物理ゾーンの空きブロック数をデクリメントし（１つ減らし）、逆にユーザデータが書き込まれていたブロックが消去され空きブロックになった場合は、対応する物理ゾーンの空きブロック数をインクリメントする（１つ増やす）。不良ブロックの場合も同様に、新たな不良ブロックが発生した場合、対応する物理ゾーンの不良ブロック数をインクリメントする（１つ増やす）。
【００５９】
以上のように、本発明では、ホストシステム４から与えられるコマンド応答して、メモリコントローラ３がバッファ９に内部情報を書き込み、全ての内部情報がバッファ９に書き込まれたときに、メモリコントローラ３はその旨をホストシステム４に通知する。ホストシステム４は、この通知に応答してリードイネーブル（ＲＥ）端子にハイレベルとローレベルの信号を交互に入力すると共に、データレジスタ１５ｄに保持されている情報を読み出す。リードイネーブル（ＲＥ）端子に入力される信号が遷移するタイミングでバッファ９に書き込まれた内部情報がデータレジスタ１５ｄに転送されるため、ホストシステム４は、フラッシュメモリ２に記憶されているデータを読み出すときと同様の動作で内部情報を取得することができる。
【００６０】
また、本実施形態では、内部情報を、物理ゾーン毎の不良ブロック数および空きブロック数としたが、内部情報はこれらの情報に限定されるものではない。従って、内部情報は、不良ブロックの物理ブロックアドレス（ＰＢＡ）等の情報であってもよい。
【００６１】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。
【図２】フラッシュメモリのブロックとページの関係を示す説明図である。
【図３】ゾーンに分割して管理したフラッシュメモリの記憶領域の一例である。
【図４】本発明の実施形態における内部情報の一例である。
【図５】本発明の第１の実施形態におけるメモリコントローラの動作を説明するための説明図である。
【図６】本発明の第２の実施形態におけるメモリコントローラの動作を説明するための説明図である。
【図７】ＡＴＡレジスタを概略的に示す図である。
【符号の説明】
【００６３】
１    フラッシュメモリシステム
２    フラッシュメモリ
３    メモリコントローラ
４    ホストシステム
６    マイクロプロセッサ
７    ホストインターフェースブロック
８    ワークエリア
９    バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  ＲＯＭ
１３  外部バス
１４  内部バス
１５  ＡＴＡレジスタ
１５ａ  コマンドレジスタ
１５ｂ  セクタカウントレジスタ
１５ｃ  ＬＢＡレジスタ
１５ｄ  データレジスタ
１５ｅ  ステータスレジスタ
２５  ユーザ領域
２６  冗長領域
【図１】
2008176606.tif 000003
【図２】
2008176606.tif 000004
【図３】
2008176606.tif 000005
【図４】
2008176606.tif 000006
【図５】
2008176606.tif 000007
【図６】
2008176606.tif 000008
【図７】
2008176606.tif 000009