JP6162350B1 - 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム - Google Patents

性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム Download PDF

Info

Publication number
JP6162350B1
JP6162350B1 JP2016568006A JP2016568006A JP6162350B1 JP 6162350 B1 JP6162350 B1 JP 6162350B1 JP 2016568006 A JP2016568006 A JP 2016568006A JP 2016568006 A JP2016568006 A JP 2016568006A JP 6162350 B1 JP6162350 B1 JP 6162350B1
Authority
JP
Japan
Prior art keywords
processor
computing device
core
current leakage
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016568006A
Other languages
English (en)
Other versions
JP2017521752A (ja
Inventor
ラジャット・ミッタル
メヘディ・サエイディ
タオ・シュエ
ロナルド・フランク・アルトン
ラジット・チャンドラ
サチン・ダスヌルカール
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6162350B1 publication Critical patent/JP6162350B1/ja
Publication of JP2017521752A publication Critical patent/JP2017521752A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

態様は、コンピューティングデバイスの状態についての好ましいプロセッサコア組合せを選択するためのコンピューティングデバイス、システム、および方法を含む。一態様では、マルチコアプロセッサを包含するコンピューティングデバイスの状態が決定され得る。いくつかの電流漏れ比は、プロセッサコアの電流漏れをその他のプロセッサコアの電流漏れと比較することによって、決定され得る。比は、それぞれの不等式において、コンピューティングデバイスの状態の境界と比較され得る。いくつかの境界に関連付けられたプロセッサコアは、それぞれの不等式が真であると決定したことに応答して、選択され得る。境界は、コンピューティングデバイスの関連する状態について好ましいと見なされたプロセッサコアのセットに関連付けられ得る。真の不等式の境界ごとのプロセッサコアのセットに存在するプロセッサコアは、選択されたプロセッサコアであり得る。

Description

関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2014年5月20日に出願された「Algorithm For Preferred Core Sequencing To Maximize Performance And Reduce Chip Temperature」という名称の米国仮出願第62/000,855号の優先権の利益を主張する。
薄型システム(たとえば、スマートフォンおよびタブレット)におけるより多くの性能に対する要求が高まっている。この要求に対する業界の対応は、性能を改善するために、プロセッサチップ上により多くのプロセッサコアを追加することであった。追加のプロセッサコアは、より高い性能を提供することができるが、プロセッサコアの増加は、より多くの電力の使用をもたらし、このことは、より高い温度およびより短いバッテリー寿命の原因となる。より高い温度およびより短いバッテリー寿命は、信頼性およびユーザエクスペリエンスに悪影響を及ぼす。
プロセッサコアの数に関係なく、大半のユーザアプリケーションは、依然として、処理が2つのコアだけに集中する(すなわち、デュアルプロセッサコア集約的)ように書かれており、したがって、より多くのプロセッサコアを追加することは、より良いユーザエクスペリエンス/性能に直接つながらない場合がある。たとえば、クワッドプロセッサシステムでは、プロセッサコアのうちの2つは、処理集約的なユーザアプリケーションに使用されない場合がある。さらに、ユーザアプリケーションを処理するために選択されたプロセッサコアの組合せは、アプリケーションにとって好ましいプロセッサコアではない場合がある。
様々な態様の方法および装置は、性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのための回路および方法を提供する。態様方法は、コンピューティングデバイスの状態を決定するステップと、複数のプロセッサコアの各々の電流漏れを複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップと、複数の不等式において、複数の電流漏れの比をコンピューティングデバイスの状態に対応する複数の境界値と比較するステップと、複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップとを含み得る。
一態様では、複数のプロセッサコアの各々の電流漏れを複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップは、第1のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第1の電流漏れの比を決定するステップと、第3のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第2の電流漏れの比を決定するステップとを含み得、複数の不等式において、複数の電流漏れの比をコンピューティングデバイスの状態に対応する複数の境界値と比較するステップは、第1の不等式において、第1の比をコンピューティングデバイスの状態に対応する第1の境界値と比較するステップと、第2の不等式において、第2の電流漏れの比をコンピューティングデバイスの状態に対応する第2の境界値と比較するステップとを含み得、複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップは、第1の不等式および第2の不等式が真であると決定したことに応答して、第1の境界値および第2の境界値に関連付けられた好ましいプロセッサコアを選択するステップを含み得る。
一態様方法は、各々がコンピューティングデバイスの状態に関連付けられた複数の境界値と、コンピューティングデバイスの状態の間に使用するのに好ましいと決定されたプロセッサコアのセットとを記憶するステップと、コンピューティングデバイスの状態についての複数の境界値をロードするステップとを含み得る。
一態様方法は、マルチコアプロセッサのストレージデバイスから複数のプロセッサコアの電流漏れを取り出すステップを含み得る。
一態様では、少なくとも2つの不等式が真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップは、少なくとも2つの境界値に関連付けられたプロセッサコアの複数のセットを取り出すステップと、プロセッサコアの複数のセットの各々をプロセッサコアの複数のセット内の他のセットと比較するステップと、プロセッサコアの複数のセット内のプロセッサコアの少なくとも2つのセットに存在するプロセッサコアを選択するステップとを含み得る。
一態様では、コンピューティングデバイスの状態を決定するステップは、コンピューティングデバイスの現在の状態またはコンピューティングデバイスの予測された状態を選択するステップを含み得る。
一態様方法は、別のプロセッサコアと組み合わせてタスクを実行するために、選択されたプロセッサコアを確保するステップを含み得る。
一態様方法は、プロセッサコアブリングアップシーケンスを作成するステップであって、選択されたプロセッサコアがプロセッサコアブリングアップシーケンスにおいて次である、ステップを含み得る。
一態様では、複数のプロセッサコアの各々の電流漏れを複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップは、複数の電流漏れの比がIDDqi+1/IDDqi、IDDqi+2/IDDqi、IDDqi+3/IDDqi、IDDqi+4/IDDqi、...IDDqn/IDDqiを含むように、複数のプロセッサコアの各々について複数の電流漏れの比を静止状態でのデジタル領域における静的な電流漏れ(IDDq)の比として表すステップを含み得る。
一態様は、上記で説明した態様方法のうちの1つまたは複数の動作を実行するためのプロセッサ命令で構成されたプロセッサを有するコンピューティングデバイスを含む。
一態様は、上記で説明した態様方法のうちの1つまたは複数の動作をプロセッサに実行させるプロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読媒体を含む。
一態様は、上記で説明した態様方法のうちの1つまたは複数の機能を実行するための手段を有するコンピューティングデバイスを含む。
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示し、上記の概略的な説明および下記の詳細な説明とともに、本発明の特徴を説明するのに役立つ。
一態様を実装するのに適したコンピューティングデバイスを示す構成要素ブロック図である。 一態様を実装するのに適した例示的なマルチコアプロセッサを示す構成要素ブロック図である。 一態様による、コンピューティングデバイスの様々な状態についての好ましいプロセッサコア組合せを選択するように構成されたシステムオンチップ(「SoC」)を示す構成要素ブロック図である。 一態様による、コンピューティングデバイスの状態についての多数のプロセッサのシミュレーションの結果のセットのプロットの一例である。 のプロットの一例である。 プロセッサコア組合せ選択境界を作るための一態様方法を示すプロセスフロー図である。 コンピューティングデバイスの状態についての好ましいプロセッサコア組合せを選択するための一態様方法を示すプロセスフロー図である。 コンピューティングデバイスの状態についての好ましいプロセッサコア組合せを動的に決定するための一態様方法を示すプロセスフロー図である。 様々な態様とともに使用するのに適した例示的なモバイルデバイスを示す構成要素ブロック図である。 様々な態様とともに使用するのに適した例示的なモバイルデバイスを示す構成要素ブロック図である。 様々な態様とともに使用するのに適した例示的なサーバデバイスを示す構成要素ブロック図である。
添付の図面を参照しながら、様々な態様について詳細に説明する。可能な限り、同じまたは同様の部分を指すために図面全体を通じて同じ参照番号が使用される。特定の例および実装形態に対して行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
「コンピューティングデバイス」および「モバイルデバイス」という用語は、セルラー電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、ワイヤレスゲームコントローラ、ならびに、メモリおよびマルチコアプログラマブルプロセッサを含む同様のパーソナル電子デバイスのいずれか1つまたはすべてを指すために本明細書で互換的に使用される。様々な態様は、限られたリソースを有するスマートフォンなどのモバイルコンピューティングデバイスに特に有用であるが、本態様は一般に、複数のメモリデバイスおよび限られた電力バジェットを実装する任意の電子デバイスにおいて有用であり、この場合、プロセッサの電力消費を低減することは、モバイルコンピューティングデバイスのバッテリー動作時間を延ばすことができる。
「システムオンチップ」(SoC)という用語は、一般に、限定はしないが、ハードウェアコア、メモリ、および通信インターフェースを含む相互接続された電子回路のセットを指すために本明細書で使用される。ハードウェアコアは、汎用プロセッサ、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、補助プロセッサ、シングルコアプロセッサ、およびマルチコアプロセッサなどの様々な異なるタイプのプロセッサを含み得る。ハードウェアコアは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASCI)、他のプログラマブル論理デバイス、個別ゲート論理、トランジスタ論理、性能監視ハードウェア、ウォッチドッグハードウェア、および時間基準などの他のハードウェアおよびハードウェアの組合せをさらに具現化し得る。集積回路は、集積回路の構成要素がシリコンなどの単体の半導体材料上に存在するように構成され得る。
一態様では、特定の作業負荷、温度、電力、または周波数などのシステムの特定の状態について、マルチコアプロセッサの好ましいプロセッサコアが決定され得る。タスクを実行するための好ましいプロセッサコアを選択することは、プロセッサコアの電力消費および温度を低減し得る、かつ/または、プロセッサコアの性能を高め得る。好ましいプロセッサコアを決定するためのプロセスはまた、好ましいプロセッサコアのパワーアップシーケンス、すなわちブリングアップシーケンスを決定し得る。特定の作業負荷用に確保されるプロセッサコアの数(「m」個)に課される制限がない「n」個のプロセッサコアを有するマルチコアプロセッサの場合、合計でnCm個の(すなわち、nがmを選ぶ)確保されるプロセッサコアの可能な組合せがあり得る。たとえば、特定の作業負荷用に確保されるプロセッサコアの数に制限がないクワッドコアプロセッサ(すなわち、4つの処理コアを含むプロセッサ)では、確保されるプロセッサコアの合計の可能な組合せは4C4(すなわち、4が4を選ぶ)とすることができる。特定の作業負荷用に確保されるプロセッサコアの数が制限される一態様では、値mは確保されるプロセッサコアの上限であり得る。たとえば、2プロセッサコア制限を有する(すなわち、特定の作業負荷用に2つのプロセッサコアが確保され得る)クワッドコアプロセッサでは、確保されるプロセッサコアの合計の可能な組合せは4C2(すなわち、4が2を選ぶ)とすることができる。
一態様では、特定のチップまたはチップの製造ロットについて決定され得る、チップまたはSoCの製造業者によって決定されたパラメータと比較した各プロセッサコアとその他のプロセッサコアの各々との電流漏れの比に基づいて、利用可能なプロセッサコアの考えられる組合せのすべての中から、システムの特定の状態について、マルチコアプロセッサの好ましいプロセッサコアが選択され得る。プロセッサコアごとの、静的な電流漏れとしても知られる電流漏れは、製造業者によってあらかじめ決定され、マルチコアプロセッサ上のROMに記憶され得る。プロセッサコアが非同期である一態様では、この決定は、それぞれのプロセッサコアの電圧とプロセッサコアの静的な漏れの関数としての電流漏れの比に基づき得る。別の態様では、マルチコアプロセッサを含むコンピューティングデバイスは、温度および/または周波数と相関した漏れ電流のテーブルを作るために、異なる負荷を処理するときのプロセッサコアの電流漏れまたは電力消費、ならびに温度および/または動作周波数を測定することによって、各プロセッサコアの電流漏れを決定し得る。
一態様では、プロセッサコアの各々の電流漏れの比(デジタル領域における静止状態でのプロセッサコアの電流であるIDDq)は、比のプロセッサコアの組合せについて、電流漏れ比を作業負荷、温度、電力、または周波数などの1つまたは複数の指定されたパラメータの所定の値と比較する不等式において使用され得る。所定の値は、指定されたパラメータについてのプロセッサコアの好ましい使用のための境界を定義し得、好ましい使用は、最小電力消費、最大性能、または両方の考慮事項の組合せに基づく。これらの境界値は、異なる動作条件下で漏れ電流(IDDq)値を取得するために多数のSoCをテストし、結果を異なるプロセッサコア組合せの比としてプロットすることによって決定され得る。結果は、製造ばらつきによるプロセッサコア性能のばらつきによって動かされる散布プロットであり得る。
図4に関して以下でより詳細に説明するように、そのような漏れ電流(IDDq)値は、プロセッサコア電流漏れ値の比として定義され得る定義された境界(破線)を有するプロット内の領域に集中する場合がある。定義された境界は、プロセッサコアのペアが選択され得る特定のシステム状態および条件でのテストデータにおいて発見される場合がある境界に対応し得る。データ領域は、様々な条件において選択すべき、より良いプロセッサコアのペア(すなわち、特定の動作条件または状態において選択すべき、2つの最良のコア)を示し得る。マルチコアプロセッサがあるデータ領域は、電流漏れ比によって決定され得る。プロセッサが動作しているデータ領域は、比を計算し、比がその内に収まる不等式を決定することによって、すぐに識別され得る。各温度または動作条件について異なる散布プロットの解析が行われ得、識別された境界比値は、好ましいプロセッサコアの境界比を温度/動作条件と相関させるテーブルとして記憶され得る。このテーブルは、すべてのプロセッサが利用可能な、または少なくとも、スレッドおよびアプリケーションの処理をスケジュールし、したがって、様々なアプリケーションを処理するためのプロセッサコアを選択するカーネルまたはスケジューラを実行するプロセッサが利用可能なROMに記憶され得る。
一態様では、電流漏れを測定し、現在の動作条件下で特定のアプリケーションを実行するための最良のコアのペア(特定のアプリケーションが実行するプロセスのタイプに依存する場合がある)を選択するために境界比のデータテーブルを利用するカーネルまたはスケジューラにおいて、アルゴリズムが実装され得る。一態様では、このアルゴリズムは、現在の温度または動作状態を決定することと、データ領域境界と各データ領域に関連付けられた好ましいプロセッサコアとを定義する比境界値を取得するためにROMにおいてテーブル検索を実行することとを伴い得る。アルゴリズムは、(動的な態様では)プロセッサコアの電流漏れ(IDDq)を測定することまたは(静的な態様では)ROMから値を検索することと、必要なプロセッサコアと組み合わせるべき異なる代替プロセッサコアの漏れ値比を計算することと、特定のアプリケーションを実行するために使用すべきプロセッサコア組合せを選択するために、計算された漏れ値比をテーブル検索から決定された比境界値と比較することとをさらに含み得る。プロセッサコア組合せを選択することは、漏れ値比がその内に収まるデータ領域に基づいて、使用すべき2つのプロセッサコアを選択することを伴い得る。このアルゴリズムは、プロセッサコアのペアの選択がシステムの状態とともに変化することを可能にする。
温度または動作状態に基づいてプロセッサコアのペアを選択することに加えて、一態様のアルゴリズムは選択をアプリケーションが必要とする処理の性質に基づかせ得る。たとえば、プロセッサ集約的な動作(たとえば、ほとんど待ち状態がない、多くの複雑な計算)を伴うアプリケーションは、ある一定の温度および/または動作条件下で、1つのプロセッサコアのペアを用いてより良く実行し得るが、異なるプロセッサコアのペアは、より多くのメモリアクセスおよびより少ない計算(および、したがって、より少ない熱が発生する多くの待ち状態)を伴うアプリケーションを実行する同じ温度および/または動作条件下で、より良く実行し得るか、またはより多くの電力を節約し得る。別の例として、大量のグラフィックス処理を伴うアプリケーション(たとえば、ゲーム)は、熱を発生させるグラフィックス処理ユニット(GPU)から遠く離れたところにあるプロセッサコアのペアを使用して最も良く動作し得るが、グラフィックス処理をほとんどまたはまったく伴わないアプリケーション(たとえば、通信アプリケーション)は、GPUにより近いところにあるプロセッサコアのペアを使用して最も良く動作し得る。したがって、特定のタイプのアプリケーションまたは処理要求についての処理コアの最良のペアの選択は、SoC設計に依存し得る。
アプリケーションを実行するためのプロセッサコアを選択するカーネルまたはスケジューラを実行するプロセッサは、不等式において所定の値と都合よく比較する比に基づいて、プロセッサコアを選択し得る。プロセッサコアのためのパワーアップシーケンス、すなわちブリングアップシーケンスは、最も好ましいプロセッサコアから最も好ましくないプロセッサコアの順でプロセッサコアをパワーアップすることを選択することによって、決定され得る。
図1は、様々な態様とともに使用するのに適した、リモートコンピューティングデバイス50と通信しているコンピューティングデバイス10を含むシステムを示す。コンピューティングデバイス10は、プロセッサ14、メモリ16、通信インターフェース18、およびストレージインターフェース20を有するSoC12を含み得る。コンピューティングデバイスは、ワイヤードモデムまたはワイヤレスモデムなどの通信構成要素22、ストレージ構成要素24、ワイヤレスネットワーク30へのワイヤレス接続32を確立するためのアンテナ26、および/またはインターネット40へのワイヤード接続44に接続するためのネットワークインターフェース28をさらに含み得る。プロセッサ14は、様々なハードウェアコアのいずれか、ならびにいくつかのプロセッサコアを含み得る。SoC12は、1つまたは複数のプロセッサ14を含み得る。コンピューティングデバイス10は、1つまたは複数のSoC12を含み、それによって、プロセッサ14およびプロセッサコアの数を増加させ得る。コンピューティングデバイス10はまた、SoC12に関連付けられていないプロセッサコア14を含み得る。個々のプロセッサ14は、図2を参照しながら以下で説明するようなマルチコアプロセッサであり得る。プロセッサ14はそれぞれ、コンピューティングデバイス10の他のプロセッサ14と同じであってもよく、またはそれらとは異なっていてもよい特定の目的のために構成され得る。同じまたは異なる構成のプロセッサ14およびプロセッサコアのうちの1つまたは複数は、一緒にグループ化されてもよい。
SoC12のメモリ16は、プロセッサ14がアクセスするためのデータおよびプロセッサ実行可能コードを記憶するように構成された揮発性または不揮発性メモリであり得る。一態様では、メモリ16は、コンピューティングデバイスの様々な状態でのプロセッサコアの様々な好ましい組合せについての境界の所定の値を管理するためのテーブルなどのデータ構造を少なくとも一時的に記憶するように構成され得る。境界値のテーブルが製造業者によって決定および記憶される態様では、メモリ16は、SoC12の動作寿命についてのデータテーブルを保持するために、不揮発性読取り専用メモリ(ROM)を含む。
コンピューティングデバイス10および/またはSoC12は、様々な目的のために構成された1つまたは複数のメモリ16を含み得る。一態様では、1つまたは複数のメモリ16は、所定の値を包含するデータ構造を記憶することに特化するように構成され得る。メモリ16は、テーブルデータがコンピューティングデバイスのプロセッサコアのすべてまたはグループからの好ましいプロセッサコアの選択を管理するために使用され得るように、データ構造情報がアプリケーションを実行するためのプロセッサコアを選択するカーネルまたはスケジューラを実行するプロセッサによってアクセスされるのを可能にする方法で、所定の値を記憶し得る。一態様では、メモリ16は、選択されたプロセッサコアと同じSoC12上にあってもよく、異なるSoC12上にあってもよい。メモリ16はまた、SoC12などの、コンピューティングデバイス10の任意の他の構成要素と統合されない、コンピューティングデバイス10の別個の構成要素であってもよい。一態様では、リモートサーバなどの、コンピューティングデバイス10とは異なるコンピューティングデバイス上のメモリデバイスは、上記で説明したように、データおよびプロセッサ実行可能コードを記憶し、コンピューティングデバイス10に提供するために利用され得る。
通信インターフェース18、通信構成要素22、アンテナ26、および/またはネットワークインターフェース28は、コンピューティングデバイス10がワイヤレス接続32を介してワイヤレスネットワーク30上でおよび/またはワイヤードネットワーク44上でリモートコンピューティングデバイス50と通信することが可能になるように、一体となって動作し得る。ワイヤレスネットワーク30は、コンピューティングデバイス10にリモートコンピューティングデバイス50とデータを交換する場合の手段であるインターネット40への接続を提供するために、たとえば、ワイヤレス通信に使用される無線周波数スペクトルを含む様々なワイヤレス通信技術を使用して実装され得る。
ストレージインターフェース20およびストレージ構成要素24は、コンピューティングデバイス10が不揮発性記憶媒体上にデータを記憶することが可能になるように、一体となって動作し得る。ストレージ構成要素24は、データ構造情報が1つまたは複数のプロセッサ14によってアクセスされ得るように、ストレージ構成要素24がデータ構造を記憶し得るメモリ16の一態様とほとんど同じように構成され得る。不揮発性であるストレージ構成要素24は、コンピューティングデバイス10の電源が切断された後でもデータ構造情報を保持し得る。電源が再び投入され、コンピューティングデバイス10が再起動すると、コンピューティングデバイス10がストレージ構成要素24上に記憶されたデータ構造情報を利用できるようになり得る。ストレージインターフェース20は、ストレージ構成要素24へのアクセスを制御し、プロセッサ14がストレージ構成要素24からデータを読み取り、ストレージ構成要素24にデータを書き込むことを可能にし得る。
コンピューティングデバイス10の構成要素のいくつかまたはすべては、依然として必要な機能を果たしながら、別様に配置および/または結合され得る。さらに、コンピューティングデバイス10は、構成要素の各々の1つに限定されなくてもよく、各構成要素の複数のインスタンスは、コンピューティングデバイス10の様々な構成に含まれ得る。
図2は、一態様を実装するのに適したマルチコアプロセッサ14を示す。マルチコアプロセッサ14は、複数の同種または異種のプロセッサコア200、201、202、203を有し得る。単一のプロセッサ14のプロセッサコア200、201、202、203が、同じ目的のために構成され、同じまたは同様の性能特性を有し得るという点で、プロセッサコア200、201、202、203は同種であり得る。たとえば、プロセッサ14は汎用プロセッサであってもよく、プロセッサコア200、201、202、203は同種の汎用プロセッサコアであってもよい。代替的に、プロセッサ14はグラフィックス処理ユニットまたはデジタル信号プロセッサであってもよく、プロセッサコア200、201、202、203はそれぞれ、同種のグラフィックスプロセッサコアまたはデジタル信号プロセッサコアであってもよい。
製造プロセスおよび材料のばらつきにより、同種のプロセッサコア200、201、202、203の性能特性は、同じマルチコアプロセッサ14内または同じ設計のプロセッサコアを使用する別のマルチコアプロセッサ14内のプロセッサコアによって異なる場合がある。
単一のプロセッサ14のプロセッサコア200、201、202、203が、異なる目的のために構成され、かつ/または異なる性能特性を有し得るという点で、プロセッサコア200、201、202、203は異種であり得る。したがって、例示的なプロセッサコアは、同じまたは異なる性能特性を有しながら、同じまたは異なる目的のために構成され得る。例示的な異種のプロセッサコアは、低速で低電力のプロセッサコアがより強力で電力を大量に消費するプロセッサコアと結合され得る「big.LITTLE」アーキテクチャとして知られているものを含み得る。
図2に示す例では、マルチコアプロセッサ14は、4つのプロセッサコア200、201、202、203(すなわち、プロセッサコア0、プロセッサコア1、プロセッサコア2、およびプロセッサコア3)を含む。説明を容易にするために、本明細書の例は、図2に示す4つのプロセッサコア200、201、202、203を参照し得る。ただし、図2に示し、本明細書で説明する4つのプロセッサコア200、201、202、203は一例として提供されるものにすぎず、決して4コアプロセッサシステムに対する様々な態様を意図するものではない。コンピューティングデバイス10、SoC12、またはマルチコアプロセッサ14は、図示し本明細書で説明する4つのプロセッサコア200、201、202、203よりも少ないまたは多いプロセッサコアを個々にまたは組合せで含む。
図3は、コンピューティングデバイスの様々な状態についての好ましいプロセッサコア組合せを選択するように構成されたSoC12を示す。SoC12は、たとえば、4つのプロセッサコア200、201、202、203を包含するマルチコア汎用プロセッサであってもよいプロセッサ14などの、上記で説明したような多数の構成要素を含み得る。SoC12は、第1のDSP 1 308、第2のDSP 2 310、モデム312、GPU314、ビデオサブシステム316、ワイヤレスローカルエリアネットワーク(WLAN)トランシーバ318、およびビデオフロントエンド(VFE)サブシステム320などの他の構成要素をさらに含み得る。
SoC12上の構成要素の各々は、SoC12の基板上の物理的空間を占め、開発および製造の間に考慮される様々なパラメータに従ってSoC12上に配置される。SoC12上の構成要素の配置は、構成要素の性能、特にそれらの動作温度に影響を及ぼし得る。コンピューティングデバイスが動作しているとき、SoC12の構成要素によって熱が発生し、この熱はSoC12およびコンピューティングデバイスから放散されなければならない。構成要素の動作温度は、それ自体の電力放散(自己発熱)および周囲の構成要素の温度作用(相互発熱)によって影響され得る。相互発熱構成要素は、温度を生じるSoC12上のものなら何でも含み得る。したがって、SoC12上の各構成要素の動作温度は、ヒートシンクと、熱を発生させるSoC上のその他の構成要素とに対するその配置に依存することになる。たとえば、グラフィックス集約的なアプリケーションが実行中であるとき、プロセッサ14およびGPU314は両方とも、かなりの熱を発生させる場合がある。これらの構成要素がすぐ近くに配置されている場合、一方の構成要素は、動作中にそれが生じる熱により、他方の構成要素の性能に支障を来す場合がある。したがって、図3に示すように、プロセッサ14およびGPU314は、他方の構成要素に対する一方の構成要素の熱暴露が低減され得るほど十分に互いから遠く離れるように配置され得る。それにもかかわらず、いくつかのプロセッサコア(たとえば、コア2 202)はGPU314のより近くに配置される場合があり、したがって、遠く離れたところにあるプロセッサコア(たとえば、コア0 200)よりも、GPUによって発生した熱による影響を多く受ける場合がある。
SoC12は、熱をSoC12およびその構成要素から消散させるための(SoC12の取付面上に配置されたヒートシンクを例示するために破線で示した)ヒートシンク330を含み得る。ヒートシンク330は、設計に応じてSoC12内の異なる場所に配置され得るが、ヒートシンクの一般的な場所は、図示のように、SoC12の中心の近くである。熱はヒートシンク330に達するためにSoC12を通らなければならないので、ヒートシンクから遠く離れたところにあるそれらの構成要素(たとえば、コア0 200)は、動作中に、ヒートシンクに隣接して配置された構成要素(たとえば、コア2 202)よりも高い動作温度を示す場合がある。
マルチコアプロセッサ14のプロセッサコア200、201、202、203はすぐ近くに収容され得るので、様々な構成要素に対する熱の影響は、これらのプロセッサコアについて特によく見られることがある。電流漏れはプロセッサコアの温度と相関することが多いので、熱が高くなるにつれて、プロセッサコアの効率がますます落ちる可能性がある。動作中、プロセッサコアは、その性能に影響を及ぼす場合があるいくらかの熱を発生させ、近隣の動作しているプロセッサコアおよび/または他の構成要素の熱を受ける場合がある。プロセッサコア200、201、202、203のうちのいくつかのコアは、ヒートシンク330のより近くに配置される場合があり(たとえば、コア202)、したがって、その他のプロセッサコア(たとえば、コア201、202、203)よりも良く熱を放散できる可能性がある。したがって、ヒートシンク330から遠くに配置されたプロセッサコア201、202、203は、熱を放散しない場合もあるので、計算集約的なプロセス(すなわち、ほとんど待ち状態を伴わないプロセス)の間、より高い温度で動作する可能性がある。一般に、ヒートシンクのより近くに配置されたプロセッサコア200、201、202、203は、それ自体の熱発生およびその他の構成要素によって発生した熱の影響をあまり被らない。
上記で説明した熱発生および放散の影響は設計に依存し、プロセッサの数および配置、ヒートシンクの熱伝導特性および配置、ならびにSoCの構成材料に応じて、SoC設計ごとに異なる。したがって、処理コアのペアを選択するためのアルゴリズムは、設計上の差を考慮すべきである。
設計上の差に加えて、製造ばらつきは、SoC12中の様々な構成要素の動作温度、効率および処理速度にかなりの影響を及ぼす場合がある。そのようなばらつきは、異なる温度および動作条件下で特定の動作を実行するためのプロセッサコアの最良の選択に影響を及ぼす場合がある。いくつかのプロセッサコア200、201、202、203は、より良いまたはより悪い電流漏れ、および、したがって、熱発生を示す場合がある。また、プロセッサコアの熱放散特性は、ロットによって異なり得る。同様に、ヒートシンク330の熱放散性能は、SoCによっておよびロットによって異なり得る。ヒートシンク330の最も近くにあるプロセッサコア202がより悪い電流漏れ特性を有するSoC12では、その配置に起因する効率において期待される利益は、何らかの温度および動作条件におけるその電流漏れ特性によって打ち消される場合がある。したがって、ロットによるばらつきを考慮していない、所与の設計のSoCについてあらかじめ設定されたプロセッサコアのペアの選択に単に依拠することは、ある状況下では、最適ではない選択をもたらし得る。
図4Aは、コンピューティングデバイスの状態についての多数のプロセッサのシミュレーションの結果をプロットするグラフ400aを示す。プロセッサの製造業者は、所与の設計または製造ロットからのプロセッサのサンプルに対して動作テストを実行し、電圧漏れ、動作温度、および動作性能について得られた情報を使用して、コンピューティングデバイスの様々な状態においてプロセッサ性能のシミュレーションを実施し得る。テストされ、シミュレートされる状態は、温度、作業負荷(たとえば、計算集約性)、電力可用性、電力消費、および動作周波数などの変数を含み得る。これらの変数の各々の様々なレベルおよび/または組合せについてのシミュレーションは、ロットテストデータを使用して、所与のSoC設計におけるプロセッサおよび/またはプロセッサコア組合せの各々に対して実施され得る。製造ばらつきにより、SoC中のプロセッサのプロセッサコアの各々は、様々な動作条件および処理作業負荷下で異なる熱発生および動作温度を示し得る。そのようなばらつきは、所与のロットからの多数のサンプルチップに対してテストを行うことによって観測され得る。異なる動作温度において異なる動作条件(たとえば、変動するプロセッサ作業負荷)下でサンプルチップを動作させ、電流漏れおよび/または温度を測定することによって、サンプルデータのデータベースが取得され得る。シミュレーションはまた、異なる動作温度および動作条件に対処するサンプルセットを拡大するために、このデータを使用して実施され得る。
そのようなテストおよびシミュレーションを実行することによって、特定の設計向けの所与のロット内で、プロセッサ温度および性能の結果が領域に集中する傾向があることが観測された。これは、2つのコアの漏れ電流の比、特に、シミュレーションにおいてテストされたチップごとの、コア0とコア1の漏れ電流の比、コア0とコア2の漏れ電流の比、およびコア0とコア3の漏れ電流の比のプロットを示す図4Aに示されている。グラフ400aにプロットされた各点は、シングルチップの比較の結果であり得る。図4Aに示すように、テストおよびシミュレーションの結果のいくつかのグルーピングが決定され得、図4Bに示すようなプロットされたデータの領域を取り囲む境界408、410、412が描かれ得る。これらの境界408、410、412は、シミュレーションに使用されるタイプのチップのプロセッサコアについての好ましいペアリングを示す、テストおよびシミュレーションのデータの領域を定義する比値として使用され得る。
ロットテストデータに基づくシミュレーションの結果を使用して、プロセッサコアの好ましいペアリングは、様々な基準に基づく動作状態ごとに選ばれ得る。様々な態様では、好ましい組合せにおけるプロセッサコアの数はあらかじめ決定され得るか、またはシミュレーションの結果に基づいて決定され得る。様々な態様では、好ましい組合せにおけるプロセッサコアは、処理速度、電力消費、温度、電流漏れ、または、これらの要因の組合せに基づく効率のいくつかのレベルを示す結果に基づいて選択され得る。シミュレートされた状態ごとに、異なる散布プロットが生成され、動作条件ごとのプロセッサコアの好ましい組合せを選択するために使用され得る境界線を識別するために使用され得る。好ましいプロセッサコアを解析するために、各プロセッサコアのパラメータは、プロセッサコアのうちの別のものの同じパラメータと比較され得る。図4Bはこれらのパラメータをプロセッサコアの各々の電流漏れ(IDDq)であるものとして示しているが、様々な態様では、パラメータは、処理速度、電力消費、温度、電流漏れ、またはこれらのパラメータの組合せに基づく効率を含み得る。解析の結果を比較することによって、結果のある一定の範囲内でプロセッサコアのいくつかの組合せが好ましい場合があるパターンが決定され得る。説明を容易にするために、電流漏れであるプロセッサコアのパラメータに関して、本明細書の例について説明するが、決して限定することを意図するものではない。
図4Aの散布プロットグラフ400aは、所与のSoCのための処理コアの性能のテスト解析およびシミュレーション解析に基づいて特定の状態についてのプロセッサコアの好ましい組合せを選択するために使用され得る、図4Bに示す相対値境界を定義するために、テストおよびシミュレーションの結果がどのように使用され得るかを示す。これらの結果、特に識別された境界線は、測定可能なパラメータに依存する好ましいプロセッサコア組合せの領域と見なされ得る。これは、図4Bにおいて、上記で説明したパラメータ(たとえば、電流漏れ)およびパラメトリック境界線408、410、412によって定義された、クワッドコアプロセッサの特定の状態についての好ましい2コア組合せの領域をプロットするグラフ400bに示されている。この例では、グラフは、シミュレートされた状態の間にタスクを実行するためにプロセッサコア0が必ず確保されると仮定した、プロセッサコア1、プロセッサコア2、およびプロセッサコア3の結果の比較の2次元表現である。その他のプロセッサコアのいずれかがシミュレートされた状態の間にプロセスを実行するために確保されると想定されるときの結果の比較を示すために、他のグラフがまとめられる場合がある。比較ごとの所与のプロセッサは、1つのみのプロセッサに限定されなくてもよいが、プロセッサの組合せを含み得る。たとえば、プロセッサコアの組合せは、好ましいとすでに見なされている場合があり、比較は、シミュレートされた状態のために確保されるべき追加のプロセッサを選択するのを助けるために使用され得る。プロセッサコアのペアごとに軸を有する多次元グラフにおいて、プロセッサコアのすべての組合せの結果の比較をプロットすることも可能であり得る。
一態様では、グラフ400bは、プロセッサコア1および3の生じた電流漏れとプロセッサコア2の生じた電流漏れの比較を表し得る。この例では、プロセッサコアの比較の結果は、好ましいプロセッサコアの組合せを3つのセクタ402、404、および406に分割するパターンになる。セクタ402は、プロセッサコア0とプロセッサコア1の組合せが好ましいと決定されたときの電流漏れの比較の結果を包含する。セクタ404は、プロセッサコア0とプロセッサコア2の組合せが好ましいと決定されたときの電流漏れの比較の結果を包含する。セクタ406は、プロセッサコア0とプロセッサコア3の組合せが好ましいと決定されたときの電流漏れの比較の結果を包含する。
生じた比較のパターンはまた、上記で説明したようにセクタ402、404、および406を分離する境界408、410、412を生成し得る。境界408、410、412は、プロセッサコアの好ましい組合せの解析において使用されるプロセッサコアのパラメータの互いの比に関して定義され得る。境界408、410、および412は、2つのプロセッサコアの比を境界と比較するための不等式において使用され得る値として表され得る。これらの境界値は、境界値に関連付けられた好ましいコアのセットとともに、カーネルまたはスケジューラを実行するプロセッサによってアクセス可能なデータテーブル中のメモリに記憶され得る。境界値および好ましいプロセッサコアのセットはシミュレートされた動作状態ごとに記憶され得、メモリに記憶された異なる動作状態および条件についての境界値のいくつかのセットがあり得る。
例示的な態様では、上記で説明した電流漏れの比は境界408、410、412を定義し得る。グラフ400bでは、コア1とコア2の電流漏れの比の値は、境界408を定義し得る。同様に、コア3とコア2の電流漏れの比の値は、境界410を定義し得る。その他の比の比の値は、境界412を定義し得る。様々な態様における境界値は、比の観点からいえば式である。たとえば、上記で説明した比はR1およびR2と指定され得、境界値はR2 > R1 + 0.5として表され得る。境界値は、2つのセクタの境界上にあるグラフの点をフィッティングすることから取得された値または式であり得る。
好ましいコアが決定される基準を変更することは、グラフ上に異なるプロットをもたらす場合があるシミュレーションにおいてテストされたチップの性能の異なる測定値によって、可能になり得る。同様に、好ましいコアが決定されるコンピューティングデバイスの状態を変更することも、グラフ上に異なるプロットをもたらす場合がある。異なるプロットは、異なるセクタを分離する異なる境界を生成し得る。特定の状態についてのコンピューティングデバイス内のプロセッサの好ましいプロセッサコアを決定するために、プロセッサのパラメータ(たとえば、電流漏れ)は、同じまたは同様のチップタイプおよび状態のテストおよびシミュレーションから生成された境界と比較され得る。
図4Aおよび図4Bの例示的な図およびその説明などの、本明細書での境界についての説明は、処理コアの比較の各々についての明確な境界を図示し得るが、境界が重複する場合があることが考えられる。プロセッサコアの比は、同一である境界になる場合がある。重複するまたは同一の境界に応答して、プロセッサコアの好ましい組合せは、上記で説明したような基準を満たす、プロセッサコアの組合せのグループから選択され得る。グループからのプロセッサコアの好ましい組合せの選択は、ランタイム効率パラメータに基づき得る。
グラフ400bは好ましいコア組合せの解析の視覚表現にすぎないことに留意されたい。一態様では、境界値および好ましいプロセッサコアのセットを決定する解析は、視覚表現を作成することなしに数学的解析の様々な方法を使用するコンピューティングデバイスによって達成され得る。
動作時に、電流漏れまたは電流漏れを計算するために使用され得る要因などの、コンピューティングデバイスの状態およびプロセッサコアのパラメータが決定され得る。各プロセッサコアの電流漏れは、比において互いに比較され得る。電流漏れの比の結果は、不等式において、コンピューティングデバイスの状態および比において使用されるプロセッサコアに関連付けられた境界値と比較され得る。たとえば、CurrentLeakage(Cx)およびCurrentLeakage(Cy)はそれぞれ、2つの異なるプロセッサコアの電流漏れを表し得る。BoundaryValue(z)は、コアCxおよびCyの電流漏れの比に関連付けられた境界値を表し得る。コアCxおよびCyの電流漏れを関連する境界値と比較する不等式は、以下の式によって表され得る。
Figure 0006162350
不等式の結果が真であるとき、不等式の境界値に関連付けられた好ましいプロセッサコアのセットは、プロセッサコアの好ましい組合せを決定するために使用され得る。一般に、各好ましいコアは、少なくとも真の不等式のペアについて選択され得る。選択された好ましいプロセッサコアは、少なくとも2つの真の不等式の識別されたセットに存在する好ましいプロセッサコアであり得る。好ましいコア組合せにおいて3つ以上のプロセッサコアが使用されるとき、確保すべき追加のコアごとに、コアの電流漏れと境界値の比較が再び実行され得る。比較は、好ましいコア組合せのためにすでに選択されたコアを除く、プロセッサコアの低減されたセットについて実行され得る。比較のこの追加の実行も、コンピューティングデバイスの状態についての追加のコアのパワーアップシーケンス、すなわちブリングアップシーケンスを決定するために使用され得る。これらの追加のコアは、最初はコンピューティングデバイスの状態について好ましくない場合があるが、コアは、追加のプロセッサコアの必要性に応答して、パワーアップシーケンスの順に確保され得る。
一態様では、電流漏れを使用する例は、同期式プロセッサコアに適用され得る。プロセッサコアが非同期の別の態様では、比において使用されるプロセッサコアのパラメータは、電圧と電流漏れの関数であり得る。コアおよび境界値に上記と同じ表記を使用して、f(Voltage(Cx)、CurrentLeakage(Cx))およびf(Voltage(Cy)、CurrentLeakage(Cy))はそれぞれ、コアCxおよびCyの関数を表し得る。コアCxおよびCyの関数を関連する境界値と比較する不等式は、以下の式によって表され得る。
Figure 0006162350
図5は、プロセッサコア組合せ選択境界を作るための一態様方法500を示す。マルチコアプロセッサチップ製造業者は、様々な同種および/または異種のマルチコアプロセッサチップタイプを生産し得る。マルチコアプロセッサチップのタイプに対するプロセッサコア組合せ選択境界を作るために、製造業者は、いくつかの同じタイプのマルチコアプロセッサチップに対して方法500を実装し得る。製造業者はまた、同じタイプのマルチコアプロセッサチップの異なるロットまたはバッチについて、方法500を実装し得る。ブロック502において、マルチコアプロセッサチップのタイプに対して、様々なコンピューティングデバイス状態のシミュレーションが実施され得る。上記で説明したように、コンピューティングデバイス状態のシミュレーションは、温度、作業負荷、電力可用性、電力消費、および動作周波数などの様々な変数を含み得る。これらの変数は、コンピューティングデバイス状態を定義するために使用され得る。これらの変数の各々の様々なレベルおよび/または組合せについてのシミュレーションは、プロセッサの数の各々に対して実施され得る。ブロック504において、コンピューティングデバイス状態のシミュレーションにおいて使用されるプロセッサコアの動作データが収集され得る。上記で説明したように、プロセッサコアのこの動作データは、処理速度/動作周波数、電力消費、温度、電流漏れ、またはこれらのパラメータの組合せに基づく効率を含み得る。一態様では、これらのパラメータのうちのいくつかは、その他のパラメータのうちの1つまたは複数を計算するために使用され得る。収集された動作データ/パラメータの各セットは、それらの動作データ/パラメータが、動作しているコンピューティングデバイスの同じまたは同様のコンピューティングデバイス状態についての好ましいコア組合せを選択するために後で使用され得るように、それらの動作データ/パラメータが生成された特定のシミュレートされたコンピューティングデバイス状態に関連付けられ得る。
ブロック506において、コンピューティングデバイス状態のシミュレーションにおいて使用されるマルチコアプロセッサチップの各々についての好ましいコア組合せは、シミュレートされたコンピューティングデバイス状態の各々について決定され得る。この決定は、最適化に関する変動する目標に基づくシミュレーションからのプロセッサコアの動作データの解析に基づいて行われ得る。たとえば、最適化に関する目標は、最大化された処理速度、最小化された電力消費、または所与の電力消費レベルもしくは電力プロファイルの処理速度の様々な組合せに基づく効率レベルを含み得る。各マルチコアプロセッサ上のプロセッサコアの動作データは、最適化に関する特定の目標について、マルチコアプロセッサのプロセッサコアのどの組合せが好ましいかを決定するために解析され得る。プロセッサコアの好ましい組合せの決定は、組合せにおいて使用されるべきプロセッサコアの数の制限によって影響され得る。たとえば、いくつかの態様は、一般にデュアルコア処理向けに最適化されたソフトウェアの使用を伴い得る。したがって、プロセッサコアの好ましい組合せの決定は、2つのプロセッサコアに限定され得る。この状況においても、必要に応じて、残りのプロセッサコアのパワーアップシーケンス、すなわちブリングアップシーケンスを決定するのを助けるために、3つ以上のプロセッサコアの好ましい組合せが選択され得る。
図4Aおよび図4Bを参照しながら上記で説明した例を続けると、プロセッサコアの各々の電流漏れに基づいて、最適化の目標についてプロセッサコアの好ましい組合せが決定され得る。好ましいコア組合せを構成するプロセッサコアのこれらの動作データは、図4Aのグラフ400a上にプロットするためのデータを含み得る。たとえば、好ましいコア組合せがコア0およびコア2であると決定される場合のプロセッサの、コア1とコア2の電流漏れの比およびコア3とコア2の電流漏れの比は、セクタ404にプロットされる点になる。シミュレーションにおいて使用されるマルチコアプロセッサのいくつかまたはすべてについての点をプロットすることは、図4Bに示し、上記で説明したように、セクタ402、404、406をもたらし得る。セクタ402、404、406は、シミュレートされたコンピューティングデバイス状態の好ましいプロセッサコアの同じ組合せを有するマルチコアプロセッサのグループを定義し得る。
ブロック508において、シミュレートされた状態についての好ましいプロセッサコアの同じ組合せを有するマルチコアプロセッサのグループの境界が決定され得る。一態様では、これらの境界は、プロセッサコアのパラメータとその他のプロセッサコアのパラメータの比に関して定義され得る。境界は、好ましいプロセッサコアの組合せに関連付けられたプロセッサコアのパラメータの比較の末端値を表し得る。ブロック510において、シミュレートされたデバイス状態の境界は、マルチコアプロセッサのメモリデバイス(たとえば、ROM)またはマルチコアプロセッサを包含するコンピューティングデバイスに記憶され得る。境界値を記憶することはまた、境界値と好ましいプロセッサコアの組合せとの関連付けを記憶することを含み得る。境界と好ましいプロセッサコアの組合せとの関連付けは、動作しているプロセッサコアのパラメータの比較に基づいてコンピューティングデバイスの状態についてプロセッサコアのどの組合せが好ましいかを決定するために、動作可能なコンピューティングデバイスにおいて使用され得る。
図6は、コンピューティングデバイスの動作状態および/または条件についての好ましいプロセッサコア組合せを選択するための一態様方法600を示す。方法600は、ソフトウェア、汎用もしくは専用ハードウェア、またはソフトウェアとハードウェアの組合せを使用するコンピューティングデバイスにおいて実行され得る。たとえば、プロセッサ(たとえば、マルチコアプロセッサのプロセッサコアのうちの1つ)上で実行されるオペレーティングシステムのカーネルまたはスケジューラが方法600を実装し得る。一態様では、境界値およびコンピューティングデバイスの様々な状態についての好ましいプロセッサコアのセットは、コンピューティングデバイスのメモリのうちの1つまたは複数に記憶され得る。メモリに記憶された境界値および好ましいプロセッサコアのセットは、コンピューティングデバイスのマルチコアプロセッサに固有のものであり得る。ブロック602において、コンピューティングデバイスは、境界値およびそれらに関連するプロセッサコアのセットのいくつかまたはすべてをコンピューティングデバイスのメモリからロードし得る。この情報は、SoCまたは特定のマルチコアプロセッサのより高速なメモリにロードされ得る。SoCのメモリにロードされた情報は、境界および好ましいプロセッサコアのセットのすべてもしくはいくつか、または、特にSoCのマルチコアプロセッサに関する境界のセットおよび好ましいプロセッサコアのセットのみを含み得る。特定のマルチコアプロセッサのメモリにロードされた情報は、特にそのマルチコアプロセッサに関する情報を含み得る。
ブロック604において、コンピューティングデバイスは、コンピューティングデバイスの現在の状態を表すパラメータを決定し得る。コンピューティングデバイスの状態のシミュレーションに関して上記で説明したように、コンピューティングデバイスのこれらのパラメータは、温度、作業負荷、電力可用性、電力消費、および動作周波数を含み得る。一態様では、これらのパラメータのうちの少なくともいくつかを決定することは、センサー読取り値または他の信号からパラメータを測定することを伴い得る。一態様では、これらのパラメータのうちの少なくともいくつかを決定することは、コンピューティングデバイスのハードウェア構成要素またはソフトウェア構成要素からパラメータの値を取り出すことを伴い得る。コンピューティングデバイスのパラメータは、コンピューティングデバイス全体について、またはマルチコアプロセッサなどのコンピューティングデバイスの特定の構成要素についてのものであり得る。コンピューティングデバイスの状態は、これらのパラメータのうちの1つまたは組合せから決定され得る。一態様では、任意選択のブロック606において、コンピューティングデバイスは、コンピューティングデバイスが好ましいコアの組合せを選択することを試み得るときのいくつかの条件に対する予測されたコンピューティングデバイス状態を決定し得る。予測されたコンピューティングデバイス状態を決定することは、コンピューティングデバイスの現在のパラメータを使用してコンピューティングデバイスのパラメータを計算することを含み得る。
ブロック608において、コンピューティングデバイスは、マルチコアプロセッサのプロセッサコアのパラメータを決定し得る。上記で説明したように、これらのパラメータは、処理速度/動作周波数、電力消費、温度、電流漏れ、またはこれらのパラメータの組合せに基づく効率を含み得る。一態様では、パラメータのうちのいくつかは、その他のパラメータのうちの1つまたは複数を計算するために使用され得る。前の例を続けると、測定された、ハードウェアもしくはソフトウェアから取り出された、または計算された、決定済みのパラメータは、プロセッサコアの電流漏れであり得る。一態様では、プロセッサコアの各々についての電流漏れは、個々のプロセッサコアのストレージデバイスを含み得るマルチコアプロセッサのストレージデバイスに記憶され得る。そのようなストレージデバイスは、上記で説明したメモリ、またはeFUSEを含み得る。
ブロック610において、コンピューティングデバイスは、処理コアのパラメータを比較し得る。比較のために電流漏れを処理コアのパラメータとして使用して、コンピューティングデバイスは、マルチコアプロセッサの各プロセッサコアの電流漏れをマルチコアプロセッサのその他のプロセッサコアの各々の電流漏れと比較し得る。一態様では、比較は、ブロック612において、プロセッサコアの各組合せについての電流漏れの比較など、プロセッサコアの各々の比を決定することを含み得る。
任意選択の決定ブロック614において、コンピューティングデバイスは、コンピューティングデバイスの現在の状態またはコンピューティングデバイスの予測された状態について、好ましいプロセッサコアの組合せが見出され得るかどうかを決定し得る。この決定は、コンピューティングデバイスの構成および/またはコンピューティングデバイス上で実行されるプログラム、あるいはコンピューティングデバイスの状態パラメータのうちの1つまたは複数を含み得る、様々な要因に基づき得る。たとえば、コンピューティングデバイス上で実行されるソフトウェアプログラムは、ソフトウェアの機能を実行するための予測された状態についての好ましいコアの組合せを要求するように構成され得る。コンピューティングデバイスは、機能を実行するかどうかを決定するために情報を使用し得る。別の例は、減少する電力可用性プロファイルまたは高温を示す状態パラメータを含み得る。コンピューティングデバイスは、コンピューティングデバイスの電力消費率または温度を下げることができる好ましいプロセッサコアの組合せを見つけるために、現在の状態を使用すると決定し得る。
コンピューティングデバイスがコンピューティングデバイスの現在の状態を使用すると決定したこと(すなわち、決定ブロック614=「現在」)に応答して、コンピューティングデバイスは、ブロック616において、マルチコアプロセッサについての現在のデバイス状態の境界を決定し得る。言い換えれば、コンピューティングデバイスは、コンピューティングデバイスの現在の状態に関連付けられた境界および好ましいプロセッサコアのセットをメモリから取り出し得る。いくつかのマルチコアプロセッサについて情報がメモリに記憶される一態様では、コンピューティングデバイスは、特定のマルチコアプロセッサにも関連付けられた情報を取り出し得る。
ブロック618において、コンピューティングデバイスは、プロセッサコアの組合せごとのパラメータの比、この例では電流漏れを関連する境界情報と比較し得る。一態様では、比を関連する境界情報と比較することは、上記で説明したように、不等式を使用することを含み得る。一態様では、コンピューティングデバイスは、比のすべてをそれぞれの境界情報と比較し得る。別の態様では、コンピューティングデバイスは、少なくとも比のペアについて不等式が真になるまで、比のすべてをそれぞれの境界情報と比較し得る。一態様では、比のペアは、第1のコアと第2のコアの比および第3のコアと第2のコアの比が両方ともそれぞれの境界情報について真の不等式になる、比の任意のペアを含み得る。
ブロック620において、コンピューティングデバイスは、真の不等式の境界情報に関連付けられたコンピューティングデバイスの現在の状態についての好ましいコアを選択し得る。上記で説明したように、境界情報は、好ましいコアのセットに関連付けられ得る。不等式が真である境界値の識別は、真の不等式の境界値の各々についての好ましいコアのセットを識別するために使用され得る。セットから選択された好ましいプロセッサコアは、真の不等式の境界値に関連付けられたセットのすべてに存在する好ましいプロセッサコアであり得る。
一態様では、追加の好ましいコアは、以前に選択された好ましいコアと組み合わされ得る。任意選択のブロック622において、コンピューティングデバイスは、選択された好ましいコアを追加の好ましいコアの検討対象から除外し得る。選択された好ましいコアを検討対象から除外することは、将来のその同じコアの再選択を回避し得る。これはまた、より少ない計算をもたらし、それによって、電力消費を低減し、追加のプロセッサコアの選択をスピードアップすることができる。コンピューティングデバイスは、ブロック602に戻って、好ましいコアを選択するためのプロセスを繰り返し得、このことは、コンピューティングデバイスの動作状態および条件が時間とともに変化するので、プロセッサコアの異なる好ましい組合せの選択をもたらし得る。
コンピューティングデバイスがコンピューティングデバイスの予測された状態を使用すると決定したこと(すなわち、決定ブロック614=「予測」)に応答して、コンピューティングデバイスは、ブロック624において、マルチコアプロセッサについての予測されたデバイス状態の境界を決定し得る。言い換えれば、コンピューティングデバイスは、コンピューティングデバイスの予測された状態に関連付けられた境界および好ましいプロセッサコアのセットをメモリから取り出し得る。いくつかのマルチコアプロセッサについて情報がメモリに記憶される一態様では、コンピューティングデバイスは、特定のマルチコアプロセッサに関連付けられた情報を取り出し得る。
ブロック626において、コンピューティングデバイスは、ブロック618において説明したように、プロセッサコアの組合せごとのパラメータの各々の比、この例では電流漏れを関連する境界情報と比較し得る。ブロック628において、コンピューティングデバイスは、ブロック620において現在の状態について説明したのと同様に、真の不等式の境界情報に関連付けられたコンピューティングデバイスの予測された状態についての好ましいプロセッサコアまたはプロセッサコアの組合せを選択し得る。コンピューティングデバイスは、任意選択のブロック622において、上記で説明したように、選択された好ましいコアを追加の好ましいコアの検討対象から除外し、ブロック602において好ましいコアを選択するためのプロセスを繰り返し得、このことは、コンピューティングデバイスの動作状態および条件が時間とともに変化するので、プロセッサコアの異なる好ましい組合せの選択をもたらし得る。
図7は、コンピューティングデバイスの状態についての好ましいプロセッサコア組合せを動的に決定するための一態様方法700を示す。方法700は、ソフトウェア、汎用もしくは専用ハードウェア、またはソフトウェアとハードウェアの組合せを使用するコンピューティングデバイスにおいて実行され得る。ブロック702において、コンピューティングデバイスは、タスクを実行するためにマルチコアプロセッサに適用されるべき動的電力を決定し得る。一態様では、適用されるべき動的電力の決定は、タスクを実行するために個々のプロセッサコアに適用されるべき動的電力を含み得る。ブロック704において、コンピューティングデバイスは、本明細書では変数「i」の値によって示され、コア「i」と呼ばれる、特定のコアの温度を決定し得る。温度は、コア「i」の近くに配置されたセンサーによって測定されるか、プロセッサコア「i」を包含するマルチコアプロセッサ内またはその近くのセンサーからの読取り値から推定されるか、または様々なハードウェア構成要素および/またはソフトウェアからの情報に基づいて計算され得る。ブロック706において、コンピューティングデバイスは、コア「i」の電流漏れを決定し得る。電流漏れは、コア「i」、またはコア「i」の漏れ電流を記憶するメモリから、電流漏れの値を読み取ることによって決定され得る。他のハードウェア構成要素および/またはソフトウェアから取り出された測定値または情報に基づいて、コア「i」の電流漏れを計算することも可能であり得る。
決定ブロック708において、コンピューティングデバイスは、コア「i」の温度が温度しきい値未満であるかどうかを決定し得る。コア「i」の温度が温度しきい値未満ではないと決定したこと(すなわち、決定ブロック708=「No」)に応答して、コンピューティングデバイスは、ブロック720において、変数「i」の値を増分し得る。次いで、コンピューティングデバイスは、次のプロセッサコアについて方法700を実装するためにブロック704に戻り得る。コア「i」の温度が温度しきい値未満であると決定したこと(すなわち、決定ブロック708=「Yes」)に応答して、コンピューティングデバイスは、ブロック710において、対象の時間にわたるコア「i」の温度およびコア「i」の平均電流漏れを推定し得る。一態様では、対象の時間は、タスクの完了について予想される時間であり得る。
決定ブロック712において、コンピューティングデバイスは、コア「i」の推定された温度が温度しきい値未満であるかどうかを決定し得る。コア「i」の推定された温度が温度しきい値未満ではないと決定したこと(すなわち、決定ブロック712=「No」)に応答して、コンピューティングデバイスは、ブロック720において、変数「i」の値を増分し得る。次いで、コンピューティングデバイスは、次のプロセッサコアについて方法700を実装するためにブロック704に戻り得る。コア「i」の推定された温度が温度しきい値未満であると決定したこと(すなわち、決定ブロック712=「Yes」)に応答して、コンピューティングデバイスは、ブロック714において、コア「i」の推定された平均電流漏れを記憶し得る。
決定ブロック716において、コンピューティングデバイスは、変数「i」がプロセッサコアの総数以上であるかどうかを決定し得る。変数「i」がプロセッサコアの総数以上ではないと決定したこと(すなわち、決定ブロック716=「No」)に応答して、コンピューティングデバイスは、ブロック720において、変数「i」の値を増分し得る。次いで、コンピューティングデバイスは、次のプロセッサコアについてブロック704から716の動作を繰り返し得る。
変数「i」がプロセッサコアの総数以上であると決定したこと(すなわち、決定ブロック716=「Yes」)に応答して、コンピューティングデバイスは、ブロック718において、プロセッサコアのすべてについての最小平均電流漏れを決定し、関連するコア「i」を好ましいプロセッサコアとして選択し得る。方法700は、動作状態および条件の変化に適応するために定期的になど、選択されたプロセッサコアと組み合わせるべき、さらなる好ましいプロセッサコアを選択するために繰り返され得る。方法600とほぼ同様に、一態様では、選択されたコア「i」は、同じプロセッサコアの重複した選択を回避し、選択を行うために必要とされるリソースおよび時間を減らすために、方法700の後の反復において、好ましいプロセッサコアとしての検討対象から除外され得る。
図8は、様々な態様とともに使用するのに適した例示的なモバイルデバイスを示す。モバイルデバイス800は、タッチスクリーンコントローラ804および内部メモリ806に結合されたプロセッサ802を含み得る。プロセッサ802は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であり得る。内部メモリ806は揮発性または不揮発性メモリであってもよく、また、セキュアおよび/もしくは暗号化メモリ、または非セキュアおよび/もしくは非暗号化メモリ、またはそれらの任意の組合せであってもよい。利用され得るメモリタイプの例は、限定はしないが、DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM、および埋め込みDRAMを含む。タッチスクリーンコントローラ804およびプロセッサ802は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル812に結合される場合もある。加えて、コンピューティングデバイス800のディスプレイは、タッチスクリーン機能を有する必要はない。
モバイルデバイス800は、互いにおよび/またはプロセッサ802に結合された、通信を送信および受信するための1つまたは複数の無線信号トランシーバ808(たとえば、Peanut、Bluetooth(登録商標)、Zigbee、Wi-Fi、RF無線)およびアンテナ810を有し得る。トランシーバ808およびアンテナ810は、様々なワイヤレス送信プロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用され得る。モバイルデバイス800は、セルラーネットワークを介した通信を可能にし、プロセッサに結合されたセルラーネットワークワイヤレスモデムチップ816を含み得る。
モバイルデバイス800は、プロセッサ802に結合された周辺デバイス接続インターフェース818を含み得る。周辺デバイス接続インターフェース818は、1つのタイプの接続を受け入れるように単独で構成される場合があるか、または、USB、FireWire、Thunderbolt、またはPCIeなどの、共通またはプロプライエタリの様々なタイプの物理接続および通信接続を受け入れるように構成される場合がある。周辺デバイス接続インターフェース818は、同様に構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。
モバイルデバイス800はまた、音声出力を提供するためのスピーカー814を含み得る。モバイルデバイス800はまた、プラスチック、金属、または材料の組合せで構築された、本明細書で説明する構成要素のすべてまたはいくつかを収容するためのハウジング820を含み得る。モバイルデバイス800は、使い捨てバッテリーまたは充電式バッテリーなどの、プロセッサ802に結合された電源822を含み得る。充電式バッテリーは、モバイルデバイス800の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートに結合される場合もある。モバイルデバイス800はまた、ユーザ入力を受け取るための物理ボタン824を含み得る。モバイルデバイス800はまた、モバイルデバイス800をオンおよびオフするための電源ボタン826を含み得る。
上記で説明した様々な態様はまた、図9に示すラップトップコンピュータ900などの様々なモバイルデバイス内に実装され得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面917を含み、したがって、タッチスクリーンディスプレイを装備した上記で説明したコンピューティングデバイス上で実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受け取ることができる。ラップトップコンピュータ900は通常、揮発性メモリ912、およびフラッシュメモリのディスクドライブ913などの大容量不揮発性メモリに結合されたプロセッサ911を含む。加えて、コンピュータ900は、プロセッサ911に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ916に接続され得る、電磁放射を送信および受信するための1つまたは複数のアンテナ908を有し得る。コンピュータ900はまた、プロセッサ911に結合されたフロッピーディスクドライブ914およびコンパクトディスク(CD)ドライブ915を含み得る。ノートブック構成では、コンピュータハウジングは、すべてがプロセッサ911に結合された、タッチパッド917、キーボード918、およびディスプレイ919を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得、それらはまた、様々な態様とともに使用され得る。
様々な態様はまた、図10に示すサーバ1000などの様々な市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ1000は通常、揮発性メモリ1002、およびディスクドライブ1004などの大容量不揮発性メモリに結合された1つまたは複数のマルチコアプロセッサアセンブリ1001を含む。図10に示すように、マルチコアプロセッサアセンブリ1001は、それらをアセンブリのラックに挿入することによって、サーバ1000に追加され得る。サーバ1000はまた、プロセッサ1001に結合されたフロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1006を含み得る。サーバ1000はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網、ならびに/またはセルラーデータネットワーク(たとえば、CDMA、TDMA、GSM(登録商標)、PCS、3G、4G、LTE、または任意の他のタイプのセルラーデータネットワーク)など、ネットワーク1005とのネットワークインターフェース接続を確立するための、マルチコアプロセッサアセンブリ1001に結合されたネットワークアクセスポート1003を含み得る。
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行するためのコンピュータプログラムコードまたは「プログラムコード」は、C、C++、C#、Smalltalk、Java(登録商標)、JavaScript(登録商標)、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で書かれ得る。本出願で使用する場合、コンピュータ可読記憶媒体上に記憶されたプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードなどの)機械語コードを指し得る。
多くのコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する場合)ユーザ空間に編成され、(特権コードが動作する場合)カーネル空間に編成される。この分離は、カーネル空間の一部であるコードが一般公有使用許諾(GPL)許諾されなければならない一方で、ユーザ空間内で動作するコードがGPL許諾されなくてもよい、Androidおよび他のGPL環境において特に重要である。本明細書で説明する様々なソフトウェア構成要素/モジュールは、別段に明記されていない限り、カーネル空間またはユーザ空間のいずれかにおいて実装され得ることを理解されたい。
上記の方法の説明およびプロセスフロー図は、単に例示的な例として提供され、様々な態様の動作が提示された順序で実行されなければならないことを必要とするまたは暗示するものではない。当業者によって諒解されるように、上記の態様における動作の順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの語は、動作の順序を限定するものではなく、これらの語は単に、方法の説明を通じて読者を導くために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する、単数形での請求項の要素へのいかなる言及も、その要素を単数形に限定するものとして解釈されるべきではない。
様々な態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、および動作について、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。代替的に、いくつかの動作または方法は、所与の機能に固有の回路によって実行され得る。
1つまたは複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体上に記憶され得る。本明細書で開示する方法またはアルゴリズムの動作は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化され得る。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、FLASHメモリ、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびブルーレイディスクを含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれる場合がある、非一時的プロセッサ可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在する場合がある。
開示した態様の前述の説明は、任意の当業者が本発明を作成または使用することを可能にするために提供される。これらの態様に対する様々な修正は当業者には容易に明らかとなり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく、他の態様に適用され得る。したがって、本発明は、本明細書に示す態様に限定されるものではなく、以下の特許請求の範囲、ならびに本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
10 コンピューティングデバイス
12 SoC
14 プロセッサ
16 メモリ
18 通信インターフェース
20 ストレージインターフェース
22 通信構成要素
24 ストレージ構成要素
26 アンテナ
28 ネットワークインターフェース
30 ワイヤレスネットワーク
32 ワイヤレス接続
40 インターネット
44 ワイヤードネットワーク、ワイヤード接続
50 リモートコンピューティングデバイス
200 プロセッサコア
201 プロセッサコア
202 プロセッサコア
203 プロセッサコア
308 第1のDSP 1
310 第2のDSP 2
312 モデム
314 GPU
316 ビデオサブシステム
318 ワイヤレスローカルエリアネットワーク(WLAN)トランシーバ
320 ビデオフロントエンド(VFE)サブシステム
330 ヒートシンク
400a、400b グラフ
402 セクタ
404 セクタ
406 セクタ
408 境界
410 境界
412 境界
500 方法
600 方法
700 方法
800 モバイルデバイス
802 プロセッサ
804 タッチスクリーンコントローラ
806 内部メモリ
808 トランシーバ
810 アンテナ
812 タッチスクリーンパネル
814 スピーカー
816 セルラーネットワークワイヤレスモデムチップ
818 周辺デバイス接続インターフェース
820 ハウジング
822 電源
824 物理ボタン
826 電源ボタン
900 ラップトップコンピュータ
908 アンテナ
911 プロセッサ
912 揮発性メモリ
913 ディスクドライブ
914 フロッピーディスクドライブ
915 コンパクトディスク(CD)ドライブ
916 ワイヤレスデータリンクおよび/またはセルラー電話トランシーバ
917 タッチパッドのタッチ面、タッチパッド
918 キーボード
919 ディスプレイ
1000 サーバ
1001 マルチコアプロセッサアセンブリ
1002 揮発性メモリ
1003 ネットワークアクセスポート
1004 ディスクドライブ
1005 ネットワーク
1006 フロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ

Claims (29)

  1. コンピューティングデバイス内のマルチコアプロセッサのプロセッサコアを選択するための方法であって、
    前記コンピューティングデバイスの状態を決定するステップと、
    数のプロセッサコアの各々の電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップと、
    複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する複数の境界値と比較するステップと
    前記複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップと
    別のプロセッサコアと組み合わせてタスクを実行するために、前記選択されたプロセッサコアを確保するステップと
    を含む方法。
  2. 記複数のプロセッサコアの各々の前記電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、前記複数の電流漏れの比を決定するステップが、
    1のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第1の電流漏れの比を決定するステップと、
    3のプロセッサコアの電流漏れを前記第2のプロセッサコアの前記電流漏れと比較することによって、第2の電流漏れの比を決定するステップと
    を含み、
    前記複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する前記複数の境界値と比較するステップが、
    第1の不等式において、前記第1の比を前記コンピューティングデバイスの前記状態に対応する第1の境界値と比較するステップと、
    第2の不等式において、前記第2の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する第2の境界値と比較するステップと
    を含み、
    前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、前記第1の不等式および前記第2の不等式が真であると決定したことに応答して、前記第1の境界値および前記第2の境界値に関連付けられた好ましいプロセッサコアを選択するステップを含む、
    請求項1に記載の方法。
  3. 各々が前記コンピューティングデバイスの前記状態に関連付けられた複数の境界値と、前記コンピューティングデバイスの前記状態の間に使用するのに好ましいと決定されたプロセッサコアのセットとを記憶するステップと、
    前記コンピューティングデバイスの前記状態についての前記複数の境界値をロードするステップと
    をさらに含む、請求項1に記載の方法。
  4. 前記マルチコアプロセッサのストレージデバイスから前記複数のプロセッサコアの前記電流漏れを取り出すステップをさらに含む、請求項1に記載の方法。
  5. 前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、
    前記少なくとも2つの境界値に関連付けられたプロセッサコアの複数のセットを取り出すステップと、
    前記プロセッサコアの複数のセットの各々を前記プロセッサコアの複数のセット内の他のセットと比較するステップと、
    前記プロセッサコアの複数のセット内のプロセッサコアの少なくとも2つのセットに存在する前記プロセッサコアを選択するステップと
    を含む、請求項1に記載の方法。
  6. 前記コンピューティングデバイスの前記状態を決定するステップが、前記コンピューティングデバイスの現在の状態または前記コンピューティングデバイスの予測された状態を選択するステップを含む、請求項1に記載の方法。
  7. プロセッサコアブリングアップシーケンスを作成するステップであって、前記選択されたプロセッサコアが前記プロセッサコアブリングアップシーケンスにおいて次である、ステップをさらに含む、請求項1に記載の方法。
  8. 記複数のプロセッサコアの各々の前記電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、前記複数の電流漏れの比を決定するステップが、
    前記複数の電流漏れの比がIDDqi+1/IDDqi、IDDqi+2/IDDqi、IDDqi+3/IDDqi、IDDqi+4/IDDqi IDDqn/IDDqiを含むように、前記複数のプロセッサコアの各々について前記複数の電流漏れの比を静止状態でのデジタル領域における静的な電流漏れ(IDDq)の比として表すステップ
    を含む、請求項1に記載の方法。
  9. コンピューティングデバイスであって、
    前記コンピューティングデバイスの状態を決定するステップと、
    数のプロセッサコアの各々の電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップと、
    複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する複数の境界値と比較するステップと
    前記複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップと
    別のプロセッサコアと組み合わせてタスクを実行するために、前記選択されたプロセッサコアを確保するステップと
    を含む動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサ
    を備えるコンピューティングデバイス。
  10. 前記プロセッサが、
    記複数のプロセッサコアの各々の前記電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、前記複数の電流漏れの比を決定するステップが、
    1のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第1の電流漏れの比を決定するステップと、
    3のプロセッサコアの電流漏れを前記第2のプロセッサコアの前記電流漏れと比較することによって、第2の電流漏れの比を決定するステップと
    を含み、
    前記複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する前記複数の境界値と比較するステップが、
    第1の不等式において、前記第1の比を前記コンピューティングデバイスの前記状態に対応する第1の境界値と比較するステップと、
    第2の不等式において、前記第2の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する第2の境界値と比較するステップと
    を含み、
    前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、前記第1の不等式および前記第2の不等式が真であると決定したことに応答して、前記第1の境界値および前記第2の境界値に関連付けられた好ましいプロセッサコアを選択するステップを含む
    ような動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  11. 前記プロセッサに通信可能に接続されたメモリをさらに備え、前記プロセッサが、
    各々が前記コンピューティングデバイスの前記状態に関連付けられた複数の境界値と、前記コンピューティングデバイスの前記状態の間に使用するのに好ましいと決定されたプロセッサコアのセットとを前記メモリに記憶するステップと、
    前記メモリから前記コンピューティングデバイスの前記状態についての前記複数の境界値をロードするステップ
    さらに含む動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  12. 前記プロセッサに通信可能に接続されたストレージデバイスをさらに備え、前記プロセッサが、前記ストレージデバイスから前記複数のプロセッサコアの前記電流漏れを取り出すステップをさらに含む動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  13. 前記プロセッサが、前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、
    前記少なくとも2つの境界値に関連付けられたプロセッサコアの複数のセットを取り出すステップと、
    前記プロセッサコアの複数のセットの各々を前記プロセッサコアの複数のセット内の他のセットと比較するステップと、
    前記プロセッサコアの複数のセット内のプロセッサコアの少なくとも2つのセットに存在する前記プロセッサコアを選択するステップと
    を含むような動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  14. 前記プロセッサが、前記コンピューティングデバイスの前記状態を決定するステップが、前記コンピューティングデバイスの現在の状態または前記コンピューティングデバイスの予測された状態を選択するステップを含むような動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  15. 前記プロセッサが、プロセッサコアブリングアップシーケンスを作成するステップであって、前記選択されたプロセッサコアが前記プロセッサコアブリングアップシーケンスにおいて次である、ステップをさらに含む動作を実行するためのプロセッサ実行可能命令でさらに構成される、請求項9に記載のコンピューティングデバイス。
  16. コンピューティングデバイスの状態を決定するステップと、
    数のプロセッサコアの各々の電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するステップと、
    複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する複数の境界値と比較するステップと
    前記複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するステップと
    別のプロセッサコアと組み合わせてタスクを実行するために、前記選択されたプロセッサコアを確保するステップと
    を含む動作をプロセッサに実行させるためのプロセッサ実行可能ソフトウェア命令を記憶したプロセッサ可読記憶媒体。
  17. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、
    記複数のプロセッサコアの各々の前記電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、前記複数の電流漏れの比を決定するステップが、
    1のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第1の電流漏れの比を決定するステップと、
    3のプロセッサコアの電流漏れを前記第2のプロセッサコアの前記電流漏れと比較することによって、第2の電流漏れの比を決定するステップと
    を含み、
    前記複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する前記複数の境界値と比較するステップが、
    第1の不等式において、前記第1の比を前記コンピューティングデバイスの前記状態に対応する第1の境界値と比較するステップと、
    第2の不等式において、前記第2の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する第2の境界値と比較するステップと
    を含み、
    前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、前記第1の不等式および前記第2の不等式が真であると決定したことに応答して、前記第1の境界値および前記第2の境界値に関連付けられた好ましいプロセッサコアを選択するステップを含む
    ような動作を前記プロセッサに実行させるように構成される、請求項16に記載のプロセッサ可読記憶媒体。
  18. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、
    各々が前記コンピューティングデバイスの前記状態に関連付けられた複数の境界値と、前記コンピューティングデバイスの前記状態の間に使用するのに好ましいと決定されたプロセッサコアのセットとを記憶するステップと、
    前記コンピューティングデバイスの前記状態についての前記複数の境界値をロードするステップと
    をさらに含む動作を前記プロセッサに実行させるように構成される、請求項16に記載のプロセッサ可読記憶媒体。
  19. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、マルチコアプロセッサのストレージデバイスから前記複数のプロセッサコアの前記電流漏れを取り出すステップをさらに含む動作を前記プロセッサに実行させるように構成される、請求項17に記載のプロセッサ可読記憶媒体。
  20. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するステップが、
    前記少なくとも2つの境界値に関連付けられたプロセッサコアの複数のセットを取り出すステップと、
    前記プロセッサコアの複数のセットの各々を前記プロセッサコアの複数のセット内の他のセットと比較するステップと、
    前記プロセッサコアの複数のセット内のプロセッサコアの少なくとも2つのセットに存在する前記プロセッサコアを選択するステップと
    を含むような動作を前記プロセッサに実行させるように構成される、請求項16に記載のプロセッサ可読記憶媒体。
  21. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記コンピューティングデバイスの前記状態を決定するステップが、前記コンピューティングデバイスの現在の状態または前記コンピューティングデバイスの予測された状態を選択するステップを含むような動作を前記プロセッサに実行させるように構成される、請求項16に記載のプロセッサ可読記憶媒体。
  22. 前記記憶されたプロセッサ実行可能ソフトウェア命令が、プロセッサコアブリングアップシーケンスを作成するステップであって、前記選択されたプロセッサコアが前記プロセッサコアブリングアップシーケンスにおいて次である、ステップをさらに含む動作を前記プロセッサに実行させるように構成される、請求項16に記載のプロセッサ可読記憶媒体。
  23. コンピューティングデバイスであって、
    前記コンピューティングデバイスの状態を決定するための手段と、
    数のプロセッサコアの各々の電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、複数の電流漏れの比を決定するための手段と、
    複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する複数の境界値と比較するための手段と
    前記複数の不等式のうちの少なくとも2つが真であると決定したことに応答して、少なくとも2つの境界値に関連付けられたプロセッサコアを選択するための手段と
    別のプロセッサコアと組み合わせてタスクを実行するために、前記選択されたプロセッサコアを確保するための手段と
    を備えるコンピューティングデバイス。
  24. 記複数のプロセッサコアの各々の前記電流漏れを前記複数のプロセッサコアのうちの他のプロセッサコアの電流漏れと比較することによって、前記複数の電流漏れの比を決定するための手段が、
    1のプロセッサコアの電流漏れを第2のプロセッサコアの電流漏れと比較することによって、第1の電流漏れの比を決定するための手段と、
    3のプロセッサコアの電流漏れを前記第2のプロセッサコアの前記電流漏れと比較することによって、第2の電流漏れの比を決定するための手段と
    を備え、
    前記複数の不等式において、前記複数の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する前記複数の境界値と比較するための手段が、
    第1の不等式において、前記第1の比を前記コンピューティングデバイスの前記状態に対応する第1の境界値と比較するための手段と、
    第2の不等式において、前記第2の電流漏れの比を前記コンピューティングデバイスの前記状態に対応する第2の境界値と比較するための手段と
    を備え、
    前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するための手段が、前記第1の不等式および前記第2の不等式が真であると決定したことに応答して、前記第1の境界値および前記第2の境界値に関連付けられた好ましいプロセッサコアを選択するための手段を備える、
    請求項23に記載のコンピューティングデバイス。
  25. 各々が前記コンピューティングデバイスの前記状態に関連付けられた複数の境界値と、前記コンピューティングデバイスの前記状態の間に使用するのに好ましいと決定されたプロセッサコアのセットとを記憶するための手段と、
    前記コンピューティングデバイスの前記状態についての前記複数の境界値をロードするための手段と
    をさらに備える、請求項24に記載のコンピューティングデバイス。
  26. マルチコアプロセッサのストレージデバイスから前記複数のプロセッサコアの前記電流漏れを取り出すための手段をさらに備える、請求項23に記載のコンピューティングデバイス。
  27. 前記複数の不等式のうちの前記少なくとも2つが真であると決定したことに応答して、前記少なくとも2つの境界値に関連付けられた前記プロセッサコアを選択するための手段が、
    前記少なくとも2つの境界値に関連付けられたプロセッサコアの複数のセットを取り出すための手段と、
    前記プロセッサコアの複数のセットの各々を前記プロセッサコアの複数のセット内の他のセットと比較するための手段と、
    前記プロセッサコアの複数のセット内のプロセッサコアの少なくとも2つのセットに存在する前記プロセッサコアを選択するための手段と
    を備える、請求項23に記載のコンピューティングデバイス。
  28. 前記コンピューティングデバイスの前記状態を決定するための手段が、前記コンピューティングデバイスの現在の状態または前記コンピューティングデバイスの予測された状態を選択するための手段を備える、請求項23に記載のコンピューティングデバイス。
  29. プロセッサコアブリングアップシーケンスを作成するための手段であって、前記選択されたプロセッサコアが前記プロセッサコアブリングアップシーケンスにおいて次である、手段をさらに備える、請求項23に記載のコンピューティングデバイス。
JP2016568006A 2014-05-20 2015-05-08 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム Expired - Fee Related JP6162350B1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462000855P 2014-05-20 2014-05-20
US62/000,855 2014-05-20
US14/319,393 US9557797B2 (en) 2014-05-20 2014-06-30 Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US14/319,393 2014-06-30
PCT/US2015/029983 WO2015179147A1 (en) 2014-05-20 2015-05-08 Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power

Publications (2)

Publication Number Publication Date
JP6162350B1 true JP6162350B1 (ja) 2017-07-12
JP2017521752A JP2017521752A (ja) 2017-08-03

Family

ID=53267624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016568006A Expired - Fee Related JP6162350B1 (ja) 2014-05-20 2015-05-08 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム

Country Status (6)

Country Link
US (1) US9557797B2 (ja)
EP (1) EP3146409A1 (ja)
JP (1) JP6162350B1 (ja)
KR (1) KR101813441B1 (ja)
CN (1) CN106462465A (ja)
WO (1) WO2015179147A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160117199A1 (en) * 2014-10-28 2016-04-28 Samsung Electronics Co., Ltd. Computing system with thermal mechanism and method of operation thereof
US10528443B2 (en) * 2015-01-30 2020-01-07 Samsung Electronics Co., Ltd. Validation of multiprocessor hardware component
US20170160782A1 (en) * 2015-12-07 2017-06-08 Mediatek Inc. Share power source mechanism in a multicore processor system
US10013392B2 (en) 2016-01-26 2018-07-03 Intel Corporation Providing access from outside a multicore processor SoC to individually configure voltages
CN106227604A (zh) * 2016-07-27 2016-12-14 李媛媛 芯片中温度降低方法及系统
WO2018018448A1 (zh) * 2016-07-27 2018-02-01 李媛媛 芯片中温度降低方法及系统
US10064141B2 (en) 2016-12-09 2018-08-28 Qualcomm Incorporated Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
US10372495B2 (en) 2017-02-17 2019-08-06 Qualcomm Incorporated Circuits and methods providing thread assignment for a multi-core processor
KR102021822B1 (ko) * 2018-02-14 2019-09-17 임근일 다양한 레벨에서 그룹별로 동작하는 프로세서 코어들을 자동 제어하는 자동제어방법
US20190042351A1 (en) * 2018-04-02 2019-02-07 Intel Corporation Self-healing in a computing system using embedded non-volatile memory
EP3764235B1 (en) * 2019-07-12 2022-10-26 Ratier-Figeac SAS Field programmable gate array (fpga) having dissimilar cores
CN111538382B (zh) * 2020-04-16 2021-08-27 深圳比特微电子科技有限公司 一种数字货币矿机的启动方法、装置和数字货币矿机

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012511788A (ja) * 2008-12-11 2012-05-24 クアルコム,インコーポレイテッド 非対称マルチプロセッサに対する適応型スレッドスケジューリングのための装置および方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876874A (ja) 1994-09-06 1996-03-22 Hitachi Ltd 中央処理装置のクロック制御装置およびクロック制御方法
JPWO2003083693A1 (ja) 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
US7185215B2 (en) 2003-02-24 2007-02-27 International Business Machines Corporation Machine code builder derived power consumption reduction
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7072805B2 (en) 2003-10-17 2006-07-04 International Business Machines Corporation Mechanism for on-line prediction of future performance measurements in a computer system
JP4197672B2 (ja) 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
US9063785B2 (en) * 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
US20060107262A1 (en) * 2004-11-03 2006-05-18 Intel Corporation Power consumption-based thread scheduling
JP3914230B2 (ja) 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
JP4553307B2 (ja) 2004-11-19 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、制御方法、及びプログラム
US20070124618A1 (en) 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US8051276B2 (en) 2006-07-07 2011-11-01 International Business Machines Corporation Operating system thread scheduling for optimal heat dissipation
US8813080B2 (en) 2007-06-28 2014-08-19 Intel Corporation System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8555283B2 (en) 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8302098B2 (en) 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems
WO2009078081A1 (ja) * 2007-12-14 2009-06-25 Fujitsu Limited 半導体集積回路
US8635625B2 (en) 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US8543857B2 (en) 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
US8566836B2 (en) * 2009-11-13 2013-10-22 Freescale Semiconductor, Inc. Multi-core system on chip
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
US8571847B2 (en) 2010-01-08 2013-10-29 International Business Machines Corporation Efficiency of static core turn-off in a system-on-a-chip with variation
US8595731B2 (en) 2010-02-02 2013-11-26 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
US8589932B2 (en) 2010-07-02 2013-11-19 International Business Machines Corporation Data processing workload control
US8510582B2 (en) * 2010-07-21 2013-08-13 Advanced Micro Devices, Inc. Managing current and power in a computing system
US9261949B2 (en) 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8788866B2 (en) 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device
US8601300B2 (en) 2011-09-21 2013-12-03 Qualcomm Incorporated System and method for managing thermal energy generation in a heterogeneous multi-core processor
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US8996902B2 (en) 2012-10-23 2015-03-31 Qualcomm Incorporated Modal workload scheduling in a heterogeneous multi-processor system on a chip
US9933825B2 (en) * 2013-03-14 2018-04-03 Arizona Board Of Regents For And On Behalf Of Arizona State University Determining parameters that affect processor energy efficiency
US20140344827A1 (en) * 2013-05-16 2014-11-20 Nvidia Corporation System, method, and computer program product for scheduling a task to be performed by at least one processor core
US9342374B2 (en) 2013-06-28 2016-05-17 Dell Products, L.P. Method of scheduling threads for execution on multiple processors within an information handling system
US9886326B2 (en) 2014-02-13 2018-02-06 Advanced Micro Devices, Inc. Thermally-aware process scheduling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012511788A (ja) * 2008-12-11 2012-05-24 クアルコム,インコーポレイテッド 非対称マルチプロセッサに対する適応型スレッドスケジューリングのための装置および方法

Also Published As

Publication number Publication date
JP2017521752A (ja) 2017-08-03
KR101813441B1 (ko) 2017-12-28
US9557797B2 (en) 2017-01-31
EP3146409A1 (en) 2017-03-29
CN106462465A (zh) 2017-02-22
WO2015179147A1 (en) 2015-11-26
US20150338902A1 (en) 2015-11-26
KR20170008820A (ko) 2017-01-24

Similar Documents

Publication Publication Date Title
JP6162350B1 (ja) 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム
US9606843B2 (en) Runtime optimization of multi-core system designs for increased operating life and maximized performance
US20150169363A1 (en) Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance
US20170017576A1 (en) Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
JP6249953B2 (ja) ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング
US9063785B2 (en) Temperature-based thread scheduling
US9665489B2 (en) Methods of selecting available cache in multiple cluster system
US9947386B2 (en) Thermal aware data placement and compute dispatch in a memory system
KR20140122745A (ko) 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링
US10268247B2 (en) Thermal management of spatially dispersed operation processors
US20150268993A1 (en) Method for Exploiting Parallelism in Nested Parallel Patterns in Task-based Systems
US20170364136A1 (en) Wake Lock Aware System Wide Job Scheduling for Energy Efficiency on Mobile Devices
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
CN109791510B (zh) 在异构计算中管理数据流
US9582329B2 (en) Process scheduling to improve victim cache mode
JP2017528851A (ja) プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御
KR101682985B1 (ko) 우선순위 기반 지능형 플랫폼 패시브 열 관리
US20230214271A1 (en) Method of scheduling cache budget in multi-core processing device and multi-core processing device performing the same
Pandey et al. NeuroCool: Dynamic Thermal Management of 3D DRAM for Deep Neural Networks through Customized Prefetching
US10261831B2 (en) Speculative loop iteration partitioning for heterogeneous execution

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170407

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: 20170515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170614

R150 Certificate of patent or registration of utility model

Ref document number: 6162350

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

LAPS Cancellation because of no payment of annual fees