JPH05165636A - 命令先取り装置 - Google Patents

命令先取り装置

Info

Publication number
JPH05165636A
JPH05165636A JP35388091A JP35388091A JPH05165636A JP H05165636 A JPH05165636 A JP H05165636A JP 35388091 A JP35388091 A JP 35388091A JP 35388091 A JP35388091 A JP 35388091A JP H05165636 A JPH05165636 A JP H05165636A
Authority
JP
Japan
Prior art keywords
instruction
branch
word
prediction
nogo
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
JP35388091A
Other languages
English (en)
Inventor
Masanori Kazuno
雅則 数野
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP35388091A priority Critical patent/JPH05165636A/ja
Publication of JPH05165636A publication Critical patent/JPH05165636A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 パイプライン方式の情報処理装置における命
令先取り方式において、分岐Go予測失敗時の分岐命令
実行の高速化を図ると共に、メモリ索引効率を向上させ
て命令供給能力の向上を図る。 【構成】 分岐Go予測ワードに連続する分岐NoGo
ワードを、捨てることなく命令先取りバッファ14内に
格納する。分岐Go予測失敗時に、このバッファ14内
の分岐NoGoワードを次ステージ(命令解読ステー
ジ)へ供給することにより、分岐Go予測失敗時の分岐
命令の実行を高速化できると共に、メモリ索引のやり直
しをすることがないので、メモリ索引効率も向上する。

Description

【発明の詳細な説明】
【0001】
【技術分野】本発明は命令先取り装置に関し、特に分岐
予測手段を用いて命令先取りを行うパイプライン処理方
式を採用した情報処理装置の命令先取り方式に関する。
【0002】
【従来技術】従来、この種の分岐予測手段による命令先
取り機能を有するパイプライン処理方式の情報処理装置
では、分岐予測テーブル等による分岐予測手段によっ
て、命令の先取りを行い、結果的に分岐命令を高速に実
行するようになっている。
【0003】この様な方式は、特公昭50−22384
号公報,特開昭55−99655号公報,特開昭57−
59253号公報等において提案されており、既にいく
つかの情報処理装置で実施されている。
【0004】これ等の方式では、分岐命令について、そ
の実行の度に実行結果の履歴を保持しておき、次にその
分岐命令が実行されようとするときには、その履歴情報
(分岐成立/不成立,分岐先アドレス)を反映させて、
命令先取りを効果的に実行するようになっている。
【0005】すなわち、この様な方式では、命令先取り
の予測が適中する限りにおいては、分岐命令を高速に実
行できる効果がある。
【0006】一般にパイプライン制御方式による情報処
理装置は、命令の実行フェーズを以下に述べる各ステー
ジに分割し、その各ステージの機能を果すためのハード
ウェアを設け、各ステージサイクルを各命令が逐次くま
なく実行するようにして見かけ上1命令当り1ステージ
サイクルで実行ができるように制御されている。
【0007】IFステージ(命令先取りステージ) 命令取出しアドレスにより、メモリから命令を取出すス
テージ。
【0008】DCステージ(命令解読ステージ) 命令レジスタに命令が読出されその命令の種類を解読す
るステージ。
【0009】ADステージ(アドレス生成ステージ) その命令が必要とするアドレスを生成するステージであ
り、分岐命令であるならば、その分岐命令が実際に分岐
する分岐先アドレスが生成される。
【0010】OFステージ(オペランド取出しステー
ジ) 演算に使用するオペランドを取出すステージ。
【0011】EXステージ(演算ステージ) 演算を実行するステージであり、分岐命令の場合、この
ステージで分岐成立か否かが確定する。
【0012】更に、本発明に特に関係するIF(命令取
出し)ステージは複数ステージからなり、一般には以下
のステージに分割されている(尚、更に細いステージに
分割されていることもある)。
【0013】IFAステージ(命令アクセスステー
ジ) 命令取出しアドレスにより、メモリから命令を取出して
命令バッファに格納するステージであり、同時に命令取
出しアドレスにより分岐予測機能を索引し、分岐予測先
アドレスを生成するステージ。
【0014】IFBステージ(命令供給ステージ) 命令バッファの命令を、次段のDCステージの命令レジ
スタへ供給すると同時に、分岐予測機能により生成され
た分岐予測先アドレスをIFAステージへ供給するステ
ージ。
【0015】図3に従来のIFステージの構成を示す。
命令取出しレジスタ11は先取りする命令のアドレスを
保持し、このアドレスにより命令メモリ12と分岐予測
機能13とを同時に索引する。それと同時に、カウンタ
17により後続命令のアドレスを生成して命令取出しア
ドレスレジスタ11へセットする。
【0016】命令メモリ12(このメモリは主記憶でも
キャッシュメモリでも可)からの命令は命令先取りバッ
ファ14に格納されてDCステージへの命令供給がなさ
れる。同時に分岐予測機能13により分岐予測が行われ
て分岐予測先アドレスが生成され、これが分岐予測先ア
ドレスレジスタ15にセットされる。
【0017】分岐Go予測の場合、分岐予測先アドレス
レジスタ15から命令取出しアドレスレジスタ11に分
岐予測先アドレスがセットされ、予測先の命令取出しが
行われる。アドレスリカバリ機能16は分岐予測失敗時
に命令を取出すための新しいアドレスを命令取出しレジ
スタ11にセットする。
【0018】図3に示した従来の命令先取り方式では、
図4に示す命令列を実行する場合、図5に示す様に、分
岐命令Dの分岐予測がIFBステージで行われ、このI
FBステージで生成された分岐予測先アドレス100 の命
令L,Mを取出すまでの間に、既に命令取出しを行って
いる分岐Go側の命令E,Fは無効な命令として捨てら
れている。従って、メモリの索引効率が低下し、命令供
給能力が低下する原因になるという欠点がある。
【0019】更に、図4で示す命令列の分岐命令Dが分
岐Go予測され、分岐予測失敗して分岐NoGoを判定
された場合、図5に示す如く、分岐命令Dの実行は6T
となり、NoGo側の命令Eに関しては、タイミングT
3 において、メモリ12から取出されているにもかかわ
らず、NoGo側の命令であるために捨てられている。
【0020】分岐命令Dの実行によりNoGoと判定さ
れたとき、再びNoGo側の命令Eを取出しているの
で、命令取出し動作が同一命令に対して2回実行される
ことになり、命令取出しのメモリ索引効率が低下し、命
令供給能力が低下するという欠点がある。
【0021】図5に示した分岐命令の実行T数(6T)
を削減する方式としては、図6に示す様にADステージ
で分岐命令Dの分岐先アドレスが確定するときに、予測
と反対方向の命令取出しに起動をかける方式がある。
【0022】分岐命令Dの実行T数は4Tになるが、分
岐命令Dの実行結果を待たずして予測と反対方向の命令
取出しを行うために、分岐命令Dに関する予測が成功す
る場合は、予測と反対方向の命令取出し動作は中止さ
れ、予測方向の先取りが継続される。
【0023】しかしながら、予測と反対方向の命令取出
し動作によって予測方向の先取りが中断されることにな
り、メモリの索引効率が低下し、命令供給能力が低下す
る。また、前述した如く、NoGo側の命令Eに対して
は、命令取出し動作が2回実行され、メモリの索引効率
が同様に低下し、命令供給能力が低下するという欠点が
ある。
【0024】
【発明の目的】本発明の目的は、分岐Go予測失敗時の
分岐命令実行の高速化を図ると共に、メモリ索引効率を
向上させて命令供給能力を向上可能とした命令先取り装
置を提供することである。
【0025】
【発明の構成】本発明による命令先取り装置は、命令取
出しアドレスレジスタのアドレスによりメモリから命令
を取出して命令先取りバッファに格納すると同時に前記
アドレスにより分岐予測手段を索引して分岐予測アドレ
スを生成する第1のステージと、前記命令先取りバッフ
ァの命令を次段の命令解読ステージへ供給すると同時に
前記分岐予測先アドレスを前記命令取出しアドレスレジ
スタに供給する第2のステージとからなる命令先取りス
テージを有するパイプライン処理方式の情報処理装置に
おける命令先取り装置であって、メモリから読出された
分岐命令を含む命令ワードを前記命令先取りバッファに
格納する際に、前記分岐予測手段により分岐Go予測さ
れた第1〜第N(Nは2以上の整数)の分岐命令を含む
命令ワードを前記命令先取りバッファに夫々格納し、こ
れ等命令ワードの各々に続いて前記第1〜第Nの分岐命
令NoGo方向の命令を含む命令ワードを分岐NoGo
ワードとして前記命令先取りバッファの予め定められた
固定領域に夫々格納制御する手段と、前記分岐Go予測
された分岐命令が実行されて分岐予測失敗して分岐No
Goと判定された場合に、前記命令先取りバッファに格
納されている前記分岐NoGoワードの命令を前記命令
解読ステージへ供給し、その後の命令先取りは前記分岐
NoGoワードの後続ワードから開始するよう制御する
手段とを含むことを特徴とする。
【0026】
【実施例】以下、図面を用いて本発明の実施例について
詳細に説明する。
【0027】図1は本発明の実施例のブロック図であ
り、図3と同等部分は同一符号により示す。本例では、
分岐NoGoワードの分岐予測先アドレスを複数格納す
るレジスタ群19と、このレジスタ群19とレジスタ1
5との出力を選択して命令取出しアドレスレジスタ11
へ供給する選択回路18とが付加されて構成されてい
る。
【0028】命令取出しアドレスレジスタ11には、メ
モリ12から読出す命令のアドレスが保持されており、
メモリ12、分岐予測機能13、カウンタ17に夫々保
持アドレス2が供給される。
【0029】命令メモリ12から命令ワード単位(例え
ば、1命令を4バイトとし、1ワード8バイトとする
と、1回の命令メモリからの読出し動作で2命令取出せ
る)で読出され、命令先取りバッファ14に格納され
る。同じサイクルで分岐予測機能13が索引され、分岐
Go予測の場合、分岐予測先アドレスが生成されると、
分岐予測先アドレスレジスタ15にセットされる。
【0030】同じサイクルで、カウンタ17によって命
令取出しアドレスは後続のワードを取出すために8バイ
ト分加算され、命令取出しアドレスレジスタ11にセッ
トされる。
【0031】上記動作により分岐Go予測として動作し
た場合、命令先取りバッファ14には、分岐命令を含む
ワードの命令列が格納されており、分岐予測先アドレス
レジスタ15には、分岐Go予測された分岐命令に対す
る分岐予測先アドレスがセットされており、命令取出し
アドレスレジスタ11には、分岐Go予測された分岐命
令を含むワードの後続ワード、すなわち、分岐命令のN
oGo方向の命令を含むワードのアドレスがセットされ
ている。次のサイクルで命令先取りバッファ14に格納
されている命令はDCステージに供給される。
【0032】同じサイクルで分岐予測先アドレスレジス
タ15にセットされている分岐予測先アドレスは、選択
回路18を経て命令取出しアドレスレジスタ11にセッ
トされる。同じサイクルで命令取出しアドレスレジスタ
11にセットされていた分岐NoGoワードのアドレス
により、命令メモリ12から分岐NoGoワードが読出
され、図2に示される命令先取りバッファ内の固定領域
に保持される。次のサイクル以降は、命令取出しアドレ
スレジスタ11にセットされている分岐予測先アドレス
から命令の取出しが続けられ、命令先取りバッファ14
からは、予測に従った命令がDCステージへ供給され
る。
【0033】分岐命令が実行され、分岐予測が失敗し分
岐NoGoと判定された場合に、図2に示される命令先
取りバッファ内の固定領域に保持されている分岐NoG
o側の命令をDCステージに供給する。
【0034】同じサイクルで、アドレスリカバリ機能1
6は分岐NoGoワードに後続するアドレスを生成し、
命令取出しアドレスレジスタにセットする。次のサイク
ル以降は、命令取出しアドレスレジスタ11にセットさ
れた分岐NoGoワードに後続するアドレスから命令の
取出しが続けられ、命令先取りバッファ14に格納され
る。
【0035】上記動作により、図4に示される命令列を
実行した場合、図7に示されるようになる。図7におい
て、タイミングT2 において分岐命令Dが分岐Go予測
され、分岐予測先アドレスが生成された場合、タイミン
グT3 において、従来捨てられていた分岐NoGo側の
命令E,Fは図2に示される命令先取りバッファ内の固
定領域に保持される。
【0036】タイミングT8 において、分岐Go予測失
敗と判定された場合、タイミングT9 においてDCステ
ージに対して図2に示される命令先取りバッファ内の固
定領域に保持されていた命令Eが供給され、IFAステ
ージのアドレスは図1のアドレスリカバリ機能16によ
って分岐NoGoワードの後続のワードのアドレス24
が生成され、図1の命令取出しアドレスレジスタ11に
セットされる。
【0037】従って、図7に示すように、分岐命令Dの
実行T数は4Tとなり、分岐NoGo側の命令E,Fに
対するメモリアクセスも1回で済む。また、図6を用い
て前述した分岐命令がADステージで分岐先アドレスが
確定する時に予測と反対方向の命令取出しに起動をかけ
る方式を用いなくても、分岐命令の実行T数が高速化さ
れ、しかも、不用な命令取出し動作も必要なくなり、メ
モリ索引効率が向上する。
【0038】次に、図1の分岐NoGoワードの分岐予
測先アドレス保持レジスタ群19を用いた動作につい
て、先述の動作例と相違している部分についてのみ詳細
に説明する。
【0039】図1を参照すると、分岐Go予測が行わ
れ、図2に示す命令先取りバッファ内の固定領域に分岐
NoGoワードがセットされるのと同じサイクルにおい
て、分岐NoGoワードに対しても分岐予測機能13に
よって分岐予測が行われている。従って、分岐NoGo
ワード内に分岐命令が存在し、分岐Go予測された場合
に、分岐予測機能13からは、分岐NoGo側ワード内
の分岐命令に対する分岐予測先アドレスが生成される。
その分岐予測先アドレスは分岐NoGoワードの分岐予
測先アドレス保持レジスタ群19に保持される。
【0040】分岐予測が失敗し分岐NoGoと判定され
た場合に、分岐NoGo側の命令が図2に示される命令
先取りバッファ内の固定領域から供給される。同じサイ
クルで、分岐NoGoワードの分岐予測先アドレス保持
レジスタ群19から、分岐NoGoワードの分岐命令に
対する分岐予測先アドレスは選択回路18に与えられ、
選択回路18によりこのアドレスが選択され、命令取出
しアドレスレジスタ11にセットされる。これにより、
分岐NoGoワード内の分岐命令に対する分岐予測先ア
ドレスの命令の先取りが開始される。
【0041】従って、分岐NoGoワード内に存在する
分岐命令に対しても分岐予測が有効となり、分岐予測率
が向上し、命令先取りに関する機能の有効利用が図れ
る。
【0042】図8に示す命令列を、第1の実施例で実行
した結果を図9に、第2の実施例で実行した結果を図1
0に夫々示す。
【0043】図8の分岐命令Bが分岐Go予測され、分
岐命令BのNoGo側の命令である分岐命令Dに対して
も、分岐予測機能により分岐予測先アドレスの生成が可
能な状態で、分岐命令Bは分岐予測失敗し、結果NoG
oとなり分岐命令Dは、結果Goとなる場合について説
明する。
【0044】図8に示される命令が前記のような実行状
態で実行された場合、第1の実施例では、図9で示すよ
うにタイミングT2 において、分岐NoGoワード内の
分岐命令Dに対する分岐予測先アドレスが生成されてい
るにもかかわらず、保持する手段を持たないために、捨
てられてしまう。
【0045】従って、分岐命令Bが分岐予測失敗し、結
果NoGoとなった場合、タイミングT11において、分
岐命令Dは、分岐予測先アドレスが存在しないため、分
岐NoGo予測として扱われ、分岐NoGo予測失敗と
なり、実行に6Tを要してしまう。
【0046】上記の問題点を解決したのが、第2の実施
例であり、図10で示すように、タイミングT2 におい
て、分岐NoGoワード内の分岐命令Dに対する分岐予
測先アドレスを捨てることなく図1の分岐NoGoワー
ドの分岐予測先アドレス保持レジスタ群19に保持する
ことにより、分岐NoGoワード内の分岐命令Dに対す
る分岐予測を可能としている。
【0047】タイミングT6 において、分岐命令Bが分
岐Go予測失敗と判定された場合に、タイミングT7 に
おいて、図1の分岐NoGoワードの分岐予測先アドレ
スレジスタ群19に保持されていた分岐NoGoワード
内の分岐命令Dに対する分岐予測先アドレスが、選択回
路18に与えられ、選択回路により命令先取アドレスレ
ジスタ11にセットされる。
【0048】従って、NoGoワード内の分岐命令Dに
対する分岐予測が有効になり、タイミングT11におい
て、分岐Go予測成功となり分岐命令Dの実行は1Tで
行われる。
【0049】尚、上記実施例では、分岐Go予測が1つ
だけの場合について説明したが、命令の先取りが進行
し、先行する分岐Go予測が実行される前に更に分岐G
o予測が行われる場合がある。
【0050】この様な場合、分岐Go予測が行われる度
に前述の動作に従って分岐NoGoワードは図2の命令
先取りバッファ14内の固定領域に順次格納され、分岐
NoGoワードに対する分岐予測先アドレスは図1の分
岐NoGoワードの分岐予測先アドレス保持レジスタ群
19に順次格納するようにするのである。
【0051】分岐Go予測命令が実行されたとき、分岐
Go予測成功の場合、実行された分岐Go予測命令に対
応するバッファ14内の固定領域の内容と、レジスタ群
19の内容とが捨てられる。分岐Go予測失敗の場合
は、前述の動作に従って実行された分岐Go予測命令に
対応するバッファ14内の固定領域の内容と、レジスタ
群19の内容とが読出され、命令先取り動作が実行され
る。従って、複数個N(Nは2以上の整数)の分岐Go
予測に対応できることになるのである。
【0052】
【発明の効果】以上説明したように、本発明によれば、
分岐Go予測が失敗した時に、分岐命令の実行の高速化
を図ることが可能となると共に、メモリ索引効率を向上
させて命令供給能力を向上させるという効果がある。ま
た、ハードウェア量の増加が少ないという利点がある。
更に、複数の分岐Go予測に対応できるという効果もあ
る。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】命令先取りバッファ14の内部の命令格納形式
を示す図である。
【図3】従来の命令先取り装置のブロック図である。
【図4】分岐命令を有する命令列の一例を示す図であ
る。
【図5】従来方式による分岐Go予測が予測失敗したと
きの実行経過の一例を示すタイムチャートである。
【図6】従来方式による分岐Go予測が予測失敗したと
きの実行過程の他の例を示すタイムチャートである。
【図7】本発明の第1の実施例による分岐Go予測が予
測失敗したときの実行過程を示すタイムチャートであ
る。
【図8】本発明の実施例に用いる命令列を示す図であ
る。
【図9】第1の実施例により図8の命令列を実行する過
程を示すタイムチャートである。
【図10】第2の実施例により図8の命令列を実行する
過程を示すタイムチャートである。
【符号の説明】
11 命令取出しアドレスレジスタ 12 命令メモリ 13 分岐予測機能 14 命令先取りバッファ 15 分岐予測先アドレスレジスタ 16 アドレスリカバリ機能 17 カウンタ 18 選択回路 19 分岐NoGoワードの分岐予測先アドレスレジス
タ群

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令取出しアドレスレジスタのアドレス
    によりメモリから命令を取出して命令先取りバッファに
    格納すると同時に前記アドレスにより分岐予測手段を索
    引して分岐予測アドレスを生成する第1のステージと、
    前記命令先取りバッファの命令を次段の命令解読ステー
    ジへ供給すると同時に前記分岐予測先アドレスを前記命
    令取出しアドレスレジスタに供給する第2のステージと
    からなる命令先取りステージを有するパイプライン処理
    方式の情報処理装置における命令先取り装置であって、
    メモリから読出された分岐命令を含む命令ワードを前記
    命令先取りバッファに格納する際に、前記分岐予測手段
    により分岐Go予測された第1〜第N(Nは2以上の整
    数)の分岐命令を含む命令ワードを前記命令先取りバッ
    ファに夫々格納し、これ等命令ワードの各々に続いて前
    記第1〜第Nの分岐命令NoGo方向の命令を含む命令
    ワードを分岐NoGoワードとして前記命令先取りバッ
    ファの予め定められた固定領域に夫々格納制御する手段
    と、前記分岐Go予測された分岐命令が実行されて分岐
    予測失敗して分岐NoGoと判定された場合に、前記命
    令先取りバッファに格納されている前記分岐NoGoワ
    ードの命令を前記命令解読ステージへ供給し、その後の
    命令先取りは前記分岐NoGoワードの後続ワードから
    開始するよう制御する手段とを含むことを特徴とする命
    令先取り装置。
  2. 【請求項2】 前記分岐予測手段により分岐Go予測さ
    れた前記第1〜第Nの分岐命令の各分岐先アドレスを格
    納する分岐予測先アドレスレジスタと、前記分岐予測手
    段により予測が行われた第1〜第Nの前記分岐NoGo
    ワード内に含まれている分岐命令に対する各分岐予測先
    アドレスを保持する分岐NoGoワード分岐予測先アド
    レスレジスタと、これ等両レジスタの出力を選択して前
    記命令取出しレジスタへ格納制御する手段とを含むこと
    を特徴とする請求項1記載の命令先取り装置。
JP35388091A 1991-12-18 1991-12-18 命令先取り装置 Pending JPH05165636A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35388091A JPH05165636A (ja) 1991-12-18 1991-12-18 命令先取り装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35388091A JPH05165636A (ja) 1991-12-18 1991-12-18 命令先取り装置

Publications (1)

Publication Number Publication Date
JPH05165636A true JPH05165636A (ja) 1993-07-02

Family

ID=18433851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35388091A Pending JPH05165636A (ja) 1991-12-18 1991-12-18 命令先取り装置

Country Status (1)

Country Link
JP (1) JPH05165636A (ja)

Similar Documents

Publication Publication Date Title
JP2603626B2 (ja) データ処理装置
US6338136B1 (en) Pairing of load-ALU-store with conditional branch
JP2005182659A (ja) Vliw型dsp,及びその動作方法
JP3779012B2 (ja) 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US10558462B2 (en) Apparatus and method for storing source operands for operations
JPH05173785A (ja) 命令先取り装置
JP2771373B2 (ja) 命令先取り装置
JPH05165636A (ja) 命令先取り装置
JPH05165635A (ja) 命令先取り装置
JPH11345121A (ja) プログラム制御ユニット用の命令取り出し装置および方法
JPH05165634A (ja) 命令先取り装置
JPH05173784A (ja) 命令先取り装置
JP2843844B2 (ja) 並列演算処理装置
JPH0342723A (ja) データ処理装置
JPS60241136A (ja) デ−タ処理装置
JP2503223B2 (ja) 先行制御方式
JP2545594B2 (ja) オペランドデータ先取り方式
JP3668643B2 (ja) 情報処理装置
JPH08171491A (ja) ディスパッチされた制御転送命令状態に基づきより高速で命令を先取りするための方法及び装置
JPH03154926A (ja) 命令先取り方式及び装置
JP5013966B2 (ja) 演算処理装置
JPH0348535B2 (ja)
JP2010140398A (ja) データ処理装置及びデータ処理方法
JPH06314196A (ja) 情報処理方法および装置