"キャッシュメモリから読み出されたデータからエラーを検出し、当該エラーを訂正するエラー検出訂正手段と、前記エラー検出訂正手段によるエラー訂正が不可能で前記エラーの種別がハードエラーの場合に、前記キャッシュメモリに対する電源遮断及び電源再投入の電源制御を実行する制御手段とを具備するキャッシュコントローラ。前記制御手段は、前記電源遮断の前に前記キャッシュメモリを封鎖し、前記電源再投入後に前記キャッシュメモリを復帰する処理を実行するように構成されている請求項1に記載のキャッシュコントローラ。複数のキャッシュメモリを有し、前記各キャッシュメモリのそれぞれに独立して電源が供給される構成であり、前記制御手段は、前記エラー検出訂正手段によるエラー訂正が不可能で、前記エラーの種別がハードエラーであると特定されたキャッシュメモリに対する前記電源制御を実行するように構成されている請求項1又は請求項2のいずれか1項に記載のキャッシュコントローラ。前記制御手段は、シングルイベントラッチアップ現象によるメモリ機能障害である前記ハードエラーを解消するために、前記電源制御を実行するように構成されている請求項1から請求項3のいずれか1項に記載のキャッシュコントローラ。前記エラー検出訂正手段によるエラー訂正が不可能な場合に、データ復元処理を実行する手段を含む請求項1から請求項4のいずれか1項に記載のキャッシュコントローラ。前記制御手段は、マイクロプロセッサからのリード要求に応じたデータが前記キャッシュメモリに格納されているか否かを判定する手段を含み、前記エラー検出訂正手段によるエラー訂正が不可能で前記エラーの種別がソフトエラーの場合には、前記マイクロプロセッサに通知するように構成されている請求項1から請求項5のいずれか1項に記載のキャッシュコントローラ。前記制御手段は、前記電源再投入後の電源安定化時間の経過後に、前記キャッシュメモリを復帰する処理を実行するように構成されている請求項2に記載のキャッシュコントローラ。前記制御手段は、前記エラー検出訂正手段によるエラー訂正が不可能で前記エラーの種別がハードエラーの場合に、当該キャッシュメモリを前記電源制御の対象として登録する手段を含む請求項1から請求項7のいずれか1項に記載のキャッシュコントローラ。前記制御手段は、前記キャッシュメモリを前記電源制御の対象として登録したことをマイクロプロセッサに通知し、前記マイクロプロセッサから要求に応じて前記電源制御を実行するように構成されている請求項8に記載のキャッシュコントローラ。キャッシュメモリから読み出されたデータからエラーを検出し、前記エラーを訂正し、前記エラー訂正が不可能で前記エラーの種別がハードエラーの場合に、前記キャッシュメモリに対する電源遮断及び電源再投入の電源制御を実行するキャッシュ制御方法。データを格納する記憶媒体と、前記記憶媒体に対するリード要求のデータをキャッシュメモリから読み出すキャッシュコントローラとを有し、前記キャッシュコントローラは、前記キャッシュメモリから読み出されたデータからエラーを検出し、当該エラーを訂正するエラー検出訂正手段と、前記エラー検出訂正手段によりエラー訂正が不可能で前記エラーの種別がハードエラーの場合に、前記キャッシュメモリに対する電源遮断及び電源再投入の電源制御を実行する制御手段とを具備するデータ記憶装置。従来のキャッシュコントローラは、訂正不能なエラーが発生した場合に、データの再書き込みを実行する。そして、再書き込みしたデータを読み出したときに、再び訂正不能なエラーが発生した場合にはハードエラーが発生していると判断する。このハードエラーの発生に対して、当該キャッシュラインを封鎖して使用禁止とする場合がある。このため、キャッシュ動作の性能が劣化する可能性がある。そこで、本発明の目的は、ハードエラーの発生に対するキャッシュ動作の性能の劣化を抑制できるキャッシュコントローラを提供することにある。実施形態によれば、キャッシュコントローラは、エラー検出訂正手段と、制御手段とを具備する。エラー検出訂正手段は、キャッシュメモリから読み出されたデータからエラーを検出し、当該エラーを訂正する。制御手段は、前記エラー検出訂正手段によるエラー訂正が不可能で前記エラーの種別がハードエラーの場合に、前記キャッシュメモリに対する電源遮断及び電源再投入の電源制御を実行する。以下図面を参照して、実施形態を説明する。[キャッシュコントローラの構成]図1は、本実施形態に関するキャッシュコントローラの構成を示すブロック図である。図1に示すように、キャッシュコントローラ10は、インターフェースCPUIF11と、シーケンサ12と、キャッシュメモリ群13と、エラー処理モジュール14と、エントリデコーダ15と、エラー検出用データ生成モジュール16とを有する。インターフェース11は、バス21を介して外部のマイクロプロセッサCPU20との間でデータやコマンドの転送制御を行なう。CPU20は、後述するように、例えばHDDやSSDなどのデータ記憶装置に設けられており、ホストシステムとのデータの送受信を制御する。シーケンサ12は、キャッシュコントローラ10のメインコントローラであり、例えばハードウェアのロジック及びレジスタ群から構成されている。キャッシュメモリ群13は、複数ここで3個のキャッシュメモリ130~132から構成され、それぞれのキャッシュメモリは複数のキャッシュラインから構成される。各キャッシュメモリ130~132はそれぞれ、キャッシュデータを格納するキャッシュデータ領域131及びキャッシュタグを格納するキャッシュタグ領域132を含むグループ化された構成である。キャッシュデータ領域131は、例えばSRAMstaticrandomaccessmemoryからなる。また、キャッシュタグ領域132は、例えばフリップフロップflipflop群からなる。エラー処理モジュール14は、ECCerrorcheckingandcorrecting処理及びエラー解析処理を実行する。即ち、エラー処理モジュール14は、キャッシュメモリ群13から読み出されたデータのエラーを検出し、当該エラーの要因を解析し、かつエラーを訂正する機能を有する。エラー処理モジュール14は解析機能により、エラーの要因としてソフトエラーまたはハードエラーのいずれかを判定する後述する。エントリデコーダ15は、CPU20からリード要求時に指定されたアドレスをデコードする。エラー検出用データ生成モジュール16は、エラーを検出するためのエラー検出用データECCデータを生成し、キャッシュメモリ13に保存するキャッシュデータに付加する。さらに、キャッシュコントローラ10は、メインメモリ30との間でデータの転送を行うインターフェース図示せずを含む。メインメモリ30は、DRAMなどである。ここで、本実施形態のキャッシュコントローラ10は、電源コントローラ40及びパワースイッチ420~422を含む電源制御用モジュールに接続している。電源コントローラ40は、シーケンサ12からの指示に応じて、パワースイッチ420~422の電源遮断を実行することで、キャッシュメモリ群13の各キャッシュメモリ130~132に対する電源41から電源遮断と電源供給を制御する。即ち、各キャッシュメモリ130~132はそれぞれ、分離された電源系統パワースイッチ420~422から電源が供給され、または電源の供給が遮断される構成である。[データ記憶装置]図2は、ハードディスクドライブHDDの要部を示すブロック図である。HDDは、ドライブとホストシステム例えばパーソナルコンピュータ50とのインターフェースを構成するディスクコントローラHDC22を有する。本実施形態のキャッシュコントローラ10及び電源制御用モジュールは、ディスクコントローラ22のキャッシュモジュールとして適用可能である。HDDは、図2に示すように、大別してヘッドディスクアセンブリheaddiskassemblyHDA、ヘッドアンプ集積回路ヘッドアンプIC25と、ディスクコントローラ22を含むモジュール24とから構成されている。モジュール24は、ディスクコントローラ22以外に、R/Wチャネル23とCPU20とを含む。HDAは、磁気記録媒体であるディスク29と、スピンドルモータSPM28と、ヘッド26を搭載しているアクチュエータ27とを有する。ディスク29は、スピンドルモータ28に固定されて回転される。アクチュエータ27は、ボイスコイルモータVCMの駆動により、ヘッド26をディスク29上の指定の位置まで移動制御する。ヘッド26は、ディスク29にデータを書き込むライトヘッド素子と、ディスク29からデータを読み出すリードヘッド素子とを有する。ヘッドアンプIC25は、リードヘッド素子により読み出されたデータ信号を増幅してリード/ライトR/Wチャネル23に伝送するリードアンプを有する。また、ヘッドアンプIC25は、R/Wチャネル23から出力されるデータに応じたライト電流をライトヘッド素子に伝送する。図3は、SSDsolidstatedriveの要部を示すブロック図である。SSDは、ドライブとホストシステム50とのインターフェースを有し、データ記憶媒体であるフラッシュメモリflashmemory61を制御するSSDコントローラ60を有する。本実施形態のキャッシュコントローラ10及び電源制御用モジュールは、SSDコントローラ60のキャッシュモジュールとして適用可能である。[キャッシュコントローラの動作]以下、図4のフローチャートを参照して、キャッシュコントローラ10の動作を説明する。まず、CPU20からリード要求リードコマンドの発行があると、シーケンサ12は、キャッシュ動作を開始するブロック400。即ち、シーケンサ12は、キャッシュタグ領域132に格納されているキャッシュタグをサーチし、キャッシュメモリ13に該当するデータが存在するか否かヒットまたはミスを確認するブロック401。シーケンサ12は、キャッシュメモリ13にデータが存在する場合には、キャッシュデータ領域131から該当するデータをリードするブロック402。一方、キャッシュメモリ13にデータが存在しない場合には、シーケンサ12は、メインメモリ30からライン単位でデータを取得し、キャッシュメモリ13に保存するブロック405。シーケンサ12は、キャッシュタグ領域132のキャッシュタグの各情報アドレス及びアクセス履歴及びキャッシュデータの有効性を更新する。ライン単位のデータとは、該当するデータと共に、所定の範囲の先読みデータを含む。シーケンサ12は、メインメモリ30からキャッシュメモリ13に保存した後に、該当するデータをキャッシュメモリ13のキャッシュデータ領域131からリードするブロック402。エラー処理モジュール14は、キャッシュデータ領域131からリードされたデータにエラーが存在するか否かを判定するブロック403。エラーが未検出の場合には、シーケンサ12は、当該リード要求のデータをインターフェース11を介してCPU20に転送するブロック403のNO,404。一方、エラー処理モジュール14は、リードされたデータからエラーを検出した場合には、データに付加されたECCデータを使用して訂正可能であるか否かを判定するブロック406。なお、ECCデータは、所定の符号化方式によりエラー訂正符号データである。エラー処理モジュール14は、訂正可能であれば、エラー訂正処理を実行するブロック407。シーケンサ12は、エラー訂正後のデータをインターフェース11を介してCPU20に転送するブロック404。エラー処理モジュール14は、エラー訂正が不可能である場合に、既存のデータ復元方法によりデータ復元データリカバリ処理を実行するブロック406のNO,408。例えば、シーケンサ12は、エラー処理モジュール14からの訂正不能の通知に応じて、エラーが発生したキャッシュラインリード要求を含むライン単位のデータを再度メインメモリ30から取得し、リード要求のデータをCPU20に転送するブロック409。エラー処理モジュール14は、エラーの要因を解析し、ソフトエラーまたはハードエラーのいずれであるかのエラー種別を判定するブロック410。この場合、エラー処理モジュール14は、既存のエラー解析方法により、ソフトエラーとハードエラーのエラー種別を判定する。例えば、シーケンサ12は、エラーが発生したキャッシュラインに対応するキャッシュデータ領域131に、メインメモリ30から再度リードしたデータを書き込む。エラー処理モジュール14は、そのキャッシュラインを読み出した時に期待値と異なる、若しくは同じエラーが再度発生する場合には、ハードエラーと判断する。一方、エラー処理モジュール14は、期待値と一致若しくはエラーが発生しない場合にはソフトエラーと判断する。シーケンサ12は、エラー処理モジュール14のエラー解析により、エラー種別がソフトエラーと判断した場合には、CPU20に通知して処理を終了するブロック411。ここで、一般的にソフトエラーの場合には、CPU20は通知に応じて、リードリトライを実行することによりエラー回復が可能である。また、エラー処理モジュール14がハードエラーと判断した場合は、シーケンサ12は、当該キャッシュメモリグループここではキャッシュメモリ130とするを、パワーダウン対象電源制御対象として内部レジスタに登録し、かつその登録をCPU20に通知するブロック412。ここで、本実施形態のキャッシュコントローラ10は、CPU20からハードエラーに対するリカバリ処理の要求がない場合は処理を終了するブロック413のNO。CPU20は、キャッシュコントローラ10からのパワーダウン対象の登録通知に基づいて、ハードエラーに対するリカバリ処理が必要と判断した場合は、キャッシュメモリのパワーダウン処理を伴う無効invalidate要求を発行するブロック413のYES。ここで、リカバリ処理とは、ハードエラーが発生したキャッシュメモリ130を復帰させる処理である。CPU20からの要求に応じて、シーケンサ12は、対象とするキャッシュメモリグループキャッシュメモリ130に対する封鎖処理を実行するブロック414。これにより、シーケンサ12は、該当するキャッシュメモリ130をキャッシュタグ及びキャッシュデータの格納対象から外す。次に、シーケンサ12は、電源コントローラ40に対して、該当するキャッシュメモリ130に対する電源供給の遮断を指示するブロック415。この指示に応じて、電源コントローラ40は、パワースイッチ420の電源遮断を実行し、キャッシュメモリ130に対する電源供給を遮断する。電源コントローラ40は、電源遮断後の電源安定化の待ち時間を含む所定の時間経過後に、キャッシュメモリ130に対する電源供給を再開するブロック416。電源コントローラ40は、電源の再投入後の電源安定化の待ち時間経過後に、シーケンサ12にその旨を通知する。シーケンサ12は、ハードエラーが解消されたと判定し、該当するキャッシュメモリ130を復帰させる処理を実行するブロック418。以上のようにして本実施形態によれば、ハードエラーが発生したと判定されたキャッシュメモリグループ例えばキャッシュメモリ130に対して、電源遮断及び電源再投入の電源制御を実行することにより、ハードエラーの解消を図ることが可能となる。ここで、本実施形態のハードエラーとは、シングルイベントラッチアップと呼ばれる現象によるメモリ機能障害を想定している。この種のハードエラーは、例えば宇宙放射線による荷電粒子の入射で大電流がキャッシュメモリに流れて、メモリ機能障害が起こる現象である。このようなハードエラーによるメモリ機能障害は、前述の電源制御により復帰する可能性が高い。従って、本実施形態での電源コントローラ40を介した電源制御により、当該ハードエラーを解消することが可能となる。一方、ハードエラーがメモリ素子の破壊により発生している場合には、該当するキャッシュメモリグループの復帰は困難となる。キャッシュコントローラ10は、前述の電源制御により復帰処理したキャッシュメモリグループに、依然としてハードエラーが発生する場合には、メモリ素子の破壊によるハードエラーと判定する。この場合には、キャッシュコントローラ10は、当該キャッシュメモリグループを封鎖して、使用禁止として処理するCPU20への通知も含む。本実施形態のキャッシュコントローラ10であれば、キャッシュメモリから読み出したデータに訂正不能なエラーが検出されて、そのエラーがハードエラーの場合でも、データ復元データリカバリ処理が実行される。従って、ハードエラーに対して当該キャッシュメモリを封鎖して使用禁止とすることなく、CPU20に対してリード要求のデータを転送できる。従って、キャッシュ動作を中断することなく、キャッシュ動作中にデータ復元が行なわれるため、キャッシュ動作の性能劣化を抑制することができる。さらに、ハードエラーの発生に対する対処として、パワーダウン処理電源制御処理を実行することにより、シングルイベントラッチアップなどのメモリ機能障害によるハードエラーを解消することが可能となる。従って、キャッシュメモリのハードエラーの発生箇所を減少させることが可能となり、キャッシュメモリを封鎖して使用禁止とする事態を抑制できるため、結果としてキャッシュメモリの長寿命化を実現できる。これにより、ハードエラーに対する対処を効率的に実行することができる。なお、本実施形態では、キャッシュメモリグループ130~132毎に電源系統を分離する構成であるため、ハードエラーが発生したキャッシュメモリグループに対してパワーダウン処理電源制御処理を選択的に実行できる。従って、他の正常なキャッシュメモリグループに対するキャッシュ動作を維持できる。変形例前述したように本実施形態のキャッシュコントローラ10は、ハードエラーが発生したキャッシュメモリグループに対する電源遮断と電源再投入の電源制御処理後に、そのキャッシュメモリグループを復帰させる。本変形例は、当該復帰処理に条件を追加して、電源再投入後にキャッシュメモリグループのテストを実行し、ハードエラーが検出されない場合または使用可能なラインキャッシュが多い場合に復帰する構成である。この場合、当該復帰条件を満たさないと、当該キャッシュメモリグループを再度封鎖して電源供給を遮断する。これにより、キャッシュ動作性能は劣化するが、無駄な電力消費を抑制することが可能となる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"