"複数個の物理ページを有する少なくとも1チップのフラッシュメモリに対する、ホストシステムによるアクセスを制御するためのメモリコントローラにおいて、前記フラッシュメモリ内の各物理ページに、論理アドレス空間内のいずれか1個の論理ページを関連付ける関連付け手段と、1個の論理ページを構成する複数個の論理セクタにそれぞれ割り当てられ得る複数個のサブバッファ領域を有するバッファと、前記ホストシステムから与えられるユーザデータの書き込み先の論理セクタを特定する情報を含む書き込み要求を、前記ホストシステムから受信する書き込み要求受信手段と、前記書き込み要求が受信されたとき、前記書き込み要求により特定された書き込み先の論理セクタが含まれる第1の論理ページを識別し、そして、前記識別された第1の論理ページと、前記バッファ内に既存するユーザデータの書き込み先として識別されている第2の論理ページとが、一致するか否かを判断する判断手段と、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込み、その後に、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込み、他方、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致すると判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込むことを省略して、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、メモリ書き込み制御手段と、を備え、前記メモリ書き込み制御手段は、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断され且つ前記第1の論理ページに対応するユーザデータが前記フラッシュメモリ内に有る場合、前記第1の論理ページに含まれる複数個の論理セクタの中から、前記書き込み要求により特定された書き込み先の論理セクタに該当しないブランク論理セクタを検出し、そして、前記バッファ内に既存するユーザデータを前記フラッシュメモリに書き込んだ後に、前記フラッシュメモリ内に有る前記第1の論理ページに含まれる前記ブランク論理セクタに対応するユーザデータのみを、前記フラッシュメモリから前記バッファへ読み出し、その後に、前記ホストシステムから与えられるユーザデータを前記バッファに書き込む、メモリコントローラ。請求項1項記載のメモリコントローラにおいて、複数チップのフラッシュメモリに並列にアクセスすることができ、そして、前記バッファ内に既存するユーザデータを前記複数チップのフラッシュメモリへ分散して並列に書き込む、メモリコントローラ。請求項1又は2記載のメモリコントローラと、前記メモリコントローラにより制御される少なくとも1チップのフラッシュメモリとを備えたフラッシュメモリシステム。複数個の物理ページを有する少なくとも1チップのフラッシュメモリに対するホストシステムによるアクセスを、メモリコントローラにより制御するための方法であって、前記メモリコントローラが、1個の論理ページを構成する複数個の論理セクタにそれぞれ割り当てられ得る複数個のサブバッファ領域を有するバッファを備え、前記方法は、前記ホストシステムから与えられるユーザデータの書き込み先の論理セクタを特定する情報を含む書き込み要求を、前記ホストシステムから受信する書き込み要求受信ステップと、前記書き込み要求が受信されたとき、前記書き込み要求より特定された書き込み先の論理セクタが含まれる第1の論理ページを識別し、そして、前記識別された第1の論理ページと、前記バッファ内に既存するユーザデータの書き込み先として識別されている第2の論理ページとが、一致するか否かを判断する判断ステップと、前記判断ステップにより前記第1の論理ページと前記第2の論理ページとが一致しないと判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込み、その後に、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、第1の書き込みステップと、前記判断ステップにより前記第1の論理ページと前記第2の論理ページとが一致すると判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込むことを省略して、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、第2の書き込みステップと、を有し、前記第1の書き込みステップでは、前記判断ステップにより前記第1の論理ページと前記第2の論理ページとが一致しないと判断され且つ前記第1の論理ページに対応するユーザデータが前記フラッシュメモリ内に有る場合、前記第1の論理ページに含まれる複数個の論理セクタの中から、前記書き込み要求により特定された書き込み先の論理セクタに該当しないブランク論理セクタを検出し、そして、前記バッファ内に既存するユーザデータを前記フラッシュメモリに書き込んだ後に、前記フラッシュメモリ内に有る前記第1の論理ページに含まれる前記ブランク論理セクタに対応するユーザデータのみを、前記フラッシュメモリから前記バッファへ読み出し、その後に、前記ホストシステムから与えられるユーザデータを前記バッファに書き込む、制御方法。従来技術によれば、メモリコントローラは、ホストシステムから書き込み要求を受信した後、ホストシステムから与えられるユーザデータをバッファに保持し第1ステップ、その後、そのユーザデータをバッファからフラッシュメモリに転送する第2ステップ、という2ステップの動作を行う。従って、ホストシステムから複数セクタのデータ書き込みが要求された場合、上述した2ステップ動作が、連続的に複数回繰り返し行われることになる。しかし、このようにホストシステムからの書き込み要求に応答して、上記2ステップ動作を逐次実行するという方法は、必ずしも最適なやり方であるとはいえない。特に、ホストシステムからみた実質的な書き込み速度を高速化するためには、バッファからフラッシュメモリへの無駄なデータ転送を減らすことが望ましい。また、フラッシュメモリの寿命を延ばすためには、フラッシュメモリへの無駄な書き込み回数を減らすことが望ましい。従って、本発明の目的は、フラッシュメモリシステムにおいて、ホストシステムによるフラッシュメモリへのアクセスに支障を来たさずに、メモリコントローラ内のバッファからフラッシュメモリへのデータ転送動作及びフラッシュメモリへのデータ書込み動作の実行回数を減らすことにある。本発明の第1の側面に従えば、複数個の物理ページを有する少なくとも1チップのフラッシュメモリに対する、ホストシステムによるアクセスを制御するためのメモリコントローラは、前記フラッシュメモリ内の各物理ページに、論理アドレス空間内のいずれか1個の論理ページを関連付ける関連付け手段と、1個の論理ページを構成する複数個の論理セクタにそれぞれ割り当てられ得る複数個のサブバッファ領域を有するバッファと、前記ホストシステムから与えられるユーザデータの書き込み先の論理セクタを特定する情報を含む書き込み要求を、前記ホストシステムから受信する書き込み要求受信手段と、前記書き込み要求が受信されたとき、前記書き込み要求により特定された書き込み先の論理セクタが含まれる第1の論理ページを識別し、そして、前記識別された第1の論理ページと、前記バッファ内に既存するユーザデータの書き込み先として識別されている第2の論理ページとが、一致するか否かを判断する判断手段と、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込み、その後に、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込み、他方、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致すると判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込むことを省略して、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、メモリ書き込み制御手段とを備える。一つの実施形態に従えば、上記メモリ書き込み制御手段は、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断され且つ前記第1の論理ページに対応するユーザデータが前記フラッシュメモリ内に有る場合、前記バッファ内に既存するユーザデータを前記フラッシュメモリに書き込んだ後に、前記フラッシュメモリ内に有る前記第1の論理ページに対応するユーザデータを前記フラッシュメモリから前記バッファへ読み出し、その後に、前記ホストシステムから与えられるユーザデータを前記バッファに書き込む。この場合、上記メモリ書き込み制御手段は、次のように構成されてよい。すなわち、上記メモリ書き込み制御手段は、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断され且つ前記第1の論理ページに対応するユーザデータが前記フラッシュメモリ内に有る場合、前記バッファ内に既存するユーザデータを前記フラッシュメモリに書き込んだ後に、前記フラッシュメモリ内に有る前記第1の論理ページに含まれる全ての論理セクタに対応するユーザデータを前記フラッシュメモリから前記バッファへ読み出し、その後に、前記ホストシステムから与えられるユーザデータを前記バッファに書き込む。あるいは、上記メモリ書き込み制御手段は、次のように構成されてもよい。すなわち、上記メモリ書き込み制御手段は、前記判断手段により前記第1の論理ページと前記第2の論理ページとが一致しないと判断され且つ前記第1の論理ページに対応するユーザデータが前記フラッシュメモリ内に有る場合、前記第1の論理ページに含まれる複数個の論理セクタの中から、前記書き込み要求により特定された書き込み先の論理セクタに該当しないブランク論理セクタを検出し、そして、前記バッファ内に既存するユーザデータを前記フラッシュメモリに書き込んだ後に、前記フラッシュメモリ内に有る前記第1の論理ページに含まれる前記ブランク論理セクタに対応するユーザデータのみを、前記フラッシュメモリから前記バッファへ読み出し、その後に、前記ホストシステムから与えられるユーザデータを前記バッファに書き込む。他方、別の実施形態に従えば、上記メモリ書き込み制御手段は、前記バッファ内の各サブバッファ領域に書き込まれているユーザデータが有効であることを示す有効情報を記憶する。そして、上記メモリ書き込み制御手段は、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込むとき、前記フラッシュメモリ内のメモリセルアレイ内に有る前記第2の論理ページに対応するユーザデータを前記フラッシュメモリ内のレジスタへ読み出し、その後、前記バッファ内の各サブバッファ領域に書き込まれているユーザデータの中から前記有効情報により識別される有効なユーザデータのみを、前記フラッシュメモリ内のレジスタへ書き込み、その後に、前記レジスタ内のユーザデータを前記メモリセルアレイへ書き込む。本発明に従うメモリコントローラは、前記複数チップのフラッシュメモリに並列にアクセスすることができ、そして、前記バッファ内に既存するユーザデータを前記複数チップのフラッシュメモリへ分散して並列に書き込むように構成されてよい。本発明の別の側面に従えば、上述したメモリコントローラと、それにより制御される少なくとも1チップのフラッシュメモリとを備えたフラッシュメモリシステムが、提供される。本発明のまた別の観点に従えば、複数個の物理ページを有する少なくとも1チップのフラッシュメモリに対するホストシステムによるアクセスを、メモリコントローラにより制御するための方法が提供される。この方法を実行するメモリコントローラは、1個の論理ページを構成する複数個の論理セクタにそれぞれ割り当てられ得る複数個のサブバッファ領域を有するバッファを備える。そして、この方法は、前記書き込み要求が受信されたとき、前記書き込み要求より特定された書き込み先の論理セクタが含まれる第1の論理ページを識別し、そして、前記識別された第1の論理ページと、前記バッファ内に既存するユーザデータの書き込み先として識別されている第2の論理ページとが、一致するか否かを判断する判断ステップと、前記判断ステップにより前記第1の論理ページと前記第2の論理ページとが一致しないと判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込み、その後に、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、第1の書き込みステップと、前記判断ステップにより前記第1の論理ページと前記第2の論理ページとが一致すると判断された場合には、前記バッファ内に既存するユーザデータを前記フラッシュメモリへ書き込むことを省略して、前記ホストシステムから与えられるユーザデータを、その書き込み先の論理セクタに割り当てられた前記バッファ内のサブバッファ領域に書き込む、第2の書き込みステップとを有する。本発明によれば、ホストシステムによるフラッシュメモリへのアクセスに支障を来たさずに、メモリコントローラ内のバッファからフラッシュメモリへのデータ転送動作及びフラッシュメモリへのデータ書込み動作の実行回数が減少する。以下、図面を参照して、本発明の実施形態について説明する。図1は、本発明の実施形態にかかるフラッシュメモリシステムの構成を示す。図1に示されるように、フラッシュメモリシステム100は、ホストシステム200からアクセス可能に接続される。フラッシュメモリシステム100は、メモリコントローラ102と、少なくとも1チップのフラッシュメモリ104とを備える図1は1チップの場合を例示するが、後に、複数チップの場合についても説明する。。メモリコントローラ102は、ホストシステム200からフラッシュメモリ104へのアクセスを制御する。フラッシュメモリ104は、大容量で不揮発性のメモリセルアレイ134と、レジスタ134とを有する。レジスタ134は、メモリコントローラ102とメモリセルアレイ134との間で入出力されるデータを一時的に記憶するためのものである。この実施形態では、メモリセルアレイ134はNAND型である。メモリセルアレイ134は、多数の物理ページを有する図2参照。ここで、NAND型のメモリセルアレイ134においては、各物理ページが、データの書き込み/読み出しの単位データの書き込み読み出しの時に一度に入出力され得る記憶領域である。この実施形態では、レジスタ132の記憶容量は、上述した書き込み読み出しの単位である1個の物理ページ分の記憶容量に等しく設定されている。図2は、本実施形態において、ホストシステム200が認識する論理アドレス空間とメモリセルアレイ134内の物理アドレス空間との間の対応関係を例示している。図2の右側の部分に、メモリセルアレイ134内の多数の物理ページ1個の物理ブロックの部分のみを抜粋が例示されている。この右側部分に示されるように、各物理ページは、複数個典型的には2のべき乗数に相当する個数の物理セクタを有し、本実施形態では例えば8個の物理セクタを有する。物理セクタは1セクタ512バイトのデータが記憶される領域であり、各物理セクタには1個の付加情報領域が割り当てられている。また、各物理ページは、1個のページ情報領域を有する。各物理ページに対して、論理アドレス空間内のいずれかの1個の論理ページ図2の左側に示す論理アドレス空間中で、0、1、2、...という各論理ページ番号LPNが付与された記憶領域が、メモリコントローラ102によって関連づけられ得る。このように各物理ページに1個の論理ページが関係付けられる場合、後に説明するように1個の論理ページに対して複数個の物理ページが関連付けられてもよいが、本実施形態では、1個の論理ページに対して1個の物理ページが関連付けられるつまり、論理ページと物理ページが1対1の関係で関連付けられる。各物理ページ内の各物理セクタには、その物理セクタに関連付けられた論理ページ内の各論理セクタのユーザデータが格納され、そのユーザデータの誤り訂正符号ECCは、その物理セクタに割り当てられている付加情報領域に格納される。また、各物理ページのページ情報領域には、その物理ページに関連付けられた論理ページを特定する情報例えば、論理ページ番号LPN及びその他の管理制御用の情報が格納される。再び図1を参照して、フラッシュメモリ104内のレジスタ132は、上述した1個の物理ページの構成に適合した構成を有する。すなわち、レジスタ132は、1個の物理ページ内の8個の物理セクタと8個の付加情報領域にそれぞれ格納されるユーザデータとECCをそれぞれ保持するための8個のセクタ領域SEC1~SEC8と8個のECC領域EC1~EC8のセットを有する。すなわち、レジスタ132の第1セクタ領域SEC1と第1ECC領域EC1は、物理ページ内の第1の物理セクタと第1の付加情報領域に格納されるユーザデータとECCをそれぞれ保持するためのものであり、第2セクタ領域SEC2と第2ECC領域EC2は、物理ページ内の第2の物理セクタと第2の付加情報領域に格納されるユーザデータとECCコードをそれぞれ保持するためのものであり、以下のセクタ領域SEC3~SEC8とECC領域EC3~EC8についても同様である。レジスタ132は、さらに、物理ページ内のページ情報領域に格納される情報を保持するための管理情報領域MNGを有する。さて、上述したように、NAND型のフラッシュメモリ104では、データの書き込みと読み出しは物理ページを単位として行われる。フラッシュメモリ104にデータが書き込まれる場合には、まず、メモリコントローラ102からフラッシュメモリ104内のレジスタ132に、書き込み先の1個の物理ページ分のデータ8個の物理セクタ分のデータ、8個の付加情報領域分のデータ及び1個のページ情報領域分のデータが書き込まれ、その後に、レジスタ132からメモリセルアレイ134内の書き込み先の物理ページにそのデータが書き込まれる。逆に、フラッシュメモリ104からデータが読み出される場合には、まず、メモリセル132内の読み出し元の物理ページからレジスタ132へその1個の物理ページ分のデータ8個の物理セクタ分のデータ、8個の付加情報領域分のデータ及び1個のページ情報領域分のデータが読み出され、その後に、レジスタ132からメモリコントローラ102へそのデータが読み出される。図1に示すように、メモリコントローラ102内には、上記のようにしてフラッシュメモリ104へ/からデータを書き込み/読み出す際に、そのデータを一時的に保持するためのバッファ120が設けられる。このようにバッファ120にデータを一時的に保持することで、ホストシステム200とフラッシュメモリ104の間のデータ転送速度の違いを補償することもできる。メモリコントローラ102内のバッファ120は、1個の論理ページ分のユーザデータを保持できる。1個の論理ページは、複数個典型的には2のべき乗数に相当する個数の論理セクタを有し、本実施形態では例えば8個の論理セクタを有する。そのため、バッファ120は、1個の論理ページを構成する8個の論理セクタにそれぞれ割り当てられ得る8個のサブバッファ領域SBF1~SBF8を有する。上述したように、本実施形態では、1個の論理ページ8個の論理セクタをもつに対して1個の物理ページ8個の物理セクタをもつが関連づけられる。そのため、図1に示すように、バッファ120内の8個のサブバッファ領域SBF1~SBF8と、フラッシュメモリ104内のレジスタ132内の8個のセクタ領域SEC1~SEC8とが、1対1に対応する。すなわち、バッファ120内の第1サブバッファ領域SBF1とレジスタ132内の第1セクタ領域SEC1とが対応関係にあり、両領域SBF1とSEC1間でユーザデータ1個の論理/物理セクタ分のユーザデータが授受される。また、バッファ120内の第2サブバッファ領域SBF2とレジスタ132内の第2セクタ領域SEC2とが対応関係にあり、両領域SBF2とSEC2間でユーザデータ1個の論理/物理セクタ分のユーザデータが授受される。他のサブバッファ領域SBF3~SBF8とセクタ領域SEC3~SEC8との間の対応関係についても同様である。メモリコントローラ102は、ユーザデータに基づいてECCを生成するECCブロック122を有する。ECCブロック122には、バッファ120内のユーザデータがフラッシュメモリ104のレジスタ132へ書き込まれる際に、バッファ120内の8個のサブバッファ領域SBF1~SBF8からユーザデータが入力される。ECCブロック122は、8個のサブバッファ領域SBF1~SBF8から入力されるユーザデータに基づいて、それら8個のサブバッファ領域SBF1~SBF8のユーザデータのための8個のECCを生成する。そして、生成された上記8個のECCは、レジスタ132内の8個のECC領域EC1~EC8に書き込まれる。尚、レジスタ132に対するデータ転送では、第1サブバッファ領域SBF1に保持されているユーザデータが第1セクタ領域SEC1に転送された後に、第1サブバッファ領域SBF1に保持されているユーザデータに基づいて生成されるECCが第1ECC領域EC1に転送される。続いて、第2サブバッファ領域SBF2に保持されているユーザデータが第2セクタ領域SEC2に転送された後に、第2サブバッファ領域SBF2に保持されているユーザデータに基づいて生成されるECCが第2ECC領域EC2に転送される。以下同様に、ユーザデータ、そのユーザデータに基づいて生成されるECCという順番でレジスタ132に対するデータ転送が行われる。また、レジスタ132からのデータ読み出しでは、8個のセクタ領域SEC1~SEC8から読み出されたユーザデータは、対応関係にある8個のサブバッファ領域SBF1~SBF8にそれぞれ保持される。この際、ECCブロック122には、レジスタ132内の8個のセクタ領域SEC1~SEC8から読み出されたユーザデータと8個のECC領域EC1~EC8から読み出されたECCが入力される。ECCブロック122は、8個のセクタ領域SEC1~SEC8から読み出されたユーザデータと、8個のECC領域EC1~EC8から読み出されたECCを用いて、8個のサブバッファ領域SBF1~SBF8に保持されているユーザデータのエラーを検出し、そのエラーを訂正する。ところで、本発明は、メモリコントローラ102がホストシステムから書き込み要求書き込み先のアドレスを特定する情報と、フラッシュメモリ104への書き込みを指示するコマンドを含む書き込み要求を受信した場合に、どのようにメモリコントローラ102内のバッファ120を使用するかという点、及び、どのようにバッファ120とフラッシュメモリ104との間でデータを読み書きするかという点に関連する。そこで、以下では、これらの点に関わるメモリコントローラ102の構成と機能に焦点を絞って説明する。図1に示すように、メモリコントローラ102は、上述したバッファ120及びECCブロック122の他に、さらに、マイクロプロセッサ112、コマンドレジスタ114、新LBAレジスタ116、セクタカウントレジスタ118、及び前LBAレジスタ119を備える。マイクロプロセッサ122は、メモリコントローラ102の全体の機能を実行し制御する。マイクロプロセッサ122が行う処理と制御のうち、本発明に関連性の深いものを例示すると、次のとおりである。マイクロプロセッサ112は、ホストシステム200から書き込みコマンド、読み出しコマンド或いはその他のコマンドを受信する。これらのコマンドは、ホストシステム200によってメモリコントローラ102内のコマンドレジスタ114に書き込まれる。コマンドレジスタ114に書き込みコマンドが書き込まれる場合には、更に、その書き込み先を示す情報が、新LBAレジスタ116とセクタカウントレジスタ118に書き込まれる。続いて、新LBAレジスタ116とセクタカウントレジスタ118に書き込まれた情報に基づいて書き込み先が特定されたユーザデータがホストシステム200からフラッシュメモリに与えられる。そして、この書き込み先が特定されたユーザデータ以下、受信ユーザデータというはバッファ120に保持される。書き込みコマンドを受信した場合、マイクロプロセッサ112は、さらに、後に詳述するようなやり方で、バッファ120からフラッシュメモリ104へのデータの書き込み、及び、フラッシュメモリ104からバッファ120へのデータの読み出しを制御する。さらに、マイクロプロセッサ122は、論理アドレス空間上の領域例えば論理ブロック及び論理ページと、物理アドレス空間上の領域例えば、物理ブロック及び物理ページとの間の関連付け対応関係の設定も行なう。論理アドレス空間上の領域は、LBALogicalBlockAddressによって管理されている。LBAは、論理アドレス空間上のセクタ単位512バイト単位の領域以下、論理セクタというに付けた番号であり、ホストシステム200から与えられるユーザデータの書き込み先は、このLBAで特定される。新LBAレジスタ116には、ホストシステム200から与えられるユーザデータの先頭データに対応する論理セクタのLBAが書き込まれる。セクタカウントレジスタ118には、書き込むユーザデータのセクタ数が書き込まれる。つまり、新LBAレジスタ116に書き込まれたLBAに対応する論理セクタ以降のLBAが連続する1個又は複数個の論理セクタセクタカウントレジスタ118に書き込まれた数値に対応する個数の論理セクタがホストシステム200から与えられるユーザデータの書き込み先になる。マイクロプロセッサ112は、コマンドレジスタ114に書き込みコマンドが書き込まれた際に、新LBAレジスタ116とセクタカウントレジスタ118に書き込まれた情報と前LBAレジスタ119に書き込まれている情報に基づいて、バッファ120内に既に存在するユーザデータ以下、既存ユーザデータというをフラッシュメモリ104へ書き込む必要性が有るか否かを判断する。そして、マイクロプロセッサ112は、その必要性があると判断すれば、バッファ120内に既存する既存ユーザデータをフラッシュメモリ104へ書き込み、その後に、受信ユーザデータをバッファ120に書き込む。他方、その必要性がないと判断した場合には、マイクロプロセッサ112は、バッファ120内に既存する既存ユーザデータをフラッシュメモリ104へ書き込むことを省略して、受信ユーザデータをバッファ120に書き込む。この制御については、後に詳述する。さて、前LBAレジスタ119は、上述したバッファ120内に既存する既存ユーザデータの書き込み先のLBAを記憶するために用いられる。すなわち、新しい書き込みコマンドが受信されるとコマンドレジスタ114に書き込みコマンドが書き込まれると、上述したように、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込む必要性が有るか否かを判断し、既存ユーザデータをフラッシュメモリ104へ書き込む必要性が無いと判断した場合には、その判断の後、既存ユーザデータをフラッシュメモリ104へ書き込む必要性が有ると判断した場合には、既存ユーザデータをフラッシュメモリ104へ書き込んだ後、受信ユーザデータがバッファ120に書き込まれる。受信ユーザデータがバッファ120に書き込まれると、新LBAレジスタ116に書き込まれた上記LBAが、前LBAレジスタ119にコピーされる。従って、前LBAレジスタ119に格納されているLBAは、バッファ120に最近過去に書き込まれた既存ユーザデータの書き込み先の先頭論理セクタを指し示すことになる。尚、書き込み先の論理ページが2個の論理ページに跨っているときには、論理ページ毎に分割した2つの書き込み要求として処理される。マイクロプロセッサ112は、コマンドレジスタ114に書き込みコマンドが書き込まれた際に、新LBAレジスタ116とセクタカウントレジスタ118に書き込まれた情報に基づいて、受信ユーザデータの書き込み先の論理セクタと、その論理セクタが含まれる論理ページを特定する。更に、マイクロプロセッサ112は、前LBAレジスタ119に書き込まれているLBAに基づいて、バッファ120内の既存ユーザデータの書き込み先の論理ページを特定する。そして、プロセッサ112は、特定された両方の論理ページを比較する。その比較の結果、両論理ページが一致してなければ、プロセッサ112は、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性が有ると判断する。この場合、プロセッサ112は、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込み、その後に、受信ユーザデータをバッファ120に書き込む。他方、上記比較の結果、両論理ページが一致していれば、プロセッサ112は、バッファ120内の既存ユーザデータをフラッシュメモリ104に書き込む必要性はないと判断する何故なら、既存ユーザデータは受信ユーザデータによって書き換えられるべきものであるからである。この場合、プロセッサ112は、上述したように、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込まず、受信ユーザデータをバッファ120に書き込む。このように、前に受信した書き込み要求コマンド及びアドレス情報を含むにより特定された書き込み先の論理ページと、新しく受信した書き込み要求コマンド及びアドレス情報を含むにより特定された書き込み先の論理ページとが一致した場合には、バッファ120内の既存ユーザデータのフラッシュメモリ104への書き込みが省略される。この場合とは、換言すれば、同一の論理ページへのデータの書き込みが連続してホストシステム200から要求された場合である。この場合、バッファ120内の既存ユーザデータをフラッシュメモリ104に保存せずに、バッファ120上で受信ユーザデータに書き換えても、ホストシステム200にとり何の不都合もない。他方、前に受信した書き込み要求コマンド及びアドレス情報を含むにより特定された書き込み先の論理ページと、新しく受信した書き込み要求コマンド及びアドレス情報を含むにより特定された書き込み先の論理ページとが一致しない場合、すなわち、前とは別の論理ページへの書き込みが要求された場合には、バッファ120内の既存ユーザデータは、有効なデータとしてフラッシュメモリ104に保存しておく必要があるため、この場合には、バッファ120内の既存ユーザデータをフラッシュメモリ104に保存する。ところで、前LBAレジスタ119に書き込まれたLBAは、上述したように、バッファ120内の既存ユーザデータの書き込み先の論理ページを識別するために用いられる。ここで、論理ページを識別するときには、LBA中の論理ページを特定するビット列部分、例えば、図3,4,5に例示するような、論理ブロック番号LBNと論理ページ番号LPNを特定する上位所定数ビット列部分を参照する。従って、論理ページを識別するときには、必ずしもLBAを用いなくてもよく、変形例として、前LBAレジスタ119に代えて、LBA中の論理ページを特定するビット列部分だけを登録するレジスタが用いられてもよい。以下では、新しい書き込み要求を受信したときにメモリコントローラ102のマイクロプロセッサ112が行なう制御について、より詳細に説明する。この説明に当たり、まず、図2を参照して、本実施形態における、ホストシステム200が認識する論理アドレス空間とメモリセルアレイ134内の物理アドレス空間との間の対応関係を説明する。図2の左側には論理アドレス空間が示されている。論理アドレス空間には、多数の論理セクタが存在し、それらの論理セクタは、各論理セクタに付与されたLBAによって識別される。そして、複数個本実施形態では8個の論理セクタが集合して、1個の論理ページを構成する。さらに、複数個本実施形態では64個の論理ページが集合して、1個の論理ブロックを構成する。こうして複数個の論理ブロックが構成され、それらの論理ブロックは、各論理ブロックに付与されたLBN論理ブロック番号によって識別される。また、各論理ブロック内では、複数個例えば64個の論理ページが、各論理ページに付与された論理ページ番号LPNによって識別される。図2の右側には、メモリセルアレイ134内の物理アドレス空間が1個の物理ブロックの部分のみ抜粋して示されている。物理アドレス空間では、複数個本実施形態では64個の物理ページが集合して、1個の物理ブロックを構成する。図2では図示省略されているが、メモリセルアレイ134内には複数個論理ブロックの総数より多いの物理ブロックが存在し、それらの物理ブロックは、各物理ブックに付与された物理ブロックアドレスPBAにより識別される。そして、各物理ブロック内では、複数個例えば64個の物理ページが、各物理ページに付与された物理ページ番号PPNによって識別される。各物理ページは、既に説明したように、複数個本実施形態では8個の物理セクタで構成され、更に、物理セクタに関連付けられた8個の付加情報領域と1個のページ情報領域とを有する。図2に示されるように、メモリセル134内の各物理ブロック例えば、PBA0の論理ブロックに対して、いずれか1個の論理ブロック例えば、LBN0の論理ブロックが、メモリコントローラ102のマイクロプロセッサ112によって関係付けられる。そして、各物理ブロック64内の各物理ページ例えば、PPN7~PPN12の各物理ページに対して、その物理ブロックに関係付けられた論理ブロック中いずれか1個の論理ページ例えば、LPN0~LPN5の各論理ページが、マイクロプロセッサ112によって関係付けられる。各物理ページのページ情報領域には、その物理ページに関連付けられた論理ページを示す情報例えば、LPNが記述される。ところで、メモリセル134内には、まだどの論理ページとも関連付けられていない物理ページも存在し得る。ホストシステム200からの書き込み要求に応答して、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性が有るか否かを判断し、その結果、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性が有ると判断した場合に、既存ユーザデータの書き込み先として識別されている論理ページに対して1個の物理ページどの論理ページとも関連付けられていない物理ページが関連付けられ、その物理ページに対するデータ書き込みが行われる。例えば、図2に示された例は、次のようにして物理ページと論理ページの関連付けが行われた場合の例である。すなわち、当初、PBA0の物理ブロック内の全ての物理ページが空きである状態で、バッファ120内の既存ユーザデータの書き込み先として識別されている論理ページがLPN0の論理ページで、ホストシステム200からの書き込み要求により特定された書き込み先の論理ページがLPN0の論理ページである場合、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性は無いと判断される。一方、ホストシステム200からの書き込み要求により特定された書き込み先の論理ページがLPN1の論理ページである場合、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性が有ると判断され、バッファ120内の既存ユーザデータの書き込み先として識別されているLPN0の論理ページがPPN0の物理ページに関連付けられ、PPN0の物理ページにバッファ120内の既存ユーザデータが書き込まれる。このように、バッファ120内の既存ユーザデータをフラッシュメモリに書き込む必要性が有ると判断されたときに、バッファ120内の既存ユーザデータがフラッシュメモリに書き込まれる。論理ページに関連付けられた物理ページのページ情報領域には、その物理ページ関連付けられている論理ページのLPNを示す情報が書き込まれる。図2に示された例では、PPN0の物理ページのページ情報領域にLPN0を示す情報が書き込まれ、PPN1の物理ページのページ情報領域にLPN1を示す情報が書き込まれ、PPN2の物理ページのページ情報領域にLPN2を示す情報が書き込まれている。従って、LPN0の論理ページがPPN0の物理ページに関連付けられ、LPN1の論理ページがPPN1の物理ページに関連付けられ、LPN2の論理ページがPPN2の物理ページに関連付けられている。図2の例では、PPN13以降のPPNをもつ物理ページは、まだ空きであり、それらには、まだいずれの論理ページも関連付けられていないが、将来、そこにもデータが書き込まれて、いずれかの論理ページに関連付けられることになる。図3は、本実施形態において、ホストシステム200から書き込み要求を受信したときに、メモリコントローラ102のマイクプロセッサ112が行う、バッファ120への受信ユーザデータの書き込みのやり方と、バッファ120内の既存ユーザデータのフラッシュメモリ104への書き込みのやり方を示す。図3に示すとともに、既に説明したように、バッファ120内には、1個の論理ページ内の複数個例えば8個の論理セクタにそれぞれ割り当てられた複数個例えば8個のサブバッファ領域SBF1~SBF8が存在する。ホストシステム200から新しい書き要求が受信されると、その受信された書き込み要求によって特定される受信ユーザデータの書き込み先の論理ページと、バッファ120内の既存ユーザデータの書き込み先の論理ページとが一致するかどうかが判断される。ここで、前者の論理ページは、図1に示された新LBAレジスタ116内のLBAに基づいて特定することができ、後者の論理ページは、図1に示された前LBAレジスタ119内のLBAに基づいて特定することができる。すなわち、いずれのLBAについても、図3に示すように、そのLBA内のLBNとLPNに相当する上位所定数ビット列から、書き込み先の論理ページが特定される。このようにして特定された上記前者と後者の論理ページが異なっている場合には、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込む必要があると判断され、他方、上記両論理ページが一致している場合には、その必要がないと判断される。上記判断結果が、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込む必要がないとの判断であった場合には、バッファ120内の既存ユーザデータをフラッシュメモリ104へ書き込むことなしに、上記書き込み要求によって書き込み先の論理ページが特定された受信ユーザデータがバッファ120に書き込まれる。この受信ユーザデータをバッファ120に書き込む動作は次のとおりである。すなわち、書き込み要求に含まれるつまり、図1に示された新LBAレジスタ116とセクタカウントレジスタ118に書き込まれたLBAとセクタカウンタから、受信ユーザデータの書き込み先範囲が、書き込み先の論理ページ内のどの論理セクタであるかが、特定される。すなわち、上記LBAとセクタカウントから、書き込み先範囲に相当する1個以上の論理セクタのLBAが求められ、そして、図3に示すように、求まった各LBA中の下位所定ビット列本実施形態では下位3ビット列により、書き込み先範囲内の各論理セクタの論理セクタ番号LSNが特定される。続いて、バッファ120内の、上記特定された書き込み先範囲に相当する1個以上の論理セクタそのLSNに割り当てられたサブバッファ領域に、受信ユーザデータが書き込まれる。ここで、各論理セクタと各サブバッファ領域の対応関係は、予め設定されている。例えば、図3の例において、011~111が書き込み先範囲の論理セクタのLSNであったならば、それらのLSNに割り当てられたサブバッファ領域SBF4~SBF8に書き込みが行われことになる。さて、上述した判断結果が、バッファ120内のユーザデータをフラッシュメモリ104へ書き込む必要があるとの判断であった場合には、上記受信ユーザデータがバッファ120に書き込まれる前に、バッファ120内の既存ユーザデータがフラッシュメモリ104へ書き込まれる。バッファ120内の既存ユーザデータがフラッシュメモリ104へ書き込む動作は、次のとおりである。すなわち、図3に示すように、バッファ120内のサブバッファ領域SBF1~SBF8に保持されている8個の論理セクタ分のユーザデータが読み出されてフラッシュメモリ内のレジスタ134に転送されると共に、ECCブロック122に入力される。すると、ECCブロック122から、上記8個の論理セクタ分のユーザデータのための8個のECCが生成される。ECCブロック122で生成されたECCもフラッシュメモリ内のレジスタ134に転送される。尚、各論理セクタのLSNとバッファ120内のサブバッファ領域SBF1~SBF8との対応関係、及びサブバッファ領域SBF1~SBF8とレジスタ134内のセクタ領域SEC1~SEC8との対応関係は予め設定されている。図3に示した例では、LSN0の論理セクタに対応するデータはサブバッファ領域SBF1に保持され、サブバッファ領域SBF1に保持されたLSN0の論理セクタに対応するデータは、セクタ領域SEC1に書き込まれ、そのLSN0の論理セクタに対応するデータのECCはECC領域EC1に書き込まれる。LSN1の論理セクタに対応するデータはサブバッファ領域SBF2に保持され、サブバッファ領域SBF2に保持されたLSN1の論理セクタに対応するデータは、セクタ領域SEC2に書き込まれ、そのLSN1の論理セクタに対応するデータのECCはECC領域EC2に書き込まれる。以下同様に対応関係が設定されており、LSN7の論理セクタに対応するデータはサブバッファ領域SBF8に保持され、サブバッファ領域SBF8に保持されたLSN7の論理セクタに対応するデータは、セクタ領域SEC8に書き込まれ、そのLSN7の論理セクタに対応するデータのECCはECC領域EC8に書き込まれる。また、バッファ120内のユーザデータの書き込み先である論理ページに関連付けられるべきフラッシュメモリ104内の物理ページつまり、バッファ120内のユーザデータの書き込み先に該当する物理ページが決定される。また、図示省略してあるが、その書き込み先の物理ページのページ情報領域に書き込まれるべき、上記書き込み先論理ページのLPNを示す情報などが生成され、フラッシュメモリ内のレジスタ134に転送される。そして、上述したサブバッファ領域SBF1~SBF8から読み出された8個の論理セクタ分のユーザデータと、ECCブロック122から出力された8個のECCと、上記生成された管理制御用データは、これらのデータをフラッシュメモリ104内のレジスタ134に書き込むことを指示する命令上述の書き込み先の物理ページを指示する情報も含むがメモリコントローラ102からフラッシュメモリ104に与えられた後にフラッシュメモリ104に転送される。これにより、上述したサブバッファ領域SBF1~SBF8から読み出された8個の論理セクタ分のユーザデータと、ECCブロック122から出力された8個のECCと、上記生成されたページ情報領域用の情報とが、フラッシュメモリ104内のレジスタ132内の対応するセクタ領域SEC1~SEC8とECC領域EC1~EC8と管理情報領域MNGにそれぞれ書き込まれる。その後、図示省略してあるが、レジスタ134に書き込まれたデータを、上述の書き込み先の物理ページへ書き込むことを命じる書き込み命令が、メモリコントローラ102からフラッシュメモリ104に与えられ、レジスタ132内の全てのデータが、メモリセル134内の上記書き込み先の物理ページに書き込まれる。上記のようにして、バッファ120内の既存ユーザデータがフラッシュメモリ104のレジスタ132へ書き込まれた後に、上記新しく受信された書き込み要求により書き込み先が特定される受信ユーザデータが、上述したやり方で、バッファ120内の書き込み先範囲の論理セクタに割り当てられたサブバッファ領域SBF1~SBF8に、書き込まれる。ところで、上述した本実施形態では、図1に示すように、1チップのフラッシュメモリ104が、1個のメモリコントローラ102により制御される。しかし、変形例として、複数チップ典型的には、2のべき乗数に相当するチップ数のフラッシュメモリが、1個のメモリコントローラ102により制御されてもよい。図4と図5は、そのような場合を示している。図4は、1個のメモリコントローラ102が2チップのフラッシュメモリを制御するようになった変形例における、メモリコントローラ102内のバッファの構造とそのバッファへのデータの書き込み方の一例を示す。図4に示すように、メモリコントローラ102内には、2チップのフラッシュメモリ図示省略にそれぞれ割り当てられた2つのバッファ1200、1201が存在する。バッファ1200、1201の各々は、それに割り当てられたフラッシュメモリチップに付与されたチップ番号CPNによって識別される。この場合、CPNは、CPN0とCPN1の2つであり、図4に示すように、LSNの下位1ビット、つまりLBAの下位1ビットによって特定され得る。各チップのフラッシュメモリの構成は、図1及び図2に示された前述の実施形態のフラッシュメモリ104の構成と同様である。バッファ1200、1201の各々の構成は、図1と図3に示された前述の実施形態のバッファ120の構成と同様である。従って、バッファ1200、1201の各々は、例えば8個のサブバッファ領域SBF1~SBF8を有し、各バッファの記憶容量は、1チップのフラッシュメモリ内の1個の物理ページ分のユーザデータを記憶できる容量本実施形態では、8セクタ分のユーザデータを記憶できる容量である。他方、この変形例で使用される論理アドレス空間では、1個の論理ページを構成する論理セクタの個数が例えば16個であり、これは2個の物理ページ内の合計の物理セクタ数に相当する。それら16個の論理セクタのそれぞれのLSNは、図4に示すように、LBA中の下位4ビット列により特定される。2つのバッファ1200、1201が連合して、1個の論理ページ分のユーザデータを記憶することができる。バッファ1200内の8個のサブバッファ領域SBF1~SBF8と、バッファ1201内の8個のサブバッファ領域SBF1~SBF8が、1個の論理ページ内の16個の論理セクタにそれぞれ割り当てられる。望ましくは、2チップのフラッシュメモリの双方に対して、メモリコントローラ102が並行にアクセスできるようになっている。すなわち、望ましくは、2チップのフラッシュメモリの双方へ/から同時に、データを書き込み/読み出すことができるようになっている。そして、望ましくは、一方のバッファ1200内のサブバッファ領域SBF1~SBF8と、他方のバッファ1201内のサブバッファ領域SBF1~SBF8とが、1個の論理ページ内のLSNの連続する16個の論理セクタに対して、交互に割り当てられる。例えば、図4に例示するように、LSNが0000の1番目の論理セクタに、第1のバッファ1200内の第1サブバッファ領域SBF1が割り当てられ、LSNが0001の2番目の論理セクタに、第2のバッファ1201内の第1サブバッファ領域SBF1が割り当てられ、LSNが0010の2番目の論理セクタに、第1のバッファ1200内の第2サブバッファ領域SBF2が割り当てられ、LSNが0011の4番目の論理セクタに、第2のバッファ1201内の第2サブバッファ領域SBF2が割り当てられ、以下同様である。このような交互の割り当てが設定されていると、2つのバッファ1200、1201内のLSNの連続する複数個の論理セクタ分のユーザデータを2チップのフラッシュメモリへ書き込むとき、一方のバッファ1200から一方のチップのフラッシュメモリへの書き込みと、他方のバッファ1201から他方のチップのフラッシュメモリへの書き込みとが、同時並行的に行えるので、高速書き込みが可能である。また、LSNの連続する複数個の論理セクタ分のユーザデータを2チップのフラッシュメモリから読み出す時も、同様に、高速読み出しが可能である。但し、本発明を実施するときに、1個の論理ページ内のLSNの連続する16個の論理セクタを、必ずしも2つのバッファ1200、1201に交互に割り当てなくてもよく、例えば、CPNをLSNの上位1ビットで特定するようにしてもよい。図4に示したバッファ構成の下で、メモリコントローラ102のマイクロプロセッサ112は、2チップのフラッシュメモリの各々から1個ずつ選んだ2個の物理ぺージを組み合わせて、1個の仮想物理ページを定義する。このようにして、2チップのフラッシュメモリ内に、複数個の仮想物理ページが定義される。マイクロプロセッサ112は、ホストシステム200から書き込み要求を受信すると、前述の実施形態の場合と同様に、新LBAレジスタ116に書き込まれたLBA中のLBNとLPNの部分と、前LBAレジスタ119に書き込まれたLBA中のLBNとLPNの部分とから、2つのバッファ1200、1201内の既存ユーザデータを2チップのフラッシュメモリへ書き込む必要があるかどうかを判断する。その結果、書き込む必要があると判断すれば、マイクロプロセッサ112は、上記既存ユーザデータの書き込み先に該当する仮想物理ページを決定し、そして、上記既存ユーザデータが上記仮想物理ページに書き込まれるように、第1のバッファ1200内のユーザデータを第1のチップCPN0のフラッシュメモリへ書き込み、第2のバッファ1201内のユーザデータを第2のチップCPN1のフラッシュメモリへ書き込む。その後に、受信した書き要求により書き込み先が特定された受信ユーザデータを、2つのバッファ1200、1201内の、書き込み先の論理セクタに割り当てられたサブバッファ領域に書き込む。他方、上記判断の結果、書き込む必要がないと判断すれば、マイクロプロセッサ112は、2個のバッファ1200、1201内の既存ユーザデータを2チップのフラッシュメモリへ書き込む動作を省略し、そして、受信した書き込み要求により書き込み先が特定された受信ユーザデータを、2個のバッファ1200、1201内の、書き込み先の論理セクタに割り当てられたサブバッファ領域に書き込む。図5は、1個のメモリコントローラ102が4チップのフラッシュメモリを制御するようになった変形例における、メモリコントローラ102内のバッファの構造とそのバッファへのデータの書き込み方の一例を示す。図5の変形例の図4の変形例との主たる違いは、フラッシュメモリのチップ数が4個になったことに伴い、メモリコントローラ102内のバッファの個数も4個になっている点である。これら4個のバッファ1200~1203の各々は、それに割り当てられたフラッシュメモリのCPNCPN0~CPN4によって識別され、CPNは、LBAの下位2ビット列で特定される。これら4個のバッファ1200~1203の各々は、それに割り当てられたフラッシュメモリ内の1個の物理ページ分のユーザデータを格納できる。この変形例で使用される論理アドレス空間では、1個の論理ページが32個の論理セクタから構成され、これは、4個の物理ページの物理セクタの合計個数に相当する。4個のバッファ1200~1203が連合して、1個の論理ページ分のユーザデータを格納することができる。望ましくは、4チップのフラッシュメモリ図示省略の全部に、メモリコントローラ102が並行してアクセスできるようになっている。そして、望ましくは、図5に例示するように、1個の論理ページ内のLSNLBAの下位5ビット列が連続する32個の論理セクタに、異なるバッファ1200~1203内のサブバッファ領域が順次に割り当てられる。例えば、LSNが00000の1番目の論理セクタに、第1のバッファ1200内の第1サブバッファ領域SBF1が割り当てられ、LSNが00001の2番目の論理セクタに、第2のバッファ1201内の第1サブバッファ領域SBF1が割り当てられ、LSNが00010の3番目の論理セクタに、第3のバッファ1202内の第1サブバッファ領域SBF1が割り当てられ、LSNが00011の4番目の論理セクタに、第4のバッファ1203内の第1サブバッファ領域SBF1が割り当てられ、以下同様である。尚、1個の論理ページ内のLSNの連続する32個の論理セクタを、必ずしも4個のバッファ1200~1203に図5に示したように割り当てなくてもよく、例えば、CPNをLSNの上位2ビットで特定するようにしてもよい。図5に示したバッファ構成の下で、メモリコントローラ102のマイクロプロセッサ112は、4チップのフラッシュメモリの各々から1個ずつ選んだ4個の物理ぺージを組み合わせて、1個の仮想物理ページを定義する。このようにして、4チップのフラッシュメモリ内に、複数個の仮想物理ページが定義される。マイクロプロセッサ112は、ホストシステム200から書き込み要求を受信すると、既に説明したのと同様に方法で、4つのバッファ1200~1203内の既存ユーザデータを4チップのフラッシュメモリへ書き込む必要があるかどうかを判断する。その結果、書き込む必要があると判断すれば、マイクロプロセッサ112は、上記既存ユーザデータの書き込み先に該当する仮想物理ページを決定し、そして、上記既存ユーザデータが上記仮想物理ページに書き込まれるように、4個のバッファ1200~1203内のユーザデータを、4チップのフラッシュメモリへそれぞれ書き込む。その後に、受信した書き要求により書き込み先が特定された受信ユーザデータを、4個のバッファ1200~1203内の、書き込み先の論理セクタに割り当てられたサブバッファ領域に書き込む。他方、上記判断の結果、書き込む必要がないと判断すれば、マイクロプロセッサ112は、4個のバッファ1200~1203内の既存ユーザデータを4チップのフラッシュメモリへ書き込む動作を省略し、そして、受信した書き要求により書き込み先が特定された受信ユーザデータを、4個のバッファ1200~1203内の、書き込み先の論理セクタに割り当てられたサブバッファ領域に書き込む。図6は、メモリコントローラ102のマイクロプロセッサ112が行う、ホストシステム200から要求を受信したときの制御の流れを示す。図6に示すように、ステップS1で、ホストシステム200からコマンドが受信されたか否かがチェックされる。コマンドが受信されたならステップS1でYes、ステップS2で、受信されたコマンドがフラッシュキャッシュコマンドバッファ内のユーザデータをフラッシュメモリへ書き込むことを要求するコマンドであるかがチェックされる。受信されたコマンドがフラッシュキャッシュコマンドでなければステップS2でNo、ステップS3で、受信されたコマンドが書き込みコマンドであるかがチェックされる。受信されたコマンドが書き込みコマンドである場合ステップS3でYes、ステップS4で、受信ユーザデータの書き込み先と、バッファ内の既存ユーザデータの書き込み先とが、論理ページLBA中のLBNとLPNにおいて一致するか否かがチェックされる。両ユーザデータの書き込み先の論理ページが一致する場合ステップS4でYesには、バッファ内の既存ユーザデータをフラッシュメモリに書き込む必要性がないことを意味する。その場合、バッファからフラッシュメモリへの書き込みは行われずに、ステップS5で、受信ユーザデータが、その書き込み先である1個以上の論理セクタにそれぞれ割り当てられたバッファ120内の1個以上のサブバッファ領域に書き込まれる。他方、ステップS4において、両ユーザデータの書き込み先の論理ページが一致しない場合ステップS4でNoには、バッファ内の既存ユーザデータをフラッシュメモリに書き込む必要性があることを意味する。その場合、ステップS6で、バッファ内の全てのサブバッファ領域の既存ユーザデータがフラッシュメモリへ書き込まれる。このとき、前述したように、ユーザデータとともに、ECCや管理制御用データもフラッシュメモリに書き込まれる。ステップS4でNoの場合、さらに、ステップS7で、受信ユーザデータの書き込み先の論理ページに対応するユーザデータがフラッシュメモリ内に存在するか否かすなわち、フラッシュメモリ内に、受信ユーザデータの書き込み先の論理ページに関連付けられた物理ページが存在するか否かがチェックされる。このチェックの結果、受信ユーザデータの書き込み先の論理ページに対応するユーザデータがフラッシュメモリ内に存在しないステップS7でNo場合、制御は、上述したステップS6の後に、既に説明したステップS5へ進む。他方、受信ユーザデータの書き込み先の論理ページに対応するデータがフラッシュメモリ内に存在するステップS7でYes場合には、制御は、ステップS6の後に、ステップS8へ進む。ステップS8では、受信ユーザデータの書き込み先の論理ページに対応するフラッシュメモリ内のユーザデータがすなわち、受信ユーザデータの書き込み先の論理ページに関連付けられたフラッシュメモリ内の物理ページに格納されているユーザデータが、メモリコントローラ102へ読み出され、バッファ120に保持される。このとき、そのユーザデータとともに、そのユーザデータのECCも、フラッシュメモリからメモリコントローラ102へ読み出される。そして、その読み出されたユーザデータとECCを用いて、メモリコントローラ102内のECCブロック122が、読み出されたユーザデータのエラーをチェックし、エラーがあれば、バッファ120に保持されているユーザデータのエラーを修正する。ステップS8の後に、制御はステップS5へ進んで、受信ユーザデータが、その書き込み先範囲の論理セクタに割り当てられたバッファ内のサブバッファ領域に書き込まれる。ステップS5の前にステップS8が行われているので、バッファ内では、書き込み先範囲の論理セクタに割り当たられたサブバッファ領域だけでなく、ブランク論理セクタに割り当てられたサブバッファ領域にも、然るべきユーザデータが保持される。ステップS5の後、制御はステップS1へ戻る。ステップS3で、受信されたコマンドが書き込みコマンド以外のもの例えば、読み出しコマンドなどであった場合ステップS3でNo、ステップS10で、バッファ内の全てのサブバッファ領域の既存ユーザデータが、フラッシュメモリへ書き込まれる。このとき、前述したように、ユーザデータとともに、ECCや管理制御用データもフラッシュメモリに書き込まれる。その後、ステップS11で、受信されたコマンドにより要求された処理例えば、データ読み出しが行われる。その後、制御はステップS1へ戻る。また、ステップS2で、受信されたコマンドがフラッシュキャッシュコマンドバッファ内のユーザデータをフラッシュメモリへ書き込むことを要求するコマンドであった場合ステップS2でYes、ステップS9で、バッファ内の全てのサブバッファ領域に既存するユーザデータが、フラッシュメモリへ書き込まれる。このとき、前述したように、ユーザデータとともに、ECCや管理制御用データもフラッシュメモリに書き込まれる。その後、制御はステップS1へ戻る。ところで、図6の制御流れ中のステップS8の動作は、次の2通りのやり方のいずれか一方で行うことができる。その1つ目のやり方は、受信ユーザデータの書き込み先の論理ページ中の全ての論理セクタに対応するフラッシュメモリ内のユーザデータを、バッファ120の全てのサブバッファ領域へ読み出すやり方である。ステップS8の2つ目のやり方は、受信ユーザデータの書き込み先の論理ページ中から、受信ユーザデータの書き込み先として特定されてない論理セクタ以下、ブランク論理セクタというを検出し、そして、検出されたブランク論理セクタに対応するフラッシュメモリ内のユーザデータだけを選択的に、バッファ120のブランク論理セクタに割り当てられたサブバッファ領域に読み出すやり方である。例えば、図2を参照して、受信された書き込み要求により特定された論理ページがLPN0であり、そして、同書き込み要求により特定された書き込み先の論理セクタがLSN1~LSN6だけである場合を想定すると、ブランク論理セクタはLSN0とLSN7の論理セクタである。この例の場合、上記2つ目の方法によれば、LPN0の論理ページ中のブランク論理セクタであるLSN0とLSN7の論理セクタに対応するユーザデータだけが選択的に、LSN0とLSN7の論理セクタに割り当てられたバッファ120内のサブバッファ領域へ読み出されることになる。これに対し、上記1つ目の方法によれば、フラッシュメモリ内のLPN0の論理ページ内の全ての論理セクタLSN0~LSN7の論理セクタに対応するユーザデータが、バッファ120内の全てのサブバッファ領域へ読み出されることになる。このような2通りのやり方のうち、いずれを採用することも可能である。また、図6の制御流れの変形例として、ステップS8の動作に代替して、フラッシュメモリに対するコピーバックコマンドを使った次のような動作を採用することもできる。すなわち、メモリコントローラ102は、新しく受信された書き込み要求により書き込み先が特定される受信ユーザデータをバッファ120内のサブバッファ領域に書き込む度に、そのサブバッファ領域に書き込まれた受信ユーザデータがバッファ120内で有効であることを示す有効情報を記憶し、以後、バッファ120内の既存ユーザデータがフラッシュメモリへ書き込まれるまで、その有効情報を保持する。その後、バッファ120内の既存ユーザデータをフラッシュメモリへ書き込む必要が生じたとき、メモリコントローラ102は、まず、コピーバック読み出しコマンドをフラッシュメモリ104に与えて、バッファ120内の既存ユーザデータの書き込み先の論理ページに対応するフラッシュメモリ104のメモリセルアレイ134内のユーザデータを全て、フラッシュメモリのレジスタへ読み出す。続いて、メモリコントローラ102は、バッファ120内の各サブバッファ領域に保持されている既存ユーザデータ中、記憶されている有効情報により有効であると示されている各サブバッファ領域に保持されている既存ユーザデータ換言すれば、バッファ120からフラッシュメモリ104へのデータ書き込み動作が最後に行われた時から現在までの間に、受信された書き込み要求よりバッファ120に書き込まれた有効なユーザデータのみを、コピーバック読み出しコマンドにより、フラッシュメモリ104内のレジスタ132へ書き込む。この時、バッファ120内の既存ユーザデータ中、有効情報により有効であるとは示されていないサブバッファ領域のデータ換言すれば、バッファ120からフラッシュメモリへのデータ書き込み動作が最後に行われた時より現在までの間に、受信された書き込み要求より受信ユーザデータが書き込まれていないサブバッファ領域のデータは、フラッシュメモリ104内のレジスタ132へ書き込まれない。続いて、フラッシュメモリ104内のレジスタ104のユーザデータはフラッシュメモリ104内のメモリセルアレイ134に書き込まれる。このようなコピーバック読み出しコマンドを使った代替動作によって、上述したステップS8と同様の効果が得られる。図7は、上述した図6の制御によって実現されるバッファ120への受信ユーザデータの書き込み動作の具体例を示す。ここでは、図6のステップS8の動作は、上述した1つ目のやり方で行われるものとする。図7に示された具体例では、説明上の例示として、1個の論理ページLBN0,LPN0の論理ページに着目し、その論理ページLBN0,LPN0の論理ページは、32個の論理セクタLBA0~LBA31に対応するLPN0の論理ページ内のLSN0~LSN31の論理セクタより構成されるものとする。ここで、着目しているLPN0の論理ページとは異なる論理ページへのアクセスが最後に行われた後に、逐次に4個の書き込み要求が受信され、それら4個の書き込み要求は、図7の上部に示されているようなLBA先頭のLBAとセクタカウント受信ユーザデータのセクタ数のセットをそれぞれ指定している、という場合を想定する。この場合、1番目の書き込み要求が受信されると、まず、バッファ内の既存ユーザデータが、フラッシュメモリ104に書き込まれるこの動作は、図7には図示されていない。1番目の書き込み要求により特定される書き込み先は、LPN0の論理ページ内のLSN4~LSN27LBA4~LBA27の論理セクタである。同じLPN0の論理ページ内の他の論理セクタLSN0~LSN3に対応するLBA0~LBA3の論理セクタ及びLSN28~LSN31に対応するLBA28~LBA31の論理セクタは、上述したブランク論理セクタに該当することになる。続いて、1番目の書き込みコマンドにより特定された論理ページLPN0の全ての論理セクタLSN0~LSN31に対応するLBA0~LBA31の論理セクタに対応するフラッシュメモリ内のユーザデータが、バッファ内の全てのサブバッファ領域へ読み出される。続いて、1番目の書き込み要求により書き込み先が特定された受信ユーザデータが、その書き込み先の論理セクタLSN4~LSN27に対応するLBA4~LBA27の論理セクタに割り当てられたバッファ120内のサブバッファ領域に書き込まれる。その結果、バッファ内に存在する論理ページLPN0のユーザデータは、書き込み要求により書き込み先が特定された論理セクタLSN4~LSN27に対応するLBA4~LBA27の論理セクタに保持されているユーザデータと、フラッシュメモリから読み出されたブランク論理セクタLSN0~LSN3に対応するLBA0~LBA3の論理セクタ及びLSN28~LSN31に対応するLBA28~LBA31の論理セクタに保持されているユーザデータとから、構成されることになる。その後に、2番目の書き込みコマンドが受信される。この2番目の書き込みコマンドにより特定される書き込み先は、LBN0,LPN0の論理ページ内のLSN0~LSN15LBA0~LBA15の論理セクタであり、その論理ページLBN0,LPN0の論理ページは、バッファ内の既存ユーザデータの論理ページ最初の書き込み要求により特定された論理ページであるLBN0,LPN0の論理ページと一致する。従って、バッファからフラッシュメモリへのデータ書き込みは省略され、単に、2番目の書き込み要求により特定された論理セクタLSN0~LSN15に対応するLBA0~LBA15の論理セクタのユーザデータが、バッファ120内の対応するサブバッファ領域に書き込まれる。その後に、3番目の書き込みコマンドが受信される。この3番目の書き込みコマンドにより特定される書き込み先は、LBN0,LPN0の論理ページ内のLSN16~LSN31LBA16~LBA31の論理セクタであり、その論理ページLBN0,LPN0の論理ページは、バッファ内の既存ユーザデータの論理ページ1番目と2番目の書き込み要求により特定された論理ページであるLBN0,LPN0の論理ページと一致する。従って、バッファからフラッシュメモリへのデータ書き込みは省略され、単に、3番目の書き込み要求により特定された論理セクタLSN16~LSN31に対応するLBA16~LBA31の論理セクタのユーザデータが、バッファ120内の対応するサブバッファ領域に書き込まれる。その後に、4番目の書き込み要求が受信される。この4番目の書き込み要求により特定される書き込み先は、LBN0,LPN1の論理ページ内のLSN0~LSN15LBA32~LBA47の論理セクタであり、その論理ページLBN0,LPN1の論理ページは、バッファ120内の既存ユーザデータの論理ページ1番目~3番目の書き込みコマンドにより特定される論理ページであるLBN0,LPN0の論理ページと一致しない。従って、まず、バッファ内の既存ユーザデータが、フラッシュメモリに書き込まれる。その後に、図7には示されてないが、4番目の書き込み要求により特定された論理ページLBN0,LPN1の論理ページの全ての論理セクタに対応するフラッシュメモリ内のユーザデータが、バッファの全てのサブバッファ領域へ書き込まれ、その後に、4番目の書き込み要求により特定されたLBN0,LPN1の論理ページ内のLSN0~LSN15LBA32~LBA47の論理セクタの受信ユーザデータが、バッファへ書き込まれる。以上説明した本発明の実施形態及び変形例によれば、ホストシステムから同じ論理ページへのデータ書き込みが連続して要求された場合には、メモリコントローラ内のバッファに保持されている同じ論理ページ内の既存ユーザデータをフラッシュメモリへ書き込む動作が、自動的に省略される。これにより、ホストシステムにとっての実質的なデータ書き込み速度の向上や、フラッシュメモリのアクセス回数の減少によるフラッシュメモリの寿命の改善などの利点が期待できる。以上説明した本発明の実施形態とその変形例は、本発明の説明のための例示に過ぎず、本発明の範囲をこれらに限定する趣旨ではない。本発明は、その要旨を逸脱することなしに、上述した実施形態とその変形例以外の種々の態様でも実施することができる。例えば、論理アドレス空間と物理アドレス空間との間の関連付け対応関係の設定のやり方には、上述の説明で例示したやり方以外の種々のやり方が採用でき、いずれのやり方が採用された場合にも、本発明は適用可能である。"