JPH07306785A - 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 - Google Patents

分岐命令実行機能を持つプロセッサおよび分岐命令制御方法

Info

Publication number
JPH07306785A
JPH07306785A JP9737294A JP9737294A JPH07306785A JP H07306785 A JPH07306785 A JP H07306785A JP 9737294 A JP9737294 A JP 9737294A JP 9737294 A JP9737294 A JP 9737294A JP H07306785 A JPH07306785 A JP H07306785A
Authority
JP
Japan
Prior art keywords
instruction
branch
branch destination
read
reading
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
JP9737294A
Other languages
English (en)
Inventor
Nobuhiko Yamagami
宣彦 山上
Yasumasa Nakada
恭正 中田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9737294A priority Critical patent/JPH07306785A/ja
Publication of JPH07306785A publication Critical patent/JPH07306785A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】分岐成立が判明した段階で、その飛び先の命令
が既に命令バッファに格納されているならば、その飛び
先命令の処理の開始が早められるようにする。 【構成】命令解析機構24にて条件付き分岐命令を解読
し、その分岐条件が成立した場合に、その分岐命令の示
す分岐先の命令が命令バッファ23に既に取り込まれて
いるか否かを調べ、取り込まれているならば、命令バッ
ファ23内の、最も以前に取り込まれた命令が保持され
ているスロットから、分岐命令の1つ前の命令が保持さ
れているスロットまでを無効化すると共に、分岐先アド
レスを命令読み出し機構22に送らないようにすること
で、分岐命令のフェッチ要求が出されないようにし、取
り込まれていないならば、命令バッファ23内のすべて
のスロットを無効化すると共に、命令読み出し機構22
に分岐先アドレスを送り、メモリ管理ユニット21に対
し分岐命令のフェッチ要求が出されるようにする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、分岐命令の実行機能
を持つプロセッサおよび分岐命令制御方法に関する。
【0002】
【従来の技術】一般に、この種のプロセッサにおいて
は、処理の高速化のために、命令の先読みを行ってい
る。先読みされた命令は命令バッファに一時格納された
後、命令解析機構に順次取り出され、命令解読に供され
る。
【0003】ここで、解読された命令が分岐命令(条件
付き分岐命令)である場合、従来のプロセッサでは、分
岐条件の成立が判定されて分岐が発生すると分かった段
階で、そのときに命令バッファに読み込まれている命令
をすべてキャンセルして、その分岐命令の指す飛び先命
令(分岐先の命令)をフェッチするためのフェッチ要求
を出すようにしていた。
【0004】
【発明が解決しようとする課題】上記したように従来の
プロセッサでは、分岐が発生すると分かった段階で、そ
のときに命令バッファにある命令はすべてキャンセルさ
れるようになっていた。このキャンセル動作により、分
岐不成立を前提として命令バッファに先読みされていた
命令が誤って実行されることが防止できる。
【0005】しかし、命令バッファの中に、分岐成立と
なった分岐命令の飛び先の命令が含まれている場合に
は、その飛び先の命令、即ち次に実行すべき必要な命令
までもキャンセルすることになる。本発明者は、このよ
うな場合、同じ命令フェッチ動作を2回行うことにな
り、プロセッサの処理性能を低下させるという問題が存
在することを認識するに至った。
【0006】この発明は上記事情を考慮してなされたも
のでその目的は、分岐命令の分岐成立が判明した段階
で、その飛び先の命令が既に命令バッファに取り込まれ
ているならば、分岐命令に引き続いて実行される命令の
処理の開始を早くすることができるプロセッサを提供す
ることにある。
【0007】この発明の他の目的は、分岐命令の分岐成
立が判明した段階で、その飛び先の命令のフェッチ要求
が出されているならば、分岐命令に引き続いて実行され
る命令の処理の開始を早くすることができるプロセッサ
を提供することにある。
【0008】
【課題を解決するための手段】この発明は、条件付き分
岐命令の分岐成立が判明した段階で、その分岐先の命令
(分岐先命令)が既に命令格納手段(命令バッファ)に
格納されているならば、その分岐命令の実行により分岐
先の命令のフェッチ要求が出される代わりに、その命令
バッファ内で、その分岐命令と分岐先命令との間にある
命令をキャンセルすることで、命令バッファ内に残され
ている有効な命令列が、現在の分岐命令に続いて、先頭
の分岐先命令から順に解析されて実行されるようにした
ことを特徴とするものである。
【0009】また、この発明は、条件付き分岐命令の分
岐成立が判明した段階で、その分岐先の命令(分岐先命
令)がフェッチされている最中であるならば、命令バッ
ファ内のすべての命令をキャンセルし、当該分岐先命令
のフェッチが完了するのを待って、そのフェッチされた
分岐先命令の解析処理を行うようにしたことをも特徴と
する。
【0010】
【作用】上記の構成において、分岐命令に従う条件判定
で分岐成立が判明した場合、その分岐先の命令が命令バ
ッファに格納されているならば、その命令バッファ内に
ある命令列のうち、分岐先命令以降の命令列を残して、
他はすべてキャンセルされる。そして、分岐先命令をフ
ェッチする代わりに、その命令バッファに残されている
命令が分岐先命令から順に取り出されて解析処理が行わ
れ実行される。このため、従来のように、分岐先命令以
降の命令列をすべてフェッチするのに比べて、分岐命令
に続いて実行される分岐先命令以降の命令処理の開始を
早くすることが可能となる。
【0011】また、分岐命令に従う条件判定で分岐成立
が判明した場合に、その分岐先の命令のフェッチ中であ
るならば、命令バッファ内の命令はすべてキャンセルさ
れるものの、そのフェッチ中の命令である分岐先命令は
有効な命令として扱われ、命令バッファに取り込まれた
段階で、当該バッファから取り出されて解析処理が行わ
れ実行される。このため、従来のように、分岐成立が判
明した段階で、改めて分岐先の命令のフェッチ要求が出
され、既にフェッチ中の命令は、実際にフェッチされた
時点で無効化されるのに比べ、分岐命令に続いて実行さ
れる分岐先命令の処理の開始を早くすることが可能とな
る。
【0012】
【実施例】
[第1の実施例]まず、この発明の第1の実施例につき
図面を参照して説明する。図1はこの発明の第1の実施
例を示すプロセッサのブロック構成図である。
【0013】図中、1は命令群からなる各種プログラ
ム、データが記憶される主メモリ、2は主メモリ1から
フェッチした命令を実行するプロセッサ、3はプロセッ
サ2と主メモリ1の間の命令、データの授受に用いられ
るメモリバスである。
【0014】プロセッサ2は、メモリ管理ユニット2
1、命令読み出し機構22、命令バッファ23、命令解
析機構24および命令実行機構25を有する。メモリ管
理ユニット21は、命令読み出し機構22からの命令フ
ェッチ要求に従い、当該命令読み出し機構22から与え
られる命令アドレスで指定される命令を主メモリ1から
取り込むように構成されている。
【0015】命令読み出し機構22は、メモリ管理ユニ
ット21に対して命令フェッチ要求とフェッチ先を示す
命令アドレスを発するように構成されている。命令読み
出し機構22は、メモリ管理ユニット21により取り込
まれた命令を受け取ると、当該命令およびその命令アド
レスを命令バッファ23に渡すようになっている。
【0016】命令読み出し機構22とメモリ管理ユニッ
ト21との間には、命令読み出し機構22からメモリ管
理ユニット21に対して命令フェッチ要求を伝達するた
めの命令フェッチ要求ライン401、同じく命令アドレ
スを伝達するための命令アドレスライン402が設けら
れている。また、命令読み出し機構22とメモリ管理ユ
ニット21との間には、メモリ管理ユニット21が主メ
モリ1から取り込んだた命令を命令読み出し機構22に
伝達するための命令ライン403が設けられている。
【0017】命令バッファ23は、命令読み出し機構2
2から受け取った命令とその命令アドレスを対にして保
持するための命令フィールドとアドレスフィールドの対
を含むスロットを複数有する。各スロットには、そのス
ロットの内容が有効(バリッド)であるか否かを示すバ
リッドビット(Vビット)が付されている。この命令バ
ッファ23には、命令読み出し機構22によって取り込
まれた命令およびその命令アドレスの対が先頭スロット
(ここでは、最下段のスロット)から順に保持されるよ
うになっている。この命令バッファ23の最下段スロッ
トに続く(バリッドビットがON状態にある)有効な各
スロットの内容は、当該最下段スロットから命令および
アドレスの対が命令解析機構24に取り出される毎に、
次(1段下)のスロットに移される。また、命令バッフ
ァ23内の新たな命令の格納先スロットを指すライトポ
インタ(図示せず)は、その最下段スロットから命令お
よびアドレスの対が命令解析機構24に取り出される毎
に、1段下のスロットを指すように更新され、新たな命
令およびアドレスの対が格納される毎に、1段上のスロ
ットを指すように更新される。
【0018】命令バッファ23と命令読み出し機構22
との間には、命令読み出し機構22から命令バッファ2
3に対して命令アドレスを伝達するための命令アドレス
ライン404、同じく命令を伝達するための命令ライン
405が設けられている。
【0019】命令解析機構24は、命令バッファ23
(の最下段)から受け取った命令の処理内容を解読し、
必要なオペランド・データをレジスタファイル(図示せ
ず)等から読み出すように構成されている。命令解析機
構24はまた、分岐命令(条件付き分岐命令)の場合に
は分岐先アドレス(飛び先アドレス)を計算して命令読
み出し機構22に通知するようにも構成されている。こ
の命令解析機構24は、解読中の命令のアドレスを内部
に保持するようになっている。
【0020】命令解析機構24と命令バッファ23との
間には、命令バッファ23から命令解析機構24に対し
て次の解読対象命令のアドレスを伝達するための命令ア
ドレスライン406、同じく当該解読対象命令を伝達す
るための命令ライン407が設けられている。また、命
令解析機構24と命令バッファ23との間には、命令バ
ッファ23の各スロット中のバリッドビットの状態を命
令解析機構24に伝達する他、このバリッドビットを命
令解析機構24からON/OFF(バリデート/インバ
リデート)操作可能とする、スロット数分のバリッドビ
ットライン408が設けられている。また、命令解析機
構24と命令読み出し機構22との間には、命令解析機
構24が計算した分岐先アドレスを命令読み出し機構2
2に伝達するための分岐先アドレスライン409が設け
られている。
【0021】命令実行機構25は、命令解析機構24で
解読された命令をその内容に従って実行するように構成
されている。命令実行機構25と命令解析機構24との
間には、命令解析機構24で解読された命令に従う指示
を命令実行機構25に伝達するための命令実行指示ライ
ン411、および命令実行機構25で比較命令を実行し
た場合に、その実行結果(比較結果)を命令解析機構2
4に伝達するための比較結果通知ライン412が設けら
れている。
【0022】次に、この発明の第1の実施例の動作を図
2のフローチャートを参照して説明する。今、命令解析
機構24が条件付き分岐命令を解読している状態にある
ものとする。このとき、命令バッファ23には、上記分
岐命令に後続する1つ以上の命令がその命令アドレスと
対をなして保持されているものとする。更に、命令読み
出し機構22からメモリ管理ユニット21に対し、命令
バッファ23に格納されている命令に後続する命令のフ
ェッチ要求が命令フェッチ要求ライン401を介して出
力され、その命令アドレスが命令アドレスライン402
を介して出力されているものとする。
【0023】この場合、従来のプロセッサであれば、次
のような動作が行われる。まず、命令解析機構24は、
分岐命令を解読した後、分岐条件が確定し、分岐成立を
判定した場合には、命令バッファ23内に保持されてい
る有効な命令をすべて(分岐命令に後続する遅延命令が
ある場合にはそれを残して)クリアする。即ち命令解析
機構24は、命令バッファ23内のすべてのスロット
(遅延命令がある場合には遅延命令以外が保持されてい
るすべてのスロット)をインバリデート(無効化)す
る。なお、条件付き分岐命令に後続する遅延命令は、分
岐命令を含む命令列の処理効率の向上を図るために用意
されるものである。そのため、当該遅延命令には、先行
する分岐命令の条件が成立した場合に実行されても何ら
影響を及ぼさない命令が用いられる。また、条件付き分
岐命令に後続する遅延命令があるか否かは当該分岐命令
で示されており、当該分岐命令を解読することにより判
別される。
【0024】命令解析機構24は、命令バッファ23内
の(遅延命令以外の)すべてのスロットをインバリデー
トすると同時に、分岐が成立した分岐命令の分岐先とな
る命令のアドレス(分岐先アドレス)を命令読み出し機
構22に渡す。
【0025】命令読み出し機構22は、この命令アドレ
ス(分岐先アドレス)を用いて命令フェッチを行う。こ
のとき、命令読み出し機構22が既にメモリ管理ユニッ
ト21に命令フェッチ要求を出していたならば、その要
求を中断させることはできないため、当該命令読み出し
機構22は、その命令フェッチが完了し、対応する命令
を取り込んだ後に、その命令を無視する。
【0026】これに対し、命令解析機構24により条件
付き分岐命令が解読されている場合の本実施例の動作
は、次の通りとなる。まず、命令解析機構24が分岐命
令を解読し、例えば命令実行機構25での比較命令の実
行により比較結果通知ライン412を介して送られる比
較結果をもとに条件判定を行い、分岐成立を判定したも
のとする。
【0027】この場合、命令解析機構24は、命令バッ
ファ23内にその分岐命令の分岐先の命令が存在するか
否かを調べる(ステップS1)。この分岐先命令が命令
バッファ23内に存在する条件は、A,n,Lを A:その分岐命令の分岐先の命令の分岐命令を基準とす
る相対アドレス n:そのとき命令バッファ23に保持されている命令数 L:命令長(単位はバイト) とした場合に、0<A≦n*Lを満足することである。
【0028】ここで、上記Aは、命令解析機構24が解
読した分岐命令の示す分岐先アドレスと当該分岐命令の
アドレスとの差から求められる。また、上記nは、命令
解析機構24が、命令バッファ23内の各スロットのバ
リッドビット(Vビット)を例えば最下段のスロットか
ら順に対応するバリッドビットライン408を通して参
照し、ON状態にあるバリッドビットの数をカウントす
ることにより求められる。
【0029】命令解析機構24は、上記Aおよびnを求
めると、0<A≦n*Lの条件を満たすか否かを判定す
る。なお、この判定方法以外に、命令バッファ23内の
バリッドビットがON状態にある有効な各スロットの命
令アドレスを例えば最下段のスロットから順に参照して
分岐先アドレスと比較し、分岐先アドレスに一致する命
令アドレスが存在するか否かにより、上記分岐命令の分
岐先の命令が存在するかを判定することも可能である。
【0030】さて、命令解析機構24の処理は、(1−
1)分岐先の命令が命令バッファ23内に存在する場合
と、(1−2)分岐先の命令が命令バッファ23内に存
在しない場合とで、以下に述べるように異なる。
【0031】(1−1)分岐先の命令が命令バッファ2
3内に存在する場合 命令解析機構24は、0<A≦n*Lの条件が満たされ
ていたならば、分岐が成立した分岐命令の分岐先の命令
が命令バッファ23内に存在するものと判断する。
【0032】この場合、命令解析機構24はまず、命令
バッファ23内の最下段のスロット(先頭スロット)か
ら、上記分岐命令の分岐先命令の1つ前の命令が保持さ
れているスロットまでの各スロット、即ち分岐命令とそ
の分岐先の命令の間にある命令がそれぞれ保持されてい
る命令バッファ23内スロットを、対応するバリッドビ
ットライン408を通して選択的にインバリデートする
(ステップS2)。
【0033】次に命令解析機構24は、命令バッファ2
3内の上記分岐先命令が保持されているスロットおよび
当該スロットに後続する(バリッドビットがON状態に
ある)有効なスロットの内容を、上記分岐先命令が命令
バッファ23内の最下段のスロットに保持されるよう
に、この最下段スロットから始まる連続するスロット群
に順に移す(ステップS3)。
【0034】なお、命令バッファ23から次に取り出す
べき命令が格納されているスロットを指すリードポイン
タを用意し、命令バッファ23から命令解析機構24に
命令を取り出す毎に当該リードポインタを更新して次の
スロットを指すようにするならば、ステップS3の移動
処理は不要となる。但し、ステップS3に代えて、分岐
先命令が保持されているスロットを指すようにリードポ
インタを書き換える必要がある。
【0035】命令解析機構24は、ステップS3を実行
すると、命令バッファ23内最下段のスロットから命令
ライン407を介して命令(ここでは分岐先命令)を、
命令アドレスライン406を介して命令アドレスを、そ
れぞれ取り込み、その取り込んだ命令の解読処理を上記
の分岐命令に続いて実行する(ステップS4)。
【0036】以上のように、命令バッファ23内に分岐
命令の分岐先の命令が存在し、その分岐先命令を利用す
る場合には、命令解析機構24で求めた分岐先アドレス
は命令読み出し機構22に送られない。この場合、命令
読み出し機構22は、メモリ管理ユニット21に命令フ
ェッチ要求を出していたならば、その要求に従ってメモ
リ管理ユニット21により取り込まれる命令(とそのア
ドレスの対)を命令バッファ23に格納する。
【0037】(1−2)分岐先の命令が命令バッファ2
3内に存在しない場合 一方、上記0<A≦n*Lの条件が満たされていないな
らば、命令解析機構24は、分岐が成立した分岐命令の
分岐先の命令が命令バッファ23内に存在しないものと
判断する。
【0038】この場合、命令解析機構24は、従来と同
様に、命令バッファ23内に保持されている有効な命令
をすべて(分岐命令に後続する遅延命令がある場合には
それを残して)クリアする。即ち命令解析機構24は、
命令バッファ23内のすべてのスロット(遅延命令があ
る場合には遅延命令以外が保持されているすべてのスロ
ット)をインバリデートする(ステップS4)。
【0039】また命令解析機構24は、分岐が成立した
分岐命令の分岐先となる命令のアドレス(分岐先アドレ
ス)を分岐先アドレスライン409を介して命令読み出
し機構22に渡す(ステップS5)。
【0040】命令読み出し機構22は、この命令解析機
構24から渡された命令アドレス(分岐先アドレス)を
命令アドレスライン402に送出すると共に、命令フェ
ッチ要求を命令フェッチ要求ライン401に送出するこ
とにより、メモリ管理ユニット21を用いて命令(分岐
先の命令)のフェッチを行う。
【0041】このとき、即ち命令解析機構24から命令
読み出し機構22に分岐アドレスが渡された場合に、命
令読み出し機構22が既にメモリ管理ユニット21に命
令フェッチ要求を出していたならば、その要求を中断さ
せることはできないため、当該命令読み出し機構22
は、その命令フェッチが完了し、対応する命令を取り込
んだ後に、その命令を無視する。
【0042】以上に述べた第1の実施例では、命令解析
機構24にて解読されて分岐成立が判定された分岐命令
の分岐先の命令が、命令バッファ23に既に存在する場
合には、その分岐命令を実行して分岐先命令のフェッチ
要求を出す代わりに、その分岐命令と分岐先命令との間
にある命令バッファ23内の命令をキャンセルするよう
にしているため、分岐命令に続いて命令バッファ23内
の分岐先命令から直ちに命令処理を開始することができ
る。
【0043】ところで、命令解析機構24にて分岐成立
が判定されたときに、その分岐先の命令のフェッチ要求
が命令読み出し機構22からメモリ管理ユニット21に
出されていることがあり得る。上記第1の実施例では、
このフェッチ要求に対するフェッチ動作が行われて対応
する命令が命令読み出し機構22に読み込まれた時点
で、その命令が無視される(捨てられる)ようになって
いる。しかし、この命令が分岐先命令であるならば、当
該命令を捨てずに利用することにより、分岐命令に続く
分岐先命令の処理開始を早くすることができる。 [第2の実施例]そこで、分岐成立が判定されたとき
に、その分岐先の命令のフェッチ要求が出されている場
合に、そのフェッチ要求に従って取り込まれる分岐先命
令を利用可能とする第2の実施例につき、図面を参照し
て説明する。なお、図1と同一部分には同一符号を付し
て詳細な説明は省略する。
【0044】図3はこの発明の第2の実施例を示すプロ
セッサのブロック構成図である。この図3に示すプロセ
ッサ20は、メモリ管理ユニット21、(図1中の命令
読み出し機構22に相当する)命令読み出し機構22
0、命令バッファ23、(図1中の命令解析機構24に
相当する)命令解析機構240、および命令実行機構2
5を有している。
【0045】命令読み出し機構220が図1中の命令読
み出し機構22と異なる点は、命令読み出し機構220
がメモリ管理ユニット21に対して命令フェッチの要求
中である場合に、その要求している命令のアドレスを命
令解析機構240に通知するようになっていることであ
る。
【0046】また、命令解析機構240が図1中の命令
解析機構24と異なる点は、命令バッファ23内に分岐
先の命令が存在しない場合に、その分岐先の命令に対す
るフェッチ要求が(命令読み出し機構220から)出さ
れているか否かを調べ、出されているならば、その分岐
先命令が(命令読み出し機構220により)命令バッフ
ァ23に取り込まれた時点で、その命令バッファ23内
の分岐先命令を解読するようになっていることである。
【0047】図3において、命令解析機構240と命令
読み出し機構220との間には、命令解析機構240が
計算した分岐先アドレスを命令読み出し機構220に伝
達するための分岐先アドレスライン409の他に、新た
に、命令読み出し機構220がメモリ管理ユニット21
に対して命令フェッチの要求中である場合に、その要求
している命令のアドレスを命令読み出し機構220から
命令解析機構240に伝達するための命令フェッチ要求
アドレスライン410が設けられている。
【0048】次に、この発明の第2の実施例の動作を図
4のフローチャートを参照して説明する。今、前記第1
の実施例の場合と同様に、(図1中の命令解析機構24
に相当する)命令解析機構240が分岐命令を解読して
いる状態にあり、命令バッファ23には上記分岐命令に
後続する1つ以上の命令がその命令アドレスと対をなし
て保持されているものとする。更に、(命令読み出し機
構22に相当する)命令読み出し機構220からメモリ
管理ユニット21に対し、命令バッファ23に格納され
ている命令に後続する命令の命令フェッチ要求が命令フ
ェッチ要求ライン401を介して出力され、その命令ア
ドレスが命令アドレスライン402を介して出力されて
いるものとする。
【0049】このとき、命令読み出し機構220から命
令解析機構240に対しても、当該命令読み出し機構2
20が要求している命令のアドレスが、命令フェッチ要
求アドレスライン410を介して出力されている。
【0050】この状態において命令解析機構240は、
分岐命令を解読した後、分岐条件が確定し、分岐成立を
判定した場合には、例えば前記第1の実施例の場合と同
様の方法でA,nを求めて、0<A≦n*Lを満足する
か否かを調べることにより、命令バッファ23内にその
分岐命令の分岐先の命令が存在するか否かを判定する
(ステップS11)。
【0051】また命令解析機構240は、命令バッファ
23内に分岐命令の分岐先の命令が存在しない場合に
は、命令読み出し機構220が現在フェッチ中の命令
が、その分岐先の命令と一致しているか否かを調べる
(ステップS12)。このステップS12の判定は、命
令解析機構240が解読した分岐命令の示す分岐先アド
レスと命令読み出し機構220から命令フェッチ要求ア
ドレスライン410を介して通知されている命令アドレ
スとが一致しているか否かを調べることにより実現され
る。
【0052】なお、前記第1の実施例では、上記n(命
令バッファ23に保持されている命令数)を、命令バッ
ファ23内の各スロットのバリッドビット(Vビット)
を最下段のスロットから順に対応するバリッドビットラ
イン408を通して参照し、ON状態にあるバリッドビ
ットの数をカウントすることにより求めるようにしてい
るが、これに限るものではない。
【0053】例えば、命令読み出し機構220から命令
解析機構240に対し命令フェッチ要求アドレスライン
410を介して送られている命令フェッチ要求中のアド
レスをC、命令解析機構240が内部に保持している解
読中の命令(ここでは分岐命令)のアドレスをBとする
と、n=(C−B)/Lの演算を行うことにより、上記
nを求めることも可能である。また、このnの値によ
り、命令バッファ23内の有効なスロットも判断できる
ことから、命令バッファ23の各スロットにバリッドビ
ットを付加する必要もない。
【0054】更に、命令解析機構240が内部に保持す
るアドレス(B)を、命令バッファ23から命令を取り
込む毎にLだけインクリメントすることにより、命令バ
ッファ23の各スロットに、命令と対をなして命令アド
レスを格納しておく必要もなくなる。但し、分岐が成立
した場合には、命令解析機構240内部に保持するアド
レス(B)を分岐先のアドレスに書き換える必要があ
る。
【0055】さて、命令解析機構24の処理は、(2−
1)分岐先の命令が命令バッファ23内に存在する場合
と、(2−2)分岐先の命令が命令バッファ23内に存
在せず、且つ命令読み出し機構220が現在フェッチ中
の命令が上記分岐先の命令に一致している場合と、(2
−3)上記(2−1),(2−2)のいずれの条件も満
たさない場合とで、以下に述べるように異なる。なお、
命令バッファ23内に分岐命令の分岐先の命令があり、
且つ命令読み出し機構220が現在フェッチ中の命令が
その分岐命令の分岐先の命令に一致しているという組み
合わせは、有り得ない。その理由は、命令読み出し機構
220がフェッチ中の命令は、命令バッファ23に最も
最近に取り込まれた命令の後続命令だからである。
【0056】(2−1)分岐先の命令が命令バッファ2
3内に存在する場合 命令解析機構240は、上記ステップS11において、
分岐が成立した分岐命令の分岐先の命令が命令バッファ
23内に存在するものと判断した場合、前記第1の実施
例における(1−1)の場合と同様の処理、即ち図2中
のステップS2〜S4と同様の処理ステップS13〜S
15により、命令バッファ23内の、分岐命令に続く命
令から分岐先命令の1つ前の命令までをすべてキャンセ
ルして、次の分岐先命令から順に解読処理を行う。
【0057】(2−2)分岐先の命令が命令バッファ2
3内に存在せず、且つ命令読み出し機構220が現在フ
ェッチ中の命令が上記分岐先の命令に一致している場合 命令解析機構240は、ステップS11,S12によ
り、分岐が成立した分岐命令の分岐先の命令が命令バッ
ファ23内に存在せず、且つ命令読み出し機構220が
現在フェッチ中の命令が上記分岐先の命令に一致してい
るものと判断した場合、命令バッファ23内に保持され
ている有効な命令をすべて(分岐命令に後続する遅延命
令がある場合にはそれを残して)クリアする。即ち命令
解析機構240は、命令バッファ23内のすべてのスロ
ット(遅延命令がある場合には遅延命令以外が保持され
ているすべてのスロット)をインバリデートする(ステ
ップS16)。
【0058】そして命令解析機構240は、命令読み出
し機構220においてフェッチ中の命令、即ち分岐先命
令が、メモリ管理ユニット21によりフェッチされて当
該命令読み出し機構220に渡され、命令バッファ23
の最下段スロットに格納される(遅延命令がない場合)
フェッチ完了時点で、その分岐先命令(およびその命令
アドレス)を命令バッファ23から取り込んで解読処理
を行う(ステップS17)。なお、命令バッファ23の
最下段スロットに遅延命令がある場合には、分岐先命令
は1段上のスロットに格納され、遅延命令、分岐先命令
の順で解読処理が行われる。
【0059】(2−3)上記(2−1),(2−2)の
いずれの条件も満たさない場合 命令解析機構240は、ステップS11,S12によ
り、分岐が成立した分岐命令の分岐先の命令が命令バッ
ファ23内に存在せず、且つ命令読み出し機構220が
現在フェッチ中の命令が上記分岐先の命令に一致してい
ないものと判断した場合、前記第1の実施例における
(1−2)の場合と同様の処理、即ち図2中のステップ
S5,S6と同様の処理ステップS18,S19によ
り、命令バッファ23内のすべてのスロット(遅延命令
がある場合には遅延命令以外が保持されているすべての
スロット)をインバリデートし、更に分岐が成立した分
岐命令の分岐先となる命令のアドレス(分岐先アドレ
ス)を分岐先アドレスライン409を介して命令読み出
し機構220に渡す。
【0060】命令読み出し機構220は、この命令解析
機構24から渡された命令アドレス(分岐先アドレス)
を命令アドレスライン402に送出すると共に、命令フ
ェッチ要求を命令フェッチ要求ライン401に送出する
ことにより、メモリ管理ユニット21を用いて命令(分
岐先の命令)のフェッチを行う。
【0061】このとき、即ち命令解析機構240から命
令読み出し機構220に分岐アドレスが渡された場合
に、当該命令読み出し機構220が既にメモリ管理ユニ
ット21に命令フェッチ要求を出していたならば、その
要求を中断させることはできないため、当該命令読み出
し機構220は、その命令フェッチが完了し、対応する
命令を取り込んだ後に、その命令を無視する(捨て
る)。
【0062】以上の第2の実施例による効果が現れるの
は、命令解析機構240で分岐成立が判定されたとき
に、その分岐先の命令が命令バッファ23に存在する
(前記第1の実施例と同様の)場合の他、命令読み出し
機構22が現在フェッチ中の命令が分岐先命令と一致し
ている場合である。前記第1の実施例では、分岐先命令
が命令バッファ23に存在しないならば、命令読み出し
機構22がフェッチ中の命令は当該命令読み出し機構2
2に取り込まれた時点で捨てられる。このため第1の実
施例では、フェッチ中の命令が分岐先命令と一致してい
る場合には、従来と同様に、結果的には同じアドレスの
命令(分岐先命令)のフェッチが2回起こることにな
る。
【0063】
【発明の効果】以上詳述したようにこの発明によれば、
分岐命令の分岐成立が判明した段階で、その飛び先の命
令が既に命令格納手段(命令バッファ)に取り込まれて
いるならば、その命令バッファ内にある命令列のうち、
分岐先命令以降の命令列を残して、他はすべてキャンセ
ルされ、分岐先命令をフェッチする代わりに、その命令
バッファに残されている命令が分岐先命令から順に取り
出されて解析処理が行われる構成とすることにより、分
岐命令に引き続いて実行される命令の処理の開始を早く
することができる。
【0064】また、この発明によれば、分岐命令の分岐
成立が判明した段階でその分岐先の命令のフェッチ中で
あるならば、命令バッファ内の命令はすべてキャンセル
されるものの、そのフェッチ中の命令である分岐先命令
は有効な命令として扱われ、命令バッファに取り込まれ
た段階で、当該バッファから取り出されて解析処理が行
われる構成とすることにより、分岐命令に引き続いて実
行される命令の処理の開始を早くすることができる。こ
のように、この発明によれば、分岐命令による命令処理
の乱れを軽減することができる。
【図面の簡単な説明】
【図1】この発明の第1の実施例を示すプロセッサのブ
ロック構成図。
【図2】図1中の命令解析機構24の分岐成立判定時の
処理手順を示すフローチャート。
【図3】この発明の第2の実施例を示すプロセッサのブ
ロック構成図。
【図4】図3中の命令解析機構240の分岐成立判定時
の処理手順を示すフローチャート。
【符号の説明】
1…主メモリ、2,20…プロセッサ、3…メモリバ
ス、21…メモリ管理ユニット、22,220…命令読
み出し機構、23…命令バッファ、24,240…命令
解析機構、25…命令実行機構、401…命令フェッチ
要求ライン、409…分岐先アドレスライン、410…
命令フェッチ要求アドレスライン。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 命令の先読みを実行する命令読み出し手
    段と、 この命令読み出し手段によって読み込まれた命令が、そ
    の読み込み順に一時格納される命令格納手段と、 この命令格納手段から命令をその格納順に取り込んで命
    令解析処理を行う命令解析手段であって、条件付き分岐
    命令の分岐成立を判定した場合に、その分岐先の命令が
    前記命令格納手段に格納されているならば、前記命令読
    み出し手段による前記分岐先命令の読み込みが行われな
    いようにすると共に、前記命令格納手段内の、前記分岐
    命令とその分岐先の命令の間にある命令をキャンセル
    し、前記命令格納手段内の前記分岐先命令を取り込んで
    命令解析処理を行い、前記分岐先命令が前記命令格納手
    段に格納されていないならば、前記命令格納手段内のす
    べての命令をキャンセルすると共に、前記命令読み出し
    手段による前記分岐先命令の読み込みが行われるように
    する命令解析手段とを具備することを特徴とする分岐命
    令実行機能を持つプロセッサ。
  2. 【請求項2】 命令の先読みを実行する命令読み出し手
    段と、 この命令読み出し手段によって読み込まれた命令が、そ
    の読み込み順に一時格納される命令格納手段と、 この命令格納手段から命令をその格納順に取り込んで命
    令解析処理を行う命令解析手段であって、条件付き分岐
    命令の分岐成立を判定した場合に、その分岐先の命令が
    前記命令格納手段に格納されているならば、前記命令読
    み出し手段による前記分岐先命令の読み込みが行われな
    いようにすると共に、前記命令格納手段内の、前記分岐
    命令とその分岐先の命令の間にある命令をキャンセル
    し、前記命令格納手段内の前記分岐先命令を取り込んで
    命令解析処理を行い、前記命令読み出し手段により前記
    分岐先命令の読み込みが行われている最中であるなら
    ば、前記命令格納手段内のすべての命令をキャンセルす
    ると共に、前記分岐先命令の読み込みが完了するのを待
    って、その読み込まれた前記分岐先命令の命令解析処理
    を行い、そのいずれでもないならば、前記命令格納手段
    内のすべての命令をキャンセルすると共に、前記命令読
    み出し手段による前記分岐先命令の読み込みが行われる
    ようにする命令解析手段とを具備することを特徴とする
    分岐命令実行機能を持つプロセッサ。
  3. 【請求項3】 命令の先読みを実行する命令読み出し手
    段と、この命令読み出し手段によって読み込まれた命令
    が、その読み込み順に一時格納される命令格納手段と、
    この命令格納手段から命令をその格納順に取り込んで命
    令解析処理を行う命令解析手段とを備えたプロセッサに
    用いられる分岐命令制御方法において、 前記命令解析手段にて条件付き分岐命令の分岐成立を判
    定した場合、その分岐先の命令が前記命令格納手段に格
    納されているか否かを調べる第1の工程と、 前記第1の工程で前記分岐先命令が前記命令格納手段に
    格納されていると判断された場合、前記命令読み出し手
    段による前記分岐先命令の読み込みが行われないように
    すると共に、前記命令格納手段内の、前記分岐命令とそ
    の分岐先の命令の間にある命令をキャンセルして、前記
    命令格納手段内の前記分岐先命令の命令解析処理を行う
    第2の工程と、 前記第1の工程で前記分岐先命令が前記命令格納手段に
    格納されていないと判断された場合、前記命令格納手段
    内のすべての命令をキャンセルすると共に、前記命令読
    み出し手段による前記分岐先命令の読み込みが行われる
    ようにする第3の工程とを具備することを特徴とする分
    岐命令制御方法。
  4. 【請求項4】 命令の先読みを実行する命令読み出し手
    段と、この命令読み出し手段によって読み込まれた命令
    が、その読み込み順に一時格納される命令格納手段と、
    この命令格納手段から命令をその格納順に取り込んで命
    令解析処理を行う命令解析手段とを備えたプロセッサに
    用いられる分岐命令制御方法において、 前記命令解析手段にて条件付き分岐命令の分岐成立を判
    定した場合、その分岐先の命令が前記命令格納手段に格
    納されているか否かを調べる第1の工程と、 前記第1の工程で前記分岐先命令が前記命令格納手段に
    格納されていると判断された場合、前記命令読み出し手
    段による前記分岐先命令の読み込みが行われないように
    すると共に、前記命令格納手段内の、前記分岐命令とそ
    の分岐先の命令の間にある命令をキャンセルし、前記命
    令格納手段内の前記分岐先命令の解析処理を行う第2の
    工程と、 前記第1の工程で前記分岐先命令が前記命令格納手段に
    格納されていないと判断された場合、前記命令読み出し
    手段が読み込み中の命令が前記分岐先命令に一致するか
    否かを調べる第3の工程と、 前記第3の工程で前記命令読み出し手段が読み込み中の
    命令が前記分岐先命令に一致すると判断された場合、前
    記命令格納手段内のすべての命令をキャンセルすると共
    に、前記分岐先命令の読み込みが完了するのを待って、
    その読み込まれた前記分岐先命令の命令解析処理を行う
    第4の工程と、 前記第3の工程で前記命令読み出し手段が読み込み中の
    命令が前記分岐先命令に一致しないと判断された場合、
    前記命令格納手段内のすべての命令をキャンセルすると
    共に、前記命令読み出し手段による前記分岐先命令の読
    み込みが行われるようにする第5の工程とを具備するこ
    とを特徴とする分岐命令制御方法。
JP9737294A 1994-05-11 1994-05-11 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 Pending JPH07306785A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9737294A JPH07306785A (ja) 1994-05-11 1994-05-11 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9737294A JPH07306785A (ja) 1994-05-11 1994-05-11 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法

Publications (1)

Publication Number Publication Date
JPH07306785A true JPH07306785A (ja) 1995-11-21

Family

ID=14190686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9737294A Pending JPH07306785A (ja) 1994-05-11 1994-05-11 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法

Country Status (1)

Country Link
JP (1) JPH07306785A (ja)

Cited By (7)

* 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
WO2004107163A1 (ja) * 2003-05-28 2004-12-09 Fujitsu Limited 分岐予測機構を持つ命令制御装置及びその制御方法
US6938150B2 (en) 2001-01-10 2005-08-30 Nec Corporation Processor for managing latest speculation states and efficiently reusing reorder buffer entries
JP2008171426A (ja) * 2007-01-10 2008-07-24 Internatl Business Mach Corp <Ibm> ディスクリプタ・プリフェッチを用いてダイレクト・メモリ・アクセス・ブロック移動を行なう方法、ダイレクト・メモリ・アクセス装置、及びデータ処理システム
US7636837B2 (en) 2003-05-28 2009-12-22 Fujitsu Limited Apparatus and method for controlling instructions at time of failure of branch prediction
JP2013131036A (ja) * 2011-12-21 2013-07-04 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法

Cited By (7)

* 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
US6938150B2 (en) 2001-01-10 2005-08-30 Nec Corporation Processor for managing latest speculation states and efficiently reusing reorder buffer entries
WO2004107163A1 (ja) * 2003-05-28 2004-12-09 Fujitsu Limited 分岐予測機構を持つ命令制御装置及びその制御方法
US7636837B2 (en) 2003-05-28 2009-12-22 Fujitsu Limited Apparatus and method for controlling instructions at time of failure of branch prediction
JP2008171426A (ja) * 2007-01-10 2008-07-24 Internatl Business Mach Corp <Ibm> ディスクリプタ・プリフェッチを用いてダイレクト・メモリ・アクセス・ブロック移動を行なう方法、ダイレクト・メモリ・アクセス装置、及びデータ処理システム
JP2013131036A (ja) * 2011-12-21 2013-07-04 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
JP2504830Y2 (ja) デ―タ処理装置
JPH0789319B2 (ja) デ−タ処理装置における先行制御装置
EP0655679B1 (en) Method and apparatus for controlling instruction in pipeline processor
JPH08320788A (ja) パイプライン方式プロセッサ
JP3683248B2 (ja) 情報処理装置及び情報処理方法
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
JPH03129432A (ja) 分岐制御回路
US20080065870A1 (en) Information processing apparatus
JP2723238B2 (ja) 情報処理装置
JP2508021B2 (ja) デ−タ処理装置
JPH0646382B2 (ja) プリフェッチキュー制御方式
JPS60117335A (ja) 情報処理装置
JP4049490B2 (ja) 情報処理装置
JP3493110B2 (ja) 高速分岐処理装置
JPH1153188A (ja) 命令キャッシュ制御方式
JP3471691B2 (ja) マイクロ命令における分岐命令制御方式
JPS59158442A (ja) 命令読出し制御方法
JP2806690B2 (ja) マイクロプロセッサ
JPH0713811B2 (ja) 命令プリフェッチ方法
JPH10283184A (ja) データ処理装置
JPS63168730A (ja) 分岐命令処理装置
JPH06301538A (ja) 条件分岐命令処理装置
JPS63231627A (ja) 先行制御方式
JPH05257686A (ja) 命令キャッシュ回路