JP5982588B2 - System and method for controlling central processing unit power with guaranteed transient deadlines - Google Patents
System and method for controlling central processing unit power with guaranteed transient deadlines Download PDFInfo
- Publication number
- JP5982588B2 JP5982588B2 JP2015555992A JP2015555992A JP5982588B2 JP 5982588 B2 JP5982588 B2 JP 5982588B2 JP 2015555992 A JP2015555992 A JP 2015555992A JP 2015555992 A JP2015555992 A JP 2015555992A JP 5982588 B2 JP5982588 B2 JP 5982588B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- frequency
- performance guarantee
- guarantee value
- work
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Description
関連出願
本出願は、2012年11月5日に出願された、“System and Method for Controlling Central Processing Unit Power with Guaranteed Transient Deadlines”という表題の米国特許出願第13/669,043号の一部継続出願であり、上記の出願は、2010年11月11日に出願された、“System and Method for Controlling Central Processing Unit Power with Guaranteed Transient Deadlines”という表題の米国特許出願第12/944,467号の一部継続出願であり、上記の出願は、2009年12月16日に出願された、“System and Method of Dynamically Controlling Power in a Central Processing Unit”という表題の米国仮出願第61/286,991号に対する優先権の利益を主張し、これらの出願のすべての全体が参照によって組み込まれる。
Related Applications This application is a continuation-in-part of US patent application Ser. No. 13 / 669,043, filed Nov. 5, 2012, entitled “System and Method for Controlling Central Processing Unit Power with Guaranteed Transient Deadlines”. The above application is a continuation-in-part of US patent application Ser. No. 12 / 944,467, filed Nov. 11, 2010, entitled “System and Method for Controlling Central Processing Unit Power with Guaranteed Transient Deadlines”. The above application claims the benefit of priority over US Provisional Application No. 61 / 286,991, filed December 16, 2009, entitled “System and Method of Dynamically Controlling Power in a Central Processing Unit”. All of these applications are incorporated by reference in their entirety.
相互参照出願
本出願は、Rychlik他による、“System And Method For Controlling Central Processing Unit Power Based On Inferred Workload Parallelism”という表題の米国特許出願第12/944,140号、Rychlik他による、“System and Method for Controlling Central Processing Unit Power in a Virtualized System”という表題の米国特許出願第12/944,202号、Rychlik他による、“System and Method for Asynchronously and Independently Controlling Core Clocks in a Multicore Central Processing Unit”という表題の米国特許出願第12/944,321号、Thomson他による、“System and Method for Controlling Central Processing Unit Power with Reduced Frequency Oscillations”という表題の米国特許出願第12/944,378号、Thomson他による、“System and Method for Controlling Central Processing Unit Power With Guaranteed Steady State Deadlines”という表題の米国特許出願第12/944,561号、およびSur他による、“System and Method for Dynamically Controlling a Plurality of Cores in a Multicore Central Processing Unit based on Temperature”という表題の米国特許出願第12/944,564号に関連し、これらを参照によって組み込む。
CROSS-REFERENCE APPLICATION This application is filed by Rychlik et al., US patent application Ser. No. 12 / 944,140 entitled “System And Method For Controlling Central Processing Unit Power Based On Inferred Workload Parallelism”, Rychlik et al., “System and Method for Controlling Central. No. 12 / 944,202 entitled “Processing Unit Power in a Virtualized System”, US Patent Application No. 12 entitled “System and Method for Asynchronously and Independently Controlling Core Clocks in a Multicore Central Processing Unit” by Rychlik et al. US Patent Application No. 12 / 944,378 entitled “System and Method for Controlling Central Processing Unit Power with Reduced Frequency Oscillations” by Thomson et al., “System and Method for Controlling Central Processing Unit Power With” by Thomson et al. No. 12 / 944,561 entitled “Guaranteed Steady State Deadlines” and “System and Met” by Sur et al. Related to US patent application Ser. No. 12 / 944,564 entitled “hod for Dynamically Controlling a Plurality of Cores in a Multicore Central Processing Unit based on Temperature”, which is incorporated by reference.
ポータブルコンピューティングデバイス(PCD)は至る所にある。これらのデバイスは、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。これらのデバイスの主要機能に加えて、多くは周辺機能を含む。たとえば、携帯電話は、携帯電話をかけるという主要機能、およびスチールカメラ、ビデオカメラ、全地球測位システム(GPS)ナビゲーション、ウェブブラウジング、電子メールの送受信、テキストメッセージの送受信、プッシュツートーク機能などの周辺機能を含み得る。そのようなデバイスの機能が増加するにつれて、そのような機能をサポートするために必要な計算能力または電力も増大する。さらに、計算能力の増大に伴い、計算能力を提供する1つまたは複数のプロセッサを効果的に管理する必要性がより高まっている。 Portable computing devices (PCDs) are everywhere. These devices may include cell phones, personal digital assistants (PDAs), portable game consoles, palmtop computers, and other portable electronic devices. In addition to the main functions of these devices, many include peripheral functions. For example, mobile phones have the main functions of making mobile phones and peripherals such as still cameras, video cameras, global positioning system (GPS) navigation, web browsing, sending and receiving e-mail, sending and receiving text messages, and push-to-talk functions Can include functionality. As the capabilities of such devices increase, so does the computational power or power required to support such capabilities. Furthermore, as computing power increases, there is a growing need to effectively manage one or more processors that provide computing power.
したがって、必要とされているのは、マルチコアCPU内で電力を制御する改善された方法である。 Therefore, what is needed is an improved method for controlling power within a multi-core CPU.
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。 The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the invention, and together with the general description above and the detailed description below, illustrate the invention. Useful to explain the characteristics of
様々な態様が添付の図面を参照して詳細に説明される。可能な場合は常に、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に対して行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。 Various aspects are described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to particular examples and implementations are for illustrative purposes, and are not intended to limit the scope of the invention or the claims.
「例示的な」という言葉は、「例、事例、または例示として機能する」ことを意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるとは限らない。 The word “exemplary” is used herein to mean “serving as an example, instance, or illustration”. Any aspect described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects.
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含み得る。 As used herein, the term “application” may also include files with executable content, such as object code, scripts, bytecodes, markup language files, and patches. In addition, an “application” as referred to herein may also include files that are not inherently executable, such as documents that may need to be opened, or other data files that need to be accessed.
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルも含み得る。 The term “content” may also include files with executable content, such as object code, scripts, bytecodes, markup language files, and patches. In addition, “content” as referred to herein may include files that are not inherently executable, such as documents that may need to be opened or other data files that need to be accessed.
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば、コンポーネントは、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在することがあり、1つのコンポーネントは、1つのコンピュータに局在し、かつ/または2つ以上のコンピュータに分散されることがある。さらに、これらのコンポーネントは、様々なデータ構造が記憶されている様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム中の別のコンポーネントと、かつ/または、インターネットのようなネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。 As used herein, the terms “component”, “database”, “module”, “system”, etc., refer to hardware, firmware, a combination of hardware and software, software, and running software. It is intended to refer to a computer-related entity. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of illustration, both an application running on a computing device and the computing device can be a component. One or more components may reside within a process and / or thread of execution, and one component may be localized on one computer and / or distributed across two or more computers . In addition, these components can execute from various computer readable media having various data structures stored thereon. A component is one or more data packets (e.g., from one component that interacts with another component in the local system, distributed system, and / or across a network such as the Internet, by signal Can be communicated by a local process and / or a remote process, such as according to a signal having data).
最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイス(PCD)が示されており、全体的に100と表される。示されるように、PCD100は、筐体102を含み得る。筐体102は、上側筐体部分104および下側筐体部分106を含み得る。図1は、上側筐体部分104がディスプレイ108を含み得ることを示す。特定の態様では、ディスプレイ108はタッチスクリーンディスプレイであり得る。上側筐体部分104は、トラックボール入力デバイス110も含み得る。さらに、図1に示されるように、上側筐体部分104は電源投入ボタン112および電源切断ボタン114を含み得る。図1に示されるように、PCD100の上側筐体部分104は、複数のインジケータライト116およびスピーカー118を含み得る。各インジケータライト116は、発光ダイオード(LED)であり得る。
Referring initially to FIGS. 1 and 2, an exemplary portable computing device (PCD) is shown and is generally designated 100. As shown, PCD 100 may include a
特定の態様では、図2に示されるように、上側筐体部分104は下側筐体部分106に対して可動である。具体的には、上側筐体部分104は下側筐体部分106に対してスライド可能であり得る。図2に示されるように、下側筐体部分106はマルチボタンキーボード120を含み得る。特定の態様では、マルチボタンキーボード120は標準的なQWERTYキーボードであり得る。マルチボタンキーボード120は、上側筐体部分104が下側筐体部分106に対して動かされたときに現れ得る。図2は、PCD100が下側筐体部分106上にリセットボタン122を含み得ることをさらに示す。
In certain aspects, the
図3を参照すると、ポータブルコンピューティングデバイス(PCD)の例示的で非限定的な態様が示され、全体的に320と指定される。示されるように、PCD320はマルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325、第1のコア326および第Nのコア327を含み得る。
Referring to FIG. 3, an exemplary, non-limiting aspect of a portable computing device (PCD) is shown and designated generally as 320. As shown,
図3に示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がマルチコアCPU324に結合される。一方、オンチップシステム322の外部にあるディスプレイ/タッチスクリーン332が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
As shown in FIG. 3, a
図3は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM:sequential couleur a memoire)エンコーダまたは全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU324に結合されることをさらに示す。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびディスプレイ/タッチスクリーン332に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図3に示されるように、ユニバーサルシリアルバス(USB)コントローラ340がマルチコアCPU324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリ344および加入者識別モジュール(SIM)カード346も、マルチコアCPU324に結合され得る。さらに、図3に示されるように、デジタルカメラ348がマルチコアCPU324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
FIG. 3 shows that a
図3にさらに示されるように、ステレオオーディオコーデック350がマルチコアCPU324に結合され得る。その上、オーディオ増幅器352が、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356が、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。さらに、マイクロフォン360が、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
As further shown in FIG. 3, a
図3は、無線周波数(RF)送受信機368がマルチコアCPU324に結合され得ることをさらに示す。RFスイッチ370は、RF送受信機368およびRFアンテナ372に結合され得る。図3に示されるように、キーパッド374がマルチコアCPU324に結合され得る。また、マイクロフォンを備えたモノヘッドセット376が、マルチコアCPU324に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU324に結合され得る。図3は、電源380がオンチップシステム322に結合され得ることも示す。特定の態様では、電源380は電力を必要とするPCD320の様々なコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
FIG. 3 further illustrates that a radio frequency (RF)
図3は、PCD320がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、任意の他のネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野でよく知られている任意の他のネットワークカードであり得る。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってよく、個別のネットワークカード388ではなくてもよい。
FIG. 3 further illustrates that the
図3に示されるように、ディスプレイ/タッチスクリーン332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にある。
As shown in FIG. 3, display /
特定の態様では、本明細書で説明される方法ステップの1つまたは複数は、コンピュータプログラム命令としてメモリ344に記憶され得る。これらの命令は、本明細書で説明される方法を実行するためにマルチコアCPU324によって実行され得る。さらに、マルチコアCPU324、メモリ344、またはそれらの組合せは、マルチコアCPU324内の各CPUまたはコアの電力を動的に制御するために本明細書で説明される方法ステップの1つまたは複数を実行するための手段として機能し得る。
In certain aspects, one or more of the method steps described herein may be stored in
図4を参照すると、処理システムが示され、全体的に400と表される。特定の態様では、処理システム400は、図3に関して上で説明されたPCD320に組み込まれ得る。示されるように、処理システム400はマルチコア中央処理装置(CPU)402、およびマルチコアCPU402に接続されたメモリ404を含み得る。マルチコアCPU402は、第0のコア410、第1のコア412および第Nのコア414を含み得る。第0のコア410は、その上で実行される第0の動的クロックおよび電圧スケーリング(DCVS)アルゴリズム416を含み得る。第1のコア412は、その上で実行される第1のDCVSアルゴリズム417を含み得る。さらに、第Nのコア414は、その上で実行される第NのDCVSアルゴリズム418を含み得る。特定の態様では、各DCVSアルゴリズム416、417、418は、それぞれのコア410、412、414上で独立に実行され得る。
Referring to FIG. 4, a processing system is shown and generally designated 400. In certain aspects, the
さらに、示されるように、メモリ404は、それに記憶されたオペレーティングシステム420を含み得る。オペレーティングシステム420はスケジューラ422を含んでよく、スケジューラ422は第1の実行キュー424、第2の実行キュー426、および第Nの実行キュー428を含んでよい。メモリ404は、それに記憶された第1のアプリケーション430、第2のアプリケーション432、および第Nのアプリケーション434も含み得る。
Further, as shown, the
特定の態様において、アプリケーション430、432、434は、マルチコアCPU402内のコア410、412、414で処理されるべき1つまたは複数のタスク436をオペレーティングシステム420に送信することができる。タスク436は、単一のタスク、スレッド、またはこれらの組合せとして処理または実行され得る。さらに、スケジューラ422は、マルチコアCPU402内での実行のために、タスク、スレッド、またはそれらの組合せをスケジューリングすることができる。さらに、スケジューラ422は、実行キュー424、426、428に、タスク、スレッド、またはこれらの組合せを配置することができる。コア410、412、414は、タスク、スレッド、またはそれらの組合せを、たとえばコア410、412、414でのそれらのタスクおよびスレッドの処理または実行のためにオペレーティングシステム420によって命令された通りに、実行キュー424、426、428から取り出すことができる。
In certain aspects, the
図4は、メモリ404がそれに記憶された並列処理モニタ440を含み得ることも示す。並列処理モニタ440は、オペレーティングシステム420およびマルチコアCPU402に接続され得る。具体的には、並行処理モニタ440は、オペレーティングシステム420内のスケジューラ422に接続され得る。
FIG. 4 also illustrates that the
図5を参照すると、中央処理装置の電力を動的に制御する方法の第1の態様が示されており、全体的に500と表される。方法500は、DOループを伴うブロック502で始まってよく、このDOループにおいて、デバイスの電源が投入されると以下のステップが実行され得る。
Referring to FIG. 5, a first aspect of a method for dynamically controlling the power of a central processing unit is shown and is generally designated 500. The
ブロック504において、電力コントローラ、たとえば動的クロックおよび電圧スケーリング(DCVS)アルゴリズムが、1つまたは複数のCPUを監視することができる。判断506において、電力コントローラは、CPUに対する過渡性能期限が切れたかどうかを判定することができる。切れていない場合、方法500は終了し得る。それ以外の場合、すなわち過渡性能期限が切れている場合、方法500はブロック508に進むことができ、電力コントローラは、CPUをより高い性能レベル、すなわち次のより高い動作周波数へと移行することができる。一態様では、コントローラは、CPUを最大の性能レベル、すなわち最大のCPU周波数へと移行することができる。しかしながら、別の態様では、CPUは最大の性能レベルに移らなくてよい。CPUは、中間のレベルに移り、次いで、最大のレベルと別のより高い性能レベルのいずれかへと再び移ってよい。この移行の頻度の値を決定するために、中間的な移行の数および移行と移行の間の時間の長さが使用され得る。
At
ブロック510において、CPUはアイドル条件に入ることができる。さらに、ブロック512において、過渡性能期限が再設定され得る。ブロック514において、CPUはアイドル条件から出ることができる。判断516へと移り、電力コントローラは、達しつつあるCPU周波数が最大のCPU周波数にあるかどうかを判定することができる。そうである場合、方法500は終了することができる。それ以外の場合、すなわち、CPU周波数が最大のCPU周波数にない場合、方法はブロック518に進むことができ、タイマーが再スケジューリングされ得る。そして、方法500は終了することができる。
In
図6を参照すると、中央処理装置の電力を動的に制御する方法の第2の態様が示されており、全体的に600と表される。ブロック602から開始して、中央処理装置(CPU)はアイドル状態に入ることができる。ブロック604において、電力コントローラ、たとえば動的クロックおよび電圧スケーリング(DCVS)アルゴリズムは、現在の時間(CurrentTime)に等しくアイドル状態開始時間(StartIdleTime)を設定することができる。さらに、ブロック606において、電力コントローラは、アイドル状態終了時間(EndIdleTime)からアイドル状態開始時間(StartIdleTime)を減算することによって、ビジー時間(BusyTime)を決定することができる。
Referring to FIG. 6, a second aspect of the method for dynamically controlling the power of the central processing unit is shown and is generally designated 600. Beginning at
ブロック608において、CPUは、割込みのためのソフトウェア待機(SWFI)条件に入ることができる。ブロック610において、CPUはSWFI条件から出ることができる。ブロック612に移り、電力コントローラは、現在の時間(CurrentTime)に等しくアイドル状態終了時間(EndIdleTime)を設定することができる。さらに、ブロック614において、電力コントローラは、アイドル状態終了時間(EndIdleTime)からアイドル状態開始時間(StartIdleTime)を減算することによって、アイドル時間(IdleTime)を決定することができる。ブロック616において、電力コントローラは、更新安定状態フィルタ(UpdateSteadyStateFilter)、ビジー時間(BusyTime)、およびアイドル時間(IdleTime)から、達しつつあるCPU周波数(CPUFreq)を決定することができる。その後、方法600は図7のブロック702に続き得る。
At
ブロック702において、電力コントローラは、次の式を使用して実効過渡バジェット(EffectiveTransientBudget)を決定することができる。
EffectiveTransientBudget=(TransientResponseDeadline×NextCPUFreq)/(NextCPUFreq-CPUFreq)
ここで、
TransientResponseDeadline=過渡応答期限、すなわちスラック(slack)バジェット、
NextCPUFreq=達しつつあるCPU周波数よりも一段高い周波数である次のCPU周波数、かつ、
CPUFreq=達しつつあるCPU周波数(CPUFreq)
である。
At
EffectiveTransientBudget = (TransientResponseDeadline × NextCPUFreq) / (NextCPUFreq-CPUFreq)
here,
TransientResponseDeadline = transient response deadline, ie slack budget,
NextCPUFreq = Next CPU frequency that is one step higher than the reaching CPU frequency, and
CPUFreq = CPU frequency being reached (CPUFreq)
It is.
特定の態様では、クロックスケジューリングオーバーヘッド(ClockSchedulingOverhead)およびクロックスイッチオーバーヘッド(ClockSwitchOverhead)もEffectiveTransientBudgetに加算され得る。さらに、電圧変化オーバーヘッド(VoltageChangeOverhead)がEffectiveTransientBudgetに加算され得る。ブロック704に移り、電力コントローラは、アイドル状態終了時間(EndIdleTime)に実効過渡バジェット(EffectiveTransientBudget)を加算したものに等しいより高い周波数(SetJumpToFrequency)へと移るように、期限を設定することができる。別の態様では、移るための期限は、現在の時間に過渡バジェットを加算した時間であり得る。その後、方法600は終了することができる。
In certain aspects, clock scheduling overhead (ClockSchedulingOverhead) and clock switch overhead (ClockSwitchOverhead) may also be added to EffectiveTransientBudget. Further, a voltage change overhead (VoltageChangeOverhead) may be added to the EffectiveTransientBudget. Moving to block 704, the power controller may set a deadline to move to a higher frequency (SetJumpToFrequency) equal to the idle end time (EndIdleTime) plus the effective transient budget (EffectiveTransientBudget). In another aspect, the deadline for moving may be the current time plus the transient budget. Thereafter, the
特定の態様では、図6および図7とともに説明された方法600は、過渡期限が切れるまでの、CPUがDCVSによって決定される周波数に留まり得る時間の長さを計算し、その時間の長さの分だけ未来に、より高いCPU周波数への移行をスケジューリングするために使用され得る。より高い周波数への移行の前にアイドル状態に再び入る場合、スケジューリングされた移行は取り消され得る。方法600は、EffectiveTransientBudgetとして決定される時間の長さの分だけ、より高い周波数への移行を遅らせることができる。
In a particular aspect, the
本明細書で説明される方法ステップは、必ずしも説明されるような順序で実行される必要はないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明される方法は、ポータブルコンピューティングデバイス(PCD)上で実行可能なものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであってよい。 It should be understood that the method steps described herein do not necessarily have to be performed in the order described. Furthermore, terms such as “after”, “next”, “next” are not intended to limit the order of the steps. These terms are only used to guide the reader through the description of the method steps. Further, the methods described herein are described as being executable on a portable computing device (PCD). The PCD may be a mobile phone device, a personal digital assistant device, a smart book computing device, a netbook computing device, a laptop computing device, a desktop computing device, or a combination thereof.
特定の態様では、DCVSアルゴリズムは、CPU負荷/アイドル時間を測定し、電力消費を減らしながら満足のいくシステム性能を依然として提供しようとして作業負荷に追随するようにCPUクロック周波数を動的に調整する、機構である。作業負荷が変化するに従い、CPUのスループットの変化は作業負荷の変化に追随し得るが、同時に、それに対して必然的に遅れ得る。残念ながら、このことは、作業負荷がサービス品質(QoS)の要件を有する場合には問題をもたらすことがあり、それは、DCVSアルゴリズムが作業負荷に対して十分迅速に追随できないからである。さらに、タスクが失敗することがある。 In certain aspects, the DCVS algorithm measures CPU load / idle time and dynamically adjusts the CPU clock frequency to follow the workload in an attempt to still provide satisfactory system performance while reducing power consumption. Mechanism. As the workload changes, CPU throughput changes can follow the workload change, but at the same time can inevitably lag behind it. Unfortunately, this can lead to problems when the workload has quality of service (QoS) requirements, because the DCVS algorithm cannot follow the workload quickly enough. In addition, tasks can fail.
多くのDCVS技法は、CPUの安定状態の性能要件を測定することと、CPUの周波数および電圧を、安定状態のCPU使用量を満たし得る最低のレベルに設定することとを伴う。これは通常、ある期間にわたってCPU利用率(ビジーの百分率)を測定し、平均のCPU利用率が高い閾値と低い閾値の間に来るようなレベルにCPUの性能レベルを設定することによって行われる。平均をとる期間は、クロック周波数を変更する頻度を最小限にしながら、適度な応答性を保つように最適化される。過渡的な作業負荷および/または新たな作業負荷の開始に応答するために、CPU周波数を急速に上げるためにパニック的な入力が利用されることがあった。 Many DCVS techniques involve measuring the steady state performance requirements of the CPU and setting the CPU frequency and voltage to the lowest level that can meet the steady state CPU usage. This is usually done by measuring CPU utilization (percent busy) over a period of time and setting the CPU performance level to a level where the average CPU utilization is between the high and low thresholds. The averaging period is optimized to maintain a moderate response while minimizing the frequency of changing the clock frequency. In order to respond to transient workloads and / or onset of new workloads, panic inputs were sometimes used to rapidly increase CPU frequency.
DCVSが作業負荷に対して遅れ、タスクの失敗を引き起こすという問題を避けるために、本明細書で開示されるシステムおよび方法は、過渡性能保証を提供する。過渡性能保証は、より高い性能レベルでの実行と比較されたときの、継続的にビジーであるパルスが遅れ得る時間の最大の長さとして定義され得る。これは、過渡性能期限が切れる前により高い性能レベルに移り、アイドル状態になるときには常に期限を再設定することによって遂行されることが可能であり、それは、CPUがアイドル状態である場合、CPUは定義上、過負荷状態にないからである。本明細書で開示されるように、システムがアイドル状態から出てシステムのCPUが最大の周波数で動作していないときには常にQoSの保証を守るように、タイマーが再スケジューリングされ得る。 In order to avoid the problem of DCVS lagging the workload and causing task failure, the systems and methods disclosed herein provide transient performance guarantees. Transient performance guarantees can be defined as the maximum length of time that a continuously busy pulse can be delayed when compared to running at a higher performance level. This can be accomplished by moving to a higher performance level before the transient performance expires, and resetting the deadline whenever idle, which means that if the CPU is idle, the CPU This is because, by definition, it is not overloaded. As disclosed herein, timers can be rescheduled to ensure QoS guarantees whenever the system goes out of idle and the system's CPU is not operating at maximum frequency.
過渡性能保証の電力への影響を最小限にするために、本システムおよび方法は、期限を満たすために入来するパルスが周波数の上昇を要求し得る確率を、最小限にする。これは、図8に示されるように、実効過渡バジェットが使い果たされるまで、周波数、すなわち性能レベルの変化を遅らせて、次いで、より高い性能レベルへと直接移り、パルスが完了するまでそこに留まることによって、遂行され得る。 In order to minimize the power impact of transient performance guarantees, the present system and method minimizes the probability that an incoming pulse may require an increase in frequency to meet a deadline. This delays the change in frequency or performance level until the effective transient budget is exhausted, as shown in Figure 8, then moves directly to a higher performance level and stays there until the pulse is complete Can be accomplished.
特定の態様では、実効過渡バジェットは、現在の性能レベルに対してスケーリングされた過渡応答期限として計算される。たとえば、CPUが最大のクロックレートの75%で動作しており過渡応答期限が16msである場合、実効過渡バジェットは64ms、すなわち16ms/(1-0.75)である。実効過渡バジェットは、バジェットを使い果たす前にCPUが現在の性能レベルでどの程度長く動作できるかを表す。CPUがアイドル状態である場合、実効過渡バジェットは、過渡応答期限と同じであり得る。最大の性能レベルにある場合、実効過渡バジェットは図9に示されるように無限である。
In certain aspects, the effective transient budget is calculated as a transient response deadline scaled to the current performance level. For example, if the CPU is operating at 75% of the maximum clock rate and the transient response deadline is 16 ms, the effective transient budget is 64 ms,
本明細書で説明される方法を使用すると、システムは、タスクが最大のレベル以外の何らかのレベルで実行され得る最大の時間の長さに対する厳格な限度を提供できるので、QoSの保証を要求するタスクの完了に対する計算可能な限度を暗黙的に提供しながら、動的なCPUクロックのスケーリングを可能にできる。この限度は、どのタスクが現在実行されているか、全体的なシステムの性質、DCVSアルゴリズムの設計または他の性質に基づいて設定されてよく、システムがQoS要件を有するタスクを全く実行していない場合、またはCPUが最大のクロックで動作している場合、完全に無効にされてよい。 Using the methods described herein, the system can provide a strict limit on the maximum length of time that a task can be performed at some level other than the maximum level, so tasks that require QoS guarantees. Allows for dynamic CPU clock scaling while implicitly providing a computable limit to the completion of This limit may be set based on which task is currently being executed, the overall system nature, the design of the DCVS algorithm, or other nature, and if the system is not performing any task with QoS requirements Or if the CPU is running at the maximum clock, it may be completely disabled.
特定の態様では、本方法は、期限が切れたときに最大の周波数へと移る代わりに、より短い内部実効期限を設定し、1つまたは複数の中間の周波数へと移り、同時に、最大のQoS遅延が使い果たされる前にCPUが最大の周波数にあることを依然として確実にすることによって、拡張され得る。さらに、本方法は、良好に定義された過渡QoSが保たれながら、全体のCPU電力を同時に下げることを、実質的に確実にし得る。 In certain aspects, the method sets a shorter internal effective deadline instead of moving to the maximum frequency when it expires and moves to one or more intermediate frequencies while simultaneously maximizing QoS. It can be expanded by still ensuring that the CPU is at maximum frequency before the delay is exhausted. Furthermore, the method may substantially ensure that the overall CPU power is reduced simultaneously while maintaining a well-defined transient QoS.
本明細書で説明されるシステムおよび方法は、便宜的サンプリングを利用することがある。言い換えると、本システムおよび方法は、タイマーの時間切れを定期的に確認することができる。別の態様では、本システムおよび方法は、便宜的サンプリングを利用しないことがある。 The systems and methods described herein may utilize expedient sampling. In other words, the present system and method can periodically check for timer expiration. In another aspect, the present systems and methods may not utilize expedient sampling.
上で論じられたように、様々な態様は、タスクの完了のための計算に対して、厳格かつ計算可能な限度(たとえば、性能保証)を提供する。様々な態様では、そのような性能保証は、プロセッサ性能を向上させるために、かつ/または、ポータブルコンピューティングデバイス(PCD)上での電力消費を減らすために、動的クロックおよび電圧/周波数スケーリング(DCVS)方法の一部として実施されてよく、PCDは、携帯電話、スマートフォン、個人用マルチメディアプレーヤーまたはモバイルマルチメディアプレーヤー、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、および、メモリ、プログラム可能プロセッサ、またはコア(本明細書では総称的に「プロセッシングコア」)を含み、電力節減方法が有益であるようなバッテリー電力のもとで動作する、同様の個人用電子デバイスなどの、モバイルデバイスを含む。さらに、様々な態様は、バッテリー電力により動作するポータブルコンピューティングデバイスおよびモバイルコンピューティングデバイスに対して特に有用であるが、態様は一般に、プロセッサを含み電力消費の低減が有益である任意のコンピューティングデバイス(たとえば、汎用コンピュータ、デスクトップコンピュータ、サーバなど)において有用である。 As discussed above, various aspects provide strict and computable limits (eg, performance guarantees) for calculations for task completion. In various aspects, such performance guarantees may include dynamic clock and voltage / frequency scaling (to increase processor performance and / or reduce power consumption on a portable computing device (PCD)). (DCVS) may be implemented as part of a method, PCD is a mobile phone, smartphone, personal multimedia player or mobile multimedia player, personal digital assistant (PDA), laptop computer, tablet computer, smart book, ultrabook , A palmtop computer, a wireless email receiver, a multimedia internet-enabled mobile phone, a wireless game controller, and a memory, programmable processor, or core (collectively “processing core” herein) Saving way operating under battery power such as beneficial, such as similar personal electronic devices, including mobile devices. Further, although the various aspects are particularly useful for portable computing devices and mobile computing devices that operate on battery power, the aspects generally include any computing device that includes a processor and where reduced power consumption is beneficial. (For example, a general purpose computer, a desktop computer, a server, etc.).
一般に、チップによって消費される動的電力(スイッチング電力)はC×V2×fであり、ここでCはクロック周期あたりでスイッチングされるキャパシタンスであり、Vは電圧であり、fはスイッチング周波数である。したがって、周波数が変化するにつれて、動的電力は周波数に対して線形に変化する。動的電力は、プロセッサチップによって消費される全体の電力の約3分の2を占め得る。チップが動作する周波数は動作電圧に関連があり得るので、電圧スケーリングは周波数スケーリングとともに行われ得る。電圧レギュレータのような何らかの電子コンポーネントの効率は温度の上昇に伴って低下し得るので、電力消費は温度とともに増える。電力使用量の増大は温度を上昇させ得るので、電圧または周波数の上昇は、システムの電力需要をさらに増大させ得る。したがって、コンピューティングデバイスのバッテリー動作継続時間は、コンピューティングデバイスのプロセッサがアイドル状態であるときまたは軽負荷であるときに、プロセッサに適用される周波数および/または電圧を下げることによって、改善され得る。周波数および/または電圧のそのような低下は、動的クロックおよび電圧/周波数スケーリング(DCVS)方法を介して、リアルタイムで、または「オンザフライ」で行われ得る。 In general, the dynamic power (switching power) consumed by a chip is C × V 2 × f, where C is the capacitance switched per clock period, V is the voltage, and f is the switching frequency. is there. Thus, as the frequency changes, the dynamic power changes linearly with frequency. Dynamic power can account for approximately two-thirds of the total power consumed by the processor chip. Since the frequency at which the chip operates can be related to the operating voltage, voltage scaling can be done in conjunction with frequency scaling. Since the efficiency of some electronic components, such as voltage regulators, can decrease with increasing temperature, power consumption increases with temperature. Since increasing power usage can increase temperature, increasing voltage or frequency can further increase system power demand. Accordingly, the battery operation duration of a computing device may be improved by reducing the frequency and / or voltage applied to the processor when the computing device processor is idle or lightly loaded. Such a decrease in frequency and / or voltage may be done in real time or “on the fly” via dynamic clock and voltage / frequency scaling (DCVS) methods.
一般に、DCVS解決法は、(プロセッサがビジー状態である時間と比較された)プロセッサがアイドル状態である時間の比率を監視し、プロセッサのどれだけの周波数/電圧が調整されるべきかを、プロセッサがアイドル状態および/またはビジー状態である時間の比率に基づいて決定する。プロセッサがアイドル状態である時間の比率を監視することは、プロセッサがアイドルプロセスまたはアイドルスレッド(たとえば、システムアイドルプロセスなど)を実行する時間長を示す値(たとえば、時間の長さ、CPUサイクル数など)を、計算および/または測定することを含み得る。 In general, the DCVS solution monitors the percentage of time the processor is idle (compared to the time the processor is busy) and determines how much frequency / voltage of the processor should be adjusted. Is based on the percentage of time that is idle and / or busy. Monitoring the percentage of time that a processor is idle is a value that indicates how long the processor is executing an idle process or an idle thread (eg, a system idle process) (eg, length of time, number of CPU cycles, etc.) ) May include calculating and / or measuring.
オペレーティングシステムは、プロセッサ上でスケジューリングされる準備ができている他のスレッドがないと判定すると、そのプロセッサ上で、アイドル状態のソフトウェアアプリケーション、プロセス、またはスレッド(本明細書では総称的に「スレッド」)を実行することができる。アイドルスレッドは、様々なタスク(たとえば、割込みタスクを待つ、タスクを待ち状態にするなど)を実行することができ、各タスクは多数のプロセッサ動作を含み得る。プロセッサがアイドルスレッドを実行するとき、そのプロセッサは、「アイドルである」、「アイドル状態」にある、および/または「アイドル条件」にあると言われ得る。 When the operating system determines that there are no other threads ready to be scheduled on a processor, the idle software application, process, or thread (generically referred to herein as a “thread”) on that processor. ) Can be performed. An idle thread can perform various tasks (eg, wait for an interrupt task, put a task in a wait state, etc.), and each task can include multiple processor operations. When a processor executes an idle thread, it may be said to be “idle”, “idle”, and / or “idle condition”.
マルチプロセッサシステムでは、オペレーティングシステム(またはスケジューラ、コントローラなど)は、各プロセッサに対して1つまたは複数のアイドルスレッドを維持し得る。アイドルスレッドは、実行の準備ができている状態のままであるので、各プロセッサは、実行の準備ができているスレッドを常に有する。この方式で、スレッドが(たとえば、スレッドがそのスケジューリングされたタスクまたは作業負荷を完了したことにより)プロセッサを解放するときは常に、オペレーティングシステムは、(たとえば、アイドルスレッドの利用可能性を介した)そのプロセッサ上での実行の準備ができているスレッドを、すべての他のスレッドが完了している、リソースを待機している、または別様に現在実行の準備ができていないときであっても、有する。 In a multiprocessor system, the operating system (or scheduler, controller, etc.) may maintain one or more idle threads for each processor. Since idle threads remain ready for execution, each processor always has a thread ready for execution. In this manner, whenever a thread releases a processor (eg, because the thread has completed its scheduled task or workload), the operating system (eg, via idle thread availability) A thread that is ready to run on that processor, even when all other threads are complete, waiting for resources, or otherwise not currently ready to run Have.
上で論じられたように、DCVS解決法は、プロセッサの周波数および/または電圧を、安定状態の作業負荷を含み得るそのプロセッサの作業負荷に基づいて、調整することができる。安定状態の作業負荷は、作業負荷の促進のための動作を実行するために、実行時間に先立って、すなわち、プロセッシングコアがビジー状態またはアクティブ状態に入ることに先立って、決定され得る。安定状態の作業負荷は、CPUクロック周期の数、動作の数、命令の数、および/または、プロセッシングコア上でスケジューリングされるタスクを完了するのに必要とされる時間の長さを、計算し、推定し、または予測することによって、事前に決定され得る。各プロセッサは、2つ以上の作業負荷(たとえば、安定状態の作業負荷および過渡的な作業負荷)を有することがあり、各プロセッサは、すべての作業負荷の中のすべてのタスクが完了するまで、ビジー状態、実行状態、またはアクティブ状態(本明細書では総称的に「ビジー状態」)のままであることが要求され得る。 As discussed above, the DCVS solution can adjust the frequency and / or voltage of a processor based on the processor workload that may include a steady state workload. The steady state workload may be determined prior to execution time, i.e., prior to the processing core entering a busy or active state, in order to perform operations for promoting the workload. The steady state workload calculates the number of CPU clock periods, the number of operations, the number of instructions, and / or the length of time required to complete a task scheduled on the processing core. , By estimating, or predicting. Each processor may have more than one workload (for example, steady state workload and transient workload), and each processor will complete until all tasks in all workloads are complete It may be required to remain busy, running or active (generally “busy” herein).
いくつかの状況では、DCVS解決法は、プロセッサの性能に影響を与えることなく電力節減を達成するために、プロセッサの周波数および/または電圧(すなわち、プロセッサの速度)を下げることができる。たとえば、プロセッサの作業負荷が、その実行時間がメモリアクセス時間によって支配されるタスクを含むとき、周波数の低下は、そのプロセッサの性能またはそのタスクの実行時間に大きな影響を与えないことがある。しかしながら、より頻繁に、DCVS解決法は、プロセッサの性能(たとえば、タスクの所与のセットを完了するために必要とされる時間など)と電力消費(たとえば、タスクの所与のセットを遂行する際に消費されるバッテリー電力の量)の特性とのトレードオフのバランスをとらなければならない。通常、タスクの遂行が速いほど、タスクの遂行においてプロセッサにより消費される電力は多くなる。 In some situations, the DCVS solution can reduce the processor frequency and / or voltage (ie, processor speed) to achieve power savings without affecting processor performance. For example, when a processor workload includes a task whose execution time is dominated by memory access time, the decrease in frequency may not significantly affect the performance of the processor or the execution time of the task. More often, however, DCVS solutions perform processor performance (eg, the time required to complete a given set of tasks) and power consumption (eg, a given set of tasks) Trade-offs with the characteristics of the amount of battery power consumed at the time. In general, the faster the task is performed, the more power is consumed by the processor in performing the task.
DCVS解決法は、プロセッサの安定状態の作業負荷および安定状態の性能要件に基づいて、性能と電力消費のバランスをとるように構成され得る。安定状態の性能要件は、プロセッサがビジー状態および/またはアイドル状態である時間長を示す値(たとえば、時間の長さ、CPUサイクル数など)を計算または測定し、計算された/測定された値の結果を平均し、そのプロセッサの安定状態の作業負荷を完了するために必要とされる時間/処理の量を決定することによって、決定され得る。これらの計算に基づいて、DCVS解決法は、プロセッサが、電力消費の低減および許容可能なレベルの応答性(たとえば、モバイルデバイスのユーザが違いに気づかないような、など)を達成しながら、計算された安定状態の要件を満たすように動作し得る、上側の周波数閾値および下側の周波数閾値を計算することができる。 The DCVS solution may be configured to balance performance and power consumption based on the steady state workload of the processor and the steady state performance requirements. Steady state performance requirements are calculated or measured by calculating or measuring values that indicate how long the processor is busy and / or idle (eg, length of time, number of CPU cycles, etc.) Can be determined by averaging the results of and determining the amount of time / processing required to complete the steady state workload of the processor. Based on these calculations, the DCVS solution calculates while the processor achieves reduced power consumption and an acceptable level of responsiveness (for example, mobile device users may not notice the difference). An upper frequency threshold and a lower frequency threshold can be calculated that can operate to meet the established steady state requirements.
しばしば、プロセッサは、DCVS解決法が事前に知らされず、安定状態または周波数閾値の計算において考慮されなかった、「作業のバースト」を含む、過渡的な作業負荷を処理/実行することを求められる。過渡的な作業負荷は、動的である、一時的である、またはプロセッサの作業負荷の予測されない急上昇を引き起こす、作業の任意の単位を含む、システムにより事前に知られていない作業の任意のタスクまたは単位であり得る。例として、過渡的な作業負荷は、ユーザ入力、システムイベント、検出された環境的な条件、リモートプロシージャコールなどに応答してプロセッサによって実行されるタスクのいずれかまたはすべてを含み得る。さらなる例として、過渡的な作業負荷は、ユーザがユーザ動作を開始するためにポータブルコンピューティングデバイス(PCD)のタッチスクリーンをタッチしたときに生成されてよく、PCDは(たとえば、インターフェースの更新によって、新たな画像を表示することによって、新たな動作を始めることによって、など)そのユーザ動作に直ちに応答しなければならない。 Often processors are required to process / execute transient workloads, including “bursts of work”, where DCVS solutions were not known in advance and were not considered in steady state or frequency threshold calculations. . A transient workload is any task of work that is not known in advance by the system, including any unit of work that is dynamic, temporary, or causes an unexpected spike in processor workload Or it can be a unit. By way of example, a transient workload may include any or all of the tasks performed by the processor in response to user input, system events, detected environmental conditions, remote procedure calls, and the like. As a further example, a transient workload may be generated when a user touches a portable computing device (PCD) touch screen to initiate a user action, where the PCD (e.g., via interface updates, It must immediately respond to the user action (such as by starting a new action by displaying a new image).
上で言及されたように、過渡的な作業負荷は、DCVS解決法が(たとえば、上側の閾値と下側の閾値を決定することの一部として)事前に適切に考慮できる、継続的な安定状態の負荷ではない。結果として、過渡的な作業負荷は、プロセッサを、予想されるよりも長くビジー状態のままにすることがあり、かつ/または、そうでなければ、プロセッサ実行時間に不確実さをもたらすことがある。そのような不確実さは、コンピューティングデバイスに、処理リソースおよびシステムリソースを非効率的にまたは不適切に割り振らせることがあり、コンピューティングデバイスの全体的な性能および/または応答性に対して、コンピューティングデバイスが複数のプロセッシングコアを含むときには特に、重大な影響を有することがある。 As mentioned above, transient workloads are continuously stable that the DCVS solution can properly consider in advance (eg, as part of determining the upper and lower thresholds). It is not a state load. As a result, transient workloads may leave the processor busy longer than expected and / or otherwise introduce uncertainty in processor execution time. . Such uncertainties may cause computing devices to allocate processing and system resources inefficiently or inappropriately, and with respect to the overall performance and / or responsiveness of the computing device, Especially when a computing device includes multiple processing cores, it can have a significant impact.
現在のコンピューティングデバイスは、システムオンチップ(SoC)および/または複数のプロセッシングコア(たとえば、プロセッサ、コアなど)を含む、マルチプロセッサシステムであることが多い。マルチプロセッサシステムでは、単一のスレッドが、第1のプロセッシングコアによって処理され、次いで第2のプロセッシングコアによって処理され、次いで再び第1のプロセッシングコアによって処理されることが一般的である。第1のプロセッシングコア中の1つのスレッドの結果が、第2のプロセッシングコアを実行する別のスレッドにおける動作を引き起こすことも一般的である。たとえば、1つまたは複数のプロセッシングコアは、現在アクティブであるプロセッサによって生成される結果に依存することがあり、現在アクティブであるプロセッサがその作業負荷を完了するまで、かつ/または、1つまたは複数のタスクの処理を終了するまで、アイドル状態または待機状態のままであることを求められ得る。これらの状況では、各プロセッシングコアは代替的に、現在アクティブであるプロセッサからの処理の結果を待ちながら、アイドル/待機状態に入ることができる。これらのプロセッシングコアが現在アクティブであるプロセッサによって生成される結果を待つ間、それらのそれぞれのDCVS解決法は、動作速度を下げる(すなわち、周波数/電圧の低減を介して)ことがあり、コンピューティングデバイスが非応答的であるように、または低速であるように見えるようになる。すなわち、マルチプロセッサコンピューティングデバイスで実施されるDCVS解決法は、プロセッシングコアのいくつかが、現在アクティブであるスレッドを実行するのに最適なものよりも低い周波数または電圧で動作すべきであると、誤って結論付けることがあり、コンピューティングデバイスが非応答的であるように、または低速であるように見えるようになることがある。 Current computing devices are often multiprocessor systems that include a system on chip (SoC) and / or multiple processing cores (eg, a processor, a core, etc.). In a multiprocessor system, it is common for a single thread to be processed by a first processing core, then by a second processing core, and then again by a first processing core. It is also common for the result of one thread in the first processing core to cause an action in another thread that executes the second processing core. For example, one or more processing cores may depend on results generated by the currently active processor, and / or until the currently active processor completes its workload and / or It may be required to remain in an idle state or a standby state until the processing of the task is completed. In these situations, each processing core can alternatively enter an idle / wait state waiting for the result of processing from the currently active processor. While these processing cores wait for results generated by the currently active processor, their respective DCVS solutions may slow down operation (ie, via frequency / voltage reduction) and compute The device appears to be unresponsive or slow. That is, the DCVS solution implemented on a multiprocessor computing device is that some of the processing cores should operate at a lower frequency or voltage than is optimal for executing the currently active thread, It may conclude erroneously and the computing device may appear to be unresponsive or slow.
様々な態様は、あるプロセッシングコアが、そのプロセッシングコアの事前に計算された実際の安定状態の作業負荷を完了するのに必要な時間を上回る所定の長さの時間よりも長く、(たとえば、過渡的な作業負荷が原因で)ビジー状態に留まらないことを確実にする、性能保証を計算して守らせることによって、上述の制約を克服する。そのような性能保証は、リソースを割り振り実行のためにスレッドをスケジューリングすることなどの、今後の動作をより良好に推定し、スケジューリングし、かつ/または計画するために、オペレーティングシステム、リソース、DCVS解決法、および/または他のプロセッシングコアによって使用され得る。この方式で、性能保証は、コンピューティングデバイスがその応答性の要件を満たすことを可能にし、したがってユーザ体験を改善する。 Various aspects may be longer than a predetermined amount of time that exceeds the time required for a processing core to complete its pre-calculated actual steady state workload (e.g., transient Overcoming the above-mentioned limitations by calculating and adhering performance guarantees that ensure that they do not stay busy (due to a typical workload). Such performance guarantees can resolve operating system, resource, and DCVS resolutions to better estimate, schedule, and / or plan for future operations, such as allocating resources and scheduling threads for execution. Can be used by the law and / or other processing cores. In this manner, performance assurance allows a computing device to meet its responsiveness requirements, thus improving the user experience.
性能保証は、DCVS解決法が、変動する遅延に基づいてプロセッサの周波数および/または電圧を調整することを可能にし、このことは、プロセッシングコアが、プロセッサの現在のまたは以前の動作周波数/電圧とは関係なく、最大でもある定められた最大の量の作業の分しか、安定状態の作業負荷に対して遅れないことを確実にする。 Performance guarantees allow the DCVS solution to adjust the processor frequency and / or voltage based on the varying delay, which means that the processing core will be able to match the current or previous operating frequency / voltage of the processor. Regardless, it ensures that only a defined maximum amount of work, which is at most, lags behind the steady state workload.
図10は、性能保証を守らせる動的クロック周波数/電圧スケーリング(DCVS)方法を実施する、ある態様のコンピューティングデバイス1000における論理コンポーネントおよび情報の流れを示す。コンピューティングデバイス1000は、ハードウェアユニット1002、カーネル空間ソフトウェアユニット1004、およびユーザ空間ソフトウェアユニット1006を含み得る。ある態様では、カーネル空間ソフトウェアユニット1004およびユーザ空間ソフトウェアユニット1006は、コンピューティングデバイス1000のオペレーティングシステムまたはカーネルに含まれ得る。たとえば、コンピューティングデバイスは、(非特権コードが実行される場合)ユーザ空間内に編成され、(特権コードが実行される場合)カーネル空間内に編成される、カーネルを含み得る。この分離は、カーネル空間の一部であるコードが一般公共使用許諾(GPL)のもとで許諾される必要がある一方で、ユーザ空間内で実行されるコードがGPLのもとで許諾される必要がない、Androidおよび他のGPL環境において特に重要である。
FIG. 10 illustrates logical components and information flow in an aspect of a
ハードウェアユニット1002は、いくつかのプロセッシングコア(たとえば、CPU_0、CPU_1、2D-GPU_0、2D-GPU_1、3D-GPU_0など)と、プロセッシングコアによって共有される様々なハードウェアリソース(たとえば、クロック、電力管理集積回路または“PMIC”、スクラッチパッドメモリまたは“SPM”など)を含むリソースモジュール1020とを含み得る。
カーネル空間ソフトウェアユニット1004は、ハードウェアユニット1002の中のプロセッシングコアの少なくとも1つに対応するプロセッサモジュール(CPU_0 Idle stats、CPU_1 idle stats、2D-GPU_0 driver、2D-GPU_1 driver、3D-GPU_0 driverなど)を含んでよく、これらの各々は、1つまたは複数のアイドル状態統計デバイスモジュール1008と通信し得る。カーネル空間ソフトウェアユニット1004はさらに、タイマードライバモジュール1014、入力イベントモジュール1010、およびCPU要求統計モジュール1012を含み得る。ある態様では、タイマードライバモジュール1014は、各プロセッシングコアのためのタイマーを駆動(または管理)することができる。
The kernel
ユーザ空間ソフトウェアユニット1006は、アイドル状態統計デバイスモジュール1008、入力イベントモジュール1010、タイマードライバモジュール1014、およびCPU要求統計モジュール1012の各々から入力を受信し、かつ/または、CPU周波数ホットプラグモジュール1018に出力を送信するように構成される、DCVS制御モジュール416を含み得る。CPU周波数ホットプラグモジュール1018は、通信信号をリソースモジュール1020に送信するように構成され得る。CPU周波数ホットプラグモジュール1018はさらに、各コアに対して、独立に(たとえば一度に1つのコアに、順番に、など)、または同時に(たとえば、ほぼ同じ時点で)、電圧/周波数の変更を適用するように構成され得る。
User
DCVS制御モジュール1016は、プロセッシングコア(たとえば、CPU_0、CPU_1、2D-GPU_0、2D-GPU_1、3D-GPU_0など)のいずれかまたはすべてでの実行に適した、かつ/または、コンピューティングデバイス1000でのDCVS解決法の実施に適した、スレッドを含み得る。ある態様では、DCVS制御モジュール1016は、DCVS制御モジュール1016に1つまたは複数のプロセッシングコアから情報を収集させてプロセッシングコアでDCVS動作を実行させるイベント(たとえば、データバッファが満杯であること、タイマーの時間切れ、状態の移行など)の発生について、ポートまたはソケットを監視する、スレッドを含み得る。ある態様では、DCVS制御モジュール1016は、2つ以上のプロセッシングコアを監視する、単一スレッドのDCVS解決法を含み得る。ある態様では、DCVS制御モジュール1016は、各プロセッシングコアのためのDCVS解決法のスレッドを含み得る。
The
ある態様では、DCVS制御モジュール1016は、パルス列を生成するように構成され得る。DCVS制御モジュール1016は、プロセッシングコアのビジー状態および/またはアイドル状態(またはこれらの状態の間の移行)を監視またはサンプリングすることによって、パルス列を生成することができる。DCVS制御モジュール1016はまた、1つまたは複数のプロセッサ実行キューの深さを監視することによって得られる情報に基づいて、パルス列を生成することができる。実行キューは、実行されているスレッドとともに、プロセッシングコアで実行される能力を有するがまだそうすることが可能ではない(たとえば、現在実行されている別のアクティブスレッドなどが原因で)、1つまたは複数のスレッドの集合体を含み得る。各プロセッシングコアは固有の実行キューを有してよく、または単一の実行キューが複数のプロセッシングコアによって共有されてよい。スレッドがスリープ状態に入ることを要求するとき、利用可能になることをリソース上で待機しているとき、または終了されたとき、スレッドは実行キューから除去され得る。したがって、実行キューの中のスレッドの数(すなわち、実行キューの深さ)は、現在処理されている(実行されている)スレッドおよび処理されるのを待機しているスレッドを含む、アクティブスレッド(たとえば、待機している、実行されている)の数を特定することができる。
In certain aspects, the
ある態様では、DCVS制御モジュール1016は、生成されたパルス列に基づいて、安定状態の作業負荷、安定状態の要件、および/または上側と下側の周波数/電圧の閾値を計算するように構成され得る。上側と下側の周波数/電圧の閾値は、プロセッシングコアが、安定状態の性能要件を満たしながら、同時にコンピューティングデバイス1000の消費電力の低減を達成し、応答性の要件を満たすように動作できる、周波数/電圧の範囲を定義することができる。応答性の要件を満たすことは、コンピューティングデバイス1000のユーザがコンピューティングデバイスの性能または速度の低下に気づかないように、作業負荷のすべてのタスクを実行することを含み得る。
In an aspect, the
DCVS制御モジュール1016は、全体的なコンピューティングデバイス1000の性能を監視し、かつ/または、確立された上側の周波数閾値と下側の周波数閾値との間でプロセッシングコアの1つまたは複数が動作することを保証するように構成され得る。DCVS制御モジュール1016は、プロセッシングコアの処理リソースおよび/または動作周波数を、それらが閾値と同じ大きさとなるように、調整することができる。
The
上で論じられたように、DCVS制御モジュール1016は、パルス列を生成することができる。ある態様では、プロセッシングコアの2つ以上のために生成されるパルス列は、互いに協調的かつ/または依存的である動作をプロセッシングコアが実行しているかどうかを判定するのに適した情報を含む相関モデルを生成するために、時間的に同期され、相互に関連付けられ得る。ある態様では、DCVS制御モジュール1016は、相関モデルを使用して、上側と下側の周波数閾値、初期動作周波数、安定状態の要件、およびプロセッサの作業負荷を、これらの値がプロセッシングコア間の相互依存関係を考慮するように、決定することができる。
As discussed above, the
ある態様では、DCVS制御モジュール1016は、性能保証を計算し、かつ/または守らせるように構成され得る。上で言及されたように、プロセッシングコアは、DCVS解決法が事前に適切に考慮できない過渡的な作業負荷を、処理/実行することを求められ得る。したがって、過渡的な作業負荷は、DCVS制御モジュール1016に、準最適な周波数レベルで、または準最適な周波数範囲の中で、プロセッシングコアの1つまたは複数を動作させ得る。たとえば、DCVS制御モジュール1016は過渡的な作業負荷を事前に考慮できないので、DCVS制御モジュール1016は、プロセッシングコアが、安定状態の作業負荷と過渡的な作業負荷の両方をコンピューティングデバイス1000の応答性の要件を満たすのに適した期間中に完了するために必要とされるものよりも低い周波数レベルで動作し得ると、不適切に結論付けることがある。
In an aspect, the
性能保証は、(たとえば、過渡的な作業負荷が原因で)所定の長さの時間よりも長くプロセッシングコアがビジー状態に留まらないこと/安定状態の作業負荷の要件を完了するためにそのプロセッシングコアに対して必要とされるものよりも多くプロセッシングコアが働かないことを確実にするために、DCVS制御モジュール1016によって使用され得る、厳格かつ計算可能な限度をコンピューティングデバイス1000に提供する。性能保証は、DCVS制御モジュール1016が、コンピューティングデバイス1000の応答性の要件を満たすのに適した期間中に安定状態の作業負荷と過渡的な作業負荷の両方をプロセッシングコアが完了することを確実にすることを可能にする。
The performance guarantee is that the processing core will not stay busy longer than a given length of time (eg due to a transient workload) / the processing core to complete the steady state workload requirement. In order to ensure that more processing cores do not work than is required for the computer, it provides the
様々な態様では、性能保証は、時間の長さ、作業の量、タスクの数、命令の数、CPUサイクル数などのような、プロセッサ性能または時間長を測定するのに適した、測定の任意の単位で、計算され、定義され、かつ/またはそれを含み得る。様々な態様では、性能保証は、周波数と関連付けられてよく、かつ/または周波数の関数であってよい。 In various aspects, the performance guarantee is an optional measurement suitable for measuring processor performance or time length, such as length of time, amount of work, number of tasks, number of instructions, number of CPU cycles, etc. Can be calculated, defined and / or include. In various aspects, the performance guarantee may be associated with frequency and / or may be a function of frequency.
ある態様では、性能保証は、1つまたは複数の性能保証値を含み得る。様々な態様では、性能保証値(たとえば、期限値、バジェット値、jump-to-max値など)が、時間の長さ、作業の量、タスクの数、命令の数、CPUサイクル数などのような、プロセッサ性能または時間長を測定するのに適した、測定の任意の単位で表現され得る。 In certain aspects, the performance guarantee may include one or more performance guarantee values. In various aspects, performance guarantee values (eg, deadline values, budget values, jump-to-max values, etc.), such as length of time, amount of work, number of tasks, number of instructions, number of CPU cycles, etc. It can be expressed in any unit of measurement suitable for measuring processor performance or time length.
様々な態様では、性能保証値は、バジェット値(たとえば、スラックバジェット、過渡バジェットなど)、期限値(たとえば、過渡期限、過渡応答期限、性能期限など)、および/またはjump-to-max値を含み得る。 In various aspects, the performance guarantee value may be a budget value (eg, slack budget, transient budget, etc.), a deadline value (eg, transient deadline, transient response deadline, performance deadline, etc.), and / or a jump-to-max value. May be included.
期限値は、その前までにプロセッシングコアが作業負荷の処理を完了すべきである、相対的な時間を示す値、および/または、その後にプロセッシングコアの周波数が上げられるべきである、相対的な時間を示す値であってよい。 The deadline value is a value that indicates the relative time before which the processing core should complete the processing of the workload and / or the relative frequency that the processing core frequency should be raised thereafter. It may be a value indicating time.
バジェット値は、その前までにプロセッシングコアが作業負荷の処理を完了すべきである、かつ/または、その後にプロセッシングコアの周波数が上げられるべきである、残りの時間の長さを示す値であってよい。 The budget value is a value that indicates the length of time remaining before the processing core should complete processing the workload and / or after which the processing core frequency should be increased. It's okay.
jump-to-max値は、その前までにプロセッシングコアが作業負荷の処理を完了すべきである、かつ/または、その後にプロセッシングコアの周波数が最大の周波数まで上げられるべきである、相対的な時間を示す値であってよい。 The jump-to-max value is a relative value by which the processing core should complete the workload processing before and / or after that the processing core frequency should be raised to the maximum frequency. It may be a value indicating time.
性能保証値は、周波数または電圧に関連していてよく、それらと関連付けられてよく、かつ/またはそれらの関数であってよい。たとえば、バジェット、期限、および/またはjump-to-maxの値の各々は、対応するプロセッシングコアの動作周波数の関数として計算される、時間の値であってよい。したがって、これらの値の各々は、プロセッシングコアが100MHzの周波数で動作するときは10ミリ秒であってよく、200MHzの周波数で動作するときは20ミリ秒であってよく、400MHzの周波数で動作するときは40ミリ秒であってよい、などである。この方式で、性能保証値は、プロセッシングコアの周波数を上げるための可変の遅延を実装するために、DCVS解決法によって使用され得る。 Performance guarantee values may be related to, associated with, and / or a function of frequency or voltage. For example, each of the budget, deadline, and / or jump-to-max values may be a time value calculated as a function of the operating frequency of the corresponding processing core. Thus, each of these values may be 10 milliseconds when the processing core operates at a frequency of 100 MHz, 20 milliseconds when it operates at a frequency of 200 MHz, and operates at a frequency of 400 MHz. Sometimes it can be 40 milliseconds, and so on. In this manner, the guaranteed performance value can be used by the DCVS solution to implement a variable delay to increase the frequency of the processing core.
上で言及され図9に示されるように、DCVS解決法は可変の遅延を実装することができる。そのような可変の遅延は、プロセッシングコアが、プロセッシングコアの実際の動作周波数とは関係なく、最大でも定められた最大の量の作業の分しか、安定状態の作業負荷に対して遅れないことを、確実にする。ある態様では、DCVS解決法は、プロセッシングコアの最大の周波数/電圧と乗算された期限値と等しいように、定められた最大の量の作業(すなわち、その分だけプロセッシングコアが安定状態の作業負荷に対して遅れ得る)を設定することができる。この方式で、性能保証は、安定状態の要件に基づいて、または動的に、または「オンザフライ」で、プロセッシングコアの周波数/電圧をDCVS解決法が調整することによって、影響されない。 As mentioned above and shown in FIG. 9, the DCVS solution can implement variable delay. Such variable delays indicate that the processing core will only be delayed relative to the steady state workload by a maximum amount of work, regardless of the actual operating frequency of the processing core. ,to be certain. In one aspect, the DCVS solution is a defined maximum amount of work (i.e., the processing core is at a steady state workload equal to the deadline value multiplied by the maximum frequency / voltage of the processing core). Can be delayed). In this manner, performance guarantees are not affected by the DCVS solution adjusting the processing core frequency / voltage based on steady state requirements, or dynamically or “on the fly”.
ある態様では、DCVS制御モジュール1016は、対応するプロセッシングコアがアイドル状態からビジー状態に移行し、ビジー状態に入り(たとえば、作業負荷の処理を開始するなど)、かつ/またはアイドル状態から出る(たとえば、アイドルスレッドがプロセッシングコアを解放するときなど)たびに、バジェット値に等しく期限値を設定するように構成され得る。
In an aspect, the
ある態様では、DCVS制御モジュール1016は、対応するプロセッシングコアがビジー状態からアイドル状態に移行し、アイドル状態に入り(たとえば、アイドルスレッドの実行を開始するなど)、かつ/またはビジー状態から出る(たとえば、作業負荷のすべてのタスクを完了するなど)たびに、既存の期限値を設定または再設定するように構成され得る。
In an aspect, the
図11A〜図11Bは、あるプロセッシングコアが、そのプロセッシングコアの事前に計算された、予測された、かつ/または実際の安定状態の作業負荷を完了するのに必要な時間を上回る所定の長さの時間よりも長く、(たとえば、過渡的な作業負荷などが原因で)ビジー状態に留まらないことを確実にする、性能保証を生成/計算する、ある態様のDCVS解決方法1100を示す。様々な態様では、DCVS解決法の動作は、プロセッシングコアまたは別のプロセッシングコアで実行されるスレッドによって実行され得る。ある態様では、DCVS解決法の動作の1つまたは複数は、プロセッシングコアで実行されるアイドルスレッドによって実行され得る。
FIGS. 11A-11B illustrate a predetermined length that exceeds the time required for a processing core to complete its pre-calculated, predicted, and / or actual steady state workload. An aspect of a
ブロック1102において、DCVS解決法は、プロセッシングコアを、アイドル状態からビジー状態へ移行させ得る。ブロック1104において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。したがって、アイドル状態終了時間パラメータ(EndIdleTime)は、プロセッシングコアが最後にアイドル状態から出た時間を示す値を記憶することができる。
At
様々な態様では、ブロック1102および1104の動作は、順番に、並列に、かつ/または任意の順序で実行され得る。たとえば、ある態様では、DCVS解決法は、アイドル状態からビジー状態にプロセッシングコアを移行する前に、アイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。別の態様では、DCVS解決法は、アイドル状態からビジー状態にプロセッシングコアを移行した後に、アイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。
In various aspects, the operations of
ブロック1106において、DCVS解決法は、プロセッシングコアの動作周波数または電圧を監視し、必要に応じて調整を行うことができる。ブロック1108において、DCVS解決法は、プロセッシングコアを、ビジー状態からアイドル状態へ移行させ得る。ある態様では、DCVS解決法は、プロセッシングコアでのアイドルスレッドの実行を開始することによって、プロセッシングコアをアイドル状態に移行することができる。ある態様では、DCVS解決法は、プロセッシングコアがすべての作業負荷と関連付けられるすべてのタスクを完了した後で、プロセッシングコアをアイドル状態に移行することができる。
In
任意選択のブロック1110において、DCVS解決法は、既存の期限値を設定または再設定することができる。上で論じられたように、期限値は、性能保証に含まれ、またはそれと関連付けられる、性能保証値であり得る。期限値を設定し、再設定し、かつ/または計算する動作に関する追加の詳細が、さらに以下で提供される。
In
ブロック1112において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態開始時間パラメータ(StartIdleTime)の値を設定することができる。ブロック1114において、DCVS解決法は、プロセッシングコアが最後に以前のアイドル状態から出た時間(アイドル状態終了時間パラメータ“EndIdleTime”によって表され得る)と、プロセッシングコアが現在のアイドル状態に入った時間(アイドル状態開始時間パラメータ“StartIdleTime”によって表され得る)との差に等しく、ビジー時間パラメータ(BusyTime)の値を設定することができる。したがって、ビジー時間パラメータ(BusyTime)は、プロセッシングコアが直近にビジー状態に留まっていた時間長を示す値を記憶することができる。
In
ブロック1116において、DCVS解決法は、プロセッシングコアに、スリープ動作、ディープスリープ動作、または割込みのためのソフトウェア待機動作のような、様々なアイドル状態動作を実行させ得る。したがって、ブロック1116において、DCVS解決法(たとえば、アイドルスレッド、オペレーティングシステムなどを介した)は、プロセッシングコアに、スリープ状態、ディープスリープ状態、割込みのための待機の状態などに入らせ得る。
At
ブロック1118において、DCVS解決法および/またはアイドルスレッドは、割込み要求を受信し、かつ/または、そうでなければ、プロセッシングコアが現在の状態からビジー状態に移行されるべきであると判定することができる。これは、タスクがプロセッシングコアでの実行のためにスケジューリングされたこと、および/または、スケジューリングされたタスクが実行の準備ができていることの通知を、(たとえば、オペレーティングシステムのスケジューラ、コントローラなどから)DCVS解決法が受信することによって、達成され得る。
At
ブロック1120において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。ブロック1122において、DCVS解決法は、StartIdleTimeパラメータの値とEndIdleTimeパラメータの値の差に等しく、アイドル時間パラメータ(IdleTime)の値を設定することができる。したがって、アイドル時間パラメータ(IdleTime)は、プロセッシングコアが最後にアイドル状態に留まっていた時間長を示す値を記憶することができる。
In
ブロック1124において、DCVS解決法は、その中でプロセッシングコアが動作すべきである、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。ある態様では、DCVS解決法は、ビジー状態(たとえば、BusyTime)にプロセッシングコアが最後に留まっていた時間長、および/または、アイドル状態(たとえば、IdleTime)にプロセッシングコアが最後に留まっていた時間長に基づいて、周波数または周波数範囲を計算することができる。ある態様では、DCVS解決法は、プロセッサが以前にビジー状態および/またはアイドル状態に留まっていた時間長(たとえば、所定の期間または時間枠にわたる)の平均(または移動平均)のような、履歴情報に基づいて、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。ある態様では、DCVS解決法は、パルス列に基づいて、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。上で論じられたように、パルス列は、ビジー状態および/またはアイドル状態のサンプリング、状態間の移行、実行キューの深さなどに基づいて生成され得る。
In
ブロック1126において、DCVS解決法は、期限値を計算または選択することができる。期限値は、その後に次の段階のより高い周波数と最大の周波数のいずれかにプロセッシングコアの周波数が上げられるように設定されるべきである、相対的な時間を示す値であり得る。様々な態様では、期限値は、構成設定、ドライバ入力、スケジューリングされたタスクの量および/もしくはタイプ、予測された安定状態の作業負荷、ならびに/または、コンピューティングデバイスの応答性の要件に基づいて計算され得る。期限値は、静的な値および/または動的な値に基づいて決定され得る。たとえば、期限値は、静的な構成値に基づいて、または、プロセッシングコアで実行されるようにスケジューリングされるタスクのタイプ(たとえば、1080pビデオのストリーミング対720pビデオのストリーミングなど)に基づいて決定され得る。
In
ある態様では、期限値は、コンピューティングデバイスの応答性の要件に反比例し得る(すなわち、応答性の要件が高いほど、期限は短い)。ある態様では、期限値は、プロセッシングコアの現在の動作周波数の関数である時間の値(たとえば、100MHzの周波数では10ミリ秒、200MHzの周波数では20ミリ秒、400MHzの周波数では40ミリ秒など)であり得る。 In certain aspects, the deadline value may be inversely proportional to the responsiveness requirement of the computing device (ie, the higher the responsiveness requirement, the shorter the deadline). In one aspect, the deadline value is a time value that is a function of the current operating frequency of the processing core (eg, 10 milliseconds for a 100 MHz frequency, 20 milliseconds for a 200 MHz frequency, 40 milliseconds for a 400 MHz frequency, etc.) It can be.
ブロック1128において、DCVS解決法は、バジェット値を計算または選択することができる。バジェット値は、期限値と、安定状態の作業負荷の要件を完了するためにプロセッシングコアに対して必要とされると判定された時間との合計を超えることなく、プロセッシングコアがアクティブ状態またはビジー状態のままであり得る時間の長さを示す値であり得る。ある態様では、バジェット値は、プロセッシングコアの現在の動作周波数の関数である時間の値(たとえば、100MHzの周波数では10ミリ秒、200MHzの周波数では20ミリ秒、400MHzの周波数では40ミリ秒など)であり得る。
At
様々な態様では、バジェット値は、期限値、複数の周波数レベルまたはステップ、最大のプロセッサ周波数、安定状態のプロセッサ周波数などに基づいて計算され得る。ある態様では、バジェット値は、実効過渡バジェットであってよく、かつ/または、上で論じられた式のいずれかを介して計算されてよい。 In various aspects, the budget value may be calculated based on a deadline value, multiple frequency levels or steps, a maximum processor frequency, a steady state processor frequency, and the like. In certain aspects, the budget value may be an effective transient budget and / or may be calculated via any of the equations discussed above.
任意選択のブロック1130において、DCVS解決法は、jump to max値を計算することができる。jump-to-max値は、その後にプロセッシングコアの周波数が最大の処理周波数に設定されるべきである、相対的な時間を示す値であり得る。ある態様では、jump-to-max値は、EndIdleTimeパラメータの値とバジェット値とを加算することによって計算され得る。
In
ブロック1132において、DCVS解決法は、プロセッシングコアを、アイドル状態からビジー状態へ移行することができる。ある態様では、ブロック1132の一部として、DCVS解決法は、バジェット値に等しく期限値を設定することができる。様々な態様では、DCVS解決法は、プロセッシングコアがアイドル状態からビジー状態に移行し、アクティブ状態またはビジー状態に入り(たとえば、作業負荷の処理を開始するなど)、かつ/またはアイドル状態から出る(たとえば、アイドルスレッドがプロセッシングコアを解放するときなど)たびに、バジェット値に等しく期限値を設定するように構成され得る。
In
図12は、あるプロセッシングコアが、そのプロセッシングコアの事前に計算された、予測された、かつ/または実際の安定状態の作業負荷を完了するのに必要な時間を上回る所定の長さの時間よりも長く、(たとえば、過渡的な作業負荷の存在などが原因で)ビジー状態に留まらないことを確実にするために、性能保証を守らせる、ある態様のDCVS解決方法1200を示す。ブロック1202において、DCVS解決法は、スケジューリングされたタスクに基づいて、予測された安定状態の作業負荷を計算することができる。ブロック1204において、DCVS解決法は、コンピューティングデバイスの電力消費および/または応答性の要件を満たすための周波数閾値のような、プロセッシングコアに対する様々な性能要件を計算することができる。性能要件(たとえば、周波数閾値など)は、安定状態の作業負荷、履歴情報(たとえば、ビジー状態でこれまでに経過した時間の長さなど)、プロセッサの特性、応答性の要件などに基づいて、決定され得る。
FIG. 12 shows that a certain processing core exceeds a predetermined length of time that exceeds the time required to complete the pre-calculated, predicted, and / or actual steady state workload of that processing core. Some aspects of the DCVS solution 1200 are shown to ensure that performance guarantees are met to ensure that they are not too busy (eg, due to the presence of a transient workload). In
ブロック1206において、DCVS解決法は、初期動作周波数および/または様々な性能保証値(たとえば、期限値、バジェット値、jump-to-max値など)を計算し設定することができる。ブロック1208において、DCVS解決法は、様々な性能要件を満たしながら安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされる時間または作業の量(たとえば、CPUサイクル、命令など)を計算することができる。
At
ブロック1210において、DCVS解決法は、プロセッシングコアが計算された初期動作周波数/電圧で(または計算された閾値の範囲内で)実行され、かつ/または様々なデバイスもしくはシステムの要件を満たすように、プロセッシングコアをアイドル状態からビジー状態に移行することができる。ブロック1212において、DCVS解決法は、プロセッシングコアの実際の作業負荷および/または動作周波数を監視して、必要に応じて(たとえば、デフォルトのクロックおよび電圧スケーリングアルゴリズムに従って)周波数/電圧を調整することができる。任意選択のブロック1214において、DCVS解決法は、プロセッシングコアの現在の動作周波数/電圧に基づいて、性能保証値を更新することができる。
At block 1210, the DCVS solution is performed at the calculated initial operating frequency / voltage (or within the calculated threshold) and / or meets various device or system requirements. The processing core can be shifted from the idle state to the busy state. In
判定ブロック1216において、DCVS解決法は、プロセッシングコアが、計算された時間/作業(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると判定された時間/作業の量)よりも長くビジー状態に留まっているかどうかを判定することができる。プロセッシングコアが計算された時間/作業よりも長くビジー状態に留まっていないとDCVS解決法が判定すると(すなわち、判定ステップ1216=“No”)、ブロック1212において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要なときに調整を行うことができる。
At
プロセッシングコアが計算された時間/作業よりも長い期間ビジー状態に留まっているとDCVS解決法が判定すると(すなわち、判定ステップ1216=“Yes”)、判定ブロック1218において、DCVS解決法は、バジェットが使い果たされたかどうかを判定することができる。DCVS解決法は、バジェット値が0に等しいとき、および/または、期限値に計算された時間/作業を加算したもの以上の期間(時間と作業のいずれかで測定される)、プロセッシングコアがビジー状態に留まっているとき、バジェットが使い果たされたと判定することができる。
If the DCVS solution determines that the processing core has been busy for longer than the calculated time / work (ie,
バジェットが使い果たされていないとDCVS解決法が判定すると(すなわち、判定ステップ1218=“No”)、ブロック1212において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要なときに調整を行うことができる。バジェットが使い果たされているとDCVS解決法が判定すると(すなわち、判定ステップ1218=“Yes”)、ブロック1220において、DCVS解決法は、プロセッシングコアの動作周波数/電圧を上げることができる。ある態様では、ブロック1220において、DCVS解決法は、プロセッシングコアの動作周波数/電圧を最大のプロセッサ周波数に上げることができる。ある態様では、ブロック1220において、DCVS解決法は、動作周波数/電圧の閾値を上げることができる。ある態様では、ブロック1220において、DCVS解決法は、プロセッシングコアの動作周波数/電圧を段階的に上げることができる。
If the DCVS solution determines that the budget has not been exhausted (ie,
図13は、性能保証を守らせる、別の態様のDCVS解決方法1300を示す。ブロック1302〜1314において、DCVS解決法は、図12のブロック1202〜1214に関して上で論じられた動作と同一の、または同様の動作を実行することができる。判定ブロック1316において、DCVS解決法は、計算された時間(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると判定された時間の長さ)と期限値を加算した時間(計算された時間+期限)よりも前に、プロセッシングコアが現在の作業負荷を完了する確率が高いかどうかを、判定することができる。
FIG. 13 illustrates another aspect of a
計算された時間に期限値を加算した時間よりも前にプロセッシングコアが現在の作業負荷を完了する確率が高いとDCVS解決法が判定すると(すなわち、判定ステップ1316=“Yes”)、ブロック1312において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要に応じて動作周波数/電圧に対する調整を行うことができる。
If the DCVS solution determines that the processing core is likely to complete the current workload before the calculated time plus the deadline value (ie,
計算された時間の値に期限値を加算した時間よりも前にプロセッシングコアが現在の作業負荷を完了する確率が高くないとDCVS解決法が判定すると(すなわち、判定ステップ1316=“No”)、ブロック1318において、DCVS解決法は、プロセッシングコアの動作周波数/電圧を上げることができる。プロセッシングコアの動作周波数/電圧は、最大のプロセッサ周波数に上げられてよく、または段階的に上げられてよい。
If the DCVS solution determines that the processing core is not likely to complete the current workload before the calculated time value plus the deadline value (ie,
様々な態様は、プロセッサを有するコンピューティングデバイス上での性能を向上させる方法を含み、この方法は、プロセッサの安定状態の作業負荷を決定するステップと、プロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するステップと、プロセッサに対する性能保証値を計算するステップと、アイドル状態からビジー状態にプロセッサを移行するステップと、動的クロックおよび電圧スケーリング動作を実行して、プロセッサの実際の作業負荷に基づいてプロセッサの周波数をスケーリングするステップと、スケーリングされた周波数に基づいて性能保証値を更新するステップと、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっているかどうかを判定するステップと、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるステップとを含み得る。 Various aspects include a method for improving performance on a computing device having a processor, the method comprising determining a steady state workload of the processor and a determined steady state workload on the processor. Determining the amount of work required to perform the steps, calculating a performance guarantee value for the processor, transitioning the processor from idle to busy, and dynamic clock and voltage scaling operations. Executing and scaling the processor frequency based on the processor's actual workload; updating the performance guarantee value based on the scaled frequency; and the sum of the determined amount of work and the performance guarantee value Determine if the processor stays busy for these periods Step a, determined amount and the sum over a period of performance guaranteed value of work, when the processor is determined to remain busy, may include the step of increasing the frequency of the processor.
ある態様では、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるステップは、プロセッサの周波数を最大のプロセッサ周波数に上げるステップを含み得る。さらなる態様では、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるステップは、プロセッサの周波数を段階的に上げるステップを含み得る。さらなる態様では、方法はさらに、スケーリングされた周波数に基づいて性能保証値を更新し、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっているかどうかを判定し、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されるときに、プロセッサの周波数を上げる動作を、繰り返し実行するステップを含み得る。 In one aspect, when it is determined that the processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value, the step of increasing the frequency of the processor increases the processor frequency to the maximum processor. Increasing the frequency may be included. In a further aspect, the step of increasing the processor frequency when the processor is determined to remain busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value, A step of raising. In a further aspect, the method further updates the performance guarantee value based on the scaled frequency to determine whether the processor remains busy for a period greater than or equal to the determined amount of work and the performance guarantee value. The step of repeatedly increasing the frequency of the processor when it is determined that the processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value may be included.
さらなる態様では、プロセッサに対する性能保証値を計算するステップは、期限値を計算するステップを含み得る。さらなる態様では、プロセッサに対する性能保証値を計算するステップは、バジェット値を計算するステップを含み得る。さらなる態様では、プロセッサの安定状態の作業負荷を決定するステップは、プロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するステップを含み得る。さらなる態様では、方法は、ビジー状態とアイドル状態の移行をサンプリングすることによって、パルス列を生成するステップを含み得る。さらなる態様では、プロセッサの安定状態の作業負荷を決定し、プロセッサ上で安定状態の作業負荷を実行するために必要とされる作業の量を決定し、プロセッサに対する性能保証値を計算する動作は、単一のスレッドによって実行される。さらなる態様では、単一のスレッドはプロセッサ上で実行される。さらなる態様では、単一のスレッドはコンピューティングデバイスの第2のプロセッサ上で実行される。 In a further aspect, calculating a performance guarantee value for the processor may include calculating a deadline value. In a further aspect, calculating a performance guarantee value for the processor may include calculating a budget value. In a further aspect, determining the steady state workload of the processor may include determining a requirement for a task that is scheduled to be executed on the processor. In a further aspect, the method may include generating a pulse train by sampling busy and idle state transitions. In a further aspect, the operations of determining the steady state workload of the processor, determining the amount of work required to execute the steady state workload on the processor, and calculating a performance guarantee value for the processor include: It is executed by a single thread. In a further aspect, a single thread is executed on the processor. In a further aspect, the single thread is executed on the second processor of the computing device.
さらなる態様は、プロセッサの安定状態の作業負荷を決定するための手段と、プロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するための手段と、プロセッサに対する性能保証値を計算するための手段と、アイドル状態からビジー状態にプロセッサを移行するための手段と、動的クロックおよび電圧スケーリング動作を実行して、プロセッサの実際の作業負荷に基づいてプロセッサの周波数をスケーリングするための手段と、スケーリングされた周波数に基づいて性能保証値を更新するための手段と、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっているかどうかを判定するための手段と、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるための手段とを有する、コンピューティングデバイスを含む。 Further aspects include means for determining a steady state workload of the processor, means for determining the amount of work required to perform the determined steady state workload on the processor, Means for calculating a performance guarantee value for the processor; means for transitioning the processor from idle to busy; and performing dynamic clock and voltage scaling operations to determine the processor based on the actual workload of the processor The processor remains busy for a period that is greater than or equal to the sum of the determined amount of work and the guaranteed performance value. Means for determining whether or not the processor is in a period equal to or greater than the sum of the determined amount of work and the guaranteed performance value. If it is determined that remains in Gee state, and means for increasing the frequency of the processor includes a computing device.
ある態様では、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるための手段は、プロセッサの周波数を最大のプロセッサ周波数に上げるための手段を含み得る。 In one aspect, the means for increasing the processor frequency when the processor is determined to remain busy for a period equal to or greater than the sum of the determined amount of work and the guaranteed performance value, Means may be included to increase the processor frequency.
さらなる態様では、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるための手段は、プロセッサの周波数を段階的に上げるための手段を含み得る。さらなる態様では、コンピューティングデバイスはさらに、スケーリングされた周波数に基づいて性能保証値を更新し、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっているかどうかを判定し、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されるときに、プロセッサの周波数を上げる動作を、繰り返し実行するための手段を含み得る。 In a further aspect, the means for increasing the processor frequency when the processor is determined to remain busy for a period greater than or equal to the sum of the determined amount of work and the performance guarantee value, Means may be included. In a further aspect, the computing device further updates the performance guarantee value based on the scaled frequency to determine whether the processor remains busy for a period greater than or equal to the determined amount of work and the performance guarantee value. Including means for repeatedly performing an operation of increasing the frequency of the processor when it is determined that the processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value. obtain.
さらなる態様では、プロセッサに対する性能保証値を計算するための手段は、期限値を計算するための手段を含み得る。さらなる態様では、プロセッサに対する性能保証値を計算するための手段は、バジェット値を計算するための手段を含み得る。さらなる態様では、プロセッサの安定状態の作業負荷を決定するための手段は、プロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するための手段を含み得る。さらなる態様では、コンピューティングデバイスは、ビジー状態とアイドル状態の移行をサンプリングすることによって、パルス列を生成するための手段を含み得る。 In a further aspect, the means for calculating a performance guarantee value for the processor may include means for calculating a deadline value. In a further aspect, the means for calculating a performance guarantee value for the processor may include means for calculating a budget value. In a further aspect, the means for determining the steady state workload of the processor may include means for determining the requirements of a task that is scheduled to be executed on the processor. In a further aspect, the computing device may include means for generating a pulse train by sampling busy and idle state transitions.
さらなる態様では、コンピューティングデバイスは、プロセッサの安定状態の作業負荷を決定し、プロセッサ上で安定状態の作業負荷を実行するために必要とされる作業の量を決定し、プロセッサに対する性能保証値を計算する動作を、単一のスレッドを介して遂行するための手段を含み得る。さらなる態様では、コンピューティングデバイスは、プロセッサ上で単一のスレッドを実行するための手段を含み得る。さらなる態様では、コンピューティングデバイスは、コンピューティングデバイスの第2のプロセッサ上で単一のスレッドを実行するための手段を含み得る。 In a further aspect, the computing device determines the steady state workload of the processor, determines the amount of work required to execute the steady state workload on the processor, and provides a performance guarantee value for the processor. Means may be included for performing the calculating operation via a single thread. In a further aspect, the computing device may include means for executing a single thread on the processor. In a further aspect, the computing device may include means for executing a single thread on the second processor of the computing device.
さらなる態様は、動作を実行するようにプロセッサ実行可能命令によって構成された第1のプロセッサを含み得る、動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを含み得るコンピューティングデバイスを含み、この動作は、第2のプロセッサの安定状態の作業負荷を決定するステップと、第2のプロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するステップと、第2のプロセッサに対する性能保証値を計算するステップと、アイドル状態からビジー状態に第2のプロセッサを移行するステップと、動的クロックおよび電圧スケーリング動作を実行して、第2のプロセッサの実際の作業負荷に基づいて第2のプロセッサの周波数をスケーリングするステップと、スケーリングされた周波数に基づいて性能保証値を更新するステップと、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっているかどうかを判定するステップと、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップとを含み得る。 Further aspects include a computing device that can include a processor configured with processor-executable instructions to perform operations, which can include a first processor configured with processor-executable instructions to perform operations, This operation comprises the steps of determining a steady state workload of the second processor and determining the amount of work required to perform the determined steady state workload on the second processor. Calculating a performance guarantee value for the second processor; transitioning the second processor from idle to busy; and performing dynamic clock and voltage scaling operations to Scaling the frequency of the second processor based on the workload of Updating the performance guarantee value based on the determined frequency, determining whether the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value; Increasing the frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the amount of work done and the performance guarantee value.
ある態様では、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップが、第2のプロセッサの周波数を最大のプロセッサ周波数に上げるステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。 In one aspect, the step of increasing the frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value. The first processor may be configured with processor-executable instructions so as to include increasing the frequency of the two processors to the maximum processor frequency.
さらなる態様では、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップが、第2のプロセッサの周波数を段階的に上げるステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。 In a further aspect, the step of increasing the frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value, The first processor may be configured with processor-executable instructions so as to include increasing the frequency of the two processors in stages.
さらなる態様では、スケーリングされた周波数に基づいて性能保証値を更新し、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっているかどうかを判定し、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されるときに、第2プロセッサの周波数を上げる動作を、繰り返し実行するように、第1のプロセッサがさらにプロセッサ実行可能命令によって構成され得る。さらなる態様では、第2のプロセッサに対する性能保証値を計算するステップが期限値を計算するステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。 In a further aspect, the performance guarantee value is updated based on the scaled frequency to determine whether the second processor remains busy for a time period greater than or equal to the determined amount of work and the performance guarantee value; When it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value, the operation of increasing the frequency of the second processor is repeatedly executed. The first processor may be further configured with processor executable instructions. In a further aspect, the first processor may be configured with processor-executable instructions such that calculating a performance guarantee value for the second processor may include calculating a deadline value.
さらなる態様では、第2のプロセッサに対する性能保証値を計算するステップがバジェット値を計算するステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。さらなる態様では、第2のプロセッサの安定状態の作業負荷を決定するステップが、第2のプロセッサ上で実行するようにスケジューリングされるタスクの要件を決定するステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。さらなる態様では、ビジー状態とアイドル状態の移行をサンプリングすることによってパルス列を生成するステップをさらに含む動作を実行するように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。 In a further aspect, the first processor may be configured with processor-executable instructions such that calculating a performance guarantee value for the second processor may include calculating a budget value. In a further aspect, the first processor such that determining the steady state workload of the second processor may include determining the requirements of a task that is scheduled to execute on the second processor. May be configured with processor-executable instructions. In a further aspect, the first processor may be configured with processor-executable instructions to perform an operation that further includes generating a pulse train by sampling busy and idle state transitions.
さらなる態様では、第2のプロセッサの安定状態の作業負荷を決定し、第2のプロセッサ上で安定状態の作業負荷を実行するために必要とされる作業の量を決定し、第2のプロセッサに対する性能保証値を計算する動作が単一のスレッドによって実行されるように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。さらなる態様では、単一のスレッドが第1のプロセッサで実行され得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。さらなる態様では、第2のプロセッサの安定状態の作業負荷を決定し、第2のプロセッサ上で安定状態の作業負荷を実行するために必要とされる作業の量を決定し、第2のプロセッサに対する性能保証値を計算する動作を遂行するステップが、第2のプロセッサ上で単一のスレッドを実行するステップを含み得るように、第1のプロセッサがプロセッサ実行可能命令によって構成され得る。 In a further aspect, determining the steady state workload of the second processor, determining the amount of work required to execute the steady state workload on the second processor, and for the second processor The first processor may be configured with processor-executable instructions so that the operation of calculating the performance guarantee value is performed by a single thread. In a further aspect, the first processor can be configured with processor-executable instructions such that a single thread can be executed on the first processor. In a further aspect, determining the steady state workload of the second processor, determining the amount of work required to execute the steady state workload on the second processor, and for the second processor The first processor may be configured with processor-executable instructions such that performing the operation of calculating a performance guarantee value may include executing a single thread on the second processor.
さらなる態様は、コンピューティングデバイスに動作を実行させるように構成されるプロセッサ実行可能命令が記憶された、非一時的サーバ可読記憶媒体を含み、この動作は、第2のプロセッサの安定状態の作業負荷を決定するステップと、第2のプロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するステップと、第2のプロセッサに対する性能保証値を計算するステップと、アイドル状態からビジー状態に第2のプロセッサを移行するステップと、動的クロックおよび電圧スケーリング動作を実行して、第2のプロセッサの実際の作業負荷に基づいて第2のプロセッサの周波数をスケーリングするステップと、スケーリングされた周波数に基づいて性能保証値を更新するステップと、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっているかどうかを判定するステップと、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップとを含み得る。 A further aspect includes a non-transitory server-readable storage medium storing processor-executable instructions configured to cause a computing device to perform an operation, the operation comprising a steady state workload of a second processor Determining the amount of work required to execute the determined steady state workload on the second processor, and calculating a performance guarantee value for the second processor Transitioning the second processor from idle to busy and performing dynamic clock and voltage scaling operations to scale the frequency of the second processor based on the actual workload of the second processor Step, updating the performance guarantee value based on the scaled frequency, and the amount of work determined Determining whether the second processor remains busy for a period equal to or greater than the total guaranteed performance, and the second processor is busy for a period equal to or greater than the determined amount of work and the total guaranteed performance Increasing the frequency of the second processor when it is determined that the second processor remains.
ある態様では、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップが、第2のプロセッサの周波数を最大のプロセッサ周波数に上げるステップを含み得るように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。 In one aspect, the step of increasing the frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value. Stored processor executable software instructions may be configured to cause the processor to perform an operation so as to include raising the frequency of the two processors to the maximum processor frequency.
さらなる態様では、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されたときに、第2のプロセッサの周波数を上げるステップが、第2のプロセッサの周波数を段階的に上げるステップと、スケーリングされた周波数に基づいて性能保証値を更新し、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっているかどうかを判定し、決定された作業の量と性能保証値の合計以上の期間、第2のプロセッサがビジー状態に留まっていると判定されるときに、第2のプロセッサの周波数を上げる動作を、繰り返し実行するステップとを含み得るように、第2のプロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。 In a further aspect, the step of increasing the frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the performance guarantee value, Step up the frequency of the two processors and update the performance guarantee value based on the scaled frequency, and the second processor is busy for a period equal to or greater than the determined amount of work plus the performance guarantee value The frequency of the second processor when it is determined that the second processor remains busy for a period equal to or greater than the sum of the determined amount of work and the guaranteed performance value. Stored processor-executable software instructions are configured to cause the second processor to perform the operations so that the operations can be repeatedly performed. obtain.
さらなる態様では、第2のプロセッサに対する性能保証値を計算するステップが期限値を計算するステップを含み得るように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。さらなる態様では、第2のプロセッサに対する性能保証値を計算するステップがバジェット値を計算するステップを含み得るように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。さらなる態様では、第2のプロセッサの安定状態の作業負荷を決定するステップが、第2のプロセッサ上で実行するようにスケジューリングされるタスクの要件を決定するステップを含み得るように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。さらなる態様では、ビジー状態とアイドル状態の移行をサンプリングすることによってパルス列を生成するステップをさらに含む動作をプロセッサに実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。 In a further aspect, the stored processor executable software instructions may be configured to cause the processor to perform an operation such that the step of calculating a performance guarantee value for the second processor may include calculating a deadline value. . In a further aspect, stored processor-executable software instructions may be configured to cause the processor to perform an operation such that calculating a performance guarantee value for the second processor may include calculating a budget value. . In a further aspect, operating the processor such that determining the steady state workload of the second processor can include determining the requirements of a task scheduled to execute on the second processor. Stored processor-executable software instructions may be configured to execute. In a further aspect, stored processor-executable software instructions may be configured to cause the processor to perform an operation that further includes generating a pulse train by sampling busy and idle state transitions.
さらなる態様では、第2のプロセッサの安定状態の作業負荷を決定し、第2のプロセッサ上で安定状態の作業負荷を実行するために必要とされる作業の量を決定し、第2のプロセッサに対する性能保証値を計算する動作が単一のスレッドによって実行されるように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。さらなる態様では、単一のスレッドがプロセッサ上で実行されるように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。さらなる態様では、単一のスレッドが第2のプロセッサ上で実行されるように、プロセッサに動作を実行させるように、記憶されたプロセッサ実行可能ソフトウェア命令が構成され得る。 In a further aspect, determining the steady state workload of the second processor, determining the amount of work required to execute the steady state workload on the second processor, and for the second processor Stored processor-executable software instructions may be configured to cause a processor to perform an operation such that an operation that calculates a performance guarantee value is performed by a single thread. In a further aspect, stored processor-executable software instructions may be configured to cause the processor to perform an operation such that a single thread is executed on the processor. In a further aspect, stored processor-executable software instructions may be configured to cause a processor to perform an operation such that a single thread is executed on a second processor.
様々な態様は多数の利点を提供し、性能、電力消費、および/または応答性が重要である、ラップトップおよび他のモバイルデバイスにおいて実装され得る。様々な態様は、軽負荷のマシンに対するエネルギーおよび冷却コストを減らすために、サーバおよびパーソナルコンピュータにおいて実装され得る。発熱を減らすことは、システムの冷却ファンの速度が落とされることまたは停止されることを可能にし、ノイズレベルを低減し、さらに電力消費を減らす。様々な態様はまた、温度がある閾値に達したときに、不十分に冷却されているシステムにおいて熱を減らすために使用され得る。 Various aspects provide numerous advantages and may be implemented in laptops and other mobile devices where performance, power consumption, and / or responsiveness are important. Various aspects may be implemented in servers and personal computers to reduce energy and cooling costs for lightly loaded machines. Reducing heat generation allows the cooling fans of the system to be slowed down or stopped, reducing noise levels and further reducing power consumption. Various aspects can also be used to reduce heat in under-cooled systems when the temperature reaches a certain threshold.
様々な態様が、プロセッシングコアに関して例示を目的として上で説明されたが、態様の方法、システム、および実行可能命令は、方法が周波数または電圧の認識と制御を可能にする、任意のシステムにおいて実装され得る。さらに、周波数または電圧をスケーリングする動作は、任意のシングルプロセッサシステムまたはマルチプロセッサシステムで実行され得る。 Although various aspects have been described above for purposes of illustration with respect to a processing core, the method, system, and executable instructions of the aspects are implemented in any system that allows the method to recognize and control frequency or voltage. Can be done. Further, the operation of scaling the frequency or voltage can be performed on any single processor system or multiprocessor system.
様々な態様が、種々のポータブルまたはモバイルコンピューティングデバイス上に実装されてよく、それらの一例が図14に示されている。ポータブルコンピューティングデバイス1400は、メモリ1402および送受信機1405に結合された、プロセッシングコア1401を含み得る。送受信機1405は、電磁放射を送信および受信するために、アンテナ1404に結合され得る。ポータブルコンピューティングデバイス1400はまた、ユーザ入力を受信するためのディスプレイ1403(たとえば、タッチスクリーンディスプレイ)およびメニュー選択ボタンまたはロッカースイッチ1406も含み得る。いくつかのポータブルコンピューティングデバイスでは、1つのプロセッサがワイヤレス通信機能専用とされ、1つのプロセッサが他のアプリケーションの実行専用とされるなど、複数のプロセッサ1401が設けられ得る。
Various aspects may be implemented on various portable or mobile computing devices, an example of which is shown in FIG.
様々な態様はまた、図15に示されるサーバ1500などの種々の市販のサーバデバイスのいずれでも実装され得る。そのようなサーバ1500は、通常、プロセッシングコア1501を含み、複数のプロセッサシステム1511、1521、1531を含むことがあり、プロセッサシステムの1つまたは複数は、マルチコアプロセッサであるか、またはマルチコアプロセッサを含むことがある。プロセッシングコア1501は、揮発性メモリ1502、およびディスクドライブ1503などの大容量不揮発性メモリに結合され得る。サーバ1500はまた、プロセッシングコア1501に結合された、フロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1506も含み得る。サーバ1500はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークのような、ネットワーク1505とデータ接続を確立するための、プロセッシングコア1501に結合されたネットワークアクセスポート1504も含み得る。
Various aspects may also be implemented on any of various commercially available server devices, such as
上で説明された態様はまた、図16に示されたラップトップコンピュータ1600などの種々のパーソナルコンピューティングデバイス内で実装され得る。ラップトップコンピュータ1600は、揮発性メモリ1602、およびフラッシュメモリのディスクドライブ1604などの大容量不揮発性メモリに結合された、プロセッシングコア1601を含み得る。コンピュータ1600はまた、プロセッシングコア1601に結合されたフロッピーディスクドライブ1606およびコンパクトディスク(CD)ドライブ1608を含み得る。コンピュータデバイス1600はまた、USB、FireWire(登録商標)、またはLightning(登録商標)のコネクタソケット、または、プロセッシングコア1601をネットワークもしくはコンピュータに結合するための他のネットワーク接続回路のような、データ接続を確立し、または外部メモリデバイスを受け入れるための、プロセッシングコア1601に結合されたいくつかのコネクタポートを含み得る。ノートブック構成では、コンピュータの筐体は、すべてがプロセッシングコア1601に結合される、タッチパッド1616、キーボード1618、およびディスプレイ1620を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得る。
The aspects described above may also be implemented in various personal computing devices such as the
プロセッシングコア1401、1501、1601は、本明細書で説明された様々な態様の機能および動作を含む種々の機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルプロセッサ、マイクロプロセッサ、マイクロコンピュータ、マルチコアプロセッサ、または多重プロセッサチップであり得る。通常、ソフトウェアアプリケーションは、アクセスされてプロセッシングコア1401、1501、1601にロードされる前に、内部メモリ1402、1502、1602に記憶され得る。各プロセッシングコア1401、1501、1601は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。一部のコンピューティングデバイスでは、追加のメモリチップ(たとえば、Secure Data(SD)カード)がコンピューティングデバイスに差し込まれ、プロセッシングコア1401、1501、1601に結合され得る。内部メモリ1402、1502、1602は、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合物であり得る。本明細書では、メモリへの一般的な言及は、内部メモリ1402、モバイルデバイスに差し込まれるリムーバブルメモリ、およびプロセッシングコア1401内のメモリを含む、プロセッシングコア1401、1501、1601によってアクセス可能なすべてのメモリを指す。
プロセッシングコア1401、1501、1610は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへ一般的な言及は、内部メモリ、またはデバイスに差し込まれるリムーバブルメモリと、プロセッシングコア1401、1501、1610自体の中のメモリとを含む、プロセッサ1401、1501、1610によってアクセス可能なメモリを指す。
単一のプロセッシングCPUのために設計される性能保証は、通常は複数のCPUにまたがるスレッドの移行を考慮しない。したがって、オペレーティングシステムのスケジューラがあるCPUから別のCPUにスレッドを移行するとき、過渡タイマーが次のCPU上で再始動されることがあり、これは性能の望ましくない低下を引き起こし得る。したがって、コアごとの性能保証(たとえば、過渡期限)を伴うDCVS解決法を実施するマルチコアプロセッサシステムでは、このDCVS解決法は、オペレーティングシステムのスケジューラがスレッドをあるコアから別のコアへ移動することを考慮しないことがあり、この場合、意図されるときに過渡期限値に到達しない/達しないことがある。これにより、システムの性能レベル(たとえば、CPU周波数、周波数閾値など)が適切にまたは十分に上がらなくなることがあり、これは、システムが性能要件(たとえば、コンピューティングデバイスの電力消費および/または応答性の要件など)を適切に満たせなくすることがある。 Performance guarantees designed for a single processing CPU typically do not consider thread migration across multiple CPUs. Thus, when transitioning threads from one CPU to another CPU in the operating system scheduler, the transient timer may be restarted on the next CPU, which can cause an undesirable degradation in performance. Thus, in a multi-core processor system that implements a DCVS solution with per-core performance guarantees (eg, transition deadlines), this DCVS solution allows the operating system scheduler to move threads from one core to another. May not be considered, in which case the transient deadline value may or may not be reached when intended. This may prevent the system performance level (eg, CPU frequency, frequency threshold, etc.) from being adequately or sufficiently increased, which may cause the system to meet performance requirements (eg, computing device power consumption and / or responsiveness). May not be properly met.
様々な態様は、グループ内のコアの間でスケジューラがスレッドを移動するときに過渡期限の始動が影響されないように、コアのグループ内の過渡期限を使用する、システム、デバイス、および方法を含み得る。これらの態様では、過渡期限は依然として超えられており、グループ中のすべてのCPUの性能レベルは、第1のプロセッシングコア(たとえば、CPU0)から第2のプロセッシングコア(たとえば、CPU1)に作業負荷が移動されても性能要件を満たすために上げられる。結果として、これらの態様は、オペレーティングシステムのスケジューラがプロセッシングコア間でスレッドを移動する間であっても、良好に定義された過渡QoSがマルチプロセッサシステムにおいて保たれることを確実にするのを助ける。 Various aspects may include systems, devices, and methods that use transient deadlines within a group of cores so that the initiation of the transient deadline is not affected when the scheduler moves threads between cores within the group. . In these aspects, the transition deadline is still exceeded and the performance level of all CPUs in the group is the workload from the first processing core (eg, CPU0) to the second processing core (eg, CPU1). Raised to meet performance requirements when moved. As a result, these aspects help ensure that well-defined transient QoS is maintained in multiprocessor systems, even while the operating system scheduler moves threads between processing cores. .
図17は、マルチコアシステムにおいて実行されるスレッドまたは作業負荷1702に対するコアごとの性能保証(たとえば、過渡期限)を設定する例示的なDCVS解決法の方法1700を示す。図17に示される例では、作業負荷1702は、第1のプロセッシングコア(CPU0)において実行が開始するときに、第1のプロセッシングコア(CPU0)上で20msの過渡期限1704を割り当てられる。これは、作業負荷1702が実行を開始してから20ms後に、または全体の実行時間の20ms後に期限が切れるように、第1のプロセッシングコア(CPU0)と関連付けられる過渡タイマーを設定することによって、達成され得る。
FIG. 17 illustrates an exemplary
全体の実行時間の10ms後で、オペレーティングシステムのスケジューラは、作業負荷1702を第1のプロセッシングコア(CPU0)から第2のプロセッシングコア(CPU1)に移行し、作業負荷1702は第2のプロセッシングコア(CPU1)上で新たな20msの過渡期限1706を割り当てられる。これは、作業負荷1702が第2のプロセッシングコア(CPU1)に移されてから20ms後に、または全体の実行時間の30ms後に期限が切れるように、第2のプロセッシングコア(CPU1)と関連付けられる過渡タイマーを設定することによって、達成され得る。
After 10ms of the overall execution time, the operating system scheduler moves the
図17に示されるDCVS解決法は、各コアに対して個別に性能保証(たとえば、過渡期限)を設定する(すなわち、この方法はコアごとの性能保証を使用する)ので、作業負荷1702は、元々作業負荷1702に対して意図されていた可能性のある、全体の実行時間の20ms後の過渡期限に、到達せず、または達しない。結果として、このDCVS解決法は、プロセッシングコア(たとえば、CPU1)の性能レベル(たとえば、CPU周波数)を適切にまたは十分に上げることができず、これは、システムが性能または電力消費の要件を適切に満たせなくすることがある。
The DCVS solution shown in FIG. 17 sets performance guarantees (eg, transient deadlines) for each core individually (ie, this method uses per-core performance guarantees), so
図18は、マルチコアシステムにおいて実行されるスレッドまたは作業負荷1702に対するグループベースの性能保証を設定するある態様のDCVS解決法の方法1800を示す。図17に示される例では、作業負荷1702は、第1のプロセッシングコア(CPU0)において実行が開始するときに、第1のプロセッシングコアおよび第2のプロセッシングコア(CPU0およびCPU1)を含むプロセッシンググループに対して、20msの過渡期限1804を割り当てられる。これは、作業負荷1702が実行を開始してから20ms後に、または全体の実行時間の20ms後に期限が切れるように、第1のプロセッシングコアと第2のプロセッシングコアの両方(CPU0およびCPU1)と関連付けられる過渡タイマーを設定することによって、達成され得る。作業負荷1702は、第1のプロセッシングコア(CPU0)から第2のプロセッシングコア(CPU1)へオペレーティングシステムのスケジューラによって移され、作業負荷1702は依然として、グループに対して設定された20msの過渡期限1804によって拘束される。
FIG. 18 shows an aspect
図19は、マルチプロセッサシステムにおいてグループベースの性能保証を設定して守らせる、ある態様のDCVS解決法の方法1900を示す。ブロック1902において、DCVS解決法は、スケジューリングされたタスクに基づいて、予測された安定状態の作業負荷を計算することができる。ブロック1904において、DCVS解決法は、コンピューティングデバイスの電力消費および/または応答性の要件を満たすための周波数閾値のような、プロセッシングコアに対する様々な性能要件を計算することができる。性能要件(たとえば、周波数閾値など)は、安定状態の作業負荷、履歴情報(たとえば、ビジー状態でこれまでに経過した時間の長さなど)、プロセッサの特性、応答性の要件などに基づいて、決定され得る。
FIG. 19 illustrates a
ブロック1906において、DCVS解決法は、第1のプロセッシングコアおよび第2のプロセッシングコアを含むプロセッシンググループに対して、性能保証値(たとえば、期限値、バジェット値、jump-to-max値など)を計算することができる。ある態様では、ブロック1906において、DCVS解決法は、第1のプロセッシングコアに対して性能保証値を計算し、第1のプロセッシングコアと第2のプロセッシングコアの両方を含むグループに、計算された値を割り当てることができる。別の態様では、ブロック1906において、DCVS解決法は、第1のプロセッシングコアと第2のプロセッシングコアの組合せに対して性能保証値を計算し、第1のプロセッシングコアと第2のプロセッシングコアの両方を含むグループに、計算された値を割り当てることができる。
In
ブロック1908において、DCVS解決法は、様々な性能要件を満たしながら安定状態の作業負荷のすべてのタスクを完了するために第1のプロセッシングコアに対して必要とされる時間または作業の量(たとえば、CPUサイクル、命令など)を計算することができる。ブロック1910において、DCVS解決法は、第1のプロセッシングコアが計算された初期動作周波数/電圧で(または計算された閾値の範囲内で)実行され、かつ/または様々なデバイスもしくはシステムの要件を満たすように、第1のプロセッシングコアをアイドル状態からビジー状態に移行することができる。ブロック1912において、DCVS解決法は、第1のプロセッシングコアの実際の作業負荷および/または動作周波数を監視して、必要に応じて(たとえば、デフォルトのクロックおよび電圧スケーリングアルゴリズムに従って)周波数/電圧を調整することができる。任意選択のブロック1914において、DCVS解決法は、第1のプロセッシングコアの現在の動作周波数/電圧に基づいて、グループに対する性能保証値を更新することができる。
In
判定ブロック1916において、DCVS解決法は、第1のプロセッサおよび第2のプロセッサが、決定された作業の量(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると決定された時間/作業の量)と性能保証値との合計以上である組み合わされた期間、予測される安定状態の作業負荷またはスレッドに関してビジー状態に留まっているかどうかを、判定することができる。プロセッシングコアが計算された時間/作業よりも長くビジー状態に留まっていないとDCVS解決法が判定すると(すなわち、判定ブロック1916=“No”)、ブロック1912において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要なときに調整を行うことができる。
At
第1のプロセッサおよび第2のプロセッサが、決定された作業の量と性能保証値の合計以上である組み合わされた期間、(たとえば、予測される安定状態の作業負荷またはスレッドに関して)ビジー状態に留まっていると、DCVS解決法が判定するとき(すなわち、判定ステップ1916=“Yes”)、ブロック1918において、DCVS解決法は、第1のプロセッシングコアまたは第2のプロセッシングコアの動作周波数/電圧を上げることができる。様々な態様において、第1のプロセッシングコアまたは第2のプロセッシングコアの動作周波数/電圧は、最大のプロセッサ周波数に上げられてよく、または段階的に上げられてよい。
The first processor and the second processor remain busy (eg, with respect to an expected steady state workload or thread) for a combined period that is greater than or equal to the determined amount of work plus the guaranteed performance value If the DCVS solution determines (ie,
様々な態様は、複数のプロセッサを有するコンピューティングデバイス上での性能を向上させる方法を含み、この方法は、第1のプロセッサの安定状態の作業負荷を決定するステップと、第1のプロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するステップと、第1のプロセッサおよび第2のプロセッサを含むプロセッシンググループに対する性能保証値を計算するステップと、アイドル状態からビジー状態に第1のプロセッサを移行するステップと、動的クロックおよび電圧スケーリング動作を実行して、第1のプロセッサの実際の作業負荷に基づいて第1のプロセッサの周波数をスケーリングするステップと、決定された作業の量と性能保証値の合計以上である組み合わされた期間、第1のプロセッサおよび第2のプロセッサがビジー状態に留まっているかどうかを判定するステップと、決定された作業の量と性能保証値の合計以上である組み合わされた期間、第1のプロセッサおよび第2のプロセッサがビジー状態に留まっていると判定されたときに、第1のプロセッサおよび第2のプロセッサのうちの1つの周波数を上げるステップとを含む。 Various aspects include a method for improving performance on a computing device having a plurality of processors, the method comprising: determining a steady state workload of a first processor; and Determining the amount of work required to execute the determined steady state workload, calculating a performance guarantee value for a processing group including the first processor and the second processor, and idle Transitioning the first processor from state to busy; performing dynamic clock and voltage scaling operations to scale the frequency of the first processor based on the actual workload of the first processor; The combined period, which is equal to or greater than the sum of the determined amount of work and the performance guarantee value, The first processor and the second processor are busy for a combined period that is greater than or equal to the sum of the determined amount of work and the performance guarantee value. Increasing the frequency of one of the first processor and the second processor when it is determined to remain in the state.
さらなる態様は、上で論じられた方法に対応する様々な動作を実行するように、プロセッサ実行可能命令で構成された1つまたは複数のプロセッサを有するコンピューティングデバイスを含み得る。 Further aspects may include a computing device having one or more processors configured with processor-executable instructions to perform various operations corresponding to the methods discussed above.
さらなる態様は、上記で論じられた方法動作に対応する機能を実行するための様々な手段を有するコンピューティングデバイスを含み得る。 Further aspects may include a computing device having various means for performing functions corresponding to the method operations discussed above.
さらなる態様は、上で論じられた方法動作に対応する様々な動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体を含み得る。 Further aspects may include a non-transitory processor-readable storage medium storing processor-executable instructions configured to cause a processor to perform various operations corresponding to the method operations discussed above.
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供されたものであり、様々な態様のステップが提示された順序で実行されなければならないことを要求または暗示するものではない。当業者によって了解されるように、上記の態様におけるステップの順序は、いかなる順序でも実行され得る。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明を通して読者を案内するために使用される。さらに、たとえば、冠詞“a”、“an”または“the”を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。 The above method descriptions and process flow diagrams are provided merely as illustrative examples and do not require or imply that the steps of the various aspects must be performed in the order presented. . As will be appreciated by those skilled in the art, the order of the steps in the above aspects may be performed in any order. Words such as “after”, “next”, “next” do not limit the order of the steps, and these words are simply used to guide the reader through the description of the method. Further, any reference to a claim element in the singular form using the article “a”, “an” or “the” should not be construed as limiting the element to the singular.
本明細書で開示された態様に関して説明された、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。 The various exemplary logic blocks, modules, circuits, and algorithm steps described with respect to aspects disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art can implement the described functionality in a variety of ways for each specific application, but such implementation decisions should be construed as causing deviations from the scope of the invention. is not.
本明細書で開示された態様に関して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェアコンポーネント、または、本明細書で説明された機能を実行するように設計されたそれらの任意の組合せで、実装または実行され得る。汎用プロセッサは多重プロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPと多重プロセッサとの組合せ、複数の多重プロセッサ、DSPコアと連携する1つまたは複数の多重プロセッサ、あるいは任意の他のそのような構成として実装され得る。代替として、いくつかのステップまたは方法は、所与の機能に固有の回路によって実行され得る。 The hardware used to implement the various exemplary logic, logic blocks, modules, and circuits described with respect to the aspects disclosed herein includes general purpose processors, digital signal processors (DSPs), and specific applications. Designed to perform integrated circuits (ASICs), field programmable gate arrays (FPGAs) or other programmable logic devices, individual gate or transistor logic, individual hardware components, or the functions described herein Any combination of these may be implemented or implemented. A general purpose processor may be multiple processors, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a DSP and multiprocessor combination, multiple processors, one or more multiprocessors in conjunction with a DSP core, or any other such configuration. obtain. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読記憶媒体上に1つまたは複数のプロセッサ実行可能命令またはコードとして記憶され得る。本明細書で開示された方法またはアルゴリズムのステップは、有形の、または非一時的なコンピュータ可読記憶媒体上に存在し得る、プロセッサ実行可能ソフトウェアモジュール内で具現化され得る。非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な記憶媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(“CD”)、レーザーディスク(disc)(登録商標)、光ディスク(disc)、デジタル多用途ディスク(disc)(“DVD”)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも、非一時的コンピュータ可読媒体の範囲内に含まれ得る。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的な機械可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして存在し得る。 In one or more exemplary aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more processor-executable instructions or code on a non-transitory computer-readable storage medium. The steps of the method or algorithm disclosed herein may be embodied in a processor-executable software module that may reside on a tangible or non-transitory computer readable storage medium. A non-transitory computer readable storage medium may be any available storage medium that can be accessed by a computer. By way of example, and not limitation, such computer readable media can be in the form of RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device, or instructions or data structures. Any other medium that can be used to carry or store the desired program code and that can be accessed by the computer can be included. As used herein, a disk and a disc are a compact disc (“CD”), a laser disc (registered trademark), an optical disc, a digital versatile disc. (disc) (“DVD”), floppy disk, and Blu-ray disc, which normally plays data magnetically, and the disc is optically lasered To play data. Combinations of the above may also be included within the scope of non-transitory computer readable media. Further, the operation of the method or algorithm may be incorporated into a computer program product, one or any combination of code and / or instructions on a non-transitory machine-readable medium and / or non-transitory computer-readable medium, or It can exist as that set.
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用できるように与えられたものである。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用され得る。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。 The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects without departing from the spirit or scope of the invention. obtain. Accordingly, the present invention is not intended to be limited to the embodiments shown herein but provides the broadest scope consistent with the following claims and the principles and novel features disclosed herein. Should be done.
100 ポータブルコンピューティングデバイス
102 筐体
104 上側筐体部分
108 ディスプレイ
110 トラックボール入力デバイス
112 電源投入ボタン
114 電源切断ボタン
116 インジケータライト
118 スピーカー
120 マルチボタンキーボード
122 リセットボタン
320 ポータブルコンピューティングデバイス
322 オンチップシステム
324 マルチコアCPU
325 第0のコア
326 第1のコア
327 第Nのコア
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
332 ディスプレイ/タッチスクリーン
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 USBコントローラ
342 USB
344 メモリ
346 SIMカード
348 CCD/CMOSカメラ
350 ステレオオーディオコーデック
352 オーディオ増幅器
354 ステレオスピーカー
356 ステレオスピーカー
358 マイクロフォン増幅器
360 マイクロフォン
362 FMチューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 RF送受信機
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォンを備えたモノヘッドセット
378 バイブレータ
380 電源
388 ネットワークカード
400 処理システム
402 マルチコアCPU
404 メモリ
410 第0のコア
412 第1のコア
414 第Nのコア
416 第0のDCVS
417 第1のDCVS
418 第NのDCVS
420 オペレーティングシステム
422 スケジューラ
424 第1の実行キュー
426 第2の実行キュー
428 第Nの実行キュー
430 第1のアプリケーション
432 第2のアプリケーション
434 第Nのアプリケーション
436 タスク/スレッド
440 並列処理モニタ
500 方法
600 方法
1000 コンピューティングデバイス
1002 ハードウェア
1004 ソフトウェア
1006 ソフトウェア
1008 アイドル状態統計デバイス
1010 入力イベント
1012 CPU要求統計
1014 タイマードライバ
1016 DCVS制御モジュール
1018 CPU周波数ホットプラグ
1020 クロック、PMIC、SPM
1100 方法
1200 方法
1300 方法
1400 ポータブルコンピューティングデバイス
1401 複数のプロセッサ
1402 メモリ
1403 ディスプレイ
1404 アンテナ
1405 送受信機
1406 メニュー選択ボタンまたはロッカースイッチ
1500 サーバ
1501 プロセッシングコア
1502 揮発性メモリ
1503 ディスクドライブ
1504 ネットワークアクセスポート
1505 ネットワーク
1506 CDまたはDVDディスクドライブ
1511 マルチプロセッサシステム
1521 マルチプロセッサシステム
1531 マルチプロセッサシステム
1600 ラップトップコンピュータ
1601 プロセッシングコア
1602 揮発性メモリ
1604 ディスクドライブ
1606 フロッピーディスクドライブ
1608 CDドライブ
1610 プロセッシングコア
1616 タッチパッド
1618 キーボード
1620 ディスプレイ
1700 方法
1704 20msの過渡期限
1706 20msの過渡期限
1800 方法
1804 20msの過渡期限
1900 方法
100 portable computing devices
102 housing
104 Upper housing part
108 display
110 trackball input device
112 Power on button
114 Power off button
116 Indicator light
118 Speaker
120 multi-button keyboard
122 Reset button
320 portable computing devices
322 On-chip system
324 multi-core CPU
325 0th core
326 1st core
327 Nth core
328 display controller
330 touch screen controller
332 Display / Touchscreen
334 video encoder
336 video amplifier
338 video port
340 USB controller
342 USB
344 memory
346 SIM card
348 CCD / CMOS camera
350 stereo audio codec
352 audio amplifier
354 Stereo Speaker
356 Stereo Speaker
358 Microphone Amplifier
360 microphone
362 FM tuner
364 FM antenna
366 stereo headphones
368 RF transceiver
370 RF switch
372 RF antenna
374 keypad
Mono headset with 376 microphone
378 Vibrator
380 power supply
388 Network Card
400 treatment system
402 multi-core CPU
404 memory
410 0th core
412 1st core
414 Nth core
416 0th DCVS
417 1st DCVS
418th N DCVS
420 operating system
422 Scheduler
424 1st execution queue
426 Second execute queue
428th Nth execution queue
430 First application
432 Second application
434 Nth Application
436 tasks / threads
440 parallel processing monitor
500 methods
600 methods
1000 computing devices
1002 hardware
1004 software
1006 software
1008 Idle state statistics device
1010 Input event
1012 CPU request statistics
1014 Timer driver
1016 DCVS control module
1018 CPU frequency hot plug
1020 clock, PMIC, SPM
1100 method
1200 methods
1300 method
1400 portable computing devices
1401 multiple processors
1402 memory
1403 display
1404 Antenna
1405 transceiver
1406 Menu selection button or rocker switch
1500 servers
1501 processing core
1502 volatile memory
1503 disk drive
1504 Network access port
1505 network
1506 CD or DVD disc drive
1511 multiprocessor system
1521 multiprocessor system
1531 multiprocessor system
1600 laptop computer
1601 processing core
1602 volatile memory
1604 disk drive
1606 floppy disk drive
1608 CD drive
1610 processing core
1616 touchpad
1618 keyboard
1620 display
1700 method
1704 20ms transition deadline
1706 20ms transition deadline
1800 method
1804 20ms transition deadline
1900 method
Claims (40)
第1のプロセッサの安定状態の作業負荷を決定するステップと、
前記第1のプロセッサ上の前記決定された安定状態の作業負荷を実行するのに必要とされる作業の量を決定するステップと、
前記第1のプロセッサおよび第2のプロセッサを含むプロセッシンググループに対して性能保証値を計算するステップと、
アイドル状態からビジー状態に前記第1のプロセッサを移行するステップと、
動的クロックおよび電圧スケーリング動作を実行して、前記第1のプロセッサの実際の作業負荷に基づいて前記第1のプロセッサの周波数をスケーリングするステップと、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定するステップと、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップとを含む、方法。 A method for improving performance on a computing device having multiple processors, comprising:
Determining a steady state workload of the first processor;
Determining the amount of work required to execute the determined steady state workload on the first processor;
Calculating a performance guarantee value for a processing group including the first processor and the second processor;
Transitioning the first processor from an idle state to a busy state;
Performing a dynamic clock and voltage scaling operation to scale the frequency of the first processor based on the actual workload of the first processor;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Increasing the frequency of one of the first processor and the second processor.
前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を最大のプロセッサ周波数に上げるステップを含む、請求項1に記載の方法。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Raising the frequency of one of the first processor and the second processor;
The method of claim 1, comprising raising the frequency of the first processor or the second processor to a maximum processor frequency.
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定し、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げる
動作を繰り返し実行するステップをさらに含む、請求項1に記載の方法。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Increasing the frequency of one of the first processor and the second processor includes gradually increasing the frequency of the first processor or the second processor;
Updating the performance guarantee value based on the scaled frequency;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, The method of claim 1, further comprising the step of repeatedly performing an operation of increasing the frequency of one of the first processor and the second processor.
第2のプロセッサと、
前記第1のプロセッサの安定状態の作業負荷を決定するための手段と、
前記第1のプロセッサ上の前記決定された安定状態の作業負荷を実行するのに必要とされる作業の量を決定するための手段と、
前記第1のプロセッサおよび前記第2のプロセッサを含むプロセッシンググループに対して性能保証値を計算するための手段と、
アイドル状態からビジー状態に前記第1のプロセッサを移行するための手段と、
動的クロックおよび電圧スケーリング動作を実行して、前記第1のプロセッサの実際の作業負荷に基づいて前記第1のプロセッサの周波数をスケーリングするための手段と、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定するための手段と、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるための手段とを含む、コンピューティングデバイス。 A first processor;
A second processor;
Means for determining a steady state workload of the first processor;
Means for determining the amount of work required to execute the determined steady state workload on the first processor;
Means for calculating a performance guarantee value for a processing group including the first processor and the second processor;
Means for transitioning the first processor from an idle state to a busy state;
Means for performing a dynamic clock and voltage scaling operation to scale the frequency of the first processor based on the actual workload of the first processor;
Means for determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Means for increasing the frequency of one of the first processor and the second processor.
前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を最大のプロセッサ周波数に上げるための手段を含む、請求項11に記載のコンピューティングデバイス。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Means for increasing the frequency of one of the first processor and the second processor;
12. The computing device of claim 11, comprising means for raising the frequency of the first processor or the second processor to a maximum processor frequency.
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定し、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げる
動作を繰り返し実行するための手段をさらに含む、請求項11に記載のコンピューティングデバイス。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Means for increasing the frequency of one of the first processor and the second processor comprises means for stepwise increasing the frequency of the first processor or the second processor;
Updating the performance guarantee value based on the scaled frequency;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, 12. The computing device of claim 11, further comprising means for repeatedly performing an operation to raise the frequency of one of the first processor and the second processor.
第2のプロセッサと、
動作を実行するようにプロセッサ実行可能命令によって構成された一次プロセッサとを含む、コンピューティングデバイスであって、前記動作が、
前記第1のプロセッサの安定状態の作業負荷を決定するステップと、
前記第1のプロセッサ上の前記決定された安定状態の作業負荷を実行するのに必要とされる作業の量を決定するステップと、
前記第1のプロセッサおよび前記第2のプロセッサを含むプロセッシンググループに対して性能保証値を計算するステップと、
アイドル状態からビジー状態に前記第1のプロセッサを移行するステップと、
動的クロックおよび電圧スケーリング動作を実行して、前記第1のプロセッサの実際の作業負荷に基づいて前記第1のプロセッサの周波数をスケーリングするステップと、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定するステップと、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップと
を含む、コンピューティングデバイス。 A first processor;
A second processor;
A computing device comprising a primary processor configured with processor-executable instructions to perform the operation, the operation comprising:
Determining a steady state workload of the first processor;
Determining the amount of work required to execute the determined steady state workload on the first processor;
Calculating a performance guarantee value for a processing group including the first processor and the second processor;
Transitioning the first processor from an idle state to a busy state;
Performing a dynamic clock and voltage scaling operation to scale the frequency of the first processor based on the actual workload of the first processor;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Raising the frequency of one of the first processor and the second processor.
前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を最大のプロセッサ周波数に上げるステップを含むように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Raising the frequency of one of the first processor and the second processor;
22. The primary processor is configured with processor-executable instructions to perform operations to include raising the frequency of the first processor or the second processor to a maximum processor frequency. The computing device described.
前記一次プロセッサが、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定し、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げる
動作を繰り返し実行するようにプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Performing the operation such that increasing the frequency of one of the first processor and the second processor includes gradually increasing the frequency of the first processor or the second processor. The primary processor is configured by processor-executable instructions,
The primary processor is
Updating the performance guarantee value based on the scaled frequency;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, 24. The computing device of claim 21, wherein the computing device is configured with processor-executable instructions to repeatedly perform an operation to increase the frequency of one of the first processor and the second processor.
ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。 The primary processor is
The computing device of claim 21, wherein the computing device is configured with processor-executable instructions to perform an operation further comprising generating a pulse train by sampling a transition between a busy state and an idle state.
第1のプロセッサの安定状態の作業負荷を決定するステップと、
前記第1のプロセッサ上の前記決定された安定状態の作業負荷を実行するのに必要とされる作業の量を決定するステップと、
前記第1のプロセッサおよび第2のプロセッサを含むプロセッシンググループに対して性能保証値を計算するステップと、
アイドル状態からビジー状態に前記第1のプロセッサを移行するステップと、
動的クロックおよび電圧スケーリング動作を実行して、前記第1のプロセッサの実際の作業負荷に基づいて前記第1のプロセッサの周波数をスケーリングするステップと、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定するステップと、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップとを含む、非一時的コンピュータ可読記憶媒体。 A non-transitory computer readable storage medium storing processor-executable software instructions configured to cause a primary processor to perform an operation, the operation comprising:
Determining a steady state workload of the first processor;
Determining the amount of work required to execute the determined steady state workload on the first processor;
Calculating a performance guarantee value for a processing group including the first processor and the second processor;
Transitioning the first processor from an idle state to a busy state;
Performing a dynamic clock and voltage scaling operation to scale the frequency of the first processor based on the actual workload of the first processor;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Increasing the frequency of one of the first processor and the second processor.
前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を最大のプロセッサ周波数に上げるステップを含むように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Raising the frequency of one of the first processor and the second processor;
The stored processor executable software instructions are configured to cause the primary processor to perform an operation to include raising the frequency of the first processor or the second processor to a maximum processor frequency. 32. The non-transitory computer readable storage medium of claim 31.
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっているかどうかを判定し、
前記決定された作業の量と前記性能保証値の前記合計以上である前記組み合わされた期間、前記第1のプロセッサおよび前記第2のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げる
動作を前記一次プロセッサに繰り返し実行させるように構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。 When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, Increasing the frequency of one of the first processor and the second processor includes increasing the frequency of the first processor or the second processor in stages. The stored processor executable software instructions are configured to cause a processor to perform an operation,
The stored processor executable software instructions are:
Updating the performance guarantee value based on the scaled frequency;
Determining whether the first processor and the second processor remain in the busy state for a combined period that is greater than or equal to a sum of the determined amount of work and the performance guarantee value;
When it is determined that the first processor and the second processor remain in the busy state for the combined period of time that is greater than or equal to the sum of the determined amount of work and the performance guarantee value, 32. The non-transitory computer readable storage medium of claim 31, configured to cause the primary processor to repeatedly perform an operation to increase the frequency of one of the first processor and the second processor.
ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するステップをさらに含む動作を前記一次プロセッサに実行させるように構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。 The stored processor executable software instructions are:
32. The non-transitory computer readable storage of claim 31 configured to cause the primary processor to perform an operation further comprising generating a pulse train by sampling a transition between a busy state and an idle state. Medium.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/759,709 US9176572B2 (en) | 2009-12-16 | 2013-02-05 | System and method for controlling central processing unit power with guaranteed transient deadlines |
US13/759,709 | 2013-02-05 | ||
PCT/US2013/061649 WO2014123587A1 (en) | 2013-02-05 | 2013-09-25 | System and method for controlling central processing unit power with guaranteed transient deadlines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016511880A JP2016511880A (en) | 2016-04-21 |
JP5982588B2 true JP5982588B2 (en) | 2016-08-31 |
Family
ID=49382574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015555992A Active JP5982588B2 (en) | 2013-02-05 | 2013-09-25 | System and method for controlling central processing unit power with guaranteed transient deadlines |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2954385A1 (en) |
JP (1) | JP5982588B2 (en) |
KR (1) | KR101659705B1 (en) |
CN (1) | CN104969142B (en) |
WO (1) | WO2014123587A1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224053A1 (en) * | 2015-01-30 | 2016-08-04 | Qualcomm Incorporated | Timer-based processing unit operational scaling employing timer resetting on idle process scheduling |
US9886081B2 (en) | 2015-09-16 | 2018-02-06 | Qualcomm Incorporated | Managing power-down modes |
US10255106B2 (en) | 2016-01-27 | 2019-04-09 | Qualcomm Incorporated | Prediction-based power management strategy for GPU compute workloads |
US10331195B2 (en) * | 2016-06-06 | 2019-06-25 | Qualcomm Incorporated | Power and performance aware memory-controller voting mechanism |
US10649518B2 (en) * | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
CN109426329A (en) * | 2017-08-30 | 2019-03-05 | 比亚迪股份有限公司 | System on chip and its clock frequency dynamic control method and device |
WO2019104558A1 (en) * | 2017-11-29 | 2019-06-06 | 深圳市大疆创新科技有限公司 | Image processing method, photography equipment, unmanned aerial vehicle and ground end device |
CN113031736A (en) | 2019-12-09 | 2021-06-25 | 华为技术有限公司 | Voltage regulation method and electronic equipment |
US11449125B1 (en) * | 2021-04-01 | 2022-09-20 | Qualcomm Incorporated | Adaptive dynamic clock and voltage scaling |
CN114785376B (en) * | 2022-05-06 | 2023-07-21 | Oppo广东移动通信有限公司 | Frequency-voltage pre-configuration method and related device |
WO2023238276A1 (en) * | 2022-06-08 | 2023-12-14 | 三菱電機株式会社 | Information processing device and information processing method |
US20240111560A1 (en) * | 2022-09-30 | 2024-04-04 | Subhankar Panda | Workload linked performance scaling for servers |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917789B2 (en) * | 2007-09-28 | 2011-03-29 | Intel Corporation | System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms |
US9519300B2 (en) * | 2007-12-20 | 2016-12-13 | Ken Tsz Kin Mok | Reducing cross-regulation interferences between voltage regulators |
WO2009138953A1 (en) * | 2008-05-13 | 2009-11-19 | Nxp B.V. | Power manager and method for managing power |
US20110145559A1 (en) * | 2009-12-16 | 2011-06-16 | Thomson Steven S | System and method for controlling central processing unit power with guaranteed steady state deadlines |
US9128705B2 (en) * | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US8909962B2 (en) * | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
JP5545376B2 (en) * | 2010-12-22 | 2014-07-09 | 富士通株式会社 | Multi-core processor system and power control method |
-
2013
- 2013-09-25 WO PCT/US2013/061649 patent/WO2014123587A1/en active Application Filing
- 2013-09-25 KR KR1020157022977A patent/KR101659705B1/en active IP Right Grant
- 2013-09-25 EP EP13777365.1A patent/EP2954385A1/en not_active Withdrawn
- 2013-09-25 CN CN201380072130.XA patent/CN104969142B/en active Active
- 2013-09-25 JP JP2015555992A patent/JP5982588B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN104969142B (en) | 2017-09-19 |
WO2014123587A1 (en) | 2014-08-14 |
JP2016511880A (en) | 2016-04-21 |
KR20150114969A (en) | 2015-10-13 |
KR101659705B1 (en) | 2016-09-26 |
CN104969142A (en) | 2015-10-07 |
EP2954385A1 (en) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5982588B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US9176572B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US9104411B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US8909962B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
JP5601731B2 (en) | System and method for dynamically controlling a processor | |
US9081558B2 (en) | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature | |
JP5893568B2 (en) | System and method for controlling central processing unit power based on estimated workload parallelism | |
US8650426B2 (en) | System and method for controlling central processing unit power in a virtualized system | |
US9128705B2 (en) | System and method for controlling central processing unit power with reduced frequency oscillations | |
WO2012138655A1 (en) | Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device | |
JP5764150B2 (en) | Method and computer for transition from power-on state to power-saving state | |
EP2513778A2 (en) | System and method for controlling central processing unit power with guaranteed steady state deadlines | |
JP5930504B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20160304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160602 |
|
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: 20160704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160801 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5982588 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 |