(57)【要約】多重命令発行プロセッサは、複数の発行スロット（ＵＣ０，ＵＣ１，ＵＣ２およびＵＣ３）を含み、複数の発行スロットのそれぞれは、複数の機能ユニット（ＦＵ０，ＦＵ１およびＦＵ２）と複数の保持可能なレジスタ（１−３３および１０１−１１７）とを有する。複数の発行スロットは、第１の発行スロットの組（ＵＣ１，ＵＣ２およびＵＣ３）と第２の発行スロットの組（ＵＣ０）を含み、レジスタファイル（ＲＦ０およびＲＦ１）は複数の発行スロット（ＵＣ０，ＵＣ１，ＵＣ２およびＵＣ３）によりアクセス可能である。第１の発行スロットの組（ＵＣ１，ＵＣ２およびＵＣ３）内の複数の保持可能なレジスタ（１−３３）のうちの少なくとも一部のロケーションは、第２の発行スロットの組（ＵＣ０）内の複数の保持可能なレジスタ（１０１−１１７）の少なくとも対応した一部のロケーションとは異なる。保持可能なレジスタは、使用されていない機能ユニットの入力が変化し、不必要な電力損失を生じさせることを防止可能である。しかし、これは、割り込み処理中に保存しなければならない状態の量を増加させる。異なる発行スロットの保持可能なレジスタの位置を変えることにより、著しい電力消費の削減と性能改善を維持したままで、割り込み処理中に保存されるべき状態は少なくなる。
2005523499.tif 000002
【特許請求の範囲】
【請求項１】
複数の発行スロットのそれぞれが複数の機能ユニットおよび複数の保持可能なレジスタを有し、第１の発行スロットの組および第２の発行スロットの組を備えた前記複数の発行スロットと、
前記複数の発行スロットによりアクセス可能であるレジスタファイルと、
を含む多重命令発行プロセッサであって、
前記第１の発行スロットの組内の前記複数の保持可能なレジスタのうちの少なくとも一部のロケーションが、前記第２の発行スロットの組内の前記複数の保持可能なレジスタのうちの少なくとも対応した一部のロケーションとは異なることを特徴とする多重命令発行プロセッサ。
【請求項２】
少なくとも前記第１の発行スロットの組へのアクセスを有する第１の命令セット手段と、
前記第２の発行スロットの組へのアクセスを有する第２の命令セット手段と、
を備える、請求項１に記載の多重命令発行プロセッサ。
【請求項３】
前記第１の発行スロットの組において、前記複数の保持可能なデータレジスタのロケーションは前記機能ユニットの個別のデータ入力の位置であり、
前記第２の発行スロットの組において、前記複数の保持可能なデータレジスタのロケーションは前記機能ユニットの共通データ入力の位置である、
請求項１または２に記載の多重命令発行プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発行スロット(issue slot)のそれぞれが複数の機能ユニットおよび複数の保持可能なレジスタ(holdable register)を有し、第１の発行スロットの組および第２の発行スロットの組により構成された複数の発行スロットと、複数の発行スロットによりアクセス可能であるレジスタファイルと、を含む多重命令発行プロセッサ(multi-issue processor)に関する。
【背景技術】
【０００２】
多重命令発行プロセッサは、単一プロセッササイクルで多数の演算を並列実行できるようにさせ、これにより、プログラムにおいて命令レベルの並列度を利用する多数の並列ハードウェアを表す。多重命令発行プロセッサの例には、ＶＬＩＷ（Very Large Instruction Word：超長命令語）プロセッサおよびスーパースカラプロセッサが含まれる。ＶＬＩＷプロセッサの場合、ソフトウェアプログラムは、どの演算が並列に実行されるべきであるかに関する完全な情報を含み、これらの命令は超長命令に詰め込まれる。コンパイラは、演算間のすべての依存関係が考慮され、リソース競合が生じ得ないことを保証する。このプログラム情報を除いて、ハードウェアはプログラムを正確に実行するために何ら付加的な情報を必要としないので、ハードウェアはかなり簡単になる。スーパースカラプロセッサの場合には、実行されるべきソフトウェアは、逐次的な一連の演算により構成されたプログラムとして与えられる。プロセッサハードウェア自体は、ランタイムに、どの演算依存関係が存在するかを判定し、これらの依存関係に基づいてどの演算が並列に実行すべきであるかを決定し、同時に、リソース競合が生じないことを保証する。上位レベルプログラミング言語を逐次コードに変換するためにはかなり簡単なコンパイラで十分であるが、プロセッサハードウェアは非常に複雑である。
【０００３】
多重命令発行プロセッサでは、これらの演算の実行を担当する並列ハードウェアは、発行スロットで構成される。各発行スロットは、実際の演算を実行する一つ以上の機能ユニットを収容する。一般に、すべてのプロセッササイクル中に、単一の演算は発行スロットごとに一つの機能ユニットで開始される。幾つかのプロセッサでは、ＶＬＩＷプロセッサの場合に最大利用可能な並列度と命令幅コストとの間のトレードオフとして、スカラープロセッサの場合に最大利用可能な並列度とハードウェアの複雑さとの間のトレードオフとして、二つ以上の機能ユニットが発行スロットに収容される。
【０００４】
各クロックサイクルに、各発行スロットの一つの機能ユニットでは多くても一つの演算だけが開始される可能性があるので、電力はある特定のプロセッササイクルで使用されていない発行スロット内の機能ユニットによって消費される。これらの機能ユニットの入力がその機能ユニットが使用されていないときに変化すると、その機能ユニットは、たとえ、出力が無関係であるとしても、それらが使用されているときに匹敵する電力を消費し続ける。
【０００５】
この電力の浪費は、保持可能なレジスタ、すなわち、入力が異なる場合にも状態がそのまま変化しないレジスタを、発行スロット内のすべての機能ユニットの入力に設置することによって解消される。これらの保持可能なレジスタは、機能ユニットが使用されていないとき、機能ユニットの入力を変化させないでそのままの状態に保つ。これらの機能ユニットの入力がそのままの状態に保たれるので、組み合わせゲートの切り替えはなく、動的な電力損失は生じない。これらの保持可能なレジスタは、例えば、クロックゲーティングを用いて実施可能である。これらのレジスタの別の利点は、レジスタが形成する付加的なパイプライン段は、プロセッサをより高いクロック周波数で動かすことを可能にする点である。機能ユニット入力のすべての入力にレジスタを追加することによる欠点は、割り込み中に保存されるべき状態の量を増加させることである。割り込みは、プロセッサに外部イベントに対する素早い応答を可能にさせ、プロセッサに現在のプログラムトレースのさらなる実行を一時的に延期させ、その代わりに別のトレースを実行させる。延期されたトレースの状態は、割り込みが処理されたときに、プロセッサがその元の状態を復元し、元のトレースを正確に再開できるように、保存されなければならない。予測可能な、短い割り込みのレイテンシーを実現するため、必要に応じて常にプロセッサに割り込みをかけることが可能である。これはリアルタイムアプリケーションにおいて特に重要である。プログラムの任意のポイントでプロセッサに割り込みをかけることは、非常に多量の状態を保存しなければならないことを意味する。
【０００６】
２０００年１０月１８日に出願された未公開欧州特許出願第００２０３５９１．３号（代理人書類番号ＰＨＮ０００５７６号）には、割り込み中に保存しなければならない状態の量を減少させる解決手法が記載されている。第２のコンパクト命令セット、すなわち、割り込みサービスルーチンで使用され、限定されたプロセッサリソースの組だけを使用する命令セットが与えられる。割り込みの場合、第２のコンパクト命令セットによって使用される限定されたプロセッサリソースの組の状態だけを保存すれば十分であり、他のすべてのリソースの状態はフリーズさせるだけである。しかし、レジスタがこの限定されたリソースの組の各機能ユニットのすべての入力の位置にあるとき、第２のコンパクト命令セットによって使用されるリソースは、割り込み中に保存、復元しなければならないかなりの量の状態を有する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、かなりの電力消費の削減と性能改善を維持すると共に、多重命令発行プロセッサの割り込み処理中に保存しなければならない状態の量をさらに削減する解決手法を提供することである。
【課題を解決するための手段】
【０００８】
この目的は、上記の種類の多重命令発行プロセッサであって、第１の発行スロットの組内の複数の保持可能なレジスタのうちの少なくとも一部のロケーションが第２の発行スロットの組内の複数の保持可能なレジスタのうちの少なくとも対応した一部のロケーションとは異なることを特徴とする多重命令発行プロセッサによって達成される。
【０００９】
理想的には、保持可能なレジスタは、発行スロット内の各機能ユニットのすべての入力に置かれる。その場合、使用されていない機能ユニットの各入力はそのままに保たれ、不必要な電力損失は生じない。しかし、これは、割り込み処理中に保存しなければならない状態の量を増加させる。異なる発行スロットに対する保持可能なレジスタの位置を変化させ、あらゆる機能ユニットのすべての入力の前に保持可能なレジスタを置くことを止めることにより、割り込み処理中に必要とされる状態保存の量は少なくなる。この結果として、電力消費の削減は低下し、または、性能の改善は低下する。アプリケーションのタイプに応じて、これらの要求の間で最適な選択を行うことが可能である。
【００１０】
本発明の一実施形態は、多重命令発行プロセッサが、第１の発行スロットの組にアクセスすることができる第１の命令セット手段と、第２の発行スロットの組にアクセスすることができる第２の命令セット手段と、を含むことを特徴とする。本実施形態の利点は、発行スロット内の保持可能なレジスタのロケーションが、この発行スロットを制御する命令セット手段から独立させ得ることである。第２の命令セット手段が割り込みサービスルーチンで使用される場合、第２の発行スロットの組の保持可能なレジスタは、割り込み処理中に保存されなければならない状態の量を最適に削減するため配置することが可能である。しかし、この解決手法は、電力消費の削減に関して最適ではない。保持可能なレジスタの配置は、プロセッサのクロック周波数を増加させることを可能にする付加的なパイプライン段をさらに作成する。多くの割り込みが必要とするのは非常に簡単な割り込みサービスルーチンであるので、限定された発行スロットの組を使用するコンパクトな第２の命令セットで間に合う。したがって、電力消費の削減が最適化されないのは、多重命令発行プロセッサ内の小規模の発行スロットの組に限られる。第１の発行スロットの組は割り込み処理中に使用されず、その結果として、それらの状態を保存する必要はない。保持可能なレジスタは、電力消費を最適に削減し、付加的なパイプライン段を作成することによりクロック周波数を増加させるため配置可能である。プロセッサ全体に関して、これは、性能の改善と、電力消費の削減と、状態保存オーバーヘッドの低減との間で非常にバランスの取れた考慮をもたらす。
【００１１】
本発明の一実施形態は、第１の発行スロットの組において、複数の保持可能なデータレジスタのロケーションが機能ユニットの個別のデータ入力に位置し、一方、第２の発行スロットの組において、複数の保持可能なデータレジスタのロケーションが機能ユニットの共通データ入力に位置することを特徴とする。この実施形態の利点は、保持可能なレジスタは第２の発行スロットの組の機能ユニットのすべての個別の入力に位置するのではなく、それらの共通入力だけに位置するので、割り込み処理中に保存されるべき状態の量が著しく削減される点である。しかし、第２の発行スロットの組の一つの機能ユニットの使用は、その発行スロットの他の機能ユニットの入力を変化させるので、不必要な電力損失が生じる。全部の発行スロットが使用されていないとき、機能ユニットは電力を消費しない。第１の発行スロットの組では、保持可能なレジスタが電力消費を最適に削減するため機能ユニットのすべての入力に配置され、著しい全体的な電力消費の削減が得られる。さらに、第１および第２の発行スロットの組の保持可能なレジスタは、アーキテクチャに付加的なパイプライン段を形成し、プロセッサがより高いクロック周波数で動くことを可能にさせる。その結果として、電力消費の削減と、性能の改善と、割り込み処理中に保存しなければならない状態の量の削減との間で優れた解決案が達成される。
【発明を実施するための最良の形態】
【００１２】
上記の実施形態の特徴は図面を参照してさらに解明され記述される。
【００１３】
図１を参照すると、概略ブロック図には、発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３を含む複数の発行スロットと、レジスタファイルセグメントＲＦ０およびＲＦ１を含む分散レジスタファイルと、を具備したＶＬＩＷプロセッサが示されている。プロセッサは、コントローラＳＱと、レジスタファイルセグメントＲＦ０およびＲＦ１と発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３を結合する接続ネットワークＣＮと、を有する。発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３は第１の命令セットによって使用され、この第１の命令セットは通常のＶＬＩＷ命令を含む。発行スロットＵＣ０は第２の命令セットによって使用される唯一の発行スロットである。第２の命令セットは割り込みサービスルーチンで使用される。
【００１４】
図２を参照すると、概略ブロック図には、発行スロットＵＣ１、ＵＣ２およびＵＣ３が示されている。図３を参照するに、概略ブロック図には、発行スロットＵＣ０が示されている。図２および図３の両方を参照すると、各発行スロットは、デコーダＤＥＣと、タイムシェイプコントローラＴＳＣと、入力ルーティングネットワークＩＲＮと、出力ルーティングネットワークＯＲＮと、機能ユニットＦＵ０、ＦＵ１およびＦＵ２を含む複数の機能ユニットと、を有する。デコーダＤＥＣは、タイムシェイプコントローラＴＳＣと、機能ユニットＦＵ０、ＦＵ１およびＦＵ２と、に結合される。入力ルーティングネットワークＩＲＮは機能ユニットＦＵ０、ＦＵ１およびＦＵ２に結合される。出力ルーティングネットワークＯＲＮはまた機能ユニットＦＵ０、ＦＵ１およびＦＵ２に結合される。デコーダＤＥＣは、各クロックサイクルで発行スロットに供給された演算Ｏをデコードする。デコードステップの結果はオペランドレジスタインデックスＯＲＩであり、図１に示されるように、デコーダＤＥＣはそれらのインデックスを接続ネットワークＣＮへ送る。デコードステップのさらなる結果は結果ファイルインデックスＲＦＩおよびレジスタインデックスＲＩである。デコーダＤＥＣは、これらのインデックスをタイムシェイプコントローラＴＳＣへ送る。タイムシェイプコントローラＴＳＣは、演算が実行されなければならない機能ユニットの入出力動作に応じて、結果ファイルインデックスＲＦＩおよびレジスタインデックスＲＩを適当な量だけ遅延させる。続いて、タイムシェイプコントローラＴＳＣは、図１に示されるように、結果ファイルインデックスＲＦＩおよびレジスタインデックスＲＩを接続ネットワークＣＮへ送る。デコーダＤＥＣは、また、演算を実行するため、カップリングＳＥＬを使用して機能ユニットＦＵ０、ＦＵ１およびＦＵ２のうちの一つを選択する。さらに、デコーダＤＥＣは、カップリングＯＰＴを使用して、実行されるべき演算のタイプに関する情報を機能ユニットＦＵ０、ＦＵ１およびＦＵ２へ送る。入力ルーティングネットワークＩＲＮは、発行スロットＵＣ１、ＵＣ２およびＵＣ３用のオペランドデータＯＤを機能ユニットＦＵ０、ＦＵ１およびＦＵ２の入力へ送る。図１を参照すると、機能ユニットＦＵ０、ＦＵ１およびＦＵ２は、それらの出力データを出力ルーティングネットワークＯＲＮへ送り、続いて、出力ルーティングネットワークＯＲＮは結果データＲＤを通信ネットワークＣＮへ送る。
【００１５】
図２を参照すると、保持可能なレジスタ１−２７は、機能ユニットＦＵ０、ＦＵ１およびＦＵ２のデータ入力および制御入力に直接的に設けられる。保持可能なレジスタ１−５、１１−１５、２１および２３は、機能ユニットＦＵ０、ＦＵ１およびＦＵ２のデータ入力に配置されるので、保持可能なデータレジスタと呼ばれる。保持可能レジスタ１−２７は、機能ユニットが使用されていないとき、機能ユニットＦＵ０、ＦＵ１およびＦＵ２の入力からそのまま変化しないで出る。その結果として、組み合わせゲートは切り替えられず、電力損失は生じない。さらに、結果ファイルインデックスＲＦＩおよびレジスタインデックスＲＩが不必要に変化することを防止し、これにより、不必要な電力損失が生じることを防止するため、保持可能レジスタ２９、３１および３３は、タイムシェイプコントローラＴＳＣの直後に設置される。本実施形態の利点は、電力消費を削減することである。各クロックサイクルに、最大で一つの演算だけが機能ユニットＦＵ０、ＦＵ１およびＦＵ２のうちの一つで開始され、殆どの機能ユニットは単一プロセッササイクルでその演算を終了する。使用されていない機能ユニットの入力が入力ルーティングネットワークＩＲＮまたはデコーダＤＥＣを介して送られたデータのために変化するならば、これらの機能ユニットは、たとえ、出力が無関係であるとしても、使用されているときに匹敵する電力を消費する。保持可能なレジスタ１−３３を追加すると付加的な状態が作成されるが、その状態は発行スロットＵＣ１、ＵＣ２およびＵＣ３にとって無関係である。割り込み中に、これらの状態は固定するだけでよい。保持可能なレジスタ１−３３は面積を追加するだけである。これらのレジスタは、対応する機能ユニットが使用されていない場合、そのレジスタを動作停止状態に保持するためクロックゲーティングを使用することによって、付加的な電力を消費しない。
【００１６】
図３を参照すると、発行スロットＵＣ０は、割り込みサービスルーチンで用いられる第２の命令セットによって使用される唯一の発行スロットである。高速割り込み応答を保証するため、割り込み処理中に保存されるべき状態の量を最小限に抑えることが極めて重大である。これは、保持可能なレジスタを機能ユニットＦＵ０、ＦＵ１およびＦＵ２の共通入力に配置することによって達成される。したがって、保持可能レジスタ１０１、１０３および１０５は、発行スロットＵＣ０の各機能ユニットＦＵ０、ＦＵ１およびＦＵ２のデータ入力ではなく、発行スロットＵＣ０の入力に直接的に置かれる。さらに、保持可能なレジスタ１１７は、発行スロットＵＣ０の各機能ユニットＦＵ０、ＦＵ１およびＦＵ２の入力ではなく、実行されるべき演算ＯＰＴのタイプの情報を送るデコーダＤＥＣの出力に置かれる。保持可能なレジスタ１１３および１１５は、また、タイムシェイプコントローラＴＳＣの出力ではなく、タイムシェイプコントローラＴＳＣの結果ファイルインデックス入力端子およびレジスタインデックス入力端子に置かれ、一つの保持可能なレジスタを節約する。各機能ユニットＦＵ０、ＦＵ１およびＦＵ２の入力における保持可能なレジスタ１０７、１０９および１１１の配置は、これらの機能ユニットの入力がデコーダＤＥＣの共通出力に結合されていないので、そのまま変わらない。
【００１７】
保持可能なレジスタを発行スロットＵＣ０に配置することの利点は、割り込み中に保存されるべき状態の量が、保持可能なレジスタが発行スロットＵＣ１、ＵＣ２およびＵＣ３に位置するために存在する状態の量よりも著しく減少することである。発行スロットＵＣ０のうちの一つの機能ユニットＦＵ０、ＦＵ１およびＦＵ２を使用することにより、発行スロットＵＣ０の他の機能ユニットにおける入力を変化させ、これにより、この発行スロットに不必要な電力損失が生じる。発行スロットの全体が使用されていない場合、保持可能なレジスタ１０１−１１１および１１７は、発行スロットＵＣ０の機能ユニットＦＵ０、ＦＵ１およびＦＵ２による電力消費を阻止する。
【００１８】
発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３に対する保持可能なレジスタのロケーションによって、性能の改善と、電力消費の削減と、状態オーバーヘッドの減少との間でうまくバランスを取って考慮できるようになる。多くの割り込みは非常に簡単な割り込みサービスルーチンを必要とするので、限定された第２の発行スロットの組を使用するコンパクトな第２の命令セットだけを必要とする。発行スロットの大規模なサブセットでは、保持可能なレジスタは、電力消費を最適に削減するため図２に示されるように配置可能であり、この結果として、電力消費の著しい全体的な削減が得られる。割り込み処理中に保存されるべき状態の量は、図３に示されるように、第２の命令セットによって使用される保持可能なレジスタを発行スロットに配置することによって非常に低減される。さらに、発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３に追加された保持可能なレジスタは、アーキテクチャに付加的なパイプライン段を形成し、プロセッサをより高いクロック周波数で動作させることが可能である。図１を再度参照すると、発行スロットＵＣ０、ＵＣ１、ＵＣ２およびＵＣ３に配置された保持可能なレジスタは、既存のデータパスを二つの部分に分割し、データパスの一方の部分を実行するために要する時間を短縮し、プロセッサのクロック周波数を増加させることが可能である。
【００１９】
スーパースカラプロセッサは、また、ＶＬＩＷプロセッサの場合と同様に、多数の演算を並列で実行できる多数の発行スロットを含む。この欄で記載されたＶＬＩＷプロセッサの実施形態の原理は、したがって、スーパースカラプロセッサにも当てはまる。一般に、ＶＬＩＷプロセッサは、スーパースカラプロセッサよりも多数の発行スロットを有する。ＶＬＩＷプロセッサのハードウェアは、より優れたスケーラブルアーキテクチャが得られるスーパースカラプロセッサと比べるとそれほど複雑ではない。発行スロットの数、および、各発行スロット内の機能ユニットの数は、特に、本発明による相対的な電力消費の削減量を決定する。
【００２０】
上記の実施形態は、本発明を限定するのではなく、本発明を例示するものであり、当業者は請求項に記載された事項の範囲から逸脱することなく代替的な実施形態を設計可能であることに注意する必要がある。請求項において、括弧内に記載された参照記号は請求項を限定するものとして解釈されるべきではない。語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は請求項に列挙されていない要素またはステップを排除しない。要素の前に置かれた冠詞（ａまたはａｎ）は、それらの要素が複数個であることを排除しない。幾つかの手段を列挙する装置の発明に係る請求項において、これらの手段の一部は、全く同一のハードウェアによって具現化することができる。一部の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせを使用しても有利にはならないということを示唆するものではない。
【図面の簡単な説明】
【００２１】
【図１】ＶＬＩＷプロセッサの概略ブロック図である。
【図２】第１の命令セットだけにより使用される発行スロットＵＣ１、ＵＣ２およびＵＣ３の概略ブロック図である。
【図３】割り込み処理中に第２の命令セットによって使用される発行スロットＵＣ０の概略ブロック図である。
【符号の説明】
【００２２】
ＵＣ０〜ＵＣ３  発行スロット
ＣＮ  接続ネットワーク
ＳＱ  コントローラ
ＲＦ０〜ＲＦ１  レジスタファイルセグメント
ＤＥＣ  デコーダ
ＴＳＣ  タイムシェイプコントローラ
ＦＵ０〜ＦＵ２  機能ユニット
ＩＲＮ  入力ルーティングネットワーク
ＯＲＮ  出力ルーティングネットワーク
【図１】
2005523499.tif 000003
【図２】
2005523499.tif 000004
【図３】
2005523499.tif 000005
【国際調査報告】
2005523499.tif 000006
2005523499.tif 000007
2005523499.tif 000008