JP2933030B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2933030B2
JP2933030B2 JP26132496A JP26132496A JP2933030B2 JP 2933030 B2 JP2933030 B2 JP 2933030B2 JP 26132496 A JP26132496 A JP 26132496A JP 26132496 A JP26132496 A JP 26132496A JP 2933030 B2 JP2933030 B2 JP 2933030B2
Authority
JP
Japan
Prior art keywords
instruction
short
stage
nop
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.)
Expired - Fee Related
Application number
JP26132496A
Other languages
English (en)
Other versions
JPH1091438A (ja
Inventor
尚夫 小柳
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 Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP26132496A priority Critical patent/JP2933030B2/ja
Publication of JPH1091438A publication Critical patent/JPH1091438A/ja
Application granted granted Critical
Publication of JP2933030B2 publication Critical patent/JP2933030B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、VLIW方式を採
用した情報処理装置に関し、特に、命令パイプラインの
スケジューリングのために挿入されるNOP命令の数を
少なくすることができる情報処理装置に関する。
【0002】
【従来の技術】情報処理装置に於ける並列処理技術の1
つとして、細粒度並列処理方式がある。この方式は、細
かな命令レベルで並列実行可能な命令を探し出し、それ
らの命令を並列に実行する方式であり、ハードウェアに
よる方式とソフトウェアによる方式とがある。
【0003】ハードウェアによってダイナミックに命令
実行のスケジューリングを行う方式としては、スーパー
スカラ方式がある。この方式は、市販されているマイク
ロプロセッサで幅広く採用され、製品レベルでかなり実
績のある技術である。その長所は、コンパイラに対して
それほど高度な最適化技術がなくとも性能を出しやすい
点である。逆に、短所は、製品,部品,回路といったハ
ードウェアの増大を招き、そのことでLSIの限られた
面積を使ってしまったり、高速なクロックを実現する為
に足かせとなるクリティカルパスの増大を招きやすいと
いう点である。
【0004】また、ソフトウェアによって命令実行のス
ケジューリングを行う方式としてはVLIW(Very
Long Instruction set Wor
d)方式がある。この方式の長所は、スーパースカラ方
式の逆で、命令のスケジューリング機能をコンパイラが
肩代わりするので、ハードウェアがシンプルになり、高
速クロックが実現しやすいという点である。逆に短所
は、コンパイラに高度な最適化技術が必要になるという
点、応用プログラムの種類によっては、いくらコンパイ
ラの最適化技術を駆使しても、性能が出ないことがある
という点である。しかし、VLIW方式に於ける、ハー
ドウェアがシンプルになるという長所は捨て難く、将
来、商用マイクロプロセッサに採用されるであろう。
【0005】ところで、VLIW方式に於いて、コンパ
イラが命令パイプライン上で命令スケジューリングを行
う場合、先ず、短命令間のレジスタ参照関係を解析す
る。そして、短命令間にレジスタの参照関係があれば、
先行する短命令の結果を待っている後続の命令を如何な
るタイミングで発行すれば良いかを求める。短命令の発
行後、その結果が得られるまでの時間は、その短命令の
種類によって固定であるので、後続の命令の発行タイミ
ングは容易に求めることができる。そして、先行する短
命令の結果が得られるまでの間に、先行する短命令とは
関係のない短命令群を挿入することで、命令パイプライ
ン内を乱れなく命令が流れるようにスケジューリングす
る。
【0006】
【発明が解決しようとする課題】しかし、実際には間断
なく命令を実行させるほど先行する短命令と無関係な短
命令は存在せず、コンパイラはその空いたタイミングに
NOP(No Operation)命令を挿入する。
このように、NOP命令は、コンパイラでスケジューリ
ングを行う場合、大きな役割を持つ。
【0007】しかし、プログラムの種類によっては、コ
ンパイラによって生成されるNOP命令が通常の短命令
よりも多くなってしまう場合がある。このような場合、
コンパイラのスケジューリングよって生成された膨大な
NOP命令を主記憶装置からフェッチするために、本来
実行すべき短命令が命令実行部に十分に供給されず、V
LIW方式の生命線である命令レベルの並列化処理が十
分に行えない場合があるという問題があった。尚、特開
平4−275603号公報には、NOP命令自身にその
実行回数を付加することにより、NOP命令の数を少な
くする技術が記載されているが、この技術を適用しても
VLIW方式の情報処理装置に於いては、NOP命令数
をあまり減らすことはできない。
【0008】そこで、本発明の目的は、命令パイプライ
ンのスケジューリングのために挿入されるNOP命令数
を少なくすることができるVLIW方式の情報処理装置
を提供することにある。
【0009】
【課題を解決するための手段】本発明は上記目的を達成
するため、VLIW方式を採用した情報処理装置に於い
て、デコードステージに同時に移行してきた複数の短命
を解読し、該複数の短命令の中に、それと同時に発行
ステージへ移行させる短命令の指定と前記発行ステージ
への移行を延期させるサイクル数とを含むNOP命令が
存在する場合、該NOP命令を示す情報と、該NOP命
令と同時に前記発行ステージへ移行させる短命令を示す
情報と、前記発行ステージへの移行を延期させるサイク
ル数とを出力するデコーダと、前記発行ステージに有効
な命令が存在しなくなったタイミングに於いて、前記デ
コーダから出力される情報によって示されるNOP命令
と短命令とを前記発行ステージへ移行させ、前記デコー
ダから出力されるサイクル数が経過したタイミングに於
いて前記デコードステージに存在する未移行の短命令を
前記発行ステージへ移行させる組み合わせ回路とを備え
ている。
【0010】上記した構成に於いては、デコードステー
ジに同時に移行してきた複数の短命令の中に、それと同
時に発行ステージへ移行させる短命令の指定と発行ステ
ージへの移行を延期させるサイクル数とを含むNOP命
令が存在する場合、デコーダが、NOP命令を示す情報
と、NOP命令と同時に前記発行ステージへ移行させる
短命令を示す情報と、発行ステージへの移行を延期させ
るサイクル数とを出力し、組み合わせ回路が、デコーダ
から出力される情報によって示されるNOP命令と短命
令とを発行ステージへ移行させ、デコーダから出力され
るサイクル数が経過したタイミングに於いてデコードス
テージに存在する未移行の短命令を発行ステージへ移行
させる。
【0011】また、本発明は、先行する短命令が完結す
るまでの時間が分からない場合であっても、命令パイプ
ライン内に乱れが生じないようにするため、前記デコー
ダは、前記デコードステージに同時に移行してきた複数
の短命令を解読し、該複数の短命令の中に、それらの短
命令より先行する全ての短命令が完結するまでそれらの
発行を延期させることを指示するアドバンスオフの指定
を含むNOP命令が存在する場合、前記デコードステー
ジにアドバンスオフの指定を含むNOP命令が存在する
ことを示す情報を出力する構成を有し、 前記組み合わせ
回路は、 前記デコーダから前記デコードステージにアド
バンスオフの指定を含むNOP命令が存在することを示
す情報が出力されている場合、前記発行ステージに有効
な命令が存在しなくなったタイミングに於いて前記デコ
ードステージに存在する複数の短命令を前記発行ステー
ジに移行させた後、システムビジー信号がアクティブで
なくなるまでの間、前記発行ステージに移行させた各短
命令の発行を延期させる構成を備えている。
【0012】上記構成に於いては、デコードステージに
同時に移行してきた複数の短命令の中に、それらの短命
令より先行する全ての短命令が完結するまでそれらの発
行を延期させることを指示するアドバンスオフの指定を
含むNOP命令が存在する場合、デコーダが、デコード
ステージにアドバンスオフの指定を含むNOP命令が存
在することを示す情報を出力し、組み合わせ回路が、デ
コードステージに移行してきた複数の短命令を発行ステ
ージに移行させ、システムビジー信号がアクティブの
間、発行ステージに存在する短命令の発行を延期させ、
システムビジー信号がアクティブでなくなると、発行ス
テージに存在する短命令を発行させる。
【0013】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0014】図1は本発明の実施例のブロック図であ
り、命令キャッシュ1と、アドレスアレイ2と、エント
リ有効ビット3と、アドレスレジスタ(ICRA)4
と、IC有効ビット5と、比較器6と、アンドゲート7
と、デコードステージの命令レジスタ8と、発行ステー
ジの命令レジスタ9と、命令パイプライン制御部10と
から構成されている。
【0015】命令キャッシュ1の各エントリには、主記
憶装置(図示せず)に格納されている長命令の写しが格
納される。主記憶装置上の或るアドレスに存在する長命
令を命令キャッシュ1に格納する場合、上記長命令は、
上記アドレスの下位Nビットによって示される命令キャ
ッシュ1のエントリに格納される。例えば、アドレスの
下位Nビットが全て“0”の長命令を命令キャッシュ1
に格納する場合には、命令キャッシュ1の第1番目のエ
ントリに格納し、アドレスの下位Nビットの内の最下位
ビットのみが“1”の命令を命令キャッシュ1に格納す
る場合には、命令キャッシュ1の第2番目のエントリに
格納する。このような命令キャッシュ1を備えることに
より、分岐命令で今までの実行制御フローから全く異な
るアドレスへジャンプしても、命令キャッシュ1にその
ジャンプ先の命令が格納されているならば、毎回、主記
憶装置に対してフェッチ要求を送出する必要が無くな
る。
【0016】アドレスアレイ2には、命令キャッシュ1
と同数のエントリが設けられており、各エントリには、
命令キャッシュ1の対応するエントリに格納されている
長命令の主記憶装置上のアドレスが格納されている。
【0017】エントリ有効ビット3は、命令キャッシュ
1の各エントリ毎に設けられており、命令キャッシュ1
の対応するエントリに有効な長命令が格納されているか
否かを表示する。
【0018】アドレスレジスタ4には、図示を省略した
システム制御部によって命令の読み出しアドレスが格納
される。IC有効ビット5は、命令キャッシュ1に対す
る読み出し動作が有効であるか否かを示すビットであ
る。
【0019】比較器6は、アドレスレジスタ4に格納さ
れているアドレスと、そのアドレスの下位Nビットによ
って示されるアドレスアレイ2のエントリから読み出し
たアドレスとを比較し、比較結果を出力する。つまり、
比較器6の比較結果が、比較一致の場合は、命令キャッ
シュ1中に目的の長命令が存在し、比較不一致の場合
は、命令キャッシュ1中に目的の長命令が存在しないこ
とになる。
【0020】アンドゲート7は、比較器6の比較結果と
IC有効ビット5とに基づいて、目的とする長命令が命
令キャッシュ1中に存在するか否かを示すICヒット信
号を生成する。ICヒット信号が、目的の長命令が命令
キャッシュ1中に存在しないことを示している場合は、
図示を省略したキャッシュ制御部が、目的とする命令を
主記憶装置から命令キャッシュ1へ転送する。
【0021】デコードステージの命令レジスタ8には、
命令キャッシュ1から長命令が供給される。この長命令
は4つの短命令から構成され、各短命令はそれぞれ命令
レジスタ8のda,db,dc,dd部分に格納され
る。尚、本実施例では、各短命令は32ビット構成であ
るとする。
【0022】発行ステージの命令レジスタ9のisa,
isb,isc,isd部分には、命令レジスタ8のd
a,db,dc,dd部分に格納されている命令が供給
される。
【0023】命令パイプライン制御部10は、Vビット
制御機能,命令発行制御機能,ホールド機能,NOP命
令による命令パイプライン同期制御機能を有する。
【0024】Vビット制御機能は、命令レジスタ8,9
のda,db,dc,dd,isa,isb,isc,
isd部分に有効な命令が存在するか否かを示すVビッ
トと呼ばれる制御フラグを管理する機能である。
【0025】命令発行制御機能とは、文字通り命令の発
行を制御する機能である。ここで、発行とは、その短命
令に相当する命令実行部に対して実行指示を出力する行
為である。例えば、演算命令の場合は、命令発行時に演
算器に対して演算実行指示を出力する。
【0026】ホールド機能とは、何らかの原因でデコー
ドステージの命令レジスタ8から発行ステージの命令レ
ジスタ9へ命令を移行できなかった場合、或いは発行ス
テージの命令レジスタ9から発行できなかった場合、そ
の命令の次サイクル(次クロック)でもそのステージの
命令レジスタにとどまらせて、実行を延期させる機能で
ある。
【0027】最後に、NOP命令による命令パイプライ
ン同期制御機能とは、本発明固有の機能であり、後で説
明する本発明特有のNOP命令に従って命令パイプライ
ンのコントロールを行う機能である。
【0028】図2は本実施例に於いて使用するNOP命
令のフォーマットを示した図である。
【0029】図2に示したNOP命令は、VLIW方式
の短命令の1つであり、32ビット構成である。そし
て、その先頭の8ビットが、NOP命令であることを示
すオペコードとなっている。また、残り24ビットの内
の、所定の2ビット,3ビットがフィールドA,Bとな
っている。
【0030】フィールドAはNOP命令のタイプを示す
フィールドであり、本実施例ではフィールドAの内容が
「00」,「01」,「10」,「11」のNOP命令
をそれぞれタイプNOP1,NOP2,NOP3,NO
P4のNOP命令と呼ぶものとする。
【0031】フィールドBは、アドバンスオフ或いは延
期させるサイクル数を指示するフィールドである。本実
施例では、「000」がアドバンスオフを指示し、「0
01」〜「111」がそれぞれサイクル数1〜7を示す
ものとする。ここで、アドバンスオフの指示とは、それ
が含まれている長命令よりも先行する全ての短命令の実
行が完結するまで、上記長命令の発行延期を指示するも
のである。
【0032】次に、上記した4つのタイプNOP1,N
OP2,NOP3,NOP4のNOP命令について説明
する。
【0033】タイプNOP1のNOP命令(NOP1命
令)は、それと同時にデコードステージに落ちてきた短
命令の内、自身よりも先行側の短命令のみを、発行ステ
ージに有効な短命令が存在しなくなったタイミングに於
いて、自身と同時に発行ステージに移行できる短命令と
し、自身が発行ステージに移行したタイミングに於いて
デコードステージに存在する短命令を移行延期対象の短
命令とする。
【0034】タイプNOP2のNOP命令(NOP2命
令)は、それと同時にデコードステージに落ちてきた短
命令の内、自身よりも先行側の短命令,自身の次の短命
令を、発行ステージに有効な短命令が存在しなくなった
タイミングに於いて、自身と同時に発行ステージに移行
できる短命令とし、自身が発行ステージに移行したタイ
ミングに於いてデコードステージに存在する短命令を移
行延期対象の短命令とする。
【0035】タイプNOP3のNOP命令(NOP3命
令)は、それと同時にデコードステージに落ちてきた短
命令の内、自身よりも先行側の短命令,自身の次の短命
令とその次の短命令を、発行ステージに有効な短命令が
存在しなくなったタイミングに於いて、自身と同時に発
行ステージに移行できる短命令とし、自身が発行ステー
ジに移行したタイミングに於いてデコードステージに存
在する短命令を移行延期対象の短命令とする。
【0036】タイプNOP4のNOP命令(NOP4命
令)は、通常のNOP命令と同様のものであり、同時に
デコードステージに落ちてきた他の短命令の発行ステー
ジへの移行を延期させる機能はない。
【0037】図3は上記した4つのタイプのNOP命令
のフィールドAの機能を説明するための図である。
【0038】図3(1)では、デコードステージの命令
レジスタ8のda,db,dc,dd部分に、それぞれ
NOP1命令,命令X,命令Y,命令Zが同時に落ちて
きている。この状態をTと定義すると、1サイクル後の
(T+1)では、NOP1命令のみが発行ステージの命
令レジスタ9のisa部分に移行する。
【0039】図3(2)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれNOP2命
令,命令X,命令Y,命令Zが同時に落ちてきており、
1サイクル後の(T+1)に於いて、NOP2命令,命
令Xがそれぞれ発行ステージの命令レジスタ9のis
a,isb部分に移行する。
【0040】図3(3)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれNOP3命
令,命令X,命令Y,命令Zが同時に落ちてきており、
1サイクル後の(T+1)に於いて、NOP3命令,命
令X,命令Yがそれぞれ発行ステージの命令レジスタ9
のisa,isb,isc部分に移行する。
【0041】図3(4)に示すように、Tに於いて、命
令レジスタ8のda,db,dc,dd部分にそれぞれ
NOP4命令,命令X,命令Y,命令Zが同時に落ちて
きた場合は、1サイクル後の(T+1)に於いて、全て
の命令が発行ステージの命令レジスタ9のisa,is
b,isc,isd部分に移行する。その結果、デコー
ドステージの命令レジスタ8には、新たな後続の長命令
が落ちてくる。
【0042】図3(5)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれ命令X,N
OP1命令,命令Y,命令Zが落ちてきており、1サイ
クル後の(T+1)に於いて、命令X,NOP1命令の
みが発行ステージの命令レジスタ9のisa,isb部
分に移行する。
【0043】図3(6)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれ命令X,N
OP2命令,命令Y,命令Zが落ちてきており、1サイ
クル後の(T+1)に於いて、命令X,NOP2命令,
命令Yのみが発行ステージの命令レジスタ9のisa,
isb,isc部分に移行する。
【0044】図3(7)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれ命令X,N
OP3命令,命令Y,命令Zが落ちてきており、1サイ
クル後の(T+1)に於いて全ての命令が発行ステージ
の命令レジスタ9に移行する。その結果、後続する長命
令がデコードステージの命令レジスタ8に落ちてくる。
【0045】図3(8)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれ命令X,命
令Y,NOP1命令,命令Zが落ちてきており、1サイ
クル後の(T+1)に於いて、命令X,命令Y,NOP
1命令のみが発行ステージのisa,isb,isc部
分に移行する。
【0046】図3(9)では、Tに於いて命令レジスタ
8のda,db,dc,dd部分にそれぞれ命令X,命
令Y,NOP2命令,命令Zが落ちてきており、1サイ
クル後の(T+1)に於いて、全ての命令が発行ステー
ジの命令レジスタ9に移行する。その結果、後続する長
命令がデコードステージの命令レジスタ8に落ちてく
る。
【0047】図3(10)では、Tに於いて命令レジス
タ8のda,db,dc,dd部分にそれぞれ命令X,
命令Y,命令Z,NOP1命令が落ちてきており、1サ
イクル後の(T+1)に於いて、全ての命令が発行ステ
ージの命令レジスタ9に移行する。その結果、後続する
長命令がデコードステージの命令レジスタ8に落ちてく
る。
【0048】図4,図5は、NOP命令のフィールドB
の機能を説明するためのタイムチャートである。尚、こ
のタイムチャートでは、同一ステージの先行側(da,
isaに近い側)の短命令が、後続側(dd,isdに
近い側)の短命令よりも先に発行ステージのレジスタ9
に移行したり、命令発行されることを前提にしている。
【0049】先ず、図4について説明する。
【0050】タイミングt1に於いて、長命令を構成す
る4つの短命令ADD,NOP1(フィールドBによっ
て指定されている待ちサイクル数が1サイクル),SU
B,FDVが、それぞれデコードステージの命令レジス
タ8のda,db,dc,dd部分に落ちてくる。短命
令SUBは、レジスタS8に書き込まれる短命令ADD
の実行結果を使用するものである。
【0051】次のサイクルであるタイミングt2に於い
ては、短命令ADD,NOP1が発行ステージの命令レ
ジスタ9のisa,isb部分に移行され、発行され
る。
【0052】タイミングt3に於いては、短命令SU
B,FDVが発行ステージの命令レジスタ9のisc,
isd部分に移行され、発行される。つまり、NOP1
命令よりも後続側の短命令SUB,FDVは、NOP1
命令よりも1サイクル遅れて発行ステージへ移行され、
発行される。このパイプラインのホールド制御は、NO
P待ちカウンタにタイミングt2に於いて待ちサイクル
数「1」をセットすることにより実現できる。NOP待
ちカウンタは、それにセットされている値が「0」以外
の場合は、サイクル毎に、その値が−1される。尚、N
OP待ちカウンタについては後で詳細に説明する。ま
た、タイミングt3に於いては、短命令ADDが実行さ
れる。更に、タイミングt3に於いては、後続の長命令
がデコードステージの命令レジスタ8に落ちてくる。こ
の後続の長命令は、4つの短命令NOP1(フィールド
Bによって指定されている待ちサイクル数が4サイク
ル),FIX,FAD,NOP1から構成される。尚、
短命令FIX,FADは、短命令FDVがレジスタS2
0に書き込むその実行結果を使用するものである。
【0053】タイミングt4に於いては、デコードステ
ージに存在する長命令を構成する4つの短命令の内の、
NOP1命令のみが発行ステージの命令レジスタ9のi
sa部分に移行され、発行される。また、タイミングt
4に於いては、NOP待ちカウンタに、NOP1命令の
フィールドBによって指定された待ちサイクル数「4」
がセットされ、他の短命令FIX,FAD,NOP1が
デコードステージでタイミングt4〜t7の4サイクル
待たされる。更に、タイミングt4に於いては、短命令
ADDの実行結果の書き込みが行われると共に、その短
命令ADDの実行結果を利用する短命令SUBと、短命
令FDVとが実行される。
【0054】タイミングt8に於いては、NOP待ちカ
ウンタの値が「0」となることから、短命令FIX,F
AD,NOP1が発行ステージの命令レジスタ9のis
b,isc,isd部分に移行され、発行される。
【0055】タイミングt9に於いては、短命令FDV
の実行結果の書き込みが行われると共に、その実行結果
を利用する短命令FIX,FADが実行される。
【0056】次に図5について説明する。
【0057】タイミングt1に於いて、長命令を構成す
る4つの短命令FDV,FMP,ADD,SUBがデコ
ードステージの命令レジスタ8のda,db,dc,d
d部分に落ちてきている。
【0058】タイミングt2に於いては、上記した各短
命令FDV,FMP,ADD,SUBが発行ステージの
命令レジスタ9のisa,isb,isc,isd部分
に移行され、発行される。また、タイミングt2に於い
ては、後続の長命令がデコードステージの命令レジスタ
8に落ちてくる。この長命令は、4つの短命令NOP1
(フィールドBにアドバンスオフを指定したものとす
る),ADD,SUB,MPSから構成され、各短命令
NOP1,ADD,SUB,MPSは、それぞれデコー
ドステージの命令レジスタ8のda,db,dc,dd
部分に格納される。
【0059】タイミングt3に於いては、短命令FD
V,FMP,ADD,SUBが実行されることからシス
テムビジー信号がアクティブになる。また、タイミング
t3に於いては、短命令NOP1,ADD,SUB,M
PSが発行ステージの命令レジスタ9のisa,is
b,isc,isd部分に移行される。しかし、isa
部分には、フィールドBにアドバンスオフが指定された
NOP1命令が存在し、システムビジー信号がアクティ
ブであるので、それらは発行されない。
【0060】タイミングt9に於いて、システムビジー
信号がアクティブでなくなると、発行を延期させられて
いた4つの短命令NOP1,ADD,SUB,MPSが
発行される。
【0061】図6は命令パイプライン制御部10の構成
例を示すブロック図であり、デコーダ11a〜11d
と、NOP待ちカウンタ12と、組み合わせ回路13,
14と、Vビット管理回路15a〜15dと、フリップ
フロップ16a〜16dと、セレクタ17と、減算器1
8から構成されている。
【0062】Vビット管理回路15a〜15dは、それ
ぞれデコードステージの命令レジスタ8のda〜dd部
分に有効な短命令が格納されているか否かを示すVビッ
トVda〜Vddを管理する機能を有する。Vビット管
理回路15aは、命令レジスタ8のda部分に有効な命
令が格納されているか否かを示すVビットVdaを保持
するセット優先のフリップフロップFFと、インバータ
Iと、ゲート回路G1,G2とから構成されている。
尚、ゲート回路G2の出力は、デコードステージの命令
レジスタ8のda部分に存在していた短命令が発行ステ
ージの命令レジスタ9のisa部分に移行したタイミン
グに於いて“1”となる。また、他のVビット管理回路
15b〜15cもVビット管理回路15aと同様の構成
を有している。
【0063】フリップフロップ16a〜16dは、それ
ぞれ発行ステージの命令レジスタ9のisa〜isd部
分に有効な短命令が存在するか否かを示すVビットVi
sa〜Visdを保持するセット優先のフリップフロッ
プである。
【0064】デコーダ11a〜11dは、それぞれデコ
ードステージの命令レジスタ8のda〜dd部分に対応
するものである。各デコーダ11a〜11dは、それぞ
れ命令レジスタ8のda〜dd部分に格納されている短
命令をデコードし、デコード結果を出力する。その際、
各デコーダ11a〜11dは、命令レジスタ8のda〜
dd部分に格納されている短命令がNOP命令であり、
且つそのフィールドBに待ちサイクル数が設定されてい
る場合は、命令レジスタ8のda〜dd部分に格納され
ているNOP命令のタイプを示すDEa〜DEd信号を
組み合わせ回路14に対して出力し、命令レジスタ8の
da〜dd部分にサイクル待ちを指示するNOP命令が
格納されていることを示すNOPa〜NOPd信号を組
み合わせ回路13に対して出力し、命令レジスタ8のd
a〜dd部分に格納されているNOP命令によって指示
されている待ちサイクル数を示すSa〜Sd信号をセレ
クタ17に対して出力する。また、命令レジスタ8のd
a〜dd部分に格納されている短命令がNOP命令であ
り、且つそのフィールドBの内容が「000」の場合
(アドバンスオフの場合)は、命令レジスタ8のda〜
dd部分にアドバンスオフの指定を含むNOP命令が格
納されていることを示すDEa〜DEd信号を出力す
る。
【0065】組み合わせ回路13は、デコーダ11a〜
11dから出力されるNOPa〜NOPd信号の中に、
サイクル待ちを指示するNOP命令が命令レジスタ8に
格納されていることを示すものが存在する場合は、その
信号と対応するNOP命令が発行ステージの命令レジス
タ9に移行したタイミングでセレクタ17を制御し、S
a〜Sd信号によって示される待ちサイクル数の内の、
上記発行ステージに移行したNOP命令と対応する待ち
サイクル数をNOP待ちカウンタ12にプリセットする
機能や、NOP待ちカウンタ12のカウント値が「0」
でない場合、NOP待ちカウンタ12のカウント値をサ
イクル毎に−1する減算器18の出力がNOP待ちカウ
ンタ12に入力されるようにセレクタ17を制御する機
能等を有する。尚、デコードステージの命令レジスタ8
から発行ステージの命令レジスタ9に短命令が移行した
タイミングは、Vビット管理回路15a〜15dの出力
信号によって知ることができる。
【0066】組み合わせ回路14は、デコーダ11a〜
11dから出力されるDEa〜DEd信号に基づいて命
令レジスタ8にサイクル待ちを指示するNOP命令が存
在していると判断した場合、そのNOP命令,そのNO
P命令と同時に発行ステージの命令レジスタ9へ移行さ
せることが指示されている短命令,そのNOP命令より
も先行側の短命令を、発行ステージの命令レジスタ9に
有効な短命令が存在していないことを条件にして命令レ
ジスタ9へ移行させ、上記NOP命令が発行ステージの
命令レジスタ9へ移行したタイミングからNOP待ちカ
ウンタ12のカウント値が「1」になった次のタイミン
グまで、デコードステージの命令レジスタ8に対してD
HLD信号を出力し、その内容が変化しないようにする
機能を有する。尚、デコーダ11a〜11dから出力さ
れるDEa〜DEd信号の中に、命令レジスタ8にサイ
クル待ちを指示するNOP命令が格納されていることを
示す信号が複数存在する場合は、最も先行する命令に対
応するデコード信号(最もDEa信号側のデコード信
号)から順に上記した処理を行う。また、発行ステージ
の命令レジスタ9のisa〜isd部分に有効な短命令
が存在するか否かは、フリップフロップ16a〜16d
が保持しているVビットVisa〜Visdに基づいて
知ることができる。
【0067】更に、組み合わせ回路14は、デコーダ1
1a〜11dから出力されるDEa〜DEd信号に基づ
いて命令レジスタ8にアドバンスオフを指示するNOP
命令が存在していると判断した場合、デコードステージ
の命令レジスタ8に格納されている短命令を、発行ステ
ージの命令レジスタ9に有効な短命令が存在しないこと
を条件にして命令レジスタ9に移行させた後、システム
ビジー信号がアクティブの間、命令レジスタ9に対して
ISHLD信号を出力し、その内容を保持させる。そし
て、システムビジー信号がアクティブでなくなると、I
SHLD信号の出力を停止すると共に、命令実行部(図
示せず)に対してISSUEda〜ISSUEdd信号
を出力し、命令レジスタ9に格納されている短命令の実
行を指示する。
【0068】尚、組み合わせ回路14は、デコードステ
ージの命令レジスタ8のda〜dd部分に存在する短命
令を発行ステージの命令レジスタ9のisa〜isd部
分に移行させる場合は、DAHLD〜DDHLD信号を
“0”にしてVビット管理回路15a〜15d中のフリ
ップフロップFFを全てリセット状態にしてそれらによ
って保持されているVビットVda〜Vddを有効な短
命令が存在しないことを示すものにすると共に、フリッ
プフロップ16a〜16dをセット状態にしてそれらに
よって保持されているVビットVisa〜Visdを有
効な短命令が存在することを示すものにする。また、組
み合わせ回路14から出力されるDHLD信号は、DA
HLD〜DDHLD信号の論理和をとったものである。
また、システムビジー信号は、命令実行部で命令が行わ
れている時にアクティブにされるものである。また、ア
ドレスレジスタ4,IC有効ビット5に対する設定動作
を行うシステム制御部(図示せず)は、DHLD信号が
“0”になった時、即ち、デコードステージの命令レジ
スタ8に有効な短命令が全く存在しなくなった時に、ア
ドレスレジスタ4,IC有効ビット5に対する設定動作
を行うものである。
【0069】図7は本実施例の動作説明図であり、以下
各図を参照して本実施例の動作について説明する。尚、
図7の例では、4つの短命令NOP1(2サイクル待
ち),FAD(浮動小数点加算命令),NOP2(1サ
イクル待ち),FDV(浮動少数点除算命令)から構成
される長命令が、タイミングt2に於いてデコードステ
ージの命令レジスタ8に落ちてきた場合の動作を示して
いる。
【0070】先ず、タイミングt1に於いて、目的の長
命令を命令キャッシュ1からデコードステージの命令レ
ジスタ8に移行させるために、アドレスレジスタ4にア
ドレスを設定すると共に、IC有効ビット5をセットす
る。そして、命令キャッシュ1に目的とする長命令が存
在する場合は、アンドゲート7からICヒット信号が出
力され、目的とする上記した4つの短命令がタイミング
t2に於いてデコードステージの命令レジスタのda〜
dd部分に移行する。
【0071】アンドゲート7からICヒット信号が出力
されると、タイミングt2に於いて、各Vビット管理回
路15a〜15d内のフリップフロップFFがセットさ
れ、命令レジスタ8のda〜dd部分に対応するVビッ
トVda〜Vddが有効な短命令が存在することを示す
ものになる。
【0072】また、タイミングt2に於いて、デコード
ステージの命令レジスタ8のda〜dd部分に上記した
4つの短命令が移行してくると、デコーダ11a〜11
dは、それをデコードし、DEa〜DEd信号,NOP
a〜NOPd信号,Sa〜Sd信号を出力する。
【0073】この時、組み合わせ回路14は、デコーダ
11aから出力されるDEa信号がNOP1命令である
ことを示しているので、DAHLD〜DDHLD信号の
内のDAHLD信号のみを“0”にすると共に、フリッ
プフロップ16a〜16dの内のフリップフロップ16
aのみをセット状態する。これにより、タイミングt3
に於いて、デコードステージの命令レジスタ8のda部
分に存在していたNOP1命令(2サイクル待ち)が発
行ステージの命令レジスタ9のisa部分に移行し、発
行される(ISSUEda信号が出力される)。
【0074】また、NOP1命令(2サイクル待ち)が
発行ステージに移行したタイミング(タイミングt3)
に於いて、組み合わせ回路13は、セレクタ17を制御
し、デコーダ11aから出力されるSa信号によって示
される待ちサイクル数(この場合は「2」)をNOP待
ちカウンタ12にプリセットする。
【0075】タイミングt4に於いては、NOP待ちカ
ウンタ12のカウント値が「1」となる。
【0076】タイミングt5に於いては、タイミングt
4に於いて、NOP待ちカウンタ12のカウント値が
「1」であったことから、組み合わせ回路14は、未だ
“1”となっているDBHLD〜DDHLD信号を
“0”にすると共に、未だリセット状態になっているフ
リップフロップ16b〜16dをセット状態にする。こ
れにより、デコードステージの命令レジスタ8のdb〜
dd部分に存在していた短命令FAD,NOP2(1サ
イクル待ち),FDVが発行ステージの命令レジスタ9
に移行し、発行される(ISSUEdb〜ISSUEd
d信号が出力される)。また、NOP2命令(1サイク
ル待ち)が発行ステージに移行したタイミング(タイミ
ングt5)に於いて、組み合わせ回路13は、セレクタ
17を制御し、デコーダ11cから出力されるSc信号
によって示される待ちサイクル数(この場合は「1」)
をNOP待ちカウンタ12にプリセットする。
【0077】次に、図8を参照して「FAD S8←S
5,S4」,「FSB S9←S8,S4」,「FDV
S10←S9,S4」といったオペランド依存関係を
持った命令列を実行する場合について説明する。
【0078】タイミングt1に於いて、(1−a)〜
(1−d)で示す4つの短命令FAD,NOP1(2サ
イクル待ち),FSB,NOP1(2サイクル待ち)が
命令キャッシュ1からデコードステージの命令レジスタ
8のda〜dd部分に移行する。
【0079】次のタイミングt2に於いて、(1−
a),(1−b)で示す短命令FAD,NOP1が発行
ステージの命令レジスタ9のisa,isb部分に移行
する。(1−c),(1−d)で示す短命令FSB,N
OP1は、(1−b)のNOP1命令によってそれと同
時に発行ステージへ移行することが指示されていないの
で、デコードステージに止まる。また、(1−b)のN
OP1命令が発行ステージへ移行するタイミングt2に
於いて、それによって指示されている待ちサイクル数
「2」がNOP待ちカウンタ12にプリセットされる。
【0080】タイミングt3に於いては、(1−a)の
短命令FADが実行され、NOP待ちカウンタ12のカ
ウント値が「1」にされる。
【0081】タイミングt4に於いては、(1−c),
(1−d)示す短命令FSB,NOP1が発行ステージ
の命令レジスタ9のisc,isd部分に移行して発行
され、(1−d)に示すNOP1命令が発行ステージへ
移行することからNOP待ちカウンタ12に待ちサイク
ル数「2」がプリセットされる。また、タイミングt4
に於いては、(2−a)〜(2−d)で示す4つの短命
令FDV,SUB,FDV,FADから構成される長命
令がデコードステージの命令レジスタ8のda〜dd部
分に落ちてくる。これらの4つの短命令は、NOP待ち
カウンタ12のカウント値が「0」になったタイミング
t6に於いて、発行ステージの命令レジスタ9に移行す
る。
【0082】図9は、特開平4−275603号公報に
開示されているNOP命令(その実行回数が付加されて
いるNOP命令)を用いて「FAD S8←S5,S
4」,「FSB S9←S8,S4」,「FDV S1
0←S9,S4」といったオペランド依存関係を持った
命令列を実行した場合を示している。
【0083】タイミングt1に於いて、(1−a)〜
(1−d)で示す4つの短命令FAD,NOP命令(2
サイクル待ち),NOP命令(2サイクル待ち),NO
P命令(2サイクル待ち)がデコードステージの命令レ
ジスタ8のda〜dd部分に落ちてくる。
【0084】次のタイミングt2に於いて、(1−a)
〜(1−d)で示す4つの短命令が発行ステージの命令
レジスタ9のisa〜isd部分に移行すると共に、
(2−a)〜(2−d)に示す4つの短命令FSB,N
OP命令(2サイクル待ち),NOP命令(2サイクル
待ち),NOP命令(2サイクル待ち)がデコードステ
ージのda〜dd部分に落ちてくる。また、タイミング
t2に於いて、NOP待ちカウンタ12に待ちサイクル
数「2」がプリセットされる。
【0085】タイミングt3に於いては、NOP待ちカ
ウンタ12のカウント値が「1」であるので、デコード
ステージのda〜dd部分に存在する(2−a)〜(2
−d)で示す4つの短命令の発行ステージへの移行は延
期される。
【0086】タイミングt4に於いては、(2−a)〜
(2−d)で示す4つの短命令が発行ステージのda〜
dd部分に移行すると共に、(3−a)〜(3−d)で
示す4つの短命令FDV,SUB,FDV,FADがデ
コードステージのda〜dd部分に落ちてくる。また、
タイミングt4に於いては、NOP待ちカウンタ12に
待ちサイクル数「2」がプリセットされる。
【0087】タイミングt5に於いては、NOP待ちカ
ウンタ12のカウント値が「1」であるので、デコード
ステージのda〜dd部分に存在する(3−a)〜(3
−d)で示す4つの短命令の発行ステージへの移行は延
期される。
【0088】タイミングt6に於いては、NOP待ちカ
ウンタ12のカウント値が「0」となるので、デコード
ステージのda〜ddに存在する(3−a)〜(3−
d)で示す4つの短命令が発行ステージのisa〜is
d部分に移行し、発行される。
【0089】図8と図9から分かるように、同じ演算処
理を行う場合、本発明では2個のNOP命令の挿入で済
むのに対し、従来技術では6個のNOP命令が必要にな
る。
【0090】
【発明の効果】以上説明したように、本発明は、デコー
ドステージに同時に移行してきた複数の短命令の中に、
それと同時に発行ステージへ移行させる短命令の指定と
発行ステージへの移行を延期させるサイクル数とを含む
NOP命令が存在する場合、NOP命令及びNOP命令
によってそれと同時に発行ステージへ移行させることが
指示されている短命令を発行ステージへ移行させた後、
指定されたサイクル数が経過するまで、デコードステー
ジに存在する未移行の短命令の発行ステージへの移行を
延期させる組み合わせ回路を備えているので、命令パイ
プラインのスケジューリングのために挿入しなければな
らないNOP命令の数を従来技術に比較して少なくする
ことができる。その結果、命令フェッチのためのデータ
パスを効率良く使用することができ、且つプログラムの
実行形式ファイルの容量を少なくすることができる。
【0091】また、本発明は、デコードステージに同時
に移行してきた複数の短命令の中に、それらの短命令よ
り先行する全ての短命令が完結するまでそれらの発行を
延期させることを指示するアドバンスオフの指定を含む
NOP命令が存在する場合、デコードステージに移行し
てきた複数の短命令を前記発行ステージに移行させた
後、システムビジー信号がアクティブでなくなるまでの
間、前記発行ステージに移行させた各短命令の発行を延
期させる構成を有する組み合わせ回路を備えているの
で、先行する短命令が完結するまでの時間が分からない
場合であっても、命令パイプライン内に乱れが生じない
ようにすることができる。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】本発明の実施例で使用するNOP命令のフォー
マットを示した図である。
【図3】NOP命令のフィールドAの機能を説明するた
めの図である。
【図4】NOP命令のフィールドBの機能を説明するた
めの図である。
【図5】NOP命令のフィールドBの機能を説明するた
めの図である。
【図6】命令パイプライン制御部10の構成例を示すブ
ロック図である。
【図7】本発明の実施例の動作を説明するタイムチャー
トである。
【図8】本実施例の効果を示すためのタイムチャートで
ある。
【図9】従来技術ではNOP命令数が多くなることを示
したタイムチャートである。
【符号の説明】
1…命令キャッシュ 2…アドレスアレイ 3…エントリ有効ビット 4…アドレスレジスタ 5…IC有効ビット 6…比較器 7…アンドゲート 8…デコードステージの命令レジスタ 9…発行ステージの命令レジスタ 10…命令パイプライン制御部 11a〜11d…デコーダ 12…NOP待ちカウンタ 13…組み合わせ回路 14…組み合わせ回路 15a〜15b…Vビット管理回路 16a〜16d…フリップフロップ 17…セレクタ 18…減算器

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 VLIW方式を採用した情報処理装置に
    於いて、 デコードステージに同時に移行してきた複数の短命令
    解読し、該複数の短命令の中に、それと同時に発行ステ
    ージへ移行させる短命令の指定と前記発行ステージへの
    移行を延期させるサイクル数とを含むNOP命令が存在
    する場合、該NOP命令を示す情報と、該NOP命令と
    同時に前記発行ステージへ移行させる短命令を示す情報
    と、前記発行ステージへの移行を延期させるサイクル数
    とを出力するデコーダと、 前記発行ステージに有効な命令が存在しなくなったタイ
    ミングに於いて、前記デコーダから出力される情報によ
    って示されるNOP命令と短命令とを前記発行ステージ
    へ移行させ、前記デコーダから出力されるサイクル数が
    経過したタイミングに於いて前記デコードステージに存
    在する未移行の短命令を前記発行ステージへ移行させる
    組み合わせ回路とを備えたことを特徴とする情報処理装
    置。
  2. 【請求項2】 前記デコーダは、 前記デコードステージに同時に移行してきた複数の短命
    を解読し、該複数の短命令の中に、それらの短命令よ
    り先行する全ての短命令が完結するまでそれらの発行を
    延期させることを指示するアドバンスオフの指定を含む
    NOP命令が存在する場合、前記デコードステージにア
    ドバンスオフの指定を含むNOP命令が存在することを
    示す情報を出力する構成を有し、 前記組み合わせ回路は、 前記デコーダから前記デコードステージにアドバンスオ
    フの指定を含むNOP命令が存在することを示す情報が
    出力されている場合、前記発行ステージに有効な命令が
    存在しなくなったタイミングに於いて前記デコードステ
    ージに存在する複数の短命令を 前記発行ステージに移行
    させた後、システムビジー信号がアクティブでなくなる
    までの間、前記発行ステージに移行させた各短命令の発
    行を延期させる構成を備えたことを特徴とする請求項1
    記載の情報処理装置。
  3. 【請求項3】 行ステージへの移行を延期させるサイ
    クル数を含むNOP命令が前記発行ステージへ移行した
    タイミングに於いて前記NOP命令に含まれているサイ
    クル数がプリセットされ、その後、1サイクル経過する
    毎にサイクル数を−1するNOP待ちカウンタを備え
    且つ、 前記組み合わせ回路は、 前記NOP待ちカウンタのカウ
    ント値に基づいて、前記デコードステージに存在する未
    移行の短命令の前記発行ステージへの移行延期を制御す
    る構成を備えたことを特徴とする請求項1記載の情報処
    理装置。
JP26132496A 1996-09-10 1996-09-10 情報処理装置 Expired - Fee Related JP2933030B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26132496A JP2933030B2 (ja) 1996-09-10 1996-09-10 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26132496A JP2933030B2 (ja) 1996-09-10 1996-09-10 情報処理装置

Publications (2)

Publication Number Publication Date
JPH1091438A JPH1091438A (ja) 1998-04-10
JP2933030B2 true JP2933030B2 (ja) 1999-08-09

Family

ID=17360235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26132496A Expired - Fee Related JP2933030B2 (ja) 1996-09-10 1996-09-10 情報処理装置

Country Status (1)

Country Link
JP (1) JP2933030B2 (ja)

Also Published As

Publication number Publication date
JPH1091438A (ja) 1998-04-10

Similar Documents

Publication Publication Date Title
EP1050808B1 (en) Computer instruction scheduling
US7260707B2 (en) Variable length instruction pipeline
US5941983A (en) Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
US6185668B1 (en) Method and apparatus for speculative execution of instructions
EP1886216B1 (en) Controlling out of order execution pipelines using skew parameters
US6907517B2 (en) Interprocessor register succession method and device therefor
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
US6212626B1 (en) Computer processor having a checker
KR100745904B1 (ko) 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로
JPH07160501A (ja) データ処理システム
US7779240B2 (en) System and method for reducing power consumption in a data processor having a clustered architecture
EP0745241B1 (en) Exception recovery in a data processing system
EP0378415A2 (en) Multiple instruction dispatch mechanism
US5835746A (en) Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
US6237086B1 (en) 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US5634136A (en) Data processor and method of controlling the same
JP3311381B2 (ja) コンパイラにおける命令スケジューリング処理方法
JP2933030B2 (ja) 情報処理装置
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
US6769057B2 (en) System and method for determining operand access to data
EP1220088A2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
JPH0793152A (ja) マイクロプロセッサ制御装置
JPH0769825B2 (ja) 並列処理装置
JP2000099328A (ja) プロセッサ及びその実行制御方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20100528

LAPS Cancellation because of no payment of annual fees