JP2009510618A - 多コア・プロセッサによる信頼できるコンピューティング - Google Patents

多コア・プロセッサによる信頼できるコンピューティング Download PDF

Info

Publication number
JP2009510618A
JP2009510618A JP2008533529A JP2008533529A JP2009510618A JP 2009510618 A JP2009510618 A JP 2009510618A JP 2008533529 A JP2008533529 A JP 2008533529A JP 2008533529 A JP2008533529 A JP 2008533529A JP 2009510618 A JP2009510618 A JP 2009510618A
Authority
JP
Japan
Prior art keywords
core
cores
processor
task
core processor
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
JP2008533529A
Other languages
English (en)
Other versions
JP5535481B2 (ja
Inventor
ボーカー,シェーカー
ホスコテ,ヤティン
ガーヴァー,シュ−リン
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2009510618A publication Critical patent/JP2009510618A/ja
Application granted granted Critical
Publication of JP5535481B2 publication Critical patent/JP5535481B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

開示される主題の実施形態によれば、多コア・プロセッサ中のコアは、その動的プロファイルを取得および/またはリフレッシュするために定期的に試験されうる。コアの動的プロファイルとは、その最大動作周波数、電力消費、電力リーク、機能的な正しさおよびその他のパラメータについての情報ならびにこれらのパラメータの傾向情報を含みうる。ひとたび各コアについて動的プロファイルが生成されたら、多コア・プロセッサ中のコアはその特性に従って種々のビンにグルーピングされてもよい。動的プロファイルおよび前記グルーピング情報に基づき、オペレーティング・システム(OS)または他のソフトウェアは、タスクを、そのタスクのために最も好適なコアに割り当てうる。選択された諸コアの間での高いレベルの接続性を保証するよう、多コア・プロセッサ中の相互接続ファブリックが再構成されうる。さらに、環境の変化に応答して、あるタスクに対して諸コアが再割り当てされ、再バランスされてもよい。

Description

本開示は、概括的にはマイクロプロセッサに、より特定的には多くのコアをもつプロセッサに関する。
多コアプロセッサ(many-core processor)は複数の処理コアを同じダイ上にもつ。プロセス技術が非常に小さな大きさにスケールすると、プロセッサ周波数を上げることによって高パフォーマンスを達成する現在主流の設計手法は、劇的に増大した電力消費によって厳しく制限される。高パフォーマンスを達成する一つの代替的な設計手法は、典型的な「より大きな」コアより遅いスピードで並行して走る多くの「小さな」コアにアプリケーションを分散させることである。それぞれの「小さな」コアは、「大きな」コアよりも、より単純で、より小さく、食う電力がずっと少なく、それでいて著しいパフォーマンスを上げるので、この多コアに基づく設計手法は、大きなコアに基づく設計手法よりも効率的に電力消費を管理することを助けることができる。
多コア・プロセッサは単一コアまたは少数の大きなコアをもつプロセッサに対して利点を有するものの、プロセス技術が小さな大きさにスケールダウンするとともに多くの課題にも直面する。たとえば、静的であれ動的であれプロセス変動はトランジスタを信頼できなくする;記憶ノードでの静電容量が小さく、電圧が低いので、過渡エラー率が高くなりうる;時間の経過とともにトランジスタ劣化がひどくなりうるので、時間とともに信頼性は劣化しうる。そのような課題は、工場試験の間は良好に動作する多コア・プロセッサ中のコアが、時間とともに、前と同じくらい良好に動作しなかったり、完全に動作を停止したりする状況につながりうる。このため、伝統的なプロセッサに適用されているような、一度に行う工場試験およびバーンインは、多コア・プロセッサでの信頼できるコンピューティングを時間がたっても保証するにはそれほど効率的ではなくなる。したがって、多コア・プロセッサの寿命の間に、多コア・プロセッサ中のコアのパフォーマンスを定期的に試験し、こうして得られた試験データを、アプリケーションのためにそのパフォーマンスを改善するために使うことができることが望ましい。
開示される主題の特徴および利点は、該主題の以下の詳細な記述から明らかになるであろう。
本出願における開示される主題の実施形態によれば、多コア・プロセッサ中のコアは、その動的プロファイルを取得および/またはリフレッシュするために定期的に試験されうる。コアの動的プロファイルとは、その最大動作周波数、電力消費、電力リーク、機能的な正しさ(functional correctness)およびその他のパラメータについての情報を含みうる。動的プロファイルは、これらのパラメータの傾向情報(trending information)をも含みうる。それは、時間がたったときのコアの信頼性を示すものである。これらのパラメータは、多コア・プロセッサに組み込まれたモジュール、たとえば動作スピード測定モジュール、電力消費測定モジュール、温度センサーおよび機能的な正しさ検査モジュールなどによって取得されうる。各コアの機能的な正しさに関係する情報は、粗い粒度の機能的冗長性検査(FRC: functional redundancy checking)方式および/または細かい粒度のFRC方式を使うことによって取得されうる。各コアについての動的プロファイルは、コア自身のメモリ内に、あるいはコアの一部または全部によって共有されるメモリ内に記憶されうる。動的プロファイルが最初に取得されるとき、動的プロファイルは傾向情報は含まない。しかし、二回目の定期試験からは、傾向情報が取得され、のちの試験後に更新されうる。
ひとたび各コアについて動的プロファイルが生成されたら、多コア・プロセッサ中のコアはその特性に従って種々のビンにグルーピングされてもよい。たとえば、最大動作周波数が高いコアは高速コアとラベル付けされうる;電力消費が低いコアは低電力消費コアとラベル付けされうる;良好な傾向情報をもつコアは信頼できるコアとラベル付けされうる;などである。動的プロファイルおよび前記グルーピング情報に基づき、オペレーティング・システム(OS)または中間ソフトウェア層は、タスクを、そのタスクのために最も好適なコアに割り当てうる。たとえば、タスクが集約的な計算を要求する場合、そのタスクは高速コアに割り当てられうる。ひとたびある種の諸コアがそのタスクのために選択されると、選択された諸コアにわたって少なくとも受け容れ可能な帯域幅および遅延が達成されうるよう、選択された諸コアの間での高いレベルの接続性を保証するよう、多コア・プロセッサ中の相互接続ファブリック(interconnect fabric)が再構成されうる。さらに、OSは、環境の変化に応答してタスクにコアを割り当て直してもよく、相互接続ファブリックがしかるべく再構成されてもよい。
本明細書において、開示される主題の「一つの実施形態」または「ある実施形態」への言及は、その実施形態に関連して記載される特定の特徴、構造または特性が、開示される主題の少なくとも一つの実施形態に含まれることを意味している。よって、本明細書を通じて随所に現れる「ある実施形態では」の句の出現は、必ずしもみなが同じ実施形態を指すのではない。
図1は、例示的な多コア・プロセッサ100の構造を示している。プロセッサ100は、二次元(2D)相互接続ファブリック130上に座するコア(たとえばコア110)の8×8のアレイを有する。各コアは、そのローカルなメモリ(図示せず)を有しうる。相互接続ファブリック130に取り付けられた共有メモリ(たとえば120)もある。単一コアまたは少数コアしかもたないプロセッサに比べ、多コア・プロセッサ中のコアの数は多い。結果として、多コア・プロセッサ中の各コアの大きさは、単一コアまたは少数コア・プロセッサ中のコアに比べて小さい。図1が示す例示的なプロセッサ100は、64個のコアしかもたないが、多コア・プロセッサにおけるコアの数は変わることができ、64よりずっと多くてもよい(たとえば256、512、1024)。プロセッサ100はまた、各コアを周辺機器(たとえばグラフィック・デバイス)と接続するための入出力(I/O)相互接続(図示せず)をも有する。ある実施形態では、I/O相互接続は、プロセッサ・ダイにおけるコアすべてを取り囲んでいてもよい。別の実施形態では、I/O相互接続はコアの間に組み込まれてもよい。
典型的には、プロセッサは、パッケージングされたあと、適正にはたらくことを保証するよう試験される。しかしながら、将来の多コア・プロセッサについては、そのような一度きりの工場試験は、プロセス技術がスケールダウンする(たとえば35ナノメートル(nm)またはさらに細かいプロセス技術)ので、品質を保証するために十分ではないことがありうる。たとえば、コアの最大動作周波数は、エージングのため低下しうる。よって、多コア・プロセッサ内部のコアを定期的に試験し、そのプロセッサ上で走るアプリケーションをその試験データに適応させることが望ましい。定期的な試験からのデータを使用して、各コアについてプロファイルが生成されうる。該プロファイルは、各試験後に更新/リフレッシュされうるので、動的である。各コアの動的プロファイルは、そのコアの最大周波数、電力消費、電力リーク、機能的な正しさおよびその他のパラメータについての情報を含みうる。動的プロファイルはまた、これらのパラメータの傾向情報をも含みうる。
図2は、多コア・プロセッサ中の各コアについて動的プロファイリングを定期的に実行する動的プロファイリング装置200の例示的なブロック図を示している。装置200は、電力消費測定モジュール210、温度センサー220、動作スピード測定モジュール230、機能的な正しさ検査モジュール240、信頼性追跡モジュール250およびコントローラ260を有する。動的プロファイリング装置は、図2に示されたものに加えてコアの他のパラメータを測定するために使われる他のコンポーネントを含んでいてもよいことを注意しておく。動的プロファイリング装置のコンポーネントは、ファームウェアおよび/またはハードウェアにおいて実装されてもよく、多コア・プロセッサ内に記憶されていてもよい。
電力消費測定モジュール210は、コアの電力消費を、電力ウイルス(power virus)または他の電力ハングリーな(power hungry)アプリケーションを走らせることによって測定しうる。電力消費測定モジュールはまた、コアの電力消費を、コアによる電流ドレイン、電圧降下またさらにはコアの温度を測定することによって測定してもよい。ある実施形態では、多コア・プロセッサは、各試験の間にコア一つ一つの電力消費を逐次的または並列的に測定するために、一つの電力消費測定モジュールを有していてもよい。別の実施形態では、各コアが電力消費測定モジュールを有していてもよいし、あるいはいくつかのコアが一つの電力消費測定モジュールを共有する。温度センサー220は、電力消費測定モジュールと協働して、各コアによる電力消費から帰結する温度上昇を測定し、および/または多コア・プロセッサ中の各コアの電力リークを測定しうる。コアの電力リークは、コアの漏れ電流を通じて測定されうる。漏れ電流は、前記温度およびコアの電圧降下と組み合わせて、そのコアの電力リークおよび傾向情報を取得するために使用されうる。温度センサー220は、多コア・プロセッサのダイにわたる温度変動を判別し、ダイにおけるホット・スポットを同定するためにも使用されうる。そうして取得された情報は、どのコアが他のコアより多くの熱を生成しているかを示しうる。よって、OSは、より多くの熱を生成する傾向のあるコアに集中するのを避けるよう、しかるべくタスクにコアを割り当てうる。
動作スピード測定モジュール230は、コアの電圧供給および位相ロック・ループ(PLL)クロック周波数を動的に変えることによって、コアの最大動作周波数を測定しうる。典型的には、電圧増はコアの動作周波数を上げるのを助ける。コアの最大動作周波数は、コアに供給されうる電圧の上限のもとで、PLLクロック周波数がそれ以上上げられなくなるまでPLLクロック周波数を逓増させることによって得られうる。一つのコアの動的プロファイルは、一組の動作周波数を維持しうる。個々の動作周波数は、ある電圧値のもとでの最大動作周波数である。動作周波数測定モジュールは、電力消費測定モジュールおよび温度センサーと協働して、協調してコアの電力消費および電力リークならびに最大動作周波数を測定しうる。
機能的な正しさ検査モジュール240は、コア・レベルの機能検査方式を使うことによって、何らかのエラー(errors)または欠陥(faults)を動的に検出しうる。そのような方式が使われるとき、第二のコア、「チェッカー」が、「マスター」コアとロックステップで実行される。チェッカーはマスターの出力をサンプリングし、それらの値を内部的に計算した値と比較し、不一致が起こったらエラー信号をアサートする。チェッカーは他の動作もしていてもよい。こうして、それは単にFRC方式におけるような冗長コアではなく、同時に他の有用な仕事をしている。チェッカーからの結果がマスターからの結果に一致しないときに計算を再実行するために第三のコアが使用されてもよい。第三のコアからの結果がチェッカーまたはマスターのいずれかからの結果に一致する場合、チェッカーとマスターとのうちで、第三のコアからの結果に不一致な結果を与えたコアが、エラーを起こしているコアであると同定されうる。第三のコアからの結果がチェッカーからの結果にもマスターからの結果にも一致しない場合は、第三のコア自身が欠陥があることがありえ、計算を再実行するために第四のコアが必要とされることがありうる。このプロセスは、計算を再実行する追加的なコアからの結果がチェッカーまたはマスターのいずれかからの結果に一致するまで続けられうる。欠陥があるまたは遅いプロセッサは、適切なタスク割り当てのため、特定の欠陥ビンに置かれるよう、フラグが立てられる。
機能的な正しさ検査モジュールは、細かい粒度レベル(たとえば1サイクルまたは数サイクル毎)で、あるいは粗い粒度レベル(たとえば100サイクル毎)で結果を検査しうる。機能的な正しさ検査モジュールは、失敗した試験の割合、エラーの数などといった粗い粒度の情報ならびにどの機能ブロックまたは命令がエラーを与えるかといった細かい粒度の情報を取得しうる。FRCベースの機能的な正しさ検査は、図3Aおよび図3Bに示されるように二つの隣り合うコアの間で実行されうる。機能的な正しさ検査のためのペアの割り当ては定期的に変えられてもよい(たとえば図3Aに示す割り当てから図3Bに示す割り当てに)。ある欠陥コアが常に、ある正しく機能しているコアを検査する可能性を減らすためである。もう一つの実施形態では、FRCベースの機能的な正しさ検査をプロセッサ内の他のすべてのコアについて実行するために、若干のコアが選択されてもよい。それらの選択されたコアは、それらの間でも機能的な正しさ検査を実行する(たとえば、自分たちの間でのペアごとの検査)。機能的な正しさ検査モジュールは、どのように検査を実行するか、ペアごとの検査が使われるかどうかおよびいつペアが変えられるか、あるいは検査を実施するためにいくつかのコアが選択されるかどうかを決定しうる。
機能的な正しさ検査モジュールは、通常動作の間に検査を実行しうる。その際、計算結果が規則的なチェックポイントで検証される。これらの検査は、機能的な精度よりも電力消費のほうが重要な因子でありうるような、非クリティカル・アプリケーションについては待機モードで実行されることもできる。例は、携帯機器で走るグラフィック・アプリケーションである。機能上の検査は、コアの各機能モードを系統的に検査するユーザー・アプリケーション・プログラムまたは事前に特徴付けられた試験ルーチンを使うことができる。機能的な正しさ検査の間に見出されたエラーは、過渡的または静的のいずれでもありうる。同じ検査を再実施することによって過渡的エラーは静的エラーから区別されうる。再検査後にエラーが消えていれば、これらのエラーは過渡的であり、そうでなければこれらのエラーは静的である。過渡的エラーは静的エラーほど有害ではないかもしれないが、過渡的エラーを受けやすいコアは、より緊密なモニタリングのためにフラグを付けてもよい。
図2に示されるような信頼性追跡モジュール250は、組み込まれたルーチンを使用して、最大動作周波数、電力消費および電力リーク、機能上のエラーのレートなどといったパラメータの傾向情報を取得しうる。傾向情報は最初の試験後には手にはいらないことがありうる。二番目の試験後、二番目の試験の結果が最初の試験の結果と比較されて、両試験の間の変化が取得されうる。典型的には、傾向情報は時間がたつにつれて、より多くのデータが利用できるので、より信頼できるものになる。
コントローラ260は、動的プロファイリング装置200中の種々のコンポーネントの間の調整をし、それらのコンポーネントの動作を制御しうる。たとえば、コントローラは、動的プロファイリングのための試験をトリガーしうる。ひとたび試験がトリガーされると、種々のコンポーネント(たとえば、電力消費測定モジュールおよび動作スピード測定モジュール)がそれらの対応するパラメータの測定を開始しうる。ある実施形態では、コントローラは、動的プロファイリングするための試験を、定期的に自分でトリガーしうる。もう一つの実施形態では、OSがコントローラに試験をトリガーすることを要求してもよい。
さらに、コントローラは、各試験の間、各コンポーネントによる測定のタイミングを制御しうる。たとえば、コントローラは、温度センサーに、試験アプリケーション(たとえば電力ハングリーなアプリケーション)が一定期間走るまで待ってから温度測定をするよう依頼しうる。また、コントローラは、試験の間、何も実行しないようコンポーネントに命じてもよい。たとえば、いちばん最初の試験の間、コントローラは信頼性追跡モジュールに、何も実行しないよう依頼してもよい;そしてコントローラはまた、信頼性追跡モジュールに、単一試験毎ではなく数回の試験毎に傾向情報を取得するよう要求してもよい。さらに、コントローラは、コンポーネントに、所望される情報を得るようある方法を使うよう指令してもよい。たとえば、コントローラは、機能的な正しさ検査モジュールに、検査を実施するために前記ペアごとの方法を使い、一定回数の試験後にペアを変更するよう指令してもよい。さらに、コントローラは、種々のコンポーネントの間で、あるパラメータを取得するよう調整してもよい。たとえば、コントローラは、コアの電力消費、電圧、電力リークおよび動作スピードの間の関係を取得するよう、電力消費測定モジュール、温度センサーおよび動作スピード測定モジュールの間で調整してもよい。
図2には示していないが、動的プロファイリングの間に取得された情報は、多コア・プロセッサ中の共有メモリ内に記憶されてもよい。共有メモリのあらかじめ定義されたセクタが、すべてのコアについての動的プロファイルを記憶するために指定されてもよい。動的プロファイルは、OSおよび/または他のアプリケーションによってアクセスされうる。
ある実施形態では、あるコアについての動的プロファイルは、図3A〜図3Bに示されるように隣のコアによって構築されうる。たとえば、各コアは、その隣のコアの電力消費および電力リークを測定するために使うことのできる電力消費測定モジュールを有していてもよい。動的プロファイルを構築するためのペアの割り当ては、規則的に変えられてもよい(たとえば図3Aに示す割り当てから図3Bに示す割り当てに)。ある欠陥コアが常に、ある正しく機能しているコアについて誤ったプロファイルを構築する可能性を減らすためである。もう一つの実施形態では、いくつかのコアがプロファイル・ビルダーとして指定されてもよい。これらのプロファイル・ビルダーは、自分たちの間で互いについて他のコアについての動的プロファイルを構築する。
図4は、多コア・プロセッサ中の各コアについて動的プロファイリングを実行するための一つの例示的なプロセス400のフローチャートを示す。ブロック410では、試験が開始されうる。試験は定期的に(たとえば1時間毎に)開始されてもよいし、あるいはOSによって任意の時刻に開始されてもよい。ブロック420では、各コアによる電力消費が測定されうる。ブロック430では、各コアの最大動作スピードが測定されうる。各レベルの電圧での最大動作スピードが測定されうる。ブロック440では、各コアのダイ領域にわたる温度が測定され、ホット・スポットおよび温度変動が同定されうる。ブロック450では、機能的な正しさ検査が実行されうる。ブロック420ないし450は図4では解説のため別個に示されているが、これらのブロックにまつわる機能は逐次的に実行されても、並列に実行されても、あるいはインターリーブされた仕方で実行されてもよい。さらに、各コアの動的プロファイルのためのさらなるパラメータまたは該パラメータ間の関係を取得するために実行される他の動作があってもよい。
ブロック460では、ブロック420ないし450で実行される機能から得られるデータから、コアを特徴付けるさらなるパラメータが導出されうる。ブロック460のところに形成される機能は、これまでのブロック(たとえばブロック420またはいくつかのブロックの組み合わせ)において実行される機能とマージされてもよい。ブロック470では、現在の試験の間に得られたパラメータと以前の試験から得られたパラメータとを比較することによって、傾向情報が取得されうる。これは、第二の試験から始まって実行される。コアの信頼性は、コアを特徴付けるパラメータの傾向情報によって示されうる。ブロック480では、各コアについて、すべてのパラメータおよびその傾向情報を含む動的プロファイルが取得され、保存されうる。このブロックは、解説上の目的のため、他のブロックとは別個に示されていることを注意しておく。実際上は、パラメータは、ひとたび取得されたら記憶されるのでもよい。
図5は、多コア・プロセッサが使用されうるある例示的なコンピューティング・システム500を示している。コンピューティング・システム500は、システム相互接続515に結合された一つまたは複数のプロセッサ510を有しうる。プロセッサ510は、各コアについて動的プロファイルを構築するための動的プロファイリング装置を有する多コア・プロセッサでありうる。動的プロファイルは、動的プロファイリング装置自身によって開始される定期的試験を通じて構築されても、あるいはOSによって開始される試験を通じて構築されてもよい。各動的プロファイルは、コアの最大動作周波数、電力消費、電力リーク、機能的な正しさおよび他のパラメータについての情報を含みうる。動的プロファイルは、これらのパラメータの傾向情報をも含みうる。
コンピューティング・システム500は、システム相互接続515に結合されたチップセット530をも含んでいてもよい。チップセット530は、一つまたは複数の集積回路パッケージまたはチップを含みうる。チップセット530は、コンピューティング・システム500の他のコンポーネント560へのおよび/または他のコンポーネント560からのデータ転送をサポートするために、一つまたは複数のデバイス・インターフェース535を有しうる。たとえば、BIOSファームウェア、キーボード、マウス、記憶装置、ネットワーク・インターフェースなどといったものである。チップセット530は、周辺コンポーネント相互接続(PCI)バス570に結合されていてもよい。チップセット530は、PCIバス570にインターフェースを提供するPCIブリッジ545を含んでいてもよい。PCIブリッジ545は、プロセッサ510および他のコンポーネント560と周辺機器との間のデータ経路を提供してもよい。周辺機器とはたとえば、オーディオ装置580およびディスク・ドライブ590といったものである。図示しないが、他の装置もPCIバス570に結合されていてもよい。
さらに、チップセット530は、メイン・メモリ550に結合しているメモリ・コントローラ525を有しうる。メイン・メモリ550は、データおよびプロセッサ510またはシステムに含まれる他の任意の装置によって実行される命令のシーケンスを保存しうる。メモリ・コントローラ525は、プロセッサ510およびコンピューティング・システム500内の他の装置に関連したメモリ・トランザクションに応答して、メイン・メモリ550にアクセスしうる。ある実施形態では、メモリ・コントローラ550は、プロセッサ510または他の何らかの回路内に位置されうる。メイン・メモリ550は、メモリ・コントローラ525がデータを読み出しおよび/または書き込みうるアドレス指定可能な記憶位置を提供するさまざまなメモリ・デバイスを含みうる。メイン・メモリ550は、動的ランダム・アクセス・メモリ(DRAM)デバイス、同期DRAM(SDRAM)デバイス、二倍データレート(DDR)SDRAMデバイスまたは他のメモリ・デバイスといった一つまたは複数の異なる型のメモリ・デバイスを含んでいてもよい。
図6は、多コア・プロセッサが使用されうるもう一つの例示的なコンピューティング・システム600を示している。システム600は、プロセッサ0 620Aのような複数プロセッサを含みうる。システム600内の一つまたは複数のプロセッサは多数のコアを有しうる。多コア・プロセッサ(単数または複数)は、各コアについて動的プロファイルを構築するための動的プロファイリング装置を有しうる。動的プロファイルは、動的プロファイリング装置自身によって開始される定期的な試験を通じて、あるいはOSによって開始される試験を通じて構築されうる。各動的プロファイルは、コアの最大動作周波数、電力消費、電力リーク、機能的な正しさおよび他のパラメータについての情報を含みうる。動的プロファイルはまた、これらのパラメータの傾向情報をも含みうる。システム600内の諸プロセッサは、システム相互接続610を使って互いに接続されうる。システム相互接続610は、フロント・サイド・バス(FSB)でありうる。各プロセッサは、システム相互接続を通じて、入出力(IO)デバイスならびにメモリ630に接続されうる。
図7は、多コア・プロセッサが使用されうるさらにもう一つの例示的なコンピューティング・システム700を示している。システム700では、複数プロセッサ(たとえば720A、720B、720Cおよび720D)を接続するシステム相互接続710はリンクベースのポイントツーポイント接続である。各プロセッサは、リンクス・ハブ(links hub)(たとえば730A、730B、730Cおよび730D)を通じたシステム相互接続に接続しうる。いくつかの実施形態では、リンクス・ハブは、システム・メモリに出入りするトラフィックを調整するメモリ・コントローラと共位置でもよい。一つまたは複数のプロセッサが多くのコアを有していてもよい。多コア・プロセッサ(単数または複数)は、各コアについて動的プロファイルを構築するための動的プロファイリング装置を有しうる。動的プロファイルは、動的プロファイリング装置自身によって開始される定期的な試験を通じて、あるいはOSによって開始される試験を通じて構築されうる。各動的プロファイルは、コアの最大動作周波数、電力消費、電力リーク、機能的な正しさおよび他のパラメータについての情報を含みうる。動的プロファイルはまた、これらのパラメータの傾向情報をも含みうる。
図8は、タスク実行の効率を改善するために多コア・プロセッサ中の各コアの動的プロファイルを使う例示的なシステム800のブロック図を示している。システム800は、多コア・プロセッサ中のコアすべてについての動的プロファイル810、コア・ビン分けモジュール820、タスク・コントローラ830、再構成器840およびパフォーマンスおよび電力マネージャ850を有しうる。動的プロファイル810は、図2に記載されたような動的プロファイリング装置によって構築およびリフレッシュされうる。動的プロファイルは、多コア・プロセッサ内のコアによって供給されるメモリの指定されたセクション内に保存されうる。動的プロファイルはOSによってアクセス可能である。
コア・ビン分けモジュール820は、多コア・プロセッサ中のコアを、動的プロファイル内の一つまたは複数のコア特徴付けパラメータに従って一つまたは複数のビンにグループ化しうる。たとえば、動的プロファイルに基づいて、いくつかのコアが高速コアに割り当てられてもよく、いくつかが低速コアに割り当てられてもよく、他のものが予備コアとしてリザーブされてもよい。ビンの数は、特定のビン内のコアの数のよりよいコントロールを得るために調整されてもよい。コアは、時間がたつと、そのパフォーマンスの劣化のため、高速プールから低速プールに移動されてもよい。これが起こるとき、そのビン・レベルにおいて、当該プロセッサのパフォーマンスを維持するため、いくつかのオプションを追求しうる。予備のコアが高速プールに加えられてもよいし、あるいは既存のコアが、電圧スケーリングまたはボディ・バイアス調整技法を使って、より高い周波数で走らされてもよい。
もう一つの例では、コアは、その電力消費のレベルに従って、あるいは信頼性パラメータのような他のパラメータに従ってビンにグループ分けされてもよい。さらにもう一つの例では、コアは異なる複数のセットのビンにグループ化されてもよい:一つのセットは動作スピードに基づくもの、一つは電力消費レベルに基づくもの、一つは信頼性パラメータに基づくもの、などである。ある実施形態では、コアは動的プロファイルが構築されたあと、異なる複数のセットのビンにグループ化されてもよい。ビン分けプロセスは、多コア・プロセッサ内に組み込まれたソフトウェア/ファームウェア・モジュールによって実行されうる。もう一つの実施形態では、ビン分けプロセスは、タスクがOSによって受け取られるときに実行されうる。それにより、コアは、タスクの特定の要求に従ってビンにグループ化されうる。たとえば、あるタスクが非常に計算集約的である場合、コアは、その動作スピードに従ってビンにグループ化されうる;あるタスクがバッテリーで実行される場合、コアは、その電力消費レベルに従ってビンにグループ化されうる。さらにもう一つの実施形態では、コア・ビン分けモジュールは、コアを、動的プロファイルがすべてのコアについて構築されたあとで、動作スピードおよび電力消費といったいくつかのパラメータに従って少数の基本的なビンにグループ化してもよく、タスクが受け取られるときにOSの指令のもとにそのタスクの個別的な要求に従って他のビンのセットにグループ化してもよい。個別的なタスク(単数または複数)のために形成されるビンは、そのタスクが完了したのち、解体されても、保持されてもよい。
コアの特性が、ある試験と別の試験とで変わりうるので、種々のビンにわたる諸コアは、各試験後にシャッフルし直す必要があることがある。および/または、元来あるビンにはいったが、新たな試験後にはそのビンの基準を満たさなくなったコアの条件を調整して、そのビンにそのまま居続けられるようにしてもよい。たとえば、コアの電圧を上げれば、その動作スピードが上がりうるし、コアの電圧および/またはスピードを下げれば、そのコアの電力消費が低下しうる。
図8に示されるようなタスク割り当て器830は、コアの現在の動的プロファイルに基づいて、タスクをコアに割り当て、および/または動的に再割り当てしうる。ある実施形態では、各タスクの要求はタスク・カテゴリーに基づいてあらかじめ決定されてもよい。たとえば、タスクがリアルタイムで大量のデータを処理することであれば、そのタスクは高速コアを要求しうる;タスクが、プロセッサがバッテリー電力で動作中に実行されるものであれば、そのタスクは低レベルの電力消費をもつコアを要求しうる。もう一つの実施形態では、OSがタスクを解析してその要求を判別してもよい。各タスクの要求に基づいて、タスク割り当て器はタスクを、対応する特性をもつコア(単数または複数)に、あるいはタスクの要求が満たされるような異なるコアの組み合わせに割り当てうる。コア・プロファイルがタスクの実行中に変わる場合、タスク割り当て器は、そのタスクに割かれるパフォーマンス・レベルを維持するために、その割り当てを動的に変えてもよい。
再構成器840は、異なるコアの間で相互接続を再構成しうる。多コア・プロセッサ(図1に示されるような)における相互接続ファブリックは、コアの各ビンから良好な恩恵を導出するよう再構成可能であってもよい。コアのある特定のビンへの帰属は時間がたつと変わりうるので、静的なファブリックではコア間の帯域幅および遅延は幅広い揺動を受ける。こうして、柔軟かつ動的に再構成可能なファブリックを有することが望ましい。ビン内のコアの混合が変更されるチェックポイント毎に、ビン内の諸コアにわたる利用可能な帯域幅および遅延が評価されてもよく、必要なら、高いレベルの接続性を維持するためにファブリックが再構成されてもよい。ダイ上の諸コアの物理的な位置は変わらないながら、同じビン内の諸コアが互いに論理的に近接するよう、ファブリックをなすスイッチが再構成されてもよい。複数コア、予備コアのプールおよび接続性の高いファブリックの利用可能性は、欠陥からの、最小限のパフォーマンス劣化での迅速な回復を可能にする。試験によってある特定のコアについて問題が同定されるやいなや、そのコアは供用停止され、アクティブなサービスから外されうる。予備のプールからのコアがその代わりとなりうる。したがって、相互接続ファブリックも、欠陥コアがサービスから脱落することの効果を緩和するよう再構成されてもよい。これは、プロセッサが、変動および劣化に起因する欠陥を許容する能力を著しく改善する。
図8に示されるようなパフォーマンスおよび電力マネージャ850は、変化する環境に応じて、タスクをコアの異なる組み合わせに割り当て直し、あるいは同じセットの諸コアを再バランスしうる。電源電力からバッテリー電力にシステムを移行することは、タスクを、よりリークが少なく、より消費電力が少ないコアに割り当て直すことが必要となりうる例である。多数の電力ハングリーなアプリケーションに起因するシステム負荷の増大も、コア間での作業負荷の再バランスを必要とすることがありうる。こうして、コア・プロファイル自身に加えて、システムおよび環境の因子が、コアの動的管理において考慮される必要がある。パフォーマンス要求をもつ単一コア・プロセッサについて電圧、周波数、ボディ・バイアスをバランスさせる技法は、利用可能なコアの数の追加的な最適化変数とともに、多コア環境に適用されうる。たとえば、スピード段階変化(stepping)技法は、変化する状況に応じてタスクに割り当てられるコアを再バランスさせるために使用されうる。この場合、コアのスピードが、その電圧供給を下げるか上げるかすることにより、それぞれ下げるか上げるかされうる。そしてコアの電力消費は、その動作スピードおよび/またはその電圧供給を下げることによって低下させられうる。
図9は、多コア・プロセッサについてパフォーマンスおよび電力消費の管理の一例を示している。この図のx軸はGFLOP単位でのパフォーマンスを示し、y軸は一群のコアによって消費される電力を示している。図中の曲線は、異なるコア数について、パフォーマンスと電力消費の間の関係を表す。曲線910は、コア数64(たとえば8×8)の場合を表し、曲線920はコア数80(たとえば8×10)の場合を表し、曲線930はコア数96(たとえば8×12)の場合を表す。使われるコアが多いほど、パフォーマンスはよくなり、電力消費は少なくなることが示される。これは、使われるコアが多くなると、各コアが並列に低電圧で走って同じまたはよりよいパフォーマンス(使われるコア数がより少なく、各コアが高い電圧で走る状況と比べて)を達成でき、よって総合的な電力消費が低下されうるからである。したがって、変化する環境が電力消費が引き下げられることを要求するとき、パフォーマンスおよび電力マネージャはより多くのコアを使い、各コアへの電圧供給を下げるよう決定しうる。
図10は、タスク実行の効率を改善するために多コア・プロセッサ中の各コアの動的プロファイルを使うための例示的なプロセス1000のフローチャートを示している。プロセス1000は、多コア・プロセッサ中のコアの動的プロファイルが構築されたのちに実行されうる。ブロック1010では、タスクがOSによって受領されうる。ブロック1020では、OSはタスクを解析してその要求(たとえばパフォーマンスおよび電力上の要求)を判別しうる。タスクの要求を判別するある例示的な手法は、タスクによって処理されるべきデータを見ることである。たとえば、リアルタイムで処理されるべき大量のデータがあれば、そのタスクはおそらく高速コアを必要とする。状況によっては、タスクの要求が何らかの所定のタスク・カテゴリーに基づいて事前に特徴付けられているため、OSがタスクの要求を判別するためにタスクを解析する必要はないこともありうる(たとえば、バッテリーを電源とするモバイル・アプリケーションは、低電力消費を要求するものとして事前に特徴付けされうる)。ブロック1030では、多コア・プロセッサ中のコアが、コアの動的プロファイルおよびタスクの要求に基づいて、異なる複数のビンにグループ化されうる。ある実施形態では、このブロックでのビン分けプロセスは、タスクが受け取られさえしないうちに部分的または完全に実行されうる。
ブロック1040では、タスクがそのタスクの要求を満たせるような特性をもつコアに割り当てられうる。ブロック1050では、多コア・プロセッサにおける相互接続ファブリックが再構成されて、同じタスクを実行するコアどうしが接続されて、利用可能な帯域幅を増し、それらにわたる遅延を減らすようにされうる。ブロック1060では、タスクが実行されうる。タスクを実行するプロセスの間、変化する環境により、そのタスクへの異なるセットの諸コアの再割り当ておよび/または同じセットの諸コアの再バランスがトリガーされうる。
開示される主題の例示的な実施形態が図1ないし図10のブロック図および流れ図を参照して記載されているが、当業者は開示される手段を実装する他の多くの方法が代わりに使用されうることを容易に理解するであろう。たとえば、流れ図におけるブロックの実行順序は変更してもよいし、および/または記載されるブロック図/流れ図におけるブロックのいくつかは変更されたり、消去されたり、組み合わされたりしてもよい。
上記の記述において、開示される主題のさまざまな側面が記載されてきた。主題の十全な理解を与えるために、説明の目的上、個別的な数字、システムおよび構成が述べられた。しかしながら、本開示の恩恵を有する当業者には、主題が個別的な詳細なしで実施されうることは明らかである。他方、よく知られた特徴、コンポーネントまたはモジュールは、開示される主題をかすませないために、省略されたり、単純化されたり、組み合わされたり、分割されたりした。
開示される主題のさまざまな実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせにおいて実装されることができ、プログラム・コードを参照して、あるいはプログラム・コードとの関連で記載されてもよい。プログラム・コードとは、命令、関数、手続き、データ構造、論理、アプリケーション・プログラム、設計のシミュレーション、エミュレーションおよび製造のための設計表現またはフォーマットといったもので、機械によってアクセスされると、該機械が、抽象的なデータ型または低レベルのハードウェア・コンテキストを定義するタスクを実行する、あるいは結果を生じるという結果を生じるものである。
シミュレーションのためには、プログラム・コードは、ハードウェア記述言語または他の機能記述言語を使ってハードウェアを表現してもよい。機能記述言語とは、本質的には、設計されたハードウェアがどのように実行されると期待されるかのモデルを提供するものである。プログラム・コードは、アセンブリまたは機械語、あるいはコンパイルおよび/またはインタープリットされうるデータであってもよい。さらに、当技術分野では、ソフトウェアが何らかの形で動作するとか結果を引き起こすといった言い方が普通にされる。そのような表現は単に、プログラム・コードの処理システムによる実行がプロセッサをして動作を実行させ、あるいは結果を生じさせることを述べる短縮された言い方に過ぎない。
プログラム・コードはたとえば、揮発性および/または不揮発性メモリ内に保存されうる。該メモリはたとえば、記憶装置および/または付随する機械可読もしくは機械アクセス可能媒体であり、半導体メモリ、ハード・ドライブ、フロッピー(登録商標)・ディスク、光記憶、テープ、フラッシュメモリ、メモリースティック、デジタル・ビデオ・ディスク、デジタル多用途ディスク(DVD)などが含まれる。さらには機械アクセス可能な生物学的状態保存記憶(biological state preserving storage)といったより変わった媒体も含まれる。機械可読媒体は、機械によって可読な形の情報を保存、送信または受信するためのいかなる機構をも含みうる。該媒体は、プログラム・コードをエンコードしている電気的、光学的、音響学的または他の形の伝搬される信号または搬送波が通りうる、アンテナ、光ファイバー、通信インターフェースなどといった具体的な媒体を含みうる。プログラム・コードはパケット、シリアル・データ、パラレル・データ、伝搬信号などの形で伝送されてもよく、圧縮されたまたは暗号化されたフォーマットで使われてもよい。
プログラム・コードは、移動型または静止型コンピュータ、携帯情報端末、セットトップボックス、携帯電話およびポケベルならびにその他の電子機器といったプログラム可能機械上で実行されるプログラムにおいて実装されてもよい。そうしたプログラム可能機械のそれぞれは、プロセッサ、該プロセッサによって可読な揮発性および/または不揮発性メモリ、少なくとも一つの入力装置および/または一つまたは複数の出力装置を含んでいる。プログラム・コードは、記載された諸実施形態を実行し、出力情報を生成するために、入力装置を使って入力されたデータに適用されうる。出力情報は、一つまたは複数の出力装置に適用されうる。当業者は、開示される主題の諸実施形態が、さまざまなコンピュータ・システム構成で実施できることを理解しうる。そうした構成には、マルチプロセッサまたは複数コアプロセッサ・システム、ミニコンピュータ、メインフレーム・コンピュータならびに実質的にいかなる機器にも組み込まれうる浸透型(pervasive)またはミニチュア・コンピュータまたはプロセッサが含まれる。開示される主題の実施形態はまた、タスクが通信ネットワークを通じてリンクされているリモートな複数の処理装置によって実行されうる、分散されたコンピューティング環境においても実施できる。
動作は逐次的な処理として記載されていることもあるが、動作の一部は実際には並列に、並行しておよび/または分散環境で、単一または複数プロセッサ機械によるアクセスのためにローカルおよび/またはリモートに保存されたプログラム・コードで実行されてもよい。さらに、いくつかの実施形態では、動作の順序は、開示される主題の精神から外れることなく再配列されうる。プログラム・コードは、組み込まれたコントローラによって、あるいは組み込まれたコントローラとの関連で使用されてもよい。
開示される主題は、例示的な実施形態を参照しつつ記載されてきたが、本記載は限定的な意味に解釈されることは意図されていない。開示される主題に係る技術分野の当業者に明らかな例示的な実施形態のさまざまな修正および主題の他の実施形態は、開示される主題の範囲内であると見なされる。
例示的な多コア・プロセッサを示す図である。 多コア・プロセッサ中の各コアについて動的プロファイリングを定期的に実行する動的プロファイリング装置の例示的なブロック図である。 多コア・プロセッサにおいて動的プロファイリングを実行する例を示す図である。 多コア・プロセッサにおいて動的プロファイリングを実行する例を示す図である。 多コア・プロセッサ中の各コアについて動的プロファイリングを実行する例示的なプロセスのフローチャートを示す図である。 多コア・プロセッサが使用されうる例示的なコンピューティング・システムを示す図である。 多コア・プロセッサが使用されうるもう一つの例示的なコンピューティング・システムを示す図である。 多コア・プロセッサが使用されうるさらにもう一つの例示的なコンピューティング・システムを示す図である。 タスク実行の効率を改善するために多コア・プロセッサ中の各コアの動的プロファイルを使うシステムの例示的なブロック図である。 多コア・プロセッサについてのパフォーマンスおよび電力消費の管理の一例を示す図である。 タスク実行の効率を改善するために多コア・プロセッサ中の各コアの動的プロファイルを使うための例示的なプロセスのフローチャートである。

Claims (22)

  1. 多コア・プロセッサであって:
    複数の処理コアと;
    相互接続ファブリックと;
    少なくとも一つのメモリ・モジュールと;
    当該多コア・プロセッサ中の各コアの特性を動的にプロファイリングするプロファイリング・モジュールとを有しており、
    前記複数のコアおよび前記少なくとも一つのメモリ・モジュールが前記相互接続ファブリックに結合されている、多コア・プロセッサ。
  2. 請求項1記載のプロセッサであって、前記プロファイリング・モジュールが:
    前記多コア・プロセッサ中の各コアによる電力消費を、種々の電圧および種々のスピードのもとで定期的に測定する電力消費測定モジュールと;
    前記多コア・プロセッサ中の各コアの最大スピードを、種々の電圧のもとで定期的に測定する動作スピード測定モジュールと;
    前記多コア・プロセッサ中の各コアの信頼性情報を、少なくとも部分的に前記多コア・プロセッサ中の各コアの前記の測定された電力消費データおよび最大スピードに基づいて取得する信頼性追跡モジュールとを有する、
    プロセッサ。
  3. 温度分布を測定し、前記多コア・プロセッサ中の各コアのダイ領域および前記相互接続ファブリックにわたるホット・スポットを同定するための少なくとも一つの温度センサーをさらに有する、請求項2記載のプロセッサ。
  4. 前記信頼性追跡モジュールが、前記温度分布および前記ホット・スポットを時間を通じて取得する、請求項3記載のプロセッサ。
  5. 前記多コア・プロセッサ中の各コアの機能的な正しさを検査する機能的な正しさ検査モジュールをさらに有する、請求項2記載のプロセッサ。
  6. 前記機能的な正しさ検査モジュールが、少なくとも粗い粒度のレベルで機能的な正しさ検査を実行する、請求項5記載のプロセッサ。
  7. 前記信頼性追跡モジュールが、前記多コア・プロセッサ中の各コアの機能的な正しさの傾向情報を時間を通じて取得する、請求項5記載のプロセッサ。
  8. 前記多コア・プロセッサ中の各コアの特性を動的にプロファイリングするプロセスにおいて、少なくとも前記電力消費測定モジュール、前記動作スピード測定モジュールおよび前記信頼性追跡モジュールを、制御し、協調させるコントローラをさらに有する、請求項2記載のプロセッサ。
  9. 多コア・プロセッサ中の各コアの特性を動的にプロファイリングする方法であって:
    前記多コア・プロセッサ中の各コアについて定期的に試験を開始し;
    各試験の間に、種々の電圧および種々の動作スピードのもとで、前記多コア・プロセッサ中の各コアの電力消費データを測定し;
    各試験の間に、種々の電圧のもとで、前記多コア・プロセッサ中の各コアの最大動作スピードを測定し;
    前記多コア・プロセッサ中の各コアの信頼性情報を、少なくとも部分的に、各試験の間に取得された前記電力消費データおよび前記最大動作スピードに基づいて取得することを含む、
    方法。
  10. 前記多コア・プロセッサ中の各コアのダイ領域および前記相互接続ファブリックにわたるホット・スポットおよび温度分布を取得するために温度を測定し;
    機能的な正しさ検査を実施して前記多コア・プロセッサ中の各コアの機能的な正しさ情報を取得することをさらに含む、
    請求項9記載の方法。
  11. 前記信頼性情報が、前記多コア・プロセッサ中の各コアの、前記ダイ領域にわたる前記ホット・スポットおよび温度変動ならびに前記機能的な正しさ情報の傾向情報を含む、請求項10記載の方法。
  12. 前記多コア・プロセッサ中の各コアについてパフォーマンス・プロファイルを取得し、記憶することをさらに含む請求項10記載の方法であって、前記パフォーマンス・プロファイルは、前記電力消費データ、前記最大動作スピード、前記機能的な正しさ情報、各コアのダイ領域にわたる前記ホット・スポットおよび温度変動ならびに前記多コア・プロセッサ中の各コアについてのそれらの傾向情報を含む、方法。
  13. 多コア・プロセッサであって、該プロセッサ中の各コアについて動的プロファイルを生成するプロファイリング・モジュールを含む多コア・プロセッサと;
    タスクを受領し、該タスク・アプリケーションを、少なくとも部分的に該タスクの要求および前記プロセッサ中の各コアの前記動的プロファイルに基づいて第一のセットのコアに割り当てるタスク割り当てモジュールとを有する、
    コンピューティング・システム。
  14. 前記プロセッサがさらに、コアの少なくとも一つの特性を基準として使って、前記プロセッサ中のコアを、各コアの前記動的プロファイルに基づく複数のビンにグループ分けするコア・ビン分けモジュールを有しており、前記複数のビンは前記タスク割り当てモジュールによって、前記タスクを前記第一のセットのコアに割り当てるために使用される、請求項13記載のシステム。
  15. 変化する条件に応答して、前記タスクを第二のセットのコアに再割り当てするおよび前記第一のセットのコアを再バランスするうち少なくとも一方をするパフォーマンスおよび電力マネージャをさらに有し、ここで、前記第二のセットのコアは前記第一のセットのコアとは異なるコアを少なくとも一つ含んでいる、請求項13記載のシステム。
  16. 前記第一のセットのコアおよび前記第二のセットのコアのうちの少なくとも一方の間で相互接続を再構成する再構成器をさらに有する、請求項15記載のシステム。
  17. 前記変化する条件が、前記第一のセットのコアのうち少なくとも一つのコアの変化する条件と、変化する環境とのうちの少なくとも一方を含む、請求項15記載のシステム。
  18. 多コア・プロセッサを使ってタスクを効率的に実行する方法であって:
    タスクを受領し;
    前記タスクを解析して前記タスクの要求を判別し;
    前記タスクを、前記タスクの前記要求に基づいて、前記多コア・プロセッサ中の第一のセットのコアに割り当て;
    前記タスクを、前記第一のセットのコアを使って実行することを含む、
    方法。
  19. 前記多コア・プロセッサ中の諸コアを、前記多コア・プロセッサ中のコアの少なくとも一つの特性に従って、各コアの動的プロファイルに基づいて、複数のビンにグループ分けすることをさらに含む、請求項18記載の方法。
  20. 変化する条件に応答して、前記タスクを第二のセットのコアに再割り当てすることおよび前記第一のセットのコアを再バランスすることのうち少なくとも一方を含んでおり、ここで、前記第二のセットのコアは前記第一のセットのコアとは異なるコアを少なくとも一つ含んでいる、請求項18記載の方法。
  21. 前記変化する条件が、前記第一のセットのコアのうち少なくとも一つのコアの変化する条件と、変化する環境とのうちの少なくとも一方を含む、請求項20記載の方法。
  22. 前記第一のセットのコアおよび前記第二のセットのコアのうちの少なくとも一方の間で相互接続を再構成することをさらに含む、請求項20記載の方法。
JP2008533529A 2005-09-28 2006-09-26 多コア・プロセッサによる信頼できるコンピューティング Active JP5535481B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/238,488 US7412353B2 (en) 2005-09-28 2005-09-28 Reliable computing with a many-core processor
US11/238,488 2005-09-28
PCT/US2006/037523 WO2007038530A2 (en) 2005-09-28 2006-09-26 Reliable computing with a many-core processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012139498A Division JP2012216232A (ja) 2005-09-28 2012-06-21 多コア・プロセッサによる信頼できるコンピューティング

Publications (2)

Publication Number Publication Date
JP2009510618A true JP2009510618A (ja) 2009-03-12
JP5535481B2 JP5535481B2 (ja) 2014-07-02

Family

ID=37895577

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2008533529A Active JP5535481B2 (ja) 2005-09-28 2006-09-26 多コア・プロセッサによる信頼できるコンピューティング
JP2012139498A Pending JP2012216232A (ja) 2005-09-28 2012-06-21 多コア・プロセッサによる信頼できるコンピューティング
JP2014151009A Pending JP2014211910A (ja) 2005-09-28 2014-07-24 多コア・プロセッサによる信頼できるコンピューティング
JP2016229098A Pending JP2017076414A (ja) 2005-09-28 2016-11-25 多コア・プロセッサによる信頼できるコンピューティング

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2012139498A Pending JP2012216232A (ja) 2005-09-28 2012-06-21 多コア・プロセッサによる信頼できるコンピューティング
JP2014151009A Pending JP2014211910A (ja) 2005-09-28 2014-07-24 多コア・プロセッサによる信頼できるコンピューティング
JP2016229098A Pending JP2017076414A (ja) 2005-09-28 2016-11-25 多コア・プロセッサによる信頼できるコンピューティング

Country Status (5)

Country Link
US (1) US7412353B2 (ja)
JP (4) JP5535481B2 (ja)
CN (1) CN101278264B (ja)
DE (1) DE112006002265B4 (ja)
WO (1) WO2007038530A2 (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223637A (ja) * 2008-03-17 2009-10-01 Fujitsu Ltd ジョブ割当装置、ジョブ割当方法、及び、ジョブ割当プログラム
JP2010211331A (ja) * 2009-03-06 2010-09-24 Nec Corp 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体
JP2011054018A (ja) * 2009-09-03 2011-03-17 Nec Corp 情報処理装置及びスケジューリング方法
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
WO2012090376A1 (ja) * 2010-12-27 2012-07-05 パナソニック株式会社 マルチチップシステム、通信機器、映像音声装置および自動車
JP2012533827A (ja) * 2009-07-23 2012-12-27 エンパイア テクノロジー ディベロップメント エルエルシー コア特性およびアプリケーション特性に基づく、マルチプロセッサシステム上で実行しているアプリケーションに関するコア選択
JP2013500520A (ja) * 2009-07-24 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
KR20130112623A (ko) * 2012-04-04 2013-10-14 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
JP2013542492A (ja) * 2010-09-14 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードにおける電力消費を制御するための機構
US8645718B2 (en) 2008-08-22 2014-02-04 Fujitsu Limited Apparatus and method for sampling power consumption
WO2014033941A1 (ja) * 2012-09-03 2014-03-06 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
KR20140113601A (ko) * 2013-03-15 2014-09-24 인텔 코오퍼레이션 고온 이벤트에서의 동작 보장을 위한 동작 주파수 정보를 갖는 프로세서
JP2014530440A (ja) * 2011-10-12 2014-11-17 クアルコム,インコーポレイテッド 漏洩電流の測定値から熱管理ポリシーを決定するためのシステムおよび方法
US9043795B2 (en) 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
JP2016042336A (ja) * 2014-08-19 2016-03-31 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
JP2016080472A (ja) * 2014-10-15 2016-05-16 富士通株式会社 電力測定装置及び電力測定方法
JP2018132876A (ja) * 2017-02-14 2018-08-23 Necプラットフォームズ株式会社 制御装置、情報システムおよび制御方法
JP2018169696A (ja) * 2017-03-29 2018-11-01 富士通株式会社 情報処理装置,試験プログラムおよび試験方法
JP2021089601A (ja) * 2019-12-04 2021-06-10 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395174B2 (en) * 2005-11-29 2008-07-01 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using thermal sampling
US7386414B2 (en) * 2005-11-29 2008-06-10 International Business Machines Corporation Generation of hardware thermal profiles for a set of processors
US7603576B2 (en) * 2005-11-29 2009-10-13 International Business Machines Corporation Hysteresis in thermal throttling
US7480586B2 (en) * 2005-11-29 2009-01-20 International Business Machines Corporation Thermal interrupt generation
US7490017B2 (en) * 2005-11-29 2009-02-10 International Business Machines Corporation Analytical generation of software thermal profiles
US7698089B2 (en) * 2005-11-29 2010-04-13 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using processor activity
US7848901B2 (en) * 2005-11-29 2010-12-07 International Business Machines Corporation Tracing thermal data via performance monitoring
US7681053B2 (en) * 2005-11-29 2010-03-16 International Business Machines Corporation Thermal throttle control with minimal impact to interrupt latency
US7721128B2 (en) * 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US20070124618A1 (en) * 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US7512513B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Thermal throttling control for testing of real-time software
US7512530B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Generation of software thermal profiles for applications in a simulated environment
US7376532B2 (en) * 2005-11-29 2008-05-20 International Business Machines Corporation Maximal temperature logging
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US20070204106A1 (en) * 2006-02-24 2007-08-30 James Donald Adjusting leakage power of caches
US8074110B2 (en) * 2006-02-28 2011-12-06 Intel Corporation Enhancing reliability of a many-core processor
JP5040136B2 (ja) * 2006-03-27 2012-10-03 富士通セミコンダクター株式会社 チューニング支援装置、チューニング支援プログラム、チューニング支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびチューニング支援方法
US7389195B2 (en) * 2006-03-31 2008-06-17 International Business Machines Corporation Uniform power density across processor cores at burn-in
US8037893B2 (en) * 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US20070260894A1 (en) * 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US7552346B2 (en) * 2006-05-03 2009-06-23 International Business Machines Corporation Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index
US7555666B2 (en) * 2006-05-04 2009-06-30 Dell Products L.P. Power profiling application for managing power allocation in an information handling system
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
WO2008000858A1 (es) * 2006-06-30 2008-01-03 Intel Corporation Estimación de la potencia de fugas
US7844838B2 (en) * 2006-10-30 2010-11-30 Hewlett-Packard Development Company, L.P. Inter-die power manager and power management method
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
WO2008108133A1 (ja) * 2007-03-02 2008-09-12 Nec Corporation タスク群割当方法、タスク群割当装置、タスク群割当プログラム、プロセッサ及びコンピュータ
US20080244222A1 (en) * 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors
US8094706B2 (en) * 2007-04-10 2012-01-10 International Business Machines Corporation Frequency-based, active monitoring of reliability of a digital system
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
US8151122B1 (en) 2007-07-05 2012-04-03 Hewlett-Packard Development Company, L.P. Power budget managing method and system
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8365184B2 (en) 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
US7962774B2 (en) * 2007-10-04 2011-06-14 Wisconsin Alumni Research Foundation Over-provisioned multicore processor
US8458497B2 (en) * 2007-10-11 2013-06-04 Qualcomm Incorporated Demand based power control in a graphics processing unit
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8027798B2 (en) * 2007-11-08 2011-09-27 International Business Machines Corporation Digital thermal sensor test implementation without using main core voltage supply
US8578193B2 (en) 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US7996648B2 (en) 2007-12-19 2011-08-09 Microsoft Corporation Coupled symbiotic operating systems
WO2009091829A1 (en) * 2008-01-14 2009-07-23 Bivio Networks, Inc. Systems and methods for asymmetric multiprocessing
US8800002B2 (en) * 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US20090285261A1 (en) * 2008-05-17 2009-11-19 Lsi Corporation Integrated Circuit System Monitor
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8726290B2 (en) * 2008-06-12 2014-05-13 Yahoo! Inc. System and/or method for balancing allocation of data among reduce processes by reallocation
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
JP5195913B2 (ja) * 2008-07-22 2013-05-15 トヨタ自動車株式会社 マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8738949B2 (en) * 2009-08-31 2014-05-27 Empire Technology Development Llc Power management for processor
EP2362297B1 (en) * 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
US8612984B2 (en) * 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
US8942932B2 (en) * 2010-08-31 2015-01-27 Advanced Micro Devices, Inc. Determining transistor leakage for an integrated circuit
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8561078B2 (en) * 2011-09-27 2013-10-15 Throughputer, Inc. Task switching and inter-task communications for multi-core processors
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8872536B1 (en) * 2011-03-22 2014-10-28 Xilinx, Inc. Characterizing dies
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9098561B2 (en) 2011-08-30 2015-08-04 Intel Corporation Determining an effective stress level on a processor
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US8819484B2 (en) * 2011-10-07 2014-08-26 International Business Machines Corporation Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US8959224B2 (en) 2011-11-17 2015-02-17 International Business Machines Corporation Network data packet processing
US9239611B2 (en) * 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
US8806243B2 (en) * 2011-12-28 2014-08-12 Intel Corporation Method of and apparatus for energy savings associated with a graphics core
EP2798491B1 (en) * 2011-12-30 2017-02-01 Intel Corporation Method and device for managing hardware errors in a multi-core environment
US8615763B2 (en) 2012-02-01 2013-12-24 Texas Instruments Incorporated System and method of task allocation in multiprocessing environment based on minimum density or maximum harmonicity that results in lower clock frequency
US8782466B2 (en) * 2012-02-03 2014-07-15 Hewlett-Packard Development Company, L.P. Multiple processing elements
US20140359350A1 (en) * 2012-02-24 2014-12-04 Jeffrey A PLANK Wear-leveling cores of a multi-core processor
US9720766B2 (en) * 2012-04-19 2017-08-01 Industry-Academic Cooperation Foundation Chosun University Self-healing, fault-tolerant FPGA computation and architecture
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US8977895B2 (en) * 2012-07-18 2015-03-10 International Business Machines Corporation Multi-core diagnostics and repair using firmware and spare cores
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
US9116703B2 (en) * 2012-10-15 2015-08-25 Advanced Micro Devices, Inc. Semi-static power and performance optimization of data centers
DE112012007115T5 (de) * 2012-12-28 2015-08-20 Paul Brett Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
CN103197994B (zh) * 2013-04-26 2014-12-03 哈尔滨工业大学 基于片上网络的众核芯片管理结构容错的方法
US9405340B2 (en) * 2013-06-27 2016-08-02 Intel Corporation Apparatus and method to implement power management of a processor
US9317389B2 (en) 2013-06-28 2016-04-19 Intel Corporation Apparatus and method for controlling the reliability stress rate on a processor
DE102013214398A1 (de) 2013-07-23 2015-01-29 Siemens Aktiengesellschaft Überwachung von redundanten Komponenten
US9026681B2 (en) 2013-08-08 2015-05-05 Qualcomm Incorporated Flexible hardware module assignment for enhanced performance
US9218011B2 (en) 2013-08-28 2015-12-22 Qualcomm Incorporated Corner-case emulation tool for thermal power testing
WO2015039320A1 (en) * 2013-09-19 2015-03-26 Intel Corporation Techniques for distributed processing task portion assignment
KR101697647B1 (ko) * 2013-10-08 2017-02-01 한국전자통신연구원 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US10261875B2 (en) 2013-12-18 2019-04-16 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9703613B2 (en) * 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
KR102248787B1 (ko) * 2014-08-28 2021-05-06 삼성전자 주식회사 Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US9904339B2 (en) 2014-09-10 2018-02-27 Intel Corporation Providing lifetime statistical information for a processor
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
US9939834B2 (en) 2014-12-24 2018-04-10 Intel Corporation Control of power consumption
US20160188365A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Computational unit selection
US9704598B2 (en) 2014-12-27 2017-07-11 Intel Corporation Use of in-field programmable fuses in the PCH dye
US10218779B1 (en) * 2015-02-26 2019-02-26 Google Llc Machine level resource distribution
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
KR20170069730A (ko) 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10078544B2 (en) 2015-12-19 2018-09-18 Intel Corporation Apparatus and method for an on-chip reliability controller
CN106560794A (zh) * 2016-08-08 2017-04-12 柏建民 基于远程智能存储单元的分布式多处理器单元系统
US10216246B2 (en) * 2016-09-30 2019-02-26 Intel Corporation Multi-level loops for computer processor control
US10310548B2 (en) 2016-11-07 2019-06-04 Microsoft Technology Licensing, Llc Expected lifetime management
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
US10296464B2 (en) * 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
KR20180098904A (ko) * 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
US10474619B2 (en) 2017-05-19 2019-11-12 General Electric Company Methods for managing communications involving a lockstep processing system
US10466937B2 (en) * 2017-11-28 2019-11-05 BAE Systems Information and Electronic Sustems Integration Inc. Method of implementing a high reliability flash memory recorder
EP3750296A4 (en) * 2018-02-05 2021-09-15 Cisco Technology, Inc. CONFIGURABLE STORAGE SERVER WITH MULTIPLE SOCKETS
US11010330B2 (en) * 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
CN110401687B (zh) 2018-04-25 2021-10-22 华为技术有限公司 一种配置文件传输方法及相关设备和存储介质
KR102663815B1 (ko) * 2018-06-01 2024-05-07 삼성전자주식회사 컴퓨팅 장치 및 이의 동작 방법
KR102592902B1 (ko) * 2018-09-05 2023-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11940859B2 (en) * 2018-11-16 2024-03-26 Hewlett Packard Enterprise Development Lp Adjusting power consumption limits for processors of a server
CN109783224B (zh) * 2018-12-10 2022-10-14 平安科技(深圳)有限公司 基于负载调配的任务分配方法、装置及终端设备
US10831628B2 (en) * 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
CN110347563B (zh) * 2019-04-29 2023-08-08 网易(杭州)网络有限公司 多核处理器性能的确定方法、装置及存储介质
US11360827B2 (en) 2019-06-04 2022-06-14 Hewlett Packard Enterprise Development Lp Regulating core and un-core processor frequencies of computing node clusters
US11250195B2 (en) * 2020-02-24 2022-02-15 Ansys, Inc. Method and system for ROM based dynamic thermal management analysis and control
CN114253701A (zh) * 2020-09-25 2022-03-29 超聚变数字技术有限公司 任务调度方法、装置以及计算机系统
US20240095133A1 (en) * 2022-09-06 2024-03-21 Nvidia Corporation Frequency adjustment for processors

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路
US20030110012A1 (en) * 2001-12-06 2003-06-12 Doron Orenstien Distribution of processing activity across processing hardware based on power consumption considerations
JP2004240669A (ja) * 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
WO2005029329A2 (en) * 2003-09-15 2005-03-31 Nvidia Corporation A system and method for testing and configuring semiconductor functional circuits

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61105629A (ja) * 1984-10-29 1986-05-23 Fujitsu Ltd クロツク制御方式
JPH05100890A (ja) * 1991-10-04 1993-04-23 Toshiba Corp 制御装置信頼性診断システム
US6141762A (en) * 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
JP2000304816A (ja) * 1999-04-19 2000-11-02 Hitachi Ltd 診断機能付き論理集積回路および論理集積回路の診断方法
JP2001318901A (ja) * 2000-05-09 2001-11-16 Nec Corp 2重化マルチプロセッサ方式
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US20030005380A1 (en) 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US7082600B1 (en) * 2002-11-04 2006-07-25 Savaje Technologies, Inc. Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7055060B2 (en) 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US8037445B2 (en) * 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路
US20030110012A1 (en) * 2001-12-06 2003-06-12 Doron Orenstien Distribution of processing activity across processing hardware based on power consumption considerations
JP2004240669A (ja) * 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
WO2005029329A2 (en) * 2003-09-15 2005-03-31 Nvidia Corporation A system and method for testing and configuring semiconductor functional circuits
JP2007506267A (ja) * 2003-09-15 2007-03-15 エヌヴィディア コーポレイション 半導体機能回路のテストおよび構成のためのシステムおよび方法

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075658B2 (en) 2008-03-17 2015-07-07 Fujitsu Limited Apparatus and method of assigning jobs to computation nodes based on a computation node's power saving mode transition rate
JP2009223637A (ja) * 2008-03-17 2009-10-01 Fujitsu Ltd ジョブ割当装置、ジョブ割当方法、及び、ジョブ割当プログラム
US8645718B2 (en) 2008-08-22 2014-02-04 Fujitsu Limited Apparatus and method for sampling power consumption
US9043795B2 (en) 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
JP2010211331A (ja) * 2009-03-06 2010-09-24 Nec Corp 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
JP2012533827A (ja) * 2009-07-23 2012-12-27 エンパイア テクノロジー ディベロップメント エルエルシー コア特性およびアプリケーション特性に基づく、マルチプロセッサシステム上で実行しているアプリケーションに関するコア選択
US8924975B2 (en) 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
JP2013500520A (ja) * 2009-07-24 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
JP2011054018A (ja) * 2009-09-03 2011-03-17 Nec Corp 情報処理装置及びスケジューリング方法
JP2012048545A (ja) * 2010-08-27 2012-03-08 Lenovo Singapore Pte Ltd 特定のプロセスを短時間で処理する方法およびコンピュータ
JP2013542492A (ja) * 2010-09-14 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードにおける電力消費を制御するための機構
WO2012090376A1 (ja) * 2010-12-27 2012-07-05 パナソニック株式会社 マルチチップシステム、通信機器、映像音声装置および自動車
KR101534450B1 (ko) * 2011-10-12 2015-07-06 퀄컴 인코포레이티드 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
JP2014530440A (ja) * 2011-10-12 2014-11-17 クアルコム,インコーポレイテッド 漏洩電流の測定値から熱管理ポリシーを決定するためのシステムおよび方法
KR20130112623A (ko) * 2012-04-04 2013-10-14 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
KR101899811B1 (ko) * 2012-04-04 2018-09-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
JPWO2014033941A1 (ja) * 2012-09-03 2016-08-08 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
WO2014033941A1 (ja) * 2012-09-03 2014-03-06 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
KR101579373B1 (ko) 2013-03-15 2015-12-21 인텔 코포레이션 고온 이벤트에서의 동작 보장을 위한 동작 주파수 정보를 갖는 프로세서
JP2014182806A (ja) * 2013-03-15 2014-09-29 Intel Corp 高温イベントにおける動作を保証するべく動作頻度情報を持つプロセッサ
US9494996B2 (en) 2013-03-15 2016-11-15 Intel Corporation Processor having frequency of operation information for guaranteed operation under high temperature events
KR20140113601A (ko) * 2013-03-15 2014-09-24 인텔 코오퍼레이션 고온 이벤트에서의 동작 보장을 위한 동작 주파수 정보를 갖는 프로세서
JP2016042336A (ja) * 2014-08-19 2016-03-31 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
US10394644B2 (en) 2014-08-19 2019-08-27 Renesas Electronics Corporation Processor system, engine control system and control method
JP2016080472A (ja) * 2014-10-15 2016-05-16 富士通株式会社 電力測定装置及び電力測定方法
JP2018132876A (ja) * 2017-02-14 2018-08-23 Necプラットフォームズ株式会社 制御装置、情報システムおよび制御方法
JP2018169696A (ja) * 2017-03-29 2018-11-01 富士通株式会社 情報処理装置,試験プログラムおよび試験方法
JP2021089601A (ja) * 2019-12-04 2021-06-10 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
WO2007038530A2 (en) 2007-04-05
US7412353B2 (en) 2008-08-12
JP2012216232A (ja) 2012-11-08
DE112006002265B4 (de) 2011-02-17
CN101278264B (zh) 2012-03-21
DE112006002265T5 (de) 2008-08-07
JP2014211910A (ja) 2014-11-13
JP5535481B2 (ja) 2014-07-02
CN101278264A (zh) 2008-10-01
US20070074011A1 (en) 2007-03-29
WO2007038530A3 (en) 2007-11-29
JP2017076414A (ja) 2017-04-20

Similar Documents

Publication Publication Date Title
JP5535481B2 (ja) 多コア・プロセッサによる信頼できるコンピューティング
JP4688933B2 (ja) 状態情報を回復して保持するマルチコアプロセッサ
Kim et al. Solar-DRAM: Reducing DRAM access latency by exploiting the variation in local bitlines
US8988956B2 (en) Programmable memory built in self repair circuit
US8578312B2 (en) Method and apparatus for designing and manufacturing electronic circuits subject to leakage problems caused by temperature variations and/or aging
TWI564810B (zh) 多核心處理器之晶粒內差異特性化技術
US8386859B2 (en) On-chip non-volatile storage of a test-time profile for efficiency and performance control
CN109801665B (zh) Sram自测试系统、架构及方法、存储介质
CN109358816A (zh) 一种分布式存储系统的流控方法及装置
US9564245B2 (en) Integrated circuit defect detection and repair
Cho et al. A survey of repair analysis algorithms for memories
Meyer et al. Cost-effective lifetime and yield optimization for NoC-based MPSoCs
US9172371B2 (en) Majority dominant power scheme for repeated structures and structures thereof
Khalili et al. A reliability-aware multi-application mapping technique in networks-on-chip
JP7399358B1 (ja) ミッションモードvmin予測及び較正
US20170184665A1 (en) Dynamically configurable shared scan clock channel architecture
KR20010075269A (ko) 메모리 어레이 테스트 방법과 이를 구현하기 위해 배열된메모리 기반 디바이스
US20230084463A1 (en) Runtime non-destructive memory built-in self-test (bist)
EP1640886A1 (en) Method and apparatus for designing and manufacturing electronic circuits subject to leakage problems caused by temperature variations and/or ageing
Baranwal et al. Reliability enhancement of SoCs based on dynamic memory access profiling in conjunction with PVT monitoring
US20170117022A1 (en) Location-Based Optimization for Memory Systems
Saxena et al. High Performance Energy-Aware Cloud Computing: A Scope of Future Computing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110427

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110520

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120628

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120907

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130321

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130415

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130515

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130520

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5535481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250