JP2879567B2 - データ処理装置および通信システム - Google Patents

データ処理装置および通信システム

Info

Publication number
JP2879567B2
JP2879567B2 JP1006060A JP606089A JP2879567B2 JP 2879567 B2 JP2879567 B2 JP 2879567B2 JP 1006060 A JP1006060 A JP 1006060A JP 606089 A JP606089 A JP 606089A JP 2879567 B2 JP2879567 B2 JP 2879567B2
Authority
JP
Japan
Prior art keywords
data
packet
processing
communication system
routing means
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
JP1006060A
Other languages
English (en)
Other versions
JPH025173A (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.)
Quantel Ltd
Original Assignee
Quantel Ltd
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
Priority claimed from GB888800943A external-priority patent/GB8800943D0/en
Priority claimed from GB888819207A external-priority patent/GB8819207D0/en
Application filed by Quantel Ltd filed Critical Quantel Ltd
Publication of JPH025173A publication Critical patent/JPH025173A/ja
Application granted granted Critical
Publication of JP2879567B2 publication Critical patent/JP2879567B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Description

【発明の詳細な説明】 本発明は2つ以上の処理ユニットを有するデータ処理
システムに関する。本発明はまた、そのデータ処理シス
テムの処理ユニット間の通信を与えるのに適している
が、ローカルネットワークや1個の半導体ウエハに集積
された回路のような他の通信環境にも適用されうる複数
の経路指定手段を有した通信システムにも関係する。
従来のVLSI中央処理装置(CPU)は命令ユニット、演
算論理ユニット、レジスタのファイルおよびCPUを外部
メモリ装置に接続する1つの(または複数の)バスの4
つの機能部分よりなっている。通常の動作は、メモリ装
置から命令を取出し、そしその命令をバスを通じて命令
ユニットに送ることによりなる。次に演算論理ユニット
が命令ユニットからの制御信号に応答してバスを介しレ
ジスタおよびメモリ装置からデータを読出し、そしてそ
れらのレジスタおよびメモリ装置に新しいデータを書込
む。通常レジスタ・ファイルは多数の汎用レジスタと、
スタックポインタやステータスレジスタのような専用レ
ジスタを具備している。しかし、すべての従来の中央処
理装置に共通な1つのレジスタは次の命令のアドレスを
識別する役割をするプログラムカウンタである。
近年、中央処理装置の処理速度が劇的に増加してお
り、同様の技術を用いて実施される場合には、データ処
理システムの全体の動作速度はCPUが命令を実行しうる
速度ではなくてCPUとそれに関連するメモリ装置との間
でデータが転送されうる速度によって決定されることが
現在では受入れられている。この問題は、システム性能
を改善する高速の(ただし小形の)メモリ装置よりも大
形の(ただし低速の)メモリ装置の方が好んで選択され
る大形プログラムを実行するように設計された機械では
大きくなる。
システムの動作速度を改善するための技術が知られて
いるが、これらの技術は、価格の増加に加えて、新しい
制約を生ずる。さらにこれらの技術は、特に多数の別々
のメモリ装置が全体のアドレス指定可能なスペースを構
成している場合に性能に影響を及ぼすことになりうるバ
スに関係した速度の問題を解決しない。
従って、本発明の第1の態様における1つの目的は2
つ以上の処理ユニット間に処理が分散される形式の改良
されたデータ処理装置を提供することである。
分散されたプロセッサを有する形式のデータ処理シス
テムでは、プロセッサと遠隔のメモリ装置との間に通信
システムが設けられなければならない。従来の処理シス
テムでは、さらに他の処理装置を付加したことにより、
バスが完全にロードされた状態になると、全体の処理能
力の低下を来たし、従って利用しうる帯域幅を増大する
ことが必要となる。この種の問題は、多数の装置が互い
に通信しなければならず、各装置と1つおきの装置との
間に個々の通信リンクを設けることができない多くの環
境において発生する。公知の解決策は4つの種類、すな
わちバス、リング・クロスポイント、および蓄積交換
(store−and−forward)に分類されうるが、勿論多数
のハイブリッド・システムを伴う。従って、本発明の第
2の態様における1つの目的は改良された通信システム
を提供することである。
本発明の第1の態様によれば、2つ以上の処理ユニッ
トを有するデータ処理装置において、2つ以上のメモリ
・ユニットと、前記処理ユニットおよびメモリ・ユニッ
ト間に通信を与える通信システムを具備し、前記処理ユ
ニットのそれぞれが、各プロセスに関するデータをそれ
ぞれ受取ることができる複数のレジスタ・セットと、第
1のプロセスが前記通信システムを通じて供給される第
1のデータを必要とする場合に前記レジスタ・セットの
第1のものにアクセスすることにより前記第1のプロセ
スを処理し、前記通信システムを通じて供給されるべき
第1のデータを前記通信システムを通じてリクエスト
し、前記第1のデータを受取って前記第1のプロセスの
処理を中断し、そして第2のレジスタ・セットにアクセ
スすることによって第2のプロセスを処理するための処
理手段を具備することを特徴とするデータ処理装置が提
供される。
本発明の第1の態様によるデータ処理装置の利点は、
付加されるユニットの数が多くなるにつれてパーフォマ
ンスとコストの比が大幅に低下することのないハイパワ
ー・コンピュータを構成しうるようにする点である。こ
れは、最初の処理に対するデータを待っているあいだに
第2の処理に向う処理ユニットをデータ転送がホールド
アップしないからである。
好ましい実施例では、同じ処理ユニットで行われる幾
つかの処理が通信システムから戻されるべきデータをそ
れそれ待っていてもよい。好ましくは、すべてのデータ
・リクエストがその通信システムを通じてなされ、処理
ユニットのいずれにも専用のアドレス指定可能メモリ装
置が設けられない。さらに、すべてのデータが通信シス
テムを通じてアクセスされなければならないのみなら
ず、好ましい実施例では、メモリ装置のうちの任意のも
のからデータが選択的に読出されうる。
本発明の第2の態様によれば、伝送手段によって接続
された複数の経路指定手段を具備する通信システムにお
いて、前記経路指定手段のそれぞれが少なくとも2つの
入力ポートと少なくとも2つの出力ポートを有し、前記
入力ポートは各先入れ先出し(FIFO)メモリ・デバイス
を通じてデータ・パケットを受取るようになされてお
り、前記データ・パケットはローカル宛先ワードを含む
複数の一時的に分離されたワードを有し、前記ワードの
それぞれが複数の空間的に分離されたディジットを有
し、前記経路指定手段はパケットのローカル宛先ワード
に応答して前記少なくとも2つの出力ポートのうちの1
つにパケットを選択的に送るための手段と、前記経路指
定手段内でのデータの衝突を防止するために各FIFOの伝
送特性を制御するための手段を具備していることを特徴
とする通信システムが提供される。
オーバーロード・バスの問題および付加的な帯域幅を
与えることに関連するその後の問題が、本発明の第2の
態様によれば、公知のリング、クロスポイントおよび蓄
積交換の特徴を有するハイブリッド・システムを提供す
ることによって克服される。このようにして、リングに
おけるように各経路指定手段においてデータが緩衝され
るが、実際の通路はクロスポイント・システムにおける
ように変化する。さらに、グリッド・ロックを防止する
ために、データは蓄積交換システムにおけるようにFIFO
(複数)に記憶されうる。
好ましい実施例では、各経路指定手段および好ましく
は入力ポートに接続されたその手段に関連したFIFO(複
数)が1個のチップ上に作成され、ネットワークを標準
ユニットで構成しうるようにする。好ましくは、各経路
指定手段が4つの他の経路指定手段に接続されうるよう
に十分なポートが設けられる。そのネットワークは二次
元グリッドとしてあるいは多次元ハイパーキュブとして
構成されうる。
好ましくは、本発明の第1の態様によるデータ処理シ
ステムは本発明の第2の態様による通信システムを有し
ている。データのリクエストは、経路指定手段によって
1つのメモリ・ユニットに指定されそしてそのメモリ・
ユニットによって解釈されるパケットを通信システムに
送ることによってなされる。
前記第2の態様の他の好ましい実施例では、経路指定
手段はローカルエリアネットワークのノードである。同
様の経路指定手段によって複数のネットワークを接続し
てもよく、その場合の結合通信はセカンドレベル・エリ
アネットワーク(second lrvel area network)と呼ば
れる。
他の好ましい実施例では、前記第2の態様による通信
システムは1個の半導体ウエハ上に作成されうる。好ま
しくは、前記第2の態様による通信システムを有しうる
前記第1の態様によるデータ処理システムは1個の半導
体ウエハ上に集積される。本発明の誤り許容機能のため
にこの技術に有利に適用されうる。従って、好ましく
は、経路指定手段は、パケットが回路の損傷された領域
に送られないように作成後に自動的にプログラムされ
る。
以下図面を参照して本発明の実施例につき説明しよ
う。
通常コンピュータと呼ばれているデータ処理システム
が第1図に示されており、これは多数の処理装置(CP
U)、多数のメモリ・バンクおよび少なくとも1つの専
用データ処理装置を具備している。2個のCPU、C1およ
びC2、2個のメモリ・バンクM1およびM2、およびFPU
(浮動小数点ユニット)の形をしたデータ処理装置が示
されている。各種類のユニットの数はそれよりも多くて
もよく、また各CPUは同一である必要はなく、そのこと
は専用ユニットについても該当する。CPU、C1の場合に
は第2図に示されているように、各CPUは処理されるべ
きプロセスに対して1つのグループのレジスタ・セット
R1、R2……(文脈と呼ばれる)を有している。フラグF
1、F2、……は各文脈R1、R2におけるプロセスが特定の
時点で処理されうるかどうかを定義するための手段を与
える。CPUは、フラグF1、F2……で示されているように
現在処理されうる文脈のうちの1つ以上を選択するよう
になされたセレクタSをも有している。選択される文脈
はそのセレクタSによってCPUのプロセッサPに送ら
れ、そこでその文脈に含まれた命令に従って処理され
る。プロセッサPは、それがメモリまたはU1のようなユ
ニットに対するアクセスをリクエストしうるアクセス・
パスA1を有する。プロセッサPはそのようなリクエスト
のそれぞれに識別情報を付着するようになされており、
一般にその識別情報はメモリまたは他のユニットからの
応答と一緒に戻される。第1図に示されているように、
アクセス・パスA1は各ルータ(router)R1によって送信
バスSBに接続されている。応答は応答パスを通じてCP
U、C1で受取られ、そして、フラグF1、F2……に、そし
てレジスタ・セットR1、R2……に適用される。第1図に
示されているように、応答パスB1は受信バスRBからメッ
セージを受取るルータR2から延びている。
システムに含まれているC2のような他のCPU(複数)
は第2図に示されているような要素よりなるであろう
が、他の点では異なっていてもよい。ユニットU1、M1お
よびM2は、集積パッケージとして購入しうる公知の構造
の装置、例えばアドレス指定可能なメモリを具備してい
る。さらに、他ユニットはパケットを受信しかつ解釈す
るコントローラをも具備してりいる。例えば、メモリ・
コントローラは1つの命令に応答してデータのブロック
を転送することができるとともに、処理装置の命令組の
詳細でプログラムされることができ、データのブロック
を予め定められた長さに達するまでまたはメモリの他の
領域への分岐に対する命令に達すると読出しうるように
する。スピン・ロッキング・システムでは、メモリ・コ
ントローラはメモリ・ロッキング手段を具備しうる。
コンピュータは、レジスタを複数の組として配列され
た少なくとも2つのベクトル型プロセッサをもって構成
されうるものであり、その場合、データのブロックが1
つのリクエストに応答して供給される。プロセッサは多
数の異なる種類のものよりなりうるが、典型的には、好
ましくは16または32ビット・ワードで動作する従来のマ
イクロプロセッサに匹敵する処理能力を有する。送信バ
スBSおよび受信バスRBはすべてのユニットに共通であ
り、それらのユニットは各アクセス・バス、応答パスお
よびルータによってそれらのバスに接続されている。ア
クセス・パスは符号Aで示され、応答パスは符号Bによ
って示され、ルータは符号Rによって示されており、各
場合に適当な添字がつけられている。
システムの動作時には、そのCPUのあるいはCPUの個数
が1個以上である場合には各CPUのセレクタSがレジス
タ組R1、R2……から実行可能なプロセスを拾い、次にプ
ロセッサPがメモリ・バンクM1、M2……のうちの(例え
ば)1つに対するアクセスを必要とするまで、選択され
たプロセスのために命令を実行する。次にプロセッサP
が典型的にはメモリ読出しまたは書込みのための該当す
るメモリ・リクエストを送り出し、プロセスがもはや実
行可能でないことを知らせるようにフラグF1、F2……の
うちの該当する1つを条件づけ、そして実行可能なもの
としてフラグをたてられた次に利用できるプロセスをセ
レクタに選択させる。メモリ・リクエストは奇数番目の
ルータRおよび送信バスSBを通じて正しいメモリ・バン
クに送られ、プロセッサPは新しく選択されたプロセス
(または一連の1つ以上のプロセス)に応答して命令を
実行する。それよりある時間の後に、最初のリクエスト
に対する応答が偶数番目のルータRおよび受信バスRBを
通じてメモリ・バンクM1から受取られる。その応答は各
レジスタ組R1、R2……と最初のプロセスが再び実行可能
となったことを知らせる各フラグF1、F2……に与えられ
る。それからある時間経過後に、プロセッサPがある他
のプログラムの実行を中断すると、セレクタSが最初の
プロセスを再び選択し、プロセッサがそのプロセスの実
行を継続する。続いて1つのメモリ・バンクに対する他
のリクエストが必要とされることがあり、その場合に
は、プロセッサが再びメモリ・リクエストを送り出し、
最初のプロセスの実行を再び中断する。このようにし
て、多数のプロセスを実行することが互いに適合され
る。さらに、このシステムは、特定の要素がネックとな
ることなしに各要素を複製することによって拡張されう
る。各要素の比と絶対数は異なる要件に適合するように
変更されうる。送信バスSBは、単一のメモリ・バンクM
がリクエストを受取ることができるよりも迅速にそれら
のリクエストを受取ることができるが、リクエストが並
列に受取られる幾つかのメモリ・バンクM1、M2……にリ
クエストを渡すことができる。CPUは、例えば利用可能
な処理能力をすべての文脈に対して公平に共用するよう
にするために、1つのメモリ・バンクまたは専用のデー
タ処理装置に対してメッセージを伝送する場合以外の時
点で文脈を切換えることができる。例外的な状況では、
CPUは、応答が予期されていないメッセージを送ること
があり、従ってその場合にはプロセスを切換えない。
第1図に示されているように多数のCPUが装着されて
いる場合には、メモリ・バンクMまたは専用データ処理
装置Uから受取られた応答における識別情報はCPUコー
ドとプロセス・コードを含んでいるので、その応答は正
しいCPUに送られる。さらに、すべてのCPUが同一である
必要はなく、例えばあるものと人工知能言語、グラフィ
ックスまたはフーリエ変換等に適合した特別のプロセッ
サであってもよい。
FPU U1のような専用データ処理装置がメモリ・バン
クと同じようにして反復されうる。このような装置に送
られるリクエストは1つの組のオペランドよりなりうる
ものであり、結果が各文脈識別子と一緒に戻される。専
用データ処理装置の方がメモリ・バンクより多くてもよ
く、あるいはFPUのようなユニットがパイプライン化(p
ipelined)された場合に非常に高速の処理が必要とされ
る場合には、必要に応じてその逆であってもよい。
第1図に示されたシステムはパイプライン化(pipeli
nig)に特に適合している。この技術は、幾つかの連続
した命令の異なるフェーズの重複実行を可能にする。命
令A、B、C……を実行する場合に各命令が5つのフェ
ーズを必要とするならば、命令Aに対するフェーズ1を
実行し、次に命令Aに対するフェーズ2のパフォーマン
スに命令Bに対するフェーズ1を重複させ、そして順次
そのようにしてパイプラインを状態A5、B4、C3、D2およ
びE1で充満させる。このことは1つのCPUを形成するす
べての要素が順次的にではなく同時的に用いられるとい
う利点を有する。命令Aの結果が命令BまたはCに対す
る入力として必要とされる場合、およびBがAの結果が
知られるまで実行することができず、命令C、D等をど
こで見つけ出せばよいかを決定するのを困難にする条件
付き飛越しである場合に、問題が生ずる。上述したシス
テムのCPUに対しては、修正された形態のパイプライン
化が実施されてもよく、その場合には、各パイプライン
・ステージは異なる文脈に属する。このことは、パイプ
ライン化されたアーキテクチュアのより大きいスループ
ットを得ながら、1の命令の結果が他の影響を及ぼすこ
とができないようにする。
第1図に示されたシステムでは、送信および受信バス
SBおよびRDとルータRが、従来のコンピュータにおける
メモリ・アクセス・パスを与えるシステム・バスに代え
て用いられている。従来のマイクロコンピュータ・バス
と異なり、各メッセージは1以上のルータに入り、そこ
で緩衝されそして他側から出て来る前に1周期のあいだ
記憶されるが、従来のマイクロコンピュータでは、バス
は等価なユニットに沿って通り、直ちにすべてに対して
電気的に接続される。図示されたシステムでは、完全な
メッセージを構成するのに必要なビットの数はルータを
接続する導体の数よりも多くてもよく、従って通常の通
り各メッセージは幾つかのトランザクションよりなりう
る。メッセージが各ルータで緩衝される場合、幾つかの
メッセージがバスSBまたはRBの異なる部分に同時に存在
し、そのバスに沿って互いに追従しうる。1つのメッセ
ージがそれの意図された宛先に到達すると、それに接続
されたルータがバスからメッセージを回収し、そしてそ
れを宛先に送る。このシステムにおいては、すべての接
続が短く、従って1つのルータから他のルータへの伝送
は従来のバスにおけるよりも速くなりうる。1つのメッ
セージが送信バスSBを通って出て受信バスRDを通って戻
るのに要する時間は従来のシステムよりも長いが、多数
のメッセージが各バスに沿って同時に進行しうるので、
多数の文脈を用いることによってバスの全スループップ
を従来のシステムよりも大きくすることができ、従って
メモリがアクセスされている状態でリクエストの伝送と
応答との間に静止期間が存在しないので、上述のように
要する時間が長いことは不利益ではない。
第3図は、第1図の送信および受信バスが飽和状態と
なりうる点以上にCPUの数を増加させうるようにするた
めに多数のシステム・バスを用いて第1図のシステムを
発展させたものを示している。第3図に示されたシステ
ムは多数のCPUおよび第1図のように1つ以上のFPUをプ
ラスしたメモリ・バンクを、周辺装置と一緒に用いて構
成されている。CPU(複数)、メモリ・バンクおよびFPU
は第1図と同様の符号で示されている。しかしながら、
各レータの2つのチャンネルは、内に5つ、外に5つの
合計10に延長され、従ってバスのセクションが種々のユ
ニット間に多数の交互ルートを与えるバス・グリッドBG
を形成する。グリッドのエッジにおけるバス・セクショ
ンは使用できないものとしてフラグをたてられうるかあ
るいは反対側のエッジのまわりに巻きつけられうる。
本発明のこの形態では、前述の場合と同様にリクエス
トはCPU(複数)で発生し、応答はメモリ・バンク(複
数)MおよびFPU(複数)で発生し、これらが各対角線
リング(バス・セクション)の1つに沿って該当するル
ータRに送られる。そこから、映像は、各ルータにおい
て、3つのルートの選択が可能である場合を除き、宛先
に到達しなければ、第1図におけるようにルータからル
ータへと送られる。宛先は「2北」、「4東」のように
各方向におけるステップの数によって識別される。ルー
タは北または東の隣接したルータにメッセージを送る
が、他のトラフィックに応じて選択しうる。次に宛先一
致は、メッセージが対角線バス・セクションを通って付
設ユニットまたはメモリ・バンクに送られる所望の宛先
におけるルータに到達するまで、各ルータで更新され
る。リクエストと応答はかならずしも同じ通路を反応方
向に進行しないが、一般には2つのメッセージが同様の
通路によって進行するであろう。
ルータは、他のチャンネルが何をしていようが、任意
の対の入力および出力ポート間にメッセージを送るよう
に構成されている。すでに使用されている任意のチャン
ネルに対して1つのメッセージが到達すると、ルータは
そのメッセージを記憶するかあるいは出力が得られるま
で入力を遅延させる。グリッド・ロックを回避するため
に、各ルータは完全なメッセージを記憶するのに十分な
緩衝を有する。
第3図の構成に対しては修正がなされうる。六角形、
立方体またはハイパキュウビックのような他のグリッド
が四角形のグリッドに代えて用いられうる。10のポート
・ルータを有する16のディメンションを有すハイパキュ
ウビック構造のノードが第4図に示されている。四角形
グリッド形態は、北と東または西を交互にして一方向に
「ストリート」を作成することによって簡単化されう
る。活性ユニット、すなわちCPU(複数)、FPU(複数)
等は必要な任意の混合でノードに接続されうる。
上述したようなシステムでは、コンピュータに通常設
けられる通常の割込機能は必要とされない。周辺装置は
それがサービスを所望するまで1つのメッセージに応答
できないことによってプロセスを遅らせうる。CPUを占
有状態に保持するのに十分な文脈が存在しているなら
ば、パフォーマンスの劣化は生じない。しかしながら、
時間切れとなった後に遅延されたタスクをアンジャム
(unjam)するためのある種の手段が所望される。都合
の良いことには、メッセージ経路指定はメッセージが進
行しなければならない北(負であれば南)および東(負
であれば西)のノードの符号のついた数を定義するため
に最初のバイト(1つまたは複数の)をコード化するこ
とによって実現される。メッセージが進行するにつれ
て、これらのカウントは適切にインクレメントまたはデ
クレメントされる、両方のカウントがゼロに達すると、
宛先に到達し、メッセージがローカル・ユニットに経路
指定される。任意のリクエストに対するリターン・アド
レスはメッセージそれ自体で包まれているかあるいはメ
ッセージ内の固定位置を占有しかつメッセージが主経路
指定とはちょうど逆の態様で進行するにともなって修正
されうる。復帰アドレスが最初にゼロにセットされる
と、その復帰アドレスは自動的にリクエスト・アドレス
と同一となる。
上述のようにして経路指定されたメッセージがN/SとE
/Wの両方向にある距離だけ進行しなければならない場合
には、ルータが任意のアルゴリズムに従っていずれかの
方向を自由に選択する。特に、1つの方向における出力
ポートが使用されている場合には、他の適当な方向を選
択しなければならない。しかし、これらのうちの1ツの
方向に進行すべきステップの数がゼロにまで低下すると
(すなわち正しい行または列に達すると)、ゼロにオフ
セットされた残りを減少させる方向にだけメッセージを
通常送らなければならない。所望のポートが現在用いら
れているとしても、メッセージは正しい行または列から
外れて経路指定されないことが好ましい。なぜならば、
そのようなサイドステップは後で反転されなければなら
ず、それがため。所望のポートが自由になるのを待つよ
りも長くかかるであろうからである。しかし、第3図の
グリッドが一部分であるべきであるすなわち幾つかのノ
ードが完全に欠落しているべきであるという要求が生じ
うる。このような状況では、ルータがこの事実を知って
いなければならない。明らかなことであるが、メッセー
ジをそのような不存在のグリッド・ポイントに経路指定
してはならず、従って先行のルールは無効とされ、メッ
セージは「サイドウエイ」(sideways)に経路指定され
うる。このような状況では、たとえ事実上の宛先に接近
させるように見えても、メッセージはそれが出て来たノ
ードに経路指定されてはならない。
前述のように、通常故障のために生ずる遅延されたタ
スクをアンジャム(unjamming)するための手段を設け
ることが望ましい。防御しなければならない2つの種類
の故障が存在する。すなわち、ソフトとハードの故障で
ある。ソフトの故障は通常1個のビットまたは小さいグ
ループの関連したビットだけを汚染される過渡的なエラ
ーであり、ノイズまたはアルファ粒子汚染のような原因
から生ずる。ソフトの故障は頻繁にではなくランダムに
発生する。ソフトのエラーに対処するためには多数の技
術が存在する(パリティ・ビットでもって冗長度を増大
させること等によって)が、これらの技術はすべて事実
上効果がないであろう。ハードの故障は部品の故障であ
り、それはいったん発生すると、本質上永久的である。
ソフトの故障は、検知されたとすると、故障の生じた
動作を再度行うことによって補正されうる。ここで考慮
されている詳細のレベルでは、主たる問題はすべてのソ
フト故障が確実に検知されるかという点である。ハード
の故障に対処するためには2つの方法が知られている。
すなわち並列ハードウエアとチェックポインティングで
ある。並列ハードウエアは主たる部品が故障した場合に
(勿論その故障が検知されるとしつ)取って代わる複製
品をあらゆるシステムまたはサブシステムが有している
ことに依存する。この技法は高価なハードウエア複数を
必要とする。チェックポインティングも多数の組のハー
ドウエアを必要とする(1つの組が故障した場合には他
の組が作用するように)が、エラーが存在しない場合に
はすべての異なる組のハードウエアを独立に動作させう
る。本発明を具現したコンピュータに容易に適用されう
るのは主としてソフトウエアをベースとした技術であ
り、シーケンスとして実施される多数の別々の動作に各
文脈またはタスクを分割し、そして各対の動作の間で、
十分なデータが記憶され(チェックポイントされ)、動
作に故障が生ずると、チェックポイントから開始されう
るようにすることを含む。両者の方法において、主たる
要件は、交換ハードウエアの使用とタスクの最後のチェ
ックポイントからの復帰をトリガするためにエラーが検
知されることである。
パケット・グリッドにおけるエラーは2つの形式、す
なわちパケットがグリッドをまわって進行する場合のパ
ケットの汚染と使用時におけるノードの死として現わ
れ、前者について最初に考慮する。いわゆる「ハードビ
ート」クロック信号がグリッドのすべてのノードに存在
し、それはパケットがパケット・グリッドを交差するの
に要する時間と同じ大きさのオーダの周期で刻時する。
同期する必要はないが。各ノードにおいて同じ速度で刻
時する。パケット・グリッドをめぐって送られているパ
ケットはルータからルータに通過するときに汚染され、
このことが生じたことを検知することが必要であり、そ
れはチェック値またはCRCをパケットに付けることによ
って簡単に行われうる。しかし、その場合には、CPCを
いつチェックすべきかということを、故障が生じたとき
にどのような処置をとるべきかが問題となる。パケット
はルータからルータへとできるだけ速く通過されるの
で、ルータが1つのパケット全体を内部記憶装置に保持
することはまれである。CPCが到達し、チェックされそ
して故障であるとわかった時点までに、パケットのヘッ
ドは幾つかのルータをさらに通過していることがありう
る。従って、受信ルータ(パケットをそれの宛先きのCP
U、FPUまたメモリに切換える)がCRCをチェックし、汚
染されたパケットを放棄することが必要である。それと
は対照的に、受信ノードが故障パケットを検知し、それ
を無視するのは容易である。
パケットが汚染のため放棄されると、システムの動作
継続を確保するために、そのパケットは再度伝送されな
ければならない。これに対しては3つのアプローチが存
在するが、それらのうち3番目のものが最も信頼性が高
い。
第1のアプローチは各パケットが起点ノードアドレス
を含むようにすることである。パケットの受信者は起点
ノードの再送リクエストを送ることができる。しかし、
これは汚染したものが起点アドレスでありうるという難
点がある。
2番目のアプローチでは、ルータ(複数)がリング・
パッファの形をした出力FIFO(先入れ先出し方式)を有
するようにすることである。パケットが受信ルータによ
り誤まって読取られたことを示す新しい信号バッドパケ
ット(BadPacket)がルータ間のインターフェースに加
えられる。パケットが到着すると、受信ルータがCRCを
計算し(これをできるだけ速く送りながら)、CRCが故
障を表示すると、パケットの終りでバッドパケットを主
張する。ルータ(パケットを発信しているもの)は、パ
ケットが発信されてしまうまで出力パケットをそれのリ
ング・バッファ内に保持する(すなわち入力データをそ
れに重ね書きさせない)。パケットの終りでバッドパケ
ットが受信されると、バッファ・ポインタが操作されて
パケットのスタートに戻され、これによりパケットが再
送され、バッドパケットが受信されない場合には、セー
ブされたパケットを含むメモリが重ね書きささうる。汚
染されたパケットはそれの宛先まで継続し、そこで放棄
され、それの後に接近して続くものが正しいコピーとな
る。このアプローチは、データの流れに障害が生じた場
合に可能な限り最も速く再送を行うが、それは制御信号
パケットスタート(PacketStart、ノットレデイ(NotRe
ady)およびバッドパケットにおける障害に影響されや
すい。
障害補正のために好ましい機構は、すべてのパケット
が応答を有しかつパケットの送り側(sender)が、時間
切れにともなって、応答を待つようにするものである。
これを行うための機構について下記に説明する。一定の
期間内に応答が受信されない場合には、リクエストが再
送される。パケットの内容は、応答ノードが同じリクエ
ストの2つのコピーを受信するかどうか問題がないよう
なものでなければならない(なぜならば、汚染した状態
で到着した最初のリクエストに対する応答が帰路におい
て汚染され、従って破壊されるからである)。
1つの汚染パケット・モードについてさらに考える。
パケットのヘッドにおける経路指定情報が汚染している
場合には、それは誤まったノードに送られる。これが正
当なノードであれば、そのパケットは正しくないCRCが
到着したときに破壊されるであろう(経路指定情報は勿
論CRCに含まれていなければならない)。しかし、それ
が誤まって経路御指定されるノードは存在していないか
あるいは死んでいるかも知れない。この場合には、経路
指定システムの死ノード処理によりパケットがグリッド
のまわりで飛びはねさせられ、所望のノードに引き続い
て到達しようとするが、死ノードに到着すると偏向され
る。このようなパケットはグリッドを不確定にさまよう
傾向があり、かつ参照を容易にするためにゴースト・パ
ケットと呼ばれる。各ルータに対する修正のためそのル
ータが死んだとしてフラグをたてられた隣接ノードにア
ドレス指定されたパケットを破壊する。しかし、このこ
とは、アドレス指定された死んだノードがブロックの中
心または実際に存在するグリッドの領域の外側にある場
合には適しない。すなわち、ルータはそれが実際に死ん
でいるかあるいは見掛け上死んだノードが生きたノード
への直接の通路を単に遮断しているだけなのか知ること
ができない。
ノード障害(それは、ローカル・リソースまたはそれ
のルータが信頼できない場合にほノードは死んだものと
してマークされるので、ルータ障害を含む)もゴースト
・パケットを発生しうる。ノードが故障したときに、そ
れのすべての隣接ノードに対して「デッド」(dead)信
号を(デフォルトによって)発生することが発明の実施
の要件である)。これは、それを通って送られているメ
ッセージを停止させる。しかし、故障したノードにアド
レス指定されたメッセージが発生され、このノードで発
生したメッセージに対する応答も他ノードからのメッセ
ージも特定のノードが死んだことをまだ知らず、これら
が今度はゴースト・パケットとなる。
しかし、ハートビート・クロックによりルータは、最
大トランシット時間より長い値を現在のハートビート・
カウントに加算することによって得られた満期時間を有
するノードから各パケットが発信されて時間スタンプ
(timestamped)されるにつれて、ゴースト・パケット
を検知し、処分することができる、次に各ルータはこの
時間スタンプをそれ自体のハートビートと比較し、現在
の時間が満了時間より大きいかそれに等しいならば(カ
ウンタ・ラップ・アラウンドを斟酌することを覚えてい
て)、パケットを破壊する。ハートビートが十分に遅い
場合(通常のルータからルータへのトランシット時間よ
りはるかに長い)場合には、等価性に対する単純な比較
で十分でありうる。非常にまれに良好なパケットが遅す
ぎる速度で進行したがために破壊されるかどうかは問題
ではない。これはソフト・エラーとして登録する。他の
実施は、送信側が現在のハートビートをもって時間スタ
ンプし、差が所定の値を超えた場合にパケットを破壊す
るようにすることである。
ゴースト・パケットの問題に対する他の解決策はパケ
ットが各ノードを通過するときに減少されるノード・カ
ウントをパケットに含ませるようにすることである。ル
ータは、ゼロに達するとパケットを殺す。これなはさら
に正確であり、宛先に到着できないと直ちにメッセージ
を殺すが、各ルータにおいてメッセージを変更すること
を含む。このことはルータの速度と複雑性に対して影響
を及ぼし、CRCが各伝送に対して再計算されなければな
らないことを意味する。
すべてのハートビート・クロックが常にほとんど同一
であることが極めて重要である。概略説明されたエラー
補正方式は、パケット・グリッドのクロッキングにおけ
る非常にまれなエラーからの回復を斟酌するが、このこ
とはハートビート・クロックにエラーが存在しないこ
と、あるいは非常に大きく離れたところに移動する前に
クロックを同じ値にリセットすることによってエラーが
堆積するのを停止させる機構を必要とする。ノードにお
けるハートビート・クロックを同じ値にリセットするた
めに用いられうる放送機構がパケット・グリッドで利用
できることが好ましい。事実、この機構はすべてのノー
ドにハートビートを分配するために用いられうる(すな
わち、1つのマスター・ノードが一定の間隔で他のすべ
てのノードに新しいハートビート値を分配する)。これ
はルータに放送を解釈させるための高いコストを回避す
る。
メッセージが失われたことをノードが決定する時間切
れはメッセージが受信されるために許容される時間切れ
の少なくとも2倍でなければならない(応答パケットが
それに対する応答であるパケットの時間切れを継承する
ことが有益でありうるが、その場合には、ノード時間切
れはこの値よりも単純に大きくなければならない)。ノ
ードが時間切れを検知すると、それは少なくとも1回か
つ好ましくはマイクロコードまたはソフトウエア・レベ
ルで行われうるそれよりも多い回数だけ再トライしなけ
ればならない。メッセージを送ろうとする一連の試みが
失敗すると、ノードが死んだことを報告するのに適した
アクションをとりかつタスクをそれらの最も最近のチェ
ックポイントから再スタートすることのような回復処理
を開始しなければならない。
ハートビートを放送するための1つの機構は専用パケ
ットにそれを搬送させることである。このようなパケッ
トを受取ると、ノードは新しいハートビートを現在と値
と比較する。その値が現在の値と異なる場合には、ノー
ドはその現在の値を変更し、そしてその新しい値が受信
されたノードを除いてもよいが、すべての死んでいない
隣接ノードに新しいハートビート・パケットのコピーを
送る。その値が変化していなければ、処置はとられな
い。
本発明によるシステムはCPUが各文脈において1つず
つ、多数のタスクを実行するマルチタスク型のものであ
るが、自由な文脈を待っている間に静止している他のタ
スクが存在していてもよい。このようなシステムでは、
他のタスクがそれの修正過程にある間に1つのタスクが
データに対するアクセスを求めるのを回避するために、
異なるタスクが制御された態様で通信しかつ対話する必
要がある。この問題はスピン・ロッキング(spin locki
ng)を用いて解決される。
このスピン・ロッキングを実現するためには、メモリ
アクセス装置が各CPUに対して作用する分割できない読
取り/書込み機構を提供し、それによりCPUがメモリ場
所の内容を読取りかつ例えばシステム・バス・アーキテ
クチュアまたはストア・アーキテクチュアによって、分
割できないことを保障された態様で新しい値をそのメモ
リ場所に書込むようにすることが必要である。このよう
にして、その特定の場所に対する他のアクセスは読取り
/書込みサイクルの2つの半分の間では生じない。この
アーキテクチュアでは、これは読取りパケットと書込み
パケットを結合した新しいパケット形式によって実施さ
れうる。各メモリ・バンクまたは妨害されないアクセス
が必要とされる他の資源に対しては、特定のメモリ場所
がロック場所として割当てられる。これは2つの設定、
すなわち「アンロックされた」(unlocked)(通常ゼ
ロ)と「ロックされた」(locked)(非ゼロ)を有す
る。
資源をロックしたいと望むアスクは上述のように読取
り/書込みサイクルを実行し、「ロックされた」値をそ
の場所に書込む。読取られた値が検査され、それが「ア
ンロックされた」値であれば、タスクは資源を要求する
ことに成功したことになり、「ロックされた」値であれ
ば、ロッキングタスクは資源を要求することに先取りし
たことになる。ロックする試みが失敗であれば、ロッキ
ング・タスクはしばらくのあいだ停止しそして再度トラ
イし、成功するまであるいはあきらめるまで反復する
(従って「スピニング」(spinning)である)。ロック
がいったん成功すると、資源は自由に使用でき、かつロ
ック場所に「アンロックされた」値を書込むだけで釈放
される。
分割できない読取り/書込みが得られない場合には、
それは、(a)現在の内容がゼロである場合に非ゼロを
書込むこと、あるいは(b)任意の時点でゼロを書込む
ことだけを許容する専用記憶場所によって置換されう
る。資源をロックすることを望むタスクはそれ自体の独
特の(非ゼロ)識別子をその場所に書込み、そしてそれ
を読出し、それ自体の識別子を読出した場合には、資源
をロックしたことになる、資源をロックすることに失敗
した場合には、前述のように、しばらくのあいだ休止し
て再びトライしなければならない。
どのような形態であれ、スピン・ロッキングの難点
は、すでにロックされている資源を繰り返しロックしよ
うとして、貴重な処理時間とメモリ帯域幅が消費される
ことである。幾つかのタスクが偶然によりすべて同じ資
源をロックしようとしている場合には、システムは欲求
を満たされないタスクでいっぱいになり、それらの資源
をロックしようとする試みが現在のホルダを実行するこ
とおよびそれの事実上の開放を遅延させることを妨害す
る。ロック試行の間でより長く遅延させることにより負
荷が減少されるが、その場合には、資源が釈放された後
であって次のユーザがそれにアクセスする前の長い期間
のためにシステムが「だれた状態」(soggy)となりう
る。
本発明によるアーキテクチュアには、プロセスの1つ
をロック・マネージャすることによって他の機構が提供
されうる。これはCPUに対する通常の動作シーケンスす
なわちメモリまたは浮動小数点ユニットのような他の資
源に対するアクセスを必要とするまでプロセスを実行す
るものを反転させる。パケットが適当な資源に送られ、
その文脈は応答が受信されるまで実行可能であることを
停止し、他の文脈への移行を制御する。この反転された
モードでは、文脈は、同じまたは他のCPU内にありうる
他の(反転されていない)文脈から資源リクエスト・パ
ケットを受取るまで遊んでいる。その場合、資源を割当
てようとし、その資源がすでに割当てられている場合に
は、成功した応答パケットを戻す。資源がすでに用いら
れている場合には差がやって来る。その場合には、クロ
ック・マネージャは資源が釈放されるまで応答できない
だけであり、満足しないリクエスタ(requester)の識
別子を内部記憶器に記憶す。事実上資源が釈放される
と、次のリクエスタの識別子が内部記憶器から引き出さ
れ、そして適当な応答パケットが送られる。資源は単一
の釈放資源パケットを送ることによって自由になされ
る。
この機構では、資源割当てに対する唯一のオーバヘッ
ドは単一のパケット交換である。資源が利用できない場
合には、文脈のリクエスタはその資源が自由になるまで
実行できない状態でぶら下っているだけである。文脈は
資源マネージャとして用いられるが、文脈は(CPUやバ
ス帯域幅とは異なり)安価な資源であると考えられ、1
つのマネージャが多数の資源を管理しうる。
本発明から生ずる特性の利益は製作が容易であるとい
うことである。バス・グリッドによってすでに互いに配
線された第3図に示されているような構成のすべての構
成要素は1個のシリコンウエハ上に作成されうる。これ
を行おうとした従来の試みでは、許容しうる結果は得ら
れていない。なぜなら、個々の回路が機能しなくなるウ
エハの結晶構造の欠陥を回避することが現在では不可能
であるからである。従来のコンピュータはその状況では
動作しないが、上述した本発明のアーキテクチュアを用
いれば、非機能状態にあるランダムな構成要素を有する
コンピュータが機能しうる。
従来のコンピュータの場合におけるウエハ規模集積の
他の問題点はシリコン上の導電性接続部が非常に高い固
有抵抗を有していることである。従って、ウエハを横切
って長い距離にわたって延長する導体を有することは困
難である。このような導体は大きい面積を有していなけ
ればならず、これがため欠陥を生じやすい。本発明のよ
るアーキテクチュアは両方の問題点を軽減する。ルータ
に対して上述のように修正を行うことによって欠陥「導
電性」領域が許容されうる。しかしながら、欠陥ユニッ
トに隣接したルータに、それらが欠落しておりそれらに
メッセージが送られるべきでないことを知らせるための
手段が必要である。これはヒューズ、レーザ・トリミン
グまたは他の同様の技術によってなされうる。さらに、
本発明のアーキテクチュアには問題を生ずる長い導体は
存在していない。第3図において、メモリ・バンクM3は
非機能であるとして示されているが、ルータR21の1つ
のバス・セクションも欠陥を有するものとして示されい
る。R11、R20およびR22のようなルータにはこの場合に
はR21が非動作状態にあることを示す手段が設けらてい
る。
本発明を実施したコンピュータは従来の(手続型)プ
ログラムを実行し、高いレベルのプログラムに対する慣
れた環境をエミュレートするように構成されうる。しか
し、データフロー・アーキテクチュア・コンピュータを
構成することも可能である。データフロー・コンピュー
タは公知の技術であるが、本明細書に記述された技術を
用いることによって、手順およびデータフロー・システ
ムの両方が同じハードウエハで同時に走るようにするこ
とが可能となる。
手順マシンでは、手順(プログラム)がそれが操作す
る必要のあるデータを取出すが、データフロー・マシン
では、それはそれが操作する必要のあるアルゴリズムを
取出すデータである。1つの命令の一般的な形式は次の
ようなスタイルを有する。
<Vat>は<金額>×<Vatパーセンテージ>である。
<請求書金額>は<金額>+<Vat>である。
かぎカッコ内の項目(例えば<Vat>)はシステムを
流れるデータであり、他のセクションはアルゴリズムで
ある。原理は、<Vat>と<金額>が得られるや否や、
マシンが<Vatパーセンテージ>を自動的に計算する。
<Vat>の出現が<請求書金額>を計算するための命令
をトリガーする(<金額>はすでに得られているの
で)。次に<請求書金額>の出現が請求書の印刷をトリ
ガーする。
データフロー・マシンは、需要駆動型と供給駆動型と
の2つの型式を有しうる。上記の例は供給駆動型であ
り、式に対するすべてのオペランドの供給が、それが必
要とされているか否かに関係なく、それの計算をトリガ
ーする。需要駆動システムは要求されるまではいかなる
結果も計算しない。このようなシステムは、例えば<請
求書金額>のようなデータの必要を、それを計算する式
に通信するための機構を必要とし、その場合、例えば<
Vat>のようなその式の入力が得られない場合には、こ
れらのオペランドを計算する式にその必要を伝播するた
めの機構を必要とする。従って、上記の例では、<Vat
>と<金額>の出現は処置をトリガーしない。<請求書
金額>に対する必要という余分の刺激が必要とされるで
あろう。これが第2の命令をトリガーするであろう。こ
れは評価できないであろう。なぜなら、<金額>は既知
であるが、<Vat>が判っていないからである。従っ
て、これが第1の命令をトリガーする<Vat>に対する
要求を発生する。これの2つのオペランドが得られると
仮定したので、その命令が評価され、それにより第2の
命令が評価され、そいて所望の結果に戻ることになる。
もしそれら2つのオペランドが得られなければ、さらに
他のリクエストがトリガーされ、式が評価されうるまで
それが続けられる。さらに、以下に説明するように、供
給駆動マシンを需要被駆動マシンに変換することは簡単
である。
データフロー・マシンは人工知能用途によく適合して
いる。なぜなら、データフロー・マシンは、システムが
供給された情報でもってどのような差引きをも可能にし
かつそれが有用であるば余分のデータをリクエストする
ように設定されうるので、あらゆる可能なデータが任意
特定の順序で供給されることを要求しないからである。
これは、プロログ(Prolog)のような第4世代言語によ
く適合するマップを作成する。第2に、データフロー・
マシンは本質的に並列である。単一データの出現が多く
の式の評価をトリガーし、かつ単一の出力に対する要求
が評価に対する多くのリクエストをトリガーしうる。各
式は通常評価が簡単であり、かつ本発明の分散型アーキ
テクチュアに合致した他のものに影響を及ぼすことなし
に実行されうる(それのオペランドが得られれば)。
メモリにおけるデータフロー命令は、 (a)式に対してどのオペランドがまだ計算されていな
いかを定義するフラグ・ワード、 (b)命令の結果を計算するためにアルゴリズムを記述
するための手段、 (c)命令に対するオペランド(例えばそれらのアドレ
ス)を見つけるための手段、 (d)計算された場合におけるこの命令の結果、 (e)この命令の出力をオペランドとして使用するすべ
ての命令を識別する手段 のような多くの構成要素を有している。
重要な要素はフラグ・ワード(a)である。限定され
た最大個数(多分8、あるいは32)の各命令に対するオ
ペランドが存在しなければならず、それらのオペランド
がそれぞれそれに関連された1つのフラグを有してい
る。これらのフラグは、ワードの残りが明瞭であるあい
だに有効なオペランドを表わすすべてのフラグが(例え
ば)設定されるようにロードされたときに設定される。
そこで新しいパケット形式、すなわちフラグ・ワード内
の1個のビットを識別するオペランド・レディ・パケッ
ト(Operand Ready packet)が必要とされる。これは通
常の態様でパケット・グリッドを通じて特定のメモリの
コントローラに進行し、フラグ・ワード内の1個のフラ
グを識別する。メモリ・コントローラは該当するフラグ
をクリアし、もしこれがフラグ・ワード全体をクリアし
ない場合には、それ以上何も起らない。しかしフラグ・
ワード全体がクリアされて、命令に対するオペランドが
今得られるていることを示すと、命令がトリガーされ
る。この場合には、メモリ・コントローラが命令結果の
計算を開始する。これが生ずるための単純な方法は、ア
ルゴリズムを記述するための手段(b)が単純に、フラ
グ・ワードがクリアされたときにグリッド内に送り込ま
れるパケットであるようにすることである。その場合、
このパケットが手順モードにあるマシンによる種の処置
をトリガーする。このパケット(データフロー・トリガ
ー・パケット)の正確なフォーマットは手順マシンの性
質に依存するが、一般的には、オペランド(c)を見つ
け出しそして結果を計算するタスクを開始させるであろ
う。次にこの結果が命令(d)内の正しい位置に戻さ
れ、この結果(e)のユーザのリストが走査され、そい
てそれらのユーザのそれぞれにこのオペランドが今や得
られていることを告げるオペランド・レディ・パケット
が送られる。これらのパケットは全サイクルを再びトリ
ガーすることができる。
上記の説明は供給被駆動マシンに対するものであっ
た。それを需要被駆動マシンに変換するためにはさらに
3つの付加が必要とされる。第1は、オペランドを有し
ないがオペランドが求められていることを特定する余分
の部ラグをフラグ・ワード(a)に付加することであ
る。このフラグがセットされると、最後のオペランドの
到着は、フラグ・ワードがまたクリアでないから命令を
トリガーしない。第2に、現在の式に対するオペランド
を発生する指令を識別するための手段を具備した新しい
項目(f)がその命令に付加される。第3に、新しいパ
ケット・形式、そなわち命令フラグ・ワードを識別する
オペランド・ウオンテッド(Operand Wanted)が必要と
される。これがメモリ・コントローラに到着すると、余
分の、すなわちウオンテッド(Wanted)フラグをクリア
する。フラグ・ワードがクリアとなれば、どのオペラン
ドが依然として欠如しているか(すなわちどのフラグが
依然としてセットされているか)をみるために走査さ
れ、各フラグが依然としてセットされている場合には、
リスト(f)から入力命令の場所を抽出し、そしてこの
命令にオペランド・ウオンテッド・パケットを送る。
上述した場合の両方において、フラグが前以ってセッ
トされていさえすればフラグをクリアすると通常処置が
とられる。オペランド・ウオンテッド・パケットの場合
には、これは一般に真実である。オペランド・レディ・
パケットの場合には、例えばオペランドの1つに対して
新しい値が現われる毎に命令がトリガーされるようにあ
るアーキテクチュアがその命令の多重トリガーを許容し
うる。このことが命令ベースで、例えばオペランド・レ
ディ・パケットの一部分として制御されることが望まし
い場合さえありうる。
上述のように、単一のオペランドまたは単一のオペラ
ンドに対するリクエストの出現が本質的に開放端の処理
量をトリガーしうる。単一のリクエストによってトリガ
ーされうる処理の量に対してある制限を与えることが有
用でありうる。これはレベルのカウントをオペランド・
レディまたはオペランド・ウオンテッドアーパケットに
付着することによってなされうる。これは、すべてに発
生されている他の「リップル」(ripple)パケットに送
られる前に各メモリ・ノードで減少される。このカウン
トがゼロに低下すると、「リップル」を発生する代り
に、処理が停止した命令を中央資源に通知する異なるパ
ケットを発生しなければならない。そこで、単一のオペ
ランドまたはリクエストによってどの程度の処理が発生
されたこを評価すること、およびどの程度のコンピュー
タ・パワーが消費されているかわ概略的に(各ステージ
におけるファン・アウトの量が制御されないので精密に
ではない)制御することが可能である。
特定のリクエストによって発生されたアクティビティ
がいつ完了したかを知ることも有用でありうる。これは
第1の組のフラグに第2の組のフラグを並列させること
によって達成され、各命令はレディ(Ready)またはウ
オンテッド(Wanted)パケットの処理の完了したときに
肯定応答を送る。オペランド・レディ・パケットの場合
には、命令がトリガーされたとすると、命令が完全に処
理されかつ応答がせべての「リップルド」オペランド・
レディズ(“rippled"Operand Readys)から受取られる
までは応答は送られない。同様に、すべての「リップ
ル」オペランド・ウオンテッド・(“rippled"Operand
Wanted)パケットから応答が受取られるまで応答はオペ
ランド・ウオンテッド・パケットには送られない。この
ことは後続のアクティビティがすべて完了されるまでは
各パケットは応答されないことを意味する。最初のメッ
セージに対する応答の受取は、そのメッセージによって
トリガーされたアクティビティが完了したことを意味す
る。カウンタがゼロに達しているためにリップル・パケ
ットが抑制されている場合にリップル・パケットの数を
制限する上述したプロセスが用いられておれば、応答は
予期されず、従ってそれを発生したパケットは瞬時的に
応答されうる。
データフロー・マシンとして動作するように条件づけ
られている場合には、コンピュータはリアル・ワールド
とのインタフェースに対して手順マシンとしても動作す
る(例えばオペランドが問合せかに関係なく受入れ、そ
してその結果をプリントアウトする。)手順システムは
オペランド・レディまたはオペランド・ウオンテッド・
パケットをディスパッチすることができることによって
データフロー・システムをトリガーすることができる。
命令結果の評価が手順領域でなされるので、逆移行がす
でに自動的に起る。その結果を評価するコード・フラグ
メントは、必要なことを行うように従来の手順タスクを
刺激するためにセマフォを知らせるまたはメッセージを
送るような動作を実行しうる。
本発明はこの態様を実施することはメモリ・コントロ
ーラからの多量の余分の機能性を必要とする。しかし、
もしこれがマイクロコーデッド・マシンとして最初に実
施されるならば、これは単に余分のマイクロコードにす
ぎず、コストは小さく、メモリが比較的低速のダイナミ
ックRAMであり、従ってメモリ・コントローラは比較的
低速でありうることを覚ている。
このようにして、コンピュータは同じハードウエア資
源を共用して手順およびデータフロー動作の両方を提供
するようになされうる。データフロー・マシンとして動
作するようになされた本発明によるコンピュータの機能
図が第5図に示されている。
データフロー動作のためのコンピュータを組織するた
めに、実施のために必要とされる方策はファームウエア
・ハードウエアまたはそれら2つの組合せの形態をとり
うる。その方策はコンピュータに永久的に設けられうる
ものであり、入力データに対する所定の手順を実行する
ために準備されたプログラムとは種類が異なる。パケッ
ト・グリッドは矩形グリッドである必要はないが、アド
レスがXおよびY座標とみなされうるのでこれが経路指
定を容易にする。パケット・グリッドは例えば四面体の
ようの他の形状を有しうるものであり、一般的にはパケ
ット・アドレスは任意の数でありうる。この場合には、
各ルータには、(例えば)パケットをそれの最終宛先に
送るために最良のおよび二番目に良い方法を、各アドレ
スに応答して、識別する探索テーブルが設けられる。
これまではノードが異質のものであると、すなわちパ
ケットがアドレス指定される正確なノードに達しなけれ
ばならないCPUおよびメモリのようなノードであると仮
定されてきた。他の形式は本質的にサービス提供する同
質ノードであり、1つの例が浮動小数点ALUである。同
じ形式の同質ノードは本質的に互換性であり、任意の浮
動小数点ALUで浮動小数点演算が実施されうる。上述し
た探索テーブル・アドレス・スキームでは、特定のアド
レスが同質ノードのクラスに割当てられうる。各ルータ
は同質ノードにアドレス指定されたパケットをそのよう
なノードに最も近いノードに(その最も近いノードが使
用中の場合には次の選択による)経路指定するようにプ
ログラムされる。このことは、CPUはグリッドのどこに
そのような共用される資源が存在するか知る必要がな
く、ルータが最も近い利用可能な資源におけるパケット
を自動的に送ることを意味する。
この概略はゾーン(Zone)の概念を導入することによ
って利用可能なネットワークを拡張するために用いられ
うる。ゾーンは、それぞれ独特のアドレスを有する隣接
ノードのグループである。グリッドは多くのゾーンを含
んでいてもよく、そしてノード・アドレスが各ゾーンで
反復される。ゾーンそれ自体はそれのアドレスをもって
同質資源として取扱われる。すべてのルータがパケット
をこのゾーンに向けて送ることができるようにそれらの
探索テーブルを設定されている。パケットは正しいゾー
ンに到達すると、最初の経路指定コードを捨てるノード
に経路指定されなければならない。このことはその後の
新しい経路指定コードを示し、それはパケットが送られ
るべきノードのアドレス(このゾーン内では独特である
が全体としてはネットワーク内にない)を含んでいるで
あろう。そのパケットのヘッドを捨てる動作は本質的に
「ノーオペレーション」(no−op)であり、多くの異な
るクラスのノードによって実行されうる(この場合も、
ルータはそのようなメッセージをそれらを処理しうるノ
ードに送るだけであり、このようなノードの少なくとも
1つが各ゾーンに存在しなければならない。
この編成は上方のゾーンに対して反復されうる。限界
では、nビット・アドレスが2↑2↑(n−1)個のノ
ードを含むネットワークを許容する(ただしパケットが
n−1個のプレフィクスを有していなければならないの
で、これは低速であろう)。8ビット・アドレスの場合
には、これは2128のノードを生じ、256のノードの64の
ゾーンが16Kのノードを与えるであろう。
本発明の第1の態様によって定義されたデータ処理装
置は処理ユニット、メモリ・ユニットおよび通信システ
ムを具備している。好ましい通信システムは本発明の第
2の態様によって定義され、その場合、経路指定手段は
入力ポート、出力ポートおよび先入れ先出し方式メモリ
装置を有している。この好ましい通信システムはパケッ
ト・グリッドと呼ばれグリッドに経路指定手段を配列す
ることよりなる。本発明の第1の態様によって定義され
る特定の適用に加えて、このパケット・グリッド・アー
キテクチュアはローカル・エリア・ネットワーク(LA
N)の設計にも採用されうる。LANでは、信号通路は通常
数メートルまたは数百メートル離れており、従ってデー
タ転送速度はコンピュータ・システムよりも遅い。信号
が各導体に沿って一方向でありかつ単一の負荷を駆動す
るにすぎないとすると、このようなコンピュータ・シス
テムの配線は極めてまっすぐである。コストを軽減する
ために、バスの幅が例えばコンピュータ・システムの好
ましい16または32ビット・バスに比較して8ビットまで
減少されうる。
宛先ワードが捨てられたゾーンと呼ばれる分散レベル
を有するという概念をコンピュータ・システムに関して
説明した。これは複数のLANが第2レベル・ノードによ
って接続されるエリア・ネットワークにも適用されう
る。第2レベル・ノード間で伝送されるパケットは、ロ
ーカル・ネットワークに供給される前に捨てられるのが
好ましい。第2レベル宛先ワードを先頭にし、それによ
ってそのローカル宛先ワードがパケットの先頭となる。
これは必要なだけ多くのレベルを提供するように拡張さ
れうるが、距離が非常に大きくなると他の形式の通信が
好ましくなりうる。
このシステムは従来のLANに比較して幾つかの利点を
有している。最も新しいLANは固定した帯域幅を有して
いる。このことはさらに拡張が予想される場合には余分
の帯域幅が購入されなければならず、LANがいったん完
全にロードされてしまうと、拡張できない。本発明のシ
ステムでは、ネットワーク全体をグレードアップするこ
とを必要とすることなしに高負荷セクションにわたって
余分の通路を挿入することができる(率直にユーザに対
して)。現在のLANはRing、Bus等の固定したトポロジー
(topology)を有しているが、本発明のシステムはラン
ダム・トポロジーをサポートし、それをサイトの物理的
トポロジーに対してあるいは用途の論理的トポロジーに
対して(高負荷が予想される場合には多重通路をそして
まれにしか使われないチャンネルに対しては単一通路を
設けることによって)整合させることができる。ある種
のLANとは異なり、オーバーランは不可能である(受信
機がそれに対して準備が整っていないためにデータが失
われる場合)。受信機が遅すぎると、データはバックア
ップするにすぎない。ネットワークの残部におけるデー
タばブロックのまわりを自動的に転向する。上述した障
害許容技術はこのシステムを信頼性のあるものとなしか
つ使用時の更新を容易にする。
グリッドに接続されたコンピュータは本発明の形式の
ものであり得、その場合には、異なる速度で稼働する2
つのグリッド間を接続する能力を与えられ、LANに対す
る1つのコンピュータと他のコンピュータとの間の差異
が消える。適当なプロセッサおよびオペレーティング・
システム・アーキテクチュアが与えられたとして、1つ
の場所において実行するタスクはそれがあたかもローカ
ルであるかのように遠隔の場所におけるメモリにLANを
介してアクセスしうるものであり、両方の場所における
オーバーヘッドを大幅に軽減する。このことは、LANに
接続されたすべてのコンピュータの組がある状況におい
ておよびそのように所望される場合には、物理的寸法と
処理能力が相当に大きい単一のコンピュータと考えられ
うる。
ルータの必須の構成要素は先入れ先出し方式メモリ装
置である。これらはFIFO機能を発揮する任意の構造を有
しうる。好ましくは、それらのFIFOは読取アドレス指定
および書込みアドレス指定が循環して、データが1つの
FIFO内にバッファされる場合に位相がずれた状態となる
ランダムにアドレス指定可能な形式のものである。この
ようにして、FIFOは、バッファリングが必要とされない
場合に1クロック周期の遅延を導入する。
前述のように、ルータは所定の宛先に対してパケット
を出力するためにどれが最初のおよびそれに続くポート
選択であるかを「知る](know)。ルータは所定の宛先
に対する正しいポートを計算することができる、または
探索することができる1つのまたはレジスタまたは一群
のレジスタを内蔵していなければならず、それらレジス
タはグリッド内における異なる位置を反映するために各
ルータに対して異なる値に設定されなければならない。
これを行う1つの方法はProm内の固定探索テーブルによ
ってまたはスイッチ・バンクでノード・アドレスを設定
することによってハードワイヤすることである。これ
は、手作業で行われなければならないこと(人間による
エラーが入り込む可能性がある)および故障したルータ
を取り換える場合にまずプログラムし直さなければなら
ないことのために、望ましくない。手作業を行わないで
同一のデバイスでグリッドが自動的に構成されうるよう
にするある種の手段を有することが望ましい。
これを実現するために、ルータに少数の特殊なコード
が組み込まれる。これらの特殊コードは常に一定の方向
に(例えば左折、直進)またはルータ・オンボード・レ
ジスタにメッセージを経路指定する。さらに、そのよう
にする場合に、特殊コードはパケットのフロントからそ
れ自体で除去される。これらの特殊コードは、構成機器
(それは外部コンピュータまたはグリッドの機器構成さ
れた部分でありうる)にグリッドの残部に対する経路指
定をプログラムさせるであろう。これは、パケットを指
定されたノードに送り、プログラムされるべきノードに
達して、オンボード・レジスタに対するデータがパケッ
トの残部に現わされるまで進行する場合にノード毎に捨
てられる多数のプレフィックスと一緒にパケットを送り
出すことによって行われる。さらに、グリッドの幾何学
形状が一定である(例えば第3図の矩形構造)であるが
未知の部分があるかあるいは潜在的欠陥を有することが
わかっている場合には、構成機器は、一定のルータに行
きそして戻って来ようとするパケットを送り出すことに
よってグリッドを探査することができる。そのようにす
る場合には、ルータと固定通路の両方が存在する。
その幾何学形状が不規則である場合に、ルータに他の
レジスタと特殊の経路指定コードが付加されなければな
らない。そのレジスタは、システムがパワーオンされた
場合に「識別されない」(unidentified)値に自動的に
セットされる一致レジスタ(identity register)であ
る。このレジスタは、ルータ・レジスタの他のものと同
じ方法で上述のようにしてプログラムされうる。特殊経
路指定コードは「リード・アイデンティティ・レジス
タ」(Read Identity Register)コードと命令される。
このコードはそれが先頭に立つパケットをそれが出て来
た方向に経路指定させ、かつ他の特殊コードと同じよう
にして自動的に除去される。しかしそのコードは一致レ
ジスタの現在の設定をパケットに添付させる。これは構
成機器がルータに対してどこで接続がなされたかを検知
したかつ未知のルータに遭遇した場合にそれを確認する
ことができるようにする。
【図面の簡単な説明】
第1図は複数の処理ユニット、メモリ・ユニットおよび
通信システムを有するデータ処理システムを示す図、第
2図は第1図に示された処理ユニットの1つを詳細に示
す図、第3図は二次元グリッドとして構成された通信シ
ステムを有する処理システムを示す図、第4図はハイパ
ーキューブとして構成された通信システムのノードを示
す図、第5図はデータフロー処理システムの動作を示す
図である。 図面において、C1,C2はCPU、M1,M2はメモリ・バンク、F
1,F2、……はフラグ、R1,R2、……はレジスタ組、Sは
セレクタ、Pはプロセッサ、SBは送信バス、RBは受信バ
ス、Rはルータをそれぞれ示す。

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理装置において、 処理ユニットと、 互いに分離しておりかつ前記処理ユニットから分離した
    複数のメモリ・ユニットと、 前記処理ユニットおよび前記メモリ・ユニットに接続さ
    れていて前記処理ユニットおよび前記メモリ・ユニット
    間に通信を与える通信システム を具備しており、 前記処理ユニットが、 前記通信システムを通じて前記メモリ・ユニットから受
    け取った各プロセスに関するデータをそれぞれ保持する
    複数のレジスター・セットと、 第1のプロセスが前記通信システムを通じて供給される
    べき第1の他のデータを必要とするまで前記レジスター
    ・セットのうちの第1のレジスター・セットにアクセス
    することによって前記第1のプロセスを処理し、前記メ
    モリ・ユニットのうちの1つから前記通信システムを通
    じて供給されるべき前記第1の他のデータを前記通信シ
    ステムを通じてリクエストし、かつ前記第1の他のデー
    タを受け取って前記第1のプロセスの処理を中断し、そ
    して第2の他のデータが第2のプロセスによって要求さ
    れるかあるいは前記第2のプロセスが完了するまで第2
    のレジスター・セットにアクセスすることによって前記
    第2のプロセスを処理する処理手段を具備しているデー
    タ処理装置。
  2. 【請求項2】前記処理ユニットの処理手段は、前記通信
    システムを通じて前記他の第2プロセス・データをリク
    エストし、かつ前記第2のプロセスの処理を中断し、そ
    して他の第3のプロセスが必要とされるまで第3のレジ
    スター・セットにアクセスすることによる第3のプロセ
    スを処理するかあるいは前記第1のプロセスの処理を継
    続することによって必要とされる前記他の第2のプロセ
    ス・データに応答するようになされている請求項1のデ
    ータ処理装置。
  3. 【請求項3】複数の処理ユニットが設けられており、か
    つ前記処理ユニットのそれぞれが前記通信システムを通
    じて前記メモリ・ユニットの任意のもにデータを書き込
    むようにになされている請求項1のデータ処理装置。
  4. 【請求項4】前記処理ユニットが、プロセスが実行待機
    状態にあるかあるいはデータを待っているかを識別する
    フラグ手段と、実行待機状態にあると識別されたプロセ
    スから、処理のための前記第2のプロセスを選択する選
    択手段を具備している請求項1のデータ処理装置。
  5. 【請求項5】複数の処理ユニットと、少なくとも1つの
    専用処理装置をさらに具備しており、前記処理ユニット
    と前記専用処理装置の間の通信が前記通信システムを通
    じて与えられる請求項1のデータ処理装置。
  6. 【請求項6】複数の処理ユニットを具備しており、かつ
    前記通信システムが、 伝送手段によって接続された複数の経路指定手段を具備
    しており、 前記経路指定手段のそれぞれは、少なくとも2つの単方
    向性入力ポートおよび少なくとも2つの単方向性出力ポ
    ートを有しており、各入力ポートは該当伝送手段によっ
    て隣接経路指定手段の該当出力ポートに接続され、入力
    ポートのうちの少なくとも1つが隣接経路指定手段の該
    当入力ポートに接続され、 前記各入力ポートは、各先入れ先出し(FIFO)記憶装置
    を通じてデータ・パケットを受け取るようになされてお
    り、 前記データ・パケットは、ローカル宛先ワードを含む複
    数の時間的に分離されたワードを有し、前記ワードのそ
    れぞれは、前記伝送手段上で並列に伝送される複数のデ
    ィジットを含み、 前記経路指定手段は、パケットのローカル宛先ワードに
    応答して前記少なくとも2つの出力ポートの1つにパケ
    ットを選択的に送る手段と、各FIFOの伝送特性を制御し
    て前記経路指定手段内でのデータ衝突を防止する手段を
    具備している請求項1のデータ処理装置。
  7. 【請求項7】第1の経路指定手段の出力ポートを第2の
    経路指定手段の入力ポートに接続することによって前記
    経路指定手段で構成されたネットワークを具備してお
    り、各経路指定手段に対する少なくとも1対の入力およ
    び出力ポートは他の経路指定手段に接続されず、各経路
    指定手段は5対の入力ポートおよび出力ポートを有し、
    前記対のうちの4つが他の経路指定手段に接続され、前
    記経路指定手段のうちの少なくとも2つの経路指定手段
    の第5の対の入力ポートおよび出力ポートが各処理ユニ
    ットに接続され、かつ前記経路指定手段のうちの少なく
    とも2つの経路指定手段の第5の対の入力ポートおよび
    出力ポートが各メモリ・ユニットに接続される請求項6
    のデータ処理装置。
  8. 【請求項8】通信システムにデータのパケットを供給す
    ることによってメモリ・ユニットからのデータに対する
    リクエストがなされ、各パケットは、 (a)処理を識別し、 (b)前記処理ユニットで実行するプロセスを識別し、 (c)データを要求されたメモリ・ユニットを識別し、 (c)前記必要とされたデータのアドレスを特定するよ
    うになされた請求項6のデータ処理装置。
  9. 【請求項9】各メモリ・ユニットが、そのメモリ・ユニ
    ットと通信システムの間でのデータの転送を制御するよ
    うになされたメモリ・コントローラを具備している請求
    項1のデータ処理装置。
  10. 【請求項10】送信手段によって接続された複数の経路
    指定手段を具備しており、 前記経路指定手段のそれぞれは、少なくとも2つの単方
    向性入力ポートおよび少なくとも2つの単方向性出力ポ
    ートを有し、各入力ポートは隣接経路指定手段の各出力
    ポートに各伝送手段によって接続され、出力ポートの少
    なくとも1つが隣接経路指定手段の各入力ポートに接続
    され、 前記入力ポートのそれぞれは、各先入れ先出し(FIFO)
    記憶装置を通じてデータ・パケットを受け取るようにな
    され、 前記データ・パケットは、ローカル宛先ワードを含む複
    数の時間的に分離されたワードを有し、前記ワードのそ
    れぞれは、前記伝送手段上で並列に伝送される複数のデ
    ィジットを含み、 前記経路指定手段は、パケットのローカル宛先ワードに
    応答して前記少なくとも2つの出力ポートの1つにパケ
    ットを選択的に送る手段と、各FIFOの伝送特性を制御し
    て前記経路指定手段内でのデータ衝突を防止する手段を
    具備し、 前記経路指定手段は、第1の受信したパケットを第1の
    選択した出力に送るとともに、同時に第2の受信したパ
    ケットを第2の選択した出力に送るようになされている
    通信システム。
JP1006060A 1988-01-15 1989-01-17 データ処理装置および通信システム Expired - Lifetime JP2879567B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB8800943 1988-01-15
GB888800943A GB8800943D0 (en) 1988-01-15 1988-01-15 Improvements relating to computers
GB8819207.5 1988-08-12
GB888819207A GB8819207D0 (en) 1988-08-12 1988-08-12 Improvements relating to computers

Publications (2)

Publication Number Publication Date
JPH025173A JPH025173A (ja) 1990-01-10
JP2879567B2 true JP2879567B2 (ja) 1999-04-05

Family

ID=26293332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1006060A Expired - Lifetime JP2879567B2 (ja) 1988-01-15 1989-01-17 データ処理装置および通信システム

Country Status (4)

Country Link
US (1) US5361334A (ja)
EP (1) EP0325384B1 (ja)
JP (1) JP2879567B2 (ja)
DE (1) DE68909426T2 (ja)

Families Citing this family (58)

* 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
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
EP0436561A1 (en) * 1989-08-03 1991-07-17 International Business Machines Corporation Data processing network
JPH06502033A (ja) * 1990-10-19 1994-03-03 クレイ・リサーチ・インコーポレイテッド スカラブル パラレル ベクトル コンピュータシステム
US5574849A (en) * 1992-12-17 1996-11-12 Tandem Computers Incorporated Synchronized data transmission between elements of a processing system
US5640513A (en) * 1993-01-22 1997-06-17 International Business Machines Corporation Notification of disconnected service machines that have stopped running
US5623698A (en) * 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
US5721819A (en) * 1995-05-05 1998-02-24 Silicon Graphics Corporation Programmable, distributed network routing
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5717853A (en) * 1995-10-23 1998-02-10 International Business Machines Corporation Information handling system having router including first mode for configuring itself, second mode for configuring its connected devices and third mode for system operation
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6018780A (en) * 1998-05-19 2000-01-25 Lucent Technologies Inc. Method and apparatus for downloading a file to a remote unit
US6298396B1 (en) * 1998-06-01 2001-10-02 Advanced Micro Devices, Inc. System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
JP2000211216A (ja) * 1999-01-25 2000-08-02 Canon Inc 複合機器の情報処理方法及びシステム
CN1168025C (zh) * 1999-03-10 2004-09-22 国际商业机器公司 用于多线程处理机的指令高速缓存器
JP3675221B2 (ja) * 1999-04-16 2005-07-27 コニカミノルタビジネステクノロジーズ株式会社 機器管理装置、及び機器管理システム
US6668285B1 (en) 1999-05-12 2003-12-23 Koninklijke Philips Electronics N.V. Object oriented processing with dedicated pointer memories
DE19925693B4 (de) * 1999-06-04 2007-05-16 Phoenix Contact Gmbh & Co Schaltungsanordnung zur gesicherten Datenübertragung in einem ringförmigen Bussystem
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6934283B1 (en) * 1999-11-08 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for source defined packet routing
EP1152331B1 (en) * 2000-03-16 2017-11-22 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Parallel task processing system and method
US7162615B1 (en) * 2000-06-12 2007-01-09 Mips Technologies, Inc. Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
US20020035638A1 (en) * 2000-07-25 2002-03-21 Gendron David Pierre Routing and storage within a computer network
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
FR2818066B1 (fr) * 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
US7571370B2 (en) * 2003-06-19 2009-08-04 Lsi Logic Corporation Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
US20050240699A1 (en) * 2004-03-31 2005-10-27 Yoder Michael E Safe process deactivation
JP2005352694A (ja) * 2004-06-09 2005-12-22 Canon Inc 印刷装置およびその方法、並びに、情報処理装置およびその制御方法
US7603404B2 (en) * 2004-12-20 2009-10-13 Sap Ag Grid parallel execution
JP4527571B2 (ja) 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
US20070088828A1 (en) * 2005-10-18 2007-04-19 International Business Machines Corporation System, method and program product for executing an application
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
US8862706B2 (en) 2007-12-14 2014-10-14 Nant Holdings Ip, Llc Hybrid transport—application network fabric apparatus
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
US9525621B2 (en) * 2012-08-29 2016-12-20 Marvell World Trade Ltd. Semaphore soft and hard hybrid architecture
CN103246622B (zh) * 2013-04-10 2015-12-02 华为技术有限公司 一种扩展内存的方法、内存节点、主节点及系统
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
WO2018154494A1 (en) 2017-02-23 2018-08-30 Cerebras Systems Inc. Accelerated deep learning
WO2018193353A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US11475282B2 (en) 2017-04-17 2022-10-18 Cerebras Systems Inc. Microthreading for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US11328207B2 (en) 2018-08-28 2022-05-10 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
US11469988B1 (en) 2021-04-30 2022-10-11 Bank Of America Corporation Communication analysis for dynamic auto-routing and load balancing
US11792108B2 (en) 2021-04-30 2023-10-17 Bank Of America Corporation Dynamic auto-routing and load balancing for communication systems
US11784930B2 (en) 2021-04-30 2023-10-10 Bank Of America Corporation Communication system with auto-routing and load balancing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3676852A (en) * 1970-07-20 1972-07-11 Ibm Multiple program digital computer
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US5212773A (en) * 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US4742511A (en) * 1985-06-13 1988-05-03 Texas Instruments Incorporated Method and apparatus for routing packets in a multinode computer interconnect network
GB8528892D0 (en) * 1985-11-23 1986-01-02 Int Computers Ltd Multi-node data processing system
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
US5133053A (en) * 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
EP0325384B1 (en) * 1988-01-15 1993-09-29 Quantel Limited Data processing and communication
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
US5101488A (en) * 1989-05-02 1992-03-31 Motorola, Inc. Method for retrieving and updating data in a real-time data base system
US5218676A (en) * 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5247613A (en) * 1990-05-08 1993-09-21 Thinking Machines Corporation Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel
US5274782A (en) * 1990-08-27 1993-12-28 International Business Machines Corporation Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks

Also Published As

Publication number Publication date
DE68909426T2 (de) 1994-01-27
DE68909426D1 (de) 1993-11-04
EP0325384B1 (en) 1993-09-29
JPH025173A (ja) 1990-01-10
EP0325384A3 (en) 1990-01-10
US5361334A (en) 1994-11-01
EP0325384A2 (en) 1989-07-26

Similar Documents

Publication Publication Date Title
JP2879567B2 (ja) データ処理装置および通信システム
US7145837B2 (en) Global recovery for time of day synchronization
US7668923B2 (en) Master-slave adapter
US20050091383A1 (en) Efficient zero copy transfer of messages between nodes in a data processing system
US20050081080A1 (en) Error recovery for data processing systems transferring message packets through communications adapters
US5898826A (en) Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US7644254B2 (en) Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
US5161156A (en) Multiprocessing packet switching connection system having provision for error correction and recovery
JP3894957B2 (ja) 大きな網目状接続コストを伴う大容量データを管理するための、2次元または多次元プログラマブルセル構造を有するモジュール並びにdfpに対する内部バスシステム
US7664897B2 (en) Method and apparatus for communicating over a resource interconnect
US5822605A (en) Parallel processor system with a broadcast message serializing circuit provided within a network
US20040107240A1 (en) Method and system for intertask messaging between multiple processors
JPH06202883A (ja) プロセス間通信装置及び通信方法
US20050080869A1 (en) Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
US20050080920A1 (en) Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
US20080178177A1 (en) Method and Apparatus for Operating a Massively Parallel Computer System to Utilize Idle Processor Capability at Process Synchronization Points
US20050080945A1 (en) Transferring message packets from data continued in disparate areas of source memory via preloading
US20050078708A1 (en) Formatting packet headers in a communications adapter
JP3641834B2 (ja) 並列プロセッサシステムおよびそれに適したパケット廃棄方法
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
JP4336894B2 (ja) 情報処理システムとjob実行方法
JP2559918B2 (ja) 並列計算機における同期制御方式
JP3504033B2 (ja) プロセッサ間データ転送方法及び並列計算機
JP2005316679A (ja) 並列演算処理装置
Peterson et al. A high-speed message-driven communication architecture