JPH07239781A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH07239781A
JPH07239781A JP5331594A JP5331594A JPH07239781A JP H07239781 A JPH07239781 A JP H07239781A JP 5331594 A JP5331594 A JP 5331594A JP 5331594 A JP5331594 A JP 5331594A JP H07239781 A JPH07239781 A JP H07239781A
Authority
JP
Japan
Prior art keywords
instruction
branch
buffer
decoding
signal
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
JP5331594A
Other languages
English (en)
Inventor
Tomonaga Itoi
朋永 糸井
Hiroshi Kurokawa
黒川  洋
健 ▲吉▼永
Takeshi Yoshinaga
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5331594A priority Critical patent/JPH07239781A/ja
Publication of JPH07239781A publication Critical patent/JPH07239781A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 既にプリフェッチされている分岐先命令を使
用することによって、分岐命令の処理を高速化する。 【構成】 バッファ218Aが現在有効なバッファであ
るとする。無条件分岐命令を解読し、その分岐命令が短
距離前方分岐であって、分岐先アドレスがバッファ21
8Aに既に先取りされてれば、バッファの出力ポインタ
330Aを分岐先アドレスに設定し、また、条件分岐命
令を解読し、その分岐命令が短距離前方分岐であって、
分岐先アドレスがバッファ218Aに既に先取りされて
れば、セレクタ212Aでバッファ218Aからのデー
タを選択し、バッファ220Aへ格納する。セレクタ2
26Aでバッファ220Aを選択し、バッファの出力ポ
インタ330Aを分岐先アドレスに設定する。これによ
り、上記何れの場合も、キャッシュに命令要求を出すこ
となく、高速に分岐先命令を読み出すことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パイプライン処理を行
なう情報処理装置に係り、特に命令プリフェッチ機構を
有する情報処理装置に関する。
【0002】
【従来の技術】一般に高速の計算機では、予め主記憶あ
るいはキャッシュより先取り(プリフェッチ)された命
令を、高速にアクセス可能な小容量の命令プリフェッチ
バッファに格納することによって、命令フェッチ時のメ
モリアクセスにより生じる実行の遅れを実質的に削減す
る命令プリフェッチ制御が行われている。
【0003】図5は、記憶装置から命令を先取りする命
令プリフェッチ機構を有する情報処理装置の従来技術の
一実例を示す図であり、以下、この図を参照して命令プ
リフェッチ機構を説明する。図5において、100は命
令プリフェッチ機構、200は先取りした命令を格納
し、また格納された命令を取り出す命令プリフェッチバ
ッファ、300はキャッシュ700からの命令の取り出
し、またバッファに格納されている命令の取り出し等の
指示制御を行なう命令プリフェッチ制御部、400は取
り出された命令の解読を行なう命令制御部、402は命
令レジスタ、406は命令レジスタ402に格納されて
いる命令を解読するデコーダ、412はデコーダ406
によって解読された命令が分岐命令の場合に分岐先アド
レスを生成する分岐先アドレス生成回路、500はパイ
プライン処理により命令を実行する算術論理演算回路
(以下、ALUという)、600は解読された命令が分
岐命令であるとき分岐命令が分岐するか否かを予測する
分岐予測機構、700はキャッシュである。
【0004】図5に示す命令プリフェッチ機構を有する
情報処理装置において、命令フェッチ処理は次の4個の
ステージに分割して処理される。まず、命令解読のステ
ージが実行される。命令レジスタ402に格納された命
令は、デコーダ406に転送される。デコーダ406は
命令を解読して、命令長414を命令プリフェッチ制御
部に転送するとともに、命令解読結果408をALU5
00に転送する。また、デコーダ406は、解読してい
る命令が分岐命令である場合には、解読結果を分岐先ア
ドレス生成回路412に転送する。さらに、デコーダ4
06は、解読している命令が無条件分岐命令である場合
には、デコード時分岐成立信号416を出力し、命令プ
リフェッチ制御部300に転送し、解読している命令が
条件分岐命令である場合には、条件分岐命令であること
を示す条件分岐命令信号415を出力し、命令プリフェ
ッチ制御部300に転送する。また、デコーダ406
は、命令の解読が終了すると、デコード終了信号413
を出力し、命令プリフェッチ制御部300に転送する。
一方、分岐予測機構600は、命令プリフェッチ制御部
から転送される分岐命令の命令アドレス304を利用し
て分岐成立予測信号602を出力し、命令プリフェッチ
制御部300に転送する。命令プリフェッチ制御部30
0は、デコード時分岐成立信号416と条件分岐命令信
号415とのいずれも出力されていない場合、すなわ
ち、分岐命令でない場合、命令プリフェッチバッファ2
00の使用状態を調べ、命令プリフェッチバッファ20
0に空きがあれば、既に命令プリフェッチバッファ20
0に格納されている命令列に続く命令の読み出しを要求
する命令読み出し要求信号306、および命令読み出し
要求アドレス307を出力し、キャッシュ700に転送
する。デコード時分岐成立信号414と条件分岐命令信
号415とのいずれかが出力されている場合、分岐先ア
ドレス418の命令の読み出しを要求する命令読み出し
要求信号306、および命令読み出し要求アドレス30
7を出力し、キャッシュ700に転送する。
【0005】次のアドレス変換のステージでは、キャッ
シュ700は、命令読み出し要求信号306にもとづ
き、要求アドレスを物理アドレスに変換する処理を行な
う。次のキャッシュアクセスのステージでは、キャッシ
ュ700は、前のステージで変換された物理アドレスに
よって、キャッシュメモリをアクセスし、要求アドレス
に格納されているデータを取り出し、キャッシュ読み出
しデータ702が命令プリフェッチバッファ200に格
納される。
【0006】次の命令バッファ読み出しのステージで
は、次の処理が実行される。命令プリフェッチ制御部3
00からの制御信号302によって、命令プリフェッチ
バッファ200から、次のマシンサイクルに解読する命
令が読み出される。また、ALU500はデコーダ40
6から転送された命令解読結果408にもとづいて、各
種の演算を実行する。ALU500は、条件分岐命令に
対しては、分岐を起こすか否かの分岐判定を行ない、分
岐成立と判定した場合には分岐成立信号502を分岐予
測機構600に転送する。分岐予測機構600は、分岐
成立予測信号602と分岐成立信号502とを比較し、
一致していなければ、分岐予測に失敗したことを示す分
岐予測失敗信号604を命令プリフェッチ制御部300
に転送する。命令プリフェッチ制御部300は、分岐予
測失敗信号604が出力されている場合、命令プリフェ
ッチバッファ200および命令プリフェッチバッファ制
御情報を分岐予測以前の状態に復帰する処理を行なう。
なお、分岐先アドレス生成回路412、分岐予測機構6
00、キャッシュ700に関する詳細は、本発明の範囲
外であるため、ここでは省略する。
【0007】図6は従来技術による命令プリフェッチ機
構の一実例を示すブロック図、図7、図8は従来技術の
一実例における命令プリフェッチ制御部を示す図、図9
は従来技術の一実例における命令プリフェッチポインタ
制御を示す図であり、以下これらの図を参照して従来技
術を説明する。
【0008】図6において、218Bはフェッチされた
命令列を格納するバッファ番号0のバッファ、220B
はフェッチされた命令列を格納するバッファ番号1のバ
ッファ、226Bはバッファ番号0のバッファ218B
とバッファ番号1のバッファ220Bとのいずれかを選
択するセレクタ、230Bはセレクタ226Bで選択さ
れたバッファから目的の命令を取り出すためのセレクタ
である。また、図7、図8において、340Bはバッフ
ァ番号0のバッファ218Bとバッファ番号1のバッフ
ァ220Bのいずれが有効であるかを示すバッファ番号
を格納するレジスタ、800Bは命令プリフェッチバッ
ファ200に格納されている命令列を示す各種ポインタ
(後述)を制御するポインタ制御部、356Bは命令プ
リフェッチバッファの空きを検出するバッファ空き判定
回路、357Bは分岐命令による命令要求とバッファの
空きによる命令要求とを調停する調停回路である。ま
た、図9において、812B、814Bはそれぞれ、バ
ッファ番号0のバッファ222B、バッファ番号1の2
24Bに格納されている命令列の先頭アドレスを示すバ
ッファ出力ポインタを格納するレジスタであり、816
B、818Bはそれぞれ、バッファ番号0のバッファ2
22B、バッファ番号1のバッファ224Bに格納され
ている命令列の最後尾アドレスを示すバッファ入力ポイ
ンタを格納するレジスタである。822Bはバッファ出
力ポインタ812B、814Bのいずれかを選択するセ
レクタであり、824Bはバッファ入力ポインタ816
B、818Bのいずれかを選択するセレクタである。各
図において、同一の符号は同一あるいは対応する対象を
表わす。図6において、バッファを複数持つ理由は、条
件分岐命令の分岐判定に先行して、分岐不成立の場合の
後続命令列と分岐成立の場合の後続命令列とを先取り
し、命令プリフェッチバッファに格納するためである。
これによって、分岐判定が下った時に次に実行すべき命
令を速やかに命令プリフェッチバッファから取り出すこ
とが可能になる。
【0009】図6、図7、図8、図9を用いて、命令フ
ェッチ処理をより詳細に説明する。まず、命令解読のス
テージでは、次の処理が実行される。命令プリフェッチ
制御部300Bでは、命令制御部400から条件分岐命
令信号415とデコード時分岐成立信号416を、分岐
予測機構600から分岐成立予測信号602と分岐予測
失敗信号604とを受け取る。デコード時分岐成立信号
416、分岐成立予測信号602、分岐予測失敗信号6
04のいずれかが出力されている場合には、次のマシン
サイクルからは現在有効でないバッファから命令が読み
出されるので、バッファ切り替え信号334Bによっ
て、現在のバッファ番号を反転し、レジスタ340Bに
格納する。また、デコード時分岐成立信号416、条件
分岐命令信号415のいずれかが出力されている場合に
は、分岐成立の場合の後続命令を先取して現在有効でな
いバッファに格納するために、現在有効でないバッファ
を初期化するためのバッファ初期化信号350Bがポイ
ンタ制御部800Bと要求調停回路357Bへ転送され
る。
【0010】また、条件分岐命令信号415、デコード
時分岐成立信号416のいずれも出力されていない場合
は、現在有効なバッファに格納されている命令列の先頭
アドレスを示すバッファ出力ポインタ330Bおよび、
現在有効なバッファに格納されている命令列の最後尾ア
ドレスを示すバッファ入力ポインタ328Bが、バッフ
ァ空き判定回路356Bに転送され、比較される。本従
来技術の一例では、一つのバッファの容量は32バイ
ト、一回のキャッシュからのデータの読み出しサイズは
8バイトであり、バッファの空きが8バイト以上である
場合に、バッファ空き信号355Bが要求調停回路35
7Bへ転送される。要求調停回路357Bでは、バッフ
ァ初期化信号350Bを優先的に選択して、キャッシュ
700へ命令プリフェッチのための命令読み出し要求信
号306Bおよび命令読み出し要求アドレス307Bと
を出力する。
【0011】ポインタ制御部800Bでは、命令読み出
し要求信号306B、現在のバッファ番号326B、バ
ッファ初期化信号350B、デコード終了信号413、
命令長414、分岐先アドレス418が、ポインタ初期
化・更新回路820Bに転送される。ポインタ初期化・
更新回路820Bは、バッファ初期化信号350Bが出
力されている場合に、現在有効でないバッファのバッフ
ァ出力ポインタ(図中では他OPT)と現在有効でない
バッファのバッファ入力ポインタ(図中では他IPT)
とに分岐先アドレスを初期値として格納する。また、ポ
インタ初期化・更新回路820Bは、デコード終了信号
413が出力されるごとに現在有効なバッファのバッフ
ァ出力ポインタ(図中では自OPT)に命令長414を
加算し、命令読み出し要求信号306B出力されるごと
に現在有効なバッファのバッファ入力ポインタ(図中で
は自IPT)に一回のキャッシュからのデータの読み出
しサイズ(本従来技術の一例では8バイト)を加算す
る。また、命令読み出し要求306Bがレジスタ370
に格納され、命令読み出し要求306Bによって読み出
されるデータを格納すべきバッファの番号326Bがレ
ジスタ372Bに格納される。
【0012】次のアドレス変換のステージでは、キャッ
シュ700において、命令読み出し要求アドレス307
Bが物理アドレスに変換される。次のキャッシュアクセ
スのステージでは、レジスタ370B、および372B
に格納された命令読み出し要求、およびバッファ番号か
ら、バッファ書き込み信号318B、320Bが生成さ
れ、命令プリフェッチバッファ200Bへ転送される。
命令プリフェッチバッファ200Bでは、キャッシュ7
00から転送されたキャッシュ読み出しデータ702
を、バッファ書き込み信号318B、320Bの出力さ
れいるバッファへ格納する。
【0013】次の命令バッファ読み出しのステージで
は、以下の処理が行われる。命令プリフェッチバッファ
200Bでは、命令プリフェッチ制御部300Bから現
在のバッファ番号326Bが、セレクタ226Bに転送
され、現在有効なバッファを選択し、セレクタ230B
に転送する。セレクタ230Bは、命令プリフェッチ制
御部300Bから転送される現在有効なバッファのバッ
ファ出力ポインタ330Bによって、セレクタ226B
の出力から目的の命令を取り出し、命令レジスタ402
に転送する。これによって、命令プリフェッチバッファ
200に空きが生じてから3マシンサイクル、あるいは
分岐命令を解読してから3マシンサイクル後に、命令が
命令プリフェッチバッファ200に格納される。本従来
技術の一例では一つの命令プリフェッチバッファの容量
は32バイトであり、命令長は最大6バイトであるの
で、分岐命令による以外の命令フェッチ時の処理の遅れ
を削減することができる。この種の命令プリフェッチ方
法に関する技術として、例えば、特開昭54−9513
9、特開昭57−29154、特開昭60−17514
7、特開昭62−127943などが知られている。
【0014】
【発明が解決しようとする課題】前述した従来技術は、
分岐命令が分岐成立または分岐成立予測であるという条
件によって分岐先命令をフェッチするため、既に分岐先
命令がプリフェッチされている場合でも再び分岐先命令
をフェッチし、キャッシュアクセスによる実行の遅れを
生じ、分岐命令の処理性能が低下するという問題点を有
している。図10は、図5に示した命令プリフェッチ機
構を有する情報処理装置の一例における命令処理のタイ
ムチャートを示しており、理想的には、パイプラインの
原理によって各命令はオーバーラップして処理され、毎
マシンサイクルに一つの命令を扱うことが可能である。
しかし、分岐命令が発生すると、この理想的なオーバー
ラップは可能ではなくなる。図12は、図6、図7、図
8、図9に示した従来技術による命令プリフェッチ機構
を備えた情報処理装置における分岐命令処理のタイムチ
ャートを示している。図12に示すように、従来技術
は、分岐先命令をキャッシュから取り出してくるまで分
岐先命令を実行できないため、命令フェッチ時のキャッ
シュアクセスによる実行の遅れが生じ、分岐命令の処理
性能が低下する。本発明の目的は、前記従来技術の問題
点を解決し、既に分岐先命令がプリフェッチされている
場合には該既にプリフェッチされた命令を使用すること
によって、分岐命令の処理性能の高速化を図ることので
きる命令プリフェッチ機構を有する情報処理装置を提供
することにある。
【0015】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、記憶装置から命令を先取りする命令先取
り手段と、該命令先取り手段によって取り出された命令
を解読する解読手段と、該解読手段によって解読された
命令をパイプライン処理により実行する命令実行手段を
備え、さらに、前記命令先取り手段は、先取りされた命
令を格納する命令格納手段と、前記命令格納手段から取
り出すべき命令の位置を指示する指示手段と、該指示手
段によって前記命令格納手段から命令を取り出す命令取
出し手段を備える情報処理装置において、取り出された
命令を前記解読手段で解読した結果が分岐命令である場
合に前記分岐命令の分岐先命令が既に前記命令格納手段
に格納されていることを判定する判定手段を前記命令先
取り手段に設け、該判定手段が前記分岐命令の分岐先命
令が既に前記命令格納手段に格納されていることを示す
とき、前記指示手段は前記命令格納手段における分岐先
命令位置を指示し、該指示に基づき前記命令取出し手段
が分岐先命令を取り出すよう構成している。また、記憶
装置から命令を先取りする命令先取り手段と、該命令先
取り手段によって取り出された命令を解読する解読手段
と、該解読手段によって解読された命令をパイプライン
処理により実行する命令実行手段を備え、さらに、前記
命令先取り手段は、先取りされた命令を格納する複数の
命令格納手段と、該複数の命令格納手段のいずれが有効
であるかを指示する第1の指示手段と、該第1の指示手
段により指示された有効な命令格納手段の内容のうち取
り出すべき命令の位置を指示する第2の指示手段と、前
記第1の指示手段によって前記複数の命令格納手段のう
ち有効な1つを選択する第1の選択手段と前記第2の指
示手段の指示により前記第1の選択手段により選択され
た命令格納手段の内容から取り出すべき命令を選択する
第2の選択手段を有する命令取出し手段とを備える情報
処理装置において、取り出された命令を前記解読手段で
解読した結果が分岐命令である場合に前記分岐命令の分
岐先命令が既に前記命令格納手段に格納されていること
を判定する判定手段と、前記有効な命令格納手段の内容
を他の命令格納手段に複写する複写手段とを前記命令先
取り手段に設け、該判定手段が前記分岐命令の分岐先命
令が既に前記有効な命令格納手段に格納されていること
を示すとき、前記複写手段によって前記有効な命令格納
手段の内容を他の命令格納手段に複写し、前記第1の指
示手段は前記他の命令格納手段が有効であることを指示
し、前記第2の指示手段は分岐先命令位置を指示するよ
う構成し、前記命令取出し手段によって分岐先命令を取
り出すようにしている。
【0016】
【作用】本発明は、解読された命令が分岐命令の場合、
分岐命令の分岐先命令が既にプリフェッチされているか
否かを判定し、判定結果が既にプリフェッチされている
ことを示すときは、既にプリフェッチされている命令を
使用するようにしているので、分岐命令の処理性能を高
速化することができる。
【0017】
【実施例】以下、本発明の一実施例を図面により詳細に
説明する。図1は本発明の一実施例の構成を示すブロッ
ク図、図2、図3は本発明の一実施例における命令プリ
フェッチ制御部を示す図、図4は本発明の一実施例にお
ける命令プリフェッチポインタ制御を示す図であり、以
下これらの図を参照して本発明を説明する。図1におい
て、210A、212Aはキャッシュ700から転送さ
れたキャッシュ読み出しデータ702と他方のバッファ
から転送されたデータとを選択するセレクタ、218
A、220Aはプリフェッチされた命令列を格納するバ
ッファ、226Aはバッファ218Aとバッファ220
Aとのいずれかを選択するセレクタである。また、図
2、図3において、800Aは命令プリフェッチバッフ
ァ200に格納されている命令列を示す各種ポインタを
制御するポインタ制御部、352Aは分岐が短距離前方
分岐であることを判定する短距離前方分岐判定回路、3
57Aは分岐命令による命令要求とバッファの空きによ
る命令要求とを調停する調停回路、380Aはアドレス
を比較するアドレス比較回路である。各図において、同
一の符号は同一あるいは対応する対象を表わす。また、
各図において、図5、図6、図7、図8、図9と同じ機
能を有するものは、末尾文字をBからAに変更した符号
で表わす。
【0018】図1、図2、図3、図4に示す本発明の一
実施例において、無条件分岐命令は次のように実行され
る。まず、命令解読のステージが実行される。命令制御
部400(図5参照)は、無条件分岐命令を解読する
と、無条件に分岐することを示すデコード時分岐成立信
号416と分岐先アドレス418を出力し、条件分岐命
令であることを示す条件分岐命令信号415は出力され
ない。また、分岐予測機構600は無条件分岐命令に対
しては分岐予測を行わないため、分岐成立予測信号60
2は出力されない。また、分岐予測失敗信号604は過
去に予測した条件分岐命令の分岐予測が失敗であったと
判明した場合に出力される信号であり、失敗した分岐予
測以前の状態に復旧するために使用される。
【0019】以下では、分岐予測失敗信号604が出力
されていない場合を考える。命令プリフェッチ制御部3
00Aは、命令制御部400から、デコード時分岐成立
信号416と分岐先アドレス418を受ける。分岐先ア
ドレス418は、短距離前方分岐判定回路352Aに転
送され、現在有効なバッファに格納されている命令列の
先頭を示すバッファ出力ポインタ330Aおよび、現在
有効なバッファに格納されている命令列の最後尾を示す
バッファ入力ポインタ328Aと比較され、分岐先アド
レス418がバッファ出力ポインタ330Aとバッファ
入力ポインタ328Aとの間にあれば、分岐先命令は既
にキャッシュに対して読み出し要求されているので、す
なわち、分岐先命令は既にバッファに格納されている
か、またはキャッシュに対して読み出し要求中であると
判定されるので、短距離前方分岐信号354Aを出力す
る。無条件分岐命令に対して短距離前方分岐信号354
Aが出力されると、332A、342A、344A、3
48Aから成る回路によって、バッファ切り替え信号3
34Aとバッファ初期化信号350Aは抑止され、ま
た、回路343Aによって分岐先命令読み出し要求信号
345Aは抑止される。
【0020】レジスタ340Aは現在有効なバッファの
番号(’0’又は’1’)を格納しており、バッファ切
り替え信号334Aが出力されると、バッファ番号反転
回路336Aによって反転(’0’→’1’又は’1’
→’0’)される。無条件分岐命令に対して短距離前方
分岐信号354Aが出力されると、バッファ切り替え信
号334Aが抑止されるため、現在有効なバッファの番
号326Aは変わらない。
【0021】要求調停回路357Aは、分岐先命令読み
出し要求信号345Aと、バッファ空き判定回路356
Aによって現在有効なバッファに8バイト以上の空きが
あることが検出された場合に出力される後続命令列の読
み出し要求355Aが、同時に出力された場合に、分岐
先命令読み出し要求信号345Aを優先的に選択し、命
令読み出し要求信号306Aと命令読み出し要求アドレ
ス307Aを出力する回路である。以下では、後続命令
列の読み出し要求355Aが出力されていない場合を考
える。無条件分岐命令に対して短距離前方分岐信号35
4Aが出力されると、分岐先命令読み出し要求信号34
5Aが抑止されるため、命令読み出し要求信号306A
と命令読み出し要求アドレス307Aは出力されない。
【0022】一方、ポインタ制御部800Aは以下のよ
うに動作する。図4において、812A、814Aはそ
れぞれ、バッファ#0、#1の出力ポインタを格納する
レジスタであり、816A、818Aはそれぞれ、バッ
ファ#0、#1の入力ポインタを格納するレジスタであ
る。また、ポインタ初期化・更新回路820A中の自I
PT、自OPTはそれぞれ、現在有効なバッファの入力
ポインタ、出力ポインタを示しており、他IPT、他O
PTはそれぞれ、現在有効なバッファの入力ポインタ、
出力ポインタを示している。無条件分岐命令に対して短
距離前方分岐信号354Aが出力されると、バッファ初
期化信号350Aは抑止されるため、分岐先アドレス4
18が現在有効なバッファの出力ポインタ(自OPT)
に設定される。また、セレクタ822A、824Aによ
って、現在有効なバッファの出力ポインタが330A
に、現在有効なバッファの入力ポインタが328Aに出
力される。次のサイクルでは、バッファが切り替わら
ず、現在有効なバッファの出力ポインタが分岐先アドレ
スを指している。セレクタ226Aは現在有効なバッフ
ァ番号326Aによって、現在有効なバッファのデータ
を選択し、セレクタ230Aは現在有効なバッファの出
力ポインタ330Aによって、セレクタ226Aの出力
データ228Aから、分岐先命令を選択し、命令レジス
タ402に転送する。このため、分岐先命令が当該無条
件分岐命令の解読以前にキャッシュ700へプリフェッ
チ要求されており、既にバッファに格納されている場合
は分岐先命令が命令レジスタ402へ格納される。分岐
先命令が当該無条件分岐命令の解読以前にキャッシュ7
00へプリフェッチ要求されているが、未だバッファに
格納されていない場合は、分岐先命令がバッファに格納
されるのを待って分岐先命令が命令レジスタ402へ格
納される。いずれの場合も、当該無条件分岐命令の解読
後新たに分岐先命令をキャッシュ700へフェッチ要求
することに比べて、高速に分岐先命令を命令レジスタ4
02に格納することができる。以上の動作によって、無
条件分岐命令が短距離前方分岐である場合には、分岐先
命令をキャッシュ700に要求せず、既にプリフェッチ
されている命令を使用することが可能になる。
【0023】また、図1、図2、図3、図4に示す本発
明の一実施例において、条件分岐命令は次のように実行
される。まず、命令解読のステージが実行される。命令
制御部400は、条件分岐命令を解読すると、条件分岐
命令であることを示す条件分岐命令信号415と分岐先
アドレス418を出力し、無条件に分岐することを示す
デコード時分岐成立信号416は出力されない。また、
分岐予測機構600は条件分岐命令に対しては分岐予測
を行う。以下では、分岐成立予測の場合を考える。この
時、分岐成立予測信号602が出力される。また、分岐
予測失敗信号604は過去に予測した条件分岐命令の分
岐予測が失敗であったと判明した場合に出力される信号
であり、失敗した分岐予測以前の状態に復旧するために
使用される。以下では、分岐予測失敗信号604が出力
されていない場合を考える。命令プリフェッチ制御部3
00Aは、命令制御部400から、条件分岐命令信号4
15と分岐先アドレス418を受け取り、分岐予測機構
600から、分岐成立予測信号602を受ける。条件分
岐命令信号415は、回路348Aに転送され、バッフ
ァ初期化信号350Aが出力され、分岐成立予測信号6
02は、回路332Aに転送され、バッファ切り替え信
号334Aが出力される。この信号334により次のマ
シンサイクルでレジスタ340Aは現在のバッファ番号
を反転し、次のマシンサイクルからは現在有効でないバ
ッファが有効なバッファに切り替わる。現マシンサイク
ルでは現在有効なバッファはそのまま有効である。分岐
先アドレス418は、短距離前方分岐判定回路352A
に転送され、現在有効なバッファに格納されている命令
列の先頭を示すバッファ出力ポインタ330Aおよび、
現在有効なバッファに格納されている命令列の最後尾を
示すバッファ入力ポインタ328Aと比較され、分岐先
アドレス418がバッファ出力ポインタ330Aとバッ
ファ入力ポインタ328Aとの間にあれば、分岐先命令
は既にキャッシュに対して読み出し要求されているの
で、すなわち、分岐先命令は既にバッファに格納されて
いるか、またはキャッシュに対して読み出し要求中であ
ると判定されるので、短距離前方分岐信号354Aを出
力する。条件分岐命令に対して、短距離前方分岐信号3
54Aが出力されると、回路343Aによって分岐先命
令読み出し要求信号345Aは抑止される。
【0024】要求調停回路357Aは、分岐先命令読み
出し要求信号345Aと、バッファ空き判定回路356
Aによって現在有効なバッファに8バイト以上の空きが
あることが検出された場合に出力される後続命令列の読
み出し要求355Aが、同時に出力された場合に、分岐
先命令読み出し要求信号345Aを優先的に選択し、命
令読み出し要求信号306Aと命令読み出し要求アドレ
ス307Aを出力する回路である。以下では、後続命令
列の読み出し要求355Aが出力されていない場合を考
える。条件分岐命令に対して短距離前方分岐信号354
Aが出力されると、分岐先命令読み出し要求信号345
Aが抑止されるため、命令読み出し要求信号306Aと
命令読み出し要求アドレス307Aは出力されない。レ
ジスタ340Aは現在有効なバッファの番号(’0’又
は’1’)を格納しており、バッファ切り替え信号33
4Aが出力されると、次のサイクルでバッファ番号反転
回路336Aによって反転(’0’→’1’又は’1’
→’0’)される。358A〜366Aからなる回路
は、バッファ入力セレクト信号310A、312Aを生
成する回路である。以下では、現在有効なバッファがバ
ッファ#0である場合を考える。この時、326Aは現
在有効なバッファ番号’0’を示している。短距離前方
分岐信号354Aとバッファ初期化信号350Aが出力
されると、現在有効なバッファ(#0)のバッファ入力
セレクト信号310Aは出力されず、現在有効でないバ
ッファ(#1)のバッファ入力セレクト信号312Aが
出力される。これによって、セレクタ210Aは、バッ
ファ#0の入力としてキャッシュ700からの読み出し
データ702を選択し、セレクタ212Aは、バッファ
#1の入力としてバッファ#0に格納されているデータ
222Aを選択する。また、バッファ入力セレクト信号
310A、312Aは、それぞれ、回路390A、39
2Aに転送され、バッファ書き込み信号318A、32
0Aを生成する。現在有効でないバッファ(#1)のバ
ッファ入力セレクト信号312Aが出力されている場合
は、バッファ#1のバッファ書き込み信号320Aが出
力され、セレクタ212Aで選択されたデータ216を
バッファ#1(220A)に格納する。これにより、現
在有効なバッファ(#0)の内容は現在有効でないバッ
ファ(#1)へ複写される。これによって、現在有効で
ないバッファ(#1)に、現在有効なバッファ(#0)
の内容が初期値として格納される。
【0025】一方、ポインタ制御部800Aでは以下の
ように動作する。条件分岐命令に対して短距離前方分岐
信号354Aが出力されると、バッファ初期化信号35
0Aが出力されるため、ポインタ初期化・更新回路82
0Aによって、分岐先アドレス418が現在有効でない
バッファの出力ポインタ(他OPT)に設定され、現在
有効なバッファの入力ポインタ(自IPT)が現在有効
でないバッファの入力ポインタ(他IPT)に設定され
る。また、セレクタ822A、824Aによって、現在
有効なバッファの出力ポインタが330Aに、現在有効
なバッファの入力ポインタが328Aに出力される。ま
た、370A〜392Aからなる回路では、データ70
2を書き込むべきバッファを示すバッファ書き込み信号
318A、320Aを生成する。レジスタ370A、3
72A、374Aは、それぞれ、キャッシュ700の読
み出しデータ702に対応する命令読み出し要求、バッ
ファ番号、命令読み出し要求アドレスを保持している。
レジスタ376Aは、条件分岐命令に対して短距離前方
分岐信号354Aが出力された時には、この時点におい
て有効なバッファの入力ポインタ328Aが格納され、
それ以外の分岐命令に対しては’0’が格納され、以
後、保持される。レジスタ374Aの内容とレジスタ3
76Aの内容はアドレス比較回路380Aで比較され
る。レジスタ374Aの内容の方が大きい場合には、レ
ジスタ372Aで示されるバッファに対応するバッファ
書き込み信号が生成される。逆に、レジスタ374Aの
内容の方が小さい場合には、キャッシュ700の読み出
しデータ702は、短距離前方分岐信号354Aが出力
された時点ではキャッシュ700で処理中であった命令
読み出し要求に対応するものであるので、両方のバッフ
ァに対してバッファ書き込み信号318Aと320Aと
を出力する。これによって、分岐先命令が、短距離前方
分岐信号354Aが出力された時点ではキャッシュ70
0へプリフェッチ要求されているが、未だバッファには
格納されていない場合も、キャッシュに命令読み出し要
求を出すことなく、キャッシュに命令読み出し要求を出
すよりも早く、命令プリフェッチバッファから分岐先命
令を読み出すことができる。
【0026】次のサイクルでは、バッファが切り替わ
り、現在有効なバッファの出力ポインタが分岐先アドレ
スを指している。このため、分岐先命令が当該条件分岐
命令の解読以前にキャッシュ700へプリフェッチ要求
されており、既にバッファに格納されている場合は分岐
先命令が命令レジスタ402へ格納される。分岐先命令
が当該条件分岐命令の解読以前にキャッシュ700へプ
リフェッチ要求されているが、未だバッファに格納され
ていない場合は、分岐先命令がバッファに格納されるの
を待って分岐先命令が命令レジスタ402へ格納され
る。いずれの場合も、当該条件分岐命令の解読後新たに
分岐先命令をキャッシュ700へフェッチ要求すること
に比べて、高速に分岐先命令を命令レジスタ402に格
納することができる。以上の動作によって、無条件分岐
命令が短距離前方分岐である場合には、分岐先命令をキ
ャッシュ700に要求せず、既にプリフェッチされてい
る命令を使用することが可能になる。
【0027】図11は、図1、図2、図3、図4に示し
た本発明の一実施例による命令プリフェッチ機構を備え
た情報処理装置における分岐命令処理のタイムチャート
を示している。図11に示すように、本発明は、既に分
岐先命令がプリフェッチ要求されている場合には、分岐
先命令をキャッシュに要求せず、プリフェッチ要求され
たデータを使用するため、分岐命令の処理性能が向上す
る。
【0028】なお、前述した本発明の一実施例は、特に
説明を簡単にするために選ばれたもので、他の多くの構
成を取れることはいうまでもない。先取りした命令を格
納するバッファが2個であることや、バッファの容量が
32バイトであることや、1回の命令読み出し要求でキ
ャッシュから読み出されるデータのサイズが8バイトで
あることは、本発明の適用を制限するものではない。ま
た、構成によっては、無条件分岐命令に対しても、バッ
ファの内容を複写する方式をとってもよい。
【0029】
【発明の効果】以上説明したように本発明によれば、既
に分岐先命令がプリフェッチされている場合にはプリフ
ェッチされている命令を使用することができ、分岐先命
令を改めてフェッチする必要がないため、高速な分岐命
令処理速度を得ることができる。また、これによりシス
テムの性能を向上することができる。
【図面の簡単な説明】
【図1】 本発明の一実施例の構成を示す図である。
【図2】 本発明の一実施例における命令プリフェッチ
制御部の部分を示す図である。
【図3】 本発明の一実施例における命令プリフェッチ
制御部の残りの部分を示す図である。
【図4】 本発明の一実施例における命令プリフェッチ
ポインタ制御を示す図である。
【図5】 命令プリフェッチ機構を有する情報処理装置
の一例を示す図である。
【図6】 従来技術の一例を示す図である。
【図7】 従来技術の一例における命令プリフェッチ制
御部の部分を示す図である。
【図8】 従来技術の一例における命令プリフェッチ制
御部の残りの部分を示す図である。
【図9】 従来技術の一例における命令プリフェッチポ
インタ制御を示す図である。
【図10】 命令プリフェッチ機構を有する情報処理装
置における命令処理タイムチャートを示す図である。
【図11】 本発明の一実施例における分岐命令処理タ
イムチャートを示す図である。
【図12】 従来技術の一例における分岐命令処理タイ
ムチャートを示す図である。
【符号の説明】 100 命令プリフェッチ機構 200,200A,200B 命令プリフェッチバッフ
ァ 210A,212A セレクタ 218A,220A,218B,220B バッファ 226A,230A,226B、230B セレクタ 300,300A,300B 命令プリフェッチ機構 302,302A,302B 命令プリフェッチ制御信
号 304,304A,304B 命令アドレス 306,306A,306B 命令読み出し要求信号
(REQ) 307,307A,307B 命令読み出し要求アドレ
ス(ADR) 310A,312A バッファ入力セレクト信号 318A、320A,318B、320B バッファ書
き込み信号 326A,326B 現在有効なバッファ番号 328A,328B バッファ入力ポインタ 330A,330B バッファ出力ポインタ 334A,334B バッファ切り替え信号 336A,336B バッファ番号反転回路 350A,350B バッファ初期化信号(NEW) 352A 短距離前方分岐判定回路 354A 短距離前方分岐信号(SB) 356A,356B バッファ空き判定回路 357A,357B 要求調停回路 380A アドレス比較回路 340A,370A〜376A,340B,370B〜
372B レジスタ 332A,348A,382A、384A,390A,
392A,332B,348B 論理和回路 343A,344A,358A,364A,366A,
386A,388A,386B,388B 論理積回路 342A,362A、378A,378B 否定回路 400 命令制御部 402 命令レジスタ(IR) 406 デコーダ 408 ALUセットアップ信号 412 分岐先アドレス生成回路 413 デコード終了信号(DEND) 414 命令長(IL) 415 条件分岐命令信号(CB) 416 デコード時分岐成立信号(DTKN) 418 分岐先アドレス(TA) 500 算術論理演算回路(ALU) 502 分岐成立信号(TKN) 600 分岐予測機構 602 分岐成立予測信号(PTKN) 604 分岐予測失敗信号(FAIL) 700 キャッシュ 702 キャッシュ読み出しデータ 800,800A,800B 命令プリフェッチ・ポイ
ンタ制御部 812A〜818A,812B〜818B レジスタ 820A,820B ポインタ初期化・更新回路 822A,824A,822B,824B セレクタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 記憶装置から命令を先取りする命令先取
    り手段と、該命令先取り手段によって取り出された命令
    を解読する解読手段と、該解読手段によって解読された
    命令をパイプライン処理により実行する命令実行手段を
    備え、さらに、前記命令先取り手段は、先取りされた命
    令を格納する命令格納手段と、前記命令格納手段から取
    り出すべき命令の位置を指示する指示手段と、該指示手
    段によって前記命令格納手段から命令を取り出す命令取
    出し手段を備える情報処理装置において、 取り出された命令を前記解読手段で解読した結果が分岐
    命令である場合に前記分岐命令の分岐先命令が既に前記
    命令格納手段に格納されていることを判定する判定手段
    を前記命令先取り手段に設け、 該判定手段が前記分岐命令の分岐先命令が既に前記命令
    格納手段に格納されていることを示すとき、前記指示手
    段は前記命令格納手段における分岐先命令位置を指示
    し、該指示に基づき前記命令取出し手段が分岐先命令を
    取り出すよう構成したことを特徴とする情報処理装置。
  2. 【請求項2】 記憶装置から命令を先取りする命令先取
    り手段と、該命令先取り手段によって取り出された命令
    を解読する解読手段と、該解読手段によって解読された
    命令をパイプライン処理により実行する命令実行手段を
    備え、さらに、前記命令先取り手段は、先取りされた命
    令を格納する複数の命令格納手段と、該複数の命令格納
    手段のいずれが有効であるかを指示する第1の指示手段
    と、該第1の指示手段により指示された有効な命令格納
    手段の内容のうち取り出すべき命令の位置を指示する第
    2の指示手段と、前記第1の指示手段によって前記複数
    の命令格納手段のうち有効な1つを選択する第1の選択
    手段と前記第2の指示手段の指示により前記第1の選択
    手段により選択された命令格納手段の内容から取り出す
    べき命令を選択する第2の選択手段を有する命令取出し
    手段とを備える情報処理装置において、 取り出された命令を前記解読手段で解読した結果が分岐
    命令である場合に前記分岐命令の分岐先命令が既に前記
    命令格納手段に格納されていることを判定する判定手段
    と、前記有効な命令格納手段の内容を他の命令格納手段
    に複写する複写手段とを前記命令先取り手段に設け、 該判定手段が前記分岐命令の分岐先命令が既に前記有効
    な命令格納手段に格納されていることを示すとき、前記
    複写手段によって前記有効な命令格納手段の内容を他の
    命令格納手段に複写し、前記第1の指示手段は前記他の
    命令格納手段が有効であることを指示し、前記第2の指
    示手段は分岐先命令位置を指示するよう構成し、前記命
    令取出し手段によって分岐先命令を取り出すことを特徴
    とする情報処理装置。
JP5331594A 1994-02-25 1994-02-25 情報処理装置 Pending JPH07239781A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5331594A JPH07239781A (ja) 1994-02-25 1994-02-25 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5331594A JPH07239781A (ja) 1994-02-25 1994-02-25 情報処理装置

Publications (1)

Publication Number Publication Date
JPH07239781A true JPH07239781A (ja) 1995-09-12

Family

ID=12939297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5331594A Pending JPH07239781A (ja) 1994-02-25 1994-02-25 情報処理装置

Country Status (1)

Country Link
JP (1) JPH07239781A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918045A (en) * 1996-10-18 1999-06-29 Hitachi, Ltd. Data processor and data processing system
US6052776A (en) * 1996-10-18 2000-04-18 Hitachi, Ltd. Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
US6862680B2 (en) 2001-05-11 2005-03-01 Renesas Technology Corp. Microprocessor processing specified instructions as operands
JP2013131036A (ja) * 2011-12-21 2013-07-04 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918045A (en) * 1996-10-18 1999-06-29 Hitachi, Ltd. Data processor and data processing system
US6052776A (en) * 1996-10-18 2000-04-18 Hitachi, Ltd. Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
US6862680B2 (en) 2001-05-11 2005-03-01 Renesas Technology Corp. Microprocessor processing specified instructions as operands
JP2013131036A (ja) * 2011-12-21 2013-07-04 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
EP2608016A3 (en) * 2011-12-21 2014-03-26 Fujitsu Limited Processing device and method for controlling processing device

Similar Documents

Publication Publication Date Title
EP0162778B1 (en) Instruction prefetch system for conditional branch instruction for central processor unit
JPH0769818B2 (ja) デ−タ処理装置
JPH03129433A (ja) 並列処理装置および並列処理方法
EP0476722B1 (en) Data processing system
JPH0374434B2 (ja)
JPH03282904A (ja) プログラマブルコントローラ
JPH05233271A (ja) データプロセッサ
JPH06100968B2 (ja) 情報処理装置
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
JPH07239781A (ja) 情報処理装置
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
JPS63197232A (ja) マイクロプロセツサ
JP3027627B2 (ja) プログラマブルコントローラの演算プロセッサ
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JPH06168263A (ja) ベクトル処理装置
JP2619425B2 (ja) シーケンスコントローラ
JP4528993B2 (ja) マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法
JPH0342723A (ja) データ処理装置
JP2762441B2 (ja) コプロセッサ
JP2731740B2 (ja) 通信レジスタ付並列計算機
JP2545594B2 (ja) オペランドデータ先取り方式
JP2819733B2 (ja) 情報処理装置
JP3208789B2 (ja) 情報処理装置
JPS6221130B2 (ja)
JPH01271842A (ja) 情報処理装置