"フラッシュメモリ部と、上記フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御する制御部とを備えるフラッシュメモリ装置上記制御部は、外部装置から書込指示されたデータのサイズが上記ブロックサイズ未満であるか否かを判別し、その結果に基づき、上記ブロックサイズ未満のデータが上記フラッシュメモリ部にシーケンス書込されるように制御する請求項1に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記ブロックサイズの1/nnは2以上の自然数以上であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上である場合に、上記シーケンス書込が行われるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すものであるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上であり、且つ、上記書込開始論理ページアドレス及び上記書込開始論理セクタアドレスが共に先頭アドレスを指すものである場合に、上記シーケンス書込が行われるように制御する請求項3に記載のフラッシュメモリ装置。上記制御部は、シーケンス書込ブロックとして使用中のブロック数が上限値に達しているか否かを判別し、上記シーケンス書込ブロックとして使用中のブロック数が上記上限値に達している場合には、使用中の上記シーケンス書込ブロックのうちから選択したシーケンス書込ブロックについて、シーケンス書込ブロックのガベージコレクションを実行する請求項4に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて、書込途中のシーケンス書込ブロックが存在するとされる場合には、少なくとも上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであるか否かを判別した結果に基づき、上記書込指示されたデータの上記書込途中のシーケンス書込ブロックへの追記が行われるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込途中のシーケンス書込ブロックが存在するとされた場合であって、且つ、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであり、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数である場合に、上記書込指示されたデータの上記書込途中のシーケンス書込ブロックへの追記が行われるように制御する請求項6に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上であり、且つ、上記書込開始論理ページアドレス及び上記書込開始論理セクタアドレスが共に先頭アドレスを指すものであり、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数である場合に、シーケンス書込が行われるように制御する請求項4に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のブロックサイズと一致する場合は、上記書込指示されたデータがブロックレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記ブロックサイズの1/nnは2以上の自然数以上であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上ではないとされた場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すものであるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すとの条件が満たされない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数ではない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであるか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて書込途中のシーケンス書込ブロックが存在するとされた場合で、且つ、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものではないとされた場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて書込途中のシーケンス書込ブロックが存在するとされた場合で、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数ではない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する請求項2に記載のフラッシュメモリ装置。上記制御部は、外部装置からのシーケンス書込指示に応じて、上記フラッシュメモリ部のブロックサイズ未満のデータが上記フラッシュメモリ部にシーケンス書込されるように制御する請求項1に記載のフラッシュメモリ装置。フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御するメモリ制御装置。フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御するメモリ制御方法。フラッシュメモリ部と、上記フラッシュメモリ部へのデータの書込を指示する指示部と、上記書込指示部により書込が指示された、上記フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御する制御部とを備えるストレージシステム。しかしながら、ガベージコレクションの発生は、メモリカードのパフォーマンス記録速度を低下させる要因となる。従って高速な記録の実現のためには、ガベージコレクションの発生頻度を極力減らすことが望ましい。また一方で、フラッシュメモリのブロックサイズは、フラッシュメモリの世代が進むごとに拡大化する傾向にある。ブロックサイズを大とすれば、その分、より高速なデータ書込を実現できるためである。但し、このようにブロックサイズを大としてより高速な書込を実現しようとした場合には、書込データの送出側であるホスト装置側では、これに対応させてデータ送出用のバッファメモリのサイズを大きくしなければならない。拡大したブロックサイズに上記バッファメモリのサイズが満たないものである場合、そのホスト装置との組み合わせでは、メモリカード側でブロックレベル管理によるデータ書込を行うことができず、ページレベル管理下での記録となってしまい、結果として高速な記録の実現が図られないものとなってしまう。本技術は上記問題点に鑑み為されたものであり、フラッシュメモリを備えたメモリ装置フラッシュメモリ装置について、ガベージコレクションの発生頻度を効果的に減らすことにより記録の高速化を図ると共に、ホスト装置側で書込データ送出用のバッファメモリのサイズを拡大せずとも高速な記録の実現が図られるようにすることをその課題とする。本技術のフラッシュメモリ装置は、フラッシュメモリ部を備えると共に、上記フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御する制御部を備えるものである。また、本技術のメモリ制御装置は、フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御するものである。また、本技術のストレージシステムは、フラッシュメモリ部と、上記フラッシュメモリ部へのデータの書込を指示する指示部と、上記書込指示部により書込が指示された、上記フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御する制御部とを備えるものである。本技術によれば、ブロックレベルBlockLevel管理による記録を行うことができないブロックサイズ未満のデータについて、フラッシュメモリ部にシーケンス書込を行うことができる。ここで、シーケンス書込とは、書込対象データを所定の書込単位で対象物理ブロックに対して論理アドレス順に書き込むことを意味する。ブロックレベル管理とページレベルPageLevel管理の2種の管理でデータ書込を行う従来のフラッシュメモリ装置では、書き込むべきデータがブロックサイズと一致する場合はブロックレベル管理による記録を行い、ブロックサイズ未満のデータについてはページレベル管理による書込を行うようにされている。このため、例えばブロックサイズ未満のデータについて、それらが論理アドレス的に連続している個々のデータであったとしても、それらのデータについてはページレベル管理による書込が行われていた。これに対し、シーケンス書込を可能とした本技術によれば、ブロックサイズ未満のデータについてシーケンス書込ができる。つまり、例えば上記のようなケースにおいて、ページレベル管理下での書込のように個々のデータが異なる物理ブロックに分散して記録されてしまうことを効果的に防止できる。つまり、シーケンス書込を可能とした本技術によれば、ブロックサイズ未満のデータについてページレベル管理による書込しか選択肢にない従来と比較して、ガベージコレクションの発生頻度を効果的に減らすことができる。結果、従来よりも記録速度の面でパフォーマンス向上が図られる。また、前述のように従来では、ホスト装置側でブロックサイズよりも小さなサイズのバッファメモリしか備えられていない場合には、ホスト装置側はブロックサイズ未満のデータしか送出できない。従ってこの場合も、データが論理アドレス的に連続していたとしても、従来のフラッシュメモリ装置ではページレベル管理による書込が選択されてしまうことになる。これに対し、シーケンス書込を可能とした本技術によれば、ホスト装置側からブロックサイズ未満のデータしか送出できない場合であっても、それらのデータをシーケンス書込する、すなわち、所定の物理ブロックに論理アドレス順に記録することができる。これによれば、ページレベル管理による記録が行われる場合とは異なり、ガベージコレクションの発生頻度を低下させることができ、この面でもパフォーマンス向上が図られる。本技術によれば、従来よりもガベージコレクションの発生を効果的に減らすことにより記録速度の向上を図ることができる。また、データ転送用のバッファメモリサイズの小さなホスト装置からの書込が行われる場合にも、高速なデータ記録を実現できる。以下、本技術に係る実施の形態について説明する。なお、説明は以下の順序で行う。<1.第1の実施の形態>[11.ストレージシステムの構成][12.データ管理手法について][13.第1の実施の形態としてのメモリ制御手法]<2.第2の実施の形態><3.変形例>ここで、第1の実施の形態は、ホスト側がフラッシュメモリ装置側にWriteコマンドで指定した書込データについての論理アドレスとデータサイズとを元に、フラッシュメモリ装置自らがデータの書込手法を変えるという実施形態であり、第2の実施の形態は、ホスト側がWriteコマンドでフラッシュメモリ装置に書込手法の切り替えを明示的に通知し、これに応じてフラッシュメモリ装置がデータの管理手法を変えるという実施形態となる。<1.第1の実施の形態>[11.ストレージシステムの構成]図1は、実施の形態のストレージシステムの構成を示した図である。実施の形態のストレージシステムは、フラッシュメモリ装置1とホスト装置5とを有して構成される。ホスト装置5は、フラッシュメモリ装置1に対してReadコマンド、Writeコマンドを送信してフラッシュメモリ装置1に記録されたデータの読み出し、データの書き込みを実行させる装置となる。本例の場合、ホスト装置5は例えば静止画や動画を撮影してそれらのデータの記録/再生を行うデジタルカメラ装置であるとする。フラッシュメモリ装置1は、図のようにフラッシュメモリ4、外部インターフェイス2、及びメモリコントローラ3を備えている。フラッシュメモリ4は、NAND型のフラッシュメモリとされ、メモリコントローラ3による制御によりデータの記録書込/再生読出が行われる。フラッシュメモリ4内には、ユーザデータ記録領域4Aと管理情報記録領域4Bとが存在する。ユーザデータ記録領域4Aでは、データが書き込まれた物理ブロックとして、後述するBlockLevelブロックレベル管理ブロック30,PageLevelページレベル管理ブロック40,シーケンス書込管理ブロック50の3種類のブロックが存在することになる。また、管理情報記録領域4Bでは、これらBlockLevel管理ブロック30,PageLevel管理ブロック40,シーケンス書込管理ブロック50を管理するためのデータを記録する管理情報ブロック60が存在することになる。メモリコントローラ3は、CPUCentralProcessingUnitやROMReadOnlyMemory、RAMRandomAccessMemoryを備えたマイクロコンピュータで構成され、例えば上記ROMに格納されたプログラムに従った処理を実行することで、フラッシュメモリ装置の全体制御を行う。具体的には、外部インターフェイス2が受信したコマンドの解釈や、後述する各種の管理情報を用いた論理アドレスから物理アドレスへの変換処理、フラッシュメモリ4に対するデータの書込と読出、フラッシュメモリ4へのデータ書込時のECCデータの生成付加、読出時のECCエラー訂正処理などを行う。外部インターフェイス2は、ホスト装置5とメモリコントローラ3との間で各種データの送受信を可能とするために設けられ、ホスト装置5からのコマンド受信やデータの送受信などを行う。ここで、ホスト装置5は、フラッシュメモリ4のデータ読出時には、メモリコントローラ3に対し、Readコマンドとして、読出データの存在する先頭論理アドレス少なくとも論理ブロックアドレス及び論理ページアドレスの組で特定されるとデータサイズとを指定したコマンドを送出する。これに応じメモリコントローラ3は、指定された論理アドレスから指定されたサイズのデータを読み出し、これをホスト装置5に対して送出する。また、ホスト装置5は、データ書込時には、Writeコマンドとして、データの書込先の先頭論理アドレスとデータサイズとを指定したコマンドを送出する。これに応じメモリコントローラ3は、指定された論理アドレスに指定されたサイズのデータが記録された状態となるように、フラッシュメモリ4に対する書込を行う。[12.データ管理手法について]以下、フラッシュメモリ4に記録されるデータの管理手法について説明する。先ずは、物理アドレスと論理アドレスとについて説明しておく。フラッシュメモリ4では、フラッシュメモリ4内部に記録されたデータの位置情報を示すアドレスとして、物理アドレスが使用される。図2は、フラッシュメモリ4で使用する物理アドレスの概要を示している。フラッシュメモリ4では、物理アドレスとして、物理ブロックアドレス,物理ページアドレス,物理セクタアドレスの3種類のアドレスが使用される。図2において、物理ブロック10は、フラッシュメモリ4で使用されるNANDフラッシュメモリの最小消去単位であるブロックに対応し、フラッシュメモリ4でデータのReadProgramEraseが実行されるブロックそれぞれに、物理ブロックアドレスが1つ割り振られる。図2では、データのReadProgramEraseが実行されるブロック数をbとし、0からb-1までの物理ブロックアドレスを割り振っている。物理ブロック10は、物理ページ11に分割される。物理ページ11はNANDフラッシュメモリの最小プログラム単位であるページに対応する。物理ブロック10内のページそれぞれに、先頭ページから昇順に物理ページアドレスが1つ割り振られる。図2では物理ブロック10内に存在する物理ページ11の数をpとし、0からp-1までの物理ページアドレスを割り振っている。物理セクタ12は、ホスト装置5が使用する論理アドレスで指定される最小の領域のサイズと一致する。物理ページ11は、複数の物理セクタ12に分割され、それぞれの物理セクタ12に物理セクタアドレスが昇順に割り振られる。図2では物理ページ11がs個の物理セクタ12に分割されるものとしており、この場合、0からs-1までの物理セクタアドレスが割り振られる。フラッシュメモリ装置1では、データの論理アドレスに対して物理アドレスを対応付ける。論理アドレスと物理アドレスとを対応付けるため、論理アドレスを論理セクタアドレス,論理ページアドレス、論理ブロックアドレスの3種類のアドレスで扱う。図3は、論理セクタアドレス、論理ページアドレス、論理ブロックアドレスの概要を示している。ホスト装置5がフラッシュメモリ装置1で扱うことのできる論理アドレス空間20のアドレスは0からas-1であるとする。論理アドレスそれぞれに1つの論理セクタアドレスを割り振る。図3では全ての論理アドレスに、論理セクタアドレスを0からs-1まで割り振っている。ここで、sは物理ページ11内に存在する物理セクタ12の数である。論理ページ22は複数の論理セクタ21で構成される。図3ではs個の論理セクタ21で1つの論理ページ22が構成され、全ての論理ページ22に0からp-1の論理ページアドレスを割り振っている。pは1つの物理ブロック10に存在する物理ページ11の数である。論理ブロック23は複数の論理ページ22で構成される。図3ではp個の論理ページ22で1つの論理ブロック23が構成され、全ての論理ブロック23に0からa-1の論理ブロックアドレスを割り振っている。続いて、フラッシュメモリ4に記録される各種の物理ブロックの具体的なデータ構造について説明する。図4は、BlockLevel管理ブロック30のデータ構造を示している。ここで、BlockLevel管理ブロック30とは、BlockLevel管理による書込ブロックレベル書込が行われた物理ブロックを意味する。BlockLevel管理ブロック30の全ての物理ページには、データが書き込み済みとなる図中、書込済みページ31。ブロックレベル書込では、1つの物理ブロックに対して1ブロック分のサイズのデータを書き込むためである。図のように1つの物理ページには、付加情報32、付加情報ECC32a、ユーザデータ33、ユーザデータECC33aが記録される。付加情報32は、BlockLevel管理ブロック30であることを示すブロックタイプ34、BlockLevel管理ブロック30の世代情報を示すリビジョン35、BlockLevel管理ブロック30に書き込まれたデータの論理ブロックアドレス36、当該付加情報32が格納された物理ページに対応する論理ページアドレス37の各情報で構成される。論理ブロックアドレス36は、同一のBlockLevel管理ブロック30内で全て同じ値である。またBlockLevel管理ブロック30では、論理ページアドレス37の値は、当該論理ページアドレス37のデータが書き込まれた物理ページの物理ページアドレスと一致することになる。具体的に図中では、物理ページアドレスiと、当該物理ページアドレスiに書き込まれたデータの論理ページアドレスiとが一致しているものとして示している。さらに、論理セクタアドレスと物理セクタアドレスは一致する。このとき、ユーザデータ33のサイズは物理セクタのサイズと一致し、1つの物理ページに記録可能なユーザデータ33の数は、物理ページ内の物理セクタ数に一致する。図5は、PageLevel管理ブロック40のデータ構造を示している。PageLevel管理ブロック40とは、PageLevel管理による書込ページレベル書込で使用された物理ブロックのことを指す。PageLevel管理ブロック40には、書込済みページ41aと未書込ページ41bとが含まれる。図のように、書込済みページ41aとしての物理ページには、付加情報42、付加情報ECC42a、ユーザデータ43、ユーザデータECC43aが記録される。付加情報42は、PageLevel管理ブロック40であることを示すブロックタイプ44、PageLevel管理ブロック40の世代情報を示すリビジョン45、PageLevel管理ブロック40に書き込まれたデータの論理ブロックアドレス46、当該付加情報42が格納された物理ページに対応する論理ページアドレス47の各情報で構成される。この場合も論理ブロックアドレス46は、同一のPageLevel管理ブロック40内で全て同じ値となる。但し、PageLevel管理ブロック40の場合、論理ページアドレス47の値は、当該論理ページアドレス47のデータが書き込まれた物理ページの物理ページアドレスとは必ずしも一致しないこととなる。ページレベル書込では、ブロックサイズに満たない小さなサイズのデータをそれぞれ異なる物理ブロックに分散して記録するということが行われるからである。また、PageLevel管理ブロック40においても、論理セクタアドレスについては、物理セクタアドレスと一致する。この場合もユーザデータ43のサイズは物理セクタのサイズと一致し、1つの物理ページに記録可能なユーザデータ43の数は物理ページ内の物理セクタ数と一致する。また、PageLevel管理ブロック40において、未書込ページ41b内には、図のようにNANDフラッシュメモリの初期値である0xFFFFが記録された状態となる。図6は、シーケンス書込管理ブロック50のデータ構造を示している。このシーケンス書込管理ブロック50は、後述する実施の形態としてのシーケンス書込で使用された物理ブロックとなる。シーケンス書込管理ブロック50は、書込済みページ51aと未書込ページ51bとを含む。書込済みページ51aの物理ページには、付加情報52、付加情報ECC52a、ユーザデータ53、ユーザデータECC53aが記録される。付加情報52は、シーケンス書込管理ブロック50であることを示すブロックタイプ54、シーケンス書込管理ブロック50の世代情報を示すリビジョン55、シーケンス書込管理ブロック50に書き込まれたデータの論理ブロックアドレス56、当該付加情報52が格納された物理ページに対応する論理ページアドレス57の各情報で構成される。この場合も論理ブロックアドレス56は同一のシーケンス書込管理ブロック50内で全て同じ値となる。またシーケンス書込管理ブロック50においては、図4に示したBlockLevel管理ブロック30の場合と同様に、論理ページアドレス57の値は、当該論理ページアドレス57のデータが書き込まれた物理ページの物理ページアドレスと一致する図中、付加情報52が格納された物理ページアドレスの値iと当該付加情報52内に格納されている論理ページアドレス57の値iとが一致。これは、後述もするようにシーケンス書込では、ホスト装置5側から書込指示された、論理アドレス的に連続する各論理ページデータを、シーケンス書込管理ブロック50として選択された物理ブロックに対して物理ページアドレス順に記録するからである。また、シーケンス書込管理ブロック50においても、論理セクタアドレスについては、物理セクタアドレスと一致する。またこの場合も、ユーザデータ53のサイズは物理セクタのサイズと一致し、1つの物理ページに記録可能なユーザデータ53の数は物理ページ内の物理セクタ数と一致する点は図4,図5の場合と同様である。また、図示するように未書込ページ51bの格納値は、この場合も初期値0xFFFFとなる。図7は、管理情報ブロック60のデータ構造を示している。この管理情報ブロック60は、後の図8~図12などに示す各種の管理情報を格納するための物理ブロックである。図7において、管理情報ブロック60には、書込済みページ61aと未書込ページ61bとが含まれる。書込済みページ61aの物理ページには、付加情報62、付加情報ECC62a、管理情報63、管理情報ECC63aが記録される。付加情報62は、管理情報ブロック60であることを示すブロックタイプ64、管理情報ブロック60の世代情報を示すリビジョン65の各情報で構成される。管理情報63として記録される管理情報には、図8に示すBlockLevel管理テーブル70、図9に示すPageLevel管理テーブル75、図10に示すPageLevelマップ76、図11に示すシーケンス書込ブロック管理テーブル77、及び図12に示す無効データブロック管理テーブル78がある。図8は、BlockLevel管理テーブル70のデータ構造を示している。BlockLevel管理テーブル70は、BlockLevel管理を可能とするための管理情報であり、図示するように論理ブロックアドレスと物理ブロックアドレスとが対応づけられた情報となる。ここで、BlockLevel管理テーブル70で保持され得る論理ブロックアドレスの数は、ホスト装置5がデータの書込/読出が可能な論理ブロックの数に一致する図中ではa個としている。図中、物理ブロック割り当て済み論理ブロック71aとは、その論理ブロック内のデータを或る物理ブロックに対して記録済みとなった論理ブロックを意味する。このような論理ブロック71aの論理ブロックアドレスに対しては、そのデータの記録が行われた割り当てられた物理ブロックのアドレスが対応づけられて保持される。一方、BlockLevel管理テーブル70において、物理ブロックが未割り当ての論理ブロック71bの論理ブロックアドレスに対しては、無効な物理ブロックアドレスが対応づけられて保持される。BlockLevel管理テーブル70において、例えば或る論理ブロックアドレスのデータについてブロックレベル書込が行われた場合には、その論理ブロックアドレスに対応づけられている物理ブロックアドレスの値が、当該データの書込が行われた物理ブロックのアドレス値に更新されることになる。図9は、PageLevel管理テーブル75のデータ構造を示している。PageLevel管理テーブル75は、図のように論理ブロックアドレスに対して物理ブロックアドレスが対応づけられて成る。PageLevel管理テーブル75は、論理ブロックと、その論理ブロック内の論理ページのデータの記録が行われた物理ブロックつまり図5に示したPageLevel管理ブロック40との対応関係を管理するための管理情報であり、PageLevel管理による記録ページレベル書込で用いられる管理情報となる。Pagelevel管理テーブル75では、論理ブロックアドレスとして予め決められたd個のアドレス保持することができ、また、物理ブロックアドレスとしては予め決められたf個のアドレスを保持することができるものとされている。このとき、f≧dである。このようにページレベル書込では、ページレベル書込で使用することのできる論理物理のブロック数が制限されている。ページレベル書込で用いた物理ブロック数が上記f個を超える場合、ガベージコレクションを発生させて、使用可能な物理ブロックを新たに確保することになる。図9において、図中にX1と示す、物理ブロックPageLevel管理ブロック40が割り当てられた論理ブロックアドレスには、その物理ブロックの物理ブロックアドレスが保持される。またX2と示す、PageLevel管理ブロックが未割り当ての論理ブロックアドレスには、無効な物理ブロックアドレスが保持されて、PageLevel管理テーブル75に空きがある状態を示す。また、Pagelevel管理テーブル75において、例えば図中で論理ブロックアドレスC0に対し物理ブロックアドレスx00と物理ブロックアドレスx01とが対応づけられているように、1つの論理ブロックアドレスにつき複数の物理ブロックアドレスが対応づけられる場合がある。すなわち、前述のようにページレベル書込では、或る論理ブロック内のデータが複数の物理ブロックに分散して記録されるということが行われるからである。図10は、PageLevelマップ76のデータ構造を示している。PageLevelマップ76は、或る論理ブロック内の論理ページデータの記録が行われた物理ページのアドレス物理ブロックアドレスと物理ページアドレスとの組で特定されるを特定するための管理情報であり、図のように、論理ページアドレスに対し、物理ブロックアドレスと物理ページアドレスとが対応づけられて成る。このPageLevelマップ76は、PageLevel管理テーブル75において有効な物理ブロックアドレスが保持された論理ブロックの数だけ存在することになる。なお図10は、図9に示した論理ブロックアドレスC1についてのPageLevelマップ76の内容を例示したものである。PageLevel管理テーブル75で保持された物理ブロックアドレス内にデータが存在する場合は、図中のX3と示すように、論理ページアドレスのデータが書き込まれた物理ブロックアドレスと物理ページアドレスが保持される。一方、PageLevel管理テーブル75で保持された物理ブロックアドレス内にデータが存在しない場合は、X4と示すように、論理ページアドレスに対応する物理ブロックアドレスと物理ページアドレスには無効な値が保持されることになる。図11は、シーケンス書込ブロック管理テーブル77のデータ構造を示している。シーケンス書込ブロック管理テーブル77は、実施の形態としてのシーケンス書込を実現するために新たに追加される管理情報となる。図のようにシーケンス書込ブロック管理テーブル77は、論理ブロックアドレスに対し、物理ブロックアドレスと最終書込論理ページアドレスとが対応づけられた情報となる。シーケンス書込ブロック管理テーブル77では、論理ブロックアドレスとして予め決められたe個のアドレスを保持することができる。換言すれば、シーケンス書込で使用可能な物理ブロックシーケンス書込管理ブロック50の数は、e個に制限される。ここで、シーケンス書込についても、使用する物理ブロックの数が上限値に達している場合は、後述するシーケンス書込ブロックのガベージコレクションを発生させて使用可能な物理ブロックを新たに確保することになる。図11において、例えばX5と示すように物理ブロックシーケンス書込管理ブロック50が割り当てられた論理ブロックアドレスに対しては、その割り当てられた物理ブロックの物理ブロックアドレスが保持される。さらに、シーケンス書込において、当該論理ブロック内の途中の論理ページまでの書込が行われた場合には、その論理ブロックのデータのうち最終に書込が行われたページデータの論理アドレスの値が、最終書込論理ページアドレスの値として対応づけられる。一方、図中のX6は、物理ブロックが未割り当てとなった論理ブロックアドレスシーケンス書込で全データを書込済みとなった論理ブロックのアドレスとこれに対応づけられる物理ブロックアドレス及び最終書込論理ページアドレスの内容を示しているが、この場合、それら論理ブロックアドレス、物理ブロックアドレス、最終書込論理ページアドレスの値は、全て無効なデータが保持される。このように、シーケンス書込で全データを書込済みとなった論理ブロックについては、シーケンス書込ブロック管理テーブル77による管理下から除外されるものとなる。また同時に、上記無効なデータが保持されることで、シーケンス書込ブロック管理テーブル77上に使用可能なブロックが存在していることつまりシーケンス書込で使用可能なブロックに空きが存在することが表されることになる。図12は、無効データブロック管理テーブル78のデータ構造を示している。無効データブロック管理テーブル78は、BlockLevel管理ブロック30、PageLevel管理ブロック40、シーケンス書込管理ブロック50の何れかの物理ブロックであってデータ書込の行われた物理ブロックのうち、データ消去が可能なブロックを特定するための管理情報となる。この無効データブロック管理テーブル78には、例えばガベージコレクションの発生などに伴いデータ消去が可能とされた物理ブロックの物理ブロックアドレスが適宜保持される。図中のX7は、消去可能なブロックの物理ブロックアドレスを指し示している。一方、消去可能であるとして、実際にデータ消去が実行された物理ブロックについては、X8と示すように、そのブロックの物理ページアドレスが無効な値に更新される。これにより、既に消去済みのブロックつまり新たにデータ書込が行われている可能性のあるブロックに対する誤消去の防止が図られる。[13.第1の実施の形態としてのメモリ制御手法]図13~図25を参照して、第1の実施の形態としてのメモリ制御手法について説明する。先ずは図13により、ホスト装置5側からフラッシュメモリ装置1側に行われる書込指示の一例を示しておく。この図13では、図中の時点t1,t3,t5,t7の計4回のWriteコマンドが発行された場合を例示している。各Writeコマンドに続けて、時点t2,t4,t6,t8ではフラッシュメモリ装置1に書き込むべきデータが送出される。この場合、各Writeコマンドでは、書込データサイズとしてそれぞれ論理ブロックサイズ/4のデータサイズが指示され、従ってトータルで1つの論理ブロックサイズ分の書込指示が為されたものとなっている。各Writeコマンドでは、論理ブロックサイズ/4の書込データサイズを指示しているので、各Writeコマンドと共に指示される書込開始の論理アドレスの値は、時点t1では0、時点t3では論理ブロックサイズ/4、時点t5では論理ブロックサイズ/2、時点t7では論理ブロックサイズ3/4となる。なお確認のために述べておくと、この図13はあくまで書込指示の態様の一例を示したものに過ぎず、実際の書込指示としては、異なる論理ブロックのデータについて個別に行われる場合もあれば、1度のWriteコマンドで指示される書込データサイズも上記とは異なる場合もあることは言うまでもない。例えばこの図13に示すような態様によるホスト装置5側からの書込指示、具体的には、或る1つの論理ブロックに属する各データについて論理アドレス順に連続して書込指示が為され、且つ各データのサイズが所定サイズ以上であるような書込指示が為された場合、本実施の形態のフラッシュメモリ装置1では、各Writeコマンドに対応して、シーケンス書込としてのデータ書込が実行されることになる。以下、シーケンス書込処理を含む第1の実施の形態としてのメモリ制御手法について説明する。先ずは図14に、Writeコマンド実行処理のフローチャートを示す。なお、この図14を始めとして以降で説明する図15,図16,図21のフローチャートに示す処理動作は、図1に示したメモリコントローラ3が例えば自らが備える前述のROM等に格納されたプログラムに従って実行するものである。図14において、メモリコントローラ3は、ステップS101において、ホスト装置5側からのWriteコマンドを待機している。そして、ホスト装置5側からのWriteコマンドがあった場合は、ステップS102において、論理アドレスの変換処理を行う。この論理アドレスの変換処理では、ホスト装置5が指示した論理アドレス、データサイズから書込を実行する論理ブロックアドレス、論理ページアドレス、論理セクタアドレスをそれぞれ計算する。ここで、フラッシュメモリにおいて、書込指示されたデータサイズが論理ブロックサイズより大である場合には、データの書込処理は、書込を開始する論理ブロックアドレスから順に最終論理ブロックアドレスまで、順に論理ブロックごとに個別に行われることになる。上記ステップS102において論理アドレスの変換処理を実行後は、ステップS103において、論理ブロック内書込処理を実行する。この論理ブロック内書込処理では、論理ブロックごとの書込処理を実行する。このステップS103の論理ブロック内書込処理として実行すべき具体的な処理内容については、図15及び図16図21により後述する。ステップS103の論理ブロック内書込処理の実行後は、ステップS104において、全ての論理ブロック内書込処理が終了したか否かを判別する。すなわち、ステップS102の論理アドレスの変換処理で書込対象とした全ての論理ブロックアドレスで書込処理が終了したか否かを判別する。ステップS104において、全ての論理ブロックアドレスで書込処理が未だ終了しておらず、全ての論理ブロック内書込処理が終了してはいないとの否定結果が得られた場合は、ステップS103に戻る。すなわち、書込対象とされた全ての論理ブロックアドレスで書込処理が終了するまで、ステップS103の書込処理が実行されるものである。一方ステップS104において、全ての論理ブロックアドレスで書込処理が終了し、全ての論理ブロック内書込処理が終了したとの肯定結果が得られた場合は、この図に示すWriteコマンド実行処理は終了となる。図15は、図14に示した論理ブロック内書込処理S103として実行すべき具体的な処理内容を示したフローチャートである。先ず、ステップS201では、書込サイズが物理ブロックサイズに一致するか否かを判別する。すなわち、当該ステップS103としての論理アドレス内書込処理で書込対象とされるデータのサイズが、物理ブロックサイズに一致するか否かを判別するものである。なお、当該ステップS201の判別処理は、書込サイズが物理ブロックサイズ未満であるか否かを判別する処理であるとも換言することができる。ステップS201において、書込サイズが物理ブロックサイズと一致するとして肯定結果が得られた場合は、図16に示すステップS301に処理を進める。すなわち、ブロックレベル書込のための処理が実行されるものである。ここで、図16により、ブロックレベル書込のための処理について説明する。図16において、ステップS301では、未書込物理ブロックの取得処理を実行する。すなわち、フラッシュメモリ4について未書込物理ブロックとして管理されている物理ブロックアドレスのうちから任意の1つの物理ブロックアドレスを取得する。ステップS301による未書込物理ブロックの取得処理の実行後は、ステップS302において、BlockLevel管理ブロック書込処理を実行する。すなわち、ステップS301で取得したアドレスの物理ブロックに対し、ホスト装置5側から受信したデータを書き込むものである。ステップS302の書込処理の実行後は、ステップS303において、管理情報の更新処理を実行する。つまり、BlockLevel管理テーブル70における、当該論理ブロック内書込処理で対象としている論理ブロックアドレスに割り当てられている物理ブロックアドレスの値として、ステップS301で取得した物理ブロックアドレスの値を書き込む。ステップS303の管理情報更新処理の実行後、ステップS103の論理ブロック内書込処理は終了となる。なお、論理ブロック内書込処理で実行しているブロックデータの書込が、論理レベルでの上書きに伴うものである場合には、上記のようなBlockLevel管理テーブル70についての更新処理のみではなく、PageLevel管理テーブル75、PageLevelマップ76、無効データブロック管理テーブル78などの他の管理情報の更新も実行すべき場合がある。例えば、論理ブロック内書込処理で対象とされている論理ブロックのデータに関して、上書き前の旧データがBlockLevel管理下の物理ブロック物理ブロックb0とおくに書き込まれていた状態であった場合に、ステップS302の書込で当該論理ブロックのデータが新たに書き込まれた場合にあっては、上記旧データが記録されていた物理ブロックb0については消去可能なものとして扱われるようにすべきである。従ってこの場合には、当該物理ブロックb0の物理ブロックアドレスを無効データブロック管理テーブル78に追加するという処理も併せて実行すべきものとなる。或いは、上記旧データの一部又は全部は過去にページレベル書込によってそれぞれ異なる物理ブロックに分散して書き込まれていたという場合には、それらのデータについては、上記ステップS302の書込すなわち論理レベルでの上書きのための物理レベル書込の実行を以て、無効とされるべきものとなる。従ってこの場合には、それら無効とされるべきデータについて、PageLevel管理テーブル75、PageLevelマップ76に対し無効な値0xFFFFを書き込むという更新処理を実行すべきものとなる。説明を図15に戻す。先のステップS201において、書込サイズが物理ブロックサイズに一致しないとして否定結果が得られた場合は、ステップS202に進み、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するか否かを判別する。すなわち、シーケンス書込ブロック管理テーブル77内に、書込を実行している論理ブロックつまり当該論理ブロック内書込処理で対象としている論理ブロックの論理ブロックアドレスが存在するか否かを判別する。ここで、書込を実行している論理ブロックのアドレス値がシーケンス書込ブロック管理テーブル77内に存在する場合には、当該論理ブロックについては、そのデータがシーケンス書込途中の状態にあることになる。一方、書込を実行している論理ブロックのアドレス値がシーケンス書込ブロック管理テーブル77内に存在しない場合には、当該論理ブロックについては、少なくともシーケンス書込途中のブロックではないということなる。なおこの点を考慮して分かるように、上記ステップS202の判別処理は、書込指示されたデータの属する論理ブロックアドレス内のデータが、過去にシーケンス書込されているか否かを判別するものであるとも捉えることができる。ステップS202において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在しないとして否定結果が得られた場合は、ステップS203に処理を進める。ステップS203、及びステップS204の処理は、新規にシーケンス書込管理ブロック50を登録しそこに当該論理ブロック内書込処理で書込対象とされているデータを新たに書き込むべきか否かを判別するための各条件を判定する処理となる。ステップS203では、書込サイズが/4以上、かつ論理ページサイズの倍数であるか否かを判別する。換言すれば、書込サイズがシーケンス書込に適したサイズであるか否かを判別するものである。ここで、シーケンス書込に適したサイズの上限は、例えば設定されるブロックサイズ等によって異なるものであり、必ずしも/4以上に限定されるべきものではない。本例の場合、ブロックサイズ=32MBメガバイトに対応して、上記の/4以上に設定しているものとする。ステップS203において、書込サイズが物理ブロックサイズ/4以上でありかつ論理ページサイズの倍数であるとの条件が満たされずに否定結果が得られた場合は、後の図21に示すステップS401に処理を進める。すなわち、ページレベル書込のための処理に移行するものである。一方ステップS203において、書込サイズが物理ブロックサイズ/4以上でありかつ論理ページサイズの倍数であるとの肯定結果が得られた場合は、ステップS204に進んで、書込開始論理ページアドレスが0、かつ論理セクタアドレスが0であるか否かを判別する。すなわち、データの書込開始アドレスが、当該論理ブロック内書込処理で対象としている論理ブロックの先頭アドレスと一致しているか否かを判別するものである。ステップS204において、書込開始論理ページアドレスが0かつ論理セクタアドレスが0であるとの条件が満たされず否定結果が得られた場合は、図21に示すページレベル書込のための処理に移行する。一方ステップS204において、書込開始論理ページアドレスが0かつ論理セクタアドレスが0であるとして肯定結果が得られた場合は、ステップS205に進む。ステップS205では、シーケンス書込ブロック管理テーブル77に空きがあるか否かを判別する。すなわち、シーケンス書込ブロック50として使用可能なブロックの数が上限に達していないか否かを判別するものである。ステップS205において、シーケンス書込ブロック管理テーブル77に空きがあるとして肯定結果が得られた場合は、ステップS207に進み、シーケンス書込ブロック管理テーブル77に新規登録を行う。すなわち、シーケンス書込ブロック管理テーブル77に新たに論理ブロックアドレス当該論理アドレス内書込処理で対象としている論理ブロックのアドレスとシーケンス書込ブロック50として使用するブロックの物理ブロックアドレスとを追加して、新たなシーケンス書込ブロック50を登録する。なお、新規登録の場合、シーケンス書込ブロック管理テーブル77における最終書込論理ページアドレスの値としては、例えば初期値0xFFFFを書き込むものとする。一方ステップS205において、シーケンス書込ブロック管理テーブル77に空きがないとして否定結果が得られた場合は、ステップS206に進み、シーケンス書込ブロックのガベージコレクションを実行した後つまりシーケンス書込管理ブロック50として使用可能な物理ブロックを確保した後、上記ステップS207の新規登録処理を実行する。ここで、ステップS206のシーケンス書込ブロックのガベージコレクションの処理としては、先ず、シーケンス書込ブロック管理テーブル77で管理される論理ブロックのうちから1つの論理ブロックを選択する。以下、このように選択した論理ブロックのアドレスをaiとおく。このように選択した論理ブロックaiについてガベージコレクションを行って当該論理ブロックaiのデータをBlockLevel管理に昇格させることで、シーケンス書込ブロック管理テーブル77にブロックの空きを確保するものである。このとき、シーケンス書込ブロックのガベージコレクションとしては、上記のように選択した論理ブロックaiの既記録データが、1他のブロックにも分散して記録されている場合つまり論理ブロックaiの既記録データとしてシーケンス書込ブロック管理テーブル77の管理下のデータのみでなくPageLevel管理下やBlockLevel管理下のデータが存在している場合2他のブロックには一切存在していない場合論理ブロックaiの既記録データがシーケンス書込ブロック管理テーブル77の管理下のデータのみである場合で異なる処理を実行することになる。上記1の場合に対応して実行されるシーケンス書込ブロックのガベージコレクションの具体的な例について、図17~図19を参照して説明する。図17は、1の場合におけるシーケンス書込ブロックのガベージコレクションによる物理レベルでのデータの移行の様子の例を模式的に示し、図18は、図17に示すデータ移行前におけるシーケンス書込ブロック管理テーブル77、BlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76の内容を例示している。また図19は、図17に示すデータ移行後のシーケンス書込ブロック管理テーブル77、BlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76の内容を例示している。上述したようにシーケンス書込ブロック管理テーブル77から1つの論理ブロックアドレスaiを選択した後は、BlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76を参照して、図17に示すように、シーケンス書込ブロック管理テーブル77で論理ブロックアドレスaiに割り当てられた物理ブロックアドレスこの場合はxiの未書込物理ページ51aに対し、他の物理ブロックに分散している当該論理ブロックアドレスaiの論理ページデータを寄せ集めて追記する。そして、このようなガベージコレクションに係る物理レベルでのデータ移行処理を実行した後は、図19に示すように各管理情報を更新する。具体的に、シーケンス書込ブロック管理テーブル77については、論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値、及び最終書込論理ページアドレスの値を全て無効な値に更新する。また、BlockLevel管理テーブル70については、論理ブロックアドレスaiに割り当てられている物理ブロックアドレスをxiに更新する。さらに、PageLevel管理テーブル75については、論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値を全て無効な値に更新する。また、論理ブロックアドレスaiに使用されていたPageLevelマップ76の物理ブロックアドレス、物理ページアドレスの値についても全て無効な値に更新する。このようなガベージコレクションにより、選択した論理ブロックアドレスaiに割り当てられていたアドレスxiの物理ブロックについてはブロックレベル管理下に新たに置かれるものとなって、シーケンス書込ブロック管理テーブル77には、使用可能な物理ブロックの空きを1つ増やすことができる。なお、図17及び図18に示した例のように、論理ブロックaiの旧データが或る物理ブロック図の例では物理ブロックアドレスb0に書き込まれていてこれがBlockLevel管理されていたという場合には、シーケンス書込ブロックのガベージコレクションの実行に伴い、当該物理ブロックアドレスb0の物理ブロックは消去可能なものとして扱われるべきものとなる。このため、図17、図18に示す例の場合、上記のシーケンス書込ブロックのガベージコレクションの際には、併せて、当該物理ブロックアドレスb0を無効データブロック管理テーブル78に登録する処理も実行することになる。一方、上記2の場合におけるシーケンス書込ブロックのガベージコレクションとしては、先ず、シーケンス書込ブロック管理テーブル77から1つの論理ブロックアドレスaiを選択するという点は1の場合と共通となる。上記2の場合、このように論理ブロックアドレスaiを選択した後は、シーケンス書込ブロック管理テーブル77において当該論理ブロックアドレスaiに割り当てられている物理ブロックxiの未書込物理ページ51bに対し、例えば初期値などのダミーデータを書き込んでブロック全体を書込済みとする。その上で、シーケンス書込ブロック管理テーブル77において、論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値、最終書込論理ページアドレスの値を全て無効な値に更新し、またBlockLevel管理テーブル70において、論理ブロックアドレスaiと、さらにこれに対応づけて物理ブロックアドレスxiを新たに書き込むことで、当該物理ブロックxiが新たにブロックレベル管理下に置かれるようにする。これにより、上記2の場合に対応してシーケンス書込ブロック管理テーブル77に新たな空きブロックを生成することができる。ここで、上記説明からも理解されるように、シーケンス書込ブロックのガベージコレクションの主旨は、シーケンス書込ブロック管理テーブル77から選択した或るシーケンス書込管理ブロック50をBlockLevel管理下に新たに置くことによって、シーケンス書込ブロック管理テーブル77に空きを確保する点にある。説明を図15に戻す。図15において、ステップS207によるシーケンス書込ブロック77への新規登録処理を実行した後は、ステップS208において、シーケンス書込処理を実行する。すなわち、ステップS207で新規登録した物理ブロックに対し、アドレス順に書込を行うものである。図20Aに、この場合のシーケンス書込の概念図を示す。このように本例のシーケンス書込では、登録した物理ブロック図中ではアドレスbjとしているに、ホスト装置5から受信したデータを、物理ページアドレス0,物理セクタアドレス0から順に書き込む。このとき、書込の単位は、論理ページサイズである。図15において、ステップS208のシーケンス書込処理の実行後は、ステップS213において、最終書込物理ページアドレスをシーケンス書込ブロック管理テーブル77に登録する。すなわち、シーケンス書込ブロック管理テーブル77に登録された論理ブロックアドレスのうち、ステップS207でシーケンス書込を実行した論理ブロックアドレスに対応づけられている最終書込論理ページアドレスの値として、最終書込を実行した論理ページアドレスの値を書き込むものである。図20Bは、ステップS213による登録処理後のシーケンス書込ブロック管理テーブル77の内容を例示している。例えば、論理ブロックアドレスajのデータについて物理ブロックアドレスbjのブロックに対し論理ページアドレスPkまでのシーケンス書込が実行されたとすると、その場合のシーケンス書込ブロック管理テーブル77においては、図のように、論理ブロックアドレスaj及び物理ブロックアドレスbjに対応づけられる最終書込論理ページアドレスとして、論理ページアドレスPkが書き込まれる。図15において、ステップS213による登録処理の実行後は、論理ブロック内書込処理S103は終了となる。続いて、先のステップS202の判別処理において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するとして肯定結果が得られた場合、すなわち、シーケンス書込途中である場合に対応して実行されるべき処理について説明する。図15において、ステップS202の判別処理で肯定結果が得られた場合は、ステップS209に処理を進める。ステップS209では、書込開始論理ページアドレスがシーケンス論理ページアドレスに連続であるか否かを判別する。すなわち、書込開始論理ページアドレスが、シーケンス書込ブロック管理テーブル77で管理されている、当該論理ブロック内書込処理で対象としている論理ブロックアドレスについての最終書込論理ページアドレスに連続であり、かつ書込開始論理セクタアドレスが0であるか否かを判別する。例えば、図20Bで示すシーケンス書込ブロック管理テーブル77の内容を用いて説明すると、この場合、書込を実行している論理ブロックアドレスajについて、書込開始論理ページアドレスの値がであってかつ論理ページ内オフセットが0であれば、書込開始論理ページアドレスがシーケンス論理ページアドレスに連続であるとの判別結果が得られるものである。ステップS209において、書込開始論理ページアドレスがシーケンス論理ページアドレスに連続ではないとして否定結果が得られた場合は、ステップS215に進んでシーケンス書込終了データ整合処理を実行した後、図21に示すページレベル書込のための処理これについては後述するに移行する。ここで、ステップS215のシーケンス書込終了データ整合処理は、シーケンス書込ブロック管理テーブル77で管理されていた、当該論理ブロック内書込処理で対象とされている論理ブロックとしてのシーケンス書込途中のブロックについてガベージコレクションを実行することにより、当該論理ブロックのデータをBlockLevel管理に昇格させてシーケンス書込を終了させる処理となる。つまり、図21に示すページレベル書込への移行前に、データの整合性を確保するための処理といえる。ステップS215のシーケンス書込終了データ整合処理の具体的な処理内容としては、当該論理ブロック内書込処理で対象とされている論理ブロック仮にTiとおくの既記録データが、3他のブロックにも分散して記録されている場合つまり論理ブロックTiの既記録データとしてシーケンス書込ブロック管理テーブル77の管理下のデータのみでなくPageLevel管理下やBlockLevel管理下のデータが存在している場合4他のブロックには一切存在していない場合論理ブロックTiの既記録データがシーケンス書込ブロック管理テーブル77の管理下のデータのみである場合で異なる処理を実行することになる。ここで、上記3の場合、論理ブロックTiを論理ブロックaiと置き換えて、先の図17~図19を参照して説明した1の場合に対応した処理と同様の処理を行って、論理ブロックTiのデータをBlockLevel管理に昇格させる。一方、上記4の場合には、同様に論理ブロックTiを論理ブロックaiと置き換えて、先の2の場合と同様の処理を実行して論理ブロックTiのデータをBlockLevel管理に昇格させる。一方、ステップS209において、書込開始論理ページアドレスがシーケンス論理ページアドレスに連続であるとの肯定結果が得られた場合は、ステップS210に進み、書込サイズが論理ページの倍数であるか否かの判別を行う。ここで、NANDフラッシュメモリにおいて、データの読み書きの単位はページサイズ単位であるため、書込サイズがページサイズの倍数でない場合つまりページ未満のサイズ又はページサイズ未満の端数が出るサイズの場合、そのデータはシーケンス書込に適さない。このため、ステップS210において、書込サイズが論理ページの倍数でないとして否定結果が得られた場合は、上述したステップS215に進んでシーケンス書込終了データ整合処理を実行した後、図21に示すページレベル書込のための処理に移行する。一方ステップS210において、書込サイズが論理ページの倍数であるとして肯定結果が得られた場合は、ステップS211に進み、シーケンス書込中の物理ブロックへデータ追記を行う。すなわち、シーケンス書込ブロック管理テーブル77から書込が実行されている論理ブロックに割り当てられている物理ブロックアドレスと最終書込論理ページアドレスの値を取得し、取得したアドレスの物理ブロックにおける未書込物理ページのうち先頭のページから順にデータの書込を行う。例えば図20Bのシーケンス書込ブロック管理テーブル77の内容を用いて説明すると、この場合、書込開始論理ページアドレスはpk1であり、当該論理ページアドレスpk1に対応する物理ページから順に、指定されていたサイズのデータの書込を行う。ステップS211によるデータ追記処理の実行後は、ステップS212において、最終物理ページに書込を実行したか否かの判別を行う。すなわち、書込が実行されている論理ブロックに割り当てられたシーケンス書込ブロック50内の全ての物理ページにデータが書き込まれたか否かの判別が行われることに相当する。ステップS212において、最終物理ページへの書込ではないとして否定結果が得られた場合は、先に説明したステップS213に処理を進めて、最終書込物理ページアドレスをシーケンス書込ブロック管理テーブル77に登録する。一方ステップS212において、最終物理ページへの書込であったとして肯定結果が得られた場合は、ステップS214に進み、ブロック登録処理を実行する。すなわち、全ページの書込が完了したブロックを、シーケンス書込管理下からブロックレベル管理下に新たに置くための処理である。具体的に、全ページの書込が完了した論理ブロックつまり当該論理ブロック内書込処理で対象としている論理ブロックのアドレスをai、シーケンス書込ブロック管理テーブル77で当該論理ブロックaiに割り当てられている物理ブロックのアドレスをxiとおくと、ステップS214の登録処理では、シーケンス書込ブロック管理テーブル77における論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値、及び最終書込論理ページアドレスの値を全て無効な値に更新すると共に、BlockLevel管理テーブル70において、論理ブロックアドレスaiと、さらにこれに対応づけて物理ブロックアドレスxiを新たに書き込む処理を実行することになる。ここで、当該ステップS214のブロック登録処理は、5当該論理ブロック内書込処理で対象としている論理ブロックについて、その途中までのデータが書き込まれていた状態から、今回新規にその続き部分を追記した場合には、上記により説明した登録処理のみを実行すればよい。但し、6今回の追記としての物理書込が、論理レベルでの上書きに伴うものであった場合には、上記の登録処理と併せて、論理上書きの対象となった旧データが消去されたものとして扱われるようにするための処理も実行することになる。具体的に、当該論理ブロック内書込処理で対象としている論理ブロックのアドレスをai、シーケンス書込ブロック管理テーブル77で当該論理ブロックaiに割り当てられている物理ブロックのアドレスをxiとおくと、PageLevel管理テーブル75おいて論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値を全て無効な値に更新すると共に、論理ブロックアドレスaiに使用されていたPageLevelマップ76の物理ブロックアドレス、物理ページアドレスの値を全て無効な値に更新するという処理も併せて行う。ステップS214の登録処理の実行後は、論理ブロック内書込処理S103は終了となる。続いて、図21により、ページレベル書込のための処理について説明する。図21において、先ずステップS401では、PageLevel管理テーブル75に論理ブロックが存在するか否かを判別する。すなわち、PageLevel管理テーブル75に当該論理ブロック内書込処理で対象としている論理ブロックアドレスが存在するか否かを判別するものである。ステップS401において、論理ブロックがPageLevel管理テーブル75に存在するとして肯定結果が得られた場合は、図示するようにステップS406に進み、PageLevel管理ブロック40への書込を実行する。すなわち、PageLevel管理テーブル75において当該論理ブロック内書込処理で対象としている論理ブロックアドレスに割り当てられているPageLevel管理ブロック40に対して、ホスト装置5側から受信したデータのうち書込可能なサイズのデータを書き込むものである。一方ステップS401において、論理ブロックがPageLevel管理テーブル75に存在しないとの否定結果が得られた場合は、ステップS402に進み、PageLevel管理テーブル75に空きがあるか否かを判別する。具体的には、PageLevel管理テーブル75に登録されている論理ブロックの数が、前述のd個に達していないか否かを判別する。ステップS402において、PageLevel管理テーブル75に空きがあるとして肯定結果が得られた場合は、ステップS403に進み、PageLevel管理テーブル75で管理する物理ブロックがf個より少ないか否かを判別する。すなわち、PageLevel管理テーブル75で現在管理されているPageLevel管理ブロック40としての物理ブロックの数が、その上限値=fに達していない否かを判別するものである。このステップS403において、PageLevel管理テーブル75で管理する物理ブロックがf個より少なくない上限値fに達しているとの否定結果が得られた場合、及び、上記ステップS402においてPageLevel管理テーブル75に空きがないとの否定結果が得られた場合は、共にステップS404に進み、PageLevel管理ブロックのガベージコレクションを実行する。そしてその後、ステップS405において、PageLevel管理テーブル75に新規登録を行う。すなわち、当該論理ブロック内書込処理で対象としている論理ブロックアドレスをPageLevel管理テーブル75に新たに登録して、当該論理ブロックアドレスに割り当てるPageLevel管理ブロック40物理ブロックを新たに確保するものである。また、上記ステップS403において、PageLevel管理テーブル75で管理可能な物理ブロックがf個より少ない上限値fに達していないとの肯定結果が得られた場合には、ステップS404のガベージコレクションはパスして、上記ステップS405の新規登録処理を実行することになる。ここで、ステップS404のPageLevel管理ブロックのガベージコレクションでの処理の概要を図22~図24を参照して説明する。図22は、PageLevel管理ブロックのガベージコレクションによる物理レベルでのデータの移行の様子の例を模式的に示し、図23は、図22に示すデータ移行前におけるBlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76の内容を例示している。また図24は、図22に示すデータ移行後のBlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76の内容を例示している。先ず、PageLevel管理ブロックのガベージコレクションでは、PageLevel管理テーブル75で管理される論理ブロックアドレスのうちから1つの論理ブロックアドレスを選択すると共に、未書込物理ブロックのうち1つの物理ブロックアドレスを取得する。この場合の例では、論理ブロックアドレスとしては、図23における論理ブロックアドレスaiが選択されたものとする。また、選択した未書込物理ブロックの物理ブロックアドレスはxiとおく。このように論理ブロックアドレスai及び未書込物理ブロックアドレスxiを選択した後は、BlockLevel管理テーブル70、PageLevel管理テーブル75、PageLevelマップ76を参照して、図22に示すように、物理ブロックアドレスxiの未書込物理ページに対し、他の物理ブロックに分散している論理ブロックアドレスaiの論理ページデータを寄せ集めて書き込む。このような物理レベルでのデータ移行処理を実行した後は、図24に示すような各管理情報の更新を行う。具体的に、BlockLevel管理テーブル70については、論理ブロックアドレスaiに割り当てられている物理ブロックアドレスをxiに更新する。つまりこれにより、論理ブロックaiについては、新たにブロックレベル管理下に置かれるものとなる。その上で、PageLevel管理テーブル75については、論理ブロックアドレスaiが割り当てられていた論理ブロックアドレスの値、物理ブロックアドレスの値を全て無効な値に更新する。また、論理ブロックアドレスaiに使用されていたPageLevelマップ76の物理ブロックアドレス、物理ページアドレスの値についても全て無効な値に更新する。これらの処理により、論理ブロックaiの分散していた旧ページデータが無効化されると共に、PageLevel管理テーブル75上に新たな空きブロックが確保されるものとなる。なお、図22及び図23に示される例のように、論理ブロックaiの旧データが或る物理ブロック図の例では物理ブロックアドレスb0に書き込まれていてこれがBlockLevel管理されていたという場合には、PageLevel管理ブロックのガベージコレクションの実行に伴い、当該物理ブロックアドレスb0の物理ブロックは消去可能なものとして扱われるべきものとなる。このため、図22、図23に示す例の場合、上記のPageLevel管理ブロックのガベージコレクションの際には、併せて、当該物理ブロックアドレスb0を無効データブロック管理テーブル78に登録する処理も実行することになる。説明を図21に戻す。ステップS404によるガベージコレクションの実行後は、前述したステップS405のPageLevel管理テーブル75への新規登録処理を実行することになる。確認のため述べておくと、当該ステップS405の登録処理は、未書込の物理ブロックのうち1つの物理ブロックアドレスを取得し、当該取得した物理ページアドレスの値を、当該論理ブロック内書込処理で対象としている論理ブロックアドレスの値と対応づけてPageLevel管理テーブル75に新たに書き込む処理となる。ステップS404の登録処理の実行後は、前述したステップS406に進み、PageLevel管理ブロック40への書込を実行する。そして、ステップS406の書込の実行後は、ステップS407において、PageLevelマップ76の更新を行う。すなわち、ホスト装置5側から受信して書込を行ったデータに対応するPageLevelマップ76の値を更新するものである。図25に、PageLevel管理ブロック40への書込S406として行われるデータ書込の例と、PageLevelマップ76の更新S407実行後のPageLevelマップ76の例とを示す。例えばステップS406のPageLevel管理ブロック40への書込では、図のように物理ブロックアドレスxjの物理ページアドレスpiとpi1に対して論理ページアドレスyiとyi1のデータをそれぞれ書き込んだとする。このときのPageLevelマップ76は、図のように論理ページアドレスyi、yi1に対応する論理ブロックアドレスの値と物理ページアドレスの値とが更新される。図21に戻り、ステップS407のマップ更新処理の実行後は、ステップS408において、全てのデータ書込が終了したか否かを判別する。すなわち、当該論理ブロック内書込処理で対象としている論理ブロックアドレス内で、ホスト装置5側から指定されたサイズのデータを全て書き込んだか否か判別するものである。ステップS408において、全てのデータの書込が未だ終了していないとの否定結果が得られた場合は、先のステップS403に戻り、再度、PageLevel管理テーブル75で管理する物理ブロックがf個より少ないか否かを判別する。一方ステップS408において、全てのデータの書込が終了したとして肯定結果が得られた場合は、論理ブロック内書込処理S103は終了となる。以上で説明したように、本実施の形態では、BlockLevel管理による記録を行うことができないブロックサイズ未満のデータについて、シーケンス書込を可能としている。BlockLevel管理とPageLevel管理の2種の管理でデータ書込を行うようにされている従来のフラッシュメモリ装置では、書き込むべきデータがブロックサイズと一致する場合はブロックレベル管理による記録を行い、ブロックサイズ未満のデータについてはページレベル管理による書込を行うようにされている。このため、例えばブロックサイズ未満のデータについて、それらが論理アドレス的に連続している個々のデータであったとしても、それらのデータについては必ずページレベル管理による書込が行われていた。これに対し、本実施の形態によれば、ブロックサイズ未満のデータについてシーケンス書込を行うことができる。つまり、例えば上記のようなケースにおいて、ページレベル管理下での書込のように個々のデータが異なる物理ブロックに分散して記録されてしまうことを効果的に防止できる。つまり、シーケンス書込を可能とした本実施の形態によれば、ブロックサイズ未満のデータについてページレベル管理による書込しか選択肢にない従来と比較して、ガベージコレクションの発生頻度を効果的に減らすことができるものとなる。この結果、従来よりも記録速度の面でパフォーマンス向上が図られる。また、前述もしたように従来では、ホスト装置5側でブロックサイズよりも小さなサイズのバッファメモリしか備えられていない場合には、ホスト装置5側はブロックサイズ未満のデータしか送出できないこの場合、例えば図13のような送出形態となる。従ってこの場合も、データが論理アドレス的に連続していたとしても、従来のフラッシュメモリ装置ではページレベル管理による書込が選択されてしまうことになる。これに対し、シーケンス書込を可能とした本実施の形態によれば、ホスト装置5側からブロックサイズ未満のデータしか送出できない場合であっても、それらのデータをシーケンス書込することができ、結果、ページレベル管理による記録が行われる場合とは異なり、ガベージコレクションの発生頻度を低下させることができ、高速な記録を実現することができる。すなわち、データ転送用のバッファメモリサイズの小さなホスト装置5からの書込が行われる場合にも、高速なデータ記録を実現できる。<2.第2の実施の形態>続いて、本技術に係る第2の実施の形態について説明する。前述のように第2の実施の形態は、ホスト装置5がコマンドでフラッシュメモリ装置1側に書込手法の切り替えを明示的に通知するものであって、フラッシュメモリ装置1は、当該通知に応じて、データ書込手法を変更するものである。なお、第2の実施の形態では、上記のようにホスト装置5がシーケンス書込の指示を行う他、フラッシュメモリ装置1で実行されるメモリ制御手法に係る処理の内容が第1の実施の形態の場合と異なるものとなる。第2の実施の形態では、主に図1に示したメモリコントローラ3により実行されるべきプログラムが第1の実施の形態でのプログラムから変更されたものであり、フラッシュメモリ装置1の内部構成自体は図1に示したものと同様となる。図26は、第2の実施の形態の場合におけるホスト装置5が、フラッシュメモリ装置1にシーケンス書込を実行させる場合において行う書込指示の例を示している。この場合のホスト装置5は、フラッシュメモリ装置1にシーケンス書込を実行させるとしたときに、図中時点t1と示すようにシーケンス書込開始コマンドをフラッシュメモリ装置1側に対して送出する。このシーケンス書込開始コマンドにおいては、図のようにシーケンス書込の対象とするデータの書込開始アドレスとしての論理アドレスと、シーケンス書込を実行させたいデータのサイズ総サイズとを併せて指示する。この場合、書込開始の論理アドレスは図のように0である。ここで、この図26においても、先の図13の場合と同様に、各Writeコマンドでは書込データサイズとしてそれぞれ論理ブロックサイズ/4のデータサイズが指示され、トータルで1つの論理ブロックサイズ分の書込指示が為される場合を例示している。このため、この場合における時点t1のシーケンス書込開始コマンドで指示されるデータサイズは、図のように論理ブロックサイズとなっている。時点t1でのシーケンス書込開始コマンドの送出後は、図13の場合と同様に、ホスト装置5は、論理アドレスと書込サイズとを指示したWriteコマンドと書込データの送出とをフラッシュメモリ装置1に対し順次行う。この場合の例では、時点t9でのデータ送出が、フラッシュメモリ装置1側にシーケンス書込させるべきデータの最終送出となる。最終書込データの送出後、この場合のホスト装置5は、シーケンス書込終了コマンドを送出する時点t10。このシーケンス書込終了コマンドとしても、先のシーケンス書込開始コマンドと同様、論理アドレスと書込データのサイズ総サイズを併せて指定したものとなる。ここで、この場合のホスト装置5は、シーケンス書込を実行させたい場合にのみ、その旨を表す書込開始コマンドを送出するものであって、他のブロックレベル書込、ページレベル書込については、特段、その旨を表す書込開始コマンドの送出は行わず、通常通り論理アドレスと書込データサイズとを指定するWriteコマンドの送出を行うものとされる。続いて、この場合のフラッシュメモリ装置1側が実行する処理の概要について説明する。第2の実施の形態のフラッシュメモリ装置1では、ホスト装置5側からのシーケンス書込開始コマンドに対応する処理として、図27に示す処理が実行されることになる。また、ホスト装置5側からのシーケンス書込終了コマンドに対応する処理として、図28に示す処理が実行される。さらに第2の実施の形態のフラッシュメモリ装置1においても、Writeコマンドに対応する処理として、先の図14に示した処理を実行することになる。但し、第2の実施の形態の場合、ステップS103の論理ブロック内書込処理として、図29に示す処理が実行される点は第1の実施の形態の場合と異なる。図27、図28、及び図14に示す処理は、それぞれ並行処理としてメモリコントローラ3により実行される。例えば、ホスト装置5側からシーケンス書込開始コマンドが受信された場合には、図27のステップS501で肯定結果が得られ、ホスト装置5側からのシーケンス書込開始コマンドで指定された論理ブロックアドレスについて既にシーケンス書込管理ブロック50が割り当て済みであった場合を除き、新たなシーケンス書込管理ブロック50を確保するための処理が実行される。そして、上記シーケンス書込開始コマンドの受信後に、ホスト装置5側からWriteコマンドが受信された場合は、図14に示した論理ブロック内書込処理S103を伴う一連の処理が実行されることになる。上述のように第2の実施の形態の場合、論理ブロック内書込処理S103は、図29に示す処理が実行されるものである。また、ホスト装置5側からシーケンス書込終了コマンドが受信された場合には、図28のステップS601で肯定結果が得られ、シーケンス書込により対象ブロック内の最終物理ページまで書込が行われたか否かに応じた処理が実行される。また、ホスト装置5側からシーケンス書込開始コマンドを伴わずにWriteコマンドが発行された場合は、図28に示す処理により、ブロックレベル書込を行うべきか、或いはページレベル書込を行うべきかが判断されることになる。以下、第2の実施の形態のフラッシュメモリ装置1が実行する図27~図29の処理について具体的に説明する。先ず、図27に示す、シーケンス書込開始コマンドに対応する処理について説明する。図27において、ステップS501においては、ホスト装置5側からのシーケンス書込開始コマンドが受信されるまで待機する。そして、シーケンス書込開始コマンドが受信された場合には、ステップS502に処理を進める。ステップS502では、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するか否かを判別する。この処理の内容は、先の図15で説明したステップS202の処理内容と同様となる。ステップS502において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するとして肯定結果が得られた場合は、この図に示す処理は終了となる。一方ステップS502において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在しないとして否定結果が得られた場合は、ステップS503において、シーケンス書込ブロック管理テーブル77に空きがあるか否かを判別する。ステップS503において、シーケンス書込ブロック管理テーブル77に空きがあるとして肯定結果が得られた場合は、ステップS505に進んでシーケンス書込ブロック管理テーブル77に新規登録を行う。すなわち、ステップS501で受信したシーケンス書込開始コマンドが指定している論理ブロックアドレスをシーケンス書込ブロック管理テーブル77に登録して、当該論理ブロックアドレスにシーケンス書込ブロック50が割り当てられるようにするものである。一方ステップS503において、シーケンス書込ブロック管理テーブル77に空きがないとして否定結果が得られた場合は、ステップS504に進み、シーケンス書込ブロックのガベージコレクションを実行する。なお、当該ステップS504のガベージコレクション処理の内容は、先に説明したステップS206のガベージコレクション処理の場合と同様となるので改めての説明は省略する。ステップS504のガベージコレクションの実行後は、ステップS505による新規登録処理を実行する。このステップS505の新規登録処理の実行後は、この図に示すシーケンス書込開始コマンド対応処理は終了となる。図28により、シーケンス書込終了コマンドに対応する処理について説明する。図28において、ステップS601では、ホスト装置5側からのシーケンス書込終了コマンドが受信されるまで待機する。シーケンス書込終了コマンドが受信された場合には、ステップS602に処理を進める。ステップS602では、最終物理ページに書込を実行したか否かを判別する。すなわち、先のステップS212の処理と同様に、書込が実行されている論理ブロックに割り当てられたシーケンス書込ブロック50内の全ての物理ページにデータが書き込まれたか否かが判別されるものである。ステップS602において、最終物理ページに書込を実行したとして肯定結果が得られた場合は、ステップS603に進み、ブロック登録処理を実行する。つまりこれにより、最終物理ページまで書込の行われたシーケンス書込ブロック50は、BlockLevel管理下に新たに置かれるものとなる。なお、ステップS603のブロック登録処理は、先のステップS214のブロック登録処理と同様であり、従って論理レベルでの上書きが発生している場合には上書きの対象となった旧データが消去されたものとして扱われるようにするための処理も実行されることになる。一方ステップS602において、最終物理ページに書込を実行してはいないとの否定結果が得られた場合は、ステップS604に進み、シーケンス書込ブロックのガベージコレクションを実行する。なお、このステップS604のガベージコレクション処理としても、先のステップS206のガベージコレクション処理と同様の処理となる。なお、最終物理ページへの書込が行われた場合に対応して実行するステップS604の処理としては、上記のようなシーケンス書込ブロックのガベージコレクション処理ではなく、先に説明したステップS213と同様の最終書込物理ページアドレスをシーケンス書込ブロック77に登録の処理を実行することも可能である。但しこの場合、ホスト装置5側からはシーケンス書込終了コマンドが受信されているこの場合、ホスト装置5側でシーケンス書込すべきものとしているデータがそれ以上存在しないとみなせるので、以降において、当該シーケンス書込で使用されたシーケンス書込ブロック50に追記が生じる可能性は低く、従ってシーケンス書込ブロック管理テーブル77に空きを確保する意味では、上記のようなシーケンス書込ブロックのガベージコレクションを実行する方が好ましいと言うことができる。ステップS603のブロック登録処理、又はステップS604のガベージコレクション処理の実行後は、この図に示すシーケンス書込終了コマンド対応処理は終了となる。図29により、第2の実施の形態の場合における論理ブロック内書込処理S103について説明する。図29において、ステップS701では、先のステップS201と同様、書込サイズが物理ブロックサイズに一致するか否かの判別を行う。ステップS701において、書込サイズが物理ブロックサイズに一致するとして肯定結果が得られた場合は、この場合も図16に示すブロックレベル書込のための処理に移行する。一方ステップS701において、書込サイズが物理ブロックサイズに一致しないとの否定結果が得られた場合は、ステップS702において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するか否かを判別する。このステップS702の判別処理は、先のステップS202の判別処理と同様である。ステップS702において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在しないとして否定結果が得られた場合は、図21に示したページレベル書込のための処理に移行する。一方ステップS702において、論理ブロックがシーケンス書込ブロック管理テーブル77に存在するとして肯定結果が得られた場合は、ステップS703に進み、シーケンス書込を行う。ここで、ホスト装置5側からシーケンス書込開始コマンドの受信があった場合には、先の図27の処理に伴い必ず当該論理ブロックについてのシーケンス書込ブロック50が割り当て済みとなっているので、ステップS703においては、その割り当て済みのシーケンス書込ブロック50に対し、シーケンス書込を実行するものとなる。ステップS703のシーケンス書込の実行後は、ステップS704において、最終書込物理ページアドレスをシーケンス書込ブロック77に登録する処理を実行する。当該ステップS703の登録処理の実行後、この場合における論理ブロック内書込処理S103は終了となる。上記により説明した第2の実施の形態においても、フラッシュメモリ装置1においてブロックサイズ未満のデータについてシーケンス書込が可能とされる点は第1の実施の形態と同様となるので、第1の実施の形態と同様、従来との比較で記録速度の高速化が図られる。また、データ転送用のバッファメモリサイズがブロックサイズよりも小さなサイズとされるホスト装置5からの書込が行われる場合にも、高速なデータ記録を実現できるという点も、第1の実施の形態の場合と同様である。<3.変形例>以上、本技術に係る各実施の形態について説明したが、本技術は上記により説明した具体例に限定されるべきものではない。例えばストレージシステムを構成するホスト装置5は、デジタルカメラ装置に限定されるべきものではなく、例えばパーソナルコンピュータなどの他の情報処理装置とすることもできる。また、フラッシュメモリ装置1としては、メモリカードとしてのカード状のメモリ装置に限定されるべきものではなく、例えばSSDSolidStateDriveなど、フラッシュメモリを備えたメモリ装置であればよい。また本技術は、以下の1~15に示す構成とすることも可能である。1フラッシュメモリ部と、上記フラッシュメモリ部のブロックサイズ未満のデータが、上記フラッシュメモリ部にシーケンス書込されるように制御する制御部とを備えるフラッシュメモリ装置2上記制御部は、外部装置から書込指示されたデータのサイズが上記ブロックサイズ未満であるか否かを判別し、その結果に基づき、上記ブロックサイズ未満のデータが上記フラッシュメモリ部にシーケンス書込されるように制御する上記1に記載のフラッシュメモリ装置。3上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記ブロックサイズの1/nnは2以上の自然数以上であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上である場合に、上記シーケンス書込が行われるように制御する上記2に記載のフラッシュメモリ装置。4上記制御部は、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すものであるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上であり、且つ、上記書込開始論理ページアドレス及び上記書込開始論理セクタアドレスが共に先頭アドレスを指すものである場合に、上記シーケンス書込が行われるように制御する上記3に記載のフラッシュメモリ装置。5上記制御部は、シーケンス書込ブロックとして使用中のブロック数が上限値に達しているか否かを判別し、上記シーケンス書込ブロックとして使用中のブロック数が上記上限値に達している場合には、使用中の上記シーケンス書込ブロックのうちから選択したシーケンス書込ブロックについて、シーケンス書込ブロックのガベージコレクションを実行する上記4に記載のフラッシュメモリ装置。6上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて、書込途中のシーケンス書込ブロックが存在するとされる場合には、少なくとも上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであるか否かを判別した結果に基づき、上記書込指示されたデータの上記書込途中のシーケンス書込ブロックへの追記が行われるように制御する上記2に記載のフラッシュメモリ装置。7上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込途中のシーケンス書込ブロックが存在するとされた場合であって、且つ、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであり、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数である場合に、上記書込指示されたデータの上記書込途中のシーケンス書込ブロックへの追記が行われるように制御する上記6に記載のフラッシュメモリ装置。8上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上であり、且つ、上記書込開始論理ページアドレス及び上記書込開始論理セクタアドレスが共に先頭アドレスを指すものであり、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数である場合に、シーケンス書込が行われるように制御する上記4に記載のフラッシュメモリ装置。9上記制御部は、上記書込指示されたデータのサイズが上記フラッシュメモリ部のブロックサイズと一致する場合は、上記書込指示されたデータがブロックレベル管理下で書き込まれるように制御する上記2~8に記載のフラッシュメモリ装置。10上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記ブロックサイズの1/nnは2以上の自然数以上であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ブロックサイズの1/n以上ではないとされた場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する上記2~9に記載のフラッシュメモリ装置。11上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すものであるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータの書込開始論理ページアドレス及び書込開始論理セクタアドレスが共に先頭アドレスを指すとの条件が満たされない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する上記2~10に記載のフラッシュメモリ装置。12上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータのサイズが上記ブロックサイズ未満であり、且つ、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されておらず、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数ではない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する上記2~11に記載のフラッシュメモリ装置。13上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものであるか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて書込途中のシーケンス書込ブロックが存在するとされた場合で、且つ、上記書込指示されたデータの書込開始論理ページアドレスが上記書込途中のシーケンス書込ブロックの最終書込論理ページアドレスに連続するものではないとされた場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する上記2~12に記載のフラッシュメモリ装置。14上記制御部は、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されているか否か、及び、上記書込指示されたデータのサイズが上記フラッシュメモリ部のページサイズの倍数であるか否かをさらに判別し、上記書込指示されたデータの属する論理ブロックアドレス内のデータが過去にシーケンス書込されていて書込途中のシーケンス書込ブロックが存在するとされた場合で、且つ、上記書込指示されたデータのサイズが上記ページサイズの倍数ではない場合は、上記書込指示されたデータがページレベル管理下で書き込まれるように制御する上記2~13記載のフラッシュメモリ装置。15上記制御部は、外部装置からのシーケンス書込指示に応じて、上記フラッシュメモリ部のブロックサイズ未満のデータが上記フラッシュメモリ部にシーケンス書込されるように制御する上記1に記載のフラッシュメモリ装置。"