JP5989293B2 - 多重命令語処理装置におけるフィードバック接続の実行時間選択 - Google Patents
多重命令語処理装置におけるフィードバック接続の実行時間選択 Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 42
- 238000012546 transfer Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000000295 complement effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 241000135164 Timea Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- LDXJRKWFNNFDSA-UHFFFAOYSA-N 2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]ethanone Chemical compound C1CN(CC2=NNN=C21)CC(=O)N3CCN(CC3)C4=CN=C(N=C4)NCC5=CC(=CC=C5)OC(F)(F)F LDXJRKWFNNFDSA-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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】
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】
保護演算が発行スロットIS1 、IS2 及びIS3 によって実行され得るとすると、これらの演算は3つの演算としてスケジュールを決められうる:
【0026】
【数3】
演算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)
- 複数の命令を有し、演算コードを結果として生ずるようにデコードされた、多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロット(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)を演算するプロセッサ周期の前のプロセッサ周期の中で生成される、
ことを特徴とする超長命令語処理装置。 - 前記通信ネットワークは、共用通信チャネルを介して前記第1の結果データ又は前記第2の結果データのいずれか一方を転送するよう配置される、ことを特徴とする請求項1記載の超長命令語処理装置。
- 前記第1及び第2の発行スロットは、前記結果データの有効性に関して前記第1及び第2の識別子を作るよう夫々配置される、ことを特徴とする請求項1記載の超長命令語処理装置。
- 前記選択回路は、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第1の発行スロットからの第1の結果データ又は第2の発行スロットからの第2の結果データのいずれか一方の転送をコンパイル時間で制御するよう配置される、ことを特徴とする請求項1記載の超長命令語処理装置。
- 前記通信ネットワークは、前記レジスタファイルの入力へ結合された第2の選択回路を更に有する、ことを特徴とする請求項1記載の超長命令語処理装置。
- 前記レジスタファイルは、分散レジスタファイルである、ことを特徴とする請求項1記載の超長命令語処理装置。
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)
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)
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 |
-
2005
- 2005-05-09 WO PCT/IB2005/051502 patent/WO2005111793A2/en not_active Application Discontinuation
- 2005-05-09 CN CNA2005800149547A patent/CN1950797A/zh active Pending
- 2005-05-09 KR KR1020067023589A patent/KR101147190B1/ko not_active IP Right Cessation
- 2005-05-09 US US11/568,984 patent/US7937572B2/en not_active Expired - Fee Related
- 2005-05-09 EP EP05734892A patent/EP1751655A2/en not_active Withdrawn
- 2005-05-09 JP JP2007512683A patent/JP5989293B2/ja not_active Expired - Fee Related
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 |