JPH03147134A - 命令シーケンス制御装置 - Google Patents

命令シーケンス制御装置

Info

Publication number
JPH03147134A
JPH03147134A JP28477989A JP28477989A JPH03147134A JP H03147134 A JPH03147134 A JP H03147134A JP 28477989 A JP28477989 A JP 28477989A JP 28477989 A JP28477989 A JP 28477989A JP H03147134 A JPH03147134 A JP H03147134A
Authority
JP
Japan
Prior art keywords
instruction
branch
program counter
buffer
prefetch
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
JP28477989A
Other languages
English (en)
Inventor
Makoto Oki
誠 大木
Masami Mori
正実 森
Takashi Katsuyama
勝山 隆史
Atsushi Kawai
淳 河井
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP28477989A priority Critical patent/JPH03147134A/ja
Publication of JPH03147134A publication Critical patent/JPH03147134A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〈産業上の利用分野〉 本発明は情報処理装置での命令処理、特にパイプライン
処理方式での条件分岐命令に関する円滑な処理を保証す
る命令シーケンス制御装置に関するものである。
〈従来の技術〉 情報処理装置上で命令シーケンスを処理する場合、見か
け上連続して実行するための方式として、パイプライン
方式がある。パイプライン方式は命令プリフェッチユニ
ット、命令デコードユニット、命令実行ユニットの3つ
のユニットで構成され、それぞれの処理の過程を命令プ
リフェッチフェーズ、命令デコードフーーズ、命令実行
フェーズと呼ぶ。情報処理装置は命令を記憶装置からプ
リフェッチし、デコードし、実行するという3つの動作
を同時に行い、連続して命令を実行することができる。
しかし、直前の命令の実行結果に依存する条件分岐命令
は、パイプラインの乱れの原因となる。
分岐命令の直前の命令を実行した結果に基づいて分岐先
を選択するような条件分岐命令を実行する場合、命令実
行フェーズにおいて分岐条件を評価し終えるまでは分岐
先命令を確定できない。このように条件分岐命令の実行
結果を持って次に実行される命令が明らかになる。この
ようなシステムは米国特許4.200.927に提案さ
れている。しかし、このシステムでは、条件分岐命令に
遭遇する度に命令プリフェッチ動作を停止させる必要が
あり、処理の迅速化が妨げられる。
パイプライン方式をとる情報処理装置では、命令実行フ
ェーズで条件分岐命令を実行すると同時に命令プリフェ
ッチフェーズ、命令デコードフェーズにおいて条件分岐
命令以降の処理を開始しておくことは効果的である。従
来の技術では、命令デコードフェーズにおいてそれが条
件分岐命令であることがわかったなら、その条件分岐命
令の分M 予測テーブルを参照し、その指定に基づいて
分岐先のアドレスを決定し、その命令をプリフェ・2チ
する。分岐予測テーブルでは、過去の事実に基づいて分
岐先方回を予測する。すなわち、同じ条件分岐命令の過
去の実行結果において分岐先がすでに明らかにされてい
るという事実を用いてこの結果に基づいて予測を行うこ
とにより予測的中率を高めている。このような予測方式
の例が特開昭57−76638号公報に示されている。
〈発明が解決しようとしている課題〉 従来技術を用いた方式では、分岐予測テーブルの指定に
したがって、分岐先の命令をプリフェッチし、パイプラ
イン処理しようとしていたため、命令実行フェーズで分
岐条件を評価した結果、分岐予測テーブルが誤っていた
ことが発覚した時点でパイプラインをリセットし、新た
にプリフェッチ動作から開始しなおす必要があった。こ
のことはプログラムの実行速度を大きく低下させる原因
となっていた。
本発明は、上記問題点の解決を図り、条件分岐命令のパ
イプライン構造での円滑な実行を保証し、パイプライン
の乱れをなくして、プログラムの高速な実行を可能とす
る方式および装置を提供することを目的としている。
〈課題を解決するための手段〉 本発明の命令シーケンス処理装置は、条件分岐命令の実
行による分岐先アドレスを条件分岐命令を解読時に検出
して、分岐先命令をプリフェッチする手段と、パイプラ
イン処理装置のプリフェッチユニットにおいて条件分岐
命令実行後に分岐しない場合と分岐する場合の両方の命
令を同時にプリフェッチしておく手段と、前記プリフェ
ッチユニットにおいて二段階に分けて命令をプリフェッ
チする手段と、通常動作時および、条件分岐命令を解読
時でのプリフェッチバッファの命令の出し入れを操作す
る手段とを有している。
く作用〉 条件分岐命令を実行したときに、分岐先命令の取り出し
の誤りによって記憶装置へのアクセスをやり直したり、
各パイプラインレジスタをリセットすることによって生
じる情報処理装置の性能低下を防止できる。
〈実施例〉 次に本発明の一実施例について図面を参照しながら説明
する。第1図は本発明の一実施例を示すブロック図であ
る。本実施例は命令記憶ユニット401、アドレス生成
ユニット4o2、命令プリフェッチユニット403、命
令デコードユニット404、命令実行ユニッ) 405
、分岐先算出二二ノ)406、命令バッファ411 (
!B−1) 、412 (IBO) 、413 (IB
I)、プログラムカウンタ414 (PC) 、416
 (PCO)、フェーチプログラムカウンタ415 (
FPC) 、次期プログラムカウンタ417 (NPC
) 、分配スイッチ4211セレクタ422.424、
マスク423を有している。
ここでは、コンパイラによってコンパイルされた命令が
1バイト(8ビツト)を単位とするバイトコードで表現
され、本実施例の情報処理装置はこのバイトフードを一
度に8バイトまでプリフェッチする。バイトコードは、
1バイトで一つの命令をなすものや、数バイト(最大8
バイトまで)で一つの命令をなすものがあるとする。
本発明は、必ずしも上記のようなバイトコードによる処
理を行う情報処理装置にのみ適用されるものではない。
また命令記憶装置とデータ記憶装置を分割する必要もな
く、命令記憶装置とデータ記憶装置が混合したシステム
においても適用することができる。
ブIJ 7エツチユニツトの動作、すなわちプリフェッ
チ機構はプログラムカウンタ414 (PC)にアドレ
ス値を設定することによって起動される。
アドレス生成ユニット402で計算された命令アドレス
が前記プログラムカウンタ414 (PC)に設定され
ると、そのアドレスが示す命令記憶ユニットの格納位置
から命令を読み込み、命令バッファ411 (18−1
)に設定する。プログラムカウンタ414(PC)の内
容は、プログラムカウンタ416 (PCO)に設定さ
れる。プログラムカウンタ414 (PC)の内容は下
位3ビツトだけマスクされてフェッチプログラムカウン
タ415 (FPC)に設定される。
フェッチプログラムカウンタ415 (FPC)はプリ
フェッチする命令のメモリアドレスを保持すると同時に
、命令バッファ411 (+’B−1)に設定されてい
る命令を命令バッファ412 (IBO)もしくは命令
バッファ413 (IBI)に転送するとき、どちらの
バッファに転送するかを示すポインタとして働く。
例えば、フェッチプログラムカウンタ415 (FPC
)が偶数ならば前記命令バッファ412 (IBO)を
、またフェッチプログラムカウンタ415 (FPC)
が奇数ならば命令バッファ413 (IBI)をポイン
トする。
フェッチプログラムカウンタ415 (FPC)に新た
にアドレスが設定されると、命令バッファ412 (I
BO)および413 (IBl)の内容が捨てられる。
プリフェッチプログラムカウンタ415 (FPC)が
示す命令バッファ412 (IBO)もしくは413 
(IBI)のいずれかが空ならば、プリフェッチプログ
ラムカウンタ415 (FPC)の示す命令記憶ユニッ
トのアドレス位置から8バイトの命令を読みだしてきて
、命令バンファ411 (IB−1)に設定する。この
場合、命令バッファ411 (IB−1)はスルーバッ
ファ、スなわち通過するだけのバッファとして働き、こ
れに命令が書き込まれると同時に、プリフェッチプログ
ラムカウンタ415 (PPC)が示している命令バッ
ファ412 (IBO)もしくは413 (IBI)の
いずれかに転送される。前記命令バッファ412 (I
BO) モしくは413 (IBI)のいずれかに命令
が書き込まれると前記プリフェッチプログラムカウンタ
415(FPC)が1だけ増加される。命令デコードユ
ニット404からプリフェッチ動作を禁止、あるいは−
時停止の信号を受けないかぎり、プリフェッチ動作を続
行する。
次に、命令デコードシーケンスについて説明スる。
プログラムカウンタ416 (PCO)は命令バッファ
412 (IBO) 、413 (IBI)のいずれか
一方をポイントしており、セレクタ422を制御してい
る。例えば、プログラムカウンタ416 (PCO)が
偶数ならば命令バッファ413 (IBI)を、また前
記プログラムカウンタ416 (PCO)が奇数ならば
命令バッファ412 (fBo)をポイントする。
プログラムカウンタ416 (PCO)が示している命
令バッファ412 (IBO)  (もしくは413 
(IBI) )のいずれかが空でなければ、そのバッフ
ァの内容を命令デコードユニット404に転送する。命
令デコードユニット404では命令の解読処理を行う。
命令デコードユニット404で解読している命令が条件
分岐命令であることがわかると、プリフェッチユニット
403に対して、プリフェッチの一時停止をさせる信号
を送出する。これにより、プリフェッチユニット403
はプリフェッチ動作を一時停止する。このとき、プリフ
ェッチプログラムカウンタ415 (FPC)が示して
いるプリフェッチユニット403の命令バッファ412
 (IBO)もしくは4H(IBL)のいずれかには、
分岐しなかった場合に次に実行されるであろう命令が取
り込まれている。前記命令デコードユニット405では
分岐先アドレスを算出し、次期プログラムカウンタ(N
PC)に設定しておき、そのアドレスによって分岐先命
令のプリフェッチを行い、その分岐先命令を命令バッフ
ァ411 (18−1)に設定する。この場合、命令バ
y7ア411 (IB−1)はスルーバッフアトシては
働かず、そのまま命令を保持し、命令バッファ412 
(IBO)もしくは413 (IBI)のいずれかへの
転送は一時的に停止しておく。命令デコードユニット4
04は該条件分岐命令を解読し、解読結果を命令実行ユ
ニット405に送り、引き続いて、分岐しなかった場合
に次に実行される命令の解読を開始する。
該条件分岐命令を実行した結果、 (1)分岐を行わない場合、命令バッファ411(IB
−1)に格納している命令を捨て去り、プリフェッチユ
ニット403に送出していたプリフェッチ動作−時停止
信号を解除し、プリフェッチ動作を再開させる。
(2)分岐を行う場合、命令デコードユニット404で
解読した命令は捨て去り、セレクタ424を次期プログ
ラムカウンタ417 (NPC)を選択するように設定
し、次期プログラムカウンタ417 (NPC)の内容
をプログラムカウンタ416 (PCO)に転送する。
それと同時に次期プログラムカウンタ417 (NPC
)の内容は下位3ビツトをマスクされてプリフェッチプ
ログラムカウンタ415 (FPC)に転送される。
プリフェッチプログラムカウンタ415 (FPC)で
はその内容が更新される。命令バッファ411 (IB
−1)の内容をプリフェッチプログラムカウンタ415
(FPC)の指定している命令バッファ412 (IB
O)もしくは413 (IBI)に転送し、前記プリフ
エ、ソチプログラムカウンタ415 (FPC)の値を
1だけ増加させ、同時にこの命令をデコードユニット4
04へ転送し、プリフェッチユニット403に送出して
いた前記プリフェッチ動作−時停止信号を解除し、プリ
フェッチ動作を再開させる。
条件分岐命令以降、再び通常のパイプライン動作を開始
する。
第2〜4図は、このような条件分岐命令を含む命令連鎖
を、前記実施例の情報処理装置で行った場合の処理の流
れを示す図である。
第2〜4図において、記号m〜m+11は時刻を示し、
記号1nは第n(ただし、nはある整数の値m 、 m
 + 2 + m + 3・・ 、をとる。)番目の命
令を意味しており、記号Bnは第n(ただし、nはある
整数の値m+2をとる。)番目の命令で条件分岐命令を
意味しており、その分岐先命令は第r(ただし、rはあ
る整数の値をとる。)番目の命令1rで記述しており、
時刻は本実施例の情報処理装置の各処理のタイムスロッ
ト毎に記述しており、整数的に変化する。この最小単位
をクロックと呼ぶ。またこの例では、第m+1番目、第
m+2番目、第m+3番目の各命令は、実行時間が各々
2クロツク、2クロツク、3クロツクである場合である
なお、r−−−−Jはバッファ内容保持、または処理継
続もしくは次段処理終了待ちの何れかの状態を示し、r
H**Jはバッファ内容が空の状態を示し、「×X」は
前段からの命令語(未解読、既解読の両方)待ちの状態
を示す。
第2図は、分岐命令を含まない場合の処理の流れを示し
、時刻mの時点で命令プリフェッチを開示し、パイプラ
イン処理を行なっている。
第3図は、分岐命令を含むが、分岐命令を解読した結果
、分岐をしない場合の、パイプライン処理を示している
第3図において、時刻m+3の時点で前記条件分岐命令
Bm+2を命令デコードユニット404に転送すると同
時に、その次の命令Im+3をプリフェッチする。命令
デコードユニy h404において前記条件分岐命令B
m+2を解読処理するとき、命令解読処理と並行して分
岐先アドレスを計算し、その結果を前記次期プログラム
カウンタ417(NPC)に送り、前述したように前記
分岐先命令1rを前記命令バッファ411 (IB−1
)にプリフェッチする。
時刻m+5の時点で前記条件分岐命令(8m+2)の実
行を開始し、時刻m+7までに終了する。
この時同時に前記命令デコードユニットに命令Im+3
が転送され解読処理を受ける。前記条件分岐命令Bm+
2を実行した結果、分岐をしない場合、第6図に示すよ
うに前記命令デコードユニ、)404から解読された命
令1m+3を前記命令実行ユニット405に転送し、こ
れを実行すると同時に、前記命令バッファ411 (I
B−1)に格納していた前記分岐先命令rrは捨てられ
て、次の命令rm+4がプリフェッチされる。以後、通
常の動作に移る。
一方、前記条件分岐命令Bm+2を実行した結果、分岐
をする場合、第4図に示すように前記命令デコードユニ
ット404で解読されていた命令1m+3は捨てられ、
前記命令バッファ411(IBl)にプリフェッチされ
ていた前記分岐先命令Irが前記命令デコードユニット
に転送され、命令解読処理を受ける。この時、実行ユニ
ット405は解読済みの命令は転送されないため1クロ
ツタの間だけ一時休止(ダミーフェーズ)となる。以後
、分岐先において通常の動作に移る。
〈発明の効果〉 以上説明したように、条件分岐命令をパイプライン構造
を持つ情報処理装置で処理する場合、分岐する場合と分
岐しない場合の両方の飛び先命令を命令ブリフz ノチ
のための命令バッファ411(IB−1)および命令デ
コードユニットに保持しておき、条件分岐命令実行後に
どちらかを廃棄し、どちらかを実行することによって、
分岐先命令のミスヒツトに伴い、命令記憶ユニットに再
びアクセスしなおすことによって生じる情報処理装置の
性能低下を防ぐ効果がある。各命令のプリフェッチ、解
読、実行に要する時間が同一な場合で、分岐命令実行後
に1クロツクだけのダミーフェーズが入るだけで、それ
以外はパイプラインのリセット等の障害はない。また実
行時間がプリフェッチ、解読に要する時間より長い場合
、条件分岐命令実行後に分岐しない場合は分岐命令実行
直後の命令を実行する時間にダミーフェーズは隠れてし
まい、表面化することはない。このように条件分岐命令
の実行に伴う時間的損失を、本発明によって最小限にお
さえることができる。
【図面の簡単な説明】
第1図は本発明の情報処理装置の一実施例の要部を示す
ブロック図、第2図は本発明の情報処理装置の一実施例
において、命令の連鎖を処理している動作例を示すタイ
ミング図、第3図は本発明の情報処理装置の一実施例に
おいて、分岐命令を含む命令の連鎖を処理している動作
例で、分岐命令実行後分岐しない場合の例を示すタイミ
ング図、第4図は本発明の情報処理装置の一実施例にお
いて、分岐命令を含む命令の連鎖を処理している動作例
で、分岐命令実行後分岐する場合の例を示すタイミング
図である。 401・・・命令記憶ユニット 402・・・アドレス生成ユニット 403・・・命令プリフェッチユニット404・・・命
令デコードユニット 405・・・命令実行ユニット 406・・・分岐先算出ユニット 411.412.413・・・命令バッファ414.4
16・・・プログラムカウンタ(pc)415・・・フ
ェッチプログラムカウンタ(FPC)417・・・次期
プログラムカウンタ(NPC)421・・・スイッチ 422.424・・・セレクタ 423・・・マスク 本発明の一実施例のブロック図 第1図 分岐命令を含む・eイグライン処理の説明図分岐命令を
含む、?イブライン処理の説明図筒 図

Claims (1)

  1. 【特許請求の範囲】 命令実行のためのパイプライン処理装置を備えた情報処
    理装置において、 条件分岐命令の実行による分岐先アドレスを条件分岐命
    令の解読時に検出して、分岐先命令をプリフェッチする
    手段と、前記パイプライン処理装置のプリフェッチフェ
    ーズにおいて二方向の分岐先の命令を同時にプリフェッ
    チしておく手段と、前記プリフェッチフェーズにおいて
    二段階に分けて命令をプリフェッチする手段と、前記プ
    リフェッチバッファの命令の出し入れを操作する手段と
    を備えることを特徴とする命令シーケンス制御装置。
JP28477989A 1989-11-02 1989-11-02 命令シーケンス制御装置 Pending JPH03147134A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28477989A JPH03147134A (ja) 1989-11-02 1989-11-02 命令シーケンス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28477989A JPH03147134A (ja) 1989-11-02 1989-11-02 命令シーケンス制御装置

Publications (1)

Publication Number Publication Date
JPH03147134A true JPH03147134A (ja) 1991-06-24

Family

ID=17682906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28477989A Pending JPH03147134A (ja) 1989-11-02 1989-11-02 命令シーケンス制御装置

Country Status (1)

Country Link
JP (1) JPH03147134A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165708A (ja) * 1991-12-11 1993-07-02 Koufu Nippon Denki Kk メモリリード処理装置
JPH06124205A (ja) * 1992-10-12 1994-05-06 Matsushita Electric Ind Co Ltd 命令プリフェッチ装置
JPH08286914A (ja) * 1995-04-07 1996-11-01 Nec Corp メモリ制御装置
US6256720B1 (en) 1991-07-08 2001-07-03 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256720B1 (en) 1991-07-08 2001-07-03 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US6272619B1 (en) 1991-07-08 2001-08-07 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US6647485B2 (en) 1991-07-08 2003-11-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US6915412B2 (en) 1991-07-08 2005-07-05 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
JPH05165708A (ja) * 1991-12-11 1993-07-02 Koufu Nippon Denki Kk メモリリード処理装置
JPH06124205A (ja) * 1992-10-12 1994-05-06 Matsushita Electric Ind Co Ltd 命令プリフェッチ装置
JPH08286914A (ja) * 1995-04-07 1996-11-01 Nec Corp メモリ制御装置

Similar Documents

Publication Publication Date Title
JP2603626B2 (ja) データ処理装置
JPH0283735A (ja) 命令先取り装置
JPS6341093B2 (ja)
JPH03147022A (ja) 分岐命令処理装置および処理方法
EP0180725A2 (en) Instruction prefetch operation for branch instructions
JPH09171463A (ja) ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JPH03147134A (ja) 命令シーケンス制御装置
JPH0679273B2 (ja) データ処理装置
JP2555664B2 (ja) 分岐ヒストリテーブル書込制御方式
JP2689914B2 (ja) 情報処理装置
JPH0331933A (ja) データ処理装置
JPH0287229A (ja) 実行命令の先取り制御方式
JPH0342723A (ja) データ処理装置
JPS6411973B2 (ja)
JPH0481218B2 (ja)
JPH0248733A (ja) 情報処理装置
JP2825315B2 (ja) 情報処理装置
JPH0774992B2 (ja) データ処理装置
JPH01296345A (ja) 情報処理装置
JPH027128A (ja) 情報処理装置
JP2682759B2 (ja) 命令フェッチ回路
JPH0218620A (ja) 情報処理装置
JPH05165633A (ja) 命令先取り装置