"フラッシュメモリのデータの記録場所を示すアドレス情報を有する第1の管理テーブルを格納する手段と、前記フラッシュメモリの記録データの中で有効なデータを示すアドレス情報を有する第2の管理テーブルを格納する手段と、有効なデータ数のカウント値をアドレス単位で示すカウンタテーブルを格納するカウンタテーブル格納手段と、前記第1の管理テーブルを参照して取得されるアドレス単位の有効なデータ数と、前記カウンタテーブルのアドレス単位のカウント値とを比較し、当該比較結果に基づいて前記第1及び第2の管理テーブルの整合性を確認する整合性確認処理を実行するコントローラとを具備するデータ記憶装置。前記コントローラは、前記整合性確認処理として、前記カウンタテーブルを使用して、第1の管理テーブルを参照して取得される有効なデータ数と前記第2の管理テーブルを参照して取得される有効なデータ数とを比較し、当該比較結果が一致であれば正常終了する第1の処理と、前記比較結果が不一致であれば、不整合のデータ位置を特定する第2の処理とを実行するように構成されている請求項1に記載のデータ記憶装置。前記カウンタテーブル格納手段は、前記整合性確認処理前に、予め作成された前記カウンタテーブルを格納する請求項1または請求項2のいずれか1項に記載のデータ記憶装置。前記第2の管理テーブルから前記カウンタテーブルを作成する手段を有し、前記カウンタテーブル格納手段は、前記作成されたカウンタテーブルを格納する請求項1または請求項2のいずれか1項に記載のデータ記憶装置。前記第1の管理テーブルは、クラスタ単位のデータの記録場所を示す正引きテーブルであり、前記第2の管理テーブルは、前記クラスタ単位でデータの有効と無効を示す有効クラスタビットマップテーブルであり、前記カウンタテーブルは、前記第2の管理テーブルで有効を示す有効クラスタ数をアドレス単位でカウントしたカウント値を有する有効クラスタ数カウンタテーブルであり、前記コントローラは、前記カウンタテーブルを使用して、前記第1の管理テーブルと前記第2の管理テーブルとの間で有効クラスタ数が一致するか否かを確認する処理を実行するように構成されている請求項1に記載のデータ記憶装置。前記コントローラは、前記整合性確認処理として、前記第1の管理テーブルを参照して確認された有効クラスタ数と前記カウンタテーブルから取得されるカウント値とを比較し、当該比較結果が一致であれば正常終了する第1の処理と、前記比較結果が不一致であれば、前記第1の管理テーブルと前記第2の管理テーブルとの間で不整合な不整合クラスタ位置を特定する第2の処理とを実行するように構成されている請求項5に記載のデータ記憶装置。前記コントローラは、前記第1の処理として、前記第1の管理テーブルにエントリされているクラスタに対応する前記第2の管理テーブルのクラスタが有効または無効であるかを判断し、前記判断結果が有効であれば前記カウンタテーブルのカウント値をデクリメントし、前記第1の管理テーブルの全てのエントリに対する前記カウント値のデクリメント結果がゼロであれば、前記第1及び第2の管理テーブルの有効クラスタ数の一致を確認する処理を実行するように構成されている請求項6に記載のデータ記憶装置。フラッシュメモリのデータの記録場所を示すアドレス情報を有する第1の管理テーブル、及び前記フラッシュメモリの記録データの中で有効なデータを示すアドレス情報を有する第2の管理テーブルを有するデータ記憶装置に適用するテーブル管理方法であって、有効なデータ数のカウント値をアドレス単位で示すカウンタテーブルを有し、前記第1の管理テーブルを参照して取得されるアドレス単位の有効なデータ数と、前記カウンタテーブルのアドレス単位のカウント値とを比較し、前記比較結果に基づいて前記第1及び第2の管理テーブルの整合性を確認する整合性確認処理を実行するテーブル管理方法。前記整合性確認処理として、前記カウンタテーブルを使用して、第1の管理テーブルを参照して取得される有効なデータ数と、前記第2の管理テーブルを参照して取得される有効なデータ数とを比較し、前記比較結果が一致であれば正常終了し、前記比較結果が不一致であれば、不整合のデータ位置を特定する請求項8に記載のテーブル管理方法。前記第1の管理テーブルは、クラスタ単位のデータの記録場所を示す正引きテーブルであり、前記第2の管理テーブルは、前記クラスタ単位でデータの有効と無効を示す有効クラスタビットマップテーブルであり、前記カウンタテーブルは、前記第2の管理テーブルで有効を示す有効クラスタ数をアドレス単位でカウントしたカウント値を有する有効クラスタ数カウンタテーブルであり、前記整合性確認処理として、前記カウンタテーブルを使用して、前記第1の管理テーブルと前記第2の管理テーブルとの間で有効クラスタ数が一致するか否かを確認する請求項8に記載のテーブル管理方法。前記整合性確認処理として、前記第1の管理テーブルを参照して確認された有効クラスタ数と前記カウンタテーブルから取得されるカウント値とを比較し、前記比較結果が一致であれば正常終了し、前記比較結果が不一致であれば、前記第1の管理テーブルと前記第2の管理テーブルとの間で不整合な不整合クラスタ位置を特定する請求項10に記載のテーブル管理方法。従来のSSDでは、SSDコントローラの内部メモリで保持しているデータ管理テーブルは、ハードエラーにより不整合が発生する可能性がある。このため、SSDは、通常のデータのリード/ライト動作以外に、データ管理テーブルに対する整合性の確認処理を行なう必要がある。この整合性の確認処理は、リード/ライト動作を実行していない時間に行なう必要があるため、高速性が要求される。そこで、本発明の目的は、データ管理テーブルに対する整合性の確認処理を高速に行なことが可能なデータ記憶装置を提供することにある。実施形態によれば、データ記憶装置は、第1の管理テーブルを格納する手段と、第2の管理テーブルを格納する手段と、カウンタテーブル格納手段と、コントローラとを具備する。前記第1の管理テーブルは、フラッシュメモリのデータの記録場所を示すアドレス情報を有する。前記第2の管理テーブルは、前記フラッシュメモリの記録データの中で有効なデータを示すアドレス情報を有する。前記カウンタテーブル格納手段は、有効なデータ数のカウント値をアドレス単位で示すカウンタテーブルを格納する。前記コントローラは、前記第1の管理テーブルを参照して取得されるアドレス単位の有効なデータ数と、前記カウンタテーブルのアドレス単位のカウント値とを比較し、当該比較結果に基づいて前記第1及び第2の管理テーブルの整合性を確認する整合性確認処理を実行する。以下図面を参照して、実施形態を説明する。[データ記憶装置の構成]図1は、本実施形態に関するSSDsolidstatedriveの構成を説明するためのブロック図である。図1に示すように、SSDは大別して、フラッシュメモリコントローラ以下、SSDコントローラと表記する場合がある10と、NAND型フラッシュメモリ以下、単にフラッシュメモリと表記する場合がある11とを有する。フラッシュメモリ11は、主としてユーザデータを記憶するためのデータ記憶媒体である。SSDコントローラ10は、インターフェース12と、コントローラ13と、第1のテーブル相関位置決定モジュール14と、第1テーブルデータ解析モジュール15と、第2テーブルデータ解析モジュール16と、第2テーブル有効性判定モジュール17と、第3テーブル生成モジュール18と、第3テーブル更新モジュール19とを有する。さらに、SSDコントローラ10は、テーブル管理モジュール20と、第2のテーブル相関位置決定モジュール21と、テーブル整合結果通知モジュール22と、第2テーブル複製生成モジュール23と、第2テーブル複製更新モジュール24と、第3テーブル解析モジュール25とを有する。また、SSDコントローラ10は、第1テーブル格納部26と、第2テーブル格納部27と、第2テーブル複製格納部28と、第3テーブル格納部29とを有する。インターフェース12は、図示しないチャネルを介してフラッシュメモリ11と接続し、リード/ライト動作に必要なコマンドやデータの入出力を行なう。チャネルChとは、データの入出力を行なう伝送経路である。チャネルChは例えば16チャネルを有し、最大16個のデータを同時に伝送可能である。コントローラ13は、バスを介して接続した各モジュール14~25の動作を制御する。テーブル管理モジュール20は、第1テーブル格納部26、第2テーブル格納部27、第2テーブル複製格納部28および第3テーブル格納部29のそれぞれに格納される各種テーブルへの問い合わせ、及びデータ更新等のテーブルアクセスを管理する。第1テーブル格納部26、第2テーブル格納部27、第2テーブル複製格納部28および第3テーブル格納部29はそれぞれ、DRAMなどのメモリ記憶デバイスからなる。第1テーブル格納部26は、後述する正引きテーブルを格納する。第2テーブル格納部27は、後述する有効クラスタビットマップテーブル以下、有効クラスタテーブルと表記する場合があるを格納する。第2テーブル複製格納部28は、後述するように、有効クラスタテーブルの1エントリのコピー複製を格納する。第3テーブル格納部29は、後述する有効クラスタ数カウンタテーブル以下、カウンタテーブルと表記する場合があるを格納する。第1のテーブル相関位置決定モジュール14は、第1テーブル格納部26に格納された正引きテーブルの1エントリに基づいて、前記正引きテーブルエントリに対応する第2テーブル格納部27に格納された有効クラスタテーブルのエントリ位置を決定する。第2のテーブル相関位置決定モジュール21は、第2テーブル複製格納部28に格納された有効クラスタテーブルの1エントリのコピーのビット位置に基づいて、前記有効クラスタテーブルエントリのビット位置に対応する第1テーブル格納部26に格納された正引きテーブルのエントリ位置を決定する。第1テーブルデータ解析モジュール15は、第1テーブル格納部26に格納された正引きテーブルのエントリデータを解析する。テーブル整合結果通知モジュール22は、該正引きテーブルおよび該有効クラスタテーブルの整合性の結果を通知する。即ち、当該モジュール22は、正引きテーブルおよび有効クラスタテーブルのいずれか一方では有効であって、かつ他方では無効となっているクラスタのLCA後述する論理オフセットアドレスを上位システム図示しないCPUに通知する。CPUでは、SSDの全体的制御を司るファームウェアFWが実行される。第2テーブルデータ解析モジュール16は、第2テーブル格納部27に格納された有効クラスタテーブルのエントリデータを解析する。第2テーブル複製生成モジュール23は、第2テーブル格納部27に格納された有効クラスタテーブルの1エントリのコピー複製を生成し、第2テーブル複製格納部28に格納する。第2テーブル有効性判定モジュール17は、第1テーブル格納部26に格納された正引きテーブルの参照により有効とされたクラスタが、第2テーブル格納部27に格納された有効クラスタテーブル上で有効か否かを判定する。第2テーブル複製更新モジュール24は、第2テーブル複製格納部28に格納された有効クラスタテーブルのコピー複製により生成されたエントリデータを更新する。第3テーブル生成モジュール18は、カウンタテーブルを新規に生成し、第3テーブル格納部29に格納する。第3テーブルデータ解析モジュール25は、第3テーブル格納部29に格納されたカウンタテーブルのエントリデータを解析する。第3テーブルデータ更新モジュール19は、第3テーブル格納部29に格納されたカウンタテーブルのエントリデータを更新する。定義本実施形態のSSDに関係する用語の定義を説明する。まず、物理ページとは、フラッシュメモリ11の内部で、一括してリード/ライトが可能な単位である。論理ページは、SSD内で設定されるリード/ライトの単位である。1論理ページは、1またはそれ以上の物理ページに対応付けられている。物理ブロックは、フラッシュメモリ11の内部で、独立してデータ消去可能な最小単位である。物理ブロックは複数の物理ページからなる。論理ブロックは、SSD内で設定されるデータ消去単位である。1論理ブロックは、1またはそれ以上の物理ページに対応付けられている。セクタは、SSDをアクセスするホストシステム例えばパーソナルコンピュータからの最小アクセス単位である。クラスタは、SSD内でデータを管理する管理単位である。1クラスタは、例えば8セクタに対応付けられる。また、クラスタサイズの2以上の整数倍が論理ページサイズに対応付けられる。有効クラスタは、最新のデータを保持しているクラスタである。無効クラスタは、最新ではないデータを保持しているクラスタである。コンパクションcompactionとは、管理対象内の論理ブロックから有効クラスタを取り出して、新しい論理ブロックに書き直す処理を意味する。プレーン以下、PLと略す場合があるは、同一のフラッシュメモリチップ内において、同時アクセス可能な領域districtを意味する。本実施形態では、2プレーンに分割されている。但し、分割数は、2に限定されるものではなく、任意に設定される。論理ブロックID以下、LBIDと略す場合があるは、論理ブロックを識別するために各論理ブロックに付加された番号である。有効クラスタビットマップは、論理ブロックで記録されているデータが有効または無効であるかを、クラスタ単位で1有効と0無効のビットマップで示すデータである。有効クラスタビットマップテーブル有効クラスタテーブルは、有効クラスタビットマップを管理するテーブルである。有効クラスタテーブルは、例えば図2に示すような構成である。有効クラスタ数カウンタは、論理ブロックに記録されているデータの中で有効クラスタの数有効クラスタ数を示すデータカウント値である。有効クラスタ数カウンタは、コンパクション時にコンパクション対象を選択する際に使用されるデータである。有効クラスタ数カウンタテーブルカウンタテーブルは、有効クラスタ数カウンタを論理ブロックIDをキーとしたテーブルである。本実施形態では、カウンタテーブルは、図3に示すようなフォーマットからなり、論理ブロックIDLBIDをインデックスとした配列として実現する。さらに、LCAは、論理ブロックアドレスLBAを3ビット右にシフトして得られる値を意味する。VPNは、仮想ページ番号を意味する。VPNは、図4に示すように、物理ブロック内の物理ページ番号PAGENO、フラッシュメモリチップ内のプレーン番号PL、およびチャネル番号CHNOからなる。論理クラスタアドレスは、フラッシュメモリ上の論理的なクラスタアドレスである。論理クラスタアドレスは、論理ブロックIDLBID、仮想ページ番号VPN、および物理ページ内のクラスタオフセットCにより表現される。正引きテーブルは、フラッシュメモリ上でのクラスタ単位で論理的なデータ記録場所を管理するテーブルである。本実施形態は、図5に示すように、LCAをインデックスとして、LBID、VPN、Cからなるエントリデータを要素とする値の配列として実現する。なお、図5において、Pはパリティビットを意味する。図6は、正引きテーブルエントリのマジックナンバーの一例を示す図である。マジックナンバーは、正引きテーブルエントリのパリティビットP以外のビットが全て1の場合である。これは、対応するLCAに含まれる全てのセクタが、SSDの起動後に唯の一回もデータの書き込みがなされていないことを意味する。テーブル整合チェック処理以下、図7のフローチャートを参照して、本実施形態のテーブル整合チェック処理を説明する。本実施形態では、コントローラ13は、各モジュール14~25の動作を制御することにより、正引きテーブルと有効クラスタビットマップテーブル有効クラスタテーブルの整合性チェック処理を実行する。前述したように、正引きテーブルは、第1テーブル格納部26に格納されるテーブルであり、第1の管理テーブルと表記する場合がある。また、有効クラスタテーブルは、第2テーブル格納部27に格納されるテーブルであり、第2の管理テーブルと表記する場合がある。本実施形態では、整合性チェック処理中は、第1の管理テーブル及び第2の管理テーブルを更新する処理が並列に動作しないことが条件である。また、1回の整合性チェック処理において、検出可能な不整合箇所は1箇所である。テーブル整合結果通知モジュール22は、1つの不整合を検出した段階で、当該検出箇所と共に整合結果をCPUに通知する。まず、第3テーブル生成モジュール18は、論理ブロックLBID毎に第2テーブル格納部27に格納された有効クラスタテーブルから、クラスタ単位で有効1のデータをカウントして、有効クラスタ数カウンタテーブルカウンタテーブルを作成するブロック100。第3テーブル生成モジュール18は、作成したカウンタテーブルを第3の管理テーブルとして、第3テーブル格納部29に格納する。ここで、有効クラスタテーブルは、図2に示すように、クラスタ単位で有効を1で示し、無効を0で示すビットマップを示すテーブルである。また、カウンタテーブルは、図3に示すように、論理ブロックLBID毎の有効クラスタ数を示すデータからなるテーブルである。次に、コントローラ13は、作成されたカウンタテーブル第3の管理テーブルを使用して、正引きテーブル第1の管理テーブルの全エントリについて、整合チェック処理を実行するブロック101~108のループ。ここで、ブロック108は、処理ループの終了を示す。具体的には、第1のテーブル相関位置決定モジュール14は、テーブル管理モジュール20に対して、LCA順に第1テーブル格納部26に格納された正引きテーブルへの参照を要求し、論理クラスタアドレスを取得するブロック102。LNCAは、図5に示すように、論理ブロックIDLBID、仮想ページ番号VPN、および物理ページ内のクラスタオフセットCからなる。第1テーブルデータ解析モジュール15は、取得されたLNCAに含まれるLBIDの有効性をチェックするブロック103。このチェックにより、当該LNCAがマジックナンバーの場合には、次の処理対象であるLNCAの取得を実行するブロック103のYES。マジックナンバーは、正引きテーブルエントリのパリティビットP以外のビットが全て1の場合である。この場合、LCAに含まれる全てのセクタが唯の一回もデータの書き込みがなされていないことを意味する。一方、マジックナンバーではない場合でLNCAが範囲外の場合には、テーブル整合結果通知モジュール22は、当該LCAから算出される論理ブロックアドレスLBAを取得し、上位システムであるCPUにエラーと共に返却して終了するブロック104のYES,124。LNCAが範囲内の場合には、第2テーブルデータ解析モジュール16は、テーブル管理モジュール20を介して、有効クラスタテーブル第2の管理テーブルの当該物理クラスタのビット値を取得するブロック105。第2テーブル有効性判定モジュール17は、物理クラスタのビット値を用いて、有効クラスタテーブルの当該物理クラスタが有効または無効のいずれであるかをチェックするブロック106。このチェック結果が無効クラスタの場合には、テーブル整合結果通知モジュール22は、当該LCAから算出される論理ブロックアドレスLBAを取得し、上位システムであるCPUにエラーと共に返却して終了するブロック106のYES,124。チェック結果が有効クラスタの場合には、第3テーブル更新モジュール19は、第3の管理テーブルカウンタテーブル上の当該論理ブロックLBIDのカウント値有効クラスタ数を1デクリメントするブロック107。コントローラ13は、全ての正引きテーブルエントリについてのチェック処理の完了後ブロック101~108のループ終了後に、次の処理に移行する。即ち、第3テーブルデータ解析モジュール25は、第3の管理テーブルカウンタテーブルのエントリを先頭からチェックするブロック109,110。このチェック結果によりエントリ値がゼロであれば、第3テーブルデータ解析モジュール25は次のエントリのチェックに進むブロック110のYES,111。エントリ値がゼロでなければ、第3テーブルデータ解析モジュール25は、当該エントリ値であるLBIDを第2テーブル複製生成モジュール23に渡すブロック110のNO。第2テーブル複製生成モジュール23は、テーブル管理モジュール20に対して、対応する有効クラスタテーブルの参照要求を行なう。第2テーブル複製生成モジュール23は、有効クラスタテーブルから取得した当該ビットマップデータを第2テーブル複製格納部28に格納するブロック112。即ち、第2テーブル複製格納部28には、第2テーブル格納部27に格納された有効クラスタテーブルの1エントリのコピーが格納される。テーブル整合結果通知モジュール22は、第2テーブル複製格納28にデータ、即ち有効クラスタテーブルの1エントリのコピーが格納されていない場合には、エラーが検出されなかったとして、上位システムであるCPUに返却して終了するブロッ113のYES,114。一方、コピーが格納されている場合には、第1のテーブル相関位置決定モジュール14は、テーブル管理モジュール20に対して、LCA順に第1テーブル格納部26に格納された正引きテーブルへの参照を要求し、論理クラスタアドレスを取得するブロック115,116。第1テーブルデータ解析モジュール15は、取得されたLNCAに含まれるLBIDの有効性をチェックするブロック117。このチェックは、当該LNCAがマジックナンバーであるか否かを判定する。または、LBIDが第2テーブル複製格納部28に格納されたただ一つの有効クラスタビットマップデータのLBIDと一致するか否かを判定する。このチェックにより、当該LNCAがマジックナンバーの場合には、次の処理対象であるLNCAの取得を実行するブロック117のYES,119。チェック結果がLBIDの不一致の場合には、同様に、次の処理対象であるLNCAの取得を実行するブロック117のYES,119。一方、判定条件が成立しない場合、即ちLBIDが一致する場合には、第2テーブルデータ解析モジュール16は、第2テーブル複製格納部28に格納された有効クラスタのビットマップデータの該当ビット位置を算出するブロック117のNO。第2テーブル複製更新モジュール24は、該当有効クラスタのビットを落とすブロック118。コントローラ13は、全ての正引きテーブルエントリについてのチェック処理の完了後ブロック115~119のループ終了後に、次の処理に移行する。即ち、第2テーブルデータ解析モジュール16は、第2テーブル複製格納部28に格納された有効クラスタのビットマップデータの1の値をとるビット位置を検索するブロック120。テーブル整合結果通知モジュール22は、第2テーブルデータ解析モジュール16の検索により、1の値をとるビットが存在しない場合には、処理中にビット化けが発生したエラーとして、上位システムであるCPUに返却して終了するブロック121のYES,122。ここで、第2テーブル複製格納部28にコピーされた時点では、当該有効クラスタのビットマップが示す論理ブロックには、正引きテーブル上では無効とされ、有効クラスタテーブル上では有効とされる物理クラスタが存在すると判定されている。従って、ビット位置の検索処理の時点ではブロック120、当該有効クラスタテーブル上には1の値をとるビットが存在するはずである。しかし、データにビット化けが発生していた場合、該有効クラスタのビットマップデータには、1の値をとるビットが含まれていない可能性がある。このように、ブロック121のYES,122の処理は前記ビット化けが発生したことにより、これ以上処理を進めることが不可能となったことを上位システムであるCPUに通知する処理である。一方、第2テーブルデータ解析モジュール16は、検索により1の値をとるビットが存在する場合には、テーブル整合結果通知モジュール22に正引きテーブルから算出したLNCAと一致したエントリのLCAを渡す。即ち、第2のテーブル相関位置決定モジュール21は、1であるビット位置複数ある場合は、最もLSB側に位置するビットに対応するLNCAを有効クラスタテーブルから算出し、前記LNCAと一致するエントリを正引きテーブルから検索し、検索の結果得られたエントリに対応するキーのLCAの値をテーブル整合結果通知部22に渡する。テーブル整合結果通知部22は、当該LCAから算出される論理ブロックアドレスLBAを取得し、上位システムであるCPUにエラーと共に返却して終了するブロック121のNO,123,124。以上のように本実施形態の整合性チェック処理であれば、正引きテーブル第1の管理テーブルと有効クラスタビットマップテーブル第2の管理テーブルの整合性を、第3の管理テーブルである有効クラスタ数カウンタテーブルカウンタテーブルを使用して実行する。本実施形態の整合性チェック処理の要点は、カウンタテーブル上に記録された物理ブロック単位での有効クラスタ数と、正引きテーブルから読み込む有効性のあるクラスタ登録されている物理クラスタアドレスの数を物理ブロックごとにカウントして比較を行なう点にある。即ち、正引きテーブルの有効クラスタに対応する有効クラスタテーブルの物理クラスタが、有効または無効であるかを判断する。無効であれば、この時点で不整合があること、および不整合箇所の特定までができることになる。有効であれば、カウンタテーブルのカウンタ値有効クラスタ数からデクリメントするブロック101~108のループ処理。この結果として、両テーブル正引きテーブルと有効クラスタテーブルの有効クラスタ数が一致すれば、整合性チェックは正常終了となるブロック111,114。一方、両テーブルの有効クラスタ数が不一致であれば、不整合クラスタ位置の特定処理に移行するブロック115~124。このような2段階による整合性チェック処理により、整合性チェックの結果が正常であれば不整合クラスタ位置の特定処理を省略できるため、全体として処理ステップ数を相対的に減少し、高速に行なうことが可能となる。また、整合性チェック処理に必要なメモリ容量を最小限にできるため、SSDに搭載するメモリ容量が相対的に少ない場合でも整合性チェック処理を実現することができる。これにより、SSDにおいて、ハードエラーに伴うデータ管理テーブルのエラー発生の解析を容易に行なうことが可能となる。変形例本実施形態の整合性チェック処理において、1回の整合性チェックにおいて、検出可能な不整合箇所を1箇所であることを前提として説明したが、これに限ることなく、1回の整合性チェックにおいて、複数箇所の不整合箇所を検出することも可能である。本変形例は、第2テーブル複製格納部28に格納する有効クラスタテーブルのエントリデータである物理ブロック単位のビットマップを1つに制限するのではなく、図7のブロック110の条件に合致する全ての有効クラスタテーブルのエントリデータである物理ブロック単位のビットマップを格納する構成とする。これにより、1回の整合性チェックにおいて、複数物理ブロックの不整合を検出することも可能となる。[他の実施形態]図8は、他の実施形態に関するSSDの構成を説明するためのブロック図である。上記実施形態は、前述したように、有効クラスタ数カウンタテーブル第3の管理テーブルを作成する構成であるブロック100を参照。これに対して、本実施形態は、当該カウンタテーブルを予め用意し、これを利用して整合性チェック処理を実行する構成である。有効クラスタ数カウンタテーブルにおける各エントリ値をSSDシステムとして常に正しい状態に維持するための、当該テーブルの更新タイミングとしては、フラッシュメモリ11に記録されたユーザデータの有効/無効の状態が変化するタイミング、すなわちユーザデータをフラッシュメモリ11に書き込む際、ユーザデータをフラッシュメモリ11から消去する際、もしくはコンパクション実施にともなうユーザデータの物理的格納場所の移動のタイミングが望ましい。前記タイミングで有効クラスタ数カウンタテーブルを更新することにより、有効クラスタ数カウンタテーブルをSSDにおける他の処理、例えばコンパクション処理の際に、コンパクション処理対象となる有効クラスタ数が最小の論理ブロックを選択するための情報に利用することが可能となる、というメリットがある。本実施形態はSSDが前記望ましいタイミングでのテーブル更新を実施することを前提とする。具体的には、図8に示すように、第3テーブル生成モジュール18を、第3テーブル複製生成モジュール30に変更する。第3テーブル更新部19を、第3テーブル複製更新モジュール31に変更する。第3テーブルデータ解析モジュール25を、第3テーブル複製データ解析モジュール32に変更する。さらに、テーブル管理モジュール20が管理するテーブル格納部として、第3テーブル複製格納部33を追加する。また、本実施形態では、第3テーブル格納部29は、既存の有効クラスタ数カウンタテーブルカウンタテーブルを格納する。第3テーブル複製格納部33は、第3テーブル格納部29に格納されたカウンタテーブル全体のコピー複製を格納する。前記カウンタテーブル全体のコピーを格納するのは、本実施形態における整合性チェック処理において実施されるカウンタテーブルのエントリ値の更新処理により、オリジナルのカウンタテーブルが破壊されるのを避けるためである。第3テーブル複製生成モジュール30は、第3テーブル格納部29に格納されたカウンタテーブル全体を第3テーブル複製格納部33にコピーする。第3テーブル複製データ解析モジュール32は、第3テーブル複製格納部33に格納されたカウンタテーブルのエントリデータを解析する。第3テーブル複製更新モジュール31は、第3テーブル複製格納部33に格納されたカウンタテーブルのエントリデータを更新する。本実施形態の構成であれば、既存の有効カウンタテーブルを使用する場合には、第3テーブル複製生成モジュール30により、第3テーブル格納部29に格納されたカウンタテーブル全体を第3テーブル複製格納部33にコピーする。このコピーデータに対して参照または更新を行なうことにより、整合性チェック処理を実行する。この場合、カウンタテーブルのエントリから有効を示す1の値をカウントする処理を、エントリ値のコピー処理に置き換えることになり、処理全体が簡素化される。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"