JPS6394335A - デ−タ処理装置での先行分岐制御方法 - Google Patents

デ−タ処理装置での先行分岐制御方法

Info

Publication number
JPS6394335A
JPS6394335A JP23933486A JP23933486A JPS6394335A JP S6394335 A JPS6394335 A JP S6394335A JP 23933486 A JP23933486 A JP 23933486A JP 23933486 A JP23933486 A JP 23933486A JP S6394335 A JPS6394335 A JP S6394335A
Authority
JP
Japan
Prior art keywords
instruction
address
destination address
branch
branch destination
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
JP23933486A
Other languages
English (en)
Inventor
Soichi Takatani
高谷 壮一
Takayuki Morioka
隆行 森岡
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 JP23933486A priority Critical patent/JPS6394335A/ja
Publication of JPS6394335A publication Critical patent/JPS6394335A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置、特にパイプライン方式によ
る並列処理を行なうデータ処理装置の先行分岐制御方法
に関する。
〔従来の技術〕
従来、データ処理装置ではパイプライン方式による並列
処理によって高速化が計られている。
−例として、命令フェッチユニット(以下。
IFと称す)、命令デコードユニット(以下、Dと称す
)、アドレス計算ユニット(以下、Aと称す)、実行ユ
ニット(以下、Eと称す)より構成されるデータ処理装
置について第2図を利用して説明する。
IFは記憶装置より命令の読出を行ない命令バッファレ
ジスタ(IBRと称す)に取込む、DはIBRの命令を
切出し、命令の種類を識別する。
Aは、演算命令を受付けたときはオペランドの格納され
ているアドレスを、分岐命令のときは分岐先アドレスを
算出する。Eユニットはオペランドの読出、及び、演算
を実行する。また、各々のユニットは第2図(a)のご
とく、連続した4つの命令の該当する処理を同時に実行
するため、ハードウェアは効率良く使用され、処理速度
を向上させている。このように、パイプライン方式によ
る高速化は極めて有効であるが、常に命令が順序良く流
れ、並列処理されるとは限らない、パイプライン処理を
乱す要因の1つに分岐処理がある。第2図(b)は、条
件分岐命令を実行したときの条件が成立したときの命令
の流れを示す0条件判定がEユニットで行なわれるため
、分岐先命令の命令読出は条件分岐命令が終了時点とな
る。従って分岐命令の実行速度は4マシンサイクル必要
となり、パイプラインの効果がなくなってしまう、プロ
グラムには、繰返し処理が非常に多く、条件分岐の中で
はディクリメントムブランチ等のように条件成立の可能
性が高い命令(以下、ループ命令と称す)が有り、この
ようなループ命令では分岐先の命令を先行して読出し、
パイプライン処理を少しでも乱さないようにすることが
可能である。
もちろん、この場合条件が不成立であれば、分岐先命令
を無効化し、ループ命令に続く命令を命令読出しから行
なわなければならない、第2図(c)はループ命令の分
岐先アドレスが算出された時点で先行して分岐先命令の
読出を実行した場合の命令の流れを示したものである。
この場合、Aユニットにて分岐先アドレスが算出された
時点で分岐先命令の読出を行なうため、条件成立を待つ
場合に比べて、ループ命令のEユニット処理のマシンサ
イクルだけ、早く分岐先命令の実行を始めることができ
、実質的にループ命令を3マシンサイクルにて実行する
ことができる。また、特公昭60−58489号で述べ
られているように分岐処理専用のパイプラインを設け、
分岐先アドレスを計算することにより、高速化は可能で
あるが、ハードウェアが増大するという問題点がある。
〔発明が解決しようとする問題点〕
本発明の目的は、前記ループ命令の処理において、さら
にパイプライン処理の乱れを防ぐ方式を大規模なハード
ウェアの追加なく提供することにある。
〔問題点を解決するための手段〕
ループ命令の分岐先命令をさらに早く読み出すためには
、分岐先のアドレスを算出する前に分岐先命令を読出さ
なければならないが、それは不可能である。しかし、ル
ープ命令の分岐先アドレスは、前回実行したループ命令
の分岐先アドレスと同じ可能性が高い、従って、ループ
命令の分岐先アドレスを記憶しておき、Dユニットでル
ープ命令を検出したとき、記憶されている前回のループ
命令の分岐先アドレスにて命令の先行読出しを行なうこ
とにより、前記目的が達成される。もちろん、Aユニッ
トにて算出された分岐先アドレスが、前回のループ命令
の分岐先アドレスと異なる場合は、先行読出し命令は無
効化されなければならなく、さらにEユニットで分岐条
件不成立の場合は、ループ命令の次の命令から命令の読
出しを行なう。
〔作用〕
先行分岐先アドレスにより命令読出しを行い。
その結果で先行読出しの正誤がわかり、処理速度の向上
をはかれる。
〔実施例〕
第1図は本発明の実施例図である。第1図において、命
令フェッチユニット(IFユニット)100はフェッチ
ポインタ101 (FPと称す)のアドレスにて記憶装
置より命令を読出し、命令バッファレジスタ102 (
IBRと称す)に格納すると共にその命令が有効である
ことを示すValid Flagl O3(V Fla
gと称す)をセットする。IBRの命令は、順次、Dユ
ニット112に渡され、命令の種類が識別される。Dユ
ニット112は命令がループ命令であることを検知する
と、前回のループ命令の分岐先アドレスを記憶している
ループポインタ125(LPと称す)の内容をFPIO
Iに書込む、IFユニット100はFPへの賽き込みに
より、IBR102に持つ後続命令を、V Flag 
103をクリアすることにより無効化し、FPlolに
書き込まれた前回のループ命令のアドレスにて命令の読
出しを開始する。ループ命令は、さらに、Aユニット1
15に渡され、分岐先アドレスが算出され、LP125
に記憶される前回の分岐先アドレスと比較器127 (
CMPと称す)で一致判定される。比較結果が不一致の
場合は、現処理ループ命令の分岐先アドレスと前回のル
ープ命令の分岐先アドレスが異なることを示す、Aユニ
ット115は前記判定結果が不一致の場合のみ、算出し
た現ループ命令の分岐先アドレスをFPIOI及びLP
125に書き込む、IFユニット100はFPIOIへ
の書き込みにより、誤まって先行して読出したIBR1
02の命令を、V Flag 103をクリアすること
で無効化し、FPIOIに書き込まれた本当の分岐先ア
ドレスより命令の読出を開始する。
第3図に本発明の一実施例の全体構成を示す。
データ処理装置1は、アドレスバス60.リードデータ
バス61.ライトデータバス62.コントロールバス6
3を介してメモリ制御装置2より命令、及び、オペラン
ドデータを受は取り、命令を実行する。メモリ制御装置
2はデータ処理装置1及びI10制御装置4からのアク
セスに応じてデータバス64.アドレスバス65.コン
トロールバス66を介して記憶装置3の読出し及び書き
込みを制御する。I10制御装置4は、I10装置5と
メモリ制御装置2とのデータ転送を、67〜72のイン
ターフェースバスを介して制御する。
第4図にデータ処理装置1!1の内部構成を示す。
IFユニット100(IF)は、命令の読出しを行なう
、フェッチポインタ101  (FP)は読出アドレス
を保持するレジスタであり、アドレス信号106を出力
する。命令バッファレジスタ102(IBR)は16バ
イトのレジスタであり、複数の命令を保持する。 Va
lidフラグ103(Vと称す)は、IBR102の各
々の2バイトに対応して、有効な命令が保持されている
かどうかを示すフラグであり、これは命令の最小単位が
2バイトのためである。IFコントローラ104 (I
FCONTと称す)はVフラグの出力信号111により
IBR102に1′空″があるかどうかを知り、゛空″
がある場合は、信号線108を介して、命令のリード要
求を行ない。
応答を信号201より受ける。 IFCONT104は
応答を受けると、インクリメンタ105によりFPを更
新すると共に、読出データ107をIBR102に書き
込み、対応するVフラグをセットする。デコードユニッ
ト112(Dと称す)は、信号線11o。
111を介して、命令と■フラグを受は取り、有効な命
令をデコードし、アドレス計算情報113と命令に対応
するマイクロプログラムの先頭アドレス114を生成す
る。信号!129はIFユニット100でIBR102
に保持している命令の無効要求信号であり、IFCON
T104は信号線129がOnすると、信号m300に
よりVフラグ103をクリアし、命令を無効化する。E
ユニットシーケンサ116はマイクロプログラム方式の
制御機楕であり、Eユニット実行部(Eと称す)を信号
線118を介して制御する。アドレス計算ユニット11
5(Aと称す)は、Dユニット112から渡されるアド
レス計算情報113にもとすき、オペランドの実効アド
レス、または、分岐先アドレスを算出し、Eユニット1
19に信号線117を介して渡す、また信号線117は
、FPIOIとループポインタ125 (LPと称す)
に接続されている。
LP125の出力信号126は、FPIOIと比較器1
27(CMPと称す)に入力される。
CMP127ではLP125の出力信号126とAユニ
ットで算出されたアドレス117が比較され一致または
不一致の結果を信号128を介してAユニット115に
報告する。また、Aユニット115は信号線130をo
nすることでAユニット115より上流の命令を無効化
する。Eユニット119は、ESEQ116からの情報
信号118とAユニット115からのオペランド実効ア
ドレス117により、命令のオペランド読出し及び、演
算を実行する。オペランドの読出し、及び書き込みは、
リードデータバス12o、応答信号バス200.要求信
号バス121.アドレスバス122.ライトデータバス
123を介して行なわれる。Eユニット119により分
岐を実行する場合は、ライトデータバス123の信号が
FPIOIに書き込まれ、信号線140によりEユニッ
ト119より上流ユニットの命令を無効化する。メモリ
インターフェースコントローラ124(MINFと称す
)は、IFユニット100からの命令要求とEユニット
からのオペランド要求のアビトレージョンを行ない、メ
モリ制御表W2とのデータ転送をインターフェース信号
60〜63を介して実行する。
このようなハードウェア構成において、IBR102か
らの命令がDユニット112で識別され、ループ命令で
あることが検知されると、Dユニット112は信号線1
29をアクセスして、IFユニット100で保持してい
る命令を無効化すると共に、LP125で保持している
前回のループ命令の分岐先アドレスをFPIOIへ書き
込む、従ってIFユニット100は前回のループ命令の
分岐アドレスより、命令の読出しを開始する。次に現ル
ープ命令は、Aユニット115に渡され、分岐先アドレ
スが算出される。算出された分岐先アドレスは、信号線
117を介してCMP127の一方に入力され、LP1
25の出力である前回のループ命令の分岐先アドレス1
26と比較される。比較結果は、信号線128を介して
、Aユニット115に報告され、一致の場合は、すでに
IFユニット100で実行されている命令読出は、有効
であるが、不一致の場合は誤まっている。Aユニットは
不一致の場合のみ、Aユニットより上流のユニットの命
令を信号線130により無効化し、現算出。
分岐先アドレス117をFPIOI及びLP125に書
き込み、本当の分岐先アドレスより命令の読出しを開始
させる。ループ命令はさらにEユニット119に渡され
、ループ条件の判定が行なわれる。
条件が成立することを前提にIFユニット100は先行
読出しを行なっており、Eユニット119で条件が不成
立のときは、Eユニット119は、信号線140により
Eユニット119より上流の命令を無効化すると共に、
ループ命令の次の命令のアドレスを信号線123を介し
てFPIOIに書き込む。
このように動作させることにより、ループ命令の分岐先
アドレスが前回のループ命令と同じであり、かつ、ルー
プ条件が成立した場合、分岐先の命令を極めて高速に実
行させることができる0本実施例では、ループ命令を実
質上、2サイクルで実行している。
〔発明の効果〕
本発明によれば、第5図に示すように、Dユニットでル
ープ命令を検出した時点で分岐先の命令の読出しが行な
えるため、条件判定が実行されてから、命令の読出しを
開始する場合に比べて、アドレス計算時間、及び、条件
判定時間の分だけ速く分岐先命令が開始され、実質的に
ループ命令が高速化される。
命令の流れを示す図、第3図は本発明の一実施例の全体
構成図、第4図はデータ処理の内部構成図、第5図は1
本発明のパイプラインの命令の流れを示す図である。
100・・・命令フェッチユニット、101・・・命令
フェッチポインタ、103 ”・Valid−Flag
、  112 ・=デコードユニット、115・・・ア
ドレス計算ユニット、125・・・ループポインタ、1
27・・・比較器。

Claims (1)

  1. 【特許請求の範囲】 1、命令の読出しアドレスを指定するフェッチポインタ
    と、該フェッチポインタの指定するアドレスによりメモ
    リから読出された命令を格納する命令バッファレジスタ
    と、該命令バッファレジスタから順次命令を切出して命
    令の解読を行うデコーダと、該デコーダにより特定の条
    件分岐命令解読時デコーダからの情報に従つて分岐先ア
    ドレスを計算する演算器と、この演算器で前回算出した
    分岐先アドレスを格納するループポインタと、より成る
    データ処理装置において、デコーダによる特定の条件分
    岐命令解読時に、上記ループポインタに格納した前回の
    分岐先アドレスを先行分岐先アドレスとして前記フェッ
    チポインタに送出し、該フェッチポインタによる分岐先
    アドレスでメモリをアクセスして命令を読出し、該読出
    した命令を前記命令バッファレジスタに一時格納した後
    デコーダに送り、該デコーダによる解読に基づき前記演
    算器で分岐先アドレスを算出し、該算出した分岐先アド
    レスと前記ループポインタ内に格納した前回の分岐アド
    レスとを比較し、一致であれば先行分岐先アドレスは正
    しいものとし、不一致であれば先分分岐先アドレスは誤
    つているものとし且つ新しく演算器で算出した分岐先ア
    ドレスを前記フェッチポインタに送りメモリアクセスを
    行わせることとするデータ処理装置での先行分岐制御方
    法。 2、上記不一致の時には命令バッファレジスタ内の読出
    し命令は無効にさせるべく無効フラグを立てることとし
    た特許請求の範囲第1項記載の先行分岐制御方法。
JP23933486A 1986-10-09 1986-10-09 デ−タ処理装置での先行分岐制御方法 Pending JPS6394335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23933486A JPS6394335A (ja) 1986-10-09 1986-10-09 デ−タ処理装置での先行分岐制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23933486A JPS6394335A (ja) 1986-10-09 1986-10-09 デ−タ処理装置での先行分岐制御方法

Publications (1)

Publication Number Publication Date
JPS6394335A true JPS6394335A (ja) 1988-04-25

Family

ID=17043184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23933486A Pending JPS6394335A (ja) 1986-10-09 1986-10-09 デ−タ処理装置での先行分岐制御方法

Country Status (1)

Country Link
JP (1) JPS6394335A (ja)

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
US5636353A (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
JPH07129413A (ja) 割込み処理装置
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
JPH0527971A (ja) 情報処理装置
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JPH0743648B2 (ja) 情報処理装置
EP0156307A2 (en) Pipelined processor having dual cache memories
JPS6394335A (ja) デ−タ処理装置での先行分岐制御方法
JPH06168263A (ja) ベクトル処理装置
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JPH04205448A (ja) 情報処理装置
JPH04340145A (ja) キャッシュメモリ装置
JPH0424731B2 (ja)
JPS61118855A (ja) バツフアメモリ制御方式
JP2572821B2 (ja) 命令再実行による演算処理方式
JPH05282146A (ja) 情報処理装置
JPH0248733A (ja) 情報処理装置
JPH0247725A (ja) データ処理装置
JPH02183333A (ja) データ処理装置
JPH02206836A (ja) データ処理装置
JPH031234A (ja) 情報処理装置
JPH03113535A (ja) パイプライン制御機構