JPH0728764A - プロセツサ−メモリ間のトラフイツク径路指定装置及び方法 - Google Patents

プロセツサ−メモリ間のトラフイツク径路指定装置及び方法

Info

Publication number
JPH0728764A
JPH0728764A JP3209801A JP20980191A JPH0728764A JP H0728764 A JPH0728764 A JP H0728764A JP 3209801 A JP3209801 A JP 3209801A JP 20980191 A JP20980191 A JP 20980191A JP H0728764 A JPH0728764 A JP H0728764A
Authority
JP
Japan
Prior art keywords
memory
traffic
output
memory module
network
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
JP3209801A
Other languages
English (en)
Other versions
JP2772343B2 (ja
Inventor
Suresh Chalasani
サーシユ・キヤラサニ
Anujan M Varma
アニユージヤン・マナグラ・バーマ
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)

Abstract

(57)【要約】 (修正有) 【目的】複数の多段接続用ネツトワークにおいて、一様
でないトラフイツクを動的に検出して径路指定する。 【構成】共用メモリマルチプロセツサコンピユータシス
テムにおいて、メモリアクセスが均一にメモリモジユー
ル間に分散している場合には、2つのネツトワーク間に
均等にメモリアクセスを配分し、性能を最大にする。ト
ラフイツクが高度に不均一な場合には、トラフイツクの
不均一部分を一方のネツトワークに、残りの部分を他方
のネツトワークに制限するために、優勢となつているト
ラフイツク状態に基づいて選択する。割り当てられてい
るフイードバツク機構は、トラフイツク状態の変化を検
出し、径路指定方法を変更する。各メモリモジユール内
のトラフイツク監視回路は、メモリモジユールへのトラ
フイツクを連続的に監視し、トラフイツク状態の変化を
感知する。演算処理要素は、トラフイツク状態の変化に
応じて代替用の径路指定方法に切り換える。

Description

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

Claims (15)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/573610 1990-08-27
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

Publications (2)

Publication Number Publication Date
JPH0728764A true JPH0728764A (ja) 1995-01-31
JP2772343B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508320B2 (en) 2000-01-05 2016-11-29 Apple Inc. Method of transition between window states

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0325384B1 (en) * 1988-01-15 1993-09-29 Quantel Limited Data processing and communication
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
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
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
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
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
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US7581081B2 (en) 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
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
US7237055B1 (en) * 2003-10-22 2007-06-26 Stretch, Inc. System, apparatus and method for data path routing configurable to perform dynamic bit permutations
US7526632B1 (en) 2003-10-22 2009-04-28 Stretch, Inc. System, apparatus and method for implementing multifunctional memory in reconfigurable data path processing
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01298459A (ja) * 1988-04-26 1989-12-01 Internatl Business Mach Corp <Ibm> 共用メモリ・マルチプロセツサ・システム

Family Cites Families (11)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01298459A (ja) * 1988-04-26 1989-12-01 Internatl Business Mach Corp <Ibm> 共用メモリ・マルチプロセツサ・システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508320B2 (en) 2000-01-05 2016-11-29 Apple Inc. Method of transition between window states

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0728764A (ja) プロセツサ−メモリ間のトラフイツク径路指定装置及び方法
US5675736A (en) Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages
JP2566681B2 (ja) 多重プロセッシング・システム
EP0473777B1 (en) High-speed packet switching apparatus and method
EP0563623A2 (en) Communicating messages between processors and a coupling facility
US20040230750A1 (en) Memory management for a symmetric multiprocessor computer system
US20050289255A1 (en) Buffer controller and management method thereof
EP0606368A1 (en) Packet processing method and apparatus
US6715055B1 (en) Apparatus and method for allocating buffer space
JP2003114879A (ja) メッセージトラフィックとマルチシャーシコンピュータシステムのバランスをとる方法
US10169270B2 (en) Techniques for handling interrupt related information in a data processing system
US4646237A (en) Data handling system for handling data transfers between a cache memory and a main memory
JPH0786861B2 (ja) 共用メモリ・マルチプロセツサ・システム
JP3641834B2 (ja) 並列プロセッサシステムおよびそれに適したパケット廃棄方法
JP2731742B2 (ja) クラスタ構成の並列計算機
JPH0812635B2 (ja) 動的に再配置されるメモリバンク待ち行列
CN100361084C (zh) 用于利用门管理器维护实体顺序的方法和装置
JPH05233560A (ja) 多重プロセッサ回路用プロセッサ間連絡システムおよびその方法
KR100294314B1 (ko) 데이터처리시스템및방법과그런시스템과의통신시스템
JP2001154913A (ja) 主記憶制御装置
US7353418B2 (en) Method and apparatus for updating serial devices
US8140833B2 (en) Implementing polymorphic branch history table reconfiguration
US20220398124A1 (en) Techniques for adapting escalation paths of interrupts in a data processing system
JP3609908B2 (ja) 計算機接続装置
JP3956652B2 (ja) プロセッサシステム