JP5752111B2 - マルチプロセッサ・コンピューティング装置 - Google Patents

マルチプロセッサ・コンピューティング装置 Download PDF

Info

Publication number
JP5752111B2
JP5752111B2 JP2012505124A JP2012505124A JP5752111B2 JP 5752111 B2 JP5752111 B2 JP 5752111B2 JP 2012505124 A JP2012505124 A JP 2012505124A JP 2012505124 A JP2012505124 A JP 2012505124A JP 5752111 B2 JP5752111 B2 JP 5752111B2
Authority
JP
Japan
Prior art keywords
processor
computing device
bonus
general purpose
scheduler
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.)
Expired - Fee Related
Application number
JP2012505124A
Other languages
English (en)
Other versions
JP2012523637A (ja
Inventor
ユー、ジェシー
ダウ、イーライ
レイザー、マリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012523637A publication Critical patent/JP2012523637A/ja
Application granted granted Critical
Publication of JP5752111B2 publication Critical patent/JP5752111B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

本発明は、コンピューティング装置に関し、更に詳しくいえば、コンピューティング装置の動作時における電力消費量の削減に関する。
電力消費量を削減するために、コンピューティング装置における現在のプロセッサは、一般に、アイドリング中に深いC状態のスリープに入り、割り込みが生じたときに目覚めるように設計されている。例えば、「C3状態」(多くの場合、「スリープ」として知られている)は、プロセッサがそれのキャッシュをコヒーレントに保つ必要はないが、他の状態情報を維持する必要がある。或るプロセッサは、そのプロセッサを目覚めさせるために必要な時間の長さが異なる程度がC3状態(深いスリープ、比較的深いスリープ等)によって変化する。しかし、一般的にスピンロック獲得行為を明示するプロセスは、スリープ状態期間の減少のために又はスリープ状態に入るのを防ぐために、および状態の遷移に関連したエネルギ・コストの増加のために、この節電機構に悪影響を及ぼし得るであろう。
スピンロック・プロセスは、プロセッサが深いC状態スリープに入るのを防ぐプロセスの例である。スピンロックは、ロックが利用可能になるまで要求元スレッドが繰り返しチェックするループ(スピン)において単に待機するというロックである。スレッドが活発なままであるが、有用なタスクを遂行していないとき、そのようなロックの使用は一種の「ビジー待ち」である。スピンロックは、一旦それが得られると、通常は、それらが明示的にリリースされるまで保持されるであろうが、或る実施方法では、それらは、スレッドがブロックするまたは「スリープに入る」場合、自動的にリリースされ得る。スピンロックは、スレッドが短期間の間単にブロックされるかもしれない場合、それらがオペレーティング・システムのプロセス再スケジューリングまたはコンテキスト切り換えによるオーバヘッドを回避するので、効率的である。このような理由で、スピンロックは、多くの場合、オペレーティング・システム・カーネル内で使用される。しかし、スピンロックは、それらが他のスレッドの作動を妨げ且つ再スケジューリングを必要とすることがあるので、長期間保持される場合、不経済なことになる。ロックがスレッドによって長く保持されるほど、そのロックを保持している間、オペレーティング・システム(O/S)スケジューラによってそれが中断される危険は大きくなる。これが生じると、他のスレッドは「スピン」したままにされる(反復的にロックを得ようとする)であろうが、ロックを保持するスレッドは、それをリリースに向かって進行させない。その結果は、ロックを保持するスレッドがそれを終了およびリリースすることができるまで、半デッドロックになる。特に、これは、ロックを保持するスレッドが最終的に終了するまで、同じ優先順位の各待機スレッドがスピンしてそれの分量(スレッドが作動し得る、割り当てられた時間であって、本明細書ではタイムスライスとも呼ばれる)を浪費し易いシングル・プロセッサ・システムに関しては真実である。
本発明の目的は、コンピューティング装置の動作時における電力消費量の削減を提供することにある。
本発明の1つの実施例によれば、コンピューティング装置は、第1の速度で動作し且つ第1の電力量を消費するように構成された第1のプロセッサと、第2の速度で動作し且つ第2の電力量を消費するように構成された第2のプロセッサとを含む。この場合、第1の速度は第2の速度よりも大きく、第1の電力量は第2の電力量より大きい。更に、そのコンピューティング装置は、プロセスが自身のタイムスライス全体を利用する場合のみ、そのプロセスを第1のプロセッサに割り当てるように構成されたスケジューラを含む。
本発明の別の実施例は、マルチプロセッサ・コンピューティング装置における第1のプロセッサまたは第2のプロセッサにプロセスを割り当てる方法に関する。この実施例の方法は、第1のプロセッサが第2のプロセッサよりも速く動作し且つ第2のプロセッサよりも多くの電力を消費するということを確かめるステップと、プロセスがスピンロック・プロセス、スリーパ・ボーナスを伴うプロセス、または他のタイプのプロセスのいずれかとして現在動作することになっているまたは動作し続けているかを判断するステップと、プロセスがスピンロック・プロセスまたはスリーパ・ボーナスを伴うプロセスである場合、そのプロセスを第2のプロセッサに割り当て、そうでない場合、そのプロセスを第1のプロセッサに割り当てるステップを含む。
別の側面から見ると、本発明は別の目的は、システム・プログラムであって、それがコンピューティング装置にロードされて実行されるとき、本発明のすべてのステップをそのコンピューティング装置に遂行させるためのコンピュータ・コードを含む前記システム・プログラムを提供することにある。
更なる特徴および利点も本発明の技法によって実現される。本発明の他の実施例および実施態様は本明細書に詳細に記述され、「特許請求の範囲」の部分で考察される。それらの利点および特徴を備えた本発明のより良い理解のためには、詳細な説明及び図面を参照されたい。
本発明の実施例を具現化し得るコンピューティング装置の一例を示す概略的なブロック図である。 本発明の1つの実施例に従って2つのプロセッサを含むコンピューティング装置の概略的なブロック図である。 本発明の1つの実施例に従って特定のプロセッサにプロセスを割り当てる方法を示すフローチャートである。
本発明の実施例は、メイン・プロセッサと共に、スリーパおよび/またはスピンロック・プロセスのための低速の低電圧専用プロセッサを実装することによって、縮小された電力削減を達成し得る。これに関連して、「プロセッサ」という用語が、非対称関数または電力消費特性を具現化するマルチコア・プロセッサ・アーキテクチャの特定コアを意味するために使用され得る、ということは当業者には明らかであろう。メイン・プロセッサは、中央処理装置(CPU)制約のものであり且つそれらのタイムスライス全体を使用するプロセスのためだけに確保され得る。このように、メイン・プロセッサは、1つの状態のままである可能性が高く、従って、メイン・プロセッサがディープCのスリープ状態に入ることを可能にするという節電の十分な恩恵を最大にする。この目的のために、1つの実施例では、第2のプロセッサがメイン・プロセッサよりも低い電圧で動作し得るということは明らかであろう。その結果、第2のプロセッサは低い速度で動作し得る。
図1を参照すると、本明細書における教示事項を具現化するための処理システム100の実施例が示される。この実施例では、システム100は、1つ又は複数の中央処理装置(プロセッサ)101a、101b、101c等(集合的にまたは総体的にプロセッサ101と呼ばれる)を有する。1つの実施例では、各プロセッサ101は、縮小命令セット・コンピュータ(RISC)マイクロプロセッサを含み得る。プロセッサ101は、システム・バス113を介してシステム・メモリ(RAM)114および種々の他のコンポーネントに接続される。読取り専用メモリ(ROM)102が、システムバス113に接続され、システム100の所定の基本機能を制御する基本入出力システム(BIOS)を含み得る。
図1は、更に、システム・バス113に接続された入出力(I/O)アダプタ107およびネットワーク(通信)アダプタ106を示す。I/Oアダプタ107は、ハード・ディスク103および/またはテープ記憶装置105、或いは任意の他の同様のコンポーネントと通信する小型コンピュータ・システム・インターフェース(SCSI)アダプタであってもよい。I/Oアダプタ107、ハード・ディスク103、およびテープ記憶装置105は、本明細書では総体的に大容量記憶装置104と呼ばれる。ネットワーク・アダプタ106は、データ処理システム100が他のそのようなシステムと通信することを可能にする外部ネットワーク116とバス113を相互接続する。スクリーンまたはディスプレイ(例えば、表示モニタ)115が、ディスプレイ・アダプタ112によってシステム・バス113に接続される。ディスプレイ・アダプタ112は、グラフィックス・インテンシブ・アプリケーションおよびビデオ・コントローラの性能を改善するためにグラフィックス・アダプタを含み得る。1つの実施例では、アダプタ107、106、および112は、中間バス・ブリッジ(図示されてない)を介してシステム・バス113に接続される1つ又は複数のI/Oバスに接続されてもよい。ハード・ディスク・コントローラ、ネットワーク・アダプタ、およびグラフィックス・アダプタのような周辺機器を接続するために適したI/Oバスは、一般的には周辺コンポーネント・インターフェース(PCI)のような共通プロトコルを含む。ユーザ・インターフェース・アダプタ108およびディスプレイ・アダプタ112を介してシステム・バス113に接続されるものとして更なる入出力装置が示される。キーボード109、マウス110、およびスピーカ111がすべてユーザ・インターフェース・アダプタ108を介してバス113に相互接続される。ユーザ・インターフェース・アダプタ108は、例えば、多数のデバイス・アダプタを単一の集積回路に統合するスーパI/Oチップを含み得る。
従って、図1において形成されるように、システム100は、プロセッサ101の形式の処理手段と、システム・メモリ114および大容量記憶装置104を含む記憶手段と、キーボード109およびマウス110のような入力手段と、スピーカ111およびディスプレイ115を含む出力手段とを含む。1つの実施例では、システム・メモリ114および大容量記憶装置104の一部分は、図1に示される種々のコンポーネントの機能を調整するための、IBM社から入手可能なAIXオペレーティング・システムのようなオペレーティング・システムを一体的に格納する。なお、IBMおよびAIXは、米国のインターナショナル・ビジネス・マシーンズ・コーポレーション(IBM社)の商標である。
システム100が、任意の適切なコンピュータまたはコンピューティング・プラットフォームであってもよく、端末装置、ワイヤレス装置、情報家電装置、ワークステーション、ミニ・コンピュータ、メインフレーム・コンピュータ、携帯情報端末(PDA)、或いは他のコンピューティング装置を含み得るということは明らかであろう。システム100が通信ネットワークによってリンクされた複数のコンピューティング装置を含み得るということも明らかであろう。例えば、2つのシステム間でクライアント・サーバ関係が存在してもよく、その2つのシステム間で処理が分離していてもよい。
システム100がサポートし得るオペレーティング・システムの例は、MicrosoftWindows Vista、Mac OS、Java、AIX、LINUXおよびUNIX、或いは他の適切なオペレーティング・システムを含む。なお、Microsoft、WindowsVista、およびWindowsのロゴは、米国のマイクロソフト・コーポレーションの商標である。また、Mac OSは、米国のApple Inc.の商標である。JavaおよびすべてのJava ベースの商標およびロゴは、米国のSunMicrosystem Inc.の商標である。Linuxは、米国のLinus Torvaldsの商標である。UNIXは、米国のThe Open Groupの商標である。システム100は、ネットワーク116を介して通信するためのネットワーク・アダプタ106を含む。ネットワーク116は、ローカル・エリア・ネットワーク(LAN)、メトロ・エリア・ネットワーク(MAN)、或いはインターネットまたはワールド・ワイド・ウェブのような広域ネットワーク(WAN)であってもよい。
システム100のユーザは、標準の電話回線、デジタル加入者回線、LANまたはWANリンク(例えば、T1、T3)、ブロードバンド接続(フレーム・リレー、非同期転送モード(ATM))、および無線接続(例えば、802.11(a)、802.11(b)、802.11(g))のような任意の適切なネットワーク・インターフェイス116の接続を通してネットワークに接続し得る。
本明細書に開示されるように、システム100は、ユーザのディスプレイ・スクリーン115上に示された情報の捕捉および対話的表示のためにマシン可読媒体(例えば、ハード・ディスク104)に格納されたマシン可読命令を含む。本明細書において論じられるように、命令は、「ソフトウェア」120とも呼ばれる。そのソフトウェア120は、その分野で知られているように、ソフトウェア開発支援ツールを使用して生産され得る。ソフトウェア120は、その分野で知られているように、ユーザ対話機能を提供するための様々なツールおよび機能を含み得る。
或る実施例では、ソフトウェア120は別のプログラムに対するオーバーレイとして提供される。例えば、ソフトウェア120は、アプリケーション(またはオペレーティング・システム)に対する「アドイン」として提供され得る。その分野では知られているように、用語「アドイン」は一般に補助プログラム・コードを指すことに留意されたい。そのような実施例では、ソフトウェア120は、それが協同するアプリケーションまたはオペレーティング・システムの構造或いはオブジェクトを置換し得る。
図2は、コンピューティング装置200の更に特殊な例を示す。コンピューティング装置200は、2つ以上のプロセッサを含み得る任意のタイプのコンピューティング装置であってもよい。図示のように、コンピューティング装置200は、第1のプロセッサ202および第2のプロセッサ204を含む。1つの実施例では、第1のプロセッサ202はメイン・プロセッサである。この目的のために、1つの実施例では、それは、第1のプロセッサ202において自身のほとんどまたはすべてのタイムスライスを利用するプロセスを実行することが望ましい。これは、第1のプロセッサ202が、特定のプロセスを能動的に処理するとき全能力をあげて実行し続けるのを支援し得る。1つの実施例では、第1のプロセッサ202は、第2のプロセッサ202より高い電圧で動作する。
第2のプロセッサ204は、第1のプロセッサ202より少ない電力を消費するプロセッサであってもよい。1つの実施例では、この低電力の第2のプロセッサ204は、第1のプロセッサ204より低い速度で動作し得る。
コンピューティング装置200は、更にスケジューラ206も含み得る。スケジューラ206は、リクエスト・キュー208からのプロセスを第1のプロセッサ202または第2のプロセッサ204のいずれかに割り当てるように構成される。
1つの実施例によれば、スケジューラ206は、他のプロセスより少ない電力を利用するプロセスを第2のプロセッサ204に割り当てるように構成され得る。スピンロック・プロセスまたは所謂スリーパ・プロセスは、1つの実施例では、常にまたはほとんど常に第2のプロセッサ206に割り当てられ得る。これは、少なくとも部分的には、これらのタイプのプロセスの両方とも、高速プロセッサの処理能力またはそれらに割り振られた全タイムスライスを十分に利用してないという事実のためである。例えば、スリーパ・プロセスは、それのタイムスライスの一部を利用するだけであり、その分野で言われているように、将来のスリーパ・ボーナスと交換にそれの残りの割り振られたタイムスライスを放棄し得る。これらのプロセスは第1のプロセッサ202を十分には利用してないので、それらは第2のプロセッサ204に割り当てもよい。特定のプロセスが低速のプロセッサに割り当てられるべきであるかどうかをプログラマがコードで表わし得るということは明らかであろう。スケジューラ206がプロセスを割り当て得るもう1つの方法は、特定のプロセスが、スピンロックに作用している間に頻繁にスピンしたか或いはスリーパ・ボーナスを含んでいたかに関する履歴記録に基づく。それが肯定される場合、スケジューラはそのようなプロセスを第2のプロセッサ204に割り当て得る。
1つの実施例では、第2のプロセッサ204が、システムにおける他の高速のプロセッサ(例えば、第1のプロセッサ202)に格納された汎用命令のサブセットを含み得る。1つの実施例では、このサブセットは、アトミック・テスト・アンド・セット命令または主プロセッサに保持されてない付加的命令のような汎用命令を含み得る。更に、第2のプロセッサ204は、データを格納するためのレジスタを含み得る。
1つの実施例では、第1のプロセッサ202および第2のプロセッサ204は、プロセッサの電力使用量を決定するように構成されたプログラムまたはハードウェアを含み得る。このデータは、例えば、プロセッサ(202および204)内に保存され得るし、或いはスケジューラ206にとって、または、必要な場合には任意のユーザ・スペース・プロセスにとって、利用可能にされ得る。
図3は、スケジューラ206(図2)が、特定のプロセスをどちらのプロセッサ(高速または低速)に割り当てるべきかを決定する方法を示すフローチャートである。プロセスはブロック302で始まり、リクエスト・キューにおける次のプロセスが、特殊プロセッサにおいてより最適に実行され得るプロセスであるかどうかを決定するためにそのリクエスト・キューにおける次のプロセスが調べられる。この決定は、そのプロセスが高電力消費者であるかまたは低電力消費者あるかに関する表示を含むテーブルまたは他のタイプのレコードを調べることを(その分野では知られているように、バス待ちではないプログラム命令の実行を達成するためにプロセッサ時間を利用することから推察されるように)含み得る。そのテーブルまたは他のレコードの内容は、そのプロセスに対してコンパイル時に作成された表示を、そのようなものが表示された場合に含み得るし、スケジューラによってサポートされ得る。即ち、プログラマは、ソフトウェアでその選択を表示することによって設計時に1つのまたは他のプロセッサにそのプロセスを強制し得るであろう。これは、セクションもしくは領域またはコードが第1のプロセッサまたは第2のプロセッサのいずれかにおいて最適に実行されるということをコンパイラに知らせることができる特別の命令をそのソフトウェアに含むことによって行われ得る。勿論、テーブルは、履歴データに基づいてスケジューラ自体により作成および設置され得る。例えば、プロセスが規則的にスリーパ・ボーナスを提供しているかまたはスピンロック・プロセスとして作用している場合、そのプロセスは、低速のプロセッサに割り当てられるものとしてタグ付けされ得る。
プロセスが特殊プロセッサ上で実行されるべきプロセスではない場合(即ち、コーディングまたは履歴が、それが最も速いプロセッサにおいて作動すべきであるということを示す場合)、それは、ブロック304でプロセッサ1に割り当てられる。即ち、プロセスが頻繁にはスピンロックを得ないと判断された場合、または頻繁なスリーパとして識別されてない場合、或いは電力節約に関連して低電力のプロセッサにおいてより最適に実行される他の候補プロセスであると識別されてない場合、それは、ステップ304で高速の第1のプロセッサに割り当てられる。しかる後、第1のプロセッサにおけるオペレーションが正規の方法で実行される。即ち、プロセスの割り当ては、或る実施例では、プロセスが割り当てられるプロセッサがそのプロセスを操作する方法に影響を与えない。そうでない場合、処理はブロック306に進む。
プロセスが、特殊なプロセッサにおいて実行されるべきものとして既にマークされていなかった場合、ブロック306において、そのプロセスがスピンロックを頻繁に得るかどうかが決定される。この決定はいくつかの方法で行われ得る。例えば、コンパイラは、プロセスが資産として要求し、次に、プログラマによって使用される言語構造またはアプリケーション・プログラミング・インターフェイス(API)を調べることによって所定の応答が受け取られるまでその資産をリリースしないということを決めることができ得る。それとは別に、スケジューラが履歴データに基づいて、プロセスが拡張期間の間特定の資産と提携し、その期間中如何なる他の処理も行わないということを決定し得る。更に、プロセスの実行中、そのプロセスがスピンロックしていること/直ちには利用可能でないスピンロックを待っている(そのプロセスがスピンロック・プロセスになり得る)ことが決定され得る。そのために、ブロック306は、プロセスが特殊なプロセスになったかどうか判断するために絶えず各実行プロセスを監視し得る。そのような場合、事前に開始したプロセスは、第1のプロセッサから第2のプロセッサに、またはその逆に移り得る。勿論、当業者は、プロセスが状態を変更するたびにプロセッサ間で1つのプロセスを何回もバウンドさせることを回避するために注意しなければならないということが明らかであろう。
とにかく、プロセスがスピンロック・プロセスである場合、それは、ブロック308において第2のプロセッサに割り当てられる。プロセスがスピンロック・プロセスではない場合、ブロック310において、そのプロセスがスリーパ・ボーナスを有するかどうかが決定される。これは、上述のように、プログラマ表示または履歴の調査によって、或いは、プロセスの実行をリアル・タイムで監視することによって、決定され得る。それとは関係なく、プロセスが関連のスリーパ・ボーナスを有する場合、それは、ブロック308において第2のプロセッサに割り当てられる。そうでない場合、プロセスは、ブロック304において第1のプロセッサに割り当てられる。特定のプロセスが第2のプロセッサに割り当てられるべきであるということが決定される前に、スケジューラがその特定のプロセスからの一貫したスリーパ・ボーナスを要求し得るということは明らかであろう。更に、プロセスは、一旦割り当てられると、それがスリーパ・ボーナスを提供しないという履歴を表示するまで、常にそのように割り当てられ得る。
本明細書において使用される用語は、特定の実施例のみを説明することを目的にしたものであり、本発明を限定することを意図しない。更に、用語「含む」または、「含み」は、それが本明細書で使用される時、記述された特徴、整数、ステップ、オペレーション、要素、および/またはコンポーネントの存在を指すが、1つ又は複数の他の特徴、整数、ステップ、オペレーション、要素、コンポーネント、および/またはそれらのグループの存在又は追加を排除しないということも明らかであろう。
「特許請求の範囲」に記載のすべての手段およびステップと機能要素に対応する構造体、材料、行為、およびそれの均等物は、「特許請求の範囲」に詳しく記載された他の要素と結合してその機能を遂行するための任意の構造体、材料、または行為を含むことを意図される。本発明の説明は、図解及び記述を目的に示されたが、余すところのないこと或いは開示された形式の発明に限定されることを意図するものではない。本発明の技術的範囲および趣旨から逸脱することのない多くの修正および変更が当業者には明らかであろう。本発明の実施例は、本発明の原理および実用的な応用例を最もよく説明するために、および、意図された特定の用途に適するように様々な修正を伴う様々な実施例に関して当業者が本発明を理解することを可能にするために、選択され、記述された。
本明細書に添付された図面のフローチャートは単なる1つ例である。このフローチャートおよびそこに記載されたステップ(またはオペレーション)に対して多くの変更が存在し得る。例えば、それらのステップは異なる順で行なわれてもよく、或いは、ステップが追加、削除、または修正されてもよい。これらの変更はすべて「特許請求の範囲」に記載された発明の一部と考えられる。

Claims (10)

  1. 1のプロセッサと、
    前記第1のプロセッサよりも低い電圧で動作し得る第2のプロセッサと、
    スピンロックに作用している間にピンしたか或いはスリーパ・ボーナスを含んでいたかに関する履歴記録に基づいて、プロセスがスピンロック・プロセス、又はスリープ・ボーナスを伴うプロセスであると判断される場合、前記プロセスを前記第2のプロセッサに割り当てるように構成されたスケジューラと
    を含む、コンピューティング装置。
  2. 前記第1のプロセッサは汎用命令のセットを含み、前記第2のプロセッサは汎用命令のサブセットを含む、請求項1に記載のコンピューティング装置。
  3. 前記第2のプロセッサは、アトミック・テスト・アンド・セット命令のような、前記第2のプロセッサにおいて実行されるプロセスのタイプを最小限サポートするに適した汎用命令のサブセットを含む、請求項1乃至請求項2のいずれかに記載のコンピューティング装置。
  4. 前記プロセスのうちの1つ又は複数個は、当該プロセスが前記第2のプロセッサに割り当てられるべきであるという表示を含み、前記スケジューラはそのようなプロセスを前記第2のプロセッサに割り当てる、請求項1乃至請求項3のいずれかに記載のコンピューティング装置。
  5. マルチプロセッサにおける第1のプロセッサまたは第2のプロセッサにプロセスを割り当てる方法であって、前記第2のプロセッサは、前記第1のプロセッサよりも低い電圧で動作し得、前記方法は、
    プロセスがスピンロック・プロセス、スリープ・ボーナスを伴うプロセス、または他のタイプのプロセスのいずれかとして現在動作することになっているかまたは動作し続けているかを、スピンロックに作用している間にピンしたか或いはスリーパ・ボーナスを含んでいたかに関する履歴記録に基づいて決定するステップと、
    前記プロセスがスピンロック・プロセス又はスリーパ・ボーナスを伴うプロセスである場合、前記プロセスを前記第2のプロセッサに割り当て、そうでない場合には前記プロセスを第1のプロセッサに割り当てるステップと、
    を含む、方法。
  6. 前記決定するステップは、作動中の前記プロセスの監視結果に基づいて、又は前記プロセスの作動中の電力消費量に基づいて決定するステップとを含む、請求項5に記載の方法。
  7. 前記決定するステップは、コンパイラ・プログラムから入力を受け取るステップを含む、請求項5または請求項6に記載の方法。
  8. 前記第1のプロセッサは汎用命令セットを含み、前記第2のプロセッサは前記汎用命令セットのサブセットを含む、請求項5乃至請求項7のいずれかに記載の方法。
  9. 前記第2のプロセッサは、レジスタと、アトミック・テスト・アンド・セット命令とを含む、請求項5乃至請求項8のいずれかに記載の方法。
  10. コンピュータ・プログラムであって、求項5乃至請求項9のいずれかに記載のステップを前記第1のプロセッサ及び前記第2のプロセッサに接続されたスケジューラに実行させるためのコンピュータ・プログラム。
JP2012505124A 2009-04-14 2010-04-01 マルチプロセッサ・コンピューティング装置 Expired - Fee Related JP5752111B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/410,893 2009-04-14
US12/410,893 US20100262966A1 (en) 2009-04-14 2009-04-14 Multiprocessor computing device
PCT/EP2010/054440 WO2010118966A1 (en) 2009-04-14 2010-04-01 Multiprocessor computing device

Publications (2)

Publication Number Publication Date
JP2012523637A JP2012523637A (ja) 2012-10-04
JP5752111B2 true JP5752111B2 (ja) 2015-07-22

Family

ID=42246357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012505124A Expired - Fee Related JP5752111B2 (ja) 2009-04-14 2010-04-01 マルチプロセッサ・コンピューティング装置

Country Status (4)

Country Link
US (2) US20100262966A1 (ja)
EP (1) EP2362953B1 (ja)
JP (1) JP5752111B2 (ja)
WO (1) WO2010118966A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101664108B1 (ko) * 2010-04-13 2016-10-11 삼성전자주식회사 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법
US20120102503A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Green computing via event stream management
US9104410B2 (en) * 2011-01-04 2015-08-11 Alcatel Lucent Power saving hardware
US20130007322A1 (en) 2011-06-29 2013-01-03 International Business Machines Corporation Hardware Enabled Lock Mediation
EP2798467A4 (en) * 2011-12-30 2016-04-27 Intel Corp CONFIGURABLE CORE WITH RESTRICTED COMMAND SET
US8984200B2 (en) * 2012-08-21 2015-03-17 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9619282B2 (en) * 2012-08-21 2017-04-11 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9378069B2 (en) 2014-03-05 2016-06-28 International Business Machines Corporation Lock spin wait operation for multi-threaded applications in a multi-core computing environment
EP2937783B1 (en) * 2014-04-24 2018-08-15 Fujitsu Limited A synchronisation method
US10083068B2 (en) * 2016-03-29 2018-09-25 Microsoft Technology Licensing, Llc Fast transfer of workload between multiple processors
EP3351905B1 (en) * 2017-01-19 2020-03-11 Melexis Technologies NV Sensor with self diagnostic function
CN107608797B (zh) * 2017-09-30 2021-03-02 Oppo广东移动通信有限公司 文件处理方法、装置、存储介质及电子设备
JP2020144527A (ja) * 2019-03-05 2020-09-10 富士ゼロックス株式会社 情報処理装置および半導体装置
WO2023232127A1 (zh) * 2022-06-02 2023-12-07 华为技术有限公司 任务调度方法、装置、***及相关设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0384635B1 (en) * 1989-02-24 1997-08-13 AT&T Corp. Adaptive job scheduling for multiprocessing systems
JPH0496856A (ja) * 1990-08-13 1992-03-30 Matsushita Electric Ind Co Ltd 情報処理装置
JPH04215168A (ja) * 1990-12-13 1992-08-05 Nec Corp コンピュータシステム
JPH07114518A (ja) * 1993-10-15 1995-05-02 Fujitsu Ltd マルチプロセッサシステムにおけるタスクスケジューリング方式
US6247025B1 (en) * 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
JP2002215597A (ja) * 2001-01-15 2002-08-02 Mitsubishi Electric Corp マルチプロセッサ装置
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7234143B2 (en) * 2002-06-20 2007-06-19 Hewlett-Packard Development Company, L.P. Spin-yielding in multi-threaded systems
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7213093B2 (en) * 2003-06-27 2007-05-01 Intel Corporation Queued locks using monitor-memory wait
GB2414573B (en) * 2004-05-26 2007-08-08 Advanced Risc Mach Ltd Control of access to a shared resource in a data processing apparatus
US20070083785A1 (en) * 2004-06-10 2007-04-12 Sehat Sutardja System with high power and low power processors and thread transfer
US7739527B2 (en) * 2004-08-11 2010-06-15 Intel Corporation System and method to enable processor management policy in a multi-processor environment
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7472301B2 (en) * 2005-05-27 2008-12-30 Codman Neuro Sciences Sárl Circuitry for optimization of power consumption in a system employing multiple electronic components, one of which is always powered on
TW200708963A (en) * 2005-08-26 2007-03-01 Ind Tech Res Inst Method and apparatus for synchronization in a multi-processor system
WO2007035611A2 (en) * 2005-09-16 2007-03-29 Hoshiko, Llc Low power mode for portable computer system
US7461275B2 (en) * 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
EP1996993B1 (en) * 2006-01-10 2015-03-11 Cupp Computing As Dual mode power-saving computing system
TW200840358A (en) * 2007-03-16 2008-10-01 Benq Corp Method for managing a scheduling system and related scheduling system
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores

Also Published As

Publication number Publication date
EP2362953A1 (en) 2011-09-07
WO2010118966A1 (en) 2010-10-21
US20100262966A1 (en) 2010-10-14
EP2362953B1 (en) 2017-08-09
US20130081038A1 (en) 2013-03-28
JP2012523637A (ja) 2012-10-04

Similar Documents

Publication Publication Date Title
JP5752111B2 (ja) マルチプロセッサ・コンピューティング装置
US11181970B2 (en) System and method for performing distributed power management without power cycling hosts
US6901522B2 (en) System and method for reducing power consumption in multiprocessor system
JP5981020B2 (ja) 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US8954977B2 (en) Software-based thread remapping for power savings
US8245236B2 (en) Lock based moving of threads in a shared processor partitioning environment
US20090320031A1 (en) Power state-aware thread scheduling mechanism
US20080288942A1 (en) Monitoring performance of a logically-partitioned computer
JP5443709B2 (ja) それぞれが異なる処理能力を有する複数のプロセッサ・ユニットに跨りタスクをスケジュールする方法、コンピュータ・プログラム、データ処理装置
JP2005092875A (ja) スレッドスケジューリングを使用してデータスループットを向上させるためのシステムおよび方法
US20160179429A1 (en) Controlling memory access conflict of threads on multi-core processor with set of highest priority processor cores based on a threshold value of issued-instruction efficiency
US7765548B2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
US20020184290A1 (en) Run queue optimization with hardware multithreading for affinity
WO2019051120A1 (en) IMPROVING USER SPACE LOCK EFFICIENCY USING STATUS C AND TURBO AMPLIFICATION
US8862786B2 (en) Program execution with improved power efficiency
US20090007124A1 (en) Method and mechanism for memory access synchronization
CN112230757A (zh) 用于通过腾空cpu和存储器的子集来降低功率的方法和***
US7958510B2 (en) Device, system and method of managing a resource request
JP5725169B2 (ja) システム、および検出方法
US20130007765A1 (en) Software control device, software control method, and computer product
JP4439288B2 (ja) 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法
JP5896066B2 (ja) プロセッサシステム、および制御プログラム
Torii et al. Asymmetric multi-processing mobile application processor MP211
CN114490332A (zh) 一种web环境下***耗时与瓶颈分析方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150217

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150421

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150519

R150 Certificate of patent or registration of utility model

Ref document number: 5752111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees