JPH0798661A - 並列命令実行方式 - Google Patents

並列命令実行方式

Info

Publication number
JPH0798661A
JPH0798661A JP31953891A JP31953891A JPH0798661A JP H0798661 A JPH0798661 A JP H0798661A JP 31953891 A JP31953891 A JP 31953891A JP 31953891 A JP31953891 A JP 31953891A JP H0798661 A JPH0798661 A JP H0798661A
Authority
JP
Japan
Prior art keywords
instruction
parallel
instructions
execution
executed
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.)
Withdrawn
Application number
JP31953891A
Other languages
English (en)
Inventor
Tetsuya Fujita
哲也 藤田
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
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP31953891A priority Critical patent/JPH0798661A/ja
Publication of JPH0798661A publication Critical patent/JPH0798661A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】既存計算機との互換性を維持しながら、並列命
令実行可能な計算機を実現する。 【構成】並列命令実行解析コンパイラは、コンパイル時
の解析結果に従って、後続の何命令の並列実行が可能で
あるという情報およびその並列実行可能な複数の命令の
中に含まれている条件分岐命令の条件不成立時に複数の
並列実行可能な命令の内のどの命令の実行結果をキャン
セルするのかを指定する情報を、既存計算機では未定義
とされている命令語の中に定義する。並列情報デコード
ユニット2は、未定義命令語を解読して並列命令実行に
対する二種類の制御情報をデコードし、その結果を並列
命令発行信号5および命令キャンセル信号6として出力
する。命令デコード発行ユーニット3は、並列命令発行
信号5に従って単一或いは複数の命令を命令実行ユニッ
ト8,9,10に発行する。命令実行ユニット8,9,
10は、命令キャンセル信号6及び条件分岐命令の実行
結果に従って演算結果をキャンセルする。 【効果】デコード部のハードウェア量を増やすことな
く、目的を達成できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機の並列命令実行
方式に関し、特に、複数命令を複数の命令実行ユニット
に対して発行して実行させる並列命令実行方式に関す
る。
【0002】
【従来の技術】従来の並列実行方式は、既存計算機との
互換性を維持しながら、複数の命令を並列に実行する計
算機で、命令実行時にハードウェア資源の競合を意識し
ながら、複数命令の実行の可否についての判断を行って
いた。
【0003】
【発明が解決しようとする課題】上述した従来の並列命
令実行方式は、複数命令を並列実行可能がどうかを命令
実行時にハードウェアで判断していたために、命令デコ
ードや命令ディスパッチを行う制御部のハードウェア量
が多くなって、その部分の回路ディレイが大きくなり、
基本クロック周期を短くする上で支障をきたすという欠
点を有している。例えば、整数演算ユニットと浮動少数
点演算ユニットとをひとつづつ有する計算機では、連続
する二つの命令が整数演算命令と浮動少数点演算命令と
であれば、その二つの命令を並列に実行可能であるが、
連続する二つの命令がともに整数命令であったり、浮動
少数点命令であれば、演算ユニット上の競合が起こり、
ひとつの命令しか同時には実行できないこととなる。ま
た、このような判断を命令実行時にハードウェアで行う
には、その制御部が複雑となってしまうので、演算ユニ
ットの数や種類が増えた場合には、ハードウェアで十分
に並列命令実行の可能性を判断できなくなることがあ
る。
【0004】
【課題を解決するための手段】本発明の並列命令実行方
式は、複数の命令実行ユニットを有して複数の命令を並
列に実行するとともに、既存計算機の命令セットに互換
性を有する計算機の並列命令実行方式において、コンパ
イル時の解析結果に従って、後続の何命令の並列実行が
可能であるという情報およびその並列実行可能な複数の
命令の中に含まれている条件分岐命令の条件不成立時に
複数の並列実行可能な命令の内のどの命令の実行結果を
キャンセルするのかを指定する情報を、既存計算機では
未定義とされていた命令語の中に定義する並列命令実行
解析コンパイラと、前記未定義命令語を解読して並列命
令実行に対する二種類の制御情報をデコードし、その結
果を並列命令発行信号および命令キャンセル信号として
出力する並列情報デコードユニットと、前記並列命令発
行信号に従って単一或いは複数の命令を前記命令実行ユ
ニットに発行する命令デコード発行ユニットと、前記命
令キャンセル信号及び条件分岐命令の実行結果に従って
演算結果をキャンセルする命令実行ユニットと、を具備
して構成されている。
【0005】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0006】図1は、本発明の並列命令実行方式の一実
施例を示すブロック図である。本実施例では、説明を簡
単にするために、一つの分岐命令実行ユニットと一つの
整数演算ユニットと一つの浮動少数点演算ユニットとを
持つ計算機を例にとって説明する。
【0007】図1に示すように、1は命令バッファ、2
は並列情報デコードユニット、3は命令デコード発行ユ
ニット、4は1から2及び3に対して命令語を出力する
命令伝達信号である。また、並列情報デコードユニット
2は、命令伝達信号4から入力される命令語が既存計算
機の未定義命令であると、そのなかから後続の並列実行
可能命令数及び命令実行キャンセル指定情報を取り出し
て、並列実行可能命令数を並列命令発行信号5にて、命
令デコード発行ユニット3に伝え、命令実行キャンセル
指定を命令キャンセル信号6にて、各種の命令実行ユニ
ット8,9,10に伝える。
【0008】一方、命令デコード発行ユニット3は、命
令伝達信号7にて、命令語を、分岐命令実行ユニット
8、整数演算ユニット9及び浮動少数点演算ユニット1
0に伝える。分岐命令実行ユニット8での条件分岐命令
で判定された条件の成立不成立についての情報は、条件
分岐信号11にて、各種の命令実行ユニット9,10に
伝えられて、命令キャンセル信号6及び条件分岐信号1
1の指示にしたがって、必要であれば、演算結果をレジ
スタなどに格納せずに、その実行をキャンセルする。
【0009】図2は、本実施例のオブジェクトレコード
の一例を示す図である。本実施例の計算機が互換を保と
うとする既存計算機の命令セットでは、命令語の先頭に
命令コードがあって、その最初の4ビットがすべて1の
命令語は未定義命令であったとする。本実施例の並列命
令実行解析コンパイラは、ソースプログラムをコンパイ
ルした結果のオブジェクトコード内に、互いに命令実行
ユニットで競合しない分岐命令、整数演算命令及び浮動
少数点演算命令が連続していないかどうかを捜す。もし
連続していれば、それらの命令を並列に実行させるため
に、図2に示すように、その命令列の前に先頭の4ビッ
トがすべて1の未定義命令を挿入し、さらに、その命令
語の最下位4ビットに0011を書き込む。この001
1は、後続の3命令が並列実行可能であることを表して
いる。
【0010】図3は、並列実行可能な命令によるプログ
ラムの一例を示す図である。もし演算ユニットを競合し
ない命令が連続していない場合に、本実施例のコンパイ
ラは、更に分岐先の命令も含めて並列実行可能な命令を
捜す。例えば図3で、n番地とn+2番地の命令は、共
に整数命令(図ではINTと表記)で、n+1番地の命
令は、条件が成立すればk番地に分岐するという条件分
岐命令である。n番地とn+2番地は、共に整数命令な
ので、並列実行可能な命令は、n番地の整数命令とn+
1番地の分岐命令との2命令になってしまう。
【0011】図4は、本実施例の並列実行命令列の一例
を示す図である。
【0012】ところが、k番地の命令を見ると、浮動少
数点命令で条件分岐が失敗したら、この命令をキャンセ
ルするという指定をすれば、k番地の命令もn番地、n
+1番地の命令と並列に実行することがでるようにな
る。この場合に、図4に示すように、命令語の最上位4
ビットが1111で、最下位4ビットが0011で、最
下位4ビットの上位隣の3ビットが001という命令語
が生成される。ここでは、後続の3命令が並列実行可能
で、更にその内3番目の命令は、条件分岐失敗時には、
演算結果がキャンセルされることが指定されている。
【0013】この様に分岐先も含めて、並列実行可能な
命令を捜すことで、k番地の浮動少数点命令をn番地お
よびn+1番地の命令と組ませることができ、その結
果、浮動少数点演算ユニット10の使用効率が上がり、
分岐条件成立時を考えた場合に、n+1番地の分岐命令
とk番地の浮動少数点命令とが同時に実行されるため
に、別々に実行される場合に比べて性能が向上する。
【0014】以下では、図4の命令列を例にとって、本
実施例の並列命令実行方式によって、命令を実行ユニッ
トに発行する様子を説明する。本実施例では、命令伝達
信号4として、次に実行されるべき命令から始まる連続
する4命令を、並列情報デコードユニット2及び命令デ
コードユニット3に出力する。
【0015】そこで、並列情報デコードユニット2は、
図4の命令列の先頭の未定義命令Aをデコードして、
「後続の命令は、並列実行可能であり、並列実行可能な
命令列の長さは3命令(図4でのB〜Dの3命令)で、
その内3番目の命令は、条件分岐失敗時には、演算結果
がキャンセルされる」旨を並列命令発行信号5及び命令
キャンセル信号6により、命令デコード発行ユニット
3、及び命令実行ユニット9,10に伝えている。分岐
命令実行ユニット8での命令実行結果は、分岐条件によ
ってキャンセルされることはないので、命令キャンセル
信号6を命令実行ユニット9及び10にのみ伝える。
【0016】命令デコード発行ユニット3では、命令伝
達信号4にて入力された命令列からB〜Dの3命令を取
り出してデコードし、デコード結果を命令伝達信号7に
て、命令実行ユニット8,〜10に出力する。図4のB
の分岐命令が分岐命令実行ユニット8に、Cの整数命令
が整数演算ユニット9に、Dの浮動少数点命令が浮動少
数点演算ユニット10に出力される。このように三個の
命令が同時に命令実行ユニット8,9,10に発行され
て並列に実行される。
【0017】分岐命令実行ユニット8では、条件分岐命
令の条件を判定して、その結果を条件分岐信号11にて
命令実行ユニット9及び10に伝える。整数演算ユニッ
ト10では、命令キャンセル信号6にて条件不成立時に
は、Dの命令演算結果をキャンセルするように指示され
ているので、もし条件分岐信号11が条件の不成立を示
していれば、演算結果はレジスタに格納される。Cの整
数命令を実行している整数演算ユニット9は、条件判定
結果に無関係に演算を実行する。なお、並列情報デコー
ドユニット2及び命令デコード発行ユニット3に入力さ
れた命令に未定義命令が含まれていない場合には、命令
は逐次に1命令づつ実行される。
【0018】
【発明の効果】本発明の並列命令実行方式は、後続する
命令列が並列実行可能かどうか、可能であれば何命令が
並列実行可能かをコンパイラが判断して、その結果を命
令列の中に格納することができるので、命令デコードユ
ニットのハードウェアを複雑にすることなく、並列実行
可能な命令を複数個演算ユニットに発行することができ
ることにより、分岐先の命令語までを含めて並列実行可
能な命令を捜すことができるので、演算ユニットの使用
効率を向上させ、計算機全体の命令実行性能を向上させ
ることができるという効果を有している。
【0019】また、本発明の並列命令実行方式は、既存
計算機の未定義命令語を使って並列命令実行情報を定義
できるので、既存計算機との互換性を保ちながら、並列
に命令の実行を可能にすることができるとともに、命令
列の並列実行の可能性をコンパイラが判断するので、例
えば、並列実行可能な命令数や命令実行ユニットの種類
が多い、より複雑な条件の並列実行の可能性を判断しな
ければならない構成の計算機でも、応用することができ
るという効果を有している。
【図面の簡単な説明】
【図1】本発明の並列命令実行方式の一実施例を示すブ
ロック図である。
【図2】本実施例のオブジェクトコードの一例を示す図
である。
【図3】並列実行可能な命令によるプログラムの一例を
示す図である。
【図4】本実施例の並列実行命令列の一例を示す図であ
る。
【符号の説明】
1 命令バッファ 2 並列情報デコードユニット 3 命令デコード発行ユニット 4 命令伝達信号 5 並列命令発行信号 6 命令キャンセル信号 7 命令伝達信号 8 分岐命令実行ユニット 9 整数演算ユニット 10 浮動少数点演算ユニット 11 条件分岐信号

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令実行ユニットを有して複数の
    命令を並列に実行するとともに、既存計算機の命令セッ
    トに互換性を有する計算機の並列命令実行方式におい
    て、 コンパイル時の解析結果に従って、後続の何命令の並列
    実行が可能であるという情報およびその並列実行可能な
    複数の命令の中に含まれている条件分岐命令の条件不成
    立時に複数の並列実行可能な命令の内のどの命令の実行
    結果をキャンセルするのかを指定する情報を、既存計算
    機では未定義とされていた命令語の中に定義する並列命
    令実行解析コンパイラと、 前記未定義命令語を解読して並列命令実行に対する二種
    類の制御情報をデコードし、その結果を並列命令発行信
    号および命令キャンセル信号として出力する並列情報デ
    コードユニットと、 前記並列命令発行信号に従って単一或いは複数の命令を
    前記命令実行ユニットに発行する命令デコード発行ユニ
    ットと、 前記命令キャンセル信号及び条件分岐命令の実行結果に
    従って演算結果をキャンセルする命令実行ユニットと、
    を具備することを特徴とする並列命令実行方式。
JP31953891A 1991-12-04 1991-12-04 並列命令実行方式 Withdrawn JPH0798661A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31953891A JPH0798661A (ja) 1991-12-04 1991-12-04 並列命令実行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31953891A JPH0798661A (ja) 1991-12-04 1991-12-04 並列命令実行方式

Publications (1)

Publication Number Publication Date
JPH0798661A true JPH0798661A (ja) 1995-04-11

Family

ID=18111367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31953891A Withdrawn JPH0798661A (ja) 1991-12-04 1991-12-04 並列命令実行方式

Country Status (1)

Country Link
JP (1) JPH0798661A (ja)

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
US6889318B1 (en) Instruction fusion for digital signal processor
KR100715055B1 (ko) Vliw 프로세서, 인스트럭션 컴파일 방법, 머신 판독가능한 매체 및 컴퓨터 프로그램 실행 방법
US6367067B1 (en) Program conversion apparatus for constant reconstructing VLIW processor
JPH04229326A (ja) スカラ命令の並列実行を得る方法およびシステム
US20080141229A1 (en) Processor, program conversion apparatus, program conversion method, and computer program
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
JPH087681B2 (ja) スカラ命令並列実行可能性を判定し指示する方法及び並列実行可能な隣接するスカラ命令を識別する方法
JPH03218523A (ja) データプロセッサ
EP1886216A2 (en) Controlling out of order execution pipelines using skew parameters
EP0433864B1 (en) Minimizing hardware pipeline breaks using software scheduling techniques during compilation
US20030023960A1 (en) Microprocessor instruction format using combination opcodes and destination prefixes
US6324639B1 (en) Instruction converting apparatus using parallel execution code
US6064818A (en) Straight path optimization for compilers
EP0810518B1 (en) Method and circuit for delayed branch control
EP1369776B1 (en) Information processor having delayed branch function
JPH0798661A (ja) 並列命令実行方式
US20050091478A1 (en) Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions
JP3097227B2 (ja) 計算機
JP2828219B2 (ja) オブジェクト・コード互換性を与える方法、オブジェクト・コード互換性並びにスカラ・プロセッサ及びスーパスカラ・プロセッサとの互換性を与える方法、ツリー命令を実行するための方法、データ処理システム
JP2838939B2 (ja) 並列命令実行方式
JPH05265755A (ja) 並列命令実行方式
JP2008523523A (ja) プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990311