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

並列命令実行方式

Info

Publication number
JP2838939B2
JP2838939B2 JP4070258A JP7025892A JP2838939B2 JP 2838939 B2 JP2838939 B2 JP 2838939B2 JP 4070258 A JP4070258 A JP 4070258A JP 7025892 A JP7025892 A JP 7025892A JP 2838939 B2 JP2838939 B2 JP 2838939B2
Authority
JP
Japan
Prior art keywords
instruction
parallel
execution
unit
instruction 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 - Lifetime
Application number
JP4070258A
Other languages
English (en)
Other versions
JPH05233283A (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 JP4070258A priority Critical patent/JP2838939B2/ja
Publication of JPH05233283A publication Critical patent/JPH05233283A/ja
Application granted granted Critical
Publication of JP2838939B2 publication Critical patent/JP2838939B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機の並列命令実行方
式、さらに詳しくいえば複数の命令を演算実行ユニット
に対して発行する命令ディスパッチ方式に関する。
【0002】
【従来の技術】従来、既存の計算機との互換性を維持し
ながら複数の命令を並列に実行する計算機においては命
令実行時にハードウエア資源の競合を意識しながら複数
の命令の実行の可否を判断していた。
【0003】
【発明が解決しようとする課題】従来の複数の命令を実
行する計算機では上述したように複数の命令を並列実行
可能かどうかを命令実行時にハードウエアで判断してい
るので、命令デコード,命令発行(ディスパッチ)を行
う制御部のハードウエア量が多くなって、その部分の回
路ディレイが大きくなり、基本クロック周期を短くする
上で支障を来していた。例えば、整数演算ユニットと
動小数点演算ユニットとを1つずつ有する計算機では、
連続する2つの命令が整数演算命令と浮動小数点演算命
令であればその2つの命令は並列に実行可能である。し
かし、連続する2つの命令がともに整数命令であった
り、浮動小数点命令であれば、演算ユニット上競合が起
こり1つの命令しか同時には実行できない。
【0004】このような判断を命令実行時にハードウエ
アで行うにはその制御部が複雑となる。さらに演算ユニ
ットの数や種類が増えた場合には、ハードウエアで充分
に並列命令実行の可能性を判断できなくなることがあり
得る。本発明の目的は演算ユニット,実行ユニットの使
用効率を向上させ、計算機全体の命令実行性能を向上さ
せることができる並列命令実行方式を提供することにあ
る。
【0005】
【課題を解決するための手段】前記目的を達成するため
に本発明による並列命令実行方式は複数の命令実行ユニ
ットを有し、複数の命令を並列に実行することができる
計算機において、コンパイル時の解析結果にしたがい、
後続のどの命令が並列実行可能かという情報と、その並
列実行可能な複数の命令の中に含まれている分岐命令の
実行の結果に応じて複数の並列実行可能な命令の内のど
の命令の実行結果をキャンセルするのかを指定する情報
とを、命令語の中に格納する並列命令実行解析コンパイ
ラと、特別な命令で値が設定でき、並列命令実行制御を
有効または無効化する信号を並列命令実行制御伝達手段
で出力する並列命令実行制御レジスタと、前記並列命令
実行制御伝達手段の信号を入力とし、この信号に従い前
記未定義命令語を解読し並列命令実行に関する前記2種
類の制御情報をデコードし、その結果を並列命令発行信
号と命令キャンセル信号で出力する並列情報デコードユ
ニットと、前記並列命令発行信号にしたがい単一または
複数の命令を前記命令実行ユニットに発行する命令デコ
ード発行ユニットと、前記命令キャンセル信号および条
件分岐命令の実行結果にしたがい演算結果をキャンセル
することができる命令実行ユニットとから構成してあ
る。前記命令実行ユニットは分岐命令実行ユニットと整
数演算ユニットと浮動小数点演算ユニットから構成する
ことができる。
【0006】
【実施例】以下、図面を参照して本発明をさらに詳しく
説明する。図1は本発明による並列命令実行方式の実施
例を示すブロック図である。この実施例では説明の簡単
化のために分岐命令実行ユニット,整数演算ユニットお
よび浮動小数点演算ユニットをそれぞれ1つづつ備えた
計算機の例を説明する。並列実行可能な命令は最大3命
令である。
【0007】命令バッファ1,並列情報デコードユニッ
ト2,命令デコード発行ユニット3を含んでおり、命令
バッファ1から命令伝達手段4により命令語が並列情報
デコードユニット2および命令デコード発行ユニット3
に出力される。並列情報デコードユニット2は命令伝達
手段4から入力される命令語が既存の計算機では未定義
であると、その中から後続の並列実行可能命令および命
令実行キャンセル指定情報を取り出して並列実行可能命
令数は並列命令発行信号5で命令デコート発行ユニット
3に伝達され、命令実行キャンセル指定は命令キャンセ
ル信号6によって各種実行ユニットに伝達される。
【0008】命令デコート発行ユニット3は命令伝達手
段7によって命令語を分岐命令実行ユニット8,整数演
算ユニット9および浮動小数点演算ユニット10に伝達
する。分岐命令実行ユニット8において条件分岐命令で
判定された条件の成立不成立についての情報は条件分岐
信号11によって整数演算ユニット9および浮動小数点
演算ユニット10に伝達される。整数演算ユニット9お
よび浮動小数点演算ユニット10では命令キャンセル信
号6および条件分岐信号11の指示にしたがって必要あ
れば演算結果をレジスタなどに格納しないでその実行を
キャンセルする。並列命令実行制御レジスタ12の内容
は並列命令実行制御伝達信号13によって並列情報デコ
ードユニット2に伝達される。
【0009】本実施例の計算機が互換を保とうとする既
存の計算機の命令セットでは命令語の先頭に命令コード
があって、その最初の4ビットがすべて1の命令語は未
定義であったとする。本発明の請求の範囲に含まれる並
列命令実行解析コンパイラはソースプログラムをコンパ
イルした結果、オブジェクトコード内に互いに命令実行
ユニットやレジスタなどの計算機の資源で競合しない並
列実行可能な分岐命令,整数演算命令および浮動小数点
演算命令が連続していないか探す。もし、連続していれ
ば、それらの命令を並列に実行させるために、その命令
列の前に先頭の4ビットがすべて1の未定義命令を挿入
し、さらにその命令語の最下位4ビットに並列実行可能
な命令数を書き込む。例えば0011は後続の3命令が
並列実行可能であることを表している。
【0010】図2および図3はこの様子を示す命令列お
よび未定義命令を示す図である。図2において、n番地
からn+2番地の命令は整数命令,浮動小数点命令およ
び分岐命令でそれぞれ独立した命令実行ユニットを持っ
ているため互いに演算ユニットは競合しない。もし、レ
ジスタなどの資源でも競合しなければそれらは並列実行
可能である。この場合、コンパイラは図3のような未定
義命令語を生成する。本実施例では未定義命令語が先頭
にくる並列実行可能な命令列のことを命令ブロックと呼
ぶ。図2のn番地からn+2番地までの命令語に対して
コンパイラが生成する命令ブロックを図4に示す。
【0011】条件分岐命令の条件が成立しなかった場合
にその命令ブロックに含まれる他の命令の実行結果をキ
ャンセルする例を図5,図6および図7に示す。図は命
令語の例を表しており、複数の命令語を点線で囲んだ部
分は並列実行可能な命令ブロックを表している。ここ
で、命令ブロックの先頭の未定義命令語は記述されてい
ない。図5の例はキャンセル機能のない場合の命令ブロ
ックの様子を示している。命令ブロック2は並列に実行
できる命令がなくて分岐命令1個から構成されている。
したがって、図5の例では命令ブロック1から始まって
命令ブロック2の条件が成立して命令ブロック3を経て
命令ブロック4に至るまで4命令ブロックの実行が必要
となる。
【0012】一方、本実施例にあるように条件分岐命令
で分岐が成立しなかった場合にその命令ブロックに含ま
れる他の命令を実行をキャンセルする機能がある計算機
では図6の例のように図5にあった命令ブロック2と命
令ブロック3を1つにまとめることができる。図5の命
令ブロック3は命令ブロック2の分岐命令の条件が成立
した場合にのみ実行される。したがって本実施例の実行
キャンセル機能を使うことにより図5の命令ブロック3
を命令ブロック2に含めることができる。このようにす
ることによって、命令ブロック1から命令ブロック4ま
でを3個の命令ブロックで実行することができる。命令
ブロックに含まれる命令は並列に実行可能であるので、
1つの命令ブロックは1マシンサイクルで実行すること
ができる。したがって図6は図5よりも1マシンサイク
ル短い時間で同じ命令を実行することができる。
【0013】本実施例のコンパイラは図6の命令列の新
命令ブロック2に対しては図7のような命令ブロックを
オブジェクトコードとして生成する。ここでは、先頭の
未定義命令語の実行キャンセル指定のフィールドには、
もし条件分岐命令の条件が設立しない場合には2番目と
3番目の命令の実行結果をキャンセルするという意味の
指定の011というビット列が挿入される。この3ビッ
ト長のビット列はそれぞれビットがその命令ブロックに
含まれる並列実行可能な命令語(本実施例では最大3命
令が並列実行可能)に対応していて、そのビットの値が
1であれば、その命令ブロックに含まれている条件分岐
命令の条件が成立しない場合に対応する命令語の実行結
果をキャンセルすることを意味としている。0の場合は
その命令の実行結果はキャンセルされない。図7の命令
ブロックでは条件が成立しない場合には、その命令ブロ
ックに含まれる整数命令と浮動小数点の実行がキャンセ
ルされる。
【0014】以下では図7の命令ブロックを例にとって
本発明による並列命令実行方式が命令を実行ユニットに
発行する様子を説明する。本実施例では命令伝達手段4
はつぎに実行されるべき命令から始まる連続する4命令
を並列情報デコードユニット2および命令デコード発行
ユニット3に出力している。ここでまず、並列命令実行
制御レジスタ12の値が1にセットされている状態を想
定する。この場合、並列命令実行は有効化されている。
並列情報デコードユニット2は図7の命令ブロックの先
頭の未定義命令Aをデコードして「後続する命令は並列
実行可能であり、並列実行可能な命令列の長さは3(図
7のB〜Dの3命令)で、その内2番目と3番目の命令
は条件分岐不成立時は演算結果がキャンセルされる」旨
を並列命令発行信号5および命令キャンセル信号6で命
令デコート発行ユニット3,整数演算ユニット9および
浮動小数点演算ユニット10に伝達する。分岐命令実行
ユニット8でこのユニットでの命令実行結果は分岐条件
によってキャンセルされることはないので、命令キャン
セル信号6はキャンセルの指定を整数演算ユニット9お
よび浮動小数点演算ユニット10にのみ伝達する。
【0015】命令デコート発行ユニット3ではこれにし
たがって命令伝達手段4で入力された命令列からB〜D
の3命令を取り出しデコードし、デコード結果を命令伝
達手段7で分岐命令実行ユニット8,整数演算ユニット
9および浮動小数点演算ユニット10に出力する。図7
の分岐命令Bが分岐命令実行ユニット8に、整数命令C
が整数演算ユニット9に、浮動小数点命令Dが浮動小数
演算ユニット10に出力される。このように3個の命
令が同時に演算ユニットに発行され並列に実行される。
【0016】分岐命令実行ユニット8では分岐命令の条
件を判定しその結果を条件分岐信号11で整数演算ユニ
ット9および浮動小数点演算ユニット10に伝達する。
整数演算ユニット9では命令キャンセル信号6で条件不
成立時にはCの命令演算結果をキャンセルするように
動小数点演算ユニット10で命令キャンセル信号6で条
件不成立にはDの命令演算結果をキャンセルするように
指示されているので、もし、条件分岐信号11で条件が
成立しなければ、それぞれのユニットは演算結果をレジ
スタに格納せずに命令の実行をキャンセルする。条件が
成立すれば、演算結果は格納され、結果は生き残る。
【0017】つぎに並列命令実行制御レジスタ12の値
が0の場合を考える。この場合並列命令実行は無効化さ
れる。並列情報デコードユニット2は並列命令実行制御
伝達信号13で並列命令実行が無効化されていることを
知り、未定義命令語に埋め込まれた並列実行情報を無視
して並列命令実行指示を並列命令発行信号5および命令
キャンセル信号6で伝えない。この場合、未定義命令語
は無視されて、それ以外の命令は並列に実行されること
なく逐次1命令づつ実行される。この無効化制御機能は
本計算機のハードウエアのデバッグの時などに使用され
る。並列情報デコードユニット2および命令デコート発
行ユニット3に入力された命令に未定義命令が含まれて
いない場合には並列命令実行制御レジスタの内容にかか
わらず命令は逐次1命令づつ実行される。
【0018】
【発明の効果】以上、説明したように本発明は後続する
命令列が並列実行可能かどうか、可能であればどの命令
が並列実行可能かはコンパイラが判断しその結果を命令
列の中に格納することができるので、命令デコードユニ
ットのハードウエアを複雑にすることなく並列実行可能
な命令を複数個演算ユニットに発行することができる。
さらに本方式では分岐命令の後続の命令語まで含めて並
列実行可能な命令を探すことができるので、演算ユニッ
トの使用効率が向上し、計算機全体の命令実行性能を向
上させることができる。
【0019】本発明では既存の計算機の未定義命令語を
使って並列命令実行情報を格納できるので、従来、計算
機との互換性を保ちながら並列命令実行可能な計算機を
実現することができる。また、本発明では命令列の並列
実行可能性をコイパイラが判断するので、例えば、並列
実行可能な命令数や演算ユニットの種類が多い、より複
雑な条件で並列実行可能性を判断しなければならない構
成の計算機でも本方式を応用することができる。
【0020】本発明では条件分岐命令の条件判定に応じ
て並列実行される命令の結果をキャンセルすることがで
きる。その結果、本実施例の図5および図6に示すよう
な場合でもコンパイラが命令ブロックに並列実行可能な
命令を探し出して埋めることができ、実行ユニットの使
用効率を向上させ、性能を向上させることができる。
【0021】本発明に含まれる並列命令実行制御レジス
タに相当する機能、すなわち計算機使用者がソフトウェ
ア制御で容易に並列命令実行を有効化および無効化でき
る機能は、本発明のような並列命令実行可能を実現する
計算機においてソフトウェアの開発を効率良く行う上で
非常に有効な機能である。特に独立ソフトウェアベンダ
ーがプログラムを開発するような最近のオープンシステ
ム環境を構築するための計算機では不可欠な機能であ
る。
【図面の簡単な説明】
【図1】本発明による並列命令実行方式の実施例を示す
ブロック図である。
【図2】命令列の例を示す図である。
【図3】並列命令実行情報を含んだ未定義命令語の例を
示す図である。
【図4】並列実行命令可能な命令ブロックの例を示す図
である。
【図5】キャンセル指定分岐命令の例を示す図で、キャ
ンセル機能のない場合の命令ブロックの様子を示してい
る。
【図6】キャンセル指定分岐命令の例を示す図で、キャ
ンセル機能がある場合の命令ブロックの様子を示してい
る。
【図7】キャンセル指定ありの命令ブロックの例を示す
図である。
【符号の説明】
1…命令バッファ 2…並列情報デコードユニット 3…命令デコート発行ユニット 4,7…命令伝達手段 5…並列命令発行信号 6…命令キャンセル信号 8…分岐命令実行ユニット 9…整数演算ユニット 10…浮動小数点演算ユニット 11…条件分岐信号 12…並列命令実行制御レジスタ 13…並列命令実行制御伝達信号

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令実行ユニットを有し、複数の
    命令を並列に実行することができる計算機において、 コンパイル時の解析結果にしたがい、後続のどの命令が
    並列実行可能かという情報と、その並列実行可能な複数
    の命令の中に含まれている分岐命令の実行の結果に応じ
    複数の並列実行可能な命令の内のどの命令の実行結果
    をキャンセルするのかを指定する情報とを、命令語の中
    に格納する並列命令実行解析コンパイラと、 特別な命令で値が設定でき、並列命令実行制御を有効ま
    たは無効化する信号を並列命令実行制御伝達手段で出力
    する並列命令実行制御レジスタと、 前記並列命令実行制御伝達手段の信号を入力とし、この
    信号に従い前記未定義命令語を解読し並列命令実行に関
    する前記2種類の制御情報をデコードし、その結果を並
    列命令発行信号と命令キャンセル信号で出力する並列情
    報デコードユニットと、 前記並列命令発行信号にしたがい単一または複数の命令
    を前記命令実行ユニットに発行する命令デコード発行ユ
    ニットと、 前記命令キャンセル信号および条件分岐命令の実行結果
    にしたがい演算結果をキャンセルすることができる命令
    実行ユニットと、 から構成したことを特徴とする並列命令実行方式。
  2. 【請求項2】 前記命令実行ユニットは分岐命令実行ユ
    ニットと整数演算ユニットと浮動小数点演算ユニットか
    ら構成したことを特徴とする請求項1記載の並列命令実
    行方式。
JP4070258A 1992-02-19 1992-02-19 並列命令実行方式 Expired - Lifetime JP2838939B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4070258A JP2838939B2 (ja) 1992-02-19 1992-02-19 並列命令実行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4070258A JP2838939B2 (ja) 1992-02-19 1992-02-19 並列命令実行方式

Publications (2)

Publication Number Publication Date
JPH05233283A JPH05233283A (ja) 1993-09-10
JP2838939B2 true JP2838939B2 (ja) 1998-12-16

Family

ID=13426344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4070258A Expired - Lifetime JP2838939B2 (ja) 1992-02-19 1992-02-19 並列命令実行方式

Country Status (1)

Country Link
JP (1) JP2838939B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265755A (ja) * 1992-03-24 1993-10-15 Nec Corp 並列命令実行方式
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326127A (ja) * 1991-04-25 1992-11-16 Nec Corp 並列命令実行方式
JPH04353923A (ja) * 1991-05-31 1992-12-08 Nec Corp 電子計算機の並列命令実行方式
JP3097227B2 (ja) * 1991-10-23 2000-10-10 日本電気株式会社 計算機

Also Published As

Publication number Publication date
JPH05233283A (ja) 1993-09-10

Similar Documents

Publication Publication Date Title
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP5512803B2 (ja) ベクトル命令を取り扱うためのデータ処理装置および方法
JPH06274352A (ja) コンパイラ、及びデータ処理装置
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US6324639B1 (en) Instruction converting apparatus using parallel execution code
JP2653037B2 (ja) データ処理システム
EP0223150B1 (en) Information processing apparatus
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH03233630A (ja) 情報処理装置
JP2838939B2 (ja) 並列命令実行方式
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
JPH05265755A (ja) 並列命令実行方式
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP3097227B2 (ja) 計算機
US20020035679A1 (en) Processor having internal control instructions
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPH04326127A (ja) 並列命令実行方式
JPH0798661A (ja) 並列命令実行方式
KR100635111B1 (ko) 지정 가능한 지연 슬롯과 스쿼싱 조건을 가지는 분기 처리프로세서
JP2503223B2 (ja) 先行制御方式
JPH0561660B2 (ja)
JPH02110636A (ja) タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ
JPH04353923A (ja) 電子計算機の並列命令実行方式