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 PDF

Info

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
Application number
JP2015555992A
Other languages
Japanese (ja)
Other versions
JP2016511880A (en
Inventor
スティーブン・エス・トムソン
ボフスラフ・リュクリック
アリ・イランリ
スミット・スール
ノーマン・スコット・ガーガッシュ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/759,709 external-priority patent/US9176572B2/en
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016511880A publication Critical patent/JP2016511880A/en
Application granted granted Critical
Publication of JP5982588B2 publication Critical patent/JP5982588B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • 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

閉じられた状態のポータブルコンピューティングデバイス(PCD)の第1の態様の正面図である。1 is a front view of a first embodiment of a portable computing device (PCD) in a closed state. FIG. 開かれた状態のPCDの第1の態様の正面図である。FIG. 3 is a front view of the first aspect of the PCD in an opened state. PCDの第2の態様のブロック図である。It is a block diagram of the 2nd mode of PCD. 処理システムのブロック図である。It is a block diagram of a processing system. CPU内で電力を動的に制御する方法の第1の態様を示すフローチャートである。3 is a flowchart showing a first aspect of a method for dynamically controlling power in a CPU. CPU内で電力を動的に制御する方法の第2の態様の第1の部分を示すフローチャートである。12 is a flowchart showing a first part of a second mode of a method for dynamically controlling power in a CPU. マルチコアCPU内で電力を動的に制御する方法の第2の態様の第2の部分を示すフローチャートである。12 is a flowchart showing a second part of the second mode of the method for dynamically controlling power in the multi-core CPU. 経時的にプロットされた、動的クロックおよび電圧スケーリング(DCVS:dynamic clock and voltage scaling)で制御されたCPU周波数を示す例示的なグラフである。6 is an exemplary graph showing CPU frequency controlled with dynamic clock and voltage scaling (DCVS) plotted over time. 様々な性能レベルに対する実効過渡応答時間を示す例示的なグラフである。3 is an exemplary graph showing effective transient response time for various performance levels. 様々な態様による、性能保証を守らせる動的クロック周波数/電圧スケーリング(DCVS)方法を実施するコンピューティングデバイスにおける論理コンポーネントおよび情報の流れを示すブロック図である。FIG. 6 is a block diagram illustrating logical components and information flow in a computing device that implements a dynamic clock frequency / voltage scaling (DCVS) method to ensure performance guarantees in accordance with various aspects. 性能保証を生成するある態様の方法を示すプロセスフロー図である。FIG. 5 is a process flow diagram illustrating an aspect method of generating a performance guarantee. 性能保証を生成するある態様の方法を示すプロセスフロー図である。FIG. 5 is a process flow diagram illustrating an aspect method of generating a performance guarantee. あるプロセッシングコアが、そのプロセッシングコアの事前に計算された、予測された、かつ/または実際の安定状態の作業負荷を完了するのに必要な時間を上回る所定の長さの時間よりも長く、ビジー状態に留まらないことを確実にするために、性能保証を守らせる、様々な態様の方法を示すプロセスフロー図である。A processing core is busy longer than 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. FIG. 6 is a process flow diagram illustrating various aspects of a method for ensuring performance guarantees to ensure that they do not stay in a state. あるプロセッシングコアが、そのプロセッシングコアの事前に計算された、予測された、かつ/または実際の安定状態の作業負荷を完了するのに必要な時間を上回る所定の長さの時間よりも長く、ビジー状態に留まらないことを確実にするために、性能保証を守らせる、様々な態様の方法を示すプロセスフロー図である。A processing core is busy longer than 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. FIG. 6 is a process flow diagram illustrating various aspects of a method for ensuring performance guarantees to ensure that they do not stay in a state. ある態様において使用するのに適したモバイルデバイスのコンポーネントブロック図である。FIG. 3 is a component block diagram of a mobile device suitable for use in an aspect. ある態様において使用するのに適したサーバデバイスのコンポーネントブロック図である。FIG. 3 is a component block diagram of a server device suitable for use in certain aspects. ある態様において使用するのに適したラップトップコンピュータデバイスのコンポーネントブロック図である。FIG. 2 is a component block diagram of a laptop computing device suitable for use in certain aspects. マルチコアシステムにおいて実行されるスレッドまたは作業負荷に対するコアごとの性能保証を設定する例示的なDCVS解決法の図である。FIG. 4 is an example DCVS solution that sets per-core performance guarantees for threads or workloads executed in a multi-core system. マルチコアシステムにおいて実行されるスレッドまたは作業負荷に対するグループベースの性能保証を設定する例示的なDCVS解決法の図である。FIG. 2 is an illustration of an exemplary DCVS solution that sets group-based performance guarantees for threads or workloads executed in a multi-core system. 事前に計算される作業負荷、予測される作業負荷、および/または実際の安定状態の作業負荷を完了するために必要とされるものより長く、マルチプロセッサシステム中のプロセッサがビジー状態に留まらないことを確実にするために、性能保証を実施するある態様の方法を示すプロセスフロー図である。The processors in the multiprocessor system do not stay busy longer than required to complete the pre-computed workload, the predicted workload, and / or the actual steady state workload FIG. 6 is a process flow diagram illustrating an aspect method of performing performance assurance to ensure compliance.

様々な態様が添付の図面を参照して詳細に説明される。可能な場合は常に、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に対して行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。   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 housing 102. The housing 102 can include an upper housing portion 104 and a lower housing portion 106. FIG. 1 shows that the upper housing portion 104 can include a display 108. In certain aspects, the display 108 may be a touch screen display. Upper housing portion 104 may also include a trackball input device 110. Further, as shown in FIG. 1, the upper housing portion 104 can include a power on button 112 and a power off button 114. As shown in FIG. 1, the upper housing portion 104 of the PCD 100 may include a plurality of indicator lights 116 and speakers 118. Each indicator light 116 may be a light emitting diode (LED).

特定の態様では、図2に示されるように、上側筐体部分104は下側筐体部分106に対して可動である。具体的には、上側筐体部分104は下側筐体部分106に対してスライド可能であり得る。図2に示されるように、下側筐体部分106はマルチボタンキーボード120を含み得る。特定の態様では、マルチボタンキーボード120は標準的なQWERTYキーボードであり得る。マルチボタンキーボード120は、上側筐体部分104が下側筐体部分106に対して動かされたときに現れ得る。図2は、PCD100が下側筐体部分106上にリセットボタン122を含み得ることをさらに示す。   In certain aspects, the upper housing portion 104 is movable relative to the lower housing portion 106, as shown in FIG. Specifically, the upper housing portion 104 can be slidable relative to the lower housing portion 106. As shown in FIG. 2, the lower housing portion 106 can include a multi-button keyboard 120. In certain embodiments, the multi-button keyboard 120 may be a standard QWERTY keyboard. Multi-button keyboard 120 may appear when upper housing portion 104 is moved relative to lower housing portion 106. FIG. 2 further illustrates that the PCD 100 may include a reset button 122 on the lower housing portion 106.

図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, PCD 320 includes an on-chip system 322 that includes a multi-core CPU 324. The multi-core CPU 324 may include a zeroth core 325, a first core 326, and an Nth core 327.

図3に示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がマルチコアCPU324に結合される。一方、オンチップシステム322の外部にあるディスプレイ/タッチスクリーン332が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。   As shown in FIG. 3, a display controller 328 and a touch screen controller 330 are coupled to the multi-core CPU 324. On the other hand, a display / touch screen 332 external to the on-chip system 322 is coupled to the display controller 328 and the touch screen controller 330.

図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 video encoder 334, such as a phase inversion line (PAL) encoder, a sequential color memory (SECAM) encoder, or a National Television System Committee (NTSC) encoder, is coupled to the multi-core CPU 324. Show further. Further, a video amplifier 336 is coupled to the video encoder 334 and the display / touch screen 332. Video port 338 is also coupled to video amplifier 336. As shown in FIG. 3, a universal serial bus (USB) controller 340 is coupled to the multi-core CPU 324. A USB port 342 is coupled to the USB controller 340. A memory 344 and a subscriber identity module (SIM) card 346 may also be coupled to the multi-core CPU 324. Further, as shown in FIG. 3, a digital camera 348 may be coupled to the multi-core CPU 324. In the exemplary embodiment, digital camera 348 is a charge coupled device (CCD) camera or a complementary metal oxide semiconductor (CMOS) camera.

図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 stereo audio codec 350 may be coupled to the multi-core CPU 324. Moreover, an audio amplifier 352 can be coupled to the stereo audio codec 350. In the exemplary embodiment, first stereo speaker 354 and second stereo speaker 356 are coupled to audio amplifier 352. FIG. 3 shows that a microphone amplifier 358 can also be coupled to the stereo audio codec 350. In addition, a microphone 360 can be coupled to the microphone amplifier 358. In certain aspects, a frequency modulation (FM) radio tuner 362 may be coupled to the stereo audio codec 350. An FM antenna 364 is coupled to the FM radio tuner 362. Further, stereo headphones 366 may be coupled to stereo audio codec 350.

図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) transceiver 368 can be coupled to the multi-core CPU 324. RF switch 370 may be coupled to RF transceiver 368 and RF antenna 372. As shown in FIG. 3, a keypad 374 may be coupled to the multi-core CPU 324. A mono headset 376 with a microphone can also be coupled to the multi-core CPU 324. Further, vibrator device 378 may be coupled to multi-core CPU 324. FIG. 3 also shows that the power source 380 can be coupled to the on-chip system 322. In certain aspects, power source 380 is a direct current (DC) power source that provides power to the various components of PCD 320 that require power. Further, in certain embodiments, the power source is a rechargeable DC battery or a DC power source obtained from an AC-DC converter connected to an alternating current (AC) power source.

図3は、PCD320がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、任意の他のネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野でよく知られている任意の他のネットワークカードであり得る。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってよく、個別のネットワークカード388ではなくてもよい。   FIG. 3 further illustrates that the PCD 320 may also include a network card 388 that may be used to access a data network, such as a local area network, a personal area network, or any other network. Network card 388 can be a Bluetooth® network card, a WiFi network card, a personal area network (PAN) card, a personal area network ultra-low power technology (PeANUT) network card, or any well known in the art. It can be another network card. Furthermore, the network card 388 may be integrated into the chip, ie, the network card 388 may be a full solution in the chip and not a separate network card 388.

図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 / touch screen 332, video port 338, USB port 342, camera 348, first stereo speaker 354, second stereo speaker 356, microphone 360, FM antenna 364, stereo headphones 366, RF switch 370, RF antenna 372, keypad 374, mono headset 376, vibrator 378, and power source 380 are external to on-chip system 322.

特定の態様では、本明細書で説明される方法ステップの1つまたは複数は、コンピュータプログラム命令としてメモリ344に記憶され得る。これらの命令は、本明細書で説明される方法を実行するためにマルチコアCPU324によって実行され得る。さらに、マルチコアCPU324、メモリ344、またはそれらの組合せは、マルチコアCPU324内の各CPUまたはコアの電力を動的に制御するために本明細書で説明される方法ステップの1つまたは複数を実行するための手段として機能し得る。   In certain aspects, one or more of the method steps described herein may be stored in memory 344 as computer program instructions. These instructions may be executed by multi-core CPU 324 to perform the methods described herein. Further, the multi-core CPU 324, memory 344, or a combination thereof may perform one or more of the method steps described herein to dynamically control the power of each CPU or core within the multi-core CPU 324. It can function as a means.

図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 processing system 400 may be incorporated into the PCD 320 described above with respect to FIG. As shown, the processing system 400 may include a multi-core central processing unit (CPU) 402 and a memory 404 connected to the multi-core CPU 402. The multi-core CPU 402 may include a zeroth core 410, a first core 412 and an Nth core 414. The zeroth core 410 may include a zeroth dynamic clock and voltage scaling (DCVS) algorithm 416 running thereon. The first core 412 may include a first DCVS algorithm 417 that is executed thereon. Further, the Nth core 414 may include an Nth DCVS algorithm 418 executed thereon. In certain aspects, each DCVS algorithm 416, 417, 418 may be executed independently on each core 410, 412, 414.

さらに、示されるように、メモリ404は、それに記憶されたオペレーティングシステム420を含み得る。オペレーティングシステム420はスケジューラ422を含んでよく、スケジューラ422は第1の実行キュー424、第2の実行キュー426、および第Nの実行キュー428を含んでよい。メモリ404は、それに記憶された第1のアプリケーション430、第2のアプリケーション432、および第Nのアプリケーション434も含み得る。   Further, as shown, the memory 404 can include an operating system 420 stored thereon. The operating system 420 may include a scheduler 422, which may include a first execution queue 424, a second execution queue 426, and an Nth execution queue 428. The memory 404 may also include a first application 430, a second application 432, and an Nth application 434 stored therein.

特定の態様において、アプリケーション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 applications 430, 432, 434 may send one or more tasks 436 to be processed by the cores 410, 412, 414 in the multi-core CPU 402 to the operating system 420. Task 436 may be processed or executed as a single task, thread, or a combination thereof. Further, the scheduler 422 can schedule tasks, threads, or combinations thereof for execution within the multi-core CPU 402. In addition, the scheduler 422 can place tasks, threads, or combinations thereof in the execution queues 424, 426, 428. The cores 410, 412, 414 execute tasks, threads, or combinations thereof, for example, as instructed by the operating system 420 for processing or execution of those tasks and threads in the cores 410, 412, 414. Can be removed from the queues 424, 426, 428.

図4は、メモリ404がそれに記憶された並列処理モニタ440を含み得ることも示す。並列処理モニタ440は、オペレーティングシステム420およびマルチコアCPU402に接続され得る。具体的には、並行処理モニタ440は、オペレーティングシステム420内のスケジューラ422に接続され得る。   FIG. 4 also illustrates that the memory 404 can include a parallel processing monitor 440 stored therein. The parallel processing monitor 440 can be connected to the operating system 420 and the multi-core CPU 402. Specifically, concurrency monitor 440 may be connected to scheduler 422 within operating system 420.

図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 method 500 may begin at block 502 with a DO loop in which the following steps may be performed when the device is powered on.

ブロック504において、電力コントローラ、たとえば動的クロックおよび電圧スケーリング(DCVS)アルゴリズムが、1つまたは複数のCPUを監視することができる。判断506において、電力コントローラは、CPUに対する過渡性能期限が切れたかどうかを判定することができる。切れていない場合、方法500は終了し得る。それ以外の場合、すなわち過渡性能期限が切れている場合、方法500はブロック508に進むことができ、電力コントローラは、CPUをより高い性能レベル、すなわち次のより高い動作周波数へと移行することができる。一態様では、コントローラは、CPUを最大の性能レベル、すなわち最大のCPU周波数へと移行することができる。しかしながら、別の態様では、CPUは最大の性能レベルに移らなくてよい。CPUは、中間のレベルに移り、次いで、最大のレベルと別のより高い性能レベルのいずれかへと再び移ってよい。この移行の頻度の値を決定するために、中間的な移行の数および移行と移行の間の時間の長さが使用され得る。   At block 504, a power controller, such as a dynamic clock and voltage scaling (DCVS) algorithm, can monitor one or more CPUs. At decision 506, the power controller can determine whether the transient performance deadline for the CPU has expired. If not, method 500 may end. Otherwise, if the transient performance has expired, the method 500 can proceed to block 508 and the power controller may move the CPU to a higher performance level, i.e. the next higher operating frequency. it can. In one aspect, the controller can transition the CPU to the maximum performance level, i.e., the maximum CPU frequency. However, in another aspect, the CPU may not move to the maximum performance level. The CPU may move to an intermediate level and then move again to either the maximum level or another higher performance level. The number of intermediate transitions and the length of time between transitions can be used to determine this transition frequency value.

ブロック510において、CPUはアイドル条件に入ることができる。さらに、ブロック512において、過渡性能期限が再設定され得る。ブロック514において、CPUはアイドル条件から出ることができる。判断516へと移り、電力コントローラは、達しつつあるCPU周波数が最大のCPU周波数にあるかどうかを判定することができる。そうである場合、方法500は終了することができる。それ以外の場合、すなわち、CPU周波数が最大のCPU周波数にない場合、方法はブロック518に進むことができ、タイマーが再スケジューリングされ得る。そして、方法500は終了することができる。   In block 510, the CPU may enter an idle condition. Further, at block 512, the transient performance deadline may be reset. At block 514, the CPU can exit the idle condition. Moving to decision 516, the power controller can determine whether the reaching CPU frequency is at the maximum CPU frequency. If so, the method 500 can end. Otherwise, if the CPU frequency is not at the maximum CPU frequency, the method can proceed to block 518 and the timer can be rescheduled. The method 500 can then end.

図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 block 602, the central processing unit (CPU) can enter an idle state. At block 604, a power controller, such as a dynamic clock and voltage scaling (DCVS) algorithm, may set an idle start time (StartIdleTime) equal to the current time (CurrentTime). Further, at block 606, the power controller can determine a busy time (BusyTime) by subtracting an idle state start time (StartIdleTime) from an idle state end time (EndIdleTime).

ブロック608において、CPUは、割込みのためのソフトウェア待機(SWFI)条件に入ることができる。ブロック610において、CPUはSWFI条件から出ることができる。ブロック612に移り、電力コントローラは、現在の時間(CurrentTime)に等しくアイドル状態終了時間(EndIdleTime)を設定することができる。さらに、ブロック614において、電力コントローラは、アイドル状態終了時間(EndIdleTime)からアイドル状態開始時間(StartIdleTime)を減算することによって、アイドル時間(IdleTime)を決定することができる。ブロック616において、電力コントローラは、更新安定状態フィルタ(UpdateSteadyStateFilter)、ビジー時間(BusyTime)、およびアイドル時間(IdleTime)から、達しつつあるCPU周波数(CPUFreq)を決定することができる。その後、方法600は図7のブロック702に続き得る。   At block 608, the CPU may enter a software wait (SWFI) condition for interrupt. In block 610, the CPU can exit the SWFI condition. Moving to block 612, the power controller may set an idle end time (EndIdleTime) equal to the current time (CurrentTime). Further, at block 614, the power controller may determine an idle time (IdleTime) by subtracting an idle state start time (StartIdleTime) from an idle state end time (EndIdleTime). In block 616, the power controller may determine the CPU frequency (CPUFreq) that is being reached from the update steady state filter (UpdateSteadyStateFilter), the busy time (BusyTime), and the idle time (IdleTime). Thereafter, the method 600 may continue to block 702 of FIG.

ブロック702において、電力コントローラは、次の式を使用して実効過渡バジェット(EffectiveTransientBudget)を決定することができる。
EffectiveTransientBudget=(TransientResponseDeadline×NextCPUFreq)/(NextCPUFreq-CPUFreq)
ここで、
TransientResponseDeadline=過渡応答期限、すなわちスラック(slack)バジェット、
NextCPUFreq=達しつつあるCPU周波数よりも一段高い周波数である次のCPU周波数、かつ、
CPUFreq=達しつつあるCPU周波数(CPUFreq)
である。
At block 702, the power controller may determine an Effective Transient Budget (EffectiveTransientBudget) using the following equation:
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 method 600 can end.

特定の態様では、図6および図7とともに説明された方法600は、過渡期限が切れるまでの、CPUがDCVSによって決定される周波数に留まり得る時間の長さを計算し、その時間の長さの分だけ未来に、より高いCPU周波数への移行をスケジューリングするために使用され得る。より高い周波数への移行の前にアイドル状態に再び入る場合、スケジューリングされた移行は取り消され得る。方法600は、EffectiveTransientBudgetとして決定される時間の長さの分だけ、より高い周波数への移行を遅らせることができる。   In a particular aspect, the method 600 described in conjunction with FIGS. 6 and 7 calculates the length of time that the CPU can stay at the frequency determined by the DCVS until the transient expires, In the future, it can be used to schedule a transition to a higher CPU frequency. If the idle state is reentered before the transition to a higher frequency, the scheduled transition can be canceled. The method 600 can delay the transition to a higher frequency by the length of time determined as EffectiveTransientBudget.

本明細書で説明される方法ステップは、必ずしも説明されるような順序で実行される必要はないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明される方法は、ポータブルコンピューティングデバイス(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, ie 16 ms / (1-0.75). The effective transient budget represents how long the CPU can operate at the current performance level before the budget is exhausted. When the CPU is idle, the effective transient budget can be the same as the transient response deadline. When at the maximum performance level, the effective transient budget is infinite as shown in FIG.

本明細書で説明される方法を使用すると、システムは、タスクが最大のレベル以外の何らかのレベルで実行され得る最大の時間の長さに対する厳格な限度を提供できるので、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 computing device 1000 that implements a dynamic clock frequency / voltage scaling (DCVS) method that enforces performance guarantees. The computing device 1000 may include a hardware unit 1002, a kernel space software unit 1004, and a user space software unit 1006. In an aspect, the kernel space software unit 1004 and the user space software unit 1006 may be included in the operating system or kernel of the computing device 1000. For example, a computing device may include a kernel that is organized in user space (if non-privileged code is executed) and in kernel space (if privileged code is executed). This separation requires code that is part of the kernel space to be licensed under the General Public License (GPL), while code that runs in user space is licensed under the GPL. Especially important in Android and other GPL environments where there is no need.

ハードウェアユニット1002は、いくつかのプロセッシングコア(たとえば、CPU_0、CPU_1、2D-GPU_0、2D-GPU_1、3D-GPU_0など)と、プロセッシングコアによって共有される様々なハードウェアリソース(たとえば、クロック、電力管理集積回路または“PMIC”、スクラッチパッドメモリまたは“SPM”など)を含むリソースモジュール1020とを含み得る。   Hardware unit 1002 includes several processing cores (eg, CPU_0, CPU_1, 2D-GPU_0, 2D-GPU_1, 3D-GPU_0, etc.) and various hardware resources shared by the processing core (eg, clock, power And a resource module 1020 that includes a management integrated circuit or “PMIC”, a scratchpad memory, or “SPM”.

カーネル空間ソフトウェアユニット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 space software unit 1004 is a processor module (CPU_0 Idle stats, CPU_1 idle stats, 2D-GPU_0 driver, 2D-GPU_1 driver, 3D-GPU_0 driver, etc.) corresponding to at least one of the processing cores in the hardware unit 1002 Each of which may be in communication with one or more idle state statistics device modules 1008. The kernel space software unit 1004 may further include a timer driver module 1014, an input event module 1010, and a CPU request statistics module 1012. In an aspect, the timer driver module 1014 can drive (or manage) a timer for each processing core.

ユーザ空間ソフトウェアユニット1006は、アイドル状態統計デバイスモジュール1008、入力イベントモジュール1010、タイマードライバモジュール1014、およびCPU要求統計モジュール1012の各々から入力を受信し、かつ/または、CPU周波数ホットプラグモジュール1018に出力を送信するように構成される、DCVS制御モジュール416を含み得る。CPU周波数ホットプラグモジュール1018は、通信信号をリソースモジュール1020に送信するように構成され得る。CPU周波数ホットプラグモジュール1018はさらに、各コアに対して、独立に(たとえば一度に1つのコアに、順番に、など)、または同時に(たとえば、ほぼ同じ時点で)、電圧/周波数の変更を適用するように構成され得る。   User space software unit 1006 receives input from each of idle state statistics device module 1008, input event module 1010, timer driver module 1014, and CPU request statistics module 1012 and / or outputs to CPU frequency hot plug module 1018 The DCVS control module 416 may be included. The CPU frequency hot plug module 1018 may be configured to send a communication signal to the resource module 1020. The CPU frequency hot plug module 1018 further applies voltage / frequency changes to each core independently (eg, one core at a time, in turn, etc.) or simultaneously (eg, at about the same time) Can be configured to.

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 control module 1016 is suitable for execution on any or all of the processing cores (eg, CPU_0, CPU_1, 2D-GPU_0, 2D-GPU_1, 3D-GPU_0, etc.) and / or on the computing device 1000 May contain threads suitable for implementing a DCVS solution. In an aspect, the DCVS control module 1016 may cause an event that causes the DCVS control module 1016 to collect information from one or more processing cores and perform a DCVS operation on the processing core (e.g., a data buffer full, a timer It may include threads that monitor ports or sockets for the occurrence of timeouts, state transitions, etc.). In an aspect, the DCVS control module 1016 may include a single thread DCVS solution that monitors two or more processing cores. In an aspect, the DCVS control module 1016 may include a DCVS solution thread for each processing core.

ある態様では、DCVS制御モジュール1016は、パルス列を生成するように構成され得る。DCVS制御モジュール1016は、プロセッシングコアのビジー状態および/またはアイドル状態(またはこれらの状態の間の移行)を監視またはサンプリングすることによって、パルス列を生成することができる。DCVS制御モジュール1016はまた、1つまたは複数のプロセッサ実行キューの深さを監視することによって得られる情報に基づいて、パルス列を生成することができる。実行キューは、実行されているスレッドとともに、プロセッシングコアで実行される能力を有するがまだそうすることが可能ではない(たとえば、現在実行されている別のアクティブスレッドなどが原因で)、1つまたは複数のスレッドの集合体を含み得る。各プロセッシングコアは固有の実行キューを有してよく、または単一の実行キューが複数のプロセッシングコアによって共有されてよい。スレッドがスリープ状態に入ることを要求するとき、利用可能になることをリソース上で待機しているとき、または終了されたとき、スレッドは実行キューから除去され得る。したがって、実行キューの中のスレッドの数(すなわち、実行キューの深さ)は、現在処理されている(実行されている)スレッドおよび処理されるのを待機しているスレッドを含む、アクティブスレッド(たとえば、待機している、実行されている)の数を特定することができる。   In certain aspects, the DCVS control module 1016 may be configured to generate a pulse train. The DCVS control module 1016 can generate the pulse train by monitoring or sampling the processing core busy and / or idle states (or transitions between these states). The DCVS control module 1016 can also generate a pulse train based on information obtained by monitoring the depth of one or more processor execution queues. An execute queue has the ability to execute in the processing core with the executing thread, but is not yet possible to do so (for example, due to another active thread currently executing, etc.) It may contain a collection of multiple threads. Each processing core may have its own execution queue, or a single execution queue may be shared by multiple processing cores. A thread can be removed from the run queue when it requests to go to sleep, when it is waiting on a resource to become available, or when it is terminated. Thus, the number of threads in the execute queue (ie, the depth of the execute queue) is the number of active threads (including threads that are currently being processed (running) and threads that are waiting to be processed ( For example, the number of waiting, running) can be identified.

ある態様では、DCVS制御モジュール1016は、生成されたパルス列に基づいて、安定状態の作業負荷、安定状態の要件、および/または上側と下側の周波数/電圧の閾値を計算するように構成され得る。上側と下側の周波数/電圧の閾値は、プロセッシングコアが、安定状態の性能要件を満たしながら、同時にコンピューティングデバイス1000の消費電力の低減を達成し、応答性の要件を満たすように動作できる、周波数/電圧の範囲を定義することができる。応答性の要件を満たすことは、コンピューティングデバイス1000のユーザがコンピューティングデバイスの性能または速度の低下に気づかないように、作業負荷のすべてのタスクを実行することを含み得る。   In an aspect, the DCVS control module 1016 may be configured to calculate a steady state workload, a steady state requirement, and / or upper and lower frequency / voltage thresholds based on the generated pulse train. . The upper and lower frequency / voltage thresholds allow the processing core to operate to meet the steady state performance requirements while at the same time achieving reduced power consumption of the computing device 1000 to meet responsiveness requirements, A frequency / voltage range can be defined. Satisfying the responsiveness requirement may include performing all the tasks of the workload so that the user of the computing device 1000 is unaware of the degradation in computing device performance or speed.

DCVS制御モジュール1016は、全体的なコンピューティングデバイス1000の性能を監視し、かつ/または、確立された上側の周波数閾値と下側の周波数閾値との間でプロセッシングコアの1つまたは複数が動作することを保証するように構成され得る。DCVS制御モジュール1016は、プロセッシングコアの処理リソースおよび/または動作周波数を、それらが閾値と同じ大きさとなるように、調整することができる。   The DCVS control module 1016 monitors the performance of the overall computing device 1000 and / or operates one or more of the processing cores between the established upper and lower frequency thresholds Can be configured to ensure that. The DCVS control module 1016 can adjust the processing resources and / or operating frequencies of the processing cores so that they are as large as the threshold.

上で論じられたように、DCVS制御モジュール1016は、パルス列を生成することができる。ある態様では、プロセッシングコアの2つ以上のために生成されるパルス列は、互いに協調的かつ/または依存的である動作をプロセッシングコアが実行しているかどうかを判定するのに適した情報を含む相関モデルを生成するために、時間的に同期され、相互に関連付けられ得る。ある態様では、DCVS制御モジュール1016は、相関モデルを使用して、上側と下側の周波数閾値、初期動作周波数、安定状態の要件、およびプロセッサの作業負荷を、これらの値がプロセッシングコア間の相互依存関係を考慮するように、決定することができる。   As discussed above, the DCVS control module 1016 can generate a pulse train. In an aspect, the pulse train generated for two or more of the processing cores includes a correlation that includes information suitable for determining whether the processing core is performing operations that are cooperative and / or dependent on each other. To generate a model, they can be synchronized in time and correlated. In one aspect, the DCVS control module 1016 uses a correlation model to determine the upper and lower frequency thresholds, initial operating frequency, steady state requirements, and processor workload, and these values interact with each other between processing cores. Decisions can be made to take into account dependencies.

ある態様では、DCVS制御モジュール1016は、性能保証を計算し、かつ/または守らせるように構成され得る。上で言及されたように、プロセッシングコアは、DCVS解決法が事前に適切に考慮できない過渡的な作業負荷を、処理/実行することを求められ得る。したがって、過渡的な作業負荷は、DCVS制御モジュール1016に、準最適な周波数レベルで、または準最適な周波数範囲の中で、プロセッシングコアの1つまたは複数を動作させ得る。たとえば、DCVS制御モジュール1016は過渡的な作業負荷を事前に考慮できないので、DCVS制御モジュール1016は、プロセッシングコアが、安定状態の作業負荷と過渡的な作業負荷の両方をコンピューティングデバイス1000の応答性の要件を満たすのに適した期間中に完了するために必要とされるものよりも低い周波数レベルで動作し得ると、不適切に結論付けることがある。   In an aspect, the DCVS control module 1016 may be configured to calculate and / or maintain performance guarantees. As mentioned above, the processing core may be required to handle / execute transient workloads that the DCVS solution cannot properly consider in advance. Thus, a transient workload may cause the DCVS control module 1016 to operate one or more of the processing cores at a sub-optimal frequency level or within a sub-optimal frequency range. For example, the DCVS control module 1016 cannot consider transient workloads in advance, so the DCVS control module 1016 allows the processing core to respond to both the steady state and transient workloads of the computing device 1000. It may be inappropriately concluded that it can operate at a lower frequency level than is required to complete during a time period suitable to meet the requirements.

性能保証は、(たとえば、過渡的な作業負荷が原因で)所定の長さの時間よりも長くプロセッシングコアがビジー状態に留まらないこと/安定状態の作業負荷の要件を完了するためにそのプロセッシングコアに対して必要とされるものよりも多くプロセッシングコアが働かないことを確実にするために、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 computing device 1000 with strict and computable limits that can be used by the DCVS control module 1016. Performance assurance ensures that the DCVS control module 1016 completes the processing core for both steady state and transient workloads during a time period suitable to meet the responsiveness requirements of the computing device 1000. Makes it possible to

様々な態様では、性能保証は、時間の長さ、作業の量、タスクの数、命令の数、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 control module 1016 may cause the corresponding processing core to transition from idle state to busy state, enter busy state (e.g., initiate workload processing), and / or exit idle state (e.g., Each time an idle thread releases the processing core, etc.) may be configured to set a deadline value equal to the budget value.

ある態様では、DCVS制御モジュール1016は、対応するプロセッシングコアがビジー状態からアイドル状態に移行し、アイドル状態に入り(たとえば、アイドルスレッドの実行を開始するなど)、かつ/またはビジー状態から出る(たとえば、作業負荷のすべてのタスクを完了するなど)たびに、既存の期限値を設定または再設定するように構成され得る。   In an aspect, the DCVS control module 1016 may cause the corresponding processing core to transition from busy to idle, enter idle (eg, start execution of an idle thread), and / or exit busy (eg, Each time a workload is completed, etc.) each time it can be configured to set or reset an existing deadline value.

図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 DCVS solution 1100 is shown that generates / calculates a performance guarantee that ensures that it does not stay busy (eg, due to a transient workload, etc.) longer than In various aspects, the operation of the DCVS solution may be performed by a thread executing in a processing core or another processing core. In certain aspects, one or more of the operations of the DCVS solution may be performed by an idle thread that executes on the processing core.

ブロック1102において、DCVS解決法は、プロセッシングコアを、アイドル状態からビジー状態へ移行させ得る。ブロック1104において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。したがって、アイドル状態終了時間パラメータ(EndIdleTime)は、プロセッシングコアが最後にアイドル状態から出た時間を示す値を記憶することができる。   At block 1102, the DCVS solution may cause the processing core to transition from the idle state to the busy state. In block 1104, the DCVS solution may set the value of the idle state end time parameter (EndIdleTime) equal to the current time value (CurrentTime). Therefore, the idle state end time parameter (EndIdleTime) can store a value indicating the time at which the processing core last exited the idle state.

様々な態様では、ブロック1102および1104の動作は、順番に、並列に、かつ/または任意の順序で実行され得る。たとえば、ある態様では、DCVS解決法は、アイドル状態からビジー状態にプロセッシングコアを移行する前に、アイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。別の態様では、DCVS解決法は、アイドル状態からビジー状態にプロセッシングコアを移行した後に、アイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。   In various aspects, the operations of blocks 1102 and 1104 may be performed sequentially, in parallel, and / or in any order. For example, in one aspect, the DCVS solution may set the value of the idle state end time parameter (EndIdleTime) before transitioning the processing core from the idle state to the busy state. In another aspect, the DCVS solution may set the value of the idle state end time parameter (EndIdleTime) after transitioning the processing core from the idle state to the busy state.

ブロック1106において、DCVS解決法は、プロセッシングコアの動作周波数または電圧を監視し、必要に応じて調整を行うことができる。ブロック1108において、DCVS解決法は、プロセッシングコアを、ビジー状態からアイドル状態へ移行させ得る。ある態様では、DCVS解決法は、プロセッシングコアでのアイドルスレッドの実行を開始することによって、プロセッシングコアをアイドル状態に移行することができる。ある態様では、DCVS解決法は、プロセッシングコアがすべての作業負荷と関連付けられるすべてのタスクを完了した後で、プロセッシングコアをアイドル状態に移行することができる。   In block 1106, the DCVS solution can monitor the operating frequency or voltage of the processing core and make adjustments as necessary. In block 1108, the DCVS solution may cause the processing core to transition from the busy state to the idle state. In an aspect, the DCVS solution can transition the processing core to an idle state by initiating execution of an idle thread on the processing core. In certain aspects, the DCVS solution may transition the processing core to an idle state after the processing core has completed all tasks associated with all workloads.

任意選択のブロック1110において、DCVS解決法は、既存の期限値を設定または再設定することができる。上で論じられたように、期限値は、性能保証に含まれ、またはそれと関連付けられる、性能保証値であり得る。期限値を設定し、再設定し、かつ/または計算する動作に関する追加の詳細が、さらに以下で提供される。   In optional block 1110, the DCVS solution can set or reset the existing deadline value. As discussed above, the deadline value may be a performance guarantee value that is included in or associated with the performance guarantee. Additional details regarding operations for setting, resetting and / or calculating deadline values are provided further below.

ブロック1112において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態開始時間パラメータ(StartIdleTime)の値を設定することができる。ブロック1114において、DCVS解決法は、プロセッシングコアが最後に以前のアイドル状態から出た時間(アイドル状態終了時間パラメータ“EndIdleTime”によって表され得る)と、プロセッシングコアが現在のアイドル状態に入った時間(アイドル状態開始時間パラメータ“StartIdleTime”によって表され得る)との差に等しく、ビジー時間パラメータ(BusyTime)の値を設定することができる。したがって、ビジー時間パラメータ(BusyTime)は、プロセッシングコアが直近にビジー状態に留まっていた時間長を示す値を記憶することができる。   In block 1112, the DCVS solution may set the value of the idle state start time parameter (StartIdleTime) equal to the current time value (CurrentTime). At block 1114, the DCVS solution determines the time when the processing core last exited the previous idle state (which may be represented by the idle state end time parameter “EndIdleTime”) and the time the processing core entered the current idle state ( The value of the busy time parameter (BusyTime) can be set equal to the difference from the idle state start time parameter “StartIdleTime”. Therefore, the busy time parameter (BusyTime) can store a value indicating the length of time that the processing core has been in the busy state most recently.

ブロック1116において、DCVS解決法は、プロセッシングコアに、スリープ動作、ディープスリープ動作、または割込みのためのソフトウェア待機動作のような、様々なアイドル状態動作を実行させ得る。したがって、ブロック1116において、DCVS解決法(たとえば、アイドルスレッド、オペレーティングシステムなどを介した)は、プロセッシングコアに、スリープ状態、ディープスリープ状態、割込みのための待機の状態などに入らせ得る。   At block 1116, the DCVS solution may cause the processing core to perform various idle state operations, such as sleep operations, deep sleep operations, or software wait operations for interrupts. Accordingly, at block 1116, a DCVS solution (eg, via an idle thread, operating system, etc.) may cause the processing core to enter a sleep state, a deep sleep state, a wait state for interrupts, etc.

ブロック1118において、DCVS解決法および/またはアイドルスレッドは、割込み要求を受信し、かつ/または、そうでなければ、プロセッシングコアが現在の状態からビジー状態に移行されるべきであると判定することができる。これは、タスクがプロセッシングコアでの実行のためにスケジューリングされたこと、および/または、スケジューリングされたタスクが実行の準備ができていることの通知を、(たとえば、オペレーティングシステムのスケジューラ、コントローラなどから)DCVS解決法が受信することによって、達成され得る。   At block 1118, the DCVS solution and / or idle thread may receive an interrupt request and / or otherwise determine that the processing core should be transitioned from the current state to the busy state. it can. This is a notification that a task has been scheduled for execution in the processing core and / or that the scheduled task is ready for execution (eg, from the operating system scheduler, controller, etc. ) DCVS solution can be achieved by receiving.

ブロック1120において、DCVS解決法は、現在の時間の値(CurrentTime)に等しくアイドル状態終了時間パラメータ(EndIdleTime)の値を設定することができる。ブロック1122において、DCVS解決法は、StartIdleTimeパラメータの値とEndIdleTimeパラメータの値の差に等しく、アイドル時間パラメータ(IdleTime)の値を設定することができる。したがって、アイドル時間パラメータ(IdleTime)は、プロセッシングコアが最後にアイドル状態に留まっていた時間長を示す値を記憶することができる。   In block 1120, the DCVS solution may set the value of the idle state end time parameter (EndIdleTime) equal to the current time value (CurrentTime). In block 1122, the DCVS solution may set the value of the idle time parameter (IdleTime) equal to the difference between the value of the StartIdleTime parameter and the value of the EndIdleTime parameter. Therefore, the idle time parameter (IdleTime) can store a value indicating the length of time that the processing core last remained in the idle state.

ブロック1124において、DCVS解決法は、その中でプロセッシングコアが動作すべきである、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。ある態様では、DCVS解決法は、ビジー状態(たとえば、BusyTime)にプロセッシングコアが最後に留まっていた時間長、および/または、アイドル状態(たとえば、IdleTime)にプロセッシングコアが最後に留まっていた時間長に基づいて、周波数または周波数範囲を計算することができる。ある態様では、DCVS解決法は、プロセッサが以前にビジー状態および/またはアイドル状態に留まっていた時間長(たとえば、所定の期間または時間枠にわたる)の平均(または移動平均)のような、履歴情報に基づいて、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。ある態様では、DCVS解決法は、パルス列に基づいて、動作周波数、周波数範囲、および/または周波数閾値を計算することができる。上で論じられたように、パルス列は、ビジー状態および/またはアイドル状態のサンプリング、状態間の移行、実行キューの深さなどに基づいて生成され得る。   In block 1124, the DCVS solution may calculate the operating frequency, frequency range, and / or frequency threshold within which the processing core should operate. In some aspects, the DCVS solution may be the length of time the processing core last stayed in the busy state (eg, BusyTime) and / or the length of time the processing core lasted in the idle state (eg, IdleTime). Based on the frequency or frequency range can be calculated. In an aspect, the DCVS solution may be based on historical information, such as an average (or moving average) of the length of time (eg, over a given period or time frame) that the processor has previously remained busy and / or idle. Based on the operating frequency, the frequency range, and / or the frequency threshold can be calculated. In certain aspects, the DCVS solution can calculate an operating frequency, a frequency range, and / or a frequency threshold based on the pulse train. As discussed above, the pulse train may be generated based on busy and / or idle sampling, transitions between states, execution queue depth, and the like.

ブロック1126において、DCVS解決法は、期限値を計算または選択することができる。期限値は、その後に次の段階のより高い周波数と最大の周波数のいずれかにプロセッシングコアの周波数が上げられるように設定されるべきである、相対的な時間を示す値であり得る。様々な態様では、期限値は、構成設定、ドライバ入力、スケジューリングされたタスクの量および/もしくはタイプ、予測された安定状態の作業負荷、ならびに/または、コンピューティングデバイスの応答性の要件に基づいて計算され得る。期限値は、静的な値および/または動的な値に基づいて決定され得る。たとえば、期限値は、静的な構成値に基づいて、または、プロセッシングコアで実行されるようにスケジューリングされるタスクのタイプ(たとえば、1080pビデオのストリーミング対720pビデオのストリーミングなど)に基づいて決定され得る。   In block 1126, the DCVS solution may calculate or select a deadline value. The deadline value may be a value that indicates a relative time that should be set so that the frequency of the processing core is then raised to either the higher or maximum frequency of the next stage. In various aspects, the deadline value may be based on configuration settings, driver inputs, scheduled task volume and / or type, predicted steady state workload, and / or computing device responsiveness requirements. Can be calculated. The deadline value may be determined based on a static value and / or a dynamic value. For example, deadline values are determined based on static configuration values, or based on the type of task that is scheduled to run on the processing core (for example, streaming 1080p video versus streaming 720p video, etc.) obtain.

ある態様では、期限値は、コンピューティングデバイスの応答性の要件に反比例し得る(すなわち、応答性の要件が高いほど、期限は短い)。ある態様では、期限値は、プロセッシングコアの現在の動作周波数の関数である時間の値(たとえば、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 block 1128, the DCVS solution may calculate or select a budget value. The budget value does not exceed the sum of the deadline value and the time determined to be required for the processing core to complete the steady state workload requirement, and the processing core is active or busy. It can be a value indicating the length of time that can remain. In some aspects, the budget 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.

様々な態様では、バジェット値は、期限値、複数の周波数レベルまたはステップ、最大のプロセッサ周波数、安定状態のプロセッサ周波数などに基づいて計算され得る。ある態様では、バジェット値は、実効過渡バジェットであってよく、かつ/または、上で論じられた式のいずれかを介して計算されてよい。   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 optional block 1130, the DCVS solution can calculate a jump to max value. The jump-to-max value may be a value indicating a relative time after which the processing core frequency should be set to the maximum processing frequency. In an aspect, the jump-to-max value may be calculated by adding the value of the EndIdleTime parameter and the budget value.

ブロック1132において、DCVS解決法は、プロセッシングコアを、アイドル状態からビジー状態へ移行することができる。ある態様では、ブロック1132の一部として、DCVS解決法は、バジェット値に等しく期限値を設定することができる。様々な態様では、DCVS解決法は、プロセッシングコアがアイドル状態からビジー状態に移行し、アクティブ状態またはビジー状態に入り(たとえば、作業負荷の処理を開始するなど)、かつ/またはアイドル状態から出る(たとえば、アイドルスレッドがプロセッシングコアを解放するときなど)たびに、バジェット値に等しく期限値を設定するように構成され得る。   In block 1132, the DCVS solution may transition the processing core from the idle state to the busy state. In some aspects, as part of block 1132, the DCVS solution may set a deadline value equal to the budget value. In various aspects, the DCVS solution may cause the processing core to transition from an idle state to a busy state, enter an active state or a busy state (eg, start processing a workload), and / or exit an idle state ( Each time (eg, when an idle thread releases a processing core), it may be configured to set a deadline value equal to the budget value.

図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 block 1202, the DCVS solution may calculate a predicted steady state workload based on the scheduled task. In block 1204, the DCVS solution may calculate various performance requirements for the processing core, such as a frequency threshold to meet computing device power consumption and / or responsiveness requirements. Performance requirements (for example, frequency threshold) are based on steady state workload, historical information (for example, how long it has been busy so far), processor characteristics, responsiveness requirements, etc. Can be determined.

ブロック1206において、DCVS解決法は、初期動作周波数および/または様々な性能保証値(たとえば、期限値、バジェット値、jump-to-max値など)を計算し設定することができる。ブロック1208において、DCVS解決法は、様々な性能要件を満たしながら安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされる時間または作業の量(たとえば、CPUサイクル、命令など)を計算することができる。   At block 1206, the DCVS solution may calculate and set an initial operating frequency and / or various performance guarantee values (eg, deadline values, budget values, jump-to-max values, etc.). In block 1208, the DCVS solution is used to process the amount of time or work (e.g., CPU cycles, etc.) required for the processing core to complete all the tasks of the steady state workload while meeting various performance requirements. Command).

ブロック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 block 1212, the DCVS solution may monitor the actual workload and / or operating frequency of the processing core and adjust the frequency / voltage as needed (eg, according to a default clock and voltage scaling algorithm). it can. In optional block 1214, the DCVS solution may update the performance guarantee value based on the current operating frequency / voltage of the processing core.

判定ブロック1216において、DCVS解決法は、プロセッシングコアが、計算された時間/作業(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると判定された時間/作業の量)よりも長くビジー状態に留まっているかどうかを判定することができる。プロセッシングコアが計算された時間/作業よりも長くビジー状態に留まっていないとDCVS解決法が判定すると(すなわち、判定ステップ1216=“No”)、ブロック1212において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要なときに調整を行うことができる。   At decision block 1216, the DCVS solution is used when the processing core is required for the processing core to complete all tasks of the calculated time / work (ie, expected steady state workload). It can be determined whether or not the user has been busy for a longer time than the determined time / amount of work. If the DCVS solution determines that the processing core has not been busy for longer than the calculated time / work (ie, decision step 1216 = “No”), at block 1212 the DCVS solution determines the actual workload. / Continue to monitor the frequency and make adjustments when needed.

プロセッシングコアが計算された時間/作業よりも長い期間ビジー状態に留まっていると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, decision step 1216 = “Yes”), at decision block 1218, the DCVS solution It can be determined whether it has been used up. The DCVS solution is that the processing core is busy when the budget value is equal to 0 and / or for a period of time (measured in either time or work) that is greater than the deadline value plus the calculated time / work. When remaining in the state, it can be determined that the budget has been exhausted.

バジェットが使い果たされていないと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, decision step 1218 = “No”), at block 1212 the DCVS solution continues to monitor the actual workload / frequency and when necessary. Adjustments can be made. If the DCVS solution determines that the budget is exhausted (ie, decision step 1218 = “Yes”), at block 1220, the DCVS solution can increase the operating frequency / voltage of the processing core. In an aspect, at block 1220, the DCVS solution may raise the operating frequency / voltage of the processing core to the maximum processor frequency. In an aspect, at block 1220, the DCVS solution may increase the operating frequency / voltage threshold. In an aspect, at block 1220, the DCVS solution may step up the operating frequency / voltage of the processing core.

図13は、性能保証を守らせる、別の態様のDCVS解決方法1300を示す。ブロック1302〜1314において、DCVS解決法は、図12のブロック1202〜1214に関して上で論じられた動作と同一の、または同様の動作を実行することができる。判定ブロック1316において、DCVS解決法は、計算された時間(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると判定された時間の長さ)と期限値を加算した時間(計算された時間+期限)よりも前に、プロセッシングコアが現在の作業負荷を完了する確率が高いかどうかを、判定することができる。   FIG. 13 illustrates another aspect of a DCVS solution 1300 that enforces performance guarantees. In blocks 1302-1314, the DCVS solution may perform the same or similar operations as those discussed above with respect to blocks 1202-1214 in FIG. In decision block 1316, the DCVS solution determines the calculated time (i.e., the amount of time determined to be required for the processing core to complete all tasks in the predicted steady state workload). It is possible to determine whether or not the processing core has a high probability of completing the current workload before the time (calculated time + deadline) obtained by adding the deadline value and the deadline value.

計算された時間に期限値を加算した時間よりも前にプロセッシングコアが現在の作業負荷を完了する確率が高いと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, decision step 1316 = “Yes”), at block 1312 The DCVS solution can continue to monitor the actual workload / frequency and make adjustments to the operating frequency / voltage as needed.

計算された時間の値に期限値を加算した時間よりも前にプロセッシングコアが現在の作業負荷を完了する確率が高くないと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, decision step 1316 = “No”) In block 1318, the DCVS solution can increase the operating frequency / voltage of the processing core. The operating frequency / voltage of the processing core may be increased to the maximum processor frequency or may be increased in steps.

様々な態様は、プロセッサを有するコンピューティングデバイス上での性能を向上させる方法を含み、この方法は、プロセッサの安定状態の作業負荷を決定するステップと、プロセッサ上の決定された安定状態の作業負荷を実行するために必要とされる作業の量を決定するステップと、プロセッサに対する性能保証値を計算するステップと、アイドル状態からビジー状態にプロセッサを移行するステップと、動的クロックおよび電圧スケーリング動作を実行して、プロセッサの実際の作業負荷に基づいてプロセッサの周波数をスケーリングするステップと、スケーリングされた周波数に基づいて性能保証値を更新するステップと、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっているかどうかを判定するステップと、決定された作業の量と性能保証値の合計以上の期間、プロセッサがビジー状態に留まっていると判定されたときに、プロセッサの周波数を上げるステップとを含み得る。   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. Portable computing device 1400 may include a processing core 1401 coupled to memory 1402 and transceiver 1405. A transceiver 1405 may be coupled to the antenna 1404 for transmitting and receiving electromagnetic radiation. The portable computing device 1400 may also include a display 1403 (eg, a touch screen display) and menu selection buttons or rocker switches 1406 for receiving user input. In some portable computing devices, multiple processors 1401 may be provided, such as one processor dedicated to wireless communication functions and one processor dedicated to running other applications.

様々な態様はまた、図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 server 1500 shown in FIG. Such a server 1500 typically includes a processing core 1501, and may include a plurality of processor systems 1511, 1521, 1531, one or more of the processor systems being a multi-core processor or including a multi-core processor. Sometimes. Processing core 1501 may be coupled to volatile memory 1502 and mass nonvolatile memory such as disk drive 1503. Server 1500 may also include a floppy disk drive, compact disk (CD) or DVD disk drive 1506 coupled to processing core 1501. Server 1500 may also include a network access port 1504 coupled to processing core 1501 for establishing a data connection with network 1505, such as a local area network coupled to other broadcast system computers and servers.

上で説明された態様はまた、図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 laptop computer 1600 shown in FIG. The laptop computer 1600 may include a processing core 1601 coupled to a volatile memory 1602 and a high-capacity non-volatile memory such as a flash memory disk drive 1604. Computer 1600 may also include a floppy disk drive 1606 and a compact disk (CD) drive 1608 coupled to processing core 1601. The computing device 1600 also provides data connections, such as USB, FireWire®, or Lightning® connector sockets, or other network connection circuitry for coupling the processing core 1601 to a network or computer. It may include several connector ports coupled to the processing core 1601 for establishing or accepting external memory devices. In a notebook configuration, the computer housing includes a touch pad 1616, a keyboard 1618, and a display 1620, all coupled to a processing core 1601. Other configurations of the computing device may include a computer mouse or trackball coupled to the processor (eg, via a USB input), as is well known.

プロセッシングコア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によってアクセス可能なすべてのメモリを指す。   Processing cores 1401, 1501, 1601 can be any programmable processor, microprocessor that can be configured by software instructions (applications) to perform various functions, including the various aspects of functions and operations described herein. A microcomputer, a multi-core processor, or a multi-processor chip. Typically, software applications can be stored in internal memory 1402, 1502, 1602 before being accessed and loaded into processing cores 1401, 1501, 1601. Each processing core 1401, 1501, 1601 may include internal memory sufficient to store application software instructions. In some computing devices, additional memory chips (eg, Secure Data (SD) cards) may be plugged into the computing device and coupled to the processing cores 1401, 1501, 1601. Internal memory 1402, 1502, 1602 can be volatile memory, or non-volatile memory such as flash memory, or a mixture of both. As used herein, a general reference to memory is any memory accessible by processing cores 1401, 1501, 1601, including internal memory 1402, removable memory plugged into the mobile device, and memory within processing core 1401. Point to.

プロセッシングコア1401、1501、1610は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへ一般的な言及は、内部メモリ、またはデバイスに差し込まれるリムーバブルメモリと、プロセッシングコア1401、1501、1610自体の中のメモリとを含む、プロセッサ1401、1501、1610によってアクセス可能なメモリを指す。   Processing cores 1401, 1501, 1610 may include internal memory sufficient to store application software instructions. In many devices, the internal memory can be volatile memory, or non-volatile memory such as flash memory, or a mixture of both. As used herein, general references to memory are accessible by the processors 1401, 1501, 1610, including internal memory or removable memory plugged into the device and memory within the processing cores 1401, 1501, 1610 themselves Points to a good memory.

単一のプロセッシング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 DCVS solution method 1700 for setting per-core performance guarantees (eg, transient deadlines) for threads or workloads 1702 executing in a multi-core system. In the example shown in FIG. 17, the workload 1702 is assigned a 20 ms transient deadline 1704 on the first processing core (CPU0) when execution begins on the first processing core (CPU0). This is accomplished by setting a transient timer associated with the first processing core (CPU0) to expire 20ms after workload 1702 begins execution, or 20ms after the overall execution time. Can be done.

全体の実行時間の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 workload 1702 from the first processing core (CPU0) to the second processing core (CPU1), and the workload 1702 is transferred to the second processing core ( A new 20ms transition deadline 1706 is assigned on CPU1). This is a transient timer associated with the second processing core (CPU1) so that it expires 20ms after the workload 1702 is moved to the second processing core (CPU1) or 30ms after the overall execution time Can be achieved by setting

図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 workload 1702 is: The transient deadline 20 ms after the overall execution time that may have been originally intended for the workload 1702 is not reached or reached. As a result, this DCVS solution fails to adequately or sufficiently increase the performance level (eg, CPU frequency) of the processing core (eg, CPU1), which will cause the system to meet performance or power consumption requirements. May not be met.

図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 DC800 solution method 1800 of setting group-based performance guarantees for threads or workloads 1702 executing in a multi-core system. In the example shown in FIG. 17, the workload 1702 is assigned to a processing group that includes a first processing core and a second processing core (CPU0 and CPU1) when execution begins on the first processing core (CPU0). In contrast, a 20 ms transition deadline 1804 is assigned. This is associated with both the first and second processing cores (CPU0 and CPU1) so that they expire 20ms after workload 1702 begins execution or 20ms after the overall execution time Can be achieved by setting a transient timer to be set. Workload 1702 is moved from the first processing core (CPU0) to the second processing core (CPU1) by the operating system scheduler, and workload 1702 is still being driven by the 20ms transient deadline 1804 set for the group. Be bound.

図19は、マルチプロセッサシステムにおいてグループベースの性能保証を設定して守らせる、ある態様のDCVS解決法の方法1900を示す。ブロック1902において、DCVS解決法は、スケジューリングされたタスクに基づいて、予測された安定状態の作業負荷を計算することができる。ブロック1904において、DCVS解決法は、コンピューティングデバイスの電力消費および/または応答性の要件を満たすための周波数閾値のような、プロセッシングコアに対する様々な性能要件を計算することができる。性能要件(たとえば、周波数閾値など)は、安定状態の作業負荷、履歴情報(たとえば、ビジー状態でこれまでに経過した時間の長さなど)、プロセッサの特性、応答性の要件などに基づいて、決定され得る。   FIG. 19 illustrates a method 1900 of one aspect of a DCVS solution that sets and enforces group-based performance guarantees in a multiprocessor system. At block 1902, the DCVS solution may calculate a predicted steady state workload based on the scheduled task. In block 1904, the DCVS solution may calculate various performance requirements for the processing core, such as a frequency threshold to meet computing device power consumption and / or responsiveness requirements. Performance requirements (for example, frequency threshold) are based on steady state workload, historical information (for example, how long it has been busy so far), processor characteristics, responsiveness requirements, etc. Can be determined.

ブロック1906において、DCVS解決法は、第1のプロセッシングコアおよび第2のプロセッシングコアを含むプロセッシンググループに対して、性能保証値(たとえば、期限値、バジェット値、jump-to-max値など)を計算することができる。ある態様では、ブロック1906において、DCVS解決法は、第1のプロセッシングコアに対して性能保証値を計算し、第1のプロセッシングコアと第2のプロセッシングコアの両方を含むグループに、計算された値を割り当てることができる。別の態様では、ブロック1906において、DCVS解決法は、第1のプロセッシングコアと第2のプロセッシングコアの組合せに対して性能保証値を計算し、第1のプロセッシングコアと第2のプロセッシングコアの両方を含むグループに、計算された値を割り当てることができる。   In block 1906, the DCVS solution calculates a performance guarantee value (eg, deadline value, budget value, jump-to-max value, etc.) for a processing group that includes a first processing core and a second processing core. can do. In an aspect, at block 1906, the DCVS solution calculates a performance guarantee value for the first processing core and calculates the calculated value to a group that includes both the first processing core and the second processing core. Can be assigned. In another aspect, at block 1906, the DCVS solution calculates a performance guarantee value for the combination of the first processing core and the second processing core, and both the first processing core and the second processing core. A calculated value can be assigned to a group containing.

ブロック1908において、DCVS解決法は、様々な性能要件を満たしながら安定状態の作業負荷のすべてのタスクを完了するために第1のプロセッシングコアに対して必要とされる時間または作業の量(たとえば、CPUサイクル、命令など)を計算することができる。ブロック1910において、DCVS解決法は、第1のプロセッシングコアが計算された初期動作周波数/電圧で(または計算された閾値の範囲内で)実行され、かつ/または様々なデバイスもしくはシステムの要件を満たすように、第1のプロセッシングコアをアイドル状態からビジー状態に移行することができる。ブロック1912において、DCVS解決法は、第1のプロセッシングコアの実際の作業負荷および/または動作周波数を監視して、必要に応じて(たとえば、デフォルトのクロックおよび電圧スケーリングアルゴリズムに従って)周波数/電圧を調整することができる。任意選択のブロック1914において、DCVS解決法は、第1のプロセッシングコアの現在の動作周波数/電圧に基づいて、グループに対する性能保証値を更新することができる。   In block 1908, the DCVS solution resolves the various performance requirements and the amount of time or work required for the first processing core to complete all the tasks of the steady state workload (e.g., CPU cycles, instructions, etc.) can be calculated. In block 1910, the DCVS solution is performed at the initial operating frequency / voltage at which the first processing core is calculated (or within the calculated threshold) and / or meets various device or system requirements. Thus, the first processing core can be shifted from the idle state to the busy state. In block 1912, the DCVS solution monitors the actual workload and / or operating frequency of the first processing core and adjusts the frequency / voltage as needed (eg, according to default clock and voltage scaling algorithms). can do. In optional block 1914, the DCVS solution may update the performance guarantee value for the group based on the current operating frequency / voltage of the first processing core.

判定ブロック1916において、DCVS解決法は、第1のプロセッサおよび第2のプロセッサが、決定された作業の量(すなわち、予測される安定状態の作業負荷のすべてのタスクを完了するためにプロセッシングコアに対して必要とされると決定された時間/作業の量)と性能保証値との合計以上である組み合わされた期間、予測される安定状態の作業負荷またはスレッドに関してビジー状態に留まっているかどうかを、判定することができる。プロセッシングコアが計算された時間/作業よりも長くビジー状態に留まっていないとDCVS解決法が判定すると(すなわち、判定ブロック1916=“No”)、ブロック1912において、DCVS解決法は、実際の作業負荷/周波数を監視し続け、必要なときに調整を行うことができる。   At decision block 1916, the DCVS solution causes the first processor and the second processor to process the determined amount of work (i.e., the predicted steady state workload to complete all tasks). The amount of time / work determined to be required) and the performance guarantee value or more, for a combined period of time, whether the expected steady state workload or thread remains busy Can be determined. If the DCVS solution determines that the processing core has not been busy longer than the calculated time / work (ie, decision block 1916 = “No”), in block 1912 the DCVS solution / Continue to monitor the frequency and make adjustments when needed.

第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, decision step 1916 = “Yes”), at block 1918, the DCVS solution increases the operating frequency / voltage of the first processing core or the second processing core. be able to. In various embodiments, the operating frequency / voltage of the first processing core or the second processing core may be increased to the maximum processor frequency or may be increased in stages.

様々な態様は、複数のプロセッサを有するコンピューティングデバイス上での性能を向上させる方法を含み、この方法は、第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のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップが、
前記第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つの前記周波数を上げるステップが、前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を段階的に上げるステップを含み、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第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.
前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが、期限値を計算するステップを含む、請求項1に記載の方法。   The method of claim 1, wherein calculating the performance guarantee value for the processing group that includes the first processor and the second processor comprises calculating a deadline value. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが、バジェット値を計算するステップを含む、請求項1に記載の方法。   The method of claim 1, wherein calculating the performance guarantee value for the processing group including the first processor and the second processor comprises calculating a budget value. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが、前記第1のプロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するステップを含む、請求項1に記載の方法。   Calculating the performance guarantee value for the processing group including the first processor and the second processor determining a requirement of a task scheduled to be executed on the first processor; The method of claim 1 comprising: ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するステップをさらに含む、請求項1に記載の方法。   The method of claim 1, further comprising generating a pulse train by sampling a transition between a busy state and an idle state. 前記第1のプロセッサの前記安定状態の作業負荷を決定するステップ、前記第1のプロセッサ上の前記安定状態の作業負荷を実行するために必要とされる前記作業の量を決定するステップ、前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップの動作が、単一のスレッドによって実行される、請求項1に記載の方法。 Determining the step of determining the workload of the steady state, the amount of the work that is required to run the workload of the stable state on the first processor of the first processor, the first operation of calculating the performance guarantee value for the processing group including first processor and the second processor, is executed by a single thread, the method according to claim 1. 前記単一のスレッドが前記第1のプロセッサ上で実行される、請求項8に記載の方法。   The method of claim 8, wherein the single thread is executed on the first processor. 前記単一のスレッドが前記コンピューティングデバイスの前記第2のプロセッサ上で実行される、請求項8に記載の方法。   The method of claim 8, wherein the single thread is executed on the second processor of the computing device. 第1のプロセッサと、
第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のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるための手段が、
前記第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つの前記周波数を上げるための手段が、前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を段階的に上げるための手段を含み、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第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.
前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するための手段が、期限値を計算するための手段を含む、請求項11に記載のコンピューティングデバイス。   12. The computing device of claim 11, wherein means for calculating the performance guarantee value for the processing group that includes the first processor and the second processor includes means for calculating a deadline value. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するための手段が、バジェット値を計算するための手段を含む、請求項11に記載のコンピューティングデバイス。   12. The computing device of claim 11, wherein the means for calculating the performance guarantee value for the processing group that includes the first processor and the second processor includes means for calculating a budget value. 前記第1のプロセッサおよび前記第2のプロセッサを含むプロセッシンググループに対する性能保証値を計算するための手段が、前記第1のプロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するための手段を含む、請求項11に記載のコンピューティングデバイス。   Means for calculating a performance guarantee value for a processing group including the first processor and the second processor for determining a requirement of a task scheduled to be executed on the first processor; 12. A computing device according to claim 11, comprising means. ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するための手段をさらに含む、請求項11に記載のコンピューティングデバイス。   The computing device of claim 11, further comprising means for generating a pulse train by sampling a transition between a busy state and an idle state. 前記第1のプロセッサの前記安定状態の作業負荷を決定し、前記安定状態の作業負荷を実行するために必要とされる前記作業の量を決定し、前記性能保証値を計算する動作を、単一のスレッドを介して遂行するための手段をさらに含む、請求項11に記載のコンピューティングデバイス。 Determining the workload of the stable state of the first processor, wherein to determine the amount of work that is required to perform the work load of the steady state, the behavior calculate the performance guarantee value The computing device of claim 11, further comprising means for performing via a single thread. 前記第1のプロセッサ上で前記単一のスレッドを実行するための手段をさらに含む、請求項18に記載のコンピューティングデバイス。   The computing device of claim 18, further comprising means for executing the single thread on the first processor. 前記コンピューティングデバイスの前記第2のプロセッサ上で前記単一のスレッドを実行するための手段をさらに含む、請求項18に記載のコンピューティングデバイス。   The computing device of claim 18, further comprising means for executing the single thread on the second processor of the computing device. 第1のプロセッサと、
第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のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップが、
前記第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つの前記周波数を上げるステップが、前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を段階的に上げるステップを含むように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成され、
前記一次プロセッサが、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第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.
前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが期限値を計算するステップを含むように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。   The primary processor is processor-executable such that the step of calculating the guaranteed performance value for the processing group including the first processor and the second processor includes an operation of calculating a deadline value. 24. The computing device of claim 21, configured by instructions. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップがバジェット値を計算するステップを含むように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。   The primary processor is processor executable such that the step of calculating the performance guarantee value for the processing group including the first processor and the second processor includes calculating a budget value. 24. The computing device of claim 21, configured by instructions. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが前記第1のプロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するステップを含むように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。   Calculating the performance guarantee value for the processing group including the first processor and the second processor includes determining a requirement of a task scheduled to be executed on the first processor. The computing device of claim 21, wherein the primary processor is configured with processor-executable instructions to perform operations. 前記一次プロセッサが、
ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項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のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算する前記動作が、単一のスレッドによって実行されるように動作を実行するように、前記一次プロセッサがプロセッサ実行可能命令によって構成される、請求項21に記載のコンピューティングデバイス。   Determining the steady state workload of the first processor, determining the amount of work required to execute the steady state workload on the first processor, and the first processor And the primary processor is configured with processor-executable instructions such that the operation of calculating the performance guarantee value for the processing group including the second processor is performed by a single thread. 24. The computing device of claim 21, wherein: 前記第1のプロセッサが前記一次プロセッサである、請求項28に記載のコンピューティングデバイス。   30. The computing device of claim 28, wherein the first processor is the primary processor. 前記第2のプロセッサが前記一次プロセッサである、請求項28に記載のコンピューティングデバイス。   30. The computing device of claim 28, wherein the second processor is the primary processor. 一次プロセッサに動作を実行させるように構成される、プロセッサ実行可能ソフトウェア命令が記憶された、非一時的コンピュータ可読記憶媒体であって、前記動作が、
第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のプロセッサが前記ビジー状態に留まっていると判定されたときに、前記第1のプロセッサおよび前記第2のプロセッサのうちの1つの前記周波数を上げるステップが、
前記第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つの前記周波数を上げるステップが、前記第1のプロセッサまたは前記第2のプロセッサの前記周波数を段階的に上げるステップを含むように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令が、
スケーリングされた周波数に基づいて前記性能保証値を更新し、
前記決定された作業の量と前記性能保証値の合計以上である組み合わされた期間、前記第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.
前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが期限値を計算するステップを含むように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。   Calculating the performance guarantee value for the processing group including the first processor and the second processor to calculate an expiration value so that the primary processor performs an operation. 32. The non-transitory computer readable storage medium of claim 31, wherein programmed processor executable software instructions are configured. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップがバジェット値を計算するステップを含むように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。   The storage for causing the primary processor to perform an operation such that calculating the performance guarantee value for the processing group including the first processor and the second processor includes calculating a budget value. 32. The non-transitory computer readable storage medium of claim 31, wherein programmed processor executable software instructions are configured. 前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算するステップが前記第1のプロセッサ上で実行されるようにスケジューリングされるタスクの要件を決定するステップを含むように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。   Calculating the performance guarantee value for the processing group including the first processor and the second processor includes determining a requirement of a task scheduled to be executed on the first processor. 32. The non-transitory computer readable storage medium of claim 31, wherein the stored processor executable software instructions are configured to cause the primary processor to perform an operation. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、
ビジー状態とアイドル状態との間の移行をサンプリングすることによって、パルス列を生成するステップをさらに含む動作を前記一次プロセッサに実行させるように構成される、請求項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.
前記第1のプロセッサの前記安定状態の作業負荷を決定し、前記第1のプロセッサ上で安定状態の作業負荷を実行するために必要とされる前記作業の量を決定し、前記第1のプロセッサおよび前記第2のプロセッサを含む前記プロセッシンググループに対する前記性能保証値を計算する動作が単一のスレッドによって実行されるように、前記一次プロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能ソフトウェア命令が構成される、請求項31に記載の非一時的コンピュータ可読記憶媒体。   Determining the steady state workload of the first processor, determining the amount of work required to execute the steady state workload on the first processor, and the first processor And the stored processor executable to cause the primary processor to perform an operation such that the operation of calculating the performance guarantee value for the processing group including the second processor is performed by a single thread. 32. The non-transitory computer readable storage medium of claim 31, wherein software instructions are configured. 前記第1のプロセッサが前記一次プロセッサである、請求項38に記載の非一時的コンピュータ可読記憶媒体。   40. The non-transitory computer readable storage medium of claim 38, wherein the first processor is the primary processor. 前記第2のプロセッサが前記一次プロセッサである、請求項38に記載の非一時的コンピュータ可読記憶媒体。   40. The non-transitory computer readable storage medium of claim 38, wherein the second processor is the primary processor.
JP2015555992A 2013-02-05 2013-09-25 System and method for controlling central processing unit power with guaranteed transient deadlines Active JP5982588B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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