JPH0326872B2 - - Google Patents

Info

Publication number
JPH0326872B2
JPH0326872B2 JP59149835A JP14983584A JPH0326872B2 JP H0326872 B2 JPH0326872 B2 JP H0326872B2 JP 59149835 A JP59149835 A JP 59149835A JP 14983584 A JP14983584 A JP 14983584A JP H0326872 B2 JPH0326872 B2 JP H0326872B2
Authority
JP
Japan
Prior art keywords
register
vector
data
vpu
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.)
Expired - Lifetime
Application number
JP59149835A
Other languages
English (en)
Other versions
JPS60103482A (ja
Inventor
Chaaruzu Gaashia Resurii
Chaarusu Chonnpianngi Debitsudo
Goodon Tatsukaa Suchuaato
Uiriamu Zajatsuku Mairon
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)

Description

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

Claims (1)

  1. 【特許請求の範囲】 1 命令語及びオペランドを記憶するための記憶
    装置と、 上記記憶装置に接続され、上記記憶装置から取
    り出した命令の実行を制御するための実行制御信
    号を発生するマイクロプログラム制御装置を含む
    中央処理装置(CPU)と、 ベクトル・データを処理するためのベクトル処
    理装置(VPU)と、 上記CPU及び上記VPUを接続するためのイン
    タフエイス手段であつて、上記実行制御信号の1
    つである推進信号を上記マイクロプログラム制御
    装置から上記VPUへ転送するための信号線を含
    むインタフエイス手段とを具備し、 上記推進信号を用いて上記VPU内のタイミン
    グおよびゲートを制御することにより、上記
    VPUでのベクトル処理を上記CPUに同期させる
    ことを特徴とする、 ベクトル処理能力を有するデータ処理装置。
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 JPS60103482A (ja) 1985-06-07
JPH0326872B2 true 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)

Families Citing this family (11)

* 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 ベクトル処理装置
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
EP0333365A3 (en) * 1988-03-18 1991-05-08 Digital Equipment Corporation Method and apparatus for handling asynchronous memory management exceptions by a vector processor
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
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
US9715385B2 (en) * 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US5051896A (en) Apparatus and method for nullifying delayed slot instructions in a pipelined computer system
US4791555A (en) Vector processing unit
US4745547A (en) Vector processing
US5261113A (en) Apparatus and method for single operand register array for vector and scalar data processing operations
JP2645669B2 (ja) データ処理システム
US5923579A (en) Optimized binary adder and comparator having an implicit constant for an input
US4760519A (en) Data processing apparatus and method employing collision detection and prediction
US4873629A (en) Instruction processing unit for computer
US4740893A (en) Method for reducing the time for switching between programs
US5517440A (en) Optimized binary adders and comparators for inputs having different widths
US4876644A (en) Parallel pipelined processor
EP0450802B1 (en) Floating point arithmetic unit
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US4367524A (en) Microinstruction execution unit for use in a microprocessor
US4713750A (en) Microprocessor with compact mapped programmable logic array
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
US5062041A (en) Processor/coprocessor interface apparatus including microinstruction clock synchronization
JPH0326872B2 (ja)
US4967343A (en) Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
AU644065B2 (en) Arithmetic unit
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US4373182A (en) Indirect address computation circuit
JP2643087B2 (ja) プログラム処理方法及びコンピュータ・システム
JPS6083176A (ja) ベクトルプロセツサ
Schneck et al. The Cray-1