JP2772343B2 - プロセッサ及びメモリの間のトラフィックの経路指定装置 - Google Patents

プロセッサ及びメモリの間のトラフィックの経路指定装置

Info

Publication number
JP2772343B2
JP2772343B2 JP3209801A JP20980191A JP2772343B2 JP 2772343 B2 JP2772343 B2 JP 2772343B2 JP 3209801 A JP3209801 A JP 3209801A JP 20980191 A JP20980191 A JP 20980191A JP 2772343 B2 JP2772343 B2 JP 2772343B2
Authority
JP
Japan
Prior art keywords
memory
traffic
output
network
routing
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 - Lifetime
Application number
JP3209801A
Other languages
English (en)
Other versions
JPH0728764A (ja
Inventor
サーシユ・キヤラサニ
アニユージヤン・マナグラ・バーマ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0728764A publication Critical patent/JPH0728764A/ja
Application granted granted Critical
Publication of JP2772343B2 publication Critical patent/JP2772343B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセッサ及びメモリの
間のトラフィック経路指定装置に関し、特に2つの多段
切換えネットワークからなる相互接続用ネットワークに
よって相互に接続されている複数のプロセッサ及び複数
のメモリモジュールを含むマルチプロセッサコンピュー
タシステムに関し、さらに詳細には、プロセッサからメ
モリモジュールへの相互接続用ネットワークを通るデー
タトラフィックの経路指定に関するものである。
【0002】
【従来の技術】共用メモリ方式のマルチプロセッサコン
ピュータシステムにおいて、プロセッサ及びメモリの間
の通信並びにプロセッサ及びプロセッサの間の通信のた
めに、バッファ式多段接続回路が用いられている。これ
らのネットワークは一般にlogkN段の切換え要素からな
り、各切換え要素はk個の入出力端子を有する。このネ
ットワークにより送られるメッセージは通常、メモリワ
ード又はキャッシュラインを表現している固定サイズパ
ケット形式をもつ。各切換えチップには、回線争奪が生
じた場合に、入って来るパケットをキューに入れるため
のバッファが設けられる。
【0003】共用メモリ方式のマルチプロセッサ内の相
互接続用ネットワークによって運ばれるトラフィック
は、データの記憶又は検索のための、演算処理要素から
メモリモジュールへの要求で構成されている。このトラ
フィックの特性は、演算処理要素により実行されるアル
ゴリズムの種類や、アクセスデータをメモリモジュール
群の間に分散させる方法により変化することがある。す
べてのメモリモジュールがほぼ等しい頻度でアクセスさ
れるようなトラフィックパターンである場合には、その
ようなトラフィックは均一なトラフィックと呼ばれる。
メモリモジュール群の1つのサブセットが残りのサブセ
ットよりも多くのトラフィックを受取る場合には、その
ようなトラフィックは不均一なトラフィックと呼ばれ
る。
【0004】バッファ式多段接続ネットワークは、均一
なトラフィックの下では良好に動作するが、ネットワー
クのトラフィックに僅かでも不均一があると著しく効率
が低下する。トラフィックが極めて不均一な場合には、
多段接続ネットワークは、ツリー飽和として知られてい
る現象により悩まされる。この現象はIEEE Transaction
s on Computers第943 〜948 頁、G. F.フィスター及び
V.A.ノートン著、「多段接続ネットワークにおけるホッ
トスポット回線争奪及び結合」と題する論文に記述され
ている。ツリー飽和現象はネットワークに激しい渋滞を
もたらし、ネットワーク全体に亘って実質的にメモリモ
ジュール群への全トラフィックに対する遅延増大をもた
らす。
【0005】多段接続ネットワークにおける不均一なト
ラフィックによりもたらされるツリー飽和現象を軽減す
るためにいくつかの解決法が提案されていた。フィスタ
ー及びノートンは、ホットなメモリモジュールが経験す
る要求率を低減させるようなメモリの結合方法を示唆し
た。2つのメッセージは、それがホットなメモリモジュ
ール内の同じ記憶場所に向ってアドレス指定されており
かつ殆ど同時に切換え要素に到着する場合にのみ、切換
え要素の中で結合され得る。
【0006】1983年2月刊IEEE Transactions on Comput
ers第175 〜189 頁、A.ゴツトリーブ他による「NYUウル
トラコンピュータ、MIMD共用メモリ並列コンピュータの
設計」と題する論文に述べられている他の方法は、結合
ネットワーク(combinig network)と呼ばれる特殊なネッ
トワークを使用する。この結合ネットワークは1つのメ
モリモジュールに経路をとろうとするアクセス要求同士
を組み合わせることにより、そのメモリモジュールへの
実際上のトラフィックを減少させて渋滞を緩和しようと
する。1つの切換え要素に同時に到着した1つのメモリモ
ジュールに対する複数の要求が、組み合わされて1つの
要求となって出て行くように、結合ネットワーク内の各
切換え要求が設計される。
【0007】このような対策はホットスポットによる渋
滞を緩和するが、結合ネットワークは設計が複雑である
上に、結合機能に起因する付加的な遅延をもたらす。さ
らに、この手法は、メモリモジュール内の1つの記憶位
置だけにトラフィックの大部分が向けられているような
特定の形式の不均一トラフィックに関してのみ有効であ
る。メモリモジュールへのトラフィックが単一の記憶位
置に向けられていない場合には、結合は無力である。
【0008】1987年4月刊IEEE Transactions on Comput
ers第388 〜395 頁、P.C.ユー、N.F.ツエン、D.H.ロー
リーによる「大規模なマルチプロセッサにおけるホット
スポットアドレス指定の分散」と題する論文には、渋滞
を緩和するための別の手法が記載されている。この方法
はソフトウエア技術であり、メモリアクセスがいくつか
のメモリモジュール間に分散されるように、マルチプロ
セッサ上を走る演算アルゴリズムを構成する。この方法
は、マルチプロセッサ上で実行されるプログラムの動作
を事前に予言し得るようなある種の演算の場合だけに有
用である。これはメモリアクセス動作が予言ができず制
御し難い多くのプログラムにおいては達成が困難であ
る。
【0009】
【発明が解決しようとする課題】プロセッサ−メモリ間
の相互接続に2つの同一の多段切換えネットワークが使
用される場合、演算処理要素からメモリモジュールへの
要求はいずれも、いずれのネットワークも通ることもで
きる。従って各要求が使用する経路を決定する何らかの
方法が必要である。単純な戦略はトラフィックを2つの
ネットワーク間に均一に分けることであり、奇数のメモ
リアドレスにアドレス指定されているパケットを一方の
ネットワークに経路指定し、残りのパケットを第2のネ
ットワークに経路指定することによって適切に遂行され
る。ここでこの戦略を平衡戦略と呼ぶ。この平衡戦略は
均一なトラフィックにおいては良好に作動する。しか
し、1つのホットスポットがネットワークの一方にツリ
ー飽和現象を生じさせると、そのネットワークを通る全
トラフィックに悪影響を及ぼす。複数のホットスポット
は両方のネットワークを飽和させることがあり得る。
【0010】こうした状況下においては、均衡を崩して
いる不均一トラフィックをネットワークの一方に割り当
て、第2のネットワークが残りのトラフィックのための
明確な経路を提供し得るようにするのが最適である。こ
こで、ホットスポットトラフィックを運ぶネットワーク
を結合ネットワークにすれば、これによりホットトラフ
ィックについての性能が改善される。しかしながらこの
第2の戦略は、ホットスポットが存在しないときには、
ネットワークの一方を十分に活用しないまま取り残す。
従って性能を改善するためには、ホットスポットが発生
した場合にそのホットスポットを検出して経路指定戦略
を変更することが必要である。
【0011】もし、プログラムのランタイムに先立って
ホットスポットの位置が分かれば、このようなホットス
ポットの動的な検出をすることを回避できる。若干の科
学計算プログラムにおいてはコンパイル時にこうした情
報を集めることができるかもしれないが、一般的には困
難である。各プロセッサ内にローカルキャッシュを設け
ることは、複雑さの度合いを一層増すことになる。実際
には、プログラムのメモリアクセスパターンにより生ず
るトラフィックの不均一は、実行する間に空間的にも時
間的にも変化する。即ち、そのような不均一は時間の経
過に従って現れたり消えたりし、その位置も変化する。
2つの切換えネットワークによってもたらされる柔軟性
を十分に活用するためには、プログラム実行中に、トラ
フィックの性質によって経路指定法を動的に変化させな
ければならない。
【0012】さらに、マルチプロセッサシステムのため
の相互接続用ネットワークに関する下記の米国特許が従
来技術として知られている。J.S.ターナーの米国特許第
4,512,011号は、一群の高速ディジタル中継線を相互接
続するための二重スイッチアレイを含んだパケット切換
えネットワークを開示している。各中継線に組み合わせ
られている中継コントローラは、パケットを切換えネッ
トワークに送り、アレイの一方を選択する。もしも両方
のアレイを利用できるならば、コントローラは、出て行
くパケットを交互に割り振ることによってパケットをア
レイ間に均等に分配する。もし障害のため又はトラフィ
ックが過密なためにアレイの一方が利用できなければ、
コントローラは他方のアレイにトラフィックを送る。中
央処理装置はスイッチアレイの状態を監視して、フィー
ドバック信号を中継コントローラに提供する。
【0013】本発明も、マルチプロセッサ相互接続用ネ
ットワークにおいて同じような機能を果たすのである
が、前記米国特許第4,512,011号のように中央処理装置
を用いることはせず、その代わりに分散形フィードバッ
ク機構に依存する。その上、本発明は、ネットワーク内
のトラフィックを監視してこの情報を中央処理装置に通
報するための装置を使用しない。こうした機能、及び中
央処理装置により必要とされる処理は、大規模なマルチ
プロセッサシステムにおいては極めて高価なものとなろ
う。そこで本発明は、監視機能をメモリモジュール内に
置き、相互接続用ネットワークの設計を簡単にする。
【0014】P.A.フラナツェクの米国特許第4,752,777
号はマルチプロセッサシステムのプロセッサ−メモリ相
互接続のための双対ネットワーク相互接続システムを開
示している。そのネットワークの一方は多段切換えネッ
トワークであり、他方はクロスポイントスイッチであ
る。いずれかの演算処理要素からいずれかのメモリモジ
ュールに向かうトラフィックは、本発明と同様に、どち
らのネットワークを通るように指定されても良い。しか
しながら、システムのトラフィックを監視して、トラフ
ィック状態に基づいて経路指定を行うための方法が全く
開示されておらず、示唆されてもいない。
【0015】R.J.マクミランの米国特許第4,621,359号
は、切換えノードの中で使用するための負荷平衡回路を
開示している。この回路は、切換えシステムの中に入っ
て来るパケットを、均等に出力ポート間に分配する。こ
の方法は、パケットが、その位置に関連なくどの出力ポ
ートに経路を指定されても良いようなシステムの場合に
のみ適用できる。しかしそのような仮定をマルチプロセ
ッサシステムに導入することはできない。その理由は演
算処理要素が出すアクセス要求は特定のメモリモジュー
ルを指定しており、それ以外に経路指定されてはならな
いからである。
【0016】本発明の目的の1つは、トラフィックの不
均一部分を1つの切換えネットワークに局限し、トラフ
ィックの残りの部分を第2の切換えネットワークに割り
当てることによって混雑を緩和するようにした多段プロ
セッサ−メモリ間相互接続用ネットワークを提供するこ
とである。
【0017】本発明の他の目的は、あらゆる状態の下で
性能が最大となるようにトラフィックの不均衡を検出し
て経路指定方法を動的に変更する手段を提供することで
ある。
【0018】
【課題を解決するための手段】かかる課題を解決するた
め本発明においては、(A)プロセッサ−メモリ間相互接
続ネットワークにおけるホットスポットを、それらがツ
リー飽和状態を引き起こす前に検出し、(B)その情報に
基づいて、2つ有る経路指定戦略を動的に選択するため
の方策が提供される。本発明が適用される環境は、N個
のプロセッサをN個の記憶装置に接続するための2つの並
列切換えネットワークを含む。この2つのネットワーク
はバッファ付多段切換えネットワークであり、この2つ
のネットワークのうちの第2のものは結合ネットワーク
とすることもできる。いずれにしても、結合し得るトラ
フィックが存在しないときにはこの2つのネットワーク
は同一の動作をする。
【0019】本発明の検出方式は、均一なトラフィック
を受けるメモリモジュールと比較して、ホットなメモリ
モジュールは若干の期間に亘って高頻度の要求を経験す
るという観察に基づいている。メモリモジュールが、最
後のW周期の間に少くともHの要求を受取ったならば(H≦
W)、そのメモリモジュールはホットであると識別され
る。この状態は最後のW周期の間に渡される要求数がも
う1つのスレショルドNHよりも少なくなればクールにリ
セットされる。これは最後のW周期をカバーするスライ
ディングウィンドウの間に受取る要求の数の軌跡を保存
することによって実現される。
【0020】
【作用】メモリモジュールからの応答パケットに付随す
る状態ビットは、そのメモリモジュールの現在の状態を
伝える。これによりメモリモジュールにアクセスしてい
るプロセッサはいずれも、応答パケットを受取るときに
当該メモリモジュールの状態を知らされる。この情報は
経路指定戦略を選択するために使用される。 2つの経
路指定戦略即ち平衡形及び固定形は、ホットスポットの
異なる強度範囲内において良好に動作する。この方式の
有効性は、軽度のホットスポットに応答して、認め得る
ほどの性能低下が生ずる前に戦略を切り換えることがで
きるか否かに基づいている。また有効性はウィンドウの
長さWと、スレショルドH及びNHの選択にも大きく左右さ
れる。ウィンドウの長さWの選択にはある種の兼合いが
存在する。小さなWはホットスポットの指摘し損ない
と、振動とをもたらす。大きなWはホットスポットを指
摘することに関しては高い信頼性をもたらすが、そうし
たホットスポットの検出がツリー飽和現象の発生後にな
るかもしれない危険を伴う。W、H、NHの値は、経験的に
決定される。
【0021】経路指定戦略は、応答パケットの一部分と
してプロセッサがメモリモジュールから受取る情報に基
づき、各プロセッサにて独立に決定される。プロセッサ
は、システム内にホットなメモリモジュールを見出して
いない場合には平衡形戦略を使用し、そうでない場合に
は固定形戦略を使用する。
【0022】
【実施例】以下図面について本発明の一実施例を詳述す
る。
【0023】図1に示す複数個Nの演算処理要素1001〜10
0Nは、相互接続システム106を介して、複数個Mのメモリ
モジュール1041〜104Mに接続されている。この相互接続
システムは、それぞれネットワークA、ネットワークBと
呼ばれる2つの同じ構成の多段切換えネットワーク108、
112からなる。これら2つのネットワークは要求ネットワ
ークを形成し、演算処理要素100からメモリモジュール1
04へのトラフィックは相互接続システム106において経
路を指定される。別の応答ネットワーク110はメモリモ
ジュール104から演算処理要素100に戻る応答データのた
めの帰路を提供する。応答ネットワーク110は、1つ以上
の多段ネットワーク又はクロスポイントネットワークに
よって構成されても良い。この応答ネットワーク110
は、メモリモジュール104から演算処理要素100への応答
を伝送するに十分な容量をもっている限り、本発明によ
って特別な構造を必要としない。
【0024】図1の各切換えネットワーク108、112は、
その入力端子のいずれから出力端子のいずれへでもデー
タを経路指定し得る能力を有する。各ネットワークは多
段配置された切換え要素からなっており、8入力かつ8出
力の場合を図2に示す。図2の各切換え要素116は2つの入
力ライン及び2つの出力ラインを有し、当該切換え要素
が3段に配置されている。従って図示の実施例は、当該
切換え要素を合計12個有する。このネットワークは、切
換え要素が3つ以上の入力と3つ以上の出力とを有し、そ
れに対応して少ない段数を有するように設計されても良
い。こうした多段切換えネットワークの構成に関する技
術は、1981年12月刊、コンピュータ(Computer)第12〜27
頁の、T.Y.フェン著、「相互接続用ネットワークの概
説」に述べられている。
【0025】このネットワークを介して伝送されるデー
タはパケット様式である。各パケットの宛先、即ちその
データを送り付ける予定のメモリモジュールはパケット
のヘッダ部分に書き込まれる。図2の各切換え要素はこ
のパケットを入力端子から受取って、当該パケットのヘ
ッダに書き込まれている宛先アドレスによって決められ
る適切な出力端子に切り換える。ここで要求された出力
端子が他のパケットによって占有されているとき、到着
して来るパケットは切換え要素内のキューに入れられ
る。パケットは先着順にキューから選び出されて伝送さ
れる。
【0026】本発明が適用されるマルチプロセッサシス
テムは、メモリモジュール内にデータを格納したり読み
出したりすることによって演算処理要素群が通信するよ
うにした共用メモリ形のシステムによって構成されてい
る。演算処理要素からメモリモジュールへのトラフィッ
クは、本質的に2つの形式のパケット、即ち格納要求パ
ケット及び読出し要求パケットからなる。これらのパケ
ットの構成を図3に示す。どの形式の格納要求パケット
も、フィールド122、126及び130からなるヘッダ部をも
ち、これに情報フィールドが続く。ヘッダ部のうち、宛
先アドレスフィールド122はパケットの仕向け先メモリ
モジュールのアドレスを指定する。宛先アドレス(DSTN
ADDRESS)はパケットを正しいメモリモジュールに経路指
定するために、相互接続システム内の各切換え要素116
によって使用される。さらにヘッダ部分は当該要求を出
した演算処理要素のアドレスを書き込むための発信元ア
ドレスフィールド(SOURCE ADDRESS) 126を含む。メモリ
モジュールからの応答は応答ネットワークを通ってその
演算処理要素に至る経路を指定される。ヘッダのパケッ
ト識別子(PID )フィールド130は、ネットワーク内にお
いてパケットが失われたり誤った宛先に届けられたりし
た場合の障害回復のための独特のパケットを識別するた
めに使用される。読出し要求パケットの情報フィールド
は、演算コード(OPCODE)フィールド134、フラグ(FLAGS
)フィールド138、メモリアドレス(MEMADDRESS )フィー
ルド142とからなる。さらに格納要求パケットはデータ
(DATA)フィールド146を含んでいる。演算コードフィー
ルド134は要求の形式、即ち読出し動作又は格納動作を
指定する。このシステムの特殊な必要に合わせるために
これ以外の演算形式が定義されても良い。フラグフィー
ルド138は任意に選択できるものであり、その要求に組
み合わせられる多様なオプション又はパラメータを指定
する1つ以上のフラグを含む。これらのフラグは本発明
には関係しない。
【0027】読出し要求パケット内のメモリアドレス(M
EM ADDRESS )フィールド142は、メモリモジュールの要
求されたデータが存在するアドレスを指定する。このメ
モリアドレスは、メモリモジュールのアドレスと、当該
メモリモジュール内のアクセスされたデータが存在する
記憶位置とからなる。格納要求パケットの場合、データ
フィールド146はメモリアドレスフィールド142によって
指定される記憶位置に格納されるべきデータを含んでい
る。
【0028】演算処理要素から要求パケットを受取った
とき、メモリモジュールは当該パケットによって指定さ
れている読出し動作又は格納動作を実行して、結果を前
記演算処理要素に送り返す。この結果は、応答パケット
の形式に応じて応答ネットワークを伝送される。読出し
要求の場合の応答は指定された記憶位置から読み出され
たデータにより構成されている。格納要求の場合の応答
は書込みの状態、即ちそのデータが問題なく格納された
か否かを表す情報を含む。図3には2つの形式の応答パケ
ットの構成が示されている。要求パケットの場合と同様
に、応答パケットもヘッダ部とそれに続く情報とからな
る。ヘッダ部はフィールド150、154及び158からなる。
宛先アドレス(DSTN ADDRESS)フィールド150はパケット
の仕向け先の演算処理要素のアドレスを指定する。宛先
アドレスはパケットを正しい演算処理要素に経路指定す
るために応答ネットワークによって使用される。発信元
アドレス(SOURCE ADDRESS)フィールド154はその要求を
出したメモリモジュールのアドレスを特定する。パケッ
ト識別子(PID)フィールド158の機能は前述のPIDフィー
ルド130と同様である。
【0029】格納応答パケット内の情報フィールドは演
算結果コード(RESULT CODE ) 162、フラグ(FLAGS )フィ
ールド166及びメモリアドレス(MEM ADDRESS )フィール
ド174からなる。さらに読出し応答パケットはデータ(DA
TA)フィールド178を含む。演算結果コードは演算の結
果、即ち読出し動作又は格納動作が正常であったか否か
を伝達する。またアクセス妨害のような特殊な状態を付
加的に表示するようにしても良い。フラグフィールド16
6は1つ以上の状態フラグを含む。特に本発明の動作に必
要なメモリモジュール状態フラグ(MODULE STATUS FLAGS
) 170を含んでいる。その他のフラグは任意に選択で
き、本発明には関係しない。メモリアドレスフィールド
174は要求パケットのメモリアドレスフィールド142と同
じである。読出し応答パケットの場合、データフィール
ド178はアドレスフィールド174によって特定される記憶
位置から読み出されるデータを収納する。
【0030】上述においては、本発明が適用されるシス
テムの全体について述べたが、次に本発明の実施例の詳
細を説明する。本発明は3つの別個の要素、即ち、(1a)
各メモリモジュールへのトラフィックを監視してその状
態がホット又はクールであるかを確認するために各メモ
リモジュール内に設けられている手段と、(1b)各メモリ
要素の状態を各演算処理要素に通報するためのフィード
バック機構と、(1c)メモリモジュールの状態に関する知
識に基づいて経路指定方法を動的に選択するために各演
算処理要素内に設けられている手段とから構成されてい
る。
【0031】これら3つの部分について以下に詳述す
る。
【0032】(1)トラフィック不均衡の検出 この検出方法は、相互接続用ネットワークに渋滞を生ず
るトラフィック不均衡は1又は2以上のメモリモジュール
に高いトラフィック率をもたらすという原理に基づいて
いる。従って、そのような不均衡はメモリモジュールに
到着する要求の数をカウントすることによって検出し得
る。ウィンドウレングスWと呼ばれる期間の間にメモリ
モジュールに到着する要求の数をカウントし、この数が
所定のスレショルドを越えているか否かを検査する。最
後のWサイクルの間に少くともH個の要求をメモリモジュ
ールが受取ると、検出機構がそのメモリモジュールにホ
ットであることを表すマークを付ける。ここでHはW以下
である。この状態は、最後のWサイクルの間に渡される
要求の数が第2スレショルドNHを下回る程度に低下した
ときにクールにリセットされる。
【0033】ウィンドウレングスWはスレショルドH及び
スレショルドNHと同様にシステムの設計者によって経験
的に決定されるパラメータである。あらゆるトラフィッ
ク状況においてシステムの性能を最大にしようとするこ
の戦略全体の有効性は、認め得るほどの性能低下をトラ
フィック変化が引き起こす以前にその状況を変更すべ
く、トラフィック密度に正しく反応する検出機構の有効
性によって左右される。この有効性はウィンドウレング
スW、スレショルドH及びスレショルドNHの選択によって
大幅に左右される。これらのパラメータはシステムとり
わけ相互接続用ネットワークの特定の設計について、パ
ラメータを十分に考慮して設定されなければならない。
パラメータW、H及びNHを選択する際の参考となるよう、
以下に指針を示す。
【0034】ウィンドウレングスWを余りにも小さく設
定すると、誤ってホットメモリモジュールを表示する結
果を招くことが有る。その理由は均衡のとれたトラフィ
ックをメモリモジュールが受取っている場合であって
も、短期間だけの集中的要求(シヨートバースト)を受取
ることが有り得るからである。従って観測期間が余りに
短すぎる場合には、こうしたバーストがクールからホッ
トに状態を変更させるかもしれない。その後短期間の間
非作動状態になると、状態を切り換えてクールに戻すこ
とになる。このようにして、状態がホット及びクールの
間を行ったり戻ったりして高速で振動することにより、
本発明を意義のないものにする。これに対してWが大き
過ぎると、トラフィックの不均衡を表示する点では信頼
性が高いが、ホットメモリモジュールの検出に先立つて
ツリー飽和現象が生ずるおそれがある。
【0035】Wの選択は演算処理要素がその要求を出す
率、即ちトラフィック密度によっても影響を受ける。低
密度トラフィックの場合には、比較的短いウィンドウサ
イズでも、十分な信頼性をもってメモリモジュールへの
トラフィック集中を検出できる。しかしながらトラフィ
ック密度が高い場合には、トラフィックが高度に一様な
場合でも、メモリモジュールへのトラフィック率が短期
間だけ高くなることが有り得る。一般にトラフィック密
度が高めの場合には大きめのウィンドウサイズが推奨さ
れる。
【0036】スレショルドHはネットワーク内に激しい
渋滞を引き起こすようなトラフィック不均衡のみを検出
するように十分に高く設定されねばならない。スレショ
ルドNHは、振動を防止するためにHより低くなるように
設定されねばならないが、均一なトラフィックの下で経
験される要求率よりは高めでなければならない。
【0037】図4に、各メモリモジュール内の検出回路
のブロックを示す。この回路はスライディングウィンド
ウが最後のWサイクルをカバーしている間にWビットのシ
フトレジスタ(SHIFT REGISTER(W bits)) 200が受取る要
求(REQUEST )の数の推移を監視する。メモリモジュール
が要求を受取る各サイクルの間に、論理1が直列入力(SE
RIAL IN ) 204を通ってシフトレジスタ200に入る。要求
(REQUEST )を受取らない各サイクルの間に論理0が入
る。これらの値は1つの要求サイクルについて1つのクロ
ツク(CLOCK ) 208によってシフトレジスタ200にシフト
される。従って各瞬間におけるシフトレジスタ200の1の
数はシフトレジスタ内の段数に等しい数だけ前のサイク
ルの間にメモリモジュールが受取る要求の数を表す。接
続されているn×1マルチプレクサ(MUX ) 212はシフトレ
ジスタ200からn個の出力を受取り、この入力のうちの1
つをこのマルチプレクサの出力として選択する。選択さ
れるこの出力はウィンドウレングスWに対応しており、
かつオペレーティングシステムによって設定される選択
信号に応じてマルチプレクサ212により選択される。従
ってWはプログラムすることもできる。
【0038】数百ビットもの長さになることも有るシフ
トレジスタの内容のデコーディングを回避すべく、シフ
トレジスタ内の1の数の推移を監視するために独立した
アップ/ダウンカウンタ(COUNTER ) 216を使用する。カ
ウンタ216の最大カウントはWである。カウンタ216はシ
フトレジスタ200への直列入力及びマルチプレクサ212の
直列出力を監視することによって、当該入力から選択出
力までのシフトレジスタ内の1の数の推移を監視する
カウンタ216のカウント及びシフトレジスタ200内の1の
数とを一致させるため特に次のような動作がなされる。
【0039】レジスタ200にシフトされるビットが、マ
ルチプレクサ212を経由してシフトアウトされるビット
と同じであればカウントは変化せずにそのまま残され
る。またシフトインされるビットが1で、マルチプレク
サ212を介してシフトアウトされるビットが0であればカ
ウンタ216は1だけ大きくなる。またシフトインされるビ
ットが0で、シフトアウトされるビットが1であれば、カ
ウンタ216は1だけ小さくなる。アンドゲート220、224は
この論理を実行する。アンドゲート220はシフトレジス
タ200の入力が1で、マルチプレクサ212の出力が0である
とき、カウンタ216のカウントアップ制御入力を作動状
態にしてカウントを1だけ大きくする。同様に、アンド
ゲート224はマルチプレクサ212の出力が1で、シフトレ
ジスタ200への入力が0であるとき、カウンタのカウント
ダウン入力を作動状態にする。これは、カウンタのカウ
ント値を1だけ小さくする。
【0040】カウンタ216の並列出力は2つの比較器22
8、232に接続される。アップ比較器(UP COMPARATOR ) 2
28はそのカウント値とプリセットされた第1のスレショ
ルドHとを比較する。カウント値がHと一致すると必ず比
較器228の出力が作動状態にされる。この出力はホット
モジュールフラグ回路(HOT-MODULE FLAGS) 236をセット
するために使用される。ホットモジュールフラグはフリ
ップフロップであり、セットされたときそのメモリモジ
ュールをホットであるとマークする。ダウン比較器(DOW
N COMPALATOR ) 232はカウンタ216の出力を第2のスレシ
ョルドNHと比較する。比較器232はカウント値が現在の
スレショルドNHを下回ったときその出力を作動状態にす
る。この出力はホットモジュールフラグ236をリセット
し、メモリモジュールの状態をクール状態に戻す。
【0041】各比較器228及び232に入力として与えられ
るスレショルドH及びスレショルドNHは、マルチプロセ
ッサシステムのオペレーティングシステムのソフトウエ
アによって設定される。図4の実施例においては、マル
チプレクサ212を除去してシフトレジスタ200の出力をア
ンドゲート220及び224に直接的に接続することにより、
パラメータWを固定にしてもよい。
【0042】(2)演算処理要素へのメモリモジュール状
態の通報 メモリモジュールの状態がクールからホットへ又はその
逆方向に変化すると、当該変化は経路指定方法を変更し
得るようにするために演算処理要素に通知される。この
動作はこの機能専用の独立したフィードバックネットワ
ークによって遂行され得る。しかしそのようなネットワ
ークは大規模なマルチプロセッサシステムにおいては高
価となる。従って本発明はメモリモジュールの状態を演
算処理要素に伝達するために応答ネットワーク110それ
自身を用いる。
【0043】本発明はメモリモジュールから送信される
各応答パケットにモジュール状態フラグを対応付ける。
このフラグ170については応答パケットの構成の説明に
関連して図3について上述した。このフラグはホットモ
ジュールフラグ236の現在の内容を反映する。このフラ
グの値は、パケットフォーマッタ(PACKET FORMATTER) 2
40が応答パケットを演算処理要素に伝送するためにアセ
ンブルするごとに、パケットに挿入される。こうして、
メモリモジュールに対して要求を発信した演算処理要素
は当該要求に対する応答を受取る際にその状態を通知さ
れる。このようにして、メモリモジュールの状態変化
は、変化が生じた後にメモリモジュールから応答パケッ
トを受取る各演算処理要素によって各別に検出される。
【0044】(3)要求の経路指定 本発明の基本的な目的は多様なトラフィック状態におけ
るプロセッサ−メモリ間通信の性能を改善することであ
る。これは、2つのネットワークの間に要求を分配する
ための経路指定方法を、トラフィック状態に適合するよ
うに選択することによって実現される。本発明は演算処
理要素からメモリモジュールへの要求を経路指定する2
つの全く異なる方法を提供する。第1の方法はホットな
メモリモジュールが存在しないときに使用される。1又
は2以上のホットなモジュールが検出されると、演算処
理要素は全てのモジュールがクールな状態に戻るまで第
2の方法に頼る。各演算処理要素はその時点におけるメ
モリモジュールの状態に関してそれが有する知識に基づ
いて、独立にこの決定を下す。この知識は各応答メッセ
ージの一部分として届くホットモジュールフラグから次
々に入手することができる。演算処理要素におけるこれ
ら2つの経路指定方法の実行と、検出されたメモリモジ
ュールの状態に基づいてそれらを動的に選択するための
手段とに関して以下に述べる。
【0045】2つのネットワークにそれぞれ要求パケッ
トを経路指定するための第1の方法は、各ネットワーク
にパケットを均等に配分しようと試みる。これは演算処
理要素からの未決パケットを2つのネットワークに交互
に経路指定することにより達成される。この方法は、総
負荷を2つのネットワークの間に平衡させようと努める
ので、平衡形経路指定と呼ばれる。そのようにパケット
を交互に経路指定することはハードウエアによって容易
に実行できるが、1つの演算処理要素から出された同一
メモリアドレス向けの2つの要求が、別々のネットワー
クに経路指定されることに起因して逆の順序でメモリモ
ジュールに届くことがないように、これを阻むための手
段が設けられねばならない。そうした蛙跳びのような動
作は、プログラムの実行に矛盾を生ずることが有り得
る。本発明はこのような要求の蛙跳びを阻止するための
ハードウエア機構を提供する。
【0046】平衡形経路指定方法はトラフィックが均一
であるときには最良の性能を提供する。即ち演算処理要
素からのアクセスがM個のメモリモジュールにそれぞれ
ほぼ均等に配分される。しかし不均一なトラフィックを
伴う状態、即ち不釣合に大量のトラフィックが1つ又は
少数のメモリモジュールに向けられる状態のときには、
双方のネットワークがすぐに渋滞して、殆ど全ての要求
について遅延が増大する。本発明はこのような不均一な
トラフィックが存在する状態においては、固定形経路指
定と呼ばれる第2の経路指定方法を使用する。固定形経
路指定においては、ホットなメモリモジュールへのトラ
フィックの全てが専らネットワークAに経路指定され、
残りのトラフィックは全てネットワークBを通るよう経
路指定される。この方法はホットモジュールへのトラフ
ィックを全てネットワークA内に閉じ込めることによっ
て、残りのトラフィックの全てに対しネットワークBを
通る確かな経路を提供する。この方法はネットワーク渋
滞を除去するのではなく、渋滞をネットワークAに局限
する。ホットなメモリモジュールへの処理能力は結局、
そのサービス率によって制限される。従ってこの処理能
力は結合ネットワークをさらに高価にすることなしには
改良できない。本発明はクールなメモリモジュールに対
するトラフィックの全てをツリー飽和現象の麻痺作用か
ら開放し、一方ホットなメモリモジュールへのトラフィ
ックがメモリモジュールによってサービスされ得る最大
の率で進むことができるようにする。
【0047】図5は演算処理要素において本発明の経路
指定法を実行するためのハードウエアのブロック図であ
る。メモリアクセス要求はメモリアドレスバス300にメ
モリアドレス(MEM ADDRESS )を置くことによって始ま
る。メモリアドレスは2つの部分からなるものと仮定す
る。その第1部分は要求されたメモリモジュールを指定
し、第2部分はメモリモジュール内のアドレス指定をす
ることができる要素即ち特定のワードの記憶位置を決定
する。メモリアドレスバス300に乗せられるメモリアド
レスは物理アドレスである。本発明を用いるマルチプロ
セッサシステムにおいて仮想アドレスを使用する場合に
は、メモリアドレスバス300の前に仮想アドレスを物理
アドレスに翻訳するための適切な手段を設けることが必
要である。
【0048】キャッシュメモリ(CACHE ) 304は、最近ア
クセスしたデータへ高速でアクセスできるようにするこ
とによってネットワークへのトラフィックを低減するの
に役立つ。こうしたキャッシュの使用は本発明にとって
は任意選択的なものであり、キャッシュが存在しない場
合のために経路指定ロジックを改造することは容易であ
る。キャッシュが存在する場合には、メモリ階層の一貫
性を確保することに留意しなければならない。このよう
な理由によりあるデータがキャッシュ不能と指定される
かも知れず、かかるデータはキャッシュに記憶されな
い。この実施例においては、すべての書込み動作がキャ
ッシュをバイパスするストアスルー戦略を用いるものと
する。本実施例に僅かな変更を加えることにより、スト
アインのような代替戦略を実施することもできる。これ
らの仮定を伴って、以下の2つの条件の下にメモリアク
セスは相互接続用ネットワークに経路指定される。(2a)
当該メモリアクセス動作は書込み動作である。(2b)当該
メモリアクセス動作は読出し動作であるがキャッシュミ
スに終わる。
【0049】これらの条件は、メモリアクセスに対応し
てネットワーク要求が出されることを要するか否かを決
定するための基準として、選択回路308により使用され
る。もし要求が出されることを必要とするならば、さら
に選択回路308は要求が経路指定されるべきネットワー
クを決定する。この選択プロセスに関連するロジックの
詳細は後に述べる。選択回路308は、メモリ状態テーブ
ル312、未決要求テーブル316、ホットモジュールカウン
タ(HOT MODULE COUNTER) 320に支援されてこの決定を行
う。次にこれらの要素について詳細に説明する。メモリ
状態テーブル312は、各メモリモジュールの状態をホッ
ト又はクールと記憶する。メモリ状態テーブル312はメ
モリモジュール番号によりアドレス指定されるM個のエ
ントリをもつランダムアクセスメモリによって構成され
る。各エントリは1ビットの長さである。1は対応するメ
モリモジュールがホットであることを表し、0はクール
であることを表す。メモリ状態テーブル312は2つのポー
トからアクセスされ得る。第1ポートは読出しポートで
あり、第2ポートは読出し及び書込みの双方をサポート
する。第1ポートはADDR1のラベルを付けられたアドレス
ラインと、データ出力ラインOUT1とからなる。これらの
アドレスラインはメモリアドレスバス300のラインのメ
モリモジュール番号を表しているラインに接続される。
これによってメモリアクセスの間に対応するメモリモジ
ュールの状態がOUT1出力に現れる。このラインは入力の
1つとして選択回路308に接続される。またこのラインは
アクセスされたメモリモジュールがホットモジュールで
あるとのマークを付けられたときに1の値をとるので、
ホットモジュール(HOT MODULE)とラベルを付けられる。
【0050】メモリ状態テーブル312の第2ポートはアド
レスラインADDR2、データ入力ラインSTATUS IN、データ
出力ラインOUT2及び必要な制御信号からなる。このポー
トは各応答パケットの一部分として受取る状態情報に基
づいてテーブルの内容を変更するために使用される。ア
ドレスラインはアドレスバス324に接続される。モジュ
ールアドレスをアドレスバス324に与え、新しいデータ
(0又は1)をSTATUS IN入力に与え、適切な制御ラインを
作動状態にすることによって、テーブル内のエントリを
更新することができる。これに加えてアドレスバス324
によってアドレス指定されるテーブル312内のエントリ
はOUT2出力に読み出され得る。
【0051】アドレスバス324はパケットデフォーマッ
タ328から始まる。パケットデフォーマッタ328の機能は
応答ネットワークを介してメモリモジュールから受取っ
た各応答パケットから各フィールドを抽出することであ
る。応答パケットを受取ったとき、パケットデフォーマ
ッタ328はメモリアドレスフィールド174を抽出してこの
情報をアドレスバス324に乗せる。さらにパケットデフ
ォーマッタ328は応答パケットのそのフィールド170から
のモジュール状態フラグの値をモジュール状態ライン34
0に乗せる。これらのアドレス及びフラグの値は、後述
するように、メモリ状態テーブル312、未決要求テーブ
ル316及びホットモジュールカウンタ320を更新するため
に使用される。
【0052】メモリ状態テーブル312は各メモリモジュ
ールの状態をホット又はクールと記憶し、一方ホットモ
ジュールカウンタ320はシステム内のホットモジュール
数のカウントを保存するために使用される。従ってホッ
トモジュールカウンタ320の値はいつでもメモリ状態テ
ーブル312内の1エントリの数に等しい。ホットモジュー
ルカウンタ320はアップダウンカウンタとして具体化さ
れる。カウンタ320はメモリモジュールの状態がクール
からホットに変化したことを検出したときに1だけ大き
くされる。同様にしてホットからクールへの状態変化が
検出されたときに1だけ小さくされる。アンドゲート332
及び336はそれぞれパケットデフォーマッタ328によって
出される情報に基づいてアップカウント動作及びダウン
カウント動作を制御する。ホットモジュールカウンタ32
0が外に出す必要がある情報はそのカウントが零である
か否かという情報だけである。カウントが0のとき、こ
のことはホットメモリモジュールが検出されなかったこ
とを示し、このことはトラフィックが均一に感知される
ことを示唆する。カウントが0以外のとき、このことは1
又は2以上のホットモジュールが存在することを示す。
この情報はZERO COUNTとラベルを付けられている出力ラ
インにカウンタによって提供され、経路指定判断をする
際に選択回路308により使用される。
【0053】未決要求テーブル316は演算処理要素から
の全ての未決ネットワーク要求の記録を保持するために
使用される。未決要求とは、演算処理要素によってネッ
トワークA、ネットワークBのうちの1つを介して伝送さ
れた要求であって、しかも未だその応答が演算処理要素
に届いていない要求のことである。メモリモジュールへ
の前の要求が未決である間に別の要求がその同一メモリ
モジュールに送られ、しかもこれら2つの要求が異なる
ネットワークを介して経路指定されると、メモリアクセ
スの蛙跳びが生ずるかも知れない。未決要求テーブル31
6の機能は、この状態を阻止することである。未決要求
テーブル316はその設計に許容される未決要求の最大数
を記憶するに十分なだけの記憶位置を有する連想メモリ
として編成される。このテーブルのフォーマットを図6
に示す。各エントリはメモリアドレスフィールド及びネ
ットワーク識別子フィールドにより構成される。メモリ
アドレスフィールドは物理メモリアドレスを記憶する。
この物理メモリアドレスは未決要求のメモリモジュール
のアドレス及びモジュール内における記憶位置との双方
を含んでいる。ネットワーク識別子フィールドは対応す
る要求が経路指定されるネットワークの識別子を記憶す
る。このフィールドは1ビットであり、値が0であればネ
ットワークAを示し、1であればネットワークBを示す。
【0054】2つのポートから未決要求テーブル316にア
クセスすることができる。第1ポートは、アドレスライ
ンADDR1、MATCH出力ライン及びNET ID OUT出力ラインか
らなる。MATCHラインはテーブル内のエントリのアドレ
スフィールドがADDR1ラインに与えられるアドレスと一
致したとき作動状態になる。そのような一致が見られた
場合には、未決要求テーブル316の回路がNET ID OUTラ
インを当該一致しているエントリのネットワーク識別子
フィールドの値にセットする。こうしてメモリアクセス
の間、テーブルのMATCH出力は要求されたメモリアドレ
スに対していずれかの要求が未決となっているか否かを
表示し、NET ID OUT出力は一致が存在するとき当該一致
している要求のために使用されるネットワークを表示す
る。各メモリアクセスの間に、メモリアドレスバス300
のメモリアドレスは、未決要求テーブル316に記憶され
ている全ての未決要求のアドレスと比較される。それは
MATCH出力によって表示されるのであるが、一致が存在
するとき、選択回路308が現在の要求に対して選択され
るネットワーク識別子及びNET ID OUTラインに与えられ
るネットワーク識別子を比較する。これら2つのネット
ワーク識別子が同一ならば、要求は進行することを許さ
れる。これに対してこれら2つのネットワーク識別子が
異なるとき、未決要求テーブル316内の一致している要
求に対する応答が届くまで現在の要求はその状態に保持
される(即ち凍結される)。
【0055】要求がネットワークへ進むことを許される
とき、その要求に対応するエントリが未決要求テーブル
316に挿入される。そのような挿入はテーブルへのINSER
T入力によって制御される。このラインが作動状態にさ
れるとき新しいエントリがテーブルに挿入されるので、
そのアドレスフィールドはADDR1ライン上の現在のメモ
リアドレスの値を有することとなり、そのネットワーク
識別子フィールドはNET ID IN入力ラインに与えられる
値を有することになる。INSERT入力は選択回路308のXMI
T PKT出力に結合される。選択回路308がこのラインを作
動状態にするのは要求をネットワークの1つに経路指定
する決定がなされたときである。このような決定がなさ
れたとき、選択回路308はそのSELECT出力ラインを現在
の要求を経路指定すべく選択されるネットワークの識別
子にセットする。このSELECT出力は未決要求テーブルの
NET ID IN入力に結合されているので、それは未決要求
テーブル316の新しいエントリのネットワーク識別子フ
ィールドを、選択回路308によって決定されるネットワ
ーク識別子に一致するようにセットする。
【0056】未決要求テーブル316の第2ポートは、一度
応答を受取るとそれに対応するエントリをテーブルから
除去するために使用される。第2ポートはアドレスライ
ンADDR2及びDELETE制御入力からなる。DELETE制御入力
が作動状態になると、ADDR2ラインに与えられるアドレ
スと一致するアドレスフィールドを有するエントリをテ
ーブルから削除する。この削除動作は応答パケットの受
領に基づいてパケットデフォーマッタ328によって開始
される。
【0057】パケットデフォーマッタ328は、メモリ状
態テーブル312と、最後に得られる状態に更新されるホ
ットモジュールカウンタ320との保持に責任を有する。
演算処理要素が応答パケットを受取ったとき、パケット
デフォーマッタ328は、その応答パケットを出したメモ
リモジュールのアドレス及びそのモジュールに対応する
モジュール状態ビットを当該パケットから抽出する。デ
フォーマッタ328は次にこのようにして抽出したメモリ
アドレスをアドレスバス324に乗せ、モジュール状態ビ
ットをMODULE STATUS出力に乗せる。後者はメモリ状態
テーブル312のSTATUS IN入力に接続される。メモリ状態
テーブル312は次に現在その記憶位置に記憶されている
状態を見出すべく、バス324上のアドレスのメモリモジ
ュール番号を表している部分を使用する。そこでアンド
ゲート332及びアンドゲート336は、ホットモジュールカ
ウンタ320を更新する必要が有るか否かを知るために、
この古い状態をパケットデフォーマッタ328からの新し
い状態出力と比較する。古い状態と新しい状態とが同一
である場合にはカウントの変化は生じないが、それらの
状態が異なっている場合にはアンドゲート出力の1つが
作動状態になる。また古い状態が0でありかつ新しい状
態が1であるとき、アンドゲート332がカウンタ320を1だ
けカウントアップさせる。その逆の条件においては、ア
ンドゲート336がカウンタ320を1だけカウントダウンさ
せる。前者の条件はメモリモジュールの状態のクールか
らホットへの変化を表現しており、後者の条件はその反
対を表現する。その結果、アンドゲート332及び336は変
化を反映するようカウンタ320を更新する。
【0058】古い状態がメモリ状態テーブル312から読
み出されかつホットモジュールカウンタ320が更新され
た後、古い状態を置き換えるため、MODULE STATUSライ
ンの新しい状態出力がメモリ状態テーブル312に書き込
まれる。このようにして、メモリ状態テーブル312及び
ホットモジュールカウンタ320の更新は古い状態を読み
出すための読出し動作と、これに続いて新しい状態を書
き込むための書込み動作とからなる。
【0059】上述のようにメモリ状態テーブル312が更
新されている間に、パケットデフォーマッタ328は受取
った応答パケットに対応するエントリを除去することに
よって未決要求テーブル316を更新する。これは未決要
求テーブル316のDELETE入力を作動状態にすることによ
って達成される。デフォーマッタ328によってアドレス
バス324に出されたメモリアドレスは削除されるべきエ
ントリを決定するために未決要求テーブル316によって
使用される。ここで未決要求テーブル316は、削除を実
行するために、メモリモジュール番号及びそのメモリモ
ジュール内の記憶位置を含みかつアドレスバス324に置
かれているメモリアドレス全体を使用する点に留意され
たい。これに対してメモリ状態テーブル312はメモリモ
ジュール番号のみを使用する。ここで、それら全てが同
じネットワークに経路指定されている限り、複数の未決
要求の同じメモリアドレスへの可能性を本発明は排除し
ないようになされ、これにより未決要求テーブル316内
の2つ以上のエントリが与えられたアドレスと一致する
ことも有り得る点に注意されたい。未決要求テーブル31
6のロジックは各削除動作の間に一致しているエントリ
がただ1つだけ削除されるように設計されねばならな
い。しかしながらこのテーブルの連想特性によって一致
しているエントリのうちのどれが削除されるものとして
任意に選択されてもよい。
【0060】パケットフォーマッタ344はメモリアクセ
スに関連する情報を組み立てることによって要求パケッ
トを構成する責任を有する。この情報が書込みアクセス
である場合には、アクセス期間中にメモリアドレスバス
300に乗せられるメモリアドレス及びメモリに書き込ま
れるべきデータを含む。パケットフォーマッタ344によ
って構成された要求パケットは次にパケットルータ(PAC
KET ROUTER ) 348に与えられ、パケットルータ348は当
該パケットをネットワークの一方に伝送する。選択回路
308によって提供される2つの制御入力、即ちSELECT及び
XMIT PKTはパケットの伝送を制御する。SELECT信号は特
定のネットワークを経路として指定し、一方XMIT PKTは
その選択されたネットワークにパケットが伝送され得る
ようにする。パケットルータ348は2セットのデータ出力
ラインを有し、その一方はネットワークAに接続され、
他方はネットワークBに接続される。これらのうちのど
ちらを現在のパケットの伝送に使用するかをSELECT信号
が決定する。
【0061】選択回路308はメモリ要求に組み合わせら
れる経路の決定に責任を有する。選択回路308は次の各
項を決定する。(3a)与えられた要求がネットワークの一
方に経路指定されることを必要とするか否か。(3b)ネッ
トワークA及びネットワークBのうちのどちらが経路とし
て使用されるべきであるか。(3c)要求が前述の蛙跳びの
可能性のためにホールドされることを必要とするか否
か。
【0062】選択回路308はその機能を遂行するために
次のような入力群を使用する。CACHEMISS入力は、現在
のメモリアクセスがキャッシュミスに帰着する場合に、
キャッシュによって作動状態にされる。WRITE入力は現
在のメモリアクセスを読出し又は書込みと識別する(0は
読出しであり、1は書込みである)。MATCH信号及びNETID
信号は未決要求テーブル316から来る入力である。上述
したように、MATCHラインは現在のアクセスに対応する
メモリアドレスが未決要求テーブル内のエントリと一致
するときに作動状態にされる。そのような一致が存在す
る場合には、NET IDラインは、その一致しているエント
リに対応する要求を経路指定するために使用されるネッ
トワークを表示する。HOT MODULE信号はメモリ状態テー
ブル312から来る入力である。この信号は現在のアクセ
スにより参照されるメモリモジュールがメモリ状態テー
ブル312にホットモジュールとして指定されているとき
には作動状態になり、そうでないときには非作動状態に
なる。UNIFORM TRAFFIC入力は現在のホットモジュール
数のカウントに基づいてホットモジュールカウンタ320
により駆動される。この入力が1のとき、このことはカ
ウンタの値が0であることを表しており、均一なトラフ
ィックであることを表している。これに対して0はホッ
トなメモリモジュールが1つ以上存在することを表して
おり、不均一なトラフィックであることを表している。
【0063】選択回路308は3つの出力を有する。XMIT P
KTラインが作動状態になるのはこの選択回路の判断ロジ
ックが現在の要求がネットワークの一方に経路指定され
ることが必要であると決定したときである。これは現在
のアクセスに対応する要求パケットを一方のネットワー
クに伝送できるようにする。またSELECT出力ラインは現
在の要求が経路指定されるべきネットワークを指定する
ものであり、値0はネットワークAを指定し、1はネット
ワークBを指定する。HOLD PKT出力ラインは、同じメモ
リアドレスへの未決要求が満足させられるまでメモリ参
照を保持するために作動状態にされる。この出力は当該
メモリアクセスを要求しているプロセッサに送られる。
【0064】これらの決定を行うために使用される選択
回路308の判断ロジックを図7に示す。オアゲート400は
現在のアクセスが書込みであるとき又はアクセスされた
データがキャッシュに見出されないとき、作動状態出力
を発生する。従ってオアゲート400の作動状態出力は現
在の要求がネットワークの1つに経路指定される必要が
あることを表している。この出力は蛙跳びを生じ得る条
件についての検査をするため、ゲート412及び420からな
る論理回路の後段を通る。MATCH入力が非作動状態であ
るとき、蛙跳びが生ずる可能性はない。この場合アンド
ゲート412はオアゲート400の出力がXMIT PKT出力に進行
することを許す。しかしながらMATCH入力が作動状態で
あるとき、排他的論理和ゲート404が、現在の要求のた
めに選択されたネットワーク識別子を、一致している要
求により使用されるネットワーク識別子と比較する。不
一致のとき、アンドゲート420がイネーブルになり、こ
れによりHOLD PKT信号が作動状態にされる。しかしなが
ら2つのネットワーク識別子が同一であれば、アンドゲ
ート408はオアゲート400の出力がXMIT PKT出力に進行す
ることを許し、これにより要求をネットワークに伝送で
きるようにする。
【0065】ゲート424、428及び432並びにフリップフ
ロップ436が現在の要求を経路指定する目的で一方のネ
ットワークを選択する機能を果たす。これらはホットな
モジュールが現時点において検出されているか否かに基
づいて、経路指定方法のうちの1つ、即ち平衡形経路指
定又は固定形経路指定を選択する。フリップフロップ回
路FF 436は平衡形経路指定を実行する。フリップフロッ
プはパケットを伝送できるようにするためXMIT PKTライ
ンが作動状態になるごとに切り換えられ、これにより各
要求に対して交互に1と0を作り出す。UNIFORM TRAFFIC
ラインが作動状態にあって均一なトラフィックであるこ
とを表しているとき、フリップフロップ回路436の出力
は直接にSELECT出力への経路をとる。しかし1又は2以上
のホットモジュールが検出されたとき、アンドゲート42
8はフリップフロップ回路の出力を無効にする。このよ
うな場合には、固定形経路指定方法が現在の要求がホッ
トモジュールに向けられているか否かに基づいてネット
ワークの選択が遂行されるべきことを指令する。アンド
ゲート424は固定形経路指定の下にこの選択を実行す
る。その出力はアクセスされたモジュールがホットモジ
ュールであるとき0であって、使用されるべきネットワ
ークとしてネットワークAを指定し、ホットモジュール
でないとき1であって、ネットワークBを指定する。
【0066】図5の各機能要素について説明したので、
次にメモリアクセスに関する動作を述べる。図8のフロ
ーチャートにメモリアクセス動作を示す。メモリアクセ
スは読出し動作又は書込み動作である。メモリアクセス
はメモリアドレスをアドレスバス300に乗せ、次に当該
メモリアクセスを知らせるべく適切な制御ラインを作動
状態にすることによって開始される。WRITEラインは読出
しアクセス及び書込みアクセスを識別するために使用さ
れる。メモリアクセスの間に後続の動作が並列に進行す
る。
【0067】判断ブロック502においては、そのメモリ
要求が書込み要求であるか否かを確認するためのテスト
がなされる。当該アクセスが読出しであるとき、参照さ
れたデータがキャッシュ内において入手できるか否かを
調べるためにキャッシュアクセスが実行される。そのデ
ータを入手できるか否かを確認するために判断ブロック
504においてテストが行われる。入手できるとき、機能
ブロック506に示すように当該データは直ちにデータバ
スに送られる。そのデータを入手できないとき、CACHE
MISSラインがキャッシュ304によって作動状態にされ
る。
【0068】キャッシュミスのとき又は当該メモリアク
セスが書込み動作であるとき、ネットワーク108、112の
一方を介して該当するメモリモジュールに要求が経路指
定されることを要する。そのアクセスに対応するメモリ
モジュールアドレスは、機能ブロック508において、メ
モリ状態テーブル312及び未決要求テーブル316をアドレ
ス指定(ルツクアップ)するために使用される。同時に機
能ブロック510において、当該要求の経路となるネット
ワークを決定するために選択回路308が作動状態にされ
る。モジュール状態の表示、即ちホットであるかクール
であるかの表示はメモリ状態テーブル312のOUT1ライン
に現われる。機能ブロック512においては、未決要求テ
ーブル316が同一メモリアドレスへの係属中の要求があ
るか否かを検査する。一致が得られればMATCH出力を作
動状態にし、さらにNET ID OUT出力に一致しているエン
トリのためのネットワークIDを表示させる。これら2つ
のルツクアップ動作の結果は要求の経路となるべきネッ
トワークを決定するために選択回路308によって使用さ
れる。
【0069】選択回路が一度要求の経路となるべきネッ
トワークを決定すると、メモリアドレス及びデータ(書
込みの場合)は、機能ブロック514に示すように、メモリ
アクセスに対応する図3に示した多様なフィールドを結
合して要求パケットを形成するためにパケットフォーマ
ッタ344によって使用される。このパケットはパケット
ルータ328に与えられ、パケットルータ328はこのパケッ
トを機能ブロック516に示すように選択回路308によって
選択されたネットワークに経路指定する。
【0070】上述の動作は、メモリアクセス待ち時間を
減らすため、並行的に進行することを許される。メモリ
参照がキャッシュによって満足されると、それ以上の処
理は不必要である。そうでない場合にはパケットがどの
ようにネットワークに経路指定されるべきかを決定すべ
く、選択回路308が多様な機能要素により与えられる情
報を使用する。その要求は未決要求に対する応答を受取
るまでの間保留されるべきであるということを選択回路
308が決定した場合には、アクセスを要求しているプロ
セッサに対するHOLD PKTラインを活動化し、これにより
メモリアクセスを凍結する。そうでない場合には、選択
回路308が要求パケットをネットワークに経路指定すべ
く、上述したにようにSELECTライン及びXMIT PKTライン
を作動状態にする。
【0071】図9は未決要求に応じて応答ネットワーク1
10からパケットが届いたときに実行される動作を示すフ
ローチャートである。機能ブロック522において、応答
パケットのメモリアドレスフィールドは応答パケットの
対応するメモリフラグ170の前の状態を入手すべく、メ
モリ状態テーブル312をアドレス指定するために使用さ
れる。メモリ状態テーブル312から読み出された状態
は、機能ブロック524において、届いたパケット内のフ
ラグにより表示される新しい状態と比較される。次に判
断ブロック526において、状態が変わったか否かを確認
するためのテストがなされる。不一致はホットからクー
ルに又はその逆への状態の変化を示す。状態が変化した
とき、次に機能ブロック528においてメモリ状態テーブ
ル312が新しい状態に更新される。さらに機能ブロック5
30においてホットモジュールカウンタ320も更新され、
クールからホットへの変化であるときにはカウント値を
大きくし、そうでなければ小さくする。最後に機能ブロ
ック532において、要求の完了を書くために、受取った
応答に対応するエントリを未決要求テーブル316から取
り除く。もし応答パケットが読出し応答を表していれ
ば、次に機能ブロック534において、要求を出している
プロセッサに関連するデータが送られる。
【0072】上述の動作は、シーケンサからなる制御回
路によって制御されても良い。これらの動作シーケンス
の記述からそうした回路を設計する手続きは良く知られ
ているので、これ以上の説明は当業者には不必要であろ
う。またこれらの動作がソフトウエアとして具体化され
ても良く、熟練したプログラマならば図8及び図9のフロ
ーチャートから容易にソースコードを書くことができ
る。
【0073】上述においては、1つの好ましい実施例に
よって本発明を説明したが、請求の範囲の精神及び範囲
から離れることなく変更を加えて本発明を実施し得るこ
とを、当業者は認めるであろう。例えば、この好ましい
実施例は2つの切換えネットワークを使用しているが、
一層複雑でダイナミックな経路指定アルゴリズムを具体
化するために、3つ以上のネットワークを使用すること
もできる。
【0074】
【発明の効果】上述のように本発明によれば、プロセッ
サ−メモリ間に2つのバッファをもつ多段切換えネット
ワークを含む相互接続用ネットワークを設け、当該2つ
の多段切換えネットワークのトラフィック状態の検出結
果に基づいてトラフィックの割当て比率を制御するよう
にしたことにより、比較的簡易な構成によってプロセッ
サ及びメモリ間のデータの転送効率を確実に高めること
ができる。
【図面の簡単な説明】
【図1】図1は本発明が適用されるべきマルチプロセッ
サコンピュータシステムの基本構成を示すと共に、プロ
セッサ−メモリ間通信のためのネットワークA及びネッ
トワークBとして同じ構成の2つのネットワークを示すブ
ロック図である。
【図2】図2は図1のネットワークコピーの一方の内部構
造を示すブロック図である。
【図3】図3は相互接続ネットワークを伝送されるメッ
セージパケットのフォーマットを示すと共に、各フィー
ルドをも示す略線図である。
【図4】図4は各メモリモジュール内に用いられる検出
機構の機能ブロック図である。
【図5】図5は各プロセッサにおける経路指定制御を示
すと共に、ネットワークへの要求を経路指定するのに必
要な機能要素を示すブロック図である。
【図6】図6は図5の未決要求テーブルのフォーマットを
示す略線図である。
【図7】図7は図5の選択回路の内部論理回路を示す接続
図である。
【図8】図8は図5に示した経路指定制御において実施さ
れる制御機能の論理動作を示すフローチャートである。
【図9】図9は図5に示した経路指定制御において実施さ
れる制御機能の論理動作を示すフローチャートである。
【符号の説明】
100……演算処理要素、 104……メモリモジュール、 106……相互接続システム、 108、112……多段切換えネットワーク、 110……応答ネットワーク、 116……切換え要素、 122、150……宛先アドレスフィールド、 126、154……発信元アドレスフィールド、 130、158……パケット識別子(PID)フィールド、 134……演算コード(OPCODE)フィールド、 138、166……フラグフィールド、 142、178……メモリアドレスフィールド、 146、178……データフィールド、 162……演算結果コード、 170……メモリモジュール状態フラグ、 200……シフトレジスタ、 212……マルチプレクサ、 216……アップダウンカウンタ、 220、224、332、336、408……アンドゲート、 228、232……比較器、 236……ホットモジュールフラグ、 240、344……パケットフォーマッタ、 300……メモリアドレスバス、 304……キャッシュメモリ、 308……選択回路、 312……メモリ状態テーブル、 316……未決要求テーブル、 320……ホットモジュールカウンタ、 324……アドレスバス、 328……パケットデフォーマッタ、 340……モジュール状態ライン、 348……パケットルータ、 400……オアゲート、 412、420、424、428、432……ゲート、 404……排他的論理和ゲート、 436……フリップフロップ回路。
フロントページの続き (72)発明者 アニユージヤン・マナグラ・バーマ アメリカ合衆国、ニユーヨーク州10520、 クロトン・オン・ハドソン、ドーブ・コ ート 4−0番地 (56)参考文献 特開 平1−298459(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 - 15/177 JICSTファイル(JOIS)

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の演算処理要素及び複数のメモリモジ
    ュールを有する形式の共用メモリマルチプロセッサコン
    ピュータシステムにおいてプロセッサ及びメモリの間の
    トラフィックの経路を指定する装置であって、 上記複数の処理要素及び上記複数のメモリモジュール間
    をそれぞれ相互接続する少くとも2つの多段切換えネッ
    トワークを有する相互接続システムと、 所定のサイクル数の間のメモリモジュールに対するメモ
    リ要求数をカウントし該カウントを第1及び第2の所定
    のスレショルドと比較することにより各メモリモジュー
    ル内の過大なトラフィック状態を検出する手段と、 上記複数の演算処理要素に各メモリモジュールのトラフ
    ィック状態を通報するためのフィードバック手段と、各演算処理要素内に設けられ、 上記演算処理要素の1つ
    からのメモリアドレスによってアドレス指定され、上記
    フィードバック手段から通報された各メモリモジュール
    のトラフィック状態を保存するメモリ状態テーブルと、各演算処理要素内に設けられ、 上記演算処理要素の1つ
    からのメモリ要求により指定されたメモリアドレスによ
    って上記メモリ状態テーブルからアドレス指定されたメ
    モリモジュールのトラフィック状態を示す第1出力を取
    り出す手段と、 各演算処理要素内に設けられ、上記メモリ状態テーブル
    の上記第1出力に応答して過大なトラフィック状態に適
    する第1の経路指定方法又は過大でないトラフィック状
    態に適する第2の経路指定方法に基づいてメモリ要求を
    経路指定する選択出力を発生する選択手段と、各演算処理要素内に設けられ、 上記選択出力に応答して
    上記1つの演算処理要素からのメモリ要求を上記切換え
    ネットワークの1つに経路指定するパケットルータ手段
    と、各演算処理要素内に設けられ、 上記フィードバック手段
    に応答して過大なトラフィック状態を持つメモリモジュ
    ールのカウントを維持するカウンタ手段と、 を有し、上記過大なトラフィック状態に適する第1の経
    路指定方法は過大なトラフィック状態を持つメモリモジ
    ュールへのメモリ要求を上記少なくとも2つのネットワ
    ークの1つに専ら経路指定して残りのメモリ要求を上記
    1つのネットワーク以外のネットワークに経路指定し、
    上記過大でないトラフィック状態に適する第2の経路指
    定方法はメモリ要求を上記少なくとも2つのネットワー
    クに均等に経路指定することを特徴とするプロセッサ及
    びメモリの間のトラフィックの経路指定装置。
  2. 【請求項2】上記演算処理要素のうちの対応するものか
    らのメモリ要求が上記少くとも2つの切換えネットワー
    クのうちの異なるものを通るように経路指定されること
    に起因して順序が乱れることを防止する防止手段を含
    む、 ことを特徴とする請求項1記載のプロセッサ及びメモリ
    の間のトラフィックの経路指定装置。
  3. 【請求項3】上記防止手段は、 上記演算処理要素からの上記メモリアドレスによってア
    ドレス指定され、アドレス指定されたメモリモジュール
    が以前にアドレス指定されたが当該メモリモジュールか
    ら未だ応答を受け取っていないか否かを示す第1出力及
    び以前の要求が経路指定された切換えネットワークを識
    別する第2出力を供給する未決要求テーブル並びに上記
    選択手段内に設けられ上記未決要求テーブルの上記第1
    出力によってイネーブルされて上記第2出力を選択され
    た切換えネットワークと比較して一致するか否かを確認
    し、一致しないとき上記演算処理要素に対してホールド
    パケット出力を発生する比較手段を含む、 ことを特徴とする請求項2記載のプロセッサ及びメモリ
    の間のトラフィックの経路指定装置。
  4. 【請求項4】上記過大なトラフィック状態を検出する手
    段は、 メモリモジュールに対するトラフィックの監視に基づい
    てメモリモジュールをホット又はクールと認定する検出
    手段を各メモリモジュール内に含むことを特徴とする請
    求項1記載のプロセッサ及びメモリの間のトラフィック
    の経路指定装置。
  5. 【請求項5】上記過大なトラフィック状態を検出する手
    段は、 所定のサイクル数の期間中のメモリモジュールに対する
    メモリ要求の数をカウントするウィンドウ手段、 上記ウィンドウ手段に接続され上記ウィンドウ手段内の
    カウントを上記第1及び第2のスレショルドと比較する比
    較手段並びに上記カウントが上記第1のスレショルドを
    越えたときセットされ上記カウントが上記第2のスレシ
    ョルドより下がったときリセットされるフラグ手段、 を含むことを特徴とする請求項1記載のプロセッサ及び
    メモリの間のトラフィックの経路指定装置。
  6. 【請求項6】上記第1及び第2のスレショルドは、 上記マルチプロセッサコンピュータシステムのオペレー
    ティングシステムによってセットされることを特徴とす
    る請求項5記載のプロセッサ及びメモリの間のトラフィ
    ックの経路指定装置。
  7. 【請求項7】上記ウィンドウ手段内に設けられメモリ要
    求をカウントする期間のサイクル数をプログラムで変更
    可能な手段を含む、 ことを特徴とする請求項5記載のプロセッサ−メモリ間
    のトラフィックの経路指定装置。
  8. 【請求項8】上記相互接続システムは、 上記メモリモジュールからの応答データを上記演算処理
    要素に経路指定する応答ネットワークを含み、 上記フィードバック手段は、 上記応答ネットワークに接続され上記応答データを受取
    って上記フラグ手段に応答して上記メモリモジュールに
    おけるトラフィック状態を示すフラグを挿入するパケッ
    トフォーマッタ手段を上記各メモリモジュールに含む、 ことを特徴とする請求項5記載のプロセッサ及びメモリ
    の間のトラフィックの経路指定装置。
  9. 【請求項9】上記演算処理要素のうちの対応するものか
    らのメモリ要求が上記少くとも2つの切換えネットワー
    クのうちの異なるものを通るように経路指定されること
    に起因して上記要求の順序が乱れることを防止する手段
    を含む、 ことを特徴とする請求項8記載のプロセッサ及びメモリ
    の間のトラフィックの経路指定装置。
  10. 【請求項10】上記メモリ要求の順序が乱れることを防
    止する手段は、 上記演算処理要素からの上記メモリアドレスによってア
    ドレス指定され、アドレス指定されたメモリモジュール
    が以前にアドレス指定されたが当該メモリモジュールか
    ら未だ応答を受取っていないか否かを示す第1出力及び
    以前の要求が経路指定された切換えネットワークを識別
    する第2出力を供給する未決要求テーブル並びに上記選
    択手段内に設けられ上記未決要求テーブルの上記第1出
    力によってイネーブルされて上記第2出力を選択された
    切換えネットワークと比較して一致するか否かを確認
    し、一致しないときホールドパケット出力を上記演算処
    理要素に対して発生する比較手段を含むことを特徴とす
    る請求項9記載のプロセッサ及びメモリの間のトラフィ
    ックの経路指定装置。
  11. 【請求項11】上記選択手段は上記応答しているメモリ
    モジュールのアドレスを第1出力として供給しかつ上記
    応答しているメモリモジュールの状態を第2出力として
    供給するパケットデフォーマッタを含み、 上記第1出力及び上記第2出力は上記メモリ状態テーブル
    を更新するために上記メモリ状態テーブルに与えられ、 上記第1出力は上記未決要求テーブルを更新するために
    上記未決要求テーブルに与えられる、 ことを特徴とする請求項10記載のプロセッサ及びメモリ
    の間のトラフィックの経路指定装置。
JP3209801A 1990-08-27 1991-07-27 プロセッサ及びメモリの間のトラフィックの経路指定装置 Expired - Lifetime JP2772343B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/573,610 US5274782A (en) 1990-08-27 1990-08-27 Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks
US07/573610 1990-08-27

Publications (2)

Publication Number Publication Date
JPH0728764A JPH0728764A (ja) 1995-01-31
JP2772343B2 true JP2772343B2 (ja) 1998-07-02

Family

ID=24292689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3209801A Expired - Lifetime JP2772343B2 (ja) 1990-08-27 1991-07-27 プロセッサ及びメモリの間のトラフィックの経路指定装置

Country Status (4)

Country Link
US (1) US5274782A (ja)
EP (1) EP0472879B1 (ja)
JP (1) JP2772343B2 (ja)
DE (1) DE69116953T2 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
JP3451103B2 (ja) * 1992-11-27 2003-09-29 富士通株式会社 データ通信装置及び方法
US5964835A (en) * 1992-12-17 1999-10-12 Tandem Computers Incorporated Storage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source
US5796966A (en) * 1993-03-01 1998-08-18 Digital Equipment Corporation Method and apparatus for dynamically controlling data routes through a network
US5579503A (en) * 1993-11-16 1996-11-26 Mitsubishi Electric Information Technology Direct cache coupled network interface for low latency
US5577204A (en) * 1993-12-15 1996-11-19 Convex Computer Corporation Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device
US5485576A (en) * 1994-01-28 1996-01-16 Fee; Brendan Chassis fault tolerant system management bus architecture for a networking
JPH07288593A (ja) * 1994-04-15 1995-10-31 Canon Inc 情報処理システム、情報処理装置およびデータ転送制御方法
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US6470391B2 (en) * 1995-09-08 2002-10-22 Hitachi, Ltd. Method for transmitting data via a network in a form of divided sub-packets
JP4160642B2 (ja) * 1995-09-08 2008-10-01 株式会社日立製作所 ネットワークデータ転送方法
US5892932A (en) * 1995-11-21 1999-04-06 Fore Systems, Inc. Reprogrammable switching apparatus and method
US6339794B2 (en) * 1995-12-08 2002-01-15 Microsoft Corporation Wire protocol for a media server system
US6865610B2 (en) * 1995-12-08 2005-03-08 Microsoft Corporation Wire protocol for a media server system
US5754120A (en) * 1995-12-21 1998-05-19 Lucent Technologies Network congestion measurement method and apparatus
US6141692A (en) * 1996-07-01 2000-10-31 Sun Microsystems, Inc. Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol
US6282195B1 (en) 1997-01-09 2001-08-28 Silicon Graphics, Inc. Packetized data transmissions in a switched router architecture
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US20010040887A1 (en) * 1997-10-09 2001-11-15 Yuri Shtivelman Apparatus and methods enhancing call routing to and within call-centers
US6229808B1 (en) * 1997-03-07 2001-05-08 Advanced Micro Devices, Inc. Method of communication for a computer using packet switches for internal data transfer
US6263368B1 (en) * 1997-06-19 2001-07-17 Sun Microsystems, Inc. Network load balancing for multi-computer server by counting message packets to/from multi-computer server
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US7362331B2 (en) * 2000-01-05 2008-04-22 Apple Inc. Time-based, non-constant translation of user interface objects between states
US6700825B1 (en) 2000-09-29 2004-03-02 Sun Microsystems, Inc. Implementation of a multi-dimensional, low latency, first-in first-out (FIFO) buffer
US6741616B1 (en) * 2000-10-05 2004-05-25 Sun Microsystems, Inc. Switch fabric for asynchronously transferring data within a circuit
US7000025B1 (en) * 2001-05-07 2006-02-14 Adaptec, Inc. Methods for congestion mitigation in infiniband
US20030002497A1 (en) * 2001-06-29 2003-01-02 Anil Vasudevan Method and apparatus to reduce packet traffic across an I/O bus
US6836815B1 (en) * 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US7032028B2 (en) * 2002-03-05 2006-04-18 Avica Technology Corporation Multi-path content distribution and aggregation
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US7581081B2 (en) 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7457234B1 (en) 2003-05-14 2008-11-25 Adtran, Inc. System and method for protecting communication between a central office and a remote premises
US7373642B2 (en) 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US7023793B2 (en) * 2003-08-01 2006-04-04 Ciena Corporation Resiliency of control channels in a communications network
US7397796B1 (en) * 2003-08-21 2008-07-08 Smiljanic Aleksandra Load balancing algorithms in non-blocking multistage packet switches
US7526632B1 (en) 2003-10-22 2009-04-28 Stretch, Inc. System, apparatus and method for implementing multifunctional memory in reconfigurable data path processing
US7237055B1 (en) * 2003-10-22 2007-06-26 Stretch, Inc. System, apparatus and method for data path routing configurable to perform dynamic bit permutations
US20050114540A1 (en) * 2003-11-12 2005-05-26 International Business Machines Corporation Method and system of generically specifying congestion control and a voidance behavior
US7308558B2 (en) * 2004-01-07 2007-12-11 International Business Machines Corporation Multiprocessor data processing system having scalable data interconnect and data routing mechanism
US7007128B2 (en) * 2004-01-07 2006-02-28 International Business Machines Corporation Multiprocessor data processing system having a data routing mechanism regulated through control communication
KR20050079563A (ko) * 2004-02-06 2005-08-10 삼성전자주식회사 응답 지연 시간을 단축시킨 버스 시스템
US7577794B2 (en) * 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US20070124554A1 (en) * 2005-10-28 2007-05-31 Honeywell International Inc. Global memory for a rapidio network
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US8085671B2 (en) * 2006-02-27 2011-12-27 Cisco Technology, Inc. Method and system for providing interoperable communications with congestion management
US9112746B2 (en) * 2006-04-05 2015-08-18 Cisco Technology, Inc. Method and system for managing virtual talk groups
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
US8189460B2 (en) * 2006-12-28 2012-05-29 Cisco Technology, Inc. Method and system for providing congestion management within a virtual talk group
GB2474446A (en) 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US9047057B2 (en) * 2012-11-16 2015-06-02 International Business Machines Corporation Accessing additional memory space with multiple processors
US10740155B1 (en) * 2018-09-28 2020-08-11 Cavium, Llc Methods and systems for load balancing in network devices
US11470017B2 (en) * 2019-07-30 2022-10-11 At&T Intellectual Property I, L.P. Immersive reality component management via a reduced competition core network component

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
US4512011A (en) * 1982-11-01 1985-04-16 At&T Bell Laboratories Duplicated network arrays and control facilities for packet switching
US4621359A (en) * 1984-10-18 1986-11-04 Hughes Aircraft Company Load balancing for packet switching nodes
US4752777A (en) * 1985-03-18 1988-06-21 International Business Machines Corporation Delta network of a cross-point switch
CA1263760A (en) * 1985-09-27 1989-12-05 Alan L. Davis Apparatus for multiprocessor communication
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5111389A (en) * 1987-10-29 1992-05-05 International Business Machines Corporation Aperiodic mapping system using power-of-two stride access to interleaved devices
US4969088A (en) * 1988-04-26 1990-11-06 International Business Machines Corporation Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
US4989131A (en) * 1988-07-26 1991-01-29 International Business Machines Corporation Technique for parallel synchronization
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
US4920484A (en) * 1988-10-05 1990-04-24 Yale University Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
US4952930A (en) * 1988-11-18 1990-08-28 International Business Machines Corp. Multipath hierarchical network

Also Published As

Publication number Publication date
DE69116953D1 (de) 1996-03-21
EP0472879A2 (en) 1992-03-04
US5274782A (en) 1993-12-28
EP0472879A3 (en) 1993-08-04
JPH0728764A (ja) 1995-01-31
DE69116953T2 (de) 1996-11-14
EP0472879B1 (en) 1996-02-07

Similar Documents

Publication Publication Date Title
JP2772343B2 (ja) プロセッサ及びメモリの間のトラフィックの経路指定装置
US5812549A (en) Route restrictions for deadlock free routing with increased bandwidth in a multi-stage cross point packet switch
JP2566681B2 (ja) 多重プロセッシング・システム
EP0563623B1 (en) Communicating messages between processors and a coupling facility
US5898826A (en) Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US6971103B2 (en) Inter-thread communications using shared interrupt register
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
JP3734704B2 (ja) パケット分類エンジン
US4969088A (en) Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
US7484131B2 (en) System and method for recovering from a hang condition in a data processing system
US20040230750A1 (en) Memory management for a symmetric multiprocessor computer system
US5781546A (en) Route restrictions for deadlock free routing with increased bandwidth in a multi-stage cross point packet switch
CA2011935A1 (en) Dual-path computer interconnect system with four-ported packet memory control
JPH05501041A (ja) 高速パケットスイッチング装置および方法
JP2003114879A (ja) メッセージトラフィックとマルチシャーシコンピュータシステムのバランスをとる方法
US6671792B1 (en) Share masks and alias for directory coherency
JP3641834B2 (ja) 並列プロセッサシステムおよびそれに適したパケット廃棄方法
US11449489B2 (en) Split transaction coherency protocol in a data processing system
CA2170468A1 (en) Multi-processor system with virtually addressable communication registers and controlling method thereof
JPH0581939B2 (ja)
CN100361084C (zh) 用于利用门管理器维护实体顺序的方法和装置
JPH05233560A (ja) 多重プロセッサ回路用プロセッサ間連絡システムおよびその方法
CN113285880B (zh) 多播路由方法、互连设备、网状网络系统及其配置方法
JP3609908B2 (ja) 計算機接続装置
JPS59214977A (ja) デ−タ処理装置