JPH10143297A - 電子回路内の電力消費を減少させる方法及びシステム - Google Patents

電子回路内の電力消費を減少させる方法及びシステム

Info

Publication number
JPH10143297A
JPH10143297A JP9265942A JP26594297A JPH10143297A JP H10143297 A JPH10143297 A JP H10143297A JP 9265942 A JP9265942 A JP 9265942A JP 26594297 A JP26594297 A JP 26594297A JP H10143297 A JPH10143297 A JP H10143297A
Authority
JP
Japan
Prior art keywords
instruction
processor
power mode
circuit
instructions
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
JP9265942A
Other languages
English (en)
Other versions
JP3048979B2 (ja
Inventor
Albert J Loper
アルバート・ジェイ・ローパー
Malik Suumuya
スームヤ・マリック
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10143297A publication Critical patent/JPH10143297A/ja
Application granted granted Critical
Publication of JP3048979B2 publication Critical patent/JP3048979B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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

  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 電子回路が、従来の技術に比較してより少な
い電力を消費する方法、及びシステムを提供する。 【解決手段】 フェッチ回路が第1の電力モードで動作
している間、フェッチ回路のサイクル毎にN個(ここで
NはN>1の整数である)までの命令をメモリからフェ
ッチする。フェッチ回路が第2の電力モードで動作して
いる間、フェッチ回路のサイクル毎にM個(ここでMは
N>M>0の整数である)までの命令をメモリからフェ
ッチする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明申請は、概して電子回
路に関し、より詳細には、電子回路内の電力消費を減少
させる方法及びシステムに関する。
【0002】
【従来の技術】近年、携帯用ラップトップ・コンピュー
タは、一般に広く使用されるようになった。このような
ラップトップ・コンピュータは、可搬性を増すために、
多くの場合バッテリにより電力供給される。バッテリに
より電力供給されるラップトップ・コンピュータは、コ
ンピュータのバッテリが再充電されるかまたは交換され
る前に、長時間バッテリ電力により作動することが好ま
しい。したがってバッテリを再充電するかまたは交換す
る前に、電子回路が動作する時間を長くするために、ラ
ップトップ・コンピュータの電子回路内の電力消費を減
少させることが重要である。このためにある種の従来の
技術では、特定の種類の動作を検知することがなく所定
の時間が経過したときに、電子回路への電力供給を止め
たり、あるいはクロック信号を止めたりしていた。この
ような従来の「タイマ」技術の欠点は、電子回路が動作
していないときでも、タイマの時間切れを待つ間、電子
回路が余分な電力を不必要に消費することである。
【0003】
【発明が解決しようとする課題】したがって、従来技術
に比較してより少ない電力を電子回路に消費させる方
法、及びシステムの必要性が生じた。
【0004】
【課題を解決するための手段】フェッチ回路が第1の電
力モードで動作している間、フェッチ回路のサイクル毎
にN個(ここでNはN>1の整数である)までの命令を
メモリからフェッチする。フェッチ回路が第2の電力モ
ードで動作している間、フェッチ回路のサイクル毎にM
個(ここでMはN>M>0の整数である)までの命令を
メモリからフェッチする。この電子回路には、従来の技
術に比較して余分な電力消費を減少させる技術的利点が
ある。
【0005】
【発明の実施の形態】本発明の実施例とその利点は、図
1〜図7を参照するとよく理解できる。図1は本実施例
に従った、情報処理用プロセッサ10のシステムのブロ
ック図である。この実施例においてプロセッサ10は、
単一の集積回路のスーパスカラ・マイクロプロセッサで
ある。したがって以降に説明するように、プロセッサ1
0には各種のユニット、レジスタ、バッファ、メモリ、
及びその他の部分が含まれ、これらのすべてが集積回路
により形成される。更にこの実施例においてプロセッサ
10は、縮小命令セット・コンピューティング(「RI
SC」)技術に従って動作する。図1に示すようにシス
テム・バス11は、プロセッサ10のバス・インターフ
ェース・ユニット(「BIU」)12に接続される。B
IU12は、プロセッサ10とシステム・バス11との
間の情報転送を制御する。
【0006】BIUはプロセッサ10の命令キャッシュ
14、及びデータ・キャッシュ16に接続されている。
命令キャッシュ14は、シーケンサ・ユニット18に命
令を出力する。命令キャッシュ14からの上記の命令に
従って、シーケンサ・ユニット18は、プロセッサ10
の他の実行回路に選択的に命令を出力する。
【0007】この実施例ではプロセッサ10の実行回路
は、シーケンサ・ユニット18に加えて複数の実行ユニ
ット、即ち分岐ユニット20、固定小数点ユニット
(「FXU」)22、複合固定小数点ユニット(「CF
XU」)26、ロード/ストア・ユニット(「LS
U」)28、及び浮動小数点ユニット(「FPU」)3
0を含む。FXU22、CFXU26、及びLSU28
は、自身の送信元オペランド情報を汎用アーキテクチャ
・レジスタ(「GPR」)、及び固定小数点リネーム・
バッファ34から入手する。更にFXU22は、キャリ
ー・ビット(「CA」)レジスタ42から「キャリー・
ビット」を入手する。FXU22、CFXU26、及び
LSU28は、自身の動作の結果(宛先オペランド情
報)を、固定小数点リネーム・バッファ34内の選択さ
れたエントリでの保管のために出力する。更にCFXU
26は、送信元オペランド情報及び宛先オペランド情報
を、特殊目的レジスタ(「SPR」)40との間で入出
力する。
【0008】FPU30は、自身の送信元オペランド情
報を浮動小数点アーキテクチャ・レジスタ(「FP
R」)36、及び浮動小数点リネーム・バッファ38か
ら入手する。FPU30は、自身の動作の結果(宛先オ
ペランド情報)を、浮動小数点リネーム・バッファ38
内の選択されたエントリでの記憶のために出力する。
【0009】LSU28は、ロード命令に応答してデー
タ・キャッシュ16から情報を入手し、リネーム・バッ
ファ34及び38の選択されたバッファにこの情報をコ
ピーする。この情報がデータ・キャッシュ16に記憶さ
れてない場合は、データ・キャッシュ16は、システム
・バス11に接続されたシステム・メモリ39から、B
IU12及びシステム・バス11を介してこの情報を入
手する。更にデータ・キャッシュ16は、BIU12及
びシステム・バス11を介して、データ・キャッシュ1
6からの情報をシステム11に接続されたシステム・メ
モリ39に出力できる。LSUは、ストア命令に従って
GPR32及びFPR36の選択されたレジスタから情
報を入手し、データ・キャッシュ16にこの情報をコピ
ーする。
【0010】シーケンサ・ユニット18は、GPR32
及びFPR36との間で情報を入出力する。分岐ユニッ
ト20は、シーケンサ・ユニット18から命令及びプロ
セッサ10の現在の状態を示す情報を入手する。分岐ユ
ニット20は、これらの命令及び信号に応答して、プロ
セッサ10が実行する命令のシーケンスを記憶する適切
なメモリ・アドレスを示す信号を、シーケンサ・ユニッ
ト18に出力する。シーケンサ・ユニット18は、分岐
ユニット20からのこの信号に応答して、命令の指示さ
れたシーケンスを命令キャッシュ14から入手する。1
つまたは複数のシーケンスの命令が命令キャッシュ14
に記憶されていない場合は、命令キャッシュ14は、シ
ステム・バス11に接続されたシステム・メモリ39か
ら、BIU12及びシステム・バス11を介してこれら
の命令を入手する。
【0011】シーケンサ・ユニット18は、命令キャッ
シュ14から入手した命令に従って、実行ユニット2
0、22、26、28、及び30の選択されたユニット
に命令を選択的にディスパッチする。各実行ユニット
は、特定のクラスの命令中の1つ、または複数の命令を
実施する。例えばFXU22は加算、減算、AND演
算、OR演算、及びXOR演算などの、ソース・オペラ
ンド上の第1のクラスの固定小数点数学演算を実施す
る。CFXU26は固定小数点の乗算、及び除算など
の、ソース・オペランド上の第2のクラスに固定小数点
演算を実施する。FPU30は浮動小数点の乗算及び除
算などの、ソース・オペランド上の浮動小数点演算を実
施する。
【0012】情報が、リネーム・バッファ34の選択さ
れた1つに記憶されるとき、この情報は、選択されたリ
ネーム・バッファが割り振られる命令が指定する記憶場
所(例えばGPR32またはCAレジスタ42の1つ)
に関連付けられる。リネーム・バッファ34の選択され
た1つに記憶される情報は、シーケンサ・ユニット18
からの信号に応答して、GPR32(またはCAレジス
タ42)の関連する1つにコピーされる。シーケンサ・
ユニット18は、リネーム・バッファ34の選択された
1つに記憶された情報の上記コピーを、この情報を生成
した命令の「完了」に応答して送信する。このようなコ
ピー送信は「ライトバック(writeback)」と
呼ばれる。
【0013】情報が、リネーム・バッファ38の選択さ
れた1つに記憶されたとき、この情報は、FPR36の
1つに関連付けられる。リネーム・バッファ38の選択
された1つに記憶された情報は、シーケンサ・ユニット
18からの信号に応答して、FPR36の関連する1つ
にコピーが送信される。シーケンサ・ユニット18は、
リネーム・バッファ38の選択された1つに記憶された
情報の上記コピーを、この情報を生成した命令の「完
了」に応答して送信する。
【0014】プロセッサ10は、実行ユニット20、2
2、26、28、及び30のいくつかにおいて、複数の
命令を同時に処理することによって高性能を達成する。
したがって各命令は、複数のステージから成る1シーケ
ンスとして処理され、各ステージは他の命令のステージ
と並列に実施できる。このような技術は「パイプライン
処理」と呼ばれる。この実施例では命令は、通常6ステ
ージ、即ちフェッチ、デコード、ディスパッチ、実行、
完了、及びライトバックとして処理される。
【0015】フェッチ・ステージではシーケンサ・ユニ
ット18は、命令のシーケンスを記憶している1つまた
は複数のメモリ・アドレスから、1つまたは複数の命令
を(命令キャッシュ14から)選択的に入手する。これ
らの命令のシーケンスについては、分岐ユニット20及
びシーケンサ・ユニット18に関係付けて上記で詳しく
説明した。
【0016】デコード・ステージでは、シーケンサ・ユ
ニット18が2つまでのフェッチされた命令をデコード
する。
【0017】ディスパッチ・ステージではシーケンサ・
ユニット18は、ディスパッチされる命令の結果(宛先
オペランド情報)用のリネーム・バッファ・エントリを
予約した後、実行ユニット20、22、26、28、及
び30の(デコード・ステージでのデコードに応答し
て)選択されたユニットに、2つまでのデコードされた
命令を選択的にディスパッチする。ディスパッチ・ステ
ージでは、オペランド情報が、ディスパッチされる命令
用に選択された実行ユニットに供給される。プロセッサ
10は、命令がプログラムされたシーケンス順に命令を
ディスパッチする。
【0018】実行ステージでは実行ユニットが、ディス
パッチされた命令を実行し、上記で説明したように、リ
ネーム・バッファ34及びリネーム・バッファ38中の
選択されたエントリでの記憶のために、命令実行の結果
(宛先オペランド情報)を出力する。このようにしてプ
ロセッサ10は、命令がプログラムされた順に関係なく
命令を実行できる。
【0019】完了ステージでは、シーケンサ・ユニット
18が命令の「完了」を示す。プロセッサ10は、命令
がプログラムされた順に命令を「完了」させる。
【0020】ライトバック・ステージでは、シーケンサ
・ユニット18は、リネーム・バッファ34及び38か
らの情報のコピーをそれぞれGPR32及びFPR36
に送る。シーケンサ・ユニット18は、選択されたリネ
ーム・バッファに記憶されていた情報のコピーを送る。
同様に特定の命令のライトバック・ステージでは、プロ
セッサ10はこの特定の命令に従って、自身のアーキテ
クチャ上の状態を更新する。プロセッサ10は、それぞ
れの命令のライトバック・ステージを、命令がプログラ
ムされた順で処理する。プロセッサ10は、各命令の完
了ステージとライトバック・ステージとを、指定された
状況で都合よく結合する。
【0021】この実施例においては各命令は、命令処理
の各ステージを完了させるために1マシン・サイクルを
必要とする。しかしある種の命令(例えばCFXU26
によって実行される複合固定小数点命令)は、2マシン
・サイクル以上を必要とすることもある。したがって特
定の1つの命令の実行と、これに先立ついくつかの命令
の完了に必要な時間の変動に反応する完了ステージとの
間に、不定の遅延が発生する可能性がある。
【0022】プロセッサ10は、5つの電力モードにし
たがって動作する。これらの5つの電力消費モードの内
の4つは、「節電」モード動作である。マシン状態レジ
スタ(「MSR」)、及びハードウェア実装レジスタ中
の制御ビットの状態に応答して、これらの5つの電力消
費モードが、選択的にイネーブルにされたり、ディスエ
ーブルにされたりする。これらのレジスタはSPR40
に配置される。したがって、SPR40に送られる移動
命令を実行するCFXU26に応答して、制御ビットが
設定されたり、消去されたりする。5つの電力消費モー
ドは全電力(Full−power)、ドーズ(Doz
e)、ナップ(Nap)、スリープ(Sleep)、及
び当実施例の重要な特徴である「特別(Specia
l)」モードである。各モードを以下に説明する。
【0023】1.全電力モード。全電力モードは、プロ
セッサ10のデフォルトの電力消費モードである。全電
力モードでは、プロセッサ10は完全に電力供給され、
それぞれのユニットは、プロセッサ10のプロセッサ・
クロック速度で動作する。プロセッサ10は更に、選択
的にイネーブルまたはディスエーブルにできる動的電力
管理モードを実行する。動的電力管理モードがイネーブ
ルにされている場合は、プロセッサ10内の使用されて
ないユニットは、パフォーマンス、ソフトウェア実行、
または外部ハードウェア回路に影響することなく、自動
的に低電力消費状態になる。
【0024】上記の動的電力管理モード、ならびに全電
力、ドーズ、ナップ、及びスリープの電力消費モード
は、IBM Microelectronics Di
vision、Hopewell Junction、
New York、電話1−800−PowerPC発
行の書籍、主題「PowerPC 603e RISC
Microprocessor User’s Man
ual」により詳しく説明されている。更に動的電力管
理モードは、米国特許第5,420,808号に説明さ
れている。本実施例ではプロセッサ10は、IBM M
icroelectronics Division、
Hopewell Junction、New Yor
kから入手できるPowerPC 603e RISC
マイクロプロセッサの拡張バージョンである。プロセ
ッサ10が「特別」電力モードを実行する点で、プロセ
ッサ10は、PowerPC 603e RISC マ
イクロプロセッサに対して拡張されている。したがって
「特別」電力モードは、本実施例の重要な特徴である。
【0025】2.ドーズ・モード。ドーズ・モードで
は、BIU12のバス・スヌーピング論理回路、プロセ
ッサ10のタイム・ベース/減分レジスタ(図1には示
されていない)、及びプロセッサ10の位相ロック・ル
ープ(「PLL」、図1には示されていない)を除くプ
ロセッサ10のすべてのユニットが、ディスエーブルに
される。ドーズ・モードではプロセッサ10のPLL
は、完全に電力供給される状態を維持しており、依然と
してシステム・バス11の外部システム・クロックに同
期されており、プロセッサ10のわずか2、3のクロッ
ク・サイクル内に、全電力モードへのすべての復帰が行
われる。
【0026】プロセッサ10は、割り込み線INTの有
効化(assertion)による外部非同期割り込み
に応答して、ドーズ・モードから全電力に戻る。したが
ってINTは、プロセッサ10に論理1の状態の信号を
供給する。同様にプロセッサ10は、システム管理割り
込み線SMIの有効化によるシステム管理割り込みに応
答して、ドーズ・モードから全電力モードに戻る。した
がってSMIは、プロセッサ10に論理1の状態の信号
を供給する。更にプロセッサ10は、減分回路例外事
項、ハード・リセットまたはソフト・リセット、もしく
はマシン・チェック入力に応答して、ドーズ・モードか
ら全電力モードに戻る。
【0027】ハード・リセットは、電圧供給ノードVd
dのロー(low)電圧(例えば0ボルト)から参照電
圧ノードGNDを基準にした所定の電圧(例えば2.5
ボルト)への切り換えに応答して発生する。図1〜図6
では、図の明瞭化のためにプロセッサ10内部のIN
T、SMI、Vdd、及びGNDから種々の回路への接
続のすべては示されてないことに注意されたい。プロセ
ッサ10は、ソフト・リセットに応答していかなる節電
モードからも全電力モードに戻る。ソフト・リセットに
おいては、SPR40に送られる適切な移動命令を実行
するCFXU26に応答して、制御ビットが設定及び
(または)消去される。この場合このような移動命令
は、命令のソフトウェア・リセット・シーケンスの一部
である。
【0028】3.ナップ・モード。ナップ・モードはド
ーズ・モードに比較して、BIU12のバス・スヌーピ
ング論理回路をディスエーブルにすることにより、プロ
セッサ10の電力消費を更に減少させる。したがってナ
ップ・モードでは、プロセッサ10のPLL及びタイム
・ベース/減分レジスタのみが、全電力状態に維持され
る。プロセッサ10は、割り込み線INTの有効化によ
る外部非同期割り込み、システム管理割り込み、減分回
路例外事項、ハード・リセットまたはソフト・リセッ
ト、もしくはマシン・チェック入力に応答して、ナップ
・モードから全電力モードに戻る。ドーズ・モードから
の戻りと同じように、ナップ・モードから全電力モード
へのいかなる復帰も、プロセッサ10のわずか2、3ク
ロック・サイクル内に行われる。
【0029】4.スリープ・モード。スリープ・モード
では、プロセッサ10のすべてのユニットをディスエー
ブルにし、その後プロセッサ10外の論理回路が、PL
L及び外部システム・クロックをディスエーブルにする
ことができ、電力消費をほとんど最小に減らすことがで
きる。プロセッサ10は、PLL及び外部システム・ク
ロックの双方が再びイネーブルにされ、その後、PLL
が外部システム・クロックに同期するための適切な最短
時間が経過し、更に続いて割り込み線INTの有効化、
システム管理割り込み、減分回路例外事項、ハード・リ
セットまたはソフト・リセット、もしくはマシン・チェ
ック入力が発生することに応答して、スリープ・モード
から全電力モードに戻る。
【0030】5.「特別」電力モード。本実施例の重要
な特徴として、プロセッサ10は(1)ハードウェア事
象、または(2)ソフトウェア事象のいずれかに応答し
て、「特別」電力モードに入る。本実施例ではこのハー
ドウェア事象は、変換器41がHPS(ハードウェア事
象、節電、「特別」電力モード)線上に論理1の状態の
信号を出力するときに発生する。同様にソフトウェア事
象は、SPR40がSPS(ソフトウェア事象、節電、
「特別」電力モード)線上に論理1の状態の信号を出力
するときに発生する。SPR40は、SPR40の「H
IDO」レジスタの所定ビットに送られる適切な「特殊
目的レジスタへの移動(MTSPR)」命令を実行する
CFXU26に応答して、この信号をSPS上に出力す
る。
【0031】変換器41には、プロセッサ10を形成す
る集積回路の相対温度を検知する温度センサが含まれて
いる。ハードウェア事象は、限界値温度を超えた相対温
度を検知する(変換器41の)温度センサに応答して発
生する(即ち変換器41がHPS上に論理1の状態の信
号を出力する)。本実施例においては限界値温度は、全
電力モードで動作するプロセッサ10の最高の安全な温
度として、事前に選択される。したがってプロセッサ1
0の温度が、全電力モードで動作するプロセッサ10の
最高の安全な温度を超える場合は、全電力モードでプロ
セッサ10を継続して動作させると、プロセッサ10に
損傷が生じる可能性がある。都合がよいことにこのよう
な損傷は、プロセッサ10がこのハードウェア事象に応
答して「特別」電力モードの動作に入ることにより、実
質的に避けられる。
【0032】プロセッサ10が、ハードウェア事象に応
答して「特別」電力モードに入った場合、プロセッサ1
0は、自身の単一のサイクル間にフェッチされる最大の
命令数を減少させ、その結果図2、図3に関連付けて以
降に更に説明するように、プロセッサ10のサイクル当
たりにディスパッチされる命令はより少なくなる。この
ようにして、それぞれの実行ユニットが使用されてない
ときが多くなり、その結果、都合がよいことに動的電力
管理モード(米国特許第5,420,808号に説明さ
れている)の低電力状態がより容易に起動される。更に
プロセッサ10が、ハードウェア事象に応答して「特
別」電力モードに入った場合、プロセッサ10は、図5
に関連させて以降に更に説明するように、LSU28の
動作を変更する。
【0033】上記と比較して、プロセッサ10がソフト
ウェア事象に応答して「特別」電力モードに入った場合
は、プロセッサ10は、(a)図2及び図3に関連付け
て以降に更に説明するように、プロセッサ10の単一サ
イクル間にフェッチされる命令の最大数を減少させ、
(b)図5に関連付けて以降に更に説明するように、L
SU28の動作を変更し、(c)図6に関連付けて以降
に更に説明するように、命令キャッシュ14及びデータ
・キャッシュ16内でこれらのキャッシュの「ウェイ
(way)」数を減少させることにより、電力消費を減
少させる。
【0034】プロセッサ10は、論理1状態のSPS及
びHPSのいずれに対しても、これらに応答して「特
別」電力モードから全電力モードに戻ることはない。更
にプロセッサ10が、ソフトウェア事象にのみ応答して
(即ち、SPSが論理1の状態であり、一方HPSが論
理0の状態である)「特別」電力モードに入った場合、
プロセッサ10は更に、(1)INTの有効化による外
部非同期割り込み、(2)ハード・リセットまたはソフ
ト・リセット、もしくは(3)マシン・チェック入力に
応答して、(「特別」電力モードから)全電力モードに
戻る。代替の実施例では、プロセッサ10がソフトウェ
ア事象にのみ応答して「特別」電力モードに入った場
合、プロセッサ10は更に、SMIの有効化によるシス
テム管理割り込みに応答して、(「特別」電力モードか
ら)全電力モードに戻る。このような代替実施例では、
プロセッサ10がINTの有効化に応答して全電力モー
ドに戻る方法と類似の方法で、プロセッサ10は、SM
Iの有効化に応答して全電力モードに戻る。
【0035】更にもう1つの代替実施例では、プロセッ
サ10はまた減分回路例外事項に応答して、全電力モー
ドに戻る。SPR40は、プロセッサ・クロック信号
(図の明瞭化のために図1には示されていない)に応答
して計数を減分する回路を含む。減分回路例外事項は、
値が0に減分された計数に応答して生成される。
【0036】図1は命令キャッシュ14、データ・キャ
ッシュ16、シーケンサ・ユニット18、及びLSU2
8のそれぞれに接続される単一のSPS線を示す。同様
に図1は命令キャッシュ14、データ・キャッシュ1
6、シーケンサ・ユニット18、及びLSU28のそれ
ぞれに接続される単一のHPS線を示す。更に同様に図
1は命令キャッシュ14、データ・キャッシュ16、シ
ーケンサ・ユニット18、及びLSU28のそれぞれに
接続される単一のINT線を示す。
【0037】図2はシーケンサ・ユニット18のブロッ
ク図である。上記のように、フェッチ・ステージでプロ
セッサ10が、(したがってフェッチ論理回路71も)
全電力モードで動作している場合は、フェッチ論理回路
71は、命令キャッシュ14から(プロセッサ10、及
びそれに伴ったフェッチ論理回路71のサイクル当た
り)最多で2つまでの命令を選択的に要求し、これらの
命令を命令バッファ70に保管する。したがってプロセ
ッサ10の特定のサイクル間に、シーケンサ・ユニット
18は命令キャッシュ14から可変数(0から2の範
囲)の命令を要求し、この可変数は、命令バッファ70
に保管できる追加の命令数に依存する(即ち、命令バッ
ファ70中の使用可能なバッファ数に依存する)。
【0038】デコード・ステージでプロセッサ10が、
(したがってデコード論理回路72も)全電力モードで
動作している場合、デコード論理回路72は、命令バッ
ファ70から(プロセッサ10、及びそれに伴ったデコ
ード論理回路72のサイクル当たり)最多で2つまでの
フェッチされた命令を選択的に入手し、これらをデコー
ドする。したがってプロセッサ10の特定のサイクル間
に、デコード論理回路72は、命令バッファ70から可
変数(0から2の範囲)の命令を入手し、これらをデコ
ードする。この可変数は、この特定のサイクル間に、デ
ィスパッチ論理回路74がディスパッチする命令数に依
存する。
【0039】ディスパッチ・ステージでプロセッサ10
が、(したがってディスパッチ論理回路74も)全電力
モードで動作している場合、ディスパッチ論理回路74
は、実行ユニット20、22、26、28、及び30の
中の(デコード・ステージ中のデコーディングに応答し
て)選択されたユニットに、(プロセッサ10、及びそ
れに伴ったディスパッチ論理回路74のサイクル当た
り)最多で2つまでのデコードされた命令を選択的ディ
スパッチする。したがってプロセッサ10の特定のサイ
クル間に、ディスパッチ論理回路74は、可変数(0か
ら2の範囲)のデコードされた命令を実行ユニットにデ
ィスパッチし、この可変数は、命令が実行される実行ユ
ニットに保管できる追加の命令数に依存する(例えば実
行ユニット中で使用できる予約ステーション数に依存す
る。)
【0040】本実施例において、上記に比較してプロセ
ッサ10が「特別」電力モードで動作している場合は、
フェッチ論理回路71は(SPS、HPS、及びINT
の論理状態に応答して)命令キャッシュ14から、プロ
セッサ10のサイクル当たり最多で(2つの命令ではな
く)1つの命令を要求し、命令バッファ70にこの1つ
の命令を保管する。このようにして、(a)デコード論
理回路72は、プロセッサ10のサイクル当たり命令バ
ッファ70から(平均で)約1つのフェッチされた命令
を入手してこれをデコードし、(b)ディスパッチ論理
回路74は、(プロセッサ10のサイクル当たり平均
で)約1つの命令を実行ユニット20、22、26、2
8、及び30の選択されたユニットにディスパッチし、
(c)完了論理回路80は、プロセッサ10のサイクル
当たり(平均で)約1つの命令の「完了」(下記に詳細
に説明する)を示す。したがって実行ユニットは、(全
電力モードに比べて)使用されてないときがより多くな
り、その結果、動的電力管理モード(米国特許第5,4
20,808号に説明あり)の低電力状態が、都合よく
より容易に起動される。
【0041】代替の実施例では、プロセッサ10が「特
別」電力モードで動作している場合は、ディスパッチ論
理回路74は、(SPS、HPS、及びINTの論理状
態に応答して)プロセッサ10のサイクル当たり最多で
(2つの命令ではなく)1つの命令を、実行ユニット2
0、22、26、28、及び30の選択されたユニット
にディスパッチし、この代替実施例の技術は、プロセッ
サ10の単一のサイクル間にフェッチされる最多の命令
数を減少させる本実施例に変わるものであり、更に本実
施例に付加することもできる。したがって図2では、フ
ェッチ論理回路71及びディスパッチ論理回路74の双
方に接続されるSPS、HPS、及びINTを示す。
【0042】図3は命令バッファ70のブロック図を示
す。命令バッファ70はI0命令、及びI1命令をディ
スパッチ・バッファ56のバッファI0、及びバッファ
I1のそれぞれに保管する。本実施例ではプロセッサ1
0の1サイクルに応答して、I0命令のみがデコード論
理回路72(図2参照)にディスパッチされるか、I0
命令及びI1命令の双方が一緒にデコード論理回路72
にディスパッチされるか、またはI1命令のみがデコー
ド論理回路72にディスパッチされるかのいずれかであ
る。バッファI0及びバッファI1の内容は、配線55
a及び配線55bのそれぞれを介して、デコード論理回
路72に出力される。
【0043】本実施例において命令バッファ70は、プ
ロセッサ10の単一サイクル間に64ビットのバス50
を介して、2つまでの32ビット命令を並列に命令キャ
ッシュ14から入手できる。I0命令及びI1命令の双
方が、一緒にデコード論理回路72にディスパッチされ
ると、命令バッファ70は以前に保管されたいずれの命
令であっても、命令バッファ54a、54bからバッフ
ァI0、I1のそれぞれに転送する。この状況では命令
バッファ70はまた、以前に保管されたいずれの命令で
あっても、命令バッファ52a、52bから命令バッフ
ァ54a、54bのそれぞれに転送する。更にこのよう
な状況で、プロセッサ10が全電力モードで動作してい
る場合、命令バッファ70は64ビットのバス50を介
して、2つまでの32ビット命令を命令キャッシュ14
から入手し、これらの命令を最初の使用可能な(即ち、
すでに命令を保管してない空の)バッファの組に保管す
る。このバッファの組は、バッファI0から始まって
(a)I0及びI1、(b)54b及び54a、(c)
52b及び52aのいずれかである。
【0044】I0命令が、単独にデコード論理回路72
にディスパッチされたことに応答して、命令バッファ7
0は、以前に保管されたいずれの命令であってもバッフ
ァI1からバッファI0に転送する。この状況で命令バ
ッファ70はまた、以前に保管されたいずれの命令であ
っても、命令バッファ54aからバッファI1に、命令
バッファ54bから命令バッファ54aに、命令バッフ
ァ52aから命令バッファ54bに、更に命令バッファ
52bから命令バッファ52aに転送する。更にこの状
況で命令バッファ70は、64ビットのバス50を介し
て単一の32ビット命令を命令キャッシュ14から入手
し、この命令を最初の使用可能なバッファ、即ちバッフ
ァI0から始まるバッファI0、I1、54b、54
a、52b、及び52aのいずれかに保管する。
【0045】プロセッサ10が全電力モードで動作して
いる場合は、命令バッファ70は、プロセッサ10の単
一のサイクル間に64ビットのバス50を介して、2つ
までの32ビット命令を並列に命令キャッシュ14から
入手できる。このようにして、例えば命令キャッシュ1
4が4ウェイのセット・アソシアティブ・キャッシュで
あるとすれば、命令キャッシュ14の少なくとも256
のセンス増幅器(64ビット/ウェイ×4ウェイ×1セ
ンス増幅器/ビット)が、プロセッサ10のこの単一の
サイクル間にアクティブである。これらのセンス増幅器
のアクティブ化は、プロセッサ10の平均電力消費に寄
与する。
【0046】プロセッサ10が、上記と比べて「特別」
電力モードで動作している場合は、命令バッファ70
は、プロセッサ10の単一のサイクル間に64ビットの
バス50を介して、単一の32ビット命令を命令キャッ
シュ14から入手できる。この場合には、命令キャッシ
ュ14の例えば128のセンス増幅器(32ビット/ウ
ェイ×4ウェイ×1センス増幅器/ビット)が、プロセ
ッサ10の各サイクル間にアクティブである(一方で命
令キャッシュ14の残る128のセンス増幅器は、使用
不可状態である)。256のセンス増幅器(全電力モー
ド)の代わりに、128のみのセンス増幅器(「特別」
電力モード)をアクティブにすることによって、都合よ
くプロセッサ10の平均電力消費が減少し、これはプロ
セッサ10のサイクル当たりで、これらのセンス増幅器
の1/2のみがアクティブにされるからである。
【0047】プロセッサ10がソフトウェア事象に応答
して「特別」電力モードに入る場合は、更に電力消費の
減少が可能になり、その理由は、図6に関連付けて以降
に更に説明するように、この状況ではプロセッサ10
は、命令キャッシュ14及びデータ・キャッシュ16内
のウェイ数を減少させるからである。プロセッサ10
が、命令キャッシュ14内のウェイ数をソフトウェア事
象に応答して、4ウェイの代わりに例えば2ウェイに減
らす場合は、プロセッサ10が「特別」電力モードで動
作しているときの、プロセッサ10の上記2サイクルの
それぞれの間に、命令キャッシュ14の64のセンス増
幅器(32ビット/ウェイ×2ウェイ×1センス増幅器
/ビット)がアクティブである(一方で命令キャッシュ
14の残る192のセンス増幅器は、使用不可状態であ
る)。プロセッサ10が、ソフトウェア事象に応答して
「特別」電力モードに入った場合は、256のセンス増
幅器(全電力モード)の代わりに、64のみのセンス増
幅器をアクティブにすることによって、都合よくプロセ
ッサ10の平均電力消費が減少し、その理由は、プロセ
ッサ10のサイクル当たりで、これらのセンス増幅器の
1/4のみがアクティブにされるからである。
【0048】図4は、本実施例のシーケンサ・ユニット
18のリオーダ・バッファ(reorder buff
er)76を概念的に示したものである。図4に示すよ
うにリオーダ・バッファ76は、バッファ番号0から4
としてそれぞれラベルを付けられた5つのエントリを持
つ。各エントリは5つの主要なフィールドを持ち、それ
らは「命令タイプ」フィールド、「GPR宛先数」フィ
ールド、「FPR宛先数」フィールド、「終了」フィー
ルド、及び「例外」フィールドである。
【0049】ここで図2も参照すると、ディスパッチ論
理回路74が、命令を実行ユニットにディスパッチする
ときに、シーケンサ・ユニット18は、このディスパッ
チされた命令をリオーダ・バッファ76内の関連するエ
ントリに割り当てる。シーケンサ・ユニット18は、先
入れ先出しベース及び回転法で、リオーダ・バッファ7
6中のエントリをディスパッチされた命令に割り当てる
(または「関連付ける」)。つまりシーケンサ・ユニッ
ト18は、エントリ0を割り当て、続いて順にエントリ
1〜4を割り当て、そこで再びエントリ0を割り当て
る。ディスパッチされた命令が、リオーダ・バッファ7
6内の関連エントリに割り当てられるとき、ディスパッ
チ論理回路74は、リオーダ・バッファ76中の関連エ
ントリの種々のフィールド、及びサブフィールド中での
保管のために、ディスパッチされた命令に関する情報を
出力する。
【0050】例として図4のエントリ1では、リオーダ
・バッファ76は、命令がFXU22にディスパッチさ
れたことを示している。本実施例の他の特徴としてエン
トリ1は更に、ディスパッチされた命令が1つのGPR
宛先レジスタを持ち(「GPR宛先数」=1が示すよう
に)、ゼロ個のFPR宛先レジスタを持ち(「FPR宛
先数」=0が示すように)、現在まだ終了しておらず
(「終了」=0が示すように)、更に現時点ではまだ例
外を発生させてない(「例外」=0が示すように)こと
を示す。
【0051】実行ユニットがディスパッチされた命令を
実行するとき、実行ユニットは、リオーダ・バッファ7
6内のこの命令に関連するエントリを変更する。更に詳
細には、ディスパッチされた命令の実行の終了に応答し
て、実行ユニットはエントリの「終了」フィールドを変
更する(「終了」=1のように)。実行ユニットが、デ
ィスパッチされた命令の実行中に「例外」に遭遇した場
合には、実行ユニットはエントリの「例外」フィールド
を変更する(「例外」=1のように)。
【0052】図4は、割り振りポインタ173及び完了
ポインタ175を示す。プロセッサ10は、リオーダ・
バッファ76からの読み出し、及びこのバッファへの書
き込みを制御するために、これらのポインタを維持す
る。プロセッサ10は、リオーダ・バッファのエントリ
が特定の命令に割り振られる(または「関連付けられ
る」)か否かを示すために、割り振りポインタ173を
維持する。図4に示すように割り振りポインタ173
は、リオーダ・バッファ・エントリ3を指し、これによ
ってリオーダ・バッファ・エントリ3が、命令に割り振
ることができる次のリオーダ・バッファ・エントリであ
ることを示している。
【0053】プロセッサ10は完了ポインタ175も維
持し、(特定の命令に以前に割り振られたリオーダ・バ
ッファ・エントリに対して)この特定の命令が次の条件
を満足するか否かを示す。 条件1−命令をディスパッチされた実行ユニットが、命
令実行を終了させた。 条件2−命令処理のいかなるステージに関しても、例外
に遭遇しなかった。 条件3−以前にディスパッチされた命令のいずれもが、
上記条件1及び条件2を満足している。
【0054】図4に示すように完了ポインタ175は、
リオーダ・バッファのエントリ1を指し、これによりリ
オーダ・バッファのエントリ1は、前記条件1、2、及
び3を満たすことが可能な次のリオーダ・バッファ・エ
ントリであることを示している。したがって「有効な」
リオーダ・バッファ・エントリは、完了ポインタ175
が指すリオーダ・バッファ・エントリとして定義でき、
更にこのエントリの後にあり、割り振りポインタ173
が指すリオーダ・バッファ・エントリの前にあるリオー
ダ・バッファ・エントリとして定義できる。
【0055】図2を再度参照するとリオーダ・バッファ
76のエントリは、シーケンサ・ユニット18の完了論
理回路80、及び例外論理回路82によって読み取られ
る。リオーダ・バッファ76の「例外」フィールドに応
答して、例外論理回路82は、ディスパッチされた命令
の実行中に遭遇した例外を処理する。完了論理回路80
は、リオーダ・バッファの「終了」フィールド、及び
「例外フィールド」に反応し、ディスパッチ論理回路7
4及びリオーダ・バッファ76に信号を出力する。完了
論理回路80はこれらの信号を介して、命令がプログラ
ムされた順で命令の「完了」を示す。完了論理回路80
は、命令が次の条件を満たす場合に命令の「完了」を示
す。 条件1−命令をディスパッチされた実行ユニットが、命
令の実行を終了した(リオーダ・バッファ76内のこの
命令に関連するエントリ内で、「終了」=1となるよう
に)。 条件2−命令のプロセスのいかなるステージに関して
も、例外に遭遇しなかった(リオーダ・バッファ76内
のこの命令に関連するエントリ内で「例外」=0となる
ように)。 条件3−以前にディスパッチされたいかなる命令も、条
件1及び条件2を満たす。
【0056】ディスパッチ論理回路74は、リオーダ・
バッファ76中の情報に応答して、ディスパッチすべき
追加命令の適切な数を決定する。
【0057】図5は、浮動小数点リネーム・バッファ3
8を概念的に示したものである。リネーム・バッファ3
8は図5に示すように、バッファ番号0から3としてそ
れぞれラベルが付けられている4つのリネーム・バッフ
ァを含む。シーケンサ・ユニット18は、リネーム・バ
ッファ番号0〜3を先入れ先出しベース、及び回転法で
ディスパッチされた命令に割り振る(または「関連付け
る」)。したがってシーケンサ・ユニット18は、先ず
リネーム・バッファ番号0を割り振り、次にリネーム・
バッファ番号1〜3を順に割り振り、ここで再びリネー
ム・バッファ番号0を割り振る。
【0058】図5を参照するとリネーム・バッファ2
は、ディスパッチ論理回路74(図2を参照)がディス
パッチした命令用の宛先オペランド情報を保管するため
に、割り振られる。図5は割り振りポインタ180、ラ
イトバック・ポインタ182、及び完了ポインタ184
を示す。プロセッサ10は、リネーム・バッファ38か
らの読み取り、及びこのバッファへの書き込みを制御す
るために、これらのポインタを維持する。プロセッサ1
0は、リネーム・バッファが特定の命令に割り振られて
いるか否かを示すために、割り振りポインタ180を維
持する。割り振りポインタ180は、図5に示すように
リネーム・バッファ3を指し、これによりリネーム・バ
ッファ3が、命令の割り振りのために使用できる次のリ
ネーム・バッファであることを示している。
【0059】プロセッサ10は、特定の命令に以前割り
振られたリネーム・バッファが、他の命令の再割り振り
のために使用可能であるか否かを示すために、更にライ
トバック・ポインタ182を維持する。ライトバック・
ポインタ182は、図5に示すようにリネーム・バッフ
ァ2を指し、これによりリネーム・バッファ2が、プロ
セッサ10が(図5のリネーム・バッファの「情報」フ
ィールドに保管されている)宛先オペランド情報を、
(図5のリネーム・バッファの「レジスタ番号」フィー
ルドに指定されている)FPR36の1つにコピーする
ために取り出す次のリネーム・バッファであることを示
す。
【0060】したがってプロセッサ10が、特定の命令
の結果(宛先オペランド情報)をアーキテクチャ・レジ
スタ内で保管するために、リネーム・バッファからコピ
ーしたことに応答して、プロセッサ10は、この特定の
命令に以前に割り振られたリネーム・バッファを通り越
して、ライトバック・ポインタ182を進める。このよ
うにして、プロセッサ10が、特定の命令の結果(宛先
オペランド情報)をアーキテクチャ・レジスタにコピー
するまで、プロセッサ10は、この結果を保管するため
に割り振られるリネーム・バッファを予約する。
【0061】プロセッサ10は、特定の命令に以前に割
り振られたリネーム・バッファに対して、この特定の命
令が次の条件を満足するか否かを示す完了ポインタ18
4も維持する。 条件1−命令をディスパッチされた実行ユニットが、命
令の実行を終了した。 条件2−命令のプロセスのいかなるステージに関して
も、例外に遭遇しなかった。 条件3−以前にディスパッチされた命令のいずれもが、
条件1及び条件2を満足する。
【0062】完了ポインタ184は、図5に示すように
リネーム・バッファ2を指し、これによりリネーム・バ
ッファ2が条件1、2、及び3を満たすことができる次
のリネーム・バッファであることを示している。本実施
例では、命令の結果が、リネーム・バッファからコピー
されてアーキテクチャ・レジスタに保管されるか否かに
関係なく、プロセッサ10は完了ポインタ184を維持
する。
【0063】したがって「リネーム・エントリ」は、完
了ポインタ184が指すリネーム・バッファとして定義
でき、更にこのバッファの後にあり、割り振りポインタ
180が指すリネーム・バッファの前にあるリネーム・
バッファとして定義できる。「ライトバック・エント
リ」は、ライトバック・ポインタ182が指すリネーム
・バッファとして定義でき、更にこのバッファの後にあ
り、完了ポインタ184が指すリネーム・バッファの前
にあるリネーム・バッファとして定義できる。ライトバ
ック・エントリは、「完了した」命令であって、しかし
これらの命令の結果が、例えばアーキテクチャ・レジス
タへの書き込みポートが使用できないために、リネーム
・バッファからアーキテクチャ・レジスタにコピーされ
てない、命令の結果を保管する。
【0064】ライトバック・エントリは、概念的にはリ
ネーム・エントリとアーキテクチャ・レジスタとの間に
位置する。完了ステージでライトバック・ポートが使用
できる場合には、都合のよいことに、命令の結果はライ
トバック・エントリをバイパスし、アーキテクチャ・レ
ジスタに直接書き込める。更にプロセッサ10は、リネ
ーム・エントリと同様に、ライトバック・エントリを操
作し、実行ユニットが、実行ユニットに出力される情報
に関連づけられたアーキテクチャ・レジスタを指定する
命令を実行するときに、実行ユニットに情報を出力す
る。
【0065】FPU30は、単精度(即ち32ビット)
オペランド、及び倍精度(即ち64ビット)オペランド
の双方に対して、完成にIEEE754を遵守してい
る。したがって倍精度オペランドをサポートするために
は、図5の各リネーム・バッファの「情報」フィールド
は、64ビット幅である。ここで図1も参照すると、プ
ロセッサ10が全電力モードで動作している場合は、L
SU28は(LSU28がFRP36に送られる「ロー
ド」命令を実行する結果)64ビットの情報を、プロセ
ッサ10の単一のサイクル(即ちサイクル当たり64ビ
ットの情報)の間に、データ・キャッシュ16から(リ
ネーム・バッファ38の)単一のリネーム・バッファの
「情報」フィールドにロードする。このようにして、例
えばデータ・キャッシュ16が、4ウェイのセット・ア
ソシアティブ・キャッシュであれば、プロセッサ10の
この単一サイクルの間に、データ・キャッシュ16の少
なくとも256のセンス増幅器(64ビット/ウェイ×
4ウェイ×1センス増幅器/ビット)がアクティブであ
る。これらのセンス増幅器のアクティブ化は、プロセッ
サ10の平均電力消費に寄与する。
【0066】プロセッサ10が、上記と比較して「特
別」電力モードで動作している場合は、LSU28は
(LSU28がFPR36に送られる「ロード」命令を
実行する結果)64ビットの情報を、プロセッサ10の
2サイクル(即ちサイクル当たり32ビットの情報)の
間に、データ・キャッシュ16から(リネーム・バッフ
ァ38の)単一のリネーム・バッファの「情報」フィー
ルドにロードする。このようにして、データ・キャッシ
ュ16の例えば128のセンス増幅器(32ビット/ウ
ェイ×4ウェイ×1センス増幅器/ビット)が、プロセ
ッサ10のこれらの2サイクルのそれぞれの間にアクテ
ィブであり、一方でデータ・キャッシュ16の残りの1
28のセンス増幅器が、使用不可状態である。256の
センス増幅器(全電力モード)の代わりに、128のセ
ンス増幅器(「特別」電力モード)だけをアクティブに
することによって、都合よくプロセッサ10の平均電力
消費が減少し、これは、プロセッサ10のサイクル当た
り、これらのセンス増幅器の1/2のみがアクティブに
されるからである。
【0067】プロセッサ10がソフトウェア事象に応答
して「特別」電力モードに入る場合は、更なる電力消費
減少が達成されるが、その理由は、図6に関して以下に
更に説明するように、この状況ではプロセッサ10が、
命令キャッシュ14及びデータ・キャッシュ16内のウ
ェイ数を減少させるからである。プロセッサ10がソフ
トウェア事象に応答して、データ・キャッシュ16内の
ウェイ数を例えば4ウェイの代わりに2ウェイに減らす
場合は、プロセッサ10が「特別」電力モードで動作し
ている間のプロセッサ10の上記2サイクルの各サイク
ルの間、データ・キャッシュ16の64のセンス増幅器
(32ビット/ウェイ×2ウェイ×1センス増幅器/ビ
ット)がアクティブである(一方でデータ・キャッシュ
16の残りの192のセンス増幅器が使用不可状態であ
る)。プロセッサ10が、ソフトウェア事象に応答して
「特別」電力モードに入っている場合は、256のセン
ス増幅器(全電力モード)の代わりに、64のセンス増
幅器のみをアクティブにすることによって、都合よくプ
ロセッサ10の平均電力消費が減少し、これはプロセッ
サ10のサイクル当たり、これらのセンス増幅器の1/
4のみがアクティブにされるからである。
【0068】図6は命令キャッシュ14のブロック図を
示す。図6の命令キャッシュ14は、同じようなデータ
・キャッシュ16を代表する。命令キャッシュ14及び
データ・キャッシュ16のそれぞれは、16Kバイトの
4ウェイセット・アソシアティブ・キャッシュである。
命令キャッシュ14及びデータ・キャッシュ16は、物
理(即ち「実」)アドレスに従ってアドレスされる。
【0069】したがって図6には制御論理回路100が
示され、この制御論理回路には、有効アドレスを物理ア
ドレスに変換するためのメモリ管理ユニット(「MM
U」)が含まれる。有効アドレスは、例えばシーケンサ
・ユニット18のフェッチ論理回路71(図2参照)か
ら受信する。本実施例では有効アドレスのビット20
ら211は、関連する物理アドレスへの変換では変更され
ず、したがって有効アドレスのビット20から211は、
関連する物理アドレスのビット20から211と同じディ
ジタルの論理値をもつ。
【0070】命令キャッシュ14及びデータ・キャッシ
ュ16のそれぞれは、図6に示すように、128の合同
なクラス(即ちセット)に論理的に配置されている。命
令キャッシュ14において例えば各上記セットは、それ
ぞれ命令キャッシュ14内に4ラインの事前に割り当て
られた関連グループ(即ち4ウェイであるブロック0〜
3)をもつ。各ラインはそれぞれのアドレス・タグ、そ
れぞれの状態ビット(例えば「有効」ビット)、及びそ
れぞれの8ワードの情報のグループを保管できる。各ワ
ードは4バイト(即ち32ビット)をもつ。
【0071】このようにしてセット0のブロック3は、
Address Tag03、状態ビットState03
及びワードW030からW037を保管できる。同様に各セッ
トxのブロックyは、Address Tagxy、状態
ビットStatexy、及びワードWxyoからWxy7を保管
でき、ここでxは0から127の範囲の可変整数のセッ
ト番号であり、yは0から3の範囲の可変整数のブロッ
ク番号である。
【0072】各セットは、物理アドレス・ビット25
ら211によって指定される。例えば各セットは複数アド
レスを含み、これらのアドレスのすべてが、同じ7つの
物理アドレス・ビット25から211を共有する。したが
っていずれの一瞬間においても、命令キャッシュ14
は、特定のセットxに属する4つまでの物理アドレスに
対する情報を保管し、これらのアドレスは、命令キャッ
シュ14内のセットxに関連する4ラインのグループに
保管されるAddress TagxoからAddres
s Tagx3によって指定される。
【0073】例えば、(a)命令キャッシュ14はセッ
ト0のブロック0に、最初のアドレス・ビット212から
31を含むAddress Tag00を保管でき、
(b)命令キャッシュ14はセット0のブロック1に、
第2のアドレス・ビット212から231を含むAddre
ss Tag01を保管でき、(c)命令キャッシュ14
はセット0のブロック2に、第3のアドレス・ビット2
12から231を含むAddress Tag02を保管で
き、更に(d)命令キャッシュ14はセット0のブロッ
ク3に、第4のアドレス・ビット212から231を含むA
ddress Tag03を保管できる。このように各A
ddress Tagxyは20ビットをもつ。
【0074】図7は、図6の命令キャッシュ14のセン
ス増幅回路の構造を示す電気回路図であり、全体を参照
番号121で示す。センス増幅回路121は、図6のセ
ンス増幅器104、106、108a〜108hを代表す
るセンス増幅回路である。したがって各Address
Tagxyが20ビットをもつので、センス増幅器10
4は80個のセンス増幅回路(ブロック0〜ブロック3
の4つに対してそれぞれ20個のセンス増幅回路)を含
み、各増幅回路は、本質的に回路121と同じである。
【0075】同様に各ワードWxyz(ここでzは0〜7
までの整数のワード番号)は32ビットを持ち、各セン
ス増幅器108aから108hが、それぞれ128個のセ
ンス増幅回路(ブロック0〜ブロック3の4つに対して
それぞれ32個のセンス増幅回路)のグループを含み、
各増幅回路は本質的に回路121と同じであり、したが
ってセンス増幅器108aから108hは合計1024個
のセンス増幅回路(ワード0〜ワード7の8つに対して
それぞれ128個のセンス増幅回路)を含む。同じよう
に、センス増幅器106内のセンス増幅回路数は、St
atexy当たりのビット数の4倍に等しく、これらのセ
ンス増幅回路のそれぞれは、本質的に回路121と同じ
である。
【0076】各20ビットのAddress Tagxy
は、それぞれの20個のダイナミック・ランダム・アク
セス・メモリ(「DRAM」)セルのグループを含み、
各DRAMセルは、それぞれのディジタル情報の単一ビ
ットを保管できる。同様に各32ビットのワードWxyz
は、それぞれの32個のDRAMセルのグループを含
み、各DRAMセルは、それぞれのディジタル情報の単
一ビットを保管できる。同じように、各Statexy
DRAMセル数は、Statexy当たりのビット数に等
しい。
【0077】センス増幅器104の80個のセンス増幅
回路は、(1)Address Tagx0(xはセット
番号)として示されている128セット中の20個の各
DRAMセルが、それぞれセンス増幅器104の第1の
グループの20個のセンス増幅回路に結合され、(2)
Address Tagx1として示されている128セ
ット中の20個の各DRAMセルが、それぞれセンス増
幅器104の第2のグループの20個のセンス増幅回路
に結合され、(3)Address Tagx2として示
される128セット中の20個の各DRAMセルが、そ
れぞれセンス増幅器104の第3のグループの20個の
センス増幅回路に結合され、(4)Address T
agx3として示される128セット中の20個の各DR
AMセルが、それぞれセンス増幅器104の第4のグル
ープの20個のセンス増幅回路に結合されるように構成
される。
【0078】したがってセンス増幅器104の各センス
増幅回路は、Address Tagxyのビット2q
のディジタル情報を保管するそれぞれの1ファミリの1
28個のDRAMセルに結合され、ここで、(a)qは
一定(即ち、ファミリのすべてのDRAMセルに共通)
の0〜19までのビット番号であり、(b)xは可変
(即ち、ファミリのすべてのDRAMセルに対して異な
る)の0〜127までのセット番号であり、(c)yは
0から3までの一定のブロック番号である。
【0079】図7に示すように各センス増幅回路(回路
121)は、イネーブル線をもつ。図6を参照するとイ
ネーブル線102は、合計4本のアドレス・タグ・イネ
ーブル線(4ブロック×1本のアドレス・タグ・イネー
ブル線/ブロック)を含む。このアドレス・タグ・イネ
ーブル線のそれぞれは、制御論理回路100からセンス
増幅器104の4グループのそれぞれの1つに接続さ
れ、そこでそれぞれのグループは、Address T
agxy用のディジタル情報を保管する1ファミリのDR
AMセルに結合されており、ここで、(a)xは0から
127までの可変のセット番号であり、(b)yは0か
ら3までの一定のブロック番号である。
【0080】センス増幅器108aから108hの102
4個のセンス増幅器は、(1)Wx0 zとして示されてい
る128セット中の256個の各DRAMセルが、セン
ス増幅器108aから108hの第1のグループの256
個のセンス増幅回路を介して、それぞれバス120a
由でマルチプレクサ114aに結合され、(2)Wx1z
して示されている128セット中の256個の各DRA
Mセルが、センス増幅器108aから108hの第2のグ
ループの256個のセンス増幅回路を介して、それぞれ
バス120b経由でマルチプレクサ114bに結合され、
(3)Wx2zとして示されている128セット中の25
6個の各DRAMセルが、センス増幅器108aから1
08hの第3のグループの256個のセンス増幅回路を
介して、それぞれバス120c経由でマルチプレクサ1
14cに結合され、更に(4)Wx3zとして示されている
128セット中の256個の各DRAMセルが、センス
増幅器108aから108hの第4のグループの256個
のセンス増幅回路を介して、それぞれバス120d経由
でマルチプレクサ114dに結合されるように構成され
る。
【0081】したがってセンス増幅器108a〜108h
の各センス増幅回路は、ワードWxy zのビット2q用のデ
ィジタル情報を保管するそれぞれの1ファミリの128
個のDRAMセルに結合され、ここで(a)qは0から
31までの一定のビット番号、(b)xは0から127
までの可変のセット番号、(c)yは0から3までの一
定のブロック番号、更に(d)zは0から7までの一定
のワード番号である。
【0082】イネーブル線102は、合計32本のワー
ド・イネーブル線(4ブロック×8ワード/ブロック×
1ワード・イネーブル線/ワード)を含む。このワード
・イネーブル線のそれぞれは、制御論理回路100から
センス増幅器108a〜108hの4つのグループのそれ
ぞれのサブグループに接続され、そこで各サブグループ
は、ワードWxyz用のディジタル情報を保管する1ファ
ミリのDRAMセルに結合され、ここで、(a)xは0
から127までの可変のセット番号、(b)yは0から
3までの一定のブロック番号、更に(c)zは0から7
までの一定のワード番号である。
【0083】同様にセンス増幅器106は、(1)St
atexo(xはセット番号)として示されている128
セット中のDRAMセルのそれぞれが、センス増幅器1
06の第1のグループのセンス増幅回路に結合され、
(2)Statex1として示されている128セット中
のDRAMセルのそれぞれが、センス増幅器106の第
2のグループのセンス増幅回路に結合され、(3)St
atex2として示されている128セット中のDRAM
セルのそれぞれが、センス増幅器106の第3のグルー
プのセンス増幅回路に結合され、更に(4)State
x3として示されている128セット中のDRAMセルの
それぞれが、センス増幅器106の第4のグループのセ
ンス増幅回路に結合されるように構成される。
【0084】したがってセンス増幅器106の各センス
増幅回路は、Statexyのビット2q用のディジタル
情報を保管するそれぞれの1ファミリの128個のDR
AMセルに結合され、ここで、(a)qは一定のビット
番号、(b)xは0から127までの可変のセット番
号、更に(c)yは0から3までの一定のブロック番号
である。
【0085】イネーブル線102は、合計で4本の状態
イネーブル線(4ブロック×1状態イネーブル線/ブロ
ック)を含む。この状態イネーブル線のそれぞれは、制
御論理回路100からセンス増幅器106の4グループ
のそれぞれの1つに接続され、そこでそれぞれのグルー
プは、Statexy用のディジタル情報を保管する1フ
ァミリのDRAMセルに結合され、ここで(a)xは0
から127までの可変のセット番号であり、(b)yは
0から3までの一定のブロック番号である。
【0086】図7を参照すると各センス増幅回路(回路
121)には、128個の結合されたDRAMセルの1
つから配線D及びDを介して作動電圧が入力されてい
る。ここで前記の1つのDRAMセルは、セット番号に
従って(即ち、前記のようにアドレス・ビット25から
11に従って)制御論理回路100から制御線124に
出力される論理状態に応答して選択される。イネーブル
が論理1の状態をもつ場合は、回路121がアクティブ
にされ、それ以外の場合は、回路121はアクティブに
されない。回路121がアクティブでない場合は、プロ
セッサ10の電力消費は少なく、出力ノードOUTは、
高インピーダンス状態にある。回路121がアクティブ
にされている間に、DがDより高い電圧をもつ場合は、
OUTはVddに実質的に等しい電圧(即ち論理1状
態)をもつ。これと比較して、回路121がアクティブ
にされている間に、DがDより低い電圧をもつ場合は、
OUTはGNDに実質的に等しい電圧(即ち論理0の状
態)をもつ。
【0087】バス110を介して、アドレス・タグ情報
が、制御論理回路100とAddress Tagxy
の間を転送され、状態情報が、制御論理回路100とS
tatexyとの間を転送される。バス116、118及
び120aから120dを介して、命令情報(またはデー
タ・キャッシュ16の場合はデータ情報)が制御論理回
路100とWxyzとの間を転送される。
【0088】例としての命令フェッチ動作では、制御論
理回路100は、シーケンサ・ユニット18から有効ア
ドレスを受信する。制御論理回路100は、前記のよう
に受信した有効アドレス・ビット25から211従って特
定のセットxを決定し、制御論理回路100はセットx
のブロック0〜ブロック3から情報を入手する。更に詳
細には、制御論理回路100は、バス110を介して4
つのアドレス・タグ、Address Tagx0、Ad
dress Tagx1、Address Tagx2、及
びAddress Tagx3を読み取り、更にそれらの
タグそれぞれの4つの状態、Statex0、State
x1、Statex2、及びStatex3を読み取る。
【0089】更に制御論理回路100は、受信した有効
アドレスのビット23及び24を、制御線122を介して
マルチプレクサ114a〜114dに出力する。マルチプ
レクサ114aは、制御線122の論理状態に応答し
て、セットxのブロック0から選択したダブル・ワード
をバス118に出力する。例えば選択したダブル・ワー
ドは、(a)Wx00及びWx01として示されているDRA
Mセル、(b)Wx02及びWx03で示されているDRAM
セル、(c)Wx04及びWx05で示されているDRAMセ
ル、または(d)Wx06及びWx07で示されているDRA
Mセルのいずれかからのものである。
【0090】同様に制御線122の論理状態に応答し
て、マルチプレクサ114bは、セットxのブロック1
から選択されたダブル・ワードをバス118に出力し、
マルチプレクサ114cは、セットxのブロック2から
選択されたダブル・ワードをバス118に出力し、更に
マルチプレクサ114dは、セットxのブロック3から
選択されたダブル・ワードをバス118に出力する。マ
ルチプレクサ112は、バス118を介してマルチプレ
クサ114a〜114dから4つのダブル・ワードのすべ
てを受信する。
【0091】制御論理回路100のMMUは、受信した
友好アドレスを特定の物理アドレスに変換する。制御論
理回路100は、特定の物理アドレスのビット212から
31を、バス110から来るすべての有効なAddre
ss Tagxyと比較する。Address Tagxy
の有効性は、Address Tagxyに付随するSt
atexy中の「有効」ビットのディジタル論理値が示
す。このような比較の結果、特定の物理アドレスのビッ
ト212から231が、いずれかの有効なAddress
tagxyと一致した場合は、制御論理回路100は、制
御線126を介して適切な制御信号をマルチプレクサ1
12に出力する。その結果マルチプレクサ112は、バ
ス116を介して制御論理回路100に、(a)Add
resstagx0と一致したのであれば、マルチプレク
サ114aからのダブル・ワード、(b)Addres
s Tagx1と一致したのであれば、マルチプレクサ1
14bからのダブル・ワード、(c)Address
Tagx2と一致したのであれば、マルチプレクサ114
cからのダブル・ワード、または(d)Address
Tagx3と一致したのであれば、マルチプレクサ11
dからのダブル・ワードのいずれかを出力する。
【0092】したがって制御論理回路100は、マルチ
プレクサ112からダブル・ワードを入手する。プロセ
ッサ10が全電力モードで動作している場合は、制御論
理回路100は、前記の実例としての命令フェッチ動作
の一部として、ダブル・ワードをマルチプレクサ112
からシーケンサ・ユニット18に出力する。
【0093】上記と比較して、プロセッサ10が「特
別」電力モードで動作している場合は、制御論理回路1
00は、単一のワード(即ちダブル・ワードの半分)の
みをマルチプレクサ112からシーケンサ・ユニット1
8に出力する。制御論理回路100は、有効アドレスの
ビット22に従って単一のワードを選択する。これは、
プロセッサ10が「特別」電力モードで動作している場
合は、プロセッサ10の単一サイクルの間に、命令バッ
ファ70(図3参照)が64ビットのバス50を介し
て、命令キャッシュ14から(2つまでの32ビット命
令の代わりに)単一の32ビット命令のみを入手できる
からである。
【0094】「特別」電力モードでは制御論理回路10
0は、イネーブル線102上に適切な信号を出力し、そ
の結果、センス増幅器108aから108hの選択された
サブグループのみがアクティブにされ、センス増幅器1
08aから108hの選択されなかったサブグループは、
使用不可状態となる。選択されたサブグループは、ワー
ドWxyz用のディジタル情報を保管しているDRAMセ
ルに結合されているサブグループであり、ここで(a)
xは0から127までの可変のセット番号であり、
(b)yは0から3までの一定のブロック番号であり、
(c)zは有効なアドレス・ビット22から24に従って
選択された0から7までの一定のワード番号である。こ
のようにしてプロセッサ10は、プロセッサ10のサイ
クル当たり、命令キャッシュ14の(全電力モードに比
較して)少ないセンス増幅回路をアクティブにする。こ
れによって命令キャッシュ14の平均電力消費(したが
ってプロセッサ10の平均電力消費)が減少する。
【0095】プロセッサ10が、ソフトウェア事象(即
ちSPSが論理1状態をもつ)に応答して「特別」電力
モードに入った場合は、更に電力消費が減る。その理由
は、この状況では制御論理回路100は、命令キャッシ
ュ内のウェイ数を4ウェイの代わりに2ウェイに減らす
からである。したがってプロセッサ10が「特別」電力
モードで動作している間に、制御論理回路100は、
(a)AddressTagx2及びAddress T
agx3が、それぞれStatex2及びStatex3中の
「有効」ビットのディジタル論理値が示すように、有効
ではなく、(b)Address tagx0及びAdd
ress Tagx1のみが、それぞれStatex0及び
Statex1中の「有効」ビットのディジタル論理値が
示すように、有効にされていることが確実な状況で動作
する。
【0096】したがってこの状況での命令フェッチ動作
では、256のセンス増幅器(2ワード/ウェイ×4バ
イト/ワード×8ビット/バイト×4ウェイ×1センス
増幅器/ビット)の代わりに、64のセンス増幅器(1
ワード/ウェイ×4バイト/ワード×8ビット/バイト
×2ウェイ×1センス増幅器/ビット)がアクティブに
され、これは図2及び図3に関連させて前記で詳しく説
明した通りである。これにより都合よく、命令キャッシ
ュ14の平均電力消費(したがってプロセッサ10の平
均電力消費)が顕著に減少する。
【0097】同様にプロセッサ10が、ソフトウェア事
象に応答して「特別」電力モードに入った場合は、プロ
セッサ10は、データ・キャッシュ16内のウェイ数を
4ウェイの代わりに2ウェイに減らす。したがって、こ
の状況でのLSU28の浮動小数点ロード動作では、6
4のセンス増幅器(1ワード/ウェイ×4バイト/ワー
ド×8ビット/バイト×2ウェイ×1センス増幅器/ビ
ット)が、256のセンス増幅器(2ワード/ウェイ×
4バイト/ワード×8ビット/バイト×4ウェイ×1セ
ンス増幅器/ビット)の代わりにアクティブにされ、こ
れは図5に関連させて前記で詳しく説明した通りであ
る。これにより都合よく、データ・キャッシュ16の平
均電力消費(したがってプロセッサ10の平均電力消
費)が顕著に減少する。
【0098】前記のソフトウェア事象は、SPSが論理
0の状態から論理1の状態に移行した瞬間に発生する。
SPR40の「HID0」レジスタの所定のビットに向
けて、CFXU26が最初のMTSPR命令を実行する
ときに、SPSが論理1状態に移行する。最初のMTS
PR命令は、SPSの論理1状態を指定する。
【0099】プロセッサ10内の回路の複雑さを減少さ
せるために、最初のMTSPR命令の直前に、ソフトウ
ェアが「同期化(SYNC)」命令を指定し、その直後
に「命令同期化(ISYNC)」命令を指定することが
有用である。最初のMTSPR命令の直後に、ソフトウ
ェアがもう1つのISYNC命令を指定することは有用
である。
【0100】直ぐ前で説明したようにプロセッサ10
が、ソフトウェア事象(即ちSPSが論理1の状態をも
つ)に応答して「特別」電力モードに入った場合は、プ
ロセッサ10は、命令キャッシュ14及びデータ・キャ
ッシュ16内のウェイ数を、4ウェイの代わりに2ウェ
イに減らす。したがって最初のMTSPR命令に先行す
るSYNC命令の直前に、ソフトウェアが「データ・キ
ャッシュ・ブロック・フラッシュ(DCBF)」命令、
及び「命令キャッシュ・ブロック無効化(ICBI)」
命令を指定することが重要である。
【0101】同様に、SPR40の「HID0」レジス
タの所定のビットに向けて、CFXU26が第2のMT
SPR命令を実行するときに、SPSは論理0に移行す
る。第2のMTSPR命令は、SPSの論理0の状態を
指定する。第2のMTSPR命令の直前に、ソフトウェ
アがSYNC命令を指定し、その直後にISYNC命令
を指定することは有用である。第2のMTSPRの直後
に、ソフトウェアがもう1つのISYNC命令を指定す
ることは有用である。
【0102】前記のDCBF命令は有効アドレスを指定
する。データ・キャッシュ16内のいずれかのライン
が、有効アドレスに存在する情報(例えばデータ)を保
管する場合は、プロセッサ10は、DCBF命令に従っ
て、Statexy中のこのラインの有効ビットを消去す
ることによって、このラインを無効化する。この無効化
されたラインが、(有効アドレスに従って変換された)
同じ物理アドレスにあるメモリ39(図1参照)に保管
された旧バージョンの情報に対応するものとして、プロ
セッサ10によって既に変更されている情報を保管して
いる場合は、プロセッサ10は、更にDCBF命令に応
答して、変更された情報をデータ・キャッシュ16から
メモり39内の同じ物理アドレスにコピーすることによ
って、メモリ39を更新する。SPSが論理1に移行す
る前に、データ・キャッシュ16内の128個すべての
セットのブロック2、及びブロック3内のすべてのライ
ンが確実に無効化されるように、ソフトウェアが十分な
DCBF命令を指定することが重要である。
【0103】ICBI命令は有効アドレスを指定する。
命令キャッシュ14内のいずれかのラインが、有効アド
レスに情報(例えば命令)を保管する場合は、プロセッ
サ10は、ICBI命令に従って、Statexy内のこ
のラインの「有効」ビットを消去することによって、こ
のラインを無効化する。SPSが論理1に移行する前
に、命令キャッシュ14内の128個すべてのセットの
ブロック2、及びブロック3内のすべてのラインが確実
に無効化されるように、ソフトウェアが十分なICBI
命令を指定することが重要である。
【0104】SYNC命令は、プロセッサ10が実行す
るすべての命令の実行に対して、順序づけ機能を提供す
る。プロセッサ10が、SYNC命令を実行する際に、
次の命令(即ち実行用命令のプログラムされた順序内
で、SYNC命令に続く命令)のいずれかを実行する前
に、プロセッサは、「タッチ・ロード」操作及び命令フ
ェッチを除くすべての以前の命令(即ち実行用命令のプ
ログラムされた順序内で、SYNC命令の前にある命
令)が、少なくともそれ以降に例外を引き起こすことが
ない段階まで完了していることを確認する。
【0105】プロセッサ10がSYNC命令の実行を完
了したとき、(メモリ39をアクセスする他のすべての
方法に関して)プロセッサ10は、このSYNC命令の
前にプロセッサ10が開始したすべての外部アクセスを
実行し終わっている。プロセッサ10は、更に以前の命
令に従って開始されたすべての自身のロード・キャッシ
ュ/バス活動、及びストア・キャッシュ/バス活動を完
了させている。プロセッサ10は、すべての以前の「デ
ータ・キャッシュ・ブロック・タッチ(DCBT)」、
及び「保管用データ・キャッシュ・ブロック・タッチ
(DCBTFS)」命令が、少なくともアドレス変換を
完了するまで、SYNC命令の完了を遅らせる。しかし
このことは、これらのDCBT及びDCBTFT命令
が、システム・バス11上で完了したか否かには関係な
い。SYNC、DCBT、及びDCBTFT命令は、前
記の「PowerPC 603e RISC Micr
oprocessor User’s Manual」
に更に詳しく説明されている。
【0106】プロセッサ10は、ISYNC命令に従っ
て、すべての以前の命令(即ち実行用命令のプログラム
された順序内で、ISYNC命令の前にある命令)の実
行が完了できるまで待つ。そこでプロセッサ10は、す
べてのフェッチ済みの命令を廃棄し、その結果、以前の
命令によって確定された文脈で、次の命令がフェッチ
(または再フェッチ)され、実行される。プロセッサ1
0がISYNC命令を実行するに際し、他のプロセッサ
やそれらのキャッシュには影響を与えない。
【0107】プロセッサ10はISYNC命令の実行に
際し、再フェッチの連続化を行う。このようにしてプロ
セッサ10が、何らかの次の命令(実行用命令のプログ
ラムされた順序内で、ISYNC命令に続く命令)を実
行する前に、プロセッサ10は、(a)すべての以前の
命令が、少なくともそれ以降に例外を引き起こすことが
ない段階まで完了しており、(b)すべての以前のスト
ア操作が少なくともアドレス変換を完了していることを
確認する。これらの次の命令は、以前の命令のすべての
結果に影響される。ISYNC命令は文脈に同期化され
る。
【0108】ハードウェア事象は、HPSが論理0の状
態から論理1の状態に移行する瞬間に発生する。プロセ
ッサ10は、HPSの論理0状態から論理1状態への移
行に応答して、次のエミュレーション活動を行う。 1.シーケンサ・ユニット18(図1を参照)は、プロ
セッサ10の実行ユニットに未だディスパッチされてな
い、命令バッファ70(図3を参照)内のすべての保留
状態の命令を打ち切る。 2.プロセッサ10は、実行ユニット(分岐ユニット2
0、FXU22、CFXU26、LSU28、及びFP
U30)内のすべての保留状態の命令を打ち切る。その
結果、これらの保留状態の命令は実行されない。上記と
関連してLSU28(図1を参照)は、データ・キャッ
シュ16内の情報記憶域に未だ保管が行われてないすべ
ての保留状態のストア命令を打ち切る。例えば本実施例
では、LSU28はストアの待ち行列を含む。したがっ
てLSU28は、ストア待ち行列内のすべての保留状態
のストア要求を打ち切り、その結果、これらの保留状態
のストア要求は実行されない。 3.プロセッサ10は、リネーム・バッファ34及び3
8(図1を参照)内のすべてのエントリを無効化する。
プロセッサ10は、例えばライトバック・ポインタ18
2(図5を参照)及び完了ポインタ184を移動させ、
その結果、ライトバック・ポインタ182及び完了ポイ
ンタ184は、割り振りポインタ180と同じリネーム
・バッファ・エントリを指す。 4.シーケンサ・ユニット18(図2参照)は、リオー
ダ・バッファ76の完了ポインタ175(図4を参照)
が指す命令のアドレスを保存する。プロセッサ10は、
その後完了ポインタ175を移動させることにより、リ
オーダ・バッファ76内のすべてのエントリを無効化す
る。その結果完了ポインタ175は、割り振りポインタ
173と同じリオーダ・バッファ・エントリを指す。
【0109】プロセッサ10が、前述のエミュレーショ
ン活動を実行した後、フェッチ論理回路71(図2を参
照)は、直前の段落(即ち上記のエミュレーション活動
4)で説明したように、シーケンサ・ユニット18が保
存したアドレスで始めて、命令のフェッチを再開する。
【0110】代替の実施例ではプロセッサ10は、プロ
セッサ10がソフトウェア事象、またはハードウェア事
象のいずれに応答して「特別」電力モードに入ったかに
関係なく、プロセッサ10が「特別」電力モードに入る
ときはいつでも、命令キャッシュ14及びデータ・キャ
ッシュ16内のウェイ数を、4ウェイの代わりに2ウェ
イに減らす。このような代替実施例では、HPSの論理
0状態から論理1状態への移行に応答して、次のことが
行われる。 (1)制御論理回路100(図6を参照)は、命令キャ
ッシュ14内の128個のすべてのセットのブロック
2、及びブロック3内のすべてのラインが無効化され、
Statex2及びStatex3中の「有効」ビットが消
去されることを確実に行う。 (2)同様にデータ・キャッシュ16の制御論理回路
は、データ・キャッシュ16内の128個のすべてのセ
ットのブロック2、及びブロック3内のすべてのライン
が無効化されることを確実に行う。 (3)データ・キャッシュ16内のこのような無効化さ
れたラインのいずれかが、(有効アドレスに従って変換
された)同じ物理アドレスに存在するメモリ39(図1
を参照)内に保管された旧バージョンの情報に対応する
ものとして、プロセッサ10によって既に変更された情
報を保管している場合は、プロセッサ10は、変更され
た情報をデータ・キャッシュ16からメモり39内の同
じ物理アドレスにコピーすることによって、メモリ39
を更新する。
【0111】制御論理回路100は、命令キャッシュ1
4内に新情報を保管するために、最も以前に使用された
(「LRU」)情報を交換する方法を実施する。上記に
関してデータ・キャッシュ16は、命令キャッシュ14
と実質的に同じである。データ・キャッシュ16は、命
令キャッシュ14に比較して、プロセッサ10がデータ
・キャッシュ16に書き込む動作を更にサポートする。
プロセッサ10は、バイト毎、ハーフワード、ワード、
またはダブルワードのベースでこのような書き込み動作
を実行できる。プロセッサ10は、更にプロセッサ10
の単一サイクル内で、データ・キャッシュ16への完全
な「読み取り−変更−書き込み(read−modif
y−write)」動作を実行できる。データ・キャッ
シュ16は、ライトバック・モードかまたはライトスル
ー・モードのいずれかを選択して動作し、更にデータ・
キャッシュは、ページ毎及びライン毎のベースで、キャ
ッシング容易性の制御、書き込みポリシ、メモリ・コヒ
ーレンスを実施する。
【0112】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0113】(1)フェッチ回路が第1の電力モードで
動作している間、前記フェッチ回路のサイクル毎にN個
(ここでNはN>1の整数である)までの命令をメモリ
からフェッチし、前記フェッチ回路が第2の電力モード
で動作している間、前記フェッチ回路のサイクル毎にM
個(ここでMはN>M>0の整数である)までの命令を
前記メモリからフェッチする、前記フェッチする動作を
含む方法。 (2)前記第1の電力モードが全電力モードであり、前
記第2の電力モードが低電力モードである、(1)に記
載の方法。 (3)前記フェッチ回路が、ソフトウェア事象に応答し
て前記第2の電力モードで動作する、(1)に記載の方
法。 (4)前記フェッチ回路が、ハードウェア事象に応答し
て前記第2の電力モードで動作する、(1)に記載の方
法。 (5)前記ハードウェア事象が、前記フェッチ回路の温
度が所定の温度を超えたときに発生する、(4)に記載
の方法。 (6)前記所定の温度が、前記第1の電力モードで動作
している前記フェッチ回路の最高安全温度である、
(5)に記載の方法。 (7)前記メモリがキャッシュ・メモリである、(1)
に記載の方法。 (8)前記キャッシュ・メモリが命令キャッシュ・メモ
リである、(7)に記載の方法。 (9)前記フェッチ回路が前記第2の電力モードで動作
している間、前記M個の命令以外の命令を保管する前記
キャッシュ・メモリのセルに結合されたセンス増幅回路
のグループを使用不可にすることを含む、(7)に記載
の方法。 (10)フェッチ回路が第1の電力モードで動作してい
る間、前記フェッチ回路のサイクル毎にN個(ここでN
はN>1の整数である)までの命令をメモリからフェッ
チし、前記フェッチ回路が第2の電力モードで動作して
いる間、前記フェッチ回路のサイクル毎にM個(ここで
MはN>M>0の整数である)までの命令を前記メモリ
からフェッチするためのフェッチ回路を含む、回路。 (11)前記第1の電力モードが全電力モードであり、
前記第2の電力モードが低電力モードである、(10)
に記載の方法。 (12)前記フェッチ回路が、ソフトウェア事象に応答
して前記第2の電力モードで動作する、(10)に記載
の回路。 (13)前記フェッチ回路が、ハードウェア事象に応答
して前記第2の電力モードで動作する、(10)に記載
の回路。 (14)前記ハードウェア事象が、前記フェッチ回路の
温度が所定の温度を超えたときに発生する、(13)に
記載の回路。 (15)前記所定の温度が、前記第1の電力モードで動
作する前記フェッチ回路の最高安全温度である、(1
4)に記載の回路。 (16)前記メモリがキャッシュ・メモリである、(1
0)に記載の回路。 (17)前記キャッシュ・メモリが命令キャッシュ・メ
モリである、(16)に記載の回路。 (18)前記フェッチ回路が前記第2の電力モードで動
作している間、前記M個の命令以外の命令を保管する前
記キャッシュ・メモリのセルに結合されたセンス増幅回
路のグループを使用不可にするための回路を含む、(1
6)に記載の回路。
【図面の簡単な説明】
【図1】本実施例に従って情報を処理するためのプロセ
ッサ・システムのブロック図である。
【図2】図1に示すプロセッサのシーケンサ・ユニット
のブロック図である。
【図3】図2に示すシーケンサ・ユニットの命令バッフ
ァ待ち行列のブロック図である。
【図4】図2に示すシーケンサ・ユニットのリオーダ・
バッファを概念的に示す図である。
【図5】図1に示すプロセッサのリネーム・バッファを
概念的に示す図である。
【図6】図1に示すプロセッサの命令キャッシュのブロ
ック図である。
【図7】図6に示す命令キャッシュのセンス増幅回路の
構造を示す電気回路図である。
【符号の説明】
10(図1) プロセッサ 11(図1) システム・バス 14(図6) 命令キャッシュ 18(図2) シーケンサ・ユニット 38(図5) 浮動小数点リネーム・バ
ッファ 50(図3) 64ビット・バス 52a、52b(図3) 命令バッファ 54a、54b(図3) 命令バッファ 56(図3) ディスパッチ・バッファ 70(図3) 命令バッファ 76(図4) リオーダ・バッファ 110(図6) バス 114a、114b、114c、114d(図6)マル
チプレクサ 116(図6) バス 118(図6) バス 120a、120b、120c、120d(図6)バス 121(図7) センス増幅回路 122(図6) 制御線 124(図6) 制御線 126(図6) 制御線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スームヤ・マリック アメリカ合衆国78729、テキサス州オース チン、パートリッジ・ベンド・ドライブ 13032

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】フェッチ回路が第1の電力モードで動作し
    ている間、前記フェッチ回路のサイクル毎にN個(ここ
    でNはN>1の整数である)までの命令をメモリからフ
    ェッチし、前記フェッチ回路が第2の電力モードで動作
    している間、前記フェッチ回路のサイクル毎にM個(こ
    こでMはN>M>0の整数である)までの命令を前記メ
    モリからフェッチする、前記フェッチする動作を含む方
    法。
  2. 【請求項2】前記第1の電力モードが全電力モードであ
    り、前記第2の電力モードが低電力モードである、請求
    項1に記載の方法。
  3. 【請求項3】前記フェッチ回路が、ソフトウェア事象に
    応答して前記第2の電力モードで動作する、請求項1に
    記載の方法。
  4. 【請求項4】前記フェッチ回路が、ハードウェア事象に
    応答して前記第2の電力モードで動作する、請求項1に
    記載の方法。
  5. 【請求項5】前記ハードウェア事象が、前記フェッチ回
    路の温度が所定の温度を超えたときに発生する、請求項
    4に記載の方法。
  6. 【請求項6】前記所定の温度が、前記第1の電力モード
    で動作している前記フェッチ回路の最高安全温度であ
    る、請求項5に記載の方法。
  7. 【請求項7】前記メモリがキャッシュ・メモリである、
    請求項1に記載の方法。
  8. 【請求項8】前記キャッシュ・メモリが命令キャッシュ
    ・メモリである、請求項7に記載の方法。
  9. 【請求項9】前記フェッチ回路が前記第2の電力モード
    で動作している間、前記M個の命令以外の命令を保管す
    る前記キャッシュ・メモリのセルに結合されたセンス増
    幅回路のグループを使用不可にすることを含む、請求項
    7に記載の方法。
  10. 【請求項10】フェッチ回路が第1の電力モードで動作
    している間、前記フェッチ回路のサイクル毎にN個(こ
    こでNはN>1の整数である)までの命令をメモリから
    フェッチし、前記フェッチ回路が第2の電力モードで動
    作している間、前記フェッチ回路のサイクル毎にM個
    (ここでMはN>M>0の整数である)までの命令を前
    記メモリからフェッチするためのフェッチ回路を含む、
    回路。
  11. 【請求項11】前記第1の電力モードが全電力モードで
    あり、前記第2の電力モードが低電力モードである、請
    求項10に記載の回路。
  12. 【請求項12】前記フェッチ回路が、ソフトウェア事象
    に応答して前記第2の電力モードで動作する、請求項1
    0に記載の回路。
  13. 【請求項13】前記フェッチ回路が、ハードウェア事象
    に応答して前記第2の電力モードで動作する、請求項1
    0に記載の回路。
  14. 【請求項14】前記ハードウェア事象が、前記フェッチ
    回路の温度が所定の温度を超えたときに発生する、請求
    項13に記載の回路。
  15. 【請求項15】前記所定の温度が、前記第1の電力モー
    ドで動作する前記フェッチ回路の最高安全温度である、
    請求項14に記載の回路。
  16. 【請求項16】前記メモリがキャッシュ・メモリであ
    る、請求項10に記載の回路。
  17. 【請求項17】前記キャッシュ・メモリが命令キャッシ
    ュ・メモリである、請求項16に記載の回路。
  18. 【請求項18】前記フェッチ回路が前記第2の電力モー
    ドで動作している間、前記M個の命令以外の命令を保管
    する前記キャッシュ・メモリのセルに結合されたセンス
    増幅回路のグループを使用不可にするための回路を含
    む、請求項16に記載の回路。
JP9265942A 1996-10-04 1997-09-30 電子回路内の電力消費を減少させる方法及びシステム Expired - Fee Related JP3048979B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72639596A 1996-10-04 1996-10-04
US08/726395 1996-10-04

Publications (2)

Publication Number Publication Date
JPH10143297A true JPH10143297A (ja) 1998-05-29
JP3048979B2 JP3048979B2 (ja) 2000-06-05

Family

ID=24918435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9265942A Expired - Fee Related JP3048979B2 (ja) 1996-10-04 1997-09-30 電子回路内の電力消費を減少させる方法及びシステム

Country Status (3)

Country Link
JP (1) JP3048979B2 (ja)
CN (1) CN1095559C (ja)
SG (1) SG64432A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742131B1 (en) * 1999-05-03 2004-05-25 Stmicroelectronics S.A. Instruction supply mechanism
JP2011150610A (ja) * 2010-01-23 2011-08-04 Lenovo Singapore Pte Ltd 特定の機能を維持しながら消費電力を低減するコンピュータ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742131B1 (en) * 1999-05-03 2004-05-25 Stmicroelectronics S.A. Instruction supply mechanism
JP2011150610A (ja) * 2010-01-23 2011-08-04 Lenovo Singapore Pte Ltd 特定の機能を維持しながら消費電力を低減するコンピュータ

Also Published As

Publication number Publication date
CN1180184A (zh) 1998-04-29
JP3048979B2 (ja) 2000-06-05
CN1095559C (zh) 2002-12-04
SG64432A1 (en) 1999-04-27

Similar Documents

Publication Publication Date Title
JP3466062B2 (ja) プロセッサ内の電力消費を減少させる方法及び回路
JP3177198B2 (ja) プロセッサ内の電力消費を減少させる方法及び回路
US5860107A (en) Processor and method for store gathering through merged store operations
US4802085A (en) Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
US5897655A (en) System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
TW382672B (en) Computer system and method for controlling the same
US7657708B2 (en) Methods for reducing data cache access power in a processor using way selection bits
JPH11312122A (ja) 使用者が構築可能なオンチッププログラムメモリシステム
JP2713332B2 (ja) データ処理装置及びメモリ・キャッシュの動作方法
US9128857B2 (en) Flush engine
US7650465B2 (en) Micro tag array having way selection bits for reducing data cache access power
JPH08263373A (ja) キャッシュにおけるスヌーピング装置および方法
US6772326B2 (en) Interruptible and re-entrant cache clean range instruction
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
US6907518B1 (en) Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same
EP1107110B1 (en) Instruction loop buffer
JP3048978B2 (ja) 電子回路内の電力消費を減少させる方法及びシステム
JP3048979B2 (ja) 電子回路内の電力消費を減少させる方法及びシステム
US6963965B1 (en) Instruction-programmable processor with instruction loop cache
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
US8429383B2 (en) Multi-processor computing system having a JAVA stack machine and a RISC-based processor
Ogden et al. A new PowerPC microprocessor for low power computing systems
Marsala et al. PowerPC processors
JPH03252744A (ja) ストリングデータ書込み制御回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees