JP3097227B2 - 計算機 - Google Patents

計算機

Info

Publication number
JP3097227B2
JP3097227B2 JP03275771A JP27577191A JP3097227B2 JP 3097227 B2 JP3097227 B2 JP 3097227B2 JP 03275771 A JP03275771 A JP 03275771A JP 27577191 A JP27577191 A JP 27577191A JP 3097227 B2 JP3097227 B2 JP 3097227B2
Authority
JP
Japan
Prior art keywords
instruction
parallel
instructions
unit
execution
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
JP03275771A
Other languages
English (en)
Other versions
JPH05113886A (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
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 JP03275771A priority Critical patent/JP3097227B2/ja
Publication of JPH05113886A publication Critical patent/JPH05113886A/ja
Application granted granted Critical
Publication of JP3097227B2 publication Critical patent/JP3097227B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

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

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令実行ユニットを有し、複数の
    命令を並列に実行することができる計算機で、未定義命
    令語を有する計算機の命令セットと互換性を有する計算
    機において、 コンパイル時の解析結果に従い、後続の何命令が並列実
    行可能かを示す第1の制御情報と、その並列実行可能な
    複数の命令の中に含まれている条件分岐命令の条件成立
    時に複数の並列実行可能な命令の内のどの命令の実行結
    果をキャンセルするのかを指令する第2の制御情報と
    を、未定義命令語を有する計算機においては未定義命令
    語とされていた命令語の中に格納する並列命令実行解析
    コンパイラと、 前記未定義命令語を解読し並列命令実行に関する前記第
    1および第2の制御情報をデコードし、その結果を並列
    命令発行信号手段と命令キャンセル信号手段にて出力す
    る並列情報デコードユニットと、 前記並列命令発行信号手段に従い単一あるいは複数の命
    令を前記命令実行ユニットに発行する命令デコード発行
    ユニットと、 前記命令実行ユニットで、前記命令キャンセル信号手段
    および条件分岐命令の実行結果に従い演算結果をキャン
    セルする命令実行ユニットとを具備することを特徴とす
    る計算機。
JP03275771A 1991-10-23 1991-10-23 計算機 Expired - Fee Related JP3097227B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03275771A JP3097227B2 (ja) 1991-10-23 1991-10-23 計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03275771A JP3097227B2 (ja) 1991-10-23 1991-10-23 計算機

Publications (2)

Publication Number Publication Date
JPH05113886A JPH05113886A (ja) 1993-05-07
JP3097227B2 true JP3097227B2 (ja) 2000-10-10

Family

ID=17560169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03275771A Expired - Fee Related JP3097227B2 (ja) 1991-10-23 1991-10-23 計算機

Country Status (1)

Country Link
JP (1) JP3097227B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2838939B2 (ja) * 1992-02-19 1998-12-16 日本電気株式会社 並列命令実行方式

Also Published As

Publication number Publication date
JPH05113886A (ja) 1993-05-07

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
JP2931890B2 (ja) データ処理装置
US6889318B1 (en) Instruction fusion for digital signal processor
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
US20080141229A1 (en) Processor, program conversion apparatus, program conversion method, and computer program
US5129068A (en) Operand address calculation in a pipeline processor by decomposing the operand specifier into sequential step codes
US5561808A (en) Asymmetric vector multiprocessor composed of a vector unit and a plurality of scalar units each having a different architecture
JPH04229326A (ja) スカラ命令の並列実行を得る方法およびシステム
JPS6312029A (ja) 情報処理装置
EP0433864B1 (en) Minimizing hardware pipeline breaks using software scheduling techniques during compilation
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
US4967338A (en) Loosely coupled pipeline processor
JP2507638B2 (ja) デ―タ処理装置
USRE41751E1 (en) Instruction converting apparatus using parallel execution code
JPH07120278B2 (ja) データ処理装置
US6496924B2 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
JP2003044273A (ja) データ処理装置及びデータ処理方法
EP1369776B1 (en) Information processor having delayed branch function
EP1143333A2 (en) Microprocessor for supporting reduction of program codes in size
JP3097227B2 (ja) 計算機
JP2838939B2 (ja) 並列命令実行方式
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
JPH05265755A (ja) 並列命令実行方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees