JPH03129525A - 情報処理装置の命令処理方式 - Google Patents

情報処理装置の命令処理方式

Info

Publication number
JPH03129525A
JPH03129525A JP26863189A JP26863189A JPH03129525A JP H03129525 A JPH03129525 A JP H03129525A JP 26863189 A JP26863189 A JP 26863189A JP 26863189 A JP26863189 A JP 26863189A JP H03129525 A JPH03129525 A JP H03129525A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
executed
instructions
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
JP26863189A
Other languages
English (en)
Inventor
Makoto Yamagata
良 山縣
Naohiko Shimizu
尚彦 清水
Masabumi Shibata
正文 柴田
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 JP26863189A priority Critical patent/JPH03129525A/ja
Publication of JPH03129525A publication Critical patent/JPH03129525A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置の命令処理方式に係り、特に分岐
命令の処理高速化に好適な命令処理方式〔従来の技術〕 情報処理装置において、パイプライン処理方式は命令処
理の高速化に有効であり、広く採用されている。これは
、ひとつの命令を複数のステージに分割して実行し、前
の命令が終了する以前に次の命令処理を開始することに
より、単位時間当たりに処理できる命令数を増やす方式
である。
パイプライン処理方式では、直前の命令の実行が終了す
る前に命令処理を開始する必要があるので、直前の命令
の結果が得られなくても次の命令を開始できる必要があ
る0通常の命令ではこの要求はほとんだ満たされるが、
分岐命令では満たされない0分岐命令では命令が終了す
るまで次に実行すべき命令が得られないため、パイプラ
イン処理を行うことができず、性能低下の大きな原因と
なっている。そのため1分岐命令の処理を高速化する方
法が、従来から種々提案されている。
第1の方法は、特開昭50−39437号公報に示され
るような分岐命令の先行デコードである。
これは、1回の命令取出しで複数の命令を取出さること
を利用して、現在実行している命令の後方にある分岐命
令を探索し、現在の命令実行と並行してその分岐命令の
分岐先命令を取出すというものである。こうすることに
より、命令の実行が分岐命令まで達した時には、その分
岐命令の分岐先命令が既に得られているため、分岐命令
の実行においてもパイプライン処理を行うことが可能で
ある。
第2の方法は、特公昭63−10451号公報に示され
るような分岐予測メモリ方式である。これは、ある分岐
命令が分岐を行うと1次回もその分岐命令は同一の分岐
先へ分岐する確率が高いという事実を利用するものであ
る。分岐命令が実行されると、その結果を分岐予測メモ
リに登録しておき、再びその命令を実行しようとする時
には、命令の実行結果を待たずに、分岐予測メモリの結
果により分岐先命令の取出しゃ実行を行う。こうするこ
とで、命令の実行とは独立に分岐先命令を取出せるので
、分岐命令の実行においてもパイプライン処理を行うこ
とが可能である。
第3の方法は、I B M Journal of R
e5earchand Development、 V
olume 27.、 Number 3 。
May 1983. pp237〜246や、Comp
uter 。
Sep、 1982. pp8〜22に示されるような
ディレドジャンプ方式である。これは、分岐命令の次に
実行する命令を分岐先命令ではなく、通常の命令と同様
の後続する命令とし、その後続する命令の次に分岐先命
令を実行するというものである。
これによれば、分岐命令の後続命令を実行している間に
分岐先命令を取出すことができるため、パイプライン処
理を行うことが可能である。
〔発明が解決しようとする課題〕
上記従来技術においては、いずれも分岐命令の実行にお
いても性能を低下させることなくパイプライン処理を行
うことが一応可能であるが、次のような問題がある。
第1の分岐命令の先行デコード方式では、分岐命令の先
行処理を行う時には、それ以前に実行すべき命令が実行
されていないので、先行処理の結果が誤まっている可能
性があるという問題がある。
例えば、分岐命令の直前の命令で、分岐命令の分岐先ア
ドレスの計算に使用するペースレジスタを変更するよう
な場合には、分岐命令の先行処理を行った時点ではその
結果が反映されないので、先行処理を求めた分岐先アド
レスと正しい分岐先アドレスが異なってしまう。このよ
うな時には、先行処理を行わない、また、先行処理結果
と正しい実行結果を比較し異なっている時には、先行処
理の効果をキャンセルする等の対策が必要であり、その
ためのハードウェアの増大と性能の低下を起こすという
問題がある。
第2の分岐予測メモリ方式では1分岐命令の分岐先アド
レスが、以前にその分岐命令を実行した時と同一である
時にだけ性能の向上となるので、その効果がプログラム
の性質に依存するという問題がある。
第3のデイレイドジャンプ方式では、分岐命令の後続命
令の実行中に分岐先命令の取出しを完了しないと、処理
が遅れるという問題がある。一般に命令処理では、メモ
リをアクセスする命令(分岐命令のように分岐先命令を
取出すような場合を含む)の方が、単純なレジスタ間演
算命令よりも長い時間がかかるため、後続命令に処理時
間の短い命令があった場合には、分岐先命令の取出しが
間に合わずに、パイプライン処理が実現できなくなると
いう問題がある。
本発明の目的は、可能な限り分岐命令処理においてもパ
イプライン動作をさせることにある。また、本発明の他
の目的は、少ないハードウェア量で、効率の良い命令取
出しを行うことにある。
〔課題を解決するための手段〕
上記目的を遠戚するために、本発明では1分岐命令を、
分岐先アドレスを指定する命令と分岐を実行する命令と
に分けたことを特徴とする請求項において、第3の命令
が分岐先アドレスを指定する命令に対応し、第1の命令
が分岐を実行する命令に対応する。
〔作 用〕
分岐先アドレスを指定するための命令は、分岐先アドレ
スを保持する専用のレジスタへのロード命令として実現
され、分岐をいつ実行するか、とは無関係に分岐先アド
レスが決定した時点で発行することができる。この命令
が発行されると、分岐先命令の取出しが可能となるため
、分岐を実行する命令よりも前の時点で分岐先の命令を
得ておくことができる。一方、分岐を実行する命令は「
分岐先アドレスを保持する専用のレジスタの間接アドレ
スによる分岐命令」として実現され、従来の分岐命令と
同じように使用する。
一般にプログラムでは1分岐を行う場合、分岐先アドレ
スが決定するのは分岐実行のかなり前であり、分岐を実
行するか、しないかの決定のタイミングによって、分岐
命令の出現位置が制限されている。そのため、上記のよ
うに、分岐先アドレスを指定する命令と分岐を実行する
命令を分割すると、両者は距離を離すことが可能となり
、分岐先アドレスが決定してから分岐実行までの間に充
分時間が得られるので、その間に分岐先命令の取出しを
完了させることができる。
分岐実行命令の開始以前に、分岐先命令が取出されてい
れば1分岐命令であっても通常の命令と同様のパイプラ
イン処理が可能であり、命令処理性能が向上する。また
、事前に得られた分岐先アドレスは常に正しいので、正
しい結果と比較しキャンセルするような処理は不要であ
る。
〔実施例〕
以下1本発明の一実施例について図面により説明する。
第1図は本発明の一実施例のブロック図で、本発明を実
現するための中央処理装置の一部の構成を示したもので
ある。第1図では、分岐先アドレスを保持するために、
プログラムから見えるターゲットアドレスレジスタ(T
AR)5としてTAROとTARlの2個存在する。こ
のTAR5に分岐先アドレスをロードする命令としてL
TA(Load Target Address)命令
を、また、TAR5で指定されたアドレスへの分岐を行
う命令としてBTC(Branch Target o
n Condition)命令を設ける。
第2図にLTA命令及びBTC命令の命令形式を示す、
LTA命令はRX形式の命令であり、後半20ビツトの
部分で指定されたアドレス(Xフィールドの示すインデ
ックスレジスタの値とBフィールドの示すペースレジス
タの値とdispフィールドの値を加算してアドレスを
求める。これは通常のRX形式の命令と同じである)を
Rフィールドで指定されるTAR5ヘセットする。BT
C命令はRR形式の命令であり、Mフィールドで指定さ
れた条件が成立した時に、Rフィールドで指定されるT
AR5の内容のアドレスへ分岐を行う。
これらのLTA命令及びBTC命令は、Rフィールドの
指定するレジスタが汎用レジスタではなくTAR5であ
るという点を除くと、従来から存在するL A (L 
oad A ddress)命令、及びBCR(Bra
nch on Condition)命令と同一の動作
である。
次に、LTA命令及びBTC命令にかかわる第1図の動
作を説明する。
いま、LTA命令が命令レジスタ(IR)lに取出され
たとする。命令は命令デコーダ2でデコードされ、オペ
ランドアドレス計算部3によりオペランドアドレスが計
算される0通常の命令の場合には、このオペランドアド
レスは、オペランドアドレスレジスタ(OAR)4にセ
ットされ、オペランドアクセスに使用される。しかし、
LTA命令では、オペランドアドレスは0AR4にセッ
トされずに、命令のRフィールドで指定された側のTA
R5にセットされる。TAR5に新しく値がセットされ
ると、命令の取出しが起動する。ただし、命令の取出し
は、後続命令を取出すために。
次命令アドレスレジスタ(NIAR)6の内容のアドレ
スから行う場合や、他のTARの内容のアドレスから行
う場合なども存在するため、LTA命令でTAR5に新
しい値がセットされた直後に、その命令の取出しが行わ
れるとは限らず、他の命令の取出しが無い時に起動され
る。したがって、LTA命令自身は、オペランドアドレ
スをTAR5にセットすることにより完了して、命令の
実行は次命令へ進み、命令の取出しの起動は待たさせる
場合が存在する。
TAR5による命令の取出しが可能となると、TAR5
の内容(分岐先アドレス)がセレクタ7を通って、命令
用メモリ8に与えられ、該命令用メモリ8から命令(分
岐先命令)が取出される。
この取出された命令はターゲット命令バッファ(TIB
)9にセットされる。TIB9はTAR5に対応してT
IBO,TIBIの2個存在し。
命令の取出しを起動するのに使用したTAR5の番号と
同一の番号のTlB5が使用される。
次に、TAR5の内容のアドレスへ分岐するためのBT
C命令がIRIに読出されたとする。この場合、LTA
命令の実行で上記のように命令の取出しが行われるので
、TAR5を使用するBTC命令が出現する以前に、命
令の取出しが完了していれば、該BTC命令を実行する
時にはその分岐先の命令の取出しが完了しているため、
該BTC命令の実行を遅滞なく行うことができる。すな
わち、通常の命令の場合、後続命令は次命令用命令バッ
フ7 (NIB)10より取出され、命令切出しアライ
ナ(AL)11を通じてIRIにセットされる。一方、
BTC命令の次の命令は、TIB9に存在しているので
、BTC命令でTAR5に対応するTIB9を選択する
ことにより、BTC命令の次の命令がTIB9よりAL
王lを通じてIRIにセットされる。
このように、従来−つであった分岐命令がLTA命令と
BTC命令の二つに増えるので、命令数としては増える
が1個々の命令はいずれもパイプライン処理を遅滞なく
行うことができる。そのため、命令数は増えても処理性
能は向上する。また、LTA命令とBTC命令の間に割
込み等の予期しない制御の移行があって、異なったプロ
セスが走行するような場合でも、Ta2の内容を汎用レ
ジスタなどに退避し1次のプロセスのTARを回復する
ことにより、対応できる。この場合は1分岐先命令をあ
らかじめ取出しておくという性能上の効果はなくなるが
、BTC命令を実行する時のTARの値は常に、プログ
ラムの意図した分岐先と等しいので誤動作することはな
い。
また、本実施例の変形として、BTC命令を複数種類用
意し、BTC命令の実行後、その命令で使用したTAR
5の値をクリア(Oや−1など分岐命令アドレスとして
使わないような値にセットする)方法が考えられる。こ
の方法によれば、使用しないTAR5をクリアしておく
ことが可能となる。プロセス切替えでTAR5の内容を
更新するような場合、使用されないTAR5の値はクリ
アされているので、T A R5が更新されても命令の
取出しが不要な時は実行されないという効果がある。
上記の方法を実現するには、分岐条件の成立・不成立に
応じてTAR5のクリア制御を行うビットをBTC命令
に追加すればよい。第3図はこれを示したもので、BT
C命令のRフィールドの最上位ビットを「分岐条件成立
時にTAR@−クリアする」、次位のビットを「分岐条
件不成立時にTARをクリアする」と割り当て、4種類
のBTC命令を作る。これらの命令の使い分けの例を第
4図に示す、即ち、第4図(A)に示すようなプログラ
ムを同図(B)のような機械語にした場合、repea
tループの終端の分岐命令は、分岐した時は再度ループ
を実行することになるため、TAR5の値は元のままを
残し1分岐しなかった時はループが完了しているので、
TAR5をクリアする。
この場合、分岐を行ってもTAR5がクリアされない時
は、TIB9の内容はそのまま残っているので、命令の
取出し処理も減らすことが可能となる。
また、本実施例の他の変形として、TAR5の個数より
も少ないTIB9を備えることも考えられる。TAR5
の個数はプログラムから見える(アーキテクチャとして
規定される)ので、ハードウェアの実現上の都合でその
個数を変えることは望ましくない、そこで、規定された
TAR5の個数だけTIB9を備えることができないよ
うな場合、TAR5は規定された数だけ備え、TIB9
はそれよりも少ない個数だけ備える。この場合。
TAR5とTIB9の関連は静的(一対一の対応)では
なく、TAR5に有効な値がセットされると、その時点
で兜いているTIB9と動的に関連づける。もしTIB
9の空きが無い時には、TAR5に値をセットするだけ
で、命令の取出しは起動しない、そして、TIB9の空
きができた時点で、命令の取出しを起動する。こうする
ことにより、同一のプログラムであっても、異なったハ
ードウェア資源を持つ実現法で効率良く実行できるとい
う効果がある。
〔発明の効果〕
以上の説明から明らかな如く、本発明によれば、分岐を
実行する前に分岐先命令の取出しを起動できるので、分
岐命令実行時には分岐先命令が取出し済である可能性が
高く、分岐命令の実行が高速にできるという効果がある
また、分岐先命令の取出しを行っている間に、後続の命
令の実行を続けることが可能であるので、分岐先命令の
取出しに必要な時間が無駄にならないという効果がある
さらに、分岐先命令の取出しを分岐命令の実行以前に可
能である多重ストリームの命令の取出しを、複雑な予測
制御なしで実現できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は分岐
アドレス記述命令(LTA命令)及び分岐実行命令(B
TC命令)の形式を示す図、第3図はターゲットアドレ
スレジスタ (TAR)のクリア機能を持ったBTC命
令の形式を示す図、第4図はループ処理でのTARの使
用例を示した図である。 1・・・命令レジスタ、 2・・・命令デコーダ。 3・・・オペランドアドレス計算部、 4・・・オペランドアドレスレジスタ、5・・・ターゲ
ットアドレスレジスタ。 6・・・次命令アドレスレジスタ、 7・・・セレクタ、 8・・・命令用メモリ。 9・・・ターゲット命令バッファ、 10・・・次命令用命令バッファ、 11・・・命令切出しアライナ。 第2図 第3図 □□□七ニー豐 持匹コ■醜 4N硬仄′豆時、TAF?’bクリアする會葭覚(生、
坏縞d力;が〃\わらテパし→R1り!Iアする(A) iニー0; epeat IJnt+1 1>/’l; CB)

Claims (7)

    【特許請求の範囲】
  1. (1)記憶装置に格納された命令を読出して実行する情
    報処理装置において、第1の命令の次に実行すべき第2
    の命令がどれであるかを指定する第3の命令を備え、前
    記第1の命令を実行するより前に、前記第3の命令を実
    行することを特徴とする情報処理装置の命令処理方式。
  2. (2)前記第3の命令と前記第1の命令の組が複数存在
    し、各々の組に番号を付け、同一の組の第3の命令と第
    1の命令は同じ番号を参照することを特徴とする請求項
    (1)記載の情報処理装置の命令処理方式。
  3. (3)命令を指定するためのアドレスを保持するレジス
    タを備え、前記第3の命令により前記第2の命令のアド
    レスを指定し、該アドレスを前記レジスタに保持し、前
    記第1の命令を実行した後に、前記レジスタの指定する
    アドレスにより第2の命令を実行することを特徴とする
    請求項(1)記載の情報処理装置の命令処理方式。
  4. (4)前記レジスタを複数備え、前記命令の各々の組に
    レジスタを割当てることを特徴とする請求項(2)及び
    (3)記載の情報処理装置の命令処理方式。
  5. (5)命令を保持するためのバッファを備え、前記第3
    の命令が実行されると、前記第3の命令で指定された前
    記第2の命令を記憶装置から取出し、前記バッファに格
    納する動作を開始することを特徴とする請求項(1)記
    載の情報処理装置の命令処理方式。
  6. (6)前記バッファを複数備え、前記命令の各々の組に
    バッファを割当てることを特徴とする請求項(2)及び
    (5)記載の情報処理装置の命令処理方式。
  7. (7)前記第2の命令のアドレスを保持するレジスタを
    クリアするかどうか、前記第1の命令で指定することを
    特徴とする請求項(3)もしくは(4)記載の情報処理
    装置の命令処理方式。
JP26863189A 1989-10-16 1989-10-16 情報処理装置の命令処理方式 Pending JPH03129525A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26863189A JPH03129525A (ja) 1989-10-16 1989-10-16 情報処理装置の命令処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26863189A JPH03129525A (ja) 1989-10-16 1989-10-16 情報処理装置の命令処理方式

Publications (1)

Publication Number Publication Date
JPH03129525A true JPH03129525A (ja) 1991-06-03

Family

ID=17461233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26863189A Pending JPH03129525A (ja) 1989-10-16 1989-10-16 情報処理装置の命令処理方式

Country Status (1)

Country Link
JP (1) JPH03129525A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008055919A (ja) * 2006-08-29 2008-03-13 Mazda Motor Corp 車両のラジエータ支持装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008055919A (ja) * 2006-08-29 2008-03-13 Mazda Motor Corp 車両のラジエータ支持装置

Similar Documents

Publication Publication Date Title
US5832259A (en) Apparatus for superscalar instruction pre-decoding using cached instruction lengths
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US5611061A (en) Method and processor for reliably processing interrupt demands in a pipeline processor
US5127091A (en) System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5706459A (en) Processor having a variable number of stages in a pipeline
EP2220556B1 (en) A method and a system for accelerating procedure return sequences
US4541047A (en) Pipelined data processing system
US4739470A (en) Data processing system
JP3469469B2 (ja) 情報処理装置
JPH0650465B2 (ja) 分岐制御回路
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US5878242A (en) Method and system for forwarding instructions in a processor with increased forwarding probability
JPH03129525A (ja) 情報処理装置の命令処理方式
US6170050B1 (en) Length decoder for variable length data
JPH04321130A (ja) 分岐予測装置
JP2000172503A (ja) 複数のウェイを持つブランチヒストリを備える情報処理装置
JPH10124312A (ja) 中央処理装置
JP3765111B2 (ja) 分岐登録命令を有するプロセッサ
JP2004038805A (ja) 命令実行装置
JPH0793151A (ja) 命令供給装置
JP3493110B2 (ja) 高速分岐処理装置
JPH06314196A (ja) 情報処理方法および装置
JP2763450B2 (ja) パイプライン処理データ処理装置
JPH10283182A (ja) パイプライン型情報処理装置