(57)【要約】      （修正有）【課題】      高速に暗復号化処理を実施できるディスクアレイ装置を提供する。【解決手段】  上位装置と接続するための第１インターフェース回路と、少なくとも１つのディスクドライブと、前記各々ディスクドライブとデータの送受信を行うための第２インターフェース回路と、データを暗復号化する暗復号化回路と、暗復号化回路と暗復号化データを送受信するための第３インターフェース回路と、ディスクドライブに格納するためのライトデータまたはディスクドライブから読み込むためのリードデータを格納するためのメモリ回路と、メモリ回路とライトデータまたはリードデータの送受信を行うための第４インターフェース回路と、パリティデータを計算するための演算回路と、演算回路とデータの送受信を行うための第５インターフェース回路、第１乃至第５インターフェース回路間のうち、いずれかを相互に接続するスイッチ回路とを備える。【選択図】  図１
2006023941.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続するための第１インターフェース手段と、少なくとも１つのディスクドライブと、前記各々ディスクドライブとデータの送受信を行うための第２インターフェース手段と、前記データを暗復号化する暗復号化手段と、前記暗復号化手段と暗復号化データを送受信するための第３インターフェース手段と、前記ディスクドライブに格納するためのライトデータまたは当該ディスクドライブから読み込むためのリードデータを格納するためのメモリ手段と、前記メモリ手段と前記ライトデータまたは前記リードデータの送受信を行うための第４インターフェース手段と、パリティデータを計算するための演算手段と、前記演算手段とデータの送受信を行うための第５インターフェース手段、を有するディスクアレイ装置であって、
前記第１インターフェース手段を介して受信する、前記上位装置からの動作要求を実行するための処理シーケンスに従って、データの出力元と、当該データの入力先との接続を制御する接続制御手段と、
前記接続制御手段の制御に基づき、前記第１乃至第５インターフェース手段間のうち、いずれかを相互に接続するスイッチ手段と
を備えることを特徴とするディスクアレイ装置。
【請求項２】
前記スイッチ手段は、前記接続制御手段の制御に従い、データの出力元と、当該データの入力先との接続を、前記第１乃至第５インターフェース手段間のうちから、１対１または１対ｍ（ｍは２以上の自然数）に接続することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記第３インターフェース手段が、データ入力のためと第６インターフェース手段と、データ出力のための第７インターフェース手段とを有する場合、
前記スイッチ手段は、当該第６及び第７インターフェース手段を各々独立の接続対象として、前記接続制御手段の制御に従い、前記第１及び前記第２インターフェース手段、前記第４乃至第７インターフェース手段間のうちから、１対１または１対ｍ（ｍは２以上の自然数）に接続することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項４】
前記スイッチ手段は、前記接続制御手段の制御により、前記動作要求を実行するための処理シーケンスにおいて、並列に当該処理シーケンスを行う場合、複数組の接続を設定することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項５】
上位装置と接続するための第１インターフェース手段と、少なくとも１つのディスクドライブと、前記各々ディスクドライブとデータの送受信を行うための第２インターフェース手段と、前記データを暗復号化する暗復号化手段と、前記暗復号化手段と暗復号化データを送受信するための第３インターフェース手段と、前記ディスクドライブに格納するためのライトデータまたは当該ディスクドライブから読み込むためのリードデータを格納するためのメモリ手段と、前記メモリ手段と前記ライトデータまたは前記リードデータの送受信を行うための第４インターフェース手段と、パリティデータを計算するための演算手段と、前記演算手段とデータの送受信を行うための第５インターフェース手段、を有するディスクアレイ装置の制御方法であって、
前記第１インターフェース手段を介して受信する、前記上位装置からの動作要求を実行するための処理シーケンスに従って、データの出力元と、当該データの入力先との接続を制御する接続制御工程と、
前記接続制御工程の制御に基づき、前記第１乃至第５インターフェース手段間のうち、いずれかを相互に接続するスイッチ手段を動作させるスイッチ工程と
を備えることを特徴とするディスクアレイ装置の制御方法。
【請求項６】
前記スイッチ工程は、前記接続制御工程の制御に従い、データの出力元と、当該データの入力先との接続を、前記第１乃至第５インターフェース手段間のうちから、１対１または１対ｍ（ｍは２以上の自然数）に接続するために、前記スイッチ手段を動作させることを特徴とする請求項５に記載のディスクアレイ装置の制御方法。
【請求項７】
前記第３インターフェース手段が、データ入力のためと第６インターフェース手段と、データ出力のための第７インターフェース手段とを有する場合、
前記スイッチ工程は、当該第６及び第７インターフェース手段を各々独立の接続対象として、前記接続制御工程の制御に従い、前記第１及び前記第２インターフェース手段、前記第４乃至第７インターフェース手段間のうちから、１対１または１対ｍ（ｍは２以上の自然数）に接続するために、前記スイッチ手段を動作させることを特徴とする請求項５に記載のディスクアレイ装置の制御方法。
【請求項８】
前記スイッチ工程は、前記接続制御工程の制御により、前記動作要求を実行するための処理シーケンスにおいて、並列に当該処理シーケンスを行う場合、複数組の接続を前記スイッチ手段に設定させることを特徴とする請求項５に記載のディスクアレイ装置の制御方法。
【請求項９】
請求項５乃至請求項８の何れか１項に記載のディスクアレイ装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗復号化機能を備えたディスクアレイ装置、ディスクアレイ装置の制御方法、その制御プログラム等に関するものである。
【背景技術】
【０００２】
ハードディスク等の記憶装置にデータを記憶させるのに、書き込み時にデータを暗号化し、読み込み時にデータを復号化する装置が知られている。例えば、特許文献１には、共通バス上に暗復号化手段と外部記憶装置を接続したタイプの暗復号化装置が開示されている。また特許文献２には、コンピュータシステムと外部記憶装置を接続するインターフェース上に挿入されるタイプの暗復号化装置が開示されている。
【０００３】
これら特許文献１及び２による開示内容は暗復号化における演算処理をハードウェア化することが可能であり、ソフトウェア処理によって暗復号化を実行する場合に比べて、高速な処理の実行が可能である。
【０００４】
上記の開示内容は何れも単体の記憶装置に対する暗復号化装置であり、ディスクアレイ装置に対してなされたものではない。周知のとおりディスクアレイ装置では、ＲＡＩＤ（Redundant Array of Inexpensive DisksまたはRedundant Array of Independent Disks）の技術を用いてディスクドライブ装置を複数台並列に接続し、全体をまとめて制御することにより、データ転送速度の高速化およびデータ障害耐久性の向上を図っている。なおＲＡＩＤ技術については特許文献３、特許文献４におけるそれぞれの従来技術の欄に概要説明がなされている。
【特許文献１】特開平４−９８５５２号公報
【特許文献２】特開平１１−８５６２１号公報
【特許文献３】特開平８−１４７１１３号公報
【特許文献４】特開平９−６５４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術をディスクアレイ装置に適用する場合には、いくつかの欠点が存在する。例えば特許文献２の開示例では、複数あるディスクドライブ装置毎に暗復号化装置を装備しなければならなくなり、このことはコストの増大を招くばかりでなく、暗復号化の処理が個々の暗復号化装置で独立したものとなるという課題がある。
【０００６】
一部の暗復号化処理アルゴリズムにおいて、暗復号化処理はデータの連鎖的な演算により実施される。つまり暗復号化処理が個々の暗復号化装置で独立したものになってしなうと、同一内容のデータを同一の暗号鍵で暗号化した場合であっても、接続しているディスクドライブ装置の台数、構成が異なれば、個々のディスクドライブ装置への記録データは当然異なったものになり、最終的な暗号データは異なったものになってしまう。その装置でのみ暗復号化処理を行うのであれば、このことはさしたる問題とはならないが、暗号化したデータを他のコンピュータなどに送信し、他のコンピュータの側で復号化を実行しようとすると大変な問題となる。すなわち、他のコンピュータが当該装置と同一のディスクアレイ装置の構成を採っているのでなければ、復号化には極めて複雑な処理の実行が必要となってしまうという課題もある。
【０００７】
一方、特許文献１の開示例ではディスクドライブ装置の台数の違いによる問題は生じないが、暗復号化を実施するためには「暗復号化手段」と「外部記憶装置」との間に、共通バス上でのデータ転送が必要となる。これではせっかくＲＡＩＤによるデータ転送の高速化を図っても、上記の「暗復号化手段」と「外部記憶装置」間のデータ転送のオーバーヘッド（転送そのものに係る時間のほか、暗復号化手段と外部記憶装置が非同期で動作していることに起因する待ち時間等）が存在するために、ＲＡＩＤによる高速化のメリットを十分に享受することができないばかりでなく、共通バスのデータ転送帯域を暗復号化処理によって消費してしまうために、場合によっては共通バスを利用する他の処理のパフォーマンスを劣化させてしまうことになりかねない。
【０００８】
本発明はこうした従来技術の欠点に鑑みてなされたものであり、その目的は高速に暗復号化処理を実施できるディスクアレイ装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明にかかるディスクアレイ装置等は以下の構成を備える。
【００１０】
すなわち、本発明にかかる、上位装置と接続するための第１インターフェース手段と、少なくとも１つのディスクドライブと、前記各々ディスクドライブとデータの送受信を行うための第２インターフェース手段と、前記データを暗復号化する暗復号化手段と、前記暗復号化手段と暗復号化データを送受信するための第３インターフェース手段と、前記ディスクドライブに格納するためのライトデータまたは当該ディスクドライブから読み込むためのリードデータを格納するためのメモリ手段と、前記メモリ手段と前記ライトデータまたは前記リードデータの送受信を行うための第４インターフェース手段と、パリティデータを計算するための演算手段と、前記算手段とデータの送受信を行うための第５インターフェース手段、を有するディスクアレイ装置は、
前記第１インターフェース手段を介して受信する、前記上位装置からの動作要求を実行するための処理シーケンスに従って、データの出力元と、当該データの入力先との接続を制御する接続制御手段と
前記接続制御手段の制御に基づき、前記第１乃至第５インターフェース手段間のうち、いずれかを相互に接続するスイッチ手段とを備えることを特徴とする。
【００１１】
また、上記目的を達成するために、上位装置と接続するための第１インターフェース手段と、少なくとも１つのディスクドライブと、前記各々ディスクドライブとデータの送受信を行うための第２インターフェース手段と、前記データを暗復号化する暗復号化手段と、前記暗復号化手段と暗復号化データを送受信するための第３インターフェース手段と、前記ディスクドライブに格納するためのライトデータまたは当該ディスクドライブから読み込むためのリードデータを格納するためのメモリ手段と、前記メモリ手段と前記ライトデータまたは前記リードデータの送受信を行うための第４インターフェース手段と、パリティデータを計算するための演算手段と、前記演算手段とデータの送受信を行うための第５インターフェース手段、を有するディスクアレイ装置の制御方法は、
前記第１インターフェース手段を介して受信する、前記上位装置からの動作要求を実行するための処理シーケンスに従って、データの出力元と、当該データの入力先との接続を制御する接続制御工程と、
前記接続制御工程の制御に基づき、前記第１乃至第５インターフェース手段間のうち、いずれかを相互に接続するスイッチ手段を動作させるスイッチ工程とを備えることを特徴とする。
【００１２】
また、上記目的を達成するために、本発明にかかるプログラムは、上記の制御方法をコンピュータに実行させることを特徴とする。
【００１３】
また、上記の目的を達成するために、本発明にかかる記憶媒体は、上記のプログラムを格納することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、必要に応じて暗復号化回路をスイッチ回路によってデータの転送経路上に配置し、データ転送の途中で暗復号化処理を実施するようにした。これによりディスクアレイの構成等の違いによらず、常に正しい暗復号化を実施することが可能となる。
【００１５】
また、暗復号化処理のために共通バス上でのデータ転送が不要であるので、そのためのオーバーヘッドが存在せずディスクアレイによる高速化のメリットを十分に活かすことが可能となる。
【００１６】
さらに共通バスのデータ転送帯域を暗復号化処理によって消費することがないため、共通バスを利用して行う他の処理のパフォーマンスに影響を及ぼすことがない。
【００１７】
しかも本発明においては、暗復号化処理の適用／非適用はスイッチ回路の接続制御により簡単に切換えることができるため、ファイル毎などで暗号鍵を変えて暗号化する、ファイル毎に暗号化／非暗号化して記憶するなど、暗復号化に関して柔軟な運用を行うことが可能であるという優れた効果を有している。
【発明を実施するための最良の形態】
【００１８】
[第１実施形態]
図１は本発明の実施形態にかかるディスクアレイ装置の構成を示すブロック図である。図中１０は装置全体の制御を司るＭＰＵ（Micro  Processing  Unit)であり、より具体的にはＣＰＵ（Central  Processing  Unit)、ＲＯＭ／ＲＡＭ、Ｉ／Ｏポートなどが集積された１チップＭＰＵである。
【００１９】
１２〜１５はディスクドライブを接続するためのシリアルＡＴＡ  Ｉ／Ｆ回路であり、それぞれのＩ／Ｆ回路の先にハードディスクドライブ（以下、「ディスクドライブ」という）１６〜１９が接続している。シリアルＡＴＡ  Ｉ／Ｆ回路（Ｓ-ＡＴＡ  Ｉ／Ｆ回路）１２〜１５は、ＭＰＵ１０からの制御信号が受信できるようにＭＰＵ１０と接続しており、実際にディスクドライブに記録するデータ以外のコマンド等は、ＭＰＵ１０の指示に基づいてディスクドライブに対して発行できるようになっている。なおディスクドライブ１６〜１９には、少なくともＲＡＩＤによるストリップサイズ（複数のドライブに分散させるデータのサイズ）よりは大きいサイズのライトバッファメモリ、またはライトキャッシュメモリが備えられているものとする。
【００２０】
２０はディスクドライブ１２〜１５に対するリード／ライトデータを、一時的に格納するためのバッファメモリ回路であり、ライトバッファ３０やリードバッファ３１〜３３を含むメモリ素子、不図示のアクセス信号生成回路、不図示のアービタ回路等から構成される。バッファメモリ回路２０は、機能的には上位装置２５からのライトデータを格納するライトバッファ３０、ディスクドライブ１６〜１９のうち、パリティディスクを除く３台のディスクドライブからのリードデータを格納するリードバッファ３１、３２、３３の４つの機能ブロックで構成されており、それぞれの機能ブロック毎に入出力のためのインターフェース（不図示）が独立に設けられている。
【００２１】
また、ＭＰＵ１０は各機能ブロック毎に、メモリ素子の先頭アドレス値を設定することができるようになっている。リード／ライトデータを格納する場合、バッファメモリ回路２０の各機能ブロック（ライトバッファ３０、リードバッファ３１〜３３） は当該設定されたアドレス値を先頭アドレスにデータを格納する（なおリードバッファ３１〜３３には、アドレスを指定してアクセスを行うタイプのメモリ素子ではなくＦＩＦＯメモリを使用してもよい。）。
【００２２】
２１は冗長ディスクに対するパリティデータを計算するためのパリティ計算回路であり、所定サイズのデータ保持レジスタ、ＸＯＲ演算回路などから構成される（データ保持レジスタの代わりにメモリ素子を用いてよく、例えばバッファメモリ回路２０で使用されるメモリ素子の一部領域をパリティ計算用に流用する構成としても、もちろんよい。）。なおパリティ計算回路２１はＭＰＵ１０からの指示に基づいて、最初の計算結果を０にクリアすることができるようになっている。また、パリティ計算回路２１には、データの入出力のためのインターフェース（不図示）が設けられている。
【００２３】
２２は所定の暗号鍵情報を用いて上位装置２５からのデータを暗号化、またはディスクドライブ１６〜１９上に記憶された暗号化データを復号化するための暗復号化回路である。適用する暗号鍵情報はＭＰＵ１０によって任意の値を設定することができるようになっている。なお暗復号化処理のアルゴリズムについては特に詳しく述べないが、ブロック暗号、ストリーム暗号のどちらを使用してもよく、例えばＡＥＳ、ＤＥＳ、ＲＣ４（ＲＣ４は米国ＲＳＡ社の商標）などの周知のアルゴリズムが用いることができる。また、暗復号化回路２２には、データの入出力のためのインターフェース（不図示）が設けられている。
【００２４】
１１はＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路（ＰＣＩ−ＥｘｐｒｅｓｓはＰＣＩ−ＳＩＧの登録商標）であり、当該Ｉ／Ｆ回路により上位装置（パーソナルコンピュータ等の情報処理装置）２５がディスクアレイ装置と接続する。尚、ＰＣＩ−Ｅｘｐｒｅｓｓは、業界標準団体である ＰＣＩ−ＳＩＧ（http://www.pcisig.org）により提唱されている次世代パーソナルコンピュータ向けの新しいＩ／Ｏインターフェース規格である。
【００２５】
また、ディスクアレイ装置とデータの送受信が可能な上位装置は、図１に示したように１台に限定されるものではなく、ネットワークを介して接続する複数の上位装置との間でデータの送受信を行うように構成することも可能である。
【００２６】
ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１には、ＰＣＩコンフィグレーション領域のほか、少なくとも２つのＩ／Ｏ領域が設定されている。一方はディスクドライブ１６〜１９に記録するデータを入出力するための領域であり、他方はディスクドライブ１６〜１９の操作関連および暗復号化関連の設定、確認するための制御領域である。この制御領域はレジスタ構造になっており（以下、「制御領域レジスタ」ともいう。）、上位装置２５からの当該レジスタへの設定は制御信号を介してＭＰＵ１０で確認することができるようになっている。
【００２７】
また、ディスクドライブ１６〜１９のコントロールブロックレジスタ等のステータス値は、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５を通じてＭＰＵ１０によって読み出され、その値をＭＰＵ１０が上記の制御領域レジスタに設定する。これにより上位装置２５がコントロールブロックレジスタ等のステータス値を確認できるようになっている（尚、データ入出力領域をメモリ領域、制御領域を拡張コンフィグレーション領域としてもよい。）。
【００２８】
ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、パリティ計算回路２１、暗復号化回路２２、ライトバッファ３０、リードバッファ３１〜３３は、いずれも２３のクロスバースイッチ回路と接続している。クロスバースイッチ回路２３は双方向の伝送が可能で、少なくともディスクドライブ１６〜１９の実効転送速度の数倍〜十数倍程度の転送速度を持った適宜の高速デジタルシリアル伝送信号線、または高速デジタルパラレル伝送信号線で構成されるクロスバースイッチであり、ＭＰＵ１０からの制御に基づいて上記の接続対象を様々な組み合わせで相互に接続する。
【００２９】
ディスクドライブ１６〜１９へのライトデータ／ディスクドライブ１６〜１９からのリードデータは、クロスバースイッチ回路２３の接続設定に基づき上記の接続対象間で高速に転送される。また、クロスバースイッチ回路２３は、接続対象が重ならなければ、同時に複数組の接続が設定可能である。つまり異なる接続対象間でなされる複数のデータ転送を同時に実行することができるようになっている。
【００３０】
ここで、図１からも明らかなように、ＭＰＵ１０と、ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１、シリアルＡＴＡ（Ｓ-ＡＴＡ）  Ｉ／Ｆ回路１２〜１５、バッファメモリ回路２０（ライトバッファ３０、リードバッファ３１〜３３を含む）、パリティ計算回路２１、暗復号化回路２２とは、クロスバースイッチ回路２３とは別の制御信号によって相互に接続されており、ＭＰＵ１０から各々のブロックに対する動作制御はクロスバースイッチ回路２３の接続設定に関りなく、随時実行が可能である。
【００３１】
本実施形態によるディスクアレイ装置は、上位装置２５のＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ１１を介して接続し、４台のディスクドライブ装置と接続可能なＲＡＩＤコントローラとして機能する。ＲＡＩＤのレベルとしては０（ストライピングのみ）、１、５、１０をサポートし、それ以外にもＮｏｎ−ＲＡＩＤ、すなわち各ディスクドライブを４台の単体のディスクドライブとして取り扱うことも可能なようになっている。
【００３２】
尚、いずれかのＲＡＩＤレベルで動作させているとき、ディスクアレイ装置全体は上位装置２５からは論理的に１台のディスクドライブとして認識される。
【００３３】
次に、図２〜５のフローチャートを用いて、本発明の実施形態にかかるディスクアレイ装置の動作について説明する。以下に説明するフローチャートの処理では、４台のディスクドライブ１６〜１９を用いてＲＡＩＤ５（うち１台がパリティディスク）のディスクアレイを構成する場合を例に説明を行う。前提として、ディスクドライブ１６〜１９には事前に所定のフォーマット処理が施されており、全てのセクタには「０」が書き込まれているものとする。
【００３４】
図２は、上位装置からの動作要求を判定する処理の流れを説明するフローチャートである。まず、図２のステップＳ１０１〜Ｓ１０５までの処理で、上位装置２５からの動作要求をそれぞれ判定する。動作要求の判定は、上位装置２５によってなされる制御領域レジスタへの設定によってＭＰＵ１０が判定することができる。
【００３５】
ＭＰＵ１０は、ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ１１を介して受信する、上位装置２５からの動作要求を実行するための処理シーケンスに従って、データの出力元と、そのデータの入力先との接続を制御する。また、ＭＰＵ１０の制御に基づき、クロスバースイッチ回路は、インターフェース回路間のうち、いずれかを相互に接続する。
【００３６】
以下、個別の処理シーケンスごとに、具体的な内容を説明する。
【００３７】
＜暗号鍵設定＞
上位装置２５からの動作要求が暗復号化処理で使用する暗号鍵の設定であった場合は（Ｓ１０１-Ｙｅｓ）、ステップＳ１０６において当該動作要求で指示されたデータを暗号鍵情報（暗号鍵そのものだけでなく、鍵長・ブロック長の設定データ、ＣＢＣ、ＣＦＢ、ＯＦＢモードを用いる場合には当該モードの適用・非適用の指定データや初期化のためのデータ、さらに複数の暗号アルゴリズムを選択可能である場合は使用するアルゴリズムの指定データ等も含む）として設定する。具体的には、上位装置２５が、図１で説明した制御領域上に設けられたレジスタに、暗号鍵情報として使用するデータを書き込むことで行われる。なお上位装置２５は、必要に応じて何時でも暗号鍵情報を変更することが可能である。
【００３８】
＜通常書き込み＞
上位装置２５からの動作要求が通常（平文）の書き込みであった場合は（Ｓ１０２-Ｙｅｓ）、処理を図３のステップ１０７に進める。図３は、動作要求が通常（平文）の書き込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。まず、ステップＳ１０７ではＭＰＵ１０の指示により、クロスバースイッチ回路２３においてＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１とライトバッファ３０を接続する。
【００３９】
そしてステップＳ１０８で、上位装置２５から送信されるライトデータを一旦、ライトバッファ３０に格納する。次に、ステップＳ１０９で、ライトデータの書き込みがディスクドライブに分配される、ＲＡＩＤ５のストライプ領域全てに渡る連続データの書き込みであるか否かをＭＰＵ１０が判定する。ストライプ領域全てに渡る連続データであるか否かは、上位装置２５から指定されるＬＢＡ（Logical Block Address）と書き込みのサイズ（ブロックカウント数）で判定することができる。
【００４０】
連続の書き込みでなかった場合は（Ｓ１０９-Ｎｏ）、処理をステップＳ１１０に進め、ステップＳ１１０で、クロスバースイッチ回路２３によりパリティディスクが接続するシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１とを接続する。４台中のどのディスクドライブがパリティディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００４１】
次に、ステップＳ１１１でパリティディスクに対して、パリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１１２で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に記録してあるパリティデータをパリティディスクからパリティ計算回路２１に転送する。この動作により現在（更新前）のパリティデータがパリティ計算回路２１に読み込まれる（より具体的には、事前にＭＰＵ１０により計算結果を０にクリアしておき、０と転送されたパリティデータとのＸＯＲ（排他的論理和演算）を実行することで、転送されたパリティデータを計算結果として保持する。）。
【００４２】
ステップＳ１１３で、クロスバースイッチ回路２３により、書き込み対象ディスクに接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とリードバッファ３１を接続する。どのディスクドライブが書き込み対象のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００４３】
次に、ステップ１１４で、書き込み対象ディスクに対して、書き込み対象ディスクが接続するシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１１５で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に現在記録されているデータをリードバッファ３１に転送する。
【００４４】
ステップＳ１１６で、クロスバースイッチ回路２３により、リードバッファ３１とパリティ計算回路２１を接続し、ステップＳ１１７でリードバッファ３１に格納したデータをパリティ計算回路２１に転送する。この動作によりパリティデータと現在記録されているデータとのＸＯＲが計算される。このデータは書き込み対象ディスクではない、他の２台のディスクの同一ストライプに対して割り当てられた領域に、現在記録されているデータ同士をＸＯＲしたものと同値である。
【００４５】
ステップＳ１１８で、クロスバースイッチ回路２３により、ライトバッファ３０と書き込み対象ディスクに接続するシリアルＡＴＡ  Ｉ／Ｆ回路を接続する。
【００４６】
ステップＳ１１９において、書き込み対象ディスクに対して、書き込み対象ディスクが接続するシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１２０で、ライトバッファ３０に格納されているライトデータを、上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に転送する。この動作によりライトデータが書き込み対象ディスクに書き込まれる。
【００４７】
次に、ステップＳ１２１で、クロスバースイッチ回路２３によりライトバッファ３０とパリティ計算回路２１を接続し、ステップ１２２で、ライトバッファ３０に格納されたライトデータを転送する。パリティ計算回路２１は転送されたライトデータと、ステップ１１７で計算しておいたデータのＸＯＲを実行し、新たな（更新後の）パリティデータを計算して保持する。ステップＳ１２２の処理の後、処理をステップＳ１３１に進める。
【００４８】
ステップＳ１３１で、クロスバースイッチ回路２３によりパリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１を接続する。
【００４９】
ステップＳ１３２で、パリティディスクに対して、パリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップ１３３でパリティ計算回路２１から更新後のパリティデータを、上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に転送する。この動作により更新後のパリティデータがパリティディスクに書き込まれる。
【００５０】
説明をステップＳ１０９に戻し、書き込みがストライプ領域全てに渡る連続データである場合は（Ｓ１０９-Ｙｅｓ）、処理をステップＳ１２３に進める。
【００５１】
書き込みがストライプ領域全てに渡る連続データの場合、現在のパリティデータを読み込んで更新する必要はなく、書き込みデータだけから新たなパリティデータを計算し、そのままパリティディスクに書き込めば事足りる。
【００５２】
そこでまず、ステップＳ１２３で変数ｎを１に設定するとともに、パリティ計算回路２１の計算結果を０にクリアしておく（変数ｎはＭＰＵ１０内のＲＡＭ上の、適宜の領域に設定する。）。
【００５３】
ステップＳ１２４で、クロスバースイッチ回路２３によりライトバッファ３０とｎ番目（この段階ではｎ＝１）のディスクに接続されたシリアルＡＴＡ  Ｉ／Ｆ回路を接続する。どのディスクドライブがｎ番目のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００５４】
ステップＳ１２５で、ｎ番目のディスクに対して、ｎ番目のディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１２６でライトバッファ３０からｎ番目のディスクに書き込むべきストリップデータを、上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に転送する。この動作によりｎ番目のディスクに対するストリップデータがｎ番目のディスクに書き込まれる。
【００５５】
ステップＳ１２７で、クロスバースイッチ回路２３によりライトバッファ３０とパリティ計算回路２１を接続し、ステップＳ１２８でライトバッファ３０からステップＳ１２１で転送したのと同一のデータを転送する。パリティ計算回路２１は、転送されたデータと保持しておいたパリティデータのＸＯＲを実行して、パリティデータを計算して保持する（尚、ｎ＝１のときは、始めに保持されているデータは０なので、転送データと０のＸＯＲが計算され、結果として転送データが保持される。）。
【００５６】
ステップＳ１２９で、変数がｎ＝３か否かを判定する。ｎ＝３でない場合は（ｎ＜３）、ステップ１３０で、変数ｎを１だけカウントアップし、処理をステップＳ１２４に戻し、同様の処理を変数ｎ＝３となるまで、ステップＳ１２４〜Ｓ１２８の処理を繰り返す。３台のディスクドライブ分、同様の処理が３回実行されることになる。
【００５７】
尚、図３ではｎ＝１、２、３の順で処理を繰り返すようにしたが、ディスクドライブの動作状況により順番は適宜変更してよい。要は最終的に３台のディスクドライブについて書き込み動作が実行されていればよい。
【００５８】
ステップＳ１２４〜Ｓ１２８の処理をｎ＝１、２、３（３台のディスクドライブ分）について実行し終えたら、処理をステップＳ１３１に進める。ステップＳ１３１〜Ｓ１３３の各処理の内容は既に説明したので、個別の説明は省略するが、ステップＳ１３１〜Ｓ１３３の処理を実行して、最終的なパリティデータがパリティディスクに書き込まれる。
【００５９】
尚、上位装置２５にとっては１回の書き込み動作であっても、連続するデータと、単独書き込みのデータと、に分割して処理すべき場合が当然発生するが、その場合には、ＭＰＵ１０の制御の下、ステップＳ１１０〜１３３の処理と、ステップ１２４〜１３３の処理とを適宜組み合わせて実行することができる。
【００６０】
上位装置２５にとっては、１回の書き込み動作であっても、各ディスクドライブに割り当てられたストリップ領域が跨がってしまう場合には、実際には２〜３台へのディスクドライブ装置への書き込みに分散される場合が当然発生するが、その場合には、ＭＰＵ１０の制御の下、ステップＳ１１０〜Ｓ１３３の処理を必要なだけ繰り返せばよい。また、図３では説明の都合上、ステップＳ１０７〜Ｓ１１５、およびステップＳ１１６〜Ｓ１２０までの処理をそれぞれシーケンシャルに記述しているが、クロスバースイッチ回路２３では接続対象が重ならなければ、同時に複数組の接続が設定可能であるので、実際には同時に（より正確には処理期間が重なる形で）処理することもできる。
【００６１】
図３のフローチャートからも解るように、各ディスクドライブへの書き込み動作はシーケンシャルに行われるが、ＰＣＩ−Ｅｘｐｒｅｓ  Ｉ／Ｆ回路１１、ライトバッファ３０、リードバッファ３１、パリティ計算回路２１、クロスバースイッチ回路２３、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、ディスクドライブ１６〜１９に備えられたライトバッファメモリ、それぞれの動作速度（データ転送速度）は、ディスクドライブ１６〜１９の実効転送速度より十分に高速であるから、見かけ上は各ディスクドライブに対する書き込みが同時に行われたのと略同等の書き込み速度を得ることができる。
【００６２】
図２のフローチャートに戻り、上位装置２５からの動作要求が暗号化の書き込みであった場合は（Ｓ１０３-Ｙｅｓ）、処理を図４のステップ１３４に進める。
【００６３】
＜暗号化書き込み＞
図４は、上位装置２５からの動作要求が暗号化の書き込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【００６４】
ステップＳ１３４ではＭＰＵ１０の指示により、クロスバースイッチ回路２３においてＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１とライトバッファ３０とを接続する。そしてステップＳ１３５で、上位装置２５から送信されるライトデータを一旦、ライトバッファ３０に格納する。ステップＳ１３６で、当該書き込みがＲＡＩＤ５のストライプ領域全てに渡る連続データの書き込みであるか否かを判定する。
【００６５】
連続の書き込みでなかった場合は（Ｓ１３６-Ｎｏ）、処理をステップＳ１３７に進め、ステップＳ１３７では、クロスバースイッチ回路２３によりパリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１とを接続する。ステップＳ１３８でパリティディスクに対して、パリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１３９で上位装置２５から指定された領域に記録されているパリティデータをパリティディスクからパリティ計算回路２１に転送する。この動作により現在（更新前）のパリティデータがパリティ計算回路２１に読み込まれる。
【００６６】
次に、ステップ１４０で、クロスバースイッチ回路２３により書き込み対象ディスクに接続しているＡＴＡ  Ｉ／Ｆ回路とリードバッファ３１を接続する。どのディスクドライブが書き込み対象のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００６７】
ステップＳ１４１で書き込み対象ディスクに対して、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１４２で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に現在記録されているデータをリードバッファ３１に転送する。
【００６８】
ステップＳ１４３で、クロスバースイッチ回路２３によりリードバッファ３１とパリティ計算回路２１を接続し、ステップ１４４でリードバッファ３１に格納してあるデータをパリティ計算回路２１に転送する。この動作によりパリティデータと現在記録されているデータとのＸＯＲが計算される（このデータは書き込み対象ディスクではない、他の２台のディスクの同一ストライプに対して割り当てられた領域に、現在記録されているデータ同士をＸＯＲしたものと同値である。）。
【００６９】
ここまでのステップＳ１３７〜Ｓ１４４の処理は図３で説明したステップＳ１１０〜Ｓ１１７の処理と同一であるが、暗号化書き込みではここからの処理が異なっている。
【００７０】
ステップＳ１４５で、クロスバースイッチ回路２３によりライトバッファ３０と暗復号化回路２２とを接続する。ステップＳ１４６で、暗復号化回路２２に対して暗号化動作を指示（ステップＳ１０６（図２）で設定しておいた暗号鍵情報の指示も含む）した後、ライトバッファ３０に格納されたライトデータを転送する。この動作により転送されたライトデータは所定の暗号鍵で暗号化され、暗復号化回路２２内部のメモリに保持される。
【００７１】
ステップＳ１４７で、クロスバースイッチ回路２３により暗復号化回路２２と書き込み対象ディスクに接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を接続する。ステップＳ１４８で書き込み対象ディスクに対して、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１４９で暗復号化回路２２のメモリに保持されている暗号化データ（暗号化済みのライトデータ）を上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に転送する。この動作により暗号化データが書き込み対象ディスクに書き込まれる。
【００７２】
ステップＳ１５０で、クロスバースイッチ回路２３により暗復号化回路２２とパリティ計算回路２１を接続し、ステップＳ１５１で暗復号化回路２２のメモリに保持されている暗号化データ（暗号化済みのライトデータ）を転送する。この動作により新たな（更新後の）パリティデータが計算され、保持される。
【００７３】
ステップＳ１５１の後、処理をステップＳ１６２に進める。
【００７４】
ステップＳ１６２では、クロスバースイッチ回路２３によりパリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１を接続する。そして、ステップＳ１６３で、パリティディスクに対して、パリティディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップ１６４で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域にパリティ計算回路２１から更新後のパリティデータを転送する。この動作により更新後のパリティデータがパリティディスクに書き込まれる。
【００７５】
尚、上位装置２５にとっては１回の暗号化書き込み動作であっても、各ディスクドライブに割り当てられたストリップ領域が跨がってしまう場合には、実際には２〜３台へのディスクドライブへの書き込みに分散される場合が当然発生するが、その場合にはステップＳ１３７〜Ｓ１６４の処理を必要なだけ繰り返せばよい。また、図４では、説明の都合上ステップＳ１３４〜Ｓ１４２までの処理をシーケンシャルに記述しているが、クロスバースイッチ回路２３は、接続対象が重ならなければ、同時に複数組の接続が設定可能であるので、実際には同時に（より正確には処理期間が重なる形で並列的に）処理することもできる。
【００７６】
説明をステップ１３６に戻し、書き込みが複数のディスクドライブに対するストライプ領域全てに渡る連続データであった場合は（Ｓ１３６-Ｙｅｓ）、処理をステップ１５２に進める。
【００７７】
ステップＳ１５２では、変数ｎを１に設定するとともに、パリティ計算回路２１の計算結果を０にクリアしておく。ステップＳ１５３で、クロスバースイッチ回路２３によりバッファメモリ回路２０におけるライトバッファ３０と暗復号化回路２２を接続する。
【００７８】
ステップＳ１５４で、暗復号化回路２２に対して、ＭＰＵ１０の制御の下、暗号化動作を指示（ステップ１０６で設定しておいた暗号鍵情報の指示も含む）した後、ライトバッファ３０からｎ番目（この段階ではｎ＝１）のディスクに書き込むべきストリップデータが暗復号化回路２２に転送され。転送されたストリップデータは所定の暗号鍵で暗号化され、暗復号化回路２２内部のメモリに保持される。
【００７９】
次に、ステップＳ１５５で、クロスバースイッチ回路２３により暗復号化回路２２とｎ番目のディスクに接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とを接続する。どのディスクドライブがｎ番目のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００８０】
ステップＳ１５６で、ｎ番目のディスクに対して、ｎ番目のディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１５７で、暗復号化回路２２のメモリに保持されている暗号化データ（暗号化済みのストリップデータ）を上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に転送する。この動作により暗号化データ（ｎ番目のディスクに対する、暗号化済みのストリップデータ）がｎ番目のディスクに書き込まれる。
【００８１】
ステップＳ１５８で、クロスバースイッチ回路２３により暗復号化回路２２とパリティ計算回路２１を接続し、ステップＳ１５９で暗復号化回路２２からステップＳ１５６で転送したのと同一のデータをパリティ計算回路２１に転送する。パリティ計算回路２１は、転送されたデータと保持しておいたパリティデータのＸＯＲ演算を実行して、パリティデータを計算して保持する（なおｎ＝１のときは、始めに保持されているデータは０なので、転送データと０のＸＯＲが計算され、結果として転送データが保持される。）。
【００８２】
ステップＳ１６０で、変数がｎ＝３か否かを判定する。ｎ＝３でない場合は（ｎ＜３）、ステップＳ１６１で、変数ｎを１だけカウントアップし、処理をステップＳ１５３に戻し、ｎ＝３となるまでステップＳ１５３〜Ｓ１５９の処理を繰り返す。３台のディスクドライブ分、同様の処理が３回実行されることになる。
【００８３】
ステップＳ１５３〜Ｓ１５９の処理をｎ＝１、２、３（３台のディスクドライブ分）について実行し終えたら、処理をステップＳ１６２に進める。ステップＳ１６２〜Ｓ１６４の各処理の内容は既に説明したので、個別の説明は省略するが、ステップＳ１６２〜Ｓ１６４の処理を実行して、最終的なパリティデータがパリティディスクに書き込まれる。
【００８４】
尚、上位装置２５にとっては１回の暗号化書き込み動作であっても、連続するデータと単独書き込みのデータとに分割して処理すべき場合が当然発生するが、その場合には、ＭＰＵ１０の制御の下、ステップＳ１３７〜Ｓ１６４の処理とステップＳ１５２〜Ｓ１６４の処理とを適宜組み合わせて実行することができる。
【００８５】
以上の説明より、暗号化書き込みの場合、ライトバッファ３０に格納されたライトデータを各ディスクが接続されたシリアルＡＴＡ  Ｉ／Ｆ回路に直接転送するのではなく、一旦、暗復号化回路２２を経由して暗号化してから指定されたシリアルＡＴＡ  Ｉ／Ｆ回路に転送する。
【００８６】
図４のフローチャートからも解るように、各ディスクドライブへの書き込み動作はシーケンシャルに行われるが、ＰＣＩ−Ｅｘｐｒｅｓ  Ｉ／Ｆ回路１１、ライトバッファ３０、リードバッファ３１、パリティ計算回路２１、暗復号化回路２２、クロスバースイッチ回路２３、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、ディスクドライブ１６〜１９に備えられたライトバッファメモリ、それぞれの動作速度（データ転送速度）は、ディスクドライブ１６〜１９の実効転送速度より十分に高速であるから、見かけ上は各ディスクドライブに対する書き込みが同時に行われたのと略同等の書き込み速度を得ることができる。
【００８７】
図２のフローチャートに戻り、上位装置２５からの動作要求が通常（平文）の読み込みであった場合は（Ｓ１０４-Ｙｅｓ）、処理を図５ＡのステップＳ１６５に進める。
【００８８】
＜通常読み込み＞
図５Ａは、上位装置２５からの動作要求が通常（平文）の読み込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【００８９】
ステップＳ１６５では、クロスバースイッチ回路２３により、パリティディスクを除く３台の読み込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とリードバッファ３１〜３３を接続する。どのディスクドライブが読み込み対象のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００９０】
ステップＳ１６６で、上位装置２５は、３台の読み込み対象ディスクに対して、読み込み対象ディスクが接続しているそれぞれのシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１６７で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に記録されているデータを読み取ってリードバッファ３１〜３３に転送する。この動作によりディスクドライブからのリードデータがリードバッファ３１〜３３に格納される。ここで、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、クロスバースイッチ回路２３、リードバッファ３１〜３３の動作速度は、ディスクドライブ１６〜１９の実効転送速度より十分に高速であるから、３台のディスクドライブから同時にデータを読み込むことが可能である。
【００９１】
次に、ステップＳ１６８で、クロスバースイッチ回路２３により、リードバッファ３１とＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１を接続する。次いで、ステップＳ１６９で、リードバッファ３１に格納したデータをＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１に転送する。
【００９２】
ステップ１７０〜１７３では、リードバッファ３２、リードバッファ３３について、ステップ１６８、１６９と同様の処理を実行する。これらの動作によりリードバッファ（３１、３２、３３）に格納されているリードデータが上位装置２５のメインメモリ上に転送される。
【００９３】
尚、上位装置２５にとっては１回の読み込み動作であっても、そのサイズがストライプ領域を越えてしまう場合には、ステップＳ１６５〜Ｓ１７３の処理を、ＭＰＵ１０の制御の下、必要なだけ繰り返せばよい。また、１回の読み込み動作、あるいは上記の繰り返し動作における最後の読み込み動作の読み込みサイズが、ストライプ領域分未満のときには３台同時に読み込む必要がない場合も当然発生するが、その場合は、ＭＰＵ１０の制御の下、必要となるディスクドライブに対してのみ読み込みを実施すればよい。
【００９４】
図２のフローチャートに戻り、上位装置２５からの動作要求が復号化の読み込みであった場合は（Ｓ１０５-Ｙｅｓ）、図５ＢのステップＳ１７４に処理を進める。
【００９５】
＜復号化読み込み＞
図５Ｂは、上位装置２５からの動作要求が復号化の読み込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【００９６】
ステップＳ１７４では、クロスバースイッチ回路２３により、パリティディスクを除く３台の読み込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路それぞれとリードバッファ３１〜３３を接続する。どのディスクドライブが読み込み対象のディスクであるかは、上位装置２５から指定されるＬＢＡとブロックカウント数からＭＰＵ１０が算出する。
【００９７】
ステップＳ１７５で、３台の読み込み対象ディスクに対して、読み込み対象ディスクが接続しているそれぞれのシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、リードコマンドを発行し、ステップＳ１７６で上位装置２５から指定されたＬＢＡに基づいて決定される対応領域に記録されているデータを読み取ってリードバッファ３１〜３３に転送する。この動作によりディスクドライブからのリードデータがリードバッファ３１〜３３に格納される。
【００９８】
ステップ１７７で、クロスバースイッチ回路２３により、リードバッファ３１と暗復号化回路２２を接続する。次いで、ステップＳ１７８で、暗復号化回路２２に対して復号化動作を指示（ステップ１０６で設定しておいた暗号鍵情報の指示も含む）した後、ＭＰＵ１０の制御の下、リードバッファ３１に格納されたデータを暗復号化回路２２に転送する。この動作により転送されたリードデータは所定の暗号鍵で復号化され、暗復号化回路２２内部のメモリに保持される。
【００９９】
ステップＳ１７９で、クロスバースイッチ回路２３により、暗復号化回路２２とＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１を接続し、ステップＳ１８０で、暗復号化回路２２のメモリに保持されている復号化データ（復号化済みのリードデータ）を転送する。
【０１００】
ステップＳ１８１〜Ｓ１８８で、リードバッファ３２、リードバッファ３３についてステップ１７７〜１８０と同様の処理を実行する。ＭＰＵ１０の制御の下、リードバッファ（３１、３２、３３）に格納されているリードデータが上位装置２５のメインメモリ上に転送される。
【０１０１】
尚、上位装置２５にとっては１回の読み込み動作であっても、そのサイズがストライプ領域を越えてしまう場合には、ステップＳ１７４〜Ｓ１８８の処理を必要なだけ繰り返せばよい。また１回の読み込み動作、あるいは上記繰り返し動作の最後の読み込み動作の読み込みサイズが、ストライプ領域未満のときには３台同時に読み込む必要がない場合も当然発生するが、その場合は必要となるディスクドライブに対してのみ読み込みを実施すればよい。
【０１０２】
以上の説明からも解るように、復号化読み込みの場合は、ディスクドライブ１６〜１９から読み取ったリードデータをＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１に直接転送するのではなく、一旦、暗復号化回路２２を経由して、暗号化されたデータを復号化してから転送する。
【０１０３】
以上説明してたように本実施形態によれば、ＭＰＵ１０の制御の下、必要に応じて暗復号化回路２２をクロスバースイッチ回路２３によって接続が可能なようにデータの転送経路上に配置し、データ転送の途中で暗復号化処理を実施するようにした。これによりＲＡＩＤの構成等の違いによらず、常に正しい暗復号化を実施することが可能となる。
【０１０４】
また、暗復号化処理のために共通バス上でのデータ転送が不要であるので、そのためのオーバーヘッドが存在せずＲＡＩＤによる高速化のメリットを十分に活かすことが可能となる。
【０１０５】
尚、以上の実施形態ではＲＡＩＤ５のディスクアレイ装置を例に説明を行ったが、他のＲＡＩＤレベル（ｎｏｎ−ＲＡＩＤを含む）であっても本実施形態を有効に適用することが可能である。この場合、パリティに関する冗長ディスクを持たないＲＡＩＤ構成（ＲＡＩＤ０、１、１０）であればパリティ計算回路は必須の構成要素ではない。
【０１０６】
[第２実施形態]
第１実施形態で説明したクロスバースイッチ回路２３は、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、暗復号化回路２２、バッファメモリ回路２０等、接続対象が重ならなければ１対１の接続を同時に複数組、設定可能になっている。上述の図３、図４で説明したフローチャートにおいては、同一のデータ出力元（例えば、シリアルＡＴＡ  Ｉ／Ｆ回路を介して接続するディスクドライブ）から同一のデータを異なった対象（例えば、クロスバースイッチ回路２３を介して接続する暗復号化回路２２、バッファメモリ回路２０）に出力する処理が存在する。つまり第１実施形態におけるクロスバースイッチ回路２３は１対１の接続しか許可していないため、同一の出力元の同一データであっても逐一接続を組み替え、再度データの転送を行う必要があった。
【０１０７】
スイッチ回路（手段）が１対２の接続をすることが可能であれば、接続の組み替えとデータの再転送は不要となり、より高速な処理が期待できる。
【０１０８】
また、第１実施形態における暗復号化処理も処理の終了後、一旦、暗復号化処理の結果を暗復号化回路２２内部のメモリに保持してから転送する構成となっているが、暗復号化処理の入出力を同時（並列）に実行可能なのであれば、入力のためのデータ転送と出力のためのデータ転送を並列に実行することで、より高速の処理が期待できる。本実施形態は、これらの内容に対処するものである。
【０１０９】
図６は、第２実施形態にかかるディスクアレイ装置の構成を示すブロック図である。図中ＭＰＵ１０、ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１、シリアルＡＴＡ  Ｉ／Ｆ回路１２〜１５、ディスクドライブ１６〜１９、バッファメモリ回路２０、パリティ計算回路２１、上位装置２５は、それぞれ、図１で説明したものと同一のものである。
【０１１０】
４３は、本実施形態において、スイッチ回路（手段）として機能するスイッチファブリック回路である。図１で説明したクロスバースイッチ回路２３と異なっている点は、１対１の接続だけでなく１（出力元）対２（入力先）の接続も設定可能な点である。もちろんクロスバースイッチ回路２３と同様に、接続対象が重ならなければ、ＭＰＵ１０の制御の下、同時に複数組の接続が設定可能である。
【０１１１】
４２は、本実施形態の暗復号化回路である。図１で説明した暗復号化回路２２と異なっている点は、入力（６０１）のためとインターフェースと出力（６０２）のためのインターフェースを独立に備えており、入出力を同時（並列）に実行することが可能な点である。入力インターフェースと出力インターフェースは、それぞれ独立の接続対象としてスイッチファブリック回路４３と接続する。
【０１１２】
暗復号化回路４２は、平文データ／暗号化データが入力されると直ちに暗号化データ／復号化データを出力することができるようになっている。この際、処理のための若干の遅延時間は存在するが、略同時に並列処理される。ＭＰＵ１０は、暗復号化回路４２に設けられた入力のためとインターフェースと出力のためのインターフェースを独立に機能させるように制御することが可能であり、また、ＭＰＵ１０は、スイッチファブリック回路４３を制御して、１対２の接続を可能にする。
【０１１３】
また、ＭＰＵ１０は、スイッチファブリック回路４３における１対２の接続と、暗復号化回路２２における入力のためとインターフェースと出力のためのインターフェースとを、並列に動作させるように制御することができる。
【０１１４】
＜通常（平文）書き込み＞
図７は、第２実施形態における通常（平文）書き込みの処理の流れを説明するフローチャートである。図中ステップＳ１０７〜Ｓ１１７、ステップＳ１２３、ステップＳ１２９〜Ｓ１３３の処理は、図３で説明した処理と同一であるので説明は割愛する。
【０１１５】
ステップＳ１１７で、現在リードバッファ３１に記録されているデータとパリティデータとのＸＯＲにより現状のパリティデータを計算したら、ステップＳ１１８'で、スイッチファブリック回路４３によりライトバッファ３０と、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路及びパリティ計算回路２１を接続する。
【０１１６】
次いで、ステップＳ１１９'で書き込み対象ディスクに対して、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１２０'でライトバッファ３０に格納されたライトデータを転送する。当該ライトデータは、ＭＰＵ１０の制御の下、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１に同時に出力される。この動作によりライトデータの書き込み対象ディスクへの書き込みと、パリティ計算回路２１によるパリティデータの更新が同時に実行される。
【０１１７】
＜連続データの通常（平文）書き込み＞
連続データの書き込みの場合は（Ｓ１０９-Ｙｅｓ）、ステップＳ１２３で、変数ｎを１に設定した後、ステップＳ１２４'で、スイッチファブリック回路４３によりライトバッファ３０と、ｎ番目のディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路及びパリティ計算回路２１を接続する。次いで、ステップＳ１２５'で、ｎ番目のディスクに対して、ｎ番目のディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行し、ステップＳ１２６'で、ＭＰＵ１０の制御の下、ライトバッファ３０からｎ番目のディスクに書き込むべきストリップデータを転送する。
【０１１８】
ストリップデータは書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１に同時に出力される。この動作により、ストリップデータのｎ番目のディスクへの書き込みと、パリティデータの更新が同時に実行される。
【０１１９】
＜暗号化書き込み＞
図８は、第２実施形態における暗号化書き込みの処理の流れを説明するフローチャートである。図中のステップＳ１３４〜Ｓ１４４、ステップＳ１４２、ステップＳ１６０〜Ｓ１６４の処理は、図４で説明した処理と同一であるので説明は割愛する。
【０１２０】
ステップ１４４で、現在、リードバッファ３１に記録されているデータとパリティデータとのＸＯＲにより現状のパリティデータを計算したら、ステップＳ１４５'で、スイッチファブリック回路４３によりライトバッファ３０と暗復号化回路２２の入力を接続し、更に、暗復号化回路２２の出力と、書き込み対象ディスクに接続しているシリアルＡＴＡ  Ｉ／Ｆ回路及びパリティ計算回路２１を接続する。
【０１２１】
次に、ステップＳ１４６'で書き込み対象ディスクに対して、書き込み対象ディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路を介して、ＭＰＵ１０の制御の下、ライトコマンドを発行する。
【０１２２】
ステップ１４７'で、ＭＰＵ１０の制御の下、暗復号化回路２２に対して暗号化動作を指示（ステップ１０６で設定しておいた暗号鍵情報の指示も含む）した後、ライトバッファ３０に格納されたライトデータを暗復号化回路２２の入力に転送する。この入力により所定の暗号鍵での暗号化処理が開始され、処理後の暗号化データは直ちに暗復号化回路２２の出力から出力される。
【０１２３】
そして、ステップＳ１４８'で、当該暗号化データは、書き込み対象ディスクと接続するシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１に同時に転送される。この動作により暗号化データの書き込み対象ディスクへの書き込みと、パリティデータの更新が同時に実行される（ステップＳ１４７'とＳ１４８'とは、処理のための若干の遅延時間は存在するが略同時に並列処理される。）。
【０１２４】
＜連続データの暗号化書き込み＞
連続データの書き込みの場合は(Ｓ１３６-Ｙｅｓ）、ステップＳ１４２で変数ｎを１に設定した後、ステップＳ１５３'で、スイッチファブリック回路４３によりバッファメモリ回路２０のライトバッファ３０と暗復号化回路２２の入力を接続し、更に、暗復号化回路２２の出力と、ｎ番目のディスクに接続しているシリアルＡＴＡ  Ｉ／Ｆ回路及びパリティ計算回路２１を接続する。
【０１２５】
次に、ステップＳ１５４'でｎ番目のディスクに対して、ｎ番目のディスクが接続しているシリアルＡＴＡ  Ｉ／Ｆ回路介して、ＭＰＵ１０の制御の下、ライトコマンドを発行する。
【０１２６】
ステップＳ１５５'で、ＭＰＵ１０の制御の下、暗復号化回路２２に対して暗号化動作を指示（ステップ１０６で設定しておいた暗号鍵情報の指示も含む）した後、ライトバッファ３０に格納されたｎ番目のストライピングデータを暗復号化回路２２の入力に転送する。この入力で所定の暗号鍵での暗号化処理が開始され、処理後の暗号化データは直ちに暗復号化回路２２の出力から出力される。
【０１２７】
そして、ステップＳ１５６'で、当該暗号化データをｎ番目のディスクに接続するシリアルＡＴＡ  Ｉ／Ｆ回路とパリティ計算回路２１に同時に転送する。この動作により暗号化データのｎ番目のディスクへの書き込みと、パリティデータの更新が同時に実行される（ステップ１５５'と１５６'は、処理のための若干の遅延時間は存在するが略同時に並列処理される。）。
【０１２８】
＜復号化読み込み＞
図９は、第２実施形態における復号化読み込みの処理の流れを説明するフローチャートである。図中ステップＳ１７４〜Ｓ１７６は、図５Ｂで説明した処理と同一であるので説明は割愛する。
【０１２９】
ステップ１７７'で、スイッチファブリック回路４３によりリードバッファ３１と暗復号化回路２２の入力を接続し、更に、暗復号化回路２２の出力とＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１を接続する。
【０１３０】
ステップＳ１７８'で、ＭＰＵ１０の制御の下、暗復号化回路２２に対して復号化動作を指示（ステップ１０６で設定しておいた暗号鍵情報の指示も含む）した後、リードバッファ３１に格納されているデータを暗復号化回路２２の入力に転送する。この入力により所定の暗号鍵での復号化処理が開始され、処理後の復号化データは直ちに暗復号化回路２２の出力から出力される。
【０１３１】
そして、ステップＳ１７９'で、当該復号化データは、ＰＣＩ−Ｅｘｐｒｅｓｓ  Ｉ／Ｆ回路１１に転送される（ステップ１７８'と１７９'は、処理のための若干の遅延時間は存在するが略同時に並列処理される。）。
【０１３２】
ステップＳ１７０'〜Ｓ１７５'では、リードバッファ３２、リードバッファ３３についてステップＳ１６７'〜Ｓ１６９'と同様の処理を実行する。ＭＰＵ１０の制御の下、リードバッファ（３１、３２、３３）に格納されているリードデータが上位装置２５のメインメモリ上に転送される。
【０１３３】
以上説明してきたように本実施形態では、暗復号可回路２２の入力のためのインターフェースと出力のためのインターフェースを独立に備える暗復号化回路４２に対し、入出力を並列に実行可能としたので、暗復号化のためのデータの入出力は、実質的にはパイプライン化された処理により実質的なデータ転送速度を向上させることが可能となる。
【０１３４】
また、スイッチファブリック回路４３を１対１の接続だけでなく１対２の接続も設定可能としたので、同一のデータを二度転送する必要がなくなり、暗復号化処理も含めてより高速にディスクアレイの処理を制御することが可能となる。
【０１３５】
尚、本実施形態において、スイッチファブリック回路４３の接続の例を１対２として説明したが、本発明の趣旨は、この接続例に限定されるものではなく、ＭＰＵ１０の制御の下、ディスクアレイ装置に含まれるディスクドライブ数や、バッファメモリの規模、暗復号化回路、パリティ計算回路の数等に応じて、例えば、１対ｍ（ｍは２以上の自然数）とするような接続も可能である。
【０１３６】
上述の第１及び第２実施形態によれば、必要に応じて暗復号化回路をスイッチ回路によってデータの転送経路上に配置し、データ転送の途中で暗復号化処理を実施するようにした。これによりディスクアレイの構成等の違いによらず、常に正しい暗復号化を実施することが可能となる。
【０１３７】
また、暗復号化処理のために共通バス上でのデータ転送が不要であるので、そのためのオーバーヘッドが存在せずディスクアレイによる高速化のメリットを十分に活かすことが可能となる。
【０１３８】
さらに共通バスのデータ転送帯域を暗復号化処理によって消費することがないため、共通バスを利用して行う他の処理のパフォーマンスに影響を及ぼすことがない。
【０１３９】
しかも、第１及び第２実施形態においては、暗復号化処理の適用／非適用はスイッチ回路の接続制御により簡単に切換えることができるため、ファイル毎などで暗号鍵を変えて暗号化する、ファイル毎に暗号化／非暗号化して記憶するなど、暗復号化に関して柔軟な運用を行うことが可能であるという優れた効果を有している。
【０１４０】
[他の実施形態]
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１４１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１４３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４５】
【図１】本発明の実施形態にかかるディスクアレイ装置の構成を示すブロック図である。
【図２】上位装置からの動作要求を判定する処理の流れを説明するフローチャートである。
【図３】動作要求が通常（平文）の書き込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【図４】上位装置からの動作要求が暗号化の書き込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【図５Ａ】上位装置からの動作要求が通常（平文）の読み込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【図５Ｂ】上位装置からの動作要求が復号化の読み込みであった場合のディスクアレイ装置の処理の流れを説明するフローチャートである。
【図６】第２実施形態にかかるディスクアレイ装置の構成を示すブロック図である。
【図７】第２実施形態における通常（平文）書き込みの処理の流れを説明するフローチャートである。
【図８】第２実施形態における暗号化書き込みの処理の流れを説明するフローチャートである。
【図９】第２実施形態における復号化読み込みの処理の流れを説明するフローチャートである。
【図１】
2006023941.tif 000003
【図２】
2006023941.tif 000004
【図３】
2006023941.tif 000005
【図４】
2006023941.tif 000006
【図５Ａ】
2006023941.tif 000007
【図５Ｂ】
2006023941.tif 000008
【図６】
2006023941.tif 000009
【図７】
2006023941.tif 000010
【図８】
2006023941.tif 000011
【図９】
2006023941.tif 000012