JP3798627B2 - 複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ - Google Patents

複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ Download PDF

Info

Publication number
JP3798627B2
JP3798627B2 JP2000595246A JP2000595246A JP3798627B2 JP 3798627 B2 JP3798627 B2 JP 3798627B2 JP 2000595246 A JP2000595246 A JP 2000595246A JP 2000595246 A JP2000595246 A JP 2000595246A JP 3798627 B2 JP3798627 B2 JP 3798627B2
Authority
JP
Japan
Prior art keywords
data
cache
controller
read
write
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
JP2000595246A
Other languages
English (en)
Other versions
JP2004538532A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004538532A publication Critical patent/JP2004538532A/ja
Application granted granted Critical
Publication of JP3798627B2 publication Critical patent/JP3798627B2/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
    • 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/2089Redundant storage control functionality
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、全般的にはRAIDシステムでのディスクの読取りおよび書込みのキャッシングの方法に関し、具体的には、RAIDシステムでディスク読取りおよびディスク書込みをキャッシングするのに使用される複数のキャッシュのコヒーレンシを維持する方法に関する。
【0002】
【従来の技術】
図1に、通常の複数コントローラRAIDシステム100(RAIDは、「Redundant Array of Independent Disks」の頭字語である)のブロック図を示す。各ホスト・コンピュータ102は、Fibre ChannelまたはSCSIバス106のいずれかを介し、ホスト・バス・アダプタ(HBA)を介してめいめいのRAIDコントローラ104に接続される。各RAIDコントローラ104は、RAIDコントローラ104がバックエンドのFibre ChannelまたはSCSIディスク・バス110を介して接続されたストレージ・デバイス108の共用セットに向けられた、めいめいのホスト102からの読取り要求および書込み要求を調整する。コントローラ104は、同一のストレージ・デバイス108を使用し、その結果、各ホスト・コンピュータ102が、同一のデータにアクセスできるようになる。図1には、2つのコントローラだけが図示されているが、図示のアーキテクチャは、N個のコントローラのシステムに拡張可能である(ここで、Nは、3以上の整数である)。コントローラ104は、キャッシュ・メモリ112を有し、このキャッシュ・メモリ112に、ホスト102によって最も最近に読み書きされたデータが一時的に保管される。これらのキャッシュ・メモリ112の動作を、これから図2に関して説明する。
【0003】
図2は、キャッシュ112のブロック図であり、このキャッシュ112には、読取りキャッシュ114、書込みキャッシュ116、および書込みミラー・キャッシュ118が含まれる。コントローラ104i(ここで、「i」は任意の整数を表す)が、ホスト102からの書込みデータ103(図1)を、その書込みキャッシュ116iに置き、ホスト102によってコントローラ104から読み取られたデータ105(図1)を、その読取りキャッシュ114iに置く。各書込みミラー・キャッシュ118iでは、別のコントローラの書込みキャッシュ116jの内容107jが複製される。書込みミラー・キャッシュ118iは、コントローラ104jによって、それが書込み動作を開始する時の付近に書き込まれる。書込みミラー・キャッシュ118を用いると、書込みデータ107の複製コピーを第2コントローラに保管することができ、その結果、どちらかのコントローラ104の障害が、データの消失をもたらさなくなる。
【0004】
書込みミラー・キャッシュ118のデータ107は、バックエンドのSCSIまたはFibre Channelディスク・バス110を介してコントローラの間で転送される。ミラーリングされたキャッシュ118のデータは、書込みに使用されるコントローラ104が障害を発生した場合に限って使用され、その場合には、ミラーリングされたデータが、保管のためにディスク108に転送される。
【0005】
【発明が解決しようとする課題】
この方法に関する問題は、キャッシュが同期化されない可能性があることであり、これによって、ホストが、読取り動作の次に一貫性のないデータを受け取ることになる可能性がある。たとえば、ホスト・コントローラ104−1が、ディスク・デバイス108への書込みを実行し、第2のホスト・システム102−1が、同一のデータすなわち、第2のコントローラ104−2の読取りキャッシュ114−2に既に存在するコピーの読取りを試みる場合に、第2のホストは、読取りキャッシュがコントローラにまたがって更新されないので、状態データを受け取るはずである。さらに、すべての読取りデータをコントローラにまたがってコピーすることは、性能を大きく損なうはずである。この問題は、クラスタリング環境の人気が高まるにつれてますます重要になる。
【0006】
【課題を解決するための手段】
要約すると、本発明は、複数のRAIDコントローラにまたがってキャッシュ・コヒーレンシを確実にする方法である。本発明では、書込みキャッシュと読取りキャッシュの両方が同期化されるが、従来技術の実施形態では、書込みキャッシュ・データだけが同期化される。
【0007】
具体的に言うと、本発明は、コントローラ間で読取りキャッシュデータをコピーする必要なしに、読取りキャッシュを同期化する。その結果、本発明は、コントローラ間データ転送に過度の帯域幅を使用せずに、完全なキャッシュ・コヒーレンシを提供する。
【0008】
コントローラが、お互いおよびストレージ・デバイスの組に1つまたは複数のバックエンド・チャネルを介して接続される、関連する読取りキャッシュ、書込みキャッシュ、およびミラー・キャッシュを有する複数のRAIDコントローラと共に使用される本発明の一実施形態には、以下のステップが含まれる。
1.特定のアドレスにデータを書き込むコマンドに応答して、第1コントローラが、書込み動作を開始し、特定のデータを、1つまたは複数のバックエンド・チャネルを介して1つまたは複数の他のコントローラのミラー・キャッシュにコピーするステップ。
2.その後、第1コントローラが、書込み動作が完了したことを確認するステップ。
3.特定のアドレスのデータを読み取るコマンドに応答して、他のコントローラの1つである第2コントローラが、
a.そのミラー・キャッシュ内でデータについて検査し、データがそこにある場合に、そのデータをホスト・コンピュータに返し、
b.書込みキャッシュ内でデータについて検査し、データがそこにある場合に、そのデータをホストに返し、
c.読取りキャッシュ内でデータについて検査し、データがそこにある場合に、そのデータをホストに返し、
d.データがどのキャッシュにもない場合に、ストレージ・デバイスからデータを得、そのデータをその読取りキャッシュに置き、そのデータをホストに返す
ステップ。
【0009】
一実施形態では、バックエンド・チャネルを、SCSIバスまたはFibre Channelバスの任意の組み合わせとすることができる。もう1つの実施形態では、ストレージ・デバイスがディスクである。どの実施形態でも、コントローラが、その関連する読取りキャッシュ、書込みキャッシュ、および書込みミラー・キャッシュとのまたはそれが読取りコマンドおよび書込みコマンドをそのために実行するホストとの1対1関係を有する必要はない。
【0010】
本発明には、前の方法を実施するようにプログラムされたRAIDコントローラを組み込んだRAIDシステム、ならびに、発明的方法を組み込んだ、有形の記録媒体に記録されたコンピュータ・プログラムおよびコンピュータ・プログラム製品も含まれる。
【0011】
【発明の実施の形態】
図3に、本発明が実施されるコンピュータ・システム100のブロック図を示す。コンピュータ・システム100には、図1に関して図示し、説明したものと同一の多数の構成要素が含まれる。具体的に言うと、コンピュータ・システム100には、それぞれがRAID(Redundant Arrays of Independent Disks)コントローラ104iおよび104jに結合される、少なくとも2つのホスト・コンピュータ102iおよび102jが含まれる。RAIDコントローラ104は、ホスト102に、共用されるストレージ・デバイス108への読取り/書込みアクセスを提供し、共用されるストレージ・デバイス108は、1つまたは複数のバックエンド・ディスク・バス(以下ではバックエンド・バスと呼称する)110を介してコントローラ104に結合される。異なる実施形態では、バックエンド・バス110を、Fibre Channelバス、SCSIバス、または他のタイプの高速バス(たとえば、イーサネット(R)、IPI、HIPPI、Fire-Wire、またはIDE)とすることができる。異なる実施形態では、共用されるストレージ・デバイス108が、磁気ディスク・ドライブ、磁気テープ・ドライブ、光ディスク、または別のタイプの不揮発性ストレージ(たとえばRAMDISKドライブ)である。
【0012】
各RAIDコントローラ104には、プロセッサ200およびメモリ202が含まれる。メモリ202は、半導体ランダム・アクセス・メモリ(RAM)などの高速メモリ、読取り専用メモリ(ROM)または消去可能読取り専用メモリEPROMなどの高速不揮発性メモリ、およびハード・ディスクなどの低速磁気メモリの任意の組み合わせとすることができる。メモリ202には、読取りキャッシュ114、書込みキャッシュ116、および書込みミラー・キャッシュ118(以下では「ミラー・キャッシュ」と呼称する)が含まれる。メモリ202には、コントローラ・ルーチン204も含まれ、コントローラ・ルーチン204は、プロセッサ200によって実行され、とりわけ、ホスト・コンピュータ102によって発行される読取りコマンド126および書込みコマンド128に応答するコントローラ104の動作を決定するプログラムである。一実施形態では、読取りコマンド126で、ストレージ・デバイス108から読み取られるデータ140のアドレス132およびサイズ134が指定され、書込みコマンド128に、ストレージ・デバイス108の特定のアドレス136に書き込まれるデータ138が含まれる。
【0013】
コントローラ・ルーチン204には、読取りプログラム208および書込みプログラム206が含まれるが、これに制限はされない。一実施形態では、コントローラ・ルーチン204が、ファームウェアであり、これは、これらが、不揮発性メモリに保管され、したがって、コントローラ104が電源投入されると同時に実行に使用可能になることを意味する。コントローラ・ルーチン204は、ハード・ディスク(図示せず)または他の不揮発性メモリに保管され、オペレーティング・システム(図示せず)の制御下でプロセッサ200による実行のためにRAMまたは他の高速メモリにロードされる、通常のソフトウェアとして実施することもできる。読取りプログラム208および書込みプログラム206は、本発明の原理を実施するが、これらを、それぞれ図4および図5に関してこれから説明する。
【0014】
図4に、書込みプログラム206の制御下でコントローラ104iによって実行される選択されたステップの流れ図を示す。通常の形で、ホスト書込みコマンド128に応答して(ステップ302)、コントローラ104iが、指定された書込みデータ138を共用ストレージ・デバイス108およびその書込みキャッシュ116iに書き込む(304)。本発明によれば、コントローラ104iは、指定されたデータ138を、他のコントローラ104jのそれぞれのミラー・キャッシュ118jにもコピーする(306)。コントローラ104iは、特殊なミラー・キャッシュ書込みコマンドを使用して、バックエンド・バス110を介して書込みデータ138をブロードキャストすることによって、この「ミラー・コピー」動作を達成する。最後に、コントローラ104iは、書込み動作の完了を確認する(308)。完了を確認できない場合には、コントローラ104iは、前に書込みキャッシュ116iに保管した書込みデータ138を使用して、書込み動作をもう一度試みる。ミラー・コピー動作306の一実施形態を、図6に関して説明する。
【0015】
図6に、送出側コントローラ104iおよび1つまたは複数の受取側コントローラ104jによって実行することができるミラー・コピー動作306の一実施形態のシーケンス図を示す。この図には、特殊なミラー・キャッシュ書込みコマンドが、SCSIプロトコル仕様によって定義される「ベンダ・ユニーク」コマンド・フォーマットを使用して実施される、コントローラ104によって実行されるアクションおよび交換されるメッセージのシーケンスが示されている。この実施形態では、送出側コントローラ104iが、キャッシングされるデータ402を、キャッシュ・メタデータ404(キャッシュ・データのアドレス404aおよびサイズ404bに関する情報)をバンドルし、このデータをベンダ・ユニーク・コマンド406のデータ・フェーズに埋め込む(6.1)。ベンダ・ユニーク・コマンドは、当技術分野で既知であり、一般に、コントローラの独自の特性(たとえば、SCSI仕様またはFibre channel仕様で定義されておらず、したがって、標準のSCSIまたはFibre Channelのコマンドまたはプロトコルを介して使用可能でない特性)を判定でき、設定できるようにし、制御されるデバイスへの他の特殊な動作を可能にするコマンドである(ベンダ・ユニーク・コマンドに関する追加の背景情報は、参照によって本明細書に組み込まれるSCSI−IIIプロトコル仕様書、SCSI-3 Primary Commands (SPC) {Date: 1997/03/28, Rev. 11a, Status: Published, Project 0995-D} X3.301:1997に記載されている)。送出側104iは、キャッシュ・データ402およびメタ・データ404の受取側コントローラ104jへの転送を、ベンダ・ユニーク・コマンド406を使用して開始する(6.2)。受取側104jは、ベンダ・ユニーク・コマンド406を理解し、データ402および404の構造の先見的知識を有するように構成されているが、データを受け取り(6.3)、そのデータを、受取側の書込みミラー・キャッシュ118内の正しい位置に転送する(6.4)。その後、受取側104jは、通常のSCSI機構を介してコマンド406の完了を肯定応答する(6.5)。適当に構成されたコントローラ104以外のデバイスへのコマンド406の送出は、そのデバイスのエラー状態をもたらす。この方法では、SCSIプロトコルで「ブロードキャスト」方法が定義されていないので、コマンド406が、単一の受信側に送られる。複数の受信側がある情況では、コマンドが、すべての受信側に独立に送られる。複数のバックエンド(ディスク側)チャネルがコントローラに接続され、コマンドを異なるバック・エンド・チャネル上で各受信側に送ることができるので、これを同時に行うことができる。
【0016】
この書込み方法の結果として、書込みコマンド128の実行の次に、新しい書込みデータ138のコピーが、書込みコマンド128を実行しなかったすべてのコントローラ104jのミラー・キャッシュ118j内に存在する。ミラーリングされたデータは、コントローラ104jによって開始される後続の読取り動作によって使用可能であり、新しいデータ138について発行される読取りコマンド126で、そのデータの最新版140が返されることが保証されるが、従来技術の方法ではこうならない。これを可能にする本発明の読取り方法を、図5に関して説明する。
【0017】
図5に、読取りプログラム208の制御下でコントローラ104jによって実行される選択されたステップの流れ図を示す。本発明によれば、コントローラ104jは、要求された読取りデータの最新版をホスト102jに返すことが保証される形でホスト読取りコマンド126を実行する。具体的に言うと、読取りコマンド126に応答して(320)、コントローラ104jは、まず、指定された読取りデータ140(すなわち、アドレス132にあるサイズ134のデータ)についてそのミラー・キャッシュ118jを調べる(322)。読取りデータ140がミラー・キャッシュ118jにある場合には(322−Y)、コントローラは、そのデータをホスト102jに返す(324)。読取りデータ140がミラー・キャッシュにない場合には(322−N)、コントローラ104jは、その書込みキャッシュ116iを検査する(326)。読取りデータ140がその書込みキャッシュ116jにある場合には(326−Y)、コントローラ104jは、そのデータをホスト102jに返す(328)。読取りデータ140がミラー・キャッシュにない場合には(322−N)、コントローラは、その読取りキャッシュ114iを検査する(330)。読取りデータ140がその読取りキャッシュ114jにある場合には(330−Y)、コントローラ104jは、そのデータをホスト102jに返す(332)。読取りデータ140がミラー・キャッシュにない場合には(330−N)、コントローラは、要求された読取りデータをストレージ・デバイス108から返し(334)、後続の使用のために同一のデータをその読取りキャッシュ116iに保管する(334)(注:一般に、コントローラ104は、ホストに返すデータのすべてを、その読取りキャッシュ114に書き込む)。
【0018】
読取りコマンドに応答して、まず書込みミラー・キャッシュを検査することによって、この実施形態では、要求されたデータの前の版がコントローラの書込みキャッシュまたは読取りキャッシュに既に存在する場合であっても、コントローラ104が要求された読取りデータの最新版をホスト102に返すことが保証される。同様に、要求されたデータがミラー・キャッシュ118にない場合に、その読取りキャッシュ114ではなく、要求されたデータをその書込みキャッシュ116から優先的に返すことをコントローラ104に要求することによって、この実施形態では、コントローラ104が、それが更新したデータの最新版を返すことが保証される。最後に、コントローラ104が、他の2つの選択肢で失敗した時にその読取りキャッシュ114から要求されたデータを供給するようにすることによって、本明細書に記載の実施形態では、コントローラ104によって既に読み取られたデータが、最小の遅延でホスト102に返されることが保証される。
【0019】
したがって、本発明では、複数のホストおよびRAIDコントローラを含むRAIDシステムでキャッシュ・コヒーレンシが維持される。図3に示した一実施形態では、この長所が、コントローラ104の間の追加の高帯域幅データ転送を必要とせずにもたらされる。これが可能であるのは、書込み動作に使用されないコントローラ104が、単に、書込みデータ138がバックエンド・バスを介して共用ストレージ・デバイス108に書き込まれる際に、そのデータを受け取るからである。
【0020】
要約すると、複数のRAIDコントローラとストレージ・デバイスの組とを有するRAIDシステム内で使用される一実施形態で、ホストの読取りおよび書込みの処理に、
(1)第1データ138をストレージ・デバイス108に書き込む書込みコマンド128に応答して、第1コントローラ104iが、第1データ138をストレージ・デバイス108に書き込み、第1データを1つまたは複数の他のコントローラ104jに関連するミラー・キャッシュ118jにコピーすることと、
(2)第2データ134をストレージ・デバイス108から読み取る読取りコマンド126に応答して、第2コントローラ104が、ミラー・キャッシュの関連するミラー・キャッシュ内で第2データ134に関して検査し、データ134が関連するミラー・キャッシュにある場合に、読取りコマンド126を発行したホスト・コンピュータ102に第2データを返すことと
が含まれる。
【0021】
もう1つの代替実施形態では、第1コントローラ104iが、コントローラ104およびストレージ・デバイス108が結合されたバックエンド・バス110上で関連するミラー・キャッシュに第1データ138をブロードキャストすることによって、第1データ138を関連するミラー・キャッシュ118jにコピーする。関連する実施形態では、ブロードキャストのステップが、第1データ138をストレージ・デバイス108に書き込むステップに最小限を超えないオーバーヘッドが追加されるように実施される。もう1つの関連する実施形態では、この最小限のオーバーヘッドが、ブロードキャストのステップおよび書込みのステップを同時に実行することによってもたらされる。
【0022】
RAIDコントローラ104が、関連する読取りキャッシュ114および関連する書込みキャッシュ116を有する実施形態では、ホストの読取りおよび書込みの処理に、上で概要を示した2つのステップに加えて、以下のステップが含まれる。
(3)第1データ138をストレージ・デバイス108に書き込む書込みコマンド128に応答して、第1コントローラ104iが、第1データをその関連する書込みキャッシュ116iにも書き込むステップと、
(4)第2データ134をストレージ・デバイス108から読み取る読取りコマンド126に応答して、第2コントローラ104が、
(a)関連する書込みキャッシュ116内で第2データ134に関して検査し、データがある場合に、第2データ134をホスト102に返し、
(b)読取りキャッシュ114内で第2データ134に関して検査し、データがある場合に、第2データ134をホスト102に返し、
(c)第2データ134が関連するキャッシュ116および118にない場合に、第2データをストレージ・デバイス108から取り出し、読取りコマンドを発行したホスト・コンピュータ102に第2データ134を返す
ステップ。
【0023】
これから、本発明の選択された特定の実施形態を強調することによって、本発明の諸態様を再検討する。本発明の第1の態様では、本発明は、複数のRAIDコントローラとストレージ・デバイスの組とを有するRAIDシステム内で使用される同期化方法であって、第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記コントローラの第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、上記第1データを1つまたは複数の他のコントローラに関連するミラー・キャッシュにコピーするステップと、第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、第2コントローラが、上記ミラー・キャッシュの関連するミラー・キャッシュ内で上記データに関して検査し、上記データが上記関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すステップとを含む同期化方法を提供する。
【0024】
第2の態様では、この同期化方法が、さらに、上記RAIDコントローラが、関連する読取りキャッシュおよび関連する書込みキャッシュを有することを提供し、上記方法が、さらに、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1コントローラが、上記第1データをその関連する書込みキャッシュにも書き込むことと、第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2コントローラが、上記関連する書込みキャッシュ内で上記第2データに関して検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記読取りキャッシュ内で上記第2データに関して検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記第2データが上記関連するキャッシュにない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すこととを行うこととを含む。
【0025】
第3の態様では、同期化方法が、上記関連するミラー・キャッシュへの上記第1データの上記コピーが、上記コントローラおよび上記ストレージ・デバイスが結合されるバックエンド・バス上での上記関連するミラー・キャッシュへの上記第1データのブロードキャストを含むことを提供する。第4の態様では、同期化方法が、上記第1データの上記ブロードキャストが、上記ストレージ・デバイスへの上記第1データの上記書込みに最小限を超えないオーバーヘッドを追加することを追加的に提供する。第5の態様では、上記第1データの上記ブロードキャストおよび上記書込みが、同時に実行される。第6の態様では、上記バックエンド・バスが、1つまたは複数のFibre Channelバスと、1つまたは複数のSCSIバスとの任意の組合せを含む。第7の態様では、上記ストレージ・デバイスが、磁気ディスクを含む。
【0026】
第8の態様では、同期化方法が、上記関連するミラー・キャッシュへの上記第1データの上記コピーが、上記コントローラおよび上記ストレージ・デバイスが結合されるバックエンド・バス上での上記関連するミラー・キャッシュへの上記第1データの、SCSIベンダ・ユニーク・コマンドを使用する送出を含むことを提供する。
【0027】
第9の態様では、本発明は、ストレージ・デバイスの組へのアクセスを提供する複数のRAIDコントローラを含むRAIDシステム内で使用されるキャッシュ・システムであって、上記コントローラからアクセス可能な複数のミラー・キャッシュと、特定のアドレスにデータを書き込む書込みコマンドを受け取った時に、上記ストレージ・デバイスに上記データを書き込むことのほかに、1つまたは複数の異なるRAIDコントローラの上記ミラー・キャッシュに上記データをコピーするように構成された第1RAIDコントローラとを含み、上記RAIDコントローラのいずれもが、上記特定のアドレスの上記データを読み取る読取りコマンドを受け取った後に、上記ミラー・キャッシュの関連するミラー・キャッシュから上記データを取り出すことをまず試みるように構成される、キャッシュ・システムを提供する。
【0028】
第10の態様では、上記複数のコントローラおよび上記ストレージ・デバイスの組が、バックエンド・バスを介して接続されるように、キャッシュ・システムがさらに定義される。第11の態様では、上記バックエンド・バスが、1つまたは複数のFibre Channelバスと、1つまたは複数のSCSIバスとの任意の組合せを含むように、キャッシュ・システムがさらに定義される。
【0029】
第12の態様では、キャッシュ・システムが、上記コントローラからアクセス可能な複数の書込みキャッシュと、上記コントローラからアクセス可能な複数の読取りキャッシュとをさらに含み、上記特定のアドレスのデータを読み取る読取りコマンドに応答して、上記第2コントローラが、そのミラー・キャッシュ内で上記データについて検査し、上記データがある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記データを返し、その書込みキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、その読取りキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、上記データが上記キャッシュのいずれにもない場合に、上記データを上記ストレージ・デバイスから取り出し、上記データを上記ホストに返す。
【0030】
第13の態様では、上記第1RAIDコントローラが、上記コントローラおよび上記ストレージ・デバイスが結合されるSCSIバス上で伝送されるSCSIベンダ・ユニーク・コマンドを使用して、上記第1データを上記ミラー・キャッシュにコピーするように構成されるように、キャッシュ・システムがさらに定義される。第14の態様では、上記SCSIバスが、バックエンド・バスを含むように、キャッシュ・システムがさらに定義される。
【0031】
第15の態様では、本発明が、さらに、少なくとも第1および第2のコントローラと少なくとも1つのストレージ・デバイスとを含むデータ・ストレージ・システム内で使用される同期化方法であって、第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、上記第1データを上記第2コントローラに関連するミラー・キャッシュにコピーすることと、第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、上記第2コントローラが、上記ミラー・キャッシュの関連するミラー・キャッシュ内で上記データについて検査し、上記データが上記関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すこととを含む、同期化方法を提供する。
【0032】
第16の態様では、同期化方法が、さらに、上記コントローラが、関連する読取りキャッシュおよび関連する書込みキャッシュを有し、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1コントローラが、上記第1データをその関連する書込みキャッシュにも書き込むことと、第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2コントローラが、上記関連する書込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記第2データが上記関連するキャッシュにない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すこととを行うこととをさらに含むことを提供する。
【0033】
第17の態様では、同期化方法が、上記関連するミラー・キャッシュへの上記第1データの上記コピーが、上記コントローラおよび上記ストレージ・デバイスが結合されるバス上での上記関連するミラー・キャッシュへの上記第1データのブロードキャストを含むことを提供する。第18の態様では、この同期化方法が、追加的に、上記第1データの上記ブロードキャストが、上記ストレージ・デバイスへの上記第1データの上記書込みに実質的にオーバーヘッドを追加しないことを提供する。第19の態様では、同期化方法が、さらに、上記第1データの上記ブロードキャストおよび上記書込みが、実質的に同時に実行されることを提供する。第20の態様では、同期化方法が、1つまたは複数のFibre Channelバスと、1つまたは複数のSCSIバスとの任意の組合せを含むバスを使用する。
【0034】
第21の態様では、同期化方法が、磁気ディスク・ドライブ・ストレージ・デバイスと共に使用され、ストレージ・デバイスに、磁気ディスク・ドライブが含まれる。
【0035】
第22の態様では、上記関連するミラー・キャッシュへの上記第1データの上記コピーが、上記コントローラおよび上記ストレージ・デバイスが結合されるバス上での上記関連するミラー・キャッシュへの上記第1データの、SCSIベンダ・ユニーク・コマンドを使用する送出を含むように、同期化方法がさらに定義される。第23の態様では、上記バスが、上記コントローラと上記ストレージ・デバイスとを結合するバックエンド・バスであるように、この同期化方法がさらに定義される。
【0036】
第24の態様では、本発明が、コンピュータ・システムと共に使用されるコンピュータ・プログラムならびにコンピュータ・プログラム製品であって、上記コンピュータ・プログラム製品が、コンピュータ可読記憶媒体およびその中で実施されたコンピュータ・プログラム機構を含み、上記コンピュータ・プログラム機構が、ホスト・コンピュータに接続された複数のコントローラと、データ・ストレージ・システムにグループ化された1つまたは複数のディスク・ストレージ・デバイスとの少なくとも1つに、指定された形で機能するように指示するプログラム・モジュールを含み、上記プログラム・モジュールが、第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記コントローラの第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーすることと、第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、第2コントローラが、上記ミラー・キャッシュの関連するミラー・キャッシュ内で上記データについて検査し、上記データが上記関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すこととを行う命令を含む、コンピュータ・プログラムならびにコンピュータ・プログラム製品も提供する。
【0037】
第25の態様では、上記コンピュータ・プログラム機構およびコンピュータ機構が、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1コントローラが、上記第1データをその関連する書込みキャッシュにも書き込むことと、第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2コントローラが、上記関連する書込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、上記第2データが上記関連するキャッシュにない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すこととを行うこととの命令を含むプログラム・モジュールをさらに含むように、上記コンピュータ・プログラムおよびコンピュータ・プログラム製品がさらに定義される。
【0038】
少数の特定の実施形態に関して本発明を説明してきたが、この説明は、本発明の例証であって、本発明を制限するものと解釈してはならない。請求項によって定義される本発明の真の趣旨および範囲から逸脱しない、さまざまな修正形態を、当業者は思い浮かべることができる。
【0039】
たとえば、どの実施形態であっても、コントローラ104が、関連する読取りキャッシュ114、書込みキャッシュ116、および書込みミラー・キャッシュ118の組とのまたはそれがそのために読取りコマンドおよび書込みコマンドを実行するホスト102との1対1関係を有する必要はない。さらに、各コントローラ104が、関連する読取りキャッシュ114、書込みキャッシュ116、および書込みミラー・キャッシュ118の全数を有する必要はない。そうではなく、本発明に必要なものは、各コントローラ104が、関連する書込みミラー・キャッシュまたは他のすばやくアクセスされるメモリ位置を有し、これに、他のコントローラが、ホスト読取りコマンドに応答する前者のコントローラ104による後続のすばやい取出しのためにホスト書込みデータをコピーすることである。
【図面の簡単な説明】
【図1】 通常の複数コントローラRAIDシステム100(RAIDは、「Redundant Array of Independent Disks」の頭字語である)のブロック図である。
【図2】 読取りキャッシュ114、書込みキャッシュ116、および書込みミラー・キャッシュ118を含むキャッシュ112のブロック図である。
【図3】 本発明が実施されるRAIDコントローラのブロック図である。
【図4】 本発明に従って実施されるRAIDコントローラ書込み方法の流れ図である。
【図5】 本発明に従って実施されるRAIDコントローラ読取り方法の流れ図である。
【図6】 キャッシュ・ミラーリング・システムの一実施形態で送出側および受取側のRAIDコントローラによって実行されるアクションおよび交換されるメッセージを示すシーケンス図である。

Claims (4)

  1. 複数のRAIDコントローラとストレージ・デバイスの組とを含むRAIDシステム内で使用される同期化方法であって、
    第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記コントローラの第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、上記書込みコマンドを実行しなかった1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーすることと、
    第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、第2コントローラが、それ自体の関連するミラー・キャッシュ内で上記データについて検査し、上記第2データがそれ自体の関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すこととを含み、
    上記RAIDコントローラのそれぞれが、前記ミラー・キャッシュと異なる、関連する読取りキャッシュおよび関連する書込みキャッシュを有し、
    第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1コントローラが、上記第1データをそれ自体の関連する書込みキャッシュにも書き込むことと、
    第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2データが上記検査によってその関連するミラー・キャッシュにないとわかったときに、上記第2コントローラが、
    その関連する書込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
    その関連する読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
    上記第2データがその関連する読取りキャッシュ内にない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すことと
    を行うこととを含む
    同期化方法。
  2. ストレージ・デバイスの組へのアクセスを提供する複数のRAIDコントローラを含むRAIDシステム内で使用されるキャッシュ・システムであって、
    上記コントローラからアクセス可能であり、上記コントローラに関連する、複数のミラー・キャッシュ
    を含み、
    第1RAIDコントローラが、データを特定のアドレスに書き込む書込みコマンドを受け取るときに、上記データを上記ストレージ・デバイスに書き込むことのほかに、上記データを少なくとも1つの異なるRAIDコントローラの上記ミラー・キャッシュにコピーするように構成され、
    上記RAIDコントローラのそれぞれが、上記特定のアドレスの上記データを読み取る読取りコマンドを受け取った後に、その関連するミラー・キャッシュ内で上記データの存在についてまず検査し、存在する場合に、上記ストレージ・デバイスの組または他のストレージ手段から上記データを取り出す前に、その関連するミラー・キャッシュから上記データを取り出すように構成され、
    上記ミラー・キャッシュと異なり、上記コントローラからアクセス可能である複数の書込みキャッシュであって、各書込みキャッシュが、上記コントローラの異なる1つに関連する、複数の書込みキャッシュと、
    上記ミラー・キャッシュと異なり、上記コントローラからアクセス可能である複数の読取りキャッシュであって、各読取りキャッシュが、上記コントローラの異なる1つに関連する、複数の読取りキャッシュと、
    をさらに含み、
    上記特定のアドレスのデータを読み取る読取りコマンドに応答して、上記第2コントローラが、
    第1に、その関連するミラー・キャッシュ内で上記データについて検査し、上記データがある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記データを返し、
    第2に、その関連する書込みキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、
    第3に、その関連する読取りキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、
    第4に、上記データが上記ミラー・キャッシュ、上記書込みキャッシュ、または上記読取りキャッシュのいずれにもない場合に、上記データを上記ストレージ・デバイスから取り出し、上記取り出されたデータを上記ホストに返す
    キャッシュ・システム。
  3. コンピュータ・システムと共に使用されるコンピュータ・プログラムであって、上記コンピュータ・プログラムが、
    ホスト・コンピュータに接続された複数のコントローラと、データ・ストレージ・システムにグループ化された1つまたは複数のディスク・ストレージ・デバイスとの少なくとも1つに、指定された形で機能するように指示するプログラム・モジュールを含み、
    上記プログラム・モジュールが、
    第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記コントローラの第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーすることと、
    第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、第2コントローラが、上記ミラー・キャッシュの関連するミラー・キャッシュ内で上記データについて検査し、上記データが上記関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すことと
    上記第1コントローラに、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1データをその関連する書込みキャッシュにも書き込むように指示することと、
    上記第2コントローラに、上記読取りコマンドに応答して、上記ストレージ・デバイスから第2データを読み取るように指示することであって、
    上記関連する書込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
    上記読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
    上記第2データがその関連するキャッシュ内にない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すこととを含む、
    上記第2コントローラに指示することとを含む、
    コンピュータ・プログラム。
  4. 複数のコントローラおよび複数のストレージ・デバイスを有する複数コントローラ・ディスク・ドライブ・ベース・ストレージ・システムのコントローラであって、
    プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記複数のコントローラおよび前記複数のストレージ・デバイスとの結合のための少なくとも1つの通信バスと、
    前記コントローラ間のデータ・コヒーレンシおよび同期を維持する手段であって、
    前記コントローラの第1コントローラによって、第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記第1データを上記ストレージ・デバイスに書き込み、上記書込みコマンドを実行しなかった1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーする手段と、
    第2コントローラによって、第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、それ自体の関連するミラー・キャッシュ内で上記データについて検査し、上記第2データがそれ自体の関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返す手段と
    を含む手段とを含み、
    上記コントローラのそれぞれが、前記ミラー・キャッシュと異なる、関連する読取りキャッシュおよび関連する書き込みキャッシュを有し、
    上記第1コントローラによって、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1データをそれ自体の関連する書き込みキャッシュに書き込む手段と、
    第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2データが上記検査によってその関連するミラー・キャッシュにないことがわかったときに、前記第2コントローラによって、その関連する書き込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返し、その関連する読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返し、上記第2データがその関連する読取りキャッシュにない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返す手段とを含む、
    コントローラ。
JP2000595246A 1999-01-25 2000-01-25 複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ Expired - Fee Related JP3798627B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/236,504 US6321298B1 (en) 1999-01-25 1999-01-25 Full cache coherency across multiple raid controllers
PCT/US2000/001921 WO2000043888A1 (en) 1999-01-25 2000-01-25 Full cache coherency across multiple raid controllers

Publications (2)

Publication Number Publication Date
JP2004538532A JP2004538532A (ja) 2004-12-24
JP3798627B2 true JP3798627B2 (ja) 2006-07-19

Family

ID=22889792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000595246A Expired - Fee Related JP3798627B2 (ja) 1999-01-25 2000-01-25 複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ

Country Status (6)

Country Link
US (1) US6321298B1 (ja)
EP (1) EP1163586A4 (ja)
JP (1) JP3798627B2 (ja)
AU (1) AU2737200A (ja)
TW (1) TW455813B (ja)
WO (1) WO2000043888A1 (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US7810123B1 (en) * 1998-02-18 2010-10-05 Verizon Corporate Services Group Inc. Method and system for interactive multimedia
JP2000231546A (ja) * 1999-02-12 2000-08-22 Univ Hiroshima 共有メモリ
JP2000268006A (ja) * 1999-03-15 2000-09-29 Fuji Xerox Co Ltd マルチプロセッサシステム
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
US6557168B1 (en) * 2000-02-25 2003-04-29 Sun Microsystems, Inc. System and method for minimizing inter-application interference among static synchronized methods
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
WO2002061525A2 (en) * 2000-11-02 2002-08-08 Pirus Networks Tcp/udp acceleration
US7313614B2 (en) * 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
US6745285B2 (en) * 2000-12-18 2004-06-01 Sun Microsystems, Inc. System and method for synchronizing mirrored and striped disk writes
JP4187403B2 (ja) * 2000-12-20 2008-11-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記録システム、データ記録方法およびネットワークシステム
US20020083150A1 (en) * 2000-12-27 2002-06-27 Linden Minnick Accessing information from memory
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7243229B2 (en) * 2001-10-02 2007-07-10 Hitachi, Ltd. Exclusive access control apparatus and method
US6889294B1 (en) 2001-10-29 2005-05-03 Lsi Logic Corporation Virtual shared volume via proxy data transfer
US7107320B2 (en) * 2001-11-02 2006-09-12 Dot Hill Systems Corp. Data mirroring between controllers in an active-active controller pair
US6842829B1 (en) * 2001-12-06 2005-01-11 Lsi Logic Corporation Method and apparatus to manage independent memory systems as a shared volume
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US7136966B2 (en) 2002-03-18 2006-11-14 Lsi Logic Corporation Method and apparatus for using a solid state disk device as a storage controller cache
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7149846B2 (en) * 2002-04-17 2006-12-12 Lsi Logic Corporation RAID protected external secondary memory
US7162587B2 (en) * 2002-05-08 2007-01-09 Hiken Michael S Method and apparatus for recovering redundant cache data of a failed controller and reestablishing redundancy
JP2004021556A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd 記憶制御装置およびその制御方法
GB0214670D0 (en) * 2002-06-26 2002-08-07 Ibm Arrangement and method for update of configuration cache data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US20050166086A1 (en) * 2002-09-20 2005-07-28 Fujitsu Limited Storage control apparatus, storage control method, and computer product
JP4439798B2 (ja) * 2002-10-17 2010-03-24 株式会社日立製作所 ディスクアレイ装置の制御方法、及びディスクアレイ装置
JP2004171437A (ja) * 2002-11-22 2004-06-17 Fujitsu Ltd ストレージ制御装置及びその制御方法
JP2004192105A (ja) * 2002-12-09 2004-07-08 Hitachi Ltd 記憶装置の接続装置およびそれを含むコンピュータシステム
US6965979B2 (en) 2003-01-29 2005-11-15 Pillar Data Systems, Inc. Methods and systems of host caching
US7120013B1 (en) 2003-04-11 2006-10-10 Raytheon Company System and method for transferring large amounts of stored data
US7028156B1 (en) 2003-07-01 2006-04-11 Veritas Operating Corporation Use of read data tracking and caching to recover from data corruption
US7702863B1 (en) * 2003-07-01 2010-04-20 Symantec Operating Corporation Method of data caching in mirrored storage
US20050050273A1 (en) * 2003-08-27 2005-03-03 Horn Robert L. RAID controller architecture with integrated map-and-forward function, virtualization, scalability, and mirror consistency
JPWO2005055067A1 (ja) * 2003-12-03 2007-12-06 セイコーエプソン株式会社 データ通信端末
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
US7577794B2 (en) * 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
JP4448005B2 (ja) * 2004-10-22 2010-04-07 株式会社日立製作所 記憶システム
US7558981B2 (en) * 2005-10-18 2009-07-07 Dot Hill Systems Corp. Method and apparatus for mirroring customer data and metadata in paired controllers
US8398816B1 (en) 2006-03-28 2013-03-19 Novellus Systems, Inc. Method and apparatuses for reducing porogen accumulation from a UV-cure chamber
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US20070226549A1 (en) * 2006-03-17 2007-09-27 Alcatel Apparatus for detecting errors in a communication system
CN101449256B (zh) 2006-04-12 2013-12-25 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
CN101548268B (zh) * 2006-10-05 2014-05-21 瓦拉泰克有限公司 更新存储器位置的内容的方法和系统
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
EP1933536A3 (en) * 2006-11-22 2009-05-13 Quantum Corporation Clustered storage network
US7669007B2 (en) * 2007-01-04 2010-02-23 International Business Machines Corporation Mirrored redundant array of independent disks (RAID) random access performance enhancement
DE112008003643A5 (de) * 2007-11-17 2010-10-28 Krass, Maren Rekonfigurierbare Fliesskomma- und Bit- ebenen Datenverarbeitungseinheit
US20090132765A1 (en) * 2007-11-21 2009-05-21 Inventec Corporation Dual controller storage apparatus and cache memory mirror method thereof
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
EP2235627A1 (en) * 2007-12-07 2010-10-06 Krass, Maren Using function calls as compiler directives
CN101493753B (zh) * 2008-01-22 2012-06-06 中兴通讯股份有限公司 一种高速缓冲存储器及其数据操作方法
US8615678B1 (en) * 2008-06-30 2013-12-24 Emc Corporation Auto-adapting multi-tier cache
KR101475113B1 (ko) * 2008-10-30 2014-12-22 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 컴퓨터 시스템 및 복수 배열 독립 디스크(raid) 기록 캐시 서브-어셈블리
JP2010157130A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
TWI371686B (en) * 2009-04-02 2012-09-01 Lsi Corp System and method to reduce drive overhead using a mirrored cache volume in a storage array
US8732396B2 (en) * 2009-06-08 2014-05-20 Lsi Corporation Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
US8375184B2 (en) * 2009-11-30 2013-02-12 Intel Corporation Mirroring data between redundant storage controllers of a storage system
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
TWI520070B (zh) 2011-03-25 2016-02-01 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段
WO2012135031A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
WO2012162188A2 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9015525B2 (en) * 2012-06-19 2015-04-21 Lsi Corporation Smart active-active high availability DAS systems
GB2503274A (en) * 2012-06-22 2013-12-25 Ibm Restoring redundancy in a RAID
US9367412B2 (en) * 2012-06-25 2016-06-14 Netapp, Inc. Non-disruptive controller replacement in network storage systems
US9251194B2 (en) * 2012-07-26 2016-02-02 Microsoft Technology Licensing, Llc Automatic data request recovery after session failure
US9740612B2 (en) * 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9323630B2 (en) 2013-09-16 2016-04-26 HGST Netherlands B.V. Enhanced data recovery from data storage devices
US20170115894A1 (en) * 2015-10-26 2017-04-27 Netapp, Inc. Dynamic Caching Mode Based on Utilization of Mirroring Channels
JP2018022404A (ja) * 2016-08-05 2018-02-08 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
US11210263B1 (en) * 2017-09-27 2021-12-28 EMC IP Holding Company LLC Using persistent memory technology as a host-side storage tier for clustered/distributed file systems, managed by cluster file system
CN108984432B (zh) * 2018-07-16 2020-08-14 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置
US10664189B2 (en) * 2018-08-27 2020-05-26 International Business Machines Corporation Performance in synchronous data replication environments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5588110A (en) * 1995-05-23 1996-12-24 Symbios Logic Inc. Method for transferring data between two devices that insures data recovery in the event of a fault
US5761705A (en) 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5974506A (en) 1996-06-28 1999-10-26 Digital Equipment Corporation Enabling mirror, nonmirror and partial mirror cache modes in a dual cache system
US5802561A (en) * 1996-06-28 1998-09-01 Digital Equipment Corporation Simultaneous, mirror write cache
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices

Also Published As

Publication number Publication date
US6321298B1 (en) 2001-11-20
AU2737200A (en) 2000-08-07
EP1163586A1 (en) 2001-12-19
WO2000043888A1 (en) 2000-07-27
TW455813B (en) 2001-09-21
EP1163586A4 (en) 2007-01-10
JP2004538532A (ja) 2004-12-24

Similar Documents

Publication Publication Date Title
JP3798627B2 (ja) 複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ
US7971011B2 (en) Remote copy method and storage system
US5835954A (en) Target DASD controlled data migration move
US6549992B1 (en) Computer data storage backup with tape overflow control of disk caching of backup data stream
US7340572B2 (en) Method and system for reliable remote-mirror resynchronization in disk arrays and other mass storage devices
US7139826B2 (en) Initial copy for remote copy
US6782416B2 (en) Distributed and geographically dispersed quorum resource disks
US6385681B1 (en) Disk array control device with two different internal connection systems
US6157962A (en) Multipath I/O storage systems with multiipath I/O request mechanisms
US6557079B1 (en) Remote data facility prefetch
JP4108973B2 (ja) バックアップシステム
US6237008B1 (en) System and method for enabling pair-pair remote copy storage volumes to mirror data in another storage volume
EP0405926A2 (en) Method and apparatus for managing a shadow set of storage media
US20120233406A1 (en) Storage apparatus, and control method and control apparatus therefor
US20080071999A1 (en) Redirection of storage access requests
CN111722791B (zh) 信息处理系统、存储系统和数据传输方法
US20090119465A1 (en) Dynamic Loading of Virtual Volume Data in a Virtual Tape Server
JP2005301590A (ja) ストレージシステム及びデータ複製方法
US6961818B1 (en) Method, system and computer program product for managing data in a mirrored cache using an access balancing technique
US5210865A (en) Transferring data between storage media while maintaining host processor access for I/O operations
US20050114592A1 (en) Storage system and data caching method in the system
JP2002244817A (ja) ミラーリング・エージェント
JP2002259063A (ja) バックアップ処理可能な記憶システム
CA2286356A1 (en) Apparatus and method for backup of a disk storage system
US6105076A (en) Method, system, and program for performing data transfer operations on user data

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20010719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20010813

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20020624

A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20010719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050801

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: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060420

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees