JP2001515635A - 異なった幅のvliwプロセッサコマンド - Google Patents

異なった幅のvliwプロセッサコマンド

Info

Publication number
JP2001515635A
JP2001515635A JP53694299A JP53694299A JP2001515635A JP 2001515635 A JP2001515635 A JP 2001515635A JP 53694299 A JP53694299 A JP 53694299A JP 53694299 A JP53694299 A JP 53694299A JP 2001515635 A JP2001515635 A JP 2001515635A
Authority
JP
Japan
Prior art keywords
command
instruction
commands
fields
functional unit
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
JP53694299A
Other languages
English (en)
Other versions
JP3976082B2 (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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2001515635A publication Critical patent/JP2001515635A/ja
Application granted granted Critical
Publication of JP3976082B2 publication Critical patent/JP3976082B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 VLIWプロセッサは、第一インストラクションワードの第一および第二コマンドを実行する第一および第二機能ユニットを有する。第一および第二コマンドは、フィールドの第一フィールドおよび第二フィールドをそれぞれ有する。プロセッサは、第二インストラクションワードの第三コマンドを実行する第三機能ユニットを有する。第三コマンドは、第一および第二フィールドの両方を有する。

Description

【発明の詳細な説明】 異なった幅のVLIWプロセッサコマンド 技術分野 本発明は、VLIW(Very Large Instruction Word)プロセッサに関する。本発 明は、このようなプロセッサに対するプログラム、そしてこのようなプログラム のコンパイルにも関する。 背景技術 VLIWプロセッサの例は、フィリップスエレクトロニクス社のTM-1000プロセッ サ(TriMedia)である。このプロセッサは、例えば、欧州特許出願EP 605927( 現在は放棄されている米国出願No.07/999,080、PHA 21777のファミリ)に記載さ れている。VLIWプロセッサの場合、インストラクションの並列実行は、単一の長 いインストラクションワードにおいて多重基本マシンコマンドを結合することに よって得られる。通常、このような各基本コマンドは、RISC演算を表す。クロッ クサイクルごとに、長いインストラクションワードが、ロックステップ方式で作 動する並列配列の機能ユニットに供給される。コマンド内の各コマンドは、ユニ ット内の関連するユニットに供給される。通常、ユニットは、パイプライン実行 を行う。 TM-1000のプロセッサは、非常に長いインストラクションワード発行レジスタ の各発行スロットに、各々、コマンドを並列に発生させる。各発行スロットは、 機能ユニットの各グループと、レジスタファイルへの2つの読み込みポートと1 つの書き込みポートとに関連している。特定のコマンドは、特定の発行スロット に関連するグループの機能ユニットの中の特定のユニットに向けられている。コ マンドは、通常、演算コード、2つのソースオペランド定義および結果オペラン ド定義を有する。ソースオペランド定義および結果オペランド定義は、レジスタ ファイルのレジスタを参照する。コマンドの実行中に、オペランドを取り込むた めに、取り込んだ信号を発行スロットに関連する読出しポートに供給することに よって、特定の発行スロットからソースオペランドが読み込まれる。典型的には 、機能ユニットは、これらの読出しポートからオペランドを受け取って、演算コ ードに従ってコマンドを実行し、そして特定の発行スロットに関連する書き込み ポートを介して結果をレジスタファイルに書き戻す。これに代えて、コマンドは 、2つに満たないオペランドを使用しおよび/またはレジスタファイルに対し結 果を生成させないようにすることもできる。 VLIWプロセッサに対する典型的プログラムは、機能ユニットに対する一組のコ マンドに変換される。コンパイル時間スケジューラは、これらのコマンドを長い インストラクションワードに分布させる。スケジューラは、並行性を最適化する ことによって、プログラムを実行するために必要な時間を最小にしようとする。 スケジューラは、同じインストラクションに割り当てられているコマンドを並列 にかつデータ依存制約の下で実行させることができる制約の下に、コマンドをイ ンストラクションワードに結合させる。 発明の開示 本発明の目的のうちの1つは、そのアーキテクチャが、従来のVLIWプロセッサ に関するプログラムの実行に必要なインストラクションワードの数を減らすこと を可能にするVLIWプロセッサを提供することである。 このために、本発明のVLIWプロセッサは、第一および第二の非常に長いインス トラクションワードをシーケンシャルに供給するインストラクション発行ポート を有する。ワードの各一つは、コマンドの各連結に配布されたフィールドの各順 序づけられた連結を有する。第一ワードは、フィールド内の第一フィールドを有 するコマンド内の第一コマンドおよびフィールド内の第二フィールドを有するコ マンド内の第二コマンドを有する。第二ワードは、フィールド内の第一および第 二フィールドを有するコマンド内の第三コマンドを有する。このプロセッサは、 第一コマンドを処理する発行ポートに結合されている第一機能ユニットと、ロッ クステップで第一ユニットと共に第二コマンドを処理する発行ポートに結合され ている第二機能ユニットとを有する。このプロセッサは、第三コマンドを処理す る発行ポートに結合されている第三機能ユニットを有する。 本発明は、インストラクション発行ポートの発行スロットへの柔軟性に富む分 割に基づく。このことは、例えば、オペランドに対して異なった数のフィールド を使用する異なったコマンドを使用することが可能であることを意味する。また 、異なったコマンドは、異なったサイズの演算コードを有することができる。コ マンドを処理する回路の専門資源に関連するフィールド、ここでは、機能ユニッ トは、異なった発行スロットに関連する異なったグループからの機能ユニットと 協力して使用することができる。これは、固定された発行スロットに分割される インストラクション発行ポート内の場合よりもより複雑なコマンドの使用を許す 。最も複雑なコマンドを処理するために、発行スロット内により多くのスペース を確保する必要は無い。従来のVLIWプロセッサの場合、このような複雑なコマン ドは、多重インストラクションワードの順序にあるいくつかのより単純なコマン ドを使用して、実行させなければならない。それゆえに、本発明は、従来のVLIW プロセッサにより可能である場合よりより速くプログラムを実行することを可能 とする。何故ならば、プログラムを完了させるために必要なインストラクション ワードがより少なくて済むからである。 例えば、TM-1000のようなマシンの場合、3つのオペランドからの結果を計算 する演算(例えば、平均演算)は、少なくとも2つの逐次的に実行されるインス トラクションを必要とし、したがって、少なくとも2つのコマンドを必要とする でろう。3つ以上のオペランドに対するフィールドをコマンドに提供することに よって、1つのコマンドを使用して演算を実行できる。さらに、これらのフィー ルドが柔軟にコマンドに割り当てられるので、これは、全てのコマンドに対する オペランドに対して3つ以上のフィールドを確保することなく、実現させること ができる。 本発明の一実施例の場合、第三コマンドは、第一および第二コマンドの実行に 使われる全てのフィールドを含む。そこで、例えば、第一および第二の固定され たサイズの発行スロットが、それぞれ第一および第二コマンドを発行させるのに 使われる場合、第三コマンドは、第一および第二発行スロットの組合せを使用で きる。これは、スケジューリングを単純化する。 各コマンド、すなわち、各発行スロットの異なったフィールドは、オペランド レジスタの読み込まれるアドレスを表す、または書き込む結果レジスタのアドレ スを表す、または演算コードを表すと言うような、固定された機能性を、各々、 有することができる。これらの異なったフィールドは、読出しポートまたは演算 コードデコーダのような、インストラクション処理回路の固定された部分に関連 するであろう。この場合、第三のインストラクションは、オペランドの数を二回 および/または結果の数を二回および/または倍のサイズの演算コードを使用で きる。発行スロットの各一つが、機能ユニットの各グループに関連する場合、第 三のコマンドを実行する機能ユニットは、同時に、両方のグループに属する。 VLIWプロセッサ内の1つのコマンドによって使われるフィールドの組合せは、 発行スロットに対応する。典型的には、通常の発行スロットのサイズは、第一お よび第二のコマンド、そして(演算コードフィールド、2つの入力レジスタ選択 フィールドおよび結果レジスタ選択フィールドを含む発行スロットを使用する) 通常のコマンドに対して、同じである。この場合、本実施例における第三のコマ ンドに使われるフィールドは、通常の発行スロットの数(整数)をカバーする。 VLIWプロセッサプログラムにおいて、コマンドに対し使われる発行スロットは、 不十分な資源である。プログラムのコマンドに使用される発行スロットの数(各 インストラクションで使われる発行スロットの各数の合計)が大きくなるにつれ て、プログラムは遅くなる。したがって、第三のコマンドに対して使われる通常 の発行スロットの数は、通常のコマンドのいかなる組合せも有する第三のコマン ドと同じ機能を実現させるために必要な通常の発行スロットの数より小さいこと が好ましい。この場合だけ、第三コマンドは、不十分な資源である発行スロット を節約する。 さらに、通常のコマンドを使用する第三コマンドの実施は、これらの通常のコ マンドの中間結果を、(例えば、64ビット、または8ビットの8要素のベクトル として)通常のレジスタサイズに対応する精度で表さなければならないことも意 味する。多くの通常のコマンドの効果を結合する第三コマンドを使用することに よって、必要であれば、(例えば、イメージまたは音声信号の)多くの信号処理 アプリケーションの場合がこれにあてはまるが、中間結果をより高い精度で表す ことができる。 各インストラクションは、各発行スロットが、コマンドを処理することができ る一つ以上の機能ユニットに関連する、決まった数の発行スロットから成り立つ のが好ましい。異なった機能ユニットが、コマンドの異なったグループに設けら れている。機能ユニットは、発行スロットに関連する。インストラクションが発 行されると、発行スロットからのコマンドが、その発行スロットに関連する機能 ユニットに供給される。第一および第二機能ユニットが、第一および第二コマン ドをそれぞれ発行する発行スロットに関連させて、設けられ、そして第三機能ユ ニットが、第一および第二発行スロットに関連するように設けられる。従って、 第一および第二コマンドは、異なった機能ユニットに対して発行される。第三コ マンドの場合、第三機能ユニットは、それが第一および第二発行スロットの両方 を使用すべきであることを認識し、かつ第一および第二機能ユニットは、それら が第一および第二発行スロットを使用してはならないことを認識する。第三機能 ユニットの起動は、第一および第二発行スロットのうちの1つ内の演算コードフ ィールドによって、トリガされる。この演算コードフィールドは、第三機能ユニ ットが、両方の第一および第二発行スロットにおいて、参照されるオペランドを どう処理するかを制御するのが望ましい。第一および第二発行スロットのうちの 1つが、他の発行スロットを使用することなく、自分自身に実行することが出来 る通常のコマンドしかを含まず、そして他の各発行スロットが、オペランド、条 件つきの実行等の後処理または前処理のような変更がその通常のコマンドに有る ことを合図する場合には、上記制御は必要が無い。これは、第三の機能ユニット に対するコマンドの可能な機能を、通常のコマンド(1つの発行スロットを用い て実行することが出来る)とこれらのコマンドの変更として利用できるこれらの コマンドのみに制限するであろう。このような制限は、マルチメディアの信号処 理アプリケーションに対する多くの役に立つコマンドを除外する。 本発明は、インストラクションに対するフィールドの柔軟性に富む指定により VLIWプロセッサに対するプログラムをコンパイルすることに対するコンパイラに 関し、そしてこのような柔軟性に富む指定を有するプログラムにも関する。 図面の簡単な説明 これらの、そしてまた他の本発明の態様は、添付の図面の例により示される。 第1図は、本発明のVLIWプロセッサのブロック図である、 第2a-c図は、インストラクションワードフォーマットの線図である、 第3図は、発行スロットに対するデコード回路のブロック図である、 第4図は、プログラムをコンパイルする流れ線図である、そして、 第5図は、インストラクションスロットに対するコマンドの指定である。 発明を実施するための最良の形態 第1図は、VLIWプロセッサの線図である。VLIWプロセッサは、インストラクシ ョンワードメモリシステム10、プログラムカウンタ11、デコードおよび起動回路 12、機能ユニット14a-kおよびマルチポートレジスタファイル16を有する。カウ ンタ11は、メモリシステム10のアドレス入力に結合されている。メモリシステム 10は、発行スロット(インストラクションバスとも呼ばれている)に分割されて いるインストラクション発行レジスタ(図示せず)を有する。発行スロットは、 発行レジスタに現在バッファリングされているインストラクションワードの個々 のビットのルートを決める機能的に並列する多くのパスを有する。発行レジスタ の出力端は、デコードおよび起動回路12に結合されている。回路12の出力端は、 機能ユニット14a-kと、マルチボートレジスタファイル16とに結合されている。 レジスタファイル16の読出しポートと書き込みポートは、機能ユニット14a-kに 結合されている。メモリシステム10は、カウンタ11の制御の下でデコードおよび 起動回路12に、インストラクションワードを逐次的に供給する。システム10は、 インストラクションキャッシングおよび/またはプリフェッチング(prefetchin g)を使用するのが好ましいが、これは本発明にとって本質的なものでは無い。 システム10は、圧縮したフォーマットで格納されているインストラクションワー ドに対し、それらを出力する前に、解凍演算を実行することもできる。デコード および起動回路12は、インストラクションワードを受信する。回路12は、メモリ システム10からの機能的に並列するパスを、各フィールドが1つ以上のパスに関 連しているフィールドの集まりとして扱う。フィールドの集まりは、コマンドを 形成する。コマンドの集まりが、単一のインスト ラクションワードを形成する。 第2a図は、ワードが、多くのスロット20a-eに分割されている第一フォーマッ トのインストラクションワードを示す。スロット20a-eの各スロットは、各コマ ンドに対応する。各スロットは、演算コード22a-eに対する1つのフィールド、 (レジスタファイル16内の関連するレジスタへの参照を表す)オペランド24a-e ,26a-eに対する2つのフィールド、および(レジスタファイル16内の関連する レジスタへの参照を表す)結果28a-eのターゲットに対する1つのフィールドを 有する。 第2b,c図は、多重スロットが「スーパスロット」に結合されている第二フォー マットのインストラクションワードを示す。例えば、スーパスロット29aは、従 来のスロット20aと20bのフィールドを結合し、スーパスロット29bは、スロット2 0c-eのフィールドを結合する。スーパスロットフォーマットは、従来の単一スロ ットにより実行することができる場合に比較しより多くのオペランドを使用する コマンドを実行することを可能にする。一般に、個々のフィールド22a-e、24a-e 、26a-e、28a-eは、従来のスロット20a-eとスーパスロット29aと29bにおいて、 同じ機能を有するか、または全く機能を有しないの何れかである。例えば、フィ ールド24a-eと26a-eの内の特定フィールドが,第一フォーマットと第二フォーマ ットでのオペランドを規定するか、またはそれを全く使わない。フィールド22a- eの特定フィールドが、第一フォーマットと第二フォーマットの演算コードに対 して使われ、またはそれを全く使わない。フィールド28a-eの特定フィールドが 、第一フォーマットと第二フォーマットのターゲットに対して使われるか、また はそれを全く使わない。これに代えて、第二フォーマットのフィールド22a-e、2 4a-e、26a-eおよび28a-eは、第一フォーマットのそれらとは異なった目的を有す る。 第3図は、デコードおよび起動回路30の一部、機能ユニット32a-cおよびマル チポートレジスタファイル34の一部を有する、VLIWプロセッサの線図である。デ コードおよび起動回路30の部分は、機能ユニット32a-cに結合されているインス トラクションデコーダ300を有する。ユニット32a-cは、レジスタファイル34の読 出しポート302a、302bに結合されている。結果書き込みユニット304は、 レジスタファイル34の書き込みポート342に結合されている。読出しポート302a, bの出力端は、機能ユニット32a-cの入力端に結合されている。機能ユニット32a- cの出力端は、書き込みポート342に結合されている。デコードおよび起動回路12 は、各発行スロットに対し第3図に示されるような回路を含む。デコードおよび 起動回路12は、各フィールドの機能に従って、フィールド22a-e、24a-e、26a-e 、28a-eからの情報を処理する。オペランドフィールド24a-e,26a-eの各々は、 レジスタファイル16の各読出しポートに関連している。デコードおよび起動回路 12は、関連する読出しポートにアドレスするためにフィールド24a-e,26a-eの内 容を使用する。同様に、ターゲットフィールド28a-eは、レジスタファイル16の 書き込みポートに対応する。デコードおよび起動回路12は、関連する書き込みポ ートにアドレスするために、フィールド28a-eの内容を使用する。演算コードフ ィールド22a-eの各々は、デコードおよび起動回路12の各インストラクションデ コーダ300に供給され、そこにおいて、復号された演算コードが、機能ユニット1 4a-kの選ばれたユニットに供給される。通常、デコードおよび起動回路12は、イ ンストラクションワードを復号する間、例えば、オペランドの取り込みを始める ことによって、パイプライン演算を使用する。インストラクションワードからの コマンドの復号化と取り込みは、前のインストラクションワードからのコマンド が実行されていて、かつそれより前のインストラクションワードからのコマンド の結果がそのターゲット位置に書き込まれている間に、実行される。フィールド 22a-e、24a-e、26a-eおよび28a-eの機能が既定されていてかつフォーマットから 独立しているので、オペランドの取り込みは、インストラクションの復号化が完 了する前に始めることができる。 多重機能ユニット14a-kは、第3図のグループのようなグループに構成される 。各グループは、第一フォーマットのインストラクションワードの各発行スロッ トに関連する。デコードおよび起動回路12が第一フォーマットのインストラクシ ョンワードを検出すると、回路12は、そのスロットに関連するグループのユニッ トのうちのどれが、スロットのコマンドを実行しなければならないかを決定する 。その機能ユニットは、その後、コマンドを実行するために制御信号を受信する 。したがって、デコードおよび起動回路12は、−グループ内の機能ユニット に一度にそれの実行を開始させるようにするであろう。通常、同じタイプの機能 ユニットが、異なったグループ内に存在する。例えば、各グループは、ALU(算 数演算ユニット)を有する。これは、一度に各グループの機能ユニットを1つし か使用しないことにより生じるボトルネックを防ぐ。 機能ユニット14a-cのいくつかは、複数のグループに属する。これらのユニッ トを、以下においては、スーパ機能ユニットと称する。スーパユニット14a-eの 各々は、2つ以上の特定グループに関連している。これは、スーパユニット14a- cの各々が、これらの特定グループに関連するレジスタファイル16への読出しポ ートからオペランドを使用することが出来ることを意味する。また、スーパユニ ット14a-cは、これらの特定のグループに関連するレジスタファイル16への書き 込みポートを使用できる。スーパ機能ユニット14a-cに対するコマンドは、第二 フォーマットのインストラクションワードから来る。このようなコマンドは、ス ーパスロット29aおよび29bに位置する。スーパスロットのオペランドフィールド 24a,bおよび26a,bは、スーパユニット14a-cに対するレジスタファイル16からオ ペランドを取り込むことを可能にする。フィールド24a,bおよび26a,bの各々は, インストラクションワードのフォーマットにかかわらず、全てのインストラクシ ョンワードに対して同じ読出しポートに関連している。その結果、フォーマット が決定される前に取り込みを開始することができる。同様に、ターゲットフィー ルド28a,bは、レジスタファイル16への書き込みポートを制御する。これらのフ ィールドの各々は、全てのインストラクションワードに対し、フォーマットには 依存せずに、同じ書き込みポートに関連する。デコードおよび起動回路12が、特 定のスーパユニットにコマンドの実行を開始させると、回路12は、いずれの機能 ユニット14d-kも、そのスーパユニットに関連するグループ内でコマンドの実行 を開始させることを阻止するであろう。スーパスロット29a,bの復号化された演 算コードフィールド22a,bは、それらのグループに関連する従来のスロット20a,b 内の、演算コードフィールド22a,bに対応していて、そして関連したスーパユニ ット14a-cのみを制御するのに使用される。例えば、スーパユニットを制御する これらのスロットのうちの1つの演算コードしか使用しなくても良いが、それら のスロットのうちの2つ以上の演算コードを結合する結合回路を 使用することもできる。したがって、より多数の異なった演算を、スーパユニッ ト14a-cの各々に対して規定することができる。スーパユニット14a-cは、3つ以 上のオペランドを必要とするおよび/または3つ以上の結果を生成する演算を実 行するコマンドを実行する。このような演算の例は、 AV(R1,R2,R3..) 3つ以上のオペランドR1,R2,R3..の平均を生成 すること、 ME(R1,R2,R3..) 少なくとも3つ、5つまたはそれ以上のオペラ ンドR1,R2,R3..の中点を生成すること、 SO(R1,R2) 大きい方のオペランドを、結果レジスタに置き かつ小さい方のオペランドを、他の結果レジスタに置いて、2つのオペランドR1 およびR2をソートすること、 TP(R1,R2,R3,R4...) 行R1,R2,R3,R4を有するマトリックスの置換(tr ansportatlon)、 RT(R1,R2,R3) 指定された角度についてコンポーネントR1,R2, R3を有するベクトルの回転 従来のVLIWプロセッサの場合、上記の演算は、いくつかのコマンドを逐次に実 行することを必要とする。マルチポートレジスタファイルのレジスタは、あるケ ースの場合、小さい数の組合せを表すために使われる。例えば、レジスタが64ビ ット長の場合、4つの16ビット数をレジスタ当たりに表すことができる。この場 合、これらの数の各々は、別々に演算させることができる。例えば、機能ユニッ トは、ADDコマンドに対応して、2つのレジスタからの数の4対を加えることが できる。 この方法は、スーパユニットにも使用できる。例えば、4つのレジスタは、16 ビット数の4x4マトリックスを表すことができる。各レジスタは、マトリック スの行の各々を表す、各四つ組:R1=(a11、a12、a13、a14)、R2=(a21、a22 、a23、a24)、R3=(a31、a32、a33、a34)、R4=(a41、a42、a43、a44)を含 む。レジスタは異なっているが対応する四つ組の同じ位置に格納されている一組 のコンポーネントは、マトリックスの一列を表す。置換演算において、行は異な るが同じ位置にあるコンポーネントは、共にレジスタRESULTI=(a11,a21,a31 , a41)とRESULT2=(a12,a22,a32,a42)に置かれる。マトリックスを置き換え るスーパユニットは、2つの発行スロットを使用し、4x4マトリックスの2つ の行を生成することが出来る。このような機能ユニットに対して、置き換えられ たマトリックスの2つの最上行を生成するコマンドと、2つの最下行を提供する コマンドの、2つのコマンドを提供することによって、置換は非常に速く得られ る。 類似した演算は、シャッフル演算である: SH R1,R2,R3->R4(,R5) この演算は、レジスタR3で、規定されている順列に従って、レジスタR1および R2に格納されている数の順序を変えおよび/または数を選び、そしてそれらの数 を順列でレジスタR3にそしてオプションとしてレジスタR5にも格納させる。 いくつかのケースの場合、一つ以上のオペランドが、標準の値を有する。これ らのケースの場合、追加のコマンドを規定して、単一の発行スロットに適合させ ることは有利である。この追加のコマンドの場合、演算コードは、特定な演算と オペランドのうちの少なくとも1つの標準値を規定する。この標準値は、暗示的 に規定できる。追加のコマンドは、残りのオペランドに対してのみのオペランド 参照を含む。このようなコマンドは、第一または第二フォーマットの何れかを有 するインストラクションワードの単一の発行スロットにおいて、使うことができ る。デコードおよび起動回路12がこのようなインストラクションに遭遇すると、 それはスーパユニットそれ自体に標準の引数を供給する。したがって、スーパユ ニットは、1つの発行スロットを使用し、かつ2つ以上の発行スロットを使用す るコマンドを受信できる。前者の場合、標準値が使われ、そして膨大な数のコマ ンドをインストラクションワードに含ませることができる。 第1図の実施例の場合、各スーパユニットは、機能ユニットの整数のグループ に関連する発行スロットの全てのフィールドを使用する。代替スーパユニットは 、発行スロットのフィールドの(全てでは無く)いくつかを使用できる。例えば 、このような代替ユニットは、それらの内の2つは、1つの特定発行スロットの フィールドからそして第三のオペランドは他の発行スロットから来る、3つのオ ペランドを処理できる。このような代替ユニットを使うと、当該発行スロットの 他 のフィールドを、代替スーパユニットと並列に実行を開始できる他のユニットに 対して利用できるようにすることができる。これらの他の機能ユニットは、例え ば、1つのオペランドのみを有するか、全くオペランドを有しないか、または何 の結果も生成させないようにすることができる。これらの他のユニットは、代替 ユニットが未だ使っていないいくつかのフィールドのみを使用するであろう。ま た、これらの他の機能ユニットは、他の発行スロットのフィールドに加えて発行 スロットのいくつかのフィールドを使用する、代替スーパ機能ユニットそれ自身 であるかもしれない。しかしながら、代替機能ユニットの使用は、単一のインス トラクションワードからコマンドを受け取ることができるユニットの組合せに、 複雑な制限を課す。発行スロットの全てのフィールドを使用することによって、 または少なくとも部分的に割り当てられたスロットの残りのフィールドを使用し ないことによって、このような制約は、避けられる。これはより高い程度の並列 性の利用を可能にし、そして、それはインストラクションワードのコンパイルを はるかに容易にする。 コンパイラは、VLIWプロセッサに対してインストラクションワードを生成する 。コンパイラは、コマンド間のデータ依存性を有する多くのコマンドでプログラ ムを記述する。コンパイラは、一組のインストラクションワードに全てのコマン ドを置く方法を捜す。コンパイラは、プログラムの実行中にシーケンシャルに実 行される必要があるインストラクションワードの数の最小化を実行する。第4図 は、プログラムをコンパイルする方法のフローチャートの線図である。第一ステ ップ40において、一組の演算が、演算の間のデータ依存性の仕様と共に受け取ら れる。続いて、コンパイラは一組のインストラクションワードに演算に対するコ マンドを置く方法を捜し始める。第二ステップ42は、受け取られた全ての演算に 対してコマンドが置かれたかどうかを検証する。もしそうである場合には、コン パイル処理は、完了する。そうでない場合には、第三ステップ44は、コマンドが まだ置かれておらず、そしてそのオペランドを生成する、先行する「ソース演算 」がすでに置かれている演算を選択する。さらに、最も早いインストラクション ワードが、ソース演算に対するコマンドが置かれたインストラクションワードの 後のインストラクションワードの組から選ばれる。第四ステップ46は、 その最も早いインストラクションワードにすでに含まれているコマンドと、その 選ばれた演算に対するコマンドとを含むインストラクションワードを構成するこ とが可能か否かを検証する。ステップ46は、コマンドの性質および機能ユニット のグループ分けを考慮に入れる。 − 異なったグループにコマンドを置くことと、 − 他のいかなるコマンドも、それらのスーパ機能ユニットに関連する グループの発行スロットを使用しないように、スーパ機能ユニット に対するコマンドを置くこと の両方が、可能か否かが検証される。 これが可能な場合、選ばれたインストラクションワードは、アップデートされ 、そして、この方法は第二ステップ42に戻る。これが可能でない場合、第五ステ ップ48が実行される、選ばれたインストラクションワードに続くインストラクシ ョンワードが選択され、そして第四ステップ46が繰り返される。 第5図は、第四ステップ46をさらに説明する線図である。左側に、演算の数が 、第一ノード50a-dとして示されている。右側に、発行スロットの数が、第二ノ ード52a-eとして示されている。第四ステップの作業は、第一ノード50a-dの第二 ノード52a-eへのマッピングがあるか否かを検証することである。このマッピン グで、スーパ機能ユニット50dに対する演算は、少なくとも2つの発行スロット5 2d,eにマッピングされる。他の第一ノード50a-dは、従来の演算に対応し、そし て各々は、第二ノード52a-e内の単一ノードにマッピングされる。ノード52a-eの 各々は、当該演算を実行できる機能ユニットを含むグループに関連する発行スロ ットに対応する。もちろん、第4図のフローチャートは、単純化された例に過ぎ ない。一般に、最小化は、コマンド間のデータ依存の制約の下で実行される。( すなわち、第一コマンドが、第二コマンドからの結果を入力として使用する場合 、これらのコマンドは、異なったインストラクションワードに置かれるべきであ る。インストラクションワードは、第二コマンドを含むインストラクションワー ドに続く第一コマンドを含む)。さらに、最小化は、機能ユニットが、各インス トラクションワードに対して、並列に全てのコマンドの実行を始めることができ る制約条件の下で実行される。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラッスマン セリアウ オランダ国 5656 アーアー アインドー フェン プロフ ホルストラーン 6

Claims (1)

  1. 【特許請求の範囲】 1. ワード内の各ワードが、コマンド内に配布されたいくつかのコマンドとフ ィールドを有し、、非常に長い第一および第二インストラクションワードをシ ーケンシャルに供給するインストラクション発行ポートを有するVLIWプロセッ サであって、 前記非常に長いインストラクションワード内の第一ワードが、前記フィール ド内の第一フィールドをカバーする前記コマンド内の第一コマンドと、前記フ ィールド内の第二フィールドをカバーする前記コマンド内の第二コマンドとを 有し、 前記非常に長いインストラクションワード内の第二ワードが、前記フィール ド内の第一および第二フィールドの両方をカバーする前記コマンド内の第三コ マンドを有し、 第一機能ユニットが、前記第一コマンドを処理する前記発行ポートに結合さ れていて、 第二機能ユニットが、前記第一ユニットと同時に前記第二コマンドを処理す る前記発行ポートに結合されていて、そして 第三機能ユニットが、前記第三コマンドを処理する前記発行ポートに結合さ れている、 VLIWプロセッサ。 2. 前記第三コマンドが、前記第一コマンドの全てのフィールドをカバーする 請求項1に記載のプロセッサ。 3. 前記プロセッサが、マルチポートレジスタファイルを有し、 前記インストラクション発行ポートが、前記第一機能ユニットによって前記 第一コマンドの実行のさいに使用される第一オペランドを取り込むために、前 記第一フィールドを前記レジスタファイルに供給し、 前記インストラクション発行ポートが、前記第二機能ユニットによって前記 第二コマンドの実行のさいに使用される第二オペランドを取り込むために、前 記第二フィールドを前記レジスタファイルに供給し、そして、 前記インストラクション発行ポートが、前記第三機能ユニットによって前記 第三コマンドの実行のさいに使用される多重オペランドを取り込むために、前 記第一および第二フィールドを前記レジスタファイルに供給する、 請求項1に記載のプロセッサ。 4. 前記第一機能ユニットが、前記第一コマンドを実行した第一結果を、前記 第一コマンドの第一当該フィールドに示される前記レジスタファイルの第一ア ドレスに書き込み、 前記第二機能ユニットが、前記第二コマンドを実行した第二結果を、前記第 二コマンドの第二の関連するフィールドに示される前記レジスタファイルの第 二アドレスに書き込み、そして、 前記第三機能ユニットが、前記第三コマンド内に示される当該第一および第 二の関連する前記レジスタファイルの各第三および第四アドレスに前記第三コ マンドを実行した第三および第四結果を書き込む、 請求項3に記載のプロセッサ。 5. 前記コマンドの第一および/または第二コマンドに対する実行段を、前記 第三コマンドに対する他の実行段と同時に実行する、 請求項1に記載のプロセッサ。 6. 前記第一および前記第三コマンドを実行することが出来る第四機能ユニッ トを有し、前記第一コマンドが実行されるときに、前記第四ユニットが、前記 第二フィールドの前記内容から導出された情報の代わりに標準の内容を前記機 能ユニットに供給することが出来る、 請求項5に記載のプロセッサ。 7. VLIWプロセッサに対するコマンドをコンパイルする方法であって、前記プ ロセッサが、機能ユニットのグループを含み、各インストラクションワードが 、機能ユニットの各グループに対しそれぞれ多くとも1つの各コマンドを含む ことができていて、前記プロセッサが、前記グループのうちの少なくとも2つ に関連する少なくとも一つの別の機能ユニットも有し、別の機能ユニットに対 するコマンドを含む各インストラクションワードが、前記グループの当該少な くとも2つ内のいかなる機能に対するコマンドも含むことが許されていない方 法 において、 上記方法が、 前記機能ユニットにより実行されなければならない一組のコマンドを受信し 、インストラクションワードに対するコマンドの整合した割り当てを検索し、 当該検索が、少なくとも一つのコマンドを機能のユニットのいかなる一つに 対しも、グループの当該少なくとも2つからの前記機能ユニットに対するコマ ンドとの両方を含む前記検索インストラクションワードからの除去を有してい る、 VLIWプロセッサに対するコマンドをコンパイルする方法。 8. VLIWプロセッサに対するインストラクションをコンパイルする方法を実行 するプログラムを有するマシン読み込み可能な媒体であって、 前記プロセッサが、機能ユニットのグループを含み、各インストラクション ワードが、機能ユニットの各グループに対しそれぞれ多くとも1つの各コマン ドを含むことができていて、前記プロセッサが、前記グループのうちの少なく とも2つに関連する少なくとも一つの別の機能ユニットも有し、別の機能ユニ ットに対するコマンドを含む各インストラクションワードが、前記グループの 当該少なくとも2つ内のいかなる機能に対するコマンドも含むことが許されて いない方法において、 上記方法が、 前記機能ユニットにより実行されなければならない一組のコマンドを受信し 、インストラクションワードに対するコマンドの整合した割り当てを検索し、 当該検索が、少なくとも一つのコマンドを機能のユニットのいかなる一つに 対しも、グループの当該少なくとも2つからの前記機能ユニットに対するコマ ンドとの両方を含む前記検索インストラクションワードからの除去を有してい る、 マシン読み込み可能な媒体。 9. 前記インストラクション発行ポートのフィールド内に連続したインストラ クションワードを発行するインストラクション発行ポートを有するVLIWプロセ ッサ上のコンピュータープログラムを実行する方法であって、 前記インストラクション発行ポートからの第一および第二フィールドを、各 々、含んでいる第一および第二コマンドを有しているインストラクションワー ドの第一ワードを実行し、 第一および第二フィールドの両方を含んでいる第三コマンド(29a)を含ん でいる前記インストラクションの第二インストラクションを実行する、 VLIWプロセッサ上のコンピュータープログラムを実行する方法。 10. 前記第一コマンドで使われる全てのフィールドから成るフィールドの一 組が、前記第三コマンドに含まれ、そしてフィールドのその組の前記フィール ドを使用する前記第三コマンドを実行する、 請求項9に記載の方法。 11. VLIWプロセッサに対するプログラムを有しているマシン読み込み可能な 媒体であって、前記プログラムが、各々第一および第二フィールドを含んでい る第一および第二コマンドを有している第一インストラクションワードと、第 一および第二フィールドの両方を含んでいる第三コマンドを含んでいる第二イ ンストラクションワードとを含んでいる、 マシン読み込み可能な媒体。 12. 前記第一コマンドで使われる全てのフィールドから成る一組のフィール ドが、前記第三コマンドに含まれている、請求項11に記載のマシン読み込み 可能な媒体。 13. 前記第二コマンドで使われる全てのフィールドから成る一組のフィール ドが、前記第三のコマンドに含まれている、請求項12に記載のマシン読み込 み可能な媒体。
JP53694299A 1998-01-16 1999-01-15 異なった幅のvliwプロセッサコマンド Expired - Lifetime JP3976082B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/008,339 US6076154A (en) 1998-01-16 1998-01-16 VLIW processor has different functional units operating on commands of different widths
US09/008,339 1998-01-16
PCT/IB1999/000044 WO1999036845A2 (en) 1998-01-16 1999-01-15 Vliw processor processes commands of different widths

Publications (2)

Publication Number Publication Date
JP2001515635A true JP2001515635A (ja) 2001-09-18
JP3976082B2 JP3976082B2 (ja) 2007-09-12

Family

ID=21731066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53694299A Expired - Lifetime JP3976082B2 (ja) 1998-01-16 1999-01-15 異なった幅のvliwプロセッサコマンド

Country Status (8)

Country Link
US (1) US6076154A (ja)
EP (1) EP0968463B1 (ja)
JP (1) JP3976082B2 (ja)
KR (1) KR100715055B1 (ja)
CN (2) CN1126027C (ja)
DE (1) DE69933088T2 (ja)
TW (1) TW469407B (ja)
WO (1) WO1999036845A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006500673A (ja) * 2002-09-24 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理装置、処理方法及びコンパイラ
CN100461716C (zh) * 2005-01-28 2009-02-11 华为技术有限公司 基于模拟端口的通信方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6151668A (en) * 1997-11-07 2000-11-21 Billions Of Operations Per Second, Inc. Methods and apparatus for efficient synchronous MIMD operations with iVLIW PE-to-PE communication
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
WO2000079395A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for establishing port priority functions in a vliw processor
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
TW525091B (en) * 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method
EP1340142A2 (en) * 2000-11-27 2003-09-03 Koninklijke Philips Electronics N.V. Data processing apparatus with many-operand instruction
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6886091B1 (en) 2001-06-29 2005-04-26 Koninklijke Philips Electronics N.V. Replacing VLIW operation with equivalent operation requiring fewer issue slots
US6851010B1 (en) 2001-06-29 2005-02-01 Koninklijke Philips Electronics N.V. Cache management instructions
US6889242B1 (en) 2001-06-29 2005-05-03 Koninklijke Philips Electronics N.V. Rounding operations in computer processor
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
KR100464406B1 (ko) * 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
WO2004015561A1 (en) * 2002-08-05 2004-02-19 Koninklijke Philips Electronics N.V. Processor and method for processing vliw instructions
US7315935B1 (en) * 2003-10-06 2008-01-01 Advanced Micro Devices, Inc. Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
DE602005019180D1 (de) * 2004-09-22 2010-03-18 Koninkl Philips Electronics Nv Datenverarbeitungsschaltung mit funktionseinheiten mit gemeinsamen leseports
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US8321490B2 (en) 2005-07-28 2012-11-27 Analog Devices, Inc. Instruction-based parallel median filtering
US20070027944A1 (en) * 2005-07-28 2007-02-01 James Wilson Instruction based parallel median filtering processor and method
US8819099B2 (en) * 2006-09-26 2014-08-26 Qualcomm Incorporated Software implementation of matrix inversion in a wireless communication system
US8495604B2 (en) * 2009-12-30 2013-07-23 International Business Machines Corporation Dynamically distribute a multi-dimensional work set across a multi-core system
US9250916B2 (en) * 2013-03-12 2016-02-02 International Business Machines Corporation Chaining between exposed vector pipelines
KR102593320B1 (ko) * 2016-09-26 2023-10-25 삼성전자주식회사 전자 장치, 프로세서 및 그 제어 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
US5692169A (en) * 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
DE69325785T2 (de) * 1992-12-29 2000-02-17 Koninkl Philips Electronics Nv Verbesserte Architektur für Prozessor mit sehr langem Befehlswort
JPH07104996A (ja) * 1993-10-05 1995-04-21 Kofu Nippon Denki Kk マイクロプログラム制御装置
EP0729616B1 (en) * 1994-09-15 2002-08-28 Koninklijke Philips Electronics N.V. A data processing system comprising data processing units and an expander
US5600810A (en) * 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
DE69728495T2 (de) * 1996-05-15 2005-02-24 Koninklijke Philips Electronics N.V. Vliw-prozessor zur verarbeitung eines komprimierten instruktionsformats

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006500673A (ja) * 2002-09-24 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理装置、処理方法及びコンパイラ
CN100461716C (zh) * 2005-01-28 2009-02-11 华为技术有限公司 基于模拟端口的通信方法

Also Published As

Publication number Publication date
EP0968463A2 (en) 2000-01-05
DE69933088T2 (de) 2007-04-05
CN1258361A (zh) 2000-06-28
DE69933088D1 (de) 2006-10-19
JP3976082B2 (ja) 2007-09-12
WO1999036845A3 (en) 1999-10-07
US6076154A (en) 2000-06-13
CN1516003A (zh) 2004-07-28
EP0968463B1 (en) 2006-09-06
WO1999036845A2 (en) 1999-07-22
KR100715055B1 (ko) 2007-05-07
CN1126027C (zh) 2003-10-29
KR20000076285A (ko) 2000-12-26
TW469407B (en) 2001-12-21

Similar Documents

Publication Publication Date Title
JP2001515635A (ja) 異なった幅のvliwプロセッサコマンド
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
US6467036B1 (en) Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US5649135A (en) Parallel processing system and method using surrogate instructions
US6820223B2 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
US4954943A (en) Data processing system
US20100318775A1 (en) Methods and Apparatus for Adapting Pipeline Stage Latency Based on Instruction Type
US6950926B1 (en) Use of a neutral instruction as a dependency indicator for a set of instructions
US7051193B2 (en) Register rotation prediction and precomputation
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US5958038A (en) Computer processor with two addressable memories and two stream registers and method of data streaming of ALU operation
US6629238B1 (en) Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration
US6807626B1 (en) Execution of a computer program
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
US7062634B1 (en) Processor and a method for handling and encoding no-operation instructions
US7272700B1 (en) Methods and apparatus for indirect compound VLIW execution using operand address mapping techniques
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
US20230015163A1 (en) Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof
JP2007156557A (ja) 並列プロセッサ
JPH05241825A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051226

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070612

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term