JP2007537529A - 多重命令語処理装置におけるフィードバック接続の実行時間選択 - Google Patents

多重命令語処理装置におけるフィードバック接続の実行時間選択 Download PDF

Info

Publication number
JP2007537529A
JP2007537529A JP2007512683A JP2007512683A JP2007537529A JP 2007537529 A JP2007537529 A JP 2007537529A JP 2007512683 A JP2007512683 A JP 2007512683A JP 2007512683 A JP2007512683 A JP 2007512683A JP 2007537529 A JP2007537529 A JP 2007537529A
Authority
JP
Japan
Prior art keywords
result data
register file
register
identifier
issue
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
JP2007512683A
Other languages
English (en)
Other versions
JP2007537529A5 (ja
JP5989293B2 (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
Koninklijke Philips NV
Koninklijke 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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007537529A publication Critical patent/JP2007537529A/ja
Publication of JP2007537529A5 publication Critical patent/JP2007537529A5/ja
Application granted granted Critical
Publication of JP5989293B2 publication Critical patent/JP5989293B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3824Operand accessing
    • 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
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • 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

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)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

処理装置は、複数の命令を有する多重命令語を実行するよう配置される。処理装置は、複数の命令の並列実行のために配置された複数の発行スロットIS1,IS2と、複数の発行スロットによりアクセス可能なレジスタファイルRF1,RF2と、複数の発行スロット及びレジスタの結合のための通信ネットワークCNとを有する。処理装置は、更に、第1の発行スロットIS1によって作られた第1の結果データRD1の妥当性に関する第1の識別子と、第2の発行スロットIS2によって作られた第2の結果データRD2の妥当性に関する第2の識別子とを作るよう配置される。通信ネットワークは、第1の識別子及び第2の識別を使用することにより、単一のプロセッサ周期で、レジスタファイルのレジスタへの第1の結果データ又は第2の結果データのいずれか一方の転送を動的に制御するよう配置された少なくとも1つの選択回路SC1を有する。

Description

本発明は、複数の命令を有する多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロットと、該複数の発行スロットによってアクセス可能なレジスタファイルと、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワークとを有する処理装置に関する。
処理装置は、汎用演算処理装置又は特定用途向け命令セット演算処理装置でありうる。それらは、音、画像及び映像を含む、異なる種類の情報を扱うために使用されうる。特定用途向け命令セット演算処理装置の場合には、プロセッサアーキテクチャ及び命令セットはカスタマイズされる。これは、システムのコスト及び電力消費を著しく低減する。プロセッサアーキテクチャは、通常、制御語の組によって制御される固定データ経路から成る。夫々の制御語は、データ経路の一部を制御し、これらの経路は、算術論理演算ユニット(ALU)又は他の機能ユニットのレジスタアドレス及び演算コードを有しても良い。命令の夫々の組は、通常、2進形式の命令を対応する制御語に変換する命令デコーダによって、又は、マイクロストア、即ち、制御語を直接的に含むメモリによって、制御語の新しい組を発生させる。一般に、制御語は、演算コードと、2つのオペランドレジスタインデックスと、結果レジスタインデックスとを含むRISC型演算を表す。オペランドレジスタインデックス及び結果レジスタインデックスは、レジスタファイル内のレジスタを参照する。
超長命令語(VLIW)処理装置の場合に、多重命令は、所謂VLIW命令と呼ばれる1つの長い命令にまとめられる。VLIW処理装置は、並列にこれらの多重命令を実行するために、複数の独立した機能ユニットを使用する。処理装置は、プログラムにおいて命令レベル並列処理を利用して、ひいては、1度に1よりも多い命令を実行することを可能にする。このような形式の同時処理のために、処理装置の性能は向上する。ソフトウェアプログラムがVLIW処理装置で実行されるために、それは、VLIW命令の組に変換されるべきである。コンパイラは、並列処理を最適化することによってプログラムを実行するために必要とされる時間を最小限とするよう試みる。コンパイラは、単一のVLIW命令へ割り当てられた命令が並列に実行されうる制約下で、且つ、データ依存制約下で、命令をVLIW命令に一体化する。意味のない処理が1又はそれ以上の機能ユニットに対してあるクロック周期で実行されうる場合に、所謂無演算(NOP)命令は、その特定の機能ユニットに関してVLIW命令で符号化される。コードサイズを低減し、ひいては、必要メモリサイズに関して、及び、必要メモリ処理能力に関してコストを節約するために、データ固定VLIW処理装置での無演算(NOP)命令のコンパクトな表現が使用されても良い。例えば、NOP演算は、VLIW命令の前に付けられた特別なヘッダにおいて単一ビットによって符号化され、圧縮されたVLIW命令をもたらす。
処理装置のデータパイプラインでの演算を制御するよう、2つの異なったメカニズムが一般にコンピュータアーキテクチャにおいて使用される。即ち、それは、1997年3月、IEEE会報、vol.85、no.3、G.Goossens、J.van Praet、D.Lanneer、W.Geurts、A.Kifli、C.Liem及びP.Paulinによる「リアルタイム信号処理システムにおける埋め込みソフトウェア:設計技術(Embedded software in real−time signal processing systems:design technologies)」に開示されるような、データ固定及び時間固定符号化である。データ固定符号化の場合には、処理装置の命令セットの一部である全ての命令は、データパイプラインを横切るように、特定のデータ項目で実行されるべき演算の完全な配列を制御する。命令がプログラムメモリから取り出されて復号されると、プロセッサ・コントローラ・ハードウェアは、構成演算(the composing operations)が正確なマシン周期で実行されることを確実にする。時間固定符号化の場合には、処理装置の命令セットの一部である全ての命令は、単一のマシン周期で実行されるべき演算の完全な組を制御する。これらの演算は、データパイプラインを横切る幾つかの異なったデータ項目に適用されても良い。この場合に、データパイプラインをセットアップして維持することは、プログラマ又はコンパイラの責任である。結果として得られるパイプライン・スケジュールは、マシンコードプログラムで完全に目にするができる。時間固定符号化は、より大きなコードサイズを犠牲にして、命令に存在する制御情報を遅延させるために必要なハードウェアのオーバーヘッドを節約するので、特定用途向け演算処理装置でしばしば使用される。
欧州特許番号1.113.356号明細書は、複数の機能ユニットと、レジスタファイルとを有するVLIW処理装置について記載する。復号された命令は機能ユニットへ供給され、入力データはレジスタファイルから供給され、結果データはレジスタファイルへ書き込まれる。
欧州特許番号1.113.356号明細書 1997年3月、IEEE会報、vol.85、no.3、G.Goossens、J.van Praet、D.Lanneer、W.Geurts、A.Kifli、C.Liem及びP.Paulin、「リアルタイム信号処理システムにおける埋め込みソフトウェア:設計技術(Embedde software in real−time signal processing systems:design technologies)」
先行技術の処理装置の欠点は、結果データが無効である、即ち、結果データがレジスタファイルへ書き戻される必要がないことがリアルタイムに決定される場合に、機能ユニットからレジスタファイルへの通信経路が、静的には、即ち、コンパイル時間には、この結果データが有効であるか否かは知られないので、依然として有効にされるべきである点である。
本発明は、2つのことなる演算によって作られた結果データを、単一のプロセッサ周期でレジスタファイルの同じレジスタに書き戻すことを静的にスケジューリングすることを可能にする処理装置を提供することを目的とする。本発明は、共用の通信チャネルでのこれらの結果データの書き戻しを静的にスケジューリングすることを更なる目的とする。
上記目的は、当該処理装置が、更に、第1の発行スロットによって作られた第1の結果データの妥当性に関する第1の識別子と、第2の発行スロットによって作られた第2の結果データの妥当性に関する第2の識別子とを作るよう配置され、前記通信ネットワークが、前記第1の識別子及び前記第2の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第1の結果データ又は前記第2の結果データのいずれか一方の転送を動的に制御するよう配置された少なくとも1つの選択回路を有することを特徴とする、前出のような形式の処理装置により達成される。少なくとも、結果データの妥当性に関する第1又は第2のいずれか一方の識別子が、対応する結果データがレジスタファイルのレジスタへ書き戻される必要がないことを実行時間に示すことが、静的に知られる場合には、第1及び第2の結果データの書き戻しは、単一のプロセッサ周期においてスケジューリングされうる。選択回路は、レジスタファイルへ書き戻されるべき有効な結果データを動的に選択するために識別子を使用する。結果として、2つの異なった演算によって作られた結果データの、レジスタファイルの同じレジスタへの書き戻しは、単一のプロセッサ周期でスケジューリングされうる。
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、更に、前記第1の識別子及び前記第2の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルの前記レジスタへの結果無しデータの転送を動的に制御するよう配置されることを特徴とする。第1及び第2の結果データが両方とも無効である場合に、結果無しデータは、レジスタファイルへ書き戻されるよう選択される。
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、前記第1及び第2の発行スロットの出力へ夫々結合されることを特徴とする。どの結果データがレジスタファイルへ書き戻されるべきかの選択は、発行スロットの出力で直接的に行われる。
本発明に従う処理装置の実施例は、前記通信ネットワークが、共用通信チャネルを介して前記第1の結果データ又は前記第2の結果データのいずれか一方を転送するよう配置されることを特徴とする。この実施例の利点は、他の通信チャネルが、レジスタファイルへ結果データを転送するよう他の発行スロットに利用可能である点である。
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、前記レジスタファイルの入力へ結合されることを特徴としており、前記選択回路を前記発行スロットの出力へ結合する代替案を提供する。
本発明に従う処理装置の実施例は、前記第1の結果データが第1の条件付き演算に対応し、前記第2の結果データが第2の条件付き演算に対応し、前記第1及び第2の条件付き演算が相互排他的な条件を有し、前記第1の識別子が前記第1の条件付き演算の条件の評価に従って設定され、前記第2の識別子が前記第2の条件付き演算の条件の評価に従って設定されることを特徴とする。相互排他的な条件の場合に、識別子の多くとも1つが、対応する結果データが無効であることを示しうることが保証されており、単一のプロセッサ周期で同じレジスタへ両方の結果データを書き戻すことを静的にスケジューリングすることを可能にする。
本発明に従う処理装置の実施例は、前記第1及び第2の発行スロットが、前記結果データの妥当性に関して前記第1及び第2の識別子を作るよう夫々配置されることを特徴とする。この実施例は、レジスタに条件付き演算の保護の結果を格納し、且つ、第1及び第2の識別子の値を夫々決定するために発行スロットの更なる入力値としてそれらを使用することを可能にする。
本発明に従う処理装置の実施例は、前記選択回路が、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第1の発行スロットからの第1の結果データ又は第2の発行スロットからの第2の結果データのいずれか一方の転送を静的に制御するよう配置されることを特徴とする。制御情報を用いると、結果データを書き込むために経由される通信チャネルが選択可能であり、無演算命令の場合に、レジスタファイルへの結果データの書き戻しが防止され得る。
本発明に従う処理装置の実施例は、前記通信ネットワークが、前記レジスタファイルの入力へ結合された第2の選択回路を更に有することを特徴とする。この実施例の利点は、それが、部分的に接続されたネットワークの場合に、命令をスケジューリングする際に更なる柔軟性を提供する点である。
本発明に従う処理装置の実施例は、前記レジスタファイルが、分散レジスタファイルであることを特徴とする。分散レジスタファイルの利点は、それが、レジスタファイルのセグメントごとに、より少ない読み出し及び書き込みポートしか必要としないので、シリコン面積に関してより少ないレジスタファイルで済み、且つ、レジスタファイルの演算の速度を増大させる点である。更に、分散レジスタファイルにおけるレジスタのアドレス指定は、中央レジスタファイルと比べて、より少ないビットしか必要としない。
本発明に従う処理装置の実施例は、前記通信ネットワークが、部分的に接続された通信ネットワークであることを特徴とする。部分的に接続された通信ネットワークは、特に多数の発行スロットの場合に、完全に接続された通信ネットワークと比べて、しばしば、よりタイムクリティカルではなく、コードサイズ、面積及び電力消費に関してより高価ではない。
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、更に、前記結果データの妥当性に関する対応する識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの少なくとも第3の結果データの転送を動的に制御するよう配置されることを特徴とする。選択回路は、結果データを受け取るための2よりも多い入力ポートを有し、且つ、多くとも1つの結果データが有効でありうることが静的に知られる限り、レジスタファイルへ書き戻されるべき多くとも1つの結果データを動的に選択することを可能にする。
図1、3及び5を参照すると、概要ブロック図は、2つのレジスタファイルRF1及びRF2と、2つの発行スロットIS1及びIS2とを有するVLIW処理装置を表す。引数ID1及びID2を夫々読み出すために、レジスタファイルRF1は発行スロットIS1によりアクセス可能であり、レジスタファイルRF2は発行スロットIS2によりアクセス可能である。発行スロットIS1及びIS2は、更に、接続ネットワークCNを介してレジスタファイルRF1及びRF2へ結合されている。接続ネットワークCNは、2つの選択回路SC1及びSC2(図1及び3のみ。)と、2つのマルチプレクサMP1及びMP2(図1のみ。)と、2つのマルチプレクサMP3及びMP4(図5のみ。)と、2つの選択回路SC3及びSC4(図3及び5のみ。)と、2つの通信チャネルCC1及びCC2とを有する。通信チャネルCC1及びCC2は、例えば結果データRDのために32ビット値を、例えば結果有効信号RVのために1ビット値を搬送する。発行スロットIS1及びIS2は、少なくとも1つの機能ユニットを有し、例えば、発行スロットIS1は、演算/論理ユニット及び乗算ユニットを有し、発行スロットIS2は、演算/論理ユニット及び読み込み/記憶ユニットを有する。演算/論理ユニットは、内部に1つもパイプライン段を有さず、7つの異なった演算、即ち、加算、減算、論理AND、論理OR、論理XOR、論理左シフト及び論理右シフトを実行することができる。これら演算は、夫々の演算コードによって制御される。乗算ユニットは、内部に1つのパイプライン段を有し、4つの異なった演算、即ち、符号付き乗算の下位結果、符号付き乗算の上位結果、符号無し乗算の下位結果及び符号無し乗算の上位結果を実行することができる。これら演算も夫々の演算コードによって制御される。演算において、VLIW命令語は、図1、3及び5では図示されていないプログラムメモリから取り出され、これらの命令語は復号される。一般に、VLIW命令語で符号化された命令は、2つのオペランドを必要とし、1つの結果を生成するRISC型演算、並びに、2よりも多いオペランドを消費し、1よりも多い結果を生成しうるカスタム演算を有する。幾つかの命令は、オペランドデータとしての即値を必要としても良い。復号化ステップの結果は、選択信号s1及びs2(図1のみ。)と、選択信号s3及びs4(図5のみ。)と、選択信号c1、c2、c3及びc4(図1及び3のみ。)と、選択信号c5、c6、c7及びc8(図3及び5のみ。)とである。復号化ステップの更なる結果は、対応する発行スロットによって実行されるべき演算を決定する、発行スロットIS1及びIS2のための、図1、3及び5には図示されていない演算コードと、対応する発行スロットによって実行される演算のための引数が読み出されるべきレジスタファイルRF1及びRF2からのレジスタを示す、図1、3及び5には図示されていないレジスタインデックスと、結果データが書き込まれるべきレジスタファイルRF1及びRF2からの、図1、3及び5には図示されていないレジスタインデックスとである。演算コード及び引数ID1及びID2は、夫々、発行スロットIS1及びIS2へ供給される。発行スロットIS1及びIS2は、その演算コードによって決定される演算を実行し、結果データRD1及びRD2と、対応する結果データの妥当性を示す出力有効信号OV1及びOV2を夫々作る。出力有効信号は、例えば、1ビット値である。結果データが妥当でない、即ち、結果データがレジスタファイルRF1又はRF2へ書き戻される必要がない場合に、対応する出力有効信号は、結果データを作る発行スロットにより偽に設定される。図1及び3を参照すると、結果データRD1及び出力有効信号OV1並びに結果データRD2及び出力有効信号OV2は、選択回路SC1及びSC2の両方へ供給されている。更に説明すると、出力有効信号OV1及びOV2並びに選択信号c1及びc2の制御下で、選択回路SC1は、通信チャネルCC2を介するマルチプレクサMP1及びMP2への(図1)、あるいは、選択回路SC3及びSC4への(図3)結果データRD及び結果有効信号RVとしての転送のために、結果データRD1及び出力有効信号OV1、又は、結果データRD2及び出力有効信号OV2のいずれか一方を選択する。同じように、出力有効信号OV1及びOV2並びに選択信号c3及びc4の制御下で、選択回路SC2は、通信チャネルCC1を介するマルチプレクサMP1及びMP2への(図1)、あるいは、選択回路SC3及びSC4への(図3)結果データRD及び結果有効信号RVとしての転送のために、結果データRD1及び出力有効信号OV1、又は、結果データRD2及び出力有効信号OV2のいずれか一方を選択する。図5を参照すると、選択信号s3及びs4の制御下で、通信チャネルCC1及びCC2は、結果データRD及び結果有効信号RVとして、選択回路SC3及びSC4へ、結果データRD1及び対応する出力有効信号OV1を書き込むために、又は、結果データRD2及び対応する出力有効信号OV2を書き込むために、マルチプレクサMP3及びMP4によって夫々選択される。図1、3及び5を参照すると、代わりの実施例において、発行スロットIS1及びIS2の1又はそれ以上の機能ユニットは、例えば、更なる引数が保護信号として使用されるところの保護動作を支持する。条件付き演算を支持する時間固定多重命令語処理装置は、本願出願人によって出願された先行の欧州特許出願番号03101038.2[代理人明細PHNL030384EPP]に記載されている。条件付き演算の場合に、保護信号の値は決定されて、更なる引数としてレジスタファイルRF1又はRF2に格納される。条件付き演算を実行する場合に、保護信号の値は、対応する出力有効信号OV1又はOV2の値を設定するために使用される。保護信号の値が真に等しい場合には、そうでない場合に出力有効信号が対応する発行スロットによって偽に設定されないならば、対応する出力有効信号は真に設定される。保護信号の値が偽に等しい場合には、対応する出力有効信号は偽に設定される、即ち、対応する結果データは無効とされ、従って、レジスタファイルRF1又はRF2へは書き戻されない。代替的に、保護信号は、演算を実行する場合に更なる引数として取られないが、対応する機能ユニットのパイプラインに従って遅延され、その機能ユニットの出力有効信号との論理積を演算される。結果として、保護信号の値が偽である場合には、保護信号及び出力有効信号の論理積値は、同じく偽であり、対応する結果データを無効にするために使用される。
図1を参照すると、選択信号s2の制御下で、マルチプレクサMP1は、レジスタファイルRF1への結果データRDの書き込みのための通信チャネルCC1又はCC2を選択する。結果有効信号RVが真である場合に、レジスタファイルRF1への結果データRDの書き込みは可能にされ、そうでない場合には、レジスタファイルRF1への結果データRDの書き込みは、無能力にされる、即ち、結果データRDは、レジスタファイルRF1へ書き戻されない。結果有効信号RVが真に等しい場合に、結果データRDは、VLIW命令語から導出されたレジスタアドレスの制御下で選択されたレジスタファイルRF1のレジスタへ書き込まれる。同じように、選択信号s1の制御下で、マルチプレクサMP2は、レジスタファイルRF2への結果データRDの書き込みのための通信チャネルCC1又はCC2を選択する。結果有効信号RVが真である場合に、レジスタファイルRF2への結果データRDの書き込みは可能にされ、そうでない場合には、レジスタファイルRF2への結果データRDの書き込みは、無能力にされる、結果有効信号RVが真に等しい場合に、結果データRDは、VLIW命令語から導出されたレジスタアドレスの制御下で選択されたレジスタファイルRF2のレジスタへ書き込まれる。
選択回路SC1及びSC2の実施例が図2に示される。選択回路SC3及びSC4は、同一の実施例を有する。出力有効信号OV1及び選択信号c1は、ANDゲート201へ入力されている。出力有効信号OV2及び選択信号c2は、ANDゲート203へ入力されている。ANDゲート201の出力及び結果データRD1は、ANDゲート205へ入力されている。ANDゲート203の出力及び結果データRD2は、ANDゲート207へ入力されている。ANDゲート201及びANDゲート203の出力は、また、ORゲート209へ入力されている。ORゲート209は、結果有効信号RVを出力する。ANDゲート205及びANDゲート207の出力は、ORゲート211へ入力されている。ORゲート211は、結果データRDを出力する。出力有効信号OV1及びOV2、選択信号c1及びc2並びに結果有効信号RVは、例えば、1ビット値であり、一方、結果データRD1、RD2及びRDは、例えば、32ビットである。結果データRD1又はRD2が無効とされる場合に、選択回路は、その結果データがORゲート211によって出力されることを妨げる。結果データRD1は、出力有効信号OV1若しくは選択信号c1又はその両方が偽に等しい場合に無効とされる。結果データRD2は、出力有効信号OV2若しくは選択信号c2又はその両方が偽に等しい場合に無効とされる。従って、結果データRD1は、出力有効信号OV1が発行スロットIS1によって偽に設定される場合に、動的に無効とされる。結果データRD2は、出力有効信号OV2が発行スロットIS2によって偽に設定される場合に動的に無効とされる。結果として、結果データRD1若しくは結果データRD2のいずれか一方、又は、結果無しデータが、レジスタファイルへ書き戻されるよう選択される。VLIW命令の符号化の間に、レジスタファイルRF1又はRF2の同じレジスタへの2つの結果データ値の書き戻しは、それらの多くとも1が有効であるならば、単一のプロセッサ周期で安全に符号化され得る。この条件が満たされるための例は、“if−then−else”構文の場合である。以下のプログラム形式を考える:
Figure 2007537529
2つの演算“x=a+b”及び“x=a−b”の条件は相互排他的であり、これらの条件は、夫々、発行スロットIS1及びIS2の機能ユニットによって実行される。第1又は第2のいずれかの条件の結果は、変数xによって参照されるレジスタRF1の同一のレジスタへ書き込まれるべきである。条件は別の命令で評価され、保護の値はレジスタファイルRF1に格納され、その補数はレジスタファイルRF2に格納される。VLIW命令は、いずれの演算も同じVLIW命令語で符号化され、選択信号c1及びc2が両方とも真に設定され、選択信号c3及びc4が両方とも偽に設定されるように符号化される。結果として、演算“x=a+b”は発行スロットIS1によって実行され、演算“x=a−b”は発行スロットIS2によって実行される。発行スロットIS1は、保護信号、即ち、条件の評価が真に等しいとすると、結果データRD1を出力し、このとき、対応する出力有効信号OV1は真に等しい。発行スロットIS2は、結果データRD2を出力し、このとき、対応する出力有効信号OV2は偽に等しい。結果データRD2は、選択回路SC1によって無効とされ、一方、結果データRD1は有効であって、出力回路SC1は、通信チャネルCC2を介して結果データRDとして結果データRD1を出力し、このとき、対応する結果有効信号RVは真に等しい。選択回路SC2は、選択信号c3及びc4は両方とも偽であるから、有効な結果データRDを出力しない。図1を参照すると、選択信号s2を用いて、通信チャネルCC2は、マルチプレクサMP1によって選択され、結果データRD1は、レジスタファイルRF1の適切なレジスタへ書き戻される。図3及び5を参照すると、選択信号c6を真に、選択信号c5、c7及びc8を偽に設定することにより、結果データRD1は、通信チャネルCC2に対応する結果データRDが有効である、即ち、対応する結果有効信号RVが真に等しく、一方、通信チャネルCC1に対応する結果データRDが無効であって、更に選択信号c5が偽に設定されているから、レジスタRF1の適切なレジスタへ書き戻される。選択回路SC1は、結果データRD1及びRD2の少なくとも1つを無効とするために出力有効信号OV1及びOV2を使用することにより、単一のプロセッサ周期で、上記プログラム部分で示された両演算からの結果データの書き戻しのスケジューリングをすることを可能にする。結果として、両演算からの結果データの書き戻しは、選択回路SC2の代わりに、従来のマルチプレクサが使用される場合に有しうるような、2つの異なるプロセッサ周期でスケジューリングされる必要はない。更に、結果データRD1及びRD2の書き戻しは、共用の通信チャネルCC2でスケジューリングされ、例えば、第3の発行スロットが存在し、通信チャネルCC1へ結合されている場合に結果データを書き戻すために、他の通信チャネルCC1を空いたままとする。代わりの実施例では、選択信号c1及びc4の値は真に設定され、選択信号c2及びc3の値は偽に設定される。上記実施例で、結果データRD1は有効であって、通信チャネルCC2を介して結果データRDとして出力される。このとき、対応する結果有効信号RVは、真に等しい。結果データRD2は、選択信号c2が偽に等しいので、選択回路SC1によって無効とされる。選択回路SC2は、選択信号c3が偽に設定され、結果データRD2が偽に等しい出力有効信号OV2によって無効とされるので、有効な結果データRDを出力しない。図1、3及び5に従うVLIW処理装置によって実行可能なVLIW命令を符号化する場合に、レジスタファイルRF1又はRF2の同一のレジスタへの2つの結果データの書き戻しは、これらの結果データの多くとも1が有効であることが静的に証明されうる場合に単一のプロセッサ周期でスケジューリングされ、その場合でさえ、書き戻しは、共用の通信チャネルCC1又はCC2でスケジューリングされうるが、2つの有効な結果データが単一のプロセッサ周期でレジスタファイルRF1又はRF2の同一のレジスタへ書き戻されることが静的に妨げされるべきである。選択信号c1〜c4の値は、静的に、即ち、コンパイル時間で決定され、レジスタファイルRF1及びRF2へ結果データを書き戻すよう通信チャネルCC1及び/又はCC2を選択するために使用される。図1及び3に従うVLIW処理装置の他の利点は、命令セットで専用の無演算命令を符号化することが不要である点である。無演算命令が発行スロットIS1でスケジューリングされる場合に、例えば、発行スロットIS1によって作られる全ての結果データは、選択信号c1及びc3を用いて無効とされ、無演算命令を符号化するための任意の演算コードが使用され得る。有利に、命令は、無演算命令がスケジューリングされる場合に、無演算命令を表す範囲を符号化するために使用された値が同じ発行スロットに対する隣り合った命令から可能な限り繰り返されるように、符号化される。結果として、VLIW処理装置での対応する組み合わせ論理は、先行する又は連続する周期での値と同じ値と、データ遷移の必然的により少ないリップリング(rippling)とを搬送する。従って、不要な電力消費が生ずる。同様に、図5を参照すると、選択信号c5及びc7は、その発行スロットに対してスケジューリングされた無演算命令の場合に、発行スロットIS1によって作られた全ての結果データを無効とするために使用されうる。
図3を参照すると、発行スロットの両出力での選択回路、即ち、選択回路SC1及びSC2、並びに、レジスタファイルの入力での選択回路、即ち、選択回路SC3及びSC4の存在は、それが、部分的に接続された通信ネットワークの場合に、命令のスケジューリングにおいて更なる柔軟性を提供するという利点を有する。多数の発行スロットの場合に、全体的に接続された通信ネットワークのオーバーヘッドは、シリコン面積、遅延及び電力消費に関して相当なものとなりうる。VLIW処理装置の設計の間に、どの程度発行スロットがレジスタファイルへ結合されるかが、実行されるべきアプリケーションの範囲に依存して決定される。図4を参照すると、部分相互接続を有するVLIW処理装置が示される。VLIW処理装置は、発行スロットIS1、IS2及びIS3によって夫々アクセス可能な3つのレジスタファイルRF1、RF2及びRF3を有する。簡単のために、接続ネットワークCNは、発行スロットIS1、発行スロットIS2及び発行スロットIS3の出力と、レジスタファイルRF1、レジスタファイルRF2及びレジスタファイルRF3の入力とへ実際に結合されている選択回路を伴わずに示されている。発行スロットIS1は、通信チャネルCC2を介してしかレジスタファイルへ結果データを書き戻すことができず、発行スロットIS3は、通信チャネルCC1を介してしかレジスタファイルへ結果データを書き戻すことができない。即ち、VLIW処理装置は、部分的に接続されたネットワークを有する。やはり簡単のために、通信チャネルCC1及びCC2は、単線として示されているが、実際には、結果データRD及び結果有効信号RVの両方の値を伝える。以下のプログラム部分がVLIW処理装置によって実行されるべきであるとする:
Figure 2007537529
保護演算が発行スロットIS1、IS2及びIS3によって実行され得るとすると、これらの演算は3つの演算としてスケジュールを決められうる:
Figure 2007537529
演算1は発行スロットIS1によって実行され、演算2は発行スロットIS2によって実行され、演算3は発行スロットIS3によって実行される。演算1及び2の変数xは、レジスタファイルRF1又はRF2の同じレジスタを参照する。発行スロットIS1及びIS2は、共用のチャネルとしての通信チャネルCC2を用いて、適切なレジスタファイルへ単一のプロセッサ周期でそれらの夫々の結果データを書き込むことができ、発行スロットIS3は、通信チャネルCC1を介して適切なレジスタファイルへその結果データを書き込むことができる。代替的に、発行スロットIS2が演算として加算及び減算を支持しない場合には、演算1は発行スロットIS1によって実行可能であり、演算2は発行スロットIS3によって実行可能である。しかし、発行スロットIS1及びIS3は共通の通信チャネルへ結合されていないので、夫々の結果データは、通信チャネルCC2及びCC1を夫々介して適切なレジスタファイルへ書き込まれるべきである。レジスタファイルRF1及びRF2が単一のポートレジスタファイルである、即ち、1つの値しか、単一のプロセッサ周期でレジスタファイルに書き込まれることができないとすると、発行スロットIS1及びIS3の結果データの書き戻しは、レジスタファイルRF1、RF2及びRF3の入力での選択回路が対応する結果有効信号の値を用いて有効な結果データを動的に選択しうるので、依然として単一のプロセッサ周期でスケジューリングされうる。マルチプレクサが、選択回路の代わりに、レジスタファイルRF1、RF2及びRF3の入力に存在する場合には、通信チャネルCC1又はCC2の選択は静的に行われるべきであり、その場合に、発行スロットIS1及びIS3からの結果データの書き戻しは、単一のプロセッサ周期の代わりに2つの別々のプロセッサ周期でスケジューリングされるべきでありうる。従って、適切な場合に発行スロットの出力及びレジスタファイルの入力の両方で選択回路を有することは、命令のスケジューリングにおける柔軟性を増大させ、従って、より密な命令スケジュールを可能にする。
図5を参照すると、代わりの実施例において、レジスタファイルRF1及びRF2へ結果データRD1又はRD2を書き込むための通信チャネルCC1又はCC2の選択は、選択信号s3及びs4を用いて、マルチプレクサMP3及びMP4を介して行われる。選択回路SC3及びSC4を用いると、選択信号c5、c6、c7及びc8の制御下で、有効な結果データRD1又はRD2しか、レジスタファイルRF1又はRF2のレジスタへ書き込まれない。最初のプログラム部分を参照すると、両演算からの結果データの書き戻しは、単一のプロセッサ周期でスケジューリングされうる。発行スロットIS1での第1の演算及び発行スロットIS2での第2の演算を夫々実行し、同じプロセッサ周期でレジスタファイルRF1のレジスタでの結果データの書き戻しをスケジューリングすることによって、通信チャネルCC2及び通信チャネルCC1を夫々介して、結果データRD1又は結果データRD2のいずれか一方に対応する結果データRDは、選択回路SC3によって無効とされる。従って、有効な結果データRDしか、レジスタファイルRF1のレジスタへ書き戻されない。
図6を参照すると、選択回路SC1の代わりの実施例が示されている。選択回路SC1は、マルチプレクサ605を有する。マルチプレクサ605は、ANDゲート603によって供給される信号の制御下で、レジスタファイルRF1及び/又はRF2へ結果データRDとして書き戻されるべき結果データRD1又はRD2のいずれか一方を選択する。出力有効信号OV1及び選択信号c1は、ANDゲート601へ入力される。出力有効信号OV2及び選択信号c2は、ANDゲート603へ入力される。ANDゲート601及びANDゲート603の両方の出力は、ORゲート607へ入力される。ANDゲート603の出力は、また、レジスタファイルへ結果データRDとして書き込まれるべきいずれか一方の結果RD1又はRD2の選択を制御するために、マルチプレクサ605へ入力される。ORゲート607は、結果有効信号RVを出力する。結果データRD2は、選択信号c2及び出力有効信号OV2が両方とも真に等しい場合に結果データRDとして書き戻されるよう選択され、そうでない場合には、結果データRD1が結果データRDとして書き戻されるよう選択される。結果有効信号RVの値は、選択信号c1及びc2並びに出力有効信号OV1及びOV2の値によって、ANDゲート601及び602並びにORゲート607を用いて決定される。結果有効信号RVが偽に等しい場合には、対応する結果データRDは、実際にはレジスタファイルに書き込まれ得ない。同様に、選択回路SC2、SC3及びSC4は、この代わりの実施例を有しうる。
他の実施例では、選択回路SC1、SC2、SC3又はSC4は、3又はそれ以上の入力ポートを有しており、レジスタファイルへ書き戻されるべき3又はそれ以上の結果データから結果データを動的に選択することを可能にする。夫々の結果データは、対応する出力有効信号を有する。出力有効信号の多くとも1つが実行時間に有効でありうることがコンパイル時間に知られる場合に、結果データの書き戻しは、単一のプロセッサ周期で安全にスケジューリングされうる。
他の実施例では、処理装置は、レジスタファイルRF0及びRF1を有する分散レジスタファイルの代わりに、単一のレジスタファイルを有する。VLIW処理装置の発行スロットの数が比較的小さい場合には、単一のレジスタファイルのオーバーヘッドも同様に比較的小さい。
他の実施例では、VLIW処理装置は、異なる多数の発行スロットを有し、且つ/あるいは、発行スロットは、異なる多数の機能ユニットを有しうる。機能ユニットの数は、VLIW処理装置がとりわけ実行すべきアプリケーションの種類に依存する。処理装置は、また、前出の発行スロットへ接続された異なる多数のレジスタファイルを有しても良い。
他の実施例では、発行スロットIS0及びIS1は、発行スロットが実行すべき演算、即ち、2よりも多いオペランドを必要とし、且つ/あるいは、1よりも多い結果を作る演算の種類に依存して、異なる多数の入力及び/又は出力ポートを有しうる。レジスタファイルRF0及び/又はRF1は、また、異なる多数の読み出し及び/又は書き込みポートを有しても良い。
留意すべきは、上述した実施例は本発明を限定するのではなく説明しているのであって、添付の特許請求の範囲の適用範囲を損なわない範囲で多数の代わりの実施例を設計することが当業者には可能であることである。特許請求の範囲において、括弧内に置かれた如何なる参照符号も、請求を限定するよう解釈されるべきではない。語「有する」は、請求項に挙げられた以外の要素又はステップの存在を認めないわけではない。要素の前に置かれた語「1つの」は、このような要素の複数個の存在を認めないわけではない。幾つかの手段を列挙する装置クレームでは、これらの手段の幾つかは、ハードウェアの同一の物品によって具現化され得る。ある手段が相互に異なる請求項に挙げられているという単なる事実は、これらの手段の組合せが有利に使用され得ないことを示しているわけではない。
本発明に従うVLIWの概要ブロック図を示す。 選択回路の実施例の概要ブロック図を示す。 本発明に従う代替のVLIW処理装置の概要ブロック図を示す。 本発明に従う更に代替のVLIW処理装置の概要ブロック図を示す。 本発明に従う他の代わりのVLIW処理装置の概要ブロック図を示す。 選択回路の代替の実施例の概要ブロック図を示す。

Claims (12)

  1. 複数の命令を有する多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロットと、該複数の発行スロットによりアクセス可能なレジスタファイルと、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワークとを有する処理装置であって、
    更に、第1の発行スロットによって作られた第1の結果データの妥当性に関する第1の識別子と、第2の発行スロットによって作られた第2の結果データの妥当性に関する第2の識別子とを作るよう配置され、
    前記通信ネットワークは、前記第1の識別子及び前記第2の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第1の結果データ又は前記第2の結果データのいずれか一方の転送を動的に制御するよう配置された少なくとも1つの選択回路を有する、
    ことを特徴とする処理装置。
  2. 前記少なくとも1つの選択回路は、更に、前記第1の識別子及び前記第2の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルの前記レジスタへの結果無しデータの転送を動的に制御するよう配置される、ことを特徴とする請求項1記載の処理装置。
  3. 前記少なくとも1つの選択回路は、前記第1及び第2の発行スロットの出力へ夫々結合される、ことを特徴とする請求項1記載の処理装置。
  4. 前記通信ネットワークは、共用通信チャネルを介して前記第1の結果データ又は前記第2の結果データのいずれか一方を転送するよう配置される、ことを特徴とする請求項3記載の処理装置。
  5. 前記少なくとも1つの選択回路は、前記レジスタファイルの入力へ結合される、ことを特徴とする請求項1記載の処理装置。
  6. 前記第1の結果データは、第1の条件付き演算に対応し、前記第2の結果データは、第2の条件付き演算に対応し、前記第1及び第2の条件付き演算は、相互排他的な条件を有し、
    前記第1の識別子は、前記第1の条件付き演算の条件の評価に従って設定され、前記第2の識別子は、前記第2の条件付き演算の条件の評価に従って設定される、
    ことを特徴とする請求項1記載の処理装置。
  7. 前記第1及び第2の発行スロットは、前記結果データの妥当性に関して前記第1及び第2の識別子を作るよう夫々配置される、ことを特徴とする請求項6記載の処理装置。
  8. 前記選択回路は、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第1の発行スロットからの第1の結果データ又は第2の発行スロットからの第2の結果データのいずれか一方の転送を静的に制御するよう配置される、ことを特徴とする請求項1記載の処理装置。
  9. 前記通信ネットワークは、前記レジスタファイルの入力へ結合された第2の選択回路を更に有する、ことを特徴とする請求項3記載の処理装置。
  10. 前記レジスタファイルは、分散レジスタファイルである、ことを特徴とする請求項1記載の処理装置。
  11. 前記通信ネットワークは、部分的に接続された通信ネットワークである、ことを特徴とする請求項1記載の処理装置。
  12. 前記少なくとも1つの選択回路は、更に、前記結果データの妥当性に関する対応する識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの少なくとも第3の結果データの転送を動的に制御するよう配置される、ことを特徴とする請求項1記載の処理装置。
JP2007512683A 2004-05-13 2005-05-09 多重命令語処理装置におけるフィードバック接続の実行時間選択 Expired - Fee Related JP5989293B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04102109.8 2004-05-13
EP04102109 2004-05-13
PCT/IB2005/051502 WO2005111793A2 (en) 2004-05-13 2005-05-09 Run-time selection of feed-back connections in a multiple-instruction word processor

Publications (3)

Publication Number Publication Date
JP2007537529A true JP2007537529A (ja) 2007-12-20
JP2007537529A5 JP2007537529A5 (ja) 2011-09-01
JP5989293B2 JP5989293B2 (ja) 2016-10-05

Family

ID=34966680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007512683A Expired - Fee Related JP5989293B2 (ja) 2004-05-13 2005-05-09 多重命令語処理装置におけるフィードバック接続の実行時間選択

Country Status (6)

Country Link
US (1) US7937572B2 (ja)
EP (1) EP1751655A2 (ja)
JP (1) JP5989293B2 (ja)
KR (1) KR101147190B1 (ja)
CN (1) CN1950797A (ja)
WO (1) WO2005111793A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250916B2 (en) * 2013-03-12 2016-02-02 International Business Machines Corporation Chaining between exposed vector pipelines
CN104317555B (zh) * 2014-10-15 2017-03-15 中国航天科技集团公司第九研究院第七七一研究所 Simd处理器中写合并和写撤销的处理装置和方法
US10802754B2 (en) * 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection
US10423218B1 (en) 2018-03-12 2019-09-24 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
JPH0926878A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp データ処理装置
JP2001515628A (ja) * 1997-12-29 2001-09-18 トリメディア テクノロジーズ インコーポレイテッド 極長命令語(vliw)プロセッサ
JP2002116916A (ja) * 2000-10-04 2002-04-19 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びこれを用いたコンパイラ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
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
US5668985A (en) * 1994-03-01 1997-09-16 Intel Corporation Decoder having a split queue system for processing intstructions in a first queue separate from their associated data processed in a second queue
US5581717A (en) * 1994-03-01 1996-12-03 Intel Corporation Decoding circuit and method providing immediate data for a micro-operation issued from a decoder
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
JPH1124929A (ja) * 1997-06-30 1999-01-29 Sony Corp 演算処理装置およびその方法
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6157988A (en) * 1997-08-01 2000-12-05 Micron Technology, Inc. Method and apparatus for high performance branching in pipelined microsystems
JP3472504B2 (ja) * 1998-03-11 2003-12-02 松下電器産業株式会社 命令解読方法、命令解読装置及びデータ処理装置
US6535984B1 (en) * 1998-11-25 2003-03-18 Texas Instruments Incorporated Power reduction for multiple-instruction-word processors with proxy NOP instructions
US6442678B1 (en) * 1998-12-31 2002-08-27 Intel Corporation Method and apparatus for providing data to a processor pipeline
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
US7269719B2 (en) * 2002-10-30 2007-09-11 Stmicroelectronics, Inc. Predicated execution using operand predicates
US7159103B2 (en) * 2003-03-24 2007-01-02 Infineon Technologies Ag Zero-overhead loop operation in microprocessor having instruction buffer
US20040210886A1 (en) * 2003-04-15 2004-10-21 Sverre Jarp Optimized switch statement code employing predicates

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
JPH0926878A (ja) * 1995-07-12 1997-01-28 Mitsubishi Electric Corp データ処理装置
JP2001515628A (ja) * 1997-12-29 2001-09-18 トリメディア テクノロジーズ インコーポレイテッド 極長命令語(vliw)プロセッサ
JP2002116916A (ja) * 2000-10-04 2002-04-19 Internatl Business Mach Corp <Ibm> プログラムの最適化方法及びこれを用いたコンパイラ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012067770; 池井 満: IA-64プロセッサ基本講座 第1版, 20000825, 93頁〜103頁, 株式会社オーム社 *

Also Published As

Publication number Publication date
US20070174590A1 (en) 2007-07-26
CN1950797A (zh) 2007-04-18
KR101147190B1 (ko) 2012-05-25
WO2005111793A3 (en) 2006-08-17
KR20070022260A (ko) 2007-02-26
EP1751655A2 (en) 2007-02-14
JP5989293B2 (ja) 2016-10-05
US7937572B2 (en) 2011-05-03
WO2005111793A2 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
KR100236527B1 (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리
US6839828B2 (en) SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode
US6826674B1 (en) Program product and data processor
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
JPH0728761A (ja) 非対称ベクトルマルチプロセッサ
JP3781519B2 (ja) プロセッサの命令制御機構
JP5989293B2 (ja) 多重命令語処理装置におけるフィードバック接続の実行時間選択
JP4828409B2 (ja) タイムステーショナリプロセッサにおける条件動作のためのサポート
CN113703845B (zh) 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法
JP5122277B2 (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
CN110045989B (zh) 一种动态切换式低功耗处理器
JP2006164279A (ja) プロセッサ・アーキテクチャ
KR101099828B1 (ko) 프로세싱 시스템, 이 프로세싱 시스템에 의해서 인스트럭션의 집합을 실행하는 vliw 프로세서, 방법 및 컴퓨터 판독가능한 저장 매체
JP2006520957A (ja) マルチプロセッサシステムのタイプ変換ユニット
WO2005036384A2 (en) Instruction encoding for vliw processors
JP2000099329A (ja) プロセッサ
JP2001195252A (ja) マスク技術による無効で分岐効率向上を図るプロセッサ

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071024

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110414

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110516

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110620

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110714

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120710

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130502

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130619

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140310

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140313

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140815

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160810

R150 Certificate of patent or registration of utility model

Ref document number: 5989293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees