(57)【要約】【課題】複数の暗号鍵を設定可能な磁気ディスク装置において、暗号鍵の設定変更時間を低減可能な磁気ディスク装置を提供する。【解決手段】ＨＤＣ１１０は、ホストシステム２００が発行したコマンドをホストシステム２００から受信し、当該コマンドに応じて、磁気ディスク１０３への書き込みが指示されたライトデータをホストシステム２００から受信したり、磁気ディスク１０３からの読み出しが指示されたリードデータをホストシステム２００に送信したりする。暗号／復号回路１１０ｂは、ＣＰＵ１０１により設定された暗号鍵を用いて、ライトデータを暗号化したり、リードデータを復号化したりする。ＣＰＵ１０１は、キューバッファ１０９ａに記憶されている実行待ちコマンドを解析して、暗号／復号回路１１０ｂに設定されている暗号鍵に対応する記憶領域へのアクセスを生じさせるコマンドの実行順序を上げる。【選択図】        図１
2011008733.tif 000002
【特許請求の範囲】
【請求項１】
ユーザを識別するための各個人識別情報を用いて各々生成された各暗号鍵に対応させて記憶領域が複数に分割されている記録媒体へのデータの書き込み又は前記記録媒体からのデータの読み出しを指示するコマンドであって、複数の前記記憶領域のうち少なくとも１つへのアクセスを生じさせるコマンドを情報処理装置から受信する受信部と、
設定された前記暗号鍵を用いて、前記コマンドによって書き込みが指示されたデータを暗号化し又は、前記コマンドによって読み出しが指示されたデータであって暗号化されているデータを復号化する暗復号部と、
暗号化された前記データの前記記録媒体への書き込み及び前記記録媒体からのデータの読み出しを制御する読み書き制御部と、
前記コマンドの実行に応じて、前記コマンドによってアクセスされる前記記憶領域に対応する前記暗号鍵を前記暗復号部に設定する設定部と、
前記コマンドの実行順序を制御する制御部であって、実行されていない前記コマンドのうち、前記暗復号部に設定されている前記暗号鍵に対応する前記記憶領域へのアクセスを生じさせる前記コマンドの実行順序を上げる順序制御部と、
前記実行順序に従って、前記コマンドを実行する実行部とを備える
ことを特徴とする磁気ディスク装置。
【請求項２】
前記順序制御部は、前記実行部が実行中のコマンドが存在する場合、当該コマンドの実行が終了する時点で前記暗復号部に設定されているであろう前記暗号鍵を求め、実行されていない前記コマンドのうち、求められた前記暗号鍵に対応する前記記憶領域へのアクセスを生じさせる前記コマンドの実行順序を上げる
ことを特徴とする請求項１に記載の磁気ディスク装置。
【請求項３】
前記順序制御部は、実行されていない前記コマンドのうち、その実行中に暗号鍵の設定の変更が必要ない前記コマンドの実行順序を上げる
ことを特徴とする請求項１に記載の磁気ディスク装置。
【請求項４】
前記順序制御部は、前記実行部が実行中のコマンドが存在する場合、当該コマンドの実行が終了する時点で前記暗復号部に設定されているであろう前記暗号鍵を求め、実行されていない前記コマンドのうち、求められた前記暗号鍵に対応する前記記憶領域へのアクセスを生じさせる前記コマンドについて、その実行中に前記暗号鍵の設定の変更の回数が少ないほど実行順序を上げる
ことを特徴とする請求項１に記載の磁気ディスク装置。
【請求項５】
実行されていない前記コマンドであって且つその実行中に暗号鍵の設定の変更が必要な前記コマンドについて、設定される前記暗号鍵が異なる毎に当該コマンドを分割する分割部を更に備える
ことを特徴とする請求項１に記載の磁気ディスク装置。
【請求項６】
前記順序制御部は、実行されていない前記コマンドのうち、前記暗復号部に設定されている前記暗号鍵に対応する前記記憶領域へのアクセスを生じさせる前記コマンドが存在しない場合、当該コマンドが前記情報処理装置から受信されるのを待機し、当該コマンドが前記情報処理装置から受信された場合、当該コマンドの実行順序を一番にする
ことを特徴とする請求項１に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置に関する。
【背景技術】
【０００２】
近年、高度なセキュリティ機能を持つ磁気ディスク装置へのニーズが高まり、記録媒体である磁気ディスクへ記録するデータを暗号化する磁気ディスク装置の製造が行われている。このような磁気ディスク装置は、磁気ディスクに記録されるデータを単一の暗号鍵を用いて暗号化したり復号化したりする。さらに高度なセキュリティ機能を持つ磁気ディスク装置として、複数の個人識別情報から複数の暗号鍵を生成し、磁気ディスク装置内のデータを複数の記憶領域に分割し当該記憶領域毎に個別の暗号鍵を用いてデータを暗号化したり復号化したりする磁気ディスク装置が開発されている（例えば特許文献１参照）。このような暗号化機能を持つ磁気ディスク装置では、データを暗号化したり復号化したりする際に、暗号／復号回路に暗号鍵を設定して暗号化したり復号化したりする。即ち、暗号鍵を暗号／復号回路に設定することによって、磁気ディスクに記録するデータを暗号化したり磁気ディスクに記録されたデータを復号化したりすることが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２０１０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、単一の暗号鍵が設定される磁気ディスク装置では、磁気ディスク上のデータにアクセスする際にどのデータに対しても同一の暗号鍵を用いることができるため、暗号／復号回路に設定する暗号鍵を変更する必要はない。しかし、例えば特許文献１に示されるような複数の暗号鍵が設定可能な磁気ディスク装置では、暗号／復号回路に設定中である暗号鍵と異なる暗号鍵で管理される記憶領域へのアクセスが必要となった場合には、暗号／復号回路へ暗号鍵を改めて設定する必要がある。暗号／復号回路への暗号鍵の設定には磁気ディスク十数回分の回転時間が掛かる。コマンドの実行順序を並び替えるリオーダリング手法では、従来、暗号鍵の設定の変更に掛かる時間（設定変更時間という）というのは考慮されていない。このため、複数の暗号鍵が設定可能な磁気ディスク装置において、従来のリオーダリング手法を用いてコマンドの実行順序を並び替えると、暗号鍵の設定の変更が頻繁に生じる恐れがあり、暗号鍵の設定変更時間が増大して、処理性能が低下する恐れがある。
【０００５】
本発明は、上記に鑑みてなされたものであって、複数の暗号鍵を設定可能な磁気ディスク装置において、暗号鍵の設定変更時間を低減可能な磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、磁気ディスク装置であって、ユーザを識別するための各個人識別情報を用いて各々生成された各暗号鍵に対応させて記憶領域が複数に分割されている記録媒体へのデータの書き込み又は前記記録媒体からのデータの読み出しを指示するコマンドであって、複数の前記記憶領域のうち少なくとも１つへのアクセスを生じさせるコマンドを情報処理装置から受信する受信部と、設定された前記暗号鍵を用いて、前記コマンドによって書き込みが指示されたデータを暗号化し又は、前記コマンドによって読み出しが指示されたデータであって暗号化されているデータを復号化する暗復号部と、暗号化された前記データの前記記録媒体への書き込み及び前記記録媒体からのデータの読み出しを制御する読み書き制御部と、前記コマンドの実行に応じて、前記コマンドによってアクセスされる前記記憶領域に対応する前記暗号鍵を前記暗復号部に設定する設定部と、前記コマンドの実行順序を制御する制御部であって、実行されていない前記コマンドのうち、前記暗復号部に設定されている前記暗号鍵に対応する前記記憶領域へのアクセスを生じさせる前記コマンドの実行順序を上げる順序制御部と、前記実行順序に従って、前記コマンドを実行する実行部とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数の暗号鍵を設定可能な磁気ディスク装置において、暗号鍵の設定変更時間を低減可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施の形態にかかるＨＤＤ１００の構成を例示する図である。
【図２】図２は、ホストシステム２００が発行してＨＤＣ１１０によって受信されたコマンドがキューバッファ１０９ａに記憶されている様子を例示する図である。
【図３】図３は、従来の磁気ディスク装置が行なうリオーダリング処理の手順を示すフローチャートである。
【図４】図４は、同実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順を示すフローチャートである。
【図５】図５は、第２の実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順を示すフローチャートである。
【図６】図６は、第３の実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順を示すフローチャートである。
【図７】図７は、リオーダリング処理前にキューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示する図である。
【図８】図８は、キューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示すると共に、その実行順序を例示する図である。
【図９】図９は、第５の実施の形態にかかるリオーダリング処理前にキューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示する図である。
【図１０】図１０は、キューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示すると共に、その実行順序を例示する図である。
【発明を実施するための形態】
【０００９】
[第１の実施の形態]
以下に添付図面を参照して、この発明にかかる磁気ディスク装置の実施の形態を詳細に説明する。図１は、本実施の形態にかかる磁気ディスク装置（以下、ＨＤＤと称する）の構成を例示する図である。同図に示されるように、ＨＤＤ１００は、ＣＰＵ（Central Processing Unit）１０１と、モータドライバ（ＶＣＭ・ＳＰＭドライバ）１０２と、磁気ディスク１０３と、スピンドルモータ（ＳＰＭ）１０４と、ボイスコイルモータ（ＶＣＭ）１０５と、磁気ヘッド１０６と、ＣＰＵバス１０７と、ＲＯＭ（Read Only Memory）１０８と、ＲＡＭ（Random Access Memory）１０９と、ディスクコントローラ（以下、ＨＤＣと称する）１１０と、ゲートアレイ１１１と、バッファＲＡＭ１１２と、リード／ライトＩＣ１１３と、ヘッドＩＣ１１４とを有する。
【００１０】
ＲＯＭ１０８は、各種データやＣＰＵ１０１が実行する各種プログラムを記憶する。ＲＡＭ１０９は、各種データや各種プログラムを一時的に記憶するものであり、ＣＰＵ１０１のワーク領域及び変数を記憶する変数領域として機能する。ＣＰＵ１０１は、ＲＯＭ１０８に記憶された各種プログラムをＲＡＭ１０９に読み出してこれを実行して、ＨＤＤ１００全体の制御及びモータドライバ（ＶＣＭ・ＳＰＭドライバ）１０２の制御を時分割で行う主コントローラとして機能するプロセッサである。モータドライバ１０２はＣＰＵ１０１からの制御により、磁気ディスク１０３を定常回転させるスピンドルモータ（ＳＰＭ）１０４と、磁気ヘッド１０６を目標位置に移動させるボイスコイルモータ（ＶＣＭ）１０５とを駆動するための電流を、ＳＰＭ１０４及びＶＣＭ１０５に供給する。ＨＤＣ１１０は、インタフェースバス２５０を介してホストシステム２００と通信を行い、ホストシステム２００が発行して送信したコマンドを受信する。本実施の形態においては、コマンドは、磁気ディスク１０３へのデータの書き込みや磁気ディスク１０３からのデータの読み出し及び送信を指示するものであり、当該コマンドの実行により、磁気ディスク１０３へのアクセスが生じるものである。そして、ＨＤＣ１１０は、当該コマンドに応じて、磁気ディスク１０３への書き込みが指示されたデータ（ライトデータ）をホストシステム２００から受信したり、磁気ディスク１０３からの読み出し及び送信が指示されたデータ（リードデータ）をホストシステム２００に送信したりする。ゲートアレイ１１１は、ＨＤＤ１００内での制御に必要な諸信号の生成を行う制御信号生成回路として機能する。ＣＰＵ１０１、ＲＯＭ１０８、ＲＡＭ１０９、ＨＤＣ１１０及びゲートアレイ１１１は、ＣＰＵバス１０７に接続されている。なお、ＲＡＭ１０９をＣＰＵ１０１に内蔵させ、ＣＰＵ１０１がＣＰＵバス１０７から独立にＲＡＭ１０９を直接アクセスする構成とすることも可能である。
【００１１】
ＲＡＭ１０９の記憶領域の一部は、キューバッファ（キューバッファバッファ、キューバッファテーブル）１０９ａのための領域として用いられる。キューバッファ１０９ａは、ＨＤＤ１００を利用するホストシステム２００から送信されるコマンドを当該コマンドが実行されるまでの期間記憶するのに用いられる。本実施の形態において、キューバッファ１０９ａ内でのコマンドの並び順は、初期段階では、入力順（受信順）であるが、後述のリオーダリング処理によって適宜変更される。そして、キューバッファ１０９ａの最も上にあるコマンドからＣＰＵ１０１により実行される。
【００１２】
磁気ディスク１０３には、ＣＰＵ１０１の制御の下、ＨＤＣ１１０を介して、データが書き込まれたり、データが読み出されたりする。また、磁気ディスク１０３は、複数の記憶領域に分割されており、各記憶領域は、後述するユーザを識別するための個人識別情報が用いられて暗号化された暗号鍵に各々対応する。本実施の形態においては、対応する暗号鍵によって暗号化されたデータが当該記憶領域に書き込まれ、当該記憶領域から読み出されたデータは、当該記憶領域に対応する暗号鍵によって復号可能になる。各記憶領域と各暗号鍵との対応関係は、例えば、テーブルとして、磁気ディスク１０３に書き込まれるようにしても良いし、ＨＤＣ１１０内に記憶回路を備え、当該記憶回路に記憶されるようにしても良い。
【００１３】
ＨＤＣ１１０は、レジスタ部１１０ａと、暗号／復号回路１１０ｂとを有する。レジスタ部１１０ａは、制御用レジスタの群から構成される。暗号／復号回路１１０ｂは、ＣＰＵ１０１により設定された後述の暗号鍵を用いて、磁気ディスク１０３への書き込みがコマンドによって指示されたデータ（ライトデータ）を暗号化したり、磁気ディスク１０３からの読み出し及び送信がコマンドによって指示されたデータ（リードデータ）であって暗号化されているデータを復号化したりする。ゲートアレイ１１１もＨＤＣ１１０と同様に制御用レジスタの群から構成されるレジスタ部（図示せず）を有している。各制御用レジスタは、ＣＰＵ１０１のアドレス空間の一部領域に割り当てられている。ＣＰＵ１０１は、制御用レジスタが割り当てられている領域に対して読み出し／書き込みを行うことで、対応するＨＤＣ１１０またはゲートアレイ１１１を制御する。ＨＤＣ１１０は、ＣＰＵバス１０７以外に、ゲートアレイ１１１、バッファＲＡＭ１１２、及びリード／ライトＩＣ１１３に接続されている。
【００１４】
バッファＲＡＭ１１２は、ＲＡＭ１０９によって構成されるバッファメモリである。バッファＲＡＭ１１２の記憶領域の一部は、ホストシステム２００から送信されたライトデータを一時記憶するためのライトバッファのための領域として用いられる。バッファＲＡＭ１１２の記憶領域の他の一部は、リードデータを一時記憶するためのリードバッファのための領域として用いられる。ライトバッファ及びリードバッファは例えばリングバッファとして用いられる。
【００１５】
ヘッドＩＣ１１４は、磁気ヘッド１０６により読み出された信号（アナログのリード信号）を増幅して、リード／ライトＩＣ１１３に出力する。また、ヘッドＩＣ１１４は、磁気ヘッド１０６を制御して、リード／ライトＩＣ１１３から出力された書き込み用の信号を磁気ディスク１０３へ書き込ませる。磁気ヘッド１０６は、磁界を発生させて磁性体を磁化して、書き込み用の信号を磁気ディスク１０３へ書き込んだり、磁界の変化を検知して磁気ディスク１０３に書き込まれているデータを信号として読み出したりする。リード／ライトＩＣ１１３は、ヘッドＩＣ１１４が増幅したリード信号をＡ／Ｄ（アナログ／ディジタル）変換し符号化してＨＤＣ１１０に出力したり、リード信号をパルス化してゲートアレイ１１１に出力したりする。また、リード／ライトＩＣ１１３は、ゲートアレイ１１１からの制御用の各信号に従ってＨＤＣ１１０によって暗号化されたデータを符号化してこれを書き込み用の信号に変換して、ヘッドＩＣ１１４に出力する。
【００１６】
ＨＤＤ１００におけるデータの読み出し時には、磁気ディスク１０３に記録されているデータ（リードデータ）が磁気ヘッド１０６によって読み出される。磁気ヘッド１０６により読み出された信号（アナログのリード信号）は、ヘッドＩＣ１１４によって増幅され、しかる後にリード／ライトＩＣ１１３によってＡ／Ｄ（アナログ／ディジタル）変換されて符号化されてＨＤＣ１１０に出力される。また、ヘッドＩＣ１１４によって増幅されたリード信号はリード／ライトＩＣ１１３によってパルス化され、ゲートアレイ１１１に出力される。ゲートアレイ１１１は、リード／ライトＩＣ１１３から出力されるパルス（リードパルス）から各種タイミング信号を生成する。ＨＤＣ１１０は、リード／ライトＩＣ１１３によって符号化されたリードデータをゲートアレイ１１１からの制御用の各信号に従って処理する。この処理の中には、暗号／復号回路１１０ｂによるリードデータの復号化の処理が含まれる。ＨＤＣ１１０は、このような処理を行うことにより、ホストシステム２００に送信すべきリードデータを生成する。このリードデータは一旦バッファＲＡＭ１１２に記憶されてから、インタフェースバス２５０を介してホストシステム２００に転送される。
【００１７】
一方、ＨＤＤ１００におけるデータの書き込み時には、ホストシステム２００からインタフェースバス２５０を介してＨＤＤ１００に送信されたライトデータが、当該ＨＤＤ１００のＨＤＣ１１０で受け取られて、一旦バッファＲＡＭ１１２に記憶される。このバッファＲＡＭ１１２に記憶されたライトデータは、ゲートアレイ１１１からの制御用の各信号に従ってＨＤＣ１１０によって符号化され、暗号／復号回路１１０ｂにより暗号鍵が用いられて暗号化され、リード／ライトＩＣ１１３によって書き込み用の信号に変換され、ヘッドＩＣ１１４を経由して磁気ヘッド１０６によって磁気ディスク１０３に書き込まれる。
【００１８】
ここで、データの暗号化及び復号化に用いられる暗号鍵について説明する。暗号鍵は、ＣＰＵ１０１が例えばユーザを認証するための個人識別情報を暗号化関数や一方向性関数により変換することで生成する。ユーザの個人識別情報は、例えば、ユーザの認証時にＣＰＵ１０１は取得する。具体的には、ユーザの認証時に、ＣＰＵ１０１が、個人識別情報の入力を求め、個人識別情報が操作入力部（図示せず）を介して入力されると、これを用いて暗号鍵を生成し、これを暗号／復号回路１１０ｂに入力することで、暗号／復号回路１１０ｂに暗号鍵を設定する。ユーザの認証をどのように行うかは本実施の形態においては特に限定されない。
【００１９】
次に、コマンドの実行順序を並び替えるリオーダリング処理について説明する。図２は、ホストシステム２００が発行してＨＤＣ１１０によって受信されたコマンドがキューバッファ１０９ａに記憶されている様子を例示する図である。同図においては、磁気ディスク１０３へのアクセスを実際に生じさせている実行中のコマンド（実行中コマンドという）が１つあり、それ以外に、まだ実行されておらず実行待ちの状態であるコマンド（実行待ちコマンドという）が５つ並んでいる様子が例示されている。これらのコマンドの並び順は、リオーダリング処理が行われる前の初期段階では、上から順に、入力順となっている。ＣＰＵ１０１は、このようなコマンドの実行に際し、実行を開始するコマンドによってアクセスが生じる磁気ディスク１０３上の位置を計算し、ＶＣＭ１０５を制御して、当該位置へ磁気ヘッド１０６を移動させるシーク処理を行う。ＣＰＵ１０１がこのシーク処理を行っている間は、磁気ディスク１０３へのアクセスは生じない。このため、シーク処理に掛かる時間（シーク時間という）が必要になればなるほど、磁気ディスク装置の処理性能は低下することになる。これを解決するために、従来より、磁気ディスク装置は、コマンドの実行順序を並び替えるリオーダリング処理を行なっているのである。
【００２０】
ここで、従来の磁気ディスク装置が行なうリオーダリング処理の手順について図３を用いて説明する。磁気ディスク装置は、キューバッファの最も上にある実行待ちコマンドをＴとすると（ステップＳ１）、コマンドＴがキューバッファの末尾にあるか否かを判断する（ステップＳ２）。当該判断結果が否定的である場合、磁気ディスク装置は、キューバッファに記憶されているコマンドＴ以外の実行待ちコマンドのうち１つを候補のコマンドＵとし、コマンドＴとコマンドＵとでシーク時間が短い方を候補のコマンドＵとし（ステップＳ３）、コマンドＴより１つ下の実行待ちコマンドを新たなコマンドＴとして（ステップＳ４）、ステップＳ２に戻る。ステップＳ２の判断結果が肯定的となった場合は、磁気ディスク装置は、コマンドＵをキューバッファの最も上（先頭）におく（ステップＳ５）。このように、磁気ディスク装置が、コマンドの中で最もシーク時間が短くなると計算したコマンドを実行していくことで、全体のシーク時間を減少させることにより、磁気ディスク装置の処理性能を向上させることができる。
【００２１】
ところで、本実施の形態においては、ＨＤＤ１００は、複数の暗号鍵が設定可能であるため、磁気ディスク１０３においてコマンドによってアクセスの生じる位置の含まれる記憶領域が変わる際、暗号／復号回路１１０ｂに設定する暗号鍵を変更する必要がある。この暗号鍵の設定を変更する処理（暗号鍵設定変更処理という）を行わない場合の磁気ディスク１０３上の任意の位置へのアクセスへのシーク時間の期待値は、およそ6×10-3秒であるが、暗号鍵設定変更処理を行う場合にはその数十倍の時間が必要となる。従来の磁気ディスク装置のリオーダリング処理では、暗号鍵の設定の変更について考慮がなされていないため、暗号鍵設定変更処理が頻繁に必要になるような、磁気ディスク１０３上で異なる記憶領域へのアクセスが行われ続ける場合、磁気ディスク１０３の回転待ちの頻度、即ち、回転待ちの時間が増えて、ＨＤＤ１００の処理性能が極端に低下する。これを回避すべく、本実施の形態では、ホストシステム２００が発行してＨＤＣ１１０によって受信されたコマンドがキューバッファ１０９ａに複数記憶されている場合、ＨＤＤ１００のＣＰＵ１０１は、当該コマンドを解析して、暗号／復号回路１１０ｂに設定されている暗号鍵に対応する記憶領域へのアクセスを生じさせるコマンドの実行順序を上げて、コマンドの実行順序を適宜並び替える。
【００２２】
次に、本実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順について図４を用いて説明する。ＨＤＤ１００のＣＰＵ１０１は、暗号／復号回路１１０ｂに設定している暗号鍵を取得し（ステップＳ１０）、キューバッファ１０９ａの最も上にある実行待ちコマンドをＴとすると（ステップＳ１１）、コマンドＴがキューバッファ１０９ａの末尾にあるか否かを判断する（ステップＳ１２）。当該判断結果が否定的である場合、ＣＰＵ１０１は、コマンドＴを解析して、当該コマンドＴの実行の開始時にアクセスされる磁気ディスク１０３の位置が、ステップＳ１０で取得した暗号鍵に対応している記憶領域に含まれるか否かを判断する（ステップＳ１３）。当該判断結果が肯定的である場合、ＣＰＵ１０１は、キューバッファ１０９ａに記憶されているコマンドＴ以外の実行待ちコマンドを候補のコマンドＵとし、コマンドＴとコマンドＵとでシーク時間が短い方を候補のコマンドＵとし（ステップＳ１４）、コマンドＴより１つ下のコマンドを新たなコマンドＴとして（ステップＳ１５）、ステップＳ１２に戻る。ステップＳ１３の判断結果が否定的である場合には、ステップＳ１５に進む。ステップＳ１２の判断結果が肯定的となった場合は、ＣＰＵ１０１は、コマンドＵをキューバッファの最も上（先頭）におく（ステップＳ１６）。
【００２３】
以上のように、実行の開始時にアクセスされる位置が、暗号／復号回路１１０ｂに設定されている暗号鍵に対応する記憶領域に含まれるコマンドの実行順序を上げることで、暗号／復号回路１１０ｂにおける暗号鍵の設定を変更することなく実行可能なコマンドの実行順序を上げ、暗号鍵の設定の変更を必要とするコマンドの実行順序を下げる。即ち、暗号鍵毎に分割された記憶領域のうち同一の記憶領域へのアクセスを生じさせるコマンドについては連続して実行する。これにより、暗号鍵設定変更処理を行う回数を低減することができ、暗号鍵の設定変更時間を低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能を向上させることができる。
【００２４】
[第２の実施の形態]
次に、磁気ディスク装置の第２の実施の形態について説明する。なお、上述の第１の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００２５】
コマンドの中には、その実行中に、例えば、記憶領域の境界を跨いでアクセスするなど、異なる記憶領域へアクセス先が変更されることで、暗号鍵設定変更処理が必要になるコマンドがある。このようなコマンドの実行中に、ＣＰＵ１０１は、リオーダリング処理を行う際、暗号／復号回路１１０ｂに現在設定されている暗号鍵に基づいて、上述の第１の実施の形態で説明したように実行待ちコマンドの実行順序を並び替えると、同一の記憶領域へのアクセスを生じさせるコマンドについて連続して実行することができない恐れがある。そこで、本実施の形態においては、実行中コマンドが存在し且つ実行待ちコマンドがキューバッファ１０９ａに複数記憶されている場合、ＣＰＵ１０１は、リオーダリング処理の際、当該実行コマンドの実行が終了する時点で暗号／復号回路１１０ｂに設定されているであろう暗号鍵に対応する記憶領域へのアクセスを生じさせる実行待ちコマンドの実行順序を上げる。
【００２６】
次に、本実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順について図５を用いて説明する。ステップＳ２０では、ＨＤＤ１００のＣＰＵ１０１は、実行中コマンドを解析して、当該実行コマンドの実行が終了する時点で暗号／復号回路１１０ｂに設定されているであろう暗号鍵を計算する。ステップＳ１１，Ｓ１２は上述の第１の実施の形態と同様である。ステップＳ２１では、ＣＰＵ１０１は、コマンドＴを解析して、当該コマンドＴの実行の開始時にアクセスされる磁気ディスク１０３の位置が、ステップＳ２０で計算した暗号鍵に対応している記憶領域に含まれるか否かを判断する。当該判断結果が肯定的である場合、ステップＳ１４に進み、当該判断結果が否定的である場合、ステップＳ１６に進む。ステップＳ１４〜Ｓ１６は上述の第１の実施の形態と同様である。
【００２７】
以上のような構成によれば、１つのコマンドの実行中に、異なる記憶領域へアクセス先が変更になることがあっても、当該実行コマンドの実行が終了する直前にアクセスされる記憶領域と同一の記憶領域へのアクセスを生じさせる実行待ちコマンドの実行順序を上げることで、同一の記憶領域へのアクセスを生じさせるコマンドについて連続して実行することができ、ＨＤＤ１００の処理性能をより効果的に向上することができる。即ち、１つのコマンドの実行中に暗号鍵設定変更処理が必要となったとしても、当該実行コマンドの実行が終了した時点で暗号／復号回路１１０ｂに設定されている暗号鍵を変更することなく実行可能なコマンドの実行順序を上げることで、暗号鍵設定変更処理を無駄に行うことなく、暗号鍵設定変更処理を行う回数を効果的に低減することができ、暗号鍵の設定変更時間を効果的に低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能をより効果的に向上させることができるのである。
【００２８】
[第３の実施の形態]
次に、磁気ディスク装置の第３の実施の形態について説明する。なお、上述の第１の実施の形態又は第２の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００２９】
上述の第２の実施の形態においては、その実行中に暗号鍵の設定の変更（暗号鍵設定変更処理）が必要になるコマンドについて説明したが、このようなコマンドは、そうでないコマンドに比べて処理にかかる時間が総じて長くなる。このため、本実施の形態においては、実行中コマンドが存在し且つ実行待ちコマンドがキューバッファ１０９ａに複数記憶されている場合、ＣＰＵ１０１は、リオーダリング処理の際、実行待ちコマンドのうち、その実行中に暗号鍵の設定の変更が必要ないコマンドの実行順序を上げる。
【００３０】
次に、本実施の形態にかかるＨＤＤ１００の行うリオーダリング処理の手順について図６を用いて説明する。ステップＳ１１〜Ｓ１２は上述の第１の実施の形態と同様である。ステップＳ３０では、ＨＤＤ１００のＣＰＵ１０１は、コマンドＴを解析して、当該コマンドＴの実行中にアクセスされる磁気ディスク１０３の記憶領域が変更される回数、即ち、コマンドＴの実行中に暗号鍵の設定の変更が必要な回数を判断する(ステップＳ３０)。ステップＳ３０の判断の結果、コマンドＴの実行中に暗号鍵の設定の変更が必要ない場合（ステップＳ３０：０回）、ステップＳ３２に進む。ステップＳ３２では、ＣＰＵ１０１は、コマンドＴを候補のコマンドＵとし、ステップＳ１６に進む。ステップＳ１６は、上述の第１の実施の形態と同様である。この結果、その実行中に暗号鍵の設定の変更が必要ないコマンドの実行順序が上げられる。一方、ステップＳ３０の判断の結果、コマンドＴの実行中に暗号鍵の設定の変更が１回以上必要である場合（ステップＳ３０：１回以上）、ステップＳ３１に進む。ステップＳ３１では、ＣＰＵ１０１は、キューバッファ１０９ａに記憶されているコマンドＴ以外の実行待ちコマンドを候補のコマンドＵとし、コマンドＴとコマンドＵとで暗号鍵の設定の変更が必要な回数が少ない方を候補のコマンドＵとし、ステップＳ１２に進む。
【００３１】
以上のような構成によれば、その実行中に暗号鍵の設定の変更が必要ないコマンドの実行順序を上げることができるため、暗号鍵設定変更処理を行う回数を低減することができ、暗号鍵の設定変更時間を低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能を向上させることができる。
【００３２】
[第４の実施の形態]
次に、磁気ディスク装置の第４の実施の形態について説明する。なお、上述の第１の実施の形態乃至第３の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００３３】
本実施の形態においては、上述の第２の実施の形態及び第３の実施の形態を組み合わせた構成について説明する。即ち、実行中コマンドが存在し且つ実行待ちコマンドがキューバッファ１０９ａに複数記憶されている場合、ＣＰＵ１０１は、リオーダリング処理の際、当該実行中コマンドの実行が終了する時点で暗号／復号回路１１０ｂに設定されている暗号鍵に対応する記憶領域へのアクセスを生じさせる実行待ちコマンドについて、その実行中に暗号鍵の設定の変更が必要な回数が少ないほど実行順序を上げる。
【００３４】
図７は、リオーダリング処理前にキューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示する図である。図８は、キューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示すると共に、その実行順序を例示する図である。これらの図に示されるように、本実施の形態によれば、実行順序は、コマンド３，１，５，４，２の順となる。実行中コマンドの実行が終了した時点で暗号／復号回路１１０ｂに設定される暗号鍵に対応する記憶領域へのアクセスを生じさせるコマンドのうち、特に、その実行中に暗号鍵の設定の変更が必要な回数が０回であるコマンド、即ち、その実行中に暗号鍵の設定の変更が必要ないコマンド（ここではコマンド３である）が、一番に優先される。従って、実行中コマンドの実行が終了した時点で暗号／復号回路１１０ｂに設定されている暗号鍵と同一の暗号鍵に対応する記憶領域へのアクセスを生じさせる実行待ちコマンドについて、暗号鍵の設定の変更の回数が少ないほど優先して実行される。
【００３５】
即ち、以上のような構成によれば、同一の記憶領域へのアクセスを生じさせるコマンドについて連続して実行することができ、更に、暗号鍵の設定の変更が必要な回数が少ないコマンドを優先して実行することができる。この結果、暗号鍵設定変更処理を無駄に行うことなく、暗号鍵設定変更処理を行う回数を効果的に低減することができ、暗号鍵の設定変更時間を低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能をより効果的に向上させることができる。
【００３６】
[第５の実施の形態]
次に、磁気ディスク装置の第５の実施の形態について説明する。なお、上述の第１の実施の形態乃至第４の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００３７】
本実施の形態では、実行待ちコマンドがキューバッファ１０９ａに複数記憶されている場合、ＣＰＵ１０１は、リオーダリング処理の際、その実行中にアクセスされる記憶領域が異なる毎に、即ち、その実行中に設定が必要な暗号鍵が異なる毎に、コマンドを分割する。分割された各コマンドは各々、実行待ちコマンドとなる。そして、ＣＰＵ１０１は、各実行待ちコマンドについて、上述の第１の実施の形態で説明したように、図４に示される手順に従ってリオーダリング処理を行う。このような構成は、ライトデータをホストシステム２００から受け取りホストシステム２００へ受信完了通知を返しているがライトデータは保持したままである場合のコマンド（ライトコマンド）などに適用することができる。
【００３８】
図９は、リオーダリング処理前にキューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示する図である。図１０は、キューバッファ１０９ａに記憶されている実行待ちコマンド及びその実行中に設定が必要な暗号鍵を概念的に例示すると共に、その実行順序を例示する図である。これらの図に示されるように、本実施の形態によれば、コマンド１が、コマンド１−１，１−２に分割され、コマンド２が、コマンド２−１，２−２，２−３に分割され、コマンド４が、コマンド４−１，４−２に分割される。コマンド３，５については、その実行中に暗号鍵の設定の変更が必要ないため、分割されない。これらのコマンドの実行順序は、コマンド１−１,２−１，２−３，３，４−２，２−２，１−２，４−１，５の順となる。このような構成によれば、コマンド１〜５を実行している間、暗号鍵の設定の変更は１回で済むことになる。
【００３９】
即ち、以上のような構成によれば、同一の記憶領域へのアクセスを生じさせるコマンドについて連続して実行することができるため、暗号鍵設定変更処理を行う回数を効果的に低減することができ、暗号鍵の設定変更時間を効果的に低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能をより効果的に向上させることができる。
【００４０】
[第６の実施の形態]
次に、磁気ディスク装置の第６の実施の形態について説明する。なお、上述の第１の実施の形態乃至第５の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【００４１】
本実施の形態では、キューバッファ１０９ａに実行待ちコマンドが記憶されている場合、そのいずれの実行待ちコマンドも暗号／復号回路１１０ｂに設定されている暗号鍵とは異なる暗号鍵に対応する記憶領域に含まれる位置へのアクセスを生じさせるものである場合、ＣＰＵ１０１は、ホストシステム２００からコマンドが発行されて送信されるのを所定の時間待機する。その後ホストシステム２００で発行されて送信されたコマンドをＨＤＣ１１０を介してＣＰＵ１０１は取得すると、当該コマンドを解析して、当該コマンドの実行によってアクセスされる磁気ディスク１０３の位置が、暗号／復号回路１１０ｂに設定されている暗号鍵に対応する記憶領域に含まれるか否かを判断する。そして、当該判断結果が肯定的である場合に、ＣＰＵ１０１は、当該コマンドの実行順序を一番にして、当該コマンドを実行する。
【００４２】
以上のように、暗号鍵の設定の変更を必要としないコマンドの受信を待機し、当該コマンドが受信された場合には、当該コマンドを優先して実行する。これにより、暗号鍵の設定の変更を必要とする前に、暗号鍵の設定の変更を必要としないコマンドを１つでも多く実行することができるため、暗号鍵設定変更処理を行う回数を効果的に低減することができ、暗号鍵の設定変更時間を効果的に低減することができる。この結果、全体の処理時間を低減することができ、ＨＤＤ１００の処理性能をより効果的に向上させることができる。
【００４３】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００４４】
上述した各実施の形態において、ＨＤＤ１００で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に記憶させ、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【００４５】
上述の各実施の形態においては、個人識別情報として、ユーザの名前、ユーザに付与されたユーザＩＤ、パスワード、任意の長さの文字列、ＩＣカードなどに記録されたＩＤ情報、指紋等を用いたバイオメトリクスによる生体情報など様々な情報を用いることができる。
【００４６】
上述の各実施の形態においては、ＨＤＤ１００の構成は、図１に例示したものに限らない。例えば、暗号／復号回路１１０ｂは、ＨＤＣ１１０が有するとしたが、これに限らず、ＨＤＣ１１０の外部に存在するようにしても良い。また、ＨＤＤ１００は、データを暗号化する暗号回路とデータを復号化する復号回路とを別個に有するようにしても良い。
【００４７】
上述の各実施の形態においては、ＣＰＵ１０１がリオーダリング処理を行うタイミングは、コマンドを実行する毎であっても良いし、ホストシステム２００からコマンドが受信されてキューバッファ１０９ａに記憶される毎であっても良いし、所定の数のコマンドがキューバッファ１０９ａに記憶される毎であっても良いし、所定の時間毎であっても良い。
【００４８】
上述の第３の実施の形態においては、実行待ちコマンドのうち、その実行中に暗号鍵の設定の変更が必要ないコマンドの実行順序を上げるようにしたが、これに限らず、実行待ちコマンドについて、その実行中に暗号鍵の設定の変更が必要な回数が少ないほど実行順序を上げるようにしても良い。
【符号の説明】
【００４９】
１００  ＨＤＤ
１０１  ＣＰＵ
１０２  モータドライバ
１０３  磁気ディスク
１０６  磁気ヘッド
１０７  ＣＰＵバス
１０８  ＲＯＭ
１０９  ＲＡＭ
１０９ａ  キューバッファ
１１０  ＨＤＣ
１１０ａ  レジスタ部
１１０ｂ  暗号／復号回路
１１１  ゲートアレイ
１１２  バッファＲＡＭ
１１３  リード／ライトＩＣ
１１４  ヘッドＩＣ
２００  ホストシステム
２５０  インタフェースバス
【図１】
2011008733.tif 000003
【図２】
2011008733.tif 000004
【図３】
2011008733.tif 000005
【図４】
2011008733.tif 000006
【図５】
2011008733.tif 000007
【図６】
2011008733.tif 000008
【図７】
2011008733.tif 000009
【図８】
2011008733.tif 000010
【図９】
2011008733.tif 000011
【図１０】
2011008733.tif 000012