(57)【要約】  【課題】  プロセッサの抑制を必要とする温度状況であってもリアルタイム使用の性質が保証される温度管理解決策を提供する。  【解決手段】    サーマル・スロットリング・ロジックのための、コンピュータによって実施される方法、データ処理システム、およびプロセッサを提供する。集積回路におけるデジタル熱センサに関連したユニットの現在温度を表す検知温度値を、デジタル熱センサから受信する。検知温度を現在温度としてステータス・レジスタにおいて報告する。現在温度が第１の所定値を超えたことに応答して、集積回路におけるユニットを抑制する。【選択図】  図３
2008004094.tif 000002
【特許請求の範囲】
【請求項１】
集積回路においてサーマル・スロットリング・ロジックを実施するためのコンピュータによって実施される方法であって、
少なくとも１つのデジタル熱センサから検知された温度値を受信するステップであって、前記検知温度値が、前記集積回路における前記デジタル熱センサに関連した少なくとも１つのユニットの現在温度を表す、ステップと、
前記検知温度を前記現在温度としてステータス・レジスタにおいて報告するステップと、
前記現在温度が第１の所定値を超えたことに応答して、前記集積回路における前記少なくとも１つのユニットを抑制するステップと、
を含む、方法。
【請求項２】
前記受信ステップ、前記報告ステップ、および前記抑制ステップが、前記集積回路内に存在する温度管理制御状態マシンによって実行される、請求項１に記載の方法。
【請求項３】
前記第１の所定値が抑制温度のための設定値である、請求項１に記載の方法。
【請求項４】
前記デジタル熱センサから新しい検知された温度を受信するステップと、
前記新しい検知温度が第２の所定値未満であるか否かを判定するステップと、
前記新しい検知温度が前記第２の所定値に合致していることに応答して、前記集積回路において抑制モードをディスエーブルするステップと、
を更に含む、請求項１に記載の方法。
【請求項５】
前記第２の所定値がディスエーブル抑制温度についての設定値である、請求項４に記載の方法。
【請求項６】
前記抑制モードが、開始される抑制モードのタイプ、開始される抑制の量、および開始される前記抑制モードの持続時間を含む、請求項４に記載の方法。
【請求項７】
前記抑制モードのタイプが、動的抑制ディスエーブル、正常動作、パワー・プロセッサ要素またはシナジェスティック・プロセッサ要素が常に抑制される、コア・ストップ安全策ディセーブル、または、パワー・プロセッサ要素もしくはシナジェスティック・プロセッサ要素が常に抑制されコア・ストップ安全策はディスエーブルされる、の少なくとも１つである、請求項６に記載の方法。
【請求項８】
前記開始される抑制量が、前記少なくとも１つのユニットを停止する時間対前記少なくとも１つのユニットを動作させる時間の割合である、請求項６に記載の方法。
【請求項９】
前記開始する抑制モードの持続時間が、前記少なくとも１つのユニットが停止および動作する実際のクロック・サイクル数である、請求項６に記載の方法。
【請求項１０】
割込みの発行を監視するステップと、
前記割込みを処理することができるように前記抑制するモードをディスエーブルするステップと、
前記割込みが処理されたことに応答して前記抑制モードをイネーブルするステップと、
を更に含む、請求項１に記載の方法。
【請求項１１】
前記集積回路が異種マルチコア・プロセッサである、請求項１に記載の方法。
【請求項１２】
前記デジタル熱センサが前記異種マルチコア・プロセッサのコアの１つ内に存在する、請求項１１に記載の方法。
【請求項１３】
前記デジタル熱センサが、コア内ではないが前記異種マルチコア・プロセッサ内に存在する、請求項１１に記載の方法。
【請求項１４】
データ処理システムであって、
バスと、
前記バスに結合されたメモリであって、１組の命令を含む、メモリと、
前記バスに結合された集積回路であって、前記１組の命令を実行して、少なくとも１つのデジタル熱センサから検知された温度値を受信し、前記検知温度値が前記集積回路における前記デジタル熱センサに関連した少なくとも１つのユニットの現在温度を表し、更に、前記検知温度を前記現在温度としてステータス・レジスタにおいて報告し、前記現在温度が第１の所定値を超えたことに応答して前記集積回路における前記少なくとも１つのユニットを抑制する、集積回路と、
を含む、データ処理システム。
【請求項１５】
前記集積回路が前記１組の命令を実行して、前記デジタル熱センサから新しい検知された温度を受信し、前記新しい検知温度が第２の所定値未満であるか否かを判定し、前記新しい検知温度が前記第２の所定値に合致していることに応答して、前記集積回路において抑制モードをディスエーブルする、請求項１４に記載のシステム。
【請求項１６】
前記第１の所定値が抑制温度のための設定値であり、前記第２の所定値がディスエーブル抑制温度についての設定値である、請求項１５に記載のシステム。
【請求項１７】
前記集積回路が前記１組の命令を実行して、割込みの発行を監視し、前記割込みを処理することができるように前記抑制モードをディスエーブルし、前記割込みが処理されたことに応答して前記抑制するモードをイネーブルする、請求項１４に記載のシステム。
【請求項１８】
プロセッサであって、
少なくとも１つの処理コアと、
温度管理制御状態マシンと、
比較器と、
デジタル熱センサと、
を含み、前記プロセッサが１組の命令を実行して、少なくとも１つのデジタル熱センサから検知された温度値を受信し、前記検知温度値が集積回路における前記デジタル熱センサに関連した少なくとも１つのユニットの現在温度を表し、更に、前記状態マシンを用いて前記検知温度を前記現在温度としてステータス・レジスタにおいて報告し、前記現在温度が第１の所定値を超えたことに応答して前記状態マシンを用いて前記集積回路における前記少なくとも１つのユニットを抑制する、プロセッサ。
【請求項１９】
前記プロセッサが前記１組の命令を実行して、前記デジタル熱センサから新しい検知された温度を受信し、前記状態マシンを用いて前記新しい検知温度が第２の所定値未満であるか否かを判定し、前記新しい検知温度が前記第２の所定値に合致していることに応答して前記状態マシンを用いて前記集積回路において前記抑制するモードをディスエーブルする、請求項１８に記載のプロセッサ。
【請求項２０】
前記プロセッサが前記１組の命令を実行して、前記状態マシンを用いて割込みの発行を監視し、前記割込みを処理することができるように前記状態マシンを用いて前記抑制するモードをディスエーブルし、前記割込みが処理されたことに応答して前記状態マシンを用いて前記抑制モードをイネーブルする、請求項１８に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００５年１１月２９日に出願された米国特許出願第１１／２８９，０８８号の部分係属出願である。
【０００２】
本出願は、一般に、温度管理の使用に関する。更に具体的には、本出願は、サーマル・スロットリング・ロジック（thermal throttling）を実施するための、コンピュータによって実施される方法、データ処理システム、およびプロセッサに関する。
【背景技術】
【０００３】
第１世代の異種Cell Broadband Engine（ＢＥ）プロセッサは、１つの６４ビットPower PCプロセッサ・コアおよび８つの単一命令多重データ（ＳＭＩＤ：single instruction multiple data）・シナジェスティック・プロセッサ・コア（synergistic processor cores）から成るマルチコア・チップであり、大量の浮動小数点処理を行うことができ、コンピュータによる計算を集約的に用いる作業負荷および広帯域を多く用いる媒体の用途向けに最適化されている。また、高速メモリ・コントローラおよび高帯域幅バス・インタフェースもチップ上に統合されている。ＣｅｌｌＢＥの画期的なマルチコア・アーキテクチャおよび超高速通信機能によって、著しく向上したリアルタイム応答が可能となり、これは最新のＰＣプロセッサの性能の１０倍にもなることが多い。ＣｅｌｌＢＥは、オペレーティング・システムに対して中立であり、同時に多数のオペレーティング・システムをサポートする。このタイプのプロセッサ向けの用途の範囲は、臨場感が劇的に向上した次世代のゲーム・システムから、家庭用のデジタル・メディアおよびストリーミング・コンテンツのためのハブを形成するシステム、デジタル・コンテンツを開発し流通させるために用いられるシステム、および、映像化およびスーパーコンピューティング・アプリケーションを加速化するためのシステムにまで及ぶ。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
今日のマルチコア・プロセッサは、温度に関する問題点によって制限されることが多い。通常の解決策として、冷却および電力管理が挙げられる。冷却は、費用が高く、あるいはパッケージに含むのが難しく、またはそれら両方である場合がある。電力管理は、一般に精密でない粗い措置であり、温度制限に反応するプロセッサの全てが制限に達していなくても、著しく「スロットルする（抑制する）」。温度管理等の他の技法では、これらの粗い措置に対処するために、単に所与の温度を超えたユニットを抑制するだけである。しかしながら、ほとんどの温度管理技法は、リアルタイムの使用保証に影響を及ぼす。従って、プロセッサの抑制を必要とする温度状況の場合であってもリアルタイム使用の性質を保証するための方法をプロセッサに提供する温度管理解決策があれば有用であろう。リアルタイム保証を満足することができない場合には、使用管理者に通知して、是正措置を実施することができる。
【課題を解決するための手段】
【０００５】
例示的な実施形態の異なる態様は、集積回路において最大温度を記録するための、コンピュータによって実施される方法、データ処理システム、およびプロセッサを提供する。例示的な実施形態では、集積回路においてデジタル熱センサに関連付けたユニットの現在温度を表す検知温度値を、デジタル熱センサから受信する。例示的な実施形態は、検知温度を、ステータス・レジスタにおいて現在の温度として報告する。例示的な実施形態では、現在の温度が第１の所定値を超えたことに応答して、集積回路における少なくとも１つのユニットを抑制する。
【０００６】
例示的な実施形態の新規な特徴であると考えられるものは、特許請求の範囲に明記する。しかしながら、例示的な実施形態そのものは、その好適な使用形態、更に別の目的および利点と共に、例示的な実施形態の以下の詳細な説明を添付図面と関連付けて読んで参照することによって、最も良く理解されよう。
【発明を実施するための最良の形態】
【０００７】
例示的な実施形態は、サーマル・スロットリング・ロジックの実施に関する。図１から図２は、例示的な実施形態を実施することができるデータ処理環境の例示的な図として与える。図１から図２は、単に例示的なものであり、態様または実施形態を実施することができる環境に関して何らかの限定を主張したり暗示したりすることを意図しないことは認められよう。例示的な実施形態の精神および範囲から逸脱することなく、図示する実施形態に多くの変更を加えることも可能である。
【０００８】
ここで図面を参照すると、図１は、例示的な実施形態の態様を実施することができるデータ処理システムのネットワークを図で表したものである。ネットワーク・データ処理システム１００は、例示的な実施形態を実施することができるコンピュータ・ネットワークである。ネットワーク・データ処理システム１００は、ネットワーク１０２を含む。これは、ネットワーク・データ処理システム１００内で接続されている様々なデバイスおよびコンピュータ間の通信リンクを提供するために用いられる媒体である。ネットワーク１０２は、有線通信リンク、無線通信リンク、または光ファイバ・ケーブル等の接続を含むことができる。
【０００９】
図示する例において、サーバ１０４およびサーバ１０６は、ストレージ・ユニット１０８と同様に、ネットワーク１０２に接続する。更に、クライアント１１０、１１２、および１１４がネットワーク１０２に接続する。これらのクライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。図示する例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム画像、およびアプリケーション等のデータを、クライアント１１０、１１２、および１１４に供給する。この例では、クライアント１１０、１１２、および１１４は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、追加のサーバ、クライアント、および他の図示しないデバイスを含む場合がある。
【００１０】
図示する例において、ネットワーク・データ処理システム１００はインターネットであり、ネットワーク１０２は全世界に広がるネットワークおよびゲートウエイの集合を表し、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコル・スイートを用いて互いに通信を行う。インターネットの中心部には、メジャー・ノードまたはホスト・コンピュータ間の高速データ通信線のバックボーンがあり、データおよびメッセージをルーティングする何千もの民生用、官公庁用、教育用、および他のコンピュータ・システムから成る。むろん、ネットワーク・データ処理システム１００は、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）等、多数の異なるタイプのネットワークとして実施することも可能である。図１は、異なる例示的な実施形態のために、アーキテクチャを限定するものではなく、一例として意図されるものである。
【００１１】
ここで図２を参照すると、例示的な実施形態の態様を実施することができるデータ処理システムのブロック図が示されている。データ処理システム２００は、図１のサーバ１０４またはクライアント１１０等のコンピュータの一例であり、例示的な実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令を配置することができる。
【００１２】
図示する例において、データ処理システム２００が用いるハブ・アーキテクチャは、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＭＣＨ）２０２およびサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）２０４を含む。ノース・ブリッジおよびメモリ・コントローラ・ハブ２０２には、処理ユニット２０６、メイン・メモリ２０８、およびグラフィック・プロセッサ２１０が接続されている。グラフィック・プロセッサ２１０は、アクセラレーテッド・グラフィック・ポート（ＡＧＰ：accelerated graphics port）を介してノース・ブリッジおよびメモリ・コントローラ・ハブ２０２に接続することも可能である。
【００１３】
図示する例において、ＬＡＮアダプタ２１２がサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に接続する。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、リード・オンリ・メモリ（ＲＯＭ）２２４、ハード・ディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）・ポートおよび他の通信ポート２３２、およびＰＣＩ／ＰＣＩｅデバイス２３４が、バス２３８およびバス２４０を介して、サウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に接続する。ＰＣＩ／ＰＣＩｅデバイスは、例えば、ノートブック・コンピュータのためのイーサネット・アダプタ、アドイン・カード、およびＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを用いるが、ＰＣＩｅは用いない。ＲＯＭ２２４は、例えば、フラッシュ・バイナリ入出力システム（ＢＩＯＳ）とすることが可能である。
【００１４】
ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に接続する。ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば、ＩＤＥ（Integrated drive electronics）またはＳＴＡ（serial advanced technology attachment）インタフェースを用いることができる。サウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に、スーパーＩ／Ｏ（ＳＩＯ）デバイス２３６を接続することができる。
【００１５】
処理ユニット２０６上でオペレーティング・システムが動作し、図２のデータ処理システム２００内の様々なコンポーネントを調整してそれらを制御する。クライアントとして、オペレーティング・システムは、Microsoft社のWindowsＸＰ等の市販のオペレーティング・システムとすることができる。オペレーティング・システムと関連付けて、Javaプログラミング・システム等のオブジェクト指向プログラミング・システムが動作することができ、Javaプログラムまたはデータ処理システム２００上で実行しているアプリケーションからオペレーティング・システムへの呼を行う（Javaは、SunMicrosystems, Inc.の商標）。
【００１６】
サーバとして、データ処理システム２００は、例えば、IBM eServer pSeriesコンピュータ・システムとすることができ、Advanced Interactive Executive（AIX）オペレーティング・システムまたはLINUXオペレーティング・システムを実行する（eServer、pSeries、およびAIXは、International Business Machines Corporationの商標であり、Linuxは、Linux Torvaldsの商標である）。データ処理システム２００は、処理ユニット２０６に複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ：symmetric multiprocessor）・システムとすることができる。あるいは、シングル・プロセッサ・システムを用いることも可能である。
【００１７】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、ハード・ディスク・ドライブ２２６等のストレージ・デバイス上に配置し、処理ユニット２０６によって実行するためにメイン・メモリ２０８にロードすることができる。例示的な実施形態のプロセスは、処理ユニット２０６がコンピュータ使用可能プログラム・コードを用いることによって実行される。このコードは、例えば、メイン・メモリ２０８やリード・オンリ・メモリ２２４等のメモリ、または１つ以上の周辺デバイス２２６および２３０に配置することができる。
【００１８】
図１から図２のハードウェアは実施状況に応じて変動し得ることは、当業者には認められよう。図１から図２に示したハードウェアに加えて、またはその代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ等の他の内部ハードウェアまたは周辺デバイスを用いることも可能である。また、例示的な実施形態のプロセスをマルチプロセッサ・データ処理システムに適用することも可能である。
【００１９】
いくつかの説明のための例において、データ処理システム２００をパーソナル・デジタル・アシスタント（ＰＤＡ）とすることができる。これは、オペレーティング・システム・ファイルあるいはユーザによって発生したデータまたはその両方をストアするための不揮発性メモリを提供するフラッシュ・メモリを用いて構成される。
【００２０】
図２に示すように、バス２３８またはバス２４０等の１つ以上のバスによって、バス・システムを構成することができる。むろん、バス・システムは、通信構造またはアーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータ転送を実行することができるならば、いかなるタイプの通信構造またはアーキテクチャを用いても実施可能である。通信ユニットは、図２のモデム２２２またはネットワーク・アダプタ２１２等、データを送信および受信するために用いる１つ以上のデバイスを含むことができる。メモリは、例えば、メイン・メモリ２０８、リード・オンリ・メモリ２２４、または、図２のノース・ブリッジおよびメモリ・コントローラ・ハブ２０２に見られるもの等のキャッシュとすることができる。図１から図２に示した例および上述の例は、アーキテクチャの限定を暗示することを意図していない。例えば、データ処理システム２００は、ＰＤＡの形態を取ることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話装置とすることも可能である。
【００２１】
図３は、例示的な実施形態の態様を実施することができるＣｅｌｌＢＥチップの例示的な図を示す。ＣｅｌｌＢＥチップ３００は、ゲーム・コンソール、デスクトップ・システム、およびサーバ等、メディア・リッチな用途向けの分散型処理を対象としたシングル・チップ・マルチプロセッサの実施である。
【００２２】
ＣｅｌｌＢＥチップ３００は、以下の機能コンポーネントに論理的に分けることができる。すなわち、Power PCプロセッサ要素（ＰＰＥ）３０１、シナジェスティック・プロセッサ・ユニット（ＳＰＵ）３１０、３１１、および３１２、メモリ・フロー・コントローラ（ＭＦＣ）３０５、３０６、および３０７である。一例としてシナジェスティック・プロセッサ要素（ＳＰＥ）３０２、３０３、および３０４を示すが、いかなるタイプのプロセッサ要素もサポートすることができる。例示的なＣｅｌｌＢＥチップ３００の実施は、１つのＰＰＥ３０１および８つのＳＰＥを含むが、図３はＳＰＥ３０２、３０３、および３０４の３つのみを示す。ＣＥＬＬプロセッサのＳＰＥは、媒体およびデータ・ストリーミング作業負荷を迅速化するために設計された新しいプロセッサ・アーキテクチャの第１の実施である。
【００２３】
ＣｅｌｌＢＥチップ３００は、チップ上システムとし、図３に示す要素の各々を単一のマルチプロセッサ・チップ上に設けるようにすることができる。更に、ＣｅｌｌＢＥチップ３００は異種（heterogeneous）処理環境であり、ＳＰＵ３１０、３１１、および３１２の各々はシステム内の他のＳＰＵから異なる命令を受信することができる。更に、ＳＰＵ３１０、３１１、および３１２のための命令セットは、PowerPCプロセッサ・ユニット（ＰＰＵ）３０８のものとは異なる。例えば、ＰＰＵ３０８は、Power（商標）アーキテクチャのＲＩＳＣ（Reduced Instruction Set Computer）ベースの命令を実行することができるが、ＳＰＵ３１０、３１１、および３１２は、ベクトル化命令（vectorized instructions）を実行する。
【００２４】
各ＳＰＥは、１つのＳＰＵ３１０、３１１、または３１２を含み、それ自身のローカル・ストア（ＬＳ）・エリア３１３、３１４、または３１５、および、専用のＭＦＣ３０５、３０６、または３０７を有する。ＭＦＣ３０５、３０６、または３０７は、関連するメモリ管理ユニット（ＭＭＵ）３１６、３１７、または３１８を有し、メモリ保護およびアクセス許可情報を保持し処理する。ここでも、例としてＳＰＵを示すが、いかなるタイプのプロセッサ・ユニットもサポートすることができる。更に、ＣｅｌｌＢＥチップ３００は、エレメント相互接続バス（ＥＩＢ：element interconnect bus）３１９および他のＩ／Ｏ構造を実施して、オンチップおよび外部のデータ・フローを容易にする。
【００２５】
ＥＩＢ３１９は、ＰＰＥ３０１およびＳＰＥ３０２、３０３および３０４のための主要オンチップ・バスとして機能する。更に、ＥＩＢ３１９は、オフチップ・アクセス専用の他のオンチップ・インタフェース・コントローラに対するインタフェースとなる。オンチップ・インタフェース・コントローラは、２つのＸＩＯ（extreme data rate I/O）メモリ・チャネル３２１および３２２を提供するメモリ・インタフェース・コントローラ（ＭＩＣ）３２０と、２つの高速外部Ｉ／ＯチャネルおよびＣｅｌｌＢＥ３００のための内部割込み制御を提供するＣｅｌｌＢＥインタフェース・ユニット（ＢＥＩ）３２３とを含む。ＢＥＩ３２３は、バス・インタフェース・コントローラ（ＢＩＣ。ＢＩＣ０およびＢＩＣ１と標示する）３２４および３２５ならびにＩ／Ｏインタフェース・コントローラ（ＩＯＣ）３２６として実施される。２つの高速外部Ｉ／Ｏチャネルは、Redwood Rambus（登録商標）Asic Cell（ＲＲＡＣ）インタフェースの極性に接続して、ＣｅｌｌＢＥ３００にフレキシブル入力および出力（FlexIO_0およびFlexIO_2）３５３を提供する。
【００２６】
各ＳＰＵ３１０、３１１、または３１２は、対応するＬＳ領域３１３、３１４、または３１５およびシナジェスティック実行ユニット（ＳＸＵ）３５４、３５５、または３５６を有する。各ＳＰＵ３１０、３１１、または３１２は、その関連するＬＳ領域３１３、３１４、または３１５内からの命令のみを実行することができる（データ・ロードおよびストア動作を含む）。このため、ＳＰＵ３１０、３１１、および３１２に専用のＭＦＣ３０５、３０６、および３０７を介したＭＦＣ直接メモリ・アクセス（ＤＭＡ）動作は、システム内のどこか他にあるストレージとの間で必要なデータ転送を全て実行する。
【００２７】
ＳＰＵ３１０、３１１、または３１２上で実行するプログラムは、ＬＳアドレスを用いて、それ自身のＬＳエリア３１３、３１４、または３１５を単に参照する。しかしながら、各ＳＰＵのＬＳエリア３１３、３１４、または３１５には、全システムのメモリ・マップ内の実アドレス（ＲＡ）が割り当てられている。ＲＡは、デバイスが応答するアドレスである。PowerPC（登録商標）では、アプリケーションは、有効アドレス（ＥＡ）によってメモリ位置（またはデバイス）を参照し、これはメモリ位置（またはデバイス）のための仮想アドレス（ＶＡ）内にマッピングされ、これはＲＡにマッピングされる。ＥＡは、アプリケーションがメモリあるいはデバイスまたは両方を参照するために用いるアドレスである。このマッピングによって、オペレーティング・システムは、システム内に物理的に存在するよりも多くのメモリを割り当てることができる（すなわち、仮想メモリという言葉がＶＡによって参照される）。メモリ・マップは、システム内の全てのデバイス（メモリを含む）およびそれらの対応するＲＡのリスト化である。メモリ・マップは、デバイスまたはメモリが応答するＲＡを識別する実アドレス空間のマップである。
【００２８】
これによって、特権ソフトウェア（privileged software）は、ＬＳエリアをプロセスのＥＡにマッピングして、あるＳＰＵのＬＳと別のＳＰＵのＬＳエリアとの間の直接メモリ・アクセス転送を容易にすることができる。また、ＰＰＥ３０１は、ＥＡを用いてあらゆるＳＰＵのＬＳエリアに直接アクセスすることができる。PowerPC（登録商標）においては、３つの状態がある（すなわち、問題あり、特権あり、およびハイパーバイザ）。特権ソフトウェアは、特権ありまたはハイパーバイザのいずれかの状態で実行しているソフトウェアである。これらの状態は、異なるアクセス特権を有する。例えば、特権ソフトウェアは、実メモリをアプリケーションのＥＡにマッピングするために、データ構造レジスタに対するアクセスを有することができる。問題あり状態は、プロセッサがアプリケーションを実行している際に通常入る状態であり、一般にシステム管理リソースへのアクセス（リアル・メモリをマッピングするためのデータ構造等）は禁止される。
【００２９】
ＭＦＣ  ＤＭＡデータ・コマンドは、常に１つのＬＳアドレスおよび１つのＥＡを含む。ＤＭＡコマンドは、ある位置から別の位置へとメモリをコピーする。この場合、ＭＦＣ  ＤＭＡコマンドは、ＥＡとＬＳアドレスとの間でデータをコピーする。ＬＳアドレスは、ＭＦＣコマンド・キューに対応して、関連するＳＰＵ３１０、３１１、または３１２のＬＳエリア３１３、３１４、または３１５を直接アドレス指定する。コマンド・キューは、ＭＦＣコマンドのキューである。ＳＰＵからのコマンドを保持するために１つのキューがあり、ＰＸＵまたは他のデバイスからのコマンドを保持するために１つのキューがある。しかしながら、ＥＡは、他のＳＰＥ３０２、３０３、または３０４のＬＳエリア３１３、３１４、および３１５を含むシステム内のいずれかの他のメモリ・ストレージ・エリアにアクセスするために配置またはマッピングすることができる。
【００３０】
メイン・ストレージ（図示せず）は、ＰＰＵ３０８、ＰＰＥ３０１、ＳＰＥ３０２、３０３、および３０４、図２に示すシステム等のシステム内のＩ／Ｏデバイス（図示せず）によって共有される。メイン・メモリに保持される全ての情報は、システム内の全てのプロセッサおよびデバイスに可視的である。プログラムは、ＥＡを用いてメイン・メモリを参照する。ＭＦＣプロキシ・コマンド・キュー、制御、およびステータス機構がＲＡを有し、ＲＡはＥＡを用いてマッピングされるので、パワー・プロセッサ要素は、メイン・ストレージと関連するＳＰＥ３０２、３０３、および３０４のローカル・ストレージとの間でＥＡを用いてＤＭＡ動作を開始することができる。
【００３１】
一例として、ＳＰＵ３１０、３１１、または３１２上で実行しているプログラムがメイン・メモリにアクセスする必要がある場合、ＳＰＵプログラムは、適切なＥＡおよびＬＳアドレスを有するＤＭＡコマンドを発生させて、そのＭＦＣ３０５、３０６、または３０７コマンド・キューに配置する。ＳＰＵプログラムによってコマンドをキューに配置した後、ＭＦＣ３０５、３０６、または３０７はコマンドを実行して、ＬＳエリアとメイン・メモリとの間で必要なデータを転送する。ＭＦＣ３０５、３０６、または３０７は、ＰＰＥ３０１等の他のデバイスが発生したコマンドのための第２のプロキシ・コマンド・キューを提供する。ＭＦＣプロキシ・コマンド・キューは、通常、ＳＰＵを開始する前にローカル・ストレージにプログラムをストアするために用いられる。また、ＭＦＣプロキシ・コマンドは、文脈ストア動作のために用いることができる。
【００３２】
ＥＡアドレスがＭＦＣに提供するアドレスは、ＭＭＵによってＲＡに変換することができる。変換プロセスによって、システム・メモリを仮想化し、実アドレス空間においてメモリおよびデバイスのアクセス保護を行うことができる。ＬＳエリアは実アドレス空間にマッピングされるので、ＥＡは全てのＳＰＵ  ＬＳエリアをアドレス指定することができる。
【００３３】
ＣｅｌｌＢＥ３００上のＰＰＥ３０１は、６４ビットのＰＰＵ３０８およびPowerPCストレージ・サブシステム（ＰＰＳＳ）３０９から成る。ＰＰＵ３０８は、プロセッサ実行ユニット（ＰＸＵ）３２９、レベル１（Ｌ１）キャッシュ３３０、ＭＭＵ３３１、および置換管理テーブル（ＲＭＴ）３３２を含む。ＰＰＳＳ３０９は、キャッシュ可能インタフェース・ユニット（ＣＩＵ）３３３、非キャッシュ可能ユニット（ＮＣＵ）３３４、レベル２（Ｌ２）キャッシュ３２８、ＲＭＴ３３５、およびバス・インタフェース・ユニット（ＢＩＵ）３２７から成る。ＢＩＵ３２７は、ＰＰＳＳ３０９をＥＩＢ３１９に接続する。
【００３４】
ＳＰＵ３１０、３１１、または３１２およびＭＦＣ３０５、３０６、および３０７は、容量を有する一方向チャネルを介して互いに通信を行う。チャネルは実質的にＦＩＦＯであり、３４のＳＰＵ命令の１つを用いてアクセスされる。すなわち、読み取りチャネル（ＲＤＣＨ）、書き込みチャネル（ＷＲＣＨ）、および読み取りチャネル・カウント（ＲＤＣＨＣＮＴ）である。ＲＤＣＨＣＮＴは、チャネル内の情報量を戻す。容量は、ＦＩＦＯの深さである。チャネルは、ＭＦＣ３０５、３０６、および３０７、ＳＰＵ３１０、３１１、および３１２との間でデータを送信する。ＢＩＵ３３９、３４０、および３４１は、ＭＦＣ３０５、３０６、および３０７をＥＩＢ３１９に接続する。
【００３５】
ＭＦＣ３０５、３０６、および３０７は、ＳＰＵ３１０、３１１、および３１２に２つの主要な機能を提供する。ＭＦＣ３０５、３０６、および３０７は、ＳＰＵ３１０、３１１、または３１２、ＬＳエリア３１３、３１４、または３１５、およびメイン・メモリとの間でデータを移動させる。更に、ＭＦＣ３０５、３０６、および３０７は、ＳＰＵ３１０、３１１、および３１２、およびシステム内の他のデバイス間の同期機能を提供する。
【００３６】
ＭＦＣ３０５、３０６、および３０７の実施は、４つの機能ユニットを有する。すなわち、直接メモリ・アクセス・コントローラ（ＤＭＡＣ）３３６、３３７、および３３８、ＭＭＵ３１６、３１７、および３１８、原子ユニット（ＡＴＯ）３４２、３４３、および３４４、ＲＭＴ３４５、３４６、および３４７、ならびにＢＩＵ３３９、３４０、および３４１である。ＤＭＡＣ３３６、３３７、および３３８は、ＭＦＣコマンド・キュー（ＭＦＣ  ＣＭＤＱ）（図示せず）を維持して処理する。このキューは、ＭＦＣ  ＳＰＵコマンド・キュー（ＭＦＣ  ＳＰＵＱ）およびＭＦＣプロキシ・コマンド・キュー（ＭＦＣ  ＰｒｘｙＱ）から成る。１６入力のＭＦＣ  ＳＰＵＱは、ＳＰＵチャネル・インタフェースから受信したＭＦＣコマンドを処理する。８入力のＭＦＣ  ＰｒｘｙＱは、メモリ・マップド入出力（ＭＭＩＯ：memory mapped input and output）のロードおよびストア動作によって、ＰＰＥ３０１またはＳＰＥ３０２、３０３、および３０４等の他のデバイスから入来するＭＦＣコマンドを処理する。通常の直接メモリ・アクセス・コマンドは、ＬＳエリア３１３、３１４、または３１５およびメイン・メモリの間でデータを移動させる。ＭＦＣ  ＤＭＡコマンドのＥＡパラメータを用いて、メイン・メモリを含むメイン・ストレージ、ローカル・ストレージ、およびＲＡを有する全てのデバイスをアドレス指定する。ＭＦＣ  ＤＭＡコマンドのローカル・ストレージ・パラメータを用いて、関連するローカル・ストレージをアドレス指定する。
【００３７】
仮想モードにおいて、ＭＭＵ３１６、３１７、および３１８は、アドレス変換およびメモリ保護機能を提供して、ＤＭＡＣ３３６、３３７、および３３８からのＥＡ変換要求を処理し、変換したアドレスを返信する。各ＳＰＥのＭＭＵは、セグメント・ルックアサイド・バッファ（ＳＬＢ：segment lookaside buffer）およびトランスレーション・ルックアサイド・バッファ（ＴＬＢ：translation lookaside buffer）を維持する。ＳＬＢはＥＡをＶＡに変換し、ＴＬＢはＳＬＢから来たＶＡをＲＡに変換する。ＥＡは、アプリケーションによって用いられ、通常３２または６４ビットのアドレスである。異なるアプリケーションまたは１つのアプリケーションの多数のコピーが、同一のＥＡを用いて、異なるストレージ位置を参照することができる（例えば、同一のＥＡを用いるアプリケーションの２つのコピーは、２つの異なる物理的メモリ位置を必要とする）。これを達成するために、ＥＡは最初に、オペレーティング・システムのもとで動作している全てのアプリケーションに共通した、はるかに大きいＶＡ空間に変換される。ＥＡからＶＡへの変換は、ＳＬＢによって実行される。次いで、ＶＡは、ＴＬＢを用いてＲＡに変換される。ＴＬＢは、ページ・テーブルまたはＶＡからＲＡへのマッピングを含むマッピング・テーブルのキャッシュである。このテーブルは、オペレーティング・システムによって維持されている。
【００３８】
ＡＴＯ３４２、３４３、および３４４は、システム内の他の処理ユニットとの同期を維持するために必要なレベルのデータ・キャッシングを提供する。原子直接メモリ・アクセス・コマンドは、シナジェスティック・プロセッサ要素が他のユニットと同期を取るための手段を提供する。
【００３９】
ＢＩＵ３３９、３４０、および３４１の主要な機能は、ＳＰＥ３０２、３０３、および３０４に、ＥＩＢに対するインタフェースを提供することである。ＥＩＢ３１９は、ＣｅｌｌＢＥチップ３００上の全てのプロセッサ・コアとＥＩＢ３１９に接続された外部インタフェース・コントローラとの間の通信経路を提供する。
【００４０】
ＭＩＣ３２０は、ＥＩＢ３１９とＸＩＯ３２１および３２２の１つ以上との間のインタフェースを提供する。ＸＤＲ（商標）（extreme data rate）ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）は、Rambusが提供する高速で高度にシリアルなメモリである。Rambusが提供するマクロは、本明細書中ではＸＩＯ３２１および３２２と示す最大データ・レートのダイナミック・ランダム・アクセス・メモリにアクセスする。
【００４１】
ＭＩＣ３２０は、単にＥＩＢ３１９上のスレーブである。ＭＩＣ３２０は、サポートされるハブにおけるメモリに対応して、その設定されたアドレス範囲（複数の範囲）内のコマンドを承認する。
【００４２】
ＢＩＣ３２４および３２５は、ＥＩＢ３１９から２つの外部デバイスのいずれかに対するオンチップおよびオフチップのデータ転送を管理する。ＢＩＣ３２４および３２５は、Ｉ／Ｏデバイスを用いて非コヒーレントなトラヒックを交換することができ、または、ＥＩＢ３１９を別のデバイスに拡張することも可能である。別のデバイスは、別のＣｅｌｌＢＥチップである場合がある。ＥＩＢ３１９を拡張するために用いる場合、バス・プロトコルは、ＣｅｌｌＢＥチップ３００内のキャッシュと接続された外部デバイス内のキャッシュとの間の一貫性を維持する。外部デバイスは、別のＣｅｌｌＢＥチップである場合がある。
【００４３】
ＩＯＣ３２６は、Ｉ／Ｏインタフェース・デバイスにおいて生じコヒーレントなＥＩＢ３１９に宛てられたコマンドを処理する。Ｉ／Ｏインタフェース・デバイスは、多数のＩ／Ｏデバイスに接続するＩ／Ｏブリッジ・チップまたは非コヒーレントな方法でアクセスされる別のＣｅｌｌＢＥチップ３００等のＩ／Ｏインタフェースに接続するいずれかのデバイスとすることができる。また、ＩＯＣ３２６は、Ｉ／Ｏブリッジ・チップまたは非コヒーレントなＣｅｌｌＢＥチップ３００内またはその陰にあるメモリ・マップド・レジスタに宛てられたＥＩＢ３１９上のアクセスを傍受し、それらを適切なＩ／Ｏインタフェースへとルーティングする。また、ＩＯＣ３２６は、内部割込みコントローラ（ＩＩＣ）３４９およびＩ／Ｏアドレス変換ユニット（Ｉ／ＯＴｒａｎｓ）３５０を含む。
【００４４】
一般的な（pervasive）ロジック３５１は、クロック管理、テスト機構、および電源投入シーケンスをＣｅｌｌＢＥチップ３００に提供するコントローラである。一般的なロジックは、プロセッサに温度管理システムを提供することができる。一般的なロジックは、当技術分野において一般的に既知であるＪＴＡＧ（Joint Test Action Group）またはＳＰＩ（Serial Peripheral Interface）インタフェースによる、システム内の他のデバイスに対する接続を含む。
【００４５】
様々なコンポーネントをどのように実施可能であるかということの具体的な例を示したが、これは、例示的な実施形態の態様を実施することができるアーキテクチャを限定することを意図したものではない。例示的な実施形態の態様は、いかなるマルチコア・プロセッサ・システムと共に用いることも可能である。
【００４６】
アプリケーションまたはソフトウェアの実行中に、ＣｅｌｌＢＥチップ内の領域の温度が上昇する場合がある。検査されないまま放置されると、温度は指定された最高接合部温度を超えて上昇し、不適切な動作または物理的な損傷に至る恐れがある。こういった状況を避けるために、ＣｅｌｌＢＥチップのデジタル温度管理ユニットは、動作中のＣｅｌｌＢＥチップ内の温度を監視し制御しようとする。デジタル温度管理ユニットは、本明細書中に記載する温度管理制御ユニット（ＴＭＣＵ）および１０個の分散型デジタル熱センサ（ＤＴＳ）から成る。
【００４７】
センサは、８個のＳＰＥの各々に１つずつ配置され、ＰＰＥに１つ配置され、線形熱ダイオードに隣接して１つ配置されている。線形熱ダイオードは、温度を計算するオンチップ・ダイオードである。これらのセンサは、ほとんどの用途の実行中に最大の温度上昇を通常経験する関連ユニット内の領域に隣接して配置されている。温度制御ユニットは、これらのセンサの各々からのフィードバックを監視する。センサの温度がプログラム可能なポイントを超えて上昇すると、温度制御ユニットは、ＰＰＥまたはＳＰＥの１つ以上に割込みを生じさせ、関連するＰＰＥまたはＳＰＥ（複数のＳＰＥ）の実行を動的に抑制するように構成することができる。
【００４８】
ＰＰＥまたはＳＰＥをプログラム可能サイクル数だけ停止および実行させることによって、必要な抑制を行う。割込みによって、特権ソフトウェアは是正措置を取ることができ、一方で、動的な抑制により、ソフトウェアの介入なしで広帯域エンジン・チップ内の温度をプログラム可能なレベル未満に維持しようとする。特権ソフトウェアは、抑制レベルを、アプリケーションが提供する推奨設定以下にセットする。これは、各アプリケーションごとに異なる場合がある。
【００４９】
ＰＰＥまたはＳＰＥを抑制しても効果的に温度が管理されず、温度が上昇し続ける場合、温度が熱的過負荷温度（プログラム可能な構成データによって規定される）に達したときに、一般的なロジック３５１はＣｅｌｌＢＥチップのクロックを停止させる。熱的過負荷機構によって、ＣｅｌｌＢＥチップを物理的な損傷から保護する。この状態からの回復にはハード・リセットが必要である。ＤＴＳが監視する領域の温度は、必ずしも関連するＰＰＥまたはＳＰＥ内の最も温度の高い箇所ではない。
【００５０】
図４は、例示的な実施形態に従った一例としての温度管理システムを示す。温度管理システムは、図３の一般的なロジック・ユニット３５１が提供するもの等の集積回路として実施可能である。温度管理システムは、特定用途向け集積回路、プロセッサ、マルチプロセッサ、または異種マルチコア・プロセッサとすることができる。温度管理システムは、１０個の分散型ＤＴＳ（簡略化のためにＤＴＳ４０４、４０６、４０８、および４１０のみを示す）と温度管理制御ユニット（ＴＭＣＵ）４０２との間で分割されている。ＳＰＵセンサ４４０内にあるＤＴＳ４０４および４０６の各々、ＰＰＵセンサ４４２内にあるＤＴＳ４０８、および線形熱ダイード（図示せず）に隣接したセンサ４４４内にあるＤＴＳ４１０が、現在温度の検出信号を供給する。この信号は、温度がＴＭＣＵ４０２によってセットされた現在温度検出範囲以下であることを示す。ＴＭＣＵ４０２は、ＤＴＳ４０４、４０６、４０８、および４１０からの信号の状態を用いて、各ＰＰＥまたはＳＰＥのＤＴＳ４０４、４０６、４０８、または４１０の温度を連続的に追跡する。温度を追跡しながら、ＴＭＣＵ４０２は、現在の温度を、関連するＰＰＥまたはＳＰＥ内の温度を表す数値として供給する。個々のセンサを較正するための製造過程により、内部構成ストレージ４２８をセットする。
【００５１】
上述したＴＭＣＵ４０２の要素に加えて、ＴＭＣＵ４０２は、マルチプレクサ４４６および４５０、ワーク・レジスタ４４８、比較器４５２および４５４、シリアライザ（serializer）４５６、温度管理制御状態マシン４５８、およびデータ・フロー（ＤＦ）・ユニット４６０も含む。マルチプレクサ４４６および４５０は、単一の媒体上で伝送を行うために様々な出立および入来信号を組み合わせる。ワーク・レジスタ４４８は、ＴＭＣＵ４０２において実行される乗算の結果を保持する。比較器４５２および４５４は、２つの入力の比較機能を提供する。比較器４５２は、「〜以上」を調べる比較器である。比較器４５４は、「大なり」を調べる比較器である。シリアライザ４５６は、ソースからの低速並列データを、伝送のための高速シリアル・データに変換する。シリアライザ４５６は、ＳＰＵセンサ４４０上のデシリアライザ（deserializer）４６２および４６４と組み合わせて動作する。デシリアライザ４６２および４６４は、受信した高速シリアル・データを低速並列データに変換する。温度管理制御状態マシン４５８は、ＴＭＣＵ４０２の内部初期化を開始する。ＤＦユニット４６０は、温度管理制御状態マシン４５８へのデータおよび状態マシン４５８からのデータを制御する。
【００５２】
ＴＭＣＵ４０２は、割込みロジック４１６を用いてＰＰＥに対する割込みを生じ、スロットリング・ロジック４１８を用いてＰＰＥまたはＳＰＥの実行を動的に抑制するように構成することができる。
【００５３】
ＴＭＣＵ４０２は、温度を表す数値を、プログラム可能な割込み温度およびプログラム可能なスロットル（抑制）・ポイントと比較する。各ＤＴＳは、独立したプログラム可能割込み温度を有する。温度がプログラムされた割込み温度範囲内である場合、ＴＭＣＵ４０２は、イネーブルされている場合、ＰＰＥに対する割込みを発生する。割込みを発生させるのは、後述する方向ビットに応じて、プログラミングされたレベルよりも温度が高いかまたは低い場合である。更に、第２のプログラム可能割込み温度によって、システム・コントローラに対する注意信号をアサートすることができる。システム・コントローラはシステム・プレーナ上にあり、ＳＰＩポート上でＣｅｌｌＢＥに接続されている。
【００５４】
ＰＰＥまたはＳＰＥに関連したＤＴＳによって検知された温度がスロットル・ポイント以上である場合、ＴＭＣＵ４０２は、ＰＰＥまたは１つ以上のＳＰＥを個別に開始および停止させることによって、そのＰＰＥまたはＳＰＥの実行を抑制する。温度管理停止時間レジスタおよび温度管理スケール・レジスタ等の温度管理レジスタを用いて、ソフトウェアが抑制の率および頻度を制御することができる。
【００５５】
図５は、例示的な実施形態に従った、割込みおよび動的抑制を行うことができる温度および様々なポイントのグラフを示す。図５において、ライン５００は、ＰＰＥまたはＳＰＥの温度を表すことができる。ＰＰＥまたはＳＰＥが正常に動作している場合、「Ｎ」で標示された領域において抑制は行われない。ＰＰＥまたはＳＰＥの温度がスロットル・ポイントに達すると、ＴＭＣＵは、関連するＰＰＥまたはＳＰＥの実行の抑制を開始する。抑制が行われる領域は「Ｔ」で標示されている。ＰＰＥまたはＳＰＥの温度がスロットル終了ポイントよりも低い場合、実行は正常動作に戻る。
【００５６】
いずれかの理由で、温度が上昇し続けて、フル・スロットル・ポイント以上の温度に達すると、ＴＭＣＵ４０２は、温度がフル・スロットル・ポイント未満に下がるまでＰＰＥまたはＳＰＥを停止させる。ＰＰＥまたはＳＰＥを停止させる領域は、「Ｓ」で標示されている。温度がフル・スロットル・ポイント以上である場合にＰＰＥまたはＳＰＥを停止させることを、コア・ストップ安全策と呼ぶ。
【００５７】
この典型的な例では、割込み温度は、スロットル・ポイントよりも高く設定する。従って、ＴＭＣＵ４０２が発生した割込みは、温度がコア・ストップ温度を超えていたか、または今も超えているという理由で対応するＰＰＥまたはＳＰＥを停止させていることをソフトウェアに通知するものである。これは、温度割込みマスク・レジスタ（TM_ISR）（図４の４２２を参照のこと）がアクティブに設定されていることを前提とし、ＰＰＥまたはＳＰＥは待ち状態の割込みの間に再開することができる。動的抑制がディスエーブルされている場合、特権ソフトウェアが温度状況を管理する。温度状況を管理しないと、結果として、関連するＰＰＥまたはＳＰＥが不適切に動作したり、または熱的過負荷機能によって熱的シャットダウンが起こったりする可能性がある。
【００５８】
図４に戻ると、熱センサ・ステータス・レジスタは、熱センサ現在温度ステータス・レジスタ４１２および熱センサ最大温度ステータス・レジスタ４１４から成る。これらのレジスタによって、ソフトウェアは、各ＤＴＳの現在の温度を読み取り、ある時間期間中に到達した最高温度を求め、温度がプログラム可能温度に達した場合に割込みを発生させることができる。熱センサ・ステータス・レジスタには、ハイパーバイザ特権と標示することができる実アドレス・ページが関連付けられている。
【００５９】
熱センサ現在温度ステータス・レジスタ４１２は、各ＤＴＳの現在温度についての符号化またはデジタル値を含む。センサの温度検出における待ち時間、これらのレジスタを読み取る際の待ち時間、および正常な温度変動のため、これらのレジスタにおいて報告される温度は、最も早い時点のものであり、ソフトウェアがデータを受信したときの実際の温度を反映していない場合がある。各センサが専用の制御ロジックを有するので、ＤＴＳ４０４、４０６、４０８、および４１０内の制御ロジックは、全てのセンサを並列にサンプリングする。ＴＭＣＵ４０２は、サンプル期間の終了時に、熱センサ現在温度ステータス・レジスタ４１２の内容を更新する。ＴＭＣＵ４０２は、熱センサ現在温度ステータス・レジスタ４１２内の値を現在の温度に変更する。ＴＭＣＵ４０２は、SenSampTime期間ごとに、新しい現在の温度についてポーリングする。SenSampTime構成フィールドは、サンプル期間の長さを制御する。
【００６０】
熱センサ最大温度ステータス・レジスタ４１４は、熱センサ最大温度ステータス・レジスタ４１４が最後に読み取られた時から、各センサが達したデジタル符号化最大温度を含む。ソフトウェア、または、オフチップ・デバイス４７２もしくオフチップＩ／Ｏデバイス４７４等のいずれかのオフチップ・デバイスによって、これらのレジスタを読み取ると、ＴＭＣＵ４０２は、各センサごとの現在の温度をレジスタにコピーする。読み取りの後、ＴＭＣＵ４０２は、この時点から開始して、最大温度の追跡を続ける。各レジスタの読み取りは独立している。１つのレジスタの読み取りは、他のものの内容に影響を与えない。
【００６１】
各センサは専用の制御ロジックを有するので、ＤＴＳ４０４、４０６、４０８、および４１０内の制御ロジックは、全てのセンサを並列にサンプリングする。ＴＭＣＵ４０２は、熱センサ最大温度ステータス・レジスタ４１４内の値を、現在の温度に変更する。ＴＭＣＵ４０２は、SenSampTime期間ごとに、新しい現在の温度についてポーリングする。SenSampTime構成フィールドは、サンプル期間の長さを制御する。
【００６２】
割込みロジック４１６内の熱センサ割込みレジスタは、ＰＰＥに対する温度管理割込みの発生を制御する。このレジスタ・セットは、熱センサ割込み温度レジスタ４２０（TS_ITR1およびTS_ITR2）、熱センサ割込みステータス・レジスタ４２２（TS_ISR）、熱センサ割込みマスク・レジスタ４２４（TS_IMR）、および熱センサ・グローバル割込み温度レジスタ４２６（TS_GITR）から成る。熱センサ割込み温度レジスタ４２０および熱センサ・グローバル割込み温度レジスタ４２６は、ＰＰＥに対する温度管理割込みを発生させる温度のための符号化を含む。
【００６３】
熱センサ現在温度ステータス・レジスタ４１２において、デジタル形式に符号化されたあるセンサについての温度が、熱センサ割込み温度レジスタ４２０において符号化された対応するセンサの割込み温度以上である場合、ＴＭＣＵ４０２は、熱センサ割込みステータス・レジスタ４１２に、対応するステータス・ビットをセットする（TS_ISR[Sx]）。熱センサ現在温度ステータス・レジスタ４１２において符号化されたいずれかのセンサについての温度が、熱センサ・グローバル割込み温度レジスタ４２６において符号化されたグローバル割込み温度以上である場合、ＴＭＣＵ４０２は、熱センサ割込みステータス・レジスタ４２２に、対応するステータス・ビットをセットする（TS_ISR[Gx]）。
【００６４】
いずれかの熱センサ割込み温度ステータス・レジスタ４２２のビット（TS_ISR[Sx]）がセットされ、熱センサ割込みマスク・レジスタ４２４における対応するマスク・ビット（TS_IMR[Mx]）もセットされた場合、ＴＭＣＵ４０２は、ＰＰＥに対する温度管理割込み信号をアサートする。いずれかの熱センサ割込みステータス・レジスタ４２２（TS_ISR[Gx]）のビットがセットされ、熱センサ割込みマスク・レジスタ４２４における対応するマスク・ビット（TS_IMR[Cx]）もセットされた場合、ＴＭＣＵ４０２は、ＰＰＥに対する温度管理割込み信号をアサートする。
【００６５】
割込み状況をクリアするためには、特権ソフトウェアは、熱センサ割込みマスク・レジスタにおけるいずれかの対応するマスク・ビットを「０」にセットしなければならない。温度管理割込みをイネーブルするためには、特権ソフトウェアは、温度が対応するセンサについての割込み温度未満であることを保証し、次いで以下のシーケンスを実行する。温度が割込み温度未満でない場合に割込みをイネーブルすると、結果として、即座に温度管理割込みが発生する場合がある。
【００６６】
１．熱センサ割込みステータス・レジスタ４２２において対応するステータス・ビットに「１」を書き込む。
２．熱センサ割込みマスク・レジスタ４２４において対応するマスク・ビットに「１」を書き込む。
【００６７】
熱センサ割込み温度レジスタ４２０は、ＳＰＥ、ＰＰＥに位置するセンサ、および線形熱ダイオードに隣接したセンサのための割込み温度レベルを含む。ＴＭＣＵ４０２は、このレジスタにおける符号化された割込み温度レベルを、熱センサ現在温度ステータス・レジスタ４１２内の対応する割込み温度符号化と比較する。これらの比較の結果、温度管理割込みが発生する。各センサの割込み温度レベルは独立している。
【００６８】
独立した割込み温度レベルが熱センサ割込み温度レジスタ４２０にセットされることに加えて、熱センサ・グローバル割込み温度レジスタ４２６が、第２の割込み温度レベルを含む。このレベルは、ＣｅｌｌＢＥチップにおける全てのセンサに適用される。ＴＭＣＵ４０２は、このレジスタ内の符号化されたグローバル割込み温度レベルを、各センサごとの現在温度符号化と比較する。これらの比較の結果、温度管理割込みが発生する。
【００６９】
グローバル割込み温度の目的は、ＣｅｌｌＢＥチップにおける温度上昇に対して早めに指示を与えることである。特権ソフトウェアおよびシステム・コントローラは、この情報を用いて、例えば、ファン速度を上げたり、ユニット間でのアプリケーション・ソフトウェアのバランスを取り戻したりする等、温度を制御するための措置を開始することができる。
【００７０】
熱センサ割込みステータス・レジスタ４２２は、どのセンサが割込み条件を満たすかを識別する。割込み条件とは、各熱センサ割込みステータス・レジスタ４２２のビットが、これを満たすと割込みを発生させることができる特定の状況を指す。実際の割込みは、対応するマスク・ビットがセットされた場合にＰＰＥに対して提示されるだけである。
【００７１】
熱センサ割込みステータス・レジスタ４２２は、３組のステータス・ビットを含む。すなわち、デジタル・センサ・グローバル閾値割込みステータス・ビット（TS_ISR[Gx]）、デジタル・センサ閾値割込みステータス・ビット（TS_ISR[Sx]）、および、デジタル・センサ・グローバル未満閾値割込みステータス・ビット（TS_ISR[Gb]）である。
【００７２】
熱センサ現在温度ステータス・レジスタ４１２内のあるセンサについての温度符号化が、熱センサ割込み温度レジスタ４２０における対応するセンサ割込み温度符号化以上である場合、ＴＭＣＵ４０２は、熱センサ割込みステータス・レジスタ４２２（TS_ISR[Sx]）にステータス・ビットをセットし、対応する方向ビット熱センサ割込みマスク・レジスタ４２４をTM_IMR[Bx]＝「０」とする。更に、熱センサ現在温度ステータス・レジスタ４１２内のあるセンサについての温度符号化が、熱センサ割込み温度レジスタ４２０における対応するセンサ割込み温度符号化未満である場合、ＴＭＣＵ４０２は、熱センサ割込みステータス・レジスタ４２２TS_ISR[Sx]をセットし、対応する方向ビット熱センサ割込みマスク・レジスタ４２４をTM_IMR[Bx]＝「１」とする。
【００７３】
いずれかの関与しているセンサの現在温度が、熱センサ・グローバル割込み温度レジスタ４２６のもの以上である場合、ＴＭＣＵ４０２は、熱センサ割込みステータス・レジスタ４２２TS_ISR[Gb]をセットし、熱センサ割込みマスク・レジスタ４２４TS_IMR[BG]を「０」にする。個々の熱センサ割込みステータス・レジスタ４２２TS_ISR[Gx]のビットは、個々のセンサのうちどれがこれらの条件を満たすかを示す。
【００７４】
熱センサ割込みマスク・レジスタ４２４内の関与しているセンサが全て、熱センサ・グローバル割込み温度レジスタ４２６のもの未満の現在温度を有する場合、ＴＭＳＵ４０２は、熱センサ割込みステータス・レジスタ４２２TS_ISR[Gb]をセットし、熱センサ割込みマスク・レジスタ４２４TS_IMR[BG]を「１」にする。全ての関与しているセンサは、熱センサ・グローバル割込み温度レジスタ４２６のもの未満の現在温度を有するので、グローバル未満閾値割込み条件については、１つのみのステータス・ビット熱センサ割込みステータス・レジスタ４２２（TS_ISR[Gb]）が存在する。
【００７５】
いったん、熱センサ割込みステータス・レジスタ４２２におけるステータス・ビット（TS_ISR[Sx]、[Gx]、または[Gb]）が「１」にセットされると、ＴＭＣＵ４０２は、特権ソフトウェアによって「０」にリセットされるまで、この状態を維持する。特権ソフトウェアは、熱センサ割込みステータス・レジスタ４２２における対応ビットに「１」を書き込むことによって、ステータス・ビットを「０」にリセットする。
【００７６】
熱センサ割込みマスク・レジスタ４２４は、個々のセンサのための２つのフィールド、および、グローバル割込み条件のための多数のフィールドを含む。割込み条件とは、各熱センサ割込みステータス・レジスタ４２２のビットが、これを満足すると割込みを発生させることができる特定の状況を指す。実際の割込みは、対応するマスク・ビットがセットされた場合にＰＰＥに対して提示されるだけである。
【００７７】
個々のセンサのための２つの熱センサ割込みマスク・レジスタのデジタル温度閾値割込みフィールドは、TS_IMR[Mx]およびTS_IMR[Bx]である。熱センサ割込みマスク・レジスタ４２４TS_IMR[Mx]のマスク・ビットは、割込みステータス・ビットが、ＰＰＥに対する温度管理割込みを発生することを防ぐ。熱センサ割込みマスク・レジスタ４２４TS_IMR[Bx]の方向ビットは、熱センサ割込み温度レジスタ４２０における対応する温度よりも高いかまたは低いかという割込み条件のための温度方向をセットする。熱センサ割込みマスク・レジスタ４２４TS_IMR[Bx]を「１」にセットすると、割込み条件の温度は、熱センサ割込み温度レジスタ４２０における対応する温度未満に設定される。熱センサ割込みマスク・レジスタ４２４TS_IMR[Bx]を「０」にセットすると、割込み条件の温度は、熱センサ割込み温度レジスタ４２０における対応する温度以上に設定される。
【００７８】
グローバル割込み条件のための熱センサ割込みマスク・レジスタ４２４のフィールドは、TS_IMR[Cx]、TS_IMR[BG]、およびTS_IMR[A]である。熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cx]のマスク・ビットは、グローバル閾値割込みを防ぎ、どのセンサがグローバル未満閾値割込み条件に関与するかを選択する。熱センサ割込みマスク・レジスタ４２４、TS_IMR[BG]の方向ビットは、グローバル割込み条件のための温度方向を選択する。熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cgb]のマスク・ビットは、グローバル未満閾値割込みを防ぐ。熱センサ割込みマスク・レジスタ４２４、TS_IMR[A]は、システム・コントローラに対する注意をアサートする。注意とは、システム・コントローラに対する信号であり、一般的なロジックが注意を必要とするか、またはシステム・コントローラのためのステータスを有することを示す。注意は、システム・コントローラにおいて割込みにマッピングすることができる。システム・コントローラは、システム・プレーナ上にあり、ＳＰＩポート上でＣｅｌｌＢＥに接続されている。
【００７９】
熱センサ割込みマスク・レジスタ４２４、TS_IMR[BG]を「１」にセットすると、熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cx]にセットされた全ての関与センサの温度がグローバル割込み温度レベル未満である場合に、グローバル割込み条件が発生するための温度範囲が設定される。熱センサ割込みマスク・レジスタ４２４、TS_IMR[BG]を「０」にセットすると、関与しているセンサのいずれかの温度が熱センサ・グローバル割込み温度レジスタ４２６における対応する温度以上である場合に、グローバル割込み条件が発生するための温度範囲が設定される。熱センサ割込みマスク・レジスタ４２４、TS_IMR[A]が「１」にセットされると、いずれかの熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cx]のビット、およびその対応する熱センサ割込みステータス・レジスタ４２２のステータス・ビット（TS_ISR[Gx]）が双方とも「１」にセットされている場合、ＴＭＣＵ４０２は注意をアサートする。更に、熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cgb]、および熱センサ割込みステータス・レジスタ４２２、TS_ISR[Gb]が双方とも「１」にセットされている場合、ＴＭＣＵ４０２は注意をアサートする。
【００８０】
いずれかの熱センサ割込みマスク・レジスタ４２４、TS_IMR[Mx]ビット、およびその対応する熱センサ割込みステータス・レジスタ４２２のステータス・ビット（TS_ISR[Sx]）が双方とも「１」にセットされている場合、ＴＭＣＵ４０２は熱管理割込みをＰＰＥに提示する。いずれかの熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cx]ビット、およびその対応する熱センサ割込みステータス・レジスタ４２４のステータス・ビットTS_ISR[Gx]が双方とも「１」にセットされている場合、ＴＭＣＵ４０２は熱管理割込みを発生させる。更に、熱センサ割込みマスク・レジスタ４２４、TS_IMR[Cgb]、および熱センサ割込みステータス・レジスタ４２２、TS_ISR[Gb]が双方とも「１」にセットされていると、ＴＭＣＵ４０２は熱管理割込みをＰＰＥに提示する。
【００８１】
スロットリング・ロジック４１８における動的温度管理レジスタは、ＰＰＥまたはＳＰＥの実行抑制を制御するためのパラメータを含む。動的温度管理レジスタは、１組のレジスタであり、温度管理制御レジスタ４３０（TS_CR1およびTM_CR2）、温度管理スロットル・ポイント・レジスタ４３２（TM_TPR）、温度管理停止時間レジスタ４３４（TM_STR1およびTM_STR2）、温度管理抑制スケール・レジスタ４３６（TM_TSR）、および温度管理システム割込みマスク・レジスタ４３８（TM_SIMR）を含む。
【００８２】
温度管理スロットル・ポイント・レジスタ４３２は、センサのためのスロットル温度ポイントをセットする。温度管理スロットル・ポイント・レジスタ４３２には、２つの独立したスロットル温度ポイントをセットすることができる。すなわち、ThrottlePPEおよびThrottleSPEであり、１つはＰＰＥのためであり、１つはＳＰＥのためのものである。また、このレジスタには、ＰＰＥまたはＳＰＥの抑制のディスエーブルおよび停止のための温度ポイントが含まれている。ＰＰＥまたはＳＰＥの実行抑制は、温度がスロットル・ポイント以上になった場合に開始する。抑制が終了するのは、抑制をディスエーブルする温度未満に下がった場合である（TM_TPR[EndThrottlePPE/EndThrottleSPE]）。温度がフル・スロットルまたは停止温度に達すると（TM_TPR[FullThrottlePPE/FullThrottleSPE]）、ＴＭＣＵ４０２は、ＰＰＥまたはＳＰＥの実行を停止する。温度管理制御レジスタ４３０は、抑制挙動を制御する。
【００８３】
温度管理停止時間レジスタ４３４および温度管理抑制スケール・レジスタ４３６は、抑制の頻度および量を制御する。温度がスロットル・ポイントに達すると、ＴＭＣＵ４０２は、温度管理停止時間レジスタ４３４内の対応する値に温度管理スケール・レジスタ４３６内の対応するスケール値を乗算した停止時間によって指定されるクロック数だけ、対応するＰＰＥまたはＳＰＥを停止させる。次いで、ＴＭＣＵ４０２は、対応するスケール値で乗算した実行時間によって指定されるクロック数だけ、ＰＰＥまたはＳＰＥを実行することができる。ここで、実行時間は、実施に依存した固定時間量と停止時間との間の差である。スケール値は、プログラム可能であり、温度管理スケール・レジスタ４３６において、停止時間および実行時間の双方のための乗数である。一例として、（Stop x Scale）／（Run x Scale）とすることができる。コアが停止する時間の割合は同じままであるが、期間は長くなるか、または頻度が下がる。このシーケンスは、温度がディスエーブル・スロットリング（TM_TPR[EndThrottlePPE/EndThrottleSPE]）未満に下がるまで継続する。
【００８４】
温度管理システム割込みマスク・レジスタ４３８は、どのＰＰＥ割込みによってＴＭＣＵ４０２に抑制をディスエーブルさせるかを選択する。これらの割込みが待ち状態のままであり、マスクが待ち状態の割込みを選択したままである間は、ＴＭＣＵ４０２は抑制を阻止し続ける。マスクが選択解除されるか、または割込みが待ち状態でなくなると、ＴＭＣＵ４０２は抑制を阻止しなくなる。
【００８５】
温度管理制御レジスタ４３０は、各ＰＰＥまたはＳＰＥごとに独立して抑制モードを設定する。制御ビットは２つのレジスタ間で分割される。以下は、各ＰＰＥまたはＳＰＥごとに独立して設定することができる５つの異なるモードである。
【００８６】
動的抑制ディスエーブル（コア・ストップ安全策を含む）。
正常動作（動的抑制およびコア・ストップ安全策はイネーブルされる）。
ＰＰＥまたはＳＰＥが常に抑制される（コア・ストップ安全策はイネーブルされる）。
コア・ストップ安全策ディセーブル（動的抑制はイネーブル、コア・ストップ安全策はディスエーブルされる）。
ＰＰＥまたはＳＰＥが常に抑制され、コア・ストップ安全策はディスエーブルされる。
【００８７】
特権ソフトウェアは、アプリケーションまたはオペレーティング・システムを実行しているＰＰＥまたはＳＰＥについて、制御ビットを正常動作にセットしなければならない。ＰＰＥまたはＳＰＥがアプリケーション・コードを実行していない場合、特権ソフトウェアは制御ビットをディスエーブルにセットしなければならない。「ＰＰＥまたはＳＰＥが常に抑制される」モードは、アプリケーション開発のためのものである。これらのモードは、アプリケーションが最大抑制条件のもとで動作可能であるか否かを判定するのに有用である。動的抑制またはコア・ストップ安全策ディスエーブルのいずれかでＰＰＥまたはＳＰＥを実行可能とすることは、特権ソフトウェアがアクティブに熱的イベントを管理する場合にのみ許されなければならない。
【００８８】
温度管理システム割込みマスク・レジスタ４３８は、どのＰＰＥ割込みによって温度管理ロジックがＰＰＥの抑制を一時的に停止するかを制御する。ＴＭＣＵ４０２は、割込みが待ち状態である間、割込みが対象とするスレッドには無関係に、双方のスレッドについて抑制を一時的に停止する。割込みが待ち状態でなくなると、抑制条件が存在する限り、抑制を再開することができる。ＳＰＥの抑制は、システム割込み条件に基づいてディスエーブルされない。抑制条件に優先することができるＰＰＥ割込み条件は、以下のものである。
【００８９】
外部
デクリメンタ（Decrementer）
ハイパーバイザ・デクリメンタ
システム・エラー
温度管理
【００９０】
温度管理スロットル・ポイント・レジスタ４３２は、ＰＰＥまたはＳＰＥの実行抑制が開始および終了する符号化温度ポイントを含む。また、このレジスタは、ＰＰＥまたはＳＰＥの実行が完全に抑制される符号化温度ポイントを含む。
【００９１】
ソフトウェアは、温度管理スロットル・ポイント・レジスタ内の値を用いて、３つの温度管理状態間で切り替えるための３つの温度ポイントを設定する。すなわち、正常実行（Ｎ）、ＰＰＥまたはＳＰＥ抑制（Ｔ）、およびＰＰＥまたはＳＰＥ停止（Ｓ）である。ＴＭＣＵ４０２は、ＰＰＥまたはＳＰＥについて独立した温度ポイントをサポートする。
【００９２】
熱センサ現在温度ステータス・レジスタ４１２におけるセンサの符号化現在温度が抑制温度（ThrottlePPE/ThrottleSPE）以上である場合、対応するＰＰＥまたはＳＰＥがイネーブルされている場合、その実行抑制が開始する。実行抑制は、対応するセンサの符号化現在温度が抑制を終了するための符号化温度（EndThrottolePPE/EndThrottleSPE）未満になるまで継続する。安全対策のため、符号化現在温度がフル・スロットル・ポイント（FullThrottlePPE/FullThrottleSPE）以上である場合、ＴＭＣＵ４０２は対応するＰＰＥまたはＳＰＥを停止させる。
【００９３】
温度管理停止時間レジスタ４３２は、温度管理抑制状態において特定のＰＰＥまたはＳＰＥに適用される抑制量を制御する。温度管理停止時間レジスタ４３４において、ソフトウェアによってセットされるこの値は、コアが実行することができる時間量に対するコアが停止する時間量（停止／実行）、またはコアが停止する時間の割合を表す。温度管理抑制スケール・レジスタ４３６は、ＰＰＥまたはＳＰＥが停止および実行する実際のクロック数（ＮＣｌｋｓ）を制御する。
【００９４】
温度管理抑制スケール・レジスタ４３６は、温度管理抑制状態の間にＰＰＥまたはＳＰＥが停止および実行する実際のサイクル数を制御する。このレジスタ内の値は、構成リング設定TM_Config[MinStopSPE]の乗数である。以下の式は、実際の停止および実行サイクル数を計算する。
【００９５】
ＳＰＥ実行および停止時間：
SPE_StopTime = (TM_STR1[StopCore(x)] *
TM_Config[MinStopSPE]) * TM_TSR[ScaleSPE]
SPE_RunTime = (32_TM_STR1[StopCore(x)]) *
TM_Config[MinStopSPE]) * TM_TSR[ScaleSPE]
PowerPC（登録商標）要素の実行および停止時間：
PPE_StopTime = (TM_STR2[StopCore(8)] *
TM_Config[MinStopPPE]) * TM_TSR[ScalePPE]
PPE_RunTime = (32_TM_STR2[StopCore(8)]) *
TM_Config[MinStopPPE]) * TM_TSR[ScalePPE]
【００９６】
実行および停止時間は、割込みおよび特権ソフトウェアが様々な熱管理レジスタを書き込むことによって変更することができる。
【００９７】
オンチップ性能モニタ４６６は、ＤＴＳ４０４、４０６、４０８、および４１０等の温度検知デバイスによって与えられる温度データを追跡可能な性能モニタリングを提供することができる。温度データは、メモリ４７０にストアするか、図２のメイン・メモリ２０８等のオフチップ・デバイス４７２、または、図２のサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）２０４等のオフチップＩ／Ｏデバイス４７４に書き込むことができる。性能モニタ４６６に配置されたコントローラ４６８は、温度データをどこに送信するかの決定を制御する。
【００９８】
以下の説明は、１つの命令ストリームおよび１つのプロセッサを対象とするが、命令ストリームは１組の命令ストリームとすることができ、プロセッサは１組のプロセッサとすることができる。すなわち、１組とは、単一の命令ストリームおよび単一のプロセッサ、または、２つ以上の命令ストリームおよびプロセッサとすることができる。
【００９９】
上述のアーキテクチャを用いて、ＣｅｌｌＢＥチップの温度管理および温度抑制のために、多くの改良および追加のプログラミング性が達成される。これらの改良および追加のプログラマビリティの一部は、なぜ他のものが有用性を高めるかの重要な特徴を可能とする。
【０１００】
図６は、例示的な実施形態に従った、最大温度を記録ための動作のフロー図を示す。動作が開始すると、図３のＣｅｌｌＢＥチップ３００等のＣｅｌｌＢＥチップを含むコンピュータ・システムは、開始またはリセットする（ステップ６０２）。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。温度管理システムは、図４のＤＴＳ４０４、４０６、４０８、および４１０等の各ＤＴＳごとに、図４の最大温度ステータス・レジスタ４１４および現在温度ステータス・レジスタ４１２等の１組の最大温度ステータス・レジスタおよび１組の現在温度ステータス・レジスタを含む。現在温度ステータス・レジスタは、図４の温度管理制御状態マシン４５８等の温度管理制御状態マシンが最後にＤＴＳを検知した後の、そのターゲットＤＴＳの現在温度をストアする。最大温度ステータス・レジスタは、コンピュータ・システムが最後に最大温度ステータス・レジスタを読み取るか、またはコンピュータ・システムがリセットした後の、そのターゲットＤＴＳの最大温度をストアする。最大温度ステータス・レジスタの読み取りは、プロセッサ、集積回路等のデバイスをいずれかの数だけ用いて、または、ＳＰＩ（Serial Peripheral Interface）ポートまたはＪＴＡＧ（Joint Test Action Group）ポートを用いたデバイスによって行うことができる。しかしながら、ＪＴＡＧポートによってレジスタを読むと、リセットは起こらない。
【０１０１】
例示的に、以下の考察は１つのＤＴＳに限定し、コンピュータ・システムが開始またはリセットした（ステップ６０２）後の最大温度はゼロである。いったん温度管理制御状態マシンがＤＴＳの温度を検知すると、温度管理制御状態マシンは、ＤＴＳの検知温度を、図４の比較器４５４等の比較器に送信する（ステップ６０４）。比較器は、検知温度を、そのＤＴＳのための最大温度ステータス・レジスタにストアされた現在最大温度と比較する（ステップ６０６）。ステップ６０６において、検知温度が、最大温度ステータス・レジスタにストアされた現在最大温度よりも高い場合、検知温度は新しい最大温度になり、温度管理制御状態マシンは新しい最大温度を最大温度ステータス・レジスタに記録する（ステップ６０８）。すなわち、温度管理制御状態マシンは、最大温度ステータス・レジスタにストアされた現在最大温度を上書きするかまたは置換する。ステップ６０６において、検知温度が最大温度ステータス・レジスタにストアされた現在最大温度以下である場合、最大温度ステータス・レジスタは最大温度ステータス・レジスタ内にある現在最大温度を保持する（ステップ６１０）。
【０１０２】
コンピュータ・システムが最大温度ステータス・レジスタを読み取り要求の形態で読み取る（ステップ６１２）まで、またはコンピュータ・システムがリセットするまで、最大温度ステータス・レジスタ内の現在最大温度は、最大温度にとどまる。現在最大温度が読み取られない場合、動作はステップ６０４に戻る。ステップ６１２において、コンピュータ・システムが現在最大温度を読み取ると、温度管理制御状態マシンは、現在最大温度を現在温度ステータス・レジスタの現在温度にリセットし（ステップ６１４）、動作はステップ６０４に戻る。
【０１０３】
この動作の一例として、プロセッサのコアまたはプロセッサ自体等の特定のユニットのＤＴＳが、ある時間期間、６７℃、７０℃、７５℃、７２℃、および７４℃の温度を検知した場合、最大温度ステータス・レジスタの最大温度は７５℃となる。ＤＴＳの４回目の検知の後、コンピュータ・システムが読み取り要求を発すると、最大温度が戻るのは７５℃である。しかしながら、この時点で、温度管理制御状態マシンは最大温度を現在温度にリセットし、ＤＴＳによって実行される最後の検知の後、最大温度ステータス・レジスタの最大温度は７４℃となる。
【０１０４】
このため、最大温度ステータス・レジスタの目的は、最大温度レジスタが最後に読み取られた後にＤＴＳが達した最大温度を記録することである。この最大温度情報は、現在温度レジスタを連続的にポーリングすることなく、アプリケーションまたはプログラムの実行中にＤＴＳが達した最大温度をオペレーティング・システムが求める際に役立つ。連続的なポーリングを行うことは、システムの性能に影響を与え、従って最大温度に影響を与える恐れがある。更に、現在温度をポーリングすることは、最大温度を読み取ることを保証しない。これは、現在温度の読み取り間に最大温度が発生した場合に当てはまる。
【０１０５】
図７は、別の例示的な実施形態に従った、性能モニタリングによって温度データを追跡するための動作のフロー図を示す。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。性能モニタリングは、図４の性能モニタ４６６等の性能モニタによって行うことができる。性能モニタリングは、図４のメモリ４７０等のその内部メモリにおいて、図４のＤＴＳ４０４、４０６、４０８、および４１０等の温度検知デバイスによって提供される温度データを追跡することができ、図２のメイン・メモリ２０８等のメイン・メモリまたは図４のオフチップ・デバイス４７２、または、図２のサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）２０４または図４のオフチップＩ／Ｏデバイス４７４等のＩ／Ｏデバイスに書き込むことができる。
【０１０６】
性能モニタリングは、２つの主な追跡モードをサポートする。すなわち、固定時間期間の追跡または連続的な追跡である。熱性能のトレースは、図５のトレース５００等のトレースとすることができる。また、性能モニタリングでは、２つの連続サンプル間の時間期間を制御するためのサンプリング周波数の設定を行うことができる。更に、温度情報の圧縮を用いて、サンプリング間隔を増すことができる。１つの圧縮技法は、変更が生じた場合に温度情報をストアのみすることである。温度情報と共に、同一であった温度サンプル数のカウントもストアすることができる。通常、温度情報は変化が遅いので、これは有用な技法である。
【０１０７】
性能モニタによって温度データを追跡するための動作が開始すると、図４の温度管理制御状態マシン４５８等の温度管理制御状態マシンは、性能モニタを追跡モードにセットする（ステップ７０２）。例示的に、以下の考察は１つのＤＴＳに制限する。温度管理制御状態マシンは、ＤＴＳの温度を検知して（ステップ７０４）、ＤＴＳの検知温度を現在温度ステータス・レジスタあるいは他のデータ構造またはその両方にストアするために送信する（ステップ７０６）。この時点で、温度管理制御状態マシンは、性能モニタが引き続き動作しているか否かを判定する（ステップ７０８）。いったんステップ７０２において性能モニタが開始すると、性能モニタはユーザが指定した時間期間だけ動作するか、またはユーザ入力を用いてユーザによって停止されるまで動作する。しかしながら、性能モニタは、特定の温度条件に基づいて停止する場合もある。特定の温度条件はトリガと呼ばれ、ロジック・アナライザが１組の信号上で特定の条件を探す等である。トリガの使用は、ソフトウェア・デバッグにおいて有用である場合がある。例えば、ユーザは、ある温度条件に達した場合にシステムを停止またはチェックストップ（checkstop）させるように性能モニタを設定することができる。これによって、ユーザは、どのコードまたはどのコードの組み合わせが温度条件を引き起こしているかを正確に判定することができる。性能モニタがステップ７０８において引き続き動作している場合、動作はステップ７０４に戻る。
【０１０８】
ステップ７０８に戻ると、性能モニタがもはや動作していない場合、温度管理制御状態マシンは、メモリにストアされた温度情報を読み取り、ストアされた情報をユーザのために図で表示し（ステップ７１０）、その後、動作は終了する。また、ステップ７０６において、検知した温度を現在温度ステータス・レジスタあるいは他のデータ構造またはそれら両方に送信し、追跡が終了するのを待つのではなく、矢印７１２によって示されるように動作が進行中である間にこれを表示することも可能である（ステップ７１０）。
【０１０９】
従って、性能モニタは、ＤＴＳによって提供される温度データを追跡する。自動的に温度データを追跡することで、ソフトウェアが現在温度レジスタを連続的にポーリングする必要性がなくなる。性能モニタリングは、作業負荷の温度データを収集するために重要である、なぜなら性能モニタリングは、作業負荷の挙動を変化させる恐れがある温度データのポーリングのための追加コード挿入を必要としないからである。換言すると、性能モニタリングは、リアルタイムでソフトウェア・アプリケーションの熱的プロファイルを追跡するための非侵襲的な方法を提供する。温度情報を性能モニタに送信することの付加的な利点は、予め指定した温度条件に関する温度情報の記録をトリガまたは停止することができることである。更に、性能モニタを用いて、温度条件が満足された場合にシステムを停止させる（またはチェックストップさせる）ことができる。そうすることによって、ユーザは、どのコード・セグメントまたはどのコード・セグメントの組み合わせが温度条件を引き起こしているかを判定することができる。ユーザは、次いで、コード・セグメントを書き直すか、または特定の組み合わせを回避し、これによって熱イベントを回避することができる。
【０１１０】
図８および図９は、追加の例示的な実施形態に従った、改良型の温度割込み発生のための動作のフロー図を示す。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって与えられる温度管理システムを含む。改良型の温度割込み発生は、オペレーティング・システムが熱イベントを処理するのに役立つ別の機構である。改良型の温度割込みロジックは、図４のＴＭＣＵ４０２等の温度管理制御ユニットの一部である。温度割込みは、温度条件が存在する場合（すなわちチップ温度がある閾値を超えて上昇した場合）、オペレーティング・システムに警告を与える。かかる場合、オペレーティング・システムは、チップ温度を下げるための是正措置を取らなければならない。是正措置は、ソフトウェア割込みハンドラによって処理することができる。これは、温度条件を処理し是正措置を開始するコードである。次いで、オペレーティング・システムは、温度条件が存在しなくなるのを待ってから正常動作を再開する。このためには、通常、オペレーティング・システムが特定の時間量だけ待つ必要があり、次いでプロセッサの温度をポーリングして、正常動作を再開するのが安全であるか否かを判定しなければならない。改良型の温度割込み発生によって、オペレーティング・システムは、温度がある閾値未満に下がったときを検出するように割込みを設定し、これによって現在温度レジスタをポーリングする必要をなくす。図４の熱センサ割込みマスク・レジスタ４２４（TS_IMR）および熱センサ割込みステータス・レジスタ４２２（TS_ISR）の組み合わせにより、オペレーティング・システムは熱イベントの処理を極めて容易に行うことができる。
【０１１１】
改良型の温度割込み発生は、ローカル・レベルおよびグローバル・レベルで実行することができる。すなわち、改良型の温度割込み発生は、特定のＤＴＳ上で個別に（ローカル）、または、図４のＤＴＳ４０４０、４０６、４０８、および４１０等の全てのＤＴＳで（グローバル）、行うことができる。熱センサ割込みマスク・レジスタの方向ビットはＢGおよびＢXである。割込み方向は、割込みを発生させる条件を規定する。割込みを発生させることができるのは、温度が割込み温度から割込み温度以上まで変化した場合、または、温度が割込み温度以上から割込み温度未満まで変化した場合である。温度管理制御状態マシンは、割込みマスク・レジスタにおける方向ビットＢGおよびＢXによって条件を識別する。ＢGはグローバル方向ビットである。ＢGが「０」にセットされている場合、温度管理制御状態マシンは、いずれかのＤＴＳの温度がグローバル割込み温度以上である場合に割込みを発生させる。ＢGが「１」にセットされている場合、温度管理制御状態マシンは、全てのＤＴＳの温度がグローバル割込み温度未満である場合に割込みを発生させる。ＢXはローカル方向ビットであり、Ｘは個別の関連するＤＴＳの番号である。ＢXが「０」にセットされている場合、温度管理制御状態マシンは、個々のＤＴＳの温度がＤＴＳ割込み温度以上である場合に割込みを発生させる。ＢXが「１」にセットされている場合、温度管理制御状態マシンは、個々のＤＴＳの温度がＤＴＳ割込み温度未満である場合に割込みを発生させる。温度割込みステータス・レジスタ（TS_ISR）は、どのセンサが改良型の温度割込みを発生させたかを記録する。ソフトウェアは、このレジスタを読み取って、どの条件が生じたか、および、どのセンサまたは複数のセンサが割込みを発生させたかを判定する。温度管理制御状態マシンは、いったんソフトウェアによって読み取られると、温度割込みステータス・レジスタのステータス・ビットをリセットする。
【０１１２】
従って、改良型の温度割込み発生のための動作を、グローバルおよびローカルな視点から示すことができる。図８は、グローバル改良型温割込み発生を示し、図９は、ローカル改良型温度割込み発生を示す。図８のグローバル改良型温度割込み発生において動作が開始すると、温度管理制御状態マシンは、グローバル割込み温度Ｔを温度Ｔ１にセットし、グローバル割込み方向ＢGを「０」にセットする（ステップ８０２）。温度管理制御状態マシンは、ＤＴＳの温度を検知する（ステップ８０４）。温度管理制御状態マシンは、ＤＴＳからのいずれかの検知温度が温度Ｔ１以上であるか否かを判定する（ステップ８０６）。どの検知温度もＴ１以上ではない場合、動作はステップ８０４に戻る。ステップ８０６において、検知温度のいずれか１つが温度Ｔ１以上である場合、温度管理制御状態マシンは、割込みを発生し、温度割込みステータス・レジスタにおける対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する（ステップ８０８）。次いで、オペレーティング・システムは、割込みを処理し、プロセッサ上の作業負荷を減速させるか、または、プロセッサの作業負荷の一部を軽減してシステム内の別のプロセッサへ割り当てることができる。
【０１１３】
割込みを発生させた後、温度管理制御状態マシンは、グローバル割込み温度Ｔを温度Ｔ２にセットして、グローバル割込み方向ＢGは「１」にセットされる（ステップ８１０）。温度Ｔ２は、温度Ｔ２以下に設定しなければならない。温度管理制御状態マシンは、再びＤＴＳの温度を検知する（ステップ８１２）。温度管理制御状態マシンは、ＴＳからの全ての検知温度が温度Ｔ２未満であるか否かを判定する（ステップ８１４）。どの温度も温度Ｔ２未満でない場合、動作はステップ８１２に戻る。ステップ８１４において、全ての検知温度が温度Ｔ２未満である場合、温度管理制御状態マシンは割込みを発生し、温度割込みステータス・レジスタ内の対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する（ステップ８１６）。この時点で、オペレーティング・システムが正常動作を再開するのは安全である。次いで、オペレーティング・システムは、割込みを処理して、システムを正常動作に復元する。次に、動作はステップ８０２に戻り、グローバル割込み温度Ｔを温度Ｔ１にセットし、グローバル割込み方向ＢGを「０」にセットする。
【０１１４】
この動作の一例は、ＤＴＳの全てでグローバル割込み温度が８０℃であり、グローバル割込み方向が「０」の場合である。プロセッサのコアまたはプロセッサ自体等、関連ユニットのいずれかのＤＴＳがいったん８０℃以上の温度を検知すると、温度管理制御状態マシンは割込みを発生し、温度割込みステータス・レジスタにおける対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する。次いで、オペレーティング・システムは割込みを処理し、プロセッサ上の作業負荷を減速するか、または、プロセッサの作業負荷の一部を軽減してシステム内の別のプロセッサへと割り当てることができる。また、この時点で、温度管理制御状態マシンは、グローバル割込み温度を例示的な７７℃にリセットし、グローバル割込み方向を「１」にセットすることができる。作業負荷は、低速モードで動作し続けるか、またはＤＴＳが全てのＤＴＳについて７７℃未満の温度を検知するまで、プロセッサをオフのままとする。いったん、検知温度が７７℃未満であることを温度管理制御状態マシンが判定すると、温度管理制御状態マシンは別の割込みを発生する。温度管理制御状態マシンは、グローバル割込み温度を８０℃にセットし、グローバル割込み方向を「０」にセットし、次いでオペレーティング・システムは作業負荷の正常動作を再開する。
【０１１５】
図９に移ると、例示的な実施形態は１つのＤＴＳに限られているが、この例は各ＤＴＳについて同一である。ローカル改良型温度割込み発生のための動作が開始すると、温度管理制御状態マシンは、ローカル割込み温度Ｔを温度Ｔ３にセットし、ローカル割込み方向ＢXを「０」にセットする（ステップ８５２）。温度管理制御状態マシンは、ＤＴＳの温度を検知する（ステップ８５４）。温度管理制御状態マシンは、ＤＴＳからの検知温度が温度Ｔ３以上であるか否かを判定する（ステップ８５６）。検知温度が温度Ｔ３以上でない場合、動作はステップ８５４に戻る。検知温度が温度Ｔ３以上である場合、温度管理制御状態マシンは割込みを発生し、温度割込みステータス・レジスタ内の対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する（ステップ８５８）。次いで、オペレーティング・システムは、割込みを処理し、プロセッサ上の作業負荷を減速するか、または、作業負荷の一部を軽減してプロセッサ内の他のユニットまたはシステム内の別のプロセッサへ割り当てることができる。
【０１１６】
温度管理制御状態マシンが割込みを発生した後、温度管理制御状態マシンはローカル割込み温度Ｔを温度Ｔ４にセットして、ローカル割込み方向ＢXを「１」にセットする（ステップ８６０）。温度Ｔ４は、温度Ｔ３以下に設定しなければならない。温度制御状態マシンは、再びＤＴＳの温度を検知する（ステップ８６２）。温度管理制御状態マシンは、ＤＴＳからの検知温度が温度Ｔ４未満であるか否かを判定する（ステップ８６４）。検知温度が温度Ｔ４未満でない場合、動作はステップ８６２に戻る。検知温度が温度Ｔ４未満である場合、温度管理制御状態マシンは割込みを発生し、温度割込みステータス・レジスタ内の対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する（ステップ８６６）。この時点で、オペレーティング・システムが正常動作を開始するのは安全である。次いで、オペレーティング・システムは割込みを処理し、システムを正常動作に復元する。次に、動作はステップ８５２に戻り、温度管理制御状態マシンは、ローカル割込み温度Ｔを温度Ｔ３にセットし、ローカル割込み方向ＢXを「０」にセットする。
【０１１７】
この動作の一例は、所与のＤＴＳのローカル割込み温度が８０℃であり、ローカル割込み方向が「０」の場合である。関連ユニットのＤＴＳがいったん８０℃以上の温度を検知すると、温度管理制御状態マシンは割込みを発生し、温度割込みステータス・レジスタ内の対応するステータス・ビットをセットして、どのセンサまたは複数のセンサが割込みを発生させたかを記録する。次いで、オペレーティング・システムは割込みを処理し、プロセッサ上の作業負荷を減速するか、または、プロセッサの作業負荷の一部を軽減してシステム内の別のプロセッサへ割り当てることができる。また、この時点で、温度管理制御状態マシンは、ローカル割込み温度を例示的な７７℃にリセットし、ローカル割込み方向を「１」にセットすることができる。作業負荷は低速モードで動作し続けるか、またはＤＴＳが７７℃未満の温度を検知するまで、温度条件を経験しているプロセッサのユニットまたはプロセッサをオフのままとする。いったん、検知温度が７７℃未満であることを温度管理制御状態マシンが判定すると、温度管理制御状態マシンは別の割込みを発生する。温度管理制御状態マシンは、ローカル割込み温度を８０℃にセットし、ローカル割込み方向を「０」にセットし、次いでオペレーティング・システムは作業負荷の正常動作を再開する。
【０１１８】
このため、改良型の温度割込み発生によって、オペレーティング・システムは、温度変更の方向に従うように割込み発生をプログラムすることができ、温度割込みの場合に割込みハンドラが現在温度を連続的にポーリングする必要性がなくなる。
【０１１９】
図１０は、追加の例示的な実施形態に従って、温度管理システムにおいて顕著な省電力モード（deep power savings mode）および一部良好（partial good）をサポートするための動作のフロー図を示す。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。図３のＣｅｌｌＢＥチップ３００においては、多数の省電力モードが存在する。省電力モードの各々の実施に応じて、いくつかは、図４のＤＴＳ４０４、４０６、４０８、および４１０等のＤＴＳのアクセス可能性を制限する場合がある。例えば、図３のＳＰＵ３１０、３１１、および３１２等のＳＰＵは、クロックがオフになる省電力モードである場合、図４のデシリアライザ４６２等のデシリアライザはディスエーブルされ、図４のシリアライザ４５６等のシリアライザと、図４のＤＴＳ４０４等のＤＴＳとの間の経路は機能しない。省電力モードの別の例は、電力供給がオフである場合が挙げられる。この場合、実際のＤＴＳはディスエーブルされる可能性がある。別の例は、温度管理制御状態マシンが、製造試験中に遮断されるプロセッサ内のセンサまたはユニットを決定する。センサまたはユニットが冗長である場合、製造はセンサまたはユニットを不良と標示し、限られた数のユニットまたはセンサによって機能し続ける一部良好なプロセッサを生成することができる。いずれの場合にも、図４の温度管理制御状態マシン４５８等の温度管理制御状態マシンは、これらの電力モードのステータスを監視し、機能しないＤＴＳ（複数のＤＴＳ）が温度管理タスク（例えば抑制、割込み等）に関与することを阻止する（mask off）必要がある。
【０１２０】
図１０に戻ると、これは、温度検知および温度管理システムにおいて顕著な省電力モードおよび一部良好をサポートするための動作のフロー図を示す。動作が開始すると、温度管理制御状態マシンは、様々なＤＴＳからのデータを用いて、ＤＴＳのステータスを追跡する（ステップ９０２）。温度管理制御状態マシンは、図４の内部較正ストレージ４２８等の内部較正ストレージにデータをストアする。前述したように、特定のＤＴＳの動作は、省電力モード、不良のＤＴＳ、またはＳＰＵによって禁止される場合があり、これは、図４のデータ・フロー４６０等のデータ・フローを介して温度管理制御状態マシンに伝達される。製造プロセスによって報告される一部良好状態の効果は省電力モードと同様であるが、異なる点は、一部良好が永久的な状態であり、ＤＴＳを永久的に阻止しなければならないことである。ＳＰＵが不良と標示された場合、温度管理制御状態マシンはＳＰＵ全体をオフし、シリアライザをディスエーブルする。ＤＴＳが不良と標示された場合、温度管理制御状態マシンはそのＤＴＳを阻止する。温度管理制御状態マシンは、ＤＴＳまたはＳＰＵが不良であるか機能しているかを判定する（ステップ９０４）。ＤＴＳまたはＳＰＵが不良である場合、温度管理制御状態マシンはＤＴＳを阻止し（ステップ９０６）、その後、動作は終了する。
【０１２１】
電力管理状態にあるＤＴＳを阻止するため、温度管理制御状態マシンは、図４の現在温度ステータス・レジスタ４１２等、現在温度ステータス・レジスタの関連する現在温度ステータス・レジスタを、最低の温度設定値である０ｘ０にリセットする。また、他に選択可能な方法は、ステータス・ビットをセットすることによって、関連する現在温度ステータス・レジスタの符号化を確保し、ＤＴＳの阻止を示すことである。これは、センサ読み取りを単にリセットするよりも正確であり得る。次いで、温度管理制御状態マシンは、ＤＴＳとの間の現在温度ステータス・レジスタからの通信を停止する。通信の停止は、主に省電力のための任意のステップであり、不要なオーバーヘッド作業は実行しない。次いで、温度管理制御状態マシンは、ＤＴＳは現在阻止されており、温度管理タスクに関与してはならないことを示す信号を発生する。最後に、温度管理制御状態マシンは、ＤＴＳの状態をリセットする。ＤＴＳに関連したプロセッサのコアまたはプロセッサ自体等のユニットが省電力モードから出ると、温度管理制御状態マシンはＤＴＳへの通信を再開し、現在温度ステータス・レジスタの更新を再開し、ＤＴＳが温度管理タスクに関与可能であることを示す信号を送信する。
【０１２２】
ステップ９０４に戻ると、ＤＴＳおよびＳＰＵが双方とも機能している場合、温度管理制御状態マシンはＤＴＳへの通信を開始する（ステップ９０８）。温度管理制御状態マシンは、ＳＰＵの電力管理状態を監視して、ＳＰＵが省電力モードに入ったときを判定する（ステップ９１０）。ＳＰＵが省電力モードに入るまで、動作はステップ９０８に戻る。ＳＰＵが省電力モードに入り、ＤＴＳがディスエーブルされると、温度管理制御状態マシンは、ステップ９０６に関連付けて上述した方法でＤＴＳを阻止する（ステップ９１２）。ＤＴＳはディスエーブルされていると示され、機能しているので、温度管理制御状態マシンはＳＰＵの電力管理状態の監視を続ける（ステップ９１４）。ＳＰＵが省電力モードから出るまで、動作はステップ９１２に戻る。ＳＰＵが省電力モードから出ると、ＤＴＳはもはやディスエーブルされず、温度制御状態マシンはＤＴＳへの通信を開始し、現在温度ステータス・レジスタの更新を再開し、ＤＴＳが温度管理タスクに関与可能であることを示す信号を送信し（ステップ９１６）、動作はステップ９０８に戻る。
【０１２３】
このため、一部良好、不良、または省電力モードにあるＤＴＳの温度読み取りの阻止によって、機能してないまたはディスエーブルされたＤＴＳが温度管理タスクに関与することを防ぐ。
【０１２４】
図１１は、追加の例示的な実施形態に従って、温度とは無関係に温度認識ソフトウェア・アプリケーションのリアルタイム試験を可能とする温度抑制制御機構のための動作のフロー図を示す。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。図４の温度管理制御レジスタ４３０等の温度管理制御レジスタは、様々な温度抑制制御機構にアクセスおよび機器構成を提供する。温度抑制は、抑制を用いて熱イベントの場合に性能を縮小することによって温度を下げるように設計されている。
【０１２５】
図４の温度管理停止時間レジスタ４３４等の温度管理停止時間レジスタ、および、図４の温度管理抑制スケール・レジスタ４３６等の温度管理抑制スケール・レジスタは、共に、抑制の量および抑制の挙動を設定する。リアルタイム・システムにおいては、リアルタイム期限を保証する必要がある。ソフトウェア開発者および品質保証チームは、最大抑制量を把握してこれを試験することが重要である。これは、プログラムまたはコード・セグメントによって許容でき、リアルタイム・システムのリアルタイム期限を保証することができる温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの最大設定値である。ハードウェアの実際の温度を調節して熱イベントを引き起こし、これによって抑制条件をトリガする代わりに、温度管理制御状態マシンは、温度には無関係に常に抑制を行うモードを提供する。温度管理制御状態マシンは、温度管理制御レジスタにおいてこのモードをセットし、チップを一定の抑制状態に設定する。この機構は、ソフトウェア開発者がリアルタイム規格を満足させるためにコードを試験し認定する際に役立つ。
【０１２６】
動作が開始すると、温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定値を受信する（ステップ１００２）。温度管理制御状態マシンは、温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの設定値を用いて、どのように抑制が行われるかを決定する。次いで、温度管理制御状態マシンは、試験モードを設定し、温度管理制御レジスタを常時抑制設定にセットする（ステップ１００４）。次いで、プログラムは、温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定のもとでソフトウェアまたはプログラムがリアルタイム期限を満足させることのリアルタイム検証を行うように動作する（ステップ１００６）。試験モードは、常時抑制またはランダム抑制等のいずれかのタイプの抑制モードとすれば良い。次いで、温度管理制御状態マシンは、リアルタイム期限が満足されたか否かを判定する（ステップ１００８）。リアルタイム期限が満足されなかった場合、温度管理制御状態マシンは、現在の温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定を不合格と記録する（ステップ１０１０）。温度管理制御状態マシンは、次いで、抑制量を低減させるいずれかの新しい温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定があるか否かを判定する（ステップ１１２）。新しい温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定がある場合、動作はステップ１００２に戻る。ステップ１０１２において、新しい温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定がない場合、動作は終了する。
【０１２７】
ステップ１００８に戻ると、リアルタイム期限が満足された場合、温度管理制御状態マシンは、現在の温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定を合格と記録する（ステップ１０１４）。温度管理制御状態マシンは、抑制量を増大させるいずれかの温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定があるか否かを判定する（ステップ１０１６）。新しい温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定がある場合、動作はステップ１００２に戻る。ステップ１０１６において、新しい温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタの温度制御設定がない場合、動作は終了する。
【０１２８】
このため、常に抑制を行う動作モードを提供することで、コードが最悪の場合の温度条件のもとでリアルタイム期限を満足することをソフトウェア開発者が試験し認定するのに役立つ。また、ソフトウェア開発者および品質保証チームは、この機構を用いて、プログラムまたはコード・セグメントによって許容可能でありリアルタイム・システムのリアルタイム期限を満たすことが保証されるスロットルの最大量を求めることができる。いったん温度管理制御状態マシンがスロットルの最大量を求めて検証すると、ソフトウェアは、フル・スロットリングが生じた条件で割込みが起こるように設定することができる。温度管理制御状態マシンがこの割込みを発生させると、温度管理制御状態マシンは、リアルタイム保証が守られていないか満足されていない可能性があることをアプリケーションに通知する。
【０１２９】
常時抑制制御設定に加えて、ソフトウェアの抑制および実行のいっそう実際的なインタラクションをシミュレートするためにランダムな熱イベントまたは指示されたランダムな熱イベントを挿入するモードを提供する実施も可能である。この技法は、エラー回復コードの試験を行うためにランダムにエラーを挿入することに似ている。
【０１３０】
図１２は、追加の例示的な実施形態に従って、割込み待ち時間に対する影響を最小限に抑えた温度抑制制御の実施の動作フロー図である。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって与えられる温度管理システムを含む。コンピュータ・システムのいずれかの部分が抑制状況に置かれると、抑制状況はシステム全体の性能を低下させる。割込みをどのくらい迅速に処理することができるか、および割込みを処理するのにどのくらい時間がかかるかという点で、性能の低下は割込みの待ち時間を増す。割込み待ち時間の増大は、全体としてシステムに重大な意味を持ち、従って、割込み待ち時間に対する温度抑制の影響を最小限に抑えることが望まれ、必要とされる。割込み待ち時間に対する温度抑制の影響を最小限に抑えることは、図３のＰＰＵ３０８等によるＰＰＵ抑制制御を対象とする機構である。図３のＳＰＵ３１０、３１１、および３１２等のＳＰＵは、割込みを行わず、従ってこの機構による影響は受けない。
【０１３１】
動作が開始すると、図４の温度管理制御状態マシン等の温度管理制御状態マシンは、全てのＰＰＵ割込みステータス・ビット、および図４の温度管理システム割込みマスク・レジスタ４３８等の温度管理システム割込みマスク・レジスタを監視する（ステップ１１０２）。温度管理システム割込みマスク・レジスタは、割込みの阻止を制御する。温度管理制御状態マシンは、阻止されていないいずれかの割込みが待ち状態であるか否かを判定する（ステップ１１０４）。待ち状態の割込みがない場合、または待ち状態の割込みがあるが阻止されている場合、動作はステップ１１０２に戻る。
【０１３２】
ステップ１１０４において、割込みが待ち状態で阻止されていない場合、温度管理制御状態マシンは、部分的スロットルまたはフル・スロットル状態に関わらず、一時的に抑制モードをディスエーブルする（ステップ１１０６）。抑制モードをディスエーブルすることによって、ＰＰＵは一時的にフル性能で動作し、温度抑制の効果によって引き起こされる遅延を伴うことなく待ち状態の割込みを処理することができる。再び、温度管理制御状態マシンは、全てのＰＰＵ割込みステータスおよび温度管理システム割込みマスク・レジスタを監視する（ステップ１１０８）。温度管理制御状態マシンは、阻止されていない待ち状態の割込みがあるか否かを判定する（ステップ１１１０）。待ち状態の割込みがない場合、または、待ち状態の割込みがあるが阻止されている場合、動作はステップ１１０８に戻る。ステップ１１１０において、割込みステータスがクリアすると、温度管理制御状態マシンはＰＰＵを元の抑制モードに復元させ（ステップ１１１２）、動作はステップ１１０２に戻る。
【０１３３】
割込みハンドラは、割込み処理ルーチンの開始時またはルーチンの終了時に、割込みステータス・ビットをクリアする選択を有する。割込みハンドラは、図３のパワー・プロセッサ要素３０１等のパワー・プロセッサ要素、またはパワー・プロセッサ要素が実行するソフトウェアに配置することができる。割込みハンドラが開始時に割込みステータス・ビットをクリアすることを選択してＰＰＵの性能劣化を回避したい場合、割込みハンドラは、割込みステータス・ビットをクリアする前に温度抑制をディスエーブルすることができる。すなわち、割込みは制御レジスタにおいて変化を引き起こさない。従って、抑制は引き続きイネーブルされるが、阻止されていない割込みが存在する場合、図４のＴＭＣＵ４０２等の温度管理制御ユニットによって一時停止される。割込みハンドラが割込み処理の前に割込みステータスをリセットしなければならない場合、ハンドラは抑制をディスエーブルする（または抑制量を許容可能レベルまで低減させる）ように制御レジスタを設定し、割込みをリセットし、割込みを処理し、次いで抑制を再びイネーブルするか、または抑制量の設定を以前のレベルに戻す。例示的な温度抑制ディスエーブルは、図４の温度管理制御レジスタ４３０等の温度管理制御レジスタを０ＸＸにセットすることによって行うことができる。Ｘは重要得ない（does not care）。割込みルーチンの終了時に、割込みハンドラは、温度管理制御レジスタの設定をその元の値に戻す。割込みハンドラが割込みルーチンの終了時に割込みステータス・ビットをクリアした場合、追加の作業は必要なく、割込みステータス・ビットがアクティブである限り温度管理制御状態マシンはＰＰＵを抑制モードには設定しない。
【０１３４】
図１３は、追加の例示的な実施形態に従った、温度抑制におけるヒステリシスのための動作のフロー図である。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。温度抑制におけるヒステリシスは、抑制および抑制終了等の変化と、その変化の応答または効果との間の時間のずれである。例えば、スロットリング・ポイントが７５℃にセットされ、スロットリング終了ポイントが７２℃にセットされている場合、ヒステリシスは７５℃から７２℃の範囲である。図５は温度抑制ヒステリシスを示す。
【０１３５】
図４の温度管理スロットル・ポイント・レジスタ４３２等の温度管理スロットル・ポイント・レジスタは、２つの温度設定値を提供する。すなわち、抑制温度および抑制終了温度である。抑制温度は、抑制終了温度よりも高く設定しなければならない。温度差は、抑制温度と抑制終了温度との間のヒステリシス量を規定し、このため、プログラム可能なヒステリシス量を規定する。
【０１３６】
例示的に、以下の考察は１つのＤＴＳに限定する。ヒステリシス温度抑制の動作が開始すると、温度管理制御状態マシンは、温度管理スロットル・ポイント・レジスタにおける抑制温度および抑制終了温度をセットする（ステップ１２０２）。温度管理制御状態マシンは、ＤＴＳの温度を検知する（ステップ１２０４）。温度管理制御状態マシンは、ＤＴＳからの検知温度が抑制温度以上であるか否かを判定する（ステップ１２０６）。検知温度が抑制温度以上でない場合、動作はステップ１２０４に戻る。ステップ１２０６において、検知温度が抑制温度以上である場合、温度管理制御状態マシンは抑制モードを開始する（ステップ１２０８）。
【０１３７】
再び、温度管理制御状態マシンは、ＤＴＳの温度を検知する（ステップ１２１０）。温度管理制御状態マシンは、ＤＴＳからの検知温度が抑制温度以上であるか否かを判定する（ステップ１２１２）。検知温度が抑制終了温度未満である場合、動作はステップ１２１０に戻る。ステップ１２１２において、検知温度が抑制終了温度未満である場合、温度管理制御状態マシンは抑制モードをディスエーブルし（ステップ１２１４）、動作はステップ１２０４に戻る。
【０１３８】
このため、温度が抑制温度以上に上昇すると、温度管理制御状態マシンは、温度管理制御レジスタが抑制モードを可能とするように適正に構成されていると想定して、ユニットを抑制モードに置く。温度管理制御状態マシンは、温度が抑制終了温度未満に下がるまで、ユニットを抑制モードのままとする。抑制終了温度が抑制温度より低い場合、識別されたヒステリシスによって、スロットル・モードがディスエーブルされる前にユニットは充分に冷えることができる。ヒステリシスがないと、ユニットは極めて頻繁に抑制モードに出たり入ったりし、全体的な抑制の効率およびプロセッサの効率が下がる可能性がある。
【０１３９】
プロセッサの抑制の例示的な方法は、命令の送出を妨害することによって達成することができる。抑制が極めて頻繁にイネーブルおよびディスエーブルされると、プロセッサのパイプラインで極めて頻繁に情報が送られ、このため処理性能が低下する恐れがある。プロセッサの抑制の別の例示的な方法は、クロック周波数を減速することによって達成することができる。
【０１４０】
図１４は、追加の例示的な実施形態に従ったサーマル・スロットリング・ロジックの実施の動作のフロー図を示す。図１４は、上述の図において説明したような完全な温度管理解決策を表す。前述のように、ＣｅｌｌＢＥチップは、図３の一般的なロジック・ユニット３５１によって提供される温度管理システムを含む。図４のＴＭＣＵ４０２等のＴＭＣＵは、多数の動的温度管理レジスタを含む。動的温度管理レジスタは、温度管理制御レジスタ、温度管理スロットル・ポイント・レジスタ、温度管理停止時間レジスタ、温度管理抑制スケール・レジスタ、および温度管理システム割込みマスク・レジスタであり、図４の温度管理制御レジスタ４３０（TS_CR1およびTM_CR2）、温度管理スロットル・ポイント・レジスタ４３２（TM_TPR）、温度管理停止時間レジスタ４３４（TM_STR1およびTM_STR2）、温度管理抑制スケール・レジスタ４３６（TM_TSR）、および温度管理システム割込みマスク・レジスタ４３８（TM_SIMR）等である。
【０１４１】
温度管理スロットル・ポイント・レジスタは、ＤＴＳのためのスロットル・ポイントを設定する。温度管理スロットル・ポイント・レジスタには、２つの独立したスロットル・ポイントをセットすることができる。すなわち、１つはＰＰＥのためであり、１つはＳＰＥのためのものである。また、このレジスタには、ＰＰＥまたはＳＰＥの抑制のイネーブルおよび抑制のディスエーブルまたは停止のための温度ポイントが含まれている。ＰＰＥまたはＳＰＥの実行抑制は、温度がスロットル・ポイント以上になった場合に開始する。抑制が終了するのは、温度が、抑制をディスエーブルする温度未満に下がった場合である。温度がフル・スロットルまたは停止温度に達すると、ＰＰＥまたはＳＰＥの実行を停止する。
【０１４２】
温度管理制御状態マシンは、温度管理停止時間レジスタおよび温度管理抑制スケール・レジスタを用いて、抑制の頻度および量を制御する。温度がスロットル・ポイントに達すると、温度管理制御状態マシンは、温度管理スケール・レジスタ内の対応するスケール値によって指定されるクロック数だけ、対応するＰＰＥまたはＳＰＥを停止させる。次いで、温度管理制御状態マシンは、対応するスケール値で乗算した温度管理停止時間レジスタ内の実行値によって指定されるクロック数だけ、ＰＰＥまたはＳＰＥを実行することができる。このシーケンスは、温度がディスエーブル・スロットリング未満に下がるまで継続する。
【０１４３】
温度管理制御状態マシンは、温度管理システム割込みマスク・レジスタを用いて、割込みが待ち状態の間にどの割込みがＰＰＥの抑制をディスエーブルするかを選択する。
【０１４４】
温度管理制御レジスタは、各ＰＰＥまたはＳＰＥごとに独立して抑制モードを独立して設定する。以下は、各ＰＰＥまたはＳＰＥごとに独立して設定することができる５つの異なるモードである。
【０１４５】
動的抑制ディスエーブル（コア・ストップ安全策を含む）。
正常動作（動的抑制およびコア・ストップ安全策はイネーブルされる）。
ＰＰＥまたはＳＰＥが常に抑制される（コア・ストップ安全策はイネーブルされる）。
コア・ストップ安全策ディセーブル（動的抑制はイネーブル、コア・ストップ安全策はディスエーブルされる）。
ＰＰＥまたはＳＰＥが常に抑制され、コア・ストップ安全策はディスエーブルされる。
【０１４６】
サーマル・スロットリング・ロジックを実施するための動作として、温度管理制御状態マシンは、温度管理スロットル・ポイント・レジスタにおいて抑制温度および抑制終了温度をセットする（ステップ１３０２）。温度管理制御状態マシンは、ＤＴＳの温度を検知する（ステップ１３０４）。温度管理制御状態マシンは、ＤＴＳからの検知温度が抑制温度以上であるか否かを判定する（ステップ１３０６）。検知温度が抑制温度以上でない場合、動作はステップ１３４０に戻る。検知温度が抑制温度以上である場合、温度管理制御状態マシンは抑制モードを開始する（ステップ１３０８）。
【０１４７】
次いで、温度管理制御状態マシンは、温度管理制御レジスタにおいて示される値が示す通りに、抑制のタイプによって抑制を制御する（ステップ１３１０）。いったん抑制タイプが示されると、温度管理制御状態マシンは、温度管理停止時間レジスタにおいて示される抑制量によって抑制を制限する（ステップ１３１２）。停止時間レジスタは、プロセッサが停止される時間とプロセッサが実行することができる時間との間の比すなわち抑制率をセットする。最後に、温度管理制御状態マシンは、温度管理スケール・レジスタにおいて指定された値によって、停止および実行の持続時間を調整する（ステップ１３１４）。この時点で、動作は同時動作すなわちステップ１３１６および１３２２に分かれる。ステップ１３１６において、温度管理制御状態マシンはＤＴＳの温度を検知する。温度管理制御状態マシンは、ＤＴＳからの検知温度が抑制温度以上であるか否かを判定する（ステップ１３１８）。検知温度が抑制終了温度以上である場合、動作はステップ１３１６に戻る。ＤＴＳが抑制終了温度未満である場合、温度管理制御状態マシンは抑制モードをディスエーブルし（ステップ１３２０）、動作はステップ１３０４に戻る。
【０１４８】
ステップ１３１４に戻ると、最後の抑制制限が実施された後、温度管理制御状態マシンは同時に、待ち状態である割り込みについて全てのＰＰＵ割込みステータスを監視する（ステップ１３２２）。抑制が実施されている間に割込みが発生すると、この割込みが処理されるまで、温度管理制御状態マシンは一時的にいかなる抑制モードもディスエーブルする。その後、部分的スロットルであるかフル・スロットルであるかには無関係に、抑制はイネーブルされ、動作はステップ１３０８に戻る。割込みステータスの監視に関する詳細な考察は、図１２に関連付けて述べた。
【０１４９】
従って、ＣｅｌｌＢＥチップに含まれる温度管理システムの温度割込みロジックは、ＣｅｌｌＢＥチップの温度条件を管理すると共にＣｅｌｌＢＥチップおよびその構成要素を保護するための動的な手段を提供する。
【０１５０】
例示的な実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアによる実施形態、またはハードウェアおよびソフトウェア要素の双方を含む実施形態という形を取ることができる。例示的な実施形態はソフトウェアにおいて具現化され、これはファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらには限定されない。
【０１５１】
更に、例示的な実施形態は、コンピュータまたはいずれかの命令実行システムによって用いるかまたはこれと組み合わせて用いるプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータ・プログラム製品の形態を取ることができる。この説明の目的のため、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって用いるかまたはこれと組み合わせて用いるプログラムを含有、ストア、伝達、伝搬、または転送することができるいずれかの有形の装置とすれば良い。
【０１５２】
この媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム（または装置またはデバイス）または伝搬媒体とすることができる。コンピュータ読み取り可能媒体の例は、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、固定磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤＲ／Ｗ）およびＤＶＤを含む。
【０１５３】
プログラム・コードのストアあるいは実行またはその両方に適したデータ処理システムは、システム・バスを介してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、バルク・ストレージ、および、少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含んで、実行中にバルク・ストレージからコードを検索する回数を減らすことができる。
【０１５４】
システムには、直接的に、またはＩ／Ｏコントローラを介入させて、入出力すなわちＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス等を含むがこれらには限定されない）を結合することができる。
【０１５５】
また、システムにネットワーク・アダプタを結合して、構内ネットワークまたは公衆ネットワークを介入させてデータ処理システムを他のデータ処理システムまたは遠隔プリンタまたはストレージ・デバイスに結合可能とすることも可能である。現在利用可能なタイプのネットワーク・アダプタの例として、モデム、ケーブル・モデム、およびイーサネット・カードが挙げられる。
【０１５６】
例示的な実施形態の記載は、例示および説明の目的のために提示したものであり、網羅的であったり、本発明を開示する形態に限定したりすることは意図していない。当業者には、多くの変更および変形が明らかであろう。実施形態は、想定される具体的な用途に適した様々な変更を有する様々な実施形態の代わりに、例示的な実施形態の原理、実際の用途を最も適切に説明するため、および、当業者が例示的な実施形態を理解することができるように、選択し記載した。
【図面の簡単な説明】
【０１５７】
【図１】例示的な実施形態の態様を実施することができるデータ処理システムのネットワークを表す図である。
【図２】例示的な実施形態の態様を実施することができるデータ処理システムのブロック図である。
【図３】例示的な実施形態の態様を実施することができるＣｅｌｌＢＥチップの例示的な図である。
【図４】例示的な実施形態に従った典型的な温度管理システムを示す。
【図５】例示的な実施形態に従った、割込みおよび動的抑制を行うことができる温度および様々なポイントを示すグラフである。
【図６】例示的な実施形態に従った、最大温度を記録するための動作のフロー図である。
【図７】別の例示的な実施形態に従った、性能モニタリングによって温度データを追跡するための動作のフロー図である。
【図８】追加の例示的な実施形態に従った、改良型の温度割込み発生のための動作のフロー図である。
【図９】追加の例示的な実施形態に従った、改良型の温度割込み発生のための動作のフロー図である。
【図１０】追加の例示的な実施形態に従った、温度管理システムにおいて顕著な省電力モードおよび一部良好をサポートするための動作のフロー図である。
【図１１】追加の例示的な実施形態に従った、温度には無関係に温度認識ソフトウェア・アプリケーションのリアルタイム試験を可能とする温度抑制制御機構のための動作のフロー図である。
【図１２】追加の例示的な実施形態に従った、割込み待ち時間に対する影響を最小限に抑えた温度抑制制御を実施するための動作フロー図である。
【図１３】追加の例示的な実施形態に従った、温度抑制におけるヒステリシスのための動作のフロー図である。
【図１４】追加の例示的な実施形態に従った、サーマル・スロットリング・ロジックの実施の動作フロー図である。
【符号の説明】
【０１５８】
１００  ネットワーク・データ処理システム
１０２  ネットワーク
１０４、１０６  サーバ
１０８  ストレージ・ユニット
１１０、１１２、１１４  クライアント
２００  データ処理システム
２０２  ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＭＣＨ）
２０４  サウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）
２０６  処理ユニット
２０８  メイン・メモリ
２１０  グラフィック・プロセッサ
２１２  ＬＡＮアダプタ
２１６  オーディオ・アダプタ
２２０  キーボードおよびマウス・アダプタ
２２２  モデム
２２３  リード・オンリ・メモリ（ＲＯＭ）
２２６  ハード・ディスク・ドライブ（ＨＤＤ）
２３０  ＣＤ−ＲＯＭドライブ
２３２  ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート
２３４  ＰＣＩ／ＰＣＩｅデバイス２３４が
２３８、２４０  バス
３００  ＣｅｌｌＢＥチップ
３０１  Power PC（登録商標）プロセッサ要素（ＰＰＥ）
３０２、３０３、３０４  シナジェスティック・プロセッサ要素（ＳＰＥ）
３０５、３０６、３０７  メモリ・フロー・コントローラ（ＭＦＣ）
３０８  PowerPC（登録商標）プロセッサ・ユニット
３０９  PowerPC（登録商標）ストレージ・サブシステム
３１０、３１１、３１２  シナジェスティック・プロセッサ・ユニット（ＳＰＵ）
３１９  エレメント相互接続バス（ＥＩＢ）
３２０  メモリ・インタフェース・コントローラ（ＭＩＣ）
３２３  ＣｅｌｌＢＥインタフェース・ユニット（ＢＥＩ）
４０４、４０６、４０８、４１０  分散型ＤＴＳ
４０２  温度管理制御ユニット
４１６  割込みロジック
４１８  スロットリング・ロジック
【図１】
2008004094.tif 000003
【図２】
2008004094.tif 000004
【図３】
2008004094.tif 000005
【図４】
2008004094.tif 000006
【図５】
2008004094.tif 000007
【図６】
2008004094.tif 000008
【図７】
2008004094.tif 000009
【図８】
2008004094.tif 000010
【図９】
2008004094.tif 000011
【図１０】
2008004094.tif 000012
【図１１】
2008004094.tif 000013
【図１２】
2008004094.tif 000014
【図１３】
2008004094.tif 000015
【図１４】
2008004094.tif 000016