JP2550408B2 - 条件分岐命令の制御方式 - Google Patents

条件分岐命令の制御方式

Info

Publication number
JP2550408B2
JP2550408B2 JP1077150A JP7715089A JP2550408B2 JP 2550408 B2 JP2550408 B2 JP 2550408B2 JP 1077150 A JP1077150 A JP 1077150A JP 7715089 A JP7715089 A JP 7715089A JP 2550408 B2 JP2550408 B2 JP 2550408B2
Authority
JP
Japan
Prior art keywords
instruction
address
branch
register
operand
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
JP1077150A
Other languages
English (en)
Other versions
JPH02254541A (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 JP1077150A priority Critical patent/JP2550408B2/ja
Publication of JPH02254541A publication Critical patent/JPH02254541A/ja
Application granted granted Critical
Publication of JP2550408B2 publication Critical patent/JP2550408B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 [概要] アドレス計算機構を備えた計算機の条件分岐命令の制
御方式に関し、 条件分岐成立時の実行サイクル数を最小限に抑えて高
速化することを目的とし、 条件分岐命令の解読時に計算された分岐先アドレス
を、条件判定に必要なオペランドアドレスを格納する他
のレジスタ群の中の1つを使用することで共用し、分岐
条件の判定と分岐条件成立時の分岐先アドレスの命令ア
ドレスへのコピーを同一サイクルで行なうように構成す
る。
[産業上の利用分野] 本発明は、アドレス計算機構を備えた計算機における
条件分岐命令の制御方式に関する。
近年、コンピュータシステムの高速化の要求に伴い、
命令の解釈・実行の方法としてパイプライン制御が一般
的になっているが、パイプの流れを乱す条件分岐命令が
高速化のネックとなっており、実行サイクル数を可能な
限り低減することが望まれる。
[従来の技術] 近年、コンピュータシステムの高速化の要求に対応し
て行なわれているパイプライン制御とは、命令の解釈・
実行をいくつかのステージに分け、各ステージ機構は、
ある命令の実行後、この命令の全ステージでの実行終了
を待たずに、次の命令を当該ステージで実行する方式で
あるが、条件分岐命令、即ち、命令の実行結果によって
分岐先が変わる命令、例えば命令中で示されるアドレス
のメモリ内容によって分岐・非分岐が確定する分岐命令
については、条件分岐命令が終了しなければ次に解釈・
実行すべき命令が確定しないため、その間、パイプライ
ン制御が止ってしまい、高速化のネックとなっている。
第5図に従来方式の構成図を示す。
第5図において、1はメモリ6からフェッチした命令
をバッファリングする命令バッファ、2はフェッチされ
た命令を解釈する命令デコーダ、3は汎用レジスタや実
行中の命令アドレスからオペランドや分岐先アドレスを
計算するアドレス計算部である。アドレスレジスタは4
個あり、命令用アドレスレジスタ4−1、第1オペラン
ド用アドレスレジスタ4−2、第2オペランド用アドレ
スレジスタ4−3、及び命令分岐用アドレスレジスタ4
−4の4種を備える。
また、5は命令実行部であり、命令デコーダ2のデコ
ード結果に従ってオペランドリードやライト、各種演算
を行なう。更に6は主記憶としてのメモリである。
次に第6図のタイミング説明図を参照して動作を説明
する。
命令バッファ1はメモリ6から命令アドレスレジスタ
4−1によってアドレスされる命令をフェッチしバッフ
ァリングしている。命令デコーダ2はデコード結果が条
件分岐命令であった場合、アドレス計算部3に条件判定
に必要なオペランドのアドレス計算を指示する。アドレ
ス計算部3で計算されたオペランドアドレスは第1、第
2オペランドアドレスレジスタ4−2,4−3のいずれか
に一方にセットされる。
次に命令デコーダ2は分岐条件が成立した場合にフェ
ッチすべき命令のアドレス、即ち、分岐先アドレスの計
算をアドレス計算部3に指示し、計算結果は専用の命令
分岐先アドレスレジスタ4−4にセットされる。
以上のアドレス計算が終了すると、分岐命令が成立し
ないことを仮定して命令アドレスレジスタ4−1をカウ
ントアップし、命令バッファ1に対しカウントアップさ
れた命令アドレスで指定される次の命令をフェッチす
る。
一方、命令実行部5は分岐条件の判定に必要なオペラ
ンドアドレスが確定した時点でメモリ6上のオペランド
をリードし、次に分岐上けの成立の有無を判定する。
分岐条件が成立していなかった場合、そのとき命令バ
ッファ1にバッファリングされている次の命令のデコー
ド以降の動作が実行される。
逆に分岐条件が成立していた場合には、命令分岐先ア
ドレスレジスタ4−4の値を命令アドレスレジスタ4−
1に格納し、分岐先命令のフェッチから再実行する。
[課題を解決するための手段] しかしながら、このような従来の条件分岐命令の制御
方式にあっては、分岐先のアドレス計算結果を格納する
専用レジスタ4−4を必要とし、また分岐条件の成立を
判定した場合に、命令分岐先アドレスを格納した専用レ
ジスタの値を命令アドレスレジスタに格納した後に、命
令フェッチから再実行するために実行サイクル数が多く
なる問題があった。
本発明は、このような従来の問題点に鑑みてなされた
もので、条件分岐命令成立時の実行サイクル数を最小限
に抑えて高速化する条件分岐命令の制御方式を提供する
ことを目的とする。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
まず本発明は、条件分岐命令を解読した場合に、分岐
条件の判定に必要なオペランドアドレスAを計算してレ
ジスタにセットし、次に分岐条件成立時にフェッチすべ
き命令の分岐先アドレスBを計算してレジスタにセット
し、一方、分岐条件の判定に必要なオペランドアドレス
Aが確定した時点でメモリ上のオペランドをリードして
分岐条件成立の有無を判定し、分岐条件不成立時にはカ
ウントアップされた命令アドレスCにより次の命令をフ
ェッチし、逆に、分岐条件成立時には分岐先アドレスB
を命令アドレスとして命令をフェッチする条件分岐命令
の制御方式を対象とする。
このような条件分岐命令の制御方式について本発明に
あっては、分岐先アドレスBを格納するレジスタを前記
オペランドアドレスAを格納する少なくとも2つのレジ
スタ4−2,4−3のいずれかと共用すると共に、分岐条
件の判定と分岐条件成立時の分岐先アドレスBの命令ア
ドレスCへのコピーを同一サイクルで行なうようにした
ものである。
[作用] このような構成を備えた本発明による条件分岐命令の
制御方式にあっては、命令の分岐先アドレスを専用のレ
ジスタに格納せずに空き状態にある少なくとも2つのオ
ペランドレジスタのいずれかに格納して共用し、かつ、
分岐条件の判定と分岐条件成立時のオペランドレジスタ
から命令レジスタへの分岐先アドレスのコピーを同一サ
イクルで行なうようにしたため、ハード量の削減が可能
であり、また専用レジスタを設けていたことによる従来
の専用レジスタから命令レジスタへの分岐先アドレスの
セットサイクルが不要となり、条件成立時の実行サイク
ル数を最小限に抑えて高速化を図ることができる。
[実施例] 第2図は本発明の一実施例を示した実施例構成図であ
る。
第2図において、1はメモリ6からフェッチした命令
をバッファリングする命令バッファ、2は命令バッファ
1にフェッチされた命令を解読する命令デコード部、3
は汎用レジスタや実行中の命令アドレスからオペランド
や分岐先アドレスを計算するアドレス計算部、4−1〜
4−3はアドレスレジスタであり、本発明にあっては命
令用アドレスレジスタ4−1、第1オペランド用アドレ
スレジスタ4−2及び第2オペランド用アドレスレジス
タ4−3の3種を備え、従来のように分岐用アドレスレ
ジスタは設けていない。5は命令実行部であり、命令デ
コード部2による命令のデコード結果に従ってオペラン
ドリードやライト、各種の演算を行なう。更に、6は主
記憶としてのメモリである。
このような第2図に示した本発明の実施例にあって
は、条件分岐命令に対し第3図の分岐命令動作タイミン
グ説明図に示す制御を行なう。
まず、命令バッファ1はメモリ6から命令アドレスレ
ジスタ4−1によってアドレスされる命令をフェッチし
てバッファリングしている。命令デコード部2はデコー
ド結果が条件分岐命令であった場合、アドレス計算部3
に対し条件判定に必要なメモリ6のオペランドのアドレ
ス計算を指示する。このアドレス計算部3によるオペラ
ンドのアドレス計算結果は、第1及び第2オペランドア
ドレスレジスタ4−2または4−3のいずれか一方にセ
ットされる。
続いて、命令デコード部2はアドレス計算部3に対し
分岐条件が成立した場合にフェッチすべき命令のアドレ
スの計算を指示する。このアドレス計算に得られた分岐
先アドレスは、第1及び第2のオペランドアドレスレジ
スタ4−2または4−3のうち、この命令実行時におい
てオペランドアドレスとして使用されていない側のレジ
スタにセットされる。
以上のアドレス計算を終了すると、分岐条件が成立し
ないことを仮定して命令アドレスレジスタ4−1はカウ
ントアップし、命令バッファ1はカウントアップされた
命令アドレスによる次の命令をフェッチする。
一方、命令実行部5はオペランドアドレスが確定した
時点でメモリ6上のオペランドをリードし、次に分岐条
件を判定する。分岐条件が成立していなかった場合、そ
のとき命令バッファ1にバッファリングされている命令
のデコード以降の動作が実行される。逆に分岐条件が成
立していた場合、この分岐条件の判定と同一サイクル中
にオペランドアドレスレジスタ4−2または4−3のい
ずれか一方に格納されていた命令分岐先アドレスの値を
命令アドレスレジスタ4−1にコピーし、次に命令フェ
ッチから再実行するようになる。
ここで、第3図に示す本発明による分岐命令の動作タ
イミングと第6図に示した従来の動作タイミングを対比
してみると、(b)に示す分岐条件が成立しなかった場
合については実行サイクル数は同じであるが、(a)の
分岐条件が成立した場合については、第6図の従来例に
あってはオペランドフェッチ、分岐条件判定及び命令ア
ドレスセットの3サイクルを必要としたものが、第3図
の本発明にあってはオペランドフェッチ条件判定及び命
令アドレスセットの2サイクルで済ますことができる。
次に、第2図の実施例について条件分岐命令の1つで
あるTH命令(Test Half Word)を例にとって具体的に説
明する。
TH命令のフォーマット構成は第4図に示すように、OP
コードが96となる4バイト長の命令である。このTH命令
において、2バイト目のベース部B(2ビット)によっ
て指示されるレジスタ値及びインデックス部X(2ビッ
ト)によって指示されるレジスタ値及び2〜3バイト目
となる命令中で直接、指示されるディスプレイスメント
(12ビット)を加算して得られるアドレスのメモリ上の
ハーフワード(16ビット)を参照する。このメモリ上の
ハーフワードの値が分岐条件となっており、分岐条件を
示す値が0ならば、この命令が格納されているアドレス
に命令中で直接指示されるアドレスAdr(8ビット)を
加算したアドレスに分岐する。
逆に分岐条件の値が0以外であったならば、この命令
が格納されているアドレスに命令長4を加算したアドレ
スに加算されている値が次の命令となる。
このようなTH命令について、第2図による制御を具体
的に説明すると、次のようになる。なお、第2図におけ
る数値は16進表現としている。
今、メモリ6上のアドレスaに第4図に示したTH命令
が入っており、命令アドレスレジスタ4−1はアドレス
aの値を保持しているものとする。
まず、このとき命令用アドレスレジスタ4−1にセッ
トされているアドレスaから始まるメモリ6上の4バイ
トデータが命令バッファ1にフェッチされる。命令デコ
ード部2は先頭1バイトの値96からこの命令がTH命令で
あることをデコードし、アドレス計算部3に対し第1オ
ペランドアドレスCの計算を指示する。
アドレス計算部3はOPコードに続く2バイトの値6200
から第1レジスタの値及び第2のレジスタの値、更に命
令中で直接指示されるディプレイスメントの値200を加
算して第1オペランドアドレスの値Cを求め、この計算
されたオペランドアドレスCの値を第1オペランド用レ
ジスタ4−2に格納する。
次に、残り1バイトのAdr値31と、そのときの命令ア
ドレス用レジスタ4−1の値aとを加算して(a+31)
を求め、この(a+31)を分岐条件が成立した場合にフ
ェッチすべき命令アドレスとして第2オペランド用アド
レスレジスタ4−3に格納する。
以上のアドレス計算及びレジスタセットを終了する
と、命令アドレス用レジスタ4−1は命令長4だけカウ
ントアップして(a+4)となり、命令バッファ1はア
ドレス(a+4)の命令XXをフェッチする。
一方、命令実行部5は第1オペランド用アドレスレジ
スタ4−2に格納された値Cによってアドレスされるメ
モリ6上のオペランドYYYYをリードし、次に分岐条件を
判定する。
ここで、オペランドYYYYの値が0以外ならば分岐条件
不成立であることから、そのとき命令バッファ1にフェ
ッチされている命令XXのデコード以降の動作が実行され
る。
逆にオペランドYYYYの値が0ならば分岐条件成立と判
定し、同一サイクル中に第2オペランド用アドレスレジ
スタ4−3に格納されている命令分岐先アドレスの値
(a+31)を命令用アドレスレジスタ4−1にコピー
し、アドレス(a+31)に存在するデータZZを次の命令
としてフェッチして再実行する。
尚、蒸気の実施例はTH命令の具体例を例にとるもので
あったが、本発明はこれに限定されず、適宜の条件分岐
命令につきそのまま適用できる。
[発明の効果] 以上説明してきたように本発明によれば、分岐先のア
ドレス計算結果を格納する専用レジスタを必要としない
ため、ハード量の削減が可能である。また、分岐条件の
判定と分岐条件成立の分岐先アドレスの命令アドレスへ
のコピーを同一サイクルで行なうことができ、条件分岐
命令の実行サイクル数を最少限に抑え、パイプライン制
御のネックとなっている条件分岐命令による負担を軽減
して、より高速化を図ることができる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明の分岐動作タイミング説明図; 第4図は本発明の対象となるTH命令フォーマット説明
図; 第5図は従来方式の構成図; 第6図は従来方式の動作タイミング説明図である。 図中、 1:命令バッファ 2:命令デコード部 3:アドレス計算部 4:アドレスレジスタ 4−1:命令用アドレスレジスタ(FA) 4−2:第1オペランド用アドレスレジスタ(DA) 4−3:第2オペランド用アドレスレジスタ(SA) 5:命令実行部 6:メモリ
フロントページの続き (72)発明者 野々村 一泰 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹野 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】条件分岐命令を解読した場合に、分岐条件
    の判定に必要なオペランドアドレス(A)を計算してレ
    ジスタにセットし、次に分岐条件成立時にフェッチすべ
    き命令の分岐先アドレス(B)を計算してレジスタにセ
    ットし、 一方、分岐条件の判定に必要な前記オペランドアドレス
    (A)が確定した時点でメモリ上のオペランドをリード
    して分岐条件成立の有無を判定し、分岐条件不成立時に
    はカウントアップされた命令アドレス(C)により次の
    命令をフェッチし、分岐条件成立時には前記分岐先アド
    レス(B)を命令アドレス(C)として命令をフェッチ
    する条件分岐命令の制御方式において、 前記分岐先アドレス(B)を格納するレジスタを前記オ
    ペランドアドレス(A)を格納する少なくとも2つのレ
    ジスタ(4−2,4−3)のいずれかと共用すると共に、
    前記分岐条件の判定と分岐成立時の分岐先アドレス
    (B)の命令アドレス(C)へのコピーを同一サイクル
    で行うことを特徴とする条件分岐命令の制御方式。
JP1077150A 1989-03-29 1989-03-29 条件分岐命令の制御方式 Expired - Lifetime JP2550408B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1077150A JP2550408B2 (ja) 1989-03-29 1989-03-29 条件分岐命令の制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1077150A JP2550408B2 (ja) 1989-03-29 1989-03-29 条件分岐命令の制御方式

Publications (2)

Publication Number Publication Date
JPH02254541A JPH02254541A (ja) 1990-10-15
JP2550408B2 true JP2550408B2 (ja) 1996-11-06

Family

ID=13625764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1077150A Expired - Lifetime JP2550408B2 (ja) 1989-03-29 1989-03-29 条件分岐命令の制御方式

Country Status (1)

Country Link
JP (1) JP2550408B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003127A (en) 1995-10-04 1999-12-14 Nippondenso Co., Ltd. Pipeline processing apparatus for reducing delays in the performance of processing operations

Also Published As

Publication number Publication date
JPH02254541A (ja) 1990-10-15

Similar Documents

Publication Publication Date Title
EP0380859B1 (en) Method of preprocessing multiple instructions
US5371860A (en) Programmable controller
US4398245A (en) Data processing system having an instruction pipeline for processing a transfer instruction
JPH0283735A (ja) 命令先取り装置
US5802359A (en) Mapping processor state into a millicode addressable processor state register array
JP3203401B2 (ja) データ処理装置
JPH0496825A (ja) データ・プロセッサ
JP2620511B2 (ja) データ・プロセッサ
EP0094535B1 (en) Pipe-line data processing system
US20060242394A1 (en) Processor and processor instruction buffer operating method
EP0378415A2 (en) Multiple instruction dispatch mechanism
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JP2682217B2 (ja) マイクロプロセッサ
JP2550408B2 (ja) 条件分岐命令の制御方式
JP3599499B2 (ja) 中央処理装置
US6016544A (en) Apparatus and method for tracking changes in address size and for different size retranslate second instruction with an indicator from address size
EP0177712B1 (en) Masked data fetch and modifying device
JP2503223B2 (ja) 先行制御方式
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
JP2545594B2 (ja) オペランドデータ先取り方式
KR100635111B1 (ko) 지정 가능한 지연 슬롯과 스쿼싱 조건을 가지는 분기 처리프로세서
JPH0419575B2 (ja)
JPH0752402B2 (ja) データ処理装置
JPS595354A (ja) デ−タ処理装置
JPH01193943A (ja) マイクロコンピュータ