JPS60136872A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPS60136872A
JPS60136872A JP58243943A JP24394383A JPS60136872A JP S60136872 A JPS60136872 A JP S60136872A JP 58243943 A JP58243943 A JP 58243943A JP 24394383 A JP24394383 A JP 24394383A JP S60136872 A JPS60136872 A JP S60136872A
Authority
JP
Japan
Prior art keywords
vector
register
exception
instruction
address
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.)
Granted
Application number
JP58243943A
Other languages
English (en)
Other versions
JPH0562390B2 (ja
Inventor
Yaoko Yoshida
吉田 八穂子
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP58243943A priority Critical patent/JPS60136872A/ja
Priority to US06/685,112 priority patent/US4777593A/en
Priority to EP84116394A priority patent/EP0147858B1/en
Priority to DE8484116394T priority patent/DE3485119D1/de
Publication of JPS60136872A publication Critical patent/JPS60136872A/ja
Publication of JPH0562390B2 publication Critical patent/JPH0562390B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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
    • G06F15/8076Details on data register access

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、並列実行可能な複数の機能要素を有し、かつ
ベクトルレジスタに格納可能なベクトル要素以上の要素
を有するベクトル演算を処理するベクトル処理装置に関
する。
〔発明の背景〕
複数のベクトルレジスタと、複数のベクトル演算器と、
複数のベクトルゲータフェッチ又はストア用メモリリク
エスタを備え、これらを並列に動作させることにより、
高速にベクトル演算を処理することが可能なベクトル処
理装置が提案されている。
このようなベクトル処理装置は、1命令で複数のベクト
ル要素を処理するベクトル命令をもっている。ベクトル
命令とは、例えば、ベクトルA (i)とベクトルB 
(i)の要素ごとの加算を行うベクトル加算命令のよう
なもののことをいう。
例えば、このベクトル加算命令の実行において複数のベ
クトル要素でオーバフロー例外が検出されることがある
。このような場合、ソフトウェアに対して、命令アドレ
スが列番地のベクトル加算命令でオーバフロー例外がお
きたかを報告するだけでは不充分であり、何番目と何番
目のベクトル要素で例外がおきたかをも報告する必要が
ある。ところが、ベクトルプロセサにおいては、複数の
ベクトル命令が並列に実行されている為に、複数の例外
が同時に検出され得るd又、命令アドレス順に命令の実
行が終了するとは限らない為に、若い命令アドレスのベ
クトル命令の例外が、後続の命令アドレスのベクトル命
令の例外より後に検出され得る。
これらの例外が、どのベクトル命令によって検出された
かを判別し、ベクトル命令毎の割込処理を行うことは、
煩雑であり、性能を低下させる可能性がある。
〔発明の目的〕
本発明の目的は、ベクトル命令の実行性能を損うことな
くベクトル要素レベルで概念的に最初に発生した例外を
選択できるべり)y処理装置を提供することにある。
〔発明の概要〕
本発明の典型的な例では、ベクトル命令で処理する先頭
ベクトル要素番号のスタックと、ベクトル命令アドレス
のスタックと、ベクトルレジスタ内アドレスカウンタと
を各演算器対応に設け、演算器で例外が検出されると、
該演算器内からこれらの情報を読み出す。そして例外を
検出したベクトル要素番号を生成し、既に保持されてい
る例外のベクトル要素番号及び命令アドレスと、新たに
報告された例外のベクトル費素番号及び命令アドレスと
を比較し、最終的に保持する例外情報を選択することに
より、ベクトル要素レベルで概念的に最初に発生した例
外を選択することを可能にする。
〔発明の実施例〕
以下、本発明の一実施例を、図に従い説明する。
第1図は本発明の一実施例を示すベクトル処理装置全体
の概略構成図である。主記憶装置4からベクトル命令列
の処理開始を指示する命令が記憶制御装置5を介してス
カラ処理装置乙に読み出されると、スカラ処理装置6は
、ベクトル処理制御部7に、ベクトル命令開始アドレス
と、ベクトル処理要素数及びParallel Pro
cessモードでベクトル処理を行うか否かを指示し、
ベクトル処理制御部7を起動する。ベクトル処理制御部
7は指示されたベクトル命令開始アドレスからベクトル
命令列を読み出し解読し、解読結果に従い、ベクトルレ
ジスタ10〜17 (VRO〜VR7)あるいはベクト
ルデータフェッチ用メモリリクエスタ20〜23(FO
〜F3)あるいはベクトルデータストア用メモリリクエ
スタ24〜25(SO〜S1)あるいはパイプライン演
算器30〜xx(g。
〜E5)に、ベクトル命令の実行を指示する。ベクトル
データフェッチ用メモリリクエスタF0〜F6は、ベク
トルアドレスレジスタ群2を用いて主記憶上のベクトル
データアドレスを計算し、主記憶装置4から記憶制御装
置5を介してベクトルデータを読み出し、ベクトルレジ
スタVRO〜VR7にベクトルデータを転送する。ベク
トルレジスタVRO〜VR7は、各々、VMAX個のベ
クトル要素を保持することができ、書き込み中に読み出
しが可能であるとする。パイプライン演算器E0〜E6
は、ベクトルレジスタVR0−VH2内のベクトルデー
タに対し演算を施し、結果をベクトルレジスタに書き込
む。ベクトルデータストア用メモリリクエスタ80〜S
1.は、ベクトルアドレスレジスタ群2を用いて主記憶
上のベクトルデータアドレスを計算し、ベクトルレジス
タVRO〜VR7内のベクトルデータを記憶制御装置5
を介して主記憶装置4に格納する。以上説明したベクト
ルデータフェッチ用メモリリクエスタF0〜F5、ベク
トルデータストア用メモリリクエスタ80〜S1 及び
パイプライン演算器E0〜E3は、並列に動作が可能で
ある。これらのメモリリクエスタ、パイプライン演算器
をデータの正当性が保たれる範囲で並列に動作するよう
制御することによってベクトル処理の関連化を図ること
が一般に行なわれている。
Parallel Process モード指示フリッ
プフロップ9は、ベクトル処理制御部7の起動時に、ス
カラ処理装置6からの指示に従いセットされる。
Parallel Process モード指示フリッ
プフロップ9が+1+の時は、命令の並列実行度を高め
る為に、メモリリクエスタあるいはパイプライン演算器
の2つを対にして、1つのベクトル命令を実行する。P
arallel Processモード指示フリップフ
ロップ9がIQ+の時は、1つのメモIJ IJクエス
タあるいはパイプライン演算器で1つのベクトル命令を
実行する。このモードを、ParallelProce
ssモードに対し、Single Processモー
ドとよぶことにする。
本実施例のように、複数のベクトル命令の処理が時間的
に並行して行なわれる処理装置においては、例えば、命
令解読の過程で生ずる命令例外、指定例外、メモリリク
エスタによるアクセス例外、演算器による演算例外のよ
うな複数の例外が相前後して生ずることがある。これら
複数の例外に対し、例外が検出された時点でベクトル命
令の処理全体又は一部を中断し、例外情報を抽出し、再
実行させることは煩雑であり性能を低下させるおそれが
あるので、1ベクトル命令ごとの割込処理は必ずしも得
策ではないそのだめ、1ベクトル命令ごとの割込処理は
行わず、一連のベクトル命令列単位に割込処理を行う方
法が考えられる。そこで割込処理制御回路8は一連のペ
タトル命令列単位の割込処理を可能とする為に、一連の
ベクトル命令列処理中に並列的に発生する各パイプライ
ン演算器E0〜E3からの例外検出信号150−153
 及び各メモリリクエスタF’O〜l、So、Sl か
らの例外検出信号(図示せず)及び命令解読ユニット(
図示せず)からの例外検出信号(図示せず)のうち、最
も優先順位の高い例外を選択し、選択された演算器又は
メモリリクエスタ又は命令解読ユニットから必要な例外
情報を採取し保持する機能をもっている。
以下、第1図に示したベクトル処理装置において、第2
図(a)で示したFORTRAN プログラムのD0ル
ープを処理する場合について説明する。第2図(a)で
示したFORTRANのDOループをベクトル命令列に
変換すると第2図(b)の様になる。命令■は、FOR
TRANプログラム中のベクトルA(i) 、 i =
 0 、1023のベクトルレジスタVROへのベクト
ルロード、命令■はペクト/l/ B (i)、i=o
、1025(7)ベクトルレジスタvR2へのベクトル
ロード、命令■はベクトルC(i)、i;01023の
ベクトルレジスタVR4からのベクトルストアに相当す
る。ここで、VARO,2,4は、ベクトルデータの格
納されている先頭アドレスを保持するレジスタであり、
VIRO,2,4はベクトル要素のアドレス間隔を保持
するレジスタである。この例では、第2図(C’)に示
すように、ベクトルAは1oooo番地から8バイト間
隔に1024要素、ベクトルBは12000番地から8
バイト間隔で1024要素格納されており、ベクトルA
とベクトルBの和ベクトルCは、14000番地から8
バイト間隔に10245素格納されるものとする。命令
■は、ベクトルレジスタVROとVB2内にロードされ
たベクトルデータの要素毎の加算を行い、結果を指定さ
れたベクトルレジスタVR4に書き込む命令である。命
令■は、ベクトル命令列の終了を示す制御命令であり、
実質的寿ベクトル処理を伴わない。
[F、ベクトルレジスタの要素の個数VMAXを256
として、Single Processモード及びPa
rallelProcess モードで処理する場合に
ついて説明する。Single Processモード
時は、1024個のベクトル要素の加算を、第2図(b
)のベクトル命令列を4回繰り返し実行することにより
行う。以下1回の処理を1ループとよぶことにする。こ
の繰り返し処理をハード的に行う為に、ベクトル処理制
御部7内には、処理すべき残りベクトル要素数を保持す
るレジスタV L、 Rが設けである。
残り処理要素数が256以上の場合は、例えば■のVL
命令はフェッチ用メモリリクエスタF0、■のVL命令
はフェッチ用メモリリクエスタF1.■+7)VEA命
令は演算器E0、■(7)VST命令はストア用メモリ
リクエスタS0を用いて、256個のベクトル要素の処
理がなされる。従ってVEND命令をデコードすると、
VLRは256減算され、vARo、2.+にはVIR
X256の値が加算される。VLRを減算した結果が正
ならば、加算されたYARD、2.4を用いてペクトル
命令列の先頭から処理が続行され、VLRを減算した結
果が負ならば、終処理に入る。
Parallel Processモード時は、102
4のベクトル要素の加算は、第2図(b)のベクトル命
令列を2回繰り返して実行することにより行う。これは
、1つのベクトル命令でわらかしめ組になると決められ
ている2つのベクトルレジスタ、2つのパイプライン演
算器、2つのメモリリクエスタ等が対になって使用され
る為、1ループで512個のベクトル要素の処理が可能
であるからである。このParal lel Proc
esSモードにおいては■のVL命令では、例えばフェ
ッチ用メモリリクエスタF0により、A(0) 、 A
(2) 、・・・A(510)の256個のベクトルデ
ータがベクトルレジスタVROに、フェッチ用メモリリ
クエスタF1によりA(1) 、 A(3)−・・・A
 (511)の256個のペクト。
ルデータがベクトルレジスタVR1に転送される。
以下、同様に、■のV L命令では、ベクトルレジスタ
VR2にベクトルBの偶数要素が、ベクトルレジスタV
R5にベクトルBの奇数要素がロードされ、■のV′F
jA命令で、ベクトルレジスタVR4にベクトルレジス
タVR(]とVR2の和、ベクトルレジスタVR5にベ
クトルレジスタVR1とVRIの和がまり、■のvST
命令でベクトルレジスタVRA内のベクトルデータがベ
クトルC(0)’、C(2)、・・、C(510)とし
て、ベクトルレジスタVR5内のベクトルデータがベク
トルC,(1) 、 C(5) 、・・・C(511)
としてストアされる。
以上のように1ループで512個のベクトル要素の処理
がなされ、従ってV E N D &Y令をデコードす
ると、VLRは512減算され、VARにはViRX5
12の値が加算される。VLRの減算結果に伴う処理は
、Single Processモード時と同様である
以上説明した様に、第2図(a)の如きD0ループが一
連のベクトル命令列(b)として実行されるわけである
から、一連のベクトル命令列単位に1つの割込処理を行
う為には、第2図(a)のようなりOループで起こり得
る複数の例外のうち、1つを選択する必懺性が生じる。
選択のに先11垣位としては、例外の種類に着目し、命
令・指定例外をアクセス例外・演算例外より優先する方
式、最も若いアドレスのベクトル命令に関する例外を優
先する方式、最小のベクトル要素番号に関する例外を優
先する方式等、種々考えられるが、本実施例では、要素
番号最小かつ最も若いアドレスの例外を優先して選択す
る方式を実現している。本方式を採用した理由は、DO
ループをスカラ命令を用いてシリアルに実行する場合に
、最も早く検出されるであろう例外と同じ例外を選択す
べきだと考えたからである。
第5図は、Single Processモードのみを
行うと考えた場合の、例外情報選択回路を表わしている
。メモリリクエスタ、パイプライン演算器・ ともにベ
クトル命令の実行途中に例外を検出し得るが、例外命令
アドレス及び例外要素番号の確定は演算器と全く同様の
方式で実現できるので、図示していない。以下、第3図
について説明する。
ベクトル処理制御部7はベクトル命令を解読し、命令で
指定されたベクトルレジスタと当該命令で使用するタイ
プのパイプライン演算器又はメモリリクエスタのどれか
が使用可能と判断できる場合には、使用するパイプライ
ン演算器又はメモリリクエスタを割り付け、当該命令を
起動する。ベクトル処理側a部7内には、先頭ベクトル
命令のアドレスを保持するレジスタ5IAR72と、起
動された命令のアドレスを示すレジスタVIAR71が
ある。以下、レジスタVIARの更新について述べる。
ベクトル処理制御部7の起動時に、スカラ処理装置6か
ら指示された先頭ベクトル命令アドレスが、レジスタ5
IAR次いでレジスタVIARにセットされる。
以後は、ベクトル命令起動に伴い、レジスタVIARK
命令語長が加算器76及びセレクタ77を介して加算さ
れる。VEND命令がデコードされると、レジスタVI
ARにはレジスタ5IARに保持されていた先頭命令ア
ドレスがセットされる0以上のように制御することによ
ってレジスタVIARは起動されたベクトル命令のアド
レスを示すことができる。
ベクトル処理制御部7内には、起動された命令で処理す
る先頭ベクトル要素番号を指示する為に、処理済ベクト
ルに要素数を示すレジスタVER7oがある。以下、こ
のレジスタVERの更新について述べる。ベクトル処理
制御部7の起動時にレジスタVERにはIQ+がセット
°される。以後、VEND命令がデコードされるたびに
レジスタVERにベクトルレジスタ長VMAXが加算器
78及びセレクタ79を介して加算される。以上のよう
に制御することによって、レジスタVERは先頭ベクト
ル要素番号を示すことができる。
次に、各パイプライン演算器で検出した例外に関するベ
クトル命令アドレス及びベクトル要素番号のめ方につい
て説明する。ベクトル処理制御部7から、ベクトル命令
の起動をうけたパイプライン演算器30〜63は、起動
時にベクトル命令の実行に伴う情報とともに、該ベクト
ル命令のアドレスをレジスタ506に、又先頭ベクトル
要素番号をレジスタ302に保持する。また、命令起動
に際し、その中のベクトルレジスタ内アドレスカウンタ
301は、VMAXにセットされる。処理すべきベクト
ルデータの最初の要素が演算パイプライン600の第1
ステージに入ると、先頭ベクトル要素番号が入っている
レジスタ602の内容はレジスタ603へ、ベクトル命
令アドレスが入っているレジスタ30乙の内容はレジス
タ607へコピーされる。以後、データが演算パイプラ
イン600の第2.第6ステージへと移動するに従い、
先頭ベクトル要素番号はレジスタ304,305へ、又
ベクトル命令アドレスはレジスタ308,309へ移動
する。最初のベクトル要素が第3ステージ、即ち最終ス
テージに達すると、1ベクトル要素の演算が終了し、ベ
クトルレジスタ内アドレスカウンタろOlは加算器31
0及びセレクタ611を介して+1され’oo’となる
。(すなわち、このカウンタ301はVMAXに+1す
るとOにラップアラウンドする。)+00+は第1番目
の要素を意味する。ここで、もし演算の過程において例
外が検出されていた場合は、例外検出信号が割込処理制
御部8に報告でれる。同時に、この例外検出信号により
レジスタ15,509 、ベクトルレジスタ内アドレス
カウンタ301の以後の更新は禁止される。第2番目以
後の要素も第1番目の要素と同様に処理が行われ、例外
が検出されない限り、演算が1要素終了する毎にベクト
ルレジスタ内アドレスカウンタ501が加算器510及
びセレクタ511を介して+1されてゆく。演算パイプ
ライン500のステージ対応に、先頭ベクトル要素番号
及びベクトル命令アドレスを保持する理由は、演算パイ
プライン300内に存在する異なるベクトル命令と識別
しなければならないからである。従って、演算パイプラ
イブ500で2つ以上の命令が共存することがない装置
の場合は、ステージ対応にレジスタを設ける必要はない
ことに注意されたい。
以上の様にして、各パイプライン演算器30〜65は、
最初に検出した例外のベクトル命令アドレスをレジスタ
609に、ベクトル要素番号をレジスタ305及び50
1にめることができる。ベクトル処理制御部7は、ベク
トル命令アドレス順にベクトル命令を起動し、各パイプ
ライン演算器30〜53は最も若い要素から順に演算を
実行する為、演算器が最初に検出した例外は、該パイプ
ライン演算器30〜35が検出し得る例外の内、要素番
号最小かつ最も若いアドレスの例外と考えられる。
次に、複数のパイプライン演算器から相前後して報告さ
れる例外要因のうち、要素番号最小かつ、最も若いアド
レスの例外を割込処理制御部8が選択する方法について
説明する。割込処理制御部8は、演算器30〜53から
例外検出信号が報告されると、例外検出信号受付部80
においてそのうち1つを選択して受付け、その例外情報
を割込処理制御部8内にと抄こむ。即ち、ベクトル命令
アドレスはセレクタ83を通してレジスタ86にセット
される。まだ先頭ベクトル要素番号、ベクトルレジスタ
内アドレスはそれぞれセレクタ8i 、 82でセレク
トされ、更に先頭ベクトル要素番号とベクトルレジスタ
内アドレスが加算器89で加算されて例外要素番号レジ
スタ84にセットされる。割込処理制御部8に最初に報
告された例外の時は、無条件にレジスタ84の内容がレ
ジスタ85に、レジスタ86の内容がレジスタ87にセ
ットされる。最初に報告された例外でない場合には、以
前に検出された例外の例外要素番号がレジスタ85に、
例外命令アドレスがレジスタ87に、既にセlヅ卜され
ているはずであるから、レジスタ84とレジスタ85の
内容を比較器90を用いて、レジスタ86とレジスタ8
7の内容を比較器91を用いて比較する。新たに報告さ
れた例外の例外要素番号84が、以前に検出された例外
の例外要素番号85より小さい時、信号線92が°1゜
となり、ORゲート96が成立する。新たに報告された
例外の例外要素番号84が、以前に検出された例外の例
外要素番号85と等しく、かつ、新たに報告された例外
の例外命令アドレス86が、以前に検出された例外の例
外命令アドレスより着いならR,ANDゲート94の出
力がIllとなり、ORゲート93が成立する。ORゲ
ート93が成立すると、レジスタ84の内容がレジスタ
85に、レジスタ86の内容がレジスタ87に、セット
される。以上の様にして各パイプライン演算器からの例
外検出16号を次々と受け付け、以前に検出されている
例外と比較選択することにより、ベクトルレジスタに格
納可能な要素数以上の要素を有するベクトルに演算を行
うベクトル 処理装置において、ベクトル要素番号最小
かつ最も若いアドレスの例外を選択し、それの例外要素
番号、例外命令アドレス及び割込コード(図示せず)等
の例外情報を保持することが可能になる0 以上、Single Processモードのみを行う
場合の例外情報選択回路について第6図により説明した
が、次にParallel Process モードも
行う場合の例外情報選択回路について、第4図を用いて
説明する。第4図と第3図の相異点は、処理済ベクトル
要素数レジスタ70のカウントアツプ値を、Paral
lel Processモード指示フリップ70ツブ9
で切り替えるセレクタ76が存在する点と、第3図では
、レジスタ84への例外ベクトル要素番号をめるのに単
純にセレクタ81と82の加算を行なっているのを、第
4図では例外要素番号生成回路88を備えている点であ
る。それ以外は、第3図と同一である。また、第4図中
の例外要素生成回路88の詳細は、第5図を用いて後に
述べる。
Parallel Processモード指示7リツプ
フロツプ9がIQ+の時1即ちSfngle Proc
essモード時は、VERカウントアツプ値セレクタ7
3がVMAXを選択し、かつ例外要素番号生成回路88
が、セレクタ81の出力とセレクタ82の出力の加算回
路として働く為、第4図は第3図と等価に機能する。 
Parallel Process モード指示フリッ
プフ07プ9が+1+の時、即ちParallelPr
ocessモード時は、VERカウントアツプ値セレク
タ73はVMAX02倍を出力する倍数器75を選択し
、かつ、例外要素番号生成回路88が、各パイプライン
演算器60〜63が報告してきたベクトルレジスタ内ア
ドレスに補正を加えて先頭ベクトル要素番号と加算する
よう働くことにより、Parallel Proces
sモード時においてもSingle Processモ
ード時と同様に、ベクトル要素番号最小かつ最も若いア
ドレスの例外を選択することができる。以下、Para
llel Proces+sモード時特有の動作につい
て説明する。
Parallel Processモード時は、第2図
を用いて:説明した様に、1ベクトル命令の処理に対し
て2つのパイプライン演算器が一方は偶数番要素の処理
、他方が奇数番要素の処理という具合に対になって使用
される為に、1ループで最大VMAXX2個のベクトル
要素の処理がなされる。従って、処理済ベクトル要素数
レジスタ70を、VEND命令をデコードする度に、V
MAX×2だけ加算すること、によって、あるループで
起動されたベクトル命令の先頭ベクトル要素番号を得る
ことができる。各パイプライン演算器は、直接主記憶装
置にアクセスすることをしないので、Parallel
 Processモード指定に関係なく動作し、例外を
検出したベクトル要素のベクトルレジスタ内アドレスを
、割込処理制御部8に報告してくる。割込処理制御部8
は例外を報告してまたパイプライン演算器が、偶数番要
素を処理しているかあるいは奇数番要素を処理している
かを識別し、例外要素番号生成回路88において、偶数
番要素を処理している演算器ならばベクトルレジスタ内
アドレスを2倍したものを、奇数番要素を処理している
演算器ならばベクトルレジスタ内アドレスを2倍して+
1したものを、それぞれ先頭ベクトル要素番号に加算し
、受は付けられた例外要素番号レジスタ84にセットす
る。
以下、例外要素番号レジスタ85を4バイト長、ベクト
ルレジスタ長VMAXを256とした場合の例外要素番
号生成回路88の詳細を第5図を用いて説明する。第5
図中のpP、n、i、o−2゜0−7.JO−7,eo
−2,0−7の各ニモニックは、例外要素番号生成回路
88内のニモニックに相当している。各パイプライン演
算器でスタックすべき先頭要素番号4バイトのうち、下
1バイトは必ず0であるから、各パイプライン演算器は
先頭要素番号として、上3バイトのみを報告する( 1
o−2,0−7)。また、ベクトルレジスタ内アドレス
としては、1バイト必袂である(IO−7)。
Parallel Process モード指定かどう
か示すのが信号ppであり、例外報告元のパイプライン
演算器が奇数番号要素を処理していることを示す信号線
がnである請求めるべき例外要素番号4バイトは10−
5.0−7で示される。Single Process
モード時における先頭要素番号とベクトルレジスタ内ア
ドレスの7J11 nは、単純に1o−2,0−7トA
’0−7をマージすることによって実現される。
この時、シフタ880はpp=oである為シフト動作を
行わない0 Parallel Process モー
ド時における例外要素苦号の生成は、パイプライン演算
器が報告してきたベクトルレジスタV3アドレスを2倍
する動作、奇数番要素を処理するパイプライン演算器か
らの報告の場合は+1する動偽先頭要素番号に加算する
動作によって成されるが、これらの動作はシック880
及びORゲート881によって実現される。すなわち、
パイプ2イン演算器が報告してきたベクトルレジスタ内
のアドレスを補正する(2倍′して1加える)為に、シ
フタ880はpp=1の時 5hift out = xo ZO−Z6 =X1−X7 z7 = 5hift iu となる様構成されている。又、補正されたベクトルレジ
スタ内アドレスを、先頭要素番号に加算する為には、シ
フタ880の出力をe50〜es7とし、Parall
el Processモード時は常に127=0である
ことより、ORゲート881を設けてe27をめる。以
上述べた様に、VMAX=256の時の例外要素番号生
成回路8Bは、電5図の様な比較的簡単な回路で実現で
きる。
〔発明の効果〕
本発明によれば、ベクトル命令の実行性能を損うことな
く、ベクトル要素レベルで概念的に最初に発生した例外
を選択できるので、ソフトウェアに対して、従来のスカ
ラ処理マシンとほぼ同等の例外情報を提供することがで
きる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すベクトル処理装置全体
の概略構成図、第2図(a)はFORTRANプログラ
ムのD0ループ例を示す図、第2図(b)は第2図(a
)に対応するベクトル命令列を示す図、第2図(c)は
、第2図(a) 、 (b)に対応する主記憶装置上の
ベクトルデータを示す図、第3図はSingle Pr
ocessモード時の例外情報選択回路図、第4図は、
Parallel Process モードサポート時
の例外情報選択回路図、第5図は、第4図中の例外要素
番号生成回路の詳細回路図である。 第1図 10〜17・・・ベクトルレジスタ(VRO〜VR7)
20〜23・・・ベクトルデータフェッチ用メモリリク
エスタ(FO〜F5) 24〜25・・・ベクトルデータストア用メモリリクエ
スタ(3o〜S1) 50〜36・・パイプライン演算器(EO〜E3)4・
・・主記憶装置 5・・記憶制御装置 6・・スカラ処理装置 7・・ベクトル処理制御部 8・・・割込処理制御部 9−・・Parallel Processモード指示
フリップフロッグ第5図 7・・ベクトル処理制御部 70・・処理済ベクトル要素数レジスタ(VER)71
・・・ベクトル命令アドレスレジスタ(VIAR)30
〜36・・・パイプライン演算器 501・・・ベクトルレジスタ内アドレスカウンタ30
0・・・演算パイプライン 8 ・割込処理制御部 80・・・例外検出信号受付論理 90.91・・比較器 第4図 88・・・例外要素番号生成回路 9−Paralell Processモード指示フリ
ップ指示フリッ プ フロップ図 (α) DOI01=θ、lθ28 70 C(i)=A(<2+BCI) (bン (C) 第3図 C誘 イー 図

Claims (1)

    【特許請求の範囲】
  1. (1)並列実行可能な複数の機能要素を有し、かつベク
    トルレジスタに格納可能なベクトル要素以上の淑素を有
    するベクトル演算を処理するベクトル処理装置において
    、各機能要素が処理中の命令のアドレス、当該命令で処
    理する先頭ペタトル委素番号及び当該機能要素が例外全
    検出したベクトル要素のベクトルレジスタ内アドレスと
    をそれぞれ機能要素対応に保持する+段と、各機能皆索
    からの例外検出報告により対応する前記保持手段内の情
    報を読み出す手段とを設けたことを特徴とするベクトル
    処理装置。
JP58243943A 1983-12-26 1983-12-26 ベクトル処理装置 Granted JPS60136872A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58243943A JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置
US06/685,112 US4777593A (en) 1983-12-26 1984-12-21 Vector processing apparatus including means for identifying the occurrence of exceptions in the processing of vector elements
EP84116394A EP0147858B1 (en) 1983-12-26 1984-12-27 Vector processing apparatus
DE8484116394T DE3485119D1 (de) 1983-12-26 1984-12-27 Vektorverarbeitungsgeraet.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58243943A JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS60136872A true JPS60136872A (ja) 1985-07-20
JPH0562390B2 JPH0562390B2 (ja) 1993-09-08

Family

ID=17111339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58243943A Granted JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置

Country Status (4)

Country Link
US (1) US4777593A (ja)
EP (1) EP0147858B1 (ja)
JP (1) JPS60136872A (ja)
DE (1) DE3485119D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509716A (ja) * 2013-01-23 2016-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ベクトル例外コードを処理するコンピュータ・プログラム、コンピュータ・システム及び方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
JPH0769783B2 (ja) * 1987-11-16 1995-07-31 日本電気株式会社 例外処理方式
EP0333365A3 (en) * 1988-03-18 1991-05-08 Digital Equipment Corporation Method and apparatus for handling asynchronous memory management exceptions by a vector processor
US5367654A (en) * 1988-04-13 1994-11-22 Hitachi Ltd. Method and apparatus for controlling storage in computer system utilizing forecasted access requests and priority decision circuitry
US4935849A (en) * 1988-05-16 1990-06-19 Stardent Computer, Inc. Chaining and hazard apparatus and method
US4969117A (en) * 1988-05-16 1990-11-06 Ardent Computer Corporation Chaining and hazard apparatus and method
JP3076044B2 (ja) * 1988-07-27 2000-08-14 日本電気株式会社 パイプラインのエラー情報記憶方式
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
EP0407911B1 (en) * 1989-07-07 1998-12-09 Hitachi, Ltd. Parallel processing apparatus and parallel processing method
JP2607689B2 (ja) * 1989-07-10 1997-05-07 株式会社日立製作所 ベクトル処理装置
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5119324A (en) * 1990-02-20 1992-06-02 Stardent Computer Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) * 1990-02-21 1991-10-01 Stardent Computer, Inc. Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
US5392443A (en) * 1991-03-19 1995-02-21 Hitachi, Ltd. Vector processor with a memory assigned with skewed addresses adapted for concurrent fetching of a number of vector elements belonging to the same vector data
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
US5761407A (en) * 1993-03-15 1998-06-02 International Business Machines Corporation Message based exception handler
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE69519449T2 (de) * 1994-05-05 2001-06-21 Conexant Systems Inc Raumzeigersdatenpfad
JP3495173B2 (ja) * 1996-02-14 2004-02-09 富士通株式会社 演算処理方法および演算処理装置
US6304963B1 (en) * 1998-05-14 2001-10-16 Arm Limited Handling exceptions occuring during processing of vector instructions
US9411584B2 (en) * 2012-12-29 2016-08-09 Intel Corporation Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US20170177351A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Even and Odd Vector Get Operations
US10338920B2 (en) 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
GB2546510B (en) * 2016-01-20 2018-09-26 Advanced Risc Mach Ltd Vector atomic memory update instruction
US10216515B2 (en) * 2016-10-18 2019-02-26 Oracle International Corporation Processor load using a bit vector to calculate effective address

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55110340A (en) * 1979-02-16 1980-08-25 Fujitsu Ltd Data processing system
JPS5688560A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Vector arithmetic unit
JPS5692673A (en) * 1979-12-26 1981-07-27 Fujitsu Ltd Vector operation processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
US4298936A (en) * 1979-11-15 1981-11-03 Analogic Corporation Array Processor
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
JPS5897770A (ja) * 1981-12-04 1983-06-10 Fujitsu Ltd ベクトル命令アクセス制御方式
JPS60103482A (ja) * 1983-10-24 1985-06-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理能力を有するデ−タ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55110340A (en) * 1979-02-16 1980-08-25 Fujitsu Ltd Data processing system
JPS5688560A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Vector arithmetic unit
JPS5692673A (en) * 1979-12-26 1981-07-27 Fujitsu Ltd Vector operation processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509716A (ja) * 2013-01-23 2016-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ベクトル例外コードを処理するコンピュータ・プログラム、コンピュータ・システム及び方法

Also Published As

Publication number Publication date
EP0147858A2 (en) 1985-07-10
EP0147858B1 (en) 1991-09-25
DE3485119D1 (de) 1991-10-31
EP0147858A3 (en) 1988-04-20
JPH0562390B2 (ja) 1993-09-08
US4777593A (en) 1988-10-11

Similar Documents

Publication Publication Date Title
JPS60136872A (ja) ベクトル処理装置
US4882701A (en) Lookahead program loop controller with register and memory for storing number of loop times for branch on count instructions
US5408625A (en) Microprocessor capable of decoding two instructions in parallel
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
EP0155211B1 (en) System for by-pass control in pipeline operation of computer
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
EP0269980A2 (en) Data processor for parallelly executing conflicting instructions
JPH07281896A (ja) 情報処理装置
US4739470A (en) Data processing system
EP0094535B1 (en) Pipe-line data processing system
US7730282B2 (en) Method and apparatus for avoiding data dependency hazards in a microprocessor pipeline architecture using a multi-bit age vector
JPH0689173A (ja) ブランチ・ヒストリーを持つ命令実行処理装置
KR900002436B1 (ko) 컴퓨터의 파이프라인 처리시의 바이패스 제어를 위한 시스템
EP0503968A2 (en) Pipeline operation control method and system
JP2778610B2 (ja) パイプライン演算制御方法およびシステム
JP3558481B2 (ja) データ処理装置
JPH0248733A (ja) 情報処理装置
JP2591325B2 (ja) 分岐制御装置
JP2629479B2 (ja) 情報処理装置
JPS62159230A (ja) 命令先取り装置
JPS61100836A (ja) 移動命令論理比較命令処理方式
JPS59158441A (ja) パイプライン制御方式
JPS62159231A (ja) 命令先取り装置
JPS63289677A (ja) ベクトル命令処理装置