(57)【要約】      （修正有）【課題】暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラのデータ転送帯域を最適化して消費電力を低減する。【解決手段】記憶媒体制御装置１００は、第１記憶媒体へのデータの書き込み処理、及び読み出し処理を制御するコントローラ部と、暗号／復号化処理を実施する第１モード、暗号／復号化処理を実施しない第２モードを有する暗号／復号部６と、圧縮／伸張処理を実施する第３モード、圧縮／伸張処理を実施しない第４モードを有する圧縮／伸張部７と、各モードの組合せごとに、それぞれの処理速度を比較して、遅い方の処理速度に合わせてコントローラ部を動作させる動作周波数を設定する動作モード制御部９と、現在の各モードの組合せに対応した動作周波数に切り替える周波数切替部１３と、を備える。【選択図】図１
2015176378.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する第１記憶媒体への前記データの書き込み処理、及び読み出し処理を制御するコントローラ部と、
書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モードと、前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードを有する暗号／復号部と、
書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モードと、前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードを有する圧縮／伸張部と、
前記第１モードと前記第３モードの組合せ、前記第１モードと前記第４モードの組合せ、前記第２モードと前記第３モードの組合せ、前記第２モードと前記第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの前記処理速度に合わせて前記コントローラ部を動作させる動作周波数を低く設定する動作モード制御部と、
現在の前記各モードの組合せに対応した前記動作周波数を選択して、前記動作周波数を切り替える周波数切替部と、を備える、
ことを特徴とする記憶媒体制御装置。
【請求項２】
データを記憶する１以上の第２記憶媒体と、
前記データを分割して１以上の前記第２記憶媒体に同時に書き込み、及び読み出しを実行するストライピング処理動作モードと、前記データを分割しないで１つの前記第２記憶媒体に書き込み、及び読み出しを実行する単体処理動作モードとを切り替える処理動作モード切替部と、を備え、
前記動作モード制御部は、前記ストライピング処理動作モードと前記第１モードと前記第３モードの組合せ、前記ストライピング処理動作モードと前記第１モードと前記第４モードの組合せ、前記ストライピング処理動作モードと前記第２モードと前記第３モードの組合せ、前記ストライピング処理動作モードと前記第２モードと前記第４モードの組合せ、前記単体処理動作モードと前記第１モードと前記第３モードの組合せ、前記単体処理動作モードと前記第１モードと前記第４モードの組合せ、前記単体処理動作モードと前記第２モードと前記第３モードの組合せ、前記単体処理動作モードと前記第２モードと前記第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、最も遅いモードの前記処理速度に合わせて前記コントローラ部を動作させる動作周波数を低く設定することを特徴とする請求項１に記載の記憶媒体制御装置。
【請求項３】
前記記憶媒体制御装置と接続されている１以上の前記第２記憶媒体を検出する検出部を備え、
前記処理動作モード切替部は、検出部で検出した前記第２記憶媒体が１つだけの場合には、前記単体処理動作モードに切り替えることを特徴とする請求項２に記載の記憶媒体制御装置。
【請求項４】
前記データを書き込み、及び読み出しするためにアクセスする前記第２記憶媒体の記憶領域がストライピング処理領域であるか否かを判定するストライピング領域判定部を備え、
前記動作モード制御部は、予め前記第２記憶媒体の記憶領域にアクセスするアドレス情報を用いて、前記第２記憶媒体の記憶領域をストライピング処理領域と、単体処理領域とに分けて設定し、
前記ストライピング領域判定部は、前記第２記憶媒体の記憶領域にアクセスする場合に、前記アドレス情報から前記ストライピング処理領域であるか否かを判定し、
前記ストライピング処理領域である場合には、前記処理動作モード切替部は、前記ストライピング処理動作モードに切り替える、
ことを特徴とする請求項２に記載の記憶媒体制御装置。
【請求項５】
前記周波数切替部は、複数の周波数のクロック信号の中から、前記コントローラ部に供給する前記クロック信号を選択して前記動作周波数を切り替えることを特徴とする請求項１に記載の記憶媒体制御装置。
【請求項６】
前記複数の周波数のクロック信号は、同相逓倍関係であることを特徴とする請求項５に記載の記憶媒体制御装置。
【請求項７】
１以上の前記第２記憶媒体は、同型のハードディスクドライブであることを特徴とする請求項２に記載の記憶媒体制御装置。
【請求項８】
データを記憶する第１記憶媒体への前記データの書き込み処理、及び読み出し処理を制御するコントローラステップと、
書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モードと、前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードを有する暗号／復号ステップと、
書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モードと、前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードを有する圧縮／伸張ステップと、
前記第１モードと前記第３モードの組合せ、前記第１モードと前記第４モードの組合せ、前記第２モードと前記第３モードの組合せ、前記第２モードと前記第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの前記処理速度に合わせて前記コントローラステップを動作させる動作周波数を低く設定する動作モード制御ステップと、
現在の前記各モードの組合せに対応した前記動作周波数を選択して、前記動作周波数を切り替える周波数切替ステップと、を含む、
ことを特徴とする記憶媒体制御方法。
【請求項９】
記憶媒体制御装置に、
データを記憶する第１記憶媒体への前記データの書き込み処理、及び読み出し処理を制御するコントローラステップと、
書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モードと、前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードを有する暗号／復号ステップと、
書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モードと、前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードを有する圧縮／伸張ステップと、
前記第１モードと前記第３モードの組合せ、前記第１モードと前記第４モードの組合せ、前記第２モードと前記第３モードの組合せ、前記第２モードと前記第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの前記処理速度に合わせて前記コントローラステップを動作させる動作周波数を低く設定する動作モード制御ステップと、
現在の前記各モードの組合せに対応した前記動作周波数を選択して、前記動作周波数を切り替える周波数切替ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体制御装置、記憶媒体制御方法およびプログラムに関する。
【背景技術】
【０００２】
ＨＤＤ（Ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）に高速アクセスするためにＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）０と呼ばれる複数のＨＤＤを組み合わせて１台のＨＤＤであるかのように構成し、複数のＨＤＤにデータを分散して同時に記憶する方法がある。以下、「ＲＡＩＤ０」を「ストライピング」と表記することがある。すなわち、複数の外部記憶装置（ＨＤＤなど）をまとめて一台の装置として管理するＲＡＩＤ技術の方式の一つで、複数の記憶装置に均等にデータを振り分け、それぞれの記憶装置に対して同時に読み込む、又は書き込むことにより、データの読み書きを高速化したものである。また、ストライピング先のディスクで最も遅いものの転送速度に台数を掛けたものが全体の転送速度になり、飛躍的にデータ転送が高速化されることになる。
【０００３】
また、ＲＡＩＤ０に対応したＨＤＤホストコントローラにＨＤＤを１台のみ接続して、ＲＡＩＤ０（ストライピング）なしの構成で使用する場合に、ＨＤＤホストコントローラの転送帯域が無駄になることがある。そのため、ＨＤＤホストコントローラの転送帯域を最適化する方法として、ＲＡＩＤ０（ストライピング）なしの構成の場合には、制御回路の一部のクロック周波数を、ＲＡＩＤ０（ストライピング）ありの場合の構成の半分にする方法が知られている。
【０００４】
特許文献１には、インタフェース部の帯域とディスクアレイ装置部との間の能力の不適合を排し、システムの構築の柔軟性を高めることが可能なデータ記録再生装置が開示されている。特許文献１に記載のデータ記録再生装置は、複数のＨＤＤによって並列冗長構成されたＲＡＩＤの複数のディスクアレイ装置であり、１ポート／２ポートの切り替えが可能な入出力インタフェース部と、データをストライピングして複数のＨＤＤ部に順次に供給し、複数のＨＤＤ部から供給されたデータを結合するストライピング・ＥＣＣ部とを備え、ストライピング・ＥＣＣ部から複数のＨＤＤ部までの間では、データのビット幅を１６ビットに統一し、１ポートモードのときは動作クロック周波数を２ポートモードの半分に切り替えるものである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＨＤＤに記憶するデータは、暗号化／復号化、及び圧縮／伸張の処理を実施される場合がある。暗号化／復号化、及び圧縮／伸張のデータ処理速度が、ＨＤＤデバイス、及びＨＤＤホストコントローラの転送速度よりも遅い場合には、データ処理速度がボトルネック（妨げ要因）となるため、ＨＤＤホストコントローラのデータ転送帯域が無駄になるという問題がある。
【０００６】
また、特許文献１に記載のデータ記録再生装置の動作周波数を変更する方法では、ＲＡＩＤ０（ストライピング）ありの構成、又はＲＡＩＤ０（ストライピング）なしの構成の場合に、暗号化／復号化、及び圧縮／伸張などのデータ処理速度がボトルネックになる場合には、データ転送帯域を有効利用することができないため、無駄な電力を消費するという問題がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラのデータ転送帯域を最適化して消費電力を低減することができる記憶媒体制御装置、記憶媒体制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係る記憶媒体制御装置は、データを記憶する第１記憶媒体への前記データの書き込み処理、及び読み出し処理を制御するコントローラ部と、書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モードと、前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードを有する暗号／復号部と、書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モードと、前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードを有する圧縮／伸張部と、前記第１モードと前記第３モードの組合せ、前記第１モードと前記第４モードの組合せ、前記第２モードと前記第３モードの組合せ、前記第２モードと前記第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの前記処理速度に合わせて前記コントローラ部を動作させる動作周波数を低く設定する動作モード制御部と、現在の前記各モードの組合せに対応した前記動作周波数を選択して、前記動作周波数を切り替える周波数切替部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラのデータ転送帯域を最適化して消費電力を低減することができる、という有利な効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施形態に係る記憶媒体制御装置の機能的構成の一例を示す図である。
【図２】図２は、ＲＡＩＤ０制御部における供給クロック信号とデータ転送速度の関係の一例を示す図である。
【図３】図３は、ＤＭＡＣにおける供給クロック信号とデータ転送速度の関係の一例を示す図である。
【図４】図４は、ストライピング処理の有無の各モードと、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードとの組合せごとに、それぞれの処理のデータ処理速度の関係の一例を示す図である。
【図５】図５は、ストライピング処理領域と単体処理領域の一例について説明する図である。
【図６】図６は、記憶媒体制御装置と接続されているＨＤＤの検出の一例について説明する図である。
【図７】図７は、本実施形態に係る記憶媒体制御装置の処理動作の一例を示すフローチャート図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明に係る記憶媒体制御装置、記憶媒体制御方法およびプログラムの一実施形態を詳細に説明する。
【００１２】
本実施形態の記憶媒体制御装置は、書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モード、及び前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードと、書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モード、及び前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードと、ストライピング処理動作モード、及び単体処理動作モードとの各モードの組合せごとに、それぞれの処理の処理速度を比較して、最も遅いモードの処理速度に合わせてＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）を動作させる動作周波数をｃｌｋ１より低く設定する。これにより、記憶媒体制御装置は、ＤＭＡＣとメモリとの間のデータの転送速度を低下させて、暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラ（ＤＭＡＣ）のデータ転送帯域を最適化して消費電力を低減することができる。なお、ＤＭＡＣは、請求項の「コントローラ部」に対応する。
【００１３】
以下では、本実施形態の記憶媒体制御装置の一例として、１つのデータを２つ以上のハードディスクドライブに分けて同時に書き読みするメモリシステムに適用した例を挙げて説明するがこれに限られるものではなく、本発明が適用されるメモリシステムの種類は任意である。
【００１４】
図１は、本実施形態に係る記憶媒体制御装置の機能的構成の一例を示す図である。本実施形態の記憶媒体制御装置１００は、図１に示すように、ＨＤＤ＿Ａ１と、ＨＤＤ＿Ｂ２と、ＳＡＴＡ制御部Ａ３と、ＳＡＴＡ制御部Ｂ４と、ＲＡＩＤ０制御部５と、暗号／復号器６と、圧縮／伸張器７と、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）８と、動作モード制御部９と、バススイッチ１０と、メモリ１１と、ＣＰＵ１２と、周波数セレクタ１３とを備える。なお、以下ではＨＤＤ＿Ａ１と、ＨＤＤ＿Ｂ２とを区別する必要がない場合には、単にＨＤＤと表記する。なお、以下ではＤＭＡＣ８は、ＨＤＤホストコントローラに相当する。
【００１５】
本実施形態では、ＨＤＤ＿Ａ１と、ＨＤＤ＿Ｂ２と、バススイッチ１０と、メモリ１１と、ＣＰＵ１２とは、ハードウェアモジュールで構成され、メモリ１１と、ＣＰＵ１２と、ＳＡＴＡ制御部Ａ３と、ＳＡＴＡ制御部Ｂ４と、ＲＡＩＤ０制御部５と、暗号／復号器６と、圧縮／伸張器７と、ＤＭＡＣ８と、動作モード制御部９と、周波数セレクタ１３については、これらの一部又は全部がソフトウェア（プログラム）、ハードウェア回路であってもよい。また、上記各部のうちの一部が記憶媒体制御装置１００に搭載される形態であってもよい。
【００１６】
ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２は、各種プログラム、データ等を分散して記憶するための、例えば、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格準拠のハードディスクドライブである。なお、インタフェースとして、ＳＡＴＡに限ることはなく、ＰＣＩ  Ｅｘｐｒｅｓｓ、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭＭＣ）、ＵＦＳ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｏｒａｇｅ）および、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などを適用することができる。なお、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２は、請求項の「第２記憶媒体」に対応する。
【００１７】
ＲＡＩＤ０（ストライピング）を構成する場合には、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２は同型のデバイスを使用する。また、ＲＡＩＤ０を構成しないで、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２をそれぞれ単独で使用する場合には、同型でなく任意のデバイスを接続することができる。また、ＨＤＤ＿Ａ１、または、ＨＤＤ＿Ｂ２のどちらか１台のみを接続することもできる。なお、本実施形態では、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２のデータの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓと仮定する。
【００１８】
ＳＡＴＡ制御部Ａ３は、ＲＡＩＤ０制御部５の制御の下、データの読み出し（リード）／書き込み（ライト）を実行する機能を有する。具体的には、例えば、ＲＡＩＤ０制御部５が発行するコマンドに従って、ＨＤＤ＿Ａ１に対して制御コマンドを発行し、データの読み出し／書き込みを実行する。ＳＡＴＡ制御部Ａ３は、データの読み出し時では、ＨＤＤ＿Ａ１から読み出したデータをＲＡＩＤ０制御部５へ送信する。ＳＡＴＡ制御部Ａ３は、データの書き込み時では、ＲＡＩＤ０制御部５から受信したデータをＨＤＤ＿Ａ１へ書き込みする。なお、本実施形態では、ＳＡＴＡ制御部Ａ３とＨＤＤ＿Ａ１との間のデータの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓと仮定する。また、ＳＡＴＡ制御部Ａ３とＲＡＩＤ０制御部５との間のデータ転送速度は、周波数セレクタ１３からＲＡＩＤ０制御部５へ供給されるクロック信号（クロック周波数）１４で制御され、データの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓと仮定する。
【００１９】
ＳＡＴＡ制御部Ｂ４は、ＲＡＩＤ０制御部５の制御の下、データの読み出し（リード）／書き込み（ライト）を実行する機能を有する。具体的には、例えば、ＲＡＩＤ０制御部５が発行するコマンドに従って、ＨＤＤ＿Ｂ２に対して制御コマンドを発行し、データの読み出し／書き込みを実行する。ＳＡＴＡ制御部Ｂ４は、データの読み出し時では、ＨＤＤ＿Ｂ２から読み出したデータをＲＡＩＤ０制御部５へ送信する。ＳＡＴＡ制御部Ｂ４は、データの書き込み時では、ＲＡＩＤ０制御部５から受信したデータをＨＤＤ＿Ｂ２へ書き込みする。なお、本実施形態では、ＳＡＴＡ制御部Ｂ４とＨＤＤ＿Ｂ２との間のデータの最大転送速度は、例えば、３００ＭＢｙｔｅ／ｓと仮定する。また、ＳＡＴＡ制御部Ｂ４とＲＡＩＤ０制御部５との間のデータ転送速度は、周波数セレクタ１３からＲＡＩＤ０制御部５へ供給されるクロック信号（クロック周波数）１４に制御され、データの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓと仮定する。
【００２０】
ＳＡＴＡ制御部Ａ３及びＢ４は、ＲＡＩＤ０制御部５から送信されるコマンド（書き込みコマンドまたは読み出しコマンド）を受信する。ＳＡＴＡ制御部Ａ３及びＢ４は、受信した書き込みコマンドに付加された情報（ＳＡＴＡ制御部Ａ３及びＢ４による書き込み制御の対象となる情報）の符号化処理を行う。この例では、ＳＡＴＡ制御部Ａ３及びＢ４は、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２に対する書き込みを行うべき情報に対して、ビットの誤り訂正処理（ＥＣＣ処理）を行うための冗長情報（データビットの偶奇性を利用する場合、パリティーと呼ぶ）を付加する処理を行う。また、ＳＡＴＡ制御部Ａ３及びＢ４は、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２から読み出された情報に対する誤り訂正処理（ＥＣＣ処理）を行う。
【００２１】
ＳＡＴＡ制御部Ａ３及びＢ４は、受信した書き込みコマンドに従って、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２に対する情報の書き込みを行う。より具体的には、ＳＡＴＡ制御部Ａ３及びＢ４は、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２のうち、書き込みコマンドに付加された物理アドレスが示す領域に対して、ＳＡＴＡ制御部Ａ３及びＢ４によって符号化された情報を書き込む。また、ＳＡＴＡ制御部Ａ３及びＢ４は、受信した読み出しコマンドに従って、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２からの情報の読み出しを行う。より具体的には、ＳＡＴＡ制御部Ａ３及びＢ４は、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２のうち、読み出しコマンドに付加された物理アドレスが示す領域に格納された情報を読み出す。ＳＡＴＡ制御部Ａ３及びＢ４によって読み出された情報は、誤り訂正処理によって復号され、復号された情報が、読み出しコマンドに対する応答として、ＲＡＩＤ０制御部５へ送られる。
【００２２】
ＲＡＩＤ０制御部５は、動作モード制御部９が指定するＨＤＤ記憶領域への読み出し（リード）／書き込み（ライト）を実行するためのＳＡＴＡ制御コマンドを生成し、ＳＡＴＡ制御部Ａ３とＳＡＴＡ制御部Ｂ４へコマンドを送信する。ＲＡＩＤ０制御部５は、データを分割して１以上の記憶媒体（ＨＤＤ）に同時に書き込み、及び読み出しを実行するＲＡＩＤ０（ストライピング）処理動作モードと、データを分割しないで１つの記憶媒体（ＨＤＤ）に書き込み、及び読み出しを実行する単体処理動作モードとを備えている。以下、ＲＡＩＤ０（ストライピング）処理動作モードを、「ストライピング処理動作モード」と表記する。なお、ストライピング処理動作モードと単体処理動作モードの動作モードの切り替えは、例えば、後述する動作モード制御部９の制御により行われるものとする。
【００２３】
ＲＡＩＤ０制御部５は、ストライピング処理動作モードでＨＤＤに書き込みする場合、暗号／復号器６から受信したデータを、ＨＤＤ＿Ａ１に記憶するデータと、ＨＤＤ＿Ｂ２に記憶するデータに分割し、分割したそれぞれのデータを、ＳＡＴＡ制御部Ａ３とＳＡＴＡ制御部Ｂ４へ送信する。また、ＲＡＩＤ０制御部５は、ストライピング処理動作モードでＨＤＤから読み出しする場合、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２から読み出したデータを統合し、統合したデータを暗号／復号器６へ送信する。
【００２４】
ＲＡＩＤ０制御部５は、単体処理動作モードでＨＤＤに書き込みする場合、暗号／復号器６から受信したデータを、ＨＤＤ＿Ａ１、または、ＨＤＤ＿Ｂ２へ送信する。ＲＡＩＤ０制御部５は、単体処理動作モードでＨＤＤから読み出しする場合、ＨＤＤ＿Ａ１、または、ＨＤＤ＿Ｂ２から読み出したデータを暗号／復号器６へ送信する。なお、ＨＤＤ＿Ａ１、ＨＤＤ＿Ｂ２のどちらにアクセスするかの選択は、例えば、後述する動作モード制御部９の制御により行われるものとする。
【００２５】
ＲＡＩＤ０制御部５は、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２に対するデータの書き込みを要求する書き込み要求や、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２からのデータの読み出しを要求する読み出し要求をＣＰＵ１２又は動作モード制御部９から受け付けることができる。例えば、書き込み要求は、書き込みの実行を要求する情報と、書き込みを要求するデータと、プログラム上の仮想空間アドレスのうち、その書き込みを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。一方、読み出し要求は、読み出しの実行を要求する情報と、プログラム上の仮想空間アドレスのうち、読み出しを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。上記論理アドレスは、ＣＰＵ１２又は動作モード制御部９によって指定される。
【００２６】
ＲＡＩＤ０制御部５は、書き込み要求を受け付けた場合、書き込みが要求されたデータ（書き込み要求に含まれるデータ、以下、「書き込み対象データ」と呼ぶ場合がある）を含む情報を、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２に書き込む制御（以下、「書き込み制御」と呼ぶ場合がある）を行う。本実施形態では、ＲＡＩＤ０制御部５は、書き込みの実行を命令する書き込みコマンドを生成し、生成した書き込みコマンドに対して、書き込み対象データを含む情報（書き込み制御の対象となる情報）と、ＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２のうち、書き込み対象データが書き込まれる領域を示す物理アドレスとを付加してＳＡＴＡ制御部Ａ３及びＳＡＴＡ制御部Ｂ４へ伝達する。
【００２７】
ＲＡＩＤ０制御部５は、読み出し要求を受け付けた場合、論物変換テーブルを参照して、読み出し要求に含まれる論理アドレスに対応付けられた物理アドレスを特定し（論物変換を行い）、特定した物理アドレスが示す位置に格納された情報を読み出す制御を行う。本実施形態では、ＲＡＩＤ０制御部５は、ＳＡＴＡ制御部Ａ３及びＢ４に対して読み出しの実行を命令する読み出しコマンドを生成し、その生成した読み出しコマンドに対して、上述の論物変換により得た物理アドレスを付加してＳＡＴＡ制御部Ａ３及びＳＡＴＡ制御部Ｂ４へ伝達する。そして、ＲＡＩＤ０制御部５は、読み出しコマンドに対する応答として、ＳＡＴＡ制御部Ａ３及びＳＡＴＡ制御部Ｂ４がＨＤＤ＿Ａ１及びＨＤＤ＿Ｂ２から読み出した情報を受け取ることができる。
【００２８】
ＲＡＩＤ０制御部５のデータの最大転送速度は、例えば、後述する周波数セレクタ１３から供給されるクロック信号１４で制御される。ここで、図２を参照して、供給クロック信号１４ごとに、暗号／復号器６−ＲＡＩＤ０制御部５間、ＲＡＩＤ０制御部５−ＳＡＴＡ制御部Ａ３、Ｂ４間のデータ転送速度の一例について説明する。図２は、ＲＡＩＤ０制御部における供給クロック信号とデータ転送速度の関係の一例を示す図である。
【００２９】
図２に示すように、周波数セレクタ１３から供給されるクロック信号１４の一例として、例えば、ｃｌｋ１、ｃｌｋ１／２、ｃｌｋ１／３、ｃｌｋ１／４の４種類を挙げて説明する。供給されるクロック信号１４は、ＲＡＩＤ０制御部５を動作させるための動作周波数のことを示す。以下、供給されるクロック信号１４を「供給クロック信号」と表記する。なお、ｃｌｋ１の周波数は任意に設定されている。
【００３０】
最初に、供給クロック信号１４がｃｌｋ１の場合、暗号／復号器６とＲＡＩＤ０制御部５との間のデータの最大転送速度は、例えば６００ＭＢｙｔｅ／ｓであり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ａ３との間のデータの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓであり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ｂ４との間のデータの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓであると仮定する。供給クロック信号１４がｃｌｋ１／２の場合では、暗号／復号器６とＲＡＩＤ０制御部５との間のデータの最大転送速度は、例えば３００ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ａ３との間のデータの最大転送速度は、例えば１５０ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ｂ４との間のデータの最大転送速度は、例えば１５０ＭＢｙｔｅ／ｓとなる。
【００３１】
供給クロック信号１４がｃｌｋ１／３の場合では、暗号／復号器６とＲＡＩＤ０制御部５との間のデータの最大転送速度は、例えば２００ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ａ３との間のデータの最大転送速度は、例えば１００ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ｂ４との間のデータの最大転送速度は、例えば１００ＭＢｙｔｅ／ｓとなる。供給クロック信号１４がｃｌｋ１／４の場合では、暗号／復号器６とＲＡＩＤ０制御部５との間のデータの最大転送速度は、例えば１５０ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ａ３との間のデータの最大転送速度は、例えば７５ＭＢｙｔｅ／ｓとなり、ＲＡＩＤ０制御部５とＳＡＴＡ制御部Ｂ４との間のデータの最大転送速度は７５ＭＢｙｔｅ／ｓとなる。このように、複数の周波数の供給クロック信号１４は、例えば同相逓倍である。
【００３２】
図１に戻って説明を続ける。暗号／復号器６は、書き込み対象データを暗号化する暗号化モードと、暗号化された読み出し対象データを復号化する復号化モードと、何の処理もせずにデータ転送の中継をするスルーモードとを備えている。暗号／復号器６は、書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モードと、前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードを有する。なお、各動作モードの切り替えは、例えば、後述する動作モード制御部９の制御により行われるものとする。
【００３３】
暗号／復号器６は、暗号化モード時では、圧縮／伸張器７から受信した書き込み対象データを暗号化し、ＲＡＩＤ０制御部５へ送信する。暗号／復号器６は、復号化モード時では、ＲＡＩＤ０制御部５から受信した暗号化された読み出し対象データを復号化し、圧縮／伸張器７へ送信する。暗号／復号器６は、スルーモード時では、暗号／復号の処理を実施せずに、圧縮／伸張器７とＲＡＩＤ０制御部５間のデータの送受信を中継する。
【００３４】
なお、本実施形態では、暗号／復号器６は、常に、上述したｃｌｋ１で動作し、暗号化／復号化のデータ処理速度は、例えば２００ＭＢｙｔｅ／ｓであると仮定する。また、スルーモード時のデータの最大転送速度は、例えば６００ＭＢｙｔｅ／ｓであると仮定する。なお、暗号／復号器６は、請求項の「暗号／復号部」に対応する。
【００３５】
圧縮／伸張器７は、書き込み対象データを圧縮する圧縮モードと、圧縮された読み出し対象データを伸張する伸張モードと、何の処理もせずにデータ転送の中継をするスルーモードとを備えている。圧縮／伸張器７は、書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モードと、前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードを有する。なお、各動作モードの切り替えは、例えば、後述する動作モード制御部９の制御により行われるものとする。
【００３６】
圧縮／伸張器７は、圧縮モード時では、ＤＭＡＣ８から受信した書き込み対象データを圧縮し、暗号／復号器６へ送信する。圧縮／伸張器７は、伸張モード時では、暗号／復号器６から受信した圧縮された読み出し対象データを伸張し、ＤＭＡＣ８へ送信する。圧縮／伸張器７は、スルーモード時では、圧縮／伸張処理を実施せずに、ＤＭＡＣ８と暗号／復号器６間のデータの送受信を中継する。なお、本実施形態では、圧縮／伸張器７は、常に、上述したｃｌｋ１で動作し、圧縮／伸張のデータ処理速度は、例えば１３３ＭＢｙｔｅ／ｓであると仮定する。また、スルーモード時のデータの最大転送速度は、例えば６００ＭＢｙｔｅ／ｓであると仮定する。なお、圧縮／伸張器７は、請求項の「圧縮／伸張部」に対応する。
【００３７】
ＤＭＡＣ８は、ダイレクトメモリアクセスコントローラであり、データの転送処理を制御する。具体的には、ＤＭＡＣ８は、第１記憶媒体（メモリ１１、例えば、ＲＡＭなど）へのデータの書き込み処理、及び読み出し処理を制御する。ＤＭＡＣ８は、バススイッチ１０を介して、メモリ１１にアクセスする。具体的には、例えばＤＭＡＣ８は、ＨＤＤへデータを書き込みする時には、メモリ１１から書き込み対象データを読み出して、圧縮／伸張器７へ送信する。また、ＤＭＡＣ８は、ＨＤＤからデータを読み出しする時には、圧縮／伸張器７から受信した読み込み対象データをメモリ１１に書き込みする。なお、本実施形態では、メモリ１１のアクセス領域の指定は、例えば、後述する動作モード制御部９の制御により行われるものとする。
【００３８】
また、ＤＭＡＣ８は、メモリ１１との間のデータ転送速度を制御する。具体的には、ＤＭＡＣ８は、メモリ１１がＣＰＵ１２を介すことなくデータ転送を行うＤＭＡ転送において、通信の制御を行う。つまり、ＤＭＡＣ８は、ＣＰＵ１２を介さずにＨＤＤ＿Ａ１、及びＢ２とメモリ１１との間で直接データ転送を行う。ＤＭＡＣ８とメモリ１１との間のデータの最大転送速度は、周波数セレクタ１３から供給される供給クロック信号１４で制御される。なお、ＤＭＡＣ８は、請求項の「コントローラ部」に対応する。
【００３９】
ここで、図３を参照して、供給クロック信号１４ごとに、ＤＭＡＣ８とメモリ１１との間のデータ転送速度の一例について説明する。図３は、ＤＭＡＣにおける供給クロック信号とデータ転送速度の関係の一例を示す図である。図３に示すように、周波数セレクタ１３から供給される複数の周波数の供給クロック信号１４の一例として、例えば、ｃｌｋ１、ｃｌｋ１／２、ｃｌｋ１／３、ｃｌｋ１／４の４種類を挙げて説明する。供給クロック信号１４は、ＤＭＡＣ８を動作させるための動作周波数のことを示す。なお、ｃｌｋ１の周波数は任意に設定される。
【００４０】
最初に、供給クロック信号１４がｃｌｋ１の場合、ＤＭＡＣ８とメモリ１１との間のデータの最大転送速度は、例えば６００ＭＢｙｔｅ／ｓであると仮定する。供給クロック信号１４がｃｌｋ１／２の場合では、ＤＭＡＣ８とメモリ１１との間のデータの転送速度は、例えば３００ＭＢｙｔｅ／ｓとなる。供給クロック信号１４がｃｌｋ１／３の場合では、ＤＭＡＣ８とメモリ１１との間のデータの転送速度は、例えば２００ＭＢｙｔｅ／ｓとなる。供給クロック信号１４がｃｌｋ１／４の場合、ＤＭＡＣ８とメモリ１１との間のデータの転送速度は１５０ＭＢｙｔｅ／ｓとなる。このように、複数の周波数の供給クロック信号１４は、同相逓倍である。
【００４１】
ＤＭＡＣ８は、メモリ１１に対するデータの書き込みを要求する書き込み要求や、メモリ１１からのデータの読み出しを要求する読み出し要求をＣＰＵ１２又は動作モード制御部９から受け付けることができる。例えば、書き込み要求は、書き込みの実行を要求する情報と、書き込みを要求するデータと、プログラム上の仮想空間アドレスのうち、その書き込みを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。一方、読み出し要求は、読み出しの実行を要求する情報と、プログラム上の仮想空間アドレスのうち、読み出しを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。上記論理アドレスは、ＣＰＵ１２又は動作モード制御部９によって指定される。
【００４２】
ＤＭＡＣ８は、書き込み要求を受け付けた場合、書き込みが要求されたデータ（書き込み要求に含まれるデータ、以下、「書き込み対象データ」と呼ぶ場合がある）を含む情報を、メモリ１１に書き込む制御を行う。本実施形態では、ＤＭＡＣ８は、書き込みの実行を命令する書き込みコマンドを生成し、生成した書き込みコマンドに対して、書き込み対象データを含む情報（書き込み制御の対象となる情報）と、メモリ１１のうち、書き込み対象データが書き込まれる領域を示す物理アドレスとを付加してメモリ１１へ伝達する。
【００４３】
ＤＭＡＣ８は、読み出し要求を受け付けた場合、論物変換テーブルを参照して、読み出し要求に含まれる論理アドレスに対応付けられた物理アドレスを特定し（論物変換を行い）、特定した物理アドレスが示す位置に格納された情報を読み出す制御を行う。本実施形態では、ＤＭＡＣ８は、読み出しの実行を命令する読み出しコマンドを生成し、その生成した読み出しコマンドに対して、上述の論物変換により得た物理アドレスを付加してメモリ１１へ伝達する。そして、ＤＭＡＣ８は、読み出しコマンドに対する応答として、メモリ１１から読み出した情報を受け取ることができる。
【００４４】
図１に戻って説明を続ける。動作モード制御部９は、制御部２１と、処理動作モード切替部２２と、ストライピング領域判定部２３、検出部２４とを有する。本実施形態において、制御部２１と、処理動作モード切替部２２と、検出部２４と、ストライピング領域判定部２３とが動作モード制御部９の機能を提供する。
【００４５】
制御部２１は、ＲＡＩＤ０制御部５、暗号／復号器６、圧縮／伸張器７、ＤＭＡＣ８、周波数セレクタ１３の各動作モードを制御する。また、制御部２１は、ＣＰＵ１２により設定された動作モードに従い、圧縮／伸張器７、暗号／復号器６、ＲＡＩＤ０制御部５の各動作モードを設定、又は各動作モードの切り替えを制御する。また、制御部２１は、ＣＰＵ１２により設定された動作モードに従い、圧縮／伸張器７、暗号／復号器６、ＲＡＩＤ０制御部５の各動作モードを設定し、各動作モードの組合せごとに、それぞれの処理のデータ処理速度を比較して、最も遅い処理速度に合わせて周波数セレクタ１３が出力する供給クロック信号１４を設定する。具体的には、制御部２１は、書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モード、及び前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードと、書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モード、及び前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードと、ストライピング処理動作モード、及び単体処理動作モードとの各モードの組合せごとに、それぞれの処理のデータ処理速度を比較して、最も遅いモードのデータ処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数をｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。すなわち、制御部２１は、ストライピング処理動作モードと第１モードと第３モードの組合せ、ストライピング処理動作モードと第１モードと第４モードの組合せ、ストライピング処理動作モードと第２モードと第３モードの組合せ、ストライピング処理動作モードと第２モードと第４モードの組合せ、単体処理動作モードと第１モードと第３モードの組合せ、単体処理動作モードと第１モードと第４モードの組合せ、単体処理動作モードと第２モードと第３モードの組合せ、単体処理動作モードと第２モードと第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、最も遅いモードの処理速度に合わせてコントローラ部を動作させる動作周波数を低く設定する。
【００４６】
また、制御部２１は、書き込み対象データに暗号化処理、及び暗号化された読み出し対象データに復号化処理を実施する第１モード、及び前記書き込み対象データに暗号化処理、及び読み出し対象データに復号化処理を実施しない第２モードと、書き込み対象データに圧縮処理、及び圧縮された読み出し対象データに伸張処理を実施する第３モード、及び前記書き込み対象データに圧縮処理、及び読み出し対象データに伸張処理を実施しない第４モードと、の各モードの組合せごとに、それぞれの処理のデータ処理速度を比較して、遅い方のモードのデータ処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数をｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。すなわち、制御部２１は、第１モードと第３モードの組合せ、第１モードと第４モードの組合せ、第２モードと第３モードの組合せ、第２モードと第４モードの組合せ、の各モードの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの処理速度に合わせてコントローラ部を動作させる動作周波数を低く設定する。
【００４７】
ここで、図３及び図４を参照して、動作モード制御部９の制御部２１での周波数セレクタ１３が出力する供給クロック信号１４の設定方法について説明する。図４は、ストライピング処理の有無の各モードと、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードとの組合せごとに、それぞれの処理のデータ処理速度を関係付けた情報の一例を示す図である。制御部２１は、図４の例に示す、ＣＰＵ１２により設定された各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を予め保持する。なお、各処理のデータ処理速度は予め任意に設定することができる。
【００４８】
図４の例に示すように、ストライピング処理「有り」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「有り」のデータ処理速度は、２００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「有り」のデータ処理速度は、１３３ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「有り」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「有り」のデータ処理速度は、２００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「有り」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「有り」のデータ処理速度は、１３３ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「有り」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓの組合せである。
【００４９】
また、図４の例では、ストライピング処理「無し」のデータ処理速度は、３００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「有り」のデータ処理速度は、２００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「有り」のデータ処理速度は、１３３ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「無し」のデータ処理速度は、３００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「有り」のデータ処理速度は、２００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「無し」のデータ処理速度は、３００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「有り」のデータ処理速度は、１３３ＭＢｙｔｅ／ｓの組合せである。また、ストライピング処理「無し」のデータ処理速度は、３００ＭＢｙｔｅ／ｓ、暗号化／復号化処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓ、圧縮／伸張処理「無し」のデータ処理速度は、６００ＭＢｙｔｅ／ｓの組合せである。
【００５０】
そこで、例えば、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、ＲＡＩＤ０制御部５がストライピング処理動作モードであり、暗号／復号器６がスルーモード（処理無し）であり、圧縮／伸張器７がスルーモード（処理無し）の組合せである場合、最も遅いデータ処理速度は、６００ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１を設定する。
【００５１】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、ＲＡＩＤ０制御部５が単体処理動作モード（ストライピング処理無し）であり、暗号／復号器６がスルーモード（処理無し）であり、圧縮／伸張器７がスルーモード（処理無し）の組合せである場合、最も遅いデータ処理速度は、３００ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１／２を設定する。
【００５２】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、ＲＡＩＤ０制御部５がストライピング処理動作モードまたは単体処理動作モードであり、暗号／復号器６が暗号化モード（処理有り）または復号化モード（処理有り）であり、圧縮／伸張器７がスルーモード（処理無し）の組合せである場合、最も遅いデータ処理速度は、２００ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１／３を設定する。
【００５３】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、圧縮／伸張器７が圧縮モード（処理有り）または伸張モード（処理有り）である場合、ＲＡＩＤ０制御部５と暗号／復号器６の動作モードとの組合せには関係なく、最も遅いデータ処理速度は、１３３ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１／４を設定する。
【００５４】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、暗号／復号器６がスルーモード（処理無し）であり、圧縮／伸張器７がスルーモード（処理無し）の組合せである場合、遅い方のデータ処理速度は、６００ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１を設定する。
【００５５】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、暗号／復号器６が暗号化モード（処理有り）または復号化モード（処理有り）、圧縮／伸張器７がスルーモード（処理無し）の組合せである場合、遅い方のデータ処理速度は、２００ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１／３を設定する。
【００５６】
また、制御部２１は、図４の例に示した各モードの組合せごとに、各処理のデータ処理速度を関係付けた情報を用いて、圧縮／伸張器７が圧縮モード（処理有り）または伸張モード（処理有り）である場合、暗号／復号器６の動作モードの組合せには関係なく、遅い方のデータ処理速度は、１３３ＭＢｙｔｅ／ｓであると判断し、図３を参照して、周波数セレクタ１３が出力する供給クロック信号１４としては、ｃｌｋ１／４を設定する。
【００５７】
すなわち、制御部２１は、ストライピング処理動作モードで、圧縮／伸張処理、暗号化／復号化処理の両方とも処理を実施しないモードの組合せの場合は、データ処理速度は６００ＭＢｙｔｅ／ｓとなり、ｃｌｋ１を設定する。また、制御部２１は、ストライピング処理動作モードで、圧縮／伸張処理を実施しない場合であって、暗号化／復号化処理を実施するモードの組合せの場合は、データ処理速度は２００ＭＢｙｔｅ／ｓとなり、ｃｌｋ１／３を設定する。また、制御部２１は、ストライピング処理動作モードで、圧縮／伸張処理を実施するモードの場合は、暗号化／復号化処理の実施の有無のモードの組合せにかかわらず、データ処理速度は、１３３ＭＢｙｔｅ／ｓとなり、ｃｌｋ１／４を設定する。
【００５８】
また、制御部２１は、単体処理動作モードで、圧縮／伸張処理、暗号化／復号化処理の両方とも処理を実施しないモードの組合せの場合は、データ処理速度は３００ＭＢｙｔｅ／ｓとなり、ｃｌｋ１／２を設定する。また、制御部２１は、単体処理動作モードで、圧縮／伸張処理を実施しない場合であって、暗号化／復号化処理を実施するモードの組合せの場合は、データ処理速度は２００ＭＢｙｔｅ／ｓとなり、ｃｌｋ１／３を設定する。また、制御部２１は、単体処理動作モードで、圧縮／伸張処理を実施する場合は、暗号化／復号化処理の実施の有無のモードの組合せにかかわらず、データ処理速度は、１３３ＭＢｙｔｅ／ｓとなり、ｃｌｋ１／４を設定する。
【００５９】
このように、制御部２１は、ストライピング処理の有無の各モードと、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードとの組合せごとに、それぞれの処理のデータ処理速度を比較して、最も遅い方のモードのデータ処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数を任意のｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。
【００６０】
また、制御部２１は、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードとの組合せごとに、それぞれの処理のデータ処理速度を比較して、遅い方のモードのデータ処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数を任意のｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。
【００６１】
これによって、暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラのデータ転送帯域を最適化して消費電力を低減することができる。なお、ｃｌｋ１の周波数は任意に設定されている。
【００６２】
また、制御部２１は、ＤＭＡＣ８がメモリ１１に対してデータを書き込み、及び読み出しする時のメモリ１１のアクセス領域（論理アドレス）の指定を行って制御する。
【００６３】
また、制御部２１は、ＲＡＩＤ０制御部５が単体処理動作モードでＨＤＤに書き込み／読み出しする場合、ＨＤＤ＿Ａ１、又はＨＤＤ＿Ｂ２のどちらにアクセスするかを制御する。
【００６４】
図１に戻って説明を続ける。処理動作モード切替部２２は、データを分割して１以上の第２記憶媒体（ＨＤＤ）に同時に書き込み、及び読み出しを実行するストライピング処理動作モードと、データを分割しないで１つの第２記憶媒体（ＨＤＤ）に書き込み、及び読み出しを実行する単体処理動作モードとを切り替える制御を行う。処理動作モード切替部２２は、ストライピング処理動作モードと単体処理動作モードとを切り替える場合、制御コマンドを生成し、ＲＡＩＤ０制御部５へコマンドを送信する。
【００６５】
また、処理動作モード切替部２２は、後述するストライピング領域判定部２３が記憶媒体（ＨＤＤ）の記憶領域にアクセスする場合に、アドレス情報からストライピング処理領域であると判定した場合、ストライピング処理動作モードに切り替える。また、処理動作モード切替部２２は、後述するストライピング領域判定部２３が記憶媒体（ＨＤＤ）の記憶領域にアクセスする場合に、アドレス情報から単体処理領域であると判定した場合、単体処理動作モードに切り替える。
【００６６】
また、処理動作モード切替部２２は、後述する検出部２４が検出した記憶媒体（ＨＤＤ）が１つだけの場合には、単体処理動作モードに切り替える。また、処理動作モード切替部２２は、後述する検出部２４が検出した記憶媒体（ＨＤＤ）が複数の場合には、ストライピング処理動作モードに切り替える。
【００６７】
ストライピング領域判定部２３は、記憶媒体（ＨＤＤ）の記憶領域にアクセスする場合に、データを書き込み、及び読み出しするためにアクセスする記憶媒体（ＨＤＤ）の記憶領域がストライピング処理領域であるか否かを判定する。まず、動作モード制御部９は、予め記憶媒体（ＨＤＤ）の記憶領域にアクセスするアドレス情報を用いて、記憶媒体（ＨＤＤ）の記憶領域をストライピング処理領域と、単体処理領域とに分けて設定しておく。そして、ストライピング領域判定部２３は、記憶媒体（ＨＤＤ）の記憶領域にアクセスする場合に、アドレス情報からデータを書き込み、及び読み出しするための記憶媒体（ＨＤＤ）の記憶領域がストライピング処理領域であるか否かを判定する。よって、記憶媒体（ＨＤＤ）の記憶領域を、ストライピング処理領域と単体処理領域とを混在させて使用する場合には、記憶媒体（ＨＤＤ）にアクセスするアドレス情報からＲＡＩＤ０制御部５の処理動作モードを自動で設定することができる。すなわち、ＣＰＵ１２が介在することなく、記憶媒体（ＨＤＤ）にアクセスするアドレス情報を用いてＲＡＩＤ０制御部５の処理動作モードを自動で設定することができる。
【００６８】
図５は、ストライピング処理領域と単体処理領域の一例について説明する図である。図５の例に示すように、ＨＤＤ＿Ａ１では、アドレス０ｘ００００＿００００〜０ｘ８０００＿００００までをストライピング処理領域（データ格納領域）３１に設定し、アドレス０ｘ８０００＿００００〜０ｘＣ０００＿００００までを単体処理領域（プログラム格納領域）４１に設定したことを示している。
【００６９】
また、ＨＤＤ＿Ｂ２では、アドレス０ｘ００００＿００００〜０ｘ８０００＿００００までをストライピング処理領域（データ格納領域）３２に設定し、アドレス０ｘ８０００＿００００〜０ｘＣ０００＿００００までは空き領域に設定し、アドレス０ｘＣ０００＿００００〜０ｘＺ０００＿００００を単体処理領域（プログラム格納領域）４２に設定したことを示している。
【００７０】
なお、ストライピング処理領域３１、３２は、データを分割してＨＤＤ＿Ａ１、及びＨＤＤ＿Ｂ２に分散させて記憶させるためのデータ格納領域である。また、単体処理領域４１、４２は、１つだけのＨＤＤ＿Ａ１、又はＨＤＤ＿Ｂ２にデータを記憶させるためのプログラム格納領域である。このように、例えば、頻繁にアクセスするデータ格納領域３１、３２をストライピング処理領域とし、ＯＳ等のプログラム格納領域を単体処理領域４１、４２として使用することで、記憶容量とアクセス速度のバランスをとることができる。
【００７１】
図１に戻って説明を続ける。検出部２４は、記憶媒体制御装置１００と接続されている１以上の第２記憶媒体（ＨＤＤ）を検出する。図６は、記憶媒体制御装置と接続されているＨＤＤの検出の一例について説明する図である。図６の例に示すように、ＨＤＤ＿Ａｃｈ１、ＨＤＤ＿Ｂｃｈ２の接続コネクタのＧＮＤ端子と、動作モード制御部９の検出部２４への入力信号（ｄｅｔｅｃｔ＿ａ、ｄｅｔｅｃｔ＿ｂ）を接続し、この入力信号経路をプルアップしておくことで、ＨＤＤの接続を検知する。すなわち、ＨＤＤが接続されている場合は、ｄｅｔｅｃｔ＿ａ、ｄｅｔｅｃｔ＿ｂはＬｏｗレベルであり、ＨＤＤが接続されていない場合は、ｄｅｔｅｃｔ＿ａ、ｄｅｔｅｃｔ＿ｂはＨｉｇｈレベルである。また、ｄｅｔｅｃｔ＿ａとｄｅｔｅｃｔ＿ｂのどちらか一方がＨｉｇｈレベルで、どちらか他方がＬｏｗレベルの場合は、２台以上のＨＤＤが必要なＲＡＩＤ０（ストライピング）を構成していることはない。よって、動作モード制御部９の処理動作モード切替部２２は、検出部２４で検出したＨＤＤ（第２記憶媒体）が１つだけの場合には、ＲＡＩＤ０制御部５の動作モードを単体処理モードに設定することで、ＣＰＵ１２によるソフトウェア制御を簡易化することができる。
【００７２】
図１に戻って説明を続ける。バススイッチ１０は、バスラインの高速切り替え、又は切り離し等を行うスイッチである。バスラインは、上記の各構成要素を図１に示されているように電気的に接続する。バスラインとしては、例えば、アドレスバスやデータバス等である。バススイッチ１０は、ＭＥＭ−ＩＦを介してＤＭＡＣ８、メモリ１１と接続される。また、バススイッチ１０は、ＣＰＵ−ＩＦを介して動作モード制御部９、ＣＰＵ１２と接続される。すなわち、バススイッチ１０は、ＤＭＡＣ８と動作モード制御部９とメモリ１１とＣＰＵ１２との間でのバスラインの切り替えを行う。
【００７３】
メモリ１１は、記憶媒体であり、記憶媒体制御装置１００用プログラムを記憶する。また、メモリ１１は、各種のデータを記憶する。また、メモリ１１は、ＣＰＵ１２のワークエリアとしても使用される。つまり、メモリ１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の機能を有する。なお、メモリ１１は、請求項の「第１記憶媒体」に対応する。
【００７４】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２は、記憶媒体制御装置１００全体の動作を制御する。ＣＰＵ１２は、例えば、データをメモリ１１から読み出させて、ＨＤＤ＿Ａ１とＨＤＤ＿Ｂ２とに均等にデータを振り分け、それぞれのＨＤＤに対して同時に対象データの書き込み、又は読み出しを実行させる。
【００７５】
周波数セレクタ１３は、圧縮／伸張器７と暗号／復号器６に対して供給クロック信号（ｃｌｋ１）１４を供給する。また、周波数セレクタ１３は、動作モード制御部９が、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードと、ストライピング処理動作モード、及び単体処理動作モードの各モードとの組合せごとに設定した動作周波数（供給クロック信号１４）を用いて、現在の各モードの組合せに対応した動作周波数を選択して、複数の周波数の供給クロック信号１４の中から、ＤＭＡＣ８とＲＡＩＤ０制御部５に供給する供給クロック信号１４を切り替える。上述したように、供給クロック信号１４は、例えば、ｃｌｋ１、ｃｌｋ１／２、ｃｌｋ１／３、ｃｌｋ１／４の４種類から選択可能である。ｃｌｋ１／２の周波数はｃｌｋ１の半分であり、ｃｌｋ１／３の周波数はｃｌｋ１の３分の１であり、ｃｌｋ１／４の周波数はｃｌｋ１の４分の１である。すなわち、上記の例では、複数の周波数の供給クロック信号１４は、同相逓倍関係である。なお、ｃｌｋ１の周波数は任意に設定されている。なお、周波数セレクタ１３は、請求項の「周波数切替部」に対応する。
【００７６】
なお、上記の記憶媒体制御装置１００用プログラムは、インストール可能な形式、または実行可能な形式のファイルで、記憶媒体等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００７７】
次に、図７を参照して、本実施形態に係る記憶媒体制御装置１００における処理動作を説明する。図７は、本実施形態に係る記憶媒体制御装置の処理動作の一例を示すフローチャート図である。
【００７８】
記憶媒体制御装置１００の動作モード制御部９は、ＣＰＵ１２からのデータの書き込み／読み出し要求を受けて、書き込み／読み出し対象データと、書き込まれる領域を示す物理アドレス／論理アドレスとを含む書き込み／読み出し要求をＤＭＡＣ８及びＲＡＩＤ０制御部５に送信する（ステップＳ１）。次に、動作モード制御部９は、ＲＡＩＤ０制御部５がストライピング処理動作モードであるか否かを判断する（ステップＳ２）。ストライピング処理動作モードである場合（ステップＳ２：Ｙｅｓ）、動作モード制御部９は、圧縮／伸張器７が圧縮処理、及び伸張処理モードであるか否かを判断する（ステップＳ３）。圧縮処理、及び伸張処理モードでない場合（ステップＳ３：Ｎｏ）、動作モード制御部９は、暗号／復号器６が暗号化処理、及び復号化処理モードであるか否かを判断する（ステップＳ４）。暗号化処理、及び復号化処理モードでない場合（ステップＳ４：Ｎｏ）、動作モード制御部９は、最も遅いデータ処理速度は６００ＭＢｙｔｅ／ｓ（ステップＳ５）であると判断し、動作周波数（供給クロック信号１４）をｃｌｋ１に設定する（ステップＳ６）。次に、ステップＳ１９に移行する。
【００７９】
ステップＳ２に戻り、ストライピング処理動作モードでない場合（ステップＳ２：Ｎｏ）、動作モード制御部９は、圧縮／伸張器７が圧縮処理、及び伸張処理モードであるか否かを判断する（ステップＳ７）。圧縮処理、及び伸張処理モードでない場合（ステップＳ７：Ｎｏ）、動作モード制御部９は、暗号／復号器６が暗号化処理、及び復号化処理モードであるか否かを判断する（ステップＳ８）。暗号化処理、及び復号化処理モードでない場合（ステップＳ８：Ｎｏ）、動作モード制御部９は、最も遅いデータ処理速度は３００ＭＢｙｔｅ／ｓ（ステップＳ９）であると判断し、動作周波数をｃｌｋ１／２に設定する（ステップＳ１０）。次に、ステップＳ１９に移行する。
【００８０】
ステップＳ３に戻り、圧縮処理、及び伸張処理モードである場合（ステップＳ３：Ｙｅｓ）、動作モード制御部９は、最も遅いデータ処理速度は１３３ＭＢｙｔｅ／ｓ（ステップＳ１１）であると判断し、動作周波数をｃｌｋ１／４に設定する（ステップＳ１２）。次に、ステップＳ１９に移行する。
【００８１】
ステップＳ４に戻り、暗号化処理、及び復号化処理モードである場合（ステップＳ４：Ｙｅｓ）、動作モード制御部９は、最も遅いデータ処理速度は２００ＭＢｙｔｅ／ｓ（ステップＳ１３）であると判断し、動作周波数をｃｌｋ１／３に設定する（ステップＳ１４）。次に、ステップＳ１９に移行する。
【００８２】
ステップＳ７に戻り、圧縮処理、及び伸張処理モードである場合（ステップＳ７：Ｙｅｓ）、動作モード制御部９は、最も遅いデータ処理速度は１３３ＭＢｙｔｅ／ｓ（ステップＳ１５）であると判断し、動作周波数をｃｌｋ１／４に設定する（ステップＳ１６）。次に、ステップＳ１９に移行する。
【００８３】
ステップＳ８に戻り、暗号化処理、及び復号化処理モードである場合（ステップＳ８：Ｙｅｓ）、動作モード制御部９は、最も遅いデータ処理速度は２００ＭＢｙｔｅ／ｓ（ステップＳ１７）であると判断し、動作周波数をｃｌｋ１／３に設定する（ステップＳ１８）。次に、ステップＳ１９に移行する。
【００８４】
ステップＳ１９に移行し、次に、動作モード制御部９の処理動作モード切替部２２は、各モードの組合せに対応した、ステップＳ６、ステップＳ１０、ステップＳ１２、ステップＳ１４、ステップＳ１６、ステップＳ１８の各ステップで設定した動作周波数（供給クロック信号１４）を選択して、周波数セレクタ１３は動作周波数を切り替える（ステップＳ１９）。次に、記憶媒体制御装置１００の圧縮／伸張器７、暗号／復号器６、ＲＡＩＤ０制御部５は、ＣＰＵ１２により設定された各モードの処理モードの設定に基づき、各処理を実行する（ステップＳ２０）。次に、例えば、ＤＭＡＣ８は、切り替えられた動作周波数（供給クロック信号１４）でメモリ１１に対してデータの書き込み／読み出しを実行する。また、例えば、ＳＡＴＡ制御部Ａ３、Ｂ４は、ＨＤＤ＿Ａ１、Ｂ２に対して、データの書き込み／読み出しを実行する（ステップＳ２１）。そして、処理を終了する。
【００８５】
このように、上述した処理動作を、本実施形態の記憶媒体制御装置１００に実行させる。これにより、本実施形態の記憶媒体制御装置１００は、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードと、ストライピング処理動作モード、及び単体処理動作モードの各モードとの組合せごとに、それぞれの処理の処理速度を比較して、最も遅いモードの処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数をｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。
【００８６】
また、本実施形態の記憶媒体制御装置１００は、暗号化処理、及び復号化処理の実施の有無の各モードと、圧縮処理、及び伸張処理の実施の有無の各モードとの組合せごとに、それぞれの処理の処理速度を比較して、遅い方のモードの処理速度に合わせてＤＭＡＣ（コントローラ部）８を動作させる動作周波数をｃｌｋ１より低く設定して、ＤＭＡＣ８とメモリ１１との間のデータの転送速度を低下させる。
【００８７】
よって、本実施形態の記憶媒体制御装置１００によれば、暗号化／復号化、及び圧縮／伸張のデータ処理速度がシステム上のボトルネックになる場合でも、ＨＤＤホストコントローラ（ＤＭＡＣ８）のデータ転送帯域を最適化して消費電力を低減することができる。
【００８８】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の各実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。また、以上の各実施の形態および変形例は任意に組み合わせることも可能である。
【００８９】
なお、上述の各実施形態の記憶媒体制御装置１００で実行される制御プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００９０】
さらに、上述の各実施の形態の記憶媒体制御装置１００で実行される制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施の形態の記憶媒体制御装置１００で実行される制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【符号の説明】
【００９１】
１  ＨＤＤ＿Ａ
２  ＨＤＤ＿Ｂ
３  ＳＡＴＡ制御部Ａ
４  ＳＡＴＡ制御部Ｂ
５  ＲＡＩＤ０制御部
６  暗号／復号器
７  圧縮／伸張器
８  ＤＭＡＣ
９  動作モード制御部
１０  バススイッチ
１１  メモリ
１２  ＣＰＵ
１３  周波数セレクタ
１４  供給クロック信号
２１  制御部
２２  処理動作モード切替部
２３  ストライピング領域判定部
２４  検出部
３１、３２  ストライピング処理領域（データ格納領域）
４１、４２  単体処理領域（プログラム格納領域）
【先行技術文献】
【特許文献】
【００９２】
【特許文献１】特開２０００−２３１４５５号公報
【図１】
2015176378.tif 000003
【図２】
2015176378.tif 000004
【図３】
2015176378.tif 000005
【図４】
2015176378.tif 000006
【図５】
2015176378.tif 000007
【図６】
2015176378.tif 000008
【図７】
2015176378.tif 000009