JPS60103482A - ベクトル処理能力を有するデ−タ処理装置 - Google Patents

ベクトル処理能力を有するデ−タ処理装置

Info

Publication number
JPS60103482A
JPS60103482A JP14983584A JP14983584A JPS60103482A JP S60103482 A JPS60103482 A JP S60103482A JP 14983584 A JP14983584 A JP 14983584A JP 14983584 A JP14983584 A JP 14983584A JP S60103482 A JPS60103482 A JP S60103482A
Authority
JP
Japan
Prior art keywords
register
vector
data
processing
cpu
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
JP14983584A
Other languages
English (en)
Other versions
JPH0326872B2 (ja
Inventor
レスリー・チヤールズ・ガーシア
デビツド・チヤールス・チヨン‐ピアン‐ギ
スチユアート・ゴードン・タツカー
マイロン・ウイリアム・ザジヤツク
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS60103482A publication Critical patent/JPS60103482A/ja
Publication of JPH0326872B2 publication Critical patent/JPH0326872B2/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
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 【産業上の利用分野〕 本発明はデータ処理装置番;関するものであり、具体的
には、現存の制御技術を用いた機能(ファンクショナル
)装置、及びベクトル計算を行なう目的で設計された機
能装置でその目的を達成するためのスカラ計算用のデー
タ径路を含んだデータ処理装置に関するものである。
〔従来技術〕
下記の米国特許はベクトル・データ処理を行なう現存の
データ処理構造の代表例である。
米国特許第4128880号はベクトル処理のために特
別番;設計されたプロセッサを開示するが、それは独自
のプログラミングを必要とし、処理のためにベクトル・
データをそれに供与するためにはホスト・コンピュータ
に依存しなければならない。この米国特許は多くのユー
ザーの必要性を越えた可能性を提供する極めて大きいプ
ログラムのため極めて高い速度で処理する他のプロセッ
サをも示している。
ベクトル・オペランドを処理するための他の例は米国特
許第4172287号である。元来スカラ計算用に設計
された一般用データ・プロセッサであって、各インスト
ラクションを実行するため1対のオペランドを処理する
ように設計された演算兼論理装置を含むものを改造し、
ベクトル命令を識別できるようにした。改造の大部分は
ベクトル素子のアクセスのためのメモリ・アドレス演算
の取扱に関係する。処理全体の速度を高めるため極く限
られたメモリ・アドレシング状態の下でのみ、ベクトル
・バッファを加えて使用に供している。しかしこのよう
に改造しても元来の演算装置が依然として使用される。
後者の米国特許ではベクトル命令のマイクロプログラミ
ングのため追加の記憶装置も必要となり、この形式の実
行制御につきものの速度低下を伴なう、更に基本プロセ
ッサの割込み処理能力は、エラー処理の精度が低い場合
はベクトル処理の状態に依存する。
〔発明が解決しようとする問題点〕
本発明の解決課題は次の通りである。
(1)中央処理袋[(CPU)の基本的な命令処理・実
行装置に対してベクトル処理機能装置を接続するだけで
、高速ベクトル処理能力を持った一般用データ処理シス
テムを提供すること。
(2)ベクトル機能装置へ推進信号を与えるためにマイ
クロプログラム制御しか必要でないマイクロプログラミ
ング制御を有する基本的データ・プロセッサ用のベクト
ル処TIIm提供すること。
(3)ベクトル例外条件を正しく処理するため適切な基
本システムに対して、精密な割込み及びエラー情報を提
供すること。
(4)アドレス可能なベクトル・レジスタと、長い連鎖
状素子のうちの特定素子に対してのみ融通自在な処理を
行なうことを可能にするマスキング能力と、を含んだベ
クトル処理用の機能装置を提供すること。
〔問題点を解決するための手段〕
上記の課題は、アドレス可能ベクトル・レジスタ、並列
加算器及び乗算/除算装置を含むパイプライン式演算装
置、パイプライン式演算装置を並列化する例外条件又は
エラー表示論理、及びオペランド・アクセス制御のため
のマスク論理を含んだハード配線されたベクトル処理機
能装置によって解決される6ベクトル機能装置は基本プ
ロセッサの命令処理兼制御論理と、実行する命令を受取
るための基本装置のオペランド取出し能力及び記憶能力
と、動作されるべきベクトル素子に完全に依存する。ベ
クトル処理機能装置は基本システムのマイクロプログラ
ム制御からアドバンス信号を受取ることシこより基本シ
ステムと同期した状態でベクトル処理を進める。
ベクトル処理機能装置の演算パイプラインは夫々例外条
件又はエラーを表示する論理を含んだ複数の段より成る
。例外条件又はエラーを表示する論理は間違った結果を
出すのを防止し、且つ正しく処理して例外条件から復旧
するためその例外条件又はエラーの情報を基本システム
に提供する。
マスクレジスタ及び論理はベクトル機能装置のベトクル
記憶中の幾つかの素子を統合することにより、長いベク
トルのうちの幾つかの素子だけを取扱う融通性を与える
。これにより、一旦素子がアクセスされてしまうと処理
に手数かががらなくなり、演算装置のパイプラインを非
常に有効に利用できるようになる。
〔実施例〕
第2図は本発明の対象であるVPU20を含んだデータ
処理システムの全体図である。第2図のVPU20を除
く残りの部分が米国特許第4200927号に開示され
たような基本データ処理システムである。
メモリ装置21はプロセッサ記憶23及びプロセッサ記
憶制御機能(PSCF)24を含む。メモリ装置21は
プログラム命令と、VPU20で処理すべきベクトルを
含むデータ・オペランドとを記憶するために使用する。
CPU22は命令を予じめ処理する機能(IPPF)2
5.及びE機能装置!26を含む。これらの装置の詳細
は米国特許第4200927号に開示されている。IP
PF25はE機能26が実行すべきすべての命令及びV
PU20が実行すべきすべての命令の取出し及び符号解
読を引受ける。E機能26は非ベクトルを処理する命令
を実行し、E機能26とメモリ装置21との間にデータ
径路27を作る。E機能26は命令実行制御信号を発生
するためのマイクロプログラム制御記憶を持つ。
基本データ処理システムとVPU20との相互接続はV
PU20及びE機能26間のインタフェイス28と、V
PU20及びlPPF25間のインタフェイス29とに
よってなされる。
第1図はVPU20及びCPU22(7)種々ノ機能装
置を示す。情報を含む詳細は第2図に示すインタフェイ
ス28及び29の説明に譲ることにする。
インタフェイス29はlPPF25中のI素子命令キュ
ー30からVPtJ20のベクトル命令レジスタ31及
びQ命令バッファ32へベクトル命令OPコードを送る
インタフェイス29はベクトル・インデックスレジスタ
33及びストライドレジスタ34間でアドレス情報を転
送するのにも使用される。ストライドレジスタ34は順
序づけられたベクトル素子間の主記憶アドレス区切りを
指定するアドレス情報を収容している。
VPU20及びCPU22のE機能26間のインタフェ
イス28の詳細は第1図に示す。第2図のVPU20及
びメモリ装置21間のデータの転送はデータバス35に
よって行われる。第2図のメモリ装置21からVPU2
6へのデータ転送はデータバス27、E機能26のレジ
スタ36.データバス35、VPU20中のレジスタ3
7へと行なわれる。VPU20から第2図のメモリ装置
21へのデータ転送は、VPU20中のレジスタ38又
はラムダレジスタ39から2方向性のバス35を介して
E機能26中のレジスタ40を介してバス27へと行な
われる。
多重の演算パイプライン処理がVPU2Qで行われ、長
いベクトルを処理するときには多量のアドレス演算が行
われる。多様なエラー状態がCPtJ22又はVPU2
0に生じたときは、エラー状態が生じた命令実行順序に
於ける正確な地点を表示することが大切である。
生じうる1つのエラー状態はメモリ装置21からE機能
26へのデータアクセスに於けるエラーの検出に関係す
る。E機能26に於けるエラーの検出に反応してすべて
の処理を打切ると言うよりは、アクセス例外条件がE機
能26中の41で受取られて線42を介してVPU20
のアクセス例外条件機構43へ送られる。43が受取っ
た例外条件は以後の時刻で利用されて、どれだけの命令
処理がベクトル素子の長いストリングに対して行われた
かどうかシ;ついての一層正確な情報を与えるにれにつ
いては後述する。
生じうる他のエラー状態は、VPU20での演算エラー
の検出に関係する。演算エラーに応答して例外条件コー
ドが44で作られ、線45を介してCPU22の状態表
示器46に送られる。演算例外条件はコード化された形
で表わされて、CP[22による解析のため状態表示器
(トリガ)46に記憶され、なすべき訂正処理を決定す
るのに利用される。
前に説明され第1図に示されたように、E機能26はそ
の基本制御機構としてマイクロプログラム制御記憶47
を有する。分岐即ち制御記憶47中のマイクロ命令実行
の順序の変更が論理48によって信号されて、種々の分
岐点を表示する。分岐要求を表わす種々の信号線がVP
U20からサービス要求49によって信号され、線50
を介して分岐点論理48へ送られる。
第1図に示す1つの最後の線(第2図のインタフェイス
の1部である線)は線51である。マイクロ命令が制御
記憶47から読取られてデータレジスタ52に入れられ
たとき、符号解読器がCPU22のE機能26へ実行制
御信号を与える。本発明の1部としてVPU20の動作
のタイミング制御がCPU22の基本クロックサイクル
によって行われる。VPU20の種々の機能の順次進行
は、データレジスタ52の符号解読からの線5工上の信
号の制御を受ける。この信号は推進53と名付けられる
。VPU20に於けるすべてのタイミング及びゲート付
勢は、線51上のマイクロ命令順序の制御を受けてそれ
と同期し、VPU20のすべての論理及びゲートへ進む
線54上の推進パルスに応答する。
第3図は第1図の線50上に信号されるVPU20の状
態情報を示し、それらの状態情報は制御記憶47からの
マイクロ命令の順序を制御するため分岐点論理48で使
用されるものである。信号線55及び56は第1図のl
PPF25及びE機能26からのベクトル処理関連信号
線を示す、制御記憶47のマイクロ命令順序に於ける分
岐は、VPU20の準備完了、オペランド取出し又は記
憶のための要件、ベクトル命令の終端、及びベクトル例
外条件表示を表わす幾つかのVPtJ20の状態で生じ
る 第4図は8、本発明のVPtJ20の種々の径路、レジ
スタ、機能装置を示す、VPU20及びcpU22間の
インタフェイスに関係する幾つかのレジスタ及びバスは
第1図と関連して既に述べた。
バスはインタフェイス線29及び35を含む。レジスタ
としてはデータ・イン・レジスタ37.夫々ステージA
及びラムダと表記されたレジスタ38及び39.命令レ
ジスタ31.命令バッファ32、及びアドレス・インデ
ックスレジスタ33を含む。
これらのレジスタ、−まだ説明していない他のレジスタ
、及び演算装置の機能について以下に説明する。第4図
にベクトル・レジスタ・アレイ57が示されている。こ
のアレイ57は16個のベクトル・レジスタ(VR)を
含み、各VRは128個の4バイト素子で構成されてい
る。VRを(奇偶ペアに)結合して2倍語オペランドを
形成してもよい。ベクトル・レジスタ・アレイ57のア
ドレシングは後述の多数のアドレス・レジスタ(第4図
では一般的に58で示す)と関連する。
ステージムレジスタ38及びステージBレジスタ59は
VR57から読出されたデータを受取る。
レジスタ38からのデータは命令次第でベクトル・デー
タ径路又はE機能26の何れかへ進む。レジスタ38は
線60上のベクトル・マスク・レジスタ(VMR)から
のデータを受取ることもできる。
VMRの機能は後述する。レジスタ39は演算データの
流れに対して遅延レジスタとして使用されるばかりか、
レジスタ38からEIa能26へ送られているデータに
対してバックアップ・レジストとして使用される。デー
タ遅延は正しいVRアクセスを実行するのに必要である
レジスタ61及び62は種々の源からの情報を受取る。
その出力は浮動小数点演算のための指数整合時に使用さ
れる予備シフト論理へ送られる。
夫々レジスタ63及び64にある演算・論理装置(AL
U)はALU65によって処理されるべきデータを収容
したステージング・レジスタである。
演算・論理装置(ALU)65は並列のバイナリ加算器
である。ALU取出しレジスタ66は前のサイクルで得
られたALU65の出力を保持する。
事後正規化論理67が浮動小数点演算用に設けられてい
る。ALU出力レジスタ68の入力は事後正規化論理6
7の出力を受取る。レジスタ68はALU65に@還す
るデータに対して遅延レジスターとして働く。レジスタ
68はレジスタ61,63.66と一緒に4サイクル閉
回路を形成する。
これは後述のベクトル累算命令用に使用される。
インデックス・レジスタ33はレジスタ68の出力を入
力として受取る。インデックス・レジスタ33はインデ
ックス形式の命令中に発生するアドレスを保持するため
に使用される。特定の場合には、そのアドレスは次に第
1図に示すI PPF25のアドレス増分器へ送られる
VR取出しレジスタ69はVRアレイ57に書込まれる
べきデータのためのステージとして働く。
その入力はレジスタ37から又は幾つかの源を持つ取出
しバス70からのものである。
レジスタ71及び72はそれぞれ乗算ステージAレジス
タ及び乗算ステージBレジスタである。
これらのレジスタは指数台R1論1m73を含む乗算デ
ータ径路の残り部分に送るデータを収容する。
被乗数Aステージ・レジスタ74は乗算に対して被乗数
を、除算に対して除数を保持し、更に除算機能中は被除
数をバッファする6乗数レジスタ75は乗算用の乗数を
記憶し、且っ除算の商を記憶する。
レジスタ74及び75の出力は乗・除算装置76に対す
る入力となる。乗・除算装置76の出力径路に積・商レ
ジスタ77及び事後正規化論理78がある。乗・除算デ
ータ径路の最後のレジスタは乗算取出しレジスタ79で
あって、事後正規化論理78の出力を受取り、且つ除算
機能の1部としてのすべてのベクトル除算命令に対し及
びある種の複合ベクトル命令に対し、ALU65のデー
タ径路へ供給されるべきデータのための遅延レジスタと
して働く。
前述のレジスタ37は第1図のE機能26中のレジスタ
36から到来するデータに対するバッファとして働く。
ALU65はバイナリの短精度オペランド及び良精度オ
ペランドに対して加算及び減算を行う演算・論理装置で
ある。ALU65はAND、OR1及びE’X OR論
理動作と、オペランドの0、l、2、又は3ビツト左へ
論理的にシフトする動作とを行うことができる。
インタフェイス29の情報を受取る命令バッファ32は
命令実行中VPU20中の他の符号解読回路が使用する
ベクトル・レジスタ・アドレス及びベクトル命令OPコ
ードを保持する。
第4図に於てベクトル・オペランド・データはVRアレ
イ57又はデータ・イン・レジスタ37を介してCPo
、22から到来する。両オペランドがVRアレイ57か
ら到来したときは第1のベクトル素子はデータ径路のA
側を通って進行する。
第2のベクトル素子はデータ径路のB側を通って進行す
る。データ径路のすべての部分(ALU65又は乗・除
算装置76)が同時にステップする。
最初、A側ベクトル・オペランドの第1の素子がB側ベ
クトル・オペランドの第1の素子よりも1サイクル早<
VRアレイ57がら読出される。かくて2サイクルの後
にA側索子Iはラムダ・レジスタ39にあり、B側索子
lはステージBレジスタ59にあり、A側索子2がステ
ージAレジスタ38にある。この初動オフセットはVR
アレイ57より成る単一ポート・アレイ・チップに順応
するだめに与えられた。このオフセラI〜は後述の物理
アレイ・チップに於ける論理ベクトル配列と関連して、
任意所定のサイクル中には任意のアレイ・チップから1
度しか読取られないようにする。■R取出しレジスタ6
9からのベクトル結果は各機械サイクル毎にVRアレイ
57中に記憶される。
第2図のメモリ装置21からの1つのベクトルがあり且
つVRアレイ57からも1つのベクトルがあるとき、V
Rアレイ57からのベクトルはデータ径路のB側を通っ
て流れる。E機能26から到来するベクトルはレジスタ
37に入り1次にAL Uシフl−Aレジスタ61又は
乗算ステージAレジスタ7Iの何れかで始まるデータ径
路のA側を通って流れる。ベクトル結果は命令によって
指定さJLる通り宛先VRアレイ57に書込まれる。
VRアレイ57から1つのベクトルがあり且っE機能2
6からスカシ・オペランドがあるとき、C,I)U22
はある信号を使ってALU65又は乗・除算装置76デ
ータ径路の何れかのA側にスカシ・オペランドを送る。
スカシ・オペランドはALUシフトAレジスタ61又は
乗算ステージAレジスタ71の何れかに保持され、後続
の論理へ供給される。VRアレイ57のオペランドはデ
ータ径路のB側を通って流れる。結果は宛先VRアレイ
57に書込まわる。
メモリ装置21からの1つのベクトルと、E機能26か
らの1つのスカシ素子とが存在するとき。
CPU22はスカシ・オペランドをALU65又は乗・
除算装置76のデータ径路の何れかのA側に送る信号を
発生する6然る後CPU22は推進信号を出してベクト
ル記憶オペランドをデータ径路のB側経山でステップさ
せる。次に結果が宛先VRアレイ57に書込まれる。
一連のベクトルの素子をメモリ装置21からVPU20
へ転送すべきときの、ベタ1〜ル・ロード命令のための
データ転送径路はCPU22からレジスタ36、データ
・バス35を通ってデータ・イン・レジスタ37へ入る
。次にデータはVR取出しレジスタ69を介してVRア
レイ57中に記憶される。1つの素子がVR中に書込ま
れる度毎に、後述のバク1〜ル素子アドレス・レジスタ
が1宛増分される。ストライド(即ち相次ぐ素子間のメ
モリ・アドレスで1以外のもの)を用いるロード命令に
対しては、CP U 22はベクトル素子の記憶アドレ
スを計算し、記憶に対する取出し要求を作り、lサイク
ル当りl素子の最大速度でデータを転送する。後述のマ
スク・レジスタを使用するベクトル・ロード命令に対し
ては、ビット・マスクを試験して特定素子がVR57中
にロードされるべきか否かを決定する。アドレス計算の
1部としてインデックス・ベクトルを使用する命令に対
してはV P U 20は記憶アドレスを計算する。
次にそのアドレスはインタフェイス29を介してCI)
U22へ送られて、取出し要求を作り且つデータをデー
タ・バス35経由でVPU20へ転送する。
ベクトル記憶命令の間にVPU20はデータをVR57
からステージムレジスタ38及び両方向性データ・バス
35紅由でCPU22へ転送する。
若しもクロック停止状態がCPU22に生じたならば、
1サイクル後にVPU20に於て1つの信号がアクティ
ブになる。データ・バス35上に乗せるべきであったデ
ータはうムダ・レジスタ39保持される。実行が再開し
たときラムダ・レジスタ39中のデータはデータ・バス
35上に出される。ベクトル・ロード命令と同じような
態様で、アドレス引算、ベクトル・マスク利用、及びイ
ンデックス・ベクトル使用が行われる。
CPU22によるVPU20のサイクリングの強制的な
制御を第5図に示す。CPU22で既に述べた素子は制
御記憶47、制御記憶データ・レジスタ52及びレジス
タ36を含む。CPU22によって行われる強制的な制
御は、CP推進と標記されたlサイクル・トリガ80を
セットする制御記憶データ・レジスタ52中の特定のマ
イクロ命令の特定マイクロ順序を検出することによって
達成される。信号線51が付勢されてVP推進信号54
を53に於て発生させ、その信号はVPU20のステー
ジ間のデータ径路のすべてのデータ径路ゲー1〜へ供給
される。ベクトル・データは推進信号54が存在しない
限りデータ径路を通って推進されない。これはVPU2
0に対する強制的なCPU22の制御及び同期を保証す
る。ベクトル推進信号54がアクティブでないときは、
データ流れ中の各レジスタはそのデータを保持する。
アクティブであるときはデータはVPU20にある命令
によって指図された通りにゲー1〜される。
第5図にVPU20中の機能データ径路を並列化するデ
ータ有効ビットを示す。81で示す初期データ有効ビッ
トがC1)U22のデータ・レジスタ36と関連づけれ
られ且つマイクロ命令マイクロ順序によってセラ1−さ
肛て、レジスタ36の内容が有効であること及びVPU
20へゲート可能であることを表示するように働く。デ
ータ有効ピッ1〜の機能は特定のステージで処理されつ
つあるデータの有効性を保障することである。取出しレ
ジスタ69と関連したデータ有効ビットが存在しないと
きはVR57の更新を阻止する。オペランドの源次第で
CPU22又はVR57の出力が、処理されるべき各素
子に対してデータ有効ビットをセットし、最後の素子が
処理された後にデータ有効ビットをリセットする。
取出しレジスタ69と関連したデータ有効ピッ1〜82
がVR57の更新を許すとき、正しく処理され終ったベ
タ1〜ル素子の数を表示するためカウンタが増分される
。このカウンタはベクトルのすべての素子の処理の完了
をも表示する。このカウンタはエラーが生じた状況下で
、及び特定のベクトル命令に対する処理が再開されたと
き正しく処理され終った素子の総数を表示する必要が生
じた状況下で使用される。データ径路を通るデータ有効
ビットの通路が実行中の特定のベクトル命令次第で制御
線により形成される 第6図に示すすべての素子は既に説明されたものであり
、前と同じ参照番号を(Jしである。第6図番未2つの
代表的なベクトル命令に対するVPU20内のデータ流
れ径路の2つの形態を示す。実線のデータ径路はVR累
算命令を実行するための形態を示し、破線の径路はVR
及び主記憶乗算・累算命令を実行するための形態を示す
ベクトル累算命令に対しては、4つの部分和がV R5
7から読出されてデータ流れのA側に送られる。部分和
はステージAレジスタ38、ラムダ・レジスタ39、A
LUシフトAレジスタ61、及びALUイン・レジスタ
63を介してステップされる。最初の部分和がレジスタ
63に到達し且つそのステージに対する有効ビットがO
Nになったとき、B側のデータ流れの読取りが始まる。
データ径路中のデータはステップし続ける間中B側が読
出される。
累算されるべき素子がステージBレジスタ59に入ると
き、データ流れのA側からの最初の部分和がALU取出
しレジスタ68に入る。次の推進パルスでALU取出し
レジスタ68の内容を線83経出でALUシフトAレジ
スタ61へ転送し、その間にステージBレジスタ59の
内容はALUシフトBレジスタ62へ転送される。推進
パルスは今や両オペランドをデータ流れの中でステップ
し、累算された結果を先ずALU出力レジスタ66ヘゲ
ートし、次にALU取出しレジスタ68へゲートし且つ
線84を介してVR取出しレジスタ69ヘゲートする。
VR取出しレジスタ69は累算結果をVR57の4つの
部分和場所のうちの1つへ送り込む、ALU取出しレジ
スタ68はすべての結果をALUシフトAレジスタ61
に送り返す。この部分和は次にB側からの他の素子と共
にALU65へ供給され、この動作が継続する。累算命
令の結果は次の通りである。即ち4番目毎の素子が加算
され、その結果がベクトル・レジスタの4つの部分和場
所のうちの1つへ入れられる。
第6図の破線は主記憶からのデータを使用する乗算及び
累算のための構成を示す。第1の推進パルスでデータを
記憶からデータ・イン・レジスタ37ヘゲートし、VR
57オペランドの第1の素子をステージBレジスタ59
へと送り込む。第2の推進パルスでデータ・イン・レジ
スタ37を乗算ステージAレジスタ71ヘゲ−1〜し、
ステージBレジスタ59を乗算ステージBレジスタ72
ヘゲートし、第1の部分和をステージ入レジスタ38ヘ
ゲートする。第2の推進パルスで付勢されたゲートは更
に5つのサイクルの間使用される。この時点で更に5つ
の素子が乗・除算装置76のデータ流れの中に読込まれ
ている。しかし乗算取出しレジスタ59中のデ二りは未
だ有効であることが確認されておらず、部分和0がAL
U取出しレジスタ68中に存在する。A L U 65
に向うデータ流れは、乗算取出しレジスタ79が有効デ
ータを表示するまでは更に推進しないように阻止される
。正当なデータ及びそれと関連した有効ビットが乗算取
出しレジスタ79に到達したとき、次の推進パルスがA
LU取出しレジスタ68をALUシフ1〜Aレジスタ6
1ヘゲートシ1乗算取出しレジスタ79をALUシフト
Bレジスタ62ヘゲ−]・する。更に4つ推進した後に
第1の部分和の累算された結果と有効ピッ1−と−緒の
乗算結果とがALU取出しレジスタ68とVR取出し6
9に到達する。結果をベクトル・レジスタ57へ書込む
ことが始まるのは、積及び部分和0の第1の和がΔLU
取出し68に到達したときである。
第7図、第8図、第9図はベクトル・レジスタ・アレイ
57と、第4図中58で略示したベクトル・レジスタ・
アレイ・アドレシング機構とを示す。
アレイ57は夫々128個の4バイト素子より成る16
個のベクトル・レジスタ(VR)を含む。
VRは2倍ワード・オペランドを形成するため組立台わ
せる(奇・偶ペアにする)ことが可能である。アレイ全
体は64アレイ・チップ85の形をとる。各チップ85
は9ピッ1〜幅(8ビツト+パリテイビツト)である。
アレイ・チップ85はIサイクル当り唯1度の読み/書
きに制限されるので、第7図に示すようにVRを4路イ
ンターリーブする必要がある。アレイ57の各縦側は、
4つのグループに分けた16個のチップ85より成る1
つのインターリーブを表わす。アレイ57の各横列は4
つのVRを表わす。4つの縦側に形成されたベクトル・
レジスタ0番(VRO)についての素子0〜127の関
係は第7図に示される。VRはベタ1〜ル動作のために
1サイクル当り2つの素子を与えることができ、且つベ
クトル動作がら又はCPU22から1サイクル当り1つ
の素子を受取ることができる。第7図はVRレジスタか
ら38のようなステージ・レジスタへ読出すためのデー
タ径路を示し、第8図はVR取出しレジスタ69を介し
てVR中ヘデータを読込むことを示す。
第4図の58で略示したベクトル・レジスタ・アレイ5
7のアドレシングの詳細を第9図に示す。
3つのベクトル素子アドレス・レジスタVEAR1、v
EAR2及びVEAR3がある。これらのレジスタは第
9図では一般的に参照番号86で示す。■EΔR2及び
VEAR3は任意所定のサイクル中にVRから読取られ
る源ベタ1〜ルの素子の数を収容するのが普通である。
V E A R1はVRに畳込まれるベクl−ルの素子
の数を収容する。
VEAR’lは結果をVRに書込む大概のべり1〜ル命
令に対するベタ1−ル割込みインデックス(VIX)と
しても利用される。各VEARはそれ自身の増分器によ
って更新され且つ第4図に示すデータ・イン・レジスタ
37からロードされる。
VIXはVR取出しレジスタ69と関連したデータ有効
信号がVRへの書込みを許容するように働くときにのみ
増分される。従って若しもVRは更新されるべきでない
ことをエラー状態が示すならば、VIXはステップされ
ず、且つ特定命令の実行中に処理されてしまった素子の
数を表示する。
この情報は任意の固定ルーチンの後、命令が再開される
とき利用可能である。
アドレシング機構も又3つのベタ1〜ル・アドレス・レ
ジスタ(VAR)を含む。これらのレジスタは第9図で
は一般的に87で示す。V A RはVARI、VAR
2,VAR3と標記される。VAR2及びVAR3は素
子が読取られつつある源VRの数を通常収容する。V 
A R1は素子が書込まれつつある宛先VRの数を収容
する。
V’EAR86のビット5及び6は線88上に縦側選択
(CS)信号を出し、VAri7のピッ1へ2及び3は
線89上に横列選択(R5)信号を出す。90で示す7
ビツトのアドレスは各アレイ・チップ85中の128個
の場所のうちの特定の1つをアドレスするために使用さ
れる。
第9図に示すように各縦II(インターリーブ)は独立
mlにアドレス可能である。同じアドレスが1つの縦側
中のすべての16アレイ・チップ85に対して与えられ
るので、1つの縦側中に書込んで他の3つの縦側のうち
の任意の1つから読出すことが可能である。データ選択
はステージ・レジスタ中ヘゲートする前に論理チップに
於て行われる。類オペランドは半分のステージ・レジス
タ(例えばレジスタ38)の両部会に提示される。
長オペランドについては偶数番レジスタ素子が左半分(
0〜31)へ進み、奇数番レジスタ素子が右半分(32
〜63)へ進む。
第10図、第11図、第12図はベグ1−ル処理中のマ
スク・レジスタの種々の用途を示す。ベタ1−ル・マス
ク・レジスタ(VMR)は論理的に128ピッ1−で構
成され、その任意の1つをVPU20での処理によって
セラ1−又はリセッ1−することができる。それは、主
記憶からの情報又は主記憶に記憶された内容と共に、l
サイクル当り8ピッ1−の速さでロードすることができ
る。マスク・レジスタの128個のビットはVRに記憶
された128個の素子に相当する。第10図に示すよう
にマスク・レジスタの128個のピッ1−は更に16個
の8ビツト・レジスタとして構成されたVMRアレイ9
1として実施される。V M Rの特定のバイナリ・ビ
ットの用途はVMRアドレス・レジスタ92及びビット
選択論理93によって選択される。VMRアドレス・レ
ジスタ92のピッh 0−3はVMRアレイ91中の1
つのレジスタを選択し、ビット4−6は選択されたレジ
スタの8個のバイナリ・ビットのうちの特定の1つを選
択する。演算及び論理的処理中にマスキングを使用する
か否かの選択がベクトル・モード・トリガ94のセット
状態又はリセッ1〜状態によってなされる。
ゲート95はベクトル・モード・1−リガ94によって
能動化されて、ピッ1へ選択93で選択された特定のマ
スク・ピッ1〜がバイナリの1であるときに出力96を
出す。
マスク・レジスタに関連する第1の命令グループは演算
命令及び論理命令より成る。ベクトル・モード・トリガ
94がオフのとき、1つのベクトルの各素子はデータ流
れに従って流れて処理され、結果がVR57で取出され
る。しかし若しもモード・1−リガ94がオンならば1
つの例外事項を除いて前と同様に処理が進行する。AL
U65の結果がΔ■、U出力レジスタ66へ進み、且つ
有効ビット97がセットされたとき、バイナリ1のマス
ク・ピッ1−を表示した信号96は有効ピッ1〜97を
VR取出しレジスタ69と関連した有効ビット98ヘゲ
−1〜することができる。バイナリ0のベクトル・マス
ク・レジスタはA L U出力結果をVR57に記憶さ
せない。ベクトル・マスク・レジスタ・アドレス・レジ
スタ92はALU出力レジスタ66に結果が記憶される
度毎に1宛増分される。
第11図に示すように、マスク・ビットはロード、拡張
と呼ばれる命令に於て使用される。この場合、ベタ1〜
ル素子はデータ有効ビットと共に主記憶中の順次アドレ
スによりCPU2,2からデータ・イン・レジスタ37
へ転送される。推進パルス54毎に宛先VR57と関連
したベクトル素子アドレス・レジスタがVMRアドレス
・レジスタ92と一緒に1宛増分される。バイナリ1で
あるベクトル・マスク・ビットと関連した宛先V R5
7の素子のみが取出しレジスタ69からデータを受取っ
て、VR57に素子を記憶させるように98に於てデー
タを有効にセットする。
第12図に於てベクトルの128素子の順序がVR57
からステージ・レジスタ38又はラムダ・レジスタ39
へ読出され、且つインタフェイス線35を介してCPU
22へ送られる。しかし線99を介してCPU22へ信
号されるバイナリ1なる相当したマスク・ピッ1−を有
する素子のみが実際に主記憶に記憶される。
VPU20が例外条件又はエラー条件に関する正しい情
報を出す様子が第13図及び第14図に示される。VP
U20のデータ流れの種々のステージが前と同じ参照番
号を付してこれらの図で示さJする。記憶アクセス例外
に対するデータ径路を第13図に示す。記憶アクセス例
外に関する例外ビットのデータ径路はVPU20の機能
データ径路と並行する。データ径路ステージ当り1つの
例′″外ビットがある。この例外データ径路は第2図の
主記憶素子21からのベクトルを使う命令用に使用され
る。若しもアクセス例外が特定素子用の記憶装置で検出
されたならば、CPU22は線42の信号(通常0であ
る)を1にし、その信号を不良データと一緒にVPU2
0へ送る。その信号はデータ・イン・レジスタ37で始
まるアクセス例外データ径路へ送られて43に於て並列
データ径路が始まる。このアクティブなビットは不良デ
ータと一緒に流れ、そのデータがV R57で取出され
るのを禁止する。不良データが取出されたザイクルの間
に、V P U 2.0は線100を介してCPUにア
クセス例外を信号し、この命令に対するデータが更に取
出されるのをすべて禁止する。線100は第3図に示す
ベクトル取出し例外と表記された線に相当し、第1図に
示す制御記憶47と関連した分岐論理48へ供給される
アクセス例外データ径路は実行中の命令に従って制御線
により形成される。線100上の例外信号の識別に際し
て、CPU22マイクロコードはその処理ループを、例
外に遭遇したすべてのベクトル命令に対し共通の終了ル
ーチンに分岐する。
このルーチンに於てマイクロコードは宛先ベクトル・レ
ジスタを表わすV E A R1のカウント状態により
表示されるVIXを使用し1例外を有する素子の記憶ア
ドレスを計算する。アドレス情報を更新した後、マイク
ロコードがファイリング場所への取出しを行ない、標準
的な割込み処理ルーチンに入る。第13図に示す通り、
一般的に101で示す論理がアクセス例外をCPU22
へ送り。
VR取出しレジスタ69に収容されたデータに対してV
R57を更新することを阻止する。論理101の3つの
入力の1つの線102上の信号は、データ・イン・レジ
スタ37からのVR,57を通常ロードする命令に対す
るアクセス例外を表示する。信号線103はALU出力
レジスタ66に於Iづるデータに対するアクセス例外を
表示し、線104は乗・除算装置76から取出される以
前の時点に於けるアクセス例外を信号する。線105の
(g号は第14図で説明する演算例外に関するものであ
る。
第14図はVPt120のデータ径路の並列部分である
演算例外ビットのデータ径路を示す。この例外の形式は
3ビット・ワードに符号化される6;3ビツト・コード
がV I) U 20から第1図と関連して既に述べた
線45を介してCPU22の状態1−リガへ送られる。
106で示すように3ピッ1〜例外コードは、第13図
に示したアクセス例外もあるときにはCPU22へ転送
されることはない。
前に示した通り、演算例外径路も又VPU20のデータ
径路を並列化する。演算例外が見出されるデータ径路中
に3つの異なった場所がある。データがステージ・レジ
スタ71及び72から第4図の107で示を乗・除算装
置76へ転送されるとき、0による除算及び未正規化オ
ペランド例外に出会う。乗算オーバーフロー、及びアン
ダーフロー例外に乗算取出しレジスタ79の直前で出会
うことがある。最後に第4図のALU65に於て。
ALUオーバーフロー、アンダーフロー、及び重み損失
例外にALU取出しレジスタ68の直前で出会う。
線45を介してレジスータ44からCPU状態46へ送
られる種々の演算例外に対するコートは下記の通りであ
る。
001:指数オーバーフロー 010:指数アンダーフロー Oll:重み 100:固定小数点オーバーフロー 101:未正規化乗・除算 11O:浮動小数点0除算 かくて以上の説明により基本データ処理装置に付加可能
なベクトル処理装置の構成が開示された。
そのベクトル処理装置の順序づけは、マイクロプログラ
ム制御記憶の正規の順序づけと同期した積極的制御を受
ける。更にエラー条件又は例外条件の精密な表示を、基
本データ処理システムの割込み処理機構へ信号すること
ができる。それは基本データ処理システムが解析するた
め既知′の状態にベクトル処理装置を置くため、ベタ1
−ル素子の記憶全体を制御しているベクトル処理装置に
よって信号される。そしてバク1−ル処理装置は更に特
定の演算例外を表示するコード化された信号を基本デー
タ処理装置へ与える。基本データ処理装置の主記憶の融
通性あるしかも効率的な利用がベクトル・マスク・レジ
スタと関連した論理の使用を通じて本発明のベクトル処
理装置によって実現される。
〔発明の効果〕
本発明のよAしば一般の基本的なデータ処理装置に付加
するだけで高速ベクトル処理機能を果たすバク1−ル処
理装置を実現することができ、しかも一旦ベク1−ルに
機能装置のベクトル記憶中の素子がアクセスされてしま
うと処理に手数がかからなくなり、演算装置のパイプラ
インを有効に利用できるようになる。
【図面の簡単な説明】
第1図は本発明のベクトル処理装置と基本データ処理装
置の中央処理袋@(cpu)との間の主要インタフェイ
スを示す図、第2図は既存のデータ処理装置と共に本発
明を含んだベタ1〜ル処理装置を示す全体的ブロック図
、第3図はベクトル処理に関して基本データ処理装置の
マイクロプログラム分岐論理に与える信号を示す図、第
4図は本発明のベクトル処理装置の機能素子及びデータ
流れ径路中のこれらの素子の制御可能な相互接続を示す
図、第5図は本発明のベタ1〜ル処理装置のデータ径路
及び基本データ処理装置のマイクロプログラム制御によ
るデータ推進の制御を示す図、第6図は2つの代表的な
バク1〜ル命令を実行するための本発明のベクトル処理
装置の素子の相互接続図、第7図は本発明のバク1−ル
処理装置のバク1〜ル・レジスタの配列及び出力データ
径路を示す図、第8図は同じくベク]・ル処理装置のベ
クトル・レジスタの配列及び入力データ径路を示す図、
第9図はバク1−ル処理装置のベタ1−ル・1ノジスタ
のアトレシング論理を示す図、第1O図はベクトル処理
装置に於ける演算中の1つのベクトルの素子と関連した
マスキングの使用を示す図、第1I図は主記憶からベク
トル・レジスタへのローディング中の1つのベクトルの
素子と関連したマスキングの使用を示す図、第12図は
ベクトル・レジスタから主記憶への素子の記憶中の1つ
のベクトルの素子と関連したマスキングの使用を示す図
、第13図は主記憶からの1つの素子のアクセス中に生
じたエラーを表示するアクセス例外に応答している本発
明のベクトル処理装置の論理を示す図、第14図は本発
明のバク1−ル処理装置に於ける演算処理中に生じたエ
ラーを表示した演算例外に応答している本発明のベクト
ル処理装置の論理を示す図である。 20・・・・ベタ1〜ル処理装置(VPU) 、21・
・・・主記憶、22・・・・中央処理装置(CPU)、
25・・・・命令予備処理機能(IPPF)、26・・
・・E機能装置、27・・・・データ径路、29・・・
・インタフェイス、30・・・・I索子命令キュー、3
1・・・・ベクトル命令レジスタ、32・・・・Q命令
バッファ、33・・・・ベクトル・バッファ・レジスタ
、34・・・・ストライド・レジスタ、35・・・・デ
ータ・バス、37・・・・データ・イン・レジスタ、4
4・・・・例外コード、46・・・・状態表示器、47
・・・・制御記憶、48・・・・分岐点、49・・・・
サービス要求、52・・・・データ・レジスタ、53・
・・・推進。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 復代理人 弁理士 篠 1) 文 雄 第1図 第31’4 第4図 負X7図 VR計出出 1軸ドパ11.1 第12図 VTY フロックVK9L暫 第1頁の続き @発明者 スチュアート・ボード アメン・タッカ−ド
ラ 0発 明 者 マイロンΦウイリア アメム・ザジャツ
ク ン・ リカ合衆国ニューヨーク州ポーキプシー、レドンド・イ
ブ5番地 リカ合衆国ニューヨーク州ポーキプシー、ジョナサレー
ン1幡地

Claims (1)

  1. 【特許請求の範囲】 命令語及びオペランドを記憶するための記憶装置と、 命令を取出して解読し、命令の実行を制御し、オペラン
    ドを上記記憶装置に出し入れするように働き且つ複数の
    実行制御信号を発生するためのマイクロプログラム制御
    装置を有する中央処理装置(CPU)と、 ベクトル・オペランド記、憶装置及びベクトル演算装置
    を有するベクトル処理装置と、 上記CPU及び上記ベクトル処理装置を接続するための
    d闇あって、上記マイクロプログラム制御装置から上記
    実行制御信号のうちの1つを送るように接続されたベク
    トル・2イミング信号線とを含む相互接続手段と、 より成るベクトル処理能力を有するデータ処理装置。
JP14983584A 1983-10-24 1984-07-20 ベクトル処理能力を有するデ−タ処理装置 Granted JPS60103482A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54467483A 1983-10-24 1983-10-24
US544674 1983-10-24

Publications (2)

Publication Number Publication Date
JPS60103482A true JPS60103482A (ja) 1985-06-07
JPH0326872B2 JPH0326872B2 (ja) 1991-04-12

Family

ID=24173116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14983584A Granted JPS60103482A (ja) 1983-10-24 1984-07-20 ベクトル処理能力を有するデ−タ処理装置

Country Status (3)

Country Link
EP (1) EP0141232B1 (ja)
JP (1) JPS60103482A (ja)
DE (1) DE3484978D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61290570A (ja) * 1985-06-17 1986-12-20 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60136872A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル処理装置
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
EP0333365A3 (en) * 1988-03-18 1991-05-08 Digital Equipment Corporation Method and apparatus for handling asynchronous memory management exceptions by a vector processor
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5390840A (en) * 1977-01-21 1978-08-10 Mitsubishi Electric Corp Arithmetic processor of microprogram control
JPS5479533A (en) * 1977-12-07 1979-06-25 Nec Corp Data processing unit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57106982A (en) * 1980-12-24 1982-07-03 Fujitsu Ltd Data processor
JPS57162035A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Interruption control system
JPS57212549A (en) * 1981-06-25 1982-12-27 Fujitsu Ltd Information processing device
JPS5897770A (ja) * 1981-12-04 1983-06-10 Fujitsu Ltd ベクトル命令アクセス制御方式
JPS58149571A (ja) * 1982-03-01 1983-09-05 Nec Corp 情報処理装置のベクトル演算処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5390840A (en) * 1977-01-21 1978-08-10 Mitsubishi Electric Corp Arithmetic processor of microprogram control
JPS5479533A (en) * 1977-12-07 1979-06-25 Nec Corp Data processing unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61290570A (ja) * 1985-06-17 1986-12-20 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理方法
JPH0517588B2 (ja) * 1985-06-17 1993-03-09 Intaanashonaru Bijinesu Mashiinzu Corp

Also Published As

Publication number Publication date
EP0141232A2 (en) 1985-05-15
JPH0326872B2 (ja) 1991-04-12
EP0141232B1 (en) 1991-08-28
DE3484978D1 (de) 1991-10-02
EP0141232A3 (en) 1988-07-20

Similar Documents

Publication Publication Date Title
US4791555A (en) Vector processing unit
US4075704A (en) Floating point data processor for high speech operation
US4179734A (en) Floating point data processor having fast access memory means
US5923579A (en) Optimized binary adder and comparator having an implicit constant for an input
WO1985000453A1 (en) Data processing system
US5128888A (en) Arithmetic unit having multiple accumulators
EP0437044B1 (en) Data processing system with instruction tag apparatus
US4745547A (en) Vector processing
US4713750A (en) Microprocessor with compact mapped programmable logic array
JPS59114641A (ja) 割込処理装置
JP3607476B2 (ja) マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置
US4509144A (en) Programmable bidirectional shifter
US6295597B1 (en) Apparatus and method for improved vector processing to support extended-length integer arithmetic
US3286236A (en) Electronic digital computer with automatic interrupt control
JPS61107431A (ja) 演算装置
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
JPS60103482A (ja) ベクトル処理能力を有するデ−タ処理装置
Schneck Supercomputer architecture
US5062041A (en) Processor/coprocessor interface apparatus including microinstruction clock synchronization
AU644065B2 (en) Arithmetic unit
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US4373182A (en) Indirect address computation circuit
US6092183A (en) Data processor for processing a complex instruction by dividing it into executing units
US3001708A (en) Central control circuit for computers
US3500027A (en) Computer having sum of products instruction capability