JPS6327746B2 - - Google Patents

Info

Publication number
JPS6327746B2
JPS6327746B2 JP56128986A JP12898681A JPS6327746B2 JP S6327746 B2 JPS6327746 B2 JP S6327746B2 JP 56128986 A JP56128986 A JP 56128986A JP 12898681 A JP12898681 A JP 12898681A JP S6327746 B2 JPS6327746 B2 JP S6327746B2
Authority
JP
Japan
Prior art keywords
circuit
vector
instruction
address
conflict
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP56128986A
Other languages
English (en)
Other versions
JPS5831471A (ja
Inventor
Kazushi Sakamoto
Shigeaki Okuya
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP56128986A priority Critical patent/JPS5831471A/ja
Publication of JPS5831471A publication Critical patent/JPS5831471A/ja
Publication of JPS6327746B2 publication Critical patent/JPS6327746B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 本発明は、ベクトル命令を並列に処理可能な装
置において、前後の命令が同一のベクトル・レジ
スタ領域を指定したときのレジスタ・コンフリク
トにより生じる誤り処理を防止するための、コン
フリクト・チエツク回路に関し、特にデータ・エ
レメント数が変更された時点でのレジスタ・コン
フリクトのチエツクにおいて、従来、無条件でま
たはコンフリクトと判定されて並列処理を禁止さ
れたものの中に非コンフリクトの場合が多く含ま
れていたものを改善することのできる手段をそな
えたコンフリクト・チエツク回路に関する。
はじめに、本発明の技術的背景について述べ
る。
第1図は、本発明が適用される一般的なベクト
ル命令処理装置の概略構成を示す。高速計算機の
分野では、1つの命令で多数のデータを処理する
ことが行なわれる。この多数のデータの集合をベ
クトル・データと呼び、それぞれのデータをエレ
メントと呼ぶ。これらのベクトル・データは、演
算処理の高速化のために、主記憶装置から一旦ベ
クトル・レジスタに移し、そこで演算装置によつ
て処理される。ベクトル・レジスタと主記憶装置
との間のデータ転送は、主記憶制御装置、ロード
処理部、ストア処理部を介して行なわれる。演算
装置およびベクトル・レジスタは並列処理を可能
にするため、必要に応じて複数組設けられてい
る。ベクトル演算命令は、フエツチされ、デコー
ドされてから命令制御装置において制御のための
起動信号に変換される。本発明は、この命令制御
装置において連続した命令に対して並列処理動作
を可能にするためのチエツク手段に関連するもの
である。
次に、ベクトル演算命令の実行について概説
し、あわせて従来の方式の問題点について触れ
る。
ベクトル演算命令の例として、ベクトル加算命
令VADDおよびベクトル乗算命令VMLTについ
て下に説明する。
VADD VR1,VR2,VR3 ベクトル・データVR2の各エレメントの値に
VR3の対応するエレメントの値を加え、結果を
VR1に対応するエレメントに格納する(VR2
VR3→VR1)。
VMLT VR1,VR2,VR3 ベクトル・データVR2の各エレメントの値に
VR3の対応するエレメントの値を乗じ、結果を
VR1の対応するエレメントに格納する(VR2×
VR3→VR1)。
ベクトル・データは、前述したベクトル・レジ
スタに格納される。ベクトル・レジスタは複数の
レジスタで構成され、そしてそれら個々のレジス
タは、ベクトル・データの各エレメントを1対1
で対応ずけられるようにアドレスをもつている。
1つのベクトル・データの各エレメントは、連続
アドレスのレジスタに格納される。命令は、この
ベクトル・レジスタの中の先頭エレメントに対応
するレジスタのアドレスを指定することにより、
オペランドの格納場所を指定する。
指定された先頭エレメントのアドレスからどこ
までが1つのベクトル・データに属するエレメン
トのアドレスであるかを知るために、予め、ベク
トル・レングス(VL)を制御レジスタに格納し
ておく。このVLの値は、1つのベクトル・デー
タが占有する連続するアドレスの数、すなわちエ
レメント数を表わす。
ここで、VLの値とベクトル・レジスタ・アド
レス指定との間には、一定の規約が設けられる。
この規約は、VLの値をその大きさによつて複数
のランクに分け、各ランクに対してベクトル・レ
ジスタ内の指定可能なアドレスの位置を一定範囲
に制限するものである。VLの値ごとに、ベクト
ル・レジスタ内の領域は予めユニツトに分割され
る。それにより、異なるVLのベクトル・データ
が混在している場合のベクトル・レジスタの利用
効率の低下が防がれるとともに制御も容易とな
る。
第2図は、上記の規約の1具体例を示す表であ
る。ここでは、1つのベクトル・レジスタを構成
するレジスタの個数を256とし、またそのアドレ
スを8ビツトで指定する。上位ランクに行くほど
アドレスの下位桁は“0”で固定され、×マーク
で示す上位桁で指定可能なとびとびのアドレス位
置のみにアドレス指定が制限されることがげか
る。この場合の規約は、任意のVLをもつベクト
ル・データについて先頭アドレスとして指定可能
なアドレスは、そのVLが含まれるランクの最大
VL値の整数倍に制限するというものである。
命令の実行は、パイプライン方式で行なわれ
る。第3図は、加算命令VADDについての処理
過程を図式的に示したものである。
一般に、高速計算機では、複数の演算器を用い
て命令の並列処理が行なわれる。しかし、たとえ
ばVADDとVMLLとが連続している場合であつ
て、しかもVADDとVMLTとがそれぞれ使用す
るベクトル・レジスタに同じものが含されていた
ときには、命令の順序を保証するために並列処理
の程度を制限することが行なわれている。第4図
a,bは、その事例を示したもので、以下に簡単
に説明する。
第4図aは、先行命令VADDの演算結果格納
用ベクトル・レジスタVR1と、並列処理しようと
する次の命令VMLTの演算結果格納用ベクト
ル・レジスタVR1とが同じアドレスを指定してい
た場合を示す。VADDの1サイクル(1τ)以上
後にVMLTを実行し、図のように並列処理を行
なうことにより、VADDの第1エレメントの加
算結果のVR1への格納後1τを経て、VMLTの第
1エレメントの乗算結果のVR1への格納が行なわ
れる。したがつて、VADDのVR1領域がVMLT
のVR1領域に重複している部分に書き込まれた
VADDの加算結果は、VMLTの乗算結果によつ
て書き直され、正しい値が得られる。
第4図bは、VADDのVR1とVMLTのVR2
あるいはVR3とが等しいけれども並列処理が可能
な事例を示している。この場合には、VADDの
第1エレメントの加算結果がVR1に格納された次
のサイクル(1τ後)、で、VMLTの実行を開始す
る。このとき、VMLTは、VADDの加算結果
(VR1)をオペランドの1つ(VR2またはVR3
として使用して乗算を行なうが、並列処理によつ
てもVADDからVMLTへのエレメントの受け渡
しのレベルでは正しい順序関係が維持されている
ため、データの破壊や誤り処理を生じることはな
い。このような条件にある場合をリンクと呼んで
いる。
このように、連続する命令を並列処理するため
には、前後の命令のオペランドがコンフリクトし
ないよう、そのレジスタ・アドレスが一致してい
るか否かを検出することが必要となる。ところ
で、VLの値は、プログラムによつて動的に変更
される。そこで、たとえばVADDからVMLTに
移るときにVLの値が変えられた場合、前後の命
令でオペランドのレジスタ・アドレス(先頭エレ
メント・アドレス)が相違していても、一方の命
令のオオペランドの一部または全部のエレメント
のアドレスが他方の命令のオペランドのアドレス
領域に含まれていることが起こり得る。これは、
第2図の表の例で伝えば、ランクが変わつた場合
にその可能性が生じる。
たとえば、先行命令ではVL=8、VR1
00001000とし、後続命令ではVL=4、VR2
00001100とすると、VR1とVR2との先頭エレメン
ト・アドレスは異なつていても、VR1の8ケのエ
レメントのアドレス00001000〜00001111には、
VR2の4ケのエレメントのアドレス00001100〜
00001111が含まれ、実際にはオペランドのコンフ
リクトが生じていることになる。
このため、従来はVLが変更されたときに限つ
て、先行命令の終了まで後続命令の実行を禁止す
る処置をとつていた。しかし、これでは、前後の
命令のオペランド・アドレスが全く相違してコン
フリクトがない場合にも、VLが変化したという
だけで並列処理をすることができないという問題
があつた。
本発明は、連続する命令間でオペランドのエレ
メント数VLが変更された際、無条件に並列処理
を禁止することをせず、前後の命令の各オペラン
ド・アドレスの上位ビツトを比較して、その結果
に応じて後続命令に対する並列処理への起動を制
御するようにし、上述した問題点の解決を図つた
ものである。
そのため、本発明は、ベクトル・データを処理
する並列動作可能な複数の演算処理部と複数のデ
ータ・エレメントからなるベクトル・データを保
持するベクトル・レジスタとを備えたベクトル命
令処理装置において、先行命令のベクトル・レジ
スタ・アドレスおよび後続命令のベクトル・レジ
スタ・アドレスを比較して、一致したときにコン
フリクトしたことを示す信号を出力する比較回路
と、前記比較回路においてベクトル・レジスタ・
アドレスの比較ビツト桁を、データ・エレメント
数の変更指示に基づいて一定の上位桁に制限する
回路と、からなることを特徴とするコンフリク
ト・チエツク回路を提供するものである。
本発明はまた、上記したベクトル・レジスタ・
アドレスの比較ビツト桁を上位桁に制限する回路
が、現在のデータ・エレメント数と変更指示され
たデータ・エレメント数とのいずれか大きい方の
値に基づいて比較ビツト桁を制限することを特徴
とするコンフリクト・チエツク回路を提供するも
のである。
本発明は更にまた、ベクトル・データを処理す
る並列動作可能な複数の演算処理部と複数のデー
タ・エレメントからなるベクトル・データを保持
するベクトル・レジスタとを備えたベクトル命令
処理装置において、先行命令のベクトル・レジス
タ・アドレスおよび後続命令のベクトル・レジス
タ・アドレスを比較して、一致したときにコンフ
リクトしたことを示す信号を出力する比較回路
と、前記比較回路におけるベクトル・レジスタ・
アドレスの比較ビツト桁を、現在のデータ・エレ
メント数と変更指示されたデータ・エレメント数
とのいずれか大きい方の値に基づいて一定の上位
桁に制限する回路と、データ・エレメント数の変
更の方向が小から大へかまたは大から小へかを検
出する回路と、先行命令のベクトル・レジスタ・
アドレスに対する後続命令のベクトル・レジス
タ・アドレスのエレメント距離を検出する回路
と、からなることを特徴とするコンフリクト・チ
エツク回路を提供するものである。
以下に、本発明を実施例にしたがつて説明す
る。
第5図は、本発明にしたがつて構成されたコン
フリクト・チエツク回路の1実施例を示す。この
回路は、第2図に示したランク付けの表に基づい
て構成されている。この表ではVLの値が32以下
に制限されているため、アドレスの上位3ビツト
が異なるならばコンフリクトは起こらず、他方上
位3ビツトが一致しているならばコンフリクトが
起きている可能性があるということがコンフリク
トの検出原理とされている。
第5図において、1は8ビツトの一致回路であ
り、2は10個のORゲートからなるOR回路、3
は8個の排他的NORゲートからなる排他的NOR
回路、4はAND回路である。一致回路1は先行
命令のVL(OLD VL)と後続命令のVL(NEW
VL)とを比較し、不一致のときに“1”出力を
生じる。排他的NOR回路3とAND回路4とは、
先行命令のベクトル・レジスタ・アドレスX0
X7と、後続命令のベクトル・レジスタ・アドレ
スY0〜Y7とを比較して、一致したときに“1”
を出力する一致回路である。OR回路2は、“1”
を出力する一致回路である。OR回路2は、排他
的NOR回路3に入力される2組のアドレスのう
ち下位5桁のX3〜X7、Y3〜Y7を、一致回路1の
不一致出力が“1”のとき比較の対象から外すた
め、下位5桁に対応する排他的NOR回路の全入
力を強制的“1”にするように作用する。
したがつて、第5図に示すコンフリクト・チエ
ツク回路は、OLD VLとNEW VLとが一致して
いるとき、すなわち前後の命令でVL値に変更が
ないときには、第2図に示されたアドレスの全ア
ドレス・ビツトについて比較を行ない、結果的に
はそれぞれのランクにより異なるビツト長さのア
ドレス部分同士の比較結果を出力する。他方、
OLD VLとNEW VLとが不一致のときには、排
他的NOR回路3における下位5桁の比較機能は
不能にされるから、ランクに無関係に上位3ビツ
トのアドレス部分同士、すなわちX0〜X2とY0
Y2との比較結果を出力する。前者は従来技術に
したがう動作機能であつて、後者が本発明に基づ
いて新らしく付加された動作機能に係るものであ
る。
第6図は、コンフリクト・チエツク回路の他の
実施例を示す。第5図の実施例回路の場合には、
前後の命令間でVLが変化したときに、どのラン
クであつても上位3ビツトしか見ないので、コン
フリクト出力信号を生じた中にも、本来コンフリ
クトしていない、たとえば下位5ビツトにおいて
全く重複していない場合が含まれている可能性が
残る。そこで、OLD VLのランクとNEW VLの
ランクとを比較して、高い方のランクに対応する
アドレス・ビツト長(第2図参照)に合わせて両
命令のアドレス比較を行ない、コンフリクト・チ
エツクすれば、更に改善を図ることができる。第
6図はそのための回路機能をそなえたコンフリク
ト・チエツク回路を示しており、第5図の回路を
部分的に変更した形で構成したものである。
第6図において、第5図と共通の回路要素に対
しては同一の参照番号が用いられている。第6図
に特有の要素を説明すると、5は6ビツトの
OLD VLから000001を減算する一1回路、6は
同様に6ビツトのNEW VLから000001を減算す
る−1回路であり、7および8はそれぞれOR回
路である。
−1回路5,6は、第2図に示すランクとVL
値との対応表を使用したとき、6ビツトの入力
VL値から000001を減算して下位5ビツトを出力
することによつて、上位から見て最初に“1”が
現われたビツト位置がランクを表わすようなラン
ク信号の発生回路として働く。
OR回路7は、5個の2入力ORゲートからな
り、OLD VLまたはNEW VLのいずれか高い方
のランクを表わす信号をつくる。各ORゲート
は、−1回路5,6からの5ビツト出力の各ビツ
ト数を、上位桁が図の上方にあるようにして同一
桁同士を受け入れる。したがつて、OLD VLま
たはNEW VLのいずれか大きいVL値をもつ方
の−1回路出力が、OR回路7において最上方の
ORゲートを支配して、OR回路8にランク5乃
至1の出力信号を与える。
OR回路8は、2入力ORゲート、3入力ORゲ
ート、4入力ORゲート、5入力ORゲートで構
成され、OR回路7からの最大ランク信号に応じ
て排他的NOR回路3の不能にすべき下位ゲート
の数を制御するデコーダの働きをもつている。た
とえば、OR回路7からのランク5信号が最大の
ときには、排他的NOR回路3の下位5ビツトの
全ゲート入力が強制的に“1”となつて比較不能
化され、第5図の回路機能と同一となつて、アド
レスの上位3ビツトX0〜X2,Y0〜Y2の比較のみ
が行なわれる。またランク3信号が最大のときに
は、下位3個の排他的NORゲートが比較不能と
なつて、アドレスの上位5桁X0〜X4、Y0〜Y4
比較のみが行なわれる。
このようにして、OLD VLまたはNEW VLの
いずれかランクの高い方に合わせて、コンフリク
トを検出するためのビツト数を変えることができ
る。
以上、第5図および第6図に示したコンフリク
ト・チエツク回路を用いることによつて、前後の
命令でVL値が変化したときのコンフリクト検出
精度を向上させ並列処理の機会を増やすことがで
きる。
第7図は、上述したコンフリクト・チエツク回
路を用いた命令制御装置のブロツク回路図であ
る。
第7図において、9は命令デコーダ、10は命
令発信制御部、11,12は命令情報保持部でレ
ジスタからなり、並列処理される命令の多重度に
応じた個数だけ設けられて、命令コード、VR1
VR2,VR3などが格納される。図では、簡単化の
ため2個だけが示されている。13は現在のオペ
ランドのVLを保持するレジスタ、14,15は
本発明によるコンフリクト・チエツク回路、16
はORゲートである。
コンフリクト・チエツク回路は、1つの命令情
報保持部にある先行命令のオペランドのベクト
ル・レジスタ・アドレスVR1,VR2,VR3に対し
て後続命令のオペランドのベクトル・レジスタ・
アドレスVR1,VR2,VR3をそれぞれ比較するた
めに、3×3の9個必要とされ、その9個の組が
命令情報保持部ごとに用意される。図では、簡単
化のために各命令情報保持部に対して1個のコン
フリクト・チエツク回路だけが示されている。
VLレジスタ13は先行命令のVL値(OLD
VL)を保持し、後続命令においてVL値が変更さ
れたとき、その値(NEW VL)とともにコンフ
リクト・チエツク回路14,15に供給する。コ
ンフリクト・チエツク回路14、または15が、
第4図または第5図の回路について説明したよう
に、先行命令および後続命令のオペランドのレジ
スタ・アドレスを比較し、コンフリクトを検出し
たとき、コンフリクト信号を出力し、ORゲート
16を経て命令発信制御部10に命令発信禁止信
号を送る。その結果、命令発信制御部10は、そ
の後続命令を並列処理で実行するための命令発信
を禁止し、ベクトル命令処理装置に対する起動信
号を発生しない。
以上詳述したように、本発明によりベクトル命
令の処理効率は著るしく向上し、演算の高速化を
図ることができる。
【図面の簡単な説明】
第1図は一般的なベクトル命令処理装置の概略
構成を示す図、第2図はVLとランクおよびアド
レス指定規約の例を示す説明図、第3図は加算命
令の処理過程の説明図、第4図a,bは連続する
命令の並列処理の説明図、第5図は本発明による
コンフリクト・チエツク回路の1実施例を示す
図、第6図は他の実施例を示す図、第7図は本発
明のコンフリクト・チエツク回路を用いた命令制
御装置のブロツク回路図、である。 1はVLの変更を検出する一致回路、2はアド
レスの下位ビツト比較を不能化するためのOR回
路、3はアドレス比較のための排他的NOR回路、
4はアドレス全ビツトの一致をとるAND回路、
5,6はVLをランク信号に変換する−1回路、
7は最大ランクを検出するOR回路、8はランク
信号により不能化すべき比較ビツトを決定する
OR回路、を表わす。

Claims (1)

  1. 【特許請求の範囲】 1 ベクトル・データを処理する並列動作可能な
    複数の演算処理部と複数のデータ・エレメントか
    らなるベクトル・データを保持するベクトル・レ
    ジスタとを備えたベクトル命令処理装置におい
    て、先行命令のベクトル・レジスタ・アドレスお
    よび後続命令のベクトル・レジスタ・アドレスを
    比較して、一致したときにコンフリクトしたこと
    を示す信号を出力する比較回路と、前記比較回路
    におけるベクトル・レジスタ・アドレスの比較ビ
    ツト桁を、データ・エレメント数の変更指示に基
    づいて一定の上位桁に制限する回路と、からなる
    ことを特徴とするコンフリクト・チエツク回路。 2 前記第1項記載のベクトル・レジスタ・アド
    レスの比較ビツト桁を上位桁に制限する回路が、
    現在のデータ・エレメント数と変更指示されたデ
    ータ・エレメント数とのいずれか大きい方の値に
    基づいて比較ビツト桁を制限することを特徴とす
    るコンフリクト・チエツク回路。
JP56128986A 1981-08-18 1981-08-18 ベクトル命令処理装置におけるコンフリクト・チエツク回路 Granted JPS5831471A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56128986A JPS5831471A (ja) 1981-08-18 1981-08-18 ベクトル命令処理装置におけるコンフリクト・チエツク回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56128986A JPS5831471A (ja) 1981-08-18 1981-08-18 ベクトル命令処理装置におけるコンフリクト・チエツク回路

Publications (2)

Publication Number Publication Date
JPS5831471A JPS5831471A (ja) 1983-02-24
JPS6327746B2 true JPS6327746B2 (ja) 1988-06-06

Family

ID=14998292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56128986A Granted JPS5831471A (ja) 1981-08-18 1981-08-18 ベクトル命令処理装置におけるコンフリクト・チエツク回路

Country Status (1)

Country Link
JP (1) JPS5831471A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6227829A (ja) * 1985-07-30 1987-02-05 Fujitsu Ltd 多重ロード命令制御装置
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
DE102004009461A1 (de) * 2004-02-27 2005-09-15 Robert Bosch Gmbh Ventil
JP2006046414A (ja) 2004-08-02 2006-02-16 Smc Corp 3ポート電磁弁

Also Published As

Publication number Publication date
JPS5831471A (ja) 1983-02-24

Similar Documents

Publication Publication Date Title
EP0286354B1 (en) A method and apparatus for modifying micro-instructions using a macro-instruction pipeline
JPS6231379B2 (ja)
EP0094535B1 (en) Pipe-line data processing system
EP0093430B1 (en) Pipeline data processing system
US5390306A (en) Pipeline processing system and microprocessor using the system
JPS6227412B2 (ja)
JPH08221273A (ja) 命令レベルの並列処理制御方法およびプロセッサ
JPS6327746B2 (ja)
JPH034936B2 (ja)
JP2783285B2 (ja) 情報処理装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH0377137A (ja) 情報処理装置
JPH02132524A (ja) 情報処理装置
JP2819733B2 (ja) 情報処理装置
JPS61100836A (ja) 移動命令論理比較命令処理方式
JP3239042B2 (ja) マイクロコンピュータ
JPH06162067A (ja) ベクトル命令制御装置および制御方法
JPH0470987A (ja) 並列データ処理方式
JP4564025B2 (ja) 情報処理装置における割り込み処理方法
JPS63263536A (ja) 情報処理装置
JPS6225348A (ja) アドレスバス拡張方式
JPH02148140A (ja) 情報処理装置における条件分岐制御方式
JPH04365170A (ja) ディジタル信号処理用半導体集積回路装置
JPH08305564A (ja) マイクロコンピュータ
JPS6132698B2 (ja)