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

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

Info

Publication number
JP5989293B2
JP5989293B2 JP2007512683A JP2007512683A JP5989293B2 JP 5989293 B2 JP5989293 B2 JP 5989293B2 JP 2007512683 A JP2007512683 A JP 2007512683A JP 2007512683 A JP2007512683 A JP 2007512683A JP 5989293 B2 JP5989293 B2 JP 5989293B2
Authority
JP
Japan
Prior art keywords
result data
register file
issue
register
result
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
JP2007512683A
Other languages
English (en)
Other versions
JP2007537529A5 (ja
JP2007537529A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
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
    • 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
    • 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)

Description

【技術分野】
【0001】
本発明は、複数の命令を有する多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロットと、該複数の発行スロットによってアクセス可能なレジスタファイルと、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワークとを有する超長命令語処理装置に関する。
【背景技術】
【0002】
処理装置は、汎用演算処理装置又は特定用途向け命令セット演算処理装置でありうる。それらは、音、画像及び映像を含む、異なる種類の情報を扱うために使用されうる。特定用途向け命令セット演算処理装置の場合には、プロセッサアーキテクチャ及び命令セットはカスタマイズされる。これは、システムのコスト及び電力消費を著しく低減する。プロセッサアーキテクチャは、通常、制御語の組によって制御される固定データ経路から成る。夫々の制御語は、データ経路の一部を制御し、これらの経路は、算術論理演算ユニット(ALU)又は他の機能ユニットのレジスタアドレス及び演算コードを有しても良い。命令の夫々の組は、通常、2進形式の命令を対応する制御語に変換する命令デコーダによって、又は、マイクロストア、即ち、制御語を直接的に含むメモリによって、制御語の新しい組を発生させる。一般に、制御語は、演算コードと、2つのオペランドレジスタインデックスと、結果レジスタインデックスとを含むRISC型演算を表す。オペランドレジスタインデックス及び結果レジスタインデックスは、レジスタファイル内のレジスタを参照する。
【0003】
超長命令語(VLIW)処理装置の場合に、多重命令は、所謂VLIW命令と呼ばれる1つの長い命令にまとめられる。VLIW処理装置は、並列にこれらの多重命令を実行するために、複数の独立した機能ユニットを使用する。処理装置は、プログラムにおいて命令レベル並列処理を利用して、ひいては、1度に1よりも多い命令を実行することを可能にする。このような形式の同時処理のために、処理装置の性能は向上する。ソフトウェアプログラムがVLIW 処理装置で実行されるために、それは、VLIW命令の組に変換されるべきである。コンパイラは、並列処理を最適化することによってプログラムを実行するために必要とされる時間を最小限とするよう試みる。コンパイラは、単一のVLIW命令へ割り当てられた命令が並列に実行されうる制約下で、且つ、データ依存制約下で、命令をVLIW命令に一体化する。意味のない処理が1又はそれ以上の機能ユニットに対してあるクロック周期で実行されうる場合に、所謂無演算(NOP)命令は、その特定の機能ユニットに関してVLIW命令で符号化される。コードサイズを低減し、ひいては、必要メモリサイズに関して、及び、必要メモリ処理能力に関してコストを節約するために、データ固定VLIW処理装置での無演算(NOP)命令のコンパクトな表現が使用されても良い。例えば、NOP演算は、VLIW命令の前に付けられた特別なヘッダにおいて単一ビットによって符号化され、圧縮されたVLIW命令をもたらす。
【0004】
処理装置のデータパイプラインでの演算を制御するよう、2つの異なったメカニズムが一般にコンピュータアーキテクチャにおいて使用される。即ち、それは、1997年3月、IEEE会報、vol.85、no.3、G.Goosens、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)が正確なマシン周期で実行されることを確実にする。時間固定符号化の場合には、処理装置の命令セットの一部である全ての命令は、単一のマシン周期で実行されるべき演算の完全な組を制御する。
これらの演算は、データパイプラインを横切る幾つかの異なったデータ項目に適用されても良い。この場合に、データパイプラインをセットアップして維持することは、プログラマ又はコンパイラの責任である。結果として得られるパイプライン・スケジュールは、マシンコードプログラムで完全に目にするができる。時間固定符号化は、より大きなコードサイズを犠牲にして、命令に存在する制御情報を遅延させるために必要なハードウェアのオーバーヘッドを節約するので、特定用途向け演算処理装置でしばしば使用される。
【0005】
欧州特許番号1,113,356号明細書は、複数の機能ユニットと、レジスタファイルとを有するVLIW処理装置について記載する。復号された命令は機能ユニットへ供給され、入力データはレジスタファイルから供給され、結果データはレジスタファイルへ書き込まれる。
【特許文献1】欧州特許番号1,113,356号明細書
【非特許文献1】1997年3月、IEEE会報、vol.85、no.3、G.Goosens、J.van Praet、D.Lanneer、W.Geurts、A.Kifli、C.Liem及びP.Paulinによる「リアルタイム信号処理システムにおける埋め込みソフトウェア:設計技術(Embedded software in real−time signal processing systems:design technologies)」
【発明の開示】
【発明が解決しようとする課題】
【0006】
先行技術の処理装置の欠点は、結果データが無効である、即ち、結果データがレジスタファイルへ書き戻される必要がないことがリアルタイムに決定される場合に、機能ユニットからレジスタファイルへの通信経路が、静的には、即ち、コンパイル時間には、この結果データが有効であるか否かは知られないので、依然として有効にされるべきである点である。
【0007】
本発明は、2つのことなる演算によって作られた結果データを、単一のプロセッサ周期レジスタファイルの同じレジスタに書き戻すことをコンパイル時間でスケジューリングすることを可能にする処理装置を提供することを目的とする。本発明は、共用の通信チャネルでのこれらの結果データの書き戻しをコンパイル時間でスケジューリングすることを更なる目的とする。
【課題を解決するための手段】
【0008】
上記目的は、超長命令語処理装置が、複数の命令を有し、処理コードを結果として生ずるようにデコードされた、多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロット(IS1,IS2)と、該複数の発行スロットによりアクセス可能なレジスタファイル(RF1,RF2)と、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワーク(CN)とを有する超長命令語処理装置であって、
前記処理装置の前記第1の発行スロットは、演算コードおよび引数(ID1)がともに供給されるとき、前記演算コードによって決定される演算を実行し、第1の結果データ(RD1)と前記第1の発行スロットにより生成された前記第1の結果データの有効性に基づいた第1の識別子(OV1)を生成するように配置されるとともに、前記処理装置の前記第2の発行スロットは、演算コードおよび引数(ID2)がともに供給されるとき、前記演算コードによって決定される演算を実行し、第2の結果データ(RD2)と前記第2の発行スロットにより生成された前記第2の結果データの有効性に基づいた第2の識別子(OV2)を生成するように配置され、前記通信ネットワークは、前記第1の識別子及び前記第2の識別子を用いて、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第1の結果データ又は前記第2の結果データのいずれか一方の転送をランタイム(実行時間)で制御するよう配置され、前記第1及び第2の発行スロット(IS1,IS2)の結果データ出力に結合された入力と、前記レジスタファイル(RF1,RF2)に結合された出力を有する少なくとも1つの選択回路を有する、ことを特徴とすることによって達成される。少なくとも、結果データの有効性に関する第1又は第2のいずれか一方の識別子が、対応する結果データがレジスタファイルのレジスタへ書き戻される必要がないことをランタイム中に示すことが、コンパイル時間内で知られる場合には、第1及び第2の結果データの書き戻しは、単一のプロセッサ周期、においてスケジューリングされうる。選択回路は、レジスタファイルへ書き戻されるべき有効な結果データをランタイムで選択するために識別子を使用する。結果として、2つの異なった演算によって作られた結果データの、レジスタファイルの同じレジスタへの書き戻しは、単一のプロセッサ周期でスケジューリングされうる。
【0009】
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、更に、前記第1の識別子及び前記第2の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルの前記レジスタへの結果データのない転送を実行時間(ランタイム)で制御するよう配置されることを特徴とする。第1及び第2の結果データが両方とも無効である場合に、いかなる結果データもレジスタファイルへ書き戻されるようには選択されない。
【0010】
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、前記第1及び第2の発行スロットの出力へ夫々結合されることを特徴とする。どの結果データがレジスタファイルへ書き戻されるべきかの選択は、発行スロットの出力で直接的に行われる。
【0011】
本発明に従う処理装置の実施例は、前記通信ネットワークが、共用通信チャネルを介して前記第1の結果データ又は前記第2の結果データのいずれか一方を転送するよう配置されることを特徴とする。この実施例の利点は、他の通信チャネルが、レジスタファイルへ結果データを転送するよう他の発行スロットに利用可能である点である。
【0012】
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、前記レジスタファイルの入力へ結合されることを特徴としており、前記選択回路を前記発行スロットの出力へ結合する代替案を提供する。
【0013】
本発明に従う処理装置の実施例は、前記第1の結果データが第1の条件付き演算に対応し、前記第2の結果データが第2の条件付き演算に対応し、前記第1及び第2の条件付き演算が相互排他的な条件を有し、前記第1の識別子が前記第1の条件付き演算の条件の評価に従って設定され、前記第2の識別子が前記第2の条件付き演算の条件の評価に従って設定されることを特徴とする。相互排他的な条件の場合に、識別子の多くとも1つが、対応する結果データが無効であることを示しうることが保証されており、単一のプロセッサ周期で同じレジスタへ両方の結果データを書き戻すことをコンパイル時間でスケジューリングすることを可能にする。
【0014】
本発明に従う処理装置の実施例は、前記第1及び第2の発行スロットが、前記結果データの有効性に関して前記第1及び第2の識別子を作るよう夫々配置されることを特徴とする。この実施例は、レジスタに条件付き演算の保護の結果を格納し、且つ、第1及び第2の識別子の値を夫々決定するために発行スロットの更なる入力値としてそれらを使用することを可能にする。
【0015】
本発明に従う処理装置の実施例は、前記選択回路が、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第1の発行スロットからの第1の結果データ又は第2の発行スロットからの第2の結果データのいずれか一方の転送をコンパイル時間で制御するよう配置されることを特徴とする。制御情報を用いると、結果データを書き込むために経由される通信チャネルが選択可能であり、無演算命令の場合に、レジスタファイルへの結果データの書き戻しが防止され得る。
【0016】
本発明に従う処理装置の実施例は、前記通信ネットワークが、前記レジスタファイルの入力へ結合された第2の選択回路を更に有することを特徴とする。この実施例の利点は、それが、部分的に接続されたネットワークの場合に、命令をスケジューリングする際に更なる柔軟性を提供する点である。
【0017】
本発明に従う処理装置の実施例は、前記レジスタファイルが、分散レジスタファイルであることを特徴とする。分散レジスタファイルの利点は、それが、レジスタファイルのセグメントごとに、より少ない読み出し及び書き込みポートしか必要としないので、シリコン面積に関してより少ないレジスタファイルで済み、且つ、レジスタファイルの演算の速度を増大させる点である。更に、分散レジスタファイルにおけるレジスタのアドレス指定は、中央レジスタファイルと比べて、より少ないビットしか必要としない。
【0018】
本発明に従う処理装置の実施例は、前記通信ネットワークが、部分的に接続された通信ネットワークであることを特徴とする。部分的に接続された通信ネットワークは、特に多数の発行スロットの場合に、完全に接続された通信ネットワークと比べて、しばしば、よりタイムクリティカルではなく、コードサイズ、面積及び電力消費に関してより高価ではない。
【0019】
本発明に従う処理装置の実施例は、前記少なくとも1つの選択回路が、更に、前記結果データの有効性に関する対応する識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの少なくとも第3の結果データの転送をランタイム(実行時間)で制御するよう配置されることを特徴とする。選択回路は、結果データを受け取るための2よりも多い入力ポートを有し、且つ、多くとも1つの結果データが有効でありうることがコンパイル時間で知られる限り、レジスタファイルへ書き戻されるべき多くの1つの結果データをランタイムで選択することを可能にする。
【発明を実施するための最良の形態】
【0020】
図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及びSC(図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及び結果有効信号としての転送のために、結果データ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へは書戻されない。
代替的に、保護信号は、演算を実行する場合に更なる引数として取られないが、対応する機能ユニットのパイプラインに従って遅延され、その機能ユニットの出力有効信号との論理積を演算される。結果として、保護信号の値が偽である場合には、保護信号及び出力有効信号の論理積値は、同じく偽であり、対応する結果データを無効にするために使用される。
【0021】
図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のレジスタへ書き込まれる。
【0022】
選択回路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 は、例えば、3 2 ビットである。結果データRD1又はRD2が無効とされる場合に、選択回路は、その結果データがORゲート211によって出力されることを妨げる。結果データRD1は、出力有効信号OV1若しくは選択信号d又はその両方が偽に等しい場合に無効とされる。結果データRD2は、出力有効信号OV2 若しくは選択信号c2又はその両方が偽に等しい場合に無効とされる。従って、結果データRD1は、出力有効信号OV1が発行スロットIS1によって偽に設定される場合に、ランタイムで無効とされる。結果データRD2は、出力有効信号OV2 が発行スロットIS2 によって偽に設定される場合にランタイムで無効とされる。結果として、結果データRD1 若しくは結果データRD2のいずれか一方、又は、結果無しデータが、レジスタファイルへ書き戻されるよう選択される。VLIW 命令の符号化の間に、レジスタファイルRF1又はRF2の同じレジスタへの2つの結果データ値の書き戻しは、それらの多くとも1 が有効であるならば、単一のプロセッサ周期で安全に符号化され得る。この条件が満たされるための例は、“ if−then−else”構文の場合である。以下のプログラム形式を考える。
【0023】
【数1】
Figure 0005989293
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を出力し、このとき、対応する出力有効信号OV2は真に等しい。発行スロット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 が真に等しく、一方、通信チャネルCC2に対応する結果データ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によって作られた全ての結果データを無効とするために使用されうる。
【0024】
図3を参照すると、発行スロットの両出力での選択回路、即ち、選択回路SC1 及びSC2、並びに、レジスタファイルの入力での選択回路、即ち、選択回路SC3及びSC4の存在は、それが、部分的に接続された通信ネットワークの場合に、命令のスケジューリングにおいて更なる柔軟性を提供するという利点を有する。多数の発行スロットの場合に、全体的に接続された通信ネットワークのオーバーヘッドは、シリコン面積、遅延及び電力消費に関して相当なものとなりうる。VLIW 処理装置の設計の間に、どの程度発行スロットがレジスタファイルへ結合されるかが、実行されるべきアプリケーションの範囲に依存して決定される。
図4を参照すると、部分相互接続を有するVLIW 処理装置が示される。VLIW 処理装置は、発行スロットIS1 、IS2 及びIS3 によって夫々アクセス可能な3つのレジスタファイルRF1、RF2 及びRF3 を有する。簡単のために、接続ネットワークCNは、発行スロットIS 、発行スロットIS2 及び発行スロットIS3 の出力と、レジスタファイルRF1、レジスタファイルRF 2 及びレジスタファイルRF3 の入力とへ実際に結合されている選択回路を伴わずに示されている。発行スロットIS1は、通信チャネルCC2を介してしかレジスタファイルへ結果データを書き戻すことができず、発行スロットIS3 は、通信チャネルCC1を介してしかレジスタファイルへ結果データを書き戻すことができない。即ち、VLIW 処理装置は、部分的に接続されたネットワークを有する。やはり簡単のために、通信チャネルCC1 及びCC2 は、単線として示されているが、実際には、結果データRD 及び結果有効信号RV の両方の値を伝える。以下のプログラム部分がVLIW 処理装置によって実行されるべきであるとする。
【0025】
【数2】
Figure 0005989293
保護演算が発行スロットIS1 、IS2 及びIS3 によって実行され得るとすると、これらの演算は3つの演算としてスケジュールを決められうる:
【0026】
【数3】
Figure 0005989293
演算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を書き込むための通信チャネルCC又は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のレジスタへ書き戻されない。
【0028】
図6を参照すると、選択回路SC1の代わりの実施例が示されている。選択回路SC1は、マルチプレクサ6 0 5 を有する。マルチプレクサ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は、この代わりの実施例を有しうる。
【0029】
他の実施例では、選択回路SC1、SC2、SC3又はSC4は、3又はそれ以上の入力ポートを有しており、レジスタファイルへ書き戻されるべき3又はそれ以上の結果データから結果データをランタイムで選択することを可能にする。夫々の結果データは、対応する出力有効信号を有する。出力有効信号の多くとも1 つが実行時間に有効でありうることがコンパイル時間に知られる場合に、結果データの書き戻しは、単一のプロセッサ周期で安全にスケジューリングされうる。
【0030】
他の実施例では、処理装置は、レジスタファイルRF0及びRF1を有する分散レジスタファイルの代わりに、単一のレジスタファイルを有する。VLIW 処理装置の発行スロットの数が比較的小さい場合には、単一のレジスタファイルのオーバーヘッドも同様に比較的小さい。
【0031】
他の実施例では、VLIW 処理装置は、異なる多数の発行スロットを有し、且つ/あるいは、発行スロットは、異なる多数の機能ユニットを有しうる。機能ユニットの数は、VLIW 処理装置がとりわけ実行すべきアプリケーションの種類に依存する。処理装置は、また、前出の発行スロットへ接続された異なる多数のレジスタファイルを有しても良い。
【0032】
他の実施例では、発行スロットIS0及びIS1は、発行スロットが実行すべき演算、即ち、2よりも多いオペランドを必要とし、且つ/ あるいは、1よりも多い結果を作る演算の種類に依存して、異なる多数の入力及び/又は出力ポートを有しうる。レジスタファイルRF0及び/又はRF1 は、また、異なる多数の読み出し及び/又は書き込みポートを有しても良い。
【0033】
留意すべきは、上述した実施例は本発明を限定するのではなく説明しているのであって、添付の特許請求の範囲の適用範囲を損なわない範囲で多数の代わりの実施例を設計することが当業者には可能であることである。特許請求の範囲において、括弧内に置かれた如何なる参照符号も、請求を限定するよう解釈されるべきではない。語「有する」は、請求項に挙げられた以外の要素文はステップの存在を認めないわけではない。要素の前に置かれた語「1 つの」は、このような要素の複数個の存在を認めないわけではない。幾つかの手段を列挙する装置クレームでは、これらの手段の幾つかは、ハードウェアの同一の物品
によって具現化され得る。ある手段が相互に異なる請求項に挙げられているという単なる事実は、これらの手段の組合せが有利に使用され得ないことを示しているわけではない。
【図面の簡単な説明】
【0034】
【図1】 本発明に従うVLIW 処理装置の概要ブロック図を示す。
【図2】 選択回路の実施例の概要ブロック図を示す。
【図3】 本発明に従う代替のVLIW 処理装置の概要ブロック図を示す。
【図4】 本発明に従う更に代替のVLIW 処理装置の概要ブロック図を示す。
【図5】 本発明に従う他の代わりのVLIW 処理装置の概要ブロック図を示す。
【図6】 選択回路の代替の実施例の概要ブロック図を示す。

Claims (6)

  1. 複数の命令を有し、演算コードを結果として生ずるようにデコードされた、多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロット(IS1,IS2)と、該複数の発行スロットによりアクセス可能なレジスタファイル(RF1,RF2)と、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワーク(CN)とを有する超長命令語処理装置であって、
    前記処理装置の前記第1の発行スロットは、演算コードおよび引数(ID1)がともに供給されるとき、前記演算コードによって決定される演算を実行し、第1の結果データ(RD1)と前記第1の発行スロットにより生成された前記第1の結果データの有効性に基づいた第1の識別子(OV1)を生成するように配置されるとともに、前記処理装置の前記第2の発行スロットは、演算コードおよび引数(ID2)がともに供給されるとき、前記演算コードによって決定される演算を実行し、第2の結果データ(RD2)と前記第2の発行スロットにより生成された前記第2の結果データの有効性に基づいた第2の識別子(OV2)を生成するように配置され、
    前記通信ネットワークは、前記第1の識別子及び前記第2の識別子を用いて、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第1の結果データ又は前記第2の結果データのいずれか一方の転送をランタイム(実行時間)で制御するよう配置され、前記第1及び第2の発行スロット(IS1,IS2)の結果データ出力に結合された入力と、前記レジスタファイル(RF1,RF2)に結合された出力を有する少なくとも1つの選択回路を有し、
    前記第1の結果データは、第1の条件付き演算に対応し、前記第2の結果データは、第2の条件付き演算に対応し、前記第1及び第2の条件付き演算は、相互排他的な条件を有し、
    前記第1の識別子又は第2の識別子の値を決定するために使用される保護信号の値は、前記第1の条件付き演算又は前記第2の条件付き演算の条件を評価して決定される値であり、前記評価は第1の条件付き演算又は前記第2の条件付き演算の一方について行われ、前記評価により決定された保護信号の値は対応する一方のレジスタファイルに格納され、決定された前記保護信号の値の補数が他方のレジスタファイルに格納され、
    前記引数(ID1,ID2)として入力される前記保護信号の値及び前記保護信号の値の補数は、複数の発行スロット(IS1,IS2)が複数の結果データ(RD1,RD2)を演算するプロセッサ周期の前のプロセッサ周期の中で生成される、
    ことを特徴とする超長命令語処理装置。
  2. 前記通信ネットワークは、共用通信チャネルを介して前記第1の結果データ又は前記第2の結果データのいずれか一方を転送するよう配置される、ことを特徴とする請求項1記載の超長命令語処理装置。
  3. 前記第1及び第2の発行スロットは、前記結果データの有効性に関して前記第1及び第2の識別子を作るよう夫々配置される、ことを特徴とする請求項記載の超長命令語処理装置。
  4. 前記選択回路は、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第1の発行スロットからの第1の結果データ又は第2の発行スロットからの第2の結果データのいずれか一方の転送をコンパイル時間で制御するよう配置される、ことを特徴とする請求項1記載の超長命令語処理装置。
  5. 前記通信ネットワークは、前記レジスタファイルの入力へ結合された第2の選択回路を更に有する、ことを特徴とする請求項1記載の超長命令語処理装置。
  6. 前記レジスタファイルは、分散レジスタファイルである、ことを特徴とする請求項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 JP2007537529A (ja) 2007-12-20
JP2007537529A5 JP2007537529A5 (ja) 2011-09-01
JP5989293B2 true 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处理器中写合并和写撤销的处理装置和方法
US10423218B1 (en) 2018-03-12 2019-09-24 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability
US10802754B2 (en) * 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection

Family Cites Families (20)

* 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
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
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
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
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
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
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
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
US5974537A (en) * 1997-12-29 1999-10-26 Philips Electronics North America Corporation Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
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
JP3664473B2 (ja) * 2000-10-04 2005-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムの最適化方法及びこれを用いたコンパイラ
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
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
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
US6826674B1 (en) Program product and data processor
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
US7313671B2 (en) Processing apparatus, processing method and compiler
US20080263332A1 (en) Data Processing Apparatus and Method for Accelerating Execution Subgraphs
JPH10105402A (ja) パイプライン方式のプロセッサ
JP5989293B2 (ja) 多重命令語処理装置におけるフィードバック接続の実行時間選択
JP4828409B2 (ja) タイムステーショナリプロセッサにおける条件動作のためのサポート
CN113703845B (zh) 一种基于risc-v的可重构嵌入式处理器微架构及其工作方法
JP5122277B2 (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
KR20060009872A (ko) 프로세싱 시스템, 이 프로세싱 시스템에 의해서인스트럭션의 집합을 수행하는 방법 및 컴파일러 프로그램제품
WO2005036384A2 (en) Instruction encoding for vliw processors
CN117591184A (zh) Risc-v向量压缩乱序执行的实现方法及装置
JP2000099329A (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