JPH03218524A - 命令処理装置 - Google Patents

命令処理装置

Info

Publication number
JPH03218524A
JPH03218524A JP9810290A JP9810290A JPH03218524A JP H03218524 A JPH03218524 A JP H03218524A JP 9810290 A JP9810290 A JP 9810290A JP 9810290 A JP9810290 A JP 9810290A JP H03218524 A JPH03218524 A JP H03218524A
Authority
JP
Japan
Prior art keywords
instruction
register
flag
branch
execution result
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
JP9810290A
Other languages
English (en)
Other versions
JP2814683B2 (ja
Inventor
Toshiichi Marushima
敏一 丸島
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP9810290A priority Critical patent/JP2814683B2/ja
Publication of JPH03218524A publication Critical patent/JPH03218524A/ja
Application granted granted Critical
Publication of JP2814683B2 publication Critical patent/JP2814683B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、分岐予測先の命令の実行結果を使用してさら
にその先の命令の処理を行う命令処理装置に関するもの
である。
(従来の技術) 従来の命令処理装置では、分岐予測先の命令をフェソチ
、デコードするもの(例えば、IBM360/91命令
処理装置: D. W. Anderson, F. 
J. Sparacio, F. M.Tomasul
o: ”The IBM System / 360 
Model 91 :Machine Philoso
phy and Instruction Handl
ing”,IBM Hounal of Resear
ch & Development, pp. 8−2
4,No. 1, Mol. 1, Jan. 196
7. )や、分岐先が確定しテイなくてもオペランドが
揃った命令は実行するがその実行結果は他の命令のソー
スオペランドにはならないもの(例えば、「新風」命令
処理装置:久我、村上、富田二′′「新風」プロセソサ
の高速化メカニズム“、情報処理学会第37回全国大会
講演論文集、4N−2. 1988.)がある。これら
の命令処理装置は、第16図に示すように、命令記憶手
段10、レジスタ書込み予約手段20、命令発行手段4
0′,オペランドアクセス制御手段50,命令実行手段
60,分岐予測先命令実行結果格納手段70“及びレジ
スタ80を備えているが、後述の本願装置の分岐予測先
命令実行結果格納手段からオペランド読出しをする手段
を備えていない。
(発明が解決しようとする課題) しかしながら、従来の命令処理装置では、予測した分岐
先の命令実行は命令発行前の前処理のみであったり、予
測先の命令を実行してもこの実行結果を使用する命令は
分岐先が確定するまでは実行されなかった。このような
制約を加えることは、本来実行可能な命令を待たせるこ
とになり、性能低下を及ぼすという問題点があった。
本発明の目的は、このような従来の問題点を除去して、
分岐予測先の命令の実行結果を使用してさらにその先の
命令の処理を行う命令処理装置を提供することにある。
(課題を解決するための手段) 前述の問題点を解決するために本願第1の発明分岐命令
による分岐先の確定を待たずに分岐先アドレスを分岐予
測方式において、処理すべき命令を記憶する第1の手段
と、命令の実行結果を書き込むレジスタという第2の手
段と、第1の手段より得られた命令が実行結果として行
なうレジスタへの書込みをあらかじめ予約する第3の手
段と、第3の手段により予約された命令を保持し、命令
を発行する第4の手段と、第4の手段により発行された
命令を実行する第5の手段と、第5の手段と第2の手段
との間に配置される、予測されていながら確定していな
い分岐先にある命令による実行結果を一時的に保持する
第6の手段と、第6の手段により保持された実行結果を
第2の手段へ転送する第7の手段と、第6の手段により
保持された実行結果を第4の手段がオペランドとして読
み出す第8の手段と、第2の手段により保持された実行
結果を第4の手段がオペランドとして読み出す第9の手
段とを備え、さらに第4の手段は、分岐先未確定の分岐
命令以前の命令系列保持する第10の手段と、第10の
手段に保持された命令と第3の手段により予約された命
令を第5の手段に発行する第11の手段と、第3の手段
によるレジスタ書込み予約を受取り、第11の手段が行
う命令発行の履歴情報を受取り、第5の手段による分岐
先確定情報を受け取ることにより、第11の手段が行う
オペランドアクセスに対して、制御を加える第12の手
段を備え、予測された確定前の分岐先の命令の実行結果
を使用してさらにその先の命令の処理を行うことを特徴
とする。
また本願第2の発明は; 前記第10の手段を2つ以上備え、第3の手段により予
約された命令を、分岐命令を区切りとして複数の第10
の手段に対して、順次振り分けることを特漱とする。
また本願第3の発明は; 前記第2の手段と第6の手段と第7の手段と第8の手段
と第9の手段との代わりに、第2の手段と第9の手段の
組を2つ以上と、その複数の第2の手段に保持されてい
る値を互いに転送する手段とを備え、予測されていなが
ら確定していない分岐先にある命令による実行結果を、
複数の第2の手段のいずれかに保持することを特徴とす
る。
また本願第4の発明は; 前記第11の手段を2つ以上備えることにより、複数の
命令を同時に発行することを可能とすることを特徴とす
る。
(作用) このような手段をとることによって、分岐命令以前の命
令系列と予測された分岐先の命令系列を可能な限り同時
に実行しながら、予測された確定前の分岐先の命令によ
る実行結果であってもオペランドとして使用することを
可能とする。これにより、分岐命令の確定待ちによる命
令実行開始の遅延を抑えることができ、高速な処理を可
能とする。
(実施例) 第1図は本発明の一実施例を示す装置構成図である。図
中10は処理すべき命令を記憶する命令記憶手段である
。20は命令記憶手段IOより得た命令が実行結果とし
て行うレジスタへの書込みをあらかじめ予約するレジス
タ書込み予約手段である。30はレジスタ書込み予約手
段20により処理された命令を複数保持できる先入れ先
出し機能を持つ命令保持手段であり、分岐先が確定し、
実行されることが確定している命令系列を保持する。4
0は命令保持手段により保持された命令、もしくはレジ
スタ書込み予約手段20により処理された、実行が確定
していない命令を発行する命令発行手段である。50は
命令発行手段40が行うオペランドアクセスに対し制御
を加えるオペランドアクセス制御手段である。60は命
令発行手段40により発行された命令を実行する命令実
行手段である。70は命令実行手段60から出力される
結果の内、実行が確定していない命令による実行結果を
一時的に保持する分岐予測先命令実行結果格納手段であ
る。80は命令実行手段60から出力される結果の内、
実行が確定している命令による実行結果を保持するレジ
スタである。
第2図はオペランドアクセス制御手段50の要部を示し
たものである。510はレジスタ書込み予約手段20に
より設定されるレジスタを書込み履歴フラグであり、命
令分岐から次の分岐命令までを一つのフロノクと考え、
過去から現在を通してブロノク内で該レジスタにタすし
て書込み予約があったどうかを示す。520はレジスタ
書込み予約手段20により設定されるレジスタ書込み予
約済フラグであり、現時点でフロック内で該レジスタに
対して書込み予約がされているかどうかを示す。530
は命令発行手段40により設定される命令発行済フラグ
であり、現時点でブロソク内で該レジスタに対して書込
み予約をしている命令が発行されているかでうかを示す
。レジスタ書込み履歴フラグ510、レジスタ書込み予
約済フラグ520、命令発行済フラグ530は同一の形
式で、第3図に示すように、レジスタの各要素に対応す
るフラグを持ち、さらに確定している命令用と確定して
いない命令用との2種類のフラグセノトを備える。この
2種類のフラグレジスタを区別するため、A側、B側と
いう用語を用いる。
命令分岐から次の命令分岐までの一つのブロソクには、
A側かB側のどちらか一方が割り当てられる。この割り
当て該ブロノクに含まれる全命令の終了時に解放され、
次のブロノクに割り当てることができるようになる。5
40はレジスタ書込み履歴フラグ510、レジスタ書込
み予約済フラグ520、命令発行済フラグ530におけ
る2種類のフラグセットの内、どちら側が確定している
命令用であるかを示す確定命令系列フラグである。すな
わち、現在実行中のA側かBfll1のどちら側が実行
が確定している命令系列なのかを示す。これにより、該
ブロソクが割り当てられている側が、確定命令系列54
0が規定する側と一致していれば該ブロソクの実行は確
定しているものと判定することができる。550命令発
行手段40が行なうオペランドアクセスに対して情報を
与えるオペランド読出し判定回路であり、オペランド読
出しを分岐予測先命令実行結果格納手段70とレジスタ
80のどちらかから行うという読出し元の情報と、読出
しを行って良いかという読出し可否の情報とを、レジス
タ書込み履歴フラグ510、レジスタ書込み予約済フラ
グ520、命令発行済フラグ530、確定命令系列フラ
グ540による値から作成する。この読出し情報の判定
流れ図を第4図に示す。第4図において、レジスタ書込
み履歴フラグ510をWH、レジスタ書込み予約済フラ
グ520をWB、命令発行済フラグ530をIB、確定
命令系列フラグ540をFP、該ブロソク側をBlk、
該ブロノクの反対側をrB1k、判定する該レジスタ番
号をRegで表す。特に、レジスタ書込み履歴フラグ5
10、レジスタ書込み予約済フラグ520、命令発行済
フラグ530については、例えば、「レジスタ書込み予
約済フラグ520の、該ブロソク側のフラグセットの、
該レジスタ番号75ζ示すフラグ」を、WB(Blk,
 Reg)という形で表す。
以上のような構成の命令処理装置において、本発明の内
容を説明するために、まず実行されることが確定してい
る命令を処理する際の動作を説明する。命令は命令3己
憶手段10がら読み出され、その命令が実行結果として
行うレジスタへの書込みを、レジスタ書込み予約手段2
0により予約する。
レジスタ書込みの予約の予約操作では、レジスタ書込み
履歴フラグ510とレジスタ書込み予約済フラグ520
の両方に対して、該ブロック側フラグセントの該書込み
レジスタ番号の示すフラグを設定する。ここで設定され
たフラグの内、レジスタ書込み履歴フラグ510は該ブ
ロソクの終了時、すなわち次の分岐命令までの全命令が
終了した時点で解除され、レジスタ書込み予約済フラグ
520は該命令が終了した時点で解除される。レジスタ
書込み予約手段20により予約が完了した命令は、命令
保持手段30に保持され、命令発行を待つ。命令保持手
段30に保持されていた命令は、命令発行手段4oにお
いてオペランドアクセスを行ない、これに成功したもの
は命令実行手段60に転送される。ここで行われるオペ
ランドアクセスにあたって、言売出しに関する情報を、
オペランドアクセス制御手段5oより受け取る。このと
きオペランドアクセス制御手段50では、第4図の流れ
図に沿って判定が下される。まず、該ブロソクと確定命
令系列フラグ540の比較が行われ(ステソプ101)
、これが一致していることから、該ブロソクは実行され
ることが確定していることがわかる。そして、命令発行
済フラグ530の該ブロソク側フラグセントの該読出し
レジスタ番号の示すフラグを判定し(ステソプ102)
、このフラグが解除された状態であれば、レジスタ80
への該オペランドアクセスを許可する。命令発行手段4
0から命令を発行すると同時に、命令発行済フラグ53
0の該ブロノク側フラグセノトの該書込みレジスタ番号
の示すフラグを設定する。命令発行手段40から発行さ
れた命令は命令実行手段60において該命令が規定する
動作を行ない、その実行結果を生成する。命令実行手段
60において生成された実行結果は、レジスタ80に格
納され、実行を終了する。命令の実行終了時には、レジ
スタ書込み予約済フラグ520と命令発行済フラグ53
0の両方に対して、該ブロック側フラグセントの該書込
みレジスタ番号の示すフラグを解除する。
次に、分岐予測機構により予測された、実行が確定して
いない命令を実行する場合の動作について説明する。命
令は命令記憶手段10から読み出され、その命令が実行
結果として行うレジスタへの書込みを、レジスタ書込み
子約手段20により予約する。レジスタ書込みの予約操
作では、レジスタ書込み履歴フラグ510とレジスタ書
込み予約済フラグ520の両方に対して、該ブロック側
の該書込みレジスタ番号の示すフラグを設定する。ここ
で設定されたフラグの内、レジスタ書込み履歴フラグ5
10は次の分岐命令までの全命令が終了した時点で解除
され、レジスタ書込み予約済フラグ520は該命令が終
了した時点で解除される。レジスタ書込み予約手段20
により予約が完了した命令は、命令発行手段40におい
てオペランドアクセスを行ない、これに成功したものは
命令実行手段60に転送される。ここで行われるオペラ
ンドアクセスにあたって、オペランド読出しを分岐予測
先命令実行結果格納手段70とレジスタ80のどちらか
ら行うかという読出し元の情報と、読出しを行って良い
かという読出し可否の情報とを、オペランドアクセス制
御手段50より受け取る。このときオペランドアクセス
制御手段50では、第4図の流れ図に沿って判定が下さ
れる。まず、該ブロソクと確定命令系列フラグ540の
比較が行われ(ステップ101)、これが一致していな
いことから、該ブロノクは実行されることが確定しない
ことがわかる。次にレジスタ書込み履歴フラグ510の
該フロック側フラグセントの該読出しレジスタ番号の示
すフラグを判定し(ステソプ103)、このフラグが解
除された状態であればオペランドアクセスをレジスタ8
0から、設定された状態であればオペランドアクセスを
分岐予測先命令実行結果格納手段70から行うように、
命令発行手段40に伝える。さらにこのオペランド読出
し元情報を元に、オペランドアクセス制御手段50が命
令発行手段40に対して伝える、オペランドアクセス許
可情報を作成する。すなわち、もしレジスタ80から読
み出す場合であれば、レジスタ書込み予約済フラグ52
0の該ブロソクの反対側のフラグセノトの該読出しレジ
スタ番号の示すフラグを判定し(ステノプ104)、こ
のフラグが解除された状態であればレジスタ80への該
オペランドアクセスを許可する。もし、分岐予測先命令
実行結果格納手段70から読み出す場合であれば、命令
発行済フラグ530の該ブロソク側フラグセットの該レ
ジスタ番号の示すフラグを判定しくステップ105)、
このフラグが解除された状態であれば分岐予測先命令実
行結果格納手段70への該オペランドアクセスを許可す
る。
命令発行手段40から命令を発行すると同時に、命令発
行済フラグ530の該ブロック側フラグセノトの該書込
みレジスタ番号の示すフラグを設定する。
命令発行手段40から発行された命令は命令実行手段6
0において該命令が規定する動作を行ない、その実行結
果を生成する。命令実行手段60において生成された実
行結果は、分岐予測先命令実行結果格納手段70に一時
的に保持される。この時点でとりあえず命令は終了した
ものとみなされ、レジスタ書込み予約済フラグ520と
命令発行済フラグ530の両方に対して、該ブロソク側
の該書込みレジスタ番号の示すフラグを解除する。
次に、分岐命令による分岐先が確定し、予測した分岐先
と一致していた時の動作を説明する。分岐命令の分岐先
が確定したら、その分岐命令以前の命令の実行終了を待
った後、分岐予測先命令実行結果格納手段70に一時的
に保持されていた実行結果をレジスタ80に転送する。
すべての転送が終了後、分岐予測先命令実行結果格納手
段70の全要素を解除する。レジスタ書込み履歴フラグ
510では、確定命令系列フラグ540が規定するフラ
グセントを全要素解除する。その後、確定命令系列フラ
グ540を反転させる。
次に、分岐命令による分岐先が確定したが、予測した分
岐先と一致せず、分岐予測が失敗した時の動作を説明す
る。分岐予測失敗を検知すると、分岐予測失敗した先の
命令の命令記憶手段10からの投入を停止し、命令実行
手段40にすでに投入されている分岐予測失敗した先の
命令の実行の終了を待ち、分岐予測先命令実行結果格納
手段70の全要素を解除する。レジスタ書込み履歴フラ
グ510、レジスタ書込み予約済フラグ520、命令発
行済フラグ530の全てにおいて、確定命令系列フラグ
540が規定する側の逆側のフラグセントを全要素解除
する命令言己憶10からは確定した分岐先の命令を投入
し、実行が確定した命令として実行を続行する。
次に第5図に示すプログラムにおいて動作例を説明する
。プログラム中の分岐命令については分岐を起こさない
方に予測されているものとする。また、確定命令系列フ
ラグ540は−初期値としてA側を指示するものとする
。つまり、最初に投入される命令から次の分岐命令まで
は、レジスタ書込み履歴フラグ510、レジスタ書込み
予約済フラグ520、命令発行済フラグ530における
A, B2種類のフラグセノトの内、A側を使用する。
まず第1サイクルでは命令(1)が命令記憶10から読
み出されて、レジスタ書込み予約手段20を通じて、命
令(1)の書込みレジスタr2に対応した、レジスタ書
込み履歴フラグ510とレジスタ書込み予約済フラグ5
20の両者のA側の2番のフラグをONにする。第2サ
イクルでは命令(2)が命令記憶手段10から読み出さ
れて、レジスタ書込み予約手段20を通じて、命令(2
)の書込みレジスタr4に対応した、レジスタ書込み履
歴プラグ510とレジスタすき込み予約済フラグ520
0両者のA側の4香のフラグをONにする。それと同時
に、命令(1)が命令保持手段30により保持される。
第3サイクルでは、命令(3)が命令記憶手段10から
読み出されるか、命令(3)はレジスタ書込みがないの
で、レジスタ書込み予約手段20は書込み予約はしない
。それと同時に命令(2)が命令保持手段30により保
持される。それと同時に命令発行手段40において命令
(1)がオペランドrOとr1を読み出し、命令を発行
する。この時、命令発行済フラグのA側の0番と1番フ
ラグをチェノクし、共にOFFであるのでオペランドア
クセスは成功する。命令発行時には、命令(1)の書込
みレジスタr2に対応した、命令発行済フラグ530の
両者のA側の2番のフラグをONにする。第4サイクル
では、命令(4)が命令記憶手段10から読み出されて
、レジスタ書込み予約手段20を通じて、命令(4)の
書込みレジスタr5に対応した、レジスタ書込み履歴フ
ラグ510とレジスタ書込み予約済フラグ520の両者
のB側の5番のフラグをONにする。それと同時に命令
(3)が命令保持手段30により保持される。それと同
時に命令発行手段40において命令(2)がオペランド
r2とr3を読み出そうとするが、命令発行済フラグの
A側の2番のフラグがONになっているため、オペラン
ドアクセスは失敗し、命令発行手段40に留まる。第4
サイクルにおけるスナノプショノトを第6図に示す。
第5サイクルでは、命令(1)は演算実行を続け、命令
(2)は命令発行手段40に、命令(3)は命令保持手
段30に保持され続ける。命令(5)が命令記憶手段1
0から読み出されて、レジスタ書込み予約手段20を通
じて、命令(5)の書込みレジスタr6に対応した、レ
ジスタ書込み履歴フラグ510とレジスタ書込み予約済
フラグ520の両者のB側の6番のフラグをONにする
。命令(4)は、まず命令(4)の読出しレジスタrO
、r3に対応した、レジスタ書込み履歴フラグ5100
B側の0番と3番を判定し、共にOFFであるので共に
レジスタ80からオペランドを読み出すことになる。そ
して、レジスタ書込み予約済フラグ520のA側の0番
と3番を判定し、共にOFFであるのでオペランドアク
セスは成功し、命令発行手段40から命令(4)が発行
される。第6のサイクルでは命令(6)が命令記憶手段
10から投入される。それと同時に命令発行手段40に
おいて命令(5)がオペランドr2とr3を読み出そう
とするが、命令発行済フラグのA側の2番のフラグがO
Nになっているため、オペランドアクセスは失敗し、命
令発行手段40に留まる。第7サイクルでは自今(7)
が命令記憶手段10から投入されようとするが、レジス
タ書込み予約手段20に命令(6)が留まっているため
、投入できない。第8サイクルでは変化がない。第8サ
イクルにおけるスナノブショットを第7図に示す。
第9サイクルでは命令(1)の実行結果のレジスタ80
への書込みが起こり、レジスタ書込み予約済フラグ52
0と命令発行済フラグのA側の2番をOFFにする。こ
れにより、命令発行済フラグのA側の2番がOFFにな
るのを待っていた、命令発行手段40にある命令(2)
と命令(5)の両者のオペランドアクセスが成功するが
、本実施例では同時には1つの命令しか発行できない構
成になっているため、確定系列側の命令(2)のみが発
行される。第10サイクルでは命令(3)の発行が試み
られるが、命令(2)によって命令発行済フラグのA側
の4番がONにされているためオペランドアクセスに失
敗し、命令発行手段40に留まる。また第10サイクル
では前サイクルに保留された命令(5)の発行が行われ
る。これによって、第11サイクルでは命令(6)が命
令発行手段40に、命令(7)がレジスタ書込み予約手
段20に進む。また、命令(4)の実行結果の分岐予測
先命令実行結果格納手段70への書込みが起こり、レジ
スタ書込み予約済フラグ520と命令発行済フラグ52
0のB側の5番をOFFにする。これにより、以下のよ
うに命令発行手段40にある命令(6)のオペランドア
クセスが成功し、命令(6)が発行される。すなわち、
レジスタ書込み履歴フラグ510のBl則の5@がON
になっているため、オペランド読出し分岐予測先命令実
行結果格納手段70がらであることがわかり、命令発行
済フラグ530のB側の5番がOFFになったことによ
りオペランドアクセスが許可されたことになる。第11
サイクルにおけるスナノプショノトを第8図に示す。
第12サイクルがら第14サイクルの間は変化が起こら
ない。第15サイクルでは命令(2)の実行結果のレジ
スタ80への書込みが起こり、レジスタ書込み予約済フ
ラグ520と命令発行済フラグのA側の4番をOFFに
する。これにより、命令発行済フラグのA側の4番がO
FFになるのを待っていた、命令発行手段40にある命
令(3)が発行される。第16サイクルでは命令(2)
の、そして第17サイクルでは命令(6)の実行結果の
分岐予〆pη先命令実行結果格納手段7oへの書込みが
起こり、レジスタ書込み予約済フラグ520と命令発行
済フラグ530のB側の6番と7番をOFFにする。こ
れにより、第17サイクルでは、命令発行済フラグのB
側の7番がOFFになるのを待っていた、命令発行手段
40にある命令(7)が発行される。第18サイクルで
は変化がない。第19サイクルでは、命令(3)の実行
が終了し、予測した分岐先に確定するので、分岐予測先
命令実行結果格納手段70がらレジスタ80への転送を
行う。このとき分岐予測先命令実行結果格納手段70内
には、命令(4), (5), (6)による実行結果
r5, r6, r7があり、転送はこの3つについて
行われる。転送後、分岐予測先命令実行結果格納手段7
0は解除される。そして、レジスタ書込み履歴フラグの
A側を全要素解除し、確定命令系列フラグ540の規定
する値をA側からB側に反転する。
これにより、次の第20サイクルではA側が新たに使用
できるようになるので命令(8)が命令記−1#10か
ら投入される。第20サイクルにおけるスナノプショソ
トを第9図に示す。
第21サイクルでは、命令(7)の実行が終了し、予測
した分岐先に確定する。但し、このとき分岐予測先命令
実行結果格納手段70内には書込みが起きていないので
、分岐予測先命令実行結果格納手段70からレジスタ8
0への転送は行われない。そして、レジスタ書込み履歴
フラグのB側を全要素解除し、確定命令系列フラグ54
0の規定する値をB側からAftl!I+に反転する。
命令(8)は第21サイクルで発行され、第26サイク
ルで終了し、プログラムが終了する。プログラムの開始
から終了までのタイムチャートを第10図に示す。
以上、本願発明による命令処理装置において、命令の処
理過程について説明した。
次に、第1図の1つの命令保持手段30の代わりに2つ
の命令保持手段31. 32を生じた場合の本発明の他
の一実施例を第11図により説明する。
第11図は、本発明による命令処理装置の一実施例であ
る。図において2つの命令保持手段31. 32を備え
ている以外は、前述した第1図の本発明による命令処理
装置の実権例と同じ構成となっている。
本構成では、レジスタ書込み予約手段2oにより予約が
完了した命令は、分岐命令を区切りとして、命令保持手
段AもしくはBに保持される。例えば、初めに命令保持
手段Aに保持されていった命令系列では、分岐命令の次
の命令以降を命令保持手段Bに保持し、またその次の分
岐命令の次の命令以降を命令保持手段Aに保持していく
。これにより、第5図のプログラムの例では、命令(7
)は第10サイクルまで命令託憶10から投入できなか
ったが、命令保持手段を2つ使用した本発明では第6サ
イクルにおいて投入が可能となる。レジスタを2つ使用
した場合の本発明のさらに他の一実施例を第12図によ
り説明する。
第12図の本発明の命令処理装置は2つのレジスタ81
.82とその間の転送手段90を備えており、分岐予測
先命令実行結果格納手段70が省かれている以外は、前
述した第1図の本発明による命令処理装置の実施例と同
じ構成となっている。本構成でば、命令実行手段60に
て得られた結果は、確定している系列に属する命令によ
る結果であればレジスタA,Bの両者に書込むが、確定
していない系列による結果であれば、分岐命令を区切り
として、レジスタAもしくはBのいずれかに保持される
。例えば、ある確定していない命令系列による結果をレ
ジスタAに保持していった場合には、先行する分岐予測
が成功してこの命令系列が確定した瞬間からこの系列に
よる結果をレジスタA,Bの両者に書込む。そして、分
岐命令の次の命令以降の結果は実行が確定するまでレジ
スタBだけに保持し、その命令系列が確定した瞬間から
その系列による結果をレジスタA,Bの両者に書込む。
またその次の分岐命令の次の命令以降の結果を実行が確
定するまではレジスタAに保持していき、以下これを繰
り返す。レジスタ間転送手段90では、レジスタ書込み
済フラグという前述の第3図の形式のフラグレジスタを
備え、上記の動作手順中で片方のレジスタにのみ結果が
書き込まれた場合には、該当する側(すなわち、レジス
タAならA側、レジスタBならB側)の該レジスタ番号
のレジスタ書込み済フラグをONにする。そして、その
命令系列の実行可否を決定する分岐命令が予測成功側に
分岐した時点で、レジスタ書込み済フラグがONとなっ
ている該ブロック側の該レジスタ番号のレジスタを、反
対側の同一レジスタ番号に複写する。レジスタ書込み済
フラグは、この複写後OFFとする。また、逆に予測失
敗側に分岐した場合には、レジスタ書込み済フラグがO
Nとなっている該ブロック側の反対側の該レジスタ番号
のレジスタを、レジスタ書込み済フラグがONとなって
いる該ブロック側の同一レジスタ番号に複写する。レジ
スタ書込み済フラグは、この複写後OFFとする。これ
により、分岐予測先の実行結果を分岐先が確定する前に
片側のレジスタに嘗込み、分岐成功時にはその結果を反
対側に複写し、分岐予測失敗時にはその反対側の値を複
写してくることにより元の値を復元することができる。
第12図の実施例における、レジスタ読出しの可否と、
いずれのレジスタから読出すべきかの判断を決定する流
れ図を第13図に示す。使用する記号は第4図と同様で
ある。
次に第12図の実施例における動作を、前述の第5図に
示すプログラムにおいて説明する。前述の第1図の場合
に比べて、オペランド読出しと実行結果書込みの動作だ
けが異なるため、この部分についてのみ説明する。まず
、命令(1)は確定系列側であり(第13図、ステップ
201)、r2の書込みをする命令が実行中ではない(
ステップ2o4)ので、第13図の流れ図に従いA側の
r2を第3サイクルで読出すことが可能である。また、
命令(1)は書込み時には確定系列であるので両側のレ
ジスタに書き込む。次の命令(2)はやはり確定系列側
であるので、第13図の流れ図に従い該ブロノク側、す
なわちA側のレジスタからオペランド読出しをする。こ
の際、先行する命令(1)が、既にr2の書込みを予約
している(すなわち、IB(Blk, Reg)がON
)ため、命令(1)が終了する第9サイクルまでオペラ
ンド読出しが保留される。命令(5)は命令(2)と同
じ<r2を読み出そうとするが、確定していない系列側
であり(第13図、ステップ201)、該フロソクによ
るr2への書込みがされていない(ステップ202)た
め、該ブロノクの反対側、すなわちA側のレジスタから
オペランド読出しを試みる。ところが命令(1)がずで
にr2の書込みを予約している(ステップ203)ため
、命令(1)が終了するまでオペランド読出しが保留さ
れる(第9サイクルでは命令(2)が発行されるため、
命令(5)の発行は第10サイクル)。また、命令(5
)は書込み時にも確定していない系列側であるため、該
ブロック側、すなわちB側のレジスタにのみ結果の書込
みをする。その他の命令についても同様の動作をする。
次に、命令発行手段を2つ使用した場合の一実施例を第
14図、第15図により説明する。第14図は、本発明
による命令処理装置の一実施例である。図において、2
つの命令発行手段41.42備え、複数命令を同時允行
可能としており、これに対処するためにオペランドアク
セス制御手段150、命令実行手段160、分岐予測先
命令実行結果格納手段170、レジスタ180が同時ア
クセス可能な構成になっている以外は、前述した第1図
の本発明による命令処理装置の実施例と同じ構成となっ
ている。また第15図はオペランドアクセス制御手段1
50の要部を示したものである。図において、各フラグ
が同時アクセス可能になり、オペランド読出し判定回路
を2つ備えている以外は、前述した第2図と同じ構成と
なっている。
次に第14図の実施例における動作を、前述の第5図に
示すプログラムにおいて説明する。前述の第1図の場合
に比べ、命令発行手段の動作タイミングだけが異なるた
め、この部分についてのみ説明する。第9サイクルでは
命令(1)の実行結果のレジスタ80への書込みが起こ
り、レジスタ書込み予約済フラグ520と命令発行済フ
ラグのA側の2番をOFFにする。これにより、命令発
行済フラグのA側の2番OFFになるのを待っていた、
命令発行手段にある命令(2)と命令(5)の両者のオ
ペランドアクセスが成功する。第1図の実施例では同時
には1つの命令しか発行できない構成になっているため
、確定系列側の命令(2)のみが発行されたが、第14
図による実施例では命令発行手段を2つ備えて2命令同
時発行可能であるため、第9サイクルに命令(2)と命
令(5)の両者を発行する。他の命令の動作については
第1図の実施例の場合と同じである。
なお、第11図、第12図、第14図の各実施例につい
ては、これらを適宜組み合せて命令処理装置を構成して
もよい。すなわち、複数の命令保持手段A,B、レジス
タA,B及び命令発行手段A,Bのうちの少なくとも2
つの手段を含むように命令処理装置を構成してもよい。
(発明の効果) 以上の説明で明かなように、この発明によると分岐命令
以前の命令系列と予測された分岐先の命令系列を可能な
限り同時に実行しながら、予測された確定前の分岐先の
命令による実行結果であってもオペランドとして使用す
ることが可能となり、分岐命令の確定待ちによる命令実
行開始の遅延を抑えることができ、高速な処理を行うこ
とができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す装置図、第2図は第1
図のオペランドアクセス制御手段の一実施例を示す図、
第3図は第2図のレジスタ書込み履歴フラグ、レジスタ
書込み予約済フラグ、命令発行済フラグ、$12図のレ
ジスタ間転送手段のレジスタ書込み済フラグの構成を示
す図である。第4図は第1図のオペランドアクセス制御
手段における読出し許可判定のための流れ図である。第
5図は動作例を示すために用いたプログラムである。第
6. 7, 8. 9図はそれぞれ第5図によるプログ
ラム動作例の第4,8,11. 20サイクルのスナッ
プショノトである。第10図は第5図によるプログラム
動作例のタイムチャートである。第11図は本願の第2
の発明の一実施例を示す装置図である。第12図は本願
の第3の発明の一実施例を示す装置図である。第13図
は第12図のオペランドアクセス制御手段における読出
し許可判定のための流れ図である。第14図は本願の第
4の発明の一実施例を示す装置図であり、第15図は第
14図のオペランドアクセス制御手段の一実施例を示す
図であり、第16図は従来の技術による装置図である。 図において、 10は命令記憶手段、20はレジスタ書込み予約手段、
30, 31. 32は命令保持手段、40, 41.
 42は命令発行手段、50はオペランドアクセス制御
手段、60は命令実行手段、70は分岐予測先命令実行
結果格納手段、80, 81. 82はレジスタ、90
はレジスタ間転送手段、150はオペランドアクセス制
御手段、160は命令実行手段、170は分岐予測先命
令実行結果格納手段、180はレジスタ、510はレジ
スタ書込み履歴フラグ、520はレジスタ書込み予約済
フラグ、530は命令発行済フラグ、540は確定命令
系列フラグ、550はオペランド読出し判定回路、56
1は分岐命令の分岐情報を伝える信号線、562は各命
令の終了を伝える信号線、563は命令のレジスタへの
書込み予約情報を伝える信号線、564は各命令の発行
情報を伝える信号線、565はオペランド読出しの可否
を伝える信号線、1510はレジスタ書込み履歴フラグ
、1520はレジスタ書込み予約済フラグ、1530は
命令発行済フラグ、1540は確定命令系列フラグであ
る。

Claims (4)

    【特許請求の範囲】
  1. (1)分岐命令による分岐先の確定を待たずに分岐先ア
    ドレスを予測する分岐予測方式において、処理すべき命
    令を記憶する第1の手段と、命令の実行結果を書き込む
    レジスタという第2の手段と、前記第1の手段より得ら
    れた命令が実行結果として行うレジスタへの書込みをあ
    らかじめ予約する第3の手段と、前記第3の手段により
    予約された命令を保持し、命令を発行する第4の手段と
    、前記第4の手段により発行された命令を実行する第5
    の手段と、前記第5の手段と前記第2の手段との間に配
    置される、予測されていながら確定していない分岐先に
    ある命令による実行結果を一時的に保持する第6の手段
    と、前記第6の手段により保持された実行結果を前記第
    2の手段へ転送する第7の手段と、前記第6の手段によ
    り保持された実行結果を前記第4の手段がオペランドと
    して読み出す第8の手段と、前記第2の手段により保持
    された実行結果を前記第4の手段がオペランドとして読
    み出す第9の手段とを備え、さらに前記第4の手段は、
    分岐先未確定の分岐命令以前の命令系列を保持する第1
    0の手段と、前記第10の手段に保持された命令と前記
    第3の手段により予約された命令を前記第5の手段に発
    行する第11の手段と、前記第3の手段によるレジスタ
    書込み予約と前記第11の手段が行なう命令発行の履歴
    情報と前記第5の手段による分岐先確定情報とを受け取
    ることにより、前記第11の手段が行なうオペランドア
    クセスに対して、制御を加える第12の手段を備え、予
    測された確定前の分岐先の命令の実行結果を使用してさ
    らにその先の命令の処理を行うことを特徴とする命令処
    理装置。
  2. (2)前記第10の手段を2つ以上備え、前記第3の手
    段により予約された命令を、分岐命令を区切りとして複
    数の第10の手段に対して、順次振り分けることを特徴
    とする特許請求の範囲第1項記載の命令処理装置。
  3. (3)前記第2の手段と第6の手段と第7の手段と第8
    の手段と第9の手段との代わりに、第2の手段と第9の
    手段の組を2つ以上と、その複数の第2の手段に保持さ
    れている値を互いに転送する手段とを備え、予測されて
    いながら確定していない分岐先にある命令による実行結
    果を、複数の第2の手段のいずれかに保持することを特
    徴とする特許請求の範囲第1項記載の命令処理装置。
  4. (4)前記第11の手段を2つ以上備えることにより、
    複数の命令を同時に発行することを可能とすることを特
    徴とする特許請求の範囲第1項記載の命令処理装置。
JP9810290A 1989-11-08 1990-04-13 命令処理装置 Expired - Lifetime JP2814683B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9810290A JP2814683B2 (ja) 1989-11-08 1990-04-13 命令処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1-288832 1989-11-08
JP28883289 1989-11-08
JP9810290A JP2814683B2 (ja) 1989-11-08 1990-04-13 命令処理装置

Publications (2)

Publication Number Publication Date
JPH03218524A true JPH03218524A (ja) 1991-09-26
JP2814683B2 JP2814683B2 (ja) 1998-10-27

Family

ID=26439306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9810290A Expired - Lifetime JP2814683B2 (ja) 1989-11-08 1990-04-13 命令処理装置

Country Status (1)

Country Link
JP (1) JP2814683B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor

Also Published As

Publication number Publication date
JP2814683B2 (ja) 1998-10-27

Similar Documents

Publication Publication Date Title
EP0087978B1 (en) Information processing unit
JP3721780B2 (ja) 複数のパイプライン処理機構を有するデータ処理装置
JPS63317828A (ja) マイクロコ−ド読み出し制御方式
JPS62115542A (ja) 情報処理装置
JPS58182758A (ja) 演算制御装置
JPH03218524A (ja) 命令処理装置
JPH0248932B2 (ja)
JPS5890247A (ja) 情報処理装置のパイプライン制御方式
EP0700005A1 (en) Vector data bypass mechanism for vector computer
JP2000181707A (ja) 命令制御装置及びその方法
JPS6120893B2 (ja)
JP2594140B2 (ja) データ駆動型データ処理装置
JP2883488B2 (ja) 命令処理装置
JPS60176144A (ja) レジスタフアイル装置
JP3743155B2 (ja) パイプライン制御型計算機
JP2506591B2 (ja) 補助処理装置
JPH0683639A (ja) レジスタ装置
JPH02197961A (ja) 情報処理装置
JPH0419575B2 (ja)
JPS6337412B2 (ja)
JPS6343784B2 (ja)
JPS6325372B2 (ja)
JPS5896346A (ja) 階層型演算方式
JPH0227491A (ja) データ処理装置
JPH04107634A (ja) メモリデータバイパス制御方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070814

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080814

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080814

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090814

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090814

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100814

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100814

Year of fee payment: 12