(57)【特許請求の範囲】
【請求項１】
マルチプロセッサコンピュータシステムにおいて強い順序付けを維持する方法であって、
タイムスタンプ信号を用いて第１のメモリトランザクションにタイムスタンプを付与するステップと、
前記タイムスタンプ信号を第１の伝送経路を介してアービトレータに送信するステップと、
第２のメモリトランザクションが前記アービトレータに送信され終わるまで前記第１のメモリトランザクションの送信を遅らせることが可能な第２の伝送経路を介して、前記第１のメモリトランザクションを前記アービトレータに送信するステップと、
前記アービトレータにより前記タイムスタンプ信号を用いて必要に応じて前記第１のメモリトランザクションを前記第２のメモリトランザクションよりも前に再順序付けするステップと
からなる方法。
【請求項２】
強く順序づけられたコヒーレントメモリを有するマルチプロセッサコンピュータシステムであって、
第１および第２のメモリトランザクションと第１および第２のタイムスタンプとを伝送するメモリエージェントであって、前記第１および第２のタイムスタンプを第１の順序で伝送する、メモリエージェントと、
前記メモリエージェントから前記第１および第２のメモリトランザクションを受信し、該第１および第２のメモリトランザクションを前記第１の順序とは異なる第２の順序で送信する、クロスバーと、
前記クロスバーから前記第１および第２のメモリトランザクションを前記第２の順序で受信し、前記メモリエージェントから前記第１および第２のタイムスタンプを前記第１の順序で受信する、プロセッサエージェントと、
前記第１および第２のメモリトランザクションを前記第１の順序に再順序付けする、前記プロセッサエージェント内に設けられたアービトレータと
からなるマルチプロセッサコンピュータシステム。
【請求項３】
マルチプロセッサコンピュータシステムにおいて強い順序付けを維持する方法であって、
複数のタイムスタンプのそれぞれが少なくとも１ビットを有する、複数のタイムスタンプを第１の順序で受信するステップと、
複数のメモリトランザクションのそれぞれがタイムスタンプに対応する、複数のメモリトランザクションを前記第１の順序とは異なる第２の順序で受信するステップと、
必要に応じて前記複数のメモリトランザクションを前記複数のタイムスタンプにより前記第１の順序に再順序付けするステップと
からなる方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にマルチプロセッサコンピュータシステムに関し、特にかかるシステムでキャッシュのコヒーレンシ−を維持する方法およびシステムに関する。
【０００２】
【従来の技術】
マルチプロセッサコンピュータシステムは典型的には、多数の相互接続された処理ノードを有する。各ノードは、最大１６個のプロセッサを有することができる。更に、各プロセッサは、１つまたは複数のメモリキャッシュを有することができる。これらのキャッシュは、プロセッサにより必要とされるプログラム及びデータを保持する。各キャッシュがコヒーレントなデータを保持することを確実化するために、コンピュータシステムにおける重要なハードウェアがそれ専用に割り当てられる。すなわち、各キャッシュは、メインメモリの内容を正確に反映するものとなる。
【０００３】
幾つかのマルチプロセッサシステムでは、キャッシュは「強く順序づけされる(strongly ordered)」。かかる強く順序づけされるシステムでは、プロセッサは、同一ノード内の別のプロセッサのストア(store)を、そのストアが行われた順序と同一の順序で見る。
【０００４】
強く順序づけされるシステムでは、ストアはセマフォーとして使用することができる。例えば、以下に示すストアシーケンスを考える。
【０００５】
【表１】
0004112050.tif 000002
【０００６】
このシーケンスでは、ラインＡ'はデータであり、ラインＢ'はラインＡ'の使用が早すぎないように保護するセマフォーである。ＣＰＵ０は、Ａ’を変更し終わった後にのみＢ’を変更する。また、ＣＰＵ１は、Ｂがセマフォーであるため、Ｂが変更されたことを確認するまではＡを使用しない。強い順序づけは、ＣＰＵ１がＡの旧い値とＢの新しい値とを決して同時に持たないことを必要とする。そうでなければ、ＣＰＵ１は、新たにストアされた値ではなくＡの旧いデータを使用する可能性がある。
【０００７】
従来のシステムでは、他のプロセッサにパージコマンドを送り、応答の戻りを受け取ることによって、強い順序づけが維持されていた。したがって、表１の例の場合には、ＣＰＵ０は、ＣＰＵ１にＡをパージするよう指示するコマンドをＣＰＵ１に送ることになる。ＣＰＵ１は、該パージを完了すると、ＣＰＵ０に「パージ完了」応答を返す。ＣＰＵ０は、他のすべてのプロセッサから「パージ完了」応答を受け取るまで待ってからＢ'を変更する。
【０００８】
【発明が解決しようとする課題】
「パージ完了」応答を待つことに関する問題は、パージコマンド及びその応答が一通り完了するのを待つことによって生じる遅延にある。この遅延は、コンピュータシステムの通常の動作時に各プロセッサにより行われるストアの数を乗じるとかなりの時間になる。加えて、パージコマンド及びその応答の送受信とカウントを行うために各キャッシュコントローラに追加の論理回路が必要となる。
【０００９】
このため、当業界では、パージコマンドの送信及びそれに対する応答の待機を必要としない強い順序づけを維持する方法およびシステムが必要とされている。
【００１０】
更に、当業界では、キャッシュコントローラに追加のカウント用の論理回路を必要としない強い順序づけを維持する方法およびシステムが必要とされている。
【００１１】
【課題を解決するための手段】
上述その他の必要性は、タイムスタンプ信号を使用して、各プロセッサにトランザクションが送られる順序を示す、強い順序づけの方法およびシステムによって満たされる。このタイムスタンプ信号は、一定の伝送待ち時間を有する専用経路を介して伝送される。このため、プロセッサは、タイムスタンプ信号を、その信号が送信された順序で常に受け取る。
【００１２】
アービトレータ(arbitrator)は、タイムスタンプ信号及びメモリトランザクションの両方を受信する。タイムスタンプ信号は、該信号が受信された順序でバッファリングされる。メモリトランザクションはクロスバーから受信される。クロスバーは、トランザクションの順序変更することができるため、アービトレータはトランザクションを、必ずしも該トランザクションが送信されたのと同じ順序で受信するとは限らない。アービトレータは、タイムスタンプ信号を使用することにより、トランザクションを正しい順序に並べ替えることができる。
【００１３】
更に、各タイムスタンプ信号にはパリティビットが付く。特定のシーケンスのタイムスタンプ及びパリティビットは、それに対応するトランザクションがデータ戻りであることを示す。トランザクションがデータ戻りであってパージ操作ではないため、アービトレータは、別のトランザクションを順序外で送っても安全であることを知る。
【００１４】
本発明の技術的な利点は、セマフォーにアクセスする際の待ち時間が短縮されることにある。「パージ完了」応答を待つ必要がないため、パージトランザクションと同時にデータ戻りを送ることができる。このため、セマフォーを変更する前に「パージ完了」応答を待つ必要がない。
【００１５】
本発明の別の技術的な利点は、セマフォーの変更前に「パージ完了」応答をカウントする論理回路が不要となることにある。
【００１６】
以上は、以下の本発明の詳細な説明を理解しやすくするために、本発明の特徴と技術的利点の概略を示したものである。本発明のその他の特徴および利点について以下で説明するが、それは特許請求の範囲に記載の本発明の要旨を構成するものである。当業者であれば、本開示の思想及び特定の実施態様を基礎として用いて修正または他の構造の設計を行い本発明と同一の目的を容易に達成することが可能であることが理解されよう。かかる等価的な構成は特許請求の範囲に記載の本発明の思想および範囲から逸脱しないものであることもまた当業者には理解されよう。
【００１７】
【発明の実施の形態】
本発明及びその利点を一層良好に理解することができるように図面を参照しながら以下にその説明を行う。
【００１８】
図１は、マルチプロセッサコンピュータシステムの１つのノード100を示す上位レベルのブロック図である。該コンピュータシステムは、１つのノード100しか備えていない場合もあれば、28個のノード壁(node wall)に構成された112個ものノードを備えている場合もある。かかるコンピュータシステムでは、１つのノード壁内のノードは、「７つのＸ次元リング×４つのＹ次元リング」として構成される。４つのノード壁は、４つのＺ次元リングによって相互接続される。ブリッジノードを使用してＹ次元リングがＺ次元リングに接続される。
【００１９】
かかるシステムの各ノード（例えばノード100）は、プロセッサ側110とメモリ側112と、クロスバー114とに分けられる。各側には多数の同一の要素が含まれていることに留意されたい。分かり易くするために、本明細書の説明では、同様の要素には単一の符号を使用して示す。２つ以上の同様の要素を区別する場合には、符号に英字を付加して、その符号が指す要素を識別することとした。
【００２０】
プロセッサ側110には、プロセッサボード116が含まれている。各プロセッサボード116は、ランウェイ(runway)バス122を介して対応するプロセッサエージェントチップ（ＰＡＣ）118に接続されている。各ＰＡＣ118は、入出力（Ｉ／Ｏ）サブシステム119を有しており、クロスバー114とコア論理アクセスバス120とに接続されている。
【００２１】
クロスバー114の他方の側にはメモリアクセスチップ（ＭＡＣ）124がある。各ＭＡＣ124は、２つのメモリバンク126a,126bとリングアクセスコントローラ128とに接続されている。該リングアクセスコントローラは、トーラスアクセスコントローラ（ＴＡＣ）とも呼ばれる。
【００２２】
図１に示すように、本発明の一実施例は、各ＰＡＣ118に接続された２つのプロセッサボードを有している。したがって、各ノード100は、合計16個のプロセッサボード116を有することができる。図２は、プロセッサボード116の例を示す上位レベルのブロック図である。
【００２３】
図２には、プロセッサ（ＣＰＵとも呼ばれる）210、命令キャッシュ212、データキャッシュ214、及びランウェイバス122が示されている。プロセッサ210は、好適には、HEWLETT-PACKARD PA-8000プロセッサとなる。しかし、本発明は、プロセッサのタイプやアーキテクチャによって制限されるものではない。
【００２４】
命令キャッシュ212及びデータキャッシュ214は、それぞれ１メガバイトの情報を保持することが好ましい。当業界で周知のように、キャッシュは、プロセッサにより使用されるメモリラインを保持する。どのラインをキャッシュに入れるかを決定する技法は、本発明の範囲外であり、本明細書では詳述しないこととする。メモリラインは、４状態コヒーレンシーモデルを使用してキャッシュに入れられる。このコヒーレンシーモデルについては以下で詳述することとする。前述のように、ランウェイバス122によってプロセッサ210がＰＡＣ118に接続される。
【００２５】
ここで図１に戻る。コア論理アクセスバス120は主としてシステムブート操作に使用される。このバス120は、全てのＰＡＣ118を消去可能プログラマブル読出し専用メモリ（ＥＰＲＯＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、リアルタイムクロック、RS-232インタフェース、及びイーサネットインタフェースと結合する低帯域幅マルチドロップバスである。更に、プロセッサ210は、制御状態レジスタ（ＣＳＲ）に対する書き込みを行うことができる。該ＣＳＲは、バス120を介してアクセスされてクロスバー114の初期設定及び構成を行うものである。
【００２６】
ＰＡＣ118は、プロセッサボード116及びＩ／Ｏサブシステム119とクロスバー114及びコア論理アクセスバス120とのインタフェースをとる。ＰＡＣ118は、４つの一方向データ経路124を使用してクロスバー114との間でトランザクションの送受信を行う。
【００２７】
図１に示すように、クロスバー114は、実際には、４つの別々の経路指定接続チップ（ＲＡＣ:routing attachment chip）114a〜114dからなる。クロスバー114は、ＰＡＣ118とＭＡＣ124との間でトランザクションを転送する。各ＲＡＣ114a〜114dは、16個の32ビット幅の一方向相互接続手段を有している。該一方向相互接続手段は、各ＲＡＣ114a〜114dを４つのＰＡＣと４つのＭＡＣとに接続するものである。クロスバー114は、それ自体のＣＳＲを有さず、コアアクセス論理バス120上にあるＣＳＲへの書込みによって初期設定される。これらのＣＳＲは、どのポートがアクティブであるかを制御し、及びエラー検出を可能にする。
【００２８】
ＭＡＣ124は、コヒーレントメモリへのアクセスを制御する。図１では、１つのＭＡＣ124につき２つのメモリバンク126a,126bしか示されていないが、各ＭＡＣ124は４つのメモリバンクを制御することが好ましい。このように、８つのＭＡＣを有するシステムでは最大32個のメモリバンクを制御することが可能である。これらのメモリバンク126は、ＳＤＲＡＭのデュアルインラインメモリモジュール（ＤＩＭＭ）であることが好ましい。ＭＡＣ124によって制御されるメモリは、ノードローカルメモリ、ネットワークキャッシング、及びメッセージングのために使用される。
【００２９】
キャッシュ212,214に関して簡単に述べたように、ノード100内のメモリは強く順序づけされたディレクトリベースの４状態メモリである。本明細書で使用する「強く順序づけされた」という用語は、１つのプロセッサ210が、同一ノード内の他のプロセッサによって行われたストアを、該ストアが行われた順序と同じ順序で見ることを意味する。オーナーシップの反映及び無効化の順序づけを行うことにより、ノード100内のコヒーレントなアクセス間で強い順序づけが維持される。オーナーシップの反映により、プロセッサがデータ戻りを使用することが可能となる。通常、オーナーシップの反映は、データ戻りと共にプロセッサに送られる。したがって、プロセッサは、システムが該システムに戻されるプロセッサの読出要求を反映する場合に、１ラインのオーナーシップを獲得する。強い順序づけは、ノード100内のコヒーレントアクセスと非コヒーレントアクセスとの間でも維持される。
【００３０】
メモリラインはディレクトリベースのものである。各メモリラインのタグは、どのプロセッサ及びＩ／Ｏポートがそのメモリラインのオーナーシップを有しているかを示すラインオーナーまたは共有マスクを有している。ラインのフラッシュまたはパージを行う必要がある場合、その情報を使用して、そのラインを有することができるプロセッサ及びＩ／Ｏポートだけにトランザクションを送る。
【００３１】
また、メモリラインは４状態を有する。したがって、メモリラインは、プライベートダーティ、プライベートクリーン、共有、または非共有の状態となり得る。この４状態によって、データを共有読出要求のために選択的にプライベートに戻すことが可能となる。或るラインが最初に共有読出しされる際に、該ラインがプライベートに戻される。それ以降の共有読出しでは、最初のオーナーが該ラインをダーティにしていない場合に、該ラインが共有にされる。この技法は、最も一般的な場合であるラインが共有にされていない場合について最適化される。
【００３２】
最後に、ＴＡＣ128は、ノード100からコンピュータシステム中の別のノードへのインタフェースとして作用する。ＴＡＣ128は、２つの一方向データ経路を介してＭＡＣ124と通信を行う。ＴＡＣ128は、２つのリング、即ち、Ｘ次元リング及びＹ次元リングとのインタフェースを有している。
【００３３】
一般に、プロセッサ210は、クロスバー114に要求を送ることによってメモリにアクセスする。この要求は次いでＭＡＣ124のうちの１つに送られる。ＭＡＣ124は、そのメモリバンク126にアクセスして、エラー修正情報及びタグ付きコヒーレンシー情報を調べる。追加のコヒーレンシー操作が不要である場合には、クロスバー114に応答を返送することによって、メモリ126からアクセスされたデータがプロセッサ210に戻される。次いでクロスバー114がその応答をＰＡＣ118に送り、該ＰＡＣ118がランウェイバス122上に読出応答を生成する。
【００３４】
詳細には、プロセッサ210は、２つのコヒーレント読取りトランザクション、即ち、Read_Private及びRead_Shar_or_Privのうちの一方を発行することができる。Read_Privateトランザクションは、ストア命令によって開始される。要求されたデータを含むラインがプロセッサにプライベート・クリーンで戻される。該ラインが、別のプロセッサのキャッシュにプライベート・ダーティを保持している場合には、該ラインが、そのキャッシュから、要求側プロセッサへと移されると同時に、メモリ中の旧いコピーが更新される。それ以外の場合には、要求されたラインがメモリから読み出され、キャッシュされた該ラインのコピーが全てパージされる。
【００３５】
トランザクションRead_Shar_or_Privは、ロード命令によって開始される。要求されたデータを含むラインは、共有またはプライベート・クリーンでプロセッサに戻される。要求されたラインが、別のプロセッサのキャッシュにプライベート・ダーティで保持されている場合には、該ラインが、現在のオーナーのキャッシュから要求側プロセッサへとプライベート・クリーンでコピーされると同時に、メモリ中の旧いコピーが更新される。要求されたラインが、別のプロセッサのキャッシュにプライベート・クリーンまたは共有で保持されている場合には、要求されたラインは、メモリから共有で戻され、プライベート・クリーンのコピーが全て共有に変換される。更に、同一ラインについて別の読出要求があった場合、またはプロセッサがラインをプライベートで有していることをメモリタグが示しているが問い合わせ時に該プロセッサが該ラインをもはや有していないことが分かった場合には、該ラインは共有に戻される。最後に、要求されたラインが他のどのプロセッサのキャッシュにも保持されていない場合は、該ラインはプライベート・クリーンに戻される。
【００３６】
図３は、ＰＡＣ118とＭＡＣ124が、タイムスタンプを使用して上記のトランザクションシーケンスを実行するように相互接続される態様を示す上位レベルのブロック図である。同図には、３つのＰＡＣ118a〜118c、３つのＭＡＣ124a〜124c、及びＰＡＣ118とＭＡＣ124とを接続する相互接続手段310が示されており、相互接続手段310a〜310cはその典型的なものである。同図には、３つのＰＡＣ118a〜118cと３つのＭＡＣ124a〜124cとしか示されていないが、好ましい実施例はそれぞれ８つ、合計で64個の相互接続手段を有するものとなる。
【００３７】
相互接続手段310は、各ＭＡＣ124から各ＰＡＣ118へと信号を送信する。相互接続手段310は、一方向及び２ビット幅のものである。各相互接続手段310は、１ビットのタイムスタンプ信号と１ビットのパリティ信号とを伝送する。相互接続手段310は直接リンクであり、従って一定の伝送待ち時間を有するものであることに留意されたい。相互接続手段310は図１には示していない。
【００３８】
相互接続310と通信を行うために、各ＭＡＣ124は８対の出力を有し、各ＰＡＣ118は８対の入力を有する。ＭＡＣ124は、クロスバー114を介してＰＡＣ118にメモリトランザクションを送信する際に、相互接続手段310を介して該ＰＡＣ118にタイムスタンプ及びパリティビットも送信する。クロスバー114は、該クロスバー114を通過するトランザクションの順序を変更することができるが、タイムスタンプ及びパリティビットは、常に、それらが送信された順序と同じ順序でＰＡＣ118に到達する。
【００３９】
各ＰＡＣ118内には、タイムスタンプ信号及びパリティ信号を受信するアービトレータがある。図４はアービトレータ400を示すブロック図である。アービトレータ400は、タイムスタンプ入力410及びパリティ入力412を有している。タイムスタンプ入力410及びパリティ入力412は両方とも８ビット幅を有している。更に、アービトレータ400は、各ＭＡＣ124からの入力も有している。なお、ＭＡＣ124からの入力のうちの２つの入力414,416しか示していない。最後に、アービトレータ400は、４つの出力も有している。最初の２つの出力418,420は、ＣＰＵ0及びＣＰＵ1にそれぞれ接続される。第３の出力422は、ＰＡＣ118に接続され、制御レジスタ及び状況レジスタへのアクセスに使用される。第４の出力424は、Ｉ／Ｏポート119へのアクセスに使用される。
【００４０】
アービトレータ400は、クロスバー114から到着したトランザクションを、プロセッサ、ＰＡＣ118、またはＩ／Ｏポート119に送る順序を制御する。しかしながら、ＰＡＣ出力422及びＩ／Ｏ出力424は強く順序づけされないことに留意されたい。基本的に、アービトレータ400は、タイムスタンプを使用して、ＭＡＣ124から受信したトランザクションをプロセッサ210に送る順序を割り出す。入力410及びＭＡＣ入力414,416から受信したタイムスタンプがバッファリングされる。次いで、該タイムスタンプの順序が、ＭＡＣ入力414,416から受信したトランザクションに付与される。このため、特定のＭＡＣ124からのタイムスタンプを受信した場合には、アービトレータ400は、その特定のＭＡＣ124に対応する入力から受信したトランザクションが送出されるまでは、プロセッサ210にどのトランザクションも送出しない。
【００４１】
しかしながら、アービトレータ400は、パージ（無効化）を、まだ到着していないそれより前のタイムスタンプを持つトランザクションよりも先にプロセッサ210に送ることを許容する。データ戻りがそれよりも前のタイムスタンプが付与されたパージを伝えない限り、コヒーレントアクセスについて強い順序づけが維持される。
【００４２】
更に、アービトレータ400の好ましい実施例は、パリティビットを使用して、その効率を更に向上させる。通常、アービトレータ400は、奇数パリティを使用する。即ち、パリティビットは、常にタイムスタンプビットの逆となる。しかしながら、アービトレータ400の好ましい実施例は、パリティビットを使用して、オーナーシップ反映及びデータ戻りが共に送られた場合にＭＡＣ124から送られたトランザクションのタイプを判定する。この技法は、「ロングタイムスタンプ(long timestamp)」と呼ばれるものである。
【００４３】
表２にロングタイムスタンプの使用法を示す。
【００４４】
【表２】
0004112050.tif 000003
【００４５】
ＭＡＣ124は、表２に示す信号を使用して、タイムスタンプがデータ戻りのためのものであることをアービトレータ400に通知することができる。この通知は、１クロックサイクルでタイムスタンプビット及びパリティビットを「１」に設定し、次いで、それに続くクロックで両方のビットを「０」に設定することにより行われる。
【００４６】
このデータ戻り信号により、アービトレータ400及びそのＰＡＣ118が、データ戻りのタイムスタンプを受信したがそれに対応するトランザクションをまだ受信していない場合に一層効率的に動作することが可能となる。アービトレータ400は、当該トランザクションがデータ戻りであってパージではないことが分かっているため、他の受信トランザクションをプロセッサ210に安全に送信することができる。
【００４７】
表３は、表１のコードシーケンスを使用した場合に本発明によってメモリアクセスが強く順序づけされる態様を示すものである。プロセッサの「ランウェイ」は、プロセッサボード116をＰＡＣ118に接続するバス122である、ということを想起されたい。更に、ラインＢがラインＡのためのセマフォーとして使用されることを想起されたい。
【００４８】
【表３】
0004112050.tif 000004
【００４９】
表３において、ＣＰＵ0によるＡについての要求がＣＰＵ0のランウェイに置かれる前にＣＰＵ1によるＢについての要求がＣＰＵ1のランウェイに置かれる。クロスバーでの遅延に起因して、ＣＰＵ0による要求が先にメモリに到着する。したがって、ＣＰＵ0による要求の結果として生じるトランザクションの方がＣＰＵ1による要求から生じるトランザクションよりも前にタイムスタンプが付与されることになる。タイムスタンプを付与することにより、各ＣＰＵがＢについてのストアを見る前にＡについてのパージを見ることが保証される。
【００５０】
メモリからＣＰＵのランウェイに送られるトランザクションは、常に該トランザクションにタイムスタンプが付与された順序でランウェイに置かれる。しかしながら、異なるランウェイに送られるトランザクションは、該トランザクションにタイムスタンプが付与されたときとは異なる順序でランウェイに置くことができる。したがって、読出しＢフラッシュトランザクションがＣＰＵ0のランウェイに置かれる前に、読出しＢオーナーシップ反映がＣＰＵ1のランウェイに置かれ、この操作は、それら２つのトランザクションが異なる順序でタイムスタンプが付与された場合であっても行われる。
【００５１】
以上、本発明及びその利点について詳述したが、特許請求の範囲に規定する本発明の思想及び範囲から逸脱することなく本発明に様々な変更、置換、又は変形を加えることが可能であることが理解されよう。
【００５２】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
【００５３】
１．マルチプロセッサコンピュータシステムにおいて強い順序づけを維持する方法であって、
タイムスタンプ信号を用いて第１のメモリトランザクションにタイムスタンプを付与し、
前記タイムスタンプ信号を第１の伝送経路を介してアービトレータに送信し、第２のメモリトランザクションがアービトレータに送信されるまで前記第１のメモリトランザクションの送信を遅延させることが可能な第２の伝送経路を介して前記第１のメモリトランザクションをアービトレータに送信し、
必要な場合にアービトレータにより前記タイムスタンプ信号を使用して前記第１のメモリトランザクションを第２のメモリトランザクションの前に再順序づけする、
という各ステップを有することを特徴とする方法。
【００５４】
２．前記タイムスタンプ信号と共にパリティ信号を送信するステップを更に有する、前項１に記載の方法。
３．前記パリティ信号及び前記タイムスタンプ信号に基づき前記第１のメモリトランザクションがデータ戻りであるか否かを判定し、
前記第１のメモリトランザクションがデータ戻りである場合には前記の再順序づけステップを行わない、
という各ステップを更に有する、前項２に記載の方法。
【００５５】
４．前記第１の伝送経路が、メモリエージェントとアービトレータとの間の一定の伝送時間を有する専用リンクである、前項１ないし前項３の何れかに記載の方法。
【００５６】
５．強く順序づけられたコヒーレントメモリを有するマルチプロセッサコンピュータシステムであって、
第１及び第２のメモリトランザクションと第１及び第２のタイムスタンプとを伝送するメモリエージェントであって、前記第１及び第２のタイムスタンプを第１の順序で伝送する、メモリエージェントと、
前記メモリエージェントからの前記第１及び第２のメモリトランザクションを受信し、前記第１及び第２のメモリトランザクションを前記第１の順序とは異なる第２の順序で送信する、クロスバーと、
前記クロスバーからの前記第１及び第２のメモリトランザクションを前記第２の順序で受信し、前記メモリエージェントからの前記第１及び第２のタイムスタンプを前記第１の順序で受信する、プロセッサエージェントと、
前記プロセッサエージェント内にあり、前記第１及び第２のメモリトランザクションを前記第１の順序へと再順序づけする、アービトレータと
を備えることを特徴とする、コンピュータシステム。
【００５７】
６．前記アービトレータ内にあり前記第１及び第２のタイムスタンプと前記第１及び第２のパリティ信号とに基づき前記第１のメモリトランザクションのタイプを判定する手段と、
前記第１のメモリトランザクションのタイプに応じて前記第１及び第２のメモリトランザクションを第３の順序へと再順序づけする手段と
を更に備えている、前項５に記載のコンピュータシステム。
【００５８】
７．前記プロセッサエージェントに接続された第１及び第２のプロセッサボードを更に備えており、
前記プロセッサエージェントが前記第１及び第２のプロセッサボードに第１及び第２のメモリトランザクションを前記第１の順序で送信する、
前項５または前項６に記載のコンピュータシステム。
【００５９】
８．マルチプロセッサコンピュータシステムにおいて強い順序づけを維持する方法であって、
複数のタイムスタンプを第１の順序で受信し、
前記タイムスタンプに１つずつ対応する複数のメモリトランザクションを前記第１の順序とは異なる第２の順序で受信し、
必要な場合に前記複数のメモリトランザクションを前記複数のタイムスタンプにより示される前記第１の順序へと再順序づけする、
という各ステップを有することを特徴とする方法。
【００６０】
９．前記複数のタイムスタンプが、複数のメモリエージェントから、一定の伝送時間を有する複数の専用通信リンクを介して伝送される、前項８に記載の方法。
【００６１】
１０．複数のパリティ信号及び前記複数のタイムスタンプのうちの選択された一方に基づき前記複数のメモリトランザクションのうちの特定のメモリトランザクションのタイプを判定し、
前記特定のメモリトランザクションのタイプに基づき前記複数のメモリトランザクションを第３の順序へと再順序づけする、
という各ステップを更に有する、前項８または前項９に記載の方法。
【図面の簡単な説明】
【図１】マルチプロセッサコンピュータシステム中の１つのノードを示す上位レベルのブロック図である。
【図２】プロセッサボードを示す上位レベルのブロック図である。
【図３】ＰＡＣとＭＡＣとがタイムスタンプ信号経路により相互接続される態様を示す上位レベルのブロック図である。
【図４】アービトレータを示すブロック図である。
【符号の説明】
100          ノード
110          プロセッサ側
112          メモリ側
114          クロスバー
116          プロセッサボード
118          プロセッサエージェントチップ
119          入出力サブシステム
120          コア論理アクセスバス
122          ランウェイバス
124          メモリアクセスチップ
126a,126b    メモリバンク
128          トーラスアクセスコントローラ
210          プロセッサ
212          命令キャッシュ
214          データキャッシュ
310          相互接続手段
400          アービトレータ
410          タイムスタンプ入力
412          パリティ入力
414,416      ＭＡＣ入力
418,420      ＣＰＵ出力
422          ＰＡＣ出力
424          Ｉ／Ｏ出力
【図１】
0004112050.tif 000005
【図２】
0004112050.tif 000006
【図３】
0004112050.tif 000007
【図４】
0004112050.tif 000008