JP2009003807A - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP2009003807A
JP2009003807A JP2007165579A JP2007165579A JP2009003807A JP 2009003807 A JP2009003807 A JP 2009003807A JP 2007165579 A JP2007165579 A JP 2007165579A JP 2007165579 A JP2007165579 A JP 2007165579A JP 2009003807 A JP2009003807 A JP 2009003807A
Authority
JP
Japan
Prior art keywords
instruction
reservation station
stored
arithmetic
normal state
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.)
Granted
Application number
JP2007165579A
Other languages
English (en)
Other versions
JP4978332B2 (ja
Inventor
Hirotoshi Sasaki
博敏 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007165579A priority Critical patent/JP4978332B2/ja
Publication of JP2009003807A publication Critical patent/JP2009003807A/ja
Application granted granted Critical
Publication of JP4978332B2 publication Critical patent/JP4978332B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

【課題】マイクロプロセッサの消費電力を簡易な構成で低減し、かつマイクロプロセッサが動作中でも柔軟に電力供給を制御すること。
【解決手段】命令検出処理部171がRS−MAU151、RS−ALU152、RS−FPU153に命令が格納されているか否かを検出して、命令が格納されている場合には、動作状態切替指示処理部172がメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163に対して通常状態で動作するよう指示し、命令が格納されていない場合には、命令を実行中でないメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163に対して低消費電力状態で動作するよう指示する。
【選択図】 図2

Description

本発明は、省電力で動作するマイクロプロセッサに関し、特に、簡易な構成で消費電力を低減し、かつ動作中でも柔軟に電力供給を制御することができるマイクロプロセッサに関するものである。
近年、マイクロプロセッサの回路の大規模化、クロック周波数の向上化に伴ってマイクロプロセッサの消費電力量が増大している。その対策として、マイクロプロセッサを省電力で動作させる様々な技術が提案されている。
例えば、特許文献1では、命令レジスタに記憶された命令をデコードする際に、命令を実行するために必要な機能ユニットを解析して、不要な機能ユニットに対して電源供給を停止する技術が開示されている。
また、特許文献2では、マイクロプロセッサに電力制御用レジスタを設け、各機能ユニットに対応するレジスタの定義値に基づいて各機能ユニットのクロック周波数や電源供給を制御することでマイクロプロセッサの消費電力を低減させる技術が開示されている。
特開昭54−14624号公報 特開平9−62418号公報
しかしながら、上記特許文献1で開示されている技術は、命令を1つずつ逐次実行することを前提とした技術であるため、複数の命令を同時に実行するスーパスカラ型のマイクロプロセッサにそのまま適用することができないという問題がある。
また、上記特許文献2で開示されている技術では、予め設定した電力制御用レジスタの定義値に基づいて機能ユニットに供給する電力が一意に決定されるため、マイクロプロセッサの動作中に電力供給を柔軟に制御することができない。すなわち、マイクロプロセッサが処理する命令によって機能ユニットが必要とする電力量は変動するにも関わらず、上記特許文献2のように機能ユニット毎に供給する電力量を一意に決めてしまうと、大量の命令を処理する機能ユニットに対して十分に電力が供給されないという事態が発生するおそれがある。
なお、マイクロプロセッサの省電力化を図るには、回路構成が大規模になることを避ける必要がある。省電力化を図るために回路に複雑な機構を追加してしまうとかえって消費電力が増大してしまうからである。
以上のことから、現在主流となっているスーパスカラ型のマイクロプロセッサの消費電力をいかにして簡易な構成で低減し、かつマイクロプロセッサが動作中でもいかにして柔軟に電力供給を制御するかが重要な課題となっている。
本発明は、上記課題を解消するためになされたものであって、簡易な構成で消費電力を低減し、かつ動作中でも柔軟に電力供給を制御することができるマイクロプロセッサを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、通常状態と低消費電力状態との2種類の動作モードで動作する演算器と該演算器により実行される命令を格納するリザベーションステーション(実施例1及び2における「RS−MAU151、RS−ALU152、RS−FPU153、RS−MAU311、RS−ALU312及びRS−FPU313」に相当する)とを対応付けて有するマイクロプロセッサであって、前記リザベーションステーションに命令が格納されているか否かを検出する命令検出手段と、前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示する動作状態切替指示手段とを備えたことを特徴する。
また、本発明の他の態様では、前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出され、かつ、該リザベーションステーションに対応する前記演算器が命令を実行中でない場合に該演算器に対して低消費電力状態で動作するよう指示することを特徴とする。
また、本発明の他の態様では、前記命令検出手段は、前記リザベーションステーションに命令が格納されているか否かを検出するとともに該命令が実行可能であるか否かを検出し、前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示することを特徴とする。
また、本発明の他の態様では、前記マイクロプロセッサは、前記リザベーションステーションと該リザベーションステーションに対応する複数の演算器から構成される演算器群とを対応付けて有し、前記命令検出手段は、前記リザベーションステーションに格納されている命令数を検出し、前記動作状態切替指示手段は、前記命令検出手段により検出された前記命令数に基づいて前記リザベーションステーションに対応する前記演算器群の中で通常状態で動作させる演算器数を算出し、該演算器群に対して該演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする。
また、本発明の他の態様では、前記リザベーションステーションに格納されている命令数を示す格納命令数と通常状態で動作させる演算器の数を示す通常状態動作演算器数との関係を記憶する閾値管理テーブルをさらに備え、前記動作状態切替指示手段は、前記閾値管理テーブルから前記命令数に該当する前記通常状態動作演算器数を取得し、前記リザベーションステーションに対応する前記演算器群に対して該通常状態動作演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする。
本発明の一つの態様によれば、リザベーションステーションに命令が格納されているか否かを検出し、リザベーションステーションに命令が格納されていないと検出された場合に、そのリザベーションステーションに対応する演算器に対して低消費電力状態で動作するよう指示し、リザベーションステーションに命令が格納されていると検出された場合に、そのリザベーションステーションに対応する演算器に対して通常状態で動作するよう指示する構成としたので、命令を実行する必要のない演算器が低消費電力状態で動作し、ひいてはマイクロプロセッサの消費電力を低減することができる。また、マイクロプロセッサが動作中であっても演算器毎に動作モードを変更するので、柔軟に電力供給を制御することができる。また、従来のスーパスカラ型マイクロプロセッサの構成を大きく変更することなく消費電力を低減することができる。
また、本発明の一つの態様によれば、リザベーションステーションに命令が格納されていないと検出され、かつ、そのリザベーションステーションに対応する演算器が命令を実行中でない場合に、演算器に対して低消費電力状態で動作するよう指示する構成としたので、命令を実行中の演算器に対して低消費電力状態で動作するよう指示することを防止し、ひいてはマイクロプロセッサの処理速度を低下させてしまうことを防止できる。
また、本発明の一つの態様によれば、リザベーションステーションに命令が格納されているか否かを検出するとともにその命令が実行可能であるか否かを検出し、リザベーションステーションに実行可能である命令が格納されていないと検出された場合に、そのリザベーションステーションに対応する演算器に対して低消費電力状態で動作するよう指示し、リザベーションステーションに実行可能である命令が格納されていると検出された場合に、そのリザベーションステーションに対応する演算器に対して通常状態で動作するよう指示する構成としたので、リザベーションステーションに命令が格納されている場合であっても、その命令が実行可能でなければ対応する演算器が低消費電力状態で動作し、即座に命令を実行する演算器以外の演算器を低消費電力状態で動作させることができ、ひいては効率的にマイクロプロセッサの消費電力を低減することができる。
また、本発明の一つの態様によれば、リザベーションステーション格納されている命令数を検出し、その命令数に基づいてリザベーションステーションに対応する演算器群の中で通常状態で動作させる演算器数を算出し、演算器群に対して算出した演算器数に該当する数の演算器が通常状態で動作するよう指示する構成としたので、複数の演算器から構成される演算器群内で動作する必要のない演算器が低消費電力状態で動作し、ひいては極めて効果的な消費電力の低減を図ることができる。
また、本発明の一つの態様によれば、リザベーションステーションに格納されている命令数と通常状態で動作させる演算器数との関係を閾値管理テーブルに記憶しておき、閾値管理テーブルから通常状態で動作させる演算器数を取得し、取得した演算器数に該当する数の演算器が通常状態で動作するよう指示する構成としたので、閾値管理テーブルの閾値を変更するだけで低消費電力状態で動作させる演算器数を簡易に変更することができる。
以下に添付図面を参照して、本発明にかかるマイクロプロセッサの好適な実施例を詳細に説明する。
まず、本実施例1に係るマイクロプロセッサの概要について説明する。図1は、本実施例1に係るマイクロプロセッサの概要を説明するための説明図である。同図に示すように、マイクロプロセッサ10は、アウトオブオーダで命令を実行するスーパスカラ型のマイクロプロセッサであり、リザベーションステーション11と、演算器12と、動作状態切替制御部13とを有する。
リザベーションステーション11は、演算器12により実行される命令及びその命令の実行に必要な資源に関する情報を格納する記憶素子であり、エントリ11a〜11eを有し、エントリ11a〜11eは、命令等を1つずつ格納する。以下では、命令が格納されているエントリに斜線を付して図示することとする。例えば、図1に示したリザベーションステーション11は、エントリ11a〜11cに命令が格納されている。
演算器12は、リザベーションステーション11に格納されている命令を実行する演算回路であり、「通常状態」と「低消費電力状態」との2種類の動作モードで動作する。ここで言う「通常状態」とは通常の電力が供給されている状態を示し、「低消費電力状態」とは微小の電力が供給されている状態を示す。以下では、「通常状態」で動作している演算器に斜線を付して図示することとする。例えば、図1の演算器12は、「通常状態」で動作している。
なお、図1では、説明を簡単にするために、マイクロプロセッサ10が1組のリザベーションステーション11と演算器12とを有する例を示したが、実際は、命令の系統毎にリザベーションステーション11と演算器12との組み合わせを複数有することもある。また、リザベーションステーション11に対して複数の演算器12を有することもある。
動作状態切替制御部13は、本発明の特徴をなす制御部であり、リザベーションステーション11に命令が格納されているか否かを検出し、命令が格納されている場合には、演算器12に対して「通常状態」で動作するよう指示し、命令が格納されていない場合には、演算器12に対して「低消費電力状態」で動作するよう指示する。
このように、リザベーションステーション11を有するマイクロプロセッサ10では、演算器12がリザベーションステーション11に格納されている命令を実行するため、リザベーションステーション11に命令が格納されていない場合は、演算器12を「低消費電力状態」で動作させても問題とならない。すなわち、リザベーションステーション11に命令が格納された場合のみ演算器12を「通常状態」で動作させることで、マイクロプロセッサ10の消費電力を低減することができる。
例えば、事務処理系のプログラムでは、浮動小数点系の命令の実行頻度が低いことが知られている。このようなプログラムをマイクロプロセッサが処理する場合、浮動小数点系のリザベーションステーションに命令が格納されない期間が長くなり、その間は、浮動小数点系の演算器は「低消費電力状態」となるのでマイクロプロセッサの省電力化を実現できる。
以上のように、本実施例1に係るマイクロプロセッサ10では、リザベーションステーション11に命令が格納されているか否かを検出するだけで演算器12の動作モードを制御するので、簡易な構成で消費電力を低減することができる。
次に、本実施例1に係るマイクロプロセッサの構成について説明する。図2は、本実施例1に係るマイクロプロセッサの構成を示す機能ブロック図である。同図に示すように、マイクロプロセッサ100は、バスインタフェースユニット(以下、「BIU」と言う)110と、命令キャッシュ120と、命令デコーダ130と、データキャッシュ140と、リザベーションステーション150と、機能ユニット160と、動作状態切替制御部170とを有する。
BIU110は、図示しない主記憶装置等の外部デバイスと入出力処理を行うインタフェースである。命令キャッシュ120は、BIU110を介して図示しない主記憶装置等から後述する機能ユニット160により実行される命令を取得して記憶する装置である。
命令デコーダ130は、命令キャッシュ120に記憶された命令をデコードして、デコードした命令をメモリアクセス系、算術論理演算系、浮動小数点演算系等の系統に分類し、リザベーションステーション150に記憶させる装置である。データキャッシュ140は、機能ユニット160が実行した命令の結果や機能ユニット160が命令を実行する際に必要となるデータを記憶する装置である。
リザベーションステーション150は、命令デコーダ130によりデコードされた命令を格納する記憶素子であり、メモリアクセスリザベーションステーション(以下、「RS−MAU」と言う)151と、算術論理演算リザベーションステーション(以下、「RS−ALU」と言う)152と、浮動小数点演算リザベーションステーション(以下、「RS−FPU」と言う)153とを有する。
RS−MAU151は、エントリ151a〜151eを有し、命令デコーダ130によりメモリアクセス系と分類された命令をエントリ151a〜151eに1つずつ格納する。また、RS−ALU152は、エントリ152a〜152eを有し、命令デコーダ130により算術論理演算系と分類された命令をエントリ152a〜152eに1つずつ格納し、RS−FPU153は、エントリ153a〜153eを有し、命令デコーダ130により浮動小数点演算系と分類された命令をエントリ153a〜153eに1つずつ格納する。
このように、リザベーションステーション150は、格納する命令の系統別に分かれて構成される。なお、本実施例1では、リザベーションステーション150がメモリアクセス系、算術論理演算系、浮動小数点演算系の命令を格納するRS−MAU151、RS−ALU152、RS−FPU153を有する場合を示したが、これ以外の分類に基づいて命令の系統を定め、その系統毎にリザベーションステーションを設けることとしてもよい。
機能ユニット160は、リザベーションステーション150に格納されている命令を実行する演算器の集まりであり、メモリアクセス群161と、算術論理演算器群162と、浮動小数点演算器群163とを有する。
メモリアクセス群161は、MAU161a〜161cの3つの演算器及び実行フラグ161jから構成され、算術論理演算器群162はALU162a〜162cの3つの演算器及び実行フラグ162jから構成され、浮動小数点演算器群163はFPU163a〜163cの3つの演算器及び実行フラグ163jから構成される。MAU161a〜161c、ALU162a〜162c及びFPU163a〜163cは、「通常状態」と「低消費電力状態」との2種類の動作モードで動作する。
なお、図2では、機能ユニット160がメモリアクセス群161、算術論理演算器群162及び浮動小数点演算器群163を有する場合を示したが、これ以外の分類に基づいて命令の系統を定め、その系統毎に演算器群を構成することとしてもよい。
ここで、リザベーションステーション150と機能ユニット160には対応関係がある。具体的には、RS−MAU151はメモリアクセス群161に対応し、RS−ALU152は算術論理演算器群162に対応し、RS−FPU153は浮動小数点演算器群163に対応する。そして、メモリアクセス群161、算術論理演算器群162、浮動小数点演算器群163は、対応するリザベーションステーション150に格納されている命令だけを実行する。
例えば、メモリアクセス群161は、RS−MAU151に格納されている命令を実行するが、RS−ALU152及びRS−FPU153に格納されている命令を実行することはない。同様に、算術論理演算器群162はRS−ALU152に格納されている命令だけを実行し、浮動小数点演算器群163はRS−FPU153に格納されている命令だけを実行する。
実行フラグ161jは、メモリアクセス群161が命令を実行中であるか否かを示すデータであり、後述する動作状態切替指示処理部172によりメモリアクセス群161が命令を実行中であるか否かを判断する際に用いられる。
同様に、実行フラグ162jは算術論理演算器群162が命令を実行中であるか否かを示すデータであり、実行フラグ163jは浮動小数点演算器群163が命令を実行中であるか否かを示すデータである。以下では、演算器群が命令を実行中である場合には実行フラグ161j、実行フラグ162j、実行フラグ163jを「1」とし、演算器が命令を実行中でない場合には「0」とする。
動作状態切替制御部170は、機能ユニット160の動作モードを切り替える制御部であり、命令検出処理部171と、動作状態切替指示処理部172とを有する。命令検出処理部171は、RS−MAU151、RS−ALU152、RS−FPU153に命令が格納されているか否かを検出し、検出結果を動作状態切替指示処理部172に出力する処理部である。
図2の例の場合、命令検出処理部171は、「RS−MAU151は命令有、RS−ALU152は命令無、RS−FPU153は命令有」という検出結果を動作状態切替指示処理部172に出力する。このように、命令検出処理部171は、RS−MAU151、RS−ALU152、RS−FPU153毎に命令が格納されているか否かを検出する。
動作状態切替指示処理部172は、命令検出処理部171から受信した検出結果と実行フラグ161j、162j、163jとに基づいて、メモリアクセス群161、算術論理演算器群162、浮動小数点演算器群163に対して動作モードを切り替えるよう指示する処理部である。
具体的には、RS−MAU151に命令が格納されている場合には、メモリアクセス群161に対して「通常状態」で動作するよう指示し、RS−ALU152に命令が格納されている場合には、算術論理演算器群162に対して「通常状態」で動作するよう指示し、RS−FPU153に命令が格納されている場合には、浮動小数点演算器群163に対して「通常状態」で動作するよう指示する。
一方、RS−MAU151に命令が格納されていない場合には、メモリアクセス群161の実行フラグ161jを取得し、実行フラグ161jが「0」の場合には、メモリアクセス群161に対して「低消費電力状態」で動作するよう指示し、実行フラグ161jが「1」の場合には、メモリアクセス群161に対して指示を行わない。
このように、実行フラグ161jを用いてメモリアクセス群161が実行中であるか否かを判断することで、命令を実行中のメモリアクセス群161に対して「低消費電力状態」で動作するよう指示してしまうことを防止することができる。
同様に、RS−ALU152に命令が格納されておらず、かつ、算術論理演算器群162の実行フラグ162jが「0」の場合には、算術論理演算器群162に対して「低消費電力状態」で動作するよう指示し、RS−ALU152に命令が格納されておらず、かつ、実行フラグ162jが「1」の場合には、算術論理演算器群162に対して指示を行わない。
また、RS−FPU153に命令が格納されておらず、かつ、浮動小数点演算器群163の実行フラグ163jが「0」の場合には、浮動小数点演算器群163に対して「低消費電力状態」で動作するよう指示し、RS−FPU153に命令が格納されておらず、かつ、実行フラグ163jが「1」の場合には、浮動小数点演算器群163に対して指示を行わない。
図2の例の場合、動作状態切替指示処理部172は、「RS−MAU151は命令有、RS−ALU152は命令無、RS−FPU153は命令有」という検出結果を命令検出処理部171から受信するので、メモリアクセス群161に対して「通常状態」で動作するよう指示し、浮動小数点演算器群163に対して「通常状態」で動作するよう指示する。
一方、RS−ALU152には命令が格納されていないため、動作状態切替指示処理部172は、算術論理演算器群162の実行フラグ162jを取得し、実行フラグ162jが「0」の場合には、算術論理演算器群162に対して「低消費電力状態」で動作するよう指示し、実行フラグ162jが「1」の場合には、算術論理演算器群162に対して指示を行わない。なお、図2の例は、実行フラグ162jが「0」であるとして、算術論理演算器群162に対して「低消費電力状態」で動作するよう指示した場合を示している。
次に、図2に示したマイクロプロセッサ100による動作状態切替処理の手順について説明する。図3は、図2に示したマイクロプロセッサ100による動作状態切替処理手順を示すフローチャートである。なお、この処理手順は、マイクロプロセッサ100が動作している間、1サイクル毎に実行される。
図3に示すように、マイクロプロセッサ100では、命令検出処理部171がRS−MAU151、RS−ALU152、RS−FPU153に命令が格納されているか否かを検出して、検出結果を動作状態切替指示処理部172に出力する。
検出結果を受信した動作状態切替指示処理部172は、検出結果を解析して、RS−MAU151に命令が格納されている場合には(ステップS201肯定)、メモリアクセス群161に対して「通常状態」で動作するよう指示する(ステップS202)。
同様に、RS−ALU152若しくはRS−FPU153に命令が格納されている場合には(ステップS201肯定)、算術論理演算器群162若しくは浮動小数点演算器群163に対して「通常状態」で動作するよう指示する(ステップS202)。
かかる指示を受け付けたメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163は、「通常状態」で動作する(ステップS203)。なお、例えば、「通常状態」にしてから演算器が動作可能になるまでに3サイクルかかるのであれば、リザベーションステーションには3サイクル分以上のエントリがあることが好ましい。
一方、RS−MAU151に命令が格納されていない場合には(ステップS201否定)、動作状態切替指示処理部172は、メモリアクセス群161の実行フラグ161jを取得し、実行フラグ161jが「0」の場合には(ステップS204否定)、メモリアクセス群161に対して「低消費電力状態」で動作するよう指示する(ステップS205)。
かかる指示を受け付けたメモリアクセス群161は、「低消費電力状態」で動作する(ステップS206)。また、実行フラグ161jが「1」の場合には(ステップS204肯定)、動作状態切替指示処理部172は、メモリアクセス群161に対して指示を行わない。
同様に、RS−ALU152に命令が格納されておらず(ステップS201否定)、かつ、実行フラグ162jが「0」の場合には(ステップS204否定)、動作状態切替指示処理部172は、算術論理演算器群162に対して「低消費電力状態」で動作するよう指示する(ステップS205)。
かかる指示を受け付けた算術論理演算器群162は、「低消費電力状態」で動作する(ステップS206)。また、実行フラグ162jが「1」の場合には(ステップS204肯定)、動作状態切替指示処理部172は、算術論理演算器群162に対して指示を行わない。
また、RS−FPU153に命令が格納されておらず(ステップS201否定)、かつ、163jが「0」の場合には(ステップS204否定)、動作状態切替指示処理部172は、浮動小数点演算器群163に対して「低消費電力状態」で動作するよう指示する(ステップS205)。
かかる指示を受け付けた浮動小数点演算器群163は、「低消費電力状態」で動作する(ステップS206)。また、実行フラグ163jが「1」の場合には(ステップS204肯定)、動作状態切替指示処理部172は、浮動小数点演算器群163に対して指示を行わない。
上述してきたように、本実施例1では、命令検出処理部171がRS−MAU151、RS−ALU152、RS−FPU153に命令が格納されているか否かを検出して、命令が格納されている場合には、動作状態切替指示処理部172がメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163に対して「通常状態」で動作するよう指示し、命令が格納されていない場合には、命令を実行中でないメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163に対して「低消費電力状態」で動作するよう指示する構成としたので、命令を実行する必要のない演算器が「低消費電力状態」で動作し、ひいてはマイクロプロセッサの消費電力を低減することができる。また、マイクロプロセッサが動作中であっても演算器毎に動作モードを変更するので、柔軟に電力供給を制御することができる。
ところで、上記実施例1では、例えば、RS−MAU151に1つでも命令が格納されていれば、MAU161a〜MAU161cをすべて「通常状態」で動作させる例を示したが、格納されている命令の数によってはMAU161a〜MAU161cのすべてが必要になるとは限らない。また、RS−MAU151に命令が格納されている場合であっても、命令を実行するために必要なデータが揃っていない場合もあり、RS−MAU151に命令が格納されているからといってMAU161a〜MAU161cがすぐに必要になるとは限らない。
そこで、本実施例2では、リザベーションステーションに格納されている命令の数に基づいて「通常状態」で動作させる演算器の数を制御し、かつ、格納されている命令を実行するために必要なデータが揃っているか否かを判断して各演算器の動作状態を切り替える例を示すこととする。
まず、本実施例2に係るマイクロプロセッサの構成について説明する。図4は、本実施例2に係るマイクロプロセッサの構成を示す機能ブロック図である。同図に示すように、マイクロプロセッサ300は、BIU110と、命令キャッシュ120と、命令デコーダ130と、データキャッシュ140と、リザベーションステーション310と、機能ユニット160と、記憶部320と、動作状態切替制御部330とを有する。なお、図2に示した構成部位と同様の機能を有する部位には同一符号を付すこととしてその詳細な説明を省略する。
リザベーションステーション310は、RS−MAU311と、RS−ALU312と、RS−FPU313とを有する。RS−MAU311はエントリ311a〜311eを有し、RS−ALU312はエントリ312a〜312eを有し、RS−FPU313はエントリ313a〜313eを有する。
エントリ311a〜311eは、格納されている命令を実行するために必要なデータが揃っているか否かを示す発行ビット311f〜311jを有する。同様に、エントリ312a〜312eは発行ビット312f〜312jを有し、エントリ313a〜313eは発行ビット313f〜313jを有する。以下では、命令を実行するために必要なデータが揃っている場合には発行ビット311f〜311j、発行ビット312f〜312j及び発行ビット313f〜313jを「1」とし、命令を実行するために必要なデータが揃っていない場合には「0」とする。
図4の例は、エントリ311a〜311e及びエントリ312aに命令が格納されており、命令を実行するために必要なデータがすべて揃っている状態を示している。また、エントリ312b、312cに命令が格納されているが、命令を実行するために必要なデータが揃っていない状態を示している。また、エントリ312d、312e及びエントリ313a〜313eに命令が格納されていない状態を示している。なお、発行ビットの設定については、図6を用いて後に詳述する。
MAU161a〜161cは、それぞれ実行フラグ161d〜161fを有する。実行フラグ161dは、MAU161aが命令を実行中であるか否かを示すデータであり、実行フラグ161eは、MAU161bが命令を実行中であるか否かを示すデータであり、実行フラグ161fは、MAU161cが命令を実行中であるか否かを示すデータである。
同様に、ALU162a〜162cは、それぞれ実行フラグ162d〜162fを有する。実行フラグ162d〜162fは、それぞれ対応するALU162a〜162cが命令を実行中であるか否かを示すデータである。同様に、FPU163a〜163cは、それぞれ実行フラグ163d〜163fを有する。実行フラグ163d〜163fは、それぞれ対応するFPU163a〜163cが命令を実行中であるか否かを示すデータである。以下では、演算器が命令を実行中である場合には実行フラグ161d〜161f、実行フラグ162d〜162f、実行フラグ163d〜163fを「1」とし、演算器が命令を実行中でない場合には「0」とする。
記憶部320は、マイクロプロセッサ300が有するレジスタ等の記憶素子であり、閾値管理テーブル321を記憶する。図5は、図4に示した閾値管理テーブル321の一例を示す図である。同図の例は、設定1の場合、1つの命令が格納されている場合には1つの演算器を「通常状態」で動作させ、3つの命令が格納されている場合には2つの演算器を「通常状態」で動作させ、5つの命令が格納されている場合には3つの演算器を「通常状態」で動作させることを示している。
また、設定2の場合、1つの命令が格納されている場合には1つの演算器を「通常状態」で動作させ、2つの命令が格納されている場合には2つの演算器を「通常状態」で動作させ、3つの命令が格納されている場合には3つの演算器を「通常状態」で動作させることを示している。
なお、閾値管理テーブル321の設定値は、利用者等により任意に設定させる値であり、マイクロプロセッサ300を低消費電力で動作させるレベルを示している。例えば、図5に示すように、同じ命令数が格納されても「通常状態」で動作する演算器数は設定2より設定1の方が少ないので、利用者がマイクロプロセッサ300をより低消費電力で動作させることを望む場合には設定1をマイクロプロセッサ300に対して設定することになる。
動作状態切替制御部330は、機能ユニット160の動作モードを切り替える制御部であり、命令検出処理部331と、動作状態切替指示処理部332とを有する。命令検出処理部331は、発行ビット311f〜311j、発行ビット312f〜312j及び発行ビット313f〜313jを取得し、RS−MAU311、RS−ALU312、RS−FPU313について、それぞれが有する発行ビット311f〜311j、発行ビット312f〜312j、発行ビット313f〜313jが「1」となっている合計数(以下、「実行可能命令数」と言う)を算出し、算出した実行可能命令数を動作状態切替指示処理部332に出力する処理部である。
例えば、図4の例の場合、命令検出処理部331は、エントリ311a〜311eのすべての発行ビット311f〜311jが「1」となっているのでRS−MAU311の実行可能命令数として「5」を算出する。同様に、RS−ALU312の実行可能命令数として「1」を算出し、RS−FPU313の実行可能命令数として「0」を算出して、算出した実行可能命令数を動作状態切替指示処理部332に出力する。
動作状態切替指示処理部332は、命令検出処理部331からRS−MAU311、RS−ALU312及びRS−FPU313の実行可能命令数を受信した場合に、閾値管理テーブル321を参照して通常状態で動作させる演算器数を取得し、取得した演算器数に該当する数のMAU161a〜161c、ALU162a〜162c若しくはFPU163a〜163cが「通常状態」で動作するよう指示する処理部である。
具体的には、RS−MAU311の実行可能命令数が「0」でない場合には、動作状態切替指示処理部332は、閾値管理テーブル321から実行可能命令数に該当する通常状態で動作させる演算器数を取得する。そして、取得した演算器数に該当する数のMAU161a〜161cが「通常状態」で動作するようメモリアクセス群161に対して指示する。
ここで、各演算器(MAU161a〜161c)の実行フラグ161d〜161fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合にその差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう指示する。取得した演算器数より命令実行状態の演算器数が多い場合は新たに「通常状態」で動作する演算器はない。すなわち、実行フラグが「1」で命令実行中の演算器があれば実行が終了するまで取得した演算器数に更新しない。例えば、MAU161aとMAU161bが命令実行中であるが、取得した演算器数が「1」であるときには、その実行が終了するまで取得した演算器数に更新されることはない。
一方、RS−MAU311の実行可能命令数が「0」の場合には、動作状態切替指示処理部332は、メモリアクセス群161の実行フラグ161d〜161fを全て取得する。取得した実行フラグ161d〜161fが全て「0」の場合には、メモリアクセス群161に対して「低消費電力状態」で動作するよう指示し、実行フラグ161d〜161fが「1」の場合には、メモリアクセス群161に対して指示しない。
同様に、動作状態切替指示処理部332は、RS−ALU312の実行可能命令数が「0」でない場合には、閾値管理テーブル321から通常状態で動作させる演算器数を取得し、取得した演算器数に該当する数のALU162a〜162cが「通常状態」で動作するよう算術論理演算器群162に対して指示する。
ここで、各演算器(ALU162a〜162c)の実行フラグ162d〜162fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合にその差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう指示する。取得した演算器数より命令実行状態の演算器数が多い場合は新たに「通常状態」で動作する演算器はない。
一方、RS−ALU312の実行可能命令数が「0」であり、かつ、実行フラグ162d〜162fが全て「0」の場合には、算術論理演算器群162に対して「低消費電力状態」で動作するよう指示する。
また、動作状態切替指示処理部332は、RS−FPU313の実行可能命令数が「0」でない場合には、閾値管理テーブル321から通常状態で動作させる演算器数を取得し、取得した演算器数に該当する数のFPU163a〜163cが「通常状態」で動作するよう浮動小数点演算器群163に対して指示する。
ここで、各演算器(FPU163a〜163c)の実行フラグ163d〜163fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合にその差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう指示する。取得した演算器数より命令実行状態の演算器数が多い場合は新たに「通常状態」で動作する演算器はない。
一方、RS−FPU313の実行可能命令数が「0」であり、かつ、実行フラグ163d〜163fが全て「0」の場合には、浮動小数点演算器群163に対して「低消費電力状態」で動作するよう指示する。
図4の例の場合、利用者により閾値管理テーブル321の設定値として「設定1」が選択されているとすると、動作状態切替指示処理部332は、RS−MAU311の実行可能命令数が「5」なので、閾値管理テーブル321から通常状態で動作させる演算器数として「3」を取得する。そして、「3」つの演算器が「通常状態」で動作するようメモリアクセス群161に対して指示する。
同様に、RS−ALU312の実行可能命令数が「1」なので、動作状態切替指示処理部332は、閾値管理テーブル321から通常状態で動作させる演算器数として「1」を取得し、「1」つの演算器が「通常状態」で動作するよう算術論理演算器群162に対して指示する。また、RS−FPU313の実行可能命令数が「0」なので、動作状態切替指示処理部332は、浮動小数点演算器群163に対して、すべての演算器(FPU163a〜FPU163c)が「低消費電力状態」で動作するよう指示する。
なお、閾値管理テーブル321に実行可能命令数が「0」の場合に動作させる演算器数を登録しておいて、実行可能命令数が「0」の場合も閾値管理テーブル321から通常状態で動作させる演算器数を取得するようにしてもよい。これにより、実行可能命令数が「0」の場合と「0」以外の場合とに分けて処理をする必要がなくなる。また、命令の系統毎に閾値管理テーブル321を分けて設けてもよい。これにより、演算器群毎に通常状態で動作させる演算器数を制御することができる。
次に、図4に示した発行ビット312f〜312jの設定について説明する。図6は、図4に示した発行ビット312f〜312jの設定について説明するための説明図である。同図では、説明を簡単にするために、エントリ312a〜312eが有する発行ビット312f〜312jの設定についてのみ示す。
図6に示すように、マイクロプロセッサ300は、レジスタr1〜r9と、レジスタr1〜r9に有効なデータが記憶されているか否かを示す有効ビットy1〜y9とを有する。以下では、有効なデータが記憶されている場合には有効ビットy1〜y9を「1」とし、有効なデータが記憶されていない場合には「0」とする。図6の例では、レジスタr1に有効なデータが記憶されているため、有効ビットy1は「1」となり、レジスタr3には有効なデータが記憶されていないため、有効ビットy3は「0」となる。
ここで、エントリ312aに「add r3 r1 r2」という命令が格納されているものとする。この命令の内容は、「レジスタr1及びr2に記憶されたデータを加算し、加算結果をレジスタr3に記憶する」である。すなわち、命令を実行するためにはレジスタr1及びr2に記憶されたデータが必要となる。図6に示すように、レジスタr1及びr2に対応する有効ビットy1及びy2はそれぞれ「1」であるため、命令を実行するために必要なデータが揃っている。したがって、エントリ312aの発行ビット312fは「1」となる。
一方、エントリ312bに格納された命令を実行するためには、レジスタr4及びr5に記憶されたデータが必要となるが、レジスタr5に対応する有効ビットy5が「0」であるため、エントリ312bの発行ビット312gは「0」となる。
次に、図4に示したマイクロプロセッサ300による動作状態切替処理の手順について説明する。図7は、図4に示したマイクロプロセッサ300による動作状態切替処理手順を示すフローチャートである。なお、この処理手順は、マイクロプロセッサ300が動作している間、1サイクル毎に実行される。
図7に示すように、マイクロプロセッサ300では、命令検出処理部331が発行ビット311f〜311j、発行ビット312f〜312j及び発行ビット313f〜313jを取得し、RS−MAU311、RS−ALU312、RS−FPU313について、実行可能命令数を算出し、算出した実行可能命令数を動作状態切替指示処理部332に出力する。
かかる実行可能命令数を受信した動作状態切替指示処理部332は、RS−MAU311の実行可能命令数が「0」でない場合には(ステップS401肯定)、閾値管理テーブル321から実行可能命令数に該当する通常状態で動作させる演算器数を取得する(ステップS402)。
そして、実行フラグ161d〜161fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合(ステップS403肯定)、その差分だけ命令実行中でない演算器を新たに「通常状態」で動作するようメモリアクセス群161に対して指示する(ステップS404)。かかる指示を受け付けたメモリアクセス群161は、指示された演算器を「通常状態」で動作させる(ステップS405)。
一方、取得した演算器数より命令実行状態の演算器数が多い場合(ステップS403否定)、新たに「通常状態」で動作する演算器はない。なお、次のサイクルで取得した演算器数より命令実行状態の演算器数が少なくなれば、その差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう指示することになる。
同様に、RS−ALU312の実行可能命令数が「0」でない場合には(ステップS401肯定)、閾値管理テーブル321から実行可能命令数に該当する通常状態で動作させる演算器数を取得し(ステップS402)、実行フラグ162d〜162fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合(ステップS403肯定)、その差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう算術論理演算器群162に対して指示する(ステップS404)。かかる指示を受け付けた算術論理演算器群162は、指示された演算器を「通常状態」で動作させる(ステップS405)。一方、取得した演算器数より命令実行状態の演算器数が多い場合(ステップS403否定)、新たに「通常状態」で動作する演算器はない。
また、RS−FPU313の実行可能命令数が「0」でない場合には(ステップS401肯定)、閾値管理テーブル321から実行可能命令数に該当する通常状態で動作させる演算器数を取得し(ステップS402)、実行フラグ163d〜163fが「1」であるか否かを判断し、閾値管理テーブル321から取得した演算器数より命令実行状態の演算器数が少ない場合(ステップS403肯定)、その差分だけ命令実行中でない演算器を新たに「通常状態」で動作するよう浮動小数点演算器群163に対して指示する(ステップS404)。かかる指示を受け付けた浮動小数点演算器群163は、指示された演算器を「通常状態」で動作させる(ステップS405)。一方、取得した演算器数より命令実行状態の演算器数が多い場合(ステップS403否定)、新たに「通常状態」で動作する演算器はない。
一方、RS−MAU311の実行可能命令数が「0」の場合には(ステップS401否定)、動作状態切替指示処理部332は、メモリアクセス群161の実行フラグ161d〜161fを取得する。取得した実行フラグ161d〜161fが全て「0」の場合には(ステップS406否定)、メモリアクセス群161に対して「低消費電力状態」で動作するよう指示する(ステップS407)。
かかる指示を受け付けたメモリアクセス群161は、「低消費電力状態」で動作する(ステップS408)。また、実行フラグ161d〜161fが「1」の場合には(ステップS406肯定)、動作状態切替指示処理部332は、メモリアクセス群161に対して指示を行わない。
同様に、RS−ALU312若しくはRS−FPU313の実行可能命令数が「0」の場合には(ステップS401否定)、動作状態切替指示処理部332は、算術論理演算器群162の実行フラグ162d〜162f若しくは浮動小数点演算器群163の実行フラグ163d〜163fを取得する。
取得した実行フラグ162d〜162f若しくは実行フラグ163d〜163fが全て「0」の場合には(ステップS406否定)、算術論理演算器群162若しくは浮動小数点演算器群163に対して「低消費電力状態」で動作するよう指示する(ステップS407)。
かかる指示を受け付けた算術論理演算器群162若しくは浮動小数点演算器群163は、「低消費電力状態」で動作する(ステップS408)。また、実行フラグ162d〜162f若しくは実行フラグ163d〜163fが「1」の場合には(ステップS406肯定)、動作状態切替指示処理部332は、算術論理演算器群162若しくは浮動小数点演算器群163に対して指示を行わない。
上述してきたように、上記実施例2では、命令検出処理部331が発行ビット311f〜311j、発行ビット312f〜312j及び発行ビット313f〜313jを取得して実行可能命令数を算出し、動作状態切替指示処理部332が算出された実行可能命令数を解析してメモリアクセス群161、算術論理演算器群162若しくは浮動小数点演算器群163の動作モードを変更指示する構成としたので、リザベーションステーションに命令が格納されている場合であっても、その命令が実行可能でなければ対応する演算器が低消費電力状態で動作し、即座に命令を実行する演算器以外の演算器を低消費電力状態で動作させることができ、ひいては効率的にマイクロプロセッサの消費電力を低減することができる。また、閾値管理テーブル321を参照して「通常状態」で動作させる演算器の数を変動させる構成としたので、閾値管理テーブル321の閾値を変更するだけで低消費電力状態で動作させる演算器数を簡易に変更することができる。
なお、上記実施例1及び2では、リザベーションステーションに命令が格納されていない場合には、対応する演算器を「低消費電力状態」で動作させる場合を示したが、本発明はこれに限定されるものではなく、リザベーションステーションに命令が格納されていない場合には、対応する演算器に対して電力を供給しないように構成してもよい。これにより、動作しない演算器に対しては微小の電力も供給されないため、マイクロプロセッサの消費電力をより低減することができる。
また、上記実施例1及び2では、例えば、RS−MAU151に命令が格納されると、対応するメモリアクセス群161のみを「通常状態」で動作させる場合を示したが、本発明はこれに限定されるものではなく、リザベーションステーションに格納されたある系統の命令に後続して他の系統の命令が格納されることが前もって検出され、かつ、演算器が「通常状態」になってから動作可能になるまでに複数サイクルかかる場合には、最初の演算器が命令を実行している際に、次に命令を実行する演算器に対して「通常状態」で動作させるよう指示する構成としてもよい。これにより、演算器が「通常状態」になってから動作可能になるまでのレイテンシを緩和することができる。なお、この方式は、例えば、コンパイル時に後続する命令の系統に関する情報を先行する命令に設定しておくことにより実現することができる。
また、本発明は、上記実施例1及び2を組み合わせて構成してもよい。例えば、リザベーションステーションに格納されている命令が実行可能であるか否かを検出し、実行可能な命令が1つでも格納されていれば、リザベーションステーションに対応する演算器群内の全ての演算器を「通常状態」で動作させるよう指示する。
(付記1)通常状態と低消費電力状態との2種類の動作モードで動作する演算器と該演算器により実行される命令を格納するリザベーションステーションとを対応付けて有するマイクロプロセッサであって、
前記リザベーションステーションに命令が格納されているか否かを検出する命令検出手段と、
前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示する動作状態切替指示手段と
を備えたことを特徴するマイクロプロセッサ。
(付記2)前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出され、かつ、該リザベーションステーションに対応する前記演算器が命令を実行中でない場合に該演算器に対して低消費電力状態で動作するよう指示することを特徴とする付記1に記載のマイクロプロセッサ。
(付記3)前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して電力供給を停止するよう指示することを特徴する付記1に記載のマイクロプロセッサ。
(付記4)前記命令検出手段は、前記リザベーションステーションに命令が格納されているか否かを検出するとともに該命令が実行可能であるか否かを検出し、
前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示することを特徴とする付記1に記載のマイクロプロセッサ。
(付記5)前記リザベーションステーションは、格納される命令を実行するために必要なデータが揃っているか否かを示す発行ビットを有し、
前記命令検出手段は、前記発行ビットに基づいて命令が実行可能であるか否かを検出することを特徴とする付記4に記載のマイクロプロセッサ。
(付記6)前記マイクロプロセッサは、前記リザベーションステーションと該リザベーションステーションに対応する複数の演算器から構成される演算器群とを対応付けて有し、
前記命令検出手段は、前記リザベーションステーションに格納されている命令数を検出し、
前記動作状態切替指示手段は、前記命令検出手段により検出された前記命令数に基づいて前記リザベーションステーションに対応する前記演算器群の中で通常状態で動作させる演算器数を算出し、該演算器群に対して該演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする付記1に記載のマイクロプロセッサ。
(付記7)前記リザベーションステーションに格納されている命令数を示す格納命令数と通常状態で動作させる演算器の数を示す通常状態動作演算器数との関係を記憶する閾値管理テーブルをさらに備え、
前記動作状態切替指示手段は、前記閾値管理テーブルから前記命令数に該当する前記通常状態動作演算器数を取得し、前記リザベーションステーションに対応する前記演算器群に対して該通常状態動作演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする付記6に記載のマイクロプロセッサ。
(付記8)前記閾値管理テーブルは、前記格納命令数と前記通常状態動作演算器数との関係を設定値毎に記憶し、
前記動作状態切替指示手段は、前記設定値に基づいて前記閾値管理テーブルから前記命令数に該当する前記通常状態動作演算器数を取得し、該リザベーションステーションに対応する演算器群に対して該通常状態動作演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする付記7に記載のマイクロプロセッサ。
(付記9)前記マイクロプロセッサは、前記リザベーションステーションと該リザベーションステーションに対応する演算器との組み合わせを複数有し、
前記命令検出手段は、第1のリザベーションステーションに第1の命令が格納されているか否かを検出するとともに、該第1の命令に後続して第2のリザベーションステーションに第2の命令が格納されることを検出し、
前記動作状態切替指示手段は、前記命令検出手段により前記第1のリザベーションステーションに前記第1の命令が格納されていると検出された場合、該第1のリザベーションステーションに対応する第1の演算器により該第1の命令が実行されている際に前記第2のリザベーションステーションに対応する第2の演算器に対して通常状態で動作するよう指示することを特徴とする付記1に記載のマイクロプロセッサ。
以上のように、本発明に係るマイクロプロセッサは、省電力で動作するマイクロプロセッサに有用であり、特に、簡易な構成で消費電力を低減し、かつ動作中でも柔軟に電力供給を制御する場合に適する。
本実施例1に係るマイクロプロセッサの概要を説明するための説明図である。 本実施例1に係るマイクロプロセッサの構成を示す機能ブロック図である。 図2に示したマイクロプロセッサによる動作状態切替処理手順を示すフローチャートである。 本実施例2に係るマイクロプロセッサの構成を示す機能ブロック図である。 図4に示した閾値管理テーブルの一例を示す図である。 図4に示した発行ビットの設定について説明するための説明図である。 図4に示したマイクロプロセッサによる動作状態切替処理手順を示すフローチャートである。
符号の説明
10 マイクロプロセッサ
11 リザベーションステーション
11a〜11e エントリ
12 演算器
13 動作状態切替制御部
100、300 マイクロプロセッサ
110 BIU
120 命令キャッシュ
130 命令デコーダ
140 データキャッシュ
150、310 リザベーションステーション
151、311 RS−MAU
151a〜151e、311a〜311e エントリ
152、312 RS−ALU
152a〜152e、312a〜312e エントリ
153、313 RS−FPU
153a〜153e、313a〜313e エントリ
160 機能ユニット
161 メモリアクセス群
161a〜161c MAU
162 算術論理演算器群
162a〜162c ALU
163 浮動小数点演算器群
163a〜163c FPU
161j、162j、163j 実行フラグ
161d〜161f、162d〜162f、163d〜163f 実行フラグ
170、330 動作状態切替制御部
171、331 命令検出処理部
172、332 動作状態切替指示処理部
311f〜311j、312f〜312j、313f〜313j 発行ビット
320 記憶部
321 閾値管理テーブル
r1〜r9 レジスタ
y1〜y9 有効ビット

Claims (5)

  1. 通常状態と低消費電力状態との2種類の動作モードで動作する演算器と該演算器により実行される命令を格納するリザベーションステーションとを対応付けて有するマイクロプロセッサであって、
    前記リザベーションステーションに命令が格納されているか否かを検出する命令検出手段と、
    前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示する動作状態切替指示手段と
    を備えたことを特徴するマイクロプロセッサ。
  2. 前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに命令が格納されていないと検出され、かつ、該リザベーションステーションに対応する前記演算器が命令を実行中でない場合に該演算器に対して低消費電力状態で動作するよう指示することを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記命令検出手段は、前記リザベーションステーションに命令が格納されているか否かを検出するとともに該命令が実行可能であるか否かを検出し、
    前記動作状態切替指示手段は、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていないと検出された場合に該リザベーションステーションに対応する前記演算器に対して低消費電力状態で動作するよう指示し、前記命令検出手段により前記リザベーションステーションに実行可能である命令が格納されていると検出された場合に該リザベーションステーションに対応する前記演算器に対して通常状態で動作するよう指示することを特徴とする請求項1に記載のマイクロプロセッサ。
  4. 前記マイクロプロセッサは、前記リザベーションステーションと該リザベーションステーションに対応する複数の演算器から構成される演算器群とを対応付けて有し、
    前記命令検出手段は、前記リザベーションステーションに格納されている命令数を検出し、
    前記動作状態切替指示手段は、前記命令検出手段により検出された前記命令数に基づいて前記リザベーションステーションに対応する前記演算器群の中で通常状態で動作させる演算器数を算出し、該演算器群に対して該演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする請求項1に記載のマイクロプロセッサ。
  5. 前記リザベーションステーションに格納されている命令数を示す格納命令数と通常状態で動作させる演算器の数を示す通常状態動作演算器数との関係を記憶する閾値管理テーブルをさらに備え、
    前記動作状態切替指示手段は、前記閾値管理テーブルから前記命令数に該当する前記通常状態動作演算器数を取得し、前記リザベーションステーションに対応する前記演算器群に対して該通常状態動作演算器数に該当する数の演算器が通常状態で動作するよう指示することを特徴とする請求項4に記載のマイクロプロセッサ。
JP2007165579A 2007-06-22 2007-06-22 演算処置装置および電力制御方法 Active JP4978332B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007165579A JP4978332B2 (ja) 2007-06-22 2007-06-22 演算処置装置および電力制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007165579A JP4978332B2 (ja) 2007-06-22 2007-06-22 演算処置装置および電力制御方法

Publications (2)

Publication Number Publication Date
JP2009003807A true JP2009003807A (ja) 2009-01-08
JP4978332B2 JP4978332B2 (ja) 2012-07-18

Family

ID=40320108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165579A Active JP4978332B2 (ja) 2007-06-22 2007-06-22 演算処置装置および電力制御方法

Country Status (1)

Country Link
JP (1) JP4978332B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069220A (ja) * 2011-09-26 2013-04-18 Nec Computertechno Ltd 演算処理装置及び演算器同時実行制御方法
JP2022184701A (ja) * 2021-06-01 2022-12-13 晶心科技股▲ふん▼有限公司 共有機能部を有するマイクロプロセッサ

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619707A (ja) * 1991-11-26 1994-01-28 Matsushita Electric Ind Co Ltd 情報処理装置
JP2000047872A (ja) * 1998-08-03 2000-02-18 Hitachi Ltd 低消費電力動作機能を備えたマイクロプロセッサ
JP2000181713A (ja) * 1998-12-17 2000-06-30 Fujitsu Ltd 命令制御装置及びその方法
JP2000285227A (ja) * 1999-03-31 2000-10-13 Toshiba Corp 情報処理装置とその制御方法
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
JP2001092661A (ja) * 1999-09-22 2001-04-06 Hitachi Ltd データ処理装置
JP2003084973A (ja) * 2001-09-14 2003-03-20 Seiko Epson Corp 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JP2003108368A (ja) * 2001-10-01 2003-04-11 Nec Corp 並列演算プロセッサ、その演算制御方法及びプログラム
JP2004295195A (ja) * 2003-03-25 2004-10-21 Japan Science & Technology Agency 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619707A (ja) * 1991-11-26 1994-01-28 Matsushita Electric Ind Co Ltd 情報処理装置
JP2000047872A (ja) * 1998-08-03 2000-02-18 Hitachi Ltd 低消費電力動作機能を備えたマイクロプロセッサ
JP2000181713A (ja) * 1998-12-17 2000-06-30 Fujitsu Ltd 命令制御装置及びその方法
JP2000285227A (ja) * 1999-03-31 2000-10-13 Toshiba Corp 情報処理装置とその制御方法
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
JP2001092661A (ja) * 1999-09-22 2001-04-06 Hitachi Ltd データ処理装置
JP2003084973A (ja) * 2001-09-14 2003-03-20 Seiko Epson Corp 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JP2003108368A (ja) * 2001-10-01 2003-04-11 Nec Corp 並列演算プロセッサ、その演算制御方法及びプログラム
JP2004295195A (ja) * 2003-03-25 2004-10-21 Japan Science & Technology Agency 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069220A (ja) * 2011-09-26 2013-04-18 Nec Computertechno Ltd 演算処理装置及び演算器同時実行制御方法
JP2022184701A (ja) * 2021-06-01 2022-12-13 晶心科技股▲ふん▼有限公司 共有機能部を有するマイクロプロセッサ

Also Published As

Publication number Publication date
JP4978332B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
US10042417B2 (en) Branch prediction with power usage prediction and control
CN108027767B (zh) 寄存器读取/写入排序
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
US11755484B2 (en) Instruction block allocation
US8250395B2 (en) Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors
CN105144082B (zh) 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
US8261276B2 (en) Power-efficient thread priority enablement
US11436118B2 (en) Apparatus and method for adaptively scheduling work on heterogeneous processing resources
KR20120110120A (ko) 프로세서 대기 상태를 인에이블하기 위한 명령
US8370671B2 (en) Saving power by powering down an instruction fetch array based on capacity history of instruction buffer
WO2009006607A1 (en) Dynamically composing processor cores to form logical processors
JP2018005488A (ja) 演算処理装置及び演算処理装置の制御方法
US11886918B2 (en) Apparatus and method for dynamic control of microprocessor configuration
JP2004326752A (ja) 同時マルチスレッド化プロセッサ
JP2017162487A (ja) 過度の近似計算誤差から回復するプロセッサ
EP3767462A1 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
CN113448373A (zh) 用于处理器的电压调节器的功率状态缩放的装置和方法
US20040215984A1 (en) Method and circuitry for managing power in a simultaneous multithread processor
JP5104861B2 (ja) 演算処理装置
JP4978332B2 (ja) 演算処置装置および電力制御方法
KR20210133221A (ko) 적응적 인터커넥트 라우팅을 위한 시스템, 장치 및 방법
EP3757772A1 (en) System, apparatus and method for a hybrid reservation station for a processor
US20140201505A1 (en) Prediction-based thread selection in a multithreading processor
KR102528699B1 (ko) 가변 길이 명령 처리 모드
JP6477248B2 (ja) 演算処理装置及び演算処理装置の処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4978332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150