JP2812613B2 - 命令実行処理装置 - Google Patents

命令実行処理装置

Info

Publication number
JP2812613B2
JP2812613B2 JP18910792A JP18910792A JP2812613B2 JP 2812613 B2 JP2812613 B2 JP 2812613B2 JP 18910792 A JP18910792 A JP 18910792A JP 18910792 A JP18910792 A JP 18910792A JP 2812613 B2 JP2812613 B2 JP 2812613B2
Authority
JP
Japan
Prior art keywords
instruction
branch
address
stage
pipeline
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 - Fee Related
Application number
JP18910792A
Other languages
English (en)
Other versions
JPH0635700A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP18910792A priority Critical patent/JP2812613B2/ja
Publication of JPH0635700A publication Critical patent/JPH0635700A/ja
Application granted granted Critical
Publication of JP2812613B2 publication Critical patent/JP2812613B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、記憶装置から命令をフ
ェッチして実行する命令実行処理装置に関し、特に、分
岐命令の高速処理を実現する命令実行処理装置に関す
る。
【0002】パイプライン処理方式を採用した情報処理
装置においては、1つの命令の実行の終了を待たずに、
次々と後続の命令列をパイプラインに投入してその実行
を開始している。このことにより、性能の向上を図って
きた。しかしながら、先行する命令の実行結果が後続の
命令の実行に影響を与える場合には、先行する命令の実
行の終了を待たなければ後続の命令の実行を開始するこ
とができない。このことによりパイプラインの乱れが生
じて、性能低下を引き起こす原因となる。この代表的な
例として分岐命令がある。
【0003】このようなことを背景にして、近年、分岐
命令の高速処理を可能にするブランチ・ヒストリーとい
う構成が採用されつつある。これから、このブランチ・
ヒストリーの有効利用を図って、分岐命令が更に高速に
実行できるようにしていく必要がある。
【0004】
【従来の技術】ブランチ・ヒストリーは、過去に同一の
分岐命令を実行したときに、それが成功したか否かとい
うことと、その分岐命令自身のアドレスと、分岐先命令
のアドレスとを対として記憶する構成を採る。そして、
命令フェッチパイプラインは、フェッチする命令のアド
レスでこのブランチ・ヒストリーを索引してみて、索引
が成立するときには、登録されている分岐先命令のアド
レスからフェッチを進めていって、フェッチ命令を次々
と命令実行パイプラインに投入していくことで、分岐命
令の高速実行を実現するのである。
【0005】図8に示すように、命令フェッチパイプラ
インが、Iステージ(命令フェッチアドレスの計算ステ
ージ)、ITステージ(アドレス変換のステージ)、I
Bステージ(バッファの読み出しのステージ)、IRス
テージ(フェッチ命令の命令実行パイプラインへの投入
ステージ)という「I−IT−IB−IR」という4ス
テージ構成を採り、一方、命令実行パイプラインが、D
ステージ(命令の解読のステージ)、Aステージ(主記
憶オペランドのアドレス計算のステージ)、Tステージ
(アドレス変換のステージ)、Bステージ(オペランド
の読み出しのステージ)、Eステージ(演算実行のステ
ージ)、Wステージ(演算結果格納のステージ)という
「D−A−T−B−E−W」という6ステージ構成を採
るものとする。
【0006】このとき、図9に示すような分岐命令6a
(分岐先は命令3a )を含む命令列を実行していくこと
を考える。ブランチ・ヒストリーを使用しない場合に
は、図10に示すように、分岐命令6a がフェッチされ
て命令実行パイプラインに投入されると、このAステー
ジで、オペランドアドレス生成回路により、この分岐命
令6a の分岐先命令である命令3a のアドレスが判明す
るので、命令フェッチパイプラインは、このオペランド
アドレス生成回路の生成したアドレスを使って分岐先命
令3a のフェッチに入って、「I−IT−IB−IR」
の4τ後に分岐先命令3a を命令実行パイプラインに投
入していくことになる。
【0007】すなわち、ブランチ・ヒストリーを使用し
ない場合には、実行すべき命令列に分岐命令が含まれる
と、3τの損失が生ずることになる。これに対して、ブ
ランチ・ヒストリーを使用する場合には、分岐命令6a
をフェッチしてくる段階で、ブランチ・ヒストリーによ
り分岐先命令3a のアドレスが判明するので、図11に
示すように、全く損失のない命令実行を実現できるよう
になるのである。
【0008】このようにして、従来技術では、ブランチ
・ヒストリーを用いて、実行すべき命令列に分岐命令が
含まれているときにあっても、損失のない命令実行を実
現する構成を採っていた。
【0009】
【発明が解決しようとする課題】しかしながら、従来技
術では、分岐命令の分岐先命令がまた分岐命令となると
きに、命令実行に損失が生ずるという問題点があった。
【0010】すなわち、図12に示すような分岐命令で
ある命令3b の分岐先である命令2c がまた分岐命令と
なって、その分岐先が命令1d であるという命令列を実
行していくことを考える。
【0011】命令フェッチパイプラインは、分岐命令で
ある命令3b をフェッチしてくる段階で、ブランチ・ヒ
ストリーに従って、その命令が分岐命令であって、かつ
分岐先となる命令2c のアドレスが判明するので、直ち
に分岐先となる命令2c のフェッチが実行でき、命令実
行パイプラインは、損失を伴うことなく、直ちにこの分
岐先となる命令2c の実行に入ることはできる。
【0012】しかしながら、命令2c がまた分岐命令で
あるということと、その分岐先となる命令1d のアドレ
スとは、命令実行パイプラインにおける命令2c のAス
テージで判明することになるので、命令フェッチパイプ
ラインは、図13に示すように、命令実行パイプライン
における命令2c のAステージで命令1d のフェッチに
入って、「I−IT−IB−IR」の4τ後に命令1d
を命令実行パイプラインに投入していくことになる。
【0013】すなわち、ブランチ・ヒストリーを使用し
ていても、分岐命令の分岐先命令がまた分岐命令となる
ときには、3τの損失が生ずることになる。このよう
に、従来技術では、分岐命令の分岐先命令がまた分岐命
令となるときには、パイプライン処理に損失が生ずると
いう問題点があった。
【0014】本発明はかかる事情に鑑みてなされたもの
であって、記憶装置から命令をフェッチして実行する命
令実行処理装置にあって、命令列の中に、分岐命令の分
岐先命令がまた分岐命令となるものが含まれているよう
な場合にあっても、高速に命令処理を実行できるように
する新たな命令実行処理装置の提供を目的とする。
【0015】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。1は主記憶データの写しを管理するキャッ
シュ、2はキャッシュ1をアクセスして命令列をフェッ
チする命令フェッチパイプライン、3は命令フェッチパ
イプライン2によりフェッチされる命令を実行する命令
実行パイプラインである。
【0016】4は命令フェッチパイプライン2の備える
ブランチ・ヒストリーであって、分岐命令の命令アドレ
スと、分岐先命令の命令アドレスとの対応関係を管理す
る。5は命令実行パイプライン3の備えるオペランドア
ドレス生成回路であって、主記憶オペランドのアドレス
計算ステージにおいてオペランドアドレスを生成するも
のである。
【0017】本発明では、オペランドアドレス生成回路
5の生成するオペランドアドレスをブランチ・ヒストリ
ー4の索引アドレスとして用いる構成を採る。
【0018】
【作用】従来技術ではパイプライン処理に損失の生じた
図12に示す命令列を考える。すなわち、分岐命令であ
る命令3b の分岐先である命令2c がまた分岐命令とな
って、その分岐先が命令1d であるという命令列を実行
していくことを考える。
【0019】この命令列を実行する場合、命令3b のA
ステージで、分岐先となる命令2cの命令アドレスがオ
ペランドアドレス生成回路5により得られることになる
が、このとき、本発明では、オペランドアドレス生成回
路5の生成するオペランドアドレスをブランチ・ヒスト
リー4の索引アドレスとして用いる構成を採ることに対
応して、命令3bのAステージで、ブランチ・ヒストリ
ー5から命令2c の分岐先となる命令1d の命令アドレ
スが得られることになる。
【0020】これから、従来技術では、図13に示すよ
うに、命令3b の実行に続けて、損失なしで命令2c が
実行され、その後、3τの損失を伴って命令1d が実行
されていたのに対して、本発明では、図2に示すよう
に、命令2c の実行に続けて、損失なしで命令1d が実
行されることになるのである。
【0021】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図3に、ブランチ・ヒストリー4の周辺回路を図示
する。ここで、この図3に示す回路構成は従来技術であ
る。
【0022】図中、6は命令アドレスレジスタ、7は命
令アドレス生成回路、8は選択回路、9はアドレスレジ
スタ、10は比較回路、11は比較回路である。ブラン
チ・ヒストリー4は、この図に示すように、分岐命令自
身の命令アドレス(WIAR)の下位ビットを索引アド
レスとして、その分岐命令の命令アドレスの上位ビット
と、分岐先命令の命令アドレス(WOAR)と、分岐の
成立の可否(バリッド)とを管理する。なお、図中で
は、ブランチ・ヒストリー4に登録されるWIARの上
位ビットをIAR、ブランチ・ヒストリー4に登録され
るWOARをTIARで表してある。また、このブラン
チ・ヒストリー4への登録は、命令実行パイプライン3
のWステージで実行されることになる。
【0023】命令アドレス生成回路7は、フェッチの命
令長が8バイトであるとするならば、命令アドレスレジ
スタ6に格納される命令アドレスと8バイトとを加算し
て新たな命令アドレスを生成し、選択回路8は、この生
成された命令アドレスをキャッシュ1に送出していくこ
とで命令フェッチを実行するとともに、次の命令アドレ
スの生成のために命令アドレス生成回路7にセットして
いく。
【0024】そして、選択回路8は、この生成された命
令アドレスをブランチ・ヒストリー4の索引アドレスと
してアドレスレジスタ9にセットし、このセットを受け
て、ブランチ・ヒストリー4は、対応のIARと、対応
のTIARと、対応のバリッドビットとを出力する。比
較回路10は、この出力されるIARと、アドレスレジ
スタ9にセットされている命令アドレスとを比較し、比
較回路11は、この比較結果が一致を表示するととも
に、ブランチ・ヒストリー4の出力するバリッドビット
が分岐成立を表示しているときにブランチ・ヒストリー
4のヒットを出力する。そして、このヒットが出力され
ると、選択回路8は、ブランチ・ヒストリー4の出力す
る分岐先命令の命令アドレス(TIAR/WOAR)を
選択して、新たな命令アドレスからの命令フェッチを実
行していく。
【0025】図4に、本発明の一実施例を図示する。図
中、1aは命令フェッチパイプライン2で索引されるキ
ャッシュ、1bは命令実行パイプライン3で索引される
キャッシュ、12は命令アドレスレジスタ6の前段に設
けられる選択回路を表しており、オペランドアドレス生
成回路5は、図1で説明したように、命令実行パイプラ
イン3に展開されて主記憶オペランドのアドレス計算を
行う。
【0026】本発明では、オペランドアドレス生成回路
5の出力データで、ブランチ・ヒストリー4を索引する
構成を採る。すなわち、新たに、図中のの信号ライン
を設ける構成を特徴としている。なお、図中のの信号
ラインと、の信号ラインとは、従来から設けられてい
る信号ラインである。
【0027】このように、の信号ラインを新たに設け
ると、〔作用〕の欄でも詳述したように、分岐先の命令
がまた分岐命令である場合に生じていたパイプライン処
理の遅れを解決することができる。
【0028】すなわち、図12の命令列を実行する場
合、命令3b のAステージで、分岐先となる命令2c の
命令アドレスがオペランドアドレス生成回路5により得
られることになるが、このとき、本発明では、オペラン
ドアドレス生成回路5の生成するオペランドアドレスを
ブランチ・ヒストリー4の索引アドレスとして用いる構
成を採ることに対応して、命令3bのAステージで、ブ
ランチ・ヒストリー5から命令2c の分岐先となる命令
1d の命令アドレスが得られることになる。
【0029】これから、従来技術では、図13に示すよ
うに、命令3b の実行に続けて、損失なしで命令2c が
実行され、その後、3τの損失を伴って命令1d が実行
されていたのに対して、本発明では、図2に示すよう
に、命令2c の実行に続けて、損失なしで命令1d が実
行されることになるのである。
【0030】更に、本発明のように、オペランドアドレ
ス生成回路5の生成するオペランドアドレスをブランチ
・ヒストリー4の索引アドレスとして用いる構成を採る
と、分岐命令と分岐先命令とがシーケンシャルとなる場
合にあっても、従来技術であれば生じていたパイプライ
ン処理の遅れを解決することができるようになる。次
に、この点について説明する。
【0031】図5に示す命令列の実行を考える。ここ
で、「命令3e+命令4e+命令5e=8バイト」を想
定し、命令3e,命令4e,命令5eは順次実行され、
かつ、分岐命令5eと分岐先命令3eとが含まれている
とする。
【0032】図6に、オペランドアドレス生成回路5の
生成するオペランドアドレスをブランチ・ヒストリー4
の索引アドレスとして用いる構成を採る場合の命令実行
処理を示す。ここで、図中では、オペランドアドレス生
成回路5を「OP EAG」として示してある。
【0033】は、初めて命令5eを命令実行パイプラ
イン3に投入した場合である。この場合には、上述した
ように、Aステージでオペランドアドレス生成回路5に
より分岐先の命令アドレスが計算され、この命令アドレ
スを命令フェッチパイプライン2に投入することで分岐
先命令3eのフェッチを実行して、命令実行パイプライ
ン3に投入する。これから、命令3eが命令実行パイプ
ライン3に投入されるまでに3τの損失がある。
【0034】は、2度目に命令5eを命令実行パイプ
ライン3に投入した場合である。この場合にも、命令3
eが命令実行パイプライン3に投入されるまでに3τの
損失がある。これは、ブランチ・ヒストリー4に情報が
登録されるのは図中のWステージであり、2度目の命令
5eのフェッチ時点では、未だ間に合わないからであ
る。すなわち、2度目に命令5eを命令実行パイプライ
ン3に投入した場合にも、Aステージでオペランドアド
レス生成回路5により分岐先の命令アドレスが計算さ
れ、この命令アドレスを命令フェッチパイプライン2に
投入することで分岐先命令3eのフェッチを実行して、
命令実行パイプライン3に投入することになるので3τ
の損失が生ずるのである。
【0035】しかし、ここで生成されたオペランドアド
レス生成回路5のオペランドアドレスでブランチ・ヒス
トリー4を索引すると、ブランチ・ヒストリー4にヒッ
トしたという情報がIRステージで命令3e,命令4
e,命令5eに流すことができる。これは、IRステー
ジで命令を命令実行パイプライン3に投入するのは、8
バイト同時となるからである。すなわち、命令5eでブ
ランチ・ヒストリー4にヒットした情報は伝わっている
ので、損失を伴うことなく、命令実行パイプライン3で
命令3e,命令4eを実行することが可能になる。
【0036】これに対して、図7に、従来技術通りに命
令アドレス生成回路7でブランチ・ヒストリー4を索引
する場合の命令実行処理を示す。ここで、命令アドレス
生成回路7を「IF EAG」として示してある。
【0037】の初めて命令5eを命令実行パイプライ
ン3に投入した場合、の2度目に命令5eを命令実行
パイプライン3に投入した場合までは、図6の命令実行
処理と同一である。
【0038】従来技術に従うと、オペランドアドレス生
成回路5で生成されたオペランドアドレスは、図4の信
号ラインを介して命令アドレスレジスタ6に回して、
その後の命令アドレス生成回路7からのシーケンシャル
フェッチに備えることになる。そのため、図7に示すよ
うに、1τ後に、命令アドレス生成回路7からのフェッ
チが始まる。ここで、命令アドレス生成回路7の出力す
る命令アドレスでブランチ・ヒストリー4を索引するこ
とになる。しかるに、図7からも明らかなように、で
命令5eは既に命令実行パイプライン3に投入されてし
まっている。これから、でブランチ・ヒストリー4に
ヒットしたという情報は、命令5eには伝わらない。従
って、ブランチ・ヒストリー4を用いなかったときと同
様に、3τ遅れてしまうことになる。
【0039】このようにして、分岐命令と分岐先命令と
がフェッチ命令長である同じ8バイトの中に入っている
場合には、オペランドアドレス生成回路5でブランチ・
ヒストリー4を索引することで、損失を伴うことなく命
令を実行できるようになるのである。
【0040】
【発明の効果】以上説明したように、本発明によれば、
ブランチ・ヒストリーを用いて命令を高速に実行してい
く命令実行処理装置にあって、分岐命令の分岐先がまた
分岐命令となっているときにあっても、パイプライン処
理の損失を伴うことなくその命令列を実行できるように
なる。しかも、分岐命令と分岐先命令とがシーケンシャ
ルに続くような場合にも、パイプライン処理の損失を伴
うことなくその命令列を実行できるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の命令実行処理の説明図である。
【図3】ブランチ・ヒストリーの周辺回路図である。
【図4】本発明の一実施例である。
【図5】命令列の説明図である。
【図6】本発明の命令実行処理の説明図である。
【図7】本発明の命令実行処理の説明図である。
【図8】パイプライン・ステージの説明図である。
【図9】命令列の説明図である。
【図10】命令実行処理の説明図である。
【図11】命令実行処理の説明図である。
【図12】命令列の説明図である。
【図13】命令実行処理の説明図である。
【符号の説明】 1 キャッシュ 2 命令フェッチパイプライン 3 命令実行パイプライン 4 ブランチ・ヒストリー 5 オペランドアドレス生成回路

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 分岐命令の命令アドレスと、分岐先命令
    の命令アドレスとの対応関係をブランチ・ヒストリー
    (4) に登録する構成を採って、該ブランチ・ヒストリー
    (4) を索引しつつ命令をフェッチして、該フェッチ命令
    を命令実行パイプラインに投入することで命令処理を実
    行する構成を採る命令実行処理装置において、 命令実行パイプラインの生成するオペランドアドレスを
    索引アドレスとして用いてブランチ・ヒストリー(4) を
    索引する構成を採って、この索引により分岐先命令の命
    令アドレスが得られるときには、該命令アドレスの指す
    命令からフェッチを行って命令実行パイプラインに投入
    していくよう処理することを、 特徴とする命令実行処理装置。
JP18910792A 1992-07-16 1992-07-16 命令実行処理装置 Expired - Fee Related JP2812613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18910792A JP2812613B2 (ja) 1992-07-16 1992-07-16 命令実行処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18910792A JP2812613B2 (ja) 1992-07-16 1992-07-16 命令実行処理装置

Publications (2)

Publication Number Publication Date
JPH0635700A JPH0635700A (ja) 1994-02-10
JP2812613B2 true JP2812613B2 (ja) 1998-10-22

Family

ID=16235489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18910792A Expired - Fee Related JP2812613B2 (ja) 1992-07-16 1992-07-16 命令実行処理装置

Country Status (1)

Country Link
JP (1) JP2812613B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3683968B2 (ja) * 1996-02-09 2005-08-17 富士通株式会社 情報処理装置
JP3845043B2 (ja) 2002-06-28 2006-11-15 富士通株式会社 命令フェッチ制御装置

Also Published As

Publication number Publication date
JPH0635700A (ja) 1994-02-10

Similar Documents

Publication Publication Date Title
JPH06236268A (ja) 命令の長さを判定する装置と方法
JPH0527143B2 (ja)
JP2801135B2 (ja) パイプラインプロセッサの命令読み出し方法及び命令読み出し装置
US4954947A (en) Instruction processor for processing branch instruction at high speed
JP2812613B2 (ja) 命令実行処理装置
JPH0650465B2 (ja) 分岐制御回路
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
JPH09218786A (ja) 情報処理装置
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
JPH0439733A (ja) 先行制御方式
US7594103B1 (en) Microprocessor and method of processing instructions for responding to interrupt condition
JP3483995B2 (ja) 命令実行順序制御方法
JP3739556B2 (ja) 情報処理装置
JPH0721018A (ja) マイクロプログラム制御方式の中央処理装置
JPS6020245A (ja) デ−タ処理装置の命令制御回路
JPS60105050A (ja) パイプライン制御方式
CN118200258A (zh) 基于高位宽流水结构的协议无关百吉交换包头识别装置
JPH04213727A (ja) 情報処理装置
JP2764844B2 (ja) パイプライン処理装置
JPH0235525A (ja) 命令フェッチ制御方法
JPH05250160A (ja) バッファ制御回路
HK40092280A (zh) 分支预测方法、装置、处理器、介质及设备
JPH04195630A (ja) データ処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980721

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

Free format text: PAYMENT UNTIL: 20080807

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090807

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees