JPH0727516B2 - Simdアレイ・プロセツサ - Google Patents

Simdアレイ・プロセツサ

Info

Publication number
JPH0727516B2
JPH0727516B2 JP63204859A JP20485988A JPH0727516B2 JP H0727516 B2 JPH0727516 B2 JP H0727516B2 JP 63204859 A JP63204859 A JP 63204859A JP 20485988 A JP20485988 A JP 20485988A JP H0727516 B2 JPH0727516 B2 JP H0727516B2
Authority
JP
Japan
Prior art keywords
instruction
array
data
global
processing element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63204859A
Other languages
English (en)
Other versions
JPH01114982A (ja
Inventor
ジエームズ・レイ・テイラー
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH01114982A publication Critical patent/JPH01114982A/ja
Publication of JPH0727516B2 publication Critical patent/JPH0727516B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、相互接続されたプロセッサの多次元アレイを
含む単一命令多重データ(SIMD)アレイ・プロセッサに
関する。
B.従来技術 アレイ・プロセッサには、大別して、MIMD(多重命令多
重データ)式とSIMD(単一命令多重データ)式の2種が
ある。MIMDアレイ・プロセッサでは、アレイ中の処理要
素のそれぞれが、その独自の命令ストリームを自身のデ
ータで実行する。これは、本発明の対象となる種類のア
レイ・プロセッサ、すなわち単一の制御装置からの共通
の命令ストリーム、すなわち大域命令ストリームの制御
下で個々の処理要素が動作する、SIMDアレイ・プロセッ
サとは対照的である。すなわち、共通の命令ストリーム
の制御下で個々の処理要素が動作するので、SIMDマシン
はMIMDマシンよりも柔軟性が小さく、並列に実行できる
機能の範囲がより限られていることになる。ただし、SI
MDマシンの並列処理要素は、通常、MIMDプロセッサより
も単純で数が多い。
多くのSIMDアレイ・プロセッサは、2次元アレイの処理
要素から構成され、各処理要素はその最も近くの処理要
素に接続されて、いわゆるNEWS(北、東、西、南)ネッ
トワークを形成している。この種のアレイ・プロセッサ
の例は、ホックニイ(Hockney)とジェスホープ(Jessh
ope)の共著「並列コンピュータ(Parallel Computer
s)」、Adam Hilger社、1981年刊、pp.182−184、及び
W.ダニエル・ヒリス(Daniel Hillis)の著書「コネク
ション・マシン(The Connection Machine)」、MIT P
ress、1986年刊、pp.74−76にそれぞれ記載されてい
る、ICL分散アレイ・プロセッサ(DAP)及びコネクショ
ン・マシンである。英国特許第1445714号も、従来技術
のSIMDアレイ・プロセッサを例示している。
C.発明が解決しようとする問題点 NEWSネットワークとして配列されたSIMDマシンが柔軟性
を欠くことの一例が、シフト命令に関して見られる。通
常のNEWSネットワークでは、すべての処理要素がある方
向(例えば南)に1位置離れた隣接処理要素からデータ
を受け取る。通常のNEWSネットワークの各処理要素に対
するシフトの方向は、実行中の大域機械命令のパラメー
タとして大域的にしかも一様に決定され、その結果、全
処理要素がデータを同一方向にシフトすることになる。
典型的な命令は、データを北側に3位置だけシフトさせ
るものである。従来技術で知られているその唯一の例外
は、ある種のマシンでは、マスク機能を使ってNEWSネッ
トワークの処理要素を選択的に使用可能にし、使用可能
となった処理要素が大域命令を受け取るようにできるこ
とである。
本発明の目的は、MIMDプロセッサのように経費と複雑さ
を増大させずに、並列処理能力をより発揮させることの
できる、柔軟度が高まった処理要素の多次元アレイを含
む、SIMDアレイ・プロセッサを提供することにある。
D.問題点を解決するための手段 本発明によれば、処理要素の多次元アレイと、大域命令
を上記アレイに出すための制御論理回路とを含む、SIMD
アレイ・プロセッサが提供される。処理要素は、大域命
令を処理要素により実行するために各々デコードするた
めのプログラマブル・デコード手段を含む。
当該処理要素のプログラム式デコード手段は、制御論理
回路からの大域ロード命令に応答してプログラミングで
きるようにすると好都合である。
これから説明する、本発明に基づく、SIMDアレイ・プロ
セッサの特定の実施例では、プログラム式デコード手段
は、大域命令の選択したビットを局所的に修正して局所
修正ビットを形成するためのプログラム式修正手段、及
び受け取った大域命令のビットと上記局所修正ビットを
デコードするための固定デコード手段を含んでいる。
E.実施例 この特定の実施例では、アレイ中の処理要素は、それぞ
れ制御情報用及びデータ用の記憶域が付属しており、大
域ロード命令に応答して、処理要素内の固定デコード手
段が、上記記憶域中の選択された記憶位置から当の処理
要素のプログラム式修正手段内へ修正情報をロードさ
せ、それによって当該処理要素のプログラム式修正手段
がプログラミングされる。さらに、本実施例の処理要素
は、それぞれ、制御情報用及びデータ用の上記記憶域の
当該ブロックと関連付けられており、上記記憶域にアク
セスして、上記各記憶ブロック中の当該の記憶位置にプ
ログラム式デコード手段用の当該の修正情報を記憶させ
る手段が、制御論理回路に設けられている。
以下で説明するこの特定の実施例では、プログラム式修
正手段は、記憶域から上記修正情報を順次受け取る逐次
書込みポート、及び大域命令の上記の選択されたビット
を並列的に受け取る並列読取りポートを有する、ルック
アップ・テーブルを含んでいる。
また、以下で説明する特定のSIMDアレイ・プロセッサで
は、プログラム式デコード手段が大域シフト命令を局所
的に修正するようにプログラミングでき、それによっ
て、アレイ全体に分散されたデータを、アレイ内の複数
の局所的に決定された方向に、一時にシフトさせること
ができる。このプロセッサ中の処理要素は、直交する複
数の方向で相互接続されている。各処理要素は、複数の
出力レジスタ及び多方向入力マルチプレクサを含み、し
たがって、処理要素により、直交する複数方向のそれぞ
れで、多重同時シフト操作を実行できる。
本発明によるSIMDアレイ・プロセッサでは制御に余分の
自由度があるので、従来のSIMDアレイ・プロセッサでは
並列的に処理するのが不可能であった一群のアルゴリズ
ムが日の目を見る。これらのアルゴリズムのいくつかに
ついては、後で説明する。本発明によるSIMDアレイ・プ
ロセッサは、特に、映像処理の応用分野に適しており、
したがって表示装置の一部として実現することができ
る。
第1図は、SIMDアレイ・プロセッサ10の典型的な構造を
示す。プロセッサ10は、処理要素P(i、j)のアレイ
12、及び処理要素P(i、j)に大域命令のストリーム
を出すアレイ・コントローラ14を含んでいる。各処理要
素は、いつでも1ビットに作用し、記憶ブロック(図示
せず)がそれに関連付けられている。処理要素は、いわ
ゆるNEWS(北、東、西、南)ネットワークによって両方
向ビット線を介してその当該の隣接処理要素に接続され
ている。すなわち、処理要素P(i、j)は、それぞれ
北側、東側、西側、南側で、処理要素P(i−1、
j)、P(i、j+1)、P(i、j−1)、P(i+
1、j)に接続されている。NEWSネットワークは、ま
た、その末端で環状に接続されており、北端と南端が両
方向に相互接続され、東端と西端も同様に相互接続され
ている。データをプロセッサ・アレイに入力したり、そ
こから出力したりするために、NEWSネットワークにコン
トローラ/アレイ・データ母線26が接続されている。図
のように、これらのデータ母線はアレイの東西の境界に
接続されている。同様に、その代わりに、あるいはそれ
に加えて、それらのデータ母線を南北の境界に、または
各処理要素に接続することも可能である。データ母線
は、環状の東西NEWS接続部に接続した両方向三状態ドラ
イバを用いて、東西の境界に接続される。当業者には自
明なように、これはデータ母線26の可能な多数の接続手
段の1つにすぎない。
アレイ中の処理要素の数は、必要に応じて選択すること
ができる。典型的な処理要素数は、後で説明する本発明
の特定の実施例で使用するように、32×32=1024個であ
る。ただし、図示し易くするために、16個の個別処理要
素だけを示してある。また、図示し易いという理由で、
第1図には、プロセッサの動作を理解するのに必要な主
要接続だけを示してある。他の図でも同様であるが、第
1図では、機能要素を接続する2重線を用いて、複数の
接続線、すなわち母線を表わし、1本線は、単一ビット
線を示す。接続線は、図の矢印による指示に応じて、1
方向性または、両方向性である。
アレイ・コントローラは、命令母線18を介して処理要素
に命令を並列に出し、行選択線20及び列選択22を介し
て、それぞれ行選択信号及び列選択信号を出す。これら
の命令は、処理要素に、データを記憶域からロードさ
せ、データを処理させ、次いで再度、記憶域にデータを
記憶させる。
各処理要素は、主メモリの1ビット・スライスにアクセ
スできる。したがって、論理的に言えば、アレイ・プロ
セッサの主メモリは、1024個の処理要素のアレイ用に10
24個のスライスに分離されている。これは、最大32個の
ビット・ワードを一時に記憶域にまた記憶域から転送で
きることを意味する。読取り操作または書込み操作を実
行するには、アドレス母線24を介してメモリ・アドレス
線に供給されるインデックス・アドレスを用いてメモリ
をアドレスし、読取り命令または書込み命令を各処理要
素に並列に供給する。読取り操作中、行選択線及び列選
択線上の行選択信号及び列選択信号が、どの処理要素が
操作を実行すべきかを識別する。すなわち、たとえば、
選んだ行の32個の処理要素内へメモリから1個の32ビッ
ト・ワードを読み込むことが可能である。
第1図には、ホスト・プロセッサ28も示されている。こ
のプロセッサを使って、アレイ・コントローラ14にマイ
クロコード・プログラムをロードさせ、それとデータを
交換し、ホスト・コントローラのデータ母線30及びアド
レス/制御母線31を介して、その状態を監視する。ホス
ト・プロセッサは、メインフレーム・コンピュータやパ
ーソナル・コンピュータなど適当な汎用コンピュータな
らどんなものでもよい。ホスト・プロセッサは、本発明
の一部ではないので、これ以上詳しく説明する必要はな
い。
上記のような構造が、従来技術のSIMDアレイ・プロセッ
サにとって典型的である。このタイプのプロセッサは、
英国特許第1445714号明細書に記載されている。
以下では、第1図に示す全体構造をもつ、本発明よるSI
MDアレイ・プロセッサの特定の実施例について説明する
ことにする。ただし、以下の説明から明らかなように、
本発明は第1図に示した構造に限られるものではない。
たとえば、プロセッサのアレイを、2次元ではなく、
(クラスタを使って)3次元、4次元などで編成するこ
とも可能である。また、本発明によるSIMDアレイ・プロ
セッサを、ホスト・プロセッサから分離したものとして
構成するのでなく、たとえば表示アダプタを備えたワー
クステーションなど、表示システムの一体部分にするこ
ともできる。以下で説明するアルゴリズムの例から明ら
かなように、本発明によるSIMDアレイ・プロセッサは、
特に画像処理用に適している。
第1図に示したアレイ・コントローラが、本発明による
SIMDアレイ・プロセッサのこの特定の実施例ではどのよ
うに構成されるかを第2図に示す。本発明にとっては、
第2図に示したアレイ・コントローラの細部構造も、そ
の動作の特定の細部も本質的なものでない。したがっ
て、以下ではアレイ・コントローラの構造及び動作を簡
単に説明するにとどめておく。
アレイ・コントローラ14は、アレイ・プロセッサが実行
すべき処理を定義するマイクロコードを、ホスト・プロ
セッサ28がデータ母線30及びアドレス/制御母線31を介
してロードする場所であるマイクロコード記憶域32を含
んでいる。ホスト・プロセッサ28がアレイ・コントロー
ラ14の動作を始動させると、母線36を介してマイクロコ
ード記憶域に接続されているマイクロコード制御機構34
によって、マイクロコードの実行順序が制御される。演
算論理機構(ALU)38及びレジスタ・バンク40は、アド
レス母線24上に出力されるアレイ・メモリ・アドレスの
生成、ループ・カウンティング、飛越し先アドレス計
算、及び様々な汎用レジスタ動作に使用される。条件付
分岐用にフラグ線39が設けられている。行マスク用プロ
グラム式論理アレイ(PLA)42及び列マスク用プログラ
ム式論理アレイ(PLA)44は、個々の行選択線20及び列
選択線22上に信号を発生させるために実行されるマイク
ロ命令中の行マスク・コード及び列マスク・コードをデ
コードするために使われる。処理要素P(i、j)への
命令を形成する命令コードが、命令母線18に送られる。
ホスト・コントローラ間データ母線30とコントローラ・
アレイ間データ母線26の中間に、データ・バッファ46が
示されている。このデータ・バッファにより、プロセッ
サのアレイへ書き込むべきホストからのデータを、高速
でアレイ・コントローラ14にダウン・ロードすることが
可能となる。次いで、マイクロコードの制御下で、デー
タをプロセッサのアレイにロードすることができる。同
様に、このバッファを利用して、アレイとホストの間で
データを転送することができる。そのために、データ・
バッファは、マイクロコード制御機構の制御下にある両
方向先入れ先出し(FIFO)バッファとして配置されてい
る。
本発明の特定の実施例で使用する命令形式を第3図に示
す。第3図に示した形式は、単に、本明細書で説明する
SIMDアレイ・プロセッサの特定の例で使用されるものに
すぎないことに留意されたい。当業者なら以下の記載か
ら明らかなように、本発明の他の実施例では、プロセッ
サ・アレイ用コントローラの形態、個々の処理要素の複
雑さなどに応じて、別の形式を用いることもできる。
プロセッサ・アレイの制御に関係する命令のフィールド
は、第63ないし第56ビットの処理要素命令コード“PeO
p"、第55ないし第48ビットの行マスク・コード“Mask
r"、第47ないし第40ビットの列マスク・コード“Maskc"
である。“PeOp"フィールドは、命令コード、すなわち
大域的にアレイ内の処理要素に並列に出される命令を形
成する。行マスク及び列マスクの目的は、“PeOp"コー
ドで指定される命令を、選んだ処理要素だけが実行でき
るようにすることにある。そうするとメモリ読取り操
作、プロセッサ間要素シフト、プロセッサ内要素レジス
タ操作を、選んだ処理要素だけが実行できるようにな
る。“Maskr"及び“Maskc"フィールドの内容は、それぞ
れ行マスクPLA42及び列マスクPLA44によってデコードさ
れ、個々の行選択線20及び列選択22が適宜設定される。
第3図に示したその他のフィールドは、すべて、通常の
やり方でのアレイ・コントローラの実行順序制御及びア
レイ・メモリ・アドレスの生成に関係するものである。
第39ないし第36ビットの“Test"フィールドは、アレイ
・コントローラ内部の命令の流れを定義するもので、マ
イクロコード制御機構の“テスト”入力ポートに送ら
れ、飛越しなどが可能となる。第35ないし第32ビットの
“Aluop"フィールドは、コントローラALU38の全般的動
作を定義するもので、そのFsel入力ポートに送られる。
第31ないし第28ビットの“Regs"フィールド及び第27な
いし第24ビットの“Regd"フィールドは、コントローラ
のレジスタ・バンク40中の転送元レジスタ及び転送レジ
スタを選択するのに使用され、この目的で、それぞれレ
ジスタ・バンクのR及びW制御入力端に送られる。
第23ないし第0ビットの“オフセット”フィールドは、
ALU動作用及びアレイ・メモリ・アドレス生成用の引数
を定義するもので、ALU38の入力ポートAに送られる。
第4図に、プロセッサ・アレイ12の個々の処理要素P
(i、j)の主要構成要素を示す。各処理要素は、一時
に1データ・ビットに作用することを理解されたい。
処理要素はALU48を含み、ALU48は、図に示した処理要素
の特定の例ではA、C、Q、M、Nと記した入力ポート
及びA、C、Qと記した出力ポートを備えている。出力
ポートA、C、Qは、Aレジスタすなわち演算結果レジ
スタ50、Cレジスタ、すなわちシフト・レジスタ52、及
びQレジスタ、すなわちNEWS出力レジスタ54に接続され
ており、これらのレジスタはそれぞれ1ビットの情報を
記憶することができる。これらのレジスタの出力線は、
ALUの当該入力ポートA、C、Q及びマルチプレクサ56
に接続されている。マルチプレクサ56により、A、C、
Qレジスタのうち選択可能な1つのレジスタの出力をそ
の出力線58に送ることができる。マルチプレクサ56の出
力線58は、ALUのM入力ポート、及び処理要素P(i、
j)に関連するメモリ・スライス16(i、j)の両方向
データ・ポート59にも接続されている。
各処理要素は、1ビット幅のメモリ・スライス16(i、
j)すなわちブロックに関連付けられている。このスラ
イスまたはブロック・メモリは、論理的に処理要素内に
含まれているが、実際にはそれから物理的に分離してい
てもよい。各処理要素は同様なメモリ・ブロックを有す
るので、アレイの32×32個のメモリ・ブロックは、それ
ぞれが32個の32ビット・ワードを含む、複数の平面を構
成するアレイ・メモリと考えることができる。各平面
は、当該のインデックス・アドレスにある各処理要素か
らの1ビットから構成される。アドレス母線24を介し
て、1個のインデックス・アドレスをアレイ・メモリに
供給することにより、ビット平面の1つにアクセスする
ことができる。
Qレジスタの出力線は、北側の隣接処理要素(P(i−
1、j))、東側の(P(i、j+1))、西側の(P
(i、j−1))、南側の(P(i+1、j))に接続
されている処理要素P(i、j)のNEWS出力線60(i、
j)ともなっている。NEWSネットワーク中の隣接処理要
素から処理要素P(i、j)にシフトすべきデータは、
入力マルチプレクサ62によって選択される。入力マルチ
プレクサ62は、北側、東側、西側、南側の隣接処理要素
のNEWS出力線60(i−1、j)、60(i、j+1)、60
(i、j−1)、60(i+1、j)に接続されている。
入力マルチプレクサ62の出力線は、ALU48のN入力ポー
トに接続されている。
処理要素の動作は、命令母線18を介してアレイ・コント
ローラ14から受け取る命令、または命令コードによって
制御される。アレイ・コントローラからの命令コード
“PeOp"は、アレイ・コントローラからの命令母線18を
介して、各処理要素内のデコーダ64で並列に受け取られ
る。従来技術のSIMDアレイ・プロセッサと同様に、問題
の処理要素用の行選択線20i及び列選択線22jの状態によ
って、命令をその処理要素が実行するかどうかが決ま
る。各処理要素中のデコーダは、その処理要素のアレイ
内の位置に該当する行選択線及び列選択線に接続されて
いる。第i行第j列にある処理要素P(i、j)の場
合、これは第i行選択線20i及び第j列選択線20jとな
る。特定のデコーダ64への行選択線と列選択線の両方を
選択すると、デコーダは受け取った命令コードをデコー
ドし、それによって制御母線66、68、70を介して入力側
マルチプレクサ62、ALU48、出力側マルチプレクサ56に
制御信号を出すことにより、指定された命令をプロセッ
サに実行させる。
ALU48中で、2つの基本的動作形式が実行される。第1
の動作形式は、入力データの1ビットが単にALUの入力
ポートから出力ポートへ送られるだけの経路指定動作で
ある。たとえば、NEWS入力線の選んだ1本からマルチプ
レクサ62へ、さらにその入力側マルチプレクサ62、ALU
の入力ポートN、ALUの出力ポートQを介して、NEWS出
力レジスタを形成するQレジスタへ、データの1ビット
を送ることができる。そこから、NEWSネットワークに情
報が出力される。同様に、メモリ・アドレス母線24上の
アドレスによって指定されたメモリ16内の記憶位置か
ら、メモリの両方向データ・ポート59、ALUのM入力ポ
ートとQ出力ポートを介して、Qレジスタへ、データの
1ビットを送ることができる。第2の基本的動作形式は
算術演算である。図の処理要素中で、演算結果レジスタ
50及びシフト・レジスタ52が主としてそのような演算に
使用される。ALUで実行できる実際の演算は、ALUの内部
構造によって変わる。このことは、本発明の理解にとっ
て本質的ではないので、詳しくは説明しないことにす
る。当業者にとって自明なように、通常の場合、ALUは
通常のやり方で実現される。
従来技術のSIMDアレイ・プロセッサでは、デコーダは、
通常、複数のハード配線で接続された論理ゲートの形で
ハード配線で接続されている。それとは対照的に、本発
明によるSIMDアレイ・プロセッサ中のデコーダは、プロ
グラム可能である。本発明の特定の実施例では、命令修
正機構として働くルックアップ・テーブルを設けること
により、デコーダはプログラム可能となっている。さら
に、本発明のこの実施例では、デコーダ64への命令コー
ド入力の選んだビットだけがルックアップ・テーブルに
よって修正される。
第5図に、本発明のこの特定の実施例のデコーダ64をよ
り詳しく示す。このデコーダは、ハード配線によって接
続されたゲートなど通常の固定式デコーダ論理回路の形
の第1の部分72、及びルックアップ・テーブル(LUT)7
4の形の第2のプログラム可能部分から構成されてい
る。線18(i)ないし18(vi)及び行選択線、列選択線
上の命令コードのビットは、通常のようにプログラム式
論理アレイ(PLA)に直接入力されるが、命令コードの
ビット18(v)及び18(vi)の2個はルックアップ・テ
ーブルを並列にアドレスするために使われる。これらの
ビットによってアクセスされたルックアップ・テーブル
の記憶位置の2ビット出力線が、修正命令ビット線18
(vii)及び18(viii)を形成し、それらのビット線も
固定式デコーダ論理回路72に入力される。固定式デコー
ダ論理回路72は、線18(i)ないし(viii)上の入力デ
ータを論理的に組み合わせて、制御母線66、68、70上に
出力制御情報を形成する。
第5図に示したルックアップ・テーブルは、それぞれ2
ビットからなるワードを4個含む。アレイ・コントロー
ラからの大域「ルックアップ・テーブル・ロード」命令
に応答して、これら8ビットのデータが、メモリ16
(i、j)からデータ線76を経て並列にロードされる
(第4図も参照のこと)。処理要素のルックアップ・テ
ーブルは、初期設定以前には不確定情報を含んでいるの
で、「ルックアップ・テーブル・ロード」命令は、受け
取ったままの命令コードの未修正ビット18(i)ないし
18(vi)、すなわちルックアップ・テーブルを通過して
いないビットのみを使用する。各処理要素中のデコーダ
は、この命令を受け取ると、線18(v)及び18(vi)の
値に関係なく、母線66、68、70上及びデコーダ内部の制
御線78上に制御信号を生成する。制御線78は、ルックア
ップ・テーブル用の書込み許可線である。当該の各処理
要素のルックアップ・テーブル用の当該の制御または修
正データが、以前にデータ母線26及びQレジスタ54を介
して各処理要素P(i、j)に関連するメモリ・スライ
ス16(i、j)中の当該の記憶位置にロードされてお
り、したがって大域命令及びメモリ・アドレスを使っ
て、制御データにアクセスしそれを各処理要素のルック
アップ・テーブルに読み込むことができる。大域無修正
命令を使って、従来技術のやり方でアレイを操作するこ
とにより、制御情報の記憶を行なう。
本発明によるSIMDアレイ・プロセッサでは、“PeOp"命
令コードによって定義される大域命令が基本的に2種類
存在する。局所的に修正できない大域命令と、局所的に
修正できる大域命令である。前者は、まずデータを処理
要素にロードし、データをアレイ中でシフトさせ、その
データをアレイ・メモリに記憶させ、次いで修正データ
をルックアップ・テーブルにロードするのに用いる大域
命令である。その他のすべての命令は、原則上、局所的
に修正できるが、適当な修正情報がルックアップ・テー
ブルにロードされている場合にしか使用できない。固定
式デコーダ論理回路72は、デコード中の命令が局所的に
修正可能かどうか、及び処理要素によって実際に実行さ
れる操作を決定するために線18(vii)及び18(viii)
上の入力データ(すなわち修正された命令ビット)を使
うかどうかが認識できるように、線18(i)ないし18
(vi)上の入力データ(すなわち未修正の命令ビット)
を論理的に組み合わせる。
本発明によるSIMDアレイ・プロセッサのこの例では、プ
ログラム式デコーダを使って、大域命令の制約にもかか
わらず、異なる処理要素に対して異なるシフト方向を指
定する。データがシフトされる実際の方向は、入力マル
チプレクサ62へのNEWS入力の1つを選択した結果であ
る。命令コードの2ビット(すなわちビット18(v)及
び18(vi))を使ってNEWSネットワーク内での大域シフ
ト方向を指定するものとすると、この2ビットの局所的
修正用のルックアップ・テーブルは、所与のシフト命令
に応答して各処理要素内で局所的シフト方向を個別に指
定するのが可能なことを意味する。
シフト命令の局所修正を活用するアルゴリズムを実行す
るための図のSIMDアレイ・プロセッサの準備は、次のよ
うに要約できる。
環状の東西NEWS接続部における両方向三状態ドライバを
介して、プロセッサのアレイの西端に連続する32ビット
のデータ・ワードを読み込み、大域未修正東側シフト命
令を使って、アレイ内でシフトさせる。最初のデータ・
ワードがプロセッサのアレイを横切って移動するとき、
最初の32データ・ワードの当該ビットが、大域無修正書
込み命令を用いて、各処理要素に関連するメモリ・ブロ
ック中の対応するメモリ記憶位置に書き込まれる。必要
なすべての情報がメモリにロードされるまで、これらの
ステップが反復される。上記シーケンス中に、またはそ
の後で、大域無修正「ルックアップ・テーブル・ロー
ド」命令を使って、処理要素のルックアップ・テーブル
に修正データが読み込まれる。このステップを実行し終
わると、プロセッサのアレイを使って局所的に修正可能
な命令によりアルゴリズムを実行することができる。
上記のように、本発明によるSIMDアレイ・プロセッサ
は、特に画像処理用に適している。画像データの入力を
プロセッサのアレイに急送したり映像データの出力をプ
ロセッサのアレイから急送したりするには、本発明によ
るSIMDアレイ・プロセッサのプロセッサ・アレイに高帯
域データ母線を追加して接続すればよい。そうすれば、
コントローラ・アレイ間データ母線26の代わりにこのよ
うな高帯域母線を介して、データをビデオ・カメラやビ
デオ記憶装置からアレイに入力させたり、ビデオ記憶装
置やビデオ・ディスプレイに出力させたりすることがで
きる。高帯域データ母線は、コントローラ・アレイ間デ
ータ母線と同様なやり方でアレイに接続することができ
る。別法として、このような高帯域データ母線用に、入
力マルチプレクサ62への分離ビデオ入力(図示せず)、
及び第4図に示すような処理要素のALU48からの分離ビ
デオ出力レジスタ(図示せず)を設けることもできる。
ただし、高帯域データ母線を設けることは、本発明にと
って不可欠ではない。
次に、画像処理に特に適用され、本発明によるSIMDアレ
イ・プロセッサの一実施例の柔軟性を活用できる、2つ
のアルゴリズムを、第5図に示すプログラム式デコーダ
装置の例と共に説明することにする。
第1のアルゴリズムは、プロセッサ・アレイ内に保持さ
れているデータを取り上げて、これを90度回転させるも
のである。4×4ビット・アレイでは、回転前と回転後
のデータ行列は、下に示すようになる。
1 2 3 4 4 8 12 16 5 6 7 8 → 3 7 11 15 9 10 11 12 2 6 10 14 13 14 15 16 1 5 9 13 回転前 回転後 このアルゴリズムは、基本的に、どの処理要素から始め
ても、経路に沿ってちょうどMステップ進むと写像すべ
き正しい処理要素に達するように、1組の閉じた重なり
合わない「経路」または「ループ」のうちの1つの経路
上で、処理要素のアレイのまわりでデータ回転させるこ
とのできる、一連のシフト操作を含んでいる。第6図
に、32×32プロセッサ・アレイ用の1組のループをセッ
トアップする可能な1つの方法の西北四半部を示す。残
りの四半部は、回転対称性から推察できる。
ループの長さは様々であり、また矢印で示すように、シ
フト方向が時計回りのものも反時計回りのものもあるこ
とに留意されたい。ただし、あるビットをその位置する
ループに沿って33回シフトさせると、隣接四半部の対応
する位置にくることが、各ループで共通している。言い
換えれば、33ステップ進むと、アレイ全体が90度だけ回
転される。
処理要素間でのデータ・シフトを個別に指定できるよう
にすることにより、1命令サイクルのうちにネットワー
ク内部でデータを異なる方向に転送させることが可能で
ある。従来のSIMDアレイ・プロセッサでは、大域シフト
操作を有するという制約のために、いつでもアレイ内で
一方向にしかシフトできなかったことを思い起こされた
い。局所的命令修正用に、本発明によるSIMDアレイ・プ
ロセッサにプログラム式デコーダを設けることは、大域
命令の制約にもかかわらず、データを異なる方向にシフ
トできることを意味する。第6図に示したアルゴリズム
では、ルックアップ・テーブルのアクセスされた記憶位
置に含まれる図のループを定義するための修正データ
は、処理要素ごとに変わる。
第2のアルゴリズムは、X軸での鏡映に関するものであ
る。
第2のアルゴリズムは、プロセッサ・アレイ中に保持さ
れているデータを取り上げて、これを「X軸」で鏡映反
転させるものである。4×4ビット・アレイでは、鏡映
前と鏡映後のデータ行列は、下に示すようになる。
1 2 3 4 13 14 15 16 5 6 7 8 9 10 11 12 9 10 11 12 5 6 7 8 13 14 15 16 1 2 3 4 鏡映前 鏡映後 図示し易くするため、第7a図及び第7b図には、8×8プ
ロセッサ・アレイ用のアルゴリズムを示す。これは32×
32プロセッサ・アレイ用に、容易に発展させることがで
きる、このアルゴリズムは、2段階で実行される。第1
段階は、4サイクルの間に実行され、第7a図に示すNEWS
設定を有する。第2段階は、1サイクルで実行され、単
に西側大域シフトであり、第7b図に示すNEWS設定を有す
る。このアルゴリズムは、n×nアレイ(n:偶数)での
X軸鏡映を実施するのに、1+n/2サイクルを要する。
図のアルゴリズムでは、鏡映操作の始めに一度、ルック
アップ・テーブルを設定しておくだけでよい。どのビッ
トをもその位置する経路に沿って4ステップ移動させ
る、第7a図に示したパターンを与えるように局所的に修
正された、4個の第1の大域シフト命令が出される。次
いで、局所的に修正する必要なしに第7b図に示したNEWS
パターンを与える、1個の第2の大域シフト命令(西側
大域シフト)が出される。これは、どのビットも西側に
1ステップ移動させる。各ビットは、最後には、その始
めの位置に対してX軸で鏡映をなす位置にくることがわ
かる。第7a図に比べて第7b図のシフト方向の変化は、単
に、2つの異なる大域シフト命令の使用によって生じる
にすぎない。第7a図の場合には、大域命令は、処理要素
ごとに変わる修正子ビットによって修正される。第7b図
の場合には、大域命令は修正されない。
第8図は、本発明によるSIMDアレイ・プロセッサの柔軟
性をさらに増大させる、プロセッサ要素に対する修正を
示す。
SIMDアレイ・プロセッサの典型的な動作サイクルでは、
アレイ中の処理要素が、NEWSネットワークの1つの隣接
処理要素からデータを選択する。ただし、どのシフト・
サイクルでも各セルに対する入力接続線の1本だけが使
用されるので、これは、ネットワーク接続の最適利用に
はならない。NEWS接続線の75%が遊休状態であると思わ
れる。ただし、実際には、NEWS接続線は両方向性であ
り、所与の処理要素に対する「入力」接続線の1本がそ
の処理要素からの出力に用いられるので、実際にはネッ
トワークの50%だけが遊休状態である。とはいえ、この
50%さえ、ネットワークを十分に利用していないことの
現われである。第8図に示した処理要素に対する主な修
正は、2個のNEWS出力レジスタQns54ns及びQew54ewを設
けることである。この2個のレジスタを設けると、1サ
イクル当り2方向へのシフト操作、すなわち、北側に1
つと東側1つのシフト操作を可能にする基礎が得られ
る。これは、NEWS配線のより効率的な使用の現われであ
る。上記の修正に加えて、処理要素に若干の追加修正が
必要である。
第8図に示したように、入力マルチプレクサ62′は、一
時に処理要素P′(i、j)に対するNEWS入力のうち2
つを別々に選択して、それらをALU48′の当該の入力ポ
ートNns及びNewに供給する、多方向マルチプレクサであ
る。さらに、Qnsレジスタ及びQewレジスタのどちらかの
出力を選択するマルチプレクサ機能が、ALU48′内部に
設けられている。Qnsレジスタは、データを北側及び南
側の隣接処理要素に出力し、Qewレジスタはデータを東
側及び西側の隣接処理要素に渡す。各Qレジスタは、入
力マルチプレクサ62′及びALU48′を介して4本のNEWS
入力線のどれからでもデータをサンプリングすることが
できる。典型的なサイクルは西側からデータをサンプリ
ングするQnsと南側からデータをサンプリングするQewか
ら構成することができる。このような2サイクルで、Qn
sレジスタ及びQewレジスタに保持されている2組のデー
タがそれぞれ対角線方向に北東に1位置だけ移動される
ことになる。1個の出力レジスタQしかない場合は、こ
れらのシフトを実現するのに4サイクルが必要である。
このようにして、処理要素が2個のデータ・ビットを同
時にシフトすることが可能である。
これらの構成要素に対する修正、ならびに制御線66′、
68′、70′及びデコーダ64′中の論理回路に対する変更
についてのこれ以上の詳細は、決まった手順にすぎない
ので、当明細書に示す必要はない。また、当業者にとっ
て明らかなように、Qレジスタの増設をサポートするた
めの処理要素のその他の修正も可能である。
結果として得られる第8図の処理要素は、第4図に示し
た処理要素よりも複雑であるものの、NEWSネットワーク
の柔軟性と効率をさらに増大させる。その上、処理要素
に対する入力線と出力線が両方向性の場合には処理要素
の入力及び出力NEWS接続線が共用されるので、各処理要
素ごとに追加のNEWS接続線を設けなくとも上記のことが
実現される。また、第8図に示すように、1処理要素が
同時に2データ・ビットを処理することも可能である。
次に、第9図、第10図、第11図を参照して、第8図にお
ける修正を活用する3つのアルゴリズムについて説明す
る。図示し易くするために、8×8アレイ用のアルゴリ
ズムだけを示し、各処理要素P′(i、j)は、前と同
様に、小さな円で表わす。図を理解する場合、アレイが
環状に接続されていることを思い起こされたい。
第9図に、これらのアルゴリズムの最初のものを示す。
この図は、アレイ全体にわたる西北へのシフトを表わし
ている。第9図で、処理要素82の所の86と記した矢印
は、この処理要素に対する東側NEWS接続線から入力マル
チプレクサ62′を介してデータを受け取るために、第8
図のQns出力レジスタ54nsを使用することを表わす。同
様に、第9図で、この処理要素の所の84と記した矢印
は、この処理要素に対する入力マルチプレクサ62′を介
して南側NEWS接続線からデータを受け取るために、第8
図のQew出力レジスタ54ewを使用することを表わしてい
る。したがって、このノードの処理要素で、2つの転送
が実行される。
このアルゴリズムでは、大域シフト命令が各処理要素に
ついて同じやり方でデコードされる。処理要素を表わす
円を貫く左上がりの斜線は、異なる経路に沿った情報の
流れがどのように分離されるかを示している。この図を
読み取る際、対角線をデータ流れを反射する鏡と考える
のが有用である。いくつかの処理要素をつなぐ太線は、
このような1本の経路88を示している。1項目のデータ
がどのようにして2ステップで西北にシフトされるかが
この図からわかる。各処理要素は一度に2ビットを処理
するので、西北へのビット・シフト1回につき1ステッ
プしか必要でない。
第10図には、第2のアルゴリズムを示す。アレイを転置
するこのアルゴリズムでは、大域シフト命令が異なる2
つのやり方でデコードされるように、処理要素がプログ
ラミングされる。左上りの斜線を施した円で表わした、
処理要素90及び92などの処理要素が、第9図の処理要素
82と同じやり方で、大域シフト命令をデコードして、矢
印84及び86で表わすようにデータを処理する。入力マル
チプレクサ62′によって南側及び東側のNEWS入力線から
データが選択され、それぞれQnsレジスタ及びQewレジス
タにロードされるように、単円で表わした処理要素94な
どの処理要素がプログラミングされる。
経路が斜線を施した処理要素の所でどのように方向を変
え、別の処理要素の所でどのように交差するかを示す、
太線で示した経路96と破線で示した経路98の2つのデー
タ経路が示されている。
第11図には、180度回転を実施する第3のアルゴリズム
を示す。この図、とりわけ太線116及び破線118で表わさ
れる2本のデータ経路を検討すると明らかなように、各
四半部で異なる2方向、合計8方向で大域シフト命令を
デコードするように、処理要素がプログラミングされ
る。それらを、以下の表に示す。
データ経路116及び118から、あるいはデータ・ビット
を、8回のシフトすなわちステップで(すなわち経路11
8に沿って)8×8プロセッサ・アレイ内部で180度(た
とえば、要素114から要素106に)回転できることがわか
る。各処理要素は同時に2ビットを処理するので、180
度回転1回当りの平均ステップ数は4にすぎない。この
アルゴリズムは、第9図及び第10図に示した他のアルゴ
リズムと同様に、容易にn×nアレイに一般化できる。
ただし、nは偶数である(たとえば、32×32アレイ)。
以上可能な修正を加えた、本発明によるSIMDアレイ・プ
ロセッサの特定の例について説明した。ただし、当業者
には、明らかなように頭記の特許請求の範囲の範囲内で
他の多くの修正代案が可能である。たとえば、命令コー
ドの2ビットを修正するためのルックアップ・テーブル
についてしか説明しなかったが、様々なビット数と様々
なタイプの命令(すなわち、シフト命令だけでなく)を
修正するためのルックアップ・テーブルを設けることが
できることは明らかとなる。別の実施例では、行選択線
と列選択線をもルックアップ・テーブルに対する入力線
の一部をなすように配線して、これらの線上の選択信号
を使って、ルックアップ・テーブルの使用により大域命
令に対する局所的修正を指定することもできる。プログ
ラム式デコーダは本明細書では、ハード配線で接続され
たゲートなどの通常の固定式デコーダ論理回路の形の第
1部分とルックアップ・テーブルの形の第2のプログラ
ム化可能部分から構成されるものとして説明した。ただ
し、当業者には、明らかなように、その代わりにアレイ
の一部分を固定式にし、一部分を処理中にプログラミン
グ可能にした、別のプログラム式デコーダ手段を使用す
ることもできる。
【図面の簡単な説明】
第1図は、典型的なSIMDアレイ・プロセッサの全体構造
を示す概略構成図である。 第2図は、本発明によるSIMDアレイ・プロセッサの一実
施例のアレイ・コントローラの主要構成要素を示す概略
構成図である。 第3図は、第2図のアレイ・コントローラで使用される
命令形式を示す。 第4図は、本発明の一実施例のプロセッサ・アレイの個
々の処理要素の主要構成要素を示す構成図である。 第5図は、第4図の処理要素中のデコーダをさらに詳し
く示した概略構成図である。 第6図は、本発明によるSIMDアレイ・プロセッサ上で実
施できるアルゴリズムを示す図である。 第7a図及び第7b図は、本発明によるSIMDアレイ・プロセ
ッサ上で実施できる別のアルゴリズムを示す図である。 第8図は、第4図の処理要素に対する修正を示す、概略
構成図である。 第9図、第10図、第11図は、第8図に示した処理要素に
修正を施した、本発明によるSIMDアレイ・プロセッサ上
で実施できるアルゴリズムを示す図である。 10……SIMDアレイ・プロセッサ、12……処理要素のアレ
イ、14……アレイ・コントローラ、18……命令母線、20
……列選択線、24……アドレス母線、26……コントロー
ラ・アレイ間データ母線、30……ホスト・コントローラ
間データ母線、31……アドレス/データ母線、32……マ
イクロコード記憶域、34……マイクロコード制御機構、
38、48……演算論理機構、39……フラグ線、40……レジ
スタ・バンク、42……行マスク用プログラム式論理アレ
イ、44……列マスク用プログラム式論理アレイ、46……
データ用バッファ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】各々の処理要素が大域命令をそれぞれ自己
    の処理要素内で局所的に実行するためにデコードするデ
    コード手段を備え持つ多次元アレイの処理要素と、 上記多次元アレイの処理要素へ大域命令を発するための
    制御論理手段と、 上記大域命令が上記処理要素の各々によって並列的に受
    け取られるように上記制御論理手段を上記処理要素の各
    々に接続するための、複数命令ビット線で構成される命
    令母線と、 少なくとも1つの上記処理要素の上記デコード手段に含
    まれる手段であって、上記大域命令の選択したビットを
    局所的に修正し、局所的に修正された該命令ビットを局
    所命令ビット線に出力するための、選択した命令ビット
    線に接続されたプログラム式修正手段と、 少なくとも1つの上記処理要素の上記デコード手段に含
    まれる手段であって、上記プログラム式修正手段から上
    記局所的に修正された命令ビットを受け取るために上記
    局所命令ビット線に接続され、かつ、上記大域命令の未
    修正ビットを受け取るため上記命令母線に接続された固
    定デコード手段と、 上記処理要素の各々に関連し該処理要素によりアクセス
    されるブロックで構成される記憶手段と、 上記制御論理手段が上記記憶手段にアクセスし、上記プ
    ログラム式修正手段の各々のための制御データを上記記
    憶手段の該当ブロックに記憶するための手段と、 上記プログラム式修正手段の各々を個別にプログラムす
    るための上記制御データを受け取るために、上記処理要
    素の各々の上記プログラム式修正手段を上記記憶手段の
    該当ブロックに接続する手段と、 上記記憶手段の該当ブロックから修正データを逐次受け
    取るため上記記憶手段のブロックに接続された逐次書き
    込みポートと、上記大域命令の上記選択した命令ビット
    を並列に受け取るため上記選択した命令ビット線に接続
    された並列読み取りポートとを備え持ち、上記プログラ
    ム式修正手段の一部をなすルックアップ・テーブルと、 からなるSIMDアレイ・プロセッサであって、 上記処理要素の各々の上記固定デコーダ手段が、上記命
    令母線上の大域ロード命令の未修正ビットに同時に応答
    して、上記局所的に修正されたビットの値と関係なく、
    上記制御データを上記記憶手段の該当ブロックから上記
    プログラム式修正手段へとロードさせる機能を有する、 SIMDアレイ・プロセッサ。
  2. 【請求項2】上記プログラム式修正手段が、シフト方向
    を決定する大域シフト命令ビットを受け取るため上記選
    択した命令ビット線に接続し、上記大域シフト命令に応
    答して上記大域シフト命令を局所的に修正しアレイ内の
    複数の方向に一度にデータを分配する機能を持った請求
    項1記載のSIMDアレイ・プロセッサ。
JP63204859A 1987-10-27 1988-08-19 Simdアレイ・プロセツサ Expired - Lifetime JPH0727516B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8725116 1986-10-27
GB8725116A GB2211638A (en) 1987-10-27 1987-10-27 Simd array processor

Publications (2)

Publication Number Publication Date
JPH01114982A JPH01114982A (ja) 1989-05-08
JPH0727516B2 true JPH0727516B2 (ja) 1995-03-29

Family

ID=10625947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63204859A Expired - Lifetime JPH0727516B2 (ja) 1987-10-27 1988-08-19 Simdアレイ・プロセツサ

Country Status (5)

Country Link
US (1) US4992933A (ja)
EP (1) EP0314277B1 (ja)
JP (1) JPH0727516B2 (ja)
DE (1) DE3854568T2 (ja)
GB (1) GB2211638A (ja)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729757A (en) * 1985-05-20 1998-03-17 Shekels; Howard D. Super-computer system architectures using status memory to alter program
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
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
EP0444368B1 (en) * 1990-02-28 1997-12-29 Texas Instruments France Digital Filtering with SIMD-processor
DE4017132A1 (de) * 1990-05-28 1991-12-05 Oliver Bartels Datenverarbeitungsanlage
US5157785A (en) * 1990-05-29 1992-10-20 Wavetracer, Inc. Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit
SE9002558D0 (sv) * 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
US5418915A (en) * 1990-08-08 1995-05-23 Sumitomo Metal Industries, Ltd. Arithmetic unit for SIMD type parallel computer
US5546343A (en) * 1990-10-18 1996-08-13 Elliott; Duncan G. Method and apparatus for a single instruction operating multiple processors on a memory chip
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
DE69131272T2 (de) * 1990-11-13 1999-12-09 International Business Machines Corp., Armonk Paralleles Assoziativprozessor-System
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
US5689719A (en) * 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements
US5487153A (en) * 1991-08-30 1996-01-23 Adaptive Solutions, Inc. Neural network sequencer and interface apparatus
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
EP0562251A2 (en) * 1992-03-24 1993-09-29 Universities Research Association, Inc. Parallel data transfer network controlled by a dynamically reconfigurable serial network
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5331315A (en) * 1992-06-12 1994-07-19 Universities Research Association, Inc. Switch for serial or parallel communication networks
FR2692702A1 (fr) * 1992-06-17 1993-12-24 Philips Electronique Lab Dispositif de traitement de données ayant une architecture à instruction commune agissant sur des données multiples.
JPH0612253A (ja) * 1992-06-25 1994-01-21 Rohm Co Ltd マイクロコンピュータ
US5495618A (en) * 1992-08-26 1996-02-27 Eastman Kodak Company System for augmenting two dimensional data sets in a two dimensional parallel computer system
US5493651A (en) * 1993-02-16 1996-02-20 International Business Machines Corporation Method and system for dequeuing connection requests in a simplex switch
US5499376A (en) * 1993-12-06 1996-03-12 Cpu Technology, Inc. High speed mask and logical combination operations for parallel processor units
JPH09511078A (ja) * 1993-12-12 1997-11-04 エーエスピー ソルーション ユーエスエイ インコーポレイション 信号処理方法および装置
IL110181A (en) * 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US5553272A (en) * 1994-09-30 1996-09-03 The University Of South Florida VLSI circuit structure for determining the edit distance between strings
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5649135A (en) * 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US5680597A (en) * 1995-01-26 1997-10-21 International Business Machines Corporation System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US5742180A (en) * 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
FR2731094B1 (fr) * 1995-02-23 1997-04-30 Dufal Frederic Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable
JPH08235130A (ja) * 1995-02-24 1996-09-13 Sony Corp 並列プロセッサ
US5649179A (en) * 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
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
FR2757973B1 (fr) * 1996-12-27 1999-04-09 Sgs Thomson Microelectronics Processeur de traitement matriciel
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.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19756591B4 (de) * 1997-12-18 2004-03-04 Sp3D Chip Design Gmbh Vorrichtung zum hierarchischen Verbinden einer Mehrzahl von Funktionseinheiten in einem Prozessor
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6079008A (en) * 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
US6839728B2 (en) * 1998-10-09 2005-01-04 Pts Corporation Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
GB2391093B (en) * 1999-04-09 2004-04-07 Clearspeed Technology Ltd Parallel data processing systems
US20070294510A1 (en) * 1999-04-09 2007-12-20 Dave Stuttard Parallel data processing apparatus
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
GB2348972A (en) * 1999-04-09 2000-10-18 Pixelfusion Ltd Array controller for array of processing elements
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
WO2001031418A2 (en) 1999-10-26 2001-05-03 Pyxsys Corporation Wide connections for transferring data between pe's of an n-dimensional mesh-connected simd array while transferring operands from memory
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
US6816593B1 (en) * 1999-12-23 2004-11-09 Ati International Srl Method and apparatus for transposing bits
US6578133B1 (en) * 2000-02-24 2003-06-10 Stanley M. Hyduke MIMD array of single bit processors for processing logic equations in strict sequential order
US7249247B2 (en) * 2000-04-11 2007-07-24 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
US6792529B1 (en) * 2000-04-11 2004-09-14 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
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
US7003450B2 (en) * 2000-10-20 2006-02-21 Pts Corporation Methods and apparatus for efficient vocoder implementations
US6732253B1 (en) 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
WO2002046885A2 (en) * 2000-11-28 2002-06-13 Chipwrights Design, Inc. Handling conditional processing in a single instruction multiple datapath processor architecture
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) * 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
AU2002347560A1 (en) * 2001-06-20 2003-01-02 Pact Xpp Technologies Ag Data processing method
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
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
AU2003208266A1 (en) * 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
AU2003214003A1 (en) * 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
AU2003223892A1 (en) * 2002-03-21 2003-10-08 Pact Xpp Technologies Ag Method and device for data processing
US7493607B2 (en) * 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
GB2393277B (en) * 2002-09-17 2006-01-18 Micron Europe Ltd Method for manipulating data in a group of processing elements to perform a reflection of the data
GB2395299B (en) * 2002-09-17 2006-06-21 Micron Technology Inc Control of processing elements in parallel processors
GB2397668B (en) * 2003-01-27 2005-12-07 Picochip Designs Ltd Processor array
DE112004000026D2 (de) * 2003-04-04 2006-06-14 Pact Xpp Technologies Ag Verfahren und Vorrichtung für die Datenverarbeitung
US7437726B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for rounding values for a plurality of parallel processing elements
US7676648B2 (en) 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7448038B2 (en) * 2003-04-23 2008-11-04 Micron Technology, Inc. Method for using filtering to load balance a loop of parallel processing elements
US7437729B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for load balancing a loop of parallel processing elements
US7581080B2 (en) 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7430742B2 (en) * 2003-04-23 2008-09-30 Micron Technology, Inc. Method for load balancing a line of parallel processing elements
US7472392B2 (en) * 2003-04-23 2008-12-30 Micron Technology, Inc. Method for load balancing an n-dimensional array of parallel processing elements
US7596678B2 (en) 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US7913062B2 (en) 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
JP4423953B2 (ja) * 2003-07-09 2010-03-03 株式会社日立製作所 半導体集積回路
EP1676208A2 (en) * 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) * 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20100235608A1 (en) * 2004-03-25 2010-09-16 Aiseek Ltd. Method and apparatus for game physics concurrent computations
US20050226337A1 (en) * 2004-03-31 2005-10-13 Mikhail Dorojevets 2D block processing architecture
JP4477959B2 (ja) * 2004-07-26 2010-06-09 独立行政法人理化学研究所 ブロードキャスト型並列処理のための演算処理装置
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
US7555630B2 (en) * 2004-12-21 2009-06-30 Intel Corporation Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
US7725691B2 (en) * 2005-01-28 2010-05-25 Analog Devices, Inc. Method and apparatus for accelerating processing of a non-sequential instruction stream on a processor with multiple compute units
EP1849095B1 (en) * 2005-02-07 2013-01-02 Richter, Thomas Low latency massive parallel data processing device
CN101258480A (zh) * 2005-09-05 2008-09-03 皇家飞利浦电子股份有限公司 具有分离串行模块的处理器阵列
US7516301B1 (en) * 2005-12-16 2009-04-07 Nvidia Corporation Multiprocessor computing systems with heterogeneous processors
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
CN101371264A (zh) * 2006-01-10 2009-02-18 光明测量公司 用于在并行处理***中处理多媒体数据的子块的方法和装置
WO2007082730A1 (de) * 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
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
WO2008027567A2 (en) * 2006-09-01 2008-03-06 Brightscale, Inc. Integral parallel machine
US7441099B2 (en) * 2006-10-03 2008-10-21 Hong Kong Applied Science and Technology Research Institute Company Limited Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
US7941641B1 (en) * 2007-10-01 2011-05-10 Yong-Kyu Jung Retargetable instruction decoder for a computer processor
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
EP2254057B1 (en) * 2008-03-04 2013-05-15 NEC Corporation Simd processor array system and data transfer method thereof
US8261047B2 (en) * 2008-03-17 2012-09-04 Freescale Semiconductor, Inc. Qualification of conditional debug instructions based on address
US20090240928A1 (en) * 2008-03-18 2009-09-24 Freescale Semiconductor, Inc. Change in instruction behavior within code block based on program action external thereto
US20110202132A1 (en) * 2008-09-29 2011-08-18 Nxp B.V. Visual prosthesis implant
US20100146241A1 (en) * 2008-12-09 2010-06-10 Novafora, Inc. Modified-SIMD Data Processing Architecture
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
JP2011192305A (ja) * 2011-06-01 2011-09-29 Renesas Electronics Corp 半導体信号処理装置
FR2984556B1 (fr) * 2011-12-20 2014-09-26 Commissariat Energie Atomique Systeme et procede de communication entre un circuit d'acquisition et un circuit de traitement de donnees
US9329834B2 (en) * 2012-01-10 2016-05-03 Intel Corporation Intelligent parametric scratchap memory architecture
US10313641B2 (en) * 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
FR3082331B1 (fr) * 2018-06-08 2020-09-18 Commissariat Energie Atomique Processeur mimd emule sur architecture simd
US11921559B2 (en) * 2021-05-03 2024-03-05 Groq, Inc. Power grid distribution for tensor streaming processors
US11940945B2 (en) * 2021-12-31 2024-03-26 Ceremorphic, Inc. Reconfigurable SIMD engine

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5144847A (ja) * 1974-10-16 1976-04-16 Hitachi Ltd Maikuropuroguramuseigyosochi
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
US4580215A (en) * 1983-03-08 1986-04-01 Itt Corporation Associative array with five arithmetic paths
NZ207326A (en) * 1983-03-08 1988-03-30 Stc Plc Associative data processing array
GB8401805D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Data processing apparatus
WO1986007174A1 (en) * 1985-05-20 1986-12-04 Shekels Howard D Super-computer system architectures
GB2177526B (en) * 1985-06-24 1990-02-14 Pixar Selective operation of processing elements in a single instruction, multiple data stream (simd)computer system
GB8517376D0 (en) * 1985-07-09 1985-08-14 Jesshope C R Processor array
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
CN1012297B (zh) * 1985-11-13 1991-04-03 奥尔凯托N·V公司 具有内部单元控制和处理的阵列结构
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

Also Published As

Publication number Publication date
DE3854568T2 (de) 1996-06-05
GB2211638A (en) 1989-07-05
EP0314277B1 (en) 1995-10-11
GB8725116D0 (en) 1987-12-02
DE3854568D1 (de) 1995-11-16
EP0314277A2 (en) 1989-05-03
JPH01114982A (ja) 1989-05-08
US4992933A (en) 1991-02-12
EP0314277A3 (en) 1990-07-04

Similar Documents

Publication Publication Date Title
JPH0727516B2 (ja) Simdアレイ・プロセツサ
US5175862A (en) Method and apparatus for a special purpose arithmetic boolean unit
US5956518A (en) Intermediate-grain reconfigurable processing device
EP0726532B1 (en) Array processor communication architecture with broadcast instructions
US6128720A (en) Distributed processing array with component processors performing customized interpretation of instructions
US5421019A (en) Parallel data processor
US5682491A (en) Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US7340562B2 (en) Cache for instruction set architecture
JP4417567B2 (ja) デュアルモードプロセッサ
US5968167A (en) Multi-threaded data processing management system
US6816961B2 (en) Processing architecture having field swapping capability
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US5148547A (en) Method and apparatus for interfacing bit-serial parallel processors to a coprocessor
EP0539595A1 (en) Data processor and data processing method
KR19990077230A (ko) 이미지-처리 프로세서
JPH07152722A (ja) Simdマルチプロセッサ用動的再構成可能スイッチ装置
EP0911725B1 (en) Data processing system with a plurality of processors using a shared register bank
US8949576B2 (en) Arithmetic node including general digital signal processing functions for an adaptive computing machine
US5481736A (en) Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
US7616628B2 (en) Switched processor datapath
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JPH03211688A (ja) プロセッサアレイ
GB2393288A (en) method of generating an interleave pattern for work loads in an array of processing elements.