JP4468666B2 - 二重書込機能を有する装置およびストレージ制御装置 - Google Patents

二重書込機能を有する装置およびストレージ制御装置 Download PDF

Info

Publication number
JP4468666B2
JP4468666B2 JP2003298206A JP2003298206A JP4468666B2 JP 4468666 B2 JP4468666 B2 JP 4468666B2 JP 2003298206 A JP2003298206 A JP 2003298206A JP 2003298206 A JP2003298206 A JP 2003298206A JP 4468666 B2 JP4468666 B2 JP 4468666B2
Authority
JP
Japan
Prior art keywords
module
management
cache memory
address
mirror
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003298206A
Other languages
English (en)
Other versions
JP2005070995A (ja
Inventor
修 木村
裕一 小川
光正 羽根田
明人 小林
幸治 内田
一馬 高津
克彦 長嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003298206A priority Critical patent/JP4468666B2/ja
Priority to US10/785,118 priority patent/US20050044300A1/en
Publication of JP2005070995A publication Critical patent/JP2005070995A/ja
Application granted granted Critical
Publication of JP4468666B2 publication Critical patent/JP4468666B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ホスト等の外部装置から転送されてきたデータを2以上のキャッシュメモリに書き込む二重書込機能(多重書込機能)をそなえた装置に関し、より具体的には、物理デバイス(例えば磁気ディスク装置)とホストとの間にそなえられ、このホストの物理デバイスに対するアクセスを制御するストレージ制御装置に関する。
一般に、ホスト(コンピュータ)には、ネットワーク等を介し外部記憶装置としてのストレージ装置が接続されている。このストレージ装置は、ホストからのアクセス(入出力要求,I/O要求)に応じて、ホストからのデータを物理デバイス(例えばディスク装置)に書き込んだり、ホストから要求されたデータを物理デバイスから読み出してホストへ転送するもので、ディスク装置と、このディスク装置とホストとの間にそなえられホストのディスク装置に対するアクセスを制御するストレージ制御装置とから構成されている。
このストレージ制御装置においては、通常、少なくとも、ホストとのインターフェイスを制御するホストインターフェイスモジュールと、ディスク装置とのインターフェイスを制御するディスクインターフェイスモジュールと、本ストレージ制御装置の全体を統括的に管理する2以上の管理モジュールとがそなえられている。
そして、各管理モジュールは、ホストからディスク装置に書き込まれるべきデータや、ディスク装置からホストへ読み出されるべきデータを一時的に格納するキャッシュメモリを搭載され、このキャッシュメモリの管理も行なうように構成されている。
また、ホストインターフェイスモジュールと管理モジュールとの間を接続するインターフェイスバスや、ディスクインターフェイスモジュールと管理モジュールとの間を接続するインターフェイスバスとしては、標準バス、例えばPCI(Peripheral Component Interconnect)バスが用いられる。
このように構成されたストレージ制御装置では、ディスク装置からホストへデータを読み出す際には、まず、読出対象データが、そのデータを保持するディスク装置からディスクインターフェイスモジュールへ転送され、このディスクインターフェイスモジュールからPCIバスを介して管理モジュールのキャッシュメモリに一時的に格納される。この後、管理モジュールのキャッシュメモリ上の読出対象データは、PCIバスを介してホストインターフェイスモジュールへ転送され、このホストインターフェイスモジュールからホストへ読み出される。
逆に、ホストからディスク装置にデータを書き込む際には、まず、書込対象データが、ホストからホストインターフェイスモジュールへ転送され、このホストインターフェイスモジュールからPCIバスを介して管理モジュールのキャッシュメモリに一時的に格納される。このとき、ホストからのアクセス頻度が高い書込対象データは、キャッシュメモリに保持されるが、アクセス頻度が低くなると、キャッシュメモリからPCIバスを介してディスクインターフェイスモジュールへ転送され、このディスクインターフェイスモジュールから所定のディスク装置に書き込まれる。
また、ホストからストレージ装置にデータを書き込む際には、キャッシュメモリを持つハードウェア(管理モジュール)の障害等によって、磁気ディスク装置等のディスク装置に書き込む前のユーザデータが消失してしまうのを防止するため、ストレージ制御装置内でホストから転送されたユーザデータを、2つのキャッシュメモリに二重に書き込むこと(複数のハードウェアに同一データを書き込むこと)が一般的に行なわれている(例えば下記特許文献1〜3参照)。
上述のような構成のストレージ制御装置において2つの管理モジュール(例えばCM−AとCM−B)におけるキャッシュメモリにデータの二重書込を行なう場合、通常、ホストから書込対象データを受け取ったホストインターフェイスモジュールは、そのデータを、PCIバスを介してCM−A(キャッシュメモリA)の指定アドレスにデータを転送して書き込むとともに、同じデータを、PCIバスを介してCM−B(キャッシュメモリB)の指定アドレスにデータを転送して書き込むことになる。つまり、ホストインターフェイスモジュールと2つの管理モジュールとの間で同一データを2回転送している。
特開平07−160432号公報 特開平05−189314号公報 特開平07−20994号公報
しかしながら、従来のストレージ制御装置では、データの二重書込みを行なうために転送速度の遅い標準バスを用いて1つのホストインターフェイスモジュールから2つの管理モジュールに対し同一データを2回転送しなければならず、処理性能上、好ましくない。従って、1回のアドレス指定でデータのキャッシュメモリへの二重書込みをより高速に行なえるようにして、処理性能をより向上させることが望まれている。
また、単純に二重書込のための機構をハードウェアに付加した場合には、書込対象データが、2つの管理モジュール(CM−A,CM−B)のキャッシュメモリ上で全く同じアドレスに書き込まれるように管理しなければならない。しかし、このような二重書込を行なうとキャッシュメモリ内のデータ配置に大きな制約が生じてデータ配置の自由度が低くなるため、キャッシュメモリ内に使用できない無駄な領域が生じてしまう。従って、キャッシュメモリにおけるデータ配置(キャッシュ管理)の自由度を増大させ、キャッシュメモリを効率よく使用できるようにすることも望まれている。
本発明は、このような課題に鑑み創案されたもので、1回のアドレス指定でデータのキャッシュメモリへの二重書込みをより高速に行なえるようにして処理性能の向上をはかるとともに、キャッシュ管理の自由度を増大させてキャッシュメモリの効率的使用を実現することを目的としている。
上記目的を達成するために、本発明の二重書込機能を有する装置(請求項1)は、外部装置とのインターフェイスを制御する第1モジュールと、キャッシュメモリを有する複数の第2モジュールと、インターフェイスバスを介して該第1モジュールおよび該第2モジュールをそれぞれ接続されこれらの該第1モジュールおよび該第2モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、各第2モジュールが、当該第2モジュールとミラー関係にある第2モジュールに関する情報を管理するとともに、当該第2モジュールにおけるキャッシュメモリ内の所定のアドレスから開始するマスタ領域アドレスと、当該第2モジュールとミラー関係にある第2モジュールから取得した当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内の該マスタ領域アドレスの開始位置とは異なったアドレス位置から開始するミラー領域アドレスとの対応関係を管理することにより、当該第2モジュール側から、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリのミラー領域の使用/未使用を管理する管理手段を有しており、該第1モジュールが、該外部装置から受け取った書込対象データを該ブリッジモジュール経由で該複数の第2モジュールのうちの2つの第2モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうる単一のアドレッシング情報を、該2つのミラー関係にある第2モジュールのうちの一方の第2モジュールにおける該管理手段から取得した情報に基づいて生成するアドレス指定手段をそなえて構成されるとともに、該ブリッジモジュールが、該第1モジュールから前記書込対象データとともに受け取った前記単一のアドレッシング情報を解析し前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの第2モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの異なった2つの書込先アドレスとを前記単一のアドレッシング情報から生成するアドレス生成手段と、前記書込対象データを前記2つの転送先アドレスに対応する該2つの第2モジュールへ転送した後に各第2モジュールのキャッシュメモリにおける前記書込先アドレスに同時に書き込むように該ブリッジモジュールから該第2モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴としている。
このような装置において、各第2モジュールが、該ブリッジモジュール経由で該第1モジュールへ読み出されるべき読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させるように構成してもよい(請求項2)。
また、本発明のストレージ制御装置(請求項3)は、ディスク装置とホストとの間にそなえられ該ホストの該ディスク装置に対するアクセスを制御するものであって、該ディスク装置とのインターフェイスを制御するディスクインターフェイスモジュールと、該ホストとのインターフェイスを制御するホストインターフェイスモジュールと、キャッシュメモリを有し本装置全体を統括的に管理する複数の管理モジュールと、インターフェイスバスを介して該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールをそれぞれ接続されこれらの該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、各管理モジュールが、当該管理モジュールとミラー関係にある管理モジュールに関する情報を管理するとともに、当該管理モジュールにおけるキャッシュメモリ内の所定のアドレスから開始するマスタ領域アドレスと、当該管理モジュールとミラー関係にある管理モジュールから取得した当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内の該マスタ領域アドレスの開始位置とは異なったアドレス位置から開始するミラー領域アドレスとの対応関係を管理することにより、当該管理モジュール側から、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリのミラー領域の使用/未使用を管理する管理手段を有しており、該ホストインターフェイスモジュールが、該ホストから受け取った書込対象データを該ブリッジモジュール経由で該複数の管理モジュールのうちの2つの管理モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうる単一のアドレッシング情報を、該2つのミラー関係にある管理モジュールのうちの一方の管理モジュールにおける該管理手段から取得した情報に基づいて生成するアドレス指定手段をそなえて構成されるとともに、該ブリッジモジュールが、該ホストインターフェイスモジュールから前記書込対象データとともに受け取った前記単一のアドレッシング情報を解析し前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの管理モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの異なった2つの書込先アドレスとを前記単一のアドレシング情報から生成するアドレス生成手段と、前記書込対象データを前記2つの転送先アドレスに対応する該2つの管理モジュールへ転送した後に各管理モジュールのキャッシュメモリにおける前記書込先アドレスに同時に書き込むように該ブリッジモジュールから該管理モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴としている。
このとき、該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの各キャッシュメモリでの前記書込先アドレスとして、各管理モジュールの該キャッシュメモリ内におけるページアドレスと各ページ内でのオフセットアドレスとを指定してもよい(請求項4)。さらに、各管理モジュールが、該ディスク装置から該ディスクインターフェイスモジュールおよび該ブリッジモジュール経由で読み出された読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させるように構成してもよい(請求項5)。
上述した本発明の二重書込機能を有する装置およびストレージ制御装置によれば、第1モジュール(ホストインターフェイスモジュール)のアドレス指定手段により2つの書込先を指定しうるアドレッシング情報が生成され、ブリッジモジュールでは、アドレス生成手段により、前記アドレッシング情報に基づいて2つの転送先アドレス(2つの第2モジュール(管理モジュール)を指定するもの)と各キャッシュメモリでの書込先アドレスとが生成される。そして、ブリッジモジュールのデータ転送制御手段により、書込対象データが、前記2つの転送先アドレスに対応する2つの第2モジュール(管理モジュール)へ転送され、各第2モジュール(管理モジュール)のキャッシュメモリにおける前記書込先アドレスに書き込まれる。
従って、第1モジュール(ホストインターフェイスモジュール)でアドレス指定を1回だけ行ない第1モジュール(ホストインターフェイスモジュール)からブリッジモジュールへのデータ転送を1回だけ行なえば、書込対象データが、標準バスよりも転送速度の速いブリッジモジュールを通じて2つの第2モジュール(管理モジュール)におけるキャッシュメモリに転送されて二重に書き込まれるので、キャッシュメモリへの二重書込をより高速に行なえ、処理性能を大幅に向上させることができる。
また、第1モジュール(ホストインターフェイスモジュール)のアドレス指定手段により、前記アドレッシング情報において、書込対象データの各キャッシュメモリでの前記書込先アドレスとして、各管理モジュールのキャッシュメモリ内におけるページアドレスと各ページ内でのオフセットアドレスとを指定することで、書込対象データを、2つの第2モジュール(管理モジュール)におけるキャッシュメモリ上で別々のアドレスに転送して書き込むことができるので、キャッシュ管理の自由度が増し、キャッシュメモリを効率よく使用することができる。
さらに、各第2モジュール(管理モジュール)に管理手段をそなえ、この管理手段によって、当該第2モジュール(管理モジュール)とミラー関係にある第2モジュール(管理モジュール)に関する情報を管理するとともに、当該第2モジュール(管理モジュール)におけるキャッシュメモリ内のマスタ領域アドレスと、当該第2モジュール(管理モジュール)とミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域アドレスとの対応関係を管理することにより、第1モジュール(ホストインターフェイスモジュール)におけるアドレス指定手段は、ミラー関係にある2つの第2モジュール(管理モジュール)どうしで通信を行なうことなく、2つの第2モジュール(管理モジュール)のうちの一方における管理手段から取得した情報に基づいて前記アドレッシング情報を生成することができる。
また、上述のごとく管理手段によってミラー関係にある第2モジュール(管理モジュール)のミラー領域を管理することで、ミラー関係にある2つの第2モジュール(管理モジュール)どうしで通信を行なうことなく、一方の第2モジュール(管理モジュール)が他方の管理モジュールのミラー領域を効率よく利用することができる。例えば、一方の第2モジュール(管理モジュール)においてキャッシュメモリのマスタ領域の容量が不足している場合、上記管理手段による管理状況に基づいて、他方の第2モジュール(管理モジュール)におけるキャッシュメモリ内のミラー領域を利用することができ、キャッシュメモリのマスタ領域もミラー領域も効率よく利用することが可能になる。
以下、図面を参照して本発明の実施の形態を説明する。
〔1〕本発明の一実施形態の説明
図1は本発明の一実施形態としてのストレージ装置(ストレージ制御装置)の最小基本構成を示すブロック図で、この図1に示すストレージ装置1は、ホスト4からのアクセス(入出力要求,I/O要求)に応じて、ホスト4からのデータを書き込んだり、ホスト4から要求されたデータを読み出してホスト4へ転送したりするものである。このストレージ装置1は、ディスクユニット(ディスク装置,物理デバイス)2と、このディスクユニット2とホスト4との間にそなえられホスト4のディスクユニット2に対するアクセスを制御するストレージ制御装置3とから構成されている。
そして、ストレージ制御装置3は、ディスクインターフェイスモジュール10,ホストインターフェイスモジュール20,管理モジュール30およびPCIブリッジモジュール40をそなえて構成されている。図1に示す最小基本構成のストレージ制御装置3において、ディスクインターフェイスモジュール10,ホストインターフェイスモジュール20およびPCIブリッジモジュール40はそれぞれ1組そなえられ、管理モジュール30は2組そなえられている。
ディスクインターフェイスモジュール10は、ディスクインターフェイスバス54を介してディスクユニット2とのインターフェイス(データ転送)を制御するものである。
ホストインターフェイスモジュール(第1モジュール)20は、ファイバチャネルインターフェイスバス50を介してホスト(外部装置)4とのインターフェイス(データ転送)を制御するものである。このホストインターフェイスモジュール20には、アドレス指定手段21としての機能がそなえられているが、このアドレス指定手段21としての機能については後述する。
各管理モジュール(第2モジュール)30は、本ストレージ制御装置3の全体を統括的に管理するもので、ホスト4からディスクユニット2に書き込まれるべきデータや、ディスクユニット2からホスト4へ読み出されるべきデータを一時的に格納するキャッシュメモリ31を搭載され、このキャッシュメモリ31の管理を行なうものである。この管理モジュール30には、管理手段32としての機能もそなえられているが、この管理手段32としての機能については後述する。
PCIブリッジモジュール(ブリッジモジュール)40は、標準バスであるPCIバス(インターフェイスバス)51,52,53を介してディスクインターフェイスモジュール10,ホストインターフェイスモジュール20および管理モジュール30をそれぞれ接続され、これらのディスクインターフェイスモジュール10,ホストインターフェイスモジュール20および管理モジュール30の相互間をデータ転送可能に接続するものである。このPCIブリッジモジュール40には、アドレス生成手段41およびデータ転送制御手段42としての機能がそなえられているが、これらのアドレス生成手段41およびデータ転送制御手段42としての機能については後述する。なお、一般的なPCI−PCIブリッジは1:1接続を行なうように構成されるが、ここで用いられるPCIブリッジモジュール40はn:n(複数:複数)接続可能に構成されている。
書込データの二重化は、ミラー関係にある2つの管理モジュール30によって行なわれる。図1に示す最小基本構成のストレージ制御装置1では、管理モジュール30が2組だけそなえられているので、これら2組の管理モジュール30がミラー関係にあり、一方の管理モジュール30がマスタCMとして取り扱われ、他方の管理モジュール30がミラーCM(ペアCM)として取り扱われることになる。
ここで、各管理モジュール30におけるキャッシュメモリ31について、図3〜図5を参照しながら説明する。なお、図3は本実施形態のキャッシュメモリ31の構成を示す図、図4は本実施形態のキャッシュメモリ31におけるマスタ領域(ローカル領域)とミラー領域との対応関係を示す図、図5は本実施形態におけるキャッシュメモリ31の管理動作の一例を説明するための図である。
図3に示すように、キャッシュメモリ31内の領域(キャッシュ領域)は、一定サイズ(例えば2MB(メガバイト))のキャッシュページ毎に区切られ、4MB分の領域(2ページ分)が一つの単位として管理されている。そして、2MBの各ページは、520バイト×128ブロック=66560バイトのCBE(Cache Bundle control Element)を31個割り当てられて構成・管理されている。なお、各キャッシュページの管理は、未使用のCBEをフリーのリンク群に接続することにより行なわれる。使用中のCBEは、LRU(Least Recently Used)リンクおよびハッシュエントリに接続することにより管理される。ただし、ミラー領域のCBEはフリーリンクには接続しないものとする。
また、図3や図4に示すように、キャッシュ領域は、4MB単位でマスタ領域(マスタCBE群)とミラー領域(ミラーCBE群)とを交互に配置した2分割メモリフォーマットとして管理される。なお、図4においては、ミラー関係にある2つの管理モジュール30(CM−AとCM−B)におけるキャッシュメモリ31のマスタ領域(ローカル領域)とミラー領域との対応関係が矢印によって示されている。
そして、本実施形態において、各管理モジュール30におけるキャッシュメモリ31のマスタ領域(ローカル領域)は、I/O要求を受け付けた管理モジュール30によって読出/書込データ転送用メモリ領域として使用される。また、各管理モジュール30におけるキャッシュメモリ31のミラー領域は、当該管理モジュール30のバックワードに位置する管理モジュール30(当該管理モジュール30とミラー関係にある管理モジュール30)によって書込データの二重化用メモリ領域として使用されるほか、図5を参照しながら後述するごとくホスト4への読出データ転送用メモリ領域として使用される。つまり、本実施形態では、各管理モジュール30におけるキャッシュメモリ31のミラー領域は、バックワードに位置する管理モジュール30(後述する管理手段32)によって管理されており、当該管理モジュール30が直接使用することができないように構成されている。
なお、各キャッシュメモリ31のマスタ領域/ミラー領域においては、上記読出データ転送用メモリ領域を構成するため、そのメモリ領域としてのみ使用される最低容量が予め設定されている。その最低容量は、チューニングパラメタの“Readキャッシュ容量”として定義・設定されるようになっている。その最低容量のデフォルト値は例えば64MBであり、64MBを設定した場合、CBEにして約1000ページ(正確には992ページ)の読出データ転送用メモリ領域が確保されることになる。
各キャッシュメモリ31におけるマスタ領域とミラー領域とは、物理的な区画分けにより制限されている。このような物理的な制限により、マスタCM側の管理手段32(後述)によってミラーキャッシュ(ミラーCM側のキャッシュメモリ31のミラー領域)の管理を行なえるようになっている。このとき、マスタ領域とミラー領域との物理構成上の境界はハードウェアのキャッシュページを意識して設定される。これにより、本発明による二重書込(フォーキング書込:Forking Write)が実行可能になっている。本実施形態のフォーキング書込では、後述するように、キャッシュページアドレスとそのアドレスからのオフセット値(オフセットアドレス)とがホストインターフェイスモジュール20のアドレス指定手段21によって指定されるが、上述のようなハードウェアの物理的制限により、マスタ領域とミラー領域とでそのオフセット値は同じ値にしなければならない。
本実施形態のストレージ制御装置3においては、上述のようなキャッシュメモリ31を管理すべく、各管理モジュール30に管理手段(キャッシュ管理ファームウェア)32としての機能がそなえられている。
この管理手段32は、この管理手段32を有する管理モジュール30(マスタCM)とミラー関係にある管理モジュール30(ミラーCM)に関する情報(そのミラーCMのPCIバスを特定する番号等)を管理するとともに、マスタCM側のキャッシュメモリ31内のマスタ領域アドレスとミラーCM側のキャッシュメモリ31内のミラー領域アドレスとの対応関係(この対応関係は予め決められている)を管理することにより、ミラーキャッシュ(ミラーCM側のキャッシュメモリ31のミラー領域)をマスタCM側から管理可能に構成されている。つまり、マスタCM側の管理手段32によって、ミラーキャッシュにおけるCBEの使用/未使用を管理できるように構成されている。
また、本実施形態では、各管理モジュール30が、上述した管理手段32を用いてミラーキャッシュをマスタCM側から管理可能に構成されているので、図5に示すように、ある管理モジュール30(CM−A)がホスト4の読出要求(I/O要求)に応じてディスクユニット2からディスクインターフェイスモジュール10およびPCIブリッジモジュール40(図5では図示省略)経由で読み出された読出対象データをキャッシュメモリ31に一時的に保存する際にそのキャッシュメモリ31のマスタ領域の容量が万一不足していても、その管理モジュール30(CM−A)は、管理手段32による管理状況に基づいて、図5の矢印A1(ステージング処理)で示すごとく、この管理モジュール30(CM−A)とミラー関係にある管理モジュール30(CM−B)におけるキャッシュメモリ31内のミラー領域(予め確保されている上記読出データ転送用メモリ領域)に、前記読出対象データを保存させることができる。このようにミラーキャッシュに保存された読出対象データは、図5の矢印A2(ホスト読出処理)で示すごとく、CM−Bにおけるミラー領域からPCIブリッジモジュール40およびホストインターフェイスモジュール20経由でホスト4へ転送されるようになっている。
管理モジュール30のキャッシュメモリ31のマスタ領域において読出データのために使用されているCBEの、ペアCBE(その管理モジュール30とミラー関係にある管理モジュール30のミラー領域における対応CBE)は、書込データの二重化のために使用されることがないので、空き領域のままになる。このような領域を活用できれば、読出要求のI/O処理に際してもキャッシュメモリ31を100%に近い利用効率で使用することが可能になる。そこで、本実施形態では、各管理モジュール30の管理手段32としての機能を用いて、ミラーCMのミラー領域における上述のような空き領域を読出データ転送用メモリ領域として利用できるようにしている。
ただし、このような機能を実現するために、各管理モジュール30とディスクインターフェイスモジュール10,ホストインターフェイスモジュール20との間には、これらのインターフェイスモジュール10,20について予め設定されている担当機番の管理モジュール30(図5に示す例ではCM−A)のキャッシュメモリに対してアクセス可能なだけでなく、その担当機番の管理モジュール30とは異なる管理モジュール30(図5に示す例ではCM−B)のキャッシュメモリ31に対してもアクセス可能なインターフェイスがそなえられている。このインターフェイスにより、管理モジュール30側からI/O要求キャッシュアドレスとともに管理モジュール論理IDが指定される。また、インターフェイスモジュール10,20がキャッシュメモリ31を参照する際には、論理IDも合わせてセットアップされる。
さて、本実施形態のストレージ制御装置3は、上述のような管理モジュール30(キャッシュメモリ31および管理手段32)をそなえた上で、フォーキング書込と呼ぶ書込データの二重書込(二重化)を実行するものであり、ついで、フォーキング書込を実行するための機能(ホストインターフェイスモジュール20のアドレス指定手段21としての機能,PCIブリッジモジュール40のアドレス生成手段41およびデータ転送制御手段42としての機能)について説明する。
ホストインターフェイスモジュール20におけるアドレス指定手段21は、ホスト4から受け取った書込対象データをPCIブリッジモジュール40経由で2つの管理モジュール30におけるキャッシュメモリ31に二重化して書き込むべく2つの書込先を指定しうるアドレッシング情報を、2つの管理モジュール30のうちの一方の管理モジュール30(ここではCM−A)における管理手段32から取得した情報に基づいて生成するものである。
ここで、図2は、アドレス指定手段21によって生成されるアドレッシング情報のフォーマットを示す図である。この図2に示すように、上記アドレッシング情報においては、PCIバス52に対して指示するアドレス(PCIアドレス)として、以下のもの(1)〜(4)が指定される。
(1)ベースアドレス(図2中のBA)
(2)CM−Aのキャッシュメモリ31での書込先ページアドレス(PA−A;図2中のプライマリページ)
(3)CM−Bのキャッシュメモリ31での書込先ページアドレス(PA−B;図2中のセカンダリページ)
(4)上記(2),(3)の書込先ページアドレスによって指定される各キャッシュページ内での、書込先頭位置を示すオフセットアドレス(オフセット値;図2中のオフセットアドレス)
なお、図1に示す最小基本構成のストレージ制御装置3では、管理モジュール30が2組のみそなえられており、これら2組の管理モジュール30が常にミラー関係にあるので、図6〜図8を参照しながら後述する例とは異なり、書込対象データを転送すべき2つの転送先管理モジュール30を特定するための情報(2つの転送先アドレス)は、上記アドレッシング情報において指定する必要はなく、PCIブリッジモジュール40内部で固定的に保持されていればよい。
また、上記(1)のベースアドレス(BA)は、今回のI/O要求(書込要求)では書込対象データをホストインターフェイスモジュール20からPCIブリッジモジュール40経由で管理モジュール30に転送することをPCIブリッジモジュール40に対して指示するための情報である。より具体的には、例えば、ベースアドレスが“01”の時に書込対象データをCM−Aのみに転送・書込し、ベースアドレスが“10”の時には書込対象データをCM−Bのみに転送・書込し、ベースアドレスが“11”の時には書込対象データをCM−AおよびCM−Bの両方に転送・書込するようにPCIブリッジモジュール40に指示されるものとする。従って、ベースアドレスとして“11”が指定された場合に、PCIブリッジモジュール40におけるアドレス生成手段41およびデータ転送制御手段42としての機能により、本実施形態のフォーキング書込(二重書込)が実行されるようになっている。
PCIブリッジモジュール40のアドレス生成手段41は、ホストインターフェイスモジュール20から書込対象データとともに受け取った前記アドレッシング情報を解析し、その書込対象データを実際に書き込むべきキャッシュメモリ31を有する2つの管理モジュール30(CM−A,CM−B)を指定する2つの転送先アドレスと各キャッシュメモリ31での書込先アドレスとを生成するものである。
ここで、前述したように、図1に示す最小基本構成のストレージ制御装置3では、前記2つの転送先アドレスは、前記アドレッシング情報において指定されずPCIブリッジモジュール40内部で固定的に保持されているので、保持されている情報を読み出すことによって生成される。また、CM−Aのキャッシュメモリ31上の書込先アドレス、および、CM−Bのキャッシュメモリ31上の書込先アドレスとしては、それぞれ、下記アドレス(a1)および(a2)が生成される。
(a1) (CM−AのPA−A)+(オフセット値)
(a2) (CM−BのPA−B)+(オフセット値)
これにより、書込対象データは、マスタCMおよびミラーCMのキャッシュメモリ31で異なるアドレスに格納されるが、ページアドレスは異なっていても各キャッシュページ内でのオフセット(書込位置位置)は同一になるように管理されている。
データ転送制御手段42は、同一の書込対象データを、2つの転送先アドレスに対応する2つの管理モジュール30(CM−A,CM−B)へ転送させ、各管理モジュール30のキャッシュメモリ31において、アドレス生成手段41によって生成された上記書込アドレス(a1),(a2)に書き込むように、PCIブリッジモジュール40から各管理モジュール30へのデータ転送を制御するものである。
以上の構成により、図1に示す最小基本構成のストレージ制御装置3では、ホストインターフェイスモジュール20がホスト4からファイバチャネルインターフェイスバス50を通じてI/O要求として書込対象データの書込要求を受け取ると(図1の矢印A11参照)、アドレス指定手段21により2つの書込先を指定しうるアドレッシング情報(図2参照)が生成される。このアドレッシング情報が、書込対象データとともに、ホストインターフェイスモジュール20からPCIバス52を通じてPCIブリッジモジュール40へ転送される(図1の矢印A12参照)。
PCIブリッジモジュール40では、アドレッシング情報を伴う書込コマンドを認識すると、アドレス生成手段41により、ホストインターフェイスモジュール20からのアドレッシング情報に基づいて、2つの転送先アドレス(CM−A,CM−Bを指定するアドレス)と各キャッシュメモリ31での書込先アドレス(a1),(a2)とが生成される。そして、データ転送制御手段42により、同一の書込対象データが、前記2つの転送先アドレスに対応する2つの管理モジュール30へ転送され、各管理モジュール30のキャッシュメモリ31における書込先アドレス(a1),(a2)に書き込まれる(図1の矢印A13,A14参照)。
このようにして、図1の矢印A11〜A14で示すようなフォーキング書込(書込対象データの二重書込)が実行され、同一の書込対象データが、CM−Aのキャッシュメモリ31のマスタ領域におけるキャッシュページのCBEと、このキャッシュページのCBEに予め対応付けられた、CM−Bのキャッシュメモリ31のミラー領域におけるキャッシュページのCBE(ペアCBE)とに書き込まれる。
さて、次に、図6〜図8を参照しながら、本発明の一実施形態としてのストレージ装置(ストレージ制御装置)の具体的な構成例について説明する。ここで、図6はそのストレージ装置1(ストレージ制御装置3)の具体的な構成例を示すブロック図、図7は図6に示すストレージ制御装置3におけるPCIブリッジモジュール40の具体的な要部構成例を示すブロック図、図8は、図6および図7に示すストレージ制御装置3において、ホストインターフェイスモジュール20(アドレス指定手段21)で生成されるアドレッシング情報のフォーマットと同アドレッシング情報からPCIブリッジモジュール40(アドレス生成手段41)で生成されるアドレス情報のフォーマットとを示す図である。なお、図6,図7において、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
図6に示すストレージ装置1のストレージ制御装置3は、8組のホストインターフェイスモジュール20,4組の管理モジュール30,4組のディスクインターフェイスモジュール10および2組のPCIブリッジモジュール40をそなえて構成され、4組のディスクインターフェイスモジュール10には、ディスクインターフェイスバス54を介して例えば8台のディスクユニット2が接続されている。
この図6に示すストレージ制御装置3における各ホストインターフェイスモジュール20にも、上述と同様のアドレス指定手段21(図6では図示略)としての機能がそなえられている。このアドレス指定手段21も、ホストインターフェイスモジュール20がホスト40から受け取った書込対象データをPCIブリッジモジュール40経由で2つの管理モジュール30におけるキャッシュメモリ31に二重化して書き込むべく2つの書込先を指定しうるアドレッシング情報を、2つの管理モジュール30のうちの一方の管理モジュール30(CM−A,マスタCM)における管理手段32から取得した情報に基づいて生成するものである。ただし、図6に示すホストインターフェイスモジュール20(アドレス指定手段21)では、図8の(A)に示すように、上記アドレッシング情報において、PCIバス52に対して指示するアドレス(PCIアドレス)として、以下のもの(1)〜(7)が指定される。
(1)ベースアドレス(図8中のBA)
(2)CM−Aのキャッシュメモリ31での書込先ページアドレス(PA−A;図8中のプライマリページ)
(3)CM−Bのキャッシュメモリ31での書込先ページアドレス(PA−B;図8中のセカンダリページ)
(4)上記(2),(3)の書込先ページアドレスによって指定される各キャッシュページ内での、書込先頭位置を示すオフセットアドレス(オフセット値;図8中のオフセットアドレス)
(5)CM−AのPCIバスを特定する番号(書込対象データを実際に書き込むべきキャッシュメモリ31を有するマスタCMを特定しうる特定情報;図8中のP−PCI)
(6)CM−BのPCIバスを特定する番号(書込対象データを実際に書き込むべきキャッシュメモリ31を有するミラーCMを特定しうる特定情報;図8中のS−PCI)
(7)オペレーションを特定するために付与される任意の番号(図8中のTID(Transaction ID))
なお、図6に示すストレージ制御装置3では、管理モジュール30が4組そなえられているので、4組の管理モジュール30の中からミラー関係にある2組の管理モジュール30を指定する必要があり、このため、アドレス指定手段21によって上記(5),(6)の情報が指定されるようになっている。
また、上記(1)のベースアドレス(BA)は、図2に示したものと同様の機能を果たすものであるが、このBAを用いて、例えば、ベースアドレスが“10”の時には、書込対象データをCM−Aフィールド(上記(5))で指定した管理モジュール30へのみ転送しCM−Bフィールド(上記(6))の指定値は無視してCM−Aのみに書込を行ない、また、ベースアドレスが “11”の時には書込対象データをCM−AおよびCM−Bの両方に転送・書込するようにPCIブリッジモジュール40に指示されるものとする。従って、この転送指示(二重書込指示)手法では、ベースアドレスとして“11”が指定された場合に、PCIブリッジモジュール40におけるアドレス生成手段41およびデータ転送制御手段42としての機能により、本実施形態のフォーキング書込(二重書込)が実行されるようになっている。
上述のようなBAを用いた転送指示(二重書込指示)手法以外に、BAを用いず、基本的に、常に、上記(5),(6)のフィールドで指定された2つの管理モジュール30(CM−A,CM−B)への転送・書込を行ない、CM−A指定値とCM−Bの指定値とが同じ場合にのみ1つの管理モジュール30への転送・書込を行なう手法を採用してもよい。
図6に示すストレージ制御装置3におけるPCIブリッジモジュール40には、図7に示すように、バス制御機構43,アドレス解析/変換機構44,内部転送制御機構45,バッファ46,47,転送指示機構48およびバス制御機構49がそなえられている。
ここで、バス制御機構43および49は、それぞれ、PCIバス52,53の制御(インターフェイス制御)を行なうものである。
アドレス解析/変換機構44は、上述したアドレス生成手段41と同様の機能を果たすもので、ホストインターフェイスモジュール20から書込対象データとともに受け取った、図8の(A)に示すアドレッシング情報を解析し、その書込対象データを実際に書き込むべきキャッシュメモリ31を有する2つの管理モジュール30(CM−A,CM−B)を指定する2つの転送先アドレスと各キャッシュメモリ31での書込先アドレスとを生成するものである。
2つの転送先アドレスは、それぞれ、図8の(A)に示すアドレッシング情報から、上記(5),(6)のフィールドにおける2つのPCIバス番号(P−PCI,S−PCI)を読み出すことによって生成される。また、CM−Aのキャッシュメモリ31上の書込先アドレス、および、CM−Bのキャッシュメモリ31上の書込先アドレスとしては、図1に示したストレージ制御装置3と同様にして、図8の(A)に示すアドレッシング情報から、それぞれ、図8の(B)および(C)に示すごとく、下記アドレス(a1)および(a2)が生成される。
(a1) (CM−AのPA−A)+(オフセット値)
(a2) (CM−BのPA−B)+(オフセット値)
これにより、図6に示すストレージ装置1においても、書込対象データは、マスタCMおよびミラーCMのキャッシュメモリ31で異なるアドレスに格納されるが、ページアドレスは異なっていても各キャッシュページ内でのオフセット(書込位置位置)は同一になるように管理されている。
バッファ46は、PCIブリッジモジュール40のホストインターフェイスモジュール20側にそなえられ、ホストインターフェイスモジュール20から受信した書込対象データを一時的に保持するためのものである。また、バッファ47は、各管理モジュール30に対応してそなえられ、管理モジュール30へ転送すべき書込対象データを、ターゲット書込バッファ46から受け取って一時的に保持するためのものである。
内部転送制御機構45および転送指示機構48は、上述したデータ転送制御手段42と同様の機能を果たすもので、実際には、これらの機構45,48は一体化されて構成される。内部転送制御機構45は、アドレス解析/変換機構44の出力(上記(5),(6)のフィールドにおける2つのPCIバス番号)に基づいて、ホストインターフェイスモジュール側バッファ46から管理モジュール側バッファ47へ書込対象データを転送するものであり、転送指示機構48は、アドレス解析/変換機構44の出力(上記アドレス(a1),(a2))に基づいて、管理モジュール側バス制御機構49に対し、管理モジュール側バッファ47の書込対象データを指定アドレスへ転送することを指示するものである。
以上の構成により、図6および図7に示すストレージ制御装置3では、ホストインターフェイスモジュール20がホスト4からファイバチャネルインターフェイスバス50を通じてI/O要求として書込対象データの書込要求を受け取ると、アドレス指定手段21により2つの書込先を指定しうるアドレッシング情報(図8の(A)参照)が生成される。このアドレッシング情報が、書込対象データとともに、ホストインターフェイスモジュール20からPCIバス52を通じてPCIブリッジモジュール40へ転送される(図7の矢印A21参照)。その際、書込対象データは、ホストインターフェイスモジュール20から、デュアルライト(Dual Write)のPCIアドレスフォーマットで転送される。
PCIブリッジモジュール40では、デュアルライト(Dual Write)を受信すると、バッファ制御機構43を介し、1回のPCI書込に対して2つのバッファ46に同時に同一の書込対象データを書き込む(図7の矢印A22参照)。また、PCIブリッジモジュール40では、アドレッシング情報を伴う書込コマンドを認識すると、アドレス解析/変換機構44により、ホストインターフェイスモジュール20からのアドレッシング情報から、2つの転送先アドレス(CM−A,CM−BのPCIバスを特定するPCIバス番号)が抽出・生成されるとともに、各キャッシュメモリ31での書込先アドレス(a1),(a2)が生成される。
そして、内部転送制御機構45により、2つのバッファ46に保持されている書込対象データが、それぞれ、CM−A,CM−BのPCIバス番号に対応する2つのバッファ47へ転送され(図7の矢印A23参照)、さらに、転送指示機構48およびバス制御機構49により、2つのバッファ47に転送された書込対象データが、それぞれ、CM−AおよびCM−Bへ転送されてキャッシュメモリ31内の指定アドレス(a1),(a2)に同時に書き込まれる(図7の矢印A24参照)。
このようにして、図6や図7に示すストレージ制御装置3によっても、図7の矢印A21〜A24で示すようなフォーキング書込(書込対象データの二重書込)が実行され、同一の書込対象データが、CM−Aのキャッシュメモリ31のマスタ領域におけるキャッシュページのCBEと、このキャッシュページのCBEに予め対応付けられた、CM−Bのキャッシュメモリ31のミラー領域におけるキャッシュページのCBE(ペアCBE)とに書き込まれる。
このように、本発明の一実施形態としてのストレージ制御装置3(ストレージ装置1)によれば、ホストインターフェイスモジュール20でアドレス指定を1回だけ行ないホストインターフェイスモジュール20からPCIブリッジモジュール40へのデータ転送を1回だけ行なえば、書込対象データが、標準バス(PCIバス)よりも転送速度の速いPCIブリッジモジュール40を通じて2つの管理モジュール30におけるキャッシュメモリ31に転送されて二重に書き込まれるので、キャッシュメモリ31への二重書込(フォーキング書込)を高速に行なえ、処理性能を大幅に向上させることができる。
また、ホストインターフェイスモジュール20のアドレス指定手段21により、書込対象データの各キャッシュメモリ31での書込先アドレスとして、各管理モジュール30のキャッシュメモリ31内におけるページアドレスと各ページ内でのオフセットアドレスとを指定することで、書込対象データを2つの管理モジュール30におけるキャッシュメモリ31上で別々のアドレスに転送して書き込むことができるので、キャッシュ管理の自由度が増し、キャッシュメモリ31を効率よく使用することができる。
さらに、各管理モジュール30の管理手段(キャッシュ管理ファームウェア)32により、ミラーキャッシュをマスタCM側から管理可能に構成されているので、ホストインターフェイスモジュール20におけるアドレス指定手段21は、ミラー関係にある2つの管理モジュール30どうしで通信を行なうことなく、2つの管理モジュール30のうちの一方における管理手段32から取得した情報に基づいてアドレッシング情報を生成することができる。
また、各管理モジュール30の管理手段(キャッシュ管理ファームウェア)32によりミラーキャッシュをマスタCM側から管理することできるので、ミラー関係にある2つの管理モジュール30どうしで通信を行なうことなく、一方の管理モジュール30(CM−A)が他方の管理モジュール30(CM−B)のミラー領域を効率よく利用することができる。例えば、一方の管理モジュール30(CM−A)においてキャッシュメモリ31のマスタ領域の容量が不足している場合、管理手段32による管理状況に基づいて、他方の管理モジュール30(CM−B)におけるキャッシュメモリ31内のミラー領域の空き領域を利用することができ、キャッシュメモリ31のマスタ領域もミラー領域も効率よく(ほぼ100%)利用することが可能になる。
さらに、PCIブリッジモジュール40外側のインターフェイスとしては標準バス(PCIバス51〜53)が使用されるため、ホストインターフェイスモジュール20や管理モジュール30としては、既存のハードウェアをそのまま使用することができ、アドレスの指定手法(アドレス指定手段21としての機能)を変更するだけ、本発明によるフォーキング書込(データの二重書込)を実現することができる。
〔2〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、本発明をストレージ制御装置に適用した場合について説明したが、本発明は、これに限定されるものではなく、ホスト等の外部装置から転送されてきたデータを2以上のキャッシュメモリに書き込む二重書込機能(多重書込機能)をそなえた装置であれば、上述した実施形態と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
また、上述した実施形態では、ホスト4とストレージ制御装置3との間のインターフェイスがファイバチャネルインターフェイスである場合について説明したが、本発明は、これに限定されるものではない。
さらに、上述したアドレス指定手段21,管理手段32,アドレス生成手段41,データ転送制御手段42,バス制御機構43,アドレス解析/変換機構44,内部転送制御機構45,転送指示機構48およびバス制御機構49としての機能は、ホストインターフェイスモジュール20,管理モジュール30,PCIブリッジモジュール40を構成するCPU(Central Processing Unit;図示略)が所定のプログラムを実行することによって実現される。このプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。
〔3〕付記
(付記1) 外部装置とのインターフェイスを制御する第1モジュールと、
キャッシュメモリを有する複数の第2モジュールと、
インターフェイスバスを介して該第1モジュールおよび該第2モジュールをそれぞれ接続されこれらの該第1モジュールおよび該第2モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、
該第1モジュールが、
該外部装置から受け取った書込対象データを該ブリッジモジュール経由で該複数の第2モジュールのうちの2つの第2モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうるアドレッシング情報を生成するアドレス指定手段をそなえて構成されるとともに、
該ブリッジモジュールが、
該第1モジュールから前記書込対象データとともに受け取った前記アドレッシング情報を解析し、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの第2モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの書込先アドレスとを生成するアドレス生成手段と、
前記書込対象データを、前記2つの転送先アドレスに対応する該2つの第2モジュールへ転送した後に各第2モジュールのキャッシュメモリにおける前記書込先アドレスに書き込むように、該ブリッジモジュールから該第2モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴とする、二重書込機能を有する装置。
(付記2) 該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの各キャッシュメモリでの前記書込先アドレスとして、各第2モジュールの該キャッシュメモリ内におけるページアドレスと各ページ内でのオフセットアドレスとを指定することを特徴とする、付記1に記載の二重書込機能を有する装置。
(付記3) 該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの前記2つの転送先アドレスとして、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの第2モジュールを特定しうる特定情報を指定することを特徴とする、付記2に記載の二重書込機能を有する装置。
(付記4) 該インターフェイスバスがPCI(Peripheral Component Interconnect)バスであり、
前記特定情報として、該2つの第2モジュールのPCIバスを特定する番号が指定されることを特徴とする、付記3に記載の二重書込機能を有する装置。
(付記5) 各第2モジュールが、当該第2モジュールとミラー関係にある第2モジュールに関する情報を管理するとともに、当該第2モジュールにおけるキャッシュメモリ内のマスタ領域アドレスと、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域アドレスとの対応関係を管理する管理手段を有しており、
該第1モジュールにおける該アドレス指定手段が、該2つの第2モジュールのうちの一方の第2モジュールにおける該管理手段から取得した情報に基づいて、前記アドレッシング情報を生成することを特徴とする、付記1〜付記4のいずれか一項に記載の二重書込機能を有する装置。
(付記6) 各第2モジュールが、該ブリッジモジュール経由で該第1モジュールへ読み出されるべき読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、付記5に記載の二重書込機能を有する装置。
(付記7) 外部装置とのインターフェイスを制御する第1モジュールと、キャッシュメモリを有する複数の第2モジュールと、インターフェイスバスを介して該第1モジュールおよび該第2モジュールをそれぞれ接続されこれらの該第1モジュールおよび該第2モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、該第1モジュールが該外部装置から受け取った書込対象データを該ブリッジモジュール経由で該複数の第2モジュールのうちの2つの第2モジュールにおけるキャッシュメモリに書き込む二重書込機能を有する装置であって、
各第2モジュールが、当該第2モジュールとミラー関係にある第2モジュールに関する情報を管理するとともに、当該第2モジュールにおけるキャッシュメモリ内のマスタ領域アドレスと、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域アドレスとの対応関係を管理する管理手段を有していることを特徴とする、二重書込機能を有する装置。
(付記8) 各第2モジュールが、該ブリッジモジュール経由で該第1モジュールへ読み出されるべき読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、付記7に記載の二重書込機能を有する装置。
(付記9) ディスク装置とホストとの間にそなえられ該ホストの該ディスク装置に対するアクセスを制御するストレージ制御装置であって、
該ディスク装置とのインターフェイスを制御するディスクインターフェイスモジュールと、
該ホストとのインターフェイスを制御するホストインターフェイスモジュールと、
キャッシュメモリを有し本装置全体を統括的に管理する複数の管理モジュールと、
インターフェイスバスを介して該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールをそれぞれ接続されこれらの該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、
該ホストインターフェイスモジュールが、
該ホストから受け取った書込対象データを該ブリッジモジュール経由で該複数の管理モジュールのうちの2つの管理モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうるアドレッシング情報を生成するアドレス指定手段をそなえて構成されるとともに、
該ブリッジモジュールが、
該ホストインターフェイスモジュールから前記書込対象データとともに受け取った前記アドレッシング情報を解析し、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの管理モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの書込先アドレスとを生成するアドレス生成手段と、
前記書込対象データを、前記2つの転送先アドレスに対応する該2つの管理モジュールへ転送した後に各管理モジュールのキャッシュメモリにおける前記書込先アドレスに書き込むように、該ブリッジモジュールから該管理モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴とする、ストレージ制御装置。
(付記10) 該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの各キャッシュメモリでの前記書込先アドレスとして、各管理モジュールの該キャッシュメモリ内におけるページアドレスと各ページ内でのオフセットアドレスとを指定することを特徴とする、付記9に記載のストレージ制御装置。
(付記11) 該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの前記2つの転送先アドレスとして、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの管理モジュールを特定しうる特定情報を指定することを特徴とする、付記10に記載のストレージ制御装置。
(付記12) 該インターフェイスバスがPCI(Peripheral Component Interconnect)バスであり、
前記特定情報として、該2つの管理モジュールのPCIバスを特定する番号が指定されることを特徴とする、付記11に記載のストレージ制御装置。
(付記13) 各管理モジュールが、当該管理モジュールとミラー関係にある管理モジュールに関する情報を管理するとともに、当該管理モジュールにおけるキャッシュメモリ内のマスタ領域アドレスと、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域アドレスとの対応関係を管理する管理手段を有しており、
該ホストインターフェイスモジュールにおける該アドレス指定手段が、該2つの管理モジュールのうちの一方の管理モジュールにおける該管理手段から取得した情報に基づいて、前記アドレッシング情報を生成することを特徴とする、付記9〜付記12のいずれか一項に記載のストレージ制御装置。
(付記14) 各管理モジュールが、該ディスク装置から該ディスクインターフェイスモジュールおよび該ブリッジモジュール経由で読み出された読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、付記13に記載のストレージ制御装置。
(付記15) ディスク装置とホストとの間にそなえられ該ホストの該ディスク装置に対するアクセスを制御すべく、該ディスク装置とのインターフェイスを制御するディスクインターフェイスモジュールと、該ホストとのインターフェイスを制御するホストインターフェイスモジュールと、本装置全体を統括的に管理する管理モジュールと、インターフェイスバスを介して該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールをそれぞれ接続されこれらの該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえるとともに、該ホストインターフェイスモジュールが該ホストから受け取った書込対象データを該ブリッジモジュール経由で該複数の管理モジュールのうちの2つの管理モジュールにおけるキャッシュメモリに書き込むストレージ制御装置であって、
各管理モジュールが、当該管理モジュールとミラー関係にある管理モジュールに関する情報を管理するとともに、当該管理モジュールにおけるキャッシュメモリ内のマスタ領域アドレスと、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域アドレスとの対応関係を管理する管理手段を有していることを特徴とする、ストレージ制御装置。
(付記16) 各管理モジュールが、該ディスク装置から該ディスクインターフェイスモジュールおよび該ブリッジモジュール経由で読み出された読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、付記15に記載のストレージ制御装置。
以上のように、本発明によれば、ホストインターフェイスモジュールからブリッジモジュールへのデータ転送を1回だけ行なえば、書込対象データが、標準バスよりも転送速度の速いブリッジモジュールを通じて2つのキャッシュメモリに転送されて二重に書き込まれ、キャッシュメモリへの二重書込をより高速に行なえ、処理性能を大幅に向上させることができる。
従って、本発明は、例えばホストの物理デバイス(磁気ディスク装置等)に対するアクセスを制御するストレージ制御装置のごとき、データの二重書込機能を有する装置に用いて好適であり、その有用性は極めて高いものと考えられる。
本発明の一実施形態としてのストレージ装置(ストレージ制御装置)の最小基本構成を示すブロック図である。 図1に示すストレージ制御装置(ホストインターフェイスモジュール)において生成されるアドレッシング情報のフォーマットを示す図である。 本実施形態のキャッシュメモリの構成を示す図である。 本実施形態のキャッシュメモリにおけるマスタ領域(ローカル領域)とミラー領域との対応関係を示す図である。 本実施形態におけるキャッシュメモリの管理動作の一例を説明するための図である。 本発明の一実施形態としてのストレージ装置(ストレージ制御装置)の具体的な構成例を示すブロック図である。 図6に示すストレージ制御装置におけるブリッジモジュールの具体的な要部構成例を示すブロック図である。 図6および図7に示すストレージ制御装置において、ホストインターフェイスモジュールで生成されるアドレッシング情報のフォーマットと同アドレッシング情報からPCIブリッジモジュールで生成されるアドレス情報のフォーマットとを示す図である。
符号の説明
1 ストレージ装置
2 ディスクユニット(ディスク装置,物理デバイス)
3 ストレージ制御装置
4 ホスト(外部装置)
10 ディスクインターフェイスモジュール
20 ホストインターフェイスモジュール(第1モジュール)
21 アドレス指定手段
30 管理モジュール(第2モジュール)
31 キャッシュメモリ
32 管理手段(キャッシュ管理ファームウェア)
40 PCIブリッジモジュール(ブリッジモジュール)
41 アドレス生成手段
42 データ転送制御手段
43 バス制御機構
44 アドレス解析/変換機構(アドレス生成手段)
45 内部転送制御機構(データ転送制御手段)
46,47 バッファ
48 転送指示機構(データ転送制御手段)
49 バス制御機構
50 ファイバチャネルインターフェイスバス
51,52,53 PCIバス(インターフェイスバス)
54 ディスクインターフェイスバス

Claims (5)

  1. 外部装置とのインターフェイスを制御する第1モジュールと、
    キャッシュメモリを有する複数の第2モジュールと、
    インターフェイスバスを介して該第1モジュールおよび該第2モジュールをそれぞれ接続されこれらの該第1モジュールおよび該第2モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、
    各第2モジュールが、当該第2モジュールとミラー関係にある第2モジュールに関する情報を管理するとともに、当該第2モジュールにおけるキャッシュメモリ内の所定のアドレスから開始するマスタ領域アドレスと、当該第2モジュールとミラー関係にある第2モジュールから取得した当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内の該マスタ領域アドレスの開始位置とは異なったアドレス位置から開始するミラー領域アドレスとの対応関係を管理することにより、当該第2モジュール側から、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリのミラー領域の使用/未使用を管理する管理手段を有しており、
    該第1モジュールが、
    該外部装置から受け取った書込対象データを該ブリッジモジュール経由で該複数の第2モジュールのうちの2つの第2モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうる単一のアドレッシング情報を、該2つのミラー関係にある第2モジュールのうちの一方の第2モジュールにおける該管理手段から取得した情報に基づいて生成するアドレス指定手段をそなえて構成されるとともに、
    該ブリッジモジュールが、
    該第1モジュールから前記書込対象データとともに受け取った前記単一のアドレッシング情報を解析し、前記単一のアドレッシング情報から、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの第2モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの異なった2つの書込先アドレスとを生成するアドレス生成手段と、
    前記書込対象データを、前記2つの転送先アドレスに対応する該2つの第2モジュールへ転送した後に各第2モジュールのキャッシュメモリにおける前記書込先アドレスに同時に書き込むように、該ブリッジモジュールから該第2モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴とする、二重書込機能を有する装置。
  2. 各第2モジュールが、該ブリッジモジュール経由で該第1モジュールへ読み出されるべき読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該第2モジュールとミラー関係にある第2モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、請求項1に記載の二重書込機能を有する装置。
  3. ディスク装置とホストとの間にそなえられ該ホストの該ディスク装置に対するアクセスを制御するストレージ制御装置であって、
    該ディスク装置とのインターフェイスを制御するディスクインターフェイスモジュールと、
    該ホストとのインターフェイスを制御するホストインターフェイスモジュールと、
    キャッシュメモリを有し本装置全体を統括的に管理する複数の管理モジュールと、
    インターフェイスバスを介して該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールをそれぞれ接続されこれらの該ディスクインターフェイスモジュール,該ホストインターフェイスモジュールおよび該管理モジュールの相互間をデータ転送可能に接続するブリッジモジュールとをそなえ、
    各管理モジュールが、当該管理モジュールとミラー関係にある管理モジュールに関する情報を管理するとともに、当該管理モジュールにおけるキャッシュメモリ内の所定のアドレスから開始するマスタ領域アドレスと、当該管理モジュールとミラー関係にある管理モジュールから取得した当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内の該マスタ領域アドレスの開始位置とは異なったアドレス位置から開始するミラー領域アドレスとの対応関係を管理することにより、当該管理モジュール側から、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリのミラー領域の使用/未使用を管理する管理手段を有しており、
    該ホストインターフェイスモジュールが、
    該ホストから受け取った書込対象データを該ブリッジモジュール経由で該複数の管理モジュールのうちの2つの管理モジュールにおけるキャッシュメモリに書き込むべく2つの書込先を指定しうる単一のアドレッシング情報を、該2つのミラー関係にある管理モジュールのうちの一方の管理モジュールにおける該管理手段から取得した情報に基づいて生成するアドレス指定手段をそなえて構成されるとともに、
    該ブリッジモジュールが、
    該ホストインターフェイスモジュールから前記書込対象データとともに受け取った前記単一のアドレッシング情報を解析し、前記単一のアドレシング情報から、前記書込対象データを実際に書き込むべきキャッシュメモリを有する該2つの管理モジュールを指定する2つの転送先アドレスと各キャッシュメモリでの異なった2つの書込先アドレスとを生成するアドレス生成手段と、
    前記書込対象データを、前記2つの転送先アドレスに対応する該2つの管理モジュールへ転送した後に各管理モジュールのキャッシュメモリにおける前記書込先アドレスに同時に書き込むように、該ブリッジモジュールから該管理モジュールへのデータ転送を制御するデータ転送制御手段とをそなえて構成されていることを特徴とする、ストレージ制御装置。
  4. 該アドレス指定手段が、前記アドレッシング情報において、前記書込対象データの各キャッシュメモリでの前記書込先アドレスとして、各管理モジュールの該キャッシュメモリ内におけるページアドレスと各ページ内でのオフセットアドレスとを指定することを特徴とする、請求項3に記載のストレージ制御装置。
  5. 各管理モジュールが、該ディスク装置から該ディスクインターフェイスモジュールおよび該ブリッジモジュール経由で読み出された読出対象データをキャッシュメモリに一時的に保存する際に当該キャッシュメモリのマスタ領域の容量が不足している場合、該管理手段による管理状況に基づいて、当該管理モジュールとミラー関係にある管理モジュールにおけるキャッシュメモリ内のミラー領域に、前記読出対象データを保存させることを特徴とする、請求項3または請求項4に記載のストレージ制御装置。
JP2003298206A 2003-08-22 2003-08-22 二重書込機能を有する装置およびストレージ制御装置 Expired - Fee Related JP4468666B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003298206A JP4468666B2 (ja) 2003-08-22 2003-08-22 二重書込機能を有する装置およびストレージ制御装置
US10/785,118 US20050044300A1 (en) 2003-08-22 2004-02-25 Apparatus with dual writing function, and storage control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003298206A JP4468666B2 (ja) 2003-08-22 2003-08-22 二重書込機能を有する装置およびストレージ制御装置

Publications (2)

Publication Number Publication Date
JP2005070995A JP2005070995A (ja) 2005-03-17
JP4468666B2 true JP4468666B2 (ja) 2010-05-26

Family

ID=34191201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003298206A Expired - Fee Related JP4468666B2 (ja) 2003-08-22 2003-08-22 二重書込機能を有する装置およびストレージ制御装置

Country Status (2)

Country Link
US (1) US20050044300A1 (ja)
JP (1) JP4468666B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP5147586B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 ストレージ装置及びその制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937174A (en) * 1996-06-28 1999-08-10 Lsi Logic Corporation Scalable hierarchial memory structure for high data bandwidth raid applications
US6279078B1 (en) * 1996-06-28 2001-08-21 Compaq Computer Corporation Apparatus and method for synchronizing a cache mode in a dual controller, dual cache memory system operating in a plurality of cache modes
JP3657428B2 (ja) * 1998-04-27 2005-06-08 株式会社日立製作所 記憶制御装置
JP4392877B2 (ja) * 1998-09-18 2010-01-06 株式会社日立製作所 ディスクアレイ制御装置
JP3716126B2 (ja) * 1999-03-17 2005-11-16 株式会社日立製作所 ディスクアレイ制御装置及びディスクアレイ
JP2001344187A (ja) * 2000-05-30 2001-12-14 Matsushita Electric Ind Co Ltd ホストインタフェース回路
US6807611B2 (en) * 2002-04-05 2004-10-19 International Business Machine Corporation High speed selective mirroring of cached data
US7003620B2 (en) * 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US6917967B2 (en) * 2002-12-13 2005-07-12 Sun Microsystems, Inc. System and method for implementing shared memory regions in distributed shared memory systems

Also Published As

Publication number Publication date
US20050044300A1 (en) 2005-02-24
JP2005070995A (ja) 2005-03-17

Similar Documents

Publication Publication Date Title
JP4477906B2 (ja) ストレージシステム
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
KR100673013B1 (ko) 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
JP6021759B2 (ja) メモリシステムおよび情報処理装置
JP6406707B2 (ja) 半導体記憶装置
JP2000067574A (ja) 半導体記憶装置
WO2010093114A1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
JP2012221038A (ja) メモリシステム
JPH07152491A (ja) 仮想ディスクシステム
US20070174578A1 (en) Method of controlling card-shaped memory device
JP3688835B2 (ja) データ記憶システム及び同システムに適用するデータ転送方法
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
JP3690295B2 (ja) ディスクアレイ制御装置
JP2014203233A (ja) ストレージシステム及びストレージシステムにおいてデータを更新する方法
US11550504B2 (en) System including an application processor and a data storage device providing data
JP4468666B2 (ja) 二重書込機能を有する装置およびストレージ制御装置
JP4373450B2 (ja) Raid制御装置及びその制御方法
US20060031605A1 (en) Apparatus, system, and method for distributed management in a storage system
CN100472422C (zh) 具有双重写入功能的装置和存储控制装置
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4983133B2 (ja) 入出力制御装置およびその制御方法、並びにプログラム
TW594690B (en) Method for managing defects of optical disk
EP1662400B1 (en) Apparatus with dual writing function, and storage control apparatus
JP4514222B2 (ja) データ記憶システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090820

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100225

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees