"第1の数のチャネル群を介してアクセスされるメモリと、前記メモリに前記第1の数のチャネル群を介して並列にアクセスするメモリインタフェースと、第1のブロック群から第2のブロックに有効クラスタ群を移動するコンパクションのために、前記第1のブロック群から前記チャネル別に有効クラスタ群を順次検索する有効クラスタ検索手段と、前記チャネル別に検索された有効クラスタ群のうち、前記第2のブロックに同時に書き込み可能なクラスタの数に対応し、且つ前記第1の数のチャネル群内の第2の数のチャネル群に対応する、前記第2のブロックに移動されるべき有効クラスタ群を並列に読み出すのに用いられるリードコマンド群を生成するリードコマンド生成手段と、前記リードコマンド群を、前記第2の数のチャネル群を介して前記メモリインタフェースに投入するコマンド投入手段と、次に生成されるべきリードコマンド群に対応する前記第2の数のチャネル群を、リードコマンド群投入の状況に基づいて決定する決定手段とを具備することを特徴とするメモリ装置。前記リードコマンド群投入の状況を、前回前記メモリインタフェースに投入されたリードコマンド群の最終リードコマンドに対応する第1のチャネルの位置に基づいて管理するチャネル管理手段を更に具備し、前記決定手段は、前記第1のチャネルの位置に基づいて前記第2の数のチャネル群の先頭の第2のチャネルを決定する請求項1記載のメモリ装置。前記決定手段は、ラウンドロビン方式に基づき、前記第1の数のチャネル群内で前記第1のチャネルの次のチャネルを前記第2のチャネルとして決定し、前記コマンドリスト生成手段は、前記第2チャネルに投入されるべきリードコマンドから順に前記リードコマンド群を生成する請求項2記載のメモリ装置。前記リードコマンド群投入の状況を、前回までの前記チャネル別の進捗に基づいて管理するチャネル管理手段を更に具備し、前記決定手段は、最も進捗が進んでいるチャネルが除外されるように、前記第2の数のチャネル群を決定する請求項1記載のメモリ装置。前記リードコマンド群投入の状況を、前回までの前記チャネル別の進捗に基づいて管理するチャネル管理手段を更に具備し、前記決定手段は、最も進捗が遅れているチャネルが含まれるように、前記第2の数のチャネル群を決定する請求項1または4のいずれか一項に記載のメモリ装置。第1の数のチャネル群を介してアクセスされるメモリと、前記メモリに前記第1の数のチャネル群を介して並列にアクセスするメモリインタフェースとを備えたメモリ装置において、第1のブロック群から第2のブロックに有効クラスタ群を移動するコンパクションのためのリードコマンド群生成方法であって、前記第1のブロック群から前記チャネル別に有効クラスタ群を順次検索し、前記チャネル別に検索された有効クラスタ群のうち、前記第2のブロックに同時に書き込み可能なクラスタの数に対応し、且つ前記第1の数のチャネル群内の第2の数のチャネル群に対応する、前記第2のブロックに移動されるべき有効クラスタ群を並列に読み出すのに用いられるリードコマンド群を生成し、前記リードコマンド群を、前記第2の数のチャネル群を介して前記メモリインタフェースに投入し、次に生成されるべきリードコマンド群に対応する前記第2の数のチャネル群を、リードコマンド群投入の状況に基づいて決定するリードコマンド群生成方法。上記したように、従来技術では、コンパクション処理の高速化のために専用の記憶エリアを必要とする。本発明の目的は、コンパクション用途の記憶エリアを必要とすることなく、コンパクションのためのデータ読み出しを高速化できる、マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法を提供することである。実施形態によれば、メモリ装置は、メモリと、メモリインタフェースと、有効クラスタ検索手段と、リードコマンド生成手段と、コマンド投入手段と、決定手段とを具備する。前記メモリは、第1の数のチャネル群を介してアクセスされる。前記メモリインタフェースは、前記メモリに前記第1の数のチャネル群を介して並列にアクセスする。前記有効クラスタ検索手段は、第1のブロック群から第2のブロックに有効クラスタ群を移動するコンパクションのために、前記第1のブロック群から前記チャネル別に有効クラスタ群を順次検索する。前記リードコマンド生成手段は、前記チャネル別に検索された有効クラスタ群のうち、前記第2のブロックに同時に書き込み可能なクラスタの数に対応し、且つ前記第1の数のチャネル群内の第2の数のチャネル群に対応する、前記第2のブロックに移動されるべき有効クラスタ群を並列に読み出すのに用いられるリードコマンド群を生成する。前記コマンド投入手段は、前記リードコマンド群を、前記第2の数のチャネル群を介して前記メモリインタフェースに投入する。前記決定手段は、次に生成されるべきリードコマンド群に対応する前記第2の数のチャネル群を、リードコマンド群投入の状況に基づいて決定する。以下、実施の形態につき図面を参照して説明する。図1は実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図である。本実施形態において、図1に示すメモリ装置10は、例えばホスト図示せずと接続されている。ホストは、メモリ装置10を当該ホストの記憶装置として利用する。メモリ装置10は、NANDフラッシュメモリ11とNANDコントローラ12とを備えている。本実施形態においてメモリ装置10は、NANDフラッシュメモリ11を利用したソリッドステートドライブSSDであるものとする。NANDフラッシュメモリ11は、ユーザデータを記憶するための記憶媒体である。NANDフラッシュメモリ11は、複数のNANDフラッシュメモリチップを備えており、複数のアクセスコマンドに応じてNANDコントローラ12によって複数のチャネルつまりマルチチャネルを介して並列にアクセス可能なように構成されている。なお、メモリ装置10がSSDである必要はない。また、複数のアクセスコマンドに応じて複数のチャネルを介して並列にアクセス可能であれば、NANDフラッシュメモリ11に代えて、NANDフラッシュメモリ以外のメモリを用いても構わない。このメモリも、NANDフラッシュメモリと同様に、データ消去の単位とデータ書き込みの単位とが異なるものとする。NANDコントローラ12は、ホストからの要求に応じてNANDフラッシュメモリ11にアクセスする。NANDコントローラ12はまた、例えばコンパクション処理のような、ブロック単位でのメモリアクセス処理のために、NANDフラッシュメモリ11にアクセスする。NANDコントローラー12は、NANDインタフェース21と、制御部22と、コンパクション部23と、ブロック管理部24とを備えている。NANDインタフェース21、制御部22、コンパクション部23及びブロック管理部24は、内部バス25を介して相互接続されている。NANDインタフェース21は、NANDフラッシュメモリ11と、制御部22及びコンパクション部23特にコンパクション部23内のコマンド投入部35との間で情報を授受する。本実施形態においてNANDインタフェース21は、16のチャネル0,1,...,15を有しているものとする。チャネル0,1,...,15のチャネル番号は、それぞれ、0,1,...,1510進数表現である。チャネル0,1,...,15の各々は、2つのプレーン0,1に接続されている。プレーン0,1のプレーン番号は、それぞれ0,1である。また、1論理ブロックは64のページ論理ページ0,1,...,63で構成されるものとする。本実施形態では、ライト処理及びリード処理は、いずれも16チャネル並列に実行可能である。特にライト処理は、ページ単位に実行可能である。つまり、チャネルp16進数表現で、p=0,1,...,F10進数表現では、p=0,1,...,15を介してのライト処理では、2プレーン×2クラスタ=4クラスタを同時に書き込むことができる。これに対してリード処理は、16チャネル並列に、クラスタ単位で実行可能である。つまり、チャネルpを介してのリード処理では、1ページあたり4クラスタが、プレーン位置及びクラスタ位置を切り替えることに基づいて、1クラスタずつ4回に分けて実行される。NANDインタフェース21は、エラー訂正符号ECCで訂正不能なエラーが発生した場合に、エラー箇所をチャネル間のデータに基づいて訂正する。この訂正を、チャネル間誤り訂正ICP訂正と呼ぶ。本実施形態では、論理ブロック内の論理ページ毎に、対応するページのICP訂正を可能とするために、16チャネルのうちの1チャネルを、ICP訂正のための誤り訂正データの格納に割り当てている。この誤り訂正データの格納に割り当てられるチャネルは、論理ページ毎に所定の順序で変更されるものとするが、特定のチャネルであっても構わない。ICP訂正のための誤り訂正データは、他の15チャネルに格納される対応する論理ページのデータに基づいて生成される、例えばパリティデータチャネル間パリティデータである。NANDインタフェース21は、このパリティデータを用いて、ECC訂正不能な有効クラスタを含む論理ページのエラー箇所を修復するためのICP訂正を行う。制御部22は、内部バス25に接続された、コンパクション部23及びブロック管理部24のようなモジュール群を制御する。コンパクション部23は、複数のブロック論理ブロックの有効なデータより詳細には、有効なクラスタ群を集めて、別のブロックに書き直すコンパクションを実行する。コンパクション部23は、ブロックリスト管理部31と、有効クラスタ検索部32と、コマンドリスト生成部33と、チャネル管理部34と、コマンド投入部35と、フリーブロックリスト管理部36とから構成される。ブロックリスト管理部31は、コンパクションの候補となるブロックの群及びコンパクション処理中のブロックの群を各々リスト構造にて管理する。ブロックリスト管理部31が、コンパクションの目的種類毎に、コンパクション候補ブロック群のリストコンパクション候補ブロックリストを保持してもよい。本実施形態では、コンパクションの目的として3種類を想定している。この3種類は、通常のコンパクション第1のコンパクションと、エラー修復を目的とするコンパクション第2のコンパクションと、ウェアレベリングを目的とするコンパクション第3のコンパクションである。ブロックリスト管理部31は、第1のコンパクションのために、未使用の待機状態にあるブロックつまりフリーブロックの数を確認する。フリーブロックは、ブロック管理部24によって管理されている。フリーブロックの数が規定数に満たないならば、ブロックリスト管理部31はフリーブロック枯渇状態を回避すべく、第1のコンパクションを開始する。ブロックリスト管理部31はまた、第2のコンパクションのために、定期的に、リード動作を伴うブロック毎の診断を行う。エラービットが規定値を超えて多くなったならば、ブロックリスト管理部31は、対応するブロックのデータを、他のブロックに移動退避する。第2のコンパクションは、パトロールリフレッシュとも呼ばれる。メモリ装置10の寿命は、各ブロックの消去回数及び消去時間間隔に依存する。そこで、メモリ装置10の延命のために、全ブロックの疲弊度を平準化する必要がある。この平準化をウェアレベリングと呼ぶ。このウェアレベリング目的のコンパクションつまり第3のコンパクションは、図示せぬウェアレベリング部にて、ウェアレベリングが必要と判定された場合に開始される。フリーブロックリスト管理部36は、コンパクションのための全有効クラスタの移動移動要求の実行が完了したブロックの群つまり、フリーブロックの候補となるブロックの群を、リスト構造フリーブロックリストにて管理する。図2は、本実施形態においてブロックリスト管理部31及びコマンドリスト生成部33によって保持管理されるブロックリスト群の構成の一例を示す。図2において、コンパクション候補ブロックリスト201は、第1のコンパクション目的に適用可能なコンパクション候補ブロックBlk群のリストである。コンパクション候補ブロックリスト202は、第2のコンパクション目的に適用可能なコンパクション候補ブロック群のリストである。コンパクション候補ブロックリスト203は、第3のコンパクション目的に適用可能なコンパクション候補ブロック群のリストである。コンパクション処理ブロックリスト204は、コンパクション処理中のブロック群のリストである。ブロックリスト201~204は、ブロックリスト管理部31より詳細には、DRAMのようなメモリ内の、ブロックリスト管理部31に割り当てられている領域に保持される。フリーブロック候補リスト205は、上述のフリーブロックの候補となるブロックフリーブロック候補の群のリストである。ブロックリスト管理部31は、3種類のコンパクション目的に対応したコンパクション候補ブロックリスト201~203に、当該目的に基づいて優先順位を付す。この優先順位に基づいて、ブロックリスト管理部31は、コンパクション処理ブロックリスト204を生成する。図2のコンパクション処理ブロックリスト204の例では、1度にコンパクションの対象とするブロック数を3つとした場合を示している。コンパクションが進んで現在処理中のブロック群が減少すると、ブロックリスト管理部31は、上述の優先順位に従って、随時コンパクション候補ブロックリスト201~203のいずれかからコンパクション処理ブロックリスト204に、コンパクションの対象とするブロックを図2において矢印206で示すように補充移動する。フリーブロックリスト管理部36は、コンパクション処理ブロックリスト204で管理されるブロック群のうち全有効クラスタの移動が完了したブロックを、フリーブロック候補として図2において矢印206で示すようにフリーブロック候補リスト205に移動する。その後、フリーブロック候補リスト205に移動されたブロックのフリーブロック化を実施すべく、フリーブロックリスト管理部36はその旨をブロック管理部24へ通知する。なお本実施形態において、上述のコンパクション候補ブロックリスト201~203、コンパクション処理ブロックリスト204及びフリーブロック候補リスト205で直接管理されるのは、ブロックを識別するためのブロックIDである。図3は、同実施形態において適用される論理ブロックの構成の一例を示す。本実施形態で適用される論理ブロックは、図3に示すように、ページ0~63の64ページ論理ページから構成される。各ページは、64クラスタから構成される。つまり、1論理ブロックは、4,09664×64のクラスタC0000,C0001,C0002,C0003,C1000,C1001,C1002,C1003,...,CF3F0,CF3F1,CF3F2,CF3F3から構成される。論理ブロック内の1つのクラスタをCpqrsのように表記する。ここで、p0,1,...,Fは、クラスタCpqrsが属するチャネルのチャネル番号を示す1桁の16進数であり、qr00,01,...,3Fは、クラスタCpqrsが属するページのページ番号を示す2桁の16進数である。s0,1,2,3は、クラスタCpqrsが属するチャネル内の、それぞれプレーン位置のプレーン番号及びクラスタ位置のクラスタ番号の組み合わせプレーン-クラスタ番号を示す1桁の16進数である。s=0はプレーン番号0とクラスタ番号0との組み合わせを、s=1はプレーン番号0とクラスタ番号1との組み合わせを、それぞれ示す。s=2はプレーン番号1とクラスタ番号0との組み合わせを、s=3はプレーン番号1とクラスタ番号1との組み合わせを、それぞれ示す。論理ブロック内のクラスタCpqrsは、チャネル番号p、ページ番号qr及びプレーン-クラスタ番号sの組み合わせによって特定される。クラスタCpqrsは、チャネル番号pのチャネル内の、プレーン-クラスタ番号sによって示されるプレーン位置の、プレーン-クラスタ番号sによって示されるクラスタ位置に書き込まれている。本実施形態では、1論理ブロックに32の物理ブロックが割り当てられる。32の物理ブロックは、16のチャネル0,1,...,15のそれぞれプレーン0,1に対応する。各物理ブロックは、1ページ当たり2クラスタから構成される。次に、図1に示すメモリ装置10のNANDコントローラ12内のコンパクション部23によるコンパクション処理の典型的な手順について、図4のフローチャートを参照して説明する。まず、コンパクション部23のコマンドリスト生成部33は開始チャネル設定手段として機能して、後述するコマンドリスト生成の起点となるチャネル以下、開始チャネルと称するのチャネル番号以下、開始コマンドチャネル番号と称するSCNを初期チャネル番号に設定するステップ401。この初期チャネル番号は、例えばコンパクション処理の開始時に、チャネル管理部34によって決定されて、コマンドリスト生成部33に通知されるものとする。ここでは、初期チャネル番号は0であり、チャネル0を示すものとする。有効クラスタ検索部32は、コンパクション処理ブロックリスト204で管理されるブロック論理ブロック群から、コンパクションに用いられる有効クラスタ群をチャネルp別に検索するステップ402。有効クラスタ検索部32は、このチャネルp別に有効クラスタ群を検索するために、チャネルp毎に検索ポインタPpを保持する。図5は、同実施形態において適用される有効クラスタ検索部32によるチャネルp毎の有効クラスタ群の典型的な検索を説明するための図である。図5には、コンパクション処理中の2つのブロック論理ブロック51及び52が示されている。ブロック51及び52は、図2に示すコンパクション処理ブロックリスト204内の3つのブロックのうちの先頭から2つのブロックである。コンパクション処理ブロックリスト204内の最終ブロックは、図5では省略されている。図5において、矢印A0,A1,...,A15は、チャネル0,1,...15における検索ポインタP0,P1,...P15の移動経路を示す。つまり矢印A0,A1,...,A15は、チャネル0,1,...15における有効クラスタ検索の順序を示す。有効クラスタ検索部32は、例えばチャネル0p=0であれば、検索ポインタP0に基づいて、矢印A0で示されるように、クラスタC0000,C0001,C0002,C0003,C0010,C0011...の順に当該クラスタが有効であるかを確認する。本実施形態では、この確認は、制御部22を介して後述するビットマップを間接的に参照することにより行われるものとする。しかし有効クラスタ検索部32が直接ビットマップを参照してもよい。有効クラスタ検索部32は、1つのクラスタについて当該クラスタが有効であるかを確認する都度、検索ポインタP0をチャネル0内の次のクラスタを指すように進める。ステップ402において有効クラスタ検索部32は、無効クラスタをスキップし、有効クラスタが最大4個検索されるまでチャネルp別の検索を続ける。有効クラスタ検索部32は、この検索において、NULL物理ブロック内の対応するクラスタ以下、NULLクラスタと称するもスキップする。NULL物理ブロックとは、NANDフラッシュメモリ11の経時変化により、エラー率が規定値を超えた物理ブロックを指す。有効クラスタ、無効クラスタ及びNULL物理ブロックは、後述するようにブロック管理部24によって管理される。有効クラスタ検索部32によって検索される有効クラスタの数の最大値4は、チャネルpに対応するクラスタ数に一致する。通常は、検索される有効クラスタの数は、この最大値4に一致する。但し、コンパクションに用いられる最後の有効クラスタ群または有効クラスタを検索する場合、検索される有効クラスタの数が4に満たないこともある。本実施形態では前述したように、ブロック論理ブロック内のページ論理ページ毎に、対応するページのICP訂正を可能とするために、16チャネルのうちの1チャネルを、ICP訂正のための誤り訂正データチャネル間パリティデータの格納に割り当てている。このチャネル間パリティデータの格納に割り当てられるチャネルをパリティチャネルと呼ぶ。本実施形態では、パリティチャネルはページ毎に変更される。コンパクション処理では、複数のブロック内の有効クラスタ群を集めて別ブロックに移動する書き直す際に、ページ毎にチャネル間パリティデータが生成される。このため、パリティチャネル内のクラスタは、コンパクション処理では不要である。そこで有効クラスタ検索部32は、上述のチャネルp別の検索において、無効クラスタ及びNULLクラスタだけでなく、パリティチャネル内の対応するクラスタ以下、パリティクラスタと称するもスキップする。ページ毎のパリティチャネルは、ブロック管理部24によって管理される。図5の例では、チャネル0における有効クラスタの検索が最も進んでおり、ブロック52のページ0まで進んでいるものとする。これに対して、例えばチャネル1,15における有効クラスタの検索は、ブロック51のページ63までしか進んでいない。このように、有効クラスタの検索の進捗に、チャネル間でばらつきが生じる。これにより、後述するコンパクションリードコマンド群の生成投入の進捗も、チャネル間でばらつきが生じる。なお、チャネル0における有効クラスタの検索が最も進んでいる理由は、例えばブロック51において、チャネル0に対応するクラスタ群に含まれる有効クラスタ群の数が他のチャネルに比べて少ないためである。但し本実施形態では、後述するようにチャネル間の進捗のばらつきを低減する手法を適用している。ブロック管理部24は、ブロック論理ブロック毎に、当該ブロックに割り当てられている32の物理ブロックを、例えばブロック管理テーブルにより管理する。ブロック管理テーブルは、ブロック管理部24より詳細には、DRAMのようなメモリ内の、ブロック管理部24に割り当てられている領域に保持される。本実施形態では、ブロック管理部24は、物理ブロックがNULL物理ブロックであるかをブロック管理テーブルにより管理する。ブロック管理部24はまた、物理ブロックに対応するページ論理ページ0~63のチャネル毎に、パリティチャネルであるかをブロック管理テーブルにより管理する。ブロック管理部24は更に、ブロックのページ毎に、当該ページを構成する64のクラスタが有効クラスタであるか或いは無効クラスタであるかを、ビットマップビットマップテーブルにより管理する。1ページに対応するビットマップは、64のクラスタに対応する64ビットで構成され、ブロック管理部24より詳細には、DRAMのようなメモリ内の、ブロック管理部24に割り当てられている領域に保持される。本実施形態では、1ブロックにつき、64のビットマップが用いられる。コマンドリスト生成部33は、有効クラスタ検索部32によってチャネル別に検索された有効クラスタ群に基づいて、コンパクションリードのためのリードコマンド以下、コンパクションリードコマンドと称するの群のセットコンパクションリードコマンドセットを生成するステップ403。コンパクションリードコマンドセットは、有効クラスタの移動先つまりコンパクション先のブロック論理ブロックのページ単位に生成される。有効クラスタの移動先のブロックには、フリーブロックリスト管理部36によって管理されているフリーブロックが用いられる。この場合、有効クラスタの移動先として用いられるブロックは、フリーブロックリストから外される。コンパクションリードコマンド群の各々は、1有効クラスタの読み出しを指定する。NANDインタフェース21は、コンパクションリードコマンド群を、1クラスタ単位で最大16チャネル並列に実行可能である。このため、コンパクションリードコマンドセットに含まれるチャネル別のコンパクションリードコマンドの数は最大4である。本実施形態においてNANDインタフェース21は、コンパクションリードコマンド群の実行によりNANDフラッシュメモリ11から読み出したデータに基づいて、自動的にページ論理ページ単位でライトコマンドを生成する。前述したように、1ページは64クラスタから構成される。したがって、本実施形態のように16チャネルのうちの1つを、ページ毎にパリティチャネルに割り当てる場合、NANDインタフェース21は最大60クラスタを1560/4のチャネルを介してNANDフラッシュメモリ11に同時に書き込むことができる。更に、データ移動先のブロックにNULL物理ブロックが存在する場合は、60クラスタからNULL物理ブロック数×4クラスタを減算した値が、同時に書き込み可能な最大クラスタ数Nとなる。Nに対応するチャネルの数はN/4である。そこで、上記ステップ403においてコマンドリスト生成部33は、前記の条件に基づいて算出された最大クラスタ数Nに到達するまで、開始コマンドチャネル番号SCNの示すチャネルここではチャネル0から順に有効クラスタ群を読み出すためのコンパクションリードコマンド群を生成する。コンパクションリードコマンド群の各々は、読み出されるべき移動されるべきクラスタを指定する物理アドレスを含む。このコンパクションリードコマンド群の生成のために、コマンドリスト生成部33は、読み出されるべきクラスタを指定する論理アドレスを物理アドレスに変換する。図6は、本実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す。論理アドレスは、対応するクラスタが属する論理ブロックの論理ブロックIDと、ページ番号、プレーン番号、チャネル番号及びクラスタ番号とから構成される。論理アドレスは、メモリ装置10にNANDフラッシュメモリ11が用いられている本実施形態では、論理NANDクラスタアドレスとも呼ばれる。物理アドレスは、対応するクラスタが属する物理ブロックを識別するための物理ブロックIDと、プレーン番号、ページ番号、クラスタ番号及びセクタ番号とから構成される。この物理アドレスは、物理NANDクラスタアドレスとも呼ばれる。論理アドレスから物理アドレスへの変換には、周知の論理-物理アドレス変換テーブル以下、論物変換テーブルと称するが用いられる。論物変換テーブルは、図示せぬテーブル管理部によって保持管理されている。コマンドリスト生成部33は、生成されたコンパクションリードコマンド群のセット、つまりコンパクションリードコマンドセットコマンドリストをコマンド投入部35に与える。コマンドリスト生成部33はまた、コマンドリスト中の最終コンパクションリードコマンドの指定するクラスタが属するチャネルのチャネル番号以下、最終コマンドチャネル番号と称するを、チャネル管理部34に通知する。コマンド投入部35は、コマンドリスト生成部33から受け取ったコンパクションリードコマンドセットに含まれているコンパクションリードコマンド群を、チャネル番号を異にする例えばN/4個のコンパクションリードコマンド群を単位にNANDインタフェース21に投入するステップ404。NANDインタフェース21に投入されたコンパクションリードコマンド群は、当該NANDインタフェース21内のコマンドキュー図示せずに格納される。NANDインタフェース21は、コマンドキューから格納順に、N/4個のコンパクションリードコマンド群を取り出す。NANDインタフェース21は、取り出されたN/4個のコンパクションリードコマンド群に基づき、それぞれ対応するチャネルを介してNANDフラッシュメモリ11に並列にアクセスする。これによりNANDインタフェース21は、NANDフラッシュメモリ11からN/4個のクラスタ有効クラスタを並列に読み出す。NANDインタフェース21は、以上の動作を4回繰り返すことにより、移動先ブロックの1ページに書き込まれるべきN個のクラスタを取得するステップ405。NANDインタフェース21は、取得したNのクラスタを、移動先ブロックの対応するページにチャネル別、プレーン別、及びクラスタ位置別に書き込むためのライトコマンド以下、コンパクションライトコマンドと称するの群のセットコンパクションライトコマンドセットを生成する。コンパクションライトコマンドセットは、バリティチャネルに対応する4個のクラスタを、プレーン別、及びクラスタ位置別に並列に書き込むための4個のコンパクションライトコマンドも含む。コンパクションライトコマンド群の各々は、クラスタが書き込まれるべき位置を指定する物理アドレスを含む。このコンパクションライトコマンド群の生成のために、NANDインタフェース21は、クラスタが書き込まれるべき位置を指定する論理アドレスを物理アドレスに変換する。NANDインタフェース21は、生成されたコンパクションライトコマンドセットに基づいてNANDフラッシュメモリ11に並列にアクセスすることにより、ステップ405で取得されたN個のクラスタを移動先ブロックに同時に書き込むステップ406。これにより、コンパクションのための1回の処理が終了する。制御部22は、移動先ブロックに移動されるべき有効クラスタが残っているを判定するステップ407。もし、移動されるべき有効クラスタが残っているならばステップ407のYes、制御部22はコマンドリスト生成部33に制御を渡す。するとコマンドリスト生成部33は開始チャネル決定手段として機能する。そしてコマンドリスト生成部33は、次のコマンドリストコンパクションリードコマンドセットの生成のために、コンパクションリードコマンド群投入の状況に基づいて、次の開始コマンドチャネル番号を決定するステップ408。コンパクションリードコマンド群投入の状況は、チャネル別の有効クラスタ群の検索の状況に対応する。本実施形態では、コンパクションリードコマンド群投入の状況は、チャネル管理部34によって管理される。チャネル管理部34は、このコンパクションリードコマンド群投入の状況を、例えばコマンドリスト生成部33によって通知された最終コマンドチャネル番号に基づいて管理する。この最終コマンドチャネル番号は、最も最近に前回NANDインタフェース21に投入されたリードコマンド群の最終コンパクションリードコマンドに対応するチャネルより詳細には、最終コンパクションリードコマンドの指定するクラスタが属するチャネルのチャネル番号である。そこでコマンドリスト生成部33は、次の開始コマンドチャネル番号を決定するために、チャネル管理部34から最終コマンドチャネル番号を受け取る。コマンドリスト生成部33は、受け取った最終コマンドチャネル番号に基づき、次の開始コマンドチャネル番号を決定すると、ステップ409に進む。ステップ409においてコマンドリスト生成部33は、再び開始チャネル設定手段として機能して、開始コマンドチャネル番号SCNを、決定された次の開始コマンドチャネル番号に更新する。本実施形態では、この開始コマンドチャネル番号SCNはラウンドロビン方式に基づいて、次のように決定される。1回目の有効クラスタ検索においてチャネル0~14が処理対象であり、チャネル0から順にチャネル14まで、対応するコンパクションリードコマンドが生成されたものとする。つまり、1回目の処理における最終コマンドチャネル番号が14であったものとする。この場合、コマンドリスト生成部33は、次2回目の開始コマンドチャネル番号SCNとして、1回目の処理における最終コマンドチャネル番号14に後続するチャネル番号15を決定する。これにより上記ステップ409では、開始コマンドチャネル番号SCNが、0初期値から15に更新される。最終コマンドチャネル番号SCNがチャネル0~15の最後のチャネルを示す15である場合、ラウンドロビン方式を適用する本実施形態では、次の開始コマンドチャネル番号SCNは0となる。さて、開始コマンドチャネル番号SCNが15に更新されるとステップ409、有効クラスタ検索部32は、チャネルp別に、検索ポインタPpに基づく有効クラスタ検索を再び開始するステップ402。これによりコマンドリスト生成部33は、2回目の処理ステップ403において、チャネル15、チャネル0、チャネル1...の順に、Nmzx個のコンパクションリードコマンドを生成する。なお、チャネル管理部34が決定手段として機能することにより、当該チャネル管理部34が次の開始コマンドチャネル番号SCNをラウンドロビン方式に基づいて決定してもよい。つまりチャネル管理部34が上記ステップ408を実行してもよい。この場合、チャネル管理部34が、決定された開始コマンドチャネル番号SCNをコマンドリスト生成部33に通知すればよい。また、コマンドリスト生成部33及びチャネル管理部34とは独立の決定手段が、次の開始コマンドチャネル番号SCNを決定してもよい。更に、チャネル管理部34が開始チャネル設定手段として機能して、上記ステップ401を実行してもよい。つまり1回目の処理のために、当該1回目の処理の開始時のような適切なタイミングで、チャネル管理部34が開始コマンドチャネル番SCN号を初期設定してもよい。同様に、チャネル管理部34が上記ステップ409を実行してもよい。このように本実施形態においては、穴あき状態にある複数のブロックから読み出されるべき有効クラスタが、チャネル別に先頭ページから順に検索される。このため本実施形態によれば、コンパクションのために有効クラスタを複数のチャネルを介して並列に読み出す処理の並列度を高めることができる。つまり、有効クラスタ読み出しの並列度を高めることができる。これにより、有効クラスタの移動のための専用の記憶エリアを必要とすることなく、コンパクション処理全体に要する時間を短縮できる。ここで、本実施形態とは異なって、穴あき状態にある複数のブロックを、全チャネルにまたがって、ページ単位で先頭ページから順に検索するものとする。穴あき状態にあるブロックでは、同一ページ内で有効クラスタが存在しない多くのチャネルが出現する可能性が高い。このようなページでは、有効クラスタ読み出しの並列度が低減する。このような状況は、複数のブロックの全ページに亘って発生する可能性が高いため、コンパクション処理全体に要する時間が長くなる。しかも本実施形態では、1回の並列リード処理毎に、開始コマンドチャネル番号SCNが、ラウンドロビン方式に基づき、先行する開始コマンドチャネル番号に後続するチャネル番号に切り替えられる。これにより、前回の並列リード処理で用いられなかったチャネルが、次の並列リード処理で優先的に利用される。このため、チャネル別に有効クラスタを検索をしていながら、チャネル間の進捗ばらつきを低減した状態で、有効クラスタ読み出しの並列度を高めることができる。よって、コンパクション処理全体に要する時間を一層短縮することができる。なお、チャネル間の進捗ばらつきを低減するための手法は、上記実施形態に限らない。例えば、開始コマンドチャネル番号SCNの示すチャネルの進捗が、16のチャネルの中で最も進んでいる場合、開始コマンドチャネルを更に次のチャネルに変更してもよい。また、開始コマンドチャネル番号SCNをランダムに決定してもよい。更に、チャネル管理部34が、コンパクションリードコマンド群投入の状況を、前回までの前記チャネル別の進捗に基づいて管理してもよい。この場合、決定手段決定手段として機能するチャネル管理部34またはコマンドリスト生成部33は、最も進捗が進んでいるチャネルが除外されるように、生成されるべきN個のコンパクションリードコマンド群に対応するチャネル群を決定すればよい。また、最も進捗が遅れているチャネルが含まれるように、決定手段が上述のチャネル群を決定してもよい。更に、最も進捗が進んでいるチャネルが除外され、且つ最も進捗が遅れているチャネルが含まれるように、決定手段上述のチャネル群を決定してもよい。以上説明した少なくとも1つの実施形態によれば、コンパクション用途の記憶エリアを必要とすることなく、コンパクションのためのデータ読み出しを高速化できる、マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法を提供することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"