JP2005141740A - チャージ割り当てアウェアスケジューラ - Google Patents

チャージ割り当てアウェアスケジューラ Download PDF

Info

Publication number
JP2005141740A
JP2005141740A JP2004313933A JP2004313933A JP2005141740A JP 2005141740 A JP2005141740 A JP 2005141740A JP 2004313933 A JP2004313933 A JP 2004313933A JP 2004313933 A JP2004313933 A JP 2004313933A JP 2005141740 A JP2005141740 A JP 2005141740A
Authority
JP
Japan
Prior art keywords
processor
executable
frequency
data
charge allocation
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.)
Pending
Application number
JP2004313933A
Other languages
English (en)
Inventor
David C Burden
デイビッド・クリストファー・バーデン
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005141740A publication Critical patent/JP2005141740A/ja
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

【課題】電子システムの動作パラメータを適応的に設定する。
【解決手段】チャージ割り当てアウェアスケジューリングに関連するシステム、方法、媒体、及び他の実施形態が開示される。1つの例示的なシステムの実施形態は、プロセッサ(130)のチャージ割り当てステータス(120)を決定し、プロセッサ上で実行されるのを待機しているエグゼキュータブルの特性(プロパティ)を検査し、及び、プロセッサ(130)のチャージ割り当てステータス(120)とエグゼキュータブルの特性に基づいてプロセッサ(130)によって実行されるエグゼキュータブルを選択するように構成されたスケジューリングロジック(110)を備える。
【選択図】図1

Description

本発明は、電子システムの制御に関し、特に、電子システムの周波数や電力などの動作パラメータの制御に関する。
コンピュータプロセッサは、変化する動作属性を報告する能力を有することができる。例えば、周波数スケーラブルプロセッサ(以下、周波数増減可能プロセッサ。周波数計測可能プロセッサの場合もある)は、その動作周波数を報告することができる。同様に、電圧増減可能プロセッサは、その動作電圧を報告することができる。従来、スケジューラは、利用可能な電力のような環境データを検査して、実行するエグゼキュータブル(エグゼキュータブルとは、例えば、実行可能なプロセスやスレッドなどの実行可能形態をいう)を選択する場合がある。エグゼキュータブルは、動作属性を再設定して、所望の結果を達成することになる。例えば、プロセスは、プロセッサの周波数を所望の周波数に再設定する命令および電圧を所望の電圧に再設定する命令を含む場合がある。これらのスケジューラは、例えば、システム電力を節約することに関係したアプリケーション(例えば、マーズローバ(Mars rover)、ハンドヘルド組み込みシステム)で使用されてきた。これらのスケジューラは、以下の方程式の特性を操作することによってシステム電力を操作することに関係している。
V=IR(ここで、Vは電圧、Iは電流、Rは抵抗)
P=VI(ここで、Pは電力)
P≒fV(ここで、fは周波数)
≒Cef*Vdd *f(ここで、Pは動的な電力、Cefはスイッチ静電容量、Vddは供給電圧)
例えば、電力節約スケジューラは、或るプロセスがプロセッサをより低い電圧に設定できるので、その或るプロセスをスケジューリングし、次いで、周波数をより低い周波数に設定できる第2のプロセスをスケジューリングすることができる。このように、電力節約スケジューラは、電圧および周波数のようなプロセッサ属性を設定することによって、電力消費を操作する。しかし、これらのタイプのスケジューラは、電圧および周波数のようなプロセッサ属性が、スケジューラおよび/またはスケジューリングされたプロセスによってプログラム的かつ/または電子的に直接制御(例えば、設定、再設定)できることを前提としている。
本発明の1つの目的は、電圧及び周波数のような電子システムの動作属性を適応的に設定可能な手段を提供することである。
本発明は、その一態様においては、周波数増減可能プロセッサのチャージ割り当てステータスを決定し、そのプロセッサ上での実行のためにスケジューリングされる1つ以上のエグゼキュータブルの1つ以上の選択されたプロパティを検査し、そのプロセッサのチャージ割り当てステータスおよび1つ以上の選択されたプロパティに少なくとも部分的に基づいて、そのプロセッサによって実行されるエグゼキュータブルを選択し、及び、エグゼキュータブルの実行をスケジューリングさせる信号を生成するように構成されたスケジューリングロジックを備えるシステムである。また、他の一態様においては、周波数増減可能プロセッサの動作周波数を決定するステップと、プロセスに関連した電力データを検査するステップと、プロセッサの動作周波数および電力データに少なくとも部分的に基づいて、プロセスをプロセッサによって処理されるように選択的にスケジューリングするステップとを含む方法である。
本明細書に援用されて本明細書の一部を構成する添付図面は、本発明の態様のさまざまな例示の実施形態を示すさまざまな例示のシステム、方法等を示す。図に示した要素の境界(例えば、ボックス、ボックスの群、または他の形状)は、境界の一例を表すことが理解されよう。1つの要素を複数の要素として設計することもできるし、複数の要素を1つの要素として設計することもできることが当業者には理解されよう。別の要素の内部コンポーネントとして図示した要素を外部コンポーネントとして実施することもできるし、その逆も実施することができる。さらに、要素は、一律の縮尺で描かれていないことがある。
この出願は、チャージ割り当てアウェア(charge rationing aware)スケジューリングに関連した例示のシステム、方法、コンピュータ可読媒体等を記載している。これらの例示のシステムおよび方法は、プロセッサの状態(例えば、電力消費率、動作周波数)を判断し、プロセッサの状態およびプロセス(1または複数)がプロセッサの状態にどのように影響するかまたはプロセッサの状態によってどのような影響を受けるかに基づいてエグゼキュータブル(例えばプロセス、スレッド)を選択し、かつ/または、スケジューリングする。一般に、スケジューリングはフィードバックに基づいて実行でき、このフィードバックは、プロセスがスケジューリングされることになるプロセッサのその時点の動作周波数である。
以下は、本明細書で使用される選択された用語の定義を含む。これらの定義は、用語の範囲に含まれ、実施のために使用できるコンポーネントのさまざまな例および/または形態を含む。それらの例は、限定するためのものではない。用語の単数形および複数形の双方は、これらの定義内に含めることができる。
本明細書で使用される「コンピュータ可読媒体」は、信号、命令、および/またはデータを直接または間接に提供することに関与する媒体を指す。コンピュータ可読媒体は、不揮発性媒体、揮発性媒体、および伝送媒体が含まれるが、これらに限定されない形態を取ることができる。不揮発性媒体には、例えば、光ディスクまたは磁気ディスク等が含まれ得る。揮発性媒体には、例えば、光ディスクまたは磁気ディスク、ダイナミックメモリ等が含まれ得る。伝送媒体には、同軸ケーブル、銅線、光ファイバケーブル等が含まれ得る。また、伝送媒体は、電波または赤外線のデータ通信中に生成された電磁放射のような電磁放射の形態を取ることもできるし、1つまたは複数の群の信号の形態を取ることもできる。コンピュータ可読媒体の一般的な形態には、特定用途向け集積回路(ASIC)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、ディスク、搬送波、メモリスティック、フロッピィディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD−ROM、他の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理媒体、EPROM、フラッシュEPROM、または他のメモリチップもしくはカード、およびコンピュータ、プロセッサ、もしくは他の電子デバイスが読み出すことができる他の媒体が含まれるが、これらに限定されるものではない。命令または他のソフトウェアをインターネットのようなネットワークを介して伝搬するのに使用される信号は、「コンピュータ可読媒体」とみなすことができる。
本明細書で使用される「データストア」は、データを記憶できる物理エンティティおよび/または論理エンティティを指す。データストアは、例えば、データベース、テーブル、ファイル、リスト、キュー、ヒープ、メモリ、レジスタ等とすることができる。データストアは、1つの論理エンティティおよび/もしくは物理エンティティ内に存在することもあるし、かつ/または、2つ以上の論理エンティティおよび/もしくは物理エンティティ間に分散されることもある。
本明細書で使用される「ロジック」には、機能(1つまたは複数)もしくは動作(1つまたは複数)を実行し、かつ/または、別のコンポーネントからの機能もしくは動作を引き起こすためのハードウェア、ファームウェア、ソフトウェア、および/またはそれぞれの組み合わせが含まれるが、これらに限定されるものではない。例えば、所望のアプリケーションまたはニーズに基づいて、ロジックには、ソフトウェア制御のマイクロプロセッサ、ASICのようなディスクリートロジック、プログラミングされたロジックデバイス、命令を収容するメモリデバイス等が含まれ得る。また、ロジックは、全体をソフトウェアとして具現化することもできる。複数の論理ロジックを記載する場合、これらの複数の論理ロジックを1つの物理ロジックに実装できる場合がある。同様に、単一の論理ロジックを記載する場合、単一の論理ロジックを複数の物理ロジックに分散できる場合がある。
本明細書で使用される「信号」には、1つまたは複数の電気信号もしくは光信号、アナログもしくはデジタルの1つまたは複数のコンピュータ命令もしくはプロセッサ命令、メッセージ、ビットもしくはビットストリーム、または受信、送信、および/もしくは検出が可能な他の手段が含まれるが、これらに限定されるものではない。
本明細書で使用される「ソフトウェア」には、読み出し、解釈、コンパイル、および/または実行が可能で、かつ、コンピュータ、プロセッサ、または他の電子デバイスに機能、動作を実行させ、かつ/または所望のように振る舞う1つまたは複数のコンピュータ命令またはプロセッサ命令が含まれるが、これらに限定されるものではない。命令は、動的にリンクされたライブラリからの個々のアプリケーションまたはコードを含むルーチン、アルゴリズム、モジュール、メソッド、スレッド、および/またはプログラムのようなさまざまな形態で具現化することができる。また、ソフトウェアは、さまざまな実行可能な形態および/またはロード可能な形態で実施することもでき、これらの形態には、スタンドアロンプログラム、関数呼び出し(ローカルおよび/またはリモート)、サーブレット(servelet)、アプレット、メモリに記憶された命令、オペレーティングシステムの一部、または他のタイプの実行可能命令が含まれるが、これらに限定されるものではない。ソフトウェアの形態は、例えば、所望のアプリケーションの要求仕様、そのソフトウェアが実行される環境、および/または設計者/プログラマの要求等に依存する場合があるということが当業者には理解されよう。また、コンピュータ可読命令および/または実行可能命令は、1つのロジックに配置することができ、かつ/または、2つ以上の通信するロジック、協働するロジック、および/もしくは並列処理ロジック間に分散させることができ、したがって、シリアル、パラレル、超並列、および他の方法でロードし、かつ/または、実行することができることも理解されよう。
本明細書で説明する例示のシステムおよび方法のさまざまなコンポーネントを実施するのに適したソフトウェアには、Java、Pascal、C#、C++、C、CGI、Perl、SQL、API、SDK、アセンブリ、マシン、ファームウェア、マイクロコードなどのプログラミング言語及びツール、および/または他の言語およびツールが含まれる。ソフトウェアは、システム全体であろうが、システムのコンポーネントであろうが、製品として具現化することができ、上記で定義したようなコンピュータ可読媒体の一部として保持することができる。ソフトウェアの別の形態には、ネットワークまたは他の通信媒体を介してソフトウェアのプログラムコードを受け手に送信する信号が含まれ得る。
「動作可能接続」、すなわちエンティティが「動作可能に接続される」接続は、信号、物理通信フロー、および/または論理通信フローを送信でき、かつ/または、受信できるものである。通常、動作可能接続には、物理インターフェース、電気インターフェース、および/またはデータインターフェースが含まれるが、動作可能な接続には、動作可能な制御を可能にするのに十分なこれらのタイプの接続または他のタイプの接続の異なる組み合わせが含まれ得ることに留意すべきである。
以下の詳細な説明のいくつかの部分は、メモリ内のデータビットに対するオペレーションのアルゴリズムおよびシンボル表現の観点から提示される。これらのアルゴリズム記述および表現は、当業者が自身の作業の内容を他者に伝達するのに使用する手段である。アルゴリズムは、本明細書においておよび一般的には、或る結果を生み出す一連のオペレーションと考えられる。オペレーションには、物理量の物理操作が含まれ得る。通例、物理量は、ロジックなどにおいて記憶、転送、結合、比較、およびそれ以外の操作が可能な電気信号または磁気信号の形態を取るが、必ずしもそうであるとは限らない。
これらの信号をビット、値、要素、シンボル、文字、用語、数字等と呼ぶことが、主として一般的な使用の理由から、時に便利であることが分かっている。しかしながら、これらの用語および類似の用語は、適切な物理量に関連付けられるべきものであり、これらの量に適用された単に便利なラベルに過ぎないものであることに留意すべきである。特に別段の言及がない限り、この説明全体を通して、処理、コンピューティング(演算など)、計算、決定(判断)、検査、分析、表示等のような用語は、コンピュータシステム、ロジック、プロセッサ、または物理(電子)量として表現されたデータの操作および変換を行う同様の電子デバイスの動作およびプロセスを指すことが理解される。
図1は、スケジューリングロジック110を含む例示のシステムを示している。このスケジューリングロジック110は、例えば、周波数増減可能プロセッサ130のチャージ割り当て(charge rationing)ステータス120を決定するように構成することができる。一般に、チャージ割り当てステータス120は、プロセッサ130の動作周波数に関係している。プロセッサ130のチャージ割り当てステータス120を決定することは、例えば、プロセッサ130の動作周波数を決定することを含むことができる。例示として、周波数増減可能プロセッサ130は、一定の電力要求または一定の電力要求の結果に応じて、その動作周波数を減少させることができる。例えば、プロセッサ130は、比較的高い電力消費率で動作していると、過熱することがある。過熱による損傷を防止するために、プロセッサ130は、冷却するためにその動作周波数を低下させることができる。一旦冷却すると、プロセッサ130は、次にその動作周波数を増加させることができる。このように、周波数増減可能プロセッサ130のチャージ割り当てステータス120を、例えば、プロセッサ130の動作周波数および動作周波数の変化を監視することによって決定することができる。
動作周波数について上述したが、別の例では、データを評価することによって、プロセッサ130のチャージ割り当てステータス120を決定することができる。このデータには、プロセッサ130の動作周波数、プロセッサ130の動作周波数の履歴、プロセッサ130の周波数の変化量、および周波数シフト標識が含まれるが、これらに限定されるものではない。チャージ割り当てステータス120を決定するために検査される情報は、例えば割り込みによって配信することができる。これに加えて、かつ/または、これに代えて、この情報を、プロセッサ130に関連付けられたチャージ割り当てデータに記憶することもできる。したがって、一例では、プロセッサ130は、チャージ割り当てステータス120に関連したデータを記憶できる1つまたは複数のレジスタを含むことができる。例えば、レジスタは、プロセッサ130の動作周波数を記憶することができる。したがって、一例では、割り込みがプロセッサ130によって生成された場合、スケジューリングロジック110は、このレジスタを読み出して、プロセッサ130の動作周波数を決定することができる。レジスタを説明したが、メモリのような他の装置も使用できることが理解されるべきである。
その時点の動作周波数を1つまたは複数の過去の動作周波数と比較することによって、スケジューリングロジック110は、プロセッサ130のチャージ割り当てステータス120を決定することができる。例示として、動作周波数が減少している場合、プロセッサ130が、長期にわたる比較的高い電力消費の影響(例えば、過熱)を考慮しようとしている可能性があると、スケジューリングロジック110は判断することができる。別の例示として、動作周波数が増加している場合、プロセッサ130が、前の長期にわたる比較的高い電力消費の影響から回復していると、スケジューリングロジック110は判断することができる。この回復は、例えば、プロセッサ130が、より低い周波数でプロセスを実行し、より少ない電力を消費し、したがって冷却したことによる可能性がある。
また、スケジューリングロジック110は、プロセッサ130上での実行をスケジューリングされることを待機しているエグゼキュータブルの選択されたプロパティを検査するように構成されることもできる。エグゼキュータブルは、例えば、プロセス、スレッド等とすることができる。例えば、1組の実行可能プロセス140(例えば、プロセス142および144〜148)は、プロセッサ130上での実行を待機していることがある。待機中のエグゼキュータブルに関連したプロパティには、そのエグゼキュータブルの識別情報、そのエグゼキュータブルがプロセッサ周波数の減少に関連したものかどうか、そのエグゼキュータブルがプロセッサ周波数の増加に関連したものかどうか、そのエグゼキュータブルが安定したプロセッサ周波数に関連したものかどうか、電力属性(例えば、最大電力消費)等が含まれ得るが、これらに限定されるものではない。
スケジューリングロジック110は、例えば、プロセッサ130のチャージ割り当てステータス120および選択された1つまたは複数のプロパティに少なくとも部分的に基づいて、プロセッサ130によって実行されるエグゼキュータブルを選択するように構成されることができる。スケジューリングロジック110が、プロセッサ130によって実行されるエグゼキュータブルを一旦選択すると、スケジューリングロジック110は、そのエグゼキュータブルの実行をスケジューリングさせる信号を生成することができる。例えば、スケジューリングロジック110は、そのエグゼキュータブルのエントリアドレスをプロセッサ130に渡したり、プロセス識別子をプロセッサ130のアドレスレジスタに入力したり等をすることができる。
一例では、スケジューリングロジック110は、エグゼキュータブルがプロセッサ130によって実行される順序に関連したスケジュールデータを記憶するように構成されたスケジュールデータストア150とやり取りすることができる。例えば、スケジュールデータストア150は、プロセッサ130によって実行されるエグゼキュータブルのプロセス識別子および/またはエントリアドレスを記憶するプロセスキューとすることができる。したがって、スケジューリングロジック110は、プロセッサ130のチャージ割り当てステータス120、スケジュールデータストア150のスケジュールデータ、および選択されたプロパティに少なくとも部分的に基づいて、エグゼキュータブルの実行順序を決定するようにさらに構成されることができる。実行順序の決定後、スケジューリングロジック110は、スケジュールデータストア150においてスケジュールデータの選択的な配列を引き起こす信号(1つまたは複数)を生成することができる。
例示として、1組の待機中のエグゼキュータブルには、数個のプロセス(例えば、プロセス142、および144〜148)が含まれることがある。これらのプロセスは、当該プロセスがプロセッサ130に過去にどのような影響を与えたか、当該プロセスがさまざまな状況下でプロセッサ130にどのような影響を与えることがあるか、当該プロセスの実行に好ましい状況等を特定するデータに関連付けることができる。チャージ割り当てステータス120を検査することによって、スケジューリングロジック110は、プロセスA148をプロセスキュー150の先頭にすべきであると決定することができる。例えば、チャージ割り当てステータス120は、プロセッサ130が比較的低い動作周波数で動作していることを示すことができ、プロセッサ130に冷却の機会を与えるために、プロセスA148のような電力の使用がより少ないプロセスを次に実行すべきことを示すことができる。プロセスA148を実行することによって、プロセッサ130がより高い動作周波数に戻ることが可能になると予想されるので、スケジューリングロジック110は、比較的高い動作周波数による利益を受けることができるプロセスB144を、プロセスA148の後にスケジューリングすべきことを決定することができる。プロセスB144を実行することによって、プロセッサ130は過熱されることがあり、したがって、より低い動作周波数に切り換えることが予想されるので、スケジューリングロジック110は、プロセスB144の後にプロセスC142をスケジューリングすることができる。ここで、プロセスC142は、より低い動作周波数で比較的低い電力消費によって実行できるものであり、したがって、プロセッサ130に冷却の別の機会を提供する。3つのプロセスを説明したが、これより多くの個数のプロセスおよび/またはこれより少ない個数のプロセスが、プロセッサ130によって実行されるようスケジューリングするのに利用可能であることが理解されるべきである。また、プロセスを説明したが、スレッドのような他のエグゼキュータブルも処理できることが理解されるべきである。同様に、プロセスキュー150を説明したが、実行順序によって編成できるリスト、リンクリスト、テーブル、ツリー等のような他のデータ構造体も使用できることが理解されるべきである。
スケジューリングロジック110は、データストア150に初期順序を作成することができる。しかしながら、スケジューリングロジック110は、スケジュールデータストア150のスケジュールデータをスケジューリングロジック110のために並べ替えるか、または、すでに並べ替えているようにさらに構成されることができる。この並べ替えは、例えば、プロセッサ130のチャージ割り当てステータス120の変化に応じて、選択的に行うことができる。例えば、スケジューリングロジック110は、プロセスA148の実行によって、プロセッサ130に冷却の機会が提供され、したがって、プロセッサ130がより高い動作周波数に戻るであろうと予想したかもしれないが、プロセスA148は、予期された電力消費よりも高い電力消費で実行されており、プロセッサ130をより低速で動作させる必要がある場合もある。したがって、チャージ割り当てステータス120の変化が検出されると、スケジューリングロジック110は、データストア150のデータを並べ替えて、プロセスC142をプロセスB144の前に移動させ、それによって、プロセッサ130に冷却の機会を提供することができる。
図2は、プロセッサ230のチャージ割り当てステータス220を決定するように構成されたスケジューリングロジック210を含む例示のシステムを示している。一般に、チャージ割り当てステータス220は、プロセッサ230の動作周波数に関係している。また、スケジューリングロジック210は、プロセッサ230に関連したプロセッサデータ225を検査するように構成されることもできる。例えば、プロセッサデータ225には、プロセッサ230の温度、プロセッサ230の温度の履歴、プロセッサ230の温度の変化、プロセッサ230の電力消費、プロセッサ230の電力消費の履歴、プロセッサ230の電力消費の変化、プロセッサ230を流れる電流、プロセッサ230の電流履歴、およびプロセッサ230を流れる電流の変化が含まれ得るが、これらに限定されるものではない。プロセッサデータ225は、プロセッサ230のチャージ割り当てステータス220の決定、および/または、プロセッサ230上のさまざまなプロセスの影響(例えば、瞬間における、履歴的な、または予測される)の決定を容易にすることができる。
したがって、スケジューリングロジック210は、プロセッサデータ225、チャージ割り当てステータス220、およびエグゼキュータブルに関連したプロパティに基づいて、プロセッサ230によって実行されるエグゼキュータブルを選択するようにさらに構成されることができる。例示として、スケジューリングロジック210は、エグゼキュータブルに関連したプロパティを検査でき、所定のエグゼキュータブルが、比較的高い電流量を引き出す可能性があると判断することができる。したがって、スケジューリングロジック210は、比較的一定の電流がプロセッサ230に流入するように、他の同様のプロセスと共にそのエグゼキュータブルをスケジューリングすることができる。これは、周波数の増減のようなプロセッサ230のチャージ割り当て動作に応答することを容易にすることができる。
一例では、スケジューリングロジック210は、プロセッサデータ、チャージ割り当てステータス220等に基づいてエグゼキュータブルの実行順序を決定するようにさらに構成される。したがって、スケジューリングロジック210は、スケジュールデータストア250のスケジュールデータを再配列でき、かつ/または、その再配列を引き起こすことができる。例えば、チャージ割り当てステータス220、プロセッサデータ225、および1組のプロセス240内のプロセスの1つまたは複数の選択されたプロパティの検査後に、スケジューリングロジック210は、スケジュールデータストア250のスケジュールデータを配列して、プロセッサ230で比較的低い周波数を維持することを容易にすることができる。
図3は、プロセッサ330のチャージ割り当てステータス320を決定するように構成されたスケジューリングロジック310を含む別の例示のシステムを示している。チャージ割り当てステータス320を、例えば、プロセッサ330の周波数に関係付けることができる。また、スケジューリングロジック310は、プロセッサ330上で実行するようにスケジューリングされることを待機しているエグゼキュータブルの選択されたプロパティを検査することもできる。したがって、このシステムは、例えば、エグゼキュータブルの電力消費属性の特徴付けを容易にするテストプロセッサ325を含むことができる。一例では、テストプロセッサ325は、エグゼキュータブルを実行し、そのエグゼキュータブルの実行中に、テストプロセッサ325および/またはそのエグゼキュータブルのプロパティ(例えば、熱、電流、電力)を監視するように構成される。テストプロセッサ325のプロパティを監視することによって、エグゼキュータブルを実行するプロセッサに対する影響を特徴付けるデータを作成することが容易になる。このデータは、エグゼキュータブルを属性について特徴付けることができる。この属性には、実行中の実際の定格電力、実行中の予想された定格電力、実際の実行時間、予想された実行時間、実行中に生成された実際の熱、実行中に生成される予想された熱、実行中の実際の電流、および実行中の予想された電流が含まれるが、これらに限定されるものではない。「実際の」データは、実行中にテストプロセッサ325および/またはエグゼキュータブルを監視することによって収集することができる。「予想された」データは、さまざまなエグゼキュータブルの特性を予想するように構成されたプロセスアナライザ(図示せず)によって提供することができる。
一例では、スケジューリングロジック310は、特徴付けデータとそのデータのチャージ割り当てステータス320に対する関係とに基づいてエグゼキュータブルの実行順序を決定するようにさらに構成される。したがって、スケジューリングロジック310は、スケジュールデータストア350のスケジュールデータを再配列でき、かつ/または、スケジュールデータの再配列を引き起こすことができる。例えば、テストプロセッサ325は、1組のプロセス340のプロセスをテスト実行した後に、スケジュールデータストア350のスケジュールデータを配列して、プロセッサ330において比較的高い周波数を維持することを容易にすることができる。
上述した例示のシステムは、さまざまな装置(デバイス)に組み込むことができる。このさまざまなデバイスには、画像形成装置、コンピュータ、携帯電話等が含まれるが、これらに限定されるものではない。同様に、以下で述べる例示の方法は、プリンタ、コンピュータ、携帯電話等のようなデバイスによって実行することもできる。
図4および図5のフロー図を参照することによって、例示の方法をより良く理解することができる。説明を簡単にするために、図示した方法論は、一連のブロックとして図示および説明されるが、いくつかのブロックは、図示および説明したものとは異なる順序で実行することができ、かつ/または、他のブロックと同時に実行することができるので、これらの方法論は、このブロックの順序によって限定されるものではないことが理解されるべきである。その上、例示の方法論を実施するのに必要なブロックは、図示したすべてのブロックよりも少なくすることもできる。さらに、追加される方法論および/または代替的な方法論は、図示しない追加のブロックを使用することもできる。一例では、方法論は、コンピュータ可読媒体上に記憶されたプロセッサ実行可能命令および/またはオペレーションとして実施される。
このフロー図では、ブロックは、例えばソフトウェアで実施できる「処理ブロック」を示す。これに加えて、かつ/または、これに代えて、処理ブロックは、デジタル信号プロセッサ(DSP)、ASIC等のような機能的に等価な回路によって実行される機能および/または動作を表すこともできる。
フロー図は、どの特定のプログラミング言語のシンタックスも、どの特定の方法論のシンタックスも、どの特定のスタイル(例えば、手続型、オブジェクト指向型)のシンタックスも示すものではない。フロー図は、当業者が回路を作製したり、ソフトウェアを生成したり、ハードウェアとソフトウェアの組み合わせを使用したりして図示した処理を実行するのに使用できる機能的な情報を示している。いくつかの例では、一時変数、ルーチンループ等のようなプログラム要素は図示されていないことが理解されよう。図示したものとは異なる他のシーケンスで図示したブロックを実行でき、かつ/または、複数のブロックを結合したり複数のコンポーネントに分離したりできるような動的で柔軟なプロセスを、電子的アプリケーションおよびソフトウェアアプリケーションは含むことができることがさらに理解されよう。プロセスは、マシン語技法、手続型技法、オブジェクト指向型技法、および/または人工知能技法のようなさまざまなプログラミング手法を使用して実施できることが理解されよう。
図4は、例示のチャージ割り当てアウェアスケジューリング方法400を示している。この方法400は、410において、周波数増減可能プロセッサの動作周波数を決定することを含むことができる。動作周波数は、例えば、動作周波数を記憶するプロセッサのデータストア(例えばレジスタ)を検査すること、プロセッサからの割り込み(1つまたは複数)またはメッセージ(1つまたは複数)を解析すること等によって決定することができる。
また、方法400は、420において、プロセスに関連した電力データを検査することも含むことができる。この電力データは、例えば、プロセスを実行することに関連したイベントを記述することができる。イベントには、プロセスがまだ実行されておらず、したがって、実行時の特徴付けデータがプロセスに関連付けられていないことを特定するもの、プロセスが実行された時にプロセッサ周波数が増加したことを特定するもの、プロセスが実行された時にプロセッサ周波数が減少したことを特定するもの、ならびにプロセスが実行された時にプロセッサ周波数が一定および/またはほぼ一定のままであることを特定するものが含まれ得るが、これらに限定されるものではない。これらのイベントによって、プロセッサに実行用に提示するプロセス、および/または、プロセスをスケジューリングできる順序の特定を容易にすることができる。
こうして、方法400は、430において、プロセッサ動作周波数および電力データに基づいてプロセッサによる処理用のプロセス(1つまたは複数)を選択的にスケジューリングすることを含む。処理用のプロセスを選択的にスケジューリングすることは、例えば、プロセッサにプロセスを実行させる信号(1つまたは複数)を生成することを含むことができる。例えば、エントリアドレスをプロセッサレジスタに置くことができ、割り込みを発生させて、プロセッサにそのプロセスにタスク切替させることができる。別の例では、処理用のプロセスを選択的にスケジューリングすることは、プロセスのスケジュール順序によって順序付けられたデータ構造体の選択された場所にプロセスを論理的に配置する信号(1つまたは複数)を生成することを含むことができる。例えば、プロセス識別子(PID)を「インサートアット(insert at)」コマンドのプロセスキューに渡すことができる。別の例では、処理用のプロセスを選択的にスケジューリングすることは、プロセスのスケジュール順序によって順序付けられたデータ構造体に値を記憶することを含むことができる。例えば、この方法は、プロセス実行エントリアドレスをプロセス実行テーブルの適切な場所に書き込むことができる。
方法400はプロセスを記述するが、スレッドのような他のエグゼキュータブルも同様にスケジューリングできることが理解されるべきである。さらに、図4は、さまざまな動作が順次行われることを示しているが、図4に示すさまざまな動作は、実質的に並行して行うこともできることが理解されるべきである。例示として、第1のプロセスが、プロセッサのチャージ割り当てステータスを監視でき、第2のプロセスが電力データを検査でき、第3のプロセスが、第1のプロセスおよび第2のプロセスからの出力に基づいて、実行するプロセスを選択的にスケジューリングすることができる。3つのプロセスを説明したが、これよりも多くの個数のプロセスおよび/またはこれよりも少ない個数のプロセスも使用でき、軽量プロセス(lightweight process)、普通のプロセス(regular process)、スレッド、および他の手法も使用できることが理解されるべきである。
図5は、別の例示のチャージ割り当てアウェア方法500を示している。この方法500は、510において、周波数増減可能プロセッサの動作周波数を決定することを含むことができる。また、方法500は、520において、プロセスに関連した電力データを検査することも含むことができる。また、方法500は、530において、周波数増減可能プロセッサに関連したプロセッサデータを検査することも含むことができる。このプロセッサデータは、属性を記述することができる。この属性には、プロセッサ温度、プロセッサ温度の履歴、プロセッサ温度の変化、プロセッサの電力消費、プロセッサの電力消費の履歴、プロセッサの電力消費の変化、プロセッサを流れる電流、プロセッサを流れる電流の履歴、およびプロセッサを流れる電流の変化が含まれるが、これらに限定されるものではない。
こうして、方法500は、540において、プロセッサデータ、プロセッサ周波数、および電力データに少なくとも部分的に基づいて、処理用のプロセス(1つまたは複数)を選択的にスケジューリングすることを含む。これに加えて、かつ/または、これに代えて、方法500は、550において、プロセッサに利用可能なプロセスキュー内のプロセス(1つまたは複数)の配列を引き起こし、かつ/または、当該プロセスを配列することも含むことができる。したがって、例えば、プロセスが実行されることになるプロセッサのチャージ割り当てステータス(例えば、周波数)と、プロセス(1つまたは複数)がプロセッサに対して有する予想された影響とに依存した順序で、プロセスキューにおいてプロセスを配列することができる。
方法500はプロセスを記述するが、スレッドのような他のエグゼキュータブルも同様にスケジューリングできることが理解されるべきである。さらに、図5は、さまざまな動作が順次行われることを示しているが、図5に示すさまざまな動作は、実質的に並行して行うこともできることが理解されるべきである。例示として、第1のプロセスがチャージ割り当てステータスを決定でき、第2のプロセスが電力データを分析でき、第3のプロセスがプロセッサデータを分析でき、第4のプロセスが、実行する次のプロセスを選択でき、第5のプロセスが、選択されたプロセスをプロセスキューに挿入することができる。5つのプロセスを説明したが、これよりも多くの個数のプロセスおよび/またはこれよりも少ない個数のプロセスも使用でき、軽量プロセス、普通のプロセス、スレッド、および他の手法も使用できることが理解されるべきである。
一例では、コンピュータ可読媒体が、周波数増減可能プロセッサの動作周波数を決定すること、実行可能エンティティに関連した電力データを受け取ること、動作周波数および電力データに少なくとも部分的に基づいてプロセッサによる処理用の実行可能エンティティを選択的にスケジューリングすることとを含む方法を実行するように動作できるプロセッサ実行可能命令を記憶することができる。
図6は、コンピュータ600を示している。このコンピュータ600は、プロセッサ602、メモリ604、ディスク606、入出力ポート610、およびバス608によって動作可能に接続されたネットワークインターフェース612を含む。本明細書で説明するシステムの実行可能コンポーネントは、コンピュータ600のようなコンピュータ上に配置することができる。同様に、本明細書で説明するコンピュータ実行可能方法も、コンピュータ600のようなコンピュータ上で実行することができる。他のコンピュータも、本明細書で説明するシステムおよび方法と共に使用できることが理解されるべきである。
プロセッサ602は、デュアルマイクロプロセッサアーキテクチャおよび他のマルチプロセッサアーキテクチャを含むさまざまな種々のプロセッサとすることができる。メモリ604には、揮発性メモリおよび/または不揮発性メモリが含まれ得る。不揮発性メモリには、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的プログラマブル読み出し専用メモリ、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)等が含まれ得るが、これらに限定されるものではない。揮発性メモリには、例えば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、シンクロナスRAM、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、およびダイレクトRAMバスRAM(DRRAM)が含まれ得る。ディスク606には、磁気ディスクドライブ、フロッピィディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカード、および/またはメモリスティックのようなデバイスが含まれ得るが、これらに限定されるものではない。さらに、ディスク606には、コンパクトディスクROM(CD−ROM)、CD記録可能ドライブ(CD−Rドライブ)、CD書き換え可能ドライブ(CD−RWドライブ)、および/またはデジタル多用途ROMドライブ(DVD ROM)のような光ドライブも含まれ得る。メモリ604は、例えば、プロセス614および/またはデータ616を記憶することができる。ディスク606および/またはメモリ604は、コンピュータ600の資源の制御および割り当てを行うオペレーティングシステムを記憶することができる。
バス608は、単一の内部バス相互接続アーキテクチャおよび/または他のバスアーキテクチャとすることができる。バス608は、さまざまなタイプのものとすることができ、このさまざまなタイプには、メモリバスもしくはメモリコントローラ、周辺バスもしくは外部バス、および/またはローカルバスが含まれるが、これらに限定されるものではない。ローカルバスは、さまざまなものとすることができ、このさまざまなものには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、周辺機器相互接続(PCI)バス、ユニバーサルシリアルバス(USB)、および小型コンピュータシステムインターフェース(SCSI)バスが含まれるが、これらに限定されるものではない。
コンピュータ600は、入出力ポート610を介して入出力デバイス618とやり取りを行う。入出力デバイス618には、キーボード、マイクロフォン、ポインティング選択デバイス、カメラ、ビデオカード、ディスプレイ等が含まれ得るが、これらに限定されるものではない。入出力ポート610には、シリアルポート、パラレルポート、およびUSBポートが含まれ得るが、これらに限定されるものではない。
コンピュータ600は、ネットワーク環境で動作することができ、したがって、ネットワークインターフェース(NIC)612によってネットワークデバイス620に接続される。ネットワークデバイス620を通じて、コンピュータ600は、ネットワークとやり取りを行うことができる。ネットワークを通じて、コンピュータ600をリモートコンピュータに論理的に接続することができる。コンピュータ600がやり取りを行うことができるネットワークには、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、および他のネットワークが含まれるが、これらに限定されるものではない。ネットワークインターフェース612は、LAN技術に接続することができる。このLAN技術には、ファイバー分散データインターフェース(FDDI)、銅分散データインターフェース(CDDI)、イーサネット/IEEE802.3、トークンリング/IEEE802.5、無線/IEEE802.11、Bluetooth(ブルートゥース)等が含まれるが、これらに限定されるものではない。同様に、ネットワークインターフェース612は、WAN技術に接続することもできる。このWAN技術には、ポイントツーポイントリンク、サービス統合デジタルネットワーク(ISDN)のような回線交換ネットワーク、パケット交換ネットワーク、およびデジタル加入者線(DSL)が含まれるが、これらに限定されるものではない。
図7は、例示のチャージ割り当てアウェアシステムおよび方法が動作できる例示の画像形成装置700を示している。この画像形成装置700は、例えば印刷データを記憶するように構成されたメモリ710、または、より一般的には画像処理に使用されるように構成されたメモリ710を含むことができる。また、画像形成装置700は、周波数増減可能プロセッサ735も含むことができる。したがって、画像形成装置700は、プロセッサ735によって提供されたデータを分析して、例えば、どのプロセス(1つまたは複数)および/または印刷ジョブ(1つまたは複数)を処理すべきか、かつ/または、処理するようにスケジューリングすべきかを決定できるチャージ割り当てアウェアスケジューリングロジック715を含むことができる。一例では、この分析はほぼ実時間(リアルタイム)で行われる。
画像形成装置700は、レンダリング(描画)される印刷データを受信することができる。したがって、画像形成装置700は、印刷データからプリンタ準備画像を生成するように構成されたレンダリングロジック(描画ロジック)725を含むことができる。レンダリングは、必要とされるデータのフォーマットおよび画像形成装置のタイプに基づいて変わる。一般に、レンダリングロジック725は、高水準データを、表示または印刷用のグラフィカル画像(例えば、印刷準備画像)に変換する。例えば、一形態は、3次元の物体またはシーンの数学モデルを採用し、そのモデルをビットマップ画像に変換するレイトレーシングである。別の例は、HTMLを表示/印刷用の画像に変換するプロセスである。画像形成装置700は、レンダリングする必要のないプリンタ準備データを受信することもでき、したがって、レンダリングロジック725は、いくつかの画像形成装置には存在しない場合がある。
また、画像形成装置700は、印刷準備画像から印刷媒体上に画像を生成するように構成された画像形成メカニズム730も含むことができる。この画像形成メカニズム730は、画像形成装置700のタイプに基づいて変わることがある。画像形成メカニズム730には、レーザ画像形成メカニズム、他のトナーベースの画像形成メカニズム、インクジェットメカニズム、デジタル画像形成メカニズム、または他の画像再現エンジンが含まれ得る。一例では、プロセッサ735は、Java命令を実行できるロジックを含む。本明細書では、画像形成装置700の他のコンポーネントを説明しないが、他のコンポーネントには、媒体ハンドリング及び記憶メカニズム、センサ、コントローラ、および画像形成プロセスに必要とされる他のコンポーネントが含まれ得る。
単一のプロセッサシステムを説明してきたが、本明細書で説明した例示のチャージ割り当てシステムおよび方法は、マルチプロセッサシステムでも動作することができることが理解される。したがって、一例では、システムは、1つまたは複数の周波数増減可能メインプロセッサと、これらのメインプロセッサがアクセスできるようにメインプロセッサに動作可能に接続されたメモリとを含むことができる。また、システムは、メインプロセッサに動作可能に接続されたチャージ割り当てアウェアスケジューリングロジックも含むことができる。このチャージ割り当てアウェアスケジューリングロジックは、プロセッサのチャージ割り当てステータスを決定するように構成されることができる。また、チャージ割り当てアウェアスケジューリングロジックは、メモリに記憶されたエグゼキュータブルが実行のためにスケジューリングされるのを待機している場合に、そのエグゼキュータブルに関連した電力属性を検査するように構成されることもできる。
したがって、チャージ割り当てアウェアスケジューリングロジックは、1つまたは複数のプロセッサのチャージ割り当てステータスと、エグゼキュータブルに関連した電力属性とに少なくとも部分的に基づいて、プロセッサによって実行されるエグゼキュータブルを選択するように構成されることができる。この場合、チャージ割り当てアウェアスケジューリングロジックは、エグゼキュータブルをスケジューリングする(例えば、プロセスキューに配置する)信号を生成することができる。また、マルチプロセッサシステムは、例えば、プロセスがチャージ割り当て(例えば周波数増減)プロセッサに対して有し得る影響を特徴付けることを容易にするテストプロセッサも含むことができる。
いくつかの例を説明することによって、システム、方法等を示し、また、これらの例をかなり詳細に説明してきたが、添付した特許請求の範囲の範囲をこのような詳細なものに制限することも、また、どんな形であれ限定することも、出願人の意図するものではない。もちろん、チャージ割り当てアウェアスケジューリングに使用されるシステム、方法等を説明するために、コンポーネントまたは方法論の考えられるあらゆる組み合わせを説明することは不可能である。他の利点および変更は当業者には明かであろう。したがって、本発明は、そのより広い局面では、図示および説明した特定の細部、代表的な装置、説明のための例に限定されるものではない。したがって、出願人の全体的な発明概念の思想または範囲から逸脱することなく、このような詳細から脱却することができる。このように、この出願は、添付した特許請求の範囲に含まれる改変、変更、および変形を包含することを意図している。さらに、上記説明は、本発明の範囲を限定することを意図しているものではない。本発明の範囲は、添付した特許請求の範囲およびそれらの均等物によって決定されるべきものである。
用語「備える」、または「備えている」が、実施例または特許請求の範囲で使用される限りにおいて、この用語は、用語「含む」が特許請求の範囲において接続語(transitional word)として使用される場合に解釈されるのと同様に包括的であることが意図されている。さらに、用語「または(もしくは)」が特許請求の範囲で使用される限りにおいて(例えば、AまたはB)、この用語は、「Aまたは(もしくは)Bまたは(もしくは)双方」を意味することが意図されている。出願人が、「Aまたは(もしくは)Bのみであって、双方ではない」ことを示すことを意図している場合には、用語「Aまたは(もしくは)Bのみであって、双方ではない」が使用されることになる。このように、本明細書における用語「または(もしくは)」の使用は、包括的な使用であって、排他的な使用ではない。これについては、Bryan A. Garnerの「A Dictionary of Modern Legal Usage 624(2d. Ed. 1995)」を参照されたい。
本出願では、チャージ割り当てアウェアスケジューリングに関連するシステム、方法、媒体、及び他の実施形態が開示される。1つの例示的なシステムの実施形態は、プロセッサ(130)のチャージ割り当てステータス(120)を決定し、プロセッサ上で実行されるのを待機しているエグゼキュータブルの特性を検査し、及び、プロセッサ(130)のチャージ割り当てステータス(120)とエグゼキュータブルの特性に基づいてプロセッサ(130)によって実行されるエグゼキュータブルを選択するように構成されたスケジューリングロジック(110)を備える。
チャージ割り当てアウェアスケジューリングロジックを含む例示のシステムを示す図である。 チャージ割り当てアウェアスケジューリングロジックを含む別の例示のシステムを示す図である。 チャージ割り当てアウェアスケジューリングロジックおよびテストプロセッサを含む例示のシステムを示す図である。 例示のチャージ割り当てアウェアスケジューリング法を示す図である。 別の例示のチャージ割り当てアウェアスケジューリング法を示す図である。 チャージ割り当てアウェアスケジューリングに関係する例示のシステムおよび方法が動作できる例示のコンピューティング環境を示す図である。 例示のチャージ割り当てアウェアスケジューリングシステムおよび方法が動作できる例示の画像形成装置を示す図である。
符号の説明
110 スケジューリングロジック
120 チャージ割り当てステータス
130 プロセッサ
150 データストア(プロセスキュー)

Claims (10)

  1. スケジューリングロジック(110)であって、
    周波数増減可能プロセッサ(130)のチャージ割り当てステータス(120)を決定し、
    前記プロセッサ(130)上での実行のためにスケジューリングされる1つ以上のエグゼキュータブルの1つ以上の選択されたプロパティを検査し、
    前記プロセッサ(130)の前記チャージ割り当てステータス(120)および前記1つ以上の選択されたプロパティに少なくとも部分的に基づいて、前記プロセッサ(130)によって実行されるエグゼキュータブルを選択し、及び、
    前記エグゼキュータブルの実行をスケジューリングさせる信号を生成するように構成されたスケジューリングロジック(110)、
    を備える、システム。
  2. 前記チャージ割り当てステータス(120)を、前記プロセッサの動作周波数、前記プロセッサの動作周波数の履歴、前記プロセッサの動作周波数の変化量、および周波数シフト標識のうちの1つ以上のものを評価することによって決定することができる、請求項1に記載のシステム。
  3. 前記スケジューリングロジック(110)は、
    前記プロセッサ(130)に関連したプロセッサデータ(225)を検査し、及び、
    前記プロセッサデータ(225)と、前記プロセッサ(130)の前記チャージ割り当てステータス(120)と、1つ以上の前記選択されたプロパティとに少なくとも部分的に基づいて、前記プロセッサ(130)によって実行される前記エグゼキュータブルを選択するようにさらに構成される、請求項1に記載のシステム。
  4. 前記1つ以上の選択されたプロパティは、
    エグゼキュータブルの識別情報、
    エグゼキュータブルがプロセッサ周波数の減少に関連付けられているかどうか、
    エグゼキュータブルがプロセッサ周波数の増加に関連付けられているかどうか、
    エグゼキュータブルが安定したプロセッサ周波数に関連付けられているかどうか、及び、
    1つまたは複数の電力属性
    とのうちの1つ以上を記述することからなる、請求項1に記載のシステム。
  5. 1つ以上のエグゼキュータブルが前記プロセッサ(130)によって実行される順序に関連したスケジュールデータを記憶するように構成されたスケジュールデータストア(150)を備え、
    前記スケジューリングロジック(110)は、
    前記プロセッサの前記チャージ割り当てステータス(120)と、前記スケジュールデータと、前記1つ以上の選択されたプロパティとに少なくとも部分的に基づいて、前記1つ以上のエグゼキュータブルの実行順序を決定し、及び、
    前記スケジュールデータストア(150)における前記スケジュールデータの選択的な配列を引き起こす1つ以上の信号を生成するようにさらに構成されることからなる、請求項1に記載のシステム。
  6. 前記スケジューリングロジック(110)は、前記プロセッサ(130)の前記チャージ割り当てステータス(120)の変化に応答して、前記スケジュールデータストアの前記スケジュールデータの並べ替えを選択的に引き起こすようにさらに構成される、請求項5に記載のシステム。
  7. テストプロセッサ(325)であって、
    エグゼキュータブルを実行し、
    該テストプロセッサ(325)と実行中の前記エグゼキュータブルとのうちの1つ以上のものの1つ以上のプロパティを監視し、及び、
    該テストプロセッサ(325)上での実行に関連した1つ以上の属性に関して前記エグゼキュータブルを特徴付ける1つ以上の特徴付けデータを作成するように構成されたテストプロセッサ(325)
    を備える、請求項5に記載のシステム。
  8. 方法(400)であって、
    周波数増減可能プロセッサの動作周波数を決定するステップ(410)と、
    プロセスに関連した電力データを検査するステップ(420)と、
    前記プロセッサの前記動作周波数および前記電力データに少なくとも部分的に基づいて、前記プロセスを前記プロセッサによって処理されるように選択的にスケジューリングするステップ(430)、
    とを含む方法。
  9. 前記周波数増減可能プロセッサに関連したプロセッサデータを検査するステップ(530)と、
    前記プロセッサデータと、前記プロセッサの動作周波数と、前記電力データとに少なくとも部分的に基づいて、前記プロセスを処理するように選択的にスケジューリングするステップ(540)、
    とを含む、請求項8に記載の方法。
  10. システム(700)であって、
    1つ以上の周波数増減可能メインプロセッサ(735)と、
    1つ以上の前記メインプロセッサ(735)に動作可能に接続されたメモリ(710)であって、1つ以上の前記メインプロセッサが該メモリにアクセス可能であることからなる、メモリと、
    1つ以上の前記メインプロセッサに動作可能に接続されたチャージ割り当てアウェアスケジューリングロジック(715)
    を備え、
    前記チャージ割り当てアウェアスケジューリングロジックは、前記1つ以上のプロセッサのうちの1つ以上のもののチャージ割り当てステータスを決定するよう構成され、
    前記チャージ割り当てアウェアスケジューリングロジックは、前記メモリ(710)に記憶された1つ以上のエグゼキュータブルに関連した電力属性を検査するよう構成され、ここで、前記エグゼキュータブルは、前記1つ以上のメインプロセッサのうちの1つ以上のものにおいて実行されるようスケジューリングされ、
    前記チャージ割り当てアウェアスケジューリングロジックは、1つ以上の前記メインプロセッサの前記チャージ割り当てステータスおよび前記エグゼキュータブルに関連した前記電力属性に少なくとも部分的に基づいて、前記1つ以上のメインプロセッサのうちの1つ以上のものによって実行されるエグゼキュータブルを選択し、
    前記チャージ割り当てアウェアスケジューリングロジックは、前記エグゼキュータブルの実行をスケジューリングさせる信号を生成するように構成されることからなる、システム。
JP2004313933A 2003-11-03 2004-10-28 チャージ割り当てアウェアスケジューラ Pending JP2005141740A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/700,035 US20050097554A1 (en) 2003-11-03 2003-11-03 Charge rationing aware scheduler

Publications (1)

Publication Number Publication Date
JP2005141740A true JP2005141740A (ja) 2005-06-02

Family

ID=34551100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004313933A Pending JP2005141740A (ja) 2003-11-03 2004-10-28 チャージ割り当てアウェアスケジューラ

Country Status (2)

Country Link
US (1) US20050097554A1 (ja)
JP (1) JP2005141740A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013093052A (ja) * 2013-02-04 2013-05-16 Nec Infrontia Corp コンピュータ装置、cpuクロック調整方法
JP2013239199A (ja) * 2005-09-30 2013-11-28 Synopsys Inc マルチコアアーキテクチャにおけるスケジューリング
JPWO2012120654A1 (ja) * 2011-03-08 2014-07-07 富士通株式会社 タスクスケジューリング方法およびマルチコアシステム
JP2014521140A (ja) * 2011-07-07 2014-08-25 クアルコム,インコーポレイテッド 主体的な負荷操作により熱負荷をあらかじめ回避するための方法およびシステム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050232034A1 (en) * 2004-04-19 2005-10-20 Tatung Co., Ltd. Auxiliary device for operating M-DOC series flash memory and non-X86 system processor in synchronism
US9063785B2 (en) * 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
US20060107262A1 (en) * 2004-11-03 2006-05-18 Intel Corporation Power consumption-based thread scheduling
US8756407B2 (en) * 2008-09-30 2014-06-17 International Business Machines Corporation Configuration rule prototyping tool

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157641C (zh) * 1997-09-03 2004-07-14 松下电器产业株式会社 处理器
US6091255A (en) * 1998-05-08 2000-07-18 Advanced Micro Devices, Inc. System and method for tasking processing modules based upon temperature
US6622253B2 (en) * 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013239199A (ja) * 2005-09-30 2013-11-28 Synopsys Inc マルチコアアーキテクチャにおけるスケジューリング
US9286262B2 (en) 2005-09-30 2016-03-15 Synopsys, Inc. Scheduling in a multicore architecture
US9442886B2 (en) 2005-09-30 2016-09-13 Synopsys, Inc. Scheduling in a multicore architecture
JPWO2012120654A1 (ja) * 2011-03-08 2014-07-07 富士通株式会社 タスクスケジューリング方法およびマルチコアシステム
JP2014521140A (ja) * 2011-07-07 2014-08-25 クアルコム,インコーポレイテッド 主体的な負荷操作により熱負荷をあらかじめ回避するための方法およびシステム
JP2013093052A (ja) * 2013-02-04 2013-05-16 Nec Infrontia Corp コンピュータ装置、cpuクロック調整方法

Also Published As

Publication number Publication date
US20050097554A1 (en) 2005-05-05

Similar Documents

Publication Publication Date Title
CN103605568B (zh) 一种多线程管理方法及装置
TWI569206B (zh) 用於狀態機引擎之結果產生
US10592210B2 (en) Dynamic evaluation and adaption of hardware hash function
US9384053B2 (en) Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program
US20160371067A1 (en) Determination of branch convergence in a sequence of program instruction
CN104007954B (zh) 处理器和用于处理器的控制方法
US9690682B2 (en) Program information generating system, method, and computer program product
JP6358042B2 (ja) 情報処理システム、制御装置および情報処理システムの制御方法
US20130132916A1 (en) Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus
CN111104210A (zh) 一种任务处理方法、装置及计算机系统
JP2005141740A (ja) チャージ割り当てアウェアスケジューラ
CN110209597A (zh) 处理访问请求的方法、装置、设备和存储介质
EP3274823A1 (en) Category based execution scheduling
US7058912B2 (en) Notifying status of execution of jobs used to characterize cells in an integrated circuit
TW201531942A (zh) 用於資料處理裝置之可配置執行緒排序
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
EP3200083A1 (en) Resource scheduling method and related apparatus
CN109992382A (zh) 任务调度方法、装置及任务调度器
US10956159B2 (en) Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor
KR101981628B1 (ko) 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치
CN113296788A (zh) 指令调度方法、装置、设备、存储介质及程序产品
JP6776914B2 (ja) 並列化方法、並列化ツール
TWI756974B (zh) 機器學習系統及其資源配置方法
CN113900928B (zh) 一种io负载自动化测试方法、装置
US20230418667A1 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070626