JPH11296498A - 並列演算処理装置 - Google Patents

並列演算処理装置

Info

Publication number
JPH11296498A
JPH11296498A JP10101321A JP10132198A JPH11296498A JP H11296498 A JPH11296498 A JP H11296498A JP 10101321 A JP10101321 A JP 10101321A JP 10132198 A JP10132198 A JP 10132198A JP H11296498 A JPH11296498 A JP H11296498A
Authority
JP
Japan
Prior art keywords
data
mask
arithmetic
unit
register
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
JP10101321A
Other languages
English (en)
Inventor
Yoshikazu Kondo
由和 近藤
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 JP10101321A priority Critical patent/JPH11296498A/ja
Publication of JPH11296498A publication Critical patent/JPH11296498A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 過去のプログラムの再利用を可能にしかつ縮
約演算性能を改善する並列演算処理装置を提供する。 【解決手段】 複数の演算ユニット(♯0〜♯N−1)
それぞれにおいてマスクレジスタ(41)を設け、この
マスクレジスタ出力に従ってレジスタ群21の書込の禁
止/許可を制御し、かつセレクタ43の接続経路を制御
してレジスタ群21および入力ポート23の一方を出力
ポート24に結合する。プログラムに応じて動作可能な
演算ユニットの数を設定することができ、過去のプログ
ラムの再利用が可能となりかつ縮約演算の高速実行が可
能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、複数の演算ユニ
ットが並列に動作する並列演算処理装置に関し、特に、
単一命令で複数組のデータを並列に処理するSIMD
(シングル・インストラクション・マルチ・データ・ス
トリーム)型並列演算処理装置に関する。より特定的に
は、SIMD型並列演算処理装置における、プログラム
の再利用性および演算実行速度を改善するための演算ユ
ニットの構成およびその制御方法に関する。
【0002】
【従来の技術】近年のマルチメディア技術およびニュー
ラルネットワーク技術の進展に伴って、SIMD(単一
命令・多重データストリーム)方式の並列プロセッサが
注目されている。このSIMD方式の並列演算処理装置
(プロセッサ)は、複数の演算ユニットに個々のデータ
群を格納し、これらの複数の演算ユニットに共通の命令
を与えて並列に動作させて、単一命令で複数のデータ群
(多重データストリーム)を並列に処理する。特に、こ
のSIMD方式の並列演算処理装置は、行列とベクトル
の乗算を行なう行列−ベクトル乗算、ベクトル同士の演
算を行なうベクトル−ベクトル演算など、画像、文字、
および音声処理システムなどで多用される演算構造を効
率的に実現することが可能である。
【0003】図30は、従来の並列演算処理装置の構成
を示す図であり、たとえば米国特許第5175858号
などに示されている。図30において、従来の並列演算
処理装置は、命令ブロードキャストバス30に共通に接
続される複数(N個)の演算ユニット♯0〜♯N−1を
含む。これらの演算ユニット♯0〜♯N−1の各々は、
同じ構成を有し、複数のレジスタ21aを有するレジス
タ群21と、複数の演算器22aおよび22bを含む演
算器群22と、データを入力するための内部入力ポート
23と、データを出力するための内部出力ポート24を
含む。これらのポート23および24は、演算ユニット
間でのデータ通信のために用いられる。演算ユニット♯
0〜♯N−1の内部入力ポート23および内部出力ポー
ト24は、環状通信路32を介してリング状のデータ通
信経路を形成するように相互接続される。すなわち、演
算ユニット♯N−iの内部出力ポート24は、隣接する
演算ユニット♯N−i−1の内部入力ポート23に接続
される。この環状通信路32により、演算ユニット♯0
〜♯N−1は、順次データを転送することができる。
【0004】命令ブロードキャストバス30を介して単
一命令31が共通に演算ユニット♯0〜♯N−1へ与え
られる。演算ユニット♯0〜♯N−1の各々は、この与
えられた単一命令31に従って、レジスタ群21のレジ
スタと演算器群22の演算器との接続経路を図示しない
制御器により決定し、この与えられた単一命令31に従
って指定された数値演算を実行する。演算ユニット♯0
〜♯N−1がそれぞれレジスタ群21または図示しない
ローカルメモリにデータを格納することにより、単一命
令で複数のデータストリームに対する演算を並列に実行
する単一命令・多重データ制御が実現される。
【0005】たとえば、演算ユニット♯0〜♯N−1そ
れぞれに、行列式の各行ベクトルの要素を格納し、この
環状通信路32を介して別の列ベクトルの構成要素を順
次与えることにより、行列−ベクトル乗算を高速で行な
うことができることが、たとえばS,Y,KUNG等の
「人工神経回路網のための並列アーキテクチャ」、IE
EEインターナショナル・カンファレンス・オン・ニュ
ーラル・ネットワーク(神経回路網国際会議)、198
8年7月の第2巻、第165頁から第172頁において
述べられている。
【0006】
【発明が解決しようとする課題】この図30に示すよう
なSIMD型並列演算処理装置を用いた場合、画像、文
字、および音声処理システムなどで多用される行列−ベ
クトル乗算、およびベクトル−ベクトル演算などの演算
構造を効率的に実現することが可能である。
【0007】LSIプロセス技術の進展に伴って、素子
の微細化が進み、1つの半導体チップ(シリコンチッ
プ)上に集積化できる演算ユニットの数が、年々増加し
ている。しかしながら、半導体チップ上で実行されるべ
きプログラムは、半導体チップ上に形成された演算ユニ
ットの特定の個数を想定して作成されている。たとえ
ば、行列−ベクトル乗算において、1つの演算ユニット
において行なわれる積和演算について考えてみる。この
場合、以下のようなプログラムが、たとえば作成され
る。
【0008】 1 I=1 2 MULTIACCUM RI,R2→R3 3 I=I+1 4 IF I<N,THEN GO TO2 5 END ステップ2の処理は、レジスタR1およびR2に格納さ
れたデータを乗算し、その乗算結果をレジスタR3に累
算する処理を示す。この場合、N行N列の行列とN項ベ
クトルの乗算が演算ユニット♯0〜♯N−1において行
なわれる。演算ユニット♯0〜♯N−1の各々は、この
乗算結果のN項ベクトルの各項の値を計算する。
【0009】このプログラムは、N個の演算ユニット♯
0〜♯N−1を想定して作成されており、半導体チップ
上に形成される演算ユニットの数が増加した場合、この
プログラムは、そのまま利用することはできない。N個
の演算ユニットを選択的に動作させることはできないた
めである。SIMD型並列処理装置用のプログラムにお
いては、このような演算ユニットの数の増加に応じて内
容を書換えるのが一般に困難であり、過去に作成したプ
ログラムを再利用するのが困難であるという問題があっ
た。
【0010】また、この図30に示す環状通信路32を
介して演算ユニット♯0〜♯N−1をリング状に相互接
続する場合、演算サイクルを規定する1クロックサイク
ルにおいては、隣接演算ユニット間においてのみデータ
の転送が行なわれる。たとえば、演算ユニット♯0〜♯
N−1に分散配置されたベクトル要素V={v[0],
v[1],…,v[N−1]}の総和を求める演算Σv
[j]を考える。1クロックサイクルにおいては、2つ
の隣接演算ユニット間でのデータ通信のみが行なわれ
る。したがって、1つの演算ユニット♯k(k=0〜N
−1)に、ベクトルVのすべてのベクトル要素v[0]
〜v[N−1]を供給するためには、最低でも、Nクロ
ックサイクルが必要となる。したがって、演算ユニット
に分散配置されたデータを1つのスカラー量に縮約する
形の演算(縮約演算)を高速で実行することができず、
十分な性能を得ることができないという問題があった。
【0011】それゆえ、この発明の目的は、プログラム
の再利用可能性および縮約演算性能を改善することので
きる並列演算処理装置を提供することである。
【0012】この発明の他の目的は、構成要素である演
算ユニットの数を等価的に容易に増減することのできる
並列演算処理装置を提供することである。
【0013】
【課題を解決するための手段】この発明に係る並列演算
処理装置は、複数の演算ユニットそれぞれにおいて、マ
スクデータに従って通信線路を介してのデータ転送をバ
イパスさせる。もしくは、このデータ転送バイパス時、
対応の演算ユニットにおける演算動作を停止させる。
【0014】すなわち、請求項1に係る並列演算処理装
置は、共通バスに並列に結合され、この共通バスを介し
て共通に供給される命令に従って並列に動作しかつ所定
の順序で通信線路を介して接続される複数の演算ユニッ
トを備える。これら複数の演算ユニットの各々は、デー
タを入力するための内部入力ポートと、データを出力す
るための内部出力ポートと、マスクデータを格納するた
めのマスクレジスタと、このマスクレジスタに結合さ
れ、マスクデータに従って内部入力ポートと内部出力ポ
ートとを接続して該対応の演算ユニットを通信線路を介
してのデータ転送時バイパスさせるためのユニットバイ
パス手段を含む。
【0015】請求項2に係る並列演算処理装置は、請求
項1の複数の演算ユニットの各々が、少なくとも内部入
力ポートに結合され、与えられたデータを格納するため
の記憶手段と、この記憶手段に結合され、命令が指示す
る演算処理を行ない、該演算処理結果を記憶部に格納す
る演算手段と、マスクレジスタに結合され、このマスク
データに従って記憶手段に対する書込動作を選択的に禁
止する書込マスク手段を含む。
【0016】請求項3に係る並列演算処理装置は、請求
項2の記憶手段が複数のデータレジスタを含み、書込マ
スク手段は、マスクデータが書込マスクを指示するとき
複数のデータレジスタに対するデータ書込を一括して禁
止する書込マスク回路を備える。
【0017】請求項4に係る並列演算処理装置は、請求
項3のユニットバイパス手段が、マスクレジスタのマス
クデータに従って内部入力ポートおよび記憶手段の一方
を内部出力ポートに選択的に接続するための選択器を備
える。
【0018】請求項5に係る並列演算処理装置は、請求
項3の複数の演算ユニットが同一半導体チップ上に形成
され、かつさらに、複数の演算ユニットに含まれる第1
の演算ユニットとこの第1の演算ユニットと通信線路を
介してのデータ転送方向において隣接する第2の演算ユ
ニットとの間に設けられ、第1の演算ユニットの内部出
力ポートと半導体チップ上に設けられ、該半導体チップ
外部から与えられるデータを受ける外部データ入力ポー
トの一方を選択的に第2の演算ユニットの内部入力ポー
トに結合する手段をさらに備える。
【0019】請求項6に係る並列演算処理装置は、請求
項5の装置が、さらに、半導体チップ上に形成され、与
えられたデータをこの半導体チップ外部へ出力するため
の外部データ出力ポートと、第1の演算ユニットの内部
出力ポートと外部データ入力ポートの出力の一方を外部
データ出力ポートの入力へ結合するチップバイパス手段
を備える。
【0020】請求項7に係る並列演算処理装置は、請求
項6のチップバイパス手段が、第1の演算ユニットの内
部出力ポートに結合される第1の入力と、外部データ入
力ポートの出力に結合される第2の入力と、出力とを有
する選択器と、複数の演算ユニットのマスクレジスタに
格納されたマスクデータを並列に受け、これらの受けた
マスクデータに従って選択器の接続態様を決定する制御
回路を含む。
【0021】請求項8に係る並列演算処理装置は、請求
項1から7の演算ユニットの各々が、さらに、マスクレ
ジスタに結合され、この演算ユニットの演算処理の進行
に従ってマスクレジスタのマスクデータを更新するため
のマスクデータ更新手段を備える。
【0022】請求項9に係る並列演算処理装置は、請求
項8のマスクデータ更新手段が、対応の演算ユニットに
割当てられる演算ユニット特定番号を表わすデータを格
納し、該格納した番号データに基づいてマスクデータを
更新する手段を含む。
【0023】請求項10に係る並列演算処理装置は、請
求項1の複数の演算ユニットの各々が、さらに、マスク
レジスタのマスクデータに従って、命令による演算処理
動作を停止させる手段を含む。
【0024】マスクデータに従ってデータ転送時、対応
の演算ユニットをバイパスすることにより、1クロック
サイクルで、複数の演算ユニットにわたってデータを転
送することができ、縮約演算の高速化を実現することが
できる。また、このマスクデータに従って対応の演算ユ
ニットをバイパスすることにより、並列演算処理装置に
含まれる演算ユニットの数を低減することができ、過去
の小規模の並列演算処理装置に対して作成されたプログ
ラムを利用することができる。
【0025】
【発明の実施の形態】[実施の形態1]図1は、この発
明の実施の形態1に従う並列演算処理装置の全体の構成
を概略的に示す図である。図1において、並列演算処理
装置1は、命令ブロードキャストバス30を介して与え
られる単一命令31に従って並列に動作する複数の演算
ユニット♯0〜♯N−1を含む。これらの演算ユニット
♯0〜♯N−1は、同じ構成を備え、複数のレジスタ2
1aを有するレジスタ群21と、このレジスタ群21の
レジスタに選択的に結合され、命令31により指定され
た演算処理を行なう演算器群22を含む。この演算器群
22は、複数の演算器22aおよび22bを含む。演算
器群22は、比較器、加減算器、乗算器、および算術論
理演算器を含む。図1においては、演算器群22におい
ては、算術論理演算器22aおよび22bを代表的に示
す。
【0026】演算ユニット♯0〜♯N−1の各々は、さ
らに、命令ブロードキャストバス30を介して与えられ
る単一命令31に従って、この命令31の実行に必要な
制御を行なうコントローラ40と、マスクデータを格納
するマスクレジスタ41と、このマスクレジスタ41に
格納されたマスクデータに従ってレジスタ群21のレジ
スタ21aに対するデータ書込をマスクする(禁止す
る)書込マスク回路42と、マスクレジスタ41に格納
されるマスクデータに従って、内部入力ポート23およ
びレジスタ群21の一方を選択して内部出力ポート24
に結合するバイパス用セレクタ43を含む。このバイパ
ス用セレクタ43は、マスクレジスタ41のマスクデー
タがデータ書込のマスクを指示するとき内部入力ポート
23を内部出力ポート24に結合する。
【0027】したがって、演算ユニット♯k(k=0〜
N−1)においてマスクレジスタ41のマスクデータ
が、マスクを指示するとき、内部入力ポート23は、バ
イパス用セレクタ43を介して内部出力ポート24に結
合され、レジスタ群21は、内部出力ポート24から切
り離される。またこのとき、書込マスク回路42によ
り、レジスタ群21のレジスタ21aへのデータの書込
が禁止される。したがって、この状態においては、演算
ユニット♯iは、データ転送においてバイパスされるこ
とになり、また演算は実効的に行なわれなくなるため
(内部状態の更新が禁止される)、この並列演算処理装
置1から等価的に削除されたことになる。これにより、
マスクレジスタ41のマスクデータにより、並列演算処
理装置1に含まれる演算ユニットの実効的な数を増減す
ることができる。
【0028】演算ユニット♯0〜♯N−1には、演算サ
イクルを規定するクロック信号CLKが共通に与えられ
る。このクロック信号CLKは、外部から与えられるク
ロック信号であってもよく、また外部からのクロック信
号に従って並列演算処理装置1内部で生成されるクロッ
ク信号であってもよい。クロック信号CLKに同期し
て、演算ユニット♯0〜♯N−1において演算が開始さ
れ、また隣接演算ユニット間でのデータ転送もこのクロ
ック信号CLKに同期して行なわれる。クロック信号C
LKの1クロックサイクル内で、隣接演算ユニット間で
データ転送を行なう場合、このデータ転送時演算ユニッ
トをマスクデータによりバイパスすることにより、1ク
ロックサイクル内において、より遠くの演算ユニットに
データを転送することができる。
【0029】なお、この並列演算処理装置1において
は、演算ユニット♯0〜♯N−1は、環状通信路32を
介してリング状に相互接続される。すなわち隣接演算ユ
ニットにおいて内部データ出力ポートがデータ転送方向
において次段の演算ユニットの内部データ入力ポートに
結合され、またその内部データ入力ポートが、データ転
送方向において前段の演算ユニットの内部データ出力ポ
ートに結合される。ここで、内部データ入力ポート23
および内部データ出力ポート24は、ポートとしての機
能を備えており、クロック信号CLKに同期したデータ
の入出力を行なう機能を備えていてもよく、また単に与
えられたデータ信号をバッファ処理して出力するバッフ
ァ回路の構成を備えていてもよい。
【0030】図2は、この発明の実施の形態1に従う並
列演算処理装置に含まれる演算ユニットの構成をより詳
細に示す図である。図2において、演算ユニット♯Hの
レジスタ群21は、一例として4つのレジスタ21a〜
21dを含む。書込マスク回路42は、これらのレジス
タ21a〜21dそれぞれに対応して設けられ、それぞ
れの第1の入力に対応のレジスタに対するクロック信号
45a〜45dを受け、第2の入力にマスクレジスタ4
1に格納されたマスクデータを受けるAND回路46a
〜46dを含む。制御クロック信号45a〜45dは、
図1に示すコントローラ40から発生され、データ書込
を行なうレジスタに対する制御クロック信号が活性状態
となり、レジスタ21a〜21dの各々は、与えられる
制御クロック信号が活性状態のとき与えられたデータを
格納する。
【0031】マスクレジスタ41に格納されたマスクデ
ータが、この書込マスク回路42に含まれるマスク制御
用AND回路46a〜46dに共通に与えられる。マス
クレジスタ41に格納されたマスクデータが、Lレベル
にあり、データ書込を禁止することを示すときには、A
ND回路46a〜46dの出力する制御クロック信号は
すべてLレベルの非活性状態となり、レジスタ群21に
含まれるレジスタ21a〜21dに対するデータ書込は
行なわれない。
【0032】バイパス用セレクタ43は、内部入力ポー
ト23に結合される入力Aとレジスタ群21に結合され
る入力Bとを有し、マスクレジスタ41に格納されたマ
スクデータに従って、この入力AおよびBの一方を内部
出力ポート24に結合する。このレジスタ群21から延
びてバイパス用セレクタ43の入力Bに結合する内部バ
スは、レジスタ群21に含まれるレジスタ21a〜21
dに共通に結合され、これらのレジスタ21a〜21d
から与えられたデータを伝達する。
【0033】マスクレジスタ41に格納されたマスクデ
ータがLレベルにあり、データ書込をマスクするときに
は、このバイパス用セレクタ43は、入力Aを選択して
内部出力ポート24に結合する。この状態においては、
内部入力ポート23が内部出力ポート24に結合され
る。
【0034】図3(A)および(B)は、1つの演算ユ
ニット♯Hにおけるマスクデータと内部データバスの接
続との対応関係を概略的に示す図である。
【0035】図3(A)に示すように、マスクレジスタ
41に格納されたマスクデータがLレベルにあり、書込
マスクを指示するときには、内部入力ポート23は、内
部出力ポート24に結合される。内部出力ポート24
は、レジスタ群21および演算器群22から切り離され
る。また、レジスタ群21へのデータの書込は、このマ
スクレジスタ41に格納されたLレベルのマスクデータ
により禁止される。したがって、この演算ユニット♯H
においては、レジスタ群21への、演算器群22の演算
結果の格納および伝達されたデータの格納は禁止される
ため、並列演算処理装置においてこの演算ユニット♯H
は、この並列演算処理装置から等価的に取除かれたこと
になる(演算ユニット♯Hは、状態更新を行なわずマス
ク前の状態を維持する)。
【0036】一方、図3(B)に示すように、マスクレ
ジスタ41に格納されたマスクデータがHレベルであ
り、書込マスクを指示していない場合においては、内部
入力ポート23はレジスタ群21および演算器群22に
結合され、またレジスタ群21は、内部出力ポート24
に結合される。内部入力ポート23は内部出力ポート2
4から切り離される。内部入力ポート23に伝達された
データの伝達先は、図1に示すコントローラ40により
決定される。またレジスタ群21に含まれるレジスタと
演算器群22に含まれる演算器との結合も、図1に示す
コントローラ40により決定される。
【0037】この図3(B)に示す状態においては、演
算器群22は、与えられた命令に従ってコントローラ4
0の制御の下に演算を行ない、その処理結果がレジスタ
群21に含まれるレジスタに格納され、データ転送時こ
のレジスタ群21に含まれるレジスタに格納されたデー
タが内部出力ポート24に伝達される。したがって、こ
の図3(B)に示す状態においては、演算ユニット♯H
は、並列演算処理装置内において、割当てられた処理を
実行する。
【0038】図2に示すように、書込マスク回路42に
より、レジスタ群21のレジスタ21a〜21dに対す
るデータ書込を一括して制御することにより、演算ユニ
ットの動作を、このマスクレジスタ41に格納されたマ
スクデータで修飾し、複数の演算ユニットのうち特定の
演算ユニットのみを動作させることが可能となる。言い
換えると、マスクレジスタ41に格納されたマスクデー
タがLレベルであり、書込マスク状態を指示していると
きには、内部入力ポート23に与えられたデータが演算
処理されることなく、内部出力ポート24へバイパスさ
れる。
【0039】図4(A)は、並列演算処理装置における
マスクデータによるデータ伝搬経路設定の一例を示す図
である。図4(A)において、並列演算処理装置1は、
8個の演算ユニット♯0〜♯7を含む。演算ユニット♯
0、♯2、♯4および♯6においては、マスクデータが
Hレベルに設定され、レジスタ群21へのデータ書込は
許可される。一方、演算ユニット♯1、♯3、♯5およ
び♯7においては、マスクデータがLレベルに設定さ
れ、書込マスク指示状態に設定され、レジスタ群21に
対するデータの書込が禁止される。
【0040】このマスクデータの値に従って、演算ユニ
ット♯0〜♯7それぞれにおいて、バイパス用セレクタ
43の接続形態が決定される。演算ユニット♯0、♯
2、♯4および♯6においては、バイパス用セレクタ4
3は、レジスタ群21を対応の内部出力ポート24に結
合し、内部入力ポートは、内部出力ポートから切り離さ
れる。一方、演算ユニット♯1、♯3、♯5および♯7
においては、バイパス用セレクタ43は、内部入力ポー
ト23を内部出力ポート24に結合する。これらの演算
ユニット♯1、♯3、♯5および♯7においては、内部
出力ポート24は、レジスタ群21から切り離される。
【0041】図4(B)は、図4(A)に示す並列演算
処理装置の等価的構成を概略的に示す図である。演算ユ
ニット♯1、♯3、♯5および♯7においては、内部入
力ポート23に与えられたデータは、そのまま、内部で
論理演算処理されずに、内部出力ポート24へ伝達され
る。これらの演算ユニット♯1、♯3、♯5および♯7
は、データ伝達時においてバイパスされる。したがっ
て、図4(B)に示すように、環状通信路32において
演算ユニット♯1、♯3、♯5および♯7がバイパスさ
れ、この並列演算処理装置1は、演算ユニット♯0、♯
2、♯4および♯6を含む並列演算処理装置と等価な構
成となる。
【0042】このマスクレジスタ41に格納されるマス
クデータの値に従って、実際に演算処理を行なう演算ユ
ニットの数を増減することができる。すなわち、あるS
IMD並列プロセッサに対して作成されたプログラム
を、より多くの演算ユニットを含む別のSIMD並列演
算処理ユニットで再利用することができる。すなわち、
多くの演算ユニットを含むSIMD並列演算処理装置に
おいて、プログラムが想定している演算ユニットの数だ
けマスクレジスタに書込許可を示す“H”のマスクデー
タを書込むことにより、そのプログラムが想定する個数
の演算ユニットで構成されるSIMD並列演算処理装置
を実現できる。
【0043】一般に、プロセス技術の進展に伴って、単
一システム(半導体チップ)上に搭載することのできる
演算ユニットの数は増加する傾向にある。したがって、
マスクレジスタの内容の書換だけでプログラムを再利用
することのできる性質は、資産継承の面からも特に重要
な利点を与える。
【0044】また、このマスクデータにより、演算ユニ
ットをバイパスする構成を用いることにより、以下に説
明するように、分散配置されたデータの縮約(リダクシ
ョン)演算の性能を改善することができる。
【0045】図5に、従来のバイパス機能を有しない8
個の演算ユニット♯0〜♯7が環状通信路32を介して
相互接続される構成を比較のために示す。演算ユニット
♯0〜♯7それぞれにおいては、以下の演算が行なわれ
る。演算器群22に含まれる加算器52により、レジス
タvに格納されたデータとレジスタrに格納されたデー
タの加算を行ない、その加算結果が再びレジスタrに格
納される。レジスタvおよびrは、先の図30に示すレ
ジスタ群21に含まれる。従来の構成において、演算ユ
ニット♯0〜♯7それぞれにおいて、レジスタvは、内
部入力ポート23に結合され、また内部出力ポート24
にも結合される。
【0046】演算ユニット♯0〜♯7それぞれにおいて
は、ベクトルVの要素v[0]〜v[7]がそれぞれレ
ジスタvに格納される。次に、この図5(A)に示す並
列演算処理装置における縮約演算ベクトル要素の総和を
求める演算について、図5(B)および図6を参照して
説明する。
【0047】クロック信号CLKのクロックサイクル0
の初期状態においては、先に説明したように、演算ユニ
ット♯0〜♯7のレジスタv(演算ユニットiのレジス
タvをv[♯i]で示す)においては、ベクトル要素v
[0]〜v[7]が格納される。この状態において、レ
ジスタrは加算前であり、“0”が格納される。
【0048】クロックサイクル1において、演算ユニッ
ト♯0〜♯7それぞれにおいてレジスタvに格納された
データv[0]〜v[7]が、環状通信路32において
後段の隣接する演算ユニットに転送される。したがっ
て、クロックサイクル1においては、演算ユニット♯0
〜♯7のレジスタv[♯0]〜v[♯7]においては、
データv[1]〜v[7]およびv[0]それぞれが格
納される。このクロックサイクル1において、このデー
タ転送前に、加算器52が、レジスタvおよびrに格納
されたデータの加算を行ない、その加算結果をレジスタ
rに格納する。したがって、演算ユニット♯0〜♯7の
レジスタr[♯0]〜r[♯7]においては、図6に示
すようにそれぞれレジスタv[♯0]〜v[♯7]に格
納されたデータv[0]〜v[7]が格納される。
【0049】クロックサイクル2において、再び、加算
器52により、レジスタvに格納されたデータとレジス
タrに格納されたデータの加算が行なわれ、その加算結
果がレジスタrに格納され、またレジスタvに格納され
たデータが次段の演算ユニットに転送される。したがっ
てクロックサイクル2においては、図6に示すように演
算ユニット♯0〜♯7それぞれにおいては、2つのベク
トル要素の加算値がレジスタrに格納される。
【0050】1クロックサイクルにおいて、次段の演算
ユニットへのデータ転送および加算操作が行なわれるた
め、クロックサイクル3、4、5、6、7および8それ
ぞれにおいて、演算データ転送が行なわれ、クロックサ
イクル8では演算ユニット♯0〜♯7において、図6に
示すようにベクトルVの要素v[0]〜v[7]の総和
値がレジスタr[♯0]〜r[♯7]にそれぞれ格納さ
れる。レジスタv[♯0]〜v[♯7]においては、図
5(B)に示すようにそれぞれ初期状態と同じデータが
格納される。
【0051】すなわち、8つの演算ユニット♯0〜♯7
に分散配置されたベクトル要素v[0]〜v[7]の総
和を求める縮約演算においては、1クロックサイクル
で、単に次段の演算ユニットのデータ転送のみが行なわ
れるため、8項の総和演算を行なうために、演算ユニッ
ト♯0〜♯7を介して順次データを転送させる必要があ
るため、最低8クロックサイクルが必要とされる。
【0052】また、図6に示すように、演算ユニット♯
0〜♯7のレジスタr[♯0]〜r[♯7]において
は、クロックサイクル8においては、ベクトル要素v
[0]〜v[7]の総和値が格納されており、すべて同
じ値が格納されている。したがって、単に、ベクトル要
素v[0]〜v[7]の総和を求めるだけであれば、必
要以上の数の演算ユニットが動作して、同じ値を求める
演算を行なっており、演算効率が悪いという問題があ
る。
【0053】図7(A)−(C)は、この発明に従う並
列演算処理装置を用いて、この図5(A)および(B)
ならびに図6に示す縮約演算を行なう場合の動作を説明
するための図である。図7(A)および(B)において
は、初期状態の並列演算処理装置の状態が示される。
【0054】図7(A)に示すように、並列演算処理装
置は、8個の演算ユニット♯0〜♯7を含む。これらの
演算ユニット♯0〜♯7の各々は、レジスタr[♯0]
〜r[♯7]と、入力ポート23とレジスタrの出力に
結合されて、加算を行ない、加算結果をレジスタrに格
納する加算器52を含む。内部出力ポート24は、バイ
パス用セレクタ43を介してレジスタrおよび内部入力
ポート23に結合される。このバイパス用セレクタ43
の接続態様は、対応のマスクレジスタ41に格納された
マスクデータにより決定される。初期状態においては、
まず演算ユニット♯0〜♯7のレジスタr[♯0]〜r
[♯7]においては、ベクトル要素v[0]〜v[7]
が格納される。このデータの初期設定の動作において
は、単に内部入力ポートをレジスタrに接続し、このレ
ジスタrと加算器52とを切り離し、レジスタの記憶内
容を順次環状通信路32を介して演算ユニット間を伝達
させることにより、このデータの初期設定が行なわれれ
ばよい。マスクレジスタ41に格納されたマスクデータ
は、すべて“H”の状態に設定され、バイパス用セレク
タ43は、内部出力ポート24をレジスタrに結合し、
内部入力ポート23は、対応の内部出力ポート24から
切り離される。
【0055】今、図7(C)に示すように、クロック信
号CLKの半サイクルにおいて演算ユニット間でのデー
タ転送が行なわれ、クロック信号CLKの残りの半周期
で加算器52による加算操作および対応のレジスタrへ
の加算結果の格納が行なわれるとする。
【0056】図7(A)に示す状態で、データ転送を行
ない、加算およびラッチを行なうと、図8(B)に示す
ように、演算ユニット♯0〜♯7のレジスタr[♯0]
〜r[♯7]においてそれぞれ2項データの加算値が格
納される。このレジスタrへのデータのラッチ後、マス
クレジスタ41のマスクデータを変更する。すなわち、
図8(A)に示すように、演算ユニット♯1、♯3、♯
5および♯7のマスクデータをLレベルに設定し、レジ
スタ書込禁止状態とし、かつ内部入力ポート23を対応
の内部出力ポート24に結合する。したがって、この状
態においては、次のクロックサイクル2において、デー
タ転送が行なわれるとき、演算ユニット♯1、♯3、♯
5および♯7はバイパスされる。
【0057】クロックサイクル2においては、図8
(A)に示す状態においてデータ転送が行なわれる。す
なわち、演算ユニット♯1、♯3、♯5および♯7はバ
イパスされ、またこれらの演算ユニットにおけるレジス
タrへの書込も禁止される。したがって、演算ユニット
♯6、♯4、♯2および♯0の4つの演算ユニットの間
でデータ転送が行なわれ、加算が行なわれた後、レジス
タrに格納される。したがって、図9(B)に示すよう
に、演算ユニット♯0、♯2、♯4および♯6のレジス
タrにおいて、4項のデータの加算値が格納され、演算
ユニット♯1、♯3、♯5および♯7のレジスタrの内
容は変化しない。このクロックサイクル2の終了時にお
いて、マスクデータがまた更新され、演算ユニット♯0
および♯4のマスクデータのみがHレベルに設定され、
残りの演算ユニット♯1、♯2、♯3、♯5、♯6およ
び♯7のマスクデータはLレベルに設定される。したが
って、図9(A)に示すように、この並列演算処理装置
は、演算ユニット♯0および♯4の2つの演算ユニット
で構成される並列演算処理装置と等価となる。
【0058】クロックサイクル3においては、図9
(A)に示す状態でデータ転送が行なわれる。この場合
においては、演算ユニット♯0および♯4の間でデータ
転送が行なわれて、加算操作が行なわれる。したがっ
て、クロックサイクル3において、演算ユニット♯0お
よび♯4のレジスタr[♯0]およびr[♯4]におい
ては、8項のベクトル要素の総和Σr[♯k]が格納さ
れる(図10(B)参照)。このクロックサイクル2終
了時において、図10(A)に示すように、再度マスク
データの更新が行なわれ、演算ユニット♯0のマスクデ
ータがHレベルとなり、残りの演算ユニット♯1〜♯7
のマスクデータがLレベルとなり、演算ユニット♯1〜
♯7はバイパス状態となり、また対応のレジスタrへの
書込が禁止される。この演算ユニット♯0のレジスタr
に格納されたデータを環状通信路32を介して図示しな
い制御部へ転送することにより、縮約演算結果を利用す
ることができる。
【0059】上述のように、マスクデータを“HHHH
HHHH”→“LHLHLHLH”→“LLLHLLL
H”と変化させながら各クロックサイクルにおいて加算
および加算結果のレジスタへの格納を実行すると、各ベ
クトル要素の2要素間の和→4要素間の和→8要素間の
和が各クロックサイクルで演算され、合計3クロックサ
イクルで演算を完了することができる。
【0060】図11は、従来の並列演算処理装置と本発
明に従う並列演算処理装置の縮約演算に要するクロック
サイクル数を示す図である。横軸にベクトル要素数を示
し、縦軸にクロックサイクル数を示す。従来の並列演算
処理装置においては、1クロックサイクルにおいては、
隣接演算ユニット間でのみデータ転送が行なわれてお
り、したがってベクトルの要素数Nと同じクロックサイ
クルが少なくとも必要とされ、ベクトルの要素数Nの増
加に従って縮約演算に要するクロックサイクル数もそれ
に比例して増加する。
【0061】一方、本発明の並列演算処理装置において
は、一度に演算される要素数は、クロックサイクルごと
に2倍ずつ増加する。したがって、縮約演算に必要とさ
れるクロックサイクル数は、log2 Nに比例するクロ
ックサイクル数となり、図11に明らかに見られるよう
に、ベクトルの要素数Nが増加しても、縮約演算に要す
るクロックサイクル数は、それほど増加しない。したが
って、このマスクデータを演算処理の進行に応じて更新
することにより、縮約演算に要するクロックサイクル数
を低減でき、特に、その効果はベクトル要素数が増加す
るにつれて顕著となる。
【0062】以上のように、この発明の実施の形態1に
従えば、並列に動作する演算ユニットそれぞれにおいて
マスクレジスタを設け、マスクレジスタに格納されるマ
スクデータに従って対応の演算ユニットを選択的にバイ
パスするように構成しているため、所望の数の演算ユニ
ットを含む並列演算処理装置を実現することができ、過
去の小規模の並列演算処理装置に対して作成されたプロ
グラムを再利用することができる。また、マスクデータ
を、演算処理の進行に応じて更新することにより、各ク
ロックサイクルごとに、縮約される項の数が2倍ずつ増
加し、大幅に、縮約演算に要するクロックサイクル数を
低減することができる。
【0063】なお、マスクレジスタに格納されるマスク
データの更新は、外部に設けられた制御部からの制御信
号に従って行なわれればよい。外部の制御部の制御の下
に、必要な数の演算ユニットを含む並列演算処理装置を
実現することができるとともに、演算処理の進行に応じ
てバイパスされる演算ユニットの数を最適に調整するこ
とができる。
【0064】また、図1において、破線矢印で示すよう
に、マスクレジスタ41のマスクデータに従って、コン
トローラ(シーケンスコントローラ)40がこの演算ユ
ニット内の演算器群による演算処理を停止させるように
構成されてもよい。この場合、不必要な電力消費が削減
される。
【0065】[実施の形態2]図12は、この発明の実
施の形態2に従う並列演算処理装置の要部の構成を概略
的に示す図である。図12においては、1つの演算ユニ
ット♯Hの構成を概略的に示す。図12において、演算
ユニット♯Hは、マスクデータの更新シーケンスを決定
する初期値を発生する初期値発生器53と、初期値発生
器53からの初期値とクロック信号CLKとに従って、
マスクレジスタ41に格納されるマスクデータを更新す
るマスクデータ更新回路55を含む。他の構成は、図1
に示す演算ユニット♯0〜♯N−1それぞれの構成と同
じであり、対応する部分には同一参照番号を付し、その
詳細説明は省略する。
【0066】この図12に示す演算ユニット♯Hにおい
ては、演算ユニット内部に、マスクレジスタ41に格納
されたマスクデータを更新するためのマスクデータ更新
回路55が設けられており、縮約演算に必要なマスクレ
ジスタの書換を効率的に演算処理の進行に応じて実現す
ることができる。
【0067】初期値発生器53は、レジスタまたは配線
で構成され、この演算ユニット♯Hの演算器番号を特定
するデータを初期値として発生する。縮約演算において
は、先に図8から10に示したように、最初に奇数番号
の演算ユニットがバイパス状態とされ、次いで偶数番号
の演算ユニットのうちの2つの演算ユニットがバイパス
状態とされる。したがって、この演算ユニット♯Hの割
当てられた演算ユニット特定番号を初期値として発生す
ることにより、各クロックサイクルにおいて、その演算
ユニット番号データに基づいて対応の演算ユニットを♯
Hを正確にバイパス状態に設定することができる。
【0068】図13は、図12に示すマスクレジスタお
よびマスクデータ更新回路の構成の一例を示す図であ
る。図13において、マスクデータ更新回路55は、演
算ユニット番号データ64に含まれる3ビットの信号S
0(0)、S1(0)、およびS2(0)を初期値とし
て、算術右シフト動作を行なうシフトレジスタの構成を
備える。シフトレジスタからは、3ビットの出力信号S
0(t)、S1(t)、およびS2(t)が出力され
る。このシフトレジスタからの出力信号のうち最下位ビ
ットの出力信号S0(t)がマスクレジスタ41のマス
クデータ更新用の制御信号として用いられる。
【0069】マスクデータ更新回路55は、クロック入
力62(クロック信号CLK)に応答して、与えられた
信号を取込みラッチしてそれぞれ信号S2(t)、S1
(t)およびS0(t)を出力するラッチ回路55a、
55bおよび55cと、マスクデータ更新回路55に初
期値を設定する動作を指示する初期化信号63を受ける
インバータ55dと、初期化信号63の活性状態(Hレ
ベル)のとき信号S2(0)を通過させてラッチ回路5
5aへ与えるANDゲート55eと、初期化信号63の
活性状態のとき、初期値発生器53からの信号S1
(0)を通過させ、初期化信号63の非活性状態(Lレ
ベル)のとき、ラッチ回路55aの出力信号S2(t)
を通過させて、それぞれ通過させた信号をラッチ回路5
5bへ与えるAND/OR複合ゲート55fと、初期化
信号63の活性化時、信号S0(0)を通過させかつ初
期化信号63の非活性化時ラッチ回路55bの出力信号
S1(t)を通過させ、これら通過させた信号をラッチ
回路55cへ与えるAND/OR複合ゲート55gを含
む。クロック入力62(CLK)は、この演算ユニット
における演算サイクルを規定する信号であり、また初期
化信号63は、たとえば図示しない外部に設けられた制
御ユニットから各演算ユニットに共通に与えられる信号
であり、演算動作開始前の初期化シーケンスにおいて、
各演算ユニットにおいて初期化信号63が活性化され
て、演算部番号データ64(信号S0(0)、S1
(0)、およびS2(0)をラッチ回路55a〜55c
にそれぞれラッチさせる信号である。命令ブロードキャ
ストバス30を介して初期化命令が与えられ、演算ユニ
ットそれぞれにおいて、コントローラ(40)の制御の
下に初期化信号が活性化されてもよい。
【0070】マスクレジスタ41は、クロック入力62
に応答して、与えられた信号を取込みかつラッチしてマ
スク指示信号M(t)を出力するラッチ回路41aと、
ラッチ回路41aの出力信号M(t)とマスクデータ更
新回路55からの出力信号S0(t)をインバータ(N
OTゲート)65を介して受けるANDゲート41b
と、ANDゲート41bの出力信号と初期化信号63を
受けるORゲート41cを含む。ORゲート41cの出
力信号がラッチ回路41aの入力に与えられる。このA
NDゲート41bおよびORゲート41cは、複合ゲー
トで構成されてもよい。
【0071】演算ユニット番号データ64は、並列演算
処理装置内における環状通信路による相互接続時、その
位置が決定され、それぞれの演算ユニットに対し一意的
に演算ユニットの番号が決定される。この演算ユニット
番号を示すデータ64が、初期値発生器53から発生さ
れる。この発生態様については後に簡単に説明する。次
に、この図13に示すマスクデータ更新回路55および
マスクレジスタ41の動作について簡単に説明する。
【0072】マスクデータの初期設定時においては、初
期化信号63がHレベルの活性状態に設定され、インバ
ータ55dの出力信号がLレベルとなる。この状態にお
いては、ANDゲート55e、AND/OR複合ゲート
55f、およびAND/OR複合ゲート55gは、演算
ユニット番号データ64に含まれる信号S2(0)、S
1(0)およびS0(0)をそれぞれ、対応のラッチ回
路55a、55bおよび55cへ与える状態となる。一
方、マスクレジスタ41においては、ORゲート41c
の出力信号がHレベルとなる。この状態において、クロ
ック入力62(CLK)を与えると、ラッチ回路55a
〜55cには、信号S2(0)、S1(0)、およびS
0(0)が格納され、一方、ラッチ回路41aには、H
レベルの信号がラッチされる。したがって、マスク指示
信号(マスクデータ)M(t)が、Hレベルの書込許可
状態に設定される。
【0073】次いで、演算動作サイクル開始時において
初期化信号63をLレベルに設定して、インバータ55
dの出力信号をHレベルに設定する。この状態において
は、ANDゲート55eの出力信号はLレベルに固定さ
れ、一方、AND/OR複合ゲート55fおよび55g
は、上位側のラッチ回路55aおよび55bの出力信号
S2(t)、およびS1(t)を対応のラッチ回路55
bおよび55cへ与える。したがって、このマスクデー
タ更新回路55は、クロック入力62(CLK)に従っ
て、算術右シフト動作を行なう。このマスクデータ更新
回路55の1ビット右シフトによりラッチ回路55cか
ら溢れ出た信号は、NOTゲート(インバータ)65で
反転されてマスクレジスタ41へ与えられる。
【0074】ANDゲート41bは、ラッチ回路41a
の出力するマスク指示信号(マスクデータ)M(t)と
インバータ65の出力信号とを受けている。したがっ
て、マスクデータ(マスク指示信号)M(t)がHレベ
ルの間、ラッチ回路41aは、このマスクデータ更新回
路55からのシフト動作により溢れ出た信号の反転信号
をラッチする。すなわち、前のサイクルのマスクデータ
(マスク指示信号)M(t)がHレベルの場合のときに
限り、マスクレジスタ41には、マスクデータ更新回路
55におけるシフト動作により溢れ出た信号の反転値が
セットされる。この動作を繰返すことにより、マスクデ
ータ更新回路55の最下位ビットの信号が初めてHレベ
ルの信号となるまで、マスクレジスタ41からのマスク
データ(マスク指示信号)M(t)をHレベルに保持す
ることができる。マスクレジスタ41は、一旦そのマス
クデータM(t)がLレベルに設定されると、以降のサ
イクルにおいては、マスクデータ更新回路55からの出
力信号の論理にかかわらず、マスク指示信号(マスクデ
ータ)はLレベルに保持される。したがって、一旦バイ
パス状態に設定されると、以降バイパス状態を保持す
る。
【0075】図14は、8個の演算ユニットが設けられ
た並列演算処理装置におけるシフトレジスタ出力S2
(t)、S1(t)、およびS0(t)の時間変化を一
覧にして示す図である。この図14に示すように、演算
ユニット♯0〜♯7それぞれにおいて、算術右シフト動
作が行なわれ、最下位ビットS0(t)がHレベルから
Lレベルになるサイクルが、各演算ユニットの番号に応
じて変化するのが理解される。最下位ビットの信号S0
(t)がHレベルとなると次のサイクルにおいて、マス
クデータがLレベルに非活性化される。ここで、演算ユ
ニットの番号は、それぞれ2進数で表わされている。
【0076】図15は、8個の演算ユニットが設けられ
た場合の、各演算ユニットにおけるマスクデータM
(t)の時間変化を一覧にして示す図である。図14と
の対比から明らかなように、演算ユニット♯0〜♯7そ
れぞれにおいてシフトレジスタ出力のうちの最下位ビッ
トの信号S0(t)がHレベルとなると、次のサイクル
においてマスクデータM(t)がLレベルに設定されて
いる。この図15の各演算ユニットのマスクデータM
(t)を、各クロックサイクルごとに見ると、先の実施
の形態1において説明した縮約演算時における演算ユニ
ットのバイパス状態が実現されるのが理解される。縮約
演算の終了条件は、マスクデータM(t)の出力の組合
せが、図15のクロックサイクル3における状態、すな
わち“LLLLLLLH”となる時点を求めることによ
り、検出することができる。
【0077】このマスクデータのマスクデータ更新回路
による更新処理では、演算ユニットが、2項演算、4項
演算、8項演算、…を行なうため、まず、1つおきの演
算ユニットをバイパス状態に設定し、次いで4つごとの
演算ユニットをバイパス状態に設定し、次いで8つごと
の演算ユニットをバイパス状態に設定する。このバイパ
ス状態設定シーケンスは以下のようにして実現される。
演算ユニットの番号を“0”から始める。まず、すべて
の演算ユニットを用いて演算を行ない、次いで、偶数番
号の演算ユニットを用いて演算を行なう。次いで4の倍
数の番号を持つ演算ユニットを用いて演算を行ない、次
いで8の倍数の番号を有する演算ユニットを用いて演算
をする。
【0078】すなわち、算術右シフト操作を行なって、
各演算ユニット番号を各クロックサイクルごとに2で除
算し、その除算の余りが1になった場合には、次のクロ
ックサイクルにおいて対応の演算ユニットをバイパス状
態に設定することにより実現される。したがって、この
マスクデータの変更シーケンスは、N項の縮約演算をN
個の演算ユニットを用いて実行する場合、Nが2のべき
乗で表わされる整数であるという条件を満たす限り、容
易に拡張することができる。
【0079】図16は、マスクデータ更新回路の拡張例
の構成を示す図である。図16においては、16個の演
算ユニットを含む並列演算処理装置におけるマスクデー
タ変更回路の構成を示す。図16において、マスクデー
タ更新回路55は、4ビットの演算器ユニット番号デー
タS3(0)〜S0(0)を受けるため、図13に示す
構成に加えて、さらに、AND/OR複合ゲート55i
と、このAND/OR複合ゲート55iの出力信号をラ
ッチするラッチ回路55hを含む。ANDゲート55e
に最上位の演算ユニット番号データS3(0)が与えら
れる。AND/OR複合ゲート55fは、初期化時に
は、演算ユニット番号データ信号S2(0)を通過さ
せ、かつ演算サイクル時には、ラッチ回路55aの出力
信号S3(t)を通過させる。AND/OR複合ゲート
55gは、初期化時には、番号データ信号S1(0)を
通過させ、演算サイクル時には、ラッチ回路55bの出
力信号を通過させる。AND/OR複合ゲート55i
は、初期化時には、番号データ信号S0(0)を通過さ
せ、演算サイクル時には、ラッチ回路55cの出力信号
を通過させる。ラッチ回路55hの出力信号S0(t)
は、インバータ(NOTゲート)65を介してマスクレ
ジスタ41へ与えられる。マスクレジスタ41の構成
は、図13に示す構成と同じである。
【0080】この図16に示すマスクデータ更新回路5
5の構成は、単に図13に示す3ビットマスクデータ更
新回路の構成が、4ビットマスクデータを変更するため
の構成に拡張されているだけである。この図16に示す
マスクデータ更新回路55においても、算術右シフト操
作が行なわれ、シフトレジスタ出力の最下位ビットの信
号S0(t)がHレベルとなると、次のクロックサイク
ルにおいてマスクレジスタ41から出力されるマスクデ
ータM(t)がLレベルのマスク指示状態に設定され
る。
【0081】図17(A)は、各演算ユニットにおける
シフトレジスタの出力信号S3(t)、S2(t)、S
1(t)、およびS0(t)の時間変化を一覧にして示
す図であり、図17(B)は、各演算ユニットのマスク
レジスタの出力(マスクデータ)M(t)の時間変化を
一覧にして示す図である。
【0082】この図17(A)および(B)に示すよう
に、演算ユニット♯0〜♯15それぞれにおいて、シフ
トレジスタ出力の最下位ビットの信号S0(t)がHレ
ベルのときには、次のクロックサイクルにおいてマスク
レジスタからのマスクデータM(t)がLレベルに設定
されてバイパス状態に対応の演算ユニットが設定され
る。すなわち、クロックサイクル0において、初期状態
にあり、すべての演算ユニットが演算状態に設定され
る。クロックサイクル1において、1つおきの演算ユニ
ットがバイパス状態とされ、2項加算操作が行なわれ
る。
【0083】次いで、クロックサイクル2において、4
つごとの演算ユニット(番号が4で割り切れる演算ユニ
ット)が演算可能状態とされ、残りの演算ユニットがす
べてバイパス状態に設定される。クロックサイクル3に
おいて、8で除算することのできる番号を有する演算ユ
ニットが演算可能状態に設定され、残りの演算ユニット
はバイパス状態に設定され、クロックサイクル4におい
て、演算ユニット♯0のみが演算可能状態に設定され
る。
【0084】したがって、16項の要素を含むベクトル
の縮約演算は、合計4クロックサイクルで完了すること
ができる。したがって、従来のように、バイパス機能が
なく、隣接演算ユニット間でのみデータの転送が行なわ
れるときに必要となる16クロックサイクルよりも大幅
に、演算に要するクロックサイクル数を低減することが
できる。
【0085】なお、このマスクデータ更新回路を用いれ
ば、単にシフトレジスタのワード長を変更することによ
り、2n 個の項数を有するベクトルの縮約演算を高速で
行なうことができる。
【0086】図18は、図12に示す初期値発生器53
の構成の一例を示す図である。図18において、この初
期値発生器53は、電源電圧VCCを伝達する電源線5
3aと、接地電圧GNDを伝達する接地線53bと、電
源線53aまたは接地線53bに対しマスク配線53
c、53dおよび53eにより接続される信号線SG
0、SG1およびSG2を含む。並列演算処理装置が形
成される場合、半導体チップ上に配列される演算ユニッ
トは環状通信路を介して相互接続され、その配設位置は
一意的に定められる。この環状通信路における演算ユニ
ットの位置に応じて、各演算ユニット番号を割当てる。
この割当てられた番号をマスク配線53a、53cによ
りプログラム(配線接続)する。半導体チップ上に形成
された並列演算処理装置においては、固定的に各演算ユ
ニットの番号が設定される。
【0087】図19は、この初期値発生器の他の構成を
示す図である。図19において、初期値発生器53は、
内部入力ポート23から与えられる演算ユニット特定用
の番号データを格納するレジスタ53gを含む。並列演
算処理装置のたとえば電源投入後の初期化シーケンスに
おいてレジスタ53gに、外部の制御部の制御の下に、
演算ユニット特定用の番号が設定される。この場合、演
算ユニットそれぞれにおいて、このレジスタ53gを、
内部入力ポート23と、図示しない内部出力ポート24
とに接続し、レジスタ間のデータ転送路を形成し、各演
算ユニット内に対応の演算ユニット番号が格納されたと
きに、このレジスタ53gを、入出力ポートから切り離
す設定シーケンスが用いられてもよい。
【0088】図19に示すようなレジスタ53gを演算
ユニット番号データ発生器として利用することにより、
並列演算処理装置が構築するシステムに応じて、柔軟に
各演算ユニットに番号を割当てることができる。
【0089】[変更例]図20は、この発明の実施の形
態2に従う並列演算処理装置の変更例の構成を示す図で
ある。図20において、1つの演算ユニット♯Hにおけ
る部分の構成を示す。図20においては、外部に設けら
れたコントローラから与えられるマスクデータMDを格
納するマスクレジスタ41♯Aと、マスクデータ更新回
路55の制御の下に、その格納されたマスクデータが更
新されるマスクレジスタ41♯Bと、外部の制御部から
のモード設定信号φCに従ってマスクレジスタ41♯A
および41♯Bの一方を選択するセレクタ59とが設け
られる。このセレクタ59からのマスクデータMが、バ
イパス用セレクタおよび書込マスク回路へ与えられる。
【0090】モード設定信号φCおよびマスクデータM
Dの制御の下に、並列演算処理装置の規模の更新を行な
い、演算処理を行なう。この場合に、過去のプログラム
を再利用する。縮約演算を行なう場合、マスクレジスタ
41♯Bに格納されたマスクデータに従ってこの演算ユ
ニット♯Hの動作態様が決定される。
【0091】この図20に示す構成の場合、マスクデー
タ更新回路55に、図19に示すレジスタ53gからの
初期値を与えることにより、並列演算処理装置の規模に
応じて各演算ユニットの番号を特定することができ、そ
の変更された並列演算処理装置において縮約演算を効率
的に実行することができる。
【0092】以上のように、この発明の実施の形態2に
従えば、演算ユニット内において演算処理の進行に応じ
て、そのマスクデータを更新するように構成したため、
正確にかつ演算処理内容に応じてマスクデータの値を設
定することができ、縮約演算の高速化を容易に実現する
ことができる。
【0093】特に、このマスクデータの初期値として、
演算ユニットを特定する番号(2進数表示)を用い、こ
れを算術右シフト演算することにより、縮約演算におい
て、2項加算、4項加算、8項加算、…を順次行なう構
成を実現することができる。
【0094】[実施の形態3]図21は、この発明の実
施の形態3に従う並列演算処理装置の全体の構成を概略
的に示す図である。図21においては、この並列演算処
理装置は、半導体チップ(VLSIチップ)70Aおよ
び70Bを含む。これらの半導体チップ70Aおよび7
0Bそれぞれには、同一の構成を有する演算ユニット♯
0〜♯N−1が配置される。演算ユニット♯0〜♯N−
1の構成は、先の実施の形態1または2において説明し
たものと同じであり、レジスタ群21、演算器群22、
マスクレジスタ41、書込マスク回路42、およびバイ
パス用レジスタ43を含む。
【0095】半導体チップ70Aおよび70Bそれぞれ
には、チップ外部とデータの入出力を行なうための入力
端子73および出力端子74が設けられる。VLSIチ
ップ70Aおよび70Bそれぞれにおいては、環状通信
路32に、演算ユニット♯0の内部出力ポート24の出
力と、外部からのデータを受ける入力端子73からの信
号の一方を選択するセレクタ72が配置される。このセ
レクタ72は、VLSIチップ70Aおよび70Bの接
続時、特定のピン端子を特定の電圧レベルに設定するこ
とにより、その選択態様が決定される構成が用いられて
もよい。
【0096】VLSIチップ70Aおよび70Bそれぞ
れにおいて、さらに、演算ユニット♯0〜♯N−1に含
まれるマスクレジスタ41からのマスクデータを並列に
受けるNORゲート75と、NORゲート75の出力信
号に従って演算ユニット♯0の内部出力ポート24と入
力端子73の一方を選択して出力端子74に結合するセ
レクタ76が設けられる。VLSIチップ70Bの出力
端子74は、配線77aを介してVLSIチップ70A
の入力端子73に結合され、VLSIチップ70Aの出
力端子74は、VLSIチップ70Bの入力端子73に
接続される。
【0097】VLSIチップ70Aにおいて、演算ユニ
ット♯0〜♯N−1のマスクレジスタ41に格納された
マスクデータがすべてLレベルの状態に設定され、演算
ユニット♯0〜♯N−1がすべてバイパス状態が設定さ
れたときには、NORゲート75の出力信号がHレベル
となり、セレクタ76は、入力端子73を選択して出力
端子74へ結合する。この状態においては、VLSIチ
ップ70Aがバイパスされた状態となり、VLSIチッ
プ70Bで構成される並列演算処理装置が実現される。
【0098】NORゲート75の出力信号がLレベルで
あり、演算ユニット♯0〜♯N−1において少なくとも
1つが演算状態に設定される場合、セレクタ76は、演
算ユニット♯0の内部出力ポート24を選択して出力端
子74に結合する。セレクタ72は、VLSIチップ7
0Aおよび70B接続時においては、入力端子73を選
択して環状通信路32へ結合しており、したがってVL
SIチップ70Aの演算ユニット♯0〜♯N−1および
VLSIチップ70Bの演算ユニット♯0〜♯N−1に
より並列演算処理装置が構成される。
【0099】VLSIチップにおいて、外部とのデータ
の入出力を行なうための入力端子73および出力端子7
4を設け、環状通信路32において、演算ユニットのリ
ング状の接続を切断し、入力端子73をこの環状通信路
32に接続することにより、VLSIチップを複数個カ
スケード接続して、大規模の並列演算処理装置を実現す
ることができる。
【0100】また、1つのVLSIチップ上の演算ユニ
ット♯0〜♯N−1がすべてバイパス状態に設定された
場合、このVLSIチップをセレクタ76によりバイパ
スすることにより、縮約演算時において、データ転送を
演算ユニット♯0〜♯N−1を介することなく行なうこ
とができ、高速で、信号を伝搬させることができ、動作
周波数を向上させることができる。
【0101】図22に示すように、チップバイパス用セ
レクタが設けられていない4つのVLSIチップ70a
〜70dを相互接続して、32個の演算ユニットにより
並列演算処理装置を構成した場合を考える。チップ番号
♯♯0のVLSIチップ70aにおいて、演算ユニット
♯0のマスクレジスタ41に格納されたマスクデータが
Hレベルであり、残りの演算ユニット♯1〜♯7のマス
クデータはLレベルである。バイパス用セレクタ43に
より、これらの演算ユニット♯1〜♯7は、バイパス状
態に設定されており、入力端子73に与えられたデータ
が環状通信路32を介して、演算ユニット♯0へ伝達さ
れる。チップ番号♯♯1のVLSIチップ70bにおい
ては、演算ユニット♯0〜♯7のマスクレジスタに格納
されたマスクデータはすべてLレベルであり、演算ユニ
ット♯0〜♯7はすべてバイパス状態に設定される。し
たがって、このチップ番号♯♯1のVLSIチップ70
bにおいては、何ら演算は実行されず、演算ユニット♯
0〜♯7を介して、入力端子73に与えられたデータ
が、出力端子74に伝達される。
【0102】チップ番号♯♯2のVLSIチップ70c
においては、演算ユニット♯0のマスクレジスタ41の
みがHレベルのマスクデータを格納し、残りの演算ユニ
ット♯1〜♯7のマスクデータはすべてLレベルに設定
されて、これらの演算ユニット♯1〜♯7はバイパス状
態に設定される。
【0103】チップ番号♯♯3のVLSIチップ70d
においては、演算ユニット♯0〜♯7のマスクレジスタ
41に格納されたマスクデータはすべてLレベルに設定
され、これらの演算ユニット♯0〜♯7がすべてバイパ
ス状態に設定される。
【0104】この図22に示す構成においては、バイパ
ス状態に設定された演算ユニットを介してデータが伝達
され、データ伝送路が長くなり、また通過するセレクタ
の数も多く、高速でデータを伝達することができない。
【0105】図23は、チップバイパス用のセレクタを
設けたときの状態を概略的に示す図である。図23にお
いて、チップ番号♯♯0のVLSIチップ70aにおい
ては、演算ユニット♯0のマスクレジスタ41に格納さ
れたマスクデータがHレベルであり、したがってNOR
ゲート75の出力信号はLレベルであり、チップバイパ
ス用のセレクタ76は、演算ユニット♯0の出力信号を
選択して出力端子74に伝達する。
【0106】チップ番号♯♯1のVLSIチップ70b
においては、演算ユニット♯0〜♯7のマスクデータは
すべてLレベルであり、NORゲート75の出力信号は
Hレベルとなり、チップバイパス用のセレクタ76は、
このVLSIチップ70bの入力端子73を選択してそ
の出力端子70に結合する。この状態においては、演算
ユニット♯0〜♯7は、出力端子74から切り離され、
データ伝搬に何ら寄与しない。VLSIチップ70bに
おいて、データの伝搬経路は、入力端子73からチップ
バイパス用のセレクタ76までの経路であり、したがっ
て配線長が短くなり、高速でデータの伝達を行なうこと
ができる。
【0107】チップ番号♯♯2のVLSIチップ70c
においては、演算ユニット♯0のマスクデータがHレベ
ルであり、応じてNORゲート75の出力信号がLレベ
ルであり、チップバイパス用セレクタ76は、演算ユニ
ット♯0の出力信号を選択して出力端子74に伝達す
る。したがって、このチップVLSIチップ70cにお
いては、信号は入力端子73から環状通信路32、およ
び演算ユニット♯0〜♯7を介して伝達される。
【0108】チップ番号♯♯3のVLSIチップ70d
においては、演算ユニット♯0〜♯7のマスクデータは
すべてLレベルであり、NORゲート75の出力信号は
Hレベルとなり、チップバイパス用のセレクタ76は、
その入力端子73を選択して出力端子74に接続する。
したがって、演算ユニット♯0〜♯7は、その出力端子
74から切り離され、データ伝達には寄与しない。
【0109】この図23に示すように、チップバイパス
用セレクタをそれぞれ有するVLSIチップ70a〜7
0dを用いて並列演算処理装置を構成し、縮約演算を実
行した場合、マスクデータにより、VLSIチップ70
bおよび70dに含まれる演算ユニット♯0〜♯7がす
べてバイパス状態とされたとき、チップバイパス用のセ
レクタ76により、これらのVLSIチップ70bおよ
び70dをバイパスする状態に設定される。したがっ
て、信号伝搬経路が短くなり、高速でデータを伝達する
ことができる。すなわち、この図23に示す構成におい
ては、データは、32個の演算ユニットのうち、16個
の演算ユニットを介して伝達されるだけであり、16個
の演算ユニットのデータ伝達経路がバイパスされるた
め、高速でデータの伝達を行なうことができ、縮約演算
を高速で行なうことができ、応じて動作周波数を向上さ
せることができる。
【0110】以上のように、この発明の実施の形態3に
従えば、隣接演算ユニットを切り離し、外部からのデー
タの入力を可能とするとともに、チップ外部へ、その切
り離した演算ユニットからデータを出力することができ
るように構成したため、半導体チップを複数個縦続接続
することにより、容易に並列演算処理装置の規模を拡大
することができる。1つのVLSIチップ上に搭載する
ことのできる演算ユニットの数は、たとえば、グリフィ
ン等の「1100万トランジスタのニューラルネットワ
ーク実行エンジン」、ISSCC、ダイジェスト・オブ
・テクニカル・ペーパーズ、第180頁から第181
頁、1991年に述べられているように、十数個から数
十個にとどまっている。したがって、1つのVLSIチ
ップにより、より大規模なニューラルネットワークまた
は画像処理などに必要とされる数百個から数千個の演算
ユニットを相互接続した並列演算処理システムを実現す
るのは困難である。しかしながら、この複数のVLSI
チップを相互接続可能とすることにより、容易に必要と
される規模の並列演算処理システムを実現することがで
きる。
【0111】また、演算ユニット内に格納されたマスク
データより、1つのVLSIチップの演算ユニットがす
べてバイパス状態に設定されたときには、このチップ入
力端子をチップ出力端子に接続してチップをバイパスす
るように構成しているため、高速でデータ伝達を行なう
ことができ、縮約演算などの演算処理を高速で実行する
ことができる。
【0112】また、利用するプログラムに従って、この
並列演算処理装置の規模を低減する場合、VLSIチッ
プ単位で規模を低減する構成とすることにより、複数の
VLSIチップが縦続接続されている場合においても、
この低減された規模の並列演算処理装置とほぼ同じデー
タ伝達速度(動作速度)で動作させることができ、再利
用プログラムの実行速度の低下は抑制される。
【0113】[実施の形態4]図24は、この発明の実
施の形態4に従う並列演算処理装置の要部の構成を概略
的に示す図である。図24においては、1つの演算ユニ
ットに含まれるマスクデータ更新回路の構成を示す。図
24において、マスクデータ更新回路55は、5ビット
の演算ユニット番号64と5ビットのチップオフセット
値81とを加算して、5ビットの出力信号Y0〜Y4を
出力する加算器81と、この加算器81の出力信号Y0
〜Y4を初期値として算術右シフト動作をクロック入力
62(クロックCLK)に従って行なうシフトレジスタ
80を含む。このシフトレジスタ80の構成は、図13
に示すマスクデータ更新回路55の構成と同じであり、
単に、シフトレジスタのワード数が5ビットに増加して
いる点が異なるだけである。
【0114】このシフトレジスタ80の溢れ出た最下位
ビットのデータがインバータ(NOTゲート)を介して
マスクレジスタ41へ与えられて、マスクデータM
(t)が更新される。
【0115】演算ユニット番号64は、5ビットA0〜
A4で表現される。1チップに8個の演算ユニットが搭
載される場合、演算ユニット番号64は、信号S0
(0)、S1(0)およびS2(0)で表現され、残り
の上位ビットA3およびA4は、Lレベルに固定され
る。この演算ユニット番号64は、最大5ビットで表現
可能である(最大32個の演算ユニットが1チップに搭
載可能)。
【0116】チップオフセット値81は、チップ番号
(チップ番号♯♯kで示す際の番号“k”と1つのVL
SIチップに搭載される演算ユニットの数で表わされ
る。複数のVLSIチップがカスケード接続されるた
め、チップ番号♯♯0、♯♯1、♯♯2、…の順にVL
SIチップが接続されるとき、チップ番号♯♯kのチッ
プオフセット値はk・xで表わされる。ここで、“x”
は、1つのVLSIチップに搭載される演算ユニットの
数を示す。
【0117】このチップオフセット値81は、後に説明
するが、各演算ユニットにおいてレジスタに格納される
構成が用いられてもよく、また1つのチップにおいて複
数の演算ユニットに共通にチップオフセット値を格納す
るレジスタが設けられてもよい。いずれにおいても、チ
ップ外部に設けられた制御部からの制御の下に、このチ
ップオフセット値が格納される。
【0118】図25は、4つのVLSIチップ70a〜
70dにより並列演算処理システムを構築した場合の各
演算ユニットのシステム内位置番号Yとチップオフセッ
ト値を示す図である。VLSIチップ70a〜70dの
各々は、チップ番号♯♯0、♯♯1、♯♯2、および♯
♯3をそれぞれ有する。VLSIチップ70a〜70d
の各々には、8個の演算ユニット♯0〜♯7が配置され
る。したがって、これらのVLSIチップ70a〜70
dのそれぞれのチップオフセット値(O<4:0>)
は、0(LLLLL)、8(LHLLL)、16(HL
LLL)、および24(HHLLL)となる。演算ユニ
ットそれぞれは、チップオフセット値と対応のVLSI
チップ内における演算ユニット番号との加算値により特
定される。したがって、VLSIチップ70aにおいて
は、システム内番号Yが0〜7の演算ユニットが配置さ
れ、VLSIチップ70bには、システム内番号Yが8
から15の演算ユニットが配置され、VLSIチップ7
0cには、システム内番号Yが16から23の演算ユニ
ットが配置され、VLSIチップ70d上の演算ユニッ
ト♯0〜♯7には、システム内番号Yとして、24から
31がそれぞれ割当てられる。この図25に示す並列演
算処理システムにおいては、32個の演算ユニットが含
まれるため、32項の要素を含むベクトルの縮約演算を
以下に示すように高速で実行することができる。
【0119】図26(A)−(D)は、図25に示すV
LSIチップ70a−70dを用いたシステムにおける
各チップに含まれる演算ユニットのシフトレジスタ(マ
スクデータ更新回路)の出力の時間変化を示す図であ
る。図26(A)において、チップ番号♯♯0のVLS
Iチップ70aにおいては、チップオフセット値(O4
…O0)は、“0”であり、5ビットのデータ(LLL
LL)に設定される。図26(B)において、チップ番
号♯♯1のVLSIチップ70bにおいては、チップオ
フセット値が“8”であり、信号(O4…O0)が、
(LHLLL)に設定される。図26(C)において、
チップ番号♯♯2のVLSIチップ70cにおいては、
チップオフセット値が“16”であり、チップオフセッ
ト値(O4…O0)が、(HLLLL)に設定される。
図26(D)において、チップ番号♯♯3のVLSIチ
ップ70dにおいては、チップオフセット値が“24”
であり、チップオフセット番号(O4…O0)が、(H
HLLL)に設定される。
【0120】演算ユニットそれぞれにおいては、このマ
スクデータ更新のための初期値として、演算ユニット番
号とチップオフセット値との加算値が求められ、クロッ
クサイクル0において、各マスクデータ更新回路におい
て求められた初期値が設定される。各クロックサイクル
において、演算ユニットそれぞれにおいて、初期設定さ
れた値の算術右シフト操作が行なわれる。演算ユニット
番号の初期値の最大値が、チップ番号♯♯3のVLSI
チップ70dに含まれる演算ユニット♯7であり、その
初期値は(HHHHH)である。したがって、このシフ
トレジスタ(マスクデータ更新回路)の出力(S4
(t)…S0(t))は、最大5クロックサイクル経過
時に、(LLLLH)の状態に設定され、6クロックサ
イクル目においては、チップ番号♯♯0の演算ユニット
♯0を除いてすべてバイパス状態に設定される。
【0121】図27(A)−(D)は、図26(A)−
(D)に示すシフトレジスタ出力に対応するマスクデー
タの時間変化を示す図である。図27(A)−(D)
は、それぞれ、チップ番号♯♯0−♯♯3のVLSIチ
ップ70a−70dにおける各演算ユニットのマスクデ
ータの時間変化を示す。
【0122】この図27(A)−(D)に示すように、
クロックサイクル5において、32個の演算ユニットの
マスクデータの組合せが(LLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLH)となる。し
たがって、32項のベクトル要素の縮約演算に、5クロ
ックサイクルしか必要とされず、従来必要とされる32
クロックサイクルに比べて大幅に演算時間を短縮するこ
とができる。
【0123】図28は、マスクデータの初期値を発生す
る回路部分の構成を概略的に示す図である。図28にお
いては、1つの演算ユニット♯Hについての構成が示さ
れる。図28において、この演算ユニット♯Hに含まれ
る初期値発生器53は、演算ユニット♯Hを特定する演
算ユニット番号を発生する演算ユニット番号発生器91
aと、この演算ユニット♯Hが形成されるVLSIチッ
プを特定するチップ番号に従って生成されるチップオフ
セット値を格納するチップオフセット値レジスタ91b
を含む。この演算ユニット番号発生器91aおよびチッ
プオフセット値レジスタ91bに格納された値がマスク
データ更新回路55へ与えられる。マスクデータ更新回
路55は、この初期値発生器53からの初期値に従って
マスクレジスタ41のマスクデータを更新する。
【0124】演算ユニット番号発生器91aにおいて
は、チップ上での演算ユニット♯Hの位置は、チップ作
製時予め決定されるため、たとえばアルミニウムなどの
配線により固定的に演算ユニット番号が設定される。チ
ップオフセット値レジスタ91bに格納されるチップオ
フセット値は、この演算ユニット♯Hが形成される半導
体チップが、並列演算処理システムにおいて用いられる
位置に応じて異なる。このチップオフセット値レジスタ
91bは、たとえばヒューズ素子を用いたROM(リー
ド・オンリ・メモリ)で構成し、システム構築時、外部
に設けられたROMライタにより、チップ単位で、この
チップオフセット値レジスタ91bに、ヒューズ素子の
溶断非溶断のプログラムによりチップオフセット値が書
込まれる構成が用いられてもよい。このチップオフセッ
ト値をチップオフセット値レジスタ91bに書込んだ
後、チップの相互接続によるシステム構築が行なわれ
る。このROMライタを用いたデータ書込時、特定の制
御ピン端子をそのチップ上に形成される演算ユニットに
含まれるチップオフセット値レジスタ91bに共通に接
続し、同時に書込む構成が用いられてもよい。
【0125】また、このチップオフセット値レジスタ9
1bは、通常のレジスタであり、システム構築後外部に
設けられる制御部の制御の下に、チップ単位で順次チッ
プオフセット値を通信線路を介して転送して、チップオ
フセット値を書込む構成が用いられてもよい。
【0126】図29は、初期値発生部の他の構成を概略
的に示す図である。図29においては、この並列演算処
理装置(VLSIチップ)1上に、複数の演算ユニット
♯0〜♯N−1が配置される。これらの演算ユニット♯
0〜♯N−1に共通に、チップオフセット値を格納する
チップオフセット値レジスタ92が設けられる。このチ
ップオフセット値レジスタ92に格納されたチップオフ
セット値が、演算ユニット♯0〜♯N−1それぞれに設
けられるマスクデータ更新回路55へ共通に与えられ
る。この図29に示す構成の場合、演算ユニット♯0〜
♯N−1それぞれに対して、チップオフセット値を格納
するためのレジスタを設ける必要がなく、演算ユニット
の占有面積が低減できる。また、チップオフセット値レ
ジスタ92は、ROMで構成される場合、所定のピン端
子からチップオフセット値データが書込まれる。この場
合、このチップオフセット値レジスタ92がたとえばヒ
ューズプログラム回路の場合、1つの回路に対し、外部
からの比較的大きな電流でヒューズ素子を選択的に溶断
することができ、簡易な回路構成のチップオフセット値
レジスタを実現することができる(チップ上全体にわた
って、ヒューズ溶断のための大きな電流を流す必要がな
く、チップ近傍に設けられた1つのチップオフセット値
レジスタ90に対してのみヒューズ素子溶断用の電流を
流せばよいため)。
【0127】また、このチップオフセット値レジスタ9
2が、システム構築時、外部に設けられる制御部からの
データにより、初期設定される場合、チップバイパス機
能を利用することにより、演算ユニットを介して転送す
ることなく、各チップごとに1回チップオフセット値レ
ジスタにチップオフセット値を書込むだけでよく、この
チップオフセット値を各VLSIチップに初期設定する
ための時間は短縮される。以上のように、この発明の実
施の形態4に従えば、マスクデータ更新のための初期値
として、チップ上の演算ユニットの位置を特定する演算
ユニット番号と、並列演算処理システム内におけるオフ
セット値を示すチップオフセット値とを加算して生成す
るようにしているため、システム拡張時においても、正
確に、演算処理の進行に応じてマスクデータを更新する
ことができ、大規模並列演算処理システムにおいても、
縮約演算を高速で実行することができる。
【0128】
【発明の効果】以上のように、この発明に従えば、マス
クレジスタを演算処理の進行に応じて更新し、かつこの
マスクデータの値に従って内部入力ポートと内部出力ポ
ートとを接続するように構成し、かつ内部のレジスタへ
のデータの書込を禁止するように構成しているため、並
列演算処理装置の縮約演算性能を大幅に改善することが
できる。また、このマスクデータを選択的に設定するこ
とにより、システム内の演算ユニットの数を増減するこ
とができ、過去のプログラムを再利用することができ、
プログラムの再利用可能性を向上させることができ、過
去の資産の継承ができ、ソフトウェア開発コストが削減
される。
【0129】すなわち、請求項1の発明に従えば、マス
クレジスタのデータに従って演算ユニットの内部入力ポ
ートと出力ポートとを選択的に接続しているため、並列
演算処理装置内における演算ユニットの数を調整するこ
とができ、応じて過去のプログラムを再利用することが
できる。
【0130】また、このマスクデータを演算処理の進行
に合わせて変更更新することにより、演算ユニットをバ
イパスしてデータ転送を行なうことができ、ベクトル演
算時の縮約演算を高速で行なうことができる。
【0131】請求項2に係る発明に従えば、このマスク
レジスタのマスクデータに従って記憶手段へのデータ書
込を禁止しているため、バイパス時、演算ユニットの内
部状態が更新されるのを防止することができ、正確に演
算操作に関与しないバイパス状態に設定することができ
る。
【0132】請求項3に係る発明に従えば、マスクデー
タにより複数のデータレジスタに対し一括して書込を禁
止しているため、バイパス状態時、その演算ユニットの
内部状態の更新が停止され、すなわち演算ユニットの動
作が停止される。このとき、またマスクデータにより、
演算ユニットの動作を完全に停止させると、不必要な電
流消費は防止される。
【0133】請求項4に係る発明に従えば、演算ユニッ
トのバイパスには、内部入力ポートと記憶手段の一方を
選択する選択器で構成しているため、簡易な回路構成
で、確実に演算ユニットのバイパス状態を実現すること
ができる。またデータ転送時、演算器により演算された
処理結果を転送することができ、縮約演算を効率的に行
なうことができる。
【0134】請求項5に係る発明に従えば、複数の演算
ユニットのうちの隣接する演算ユニット間の接続ノード
を、切り離して外部からの入力データを隣接下段の隣接
演算ユニットへ転送することができるように構成したた
め、容易にシステム拡張を実現することができる。
【0135】請求項6に係る発明に従えば、演算ユニッ
トの出力とチップ入力端子の一方を選択して出力端子へ
結合するように構成しているため、システム拡張時にお
いて、チップ全体のバイパスを実現することができ、高
速のデータ転送を行なうことができ、動作周波数を向上
させることができる。
【0136】請求項7に係る発明に従えば、チップ上の
すべての演算ユニットのマスクレジスタからのマスクデ
ータに従ってチップの入力端子と出力端子とを選択的に
接続するように構成したため、演算処理実行時において
演算ユニットがすべてバイパス状態となったとき、正確
に、チップもバイパス状態に設定することができる。
【0137】請求項8に係る発明に従えば、演算ユニッ
トの各々を、演算処理の進行に従ってマスクレジスタの
マスクデータを更新するようにしているため、各演算ユ
ニットのそれぞれの処理の進行状況に応じてマスクデー
タを更新することができ、効率的な演算を正確に行なう
ことができる。
【0138】請求項9に係る発明に従えば、演算ユニッ
トに割当てられる演算ユニットを特定する番号に基づい
てマスクデータの更新を行なっており、システム規模に
かかわらず、また各演算ユニットのシステム内位置にか
かわらず、正確に各演算ユニットの演算処理に応じてマ
スクデータを更新することができ、演算内容が縮約演算
の場合、正確に、縮約演算時のバイパスを実現すること
ができる。
【0139】請求項10に係る発明に従えば、マスクレ
ジスタのマスクデータに従って各演算ユニットは、演算
動作を停止するように構成したため、バイパス時、演算
ユニットの動作を停止させることにより、不要な消費電
流を低減することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1に従う並列演算処理
装置の全体の構成を概略的に示す図である。
【図2】 図1に示す演算ユニットの構成をより詳細に
示す図である。
【図3】 (A)および(B)は、マスクデータの値と
入出力ポートの内部回路との間の接続の対応関係を示す
図である。
【図4】 (A)は、この発明の実施の形態1に従う並
列演算処理装置の各演算ユニットの内部接続を具体的に
示す図であり、(B)は、(A)に示す演算ユニットの
等価的構成を概略的に示す図である。
【図5】 (A)は、従来の並列演算処理装置のデータ
転送および演算経路を概略的に示す図であり、(B)
は、(A)に示す並列演算処理装置におけるデータ転送
動作時のレジスタ内データを一覧にして示す図である。
【図6】 図5(A)に示す従来の並列演算処理装置に
おける演算進行状況を一覧にして示す図である。
【図7】 (A)は、この発明の実施の形態1における
並列演算処理装置の具体的演算時の内部状態を概略的に
示し、(B)は、(A)に示すレジスタに格納されるデ
ータを示し、(C)は、クロック信号とそのときに行な
われる動作の対応関係を概略的に示す図である。
【図8】 (A)は、図7(A)に示す並列演算処理装
置の演算サイクル経過時の状態を示し、(B)は、レジ
スタの格納データを一覧にして示す図である。
【図9】 (A)は、図8(A)に示す並列演算処理装
置の演算サイクル完了時の状態を概略的に示し、(B)
は、レジスタに格納されるデータを一覧にして示す図で
ある。
【図10】 (A)は、図9(A)に示す並列演算処理
装置の演算サイクル完了後における内部状態を概略的に
示し、(B)は、レジスタの格納データを概略的に示す
図である。
【図11】 従来例との比較による本発明の効果を示す
ための図である。
【図12】 この発明の実施の形態2に従う並列演算処
理装置の演算ユニットの構成を概略的に示す図である。
【図13】 図12に示すマスクデータ更新回路および
マスクレジスタの構成を示す図である。
【図14】 図13に示すマスクデータ更新回路の各演
算ユニットにおけるシフトレジスタ出力の時間変化を一
覧にして示す図である。
【図15】 図13に示すマスクレジスタの各演算ユニ
ットにおける時間変化を一覧にして示す図である。
【図16】 この発明の実施の形態2の変更例を示す図
である。
【図17】 (A)は、図16に示すマスクデータ更新
回路の演算ユニットそれぞれにおける出力信号の時間変
化を一覧にして示す図であり、(B)は、図16に示す
マスクレジスタの各演算ユニットにおける出力信号の時
間変化を一覧にして示す図である。
【図18】 図12に示す初期値発生器の構成の一例を
示す図である。
【図19】 図2に示す初期値発生器の変更例を概略的
に示す図である。
【図20】 この発明の実施の形態2の変更例を概略的
に示す図である。
【図21】 この発明の実施の形態3に従う並列演算処
理装置の構成を概略的に示す図である。
【図22】 チップバイパス用セレクタが設けられない
場合の各演算ユニットの接続経路を示す図である。
【図23】 この発明の実施の形態3に従う並列演算処
理装置における各演算ユニットの接続経路を概略的に示
す図である。
【図24】 この発明の実施の形態4に従う並列演算処
理装置におけるマスクデータ変更に関連する部分の構成
を概略的に示す図である。
【図25】 この発明の実施の形態4における複数チッ
プを用いた並列演算処理装置における各演算ユニットの
システム内番号を具体的に示す図である。
【図26】 (A)〜(D)は、図25に示すチップそ
れぞれにおける演算ユニットのシフトレジスタ出力の時
間変化を一覧にして示す図である。
【図27】 (A)〜(D)は、図25に示す並列演算
処理装置における各演算ユニットにおけるマスクデータ
の時間変化を一覧にして示す図である。
【図28】 この発明の実施の形態4における初期値発
生回路の構成を概略的に示す図である。
【図29】 この発明の実施の形態4における初期値発
生回路の他の構成を概略的に示す図である。
【図30】 従来の並列演算処理装置の構成を概略的に
示す図である。
【符号の説明】
1 並列演算処理装置(半導体チップ)、♯0〜♯N−
1 演算ユニット、21 レジスタ群、22 演算器
群、23 内部入力ポート、24 内部出力ポート、3
0 命令ブロードキャストバス、31 単一命令、32
環状通信路、40 コントローラ、41 マスクレジ
スタ、42 書込マスク回路、43 バイパス用セレク
タ、53 初期値発生器、55 マスクデータ更新回
路、72 セレクタ、73 入力端子、74 出力端
子、75 NORゲート、76 セレクタ、80 シフ
トレジスタ、81 加算器、91a 演算ユニット番号
発生器、91b,92 チップオフセット値レジスタ。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 共通バスに並列に結合され、前記共通バ
    スを介して共通に供給される命令に従って並列に動作し
    かつ所定の順序で通信線路を介して相互接続される複数
    の演算ユニットを備え、 前記複数の演算ユニットの各々が、 ユニット外部からのデータを入力するための内部入力ポ
    ートと、 ユニット外部へデータを出力するための内部出力ポート
    と、 マスクデータを格納するためのマスクレジスタと、 前記マスクレジスタに結合され、前記マスクデータに従
    って前記内部入力ポートと前記内部出力ポートとを接続
    して、該対応の演算ユニットを、前記通信線路を介して
    のデータ転送時バイパスさせるためのユニットバイパス
    手段とを含む、並列演算処理装置。
  2. 【請求項2】 前記複数の演算ユニットの各々は、さら
    に、 データを格納するための記憶手段と、 前記記憶手段に結合され、前記命令が指示する演算処理
    を行ない、該演算処理結果を前記記憶手段へ格納する演
    算手段と、 前記マスクレジスタに結合され、前記マスクデータに従
    って前記記憶手段の記憶内容の変更を選択的に禁止する
    書込マスク手段を含む、請求項1記載の並列演算処理装
    置。
  3. 【請求項3】 前記記憶手段は、複数のデータレジスタ
    を含み、 前記書込マスク手段は、前記マスクデータのデータ書込
    を禁止する書込マスク指示状態に応答して、前記複数の
    データレジスタに対するデータ書込を一括して禁止する
    書込マスク回路を備える、請求項2記載の並列演算処理
    装置。
  4. 【請求項4】 前記ユニットバイパス手段は、 前記マスクレジスタのマスクデータに従って前記内部入
    力ポートおよび前記記憶手段の一方を前記内部出力ポー
    トに接続するための選択器を備える、請求項2記載の並
    列演算処理装置。
  5. 【請求項5】 前記複数の演算ユニットは同一半導体チ
    ップ上に形成され、 前記並列演算処理装置は、前記複数の演算ユニットに含
    まれる第1の演算ユニットと前記第1の演算ユニットと
    データ転送方向において隣接する第2の演算ユニットと
    の間に設けられ、前記第1の演算ユニットの内部出力ポ
    ートと前記半導体チップ上に設けられかつ該半導体チッ
    プ外部からのデータを受ける外部データ入力ポートとの
    一方を選択的に前記第2の演算ユニットの内部入力ポー
    トに結合する手段をさらに備える、請求項1記載の並列
    演算処理装置。
  6. 【請求項6】 前記半導体チップ上に形成され、与えら
    れたデータを前記半導体チップ外部へ出力するための外
    部データ出力ポートと、 前記第1の演算ユニットの内部出力ポートと前記外部デ
    ータ入力ポートの出力部の一方を前記外部データ出力ポ
    ートの入力部に結合するチップバイパス手段をさらに備
    える、請求項5記載の並列演算処理装置。
  7. 【請求項7】 前記チップバイパス手段は、 前記第1の演算ユニットの内部出力ポートに結合される
    第1の入力と、前記外部データ入力ポートの出力部に結
    合される第2の入力と、出力ノードとを有する選択器
    と、 前記複数の演算ユニットのマスクレジスタに格納された
    マスクデータを並列に受け、これら受けたマスクデータ
    に従って前記選択器の第1および第2の入力と出力との
    接続態様を決定する制御回路を含む、請求項6記載の並
    列演算処理装置。
  8. 【請求項8】 各前記演算ユニットはさらに、 前記マスクレジスタに結合され、前記演算処理の進行に
    従って前記マスクレジスタのマスクデータを更新するた
    めのマスクデータ更新手段を備える、請求項2から7の
    いずれかに記載の並列演算処理装置。
  9. 【請求項9】 前記マスクデータ更新手段は、各前記演
    算ユニットに割当てられる演算ユニット特定用の番号を
    示すデータを格納し、該格納した番号データに基づいて
    前記マスクデータを更新する手段を含む、請求項8記載
    の並列演算処理装置。
  10. 【請求項10】 各前記演算ユニットはさらに、 前記マスクレジスタのマスクデータに従って自身の演算
    処理を停止させる手段を含む、請求項1記載の並列演算
    処理装置。
JP10101321A 1998-04-13 1998-04-13 並列演算処理装置 Withdrawn JPH11296498A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10101321A JPH11296498A (ja) 1998-04-13 1998-04-13 並列演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10101321A JPH11296498A (ja) 1998-04-13 1998-04-13 並列演算処理装置

Publications (1)

Publication Number Publication Date
JPH11296498A true JPH11296498A (ja) 1999-10-29

Family

ID=14297559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10101321A Withdrawn JPH11296498A (ja) 1998-04-13 1998-04-13 並列演算処理装置

Country Status (1)

Country Link
JP (1) JPH11296498A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2411745A (en) * 2004-03-02 2005-09-07 Imagination Tech Ltd Management of control-flow in a SIMD device
JP2008234688A (ja) * 2008-07-02 2008-10-02 Fujitsu Ltd 集積回路装置
JP2009104521A (ja) * 2007-10-25 2009-05-14 Mitsubishi Electric Corp 並列処理装置
US7567996B2 (en) 2000-03-13 2009-07-28 Renesas Technology Corp. Vector SIMD processor

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567996B2 (en) 2000-03-13 2009-07-28 Renesas Technology Corp. Vector SIMD processor
US8341204B2 (en) 2000-03-13 2012-12-25 Renesas Electronics Corporation Vector SIMD processor
GB2411745A (en) * 2004-03-02 2005-09-07 Imagination Tech Ltd Management of control-flow in a SIMD device
GB2411745B (en) * 2004-03-02 2006-08-02 Imagination Tech Ltd Method and apparatus for management of control flow in a simd device
JP2007526571A (ja) * 2004-03-02 2007-09-13 イマジネイション テクノロジーズ リミテッド Simdデバイスにおける制御フロー管理のための方法及び装置
US7428628B2 (en) 2004-03-02 2008-09-23 Imagination Technologies Limited Method and apparatus for management of control flow in a SIMD device
JP2009104521A (ja) * 2007-10-25 2009-05-14 Mitsubishi Electric Corp 並列処理装置
JP2008234688A (ja) * 2008-07-02 2008-10-02 Fujitsu Ltd 集積回路装置

Similar Documents

Publication Publication Date Title
US11971846B2 (en) Logic unit for a reconfigurable processor
US5860085A (en) Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5532938A (en) Numerical arithmetic processing unit
US4472788A (en) Shift circuit having a plurality of cascade-connected data selectors
KR0147060B1 (ko) 데이타 프로세서 시스템과 이를 이용한 비디오 프로세서 시스템
US7047179B2 (en) Clustered processors in an emulation engine
US6510510B1 (en) Digital signal processor having distributed register file
US6745355B1 (en) Semiconductor integrated circuit
US5404555A (en) Macro instruction set computer architecture
JP2001249824A (ja) 論理エミュレーションプロセッサおよびそのモジュールユニット
US7152218B2 (en) Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JPH11296498A (ja) 並列演算処理装置
US7509479B2 (en) Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
US7516059B2 (en) Logical simulation device
JP2005509930A (ja) カスタムループアクセラレータ等で使用する記憶システム
US5010509A (en) Accumulator for complex numbers
CN112579516B (zh) 一种可重构处理单元阵列
US5192882A (en) Synchronization circuit for parallel processing
Yoeli Specification and verification of asynchronous circuits using marked graphs
JP3594212B2 (ja) 連想メモリ
JP2001202351A (ja) Simd型プロセッサ
JPH07244587A (ja) データ処理装置
JPH1078868A (ja) データ処理装置
JP2002207707A (ja) 定数選択機能を有するsimd型マイクロプロセッサ
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器

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: 20050705