JPH03211688A - プロセッサアレイ - Google Patents

プロセッサアレイ

Info

Publication number
JPH03211688A
JPH03211688A JP30843690A JP30843690A JPH03211688A JP H03211688 A JPH03211688 A JP H03211688A JP 30843690 A JP30843690 A JP 30843690A JP 30843690 A JP30843690 A JP 30843690A JP H03211688 A JPH03211688 A JP H03211688A
Authority
JP
Japan
Prior art keywords
bit
byte
alu
register
data
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
JP30843690A
Other languages
English (en)
Inventor
David J Hunt
デイビッド、ジョン、ハント
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.)
AMT Holdings Ltd
Original Assignee
AMT Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AMT Holdings Ltd filed Critical AMT Holdings Ltd
Publication of JPH03211688A publication Critical patent/JPH03211688A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は並列処理コンピュータシステムに関し、詳細に
はSIMDアーキテクチャを用いる処理エレメントアレ
イを含むシステムに関する。そのようなシステムの一例
は英国特許出願1445714号に示されている。
〔従来の技術〕
従来のSIMDプロセッサは高集積度装置においてプレ
キシビリティを得るために多数の非常に単純なプロセッ
サを用いている。そのようなアレイの処理エレメントは
単一ビットのベースで動作するように構成されている。
〔発明が解決しようとする課題〕
このような構成の従来のプロセッサは本質的に処理時間
が大きくなり、効率が低い。
〔課題を解決するための手段〕
本発明の第一の観点によれば夫々局部的な記録部分すな
わちローカルメモリを含む複数の処理エレメントと、算
術演算ユニットと、このユニット用のオペランドレジス
タ手段を含む、SIMDアーキテクチャを用いるプロセ
ッサアレイであってこのユニットがバイト幅プロセッサ
であり、オペランドレジスタ手段が多バイトシフト回路
と、このシフト回路の夫々のバイト用のデータ出力と、
これら出力の内の選ばれた1個からこのユニットにデー
タ通信を行うように配置されたマルチプレクサとを含む
ことを特徴とするプロセッサアレイを提供する。
本発明の処理エレメントは算術演算ユニットが、一般に
夫々8ビット幅をもつバイトのすべてについて動作しう
るようにするものである。処理エレメントは、多バイト
または部分バイトを含むオペランドが効率の低下を伴う
ことなく処理されるように構成される。これにより、処
理エレメント内でより広いデータ通信を使用出来るよう
になり、全体としてアレイの出力の著しい増加を与える
。これと同時に本発明の処理エレメントの構造は主たる
設計目標である高集積度と動作のフレキシビリティを得
ることを充分簡単なものとする。
このオペランドレジスタ手段はデータをバイトをもって
一つの端から他方ヘシフトするように構成された第1多
バイトシフト回路とこの回路に並列に接続してデータを
バイトをもって一方の端から他方へとシフトするように
構成された第2多バイトシフト回路を含む。この第1シ
フト回路はこの一端において算術演算ユニットからのバ
イト出力を受けるように構成され、第2シフト回路は一
端でこのユニットから桁上げビット出力を受け、他端で
マルチプライヤレジスタにデータを出力するように構成
される。また、オペランドレジスタ手段は第2シフト回
路に並列の出力レジスタを含み、この出力レジスタの夫
々のバイト位置におけるデータ出力が第1シフト回路の
対応するデータ入力とマルチプレクサの入力に接続する
マルチプライヤレジスタはバイト幅シフトレジスタであ
って夫々の処理エレメントのローカルメモリと演算ユニ
ットへのデータ入力との間に接続する。これらシフト回
路は一般に2:1または4:1のマルチプレクサで形成
される。処理エレメントは0,1.8または9位置(8
ビット幅プロセッサの場合)のシフトを用いて機能する
ように構成される。それ故、任意の数の位置をシフトさ
せるに必要な複雑なロジックは不要となる。
本発明によればバイト幅演算ユニットを使用して得られ
る利点を最大限とする処理エレメント構造を与える。特
にビット幅のシフト回路の出力を他のオペランドレジス
タすなわちマルチプライヤレジスタにとり込むようにし
てオペランドレジスタ手段に一対のシフト回路を使用す
ることによりバイトまたは多バイトオペランドについて
算術演算機能を実行する際に処理エレメントの性能を著
しく向上させる。
この演算ユニットはマスクビットパターンを受けるよう
に構成されたマス久入力を含み、このマスクビットパタ
ーンに応じてバイト幅オペランドの選ばれたビットにも
とづき動作する。
演算ユニットにマスクを用いることにより、バイトの境
界にではなく任意の選択されたビットフィールドについ
てユニットを動作させうるようになる。
好適には処理エレメントはローカルメモリからのデータ
についてはバイト幅入力、オフチップメモリについては
ビット幅入力を含む。
このアレイは、多数のサブアレイを含み、夫々のサブア
レイはn個の処理エレメントを含みそしてサブアレイメ
モリに対しnビット通路を有する。
夫々のサブアレイメモリは局部的にインデクシングされ
る。
サブアレイオフチップメモリを用いることは英国特許出
願8925721.6に詳細に示されている。
本発明の第二の観点によれば、複数の単一ビット処理エ
レメントを含みそしてSIMDアーキテクチャを用いる
プロセッサアレイであって複数の共処理エレメントを更
に含み、夫々の共処理エレメントは夫々の処理エレメン
トについて設けられており、夫々の処理エレメントと共
処理エレメントがアレイメモリの一つの共通領域をアド
レスし、夫々の共処理エレメントがローカルメモリとバ
イト幅算術演算ユニットとこのユニット用のオペランド
レジスタ手段を含むプロセッサアレイを提供する。
〔実施例〕
第1図の本発明のプロセッサアレイは制御ユニット1と
処理エレメントアレイ2を含む。アレイ2は夫々別のチ
ップに形成される多数のモジュール5L−54を含む。
この例では夫々のモジュールは32個の処理エレメント
PEを含む。各モジュールはオンチップメモリであり、
それに関連したオフチップメモリブロックを有する。
1個の処理エレメントの構造を第2図に示す。
この処理エレメントは8ビツトバイトで動作する。
このエレメントは8ビツト幅の算術演算ユニットALU
と8ビツト幅の、ユニットALUとオンチップメモリと
の間でデータを運ぶデータ路を含む。
後述するように、この処理エレメントは更にバイト形シ
フト回路Q1と、ビット形シフト回路Q2と出力レジス
タQOを含む4バイト幅の32ビットオペランドシフト
回路Qを含む。これらシフト回路に適正に相互接続され
た複数の2:1マルチプレクサで形成される。あるいは
後述するように1個の4:1マルチプレクサをシフト回
路Q1とQ2の両方の機能を行うために用いてもよい。
出力レジスタQOの夫々のバイト位置からの出力はバイ
ト幅シフト回路Q1の対応する入力に接続されて周期的
なデータ路を与える。出力レジスタQOの夫々の出力は
マルチプレクサMUXにも接続し、このマルチプレクサ
はバイト幅のデータ路により演算ユニットALUの入力
に接続してオペランドシフト回路Qの4個のバイト位置
の内の選ばれた1個からデータ通信を行う。このユニッ
トALUの出力はバイト幅シフト回路Q1の一端に入り
、ALUの単一ビット桁上出力はビット幅シフト回路Q
2の1端に入る。ビットシフト回路Q2の他端のデータ
出力はビット幅データ路を介して8ビツトシフトレジス
タS1すなわち「マルチプライヤ」レジスタの一端にと
り出される。
処理エレメントPHの異なるエレメントおよび算術演算
を行う際の処理エレメントPEの使用例を次に詳述する
メモリ路 オンチップメモリは8ビツト幅として組織化されそして
1クロツクサイクルで1バイトが読出されあるいは書込
まれるが、これらは同一のサイクルには生じない。実際
には1個のPEについてのオンチップメモリは少くとも
512ビツトであると宵利である。便宜上第2図にはオ
ンチップメモリを示していない。このオンチップメモリ
の読取ポートは第2図の上に書込ポートは下に示しであ
る。
最小桁ビット用のPEデータ路は前述した英国出願に示
されるように従来の単一ビット処理エレメントとはゾ同
じである。しかしながらオンチップメモリでの1セツト
の1ビツト動作については次の機能が更に必要である。
1、 読取ポートについて、オンチップメモリバイトの
任意のビットを選びそれを最小桁ビットに置く自由。P
E入力の他のビットは不定としうる。
2、 書込ポートについて、すべてのビットにALU出
力の最小桁ビットを複製する自由。あるいはこの複製は
ALU自体で行うことも出来る。
3、  そのバイトの1ビツトのみをオンチップメモリ
に書込む自由。好適にはこれは個々のビットへの書込み
をゲートすることで行われる。あるいはこれは読取−マ
ージ−書込として行うことも出来るが時間がかかる。
これら付加的な機能はオンチップメモリへの1ビツトア
クセス(並びにバイトアクセス)を与えるのと等価であ
る。一般に、メモリへのアクセスに用いられるビットア
ドレスは、1ビツト動作について用いられるのは常にA
LUの最小桁ビットであるからALUのマスキング用に
用いられるものとは異なる。
オフチップメモリからの1ビツト幅の通路はオンチップ
メモリの最小桁ビットでマルチプレクス処理され、この
場合的のビットは無視される。同様に、オフチップメモ
リはオンチップメモリの書込路の最小桁ビットから書込
まれる。
Qレジスタ 前述のように本実施例ではQレジスタはシフト能力を有
する32ビット幅のレジスタである。−般にQレジスタ
の長さはオペランドのワード長に整合されるが、必ずし
もそうでなくてもよい。例えばPEが48とットワード
を処理すべきときにはQは少くとも48ビツトの長さを
存する。レジスタ長より短い任意のワード長を直接に用
いて例えば24ビツト乗算用に書込まれたコードが長さ
24.32または64ビツトのQレジスタで不変にワー
クするようにすることが出来る。レジスタより長いワー
ドはソフトウェアかこれらワードを適正に部分化する場
合に処理可能である。Qレジスタは同時読取、書込ボー
トを有する特殊なオンチップメモリのように動作する。
Qレジスタをその最小桁バイトのみがALUオペランド
として用いられそして入力が任意のバイト位置につくり
うるように構成することが出来る。
実際にはALUオペランドとして任意のバイトを選びそ
してレジスタの1バイトに入力を制限しうるようにする
とより有利である。Qレジスタの長さは8,16.24
または32ビツトとしうる。
現存する1ビツトアレイのインストラクション群を争う
ときには最大桁バイトの最小桁ビットが用いられる。
Qレジスタの電流出力は順次2つのシフト回路を通る。
1、  MS端に与えられるALU出力で8ビツト(1
バイ)の右シフト。
ALUデータをMSバイトに入力しそして他のバイトを
不変のまま通しうるようにす′ることも有効である。
2、  ALU桁上出力またはMS端に与えられるCレ
ジタの値で1ビツトの右シフト。これが行われると、右
にシフトされたビットはSレジスタすなわちマルチプラ
イヤレジスタにシフト出来る。
第2シフト回路の出力は常にQレジスタへとクロックさ
れる。これら2g!Aのシフト回路は別々にあるいは一
緒に用いられそしてその一方または双方をグローバルと
しあるいはローカルアクティビティコントロールの下に
おきうる。
Sレジスタ(マルチプライヤレジスタ)Sレジスタは読
取/書込用の「前」のメモリ内容を保持するために用い
られる8ビツトのシフトレジスタである。これは、乗算
において特に用いられるプログラム可視レジスタとして
も与えられる。Qレジスタの拡張として一般に右に1ビ
ツトシフト出来る。最小桁ビットはマルチプライヤビッ
トとして使用出来る。
隣接入力マルチプレクサ 一般に、夫々の処理エレメントはその周囲の4個の隣接
するエレメントの夫々からデータ入力を受ける。この入
力は一般に1ビツト幅である。隣接入力マルチプレクサ
は従来の1ビツトPE設計におけるような夫々のPHに
ついての一般入力マルチブレクサの部分ではなく、演算
ユニットのキャリーイン(carry−in)に動かさ
れそこで隣接値が1ビツトCレジスタでマルチプレクス
処理される。この構成は1ビツトPHにおけるよりキャ
リの伝ばんのより大きいフレキシビリティを与えるもの
である。
入力マルチプレクサ 汎用入力マルチプレクサは英国特許出願節882962
2.3に示されるような1ビツトアレイに用いられるも
のと同様に機能する。このマルチプレクサは次のオプシ
ョンを与える: 1、   Qレジスタ。最小桁ビットによるQレジスタ
の一つの選ばれたバイトの最小桁ビットそして他のビッ
トによるものは0すなわち入力なし。
この目的について選ばれたバイトは他のALU入力につ
いて選ばれるものと同じである。レスポンスインストラ
クションについてはQの最大桁バイトか通常用いられる
2、  Aレジスタ。最小桁ビットによる1ビツトレジ
スタの逆数であり他のビットによるものは0(すなわち
入力なし)。非反転値ではなく逆数が用いられる。
3、  メモリ入力。これは最小桁ビットについてオフ
チップメモリデータまたはオンチップメモリバイトの選
ばれたビットからの8ビツトデータである。
4、   Sレジスタ。8ビツト 5、  MCUからの行/列データ。最小桁ビットは行
または列方向にMCUから出る1ビツトデータを受ける
。この構成は英国特許出願第8829622.3に示さ
れている。この最小桁ビットはPEまたはメモリに書込
まれたデータまたはレスポンスデータにおいて行または
列選択に用いられるマスクである。後者の目的について
はこれはマルチプレクサの他の入力でOR処理される。
他のビットはMCUからの、すべての他のPEに共通の
7ビツトテータを受ける。このように8ビツトのリテラ
ル値が一般にオペランドとして使用出来る。
6、   Dレジスタ。最小桁ビットについての1ビツ
トDレジスタ。他のビットについては0(すなわち入力
なし)。このDレジスタは処理機能が行なわれると同時
にアレイに対しデータがシフトしうるように従来のごと
くに構成されている。第2図には示されていない。
行/列レスポンスは入力マルチプレクサの最小桁ビット
からとり出される。
Aレジスタ これは上記英国特許出願に示されると同様に機能する。
このレジスタは直接または現存するAレジスタ値でAN
D処理(マスク処理)されてALUのキャリアウド(c
arryout)からロードされる。従来の1ビツトア
レイの機能との両立性はAレジスタについての適正な機
能とALUの1sビツトのキャリアウドを発生しそして
他のALUビットをマスクし、所定の値が桁上出力に通
るようにすることにより与えることが出来る。この構成
は、演算テストの結果に従ってアクティビティを設定し
うるようにする。
アクティビティ選択 アクティビティ制御はオンチップメモリ、オフチップメ
モリまたはQレジスタのシフトまたはローディングに対
し与えることが出来る。個々のPEのレベルにおいて、
アクティビティ制御は前記英国特許出願に示される対応
する機能と同じである。これはアクティビティについて
Aまたはその逆数に等しいかあるいは行または列につい
て制御されるべきオプションを与える。マスキング制御
の他のレベルをオンチップメモリの個々のビットに加え
ることが出来る。8個のマスクビットからなるビット群
はすべてのPHに共通であり上記制御でAND処理され
る。これは1つのバイトの個々のビットに対する書込み
または一般にそのバイト内に1つの特定のビットフィー
ルドを特定するオプションを与える。マスクパターンは
一般に、オンチップメモリへの1ビット書込みがマスキ
ングにより行われない限り、ALUM能を制御するため
に用いられたものと同一のパターンである。
この実施例ではアクティビティもSレジスタの1ビツト
に従ってセット出来る。。後述するようにこれは「多重
Jam能の遂行を授けるものである。
Cレジスタ これは1ビツト幅でありALUの桁上借り出力からロー
ドされる。これはALUへのキャリーインまたはQレジ
スタについての直列シフト入力として使用出来る。
ALU 前述のように、これは8ビツト幅であり、入力としてオ
ペランドレジスタ手段Qおよび入力マルチプレクサデー
タの選ばれたバイトをそしてキャリーインとしてCレジ
スタを採用する。
種々の機能が当られる。1ビツト機能の最大のフレキシ
ビリティを与えるために最小桁ビットは和および桁上出
力の両方について完全な機能単位を有する。他のビット
位置については算術和、差および逆差がオペランドのコ
ピーと種々のビット毎のプール機能と共に与えられる。
ALUはバイト境界ではなく選ばれたビットフィールド
についての操作を可能にするマスキング特性を有する。
かくしてすべてのPEに共通な8ビツトマスクがALU
に与えられそして次の効果を有する。
マスクビット−1であればキャリーアウトビットの通常
の発生。
マスクビット−〇であればそのビット位置においてキャ
リーアウトビット−キャリーインビット。
結果ビット;マスクビット−1であればそのビットにつ
いての通常の結果ビット機能がALU出力に与えられる
。マスクビット−〇であれば結果の値は無視され、実施
に便利な任意の値が与えられる。
ALU動作のマスキングは前述のようにキャリの伝ばん
を明確にゲートすることにより行うことが出来るが、こ
れはALUの高速動作についての標準的な桁上げ予測技
術の使用を排除する。あるいはこのマスクをマスクビッ
トが0のとき各ビット位置についてALUの1個の入力
を1にそして他を0に強制することによっても達成出来
る。
このマスクパターンはスタートビットとエンドビットに
より特定される真ビ、ットの連続する群を含む。これは
勿論単一ビットの選択を可能にする。
一つのバイトについての動作についてはスタートビット
が0そしてエンドビットが7として特定される。単一ビ
ット動作についてはALUの最小桁ビットが用いられ、
それ故スタートおよびエンドビットは共に7として特定
される。このように、最小桁ビットのキャリーアウトは
他のALUビットを介してそのまま伝ばんしそしてCに
クロックされる。
乗算中、SレジスタのLSビットは乗算とじて作用しそ
してこれをALU機能をそのビットのローカル値により
「コピー」または「加算」として選ぶことにより達成す
る。また非回復除算のような目的につい加算と減算を区
別するためのローカル制御か与えられる。Sレジスタの
LSビットはこの機能を制御するために用いられる。
マージ機能 これはメモリ出力データをALU出力または前のメモリ
内容として選択するロジックである。これは8ビット幅
であり、夫々のビットがそれ自体のアクティビティ選択
を有するがその機能はその他の点では前記の単一ビット
システムと同じである。このマージ機能はオンチップメ
モリへの8ビット通路を与えそして、前述のようにオフ
チップメモリ通路は最小桁ビットからとり出される。
隣接通路 隣接出力(図示せず)はQレジスタの選択されたバイト
(シフト機能用)の最小桁ビットまたはALUのキャリ
ーアウト(リップル加算機能)でなくてはならない。こ
のメモリ通路は隣接出力と共通である。選ばれた隣接入
力はALUへのキャリーインとしてCレジスタの代りに
用いられる。
Dプレーン 前述した英国特許出願に示されるシステムにおけるよう
に、高速人力−出力動作用のデータブレーンを形成する
Dレジスタを用いることが出来る。
Dレジスタはメモリ入力からロードされあるいはメモリ
書込通路のデータとして供給される。単一ビットDレジ
スタをオフチップメモリにのみ接続するように使用出来
る。オン7チツプメモリをキャシュとして動作させる場
合にはI10データがバッファメモリにより処理されモ
してDブレーンのオンチップメモリへまたはそこからの
転送が行われる。この場合にはDレジスタは8ビット幅
である。
PEの使用例−無符号整数の乗算 2倍の長さの積をつくる32ビツトのオペランドの無符
号整数の乗算法を次に述べる。説明の便宜上、Qははじ
めに0とする。オペランドと結果はオンチップメモリに
生じる。
For  乗数の各バイト Sに乗数バイトをロード。
For乗数バイトの各ビット [’or  被乗数の各バイト ’dhere  SのLSビット Qレジスタの1sバイトとメモリがらの被乗数バイトを
加算。
Elsewhere ALU出力にQレジスタをコピー Endwhere Cはこのループの第1回目のバスを除き加算のキャリー
インとして用いられる。キャリーアウトはCにクロック
される。Qレジスタは1バイトだけ右にシフトされ、A
LUの結果が最大桁バイト位置になる。
このループの最終バスおよびQレジスタは1ビツト右(
並びに1バイト)だけシフトされてALUキャリーアウ
トがmsビットのところになる。
Sレジスタも1つシフトされてQの1sビツトがSのm
sビットにシフトされる。これにより1個の結果ビット
がSに置かれ次の乗数ビットにQが整合しそして今使用
した乗数ビットが捨てられて次の乗数ビットが正しい位
置となる。
End For End For S L、ジスタからの結果バイトを記憶End For For  結果のms分の各バイト Qの適正なバイトから結果バイトを記憶End For この条件付きの加算はALU機能を制御しく前述したよ
うに)あるいはQのバイトシフトを制御することにより
達成出来る。この場合には1つのシフトが乗数ビットに
は無関係に行われねばならない。乗数ビットが0であれ
ばMSエンドにシフトされた桁上ビットは0とされる。
32ビツトのオペランドについてはこれは2倍の長さの
無符号積をつくるため140個のインストラクションを
用いる。結果がアクティビティ制御により書込まれるべ
き場合にはエクストラサイクルが必要となる。
事実この方法は任意の長さの、32ビツトより長いもの
であってもよい乗数に直接に適用出来る。
被乗数か32ビツトより短い場合には上記のコードは更
にQの異なるバイトを使用するために変更され、そして
、結果の下位半分の桁のバイトがSではなくQのバイト
の内の1組から記憶される。
被乗数が32ビツトより大であればこの処理がこの被乗
数の夫々32ビツトまでの長さのセクションに適用され
る。最後に部分積が加算される。
任意ビットフィールド 7ビツト加算(例えば実数の成るフォーマットの乗算用
の指数処理に用いられる)のような動作はALU内のマ
スクされた演算を用いて行うことが出来る。これは任意
のビット位置でのキャリーインおよびCにロードされる
べき任意のビット位置からのキャリーアウトとしてCレ
ジスタの内容すなわち0を使用しうるようにする。マス
キングはまた通常のアクティビティ制御の書込みについ
て用いられると同様の読取−マージ−書込みシーケンス
を用いて任意のビットフィールドに結果を書込むことを
可能にする。
組合オ)されるべきビットフィールドがバイト境界に対
して同一の整合を有していない場合には、一方のフィー
ルドがQレジスタにロードされ、そして、算術演算を行
う前に次々の1ビツトシフトこよりラインアップされる
。同様にALU結果はQ14きもどされそして必要であ
ればメモリへの直接書込みではなく結果スペースに整合
される。
隣接操作 リップル加算についてはALUの出力からキャリがとり
出されそしてキャリーインとして隣接するPEのALU
に入れられる。これらオペランドは一般にQレジスタの
バイトとメモリバイトである。マスキングを用いたこの
キャリはALU内の任意のビットフィールドを通る。従
来の単一ビットアレイの機能は人力マルチプレクサにお
けるオペランドとしてCを選びそしてALUの、最小桁
ビットを除くすべてのビットをマスキングすることによ
りモデル化出来る。隣接シフトについては隣接出力はQ
レジスタの選ばれたバイトの最小桁ビットからとり出さ
れる。隣接入力はALUキャリ入力に入り、そしてAL
Uの機能は、この値が機能出力に再生されてQまたはA
に書きもどされうるようなものである。これの変更例は
、最小桁ビットを適正に機能設立しそして他のビットを
マスキングすることによりALUについてキャリーアウ
トを介しキャリーインを伝ばんさせるものである。同時
にQレジスタは右に一つシフトされALUキャリがms
エンドとなる。これをくり返すことによりQレジスタ内
の任意の数のビットを1サイクル当り、PE毎に1ビツ
トの速度で隣接PEにシフトすることが出来る。
メモリ構成 外部インターフェース このPEはオフチップメモリに対し1ビツト通路を有す
る。これは明らかに現存するものと両立するものであり
、プールマトリクスの演算に必要なものである。しかし
ながら、PE内に広いデータ通路を与えることにより、
オフチップメモリとのインターフェースの部分としてデ
ータを再配列またはモード変換することが可能になる。
チップ上に32個のPEを32×1として配置するとす
ると、オフチップメモリに対する32本の1ビット通路
は1本の32ビット通路とみなすことが出来る。この1
本の32ビット通路はすべてのPHに入力を与えそして
選ばれた1個のPEのQレジスタにロードしうろことに
なり、他の31個のPEをロードするにはこれをくり返
せばよい。この方法は第3図にローカルアドレスインデ
クンング用のハードウェアと共に示しである。
全体として同様の効果を与える他の方法はQレジスタを
32X32シフトブレーンとして構成し、それによりデ
ータがこれらQレジスタ群に対し次々にシフトされるよ
うにするものである。
いずれの方法もQレジスタ入力におけるマチルブレクサ
を広くしなければならない。
いずれの方法もオフチップメモリとPEの間の転送にお
いて「コーナーターン」を与えるものである。前述のよ
うにこれは32ビツトデ一タ項目に特有であるが、8ま
たは16ビツト項目を処理するための構成もまた考えら
れる。
「水平モード」でデータをオフチップメモリに保持する
ことの利点は次の通りである。
1゜  MCUからマトリクスの一つのエレメントへの
アクセスはベクトルまたはスカラエレメントに対するア
クセスと同じ速度である。
2、 データがホストから送られあるいはそれにもどる
ときにモード変換を必要としない。場合によっては変換
ルーチンがフォーマット変換を行うために必要であるた
め変換ルーチンは必要である。
アレイメモリ内のワードの順序づけは通常のメモリにつ
いて当然であるものと同じものである必要はないが英国
特許GB−B−2130409に示されるものと同様の
ホストインターフェースにアドレスシーケンスエンジン
チップを含めることにより適応してもよい。
3、   I10システムについてはモード変換は不要
であるが、ロード(またはバイト)レベルでの再配列は
一般に必要であり、2重バッファリングとプログラマブ
ルアドレス発生用の現在の方法も極めて適切なものであ
る。
4、 データがオフチップメモリとオンチップメモリの
間で転送されているときオフチップメモリのアドレスシ
ーケンスを変更することによりそのデータは転送中に行
方向に有効に再配列される。
この再配列は各行に沿った32個のPE群内でのみ適用
する。
5、 オフチップメモリへのワードアクセスではECC
またはパリティ (メモリのタイプにより)を維持しチ
エツクするのは簡単であるからローカルインデクシング
を与えることが出来る。データビンと共用しない限りア
ドレスを出するに余分なチップビンが必要である(これ
はインデクシング動作を長くする)。
オンチップバッファがインデクシングされた書込みにつ
いて32個のアドレス(PE当り1個)を保持するため
に用いられる。これはRAMまたはシフトレジスタでよ
い。インデクシングされた書込みについて、各PEはQ
内にそのアドレスをつくり、これらが内部メモリデータ
路を用いてアドレスバッファに転送される。次に書込ま
れるべきデータがQにロードされる。そして各データワ
ードがバッファから対応するアドレスを用いて書込まれ
る。あるいは、データの保持に別のオンチップバッファ
を用いることが出来、ローカルインデクシングが行われ
るときQレジスタは用いられない。そのときメモリアク
セスが処理機能と並列に行われ、いくつかのサイクルが
処理からとり出されてオンチップメモリとバッファレジ
スタ間のデータをコピーする。
成るテーブル索引動作での使用と共に、ローカルインデ
クシングは例えばシートマツプオーバーサイズアレイの
シフトを援助する。
ソフトウェアは適正なデータ値の付加とデータと限界に
対するアトルスチェックを採用しており、その場合には
ローカルインデクシングは監視呼出しによりアクセスさ
れるシステム機能となる。あるいはこの機能はハードウ
ェアで行うことが出来る。
上記の形式の処理エレメントはコプロセッサとして従来
の単一ビット処理エレメントと共に使用出来る。第4,
5図はそのような構成を用いる実施例を示す。1個の8
ビツト処理エレメント(CP)はアレイの夫々の単一ビ
ット処理エレメント(P E)に関連づけられる。この
8ビツト処理エレメントは単一ビット処理エレメントに
物理的に近似する必要はな(、図示の例では8ビツト処
理エレメントは単一ビット処理エレメントのサブアレイ
に沿って配置された共処理サブアレイCPS1、・・・
・・・CPS4内に形成される。明らかなように他の物
理的構成も可能である。
単一ビット処理エレメントとコプロセッサの8ビツトエ
レメントはMCUからのインストラクションにより制御
される。しかしながら単一ビット処理エレメントがMC
Uから直接入るアブセンブリ言語(APAL)のインス
トラクションに従う間に共処理サブアレイ内の8ビツト
処理エレメントの動作はここでrCPALJと呼ぶ低レ
ベルアッセンブリ言語のインストラクションにより制御
される。付表AはCPALの全構文のリストである。こ
の実施例においてマルチプライヤレジスタはMで示され
ており、Sレジスタは8ビツトPEのメモリから読出さ
れたデータを保持するための別のレジスタである。
アレイメモリからアレイメモリへの組込み動作は1ビツ
トPEまたは8ビツトPEの、行われている特定の機能
により適した方で行われる。単一ビットPEとはことな
り、8ビツトPE間には通信はなく、それらの使用はそ
のためにアレイメモリに垂直方向に保持されるデータに
適用される処理機能(データの動きではない)に制限さ
れる。
この実施例のそれぞれの8ビツトPEは「CP8」で示
しである。このCP8はこの例では32バイトのローカ
ルメモリを有し、これがオペランドと結果を保持すると
共に組込み機能用のワークスペースとして作用する。一
般に与えられた組込み機能についてのオペランドはCP
8組込み機構が実施される前にアレイメモリからCP8
メモリヘコビーされる。結果は後に再びコピーされ、あ
るいはCP8メモリ内の1回の動作の結果が次の動作の
オペランドとして使用される。アレイメモリとCP8メ
モリの間のデータコピーは主アッセンブリ言語インスト
ラクション列内の特別なインストラクションにより制御
されそしてCP8/1−ドウエアにより直接影響される
。従って、占有CPAレコードがCP8メモリに固有の
動作のみを処理する。
CP8組込み機能はアッセ、ンブリ言語インストラクシ
ョンの結果として任意の入力点でスタートされ、そして
ストップフィールドを含むインストラクションが入るま
で分岐またはルーピングすることなく続行する。CPA
Lの実行は中断出来ないが、主アッセンブリ言語APA
LがCP8メモリとアレイメモリの間のデータの同時コ
ピーを呼び出す場合にはいくつかのインストラクション
コピーがCP8メモリへのアクセスのために自動的に「
盗用」される。
上記のMおよびSレジスタの相異の他に各CP8の内部
レジスタの構成は一般に第一の実施例におけるものと同
様である。これらレジスタのネーム、ビット幅および主
機能は次の通りである。
Q32アキュムレータ C1キャリ M8マージ/乗算コントロール S8メモリ読取 CP8メモリは常に8ビット幅で読取られあるいは書込
まれ、そして同様にすべてではないが殆どの動作は8ビ
ット幅である。Qレジスタは4個の8ビツトレジスタと
して有効に機能する。CPALではバイト幅の動作はC
レジスタの設定の使用の外は省略モードである。レジス
タMとSは上記の特定の機能に加えて汎用レジスタとし
て使用出来る。
第5図は1個のCP8を示す。データ路はCレジスタと
アレイメモリビンに関連するものを除き殆ど1バイト幅
である。
CAPの心臓部であるALUは一般に前記実施例におけ
ると同様である。しかしながら、単一ビットプロセッサ
と共にコプロセッサとしての使用を意図しているから、
上記の単一ビット機能の殆どは省略出来る。また、便宜
上ALU内のビットレベルのマスキングは省略されてい
る。OR機能は等価な効果を得るためにALU入力にお
いてソフトウェア制御のもとで行われる。ALU出力の
マージ機能はバイトについて動作しそして個々のビット
のマージは不可能である。チップの外の主メモリに対す
る転送は別のレジスタDにより行われる。これはDMA
モードで7動作し夫々のCF2のついて一時に1ビツト
づつ並列にデータを転送しそしてCP8メモリに対し夫
々のバイトを転送するためにCF2からサイクルを盗用
する。Aレジスタは主メモリへの結果の書込みの制御に
のみ使用される。CF3内のすべての条件付き動作はM
レジスタの最小桁ビットによりきまる。
【図面の簡単な説明】
第1図はプロセッサアレイシステムのブロック図、第2
図は第1図のシステムで使用するための処理エレメント
を示す図、第3図は単一サブアレイ用のメモリインター
フェースの構成を示す図、第4図は他の実施例のブロッ
ク図、第5図は第4図のシステムで使用するための処理
エレメントを示す図である。 1・・・制御ユニット、2・・・処理エレメントアレイ

Claims (1)

  1. 【特許請求の範囲】 1、夫々ローカルメモリを含む複数の処理エレメント(
    PE、CP)と、算術演算ユニット(ALU)とこの算
    術演算ユニット用のオペランドレジスト手段(Q)を含
    む、SIMDアーキテクチュアを用いるプロセッサアレ
    イであって、上記算術演算ユニット(ALU)がバイト
    幅プロセッサであり、上記オペランドレジスタ手段(Q
    )が多バイトシフト回路と、このシフト回路の夫々のバ
    イト用のデータ出力と上記出力の内の選ばれた1個から
    上記算術演算ユニット(ALU)にデータ通信を行うよ
    うに配置されたマルチプレクサ(MUX)とを含むこと
    を特徴とするプロセッサアレイ。 2、前記オペランドレジスタ手段(Q)はデータをバイ
    トをもって一つの端から他方へシフトするように構成さ
    れた第1多バイトシフト回路(Q1)とこのシフト回路
    (Q1)に並列に接続すると共にデータをバイトをもっ
    て一方の端から他方へとシフトするように構成された第
    2多バイトシフト回路(Q2)を含むごとくなった請求
    項1記載のプロセッサアレイ。 3、前記第1シフト回路は前記一端において前記算術演
    算ユニット(ALU)からのバイト出力を受けるように
    構成され、前記第2シフト回路は前記一端で上記算術演
    算ユニットから桁上ビット出力を受けそして他端でマル
    チプライヤレジスタ(5)にデータを出力するように構
    成されるごとくなった請求項2記載のプロセッサアレイ
    。 4、前記オペランドレジスタ手段(Q)は更に前記第2
    シフト回路(Q2)に並列に接続する出力レジスタ(Q
    0)を含み、この出力レジスタ(Q0)の夫々のバイト
    位置におけるデータ出力が前記第1シフト回路の対応す
    るデータ入力と前記マルチプレクサの入力に共通に接続
    されるごとくなった請求項3記載のプロセッサアレイ。 5、前記算術演算ユニット(ALU)はマスクビットパ
    ターンを受けるように構成されたマスク入力を含み、こ
    のマスクビットパターンに応じてバイト幅オペランドの
    選ばれたビットにもとづき動作するごとくなった請求項
    1乃至4の1に記載のプロセッサアレイ。 6、前記処理エレメント(PE)はローカルメモリから
    のデータ用のバイト幅入力とオフチップメモリ用のビッ
    ト幅入力を含むごとくなった請求項1乃至5の1に記載
    のプロセッサアレイ。 7、前記アレイは、夫々n個の処理エレメント(PE)
    を含み、そしてサブアレイメモリに対しnビット通路を
    有する多数のサブアレイ(S1、・・・・・・S4)を
    含むごとくなった請求項1乃至6の1に記載のプロセッ
    サアレイ。 8、前記夫々のサブアレイメモリは局部的にインデクシ
    ングされるごとくなった請求項7記載のプロセッサアレ
    イ。 9、単一ビット処理エレメント(CP、PE)のアレイ
    を更に含み、これら処理エレメント(PE、CP)は対
    応する単一ビット処理エレメント(CP、PE)につい
    てコプロセッサとして機能するように構成されたバイト
    幅算術演算ユニット(ALU)を含むごとくなった請求
    項1乃至4の1に記載のアレイ。 10、複数の単一ビット処理エレメント(PE)を含み
    そしてSIMDアーキテクチャを使用するプロセッサア
    レイであって、複数の共処理エレメント(CP)を更に
    含み、夫々の共処理エレメントは夫々の処理エレメント
    (PE)について設けられており、夫々の処理エレメン
    トと共処理エレメントがアレイメモリの一つの共通領域
    をアドレスし、夫々の共処理エレメント(CP)がロー
    カルメモリと、バイト幅算術演算ユニット(ALU)と
    このユニット用のオペランドレジスタ手段(Q)を含む
    ごとくなったことを特徴とするプロセッサアレイ。 11、前記オペランドレジスタ手段(Q)は多バイトシ
    フト回路と、このシフト回路の夫々のバイト用のデータ
    出力と、これら出力の内の選ばれた1個から前記算術演
    算ユニット(ALU)にデータ通信を行うように構成さ
    れたマルチプレクサ(MUX)とを含むごとくなった請
    求項10記載のアレイ。 12、前記算術演算ユニット(ALU)用のオペランド
    を保持するように接続されるバイト幅マルチプライヤレ
    ジスタ(M)を更に含み、前記オペランドレジスタ手段
    (Q)がこのマルチプライヤレジスタ(M)に記憶され
    た1個以上のビットの値により、上記オペランドレジス
    タ手段に保持されるデータを1バイトだけシフトするよ
    うに構成されるごとくなった請求項10記載のプロセッ
    サアレイ。
JP30843690A 1989-11-14 1990-11-14 プロセッサアレイ Pending JPH03211688A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB898925720A GB8925720D0 (en) 1989-11-14 1989-11-14 Processor array system
GB8925720.8 1989-11-14

Publications (1)

Publication Number Publication Date
JPH03211688A true JPH03211688A (ja) 1991-09-17

Family

ID=10666282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30843690A Pending JPH03211688A (ja) 1989-11-14 1990-11-14 プロセッサアレイ

Country Status (3)

Country Link
EP (1) EP0428328A1 (ja)
JP (1) JPH03211688A (ja)
GB (1) GB8925720D0 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0664910A1 (en) * 1992-10-16 1995-08-02 HALAAS, Arne Non-numeric coprocessor
CN1107597A (zh) * 1994-02-24 1995-08-30 吴乾弥 管线式与心跳式及单指令多数据流的阵列处理架构及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2361718A1 (fr) * 1976-08-11 1978-03-10 Adersa Processeur parallele associatif a hierarchie de memoire, notamment pour l'acquisition et le traitement rapides des signaux
IT1182575B (it) * 1985-09-27 1987-10-05 Elsag Sistema per realizzare elaborazioni convolutive veloci su informazioni rappresentative di immagini

Also Published As

Publication number Publication date
EP0428328A1 (en) 1991-05-22
GB8925720D0 (en) 1990-01-04

Similar Documents

Publication Publication Date Title
EP0428327A1 (en) Processor array system
US5175862A (en) Method and apparatus for a special purpose arithmetic boolean unit
US5287532A (en) Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte
US4974146A (en) Array processor
US6088783A (en) DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5581773A (en) Massively parallel SIMD processor which selectively transfers individual contiguously disposed serial memory elements
EP0539595A1 (en) Data processor and data processing method
EP0314277A2 (en) Simd array processor
US3943494A (en) Distributed execution processor
JPH03144783A (ja) 入出力システム
EP1012735B1 (en) Eight-bit microcontroller having a risc architecture
US20070182746A1 (en) System and Method for Vector Computations in Arithmetic Logic Units (ALUS)
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
WO2001035224A1 (en) Bit-serial memory access with wide processing elements for simd arrays
US3299261A (en) Multiple-input memory accessing apparatus
WO2000054144A1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a vliw processor
US20050024983A1 (en) Providing a register file memory with local addressing in a SIMD parallel processor
KR20220051006A (ko) Pim(processing-in-memory) 연산 수행 방법, 및 관련 메모리 디바이스 및 시스템
US20040078554A1 (en) Digital signal processor with cascaded SIMD organization
EP2304594B1 (en) Improvements relating to data processing architecture
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JP3971535B2 (ja) Simd型プロセッサ
US20050257026A1 (en) Bit serial processing element for a SIMD array processor
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
JPH03211688A (ja) プロセッサアレイ