JPH0331933A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0331933A JPH0331933A JP16781689A JP16781689A JPH0331933A JP H0331933 A JPH0331933 A JP H0331933A JP 16781689 A JP16781689 A JP 16781689A JP 16781689 A JP16781689 A JP 16781689A JP H0331933 A JPH0331933 A JP H0331933A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- storage means
- address
- out type
- 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
- 238000010586 diagram Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は分岐予測によって先行分岐処理を行うデータ
処理装置に関する。
処理装置に関する。
第4図は命令のパイプライン処理機構と分岐予測処理機
構を備えた従来のマイクロプロセッサのブロック図で、
図において、(1)は分岐先の命令を選択的に登録する
命令キャッシュ、(2)は命令フェッチ部、(81は命
令デコード部、(4)は命令実行部、(5)は分岐予測
i、(a)は分岐先アドレス生成回路、(71i’i−
i’−タバス、(3)はアドレスバス、(9)ii&i
命令実行部)または分岐先アドレス生成回路(6)で生
成される分岐先アドレス、叫は命令キャッシュ(1)か
らフェッチされる命令、0υは命令キュ一部(2)から
命令実行部(3)に入力される命令コード、αaVi、
aVi、デコード 命令アドレス、(14)は分岐予測結果を示す分岐予測
信号、(15は分岐予測信号(141にしたがって分岐
先アドレスを生成するために必要なアドレス、叫は分岐
予測結果にしたがって命令デコード部から命令フェッチ
部に出力される先行分岐信号、卸は現在実行中の命令ア
ドレス、cnFi命令キュー、ノハフエツチすべき命令
アドレスを示すブリフェッチアドレスレジスタである。
構を備えた従来のマイクロプロセッサのブロック図で、
図において、(1)は分岐先の命令を選択的に登録する
命令キャッシュ、(2)は命令フェッチ部、(81は命
令デコード部、(4)は命令実行部、(5)は分岐予測
i、(a)は分岐先アドレス生成回路、(71i’i−
i’−タバス、(3)はアドレスバス、(9)ii&i
命令実行部)または分岐先アドレス生成回路(6)で生
成される分岐先アドレス、叫は命令キャッシュ(1)か
らフェッチされる命令、0υは命令キュ一部(2)から
命令実行部(3)に入力される命令コード、αaVi、
aVi、デコード 命令アドレス、(14)は分岐予測結果を示す分岐予測
信号、(15は分岐予測信号(141にしたがって分岐
先アドレスを生成するために必要なアドレス、叫は分岐
予測結果にしたがって命令デコード部から命令フェッチ
部に出力される先行分岐信号、卸は現在実行中の命令ア
ドレス、cnFi命令キュー、ノハフエツチすべき命令
アドレスを示すブリフェッチアドレスレジスタである。
従来の命令のパイプライン処理を行うデータ処理装置で
は命令実行部(4)において命令1を実行中、命令デコ
ード部(3)では次に実行すべき命令2をデコードし、
命令1の実行が終了し次第次の命令2を実行する。ブら
に、命令フェッチ部(2)において、命令1及び2の各
処理中にバスの空き時間を利用して、主記憶から次の命
令デコードに必要な命令コードのプリフェッチを行い命
令キュー(2υに格納する。一般に、データ処理装置に
かいては処理を行う命令は主記憶よりフェッチされる。
は命令実行部(4)において命令1を実行中、命令デコ
ード部(3)では次に実行すべき命令2をデコードし、
命令1の実行が終了し次第次の命令2を実行する。ブら
に、命令フェッチ部(2)において、命令1及び2の各
処理中にバスの空き時間を利用して、主記憶から次の命
令デコードに必要な命令コードのプリフェッチを行い命
令キュー(2υに格納する。一般に、データ処理装置に
かいては処理を行う命令は主記憶よりフェッチされる。
上記m’tアクセスする時間はデータ処理装置内部でデ
ータをアクセスする時間に比べて非常に長い。そこで、
バスの空き時間を利用して命令をプリフェッチし命令キ
ューに格納してかくことによって、命令フェッチによる
待ち時間を改善している。このように、命令をパイプラ
イン処理することによって命令の処理を高速化している
。命令をパイプライン処理するデータ処理装置では、命
令実行部(4)にかいて分岐命令が実行され分岐が起き
た場合、命令の実行を分岐先のアドレスに切り替える必
要があり、現在行われているデコード処理(分岐命令の
次の命令)、命令のプリフェッチおよび命令キューc!
1に格納されている命令コードを無効化してパイプライ
ン処理をキャンセルし、分岐先アドレスに従って新たに
命令フェッチからやシ直す。
ータをアクセスする時間に比べて非常に長い。そこで、
バスの空き時間を利用して命令をプリフェッチし命令キ
ューに格納してかくことによって、命令フェッチによる
待ち時間を改善している。このように、命令をパイプラ
イン処理することによって命令の処理を高速化している
。命令をパイプライン処理するデータ処理装置では、命
令実行部(4)にかいて分岐命令が実行され分岐が起き
た場合、命令の実行を分岐先のアドレスに切り替える必
要があり、現在行われているデコード処理(分岐命令の
次の命令)、命令のプリフェッチおよび命令キューc!
1に格納されている命令コードを無効化してパイプライ
ン処理をキャンセルし、分岐先アドレスに従って新たに
命令フェッチからやシ直す。
そのため、既に行った命令フェッチおよびデコードは無
駄になり、新たな命令フェッチおよびデコードが終了す
るまで命令の実行が中断されパイプライン処理の効率が
落ちる。さらに、分岐先の命令は分岐の実行後に主記憶
からフェッチしなければならないため命令フェッチによ
る待ち時間が生じる。そこで、分岐先の命令フェッチを
高速化するため、分岐先の命令を命令キャッシュ(1)
に登録しておき次回その命令が実行てれる場合の命令フ
ェッチを高速化している。
駄になり、新たな命令フェッチおよびデコードが終了す
るまで命令の実行が中断されパイプライン処理の効率が
落ちる。さらに、分岐先の命令は分岐の実行後に主記憶
からフェッチしなければならないため命令フェッチによ
る待ち時間が生じる。そこで、分岐先の命令フェッチを
高速化するため、分岐先の命令を命令キャッシュ(1)
に登録しておき次回その命令が実行てれる場合の命令フ
ェッチを高速化している。
さらに、分岐命令の実行時のパイプライン処理の効率を
高めるため、命令デコード段階で分岐予測による先行分
岐処理を行っている。分岐予測は分岐予測部(5)にそ
の分岐命令が過去に実行でれた際に分岐したかどうかを
示す分岐履歴を保持してかき、その分岐履歴に基づいて
現在デコード中の分岐命令が実行とれた際に実際に分岐
するかどうかを予測することである。分岐すると予測さ
れる場合には命令フェッチを分岐先の命令に切シ替える
。分岐先の命令列への折シ替えは、デコード部から出力
される先行分岐信号に従って、命令フェッチをキャンセ
ルし命令キューQ9に格納されている命令コードαυを
クリアし、分岐先アドレス生成回路(6)によって生F
li、”gれる分岐先アドレスにしたがって分岐先の命
令をフェッチすることによυ行う。このとき、命令実行
部(4)では分岐命令の前の命令を実行中である。命令
実行部(4)にかいてその分岐命令が実行ゼれ実際に分
岐が起きた場合、既にデコード段階で命令処理の流れは
分岐先の命令に続く命令列に切す替えられているため、
次に実行すべき分岐先の命令は主記憶よりフェッチされ
デコードされてすぐに実行可能となっている司能性が高
く、先行分岐処理を行わずに命令実行部(4)で分岐処
理を行った場合に比べ命令の処理効率を向上させている
。
高めるため、命令デコード段階で分岐予測による先行分
岐処理を行っている。分岐予測は分岐予測部(5)にそ
の分岐命令が過去に実行でれた際に分岐したかどうかを
示す分岐履歴を保持してかき、その分岐履歴に基づいて
現在デコード中の分岐命令が実行とれた際に実際に分岐
するかどうかを予測することである。分岐すると予測さ
れる場合には命令フェッチを分岐先の命令に切シ替える
。分岐先の命令列への折シ替えは、デコード部から出力
される先行分岐信号に従って、命令フェッチをキャンセ
ルし命令キューQ9に格納されている命令コードαυを
クリアし、分岐先アドレス生成回路(6)によって生F
li、”gれる分岐先アドレスにしたがって分岐先の命
令をフェッチすることによυ行う。このとき、命令実行
部(4)では分岐命令の前の命令を実行中である。命令
実行部(4)にかいてその分岐命令が実行ゼれ実際に分
岐が起きた場合、既にデコード段階で命令処理の流れは
分岐先の命令に続く命令列に切す替えられているため、
次に実行すべき分岐先の命令は主記憶よりフェッチされ
デコードされてすぐに実行可能となっている司能性が高
く、先行分岐処理を行わずに命令実行部(4)で分岐処
理を行った場合に比べ命令の処理効率を向上させている
。
従来のデータ処理装置は以上のように構成されていたの
で、その処理を高速化する手法を数多く取シ入れている
が、分岐予測結果に基づき先行分岐処理を行った場合、
必ずしもその分岐予測が当たるとは限らず、命令実行部
にかいてその分岐命令が実行されたとき分岐しなかった
とすると分岐予測は外れたことになり、実行されるべき
命令列を分岐命令の次の命令に続く命令列に戻でなけれ
ばならない。従って、パイプライン処理をキャンセルし
、分岐命令の次の命令のアドレスから命令フェッチをや
り直す必要がある。分岐予測が外れた場合、分岐命令の
次の命令は命令キャッシュには登録でれていないため主
記憶から再度フェッチしなければならず命令フェッチに
待ち時間が生じまた、先行分岐した命令がサブルーチン
呼び出し命令の場合、この命令の次の命令はサブルーチ
ンリターン命令が実行された後必ず実行とれるがこの命
令コードも命令キュツシュには登録されていないため、
主記憶から再度フェッチしなければならず命令フェッチ
に待ち時間が生じるなどの問題点を有していた。
で、その処理を高速化する手法を数多く取シ入れている
が、分岐予測結果に基づき先行分岐処理を行った場合、
必ずしもその分岐予測が当たるとは限らず、命令実行部
にかいてその分岐命令が実行されたとき分岐しなかった
とすると分岐予測は外れたことになり、実行されるべき
命令列を分岐命令の次の命令に続く命令列に戻でなけれ
ばならない。従って、パイプライン処理をキャンセルし
、分岐命令の次の命令のアドレスから命令フェッチをや
り直す必要がある。分岐予測が外れた場合、分岐命令の
次の命令は命令キャッシュには登録でれていないため主
記憶から再度フェッチしなければならず命令フェッチに
待ち時間が生じまた、先行分岐した命令がサブルーチン
呼び出し命令の場合、この命令の次の命令はサブルーチ
ンリターン命令が実行された後必ず実行とれるがこの命
令コードも命令キュツシュには登録されていないため、
主記憶から再度フェッチしなければならず命令フェッチ
に待ち時間が生じるなどの問題点を有していた。
本発明は上記のような問題点を解決するためになされた
もので、分岐予測による先行分岐処理が外れた場合やサ
ブルーチンリターン命令が実行でれた場合においても実
行すべき命令のフェッチを高速化する手段を提供するこ
とにある。
もので、分岐予測による先行分岐処理が外れた場合やサ
ブルーチンリターン命令が実行でれた場合においても実
行すべき命令のフェッチを高速化する手段を提供するこ
とにある。
この発明に係るデータ処理装置は先行分岐処理時にかい
て既にフェッチされ命令キューに格納てれている分岐命
令に引き続く命令コードを命令キャッシュに登録する手
段を持つようにしたものである。
て既にフェッチされ命令キューに格納てれている分岐命
令に引き続く命令コードを命令キャッシュに登録する手
段を持つようにしたものである。
この発明におけるデータ処理装置は分岐予測が失敗した
場合にかいても実行すべき命令コードが命令キャッシュ
に登録されているので、主記憶を再度アクセスすること
なく高速に命令フェッチを実行でき命令の処理を高速化
できる。
場合にかいても実行すべき命令コードが命令キャッシュ
に登録されているので、主記憶を再度アクセスすること
なく高速に命令フェッチを実行でき命令の処理を高速化
できる。
以下、この発明のデータ処理装置の一実施例を図につい
て説明する。先ず、この発明のデータ処理装置にかける
分岐命令について説明する。分岐命令は分岐条件がスタ
ティックかダイナミックか及び分岐先がスタティックか
ダイナミックかによう計4種類に分類できる。この発明
のデータ処理装置ではこのうち次の2種類の分岐命令に
ついて先行分岐処理を行う。第1の種類の分岐命令は分
岐条件、分岐先ともスタティックな命令である。
て説明する。先ず、この発明のデータ処理装置にかける
分岐命令について説明する。分岐命令は分岐条件がスタ
ティックかダイナミックか及び分岐先がスタティックか
ダイナミックかによう計4種類に分類できる。この発明
のデータ処理装置ではこのうち次の2種類の分岐命令に
ついて先行分岐処理を行う。第1の種類の分岐命令は分
岐条件、分岐先ともスタティックな命令である。
この種の命令には無条件分岐命令(BRA)とサブルー
チン呼び出し命令(88R)がある。第2の種類の分岐
命令は分岐条件がダイナミックで分岐先がスタティック
な命令で、この種の命令には条件分岐命令(Bee)が
ある。
チン呼び出し命令(88R)がある。第2の種類の分岐
命令は分岐条件がダイナミックで分岐先がスタティック
な命令で、この種の命令には条件分岐命令(Bee)が
ある。
第1図はこの発明の一実施例であるデータ処理装置を示
すブロック図である。図において、(1)は分岐先の命
令を選択的に登録する64エン) IJの命令キャッシ
ュ、(2)は命令フェッチ部、(3)は命令デコード部
、(4)は命令実行部、(6)は分岐予測部、+6)は
分岐先アドレス生成回路、(γ)はデータバス、(3)
はアドレスバス、(9)は命令実行部(4)または分岐
先アドレス生成回路(6)で生成ぢれる分岐先アドレス
、叫は命令キャッシュ(1)からフェッチされる命令、
QDId命令キュ一部から命令実行部(4)に入力され
る命令コード、(jututデコ−ド測処理を行うため
のデコード命令アドレス、 (141は分岐予測結果を
示す分岐予測信号、a51d分岐予測信号(1,4)に
したがって分岐先アドレスを生成するために必要なアド
レス、ooは先行分岐処理を行う場合に命令デコード部
から命令フェッチ部に出力される先行分岐信号、αDは
現在実行中の命令アドレス、關はデコード部(3)にお
いて分岐命令のデコード結果に基づさ分岐命令の次の命
令データを命令キュッシュ(1)に登録することを要求
する命令登録要求信号、09は命令キューに格納された
命令コードを命令キャッシュ(1)に登録するための命
令バス、 CI!11は命令キュー、]ワはフェッチす
べき命令のアドレスを示すブリフェッチアドレスレジス
タ、のは命令キュー(211から命令デコード部(3)
に出力される命令コードのアドレスを示すキュー出力ア
ドレスレジスタ、c!4はブリフェッチアドレスレジス
タωまたはキュー出力アドレスレジスタΩのアドレスを
選択するマルチプレクサである。なか、従来のものと同
一符号は同一のものを示す、。
すブロック図である。図において、(1)は分岐先の命
令を選択的に登録する64エン) IJの命令キャッシ
ュ、(2)は命令フェッチ部、(3)は命令デコード部
、(4)は命令実行部、(6)は分岐予測部、+6)は
分岐先アドレス生成回路、(γ)はデータバス、(3)
はアドレスバス、(9)は命令実行部(4)または分岐
先アドレス生成回路(6)で生成ぢれる分岐先アドレス
、叫は命令キャッシュ(1)からフェッチされる命令、
QDId命令キュ一部から命令実行部(4)に入力され
る命令コード、(jututデコ−ド測処理を行うため
のデコード命令アドレス、 (141は分岐予測結果を
示す分岐予測信号、a51d分岐予測信号(1,4)に
したがって分岐先アドレスを生成するために必要なアド
レス、ooは先行分岐処理を行う場合に命令デコード部
から命令フェッチ部に出力される先行分岐信号、αDは
現在実行中の命令アドレス、關はデコード部(3)にお
いて分岐命令のデコード結果に基づさ分岐命令の次の命
令データを命令キュッシュ(1)に登録することを要求
する命令登録要求信号、09は命令キューに格納された
命令コードを命令キャッシュ(1)に登録するための命
令バス、 CI!11は命令キュー、]ワはフェッチす
べき命令のアドレスを示すブリフェッチアドレスレジス
タ、のは命令キュー(211から命令デコード部(3)
に出力される命令コードのアドレスを示すキュー出力ア
ドレスレジスタ、c!4はブリフェッチアドレスレジス
タωまたはキュー出力アドレスレジスタΩのアドレスを
選択するマルチプレクサである。なか、従来のものと同
一符号は同一のものを示す、。
次に動作について説明する。この発明のデータ処理装置
では命令実行部(4)で命令1を実行中、命令デコード
部り3)で命令2をデコードし、同時に命令フェッチ部
(2)で命令フェッチを行い、次のデコードに必要な命
令コードを命令キューCDに格納している。実行される
命令は主記憶または命令キャッシュ(1)ようフェッチ
される。命令フェッチ開始アドレスは命令実行部(4)
から分岐先アドレス(9)を介してブリフエツチアドレ
スレジスタノ及ヒキュー出力レジスタのに転送される。
では命令実行部(4)で命令1を実行中、命令デコード
部り3)で命令2をデコードし、同時に命令フェッチ部
(2)で命令フェッチを行い、次のデコードに必要な命
令コードを命令キューCDに格納している。実行される
命令は主記憶または命令キャッシュ(1)ようフェッチ
される。命令フェッチ開始アドレスは命令実行部(4)
から分岐先アドレス(9)を介してブリフエツチアドレ
スレジスタノ及ヒキュー出力レジスタのに転送される。
命令フェッチ部(2)はブリフェッチアドレスレジスタ
Ωの値をアドレスバス(3)に出力し、主記憶及び命令
キャッシュ(1)をアクセスする。命令キャッシュ(1
)がヒツトすれば主記憶へのアクセスをキャンセルし、
命令キャッシュ(1)から整置された第1の命令コード
1ワード(ここでワードとは命令長を表現するのに適当
な単位である)を読み出し命令キュー(2ワに格納する
。キャッシュミスの時は主記憶からフェッチした命令コ
ードをデータバス(γ)を経由して命令キューI211
に格納する。主記憶のアクセスはバスの空き時間を利用
して行われる。第2の命令フェッチはブリフェッチアド
レスレジスタのに含まれるインクリメンタによって1イ
ンクリメントして第1の命令フェッチと同様にして行う
。命令フェッチ部(2)によってフェッチされた命令コ
ードは、命令キュー(211から命令コードαυを介し
て命令デコード部(3)に渡される。命令キュー!2I
から出力される命令コードのアドレスは、キュー出力ア
ドレスレジスタのによって管理する。キュー出力アドレ
スレジスタツは内部にインクリメンタを持ち出力される
命令コードのアドレスを示す。
Ωの値をアドレスバス(3)に出力し、主記憶及び命令
キャッシュ(1)をアクセスする。命令キャッシュ(1
)がヒツトすれば主記憶へのアクセスをキャンセルし、
命令キャッシュ(1)から整置された第1の命令コード
1ワード(ここでワードとは命令長を表現するのに適当
な単位である)を読み出し命令キュー(2ワに格納する
。キャッシュミスの時は主記憶からフェッチした命令コ
ードをデータバス(γ)を経由して命令キューI211
に格納する。主記憶のアクセスはバスの空き時間を利用
して行われる。第2の命令フェッチはブリフェッチアド
レスレジスタのに含まれるインクリメンタによって1イ
ンクリメントして第1の命令フェッチと同様にして行う
。命令フェッチ部(2)によってフェッチされた命令コ
ードは、命令キュー(211から命令コードαυを介し
て命令デコード部(3)に渡される。命令キュー!2I
から出力される命令コードのアドレスは、キュー出力ア
ドレスレジスタのによって管理する。キュー出力アドレ
スレジスタツは内部にインクリメンタを持ち出力される
命令コードのアドレスを示す。
次に、命令デコード部(3)でデコード中の命令が先行
分岐命令である場合について説明する。第1の種類の分
岐命令(BRA、BSR)はその命令が命令実行部(4
)で実行された場合には必ず分岐する。従って、分岐予
測部(5)の分岐予測信号(141に拘らず先行分岐処
理を行う。第2の種類の分岐命令(BeC。
分岐命令である場合について説明する。第1の種類の分
岐命令(BRA、BSR)はその命令が命令実行部(4
)で実行された場合には必ず分岐する。従って、分岐予
測部(5)の分岐予測信号(141に拘らず先行分岐処
理を行う。第2の種類の分岐命令(BeC。
ACE )は分岐予測部(5)の分岐予測信号(141
に従って先行分岐処理を行う。先行分岐する場合、命令
デコード部(3)は分岐先アドレス生成回路(6)に対
し、分岐先アドレスを計算するために必要な情報を与え
、分岐先アドレス金生戊する。また、先行分岐信号αG
を発生させ、命令フェッチ部(2)に対して先行分岐が
発生したことを示す。さらに、先行分岐命令のデコード
結果に基づいて、命令登録要求信号(181を発生させ
る。命令のデコード結果、その分岐命令がBSHの場合
には必ずその分岐命令の次の命令が実行され、また、B
cc 、 ACBの場合には先行分岐処理が間違ってい
る可能性があるため、命令登録要求信号間を発生させ、
分岐命令の次の命令を命令キャッシュ(1)に登録する
ように命令フェッチ部(2)に要求を出す。命令フェッ
チ部(2)は先行分岐命令がデコードされている間にも
、ブリフェッチアドレスレジスタのを更新しつつ次の命
令フェッチを続行して)blその先行分岐命令の次の命
令コードは命令キューQ1)に格納されキューの先頭に
あう、そのアドレスキュー出力アドレスレジスタのに保
持されている。命令フェッチ部(2〉では先行分岐信号
aeが発生し、かつ命令登録要求信号α&が発生したら
、マルチプレクサ(2)を切す替えてキュー出力アドレ
スレジスタΩの値をアドレスバスに出力し、命令キュー
から経路(19に1ワード出力し、このアドレス及び命
令コードを命令キャッシュ(1)に登録する。その後、
命令キュー(2υをクリアし、分岐先アドレスを分岐先
アドレス(9)を介して分岐先アドレス生成回路(6)
からブリフェッチアドレスレジスタの及びキュー出力ア
ドレスレジスタのにロードし、分岐先の命令に続く命令
コードの7エツチを開始する。
に従って先行分岐処理を行う。先行分岐する場合、命令
デコード部(3)は分岐先アドレス生成回路(6)に対
し、分岐先アドレスを計算するために必要な情報を与え
、分岐先アドレス金生戊する。また、先行分岐信号αG
を発生させ、命令フェッチ部(2)に対して先行分岐が
発生したことを示す。さらに、先行分岐命令のデコード
結果に基づいて、命令登録要求信号(181を発生させ
る。命令のデコード結果、その分岐命令がBSHの場合
には必ずその分岐命令の次の命令が実行され、また、B
cc 、 ACBの場合には先行分岐処理が間違ってい
る可能性があるため、命令登録要求信号間を発生させ、
分岐命令の次の命令を命令キャッシュ(1)に登録する
ように命令フェッチ部(2)に要求を出す。命令フェッ
チ部(2)は先行分岐命令がデコードされている間にも
、ブリフェッチアドレスレジスタのを更新しつつ次の命
令フェッチを続行して)blその先行分岐命令の次の命
令コードは命令キューQ1)に格納されキューの先頭に
あう、そのアドレスキュー出力アドレスレジスタのに保
持されている。命令フェッチ部(2〉では先行分岐信号
aeが発生し、かつ命令登録要求信号α&が発生したら
、マルチプレクサ(2)を切す替えてキュー出力アドレ
スレジスタΩの値をアドレスバスに出力し、命令キュー
から経路(19に1ワード出力し、このアドレス及び命
令コードを命令キャッシュ(1)に登録する。その後、
命令キュー(2υをクリアし、分岐先アドレスを分岐先
アドレス(9)を介して分岐先アドレス生成回路(6)
からブリフェッチアドレスレジスタの及びキュー出力ア
ドレスレジスタのにロードし、分岐先の命令に続く命令
コードの7エツチを開始する。
次に、この分岐命令が命令実行部(4)で実行され分岐
しなかった場合、即ち、分岐予測が間違っていた場合に
は、パイプライン処理をキャンセルし、分岐命令の次の
命令のアドレスから命令フェッチをやb直す必要がある
。命令フェッチ部(2)は命令実行部(4)から分岐命
令の次のアドレスを分岐先アドレス(9)を介してブリ
フェッチアドレスレジスタの及びキュー出力アドレスレ
ジスタのにロードし命令フェッチを開始する。命令フェ
ッチ部(2)はブリフェッチアドレスレジスタのの値を
アドレスバス(3)に出力し、命令キャッシュ(1)及
び主記憶をアクセスする。この分岐命令の次のアドレス
の命令コードは先行分岐処理を行ったときに、命令キャ
ッシュ(1ンに登録されておルキャッシュヒットする。
しなかった場合、即ち、分岐予測が間違っていた場合に
は、パイプライン処理をキャンセルし、分岐命令の次の
命令のアドレスから命令フェッチをやb直す必要がある
。命令フェッチ部(2)は命令実行部(4)から分岐命
令の次のアドレスを分岐先アドレス(9)を介してブリ
フェッチアドレスレジスタの及びキュー出力アドレスレ
ジスタのにロードし命令フェッチを開始する。命令フェ
ッチ部(2)はブリフェッチアドレスレジスタのの値を
アドレスバス(3)に出力し、命令キャッシュ(1)及
び主記憶をアクセスする。この分岐命令の次のアドレス
の命令コードは先行分岐処理を行ったときに、命令キャ
ッシュ(1ンに登録されておルキャッシュヒットする。
従って、命令フェッチ部(2)は主記憶へのアクセスを
キャンセルし、命令キャッシュ(1)から命令コードを
獲得し命令キュー+211に格納する。
キャンセルし、命令キャッシュ(1)から命令コードを
獲得し命令キュー+211に格納する。
命令要求登録信号αaが出力されずに先行分岐信号のみ
出力された場合には、命令キャッシュ(1)への登録は
行わずに先行分岐処理のみ行って分岐先の命令フェッチ
を開始する。
出力された場合には、命令キャッシュ(1)への登録は
行わずに先行分岐処理のみ行って分岐先の命令フェッチ
を開始する。
次にこの発明の他の実施例について説明する。
第2図はこの発明の他の実施例を示すブロック図であ、
?n(31)はサブルーチン呼び出し命令の次のアドレ
スの命令コード、即ち戻り先の命令コードを登録するた
めの8エン)IJの戻り先命令キャッシュ、(32)は
先行分岐処理の際に先行分岐命令の種類によって出力さ
れる先行分岐コードである。
?n(31)はサブルーチン呼び出し命令の次のアドレ
スの命令コード、即ち戻り先の命令コードを登録するた
めの8エン)IJの戻り先命令キャッシュ、(32)は
先行分岐処理の際に先行分岐命令の種類によって出力さ
れる先行分岐コードである。
なか、他の符号は上記実施例と同一につき説明を省略す
る。
る。
次に、先行分岐命令処理時の動作を説明する。
先行分岐命令がデコードされ先行分岐処理をする場合、
先行分岐コード(32)は2ビツトで表現され先行分岐
命令のデコード結果に基づいて次のように出力される。
先行分岐コード(32)は2ビツトで表現され先行分岐
命令のデコード結果に基づいて次のように出力される。
OO:先行分岐処理無し
Ol:先行分岐のみ(命令キャッシュへの登録無し)
(BRA) 10:分岐予測結果に基づく先行分岐(命令キャッシュ
へ登録) (BcC,ACB)11:サブルーチン先行
分岐(戻シ先命令キャッシュへ登録) (BSR) 先行分岐コード(32)が11以外の時は上記実施例の
動作に対応して同様に動作する。先行分岐コード(32
)が11の時は分岐先の命令を登録する命令キャッシュ
(1)をディスエーブルし、戻り先命令キャッシュ(3
1)をイネーブルにして、キュー出力レジスタの値をマ
ルチプレクサ(241を介してアドレスバス(3)に出
力し、命令キューの先頭に格納されている1ワードを戻
り先命令キャッシュ(31)に登録する。戻シ先命令キ
ャッシュ(31)の登録方式をフルアンシアテイブとす
ることによって8回のリターン命令実行に対して有効で
ある。
(BRA) 10:分岐予測結果に基づく先行分岐(命令キャッシュ
へ登録) (BcC,ACB)11:サブルーチン先行
分岐(戻シ先命令キャッシュへ登録) (BSR) 先行分岐コード(32)が11以外の時は上記実施例の
動作に対応して同様に動作する。先行分岐コード(32
)が11の時は分岐先の命令を登録する命令キャッシュ
(1)をディスエーブルし、戻り先命令キャッシュ(3
1)をイネーブルにして、キュー出力レジスタの値をマ
ルチプレクサ(241を介してアドレスバス(3)に出
力し、命令キューの先頭に格納されている1ワードを戻
り先命令キャッシュ(31)に登録する。戻シ先命令キ
ャッシュ(31)の登録方式をフルアンシアテイブとす
ることによって8回のリターン命令実行に対して有効で
ある。
サブルーチンリターン命令が実行された場合、命令実行
部(4)から戻り先のアドレスが、ブリフェッチアドレ
スレジスタの及びキュー出かレジスタのに伝送される。
部(4)から戻り先のアドレスが、ブリフェッチアドレ
スレジスタの及びキュー出かレジスタのに伝送される。
命令フェッチ部(2)はブリフェッチアドレスレジスタ
c!aの値をアドレスバス(3)に出力し、命令キャッ
シュ(1)、戻り先命令キャッシュ(31)及び主記憶
をアクセスする。命令キャッシュ(1)、戻り先命令キ
ャッシュ(31)のどちらかがヒラ) した場合n、主
記憶へのアクセスをキャンセルして、ヒツトした方の命
令キャッシュから命令コードを読み出し、命令キュー(
211へ格納する。
c!aの値をアドレスバス(3)に出力し、命令キャッ
シュ(1)、戻り先命令キャッシュ(31)及び主記憶
をアクセスする。命令キャッシュ(1)、戻り先命令キ
ャッシュ(31)のどちらかがヒラ) した場合n、主
記憶へのアクセスをキャンセルして、ヒツトした方の命
令キャッシュから命令コードを読み出し、命令キュー(
211へ格納する。
次にこの発明のもう1つの他の実施例について説明する
。第3図はこの発明のもう1つの他の実施例を示すデー
タ処理装置のブロック図である。
。第3図はこの発明のもう1つの他の実施例を示すデー
タ処理装置のブロック図である。
なか第1図の上記実施例と同一符号は同一のものを示す
ので説明を省略する。図において、第1図と同様に分岐
命令がデコードされ先行分岐を行う場合、命令フェッチ
部(2)では先行分岐信号ab+の発生に従って、全て
の先行分岐処理に対してマルチプレクサc!41を切り
替えて、キュー出力アドレスレジスタのの値をアドレス
バス(3)に出力し、命令キューQDから命令バス(l
lJに1ワード出力し、このアドレス及び命令コードを
命令キャッシュ(1)に登録する。その後、命令キュー
I2i+tクリアし、分岐先アドレス(9)を介して分
岐先アドレス生成回路(6)からブリフェッチアドレス
レジスタの及びキュー出力レジスタのにロードし、分岐
先の命令に続く命令コードのフェッチをM始j;E:、
。
ので説明を省略する。図において、第1図と同様に分岐
命令がデコードされ先行分岐を行う場合、命令フェッチ
部(2)では先行分岐信号ab+の発生に従って、全て
の先行分岐処理に対してマルチプレクサc!41を切り
替えて、キュー出力アドレスレジスタのの値をアドレス
バス(3)に出力し、命令キューQDから命令バス(l
lJに1ワード出力し、このアドレス及び命令コードを
命令キャッシュ(1)に登録する。その後、命令キュー
I2i+tクリアし、分岐先アドレス(9)を介して分
岐先アドレス生成回路(6)からブリフェッチアドレス
レジスタの及びキュー出力レジスタのにロードし、分岐
先の命令に続く命令コードのフェッチをM始j;E:、
。
以上のようにこの発明によれば、先行分岐処理を行った
とき分岐命令の檎類に応じて命令登録要求信号を発生さ
せ、キュー出力アドレスレジスタを持って命令キューに
格納でれている分岐命令の次のアドレスの命令コードを
命令キャッシュに登録して釦くので、分岐予測が失敗し
た場合やサブルーチンリターン命令が実行された場合に
も、高速に命令フェッチを行うことが可能でデータ処理
装置の性能が向上する。
とき分岐命令の檎類に応じて命令登録要求信号を発生さ
せ、キュー出力アドレスレジスタを持って命令キューに
格納でれている分岐命令の次のアドレスの命令コードを
命令キャッシュに登録して釦くので、分岐予測が失敗し
た場合やサブルーチンリターン命令が実行された場合に
も、高速に命令フェッチを行うことが可能でデータ処理
装置の性能が向上する。
また、サブルーチン呼び出し命令の次のアドレスの命令
コード、即ち、サブルーチン戻り先アドレスの命令コー
ドを専用の命令キャッシュを持つてこれに登録してかく
ことによってサブルーチンリターン命令実行時の命令フ
ェッチを高速化できデータ処理装置の性能が向上する。
コード、即ち、サブルーチン戻り先アドレスの命令コー
ドを専用の命令キャッシュを持つてこれに登録してかく
ことによってサブルーチンリターン命令実行時の命令フ
ェッチを高速化できデータ処理装置の性能が向上する。
さらに、先行分岐信号だけに従って分岐命令の次のアド
レスの命令コードを命令キャッシュに登録することによ
って少ない付加回路でデータ処理装置の性能を向上させ
ることが可能である。
レスの命令コードを命令キャッシュに登録することによ
って少ない付加回路でデータ処理装置の性能を向上させ
ることが可能である。
第1図はこの発明の一実施例を示すデータ処理装置のブ
ロック図、第2図はこの発明の他の実施例を示すデータ
処理装置のブロック図、第3図はこの発明のもう1つの
他の実施例を示すデータ処理装置のブロック図、第4図
は従来のデータ処理装置のブロック図である。 図において、(1)・・・命令キャッシュ、(2)・・
・命令フェッチ部、(3)・・・命令デコード部、(4
)・・・命令実行部、(6)・・・分岐予11!1g、
(6)・・・分岐先アドレス生成回路、(γ)・・・デ
ータバス、(3)・・・アドレスバス、(9)・・・ア
ドレス経路、叫・・・命令経路、αす・・・経路、a’
b・・・経路、0・・・デコード命令アドレス、a4・
・・分岐予測信号、a9・・アドレス、αθ・・・先行
分岐信号、C1?)・・・実行中アドレス、α訃・・命
令登録要求信号、αI・・命令バス、C211・・・命
令キュー、Ω・・・ブリフェッチアドレスレジスタ、c
q・・・キュー出力アドレスレジスタ、C24+−1,
マルチプレクサ、(31)・・・ib先命令キャッシュ
、(32)・・先行分岐コード。 な会、図中、同一符号は同一 または相当部分を示す。
ロック図、第2図はこの発明の他の実施例を示すデータ
処理装置のブロック図、第3図はこの発明のもう1つの
他の実施例を示すデータ処理装置のブロック図、第4図
は従来のデータ処理装置のブロック図である。 図において、(1)・・・命令キャッシュ、(2)・・
・命令フェッチ部、(3)・・・命令デコード部、(4
)・・・命令実行部、(6)・・・分岐予11!1g、
(6)・・・分岐先アドレス生成回路、(γ)・・・デ
ータバス、(3)・・・アドレスバス、(9)・・・ア
ドレス経路、叫・・・命令経路、αす・・・経路、a’
b・・・経路、0・・・デコード命令アドレス、a4・
・・分岐予測信号、a9・・アドレス、αθ・・・先行
分岐信号、C1?)・・・実行中アドレス、α訃・・命
令登録要求信号、αI・・命令バス、C211・・・命
令キュー、Ω・・・ブリフェッチアドレスレジスタ、c
q・・・キュー出力アドレスレジスタ、C24+−1,
マルチプレクサ、(31)・・・ib先命令キャッシュ
、(32)・・先行分岐コード。 な会、図中、同一符号は同一 または相当部分を示す。
Claims (3)
- (1)分岐先の命令を選択的に記憶する第1の記憶手段
と、命令先取り手段と、先取りした命令を一時格納する
先入れ先出し型の第2の記憶手段と、前記先入れ先出し
型第2の記憶手段への入力命令のアドレス管理手段と、
命令デコード手段と、分岐予測手段と、分岐先アドレス
計算手段と、命令実行手段を備えたデータ処理装置にお
いて、前記先入れ先出し型第2の記憶手段からの出力命
令のアドレス管理手段を以つて、前記命令デコード手段
から出力される先行分岐信号手段及び命令登録要求信号
手段に従つて前記命令先入れ先出し型第2の記憶手段に
格納された命令コードを前記分岐先の命令を選択的に記
憶する第1の記憶手段に記憶することを特徴とするデー
タ処理装置。 - (2)分岐先の命令を選択的に記憶する第1の記憶手段
と、命令先取り手段と、先取りした命令を一時格納する
先入れ先出し型の第2の記憶手段と、前記先入れ先出し
型第2の記憶手段への入力命令のアドレス管理手段と、
命令デコード手段と、分岐予測手段と、分岐先アドレス
計算手段と、命令実行手段を備えたデータ処理装置にお
いて、前記先入れ先出し型第2の記憶手段からの出力命
令のアドレス管理手段を持ち、さらにサブルーチンから
の戻り先の命令を記憶する第3の記憶手段を以つて、前
記命令デコード手段から出力される先行分岐コード手段
に従つて前記命令先入れ先出し型第2の記憶手段に格納
された命令コードを前記分岐先の命令を選択的に記憶す
る第1の記憶手段または第3の記憶手段に記憶すること
を特徴とするデータ処理装置。 - (3)分岐先の命令を選択的に記憶する第1の記憶手段
と、命令先取り手段と、先取りした命令を一時格納する
先入れ先出し型の第2の記憶手段と、前記先入れ先出し
型第2の記憶手段への入力命令のアドレス管理手段と、
命令デコード手段と、分岐予測手段と、分岐先アドレス
計算手段と、命令実行手段を備えたデータ処理装置にお
いて、前記先入れ先出し型第2の記憶手段からの出力命
令のアドレス管理を以つて、前記命令デコード手段から
出力される先行分岐信号手段に従つて前記命令先入れ先
出し型第2の記憶手段に格納された命令コードを前記分
岐先の命令を選択的に記憶する第1の記憶手段に記憶す
ることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16781689A JPH0331933A (ja) | 1989-06-28 | 1989-06-28 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16781689A JPH0331933A (ja) | 1989-06-28 | 1989-06-28 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0331933A true JPH0331933A (ja) | 1991-02-12 |
Family
ID=15856632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16781689A Pending JPH0331933A (ja) | 1989-06-28 | 1989-06-28 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0331933A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0281085A (ja) * | 1988-09-19 | 1990-03-22 | Nippon Raito Service Kk | 記憶効果促進装置 |
JPH06187151A (ja) * | 1992-10-09 | 1994-07-08 | Internatl Business Mach Corp <Ibm> | パイプライン・プロセッサの条件付き分岐命令実行におけるランタイム遅延の縮小方法及びシステム |
JP2016119120A (ja) * | 2011-05-20 | 2016-06-30 | 株式会社半導体エネルギー研究所 | 半導体装置及びその駆動方法 |
DE112021002974T5 (de) | 2020-05-26 | 2023-03-09 | Thk Co., Ltd. | Führungsvorrichtung und Führungsstruktur |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63172343A (ja) * | 1987-01-12 | 1988-07-16 | Hitachi Ltd | 命令先取り方式 |
JPH01106141A (ja) * | 1987-10-19 | 1989-04-24 | Mitsubishi Electric Corp | データ処理装置 |
-
1989
- 1989-06-28 JP JP16781689A patent/JPH0331933A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63172343A (ja) * | 1987-01-12 | 1988-07-16 | Hitachi Ltd | 命令先取り方式 |
JPH01106141A (ja) * | 1987-10-19 | 1989-04-24 | Mitsubishi Electric Corp | データ処理装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0281085A (ja) * | 1988-09-19 | 1990-03-22 | Nippon Raito Service Kk | 記憶効果促進装置 |
JPH06187151A (ja) * | 1992-10-09 | 1994-07-08 | Internatl Business Mach Corp <Ibm> | パイプライン・プロセッサの条件付き分岐命令実行におけるランタイム遅延の縮小方法及びシステム |
JP2016119120A (ja) * | 2011-05-20 | 2016-06-30 | 株式会社半導体エネルギー研究所 | 半導体装置及びその駆動方法 |
DE112021002974T5 (de) | 2020-05-26 | 2023-03-09 | Thk Co., Ltd. | Führungsvorrichtung und Führungsstruktur |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2603626B2 (ja) | データ処理装置 | |
JP2815237B2 (ja) | 計算機システム内部で命令を処理する装置 | |
JP3599409B2 (ja) | 分岐予測装置 | |
US9361110B2 (en) | Cache-based pipline control method and system with non-prediction branch processing using a track table containing program information from both paths of a branch instruction | |
JPH03147022A (ja) | 分岐命令処理装置および処理方法 | |
JP2002525741A (ja) | 間接分岐ターゲットを計算するための方法 | |
JP3182438B2 (ja) | データプロセッサ | |
JPH10124315A (ja) | 分岐処理方法およびそのための情報処理装置 | |
US5889986A (en) | Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer | |
JPH01214932A (ja) | データ処理装置 | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
JP2002527798A (ja) | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム | |
EP1413953A2 (en) | Instruction prefetch method and apparatus for conditional branch instructions | |
JPH02287626A (ja) | パイプライン方式の分岐命令制御装置 | |
JP3345787B2 (ja) | データ処理装置 | |
JPH0331933A (ja) | データ処理装置 | |
US11586444B2 (en) | Processor and pipeline processing method for processing multiple threads including wait instruction processing | |
KR19990003937A (ko) | 프리페치 장치 | |
US20050144427A1 (en) | Processor including branch prediction mechanism for far jump and far call instructions | |
JP3394854B2 (ja) | 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ | |
JP2001022577A (ja) | 情報処理装置 | |
JPH0588891A (ja) | キヤツシユメモリ制御装置 | |
JP3325309B2 (ja) | サブルーチンリターン命令処理装置 | |
JPH02144626A (ja) | マイクロプロセッサ | |
JP2928879B2 (ja) | データ処理装置 |