(57)【要約】【課題】スーパースカラプロセッサのＣＭＯＳ半導体回路の動作速度を高く維持しながらリーク電流を低減する。【解決手段】レジスタ割当て信号Ｓ１が、将来使用される可能性がある物理的なレジスタに関連する情報を有する場合、リーク電流制御回路１２は、レジスタ１３−１，１３−２，．．．１３−ｎのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧をＶ１とし、及び／又は、電源１４の電源電圧をＶ２とする。それに対して、リーク電流制御回路１２に供給されたレジスタ割当て信号Ｓ１が、将来使用される可能性がない物理的なレジスタに関連する情報を有する場合、リーク電流制御回路１２は、レジスタ１３−１，１３−２，．．．１３−ｎのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧をＶ３（Ｖ１＜Ｖ３）とし、及び／又は、電源１４の電源電圧をＶ４（Ｖ２＞Ｖ４）とする。【選択図】        図２
2004334296.tif 000002
【特許請求の範囲】
【請求項１】
複数のレジスタから構成されたレジスタファイルを有し、各レジスタが、ＰＭＯＳ素子及びＮＭＯＳ素子を有するＣＭＯＳ半導体回路から構成され、これらレジスタのリネーミングが行われるスーパースカラプロセッサの電力制御装置であって、
将来使用される可能性がある物理的なレジスタに関連する情報を格納する第１の記憶手段と、
将来使用される可能性がない物理的なレジスタに関連する情報を格納する第２の記憶手段と、
前記将来使用される可能性がある物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、第１の値に設定し、及び／又は、前記スーパースカラプロセッサの電源電圧を、第２の値に設定し、かつ、前記将来使用される可能性がない物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、前記第１の値を超える第３の値に設定し、及び／又は、前記スーパースカラプロセッサの電源電圧を、第２の値未満の第４の値に設定することによって、前記ＣＭＯＳ半導体回路のリーク電流を制御するリーク電流制御手段とを具えることを特徴とする電力制御装置。
【請求項２】
前記将来使用される可能性がある物理的なレジスタに関連する情報を、演算開始後の後続の命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報と、演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報のうちの少なくとも一方とし、
前記論理的なレジスタを割り当てる予定がない物理的なレジスタに関連する情報を、演算開始後に全ての命令が実行された論理的なレジスタが既に割り当てられた物理的なレジスタに関連する情報と、未使用の物理的なレジスタに関連する情報のうちの少なくとも一方としたことを特徴とする請求項１記載の電力制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レジスタのリネーミングを行うスーパースカラプロセッサで利用され、そのレジスタファイルの複数のレジスタをそれぞれ構成するＣＭＯＳ半導体回路のＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧、及び／又は、スーパースカラプロセッサの電源電圧を、適切な値に設定することによって、リーク電流を制御する電力制御装置に関する。
【０００２】
【従来の技術】
従来、複数の命令を同時に実行するためにレジスタのリネーミングを行うスーパースカラプロセッサが提案されている（例えば、特許文献１及び非特許文献１参照）。スーパースカラプロセッサでは、プログラム上の元の配列とは異なる順序で命令を実行するために、レジスタ間の依存関係に関する情報を保持できるようにする必要がある。また、レジスタ間の依存関係を保持するためにも、レジスタリネーミングが利用される。
【０００３】
プログラマの視点から見ると、命令は、プログラム上の元の順序で実行される。ある命令がその書込み先のレジスタに演算結果を格納すると、その値は直ちに後続の命令で利用可能になる。しかしながら、スーパースカラプロセッサでは、複数の命令が同時に実行されるため、それらの命令の演算結果が直ちに後続の命令に利用可能になるとは限らない。したがって、直後の命令が先行命令の演算結果を待機している間に更に後続の命令が実行可能になっているという事態が、頻繁に生じうる。
【０００４】
スーパースカラプロセッサは、これらの後続の命令をプログラム上の元の配列とは異なる順序で実行することによって高い演算性能を達成している。このような順序の変更は、プログラマには意識できないように実装されており、すなわち、先行する全ての命令が完了しない限り、順序を入れ替えられた命令の演算結果は、一時的なものとして取り扱われる。先行する全ての命令が完了すれば、この命令も完了され、プロセッサの状態が更新される。
【０００５】
プログラム内部では、プログラム中で指示される論理的なレジスタの番号と、ハードウェアとして実装される物理的なレジスタの番号との間に、明確な違いがない。命令フィールドには、書込みレジスタ番号が明示されている。しかしながら、レジスタリネーミングを行うと、論理的なレジスタは、動的に物理的なレジスタに割り当てられる。演算結果は、新しく割り当てられた物理的なレジスタに格納される。
【０００６】
一旦、このような割当てが行われると、レジスタ間の依存関係は、物理的なレジスタを比較することによって簡単に決定され、もはや命令の順序を考慮する必要はない。すなわち、物理的なレジスタの存在や、論理的なレジスタから物理的なレジスタへの割当ては、プログラマには意識されない。
【０００７】
スーパースカラプロセッサでは、先行する命令との間の依存関係が全て解消された後に命令を実行できる。すなわち、各命令は、全てのオペランドが利用可能になるまでは実行されない。全てのオペランドが利用可能になった後には、プログラム中の元の配列とは関係ない順序で各命令が実行される。
【０００８】
このような命令を正確に実行するために、プロセッサは、オペランドがいつ利用可能になるかを把握する必要があるが、例えば、複数の命令が同一の論理的なレジスタを書込みレジスタとして指定している場合には、いつ利用可能になるかを把握するのが非常に困難になる。
【０００９】
物理的なレジスタは、完了した演算結果と一時的な演算結果の両方を格納する必要があるので、物理的なレジスタの数を論理的なレジスタの数より多くする必要がある。ある命令の演算結果が得られると、プロセッサは、書込み先の論理的なレジスタに、新しく物理的なレジスタを割り当てる。その後、このような割当てがマップテーブル１（図１）に記憶される。このような割当ては、実際には、演算の終了時ではなく命令のデコード時に行われる必要がある。
【００１０】
フリーリスト３（図１）から物理的なレジスタが割り当てられると、その物理的なレジスタには一度だけ演算結果が書き込まれる。その物理的なレジスタは、割当て後から書込みまでの間も準備中となる。後続の命令は、このような書込みの終了を待ち続ける必要がある。書込みが終了すると、そのレジスタに格納されたオペランドは利用可能の状態となる。この値は変更されてはならない。
【００１１】
後続の命令が同一の論理的なレジスタに演算結果を書き込むとしても、実際には新しい物理的なレジスタが割り当てられており、同一の物理的なレジスタの値が変更されるわけではない。古い物理的なレジスタは、一旦、アクティブリスト２（図１）に退避される。この同一の論理的なレジスタの番号を書込み先として使用する命令が完了すると、この論理的なレジスタ上の古い値は必要でなくなるので、以前にこの論理的なレジスタに割り当てられたレジスタは、再利用可能となり、フリーリスト３に移動する。
【００１２】
これまで説明したように、マップテーブル１には、最新の論理的なレジスタに関する物理的なレジスタの情報が記憶され、アクティブリスト２には、古い論理レジスタに関する物理レジスタの情報が記憶され、フリーリスト３には、未使用の物理レジスタの情報が記憶されている。すなわち、後続の命令を実行するために必要な論理レジスタに関する割当ての情報は、マップテーブル１のみに記憶されている。
【００１３】
上記レジスタリネーミングを実行するために、スーパースカラプロセッサは、命令セットに設定されているのより多くの物理レジスタを有する。例えば、特許文献１に記載されたスーパースカラプロセッサでは、６４個の論理レジスタ及び１２８個の物理レジスタの実装となっている。
【００１４】
レジスタファイルに用いられる半導体回路としては、ＣＭＯＳ半導体回路が主流となっているが、一般に、高速の半導体回路の消費電力は大きくなる傾向にある。ＣＭＯＳ半導体回路の消費電力は、充放電による電力消費、短絡電流による電力消費及びリーク電流による電力消費の三つに分類される。
【００１５】
【特許文献１】
米国特許明細書第５，７５８，１１２号  （Ｆｉｇ．１）
【非特許文献１】
Ｋｅｎｎｅｔｈ  Ｃ．  Ｙｅａｇｅｒ  “Ｔｈｅ  Ｍｉｐｓ  Ｒ１００００  Ｓｕｐｅｒｓｃａｌａｒ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ”  ＩＥＥＥ  Ｍｉｃｒｏ  （Ａｐｒｉｌ  １９９６）  ｐｐ．２８−４０  （Ｆｉｇｕｒｅ  ２）
【００１６】
【発明が解決しようとする課題】
近年、ＣＭＯＳ半導体回路に供給される電源電圧の低下に伴うＣＭＯＳ半導体回路のＮＭＯＳ素子及びＰＭＯＳ素子のしきい値電圧の低下によって、ＣＭＯＳ半導体回路のリーク電流による消費電力が急増し、かかる消費電力を低減することが急務となっている。
【００１７】
既に説明したように、スーパースカラプロセッサには非常に多くのレジスタが必要であり、それに伴ってリーク電流が大きくなっている。ＣＭＯＳ半導体回路のリーク電流は、しきい値電圧を高く保持し及び／又は電源電圧を低く保持することによって抑制することができるが、しきい値電圧を高く保持し及び／又は電源電圧を低く保持すると、ＣＭＯＳ半導体回路の動作速度が低下するという不都合がある。
【００１８】
本発明の目的は、スーパースカラプロセッサのＣＭＯＳ半導体回路の動作速度を高く維持しながらリーク電流を低減することができる電力制御装置を提供することである。
【００１９】
【課題を解決するための手段】
本発明による電力制御装置は、
複数のレジスタから構成されたレジスタファイルを有し、各レジスタが、ＰＭＯＳ素子及びＮＭＯＳ素子を有するＣＭＯＳ半導体回路から構成され、これらレジスタのリネーミングが行われるスーパースカラプロセッサの電力制御装置であって、
将来使用される可能性がある物理的なレジスタに関連する情報を格納する第１の記憶手段と、
将来使用される可能性がない物理的なレジスタに関連する情報を格納する第２の記憶手段と、
前記将来使用される可能性がある物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、第１の値に設定し、及び／又は、前記スーパースカラプロセッサの電源電圧を、第２の値に設定し、かつ、前記将来使用される可能性がない物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、前記第１の値を超える第３の値に設定し、及び／又は、前記スーパースカラプロセッサの電源電圧を、第２の値未満の第４の値に設定することによって、前記ＣＭＯＳ半導体回路のリーク電流を制御するリーク電流制御手段とを具えることを特徴とする。
【００２０】
本発明によれば、将来使用される可能性がある物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、第１の値に設定し、及び／又は、スーパースカラプロセッサの電源電圧を、第２の値に設定し、将来使用される可能性がない物理的なレジスタに関連する情報に基づいて、対応するレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を、第１の値を超える第３の値に設定し、及び／又は、スーパースカラプロセッサの電源電圧を、第２の値未満の第４の値に設定することによって、ＣＭＯＳ半導体回路のリーク電流を制御する。このように、レジスタの割当てに寄与するレジスタのみのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を低く設定し、及び／又は、電源電圧を高く設定するとともに、それ以外のレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を高く設定し、及び／又は、電源電圧を低く設定することによって、スーパースカラプロセッサのＣＭＯＳ半導体回路の動作速度を高く維持しながらリーク電流を低減することができる。
【００２１】
例えば、前記将来使用される可能性がある物理的なレジスタに関連する情報を、演算開始後の後続の命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報と、演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報のうちの少なくとも一方とし、前記論理的なレジスタを割り当てる予定がない物理的なレジスタに関連する情報を、演算開始後に全ての命令が実行された論理的なレジスタが既に割り当てられた物理的なレジスタに関連する情報と、未使用の物理的なレジスタに関連する情報のうちの少なくとも一方とする。
【００２２】
なお、演算開始後の後続の命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報は、第１の記憶手段の一部を構成するマップリストに格納され、演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報は、第１の記憶手段を構成するマップリスト又はアクティブリストに格納される。それに対して、演算開始後に全ての命令が実行された論理的なレジスタが既に割り当てられた物理的なレジスタに関連する情報は、第２の記憶手段の一部を構成するアクティブリストに格納され、未使用の物理的なレジスタに関連する情報は、第２の記憶手段の一部を構成するフリーリストに格納される。
【００２３】
【発明の実施の形態】
本発明による電力制御装置の実施の形態を、図面を参照して詳細に説明する。
図２は、本発明による電力制御装置の実施の形態を示す図である。この電力制御装置は、レジスタのリネーミングが行われるスーパースカラプロセッサに適用され、メモリ１１と、リーク電流制御回路１２とを具える。
【００２４】
メモリ１１は、演算開始後の後続の命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報又は演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報を格納するマップテーブル１（図１）と、演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報又は演算開始後に全ての命令が実行された論理的なレジスタが既に割り当てられた物理的なレジスタに関連する情報を格納するアクティブリスト２（図１）と、未使用の物理的なレジスタに関連する情報を格納するフリーリスト３（図１）とを有する。
【００２５】
リーク電流制御回路１２は、後に詳細に説明するように、メモリ１１からのレジスタ割当て信号Ｓ１を受信し、スーパースカラプロセッサのレジスタファイル１３のｎ個のレジスタ１３−１，１３−２，．．．１３−ｎ（ｎを２以上の自然数とする。）のうちの対応するものに、しきい値電圧制御信号Ｓ２−１，Ｓ２−２，．．．Ｓ２−ｎのうちの対応するものを送信し、及び／又は、電源１４に対して電源電圧制御信号Ｓ３を送信する。レジスタ１３−１，１３−２，．．．１３−ｎはそれぞれ、ＰＭＯＳ素子及びＮＭＯＳ素子を有する図示しないＣＭＯＳ半導体回路から構成される。なお、リーク電流制御回路１２による電源電圧の制御は、電源供給を絶つことも含む。
【００２６】
本実施の形態の動作を説明する。リーク電流制御回路１２に供給されたレジスタ割当て信号Ｓ１が、将来使用される可能性がある物理的なレジスタに関連する情報、すなわち、演算開始後の後続の命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報、又は、演算開始前の全ての命令を実行するために必要な論理的なレジスタが割り当てられる物理的なレジスタに関連する情報を有する場合、リーク電流制御回路１２は、対応するレジスタ１３−１，１３−２，．．．１３−ｎに対して、ＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧をＶ１とする情報を有するしきい値電圧制御信号Ｓ２−１，Ｓ２−２，．．．Ｓ２−ｎを送信し、及び／又は、電源電圧をＶ２とする情報を有する電源電圧制御信号Ｓ３を、電源１４に送信する。
【００２７】
それに対して、リーク電流制御回路１２に供給されたレジスタ割当て信号Ｓ１が、将来使用される可能性がない物理的なレジスタに関連する情報、すなわち、演算開始後に全ての命令が実行された論理的なレジスタが既に割り当てられた物理的なレジスタに関連する情報、又は、未使用の物理的なレジスタに関連する情報を有する場合、リーク電流制御回路１２は、対応するレジスタ１３−１，１３−２，．．．１３−ｎに対して、ＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧をＶ３（Ｖ１＜Ｖ３）とする情報を有するしきい値電圧制御信号Ｓ２−１，Ｓ２−２，．．．Ｓ２−ｎを送信し、及び／又は、電源電圧をＶ４（Ｖ２＞Ｖ４）とする情報を有する電源電圧制御信号Ｓ３を、電源１４に送信する。
【００２８】
本実施の形態によれば、レジスタの割当てに寄与するレジスタのみのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を低く設定し、及び／又は、電源電圧を高く設定し、それ以外のレジスタのＰＭＯＳ素子及びＮＭＯＳ素子のしきい値電圧を高く設定し、及び／又は、電源電圧を低く設定しているので、スーパースカラプロセッサのＣＭＯＳ半導体回路の動作速度を高く維持しながらリーク電流を低減することができる。
【００２９】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。
【図面の簡単な説明】
【図１】スーパースカラプロセッサのマップテーブル、アクティブリスト及びフリーリストの関係を示す図である。
【図２】本発明による電力制御装置の実施の形態を示す図である。
【符号の説明】
１  マップリスト
２  アクティブリスト
３  フリーリスト
１１  メモリ
１２  リーク電流制御回路
１３  レジスタファイル
１３−１，１３−２，．．．，１３−ｎ  レジスタ
１４  電源
Ｓ１  レジスタ割当て信号
Ｓ２−１，Ｓ２−２，．．．Ｓ２−ｎ  しきい値電圧制御信号
Ｓ３  電源電圧制御信号
【図１】
2004334296.tif 000003
【図２】
2004334296.tif 000004