JPH0277840A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0277840A
JPH0277840A JP63228325A JP22832588A JPH0277840A JP H0277840 A JPH0277840 A JP H0277840A JP 63228325 A JP63228325 A JP 63228325A JP 22832588 A JP22832588 A JP 22832588A JP H0277840 A JPH0277840 A JP H0277840A
Authority
JP
Japan
Prior art keywords
instruction
register
processing device
data processing
arithmetic
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.)
Pending
Application number
JP63228325A
Other languages
English (en)
Inventor
Koichi Ishii
石井 幸一
Tomoo Aoyama
青山 智夫
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
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co 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, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP63228325A priority Critical patent/JPH0277840A/ja
Publication of JPH0277840A publication Critical patent/JPH0277840A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、スーパーコンピュータのスカラ処理方式に係
り、特に、スカラ処理を高速に行うことを可能としたデ
ータ処理装置に関する。
〔従来の技術〕
スーパーコンピュータにおいて、ヘクトル処理を高速化
することは当然であるが、これに劣らぬ程スカラ処理を
高速化することが重要になって来ている。一般に、スカ
ラ処理における分岐処理の占める割合は、処理の1/4
〜1/3に達すると考えられており、分岐処理の高速化
がスカラ処理の高速化に必要である。
分岐処理は、分岐命令によって行われ、分岐命令は、条
件コードと命令オペランドのマスクフィールドとの論理
積をとり、この結果が“1′ならば別の命令オペランド
フィードで示される主起t1上の番地から始まる命令を
実行するというものである(即ち分岐が行われる)。条
件コードは、分岐命令よりも前に発行された、命令の実
行によって定まる。ただし、主記憶アクセス動作を行う
命令では条件コードはセットされない。
スカラ処理を高速化するために、命令の実行ステージを
細分化しパイプライン制御を行う方法が知られているが
、この場合、条件コードを生成するステージ数が大きく
なり、その分条件コードを消費する分岐命令の実行が遅
延する。一方、スカラ処理部の演算器をパイプライン制
御し、複数の演算系の命令の実行ステージをオーバーラ
ツプさせ性能を向上させる技術が一般化しつつある。
この種従来技術として、例えば、「古勝、渡辺。
近藤1日経エレクトロニクス1984.11.19」等
に記載された技術が知られている。
この種従来技術によるスカラ処理における演算器のパイ
プライン化は、分岐処理の高速化と和犬れない面を持っ
ている。
〔発明が解決しようとする課題〕
前述したように、パイプライン化した従来技術によるス
カラ処理装置は、分岐処理の高速化を図ることが困難で
あるという問題点を有している。
本発明の目的は、前記従来技術の問題点を解決し、演算
器のパイプライン化を行って、命令実行ステージのピッ
チを細分化した制御方式を採るスカラ処理装置において
、分岐処理で条件コード生成処理時間の影響が極小化さ
れるようなアーキテクチャ、該アーキテクチャに適合し
たハードウェア構成を備え、分岐処理の高速化を可能と
したスーパーコンピュータ等のデータ処理装置を提供す
ることにある。
〔課題を解決するための手段〕
本発明によれば、前記目的は、スカラアーキテクチャと
して、複数の条件コードを保持できるマスクレジスタと
呼ぶレジスタを複数個設け、スカラ命令にうち、従来の
アーキテクチャにおいて、条件コードを生成していた演
算系の命令動作から条件コード生成部分を除去し、新た
に条件コード生成命令セットを追加し、さらに、分岐命
令を、マスクレジスタを引用し、この値によってターゲ
ットアドレスに分岐するか否かを決める仕様に変更した
ものと、従来の形式のものの2種類とし、新たに設けら
れたマスクレジスタ間の演算命令を命令セットに追加す
ることにより達成される。
本発明は、前記アーキテクチャを高速に実行するハード
ウェア構成として、以下のような構成を備える。
(1)演算部を算術演算を行う演算器と、条件コードを
生成する論理演算器と、マスクレジスタ間の演算を行う
演算器との3種類で構成する。これらの演算器を以下A
演算器、L演算器、M演算器という。A演算器は複数の
ステージで構成され、L。
M演算器はA演算器の1ステ一ジ分の時間で結果を出力
するように構成される。
(2)命令デコード部は、A演算器の1ステ一ジ分のタ
イミングで作動するように設計され、前述の命令によっ
て指示された演算処理が未完であっても、A演算器の第
1ステージの処理が行われていれば、後続の命令のオペ
ランドデータをA演算器に送出する論理部を設ける。
(3)命令がデコード部で解読され、オペランドデータ
が各種の演算器に送出されたときをもってデコード処理
完了となる命令と、複数の演算器の結果を連結して1つ
の結果をうるマルチオペレーション型の命令の2種類の
命令動作を行う命令デコード論理部を設ける。
(4)A演算器の結果を保持するスカラレジスタを複数
設ける。スカシレジスタ上には浮動少数点データフォー
マットと固定小数点データフォーマット等の異なるデー
タフォーマットのデータを置くことができる。
(5)A演算器の出力をスカラレジスタにセットするパ
スと、ワークレジスタにセットするバスの2つに分流さ
せる論理部を設ける。
(6)L演算器への出力部にスカラレジスタからのデー
タバスとワークレジスタからのデータバスの選択部を付
加する。
〔作用〕
本発明によるスーパーコンピュータ等のデータ処理装置
におけるスカラ命令は次のように分類される。
(1)  スカラレジスタに主記憶上のデータをフェッ
チするロード系命令。
(2)  スカシレジスタ上のデータを主記憶へストア
するストア系命令。
(3)スカシレジスタ上のデータを用いて算術演算(浮
動小数点演算と固定小数点演算)を行い結果をスカシレ
ジスタ上に格納する命令。以下この型の命令を算術演算
命令という。
(4)  スカシレジスタ上のデータを用いて、データ
同士の大小関係を判定し結果をマスクレジスタに格納す
る命令。以下この型の命令を比較命令という。
(5)  スカラレジスタのデータを用いて、データが
“0”か否かを決め、結果をマスクレジスタに格納する
論理比較命令。
(6)  スカシレジスタ上のデータを用いて論理演算
を行い結果をスカラレジスクに格納する論理演算命令。
(7)  マスクレジスタに格納されているマスクデー
タの値によって、2つのスカラレジスタのどちらかを選
択して他のスカラレジスタに転送するデータ選択命令。
(8)マスクレジスタに格納されているマスクデータ値
によって分岐を行うか否かを決定する第1種分岐命令。
(9)条件コードによって分岐を行うか否かを決定する
第2種分岐命令。
00)スカシ処理部以外の処理部へ指示を行い、該処理
が正常に終了したか否かを条件コードにセットする外部
装置制御命令。
αD マスクレジスタ上に格納されているマスクデータ
間の論理演算を行い、結果をマスクレジスタに格納する
マスク演算命令。
本発明によるデータ処理装置は、次のような処理形態に
よりデータの処理を実行する。
(11命令の出現した順序に従って処理を行う(命令実
行順序を変えない)。
(2)  論理比較命令、論理演算命令、データ選択命
令、マスク演算命令は1マシンサイクルで完了する。そ
れ以外の命令は複数マシンサイクルを要するとする。
(3)比較命令はマルチオペレーション命令として処理
する。なお、オペレーションとはデコーダが命令の実行
可否判定を行う単位をいう。
本発明による処理では、命令をデコードしている時点で
命令を実行できるか否かが判定される。
命令が実行可能な場合、命令のデコードステージは完了
し、次命令のデコード処理が開始される。
命令が実行不可能な場合、命令はデコードステージに留
まる。命令がマルチオペレーション命令の場合、オペレ
ーション毎に前述の処理の可否判定が行われる。マルチ
オペレーション命令では処理が可能になっても、命令は
最後のオペレーションが実行されるまでデコードステー
ジに留められ、命令実行ステージは複数の命令をオーバ
ーラツプして実行できる。
スカラレジスタ、マスクレジスタ、条件コードに値をセ
ットする命令では命令が実行ステージに入ると、結果を
格納するレジスタをビジーにする。
このため、レジスタとは別にレジスタの状態を保持する
フリップフロップが設けられる。レジスタ類は空きとビ
ジーの両状態がある。命令の結果がレジスタに書込まれ
るとレジスタのビジー状態はリセットされる。ワークレ
ジスタはマルチオペレーション命令のために用いられる
。ワークレジスタもスカラレジスクと同じように管理さ
れる。
命令実行可否判定は命令の型によって異なる。
すなわち、ロード系命令では、フェッチデータを書き込
むスカラレジスタがビジーの間、命令をデコードステー
ジから実行ステージに遷移させず、実行ステージに処理
が移ると書込みスカラレジスタがビジーにセットされる
。ストア系命令では、スカラレジスタがビジーの間スト
アデータの読み出しが抑制され、レジスタのビジーがリ
セットされたとき、スカラレジスタからストアデータが
読み出され主記憶に格納するパスへ送出される。ストア
系命令は、スカラレジスタの状態をビジーに遷移させな
い。
算術演算命令では、被演算データが格納されているスカ
ラレジスタがビジー状態のときか演算結果が書き込まれ
るスカラレジスタがビジー状態のとき、命令のデコード
ステージから実行ステージへの遷移が抑制される。
比較命令では、第1のオペレーションで算術演算命令を
実行し、その結果をワークレジスタに格納する。次に第
2のオペレーションでワークレジスタからデータを論理
演算器に移し0″と比較して結果をマスクレジスタに格
納する。マスクレジスタにもビジーか否かを指示する状
態がある。
書き込み先のマスクレジスタがビジーのときにも第2の
オペレーションまでは実行される。
論理比較命令と論理演算命令は、結果を書き込む先のレ
ジスタがマスクレジスタかスカラレジスタかのちがいが
あるだけでレジスタビジーの基本的な管理方法について
は同じである。同様にデータ選択命令、マスク演算命令
についてもスカラレジスタ、マスクレジスタのビジー状
態を管理して命令を実行するか否かが判定される。前記
4命令は、命令が1サイクルで実行されるので実行時レ
ジスタビジーをセットしない。
第1種分岐命令では、マスクレジスタのビジーを判定し
、ビジーならば命令の実行が抑止される。
ただし、分岐命令のオペランドに記述されている分岐先
アドレスの命令フェッチは行われる。マスクレジスタの
値が確定し、ビジー状態がリセットされた時点で、分岐
が行われない判定が下ったとき、先行して行われている
命令フェッチ動作はキャンセルされる。
マスクレジスタのデータ幅は1ビツトとする。
条件コードのように2ビツトとしてもよいが分岐が行わ
れるか否かの条件だけを示す場合1ビツトで充分である
第2種分岐命令、外部装置制御命令については本発明に
よるマスクレジスタ、命令実行制御に直接関係しないの
で説明を省略する。
前述したように、本発明は、命令実行ステージのオーバ
ーラツプを、レジスタのビジー状態の管理手段によって
因果関係を保証し、複数の命令の並列実行を可能にして
いる。
〔実施例〕
以下、本発明によるデータ処理装置の一実施例を図面を
用いて詳細に説明する。
第1図はスカシプロセッサの概略構成を示すブロック図
である。第1図において、1は命令バッファ部、2は命
令レジスタ、3はデコーダ、4はマスクレジスタ状態管
理部、5はスカシレジスタ状態管理部、6はマスクレジ
スタ部、7はスカラレジスタ部、8〜10はそれぞれM
、L、A演算器、11はワークレジスタ、12はメモリ
・リクエスタ、13.14は主記憶制御部、15は主記
憶である。
第1図において、命令バッファ1を介して命令が命令レ
ジスタ2にセットされると、デコーダ3は、その命令を
実行するために必要なレジスタかビジーか否かを、パス
50.51を用いてマスク。
スカシレジスタ状態管理部4,5内のフリップフロップ
の値を参照して調べる。また。デコーダ3は、命令のオ
ペランドに記述されている被演算データが格納されてい
るスカシまたはマスクレジスタ番号をパス52.53上
に送出し、それぞれセレクタ20〜23に作用させて被
演算データをM。
L、A演算器8〜10のどれかに送出する。各演算器8
〜10の出力は、パス54〜57を通って、スイッチン
グ回路24.25に与えられ、該回路を介して命令で指
示されたスカシレジスタ6.マスクレジスタ7に書き込
まれる。A演算器1oは、複数のステージから構成され
るので、被演算データが該演算器で処理中、書込みレジ
スタをビジー状態にする必要がある。この動作は、デコ
ーダ3゜マスクレジスタ状態管理部4及びスカシレジス
タ状態管理部5で行われる。
A演算器10を用いた計算の結果がスカシレジスタ7に
書き込まれると、パス58を通ってレジスタビジー状態
をリセットする信号がA演算器10からマスクレジスタ
状態管理部4に送出される。ロード系の命令ではメモリ
・リクエスタ12が作動するが、このときも主記憶15
がら読み出されたデータを格納するマスク、スカシレジ
スタの状態をビジーにセットする。この動作もデコーダ
3及び管理部4.5を用いて行われる。レジスタのビジ
ー状態のリセットは、主記憶制御部14からパス59を
介して行われる。
命令レジスタ2にセットされた命令が実行可能なとき、
デコーダ3は、パス60上に命令のオペランドコードを
送出し、論理回路26は、このコードを変換し、M、L
、A演算器8〜10に対するオーダ(動作指示信号)を
生成する。このオーダは、パス61経由でM、L、A演
算器8〜10に送られる。
比較命令は、マルチオペレーション命令であって、A演
算器10の中間結果は、ワークレジスタ11上にセット
され、パス63を経由してL演算器に送られる。これら
の中間結果に対する制御は、デコーダ3とメモリ・リク
エスタ12の命令読み出し制御とが関係して行われる。
デーコダ3からの次命令読み出し指示は、パス64を介
して行われる。
主記憶15から読み出された命令はパス65を通って命
令バッファ1に送られる。主記憶から読み出されたオペ
ランドデータは、パス66.67を通ってマスクレジス
タ6及びスカシレジスタ7へ送られる。
以上がスカシプロセッサの概略命令動作である。
以下詳細な命令動作について説明する。説明を簡略化す
るため、命令フォーマットを第2図のように仮定する。
この第2図に示す命令形式では、演算器を使う命令の場
合R2,R3オペランドフィードを被演算データの指定
に用い、R1オペランドフィードを演算データの格納先
レジスタ指定に使用する。また、ロード/ストア系命令
の場合、オペランドフィードをソース/シンク・レジス
タ番号指定に用い、R2オペランドフィードを主記憶ア
ドレスが格納されているスカシレジスタの指定に用いる
。この場合、R3オペランドフィードは、使用しなくて
もよいが、データのベースアドレス指定に用いることも
できる。アドレッシングの問題は、本発明の主目的とは
直接関係ないので、以後の説明ではR3オペランドフィ
ードは使用しないこととする。R1〜R3オペランドフ
ィードにはマスク/スカシレジスタを区別する識別ビッ
ト90が設けられている。
第3a図は第1図のマスクレジスタ状態管理部4、スカ
ラレジスタ状態管理部5及びデコーダ3の制御系の構成
を示すブロック図である。第3b図は同様に状態管理部
5及びデコーダ3のデータ系の構成を示すブロック図で
ある。第3a、第3b図において第1図と共通の部分に
は同一の番号が割付けられている。レジスタの状態管理
においては、マスク、スカラ両レジスタ共同じ方法で管
理されるので、第3a図及び第3b図ではスカラレジス
タ系のみ図示した。第1図で描かれていても、レジスタ
の状態管理に不必要なものは第3a図及び第3b図には
省略して描かれている。
第3a図において、命令が命令レジスタ2にセットされ
ると、R1〜R3オペランドフィードのレジスタ指定デ
ータは、それぞそれパス155〜157を通ってデコー
ダ100〜102に入力される。デコーダ101〜10
2の出力は、レジスタ対応の状態を保持しているフリッ
プフロップ105〜107に入力され、並列的にR1〜
R3オペランドフィードで指定しているレジスタがビジ
ーか否かの情報を読み出す。ここでは、フリップフロッ
プの値が“1”のとき、レジスタがビジーであるとする
命令レジスタ2上に存在する命令のオペランドコード部
OPはパス164を通って論理部114に送られる。論
理部114は、命令がオペランドに記述されているどの
レジスタのビジー情報を必要とするかという情報を生成
する。この情報生成法の一つとしてオペランドコードを
アドレスとして、RAMのような記憶素子で実現される
テーブルを引用する方法がある。生成された情報は、パ
ス158上に送出され、AND回路108〜110に入
力される。AND回路108〜110は、R1〜R3オ
ペランドで指定されたレジスタのビジー情報と論理積を
とり命令の実行に必要なレジスタのビジーがどうなって
いるかを示す信号を生成する。この信号は、パス159
〜161を通つてOR回路111で論理和がとられる。
OR回路111の出力が1”のときR1−R3のオペラ
ンドのどれかのレジスタがビジーであって命令実行が不
可能なことを示す。
OR回路111の出力は、インバータ112で反転され
、パス163、AND回路113を経由してパス64上
に送り出される。パス64上に送られるこの信号は命令
実行可であることを示すと共に次命令の主記憶からの読
み出しをメモリ・リクエスタ12(第1図)に指示する
命令実行が可能となり、パス163上の信号が1″とな
ったとき、命令の種類によっては、R1オペランドで指
定されたレジスタをビジー状態にセットする必要がある
。論理部114は、命令がロード系命令、算術演算命令
等のとき、パス165上に信号値“1”を送出する。こ
のとき、AND回路115の出力は1″となり、この1
”信号は、パス166を通って、フリップフロップ群1
05〜107へ書込イネーブル信号として送出される。
このイネーブル信号によりデコーダ100〜102で指
示されたフリップフロップ群105〜107内のフリッ
プフロップの値は“1”にセットされる。
論理部114は、命令が比較命令のようなマルチオペレ
ーション命令のとき、パス67上に信号値“l”を送出
する。また、命令が命令レジスタ2にセットされたとき
、フリップフロップ117は“1″にセットされる。フ
リップフロップ117の出力は、AND回路118でパ
ス167上の信号と論理積がとられる。パス168上の
信号は、インバータ119で反転され、マルチオペレー
ション命令の第1オペレーション時の演算器起動で次命
令続出要求をメモリ・リクエスタ12に送らないように
、抑止信号をパス170に送出する。
マルチオペレーション命令の第1オペレーシヨンのため
の演算起動が行われると、パス166上に信号値“1”
が送出される。この信号値は、フリップフロップ117
に入力され、該フリップフロップをリセットする。従っ
て、第2オペレーシヨンでは演算器起動が行われると次
命令続出のだめの主記憶参照要求がパス64上に送出さ
れることになる。
命令が比較命令の場合、■マシンサイクルで完了し、か
つ、ワークレジスタ管理はスカラレジスタと同様に行わ
れ、また、他のマスクレジスタに結果を書込む命令は1
マシンサイクルで完了するので、第2オペレーシヨンの
起動についてはチエツクする必要がない。
前述のようにして、命令起動が行われるとき、マスクレ
ジスタ部6及びスカラレジスタ部7からデータが読み出
されて演算器に送出される。この動作を第3b図を用い
て、スカラレジスタ系のデータ読み出しを例として説明
する。
命令レジスタ2に命令がセットされると、R2〜R3オ
ペランドで指定された被演算データの格納されているス
カラレジスタの出力がセレクタ22.23により、選択
される。セレクタ22.23の出力は、パス150,1
51を通ってM、L。
A演算器に送られる。一方、R1オペランドで示される
結果を書き込むレジスタ番号は、パス152を経由して
ロード系命令の場合、メモリ・リクエスタ12に送られ
、主記憶制御部13,14、主記憶15を通って、第3
a図のパス175上送られて来る。一方、演算系の命令
の場合、このレジスタ番号は、パス152からA演算器
10を通ってパス175上に送られてくる。また、第3
a図のパス176上には、それぞれの命令によって異な
る実行部即ちメモリ・リクエスタ12.演算器8〜10
から、処理が完了し、レジスタに書き込むデータを送っ
たことを示すコマンド信号が送られている。
次に、第4〜第7図を用いて第1種の分岐命令の動作を
説明する。
第4図は分岐命令処理時のデコーダの論理部の構成を示
すブロック図である。第4図において、202はマスク
レジスタの内容を読出す論理部、203はマスクレジス
タが読出せるか否かを判定している論理部である。それ
ぞれの論理部は第3b、第3a図相当の論理をマスクレ
ジスタの読み出しに当てはめたものと等価である。論理
部202.203の出力は、レジスタ200,201に
格納される。この2つのレジスタの値によって第1種分
岐命令の動作が第7図に示すように決められる。第7図
はレジスタ200.201の値の組み合わせによる第1
種分岐命令の動作を示す図であり、この動作は、絶対的
なものではなく、説明が容易なように決めたものであっ
て、これ以外の動作規定も可能である。レジスタ200
.201の値は、マシンサイクル毎に変化している。
レジスタ201の出力は、インバータ204で反転され
、フリップフロップ205にセットされる。このフリッ
プフロップ205の値が“1″の時「ブリフェッチ動作
中」であることを示す。ここでブリフェッチ動作とは、
デコーダ3で分岐命令が解読されたとき、マスクレジス
タの値が未定で、分岐命令が実行できない場合、分岐先
アドレスを前もって主記憶へ読出しに行く動作をいう。
フリップフロップ205の出力が“1”で、パス252
上にブリフェッチ動作完了信号が主記憶制御部4から送
られて来ると、フリップフロップ208は“1″にセッ
トされる。
初期状態ではフリップフロップ205,208は“0”
とされている。このとき、レジスタ200の出力の反転
信号と、レジスタ201の出力と、フリップフロップ2
05の出力の反転信号はAND回路209で論理積がと
られ、分岐が成立したことを意味する信号がパス253
上に送出される。
レジスタ200,201がそれぞれ1”。
“1”の値を有するとき、分岐不成立となり、分岐命令
は、何も実行されずに完了する。
レジスタ201が“0″のときには、ターゲットアドレ
スのブリフェッチが行われる。従って、インバータ20
4の出力は、パス254上に送出され、このパス上の信
号がトリガとなって、命令フェッチ用のメモリ・リクエ
スタを作動させる。
フリップフロップ205が“1”の場合、ブリフェッチ
動作中、バス253上には信号が送出されない。ブリフ
ェッチ動作中、レジスタ201が1″になるとAND回
路210からパス255上に信号が送出される。該信号
は、ブリフエツチ動作のキャンセルのために用いられる
パス255上の信号は、排他的論理和回路211にも入
力され、ホールド型のラッチ212の出力と排他的論理
和がとられる。ホールド型ラッチ回路212の出力は“
0”−“1”と変化し、分岐命令が完了しリセットがか
かるまで、“1”の値をホールドする。パス256上の
信号値とパス253上の信号値は、OR回路213で論
理和がとられ、パス257上に送出される。このパス2
57上の信号は、分岐命令のターゲットアドレスのフェ
ッチを行うために利用される。
ブリフェッチ動作中、レジスタ201の出力が“0”の
ままであれば、ブリフェッチ動作が継続される。
ブリフェッチ動作が完了した後に、パス255゜257
上に無意味な信号を送出しないように、フリップフロッ
プ208の出力の反転信号がパス258を通ってAND
回路210に入力されている。
フリップフロップ208の出力と、レジスタ200の反
転信号と、レジスタ201の出力とはAND回路214
で論理積がとられ、パス259上にその結果が送出され
る。パス259上の信号は、2面ある命令バッファの切
り替えを行い、ブリフェッチした命令列を命令レジスタ
に移行させる。
レジスタ200の値が“0”のとき、分岐不成立となり
プリフェッチしていた命令列はキャンセルされる。
なお、第4図のレジスフ200,201以下の論理部分
は第1図のデコーダ3に属する。
第5図は命令フェッチに関するリクエスタの構成を示す
ブロック部であって、第1図に示すメモリ・リクエスタ
12、主記憶制御部13,14、主記憶部15の部分に
相当する。
第5図において、プログラム実行時に第1図に示すデコ
ーダ2からパス350,351上にイニシャライズ信号
が送られてくる。また、同時にパス352上にプログラ
ムのスタートアドレスが送られてくる。プログラムスタ
ートアドレスは、セレタク300.加算器301を通過
してレジスタ302にセットされる。また、レジスタ3
03には命令語長が格納が格納されている。パス351
上のイニシャライズ信号が値がR0”になるとセレクタ
300は、パス352ではなく、レジスタ303の出力
信号側を選択する。パス64上には、第3a図のAND
回路113から次命令読み出しの要求が送られて来る。
この要求は、OR回路304を通ってレジスタ302の
セット信号になる。
レジスタ302の出力は、パス353を通り、セレクタ
305を通って加算器301に送られ、次命令のアドレ
スを生成される。
生成された命令アドレスは、レジスタ302よりパス3
54上に送出される。
一方バス150,451上に命令のR1,R2フィード
のデータが第3b図及び第6図より送られている。第3
b図のパス150のシンク先は、演算器を仮定している
が、第1図のメモリ・リクエスタ12に入力されるパス
を通って第5図に人力される。第4図において、パス2
57上に分岐成立でターゲットアドレスをフェッチする
要求が送出されたとき、分岐命令のR2フィードにはり
−ゲットアドレスで指定されるスカラレジスタ番号が記
述されているので、パス451上に送られてきたターゲ
ットアドレスは、パス355、セレクタ305、加算器
301を通してレジスタ302にセットされる。以降の
命令アドレスの生成は、レジスタ303,302の内容
を加算器301で加算して行われる。
レジスタ306には、主記憶制御部13に発行する主記
憶参照要求が命令フェッチであることを示す情報が保持
されている。このレジスタ306は、システムイニシャ
ライズ時にセットされる。
パス254上には、分岐命令のブリフェッチ要求が第4
図のインバータ204より送出されて来る。該要求信号
は、レジスタ307、パス357を経由して、主記憶制
御部13に送出される。第5図では簡単のためブリフェ
ッチ要求を1命令としている。スイッチング回路308
は、分岐命令のR2オペランドに記されているブリフェ
ッチアドレスを主記憶15に対する命令ブリフェッチ要
求としてパス358上に送出する。主記憶制御部13は
、パス354,358,359上の命令フェッチ、ブリ
フェッチ、オペランド読み出し要求が主記憶上の同一バ
ンクに対する読み出し/書き込み要求のとき、3者間の
優先順位を決定する。
パス356,357上の情報は、この優先順位決定と、
主記憶制御部14で主記憶15から読み出したデータを
要求元に送出するための情報として用いられる。
主記憶15から読出された命令は、命令フェッチ動作時
レジスタ310に格納される。命令ブリフェッチの場合
はレジスタ311にに格納される。
ブリフェッチした命令がレジスタ311にセットされた
とき、フリップフロップ312も同時にセットされる。
フリップフロップ312は、その値が1”である場合レ
ジスタ311の内容が有効であることを示す。
第4図のAND回路210からブリフェッチキャンセル
要求が発行されると、このフリップフロップ312はO
R回路を介してリセットされる。
第4図のAND回路214から命令バッファの切替要求
がバス259上に発行されると、この要求は、レジスタ
313〜315を経由して、セレクタ316に作用し、
レジスタ311の出力をパス361上に送出する。パス
361は第1図の命令レジスタ2に接続されている。
次に、第1種分岐命令の完了について説明する。
分岐命令の完了には次の状態がある。
(1)分岐不成立で従来の命令フェッチ動作を変更しな
いで完了する場合。
(2)分岐が成立し、ターゲットアドレスを主記憶へ送
出して完了する場合。
(3)  ブリフェッチ動作をキャンセルし、ターゲッ
トアドレスを主記憶へ送出して完了する場合。
(4)  ブリフェッチ動作をキャンセルして単純に完
了する場合。
(5)命令バッファTB2 (第5図311)にある命
令をパス361に送出して、かつ、ターゲットアドレス
に命令語長を加算した次命令アドレスを主記憶15へ送
出して完了する場合。
以上の第1種分岐命令の完了動作について図6を用いて
説明する。第6図は分岐命令完了制御時の構成を示すブ
ロック図であり、第4図、第5図と密接に関係している
。第4図、第5図に示されている論理回路ど同じ論理に
ついては同様の番号が付けられている。
第6図において、AND回路400は、レジスタ200
,201が共に“1″という値を持ち、フリップフロッ
プ205の値がaO”のとき、即ち、初期状態で分岐不
成立となったとき、前記1のケースを検出する。分岐が
成立している場合、パス257上に信号が送出されてく
る。この信号は、そのソースが、第4図であり、第5図
においてターゲットアドレスのレジスタ302へのセッ
トを行い(上記2のケース)、第6図に至るものである
。命令が完了し、命令バッファを切替える必要があると
きにはパス259上に第4図のAND回路214から信
号が送出されてくる(ケース5の場合)。このとき、パ
ス151上には、分岐命令のR2オペランドデータが送
られてきており、このデータは、レジスタ401に格納
されている命令語長と加算器402で加算され、ケース
5の場合のターゲットアドレスに生成される。セレクタ
403はバス259上の信号値が1”のとき、加算器4
02の出力であるパス450側を選択し、前述で生成さ
れたターゲットアドレスが送出された後、バス259上
の信号は、レジスタ404を経由してパス452を通り
、第4図のOR回路213に送られる。その結果、パス
257上の信号は、その値が“1″となり第5図で説明
した分岐成立の場合と同様の動作が行われる。以上でケ
ース5の動作が完了する。
ケース3の場合、第4図においてブリフェッチキャンセ
ルとターゲットフェッチの要求が出ているので第5図の
説明で動作は正常に行われ、第6図のパス257上に信
号が送られてくる。これはケース2の場合と同じである
パス454〜456,259上の信号は、OR回路40
5で論理和がとられ、その出力は、パス453上に送出
される。この信号は、第5図に送り出され、フリップフ
ロップ312をリセットする。パス456上の信号は、
ブリフェッチ動作が完了していてかつ分岐不成立となっ
た場合に1”となる。従ってケース4に相当する。
バス453上の信号は分岐命令の次の命令の続出のトリ
ガにも用いられる。
前述した本発明の一実施例によれば、スカラプロセッサ
は、分岐の条件判定結果を複数個マスクレジスタに保持
することができるので、次のような効果を奏することが
できる。
(1)分岐判定文を分岐命令と離して実行し、両命令間
に演算命令のような命令を置くことにより、分岐判定結
果待ちのような処理速度低下要因を未然に防ぎ得る。こ
れはDO小ループような処理で特に有効である。
(2)1つのDOループ内で種々の処理を行い、各処理
への分岐をループ外の判定条件によって指示しているよ
うな場合、ループ外で行われる判定条件を複数のマスク
レジスタに保持することにより、ループ内処理を高速化
することができる。
またマスクレジスタ間の演算器を算術用の演算器と独立
させ、かつ並立的に動作できるようにしたので、条件式
が多数かつ複雑な場合にも高速の処理が可能になった。
本発明の実施例は、分岐条件判定のために、比較命令、
論理比較命令の2種類の命令を具備し、比較命令を算術
用の演算器と論理演算器を接続して使用する制御とし、
論理比較命令を論理演算器のみを使用するようにして、
複数の判定のための命令が並列的に実行できるようにし
ているので、複雑な条件判定文を高速に処理することが
可能となる。
〔発明の効果〕
以上説明したように、本発明によれば、命令の実行テス
テージを複数命令、任意にオーバラップすることができ
るので、パイプラインピッチを細かく刻んだ演算器を有
効に利用することができ、かつ、演算器のネックとなる
ような処理を高速に処理することが可能であり、特に、
スカラ処理に命令レヘルの並列処理を導入でき、スカラ
処理を高速化することができる。
【図面の簡単な説明】 第1図は本発明によるデータ処理装置の概略構成を示す
ブロック図、第2図は命令フォーマットの一例を説明す
る図、第3a図はレジスタ状態管理部及びデコーダの制
御系の構成を示すブロック図、第3b図はレジスタ状態
管理部及びデコーダのデータ系の構成を示すブロック図
、第4図は分岐命令処理時のデコーダの論理部の構成を
示すブロック図、第5図は命令フェッチに関するリクエ
スタの構成を示すブロック図、第6図は分岐命令完了制
御時の構成を示すブロック図、第7図は第4図における
レジスタ200,201の値の組み合わせによる第1種
分岐命令の動作を説明する図である。

Claims (1)

  1. 【特許請求の範囲】 1、パイプライン制御方式を採用している演算器を備え
    るデータ処理装置において、命令の実行をデコードステ
    ージ及び少なくとも1つのサブステージを含む実行ステ
    ージの2ステージで行い、命令の実行可否をデコードス
    テージで判定することを特徴とするデータ処理装置。 2、パイプライン制御方式を採用している演算器を備え
    るデータ処理装置において、命令の実行が少なくとも1
    つのオペレーションで行われ、各オペレーションの実行
    をデコードステージ及び少なくとも1つのサブステージ
    を含む実行ステージの2ステージで行い、オペレーショ
    ンの実行可否をデコードステージで判定することを特徴
    とするデータ処理装置。 3、前記実行ステージは、オーバーラップした処理を行
    うことが可能であることを特徴とする特許請求の範囲第
    1項または第2項記載のデータ処理装置。 4、前記命令あるいはオペレーションの実行可否は、命
    令あるいはオペレーションが参照するレジスタのビジー
    状態で判定することを特徴とする特許請求の範囲第1項
    、第2項または第3項記載のデータ処理装置。 5、パイプライン制御方式を採用している演算器を備え
    るデータ処理装置において、分岐の条件判定結果を少な
    くとも1つ保持することのできる、算術、論理データを
    保持するレジスタとは別のレジスタを備え、分岐命令で
    該レジスタを引用することを特徴とするデータ処理装置
    。 6、分岐処理は、前記条件判定結果を保持するレジスタ
    を参照して、あるいは、条件コードを引用して行われる
    ことを特徴とする特許請求の範囲第5項記載のデータ処
    理装置。 7、パイプライン制御方式を採用している演算器を備え
    るデータ処理装置において、分岐命令がそのデコードス
    テージで命令実行不可と判定された場合、分岐命令のオ
    ペレーションで指定されたターゲットアドレスの命令を
    主記憶から読み出し、命令実行可の条件が成立したとき
    、前述読み出しをキャンセルするか、前記読み出しの結
    果を命令レジスタにセットすることを特徴とするデータ
    処理装置。 8、パイプライン制御方式を採用している演算器を備え
    るデータ処理装置において、算術論理データと条件判定
    結果とを保持する2種類のレジスタと、これらレジスタ
    間の算術、論理演算を行う条件判定結果間の演算器、論
    理演算器、算術演算器の3種類の演算器とを備えること
    を特徴とするデータ処理装置。 9、前記3種類の算術演算器のうち、少なくとも1種類
    の演算器を備えることを特徴とする特許請求の範囲第8
    項記載のデータ処理装置。 10、前記論理演算器と算術演算器との間にデータを受
    け渡すパスを備えることを特徴とする特許請求の範囲第
    8項記載のデータ処理装置。 11、前記論理演算器と算術演算器とによる演算器系は
    、1個の命令で制御されることを特徴とする特許請求の
    範囲第10項記載のデータ処理装置。
JP63228325A 1988-09-14 1988-09-14 データ処理装置 Pending JPH0277840A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63228325A JPH0277840A (ja) 1988-09-14 1988-09-14 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63228325A JPH0277840A (ja) 1988-09-14 1988-09-14 データ処理装置

Publications (1)

Publication Number Publication Date
JPH0277840A true JPH0277840A (ja) 1990-03-16

Family

ID=16874679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63228325A Pending JPH0277840A (ja) 1988-09-14 1988-09-14 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0277840A (ja)

Similar Documents

Publication Publication Date Title
US5742782A (en) Processing apparatus for executing a plurality of VLIW threads in parallel
US4740893A (en) Method for reducing the time for switching between programs
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JP3098071B2 (ja) 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP3120152B2 (ja) コンピューターシステム
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
JPH0429093B2 (ja)
JPH0823818B2 (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US6101596A (en) Information processor for performing processing without register conflicts
JPH02227730A (ja) データ処理システム
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
KR100864890B1 (ko) 데이터 처리장치에서의 소스 레지스터 록킹
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
JPH03286332A (ja) デジタルデータ処理装置
JP3725547B2 (ja) 限定ラン分岐予測
JP3180175B2 (ja) 命令レベルの並列処理制御方法およびプロセッサ
JP3779012B2 (ja) 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
JP2000353091A (ja) コンピュータシステムにおける命令実行方法およびコンピュータシステム
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPH0277840A (ja) データ処理装置
JP2904624B2 (ja) 並列演算処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
WO2022231733A1 (en) Method and apparatus for desynchronizing execution in a vector processor