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

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

Info

Publication number
JP2806359B2
JP2806359B2 JP8108814A JP10881496A JP2806359B2 JP 2806359 B2 JP2806359 B2 JP 2806359B2 JP 8108814 A JP8108814 A JP 8108814A JP 10881496 A JP10881496 A JP 10881496A JP 2806359 B2 JP2806359 B2 JP 2806359B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
type
byte
parallel
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
JP8108814A
Other languages
English (en)
Other versions
JPH09292991A (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 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)

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命令ずつ実行すること
を特徴とする。また、本発明の命令処理装置は、命令処
理装置に順番に読み込んだ複数の命令を格納する手段
と、命令の種類と当該命令が並ぶ順序をフォーマットと
して記憶し、前記格納手段に格納した前記複数の命令が
前記フォーマットと一致するか否かを検出する手段と、
一致検出した場合に一致した前記複数の命令を並列実行
し、一致検出しない場合に前記複数の命令を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命令ずつ実行することを特徴として
いるので、命令をデコードして命令長を検出しながら各
命令を順にデコードする必要がなく、可変長命令であっ
ても複数命令を同時に発行できるという極めて優れた効
果を奏することができる。
【図面の簡単な説明】
【図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 (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令の種類と前記命令が並ぶ順序をフォ
    ーマット化し、命令処理装置に順番に読み込んだ複数の
    命令が前記フォーマットと一致するか否かを検出し、一
    致検出した場合に一致した前記複数の命令を並列実行
    し、一致検出しない場合に前記複数の命令を1命令ずつ
    実行することを特徴とする命令処理方法。
  2. 【請求項2】 前記複数の命令を同時に発行する際、命
    令を種類別に処理する各命令実行ユニットへ前記複数の
    命令を種類別に供給して並列実行する請求項1記載の
    令処理方法。
  3. 【請求項3】 命令処理装置に順番に読み込んだ複数の
    命令を格納する手段と、命令の種類と当該命令が並ぶ順
    序をフォーマットとして記憶し、前記格納手段に格納し
    た前記複数の命令が前記フォーマットと一致するか否か
    を検出する手段と、一致検出した場合に一致した前記複
    数の命令を並列実行し、一致検出しない場合に前記複数
    の命令を1命令ずつ実行する手段とを有することを特徴
    とする命令処理装置。
  4. 【請求項4】 命令を種類別に処理する命令実行ユニッ
    トと、前記複数の命令を同時に発行する際、前記各命令
    実行ユニットへ前記複数の命令を種類別に供給する手段
    とを有する請求項3記載の命令処理装置。
  5. 【請求項5】 前記命令を格納する手段は、FIFO記
    憶手段である請求項3または4記載の命令処理装置。
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 JPH09292991A (ja) 1997-11-11
JP2806359B2 true 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)

Families Citing this family (17)

* 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
JP3663881B2 (ja) * 1998-02-09 2005-06-22 富士ゼロックス株式会社 機器情報管理装置
AU2986099A (en) * 1998-03-18 1999-10-11 Qualcomm Incorporated A digital signal processor
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 松下電器産業株式会社 情報処理装置
JP4542722B2 (ja) * 2001-04-25 2010-09-15 富士通株式会社 命令処理方法
EP1530755B1 (en) * 2002-08-16 2019-11-06 Intel Corporation Apparatus, method, and compiler enabling processing of variable length isntructions in a very long instruction word processor
JP3886870B2 (ja) 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
EP1546869B1 (en) * 2002-09-24 2013-04-03 Silicon Hive B.V. Apparatus, method, and compiler enabling processing of load immediate isntructions in a very long instruction word processor
GB2424727B (en) * 2005-03-30 2007-08-01 Transitive Ltd Preparing instruction groups for a processor having a multiple issue ports
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
US9678754B2 (en) 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets

Family Cites Families (8)

* 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
DE69325826T2 (de) * 1992-01-06 2000-02-24 Hitachi, Ltd. Rechner mit einer Parallelverarbeitungsfähigkeit
JP3146707B2 (ja) * 1992-01-06 2001-03-19 株式会社日立製作所 並列演算機能を有する計算機
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

Also Published As

Publication number Publication date
JPH09292991A (ja) 1997-11-11
US6023756A (en) 2000-02-08

Similar Documents

Publication Publication Date Title
JP2806359B2 (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
US7458069B2 (en) System and method for fusing instructions
US7533243B2 (en) Processor for executing highly efficient VLIW
US5922066A (en) Multifunction data aligner in wide data width processor
EP0426393A2 (en) Instructing method and execution system
US20030154358A1 (en) Apparatus and method for dispatching very long instruction word having variable length
US5881307A (en) Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor
KR100267098B1 (ko) 레지스터 화일 판독을 감소시키는 벡터 프로세서 디자인
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
EP0653703A1 (en) Temporary pipeline register file for a superpipelined superscalar processor
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
US6779104B2 (en) Method and apparatus for pre-processing instructions for a processor
JPH05150979A (ja) 即値オペランド拡張方式
EP0753810B1 (en) Computer instruction execution method and apparatus
US5291615A (en) Instruction pipeline microprocessor
US5121474A (en) Bit string data processor using dynamically addressable bit locations in memory so overlapping strings do not destroy data in memory
US4977497A (en) Data processor
US20030041229A1 (en) Shift processing unit
EP1367485B1 (en) Pipelined processing
US11416252B2 (en) Program instruction fusion
EP1367484B1 (en) Instruction encoding
JPH10207707A (ja) スーパースカラパイプライン式データ処理装置の可変長命令の並列デコーディング装置及び方法
JPS61288230A (ja) パイプライン制御方式

Legal Events

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