JPH02183362A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH02183362A
JPH02183362A JP1284672A JP28467289A JPH02183362A JP H02183362 A JPH02183362 A JP H02183362A JP 1284672 A JP1284672 A JP 1284672A JP 28467289 A JP28467289 A JP 28467289A JP H02183362 A JPH02183362 A JP H02183362A
Authority
JP
Japan
Prior art keywords
processor
cell
cells
data
memory
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.)
Pending
Application number
JP1284672A
Other languages
English (en)
Inventor
Richard E Morley
リチャード・イー・モーリー
Jr Douglas H Currie
ダグラス・エッチ・カリー、ジュニア
Gabor L Szakacs
ガボー・エル・スザカクス
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.)
Flavors Technology Inc
Original Assignee
Flavors Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Flavors Technology Inc filed Critical Flavors Technology Inc
Publication of JPH02183362A publication Critical patent/JPH02183362A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータシステムに関し、特に、高速実時
間演算を実行するための並列プロセッサシステムに関す
る。
〔従来の技術及び発明が解決しようとする問題点〕並列
方式は、コンピュータの処理をスピードアップするため
に好んで採用される方法である。
初期の形態の並列方式の1つは単一命令多重データ(S
IMD)アーキテクチャであった。この方式によれば、
同一のプログラムが別個のデータセットに同時に適用さ
れる。SIMDアーキテクチャでは、メモリから1つの
命令が読取られた後、その命令を異なるデータを含むい
くつかのデータセットに適用することができ、コンピュ
ータは複数回の計算にメモリから命令を読取るコストを
分散することが可能であるので、スルーブツトは一般に
高い。しかしながら、SIMDによる計算の場合、異な
るデータセットをそれぞれ同じように処理する必要があ
るため、その適用範囲は限定される。1つの問題の異な
る各部分を表わす異なるデータに単一のアルゴリズムを
適用できる場合には、この欠点は重要ではないのであろ
うが、SIMDアーキアーキテクチャしても、大半の問
題を有効に解決することは不可能である。
「バーバード・アーキテクチャ」として知られている別
のデザインによれば、命令用に1つのメモリを設け、デ
ータ用には別のメモリを設ける。
メモリはCPUに対して独自の経路をそれぞれ有するも
ので、CPUは、単位時間当りの情報の2倍の情報を得
ることになる。ただし、余分の経路があるために、コン
ピュータ内の接続箇所の数は著しく多くなり、それに伴
なってコストも高くなる。さらに、このデザインでは、
データサイズとプログラムサイズとの比が一定であるこ
とを前提としているので、プログラム又はデータのいず
れかが大きくなりすぎて、その専用メモリに適合できな
くなったときに、コンピュータの用途は制限されてしま
う。
並列方式の効果を得るもう1つの方法はパイプライン構
成を利用するものであるが、この場合、1つのプロセス
は別個の段階に分割され、演算の段階ごとに別個のハー
ドウェアが設けられる。各段階でその作業が完了すると
、問題は異なるハードウェアに回され、そのハードウェ
アは次の演算を実行する。このように、1回の動作を通
して従来のシステムのようにデータを1組のハードウェ
アレジスタに保持しておくのではなく、データは、それ
ぞれが異なる機能専用となっている多数のレジスタ群を
経て送られる。情報が定常流れとして利用できるのであ
れば、パイプラインプロセッサは非常な高速でランする
ことができるが、それぞれの問題の開始時と終了時に待
ち時間の問題と、データのフラッシングの問題が起こる
であろう。
今日利用することができる並列プロセッサコンピュータ
の多くは多重命令多重データ(MIMD)アーキテクチ
ャを使用している。MIMDマシンは別個の複数組のデ
ータに同時に作用する別個の複数のプログラムを有し、
それぞれが独自の命令を有し且つ独自のデータを各自処
理する多数の別個のCPUを有していて良い。別個のC
PUは1つの問題を解決するために共動することができ
るように互いに接続される。
MIMDマシンにおいて、いくつかの別個のプロセッサ
が複数の問題について同時に作業することができるよう
に、それらのプロセッサのアクティビティを協調させる
手段を設けるのは困難である。システムに追加されるC
PUの数が増すにつれて、それらのCPUの間の相互作
用によって起こるオーバヘッドも多くなる。
上述の問題は、「エキスパートシステム」を動作させる
ときに特に困難を引起こす。このエキスパートシステム
は、データベースに新たな事項を付は加える数千の「規
則」を含む。1つの規則がデータベースに新たな事項を
追加したとき、その規則は新たな事項を「推論」したと
いわれ、このため、規則インタプリタは「推論エンジン
」と呼ばれる。エキスパートシステムにおける規則は一
般に「イフ(IF)<条件〉、ゼン(THEN) <ア
クション〉」の形態で表わされ、その「条件」の全てが
満たされたときに「アクション」を起こす。
エキスパートシステムには、規則がそのアクションをい
つ起こすべきかを決定するための明確な制御構造は存在
しない。原則としては、新たな事実がデータベースに入
ったとき、エキスパートシステムは、いずれかの規則が
アクションを起こすことが可能であるか否かを判定する
ために、全ての規則を走査しなければならない。規則が
数多くある場合、この戦略によって、エキスパートシス
テムのラン速度は低下すると考えられる。従って、複雑
なエキスパートシステムに要求されるように多数のコン
ピュータコードラインを効率よく、迅速にHつ経済的に
ランすることができる新しいコンピュータシステムが必
要である。
c問題点を解決するための手段〕 特に実時間推論の問題を解決するためのコンピュータシ
ステムを開示する。システムは、予測可能で応答性を有
する実時間動作を実行し且つ微粒子プログラミングが可
能である収縮期細胞状プロセッサを含む。システムは、
独自の局所メモリをそれぞれ有する複数の別個のプロセ
ッサセルを具備し、セルは同時にランして、それぞれの
プログラム命令を予測可能な様式で応答性をもって実行
するように動作する。大域バスを介してプロセッサセル
に結合される大域メモリは、セルにデータを提供すると
共に、セルから受信したデータを記憶する。バスは、全
てのセルから大域メモリへの同時アクセスを有効に行わ
せる。システムのもう1つの特徴は、英語の構文法を使
用する新規なプログラミング言語であり、これは、コー
ドを各セルに同期的に予測性をもって結合するものであ
る。制御を容易にするため、各セル又はセルグループへ
の視覚によるアクセスを可能にする図形ワークステーシ
ョンがユーザーインタフェースとして設けられている。
従来から知られているコンピュータシステムに伴なう問
題点は、以下に記載されるように、大域メモリから変数
値(「インポート」)をインホトし且つ計算した値(「
エクスボート」)を大域メモリへエクスポートする複数
個のセルに分割されているプログラムを使用するコンピ
ュータシステムにより解決される。1つのセルのインポ
ートは他のセルで計算されるか、もしくはホストコンピ
ュータからコンピュータシステムに供給される。
セルのエクスポートは大域メモリに書込まれた後、他の
セルにより使用されるか、又はホストコンピュータへ戻
される。1つのセルにおける計算の結果は他のセルのプ
ログラムに対する入力として使用されても良く、入力を
受取ったセルの出力は、今度は、さらに別のセルに対す
る入力として使用されても良い。
ここに開示されるコンピュータシステムは、図示実施例
によれば、最大128個の別個のプロセッサを含み、そ
れぞれのプロセッサは、最大128個のセルにより指定
される計算を実行する。各プロセッサは、命令とデータ
の双方を記憶することができる独自の局所メモリを有す
る。各プロセッサと関連する128個のセルは一度に1
つずつ所定の順序で実行されるが、本発明の特徴がある
ため、それらのセルは同時に、並列してランしているよ
うに見える。その結果、ここに開示されるシステムは、
図示する実施例においては16,384個ものセルを有
しているといっても良く、それぞれのセルは、絶えず独
自のプログラムを計算する独自のマイクロプロセッサを
有するかのように動作する。
セルは、それぞれ、予測性と応答性をもって動作する。
各セルは、所定のインポート条件に対して常に予測しう
るエクスポートが与えられるように、インポート事象に
対して既知の応答を示す。どのセルの応答も、そのセル
に無関係の他の事象により影響されない。それぞれのセ
ルは他のセルから独立して、独自のプログラム規則又は
その他の機能に従って動作する。
コンピュータシステム内の128個のプロセッサは、共
用大域メモリを介して通信する。各プロセッサが結果を
計算すると、それらの結果は大域メモリに記憶され、他
のプロセッサは必要に応じてそれを読取ることができる
ここに開示されるコンピュータシステムによれば、「イ
フ」ステートメントを別個のセルに配置することができ
、そのセルは自身に影響を与える全てのデータを検関し
続けているので、エキスパートシステムにおいて規則を
制御することは比較的簡単である。規則の「イフ」側の
条件が満たされると、セルは「ゼン」側のアクションを
実行し、新たな事実をデータベースへエクスポートする
パラレルセルラ言語(パラセル)として知られている特
殊なプログラミング言語は、ここに開示するコンピュー
タシステムで使用するために開発された。パラセルは、
プログラムを、他のセルにより使用されるべき変数をエ
クスポートする責任を負う複数個のセルに分割する便利
な方法を提供する。
バラセル言語を使用する場合、セルは所望の数だけ変数
をインポート又はエクスポートできる。
記号変数名を指示することにより、情報はセル間で共用
される。全てのセルは大域メモリから変数をインポート
して、同時に作業を開始するように見え、また、全ての
セルは処理を終了したときに大域メモリへ更新済度数を
エクスポートするので、全てのセルにその変数を大域メ
モリに書込む機会が与えられるまで、再び処理開始を許
されるセルはない。セルが新たな値を大域メモリへエク
スポートするにつれて、新たな値は後続するサイクルの
開始時まで緩衝されるので、1回の処理サイクルの間に
1つの変数をインポートしたセルは、その変数に関して
同じ値を受取ることになる。
ここに開示するコンピュータシステムでは、従来のコン
ピュータ構成と比べて性能の点でかなりの改善が見られ
る。各プロセッサに独自の命令の流れを与えることによ
り、大域メモリバスからの命令の転送は少なくなり、そ
のため、大域メモリサイクルの大半をデータ転送専用と
して使用することができる。1つのプロセッサが参照す
るデータの多くはプロセッサ独自の局所メモリに記憶さ
れている情報により満たされるので、それぞれのプロセ
ッサは同様に独自のデータの流れをも有効に有する。最
後に、局所プロセッサはその中間結果を独自のメモリに
記憶するので、大域メモリの通信量も減少する。このよ
うに、本発明は、多数の別個の問題を同時に効率よく解
決することができるシステムを提供する。
別の面によれば、本発明は、VLSI半導体チップで実
現できるようなカスタム用微粒子プロセッサに、そのよ
うなチップを実際に設計製造する必要なく匹敵する。本
発明のシステムは、マイクロプロセッサの制御のために
一般に大量のコードを有するプログラムが要求されるよ
うな、Motoroia 68030などの大粒子プロ
セッサを採用する。物理的マイクロプロセッサは、本発
明のソフトウェアにより、それぞれが独立して動作する
個々のプロセッサのアレイのように機能し、プログラマ
やユーザーにもそのように見える複数の微粒子プロセッ
サに区分される。前述のように、微粒子プロセッサ、す
なわちセルは独自のメモリをそれぞれ有し、1群のセル
が共用する共用局所メモリに対するアクセスをも得る。
それぞれの微粒子プロセッサ(セル)は、大域メモリを
もアクセスし、それにより、セルは互いに大域メモリを
介して通信することができる。従って、実際のマイクロ
プロセッサは、微粒子プロセッサ、すなわちセルである
多数の別個の仮想プロセッサに相当する。
〔実 施 例〕
以下、添付の図面を参照して本発明を説明する。
第1図に関して説明すると、第1図には、本発明による
コンピュータシステム8が示されている。
このコンピュータシステム8はワークステーションlO
と、ホストコンピュータ16とに接続され、さらに、任
意に高解像度図形表示装置20にも接続される。コンピ
ユータシステム8自体は、入出力(I 10)ボード1
2.18及び22、メモリボード26と、プロセッサボ
ード30との組合せから構成され、これらのボードは高
速バス24にそれぞれ結合されている。
ワークステーションIOはプログラム開発のためのユー
ザーインタフェースとして機能し、プログラムエディタ
と、コンパイラと、増分ローダと、記号デバッガと、プ
ログラムを管理するためのその他の機構とを含む。ワー
クステーションIOは高速並列バス14を介し、入出力
ボード12を経てコンピュータシステム8にプログラム
をロードする。
好ましい実施例においては、コンピュータシステムは、
ソフトウェア開発用端末装置として、Macintos
h IIなどの標準形ワークステーションを使用する。
ホストコンピュータ16は、並列バス15により結合さ
れる入出力ボード18を介して、コンピュータシステム
8にデータを供給すると共に、コンピュータシステム8
から受信したデータを記憶する。ホストコンピュータ■
6はコンピュータシステムにプログラムをロードし、シ
ステムメモリにデータに書込み、システムメモリから結
果を検索することができ、また、システムメモリからプ
ログラムを複写し、後にそのプログラムを実行するため
に、プログラムを記憶しておくこともできる。
ホストコンピュータのシステムインタフェースはデータ
転送のために最適化されているが、ホストコンピュータ
16は、ソフトウェア開発に適するコンパイラ及びエデ
ィタを利用することが可能である場合にソフトウェア開
発装置として機能できるように、ワークステーション1
0と同様のシステム中断用制御機能を有していても良い
図形表示装置20は入出力ボード22と、バス17とに
よりコンピュータシステム8に結合され、コンピュータ
システムにより図形を高解像度で提示させることができ
る。
アーキテクチャの面からいえば、コンピュータシステム
8は、プロセッサボード30上に位置する多数の互いに
独立したコンピュータプロセッサから構成されている。
各ボード30はいくつかのプロア セッサを含んでいても良く、)loLorola 68
030などの標準形マイクロプロセッサチップを基礎と
しているのが好ましい。図示される実施例を実現したシ
ステムは、1枚のプロセッサボードに4つずつ、合わせ
て128個のユーザープロセッサを有するが、システム
はこの数に限定されるわけではない。
コンピュータシステム8の主データベースはメモリボー
ド26上に位置する大域メモリから構成される。この実
施例では、大域メモリは、メモリボードごとに1モジユ
ールとして、モジュールごとに32メガバイトの単位で
配列されている。必要に応じて、他の大きさのメモリを
製造することも可能である。メモリは、普通、100ナ
ノ秒のアクセス時間を有する市販の標準形1メガビット
ダイナミックRAMチップから構成されるのが好ましい
入出力ボード12. 18及び22は、外部の装置10
16及び20に対し高速並列インタフェースを含む2ボ
ート大域メモリカードとして機能する。入出力ボードを
介してデータが外部装置から大域メモリへ供給されると
き、データは大域バス24を介してシステム内の全ての
プロセッサに直ちに利用可能となる。
データ転送を実行するために、コンピュータシステムは
、40ビツトのアドレスと、32ビツトのデータと、デ
バッグ用の2ビツトという広いバスと、数本の制御線と
を使用する。バスアクセスを制御するのに必要なワイヤ
及びバスドライバの数をできる限り少なくすると共に、
バックプレーン及び大域バスインタフェースの複雑さを
増さないようにし、任意順序決定のためのオーバヘッド
を短縮し且つコストの低減をはかるためには、コンピュ
ータシステムは固定バス割当て方式を使用するのが好ま
しい。バスは、バス最高速度で確実に駆動できる導線の
長さに長さが限定されている平坦なバックプレーンとし
て設計されるのが好ましい。
この実施例では、バス速度は40ナノ秒/サイクルであ
る。コンピュータシステムの1回のサイクルで、128
個のユーザープロセッサは、1回のバスサイクルをそれ
ぞれ順番に有することができる。
この実施例によれば、128個のユーザープロセッサに
40ナノ秒の1サイクルを与えるために、5120ナノ
秒、すなわち5.12マイクロ秒が必要である。
好ましい実施例においては、各ユーザープロセッサはサ
イクルごとに4バイトを転送することができるので、プ
ロセッサごとの総データ転送速度は毎秒的780.00
0バイトとなる。
個々のユーザープロセッサが大域バス24に対するアク
セスを許可される順序は、バスアービトレータ85(B
O8S)により制御される。パスアービトレータ35は
独自のプロセッサと、高速RAMと、R8−232など
の標準形直列入出力機構とを有する。コンピュータシス
テム8におけるスペースの割当てを改善するために、バ
スアービトレータ35はワークステーション用入出力ボ
ード12の一部になっている。
コンピュータシステムのメモリはサイクル動作を実行す
るのにバスより長い時間を要するので、バスを最高速度
で動作させるために、メモリはインタリーブされる。こ
の方式を支援するため、プロセッサボードはそのメモリ
アクセスの順序をメモリバンクに従って決定する。ただ
し、を用件を最大にし且つデータの一貫性を得るために
、パスアービトレータは、各マルチプロセッサボードが
連続するバスアクセスによって連続するメモリバンクへ
のアクセスを果たすように、許可順序を決定する。バス
におけるいずれか1つのクロック周期の間に、いずれか
1つのメモリバンクが読取り又は書込みのために利用可
能となることが保証される。実際には、利用可能な状態
にあるバンクは多数存在するであろうが、システムは、
予測しうる性能を確保できるように、所定の1つのバス
サイクルに対して特定の1つのバンクへのアクセスのみ
が許可されるという規則を強制的に実現する。好ましい
実施例では、メモリが1サイクルに約200ナノ秒を要
し、基本バスサイクルは40ナノ秒であるので、メモリ
は8種類の方式でインタリーブされ、8回のバスサイク
ルは合わせて320ナノ秒のメモリサイクル時間を費す
ことになる。
このように、さらに追加された120ナノ秒の時間に、
誤リスクラビング及びロックされた更新のためにバスサ
イクルごとに読取り/変更/@込みを実行する。
プロセッサボード30は、第2図に示されている。
このボードは4つのユーザープロセッサ75(PUP)
を含むが、詳細に図示されているのはその1つだけであ
る。PUP75は、Motorola 88030集積
回路マイクロプロセッサなどのCPU80と、通常は4
メガバイトの容量を有する局所RAMメモリ88と、高
速RAM89と、浮動小数点装置81とをそれぞれ有す
る。局所バス83はPUPの機能装置を互いに接続する
と共に、PUPをインタフェース85を介してEXIM
バス87に結合する。
各PUP75はバスインタフェースプロセッサ(B I
 P)バス97に結合され、さらには、CPU96と、
RAM108と、ROM102とから構成されているバ
スインタフェースプロセッサに結合される。バスインタ
フェースプロセッサはPUP75との間の、特にそのR
AM88との間のデータの転送を制御する。BIPバス
97はインタフェース99によりEXIMバス87に結
合される。図示される実施例の場合、CPU9Bは、R
AM103と、ROM 102とを有するMOtOrO
Ia 138020マイクロプロセツサである。ROM
102は初期プログラムローダと、BIPデバッガとを
含む、リスト駆動DMAコントローラ104はBIPバ
ス97と、E X I M IJストメモリ106とに
結合される。EXIMリストメモリ108はインタフェ
ース100を介して大域メモリバス24にも結合される
。このメモリ106は、コントローラ104を使用して
、データ及び大域メモリアクセスのアドレスを記憶する
ランダムアクセスメモリである。BIPバス97に結合
する直列診断チャネル105も設けられている。
システムに電力が供給されると、バスインタフェースプ
ロセッサのROM102に記憶されているプログラムは
各P U P 75をリセット状態に保持され、その間
、CPU9Bにより、大域メモリバス24を介して、R
AM88にリフトウェアがロードされる。初期プログラ
ムがP U P 75にロードされた後、CPU9Bは
リセット線を解放し、PUP75は動作し始める。
ユーザープロセッサ75と、CPU96は、エクスポー
ト又はインポートされた記憶語ごとに、その大域メモリ
アドレスと、その値と、データの流れる方向及び転送の
種類を制御するためのビットとを含むEXIMリストを
、メモリ106に維持している。この情報は大域メモリ
との間の読取り及び書込みと、プログラムセル間の情報
転送とに利用される。好ましい実施例においては、EX
IMリストメモリ106は32ビツトのデータ語と、4
0ビツトの大域メモリアドレスと、状態フラグとを含み
、PUPごとに18384回分の1語トランザクション
、すなわち、プロセッサボード30ごとに8’5538
回分のトランザクションを記憶できる容量を有する。
EXIMリストは、通常、セルごとに1θ回分のエクス
ポートと、8回分のインポートを最大限保持する。イン
ポートとエクスポートのリストは大域バスインタフェー
スの順序で分類されているので、バスサイクルがバスア
ービトレータにより利用可能にされるのに従って、バス
サイクルを有効に使用することができる。リストは、シ
ステムが、システムの1回のサイクル(1フレーム)の
間にリストを更新する必要なく、そのサイクル中にプロ
セッサボードに対し利用可能となった全てのバス転送サ
イクルを利用できるようなサイズを有する。
CPU9Bは大域メモリバス24への転送をセットアツ
プするが、転送は余りに急速に起こるので、CPU9B
はそれには直接関与しない。従って、CPU9Bは、E
XIMリストメモリ106のEXIMリストにより駆動
されるDMAコントローラ104を使用して、大域メモ
リと通信する。リスト駆動DMAコントローラ104は
、CPU9Bによる直接干渉を受けずに、大域メモリと
EXIMリストメモリとの間で転送を実行する。
各CP096は、入出力ボード12.18及び22のそ
れぞれに配置されたメモリの中にメイルボックス40を
保持している。CPU96のそれぞれのメイルボックス
に適切な指令が与えられると、ワークステーション10
又はホストコンピュータ16は、それぞれ対応するCP
U9(iの局所メモリに新たなプログラムをロードする
こと、変数又はプログラムセルをイネーブル/ディスエ
ーブルすること及びデバッグ機能を実行することを各C
PU96に報知することができる。
システムは、CPU9Bの直列チャネルに結合される直
列診断ポート105を介してデバッグされることができ
る。好ましい実施例のデバッガは、本発明のマイクロプ
ロセッサシステムの環境の下で動作するように必要に応
じて変形されてはいるが、標準形Motorolaデバ
ッガに基づくものである。
ワークステーションlOは、CPU9[iが活動状態に
あることを確保すると共にエラーメツセージを受取るた
めにCPU96をポーリングするとりう別個のタスクを
維持する。
マイクロプロセッサボード30のさらに詳細なブロック
線図は第3図に示されている。上述の機能装置に加えて
、ボードは、ボードの状態を視覚表示するための発光ダ
イオード(LED)114を駆動する診断レジスタ11
3と、適切なボード動作を得るためのタイミング信号を
発生する並列インタフェースタイマー110とを含む。
バスコネクタ112は、ボードを大域メモリバス24に
結合するために設けられている。
PUP75は第4図にさらに詳細に示されている。RA
M88はシンドロームレジスタ114と、誤り修正コー
ド(ECC)チップ115と、RAMプレーン116と
、RAMアービトレータ117と、RAMコントローラ
118と、アドレスマルチプレクサ119とを含む。
BO35ボードと呼ばれる入出力ボードにはバスの優先
順位の決定と、システムの制御とを実行する。このボー
ドは第5図に示されている。局所BO35バス120は
CPU122と、ROM124と、ダイナミックRAM
12Bと、浮動小数点装置(FPU)12gとに結合さ
れる。このバスは直列インタフェース180と、時刻機
構132と、2並列入出力部134とにさらに結合され
ている。システムの大域メモリの一部であるメモリ13
5は局所BOSSバス120に結合されると共に、バッ
ファ13Bを介して大域メモリ24に結合される。メモ
リ135は、このメモリへの遠隔アクセスを実行するた
めに遠隔CPUにシステムを接続することができるメモ
リアクセスインタフェース(MA 103gを介してさ
らに結合されている。局所BOSSバス120に結合さ
れるバス許可リスト140は、信号ドライバ142を介
して、大域メモリバス24に許可を与える。バスタイミ
ング発生器144は、クロック146の制御の下に、バ
ス許可リスト+40及び信号ドライバ142にタイミン
グ信号を供給する。
BOSSボードの識別は、バッファ14gを介してBo
ss  IDバス150へ搬送される識別データにより
行われる。直列インタフェース152は局所Bossバ
ス120をバッカーチャネル154に結合する。デバッ
グを目的としてプログラマ−がCPU122及びその関
連メモリにアクセスできるようにするため、公知の構成
に従って、大域メモリバス24、BOSS  IDバス
及びバッカーチャネル154は、通常、BO35ボード
が接続されているバックブレーンに設けられる。
好ましい構成のメモリボード26は第6図に示されてい
る。メモリは、大域メモリバスからバスコネクタ201
を介してデータと、アドレスとを受信する8つのメモリ
バンク200から構成されている。
下位アドレスビットは、バンクアドレス発生器202を
介して、メモリバンクに結合されたバンクデコーダ20
3に供給される。メモリバンクはマルチプレクサ204
を介して制御論理205にも結合される。制御論理20
5には、クロックバッファ206を介して、クロック情
報が提供される。アドレス論理は基底アドレスレジスタ
207と、アドレス比較器208と、スロットセレクタ
209と、スロット比較器210とを含む。ID  R
OM211はメモリボードの識別データをバッファ21
1を介して提供し、このデータはBO35ボードへ搬送
される。
メモリバンク200の1つが第7図にさらに詳細に示さ
れている。メモリはデータメモリ220と、検査ビット
メモリ221とを含む。データメモリは、通常、1メガ
ビツト又は4メガビツトのチップから構成される。メモ
リアドレスは大域メモリバスからバスコネクタ201を
介してアドレスレジスタ222及びマルチプレクサ22
3に供給される。メモリの再生は再生カウンタ224に
より制御される。
データは、バスからデータレジスタ225に供給された
後、機能デコーダ226及び演算論理装置227にさら
に供給される。誤りの検出と修正はECC228により
実行され、ECC228は新たな検査ビットを検査ビッ
トメモリ221に供給する。メモリ220及び221は
バッファ229を介しテECC230に結合されている
。データはバッファ229がらレジスタ231に供給さ
れた後、システムバスに印加される。誤り表示はF C
C230からレジスタ231に供給された後、同様にバ
スに印加される。メモリの動作は監視されており、メモ
リにおける誤りのシンドロームは、レジスタ232を介
してシステムバスに供給されるシンドロームデータによ
り表示される。応答エンコーダ233は実行されるべき
機能に対する応答コード、すなわち、通常サイクル完了
、支援なし機能、バンク使用中及びメモリありを発生す
る。
本発明の特徴の1つは、メモリがALU機能を含んでい
ることである。機能コードはEXIMリスト中のアドレ
スと関連しており、それらのコードはメモリ語に対して
実行されるべき演算を指定する。書込み動作の場合、メ
モリにデータを追加するために、加算機能を提供するこ
とができる。
あるいは、適切な機能コードにより別の論理機能又は演
算機能を提供することも可能である。読取り動作の場合
は、データを特定の記憶場所から読取ること、及びその
記憶場所でデータを更新することができ、それにより、
更新時間の短縮をはかれる。この方法によれば、ロック
されたバスを使用する必要がない。アドレスと関連する
機能コードは、通常の読取り/書込みを実行すべきか又
は特殊なALU機能を使用すべきかを指定する。
1例を挙げると、演算論理装置227はシーケンサと、
事象カウンタとを構成することができる。
シーケンサの値が事象カウンタの値と等しければ、タイ
ルの動作に関して、処理モードが開始される。
シーケンサの値が事象カウンタの値と等しくなければ、
事象カウンタの値がシーケンサの値と等しくなるまで事
象カウンタはサイクルごとに監視され、2つの値が等し
くなった時点で、処理モードが開始される。処理終了後
、タイルによるアクセスのためにアクセス可能である次
の値を指示するために、事象カウンタはシーケンサの次
の値まで増分される。このようにして、任意の数のタイ
ルが同時に実行中の状態をとり且つ事象カウンタの資源
に対するアクセス又は事象カウンタにより制御される装
置に対するアクセスを共用することが可能になる。
新規なメモリは、1群のタイルに分割されたプログラム
に対して、その終了を配分することができる。演算論理
装置227により制御されるメモリの中のカウンタは、
特定の1つのプログラムに関して動作中であるタイルの
数のカウントを維持する。各タイルがそのタスクを完了
するごとにカウンタは減分されてゆき、ゼロカウントに
達すると、全てのタイルがタスクを完了したことを示す
表示が発生される。さらに、メモリシステムを利用して
、1つのプログラムの各部分をタイルに配分することも
できる。プログラムの各部分にはシーケンス値が割当て
られており、それぞれのタイルは、利用可能なシーケン
ス値を得て、それに関連するタクスを実行する。その後
、タイルは、その関連タクスに関して次に利用可能なシ
ーケンス値を得ることができる。また各タイルは、タイ
ル群の動作又は大域メモリ内のデータのシーケンスを規
定するために、アドレスを介して増分するように動作す
ることも可能である。
新規なメモリシステムでは、メモリの副語更新も可能で
あり、これは入出力動作又は図形表示動作に有用である
ことが多い。この手法により、1つの語のいくつかの部
分を、その語の他の部分に影響を与えずに、予測性をも
って更新することが可能になる。演算論理装置227は
、1つの語のいずれか1つのビット又はいずれか1つの
ビット群に対し論理機能を実行することができる。
第8図は、大域メモリの読取り動作と、書込み動作とを
示すタイミング図である。各プロセッサは、その先のサ
イクルの結果をエクスボートするため及びその次のサイ
クルに必要なデータをインポートするために、大域メモ
リバス24に対する十分なアクセスを与えられる。バス
は高速であるので、各プロセッサは、バスアクセスを得
る前に、そのデータ転送をセットアツプしなければなら
ない。効率を最大にするため、適正な時点でデータをバ
スに伝送する準備が整っていないプロセッサは順番が回
ってきても、それを利用しない。
第8図Aは、各サイクルが約40ナノ秒を要するバスサ
イクルを示す。1つのプロセッサとの間で実行されるデ
ータ転送は3回のバスサイクルを必要とする。第1のバ
スサイクルの第1のサイクル端A1で、0番のプロセッ
サは、バスアービトレータ35により1つのバスサイク
ルを許可され、第8図Bに示すサイクルB−0の間に、
アドレス及び指令を受信する。バス入力信号は、ゲーテ
ィング又は復号を経ずに、バスクロックの活動端で、各
プロセッサボードにあるレジスタにストローブされる。
第2のパイサイクルの活動端A2において、プロセッサ
は、第8図Cの周期C−Oの間の実際のバス許可を受取
るが、指令とアドレスを復号するための時間を依然とし
て必要とするので、そのためにこのサイクルを使用する
ことができる。第3のバスサイクルでは、プロセッサは
、転送されてきた指令とアドレスを復号してしまってお
り、第8図りの時間D−0の間にトランザクションを実
行する。シーケンス中の次のプロセッサに関しては、1
サイクルずつ遅れてこのプロセスが繰返される。転送サ
イクルの3つの段階を重複させることにより、個々のプ
ロセッサはさほどの高速で動作できなくとも、コンピュ
ータシステムは40ナノ秒ごとに新たなバスサイクルを
開始することができる。
プロセッサから大域メモリにデータを書込む動作は1バ
スサイクルを必要とし、その時間中に、データは、プロ
セッサと関連する高速レジスタから、適切な大域メモリ
ボードにある高速レジスタへ転送される。次に、続く7
つのバスサイクルの間に、データはメモリボードの高速
レジスタから関連する記憶場所に書込まれる。
大域メモリからのデータの読取りはアドレス部分と、デ
ータ部分とに分かれており、従って、2つの異なるバス
サイクルの一方の後半と、他方の前半との間に、データ
を転送することになる。1回のバスサイクルでメモリを
読取るのは不可能であるので、データは8回のバスサイ
クルを経た後に戻される。第8図に示すように、第1の
バスサイクルの間、入城メモリ語のアドレスは、サイク
ルD−0中に、プロセッサと関連する高速レジスタから
メモリボードの高速レジスタへ転送される。
メモリは、8サイクル分の長さを有するサイクルE−0
の間にデータを得る。メモリがサイクル動作を終了し、
データが利用可能になると、クロックA−4において別
のバスサイクルがメモリボドの高速レジスタからプロセ
ッサと関連する高速レジスタヘデータを転送する。これ
が行われるのが周期H−00間である。
全ての大域データが一貫性をもって更新されるよう保証
するため、他の全てのプロセッサがそれらのフレームを
終了するまで新たなタイミングフレームを開始するプロ
セッサが現われないように、プロセッサは同期して動作
する。単一のセルから大域メモリへの複数語書込みはご
く微細なものと見え、そのセルは、他のいずれかのセル
がデータをアクセス可能となる前に、書込み動作を実行
したかのように思われるに相違ない。2語以上の転送を
要求する変数は、いずれも、利用可能な1サイクルをス
キップすることなく更新されなければならない。複数語
の変数は、その目的のために利用できるあらゆるサイク
ルを使用して、指定の順序で更新されなければならない
システムの時間フレームは、1フレームが1秒の1/6
0、すなわち約16ミリ秒で終了するように設定される
。従って、1フレームごとのバスサイクル数は約400
,000である。これらのバスサイクルは128個のプ
ロセッサに均等に配分されるため、各プロセッサはフレ
ームごとに、3.120回のメモリ読取り又はメモリ書
込みを実行することになる。
この3.120回の読取りと書込みは各プロセッサと関
連する128個の処理セルにより共用されるので、それ
ぞれのセルはフレームごとに24回のバスサイクルを利
用することができる。バスサイクルごとに4つのバイト
を転送可能であるので、各セルはフレームごとに合わせ
て96のバイトをインポート又はエクスポートすること
ができる。
全てのセルはフレームごとに同じ組の値を見ていなけれ
ばならないことから、データ緩衝が必要になる。1つの
セルが別のセルによりインポートされた新たな値を計算
したとき、その変数をインポートしている全てのセルが
次のフレームまで新たな値を取込まないように、新たな
値はEXIMリストに記憶される。第0番のセルから処
理は開始されるが、このセルの処理中、第1番のセルの
インポートが大域メモリから読取られている。
データのインポートは第2番、第3番等々のセルについ
て継続される。16語分のデータのインホトには1つの
処理フレームの1/128の時間はどもかからないので
、第0番のセルを除いて、各セルのインポートは、その
セルが処理を開始する時点までに利用可能な状態になっ
ている。全てのインポートが完了すると、タイミングカ
ードは大域バスを読取りモードから書込みモードに切替
え、エクスポートを開始する。エクスポートも第0番の
セルから始まる。1つのセルのインポート時間とエクス
ポート時間を合わせた時間は処理時間と同じ長さである
ので、次のフレームまでエクスポートの書込みができな
い最終セルを除いて、セルのエクスポートは、そのエク
スポートがスケジューリングされる時間までは必ず利用
可能な状態で整っている。すなわち、1つのフレームの
開始時には、そのフレーム中にインポートを実行できな
いセルが1つ存在し、1つのフレームの終了時には、そ
のフレーム中にエクスポートを実行できないセルが1つ
存在することがわかる。この状況は第9図に示されてい
る。
本発明のシステムは各PUPの第1番から第128番ま
での128個のセルを支援するが、デバッグ機能及びそ
の他のシステム機能を実行するために使用されるセルが
さらに2つある。第0番と第n+1(この実施例では1
29)番のセルである。これらの付加システムに関して
16のインポートと、8つのエクスポートを通信するだ
けの十分なバス帯域幅はとっであるが、これらのセルの
インホト及びエクスポートは他のセルとは異なる。
1フレームの中間部近くのタイミングのさらに詳細な図
が第10図に示されている。第1のインポートデータは
、第1のPUPについては第0番の大域メモリバンクか
ら得られる。第2のPUPの第1のインポートは第1番
の大域メモリバンクから得られ、第3のPUPの第1の
インポートは第2番の大域′メモリバンクから得られる
。これ以降のPUPについても同様である。第0番のセ
ルは、フレームの開始時に第1番のセルを第0番の大域
メモリバンクに同期させるために必要な何れかの大域メ
モリフレームを与えられ第0番のセルのインポートの残
りは終了時に到達する。第1番のセルを第0番のPUP
の第0番のバンクと同期させるためのインポートは不要
であるので、第0番のセルはフレームの開始時にはイン
ポートを得す、フレームの終了時に全てのインポートを
得る。
第1番のセルを第1番のPUPの第0番のバンクと同期
させるためには7つのインポートが必要であるので、第
0番のセルはフレームの開始時に7つ、終了時に1つの
インポートを得る。エクスポートに関しても同様の同期
が実行される。第0番のセルはインポートにおけるバン
クのスキューを吸収し、第129番のセルはエクスポー
トにおけるバンクのスキューを吸収する。
コンピュータシステムが通電されると、バスインタフェ
ースプロセッサ(CPU)9BのROM102に記憶さ
れているプログラムは各P U P 75をリセット状
態に保持し、その間、CPU96により大域メモリバス
24を介してPUPの局所RAM88にソフトウェアが
ロードされる。PUP75の初期プログラムがロードさ
れた後、バスインタフェースプロセッサ9Bはリセット
線を解放し、プロセッサはランし始める。
P U P 75とCPU9Bはエクスポート/イン子
ト(EXIM)  リストメモリ106内のEXIMリ
ストを維持する。このリストは、エクスポート又はイン
ポートされるメモリ語ごとに、その大域メモリアドレス
と、その値と、データの流れの方向及び転送の種類を制
御するためのビットとを含む。
この情報は、大域メモリへの書込み及び入域メモリから
の読取りを実行するためと、プログラムセル間で情報を
転送するために使用される。好ましい実施例においては
、リストは32ビツトのデータ語と、40ビツトの大域
メモリアドレスと、いくつかの状態フラグとを保持し、
PUPごとにIL384回の1語トランザクション、す
なわち、プロセッサボードごとに85,538回のトラ
ンザクションを記憶するのに十分な大きさを有する。エ
クスポート/インポートリストは、通常、セルごとに1
6個までのインポートと、8個までのエクスポートとを
保持する。
第11図に示すように、本発明のシステムを3種類のl
10(入出力)チャネルにより外部装置及び外部システ
ムに結合することができる。直列チャネルは、R523
2、イーサネット、5C5Iなどの周知のプロトコルを
介して直列の相互接続を行う。並列チャネル302は大
域メモリから直接に高速並列相互接続を行う。バスチャ
ネル304は、本発明の譲受人が製造しているバスリン
クシステムとして知られる市販の製品を介するなどして
、システムメモリへの共用アクセスを可能にする手段を
構成する。並列チャネル302は実時間ビデオアクセス
及び高速データベースアクセスを支援する。このチャネ
ルはコンピュータシステム8の大域バスプロトコルに類
似するプロトコルを伴なう32ビット並列インタフェー
スであって、バスの最高速度で大域メモリとの直接通信
を可能にする。
セル資源を割当てる方式を第12図に示す。第12図の
例では、コードは第1番のプロセッサの初めから7つ目
までのセルと、第2番のプロセッサの第1.第4及び第
5のセルと、第3番のプロセッサの第2.第3.第5.
第6及び第7のセルに書込まれている。以下のプロセッ
サについても同様である。セル内のタイルにより使用さ
れる時間をセル内部の矢印の長さで示す。
第12図の例で、第2番のプロセッサの第1のセルのタ
イルは、システムフレームごとにその変数を発生するの
に他のセルより長い時間を必要とする。この例では、セ
ル3つ分の時間が割当てられている。このように、タイ
ルは3つのセルを使用するので、第2のプロセッサは通
常の127個の後続セルではなく、125個のセルだけ
を割当てられていることになる。
コンピュータシステムのプロセッサは、C又はPa5c
alなどの標準コンピュータ言語を使用して動作するこ
とができる。しかしながら、コンピュータシステムをさ
らに効率良く利用するためにバラセルと呼ばれる独特の
プログラミング言語が開発されており、これは本発明の
一部を成している。
バラセルは、一般のコンピュータ言語で使用するプログ
ラミング構文ではなく、普通の英語文の構文を使用する
。代数構文を任意に英語文と混ぜても良い。普通の構文
を使用するため、語は文脈に応じて複数の定義を与えら
れ、コードを複数のブロックにグループ分け、すなわち
分割するために句読文字に依存するのではなく、バラセ
ルエディタは色、陰影、ボックス形、線及び字下げなど
の直観的図形を使用する。
バラセルプログラムは多数の互いに独立したタイルと呼
ばれる単位から構成され、タイルはパラセルエディタに
より維持される。タイルは単位として操作できる最小の
プログラミングエンテイテイー(粒子サイズ)であり、
このプログラミングエンテイテイーは、そのタイルプロ
グラムに従って動作するセルに結び付けられる、すなわ
ち結合される。特定の1つのタイルは特定の1つのセル
に結合され、タイルコードはそのセルに同期的に結合さ
れる。単一のタイルを1つ又は複数のセルに結合するこ
とができ、複数のタイルを1つ又は複数のセルに結合す
ることもできるが、所定の結合セルに対する各タイルの
動作は、1フレーム内の所定の時間スロットの間に行わ
れる。このように、所定のプロセス又は動作を実現する
ために、所期の方式でタイルをセルに割当てることがで
きる。
タイルは、それぞれ、大域メモリからデータをインポー
トし、特定のタイルコードに従ってデータを変形し、そ
の結果を大域メモリへエクスホトして戻す。タイルのこ
の動作は第13図に示されている。概念からいえば、タ
イルを、入力データを出力データに変換する1つの変形
であると考えることができる。タイルは直接相互に作用
せず、大域メモリを介してのみ、別のタイルにより発生
されたデータをインポートし且つ別のタイルにより処理
可能な結果を発生することにより互いに作用する。この
相互作用は第14図に示されている。
各タイルは連続して、他のタイルのコードと並行してラ
ンする。各タイルは1つ又は複数のステトメント又は規
則をランすることができ、タイルの種類は種々異なって
いて良い、タイルの種類をあらかじめテンプレートによ
り規定しておくので、ユーザーは、テンプレートのブラ
ンクを埋めることにより、システムをプログラムするこ
とができる。
タイルの種類の1つは、関連するセルにより実行される
べきイフゼン(if−then)ステートメント、すな
わち規則を提供する規則タイルである。セグメントのイ
フ(if’)条件の数及びゼン(then)アクション
の数は任意である。別の種類のタイルは、特定の値に関
して探索を指定する能力を与える探索タイルであり、人
工知能などの目的のために推論エンジンに使用されるこ
とが多い探索メカニズムを構成する。探索タイルは、シ
ステムのメモリスペースの限定された1部について又は
メモリスペース全体にわたって動作させることができる
さらにニューロンタイルを使用することもでき、この場
合には、入力は入力関数に従って処理され、続いて出力
関数が発生される。比例積分微分(PID)ループもタ
イルの1種として利用できる。このPIDループは、一
般に、製造管理などの連続工程の制御に使用されるもの
で、ループ内で設定されたパラメータに基づいて1工程
のパラメータを調整する方法を実施する。PIDループ
タイルは、変数の値の調整のために、ユーザーから変数
へのアクセスを可能にする。PIDループタイルを使用
して、ユーザーはいくつもの工程制御システムのシミュ
レーションを実際の設置に先立って構成し、制御ループ
を改善することができる。歴時間及びカウントダウンタ
イミングを示すためにタイマータイルを使用することも
てきる。
カウンタがプリセット値、すなわちゼロに達したとき、
タイル出力によって別の事象をトリガすることができる
単一の機能を得るために複数のタイルを1つのグループ
にまとめることが可能であり、タイルグループを独自の
インポートとエクスポートを有する単一のタイルとして
扱えば良く、実際に単一のタイルのように見える。この
ことは第15図に示されている。第15図において、タ
イルクラスタ360は、大域メモリからのインポート及
び大域メモリへのエクスポートの集合体としてワークス
テジョンのスクリーンに表示されている。ラベル5を付
されたタイルクラスタ360はラベル1から4までを有
するタイル362から構成されており、ユーザーが表示
されたタイルクラスタの「オプン」を選択しない限り、
それらのタイル362は表示装置には示されない。適切
なタイルをクラスタ化することにより複雑な機能を実現
でき、タイルライブラリーから、必要に応じて、あらか
じめ規定されたクラスタを呼出すことも可能である。
第16図は、単一のセルに割当てられている4つのタイ
ルが実行されることを示す。実行後、タイルは自動的に
シーケンスの終端位置へ移行する。
第16図によれば、第1のフレームの間に第1のタイル
が実行されている。第2のフレームでは第2のタイルが
実行中であり、第1のタイルはシケンスの終端へ移行し
ている。第3のフレームの間に第3のタイルが実行され
、第2のタイルは代わってシーケンスの終端につく。タ
イルは、セルごとに、ラウントロピン方式で実行し続け
る。
第17図は、タイルの1つがその実行に2フレ一ム以上
を要求する場合にタイルがどのようにスケジューリング
されるかを示す。タイルの斜線領域は、タイルの実行中
の部分を示す。第1のフレームにおいては第1のタイル
が実行中である。第2のフレームでは、第2のタイルの
斜線部分が実行中である。第3のフレームでは第1のタ
イルが再び実行中である。第4のフレームでは、第2の
フレームの間に実行しなかった第2のフレームの斜線領
域が実行中である。
システムのセルは、コードのいずれかのラインが実行さ
れているか否かにかかわらず、一定の資源割当てを得る
。セルにコードが入力されなければ、すなわち、セルに
結合されるタイルがなければ、セルはコードをランせず
、セルにコードが人力されるまでゼロ値をインポートし
続け、ゼロ値をエクスポートし続ける。指定のタイルシ
ーケンスに従って、セルへの最終書込みが第1位にあり
、フレーム中の最終セルが第1位にある。
セルはデータベースに対し並列してアクセスしくこれを
パラベースという)、単一のフレームの間にデータをイ
ンポート又はエクスポートすることができる。第18図
に示すパラベース大域メモリデータブロックは、メモリ
のブロックへのアクセスを効率良く行うだめのヘッダを
含む。メモリブロックは、通常、4キロバイトの長さで
ある。各セルは、他のどのアクセスとも無関係に、イン
ポート限界内でデータを読取ることができる。読取りは
大域メモリからの1回の取出しとして扱われ、検査は実
行されない。同じようにして短い書込みが実行される。
書込みは変数と、異なるフレームの間に異なるタイルに
より書込まれた他のデータとの相関を妨げるおそれがあ
るので、書込み構造は読取りより幾分か重要である。し
かしながら、実時間システムへの適用の場合、データの
相関は一般に重要ではない。構造全体を読取る又は書込
むときには、複数回の読取りを複数のフレーム時間にわ
たり非同期的に連続して実行することができる。一貫性
は1つのフレームの中でのみ維持される。フレーム時間
を越えると、その項目について書込みが進行中でないこ
とを確認するために、読取りはヘッダを検査する。書込
みが進行中でなければ、読取りシステムは[読取り進行
中」の警告をトグルし、次にデータブロックを読取る。
1フレームの開始時にセルに結合されている全てのタイ
ルは同時にインポートを受取り、計算を並列して処理し
、フレームの終了時にエクスホトを発生する。パラセル
プログラムは、特定のセルと関連するタイルの集合体で
ある。1つのセルと関連するタイルは一度に1つずつそ
のセルに結合され、1フレーム中のそれぞれ対応する時
間スロットの間にランする。
1つのセルの中におけるタイル実行スケジュルは、セル
と関連するタイルの全てがラウントロピンの順序でラン
する(第16図を参照)ために、そのセルと関連するタ
イルがいくつあるかによって決まる。1つのセルと関連
するタイルが1つしかなければ、そのタイルはセルに永
久に結合され、そのセルに割当てられた実行時間の全て
を受取り、60ヘルツでランする。1つのセルと関連す
るタイルが2つある場合には、各タイルは1つおきのフ
レームでセルに結合され、30ヘルツでランする。
1つのタイルが2つ以上のセルと関連していても良いが
、その場合、タイルは、第12図に示すように、関連す
るセルのそれぞれから実行の順番を受取る。
タイルはそのインポートと、状態と、計算と、エクスポ
ートと、グループと、スケジュールとにより規定される
セルはセルメモリと、セル時間と、セルインポートと、
セルエクスポートとにより規定される。
セルメモリは、セルと関連するタイルが利用できる局所
メモリの量である。セル時間は、各フレーム中に結合さ
れたタイルに割当てられる処理時間である。セルインポ
ートと、セルエクスポートはセルに割当てられるEXI
Mリストにより指定され、結合されているタイルにより
使用される。フレーム中に特定の1つのタイルがランさ
れると、そのタイルは、セルに割当てられているインホ
ト、エクスポート及び処理時間の全てを自身のために利
用することができる。EXIMリストメモリ106(第
2図)に保持されているセルのエクストポートとインポ
ートのリストは動的であり、1つのセルにより処理する
ために異なるタイルが結合されるにつれて自動的に変化
してゆく。
基本タイルは1つのセルに静的に結合され、そのセルの
全ての資源を受取る。基本タイルの数はセルと同数に限
定されている。本発明の構成によれば、プロセッサボー
ドごとに512個のセルがあり、プロセッサボードは3
2枚まで使用できるので、基本タイルの最大数は1L3
84である。
前述のように、同じプロセッサの1つ又は複数のセルと
関連するタイルグループを形成するようにタイルを組合
せることができる。グループにまとめられたタイルは、
そのグループが関連する全てのセルの資源を全て使用し
て良い。たとえば、1つのタイルが、通常の16語のイ
ンポートと、8語のエクスポートではなり、30語のイ
ンポートと、12語のエクスポートを要求する場合を考
えてみると、このタイルを2つのセルと関連するグルー
プの形にすることにより、タイルがランされるたびに、
通常の2倍の数のインポート及びエクスポートと、通常
の2倍の長さの処理時間とがそのタイルに与えられる。
すなわち、タイルグループが正規のセルの2倍の大きさ
のセルでランされているかのような効果が得られる。
通常、タイルの状態は全てのタイルに対して隠されてお
り、タイルは並行して実行しているかのように扱われる
。タイルシーケンスとして知られる特殊なタイルグルー
プは、正規の規則を順序正しく侵入することができる。
タイルシーケンスに含まれるタイルは、同じフレームの
中で、先行するタイルから状態情報を読取る。さらに、
シケンス中のタイルは、1つのフレームの中で先のタイ
ルにより計算された変数を参照したとき、それが現在フ
レームでそのタイルシーケンスが実行した結果となるよ
うに保証するために、そのフレームの間にユーザーが指
定した順序で実行することができる。これにより、タイ
ルは、後にタイルに供給される値を、次のフレームを待
つ必要なく、同じフレームの中で計算することができる
タイルシーケンスの動作を第19図に示す。この例では
、1フレームの中でセルAからEが動作している。通常
の動作では、矢印350により示すように、第1のフレ
ームでセルAがデータをエクスポートし、そのデータは
第2のフレームにおいてセルEヘインポートされる。ま
た、矢印352により示すように、セルEは第1のフレ
ームでデータをエクスポートすることもでき、そのデー
タは第2のフレームに入ってセルAヘインポートされる
さらに高速の動作の場合、セルAは、矢印354により
示すように、第1のフレームの間にセルEヘデータをエ
クスポートすることができる。このように、シーケンス
中のタイルは次の時間フレームを待たずに後続するタイ
ルへデータを供給できるのである。同じフレームの中で
後続タイルに供給されるデータは、大域メモリに記憶さ
れず、フレームの終了時には放棄されるという点て、例
外的(パイプ化されたデータ)な変数である。タイルは
、値を標準エクスポートとして大域メモリに書込むこと
により値を保持しておいても良い。パイプライン変数は
、データ辞書における特別の表記により規定される。そ
のような変数が辞書に記入されると、パイプライン変数
は他の変数と全く同様に参照される。ただし、混乱を避
けるために、エディタはパイプライン変数の名を異なる
色で又はその他の明確に識別しつる提示方法で表示スク
リーンに表示する。パイプ化された変数はシケンス外の
タイルをアクセスすることはできないが、シーケンス中
のタイルは、いずれも、その変数を一般的にアクセス可
能な入城変数に複写して良い。
タイルシーケンスは、2つ以上のタイルが同じ変数に対
してエクスポートアクセスを有するときに「最新の書込
みが最優先」となるように決定される。2つ以上のタイ
ルが同じ変数を更新しなければならない場合、タイル動
作の順序が割当てられ、所期のエクスポートが常に発生
されるように順序づけられたエクスポートを発生するた
めに、それらのタイルは関連するセルに割当てられる。
EXIMリストは、エクスポートとインポートのシーケ
ンスを規定する。所定のタイルが「最優先」にならなけ
ればならないときには、タイルのセルへの結合の順序は
その最優先を確保するように指定される。
タイルは、ワークステーションにより維持される配分タ
イルデータベースに記憶される。それらのタイルはタイ
ルエディタにより表示及び変更が可能である。ユーザー
は独力で、すなわち、バラセルライブラリーからのタイ
ルテンプレートを利用し、用途に適合するようにテンプ
レートを変形することにより、タイルを生成することが
できる。
ナビゲータと呼ばれる図形インタフェースは、特定のタ
イルにおけるコードに対してアクセスを行うために、特
定のタイルまで拡張可能な様々な詳細のレベルで小さな
タイルグループの表示を可能にすることにより、タイル
データベースを管理し且つ検査する手段である。ナビゲ
ータは、3X3のタイルマトリクスを複数レベル含むピ
ラミッド形構造を有する。このように、バラセルプログ
ラムは様々なレベルのタイルグループとして編成されて
、プログラムを階層の形で見られるようにする。このナ
ビゲータツールは、本発明のシステムを構成するプロセ
ッサセルの数が多いために必要とされる。この構成によ
れば、それぞれが任意の数のタイルをランすることがで
きる16,384個のプロセッサセルを利用することが
でき、ここに開示するナビゲータツールがないと、この
ように多数のタイルや変数によって、システム及びプロ
グラムの管理は困難になってしまう。
ナビゲータピラミッドを第20図に示す。図示されるナ
ビゲータピラミッドは、3×3のマトリクス400とし
て配列された最上レベルのタイルを含む。タイルの1つ
401は、中央レベルに表示される別の3×3マトリク
ス402に拡張されている。
このマトリクスは、下方レベルに示されるさらに別の3
×3マトリクス404に拡張されたタイル403を含む
。各マトリクスの3×3個のタイルをワークステーショ
ン10に表示することができる。
それぞれの表示タイル、すなわちウィンドウはコード又
は別のレベルのマトリクスを含む。各レベルのピラミッ
ドは別の3X3マトリクスから成ることかでき、最下位
レベルのマトリクスはタイルのみを含む。このレベルで
は、それらのタイルのコードが見られる。各マトリクス
の全ての要素が情報を含む必要はなく、マトリクスの中
にブランクの要素があっても良い。
第21図に示すように、多層のピラミッドを表示するこ
とができる。第21図では、次の層に拡張されるタイル
をそれぞれ強調して示している。このようにして、ピラ
ミッドの各層を通るスレッドが図形として表わされる。
第22図は、タイルとそれに関連するセルを立体的に表
わした図であり、それぞれのセルにおいてタイルが使用
する時間の量を示す。各セル位置500は、その位置の
ブロックの高さにより表わされる1つ又は複数のタイル
を有し、各ブロックに付された陰影はそのタイルに必要
な計算時間を表わす。
セルがメモリをどのように使用するかを第23図に示す
。斜線を付したセルは、そのセルについて利用可能なメ
モリが存在しないことを示す。第22図及び第23図の
視覚表示は、タイルの実行及びタイルのセルへの割当て
を管理するのに有用である。
たとえば、セルに関連するタイルが使用するセル時間の
量を表示するために、別の図形表示方法を利用すること
も可能である。
タイルの実行はそれぞれのセル内でラウントロピン方式
で起こる。デバッグを目的として、あるいは、1つ又は
複数のタイルについてインポート及びエクスボートデー
タを変更するために、ユザー側でタイルの実行をトラッ
キングし、それを表示することができる。
ナビゲータは、システムの様々に異なる面をワークステ
ーションのスクリーンを介してユザーに提示することが
できるように、システム内の全ての情報をトラッキング
する完全データベースシステムを含む。
ワークステーション10は、ユーザーがプログラムを書
込み、その実行のためにプログラムをコンピュータシス
テムにロードすることや、プログラムのテキストを変更
することによりコードを編集すること、タイルがどのプ
ロジェクトに属するかを指定することによりコードを管
理すること、変数が参照されるドキュメンテーション及
びタイルのリストを求めることにより変数を発見するこ
と、タイルを1つの表示レベルから別のレベルに移行す
ること、タイルをグループにまとめる又はタイルグルー
プを解体すること、タイルを別のプロセッサに移行する
こと、又はタイルが実行される順序を変更することを可
能にするエディタを提供する。
ワークステーションIOは、変数又は変数群、タイル、
プロセッサ又はコンピュータシステム全体をイネーブル
又はディスエーブルすると共に、ユーザーの入力を修正
するスペルチェックソフトウェアを提供することにより
、パラセルデバッグの制御をも可能にする。また、変数
の値をサンプリングして、プロットし、どのタイルが変
数を変更しようとしていたかを知るために変数が変更さ
れた時点をトラップし、様々なタイルにより使用される
時間及びメモリに関する統計を求め、プログラムがラン
している間、システムハードウェアが正しく動作してい
ることを保証することにより、プログラム動作を監視す
るために、ワークステジョンを使用することもできる。
ユーザーが1つのタイルの内容を編集した後、エディタ
は、自動的に、(1)修正済みタイルをそのソースコー
ドフォーマットからコンピュータシステムにより実行可
能な形態に変換し、(2)新たなタイルコードをコンピ
ュータシステムへ伝送し、(3)適切なプロセッサボー
ドのパスインタフニスプロセッサに、新たなタイルを正
しい記憶場所にロードするよう指示する。新たなコード
がプロセッサにロードされ、実行に向けて準備されてい
る間、コンピュータシステムのサイクルは遅延しない。
第24図に示すように、各タイルは、1から10までの
番号を付されたステートメントを含む。個々のステート
メントは、それ自体、主ステートメントの中の10個の
ステートメントに拡張される。ステートメント番号50
0は、タイル内の場所と関連しており、特定のステート
メントと関連しているのではない。
1つのステートメントは次のような形態をとる。
#名前〔イネーブル条件〕条件・・・アクション(1つ
又は複数の)・・・ 各ステートメントは、そのステートメントのランを可能
にする条件を指定する「イネーブル」条件502を含む
。イネーブル条件は、ステトメントの「イフ」条件50
4におけるイネーブル変数を指示する。名前、イネーブ
ル条件及び条件は、ステートメントごとに任意である。
イネーブル条件が指定されなければ、システムは、イネ
プルされる条件に対してデイフォルト状態にある。
各システムサイクルの開始時に、タイルの全てのステー
トメントの条件が検査されて、イネーブル済ステートメ
ントのリストが作成される。イネーブル条件が満たされ
ているステートメントはイネーブルされ、そのサイクル
の間、ランする。
全てのセルは並列してランするので、全てのステートメ
ントは入城変数に関して同じ値を得る。
変数状態の変化に際して、コード実行を条件づけするこ
とができる。バラセルでは、ユーザーは正と負の端と、
ゼロ状態及び非ゼロ状態とを検出することができる。た
とえば、506で示されるイネーブル条件〔Aがオンす
る〕は、rAJがオフからオンに変化したシステムサイ
クルの直後のシステムサイクルの間にのみ満たされ、「
A」がオフし、再びオンするまで、再度溝たされること
はない。レベルの値がXより大きい場合にイネーブルす
る(1)〔レベル〉X〕 ;レベルの値がXより大きく
なったサイクルの後のサイクルでイネーブルする(2)
〔レベルは〉Xになる〕 ;及びレベルがXからYの範
囲を出た後のサイクルにイネーブルする(3)〔レベル
は範囲X−Yを出る〕などの条件についても、同様の規
則が適用される。
一般に、遷移をイネーブルする条件は、監視される条件
が真になったサイクルの厳密に1つ後のサイクルで有効
になり、その後は、イネーブル条件が少なくとも1回の
システムサイクルについて保持を中止するまで再び有効
にはならず、続いて再び保持状態となる。
いずれのステートメントの「イフ」部分にも、時間によ
って左右される述語が含まれているであろう。ステート
メントの「イフ」部分は、イネーブル条件がイネーブル
されない限り、処理されない。このように、ステートメ
ントの「イフ」部分に述語が挿入された場合、その述語
は、それが満たされているか否かを知るために、サイク
ルごとに検査されるが、「イフ」の中の条件は、ステー
トメントがイネーブルされない限り、検査されない。
タイル全体をイネーブル又はディスエーブルするのに加
え、ユーザーは、1つのタイルの個々のステートメント
をイネーブル/デイスェルプルするために、スロット番
号を参照しても良い。ユザーがステートメントを「ディ
スエーブル」すると、そのステートメントは再びイネー
ブルされるまで実行不可能になる。第24図に示す通り
、ディスエーブルされたステートメントは、ユーザーが
それをトラッキングできるように、異なる背景を伴なっ
てエディタスクリーンに表示される。入城変数を操作す
ることにより、ステートメント相互間のイネーブル及び
ディスエーブルを行うことができる。
ユーザーが1つのタイルに11以上のステートメントを
望む場合には、それぞれのステートメントスロットを拡
張して、さらに10個のスロットを得れば良い。好まし
い実施例においては、これは、所望のステートメント、
すなわちスロット位置へカーソルを移動した後に、カー
ソルマウスボタンを2度押すことにより実行される。従
属スロットはn、1.n、2等々の番号を付され、−次
スロットと同一のイネーブル条件を有する。全てのスロ
ットが使用中であるとき、セルは「充満」状態にあり、
それ以上のステートメントを保持することはできない。
主スロットがディスエーブルされると、エディタは、全
ての従属スロットを同様にディスエーブルすべきか否か
をユーザーに尋ねる。しかしながら、従属スロットの1
つ1つがディスエーブルされる場合には、他のスロット
は影響を受けない。
パラセルはプログラマブル−コントローラにおけるタイ
マー及びカウンタのように動作するルプ構文を支援する
。〔10分間、Aを真にセットせよ〕又は〔5分間待っ
た後、Aを真にセットせよ〕などのステートメントが可
能である。
「待機」指令は、ステートメントからエクスポートされ
た変数がステートメントの終了時まで大域メモリに書込
まれないという点で、一般規則の例外である。ステート
メントが「待機」により一時停止されている場合、「待
機」の前に計算されたエクスポートは、待機が起こった
サイクルの終了時にエクスポートされる。そうでなけれ
ば、5分間のインタバルの終了時まで値は決して大域メ
モリに書込まれず、そのまま据置かれてしまうであろう
。待機ステートメントはこのインタバルの間だけステー
トメントの実行を停止するばかりでなく、待機の前に計
算された変数を、待機の終了まで待たずに、現在のサイ
クルの終了時に強制的に大域メモリに書込ませる。1つ
のセルの1っのステートメントの待機は、他のステート
メントに影響を及ぼさない。
パラセルは2つのクラスのループ、すなわち(1)1回
のシステムサイクルの中で起こるループと、(2)シス
テムサイクルごとに1度起こるルプとを支援する。さら
に、システムサイクルごとに1項目ずつの速度で情報の
集合を探索するループもある。
メモリには、ユーザーにより入力され、著者及び関連タ
イルにより保持される変数を記憶するための辞書が設け
られている。パラセルの用語を語の置換えや、別名の使
用により拡張することができる。パラセルエディタには
未知の語をプログラマ−が入力したとき、エディタは、
その語をエディタが理解しつる用語で定義する機会をプ
ログラマ−に与える。パラセルエディタが理解しうるよ
うに新たな語がプログラマ−により定義されてしまうと
、その定義は、エディタが新たな語を理解することがで
きるように、タイルと関連する辞書に記録される。
ユーザーは既存の語を選択し、それを以前の語の同義語
としてエディタに受入れさせることができる。同義語は
関連名の辞書に影響を及はすのみである。新たな名を既
存の語の同義語として識別すると、新たな名が現われる
辞書記述類と、既存の語が定義されている辞書記述類と
の間にリンクが成立する。
ユーザーは新たな語をあるクラスの一部として指定する
こともできる。クラスは、本質的には、そのクラスの新
たな例をいかにして作成するかを教えるテンプレートで
ある。1例」は、エディタには既に知られている1つの
クラスの新たな対象物を作成する。対象物は大域メモリ
内のスペースを割当てられ、それが固有の対象物でなけ
れば、新たな対象物はそのクラスのメンバーズリストに
追加される。
さらに、ユーザーはクラスを先祖クラス及び属性に関し
て規定することもできる。新たな例を作成するためには
、必要な全ての属性について値を指定しなければならな
い。指定されない属性には、属性がデイフォルト値を有
するか否かに応じて、デイフォルト値が与えられる。
先祖クラスの属性は新たなりラスの属性として包含され
る。属性名の間でコンフリクトが生じれば、先にリスト
アツブされた先祖からの名が修飾なしに使用され、他方
の名はその前にクラス名と、「〉」などの記号とを付す
ことにより修飾される。
属性はデイフォルト値と、それらが索引付けされている
か否かに関して指定される。索引付き属性は、索引付け
されていない属性より速く探索できるであろうが、索引
の作成と維持にはメモリスペースと、処理時間の双方を
費さなければならな最後の特徴として、ユーザーは既存
の例に対して新たな属性を指定することができる。ユー
ザーはクラス名と、デイフォルト値と、属性が要求され
るか否かと、属性が索引付きであるか否かとを指定し、
属性は指定されたクラスに追加される。
これは、それ以降の例が新たな属性を伴なって作成され
るように、テンプレートを変化させる。新たな値がデイ
フォルト値を有する場合、そのデイフォルト値は既存の
対象物に適用される。デイフォルトが存在せず且つ属性
が指定されないならば、属性の値はそのデータタイプに
関してはデイフォルトである。
パラセルは変数に記憶されるいかなるものに対してもソ
フトウェアの適応を支援するので、プログラマ−は、新
たな変数に記憶されるべきデータのタイプを指定する必
要がない。好ましい実施例によるパラセルの場合、エデ
ィタは、32ビツト及び64ビツトの浮動小数点数と、
32ビツトの整数と、80ビツトの実数と、250字ま
での文字ストリングと、スペースにより分離されるスト
リング状文字として規定される語と、プール代数と、文
字と、番号付きタイプとに対して変数クラスを認識する
どの変数にも、何らかのタイプの値が割当てられる。変
数をプログラムにより操作できるように、適切なタイプ
変換が自動的に実行される。変換が不可能であれば、デ
バッグバスを介してラン時間誤り信号が供給される。
「タイプ」機能は、サイクル中にそれが呼出されたとき
に変数に記憶されるデータの種類を決定する。パラセル
に組込まれている全てのデータタイプと、ユーザーが規
定したタイプに同様の検査動作を利用することかできる
。そのような機能があるために、ユーザーは、あらかじ
めタイプを宣言することに配慮せずに、プログラムを書
込める。
新たな対象物が作成されると、その対象物は、タイプに
よって決まるデイフォルト値を与えられる。整数、浮動
小数点数及び実数は「数にあらず」としてデイフォルト
し、ストリングはブランク線にデイフォルトし、プール
代数は「数にあらず」としてデイフォルトし、文字はブ
ラングスペースにデイフォルトし、ユーザー規定クラス
の例はユーザーにより指定されたものとしてデイフォル
トする。新たな値がバラセルからエクスポートされるま
で、又は新たな値がワークステーションからセットされ
るか、入出力カードにより読込まれるまで、対象物は、
まだ値が計算されていないことを示す「数にあらず」と
いう値を有する。
誤りに至ると思われるタイプのコンフリクトは、1つの
データタイプから別のデータタイプへの変換を規定する
ことにより、最小限に抑えられる。
数はストリングに変換可能であり、ストリングの中には
数に変換可能なものもある。プール代数は1及び0に変
換され、ストリング及び文字は空量外の何らかの値であ
れば真である。パラセルは工]算された対象物に「語り
」属性を割当て、データを両立するタイプに変換しよう
とする努力が全て失敗したときにのみ、値をそのままに
放置する。
パラセルデータベースは、名前の付いたセットに関連付
けされるパラセル対象物の集合体である。
ユーザーはセットを探索することができ、属性値を見る
ことにより対象物を識別した後、選択した対象物の属性
を変更する。セットは、通常、各セルにおいてシステム
サイクルごとに対象物1つの速度で探索される。ユーザ
ーがさらに高速の探索を望む場合には、対象物のセット
を複数のセル間に分割しなければならない。
バラセルは、加算、減算、乗算、除算及び比較といった
通常の演算機能と、標準の三角関数を支援する。演算誤
り条件は、その結果として、I EEE浮動小数点規格
で指定されるような値をもたらし、「誤り」属性がセッ
トされる。誤り属性は計算中に伝播する。
バラセルは、さらに、通常のストリング動作をも提供す
る。パラセルプログラムは、構造にかかわらず、PIM
においてどのようなデータのストリング探索でも実行で
きる。ストリングが発見されてしまえば、パラセルはテ
キストストリングだけでなく、ストリングが発生した対
象物を発見したことになる。
フィルタは、セルが変数値を処理する前に変数値を修飾
できるようにする特殊なりラスの組込み機能である。フ
ィルタは、セルによる変数処理のために、変数を平均し
、結合し、積分し、微分し、また、その他の方法により
さらに処理しやすい形態にするために使用される。フィ
ルタは、イネーブル条件が検査される前及びステートメ
ントが実行される前に計算され、情報のロスを阻止する
ために、フィルタを通される値を指すステートメントが
イネーブルされるか否かを計算する。たとえば、フィル
タが導関数を計算する場合、ステートメントがその導関
数を見ているか否かにかかわらず精度を維持するために
、新たな値が処理されなければならない。
バラセル対象物の作成及び削除は、ワークステーション
又はセル中のバラセルプログラムを介して可能である。
対象物を作成するには、新たな変数を作成するために未
知の名をエディタに人力する;辞書を編集し、新たな名
を定義する: 「作成」指令を使用するなどのいくつか
の方法がある。
対象物を排除するときには、ワークステジョン又はバラ
セルプログラムから[削除(Kill)J指令を人力す
る。プログラムから削除された対象物は永久に失なわれ
る。ワークステーション支援ソフトウェアから削除され
た対象物は、動作が「不実行」バッファに入れば、再利
用可能となる。
事故をできる限り少なくするために、エディタはワーク
ステーションからの削除指令を検査するが、セルにおけ
る削除動作は検査されない。
名前付き対象物がワークステーションから削除されると
、エディタはいずれかのセルがその対象物を指示してい
るか否かを知るための検査を実行する。対象物を指示す
るセルが存在しなければ、エディタは対象物を削除する
。名前及びその全ての別名は全ての辞書から除去され、
先に割当てられていた大域メモリのスペースは再利用さ
れ、対象物の存在に関する全ての知識は消去される。
対象物を指示しているセルが存在する場合には、エディ
タはその対象物に関する辞書記述項に「削除」フラグを
示し、メモリの「削除」フラグをセットする。「削除」
された属性がセットされると、対象物をインポートして
いるセルはデイフォルト値を得る。先の対象物を指示し
ているセルはまだラン中であるので、辞書記述項を除去
することはできない。辞書記述項と大域メモリのスペス
は、対象物を指示する最後のセルが放棄されるか、又は
対象物を指示しなくなるように変更されたときにのみ放
棄される。
上述の実施例は、人口知能用として適用される場合など
のように、高速実時間推論及びそれに類する問題を解決
するための並列処理システムとして動作している。さら
に、本発明は、VLSI半導体チップに設けられている
ような微粒子プロセッサのエミュレーションを構成する
ために、同じシステムアーキテクチャとソフトウェア制
御を利用して動作する。このエミュレーションは微粒子
プロセッサチップを設計するためのデザインツールとし
て、あるいは、複数の微粒子プロセッサを含む集積チッ
プの代わりに使用可能である。
従って、数多くの目的に対して、本発明のエミュレーシ
ョン動作はカスタムVLSIチップの設計製造を不要に
し、しかも、そのようなチップにより得られる性能を保
つ。上述のシステムにおいては、マイクロプロセッサの
制御のために大量のコードを有するプログラムが一般に
必要とされるようなMOlOrOIa 68030など
の大粒子マイクロプロセッサを採用する。本発明によれ
ば、物理的マイクロプロセッサは、本発明のソフトウェ
アにより、複数の微粒子プロセッサ、すなわち、セルに
区分され、それらのセルは、それぞれが独立して動作す
る個々のプロセッサのアレイとして機能し、また、プロ
グラマ−やユーザーにもそのように見える。それぞれの
微粒子プロセッサ(セル)は、先にタイルとして説明し
た少量のコードのみを必要とする。各微粒子プロセッサ
は独自のメモリを有すると共に、1群のセルによって共
用される共用局所メモリに対してアクセスする。また、
それぞれの微粒子プロセッサは大域メモリをもアクセス
し、セルは大域メモリにより互いに通信することができ
る。各微粒子プロセッサは集積VLS I半導体回路の
微粒子プロセッサと同じように機能する。
以上の説明から明らかであるが、本発明の真の趣旨から
逸脱しない他の変形及び変更は当業者には自明であろう
。従って、特許請求の範囲に指示される事項を別として
、本発明は特定して図示、説明されているものに限定さ
れてはならない。
【図面の簡単な説明】
第1図は、本発明によるコンピュータシステムのブロッ
ク線図、 第2図は、第1図のコンピュータシステムのプロセッサ
ボードのブロック線図、 第3図は、第2図のバスインタフェースプロセッサのブ
ロック線図、 第4図は、第3図のユーザープロセッサのブロック線図
、 第5図は、第1図のバスアービトレーションボードのブ
ロック線図、 第6図は、第1図の大域メモリボードのブロック線図、 第7図は、第6図のメモリバンクのブロック線図、 第8図Aから第8図Hは、システムの動作を図示するの
に有用なタイミング図、 ′@9図は、インポートとエクスポートのタイミングを
示すタイミング図、 第10図は、インポートとエクスポートのタイミンクを
さらに示すタイミング図、 第11図は、システムの入出力チャネルを示すブロック
線図、 第12図は、システムのタイルの代表的な時間割当て図
式を示すチャート、 第13図は、大域メモリからデータをインポートし、大
域メモリへデータをエクスポートするタイルの略図、 第14図は、大域メモリと共動する複数のタイルの略図
、 第15図は、複数のタイルのより大きい有効タイルへの
統合を示す略図、 第16図は、順次実行のために1つのセルに割当てられ
た複数のタイルの略図、 第17図は、実行に2つ以上のサイクルを必要とするタ
イルがいくつか含まれる場合のタイルのスケジューリン
グを示す略図、 第18図は、大域メモリのデータブロックに含まれるデ
ータベースの略図、 第19図は、1つのフレームの中での、また、連続する
フレームの間でのセルからのデータのエクスポートを示
す略図、 第20図は、複数のレベルにわたるセルマトリクスを視
覚的に表示するナビゲータピラミッドの略図、 第21図は、ナビゲータピラミッドを通る経路を示す複
数のレベルのセルマトリクスの略図、第22図は、それ
ぞれのセルでタイルにより費される時間の量を示す略図
、 第23図は、プロセッサのセルにおけるメモリの利用状
態を示す略図、 第24図は、ワークステーションの表示装置に現われる
バラセルステートメントを示すチャートである。 8・・・コンピュータシステム 10・・・ワークステーション 12・・・入出力ボー
ド16・・・ホストコンピュータ 18・・・入出力ボ
ード22・・・入出力ボード    24・・・大域メ
モリバス26・・・メモリボード 30・・・プロセッサボード

Claims (1)

  1. 【特許請求の範囲】 1、実時間論理推論を実行する並列処理システムにおい
    て、 それぞれが、所有するプロセッサのためのプログラムデ
    ータと、そのプロセッサにより実行されたプログラムか
    ら結果として発生する中間データとを記憶する局所メモ
    リを有し、 プログラムされた数式を実行するように動作し、局所メ
    モリとプロセッサとの間に独自の命令の流れを有すると
    共に、局所メモリとプロセッサとの間に独自のデータの
    流れを有する複数のプロセッサセルと; プロセッサセルからの最終データを記憶し、プロセッサ
    セルにデータを供給する大域メモリ手段と; 全てのプロセッサセルに大域メモリ手段を同時に有効に
    アクセスさせるために、それぞれのプロセッサセルを大
    域メモリ手段に結合するバス手段と; 各プロセッサセルは大域メモリ手段からデータをインポ
    ートすると共に、大域メモリ手段へデータをエクスポー
    トするように動作し、各プロセッサセルは、他のプロセ
    ッサセルからのデータに対するアクセスを、大域メモリ
    手段からのみ得ることとを具備する並列処理システム。 2、ユーザーからそれぞれのプロセッサセルへのアクセ
    スを可能にするユーザーインタフェースをさらに含む請
    求項1記載の並列処理システム。 3、それぞれのプロセッサセルはそれぞれ対応するプロ
    グラム規則に従って動作している請求項1記載の並列処
    理システム。 4、プロセッサセルは1つの時間フレームの中で動作し
    、各プロセッサセルはそのフレームの1部分の中で動作
    する請求項1記載の並列処理システム。 5、1つの時間フレームの中で、全てのプロセッサセル
    が大域メモリ手段からデータをインポートし且つ大域メ
    モリ手段へデータをエクスポートする請求項4記載の並
    列処理システム。 6、プロセッサセルは、時間フレームの開始時にデータ
    をインポートし、時間フレームの終了時にデータをエク
    スポートする請求項5記載の並列処理システム。 7、時間フレームごとに、各プロセッサセルはその変数
    に関して新たな値を計算し、新たな変数値を大域メモリ
    手段へエクスポートする請求項6記載の並列処理システ
    ム。 8、プロセッサセルによる計算はインポートとエクスポ
    ートとの間で起こる請求項7記載の並列処理システム。 9、それぞれ、時間フレームの1/nの部分の中で動作
    するn個のプロセッサセルが存在する請求項4記載の並
    列処理システム。 10、1個以上のプロセッサセルから構成されるセルグ
    ループと; それぞれが1つのプロセッサを動作させるための1つの
    プログラムを構成するタイルを1つ以上のタイルグルー
    プとを含み、 セルグループにタイルにより提示されたプログラムコー
    ドをランさせるために、タイルグループ中のそれぞれの
    タイルをセルグループ中の選択されたセルに順次割当て
    ることから成る請求項1記載の並列処理システム。 11、セルグループは一定の動作時間フレームを有し、
    タイルグループ中の各タイルは、その動作時間フレーム
    の中の1つの時間スロットを公平に割当てられている請
    求項10記載の並列処理システム。 12、プロセッサセルを、単一のプロセッサセルとして
    取扱うことができるより大きな単位にグループ分けする
    ことが可能である請求項1記載の並列処理システム。 13、1つのプロセッサセルを2つ以上のより大きな単
    位のグループ分けの中で利用することが可能である請求
    項1記載の並列処理システム。 14、各セルプログラムはイフゼン(if−then)
    ステートメント、演算ステートメント又は論理ステート
    メントであり、全てのプロセッサセルは同時に動作し且
    つ並列して実行する請求項1記載の並列処理システム。 15、各プロセッサセルは、局所メモリに、1つの特定
    の演算を実行するためのプログラムを有する請求項1記
    載の並列処理システム。 16、それぞれのプロセッサセルに対する視覚アクセス
    のために、全てのプロセッサセルに関する図形表示のた
    めのセルマネジャを含む請求項2記載の並列処理システ
    ム。 17、プロセッサセルは時間フレームの中で指定された
    順序で動作し、1つのモードにおけるプロセッサセルは
    1つの時間フレームの終了時にデータをエクスポートす
    るように動作し、別のモードにおけるプロセッサセルは
    1つの時間フレームの中でデータをエクスポートするよ
    うに動作する請求項4記載の並列処理システム。 18、それぞれが1つの数式を含むことができる複数個
    のプロセッサセルを有するコンピュータシステムにおい
    て、 1つ以上の変数を含む数式を各プロセッサセルに書込む
    過程と; それぞれのプロセッサセルを大域メモリに結合する過程
    と; 変数の値を大域メモリに記憶する過程と; 変数に関する値を大域メモリからプロセッサセルにイン
    ポートする過程と; 前記インポートされた値を使用してプロセッサセルによ
    り計算された新たな変数の値をプロセッサセルから大域
    メモリへエクスポートする過程とから成る方法。 19、プロセッサセルの第1のレベルのマトリクスを規
    定する過程と; 第1のレベルのマトリクス内の1つのセルに含まれて、
    プロセッサセルの少なくとも1つの別のレベルのマトリ
    クスを規定する過程と; それぞれがコードのみを含むプロセッサセルから成る最
    低のレベルのマトリクスを規定する過程とをさらに含む
    請求項18記載の方法。 20、それぞれが、コード又は公式を有するタイルを1
    つ以上含んでいる複数のプロセッサセルを有するマルチ
    プロセッサコンピュータシステムで使用するための、全
    てのタイルをアクセスする手段において、 それぞれがコード又は数式を含むタイルから成る第1の
    レベルのマトリクスを表示する手段と;第1のレベルの
    マトリクスの選択されたタイルに含まれるタイルから成
    る第2のレベルのマトリクスを表示させるための数式を
    含む1つのタイルを表示されたタイルの中から選択し、 選択されたタイルがコードを含むまで各レベルのマトリ
    クスから数式を含むタイルを選択するように動作する選
    択手段と; コードの検閲及び改訂を可能にするために、コードを含
    むタイルを表示する手段とを具備する手段。 21、それぞれが、コード又は数式を有するタイルを1
    つ又は複数含んでいる複数のプロセッサセルを有するマ
    ルチプロセッサ計算システムで使用するための、全ての
    プロセッサセルをアクセスする方法において、 それぞれがコード又は数式を含むタイルから成る第1の
    レベルのマトリクスを表示する過程と;表示されたタイ
    ルの中から1つを選択する過程と; 表示されたタイルがコードを含む場合、検閲及び/又は
    改訂のためにそのコードを表示する過程と; 表示されたタイルが数式を含む場合、第1のレベルのマ
    トリクスの選択されたタイルに含まれるタイルから成る
    第2のレベルのマトリクスを表示する過程と; 表示されたマトリクスから、次のマトリクスレベルのタ
    イルのマトリクスを表示させる数式を含む1つのタイル
    を選択する過程と; 選択されたタイルがコードを含むまで選択を継続する過
    程とから成る方法。 22、それぞれが複数のセルを有する複数の処理モジュ
    ールと; 大域メモリと; 大域メモリに結合される第1のバス手段と;処理モジュ
    ールごとに1つずつ設けられ、大域メモリからセルへデ
    ータを搬送すると共にセルから大域メモリへデータを搬
    送するために、処理モジュールを第1のバス手段に結合
    するように動作する入出力手段と; 処理モジュールごとに設けられるモジュールメモリと; 処理モジュールごとに設けられ、1つの処理モジュール
    のセルからモジュールメモリへデータを転送すると共に
    、モジュールメモリからそれらのセルへデータを転送す
    る第2のバス手段とを具備するマルチプロセッサコンピ
    ュータシステム。 23、1つ以上の大粒子マイクロプロセッサと;マイク
    ロプロセッサを、独自のメモリをそれぞれ有する複数の
    微粒子仮想プロセッサに区分するソフトウェア手段とを
    具備する多重処理システム。 24、1群の仮想プロセッサに結合される共用局所メモ
    リと; 全ての仮想プロセッサに結合される大域メモリとを含む
    請求項23記載の多重処理システム。 25、大粒子マイクロプロセッサは単一のチップに含ま
    れる請求項24記載の多重処理システム。 26、各微粒子仮想プロセッサは連続して、互いに独立
    してランし、通常の動作中はイネーブル又はディスエー
    ブル不可能である請求項24記載の多重処理システム。 27、各微粒子仮想プロセッサは、一定の粒子サイズを
    有し且つインポート及びエクスポートが一定に定められ
    ている所定の小粒子プログラム装置に従って動作する請
    求項26記載の多重処理システム。 28、各微粒子仮想プロセッサは、所定の時間スロット
    の間に大域メモリと通信するように動作する請求項27
    記載の多重処理システム。 29、微粒子仮想プロセッサは大域メモリを介してのみ
    互いに通信する請求項28記載の多重処理システム。 30、各微粒子仮想プロセッサは大域メモリに対する同
    時アクセスを有効に有する請求項24記載の多重処理シ
    ステム。 31、微粒子仮想プロセッサは、それぞれ、所定のイン
    ポートに応答して所定のエクスポートを発生するために
    、イフゼン(if−then)規則に従って動作する請
    求項29記載の多重処理システム。 32、微粒子仮想プロセッサは、それぞれ、インポート
    条件が真であれば第1のエクスポートを発生し、インポ
    ート条件が偽であれば第2のエクスポートを発生する請
    求項31記載の多重処理システム。 33、微粒子仮想プロセッサは、それぞれ、インポート
    条件が真であるときにそのエクスポートを発生するため
    に連続動作する請求項31記載の多重処理システム。 34、ソフトウェア手段は、真である集合的インポート
    条件に応答してエクスポートを発生するように共動する
    ことにより、複数の微粒子仮想プロセッサの規則から構
    成される複合規則を処理するために、複数の微粒子仮想
    プロセッサを1グループとして規定する手段を含む請求
    項33記載の多重処理システム。 35、それぞれが、所有するプロセッサのためのプログ
    ラムデータと、そのプロセッサにより実行されたプログ
    ラムから結果として発生する中間データとを記憶する局
    所メモリを有し、 それぞれのプロセッサセルはそのプロセッサセルの動作
    に関するプログラムを構成するタイルを実行するように
    動作し、局所メモリとプロセッサセルとの間に独自の命
    令の流れを有すると共に、局所メモリとプロセッサセル
    との間に独自のデータの流れを有する複数のプロセッサ
    セルと;プロセッサセルからの最終データを記憶し、プ
    ロセッサセルにデータを供給する大域メモリ手段と; 全てのプロセッサセルに大域メモリ手段を同時に有効に
    アクセスさせるために、それぞれのプロセッサセルを大
    域メモリ手段に結合するバス手段と; 複数のタイルのそれぞれを選択されたプロセッサセルに
    割当てる手段とを具備し、各プロセッサセルは、そのタ
    イルの制御の下に、大域メモリ手段からデータをインポ
    ートすると共に、大域メモリ手段へデータをエクスポー
    トするように動作し、各プロセッサセルは他のセルから
    のデータに対するアクセスを大域メモリ手段からのみ得
    る並列処理システム。 36、プロセッサセルに関するエクスポート及びインポ
    ートを規定するメモリリストを含み、各タイルをプロセ
    ッサセルに割当てる前記手段は、2つ以上のタイルが同
    じ変数に対するエクスポートアクセスを有する場合にタ
    イルの優先順位を指定する手段を含む請求項35記載の
    並列処理システム。 37、割当てる手段は、タイル動作のシーケンスを規定
    するように順序づけされたプロセッサセルのエクスポー
    ト及びインポートのメモリリストを含む請求項35記載
    の並列処理システム。 38、プロセッサセルは所定のインポート及びエクスポ
    ートにそれぞれ割当てられる請求項35記載の並列処理
    システム。 39、複数のプロセッサセルから構成される処理装置と
    ; 処理装置のプロセッサセルを指定の時間フレームの中で
    指定の順序でランさせる手段と; 処理装置のプロセッサセルに時間フレームの終了時と、
    時間フレームの中で、1つ以上の他のセルに対してデー
    タをエクスポートさせる手段とを含む請求項35記載の
    並列処理システム。 40、それぞれ、複数のプロセッサセルから構成され、 それぞれのプロセッサセルは単一のプログラムをランす
    るように動作する1つ以上の処理装置と;1つの処理装
    置のプロセッサセルを指定の時間フレームの中で指定の
    順序でランさせる手段と;1つの処理装置のプロセッサ
    セルに時間フレームの終了時と、時間フレームの中で、
    1つ以上の他のセルに対してデータを供給させる手段と
    を具備するコンピュータ処理システム。 41、大域メモリ手段は、大域メモリ手段内のデータに
    対し演算機能及び/又は論理機能を実行する演算論理手
    段を含む請求項1記載の並列処理システム。 42、大域メモリ手段は、大域メモリ手段をアドレスす
    る手段を含み、メモリアドレスは通常のメモリ読取り/
    書込み動作又は演算/論理動作を指示するコードを含む
    請求項41記載の並列処理システム。 43、大域メモリ手段は、メモリ動作を監視し、メモリ
    機能を指示するコードを提供する手段を含む請求項41
    記載の並列処理システム。
JP1284672A 1988-11-23 1989-10-31 コンピュータシステム Pending JPH02183362A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/276,413 US5136717A (en) 1988-11-23 1988-11-23 Realtime systolic, multiple-instruction, single-data parallel computer system
US276413 1988-11-23

Publications (1)

Publication Number Publication Date
JPH02183362A true JPH02183362A (ja) 1990-07-17

Family

ID=23056568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1284672A Pending JPH02183362A (ja) 1988-11-23 1989-10-31 コンピュータシステム

Country Status (4)

Country Link
US (2) US5136717A (ja)
EP (1) EP0445456B1 (ja)
JP (1) JPH02183362A (ja)
DE (1) DE69027299T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510583A (ja) * 2006-11-15 2010-04-02 クゥアルコム・インコーポレイテッド 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
WO1991019267A1 (en) * 1990-06-06 1991-12-12 Hughes Aircraft Company Neural network processor
GB9018048D0 (en) * 1990-08-16 1990-10-03 Secr Defence Digital processor for simulating operation of a parallel processing array
JP2959104B2 (ja) * 1990-10-31 1999-10-06 日本電気株式会社 信号処理プロセッサ
EP0513519A1 (en) * 1991-05-15 1992-11-19 International Business Machines Corporation Memory system for multiprocessor systems
US5774727A (en) * 1991-06-27 1998-06-30 Digital Equipment Corporation Parallel processing system for virtual processor implementation of machine-language instructions
JPH07122864B2 (ja) * 1991-07-22 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法
US6643656B2 (en) * 1991-07-31 2003-11-04 Richard Esty Peterson Computerized information retrieval system
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
CA2078310A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital processor with distributed memory system
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
RO105026B1 (en) * 1991-10-10 1993-09-01 Ion Minca Network structure for parallel processing of calcullation programs
US5355492A (en) * 1991-11-05 1994-10-11 Thinking Machines Corporation System for compiling parallel communications instructions including their embedded data transfer information
DE69322532T2 (de) * 1992-02-26 1999-04-29 Cirrus Logic, Inc., Fremont, Calif. Digitale Verarbeitungseinheit für Videoschnitt
WO1994008295A1 (en) * 1992-10-01 1994-04-14 Flavors Technology Inc. Method and apparatus for memory interleave reduction
JP2500101B2 (ja) * 1992-12-18 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用変数の値を更新する方法
WO1994016383A1 (en) * 1993-01-06 1994-07-21 The 3Do Company Digital signal processor architecture
SG73378A1 (en) * 1993-10-05 2000-06-20 Seiko Epson Corp Apparatus and method for generating a program for parallel processing
US5564017A (en) * 1994-06-30 1996-10-08 International Business Machines Corporation Procedure for safely terminating network programs during network logoff
JPH0830577A (ja) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
JP4341043B2 (ja) * 1995-03-06 2009-10-07 真彦 久野 I/o拡張装置,外部記憶装置,この外部記憶装置へのアクセス方法及び装置
US5799134A (en) * 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
JP3661235B2 (ja) * 1995-08-28 2005-06-15 株式会社日立製作所 共有メモリシステム、並列型処理装置並びにメモリlsi
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
WO2002029600A2 (de) 2000-10-06 2002-04-11 Pact Informationstechnologie Gmbh Zellenarordnung mit segmentierterwischenzellstruktur
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5903771A (en) * 1996-01-16 1999-05-11 Alacron, Inc. Scalable multi-processor architecture for SIMD and MIMD operations
US5596735A (en) * 1996-02-23 1997-01-21 Cyrix Corporation Circuit and method for addressing segment descriptor tables
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
US6005624A (en) * 1996-12-20 1999-12-21 Lsi Logic Corporation System and method for performing motion compensation using a skewed tile storage format for improved efficiency
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US5999729A (en) * 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
JP3739888B2 (ja) * 1997-03-27 2006-01-25 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6418494B1 (en) * 1998-10-30 2002-07-09 Cybex Computer Products Corporation Split computer architecture to separate user and processor while retaining original user interface
US6552947B2 (en) * 1999-04-05 2003-04-22 Madrone Solutions, Inc. Memory tile for use in a tiled memory
US6249475B1 (en) * 1999-04-05 2001-06-19 Madrone Solutions, Inc. Method for designing a tiled memory
DE10081049D2 (de) * 1999-04-20 2001-08-09 Siemens Ag Skalierbares Multi-Prozessorsystem für Echtzeitanwendungen in der Nachrichtentechnik
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
ATE476700T1 (de) 2000-06-13 2010-08-15 Richter Thomas Pipeline ct-protokolle und -kommunikation
US7383512B1 (en) * 2000-09-29 2008-06-03 Microsoft Corporation Method for synchronously binding an external behavior to a web page element
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
ATE557344T1 (de) 2001-06-20 2012-05-15 Krass Maren Verfahren und gerät zum partitionieren von grossen rechnerprogrammen
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7505458B2 (en) * 2001-11-27 2009-03-17 Tellabs San Jose, Inc. Apparatus and method for a fault-tolerant scalable switch fabric with quality-of-service (QOS) support
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
EP2043000B1 (de) 2002-02-18 2011-12-21 Richter, Thomas Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7321623B2 (en) 2002-10-01 2008-01-22 Avocent Corporation Video compression system
JP3995577B2 (ja) * 2002-10-07 2007-10-24 松下電器産業株式会社 データ伝送処理装置及びプログラム
US7005518B2 (en) * 2002-10-25 2006-02-28 Li-Cor, Inc. Phthalocyanine dyes
TWI374635B (en) 2003-06-02 2012-10-11 Qualcomm Inc Generating and implementing a signal protocol and interface for higher data rates
US9560371B2 (en) * 2003-07-30 2017-01-31 Avocent Corporation Video compression system
WO2005018191A2 (en) 2003-08-13 2005-02-24 Qualcomm, Incorporated A signal interface for higher data rates
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
BRPI0414229A (pt) 2003-09-10 2006-10-31 Qualcomm Inc interface de elevada taxa de dados
JP2007509533A (ja) 2003-10-15 2007-04-12 クゥアルコム・インコーポレイテッド 高速データレートインタフェース
CN101827074B (zh) 2003-10-29 2013-07-31 高通股份有限公司 高数据速率接口
EP2242231A1 (en) 2003-11-12 2010-10-20 Qualcomm Incorporated High data rate interface with improved link control
WO2005053272A1 (en) * 2003-11-25 2005-06-09 Qualcomm Incorporated High data rate interface with improved link synchronization
EP2247070B1 (en) 2003-12-08 2013-09-25 QUALCOMM Incorporated High data rate interface with improved link synchronization
EP2309695A1 (en) 2004-03-10 2011-04-13 Qualcomm Incorporated High data rate interface apparatus and method
AU2005223960B2 (en) 2004-03-17 2009-04-09 Qualcomm Incorporated High data rate interface apparatus and method
MXPA06010873A (es) 2004-03-24 2007-04-02 Qualcomm Inc Metodo y aparato de interfase de tasa de datos alta.
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
JP4664360B2 (ja) 2004-06-04 2011-04-06 クゥアルコム・インコーポレイテッド 高速データレートインタフェース装置及び方法
US7457461B2 (en) * 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8692838B2 (en) * 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US8723705B2 (en) * 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US8667363B2 (en) 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US20060161691A1 (en) * 2004-11-24 2006-07-20 Behnam Katibian Methods and systems for synchronous execution of commands across a communication link
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US7548842B2 (en) * 2005-06-02 2009-06-16 Eve S.A. Scalable system for simulation and emulation of electronic circuits using asymmetrical evaluation and canvassing instruction processors
US20060277020A1 (en) * 2005-06-02 2006-12-07 Tharas Systems A reconfigurable system for verification of electronic circuits using high-speed serial links to connect asymmetrical evaluation and canvassing instruction processors
US8730069B2 (en) * 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US7783820B2 (en) * 2005-12-30 2010-08-24 Avocent Corporation Packet-switched split computer having disassociated peripheral controller and plural data buses
EP1974265A1 (de) 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardwaredefinitionsverfahren
US7782961B2 (en) * 2006-04-28 2010-08-24 Avocent Corporation DVC delta commands
JP4705886B2 (ja) * 2006-06-20 2011-06-22 株式会社日立製作所 回路基板の診断方法、回路基板およびcpuユニット
US20090150872A1 (en) * 2006-07-04 2009-06-11 George Russell Dynamic code update
GB0613275D0 (en) * 2006-07-04 2006-08-16 Codeplay Software Ltd Distributed computer system
US8405662B2 (en) * 2006-07-04 2013-03-26 Iti Scotland Limited Generation of video
US20090144713A1 (en) * 2006-07-04 2009-06-04 George Russell Techniques for program performance analysis
US7657791B2 (en) 2006-11-15 2010-02-02 Qualcomm Incorporated Method and system for a digital signal processor debugging during power transitions
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US9251291B2 (en) 2007-11-29 2016-02-02 Microsoft Technology Licensing, Llc Data parallel searching
US9075493B2 (en) * 2011-03-07 2015-07-07 Sas Institute, Inc. Techniques to present hierarchical information using orthographic projections
US20150067437A1 (en) * 2013-08-30 2015-03-05 Kuljit S. Bains Apparatus, method and system for reporting dynamic random access memory error information
US10339041B2 (en) * 2013-10-11 2019-07-02 Qualcomm Incorporated Shared memory architecture for a neural simulator
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10192162B2 (en) 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
WO2018071546A1 (en) * 2016-10-11 2018-04-19 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
US11222260B2 (en) * 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10601960B2 (en) 2018-02-14 2020-03-24 Eingot Llc Zero-knowledge environment based networking engine

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
DE2843179C2 (de) * 1978-10-04 1980-09-25 Te Ka De Felten & Guilleaume Fernmeldeanlagen Gmbh, 8500 Nuernberg Kennzeichenumsetzergerät zum Verarbeiten von codierten während zyklisch aufeinanderfolgender Zeitrahmen übertragenen vermittlungstechnischen Informationen
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
BG35575A1 (en) * 1982-04-26 1984-05-15 Kasabov Multimicroprocessor system
US4504906A (en) * 1982-11-30 1985-03-12 Anritsu Electric Company Limited Multiprocessor system
US4574348A (en) * 1983-06-01 1986-03-04 The Boeing Company High speed digital signal processor architecture
EP0131416B1 (en) * 1983-07-06 1990-06-13 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Constraint application processor
US4698751A (en) * 1984-07-13 1987-10-06 Ford Aerospace & Communications Corporation Systolic array for solving cyclic loop dependent algorithms
US4873623A (en) * 1985-04-30 1989-10-10 Prometrix Corporation Process control interface with simultaneously displayed three level dynamic menu
JPH06103481B2 (ja) * 1985-11-15 1994-12-14 株式会社日立製作所 プログラムロ−デイング方式
US4727473A (en) * 1986-01-02 1988-02-23 Fischer & Porter Company Self-learning mechanism for a set of nested computer graphics
SE451219B (sv) * 1986-03-05 1987-09-14 Stiftelsen Inst Mikrovags Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
US4752889A (en) * 1986-08-18 1988-06-21 Neuron Data, Inc. Dynamic, interactive display system for a knowledge base
US4933836A (en) * 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
US4827403A (en) * 1986-11-24 1989-05-02 Thinking Machines Corporation Virtual processor techniques in a SIMD multiprocessor array
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510583A (ja) * 2006-11-15 2010-04-02 クゥアルコム・インコーポレイテッド 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging

Also Published As

Publication number Publication date
EP0445456A1 (en) 1991-09-11
EP0445456B1 (en) 1996-06-05
DE69027299D1 (de) 1996-07-11
DE69027299T2 (de) 1997-01-30
US5418952A (en) 1995-05-23
US5136717A (en) 1992-08-04

Similar Documents

Publication Publication Date Title
US5418952A (en) Parallel processor cell computer system
Baer A survey of some theoretical aspects of multiprocessing
EP0021404B1 (en) Computing system for the simulation of logic operations
Ahuja et al. Matching language and hardware for parallel computation in the Linda machine
CN114064551B (zh) 基于cpu+gpu异构的高并发序列比对计算加速方法
US5857180A (en) Method and apparatus for implementing parallel operations in a database management system
US5920714A (en) System and method for distributed multiprocessor communications
Wang et al. Dynamic thread block launch: A lightweight execution mechanism to support irregular applications on gpus
JP2022539844A (ja) 静止再構成可能データ・プロセッサ
CN112580792B (zh) 一种神经网络多核张量处理器
US7398376B2 (en) Instructions for ordering execution in pipelined processes
US20080250227A1 (en) General Purpose Multiprocessor Programming Apparatus And Method
US8387034B2 (en) System and method for the distribution of a program among cooperating processing elements
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH06505350A (ja) 高並列マルチプロセッサ・システムの統合ソフトウエア・アーキテクチャ
CN110750265B (zh) 一种面向图计算的高层次综合方法及系统
CN109656868B (zh) 一种cpu与gpu之间的内存数据转移方法
Siewiorek et al. The architecture of supercomputers: Titan, a case study
JPH08180094A (ja) アーキテクチャ・シミュレータ
JPH0659908A (ja) プログラム実行装置
Briggs et al. A Shared-Resource Multiple Microprocessor System for Pattern Recognition and Image Processing
Savoiu et al. design for synthesis, transform for simulation: Automatic transformation of threading structures in high-level system models
Chen et al. Performance measurements of scheduling strategies and parallel algorithms for a multiprocessor quick sort
Yang et al. A Tensor Compiler for Processing-In-Memory Architectures
KHALILI MAYBODI A Data-Flow Threads Co-processor for MPSoC FPGA Clusters