JPH1165843A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH1165843A
JPH1165843A JP21760297A JP21760297A JPH1165843A JP H1165843 A JPH1165843 A JP H1165843A JP 21760297 A JP21760297 A JP 21760297A JP 21760297 A JP21760297 A JP 21760297A JP H1165843 A JPH1165843 A JP H1165843A
Authority
JP
Japan
Prior art keywords
instruction
dependency
execution
circuit
instructions
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
JP21760297A
Other languages
English (en)
Inventor
Jiro Kubota
二郎 窪田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP21760297A priority Critical patent/JPH1165843A/ja
Publication of JPH1165843A publication Critical patent/JPH1165843A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 情報処理装置におけるパイプライン処理中に
発生する実行ストールを削減して全体的に処理能力を向
上することを目的とする。 【解決手段】 命令を格納するメモリー1と、メモリー
からフェッチした命令をデコードするデコード手段5、
7とを有するパイプライン情報処理装置において、次の
実行命令のアドレスが格納されるプログラムカウンタ1
0と、メモリーから複数個の命令をプリフェッチして保
持する命令プリフェッチバッファ回路2と、プログラム
カウンタを参照してメモリーからプリフェッチした連続
する複数の命令が依存関係にあるか否かを判定し依存関
係にある命令は実行ストールする可能性のある命令とし
て実行順序を入れ替える実行順序変更回路3とからな
り、命令の実行順序を入れ替えることにより実行ストー
ルを回避することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
型のマイクロプロセッサにおいて、遂行する命令の順序
を変更してマイクロプロセッサの処理速度を向上するよ
うにした情報処理装置に関する。
【0002】すなわち、本発明における命令逐次処理型
のマイクロプロセッサ(情報処理装置)は、その実行時
間を短縮するため、1命令内の処理を分割し、それぞれ
の処理を別々の機能ブロックにより行わせることによっ
て、連続する命令をオーバーラップさせながら並列に実
行するパイプライン処理型のマイクロプロセッサであ
る。
【0003】
【従来の技術】図6は、パイプライン処理における4つ
のステージを持つ命令の分割の例を示す図であり、命令
フェッチステージ32と、命令デコードステージ33
は、アドレスデコード/演算ステージ34と、メモリー
アクセスステージ35とからなり、アセンブラレベルで
の単体命令をこれら4つのステージに機能分割して実行
する処理系の例である。
【0004】パイプライン処理では、連続する命令をオ
ーバーラップさせながら実行するが、ある命令の実行に
はそれ以前に遂行された命令の演算結果をオペランドと
して使用することが必要な場合がある。このような場
合、現在の命令を実行するために必要なオペランドの演
算が前の命令で終了していないと、その演算が終了する
まで現在遂行中の命令の遂行を一時停止しなければなら
ない。実行中の命令の停止を以下、「実行ストール」と
呼ぶ。
【0005】次に、図7を参照して、従来の情報処理装
置において、命令に実行ストールが生じる例について説
明する。図7は、従来の情報処理装置における命令の遂
行中に命令の実行ストールが生じた場合の例を示す図で
ある。下記に示すプログラムソースにおいて、LDは指
定したメモリーアドレスからのデータロード命令、SF
Tは指定レジスタの演算(シフト)命令、R0、R1は
レジスタ名、〔0010〕、〔0012〕はメモリーア
ドレスを示す。 LD R0、 〔0010〕 第1命令 SFT R0、 #1 第2命令 LD R1、 〔0012〕 第3命令
【0006】図7において、第1命令はレジスタへのロ
ード命令で、21、22、23、24の各ステージによ
り命令が実行されるものとする。第2命令はシフト演算
(シフト)命令で、29、30、31の各ステージで実
行されるものとする。第3命令はレジスタへのロード命
令で、25、26、27、28の各ステージにより命令
が実行されるものとする。
【0007】演算命令の実行中、ロード命令(第1命
令)のステージ24で得られたオペランドを第2命令の
ステージ31の演算命令で呼び出す必要があるが、ステ
ージ31の時点では、まだロード命令のステージ24の
処理が終了していないのでそのオペランドが得られず、
演算ステージ31は1サイクル分実行ストールすること
になる。
【0008】
【発明が解決しようとする課題】上記のように、実行ス
トールが生じたとしても、演算の遂行は十分行われる
が、1つの命令に対する実効的なクロックサイクルが増
大して、実効効率が悪くなる。その結果、命令の処理速
度が低下し、マイクロプロセッサ全体の処理能力が低下
する。
【0009】ー般に、マイクロプロセッサが実行する命
令全てのステージ数が同一でない処理系の場合、処理に
異常遂行などが発生するようなパイプラインハザードが
生じる可能性がある。従来、このような実行ストールを
回避するために、プログラム作成者がプログラミングす
る時に、極力実行ストールが生じないような命令順にプ
ログラミングするようにしていたが、時間が掛り面倒で
あり、そのため情報処理装置の処理能力が低下するとい
う問題があった。
【0010】本発明は、上記従来の問題を解決するため
になされたもので、情報処理装置におけるパイプライン
処理中に発生する実行ストールを削減して、全体的な処
理能力を向上する情報処理装置を提供することを目的と
する。
【0011】
【課題を解決するための手段】本発明による情報処理装
置は、命令を格納するメモリーと、前記メモリーからフ
ェッチした命令の命令コード及びオペランドをデコード
するデコード手段とを有するパイプライン制御される情
報処理装置において、次に実行されるべき命令のアドレ
スが格納されるプログラムカウンタと、前記メモリーか
ら複数個の命令をプリフェッチして保持する命令プリフ
ェッチバッファ回路と、プログラムカウンタを参照して
メモリーからプリフェッチした連続する複数の命令が依
存関係にあるか否かを判定し依存関係にある命令は実行
ストールする可能性のある命令としてその実行順序を変
更する実行順序変更回路とからなり、実行順序変更回路
は先にフェッチされた第1命令と次にフェッチされた第
2命令との依存関係を判定し依存関係にあると判定され
た場合、前記第2命令とさらに次にフェッチされた第3
命令との依存関係を判定させる判定要求信号を発生し、
判定要求信号の発生に従い、第2命令と第3命令との依
存関係を判定し依存関係がないと判定された場合は第2
命令と第3命令の実行順序を入れ替えて出力し、実行ス
トールを回避するようにしたものである。
【0012】
【発明の実施の形態】
実施の形態1.以下、添付図面、図1乃至図5に基づ
き、本発明の実施の形態1を詳細に説明する。図1は本
発明の実施の形態1における情報処理装置の構成を示す
ブロック図、図2は図1に示す実行順序変更回路の内部
構成を示すブロック図、図3は図2に示す2命令の依存
関係判定回路(A)の内部構成を示すブロック図、図4
は図1に示す本実施の形態における情報処理装置を実施
するフローチャートを示す図、図5は図1に示す情報処
理装置における命令の実行順序変更により実行ストール
を回避した実行順序変更後の命令を示す図である。
【0013】まず、図1を参照して、本発明の実施の形
態1における情報処理装置の構成を説明する。本実施の
形態では、例として、1つの命令が命令フェッチ、命令
デコード、アドレスデコード/実行、メモリーアクセス
の4つのステージを有するパイプラインの例について説
明する。
【0014】図1は、このパイプラインの例を実現する
マイクロプロセッサ(情報処理装置)のブロック図であ
る。このマイクロプロセッサにおいて、命令フェッチス
テージ、命令デコードステージ、アドレスデコード/演
算ステージ、メモリーアクセスステージ等4つの各ステ
ージはそれぞれ命令フェッチ回路4、命令デコード回路
5、アドレスデコード回路6/演算回路7、メモリーア
クセス回路8により処理されるものとする。
【0015】本実施の形態におけるマイクロプロセッサ
はパイプラインを1つのみ有するものであり、1回のC
PUサイクルで1つのステージあたり1つの命令を実行
するものと仮定する。図1において、1は複数の命令を
記憶する命令メモリー、2はメモリー1から複数個の命
令をプリフェッチして保持する命令プリフェッチバッフ
ァ回路、3はプログラムカウンタ10を参照してプリフ
ェッチした連続実行する2つの命令のうち、その命令コ
ード及びオペランドから実行ストールする可能性のある
命令を逐次モニタし、実行ストールする可能性のある命
令がある場合、2つの命令の実行順序を変更して実行ス
トールする可能性のある命令の実行を後にずらすように
する実行順序変更回路である。
【0016】また、10は次に実行されるべき命令のア
ドレスが格納されるプログラムカウンタ、4は実行順序
変更回路3から現に実行されるべき命令を受ける命令フ
ェッチ回路、5はフェッチされた命令コードをデコード
する命令デコード回路、7は実行するアドレスをデコー
ドするアドレスデコード回路、6はデコードされた命令
を実行する演算回路、8は演算した結果を格納するため
に汎用メモリー9をアクセスするためのメモリーアクセ
ス回路、9は演算結果を格納する汎用メモリーである。
【0017】本実施の形態における情報処理装置の構成
の特徴を要約すると、命令メモリー1と命令フェッチ回
路4とのインターフェース間に命令メモリー1から複数
個の命令をプリフェッチする命令プリフェッチバッファ
回路2と、次に実行される命令のアドレスが格納された
プログラムカウンタ10と、プリフェッチした2つの命
令のうち実行ストールする可能性のある命令を判定し
て、実行ストールする可能性のある命令の実行順序を変
更する実行順序変更回路3とを設け、プログラムカウン
タ10を参照して複数個の命令をプリフェッチし、プリ
フェッチされた複数個の命令の中に実行ストールする可
能性のある命令がある場合、その命令の実行順序を変更
して後にずらすことにより、実行ストールを回避するよ
うにしたものである。
【0018】次に、図2を参照して、図1に示す本実施
の形態における情報処理装置を構成する実行順序変更回
路3の内部構成を詳細に説明する。図2に示す実行順序
変更回路3はプログラムカウンタ10を参照して、命令
プリフェッチバッファ回路2から第1命令13と第2命
令14とを入力して、第2命令14に実行ストールが発
生する可能性があるか否かを判定し、その結果、判定要
求信号36を出力する依存関係判定回路(A)11と、
判定要求信号36を受けた場合、命令プリフェッチバッ
ファ回路2から入力された第2命令14と第3命令15
とに実行ストールが発生する可能性があるか否かを判定
する依存関係判定回路(B)12とからなる。
【0019】次に、図2及び図3を参照して、本実施の
形態における情報処理装置の実行順序変更回路3による
2つの命令の依存関係判定動作について説明する。要約
すると、まず、実行順序変更回路3は、プログラムカウ
ンタ10を参照して、命令プリフェッチバッファ回路2
にプリフェッチした複数の命令から連続実行する2つの
命令のうち実行ストールする可能性のある命令を逐次モ
ニタする。ここで、実行ストールする可能性のある命令
とは、連続実行する命令の実行ステージ数が前後で異な
り、また先に実行する命令の処理が終了するまで次の命
令の実行ができない命令の場合である。例としては、レ
ジスタに対するロードのストア命令のあとに同一オペラ
ンドのレジスタをアクセスするような演算命令などであ
る。
【0020】次に、実行順序変更回路3の動作について
詳細に説明する。実行順序変更回路3は、プログラムカ
ウンタ10により示された命令アドレスがn番地の場
合、命令プリフェッチバッファ回路2からn番地の第1
命令13とn+1番地の第2命令14との依存関係を図
2に示す実行順序変更回路3内の依存関係判定回路
(A)11により判定する。依存関係判定回路(A)1
1によりn+1番地の第2命令14が実行ストールを生
ずる可能性がある命令と判定された場合、依存関係判定
回路(A)11はn+1番地の第2命令14とn+2番
地の第3命令15との間の命令依存関係の判定要求信号
36を依存関係判定回路(B)12に送出する。
【0021】依存関係判定回路(B)12は判定要求信
号36を入力しない場合は、第1命令13を命令フェッ
チ回路4に転送する。しかし、判定要求信号36を入力
した場合、依存関係判定回路(B)12は第2命令14
と第3命令15との依存関係の判定を開始する。第2命
令14と第3命令15との命令間に依存関係が無く、第
3命令15を第2命令14より先に実行可能と判断した
場合は第3命令15及び第2命令14の順に各命令を命
令フェッチ回路4に転送して、第2命令14の実行スト
ールを回避することができる。
【0022】第2命令14と第3命令15との命令間に
も依存関係があり、第3命令15を第2命令14より先
に実行不可能と判断した場合は第2命令14及び第3命
令15の順に各命令を命令フェッチ回路4に転送する。
この場合は、第2命令14に実行ストールが発生する可
能性は残る。実行順序変更回路3は実行するべき命令を
命令フェッチ回路4に転送したのち、プログラムカウン
タ10のカウントを1命令分だけインクリメントする。
要するに、本実施の形態における情報処理装置は前と後
の命令間に依存関係がある場合、依存関係にある命令を
依存関係にない命令と入れ替えて実行ストールを回避す
るようにしたものである。
【0023】次に、図3を参照して、図2に示す依存関
係判定回路(A)11の更に詳細な内部構成の例を説明
する。図3において、16は命令コード及びオペランド
からなる命令プリフェッチバッファ回路2から入力した
第1命令、17は命令コード及びオペランドからなる命
令プリフェッチバッファ回路2から入力した第2命令、
18は第1命令16の命令コードと第2命令17の命令
コードとが実行ストールするある特定の組み合わせであ
るかどうかを判定する命令コード判定部、19は第1命
令16のオペランドと第2命令17のオペランドとが同
一であるかどうかを判定するオペランド判定部、20は
命令コード判定部18からの命令コード依存信号がオン
かまたはオペランド判定部19からのオペランド依存信
号がオンの場合、依存関係判定回路(B)12に対して
判定要求信号36を出力するオア・ゲートである。
【0024】図2に示す依存関係判定回路(A)11の
説明では、単に第1命令13と第2命令14とについて
その依存性を判定するようにしたが、図3に示す依存関
係判定回路(A)11においては、第1命令13と第2
命令14の命令コードについてその間に特定の関係があ
るかどうかについて判定するとともに、第1命令13と
第2命令14のオペランドについてその同一性について
判定するようにしている。そして、命令コードかオペラ
ンドかのどちらかに上記のような関係があれば、依存関
係判定回路(B)12に対して判定要求信号36を出力
する。図3に示す依存関係判定回路(A)11のその他
の動作及び依存関係判定回路(B)12の動作は、図2
について説明したものと同様であるから、再度の説明は
省略する。
【0025】次に、本実施の形態における情報処理装置
による命令の実行順序変更方法のより良い理解のため
に、図4、図5及び図7を参照して、命令の実行順序変
更手順を説明する。この例で、実行順序を判定する複数
の命令は図7に示す第1命令、第2命令及び第3命令で
あるものとする。まず、ステップ101において、命令
プリフェッチバッファ回路2から入力したプログラムカ
ウンタ10が示すアドレスの命令(第1命令)と次の命
令(第2命令)の2つの命令の命令コードをデコード
し、ステップ102において、2つの命令のオペランド
をデコードしてステップ103に進む。
【0026】ステップ103において、2つの命令に依
存関係があるか(上記のように、命令コード及びオペラ
ンドの両方について判定する、以下同じ)ないかを判定
して、依存関係が無ければステップ109に進み、命令
をそのまま出力し命令プリフェッチバッファ回路2のプ
ログラムカウンタ10を1命令分インクリメントして
(ステップ108)スタートに戻る。ステップ103に
おいて、2つの命令間に依存関係があると判定される
と、ステップ104に進み次に実行するべき命令(第3
命令)をデコードする。ステップ105に進み第2命令
と第3命令の依存関係を上記同様の手順で判定する。ス
テップ106において、第2命令と第3命令との間に依
存関係があると判定されると、ステップ109に進み、
命令をそのまま出力して命令プリフェッチバッファ回路
2のプログラムカウンタ10を1命令分インクリメント
して(ステップ108)スタートに戻る。この場合、第
2命令に対する実行ストールの可能性は残る。
【0027】次に、ステップ106において、第2命令
と第3命令との間に依存関係が無いと判定されると、ス
テップ107に進み、実行順序変更回路3において第2
命令と第3命令の命令デコード回路5に対する出力順序
を変更(入替え)して、ステップ108に進み、命令プ
リフェッチバッファ回路2のプログラムカウンタ10を
1命令分インクリメントしてスタートに戻る。その結
果、図7に示すようなプリフェッチした3つの命令(第
1命令、第2命令、第3命令)の第2命令と第3命令と
を入れ換えて、図5に示すような出力順序で遂行するよ
うにした。それにより、図7に示す第2命令には実行ス
トールが発生することになるが、本実施の形態により第
2命令と第3命令とを入れ換えた図5に示す第2命令に
は、実行ストールは発生しない。
【0028】
【発明の効果】本発明は、上記のように構成し、特に実
行するためにプリフェッチした2つの命令のうち実行ス
トールする可能性のある命令を判定し、実行ストールす
る可能性のある命令の実行順序を変更する実行順序変更
回路を設けたことにより、情報処理装置におけるパイプ
ライン処理中に発生する実行ストールを削減して、情報
処理装置全体の処理能力を向上させることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1における情報処理装置
の構成を示すブロック図。
【図2】 図1に示す実行順序変更回路の内部構成を示
すブロック図。
【図3】 図2に示す2命令の依存関係判定回路(A)
の内部構成を示すブロック図。
【図4】 図1に示す本実施の形態における情報処理装
置を実施するフローチャートを示す図。
【図5】 図1に示す情報処理装置における命令の実行
順序変更により実行ストールを回避する実行順序変更後
の命令を示す図。
【図6】 パイプライン処理における4つのステージを
持つ命令の分割の例を示す図。
【図7】 従来の情報処理装置における命令の遂行中に
命令の実行ストールが生じた場合の例を示す図。
【符号の説明】
1 命令メモリー、2 命令プリフェッチバッファ回
路、3 実行順序変更回路、4 命令フェッチ回路、5
命令デコード回路、7 アドレスデコード回路、6
演算回路、8 メモリーアクセス回路、9 汎用メモリ
ー、10 プログラムカウンタ、11 依存関係判定回
路(A)、12 依存関係判定回路(B)、13 第1
命令、14 第2命令、15 第3命令、16 第1命
令、17第2命令、18 命令コード判定部、19 オ
ペランド判定部、20 オア・ゲート、21 命令フェ
ッチ、22 命令デコード、23 アドレスデコード、
24 メモリーアクセス、25 命令フェッチ、26
命令デコード、27 アドレスデコード、28 メモリ
ーアクセス、29 命令フェッチ、30 命令デコー
ド、31 演算、32 命令フェッチステージ、33
命令デコードステージ、34 アドレスデコードステー
ジ、35 メモリーアクセスステージ、36判定要求信
号。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令を格納するメモリーと、前記メモリ
    ーからフェッチした命令の命令コード及びオペランドを
    デコードするデコード手段とを有するパイプライン制御
    される情報処理装置において、次に実行されるべき命令
    のアドレスが格納されるプログラムカウンタと、前記メ
    モリーから複数個の命令をプリフェッチして保持する命
    令プリフェッチバッファ回路と、前記プログラムカウン
    タを参照して前記メモリーからプリフェッチした連続す
    る2つの命令が依存関係にあるか否かを判定し依存関係
    にある命令は実行ストールする可能性のある命令として
    その実行順序を変更する実行順序変更回路とからなり、
    依存関係にある命令を依存関係にない命令と入れ替える
    ようにしたことを特徴とする情報処理装置。
  2. 【請求項2】 前記実行順序変更回路は先にフェッチさ
    れた第1命令と次にフェッチされた第2命令との依存関
    係を判定し依存関係にあると判定された場合前記第2命
    令とさらに次にフェッチされた第3命令との依存関係を
    判定させる判定要求信号を出力する依存関係判定回路
    (A)と、前記判定要求信号を入力して前記第2命令と
    第3命令との依存関係を判定し依存関係がない場合前記
    第2命令と第3命令の実行順序を入れ替えて出力する依
    存関係判定回路(B)とからなることを特徴とする請求
    項1に記載の情報処理装置。
JP21760297A 1997-08-12 1997-08-12 情報処理装置 Pending JPH1165843A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21760297A JPH1165843A (ja) 1997-08-12 1997-08-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21760297A JPH1165843A (ja) 1997-08-12 1997-08-12 情報処理装置

Publications (1)

Publication Number Publication Date
JPH1165843A true JPH1165843A (ja) 1999-03-09

Family

ID=16706869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21760297A Pending JPH1165843A (ja) 1997-08-12 1997-08-12 情報処理装置

Country Status (1)

Country Link
JP (1) JPH1165843A (ja)

Similar Documents

Publication Publication Date Title
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
EP0207665B1 (en) Bidirectional branch prediction and optimization
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP2009053861A (ja) プログラム実行制御装置
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
TWI764966B (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
US6851033B2 (en) Memory access prediction in a data processing apparatus
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
JP3779012B2 (ja) 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法
US6609191B1 (en) Method and apparatus for speculative microinstruction pairing
CN110073332B (zh) 数据处理装置和方法
JPH11345121A (ja) プログラム制御ユニット用の命令取り出し装置および方法
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
JPH1165843A (ja) 情報処理装置
WO2006006613A1 (en) Methods and apparatus for updating of a branch history table
JPH0342723A (ja) データ処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치
JP3102399B2 (ja) データ処理装置及び方法
JP3743155B2 (ja) パイプライン制御型計算機
JP3668643B2 (ja) 情報処理装置
JPH05173785A (ja) 命令先取り装置
JP2861234B2 (ja) 命令処理装置
KR20000003930A (ko) 명령어 캐시 미스 시 손실을 줄이기 위한 명령어 페치 장치
JP2000276352A (ja) パイプライン保護

Legal Events

Date Code Title Description
A02 Decision of refusal

Effective date: 20040127

Free format text: JAPANESE INTERMEDIATE CODE: A02