(57)【要約】本発明は、複数の実行ユニット（１０１，１０３，１０５）と、レジスタファイル（１０９，１１１，１１３）と、実行ユニットとレジスタファイルとを結合するための通信ネットワーク（１１７）とを備える超長命令語（ＶＬＩＷ）プロセッサに関する。アプリケーション固有のＶＬＩＷプロセッサ、すなわち、特定の範囲のアプリケーションを処理するように設計されたＶＬＩＷプロセッサの場合、ＶＬＩＷプロセッサの通信ネットワークは、全てのタイプのデータ変換をサポートしない場合がある。したがって、そのようなＶＬＩＷプロセッサで実行される幾つかのアプリケーションにおいては特定のデータタイプ変換が不可能であることが判明する場合がある。ＶＬＩＷプロセッサのアーキテクチャ内にタイプ変換ユニット（１０７）を組み込むことにより、任意の所望のデータタイプ変換を行なえるようになる。部分接続通信ネットワーク（１１７）の場合には、アーキテクチャ内に同様にして通信装置（１２９）を組み込むことができる。これにより、全ての実行ユニットは、タイプ変換ユニットに対して１つの値を送信することができるとともに、タイプ変換ユニットは、分散レジスタファイルの任意のセグメントに対して１つの値を送信することができる。
2006520957.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行ユニットと、
前記実行ユニットによってアクセス可能なレジスタファイルと、
前記実行ユニットと前記レジスタファイルとを結合する通信ネットワークと、
を備え、
複数の前記実行ユニットのうちの１つの実行ユニットと前記レジスタファイルとの間でデータを送信する際にそのデータのタイプを変換するための変換装置を更に備えていることを特徴とする、プロセッサ。
【請求項２】
前記レジスタファイルが分散レジスタファイルであり、
前記通信ネットワークは、前記実行ユニットと前記分散レジスタファイルの選択された部分とを結合するための部分接続通信ネットワークである、請求項１に記載のプロセッサ。
【請求項３】
前記変換装置が変換レジスタファイルおよび変換ユニットを備え、前記変換レジスタファイルが前記変換ユニットによってアクセス可能である、請求項２に記載のプロセッサ。
【請求項４】
前記実行ユニット、前記変換ユニット、前記分散レジスタファイル、及び前記変換レジスタファイルを結合するための通信装置を更に備えていることを特徴とする、請求項３に記載のプロセッサ。
【請求項５】
前記通信装置がプログラミング言語の全てのデータタイプをサポートすることを特徴とする、請求項４に記載のプロセッサ。
【請求項６】
前記通信装置は、全ての前記実行ユニット、前記変換ユニット、前記分散レジスタファイルの全ての部分、及び前記変換レジスタファイルを結合することを特徴とする、請求項４に記載のプロセッサ。
【請求項７】
前記変換ユニットは、複数の前記実行ユニットのうちの１つの実行ユニットの一部であることを特徴とする、請求項６に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の実行ユニットと、実行ユニットによってアクセス可能なレジスタファイルと、実行ユニットとレジスタファイルとを結合するための通信ネットワークとを備えるプロセッサに関する。
【背景技術】
【０００２】
高性能演算の向上に対する現行の要求に伴って、同時処理の幾つかの形式、例えば並行処理をプロセッサアーキテクチャに導入する幾つかの解決策が導入されてきた。高性能を得るために広く使用される概念は、命令レベル並行処理の導入である。この処理においては、多くの命令をほぼ同時に実行するために、多くの実行ユニットがプロセッサアーキテクチャ内に存在する。２つの主要な概念、すなわち、プログラムの幾つかのスレッドが実行ユニットによってアクセス可能なマルチスレッディング概念と、実行ユニットの機能に対応する命令の束が命令組中に存在する超長命令語（ＶＬＩＷ）概念とが採用されてきた。
【０００３】
超長命令語（ＶＬＩＷ）プロセッサの場合には、複数の命令が、１つの長い命令、いわゆるＶＬＩＷ命令にまとめられる。ＶＬＩＷプロセッサは、複数の独立した実行ユニットを使用して、これらの複数の命令を並行に実行する。プロセッサは、命令レベル並行処理をプログラム中で利用することができ、これにより、複数の命令を同時に実行することができる。ソフトウェアプログラムがＶＬＩＷプロセッサ上で実行できるようにするには、ソフトウェアプログラムをＶＬＩＷ命令に変換しなければならない。コンパイラは、並行処理を最適化することにより、プログラムを実行するために必要な時間を最小限に抑えようとする。コンパイラは、１つのＶＬＩＷ命令に対して割り当てられる複数の命令を並行に処理できるという制約下で且つデータ従属性制約下で複数の命令を１つのＶＬＩＷ命令に組み合わせる。データ固定ＶＬＩＷプロセッサまたは時間固定ＶＬＩＷプロセッサのそれぞれにおいては、２つの異なる方法で命令のコード化を行なうことができる。データ固定ＶＬＩＷプロセッサの場合、所定のデータ項目に関して行なわれる演算の所定のパイプラインに関連する全ての情報は、１つのＶＬＩＷ命令にエンコードされる。時間固定ＶＬＩＷプロセッサの場合、所定のデータ項目に関して行なわれる演算の１つのパイプラインに関連する情報は、異なるＶＬＩＷ命令中の複数の命令にわたって広げられ、これにより、プログラム中でプロセッサの前記パイプラインがあらわにされる。
【０００４】
殆どの高レベルプログラミング言語においては、複数のデータタイプを使用できる。プログラミング言語としてＣを使用するプログラムにおいて、データタイプは、多くの場合、暗黙のうちに他のデータタイプに変換され、あるいは、明示的に他のデータタイプへとキャストされる。プログラムを実行する際には、その後、ＶＬＩＷプロセッサのネットワークで、あるいは、実行ユニットの出力部で、実際のタイプ変換が行なわれても良い。アプリケーション固有のＶＬＩＷプロセッサ、すなわち、特定の範囲のアプリケーションを処理するために設計されたＶＬＩＷプロセッサの場合、ＶＬＩＷプロセッサまたは実行ユニットのネットワークは、全てのデータタイプ変換のために必要なタイプ変換ハードウェアを備えていない場合がある。したがって、そのようなＶＬＩＷプロセッサで実行される幾つかのアプリケーションにおいて特定のデータタイプ変換を行なえないことが判明する場合がある。
【０００５】
米国特許第６，４６０，１３５号は、入力／出力実行ユニットと、演算実行ユニットと、複数のデータレジスタと、命令コントローラと、相互接続構造とを備えるマイクロプロセッサについて記載している。命令コントローラは、命令語をデコードして、演算コードを入力／出力実行ユニットまたは演算実行ユニットに送る。タイプ情報レジスタがデータレジスタに関連付けられ、情報レジスタは、対応するデータレジスタ内に記憶されたデータの有効ビット幅およびデータタイプを示すタイプ情報を保持する。命令語は、演算のために使用されるデータのタイプ情報とは無関係に、実行結果のタイプ情報、すなわち、データタイプおよび有効ビット幅を示している。２つのオペランドを必要とする演算の実行中、演算実行ユニットは、２つのオペランドのタイプ情報を比較し、一致しない場合には、割り込みが生成され、その後、データが正しいタイプに変換されるとともに、この変換がソフトウェアで行なわれる。入力／出力実行ユニットが入力／出力命令を実行しなければならない場合、入力／出力実行ユニットは、タイプ情報レジスタ内に記憶されたタイプ情報と、命令語のタイプ情報とを比較する。一致しない場合には、同様に割り込みが生成され、その後、データが正しいタイプに変換されるとともに、この変換がソフトウェアで行なわれる。
【０００６】
従来技術のプロセッサの欠点は、タイプ変換を始めるために割り込みを生成しなければならず、その後、タイプ変換をソフトウェアで行なわなければならないという点である。その結果、プロセッサの全体の性能が実質的に低下する可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、アプリケーション固有のマルチプロセッサシステム、特にアプリケーション固有のＶＬＩＷプロセッサで行なうことができるデータタイプ変換の範囲を大きくし、それにより、これらのシステム自由度を高めることである。
【課題を解決するための手段】
【０００８】
この目的は、複数の実行ユニットのうちの１つの実行ユニットとレジスタファイルとの間でデータを送信する際にそのデータのタイプを変換するための変換装置を更に備えていることを特徴とするプロセッサによって達成される。通信ネットワークが必要なデータタイプ変換をサポートしない場合、タイプ変換は、変換装置によって行なうことができる。変換装置が広い範囲のタイプ変換を行なうことができるようにすることにより、異なるアプリケーション、すなわち、当初の範囲のアプリケーションから外れたアプリケーションをマルチプロセッサシステムで同様に実行することができるため、アプリケーション固有のマルチプロセッサシステムの自由度を高めることができる。
【０００９】
本発明の一実施形態は、レジスタファイルが分散レジスタファイルであり、通信ネットワークが、実行ユニットと分散レジスタファイルの選択された部分とを結合するための部分接続通信ネットワークであることを特徴とする。分散レジスタファイルの利点は、レジスタファイルセグメント毎に読み取りポートおよび書き込みポートを殆ど必要とせず、それにより、レジスタファイル帯域幅が小さくなるという点である。また、分散レジスタファイル内の１つのレジスタのアドレス指定は、必要なビットが中央レジスタファイルよりも少ない。部分接続通信ネットワークは、完全接続通信ネットワークと比べると、特に実行ユニットが多数ある場合、コードサイズおよび電力消費量に関して安価である。
【００１０】
本発明の一実施形態は、変換装置が変換レジスタファイルおよび変換ユニットを備え、変換レジスタファイルが変換ユニットによってアクセス可能であることを特徴とする。実行ユニットの結果をレジスタファイルの幾つかのレジスタに対して異なるデータタイプをもって書き込まなければならない場合、変換レジスタファイルに対してデータを書き込むことができる。その後、変換ユニットは、変換レジスタファイルからデータを読み取って、そのデータを必要なタイプに変換するとともに、その結果を各要求毎に適切なレジスタに対して書き込むことができる。
【００１１】
本発明の一実施形態は、プロセッサが、実行ユニット、変換ユニット、分散レジスタファイル、変換レジスタファイルを結合するための通信装置を更に備えていることを特徴とする。部分接続通信ネットワークの場合には、全ての実行ユニットまたはタイプ変換ユニット出力から全ての実行ユニットまたはタイプ変換ユニット入力への通信経路の存在を確保することができない。その結果、実行ユニットがデータを変換ユニットに対して送信できない場合がある。通信装置は、これが通信ネットワークを介して不可能な場合には、実行ユニット出力から変換ユニットへとデータを送信することができるとともに、変換ユニットから実行ユニット入力へとデータを送信することができる。
【００１２】
本発明の一実施形態は、通信装置がプログラミング言語の全てのデータタイプをサポートすることを特徴とする。この実施形態の利点は、データタイプ変換のために、全てのデータを、そのタイプとは無関係に且つ通信ネットワークまたは通信装置自体による任意の中間的な変換を必要とすることなく、変換装置に対して送信できるという点である。
【００１３】
本発明の一実施形態は、通信装置が、全ての実行ユニット、変換ユニット、分散レジスタファイルの全ての部分、変換レジスタファイルを結合することを特徴とする。この実施形態の利点は、全ての実行ユニットがデータを通信装置を介して変換レジスタファイルに送信できるとともに、変換ユニットが常にデータを通信装置を介して全てのレジスタファイルセグメントに送信できるという点である。
【００１４】
本発明の一実施形態は、変換ユニットが、複数の実行ユニットのうちの１つの実行ユニットの一部であることを特徴とする。この実施形態の利点は、別個の変換ユニットが不要となり、それにより、更なるシリコン領域および通信接続を省くことができるという点である。
【発明を実施するための最良の形態】
【００１５】
図１を参照すると、概略ブロック図は、複数の実行ユニット１０１，１０３，１０５と、レジスタファイルセグメント１０９，１１１，１１３を含む分散レジスタファイルとを備えるＶＬＩＷプロセッサを示している。また、プロセッサは変換装置１３５も有している。変換装置１３５は、変換レジスタファイル１１５と、タイプ変換ユニット１０７とを備えている。レジスタファイルセグメント１０９は実行ユニット１０１，１０３によってアクセス可能であり、レジスタファイルセグメント１１１，１１３は実行ユニット１０５によってアクセス可能であり、また、変換レジスタファイル１１５はタイプ変換ユニット１０７によってアクセス可能である。
【００１６】
また、プロセッサは、実行ユニット１０１，１０３，１０５の結合のため、また、分散レジスタファイルセグメント１０９，１１１，１１３および変換レジスタファイル１１５の選択のため、部分接続ネットワーク１１７を有している。また、部分接続ネットワーク１１７は、変換装置１３５を選択された分散レジスタファイルセグメント１０９，１１１，１１３に対して結合する。部分接続ネットワーク１１７はマルチプレクサ１１９，１２１，１２３，１２５，１２７を備えている。プロセッサは特定の範囲のアプリケーションを処理し、また、この目的に合わせて、部分接続ネットワーク１１７が設計される。すなわち、プロセッサの設計中、実行ユニットから分散レジスタファイルセグメントへの接続は、その実行ユニットがアプリケーションをその範囲内で実行する間にレジスタファイルセグメントに値を書き込まなければならない場合には、部分接続ネットワークを介して行なわれる。特に、実行ユニットが多数ある場合、直接的な接続を介した全ての分散レジスタファイルセグメントに対する全ての実行ユニットの接続は、シリコン領域および多重化オーバヘッドにおいては非常に高価である。設計期間中、部分接続ネットワーク１１７の一部である実行ユニット１０１，１０３，１０５と変換レジスタファイル１１５との間の接続および部分接続ネットワーク１１７の一部であるタイプ変換ユニット１０７と分散レジスタファイルセグメント１０９，１１１，１１３との間の接続も定められる。また、部分接続ネットワーク１１７は、多数のデータタイプ変換それ自体をサポートする。また、同様に、どのタイプ変換がサポートされるかについても、プロセッサの設計中に定められる。
【００１７】
プロセッサによるアプリケーションの実行中、プロセッサによってデータタイプ変換が行なわれなければならない。例えば、実行ユニット１０１は、１６ビットを含む符号のない固定小数点数の形態で出力を生成する。これらの１６ビットのうち、１５ビットは、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１１に書き込まれなければならない小数点の後に位置される。実行ユニット１０５は、このデータ出力を入力として使用して演算するが、この入力は、３２ビットを含む符号のない定数であって、３２ビットのうちの３１ビットが小数点の後に位置される符号のない定数でなければならない。したがって、データのタイプが変換されなければならない。この場合、部分接続ネットワークがこのデータタイプ変換をサポートし、また、１６ビットを備える符号のない固定小数点数は、マルチプレクサ１２３により、３２ビットを備える符号のない固定小数点数へと暗黙のうちに変換される。
【００１８】
プロセッサの当初の設計の範囲外にあるアプリケーションを実行している時に、必要なデータタイプ変換をプロセッサによって暗黙のうちに行なうことができないことが判明する場合がある。例えば、実行ユニット１０３は、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１３に書き込まれなければならない１６ビットを備える符号のない固定小数点数の形態でデータ出力を生成する。実行ユニット１０５は、演算のための入力データとしてのこれらのデータを、３２ビットを備える浮動小数点数として必要とする。しかしながら、マルチプレクサ１２５は、データのタイプを、符号のない固定小数点数から浮動小数点数へと変換することができない。この場合、実行ユニット１０３は、部分接続ネットワーク１１７を介して、データを変換レジスタファイル１１５に書き込む。タイプ変換ユニット１０７はレジスタファイルセグメント１１５からデータを読み取り、また、このユニットは、専用の命令を実行することにより、データのタイプを、符号のない固定小数点数から浮動小数点数へと変換する。その後、タイプ変換ユニット１０７は、部分接続ネットワーク１１７を介して、浮動小数点数の形態のデータをレジスタファイルセグメント１１３に書き込む。ここで、データは、実行ユニット１０５のための正しいデータタイプで利用できる。
【００１９】
他の可能性は、プロセッサの当初の設計の範囲外にあるアプリケーションの実行中に、実行結果が複数の実行ユニットにより入力データとして使用されることであるが、これらの実行ユニットは異なるデータタイプを必要とする。実行ユニットが１つの内部状態を備える場合には、同じ演算を２回行なって、異なるタイプの１つの出力結果を生成することは不可能である。例えば、内部累積レジスタを有する乗加算ユニットの場合、同じ入力データを用いて２つの同一の演算を順次に行なうと、出力結果が異なってしまう。例えば、実行ユニット１０５は、３２ビットを備える符号のない固定小数点数の形態で出力データを生成する。これらのデータは、１６ビットを備える符号のない固定小数点数として１回、３２ビットを含む浮動小数点数として１回、部分接続ネットワーク１１７を介してレジスタファイルセグメント１０９に対して２回書き込まれなければならない。その後、これらのデータは、実行ユニット１０１，１０３のそれぞれのための入力データとして必要とされる。しかしながら、部分接続ネットワーク１１７は、必要なデータタイプ変換の両方を行なうことができない。実行ユニット１０５は、部分接続ネットワーク１１７を介して、その出力データを変換レジスタファイル１１５に対して書き込む。実行ユニット１０７は、変換レジスタファイル１１５からデータを読み取って、そのデータを、３２ビットを備える符号のない固定小数点数から１６ビットを備える符号のない固定小数点数へと変換するとともに、変換されたデータを、部分接続ネットワーク１１７を介してレジスタファイルセグメント１０９に書き込む。次に、実行ユニット１１５は、変換レジスタファイル１１５から再びデータを読み取って、そのデータを、３２ビットを備える符号のない固定小数点数から３２ビットを含む浮動小数点数へと変換するとともに、変換されたデータを、部分接続ネットワーク１１７を介してレジスタファイルセグメント１０９に書き込む。その後、これらのデータは、実行ユニット１０１，１０３によってレジスタファイルセグメント１０９から読み取られて更なる処理のために使用することができる。
【００２０】
プロセッサで実行する幾つかのアプリケーションにおいて、実行ユニット１０１，１０３，１０５から変換レジスタファイル１１５へのデータの書き込み、あるいは、タイプ変換ユニット１０７からレジスタファイルセグメント１０９，１１１，１１３へのデータの書き込みは、複数のステップを必要とする場合がある。例えば、実行ユニット１０１は浮動小数点数タイプの出力データを生成し、また、このデータは、実行ユニット１０５によって行なわれる演算のための入力データとして使用される符号のない固定小数点数としてレジスタファイルセグメント１１１に対して書き込まれなければならない。しかしながら、部分接続ネットワークは、このタイプ変換をサポートしない。タイプ変換はタイプ変換ユニット１０７によって行なうことができるが、実行ユニット１０１は、その出力データを、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１５に対して直接に書き込むことができず、他のルートによってのみ書き込むことができる。可能な他のルートは、暗黙のデータタイプ変換を行なうことなく実行ユニット１０１がその出力データを部分接続ネットワーク１１７を介してレジスタファイルセグメント１１１に対して書き込むことである。実行ユニット１０５は、レジスタファイルセグメント１１１から出力データを読み取るとともに、これらの出力データを、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１５に書き込む。その後、タイプ変換ユニット１０７は、レジスタファイルセグメント１１５から出力データを読み取って、必要なデータタイプ変換を行なう。タイプ変換ユニット１０７は、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１１に対してデータを直接に書き込むことができず、他のルートによってのみ書き込むことができる。可能性は、タイプ変換ユニット１０７がデータを部分接続ネットワーク１１７を介してレジスタファイルセグメント１０９に対して書き込むことである。その後、データは、実行ユニット１０１によりレジシタファイルセグメント１０９から読み取られる。実行ユニット１０１は、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１１に対してデータを書き込む。実行ユニットによってデータを変換レジスタファイルに対して直接に書き込むことができないこと或いはタイプ変換ユニットによりレジスタファイルセグメントに対して直接にデータを書き込むことができないことをプログラムのコンパイル中にコンパイラが検出する場合、コンパイラは、他のルートを決定するとともに、必要な更なる命令をプログラム中に挿入する。
【００２１】
部分接続ネットワーク１１７が所望のタイプ変換を行なうことができない場合、タイプ変換ユニット１０７は、このタイプ変換を行なって、変換されたデータを部分接続ネットワークを介して適切なレジスタファイルセグメントに対して書き込むことができる。その結果、プロセッサは、プロセッサの当初の設計の範囲外にあるアプリケーションを依然として効率的に実行することができ、これにより、プロセッサの自由度が高まる。そのようなアプリケーションのコンパイル中、コンパイラは、必要なデータタイプ変換をネットワークによって暗黙のうちに行なうことができないことを検出するとともに、このデータタイプ変換によって、部分接続ネットワーク１１７を介してデータをタイプ変換ユニット１０７に対して送り、データをタイプ変換ユニット１０７により必要なデータタイプに変換するとともに、変換されたデータを部分接続ネットワーク１１７を介して必要なレジスタファイルセグメントに対して送るために更なる命令がプログラム中に導入されることを検出する。タイプ変換ユニット１０７によって行なわれる明示的なタイプ変換は、当業者に知られた１または複数の演算によって行なうことができる。例えば、符号のない固定小数点タイプだけを使用する場合には、左シフト演算、右シフト演算、ＡＮＤ演算で十分である。符号付き固定小数点タイプの場合には、右シフト演算の場合に最上位ビットとしてビットを加えることにより、符号ビットの変化を防止することができる。
【００２２】
他の実施形態において、通信ネットワーク１１７は、完全接続通信ネットワークであっても良い。すなわち、全ての実行ユニット１０１，１０３，１０５およびタイプ変換ユニット１０７が全ての分散レジスタファイルセグメント１０９，１１１，１１３および変換レジスタファイル１１５に対して結合される。実行ユニットが比較的少ない場合、完全接続通信ネットワークのオーバヘッドは比較的少ない。
【００２３】
他の実施形態において、プロセッサは、機能ユニット１０１，１０３，１０５およびタイプ変換ユニット１０７と全ての分散レジスタファイルセグメント１０９，１１１，１１３および変換レジスタファイル１１５とを結合するための通信装置１２９を備えている。通信装置１２９は、部分接続ネットワーク１１７とマルチプレクサ１１９，１２１，１２３，１２５，１２７を共有する。通信装置は、実行されるアプリケーションが書き込まれるプログラミング言語のために全てのデータタイプをサポートする。
【００２４】
幾つかの状況においては、部分接続ネットワーク１１７が必要なタイプ変換を暗黙のうちに行なうことができないことが判明する場合がある。その上、タイプ変換ユニット１０７の変換レジスタファイル１１５に対してデータを書き込むための他のルート、あるいは、タイプ変換ユニット１０７からのデータをレジスタファイルセグメント１０９，１１１，１１３に対して書き込むための他のルートは、多くのステップを必要とする場合があり、あるいは、存在しない場合さえある。これらの場合、実行ユニット１０１，１０３，１０５と、タイプ変換ユニット１０７と、分散レジスタファイルセグメント１０９，１１１，１１３と、変換レジスタファイル１１５との間での値の転送は、これを部分接続ネットワーク１１７によって行なうことができない場合、通信装置１２９によって行なうことができる。このようにすると、実行ユニット１０１，１０３，１０５およびタイプ変換ユニット１０７の各出力と、実行ユニット１０１，１０３，１０５およびタイプ変換ユニット１０７の各入力との間の通信経路の存在が確保される。例えば、実行ユニット１０１は、部分接続ネットワーク１１７を介してレジスタファイルセグメント１１５に対して直接に結合されず、直接的な結合は通信装置１２９を介してのみ存在する。しかしながら、可能であれば、部分接続ネットワーク１１７を介した実行ユニット、タイプ変換ユニット、レジスタファイル間の直接的な通信が好ましい。
【００２５】
例えば、実行ユニット１０１は、３２ビットを含む符号のない固定小数点数として結果データを生成し、また、これらのデータは、入力データとして浮動小数点数としてのデータを必要とする実行ユニット１０５によるその後の使用のため、レジスタファイルセグメント１１１に対して書き込まれなければならない。実行ユニット１０１は、部分接続ネットワーク１１７を介してデータをレジスタファイルセグメント１１１に対して直接に書き込むことができない。なぜなら、実行ネットワーク１０１は、このタイプのデータ変換をサポートしないからである。また、実行ユニット１０１は、部分接続ネットワーク１１７を介して出力データをレジスタファイルセグメント１１５に対して直接に書き込むこともできない。これは、この接続が存在しないからである。その上、タイプ変換ユニット１０７も部分接続ネットワーク１１７を介してデータをレジスタファイルセグメント１１１に対して直接に書き込むことができない。なぜなら、この接続も存在しないからである。コンパイラは、プログラムコンパイル中にこれらの問題を検出して、通信装置１２９を介してデータを転送することを決定するとともに、これらのデータ転送を行なうための適切な命令をプログラム中に挿入する。実行ユニット１０１は、通信装置１２９を介して、出力データをレジスタファイルセグメント１１５に対して書き込む。その後、タイプ変換ユニット１０７は、変換レジスタファイル１１５からデータを読み取るとともに、データのタイプを浮動小数点数に変換する。その後、タイプ変換ユニット１０７は、通信装置１２９を介して、データをレジスタファイルセグメント１１１に対して書き込む。他の実施形態において、データは、部分接続ネットワーク１１７を介して実行ユニット１０１，１０３，１０５から変換レジスタファイル１１５へと書き込まれ、その後、通信装置１２９を介してタイプ変換ユニット１０７からレジスタファイルセグメント１０９，１１１，１１３へと書き込まれても良い。他の実施形態において、データは、通信装置１２９を介して実行ユニット１０１，１０３，１０５から変換レジスタファイル１１５へと書き込まれ、その後、部分接続ネットワーク１１７を介してタイプ変換ユニット１０７からレジスタファイルセグメント１０９，１１１，１１３へと書き込まれても良い。
【００２６】
通信装置１２９が第１の待ち時間をもって通信するようになっており、部分接続通信ネットワーク１１７が第２の待ち時間をもって通信するようになっていることが好ましい。この場合、第１の待ち時間は第２の待ち時間を上回る。この実施形態の利点は、通信装置１２９による通信が律速段階となることを防止し、それにより、プロセッサが最大クロック周波数で実行できるようになるという点である。また、高いスループットを実現できる。通常、通信装置１２９は、共有通信機構の形式を成している。したがって、通信装置１２９を介した通信は、特に実行ユニットが多数である場合には、その制御論理によって減速し得る。通信装置を介した通信を、それぞれが１つのクロックサイクルで行なわれる幾つかの連続するステップに分割すると、１つの通信ステップの待ち時間が短く維持される。これにより、通信装置を介した通信がプロセッサのクロック周波数を制限することが防止される。全ての個々のステップの待ち時間の合計である通信装置による通信の全体の待ち時間は、部分接続通信ネットワークによる通信の待ち時間よりも長くなる。しかしながら、通信装置１２９による通信の待ち時間が長くても、プロセッサの全体の性能に殆ど影響しない。これは、通信の大部分が部分接続通信ネットワーク１１７を介して行なわれるからである。
【００２７】
有利な実施形態において、通信装置１２９は、マルチプレクサ１３１および汎用バス１３３を備えている。マルチプレクサは、機能ユニット１０１，１０３，１０５、タイプ変換ユニット１０７、汎用バス１３３を結合するようになっており、汎用バス１３３は、マルチプレクサ１３１、全ての分散レジスタファイルセグメント１０９，１１１，１１３、変換レジスタファイル１１５を結合するようになっている。汎用バス１３３は、複数の機能ユニット１０１，１０３，１０５およびタイプ変換ユニット１０７が汎用バス１３３に結合され且つこれらの機能ユニットおよびタイプ変換ユニットが汎用バスを時分割するのに対し、部分接続通信ネットワーク１１７が１つの実行ユニットまたは変換ユニットをレジスタファイルセグメントまたは変換レジスタファイルに対して結合するという点で、部分接続通信ネットワーク１１７と異なる。汎用バスの利点は、完全接続通信ネットワークと比較すると、シリコン領域におけるオーバヘッドが比較的低いという点である。
【００２８】
実行ユニットまたはタイプ変換ユニットは、タイプ変換ユニット１０７の場合と同様に１つのレジスタファイルセグメントに対して結合することができ、あるいは、実行ユニット１０５の場合と同様に複数のレジスタファイルセグメントに対して結合することができ、または、複数の機能ユニットは、機能ユニット１０１，１０３の場合と同様に１つのレジスタファイルセグメントに対して結合されても良い。レジスタファイルセグメントは、変換レジスタファイル１１５の場合と同様に１つの実行ユニットに対して結合することができ、あるいは、レジスタファイルセグメント１０９の場合と同様に複数の実行ユニットに対して結合することができる。レジスタファイルセグメントと実行ユニットとの間の結合度は、実行ユニットが行なわなければならない演算のタイプによって決まり得る。
【００２９】
図１に示される実施形態において、部分接続ネットワーク１１７および通信装置１２９は、マルチプレクサ１１９，１２１，１２３，１２５，１２７等の幾つかのリソースを共有する。他の実施形態においては、更に多くのリソースが共有されても良く、あるいは、リソースが全く共有されなくても良い。
【００３０】
他の実施形態においては、タイプ変換ユニット１０７が実行ユニット１０１，１０３，１０５のうちの１つの一部であっても良く、また、レジスタファイルセグメント１１５がその実行ユニットの対応するレジスタファイルセグメントの一部であっても良い。
【００３１】
また、スーパスカラプロセッサは、ＶＬＩＷプロセッサの場合と同様に複数の演算を平行に行なうことができる複数の発行スロットを有している。しかしながら、プロセッサハードウェア自体は、どの演算依存性が存在するのかをランタイム時に決定するとともに、リソースの競合が生じないようにしつつ、これらの依存性に基づいてどの演算を実行すべきかを決定する。この節で説明したＶＬＩＷプロセッサにおける実施形態の原理は、スーパスカラプロセッサにおいても適用される。一般に、ＶＬＩＷプロセッサは、スーパスカラプロセッサよりも多くの実行ユニットを有している場合がある。ＶＬＩＷプロセッサのハードウェアは、スーパスカラプロセッサほど複雑ではない。そのため、スケーラブルアーキテクチャが良好となる。実行ユニットの数および各実行ユニットの複雑度は、特に、本発明を使用して到達できる利益の大きさを決定する。
【００３２】
なお、前述した実施形態は、本発明を限定するものではなく、単なる一例であり、また、当業者であれば、添付の請求の範囲から逸脱することなく、多くの他の実施形態を構成することができる。請求項において、括弧内の任意の参照符号は、請求項を限定するものと解釈すべきではない。用語“備える（含む）”は、請求項に記載された要素またはステップ以外の要素またはステップの存在を排除するものではない。要素に先立つ用語“１つの”は、そのような要素の複数の存在を排除するものではない。複数の手段を列挙する装置の請求項において、これらの手段のうちの幾つかは、ハードウェアの１つのアイテムまたは同じアイテムによって具現化することができる。特定の手段が互いに異なる従属請求項に記載されているという事実だけで、これらの手段の組み合わせを有利に使用することができないというものではない。
【図面の簡単な説明】
【００３３】
【図１】複数の実行ユニットを備える本発明に係るプロセッサを示している。
【符号の説明】
【００３４】
１０１、１０３、１０５  実行ユニット
１０７  タイプ変換ユニット
１０９、１１１、１１３  レジスタファイルセグメント
１１５  変換レジスタファイル
１１７  部分接続ネットワーク
１１９、１２１、１２３、１２５、１２７  マルチプレクサ
１２９  通信装置
１３１  マルチプレクサ
１３３  汎用バス
１３５  変換装置
【図１】
2006520957.tif 000003
【国際調査報告】
2006520957.tif 000004
2006520957.tif 000005