【誤訳訂正書】
【提出日】平成23年7月14日(2011.7.14)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
複数の命令を有し、処理コードを結果として生ずるようにデコードされた、多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロット（ＩＳ１，ＩＳ２）と、該複数の発行スロットによりアクセス可能なレジスタファイル（ＲＦ１，ＲＦ２）と、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワーク（ＣＮ）とを有する超長命令語処理装置であって、
前記処理装置の前記第１の発行スロットが前記処理コードにより定義された処理を実行する時に、第１の結果データ（ＲＤ１）と第１の識別子（ＯＶ１）を、前記第１の発行スロットにより生成された前記第１の結果データの有効性に基づいて生成するように配置されるとともに、前記処理装置の前記第２の発行スロットが前記処理コードにより定義された処理を実行する時に、第２の結果データ（ＲＤ２）と第２の識別子（ＯＶ２）を、前記第２の発行スロットにより生成された前記第２の結果データの有効性に基づいて生成するように配置され、
前記通信ネットワークは、前記第１の識別子及び前記第２の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第１の結果データ又は前記第２の結果データのいずれか一方の転送をランタイム(実行時間）で制御するよう配置された少なくとも１つの選択回路を有する、
ことを特徴とする超長命令語処理装置。
【請求項２】
前記少なくとも１つの選択回路は、更に、前記第１の識別子及び前記第２の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルの前記レジスタへの結果データの不転送をランタイム(実行時間）で制御するよう配置される、ことを特徴とする請求項１記載の超長命令語処理装置。
【請求項３】
前記少なくとも１つの選択回路は、前記第１及び第２の発行スロットの出力へ夫々結合される、ことを特徴とする請求項１記載の超長命令語処理装置。
【請求項４】
前記通信ネットワークは、共用通信チャネルを介して前記第１の結果データ又は前記第２の結果データのいずれか一方を転送するよう配置される、ことを特徴とする請求項３記載の超長命令語処理装置。
【請求項５】
前記少なくとも１つの選択回路は、前記レジスタファイルの入力へ結合される、ことを特徴とする請求項１記載の超長命令語処理装置。
【請求項６】
前記第１の結果データは、第１の条件付き演算に対応し、前記第２の結果データは、第２の条件付き演算に対応し、前記第１及び第２の条件付き演算は、相互排他的な条件を有し、
前記第１の識別子は、前記第１の条件付き演算の条件の評価に従って設定され、前記第２の識別子は、前記第２の条件付き演算の条件の評価に従って設定される、ことを特徴とする請求項１記載の超長命令語処理装置。
【請求項７】
前記第１及び第２の発行スロットは、前記結果データの有効性に関して前記第１及び第２の識別子を作るよう夫々配置される、ことを特徴とする請求項６記載の超長命令語処理装置。
【請求項８】
前記選択回路は、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第１の発行スロットからの第１の結果データ又は第２の発行スロットからの第２の結果データのいずれか一方の転送をコンパイル時間で制御するよう配置される、ことを特徴とする請求項１記載の超長命令語処理装置。
【請求項９】
前記通信ネットワークは、前記レジスタファイルの入力へ結合された第２の選択回路を更に有する、ことを特徴とする請求項３記載の超長命令語処理装置。
【請求項１０】
前記レジスタファイルは、分散レジスタファイルである、ことを特徴とする請求項１ 記載の超長命令語処理装置。
【請求項１１】
前記少なくとも１つの選択回路は、更に、前記結果データの有効性に関する対応する識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの少なくとも第３の結果データの転送をランタイム(実行時間）で制御するよう配置される、ことを特徴とする請求項１記載の超長命令語処理装置。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【書類名】明細書
【発明の名称】多重命令語処理装置におけるフィードバック接続の実行時間選択
【技術分野】
【０００１】
本発明は、複数の命令を有する多重命令語を実行するよう配置され、前記複数の命令の並列実行のために配置された複数の発行スロットと、該複数の発行スロットによってアクセス可能なレジスタファイルと、前記複数の発行スロット及び前記レジスタファイルの結合のための通信ネットワークとを有する超長命令語処理装置に関する。
【背景技術】
【０００２】
処理装置は、汎用演算処理装置又は特定用途向け命令セット演算処理装置でありうる。それらは、音、画像及び映像を含む、異なる種類の情報を扱うために使用されうる。特定用途向け命令セット演算処理装置の場合には、プロセッサアーキテクチャ及び命令セットはカスタマイズされる。これは、システムのコスト及び電力消費を著しく低減する。プロセッサアーキテクチャは、通常、制御語の組によって制御される固定データ経路から成る。夫々の制御語は、データ経路の一部を制御し、これらの経路は、算術論理演算ユニット（ＡＬＵ）又は他の機能ユニットのレジスタアドレス及び演算コードを有しても良い。命令の夫々の組は、通常、２進形式の命令を対応する制御語に変換する命令デコーダによって、又は、マイクロストア、即ち、制御語を直接的に含むメモリによって、制御語の新しい組を発生させる。一般に、制御語は、演算コードと、２つのオペランドレジスタインデックスと、結果レジスタインデックスとを含むＲＩＳＣ型演算を表す。オペランドレジスタインデックス及び結果レジスタインデックスは、レジスタファイル内のレジスタを参照する。
【０００３】
超長命令語（ＶＬＩＷ）処理装置の場合に、多重命令は、所謂ＶＬＩＷ命令と呼ばれる１つの長い命令にまとめられる。ＶＬＩＷ処理装置は、並列にこれらの多重命令を実行するために、複数の独立した機能ユニットを使用する。処理装置は、プログラムにおいて命令レベル並列処理を利用して、ひいては、１度に１よりも多い命令を実行することを可能にする。このような形式の同時処理のために、処理装置の性能は向上する。ソフトウェアプログラムがＶＬＩＷ 処理装置で実行されるために、それは、ＶＬＩＷ命令の組に変換されるべきである。コンパイラは、並列処理を最適化することによってプログラムを実行するために必要とされる時間を最小限とするよう試みる。コンパイラは、単一のＶＬＩＷ命令へ割り当てられた命令が並列に実行されうる制約下で、且つ、データ依存制約下で、命令をＶＬＩＷ命令に一体化する。意味のない処理が１又はそれ以上の機能ユニットに対してあるクロック周期で実行されうる場合に、所謂無演算（ＮＯＰ）命令は、その特定の機能ユニットに関してＶＬＩＷ命令で符号化される。コードサイズを低減し、ひいては、必要メモリサイズに関して、及び、必要メモリ処理能力に関してコストを節約するために、データ固定ＶＬＩＷ処理装置での無演算（ＮＯＰ）命令のコンパクトな表現が使用されても良い。例えば、ＮＯＰ演算は、ＶＬＩＷ命令の前に付けられた特別なヘッダにおいて単一ビットによって符号化され、圧縮されたＶＬＩＷ命令をもたらす。
【０００４】
処理装置のデータパイプラインでの演算を制御するよう、２つの異なったメカニズムが一般にコンピュータアーキテクチャにおいて使用される。即ち、それは、１９９７年３月、ＩＥＥＥ会報、ｖｏｌ．８５、ｎｏ．３、Ｇ．Ｇｏｏｓｅｎｓ、Ｊ．ｖａｎ  Ｐｒａｅｔ、Ｄ．Ｌａｎｎｅｅｒ、Ｗ．Ｇｅｕｒｔｓ、Ａ．Ｋｉｆｌｉ、Ｃ．Ｌｉｅｍ及びＰ．Ｐａｕｌｉｎによる「リアルタイム信号処理システムにおける埋め込みソフトウェア：設計技術（Ｅｍｂｅｄｄｅｄ  ｓｏｆｔｗａｒｅ  ｉｎ  ｒｅａｌ−ｔｉｍｅ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ：ｄｅｓｉｇｎ  ｔｅｃｈｎｏｌｏｇｉｅｓ）」に開示されるような、データ固定及び時間固定符号化である。データ固定符号化の場合には、処理装置の命令セットの一部である全ての命令は、データパイプラインを横切るように、特定のデータ項目で実行されるべき演算の完全な配列を制御する。命令がプログラムメモリから取り出されて復号されると、プロセッサ・コントローラ・ハードウェアは、構成演算（ｔｈｅ  ｃｏｍｐｏｓｉｎｇ  ｏｐｅｒａｔｉｏｎｓ）が正確なマシン周期で実行されることを確実にする。時間固定符号化の場合には、処理装置の命令セットの一部である全ての命令は、単一のマシン周期で実行されるべき演算の完全な組を制御する。
これらの演算は、データパイプラインを横切る幾つかの異なったデータ項目に適用されても良い。この場合に、データパイプラインをセットアップして維持することは、プログラマ又はコンパイラの責任である。結果として得られるパイプライン・スケジュールは、マシンコードプログラムで完全に目にするができる。時間固定符号化は、より大きなコードサイズを犠牲にして、命令に存在する制御情報を遅延させるために必要なハードウェアのオーバーヘッドを節約するので、特定用途向け演算処理装置でしばしば使用される。
【０００５】
欧州特許番号１，１１３，３５６号明細書は、複数の機能ユニットと、レジスタファイルとを有するＶＬＩＷ処理装置について記載する。復号された命令は機能ユニットへ供給され、入力データはレジスタファイルから供給され、結果データはレジスタファイルへ書き込まれる。
【特許文献１】欧州特許番号１，１１３，３５６号明細書
【非特許文献１】１９９７年３月、ＩＥＥＥ会報、ｖｏｌ．８５、ｎｏ．３、Ｇ．Ｇｏｏｓｅｎｓ、Ｊ．ｖａｎ  Ｐｒａｅｔ、Ｄ．Ｌａｎｎｅｅｒ、Ｗ．Ｇｅｕｒｔｓ、Ａ．Ｋｉｆｌｉ、Ｃ．Ｌｉｅｍ及びＰ．Ｐａｕｌｉｎによる「リアルタイム信号処理システムにおける埋め込みソフトウェア：設計技術（Ｅｍｂｅｄｄｅｄ  ｓｏｆｔｗａｒｅ  ｉｎ  ｒｅａｌ−ｔｉｍｅ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ：ｄｅｓｉｇｎ  ｔｅｃｈｎｏｌｏｇｉｅｓ）」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
先行技術の処理装置の欠点は、結果データが無効である、即ち、結果データがレジスタファイルへ書き戻される必要がないことがリアルタイムに決定される場合に、機能ユニットからレジスタファイルへの通信経路が、静的には、即ち、コンパイル時間には、この結果データが有効であるか否かは知られないので、依然として有効にされるべきである点である。
【０００７】
本発明は、２つのことなる演算によって作られた結果データを、単一のプロセッサ周期レジスタファイルの同じレジスタに書き戻すことをコンパイル時間でスケジューリングすることを可能にする処理装置を提供することを目的とする。本発明は、共用の通信チャネルでのこれらの結果データの書き戻しをコンパイル時間でスケジューリングすることを更なる目的とする。
【課題を解決するための手段】
【０００８】
上記目的は、当該処理装置が、更に、第１の発行スロットによって作られた第１の結果データの有効性に関する第１の識別子と、第２の発行スロットによって作られた第２の結果データの有効性に関する第２の識別子とを作るよう配置され、前記通信ネットワークが、前記第１の識別子及び前記第２の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの前記第１の結果データ又は前記第２の結果データのいずれか一方の転送を実行時間（ランタイム）で制御するよう配置された少なくとも１つの選択回路を有することを特徴とする、前出のような形式の処理装置により達成される。少なくとも、結果データの有効性に関する第１又は第２のいずれか一方の識別子が、対応する結果データがレジスタファイルのレジスタへ書き戻される必要がないことをランタイム中に示すことが、コンパイル時間内で知られる場合には、第１及び第２の結果データの書き戻しは、単一のプロセッサ周期、においてスケジューリングされうる。選択回路は、レジスタファイルへ書き戻されるべき有効な結果データをランタイムで選択するために識別子を使用する。結果として、２つの異なった演算によって作られた結果データの、レジスタファイルの同じレジスタへの書き戻しは、単一のプロセッサ周期でスケジューリングされうる。
【０００９】
本発明に従う処理装置の実施例は、前記少なくとも１つの選択回路が、更に、前記第１の識別子及び前記第２の識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルの前記レジスタへの結果データのない転送を実行時間（ランタイム）で制御するよう配置されることを特徴とする。第１及び第２の結果データが両方とも無効である場合に、いかなる結果データもレジスタファイルへ書き戻されるようには選択されない。
【００１０】
本発明に従う処理装置の実施例は、前記少なくとも１つの選択回路が、前記第１及び第２の発行スロットの出力へ夫々結合されることを特徴とする。どの結果データがレジスタファイルへ書き戻されるべきかの選択は、発行スロットの出力で直接的に行われる。
【００１１】
本発明に従う処理装置の実施例は、前記通信ネットワークが、共用通信チャネルを介して前記第１の結果データ又は前記第２の結果データのいずれか一方を転送するよう配置されることを特徴とする。この実施例の利点は、他の通信チャネルが、レジスタファイルへ結果データを転送するよう他の発行スロットに利用可能である点である。
【００１２】
本発明に従う処理装置の実施例は、前記少なくとも１つの選択回路が、前記レジスタファイルの入力へ結合されることを特徴としており、前記選択回路を前記発行スロットの出力へ結合する代替案を提供する。
【００１３】
本発明に従う処理装置の実施例は、前記第１の結果データが第１の条件付き演算に対応し、前記第２の結果データが第２の条件付き演算に対応し、前記第１及び第２の条件付き演算が相互排他的な条件を有し、前記第１の識別子が前記第１の条件付き演算の条件の評価に従って設定され、前記第２の識別子が前記第２の条件付き演算の条件の評価に従って設定されることを特徴とする。相互排他的な条件の場合に、識別子の多くとも１つが、対応する結果データが無効であることを示しうることが保証されており、単一のプロセッサ周期で同じレジスタへ両方の結果データを書き戻すことをコンパイル時間でスケジューリングすることを可能にする。
【００１４】
本発明に従う処理装置の実施例は、前記第１及び第２の発行スロットが、前記結果データの有効性に関して前記第１及び第２の識別子を作るよう夫々配置されることを特徴とする。この実施例は、レジスタに条件付き演算の保護の結果を格納し、且つ、第１及び第２の識別子の値を夫々決定するために発行スロットの更なる入力値としてそれらを使用することを可能にする。
【００１５】
本発明に従う処理装置の実施例は、前記選択回路が、更に、多重命令語から導出された制御情報を用いて、前記レジスタファイルへの、第１の発行スロットからの第１の結果データ又は第２の発行スロットからの第２の結果データのいずれか一方の転送をコンパイル時間で制御するよう配置されることを特徴とする。制御情報を用いると、結果データを書き込むために経由される通信チャネルが選択可能であり、無演算命令の場合に、レジスタファイルへの結果データの書き戻しが防止され得る。
【００１６】
本発明に従う処理装置の実施例は、前記通信ネットワークが、前記レジスタファイルの入力へ結合された第２の選択回路を更に有することを特徴とする。この実施例の利点は、それが、部分的に接続されたネットワークの場合に、命令をスケジューリングする際に更なる柔軟性を提供する点である。
【００１７】
本発明に従う処理装置の実施例は、前記レジスタファイルが、分散レジスタファイルであることを特徴とする。分散レジスタファイルの利点は、それが、レジスタファイルのセグメントごとに、より少ない読み出し及び書き込みポートしか必要としないので、シリコン面積に関してより少ないレジスタファイルで済み、且つ、レジスタファイルの演算の速度を増大させる点である。更に、分散レジスタファイルにおけるレジスタのアドレス指定は、中央レジスタファイルと比べて、より少ないビットしか必要としない。
【００１８】
本発明に従う処理装置の実施例は、前記通信ネットワークが、部分的に接続された通信ネットワークであることを特徴とする。部分的に接続された通信ネットワークは、特に多数の発行スロットの場合に、完全に接続された通信ネットワークと比べて、しばしば、よりタイムクリティカルではなく、コードサイズ、面積及び電力消費に関してより高価ではない。
【００１９】
本発明に従う処理装置の実施例は、前記少なくとも１つの選択回路が、更に、前記結果データの有効性に関する対応する識別子を用いることにより、単一のプロセッサ周期で、前記レジスタファイルのレジスタへの少なくとも第３の結果データの転送をランタイム(実行時間）で制御するよう配置されることを特徴とする。選択回路は、結果データを受け取るための２よりも多い入力ポートを有し、且つ、多くとも１つの結果データが有効でありうることがコンパイル時間で知られる限り、レジスタファイルへ書き戻されるべき多くの１つの結果データをランタイムで選択することを可能にする。
【発明を実施するための最良の形態】
【００２０】
図１，３及び５を参照すると、概要ブロック図は、２つのレジスタファイルＲＦ１及びＲＦ２、２つの発行スロットＩＳ１及びＩＳ２とを有するＶＬＩＷ処理装置を表す。引数ＩＤ１及びＩＤ２を夫々読み出すために、レジスタファイルＲＦ１は発行スロットＩＳ１によりアクセス可能であり、レジスタファイルＲＦ２は発行スロットＩＳ２によりアクセス可能である。  
発行スロットＩＳ１及びＩＳ２は、更に、接続ネットワークＣＮを介してレジスタファイルＲＦ１及びＲＦ２へ結合されている。接続ネットワークＣＮは、２つの選択回路ＳＣ１及びＳＣ２（図１及び３のみ）と、２つのマルチプレクサＭＰ１及びＭＰ２（図１のみ）と、２つのマルチプレクサＭＰ３及びＭＰ４（図５のみ）と、２つの選択回路ＳＣ３及びＳＣ（図３及び５のみ）と、２つの通信チャネルＣＣ１及びＣＣ２とを有する。通信チャネルＣＣ１及びＣＣ２は、例えば結果データＲＤのために３２ビット値を、例えば結果有効信号ＲＶのために１ビット値を搬送する。発行スロットＩＳ１及びＩＳ２は、少なくとも１つの機能ユニットを有し、例えば、発行スロットＩＳ１は、演算／ 論理ユニット及び乗算ユニットを有し、発行スロットＩＳ２は、演算／ 論理ユニット及び読み込み／記憶ユニットを有する。
演算／論理ユニットは、内部に１つもパイプライン段を有さず、７つの異なった演算、即ち、加算、減算、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理左シフト及び論理右シフトを実行することができる。これら演算は、夫々の演算コードによって制御される。乗算ユニットは、内部に１つのパイプライン段を有し、４つの異なった演算、即ち、符号付き乗算の下位結果、符号付き乗算の上位結果、符号無し乗算の下位結果及び符号無し乗算の上位結果を実行することができる。これら演算も夫々の演算コードによって制御される。演算において、ＶＬＩＷ命令語は、図１、３及び５では図示されていないプログラムメモリから取り出され、これらの命令語は復号される。  
一般に、ＶＬＩＷ命令語で符号化された命令は、２つのオペランドを必要とし、１つの結果を生成するＲＩＳＣ型演算、並びに、２よりも多いオペランドを消費し、１よりも多い結果を生成しうるカスタム演算を有する。幾つかの命令は、オペランドデータとしての即値を必要としても良い。復号化ステップの結果は、選択信号ｓ１及びｓ２（図１のみ）と、選択信号ｓ３及びｓ４（図５のみ）と、選択信号ｃ１、ｃ２ 、ｃ３及びｃ４ （図１及び３のみ）と、選択信号ｃ５、ｃ６ 、ｃ７及びｃ８（図３及び５のみ）とである。復号化ステップの更なる結果は、対応する発行スロットによって実行されるべき演算を決定する、発行スロットＩＳ１及びＩＳ２のための、図１、３及び５には図示されていない演算コードと、対応する発行スロットによって実行される演算のための引数が読み出されるべきレジスタファイルＲＦ１及びＲＦ２からのレジスタを示す、図１、３及び５には図示されていないレジスタインデックスと、結果データが書き込まれるべきレジスタファイルＲＦ１及びＲＦ２からの、図１、３及び５には図示されていないレジスタインデックスとである。  
演算コード及び引数ＩＤ１及びＩＤ２は、夫々、発行スロットＩＳ１及びＩＳ２へ供給される。発行スロットＩＳ１及びＩＳ２は、その演算コードによって決定される演算を実行し、結果データＲＤ１及びＲＤ２と、対応する結果データの有効性を示す出力有効信号ＯＶ１、ＯＶ２を夫々作る。出力有効信号は、例えば、１ビット値である。  
結果データが有効でない、即ち、結果データがレジスタファイルＲＦ１又はＲＦ２へ書き戻される必要がない場合に、対応する出力有効信号は、結果データを作る発行スロットにより偽に設定される。図１及び３を参照すると、結果データＲＤ１及び出力有効信号ＯＶ１並びに結果データＲＤ２及び出力有効信号ＯＶ２は、選択回路ＳＣ１及びＳＣ２の両方へ供給されている。更に説明すると、出力有効信号ＯＶ１及びＯＶ２並びに選択信号ｃ１及びｃ２の制御下で、選択回路ＳＣ１は、通信チャネルＣＣ２を介するマルチプレクサＭＰ１及びＭＰ２への（図１）、あるいは、選択回路ＳＣ３及びＳＣ４への（図３） 結果データＲＤ 及び結果有効信号ＲＶとしての転送のために、結果データＲＤ１及び出力有効信号ＯＶ１、又は、結果データＲＤ２及び出力有効信号ＯＶ２のいずれか一方を選択する。  
同じように、出力有効信号ＯＶ１及びＯＶ２並びに選択信号ｃ３及びｃ４の制御下で、選択回路ＳＣ２は、通信チャネルＣＣ１を介するマルチプレクサＭＰ１及びＭＰ２への（図１）、あるいは、選択回路ＳＣ３ 及びＳＣ４への（図３）結果データＲＤ及び結果有効信号としての転送のために、結果データＲＤ１及び出力有効信号ＯＶ１、又は、結果データＲＤ２及び出力有効信号ＯＶ２のいずれか一方を選択する。図５を参照すると、選択信号ｓ３及びｓ４の制御下で、通信チャネルＣＣ１及びＣＣ２は、結果データＲＤ及び結果有効信号ＲＶ として、選択回路ＳＣ３及びＳＣ４へ、結果データＲＤ１及び対応する出力有効信号ＯＶ１を書き込むために、又は、結果データＲＤ２及び対応する出力有効信号ＯＶ２ を書き込むために、マルチプレクサＭＰ３及びＭＰ４によって夫々選択される。
図１、３，５を参照すると、代わりの実施例において、発行スロットＩＳ１ 及びＩＳ２の１又はそれ以上の機能ユニットは、例えば、更なる引数が保護信号として使用されるところの保護動作を支持する。条件付き演算を支持する時間固定多重命令語処理装置は、本願出願人によって出願された先行の欧州特許出願番号０３１０１０３８．２［代理人明細ＰＨＮＬ０３０３８４ＥＰＰ］に記載されている。条件付き演算の場合に、保護信号の値は決定されて、更なる引数としてレジスタファイルＲＦ１又はＲＦ２に格納される。条件付き演算を実行する場合に、保護信号の値は、対応する出力有効信号ＯＶ１又はＯＶ２の値を設定するために使用される。保護信号の値が真に等しい場合には、そうでない場合に出力有効信号が対応する発行スロットによって偽に設定されないならば、対応する出力有効信号は真に設定される。保護信号の値が偽に等しい場合には、対応する出力有効信号は偽に設定される、即ち、対応する結果データは無効とされ、従って、レジスタファイルＲＦ１又はＲＦ２へは書戻されない。
代替的に、保護信号は、演算を実行する場合に更なる引数として取られないが、対応する機能ユニットのパイプラインに従って遅延され、その機能ユニットの出力有効信号との論理積を演算される。結果として、保護信号の値が偽である場合には、保護信号及び出力有効信号の論理積値は、同じく偽であり、対応する結果データを無効にするために使用される。
【００２１】
図１を参照すると、選択信号ｓ２の制御下で、マルチプレクサＭＰ１は、レジスタファイルＲＦ１への結果データＲＤの書き込みのための通信チャネルＣＣ１又はＣＣ２を選択する。  
結果有効信号ＲＶ が真である場合に、レジスタファイルＲＦ１への結果データＲＤの書き込みは可能にされ、そうでない場合には、レジスタファイルＲＦ１への結果データＲＤの書き込みは、無能力にされる、即ち、結果データＲＤは、レジスタファイルＲＦ１へ書き戻されない。結果有効信号ＲＶ が真に等しい場合に、結果データＲＤは、ＶＬＩＷ命令語から導出されたレジスタアドレスの制御下で選択されたレジスタファイルＲＦ１のレジスタへ書き込まれる。同じように、選択信号ｓ１の制御下で、マルチプレクサＭＰ２は、レジスタファイルＲＦ２への結果データＲＤの書き込みのための通信チャネルＣＣ１又はＣＣ２を選択する。結果有効信号ＲＶ が真である場合に、レジスタファイルＲＦ２への結果データＲＤの書き込みは可能にされ、そうでない場合には、レジスタファイルＲＦ２への結果データＲＤの書き込みは、無能力にされる、結果有効信号ＲＶが真に等しい場合に、結果データＲＤは、ＶＬＩＷ 命令語から導出されたレジスタアドレスの制御下で選択されたレジスタファイルＲＦ２のレジスタへ書き込まれる。
【００２２】
選択回路ＳＣ１及びＳＣ２の実施例が図２に示される。選択回路ＳＣ３及びＳＣ４は、同一の実施例を有する。出力有効信号ＯＶ１及び選択信号ｃ１は、ＡＮＤゲート２０１へ入力されている。出力有効信号ＯＶ２及び選択信号ｃ２ は、ＡＮＤゲート２０３へ入力されている。ＡＮＤゲート２０１の出力及び結果データＲＤ１は、ＡＮＤゲート２０５ へ入力されている。ＡＮＤゲート２０３の出力及び結果データＲＤ２は、ＡＮＤゲート２０７へ入力されている。ＡＮＤゲート２０１及びＡＮＤゲート２０３の出力は、また、ＯＲゲート２０９へ入力されている。ＯＲゲート２０９は、結果有効信号ＲＶ を出力する。ＡＮＤゲート２０５及びＡＮＤゲート２０７の出力は、ＯＲゲート２１１へ入力されている。ＯＲ ゲート２１１は、結果データＲＤ を出力する。出力有効信号ＯＶ１及びＯＶ２、選択信号ｃ１ 及びｃ２ 並びに結果有効信号ＲＶは、例えば、１ビット値であり、一方、結果データＲＤ１、ＲＤ２ 及びＲＤ は、例えば、３ ２ ビットである。結果データＲＤ１又はＲＤ２が無効とされる場合に、選択回路は、その結果データがＯＲゲート２１１によって出力されることを妨げる。結果データＲＤ１は、出力有効信号ＯＶ１若しくは選択信号ｄ又はその両方が偽に等しい場合に無効とされる。結果データＲＤ２は、出力有効信号ＯＶ２ 若しくは選択信号ｃ２又はその両方が偽に等しい場合に無効とされる。従って、結果データＲＤ１は、出力有効信号ＯＶ１が発行スロットＩＳ１によって偽に設定される場合に、ランタイムで無効とされる。結果データＲＤ２は、出力有効信号ＯＶ２ が発行スロットＩＳ２ によって偽に設定される場合にランタイムで無効とされる。結果として、結果データＲＤ１ 若しくは結果データＲＤ２のいずれか一方、又は、結果無しデータが、レジスタファイルへ書き戻されるよう選択される。ＶＬＩＷ 命令の符号化の間に、レジスタファイルＲＦ１又はＲＦ２の同じレジスタへの２つの結果データ値の書き戻しは、それらの多くとも１ が有効であるならば、単一のプロセッサ周期で安全に符号化され得る。この条件が満たされるための例は、“ ｉｆ−ｔｈｅｎ−ｅｌｓｅ”構文の場合である。以下のプログラム形式を考える。
【００２３】
【数１】
2007537529.tif 000001
２つの演算“ｘ＝ａ＋ｂ”及び“ｘ＝ａ・ｂ”の条件は相互排他的であり、これらの条件は、夫々、発行スロットＩＳ１及びＩＳ２の機能ユニットによって実行される。第１又は第２のいずれかの条件の結果は、変数ｘによって参照されるレジスタＲＦ１ の同一のレジスタへ書き込まれるべきである。条件は別の命令で評価され、保護の値はレジスタファイルＲＦ１ に格納され、その補数はレジスタファイルＲＦ２ に格納される。ＶＬＩＷ 命令は、いずれの演算も同じＶＬＩＷ 命令語で符号化され、選択信号ｃ１ 及びｃ２ が両方とも真に設定され、選択信号ｃ３ 及びｃ４ が両方とも偽に設定されるように符号化される。結果として、演算“ｘ＝ａ＋ｂ”は発行スロットＩＳ１によって実行され、演算“ｘ＝ａ・ｂ”は発行スロットＩＳ２ によって実行される。発行スロットＩＳ１ は、保護信号、即ち、条件の評価が真に等しいとすると、結果データＲＤ１を出力し、このとき、対応する出力有効信号ＯＶ２は真に等しい。発行スロットＩＳ２は、結果データＲＤ２ を出力し、このとき、対応する出力有効信号ＯＶ２ は偽に等しい。  
結果データＲＤ２は、選択回路ＳＣ１によって無効とされ、一方、結果データＲＤ１は有効であって、出力回路ＳＣ１ は、通信チャネルＣＣ２ を介して結果データＲＤ として結果データＲＤ１ を出力し、このとき、対応する結果有効信号ＲＶ は真に等しい。選択回路ＳＣ２ は、選択信号ｃ３ 及びｃ４ は両方とも偽であるから、有効な結果データＲＤを出力しない。図１ を参照すると、選択信号ｓ２を用いて、通信チャネルＣＣ２ は、マルチプレクサＭＰ１ によって選択され、結果データＲＤ１は、レジスタファイルＲＦ１の適切なレジスタへ書き戻される。  
図３及び５を参照すると、選択信号ｃ６を真に、選択信号ｃ５、ｃ７及びｃ８を偽に設定することにより、結果データＲＤ１ は、通信チャネルＣＣ２ に対応する結果データＲＤ が有効である、即ち、対応する結果有効信号ＲＶ が真に等しく、一方、通信チャネルＣＣ２に対応する結果データＲＤ が無効であって、更に選択信号ｃ５が偽に設定されているから、レジスタＲＦ１の適切なレジスタへ書き戻される。選択回路ＳＣ１ は、結果データＲＤ１及びＲＤ２の少なくとも１つを無効とするために出力有効信号ＯＶ１ 及びＯＶ２ を使用することにより、単一のプロセッサ周期で、上記プログラム部分で示された両演算からの結果データの書き戻しのスケジューリングをすることを可能にする。結果として、両演算からの結果データの書き戻しは、選択回路ＳＣ２の代わりに、従来のマルチプレクサが使用される場合に有しうるような、２つの異なるプロセッサ周期でスケジューリングされる必要はない。更に、結果データＲＤ１及びＲＤ２ の書き戻しは、共用の通信チャネルＣＣ２でスケジューリングされ、例えば、第３の発行スロットが存在し、通信チャネルＣＣ１へ結合されている場合に結果データを書き戻すために、他の通信チャネルＣＣ１を空いたままとする。代わりの実施例では、選択信号ｃ１及びｃ４の値は真に設定され、選択信号ｃ２及びｃ３の値は偽に設定される。上記実施例で、結果データＲＤ１は有効であって、通信チャネルＣＣ２を介して結果データＲＤとして出力される。このとき、対応する結果有効信号ＲＶ は、真に等しい。結果データＲＤ２は、選択信号ｃ２が偽に等しいので、選択回路ＳＣ１によって無効とされる。選択回路ＳＣ２は、選択信号ｃ３が偽に設定され、結果データＲＤ２が偽に等しい出力有効信号ＯＶ２ によって無効とされるので、有効な結果データＲＤ を出力しない。図１、３ 及び５に従うＶＬＩＷ 処理装置によって実行可能なＶＬＩＷ 命令を符号化する場合に、レジスタファイルＲＦ１又はＲＦ２の同一のレジスタへの２つの結果データの書き戻しは、これらの結果データの多くとも１ が有効であることがコンパイル時間で証明されうる場合に単一のプロセッサ周期でスケジューリングされ、その場合でさえ、書き戻しは、共用の通信チャネルＣＣ１ 又はＣＣ２ でスケジューリングされうるが、２つの有効な結果データが単一のプロセッサ周期でレジスタファイルＲＦ１又はＲＦ２の同一のレジスタへ書き戻されることがコンパイル時間で妨げられるべきである。  
選択信号ｃ１〜ｃ４の値は、静的に、即ち、コンパイル時間で決定され、レジスタファイルＲＦ１ 及びＲＦ２ へ結果データを書き戻すよう通信チャネルＣＣ１及び／又はＣＣ２を選択するために使用される。図１及び３に従うＶＬＩＷ 処理装置の他の利点は、命令セットで専用の無演算命令を符号化することが不要である点である。無演算命令が発行スロットＩＳ１でスケジューリングされる場合に、例えば、発行スロットＩＳ１によって作られる全ての結果データは、選択信号ｃ１及びｃ３を用いて無効とされ、無演算命令を符号化するための任意の演算コードが使用され得る。有利に、命令は、無演算命令がスケジューリングされる場合に、無演算命令を表す範囲を符号化するために使用された値が同じ発行スロットに対する隣り合った命令から可能な限り繰り返されるように、符号化される。結果として、ＶＬＩＷ 処理装置での対応する組み合わせ論理は、先行する又は連続する周期での値と同じ値と、データ遷移の必然的により少ないリップリング（ｒｉｐｐｌｉｎｇ）とを搬送する。従って、不要な電力消費が生ずる。  
同様に、図５を参照すると、選択信号ｃ５及びｃ７は、その発行スロットに対してスケジューリングされた無演算命令の場合に、発行スロットＩＳ１によって作られた全ての結果データを無効とするために使用されうる。
【００２４】
図３を参照すると、発行スロットの両出力での選択回路、即ち、選択回路ＳＣ１ 及びＳＣ２、並びに、レジスタファイルの入力での選択回路、即ち、選択回路ＳＣ３及びＳＣ４の存在は、それが、部分的に接続された通信ネットワークの場合に、命令のスケジューリングにおいて更なる柔軟性を提供するという利点を有する。多数の発行スロットの場合に、全体的に接続された通信ネットワークのオーバーヘッドは、シリコン面積、遅延及び電力消費に関して相当なものとなりうる。ＶＬＩＷ 処理装置の設計の間に、どの程度発行スロットがレジスタファイルへ結合されるかが、実行されるべきアプリケーションの範囲に依存して決定される。  
図４を参照すると、部分相互接続を有するＶＬＩＷ 処理装置が示される。ＶＬＩＷ 処理装置は、発行スロットＩＳ１ 、ＩＳ２ 及びＩＳ３ によって夫々アクセス可能な３つのレジスタファイルＲＦ１、ＲＦ２ 及びＲＦ３ を有する。簡単のために、接続ネットワークＣＮは、発行スロットＩＳ 、発行スロットＩＳ２ 及び発行スロットＩＳ３ の出力と、レジスタファイルＲＦ１、レジスタファイルＲＦ ２ 及びレジスタファイルＲＦ３ の入力とへ実際に結合されている選択回路を伴わずに示されている。発行スロットＩＳ１は、通信チャネルＣＣ２を介してしかレジスタファイルへ結果データを書き戻すことができず、発行スロットＩＳ３ は、通信チャネルＣＣ１を介してしかレジスタファイルへ結果データを書き戻すことができない。即ち、ＶＬＩＷ 処理装置は、部分的に接続されたネットワークを有する。やはり簡単のために、通信チャネルＣＣ１ 及びＣＣ２ は、単線として示されているが、実際には、結果データＲＤ 及び結果有効信号ＲＶ の両方の値を伝える。以下のプログラム部分がＶＬＩＷ 処理装置によって実行されるべきであるとする。
【００２５】
【数２】
2007537529.tif 000002
保護演算が発行スロットＩＳ１ 、ＩＳ２ 及びＩＳ３ によって実行され得るとすると、これらの演算は３つの演算としてスケジュールを決められうる：
【００２６】
【数３】
2007537529.tif 000003
演算１は発行スロットＩＳ１ によって実行され、演算２は発行スロットＩＳ２ によって実行され、演算３は発行スロットＩＳ３によって実行される。演算１及び２の変数ｘは、レジスタファイルＲＦ１又はＲＦ２の同じレジスタを参照する。発行スロットＩＳ１及びＩＳ２は、共用のチャネルとしての通信チャネルＣＣ２を用いて、適切なレジスタファイルへ単一のプロセッサ周期でそれらの夫々の結果データを書き込むことができ、発行スロットＩＳ３は、通信チャネルＣＣ１ を介して適切なレジスタファイルへその結果データを書き込むことができる。代替的に、発行スロットＩＳ２ が演算として加算及び減算を支持しない場合には、演算１は発行スロットＩＳ１ によって実行可能であり、演算２は発行スロットＩＳ３ によって実行可能である。しかし、発行スロットＩＳ１ 及びＩＳ３ は共通の通信チャネルへ結合されていないので、夫々の結果データは、通信チャネルＣＣ２ 及びＣＣ１ を夫々介して適切なレジスタファイルへ書き込まれるべきである。レジスタファイルＲＦ１ 及びＲＦ２ が単一のポートレジスタファイルである、即ち、１つの値しか、単一のプロセッサ周期でレジスタファイルに書き込まれることができないとすると、発行スロットＩＳ１ 及びＩＳ３ の結果データの書き戻しは、レジスタファイルＲＦ１、ＲＦ２ 及びＲＦ３ の入力での選択回路が対応する結果有効信号の値を用いて有効な結果データをランタイムで選択しうるので、依然として単一のプロセッサ周期でスケジューリングされうる。マルチプレクサが、選択回路の代わりに、レジスタファイルＲＦ１、ＲＦ２及びＲＦ３の入力に存在する場合には、通信チャネルＣＣ１ 又はＣＣ２ の選択はコンパイル時間で行われるべきであり、その場合に、発行スロットＩＳ１及びＩＳ３ からの結果データの書き戻しは、単一のプロセッサ周期の代わりに２つの別々のプロセッサ周期でスケジューリングされるべきでありうる。従って、適切な場合に発行スロットの出力及びレジスタファイルの入力の両方で選択回路を有することは、命令のスケジューリングにおける柔軟性を増大させ、従って、より密な命令スケジュールを可能にする。
図５ を参照すると、代わりの実施例において、レジスタファイルＲＦ１及びＲＦ２ へ結果データＲＤ１又はＲＤ２を書き込むための通信チャネルＣＣ又はＣＣ２の選択は、選択信号ｓ３及びｓ４を用いて、マルチプレクサＭＰ３及びＭＰ４を介して行われる。選択回路ＳＣ３及びＳＣ４を用いると、選択信号ｃ５、ｃ６、ｃ７及びｃ８の制御下で、有効な結果データＲＤ１又はＲＤ２しか、レジスタファイルＲＦ１又はＲＦ２のレジスタへ書き込まれない。最初のプログラム部分を参照すると、両演算からの結果データの書き戻しは、単一のプロセッサ周期でスケジューリングされうる。発行スロットＩＳ１での第１の演算及び発行スロットＩＳ２ での第２ の演算を夫々実行し、同じプロセッサ周期でレジスタファイルＲＦ１のレジスタでの結果データの書き戻しをスケジューリングすることによって、通信チャネルＣＣ２及び通信チャネルＣＣ１を夫々介して、結果データＲＤ１又は結果データＲＤ２のいずれか一方に対応する結果データＲＤは、選択回路ＳＣ３ によって無効とされる。従って、有効な結果データＲＤしか、レジスタファイルＲＦ１のレジスタへ書き戻されない。
【００２８】
図６を参照すると、選択回路ＳＣ１の代わりの実施例が示されている。選択回路ＳＣ１は、マルチプレクサ６ ０ ５ を有する。マルチプレクサ６０５は、ＡＮＤ ゲート６０３によって供給される信号の制御下で、レジスタファイルＲＦ１ 及び／ 又はＲＦ２へ結果データＲＤ として書き戻されるべき結果データＲＤ１又はＲＤ２のいずれか一方を選択する。出力有効信号ＯＶ１及び選択信号ｃ１は、ＡＮＤゲート６０１へ入力される。出力有効信号ＯＶ２及び選択信号ｃ２ は、ＡＮＤゲート６０３ へ入力される。ＡＮＤ ゲート６０１及びＡＮＤ ゲート６０３ の両方の出力は、ＯＲゲート６０７へ入力される。ＡＮＤ ゲート６０３ の出力は、また、レジスタファイルへ結果データＲＤとして書き込まれるべきいずれか一方の結果ＲＤ１又はＲＤ２の選択を制御するために、マルチプレクサ６０５ へ入力される。ＯＲゲート６０７は、結果有効信号ＲＶ を出力する。結果データＲＤ２は、選択信号ｃ２及び出力有効信号ＯＶ２が両方とも真に等しい場合に結果データＲＤ として書き戻されるよう選択され、そうでない場合には、結果データＲＤ１が結果データＲＤとして書き戻されるよう選択される。結果有効信号ＲＶの値は、選択信号ｃ１及びｃ２並びに出力有効信号ＯＶ１及びＯＶ２の値によって、ＡＮＤ ゲート６０１及び６０２並びにＯＲゲート６０７を用いて決定される。結果有効信号ＲＶ が偽に等しい場合には、対応する結果データＲＤは、実際にはレジスタファイルに書き込まれ得ない。同様に、選択回路ＳＣ２、ＳＣ３及びＳＣ４は、この代わりの実施例を有しうる。
【００２９】
他の実施例では、選択回路ＳＣ１、ＳＣ２、ＳＣ３又はＳＣ４は、３又はそれ以上の入力ポートを有しており、レジスタファイルへ書き戻されるべき３又はそれ以上の結果データから結果データをランタイムで選択することを可能にする。夫々の結果データは、対応する出力有効信号を有する。出力有効信号の多くとも１ つが実行時間に有効でありうることがコンパイル時間に知られる場合に、結果データの書き戻しは、単一のプロセッサ周期で安全にスケジューリングされうる。
【００３０】
他の実施例では、処理装置は、レジスタファイルＲＦ０及びＲＦ１を有する分散レジスタファイルの代わりに、単一のレジスタファイルを有する。ＶＬＩＷ 処理装置の発行スロットの数が比較的小さい場合には、単一のレジスタファイルのオーバーヘッドも同様に比較的小さい。
【００３１】
他の実施例では、ＶＬＩＷ 処理装置は、異なる多数の発行スロットを有し、且つ／あるいは、発行スロットは、異なる多数の機能ユニットを有しうる。機能ユニットの数は、ＶＬＩＷ 処理装置がとりわけ実行すべきアプリケーションの種類に依存する。処理装置は、また、前出の発行スロットへ接続された異なる多数のレジスタファイルを有しても良い。
【００３２】
他の実施例では、発行スロットＩＳ０及びＩＳ１は、発行スロットが実行すべき演算、即ち、２よりも多いオペランドを必要とし、且つ／ あるいは、１よりも多い結果を作る演算の種類に依存して、異なる多数の入力及び／又は出力ポートを有しうる。レジスタファイルＲＦ０及び／又はＲＦ１ は、また、異なる多数の読み出し及び／又は書き込みポートを有しても良い。
【００３３】
留意すべきは、上述した実施例は本発明を限定するのではなく説明しているのであって、添付の特許請求の範囲の適用範囲を損なわない範囲で多数の代わりの実施例を設計することが当業者には可能であることである。特許請求の範囲において、括弧内に置かれた如何なる参照符号も、請求を限定するよう解釈されるべきではない。語「有する」は、請求項に挙げられた以外の要素文はステップの存在を認めないわけではない。要素の前に置かれた語「１ つの」は、このような要素の複数個の存在を認めないわけではない。幾つかの手段を列挙する装置クレームでは、これらの手段の幾つかは、ハードウェアの同一の物品
によって具現化され得る。ある手段が相互に異なる請求項に挙げられているという単なる事実は、これらの手段の組合せが有利に使用され得ないことを示しているわけではない。
【図面の簡単な説明】
【００３４】
【図１】  本発明に従うＶＬＩＷ 処理装置の概要ブロック図を示す。
【図２】  選択回路の実施例の概要ブロック図を示す。
【図３】  本発明に従う代替のＶＬＩＷ 処理装置の概要ブロック図を示す。
【図４】  本発明に従う更に代替のＶＬＩＷ 処理装置の概要ブロック図を示す。
【図５】  本発明に従う他の代わりのＶＬＩＷ 処理装置の概要ブロック図を示す。
【図６】  選択回路の代替の実施例の概要ブロック図を示す。