JPH10187534A - コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム - Google Patents

コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム

Info

Publication number
JPH10187534A
JPH10187534A JP9264327A JP26432797A JPH10187534A JP H10187534 A JPH10187534 A JP H10187534A JP 9264327 A JP9264327 A JP 9264327A JP 26432797 A JP26432797 A JP 26432797A JP H10187534 A JPH10187534 A JP H10187534A
Authority
JP
Japan
Prior art keywords
memory
processor
order
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.)
Granted
Application number
JP9264327A
Other languages
English (en)
Other versions
JP4112050B2 (ja
Inventor
Chaney Kenneth
ケネス・チャニー
David M Chastain
デイヴィッド・エム・チャスティーン
David M Patrick
デイヴィッド・エム・パトリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10187534A publication Critical patent/JPH10187534A/ja
Application granted granted Critical
Publication of JP4112050B2 publication Critical patent/JP4112050B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access 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)

Abstract

(57)【要約】 【課題】 コヒーレントメモリを有するマルチフ゜ロセッサコンヒ゜ュータシステムに
おいて強い順序付けを維持する方法及びシステムを提供する
こと。 【解決手段】 メモリトランサ゛クション(MT)が1つ以上のフ゜ロセッサ210
からフ゜ロセッサエーシ゛ェント(PA)118へ送られる。PA118はクロスハ゛ース
イッチ(CB)114を介しメモリエーシ゛ェント(MA)124にトランサ゛クションを送
る。MA124はメモリコヒーレンシー操作を行いCB114を介してPA118
にMTを返送する。CB114はPA118にMTが送られる順序を変
更できる。このためMA124は各MT毎にタイムスタンフ゜(TA)を専
用リンク310を介してPA118に送る。PA118内のアーヒ゛トレータ(A)4
00は該TA及びMTを受信し、該TAを用いてMTを再順序付け
し、該MTが送られた順序でフ゜ロセッサ210に該MTを送る。更
にMA124は各TAと共にハ゜リティ信号を送る。ハ゜リティ信号及びT
Aの特定の組み合わせによりMA124から受信することにな
るMTのタイフ゜がA400に伝えられる。MTのタイフ゜に応じてA400
はフ゜ロセッサ210にMTが送られる順序を変更できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にマルチプロセ
ッサコンピュータシステムに関し、特にかかるシステム
でキャッシュのコヒーレンシ−を維持する方法およびシ
ステムに関する。
【0002】
【従来の技術】マルチプロセッサコンピュータシステム
は典型的には、多数の相互接続された処理ノードを有す
る。各ノードは、最大16個のプロセッサを有すること
ができる。更に、各プロセッサは、1つまたは複数のメ
モリキャッシュを有することができる。これらのキャッ
シュは、プロセッサにより必要とされるプログラム及び
データを保持する。各キャッシュがコヒーレントなデー
タを保持することを確実化するために、コンピュータシ
ステムにおける重要なハードウェアがそれ専用に割り当
てられる。すなわち、各キャッシュは、メインメモリの
内容を正確に反映するものとなる。
【0003】幾つかのマルチプロセッサシステムでは、
キャッシュは「強く順序づけされる(strongly ordere
d)」。かかる強く順序づけされるシステムでは、プロセ
ッサは、同一ノード内の別のプロセッサのストア(stor
e)を、そのストアが行われた順序と同一の順序で見る。
【0004】強く順序づけされるシステムでは、ストア
はセマフォーとして使用することができる。例えば、以
下に示すストアシーケンスを考える。
【0005】
【表1】
【0006】このシーケンスでは、ラインA'はデータ
であり、ラインB'はラインA'の使用が早すぎないよう
に保護するセマフォーである。CPU0は、A’を変更
し終わった後にのみB’を変更する。また、CPU1
は、Bがセマフォーであるため、Bが変更されたことを
確認するまではAを使用しない。強い順序づけは、CP
U1が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つのノード10
0しか備えていない場合もあれば、28個のノード壁(node
wall)に構成された112個ものノードを備えている場合
もある。かかるコンピュータシステムでは、1つのノー
ド壁内のノードは、「7つのX次元リング×4つのY次
元リング」として構成される。4つのノード壁は、4つ
のZ次元リングによって相互接続される。ブリッジノー
ドを使用してY次元リングがZ次元リングに接続され
る。
【0019】かかるシステムの各ノード(例えばノード
100)は、プロセッサ側110とメモリ側112と、クロスバ
ー114とに分けられる。各側には多数の同一の要素が含
まれていることに留意されたい。分かり易くするため
に、本明細書の説明では、同様の要素には単一の符号を
使用して示す。2つ以上の同様の要素を区別する場合に
は、符号に英字を付加して、その符号が指す要素を識別
することとした。
【0020】プロセッサ側110には、プロセッサボード1
16が含まれている。各プロセッサボード116は、ランウ
ェイ(runway)バス122を介して対応するプロセッサエー
ジェントチップ(PAC)118に接続されている。各P
AC118は、入出力(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及びデータキャッシュ2
14は、それぞれ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:rou
ting 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つに送られる。MA
C124は、そのメモリバンク126にアクセスして、エラー
修正情報及びタグ付きコヒーレンシー情報を調べる。追
加のコヒーレンシー操作が不要である場合には、クロス
バー114に応答を返送することによって、メモリ126から
アクセスされたデータがプロセッサ210に戻される。次
いでクロスバー114がその応答をPAC118に送り、該P
AC118がランウェイバス122上に読出応答を生成する。
【0034】詳細には、プロセッサ210は、2つのコヒ
ーレント読取りトランザクション、即ち、Read_Private
及びRead_Shar_or_Privのうちの一方を発行することが
できる。Read_Privateトランザクションは、ストア命令
によって開始される。要求されたデータを含むラインが
プロセッサにプライベート・クリーンで戻される。該ラ
インが、別のプロセッサのキャッシュにプライベート・
ダーティを保持している場合には、該ラインが、そのキ
ャッシュから、要求側プロセッサへと移されると同時
に、メモリ中の旧いコピーが更新される。それ以外の場
合には、要求されたラインがメモリから読み出され、キ
ャッシュされた該ラインのコピーが全てパージされる。
【0035】トランザクションRead_Shar_or_Privは、
ロード命令によって開始される。要求されたデータを含
むラインは、共有またはプライベート・クリーンでプロ
セッサに戻される。要求されたラインが、別のプロセッ
サのキャッシュにプライベート・ダーティで保持されて
いる場合には、該ラインが、現在のオーナーのキャッシ
ュから要求側プロセッサへとプライベート・クリーンで
コピーされると同時に、メモリ中の旧いコピーが更新さ
れる。要求されたラインが、別のプロセッサのキャッシ
ュにプライベート・クリーンまたは共有で保持されてい
る場合には、要求されたラインは、メモリから共有で戻
され、プライベート・クリーンのコピーが全て共有に変
換される。更に、同一ラインについて別の読出要求があ
った場合、またはプロセッサがラインをプライベートで
有していることをメモリタグが示しているが問い合わせ
時に該プロセッサが該ラインをもはや有していないこと
が分かった場合には、該ラインは共有に戻される。最後
に、要求されたラインが他のどのプロセッサのキャッシ
ュにも保持されていない場合は、該ラインはプライベー
ト・クリーンに戻される。
【0036】図3は、PAC118とMAC124が、タイム
スタンプを使用して上記のトランザクションシーケンス
を実行するように相互接続される態様を示す上位レベル
のブロック図である。同図には、3つのPAC118a〜11
8c、3つのMAC124a〜124c、及びPAC118と
MAC124とを接続する相互接続手段310が示されてお
り、相互接続手段310a〜310cはその典型的なものであ
る。同図には、3つのPAC118a〜118cと3つのMAC
124a〜124cとしか示されていないが、好ましい実施例は
それぞれ8つ、合計で64個の相互接続手段を有するもの
となる。
【0037】相互接続手段310は、各MAC124から各P
AC118へと信号を送信する。相互接続手段310は、一方
向及び2ビット幅のものである。各相互接続手段310
は、1ビットのタイムスタンプ信号と1ビットのパリテ
ィ信号とを伝送する。相互接続手段310は直接リンクで
あり、従って一定の伝送待ち時間を有するものであるこ
とに留意されたい。相互接続手段310は図1には示して
いない。
【0038】相互接続310と通信を行うために、各MA
C124は8対の出力を有し、各PAC118は8対の入力を
有する。MAC124は、クロスバー114を介してPAC11
8にメモリトランザクションを送信する際に、相互接続
手段310を介して該PAC118にタイムスタンプ及びパリ
ティビットも送信する。クロスバー114は、該クロスバ
ー114を通過するトランザクションの順序を変更するこ
とができるが、タイムスタンプ及びパリティビットは、
常に、それらが送信された順序と同じ順序でPAC118
に到達する。
【0039】各PAC118内には、タイムスタンプ信号
及びパリティ信号を受信するアービトレータがある。図
4はアービトレータ400を示すブロック図である。アー
ビトレータ400は、タイムスタンプ入力410及びパリティ
入力412を有している。タイムスタンプ入力410及びパリ
ティ入力412は両方とも8ビット幅を有している。更
に、アービトレータ400は、各MAC124からの入力も有
している。なお、MAC124からの入力のうちの2つの
入力414,416しか示していない。最後に、アービトレー
タ400は、4つの出力も有している。最初の2つの出力4
18,420は、CPU0及びCPU1にそれぞれ接続される。
第3の出力422は、PAC118に接続され、制御レジスタ
及び状況レジスタへのアクセスに使用される。第4の出
力424は、I/Oポート119へのアクセスに使用される。
【0040】アービトレータ400は、クロスバー114から
到着したトランザクションを、プロセッサ、PAC11
8、または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は、奇数パリティを
使用する。即ち、パリティビットは、常にタイムスタン
プビットの逆となる。しかしながら、アービトレータ40
0の好ましい実施例は、パリティビットを使用して、オ
ーナーシップ反映及びデータ戻りが共に送られた場合に
MAC124から送られたトランザクションのタイプを判
定する。この技法は、「ロングタイムスタンプ(long ti
mestamp)」と呼ばれるものである。
【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によ
る要求の結果として生じるトランザクションの方がCP
U1による要求から生じるトランザクションよりも前に
タイムスタンプが付与されることになる。タイムスタン
プを付与することにより、各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 (1)

    【特許請求の範囲】
  1. 【請求項1】マルチプロセッサコンピュータシステムに
    おいて強い順序づけを維持する方法であって、 タイムスタンプ信号を用いて第1のメモリトランザクシ
    ョンにタイムスタンプを付与し、 前記タイムスタンプ信号を第1の伝送経路を介してアー
    ビトレータに送信し、 第2のメモリトランザクションがアービトレータに送信
    されるまで前記第1のメモリトランザクションの送信を
    遅延させることが可能な第2の伝送経路を介して前記第
    1のメモリトランザクションをアービトレータに送信
    し、 必要な場合にアービトレータにより前記タイムスタンプ
    信号を使用して前記第1のメモリトランザクションを第
    2のメモリトランザクションの前に再順序づけする、と
    いう各ステップを有することを特徴とする方法。
JP26432797A 1996-09-27 1997-09-29 コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム Expired - Fee Related JP4112050B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/720,330 US5930822A (en) 1996-09-27 1996-09-27 Method and system for maintaining strong ordering in a coherent memory system
US720330 1996-09-27

Publications (2)

Publication Number Publication Date
JPH10187534A true JPH10187534A (ja) 1998-07-21
JP4112050B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007509439A (ja) * 2003-10-22 2007-04-12 インテル コーポレイション 相互接続ネットワークでの効率的な順序保存用の方法及び装置
JP2012523055A (ja) * 2009-04-07 2012-09-27 イマジネイション テクノロジーズ リミテッド データキャッシュとメインメモリ間の一貫性の保証

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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
JP2002500395A (ja) * 1997-12-24 2002-01-08 クリエイティブ、テクノロジー、リミテッド 最適な多チャネル記憶制御システム
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
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328653A (ja) * 1991-04-22 1992-11-17 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムおよびそのデータ伝送装置
JPH07114515A (ja) * 1993-10-19 1995-05-02 Hitachi Chem Co Ltd 同期通信用ネットワークを有する分散メモリ計算機
JPH0883258A (ja) * 1994-09-12 1996-03-26 Canon Inc 情報処理システム及びその方法
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
JPH09282296A (ja) * 1996-04-10 1997-10-31 Hitachi Ltd 多重化ノード間通信制御方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328653A (ja) * 1991-04-22 1992-11-17 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムおよびそのデータ伝送装置
JPH07114515A (ja) * 1993-10-19 1995-05-02 Hitachi Chem Co Ltd 同期通信用ネットワークを有する分散メモリ計算機
JPH0883258A (ja) * 1994-09-12 1996-03-26 Canon Inc 情報処理システム及びその方法
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法
JPH09282296A (ja) * 1996-04-10 1997-10-31 Hitachi Ltd 多重化ノード間通信制御方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PER STENSTROM: "A Latency-Hiding Scheme for Multiprocessors with Buffered Multistage Networks", PROCEEDINGS OF SIXTH INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM, JPN7007001352, 23 March 1992 (1992-03-23), pages 39 - 42, XP010027325, ISSN: 0000994464, DOI: 10.1109/IPPS.1992.223075 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007509439A (ja) * 2003-10-22 2007-04-12 インテル コーポレイション 相互接続ネットワークでの効率的な順序保存用の方法及び装置
JP2012523055A (ja) * 2009-04-07 2012-09-27 イマジネイション テクノロジーズ リミテッド データキャッシュとメインメモリ間の一貫性の保証

Also Published As

Publication number Publication date
US5930822A (en) 1999-07-27
JP4112050B2 (ja) 2008-07-02

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
US6154816A (en) Low occupancy protocol for managing concurrent transactions with dependencies
US6014690A (en) Employing multiple channels for deadlock avoidance in a cache coherency protocol
US6085276A (en) Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
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
US6789173B1 (en) Node controller for performing cache coherence control and memory-shared multiprocessor system
US6480927B1 (en) High-performance modular memory system with crossbar connections
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
CN100461394C (zh) 具有双向环路互连的多处理器芯片
EP0351955B1 (en) Multiprocessor systems with cross-interrogated store-in-caches
US20020009095A1 (en) Multicast decomposition mechanism in a hierarchically order distributed shared memory multiprocessor computer system
JP2001525095A (ja) パイプライン化されたスヌーピィプロトコルを有する相互結合マルチプロセッサノードのためのキャッシュコヒーレンスユニット
US6996645B1 (en) Method and apparatus for spawning multiple requests from a single entry of a queue
JPH02500550A (ja) マルチプロセッサコンピュータシステムにおいて多数のロックインジケータを管理する方法及び装置
TW484068B (en) Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
JPH1165928A (ja) マルチプロセッサシステム
KR20000022712A (ko) 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템
JP4112050B2 (ja) コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム
JP2004506265A (ja) 分散処理システムにおけるロックの実行
US20030076831A1 (en) Mechanism for packet component merging and channel assignment, and packet decomposition and channel reassignment in a multiprocessor system
US20040044877A1 (en) Computer node to mesh interface for highly scalable parallel processing system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

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 Request for written amendment filed

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