[go: up one dir, main page]

JPH04267466A - 連想並列処理システム - Google Patents

連想並列処理システム

Info

Publication number
JPH04267466A
JPH04267466A JP3278900A JP27890091A JPH04267466A JP H04267466 A JPH04267466 A JP H04267466A JP 3278900 A JP3278900 A JP 3278900A JP 27890091 A JP27890091 A JP 27890091A JP H04267466 A JPH04267466 A JP H04267466A
Authority
JP
Japan
Prior art keywords
picket
memory
units
processing
array
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
JP3278900A
Other languages
English (en)
Inventor
W Diffenderfer James
ジェームス・ワレン・ディフェンデルフアー
Peter M Kogge
ピーター・マイケル・コゲ
Paul Amba Wilkinson
ポール・アンバ・ウイルキンソン
J Schoonover Nicholas
ニコラス・ジェローム・スクーノバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04267466A publication Critical patent/JPH04267466A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/803Three-dimensional arrays or hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセツサによ
り並列計算するシステム、より具体的に言えば、空冷式
のチツプに適し、単純化されたアーキテクチヤであつて
、バイトを直列に処理するSIMDアーキテクチヤによ
つて構成された複数プロセツサの並列計算システム及び
その方法に関する。
【0002】
【従来の技術】米国特許第3537074号には、並列
のプロセツサと、1つだけのプログラムによつて制御さ
れる制御装置と、片割れのベクトルをストアするための
複数個のレジスタと、マスク・レジスタと、ベクトル・
レジスタ中のデータに同時に動作するための1つ、また
はそれ以上の制御ユニツトのインストラクシヨンのシー
ケンスに応答する手段とを有するアレイ・コンピユータ
を記載しており、1970年代に、この米国特許に記載
された並列プロセツサは、SIMD(Single I
nstruction Multiple Data)
マシンとして知られるようになつた。 また、このマシンは、並列プロセツサのアレイを駆動す
るプログラム可能な制御ユニツトで構成されているよう
に記載されており、各プロセツサは、メモリ部分、算術
演算ユニツト、プログラムのデコード部分及び入/出力
部分を持つている。これらのシステムは、或る場合には
ホスト・コンピユータと関連された大きな箱体であつた
。SIMDと、通常のプロセツサとを比較すると、SI
MDマシンのシステムにおいて、すべてのSIMDプロ
セツサは関連するプロセツサとは異なつたデータの組を
持つており、SIMDのすべてのプロセツサは共通のコ
ントローラによつて管理されていることが両者の間の重
要な相異である。また、SIMDコンピユータは、各イ
ンストラクシヨンが1つの演算子ではなく、データのベ
クトルで動作すると言う点で、通常のフオン・ノイマン
型のプロセツサとは異なつている。
【0003】最も平凡なタイプのマルチ・プロセツサは
、各プロセツサが別々のデータ・セツトに動作する別々
のプログラムを実行する複数のインストラクシヨンの複
数のデータ・システム(Multiple Instr
uction Multiple Data Syst
em−MIMD)である。MIMDシステムの中のプロ
セツサは、別個に分かれたタスクを遂行するか、または
、共通の主たるタスクの異なつたサブ・タスクを遂行す
る。
【0004】SIMD並列プロセツサの考え方が進歩す
るにつれて、米国特許第4435758号に記載されて
いるように、遂行されるべきシステムのタスクの間に高
い独立性があり、自由に競合できる場合には、SIMD
モードで動作する同期プロセツサのネツトワークが表示
されると考えられていた。実際、米国特許第44357
58号は、その問題と改善方法とを記載しており、そし
て、条件付きブランチの実行を与えるために、米国特許
第4101960号に記載された技術の改良をしなけれ
ばならなかつた。
【0005】並列プロセツシングの国際会議の会報の「
多形態の大円環のネツトワーク(Polymorphi
c−Torus Network)」と題するリー(H
.Li)等の報告書の411頁乃至414頁に記載され
ているように、新型の殆どのSIMDマシンを記載する
ことが通例になつてきた。1989年8月のIBMテク
ニカル・デイスクロージヤ・ブレテイン第32巻3A号
には、ベクトルに対して粗のマトリツクスの積算におけ
る実行の速度を改善するために、再編成の目的のために
他のスイツチング・ネツトワークによつて重ねられたメ
ツシユ・ネツトワークを有し、かつ、リー等によつて記
載されたメツシユ・トポロジーによつて物理的に接続さ
れたN×N個のプロセツサの大量用の並列アーキテクチ
ヤのためのマトリツクス・ベクトル積算法が記載されて
いる。
【0006】与えられた行中のすべてのプロセツサは全
く同じインストラクシヨンを実行するけれども、各行は
異なつてプログラムされているような複数の行のプロセ
ツサによつて動作するSIMDマシン及びSIMD/M
IMDマシンを作るための考えを示した1990年の刊
行物がある。1990年1月のIBMテクニカル・デイ
スクロージヤ・ブレテイン、第32巻8B号のリー(H
.Li)、ドム(B.Dom)等の発明には、特別の繰
り返し動作を行なうメモリ・インスペクシヨン機能を処
理するための並列的なローカル演算子エンジン(Par
allel Local Operator Engi
ne−PLOE)と称される構造を持つアーキテクチヤ
が記載されている。
【0007】このアプリケーシヨンは、SIMDマシン
に割り当てることができるばかりでなく、フオン・ノイ
マンのマシンにも割り当てることができるタスクとを、
新しく作られたアーキテクチヤにより形成されたチツプ
で遂行することができるシステムであつて、現在の技術
で製造することのできる空冷式のシステムを想定するこ
とができる。
【0008】背景の技術を振り返つてみると、他の技術
は、例えば米国特許第4942516号に記載されてい
るように、1つのシリコン・チツプ上にデータをストア
し、アクセスするための静的なインストラクシヨン用の
ROM及びレジスタを持つプロセツサを使用することに
関連しているが、この種類のものは、SIMDタイプの
複雑なアプリケーシヨンには無関係である。
【0009】本発明のシステムも目指しているような手
段、即ち、異なつたタスクを遂行するための種々の手段
を記載した他の刊行物がある。例えば、マトリツクス乗
算は並列演算することができることは知られている。本
発明のシステムを使用することができるアプリケーシヨ
ンは、人工頭脳に関するアプリケーシヨンがある。内容
がアドレス可能である(図3を参照)か、または連想メ
モリ(associative memory)は、大
学の研究室レベルにおける種々の処理チツプでアドレス
される。或る場合におけるAIアプリケーシヨンに対し
て、行ロジツクによつて前のサーチ動作の結果に関して
行選択を基礎にすることは有用であることが知られてい
る。これに関しては、クルウワー・アカデミツク出版社
(Kluwer Academic Publishe
rs)1989年刊行のデルガド(J.G.Delga
do)他1名著の「人工頭脳のためのVLSI」の95
頁乃至108頁のピーター・コゲ(PeterKogg
e))等の「VLSI及びルール・ベースのシステム」
と題する記載を参照されたい。然しながら、その他の提
案は、本発明が指向する方向とは異なつた方向を目指す
技術である。1つの提案は、1988年12月の「VL
SIシステム・デザイン」に記載された大量の並列化に
用いるためのオクスフオードの「インテリジエント・メ
モリ」である。他の技術としては、再構成可能の完全並
列の連想処理方式を実行するために適するVLSI連想
メモリ・チツプを開示するために、VLSI連想メモリ
の並列処理を試みた刊行物がある。古典的な連想メモリ
・アーキテクチヤの使用を教示したこのアプローチは、
関連するデータ転送に対して莫大な数の出力ピンを必要
とする。これについては、カリフオルニヤ大学の電気及
びコンピユータ・エンジニヤリング部の報告書#ECS
−h404627を参照されたい。
【0010】米国特許出願第07/519332号は、
MIMDプロセツサのように複雑ではなく、多額の費用
を要することなく、より柔軟性を以て並列処理を遂行す
ることのできる多次元アレイの処理エレメントの技術が
開示されている。この特許出願は上述のヨーロツパ特許
出願よりも早く公開されている。この米国特許出願に記
載されたシステムは、種々の並列処理エレメント中の制
御ロジツクを接続するバスに沿つてローカル・ビツトを
直列に実行するための大域インストラクシヨンを送り、
修正されたビツトはデコードされるローカル・ビツト・
ライン上に使用するために大域インストラクシヨンの選
択されたビツトをプログラム的に修正する。
【0011】また、バイト幅のSIMDプロセツサに関
して、1989年5月のIEEE会報第136巻に「S
IMDマイクロプロセツサ・アレイのデザイン」と題す
るジエスホープ(C.R.Jesshope)等の論文
がある。この論文は、SIMDのアーキテクチヤの学術
的な研究論文である。幾つかの項目は、本発明の目的と
同じことを指向しており、バイト幅のSIMDアーキテ
クチヤを持つプロセツサが記載されている。この論文は
、RAMボード(1キロバイト)及び1チツプ当り複数
(4個)の処理エレメント(PE)に限定された8ビツ
ト処理の累算器のアーキテクチヤのエレメントと、或る
程度大きなローカルな独立性とを有する処理エレメント
を提案している。然しながら、このような提案された構
造を使用しているけれども、連想処理は与えられていな
い。提案されている構造は、本発明において与えられて
いる、隣接ユニツトとのバイト幅のコミユニケーシヨン
を与えていない。従つて、並列処理の従来技術を進歩さ
せるために、集積回路チツプ上に実行可能な本発明の技
術が必要である。この他に、1990年2月のIEEE
の「コンピユータ」中に記載されたダンカン(R.Du
ncan)の「並列コンピユータのアーキテクチヤのサ
マリー」を参照されたい。
【0012】(定義)本明細書において使用されている
主な用語を以下に定義する。
【0013】ピケツト  −  1クロツク・サイクル
の中でビツト並列のバイト情報を処理するためにローカ
ル・メモリと処理エレメントとの組み合わせで構成され
るのが好ましい処理アレイの中の1個のエレメント。
【0014】ピケツト・チツプ  −  1個のピケツ
ト・チツプは単一のシリコン・チツプ上に複数個のピケ
ツトを含んでいる。
【0015】ピケツト・プロセツサ・システム(または
、サブシステム)  −  ピケツトのアレイと、コミ
ユニケーシヨン・ネツトワークと、I/Oシステムと、
マイクロプロセツサで構成されたSIMDコントローラ
と、キヤンド・ルーチン・プロセツサと、アレイを動作
するマイクロプロセツサとを含む全体のシステム。
【0016】ピケツトのアーキテクチヤ  −  以下
のような問題を含み、幾つかの雑多な種類の問題に適合
するフイーチヤを持つSIMDアーキテクチヤの良好な
実施例。−  セツト連想処理          −
  並列的な数字の集中的な処理−  イメージ処理と
類似した物理的なアレイの処理
【0017】ピケツトのアレイ  −  幾何学的な順
序で配列されたピケツトの集合。用語「ピケツト」は、
軍事用の言葉のピケツト・ライン、つまり防衛線に機能
的には類似しているけれども、この用語は、トム・ソー
ヤーと彼の白い柵からきている。
【0018】
【発明が解決しようとする課題】従来の技術によつて複
雑なアプリケーシヨンをコンパクトなプロセツサで実行
しようとする包括的な問題を解決するためには、従来の
技術において、1つの処理エレメント当り数千ビツト程
度までの容量で、しかもビツト直列で動作するメモリで
実行しなければならないことと、半導体チツプ1個当り
数個の処理エレメントだけでは不充分であると言うこと
とが問題である。このため、非常に高い密度で製造する
ことができ、しかも、空冷の冷却方式に適した構造であ
り、かつ、軽量でコンパクトな装置に適している半導体
チツプのアーキテクチヤの出現が望まれている。本発明
は、バイト幅のポートを持つ各処理ユニツトが、十分な
量のバイト幅のメモリ及び制御ロジツクに接続され、そ
して、処理ユニツトのN次元アレイを形成することによ
つて、上述の問題を解決している。幾つかの処理ユニツ
トを含む仕切り可能なセクシヨンのアレイがシリコン・
チツプに含まれている。これについては、以下に詳細に
述べられる。このような解決方法により生じた付加的な
問題も、本発明により解決されている。これらの解決方
法は、処理ユニツトを独立して実行することを可能とし
た。このことに関しては、アレイ中の各処理ユニツトが
入力を取り出すエレメントを選択することが可能な処理
アレイを開示している上述のヨーロツパ特許出願第A−
208127号を参照されたい。
【0019】
【課題を解決するための手段】本発明に従つて、「ピケ
ツト」アーキテクチヤと称されるアーキテクチヤが与え
られる。本発明に従つたこのアーキテクチヤは、従来の
SIMD処理エレメント(PE)と或る程度類似してい
る処理エレメント構造を使用しており、本発明の処理エ
レメントは、ピケツト・ライン(防衛線)が必要な時に
一致し、そして、独立してフオン・ノイマン型の動作を
行なうことができるように改良されている。このアーキ
テクチヤは、ピケツトと呼ばれる処理ユニツトの各々の
中に制御ロジツクを有し、そして並列処理をするために
配列された処理ユニツトのN次元アレイを使用するよう
に開発されたものである。
【0020】本発明のシステムは、単一インストラクシ
ヨンの複数データ(SIMD)ストリームのマシンのよ
うな計算能力を有しており、しかも、並列処理エレメン
トの配列によつて性能が改良されている。本発明はデー
タ依存(data dependency)により生じ
る問題を除去することができる。SIMD動作において
、本発明のプロセツサ、または処理エレメントの機能は
、1つの処理エレメントに対して異なつたマシン・サイ
クル数を必要とさせるようなデータ依存がない。。
【0021】本発明に従つたアーキテクチヤは、1つの
処理エレメントを連想処理で遂行するのに適している各
ピケツトを連想動作の方法の下で、情報を並列に処理す
る処理エレメントに接続されたローカル・メモリを含ん
でいるビツト並列で動作する処理エレメントを持つ複数
個のピケツト・ユニツト、即ち全体的な「ピケツト」で
構成されるシステムを形成する。本発明の1実施例にお
いて、各ピケツトを水平方向に関連させた方法が示され
ている。従つて、このように配列されたピケツトのアレ
イは、セツト連想メモリを構成している。
【0022】1つのチツプ上のセツト連想並列処理シス
テムの本発明は、連想処理が遂行できるように、メモリ
から取り出される大きなデータの組から、小さなデータ
の組を形成することができる。通常は比較動作そのもの
である連想動作は、「ピケツト」のメモリ及び実行ユニ
ツトを用いて、並列のデータの組全体に遂行される。
【0023】この「ピケツト」アレイにおいて、各ピケ
ツトは、より大きな組からのデータの一部を持つている
。加えて、各ピケツトはその一部のデータからデータの
一部分を選択する。従つて、一組のピケツトの各ピケツ
トの中のデータの一部分は、データの組を構成し、並列
に配列されたすべてのピケツトによつて、そのデータの
組に対して連想動作が遂行される。
【0024】現在の技術で達成可能な設計によつて、1
個のチツプ上に設けられるエレメントは、データ・フロ
ー及び制御ロジツクに関する50000個のゲートと、
数メガバイトのDRAMメモリまでが限度であろう。こ
れらの各チツプは複数個のピケツト、即ち処理ユニツト
を含むように構成される。グラフイツク処理に使用可能
なテキスト処理のための本発明の実施例において、1つ
のピケツト・チツプ上に、各ピケツト用の32キロバイ
トのDRAMメモリを持つ16個のピケツトがあり、そ
して、このシステムは、1024個の処理エレメントの
アレイを作るために、上述のピケツト・チツプを64個
含んでいる。このピケツト・アーキテクチヤは、CMO
S技術で製造することが可能であり、このCMOS技術
は、1つのチツプの上に繰り返しパターンで配列された
四百万ビツトのDRAMを作ることが可能であり、そし
て、チツプ上で利用可能な残りのチツプ表面領域は、チ
ツプ上にピケツトを形成するために、データ・フロー及
び制御ロジツクを形成することのできる五万個までの論
理エレメントを用いた標準的な論理セルで満たされてい
る。本発明の実施例において、ピケツトは、ローカル(
地域的)に独立してデータを処理することができるよう
に、システムが配列されており、また、離隔したピケツ
トの間の接続は「スライド」によつて行なわれる。
【0025】本発明のピケツト技術は拡張可能であり、
例えば、1つのピケツト(16メガビツトのDRAMメ
モリ・チツプ)の各々に128キロバイトのDRAMを
持ち、このピケツト・アーキテクチヤは、現在の8ビツ
トのカラー・グラフイツク、または白黒のグラフイツク
が上述の実施例で処理するのと同様の方法で、24ビツ
トのフル・カラー・グラフイツクを処理することができ
る。実験的な製造技術の結果によると、上述の高い密度
を持ち、空冷式の冷却で動作することのできる均一な製
品を製造することが可能であることが判つている。カラ
ー・グラフイツクに対して、本発明の良好なピケツト・
アーキテクチヤは、1つのチツプ当り16個のピケツト
の使用にとどめて、1ピケツト当り128キロバイトに
、チツプ上のDRAMの量を増加することができる。 代案として、96キロバイトのメモリを有し、1ピケツ
ト・チツプ当り24ピケツト・ユニツトのアーキテクチ
ヤがフル・カラー・グラフイツク処理に使用することが
できる。
【0026】
【実施例】図1は、ヨーロツパ特許出願第883078
55/88−A号及びイギリス特許出願第A−1445
714号に細部が示された代表的な従来のSIMDシス
テムが示されている。このような従来の装置において、
SIMDコンピユータは、各プロセツサが複数個のSI
MDメモリ装置の1つと関連しており、並列にリンクさ
れているビツト直列の複数個のプロセツサを含む並列ア
レイ・プロセツサを有する単一インストラクシヨンの複
数データのコンピユータである。入力/出力のI/Oシ
ステムは、SIMDユニツトに対するステージング・シ
ステムとして動作し、そして、ホスト・コンピユータ(
これはメーン・フレーム、またはマイクロプロセツサで
もよい)と、SIMDコンピユータとの間のデータの双
方向の2次元転送をする一時記憶域を含んでいる。I/
Oシステムは、通常、バツフア・セクシヨンで構成され
るか、または、大きなメモリの一部として構成される複
数個のSIMDメモリ装置と一時記憶域との間のデータ
の流れを制御するために、ホスト・コンピユータ及び一
時記憶域の間のデータ流を制御する入力/出力処理手段
とを含んでいる。従つて、I/Oシステムの入力動作は
、ホスト・コンピユータから一時記憶域へのデータ転送
と、第2ステツプにおいて、一時記憶域から、SIMD
メモリ装置へのデータ転送とを含んでおり、また、出力
動作は、ホスト・コンピユータとSIMDコンピユータ
との間のデータを、2次元のバスを介して転送する2段
階の処理である。I/O転送用の入力/出力システムは
、別個のユニツト、即ち、ホスト・コンピユータのサブ
・ユニツトでもよいし、SIMDコントローラが一時的
I/Oバツフア・ストレージの制御として動作する場合
には、SIMDコンピユータ中の1つのユニツトでもよ
い。
【0027】SIMDコンピユータそれ自身は、複数個
の処理エレメントを有するプロセツサ・アレイと、個々
の処理エレメントを接続するネツトワークと、従来通り
に分離された複数個のSIMDメモリ・デバイスとを含
んでいる。SIMDコンピユータは並列にリンクされ動
作される多数の独立した処理エレメントを有する並列ア
レイ・プロセツサである。SIMDコンピユータはイン
ストラクシヨンの流れを発生する制御ユニツトを含み、
そしてまた、コンピユータに対して必要なタイミング信
号を与える。種々の処理エレメントを相互接続するネツ
トワークは、独立した処理エレメントの相互接続体系の
或る種の形式を含んでおり、そして、相互接続は、メツ
シユ(mesh)、多形態の大円環(polymirp
hic−tours)及び超立体(hypercube
)のようなトポロジーを取ることができる。複数個のメ
モリ・デバイスは、個々の処理エレメントのビツト・デ
ータを直接にストアするストレージであり、そして、大
容量メモリを仕切つたパテイシヨン式のバツフアであつ
てもよいメモリ・デバイスの数と、処理エレメントの数
との間には1対1の対応関係がある。
【0028】例えば、図1に示されたようなシステムに
おいては、ホスト・プロセツサ28が与えられている。 このプロセツサは、アレイ・コントローラ14(これは
一時的バツフア・ストレージを含んでいる)にマイクロ
コードをロードするのに用いられ、そして、ホスト・コ
ントローラのデータ・バス30と、アドレス及び制御バ
ス31とを介して、データをアレイ・コントローラ14
と交換し、かつアレイ・コントローラ14の状態を監視
する。この例におけるホスト・プロセツサは、メインフ
レーム・コンピユータ、またはパーソナル・コンピユー
タのような任意の汎用目的のコンピユータであつてよい
。この従来例において、プロセツサ・アレイは、2次元
(2D)ベースで説明されているが、このアレイは異な
つた配列、例えば3次元(3D)、あるいは4次元(4
D)のクラスタ配列として構成することができる。 SIMDアレイ・プロセツサは、処理エレメント(i,
j)のアレイと、処理エレメントP(i,j)への大域
インストラクシヨンの流れを発生するためのアレイ・コ
ントローラ14とを含んでいる。図1に示してはいない
が、この従来例は、一時に1個のビツトを処理する処理
エレメントを持つており、そして、処理エレメントに関
連したメモリのパテイシヨンであるストレージのブロツ
クに関連している。処理エレメントは、双方向ビツト・
ラインによつてそれらの関連する隣の処理エレメントに
、所謂、NEWS(北、東、西、南)ネツトワークによ
つて接続される。従つて、処理エレメントP(i,j)
は、北方、西方、東方及び南方の方向に夫々、処理エレ
メントP(i−1,j)、P(i,j+1)、P(i,
j−1)及びP(i+1,j)に接続されている。この
代表的な例においては、NEWSネツトワークは、北方
及び南方の辺が双方向に相互接続され、かつ、西方及び
東方のエツジが同様に相互接続されるように、トロイダ
ル的に接続される。データをプロセツサのアレイに入力
し、そして、データをプロセツサから出力するために、
コントローラのアレイのデータ・バス26はNEWSネ
ツトワークに接続される。図示されているように、それ
は、アレイの西方−東方の境界に接続されるが、付加的
な接続として、トロイダルの東方−西方NEWS接続に
接続された双方向のトリステイト(3状態)ドライバに
よつて、北方−南方の境界に接続することができる。若
し、処理エレメントの数が、図示のような16×16の
マトリツクスの代わりに、32×32のマトリツクスに
すれば、後述される良好な実施例において、1024個
の処理エレメントが従来の技術で達成することができる
。図示の例において、1本のラインは1個のビツト・ラ
インに使用されるが、機能的なエレメントに接続した2
本のラインは、バスの複数本のラインを表わすのに用い
られている。
【0029】この従来例において、アレイ・コントロー
ラはインストラクシヨン・バス18を通つて処理エレメ
ントに並列にインストラクシヨンを発生し、そして、行
選択ライン20及び列選択ライン22を介して行選択信
号及び列選択信号を発生する。これらのインストラクシ
ヨンは、処理エレメントに対して、ストレージからのデ
ータをロードさせ、データを処理させ、そして、ストレ
ージ中に再度データをストアさせる。従つて、論理的に
は、アレイ・プロセツサの主メモリは、1024個の処
理エレメントのアレイに対して1024個のパテイシヨ
ンのスライス(区画)に分離される。このことは、転送
ステツプにおいて、一度に、32個の32ビツト・ワー
ドがストレージ中に転送されるか、またはストレージか
ら転送されることを意味する。読み取り、または書き込
み動作を遂行するために、メモリは、アドレス・バス2
4を介してメモリ・アドレス・ラインに供給されるイン
デツクス・アドレスによつてアドレスされ、そして、読
み取り、または書き込み動作は、各処理エレメントに並
列に供給される。読み取り動作の間において、行及び列
選択ライン上の行及び列選択信号は、どの処理エレメン
トが動作を行なうかを特定する。従つて、ここで説明し
ている例においては、アレイが32×32である場合、
選択された行中の32個の処理エレメント中に、メモリ
から1つの32ビツト・ワードを読み取ることが可能で
ある。処理エレメントは、1ビツト幅であるメモリ(i
,j)のスライス、即ちブロツクに関連される。区画付
けされたメモリ、つまりメモリのブロツクは、論理的に
言つて、関連した個々の処理メモリに1対1の関係で関
連されているが、メモリのブロツクは通常、他のチツプ
の上に物理的に分離されている。上述のようなアレイプ
ロセツサの従来のアーキテクチヤがどのようにして作ら
れるのかは、ここでは述べないけれども、単一のチツプ
上にプロセツサのアレイと十分なメモリとを有する本発
明のピケツトがどのようにして作られるかについては以
下に説明される。
【0030】従来例の処理エレメントP(i,j)それ
自身は、各レジスタが単一ビツトの情報をストアするこ
とができ、そして、繰り上げを含む入力レジスタ及び出
力レジスタと、ALU(算術演算論理ユニツト)とを含
むものとして理解するのがよい。これは、ALUの入力
、出力に接続され、そしてまた、個々の処理エレメント
P(i,j)と関連されたメモリ(i,j)のスライス
の双方向のデータ・ポートに接続されたマルチプレクサ
でもある。
【0031】別々のインストラクシヨン・バス及びデー
タ・バスがあり、そして、アレイ・コントローラは、マ
イクロコードのストレージを持つており、このストレー
ジにおいて、アレイによつて遂行されるべき処理を決め
るマイクロコードがデータ・バス30と、アドレス及び
制御バス31とを使用したホスト・プロセツサ28によ
つてロードされる。アレイ・コントローラの動作がホス
ト・プロセツサ28によつて開始された後、アレイ・コ
ントローラ14の中のマイクロコード・ストレージに接
続されたマイクロコード制御ユニツトによつて、マイク
ロコードの順序付けが制御される。アレイ・コントロー
ラのALU及びレジスタ・バンクは、アレイ・メモリの
アドレスと、ループ計数と、ジヤンプ・アドレス計算と
、アレイ・コントローラのアドレス・バス上の出力であ
る汎用目的レジスタの動作との発生に用いられる。また
、アレイ・コントローラは、行及び列マスク・コードを
デコードするためのマスク・レジスタを有し、そして、
特定のオペレーシヨン・コードが、情報バスを通つて処
理エレメントに通過する。この例において、アレイ・コ
ントローラは、アレイ・コントローラの中にあつて、機
能的には、ホスト・コントローラのデータ・バスとコン
トローラのアレイのデータ・バスとの間にあるデータ・
バツフアを持つことができる。データは、コントロール
・ストレージ中のマイクロコードの制御の下で、このバ
ツフアから、プロセツサのアレイの中にロードされ、あ
るいは、プロセツサのアレイから、このバツフアの中に
ロードされる。この目的のために、このバツフアは、ア
レイ・コントローラ中のマイクロコードの制御の下で双
方向性のFIFO(最初に入力したものを最初に出力す
る)バツフアとして配列されている。この従来のシステ
ムに関するより細部については、上述の例、特に米国特
許出願第07/519332号のSIMDアレイ・プロ
セツサを参照されたい。
【0032】上述の従来の装置と本発明の実施例とを比
較することができる。図2は、1クロツク・サイクルで
、1バイトの情報を処理するための処理エレメントに接
続されたローカル・メモリ102と組み合わされた処理
エレメントALU101を含む基本的なピケツト・ユニ
ツト100を示す図である。図2に示されているように
、複数個のローカル・メモリを有するピケツト処理アレ
イが、シリコン・ベースのチツプの上に形成され、1バ
イト幅で処理するデータ・フローが、右隣の位置及び左
隣の位置の2方向にデータを通過する隣位置コミユニケ
ーシヨン・バスの論理行、即ちリニヤ・アレイに配列さ
れるように、横方向の隣位置のピケツト(図2において
左側及び右側のピケツト)と共にリニヤ・アレイを形成
するピケツト・ユニツトが、シリコン・ベースのチツプ
、即ち「ピケツト・チツプ」上に形成される。「ピケツ
ト・チツプ」中のピケツトの集合は、チツプ上で水平方
向が望ましい、幾何学的順序で配列されている。図2は
、各ピケツトの処理エレメント及びメモリの間にコミユ
ニケーシヨン通路を含む複数のメモリ及びデータ・フロ
ーを持ち、1つのピケツト・チツプ上に2つのピケツト
のピケツト・アレイを示した代表的な実施例を示してい
る。本発明の実施例において、アレイ中の処理エレメン
トと1対1の関係を持つメモリの間のデータ・コミユニ
ケーシヨン通路は、1バイト幅であり、そして、左隣の
位置、または右隣の位置と交差しており、そして、離れ
たピケツトの処理エレメントとのコミユニケーシヨンは
、「スライド」により行なわれる。
【0033】「スライド」とは、送られているメツセー
ジに対してピケツトが透過でなければ、通常その情報を
受け取ることができるピケツトのアドレス・ロケーシヨ
ンを通過して、最も近くの隣の位置のアクテイブのピケ
ツト・ユニツトにデータが到着し、そして受け取られる
まで、隣ではない位置に、1サイクルで情報を転送する
手段である。従つて、スライドは、「オフに転じた」ピ
ケツトを通過して、隣の位置ではない離れた位置に情報
を送る機能を持つている。ピケツト「A」が、離れたピ
ケツト「G」に情報を転送することを望んでいるものと
仮定する。そのサイクルの前に介入した「A」と「G」
の間にあるピケツトは、これらの「B」乃至「F」ピケ
ツトがオフになることによつて透過にされる。次に、次
の1つのサイクルにおいて、ピケツト「A」は、右側へ
そのメツセージを送り、このメツセージを転送している
間において、オフに転じて透過になつたピケツト「B」
乃至「F」を通つて上述のメツセージを通過させ、そし
て、ピケツト「G」は未だオンなので、ピケツト「G」
がメツセージを受け取る。「スライド」の通常の使用に
おいて、情報はアレイの格子(ラテイス)を通つてリニ
ヤに転送されるが、スライドのアプローチは、2次元的
なメツシユにより動作することもできるし、或は、多次
元的なアレイの中で動作することもできる。
【0034】本発明の良好な実施例における処理エレメ
ントのアクセスは、ビツトに対して直列による動作では
なく、バイトに対して直列な動作(従つて、ビツトに対
して並列な動作)で行なわれる。各プロセツサは、ロー
カル・メモリのブロツク、及び関連したパテイシヨン、
またはそのページにアクセスするのではなく、それ自身
に接続されたメモリにアクセスする。1ビツトのバスの
代わりに、1キヤラクタ(文字)の幅、または複数キヤ
ラクタの幅のバスが与えられる。1クロツク・サイクル
において、情報を1ビツト毎に処理するのではなく、1
クロツク・サイクルで1バイトが処理される(または、
他の実施例のシステムにおいては、複数のキヤラクタ・
バイトを重複して動作させる)。従つて、関連したメモ
リの幅にマツチするために、8ビツト、16ビツト、ま
たは32ビツトを、各ピケツト処理エレメントの間で転
送することができる。本発明の良好な実施例においては
、各ピケツト・チツプは、32キロ・バイトの8(9)
ビツト幅を持ち、好ましくは、リニヤ・アレイのピケツ
ト・ノード毎にこの32キロ・バイトを持つ16個のピ
ケツトを持つのが望ましい。本発明の1実施例において
、各関連メモリは、DRAMとしてのCMOSであり、
キヤラクタ・バイトは9ビツトである(自己チエツク機
能を持つ8ビツト・キヤラクタとして機能する)。
【0035】ピケツトの間、そして、処理エレメントの
間の並列通路でバイト幅のバスのデータ・フローは、従
来のシステムの直列ビツト構成を超えて大きく改良され
るけれども、このことはまた、この改良によつて強化さ
れた並列方式が、更に次の問題を生じており、新規に開
発されたアーキテクチヤが暗に含む問題を理解すること
が必要である。これに対する重要な解決法について以下
に説明する。
【0036】ここで考慮される特徴は、左隣及び右隣へ
の転送と、図面を参照して説明したスライドのメカニズ
ムとに加えて、2バイト幅のブロードキヤスト・バスを
与えているので、すべてのピケツトは同じデータを同時
に見ることができる。ピケツト制御及びアドレスの転送
は、このブロードキヤスト・バスにより転送される。ま
た、このバスは、セツト結合動作及び他の比較動作、ま
たは同期式マツチ動作を遂行する時に、比較データを供
給する。
【0037】1つのインストラクシヨン・ストリームの
制御の下で、ピケツト・データ処理エレメント内の処理
を与える高度の並列データ構成を持つタスクは、人工知
能のパターン・マツチング、マルチ・センサの最適割り
当てにおけるセンサ及びトラツクの融合、コンテクスト
検索及びイメージ処理のアプリケーシヨンを含んでいる
。然しながら、現在入手可能なこれら多くのアプリケー
シヨンは、1つのクロツク時間内で、ビツト毎に直列に
行なう処理をしているので、SIMD処理は使用されて
いない。例えば、従来の通常の直列処理エレメントのS
IMDマシンは、各ADD(加算)処理サイクル毎に1
ビツトを実行するのとは対照的に、32ビツト並列のマ
シンは、1つの加算サイクルに32ビツトを実行するこ
とができる。
【0038】各処理エレメント毎に32キロバイトを持
つ構造において、各処理エレメントに対して論理的に利
用可能なメモリは、通常のSIMDマシンが与えるメモ
リの数よりも遥かに多数のメモリを与える。
【0039】本発明に従つて、チツプの回路の中に入り
、そしてチツプの回路から出るデータは最小限に維持さ
れているので、チツプ上のピン接触子は少数である。 このDRAMメモリは、メモリ・アレイの裏側の列デマ
ルチプレクシングを除去することによつて「行−列」ア
クセスをサポートし、そして、並列にされたデータ・フ
ローに対してメモリ・アレイの行を読み取る行アドレス
を与えるような通常のメモリのCMOSアレイである。
【0040】このメモリは、データに加えて、「トリ・
ビツト(tri−bit)」、即ち「トリツト(tri
t)」を含んでおり、これは、ロジツク1か、ロジツク
0の何れかである通常のバイナリ・デイジツトではなく
、「ロジツク1」か、「ロジツク0」か、または「ドン
トケア(don’t care)(無視)」かの何れか
のロジツクによつて認識される3状態を持つている。マ
ツチ・フイールド中のドントケアはロジツク1か、また
はロジツク0の何れかとマツチする。トリツトはストレ
ージ・アレイ中の相次ぐストレージ・ロケーシヨンに含
まれている。マスクは、ピケツト処理エレメントのマス
ク・レジスタに差し向けられたメモリの中にストアされ
たデータの他のフオームである。
【0041】ストレージ・アレイはコマンドを含むこと
ができ、このことは、1つのピケツトは他のピケツトと
は異なつた動作をすることが可能であることを意味する
。すべてのピケツトであることは必要ではないが、大部
分のピケツトに含まれている動作の間での個々のピケツ
トのオン・チツプの制御が、独特なSIMD動作を実現
するのを可能とする。ピケツトに与えられた1つの簡単
な制御機能は、ステータス出力が特別な状態を満足した
すべてのピケツトの動作を中断する機能である。従つて
、ゼロでない状態がドーズ(doze)を意味する。ド
ーズは、ピケツトが動作を一時停止した状態であり、そ
して、ピケツトを不活性に転ずるが、ステータスは覚え
ている状態である。ピケツトに与えられる他のコマンド
は、ピケツトの状態に基づくか、または、スライド動作
の前にバスに与えられたコマンドに基づいて、メモリへ
の書き込みを禁止したり、あるいは、メモリへの書き込
みを許容するコマンドである。
【0042】夫々が32キロバイトのメモリを持つ16
個の強力なピケツトを1つのピケツト・チツプに適用す
ることによつて、たつた64個のチツプが1024個の
プロセツサと、32768キロバイトのメモリを与える
。ピケツトのアレイは、一組の連想メモリを含んでいる
。また、本発明は数字を集中処理するイメージ分析及び
ベクトル処理に使用することができる。この強力なピケ
ツト処理アレイは、現在、たつた2枚の小さなカードに
実装することができる。数千のピケツトが、より小型で
低電力に実装されたパツケージとすることができ、例え
ば、飛行中の航空機において、大きな積載量を考えるこ
となしに、ビデオのフレーム時間内か、小さな遅延時間
でイメージ処理のアプリケーシヨンの実行を可能にする
【0043】このピケツトの力は、狭い空間に実装され
た大容量の連想メモリ・システムを作成する可能性があ
り、そして、システムの設計者がこのような新しいシス
テムの使用に慣れた後には、この処理能力を種々のアプ
リケーシヨンに使用することができる。
【0044】図3は、完全連想メモリと呼ばれているメ
モリを示しており、これは、関連することが要求された
時、すべてのメモリ・ロケーシヨンに対して比較値が与
えられ、そして、メモリの一致ライン(比較の一致を表
わす出力ライン)上に、メモリのすべてのロケーシヨン
が、同時に応答するようなメモリである。連想メモリそ
れ自身は公知である。メモリ及び処理エレメントの並列
ピケツトを使用して、サーチを行なうためにバイト転送
を持つ本発明のシステムにおいて、N個のワードを含む
メモリの中でワードKをサーチするために、データの入
力と、サーチをするためのマスクとがある。一致したす
べてのピケツトがステータス・ラインを上昇し、次に、
他の動作が最初に一致したKを読み取る、即ち一致した
Kを選択する。通常、セツト連想動作と言われているこ
の動作は、相次ぐワードに対してピケツトのメモリをサ
ーチすることによつて繰り返し行なうことができる。同
様に、上昇された選択ラインが参加を表示し、そしてブ
ロードキヤスト・データが選択されたすべてのピケツト
にコピーされるブロードキヤスト動作によつて、書き込
み動作が行なわれる。
【0045】他の実施例は、図3に示したタイプの完全
連想メモリの部分を含ませるために、各ピケツトに利用
可能なDRAMメモリの数を減らしている。若し、例え
ば512バイトの完全連想メモリが含まれていれば、す
べてのピケツトは一組のサーチ・インデツクスを含むこ
とができ、そして、1回の動作で、512掛ける102
4個のピケツトは、1動作毎に約512000回の比較
、つまり、1マイクロ秒の比較動作において、毎秒51
2ギガ回の比較を行なうことができる。この考えを延長
すれば、1マイクロ秒で数テラ回の比較動作回数の範囲
にまで応用することができる。この実施例は、現在の計
算能力を遥かに超えた高度の能力によつて情報の集中的
なサーチを行なう連想タスクを強化するものである。
【0046】別のアルゴリズムのアプリケーシヨン、あ
るいは別の動作をするアプリケーシヨンや、人工知能の
試みや、SIMDの環境で試みられる並列的なプログラ
ミングなどに加えて、図2に示されたようなメモリ及び
バイト幅の処理エレメントを連想動作に用いると、現在
利用可能なアプリケーシヨンにおいて、SIMDの環境
にある上述のチツプ構成を持つマシンにより動作するこ
とができるアプリケーシヨンは多数のものがある。
【0047】マトリツクス掛け算を含んで単純に並列化
可能な算術演算のタスク及びこの特別なメモリ・マシン
で行なうことができる他のタスクは、フオン・ノイマン
型のマシンで遂行することができるが、例えば、3次元
イメージのパターン・マツチングのような膨大な並列化
に適用可能なアプリケーシヨンによつて非常に高速化す
ることができるイメージ・マッチング及びイメージ処理
や、データベースの質問機能や、人工知能の分野におけ
るパターン・マツチングや、ネツトワークのブリツジの
他の側のユーザに行くメツセージを迅速に識別するため
のブリツジ中のネツトワーク制御や、ゲート・レベルの
シミユレーシヨンや、VLSIの基本ルールの違反の検
査装置などである。
【0048】メモリ・バンク及び関連した処理エレメン
トの利益を享受する処理の仕事は、アプリケーシヨン・
プログラマが新しいシステム・アーキテクチヤのパワー
の利益を受けるよう新しい開発をする時に、アプリケー
シヨン・プログラマが担う仕事である。
【0049】デイジタル・システムの記述を保持する処
理は、ピケツト100個毎に1つのゲート、または1つ
のロジツク素子に対して、1個のアレイを使用すること
によつて強化することができる。そのようなシステムに
おいて、その処理は、ゲート入力として受け取つた信号
のリストとして各ゲートの記述を割り当て、そして、ゲ
ートが発生した信号を名付けることによつて開始される
。信号が変化するたびに、バス103によりその名前が
すべてのピケツトへブロードキヤストされ、そして、予
測されている入力信号の名前と並列に比較される。若し
、その比較の一致が見い出されると、データ・フロー・
レジスタのビツト中の信号の新しい値をピケツト中に記
録する。全ての信号変化が記録された時、すべてのピケ
ツトは、並列に制御ワードを読み出し、制御ワードは、
入力の現在の組を何のようにして使用するかをそれらの
データ・フローに知らせる。これらの計算を並列に遂行
させ、その結果をローカル・ゲートからの古い値と比較
する。出力が変化したピケツトのすべてのゲートをデー
タ・フロー・ステータス・ビツトに記録する。外部のコ
ントローラは、すべてのピケツトを質問し、そして、変
化された次のゲートを求める。次に、ピケツトから他の
すべてのピケツトに該当する信号名と値をブロードキヤ
ストし、そして、もはや信号が変化しないか、または、
この処理が停止されるまで、このサイクルが繰り返され
る。
【0050】他の処理は辞書の名前の検索である。全て
の辞書の名前の最初の文字を、ブロードキヤスト・デー
タ・アドレス・バス103上の所望のブロードキヤスト
名と比較することができるように、辞書の名前がピケツ
トのメモリ102中にストアされる。マツチしない全て
のピケツトは所定の制御信号によつてオフに転じられる
。次に、第2の文字が比較され、上述と同じプロシージ
ヤが行なわれ、以下同様に、アクテイブなピケツト・ユ
ニツトがなくなつた時点、つまり、辞書の名前の最後の
文字に到達するまで、同じ比較動作及びオフに転じるプ
ロシージヤが、後続する文字に対して繰り返される。 辞書の名前の最後の文字が処理された時点において、残
つたピケツト・ユニツトは質問され、所望のデータのイ
ンデツクスがシーケンサによつて読み取られる。
【0051】図4は、このようなシステムの制御ストラ
クチヤを示すSIMDサブシステムとして構成すること
ができる並列アレイの一部として単一のシリコン・チツ
プ上で、行に配列されたピケツト・ユニツトに対して並
列に接続された複数個のプロセツサ及びメモリと、ピケ
ツト・ユニツトとの基本的ピケツト構造を示す図である
。また、この基本的ピケツト構造は制御プロセツサと管
理用マイクロプロセツサとを示している。メモリ及び並
列の処理エレメントが示された図4において、図4の中
の同じチツプ上のロジツクは、セクシヨン・ラベルが付
された「ピケツトのアレイ」中に示されている。各メモ
リは、8(9)ビツトの文字幅が好ましいnビツト幅を
持つているが、概念的には、複数バイト幅のメモリのワ
ード幅を持つている。従つて、並列のピケツト・プロセ
ツサ・エレメントのメモリ部分は8(9)ビツト幅か、
または16ビツト、もしくは32ビツト幅が望ましい。 現在の好ましいCMOS技術によつて、各ピケツトは処
理エレメントを有する8ビツト(自己チエツクを持つ場
合は9ビツト幅)か、またはキヤラクタ幅の連想メモリ
を使用するのが望ましい。メモリは結合された処理エレ
メントと1対1で直接に関連されており、結合された処
理エレメントは、ALUと、マスク・レジスタ(マスク
動作のために用いるA&Q)と、ラツチ104(図4の
SR)と、そして、ピケツトの細部を示した図2に示さ
れているステータス・レジスタ107と、データ・フロ
ーAレジスタ105及びQレジスタ106(図4のDF
)とを含んでいる。チツプそれ自身の上の複数ビツト幅
のDRAMメモリと、処理エレメントとの間は1対1で
関連されているので、DRAM及び各ピケツト・プロセ
ツサのロジツクは、ネツトワークの接続を行なうのに何
等の負担をかけない。
【0052】図4において、Bレジスタのラツチ(SR
)104のラツチは、メモリと、処理エレメントのAL
Uの関連したロジツクとの間に論理的に置かれており、
そして、そのラツチは、ピケツトのアレイに沿つた各処
理エレメントのための接続ポートの主要部になることは
注意を要する。各ピケツト・チツプは、ピケツト制御と
コミユニケーシヨンをするために、直線(一直線のバス
として示されている)に配列された複数個の並列ピケツ
ト処理エレメントを含んでいる。ベクトル・アドレス・
バスはメモリに対して共通であり、データ・ベクトル・
アドレス・レジスタは、どのデータが各メモリを通過す
るかを制御する。
【0053】また、図4は、本発明の1実施例において
、IBMのPS/2システムとして構成されたインテル
社製の386マイクロプロセツサを有する主プロセツサ
、即ちマイクロプロセツサMPのカードと、サブシステ
ム・コントローラとの間を相互接続しており、そして、
マイクロプロセツサMPは、大域インストラクシヨンを
、サブシステム・コントローラを通してキヤンド・ルー
チン・プロセツサCRPに送り、キヤンド・ルーチン・
プロセツサCRPは、インストラクシヨン・シーケンサ
402及び実行制御403にインストラクシヨンを与え
、実行制御403は  インストラクシヨン・シーケン
サによつて呼び出された特別のマイクロコードを実行す
ることが示されている。このインストラクシヨン・シー
ケンサ402は、機能的にはコントローラと類似してい
る。然しながら、実施例のキヤンド・ルーチン・プロセ
ツサCRPの中にはローカル・レジスタ405が与えら
れており、ローカル・レジスタ405は、ローカル・レ
ジスタALU(図示せず)と協働して、ピケツトのアレ
イ406の中のすべてのピケツトにブロードキヤストす
るすべてのアドレツシングの基礎を与える。このように
して、ピケツトのリソースや、ピケツトの実行サイクル
を用いることなく、1つのALUの中のすべてのピケツ
トに対するアドレス計算が遂行される。この重要な付加
的な機能は、ピケツトのアレイに対する制御の柔軟性を
与えて、遂行される特別のタスクに対してドーズ機能、
禁止機能、またはその他の機能を可能とし、また、すべ
てのブロードキヤストインストラクシヨン、またはデー
タの機能からピケツトを分離するのを可能とする。
【0054】ピケツトのアレイの中に含まれるデータに
対してSIMD処理を行なうために、ロードされたマイ
クロコード407を持つインストラクシヨン・シーケン
サ402は、主プログラムのマイクロプロセツサMPと
、キヤンド・ルーチン・プロセツサCRPのラン・タイ
ム・ライブラリ408のキヤンド・ルーチンとによつて
決められたSIMDインストラクシヨン・シーケンスの
下で実行することをピケツトのアレイにブロードキヤス
トする。
【0055】サブシステムのインターフエースを介して
マイクロプロセツサMPに与えられるインストラクシヨ
ンは、マイクロプロセツサのサブシステム・コントロー
ラによつてマイクロプロセツサに送られる「Start
  Process」、「Write  Obser.
」及び「Read  Result」を含む高レベルの
処理コマンドである。マイクロプロセツサMPは、図4
、図5、図6及び図7中に示されたサブシステム配列の
中のメーン・システム、即ち制御プロセツサであるとし
て考えることができる。この装置は、また、キーボード
のような周辺入力装置(図示せず)及びデイスプレー・
ユニツト等の付加的装置を持つ独立したユニツトでもよ
いことには注意を払う必要がある。この独立構成におい
て、マイクロプロセツサMPのシステムは、図7に示さ
れた線に沿つて挿入されるシーケンサ・カード(それは
キヤンド・ルーチン・プロセツサを構成する)と、プロ
セツサのアレイのカードとを含む市販のIBMのPS/
2であると考えることができる。ルーチン・ライブラリ
411は、CALL(,)、Kalman、Convo
lve、及びNav.Updateのようなプロセスの
全体の制御に対するルーチンのシーケンスを含むことが
できる。これらのルーチンの選択は、ユーザのプログラ
ムの選択に属しているので、全体の処理は、外部のホス
ト・プロセツサの制御の下か、またはMP中にあるユー
ザのプログラム412の制御の下で行なわれる。データ
・バツフア413は、並列ピケツト・プロセツサ・シス
テムへのデータの転送、または、並列ピケツト・プロセ
ツサ・システムからのデータを転送するために、MPの
メモリ中に与えられている。インストラクシヨン・シー
ケンサ402は、マイクロプロセツサからの制御信号の
ストリームと、キヤンド・ルーチン・ラン・タイム・ラ
イブラリ・メモリ408中にストアされているキヤンド
・ルーチンとを実行するように構成されている。これら
のルーチンの内のあるものは、キヤンド・ルーチン・ラ
ン・タイム・ライブラリ408によつて与えられるキヤ
ンド・ルーチンからのCALL(,)、Load  B
lock、Sin、Cos、Find、Min、Ran
ge  Copm及びMatrixMultiplyを
含んでいる。
【0056】また、キヤンド・ルーチン・プロセツサC
RPの中には、「ロード」、「読み取り」、「加算」、
「掛け算」及び「マツチ」機能のような低レベルの実行
を制御するためのマイクロコード407がある。
【0057】このシステムにおいて、FOR/NEXT
の外部制御を、各処理ユニツトに与えるのが望ましい。 また、1実施例において、決定論的な(determi
nistic)浮動小数点バイトの正規化動作が与えら
れている。
【0058】本発明の実施例に与えられたシステムのマ
クロの改善の決定論的なアプローチを使用することによ
つて、ピケツトのグループ化と、「グループ」制御とを
可能としている。個々のピケツトの処理の変化に適合す
るために、ローカルなドーズ機能が与えられる。
【0059】ユーザのプログラムがプロセツサのアレイ
による実行を必要とする場合には、原始的なコマンド、
アドレス及びブロードキヤスト・データがピケツト・プ
ロセツサのアレイに与えられる。
【0060】システムの各部分が使用する特定の機能は
、遂行されるべきタスクによつて決定され、そして、ユ
ーザのプログラムのコンパイル動作の時に割り当てられ
る。
【0061】サブシステムの柔軟性は、むしろ共通問題
によつて説明することができる。例えば、マトリツク乗
算の問題....[x]*[y]=[z]を取り上げる
【0062】これは、以下の問題として表わすことがで
きる。
【0063】
【0064】これは、以下に示すようなパス(pass
)の数を示した近くのステートメントと、この例の場合
に与えられた1回のパス当りのクロツク・サイクルの数
が述べられているステートメントとによつて解くことが
できる。
【0065】                          
                         
          cycles/        
                         
                 passes  
    pass01    Call Matrix
 Mult Fx                 
          1          c   
         (R,M,C,Xadder, Y
addr, Zaddr)02    xSUB = 
ySUB = zSUB = 1          
              1          
303    DO I = 1 to C     
                         
   1          304      DO
 J = 1 to R              
                 C       
   305       z = 0       
                         
      CxR       5/6*06   
    DO K = 1 to M        
                      CxR
        307    ***Assign 
to associative parallel p
rocessor***08          Zz
 = Xx x Yy + Zz          
             CxRxM   204/
345*09                ***
Return result***10       
   xSUB = xSUB + R       
                  CxRxM  
    211          ySUB = y
SUB + 1                  
       CxRxM      212    
   NEXT K                
                     CxRx
M      313       xSUB = x
SUB − MxR + 1            
          CxR        214 
      ySUB = ySUB − M    
                        C
xR        215       zSUB 
= aSUB + 1               
             CxR        2
16      NEXT J           
                         
  CxR        317      xSU
B = 1                    
                C        
  218    NEXT z          
                         
     C          319   END
 Call                    
                   1     
     1    註  *固定小数点(4バイト)
/浮動小数点(1+4バイト)
【0066】上述の例を
吟味すると、上述のステートメント08で表示されたタ
スクは、サイクル時間の約98%を必要としていること
が判る。従つて、そのタスクは並列ピケツト・プロセツ
サのSIMD構造に割り当てられる。他の処理はサイク
ル時間のたつた2%しか取らず、マイクロプロセツサの
中のアーキテクチヤの中で維持される。
【0067】従つて、マトリツクス乗算のこの例を吟味
して、「マイクロ・プロセツサ」MP、「キヤンド・ル
ーチン・プロセツサ」CRP、「ローカル・レジスタ」
LR、または「ピケツト・アレイ」の何れかによる実行
が割り当てられる。
【0068】マトリツクス乗算の上述の例において、ス
テートメント01はメーン・プロセツサMPの中で実行
するように割り当てられ、ステートメント02、05、
10、11、13、14、15及び17はローカル・レ
ジスタLRの中で実行するように割り当てられ、ステー
トメント03、04、06、12、16、18及び19
はキヤンド・ルーチン・プロセツサCRPの中で実行す
るよう割り当てられるが、時間を浪費する他のマトリツ
クス処理は、単一のインストラクシヨンの下で、ピケツ
トのアレイで実行するよう割り当てられ、従つて、ステ
ートメント08の実行はピケツトのアレイに割り当てら
れる。
【0069】図5は、複数個の並列ピケツト・プロセツ
サを組み込んだ複数並列式ピケツト・プロセツサ装置5
10を示す図である。図5に示した装置は、複数のター
ゲツトの追跡、センサ及びデータの融合、信号処理、人
工頭脳、サテライト・イメージ処理、パターン/ターゲ
ツト認識、リード・ソロモン・エンコード/デコード動
作のようなアプリケーシヨンに使用される装置であつて
、1024個のプロセツサに対して2枚乃至4枚のSE
M  Eカード511(図5では、1システム当り4枚
のカードとして表わされている)を持つ1024個の並
列プロセツサを有するSIMDシステムとして構成され
ている。個々のカード512はウエツジロツク・スライ
ド(くさびにより固定する案内溝)を有するカード架装
着用仕切り513の中に挿抜可能に装着されており、そ
して、それらのカードには挿抜用のレバー516が設け
られているので、カバー517が閉じられた時に、32
メガバイト、または64ギガバイトのストレージを有し
、架台中にマウント可能な1秒間に約20億回の動作を
行う能力があるシステムを効果的に収容する。このシス
テムはコンパクトであり、複数個のピケツトのアレイは
、複数枚のカードの相互接続を可能とし、論理回路を有
するバツクパネル・ボード518の中に差し込まれる。 32メガバイトのストレージを持つプロセツサは4枚の
SEM  Eカード上に形成されており、この装置の重
量は僅か約13.6キログラム(約30ポンド)しかな
い。電力は、図示されたように電源装置519により与
えられる。この空冷式のプロセツサのために必要な電力
は、約280ワツトである。各SIMDシステムは、関
連するメーンフレーム・コンピユータとのチヤンネル・
アダプタ・コミユニケーシヨン用、つまり、外部回路と
の接続のために2つのI/Oポート520を持つている
。夫々のプロセツサが4つのロジツク・ページで構成さ
れ、標準的な航空工学用のパツケージ方法を用い、そし
て外部メモリに接続するためのバス構造を有する図示の
複数並列式ピケツト・プロセツサは、主たる任務を遂行
するプロセツサのメモリ・バスに、I/Oポートを通し
て接続することができ、そして、主たる任務遂行用のプ
ロセツサのメモリ容量の拡張用として見ることができる
【0070】図示された複数並列式ピケツト・プロセツ
サは1024個の並列接続された処理エレメントを含ん
でおり、各プロセツサは324キロバイトのローカル・
メモリを有し、並列ピケツト・プロセツサは、並列で8
ビツト幅、または、キヤラクタ幅(9ビツト幅)である
【0071】各ピケツト中のプロセツサは、隣のプロセ
ツサとデータの交換を行い、そして、クロスバーが望ま
しいが、代案として、スライド・クロスバー、シヤツフ
ル・ネツトワーク(Shuffle Network)
、ベース3のNキユーブ(Base 3 N−Cube
)、またはベース8のNキユーブ(Base 8 N−
Cube)のバツクプレート相互接続ネツトワークを介
してページの間でデータの交換を行う。
【0072】システムの個々のピケツト・プロセツサは
4枚のカードの内の2枚のカード・パツク内に含まれて
おり、PS/2マイクロプロセツサは1枚のカード上に
あり、キヤンド・ルーチン・プロセツサ・シーケンサは
、図6及び図7に模式的に示されているシステムに含ま
れている4枚のカードの内の他方のカードに含まれてい
る。個々のピケツト100、即ちピケツトのカード51
2は、ラツチ・アーキテクチヤ104と、シーケンサの
カード703の実行制御に結合されたローカル・レジス
タ405とによつて制御されるデータ状態に基づく動作
に入るか、または動作を除くために、キヤンド・ルーチ
ン・プロセツサCRPによつて構成することができる。 従つて、ピケツト・プロセツサは、整列と、浮動小数点
演算に関連した正規化動作とを独立して遂行することが
できる。
【0073】以下に説明されるように、プロセツサは共
通のシーケンサによつて並列に制御される。シーケンサ
のカード703は、ピケツト・プロセツサのコントロー
ラCRPを含み、そして、古典的なビツト直列の処理と
同様なバイト直列方式のSIMDプロセツサのアレイで
実行するためにコード化されたインストラクシヨンの単
一スレツドを、ピケツト・プロセツサに実行させる。こ
のコントローラは3つの層を持つている。ピケツトのた
めのマイクロ・コントロールは、近代的なプロセツサと
同様にマイクロプログラム化されている。マイクロコン
トロール及びピケツトは同じクロツク・システムCLK
で同期されているので、シーケンサによつて制御される
機能は同じクロツク時間で実行することができる。マイ
クロコントロールのシーケンサにコマンドを送ることは
、キヤンド・ルーチン・プロセツサの機能である。この
シーケンサ・カード703は、殆どの機能の間で、ルー
プ制御コマンドを実行するコントローラであり、新しい
マイクロコントロールの順序を最初から開始する。キヤ
ンド・ルーチン・ライブラリ408と、そのルーピング
機能とを持つこのコントローラは、良好に送られたピケ
ツトを保持し、結合されたコマンドを保持しない。キヤ
ンド・ルーチン・プロセツサのコントローラCRPは、
サブシステムにおいて、一次管理ピケツト・コントロー
ラとして動作するメーン・システムによつて呼び出され
たマクロの大量の集合を含んでいる。これは、ピケツト
・アレイのトツプ制御システムである。これは、ピケツ
トのアレイの活動を管理する386マイクロプロセツサ
である。任意の瞬間において、プロセツサのサブセツト
は、制御フローに独立して反応するが、アレイのすべて
のピケツトは、同じインストラクシヨンを実行する。
【0074】個々の反応の幾つかの変化があるので、各
ピケツトのバイト制御機能(ドーズ機能、禁止機能等)
によつて、プログラミングが利用し、そして、プログラ
ムのコンパイル動作の間でシステムの制御の下で行われ
るローカルな独立性を持つている。
【0075】加えて、既に説明したように、ローカル・
メモリをアドレスする動作に対して独立性を持つている
。SIMDコントローラのシーケンサは、使用するすべ
てのピケツトに対する共通のアドレスを供給する。各ピ
ケツトは、データに依存するメモリ・アドレスを行なう
能力を強化するために、ローカルにアドレスすることを
増進することができる。
【0076】加えて、ピケツトは、ローカルの状態に依
存してアレイの活動に参画させ、または参画させないこ
とができる。
【0077】この特徴があるので、1つ、またはそれ以
上のグループに各ピケツトを割り当てる手段によつて、
SIMD処理にグループの概念を導入することが可能で
あり、構成の変更を発生することができる場合、処理は
、これらのグループ化に基づいて進行することができる
。1実施例において、ただ1つのグループか、またはグ
ループの組み合わせは、一度に活性化することができ、
夫々のグループが同じSIMDインストラクシヨンのス
トリームを実行する。或る種の動作は、サブセツト、ま
たはピケツトのグループの動作だけを必要とする。プロ
グラミングは、この能力を利用することができる。ロー
カルの参画の独立性はそのように仕事に適合させる。ピ
ケツトが多ければ多い程、計算速度が早くなるのは明ら
かである。
【0078】参画するピケツトの数を増加するための1
つの方法は、各ピケツトに、ピケツト自身のインストラ
クシヨン・ストリームを実行させることである。これは
、実質的にSIMD内のMIMDである。同じSIMD
マシンをMIMDマシン、または、異なつた構成のマシ
ンとして構成することが可能である。この理由は、ピケ
ツトを、インストラクシヨンそれ自身の順序で動作する
ようにプログラムすることが可能なためである。
【0079】各ピケツトは、それ自身の順序を持たせる
ことができ、ピケツト・レベルでのインストラクシヨン
の非常に簡単な組をデコードすることが可能であり、こ
のことは、より強力なローカルな処理を行うことが可能
となる。この機能が最初のアプリケーシヨンを見い出す
可能性がある場合には、この領域は複雑な意志決定を行
い、単純な固定小数点処理は、プログラマに対して他の
興味ある領域である。
【0080】そのような単純なプログラムは、約二千を
越えない数のピケツト・プログラムのブロツクをピケツ
ト・メモリ102の中にロードすることができ、そして
、これらのブロツクは、SIMDコントローラのカード
703が特定されたxyzアドレスで始まる実行制御に
よつてローカルな実行を開始した時に、実行することが
できる。これは、コントローラが、余りにも多くのクロ
ツク数を計数した時か、または、図4のステータス・フ
アンネル(SF)レジスタによつて、タスク完了信号を
テストした時かの何れかまで連続される。
【0081】ステータス・フアンネル・レジスタ(図4
のSF)は、各ピケツトのラツチ104を使用する。各
ピケツトは、ピケツトのステータス状態を反映するため
にロードすることが出来るラツチ104を持つている。 SIMDコントローラは、アレイ・ステータス・ライン
を監視することによつて、これらのラツチ(1つのピケ
ツト当り1つのラツチ)中の合計値をテストすることが
できる。このアレイ・ステータス・ラインは、各ピケツ
ト・ステータス・ラツチからの値の論理的組み合わせで
ある。
【0082】以下の例において、500以内で250よ
りも大きな数を、数式、500>x>=250で表わす
範囲に調節したいものと仮定する。以下のルーチンは、
タスクが達成されたことを検出するためにステータス・
フアンネルを使用する。
【0083】     If  VALUE  <  500  th
en  TURN  YOUR  PICKET  O
FF     STAT  <  − PICKET  OF
F  CONDITION    IF  STAT 
 FUNNEL  =  OFF  then  fi
nished − − − −     VALUE  <  −  VALUE  −
  250    Repeat
【0084】従つて、多数並列式ピケツト・プロセツサ
の構成は種々の態様のSIMDプロセツサとして構成す
ることができる。良好な実施例におけるそのようなSI
MDマシンは、古典的な態様でインストラクシヨンの単
一のスレツドを実行するためにプログラムされ、そして
、SIMDコントローラ、または、シーケンサの全般的
な制御の下で、古典的なプロセツサと同様なシーケンス
方式でSIMDプロセツサのアレイに実行するためにコ
ード化される。アプリケーシヨン・レベルにおいて、こ
れは、ベクトル及びインストラクシヨンのようなベクト
ルによつて達成され、これらのベクトルはプロセツサの
中で進ませることも、プロセツサを通して進ませること
もできる。ベクトル・インストラクシヨンは、通常、6
個乃至10個のベクトル・インストラクシヨンをマイク
ロインストラクシヨンに加えることができる。
【0085】図6は、並列プロセツサのサブシステムの
実施例の機能的なブロツク図である。システムのI/O
ポートを通して、ホスト・インターフエース制御413
によつて制御された時、サブシステムのシーケンサは、
処理エレメントの機能を制御する高機能のマクロを持つ
SIMDプログラムと同様に機能する。メモリをアドレ
スする動作は、8ビツト幅、即ちバイト幅のデータ・フ
ローで可能であり、そして、8モジユロの算術ロジツク
が、複数の機能(論理機能、積算機能及び除算機能)の
ために使用されている。浮動小数点のフオーマツトと、
個々のスリープ、ドーズ・モード及び分離アドレツシン
グを持つ独立したピケツト動作とが与えられている。
【0086】サブシステムのコントローラの配列が図7
に示されている。プロセツサのアレイ・カード512(
このサブシステムの例では4枚のカードとして示されて
いるが、2枚のSEM  Eカードに減らすことが可能
である)は、サブシステム・コントローラ702に接続
されているシーケンサCRP703に接続されており、
サブシステム・コントローラ702は、次に、メーン・
メモリ・システムか、または、関連したマイクロチヤン
ネル・バス706にインターフエースするチツプ705
を経た構成の他のサブシステムかの何れかに接続されて
いる。良好な実施例において、サブシステムのコントロ
ーラはIBM社のPS/2(IBM社の商標)の汎用の
マイクロプロセツサ・ユニツトであり、インテル社の3
86プロセツサ・チツプと4メガバイトのメモリとを用
いている。このパーソナル・コンピユータのマイクロプ
ロセツサMP702は、サブシステム中のマイクロチヤ
ンネル・タイプのバス705、706を介してシーケン
サのカードに接続されている。
【0087】
【発明の効果】本発明は、ビツトに対して並列でバイト
に対して直列に処理することのできるSIMDマシンの
並列計算能力を有し、非常に高い密度で製造することが
でき、しかも、空気冷却式に適した構造を持つ半導体チ
ツプを与え、これにより、軽量で、コンパクトな複数並
列式のプロセツサ装置を作ることができる。
【図面の簡単な説明】
【図1】従来の技術に基づいて構成された最近のSIM
Dプロセツサを説明するための模式図である。
【図2】シリコン・ベースのチツプ上で、プロセツサ、
メモリ、制御ロジツク及び連想メモリで構成された1対
の基本的なピケツト・ユニツトであつて、ピケツト連想
メモリがアレイ中の他のピケツトとバイト単位のコミユ
ニケーシヨンをするピケツト・ユニツトを示す図である
【図3】連想メモリの処理動作を説明するための図であ
る。
【図4】マイクロプロセツサのコントローラと、キヤン
ド・ルーチンのための金属配線されたシーケンス・コン
トローラと、ピケツトのアレイとを使用し、そして、独
立した1個の単体として作ることができ、基本的な並列
ピケツト処理システムとして形成されたSIMDサブシ
ステムのための基本的な16(n)個のピケツト構成を
説明するための図である。
【図5】複数個の図4のピケツト・プロセツサを使用し
た複数ピケツト・プロセツサの装置を示す図である。
【図6】複数個の図4のピケツト・プロセツサを組み入
れた複数ピケツト処理システムを示す図である。
【図7】図5に示したカードを持つサブシステム・コン
トローラの配列を示す図である。
【符号の説明】
14  アレイ・コントローラ 20  行選択ライン 22  列選択ライン 24  アドレス・バス 28  ホスト・プロセツサ 30  データ・バス 31  制御バス 100  ピケツト・ユニツト 101  ALU(算術演算ユニツト)102  ロー
カル・メモリ 103  ブロードキヤスト・データ・アドレス・バス
104  Bレジスタ 105  Aレジスタ 106  Qレジスタ 107  ステータス・レジスタ 402  インストラクシヨン・シーケンサ403  
実行制御 405  ローカル・レジスタ 406  ピケツトのアレイ 407  マイクロコード 408  キヤンド・ルーチン(ラン・タイム・ライブ
ラリ) 411  ルーチン・ライブラリ 412  ユーザ・プログラム 413  データ・バツフア 510  複数並列式ピケツト・プロセツサ装置702
  サブシステム・コントローラ703  シーケンサ
・カード

Claims (39)

    【特許請求の範囲】
  1. 【請求項1】  各ピケツト・ユニツトが1つの処理エ
    レメントに対して連想処理を行なう連想式の動作方法に
    おいて、すべてのピケツト・ユニツト中の情報を並列に
    処理するための処理エレメントに接続されているローカ
    ル・メモリが組み合わされているビツト並列の処理エレ
    メントを有するピケツト・ユニツトを複数個含む並列処
    理システム。
  2. 【請求項2】  上記複数個のピケツト・ユニツトのメ
    モリはアレイに配列されており、それらのメモリを持つ
    ピケツト・ユニツトのアレイはセツト連想メモリを構成
    することを特徴とする請求項1に記載の並列処理システ
    ム。
  3. 【請求項3】  シリコン・ベースのチツプ上に複数の
    メモリを有するピケツトの処理エレメントのアレイが形
    成され、各処理エレメントの1つが2つのピケツト・ユ
    ニツトの間で2方向にデータを通過する隣位置コミユニ
    ケーシヨン通路によつて、バイト幅の列内容でアドレス
    可能であり、論理行に、即ちアレイに配列されたメモリ
    として動作することができるように、シリコン・ベース
    のチツプ上に形成され、且つ、両側に隣接するピケツト
    ・ユニツトと共にアレイを形成している複数個のピケツ
    ト・ユニツトを含むことを特徴とする請求項1に記載の
    並列処理システム。
  4. 【請求項4】  複数個のピケツト・ユニツト及びメモ
    リを有することと、各ピケツトの処理エレメント及びメ
    モリの間と、ピケツト・ユニツトの間とにデータ・フロ
    ーの通路を有するピケツト処理アレイのメモリ・チツプ
    が与えられていることとを特徴とする請求項1に記載の
    並列処理システム。
  5. 【請求項5】  アレイに配列された複数個のピケツト
    ・ユニツトが与えられ、各処理エレメントに対して1対
    1で結合されたメモリを有するピケツト・ユニツトの間
    でデータを転送する通路は、隣りのピケツト・ユニツト
    の方向の左側若しくは右側に通じるか、または、スライ
    ド・コミユニケーシヨンを与えるスライド手段によつて
    離隔したピケツト・ユニツトに通じることを特徴とする
    請求項1に記載の並列処理システム。
  6. 【請求項6】  上記スライド手段は、送られるメツセ
    ージに対してピケツト・ユニツトが透過でなければ、通
    常はその情報を受け取ることのできるピケツトのアドレ
    ス・ロケーシヨンを通過して、最も近くにあるアクテイ
    ブなピケツト・ユニツトにメツセージが到着して受け取
    られるまで、隣ではないピケツト・ユニツト位置に1サ
    イクルで情報を転送するのを可能とすることを特徴とす
    る請求項5に記載の並列処理システム。
  7. 【請求項7】  上記スライド手段は、転送サイクルの
    前に、割り込みピケツトが割込みピケツト・ユニツトを
    オフにすることによつて透過にされ、そして、転送サイ
    クルにおいて、制御手段が離隔したピケツト・ユニツト
    の到達位置に、第1のピケツト・ユニツトにその情報を
    送らせた時に、第1のピケツト・ユニツトから離隔した
    ピケツト・ユニツトへの情報の転送が可能となるように
    、「ターン・オフ」にされたピケツトを通過して、隣で
    はない位置に情報を送ることによつて、スライド機能を
    可能とすることを特徴とする請求項6に記載の並列処理
    システム。
  8. 【請求項8】  2次元アレイを通る格子を直線的に通
    つてメツセージを転送し、または、アレイ中の3次元方
    向にメツセージを転送する手段が与えられたことを特徴
    とする請求項6に記載の並列処理システム。
  9. 【請求項9】  各ピケツト・ユニツトはプロセツサに
    接続されたローカル・メモリにアクセスするプロセツサ
    を有し、そして、キヤラクタ幅、またはキヤラクタ幅の
    倍数の幅のデータ及びインストラクシヨンがシステムの
    1クロツク・サイクルでピケツト・ユニツトの間を通過
    することを特徴とする請求項1に記載の並列処理システ
    ム。
  10. 【請求項10】  各ピケツト・チツプはそれ自身のロ
    ーカル・メモリを有することと、各ローカル・メモリは
    、少なくとも32キロバイトのストレージを持つピケツ
    ト・ユニツトのアレイ中にキヤラクタ幅のセツト連想メ
    モリが与えられていることと、リニヤ・サブアレイのノ
    ードとして16ピケツト・ユニツトが与えられているこ
    ととを特徴とする請求項1に記載の並列処理システム。
  11. 【請求項11】  すべてのピケツト・ユニツトが同時
    に同じデータを見ることができるように、ピケツト・ユ
    ニツトの間のコミユニケーシヨンに対してブロードキヤ
    スト・バスが与えられていることを特徴とする請求項2
    に記載の並列処理システム。
  12. 【請求項12】  ピケツト・ユニツトのローカル・メ
    モリは、メモリ・アレイの中でCMOSのDRAM型メ
    モリであり、メモリ・アレイの裏側の列デマルチプレキ
    シングを削除することによつて行−列アクセスをサポー
    トし、そして、メモリ・アレイの行から、並列にデータ
    ・フローを読み出させる行アドレスを与えることを特徴
    とする請求項2に記載の並列処理システム。
  13. 【請求項13】  ロジツク1か、またはロジツク0か
    、またはドントケアの何れかを表示するロジツクによつ
    て、3つの状態があり、且つ、セツト連想メモリのスト
    レージ・アレイの中の相次ぐストレージ・ロケーシヨン
    に、トリビツト(トリツト)が含まれるように、メモリ
    はデータに加えて、「トリツト」を含むことを特徴とす
    る請求項2に記載の並列処理システム。
  14. 【請求項14】  ピケツト・ユニツトによる個々の動
    作に対して制御機能を与えるためのピケツト・ユニツト
    制御手段が与えられていることを特徴とする請求項1に
    記載の並列処理システム。
  15. 【請求項15】  上記ローカル・メモリは複数ビツト
    のバイナリ参照ストレージ・アドレスを有することを特
    徴とする請求項1に記載の並列処理システム。
  16. 【請求項16】  特別の状態に一致するステータス出
    力を持つピケツト・ユニツトにおいて個々のピケツト・
    ユニツト内の動作を一時中止させる制御機能用の制御手
    段及び外部制御ストアが与えられ、上記制御機能は、ド
    ーズ機能及び禁止機能を与え、ピケツト・ユニツトの状
    態に基いてメモリを書き込み可能とし、上記外部制御ス
    トアからの信号を受け取つた後に、ピケツト・ユニツト
    に与えられた制御機能を可能とすることを特徴とする請
    求項1に記載の並列処理システム。
  17. 【請求項17】  上記各ローカル・メモリ及びピケツ
    ト・ユニツトの処理エレメントは、バイト転送手段と、
    メモリ中の情報の位置のマスクと、データを入力する手
    段とが与えられ、更に、サーチを行なうためにメモリを
    アドレスする手段と、メモリ中のN個のワード中の1つ
    のワードをサーチするために、サーチ用のマスク及びデ
    ータの入力用の手段とが与えられ、サーチで一致した位
    置は一致信号ラインを上昇し、別の動作が第1の一致を
    選択し、上昇された選択ラインが参画を表示し、そして
    、ブロードキヤスト・データが選択されたすべてのワー
    ド位置にコピーされるブロードキヤスト動作を行なうブ
    ロードキヤスト手段が設けられていることとを特徴とす
    る請求項2に記載の並列処理システム。
  18. 【請求項18】  外部コントローラと、論理ゲート及
    びレジスタを持つ複数個の処理ユニツトと、メモリとを
    含む並列処理システム中で、デイジタル・システムの記
    述を保持するための方法において、記述されたゲートが
    発生した信号をその入力及び名前として記述し、受け取
    つた信号のリストとしてデイジタル・システムの各ゲー
    トの記述を割り当てるステツプと、上記信号が変化する
    たびに、その名前がすべての処理ユニツトにブロードキ
    ヤストされ、そして、予想されている入力信号の名前と
    並列に比較されることを要求するステツプと、上記比較
    の一致が見い出されたか否かを続け、そして、データフ
    ロー・レジスタの新しい値を処理ユニツト中に記録する
    ステツプと、すべての上記信号変化が記録されるまで続
    行し、次に、出力を計算するために入力の現在の組をど
    のように使用するかをそれらのデータフローに通知する
    制御ワードをすべての処理ユニツトに並列に読み出させ
    るステツプと、これらの計算を並列に行なわせて、その
    結果をローカル・ゲートからの古い値と比較するステツ
    プと、出力が変化した処理ユニツトのすべてのゲートを
    データ・フローのステータス・レジスタ中に記録し、そ
    して、外部コントローラにより、すべての処理ユニツト
    に対して質問させて、変化した次のゲートを求めるステ
    ツプと、上記処理ユニツトからの該当信号名及び値を、
    他のすべての処理ユニツトに対してブロードキヤストし
    、そして、信号変化が最早や発生しないか、または処理
    が停止されるまで、上述のサイクルが繰り返されること
    を含むデイジタル・システムの記述を保持する方法。
  19. 【請求項19】  処理ユニツト及びメモリの間でデー
    タ及び制御信号を転送するために接続された複数個の処
    理ユニツト及びローカル・メモリを持つ並列処理システ
    ムを使用するデータの比較方法において、すべての辞書
    名の最初の文字が、並列処理システムの複数個の処理ユ
    ニツトにブロードキヤストされる所定のブロードキヤス
    ト名の最初の文字と比較することができるように、処理
    ユニツトのメモリ中に辞書の名前をストアすることと、
    一致しないすべての処理ユニツトは与えられた制御特性
    によつてオフにされ、次に、辞書名の第2の文字が比較
    され、その後、アクテイブな処理ユニツトが無くなるか
    、または辞書名の最終文字に達するまで、処理ユニツト
    をオフにするプロシージヤが繰り返され、次に、上記処
    理ユニツトに質問が与えられ、その後、処理ユニツトか
    ら読み取られるべき所望のデータを索引することからな
    るデータの比較方法。
  20. 【請求項20】  処理ユニツトは、各処理ユニツトに
    対して1対1の関係でローカル・メモリに結合されてい
    るALU、マスク・レジスタ、ラツチ、ステータス・レ
    ジスタ(SR)及びデータ・フロー・レジスタ(DF)
    を含む請求項1に記載の並列処理システム。
  21. 【請求項21】  上記ローカル・メモリは複数ビツト
    幅のダイナミツク・ランダム・アクセス・メモリであり
    、各ピケツト処理ユニツトのロジツクは、ダイナミツク
    ・ランダム・アクセス・メモリのローカル・メモリと同
    じシリコン・チツプ基体上に形成されており、そして、
    ローカル・メモリとその処理エレメントとの間には1対
    1の直接の結合関係があり、セルを有する上記ローカル
    ・メモリは複数ビツト・アドレスを持つていることを特
    徴とする請求項1に記載の並列処理システム。
  22. 【請求項22】  各処理ユニツトはマスク・レジスタ
    とラツチが与えられており、上記ラツチは、上記複数個
    の処理ユニツトに対して共通であるコミユニケーシヨン
    ・ラインに沿つて各処理ユニツトの接続ポートとして機
    能するように設けられていることを特徴とする請求項1
    に記載の並列処理システム。
  23. 【請求項23】  上記システムの個々のピケツト処理
    ユニツトの状態を制御するために、外部制御シーケンサ
    及びローカル制御レジスタ手段を有することを特徴とす
    る請求項1に記載の並列処理システム。
  24. 【請求項24】  上記複数個のピケツト・ユニツトは
    ローカルな独立性を持ち、そして、上記ピケツト・ユニ
    ツトの結合ユニツト・アレイとして構成可能であること
    を特徴とする請求項23に記載の並列処理システム。
  25. 【請求項25】  上記システムはSIMD及びMIM
    Dとして構成することができ、そして、上記複数個の処
    理ユニツトはプログラム可能な構成に割り当てされ、シ
    ステムの個々の処理ユニツトは妥当なローカルな独立性
    を持つていることを特徴とする請求項24に記載の並列
    処理システム。
  26. 【請求項26】  バスを介して上記外部制御レジスタ
    とコミユニケートし、大域インストラクシヨンを並列処
    理システムによつて実行させる手段を持つているメーン
    ・プロセツサ・システムを有することを特徴とする請求
    項23に記載の並列処理システム。
  27. 【請求項27】  上記外部制御シーケンサはマイクロ
    コード・メモリに接続され、上記マイクロコード・メモ
    リは機能用のキヤンド・ルーチンによつてプログラム可
    能であることを特徴とする請求項23に記載の並列処理
    システム。
  28. 【請求項28】  上記シーケンサは、バスにより上記
    シーケンサに接続された処理ユニツトの機能を制御する
    ための高い機能マクロが与えられており、システムのロ
    ーカル・メモリのメモリ・アドレツシングは、バイト幅
    のデータ・フローと、論理機能、加算、乗算及び除算機
    能に使用されるモジユロ8の算術演算ロジツクを可能と
    し、そして、上記並列ユニツトの中で浮動小数点動作と
    、個々のピケツト処理ユニツトの別々のアドレツシング
    によつて独立したスリープ及びドーズ・モードとが与え
    られていることを特徴とする請求項26に記載の並列処
    理システム。
  29. 【請求項29】  機能の動作は、上記メーン・プロセ
    ツサ・システム、キヤンド・ルーチンを持つ上記外部制
    御シーケンサ、上記ローカル・レジスタ手段、または上
    記複数個のピケツト処理ユニツトにおいてプログラム的
    に割り当てすることが可能であり、複数データの拡張処
    理を必要とする単一インストラクシヨンは、SIMD処
    理のために構成された上記複数個の処理ユニツトに割り
    当てられていることを特徴とする請求項26に記載の並
    列処理システム。
  30. 【請求項30】  システムの処理ユニツトは、プログ
    ラム可能なローカルな独立性を持つ処理ユニツトのアレ
    イによつて処理ユニツトのアレイに接続されており、ピ
    ケツト処理ユニツトは、インストラクシヨンのそれ自身
    のシーケンスによつて動作され、そして、データの状態
    に基いて他の処理ユニツトに結合された動作に入るか、
    または他の処理ユニツトに結合された動作から抜け出る
    ことができ、そして、システムの処理ユニツトは浮動小
    数点動作と関連した整列及び正規化動作を独立して行な
    うことができることを特徴とする請求項24に記載の並
    列処理システム。
  31. 【請求項31】  上記外部制御シーケンサは、キヤン
    ド・ルーチン・ライブラリによつて与えられるキヤンド
    ・ルーチンによつて、CALL(,)、Load、Bl
    ock、Sin、Cos、Find、Min、Rang
    e及びMatrixMultiply等の動作を遂行す
    るように構成されたことを特徴とする請求項23に記載
    の並列処理システム。
  32. 【請求項32】  上記キヤンド・ルーチンはLoad
    、Read、Add、Multiply及びMatch
    機能の実行制御が与えられていることを特徴とする請求
    項31に記載の並列処理システム。
  33. 【請求項33】  上記処理エレメントは上記アレイの
    隣の処理ユニツトのアレイ中のデータ及び相互接続ネツ
    トワークを介して上記システム中のページの間のデータ
    を交換することを特徴とする請求項2に記載の並列処理
    システム。
  34. 【請求項34】  上記ピケツト・アレイのために外部
    制御プロセツサが与えられており、マイクロ・コードは
    上記アレイの中の上記ピケツト・プロセツサのグループ
    中のすべてのピケツトに対して並列に転送され、そして
    、ピケツト処理ユニツトは、外部制御プロセツサが同じ
    クロツク時間で実行できるように、同じクロツク・シス
    テムに同期されていることを特徴とする請求項2に記載
    の並列処理システム。
  35. 【請求項35】  ピケツト・アレイ用の上記外部制御
    プロセツサの上に、マイクロ・チヤンネル・バスを通つ
    て外部制御プロセツサに接続されたトツプ制御システム
    ・マイクロプロセツサがあり、そして、プロセツサのサ
    ブセツトは制御フローに対して独立して応答するけれど
    も、任意の時間において、アレイのすべてのピケツト処
    理ユニツトが同じインストラクシヨンを実行するように
    、システムが結合されていることを特徴とする請求項3
    4に記載の並列処理システム。
  36. 【請求項36】  複数個で並列なピケツト処理ユニツ
    トが外部ピケツト・コントローラとコミユニケートする
    アドレス・バスに沿つて配列されており、ピケツト・シ
    ステムのローカル・メモリに対して共通のベクトル・ア
    ドレスがあり、そして、ピケツト・システムの各ローカ
    ル・メモリに対してどのデータを通過するかを制御する
    ためのデータ・ベクトル・アドレス・レジスタ手段があ
    ることを特徴とする請求項1に記載の並列処理システム
  37. 【請求項37】  1つのピケツトから他のピケツトに
    メツセージを通過する接続通路を準備している間に、ア
    レイ中の他のすべてのピケツトと、ビツトに対して並列
    にコミユニケートするための方法及び手段を与えるため
    に、アレイに配列された複数個のピケツト・ユニツトと
    、コミユニケーシヨン通路を持つピケツト・ユニツトの
    間のデータ・フロー用の通路とを設けたことを特徴とす
    る請求項2に記載の並列処理システム。
  38. 【請求項38】  ワイヤ−オア、またはドツトで接続
    されたピケツトを使用して動作するN次元アレイを介し
    て一方から他方にメツセージを通過することを特徴とす
    る請求項37に記載の並列処理システム。
  39. 【請求項39】  ローカル・メモリの小さなセクシヨ
    ンの中のすべてのロケーシヨンが、与えられたパターン
    に対して一致比較動作を行なうようにしたことを特徴と
    する請求項2に記載の並列処理システム。
JP3278900A 1990-11-13 1991-10-01 連想並列処理システム Pending JPH04267466A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61159490A 1990-11-13 1990-11-13
US611594 1990-11-13

Publications (1)

Publication Number Publication Date
JPH04267466A true JPH04267466A (ja) 1992-09-24

Family

ID=24449647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3278900A Pending JPH04267466A (ja) 1990-11-13 1991-10-01 連想並列処理システム

Country Status (15)

Country Link
US (1) US5822608A (ja)
EP (1) EP0485690B1 (ja)
JP (1) JPH04267466A (ja)
KR (1) KR960016880B1 (ja)
CN (1) CN1050919C (ja)
AT (1) ATE180586T1 (ja)
BR (1) BR9104603A (ja)
CA (1) CA2050166A1 (ja)
CZ (1) CZ280210B6 (ja)
DE (1) DE69131272T2 (ja)
HU (1) HU215139B (ja)
PL (1) PL167329B1 (ja)
RU (1) RU2084953C1 (ja)
SK (1) SK344091A3 (ja)
TW (1) TW229289B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412059B1 (en) 1998-10-02 2002-06-25 Nec Corporation Method and device for controlling cache memory

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5765015A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
JP2525117B2 (ja) * 1992-05-22 1996-08-14 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
WO1996035997A1 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
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
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
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
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.)
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
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
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US6021453A (en) * 1997-04-24 2000-02-01 Klingman; Edwin E. Microprocessor unit for use in an indefinitely extensible chain of processors with self-propagation of code and data from the host end, self-determination of chain length and ID, (and with multiple orthogonal channels and coordination ports)
US6789212B1 (en) 1997-04-24 2004-09-07 Edwin E. Klingman Basic cell for N-dimensional self-healing arrays
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US6803989B2 (en) 1997-07-15 2004-10-12 Silverbrook Research Pty Ltd Image printing apparatus including a microcontroller
AUPO850597A0 (en) 1997-08-11 1997-09-04 Silverbrook Research Pty Ltd Image processing method and apparatus (art01a)
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US7724282B2 (en) 1997-07-15 2010-05-25 Silverbrook Research Pty Ltd Method of processing digital image to correct for flash effects
US6985207B2 (en) 1997-07-15 2006-01-10 Silverbrook Research Pty Ltd Photographic prints having magnetically recordable media
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US7551201B2 (en) 1997-07-15 2009-06-23 Silverbrook Research Pty Ltd Image capture and processing device for a print on demand digital camera system
AUPO802797A0 (en) 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART54)
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
US6484065B1 (en) * 1997-12-29 2002-11-19 Kawasaki Microelectronics, Inc. DRAM enhanced processor
JP4158864B2 (ja) 1998-03-18 2008-10-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法
US6079008A (en) * 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6185667B1 (en) * 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
DE19840210A1 (de) * 1998-09-03 2000-03-09 Fraunhofer Ges Forschung Verfahren zur Handhabung einer Mehrzahl von Schaltungschips
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
US6658575B1 (en) * 1999-03-17 2003-12-02 Olympus Optical Co., Ltd. Voice recording/reproducing apparatus which enters a standby mode while in a communication mode with an external device
AUPQ056099A0 (en) 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
AU2471001A (en) * 1999-10-26 2001-05-08 Arthur D. Little, Inc. Multiplexing n-dimensional mesh connections onto (n + 1) data paths
US6728863B1 (en) 1999-10-26 2004-04-27 Assabet Ventures Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory
US6425026B1 (en) * 2000-02-23 2002-07-23 Teranex, Inc. Distribution, processing, and reconstruction of variable-sized images using multiple processor arrays
US6317695B1 (en) 2000-03-30 2001-11-13 Nutec Sciences, Inc. Seismic data processing method
US6452789B1 (en) * 2000-04-29 2002-09-17 Hewlett-Packard Company Packaging architecture for 32 processor server
DE50115584D1 (de) 2000-06-13 2010-09-16 Krass Maren Pipeline ct-protokolle und -kommunikation
US6745268B1 (en) 2000-08-11 2004-06-01 Micron Technology, Lnc. Capacitive multidrop bus compensation
WO2002029601A2 (en) * 2000-10-04 2002-04-11 Pyxsys Corporation Simd system and method
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
JP2004517386A (ja) 2000-10-06 2004-06-10 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 方法および装置
CN1322452C (zh) * 2001-02-24 2007-06-20 国际商业机器公司 环形和树形网络中的算术函数
EP1370967A4 (en) * 2001-02-24 2009-10-21 Ibm OPTIMIZED RESIZING NETWORK SWITCH
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
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
RU2202123C2 (ru) * 2001-06-06 2003-04-10 Бачериков Геннадий Иванович Параллельная вычислительная система с программируемой архитектурой
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7069386B2 (en) * 2001-08-10 2006-06-27 Connex Technology, Inc. Associative memory device
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
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
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
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
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
US7451143B2 (en) * 2002-08-28 2008-11-11 Cisco Technology, Inc. Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
WO2004038555A2 (en) 2002-10-22 2004-05-06 Isys Technologies Robust customizable computer processing system
KR101279726B1 (ko) 2002-10-22 2013-06-27 제이슨 에이. 설리반 동적 모듈식 처리 유닛을 제공하기 위한 시스템 및 방법
JP2006512691A (ja) 2002-10-22 2006-04-13 アイシス テクノロジーズ 改善された熱放散特性を有する非周辺処理制御モジュール
GB0226249D0 (en) * 2002-11-11 2002-12-18 Clearspeed Technology Ltd Traffic handling system
US20040107197A1 (en) * 2002-11-29 2004-06-03 Shen Yu Yong System, method and user interface allowing customized portfolio management
US20040107214A1 (en) * 2002-11-29 2004-06-03 Hung Lup Cheong Patrick Customized document portfolio system integrating IP libraries and technology documents
US20040117374A1 (en) * 2002-12-16 2004-06-17 Hung Lup Cheong Patrick Customized design portfolio integrating IP libraries and technology documents
US7386539B2 (en) * 2002-11-29 2008-06-10 Taiwan Semiconductor Manufacturing Company, Ltd. System, method, and user interface providing customized document portfolio management
US7464254B2 (en) * 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
JP3987805B2 (ja) * 2003-01-27 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
WO2005103927A1 (en) * 2004-04-22 2005-11-03 Waratek Pty Limited Modified computer architecture with finalization of objects
JP2006243839A (ja) * 2005-02-28 2006-09-14 Toshiba Corp 命令生成装置及び命令生成方法
US20090116484A1 (en) * 2005-09-08 2009-05-07 Matsushita Electric Industrial Co., Ltd. Parallelizing Peer-to-Peer Overlays Using Multi-Destination Routing
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
CN101371263A (zh) * 2006-01-10 2009-02-18 光明测量公司 用于在并行处理系统中处理多媒体数据的算法步骤的方法和装置
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US8656143B2 (en) 2006-03-13 2014-02-18 Laurence H. Cooke Variable clocked heterogeneous serial array processor
US20070226455A1 (en) * 2006-03-13 2007-09-27 Cooke Laurence H Variable clocked heterogeneous serial array processor
US7657496B2 (en) * 2006-06-26 2010-02-02 Saffron Technology, Inc. Nonlinear associative memories using linear arrays of associative memory cells, and methods of operating same
US20080059764A1 (en) * 2006-09-01 2008-03-06 Gheorghe Stefan Integral parallel machine
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
US8954484B2 (en) 2009-06-12 2015-02-10 Cray Inc. Inclusive or bit matrix to compare multiple corresponding subfields
US9251207B2 (en) * 2007-11-29 2016-02-02 Microsoft Technology Licensing, Llc Partitioning and repartitioning for data parallel operations
WO2010035173A1 (en) * 2008-09-29 2010-04-01 Nxp B.V. Visual prosthesis implant
DE102009025572A1 (de) * 2009-06-19 2010-12-23 Wolfgang Pree Gmbh Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen
US8930896B1 (en) 2010-07-23 2015-01-06 Amazon Technologies, Inc. Data anonymity and separation for user computation
RU2436151C1 (ru) 2010-11-01 2011-12-10 Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") Способ определения структуры гибридной вычислительной системы
US20140281369A1 (en) * 2011-12-23 2014-09-18 Ashish Jha Apparatus and method for sliding window data gather
RU2513759C1 (ru) * 2012-11-01 2014-04-20 Федеральное государственное бюджетное учреждение науки Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Гетерогенный процессор
US9323714B2 (en) * 2012-12-06 2016-04-26 Coherent Logix, Incorporated Processing system with synchronization instruction
CN105046162B (zh) * 2014-03-12 2018-07-27 西部数据技术公司 在内容可寻址存储系统中维护并使用子对父映射的缓存
RU2614926C2 (ru) * 2015-07-06 2017-03-30 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" Мультипроцессорная система
US9875045B2 (en) * 2015-07-27 2018-01-23 International Business Machines Corporation Regular expression matching with back-references using backtracking
CN110337369B (zh) * 2017-04-14 2021-01-26 惠普发展公司,有限责任合伙企业 用于激活信号的延迟元件
CN113918481A (zh) 2017-07-30 2022-01-11 纽罗布拉德有限公司 一种存储器芯片
US11514996B2 (en) 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors
US10402165B2 (en) * 2017-08-30 2019-09-03 Gsi Technology Inc. Concurrent multi-bit adder
US11256503B2 (en) 2019-03-11 2022-02-22 Untether Ai Corporation Computational memory
US12124530B2 (en) 2019-03-11 2024-10-22 Untether Ai Corporation Computational memory
CN111290787B (zh) * 2019-06-19 2022-11-08 锐迪科(重庆)微电子科技有限公司 运算装置及运算方法
WO2021033125A1 (en) * 2019-08-16 2021-02-25 Untether Ai Corporation Computational memory with processing element row and bank communications
US11342944B2 (en) 2019-09-23 2022-05-24 Untether Ai Corporation Computational memory with zero disable and error detection
US11468002B2 (en) 2020-02-28 2022-10-11 Untether Ai Corporation Computational memory with cooperation among rows of processing elements and memory thereof
US11500811B2 (en) * 2020-06-12 2022-11-15 Alibaba Group Holding Limited Apparatuses and methods for map reduce
CN112540793A (zh) * 2020-12-18 2021-03-23 清华大学 支持多访存模式的可重构处理单元阵列及控制方法、装置
CN118432817B (zh) * 2024-07-02 2024-08-30 中山大学 基于risc-v处理器的量子密钥分发后处理片上系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6219960A (ja) * 1985-07-17 1987-01-28 Nec Corp 多段構成プロセツサシステム
JPS62139066A (ja) * 1985-12-12 1987-06-22 インタ−ナシヨナル・スタンダ−ド・エレクトリツク・コ−ポレイシヨン オンバンドramおよびアドレス発生装置を有する単一命令多重デ−タセルアレイ処理装置

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US4942516A (en) * 1970-12-28 1990-07-17 Hyatt Gilbert P Single chip integrated circuit computer architecture
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4107773A (en) * 1974-05-13 1978-08-15 Texas Instruments Incorporated Advanced array transform processor with fixed/floating point formats
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
ZA811458B (en) * 1980-03-28 1982-03-31 Int Computers Ltd Data processing system
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4394726A (en) * 1981-04-29 1983-07-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Distributed multiport memory architecture
US4468727A (en) * 1981-05-14 1984-08-28 Honeywell Inc. Integrated cellular array parallel processor
DE3144015A1 (de) * 1981-11-05 1983-05-26 Ulrich Prof. Dr. 7500 Karlsruhe Kulisch "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit"
US4498133A (en) * 1981-12-10 1985-02-05 Burroughs Corp. Selector switch for a concurrent network of processors
BG35575A1 (en) * 1982-04-26 1984-05-15 Kasabov Multimicroprocessor system
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US5212773A (en) 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US5008815A (en) * 1983-05-31 1991-04-16 Thinking Machines Corporation Parallel processor
US5146608A (en) * 1983-05-31 1992-09-08 Hillis W Daniel Parallel processor array system controlled in response to composition status signal
US4814973A (en) 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4604695A (en) * 1983-09-30 1986-08-05 Honeywell Information Systems Inc. Nibble and word addressable memory arrangement
DE3506749A1 (de) * 1984-02-27 1985-09-26 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Matrixprozessor und steuerverfahren hierfuer
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
US4901224A (en) * 1985-02-25 1990-02-13 Ewert Alfred P Parallel digital processor
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4805091A (en) * 1985-06-04 1989-02-14 Thinking Machines Corporation Method and apparatus for interconnecting processors in a hyper-dimensional array
US4967340A (en) * 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US5045995A (en) * 1985-06-24 1991-09-03 Vicom Systems, Inc. Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system
HU195972B (en) 1985-07-01 1988-08-29 Richter Gedeon Vegyeszet Process for producing new diamino-androstane derivatives and pharmaceutical compositions containing them
US5047917A (en) * 1985-07-12 1991-09-10 The California Institute Of Technology Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
US4706191A (en) * 1985-07-31 1987-11-10 Sperry Corporation Local store for scientific vector processor
US4739476A (en) * 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
EP0212031B1 (en) * 1985-08-13 1990-11-07 International Business Machines Corporation Dynamic bandwidth allocation mechanism between circuit slots and packet bit stream in a communication network
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US4736291A (en) * 1985-11-22 1988-04-05 Texas Instruments Incorporated General-purpose array processor
US4831519A (en) * 1985-12-12 1989-05-16 Itt Corporation Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells
US4783782A (en) * 1985-12-12 1988-11-08 Alcatel U.S.A. Corporation Manufacturing test data storage apparatus for dynamically reconfigurable cellular array processor chip
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US4916657A (en) * 1985-12-12 1990-04-10 Alcatel Usa, Corp. Single instruction multiple data (SIMD) cellular array processing apparatus employing multiple state logic for coupling to data buses
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4925311A (en) * 1986-02-10 1990-05-15 Teradata Corporation Dynamically partitionable parallel processors
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
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
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4780873A (en) * 1986-05-19 1988-10-25 General Electric Company Circuit switching network with routing nodes
US4809347A (en) * 1986-07-18 1989-02-28 Hughes Aircraft Company Computer vision architecture
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
US5038386A (en) * 1986-08-29 1991-08-06 International Business Machines Corporation Polymorphic mesh network image processing system
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4985832A (en) * 1986-09-18 1991-01-15 Digital Equipment Corporation SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors
US5230079A (en) 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US5170484A (en) * 1986-09-18 1992-12-08 Digital Equipment Corporation Massively parallel array processing system
CN1008018B (zh) * 1986-09-27 1990-05-16 徐肇昌 一种具有合作能力的同构型多计算机系统及其合作方法
US4841476A (en) * 1986-10-06 1989-06-20 International Business Machines Corporation Extended floating point operations supporting emulation of source instruction execution
US5010477A (en) * 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5175865A (en) 1986-10-28 1992-12-29 Thinking Machines Corporation Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
DE3702614A1 (de) * 1987-01-29 1988-08-11 Standard Elektrik Lorenz Ag Digitales koppelnetz fuer leitungs- und paketvermittlung und koppeleinrichtung hierzu
JPS63192153A (ja) * 1987-02-05 1988-08-09 Agency Of Ind Science & Technol 並列デ−タ処理装置
US4964032A (en) * 1987-03-27 1990-10-16 Smith Harry F Minimal connectivity parallel data processing system
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4933895A (en) * 1987-07-10 1990-06-12 Hughes Aircraft Company Cellular array having data dependent processing capabilities
US5170482A (en) * 1987-08-14 1992-12-08 Regents Of The University Of Minnesota Improved hypercube topology for multiprocessor computer systems
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4942517A (en) * 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors
US4872133A (en) * 1988-02-18 1989-10-03 Motorola, Inc. Floating-point systolic array including serial processors
US4896265A (en) * 1988-03-28 1990-01-23 General Electric Company Parallel broadcasting method and apparatus
US4992926A (en) * 1988-04-11 1991-02-12 Square D Company Peer-to-peer register exchange controller for industrial programmable controllers
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
US5038282A (en) * 1988-05-11 1991-08-06 Massachusetts Institute Of Technology Synchronous processor with simultaneous instruction processing and data transfer
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US5005120A (en) * 1988-07-29 1991-04-02 Lsi Logic Corporation Compensating time delay in filtering signals of multi-dimensional reconvigurable array processors
GB2223867A (en) * 1988-09-09 1990-04-18 Univ City Multiprocessor data processing system
US4920484A (en) * 1988-10-05 1990-04-24 Yale University Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
US5041971A (en) * 1988-11-30 1991-08-20 Bolt Beranek And Newman Inc. Memory accessing switch network
US5189665A (en) 1989-03-30 1993-02-23 Texas Instruments Incorporated Programmable configurable digital crossbar switch
US5020059A (en) * 1989-03-31 1991-05-28 At&T Bell Laboratories Reconfigurable signal processor
US5181017A (en) 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
US5049982A (en) * 1989-07-28 1991-09-17 At&T Bell Laboratories Article comprising a stacked array of electronic subassemblies
US5173947A (en) * 1989-08-01 1992-12-22 Martin Marietta Corporation Conformal image processing apparatus and method
JPH0731780B2 (ja) * 1989-09-08 1995-04-10 日本碍子株式会社 磁気ヘッド用コアの製造方法
US5072217A (en) * 1989-10-31 1991-12-10 International Business Machines Corporation One-sided crosspoint switch with distributed control
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5218709A (en) 1989-12-28 1993-06-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Special purpose parallel computer architecture for real-time control and simulation in robotic applications
US5175862A (en) * 1989-12-29 1992-12-29 Supercomputer Systems Limited Partnership Method and apparatus for a special purpose arithmetic boolean unit
US5197130A (en) 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5239629A (en) 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5280474A (en) 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5218676A (en) 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5265124A (en) 1990-02-15 1993-11-23 Advanced Micro Devices, Inc. Integrated multi-port repeater having shared resources
US5142540A (en) * 1990-03-13 1992-08-25 Glasser Lance A Multipart memory apparatus with error detection
US5187801A (en) 1990-04-11 1993-02-16 Thinking Machines Corporation Massively-parallel computer system for generating paths in a binomial lattice
WO1991017507A1 (en) 1990-05-07 1991-11-14 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5251097A (en) 1990-06-11 1993-10-05 Supercomputer Systems Limited Partnership Packaging architecture for a highly parallel multiprocessor system
US5253359A (en) 1990-06-11 1993-10-12 Supercomputer Systems Limited Partnership Control and maintenance subsystem network for use with a multiprocessor computer system
US5367636A (en) 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6219960A (ja) * 1985-07-17 1987-01-28 Nec Corp 多段構成プロセツサシステム
JPS62139066A (ja) * 1985-12-12 1987-06-22 インタ−ナシヨナル・スタンダ−ド・エレクトリツク・コ−ポレイシヨン オンバンドramおよびアドレス発生装置を有する単一命令多重デ−タセルアレイ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412059B1 (en) 1998-10-02 2002-06-25 Nec Corporation Method and device for controlling cache memory

Also Published As

Publication number Publication date
PL167329B1 (pl) 1995-08-31
SK344091A3 (en) 1995-01-05
KR960016880B1 (ko) 1996-12-26
HU215139B (hu) 1998-09-28
CA2050166A1 (en) 1992-05-14
BR9104603A (pt) 1992-06-23
CZ344091A3 (en) 1995-05-17
DE69131272T2 (de) 1999-12-09
DE69131272D1 (de) 1999-07-01
PL292368A1 (en) 1992-09-07
HU913542D0 (en) 1992-02-28
EP0485690B1 (en) 1999-05-26
ATE180586T1 (de) 1999-06-15
EP0485690A2 (en) 1992-05-20
CN1061482A (zh) 1992-05-27
TW229289B (ja) 1994-09-01
CN1050919C (zh) 2000-03-29
EP0485690A3 (en) 1994-09-21
US5822608A (en) 1998-10-13
RU2084953C1 (ru) 1997-07-20
CZ280210B6 (cs) 1995-12-13
KR920010473A (ko) 1992-06-26
HUT59496A (en) 1992-05-28

Similar Documents

Publication Publication Date Title
JPH04267466A (ja) 連想並列処理システム
US5815723A (en) Picket autonomy on a SIMD machine
US5805915A (en) SIMIMD array processing system
US5809292A (en) Floating point for simid array machine
US5754871A (en) Parallel processing system having asynchronous SIMD processing
US5963746A (en) Fully distributed processing memory element
US5966528A (en) SIMD/MIMD array processor with vector processing
US5963745A (en) APAP I/O programmable router
US5708836A (en) SIMD/MIMD inter-processor communication
US5734921A (en) Advanced parallel array processor computer package
US5794059A (en) N-dimensional modified hypercube
US5717943A (en) Advanced parallel array processor (APAP)
US5588152A (en) Advanced parallel processor including advanced support hardware
US5828894A (en) Array processor having grouping of SIMD pickets
Johnson et al. General-purpose systolic arrays
US5625836A (en) SIMD/MIMD processing memory element (PME)
EP0570729A2 (en) Apap I/O programmable router
US5765012A (en) Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
EP0570952A2 (en) Slide network for an array processor
EP0570951A2 (en) Advanced parallel array processor mechanical packaging
JPH06139200A (ja) マルチプロセッサ・メモリ・システム
JPH0635875A (ja) コンピュータ・システム
JP2625628B2 (ja) 浮動小数点コンピュータ・システム
JPH0635878A (ja) 単一命令複数データ/複数命令複数データ・プロセッサ・アレイ用コントローラ
Lopresti Programmable Systolic Arrays