"記憶媒体から暗号化された所定単位のデータを読み出すリード手段と、前記リード手段により読み出されたデータをバッファ領域に転送するデータ転送手段と、前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成するテーブル生成手段とを具備するデータ記憶装置。前記テーブル生成手段は、前記新旧識別情報として、前記新暗号鍵を示す第1の情報および旧世代で使用していた全ての旧暗号鍵を一括して示す第2の情報のそれぞれを前記テーブル情報に設定する請求項1に記載のデータ記憶装置。前記テーブル生成手段により生成された前記テーブル情報を、前記バッファ領域とは異なるバッファ領域に転送する転送手段を有する請求項1または請求項2のいずれか1項に記載のデータ記憶装置。前記リード手段により読み出されたデータを前記新暗号鍵により復号化する復号化手段を有する請求項1から請求項3のいずれか1項に記載のデータ記憶装置。前記バッファ領域に格納された所定単位のデータを前記記憶媒体に書き戻すライト動作を実行する際に、前記テーブル情報から当該データに対応する新旧識別情報を取得する手段と、前記データに前記新旧識別情報を含ませて前記記憶媒体に書き戻すライト手段とを有する請求項1から請求項4のいずれか1項に記載のデータ記憶装置。前記ライト手段は、前記新旧識別情報を含むデータを、前記記憶媒体から読み出された場所と同一の場所に書き戻す請求項5に記載のデータ記憶装置。前記ライト手段は、前記新旧識別情報を含むデータを、前記記憶媒体から読み出された場所とは異なる場所に書き戻す請求項5に記載のデータ記憶装置。前記ライト動作を実行する場合に、前記バッファ領域から読み出された前記所定単位のデータを暗号化する暗号化手段を有する請求項5から請求項7のいずれか1項に記載のデータ記憶装置。入力されたデータをバッファ領域に転送するデータ転送手段と、前記データ転送手段の転送処理と並行して、所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成するテーブル生成手段とを具備する記憶制御装置。記憶媒体に対して暗号化された所定単位のデータを読み出し又は書き込むデータ記憶装置に適用する記憶制御方法であって、前記記憶媒体から読み出されたデータをバッファ領域に転送し、前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成する記憶制御方法。ディスクドライブなどのデータ記憶装置では、記憶媒体から読み出したデータをバッファメモリに一時的に退避させて、このデータを記憶媒体に書き戻すライト動作モードがある。具体的には、トラックに対して記録データを、再度書き込むリフレッシュ動作である。一般的に、ディスク上であるトラックに記録磁界を印加してデータをライトする場合に、当該トラックの隣接トラックに対して記録磁界の洩れ磁束が影響する。そこで、リフレッシュ動作で隣接トラックに記録データを書き戻すことにより、当該影響を抑制することができる。ここで、ディスク上には、新旧の暗号鍵により暗号化されたデータが混在して記憶されている。ディスクドライブは、ディスクから読み出したデータを復号化せずに、バッファメモリに一時的に退避させる。この後、ディスクドライブは、バッファメモリから読み出したデータから鍵世代情報を解析し、新暗号鍵により暗号化された新データと旧暗号鍵により暗号化された旧データとを分離してディスク上に書き戻す。このため、鍵世代情報を解析する処理時間や、新データと旧データとを分離して書き込むライト動作の処理時間を要することになり、処理効率の向上が望まれる。そこで、本発明の目的は、暗号化復号化機能を有するデータ記憶装置での書き戻し処理の高速化を図ることで処理効率の向上を実現することにある。実施形態によれば、データ記憶装置は、リード手段と、データ転送手段と、テーブル生成手段とを具備する。リード手段は、記憶媒体から暗号化された所定単位のデータを読み出す。データ転送手段は、前記リード手段により読み出されたデータをバッファ領域に転送する。テーブル生成手段は、前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成する。以下図面を参照して、実施形態を説明する。[データ記憶装置の構成]図1に示すように、本実施形態のデータ記憶装置はディスクドライブ1であり、ホストコンピュータ又はインターフェースデバイスなど2から転送されるデータをディスク10上に書き込み、ディスク10上から読み出したデータをホスト2に転送する。なお、本実施形態のデータ記憶装置はディスクドライブ1だけでなく、フラッシュメモリを記憶媒体とするSSDsolidstatedriveにも適用可能である。ディスクドライブ1は、ヘッド11と、リードライトモジュール12と、ハードディスクコントローラ以下、HDCと表記する13と、マイクロプロセッサユニットMPU18と、メモリ19とを有する。ヘッド11は、図示しないアクチュエータに搭載されて、ディスク10上の半径方向に移動し、指定のトラックに対してデータを書き込みと読み出しを実行する。リードライトモジュール12は、リード/ライトチャネルとも呼ばれており、ヘッド11に対するリード/ライト信号を処理し、ディスク10上から読み出されたリード信号からデータを再生し、かつディスク10上に書き込むデータをライト信号に変換する。HDC13は、リード/ライトR/Wコントローラ14と、サーボコントローラ15と、誤り検出訂正ECC:errorcheckingandcorrectingモジュール16と、暗号/復号モジュール17とを含む。HDC13はMPU18と連携して、ホスト2との間のインターフェース制御を実行する。また、HDC13は、メモリ19のバッファ領域を使用し、ホスト2との間のデータ転送を制御する。R/Wコントローラ14は、メモリ19のバッファ領域を使用して、リードライトモジュール12との間のデータ転送を制御する。サーボコントローラ15は、ディスク10上に記録されているサーボデータを使用して、ヘッド11の位置決め制御を実行する。ECCモジュール16は、ディスク10上から読み出されたデータに付加されているECCerrorcorrectingcodeデータを使用して、誤り訂正処理ECC処理を実行する。また、後述するように、ECCモジュール16は、新旧の暗号鍵を識別する鍵世代情報キー世代情報または新旧識別情報と表記する場合があるを符号化してECCデータに含ませる処理、及びキー世代情報をECCデータから復元する処理を実行する。暗号/復号モジュール17は、内部メモリに格納されている新暗号鍵を使用して、データの暗号化又は復号化を実行するハードウェアのロジックから構成されている。新暗号鍵とは、現在使用中の最新の暗号鍵を意味する。暗号/復号モジュール17は、後述するように、データの書き戻し処理を行なうためのリード動作及びライト動作を実行する場合に、暗号化又は復号化を実行しないで転送するバイパスモードを実行する。なお、新暗号鍵に対する旧世代で使用していた暗号鍵を旧暗号鍵と呼び、複数の旧世代で使用していた暗号鍵を含む。[書き戻し処理]以下、本実施形態のディスクドライブ1において、例えばリフレッシュ動作の場合に、HDC13が実行するデータの書き戻し処理をリード動作とライト動作に分けて説明する。まず、図2のブロック図、図3から図6の模式図、および図7のフローチャートを参照して、書き戻し処理でのリード動作を説明する。リード動作は、書き戻し対象のデータをメモリ19に一時的に退避させる処理を実行する動作である。図2は、リード動作に関係する暗号/復号モジュール17の構成を概念的に示す図である。前述したように、暗号/復号モジュール17はハードウェアのロジックから構成されており、暗号化データを復号化する復号器20を含む。図1に示すように、HDC13は、ディスク10上のリフレッシュ対象のトラックからデータを読み出すリード動作を実行する。リード動作では、サーボコントローラ15の制御により、ヘッド11がディスク10上の指定トラックリフレッシュ対象まで移動される。リードライトモジュール12は、ヘッド11から出力されるリード信号からデータを再生して、HDC13に伝送する。ここで、ディスクドライブ1では、図3に示すように、所定のアクセス単位としてセクタ単位のデータ30が取り扱われる。1つのトラックには、多数のデータ30が連続的に記録されている。データ30のフォーマットは、ホスト2から転送されるユーザデータを意味するセクタデータ31と、CRCcyclicredundancycheckコード32と、ECCデータ33とからなる。図7のフローチャートに示すように、HDC13では、ECCモジュール16は、セクタ単位のデータ30に対して、ECCデータ33を使用して、ECC処理を実行するブロック100。ECCモジュール16は、ECCデータ33に符号化されて含まれているキー世代情報を復元するブロック101。ECCモジュール16は、復元したキー世代情報と共に、ECC処理後のセクタデータ31及びCRCコード32を出力する。暗号/復号モジュール17は、ECCモジュール16からのキー世代情報を内部のレジスタ23に保持する。また、暗号/復号モジュール17は、ECC処理後のセクタデータ31及びCRCコード32を、復号器20へのルート21をパスして、バイパス22経由で出力するブロック106。なお、図示していないCRCモジュールにより、ECC処理後のセクタデータ31及びCRCコード32はエラーチェック処理が実行される。なお、暗号/復号モジュール17は、バイパス22経由ではなく、復号器20により復号化したセクタデータ31及びCRCコード32をメモリ19に転送してもよいブロック105。この場合、復号化されるセクタデータ31は、新暗号鍵により暗号化されたデータである。旧世代で使用していた旧暗号鍵により暗号化されたセクタデータ31は、初期化されたデータまたは無意味なランダムデータに変換される。HDC13は、図6に示すように、暗号/復号モジュール17から出力されるセクタデータ31及びCRCコード32をメモリ19に確保したデータバッファ領域190に格納するブロック107。即ち、データバッファ領域190には、リフレッシュ対象のトラックに含まれるセクタ単位のセクタデータ31及びCRCコード32が格納される。一方、暗号/復号モジュール17は、ECCモジュール16により復元されたキー世代情報新旧識別情報を内部のレジスタ23に保持し、このキー世代情報の新旧世代を判定するブロック102。図4は、便宜的に、ECC処理後の8セクタブロック分のデータBL0~BL7において、復元されたキー世代情報40との対応関係を示す。キー世代情報40は、各セクタデータ31が現在使用中の最新の新暗号鍵により暗号化されたことを示す情報KAである。あるいは、キー世代情報40は、各セクタデータ31が旧世代で使用していた旧暗号鍵により暗号化されたことを示す情報KB,KCである。KB,KCはそれぞれ、世代が異なる旧世代で使用していたことを意味する。暗号/復号モジュール17は、図5に示すように、例えば32ビットのフリップフロップ50を有し、新旧世代の判定結果を示すフラグ0または1であるキー世代情報フラグを一時的に保持する。ここで、キー世代情報40が最新の新暗号鍵を示す情報KAの場合には、判定結果としてフラグ0を設定する。また、キー世代情報40が旧世代で使用していた旧暗号鍵を示す情報KB,KCの場合には、一括してフラグ1を設定する。さらに、図5に示すように、暗号/復号モジュール17は、32ビット単位でキー世代情報フラグをFIFOfirstinfirstoutレジスタ51にセットするブロック103。HDC13は、図5に示すように、FIFOfirstinfirstoutレジスタ51にセットされたキー世代情報フラグをメモリ19のデータバッファ領域190以外のバッファ領域191に格納する。図7のフローチャートに戻って、HDC13は、バッファ領域191にキー世代情報フラグを順次格納することにより、キー世代情報フラグから構成されるキー世代情報テーブル500を生成するブロック104。即ち、キー世代情報テーブル500は、図4に示すように、データバッファ領域190に格納された各セクタデータ31に対応付けられるキー世代情報フラグ0又は1からなるテーブル情報である。次に、図8及び図9のブロック図、図10及び図11の模式図、および図12のフローチャートを参照して、書き戻し処理でのライト動作を説明する。ライト動作は、リフレッシュ対象のトラックから読み出したデータを、ディスク10上の当該トラックに書き戻す処理を実行する動作である。図8は、ライト動作に関係する暗号/復号モジュール17の構成を概念的に示す図である。前述したように、暗号/復号モジュール17はハードウェアのロジックから構成されており、データを暗号化する暗号器80を含む。図12のフローチャートに示すように、HDC13は、メモリ19のバッファ領域190から一時的に退避させたセクタ単位のデータ30を読み出して、暗号/復号モジュール17に転送するブロック200。暗号/復号モジュール17は、バッファ領域190からのデータ30セクタデータ31とCRCコード32を、暗号器80へのルート81をパスして、バイパス82経由で転送する。なお、暗号/復号モジュール17は、前述のリード動作において復号器20により復号化された場合には、バイパス82経由ではなく、暗号器80によりデータ30セクタデータ31とCRCコード32を暗号化してもよいブロック203。一方、図12のフローチャートに示すように、HDC13は、バッファ領域191に格納されたキー世代情報テーブル500から、バッファ領域190から読み出したデータ30に対応するキー世代情報フラグを読み出すブロック200。暗号/復号モジュール17はキー世代情報生成部83を有し、このキー世代情報生成部83にキー世代情報フラグ50を入力するブロック201。キー世代情報生成部83は、図9に示すように、例えばマルチプレクサから構成されている。キー世代情報生成部83は、転送されるデータ30に同期して、新旧のキー世代情報を生成するブロック202。具体的には、図9に示すように、マルチプレクサは、選択信号KGSに基づいて、レジスタAに保持されている最新の新暗号鍵を示す新のキー世代情報KAまたはレジスタXに保持されている旧世代で使用していた旧暗号鍵を示す旧のキー世代情報KXの一方を選択してキー世代情報40として出力する。選択信号KGSは、キー世代情報フラグのフラグ0,1に対応する。即ち、キー世代情報生成部83は、図10に示すように、転送されるデータ30に同期して、フラグ0に対応するデータ30の場合には、新のキー世代情報KAをキー世代情報40として出力する。また、キー世代情報生成部83は、フラグ1に対応するデータ30の場合には、旧のキー世代情報KXをキー世代情報40として出力する。この旧のキー世代情報KXは、異なる旧世代で使用していたキー世代情報KB,KCを一括して意味する情報である。図12のフローチャートに戻って、暗号/復号モジュール17は、バイパス82経由で転送されるデータ30に対して、キー世代情報生成部83からのパス84で転送されるキー世代情報40を付加し、出力パス85でECCモジュール16に送るブロック204。ECCモジュール16は、図11に示すように、セクタデータ31からECC処理によりECCデータ33を算出して付加するブロック205。この場合、ECCモジュール16は、キー世代情報40を符号化してECCデータ33に含ませる。図12のフローチャートに戻って、HDC13は、ECCモジュール16によりECC処理後のデータ30を、リードライトモジュール12に転送して、リフレッシュ対象のトラックに書き戻すライト処理を実行するブロック206。この場合、図1に示すように、サーボコントローラ15の制御により、ヘッド11は、ディスク10上の指定トラックリフレッシュ対象トラックまで移動される。リードライトモジュール12は、HDC13から転送されるデータ30に応じたライト信号をヘッド11に供給する。なお、リフレッシュ対象トラックは、前と同じトラックまたは異なるトラックのいずれの場合でもよい。以上のように本実施形態によれば、例えばリフレッシュ動作に必要なデータの書き戻し処理を実行する場合に、リード動作ではディスク10から読み出したデータをバッファ領域190に退避させる処理と並行して、キー世代情報40を収集してキー世代情報テーブル500を作成して別のバッファ領域191に格納することができる。従って、ディスクドライブ1では、ディスク10の1回転で、データの退避処理と、キー世代情報40を収集する処理とを並列的に行なうことができる。さらに、ライト動作では、バッファ領域190からデータを取り出す処理と並行して、キー世代情報40を生成する処理を行なうことができる。このため、ディスク10の1回転で、書き戻し対象のデータにキー世代情報40を含ませて、ライト動作を行なうことができる。従って、例えばリフレッシュ動作に必要なデータの書き戻し処理を実行する場合に、当該書き戻し処理の高速化を図ることができる。これにより、暗号復号機能を有するデータ記憶装置でのリフレッシュ動作の効率を向上することができる。特に、キー世代情報40をECC処理によりECCデータに含ませて、キー世代情報40を記憶媒体上に直接的に記録しない方法を採用するデータ記憶装置ではきわめて有効である。なお、本実施形態では、暗号/復号モジュール17がハードウェアロジックにより構成されている場合を想定したが、データの退避処理とキー世代情報40を収集する処理とを並列的に行なうことが可能であれば、ソフトウェアモジュールにより構成されている場合でも適用できる。また、本実施形態は、デイスクドライブだけでなく、データのウェアレベリング制御やリフレッシュ処理が必要なSSDなどのデータ記憶装置にも適用可能である。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"