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