(57)【特許請求の範囲】
【請求項１】
冗長データ記憶システムであって、
デジタルデータを冗長に記憶するように構成された複数の記憶装置と、
複数のトランザクションを発信して、前記記憶装置の動作を制御するように構成された複数のトランザクション発信装置と、
前記複数のトランザクション発信装置のそれぞれとデータを通信するように構成された複数の並列データバスと、
前記複数の並列データバスに接続された複数のトランザクション処理装置と、
前記複数のトランザクション処理装置と前記複数のトランザクション発信装置との間に接続されたトランザクションバスと、を備え、
前記複数のトランザクション発信装置は、前記複数のトランザクション処理装置の少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序でトランザクションを前記トランザクションバスに送出するよう構成されており、
前記トランザクション順序決めプロトコルは、第１のタイプのトランザクションよりも第２のタイプのトランザクションが先行することであり、
前記複数のトランザクション発信装置は、第１および第２の発信装置を含んでおり、該第１の発信装置は、前記トランザクションバスに該第１のタイプのトランザクションを送出するために第１の信号を出力する第１の論理回路を有しており、該第２の発信装置は、該第１の論理回路に接続された第２の論理回路であって、前記トランザクションバスに該第２のタイプのトランザクションを送出するために第２の信号を出力する第２の論理回路を有しており、該第１の論理回路は、該第２の論理回路から該第２の信号を受け取っている間、該第１の信号を出力しないよう構成され、該構成により前記トランザクション順序決めプロトコルを実現し、
前記複数のトランザクション処理装置は、該トランザクションバス上の順序付けられたトランザクションを受信して、前記記憶装置に対する該トランザクションを処理する、
冗長データ記憶システム。
【請求項２】
冗長データ記憶システムを動作させるための方法であって、
ＲＡＩＤ記憶システムの複数の記憶装置を用いて冗長にデータを記憶するステップと、
複数のトランザクション発信装置を用いて複数のトランザクションを発信し、前記記憶装置の動作を制御するステップであって、該発信は、前記記憶システムの入出力プロセッサを用いて書き込みトランザクションを発信すること、および、前記記憶システムのコントローラを用いて読み込みトランザクションを発信することを含むと共に、前記複数のトランザクション発信装置が、複数のトランザクション処理装置のうちの少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序で、前記複数のトランザクションを、該複数のトランザクション処理装置と該複数のトランザクション発信装置との間に接続されたトランザクションバスに送出することを含み、該プロトコルは、該入出力プロセッサからの書き込みトランザクションが該コントローラからの読み込みトランザクションに先行することを定義する、ステップと、
前記入出力プロセッサおよび前記コントローラのそれぞれに接続された複数の並列データバスを用いて、前記複数のトランザクション発信装置とデータを通信するステップと、
前記並列データバスに接続された前記複数のトランザクション処理装置を用いて、前記トランザクションバス上の順序付けられたトランザクションを受信し、前記記憶装置に対して該トランザクションを処理するステップと、を含み、
前記コントローラは、前記読み込みトランザクションを前記トランザクションバスに送出するために第１の信号を出力する第１の論理回路を有しており、前記入出力プロセッサは、前記書き込みトランザクションを該トランザクションバスに送出するために第２の信号を出力する第２の論理回路を有しており、該第１の論理回路は、該第２の論理回路に接続されており、該第１の論理回路は、該第２の論理回路から該第２の信号を受取っている間、該第１の信号を出力しないよう構成されており、該構成により前記トランザクション順序決めプロトコルを実現する、
方法。
【請求項３】
冗長データ記憶システムを動作させるための方法であって、
複数の記憶装置にわたってデジタルデータが分散されるように、該複数の記憶装置に、該デジタルデータを冗長に記憶するステップと、
複数のトランザクション発信装置が、前記記憶装置の動作を制御するよう、複数のトランザクションを発信するステップであって、該複数のトランザクションの少なくとも１つは、前記記憶装置に対する前記デジタルデータの冗長な記憶を実現し、前記複数のトランザクション発信装置が、複数のトランザクション処理装置の少なくともいくつかに共通のトランザクション順序決めプロトコルに従った順序で、前記複数のトランザクションを、該複数のトランザクション処理装置と該複数のトランザクション発信装置との間に接続されたトランザクションバスに送出することを含む、ステップと、
複数の並列データバスを用いて前記複数のトランザクション発信装置とデータを通信するステップと、
前記並列データバスに接続された前記複数のトランザクション処理装置を用いて、該トランザクションバス上の前記順序付けられたトランザクションを受信し、前記記憶装置に対して該トランザクションを処理するステップと、を含み、
前記トランザクション順序決めプロトコルは、第１のタイプのトランザクションよりも第２のタイプのトランザクションが先行することであり、
前記複数のトランザクション発信装置のうちの１つは、前記第１のタイプのトランザクションをトランザクションバスに送出するために第１の信号を出力する第１の論理回路を有しており、前記トランザクション発信装置のうちの他の１つは、前記第２のタイプのトランザクションをトランザクションバスに送出するために第２の信号を出力する第２の論理回路を有しており、該第１の論理回路は、該第２の論理回路に接続されており、該第１の論理回路は、該第２の論理回路から該第２の信号を受取っている間、該第１の信号を出力しないよう構成され、該構成により前記トランザクションジョン所決めプロトコルを実現する、
方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、冗長データ格納システムおよび冗長データ格納システムを動作する方法を提供する。
【０００２】
【従来の技術】
従来のコンピュータエレクトロニクスにおける１つの複雑な要素は、並列処理使用の増大である。さらに、トランザクション動作（たとえば、大きなＤＲＡＭアレイに対する読み出しおよび書き込みメモリ動作）は、最小の遅延をトランザクションマスタ（たとえば、ＤＲＡＭからのデータの読み出しを待つプロセッサ）に提示するように頻繁に順序替えされる。
【０００３】
所与のＲＡＩＤサブシステムアプリケーションの場合、サブシステムは通常、集合システムが適宜動作可能になる前に、接続されたホストシステムに対して特定のコミットメントを行う。ホストシステムがデータをＲＡＩＤサブシステムに書き込む場合を考えてみる。ＲＡＩＤサブシステムは、故障に耐えうる状況においてデータを格納する。性能を上げるため、ＲＡＩＤサブシステムは、ホストデータを待ち時間の少ない高帯域幅の格納装置に格納する。この装置は一般に、ＤＲＡＭ技術を用いて実施される。
【０００４】
ＲＡＩＤサブシステムは、データが安全に格納された後でのみ、「良好状態」をホストに戻すことができる。しかし、ＲＡＩＤサブシステムが「良好状態」のホストへのリターンを長く待つほど、性能が悪くなる。一方、「良好状態」を戻すのが早急で、一時的な故障によりすべてのデータが失われるという状況を起こしうる場合に、結果としてデータの損失につながる。
【０００５】
ＲＡＩＤサブシステムのプロセッサは通常、「良好状態」メッセージをホストシステムに提供する責任を担う。この機能を達成するために、プロセッサは、ホストによって書き込まれたデータが故障に対して完全に安全であると決定してから、ホストシステムに「良好状態」コミットメントを行うことができるようになる。
【０００６】
プロセッサは、システムにおいて、各ホスト動作についていくつかの読み出しトランザクションおよび書き込みトランザクションを発信する。構成によっては、プロセッサがホスト動作の処理に費やす時間を最小に抑えるために、トランザクションが、ある時点でデータパスに沿って順序替えされる場合がある。このような例では、より優先度の高いトランザクションが完了する間、いくつかのトランザクションが放置される。
【０００７】
ここで挙げられる一例は、ある制御構造に対するメモリ書き込みトランザクションが、書き込みバッファに格納される場合である。書き込みバッファは、トランザクション処理装置として動作する。続く読み出し要求は一般に、コンポーネント（プロセッサ等）がデータ枯渇の影響を受けやすいため、より高い優先度を有する。設計特徴に応じて、これによりトランザクションの処理が無制限に遅延することがある。したがって、書き込みバッファがフラッシュされるまで、主記憶における制御構造が古くなる。
【０００８】
ここでも、ホストがデータをＲＡＩＤサブシステムに書き込む場合を考える。ＲＡＩＤサブシステムにおけるプロセッサの課題の１つは、いつホストデータが重複して格納され、いつ故障に対して安全になるかをプロセッサが知る必要があることである。順序替えされた並列動作を可能にする技術をコミットメントのポイントを有する必要性に引き合わせると、直接衝突が生じる。
【０００９】
たとえば、ホストから書き込まれたデータが比較的長時間書き込みバッファ内にあり、書き込みバッファ内のデータが冗長格納コンポーネント（ＤＲＡＭ）にフラッシュされる前にプロセッサが「良好状態」を送信する場合、データがＤＲＡＭに転送される前にコミットメントがホストに提示されることがある。ホストは、ＲＡＩＤサブシステムがデータを損失しないことを知っているため、その動作を継続することになる。しかし、本発明を用いない状態では、故障により、書き込みバッファ内のデータのフラッシュが不可能になる場合に、データの損失が発生することがある。データ損失シナリオは、データが書き込みバッファから排出されるときに、パリティ破損を見つけるのと同じように単純である。
【００１０】
書き込みバッファはある期間データを保持することができるが、その間、データが実際に重複して格納される前に「良好状態」を示してしまうことを含め、ＲＡＩＤサブシステムからの無分別なコミットメントがなされる。順序替えおよび並列パスは性能を上げる上で有利であるが、従来のＲＡＩＤサブシステムにおける適宜動作には不利である。
【００１１】
【発明が解決しようとする課題】
したがって、冗長格納されたデータの保全性を危険にさらすことなく、並列パスの利点を利用する改良されたデータ格納システムおよび方法を提供する必要がある。
【００１２】
【課題を解決するための手段】
本発明は、冗長データ格納システムおよび冗長データ格納システムを動作する方法を提供する。
【００１３】
本発明の一態様では、冗長データ格納システムは、デジタルデータを冗長に格納するように構成される複数の格納装置（記憶装置、storage）と、格納装置の動作を制御するために、複数のトランザクションを発信するように構成された複数のトランザクション発信装置と、各トランザクション発信装置にデータを通信するように構成された複数の並列データバスと、並列データバスに接続された複数のトランザクション処理装置であって、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように構成された複数のトランザクション処理装置と、を備える。
【００１４】
本発明の別の態様では、冗長データ格納システムを動作する方法は、複数の格納装置を用いてデータを冗長に格納するステップと、格納装置の動作を制御するために、複数のトランザクション発信装置を用いて複数のトランザクションを発信するステップと、複数の並列データバスを用いてトランザクション発信装置にデータを通信するステップと、並列データバスに接続された複数のトランザクション処理装置を用いてトランザクションを処理するステップであって、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含むステップと、含む。
【００１５】
別の態様は、独立した複数のディスクからなる冗長アレイ（ＲＡＩＤ）格納システムの複数の格納装置を用いてデータを冗長に格納するステップと、格納装置の動作を制御するために、複数のトランザクション発信装置を用いて複数のトランザクションを発信するステップであって、前記格納システムの入出力プロセッサを用いて書き込みトランザクションを発信し、前記格納システムのコントローラを用いて読み出しトランザクションを発信することを含むステップと、プロセッサおよびコントローラそれぞれに接続された複数の並列データバスを用いてトランザクション発信装置にデータを通信するステップと、並列データバスに接続された複数のトランザクション処理装置を用いてトランザクションを処理するステップであって、入出力プロセッサからの書き込みトランザクションが、コントローラからの読み出しトランザクションに先行することを定義する、少なくともいくつかのトランザクション処理装置に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含むステップと、を含む冗長データ格納システムを動作する方法を提供する。
【００１６】
本発明の他の特徴および利点は、以下の詳細な説明、添付の特許請求の範囲および図面を検討すれば、当業者にとって明白となろう。
【００１７】
【発明の実施の形態】
図１を参照して、冗長データ格納システム１０の例示的なコンポーネントを示す。格納システム１０は、説明する実施形態において複数の冗長回路１２を備える。個々の冗長回路１２は、制御回路１４およびローカル格納装置１６を備える。本明細書で用いられる「ローカル」とは、今説明中の冗長回路または今説明中の冗長回路内のコンポーネントを指し、「リモート」とはその他の冗長回路またはその他の冗長回路内のコンポーネントを指す。
【００１８】
冗長回路１２は、格納システム１０内に設けられ、１つまたは複数の冗長回路１２内の１つまたは複数のコンポーネントが故障した場合に、少なくともいくつかの機能を提供する。通常の動作中、制御回路１４は、パーソナルコンピュータ、ワークステーション等のホストシステムとの通信を実施する。構成によっては、複数の冗長回路１２の１つのみがホストシステムに接続されるものもある。制御回路１４は、冗長回路１２の１つまたは複数の格納装置１６に対するデータの読み出し動作および書き込み動作をさらに実施する。
【００１９】
説明する実施形態においては、格納装置１６が個々に、独立した複数のディスクからなる冗長アレイ（ＲＡＩＤ）格納システムのメモリおよびハードディスク（図示せず）を備える。説明する格納システム１０は、デジタルデータを格納するように動作する。格納システム１０は、本発明の他の態様による他の構成で実施される。
【００２０】
図２を参照して、単一の例示的な冗長回路１２をさらに詳細に示す。図示の例示的な実施形態では、冗長回路１２は、複数のトランザクション発信装置２０ａ、２０ｂおよび複数のトランザクション処理装置２１を備える。図示の構成の冗長回路１２では、このようなトランザクション処理装置２１は、ミラー機能回路２２、通信回路２４、およびローカル格納装置１６を備える。
【００２１】
トランザクション発信装置２０ａは、図示の実施形態においてバッファ２８に接続されるコントローラ２６を備える。トランザクション発信装置２０ｂは、バッファ３２に接続された入出力プロセッサ（ＩＯＰ）３０を備える。一構成では、バッファ２８、３２が個々に、読み出しバッファおよび書き込みバッファを備える。このようなバッファ２８、３２は、コントローラ２６および入出力プロセッサ３０それぞれに与えられる、またはそれぞれから受信されているトランザクションおよびデータを一時的に格納する。
【００２２】
トランザクションは、格納システム１０内の動作を制御するために、装置２０ａ、２０ｂから発信される。たとえば、例示的なトランザクションとしては、冗長格納装置１６に対するデジタルデータの読み出し動作および書き込み動作が挙げられる。トランザクション処理装置２１は、装置２０ａ、２０ｂから発信されるトランザクションを処理し実行して、読み出し動作および書き込み動作を行う。
【００２３】
コントローラ２６は、各冗長回路１２の動作を制御する。図示の例示的な実施形態では、コントローラ２６が、複数のソフトウェアまたはファームウェア命令を実行するように動作可能なマイクロプロセッサとして実施される。このような実行可能な命令は、コントローラ２６内に内部的に格納されてもよく、また読み出し専用メモリ（ＲＯＭ）等の図示していない外付け格納装置に提供してもよい。
【００２４】
入出力プロセッサ３０は、パーソナルコンピュータ、ワークステーション、ネットワーク等のホストシステムとインタフェースし、ホストシステムに対するデータおよび制御信号の連絡を実施する。
【００２５】
ミラー機能回路２２は、本発明の一動作態様によって双方の冗長回路１２内の格納装置１６に関するデジタルデータの読み出し動作および書き込み動作を実施し、これらを調整する。ミラー機能回路のさらなる詳細を以下に説明する。
【００２６】
通信回路２４は、冗長回路１２のローカルおよびリモートの格納装置１６に接続される。説明する実施形態では、通信回路２４は、通信回路２４に関してローカルな格納装置１６、ならびにその他の冗長回路１２のリモート格納装置１６に対するデータおよびトランザクションの通信を実施する。
【００２７】
個々の格納装置１６は、トランザクションを受信して転送すると共に、後続アクセスのためにデータを格納する回路を備える。たとえば、一構成では、所与の格納装置１６は、メモリ、ハードディスク等を含む格納回路に関する読み出し動作および書き込み動作等のトランザクションを処理する１つまたは複数のコントローラを備える。
【００２８】
上述したように、トランザクション発信装置２０ａ、２０ｂは、格納装置１６の動作を制御するために、トランザクションを個々に発信するように動作可能である。トランザクション発信装置２０ａ、２０ｂおよびトランザクション処理装置２１を接続するために、トランザクションバス４０が設けられる。このようなトランザクションバス４０は、適切な各装置２０ａ、２０ｂ、２１の間でトランザクションをやり取りするように動作する。トランザクションバス４０の例示的な構成について、さらなる詳細を以下の通り述べる。
【００２９】
さらに、説明する構成において、トランザクション発信装置２０ａ、２０ｂをミラー機能回路２２に接続するために、複数のデータバス３４が設けられる。データバス３５は、ミラー機能回路２２と通信回路２４を接続する。別のデータバス３７は、通信回路２４と格納回路１６を接続する。並列データバス３４およびバス３５、３７は、ミラー機能回路２２および通信回路２４を介して、トランザクション発信装置２０ａ、２０ｂと格納装置１６の間でデータをやり取りする。
【００３０】
トランザクション発信装置２０ａ、２０ｂと、ミラー機能回路２２、通信回路２４、および格納装置１６を含むトランザクション処理装置２１とは、トランザクションバス４０を用いて個々に接続され、トランザクションをやり取りする。このようなトランザクション処理装置２１は、少なくともいくつかのかかるトランザクション処理装置２１に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように動作可能である。本発明の一態様によるトランザクション順序決めプロトコルのさらなる詳細を以下に述べる。
【００３１】
例示的なトランザクション順序決めプロトコルは、トランザクションタイプに対応してトランザクションを処理する順序を定義する。たとえば、トランザクション順序決めプロトコルは、トランザクション発信装置２０ａ、２０ｂの所与の一方からの所与のトランザクションタイプが、トランザクション発信装置２０ａ、２０ｂの他方からの別のトランザクションタイプに先行すると定義する。しかし、一構成では、所与のトランザクションタイプは入出力プロセッサ３０からの書き込みコマンドであり、別のトランザクションタイプはコントローラ２６からの読み出しコマンドである。したがって、トランザクション処理装置２１は、コントローラ２６からの格納装置１６の読み出し命令を処理し実行する前に、入出力プロセッサ３０から格納装置１６に対する保留中の書き込み命令を処理し実行する。このようなことは、格納装置１６に書き込まれるものと考えられるデータが確実に、コントローラ２６によるかかるデータへのアクセスを試みる前に、格納装置１６に適宜格納されるようにする。
【００３２】
本発明のさらなる態様は、トランザクションバス４０を用いて複数のトランザクション処理装置２１に対してトランザクション順序決めプロトコルを提供して、複数の装置２１間でのトランザクションのかかる所望の処理順序を維持することを含む。このような態様によれば、複数のトランザクション処理装置２１は、順序決めプロトコルに従ってトランザクションを処理する。
【００３３】
図３を参照して、本発明の例示的な一態様による格納システム１０内のトランザクションのやり取りについて説明する。図３は、トランザクションバス４０に接続されたトランザクション発信装置２０ａ、２０ｂを示す。図示の構成のトランザクション発信装置２０ａ、２０ｂのバッファ２８、３２は、個々にメモリ４２、トランザクション待ち行列４４、および各論理回路４６ａ、４６ｂを含む。メモリ４２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）として実施することができる。メモリ４２は、格納装置１６から検索された、または格納装置１６に書き込まれるデータを一時的に格納する。メモリ４２は、図２に示す各データバス３４に接続されて、各データバス３４に対してデータをやり取りする。
【００３４】
図示の構成では、個々のトランザクション待ち行列４４は、２つのトランザクション格納位置すなわちロケーション４８を含む。このようなトランザクション待ち行列４４は個々に、他の実施形態による追加のトランザクションを格納するために、さらなるトランザクション格納位置４８を含む。
【００３５】
説明する実施形態に示されるように、論理回路４６ａ、４６ｂは、トランザクション待ち行列４４のトランザクション格納位置４８の各ビット位置に接続される。たとえば、論理回路４６ａはＡＮＤゲート５０を含み、論理回路４６ｂはＯＲゲート５２を含む。ＯＲゲート５２は、トランザクション発信装置２０ｂ内のトランザクション待ち行列４４のトランザクション格納位置４８の書き込みビット位置５４に接続された入力を有する。ＡＮＤゲート５０は、トランザクション発信装置２０ａのトランザクション待ち行列４４内のトランザクション格納位置４８の双方の読み出しビット位置５６に接続される。
【００３６】
さらに、ＡＮＤゲート５０には、ＯＲゲート５２の出力も接続される。このような論理回路４６ａ、４６ｂは、トランザクション発信装置２０ｂのトランザクション待ち行列４４内の保留中の書き込みトランザクションが、トランザクション発信装置２０ａのトランザクション待ち行列４４内の保留中の読み出しトランザクションに先行する、本発明の一態様によるトランザクション順序決めプロトコルを実施する。論理回路４６ａ、４６ｂを用いて、トランザクション発信装置２０ａは、トランザクション発信装置２０ｂのトランザクションの状態（たとえば、トランザクション待ち行列４４内の書き込みトランザクションがトランザクションバス４０に通知されているかどうか）を知る。図示していないが、コントローラ２６は、このような論理回路４６ａ、４６ｂにアクセスして、保留中のトランザクションの状態を判断することができる。
【００３７】
論理回路４６ａ、４６ｂは、トランザクション順序決めプロトコルの１つの可能な実施（たとえば、装置２０ｂからの書き込みトランザクションが、記載の例示的な構成の装置２０ａからの読み出しトランザクションに先行する）に従って、トランザクションバス４０およびトランザクション処理装置２１に対してトランザクションをやり取りする構成のトランザクション発信装置２０ａ、２０ｂを提供する。図示していない他の実施形態では、異なるトランザクションの配列が提供される。
【００３８】
論理回路４６ａ、４６ｂからの信号をトランザクションバス４０に与えた後、トランザクション待ち行列４４内の各トランザクションは、トランザクションバス４０に転送される。このようなトランザクションは個々に、各トランザクションに対応する、メモリ４２に格納されているデータに関連する長さ情報およびアドレス情報を含む。より具体的には、個々のトランザクションは、発信アドレス（たとえば、装置２０ａまたは装置２０ｂ）および宛先アドレス（たとえば、適切な装置２１の）に関連する情報、ならびに関連データの長さの識別情報およびトランザクションタイプの識別情報（たとえば、書き込み要求、ミラーリングされた読み出し比較要求、ローカルのみを読み出す要求等）を含む。
【００３９】
図示の構成の格納システム１０では、トランザクションをトランザクションバス４０に与える順序の制御により、トランザクション処理装置２１によるこのようなトランザクションの処理順序が制御される。トランザクション処理装置２１は、さらに後述する格納システム１０の説明される例示的な動作において、トランザクション発信装置２０ａ、２０ｂからトランザクションを受信した順序に従って、受信したトランザクションを処理する。
【００４０】
図４ないし図６を参照して、ミラー機能回路２２、通信回路２４、および格納装置１６それぞれを備えた例示的な構成のトランザクション処理装置２１を示す。図４ないし図６は、処理するトランザクションを受信し順序付けるように構成されたトランザクション処理装置２１の例示的なコンポーネントを示す。他の構成の各トランザクション処理装置２１も可能である。
【００４１】
個々のトランザクション処理装置２１は、記載の実施形態においてトランザクションバス４０上の発信されたすべてのトランザクションが見えるが、各トランザクション処理装置２１に適宜アドレス指定されたトランザクションのみを受信する。
【００４２】
まず図４を参照して、例示的なミラー機能回路２２を示す。図４は、トランザクションバス４０に接続された先入れ先出し（ＦＩＦＯ）装置６０およびミラー処理回路６２を示す。装置２０ａ、２０ｂによりトランザクションバス４０に提供されるトランザクションは、アドレス指定を介して各トランザクション処理装置２１に連絡される。
【００４３】
ミラー機能回路２２のＦＩＦＯ６０は、適宜アドレス指定されたトランザクションをトランザクションバス４０から受信し、このようなトランザクションをトランザクションバス４０からのＦＩＦＯ６０内に受信した順序に従って配列する。ミラー機能回路２２のミラー処理回路６２は、ＦＩＦＯ６０からトランザクションを抽出し、任意の要求される処理をトランザクションに対して実行して、ミラーリング機能を実施し、トランザクションをトランザクションバス４０に報告する。トランザクションバス４０に報告されるこのようなトランザクションとしては、新しい発信アドレス（たとえば、回路２２）および新しい宛先アドレス（たとえば、回路２４）等更新された情報を含むことができる。
【００４４】
例示的な一構成では、ミラー処理回路６２は、トランザクション発信装置２０ａ、２０ｂと通信回路２４の間でデータのやり取りを実施する。ミラー処理回路６２の例示的な動作は、受信したトランザクションを解釈することに加え、複数の格納装置１６から読み出されたデータを比較して、あらゆる差異を認識することを含む。ミラー処理回路６２の他の動作も可能である。
【００４５】
ミラー処理回路６２は、複数のデータバッファ（図示せず）に接続される。このようなデータバッファは、図２のデータバス３４、３５に接続され、データバス３４、３５に対してデータをやり取りする。ミラー処理回路６２は、各トランザクションに応答してデータバッファからデータを選択的に抽出して、任意所望の処理を実施する。
【００４６】
次に図５を参照して、例示的な通信回路２４を示す。図示の通信回路２４は、トランザクションバス４０に接続された先入れ先出し（ＦＩＦＯ）装置６０および通信処理回路６４を備える。通信回路２４のＦＩＦＯ６０は、適宜アドレス指定されたトランザクションをトランザクションバス４０から受信し、このようなトランザクションをトランザクションバス４０からＦＩＦＯ６０内で受信した順序に従って配列する。通信処理回路６４は、ＦＩＦＯ６０からトランザクションを抽出し、トランザクションに対して任意の要求された処理を実行して通信機能を実施し、トランザクションをトランザクションバス４０に報告する。トランザクションバス４０に報告されたこのようなトランザクションとしては、新しい発信アドレスおよび新しい宛先アドレス等の更新された情報を含むことができる。
【００４７】
例示的な一構成では、通信回路６４は、ローカルおよびリモートの格納装置１６に対してデータをやり取りすると共に調整する。通信処理回路６４の他の動作も可能である。
【００４８】
通信処理回路６４は、複数のデータバッファ（図示せず）に接続される。このようなデータバッファは、データバス３５、３７に接続され、データバス３５、３７に対してデータをやり取りする。通信処理回路６４は、各トランザクションに応答してデータバッファからデータを選択的に抽出して、所望の処理および通信を実施する。
【００４９】
次に図６を参照して、例示的な格納装置１６を示す。図示の格納装置１６は、トランザクションバス４０に接続された先入れ先出し（ＦＩＦＯ）装置６０および格納装置処理回路６６を備える。格納装置回路１６のＦＩＦＯ６０は、適宜アドレス指定されたトランザクションをトランザクションバス４０から受信し、このようなトランザクションをトランザクションバス４０からＦＩＦＯ６０内で受信した順序に従って配列する。格納装置処理回路６６は、ＦＩＦＯ６０からトランザクションを抽出し、トランザクションに対して任意の要求される処理を実行して、格納機能性（たとえば、読み出しおよび書き込み動作）を実施する。
【００５０】
例示的な一構成では、格納装置処理回路６６は、ローカル格納装置１６に対してデータアクセスの制御を実施する。たとえば、格納装置処理回路６６は、それぞれＤＲＡＭおよびハードディスクに接続されたＤＲＡＭ制御回路およびハードディスクドライブを含むことができる。格納装置処理回路６６の他の実施も可能である。格納装置処理回路６６は、各トランザクションに応答して、ＤＲＡＭおよびハードディスクに対してデータを選択的に読み書きする。データバス３７は、ＤＲＡＭおよびハードディスクに対してデータをやり取りする。
【００５１】
保護は、例として与えられる開示された実施形態にのみ限定されるものではないが、代わりに添付の特許請求の範囲によってのみ制限される。この発明は例として、次の実施形態を含む。
【００５２】
（１）冗長データ格納システム（１０）であって、
デジタルデータを冗長に格納するように構成される複数の格納装置（１６）と、
該格納装置（１６）の動作を制御するために、複数のトランザクションを発信するように構成される複数のトランザクション発信装置（２０ａ、２０ｂ）と、
該トランザクション発信装置（２０ａ、２０ｂ）それぞれに対してデータを通信するように構成される複数の並列データバス（３４）と、
該並列データバス（３４）に接続された複数のトランザクション処理装置（２１）であって、少なくともいくつかのトランザクション処理装置（２１）に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理するように構成される複数のトランザクション処理装置（２１）と、
を備える冗長データ格納システム。
【００５３】
（２）前記トランザクション順序決めプロトコルは、トランザクションのタイプに対応する順序を定義する、（１）のシステム。
【００５４】
（３）前記トランザクション発信装置（２０ａ、２０ｂ）は、前記トランザクション順序決めプロトコルに従って前記トランザクション処理装置（２１）にトランザクションを連絡するように構成される、（１）又は（２）に記載のシステム。
【００５５】
（４）前記トランザクション順序決めプロトコルは、前記トランザクション発信装置（２０ａ、２０ｂ）のうちの所与の１つからの所与のトランザクションタイプが、前記トランザクション発信装置（２０ａ、２０ｂ）のうちの別の１つからの別のトランザクションタイプに先行することを定義する、（１）、（２）または（３）に記載のシステム。
【００５６】
（５）前記所与のトランザクションタイプは、入出力プロセッサ（３０）を備える前記所与のトランザクション発信装置（２０ａ、２０ｂ）からの書き込みコマンドを含み、前記別のトランザクションタイプは、コントローラ（２６）を備える前記別のトランザクション発信装置（２０ａ、２０ｂ）からの読み出しコマンドを含む、（４）記載のシステム。
【００５７】
（６）冗長データ格納システム（１０）を動作する方法であって、
複数の格納装置（１６）を用いてデータを冗長に格納するステップと、
前記格納装置（１６）の動作を制御するために、複数のトランザクション発信装置（２０ａ、２０ｂ）を用いて複数のトランザクションを発信するステップと、
複数の並列データバス（３４）を用いて、前記トランザクション発信装置（２０ａ、２０ｂ）にデータを連絡するステップと、
前記並列データバス（３４）に接続された複数のトランザクション処理装置（２１）を用いてトランザクションを処理するステップであって、少なくともいくつかの前記トランザクション処理装置（２１）に共通のトランザクション順序決めプロトコルに従った順序でトランザクションを処理することを含む、ステップと、
を含む方法。
【００５８】
（７）前記処理するステップは、トランザクションのタイプに対応する順序を定義する前記トランザクション順序決めプロトコルに従って処理することを含む、（６）記載の方法。
【００５９】
（８）前記トランザクション順序決めプロトコルに従って前記トランザクション処理装置（２１）にトランザクションを連絡するステップをさらに含む、請求項６または７記載の方法。
【００６０】
（９）前記処理するステップは、前記トランザクション発信装置（２０ａ、２０ｂ）のうちの所与の１つからの所与のトランザクションタイプが、前記トランザクション発信装置（２０ａ、２０ｂ）のうちの別の１つからの別のトランザクションタイプに先行することを定義する前記トランザクション順序決めプロトコルに従って処理することを含む、（６）、（７）、又は（８）記載の方法。
【００６１】
（１０）前記所与のトランザクションタイプは、入出力プロセッサ（３０）を備える前記所与のトランザクション発信装置（２０ａ、２０ｂ）からの書き込みコマンドを含み、前記別のトランザクションタイプは、コントローラ（２６）を備える前記別のトランザクション発信装置（２０ａ、２０ｂ）からの読み出しコマンドを含む、（９）記載の方法。
【図面の簡単な説明】
【図１】例示的な冗長データ格納システムの機能ブロック図である。
【図２】図１の格納システムの例示的な冗長回路の機能ブロック図である。
【図３】図２の冗長回路の例示的なトランザクション発信装置およびトランザクションバスの機能ブロック図である。
【図４】図２の例示的なミラー機能回路の機能ブロック図である。
【図５】図２の例示的な通信回路の機能ブロック図である。
【図６】図２の例示的な格納装置の機能ブロック図である。
【符号の説明】
１０  冗長データ格納システム
１６  格納装置
２０ａ、２０ｂ  トランザクション発信装置
２１  トランザクション処理装置
２６  コントローラ
３０  入出力プロセッサ
３４  並列データバス
【図１】
0004009470.tif 000002
【図２】
0004009470.tif 000003
【図３】
0004009470.tif 000004
【図４】
0004009470.tif 000005
【図５】
0004009470.tif 000006
【図６】
0004009470.tif 000007