ストレージ装置であって、第1のプロセッサと、前記第1のプロセッサに接続され、前記第1のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第1のメモリとを有する第1のコントローラと、第2のプロセッサと、前記第1のプロセッサに接続され、前記第2のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第2のメモリとを有する第2のコントローラとを有し、前記第1のメモリは前記第2のプロセッサに接続され、前記第2のメモリは前記第1のプロセッサに接続され、前記第1または前記第2のプロセッサは、第1の制御情報を前記第1及び前記第2のメモリの前記第1の領域に二重書きし、その二重書きされた第1の制御情報は、前記第1および前記第2のプロセッサの双方からリードされ、前記第1または前記第2のプロセッサは、第2の制御情報を前記第1及び前記第2のメモリの前記第2の領域に二重書きし、その二重書きされた第2の制御情報のうち一方のみが前記第1及び前記第2のプロセッサからリードされることが許容されるストレージ装置。請求項1に記載のストレージ装置であって、前記第1のプロセッサが前記第1及び前記第2のメモリに二重書きされた前記第1の制御情報を更新する場合、その更新が完了するまで、前記第2のプロセッサが前記第1及び前記第2のメモリの共有領域に対してライトすることを許容しないストレージ装置。請求項2に記載のストレージ装置であって、複数のディスクドライブと、前記複数のディスクドライブにより提供される複数の論理ユニットとを更に有し、前記複数の論理ユニットの各々には、その論理ユニットに対するI/Oを制御するコントローラとして前記第1または前記第2のコントローラの一方が割り当てられており、前記第2の制御情報が前記複数の論理ユニットのいずれかに固有の制御情報は、その論理ユニットに割り当てられたコントローラの前記第1または前記第2のメモリに書かれたもののみが、前記第1及び前記第2のプロセッサからリードされることが許容されるストレージ装置。請求項3に記載のストレージ装置であって、前記第1の制御情報の更新頻度は前記第2の制御情報の更新頻度より大きいストレージ装置。請求項3に記載のストレージ装置であって、前記第1の制御情報の更新回数は所定の閾値より大きいストレージ装置。請求項3に記載のストレージ装置であって、前記第1の制御情報は、論理ユニットのコピーペア情報または装置構成情報のいずれかを含むストレージ装置。請求項3に記載のストレージ装置であって、前記第2の制御情報は、論理ユニットのコピーペアの差分情報または統計情報のいずれかを含むストレージ装置。ストレージ装置の制御方法であって、前記ストレージ装置は、第1のプロセッサと、前記第1のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第1のメモリとを有する第1のコントローラと、第2のプロセッサと、前記第2のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第2のメモリとを有する第2のコントローラとを有し、前記第1または前記第2のプロセッサは、第1の制御情報を前記第1及び前記第2のメモリの前記第1の領域に二重書きし、前記第1および前記第2のプロセッサの双方は、二重書きされた前記第1の制御情報のいずれか一方をリードし、前記第1または前記第2のプロセッサは、第2の制御情報を前記第1及び前記第2のメモリの前記第2の領域に二重書きし、前記第1または前記第2のプロセッサは、二重書きされた前記第2の制御情報のうち予め定められた一方のみをリードする制御方法。請求項8に記載の制御方法であって、前記第1のプロセッサが前記第1及び前記第2のメモリに二重書きされた前記第1の制御情報を更新する場合、その更新が完了するまで、前記第2のプロセッサが前記第1及び前記第2のメモリの共有領域に対してライトすることを許容しない制御方法。請求項9に記載の制御方法であって、前記ストレージ装置の有する複数のディスクドライブにより提供される論理ユニットに対するI/Oを制御するコントローラとして前記第1のコントローラを割り当て、前記第1または前記第2のプロセッサは、前記第2の制御情報が前記複数の論理ユニットのいずれかに固有の制御情報の場合、前記第1のコントローラの有する前記第1のメモリに書かれた前記第2の制御情報のみをリードする制御方法。請求項10に記載の制御方法であって、前記論理ユニットに割り当てるコントローラを前記第1のコントローラから前記第2のコントローラに変更し、コントローラが変更された前記論理ユニットに属する前記第2の制御情報の内容を、前記第1及び前記第2のメモリの間で一致させた後に、前記第1または前記第2のプロセッサは、前記第2のコントローラの有する前記第2のメモリに書かれた前記第2の制御情報のみをリードする制御方法。請求項11に記載の制御方法であって、前記第1の制御情報の更新頻度は前記第2の制御情報の更新頻度より大きい制御方法。請求項11に記載の制御方法であって、前記第1の制御情報の更新回数は所定の閾値より大きい制御方法。請求項11に記載の制御方法であって、前記第1の制御情報は、論理ユニットのコピーペア情報または装置構成情報のいずれかを含む制御方法。請求項11に記載の制御方法であって、前記第2の制御情報は、論理ユニットのコピーペアの差分情報または統計情報のいずれかを含む制御方法。近年、システム全体のコスト低減のために廉価な汎用ハードウェア部品を使って、デュアルCTLのストレージ装置を構成することが求められている。そのハードウェア構成例として、二つのCTLが、それぞれ、MPU、LM、CTL間接続用のデバイスを備え、両CTLの前記デバイス間は、例えば、5Gbps以上の転送速度が望める高速なバスなどで接続し、MPUに直結しているLMを共有メモリとして使う方法が考えられる。更に、2つのCTLの内、一方を自系CTL、他方を他系CTLという呼び、それぞれCTLa、CTLbとして区別する。その場合、CTLaから見てCTLa及びCTLaの各構成要素を自系、CTLb及びCTLbの各構成要素を他系と呼ぶ。また、CTLbから見ると、CTLbが自系、CTLaが他系である。前記ストレージ装置において、MPUは、前記CTL間接続用のデバイスを介して他系メモリにアクセスすることが可能である。しかしながら、前記アクセスは、CTL間接続用のデバイスを介すため、自系メモリへ直接アクセスする場合に比べ、アクセス性能が劣る。すなわち、自系のアクセスコストアクセス時間と他系へのアクセスコストには差がある。更に、非二重化情報は、いずれかのSMのみに配置される制御情報である。アクセス性能の低下を防止するには、他系アクセス頻度を低減させる配置方式が必要である。また、二重化情報については、自他系が異なる値を参照するような一貫性の欠如が起こるのを防ぎつつ、高速にアクセス可能な参照更新方式が必要である。しかしながら、特許文献1で開示されているSM制御方式では、大容量の異なる種類のメモリが必要で、メモリコストも増加する。更に、異なる種類のメモリを制御するハードウェアも複雑で独自開発の専用部品を用いなければならない。そのため、従来技術では、コスト低減とアクセス性能向上の両立が難しかった。そこで、本発明では、従来以上のアクセス性能でコスト低減を達成するメモリ制御方法とそのシステムを提供することにある。上記課題解決のために、本発明のストレージ装置では、第1のプロセッサと、前記第1のプロセッサに接続され、前記第1のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第1のメモリとを有する第1のコントローラと、第2のプロセッサと、前記第1のプロセッサに接続され、前記第2のプロセッサのみがアクセス可能な情報を格納するローカル領域と第1および第2の領域を有する共有メモリ領域とを有する第2のメモリとを有する第2のコントローラとを有し、前記第1のメモリは前記第2のプロセッサに接続され、前記第2のメモリは前記第1のプロセッサに接続され、前記第1または前記第2のプロセッサは、第1の制御情報を前記第1及び前記第2のメモリの前記第1の領域に二重書きし、その二重書きされた第1の制御情報は、前記第1および前記第2のプロセッサの双方からリードされ、前記第1または前記第2のプロセッサは、第2の制御情報を前記第1及び前記第2のメモリの前記第2の領域に二重書きし、その二重書きされた第2の制御情報のうち一方のみが前記第1及び前記第2のプロセッサからリードされることを許容する。また、本発明のストレージ装置は、前記第1のプロセッサが前記第1及び前記第2のメモリに二重書きされた前記第1の制御情報を更新する場合、その更新が完了するまで、前記第2のプロセッサが前記第1及び前記第2のメモリの共有領域に対してライトすることを許容しない。更に、本発明のストレージ装置は、前記複数の論理ユニットの各々には、その論理ユニットに対するIOを制御するコントローラとして前記第1または前記第2のコントローラの一方が割り当てられており、前記第2の制御情報が前記複数の論理ユニットのいずれかに固有の制御情報は、その論理ユニットに割り当てられたコントローラの前記第1または前記第2のメモリに書かれたもののみが、前記第1及び前記第2のプロセッサからリードされることを許容する。加えて、本発明のストレージ装置では、第1の制御情報の更新頻度は第2の制御情報の更新頻度より大きいこと、ないし、第1の制御情報の更新回数は所定の閾値より大きい。また、本発明のストレージ装置では、第1の制御情報は論理ユニットのコピーペア情報または装置構成情報のいずれかを含み、前記第2の制御情報は、論理ユニットのコピーペアの差分情報または統計情報のいずれかを含む。本発明により、廉価な汎用部品でストレージ装置を構築でき、開発製造コストを削減できる。更に、他系MPUによる自系SMへのアクセスの頻度を減らすことによりSMアクセスの性能を向上できる。加えて、SMキャッシュの対象を他系SMのみに限定することにより、SM間で余分なデータコピーの発生を抑止でき、SMキャッシュメモリ容量の削減によるシステムのコスト低減とI/O性能向上を達成できる。以下、図面を参照しながら本発明の実施の形態を説明する。ただし、本実施形態は、本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。また、各図において共通の構成については、同一の参照番号が付されている場合がある。まず、第1の実施例として、アクセス特性またはLUオーナ権に基づいて二重化情報のマスタ面を決定する方式について説明する。次に、第2の実施例として、他系の制御情報のみをSMキャッシュにキャッシングする方式について説明する。最後に、第3の実施例として、データキャッシュ管理情報をそのオーナ権を持つCTLのSM上に配置する方式について説明する。まず、本発明の第1の実施例であるアクセス特性またはLUオーナ権に基づいて二重化情報のマスタ面を決定する方式を図1から図19で説明する。まず、図1は、本実施例における計算機システムの全体構成を示すブロック図である。図1での計算機システム1は、ホスト計算機2、管理端末3、ストレージ装置4、ネットワーク、例えば、SANStorageAreaNetwork5及びLANLocalAreaNetwork6を備えて構成される。ホスト計算機2は、SAN5を介して各ストレージ装置4と接続され、管理端末3は、LAN6を介してストレージ装置4と接続される。なお、ホスト計算機2は、例えば、大型汎用コンピュータ、サーバ、クライアント端末などである。また、管理端末3は、LAN6を介さず直接ストレージ装置4と直接接続してもよい。図1でのストレージ装置4は、二つのコントローラCTL100a、100bと、コントローラCTL100a、CTL100bで制御されるドライブ部109を備える。以下、CTL100aをCTLaとし、CTL100bをCTLbとする。また、あるCTL内の構成要素を表現する際に、そのCTLの呼び名の一部を用いる。例えば、CTLaの一構成要素としてのSMをSMaと末尾にaを付加して呼び、CTLbの一要素としてのSMをSMbと末尾にbを付加して呼ぶことがある。これにより、同種の要素を区別する際、どちらのCTLにある要素を表しているかがすぐに分かる。また、CTLa及びCTLbのどちらの構成要素かを区別しないで呼ぶ場合は、末尾のa、bを付けないで呼ぶ。例えば、MPU101a、101bを区別しない場合は、MPU101と呼び、MPUa、MPUbを区別しない場合は、MPUと呼ぶ。CTLa、CTLbは、それぞれ、MPU101a、101b、MPUメモリ102a、102b、DMADirectMemoryAccess回路103a、103b、HOST_I/F104a、104b、DRIVE_I/F105a、105b、管理I/F_06a、106b、CTL間を接続するためのデバイスであるNTBNonTransparentBridge107a、107bを備えている。CTLaとCTLbは、NTB107a、107bを介して、例えば、転送速度5Gbps以上の全二重方式の高速なバス108で接続されており、ユーザデータや制御情報を交換することが出来る。さらにCTLa、CTLbは、HOST_I/F104a、104bを介してホスト計算機2と通信し、DRIVE_I/F105a、105bを介してドライブ部109と通信し、管理I/F_106a、106bを介して管理端末2と通信する。なお、図示していないが、ドライブ部109には複数のLULogicalUnitが構成されている。図2は、本発明の実施形態におけるMPUメモリ構成図である。MPUメモリに格納するプログラム、制御情報、データの構成について、図2と図3で説明する。MPUメモリ102は、テキスト領域10、ローカルメモリ11、共有メモリ以下、SM12、キャッシュメモリ13と呼ばれる領域アドレス範囲を有し、それぞれの領域にプログラム、制御情報ないし各種データを格納する。なお、CTLaにはMPUメモリ102aを、CTLbにはMPUメモリ102bをそれぞれ設ける。ちなみに、従来技術では、共有メモリとローカルメモリ、キャシュメモリがそれぞれ独立に存在していたが、本発明ではMPUメモリとして1つのメモリに統合している。図3は、本発明の実施形態におけるソフトウェア構成図である。テキスト領域10には、図3に示すストレージ装置としての処理や機能を実行する各種プログラムを格納する。ローカルメモリ11には、それぞれのCTL上で動く前記プログラムが参照するが、他系のプログラムからは参照されないテーブル等を格納する。ローカルメモリ11には、例えば、マスタ面情報テーブル110などを格納する。SM12には、両CTL間で共有する制御情報を格納する。前記制御情報の中には二重化すべき制御情報、つまり、いずれかのCTLが故障した場合でも、消失することがないように、両CTLのSMに二重に配置する必要がある制御情報と、二重化しない非二重化情報がある。また、前記制御情報はいずれのMPUから参照しても一貫して同じ値を参照出来る必要がある。SM12に配置する制御情報は、例えば、ペア情報管理テーブル120、差分ビットテーブル121、制御情報特性テーブル122、制御情報アドレステーブル123、LUオーナ権テーブル124などがある。なお、それぞれのLUへのI/OInputOutput処理を担当するCTLをオーナCTLと呼び、そのCTLはLUオーナ権を持つと表現する。キャッシュメモリ13は、ホスト計算機2からのユーザデータないしディスクに格納したユーザデータを一時的に保持する領域である。つまり、アクセスに時間がかかるディスクに毎回アクセスすることを防ぐために、ディスクのユーザデータの一部をディスクよりも短時間にアクセス出来るキャッシュメモリに置いておく。更に、キャッシュメモリは、ホスト計算機2からストレージ装置4へのアクセスの高速化の役割もある。図3に示すMPUメモリ102のテキスト領域10には、ストレージ装置における各処理を実行するためのソフトウェアであるプログラムを格納する。具体的には、構成管理部21、基本I/O制御部22、SMアクセス制御部23、複数の拡張機能制御部24という各種プログラムをテキスト領域に格納し、MPUが適宜アクセスして実行する。構成管理部21は、管理端末3からのコマンドや他のプログラムモジュールからの指示などによって、構成管理情報を参照更新するためのプログラムである。基本I/O制御部22は、ホスト計算機2からの指示を受け、データを参照更新する処理を実行するためのプログラムである。基本I/O制御部22が実行される際、必要に応じて、プログラムSMアクセス制御部23などを呼び出し、一部の処理を実行させる。SMアクセス制御部23は、構成管理部21や基本I/O制御部22が、SMにアクセスするときに呼び出され、SMの制御情報を参照更新する処理を実行するためのプログラムである。拡張機能制御部24は、例えば、後述するローカルコピー、仮想ボリューム機能、スナップショット機能などの拡張機能を実行するプログラムで、機能ごとに独立したプログラムモジュールを構成している。ローカルコピーとは、二つのLUにおいて、一方のLUの内容を他方のLUにコピーする機能であり、ローカルコピー機能では、ペア情報管理テーブルと差分ビットテーブルという制御情報を用いる。図4は、ローカルコピーでのペア情報管理テーブルの一例を示す図である。図4のペア情報管理テーブル120は、P-VOLPrimaryVolumeとS-VOLSecondaryVolumeとのペア状態を管理するテーブルで、ローカルコピーの拡張機能制御部24が参照し、ペア番号1200に対応するP-VOL番号1201、S-VOL番号1202、ペア状態1203で構成する。なお、ペア情報管理テーブルは、コピーペア情報とも呼ばれる。ペア番号は、P-VOLとS-VOLのペアに対するユニークな番号である。ペア状態には、同期と非同期という状態があり、同期状態では、P-VOLとペアを構成するS-VOLの内容は一致するように制御されている。つまり、P-VOLが更新されると、続いてS-VOLも更新される。非同期状態では、P-VOLが更新されてもすぐにはS-VOLの内容は更新されず、ペアに対して、再同期という操作がなされたときに、S-VOLの内容は、P-VOLと一致するように更新される。例えば、ペア番号1200が0であるP-VOL1201は300であり、ペアを構成するV-VOL1202は400となり、現在のペア状態1203は同期状態である。図5は、ローカルコピーでの差分ビットテーブルの一例を示す図である。図5の差分ビットテーブル121は、ローカルコピー機能を制御する拡張機能制御部24が参照し、各ペアのブロック番号に対応する差分ビットを管理するテーブルである。差分ビットによって、ブロック単位での更新を管理しておくことが出来る。差分ビットは、各ペアがブロック毎に持ち、ペア状態が非同期の時に、P-VOLの特定のブロックが更新されると、そのブロックに対応する差分ビットが0から1へ更新される。例えば、ブロック番号1210が10000であるブロックでは、ペア0番1211とペア2番1213は0であるので差分は発生していないが、ペア1番1212は1であるのでP-VOLとS-VOLとの間には差分が発生している。このように、差分ビットを使って更新情報を管理することで、前記再同期処理が指示された際に、差分ビットが1であるブロックのみをコピーすれば良く、全ブロックをコピーする必要がない。なお、差分ビットテーブルは、コピーペア差分情報とも呼ばれる。図6は、ローカルコピーの動作を示す概念図である。そのローカルコピーの動作を説明する。c1最初に、ホスト計算機2からのアクセスにより、P-VOLのブロック10000-Pとブロック10003-Pとが更新される。c2この時、拡張機能制御部24は、ペア情報管理テーブル120を参照し、ペア1のペア状態が非同期であると分かるため、当該ブロックに対応する差分ビットを更新する。但し、この時、P-VOLの更新データはS-VOLには反映されない。c3ホスト計算機2からストレージ装置4に対し、ペア1における再同期の指示が発行される。c4発行された再同期の指示をストレージ装置4が受信すると、拡張機能制御部24は、差分ビットテーブル121を参照し、差分ビットが1であるブロック、つまり、ブロック10000-Pの内容をブロック10000-Sに、ブロック10003-Pの内容を10003-Sにコピーする。制御情報には、前記ペア情報管理テーブル120や前記差分ビットテーブル121などがあると説明した。ペア情報管理テーブル120は、I/O処理の中で参照されることはあっても更新されることはなく、ユーザからの指示によってのみ更新される。一方、差分ビットテーブル121はI/O処理の度に更新され、更にホスト計算機からの再同期要求で参照更新される。このように、ストレージ装置4で使用する制御情報には、それぞれライト処理の割合が多い、または、リード処理の割合が多いという特性がある。次に、ローカルコピー以外の機能についても以下で説明する。まず、仮想ボリューム機能を説明する。仮想ボリューム機能とは、ホストに仮想的なボリュームを見せ、ディスクプールの容量を超えた容量の仮想ボリュームを定義することを可能にする機能である。本機能では、論理アドレス-物理アドレス変換テーブルと呼ぶ制御情報を使う。仮想ボリュームのある論理アドレスに対してアクセスが発行された場合に、物理アドレスを当該論理アドレスに割り当て、ホストには物理アドレスに対するアクセスを論理アドレスに対するアクセスのように見せる。この論理アドレスと物理アドレスの対応関係を管理しているのが、論理アドレス-物理アドレス変換テーブルである。次に、スナップショット機能を説明する。スナップショット機能では、一つのLUをR-VOLRealVolumeと定義し、それに対応するV-VOLVirtualVolumeを定義し、これらをスナップショットペアであると定義する。ペアを定義する時、V-VOLはディスクの物理的な領域を持たず、R-VOLの各アドレスに対するリンク制御情報のみを持たせる。そのため、高速にアクセスを実行することが出来て、ディスク容量の消費量も低減できる。R-VOLが更新されると、DataPoolと定義された別のディスクの領域に、R-VOLの更新されたブロックをコピーし、V-VOL側で対応するブロックはDataPool上の当該ブロックに対するリンクを持つように変更される。スナップショット機能において使用されるR-VOLを指しているリンクの更新が発生すると、リンク制御情報も更新される。また、このリンク制御情報はLUに属するという特性を持っている。つまり、このリンク制御情報を、LUオーナ権を持つCTL上に格納すれば更新と参照を高速に行えるので、ストレージ装置4全体のライト性能とリード性能を向上することが可能である。図7は、SMのマッピングを概念的に表したデータ構成図である。制御情報A、制御情報B、制御情報C、制御情報Dは二重化情報であるので、二重化領域に格納する。つまり、制御情報Aで説明すると、SM12aの0x1000を開始アドレスとする領域と、SM12bの0x1000を開始アドレスとする領域には、同じ値を格納する。制御情報Mと制御情報Nは非二重化情報であるので、非二重化領域に格納する。非二重化領域では、SM12aの0xF000を開始アドレスとする領域の値と、SM12bの0xF000を開始アドレスとする領域の値を一致させる必要はない。ちなみに、非二重化情報としては後述するデータキャッシュ管理情報などである。斜線部は、マスタ面を表している。マスタ面とは、MPUa、MPUbの両方が参照リードの対象とするSMの領域である。二重化情報は、SMaとSMbで二重化されており、制御情報の内容の一貫性を保証するためには、各MPUが参照する内容を両SMで一致させる必要がある。これは、MPUが参照するマスタ面を決めておくことで、参照する制御情報の内容の一貫性を保証することができる。このように、ライト比率が高い更新頻度が大きい制御情報である制御情報Bと制御情報Cは、図7のように、いずれかのSMをマスタ面に設定し、そのマスタ面の内容をまず更新し参照することを可能とする。これにより、SMの内容を一致させる処理が完了する前に他のMPUがリードできるので、アクセス性能を向上出来る。なお、ライト比率とは、ライト回数/ライト回数リード回数で計算される値である。一方、リード比率は、リード回数/ライト回数リード回数で計算され、1からライト比率を引くことでも求められる。また、内容を一致させる処理とは、例えば、排他処理の実行し、他のMPUからの更新を禁止する処理である。また、制御情報がLUに属する制御情報である場合は、LUオーナ権を有するオーナCTLのみが更新できる。そのような制御情報は、オーナCTL上のSMにマスタ面を設定することで、オーナCTL上のMPUは参照時に高速な自系SMを参照出来て、リード性能を向上出来る。一方、ライト比率が低い更新頻度が小さい制御情報の場合は、更新時に、例えば、前記排他処理を実行し、内容の一貫性を保証しつつ更新を完了させて、制御情報Aのように、いずれのSMも参照することを可能にする。このように設定することで、いずれのMPUも自系SMから必要な制御情報を高速に参照できるので、リード性能を向上させることが出来る。以下の説明では、制御情報Aと制御情報Dのような制御情報を両マスタ情報と呼び、制御情報Bと制御情報Cのような制御情報を片マスタ情報と呼ぶ。ライト比率が低い制御情報は、両マスタ情報に設定することで参照時の性能向上を期待できる。そのため、例えば、ライト比率が低い制御情報である装置構成情報や前記ペア情報管理テーブル120などの制御情報は、両マスタ情報に設定することが望ましい。この装置構成情報とは、MPUメモリの容量、どのディスクを使ってRAIDグループを構成しているか、各LUのサイズなどの制御情報である。そのため、これら制御情報は、装置構成を変更する時にのみ更新されるので、ライト比率は極めて低くゼロに近い。ライト比率が高くてLUに属する制御情報は、片マスタ情報とし、かつマスタ面をオーナCTL上のSMに設定する。これにより、制御情報の更新時に排他制御などの処理をせずに制御情報を更新でき、更に、参照時は高速な自系SMを参照出来るようになるため、アクセス性能を向上出来る。この制御情報としては、前記仮想ボリューム機能における論理アドレス-物理アドレス変換テーブルや前記差分ビットテーブル121などが該当する。前記テーブルは、I/O処理中に頻繁に更新されるライト比率が高い制御情報であるため、片マスタ情報に設定することが望ましい。また、ライト比率は高いがLUに属さない片マスタ情報も、更新時に排他制御などの処理をせずに更新することで、ライト性能を向上できる。例えば、I/Oの頻度などに関する統計情報は、ライト比率は高いがLUに属さない片マスタ情報に該当し、I/O処理の度に更新される。そこで、これらの制御情報は片マスタ情報として設定し、マスタ面は、例えば、ラウンドロビンなどの方式を使って、いずれかのSMにのみマスタ面が偏ってしまわないように設定する。図8は、制御情報アドレステーブルの一例を示す図である。制御情報特性テーブル122は各制御情報の種類別に特性を管理するテーブルで、制御情報名フィールド1220に対応するライト比率フィールド1221、LUに属する制御情報フィールド1222、属するLU番号フィールド1223で構成する。なお、ライト比率フィールド1221には制御情報の更新頻度であるライト比率を、LUに属する制御情報フィールド1222にはLUに属するか否かの情報を、属するLU番号フィールド1223には、LUに属する場合の属するLU番号を格納する。この制御情報特性テーブル122をMPUが参照することで、各制御情報の特性を判定することが出来る。以上説明したように、各制御情報のライト比率加えて、ライト比率から必然的に算出されるリード比率リード比率=1-ライト比率に基づいて、制御情報を両マスタ情報として設定するか片マスタ情報として設定するかを決定できる。また、ライト比率は、ストレージ装置4のシステム構成時に予め登録しておくことも可能であるし、ユーザによって登録することも可能である。さらに、ライト比率は、ストレージ装置4がモニタリングした情報に基づいて、動的に更新することも可能である。次に、本発明での両マスタ情報/片マスタ情報の決定方法の一例として、ライト比率とリード比率というアクセス特性を用いた方法を説明する。その決定方法は、各制御情報へのアクセス全体のオーバヘッドを最小とするように、両マスタ情報または片マスタ情報を選択する。まず、リード比率をCr、ライト比率をCwとする。このリード比率Cr及びライト比率Cwは、ストレージ装置4の構成時に決めることも出来るし、モニタリングによって動的に決めることも出来る。次に、両マスタ情報設定の時のリードのオーバヘッドをR_double、ライトのオーバヘッドをW_doubleと表す。また、片マスタ情報設定の時のリードのオーバヘッドをR_single、ライトのオーバヘッドをW_singleと表す。W_doubleは、W_singleに排他制御分排他付ライト処理分のオーバヘッドを加算した値である。R_doubleは自系SMリードのオーバヘッドを表し、R_singleもLUオーナ権に基づく制御情報の場合は、自系SMリードのオーバヘッドを表す。LUオーナ権に基づかない制御情報の場合は、自系SMリードと他系SMリードがそれぞれ5割の確率で発生すると仮定して、R_singleは自系SMリードと他系SMリードの平均値をとる。CTLは、これらの数値を元に、各制御情報における両マスタ情報設定時の全体オーバヘッドOH_doubleと、片マスタ情報設定時の全体オーバヘッドOH_singleを、以下の式1及び式2でそれぞれ求める。求めた2つの値の内、CTLは、小さい方に該当する両マスタ情報または片マスタ情報を選択する。CTLは、選択した結果を、マスタ面情報テーブル110で各制御情報が格納されるアドレスフィールド1100に対応するマスタ種別フィールド1101に格納する。OH_double=R_doubleCrW_doubleCw式1OH_single=R_singleCrW_singleCw式2すなわち、CTLは、OH_doubleよりOH_singleが小さければマスタ種別フィールド1101に片マスタ情報と、逆に、OH_doubleよりOH_singleが大きければマスタ種別フィールド1101に両マスタ情報と設定する。なお、本実施例では、ライト比率を両マスタ情報/片マスタ情報の決定の判断基準として用いるが、これ以外にも、例えば、システム内の制御情報アクセス比率、絶対値などを用いても構わない。このシステム内の制御情報アクセス比率での判断方法とは、システム内の全制御情報への更新に対して、当該制御情報への更新の比率に基づいて判断する方法である。この判断方法は、同時に使用可能な資源数や更新回数に制限があり、制御情報を排他付きで更新する時などに有効な方法である。絶対値を使用する判断方法では、更新回数が閾値よりも大きいか小さいかで、両マスタ情報または片マスタ情報を選択する。この判断方法は、判断するプログラムを単純に構成でき、ライト回数のみを取得すれば良いため、ライト回数が動的に変化する場合でもモニタリングのオーバヘッドが少なくて済むというメリットがある。また、前記以外の方法や、前記の判断方法を複数組み合わせても良い。なお、図8の制御情報特性テーブル122のLUに属する制御情報フィールド1222は、各制御情報がLUに属する制御情報であるかどうかを表す。制御情報フィールド1222がYESである場合には、その制御情報の処理を担当するオーナCTLが定められており、属するLU情報が属するLU番号フィールド1223に格納される。例えば、差分ビットテーブル121の属するLU番号は、202である。一方、制御情報フィールド1222がNOである場合には、属するLU番号は存在属するLU番号フィールド1223がNULLせず、オーナCTLも定められていない。図9は、制御情報特性テーブルの一例を示す図である。制御情報アドレステーブル123は、図7に示す各制御情報を格納するMPUメモリ102でのアドレス領域を管理するテーブルで、アドレスフィールド1230と制御情報名フィールド1231で構成する。なお、MPUは、制御情報アドレステーブル123を参照することで、SMの各アドレスにどのような種類の制御情報が格納されているか、判定することが出来る。例えば、アドレスフィールド1230のアドレス範囲が0x1000-0x10FF16進数表記には制御情報名1231がペア情報管理テーブルである制御情報が格納されている。また、同じく、0x1100-0x11FF16進数表記には、制御情報名1231が差分ビットテーブルである制御情報が格納されている。ちなみに、図9のペア情報管理テーブルや差分ビットテーブルが、図8の制御情報名1220に格納される制御情報名と同一であることは言うまでもない。なお、アドレスと制御情報名はn対1の関係にあり、ある種類の制御情報が複数のアドレス領域に格納されている場合もある。例えば、ペア情報管理テーブルがそれに該当し、アドレス範囲0x1400-0x14FFにも格納されている。また、図7での制御情報A、制御情報B、制御情報C、制御情報Dは、それぞれ、図9のペア情報管理テーブル、差分ビットテーブル、統計情報、装置構成情報に相当する。図10は、LULogicalUnitオーナ権テーブルの一例を示す図である。LUオーナ権テーブル124は、LUを制御できるオーナCTLを管理するもので、LU番号フィールド1240とLUオーナ権フィールド1241で構成する。MPUは、LUオーナ権テーブル124を参照することで、各LUのオーナCTLを判定することが出来る。なお、LU番号とは、それぞれのLUを識別するために割り振られるユニークな番号のことである。LUオーナ権フィールド1241には、CTLaかCTLbのいずれかを格納する。例えば、LU番号フィールド1240が201であるLUのオーナCTLは、LUオーナ権フィールド1241からCTLaである。ちなみに、LU番号が201の制御情報は、制御情報特性テーブル122からペア情報管理テーブルであると判断できる。図11は、マスタ面情報テーブルの一例を示す図である。マスタ面情報テーブル110は、図7での各制御情報を格納するMPUメモリ102上のアドレスとマスタ種別とマスタ面との対応関係を管理するテーブルである。マスタ面情報テーブル110は、アドレスフィールド1100とアドレスフィールド1100に対応するマスタ種別フィールド1101とマスタ面フィールド1102とで構成する。マスタ面情報テーブル110は、MPUがSMをアクセスする時に参照し、その参照結果で、MPUが各アドレスに格納される制御情報に対して、どのようにアクセスすべきかを判定する。マスタ種別フィールド1101には、片マスタ情報か、両マスタ情報のいずれかを格納する。マスタ面フィールド1102には、片マスタ情報のマスタ面が、SMaか、SMbのいずれかを格納する。ただし、両マスタ情報のマスタ面の場合、マスタ面フィールド1102はNULLとする。ちなみに、マスタ面フィールド1102は、装置起動時は初期値として、全ての制御情報を両マスタ情報と設定している。これは、起動時の初期化処理の過程で、MPUがマスタ面情報テーブル110を参照するためである。図12は、マスタ面設定の処理S1000を示すフローチャートである。MPUからSMへのアクセス性能及びストレージ装置全体のアクセス性能を向上させるためのマスタ面の設定方法を、図12を用いて説明する。マスタ面設定の処理S1000はストレージ装置の起動の初期設定処理であり、MPUがプログラムである構成管理部21を実行して、それぞれの制御情報のマスタ面設定を行う。すなわち、制御情報アドレステーブル123のアドレスフィールド1230毎に、MPUがマスタ面設定の処理S1000を実行し、その処理の結果を図11のマスタ面情報テーブル110に格納する。マスタ面設定の処理S1000の中で、MPUは、制御情報特性テーブル122、制御情報アドレステーブル123、LUオーナ権テーブル124を参照する。なお、図及び以下の処理の説明では明記しないが、これらのテーブルはSM上にある制御情報である。すなわち、MPUがプログラムであるSMアクセス制御部23を実行し、これらテーブルへデータの設定とデータの参照を行う。MPUがマスタ面設定の処理S1000を実行する時には、SMのアドレス、つまり、図9に示す制御情報アドレステーブル123のアドレスフィールド1230の各行の値アドレス範囲を取得する。処理を開始すると、MPUは、最初、図8の制御情報特性テーブル122のライト比率フィールド1221を参照し、前述の式1と式2の両マスタ情報設定時の全体オーバヘッドOH_doubleと、片マスタ情報設定時の全体オーバヘッドOH_singleを計算するステップS1001。次に、MPUは、算出した両マスタ情報設定時の全体オーバヘッドOH_doubleと、片マスタ情報設定時の全体オーバヘッドOH_singleを比較し、片マスタ情報設定時の全体オーバヘッドOH_singleの方が小さいか否かを判定するステップS1002。判定の結果、片マスタ情報設定時の全体オーバヘッドOH_singleが大きい場合ライト性能よりリード性能を優先ステップS1002:Noは、当該制御情報を両マスタ情報とするため、MPUが、制御情報のアドレスに対応するマスタ種別フィールド1101に両マスタ情報と設定するとともに、マスタ面フィールド1102はNULLのままとし、処理を終了するステップS1004。前記両マスタ情報と設定する制御情報として、例えば、図8の制御情報特性テーブル122の制御情報名1220がペア情報管理テーブル図2で共有メモリ12の領域に格納されるペア情報管理テーブル120や装置構成情報などが該当する。そこで、MPUは、ペア情報管理テーブル120ないし装置構成情報が格納されるアドレスフィールド1100の0x1000-0x10FFないし0x1300-0x13FFに対応するマスタ種別フィールド1101を両マスタ情報と、マスタ面フィールド1101をNULLとする。なお、両マスタ情報は、更新時に、二つのSMの一貫性を保つ排他制御を行う必要があり、その処理のオーバヘッドが大きい。しかしながら、SMaとSMbのどちらからも同一の内容が格納され、MPUそれぞれが、それぞれの自系のSMを参照することが出来るため、高速なリードアクセスが可能で、ストレージ装置4全体のアクセス性能を向上できる。一方、片マスタ情報設定時の全体オーバヘッドOH_singleが小さい場合ステップS1002:Yesは、MPUが、制御情報のアドレスに対応するマスタ種別1101に片マスタ情報と設定するステップS1003。前記片マスタ情報と設定する制御情報として、例えば、図8の制御情報特性テーブル122の制御情報名1220が差分ビットテーブル図2で共有メモリ12に格納される差分ビットテーブル121や統計情報などが該当する。すなわち、MPUは、差分ビットテーブルないし統計情報が格納されるアドレスフィールド1100の0x1100-0x11FFないし0x1200-0x12FFに対応するマスタ種別フィールド1101を片マスタ情報とする。片マスタ情報は、いずれかのSMをマスタ面とするもので、参照時には、他系のSMを読む可能性もあるため、リード性能が両マスタ情報よりも低下する場合がある。しかし、更新時に、二つのSMでの一貫性を保たなくても良い後述する排他付ライトが不必要ため、ライト性能は両マスタ情報よりも高い。次に、MPUが制御情報特性テーブル122のLUに属する制御情報フィールド1222を参照しステップS1005、LUに属する制御情報かどうかを判定するステップS1006。判定の結果、LUに属する制御情報でない制御情報フィールド1222にNOが格納場合S1006:Noは、その制御情報を処理するCTLは限定されないため、いずれのCTLないしMPUからでもアクセス可能である。この場合は、マスタ面の数に偏りが生じるのを防ぐために、例えば、MPUは、ラウンドロビンなどのアルゴリズムを用いて、SMaかSMbのいずれかをマスタ面に選び、選んだマスタ面をマスタ面フィールド1102に設定しステップS1008、処理を終了する。この処理対象の制御情報は、制御情報アドレステーブル123のアドレスフィールド1230が0x1200-0x12FFである領域に格納されている統計情報である。そこで、マスタ面情報テーブル110のアドレスフィールド1100が同じ0x1200-0x12FFであるマスタ種別1101に片マスタ情報と設定し、マスタ面フィールド1102にSMbと設定する。制御情報特性テーブル122のLUに属する制御情報フィールド1222に格納された制御情報が、LUに属する制御情報である場合S1006:Yesは、当該制御情報を処理するCTL、つまり、オーナ権を持つCTLは、CTLaないしCTLbのいずれかである。そこで、LUオーナ権があるCTLを判定するために、制御情報特性テーブル122の属するLU番号フィールド1223を参照するステップS1007。ステップS1007で参照した値LU番号を用いて、LUオーナ権テーブル124のLUオーナ権フィールド1241を参照しステップS1009、どちらのCTLにLUオーナ権があるかを判定するステップS1010。例えば、差分ビットテーブルという制御情報名は、制御情報アドレステーブル123のアドレスフィールド1230の値より0x1100-0x11FFに配置されている。また、属するLU番号は制御情報特性テーブル122の属するLU番号フィールド1223から202となる。そこで、MPUは、そのLU番号フィールド1223の値202に該当するLUオーナ権テーブル124のLU番号フィールドの値を検索し、LUオーナ権を有するCTLがCTLbであると判断する。次に、ステップS1010での判定結果により、MPUは、CTLaがオーナ権を持つ場合ステップS1010:CTLaはSMaをマスタ面とする。更に、MPUは、マスタ面情報テーブル110のマスタ面フィールド1102にSMaと設定してステップS1011、処理を終了する。この場合、当該制御情報に対してのオーナ権を持つCTLaからのSMリードは、他系のCTLbからのSMリードと比べて、高速なアクセスが可能である。一方、ステップS1010での判定結果で、CTLbがオーナ権を持つ場合ステップS1010:CTLb、SMbをマスタ面とし、MPUはマスタ面情報テーブル110のマスタ面フィールド1102にSMbと設定してステップS1011、処理を終了する。この場合は、CTLaがオーナ権を持つ場合と逆に、当該制御情報に対してのSMリードは、オーナ権を持つCTLbの方が高速に行うことができる。ちなみに、前述の差分ビットテーブルに対するオーナ権CTLはCTLbなので、MPUはマスタ面情報テーブル110のマスタ面フィールド1102にSMbと設定する。MPUは、S1002の判定によって決めたマスタ種別をマスタ種別フィールド1101に格納し、片マスタ情報に対してS1008もしくは、S1010の判定の結果によって決めたマスタ面SMaorSMbをマスタ面フィールド1102に格納する。これにより、制御情報毎にマスタ種別とマスタ面の情報を細かく設定でき、更に必要に応じて情報を更新できるので、MPUによるSM100へのアクセス及びホスト計算機2からのストレージ装置全体4へのアクセス性能の向上ができる。図13は、SMリード処理S1100を示すフローチャートである。SMへのリードアクセスを図13で説明する。SMリード処理S1100は、MPUがプログラムであるSMアクセス制御部23を実行する際に、実行される処理ルーチンであり、リードする制御情報を識別するため、SMのアドレスが引数として与えられる。最初に、MPUは、引数として渡されたSMのアドレスを用い、マスタ面情報テーブル110のマスタ種別フィールド1101を参照するステップS1101。次に、参照したマスタ種別フィールド1101の内容が、両マスタ情報か片マスタ情報かを判定するステップS1102。判定の結果、両マスタ情報の場合ステップS1102:両マスタは、いずれのSMSMa、SMbどちらでもよいも参照することが可能であるため、高速にアクセスできる自系のSMをリードしてステップS1104、リード処理を終了する。判定結果が片マスタ情報の場合ステップS1102:片マスタは、マスタ面情報テーブル110のマスタ面フィールド1102を参照しステップS1103、どちらのSMがマスタ面かを判定するステップS1105。片マスタ情報は、アクセスするマスタ面本処理ではリードするマスタ面を予め決めておくことで、全MPUの間で同じ値を参照でき、内容の一貫性も保証出来る。SMaがマスタ面である場合ステップS1105:SMaは、MPUはSMaをリードしてステップS1106、リード処理を終了する。SMbがマスタ面である場合ステップS1105:SMbは、MPUはSMbをリードしてステップS1107、リード処理を終了する。例えば、MPUaによる差分ビットテーブル121へのリードアクセスの場合、引数として渡されるSMのアドレスの範囲は0x1100-0x11FFである。そのため、そのアドレスに対応するマスタ種別フィールド1101の値である片マスタ情報とマスタ面フィールド1102の値であるSMaの情報により、MPUaは自系のSMaを高速にリードできる。また、MPUaによるペア情報管理テーブル120へのリードアクセスでも、自系のSMaをリードできるのでシステムとして高速なアクセスが可能となる。図14は、SMライト処理S1200を示すフローチャートである。SMへのライトアクセスを図14で説明する。SMライト処理S1200は、MPUがプログラムであるSMアクセス制御部23を実行する過程で、実行される処理ルーチンであり、ライトする制御情報を識別するため、SMのアドレスが引数として与えられる。最初に、MPUは、引数として渡されたSMのアドレスを用い、マスタ面情報テーブル110のマスタ種別フィールド1101を参照するステップS1201。MPUは、参照した内容が両マスタ情報か片マスタ情報かを判定するステップS1202。判定結果が両マスタ情報の場合ステップS1202:両マスタは、MPUは、図15の排他付きライト処理S1300を実行する。この排他付きライト処理とは、SMa及びSMbの値の一貫性を保つ処理である排他制御をしながら両SMを更新する処理である。判定結果が片マスタ情報の場合ステップS1202:片マスタは、MPUは、マスタ面情報テーブル110のマスタ面フィールド1102を参照してステップS1203、どちらのSMがマスタ面であるかを判定するステップS1204。判定の結果、マスタ面がSMaの場合ステップS1204:SMaは、マスタ面のSMaを優先して更新するために、まず、SMaにライトする。続いて、SMbにライトしステップS1205、ライト処理を終了する。判定の結果、マスタ面がSMbの場合ステップS1204:SMbも、同様の理由で、マスタ面のSMbを優先して更新するために、まず、SMbにライトする。続いて、SMaにライトしステップS1206、ライト処理を終了する。図15は、排他付きライト処理S1300を示すフローチャートである。前述の排他付きライト処理図14のステップS1300を図15で説明する。排他付きライト処理S1300は、SMライト処理S1200や後で説明する連続SMライト処理S1400の処理の過程で実行され、処理開始時に、ライトするSMのアドレスが引数として与えられる。排他付きライト処理は、前記SMライト処理で説明したように、SMaとSMbの内容の一貫性を保つために行う処理である。まず、本処理の必要性について説明する。例えば、CTLa上のMPUaとCTLb上のMPUbが、ほぼ同時に、SMaとSMbの同じアドレスに対して異なったデータでライトを発行すると、書き込みアドレスに対するSMaの内容とSMbの内容が異なり不一致が発生する。つまり、MPUaからのライトは、最初に自系であるSMaの更新を完了した後、SMbを更新する。反対に、MPUbからのライトは、最初に自系であるSMbの更新を完了した後、SMaを更新する。そのため、SMaはMPUbの書き込み内容とSMbはMPUaの書込み内容となり、SMaとSMbが異なる内容に更新されてしまう。そこで、本排他付きライト処理により、SM間でのデータ不整合を防止し一貫性整合性を維持する。次に、処理動作を図15で説明する。まず、排他付きライト処理S1300を開始すると、最初に、ロックを取得する処理を行うステップS1301。このロックを取得する処理は、1つのMPUのみがSMに対してデータの更新を実行するための処理であり、ロック取得中は特定のMPU以外はSMに対して更新はできないよう制御される。なお、このロック取得は、例えば、セマフォレジスタなどの排他機能をももつ機構を使って行う。このセマフォレジスタに、例えば、コンペアアンドスワップなどのアトミック命令を発行し、セマフォレジスタの値が0であった場合は、それを1に書き換えてロック成功とし、セマフォレジスタの値が1であった場合は、別のMPUが既にロックを取得していると判断して、ロック失敗とするような方式である。このように、あるMPUがロックを取得している間は、別のMPUがSMに対する更新を出来ないように制御することが出来る。まず、処理S1300では、ロックの取得が成功したか判定しステップS1302、失敗した場合ステップS1301:Noは、ステップS1301に戻り、ロック取得処理を再び行う。次に、ロックの取得に成功した場合ステップS1302:Yesは、MPUは、SMa及びSMbに対して同一データをライトするステップS1303の二重書き。最後に、ロックを解放しステップS1304、排他付きライト処理を終了する。なお、ロック解放処理は、例えば、ロック取得中は1であるセマフォレジスタの値を、0に書き換えるという処理である。図16は、連続して2つのSMライトが発行されたときの処理S1400のフローチャートである。SMへ連続したライトアクセスが発生した場合の処理方法について、図16を用いて説明する。複数のライトが連続する場合は、データの整合性を維持するためライトの順序を保証する必要がある。そのためには、先のライト処理が完了したことを確認してから、次のライトを開始する必要がある。そこで、SMアクセス制御部23は、S1400の処理を実行しライトする順番を保証しデータの整合性を保つ。ただし、この処理は、連続してSMライトを行う場合に、アプリケーション側で、処理S1400のような手順で複数のSMライトを実施させることも可能で、必ずしもSMアクセス制御部23が処理S1400を実行しなくとも良い。また、図16では、例として連続して2つのSMライトを行う時の処理を示すが、3つ以上連続したライトでも構わない。まず、処理S1400が開始されると、まず、SMアクセス制御部23は、1番目のSMライト要求を受領するステップS1401。1番目のSMライト要求受領後に、SMアクセス制御部23はSMライト処理S1200を呼び出す。続いて、ライト確定処理S1500を呼び出す。ライト確定処理とは、前のライトが正常に終了したことを確認する処理のことであり、ライト確定処理の完了は、前のライト処理の完了を意味する。つまり、ライト確定処理S1500から完了応答が返って来たときに、1番目のライト処理が完了する。続いて、SMアクセス制御部23は、2番目のSMライト要求を受領するステップS1402。2番目のSMライト要求受領後に、SMアクセス制御部23は、再び、SMライト処理S1200を呼び出す。その後にSMライトが無い場合は、ライト確定をする必要はないので、そのまま、SMへの連続ライト処理を終了する。続けて、3番目以降のSMライト要求があった場合は、2番目のSMライトと同様、ライト確定処理1500/ライト要求受領/SMライト処理1200を順次実行する。図17は、図16でのライト確定処理S1500を示すフローチャートである。ライト確定処理を図17で説明する。ライト確定処理は、SMアクセス制御部23に呼び出される処理ルーチンであり、処理の開始時にライトするSMのアドレスと、コマンド処理を担当するCTL番号CTLaorCTLb及びライトするデータ内容が引数として与えられる。ライト確定処理とは、前記複数ライト処理S1400などの処理で使用され、ライトが正常に完了したかどうかを確認する処理である。最初に、確定すべきライトが、自系SMへのライトか、他系SMへのライトかを判定するステップ1501。判定の結果、自系SMへのライトである場合ステップS1501:自系は、ノンポステッドライトであるため、そのまま、ライト確定処理を終了する。ノンポステッドライトとは、ライトが完了した時に、完了応答が返ってくるライトのことである。例えば、ストア命令などを使って自系SMにライトをすると、ストア命令はライトが完了するまでは、完了応答を返さない。そのため、ストア命令を実行し完了応答があれば、ライトが正常に終了したことが保証される。反対に、判定の結果、他系SMへのライトである場合ステップS1502:他系は、ポステッドライトである。そこで、ライトしたアドレスに対してリードを行い、ライトした値とリードした値を比較し一致しているかを確認して、正常にライトが完了してことを確認ステップ1502し、ライト確定処理を終了する。ちなみに、ポステッドライトとは、ライトが完全に完了しない内に、完了応答を返すライト処理のことである。そのため、例えば、ライトアドレスへのリードとデータ比較によって正しく値が更新されているかを判断し、ライトの完了を確認する必要がある。もし、ステップS1502の確認の結果、正常にライトが完了していない場合は、NULLなどを戻り値として返し、呼び出し元に再度SMライトを実行させる。図18は、SMへのアトミックアクセスの例として、アトミック加算を示すフローチャートである。前述図15のアトミックアクセス処理を図18で詳細に説明する。アトミック加算の目的は、複数のMPUによる加算のすれ違いを防止することにある。例えば、1という値を持つレジスタなどに1を加算したい場合、MPUは、1という値をリードし、その値に1を加算した値である2をレジスタにライトする。しかし、これを複数のMPUが同時に行う場合は、例えば、MPUaが1をリードしたと同時に、MPUbも1をリードする。そして、それぞれのMPUが1を加算して、お互いに2を書いた場合、最終的にレジスタには2という値に更新されていて、ある事象加算処理が2回起きたか、1回起きたかを判別出来ない。このようなMPU同士のすれ違いを防止するための処理の総称がアトミックアクセスである。アトミックアクセスでは、いずれかのMPUが、アトミックアクセスを実行している間は、他のMPUは、アトミックアクセスを行えないように制御しながら行う。アトミックアクセスには、アトミック加算以外にも、アトミック比較などが存在する。アトミック比較は、複数のMPUの間で、ある処理を実行するための権利を取得する時に行われる。これら処理の実現方法は、例えば、セマフォレジスタのようなレジスタを使う。具体的には、MPUがセマフォレジスタの値をリードし、その時の値が0である場合は、MPUがセマフォレジスタの値を1に書き換える。逆に、セマフォレジスタの値が1である場合は、MPUは、何もしないというような特徴を持つレジスタである。SMへのアトミック処理S1600は、SMアクセス制御部23によって呼び出され処理が開始する。SMへのアトミック処理の開始時に、アドレスが引数として与えられる。最初に、MPUが、ロックを取得する処理を行いステップS1601、そのロック取得が成功したか否かを判定するステップS1602。ロックの取得に失敗した場合ステップS1602:Noは、ロック取得処理を再実行するため、ステップS1601を繰り返し行う。ロック取得の方式は、例えば、セマフォレジスタなどを使って行う。なお、ロック取得に使用するセマフォレジスタなどは、排他付きライト処理S1300で使用するセマフォレジスタと共通同一のものを使う。つまり、単一のセマフォレジスタを使用することで、排他付きライト処理S1300とアトミック処理S1600という異なった処理が、同じアドレスを持つSM上の領域に対して、同時に行われないようにする。MPUがロック取得に成功したらステップS1602:Yes、マスタ面情報テーブル110のマスタ種別フィールド1101を参照しステップS1603、両マスタ情報か、片マスタ情報かを判定するステップS1604。判定の結果、マスタ種別フィールド1101の内容が両マスタ情報である場合ステップS1604:両マスタは、MPUが自他系のいずれのSMもリードすることが可能であるため、MPUは、高速にアクセス可能な自系のSMをリードするステップS1606。続いて、MPUはリードした値に1を加算しステップS1607、加算した値をステップS1606で自系SMに対しリードしたアドレスにライトし、他系SMの同じアドレスにもライトするステップS1608。最後に、ステップS1601で取得したロックを解放しステップS1616、SMアトミック処理S1600を終了する。判定の結果、マスタ種別フィールド1101の内容が片マスタ情報である場合ステップS1604:片マスタは、MPUがマスタ面情報テーブル110のマスタ面フィールド1102を参照しステップS1605、マスタ面を判定するステップS1609。SMaがマスタ面である場合ステップS1609:SMa、MPUは、SMaをリードしステップS1610、リードした値に1を加算しステップS1611、加算した値をステップS1610でリードしたSMaのアドレスに対してライトし、続いてSMbの同じアドレスにもライトするステップS1612。最後に、MPUは、ステップS1601で取得したロックを解放しステップS1616、SMアトミック処理S1600を終了する。SMbがマスタ面である場合ステップS1609:SMb、MPUは、SMbをリードしステップS1613、リードした値に1を加算しステップS1614、加算した値をステップS1613でリードしたSMbのアドレスに対してライトし、続いてSMaの同じアドレスにもライトするステップS1615。最後に、MPUは、ステップS1601で取得したロックを解放しステップS1616、SMアトミック処理S1600を終了する。図19は、LUオーナ権切り替えの処理を示すフローチャートである。LUオーナ権切り替え処理について図19で説明する。LUオーナ権切り替え処理は構成管理部21に呼び出され、オーナ権を切り替えるLUのLU番号を引数として与えられる。構成管理部21は、各LUに対する各CTLでのI/Oアクセスをモニタリングし、モニタリング結果に負荷が平坦化するよう負荷の偏りの防止するよう、CTLのLUオーナ権を動的に切り替える。もしくは、ユーザの指示によって、CTLのLUオーナ権を構成管理部21が切り替えても良い。LUオーナ権が切り替わると、そのLUに関連する制御情報のオーナ権も切り替わり、それに応じてマスタ面も切り替える必要があるため、本LUオーナ権切り替え処理を実施する。LUオーナ権切り替え処理が開始されると、まず、MPUは、LUオーナ権テーブル124のLUオーナ権フィールド1241を参照しステップS1701、当該LUの現在のオーナ権がCTLaにあるかCTLbにあるか判定するステップS1702。次に、現在のLUオーナ権がCTLaであればステップS1702:CTLa、LUオーナ権をCTLbに切り替えステップS1703、CTLbであればステップS1702:CTLb、LUオーナ権をCTLaに切り替えるステップS1704。次に、オーナ権が切り替わったLUに関連する制御情報を特定するために、MPUは、制御情報特性テーブル122を参照し、属するLU番号フィールド1223に対応する制御情報名フィールド1220の中から該当する制御情報を検索するステップS1705。例えば、LUオーナ権が切り替わったLU番号が201でLUオーナ権テーブル124のLUオーナ権フィールド1241の値がCTLaからCTLbに切り替わった場合、MPUが、制御情報特性テーブル122の属するLU番号フィールド1223で201である制御情報名を検索する。この場合は、ペア情報管理テーブルが該当する。また、LUオーナ権が切り替わったLU番号が202でLUオーナ権テーブル124のLUオーナ権フィールド1241の値がCTLbからCTLaに切り替わった場合、MPUが、制御情報特性テーブル122の属するLU番号フィールド1223が202である制御情報名を検索する。この場合は、差分ビットテーブルが該当する。次に、ループ処理であるステップS1706を、検索された制御情報に対しマスタ面とスレーブ面の内容の一致処理S1707とマスタ面設定処理S1000図12を実行する。なお、処理ステップS1706のループ処理の終了条件は、ステップS1705で検索された全ての制御情報に対して、マスタ面とスレーブ面の内容の一致処理S1707とマスタ面設定処理S1000を行うことである。つまり、LUオーナ権が変更されたLUに関連する全ての制御情報のマスタ面を変更するために、マスタ面設定処理S1000を繰り返し行う。ただし、制御情報の中には、マスタ面の内容とスレーブ面マスタ面でない方のSMの内容が一致していない場合がある。例えば、SMaの内容が主に更新される前記の片マスタ情報であるペア情報管理テーブルが該当する。そこで、マスタ面設定処理S1000を実行する前に、マスタ面とスレーブ面の内容を一致させておくステップS1707。具体的には、マスタ面の内容をスレーブ面にコピーしてから、マスタ面設定処理S1000を実行する。全制御情報に対してのマスタ面設定処理が完了したら、LUオーナ権切り替え処理を終了する。以上の説明したシステム構成、メモリ構成と各種テーブル及び各種処理方法により、従来、異なる複数の種類のメモリを使用して構成していたシステムを、本発明では1つのメモリでMPUメモリに統合できる。また、アクセスするマスタ面の制御とLUオーナ権制御で、自系及び他系のMPUが各系のMPUメモリに対し、アクセス効率を向上できる。これにより、従来と互換性のあるソフトウェア環境及び装置制御環境を保ちつつ、異なる種類のメモリを共通化でき、さらに廉価な部品を少ない点数で従来と同等のハードウェア構成でストレージ装置を構築できる。さらに、メモリへのアクセスコストであるアクセス時間を短縮できるので、ホスト計算機からストレージ装置へのアクセス性能及びストレージ装置内の処理性能などを向上させることができる。図20は、SMキャッシュのメモリ構成図である。図21は、SMキャッシュを使用してのリードアクセス処理を示すフローチャートである。第2の実施例として、他系の制御情報のみをSMキャッシュにキャッシングする方式について、図20及び図21で説明する。第2の実施例の特徴は、SMキャッシュ15に、片マスタ情報で他系にマスタ面がある制御情報のみをコピーすることにある。つまり、前記制御情報は、自系のMPUが、他系のSMを頻繁にリードする情報である。ところが、他系のSMリードは自系のSMリードに比べ低速であるので、高速なアクセスが可能な自系SMに前記制御情報の一部の内容をキャッシングしておくことで、MPUのリード性能を向上させることが目的である。具体的には、SMアクセス制御部23が、SMキャッシュa符号15aに、SMbのみにマスタ面がある片マスタ情報をコピーし、SMキャッシュb符号15bに、SMaのみにマスタ面がある片マスタ情報をコピーする。例えば、図21の場合は、SMbをマスタ面とする片マスタ情報は、制御情報Wと制御情報Zなので、SMアクセス制御部23がSMキャッシュa15aに制御情報Wと制御情報Zをコピーする。SMaをマスタ面とする片マスタ情報は、制御情報V/制御情報X/制御情報Yであるが、全ての制御情報をコピーする容量がSMキャッシュaにない。そこで、SMアクセス制御部23は、制御情報V/制御情報X/制御情報Yから制御情報Vと制御情報Xを選択し、SMキャッシュbにコピーする。選択方法は、例えば、最近に参照された制御情報から順番に選んでコピーする方法である。このようなSMbにマスタ面がある片マスタ情報を自系にあるSMキャッシュaにコピーするSMキャッシュキャッシング方法により、自系のMPUaは、必要な制御情報を高速にアクセス可能な自系MPUメモリ102aからリード出来る。図21は、SMキャッシュを使った時のSMリードの処理S1900を示すフローチャートである。SMキャッシュキャッシング時のリード処理は、SMアクセス制御部23に呼び出され、リードする制御情報のアドレスを引数として与えられる。最初に、MPUは、引数として渡されたアドレスに該当するマスタ面情報テーブル110のマスタ種別フィールド1101を参照しステップS1901、マスタ種別両マスタ情報ないし片マスタ情報を判定するステップS1902。判定の結果、マスタ種別フィールド1101の内容が両マスタ情報の場合ステップS1902:両マスタは、自系のMPUが自系のSMをリードできるので高速なアクセスが可能となる。そこで、MPUは自系SMをリードしステップS1904、リード処理を終了する。判定の結果で、マスタ種別フィールド1101の内容が片マスタ情報の場合ステップS1902:片マスタは、MPUが、マスタ面情報テーブル110のマスタ面フィールド1102を参照しステップS1903、マスタ面が自系にあるか、他系にあるかを判定するステップS1905。マスタ面が自系SMにある場合ステップS1905:自系、MPUは自系SMをリードしてステップS1907、リード処理を終了する。判定の結果で、マスタ面が他系にある場合ステップS1905:他系は、SMキャッシュ用のキューを参照しステップS1906、Hit/MissHit以下Miss判定を行うステップS1908。Hit/Miss判定とは、自系SMキャッシュにリードしたい制御情報があるかどうかを判定することで、Hit時はリードしたい制御情報が自系SMキャッシュにあるので、高速にアクセスできる。一方、Miss時はリードしたい制御情報が自系SMキャッシュにないので、他系SMへのリードが必要なためアクセス時間が大きい。判定の結果、自系SMキャッシュにリードしたい制御情報がある場合ステップS1908:Hitは、MPUは、他系SMよりも高速にアクセス出来る自系SMキャッシュをリードしてステップS1910、リード処理を終了する。これに相当する制御情報が、図20でSMキャッシュbに格納されている制御情報Vである。判定の結果、自系SMキャッシュにリードしたい制御情報がない場合ステップS1908:Missは、MPUは、他系SMをリードするステップS1909。続いて、リードした当該制御情報を、自系SMキャッシュにコピーしてステップS1911、リード処理を終了する。このように、他系SMにのみ存在する制御情報を自系SMキャッシュにコピーしておくことで、MPUが、再び、当該制御情報をリードする時に、高速アクセス可能な自系SMキャッシュからリードすることが出来る。これに相当する制御情報が、図20でSMbにもSMキャッシュbにも格納されていない制御情報Yである。以上の説明したように、第2の実施例のキャッシング制御により、第1の実施例と同様に、ソフトウェア環境及び装置制御環境の互換性の維持しながら、メモリへのアクセスコストであるアクセス時間の短縮によるストレージ装置のアクセス性能向上が図れる。図22は、本発明の第3の実施形態におけるデータキャッシュ管理情報のLUオーナ権による配置を概念的に説明する図である。図23は、データキャッシュ管理情報をLUオーナ権に応じて配置する処理を示すフローチャートである。第3の実施例として、データキャッシュ管理情報をそのオーナ権を持つCTLのSM上に配置する方式について図22及び図23で説明する。まず、図22を用いてデータキャッシュ管理情報の配置方式について説明する。図22のデータキャッシュ管理情報は非二重化情報であるため、図7で示すアドレス0xF000以降の領域である非二重化領域に配置する。なお、データキャッシュ管理情報とは、SM12上のデータキャッシュ管理情報格納領域16に格納する制御情報で、キャッシュメモリ13のデータのアドレスとディスクのアドレスとを対応付ける情報である。つまり、ドライブ部109のあるディスクのデータにアクセスする場合、MPUは、まず、データキャッシュ管理情報格納領域16aを参照する。そして、MPUは、キャッシュメモリ上にアクセスするデータがあるかどうかを判断でき、さらに、キャッシュメモリ13aのどのアドレスに格納されているかが直ぐに分かる。また、データキャッシュ管理情報は、対応するユーザデータと同じCTL側に配置する。この理由を以下で説明する。ライトするデータをディスクに書く前に、一時的にキャッシュへ二重化して格納しておくとする。どちらか一方のCTLが故障した場合でもデータのアクセスを正常に実行するため、故障していない他方のCTLのMPUメモリ内には、ユーザデータとそのデータにアクセスするためのデータキャッシュ管理情報がセットになって残っている必要がある。以上のような理由から、ユーザデータとデータキャッシュ管理情報は同じCTL上に配置する。ユーザデータとデータキャッシュ管理情報はLUに属する情報であるので、LUオーナ権を持ついずれかのCTLが、ユーザデータとデータキャッシュ管理情報の処理を担当する。そこで、これらのユーザデータおよび制御情報は、オーナ権を持つCTL側に配置する。ただし、このような配置を継続すると、いずれか一方のCTLにI/Oが集中した場合は、I/Oが集中したCTL側のキャッシュメモリが使用され続け、他方のキャッシュメモリはいつまでも古い情報を持ったまま、使用されていないこととなる。このようなメモリ使用上の無駄を省き効率的なメモリ使用とアクセスを実現するため、データの解放処理と再割り当て処理を行う。具体的には、両方のキャッシュメモリの一番古い情報同士のアクセス時刻参照時刻ないし更新時刻などを比較し、その時間差が所定の閾値を超えた一番古い情報を両方のキャッシュメモリから解放し、その空いた領域に新しいユーザデータを格納する。そのキャッシュメモリ領域の解放処理と再割り当て処理を、図23で説明する。図23は、データキャッシュ管理情報の割り当て処理S2000を示すフローチャートであり、プログラムである基本I/O制御部22に呼び出され、アドレスを引数として与えられる処理ルーチンである。最初に、基本I/O制御部22を実行するMPUは、自系及び他系のキャッシュメモリのキューを参照する。当該キューは、最近参照されたものから順番に格納し、最も古い情報から順番に除いていくキューで、CTLa、CTLbのそれぞれに備える。MPUは、キューに格納されるデータに、キューにデータが最初に格納された時間である遷移時間を付与する。データキャッシュ管理情報割り当て処理S2000の実行が開始されると、MPUは、まず、両CTLのキューの中で、一番古いデータのキューにある遷移時間最終アクセス時刻である参照時刻ないし更新時刻などを求め、両者の差を算出するステップS2001。次に、MPUは、両者の差が所定の閾値以上であるか否かを判定するステップS2002。両者の差が閾値以上である場合ステップS2002:No、MPUは、当該キューの最も古いデータの内、どちらがより古いかを両者の遷移時間で判定するステップS2004。この判定によって、MPUは、二つのキャッシュメモリにある最も古いデータを削除し、新しいデータを追加することが出来る。例えば、CTLaのデータが一番古ければステップS2004:CTLa、MPUは、CTLaのキューの一番古いデータを削除し、新規データをキャッシュメモリaに配置し、そのデータの管理情報はSMaに配置するステップS2008。逆に、CTLbのデータが一番古ければステップS2004:CTLb、MPUは、CTLbのキューの一番古いデータを削除し、新規データをキャッシュメモリbに配置し、そのデータの管理情報もSMbに配置するステップS2009。両者の差が閾値未満である場合ステップS2002:Yes、MPUは、LUオーナ権テーブル124を参照しステップS2003、データのLUオーナ権を持つCTLを判定するステップS2005。そして、データおよびデータの管理情報をLUオーナ権のあるCTL上に配置することで、MPUは自系SMをリード出来るため、アクセス性能を向上できる。すなわち、CTLaがLUオーナ権を持つ場合ステップS2005:CTLa、MPUは、データをキャッシュメモリaに配置し、そのデータの管理情報をSMaに配置し、LUオーナ権テーブル124を更新してステップS2006、処理を終了する。CTLbがLUオーナ権を持つ場合ステップS2005:CTLbは、データをキャッシュメモリbに配置し、そのデータの管理情報をSMbに配置し、LUオーナ権テーブル124を更新してステップS2007、処理を終了する。以上の説明したように、本発明の各CTLのLUオーナ権制御とMPUメモリへのデータ管理情報の格納制御により、MPUメモリの有効利用とアクセス性能の向上が図れる。これにより、実施例1ないし実施例2と同様、メモリへのアクセスコストであるアクセス時間の短縮によるストレージ装置のアクセス性能向上が図れる。なお、上記の説明ではテーブルという表現にて本発明の情報を説明したが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DBデータベース、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すためにテーブル、リスト、DB、キュー等については、単に情報と呼ぶこともできる。また、上記の説明ではプログラムを主語として説明を行ったが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート通信制御装置を用いながら行うため、MPUなどのプロセッサを主語としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよいことは言うまでもない。