JPH0195331A - パイプライン処理システム - Google Patents

パイプライン処理システム

Info

Publication number
JPH0195331A
JPH0195331A JP25238787A JP25238787A JPH0195331A JP H0195331 A JPH0195331 A JP H0195331A JP 25238787 A JP25238787 A JP 25238787A JP 25238787 A JP25238787 A JP 25238787A JP H0195331 A JPH0195331 A JP H0195331A
Authority
JP
Japan
Prior art keywords
instruction
address
branch
storage circuit
circuit
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
JP25238787A
Other languages
English (en)
Inventor
Hidenobu Ota
大田 秀信
Atsushi Sakurai
厚 桜井
Taizo Sato
泰造 佐藤
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 JP25238787A priority Critical patent/JPH0195331A/ja
Publication of JPH0195331A publication Critical patent/JPH0195331A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 (概 要〕 高速分岐機構を有するパイプライン処理システムに関し
、 分岐命令成功による空サイクルを少なくしてパイプライ
ン処理の高速化を図ることを目的とし、分岐命令成功時
にその分岐命令のアドレスを登録し、その分岐命令のア
ドレスと現在実行命令のアドレスとを比較する連想記憶
回路と、分岐命令成功時にその分岐命令の分岐先命令を
登録し、現在実行命令のアドレスが登録された分岐命令
のアドレスにヒツトしたときに分岐命令の分岐先命令を
送出する命令記憶回路と、分岐命令成功時にその分岐命
令の分岐先アドレス+命令記憶回路に登録された分岐先
命令のバイト数のアドレスを登録し、現在実行命令のア
ドレスがその分岐命令のアと、を具備し、現在実行命令
のアドレスが登録された分岐命令のアドレスにヒツトし
たときには命令記憶回路をパイプライン処理用の命令キ
ューステージに、アドレス記憶回路をパイプライン処理
用のブリフェッチカウンタに接続するように構成する。
〔産業上の利用分野〕
本発明は高速分岐機構を有するパイプライン処理システ
ムに関する。
〔従来の技術〕
マイクロプロセッサにおいて高速性を追求していくと、
大型コンピュータで用いられているパイプライン処理が
必要となる。パイプライン処理とは一命令を複数の処理
単位に分け、見かけ上、命令が並列に実行されているよ
うな処理である。第13図に3段のパイプラインの例を
示す。すなわち、第13図においては、−命令を命令フ
ェッチIF、命令デコードID、実行EXの処理単位に
分け、見かけ上、3つの命令が並列に実行されている。
〔発明が解決しようとする問題点〕
しかしながら、上述のパイプライン処理においては、分
岐命令(ループ命令)の実行時に問題が生ずる。プログ
ラムがループを形成している場合、たとえば、 X0RA(Aをゼロにする) LD   B、lO(カウンタの初期設定)LD   
11.1   (ポインタの初期設定)LOOPI  
AOD  A、II   (A←A+H)INCH(A
←H+ 1 ) DJNZ  LOOPI  (B ” 8 1)で示さ
れる場合、DINZ LOOPIが分岐命令、ADD 
A。
Hが分岐先命令である。すなわち、第14A図、第14
B図に示すように、分岐命令の実行サイクル(E X)
時には、既にフェッチされている分岐命令の次のアドレ
スの命令のデコード(ID)に入る。このとき、分岐失
敗時(ループ制御が行われないとき)には、第12A図
に示すように、通常のパイプライン処理が行われるが、
分岐成功時(ループ制御が行われるとき)には、第12
B図に示すように、改めて分岐先命令のフェッチ(IF
)を行うことによりパイプライン処理上空サイクルが発
生する。このように、ループ回数−1の数だけ改めて分
岐先命令の命令のフェッチを行う必要があるため、パイ
プライン処理上の(ループ回数−1)個の空サイクルが
発生して実行時間の遅れが大きくなるという問題点があ
った。
従って、本発明の目的は、分岐命令成功による空サイク
ルを少なくしてパイプライン処理の高速化を図ることに
ある。
〔問題点を解決するための手段〕
上述の問題点を解決するための手段は第1A図に示され
る。すなわち、連想記憶回路1、命令記憶回路2、およ
びアドレス記憶回路3が設けられており、分岐命令成功
時すなわち分岐命令の実行時(WR=“l”)には、分
岐命令のアドレスが連想記憶回路1に、分岐先命令が命
令記憶回路2に、分岐先アドレス+命令記憶回路2に格
納された命令のバイト数のアドレスがアドレス記憶回路
3に登録される。また、連想記憶回路lは登録された分
岐命令のアドレスと現在実行命令のアドレスとを比較し
、この結果、現在実行命令のアドレスが登録された分岐
命令のアドレスにヒツト(−致)したときには、ヒツト
信号が発生される。この結果、命令記憶回路2はその分
岐命令の分岐先命令をパイプライン処理用の命令キュー
ステージ4に送出し、アドレス記憶回路3はその分岐命
令の分岐先アドレス+命令記憶回路2に格納された命令
のバイト数のアドレスをパイプライン処理用のブリフェ
ッチステージ5に送出する。つまり、このブリフェッチ
ステージ5は通常はブリフェッチアドレスに対応する命
令を出力しており、連想記憶回路1がヒツトしたときの
み対応するWAYに格納されているアドレスの命令を出
力する。なお、LRυ(Least Recently
 Used)は最後に使用した時刻で最も新しいものを
取出すように管理するシステムであって、何本かあるー
AYの中で最近使用されなかったもので一番古いものを
示すWAY発生回路である。
第1A図において連想記憶回路2に有効ビットが付加さ
れている場合の第1A図の動作が第1B図に示されてい
る。
〔作 用〕
第2A図、第2B図、第3A図、第3B図を参照して作
用を説明する。
第2A図、第2B図はミスヒツト時の場合、すなわち、
分岐命令が連想記憶回路1に登録されていない場合にあ
って且つ分岐命令がデコードされた場合を示す。この場
合には、分岐命令のデコード(ID)時には、分岐命令
のアドレス+命令記憶回路2に格納された命令のバイト
数の命令のフェッチ(ID)が行われ、分岐命令の実行
(EX)時には分岐命令のアドレス+命令記憶回路2に
格納された命令のバイト数の命令のデコード(ID)が
行われる。このとき、分岐命令の実行(EX)により分
岐命令が成功した場合(ループ制御が行われた場合)に
は、分岐先命令を実行することになるが、この場合、第
2A図に示すように、上記の分岐命令の7ドレス+命令
記憶回路2に格納された命令のバイト数の命令の実行は
中止され、改めて分岐先命令のフェッチ、デコードを行
う必要がある。従って、第2A図に示すごとく空サイク
ルが発生する。本発明においては、このようなミスヒン
ト時且つ分岐命令成功時には、分岐命令のアドレス、分
岐先命令、分岐先アドレス+命令記憶回路2に格納され
た命令のバイト数が、それぞれ、連想記憶回路1、命令
記憶回路2、アドレス記憶回路3に格納(登録)される
。他方、分岐命令の実行(EX)により分岐命令が失敗
した場合(ループ制御が行われなかった場合)、分岐命
令のアドレス+命令記憶回路2に格納された命令のバイ
ト数の命令の実行(E X)が行われ、従って、この場
合、第11図の場合と同様、通常のパイプライン処理が
行われる。
第3A図、第3B図はヒツト時の場合、すなわち、分岐
命令が連想記憶回路1に登録されている場合にあって且
つ分岐命令がデコードされた場合を示す。この場合には
、分岐命令のデコード(TD)時に、ヒツト信号が発生
され、この結果、分岐命令の実行(E X)時には、命
令記憶回路2から送出された分岐先命令のデコード(I
D)が行われると共に、アドレス記憶回路3から送出さ
れた分岐先アドレス+命令記憶回路2に格納された命令
のバイト数の命令のフェッチ(IF)が行われる。この
とき、分岐命令の実行(E X)により分岐命令が成功
した場合には、第3A図に示すように、分岐先命令の実
行(E X)が行われると共に、分岐先アドレス+命令
記憶回路2に格納された命令のバイト数の命令のデコー
ド(ID)が行われる。他方、分岐命令の実行(EX)
により分岐命令が失敗した場合には、分岐先命令の実行
は中止され、改めて分・岐命令のアドレス+命令記憶回
路2に格納された命令のバイト数の命令のフェッチ、デ
コードを行う必要がある。従って、第3B図に示すごと
く空サイクルが発生する。
本発明は、1回分岐命令が分岐成功した場合には、次に
その分岐命令が出現した場合も同方向に分岐する確率が
高いことに着目したものである。
つまり、分岐命令ループに入る前は、第2B図の状態で
パイプライン処理が行われ、最初の分岐命令の成功で第
2A図の状態でパイプライン処理が行われるが、引き続
いての分岐命令成功では第3A図の状態でパイプライン
処理が行われ、分岐命令ループを出るとき(すなわち、
分岐命令の分岐が失敗したとき)、第3B図の状態でパ
イプライン処理が行われる6従って、空サイクルが発生
する回数は2回である。
〔実施例〕
以下、第1A図の詳細について説明する。
第4図は第1A図の連想記憶回路1の詳細な回路図であ
る。第4図において、ライトバッファWB4.WBi、
1.WB+*z、 ”’は分岐命令(7)7 )’ し
7.WDi。
WD、、、、WD、や2.・・・をラッチするためのも
のであり、同期回路CSz、C3+、+、C3t、z、
・・・はプログラムカウンタ(PC、図示せず)からの
現在実行命令のアドレスPC4,Pct−+、PCB+
z、・・・をラッチするものであり、連想記憶要素CA
M、、 CAM、や、、CAMi。2.・・・はライト
バッファ匈B、、WB盈、1.賀Bi4□、・・・の出
力D ++ D i : D i+l+D ++I;D
i+l Di*2+ ”’と同期回路C3H,C54,
+、C54−z。
・・・の出力C8,でi r Ci+1+τi、1; 
C4+2+で、。1・・・との比較を行うものであり、
すべてのビットが一致したときにはヒント信号HITが
発生する。
第4図の書込み動作について第5図のタイミング図を参
照して説明する。ライトバッファWB、において、To
でφ1=″0″となるので、トラン ′ジスタ’r+、
’rzがオンとなり、従って、D、、D。
は共にハイレベルとなる。つまり、D、、D、はプリチ
ャージされる。ミスヒント時に分岐命令が成功した場合
には、図示しない制御回路によりT1にて信号−R,W
AYが“1”とされ、従って、トランジスタTs 、T
O、Ts 、Tbがオンとなり、この結果、書込みデー
タWD+(分岐命令アドレスの1ビツト)は連想記憶要
素CAM!にラッチされる。
次に、第4図のヒント判定動作について第6図を参照し
て説明する。始めに、同期回路CSiにおいては、T1
にてφO=“θ″となり、トランジスタT□、T1□が
オンとなり、従って、C,、C。
はローレベルとなる(プリチャージに相当)。次にTo
にてφO=“l”となるとトランジスタT、、、T、6
がオンとなり、従って、プログラムカウンタPCのアド
レスビットPC正に応じてトランジスタT+ff+T1
4の一方がオン、他方がオフとされ、この結果、でi、
C4はアドレスビットPC8に応じたレベルとなる。つ
まり、論理的に、で、 =PCt。
Cム=pciである。
また、連想記憶要素CAM、においては、TIにてφ0
=″O″であるのでトランジスタT1.がオンとされて
ヒツト信号線1(ITがプリチャージされ、TOにて、
でi、ciがトランジスタT *、 T +。に供給さ
れる。たとえば、PC4(=C! ) =“1”。
WDえ=“1”とすると、トランジスタT ?、 T 
+ oがオンとなり、また、トランジスタTI、TIが
オフとなり、従って、ヒツト信号線HITはディスチャ
ージされずハイレベルを保持する。また、 PC五(=
C五)=“0”、WD、=“l”とすると、トランジス
タT?、TIがオンとなり、従って、ヒツト信号線旧T
はディスチャージされてローレベルとなる。つまり、W
Di、WDiやI+S’lDi+t、・・・とPC4,
Pct++。
pc、、、、・・・とがすべて論理的に一致したときの
み、ヒツト信号線旧Tはハイレベルに保持され、ヒツト
信号となる。
第7図は第1図の命令記憶回路2の詳細な回路図、第8
図は第1図のアドレス記憶回路3の詳細な回路図である
。すなわち、命令記憶回路2およびアドレス記憶回路3
は同様な構成であって、ライトバッファーJJBJ、+
、WBj4g、・・・(引り、引り、、。
WB、、、、・・・)およびランチ回路RAMj、RA
Mj++。
RAMj、z、・・・(RAMt、、 R静i+*+、
 RAMk+z、・・・)よりなる。
また、ライトバッファWB、 (WBt、)は第4図の
ライトバッファWB、と同一構成である。また、ラッチ
回路RAJ (RAMb)の入力部も第4図の連想記憶
要素CAM、の入力部と同一構成である。従って、命令
記憶回路2およびアドレス記憶回路3の書込み動作は連
想記憶回路1の書込み動作と同一である。
第7図の回路の読出し動作について第9図のタイミング
図を用いて説明する。すなわち、連想記憶回路1の出力
であるヒツト信号HITにより読出し動作を行う、ヒン
ト信号器Tがハイレベルであれば、トランジスタTUB
がオンとなり、ラッチデータがハイレベルであればトラ
ンジスタT、もオンとなり、従って、A、はディスチャ
ージされてローレベルとなる。逆に、ラッチデータがロ
ーレベルであればトランジスタT27はオフとなり、従
って、A、はディスチャージされずハイレベルを保持す
る。つまり、ヒツト信号器Tがハイレベルのときには、
ラッチされた分岐先命令が出力される。なお、第8図に
おいても、ヒツト信号器Tがハイレベルのときには、分
岐先アドレス+命令記憶回路2に格納された命令のバイ
ト数のアドレスが出力される。
第11図はWR信号発生回路(LRU)の詳細な回路図
であって、ノア回路1101、ラッチ回路1102、お
よびアンド回路1103が設けられている。ヒツト信号
は、WAYの本数分発生するため、全てのヒント信号の
ノア論理をとることにより全ての−AYについてミスヒ
ツトであったことがわかる。ところが、ヒツト信号はT
 OB、11間しか出力されないため、1サイクル期間
保持するためにランチ回路1102を入れである。
第12図に第11図の動作を示すように、分岐命令成功
かつミスヒツトのときTlでのみヒ・ノド信号がアサー
トされる。
なお、上述の連想記憶回路l、命令記憶回路2、および
アドレス記憶回路3におけるWAY数、ワード長、タイ
ミング等については種々の変更が可能である。たとえば
、連想記憶回路1を4 WAYおよび32ビツトワード
にて構成した例を第10図に示す。たとえば、PCO〜
PC□と−AYIの32個のCAMの値とがすべて一致
したときに、ヒツト信号HIT 1がハイレベルとなる
が、1つでも異なると、ヒツト信号旧T1はローレベル
となる。つまり、ワード単位(32ビツト)の比較が行
われる。
〔発明の効果〕
以上説明したように本発明によれば、分岐成功に伴う空
サイクルを少なくでき、特に、プログラムにおけるルー
プ回数が多い場合には空サイクルを顕著に少なくでき、
従って、パイプライン処理の高速化が図れる。
【図面の簡単な説明】
第1A図は本発明の原理構成を示す図、第1B図は第1
図の動作を示すフローチャート、第2A図、第2B図、
第3A図、第3B図は本発明の詳細な説明するタイミン
グ図、 第4図は第1A図の連想記憶回路の詳細な回路図、 第5図、第6図は第4図の回路動作を示すタイミング図
、 第7図は第1A図の命令記憶回路の詳細な回路図、 第8図は第1A図のアドレス記憶回路の詳細な回路図、 第9図は第7図(第8図)の回路動作を示すタイミング
図、 第10図は第4図の変更例を示す回路図、第11図は第
1図のWR信号発生回路の詳細な回路図、 第12図は第11図の回路動作を示すタイミグ図・ 第13図は通常のパイプライン処理を示すタイミング図
、 第14A図、第14B図は従来のパイプライン処理を示
すタイミング図である。 1・・・連想記憶回路、  2・・・命令記憶回路、3
・・・アドレス記憶回路、 4・・・ブリフェッチステージ、 5・・・命令キューステージ。 第1A図の動作 第18図 ミスヒツト、分岐成功時 第2A図 ミスヒツト、分岐失敗時 第28図 ヒツト、分岐命令成功時 第3A図 ヒツト、分岐命令失敗時 第38図 第4図の書込み動作 第5図 第4図のヒツト判定動作 第6図 分岐先命令 命令記憶回路の詳細 第7図 分岐先アドレス+1 アドレス記憶回路の詳細 第8図 第7図(第8図)の読出し動作 第9図 第11図 第12図 通常のパイプライン動作 第13図 分岐命令  ←IF    I[と−一旦り一分岐命令
失敗時 第144図 分岐命令成功時 第148図

Claims (1)

  1. 【特許請求の範囲】 1、分岐命令成功時に該分岐命令のアドレスを登録し、
    該分岐命令のアドレスと現在実行命令のアドレスとを比
    較する連想記憶回路(1)と、分岐命令成功時に該分岐
    命令の分岐先命令を登録し、前記現在実行命令のアドレ
    スが前記登録された分岐命令のアドレスにヒットしたと
    きに該分岐命令の分岐先命令を送出する命令記憶回路(
    2)と、 分岐命令成功時に該分岐命令の分岐先アドレス+前記命
    令記憶回路に登録された分岐命令のバイト数のアドレス
    を登録し、前記現在実行命令のアドレスが前記分岐命令
    のアドレスにヒットしたときに該分岐命令の分岐先アド
    レス+前記命令記憶回路に登録された分岐先命令のバイ
    ト数のアドレスを送出するアドレス記憶回路(3)と、 を具備し、 前記現在実行命令のアドレスが前記登録された分岐命令
    のアドレスにヒットしたときには前記命令記憶回路をパ
    イプライン処理用の命令キューステージに、前記アドレ
    ス記憶回路をパイプライン処理用のプリフェッチステー
    ジに接続するようにしたパイプライン処理システム。
JP25238787A 1987-10-08 1987-10-08 パイプライン処理システム Pending JPH0195331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25238787A JPH0195331A (ja) 1987-10-08 1987-10-08 パイプライン処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25238787A JPH0195331A (ja) 1987-10-08 1987-10-08 パイプライン処理システム

Publications (1)

Publication Number Publication Date
JPH0195331A true JPH0195331A (ja) 1989-04-13

Family

ID=17236614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25238787A Pending JPH0195331A (ja) 1987-10-08 1987-10-08 パイプライン処理システム

Country Status (1)

Country Link
JP (1) JPH0195331A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129441A (ja) * 1989-06-20 1991-06-03 Fujitsu Ltd 分岐命令実行装置
JPH04145531A (ja) * 1990-10-05 1992-05-19 Nec Corp マイクロプログラム制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60168238A (ja) * 1984-02-10 1985-08-31 Hitachi Ltd パイプラインデータ処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60168238A (ja) * 1984-02-10 1985-08-31 Hitachi Ltd パイプラインデータ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129441A (ja) * 1989-06-20 1991-06-03 Fujitsu Ltd 分岐命令実行装置
JPH04145531A (ja) * 1990-10-05 1992-05-19 Nec Corp マイクロプログラム制御装置

Similar Documents

Publication Publication Date Title
US5027270A (en) Processor controlled interface with instruction streaming
US6021485A (en) Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching
US5701430A (en) Cross-cache-line compounding algorithm for scism processors
CA2260308C (en) High performance speculative misaligned load operations
US5349651A (en) System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US3728692A (en) Instruction selection in a two-program counter instruction unit
TW200530912A (en) Transitioning from instruction cache to trace cache on label boundaries
US5931957A (en) Support for out-of-order execution of loads and stores in a processor
US20030005266A1 (en) Multithreaded processor capable of implicit multithreaded execution of a single-thread program
KR20060108644A (ko) 트레이스 캐시 기반 프로세서에서 예외 명령어들을 처리하는 시스템 및 방법
JPS60168238A (ja) パイプラインデータ処理装置
JPH02190930A (ja) ソフトウエア命令実行装置
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
US6760835B1 (en) Instruction branch mispredict streaming
KR20020097149A (ko) 종속성 체인을 발행 또는 재발행할 수 있는 스케줄러
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US5924120A (en) Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times
US6421758B1 (en) Method and system for super-fast updating and reading of content addressable memory with a bypass circuit
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
US20030163643A1 (en) Bank conflict determination
JPH02239331A (ja) データ処理システム及びその命令実行を促進する方法
JPH05506323A (ja) 機能停止キャッシュを提供する装置と方法
US6823430B2 (en) Directoryless L0 cache for stall reduction
US20070260857A1 (en) Electronic Circuit
US5854943A (en) Speed efficient cache output selector circuitry based on tag compare and data organization