JPH0764789A - 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法 - Google Patents

並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法

Info

Publication number
JPH0764789A
JPH0764789A JP21078393A JP21078393A JPH0764789A JP H0764789 A JPH0764789 A JP H0764789A JP 21078393 A JP21078393 A JP 21078393A JP 21078393 A JP21078393 A JP 21078393A JP H0764789 A JPH0764789 A JP H0764789A
Authority
JP
Japan
Prior art keywords
data
data bus
input
output
processing unit
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.)
Withdrawn
Application number
JP21078393A
Other languages
English (en)
Inventor
Yasunobu Nakase
泰伸 中瀬
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP21078393A priority Critical patent/JPH0764789A/ja
Publication of JPH0764789A publication Critical patent/JPH0764789A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 簡単に制御可能な、汎用的並列処理プロセッ
サを提供する。 【構成】 プロセッサの複数個のプロセッシングユニッ
トの各々は、演算器380、382、384と、他のユ
ニットからの入力データバス216、224の上位nビ
ットまたは下位nビットをこれら演算器に与えるための
セレクタ360〜370と、演算器380、382、3
84の出力を他のユニットへのデータバス210、22
0の任意のものに出力するためのクロスバースイッチ3
92とを含む。各セレクタの接続を予め設定することに
より様々な演算を実行できる。また他のプロセッシング
ユニットとのデータバスを介したデータ交換によりプロ
セッサ全体として多様な演算を実現できる。各プロセッ
シングユニットの構造は同一でレイアウト容易であり、
互換性のある制御命令で制御できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数のプロセッシン
グユニットにより構成される並列処理プロセッサの改良
に関し、特に、幅広い演算に対応できる、制御の容易な
並列処理プロセッサと、そのためのプロセッシングユニ
ットと、並列処理プロセッサの動作方法とに関する。
【0002】
【従来の技術】従来の並列処理プロセッサ(以下単に
「プロセッサ」と呼ぶ)の構成を図16および図17に
示す。このプロセッサは、「ISSCCダイジェスト・
オブ・テクニカル・ペーパーズ」(“ISSCC Digest of
Technical Papers”、1991年2月、252〜253
頁)に発表されたプロセッサのブロック構成のうち、本
願発明に関連する主要演算部分を抜粋し、簡略化して示
したものである。
【0003】図16を参照して、このプロセッサは、4
個のプロセッシングユニットPU00〜PU11(図1
6中では符号30、32、34、36により示される)
と、アドレス演算ユニット(AU)48と、ワーキング
メモリ38と、データキャッシュメモリ40、42、4
4、46とを含む。各プロセッシングユニットからデー
タキャッシュメモリ40、42、44、46およびワー
キングメモリ38へのアクセスは、4本のキャッシュメ
モリ読出専用バス50と、6本の読出書込兼用バス42
との、合計10本のバスを介して行なわれる。このプロ
セッサはさらに、レジスタファイル58と、セレクタ5
6とを含む。セレクタ56とレジスタファイル58と
は、プロセッシングユニット間のデータ交換を行なうた
めのものであり、キャッシュメモリ読出専用バス50
と、読出書込兼用バス52と、SBUS54とから読込
んだデータをレジスタファイル58を介して各プロセッ
シングユニット30、32、34、36とバス52、5
4とに出力可能である。
【0004】図17を参照して、各プロセッシングユニ
ット30、32、34、36は、類似ではあるが相互に
やや異なった構成となっている。各プロセッシングユニ
ット30、32、34、36は、演算器ALU70、7
2、74、76と、乗算器MPY80、82、84、8
6と、加算器ADD90、92、94、96とを含む。
また各プロセッシングユニット30、32、34、36
内には、ALU、乗算器、加算器への入力を選択するた
めのセレクタが含まれている。これについては後述する
が、図17においては、図面の簡略化のために、セレク
タの入出力については簡略化して示してある。
【0005】図17を参照して、たとえばプロセッシン
グユニット30は、5:1のセレクタ110と112と
を含む。プロセッシングユニット30はさらに、ALU
70の出力の一方と、レジスタファイル58からの出力
と、セレクタ110の出力とから1つを選択してALU
70の一方の入力に与えるためのセレクタ130と、セ
レクタ112の出力と、後述するプロセッシングユニッ
ト32から与えられるデータとの一方を選択してALU
70の他方の入力に与えるためのセレクタ132とを含
む。プロセッシングユニット30はさらに、ALU70
の出力の一方とレジスタファイル58の出力とのいずれ
か一方を選択してMPY80の一方の入力に与えるため
のセレクタ150と、プロセッシングユニット32から
与えられるデータと、ADD90の出力とのいずれか一
方を選択してADD90の一方の入力に与えるためのセ
レクタ162とを含む。プロセッシングユニット30は
さらにセレクタ160を含んでおり、このセレクタ16
0はMPY80の出力とADD90の出力とのいずれか
一方を選択してデータバス52に出力するためのもので
ある。
【0006】プロセッシングユニット32は、同様にセ
レクタ114、116、134、136、152、16
4を含む。プロセッシングユニット34は、セレクタ1
18、120、138、140、154、166、16
8を含む。プロセッシングユニット36は、セレクタ1
22、124、142、144、156、170を含
む。さらに、セレクタ160と同様のセレクタが各プロ
セッシングユニット32、34、36に含まれている
が、図の簡略化のため図17には示していない。
【0007】セレクタ114、118、122は、セレ
クタ110と同様の機能を有する。セレクタ116、1
20、124は、セレクタ112と同様の機能を有す
る。セレクタ134、138、142は、セレクタ13
0と同様の機能を有する。セレクタ136は、セレクタ
116の出力とセレクタ112の出力との一方を選択し
てALU72に与えるためのものである。セレクタ14
0はセレクタ132と同様である。セレクタ144は、
セレクタ124の出力とセレクタ120の出力との一方
をALU76に与えるためのものである。セレクタ15
2、154、156は、セレクタ150と同様の機能を
有する。セレクタ164は、プロセッシングユニット3
4の出力と乗算器82の出力とのいずれか一方を選択し
て加算器92に与えるためのものである。セレクタ16
6は、プロセッシングユニット30の出力と、加算器9
4の出力とのいずれか一方を選択して加算器94に与え
るためのものである。セレクタ168は、乗算器84の
出力と、プロセッシングユニット36の出力とのいずれ
か一方を選択して加算器94に与えるためのものであ
る。セレクタ170は、乗算器84の出力と、加算器9
6の出力とのいずれか一方を選択して加算器96に与え
るためのものである。
【0008】各プロセッシングユニット30、32、3
4、36には、各プロセッシングユニットを制御するた
めのローカル命令メモリLPM00、01、10、11
(図17中では参照符号100、102、104、10
6で示される)が設けられている。
【0009】アドレス演算ユニット48は、各メモリ3
8、40、42、44、46の読出、書込アドレスを演
算するためのものである。
【0010】図16および図17に示されるごとく、従
来のプロセッサにおいては、プロセッシングユニットの
構成は相互に異なっており、相互の間の接続も、処理対
象となる演算に合わせて特殊な形態となっている。
【0011】図18および図19を参照して、従来のプ
ロセッサは次のように動作する。プロセッシングユニッ
ト間のバス接続は、図18と図19とに示される2種類
の構成から選択することができる。図18に示される例
においては、プロセッシングユニット30、32、3
4、36の間でのデータバス接続が存在しないように各
セレクタが設定される。各プロセッシングユニットで
は、積和演算が行なわれる。
【0012】図19に示される例では、プロセッシング
ユニット32の乗算器82の出力がプロセッシングユニ
ット30の加算器90の入力に与えられる。加算器90
の出力は、プロセッシングユニット34の加算器94の
入力に与えられる。一方プロセッシングユニット34の
乗算器84の出力がプロセッシングユニット36の加算
器96の入力の一方に与えられる。加算器96の出力は
プロセッシングユニット34の加算器194の入力の他
方に与えられる。加算器94の出力はプロセッシングユ
ニット32の加算器92の入力の一方に与えられる。こ
の図19に示される接続では、4項ごとの積和演算が可
能である。4項ごとの積和結果はプロセッシングユニッ
ト32の出力として得られる。
【0013】このプロセッサの制御は、セットアップ命
令1つと、各プロセッシングユニットの制御を行なうた
めの4個の命令との、合計5個の命令を単位として行な
われる。各命令は32ビットであり、5個の命令では1
60ビットとなる。
【0014】セットアップ命令は、各プロセッシングユ
ニット入力部の5:1セレクタ110、112、11
4、116、118、120、122、124や、各プ
ロセッシングユニット間のデータバスの接続を設定する
ためのセレクタなどを制御する。プロセッシングユニッ
ト制御命令は、メモリ38、40、42、44、46の
アドレスを発生したり、ローカル命令メモリ100、1
02、104、106のアドレス指定を行なったりす
る。ローカル命令メモリ100、102、104、10
6に含まれるローカル命令は、演算器で行なう演算内容
を指定するためのものである。
【0015】
【発明が解決しようとする課題】図16〜図19に示さ
れる従来技術のプロセッサには、次のような問題点があ
る。このプロセッサは、もともと動画像圧縮用に積和演
算の効率化を目標として開発された。そのため、同じよ
うに大量の演算が要求される処理であっても、動画像圧
縮以外の分野へこのプロセッサを適用することは困難で
ある。データの大量処理が要求される演算としては、積
和演算のほかにもFFT(高速フーリエ変換)に用いら
れるバタフライ演算や、科学技術計算における倍精度演
算などがある。バタフライ演算には、乗算器4個と加算
器6個とが必要である。倍精度乗算(2nビットとす
る)では、n×nビットの乗算器4個と2n+2nビッ
トの加算器3個とが必要である。しかし、図16〜図1
9に示されるプロセッサが行なえる処理は、動画像圧縮
用の処理だけであり、そのハードウェアも、アルゴリズ
ムが固定したものとして実現されている。これは、複数
個のプロセッシングユニットを備えたプロセッサにおい
て、上述のような様々な処理を行なおうとするとその制
御が複雑になるなどの理由によるものである。したがっ
て従来のこの種のプロセッサで汎用できるものは極めて
少数であり、しかもその制御が複雑であったり、ハード
ウェアが複雑であるという欠点がある。
【0016】この発明は上述の問題点に鑑みてなされた
ものであって、複数個のプロセッシングユニットを備え
ることにより並列処理を効率よく行なえるとともに、幅
広い種類の演算を、比較的単純な制御方法で可能とする
並列処理プロセッサとそのためのプロセッシングユニッ
トと、プロセッサの動作方法とを提供することを目的と
する。
【0017】
【課題を解決するための手段】請求項1に記載の並列処
理のためのプロセッシングユニットは、それぞれ複数個
の入力を有し、与えられるデータの間に所定の演算を行
なって結果を出力するための複数個の演算手段と、複数
の単方向入力データバスに接続され、複数個の演算手段
の各入力ごとに、複数の単方向入力データバスのうちの
いずれか1つを可制御的に選択して、選択された単方向
入力データバスを介して与えられるデータの一部を演算
手段の入力に与えるための入力データバス選択手段と、
複数個の演算手段の出力に接続された入力と、単方向入
力データバスと同じ数の単方向出力データバスに接続さ
れた出力とを有し、演算手段の出力を、単方向出力デー
タバスのいずれかに出力するための出力データバス選択
手段と、複数個の演算手段により所望の複合演算を実現
するために、入力データバス選択手段と、出力データバ
ス選択手段とによるデータの経路を制御するための制御
手段とを含む。
【0018】請求項2に記載のプロセッシングユニット
は、請求項1に記載のものであって、その複数個の演算
手段が、2つのnビット幅の入力を有し、与えられる2
つのデータを乗算して2nビットの結果を出力する乗算
器と、各々が2つのnビット幅の入力を有し、与えられ
る2つのデータを加算してnビット幅の結果を出力する
2つの加算器とを含む。
【0019】請求項3に記載のプロセッシングユニット
は、請求項2に記載のものであって、複数の単方向入力
データバスおよび複数の単方向出力データバスの各々は
2nビット幅を有し、入力データバス選択手段は、複数
個の演算手段の各入力ごとに複数の単方向入力データバ
スのうちのいずれか1つを可制御的に選択して、選択さ
れた単方向入力データバスを介して与えられるデータの
上位または下位のnビットを該入力に与えるための手段
を含み、出力データバス選択手段は、演算手段の出力の
各々を、単方向出力データバスの任意のいずれかの上位
nビットまたは下位nビットまたはその双方に出力可能
とするための手段を含む。
【0020】請求項4に記載のプロセッシングユニット
は、請求項2に記載のものであって、2つの加算器の一
方はキャリー出力を有し、他方はキャリー入力を有し、
さらに、キャリー出力とキャリー入力とを可制御的に断
続するための手段を含む。
【0021】請求項5に記載のプロセッシングユニット
は請求項2に記載のものであって、入力データバス選択
手段が、2つの加算器の1つの少なくとも1つの入力に
ついて、単方向入力データバスのうちのいずれか1つま
たは該加算器自身の出力のいずれかを可制御的に選択し
て、選択された単方向入力データバスを介して与えられ
るデータまたは該加算器自身の出力のいずれかの一部を
該入力に与えるための手段を含む。
【0022】請求項6に記載のプロセッシングユニット
は、請求項2に記載のものであって、入力データバス選
択手段が、2つの加算器の1つの少なくとも1つの入力
について、複数の単方向入力データバスのうちのいずれ
か1つまたは乗算器の出力のいずれかを可制御的に選択
して、選択された単方向入力データバスを介して与えら
れるデータまたは乗算器の出力のいずれかの一部を該入
力に与えるための手段を含む。
【0023】請求項7に記載のプロセッシングユニット
は、請求項2に記載のものであって、入力データバス選
択手段が、2つの加算器の1つの少なくとも1つの入力
について、複数の単方向入力データバスのうちのいずれ
か1つまたは該加算器自身の出力または乗算器の出力の
一部のいずれかを可制御的に選択して、選択された単方
向入力データバスを介して与えられるデータの一部また
は該加算器自身の出力または乗算器の出力の一部のいず
れかを該入力に与えるための手段を含む。
【0024】請求項8に記載のプロセッシングユニット
は、請求項2に記載のものであって、所定の情報を予め
記憶するための読出専用記憶手段をさらに含む。入力デ
ータバス選択手段は、乗算器の少なくとも1つの入力に
ついて、単方向入力データバスのうちのいずれか1つま
たは読出専用記憶手段の出力のいずれかを可制御的に選
択して、選択された単方向入力データバスを介して与え
られるデータまたは読出専用記憶手段の出力のいずれか
の一部を該入力に与えるための手段を含む。
【0025】請求項9に記載の並列処理プロセッサは、
n個のプロセッシングユニットと、隣り合うプロセッシ
ングユニットを所定方向に円環状に順次に接続するため
の第1の単方向データバスと、1つおいて隣り合うプロ
セッシングユニットを円環状に順次に双方向に接続する
ための、第2の単方向データバスとを含む。nは4のベ
キ乗である。各プロセッシングユニットは、それぞれ複
数個の入力を有し、与えられるデータの間に所定の演算
を行なって結果を出力するための複数個の演算手段と、
隣接するプロセッシングユニットからの入力となる第1
の単方向データバスと、第2の単方向データバスのうち
の該プロセッシングユニットへの入力データバスとに接
続され、複数個の演算手段の各入力ごとに第1および第
2の単方向データバスのうちのいずれか1つを可制御的
に選択して、選択された単方向データバスを介して与え
られるデータの一部を該入力に与えるための入力データ
バス選択手段と、複数個の演算手段の出力に接続された
入力と、隣接するプロセッシングユニットへの出力とな
る第1の単方向データバスと、第2の単方向データバス
のうちの該プロセッシングユニットからの出力データバ
スとに接続された出力とを有し、演算手段の出力の各々
を、第1および第2の単方向データバスのいずれかに出
力するための出力データバス選択手段と、複数個の演算
手段により所望の複合演算を実現するために、入力デー
タバス選択手段と、出力データバス選択手段とによるデ
ータの経路と、演算手段による演算の実行とを制御する
ための制御手段とを含む。
【0026】請求項10に記載の並列処理プロセッサ
は、請求項9に記載のものであって、プロセッシングユ
ニットと同数の、各々が一度に2つのデータを出力可能
なデータ記憶手段と、データ記憶手段の各々と、プロセ
ッシングユニットの各々とを接続するための複数の読出
データバスと複数の書込データバスとをさらに含む。各
プロセッシングユニットにおいて、入力データバス選択
手段は、隣接するプロセッシングユニットからの入力と
なる第1の単方向データバスと、第2の単方向データバ
スのうちの該プロセッシングユニットへの入力データバ
スと、複数の読出データバスとに接続され、複数個の演
算手段の各入力ごとに第1および第2の単方向データバ
スと読出データバスとのうちのいずれか1つを可制御的
に選択して、選択されたデータバスを介して与えられる
データの一部を入力に与えるための手段を含む。出力デ
ータバス選択手段は、複数個の演算手段の出力に接続さ
れた入力と、隣接するプロセッシングユニットへの出力
となる第1の単方向データバスと、第2の単方向データ
バスのうちの該プロセッシングユニットからの出力デー
タバスと、書込データバスとに接続された出力とを有
し、演算手段の出力をこれらデータバスのいずれかに出
力するための手段とを含む。
【0027】請求項11に記載のプロセッサは、請求項
9に記載のものであって、プロセッシングユニットと同
数の、各々が一度に2つのデータを出力可能なデータ記
憶手段と、データ記憶手段の各々と、プロセッシングユ
ニットの各々とを接続するための複数の読出データバス
と複数の書込データバスとをさらに含む。複数のプロセ
ッシングユニットは、各々が4のベキ乗個のプロセッシ
ングユニットを含む複数個のグループに分割されてお
り、複数のプロセッシングユニットと複数のデータ記憶
手段とは1対1に対応付けられている。各プロセッシン
グユニットにおいて、入力データバス選択手段は、隣接
するプロセッシングユニットからの入力となる第1の単
方向データバスと、第2の単方向データバスのうちの該
プロセッシングユニットへの入力データバスと、複数の
データバスのうち該プロセッシングユニットが含まれる
グループのプロセッシングユニットと対応付けられたデ
ータ記憶手段からの読出データバスとに接続され、複数
個の演算手段の各入力ごとに第1および第2の単方向デ
ータバスと読出データバスとのうちのいずれか1つを可
制御的に選択して、選択されたデータバスを介して与え
られるデータの一部を該入力に与えるための手段を含
む。出力データバス選択手段は、複数個の演算手段の出
力に接続された入力と、隣接するプロセッシングユニッ
トへの出力となる第1の単方向データバスと、第2の単
方向データバスのうちの該プロセッシングユニットから
の出力データバスと、書込データバスのすべてとに接続
された出力とを有し、演算手段の出力を、データバスの
いずれかに出力するための手段を含む。
【0028】請求項12に記載の並列処理プロセッサの
動作方法は、4個のプロセッシングユニットと、隣り合
うプロセッシングユニットを所定方向に円環状に順次に
接続するための4本の第1の単方向データバスと、1つ
おいて隣り合うプロセッシングユニットを双方向に接続
するための、4本の第2の単方向データバスとを含む並
列処理プロセッサの動作方法である。各プロセッシング
ユニットは、各々nビットの2つの入力を有し、与えら
れるデータの間に乗算を行なって2nビット幅の結果を
出力するための乗算手段と、各々が、各々nビットの2
つの入力を有し、与えられるデータの間に加算を行なっ
てnビット幅の結果を出力するための第1および第2の
加算手段と、第1の加算手段のキャリー出力を第2の加
算手段のキャリー入力に可制御的に与えるためのキャリ
ー切換手段と、隣接するプロセッシングユニットからの
入力となる第1の単方向データバスと、第2の単方向デ
ータバスのうちの該プロセッシングユニットへの入力デ
ータバスとなるものとに接続され、乗算手段と加算手段
との各入力ごとに第1および第2の単方向データバスの
うちのいずれか1つを可制御的に選択して、選択された
単方向データバスを介して与えられるデータの一部を乗
算手段と加算手段との入力にそれぞれ与えるための入力
データバス選択手段と、乗算手段および加算手段の出力
に接続された入力と、隣接するプロセッシングユニット
への出力となる第1の単方向データバスと、第2の単方
向データバスのうちの該プロセッシングユニットからの
出力データバスとに接続された出力とを有し、乗算手段
および加算手段の出力を、第1および第2の単方向デー
タバスのいずれかに出力するための出力データバス選択
手段と、乗算手段および加算手段により所望の複合演算
を実現するために、入力データバス選択手段と、出力デ
ータバス選択手段とによるデータの経路を制御するため
の制御手段とを含む。この動作方法は演算に必要なデー
タの各々を入力データバス選択手段に与えるステップ
と、入力データバス選択手段により、データの各々を上
位および下位のnビットずつに分解し、4つのプロセッ
シングユニットの、乗算手段および加算手段の入力のい
ずれか2つにそれぞれ与えるステップと、すべてのプロ
セッシングユニットのキャリー切換手段を、所望の演算
に応じて設定するステップと、各プロセッシングユニッ
トの出力データバス選択手段および入力データバス選択
手段を制御して、所望の演算が得られるように各プロセ
ッシングユニットの乗算手段と、第1および第2の加算
手段との間の接続を設定するステップと、演算結果が、
データバスのうちの所望のものに出力されるように、所
望の演算によって定まる所定のプロセッシングユニット
の乗算手段および加算手段のうちの所定のものの出力
の、所定の部分を所望のデータバスに出力するように出
力データバス選択手段を制御するステップとを含む。
【0029】請求項13に記載の動作方法は、請求項1
2に記載のものであって、接続を設定するステップは、
あるプロセッシングユニット内の乗算手段または加算手
段の出力の上位nビットが、他のプロセッシングユニッ
ト内の乗算手段または加算手段の下位nビットに入力さ
れるように、これらプロセッシングユニットの出力デー
タバス選択手段および入力データバス選択手段によるデ
ータ経路を設定するステップを含む。
【0030】請求項14に記載の動作方法は、請求項1
2に記載のものであって、接続を設定するステップは、
あるプロセッシングユニット内の乗算手段または加算手
段の出力の上位nビットが、他のプロセッシングユニッ
トへのデータバスの下位nビットに出力されるように、
該プロセッシングユニットの出力データバス選択手段に
よるデータ経路を設定するステップを含む。
【0031】請求項15に記載の並列処理プロセッサ、
請求項9に記載のものであって、各プロセッシングユニ
ットごとに準備された、制御手段が実行する制御命令を
格納するための命令記憶手段をさらに含む。
【0032】請求項16に記載の並列処理プロセッサ
は、請求項15に記載のものであって、制御命令は、デ
ータ記憶手段を制御するための第1の種類の制御命令
と、制御手段による演算手段の制御のための第2の種類
の制御命令との2つの系統に分類される。
【0033】請求項17に記載の並列処理プロセッサ
は、請求項16に記載のものであって、第1の種類の制
御命令は、データ記憶手段の各々の2つの読出アドレス
と、1つの書込アドレスとを指定する。
【0034】請求項18に記載の並列処理プロセッサ
は、請求項16に記載のものであって、制御手段は、与
えられる第2の種類の制御命令が変更されるまでは、直
前に与えられた第2の種類の制御命令に従って演算手段
と入力データバス選択手段と出力データバス選択手段と
を制御する。
【0035】請求項19に記載の並列処理プロセッサ
は、請求項16に記載のものであって、命令記憶手段
は、複数個の命令を記憶する命令メモリと、命令メモリ
の読出アドレスを指定するためのプログラムカウンタ
と、プログラムカウンタにより指定されたアドレスを先
頭として2つの命令を一度に読出すための手段と、読出
された2つの命令が同一の系統に属するか否かを判断す
るための手段と、判断結果に従って、制御手段またはデ
ータ記憶手段またはその双方に制御命令を与えるための
手段と、判断結果に従って、プログラムカウンタのカウ
ントを1または2増加させるための手段とを含む。
【0036】
【作用】請求項1に記載の並列処理のためのプロセッシ
ングユニットにおいては、そこに接続される単方向入力
データバスの数と、単方向出力データバスの数とが同じ
である。そしてこれら単方向入力データバスの任意のも
のを介して与えられるデータを、複数個の演算手段で処
理して結果を単方向出力データバスの任意のものに出力
できる。制御手段の制御により種々の演算が可能なた
め、このプロセッシングユニットは汎用的であり、かつ
制御手段の制御は比較的単純でよい。しかも入出力デー
タバスの数が同一であるために、このプロセッシングユ
ニットを複数個組合わせて並列処理プロセッサを作製す
るときのプロセッシングユニット相互の接続が容易であ
り、各プロセッシングユニット構成が同一であるため
に、それらの制御に互換性を持たせることができる。
【0037】請求項2に記載のプロセッシングユニット
は、n×nビットの乗算器とn+nビットの2つの加算
器とを用いて、大量のデータ処理が要求される演算にお
ける典型的な処理を行なうことができる。
【0038】請求項3に記載のプロセッシングユニット
では、演算手段の各入力に、単方向入力データバスのう
ちのいずれか任意の1つの上位または下位のnビットが
与えられる。これら演算手段の出力の各々は、単方向出
力データバスの任意のいずれかの上位nビットまたは下
位nビットたはその双方に出力される。したがって2n
ビットのデータ同士の演算を、それぞれ上位nビットと
下位nビットとに分けてn×nビットの乗算器およびn
+nビットの加算器を用いて行なうことができる。
【0039】請求項4に記載のプロセッシングユニット
では、2つの加算器の一方のキャリー出力を他方のキャ
リー入力とする場合と、しない場合とを選択できる。し
たがって、2nビットのデータ同士の加算と、nビット
のデータ同士の加算と、nビットのデータ同士の2つの
別個の加算とを実行することができる。
【0040】請求項5に記載のプロセッシングユニット
では、2つの加算器の1つの少なくとも1つの入力につ
いて、入力データとして複数の単方向入力データバスの
うちのいずれか1つまたは該加算器自身の出力のいずれ
かを選択できるので、自己の加算結果を用いる演算、た
とえば積和演算と、データバス経由のデータを用いた加
算との双方を行なうことができる。
【0041】請求項6に記載のプロセッシングユニット
では、2つの加算器の1つの少なくとも1つの入力につ
いて、入力データとして単方向入力データバスのうちの
いずれか1つまたは乗算器の出力のいずれかを選択でき
るので、乗算結果を加算の入力に用いる演算、たとえば
積和演算と、データバス経由のデータを用いた演算との
双方を行なうことができる。
【0042】請求項7に記載のプロセッシングユニット
では、2つの加算器の1つの少なくとも1つの入力につ
いて、入力データとして単方向入力データバスのうちの
いずれか1つと、該加算器自身の出力と、乗算器の出力
の一部とのいずれかを選択できる。したがって、乗算結
果や加算結果を加算の入力に用いる演算、たとえば積和
演算と、データバス経由のデータを用いた加算との双方
を行なうことができる。
【0043】請求項8に記載のプロセッシングユニット
では、乗算器の少なくとも1つの入力について、入力デ
ータとして単方向入力データバスのうちのいずれか1つ
と読出専用記憶手段の出力とのいずれかを選択できる。
したがって、読出専用記憶手段に格納されたデータを用
いることにより処理の高速化を図れる処理、たとえばニ
ュートン・ラプソン法による除算や、開平演算などを効
率よく行なうための構成と、通常の演算を行なうための
構成とを自由に選択できる。
【0044】請求項9に記載の並列処理プロセッサで
は、n個のプロセッシングユニットが、隣り合うプロセ
ッシングユニットとは第1の単方向データバスにより単
方向に、1つおいて隣り合うプロセッシングユニットと
は第2の単方向データバスにより双方向に、それぞれ接
続される。各プロセッシングユニットは、最低でも2以
上の同じ数の入力と出力とを有する。入出力の数が多
く、演算の自由度が高くなる。また、各プロセッシング
ユニットは同一の構造を有するため、プロセッサのレイ
アウトおよび制御の複雑さが低減される。
【0045】請求項10に記載の並列処理プロセッサで
は、各プロセッシングユニットごとに、データ記憶手段
が準備される。各プロセッシングユニットは、データ記
憶手段からのデータと、他のプロセッサからのデータと
のいずれにも、複数個の演算手段を用いた所定の処理を
行ない、任意の演算手段の出力を他のプロセッシングユ
ニットと、データ記憶手段との任意のものに出力でき
る。
【0046】請求項11に記載の並列処理プロセッサで
は、プロセッシングユニットはグループに分類され、各
プロセッシングユニットごとに、データ記憶手段が準備
される。各プロセッシングユニットは、同一のグループ
に属するプロセッシングユニットに対応するデータ記憶
手段からのデータと、他のプロセッサからのデータとの
いずれにも、複数個の演算手段を用いた所定の処理を行
ない、任意の演算手段の出力を他のプロセッシングユニ
ットと、データ記憶手段との任意のものに出力できる。
データ記憶手段から、同じグループに属するプロセッシ
ングユニットへの読出データバスは、プロセッシングユ
ニットをグループ化せず全体に接続する場合と比較して
短くてすみ、プロセッシングユニットへのデータの供給
が高速に行なえる。また1グループのプロセッシングユ
ニットで共通のデータを用いた演算を実行できる。さら
に、各プロセッシングユニットからは任意のデータ記憶
手段にデータを書込めるので、グループ間のデータ交換
も可能である。
【0047】請求項12に記載の並列処理プロセッサの
動作方法では、データの各々が上位および下位のnビッ
トずつに分解され、4つのプロセッシングユニットの、
乗算手段および加算手段の入力のいずれか2つにそれぞ
れ与えられる。他のプロセッシングユニットの演算結果
の上位nビットまたは下位nビットは、新たな演算のた
めのデータの下位nビットまたは上位nビットとして乗
算手段または加算手段に与えることができ、多様な演算
を行なうことができる。また、2つの加算手段の間でキ
ャリーの入出力を行なうかどうかを選択できるので、n
ビット精度の2つの加算処理と2nビット精度の1つの
加算処理とを切換えて行なうことができる。したがっ
て、非常に自由度の高い処理を行なうことができる。
【0048】請求項13に記載の並列処理プロセッサの
動作方法では、あるプロセッシングユニット内の乗算手
段の出力の上位nビットまたは下位のnビットが、他の
プロセッシングユニット内の乗算手段または加算手段の
下位nビットと上位nビットとの任意の一方に入力され
るようにデータバスと乗算手段または加算手段との接続
を設定できる。シフト手段を用いることなく多様な演算
を行なうことが可能である。
【0049】請求項14に記載の並列処理プロセッサの
動作方法では、あるプロセッシングユニット内の乗算手
段の出力の上位nビットが、他のプロセッシングユニッ
ト内の乗算手段または加算手段の下位nビットに入力さ
れるようにデータバスと乗算手段または加算手段との接
続を設定できる。シフト手段を用いることなくデータを
実質的にシフトでき、シフトのための時間も必要としな
い。
【0050】請求項15に記載の並列処理プロセッサで
は、各プロセッシングユニットごとに制御命令が命令記
憶手段に格納される。複雑な演算を各プロセッシングユ
ニットごとに制御すればよく、並列処理プロセッサ全体
の制御が容易になる。
【0051】請求項16に記載の並列処理プロセッサで
は、制御命令は、データ記憶手段を制御するための制御
命令と、演算手段の制御のための制御命令との2つの系
統に分類される。データ記憶手段から出力されるデータ
を介しつつ一定の命令を繰り返し行なう場合などに、デ
ータ記憶手段を制御する制御命令のみを、その内容を変
化させつつ繰り返し発行すれば、演算手段のための異な
る制御命令をいくつも発行する必要がない。
【0052】請求項17に記載の並列処理プロセッサで
は、データ記憶手段の各々の2つの読出アドレスからの
2つのデータを読出して所定の演算を行ない、結果を1
つの書込アドレスにより指定された位置に書込できる。
【0053】請求項18に記載の並列処理プロセッサで
は、第2の種類の制御命令が変更されるまでは、直前に
与えられた第2の種類の制御命令に従って演算手段と入
力データバス選択手段と出力データバス選択手段とが制
御される。データ記憶手段から出力されるデータを介し
つつ一定の命令を繰り返し行なう場合などに、データ記
憶手段を制御する命令のみを、その内容を変化させつつ
繰り返し発行すればよく、演算手段のための同一の制御
命令を繰り返し発行する必要がない。
【0054】請求項19に記載の並列処理プロセッサで
は、命令メモリから、プログラムカウンタにより指定さ
れたアドレスを先頭として2つの命令が一度に読出さ
れ、読出された2つの命令が同一の系統に属するか否か
が判断される。同一であれば先に読出出された命令のみ
実行し、プログラムカウンタを1増加させる。同一でな
ければ制御手段とデータ記憶手段との双方にそれぞれの
制御命令を与え、プログラムカウンタを2増加させる。
異なる系統の命令は同時に実行可能なので、一度に制御
命令を1つしか読出さない場合と比較して、命令の実行
速度が向上する。
【0055】
【実施例】
[第1の実施例]本発明の一実施例を、4個のプロセッ
シングユニット(PU)から構成されるプロセッサにつ
いて以下に示す。図1を参照してこのプロセッサは、4
つのプロセッシングユニットPU00、01、10、1
1(図1中ではそれぞれ参照符号200、202、20
4、206により示される)と、これらプロセッシング
ユニット200、202、204、206を、この順序
で円環状に接続するための単方向データバス210、2
12、214、216とを含む。プロセッシングユニッ
トPUに付けられた数値(00、01、10、11)
は、そのプロセッシングユニットのアドレスを2進数で
表わしたものである。
【0056】このプロセッサはさらに、アドレスが2だ
け異なるプロセッシングユニットを双方向に接続するた
めの、単方向入力データバス220、222、224、
226を含む。前述の単方向データバス210、21
2、214は、アドレスが1だけ異なるプロセッシング
ユニットを順次単方向に接続するためのものである。ま
たデータバス216は、プロセッシングユニットPU1
1(206)からPU00(200)へのデータバスで
ある。図1において、各データバスに付加された矢印
は、データの流れる方向を表わしている。図1に示され
るプロセッサでは、各プロセッシングユニットに入るデ
ータバスの入力数と、各プロセッシングユニットから出
るデータバスの出力数とは相互に等しく、それぞれ2と
なっている。すべてのプロセッシングユニットにおいて
この数は等しい。
【0057】図2を参照して、この第1の実施例のプロ
セッサは、前述のプロセッシングユニットPU00、0
1、10、11(200、202、204、206)
と、データバス210、212、214、216、22
0、222、224、226とに加えて、各プロセッサ
200、202、204、206に対応してそれぞれ設
けられたコントロール回路(PUC)250、252、
254、256と、命令メモリ(IM)260、26
2、264、266と、データメモリ270、272、
274、276とを含む。
【0058】このプロセッサはさらに、データメモリ2
70、272、274、276から読出されるデータた
めのメモリ読出バス群280と、各プロセッシングユニ
ット200、202、204、206からデータメモリ
270、272、274、276に書込むデータのため
のメモリ書込バス群272とを含む。各データメモリ2
70、272、274、276はそれぞれ同時に2個の
データの読出が可能であり、それぞれデータバス300
と301、302と303、304と305、306と
307によりメモリ読出バス群280内の互いに異なる
データバスに接続されている。この接続については後述
する。メモリ読出データバス群280内のデータバス
は、データバス群310、312、314、316によ
りプロセッシングユニット200、202、204、2
06にそれぞれ接続される。
【0059】メモリ読出データバス群282は、4つの
nビットデータバスを含み、同じくそれぞれ4本ずつの
nビット幅のデータバスからなるデータバス群320、
322、324、326によりプロセッシングユニット
200、202、204、206の出力に接続されてい
る。この接続の詳細については後述する。データメモリ
270、272、274、276へのデータの書込は同
時に1個が可能である。データメモリに書込むデータは
各プロセッシングユニットの演算結果である。
【0060】命令メモリ260、262、264、26
6へは、図示されない入出力ポートを介して外部より与
えられる命令が格納される。コントロール回路250、
252、254、256の各々は、2個の出力を持ち、
出力の一方はデータメモリ270、272、274、2
76の制御に、他方はプロセッシングユニット200、
202、204、206内の演算器制御にそれぞれ用い
る。
【0061】図3に、プロセッシングユニット200の
内部構成を示す。図3にはプロセッシングユニット20
0の構成を例として示すが、他のプロセッシングユニッ
ト202、204、206の構成もこのプロセッシング
ユニット200と全く同一である。したがって、ここで
はそれらについての詳しい説明は繰り返さないこととす
る。
【0062】図3を参照して、メモリ書込バス群282
は、4本のメモリ書込バス400、402、404、4
06を含む。また図1および図2に示されるプロセッシ
ングユニット202へのデータバス210は、上位nビ
ットのデータバス210Mと下位nビットのデータバス
210Lとを含む。同様にプロセッシングユニット20
4へのデータバス220は、上位nビットのデータバス
220Mと下位nビットのデータバス220Lとを含
む。
【0063】また図2に示されるメモリ読出バス群28
0からプロセッシングユニット200へのメモリ読出バ
ス群310は、図3に示されるようにデータバス33
0、332、334、336、340、342、34
4、346を含む。前述のようにメモリ読出バス群28
0は8本のデータバスを含み、これらメモリ読出バス3
30、332、334、336、340、342、34
4、346はその8本のデータバスからそれぞれ分岐し
たものである。この接続については図4を参照して後述
する。
【0064】図1および図2に示されるプロセッシング
ユニット204からのデータバス224は、上位nビッ
トのデータバス224Mと下位nビットのデータバス2
24Lとを含む。またプロセッシングユニット206か
らのデータバス216も同様に、上位nビットのデータ
バス216Mと下位nビットのデータバス216Lとを
含む。
【0065】図3を参照して、このプロセッシングユニ
ット200は、読出バス群310に接続されたセレクタ
350、352、354、356と、セレクタ350、
352、354、356の出力とデータバス216、2
24となどが入力に接続されたセレクタ360、36
2、364、366、368、370と、セレクタ36
0と362との出力が入力に接続された乗算器(MP
Y)380と、セレクタ368と370との出力に接続
された2つの入力を有する第1の加算器(ADD0)3
84と、セレクタ364と366との出力に接続された
2つの入力を有する第2の加算器(ADD1)382
と、乗算器380のそれぞれnビット幅の出力MPMと
MPLと、加算器384、382の出力とに接続され、
各出力データを出力データバス210、220の上位n
ビットのデータバス210Mおよび220Mと、下位n
ビットのデータバス210Lおよび220Lとのいずれ
かに出力するためのクロスバースイッチ(CBS)39
2と、乗算器380の2つの出力MPM、MPLと、2
つの加算器382、384の出力とを、メモリ書込バス
群282の4つのメモリ書込バス400、402、40
4、406のいずれかに出力するためのセレクタ(SE
LW)390とを含む。セレクタ390とメモリ書込バ
ス400、402、404、406とはそれぞれデータ
バス410、412、414、416により接続されて
いる。クロスバースイッチ392は、それぞれ2nビッ
トのデータバス420、422によりデータバス21
0、220に接続されている。データバス420の上位
nビットがデータバス210Mに接続され、下位nビッ
トがデータバス210Lに接続されている。データバス
422の上位nビットがデータバス220Mに接続さ
れ、下位nビットがデータバス220Lに接続されてい
る。
【0066】セレクタ350および354の入力には、
4組のデータバス330、332、334、336がそ
れぞれ接続されている。セレクタ352、356の入力
には、4組のデータバス340、342、344、34
6がそれぞれ接続されている。
【0067】セレクタ360の一方の入力にはセレクタ
350の出力が接続されている。セレクタ360の他方
の入力には、データバス224の上位nビットのデータ
バス224Mが接続されている。セレクタ362の一方
の入力にはセレクタ352の出力が接続されている。セ
レクタ362の他方の入力には、データバス216の上
位nビット216Mが接続されている。
【0068】セレクタ364、366はそれぞれ3入力
である。セレクタ364の1つの入力には、セレクタ3
54の出力が接続されている。セレクタ364の他の1
つの入力には、データバス224の上位nビットのデー
タバス224Mが接続されている。セレクタ364の残
りの1つの入力には、加算器382の出力AD1が接続
されている。セレクタ366の入力の1つにはセレクタ
356の出力が接続されている。セレクタ366の他の
入力の1つには、乗算器380の出力のうちの上位nビ
ットMPMが与えられる。セレクタ366の残りの1つ
の入力には、データバス216の上位nビットのデータ
バス216Mが接続される。
【0069】セレクタ368、370はそれぞれ4入力
を有する。セレクタ368の第1の入力には、加算器3
84の出力AD0が与えられる。第2の入力には、セレ
クタ350の出力が与えられる。第3の入力にはデータ
バス224の下位nビットのデータバス224Lが接続
される。第4の入力には、データバス224の上位nビ
ットのデータバス224Mが接続される。セレクタ37
0の第1の入力は、セレクタ352の出力に接続され
る。第2の入力はデータバス216の下位nビットのデ
ータバス216Lに接続される。第3の入力には乗算器
MPY380の出力の下位nビットMPLが与えられ
る。第4の入力はセレクタ356の出力に接続される。
【0070】加算器384のキャリー出力と加算器38
2のキャリー入力との間にはキャリー出力スイッチ38
6が設けられている。キャリー出力スイッチ386は、
制御信号CCにより制御されて開閉する。
【0071】図4を参照して、メモリ書込バス群282
の4本のデータバス400、402、404、406
は、それぞれデータメモリ270、272、274、2
76に接続される。一方メモリ読出バス群280は8本
のメモリ読出バス290〜297を含む。データメモリ
270は、メモリ読出バス300および301によりメ
モリ読出バス290、291に接続される。データメモ
リ272は、メモリ読出バス302、303によりメモ
リ読出バス292、293に接続される。データメモリ
274はメモリ読出バス304、305によりメモリ読
出バス294、295に接続される。データメモリ27
6はメモリ読出バス306、307によりメモリ読出バ
ス296、297に接続される。メモリ読出バス290
〜297はそれぞれ分岐して、メモリ読出バス群31
0、312、314、316として図2に示されるプロ
セッシングユニット200、202、204、206に
接続されている。
【0072】図3に示される構成を有するプロセッシン
グユニットにより、以下の演算が可能となる。
【0073】(1) データメモリから読出されたデー
タ同士の間でのn×nビット乗算、n+nビット加算。
【0074】(2) データメモリから読出されたデー
タと、データバス224Mまたは216M上から与えら
れるデータとの間のn×nビット乗算、n+nビット加
算。
【0075】(3) データバス224Mと216M上
のデータの間でのn×nビット乗算、n+nビット加
算。
【0076】(4) 乗算器380の出力する乗算結果
の上位nビット(MPM)と、データバス224M上の
データとの間の加算、および乗算器MPYの出力の下位
nビット(MPL)とデータバス224Lの上のデータ
の間の加算。
【0077】(5) 乗算結果の上位nビット(MP
M)とデータメモリからのデータとの間の加算、乗算結
果の下位nビット(MPL)とデータメモリからのデー
タとの間の加算。
【0078】(6) 乗算結果の上位nビット(MP
M)と加算器382の加算結果との間の加算、乗算結果
の下位nビット(MPL)と加算器384の加算結果と
の間の加算(積和演算)。
【0079】(7) データバス224Mと224Lと
により表現される2nビット数とデータバス216Mと
216Lとにより表現される2nビット数との間の加
算。
【0080】図1〜図4に示される第1の実施例の並列
処理プロセッサにつき、制御方式を以下に説明する。こ
の第1の実施例の並列処理プロセッサでは、各プロセッ
シングユニットが独立に制御される。各プロセッシング
ユニットに対応して命令メモリ260、262、26
4、266(図2参照)が備えられている。
【0081】各プロセッシングユニットの命令は、デー
タメモリを制御するデータメモリ制御系命令と、プロセ
ッシングユニット内の演算器を制御する演算器制御系命
令の少なくとも2系統に分類される。データメモリ制御
系命令は、図2に示されるコントロール回路250、2
52、254、256から対応のデータメモリ290、
292、294、296にそれぞれ接続されたバスに出
力されるものである。演算器制御系命令は、各コントロ
ール回路250、252、254、256から、対応の
プロセッシングユニット200、202、204、20
6に向かうバスに出力される。
【0082】図5(a)は、データメモリ制御系命令4
30の形式を示す。データメモリ制御系命令430は、
OPフィールド432と、src0、src1フィール
ド434、436と、dstフィールド438とを含
む。
【0083】OPフィールド432は、アドレスモード
の指定を行なうためのものである。src0、src1
フィールドは、対応のデータメモリから読出すデータの
2つのアドレスを指定するためのものである。dstフ
ィールド438は、データメモリに書込むデータのアド
レスおよび演算器出力とメモリ書込バス400、40
2、404、406との間の接続を指定するためのもの
である。
【0084】図5(b)に、演算器制御系命令450の
形式を示す。演算器制御系命令450は、乗算器を制御
するためのMPYフィールドと、加算器ADD1、AD
D0を制御するためのADD1フィールド、ADD0フ
ィールドと、8本のメモリ読出バス290〜297から
4個のデータを選択するためのデータを格納するSEL
フィールドとを含む。
【0085】MPYフィールドは、OP0フィールド4
52と、src00フィールド454と、src01フ
ィールド456と、dst0フィールド458とを含
む。ADD1フィールドは、OP1フィールド460
と、src10フィールド462と、src11フィー
ルド464と、dst1フィールド466とを含む。A
DD0フィールドは、OP2フィールド468と、sr
c20フィールド470と、src21フィールド47
2と、dst2フィールド474とを含む。
【0086】OP0フィールド452と、OP1フィー
ルド460と、OP2フィールド468とは、それぞれ
対応の各演算器の演算内容を指定するためのものであ
る。src00フィールド454と、src01フィー
ルド456と、src10フィールド462と、src
11フィールド464と、src20フィールド470
と、src21フィールド472とは、各演算器の入力
に設けられたセレクタを制御するためのデータを格納す
る。dst0フィールド458と、dst1フィールド
466と、dst2フィールド474とは、各演算器と
データバスを接続するためのクロスバースイッチCBS
392(図3参照)を制御するためのデータを格納す
る。
【0087】SELフィールドは、SEL0フィールド
476と、SEL1フィールド478と、SEL2フィ
ールド480と、SEL3フィールド482とを含む。
各フィールドは、それぞれ8本のメモリ読出バスから1
個を選択するためのデータを格納する。したがってSE
Lフィールドにより4つのデータが選択される。
【0088】図5(b)に示されるフィールドのうち、
dst0フィールド458は、図示していないがさらに
2個のフィールドdst00フィールドとdst01フ
ィールドとに分割され、それぞれ乗算器MPYの2つの
出力MPMおよびMPLの出力先を指定するためのデー
タを格納する。
【0089】図5(b)に示されるフィールド454、
456、458(上述の2つのフィールドdst00、
dst01)と、フィールド462、464、466、
470、472、474とに格納されるデータの値と、
各値に対応する各セレクタの選択動作とを、以下の第1
表〜第10表に示す。
【0090】
【表1】
【0091】
【表2】
【0092】
【表3】
【0093】
【表4】 図5(a)に示されるdstフィールド438は、さら
に3つのフィールドPU選択フィールド440と、SE
LW制御フィールド442と、書込アドレス指定フィー
ルド444とに分割される。これらフィールドのうちフ
ィールド440、442はいずれも2ビット長である。
これらのフィールド440、442に格納されるデータ
の値と、各値により選択されるプロセッシングユニット
と、SELWにより選択される各演算器の出力との一覧
を次の第11表および第12表にそれぞれ示す。
【0094】
【表5】 図2に示されるコントロール回路250、252、25
4、256は、図5、図6に示される命令に従って、第
1表〜第12表に示されるように各セレクタなどを制御
する。
【0095】図6に、図2に示される命令メモリ26
0、262、264、266への命令の格納方式を示
す。図6において「MCNT」で示されるのはデータメ
モリ制御系命令であり、「PCNT」で示されるのは演
算器制御系命令である。命令メモリ260は、基本的に
は命令490および492に示されるように、上述のデ
ータメモリ制御系命令と演算器制御系命令とを組にして
格納する。図6において命令メモリ216の左側に示す
数字(100、101、102、103)は命令メモリ
260のアドレスを示す。図6に示される例では100
番地にMCNT命令490が、101番地にPCNT命
令492がそれぞれ格納されている。プログラムカウン
タアドレスが「100」を指している場合には、次の命
令として100番地のCNT命令490が読出されるこ
とを示す。
【0096】前述のように基本的には命令はデータメモ
リ制御系命令MCNTと演算器制御系命令PCNTとを
組として取扱っている。しかし、大量のデータに同一の
演算を繰り返す場合、各演算器への入力条件および演算
内容は最初に一度だけ設定すればよく、データの位置を
示すデータメモリのアドレスのみを順次変更していくこ
とで処理できる。そのような場合には、図6のアドレス
102、103以下で示されるように、MCNT命令4
94、496を連続して命令メモリ260に格納してお
く。各演算器は次の演算器制御系命令PCNTを受取る
までは、前回に設定された演算器制御系命令に基づいて
同じ演算内容を繰り返し実行する。
【0097】以下、この第1の実施例の並列処理プロセ
ッサの動作につき、具体例を用いて順次説明する。以下
の例において、各プロセッシングユニット内のセレク
タ、クロスバースイッチは、第1表〜第12表に従い、
それぞれの図に示されるような接続を与えるように設定
された命令で、予め所望の接続を与えるように切換えら
れているものとする。
【0098】図7は、各プロセッシングユニット20
0、202、204、206が、それぞれ独立にnビッ
ト精度の演算を行なう例を示す。この場合には、プロセ
ッシングユニット間を接続するデータバスは使用しな
い。各プロセッシングユニットPU00〜PU10(2
40、242、244、246)において、「×」は乗
算器を、「+」は加算器をそれぞれ示す。
【0099】プロセッシングユニット200において
は、乗算器への2つの入力はともにデータメモリからの
データである。乗算器はn×nビット構成であり、その
出力は2nビットである。この例の場合には、乗算器の
出力のうちの上位nビットまたは2nビットに丸め演算
を行なった後の上位nビットをデータメモリに出力する
ように図3に示されるセレクタSELW390が設定さ
れるものとする。丸め演算には専用のハードウェアが必
要であるが、本願発明とは直接の関連がないため、その
図示および説明はここでは行なわない。
【0100】プロセッシングユニット202、204に
おいては、それぞれの加算器の一方の2つの入力に、と
もにデータメモリからのデータが与えられる。すなわ
ち、各加算器の入力部分のセレクタが、データメモリか
らのデータを選択するように設定されている。プロセッ
シングユニット206では、積和演算が行なわれてい
る。すなわち、乗算器の2つの入力に、データメモリか
らの2つのデータが与えられる。乗算器の出力の上位n
ビットが加算器の一方の入力に与えられ、加算器の出力
がその加算器自身の他方の入力に与えられている。
【0101】図7に示される接続例では、各プロセッシ
ングユニットからの出力は、メモリ書込バス400、4
02、404、406(図3参照)を介してデータメモ
リに書込まれる。これは以下に示す他の接続例でも同様
であり、所望の演算結果が得られる乗算器または加算器
の出力が、メモリ書込バス400、402、404、4
06のうちの所望のものに書込まれるように、各プロセ
ッシングユニットのセレクタSELW390が制御され
るものとする。
【0102】図8は、倍精度2nビットの乗算を行なう
場合の、この実施例の並列処理プロセッサのデータバス
の接続関係を示す。乗算対象のデータをそれぞれa、b
とする。データaの上位nビットと下位nビットとをそ
れぞれa1、a0と表わす。データbの上位nビットと
下位nビットとをそれぞれb1、b0として表わす。す
ると乗算「a×b」は次のように書ける。
【0103】(a0+a1)×(b0+b1) =a0×b0 +a0×b1 +a1×b0 +a1×b1 すなわち、2nビット数同士の乗算a×bは、4個のn
ビット数同士の乗算a0×b0、a0×b1、a1×b
0、a1×b1を足し合せたものに分解できる。図8に
示される接続例は、2nビットの2つの数a、bを上位
nビット、下位nビットに分解して上述の計算を行なう
ためのものである。
【0104】以下、各プロセッシングユニットごとにそ
の接続関係について説明する。なお、各プロセッシング
ユニット内の加算器のうち左側がADD1、右側がAD
D0である。
【0105】プロセッシングユニット200では、乗算
器の2つの入力にはデータメモリからの2つのデータが
与えられるように各セレクタが設定される。乗算器の出
力の2nビットのうち上位nビットが、データバス21
0Lを介してプロセッシングユニット202の加算器A
DD0の一方の入力に接続される。プロセッシングユニ
ット200の加算器ADD1の一方入力には、この加算
器ADD1自身の出力が接続される。他方の入力には、
データバス216Mを介して、プロセッシングユニット
206の加算器ADD1の出力が接続される。プロセッ
シングユニット200の加算器ADD0の一方の入力に
は、自分自身の出力が接続される。他方の入力には、デ
ータバス216Lを介して、プロセッシングユニット2
06の加算器ADD0の出力が接続される。加算器AD
D0からのキャリーCは加算器ADD1のキャリー入力
に与えられる。
【0106】プロセッシングユニット202において
は、乗算器の2つの入力に、それぞれデータメモリから
の2つのデータが与えられるようにセレクタが設定され
る。乗算器の2nビット出力のうち上位nビットはプロ
セッシングユニット202の加算器ADD1の入力の一
方に与えられる。加算器ADD1の他方の入力には定数
「0」が与えられる。プロセッシングユニット202の
乗算器ADD1の出力は、データバス212Mを介して
プロセッシングユニット204の加算器ADD1の入力
の一方に接続される。プロセッシングユニット202の
加算器ADD0の入力の一方には、プロセッシングユニ
ット202の乗算器の下位nビットが与えられる。他方
の入力には、前述のとおり、プロセッシングユニット2
00の乗算器の出力の上位nビットが与えられる。プロ
セッシングユニット202においても、加算器ADD0
のキャリーCは加算器ADD1に与えられる。
【0107】プロセッシングユニット204において
は、乗算器の2つの入力にはデータメモリからの2つの
データが与えられる。乗算器の2nビットの出力のうち
上位nビットは加算器ADD1の入力の一方に接続さ
れ、下位nビットは加算器ADD0の一方の入力に接続
される。加算器ADD1の他方の入力は、データバス2
12Mを介してプロセッシングユニット202の加算器
ADD1の出力に接続される。加算器ADD0の他方の
入力は、データバス212Lを介してプロセッシングユ
ニット202の加算器ADD0の出力に接続される。加
算器ADD0のキャリー出力Cは加算器ADD1に与え
られる。加算器ADD1の出力は、データバス214L
を介してプロセッシングユニット206の加算器ADD
0の一方の入力に接続される。
【0108】プロセッシングユニット206において
は、乗算器の2つの入力に、データメモリからの2つの
データが与えられるようにセレクタが設定される。乗算
器の出力のうち上位nビットは加算器ADD1の一方の
入力に与えられる。下位nビットは加算器ADD0の一
方入力に接続される。加算器ADD1の他方の入力には
定数0が与えられる。加算器ADD0の他方の入力に
は、前述のようにデータバス214Lを介してプロセッ
シングユニット204の加算器ADD1の出力が接続さ
れる。加算器ADD0の出力はデータバス216Lを介
してプロセッシングユニット200の加算器ADD0の
一方の入力に接続される。加算器ADD1の出力はデー
タバス216Mを介してプロセッシングユニット200
の加算器ADD1の一方の入力に接続される。加算器A
DD0のキャリー出力が、加算器ADD1のキャリー入
力に与えられる。
【0109】図8に示される接続において、演算は最下
位のビット列の乗算から開始される。プロセッシングユ
ニット200の乗算器には、データメモリから上述のa
0 およびb0 をそれぞれ与える。プロセッシングユニッ
ト202の乗算器には、データメモリを介して上述のa
1 およびb0 をそれぞれ与える。プロセッシングユニッ
ト204の乗算器には、データメモリからa0 およびb
1 をそれぞれ与える。プロセッシングユニット206の
乗算器には、データメモリからa1 およびb1をそれぞ
れ与える。
【0110】プロセッシングユニット200における乗
算結果の上位nビットが、データバス210Lを介して
プロセッシングユニット202の加算器ADD0に送ら
れる。データバス210Lは、データバス210の下位
nビットである。乗算結果の上位nビットをデータバス
の下位nビットに出力するということは、実質的にデー
タをnビット下位にシフトしたことと同等である。
【0111】プロセッシングユニット202の2つの加
算器ADD0、ADD1では、乗算器の乗算結果a1 ×
0 と、nビット下位にシフトされたa0 ×b0 との間
の2nビットの加算処理が行なわれることになる。加算
結果の上位nビットはデータバス212Mを介してプロ
セッシングユニット204に、下位nビットはデータバ
ス212Lを介してプロセッシングユニット204にそ
れぞれ与えられる。すなわちこの場合、データのシフト
は行なわれない。
【0112】プロセッシングユニット204の乗算器の
入力部分のセレクタは、データメモリからのデータa0
およびb1 を乗算器の入力に与えるように接続が設定さ
れる。乗算器の出力のうち上位nビットは加算器ADD
1に、下位nビットは加算器ADD0にそれぞれ与えら
れる。プロセッシングユニット204の2つの加算器の
間ではキャリーの入出力が行なわれるため、加算器AD
D0と加算器ADD1とは、プロセッシングユニット2
02の出力する2nビットのデータに対してa 0 ×b1
を加算する2nビット加算処理を行なう。加算処理の上
位nビットのみがデータバス214Lを介してプロセッ
シングユニット206に与えられる。
【0113】プロセッシングユニット206の乗算器の
入力部分に設けられたセレクタは、データメモリからの
データa1 およびb1 を乗算器の2つの入力にそれぞれ
与えるように接続が設定される。乗算器の出力の上位n
ビットは加算器ADD1に与えられる。下位nビットは
加算器ADD0に与えられる。プロセッシングユニット
204で行なわれた加算結果の上位nビットがデータバ
ス214の下位nビットであるデータバス214Lを介
して実質的にnビット下方にシフトされてプロセッシン
グユニット206の加算器ADD0に与えられる。した
がってプロセッシングユニット206では、nビット下
位にシフトされたプロセッシングユニット206の出力
にさらにa1 ×b1 を加算する2nビットの加算処理が
行なわれる。
【0114】以上のようにして、2nビット同士の数a
×bの乗算結果が、各クロックごとにプロセッシングユ
ニット206の加算器出力に得られる。
【0115】さらに積和演算をする場合には、図8に示
されるようにプロセッシングユニット206の加算器A
DD0およびADD1の出力は、それぞれデータバス2
16Lおよび216Mを介してプロセッシングユニット
200の加算器ADD0およびADD1にそれぞれ与え
られる。
【0116】この図8に示される接続例では、2nビッ
ト精度乗算を行なうのに、すべての乗算器とプロセッシ
ングユニット202、204、206に含まれる加算器
とが必要である。このとき同時に、プロセッシングユニ
ット200の加算器による2nビット精度演算も実行で
きる。したがってこの接続例ではこのプロセッサは2n
ビット精度の1回の乗算と2nビット精度の1回の加算
とを同時に実行可能である。図9に、この実施例のプロ
セッサにおいて、FTT(高速フーリエ変換)に用いら
れるバタフライ演算を行なう場合の接続例を示す。演算
はnビット精度とする。バタフライ演算では、3つの複
素数a、b、cの間に、c+a×bとc−a×bで表わ
される演算を行なう。ar、br、crをそれぞれa、
b、cの実数部、ai、bi、ciを同じくa、b、c
の虚数部、jを虚数単位とすると、a、b、cはそれぞ
れ次のように表わされる。
【0117】a=ar+j・ai b=br+j・bi c=cr+j・ci c+a×bとc−a×bとは、実数部および虚数部を合
せて以下の4個の式により計算できる。
【0118】 cr+(ar×br−ai×bi) …(1) ci+(ar×bi+ai×br) …(2) cr−(ar×br−ai×bi) …(3) ci−(ar×bi+ai×br) …(4) この式(1)〜(4)を求めるためには、見かけ上4回
の演算を行なう必要があるが、これらには共通項が存在
するので、実際に必要な演算は乗算4回と加算(減算)
6回とである。このバタフライ演算を行なう接続は図9
に示されるとおりである。
【0119】図9を参照して、プロセッシングユニット
200においては、乗算器の2つの入力にはデータメモ
リからの2つのデータがそれぞれ与えられる。プロセッ
シングユニット200の加算器ADD1の一方の入力に
は乗算器の出力の上位nビットが、他方の入力にはデー
タバス224Mがそれぞれ接続される。加算器ADD1
の出力はデータバス220Mに接続される。
【0120】プロセッシングユニット202の乗算器の
2つの入力には、データメモリからの2つのデータが与
えられる。プロセッシングユニット202の加算器AD
D1の入力の一方には乗算器の出力の上位nビットが、
他方の入力にはデータバス226Mがそれぞれ接続され
る。加算器ADD1の出力はデータバス222Mに接続
される。
【0121】プロセッシングユニット204の乗算器の
2つの入力には、データメモリからの2つのデータがそ
れぞれ与えられる。乗算器の出力の上位nビットはデー
タバス224Mを介してプロセッシングユニット200
に接続される。プロセッシングユニット204の加算器
ADD1の一方の入力は、データバス220Mを介して
プロセッシングユニット200に接続される。加算器A
DD1の他方の入力には、データメモリからのデータが
与えられる。加算器ADD0の入力も、加算器ADD1
の入力と共通に接続される。
【0122】プロセッシングユニット206の乗算器の
2つの入力には、データメモリからの2つのデータがそ
れぞれ与えられる。乗算器の出力の上位nビットはデー
タバス226Mを介してプロセッシングユニット202
に接続される。プロセッシングユニット206の2つの
加算器ADD0、ADD1のそれぞれの一方の入力はデ
ータバス222Mを介してプロセッシングユニット20
2に共通に接続される。それぞれの他方の入力には、デ
ータメモリからのデータが共通に与えられる。
【0123】プロセッシングユニット204および20
6の各々において、2個の加算器ADD0およびADD
1の一方においては加算処理が、他方においては減算処
理がそれぞれ行なわれる。
【0124】図9に示されるように接続されたプロセッ
サに、次のようにデータを与えることにより、プロセッ
シングユニット204および206の加算器の出力とし
て、それぞれcr+(ar・br−ai・bi)および
cr−(ar・br−ai・bi)と、ci+(ar・
bi+ai・br)およびci−(ar・bi+ai・
br)が得られる。
【0125】プロセッシングユニット200の乗算器の
2つの入力には、データメモリからそれぞれar、br
を与える。プロセッシングユニット202の乗算器の2
つの入力には、データメモリからそれぞれar、biを
与える。プロセッシングユニット204の乗算器の2つ
の入力には、データメモリからそれぞれai、biを与
える。プロセッシングユニット204の2つの加算器A
DD0、ADD1の入力の一方には、データメモリから
crを与える。プロセッシングユニット206の乗算器
の2つの入力には、データメモリからそれぞれデータa
i、brを与える。プロセッシングユニット206の加
算器ADD0およびADD1の入力の一方には、データ
メモリからciを与える。
【0126】プロセッシングユニット204の乗算器か
らプロセッシングユニット200へは、データバス22
4Mを介してai・biが与えられる。プロセッシング
ユニット200の加算器からプロセッシングユニット2
04へは、データバス220Mを介してar・br−a
i・biが与えられる。プロセッシングユニット204
の2つの加算器では、crとar・br−ai・biの
加算および減算がそれぞれ行なわれる。したがって前述
のとおり、加算器2つの出力にはそれぞれ、上述の式
(1)および(3)が得られる。
【0127】プロセッシングユニット206の乗算器か
らは、データバス226Mを介してai・brがプロセ
ッシングユニット202に与えられる。プロセッシング
ユニット202の加算器ADD1は、ar・bi+ai
・brを出力する。この出力はデータバス222Mを介
してプロセッシングユニット206の2つの加算器に与
えられる。プロセッシングユニット206の2つの加算
器の一方ではciとar・bi+ai・brとの間の加
算が、他方では減算が行なわれる。したがってプロセッ
シングユニット206の2つの加算器の出力として、上
述の式(2)および(4)が得られる。
【0128】なお、この例においても、プロセッシング
ユニット206、204の乗算器の出力する2nビット
データは、加算器に入力される前に適当な丸め演算によ
りnビットに丸められるものとする。
【0129】図10に、nビット精度の積和演算を行な
う場合の、このプロセッサ内のプロセッシングユニット
間のデータバス接続を示す。ai・biをiを変化させ
ながら加算する演算は、このプロセッサがプロセッシン
グユニットを4個含むために、4項単位で行なうことが
できる。まず、図10に示されるプロセッサの接続例を
説明する。
【0130】プロセッシングユニット200の乗算器の
2つの入力には、データメモリからの2つのデータが与
えられる。プロセッシングユニット200の乗算器の出
力の上位nビットは加算器ADD1の一方に入力に与え
られる。加算器ADD1のうちの他方の入力はデータバ
ス224Mに接続される。加算器ADD1の出力は、デ
ータバス220Mを介してプロセッシングユニット20
4に接続される。
【0131】プロセッシングユニット202の乗算器の
2つの入力には、データメモリからの2つのデータがそ
れぞれ与えられる。乗算器の出力は加算器ADD1の入
力の一方に接続される。加算器ADD1の他方の入力に
は、データバス226Mが接続される。加算器ADD1
の出力は、データバス212Mを介してプロセッシング
ユニット204に接続される。
【0132】プロセッシングユニット204の乗算器の
2つの入力には、データメモリからの2つのデータが与
えられる。乗算器の出力の上位nビットは、データバス
224Mを介してプロセッシングユニット200の加算
器ADD1の一方の入力に接続される。プロセッシング
ユニット204の加算器ADD1の一方の入力はデータ
バス212Mに、他方の入力はデータバス220Mにそ
れぞれ接続される。加算器ADD1の出力はデータバス
214Mを介してプロセッシングユニット206に接続
される。
【0133】プロセッシングユニット206の乗算器の
2つの入力には、データメモリからの2つのデータが入
力される。乗算器の出力の上位nビットはデータバス2
26Mを介してプロセッシングユニット202の加算器
ADD1の入力の一方に接続される。プロセッシングユ
ニット206の加算器ADD1の一方入力はデータバス
214Mを介してプロセッシングユニット204に接続
される。他方の入力は、加算器ADD1自身の出力に接
続される。
【0134】図10に示されるように接続されたプロセ
ッサでは、次のようにしてnビット精度の積和演算が行
なわれる。
【0135】プロセッシングユニット200、202、
204、206に、それぞれデータメモリから(a0
0 )、(a1 ,b1 )、(a2 ,b2 )、(a3 ,b
3 )を与える。プロセッシングユニット200、20
2、204、206の乗算器の出力としてa0 0 、a
1 1 、a2 2 、a3 3 がそれぞれ得られる。
【0136】プロセッシングユニット200の出力とし
てa0 0 +a2 2 が、プロセッシングユニット20
2の出力としてa1 1 +a3 3 がそれぞれ得られ
る。これらはプロセッシングユニット204の加算器A
DD1で加算され、a0 0 +a1 1 +a2 2 +a
3 3 が得られる。この例においても、各乗算器出力の
2nビットは、加算器に入力される前に適当な丸め演算
によりnビットに丸められるものとする。
【0137】図11は、この実施例のプロセッサにおい
てnビット精度の積和演算を別の方法により行なう場合
の接続例を示す。図10に示されるデータバス接続で
は、4項ごとの積和を得ていた。これに対し図11に示
される接続では、ai+1 、bi+ 1 は、ai 、bi よりも
1クロックずつ遅れて入力されるようにされている。そ
の結果、各プロセッシングユニットの出力としては、1
項ずつ加算した結果が得られる。最終結果は4項の積和
ごとにプロセッシングユニット200の加算器出力に得
られるようになっている。
【0138】図11に示される接続は次のようになって
いる。プロセッシングユニット200においては、乗算
器の2つの入力には、データメモリからの2つのデータ
(a0 、b0 )が与えられる。乗算器出力の上位nビッ
トはプロセッシングユニット202の加算器ADD1の
一方の入力に接続されている。プロセッシングユニット
200の加算器ADD1の一方入力は、データバス21
6Mに接続されている。他方の入力は、加算器ADD1
自身の出力に接続されている。
【0139】プロセッシングユニット202において、
乗算器の2つの入力には、データメモリからの2つのデ
ータ(a1 、b1 )が与えられる。乗算器出力の上位n
ビットはプロセッシングユニット202の加算器ADD
1の残りの入力に接続されている。この加算器ADD1
の他方の入力は、前述のようにプロセッシングユニット
200の乗算器の出力の上位nビットに接続されてい
る。加算器ADD1の出力は、データバス212Mに接
続されている。
【0140】プロセッシングユニット204において、
乗算器の2つの入力には、データメモリからの2つのデ
ータ(a2 、b2 )が与えられる。乗算器の出力の上位
nビットは、プロセッシングユニット204の加算器A
DD1の一方の入力に接続される。加算器ADD1の他
方の入力は、データバス212Mを介してプロセッシン
グユニット202の加算器ADD1の出力に接続されて
いる。プロセッシングユニット204の加算器ADD1
の出力は、データバス214Mに接続されている。
【0141】プロセッシングユニット206において、
乗算器の2つの入力には、データメモリからの2つのデ
ータ(a3 、b3 )が与えられる。乗算器出力の上位n
ビットはプロセッシングユニット206の加算器ADD
1の一方の入力に接続されている。加算器ADD1の他
方の入力は、データバス214Mを介してプロセッシン
グユニット204に接続されている。プロセッシングユ
ニット206の加算器ADD1の出力は、データバス2
16Mを介してプロセッシングユニット200の加算器
ADD1の一方の入力に接続されている。
【0142】図11に示されるように接続されたプロセ
ッサでは、次のようにして積和演算が行なわれる。ま
ず、プロセッシングユニット200の乗算器の出力とし
てa00 が得られる。次にプロセッシングユニット2
02の加算器の出力として、a 0 0 +a1 1 が得ら
れる。次にプロセッシングユニット204の加算器の出
力として、a0 0 +a1 1 +a2 2 が得られる。
またプロセッシングユニット206の出力として、a0
0 +a1 1 +a2 2 +a3 3 が得られる。
【0143】この例においても、各プロセッシングユニ
ット内の乗算器出力の2nビットは、加算器に入力され
る前に適当な丸め演算によりnビットに丸められるもの
とする。
【0144】以上のようにこの第1の実施例に係るプロ
セッサでは、各プロセッシングユニット内のセレクタを
適切に切換えることにより、幅広い種類の演算を行なう
ことができる。各プロセッシングユニットの構造は全く
同一であるため、プロセッサ内のレイアウトや、接続関
係が簡明である。また各プロセッシングユニットの構造
が同一であるために、これらプロセッシングユニットを
制御するための制御命令に互換性があり、プロセッサの
制御が容易になる。また各プロセッシングユニット間で
の2nビット幅のデータバスを用い、乗算結果の上位n
ビットを次の演算の下位nビットのデータとして他のプ
ロセッシングユニットに与えることができる。データシ
フトのための手段を用いずに実質的にデータをnビット
シフトすることができ、簡略な回路でより多彩な演算を
行なうことができる。シフト処理が不要なため処理も高
速化される。
【0145】[第2の実施例]図12に示されるのは、
本発明の第2の実施例のプロセッサに用いられるプロセ
ッシングユニットの1つ(PU00)である。このプロ
セッシングユニット520が図3に示される第1の実施
例のプロセッシングユニット200と異なるのは、セレ
クタ350からアドレスを受取り、セレクタ360の入
力に該アドレスのデータを出力するためのROM(読出
専用メモリ)530を新たに含むことである。その他の
点では、このプロセッシングユニット520は図3に示
されるプロセッシングユニット200と全く同一の構成
である。したがってその他の部分についての詳しい説明
はここでは繰り返さない。
【0146】プロセッサがこのような4個のプロセッシ
ングユニットを含むものと仮定すると、他の3つのプロ
セッシングユニット(PU01、PU10、PU11)
も、このプロセッシングユニット520と全く同一の構
成である。
【0147】図12に示される第2の実施例のプロセッ
サのプロセッシングユニット520では、図3に示され
る第1の実施例のプロセッシングユニット200の動作
に加え、次のような演算処理を行なうことが可能とな
る。データメモリからROM530のアドレスをこのプ
ロセッシングユニット520に入力するものとする。セ
レクタ350によりそのアドレス信号を選択してROM
530に与える。ROM530は、指定されたアドレス
に格納されたデータをセレクタ360に与える。セレク
タ360がこのデータをセレクトし乗算器380の一方
の入力に与える。
【0148】ROM530に格納するデータとしては、
たとえばニュートン・ラプソン(Newton-Raphson)法に
よる除算あるいは開平演算に用いられるデータが考えら
れる。たとえばニュートン・ラプソン法による除算にお
いては、まず除数の逆数を乗算および加算による漸化式
より求め、最後にその逆数に被除数を掛けることにより
解を求める。この場合周知のように、漸化式により逆数
を求める際の最初の近似値が十分近い値でなければ、漸
化式の収束性は悪くなる。この近似値を予めROMに格
納しておき、最初の近似値として演算に用いることで、
漸化式の収束性が大きく向上し、上述した演算が効率よ
く行なえる。
【0149】[第3の実施例]本発明に係るプロセッサ
の第3の実施例の要部を図13に示す。この第3の実施
例のプロセッサは、第1の実施例とは異なる方法により
命令を実行する。そのためにこの第3の実施例では、命
令メモリとして第1の実施例に示される命令メモリ26
0など(図2参照)に代え、図13および図14に示さ
れる命令メモリ542を用いる。図13および図14に
おいては、プロセッシングユニット200を制御するた
めの命令メモリ542のみを示したが、他のプロセッシ
ングユニットを制御するための命令メモリもこの命令メ
モリ542と全く同一の構成である。
【0150】図13を参照して、このプロセッサのプロ
セッシングユニット200は、コントロール回路540
により直接制御される。コントロール回路540は、命
令メモリ542から与えられる演算器制御系命令に従い
プロセッシングユニット200を制御する。命令メモリ
542はまた、データメモリ270にも接続されてお
り、データメモリ制御系命令をコントロール回路540
を介さずに直接データメモリ270に与えるためのもの
である。
【0151】図14を参照して、命令メモリ542は、
複数の命令を格納するためのメモリ550と、メモリ5
50から読出される2つの命令を格納するための命令レ
ジスタ552と、命令レジスタ552に接続された2つ
の入力を有する排他的OR(EXOR)回路556と、
EXOR回路556の出力により制御され、命令レジス
タ552に格納された2つの命令のうちの2番めのもの
をコントロール回路540(図13参照)に出力するか
否かを選択するためのスイッチ554と、EXOR回路
556の出力に接続され、メモリ550から次の読出す
べき命令のアドレスを所定の論理に従って算出するため
のアドレス演算論理558と、アドレス演算論理558
の演算結果に従って、メモリ550内の連続する2つの
読出アドレスを指定するためのプログラムカウンタ(P
C)560とを含む。
【0152】図14においてメモリ550の左側に示さ
れる数字(100、101、102、103)は、各命
令が格納されているアドレスを示す。メモリ550に格
納された各命令572の先頭(第1ビット)570は、
その命令がデータメモリ制御系命令であるか、演算器制
御系命令であるかを示すフラグとなっている。図14に
示される例の場合には第1ビット570が「0」であれ
ばメモリ制御系命令であり、「1」であれば演算器制御
系命令であるものとする。
【0153】同様に命令レジスタ552も、命令582
を格納する領域と、第1ビット580を格納する領域と
を有している。命令レジスタ552は、こうした命令を
格納する領域を2ヵ所有し、それぞれの第1ビットがE
XOR回路556の2つの入力に接続されている。
【0154】図14に示される第3の実施例の命令メモ
リ542は、第1の実施例に示されるプロセッサの制御
をより改善させるためのものである。第1の実施例のプ
ロセッサでは、命令は命令メモリから1個ずつ取出さ
れ、それがデータメモリ制御命令か演算器制御系命令か
が識別された後、その識別結果にしたがってデータメモ
リまたは各プロセッシングユニットの演算器の制御が行
なわれていた。しかし、データメモリおよび演算器は相
互に独立に動作(制御)することができる。したがっ
て、データメモリ制御系命令と演算器制御系命令とが続
いて命令メモリに格納されている場合には、この2つの
命令を同時に実行した方が、順に実行するよりも効率が
よい。この第3の実施例はこの点においてプロセッサの
制御方法を改良したものである。
【0155】図14を参照して、プログラムカウンタ5
60のポインタ1(PC+A)が100番地を、ポイン
タ2(PC+A+1)が101番地をそれぞれ指定して
いるものとする。100番地と101番地の命令は命令
レジスタ(IReg)552に同時に読込まれる。命令
レジスタ552に格納された2つの命令の第1ビット5
80は、EXOR回路556の2つの入力にそれぞれ与
えられる。EXOR回路556の出力は、命令レジスタ
552に格納された命令の2つの第1ビット580がと
もに「1」またはともに「0」であるときには「0」と
なり、そうでない場合には「1」となる。命令の先頭ビ
ットを、データメモリ制御系命令では「0」に、演算器
制御系命令では「1」にしておけば、このEXOR回路
の出力により、2つの命令が同一系統かどうかを判断で
きる。
【0156】EXOR回路の出力が「1」であればスイ
ッチ554は閉じられる。この場合には第2の命令(図
14に示される例の場合にはPCNT命令)がコントロ
ール回路540(図13参照)に送られる。また、EX
OR回路556の出力が0のときにはスイッチ554は
開き、第2の命令はコントロール回路540に送られな
い。一方、第1の命令は常にデータメモリに送られる。
【0157】EXOR回路556の出力が「1」の場
合、アドレス演算論理558では、プログラムカウンタ
560のAに2を、「0」であればAに1をそれぞれ代
入し、プログラムカウンタ560に与える。すなわち、
異なる系統の命令が読出された場合には、プログラムカ
ウンタ560のポインタ1(PC+A)は、メモリ55
0の102番地を次に指定する。ポインタ2(PC+A
+1)は103番地を指定する。したがって101番地
の命令が改めて読出されることはない。
【0158】同一系統の命令が読出された場合には、ポ
インタ1(PC+A)は101番地を、ポインタ2(P
C+A+1)は102番地を指定する。この場合には1
01番地および102番地の命令が同時に読出されて命
令レジスタ552に格納され、上述した判断と判断結果
に伴う命令の転送とアドレス演算とが行なわれる。
【0159】この第3の実施例では、命令は常に2個ず
つ読出され、同一系統の命令であれば2番目の命令は実
行されず、単にプログラムカウンタを1増加させてその
2番目の命令を含む2つの命令を次に読出す。異なる系
統の命令を読出した場合には一度に2つの命令を実行し
て、プログラムカウンタを2増加させ、読出された2番
目の命令の次の2つの命令を次に読出すことになる。デ
ータメモリ制御系命令と演算器制御系命令とが連続して
格納されている場合、これらを同時に実行することがで
き、プロセッサの動作効率が向上する。また前述のよう
に各演算器は、直前に入力された演算器制御系命令に従
って動作するので、データメモリの制御命令を繰り返し
与えることにより、異なるデータに対する同一の演算を
効率よく実行することができる。
【0160】[第4の実施例]この発明の第4の実施例
に係るプロセッサを図15に示す。図15に示すプロセ
ッサは、8個のプロセッシングユニット600、60
2、604、606、608、610、612、614
と、8つのデータメモリ620、622、624、62
6、628、630、632、634とを含む。各プロ
セッシングユニットに付けられた数値は、2進数で表わ
されたそのプロセッシングユニットのアドレスを示す。
データメモリ(DM)に付けられた数値も同様にそのア
ドレスを示す。
【0161】このプロセッサはさらに、データバス群6
90、692、694、696、698、700、70
2、704、706により各データメモリ620、62
2、624、626、628、630、632、634
に接続されたメモリ書込バス群680と、データメモリ
620、622、624、626に接続され、かつデー
タバス群710、712、714、716によりそれぞ
れプロセッシングユニット600、602、604、6
06に接続されたメモリ読出バス群682と、データメ
モリ628、630、632、634に接続され、かつ
データバス群718、720、722、724によりそ
れぞれプロセッシングユニット608、610、61
2、614に接続されたメモリ読出バス群684とを含
む。
【0162】さらにこのプロセッサでは、第1の実施例
におけると同様に、アドレスが1ずつ異なるプロセッシ
ングユニットを順次円環状に単方向に接続するためのデ
ータバス640、642、644、646、648、6
50、652、654と、アドレスが2だけ異なるプロ
セッシングユニットを双方向に接続するためのデータバ
ス群660、662、664、666、668、67
0、672、674とを含む。データバス群660、6
62、664、666、668、670、672、67
4は、それぞれ逆方向を向いた1対のデータバスを含ん
でいる。
【0163】図15に示される構成では、各プロセッシ
ングユニットにおいて、他のプロセッシングユニットと
の間のデータバスとしては、3組の入力と3組の出力と
がある。これは各プロセッシングユニット共通である。
またプロセッシングユニットとデータメモリとはそれぞ
れ4個ずつの2つのグループに分類されている。第1の
グループはプロセッシングユニット600、602、6
04、606とデータメモリ620、622、624、
626とを含み、第2のグループはプロセッシングユニ
ット608、610、612、614と、データメモリ
628、630、632、634とを含む。各グループ
のデータメモリとプロセッシングユニットとはそれぞれ
メモリ読出バス群682、684により接続されてい
る。また各プロセッシングユニットとメモリ書込バス6
80とは、図示されていないメモリ書込バス群により接
続され、各プロセッシングユニットから任意のデータメ
モリに対してデータを書込むことができる。このように
することにより、グループ間の通信をデータメモリを介
して行なうことができる。
【0164】図15に示されるようにデータメモリをグ
ループ化するのは、データメモリの読出バスをできるだ
け短くするためである。データメモリの読出バスは長く
なるとスピードが遅くなる。したがって、この実施例の
ようにプロセッシングユニット4個単位でグループ化し
てその長さを短くした方が動作速度上有利な場合が多
い。また実際の応用における演算では、倍精度演算、バ
タフライ演算など、プロセッシングユニットを4項単位
で使用する演算要求が多い。したがって図15に示され
るようにプロセッシングユニットとデータメモリとを4
項単位でグループ化することにより、実際的で、かつ幅
広い種類の演算に対応できるプロセッサを得ることがで
きる。
【0165】図15に示されるプロセッサでは、それぞ
れのグループにおいて倍精度の1乗算と1加算、バタフ
ライ演算、4項ごとの積和演算がそれぞれ可能である。
各プロセッシングユニットで用いる入力データはそのグ
ループ内にあるので、グループ内でデータを共有でき
る。したがって図15に示される構成と異なり、データ
メモリからのデータ読出バスをそのグループ内で閉じる
ようにしてもよい。
【0166】図15に示されるプロセッサでは、各プロ
セッシングユニットの構造は相互に全く同一である。し
たがって、各プロセッシングユニットを制御する制御命
令には互換性がある。またプロセッサを作製する上で、
プロセッシングユニットやデータメモリのレイアウトが
単純でよいという利点がある。また、第1の実施例と同
様に、各プロセッシングユニット内のセレクタを、所望
の演算を実現できるように切換えることにより、複数の
プロセッシングユニットを用いた複雑な演算を、従来の
ものよりもより多種類実行することができる。
【0167】もちろん、いずれのプロセッシングユニッ
トも任意のデータメモリからデータを読出せるようにデ
ータメモリ読出バス群とプロセッシングユニットとを接
続することも考えられる。たとえば8項ごとの積和演算
は、図15に示されるようにグループ化せず8つのプロ
セッシングユニットを1つのグループとして構成した方
が効率はよい。しかしその場合には、データメモリから
の読出速度が低下するおそれがある。また、4項ごとの
演算を行なうような場合には、図15に示されるように
グループ化した方が好ましい。
【0168】
【発明の効果】以上のように請求項1に記載の並列処理
のためのプロセッシングユニットは制御手段の制御によ
り種々の演算が可能なため、汎用的でありかつ制御手段
の制御は比較的単純でよい。プロセッシングユニットに
接続される入出力データバスの数がすべてのプロセッシ
ングユニットで同一であり、また各プロセッシングユニ
ットの構造が同一であるために、これらを複数個組合わ
せて並列処理プロセッサを作製するときのプロセッシン
グユニット相互の接続が容易であり、それらの制御に互
換性を持たせることができる。
【0169】その結果、より幅広い種類の演算を簡単に
制御で実現できる、並列処理のためのプロセッシングユ
ニットを提供できる。
【0170】請求項2に記載のプロセッシングユニット
は、n×nビットの乗算器とn+nビットの2つの加算
器を用いて、大量のデータ処理が要求される演算におけ
る典型的な処理を行なうことができる。
【0171】その結果、より幅広い種類の大量の演算を
簡単な制御で実現できる、並列処理のためのプロセッシ
ングユニットを提供できる。
【0172】請求項3に記載のプロセッシングユニット
では、2nビットのデータ同士の演算を、それぞれ上位
nビットと下位nビットとに分けてn×nビットの乗算
器およびn+nビットの加算器を用いて効率よく行なう
ことができる。
【0173】その結果、倍精度演算を含むより幅広い種
類の演算を簡単な制御で実現できる、並列処理のための
プロセッシングユニットを提供できる。
【0174】請求項4に記載のプロセッシングユニット
では、2つの加算器の一方のキャリー出力を他方のキャ
リー入力とする場合と、しない場合とを選択できる。し
たがって、2nビットのデータ同士の加算と、nビット
のデータ同士の2つの別個の加算とを効率よく実行する
ことができる。
【0175】その結果、倍精度の加算処理を含むより幅
広い種類の大量の演算を簡単な制御で実現できる、並列
処理のためのプロセッシングユニットを提供できる。
【0176】請求項5に記載のプロセッシングユニット
の加算器では、自己の加算結果を用いる演算、たとえば
積和演算と、データバス経由のデータを用いた加算との
双方を効率よく行なうことができる。
【0177】その結果、積和演算を含むより幅広い種類
の大量の演算を簡単な制御で実現できる、並列処理のた
めのプロセッシングユニットを提供できる。
【0178】請求項6に記載のプロセッシングユニット
の加算器は、乗算結果を加算の入力に用いる演算、たと
えば積和演算と、データバス経由のデータを用いた加算
との双方を効率よく行なうことができる。
【0179】その結果、積和演算を含むより幅広い種類
の大量の演算を簡単な制御で実現できる、並列処理のた
めのプロセッシングユニットを提供できる。
【0180】請求項7に記載のプロセッシングユニット
の加算器は、乗算結果や加算結果を加算の入力に用いる
演算、たとえば積和演算と、データバス経由のデータを
用いた加算との双方を効率よく行なうことができる。
【0181】その結果、積和演算を含むより幅広い種類
の大量の演算を簡単な制御で実現できる、並列処理のた
めのプロセッシングユニットを提供できる。
【0182】請求項8に記載のプロセッシングユニット
の乗算器では、記憶手段に格納されたデータを用いるこ
とにより処理の高速化を図れる処理、たとえばニュート
ン・ラプソン法による除算や、開平演算などを効率よく
行なうための構成と、通常の演算を行なうための構成と
を自由に選択できる。
【0183】その結果、ニュートン・ラプソン法や開平
演算を含むより幅広い種類の大量の演算を簡単な制御で
効率良く実現できる、並列処理のためのプロセッシング
ユニットを提供できる。
【0184】請求項9に記載の並列処理プロセッサで
は、各プロセッシングユニットは、最低でも2以上の同
じ数の入力と出力とを有する。入出力の数が多く、演算
の自由度が高くなる。また、各プロセッシングユニット
は同一の構造を有するため、プロセッサのレイアウトお
よび制御の複雑さが低減される。
【0185】その結果、より幅広い種類の演算を簡単な
制御で実現できる、簡単な構成の並列処理のためのプロ
セッサを提供できる。
【0186】請求項10に記載の並列処理プロセッサの
各プロセッシングユニットは、データ記憶手段からのデ
ータと、他のプロセッシングユニットからのデータとの
いずれにも、複数個の演算手段を用いた所定の処理を行
ない、任意の演算手段の出力を他のプロセッシングユニ
ットと、データ記憶手段との任意のものに出力できる。
したがって、複数の同一構造のプロセッシングユニット
を用いた多くの種類の演算を、互換性のある制御命令を
用いて実行できる。
【0187】その結果、より幅広い種類の演算を簡単な
制御で実現できる、並列処理のためのプロセッサを提供
できる。
【0188】請求項11に記載の並列処理プロセッサで
は、データ記憶手段からプロセッシングユニットへの読
出データバスは、プロセッシングユニットをグループ化
せず全体に接続する場合と比較して短くすみ、プロセッ
シングユニットへのデータの機器が高速に行なえる。ま
た1グループのプロセッシングユニットで共通のデータ
を用いた演算を実行できる。さらに各プロセッシングユ
ニットからは任意のデータ記憶手段にデータを書込める
ので、グループ間のデータ交換も可能で、複数のプロセ
ッシングユニットを用いた多彩な演算を実行できる。ま
た各プロセッシングユニットは同一構成で、互換性のあ
る制御命令で制御することができる。
【0189】その結果、より幅広い種類の演算を簡単な
制御で高速に実行できる、並列処理のためのプロセッサ
を提供できる。
【0190】請求項12に記載の並列処理プロセッサの
動作方法では、演算結果の上位nビットまたは下位nビ
ットは、新たな演算のためのデータの下位nビットまた
は上位nビットとして乗算手段および加算手段に与える
ことができ、多様な演算を行なうことができる。また、
2つの加算手段の間でキャリーの入出力を行なうかどう
かを選択できるので、nビット精度の2つの加算処理と
2nビット精度の1つの加算処理とを切換えて行なうこ
とができる。したがって、非常に自由度の高い処理を行
なうことができる。また各プロセッシングユニットの構
成は同一で、かつ互換性のある制御命令で制御できる。
【0191】その結果、より幅広い種類の演算を簡単な
制御で実行できる、並列処理のためのプロセッサの動作
方法を提供できる。
【0192】請求項13に記載の並列処理プロセッサの
動作方法では、あるプロセッシングユニット内の乗算手
段または加算手段の出力の上位nビットまたは下位nビ
ットが、他のプロセッシングユニット内の乗算手段また
は加算手段の下位nビットと上位nビットとの任意の一
方に入力されるようにデータバスと乗算手段または加算
手段との接続を設定できる。シフト手段を用いることな
く多様な演算を行なうことが可能である。またシフト手
段を用いる場合よりも動作が高速で、制御も単純であ
る。
【0193】その結果、より幅広い種類の演算を簡単な
制御で高速に実行できる、並列処理のためのプロセッサ
の動作方法を提供できる。
【0194】請求項14に記載の並列処理プロセッサの
動作方法では、あるプロセッシングユニット内の乗算手
段または加算手段の出力の上位nビットが、他のプロセ
ッシングユニット内の乗算手段または加算手段の下位n
ビットに入力されるようにデータバスと乗算手段または
加算手段との接続を設定できる。シフト手段を用いるこ
となくデータを実質的にシフトでき、シフトのための時
間も必要としない。シフト手段を用いることなく多様な
演算を行なうことが可能である。またシフト手段を用い
る場合よりも動作が高速で制御も単純である。
【0195】その結果、より幅広い種類の演算を簡単な
制御で高速に実行できる、並列処理のためのプロセッサ
の動作方法を提供できる。
【0196】請求項15に記載の並列処理プロセッサで
は、複雑な演算を各プロセッシングユニットごとに制御
すればよく、並列処理プロセッサ全体の制御が容易にな
る。また、各プロセッシングユニットでは、制御手段に
より多様な演算処理を行なえ、かつ複数のプロセッシン
グユニットを組合わせることにより、プロセッサ全体と
してさらに従来より幅広い処理を実現できる。
【0197】その結果、より幅広い種類の演算を簡単な
制御で実現できる、並列処理のためのプロセッサを提供
できる。
【0198】請求項16に記載の並列処理プロセッサで
は、データ記憶手段から出力されるデータを変化させつ
つ一定の命令を繰り返し行なう場合などに、データ記憶
手段を制御する命令のみを、その内容を変化させつつ繰
り返し発行すれば、演算手段のための異なる制御命令を
いくつも発行する必要がない。したがって、大量のデー
タに対する同一の演算を行なう場合の制御が容易であ
る。また、制御命令を組合わせることで、各プロセッシ
ングユニットにおいて多様な演算処理を行なうことがで
きる。複数のプロセッシングユニットを組合わせること
ができ、さらにより複雑な演算を実現できる。
【0199】その結果、より幅広い種類の演算を簡単な
制御で実現できる、並列処理のためのプロセッサを提供
できる。
【0200】請求項17に記載の並列処理プロセッサで
は、データ記憶手段の各々の2つの読出アドレスからの
2つのデータを読出して所定の演算を行ない、結果を1
つの書込アドレスにより指定された位置に書込できる。
複数のプロセッシングユニットの間で、データ記憶手段
を介してデータを授受しつつ、複雑な演算を実行でき
る。各プロセッシングユニットは同一構成であり、その
レイアウトは単純でよい。しかも互換性のある制御命令
でプロセッシングユニットを制御でき、プロセッサの制
御が簡略になる。
【0201】その結果、より幅広い種類の演算を簡単な
制御で実現できる、並列処理のためのプロセッサを提供
できる。
【0202】請求項18に記載の並列処理プロセッサで
は、データ記憶手段から出力されるデータを変えつつ一
定の命令を繰り返し行なう場合などに、データ記憶手段
を制御する命令のみを、その内容を変化させつつ繰り返
し発行すれば、演算手段のための同一の制御命令を繰り
返し発行する必要がない。したがって大量のデータを処
理する場合、プロセッサ全体の制御が単純になる。
【0203】その結果、より幅広い種類の大量の演算を
簡単な制御で実現できる、並列処理のためのプロセッサ
を提供できる。
【0204】請求項19に記載の並列処理プロセッサで
は、命令メモリから読出された2つの命令が同一の系統
に属すれば、それらは同時に実行される。異なる系統で
あれば通常と同様の処理が行なわれる。一度に制御命令
を1つしか読出さない場合と比較して、命令の実行速度
は向上する。
【0205】その結果、より幅広い種類の演算を簡単な
制御で高速に実行できる、並列処理のためのプロセッサ
を提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係るプロセッサの構成
を示す模式的ブロック図である。
【図2】第1の実施例のプロセッサのブロック図であ
る。
【図3】第1の実施例のプロセッシングユニットのブロ
ック図である。
【図4】第1の実施例におけるデータメモリとメモリ読
出データバス群との間の接続を示すブロック図である。
【図5】制御命令の構成を示す模式図である。
【図6】命令メモリにおける命令の格納状態を示す模式
図である。
【図7】本発明の第1の実施例のプロセッサによる第1
の接続例を示す模式的ブロック図である。
【図8】本発明の第1の実施例のプロセッサによる第2
の接続例を示す模式的ブロック図である。
【図9】本発明の第1の実施例のプロセッサによる第3
の接続例を示す模式的ブロック図である。
【図10】本発明の第1の実施例のプロセッサによる第
4の接続例を示す模式的ブロック図である。
【図11】本発明の第1の実施例のプロセッサによる第
5の接続例を示す模式的ブロック図である。
【図12】本発明の第2の実施例のプロセッサのプロセ
ッシングユニットのブロック図である。
【図13】本発明の第3の実施例のプロセッサの要部の
ブロック図である。
【図14】本発明の第3の実施例における命令メモリの
模式的ブロック図である。
【図15】本発明の第4の実施例のプロセッサの構成を
示す模式的ブロック図である。
【図16】従来の並列処理プロセッサを示す模式的ブロ
ック図である。
【図17】図16に示す従来のプロセッサの各プロセッ
シングユニットの構成を示すブロック図である。
【図18】図16および図17に示される従来のプロセ
ッサのプロセッシングユニットの接続例を示す模式的ブ
ロック図である。
【図19】従来のプロセッサのプロセッシングユニット
相互の間の接続例を示す模式的ブロック図である。
【符号の説明】
200、202、204、206 プロセッシングユニ
ット 210、212、214、216 単方向入力データバ
ス 220、222、224、226 単方向入力データバ
ス 250、252、254、256 コントロール回路 260、262、264、266 命令メモリ 280 メモリ読出データバス群 282 メモリ書込データバス群 270、272、274、276 データメモリ 350、352、354、356 セレクタ 360、362、364、366、368、370 セ
レクタ 380 乗算器 382、384 加算器 390 セレクタ 392 クロスバースイッチ

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 それぞれ複数個の入力を有し、与えられ
    るデータの間に所定の演算を行なって結果を出力するた
    めの複数個の演算手段と、 複数の単方向入力データバスに接続され、前記複数個の
    演算手段の各入力ごとに、前記複数の単方向入力データ
    バスのうちのいずれか1つを可制御的に選択して、選択
    された単方向入力データバスを介して与えられるデータ
    の一部を前記入力に与えるための入力データバス選択手
    段と、 前記複数個の演算手段の出力に接続された入力と、前記
    単方向入力データバスと同じ数の単方向出力データバス
    に接続された出力とを有し、前記演算手段の出力の各々
    を、前記単方向出力データバスのいずれかに出力するた
    めの出力データバス選択手段と、 前記複数個の演算手段により所望の複合演算を実現する
    ために、前記入力データバス選択手段と、前記出力デー
    タバス選択手段とによるデータの経路を制御するための
    制御手段とを含む、並列処理のためのプロセッシングユ
    ニット。
  2. 【請求項2】 前記複数個の演算手段が、 2つのnビット幅の入力を有し、与えられる2つのデー
    タを乗算して2nビットの結果を出力する乗算器と、 各々が2つのnビット幅の入力を有し、与えられる2つ
    のデータを加算してnビット幅の結果を出力する2つの
    加算器とを含む、請求項1に記載の並列処理のためのプ
    ロセッシングユニット。
  3. 【請求項3】 前記複数の単方向入力データバスおよび
    前記複数の単方向出力データバスの各々は2nビット幅
    を有し、 前記入力データバス選択手段は、前記複数個の演算手段
    の各入力ごとに前記複数の単方向入力データバスのうち
    のいずれか1つを可制御的に選択して、選択された単方
    向入力データバスを介して与えられるデータの上位また
    は下位のnビットを前記入力に与えるための手段を含
    み、 前記出力データバス選択手段は、前記演算手段の出力の
    各々を、前記単方向出力データバスの任意のいずれかの
    上位nビットまたは下位nビットまたはその双方に出力
    可能とするための手段を含む、請求項2に記載の並列処
    理のためのプロセッシングユニット。
  4. 【請求項4】 前記2つの加算器の一方はキャリー出力
    を有し、 前記2つの加算器の他方はキャリー入力を有し、 さらに、前記キャリー出力と前記キャリー入力とを可制
    御的に断続するための手段を含む、請求項2に記載の並
    列処理のためのプロセッシングユニット。
  5. 【請求項5】 前記入力データバス選択手段は、前記2
    つの加算器の1つの少なくとも1つの入力について、前
    記複数の単方向入力データバスのうちのいずれか1つま
    たは該加算器自身の出力のいずれかを可制御的に選択し
    て、選択された単方向入力データバスを介して与えられ
    るデータまたは該加算器自身の出力のいずれかの一部を
    前記入力に与えるための手段を含む、請求項2に記載の
    並列処理のためのプロセッシングユニット。
  6. 【請求項6】 前記入力データバス選択手段が、前記2
    つの加算器の1つの少なくとも1つの入力について、前
    記複数の単方向入力データバスのうちのいずれか1つま
    たは前記乗算器の出力のいずれかを可制御的に選択し
    て、選択された単方向入力データバスを介して与えられ
    るデータまたは前記乗算器の出力のいずれかの一部を前
    記入力に与えるための手段を含む、請求項2に記載の並
    列処理のためのプロセッシングユニット。
  7. 【請求項7】 前記入力データバス選択手段が、前記2
    つの加算器の1つの少なくとも1つの入力について、前
    記複数の単方向入力データバスのうちのいずれか1つま
    たは該加算器自身の出力または前記乗算器の出力の一部
    のいずれかを可制御的に選択して、選択された単方向入
    力データバスを介して与えられるデータの一部または該
    加算器自身の出力または前記乗算器の出力の一部のいず
    れかを前記入力に与えるための手段を含む、請求項2に
    記載の並列処理のためのプロセッシングユニット。
  8. 【請求項8】 所定の情報を予め記憶するための読出専
    用記憶手段をさらに含み、 前記入力データバス選択手段が、前記乗算器の少なくと
    も1つの入力について、前記複数の単方向入力データバ
    スのうちのいずれか1つまたは前記読出専用記憶手段の
    出力のいずれかを可制御的に選択して、選択された単方
    向入力データバスを介して与えられるデータまたは前記
    記憶手段の出力のいずれかの一部を前記入力に与えるた
    めの手段を含む、請求項2に記載の並列処理のためのプ
    ロセッシングユニット。
  9. 【請求項9】 n個のプロセッシングユニットと、 隣り合うプロセッシングユニットを所定方向に円環状に
    順次に接続するための第1の単方向データバスと、 1つおいて隣り合うプロセッシングユニットを円環状に
    順次に双方向に接続するための、第2の単方向データバ
    スとを含み、 前記nは4のベキ乗であり、 各前記プロセッシングユニットは、 それぞれ複数個の入力を有し、与えられるデータの間に
    所定の演算を行なって結果を出力するための複数個の演
    算手段と、 隣接するプロセッシングユニットからの入力となる前記
    第1の単方向データバスと、前記第2の単方向データバ
    スのうちの該プロセッシングユニットへの入力データバ
    スとに接続され、前記複数個の演算手段の各入力ごとに
    前記第1および第2の単方向データバスのうちのいずれ
    か1つを可制御的に選択して、選択された単方向データ
    バスを介して与えられるデータの一部を前記入力に与え
    るための入力データバス選択手段と、 前記複数個の演算手段の出力に接続された入力と、隣接
    するプロセッシングユニットへの出力となる前記第1の
    単方向データバスと、前記第2の単方向データバスのう
    ちの該プロセッシングユニットからの出力データバスと
    に接続された出力とを有し、前記演算手段の出力の各々
    を、前記第1および第2の単方向データバスのいずれか
    に出力するための出力データバス選択手段と、 前記複数個の演算手段により所望の複合演算を実現する
    ために、前記入力データバス選択手段と、前記出力デー
    タバス選択手段とによるデータの経路と、前記演算手段
    による演算の実行とを制御するための制御手段とを含
    む、並列処理プロセッサ。
  10. 【請求項10】 前記プロセッシングユニットと同数
    の、各々が一度に2つのデータを出力可能なデータ記憶
    手段と、 前記データ記憶手段の各々と、前記プロセッシングユニ
    ットの各々とを接続するための複数の読出データバスお
    よび複数の書込データバスとをさらに含み、 各前記プロセッシングユニットにおいて、 前記入力データバス選択手段は、隣接するプロセッシン
    グユニットからの入力となる前記第1の単方向データバ
    スと、前記第2の単方向データバスのうちの該プロセッ
    シングユニットへの入力データバスと、前記複数の読出
    データバスとに接続され、前記複数個の演算手段の各入
    力ごとに前記第1および第2の単方向データバスと前記
    読出データバスとのうちのいずれか1つを可制御的に選
    択して、選択されたデータバスを介して与えられるデー
    タの一部を前記入力に与えるための手段を含み、 前記出力データバス選択手段は、前記複数個の演算手段
    の出力に接続された入力と、隣接するプロセッシングユ
    ニットへの出力となる前記第1の単方向データバスと、
    前記第2の単方向データバスのうちの該プロセッシング
    ユニットからの出力データバスと、前記書込データバス
    とに接続された出力とを有し、前記演算手段の出力の各
    々を、前記データバスのいずれかに出力するための手段
    とを含む、請求項9に記載の並列処理プロセッサ。
  11. 【請求項11】 前記プロセッシングユニットと同数
    の、各々が一度に2つのデータを出力可能なデータ記憶
    手段と、 前記データ記憶手段の各々と、前記プロセッシングユニ
    ットの各々とを接続するための複数の読出データバスお
    よび複数の書込データバスとをさらに含み、 前記複数のプロセッシングユニットは、各々が4の羃乗
    個のプロセッシングユニットを含む複数個のグループに
    分割されており、 前記複数のプロセッシングユニットと前記複数のデータ
    記憶手段とは1対1に対応付けられており、 各前記プロセッシングユニットにおいて、 前記入力データバス選択手段は、隣接するプロセッシン
    グユニットからの入力となる前記第1の単方向データバ
    スと、前記第2の単方向データバスのうちの該プロセッ
    シングユニットへの入力データバスと、前記複数の読出
    データバスのうち該プロセッシングユニットが含まれる
    グループのプロセッシングユニットと対応付けられたデ
    ータ記憶手段からの読出データバスとに接続され、前記
    複数個の演算手段の各入力ごとに前記第1および第2の
    単方向データバスと前記読出データバスとのうちのいず
    れか1つを可制御的に選択して、選択されたデータバス
    を介して与えられるデータの一部を前記入力に与えるた
    めの手段を含み、 前記出力データバス選択手段は、前記複数個の演算手段
    の出力に接続された入力と、隣接するプロセッシングユ
    ニットへの出力となる前記第1の単方向データバスと、
    前記第2の単方向データバスのうちの該プロセッシング
    ユニットからの出力データバスと、前記書込データバス
    のすべてとに接続された出力とを有し、前記演算手段の
    出力の各々を、前記データバスのいずれかに出力するた
    めの手段を含む、請求項9に記載の並列処理プロセッ
    サ。
  12. 【請求項12】 4個のプロセッシングユニットと、 隣り合うプロセッシングユニットを所定方向に円環状に
    順次に接続するための4本の第1の単方向データバス
    と、 1つおいて隣り合うプロセッシングユニットを双方向に
    接続するための、4本の第2の単方向データバスとを含
    み、 各前記プロセッシングユニットは、 各々nビットの2つの入力を有し、与えられるデータの
    間に乗算を行なって2nビット幅の結果を出力するため
    の乗算手段と、 各々が、各々nビットの2つの入力を有し、与えられる
    データの間に加算を行なってnビット幅の結果を出力す
    るための第1および第2の加算手段と、 前記第1の加算手段のキャリー出力を前記第2の加算手
    段のキャリー入力に可制御的に与えるためのキャリー切
    換手段と、 隣接するプロセッシングユニットからの入力となる前記
    第1の単方向データバスと、前記第2の単方向データバ
    スのうちの該プロセッシングユニットへの入力データバ
    スとに接続され、前記複数個の演算手段の各入力ごとに
    前記第1および第2の単方向データバスのうちのいずれ
    か1つを可制御的に選択して、選択された単方向データ
    バスを介して与えられるデータの一部を前記乗算手段と
    前記加算手段との前記入力に与えるための入力データバ
    ス選択手段と、 前記乗算手段の出力と前記加算手段の出力とに接続され
    た入力と、隣接するプロセッシングユニットへの出力と
    なる前記第1の単方向データバスと、前記第2の単方向
    データバスのうちの該プロセッシングユニットからの出
    力データバスとに接続された出力とを有し、前記乗算手
    段および前記加算手段の出力の各々を、前記第1および
    第2の単方向データバスのいずれかに出力するための出
    力データバス選択手段と、 前記乗算手段および前記加算手段による所望の複合演算
    を実現するために、前記入力データバス選択手段と、前
    記出力データバス選択手段とによるデータの経路を制御
    するための制御手段と、 を含む並列処理プロセッサにおいて、所望の演算を行な
    うための動作方法であって、 演算に必要なデータの各々を前記入力データバス選択手
    段に与えるステップと、 前記入力データバス選択手段により、前記データの各々
    を上位および下位のnビットずつに分解し、前記4つの
    プロセッシングユニットの、前記乗算手段および前記加
    算手段の入力のいずれか2つにそれぞれ与えるステップ
    と、 すべての前記プロセッシングユニットの前記キャリー切
    換手段を、前記所望の演算に応じて設定するステップ
    と、 各前記プロセッシングユニットの前記出力データバス選
    択手段と前記入力データバス選択手段とを制御して、前
    記所望の演算が得られるように各前記プロセッシングユ
    ニットの前記乗算手段と、前記第1および第2の加算手
    段との間の接続を設定するステップと、 演算結果が、前記データバスのうちの所望のものに出力
    されるように、前記所望の演算によって定まる所定のプ
    ロセッシングユニットの前記乗算手段および加算手段の
    うちの所定のものの出力の、所定の部分を前記所望のデ
    ータバスに出力するように前記出力データバス選択手段
    を制御するステップとを含む、動作方法。
  13. 【請求項13】 前記接続を設定するステップは、 あるプロセッシングユニット内の乗算手段または加算手
    段の出力の上位nビットが、他のプロセッシングユニッ
    ト内の乗算手段または加算手段の下位nビットに入力さ
    れるように、これらプロセッシングユニットの前記出力
    データバス選択手段および前記入力データバス選択手段
    によるデータ経路を設定するステップを含む、請求項1
    2に記載の動作方法。
  14. 【請求項14】 前記接続を設定するステップは、 あるプロセッシングユニット内の乗算手段または加算手
    段の出力の上位nビットが、他のプロセッシングユニッ
    トへの出力データバスの下位nビットに出力されるよう
    に、該プロセッシングユニットの前記出力データバス選
    択手段によるデータ経路を設定するステップを含む、請
    求項12に記載の動作方法。
  15. 【請求項15】 各プロセッシングユニットごとに準備
    され、前記制御手段が実行する制御命令を格納するため
    の複数の命令記憶手段をさらに含む、請求項9に記載の
    並列処理プロセッサ。
  16. 【請求項16】 前記制御命令は、対応のデータ記憶手
    段を制御するための第1の種類の制御命令と、前記制御
    手段による前記演算手段の制御のための第2の種類の制
    御命令との2つの系統に分類される、請求項15に記載
    の並列処理プロセッサ。
  17. 【請求項17】 前記第1の種類の制御命令は、前記デ
    ータ記憶手段の各々の2つの読出アドレスと、1つの書
    込アドレスとを指定する、請求項16に記載の並列処理
    プロセッサ。
  18. 【請求項18】 前記制御手段は、与えられる第2の種
    類の制御命令が変更されるまでは、直前に与えられた第
    2の種類の制御命令に従って前記演算手段と前記入力デ
    ータバス選択手段と前記出力データバス選択手段とを制
    御する、請求項16に記載の並列処理プロセッサ。
  19. 【請求項19】 前記命令記憶手段は、 複数個の命令を格納する命令メモリと、 命令メモリの読出アドレスを指定するためのプログラム
    カウンタと、 前記プログラムカウンタにより指定されたアドレスを先
    頭として2つの命令を一度に読出すための手段と、 読出された2つの命令が同一の系統に属するか否かを判
    断するための手段と、 判断結果に従って、前記制御手段または前記データ記憶
    手段またはその双方に制御命令を与えるための手段と、 判断結果に従って、前記プログラムカウンタのカウント
    を1または2増加させるための手段とを含む、請求項1
    6に記載の並列処理プロセッサ。
JP21078393A 1993-08-25 1993-08-25 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法 Withdrawn JPH0764789A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21078393A JPH0764789A (ja) 1993-08-25 1993-08-25 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21078393A JPH0764789A (ja) 1993-08-25 1993-08-25 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法

Publications (1)

Publication Number Publication Date
JPH0764789A true JPH0764789A (ja) 1995-03-10

Family

ID=16595067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21078393A Withdrawn JPH0764789A (ja) 1993-08-25 1993-08-25 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法

Country Status (1)

Country Link
JP (1) JPH0764789A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005512186A (ja) * 2001-11-30 2005-04-28 クイックシルヴァー テクノロジイ,インコーポレーテッド 固定の特定用途向け計算要素を有する適応集積回路の構成および動作のためのシステム
JP2008513878A (ja) * 2004-09-22 2008-05-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 機能単位が読み出しポートを共有するデータ処理回路
US9665397B2 (en) 2001-03-22 2017-05-30 Cornami, Inc. Hardware task manager

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665397B2 (en) 2001-03-22 2017-05-30 Cornami, Inc. Hardware task manager
JP2005512186A (ja) * 2001-11-30 2005-04-28 クイックシルヴァー テクノロジイ,インコーポレーテッド 固定の特定用途向け計算要素を有する適応集積回路の構成および動作のためのシステム
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US10185502B2 (en) 2002-06-25 2019-01-22 Cornami, Inc. Control node for multi-core system
US10817184B2 (en) 2002-06-25 2020-10-27 Cornami, Inc. Control node for multi-core system
JP2008513878A (ja) * 2004-09-22 2008-05-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 機能単位が読み出しポートを共有するデータ処理回路

Similar Documents

Publication Publication Date Title
US4748585A (en) Processor utilizing reconfigurable process segments to accomodate data word length
JP2835103B2 (ja) 命令指定方法及び命令実行方式
JP3573755B2 (ja) 画像処理プロセッサ
US6922716B2 (en) Method and apparatus for vector processing
US6349318B1 (en) Arithmetic processor for finite field and module integer arithmetic operations
CN103793203B (zh) 响应于输入数据值降低fma单元中的功率消耗
KR100948512B1 (ko) 부동 소수점 연산을 지원하는 부동 소수점 유닛-프로세싱 요소(fpu-pe) 구조 및 그 fpu-pe 구조를 포함한 재구성 어레이 프로세서(rap) 및 그 rap를 포함한 멀티미디어 플랫폼
US4525796A (en) Pipelined operation unit for vector data
JP4527571B2 (ja) 再構成可能演算処理装置
CN105912501B (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
US20060112159A1 (en) Processor
CN105335331B (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
US5473557A (en) Complex arithmetic processor and method
JP3479385B2 (ja) 情報処理装置
EP0395240B1 (en) High speed numerical processor
KR20190131611A (ko) 구성가능 논리 유닛 스위칭 장치 및 방법
JPH0764789A (ja) 並列処理プロセッサおよびそのプロセッシングユニットならびにこの並列処理プロセッサの動作方法
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US7260711B2 (en) Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction
US20050289328A1 (en) Reconfigurable processor and semiconductor device
US20040199558A1 (en) DSP execution unit for efficient alternate modes of operation
JP2003244190A (ja) データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ
CN104011674B (zh) 数字信号处理器
JPH05324694A (ja) 再構成可能並列プロセッサ
US9081901B2 (en) Means of control for reconfigurable computers

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001031