JP4112050B2 - コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム - Google Patents
コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム Download PDFInfo
- Publication number
- JP4112050B2 JP4112050B2 JP26432797A JP26432797A JP4112050B2 JP 4112050 B2 JP4112050 B2 JP 4112050B2 JP 26432797 A JP26432797 A JP 26432797A JP 26432797 A JP26432797 A JP 26432797A JP 4112050 B2 JP4112050 B2 JP 4112050B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- order
- processor
- transaction
- arbitrator
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は一般にマルチプロセッサコンピュータシステムに関し、特にかかるシステムでキャッシュのコヒーレンシ−を維持する方法およびシステムに関する。
【0002】
【従来の技術】
マルチプロセッサコンピュータシステムは典型的には、多数の相互接続された処理ノードを有する。各ノードは、最大16個のプロセッサを有することができる。更に、各プロセッサは、1つまたは複数のメモリキャッシュを有することができる。これらのキャッシュは、プロセッサにより必要とされるプログラム及びデータを保持する。各キャッシュがコヒーレントなデータを保持することを確実化するために、コンピュータシステムにおける重要なハードウェアがそれ専用に割り当てられる。すなわち、各キャッシュは、メインメモリの内容を正確に反映するものとなる。
【0003】
幾つかのマルチプロセッサシステムでは、キャッシュは「強く順序づけされる(strongly ordered)」。かかる強く順序づけされるシステムでは、プロセッサは、同一ノード内の別のプロセッサのストア(store)を、そのストアが行われた順序と同一の順序で見る。
【0004】
強く順序づけされるシステムでは、ストアはセマフォーとして使用することができる。例えば、以下に示すストアシーケンスを考える。
【0005】
【表1】
【0006】
このシーケンスでは、ラインA'はデータであり、ラインB'はラインA'の使用が早すぎないように保護するセマフォーである。CPU0は、A’を変更し終わった後にのみB’を変更する。また、CPU1は、Bがセマフォーであるため、Bが変更されたことを確認するまではAを使用しない。強い順序づけは、CPU1がAの旧い値とBの新しい値とを決して同時に持たないことを必要とする。そうでなければ、CPU1は、新たにストアされた値ではなくAの旧いデータを使用する可能性がある。
【0007】
従来のシステムでは、他のプロセッサにパージコマンドを送り、応答の戻りを受け取ることによって、強い順序づけが維持されていた。したがって、表1の例の場合には、CPU0は、CPU1にAをパージするよう指示するコマンドをCPU1に送ることになる。CPU1は、該パージを完了すると、CPU0に「パージ完了」応答を返す。CPU0は、他のすべてのプロセッサから「パージ完了」応答を受け取るまで待ってからB'を変更する。
【0008】
【発明が解決しようとする課題】
「パージ完了」応答を待つことに関する問題は、パージコマンド及びその応答が一通り完了するのを待つことによって生じる遅延にある。この遅延は、コンピュータシステムの通常の動作時に各プロセッサにより行われるストアの数を乗じるとかなりの時間になる。加えて、パージコマンド及びその応答の送受信とカウントを行うために各キャッシュコントローラに追加の論理回路が必要となる。
【0009】
このため、当業界では、パージコマンドの送信及びそれに対する応答の待機を必要としない強い順序づけを維持する方法およびシステムが必要とされている。
【0010】
更に、当業界では、キャッシュコントローラに追加のカウント用の論理回路を必要としない強い順序づけを維持する方法およびシステムが必要とされている。
【0011】
【課題を解決するための手段】
上述その他の必要性は、タイムスタンプ信号を使用して、各プロセッサにトランザクションが送られる順序を示す、強い順序づけの方法およびシステムによって満たされる。このタイムスタンプ信号は、一定の伝送待ち時間を有する専用経路を介して伝送される。このため、プロセッサは、タイムスタンプ信号を、その信号が送信された順序で常に受け取る。
【0012】
アービトレータ(arbitrator)は、タイムスタンプ信号及びメモリトランザクションの両方を受信する。タイムスタンプ信号は、該信号が受信された順序でバッファリングされる。メモリトランザクションはクロスバーから受信される。クロスバーは、トランザクションの順序変更することができるため、アービトレータはトランザクションを、必ずしも該トランザクションが送信されたのと同じ順序で受信するとは限らない。アービトレータは、タイムスタンプ信号を使用することにより、トランザクションを正しい順序に並べ替えることができる。
【0013】
更に、各タイムスタンプ信号にはパリティビットが付く。特定のシーケンスのタイムスタンプ及びパリティビットは、それに対応するトランザクションがデータ戻りであることを示す。トランザクションがデータ戻りであってパージ操作ではないため、アービトレータは、別のトランザクションを順序外で送っても安全であることを知る。
【0014】
本発明の技術的な利点は、セマフォーにアクセスする際の待ち時間が短縮されることにある。「パージ完了」応答を待つ必要がないため、パージトランザクションと同時にデータ戻りを送ることができる。このため、セマフォーを変更する前に「パージ完了」応答を待つ必要がない。
【0015】
本発明の別の技術的な利点は、セマフォーの変更前に「パージ完了」応答をカウントする論理回路が不要となることにある。
【0016】
以上は、以下の本発明の詳細な説明を理解しやすくするために、本発明の特徴と技術的利点の概略を示したものである。本発明のその他の特徴および利点について以下で説明するが、それは特許請求の範囲に記載の本発明の要旨を構成するものである。当業者であれば、本開示の思想及び特定の実施態様を基礎として用いて修正または他の構造の設計を行い本発明と同一の目的を容易に達成することが可能であることが理解されよう。かかる等価的な構成は特許請求の範囲に記載の本発明の思想および範囲から逸脱しないものであることもまた当業者には理解されよう。
【0017】
【発明の実施の形態】
本発明及びその利点を一層良好に理解することができるように図面を参照しながら以下にその説明を行う。
【0018】
図1は、マルチプロセッサコンピュータシステムの1つのノード100を示す上位レベルのブロック図である。該コンピュータシステムは、1つのノード100しか備えていない場合もあれば、28個のノード壁(node wall)に構成された112個ものノードを備えている場合もある。かかるコンピュータシステムでは、1つのノード壁内のノードは、「7つのX次元リング×4つのY次元リング」として構成される。4つのノード壁は、4つのZ次元リングによって相互接続される。ブリッジノードを使用してY次元リングがZ次元リングに接続される。
【0019】
かかるシステムの各ノード(例えばノード100)は、プロセッサ側110とメモリ側112と、クロスバー114とに分けられる。各側には多数の同一の要素が含まれていることに留意されたい。分かり易くするために、本明細書の説明では、同様の要素には単一の符号を使用して示す。2つ以上の同様の要素を区別する場合には、符号に英字を付加して、その符号が指す要素を識別することとした。
【0020】
プロセッサ側110には、プロセッサボード116が含まれている。各プロセッサボード116は、ランウェイ(runway)バス122を介して対応するプロセッサエージェントチップ(PAC)118に接続されている。各PAC118は、入出力(I/O)サブシステム119を有しており、クロスバー114とコア論理アクセスバス120とに接続されている。
【0021】
クロスバー114の他方の側にはメモリアクセスチップ(MAC)124がある。各MAC124は、2つのメモリバンク126a,126bとリングアクセスコントローラ128とに接続されている。該リングアクセスコントローラは、トーラスアクセスコントローラ(TAC)とも呼ばれる。
【0022】
図1に示すように、本発明の一実施例は、各PAC118に接続された2つのプロセッサボードを有している。したがって、各ノード100は、合計16個のプロセッサボード116を有することができる。図2は、プロセッサボード116の例を示す上位レベルのブロック図である。
【0023】
図2には、プロセッサ(CPUとも呼ばれる)210、命令キャッシュ212、データキャッシュ214、及びランウェイバス122が示されている。プロセッサ210は、好適には、HEWLETT-PACKARD PA-8000プロセッサとなる。しかし、本発明は、プロセッサのタイプやアーキテクチャによって制限されるものではない。
【0024】
命令キャッシュ212及びデータキャッシュ214は、それぞれ1メガバイトの情報を保持することが好ましい。当業界で周知のように、キャッシュは、プロセッサにより使用されるメモリラインを保持する。どのラインをキャッシュに入れるかを決定する技法は、本発明の範囲外であり、本明細書では詳述しないこととする。メモリラインは、4状態コヒーレンシーモデルを使用してキャッシュに入れられる。このコヒーレンシーモデルについては以下で詳述することとする。前述のように、ランウェイバス122によってプロセッサ210がPAC118に接続される。
【0025】
ここで図1に戻る。コア論理アクセスバス120は主としてシステムブート操作に使用される。このバス120は、全てのPAC118を消去可能プログラマブル読出し専用メモリ(EPROM)、スタティックランダムアクセスメモリ(SRAM)、リアルタイムクロック、RS-232インタフェース、及びイーサネットインタフェースと結合する低帯域幅マルチドロップバスである。更に、プロセッサ210は、制御状態レジスタ(CSR)に対する書き込みを行うことができる。該CSRは、バス120を介してアクセスされてクロスバー114の初期設定及び構成を行うものである。
【0026】
PAC118は、プロセッサボード116及びI/Oサブシステム119とクロスバー114及びコア論理アクセスバス120とのインタフェースをとる。PAC118は、4つの一方向データ経路124を使用してクロスバー114との間でトランザクションの送受信を行う。
【0027】
図1に示すように、クロスバー114は、実際には、4つの別々の経路指定接続チップ(RAC:routing attachment chip)114a〜114dからなる。クロスバー114は、PAC118とMAC124との間でトランザクションを転送する。各RAC114a〜114dは、16個の32ビット幅の一方向相互接続手段を有している。該一方向相互接続手段は、各RAC114a〜114dを4つのPACと4つのMACとに接続するものである。クロスバー114は、それ自体のCSRを有さず、コアアクセス論理バス120上にあるCSRへの書込みによって初期設定される。これらのCSRは、どのポートがアクティブであるかを制御し、及びエラー検出を可能にする。
【0028】
MAC124は、コヒーレントメモリへのアクセスを制御する。図1では、1つのMAC124につき2つのメモリバンク126a,126bしか示されていないが、各MAC124は4つのメモリバンクを制御することが好ましい。このように、8つのMACを有するシステムでは最大32個のメモリバンクを制御することが可能である。これらのメモリバンク126は、SDRAMのデュアルインラインメモリモジュール(DIMM)であることが好ましい。MAC124によって制御されるメモリは、ノードローカルメモリ、ネットワークキャッシング、及びメッセージングのために使用される。
【0029】
キャッシュ212,214に関して簡単に述べたように、ノード100内のメモリは強く順序づけされたディレクトリベースの4状態メモリである。本明細書で使用する「強く順序づけされた」という用語は、1つのプロセッサ210が、同一ノード内の他のプロセッサによって行われたストアを、該ストアが行われた順序と同じ順序で見ることを意味する。オーナーシップの反映及び無効化の順序づけを行うことにより、ノード100内のコヒーレントなアクセス間で強い順序づけが維持される。オーナーシップの反映により、プロセッサがデータ戻りを使用することが可能となる。通常、オーナーシップの反映は、データ戻りと共にプロセッサに送られる。したがって、プロセッサは、システムが該システムに戻されるプロセッサの読出要求を反映する場合に、1ラインのオーナーシップを獲得する。強い順序づけは、ノード100内のコヒーレントアクセスと非コヒーレントアクセスとの間でも維持される。
【0030】
メモリラインはディレクトリベースのものである。各メモリラインのタグは、どのプロセッサ及びI/Oポートがそのメモリラインのオーナーシップを有しているかを示すラインオーナーまたは共有マスクを有している。ラインのフラッシュまたはパージを行う必要がある場合、その情報を使用して、そのラインを有することができるプロセッサ及びI/Oポートだけにトランザクションを送る。
【0031】
また、メモリラインは4状態を有する。したがって、メモリラインは、プライベートダーティ、プライベートクリーン、共有、または非共有の状態となり得る。この4状態によって、データを共有読出要求のために選択的にプライベートに戻すことが可能となる。或るラインが最初に共有読出しされる際に、該ラインがプライベートに戻される。それ以降の共有読出しでは、最初のオーナーが該ラインをダーティにしていない場合に、該ラインが共有にされる。この技法は、最も一般的な場合であるラインが共有にされていない場合について最適化される。
【0032】
最後に、TAC128は、ノード100からコンピュータシステム中の別のノードへのインタフェースとして作用する。TAC128は、2つの一方向データ経路を介してMAC124と通信を行う。TAC128は、2つのリング、即ち、X次元リング及びY次元リングとのインタフェースを有している。
【0033】
一般に、プロセッサ210は、クロスバー114に要求を送ることによってメモリにアクセスする。この要求は次いでMAC124のうちの1つに送られる。MAC124は、そのメモリバンク126にアクセスして、エラー修正情報及びタグ付きコヒーレンシー情報を調べる。追加のコヒーレンシー操作が不要である場合には、クロスバー114に応答を返送することによって、メモリ126からアクセスされたデータがプロセッサ210に戻される。次いでクロスバー114がその応答をPAC118に送り、該PAC118がランウェイバス122上に読出応答を生成する。
【0034】
詳細には、プロセッサ210は、2つのコヒーレント読取りトランザクション、即ち、Read_Private及びRead_Shar_or_Privのうちの一方を発行することができる。Read_Privateトランザクションは、ストア命令によって開始される。要求されたデータを含むラインがプロセッサにプライベート・クリーンで戻される。該ラインが、別のプロセッサのキャッシュにプライベート・ダーティを保持している場合には、該ラインが、そのキャッシュから、要求側プロセッサへと移されると同時に、メモリ中の旧いコピーが更新される。それ以外の場合には、要求されたラインがメモリから読み出され、キャッシュされた該ラインのコピーが全てパージされる。
【0035】
トランザクションRead_Shar_or_Privは、ロード命令によって開始される。要求されたデータを含むラインは、共有またはプライベート・クリーンでプロセッサに戻される。要求されたラインが、別のプロセッサのキャッシュにプライベート・ダーティで保持されている場合には、該ラインが、現在のオーナーのキャッシュから要求側プロセッサへとプライベート・クリーンでコピーされると同時に、メモリ中の旧いコピーが更新される。要求されたラインが、別のプロセッサのキャッシュにプライベート・クリーンまたは共有で保持されている場合には、要求されたラインは、メモリから共有で戻され、プライベート・クリーンのコピーが全て共有に変換される。更に、同一ラインについて別の読出要求があった場合、またはプロセッサがラインをプライベートで有していることをメモリタグが示しているが問い合わせ時に該プロセッサが該ラインをもはや有していないことが分かった場合には、該ラインは共有に戻される。最後に、要求されたラインが他のどのプロセッサのキャッシュにも保持されていない場合は、該ラインはプライベート・クリーンに戻される。
【0036】
図3は、PAC118とMAC124が、タイムスタンプを使用して上記のトランザクションシーケンスを実行するように相互接続される態様を示す上位レベルのブロック図である。同図には、3つのPAC118a〜118c、3つのMAC124a〜124c、及びPAC118とMAC124とを接続する相互接続手段310が示されており、相互接続手段310a〜310cはその典型的なものである。同図には、3つのPAC118a〜118cと3つのMAC124a〜124cとしか示されていないが、好ましい実施例はそれぞれ8つ、合計で64個の相互接続手段を有するものとなる。
【0037】
相互接続手段310は、各MAC124から各PAC118へと信号を送信する。相互接続手段310は、一方向及び2ビット幅のものである。各相互接続手段310は、1ビットのタイムスタンプ信号と1ビットのパリティ信号とを伝送する。相互接続手段310は直接リンクであり、従って一定の伝送待ち時間を有するものであることに留意されたい。相互接続手段310は図1には示していない。
【0038】
相互接続310と通信を行うために、各MAC124は8対の出力を有し、各PAC118は8対の入力を有する。MAC124は、クロスバー114を介してPAC118にメモリトランザクションを送信する際に、相互接続手段310を介して該PAC118にタイムスタンプ及びパリティビットも送信する。クロスバー114は、該クロスバー114を通過するトランザクションの順序を変更することができるが、タイムスタンプ及びパリティビットは、常に、それらが送信された順序と同じ順序でPAC118に到達する。
【0039】
各PAC118内には、タイムスタンプ信号及びパリティ信号を受信するアービトレータがある。図4はアービトレータ400を示すブロック図である。アービトレータ400は、タイムスタンプ入力410及びパリティ入力412を有している。タイムスタンプ入力410及びパリティ入力412は両方とも8ビット幅を有している。更に、アービトレータ400は、各MAC124からの入力も有している。なお、MAC124からの入力のうちの2つの入力414,416しか示していない。最後に、アービトレータ400は、4つの出力も有している。最初の2つの出力418,420は、CPU0及びCPU1にそれぞれ接続される。第3の出力422は、PAC118に接続され、制御レジスタ及び状況レジスタへのアクセスに使用される。第4の出力424は、I/Oポート119へのアクセスに使用される。
【0040】
アービトレータ400は、クロスバー114から到着したトランザクションを、プロセッサ、PAC118、またはI/Oポート119に送る順序を制御する。しかしながら、PAC出力422及びI/O出力424は強く順序づけされないことに留意されたい。基本的に、アービトレータ400は、タイムスタンプを使用して、MAC124から受信したトランザクションをプロセッサ210に送る順序を割り出す。入力410及びMAC入力414,416から受信したタイムスタンプがバッファリングされる。次いで、該タイムスタンプの順序が、MAC入力414,416から受信したトランザクションに付与される。このため、特定のMAC124からのタイムスタンプを受信した場合には、アービトレータ400は、その特定のMAC124に対応する入力から受信したトランザクションが送出されるまでは、プロセッサ210にどのトランザクションも送出しない。
【0041】
しかしながら、アービトレータ400は、パージ(無効化)を、まだ到着していないそれより前のタイムスタンプを持つトランザクションよりも先にプロセッサ210に送ることを許容する。データ戻りがそれよりも前のタイムスタンプが付与されたパージを伝えない限り、コヒーレントアクセスについて強い順序づけが維持される。
【0042】
更に、アービトレータ400の好ましい実施例は、パリティビットを使用して、その効率を更に向上させる。通常、アービトレータ400は、奇数パリティを使用する。即ち、パリティビットは、常にタイムスタンプビットの逆となる。しかしながら、アービトレータ400の好ましい実施例は、パリティビットを使用して、オーナーシップ反映及びデータ戻りが共に送られた場合にMAC124から送られたトランザクションのタイプを判定する。この技法は、「ロングタイムスタンプ(long timestamp)」と呼ばれるものである。
【0043】
表2にロングタイムスタンプの使用法を示す。
【0044】
【表2】
【0045】
MAC124は、表2に示す信号を使用して、タイムスタンプがデータ戻りのためのものであることをアービトレータ400に通知することができる。この通知は、1クロックサイクルでタイムスタンプビット及びパリティビットを「1」に設定し、次いで、それに続くクロックで両方のビットを「0」に設定することにより行われる。
【0046】
このデータ戻り信号により、アービトレータ400及びそのPAC118が、データ戻りのタイムスタンプを受信したがそれに対応するトランザクションをまだ受信していない場合に一層効率的に動作することが可能となる。アービトレータ400は、当該トランザクションがデータ戻りであってパージではないことが分かっているため、他の受信トランザクションをプロセッサ210に安全に送信することができる。
【0047】
表3は、表1のコードシーケンスを使用した場合に本発明によってメモリアクセスが強く順序づけされる態様を示すものである。プロセッサの「ランウェイ」は、プロセッサボード116をPAC118に接続するバス122である、ということを想起されたい。更に、ラインBがラインAのためのセマフォーとして使用されることを想起されたい。
【0048】
【表3】
【0049】
表3において、CPU0によるAについての要求がCPU0のランウェイに置かれる前にCPU1によるBについての要求がCPU1のランウェイに置かれる。クロスバーでの遅延に起因して、CPU0による要求が先にメモリに到着する。したがって、CPU0による要求の結果として生じるトランザクションの方がCPU1による要求から生じるトランザクションよりも前にタイムスタンプが付与されることになる。タイムスタンプを付与することにより、各CPUがBについてのストアを見る前にAについてのパージを見ることが保証される。
【0050】
メモリからCPUのランウェイに送られるトランザクションは、常に該トランザクションにタイムスタンプが付与された順序でランウェイに置かれる。しかしながら、異なるランウェイに送られるトランザクションは、該トランザクションにタイムスタンプが付与されたときとは異なる順序でランウェイに置くことができる。したがって、読出しBフラッシュトランザクションがCPU0のランウェイに置かれる前に、読出しBオーナーシップ反映がCPU1のランウェイに置かれ、この操作は、それら2つのトランザクションが異なる順序でタイムスタンプが付与された場合であっても行われる。
【0051】
以上、本発明及びその利点について詳述したが、特許請求の範囲に規定する本発明の思想及び範囲から逸脱することなく本発明に様々な変更、置換、又は変形を加えることが可能であることが理解されよう。
【0052】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
【0053】
1.マルチプロセッサコンピュータシステムにおいて強い順序づけを維持する方法であって、
タイムスタンプ信号を用いて第1のメモリトランザクションにタイムスタンプを付与し、
前記タイムスタンプ信号を第1の伝送経路を介してアービトレータに送信し、第2のメモリトランザクションがアービトレータに送信されるまで前記第1のメモリトランザクションの送信を遅延させることが可能な第2の伝送経路を介して前記第1のメモリトランザクションをアービトレータに送信し、
必要な場合にアービトレータにより前記タイムスタンプ信号を使用して前記第1のメモリトランザクションを第2のメモリトランザクションの前に再順序づけする、
という各ステップを有することを特徴とする方法。
【0054】
2.前記タイムスタンプ信号と共にパリティ信号を送信するステップを更に有する、前項1に記載の方法。
3.前記パリティ信号及び前記タイムスタンプ信号に基づき前記第1のメモリトランザクションがデータ戻りであるか否かを判定し、
前記第1のメモリトランザクションがデータ戻りである場合には前記の再順序づけステップを行わない、
という各ステップを更に有する、前項2に記載の方法。
【0055】
4.前記第1の伝送経路が、メモリエージェントとアービトレータとの間の一定の伝送時間を有する専用リンクである、前項1ないし前項3の何れかに記載の方法。
【0056】
5.強く順序づけられたコヒーレントメモリを有するマルチプロセッサコンピュータシステムであって、
第1及び第2のメモリトランザクションと第1及び第2のタイムスタンプとを伝送するメモリエージェントであって、前記第1及び第2のタイムスタンプを第1の順序で伝送する、メモリエージェントと、
前記メモリエージェントからの前記第1及び第2のメモリトランザクションを受信し、前記第1及び第2のメモリトランザクションを前記第1の順序とは異なる第2の順序で送信する、クロスバーと、
前記クロスバーからの前記第1及び第2のメモリトランザクションを前記第2の順序で受信し、前記メモリエージェントからの前記第1及び第2のタイムスタンプを前記第1の順序で受信する、プロセッサエージェントと、
前記プロセッサエージェント内にあり、前記第1及び第2のメモリトランザクションを前記第1の順序へと再順序づけする、アービトレータと
を備えることを特徴とする、コンピュータシステム。
【0057】
6.前記アービトレータ内にあり前記第1及び第2のタイムスタンプと前記第1及び第2のパリティ信号とに基づき前記第1のメモリトランザクションのタイプを判定する手段と、
前記第1のメモリトランザクションのタイプに応じて前記第1及び第2のメモリトランザクションを第3の順序へと再順序づけする手段と
を更に備えている、前項5に記載のコンピュータシステム。
【0058】
7.前記プロセッサエージェントに接続された第1及び第2のプロセッサボードを更に備えており、
前記プロセッサエージェントが前記第1及び第2のプロセッサボードに第1及び第2のメモリトランザクションを前記第1の順序で送信する、
前項5または前項6に記載のコンピュータシステム。
【0059】
8.マルチプロセッサコンピュータシステムにおいて強い順序づけを維持する方法であって、
複数のタイムスタンプを第1の順序で受信し、
前記タイムスタンプに1つずつ対応する複数のメモリトランザクションを前記第1の順序とは異なる第2の順序で受信し、
必要な場合に前記複数のメモリトランザクションを前記複数のタイムスタンプにより示される前記第1の順序へと再順序づけする、
という各ステップを有することを特徴とする方法。
【0060】
9.前記複数のタイムスタンプが、複数のメモリエージェントから、一定の伝送時間を有する複数の専用通信リンクを介して伝送される、前項8に記載の方法。
【0061】
10.複数のパリティ信号及び前記複数のタイムスタンプのうちの選択された一方に基づき前記複数のメモリトランザクションのうちの特定のメモリトランザクションのタイプを判定し、
前記特定のメモリトランザクションのタイプに基づき前記複数のメモリトランザクションを第3の順序へと再順序づけする、
という各ステップを更に有する、前項8または前項9に記載の方法。
【図面の簡単な説明】
【図1】マルチプロセッサコンピュータシステム中の1つのノードを示す上位レベルのブロック図である。
【図2】プロセッサボードを示す上位レベルのブロック図である。
【図3】PACとMACとがタイムスタンプ信号経路により相互接続される態様を示す上位レベルのブロック図である。
【図4】アービトレータを示すブロック図である。
【符号の説明】
100 ノード
110 プロセッサ側
112 メモリ側
114 クロスバー
116 プロセッサボード
118 プロセッサエージェントチップ
119 入出力サブシステム
120 コア論理アクセスバス
122 ランウェイバス
124 メモリアクセスチップ
126a,126b メモリバンク
128 トーラスアクセスコントローラ
210 プロセッサ
212 命令キャッシュ
214 データキャッシュ
310 相互接続手段
400 アービトレータ
410 タイムスタンプ入力
412 パリティ入力
414,416 MAC入力
418,420 CPU出力
422 PAC出力
424 I/O出力
Claims (3)
- マルチプロセッサコンピュータシステムにおいて強い順序付けを維持する方法であって、
タイムスタンプ信号を用いて第1のメモリトランザクションにタイムスタンプを付与するステップと、
前記タイムスタンプ信号を第1の伝送経路を介してアービトレータに送信するステップと、
第2のメモリトランザクションが前記アービトレータに送信され終わるまで前記第1のメモリトランザクションの送信を遅らせることが可能な第2の伝送経路を介して、前記第1のメモリトランザクションを前記アービトレータに送信するステップと、
前記アービトレータにより前記タイムスタンプ信号を用いて必要に応じて前記第1のメモリトランザクションを前記第2のメモリトランザクションよりも前に再順序付けするステップと
からなる方法。 - 強く順序づけられたコヒーレントメモリを有するマルチプロセッサコンピュータシステムであって、
第1および第2のメモリトランザクションと第1および第2のタイムスタンプとを伝送するメモリエージェントであって、前記第1および第2のタイムスタンプを第1の順序で伝送する、メモリエージェントと、
前記メモリエージェントから前記第1および第2のメモリトランザクションを受信し、該第1および第2のメモリトランザクションを前記第1の順序とは異なる第2の順序で送信する、クロスバーと、
前記クロスバーから前記第1および第2のメモリトランザクションを前記第2の順序で受信し、前記メモリエージェントから前記第1および第2のタイムスタンプを前記第1の順序で受信する、プロセッサエージェントと、
前記第1および第2のメモリトランザクションを前記第1の順序に再順序付けする、前記プロセッサエージェント内に設けられたアービトレータと
からなるマルチプロセッサコンピュータシステム。 - マルチプロセッサコンピュータシステムにおいて強い順序付けを維持する方法であって、
複数のタイムスタンプのそれぞれが少なくとも1ビットを有する、複数のタイムスタンプを第1の順序で受信するステップと、
複数のメモリトランザクションのそれぞれがタイムスタンプに対応する、複数のメモリトランザクションを前記第1の順序とは異なる第2の順序で受信するステップと、
必要に応じて前記複数のメモリトランザクションを前記複数のタイムスタンプにより前記第1の順序に再順序付けするステップと
からなる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US720330 | 1985-04-05 | ||
US08/720,330 US5930822A (en) | 1996-09-27 | 1996-09-27 | Method and system for maintaining strong ordering in a coherent memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10187534A JPH10187534A (ja) | 1998-07-21 |
JP4112050B2 true JP4112050B2 (ja) | 2008-07-02 |
Family
ID=24893596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26432797A Expired - Fee Related JP4112050B2 (ja) | 1996-09-27 | 1997-09-29 | コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5930822A (ja) |
JP (1) | JP4112050B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092595B2 (en) | 1997-10-08 | 2015-07-28 | Pact Xpp Technologies Ag | Multiprocessor having associated RAM units |
US6643746B1 (en) * | 1997-12-24 | 2003-11-04 | Creative Technology Ltd. | Optimal multi-channel memory controller system |
US6587931B1 (en) * | 1997-12-31 | 2003-07-01 | Unisys Corporation | Directory-based cache coherency system supporting multiple instruction processor and input/output caches |
US6081874A (en) * | 1998-09-29 | 2000-06-27 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect |
US6167492A (en) | 1998-12-23 | 2000-12-26 | Advanced Micro Devices, Inc. | Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system |
US6189061B1 (en) * | 1999-02-01 | 2001-02-13 | Motorola, Inc. | Multi-master bus system performing atomic transactions and method of operating same |
US6681320B1 (en) | 1999-12-29 | 2004-01-20 | Intel Corporation | Causality-based memory ordering in a multiprocessing environment |
WO2005041047A2 (en) * | 2003-10-22 | 2005-05-06 | Intel Corporation | Method and apparatus for efficient ordered stores over an interconnection network |
US8117392B2 (en) * | 2003-10-22 | 2012-02-14 | Intel Corporation | Method and apparatus for efficient ordered stores over an interconnection network |
US7774562B2 (en) * | 2004-09-17 | 2010-08-10 | Hewlett-Packard Development Company, L.P. | Timeout acceleration for globally shared memory transaction tracking table |
US7600023B2 (en) * | 2004-11-05 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Systems and methods of balancing crossbar bandwidth |
US7694064B2 (en) * | 2004-12-29 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Multiple cell computer systems and methods |
GB2469299B (en) * | 2009-04-07 | 2011-02-16 | Imagination Tech Ltd | Ensuring consistency between a data cache and a main memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0776942B2 (ja) * | 1991-04-22 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システムおよびそのデータ伝送装置 |
JPH07114515A (ja) * | 1993-10-19 | 1995-05-02 | Hitachi Chem Co Ltd | 同期通信用ネットワークを有する分散メモリ計算機 |
JP3599381B2 (ja) * | 1994-09-12 | 2004-12-08 | キヤノン株式会社 | 情報処理システム及びその方法 |
JPH09244984A (ja) * | 1996-03-08 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
JPH09282296A (ja) * | 1996-04-10 | 1997-10-31 | Hitachi Ltd | 多重化ノード間通信制御方式 |
-
1996
- 1996-09-27 US US08/720,330 patent/US5930822A/en not_active Expired - Lifetime
-
1997
- 1997-09-29 JP JP26432797A patent/JP4112050B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10187534A (ja) | 1998-07-21 |
US5930822A (en) | 1999-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6279084B1 (en) | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system | |
US6108752A (en) | Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency | |
US6480927B1 (en) | High-performance modular memory system with crossbar connections | |
US6249520B1 (en) | High-performance non-blocking switch with multiple channel ordering constraints | |
US6014690A (en) | Employing multiple channels for deadlock avoidance in a cache coherency protocol | |
US6154816A (en) | Low occupancy protocol for managing concurrent transactions with dependencies | |
US6085276A (en) | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies | |
EP0911731B1 (en) | Order supporting mechanisms for use in a switch-based multi-processor system | |
US6101420A (en) | Method and apparatus for disambiguating change-to-dirty commands in a switch based multi-processing system with coarse directories | |
US6094686A (en) | Multi-processor system for transferring data without incurring deadlock using hierarchical virtual channels | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US6557069B1 (en) | Processor-memory bus architecture for supporting multiple processors | |
US6789173B1 (en) | Node controller for performing cache coherence control and memory-shared multiprocessor system | |
US6526469B1 (en) | Bus architecture employing varying width uni-directional command bus | |
US6675265B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
US6925537B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
JP2512651B2 (ja) | メモリ共有マルチプロセッサ | |
US6263405B1 (en) | Multiprocessor system | |
EP0351955B1 (en) | Multiprocessor systems with cross-interrogated store-in-caches | |
EP1777626A1 (en) | System and method for dynamic mirror-bank addressing | |
US20030149844A1 (en) | Block data mover adapted to contain faults in a partitioned multiprocessor system | |
US6996645B1 (en) | Method and apparatus for spawning multiple requests from a single entry of a queue | |
TW484068B (en) | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system | |
JP4112050B2 (ja) | コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム | |
JPH09114736A (ja) | パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040917 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080219 |
|
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: 20080311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080409 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |