JPH05173785A - 命令先取り装置 - Google Patents
命令先取り装置Info
- Publication number
- JPH05173785A JPH05173785A JP35703191A JP35703191A JPH05173785A JP H05173785 A JPH05173785 A JP H05173785A JP 35703191 A JP35703191 A JP 35703191A JP 35703191 A JP35703191 A JP 35703191A JP H05173785 A JPH05173785 A JP H05173785A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- nogo
- word
- prediction
- 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
- 108010077641 Nogo Proteins Proteins 0.000 claims abstract description 72
- 102000010410 Nogo Proteins Human genes 0.000 claims description 68
- 230000010365 information processing Effects 0.000 claims description 6
- 102100029831 Reticulon-4 Human genes 0.000 abstract 4
- 230000006870 function Effects 0.000 description 16
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 パイプライン方式の情報処理装置における命
令先取り方式において、分岐Go予測失敗時の分岐命令
実行の高速化を図ると共に、メモリ索引効率を向上させ
て命令供給能力の向上を図る。 【構成】 分岐Go予測ワードに連続する分岐NoGo
ワードを、捨てることなくレジスタ18に格納する。分
岐Go予測失敗時に、このレジスタ18の分岐NoGo
ワードを次ステージ(命令解読ステージ)へ供給するこ
とにより、分岐Go予測失敗時の分岐命令の実行を高速
化できると共に、メモリ索引のやり直しをすることがな
いので、メモリ索引効率も向上する。
令先取り方式において、分岐Go予測失敗時の分岐命令
実行の高速化を図ると共に、メモリ索引効率を向上させ
て命令供給能力の向上を図る。 【構成】 分岐Go予測ワードに連続する分岐NoGo
ワードを、捨てることなくレジスタ18に格納する。分
岐Go予測失敗時に、このレジスタ18の分岐NoGo
ワードを次ステージ(命令解読ステージ)へ供給するこ
とにより、分岐Go予測失敗時の分岐命令の実行を高速
化できると共に、メモリ索引のやり直しをすることがな
いので、メモリ索引効率も向上する。
Description
【0001】
【技術分野】本発明は命令先取り装置に関し、特に分岐
予測手段を用いて命令先取りを行うパイプライン処理方
式を採用した情報処理装置の命令先取り方式に関する。
予測手段を用いて命令先取りを行うパイプライン処理方
式を採用した情報処理装置の命令先取り方式に関する。
【0002】
【従来技術】従来、この種の分岐予測手段による命令先
取り機能を有するパイプライン処理方式の情報処理装置
では、分岐予測テーブル等による分岐予測手段によっ
て、命令の先取りを行い、結果的に分岐命令を高速に実
行するようになっている。
取り機能を有するパイプライン処理方式の情報処理装置
では、分岐予測テーブル等による分岐予測手段によっ
て、命令の先取りを行い、結果的に分岐命令を高速に実
行するようになっている。
【0003】この様な方式は、特公昭50−22384
号公報,特開昭55−99655号公報,特開昭57−
59253号公報等において提案されており、既にいく
つかの情報処理装置で実施されている。
号公報,特開昭55−99655号公報,特開昭57−
59253号公報等において提案されており、既にいく
つかの情報処理装置で実施されている。
【0004】これ等の方式では、分岐命令について、そ
の実行の度に実行結果の履歴を保持しておき、次にその
分岐命令が実行されようとするときには、その履歴情報
(分岐成立/不成立,分岐先アドレス)を反映させて、
命令先取りを効果的に実行するようになっている。
の実行の度に実行結果の履歴を保持しておき、次にその
分岐命令が実行されようとするときには、その履歴情報
(分岐成立/不成立,分岐先アドレス)を反映させて、
命令先取りを効果的に実行するようになっている。
【0005】すなわち、この様な方式では、命令先取り
の予測が適中する限りにおいては、分岐命令を高速に実
行できる効果がある。
の予測が適中する限りにおいては、分岐命令を高速に実
行できる効果がある。
【0006】一般にパイプライン制御方式による情報処
理装置は、命令の実行フェーズを以下に述べる各ステー
ジに分割し、その各ステージの機能を果すためのハード
ウェアを設け、各ステージサイクルを各命令が逐次くま
なく実行するようにして見かけ上1命令当り1ステージ
サイクルで実行ができるように制御されている。
理装置は、命令の実行フェーズを以下に述べる各ステー
ジに分割し、その各ステージの機能を果すためのハード
ウェアを設け、各ステージサイクルを各命令が逐次くま
なく実行するようにして見かけ上1命令当り1ステージ
サイクルで実行ができるように制御されている。
【0007】IFステージ(命令先取りステージ) 命令取出しアドレスにより、メモリから命令を取出すス
テージ。
テージ。
【0008】DCステージ(命令解読ステージ) 命令レジスタに命令が読出されその命令の種類を解読す
るステージ。
るステージ。
【0009】ADステージ(アドレス生成ステージ) その命令が必要とするアドレスを生成するステージであ
り、分岐命令であるならば、その分岐命令が実際に分岐
する分岐先アドレスが生成される。
り、分岐命令であるならば、その分岐命令が実際に分岐
する分岐先アドレスが生成される。
【0010】OFステージ(オペランド取出しステー
ジ) 演算に使用するオペランドを取出すステージ。
ジ) 演算に使用するオペランドを取出すステージ。
【0011】EXステージ(演算ステージ) 演算を実行するステージであり、分岐命令の場合、この
ステージで分岐成立か否かが確定する。
ステージで分岐成立か否かが確定する。
【0012】更に、本発明に特に関係するIF(命令取
出し)ステージは複数ステージからなり、一般には以下
のステージに分割されている(尚、更に細いステージに
分割されていることもある)。
出し)ステージは複数ステージからなり、一般には以下
のステージに分割されている(尚、更に細いステージに
分割されていることもある)。
【0013】IFAステージ(命令アクセスステー
ジ) 命令取出しアドレスにより、メモリから命令を取出して
命令バッファに格納するステージであり、同時に命令取
出しアドレスにより分岐予測機能を索引し、分岐予測先
アドレスを生成するステージ。
ジ) 命令取出しアドレスにより、メモリから命令を取出して
命令バッファに格納するステージであり、同時に命令取
出しアドレスにより分岐予測機能を索引し、分岐予測先
アドレスを生成するステージ。
【0014】IFBステージ(命令供給ステージ) 命令バッファの命令を、次段のDCステージの命令レジ
スタへ供給すると同時に、分岐予測機能により生成され
た分岐予測先アドレスをIFAステージへ供給するステ
ージ。
スタへ供給すると同時に、分岐予測機能により生成され
た分岐予測先アドレスをIFAステージへ供給するステ
ージ。
【0015】図2に従来のIFステージの構成を示す。
命令取出しレジスタ11は先取りする命令のアドレスを
保持し、このアドレスにより命令メモリ12と分岐予測
機能13とを同時に索引する。それと同時に、カウンタ
17により後続命令のアドレスを生成して命令取出しア
ドレスレジスタ11へセットする。
命令取出しレジスタ11は先取りする命令のアドレスを
保持し、このアドレスにより命令メモリ12と分岐予測
機能13とを同時に索引する。それと同時に、カウンタ
17により後続命令のアドレスを生成して命令取出しア
ドレスレジスタ11へセットする。
【0016】命令メモリ12(このメモリは主記憶でも
キャッシュメモリでも可)からの命令は命令先取りバッ
ファ14に格納されてDCステージへの命令供給がなさ
れる。同時に分岐予測機能13により分岐予測が行われ
て分岐予測先アドレスが生成され、これが分岐予測先ア
ドレスレジスタ15にセットされる。
キャッシュメモリでも可)からの命令は命令先取りバッ
ファ14に格納されてDCステージへの命令供給がなさ
れる。同時に分岐予測機能13により分岐予測が行われ
て分岐予測先アドレスが生成され、これが分岐予測先ア
ドレスレジスタ15にセットされる。
【0017】分岐Go予測の場合、分岐予測先アドレス
レジスタ15から命令取出しアドレスレジスタ11に分
岐予測先アドレスがセットされ、予測先の命令取出しが
行われる。アドレスリカバリ機能16は分岐予測失敗時
に命令を取出すための新しいアドレスを命令取出しレジ
スタ11にセットする。
レジスタ15から命令取出しアドレスレジスタ11に分
岐予測先アドレスがセットされ、予測先の命令取出しが
行われる。アドレスリカバリ機能16は分岐予測失敗時
に命令を取出すための新しいアドレスを命令取出しレジ
スタ11にセットする。
【0018】図2に示した従来の命令先取り方式では、
図3に示す命令列を実行する場合、図4に示す様に、分
岐命令Dの分岐予測がIFBステージで行われ、このI
FBステージで生成された分岐予測先アドレス100 の命
令L,Mを取出すまでの間に、既に命令取出しを行って
いる分岐Go側の命令E,Fは無効な命令として捨てら
れている。従って、メモリの索引効率が低下し、命令供
給能力が低下する原因になるという欠点がある。
図3に示す命令列を実行する場合、図4に示す様に、分
岐命令Dの分岐予測がIFBステージで行われ、このI
FBステージで生成された分岐予測先アドレス100 の命
令L,Mを取出すまでの間に、既に命令取出しを行って
いる分岐Go側の命令E,Fは無効な命令として捨てら
れている。従って、メモリの索引効率が低下し、命令供
給能力が低下する原因になるという欠点がある。
【0019】更に、図3で示す命令列の分岐命令Dが分
岐Go予測され、分岐予測失敗して分岐NoGoと判定
された場合、図4に示す如く、分岐命令Dの実行は6T
となり、NoGo側の命令Eに関しては、タイミングT
3 において、メモリ12から取出されているにもかかわ
らず、NoGo側の命令であるために捨てられている。
岐Go予測され、分岐予測失敗して分岐NoGoと判定
された場合、図4に示す如く、分岐命令Dの実行は6T
となり、NoGo側の命令Eに関しては、タイミングT
3 において、メモリ12から取出されているにもかかわ
らず、NoGo側の命令であるために捨てられている。
【0020】分岐命令Dの実行によりNoGoと判定さ
れたとき、再びNoGo側の命令Eを取出しているの
で、命令取出し動作が同一命令に対して2回実行される
ことになり、命令取出しのメモリ索引効率が低下し、命
令供給能力が低下するという欠点がある。
れたとき、再びNoGo側の命令Eを取出しているの
で、命令取出し動作が同一命令に対して2回実行される
ことになり、命令取出しのメモリ索引効率が低下し、命
令供給能力が低下するという欠点がある。
【0021】図4に示した分岐命令の実行T数(6T)
を削減する方式としては、図5に示す様にADステージ
で分岐命令Dの分岐先アドレスが確定するときに、予測
と反対方向の命令取出しに起動をかける方式がある。
を削減する方式としては、図5に示す様にADステージ
で分岐命令Dの分岐先アドレスが確定するときに、予測
と反対方向の命令取出しに起動をかける方式がある。
【0022】分岐命令Dの実行T数は4Tになるが、分
岐命令Dの実行結果を待たずして予測と反対方向の命令
取出しを行うために、分岐命令Dに関する予測が成功す
る場合は、予測と反対方向の命令取出し動作は中止さ
れ、予測方向の先取りが継続される。
岐命令Dの実行結果を待たずして予測と反対方向の命令
取出しを行うために、分岐命令Dに関する予測が成功す
る場合は、予測と反対方向の命令取出し動作は中止さ
れ、予測方向の先取りが継続される。
【0023】しかしながら、予測と反対方向の命令取出
し動作によって予測方向の先取りが中断されることにな
り、メモリの索引効率が低下し、命令供給能力が低下す
る。また、前述した如く、NoGo側の命令Eに対して
は、命令取出し動作が2回実行され、メモリの索引効率
が同様に低下し、命令供給能力が低下するという欠点が
ある。
し動作によって予測方向の先取りが中断されることにな
り、メモリの索引効率が低下し、命令供給能力が低下す
る。また、前述した如く、NoGo側の命令Eに対して
は、命令取出し動作が2回実行され、メモリの索引効率
が同様に低下し、命令供給能力が低下するという欠点が
ある。
【0024】
【発明の目的】本発明の目的は、分岐Go予測失敗時の
分岐命令実行の高速化を図ると共に、メモリ索引効率を
向上させて命令供給能力を向上可能とした命令先取り装
置を提供することである。
分岐命令実行の高速化を図ると共に、メモリ索引効率を
向上させて命令供給能力を向上可能とした命令先取り装
置を提供することである。
【0025】
【発明の構成】本発明による命令先取り装置は、命令取
出しアドレスレジスタのアドレスによりメモリから命令
を取出して命令先取りバッファに格納すると同時に前記
アドレスにより分岐予測手段を索引して分岐予測アドレ
スを生成する第1のステージと、前記命令先取りバッフ
ァの命令を次段の命令解読ステージへ供給すると同時に
前記分岐予測先アドレスを前記命令取出しアドレスレジ
スタに供給する第2のステージとからなる命令先取りス
テージを有するパイプライン処理方式の情報処理装置に
おける命令先取り装置であって、分岐命令のNoGo方
向の命令を格納する分岐NoGoワード保持レジスタ
と、前記メモリから読出された分岐命令を含む命令ワー
ドを前記命令先取りバッファに格納する際に、前記分岐
予測手段により分岐Go予測された第1〜第N(Nは2
以上の整数)分岐命令を含む命令ワードを前記命令先取
りバッファに夫々格納し、これ等命令ワードの各々に続
いて前記第1〜第Nの分岐命令の分岐NoGo方向の命
令を含む命令ワードを分岐NoGoワードとして前記分
岐NoGoワード保持レジスタに夫々格納制御する手段
と、前記分岐Go予測された分岐命令が実行されて分岐
予測失敗して分岐NoGoと判定された場合に、前記分
岐NoGoワード保持レジスタに格納されている前記分
岐NoGoワードの命令を前記命令解読ステージへ供給
し、その後の命令先取りは前記分岐NoGoワードの後
続ワードから開始するよう制御する手段とを含むことを
特徴とする。
出しアドレスレジスタのアドレスによりメモリから命令
を取出して命令先取りバッファに格納すると同時に前記
アドレスにより分岐予測手段を索引して分岐予測アドレ
スを生成する第1のステージと、前記命令先取りバッフ
ァの命令を次段の命令解読ステージへ供給すると同時に
前記分岐予測先アドレスを前記命令取出しアドレスレジ
スタに供給する第2のステージとからなる命令先取りス
テージを有するパイプライン処理方式の情報処理装置に
おける命令先取り装置であって、分岐命令のNoGo方
向の命令を格納する分岐NoGoワード保持レジスタ
と、前記メモリから読出された分岐命令を含む命令ワー
ドを前記命令先取りバッファに格納する際に、前記分岐
予測手段により分岐Go予測された第1〜第N(Nは2
以上の整数)分岐命令を含む命令ワードを前記命令先取
りバッファに夫々格納し、これ等命令ワードの各々に続
いて前記第1〜第Nの分岐命令の分岐NoGo方向の命
令を含む命令ワードを分岐NoGoワードとして前記分
岐NoGoワード保持レジスタに夫々格納制御する手段
と、前記分岐Go予測された分岐命令が実行されて分岐
予測失敗して分岐NoGoと判定された場合に、前記分
岐NoGoワード保持レジスタに格納されている前記分
岐NoGoワードの命令を前記命令解読ステージへ供給
し、その後の命令先取りは前記分岐NoGoワードの後
続ワードから開始するよう制御する手段とを含むことを
特徴とする。
【0026】
【実施例】以下、図面を用いて本発明の実施例について
説明する。
説明する。
【0027】図1は本発明の実施例のブロック図であ
り、図2と同等部分は同一符号により示す。本例では、
分岐NoGoワード保持レジスタ群18と、このレジス
タ群18と命令先取りバッファ14との出力を選択して
次のDCステージへ供給する選択回路1Aと、分岐No
Goワードの分岐予測先アドレスを格納するレジスタ群
19と、このレジスタ群19とレジスタ15との出力を
選択して命令取出しアドレスレジスタ11へ供給する選
択回路1Bとが付加されている。
り、図2と同等部分は同一符号により示す。本例では、
分岐NoGoワード保持レジスタ群18と、このレジス
タ群18と命令先取りバッファ14との出力を選択して
次のDCステージへ供給する選択回路1Aと、分岐No
Goワードの分岐予測先アドレスを格納するレジスタ群
19と、このレジスタ群19とレジスタ15との出力を
選択して命令取出しアドレスレジスタ11へ供給する選
択回路1Bとが付加されている。
【0028】命令取出しアドレスレジスタ11には、メ
モリ12から読出す命令のアドレスが保持されており、
メモリ12、分岐予測機能13、カウンタ17に夫々保
持アドレス2が供給される。
モリ12から読出す命令のアドレスが保持されており、
メモリ12、分岐予測機能13、カウンタ17に夫々保
持アドレス2が供給される。
【0029】命令メモリ12から命令ワード単位(例え
ば、1命令を4バイトとし、1ワードを8バイトとする
と、1回の命令メモリからの読出し動作で2命令取出せ
る)で読出され、命令先取りバッファ14に格納され
る。同じサイクルに分岐予測機能13が索引され、分岐
Go予測の場合、分岐予測先アドレスが生成されると、
分岐予測先アドレスレジスタ15にセットされる。
ば、1命令を4バイトとし、1ワードを8バイトとする
と、1回の命令メモリからの読出し動作で2命令取出せ
る)で読出され、命令先取りバッファ14に格納され
る。同じサイクルに分岐予測機能13が索引され、分岐
Go予測の場合、分岐予測先アドレスが生成されると、
分岐予測先アドレスレジスタ15にセットされる。
【0030】同じサイクルで、カウンタ17によって命
令取出しアドレスは後続のワードを取出すために8バイ
ト分加算され、命令取出しアドレスレジスタ11にセッ
トされる。
令取出しアドレスは後続のワードを取出すために8バイ
ト分加算され、命令取出しアドレスレジスタ11にセッ
トされる。
【0031】上記動作により分岐Go予測として動作し
た場合、命令先取りバッファ14には、分岐命令を含む
ワードの命令列が格納されており、分岐予測先アドレス
レジスタ15には、分岐Go予測された分岐命令に対す
る分岐予測先アドレスがセットされており、命令取出し
アドレスレジスタ11には、分岐Go予測された分岐命
令を含むワードの後続ワード、すなわち、分岐命令のN
oGo方向の命令を含むワードのアドレスがセットされ
ている。次のサイクルで、命令先取りバッファ14に格
納されている命令は選択回路1Aを経てDCステージに
供給される。
た場合、命令先取りバッファ14には、分岐命令を含む
ワードの命令列が格納されており、分岐予測先アドレス
レジスタ15には、分岐Go予測された分岐命令に対す
る分岐予測先アドレスがセットされており、命令取出し
アドレスレジスタ11には、分岐Go予測された分岐命
令を含むワードの後続ワード、すなわち、分岐命令のN
oGo方向の命令を含むワードのアドレスがセットされ
ている。次のサイクルで、命令先取りバッファ14に格
納されている命令は選択回路1Aを経てDCステージに
供給される。
【0032】同じサイクルで分岐予測先アドレスレジス
タ15にセットされている分岐予測先アドレスは、選択
回路1Bを経て命令取出しアドレスレジスタ11にセッ
トされる。同じサイクルで、命令取出しアドレスレジス
タ11にセットされていた分岐NoGoワードのアドレ
スにより、命令メモリ12から分岐NoGoワードが読
出され、分岐NoGoワード保持レジスタ群18に保持
される。次のサイクル以降は、命令取出しアドレスレジ
スタ11にセットされている分岐予測先アドレスから命
令の取出しが続けられ、命令先取りバッファ14からは
予測に従った命令がDCステージへ供給される。
タ15にセットされている分岐予測先アドレスは、選択
回路1Bを経て命令取出しアドレスレジスタ11にセッ
トされる。同じサイクルで、命令取出しアドレスレジス
タ11にセットされていた分岐NoGoワードのアドレ
スにより、命令メモリ12から分岐NoGoワードが読
出され、分岐NoGoワード保持レジスタ群18に保持
される。次のサイクル以降は、命令取出しアドレスレジ
スタ11にセットされている分岐予測先アドレスから命
令の取出しが続けられ、命令先取りバッファ14からは
予測に従った命令がDCステージへ供給される。
【0033】分岐命令が実行され、分岐予測が失敗し分
岐NoGoと判定された場合に、分岐NoGoワード保
持レジスタ群18に保持されている分岐NoGo側の命
令が、選択回路1Aに与えられ、選択回路1Aにより分
岐NoGo側の命令はDCステージに供給される。
岐NoGoと判定された場合に、分岐NoGoワード保
持レジスタ群18に保持されている分岐NoGo側の命
令が、選択回路1Aに与えられ、選択回路1Aにより分
岐NoGo側の命令はDCステージに供給される。
【0034】同じサイクルで、アドレスリカバリ機能1
6は分岐NoGoワードに後続するアドレスを生成し、
命令取出しアドレスレジスタ11にセットする。次のサ
イクル以降は、命令取出しアドレスレジスタ11にセッ
トされた分岐NoGoワードに後続するアドレスから命
令の取出しが続けられ、命令先取りバッファ14に格納
される。
6は分岐NoGoワードに後続するアドレスを生成し、
命令取出しアドレスレジスタ11にセットする。次のサ
イクル以降は、命令取出しアドレスレジスタ11にセッ
トされた分岐NoGoワードに後続するアドレスから命
令の取出しが続けられ、命令先取りバッファ14に格納
される。
【0035】選択回路1Aは、分岐NoGoワード保持
レジスタ群18に供給可能な命令が残っている場合は、
レジスタ群18の出力を選択し、供給可能な命令がなく
なった場合には、命令先取りバッファ14から分岐No
Goワードの後続のワードに含まれている命令を供給す
る
レジスタ群18に供給可能な命令が残っている場合は、
レジスタ群18の出力を選択し、供給可能な命令がなく
なった場合には、命令先取りバッファ14から分岐No
Goワードの後続のワードに含まれている命令を供給す
る
【0036】上記動作により、図3に示される命令列を
実行した場合、図6に示されるようになる。図6におい
て、タイミングT2 において分岐命令Dが分岐Go予測
され、分岐予測先アドレスが生成された場合、タイミン
グT3 において、従来捨てられていた分岐NoGo側の
命令E,Fは図1の分岐NoGoワード保持レジスタ群
18に保持される。
実行した場合、図6に示されるようになる。図6におい
て、タイミングT2 において分岐命令Dが分岐Go予測
され、分岐予測先アドレスが生成された場合、タイミン
グT3 において、従来捨てられていた分岐NoGo側の
命令E,Fは図1の分岐NoGoワード保持レジスタ群
18に保持される。
【0037】タイミングT8 において、分岐Go予測失
敗と判定された場合、タイミングT9 において、DCス
テージに対して分岐NoGoワード保持レジスタ群18
に保持されていた命令Eが供給され、IFAステージの
アドレスは図1のアドレスリカバリ機能16によって、
分岐NoGoワードの後続のワードのアドレス24が生
成され、命令取出しアドレスレジスタ11にセットされ
る。
敗と判定された場合、タイミングT9 において、DCス
テージに対して分岐NoGoワード保持レジスタ群18
に保持されていた命令Eが供給され、IFAステージの
アドレスは図1のアドレスリカバリ機能16によって、
分岐NoGoワードの後続のワードのアドレス24が生
成され、命令取出しアドレスレジスタ11にセットされ
る。
【0038】従って、図6に示すように、分岐命令Dの
実行T数は4Tとなり、分岐NoGo側の命令E,Fに
対するメモリアクセスも1回で済む。また、図5を用い
て前述した分岐命令がADステージで分岐先アドレスが
確定する時に予測と反対方向の命令取出しに起動をかけ
る方式を用いなくても、分岐命令の実行T数が高速化さ
れ、しかも、不用な命令取出し動作も必要なくなり、メ
モリ索引効率が向上する。
実行T数は4Tとなり、分岐NoGo側の命令E,Fに
対するメモリアクセスも1回で済む。また、図5を用い
て前述した分岐命令がADステージで分岐先アドレスが
確定する時に予測と反対方向の命令取出しに起動をかけ
る方式を用いなくても、分岐命令の実行T数が高速化さ
れ、しかも、不用な命令取出し動作も必要なくなり、メ
モリ索引効率が向上する。
【0039】次に、図1の分岐NoGoワードの分岐予
測先アドレス保持レジスタ群19を用いた動作につい
て、先述の動作例と相違している部分についてのみ詳細
に説明する。
測先アドレス保持レジスタ群19を用いた動作につい
て、先述の動作例と相違している部分についてのみ詳細
に説明する。
【0040】図1を参照すると、分岐Go予測が行わ
れ、分岐NoGoワード保持レジスタ群18に分岐No
Goワードがセットされるのと同じサイクルにおいて、
分岐NoGoワードに対しても分岐予測機能13によっ
て分岐予測が行われている。従って、分岐NoGoワー
ド内に分岐命令が存在し、分岐Go予測された場合に、
分岐予測機能13からは、分岐NoGo側ワード内の分
岐命令に対する分岐予測先アドレスが生成される。その
分岐予測先アドレスは分岐NoGoワードの分岐予測先
アドレス保持レジスタ群19に保持される。
れ、分岐NoGoワード保持レジスタ群18に分岐No
Goワードがセットされるのと同じサイクルにおいて、
分岐NoGoワードに対しても分岐予測機能13によっ
て分岐予測が行われている。従って、分岐NoGoワー
ド内に分岐命令が存在し、分岐Go予測された場合に、
分岐予測機能13からは、分岐NoGo側ワード内の分
岐命令に対する分岐予測先アドレスが生成される。その
分岐予測先アドレスは分岐NoGoワードの分岐予測先
アドレス保持レジスタ群19に保持される。
【0041】分岐予測が失敗し分岐NoGoと判定され
た場合に、分岐NoGo側の命令が分岐NoGoワード
保持レジスタ群18から供給される。同じサイクルで、
分岐NoGoワードの分岐予測先アドレス保持レジスタ
群19から、分岐NoGoワードの分岐命令に対する分
岐予測先アドレスが選択回路1Bに与えられ、選択回路
1Bにより命令取出しアドレスレジスタ11にセットさ
れ、分岐NoGoワード内の分岐命令に対する分岐予測
先アドレスの命令の先取りが開始される。
た場合に、分岐NoGo側の命令が分岐NoGoワード
保持レジスタ群18から供給される。同じサイクルで、
分岐NoGoワードの分岐予測先アドレス保持レジスタ
群19から、分岐NoGoワードの分岐命令に対する分
岐予測先アドレスが選択回路1Bに与えられ、選択回路
1Bにより命令取出しアドレスレジスタ11にセットさ
れ、分岐NoGoワード内の分岐命令に対する分岐予測
先アドレスの命令の先取りが開始される。
【0042】従って、分岐NoGoワード内に存在する
分岐命令に対しても分岐予測が有効となり、分岐予測率
が向上し、命令先取りに関する機能の有効利用が図れ
る。
分岐命令に対しても分岐予測が有効となり、分岐予測率
が向上し、命令先取りに関する機能の有効利用が図れ
る。
【0043】図7に示す命令列を、第1の実施例で実行
した結果を図8に、第2の実施例で実行した結果を図9
に夫々示す。
した結果を図8に、第2の実施例で実行した結果を図9
に夫々示す。
【0044】図7の分岐命令Bが分岐Go予測され、分
岐命令BのNoGo側の命令である分岐命令Dに対して
も、分岐予測機能により分岐予測先アドレスの生成が可
能な状態で、分岐命令Bは分岐予測失敗し、結果NoG
oとなり分岐命令Dは、結果Goとなる場合について説
明する。
岐命令BのNoGo側の命令である分岐命令Dに対して
も、分岐予測機能により分岐予測先アドレスの生成が可
能な状態で、分岐命令Bは分岐予測失敗し、結果NoG
oとなり分岐命令Dは、結果Goとなる場合について説
明する。
【0045】図7に示される命令が前記のような実行状
態で実行された場合、第1の実施例では、図8で示すよ
うに、タイミングT2 において、分岐NoGoワード内
の分岐命令Dに対する分岐予測先アドレスが生成されて
いるにもかかわらず、保持する手段を持たないために捨
てられてしまう。従って分岐命令Bが分岐予測失敗し、
結果NoGoとなった場合、タイミングT11において、
分岐命令Dは、分岐予測先アドレスが存在しないため、
分岐NoGo予測として扱われ、分岐NoGo予測失敗
となり、実行に6Tを要してしまう。
態で実行された場合、第1の実施例では、図8で示すよ
うに、タイミングT2 において、分岐NoGoワード内
の分岐命令Dに対する分岐予測先アドレスが生成されて
いるにもかかわらず、保持する手段を持たないために捨
てられてしまう。従って分岐命令Bが分岐予測失敗し、
結果NoGoとなった場合、タイミングT11において、
分岐命令Dは、分岐予測先アドレスが存在しないため、
分岐NoGo予測として扱われ、分岐NoGo予測失敗
となり、実行に6Tを要してしまう。
【0046】上記の問題点を解決したのが第2の実施例
であり、図9で示すように、タイミングT2 において、
分岐NoGoワード内の分岐命令Dに対する分岐予測先
アドレスを捨てることなく分岐NoGoワードの分岐予
測先アドレス保持レジスタ群19に保持することによ
り、分岐NoGoワード内の分岐命令Dに対する分岐予
測を可能としている。
であり、図9で示すように、タイミングT2 において、
分岐NoGoワード内の分岐命令Dに対する分岐予測先
アドレスを捨てることなく分岐NoGoワードの分岐予
測先アドレス保持レジスタ群19に保持することによ
り、分岐NoGoワード内の分岐命令Dに対する分岐予
測を可能としている。
【0047】タイミングT6 において、分岐命令Bが分
岐Go予測失敗と判定された場合に、タイミングT7 に
おいて、分岐NoGoワードの分岐予測先アドレスレジ
スタ群19に保持されていた分岐NoGoワード内の分
岐命令Dに対する分岐予測先アドレスが、選択回路1B
に与えられ、選択回路により命令先取アドレスレジスタ
11にセットされる。
岐Go予測失敗と判定された場合に、タイミングT7 に
おいて、分岐NoGoワードの分岐予測先アドレスレジ
スタ群19に保持されていた分岐NoGoワード内の分
岐命令Dに対する分岐予測先アドレスが、選択回路1B
に与えられ、選択回路により命令先取アドレスレジスタ
11にセットされる。
【0048】従って、NoGoワード内の分岐命令Dに
対する分岐予測が有効になり、タイミングT11におい
て、分岐Go予測成功となり分岐命令Dの実行は1Tで
行われる。
対する分岐予測が有効になり、タイミングT11におい
て、分岐Go予測成功となり分岐命令Dの実行は1Tで
行われる。
【0049】上記動作の説明では、分岐Go予測が1つ
だけの場合であるが、命令の先取りが進行し、先行する
分岐Go予測が実行される前にさらに分岐Go予測が行
われる場合がある。その場合分岐Go予測が行われる毎
に、前記動作に従って、分岐NoGoワードは分岐No
Goワード保持レジスタ群18に順次格納され、分岐N
oGoワードに対する分岐予測先アドレスは分岐NoG
oワードの分岐予測先アドレス保持レジスタ群19に順
次格納される。
だけの場合であるが、命令の先取りが進行し、先行する
分岐Go予測が実行される前にさらに分岐Go予測が行
われる場合がある。その場合分岐Go予測が行われる毎
に、前記動作に従って、分岐NoGoワードは分岐No
Goワード保持レジスタ群18に順次格納され、分岐N
oGoワードに対する分岐予測先アドレスは分岐NoG
oワードの分岐予測先アドレス保持レジスタ群19に順
次格納される。
【0050】分岐Go予測命令が実行された時に、分岐
Go予測成功の場合は、実行された分岐Go予測命令に
対応する分岐NoGoワード保持レジスタ群18の内容
と分岐NoGoワードの分岐予測先アドレス保持レジス
タ群19の内容とが捨てられ、分岐Go予測失敗の場合
は、前述した動作に従って、実行された分岐Go予測命
令に対応する分岐NoGoワード保持レジスタ群18の
内容と分岐NoGoワードの分岐予測先アドレス保持レ
ジスタ群19の内容とが読出され、命令先取り動作が実
行される。従って、複数個の分岐Go予測に対応できる
のである。
Go予測成功の場合は、実行された分岐Go予測命令に
対応する分岐NoGoワード保持レジスタ群18の内容
と分岐NoGoワードの分岐予測先アドレス保持レジス
タ群19の内容とが捨てられ、分岐Go予測失敗の場合
は、前述した動作に従って、実行された分岐Go予測命
令に対応する分岐NoGoワード保持レジスタ群18の
内容と分岐NoGoワードの分岐予測先アドレス保持レ
ジスタ群19の内容とが読出され、命令先取り動作が実
行される。従って、複数個の分岐Go予測に対応できる
のである。
【0051】
【発明の効果】本発明によれば、分岐予測が失敗した場
合に、分岐命令の実行の高速化を図ることが可能になる
と共に、メモリ索引効率を向上させて命令供給能力を向
上させるという効果がある。また、複数の分岐Go予測
に対応できるという効果もある。
合に、分岐命令の実行の高速化を図ることが可能になる
と共に、メモリ索引効率を向上させて命令供給能力を向
上させるという効果がある。また、複数の分岐Go予測
に対応できるという効果もある。
【図1】本発明の実施例のブロック図である。
【図2】従来の命令先取り装置のブロック図である。
【図3】分岐命令を有する命令列の一例を示す図であ
る。
る。
【図4】従来方式による分岐Go予測が予測失敗したと
きの実行経過の一例を示すタイムチャートである。
きの実行経過の一例を示すタイムチャートである。
【図5】従来方式による分岐Go予測が予測失敗したと
きの実行過程の他の例を示すタイムチャートである。
きの実行過程の他の例を示すタイムチャートである。
【図6】本発明の第1の実施例による分岐Go予測が予
測失敗したときの実行過程を示すタイムチャートであ
る。
測失敗したときの実行過程を示すタイムチャートであ
る。
【図7】本発明の実施例に用いる命令列を示す図であ
る。
る。
【図8】第1の実施例により図7の命令列を実行する過
程を示すタイムチャートである。
程を示すタイムチャートである。
【図9】第2の実施例により図8の命令列を実行する過
程を示すタイムチャートである。
程を示すタイムチャートである。
1A,1B 選択回路 11 命令取出しアドレスレジスタ 12 命令メモリ 13 分岐予測機能 14 命令先取りバッファ 15 分岐予測先アドレスレジスタ 16 アドレスリカバリ機能 17 カウンタ 18 分岐NoGoワード保持レジスタ群 19 分岐NoGoワードの分岐予測先アドレスレジス
タ群
タ群
Claims (2)
- 【請求項1】 命令取出しアドレスレジスタのアドレス
によりメモリから命令を取出して命令先取りバッファに
格納すると同時に前記アドレスにより分岐予測手段を索
引して分岐予測アドレスを生成する第1のステージと、
前記命令先取りバッファの命令を次段の命令解読ステー
ジへ供給すると同時に前記分岐予測先アドレスを前記命
令取出しアドレスレジスタに供給する第2のステージと
からなる命令先取りステージを有するパイプライン処理
方式の情報処理装置における命令先取り装置であって、
分岐命令のNoGo方向の命令を格納する分岐NoGo
ワード保持レジスタと、前記メモリから読出された分岐
命令を含む命令ワードを前記命令先取りバッファに格納
する際に、前記分岐予測手段により分岐Go予測された
第1〜第N(Nは2以上の整数)分岐命令を含む命令ワ
ードを前記命令先取りバッファに夫々格納し、これ等命
令ワードの各々に続いて前記第1〜第Nの分岐命令の分
岐NoGo方向の命令を含む命令ワードを分岐NoGo
ワードとして前記分岐NoGoワード保持レジスタに夫
々格納制御する手段と、前記分岐Go予測された分岐命
令が実行されて分岐予測失敗して分岐NoGoと判定さ
れた場合に、前記分岐NoGoワード保持レジスタに格
納されている前記分岐NoGoワードの命令を前記命令
解読ステージへ供給し、その後の命令先取りは前記分岐
NoGoワードの後続ワードから開始するよう制御する
手段とを含むことを特徴とする命令先取り装置。 - 【請求項2】 前記分岐予測手段により分岐Go予測さ
れた前記第1〜第Nの分岐命令の各分岐先アドレスを格
納する分岐予測先アドレスレジスタと、前記分岐予測手
段により予測が行われた第1〜第Nの前記分岐NoGo
ワード内に含まれている分岐命令に対する各分岐予測先
アドレスを保持する分岐NoGoワード分岐予測先アド
レスレジスタと、これ等両レジスタの出力を選択して前
記命令取出しレジスタへ格納制御する手段とを含むこと
を特徴とする請求項1記載の命令先取り装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35703191A JPH05173785A (ja) | 1991-12-25 | 1991-12-25 | 命令先取り装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35703191A JPH05173785A (ja) | 1991-12-25 | 1991-12-25 | 命令先取り装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05173785A true JPH05173785A (ja) | 1993-07-13 |
Family
ID=18452028
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP35703191A Pending JPH05173785A (ja) | 1991-12-25 | 1991-12-25 | 命令先取り装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05173785A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07281894A (ja) * | 1994-04-15 | 1995-10-27 | Internatl Business Mach Corp <Ibm> | 処理システムおよび動作の方法 |
| US6182211B1 (en) | 1997-07-02 | 2001-01-30 | Matsushita Electric Industrial Co., Ltd. | Conditional branch control method |
| US6938150B2 (en) | 2001-01-10 | 2005-08-30 | Nec Corporation | Processor for managing latest speculation states and efficiently reusing reorder buffer entries |
-
1991
- 1991-12-25 JP JP35703191A patent/JPH05173785A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07281894A (ja) * | 1994-04-15 | 1995-10-27 | Internatl Business Mach Corp <Ibm> | 処理システムおよび動作の方法 |
| US6182211B1 (en) | 1997-07-02 | 2001-01-30 | Matsushita Electric Industrial Co., Ltd. | Conditional branch control method |
| US6938150B2 (en) | 2001-01-10 | 2005-08-30 | Nec Corporation | Processor for managing latest speculation states and efficiently reusing reorder buffer entries |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6338136B1 (en) | Pairing of load-ALU-store with conditional branch | |
| KR100571322B1 (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
| US8006072B2 (en) | Reducing data hazards in pipelined processors to provide high processor utilization | |
| JP2603626B2 (ja) | データ処理装置 | |
| US20030154358A1 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
| JP2005182659A (ja) | Vliw型dsp,及びその動作方法 | |
| JP2560988B2 (ja) | 情報処理装置および処理方法 | |
| JPS63317828A (ja) | マイクロコ−ド読み出し制御方式 | |
| JP3779012B2 (ja) | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 | |
| JPH05173785A (ja) | 命令先取り装置 | |
| EP0079370A4 (en) | DIGITAL CALCULATOR FOR EXECUTING COMMANDS IN THREE PARTS IN TIME MULTIPLEX. | |
| JP3532835B2 (ja) | データ処理装置およびプログラム変換装置 | |
| JP2771373B2 (ja) | 命令先取り装置 | |
| JPH05173784A (ja) | 命令先取り装置 | |
| JPH05165636A (ja) | 命令先取り装置 | |
| JPH05165634A (ja) | 命令先取り装置 | |
| JPH05165635A (ja) | 命令先取り装置 | |
| US7996655B2 (en) | Multiport execution target delay queue FIFO array | |
| WO2002039272A9 (en) | Method and apparatus for reducing branch latency | |
| JP2843844B2 (ja) | 並列演算処理装置 | |
| JP3668643B2 (ja) | 情報処理装置 | |
| JP5013966B2 (ja) | 演算処理装置 | |
| JP2853458B2 (ja) | 命令列切り替え方法及びそれを用いた演算プロセッサ | |
| JP2545594B2 (ja) | オペランドデータ先取り方式 | |
| JPH06332698A (ja) | 情報処理装置 |