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
Links
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 17
- 239000000872 buffer Substances 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 3
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 1
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 1
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(概 要〕
高速分岐機構を有するパイプライン処理システムに関し
、 分岐命令成功による空サイクルを少なくしてパイプライ
ン処理の高速化を図ることを目的とし、分岐命令成功時
にその分岐命令のアドレスを登録し、その分岐命令のア
ドレスと現在実行命令のアドレスとを比較する連想記憶
回路と、分岐命令成功時にその分岐命令の分岐先命令を
登録し、現在実行命令のアドレスが登録された分岐命令
のアドレスにヒツトしたときに分岐命令の分岐先命令を
送出する命令記憶回路と、分岐命令成功時にその分岐命
令の分岐先アドレス+命令記憶回路に登録された分岐先
命令のバイト数のアドレスを登録し、現在実行命令のア
ドレスがその分岐命令のアと、を具備し、現在実行命令
のアドレスが登録された分岐命令のアドレスにヒツトし
たときには命令記憶回路をパイプライン処理用の命令キ
ューステージに、アドレス記憶回路をパイプライン処理
用のブリフェッチカウンタに接続するように構成する。
、 分岐命令成功による空サイクルを少なくしてパイプライ
ン処理の高速化を図ることを目的とし、分岐命令成功時
にその分岐命令のアドレスを登録し、その分岐命令のア
ドレスと現在実行命令のアドレスとを比較する連想記憶
回路と、分岐命令成功時にその分岐命令の分岐先命令を
登録し、現在実行命令のアドレスが登録された分岐命令
のアドレスにヒツトしたときに分岐命令の分岐先命令を
送出する命令記憶回路と、分岐命令成功時にその分岐命
令の分岐先アドレス+命令記憶回路に登録された分岐先
命令のバイト数のアドレスを登録し、現在実行命令のア
ドレスがその分岐命令のアと、を具備し、現在実行命令
のアドレスが登録された分岐命令のアドレスにヒツトし
たときには命令記憶回路をパイプライン処理用の命令キ
ューステージに、アドレス記憶回路をパイプライン処理
用のブリフェッチカウンタに接続するように構成する。
本発明は高速分岐機構を有するパイプライン処理システ
ムに関する。
ムに関する。
マイクロプロセッサにおいて高速性を追求していくと、
大型コンピュータで用いられているパイプライン処理が
必要となる。パイプライン処理とは一命令を複数の処理
単位に分け、見かけ上、命令が並列に実行されているよ
うな処理である。第13図に3段のパイプラインの例を
示す。すなわち、第13図においては、−命令を命令フ
ェッチIF、命令デコードID、実行EXの処理単位に
分け、見かけ上、3つの命令が並列に実行されている。
大型コンピュータで用いられているパイプライン処理が
必要となる。パイプライン処理とは一命令を複数の処理
単位に分け、見かけ上、命令が並列に実行されているよ
うな処理である。第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。
岐命令(ループ命令)の実行時に問題が生ずる。プログ
ラムがループを形成している場合、たとえば、 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)個の空サイクルが
発生して実行時間の遅れが大きくなるという問題点があ
った。
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発生回路である。
る。すなわち、連想記憶回路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図に示されてい
る。
れている場合の第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図の場合と同様、通常のパイプライン処理が
行われる。
分岐命令が連想記憶回路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に登録されている場合にあって且
つ分岐命令がデコードされた場合を示す。この場合には
、分岐命令のデコード(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回である。
パイプライン処理が行われ、最初の分岐命令の成功で第
2A図の状態でパイプライン処理が行われるが、引き続
いての分岐命令成功では第3A図の状態でパイプライン
処理が行われ、分岐命令ループを出るとき(すなわち、
分岐命令の分岐が失敗したとき)、第3B図の状態でパ
イプライン処理が行われる6従って、空サイクルが発生
する回数は2回である。
以下、第1A図の詳細について説明する。
第4図は第1A図の連想記憶回路1の詳細な回路図であ
る。第4図において、ライトバッファWB4.WBi、
1.WB+*z、 ”’は分岐命令(7)7 )’ し
7.WDi。
る。第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。
のであり、同期回路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が
発生する。
C4+2+で、。1・・・との比較を行うものであり、
すべてのビットが一致したときにはヒント信号HITが
発生する。
第4図の書込み動作について第5図のタイミング図を参
照して説明する。ライトバッファWB、において、To
でφ1=″0″となるので、トラン ′ジスタ’r+、
’rzがオンとなり、従って、D、、D。
照して説明する。ライトバッファWB、において、To
でφ1=″0″となるので、トラン ′ジスタ’r+、
’rzがオンとなり、従って、D、、D。
は共にハイレベルとなる。つまり、D、、D、はプリチ
ャージされる。ミスヒント時に分岐命令が成功した場合
には、図示しない制御回路によりT1にて信号−R,W
AYが“1”とされ、従って、トランジスタTs 、T
O、Ts 、Tbがオンとなり、この結果、書込みデー
タWD+(分岐命令アドレスの1ビツト)は連想記憶要
素CAM!にラッチされる。
ャージされる。ミスヒント時に分岐命令が成功した場合
には、図示しない制御回路によりT1にて信号−R,W
AYが“1”とされ、従って、トランジスタTs 、T
O、Ts 、Tbがオンとなり、この結果、書込みデー
タWD+(分岐命令アドレスの1ビツト)は連想記憶要
素CAM!にラッチされる。
次に、第4図のヒント判定動作について第6図を参照し
て説明する。始めに、同期回路CSiにおいては、T1
にてφO=“θ″となり、トランジスタT□、T1□が
オンとなり、従って、C,、C。
て説明する。始めに、同期回路CSiにおいては、T1
にてφO=“θ″となり、トランジスタT□、T1□が
オンとなり、従って、C,、C。
はローレベルとなる(プリチャージに相当)。次にTo
にてφO=“l”となるとトランジスタT、、、T、6
がオンとなり、従って、プログラムカウンタPCのアド
レスビットPC正に応じてトランジスタT+ff+T1
4の一方がオン、他方がオフとされ、この結果、でi、
C4はアドレスビットPC8に応じたレベルとなる。つ
まり、論理的に、で、 =PCt。
にてφ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”。
=″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++。
+ oがオンとなり、また、トランジスタTI、TIが
オフとなり、従って、ヒツト信号線HITはディスチャ
ージされずハイレベルを保持する。また、 PC五(=
C五)=“0”、WD、=“l”とすると、トランジス
タT?、TIがオンとなり、従って、ヒツト信号線旧T
はディスチャージされてローレベルとなる。つまり、W
Di、WDiやI+S’lDi+t、・・・とPC4,
Pct++。
pc、、、、・・・とがすべて論理的に一致したときの
み、ヒツト信号線旧Tはハイレベルに保持され、ヒツト
信号となる。
み、ヒツト信号線旧Tはハイレベルに保持され、ヒツト
信号となる。
第7図は第1図の命令記憶回路2の詳細な回路図、第8
図は第1図のアドレス記憶回路3の詳細な回路図である
。すなわち、命令記憶回路2およびアドレス記憶回路3
は同様な構成であって、ライトバッファーJJBJ、+
、WBj4g、・・・(引り、引り、、。
図は第1図のアドレス記憶回路3の詳細な回路図である
。すなわち、命令記憶回路2およびアドレス記憶回路3
は同様な構成であって、ライトバッファーJJBJ、+
、WBj4g、・・・(引り、引り、、。
WB、、、、・・・)およびランチ回路RAMj、RA
Mj++。
Mj++。
RAMj、z、・・・(RAMt、、 R静i+*+、
RAMk+z、・・・)よりなる。
RAMk+z、・・・)よりなる。
また、ライトバッファWB、 (WBt、)は第4図の
ライトバッファWB、と同一構成である。また、ラッチ
回路RAJ (RAMb)の入力部も第4図の連想記憶
要素CAM、の入力部と同一構成である。従って、命令
記憶回路2およびアドレス記憶回路3の書込み動作は連
想記憶回路1の書込み動作と同一である。
ライトバッファWB、と同一構成である。また、ラッチ
回路RAJ (RAMb)の入力部も第4図の連想記憶
要素CAM、の入力部と同一構成である。従って、命令
記憶回路2およびアドレス記憶回路3の書込み動作は連
想記憶回路1の書込み動作と同一である。
第7図の回路の読出し動作について第9図のタイミング
図を用いて説明する。すなわち、連想記憶回路1の出力
であるヒツト信号HITにより読出し動作を行う、ヒン
ト信号器Tがハイレベルであれば、トランジスタTUB
がオンとなり、ラッチデータがハイレベルであればトラ
ンジスタT、もオンとなり、従って、A、はディスチャ
ージされてローレベルとなる。逆に、ラッチデータがロ
ーレベルであればトランジスタT27はオフとなり、従
って、A、はディスチャージされずハイレベルを保持す
る。つまり、ヒツト信号器Tがハイレベルのときには、
ラッチされた分岐先命令が出力される。なお、第8図に
おいても、ヒツト信号器Tがハイレベルのときには、分
岐先アドレス+命令記憶回路2に格納された命令のバイ
ト数のアドレスが出力される。
図を用いて説明する。すなわち、連想記憶回路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を入れである。
であって、ノア回路1101、ラッチ回路1102、お
よびアンド回路1103が設けられている。ヒツト信号
は、WAYの本数分発生するため、全てのヒント信号の
ノア論理をとることにより全ての−AYについてミスヒ
ツトであったことがわかる。ところが、ヒツト信号はT
OB、11間しか出力されないため、1サイクル期間
保持するためにランチ回路1102を入れである。
第12図に第11図の動作を示すように、分岐命令成功
かつミスヒツトのときTlでのみヒ・ノド信号がアサー
トされる。
かつミスヒツトのときTlでのみヒ・ノド信号がアサー
トされる。
なお、上述の連想記憶回路l、命令記憶回路2、および
アドレス記憶回路3におけるWAY数、ワード長、タイ
ミング等については種々の変更が可能である。たとえば
、連想記憶回路1を4 WAYおよび32ビツトワード
にて構成した例を第10図に示す。たとえば、PCO〜
PC□と−AYIの32個のCAMの値とがすべて一致
したときに、ヒツト信号HIT 1がハイレベルとなる
が、1つでも異なると、ヒツト信号旧T1はローレベル
となる。つまり、ワード単位(32ビツト)の比較が行
われる。
アドレス記憶回路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図
図の動作を示すフローチャート、第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)と、分岐命令成功時に該分岐
命令の分岐先命令を登録し、前記現在実行命令のアドレ
スが前記登録された分岐命令のアドレスにヒットしたと
きに該分岐命令の分岐先命令を送出する命令記憶回路(
2)と、 分岐命令成功時に該分岐命令の分岐先アドレス+前記命
令記憶回路に登録された分岐命令のバイト数のアドレス
を登録し、前記現在実行命令のアドレスが前記分岐命令
のアドレスにヒットしたときに該分岐命令の分岐先アド
レス+前記命令記憶回路に登録された分岐先命令のバイ
ト数のアドレスを送出するアドレス記憶回路(3)と、 を具備し、 前記現在実行命令のアドレスが前記登録された分岐命令
のアドレスにヒットしたときには前記命令記憶回路をパ
イプライン処理用の命令キューステージに、前記アドレ
ス記憶回路をパイプライン処理用のプリフェッチステー
ジに接続するようにしたパイプライン処理システム。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60168238A (ja) * | 1984-02-10 | 1985-08-31 | Hitachi Ltd | パイプラインデータ処理装置 |
-
1987
- 1987-10-08 JP JP25238787A patent/JPH0195331A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60168238A (ja) * | 1984-02-10 | 1985-08-31 | Hitachi Ltd | パイプラインデータ処理装置 |
Cited By (2)
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 |