JPH04347730A - マイクロ・プロセッサの命令処理方式 - Google Patents
マイクロ・プロセッサの命令処理方式Info
- Publication number
- JPH04347730A JPH04347730A JP14964291A JP14964291A JPH04347730A JP H04347730 A JPH04347730 A JP H04347730A JP 14964291 A JP14964291 A JP 14964291A JP 14964291 A JP14964291 A JP 14964291A JP H04347730 A JPH04347730 A JP H04347730A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- address
- branch
- processing
- 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
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】この発明は外部にキャッシュメモ
リが接続されている場合のマイクロ・プロセッサの命令
処理方式に関するものである。
リが接続されている場合のマイクロ・プロセッサの命令
処理方式に関するものである。
【0002】
【従来の技術】図4は従来のマイクロ・プロセッサの各
命令処理ステージを示している。各ステージはインスト
ラクション・フェッチ(IF),命令デコード(D),
オペランドアドレス計算(A),オペランドフェッチ(
F),命令実行(E)からなる。命令は各ステージを通
過処理されることにより、実行される。Dステージで条
件分岐の予測アドレスが算出され、Aステージで分岐予
測アドレスの逆アドレスが算出される。図2はマイクロ
・プロセッサの命令処理説明ためのプログラム例である
。図2の1は命令格納アドレスを示し、2は命令格納ア
ドレス内の命令コードを示している。2に示す命令コー
ド内で、BCCは条件分岐命令であり、aからeは非分
岐命令を示す。図5は、図2のプログラムを実行した場
合の図4の各ステージで処理される命令を示す図である
。■から■は命令処理時の各ステージ内の処理命令を示
し、3は外部接続されたキャッシュメモリの登録アドレ
スを示しており、図2のプログラム実行前はプログラム
の命令アドレスは登録されていない。
命令処理ステージを示している。各ステージはインスト
ラクション・フェッチ(IF),命令デコード(D),
オペランドアドレス計算(A),オペランドフェッチ(
F),命令実行(E)からなる。命令は各ステージを通
過処理されることにより、実行される。Dステージで条
件分岐の予測アドレスが算出され、Aステージで分岐予
測アドレスの逆アドレスが算出される。図2はマイクロ
・プロセッサの命令処理説明ためのプログラム例である
。図2の1は命令格納アドレスを示し、2は命令格納ア
ドレス内の命令コードを示している。2に示す命令コー
ド内で、BCCは条件分岐命令であり、aからeは非分
岐命令を示す。図5は、図2のプログラムを実行した場
合の図4の各ステージで処理される命令を示す図である
。■から■は命令処理時の各ステージ内の処理命令を示
し、3は外部接続されたキャッシュメモリの登録アドレ
スを示しており、図2のプログラム実行前はプログラム
の命令アドレスは登録されていない。
【0003】次に、マイクロ・プロセッサのパイプライ
ン動作とキャッシュメモリ内容を図5に基づいて説明す
る。■BCC命令がIFステージにフェッチされる。こ
の際、外部キャッシュメモリには命令アドレス00から
08の命令コードがプリフェッチされる。■BCC命令
がDステージでデコード処理され条件分岐命令であるこ
とが判定される。このBCC命令の分岐予測では非分岐
を予測して次のa命令がIFステージにフェッチされる
とする。■BCC命令がAステージで処理され、分岐先
アドレス100が算出される。a命令はDステージで処
理され、b命令がIFステージにフェッチされる。■B
CC命令はFステージで処理される。a命令は、Aステ
ージで処理され、b命令はDステージで処理され、c命
令がIFステージにフェッチされる。■BCC命令がE
ステージで処理される。EステージでのBCC命令の処
理結果で分岐予測がはずれたことが判明する。a,b,
cの命令はそれぞれF,A,Dステージで処理される。 ■各ステージで実行中の命令をキャンセルし、次のEス
テージで判定された分岐先アドレス100の命令フェッ
チを行なう。■のステージ処理実行後IFステージは分
岐先アドレス100の命令フェッチを行なう。この場合
、外部キャッシュメモリにはアドレス100の命令コー
ドが登録されていないので、キャッシュメモリは主メモ
リにアクセスし、アドレス100の命令コードをキャッ
シュメモリの内蔵メモリに登録し、IFステージに命令
データを転送する。その間IFステージのフェッチ処理
は保留される。
ン動作とキャッシュメモリ内容を図5に基づいて説明す
る。■BCC命令がIFステージにフェッチされる。こ
の際、外部キャッシュメモリには命令アドレス00から
08の命令コードがプリフェッチされる。■BCC命令
がDステージでデコード処理され条件分岐命令であるこ
とが判定される。このBCC命令の分岐予測では非分岐
を予測して次のa命令がIFステージにフェッチされる
とする。■BCC命令がAステージで処理され、分岐先
アドレス100が算出される。a命令はDステージで処
理され、b命令がIFステージにフェッチされる。■B
CC命令はFステージで処理される。a命令は、Aステ
ージで処理され、b命令はDステージで処理され、c命
令がIFステージにフェッチされる。■BCC命令がE
ステージで処理される。EステージでのBCC命令の処
理結果で分岐予測がはずれたことが判明する。a,b,
cの命令はそれぞれF,A,Dステージで処理される。 ■各ステージで実行中の命令をキャンセルし、次のEス
テージで判定された分岐先アドレス100の命令フェッ
チを行なう。■のステージ処理実行後IFステージは分
岐先アドレス100の命令フェッチを行なう。この場合
、外部キャッシュメモリにはアドレス100の命令コー
ドが登録されていないので、キャッシュメモリは主メモ
リにアクセスし、アドレス100の命令コードをキャッ
シュメモリの内蔵メモリに登録し、IFステージに命令
データを転送する。その間IFステージのフェッチ処理
は保留される。
【0004】
【発明が解決しようとする課題】マイクロ・プロセッサ
がパイプライン処理を行なっている場合、条件分岐命令
をフェッチした後の、条件分岐命令の次の命令フェッチ
アドレスは、条件分岐命令に対して予め設定された分岐
/非分岐の条件で決定する分岐予測処理を行なっている
。最終実行ステージで条件分岐命令の処理結果が予め予
測された分岐/非分岐の条件の逆となることが判明した
場合、マイクロ・プロセッサはパイプライン中の各ステ
ージに充填された命令をキャンセルし、最終実行ステー
ジで決定された命令アドレスのフェッチを行なう。マイ
クロ・プロセッサ外部にキャッシュメモリが接続されて
いる場合、最終ステージで決定されたアドレス内容が外
部キャッシュメモリに登録されていない場合がある。 この場合、キャッシュメモリは主メモリにアクセスして
アドレス内容を取り込まなければならず、命令フェッチ
が遅くなるという問題点があった。
がパイプライン処理を行なっている場合、条件分岐命令
をフェッチした後の、条件分岐命令の次の命令フェッチ
アドレスは、条件分岐命令に対して予め設定された分岐
/非分岐の条件で決定する分岐予測処理を行なっている
。最終実行ステージで条件分岐命令の処理結果が予め予
測された分岐/非分岐の条件の逆となることが判明した
場合、マイクロ・プロセッサはパイプライン中の各ステ
ージに充填された命令をキャンセルし、最終実行ステー
ジで決定された命令アドレスのフェッチを行なう。マイ
クロ・プロセッサ外部にキャッシュメモリが接続されて
いる場合、最終ステージで決定されたアドレス内容が外
部キャッシュメモリに登録されていない場合がある。 この場合、キャッシュメモリは主メモリにアクセスして
アドレス内容を取り込まなければならず、命令フェッチ
が遅くなるという問題点があった。
【0005】この発明は、上記の問題点を解消するため
になされたもので、最終実行ステージで分岐予測がはず
れた場合でも、非予測分岐先アドレスの内容が外部キャ
ッシュメモリに登録されているようにし、命令フェッチ
を高速に行なえるようにすることを目的とする。
になされたもので、最終実行ステージで分岐予測がはず
れた場合でも、非予測分岐先アドレスの内容が外部キャ
ッシュメモリに登録されているようにし、命令フェッチ
を高速に行なえるようにすることを目的とする。
【0006】
【課題を解決するための手段】本発明のマイクロ・プロ
セッサの命令処理方式は、外部にキャッシュメモリが接
続され、パイプライン処理が行なわれるマイクロ・プロ
セッサの命令処理ステージで、命令コードが分岐命令で
あることを判定して、分岐命令の分岐/非分岐先の予測
アドレスと非予測アドレスとを算出するとともに、この
非予測アドレスの内容を主メモリから上記キャッシュメ
モリに取り込むようにしたものである。
セッサの命令処理方式は、外部にキャッシュメモリが接
続され、パイプライン処理が行なわれるマイクロ・プロ
セッサの命令処理ステージで、命令コードが分岐命令で
あることを判定して、分岐命令の分岐/非分岐先の予測
アドレスと非予測アドレスとを算出するとともに、この
非予測アドレスの内容を主メモリから上記キャッシュメ
モリに取り込むようにしたものである。
【0007】
【作用】本発明においては、命令処理最終実行ステージ
において分岐命令の分岐/非分岐先の予測アドレスがは
ずれた場合でも、非予測アドレスの内容がすでにキャッ
シュメモリに取り込まれているので、非予測アドレスの
命令フェッチを高速に行なえる。
において分岐命令の分岐/非分岐先の予測アドレスがは
ずれた場合でも、非予測アドレスの内容がすでにキャッ
シュメモリに取り込まれているので、非予測アドレスの
命令フェッチを高速に行なえる。
【0008】
【実施例】以下、本発明の一実施例を図にもとづいて説
明する。図1は本発明のマイクロ・プロセッサの各命令
処理ステージを示している。各ステージはインストラク
ション・フェッチ(IF),命令デコード(D),オペ
ランドアドレス計算(A),オペランドフェッチ(F)
,命令実行(E)からなる。命令は各ステージを通過処
理されることにより、実行される。Aステージで算出さ
れた命令フェッチアドレスは、IFステージに供給され
る。Dステージで条件分岐の予測アドレスが算出され、
Aステージで分岐予測アドレスの逆アドレスが算出され
る。Aステージでの算出アドレスはIFステージに供給
される。IFステージでは、Aステージでの算出アドレ
スの主メモリからキャッシュメモリへの命令フェッチ操
作のみを行ないフェッチ命令は取り込まない。本マイク
ロ・プロセッサの命令処理説明は、プログラム例として
従来同様図2を用いるものとする。
明する。図1は本発明のマイクロ・プロセッサの各命令
処理ステージを示している。各ステージはインストラク
ション・フェッチ(IF),命令デコード(D),オペ
ランドアドレス計算(A),オペランドフェッチ(F)
,命令実行(E)からなる。命令は各ステージを通過処
理されることにより、実行される。Aステージで算出さ
れた命令フェッチアドレスは、IFステージに供給され
る。Dステージで条件分岐の予測アドレスが算出され、
Aステージで分岐予測アドレスの逆アドレスが算出され
る。Aステージでの算出アドレスはIFステージに供給
される。IFステージでは、Aステージでの算出アドレ
スの主メモリからキャッシュメモリへの命令フェッチ操
作のみを行ないフェッチ命令は取り込まない。本マイク
ロ・プロセッサの命令処理説明は、プログラム例として
従来同様図2を用いるものとする。
【0009】図3は、図2のプログラムを実行した場合
の図1の各ステージで処理される命令を示している。■
から■は命令処理時の各ステージ内の処理命令を示し、
3は外部接続されたキュッシュメモリの登録アドレスを
示しており、図2のプログラム実行前はプログラムの命
令アドレスは登録されていない。本マイクロプロセッサ
のパイプライン動作とキュッシュメモリ内容を図3で説
明する。■から■の各ステージ内の処理について説明す
る。■BCC命令がIFステージにフェッチされる。外
部キュッシュメモリには命令アドレス00から08の命
令コードがプリフェッチされる。■BCC命令がDステ
ージでデコード処理され、条件分岐命令であることが判
定される。このBCC命令の分岐予測では非分岐を予測
して次のa命令がIFステージにフェッチされるとする
。■BCC命令がAステージで処理され、非予測分岐先
アドレス100が算出される。非予測分岐先アドレス1
00はAステージからIFステージに供給される。IF
ステージでは非予測分岐先アドレス100のフェッチ動
作を行ない、外部キャッシュメモリにアドレス100が
登録されていない場合、主メモリにアクセスし、外部キ
ャッシュメモリは命令アドレス100から108の命令
コードの登録処理を開始する。また、a命令はDステー
ジで処理され、b命令がIFステージにフェッチされる
。■BCC命令はFステージで処理される。a命令は、
Aステージで処理され、b命令はDステージで処理され
る。この場合、外部キュッシュメモリが命令アドレス1
00の内容を登録するまでIFステージには、処理命令
が登録されない。すなわちIFステージへのフェッチは
禁止される。■BCC命令がEステージで処理される。 BCC命令のEステージでの処理結果、分岐予測がはず
れたことが判明する。a,bの命令はそれぞれF,Aス
テージで処理される。■各ステージで実行中の命令をキ
ャンセルし、次に最終Eステージで判定された非予測分
岐先アドレス100の命令フェッチを行なう。
の図1の各ステージで処理される命令を示している。■
から■は命令処理時の各ステージ内の処理命令を示し、
3は外部接続されたキュッシュメモリの登録アドレスを
示しており、図2のプログラム実行前はプログラムの命
令アドレスは登録されていない。本マイクロプロセッサ
のパイプライン動作とキュッシュメモリ内容を図3で説
明する。■から■の各ステージ内の処理について説明す
る。■BCC命令がIFステージにフェッチされる。外
部キュッシュメモリには命令アドレス00から08の命
令コードがプリフェッチされる。■BCC命令がDステ
ージでデコード処理され、条件分岐命令であることが判
定される。このBCC命令の分岐予測では非分岐を予測
して次のa命令がIFステージにフェッチされるとする
。■BCC命令がAステージで処理され、非予測分岐先
アドレス100が算出される。非予測分岐先アドレス1
00はAステージからIFステージに供給される。IF
ステージでは非予測分岐先アドレス100のフェッチ動
作を行ない、外部キャッシュメモリにアドレス100が
登録されていない場合、主メモリにアクセスし、外部キ
ャッシュメモリは命令アドレス100から108の命令
コードの登録処理を開始する。また、a命令はDステー
ジで処理され、b命令がIFステージにフェッチされる
。■BCC命令はFステージで処理される。a命令は、
Aステージで処理され、b命令はDステージで処理され
る。この場合、外部キュッシュメモリが命令アドレス1
00の内容を登録するまでIFステージには、処理命令
が登録されない。すなわちIFステージへのフェッチは
禁止される。■BCC命令がEステージで処理される。 BCC命令のEステージでの処理結果、分岐予測がはず
れたことが判明する。a,bの命令はそれぞれF,Aス
テージで処理される。■各ステージで実行中の命令をキ
ャンセルし、次に最終Eステージで判定された非予測分
岐先アドレス100の命令フェッチを行なう。
【0010】非予測分岐先アドレス100の内容は、外
部キャッシュメモリにすでに登録されているのでこの非
予測分岐アドレス100は高速にフェッチできる。又、
■のIFステージの命令アドレス100のフェッチ処理
から■の命令のキャンセル処理間で、非予測分岐先アド
レス100の命令フェッチ動作処理とa,bの命令の各
ステージ処理は並行して実行できる。従って、分岐予測
がはずれた場合の命令フェッチ時間は、(キャッシュメ
モリから命令アドレスのフェッチを行なう時間)−(■
の命令のキャンセル処理終了−■のIFステージの命令
アドレス100のフェッチ処理開始)の算出結果が負で
あれば、従来の命令フェッチ方式に比べて短縮できる。
部キャッシュメモリにすでに登録されているのでこの非
予測分岐アドレス100は高速にフェッチできる。又、
■のIFステージの命令アドレス100のフェッチ処理
から■の命令のキャンセル処理間で、非予測分岐先アド
レス100の命令フェッチ動作処理とa,bの命令の各
ステージ処理は並行して実行できる。従って、分岐予測
がはずれた場合の命令フェッチ時間は、(キャッシュメ
モリから命令アドレスのフェッチを行なう時間)−(■
の命令のキャンセル処理終了−■のIFステージの命令
アドレス100のフェッチ処理開始)の算出結果が負で
あれば、従来の命令フェッチ方式に比べて短縮できる。
【0011】
【発明の効果】以上のように本発明によれば、外部にキ
ャッシュメモリが接続され、パイプライン処理が行なわ
れるマイクロ・プロセッサの命令処理ステージで、命令
コードが分岐命令であることを判定して、分岐命令の分
岐/非分岐先の予測アドレスと非予測アドレスとを算出
するとともに、この非予測アドレスの内容を主メモリか
ら上記キャッシュメモリに取り込むようにしたので、命
令処理最終実行ステージでの分岐予測がはずれた場合で
も、命令フェッチ処理を高速に行なう事が出来る。
ャッシュメモリが接続され、パイプライン処理が行なわ
れるマイクロ・プロセッサの命令処理ステージで、命令
コードが分岐命令であることを判定して、分岐命令の分
岐/非分岐先の予測アドレスと非予測アドレスとを算出
するとともに、この非予測アドレスの内容を主メモリか
ら上記キャッシュメモリに取り込むようにしたので、命
令処理最終実行ステージでの分岐予測がはずれた場合で
も、命令フェッチ処理を高速に行なう事が出来る。
【図1】本発明のマイクロ・プロセッサの命令実行ステ
ージを示すブロック図である。
ージを示すブロック図である。
【図2】マイクロ・プロセッサの命令動作説明のプログ
ラム例を示す図である。
ラム例を示す図である。
【図3】本発明のマイクロ・プロセッサの命令処理時の
各ステージの処理命令と外部キャッシュの登録アドレス
を示す図である。
各ステージの処理命令と外部キャッシュの登録アドレス
を示す図である。
【図4】従来のマイクロ・プロセッサの命令実行を示す
ブロック図である。
ブロック図である。
【図5】従来のマイクロ・プロセッサの命令処理時の各
ステージの処理命令と外部キャッシュの登録アドレスを
示す図である。
ステージの処理命令と外部キャッシュの登録アドレスを
示す図である。
1 命令コード格納アドレス
2 命令コード
Claims (1)
- 【請求項1】 外部にキャッシュメモリが接続され、
パイプライン処理が行なわれるマイクロ・プロセッサの
命令処理ステージで、命令コードが分岐命令であること
を判定して、分岐命令の分岐/非分岐先の予測アドレス
と非予測アドレスとを算出するとともに、この非予測ア
ドレスの内容を主メモリから上記キャッシュメモリに取
り込むようにしたことを特徴とするマイクロ・プロセッ
サの命令処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14964291A JPH04347730A (ja) | 1991-05-24 | 1991-05-24 | マイクロ・プロセッサの命令処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14964291A JPH04347730A (ja) | 1991-05-24 | 1991-05-24 | マイクロ・プロセッサの命令処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04347730A true JPH04347730A (ja) | 1992-12-02 |
Family
ID=15479695
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14964291A Pending JPH04347730A (ja) | 1991-05-24 | 1991-05-24 | マイクロ・プロセッサの命令処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04347730A (ja) |
-
1991
- 1991-05-24 JP JP14964291A patent/JPH04347730A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4858104A (en) | Preceding instruction address based branch prediction in a pipelined processor | |
| JP2504830Y2 (ja) | デ―タ処理装置 | |
| JPS6393038A (ja) | 計算機 | |
| JPS6393041A (ja) | 計算機 | |
| JPS6356731A (ja) | デ−タ処理装置 | |
| JP3486690B2 (ja) | パイプライン方式プロセッサ | |
| JPH056894B2 (ja) | ||
| JPH03129432A (ja) | 分岐制御回路 | |
| JPH02287626A (ja) | パイプライン方式の分岐命令制御装置 | |
| JPH06161779A (ja) | データ処理装置の割込み制御方式 | |
| JPH04347730A (ja) | マイクロ・プロセッサの命令処理方式 | |
| JPH10124312A (ja) | 中央処理装置 | |
| KR950000088B1 (ko) | 데이터처리시스템 | |
| JP2503223B2 (ja) | 先行制御方式 | |
| JPH03212735A (ja) | マイクロプロセッサの命令処理方式 | |
| JP2597744B2 (ja) | 分岐制御方法 | |
| JPH04246728A (ja) | 情報処理装置 | |
| JPH01229327A (ja) | 高機能な例外処理を行うデータ処理装置 | |
| JPH0481218B2 (ja) | ||
| JPH01239638A (ja) | 分岐予測を行う情報処理装置 | |
| JPH06168120A (ja) | 命令先取り装置 | |
| JPH09311787A (ja) | データ処理装置 | |
| JPH0462637A (ja) | マイクロプロセッサ | |
| JPH0715662B2 (ja) | 命令の先取りを行なう情報処理装置 | |
| JPH0820952B2 (ja) | パイプライン処理機構を持つデータ処理装置 |