JP3798627B2 - 複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ - Google Patents
複数のraidコントローラの間での完全なキャッシュ・コヒーレンシ Download PDFInfo
- 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
Links
- 230000004044 response Effects 0.000 claims description 34
- 238000000034 method Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 claims 1
- 239000000835 fiber Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004587 chromatography analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage comprising a plurality of storage devices configured as RAID
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/285—Redundant cache memory
- G06F2212/286—Mirrored 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
【発明の属する技術分野】
本発明は、全般的には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)
- 複数の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データを返すことと
を行うこととを含む
同期化方法。 - ストレージ・デバイスの組へのアクセスを提供する複数のRAIDコントローラを含むRAIDシステム内で使用されるキャッシュ・システムであって、
上記コントローラからアクセス可能であり、上記コントローラに関連する、複数のミラー・キャッシュ
を含み、
第1RAIDコントローラが、データを特定のアドレスに書き込む書込みコマンドを受け取るときに、上記データを上記ストレージ・デバイスに書き込むことのほかに、上記データを少なくとも1つの異なるRAIDコントローラの上記ミラー・キャッシュにコピーするように構成され、
上記RAIDコントローラのそれぞれが、上記特定のアドレスの上記データを読み取る読取りコマンドを受け取った後に、その関連するミラー・キャッシュ内で上記データの存在についてまず検査し、存在する場合に、上記ストレージ・デバイスの組または他のストレージ手段から上記データを取り出す前に、その関連するミラー・キャッシュから上記データを取り出すように構成され、
上記ミラー・キャッシュと異なり、上記コントローラからアクセス可能である複数の書込みキャッシュであって、各書込みキャッシュが、上記コントローラの異なる1つに関連する、複数の書込みキャッシュと、
上記ミラー・キャッシュと異なり、上記コントローラからアクセス可能である複数の読取りキャッシュであって、各読取りキャッシュが、上記コントローラの異なる1つに関連する、複数の読取りキャッシュと、
をさらに含み、
上記特定のアドレスのデータを読み取る読取りコマンドに応答して、上記第2コントローラが、
第1に、その関連するミラー・キャッシュ内で上記データについて検査し、上記データがある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記データを返し、
第2に、その関連する書込みキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、
第3に、その関連する読取りキャッシュ内で上記データについて検査し、上記データがある場合に、上記ホストに上記データを返し、
第4に、上記データが上記ミラー・キャッシュ、上記書込みキャッシュ、または上記読取りキャッシュのいずれにもない場合に、上記データを上記ストレージ・デバイスから取り出し、上記取り出されたデータを上記ホストに返す
キャッシュ・システム。 - コンピュータ・システムと共に使用されるコンピュータ・プログラムであって、上記コンピュータ・プログラムが、
ホスト・コンピュータに接続された複数のコントローラと、データ・ストレージ・システムにグループ化された1つまたは複数のディスク・ストレージ・デバイスとの少なくとも1つに、指定された形で機能するように指示するプログラム・モジュールを含み、
上記プログラム・モジュールが、
第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記コントローラの第1コントローラが、上記第1データを上記ストレージ・デバイスに書き込み、1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーすることと、
第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、第2コントローラが、上記ミラー・キャッシュの関連するミラー・キャッシュ内で上記データについて検査し、上記データが上記関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返すことと
上記第1コントローラに、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1データをその関連する書込みキャッシュにも書き込むように指示することと、
上記第2コントローラに、上記読取りコマンドに応答して、上記ストレージ・デバイスから第2データを読み取るように指示することであって、
上記関連する書込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
上記読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返すことと、
上記第2データがその関連するキャッシュ内にない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返すこととを含む、
上記第2コントローラに指示することとを含む、
コンピュータ・プログラム。 - 複数のコントローラおよび複数のストレージ・デバイスを有する複数コントローラ・ディスク・ドライブ・ベース・ストレージ・システムのコントローラであって、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記複数のコントローラおよび前記複数のストレージ・デバイスとの結合のための少なくとも1つの通信バスと、
前記コントローラ間のデータ・コヒーレンシおよび同期を維持する手段であって、
前記コントローラの第1コントローラによって、第1データを上記ストレージ・デバイスに書き込む書込みコマンドに応答して、上記第1データを上記ストレージ・デバイスに書き込み、上記書込みコマンドを実行しなかった1つまたは複数の他のコントローラに関連するミラー・キャッシュに上記第1データをコピーする手段と、
第2コントローラによって、第2データを上記ストレージ・デバイスから読み取る読取りコマンドに応答して、それ自体の関連するミラー・キャッシュ内で上記データについて検査し、上記第2データがそれ自体の関連するミラー・キャッシュにある場合に、上記読取りコマンドを発行したホスト・コンピュータに上記第2データを返す手段と
を含む手段とを含み、
上記コントローラのそれぞれが、前記ミラー・キャッシュと異なる、関連する読取りキャッシュおよび関連する書き込みキャッシュを有し、
上記第1コントローラによって、第1データを上記ストレージ・デバイスに書き込む上記書込みコマンドに応答して、上記第1データをそれ自体の関連する書き込みキャッシュに書き込む手段と、
第2データを上記ストレージ・デバイスから読み取る上記読取りコマンドに応答して、上記第2データが上記検査によってその関連するミラー・キャッシュにないことがわかったときに、前記第2コントローラによって、その関連する書き込みキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返し、その関連する読取りキャッシュ内で上記第2データについて検査し、上記データがある場合に、上記第2データを上記ホストに返し、上記第2データがその関連する読取りキャッシュにない場合に、上記第2データを上記ストレージ・デバイスから取り出し、上記読取りコマンドを発行した上記ホスト・コンピュータに上記第2データを返す手段とを含む、
コントローラ。
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)
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)
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 |
-
1999
- 1999-01-25 US US09/236,504 patent/US6321298B1/en not_active Expired - Fee Related
-
2000
- 2000-01-21 TW TW089101024A patent/TW455813B/zh not_active IP Right Cessation
- 2000-01-25 EP EP00905733A patent/EP1163586A4/en not_active Withdrawn
- 2000-01-25 WO PCT/US2000/001921 patent/WO2000043888A1/en active Application Filing
- 2000-01-25 AU AU27372/00A patent/AU2737200A/en not_active Abandoned
- 2000-01-25 JP JP2000595246A patent/JP3798627B2/ja not_active Expired - Fee Related
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 |