JPH09292991A - 命令処理方法及び命令処理装置 - Google Patents

命令処理方法及び命令処理装置

Info

Publication number
JPH09292991A
JPH09292991A JP8108814A JP10881496A JPH09292991A JP H09292991 A JPH09292991 A JP H09292991A JP 8108814 A JP8108814 A JP 8108814A JP 10881496 A JP10881496 A JP 10881496A JP H09292991 A JPH09292991 A JP H09292991A
Authority
JP
Japan
Prior art keywords
instruction
parallel
instruction set
instructions
basic
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.)
Granted
Application number
JP8108814A
Other languages
English (en)
Other versions
JP2806359B2 (ja
Inventor
Atsushi Okamura
淳 岡村
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 JP8108814A priority Critical patent/JP2806359B2/ja
Priority to US08/846,419 priority patent/US6023756A/en
Publication of JPH09292991A publication Critical patent/JPH09292991A/ja
Application granted granted Critical
Publication of JP2806359B2 publication Critical patent/JP2806359B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 可変長命令セットをもつ命令処理装置でよ
り多くの命令を並列フェッチし、デコードすることを可
能とする。 【解決手段】 演算処理装置に与えられる命令で、それ
以上短く分解する事のできない演算処理単位に相当する
命令セットを基本命令セットとすると、この基本命令セ
ットを複数組み合わせた命令セットを並列命令セットと
して定義し、命令フェッチ機構によってフェッチされた
命令が、前記並列命令セットに一致した場合は、並列命
令セットを同時に発行,処理し、フェッチされた命令
が、前記並列命令セットに一致しない場合は、前記基本
命令セットを単独で1命令ずつ実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は命令処理方法及び命
令処理装置に関する。
【0002】
【従来の技術】一般に、演算処理装置の高性能化の技術
として、VLIW方式やスーパースケーラ方式がある。
いずれの方式も、命令を並列に実行することによって、
1クロック当たりに処理可能な命令数を増やし、高性能
化を図る技術である。例えば、VLIW方式は、通常の
演算処理装置に与えられる命令を小命令とし、幾つかの
決まった数の前記小命令を一定の制限をもってつなげた
命令群を1大命令とする。そして、前記大命令を一度に
読み込み、前記大命令中の小命令を並列に処理してい
る。VLIWのセマンティックは、同一の大命令に含ま
れる小命令は同時に処理されることである。
【0003】図4にVLIW命令のフォーマットの例を
示す。図4の32バイト分407を1命令として読み込
み同時に実行する。前記32バイトの命令を大命令とす
る。前記大命令は幾つかの小命令に分割され、それぞれ
の小命令が固有の命令フォーマットを持つ。同図では大
命令は6個の小命令に分割され、小命令は左からロード
ストア命令401、ロードストア命令402、ALU命
令403、ALU命令404、IMM命令405、分岐
命令406が置かれている。これらの並べた命令は同時
に実行されることが保証されている。ここで、ロードス
トア命令はメモリから演算処理装置の内部汎用レジスタ
にデータを転送する命令であり、ALU命令は前記内部
汎用レジスタ間の演算、IMM命令はオペランドの値を
汎用レジスタにセットする命令、分岐命令は次に実行す
る命令の番地を変更するものである。
【0004】このようなVLIW方式は、命令の並びか
た、小命令のフィールド長が演算処理装置固有のものに
なるため、互換性が非常に乏しいという問題がある。す
なわち、前記大命令は一度に読み込まれ処理されるた
め、命令列は1つの前記大命令に含まれている前記小命
令が無条件に同時に実行できるように並べなければなら
ない。もし、前記小命令間の依存関係によって小命令が
同時に実行できない場合は、nop(ノーオペレーショ
ン)命令を挿入することで、一度に実行されてしまう前
記大命令中の小命令の依存関係を保証する。以上のよう
に、VLIWでは、命令コード自体が並列に実行できる
ように並べられる事を特徴とする。これをスタティック
スケジューリングという。
【0005】一方、スーパースケーラ方式は、従来との
互換性をとった上で命令を並列に実行できるようにする
技術である。通常の演算処理装置の命令コードは、アド
レスの小さなものから1つずつ実行するような規則で並
べられている。このため、、前にある命令を実行し終え
てから次の命令を実行する。前にある命令の実行結果を
後で実行する命令が使用する場合がある為である。前記
結果の使用を依存関係と呼ぶ。すべての命令が前記依存
関係を有しているわけではないため、依存関係のない命
令は、先に実行してしまっても問題は発生しない。前記
したVLIW方式では、この依存関係を持たない命令を
コンパイル時に前記大命令として並べ並列処理を実現し
ているのに対し、スーパースケーラ方式は、命令列を実
行すべき順(プログラムオーダ)に取り込み解析し、前
記依存関係が無い命令を選びだし、先に処理をすること
ができる命令の実行を前倒しして並列実行を実現する。
このような並列命令処理方式としては、特開平2−13
0635号公報に記載の複数命令同時処理方式があげら
れる。この方式では、複数個の命令を同時に読み出し、
読み出された命令を複数個のデコーダで解析し、依存関
係が無い場合のみ、複数の実行手段で並列に実行する処
理方式が用いられている。
【0006】また、前記方式よりも一段階進んだスーパ
ースケーラ方式の一例を図5に示す。これは、IBM社
のIBM360/91で使用されている方法である。フ
ェッチユニット501はメモリから命令をフェッチしデ
コードする。デコード結果によって命令を対応する演算
器の種類毎に分割し、もしリザベーションステーション
504,508に空きがあれば当該命令を発行する。更
に、ソースオペランドがレジスタファイル502に存在
すれば、それもリザベーションステーション504,5
08に格納する。もし空きが無いならば、フェッチユニ
ット501は、命令を発行せず、空きが生ずるまで当該
命令を発行は停止する。リザベーションステーション5
04,508中に発行された命令は、ソースオペランド
がそろっていない場合、共通データバス506を監視し
て、対応するオペランドが前記共通データバス上に現れ
るのを待つ。ソースオペランドが前記共通データバス5
06上に現れたら、その値をソースレジスタ値バス50
3経由で前記リザベーションステーション504,50
8中に書き込む。
【0007】リザベーションステーション504,50
8中の命令は、総てのソースオペランドが揃ったら、そ
の命令を演算ユニット505,509に送る。演算ユニ
ット505,509は実行を完了したら、実行結果を共
通データバス506経由でレジスタファイル502に書
き込むと同時に、当該結果を待っているかもしれないリ
ザベーションステーションに送る。以上のような機構に
よって、オペランドが有効でない間、命令はリザベーシ
ョンステーション中でまたされ、実行できる命令から順
に優先して実行する機能を提供できる。
【0008】ところで、従来のCISC型命令セットで
は、命令コードの静的なサイズを小さくするために、可
変長命令セットが用いられている。前記、可変長命令セ
ットは、命令によって命令フォーマットの語長が変化す
る命令セットである。出現頻度の高い命令を短く、出現
頻度の低い命令を長いフォーマットにすることで、プロ
グラムの静的なコードサイズを小さくする事ができる。
このような可変長命令セットの命令コードを並列実行す
るために、複数命令をデコードする手順について説明す
る。可変長命令の命令セットをスーパースケーラ方式
で、実現する場合の難しさは命令フェッチ機構にある。
スーパースケーラ方式では、一度に実行ユニットに送る
ことが可能な命令数が多ければ多いほど並列実行の可能
性も増加する。可変長命令セットを持つアーキテクチャ
の場合は、複数命令フェッチをする場合に命令の解析手
順が複雑になってしまう。
【0009】現在のRISC型命令セットでは、命令は
32ビット長で更に4バイトアラインされている。この
ため、命令の始まりの位置は、完全に固定しており、命
令の解析は、この固定位置から行うことで、複数命令の
並列解析が可能になる。それに対して、可変長命令の場
合は、始まりの命令の位置だけが明確にわかっており、
2番目の命令の始まりの位置を見つけるためには、始め
の命令を解析し、始めの命令の命令サイズを特定しなけ
ればならない。つまり、可変長命令の場合は、2番目以
降の命令の始まりの位置が不明確で、前に実行される命
令から順に解析しなければならない。解析しなければな
らない命令数が増大するに従って、命令の始めを見つけ
る論理は積み重なってしまい、遅延時間が増大してしま
うため速いクロックで動作する場合、多くの命令をデコ
ードするのは困難になる。
【0010】実際に高速動作させた場合は、順番にデコ
ードしていたのでは1クロックでデコードできる命令の
数が非常に限られてくる。この命令のデコードを高速化
するため、命令をキャッシュに書き込む際にプリデコー
ドを行い始めから区切りを明確化しておく方法がある。
これは、AMD社のK5と呼ばれるマイクロプロセッサ
が選択した方法である。K5では、メモリから命令を取
り込みオンチップ・キャッシュに書き込む時点で、命令
をデコードし命令の頭に対応するバイトにマークを付け
ている。この方法は、非常に優れた方法であるが、キャ
ッシュにプリデコードビットを付加しなければならない
ことや、キャッシュのラインと分岐先アドレスの一致が
必ずしもアラインされていないため、分岐時の制御が非
常に難しくなってしまうなどの弊害が発生する。
【0011】
【発明が解決しようとする課題】命令のスーパースケー
ラ型並列実行をするためには1クロック中に複数の命令
をデコードする必要がある。通常のRISC型プロセッ
サでは命令コードは32ビット固定長になっており、且
つ4バイトアラインされているため、複数の命令を一度
に取り込み、前記複数の命令を一斉にデコードする事が
可能である。しかし、可変長命令セットを処理する演算
処理装置では、一度に多くの命令を取り込んでも着目し
ている命令の種類によって、その命令以降の命令の始ま
りの位置が変化してしまうため、取り込んだ多くの命令
を並列にデコードする事ができず、1つずつ順々にデコ
ードしなければならない。その結果、同時実行する多数
の命令を高速にデコードする事が困難となる。
【0012】本発明の目的は、可変長命令セットを有す
る演算処理装置の同時命令発行の発行数を大きくするこ
とが可能な命令処理方法と命令処理装置を提供すること
にある。
【0013】
【課題を解決するための手段】本発明は、演算処理装置
に与えられる命令で、それ以上短く分解する事のできな
い演算処理単位に相当する命令セットを基本命令セット
とすると、前記基本命令セットを複数組み合わせた命令
セットを並列命令セットとして定義し、命令フェッチ機
構によってフェッチされた命令が、前記並列命令セット
に一致した場合は、並列命令セットを同時に発行,処理
し、前記フェッチされた命令が、前記並列命令セットに
一致しない場合は、前記基本命令セットを単独で1命令
ずつ実行することを特徴とする。
【0014】
【発明の実施の形態】次に、本発明の実施形態を図面を
参照して説明する。図1は本発明の実施形態の装置のブ
ロック図であり、図2は本発明の実施形態で説明する演
算処理装置の命令セットの命令長201〜204と複数
発行時の命令の並列命令形式205〜211を示す。2
01〜204の命令を以下基本命令セットと呼ぶ。前記
基本命令セットは、本演算処理装置の命令セットレベル
アーキテクチャが提供するそれ以上分解されないアトミ
ックな命令である。本実施形態では、基本命令は命令の
種類によって1〜4バイトの命令長を持つ。図3に各基
本命令セットの命令が、どの処理グループに属するかで
の分類を示す。処理グループとは、当該命令がいかなる
処理ユニットで処理され得るかを基準にしたグループで
ある。
【0015】前記処理ユニットは図1に示すように、2
つの整数命令ユニット117,118と、ロードストア
命令ユニット119と、浮動小数点ユニット122と、
分岐命令ユニット120とが存在する。このため、前記
処理グループは、整数演算グループ、ロードストアグル
ープ、浮動小数点グループ、分岐グループ、その他グル
ープの5グループに分割される。すべての基本命令は、
命令の長さによる区分と命令を処理するユニットによる
区分で細分化される。複数の命令を発行する場合は、図
2の205〜211に示すType1〜7のフォーマッ
トにフェッチされた命令が並んでいることを必要とす
る。このフォーマットを以下並列命令セットと呼ぶ。本
実施形態では、並列命令セットは基本命令セットを組み
合わせて、決まった長さになるように、かつ、その命令
の前記処理グループごとに順序を決めて制限を設けた形
式になっている。本実施形態では、7種類の並列命令セ
ットを定義する。
【0016】Type1の並列命令セットは、1バイト
命令の整数演算命令、1バイト命令の整数演算命令、2
バイト命令のロードストア命令をつなげたものになる。
また、Type2の並列命令セットは、1バイト命令の
整数演算命令、2バイト命令の浮動小数点命令又はロー
ドストア命令、1バイト命令の整数演算命令又はJR命
令をつなげたものである。以下、Type3の並列命令
セットは、1バイト命令の整数演算命令、3バイト命令
の整数演算命令又は分岐命令をつなげたもの、Type
4の並列命令セットは、4バイト命令のロードストア命
令、1バイト命令の整数演算命令、2バイト命令の浮動
小数点演算命令、1バイト命令の整数演算命令又はJR
(レジスタ間接分岐)命令をつなげたもの、Type5
の並列命令セットは、2バイトの整数演算命令、2バイ
トのロードストア命令、2バイトの浮動小数点演算命令
をつなげたもの、Type6の並列命令セットは、2バ
イトの整数演算命令、2バイトの整数演算命令、4バイ
トのロードストア命令又は分岐命令つなげたもの、Ty
pe7の並列命令セットは、4バイトの整数演算命令、
4バイトのロードストア命令又は分岐命令をつなげたも
のになっている。
【0017】以上のように並列に実行される命令セット
は、いくつかのテンプレートをもっており、テンプレー
トにマッチした場合のみ複数命令が発行される。もし、
命令列がテンプレートにマッチしていない場合は、命令
列は、1つずつ順々に発行される。この方式を、テンプ
レート方式命令発行と呼ぶ。図1のブロック図は、前記
テンプレート方式命令発行を行うための処理機構を示し
てある。命令フェッチユニット101は、メモリ装置か
ら実行すべき命令列を取り込む。前記実行すべき命令列
は、命令FIFO102に入れられる。この命令FIF
O102は、先に実行すべき命令から順に向かって右側
から入れられる。命令FIFO中の命令は命令の発行処
理が行われたものから順次、左側から取り除かれ、その
分だけ命令FIFOの中の命令は左側方向にシフトして
いく。FIFOの中には、左側に行くほど先に実行すべ
き命令になるように保たれる。FIFOの中に次の命令
を入れられる空間ができたら、命令フェッチユニット1
01は新しくフェッチした命令を挿入する。
【0018】命令FIFO102の左側、即ちもっとも
先に実行すべき命令が入っている4バイト分を4バイト
サイズの命令として、並列命令チェック論理103,1
04,105に接続する。また、命令FIFOメモリ1
02の左側から8バイトサイズの命令を、並列命令チェ
ック論理106,107,108,109に接続する。
前記並列命令チェック論理は、論理103がType1
の命令のチェックをし、論理104がType2の命令
のチェックをし、論理105がType3の命令の形式
のチェックを受け持つ。同様に、8バイトサイズの並列
命令に関しては、論理106がType4の命令の形式
を、論理107がType5の命令の形式を、論理10
8がType6の命令の形式を、そして、論理109が
Type7の命令の形式をチェックする。
【0019】命令のチェック論理は、入力されたバイト
列に自分がデコードすべき命令列にあっているかどうか
を判定し、もし、前記制限に対応できるような命令列に
なっていたら命令アライナ112に対して真を出力す
る。図7に命令チェック論理を示す。図7は、Type
4の命令をチェックする論理をブロックで示したもので
ある。FIFO102の左側から8バイトのデータを供
給される。チェック機構は、703〜706の論理にな
る。703の論理は、4バイト形式のロードストア命令
をデコードし真を出力する。それ以外が来た場合は偽を
出力する。以下、704は5バイト目から始まるはずの
1バイト長の整数命令を、705は6バイト目から始ま
るはずの2バイト長の浮動小数点命令を、706は8バ
イト目から始まるはずの1バイト長レジスタ間接分岐命
令(JR)か整数演算命令をデコードし、合っていれば
真を出力する。これらすべてのデコーダが真を出力した
場合に論理和回路707によってすべての真をチェック
し命令がフォーマットに合っていることが確認される。
【0020】図中では、701にマッチしない命令の場
合、702にマッチする命令の場合を示す。フォーマッ
ト701の命令が入力されると1バイト目にあるデコー
ダ703は、ロードストア命令ではないので偽を出力す
る。デコーダ704と706は、命令の途中をデコード
してしまうため、正しいデコード結果を得ることができ
ない。オペランドの値如何によっては真を返すこともあ
る。しかし、デコーダ703が偽を出力しているため出
力708には偽が出力される。フォーマット702が入
力された場合は、すべてのチェック回路703〜706
が真を出力する事になり、出力708には真が出力され
る。
【0021】図1で、103〜109の並列命令チェッ
ク論理の何れかから真の出力がでてくれば、命令は並列
タイプとして発行され、どれも真にならない場合は1命
令ずつ処理する。デコーダ121はFIFO102の最
も左側の命令をデコードし命令のサイズ及び命令の処理
グループを決定し、命令アライナ112にその結果を送
る。図8に命令アライナ112の内部ブロックを示す。
本実施形態の命令アライナはすべての命令列を処理でき
るようにした場合に比べて非常に簡単である。本実施形
態では、7タイプの命令をそれぞれ並べ替えるネットワ
ークを実装すればよいためである。
【0022】図8では、834は図1のFIFO102
の左側から8バイト分に相当する。FIFOに投入され
た命令の中で、最も始めに発行すべき8バイトを並べ替
えることになる。同図中で、809は命令が何れのテン
プレートにもマッチしない場合のアライナである。図1
のデコーダ121で命令のサイズをデコードし、そのサ
イズに応じて命令アライナ809でアライン処理を行
う。1命令だけをデコードする回路になるため、従来の
パイプライン型と同様な構成で実現できる。図8で、8
10〜818は命令のバイトを接続し、一定のフォーマ
ットに整形する回路である。また、819から823
は、複数命令発行時の各ユニットに発行する命令を選択
するセレクタである。824から828は、複数命令が
発行できない場合に、単独な命令として処理する場合
に、単独命令を整形するユニット809からの出力と選
択を行うセレクタである。
【0023】図8中では、810は2バイト命令を整形
する回路になる。図2からも明らかであるが、テンプレ
ートにマッチする限り、命令の第1バイト目と命令の第
2バイト目は、2バイト形式の整数命令しか現れない。
このため、整形回路810の出力は整数演算ユニット1
に投入する命令を選択するためのセレクタ819に接続
される。セレクタ819では、Type5か又はTyp
e6の命令がデコーダで判定された場合の処理の為に整
形回路819の出力を整数ユニット1に対して接続す
る。
【0024】さらに、図8の811は、FIFOの第1
バイト目から第4バイト目までの4バイト命令を整形す
る整形回路で、Type4とType7で使用される。
Type4では、ロードストア命令であるため、ロード
ストア処理ユニット831に接続されるような動作を行
い、Type7が検出された場合は、整数演算ユニット
829に接続される様に動作する。以下、812はTy
pe2の浮動小数点命令かロードストア命令、813は
Type5/6の整数演算又はType1のロードスト
ア命令、814はType3の整数か分岐命令、815
はType5のロードストア命令、816はType4
の浮動小数点命令、817はType5の浮動小数点命
令、818はType6/Type7のロードストア命
令か分岐命令のフォーマット整形を行う。フォーマット
整形を完了した命令群は、セレクタ819〜823でT
ype毎に選択され演算処理ユニット829〜833に
転送される。発行される命令列は、実装される演算ユニ
ットを考慮に入れて決定されているため、命令チェック
論理でチェックされた命令列は無条件に各ユニットに発
行してよい。
【0025】以上の各実施形態から明らかにように、こ
の命令処理方式では、クロック周波数が高くなった場合
でも可変長命令セットを有する演算処理装置の同時命令
発行の発行数を非常に大きくすることができる。図7に
あるように、可変長命令の場合でも、注目するビットだ
けをデコードすれば、前から順にデコードしたのと同じ
効果を得ることができ、この方法では命令の区切りを求
める必要がない。そのため、図7の例で示せば、デコー
ド回路の部分では、1命令ずつのデコードに対して、7
07の論理積ゲート分の遅延が増加するだけである。ま
た、命令のアライン部分も図8に示すように、完全なク
ロスバ型から比べて簡単になっている。このため、バイ
ト可変長命令セットを持つ演算処理装置で、完全な対象
型の命令発行方式をとった場合、本発明の方式によれ
ば、同程度の条件で非常に多くの命令の発行が可能にな
る。これは、可変長命令のデコードは前から順に行わな
ければならない決まりを取り除くことができるためであ
る。
【0026】
【発明の効果】以上説明したように本発明は、全ての命
令を解析するのではなく、実際のプログラム中で頻出す
る命令の組み合わせを並列に実行される命令のテンプレ
ートとして、前記命令の組み合わせに適合するか同化の
タイプチェック機能をデコーダに組み込み、その命令の
テンプレートに一致するかどうかのチェックのみを行
い、テンプレートに一致した命令は同時に多くの命令を
発行することができるようにし、一致しない場合は同時
の発行数を減らした通常のデコーダで処理するようにす
ることにより、高性能な命令処理が実現できる。特に、
可変長命令を複数組み合わせることで、固定長に組み直
すことも可能になるため、命令フェッチ機構全体の簡略
化が実現できる。
【図面の簡単な説明】
【図1】本発明にかかるテンプレート発行方式のブロッ
ク図である。
【図2】基本命令,並列命令の典型的なフォーマット図
である。
【図3】基本命令のバイト数と処理ユニットの分類を示
す図である。
【図4】基本的なVLIW命令のフォーマット図であ
る。
【図5】スーパースケーラ処理ユニットの図である。
【図6】FIFOユニットの構成図である。
【図7】命令チェック論理を示す図である。
【図8】命令分配アライン装置を示す図である。
【符号の説明】
101 命令フェッチ機構 102 FIFO装置 103〜109 命令チェック機構 110 8バイト命令転送バス 111 4バイト命令転送バス 112 命令分配アライン装置 113 整数命令発行バス 114 整数命令発行第2バス 115 ロードストア命令発行バス 116 分岐命令発行バス 117,118 整数演算命令実行ユニット 119 ロードストア命令実行ユニット 120 分岐命令実行ユニット 121 単独命令デコードユニット 122 浮動小数点命令実行ユニット 123 浮動小数点演算命令発行バス

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 演算処理装置に与えられる命令で、それ
    以上短く分解する事のできない演算処理単位に相当する
    命令セットを基本命令セットとすると、前記基本命令セ
    ットを複数組み合わせた命令セットを並列命令セットと
    して定義し、命令フェッチ機構によってフェッチされた
    命令が、前記並列命令セットに一致した場合は、並列命
    令セットを同時に発行,処理し、前記フェッチされた命
    令が、前記並列命令セットに一致しない場合は、前記基
    本命令セットを単独で1命令ずつ実行することを特徴と
    する命令処理方法。
  2. 【請求項2】 前記基本命令セットを、一定の順序で複
    数組み合わせて任意の長さにした命令セットを並列命令
    セットとして定義する請求項1の命令処理方法。
  3. 【請求項3】 前記基本命令セットを、一定の順序で複
    数組み合わせて演算処理装置特有のワード長の任意倍の
    長さにした命令セットを並列命令セットとして定義する
    請求項1の命令処理方法。
  4. 【請求項4】 前記フェッチされた命令が、前記並列命
    令セットに一致しない場合は、前記基本命令セットとし
    て、スーパースケーラ型複数命令デコード論理を用いて
    複数発行を行う請求項1または3の命令処理方法。
  5. 【請求項5】 前記基本命令セットを、その命令を処理
    するユニットによって複数のグループに分割し、前記グ
    ループの何れか1つに属する種類の命令のみを置くこと
    のできる命令フィールドをスロットとした場合、前記ス
    ロットを複数並べた命令セットを並列命令セットとして
    定義する請求項1ないし4のいずれかの命令処理方法。
  6. 【請求項6】 前記分割したグループの何れか1つに属
    する種類の命令のみを置くことのできる命令フィールド
    をスロットとした場合、前記スロットを一定の順序で複
    数組み合わせて演算処理装置特有のワード長の任意倍の
    長さにした命令セットを並列命令セットとして定義する
    請求項5の命令処理方法。
  7. 【請求項7】 前記基本命令セットを、その命令を処理
    するユニット及び命令の長さによってグループに分割す
    る請求項5または6の命令処理方法。
  8. 【請求項8】 前記スロットを任意の順序で並べた命令
    列を並列命令セットとすると、単一の前記並列命令セッ
    トを構成する複数の前記スロットに含まれる基本命令
    も、必ず単独で処理する請求項7の命令処理方法。
  9. 【請求項9】 演算処理装置に与えられる命令で、それ
    以上短く分解する事のできない演算処理単位に相当する
    命令セットを基本命令セットとすると、前記基本命令セ
    ットを複数組み合わせた命令セットを並列命令セットと
    して定義し、命令フェッチ機構によってフェッチされた
    命令が、前記並列命令セットに一致した場合は、並列命
    令セットを同時に発行,処理し、前記フェッチされた命
    令が、前記並列命令セットに一致しない場合は、前記基
    本命令セットを単独で1命令ずつ実行することを特徴と
    する命令処理装置。
  10. 【請求項10】 メモリ装置から命令をフェッチし、読
    み込んだメモリを順に出力バスに出力する命令フェッチ
    装置と、入力バスを有し、前記入力バスから一定の幅の
    命令列を挿入し、挿入されたのと同じ順序で、出力バス
    を通して、任意の幅の命令列を読み出すことのできるF
    IFOメモリ装置と、1つ以上の命令をチェックする命
    令列チェック装置と、発行された命令を処理、実行する
    1つ以上の命令実行装置と、発行する命令列を入力する
    バスを有し、入力バスを通して入力された命令列を一定
    のフォーマットに整形し、複数の出力バスに接続する前
    記複数の実行ユニットに分配する命令分配アライン装置
    を有し、前記命令フェッチ装置の命令出力バスを前記F
    IFOメモリ装置の入力バスに接続し、前記命令デコー
    ド装置を前記FIFOメモリ装置の前記出力バスから前
    記命令列チェック装置の入力バス及び、命令分配アライ
    ン装置の入力バスに接続し、命令分配アライン装置の出
    力バスに、前記複数の命令実行装置の入力に接続し、前
    記命令フェッチ装置は、実行すべき命令列をフェッチ
    し、先に実行すべき命令から順にバスを介して前記FI
    FOメモリ装置に投入し、前記命令チェック装置は、前
    記FIFOメモリ装置に挿入された命令列を前記FIF
    Oメモリ装置の命令の出口側から命令で2つ以上サイズ
    を含む幅でチェックし、前記2つ以上の命令が命令チェ
    ック装置に固有の命令列を有しているならば真を出力
    し、異なっているならば偽を出力し、命令分配アライン
    装置は、複数の命令チェック装置の何れかが真を出力し
    ている場合は、前記FIFOメモリ装置から読み出され
    た命令列を、命令チェック装置が真を返した形式の命令
    処理ネットワークを用いて分配整列し、前記命令列の含
    む複数の命令を同時に前記各実行装置に前記バスを通し
    て転送し、前記複数の命令チェック装置のすべてが偽を
    出力した場合は、前記FIFOメモリ装置から1命令分
    の命令列を取り込み、前記1命令を前記各命令実行装置
    の何れかに転送し実行することを特徴とする命令処理装
    置。
  11. 【請求項11】 前記複数の命令チェック装置のすべて
    が偽を出力した場合は、前記FIFOメモリ装置から複
    数命令分の命令列を取り込み、前記命令列を順に解析
    し、対応する前記各命令実行装置の何れかに転送し実行
    する請求項10の命令処理装置。
  12. 【請求項12】 演算処理装置に与えられる命令で、そ
    れ以上短く分解することのできない演算処理単位に相当
    する命令セットを基本命令セットとし、前記基本命令セ
    ットを、一定の順序で複数組み合わせて任意の長さにし
    た命令セットを並列命令セットとすれば、演算処理装置
    の実行する命令セットを解析する場合に、前記並列命令
    セットを解析する装置と、前記基本命令セットを解析す
    る装置を有する請求項9ないし11のいずれかの命令処
    理装置。
JP8108814A 1996-04-30 1996-04-30 命令処理方法及び命令処理装置 Expired - Fee Related JP2806359B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8108814A JP2806359B2 (ja) 1996-04-30 1996-04-30 命令処理方法及び命令処理装置
US08/846,419 US6023756A (en) 1996-04-30 1997-04-30 Instruction processing method and system for variable-length instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8108814A JP2806359B2 (ja) 1996-04-30 1996-04-30 命令処理方法及び命令処理装置

Publications (2)

Publication Number Publication Date
JPH09292991A true JPH09292991A (ja) 1997-11-11
JP2806359B2 JP2806359B2 (ja) 1998-09-30

Family

ID=14494187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8108814A Expired - Fee Related JP2806359B2 (ja) 1996-04-30 1996-04-30 命令処理方法及び命令処理装置

Country Status (2)

Country Link
US (1) US6023756A (ja)
JP (1) JP2806359B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232058A (ja) * 1998-02-09 1999-08-27 Fuji Xerox Co Ltd 機器情報管理装置
JP2002323982A (ja) * 2001-04-25 2002-11-08 Fujitsu Ltd 命令処理方法
JP2006500673A (ja) * 2002-09-24 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理装置、処理方法及びコンパイラ
JP2008535074A (ja) * 2005-03-30 2008-08-28 トランジティブ リミテッド 複数の発行ポートを有するプロセッサにおける命令グループの作成
JP2010282637A (ja) * 1998-03-18 2010-12-16 Qualcomm Inc デジタル信号プロセッサ
JP2014238859A (ja) * 2010-03-03 2014-12-18 クアルコム,インコーポレイテッド 階層型の超長命令パケットを処理するシステムおよび方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
US6253309B1 (en) 1998-09-21 2001-06-26 Advanced Micro Devices, Inc. Forcing regularity into a CISC instruction set by padding instructions
US6275927B2 (en) 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes
US6240506B1 (en) * 1998-10-02 2001-05-29 Advanced Micro Devices, Inc. Expanding instructions with variable-length operands to a fixed length
US6339822B1 (en) 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
KR100991700B1 (ko) * 2002-08-16 2010-11-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US8140831B2 (en) * 2009-03-27 2012-03-20 International Business Machines Corporation Routing instructions in a processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257687A (ja) * 1992-01-06 1993-10-08 Hitachi Ltd 並列演算機能を有する計算機

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5805470A (en) * 1996-10-10 1998-09-08 Hewlett-Packard Company Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257687A (ja) * 1992-01-06 1993-10-08 Hitachi Ltd 並列演算機能を有する計算機

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232058A (ja) * 1998-02-09 1999-08-27 Fuji Xerox Co Ltd 機器情報管理装置
JP2010282637A (ja) * 1998-03-18 2010-12-16 Qualcomm Inc デジタル信号プロセッサ
JP2002323982A (ja) * 2001-04-25 2002-11-08 Fujitsu Ltd 命令処理方法
US7647473B2 (en) 2001-04-25 2010-01-12 Fujitsu Limited Instruction processing method for verifying basic instruction arrangement in VLIW instruction for variable length VLIW processor
JP2006500673A (ja) * 2002-09-24 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理装置、処理方法及びコンパイラ
JP2008535074A (ja) * 2005-03-30 2008-08-28 トランジティブ リミテッド 複数の発行ポートを有するプロセッサにおける命令グループの作成
JP2014238859A (ja) * 2010-03-03 2014-12-18 クアルコム,インコーポレイテッド 階層型の超長命令パケットを処理するシステムおよび方法
US9678754B2 (en) 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets

Also Published As

Publication number Publication date
US6023756A (en) 2000-02-08
JP2806359B2 (ja) 1998-09-30

Similar Documents

Publication Publication Date Title
US6889318B1 (en) Instruction fusion for digital signal processor
JP2806359B2 (ja) 命令処理方法及び命令処理装置
US6675376B2 (en) System and method for fusing instructions
US6925553B2 (en) Staggering execution of a single packed data instruction using the same circuit
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US5710902A (en) Instruction dependency chain indentifier
US20030154358A1 (en) Apparatus and method for dispatching very long instruction word having variable length
US20030061473A1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
EP0947917A2 (en) Method and apparatus for handling imprecise exceptions
US6233671B1 (en) Staggering execution of an instruction by dividing a full-width macro instruction into at least two partial-width micro instructions
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US7228403B2 (en) Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
US6779104B2 (en) Method and apparatus for pre-processing instructions for a processor
JPH05150979A (ja) 即値オペランド拡張方式
US20030208672A1 (en) Method and system for pipeline reduction
EP0753810B1 (en) Computer instruction execution method and apparatus
US5291615A (en) Instruction pipeline microprocessor
US20030041229A1 (en) Shift processing unit
US4977497A (en) Data processor
EP1367485B1 (en) Pipelined processing
US11416252B2 (en) Program instruction fusion
EP1367484B1 (en) Instruction encoding
JP2001051845A (ja) アウトオブオーダー実行方式
KR20030017982A (ko) 브이.엘.아이.더블유. 프로세서에서 부분적으로파이프라인으로 연결된 명령을 동기시키는 방법
EP1217514A2 (en) Method and apparatus for bypassing pipeline stages

Legal Events

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