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

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

Info

Publication number
JPH025173A
JPH025173A JP1006060A JP606089A JPH025173A JP H025173 A JPH025173 A JP H025173A JP 1006060 A JP1006060 A JP 1006060A JP 606089 A JP606089 A JP 606089A JP H025173 A JPH025173 A JP H025173A
Authority
JP
Japan
Prior art keywords
data
communication system
packet
data processing
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.)
Granted
Application number
JP1006060A
Other languages
English (en)
Other versions
JP2879567B2 (ja
Inventor
Robin A Cawley
ロビン アレキサンダー コーレイ
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

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は2つ以上の処理ユニットを有するデータ処理シ
ステムに関する。本発明はまた、そのデータ処理システ
ムの処理ユニット間の通信を与えるのに適しているが、
ローカルネットワークや1個の半導体ウェハに集積され
た回路のような他の通信環境にも適用されうる複数の経
路j1定手段を有した通信システムにも関係する。
従来のVLS I中央処理装置(CP U)は命令ユニ
ット、mlKm理ユニット、レジスタのファイルおよび
CPUを外部メモリ装置に接続する1つの(または複数
の)バスの4つの機能部分よりなっている0通常の動作
は、メモリ装置から命令を取出し、そしてその命令をバ
スを通じて命令ユニットに送ることよりなる0次に演算
論理ユニットが命令ユニノ)からの制御信号に応答して
バスを介しレジスタおよびメモリ装置からデータを読出
し、そしてそれらのレジスタおよびメモリ装置に新しい
データを嘗込む。通常レジスタ・ファイルは多数の汎用
レジスタと、スタックポインタやステータスレジスタの
ような専用レジスタを具備している。しかし、すべての
従来の中央処理装置に共通な1つのレジスタは次の命令
のアドレスを識別する役割をするプロゲラ1カウンタで
ある。
近年、中央処理装置の処理速度が劇的に増加しており、
同様の技術を用いて実施される場合には、データ処理シ
ステムの全体の動作速度はCPUが命令を実行しうる速
度ではなくてCPUとそれに関連するメモリ装置との間
でデータが転送されうる速度によって決定されることが
現在では受入れられている。この問題は、システム性能
を改善する高速の(ただし小形の)メモリ装置よりも大
形の(ただし低速の)メモリ装置の方が好んで選択され
る大形プログラムを実行するように設計された機械では
大きくなる。
システムの動作速度を改善するための技術が知られてい
るが、これらの技術は、価格の増加に加えて、新しい制
約を生ずる。さらにこれらの技術は、特に多数の別々の
メモリ装置が全体のアドレス指定可能なスペースを構成
している場合に性能に影響を及ぼすことになりうるバス
に関係した速度の問題を4策しない。
従って、本発明の第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の態様によれば、伝送手段によって接続さ
れた複数の経路指定手段を具備する通信システムにおい
て、前記経路trr定手投手段れぞれが少なくとも2つ
の入力ポートと少なくとも2つの出力ポートを有し、前
記入力ポートは各先入れ先出しくFIFO)メモリ・デ
バイスを通じてデータ・パケットを受取るようになされ
ており、前記データ・パケットはローカル宛先ワードを
含む複数の一時的に分離されたワードを有し、前記ワー
ドのそれぞれが複数の空間的に分離されたディジットを
有し、前記経路指定手段はパケットのローカル宛先ワー
ドに応答して前記少な(とも2つの出力ポートのうちの
1つにパケットを選択的に送るための手段と、前記経路
指定手段内でのデータの衝突を防止するために各FIF
Oの伝送特性を制御するための手段を具備していること
を特徴とする通信システムが提供される。
オーバロード・バスの問題および付加的な帯域幅を与え
ることに関連するその後の問題が、本発明の第2の態様
によれば、公知のリング、クロスポイントおよびN積交
換の特徴を有するハイブリッド・システムを提供するこ
とによって克服される。このようにして、リングにおけ
るように各経路指定手段においてデータが緩衝されるが
、実際の通路はクロスポイント・システムにおけるよう
に変化する。さらに、グリッド・ロックを防止するため
に、データは蓄積交換システムにおけるようにFIFO
(複数)に記憶されうる。
好ましい実施例では、各経路指定手段および好ましくは
入力ポートに接続されたその手段に関連したFIFO(
複数)が1個のチップ上に作成され、ネットワークを標
準ユニットで構成しうるようにする。好ましくは、各経
路指定手段が4つの他の経路指定手段に接続されうるよ
うに十分なポートが設けられる。そのネットワークは二
次元グリッドとしであるいは多次元ハイバーキュブとし
て構成されうる。
好ましくは、本発明の第1の態様によるデータ処理シス
テムは本発明の第2の態様による通信システムを有して
いる。データのリクエストは、経a 11 定手段によ
って1つのメモリ・ユニットに指定されそしてそのメモ
リ・ユニットによって解釈されるパケットを通信システ
ムに送ることによってなされる。
前記第2の態様の他の好ましい実施例では、経路指定手
段はローカルエリアネットワークのノードである。同様
の経路指定手段によって複数のネットワークを接続して
もよく、その場合の結合通信はセカンドレベル・エリア
ネットワーク(secondIrvel area n
etwork)と呼ばれる。
他の好ましい実施例では、前記第2の態様による通信シ
ステムは1個の半導体ウェハ上に作成されうる。好まし
くは、前記第2の態様による通信システムを有しうる前
記第tの態様によるデータ処理システムは1個の半導体
ウェハ上に集積される0本発明の誤り許容機能のために
この技術に有利に適用されうる。従って、好ましくは、
経路指定手段は、パケットが回路の損傷された領域に送
られないように作成後に自動的にプログラムされるー 以下図面を参照して本発明の実施例につき説明しよう。
通常コンピュータと呼ばれているデータ処理システムが
第1図に示されており、これは多数の処理袋! (CP
U)、多数のメモリ・バンクおよび少なくとも1つの専
用データ処理装置を具備している。2gのCPU、CI
およびC2,2個のメモリ・バンクM1およびM2、お
よびFPU (浮動小数点ユニット)の形をしたデータ
処理装置が示されている。各種類のユニットの数はそれ
よりも多くてもよく、また各CPtJは同一である必要
はなく、そのことは専用ユニットについても該当する。
CPU、CIの場合には第2図に示されているように、
各CPUは処理されるべきプロセスに対して1つのグル
ープのレジスタ・セットR1、R2−−−−−・・(文
脈と呼ばれる)を有している。フラグF1、F2、−−
一一一=・は各文脈R1、R2におけるプロセスが特定
の時点で処理されうるかどうかを定義するための手段を
与える。CPUは、フラグF1、F 2−−−−−で示
されているように現在処理されうる文脈のうちの1つ以
上を選択するようになされたセレクタSをも有している
。選択される文脈はそのセレクタSによってCPUのプ
ロセッサPに送られ、そこでその文脈に含まれた命令に
従って処理される。プロセラ5J Pは、それがメモリ
またはUlのようなユニットに対するアクセスをリクエ
ストしうるアクセス・パスA1を有する。
プロセッサPはそのようなリクエストのそれぞれに識別
情報を付着するようになされており、一般にその識別情
報はメモリまたは他のユニットからの応答と一緒に戻さ
れる。第1図に示されているように、アクセス・パスA
1は各ルータ(rou ter)R1によって送信バス
SBに接続されている。応答は応答バスを通じてCPU
、CIで受取られ、そして、フラグF1、F2・・・・
−に、そしてレジスタ・セットR1、R2−−−−一・
に適用される。第1図に示されているように、応答バス
B1は受信バスRBからメツセージを受取るルータR2
から延びている。
システムに含まれているC2のような他のCPU(複数
)は第2図に示されているような要素よりなるであろう
が、他の点では異なっていてもよい。
ユニットU1、MlおよびM2は、集積パッケージとし
て購入しうる公知の構造の装置、例えばアドレス指定可
能なメモリを具備している。さらに、他ユニットはパケ
ットを受信しかつ解釈するコントローラをも具備してい
る。例えば、メモリ・コントローラは1つの命令に応答
してデータのブロックを転送することができるとともに
、処理装置の命令組の詳細でプログラムされることがで
き、データのブロックを予め定められた長さに達するま
でまたはメモリの他の領域への分岐に対する命令に達す
ると読出しうるようにする。スピン・ロッキング・シス
テムでは、メモリ・コントローラはメモリ・ロッキング
手段を具備しうる。
コンピュータは、レジスタを複数の組として配列された
少なくとも1つのベクトル型プロセッサをもって構成さ
れうるちのであり、その場合、データのブロックが1つ
のリクエストに応答して供給される。プロセッサは多数
の異なる種類のものよりなりうるが、典型的には、好ま
しくは16または32ビット・ワードで動作する従来の
マイクロプロセッサに匹敵する処理能力を有する。送信
バスSBおよび受信バスRBはすべてのユニットに共通
であり、それらのユニットは各アクセス・パス、応答バ
スおよびルータによってそれらのパスに接続されている
。アクセス・パスは符号Aで示され、応答バスは符号B
によって示され、ルータは符号Rによって示されており
、各場合に適当な添字がつけられている。
システムの動作時には、そのCPUのあるいはCPUの
個数がfil1以上である場合には各CPUのセレクタ
Sがレジスタ組R1、R2−−−−−−−から実行可能
なプロセスを拾い、次にプロセッサPがメモリ・バンク
MLM2−・・−・のうちの(例えば)1つに対するア
クセスを必要とするまで、選択されたプロセスのために
命令を実行する。次にプロセッサPが典型的にはメモリ
読出しまたは書込みのための該当するメモリ・リクエス
トを送り出し、プロセスがもはや実行可能でないことを
知らせるようにフラグF1、F 2−−−m−−のうち
の該当する1つを条件づけ、そして実行可能なものとし
てフラグをたてられた次に利用できるプロセスをセレク
タに選択させる。メモリ・リクエストは奇数番目のルー
タRおよび送信バスSBを通じて正しいメモリ・バンク
に送られ、プロセッサPは新しく選択されたプロセス(
または一連の1つ以上のプロセス)に応答して命令を実
行する。それよりある時間の後に、最初のリクエストに
対する応答が偶数番目のルータRおよび受信バスRBを
通じてメモリ・バンクM1から受取られる。その応答は
各レジスタ組R1、R2−一〜−と最初のプロセスが再
び実行可能となったことを知らせる各フラグF1、F2
−・−に与えられる。それからある時間経過後に、プロ
セッサPがある他のプログラムの実行を中断すると、セ
レクタSが最初のプロセスを再び選択し、プロセッサが
そのプロセスの実行を継続する。続いて1つのメモリ・
バンクに対する他のリクエストが必要とされることがあ
り、その場合には、プロセッサが再びメモリ・リクエス
トを送り出し、最初のプロセスの実行を再び中断する。
このようにして、多数のプロセスを実行することが互い
に適合される。さらに、このシステムは、特定の要素が
ネックとなることなしに各要素を複製することによって
拡張さbうる。各要素の比と絶対数は異なる要件に適合
するように変更されうる。送信バスSBは、単一のメモ
リ・バンクMがリクエストを受取ることができるよりも
迅速にそれらのリクエストを受取ることができるが、リ
クエストが並列に受取られる幾つかのメモリ・バンクM
1、M 2−−一−−−にリクエストを渡すことができ
る。CPUは、例えば利用可能な処理能力をすべての文
脈に対して公平に共用するようにするために、1つのメ
モリ・バンクまたは専用のデータ処理装置に対してメツ
セージを伝送する場合以外の時点で文脈を切換えること
ができる。例外的な状況では、CPUは、応答が予期さ
れていないメツセージを送ることがあり、従ってその場
合にはプロセスを切換えない。
第1図に示されているように多数のCPUが装着されて
いる場合には、メモリ・バンクMまたは専用データ処理
袋RUから受取られた応答における識別情報はCPUコ
ードとプロセス・コードを含んでいるので、その応答は
正しいCPUに送られる。さらに、すべてのCPUが同
一である必要はなく、例えばあるものと人工知能言語、
グラフィックスまたはフーリエ変換等に適合した特別の
プロセッサであってもよい。
FPU  Ulのような専用データ処理装置がメモリ・
バンクと同じようにして反復されうる。このような装置
に送られるリクエストは1つの組のオペランドよりなり
うるちのであり、結果が各文脈識別子と一緒に戻される
。専用データ処理装置の方がメモリ・バンクより多くて
もよく、あるいはFPUのようなユニットがパイプライ
ン化(pipel 1ned)された場合に非常に高速
の処理が必要とされる場合には、必要に応じてその逆で
あってもよい。
第1図に示されたシステムはパイプライン化(pipe
lining)に特に連合している。この技術は、幾つ
かの連続した命令の異なるフェーズの重複実行を可能に
する。命令A、B、C−−−−−・〜を実行する場合に
各命令が5つのフェーズを必要とするならば、命令Aに
対するフェーズ1を実行し、次に命令Aに対するフェー
ズ2のパフォーマンスに命令Bに対するフェーズlを重
複させ、そして順次そのようにしてパイプラインを状態
A5、B4、C3、D2およびElで充満させる。この
ことは1つのCPUを形成するすべての要素が順次的に
ではなく同時的に用いられるという利点を有する。命令
Aの結果が命令BまたはCに対する入力として必要とさ
れる場合、およびBが、Aの結果が知られるまで実行す
ることができず、命令CSD等をどこで見つけ出せばよ
いかを決定するのを困難にする条件付き飛越しである場
合に、問題が生ずる。
上述したシステムのCPUに対しては、修正された形態
のパイプライン化が実施されてもよく、その場合には、
各パイプライン・ステージは異なる文脈に属する。この
ことは、パイプライン化されたアーキテクチュアのより
大きいスループットを得ながら、1つの命令の結果が他
に影響を及ぼすことができないようにする。
第1図に示されたシステムでは、送信および受信バスS
BおよびRDとルータRが、従来のコンピュータにおけ
るメモリ・アクセス・バスを与えるシステム・バスに代
えて用いられている。従来のマイクロコンピュータ・バ
スと異なり、各メソセージは1つ以上のルータに入り、
そこで緩衝されそして他側から出て来る前に1周期のあ
いだ記憶されるが、従来のマイクロコンピュータでは、
バスは等価なユニットに沿って通り、直ちにすべてに対
して電気的に接続される。図示されたシステムでは、完
全なメツセージを構成するのに必要なビットの数はルー
タを接続する導体の数よりも多く手もよく、従って通常
の通り各メツセージは幾つかのトランザクシロンよりな
りうる。メソセージが各ルータで緩衝される場合、幾つ
かのメツセージがバスSBまたはRBの異なる部分に同
時に存在し、そのバスに沿って互いに追従しろる。
1つのメツセージがそれの意図された宛先に到達すると
・それに接続されたルータがバスからメツセージを回収
し、そしてそれを宛先に送る。このシステムにおいては
、すべての接続が短<、従って1つのルータから他のル
ータへの伝送は従来のバスにおけるよりも速くな、りう
る。1つのメツセージが送信バスSBを通って出て受信
バスRDを通って戻るのに要する時間は従来のシステム
よりも長いが、多数のメツセージが各バスに沿って同時
に進行しうるので、多数の文脈を用いることによってバ
スの全スループフプを従来のシステムよりも大きくする
ことができ、従ってメモリがアクセスされている状態で
リクエストの伝送と応答との間に静止期間が存在しない
ので、上述のように要する時間が長いことは不利益では
ない。
第3図は、第1図の送信および受信バスが飽和状態とな
りうる意思上にCPUの数を増加させうるようにするた
めに多数のシステム・バスを用いて第1図のシステムを
発展させたものを示している。第3図に示されたシステ
ムは多数のCPUおよび第1図のように1つ以上のFP
Uをプラスしたメモリ・バンクを、周辺装置と一緒に用
いて構成されている。CPU (複数)、メモリ・バン
クおよびFPUは第1図と同様の符号で示されている。
しかしながら、各ルータの3つのチャンネルは、内に5
つ、外に5つの合計10に延長され、従ってバスのセク
シフンが種々のユニット間に多数の交互ルートを与える
バス・グリッドBGを形成する。グリッドのエツジにお
けるバス・セクションは使用できないものとしてフラグ
をたてられうるかあるいは反対側のエツジのまわりに巻
きつけられうる。
本発明のこの形態では、前述の場合と同様にリクエスト
はCPU (複数)で発生し、応答はメモリ・バンク 
(複数)MおよびFPtJ (複数)で発生し、これら
が各対角線リング(バス・セクション)の1つに沿って
該当するルータRに送られる。
そこから、映像は、各ルータにおいて、3つのルートの
選択が可能である場合を除き、宛先に到達しなければ、
第1図におけるようにルータからルータへと送られる。
宛先は「2北」、「4束」のように各方向におけるステ
ップの数によって識別される。ルータは北または東の隣
接したルータにメソセージを送るが、他のトラフィック
に応じて選択しうる。次に宛先一致は、メソセージが対
角線バス・セクションを通って付設ユニットまたはメモ
リ・バンクに送られる所望の宛先におけるルータに到達
するまで、各ルータで更新される。リクエストと応答は
かならずしも同じ通路を反対方向に進行しないが、一般
には2つのメソセージが同様の通路によって進行するで
あろう。
ルータは、他のチャンネルが何をしていようが、任意の
対の入力および出力ポート間にメツセージを送るように
構成されている。すでに使用されている任意のチャンネ
ルに対して1つのメツセージが到達すると、ルータはそ
のメツセージを記憶するかあるいは出力が得られるまで
入力を遅延させる。グリッド・ロックを回避するために
、各ルータは完全なメツセージを記憶するのに十分な緩
衝を有する。
第3図の構成に対しては修正がなされうる。六角形、立
方体またはハイバキュウビソクのような他のグリッドが
四角形のグリッドに代えて用いられうる。10のポート
・ルータを有する16のデイメンシランを有するハイバ
キュウビフク構造のノードが第4図に示されている。四
角形グリッド形態は、北と東または東と西を交互にして
一方向に「ストリート」を作成することによって簡単化
されうる。活性ユニット、すなわちCPU(複数)、F
PU (複数)等は必要な任意の混合でノードに接続さ
れうる。
上述したようなシステムでは、コンピュータに通常設け
られる通常の割込機能は必要とされない。
周辺装置はそれがサービスを所望するまで1つのメツセ
ージに応答できないことによってプロセスを遅らせうる
。CPUを占有状態に保持するのに十分な文脈が存在し
ているならば、パフォーマンスの劣化は生じない。しか
しながら、時間切れとなった後に遅延されたタスクをア
ンジャム(unjaw)するためのある種の手段が所望
される。都合の良いことには、メツセージ経tettt
定はメツセージが進行しなければならない北(負であれ
ば南)および東(負であれば西)のノードの符号のつい
た数を定漿するために最初のバイト (1つまたは複数
の)をコード化することによって実現される。メツセー
ジが進行するにつttて、これらのカウントは適切にイ
ンクレメントまたはデクレメントされる。両方のカウン
トがゼロに達すると、宛先に到達し、メソセージがロー
カル・ユニットに経路指定される。任意の替りエストに
対するリターン・アドレスはメンセージそれ自体で包ま
れているかあるいはメツセージ内の固定位置を占有しか
つメツセージが主経路指定とはちょうど逆の!!様で進
行するにともなって修正されうる。復帰アドレスが最初
にゼロにセットされると、その復帰アドレスは自動的に
リクエスト・アドレスと同一となる。
上述のようにして経路指定されたメツセージがN/Sと
E/Wの両方向にある距離だけ進行しなければならない
場合には、ルータが任意のアルゴリズムに従っていずれ
かの方向を自由に選択する。
特に、1つの方向における出力ポートが使用されている
場合には、他の適当な方向を選択しなければならない。
しかし、これらのうちの1ツの方向に進行すべきステッ
プの数がゼロにまで低下すると(すなわち正しい行また
は列に達すると)、ゼロにオフセントされた残りを減少
させる方向にだけメツセージを通常送らなければならな
い。所望のポートが現在用いられているとしても、メソ
セージは正しい行または列から外れて経路指定されない
ことが好ましい。なぜならば、そのようなサイドステッ
プは後で反転されなければならず、それがため、所望の
ポートが自由になるのを待つよりも長くかかるであろう
からである。しかし、第3図のグリッドが一部分である
べきであるすなわち幾つかのノードが完全に欠落してい
るべきであるという要求が生じうる。このような状況で
は、ルータがこの事実を知っていなければならない。
明らかなことであるが、メツセージをそのような不存在
のグリッド・ポイントに経路指定してはならず、従って
先行のルールは無効とされ、メツセージは「サイドウェ
イJ (sideways)に経路指定されうる。この
ような状況では、たとえ事実上の宛先に接近させるよう
に見えても、メツセージはそれが出て来たノードに経路
指定されてはならない。
前述のように、通常故障のために生ずる遅延されたタス
クをアンジセム(uajasming)するための手段
を設けることが望ましい、防御しなければならない2つ
の種類の故障が存在する。すなわち、ソフトとハードの
故障である。ソフトの故障は通常1個のビ・7トまたは
小さいグループの関連したビットだけを汚染される過渡
的なエラーであり、ノイズまたはアルファ粒子汚染のよ
うな原因から生ずる。ソフトの故障は頻繁にではなくラ
ンダムに発生する。ソフトのエラーに対処するためには
多数の技術が存在する(パリティ・ビットでもって冗長
度を増大させること等によって)が、これらの技術はす
べて事実上効果がないであろう、ハードの故障は部品の
故障であり、それはいったん発生すると、本質上永久的
である。
ソフトの故障は、検知されたとすると、故障の生じた動
作を再度行うことによって補正されうる。
ここで考慮されている詳細のレベルでは、主たる問題は
すべてのソフト故障が確実に検知されるかという点であ
る。ハードの故障に対処するためには2つの方法が知ら
れている。すなわち並列ハードウェアとチエツクボイン
ティングである。並列ハードウェアは主たる部品が故障
した場合に(勿論その故障が検知されるとして)取って
代わる複製品をあらゆるシステムまたはサブシステムが
有していることに依存する。この技法は高価なハードウ
ェア複製を必要とする。チエツクボインティングも多数
の組のハードウェアを必要とする(1つの組が故障した
場合には他の組が作用するように)が、エラーが存在し
ない場合にはすべての異なる組のハードウェアを独立に
動作させうる。本発明を具現したコンビエータに容易に
通用されうるのは主としてソフトウェアをベースとした
技術であり、シーケンスとして実施される多数の別々の
動作に各文脈またはタスクを分割し、モして各対の動作
の間で、十分なデータが記憶され(チエツクポイントさ
れ)、動作に故障が生ずると、チェノクポイントから開
始されうるようにすることを含む。両者の方法において
、主たる要件は、交換ハードウェアの使用とタスクの最
後のチエツクポイントからの復帰をトリガするためにエ
ラーが検知されることである。
パケット・グリッドにおけるエラーは2つの形式、すな
わちパケットがグリッドをまわって進行する場合のパケ
ットの汚染と使用時におけるノードの死として現われ、
前者について最初に考慮する。いわゆる「ハートビート
」クロック信号がグリッドのすべてのノードに存在し、
それはパケットがパケット・グリッドを交差するのに要
する時間と同じ大きさのオーダの周期で刻時する。同期
する必要はないが、各ノードにおいて同じ走度で刻時す
る。パケット・グリッドをめぐって送られているパケッ
トはルータからルータに通過するときに汚染され、この
ことが生じたことを検知することが必要であり、それは
チエツク値またはCRCをパケットに付けることによっ
て簡単に行われうる。しかし、その場合には、CRCを
いつチエツクすべきかということを、故障が生じたとき
にどのような処置をとるべきかが問題となる。パケット
はルータからルータへとできるだけ速く通過されるので
、ルータが1つのパケット全体を内部記憶装置に保持す
ることはまれである。CRCが到達し、チエツクされそ
して故障であるとわかった時点までに、パケットのヘッ
ドは幾つかのルータをさらに通過していることがありう
る。従って、受信ルータ(パケットをそれの宛先きCP
U。
FPUまたはメモリに切換える)がCRCをチエツクし
、汚染されたパケットを放棄することが必要である。そ
れとは対照的に、受信ノードが故障パケットを検知し、
それを無視するのは容易である。
パケットが汚染のため放棄されると、システムの動作継
続を確保するために、そのパケットは再度伝送されなけ
ればならない。これに対しては3つのアプローチが存在
するが、それらのうち3番目のものが最も信頼性が高い
第1のアプローチは各パケットが起点ノードアドレスを
含むようにすることである。パケットの受信者は起点ノ
ードの再送リクエストを送ることができる。しかし、こ
れは汚染したものが起点アドレスでありうるという難点
がある。
2番目のアプローチでは、ルータ(複数)がリング・バ
ッファの形をした出力F■FO(先入れ先出し方式)を
有するようにすることである。パケットが受信ルータに
より誤まって読取られたことを示す新しい信号バンドパ
ケット(B ad P acket)がルータ間のイン
タフェースに加えられる。パケットが到着すると、受信
ルータがCRCを計算しくこれをできるだけ速く送りな
がら)、cRcが故障を表示すると、パケットの終りで
パッドパケットを主張する。ルータ(パケットを発信し
ているもの)は、パケットが発信されてしまうまで出カ
パケソトをそれのリング・バッファ内に保持する(すな
わち入力データをそれに重ね書きさせない)。パケット
の終りでパッドパケットが受信されると、バッファ・ポ
インタが操作されてパケットのスタートに戻され、これ
によりパケットが再送され、パッドパケットが受信され
ない場合には、セーブされたパケットを含むメモリが重
ね書きささうる。汚染されたパケットはそれの宛先まで
継続し、そこで放棄され、それの後に接近して続くもの
が正しいコピーとなる。このアプローチは、データの流
れに障害が生じた場合に可能な限り最も速く再送を行う
が、それはi!4御信号パケットスタート(P ack
et S tart、ノットレディ(NotReady
)およびパッドパケットにおける障害に影響されやすい
障害補正のための好ましい機構は、すべてのパケッ]・
が応答を有しかつパケットの送り側(sender)が
、時間切れにともなって、応答を待つようにするもので
ある。これを行うための機構について下記に説明する。
一定の期間内に応答が受信されない場合には、リクエス
トが再送される。パケットの内容は、応答ノードが同じ
リクエストの2つのコピーを受信するかどうか問題でな
いようなものでなければならない(なぜならば、汚染し
た状態で到着した最初のリクエストに対する応答が帰路
においでtη染され、従って破壊されるからである)。
1つの汚染パケット・モードについてさらに考える。パ
ケットのヘッドにおける経路指定情報が汚染している場
合には、それは誤まったノードに送られる。これが正当
なノードであれば、そのパケットは正しくないCRCが
到着したときに破壊されるであろう(経路指定情報は勿
論CRCに含まれていなければならない)。しかし、そ
れが誤まって経路指定されるノードは存在していないか
あるいは死んでいるかも知れない。この場合には、経路
指定システムの死ノード処理によりパケットがグリッド
のまわりで飛びはねさせられ、所望のノードに引き続い
て到達しようとするが、死ノードに到着すると偏向され
る。このようなパケットはグリッドを不確定にさまよう
傾向があり、かつ参照を容易にするためにゴースト・パ
ケットと呼ばれる。各ルータに対する修正のためそのル
ータが死んだとしてフラグをたてられた隣接ノードにア
ドレス指定されたパケットを破壊する。しかし、このこ
とは、アドレス指定された死んだノードがブロックの中
心または実際に存在するグリ・ラドの領域の外側にある
場合には通しない。すなわち、ルータはそれが実際に死
んでいるかあるいは見jJlけ上死んだノードが生きた
ノードへの直接の通路を単に遮断しているだけなのか知
ることができない。
ノード障害(それは、ローカル・リソースまたはそれの
ルータが信頼できない場合にはノードは死んだものとし
てマークされるので、ルータ障害を含む)もゴースト・
パケットを発生しうる。ノードが故障したときに、それ
のすべての隣接ノードに対して「デッドJ (dead
)信号を(デフォルトによって)発生ずることが発明の
実施の要件である)。これは、それを通って送られてい
るメソセージを停止させる。しかし、故障したノードに
アドレス指定されたメソセージが発生され、このノード
で発生したメソセージに対する応答も他のノードからの
メツセージも特定のノードが死んだことをまだ知らず、
これらが今度はゴースト・パケットとなる。
しかし、ハートビート・クロックによりルータは、最大
トランシット時間より長い値を現在のハートビート・カ
ウントに加算することによって得られた満期時間を有す
るノードから各パケットが発信されて時間スタンプ(t
)mesta…ped) されるにつれて、ゴースト・
パケットを検知し、処分することができる。次に各ルー
タはこの時間スタンプをそれ自体のハートビートと比較
し、現在の時間が満了時間より大きいかそれに等しいな
らば(カウンタ・ランプ・アラウンドを先約することを
覚えていて)、パケットを破壊する。ハートビートが十
分に遅い場合(通常のルータからルータべのトランシッ
ト時間よりはるかに艮い)場合には、等個性に対する単
純な比較で十分でありうる。非常にまれに良好なパケッ
トが遅すぎる速度で進行したがために破壊されるかどう
かは問題ではない。
これはソフト・エラーとして登録する。他の実施は、送
信側が現在のハートビートをもって時間スタンプし、差
が所定の値を超えた場合にパケットを破壊するようにす
ることである。
ゴースト・パケットの問題に対する他の解決策はパケッ
トが各ノードを通過するときに減少されるノード・カウ
ントをパケットに含ませるようにすることである。ルー
タは、ゼロに達するとパケットを殺す。これはさらに正
確であり、宛先に到着できないと直ちにメツセージを殺
すが、各ルータにおいてメツセージを変更することを含
む。このことはルータの速度と複雑性に対して影響を及
ぼし、CRCが各伝送に対して再計算されなければなら
ないことを意味する。
すべてのハートビート・クロックが常にほとんど同一で
あることが橿めて重要である。概略説明されたエラー補
正方式は、パケット・グリッドのクロッキングにおける
非常にまれなエラーからの[flを浜酌するが、このこ
とはハートビート・クロックにエラーが存在しないこと
、あるいは非常に大きく離れたところに移動する前にク
ロックを同じ値にリセットすることによってエラーが堆
積するのを停止させる機構を必要とする。ノードにおけ
るハートビート・クロックを同じ値にリセットするため
に用いられうる放送機構がパケット・グリッドで利用で
きることが好ましい。事実、この機構はすべてのノード
にハートビートを分配するために用いられうる(すなわ
ち、1つのマスター・ノードが一定の間隔で他のすべて
のノードに新しいハートビート値を分配する)。これは
ルータに放送を解釈させるための高いコストを回避する
メツセージが失われたことをノードが決定する時間切れ
はメソセージが受信されるために許容される時間切れの
少なくとも2倍でなければならない(応答パケットがそ
れに対する応答であるパケットの時間切れを継承するこ
とが有益でありうるが、その場合には、ノード時間切れ
はこの値よりも単純に大きくなければならない)。ノー
ドが時間切れを検知すると、それは少なくとも1回かつ
好ましくはマイクロコードまたはソフトウェア・レベル
で行われうるそれよりも多い回数だけ再トライしなけれ
ばならない、メツセージを送ろうとする一連の試みが失
敗すると、ノードが死んだことを報告するのに通したア
クションをとりかつタスクをそれらの最も最近のチエツ
クポイントから再スタートすることのような回復処理を
開始しなければならない。
ハートビートを放送するための1つの機構は専用パケッ
トにそれを搬送させることである。このようなパケット
を受取ると、ノードは新しいハートビートを現在の値と
比較する。その値が現在の値と異なる場合には、ノード
はその現在の値を変更し、そしてその新しい値が受信さ
れたノードを除いてもよいが、すべての死んでいない隣
接ノードに新しいハートビート・パケットのコピーを送
る。その値が変化していなければ、処置はとられない。
本発明によるシステムはCPUが各文脈において1つず
つ、多数のタスクを実行するマルチタスク型のものであ
るが、自由な文脈を待っている間に静止している他のタ
スクが存在していてもよい。
このようなシステムでは、他のタスクがそれの修正過程
にある間に1つのタスクがデータに対するアクセスを求
めるのを回避するために、異なるタスクが制御された態
様で通信しかつ対話する必要がある。この問題はスピン
・ロッキング(spinlocking)を用いて解決
される。
このスピン・ロッキングを実現するためには、メモリア
クセス装置が各CPUに対して作用する分割できない読
取り/書込み機構を提供し、それによりCPUがメモリ
場所の内容を読取りかつ例えばシステム・バス・アーキ
テクチュアまたはストア・アーキテクチュアによって、
分割できないことを保障された態様で新しい値をそのメ
モリ場所に書込むようにすることが必要である。このよ
うにして、その特定の場所に対する他のアクセスは読取
り/IF込みサイクルの2つの半分の間では生じない。
このアーキテクチュアでは、これは読取りパケットと書
込みパケットを結合した新しいパケット形式によって実
施されうる。各メモリ・バンクまたは妨害されないアク
セスが必要とされる他の資源に対しては、特定のメモリ
場所がロック場所として割当てられる。これは2つの設
定、すなわち[アンロックされたJ (unlocke
d) (通常ゼロ)と「ロックされたJ (locke
d) (非ゼロ)を有する。
資源をロックしたいと望むタスクは上述のように読取り
/IF込みサイクルを実行し、「ロックされた」値をそ
の場所に書込む。読取られた値が検査され、それが「ア
ンロックされた」値であれば、タスクは資源を要求する
ことに成功したことになり、「ロックされた」値であれ
ば、ロッキングタスクは資源を要求することに失敗した
ことになる。
ロックする試みが失敗であれば、ロッキング・タスクは
しばらくのあいだ停止しそして再度トライし、成功する
まであるいはあきらめるまで反復する(従って「スピニ
ングJ (spinning)である)。
ロックがいったん成功すると、資源は自由に使用でき、
かつロック場所に「アンロックされた」値を書込むだけ
で釈放される。
分割できない読取り/書込みが得られない場合には、そ
れは、ta+現在の内容がゼロである場合に非ゼロを書
込むこと、あるいは山)任意の時点でゼロを書込むこと
だけを許容する専用記憶場所によってvi換さhうる。
資源をロックすることを望むタスクハそれ自体の独特の
(非ゼロ)識別子をその場所に書込み、そしてそれを続
出し・それ自体の識別子を読出した場合に鴫よ、資源を
ロックしたことになる。資源をロックするこ七に失敗し
た場合には、前述のように、しばらくのあいだ休止して
、再びトライしなければならない。
トノヨウな形態であれ、スピン・ロノキンクノ難点は、
すでにロックされている資源を繰り返しロックしようと
して、貴重な処理時間とメモリ帯域幅が消費されること
である。幾っがのタスクが偶然によりすべて同じ資源を
ロックしようとしている場合には、システムは欲求を満
たされないタスクでいっばいになり、それらの資源をロ
ックしようとする試みが現在のホルダを実行することお
よびそれの事実上の釈放を遅延させることを妨害する。
ロック試行の間でより長く遅延させることにより負荷が
減少されるが、その場合には、資源が釈放された後であ
って次のユーザがそれにアクセスする前の長い期間のた
めにシステムが「だれた状態J (soggy)  と
なりうる。
本発明によるアーキテクチュアには、プロセスの1つを
ロック・マネージャすることによって他の機構が提供さ
れうる。これはCPUに対する通常の動作シーケンスす
なわちメモリまたは浮動小数点ユニットのような他の資
源に対するアクセスを必要とするまでプロセスを実行す
るものを反転させる。パケットが適当な資源に送られ、
その文脈は応答が受信されるまで実行可能であることを
停止し、他の文脈への移行を制御する。この反転された
モードでは、文脈は、同じまたは他のCPIJ内にあり
うる他の(反転されていない)文脈から資源リクエスト
・パケットを受取るまでがんでいる。その場合、資源を
割当てようとし、その資源がすでに割当てられている場
合には、成功した応答パケットを戻す。資源がすでに用
いられている場合には差がやって来る。その場合には、
ロック・マネージャは資源が釈放されるまで応答できな
いだけであり、満足しないリクエスタ(reques 
ter)の識別子を内部記憶器に記憶する。′J実実費
資源釈放されると、次のりクエスタの識別子が内部記憶
器から引き出され、そして適当な応答パケットが送られ
る。資源は単一の釈放資源パケットを送ることによって
自由になされる。
この機構では、資源割当てに対する唯一のオーバヘッド
は単一のパケット楽境である。資源が利用できない場合
には、文脈のりクエスタはその資源が自由になるまで実
行できない状態でぶら下っているだけである。文脈は資
源マネージャとして用いられるが、文脈は(CPUやバ
ス帯域幅とは異なり)安価な資源であると考えられ、1
つのマネージャが多数の資源を管理しうる。
本発明から生ずる特定の利益は製作が容易であるという
ことである。バス・グリッドによってすでに互いに配線
された第3図に示されているような構成のすべての構成
要素は1個のシリコンウェハ上に作成されうる。これを
行おうとした従来の試みでは、許容しうる結果は得られ
ていない、なぜなら、個々の回路が機能しなくなるウェ
ハの結晶構造の欠陥を回避することが現在では不可能で
あるからである。従来のコンピュータはその状況では動
作しないが、上述した本発明のアーキテクチュアを用い
れば、非機能状態にあるランダムな構成要素を有するコ
ンピュータが機能しうる。
従来のコンピュータの場合におけるウェハ規模集積の他
の問題点はシリコン上の導電性接続部が非常に高い固有
抵抗を有していることである。従って、ウェハを横切っ
て長い距離にわたって延長する導体を有する、:とは困
難である。このような導体は大きい血清を有していなけ
ればなろず、これがため欠陥を生じやすい。本発明によ
るアーキテクチュアは両方の問題点を軽減する。ルータ
に対して上述のように修正を行うことによって欠陥のあ
る「導電性」頭載が許容されうる。しかしながら、欠陥
ユニットに隣接したルータに、それらが欠落しておりそ
れらにメソセージが送られるべきでないことを知らせる
ための手段が必要である。
これはヒユーズ、レーザ・トリミングまたは他の同様の
技術によってなされうる。さらに、本発明のアーキテク
チュアには問題を生ずる長い導体は存在していない、第
3図において、メモリ・バンクM3は非機能であるとし
て示されているが、ルータR21の1つのバス・セクシ
ョンも欠陥を有するものとして示されてL(る。R11
、R20およびR22のようなルータにはこの場合には
R21が非動作状態にあることを示す手段が設けられて
いる。
本発明を実施したコンピュータは従来の(手続型)プロ
グラムを実行し、高いレベルのプログラムに対する慣れ
た環境をエミュレートするように構成されつる。しかし
、データフロー・アーキテクチュア・コンピュータを構
成することも可能である。データフロー・コンピュータ
は公知の技術であるが、本明細書に記述された技術を用
いることによって、手順およびデータフロー・システム
の両方が同じハードウェアで同時に走るようにすること
が可能となる。
手順マシンでは、手順(プログラム)がそれが操作する
必要のあるデータを取出すが、データフロー・マシンで
は、それはそれが操作する必要のあるアルゴリズムを取
出すデータである。1つの命令の一般的な形式は次のよ
うなスタイルを有する。
<Vat>はく金額> X < Vatパーセンテージ
〉である。
〈請求書金額〉はく金額>+<Vat>である。
かぎカッコ内の項目(例えば<Vat))はシステムを
流れるデータであり、他のセクションはアルゴリズムで
ある。原理は、<Vat>とく金額〉が得られるや否や
、マシンが<Vatパーセンテージ〉を自動的に計算す
る。<Vat>の出現がく請求書金額〉を計算するため
の命令をトリガーする(〈金額〉はすでに得られている
ので)0次にく請求書金額〉の出現が請求書の印刷をト
リガーする。
データフロー・マシンは、需要駆動型と供給駆動型との
2つの型式を有しうる。上記の例は供給駆動型であり、
式に対するすべてのオペランドの供給が、それが必要と
されているか否かに関係なく、それの計算をトリガーす
る。需要駆動システムは要求されるまではいかなる結果
も計算しない。
このようなシステムは、例えば〈請求書金額〉のような
データの必要を、それを計算する式に通信するための機
構を必要とし、1その場合、例えば<Vat>のような
その式の入力が得られない場合には、これらのオペラン
ドを計算する式にその必要を伝播するための機構を必要
とする。従って、上記の例では、<Vat>とく金額〉
の出現は処置をトリガーしない。く請求書金額〉に対す
る必要という余分の刺激が必要とされるであろう。これ
が第2の命令をトリガーするであろう。これは評価でき
ないであろう。なぜなら、く金額〉は既知であるが、<
Vat>が判っていないからである。
従って、これが第1の命令をトリガーする<Vat>に
対する要求を発生ずる。これの2つのオペランドが得ら
れると仮定したので、その命令が評価され、それにより
第2の命令が評価され、そして所望の結果に戻ることに
なる。もしそれら2つのオペランドが得られなければ、
さらに他のリクエストがトリガーされ、式が評価されう
るまでそれが続けられる。さらに、以下に説明するよう
に、供給被駆動マシンを需要被駆動マシンに変換するこ
とは簡単である。
データフロー・マシンは人工知能用途によく適合してい
る。なぜなら、データフロー・マシンは、システムが供
給された情報でもってどのような差引をも可能にしかつ
それが有用であれば余分のデータをリクエストするよう
に設定されうるので、あらゆる可能なデータが任意特定
の順序で供給されることを要求しないからである。これ
は、プロログ(P rolog)のような第4世代言語
によ(適合するマツプを作成する。第2に、データフロ
ー・マシンは本質的に並列である。単一データの出現が
多くの式の評価をトリガーし、かつ単一の出力に対する
要求が評価に対する多くのリクエストをトリガーしうる
。各式は通常評価が簡単であり、かつ本発明の分散型ア
ーキテクチュアに合致した他のものに影響を及ぼすこと
なしに実行されうる(それのオペランドが得られれば)
メモリにおけるデータフロー命令は、 fat式に対してどのオペランドがまだ計算されていな
いかを定義するフラグ・ワード、 fb)命令の結果を計算するためにアルゴリズムを記述
するための手段、 [C1命令に対するオペランド(例えばそれらのアドレ
ス)を見つけるための手段、 (dl計算された場合におけるこの命令の結果、(e+
この命令の出力をオペランドとして使用するすべての命
令を識別する手段 のような多くの構成要素を有している。
重要な要素はフラグ・ワード(a)である。限定された
最大個数(多分8、あるいは32)の各命令に対するオ
ペランドが存在しなければならず、それらのオペランド
がそれぞれそれに関連された1つのフラグを有している
。これらのフラグは、ワードの残りが明瞭であるあいだ
に有効なオペランドを表わすすべてのフラグが(例えば
)設定されるようにロードされたときに設定される。そ
こで新しいパケット形式、すなわちフラグ・ワード内の
1個のビットを識別するオペランド・レディ・パケy 
l・(Operand Ready packet)が
必要とされる。これは通常の態様でパケット・グリッド
を通じて特定のメモリのコントローラに進行し、フラグ
・ワード内の1Bのフラグを識別する。メモリ・コント
ローラは該当するフラグをクリアし、もしこれがフラグ
・ワード全体をクリアしない場合には、それ以上何も起
らない。しかしフラグ・ワード全体がクリアされて、命
令に対するオペランドが今得られていることを示すと、
命令がトリガーされる。この場合には、メモリ・コント
ローラが命令結果の計算を開始する。これが生ずるため
の単純な方法は、アルゴリズムを記述するための手段(
b)が単純に、フラグ・ワードがクリアされたときにグ
リッド内に送り込まれるパケットであるようにすること
である。その場合、このパケットが手順モードにあるマ
シンによるある種の処置をトリガーする。このパケット
 (データフロー・トリガー・パケット)の正確なフォ
ーマットは手順マシンの性質に依存するが、−膜力には
、オペランド(c)を見つけ出しそして結果を計算する
タスクを開始させるであろう0次にこの結果が命令(d
)内の正しい位置に戻され、この結果(filのユーザ
のリストが走査され、そしてそれらのユーザのそれぞれ
にこのオペランドが今や得られていることを告げるオペ
ランド・レディ・パケットが送られる。
これらのパケットは全サイクルを再びトリガーすること
ができる。
上記の説明は供給被駆動マシンに対するものであった。
それを需要被駆動マシンに変換するためにはさらに3つ
の付加が必要とされる。第1は、オペランドを有しない
がオペランドが求められていることを特定する余分のフ
ラグをフラグ・ワード(alに付加することである。こ
のフラグがセットされると、最後のオペランドの到着は
、フラグ・ワードがまだクリアでないから命令をトリガ
ーしない、第2に、現在の式に対するオペランドを発生
する指令を識別するための手段を具備した新しい項目t
r+がその命令に付加される。第3に、新しいパケット
・形式、そなわち命令フラグ・ワードを識別するオペラ
ンド・ウオンテッド(OperandWanted)が
必要とされる。これがメモリ・コントローラに到着する
と、余分の、すなわちウオンテッド(Wanted)フ
ラグをクリアする。フラグワードがクリアとなれば、ど
のオペランドが依然として欠如しているか(すなわちど
のフラグが依然としてセットされているか)をみるため
に走査され、各フラグが依然としてセットされている場
合には、リス) (flから入力命令の場所を抽出し、
そしてこの命令にオペランド・ウオンテノド・パケット
を送る。
上述した場合の両方において、フラグが+iil以って
セットされていさえずればフラグをクリアすると通常処
置がとられる。オペランド・11オンテツド・パケット
の場合には、これは一般に真実である。オペランド・レ
ディ・パケットの場合には1、例えばオペランドの1つ
に対して新しい値が現われる毎に命令がトリガーされる
ようにあるアーキテクチュアがその命令の多重トリガー
を許容しうる。このことが命令ベースで、例えばオペラ
ンド・レディ・パケットの一部分として制御されること
が望ましい場合さえありうる。
上述のように、単一のオペランドまたは単一のオペラン
ドに対するリクエストの出現が本質的に開放端の処理量
をトリガーεうる。単一のリクエストによってトリガー
されうる処理の量に対しである制■を与えることが有用
でありうる。これはレベルのカウントをオペランド・レ
ディまたはオペランド・ウオンテソド・パケットに付着
することによってなされうる。これは、すでに発生され
ている他の[リップルJ (ripple)パケットに
送られる前に各メモリ・ノードで減少される。このカウ
ントがゼロに低下すると、「リップル」を発生する代り
に、処理が停止した命令を中央資源に通知する異なるパ
ケットを発生しなければならない。
そこで、単一のオペランドまたはリクエストによってど
の程度の処理が発生されたかを評価すること、およびど
の程度のコンピュータ・パワーが消費されているかを概
略的に(各ステージにおけるファン・アウトの量が制御
されないので精密にではない)制御することが可能であ
る。
特定のリクエストによって発生されたアクティビティが
いつ完了したかを知ることもを用でありうる。これは第
1の組のフラグに第2の組のフラグを並列させることに
よって達成され、各命令はレゾ4 (Ready)また
はウオンテノド(Wanted)パケットの処理の完了
したときに肯定応答を送る。
オペランド・レディ・パケットの場合には、命令がトリ
ガーされたとすると、命令が完全に処理されかつ応答が
すべての「リノプルド」オペランド・レディズ(”ri
ppled ” 0perand Readys )か
ら受取られるまでは応答は送られない。同様に、すべて
の「リップル」オペランド・ウオンテソド・(”rip
ple” 0perand Wanted >パケット
から応答が受取られるまで応答はオペランド・ウオンテ
ノド・パケットには送られない、このことは後続のアク
ティビティがすべて完了されるまでは各パケットは応答
されないことを意味する。最初のメツセージに対する応
答の受取は、そのメソセージによってトリガーされたア
クティビティが完了したことを意味する。カウンタがゼ
ロに達しているためにリップル、パケットが抑制されて
いる場合にリップル・パケットの数を制曜する上述した
プロセスが用いられておれば、応答は予期されず、従っ
てそれを発生したパケ、7トは瞬時的に応答されうる。
データフロー・マシンとして動作するように条件づけら
れている場合には、コンピュータはリアル・ワールドと
のインタフェースに対して手順マシンとしても動作する
(例えばオペランドか間合せかに関係なく受入れ、そし
てその結果をプリントアウトする)、手順システムはオ
ペランド・レディまたはオペランド・つオンテッド・パ
ケットをディスバッチすることができることによってデ
ータフロー・システムをトリガーすることができる。命
令結果の評価が手順領域でなされるので、逆移行がすで
に自動釣に起る。その結果を評価するコード・フラグメ
ントは、必要なことを行うように従来の手順タスクを刺
激するためにセマフォを知らせるまたはメツセージを送
るような動作を実行しうる。
本発明のこの態様を実施することはメモリ・コントロー
ラからの多量の余分の機能性を必要とする。しかし、も
しこれがマイクロコードソド・マシンとして最初に実施
されるならば、これは単に余分のマイクロコードにすぎ
ず、コストは小さく、メモリが比較的低速のダイナミッ
クRA Mであり、従ってメモリ・コントローラは比較
的低速でありうることを覚でいる。
このようにして、コンビ二一タは同じハードウェア資源
を共用して手順およびデータフロー動作の両方を提供す
るようになされうる。データフロー・マシンとして動作
するようになされた本発明によるコンピュータの機能図
が第5図に示されている。
データフロー動作のためのコンピュータを組織するため
に、実施のために必要とされる方策はファームウェア・
ハードウェアまたはそれら2つの組合せの形態をとりう
る。その方策はコンピュータに永久的に設けられうるも
のであり、入力デー夕に対する所定の手gを実行するた
めに4!備されたプログラムとは種類が異なる。パケッ
ト°グリッドは矩形グリッドである必要はないが、アド
レスがXおよびY座標とみなされうるのでこれが経路指
定を容易にする。バケηト・グリッドは例えば四面体の
ような他の形状を有しうるものであり、−殻内にはパケ
ット・アドレスは任意の数でありうる。この場合には、
各ルータには、(例えば)パケットをそれの究極の宛先
に送るための最良のおよび二番目に良い方法を、各アド
レスに応答して、識別する探索テーブルが設けられる。
これまではノードが異質のものであると、すなわちパケ
ットがアドレス指定される正確なノードに達しなければ
ならないCPUおよびメモリのようなノードであると仮
定されてきた。他の形式は本質的にサービスを提供する
同質ノードであり、1つの例が浮動小数点A L Uで
ある。同じ形式の同質ノードは本質的に互換性があり、
任意の浮動小数点ALUで浮動小数点演算が実施されう
る。
上述した探索テーブル・アドレス・スキームでは、特定
のアドレスが同質ノードのクラスに割当てられうる。各
ルータは同質ノードにアドレス指定されたパケットをそ
のようなノードに最も近いノードに(その最も近いノー
ドが使用中の場合には次の選択による)経路指定するよ
うにプログラムされる。このことは、CPUはグリッド
のどこにそのような共用される資源が存在するかを知る
必要がなく、ルータが最も近い利用可能な資源における
パケットを自動的に送ることを意味する。
この概略はゾーン(Z one)の概念を導入すること
によって利用可能なネットワークを拡張するために用い
られうる。ゾーンは、それぞれ独特のアドレスを有する
隣接ノードのグループである。グリッドは多くのゾーン
を含んでいてもよく、そしてノード・アドレスが各ゾー
ンで反復される。ゾーンそれ自体はそれのアドレスをも
って同質資源として取扱われる。すべてのルータがパケ
ットをこのゾーンに向けて送ることができるようにそれ
らの探索テーブルを設定されている。パケットは正しい
ゾーンに到達すると、最初の経路指定コーF ヲ捨チル
ノードに経路指定されなければならない。このことはそ
の後の新しい経路指定コードを示し、そわばパケットが
送られるべきノードのアドレス(このゾーン内では独特
であるが全体としてはネットワーク内にない2を含んで
いるであろう。そのパケットのヘッドを捨てる動作は本
質的に「ノーオペレージコンJ (no−op)であり
、多くの異なるクラスのノードによって実行されうる(
この場合も、ルータはそのようなメソセージをそれらを
処理しうるノードに送るだけであり、このようなノード
の少なくとも1つが各ゾーンに存在しなければならない
この編成は上方のゾーンに対して反復されうる。
限界では、nビット・アドレスが212↑(n −1)
個のノードを含むネットワークを許容する(ただしパケ
ットがn−1個のプレフィクスを有していなければなら
ないので、これは低速であろう)。
8ビット・アドレスの場合には、これは2128のノー
ドを生じ、256のノードの64のゾーンが16にのノ
ードを与えるであろう。
本発明の第1の態様によって定義されたデータ処理装置
は処理ユニット、メモリ・ユニ・ノドおよび通信システ
ムを具備している。好ましい通信システムは本発明の第
2の態様によって定義され、その場合、経路指定手段は
入力ポート、出力ポートおよび先入れ先出し方式メモリ
装置を有している。この好ましい通信システムはパケッ
ト・グリッドと呼ばれグリッドに経路指定手段を配列す
ることよりなる。本発明の第1の態様によって定義され
る特定の適用に加えて、このパケット・グリッド・アー
キテクチユアはローカル・エリア・ネットワーク (L
AN)の設計にも採用されうる。
LANでは、信号通路は通常数十メートルまたは数百メ
ートル離れており、従ってデータ転送速度はコンピュー
タ・システムよりも遅い。信号が各導体に沿って一方向
でありかつ単一の負荷を駆動するにすぎないとすると、
このようなコンピュータ・システムの配線は極めてまっ
すぐである。コストを軽減するために、バスの幅が例え
ばコンピュータ・システムの好ましい16または32ビ
ット・バスに比較して8ビ、トまで減少されつる。
宛先ワードが捨てられたゾーンと呼ばれる分散レベルを
有するという概念をコンピュータ・システムに関して説
明した。これは複数のLANが第2レベル・ノードによ
って接続されるエリア・ネットワークにも適用されうる
。第2レベル・ノード間で伝送されるバケットは、ロー
カル・ネットワークに供給される荊に捨てられるのが好
ましい。
第2レベル宛先ワードを先頭にし、それによってそのロ
ーカル宛先ワードがバケットの先頭となる。
これは必要なだけ多くのレベルを提供するように拡張さ
れうるが、距離が非常に太き(なると他の形式の通信が
好ましくなりうる。
このシステムは従来のしANに比較して幾つかの利点を
有している。最も新しいLANは固定した帯域幅を有し
ている。このことはさらに拡張が予想される場合には余
分の帯域幅が購入されなければならず、LANがいった
ん完全にロードされてしまうと、拡張できない。本発明
のシステムでは、ネットワーク全体をグレードアップす
ることを必要とすることなしに高負荷セクションにわた
って余分の通路を挿入することができる(率直にユーザ
に対して)。現在のLANはRing 、 Bus等の
固定したトポロジー(topology)を有している
が、本発明のシステムはランダム・トポロジーをサポー
トし、それをサイトの物理的トポロジーに対しであるい
は用途の論理的トポロジーに対して(高負荷が予想され
る場合には多重通路をそしてまれにしか使われないチャ
ンネルに対しては単一通路を設けることによって)整合
させることができる。ある種のLANとは異なり、オー
バーランは不再能である(受信機がそれに対して準備が
整っていないためにデータが失われる場合)。受信機が
遅すぎると、データはバックアップするにすぎない。ネ
ットワークの残部におけるデータはブロックのまわりを
自動的に転向する。上述した障害許容技術はこのシステ
ムを信頼性のあるものとなしかつ使用時の更新を容易に
する。
グリッドに接続されたコンピュータは本発明の形式のも
のであり得、その場合には、異なる速度で稼働する2つ
のグリッド間を接続する能力を与えられ、LANに対す
る1つのコンピュータと他ノコンピュータとの間の差異
が消える。適当なプロセッサおよびオペレーティング・
システム・アーキテクチュアが与えらねたとして、1つ
の場所において実行するタスクはそれがあたかもローカ
ルであるかのように遠隔の場所におけるメモリにLAN
を介してアクセスしうるちのであり、両方の場所におけ
るオーバーヘッドを大幅に軽減する。
このことは、LANに接続されたすべてのコンピュータ
の組がある状況においておよびそのように所望される場
合には、物理的寸法と処理能力が相当に大きい単一のコ
ンピュータと考えられうる。
ルータの必須の構成要素は先入れ先出し方式メモリ装置
である。これらはFIFO機能を発揮する任意の構造を
有しうる。好ましくは、それらのFIFOは読取アドレ
ス指定および書込みアドレス指定が循環して、データが
1つのFIFO内にバッファされる場合に位相がずれた
状態となるランダムにアドレス指定可能な形式のもので
ある。
このようにして、FIFOは、バッファリングが必要と
されない場合に1クロック周期の遅延を導入する。
前述のように、ルータは所定の宛先に対してバケットを
出力するためにどれが最初のおよびそれに続くポート選
択であるかを「知るJ (know)。ルータは所定の
宛先に対する正しいポートを計算することができる、ま
たは探索することができる1つのまたはレジスタまたは
一群のレジスタを内蔵していなければならず、それらレ
ジスタはグリッド内における異なる位置を反映するため
に各ルータに対して異なる値に設定されなければならな
い。
これを行う1つの方法はProm内の固定探索テーブル
によってまたはスイッチ・バンクでノード・アドレスを
設定することによってハードワイヤすることである。こ
れは、手作業で行われなければならないこと(人間によ
るエラーが入り込む可能性がある)および故障したルー
タを取り換える場合にまずプログラムし直さなければな
らないことのために、望ましくない。手作業を行わない
で同−のデバイスでグリッドが自動的に構成されうるよ
うにするある種の手段を有することが望ましい。
これを実現するために、ルータに少数の特殊なコードが
組み込まれる。これらの特殊コードは常に一定の方向に
(例えば左折、直進)またはルータ・オンボード・レジ
スタにメツセージを経路指定する。さらに、そのように
する場合に、特殊コードはパケットのフロントからそれ
自体で除去される。これらの特殊コードは、構成機器(
それは外部コンピュータまたはグリッドの機器構成され
た部分でありうる)にグリッドの残部に対する経路指定
をプログラムさせるであろう。これは、パケットを指定
されたノードに送り、プログラムされるべきノードに達
して、オンボード・レジスタに対するデータがパケット
の残部に現わされるまで進行する場合にノード毎に捨て
られる多数のプレフィックスと一緒にパケットを送り出
すことによって行われる。さらに、グリッドの幾何学形
状が一定である(例えば第3図の矩形構造)であるが未
知の部分があるかあるいは潜在的欠陥を有することかわ
かっている場合には、構成機器は、定のルータに行きそ
して戻って来ようとするパケットを送り出すことによっ
てグリッドを探査することができる。そのようにする場
合には、ルータと固定通路の両方が存在する。
その幾何学形状が不規則である場合に、ルータに他のレ
ジスタと特殊な経路指定コードが付加されなければなら
ない。そのレジスタは、システムがパワーオンされた場
合に「識別されない」(unidentif fed)
値に自動的にセットされる一致レジスタ(identi
ty register)である。このレジスタは、ル
ータ・レジスタの他のものと同じ方法で上述のようにし
てプログラムされうる。特殊経路指定コードは[リード
・アイデンティティ・レジスタJ  (Read  I
dentity Register)コードと命名され
る。このコードはそれが先頭に立つパケットをそれが出
て来た方向に経路指定させ、かつ他の特殊コードと同じ
ようにして自動的に除去される。しかしそのコードは一
致レジスタの現在の設定をパケットに添付させる。これ
は構成機器がルータに対してどこで接続がなされたかを
検知しかツ未知(D /L/−夕に遭遇した場合にそれ
を確認することができるようにする。
【図面の簡単な説明】
第1図は複数の処理ユニット、メモリ・ユニットおよび
通信システムを有するデータ処理システムを示す図、第
2図は第1図に示された処理ユニ7)の1つを詳細に示
す図、第3図は二次元グリッドとして構成された通信シ
ステムを有する処理システムを示す図、第4図はハイパ
ーキエーブとして構成された通信システムのノードを示
す図、第5図はデータフロー処理システムの動作を示す
図である。 図面において、C1,C2はCPU、Ml、M2はメモ
リ・バンク、Fl、F2、−・−・はフラグ、R1,R
2、−一−−−・−はレジスタ組、Sはセレクタ、Pは
プロセッサ、SBは送信バス、RBは受信バス、Rはル
ータをそれぞれ示す。 代 理 人 弁理士  山 元 俊 仁、シ夏Δ。 手続補正書 平成元年4月3日 特許庁長官 吉 1)文 毅 殿 ■、事件の表示  特願平1−6060号2、発明の名
称  データ処理装置および通信システム3、補正をす
る者 事件との関係  特許出願人 名 称  クオンテル リミテッド 4、代理人 〒105 住 所 東京都港区虎ノ門1丁目20番6号菅沼ビル 
電話(03) 595−1397 (代)6、補正の対
象  図面および委任状の訳文7゜ 補正の内容 図面の全図を別紙のとおり補■°する。

Claims (1)

  1. 【特許請求の範囲】 1、2つ以上の処理ユニットを有するデータ処理装置に
    おいて、2つ以上のメモリ・ユニットと、前記処理ユニ
    ットおよび前記メモリ・ユニット間に通信を与える通信
    システムを具備し、前記処理ユニットのそれぞれが、各
    プロセスに関するデータをそれぞれ受取ることができる
    複数のレジスタ・セットと、第1のプロセスが前記通信
    システムを通じて供給される第1のデータを必要とする
    場合に前記レジスタ・セットの第1のものにアクセスす
    ることにより前記第1のプロセスを処理し、前記通信シ
    ステムを通じて供給されるべき第1のデータを前記通信
    システムを通じてリクエストし、前記第1のデータを受
    取って前記第1のプロセスの処理を中断し、そして第2
    のレジスタ・セットにアクセスすることによって第2の
    プロセスを処理するための処理手段を具備することを特
    徴とするデータ処理装置。 2、各処理ユニットの処理手段は、第2のデータが必要
    とされるまで前記第2のプロセスを処理し、前記通信シ
    ステムを通じて前記第2のデータをリクエストしかつ前
    記第2のプロセスの処理を中断し、そして第3のレジス
    タ・セットにアクセスすることによって第3のプロセス
    を処理するようになされていることを特徴とする請求項
    1のデータ処理装置。3、前記処理ユニットはプロセス
    が実行可能であるかあるいはデータを待っているかを識
    別する手段を具備しており、前記第2のプロセスが実行
    可能と識別されたプロセスから処理のために選択される
    ことを特徴とする請求項1のデータ処理装置。 4、前記処理ユニットが前記通信システムからのデータ
    を、そのデータがリクエストされたプロセスのレジスタ
    ・セットに供給するための手段を具備していることを特
    徴とする請求項3のデータ処理装置。 5、前記処理ユニットのそれぞれが前記通信システムに
    接続された前記メモリ・ユニットのうちの任意のものか
    らのデータをリクエストするための手段を具備している
    ことを特徴とする請求項1のデータ処理装置。 6、プロセスに供給されるデータがプロセスの一部分と
    して実行される前記処理ユニットに対する命令であり、
    コンピュータ・プログラムから得られることを特徴とす
    る請求項1のデータ処理装置。 7、前記メモリ・ユニットが少なくとも1つのアドレス
    指定可能なメモリ・デバイスと、メモリ・コントローラ
    を具備しており、前記メモリ・コントローラが前記各メ
    モリ・デバイスと通信システムとの間でデータまたはデ
    ータのブロックを転送するようになされていることを特
    徴とする請求項1のデータ処理装置。 8、前記メモリ・コントローラは、前記処理ユニットの
    うちの1つが排他的アクセスを与えられているあいだ前
    記処理ユニットが前記通信システムを通じて前記メモリ
    ・デバイスと通信するのを阻止するために分割不能の読
    取り/書込みを行うようになされたロッキング手段を具
    備していることを特徴とする請求項8のデータ処理装置
    。 9、前記処理ユニットのうちの1つで実行可能なプロセ
    スが前記処理ユニットによってなされたリクエストに応
    答して前記ロッキング手段のロッキングおよびアンロッ
    キングを制御することを特徴とする請求項8のデータ処
    理装置。 10、前記メモリ・ユニットのメモリ・コントローラが
    前記処理ユニットの命令組の詳細でプログラムされ、前
    記コントローラが処理ユニット命令よりなる各メモリ・
    デバイスからのデータのブロックを読取るようになされ
    ており、かつ前記ブロックは予め定められたサイズに達
    するとまたはメモリの他の領域に分岐するようにプロセ
    スに命令するデータを読取ると終端されることを特徴と
    する請求項7のデータ処理装置。 11、前記処理ユニットのうちの少なくとも1つが複数
    のバンクをなして配列されたレジスタを有するベクトル
    をなして配列されたレジスタを有するベクトル型プロセ
    ッサであり、かつデータのブロックが前記通信システム
    を通じてなされた単一のリクエストに応答して前記ベク
    トル型プロセッサ内のレジスタの1つのバンクにメモリ
    ・デバイスから供給されることを特徴とする請求項7の
    データ処理装置。 12、前記処理ユニットのそれぞれは前記メモリ・ユニ
    ットのどれかにデータを書込むための手段を具備してい
    ることを特徴とする請求項1のデータ処理装置。 13、少なくとも1つの専用処理デバイスを有し、前記
    処理ユニットと前記専用処理デバイスとの間の通信が前
    記通信システムを通じて与えられることを特徴とする請
    求項1のデータ処理装置。 14、前記専用処理デバイスが浮動小数点演算を行いそ
    してその結果を前記通信システムを通じて前記処理ユニ
    ットに供給することを特徴とする請求項8のデータ処理
    装置。 15、前記処理ユニットが従来のマイクロコンピュータ
    と同様のオーダのデータ処理能力を有する16ビットま
    たは32ビットのプロセッサであることを特徴とする請
    求項1のデータ処理装置。 16、前記メモリ・コントローラが付加的な記憶手段を
    具備しており、データ処理システムがデータフロー・マ
    シンとして動作するようにプログラムされている場合に
    前記付加的記憶手段にまたはそれからデータが転送され
    ることを特徴とする請求項7のデータ処理装置。 17、前記付加的記憶手段がフラグ・フィールド、値フ
    ィールド、出カリスト・フィールド、および供給被駆動
    動作を与えるための動作フィールドを具備していること
    を特徴とする請求項16のデータ処理装置。 18、前記付加的記憶手段がフラグ・フィールドを具備
    し、前記フラグ・フィールドにおけるフラグの1つが値
    ウオンテッド・フラグ、値フィールド、入力リストおよ
    び需要被駆動動作を与えるための動作フィールドである
    ことを特徴とする請求項16のデータ処理装置。 19、伝送手段によって接続された複数の経路指定手段
    を具備する通信システムにおいて、前記経路指定手段の
    それぞれが少なくとも2つの入力ポートと少なくとも2
    つの出力ポートを有し、前記入力ポートは各先入れ先出
    し(FIFO)メモリ・デバイスを通じてデータ・パケ
    ットを受取るようになされており、前記データ・パケッ
    トはローカル宛先ワードを含む複数の一時的に分離され
    たワードを有し、前記ワードのそれぞれが複数の空間的
    に分離されたディジットを有し、前記経路指定手段はパ
    ケットのローカル宛先ワードに応答して前記少なくとも
    2つの出力ポートのうちの1つにパケットを選択的に送
    るための手段と、前記経路指定手段内でのデータの衝突
    を防止するために各FIFOの伝送特性を制御するため
    の手段を具備していることを特徴とする通信システム。 20、前記経路指定手段とそれの各FIFOが1個のチ
    ップ上に作成されていることを特徴とする請求項19の
    通信システム。 21、1つの経路指定手段の各FIFOが前記経路指定
    手段の入力に接続された複数のFIFOであることを特
    徴とする請求項20の通信システム。 22、前記複数のFIFOがランダムにアクセス可能な
    装置であり、データが異なるアドレスに書込みかつその
    アドレスから読取ることによって緩衝されていることを
    特徴とする請求項19の通信システム。 23、前記経路指定手段は、前記入力ポートに供給され
    ているデータが宛先出力ポートに供給されることができ
    ない場合には前記入力ポートに接続されたFIFOから
    のデータの転送を禁止するための手段を具備しているこ
    とを特徴とする請求項19の通信システム。24、前記
    ローカル宛先ワードがパケットの最初のワードであり、
    かつ前記経路指定手段は、前記パケットの後続のワード
    が入力ポートで受取られているあいだにパケットのワー
    ドを出力ポートに選択的に送るための手段を具備してい
    ることを特徴とする請求項19の通信システム。 25、前記経路指定手段は、宛先ワードを受取ったこと
    に応答して選択のための好ましい出力ポートを決定する
    ためにすべての可能な宛先の位置を定義するプログラム
    可能な手段を具備していることを特徴とする請求項19
    の通信システム。 26、前記経路指定手段は最初に受取ったパケットを最
    初に選択された出力ポートに送ると同時に二番目に受取
    ったパケットに二番目の選択された出力に送るようにな
    されていることを特徴とする請求項19の通信システム
    。 27、前記プログラム可能な手段は前記好ましい出力が
    用いられている場合に選択のための二番目に良い出力ポ
    ートを決定するための手段を具備していることを特徴と
    する請求項25の通信システム。 28、第1の経路指定手段の出力ポートを第2の経路指
    定手段の入力ポートに接続することによって前記経路指
    定手段でネットワークが形成され、各経路指定手段に対
    する少なくとも1対の入力および出力ポートが他の経路
    指定手段に接続されないことを特徴とする請求項19の
    通信システム。 29、各パケットはそのパケットがシステム内に存在し
    ている時間に関するデータを含んでおり、かつこのシス
    テムは予め定められた期間より長い間システム内に存在
    したパケットを除去するための手段を具備することを特
    徴とする請求項28の通信システム。 30、各経路指定手段はシステム内にパケットが存在し
    ていた時間間隔を決定するための共通のクロック・デー
    タを受取ることを特徴とする請求項29の通信システム
    。 31、前記経路指定手段はグリッドで構成され、各中央
    経路指定手段が1対の入力および出力ポートを通じて4
    つの他の経路指定手段に接続されていることを特徴とす
    る請求項28の通信システム。 32、1つの出力ポートと1つの入力ポートとの間の各
    接続が分岐を伴わずに単一方向でありかつ各FIFOを
    具備していることを特徴とする請求項28の通信システ
    ム。 33、前記通信システムが請求項19〜32のうちの1
    つによるシステムであることを特徴とする請求項1〜1
    8のうちの1つによるデータ処理装置。 34、請求項28に従属した場合に、各経路指定手段は
    5つの対の入力ポートおよび出力ポートを有し、前記対
    のうちの4つが他の経路指定手段に接続され、前記経路
    指定手段のうちの少なくとも2つの経路指定手段の第5
    番目の対のポートが各処理ユニットに接続され、かつ前
    記経路指定手段のうちの少なくとも2つのものの第5番
    目の対が各メモリ・ユニットに接続されていることを特
    徴とする請求項33のデータ処理装置。 35、請求項28に従属した場合に、各経路指定手段が
    少なくとも5つの対の入力ポートおよび出力ポートを有
    し、経路指定手段のネットワークは1つの処理またはメ
    モリ・ユニットに接続されたノード経路指定手段を有す
    るハイパーキューブとして構成され、残りの4つの対の
    ポートは各転送経路指定手段の第5番目のポートに接続
    され、かつ前記転送経路指定手段のそれぞれの残りの4
    つの対のポートが他の経路指定手段に接続されることを
    特徴とする請求項33のデータ処理装置。 36、メモリ・ユニットからのデータに対するリクエス
    トがデータのパケットを通信システムに適用することに
    よって作成され、パケットが(a)処理ユニットを識別
    する、(b)前記処理ユニットで実行されるプロセスを
    識別する、(c)前記データが必要とされるメモリ・ユ
    ニットを識別する、(d)前記必要とされるデータのア
    ドレスを特定することを特徴とする請求項33のデータ
    処理装置。 37、前記経路指定手段がローカル・エリア・ネットワ
    ークのノードであることを特徴とする請求項19〜32
    のうちの1つによる通信システム。 38、請求項24に従属した場合に、複数のローカル・
    エリア・ネットワークが第2レベル・ネットワークの第
    2レベル・ノードによって接続され、前記第2レベル・
    ネットワーク上に分散された各パケットの最初のワード
    が前記ローカル宛先きワードに先行する第2レベル宛先
    きワードを含んでおり、前記第2レベル・ノードはパケ
    ットがローカル・ネットワーク上に分散される前に前記
    第2レベル・ワードを除去または禁止するための手段を
    具備していることを特徴とする請求項37の通信システ
    ム。 39、前記宛先きワードのデータが、前記ワードが第2
    レベルまたはローカル分散に対するものかを識別するこ
    とを特徴とする請求項38の通信システム。 40、分散の付加的レベルがローカルおよび第2レベル
    分散に加えて与えられることを特徴とする請求項38の
    通信システム。 41、請求項1のデータ処理装置が前記ローカル・エリ
    ア・ネットワークのノードに接続されていることを特徴
    とする請求項37の通信システム。 42、データ処理装置のローカル・エリア・ネットワー
    クおよび経路指定手段のノードが同様の回路で構成され
    ていることを特徴とする請求項41の通信システム。 43、前記グリッドが1個の半導体ウェハ上に作成され
    ていることを特徴とする請求項31の通信システム。 44、前記システムが1個の半導体ウェハ上に形成され
    ていることを特徴とする請求項33のデータ処理装置。
JP1006060A 1988-01-15 1989-01-17 データ処理装置および通信システム Expired - Lifetime JP2879567B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB888800943A GB8800943D0 (en) 1988-01-15 1988-01-15 Improvements relating to computers
GB8800943 1988-01-15
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 true JPH025173A (ja) 1990-01-10
JP2879567B2 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)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259498A (ja) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサの命令キャッシュ
JP2006252440A (ja) * 2005-03-14 2006-09-21 Fujitsu Ltd 再構成可能演算処理装置
JP4721502B2 (ja) * 1999-11-08 2011-07-13 ヒューレット・パッカード・カンパニー ソース定義パケットルーティングシステム及びその方法
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
JP2021082317A (ja) * 2017-02-23 2021-05-27 セレブラス システムズ インク. 加速化ディープラーニング
US11157806B2 (en) 2017-04-17 2021-10-26 Cerebras Systems Inc. Task activating for accelerated deep learning
US11321087B2 (en) 2018-08-29 2022-05-03 Cerebras Systems Inc. ISA enhancements for accelerated deep learning
US11328207B2 (en) 2018-08-28 2022-05-10 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
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
JPH03504176A (ja) * 1989-08-03 1991-09-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理ネツトワーク
EP0553158B1 (en) * 1990-10-19 1994-12-28 Cray Research, Inc. A scalable parallel vector computer system
US6233702B1 (en) * 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
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
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
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
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
JP2000211216A (ja) * 1999-01-25 2000-08-02 Canon Inc 複合機器の情報処理方法及びシステム
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
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
CA2416783A1 (en) * 2000-07-25 2002-01-31 Acuo Technologies, Llc Routing medical images 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
US20070088828A1 (en) * 2005-10-18 2007-04-19 International Business Machines Corporation System, method and program product for executing an application
US8862706B2 (en) 2007-12-14 2014-10-14 Nant Holdings Ip, Llc Hybrid transport—application network fabric apparatus
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
US20140233582A1 (en) * 2012-08-29 2014-08-21 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
US11784930B2 (en) 2021-04-30 2023-10-10 Bank Of America Corporation Communication system with 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
US11469988B1 (en) 2021-04-30 2022-10-11 Bank Of America Corporation Communication analysis for dynamic 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
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
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

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259498A (ja) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサの命令キャッシュ
JP4721502B2 (ja) * 1999-11-08 2011-07-13 ヒューレット・パッカード・カンパニー ソース定義パケットルーティングシステム及びその方法
JP2006252440A (ja) * 2005-03-14 2006-09-21 Fujitsu Ltd 再構成可能演算処理装置
US7743236B2 (en) 2005-03-14 2010-06-22 Fujitsu Limited Reconfigurable processor
JP2021082317A (ja) * 2017-02-23 2021-05-27 セレブラス システムズ インク. 加速化ディープラーニング
US11934945B2 (en) 2017-02-23 2024-03-19 Cerebras Systems Inc. Accelerated deep learning
US11157806B2 (en) 2017-04-17 2021-10-26 Cerebras Systems Inc. Task activating for accelerated deep learning
US11062200B2 (en) 2017-04-17 2021-07-13 Cerebras Systems Inc. Task synchronization for accelerated deep learning
JP2020205067A (ja) * 2017-04-17 2020-12-24 セレブラス システムズ インク. 加速化ディープラーニングのニューロンスメアリング
US11232348B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Data structure descriptors for deep learning acceleration
US11232347B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Fabric vectors for deep learning acceleration
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
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
US11328207B2 (en) 2018-08-28 2022-05-10 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
US11321087B2 (en) 2018-08-29 2022-05-03 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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH025173A (ja) データ処理装置および通信システム
US5161156A (en) Multiprocessing packet switching connection system having provision for error correction and recovery
US7145837B2 (en) Global recovery for time of day synchronization
US4907232A (en) Fault-tolerant parallel processing system
US7668923B2 (en) Master-slave adapter
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
JP5376371B2 (ja) 並列コンピューティング・システムに使用されるネットワーク・インターフェース・カード
EP0110569B1 (en) Multiprocessor multisystem communications network
US5353412A (en) Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US4590554A (en) Backup fault tolerant computer system
US5361363A (en) Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes
US7664897B2 (en) Method and apparatus for communicating over a resource interconnect
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
US5822605A (en) Parallel processor system with a broadcast message serializing circuit provided within a network
US6490630B1 (en) System and method for avoiding deadlock in multi-node network
EP1602030A2 (en) System and method for dymanic ordering in a network processor
JP2006216068A (ja) コンピュータ・システムの異なるパーティション中で複数のオペレーティング・システムを動作させ、異なるパーティションが共用メモリを介して相互に通信できるようにするコンピュータ・システムおよび方法
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
US6594709B1 (en) Methods and apparatus for transferring data using a device driver
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
US20060031622A1 (en) Software transparent expansion of the number of fabrics coupling multiple processsing nodes of a computer system