JP2010271930A - マルチコアプロセッサシステム - Google Patents

マルチコアプロセッサシステム Download PDF

Info

Publication number
JP2010271930A
JP2010271930A JP2009123294A JP2009123294A JP2010271930A JP 2010271930 A JP2010271930 A JP 2010271930A JP 2009123294 A JP2009123294 A JP 2009123294A JP 2009123294 A JP2009123294 A JP 2009123294A JP 2010271930 A JP2010271930 A JP 2010271930A
Authority
JP
Japan
Prior art keywords
power supply
thread
processor
core
power
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.)
Granted
Application number
JP2009123294A
Other languages
English (en)
Other versions
JP5091912B2 (ja
Inventor
Yuji Ishikawa
悠司 石川
Toshiki Kitsu
俊樹 岐津
Ryuichiro Oyama
隆一郎 大山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009123294A priority Critical patent/JP5091912B2/ja
Priority to US12/610,472 priority patent/US8214679B2/en
Publication of JP2010271930A publication Critical patent/JP2010271930A/ja
Application granted granted Critical
Publication of JP5091912B2 publication Critical patent/JP5091912B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

【課題】電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコア電源をオン・オフすることができるマルチコアプロセッサシステムを提供する。
【解決手段】複数のプロセッサコア1a〜1fと、複数のプロセッサコア1a〜1fの夫々へ個別に電源を停止/供給する電源系4と、複数のプロセッサコア1a〜1fに実行させるスレッドを蓄積するスレッドキュー33と、を備え、夫々のプロセッサコア1a〜1fは、スレッドキュー33に蓄積されているスレッド数が第1しきい値以下である場合、電源系4に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、スレッド数が第1しきい値以上の値である第2しきい値を越える場合、電源供給が停止されている他のプロセッサコアへの電源供給を電源系4に再開させる電源供給再開手段と、を備える。
【選択図】図1

Description

本発明は、マルチコアプロセッサシステムに関する。
従来、組み込み向けマルチコアプロセッサには、消費電力の削減のためにプロセッサコアごとに電源をオン・オフする機能を備えるものがある。
例えば特許文献1に開示されている技術によれば、パケット処理プロセッサはキューアクセス機能に基づいてパケット処理を行い、キュー監視プロセッサはパケット処理プロセッサのキューに格納されているデータ量に基づいてパケット処理プロセッサの電源制御を実行する。また、特許文献2に開示されている技術によれば、システム状態監視部はシステムの負荷状態を監視し、システム状態制御部はシステム状態監視部からの通知に基づいて個々のプロセッサコアの消費電力を制御する。
しかしながら、従来技術によれば、システムの負荷状態を監視したり電源制御を行うためのプロセッサコアや専用のハードウェアを用意しなければならず、コストがかかるという問題があった。
特開2008−129846号公報 特開平8−6681号公報
本発明は、電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコア電源をオン・オフすることができるマルチコアプロセッサシステムを提供することを目的とする。
本願発明の一態様によれば、複数のプロセッサコアと、前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、前記複数のプロセッサコアに実行させるスレッドを蓄積するスレッドキューと、を備え、前記夫々のプロセッサコアは、前記スレッドキューに蓄積されているスレッド数が第1しきい値以下である場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、前記スレッドキューに蓄積されているスレッド数が前記第1しきい値以上の値である第2しきい値を越える場合、電源供給が停止されている他のプロセッサコアへの電源供給を前記電源系に再開させる電源供給再開手段と、を備えることを特徴とするマルチコアプロセッサシステムが提供される。
また、本願発明の一態様によれば、複数のプロセッサコアと、前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、前記複数のプロセッサコアに実行させるスレッドを蓄積するスレッドキューと、を備え、前記夫々のプロセッサコアは、自プロセッサコアのリソースが前記スレッドキューに蓄積されている何れのスレッドのリソース要求も満たさない場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、電源供給が停止されている他のプロセッサコアのうち前記スレッドキューに蓄積されているスレッドのリソース要求を満たすリソースを有するプロセッサコアがある場合、該プロセッサコアへの電源供給を再開させる電源供給再開手段と、を備えることを特徴とするマルチコアプロセッサシステムが提供される。
また、本願発明の一態様によれば、複数のプロセッサコアと、前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、タイマと、前記複数のプロセッサコアに実行させるスレッドを実行に必要となる時間を示す計算時間情報とともに蓄積するスレッドキューと、前記夫々のプロセッサコア毎の実行中のスレッドの終了予想時刻を記録するスレッド終了予想時刻テーブルと、を備え、前記夫々のプロセッサコアは、スレッドを前記スレッドキューから取得したとき、前記スレッドキューに蓄積されていた計算時間情報と前記タイマの値とに基づいて前記取得したスレッドの終了予測時刻を算出し、前記算出した終了予測時刻を前記スレッド終了予想時刻テーブルに書き込む終了予想時刻記録手段と、前記スレッド終了予想時刻テーブルと前記タイマの値とに基づいて間近にスレッド実行を終了する見込みのプロセッサコアの数である終了見込みコア数を算出し、前記スレッドキューに蓄積されているスレッド数から前記算出した終了見込みコア数を減算した値が第1しきい値以下である場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、前記スレッドキューに蓄積されているスレッド数から前記算出した終了見込みコア数を減算した値が前記第1しきい値以上の値である第2しきい値を越える場合、前記電源系に電源供給が停止されている他のプロセッサコアへの電源供給を再開させる電源供給再開手段と、を備えることを特徴とするマルチコアプロセッサシステムが提供される。
本発明によれば、電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコア電源をオン・オフすることができるマルチコアプロセッサシステムを提供することができる、という効果を奏する。
図1は、第1の実施の形態のマルチコアプロセッサシステムの構成を示す図。 図2は、ユーザプログラムを実行している様子を説明する概略図。 図3は、スレッドキュー33のデータ構造を説明する図。 図4は、プロセッサコアに生成される機能を説明する図。 図5は、第1の実施の形態のプロセッサコアの動作を説明するフローチャート。 図6は、第2の実施の形態のマルチコアプロセッサシステムの構成を示す図。 図7は、コア電源オフ時刻テーブルの一例を説明する図。 図8は、プロセッサコアに生成される機能を説明する図。 図9は、第2の実施の形態のプロセッサコアの動作を説明するフローチャート。 図10は、第3の実施の形態のマルチコアプロセッサシステムの特徴を概略的に説明するための図。 図11は、第3の実施の形態のプロセッサコアの動作を説明するフローチャート。 図12は、スレッド実行コアの状態の変化を説明する図。 図13は、マルチコアプロセッサシステムの動作の概略を説明する図である。 図14は、第3の実施の形態のプロセッサコアの動作を説明するフローチャート。 図15は、第4の実施の形態のマルチコアプロセッサシステムの動作の概略を説明する図。 図16は、要求リソースリストのデータ構造の一例を説明する図。 図17は、プロセッサコアリソースリストのデータ構造の一例を説明する図。 図18は、第4の実施の形態のプロセッサコアの動作を説明するフローチャート。 図19は、第5の実施の形態のマルチコアプロセッサシステムの概略を説明する図。 図20は、スレッドキューのデータ構造を説明する図。 図21は、第5の実施の形態のプロセッサコアの動作を説明するフローチャート。 図22は、第6の実施の形態のマルチコアプロセッサシステムの概略を説明する図。 図23は、スレッド終了予想時刻テーブルの一例を説明する図。 図24は、スレッドキューのデータ構造を説明する図。 図25は、プロセッサコアに生成される機能を説明する図。 図26は、第6の実施の形態のプロセッサコアの動作を説明するフローチャート。
以下に添付図面を参照して、本発明の実施の形態にかかるマルチコアプロセッサシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、本発明にかかる第1の実施の形態のマルチコアプロセッサシステムの構成を示すブロック図である。図示するように、第1の実施の形態のマルチコアプロセッサシステムは、マルチコアプロセッサ1と、ROM(Read Only Memory)2と、RAM(Random Access Memory)3と、電源系4と、を備えている。マルチコアプロセッサ1、ROM2、RAM3はバスを介して夫々接続されている。
マルチコアプロセッサ1は、複数(ここでは6個)のプロセッサコア1a、1b、1c、1d、1e、1fを備えている。なお、図中ではプロセッサコアを単にコアと表記している。マルチコアプロセッサ1が備える夫々のプロセッサコア1a〜1fは、後述する基本プログラム31に基づき、個別に電源系4にアクセスし、自プロセッサコアに対する電源の供給を停止させる信号や、他の電源供給が停止されているプロセッサコアへ電源を供給させる信号を電源系4に送信することができる。電源系4は、プロセッサコア1a〜1fから受信する電源を停止/供給させる信号(電源制御信号)に基づいて、プロセッサコア1a〜1fの夫々に個別に電源を停止/供給する。なお、以降、プロセッサコア1a〜1fへの電源供給を停止することを、単にプロセッサコア1a〜1fの電源をオフする、と表現することもある。また、電源オフ状態のプロセッサコアへの電源を供給することを、単にプロセッサコアの電源をオンする、と表現することもある。
マルチプロセッサシステムの用途に合わせて用意されるコンピュータプログラムであるユーザプログラム32およびマルチプロセッサシステム上でユーザプログラム32を実行するために必要となる基本処理を提供するコンピュータプログラムである基本プログラム31は、ROM2内に格納されており、バスを介してRAM3へロードされる。マルチコアプロセッサ1は、RAM3にロードされた基本プログラム31に基づき、ユーザプログラム32を実行する。
図2は、プロセッサコア1a〜1fがユーザプログラム32を実行している様子を説明する概略図である。ここでは、プロセッサコア1eおよびプロセッサコア1fがユーザプログラム32により生成されるアプリケーションタスクを実行し、アプリケーションタスクは、ユーザプログラム32に基づいてスレッドを発行する。生成されたスレッドは実行待ち状態となり、スレッドキューに保存(蓄積)される。なお、スレッドキューはRAM3内にスレッドキュー33として保持される。また、スレッドキューに保存されているスレッドを待機スレッドと表現することもある。スレッドキューは先入れ先出し(FIFO)のルールで待機中のスレッドを出し入れする。アプリケーションタスクを実行していないプロセッサコア1a〜1dには、生成されたスレッドを実行するためのタスクであるスレッド制御タスクが動作している。なお、スレッド制御タスクは基本処理の一環として基本プログラム31により生成されるタスクである。プロセッサコア1a〜1dにて動作しているスレッド制御タスクは、スレッドキュー33からスレッドを取得し、スレッドの実行が終わると、さらにスレッドキュー33から別のスレッドを取得する。
図3は、スレッドキュー33のデータ構造を説明する図である。図示するように、スレッドキュー33に格納されている各スレッドは、スレッドを識別するためのIDと、RAM3にロードされているユーザプログラム32における該当部分の開始アドレスであるスレッド処理開始アドレスと、から構成されている。スレッド制御タスクは、スレッド処理開始アドレスから該当するプログラムを取り出して実行する。
図4は、プロセッサコア1aが基本プログラム31を実行することにより生成される機能を説明する図である。図示するように、基本プログラム31は、プロセッサコア1aに、基本制御手段101a、電源供給停止手段102aおよび電源供給再開手段103aを生成する。基本制御手段101aは、アプリケーションタスクやスレッド制御タスクを起動する。電源供給停止手段102aは、スレッド制御タスクに実装され、スレッドキュー33に待機スレッドがない場合、自プロセッサ1aの電源をオフするための電源制御信号を電源系4に送信する。電源供給再開手段103aは、自プロセッサコア1aで動作しているアプリケーションタスクやスレッドが新たにスレッドを生成した際、すなわちスレッドキュー33に待機スレッドができた場合、他のプロセッサコアの電源をオンする試み(電源供給再開試行処理)を実行する。なお、プロセッサコア1b〜1fも基本プログラム31に基づいて上述のプロセッサコア1aと同様の機能を夫々生成するが、説明が重複するのでプロセッサコア1b〜1fに関する機能については説明を省略する。
次に、本第1の実施の形態のマルチコアプロセッサシステムの動作を説明する。図5(a)〜(c)は、プロセッサコア1a〜1fの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、ここでは代表としてプロセッサコア1aの動作についてのみ説明する。
図5(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS101)、アプリケーションタスクの割り当てがある場合(ステップS101、Yes)、アプリケーションタスクを実行する(ステップS102)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS101に移行する。
ステップS101において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS101、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS103)。スレッド制御タスクは、スレッドキュー33を参照し、待機スレッド数が0を越える、すなわち待機スレッド数が1以上であるか否かを判定する(ステップS104)。待機スレッドが一つもない場合(ステップS104、No)、スレッド制御タスクは、自プロセッサコア1aの電源をオフするための電源制御信号を電源系4に送信して電源をオフし(ステップS105)、動作を停止する。動作を停止した後、電源供給再開試行処理により電源供給が再開されると、ステップS101から再度動作を開始する。
待機スレッド数が0を越える、すなわち1以上である場合(ステップS104、Yes)、スレッド制御タスクはスレッドキュー33からスレッドを取得する(ステップS106)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS107)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS108)。スレッド制御タスクがスレッドの実行を完了すると、ステップS101に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS102)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS108)も新たなスレッドを生成する場合がある。図5(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS111)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS112)、リターンとなる。
図5(c)は、ステップS107およびステップS112において実行される電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段103aは、待機スレッド数が0を越えるか否かを判定する(ステップS121)。電源供給再開手段103aは、待機スレッド数が1以上である場合(ステップS121、Yes)、電源オフ状態のプロセッサコアがあるか否かをさらに判定する(ステップS122)。電源オフ状態のプロセッサコアがあった場合(ステップS122、Yes)、電源オフ状態のプロセッサのうちID番号が一番小さいプロセッサコアの電源をオンするための電源制御信号を電源系4に送信して該プロセッサコアの電源をONし(ステップS123)、電源供給再開試行処理の動作はリターンとなる。なお、ID番号とは、プロセッサコア1a〜1fを夫々識別するための識別子である。ステップS121において待機スレッド数が1以上ではなかったり(ステップS121、No)、ステップS122において電源オフ状態のプロセッサコアがなかった場合(ステップS122、No)、そのまま電源供給再開試行処理の動作はリターンとなる。
なお、以上の説明においては、説明を簡単にするために、スレッドキュー33の本数が一つしかない場合を想定して説明を行ったが、スレッド制御タスクが全てのスレッドキューを確認するように拡張することでスレッドキュー33が複数本ある場合にも対応することが出来る。また、電源供給再開試行処理の動作の説明においてはステップS123において1個のプロセッサコアの電源をオンにするとして説明したが、一回に複数個のプロセッサコアの電源をオンするようにしてもよい。
以上述べたように、第1の実施の形態によれば、夫々のプロセッサコアは、待機スレッド数が0である場合、電源系4に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、待機スレッド数が0を越える場合、電源系4に電源供給が停止されている他のプロセッサコアへの電源供給を再開させる電源供給再開手段と、を備えるように構成したので、電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコアに供給する電源をオン・オフすることができるようになる。
なお、第1の実施の形態によれば、ユーザプログラムではなく基本プログラムが電源供給停止手段および電源供給再開手段を生成するようにしたので、ユーザはプロセッサコア電源をオン・オフさせるための処理をユーザプログラムに記述する必要を免れることができるという効果もある。
(第2の実施の形態)
第1の実施の形態の構成によれば、プロセッサコアは、電源供給再開試行処理において、待機スレッド数が0を越える場合(すなわち1以上である場合)電源オフ状態のプロセッサコアの電源をオンするようにした。したがって、待機スレッド数が頻繁に0なる場合、電源が頻繁にオン・オフされる事態が発生する。しかしながら、電源オン状態からオフ状態およびオフ状態からオン状態に移行するとき、電源が供給される対象の静電容量に相当する電流が流れるため、低消費電力化の観点からは電源オン・オフの頻度はあまり高くないほうがよい。そこで、第2の実施の形態では、電源がオフされてからの経過時間が所定の時間以上経過したとき、電源オンすることを許可するようにした。
図6は、第2の実施の形態のマルチコアプロセッサシステムの構成を説明する図である。図示するように、第2の実施の形態のマルチコアプロセッサシステムは、第1の実施の形態の構成に時刻を計測するタイマ5を加え、さらにRAM3にはプロセッサコア毎に電源供給が停止された時刻が記録されるコア電源オフ時刻テーブル34を記憶している。
図7は、コア電源オフ時刻テーブル34の一例を説明する図である。図7によれば、コア電源オフ時刻テーブル34は、コアID(プロセッサコアのID番号)が0および1のプロセッサコアへの電源供給が時刻「0」にオフされ、コアIDが2のプロセッサコアへの電源供給が時刻「123400」にオフされていることを示している。なお、時刻はどのような単位で記録されるようにしてもよいが、例えばタイマ5が起動されてからのサイクル数であってよい。
また、第2の実施の形態のマルチコアプロセッサシステムは、RAM3に基本プログラム35がロードされている。図8は、プロセッサコア1aが基本プログラム35を実行することにより生成される機能を説明する図である。図示するように、プロセッサコア1aは、第1の実施の形態と同様の基本制御手段101aのほか、電源供給停止手段104aおよび電源供給再開手段105aとを生成する。電源供給停止手段104aは、スレッド制御タスクに実装され、スレッドキュー33に取得すべきスレッドがない場合、タイマ5を参照して現在時刻を取得し、コア電源オフ時刻テーブル34に自プロセッサコア1aのコアIDと取得した現在時刻を記録し、自プロセッサ1aの電源をオフするための電源制御信号を電源系4に送信する。電源供給再開手段105aは、自プロセッサコア1aで動作しているアプリケーションタスクやスレッドが新たにスレッドを生成した際、電源供給再開試行処理を実行する。そのとき、電源供給再開手段105aは、タイマ5およびコア電源オフ時刻テーブル34を参照し、電源オフ状態のプロセッサコアのうち、電源オフ状態となってから現在までに経過した時間が予め設定されている所定の時間(オン禁止期間)以上経過しているプロセッサコアの電源をオンする。なお、プロセッサコア1b〜1fも基本プログラム35に基づいて上述のプロセッサコア1aと同様の機能を夫々生成するが、説明が重複するのでプロセッサコア1b〜1fに関する機能については説明を省略する。
図9は、本第2の実施の形態のマルチコアプロセッサシステムの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、ここでは代表としてプロセッサコア1aの動作について説明する。
図9(a)に示すように、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS201)、アプリケーションタスクの割り当てがある場合(ステップS201、Yes)、アプリケーションタスクを実行する(ステップS202)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS201に移行する。
ステップS201において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS201、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS203)。続いて、スレッド制御タスクは、スレッドキュー33を参照し、待機スレッド数が0を越えるか否かを判定する(ステップS204)。待機スレッド数が0を越えない、すなわち待機スレッドが一つもない場合(ステップS204、No)、スレッド制御タスクは、タイマ5を参照して現在時刻を取得し(ステップS205)、自プロセッサコア1aのコアIDと前記取得した現在時刻をコア電源オフ時刻テーブル34に記録する(ステップS206)。そして、スレッド制御タスクは、自プロセッサコア1aへの電源供給を遮断する電源制御信号を電源系4に送信して電源をオフし(ステップS207)、動作を停止する。
待機スレッド数が0を越える、すなわち待機スレッドが一つ以上存在している場合(ステップS204、Yes)、スレッド制御タスクはスレッドキュー33からスレッドを取得する(ステップS208)。すると、電源供給再開手段105aは、電源供給再開試行処理を実行する(ステップS209)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS210)。スレッド制御タスクがスレッドの実行を完了すると、ステップS201に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS202)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS210)も新たなスレッドを生成する場合がある。図9(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS221)。すると、電源供給再開手段105aは、電源供給再開試行処理を実行し(ステップS222)、リターンとなる。
図9(c)は、ステップS209およびステップS222において実行される電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段105aは、待機スレッド数が0を越える、すなわち1以上か否かを判定する(ステップS231)。電源供給再開手段105aは、待機スレッド数が1以上である場合(ステップS231、Yes)、電源オフ状態のプロセッサコアを一つ選択する(ステップS232)。なお、ここで電源供給再開手段105aが選択した電源オフ状態のプロセッサコアのID番号をiとする。続いて、電源供給再開手段105aは、タイマ5から現在時刻を取得し、コア電源オフ時刻テーブル34からID番号iのプロセッサコアの停止時刻を取得し、現在時刻とこのプロセッサコアの停止時刻とを比較することによってプロセッサコアの停止時刻からオン禁止期間以上の時間が経過したか否かを判定する(ステップS233)。オン禁止期間以上の時間が経過した場合(ステップS233、Yes)、電源供給再開手段105aは、ID番号がiのプロセッサコアの電源をオンするための電源制御信号を電源系4に送信してこのプロセッサコアの電源をオンし(ステップS234)、電源供給再開試行処理の動作はリターンとなる。
オン禁止期間以上の時間が経過していない場合(ステップS233、No)、電源供給再開手段105aは、電源オフ状態のプロセッサコアを全て選択したか否かを判定し(ステップS235)、選択した場合(ステップS235、Yes)、電源供給再開試行処理の動作はリターンとなる。未選択のプロセッサコアが残っている場合(ステップS235、No)、電源供給再開手段105aは、ステップS232に移行して未選択のプロセッサコアのうちからさらに一つプロセッサコアを選択する。なお、プロセッサコアの選択の順番はどのような順番であってもかまわないが、例えばID番号が小さいプロセッサコアを優先して選択するようにするとよい。
以上のように、第2の実施の形態によれば、電源供給停止手段は、自プロセッサコアへの電源供給を停止させる前に、タイマ5を参照して時刻を取得し、コア電源オフ時刻テーブル34に取得した時刻を記録し、電源供給再開手段は、待機スレッド数が0を越える場合、電源供給が停止されているプロセッサコアのうちのコア電源オフ時刻テーブル34に記録されている電源オフされた時刻から所定の時間(オン禁止期間)が経過したプロセッサコアへの電源供給を再開させる、ように構成したので、プロセッサコアの電源が頻繁にオン・オフされるのを防ぐことができるようになる。プロセッサコアの電源オン・オフの際には大きな電流が流れるので、頻繁な電源オン・オフを避けることで消費電力の削減を実現できる。
なお、以上説明した第2の実施の形態によれば、スレッド発行時にプロセッサコアの電源オンに失敗する可能性があるで、負荷の増加に対する追従性が悪くなることが予想される。これを回避するために、稼働中のコアにおいて一定期間毎に電源供給再開試行処理を実行するようにしてもよい。
(第3の実施の形態)
第1の実施の形態では、待機スレッド数がゼロの場合、自プロセッサコアの電源をオフし、待機スレッド数が0を越える場合、他のプロセッサコアの電源をオンする。しかしながら、これでは電源のオン・オフが頻繁に起こってしまい、低消費電力化の観点から鑑みると好ましくないことは第2の実施の形態ですでに述べた。第3の実施の形態では、自プロセッサコアの電源をオフするか否か、および他のプロセッサコアの電源をオンするか否かを、待機スレッド数がゼロか否かではなく待機スレッド数が予め設定された夫々異なるしきい値を越えるか否かにより判定するようにした。以下、第3の実施の形態について説明する。なお、第3の実施の形態の構成は第1の実施の形態と同様であるので、図1に示した構成図を用いて説明することとする。また、第3の実施の形態のプロセッサコア1a〜1fが生成する機能は、電源オン・オフのための判定に使用するしきい値が異なるだけであって、他の機能構成はほぼ同じであるので、本第3の実施の形態の機能構成を説明する図として図4をそのまま用いて説明する。
図10は、第3の実施の形態のマルチコアプロセッサシステムの特徴を概略的に説明するための図である。図示するように、プロセッサコア1eおよびプロセッサコア1fはアプリケーションタスクを実行しており、夫々アプリケーションタスクに基づいてスレッドを生成し、生成したスレッドをスレッドキュー33に加える。プロセッサコア1a〜1dは、スレッド制御タスクを実行しており、スレッドキュー33からスレッドを取り出して実行する。ここで、スレッドキュー33にて待機中のスレッドの個数について2種類のしきい値(しきい値Aおよびしきい値B)が設定されている。スレッド制御タスクは、待機スレッド数がしきい値Aを越えない場合、自プロセッサコアの電源をオフする。なお、待機スレッド数がしきい値Aを越えない場合であっても、待機スレッド数が1以上かつスレッドを実行しているプロセッサコアが他に無い場合、例外的な処理として自プロセッサコアの電源をオフしないようにする。また、電源供給再開手段103aは、待機スレッド数がしきい値Bを越え、かつ他に電源オフ状態のプロセッサコアがある場合、そのプロセッサコアの電源をオンする。ここで、しきい値B>しきい値A≧0の関係を満たすように各しきい値を設定するようにしておく。図10では、しきい値Aが1、しきい値Bが3となっている。
次に、本第3の実施の形態のマルチコアプロセッサシステムの動作を説明する。図11(a)〜(c)は、プロセッサコア1a〜1fの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、代表としてプロセッサコア1aの動作についてのみ説明する。
図11(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS301)、アプリケーションタスクの割り当てがある場合(ステップS301、Yes)、アプリケーションタスクを実行する(ステップS302)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS301に移行する。
ステップS301において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS301、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS303)。スレッド制御タスクは、スレッドキュー33を参照し、待機スレッド数がしきい値Aを越えるか否かを判定する(ステップS304)。待機スレッドがしきい値A以下である場合(ステップS304、No)、スレッド制御タスクは、スレッドを実行中のプロセッサコアが他に存在せず、かつ、待機スレッドが存在するという条件を満たすか否かをさらに判定する(ステップS305)。前記条件を満たさない場合(ステップS305、No)、スレッド制御タスクは、自プロセッサコアの電源をオフする電源制御信号を電源系4に送信し、自プロセッサコアの電源をオフし(ステップS306)、動作を停止する。
待機スレッド数がしきい値Aを越える場合(ステップS304、Yes)、およびステップS305における判定条件が満たされている場合(ステップS305、Yes)、ステップ制御タスクは、スレッドキュー33からスレッドを取得する(ステップS307)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS308)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS309)。スレッド制御タスクがスレッドの実行を完了すると、ステップS301に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS302)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS309)も新たなスレッドを生成する場合がある。図11(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS311)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS312)、リターンとなる。
図11(c)は、ステップS308およびステップS312において実行される電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段103aは、待機スレッド数がしきい値Bを越えるか否かを判定する(ステップS321)。電源供給再開手段103aは、待機スレッド数がしきい値Bを越える場合(ステップS321、Yes)、電源オフ状態のプロセッサコアがあるか否かをさらに判定する(ステップS322)。電源オフ状態のプロセッサコアがあった場合(ステップS322、Yes)、電源オフ状態のプロセッサのうちID番号が一番小さいプロセッサコアの電源をオンするための電源制御信号を電源系4に送信して、該プロセッサコアの電源をONし(ステップS323)、電源供給再開試行処理の動作はリターンとなる。ステップS321において待機スレッド数がしきい値Bを越えなかったり(ステップS321、No)、ステップS322において電源オフ状態のプロセッサコアがなかった場合(ステップS322、No)、そのまま電源供給再開試行処理の動作はリターンとなる。
図12は、しきい値Aの値を2、しきい値Bの値を6とした場合のスレッド実行コアの状態の変化を説明する図である。最初にスレッドキュー33内にスレッドが4個待機し、二つのプロセッサコア1a、1bがスレッドを実行中であるとする。また、ここでは、プロセッサコア1fはアプリケーションタスクを実行しているとし、この図ではスレッド実行コアの状態として表示していない。ここで、時刻1000にアプリケーションタスクがスレッドを4個キューに追加する。これによって待機スレッド数が8個となり、待機スレッド数がしきい値Bを越えたので、まずプロセッサコア1cが起動され、さらにプロセッサコア1cの電源供給再開手段の動作によりプロセッサコア1dが起動される。以降、時刻5000に至るまで4つのプロセッサコア1a〜1dが順次スレッドを取得・実行していく。時刻6000では、待機スレッド数がしきい値A以下になるので、プロセッサコア1aのスレッド制御タスクはスレッドを取得せずに自プロセッサコア1aの電源をオフ、すなわち自プロセッサコア1aを停止させる。時刻7000にアプリケーションタスクがスレッドを3個スレッドキュー33に追加する。待機スレッド数は5となるが、待機スレッド数はしきい値Bを上回らないのでプロセッサコアの電源オンは行われない。以降、時刻10000に至るまで3つのプロセッサコア1b〜1dは順次スレッドを取得・実行する。時刻11000、12000には待機スレッド数がしきい値A以下になるので、プロセッサコア1b、1cが夫々停止する。時刻13000にプロセッサコア1dでスレッドの実行が終了するが、プロセッサコア1dは最後のスレッド実行コアであり、かつ、スレッドキューにスレッドが残っているため、プロセッサコア1dのスレッド制御タスクは自プロセッサコア1dを停止せずにスレッドの取得・実行を行う。時刻15000にはプロセッサコア1dでは最後のスレッドの実行が終了し、プロセッサコア1dのスレッド制御タスクは自プロセッサコア1dを停止させる。
このように、第3の実施の形態によれば、待機スレッド数がしきい値A(第1しきい値)以下である場合、電源系4に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、しきい値Aを越える値であるしきい値B(第2しきい値)を待機スレッド数が越える場合、電源系4に電源供給が停止されている他のプロセッサコアへの電源供給を再開させる電源供給再開手段と、を備えるように構成したので、プロセッサコアの電源が頻繁にオン・オフされるのを防ぐことができるようになる。
ところで、以上の説明においては、しきい値B>しきい値A≧0の関係を満たすように各しきい値を設定する、として説明したが、しきい値A=しきい値B=0とした場合、第1の実施の形態に等しくなる。また、しきい値B=しきい値A>0とした場合、電源が頻繁にオン・オフされることを防ぐことはできないものの、第1の実施の形態と同様の効果を得ることができる。
なお、第3の実施の形態を拡張して、スレッドを実行中のプロセッサコアの個数の増減に応じてしきい値A、しきい値Bを増減させるようにしてもよい。図13は、スレッドを実行中のプロセッサコアの個数に応じてしきい値Aおよびしきい値Bを増減させる場合のマルチコアプロセッサシステムの動作の概略を説明する図である。図13においては、スレッドを実行中のプロセッサコアの個数が1個以下の場合、しきい値Aの値はゼロ、2個の場合はしきい値Aの値は2、3個以上の場合はしきい値Aの値は3となる。このように、スレッド実行中のプロセッサコアの個数の増加するに伴ってしきい値Aの値を増加させるようにする。また、スレッドを実行中のプロセッサコアの個数がゼロの場合、しきい値Bの値はゼロ、1個の場合はしきい値Bの値は3、2個の場合はしきい値Bの値は5、3個以上の場合はしきい値Bの値は7となる。このように、スレッド実行中のプロセッサコアの個数が増加するに伴ってしきい値Bの値を増加させるようにする。
図14は、スレッドを実行中のプロセッサコアの個数の増減に応じてしきい値Aおよびしきい値Bを増減させる場合の動作を説明する図である。図14(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS401)、アプリケーションタスクの割り当てがある場合(ステップS401、Yes)、アプリケーションタスクを実行する(ステップS402)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS401に移行する。
ステップS401において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS401、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS403)。スレッド制御タスクは、スレッドキュー33を参照し、待機スレッド数がその時点におけるスレッドを実行中のプロセッサコア数に応じて定まるしきい値Aを越えるか否かを判定する(ステップS404)。待機スレッド数がしきい値Aを越えない場合(ステップS404、No)、スレッド制御タスクは、自プロセッサコア1aの電源をオフするための電源制御信号を電源系4に送信して電源をオフし(ステップS405)、動作を停止する。待機スレッド数がしきい値Aを越える場合(ステップS404、Yes)、スレッド制御タスクはスレッドキュー33からスレッドを取得する(ステップS406)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS407)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS408)。スレッド制御タスクがスレッドの実行を完了すると、ステップS401に移行する。
図14(b)は、アプリケーションタスクおよびスレッド実行によりスレッドが生成される時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS411)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS412)、リターンとなる。
図14(c)は、電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段103aは、待機スレッド数がその時点におけるスレッド実行中のプロセッサコア数に応じて定まるしきい値Bを越えるか否かを判定する(ステップS421)。電源供給再開手段103aは、待機スレッド数がしきい値Bを越える場合(ステップS421、Yes)、電源オフ状態のプロセッサコアがあるか否かをさらに判定する(ステップS422)。電源オフ状態のプロセッサコアがあった場合(ステップS422、Yes)、電源オフ状態のプロセッサのうちID番号が一番小さいプロセッサコアの電源をオンするための電源制御信号を電源系4に送信して、該プロセッサコアの電源をONし(ステップS423)、電源供給再開試行処理の動作はリターンとなる。ステップS421において待機スレッド数がしきい値Bを越えなかったり(ステップS421、No)、ステップS422において電源オフ状態のプロセッサコアがなかった場合(ステップS422、No)、そのまま電源供給再開試行処理の動作はリターンとなる。
このように、スレッドを実行中のプロセッサコアが多いときはしきい値Aを増加させて電源オンを起こりにくくし、スレッドを実行中のプロセッサコアが少ないときはしきい値Bを減少させて電源オフを起こりにくくすることによって、プロセッサコアの電源オン・オフの頻度をさらに低減することができるようになる。
(第4の実施の形態)
プロセッサコア毎にリソースが異なるマルチコアプロセッサシステムが使用される場合がある。そこで、第4の実施の形態によれば、要求リソースが異なるスレッド毎に異なるスレッドキューに蓄え、スレッド制御タスクは自プロセッサコアで実行可能なスレッドが蓄えられているスレッドキューからスレッドを取得する。
図15は第4の実施の形態の概略を説明する図である。ここでは、スレッドキュー33は複数本(ここでは2本)のスレッドキューに分かれており、第4の実施の形態のマルチコアプロセッサシステムは、スレッドキュー毎の要求リソースを記述した要求リソースリスト36およびプロセッサコア毎のリソースを記述したプロセッサコアリソースリスト37を有している。要求リソースリスト36およびプロセッサコアリソースリスト37の記憶場所は特に限定しないが、例えばRAM3であってよい。なお、本第4の実施の形態のマルチコアプロセッサシステムの構成は要求リソースリスト36およびプロセッサコアリソースリスト37以外の構成は第1の実施の形態と等しいので、要求リソースリスト36およびプロセッサコアリソースリスト37以外の構成についての説明は省略し、以降、第1の実施の形態の構成部名および符号を用いて説明する。また、本第4の実施の形態の機能構成についても第1の実施の形態とほぼ等しいため、第1の実施の形態と同じ機能構成名および符号を用いて説明する。
図16は要求リソースリスト36のデータ構造の一例を説明する図である。図示するように、要求リソースリスト36では、スレッドキュー毎の識別子であるキューIDと格納するスレッドの要求リソースとが対応付けられている。この例においては、キューIDが0のスレッドキューに格納されるスレッドを実行するプロセッサコアには、スクラッチパッドメモリが少なくとも4キロバイトのサイズを持ち、かつ乗算命令を実行することができることが要求される。また、キューIDが1のスレッドキューに格納されているスレッドを実行するプロセッサコアには、スクラッチパッドメモリのサイズが8キロバイト以上あることが要求される。
図17は、プロセッサコアリソースリスト37のデータ構造の一例を説明する図である。図示するように、このプロセッサコアリソースリスト37によれば、コアIDが0のプロセッサコアは、8キロバイトのスクラッチバッドメモリを持ち、コアIDが1のプロセッサコアは4キロバイトのスクラッチパッドメモリを持ち、かつ乗算命令を実行することが可能であることが示されている。つまり、図16および図17の例によれば、コアIDが0のプロセッサコアは、キューIDが1のスレッドキューに蓄えられているスレッドを実行することができ、コアIDが1のプロセッサコアは、キューIDが0のスレッドキューに蓄えられているスレッドを実行することができることになる。
図18(a)〜(c)は、本第4の実施の形態のプロセッサコア1a〜1fの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、ここでは代表としてプロセッサコア1aの動作についてのみ説明する。
図18(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS501)、アプリケーションタスクの割り当てがある場合(ステップS501、Yes)、アプリケーションタスクを実行する(ステップS502)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS501に移行する。
ステップS501において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS501、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS503)。スレッド制御タスクは、要求リソースリスト36およびプロセッサコアリソースリストを参照し、自プロセッサコア1aのリソースが要求リソースを満たすスレッドキューを一つ選択し(ステップS504)、選択したスレッドキューに待機スレッドがあるか否かを判定する(ステップS505)。待機スレッドが無かった場合(ステップS505、No)、スレッド制御タスクは、自プロセッサコア1aのリソースが要求リソースを満たすスレッドキューを全て選択したか否かを判定し(ステップS506)、全て選択していない場合(ステップS506、No)、ステップS504に移行して未選択のスレッドキューを一つ選択する。全て選択済みの場合(ステップS506、Yes)、電源供給再開手段103aは電源供給再開試行処理を実行し(ステップS507)、スレッド制御タスクは電源系4に信号を送信して自プロセッサ1aの電源をオフさせ(ステップS508)、停止する。なお、ステップS504において自プロセッサコア1aのリソースが要求リソースを満たすスレッドキューが無かった場合、ステップS505をスキップしてステップS507に移行する。
ステップS505において、スレッドキューに待機スレッドがあった場合(ステップS505、Yes)、スレッド制御タスクは選択したスレッドキューからスレッドを取得する(ステップS509)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS510)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS511)。スレッド制御タスクがスレッドの実行を完了すると、ステップS501に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS502)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS511)も新たなスレッドを生成する場合がある。図18(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS521)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS522)、リターンとなる。
図18(c)は、電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段103aは、スレッドキューを一つ選択し(ステップS531)、選択したスレッドキューに待機スレッドがあるか否かを判定する(ステップS532)。待機スレッドが無かった場合(ステップS532、No)、電源供給再開手段103aは、未選択のスレッドキューがあるか否かをさらに判定し(ステップS533)、未選択のスレッドキューがあった場合(ステップS533、No)、ステップS531に移行して未選択のスレッドキューのうちから一つのスレッドキューをさらに選択する。
ステップS532において、選択したスレッドキューに待機スレッドがあった場合(ステップS532、Yes)、電源供給再開手段103aは、要求リソースリスト36およびプロセッサコアリソースリストを参照し、選択したスレッドキューの要求を満たす停止中のプロセッサコアがあるか否かをさらに判定する(ステップS534)。選択したスレッドキューの要求を満たす停止中のプロセッサコアが無かった場合(ステップS534、No)、ステップS533に移行し、選択したスレッドキューの要求を満たす停止中のプロセッサコアがあった場合(ステップS534、Yes)、電源供給再開手段103aは、電源系4に信号を送信して前記選択したスレッドキューの要求を満たす停止中のプロセッサコアのうちのコアIDが一番小さいプロセッサコアの電源をオンし(ステップS535)、リターンとなる。ステップS533において、全てのスレッドキューが選択済みであった場合(ステップS533、Yes)、同様に動作がリターンとなる。
このように、第4の実施の形態によれば、電源供給停止手段は、自プロセッサコアのリソースが待機中の何れのスレッドのリソース要求も満たさない場合、前記電源系に自プロセッサコアへの電源供給を停止させ、電源供給再開手段は、電源供給が停止されている他のプロセッサコアのうち待機中のスレッドのリソース要求を満たすリソースを有するプロセッサコアがある場合、該プロセッサコアへの電源供給を再開させる、ように構成したので、プロセッサコアのリソースが夫々同一ではない、いわゆる非対称マルチコアプロセッサシステムであっても電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコア電源をオン・オフすることができるようになる。
(第5の実施の形態)
第4の実施の形態では、一つのスレッドキューには同一のリソースを要求するスレッドが入るようにした。これに対し、第5の実施の形態のマルチコアプロセッサシステムでは、一つのスレッドキューに異なるリソースを要求するスレッドを蓄えることができるようにしている。以下、第5の実施の形態のマルチコアプロセッサシステムについて説明する。
図19は、第5の実施の形態のマルチコアプロセッサシステムの概略を説明する図である。図示するように、第5の実施の形態のマルチコアプロセッサシステムは、スレッドキュー33の数は一つとなっており、第4の実施の形態と同様のプロセッサコアリソースリスト37を備えている。また、スレッドキュー33には、スレッド処理の開始アドレスのほか、要求リソースも記録される。
なお、本第5の実施の形態のマルチコアプロセッサシステムの構成はスレッドキュー33のデータ構造およびプロセッサコアリソースリスト37の構成以外は第1の実施の形態と等しいので、スレッドキュー33およびプロセッサコアリソースリスト37以外の構成についての説明は省略し、以降、第1の実施の形態の構成部名および符号を用いて説明する。また、本第5の実施の形態の機能構成についても第1の実施の形態とほぼ等しいため、第1の実施の形態と同じ機能構成名および符号を用いて説明する。
図20は、スレッドキュー33のデータ構造を説明する図である。図示するように、スレッドキュー33に格納されている各スレッドは、スレッドを識別するためのIDと、RAM3にロードされているユーザプログラム32における該当部分の開始アドレスとしてのスレッド処理開始アドレスと、のほか、要求リソースが記述されている。ここでは、開始アドレスが0x00001234であるIDが0のスレッドは、8キロバイトのサイズのスクラッチパッドメモリを必要とすることが記述されている。また、開始アドレスが0x00005678であるIDが1のスレッドは、4キロバイトのサイズのスクラッチパッドメモリと乗算命令を実行できる機能とを必要とすることが記述されている。
図21(a)〜(c)は、本第5の実施の形態のプロセッサコア1a〜1fの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、ここでは代表としてプロセッサコア1aの動作についてのみ説明する。
図21(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS601)、アプリケーションタスクの割り当てがある場合(ステップS601、Yes)、アプリケーションタスクを実行する(ステップS602)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS601に移行する。
ステップS601において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS601、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS603)。スレッド制御タスクは、待機スレッドを一つ選択し(ステップS604)、プロセッサコアリソースリスト37に基づいて自プロセッサコア1aのリソースが選択した待機スレッドのリソース要求を満たしているか否かを判定する(ステップS605)。リソース要求を満たしていない場合(ステップS605、No)、スレッド制御タスクは、待機スレッドを全て選択したか否かをさらに判定し(ステップS606)、未選択の待機スレッドがある場合(ステップS606、No)、ステップS604に移行して未選択の待機スレッドのうちの一つを選択する。未選択の待機スレッドが無い場合(ステップS606、Yes)、電源供給再開手段103aは電源供給再開試行処理を実行し(ステップS607)、スレッド制御タスクは電源系4に信号を送信して自プロセッサ1aの電源をオフさせ(ステップS608)、プロセッサコア1aは停止する。なお、ステップS604において自プロセッサコア1aのリソースが要求リソースを満たすスレッドキューが無かった場合、ステップS605およびステップS606をスキップしてステップS607に移行する。
ステップS605において、自プロセッサコア1aのリソースが選択した待機スレッドのリソース要求を満たしていた場合(ステップS605、Yes)、スレッド制御タスクは選択したスレッドをスレッドキュー33から取得する(ステップS609)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS610)。そして、スレッド制御タスクは、取得したスレッドを実行する(ステップS611)。スレッド制御タスクがスレッドの実行を完了すると、ステップS601に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS602)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS611)も新たなスレッドを生成する場合がある。図12(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS621)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS622)、リターンとなる。
図21(c)は、電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段103aは、スレッドを一つ選択し(ステップS631)、スレッドの要求を満たす停止中のプロセッサコアがあるか否かを判定する(ステップS632)。要求を満たす停止中のプロセッサコアが無かった場合(ステップS632、No)、電源供給再開手段103aは、未選択のスレッドがあるか否かをさらに判定し(ステップS633)、未選択のスレッドがあった場合(ステップS633、No)、ステップS631に移行して未選択のスレッドのうちから一つのスレッドをさらに選択する。
ステップS632において、スレッドの要求を満たす停止中のプロセッサコアがあった場合(ステップS632、Yes)、電源供給再開手段103aは、電源系4に信号を送信してスレッドの要求を満たす停止中のプロセッサコアのうちのコアIDが最も小さいプロセッサコアの電源をオンし(ステップS634)、リターンとなる。ステップS633において、全てのスレッドが選択済みであった場合(ステップS633、Yes)、同様に動作がリターンとなる。
このように、第5の実施の形態によれば、第4の実施の形態と同様に非対称マルチコアプロセッサシステムであっても電源制御専用のプロセッサやハードウェアを用意することなく負荷状態に応じてプロセッサコア電源をオン・オフすることができるようになる。
(第6の実施の形態)
本第6の実施の形態のマルチコアプロセッサシステムは、スレッドの実行完了が間近のプロセッサコアがある場合、このプロセッサに近い将来スレッドを配分できるものと見込んで、プロセッサコアの不要な追加をしないようにしている。
図22は第6の実施の形態のマルチコアプロセッサシステムの概略を説明するための図である。図示するように、第6の実施の形態のマルチコアプロセッサシステムは、タイマ5と、スレッドの実行終了予想時刻を記録するスレッド終了予想時刻テーブル38と、を備えている。スレッド終了予想時刻テーブル38を保持する領域は特に限定しないが、例えばRAM3であってよい。
図23は、スレッド終了予想時刻テーブル38の一例を説明する図である。図示するように、このスレッド終了予想時刻テーブル38には、コアIDが1、2、4のプロセッサコアで現在動作しているスレッドは、夫々「1240000000」、「1150000000」、「1380000000」の時刻に終了することが記述されている。また、コアIDが3のプロセッサコアは電源オフ状態となっていることを示している。なお、時刻の単位は特に限定しないが、例えばタイマ5が起動されてからのサイクル数であってよい。
図24は、第6の実施の形態のマルチコアプロセッサシステムのスレッドキュー33のデータ構造を説明する図である。図示するように、本第6の実施の形態では、スレッドキュー33は、スレッド毎にスレッド処理開始アドレスとスレッドの計算時間の見積もり値とをセットにして格納するようになっている。なお、計算時間の見積もり値とは、計算時間を見積もることが可能な値であればどのような値であってもよく、例えば必要となるサイクル数であってよい。
なお、以下、タイマ5およびスレッド終了予想時刻テーブル38以外の構成部の名称および符号は、第1の実施の形態と同じものを使用して説明する。図25は、プロセッサコア1aが基本プログラム31を実行することにより生成される機能を説明する図である。図示するように、基本プログラム31は、プロセッサコア1aに、基本制御手段101a、電源供給停止手段106a、電源供給再開手段107aおよび終了予想時刻記録手段108aを生成する。基本制御手段101aは、アプリケーションタスクやスレッド制御タスクを起動する。電源供給停止手段106aは、スレッド制御タスクに実装され、スレッドキュー33に取得すべきスレッドがない場合、自プロセッサ1aの電源をオフするための電源制御信号を電源系4に送信する。電源供給再開手段107aは、自プロセッサコア1aで動作しているアプリケーションタスクやスレッドが新たにスレッドを生成した際、電源供給再開試行処理を実行する。終了予想時刻記録手段108aは、スレッド制御タスクに実装され、スレッドをスレッドキュー33から取得したとき、スレッドキュー33に格納されていた前記スレッドの計算時間の見積もり値とタイマ5の値とに基づいて前記取得したスレッドの終了予測時刻を算出し、算出した終了予測時刻をスレッド終了予想時刻テーブル38に書き込む。なお、プロセッサコア1b〜1fも基本プログラム31に基づいて上述のプロセッサコア1aと同様の機能を夫々生成するが、説明が重複するのでプロセッサコア1b〜1fに関する機能については説明を省略する。
次に、本第6の実施の形態のマルチコアプロセッサシステムの動作を説明する。図26(a)〜(c)は、プロセッサコア1a〜1fの動作を説明するフローチャートである。プロセッサコア1a〜1fは同じ動作を実行することができるので、ここでは代表としてプロセッサコア1aの動作についてのみ説明する。
図26(a)に示すように、まず、基本制御手段101aは、自プロセッサコア1aにアプリケーションタスクの割り当てがあるか否かを判定し(ステップS701)、アプリケーションタスクの割り当てがある場合(ステップS701、Yes)、アプリケーションタスクを実行する(ステップS702)。プロセッサコア1aは、アプリケーションタスクを実行したとき、スレッドを生成する。プロセッサコア1aがアプリケーションタスクの実行を終了すると、ステップS701に移行する。
ステップS701において、アプリケーションタスクの割り当てが無いと判定した場合(ステップS701、No)、基本制御手段101aは、スレッド制御タスクを起動して実行する(ステップS703)。スレッド制御タスクは、タイマ5とスレッド終了予想時刻テーブル38とを参照し、残りの実行時間が予め設定されているしきい値T以下であるコア数を計算し、終了見込みコア数とする(ステップS704)。さらに、スレッド制御タスクは、スレッドキュー33の待機スレッド数から終了見込みコア数を減算した値を実待機スレッドコア数とする(ステップS705)。
そして、スレッド制御タスクは、実待機スレッド数がしきい値Aを越えるか否かを判定する(ステップS706)。実待機スレッド数がしきい値Aを越えていない場合(ステップS706、No)、スレッド制御タスクは、自プロセッサコア1aの電源をオフするための電源制御信号を電源系4に送信して電源をオフし(ステップS707)、動作を停止する。実待機スレッド数がしきい値Aを越えている場合(ステップS706、Yes)、スレッド制御タスクはスレッドキュー33からスレッドを取得する(ステップS708)。そして、電源供給再開手段103aは、電源供給再開試行処理を実行する(ステップS709)。そして、スレッド制御タスクは、タイマ5による現在時刻とスレッドキュー33に付随していた取得したスレッドの計算時間の見積もり値とに基づいて終了予想時刻を算出し、算出した終了予想時刻をスレッド終了予想時刻テーブル38に書き込み(ステップS710)、前記取得したスレッドを実行する(ステップS711)。スレッド制御タスクがスレッドの実行を完了すると、ステップS701に移行する。
プロセッサコア1aは、アプリケーションタスクを実行した際(ステップS702)、新たなスレッドを生成する場合がある。また、スレッドを実行した際(ステップS711)も新たなスレッドを生成する場合がある。図26(b)は、スレッド生成時のプロセッサコア1aの動作を説明する図である。図示するように、プロセッサコア1aは、新たなスレッドを生成すると、スレッドキュー33に生成したスレッドを追加する(ステップS711)。すると、電源供給再開手段103aは、電源供給再開試行処理を実行し(ステップS722)、リターンとなる。
図26(c)は、ステップS709およびステップS722において実行される電源供給再開試行処理を詳しく説明するフローチャートである。図示するように、電源供給再開試行処理が開始されると、電源供給再開手段107aは、タイマ5とスレッド終了予想時刻テーブル38とを参照し、残りの実行時間が予め設定されているしきい値T以下であるコア数を計算し、終了見込みコア数とする(ステップS731)。さらに、電源供給再開手段107aは、スレッドキュー33の待機スレッド数から終了見込みコア数を減算した値を実待機スレッドコア数とする(ステップS732)。そして、電源供給再開手段107aは、実待機スレッド数がしきい値Bを越えるか否かを判定する(ステップS733)。電源供給再開手段107aは、実待機スレッド数がしきい値Bを越えている場合(ステップS733、Yes)、電源オフ状態のプロセッサコアがあるか否かをさらに判定する(ステップS734)。電源オフ状態のプロセッサコアがあった場合(ステップS734、Yes)、電源オフ状態のプロセッサのうちID番号が一番小さいプロセッサコアの電源をオンするための電源制御信号を電源系4に送信して、該プロセッサコアの電源をONし(ステップS735)、電源供給再開試行処理の動作はリターンとなる。ステップS733において実待機スレッド数がしきい値Bを越えなかったり(ステップS733、No)、ステップS734において電源オフ状態のプロセッサコアがなかった場合(ステップS734、No)、そのまま電源供給再開試行処理の動作はリターンとなる。
このように、第6の実施の形態によれば、スレッドをスレッドキュー33から取得したとき、スレッドキューに格納されていた計算時間の見積もり値(計算時間情報)とタイマ5の値とに基づいて取得したスレッドの終了予測時刻を算出し、算出した終了予測時刻をスレッド終了予想時刻テーブル38に書き込む終了予想時刻記録手段と、スレッド終了予想時刻テーブル38とタイマ5の値とに基づいて終了見込みコア数を算出し、待機スレッド数から終了見込みコア数を減算した値がしきい値A以下である場合、電源系4に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、終了見込みコア数がしきい値Bを越える場合、電源系4に電源供給が停止されている他のプロセッサコアへの電源供給を再開させる電源供給再開手段と、を備えるように構成したので、スレッドの実行完了が間近のプロセッサコアがある場合、このプロセッサに近い将来スレッドを配分できるものと見込んで、プロセッサコアの不要な追加をしないようにしている。
1 マルチコアプロセッサ、1a〜1f プロセッサコア、2 ROM、3 RAM、4 電源系、5 タイマ、31 基本プログラム、32 ユーザプログラム、33 スレッドキュー、34 コア電源オフ時刻テーブル、35 基本プログラム、36 要求リソースリスト、37 プロセッサコアリソースリスト、38 スレッド終了予想時刻テーブル、101a 基本制御手段、102a 電源供給停止手段、103a 電源供給再開手段、104a 電源供給停止手段、105a 電源供給再開手段、106a 電源供給停止手段、107a 電源供給再開手段、108a 終了予想時刻記録手段。

Claims (5)

  1. 複数のプロセッサコアと、
    前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、
    前記複数のプロセッサコアに実行させるスレッドを蓄積するスレッドキューと、
    を備え、
    前記夫々のプロセッサコアは、
    前記スレッドキューに蓄積されているスレッド数が第1しきい値以下である場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、
    前記スレッドキューに蓄積されているスレッド数が前記第1しきい値以上の値である第2しきい値を越える場合、電源供給が停止されている他のプロセッサコアへの電源供給を前記電源系に再開させる電源供給再開手段と、
    を備えることを特徴とするマルチコアプロセッサシステム。
  2. タイマをさらに備え、
    前記電源供給停止手段は、自プロセッサコアへの電源供給を停止させる前に、前記タイマを参照して時刻を取得し、電源オフ時刻テーブルに前記取得した時刻を電源オフ時刻として記録し、
    前記電源供給再開手段は、前記スレッドキューに蓄積されているスレッド数が前記第2しきい値を越える場合、電源供給が停止されているプロセッサコアのうちの前記電源オフ時刻テーブルに記録されている電源オフ時刻から所定の時間が経過したプロセッサコアへの電源供給を再開させる、
    ことを特徴とする請求項1に記載のマルチコアプロセッサシステム。
  3. 前記第1しきい値および前記第2しきい値はスレッド実行中のプロセッサコア数の増減に対応して増減する、ことを特徴とする請求項1に記載のマルチコアプロセッサシステム。
  4. 複数のプロセッサコアと、
    前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、
    前記複数のプロセッサコアに実行させるスレッドを蓄積するスレッドキューと、
    を備え、
    前記夫々のプロセッサコアは、
    自プロセッサコアのリソースが前記スレッドキューに蓄積されている何れのスレッドのリソース要求も満たさない場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、
    電源供給が停止されている他のプロセッサコアのうち前記スレッドキューに蓄積されているスレッドのリソース要求を満たすリソースを有するプロセッサコアがある場合、該プロセッサコアへの電源供給を再開させる電源供給再開手段と、
    を備えることを特徴とするマルチコアプロセッサシステム。
  5. 複数のプロセッサコアと、
    前記複数のプロセッサコアの夫々へ個別に電源を停止/供給する電源系と、
    タイマと、
    前記複数のプロセッサコアに実行させるスレッドを実行に必要となる時間を示す計算時間情報とともに蓄積するスレッドキューと、
    前記夫々のプロセッサコア毎の実行中のスレッドの終了予想時刻を記録するスレッド終了予想時刻テーブルと、
    を備え、
    前記夫々のプロセッサコアは、
    スレッドを前記スレッドキューから取得したとき、前記スレッドキューに蓄積されていた計算時間情報と前記タイマの値とに基づいて前記取得したスレッドの終了予測時刻を算出し、前記算出した終了予測時刻を前記スレッド終了予想時刻テーブルに書き込む終了予想時刻記録手段と、
    前記スレッド終了予想時刻テーブルと前記タイマの値とに基づいて間近にスレッド実行を終了する見込みのプロセッサコアの数である終了見込みコア数を算出し、前記スレッドキューに蓄積されているスレッド数から前記算出した終了見込みコア数を減算した値が第1しきい値以下である場合、前記電源系に自プロセッサコアへの電源供給を停止させる電源供給停止手段と、
    前記スレッドキューに蓄積されているスレッド数から前記算出した終了見込みコア数を減算した値が前記第1しきい値以上の値である第2しきい値を越える場合、前記電源系に電源供給が停止されている他のプロセッサコアへの電源供給を再開させる電源供給再開手段と、
    を備えることを特徴とするマルチコアプロセッサシステム。
JP2009123294A 2009-05-21 2009-05-21 マルチコアプロセッサシステム Expired - Fee Related JP5091912B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009123294A JP5091912B2 (ja) 2009-05-21 2009-05-21 マルチコアプロセッサシステム
US12/610,472 US8214679B2 (en) 2009-05-21 2009-11-02 Multi-core processor system with thread queue based power management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009123294A JP5091912B2 (ja) 2009-05-21 2009-05-21 マルチコアプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2010271930A true JP2010271930A (ja) 2010-12-02
JP5091912B2 JP5091912B2 (ja) 2012-12-05

Family

ID=43125355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009123294A Expired - Fee Related JP5091912B2 (ja) 2009-05-21 2009-05-21 マルチコアプロセッサシステム

Country Status (2)

Country Link
US (1) US8214679B2 (ja)
JP (1) JP5091912B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196672A (ja) * 2012-03-23 2013-09-30 Toshiba Corp マルチプロセッサシステムおよび電力制御方法
WO2013145282A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データ処理装置
JP2014521131A (ja) * 2011-06-29 2014-08-25 日本電気株式会社 マルチプロセッサシステム、および、その省エネルギー化方法
JP2016024561A (ja) * 2014-07-17 2016-02-08 ローム株式会社 パワーマネージメント回路、それを用いた電子機器
JP2016105273A (ja) * 2014-11-18 2016-06-09 エイチジーエスティーネザーランドビーブイ 装置における電源管理のためのリソース割当及び解除
US9405349B2 (en) 2013-05-30 2016-08-02 Samsung Electronics Co., Ltd. Multi-core apparatus and job scheduling method thereof
JP2018521427A (ja) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 可変レーンアーキテクチャのためのシステムおよび方法
KR101918289B1 (ko) * 2017-05-26 2018-11-13 (주)뉴트론 저전력 반도체 소자

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035315A1 (ja) * 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
US8122269B2 (en) * 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US9201593B2 (en) 2009-03-27 2015-12-01 Qualcomm Incorporated System and method of managing displays at a portable computing device and a portable computing device docking station
US20100250818A1 (en) * 2009-03-27 2010-09-30 Qualcomm Incorporated System and method of providing wireless connectivity between a portable computing device and a portable computing device docking station
US20100251243A1 (en) * 2009-03-27 2010-09-30 Qualcomm Incorporated System and method of managing the execution of applications at a portable computing device and a portable computing device docking station
US8653785B2 (en) 2009-03-27 2014-02-18 Qualcomm Incorporated System and method of managing power at a portable computing device and a portable computing device docking station
US9128669B2 (en) 2009-03-27 2015-09-08 Qualcomm Incorporated System and method of managing security between a portable computing device and a portable computing device docking station
US8707061B2 (en) * 2009-03-27 2014-04-22 Qualcomm Incorporated System and method of providing scalable computing between a portable computing device and a portable computing device docking station
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8407492B2 (en) * 2010-01-14 2013-03-26 The Boeing Company System and method of asynchronous logic power management
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US9268611B2 (en) * 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US20120311605A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Processor core power management taking into account thread lock contention
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
CN102902581B (zh) * 2011-07-29 2016-05-11 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
JP5786641B2 (ja) * 2011-10-25 2015-09-30 富士通株式会社 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
WO2013079988A1 (en) * 2011-11-28 2013-06-06 Freescale Semiconductor, Inc. Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor
WO2013094047A1 (ja) * 2011-12-21 2013-06-27 富士通株式会社 管理装置、管理プログラムおよび管理方法
US9436254B2 (en) 2012-03-13 2016-09-06 Intel Corporation Method and apparatus for per core performance states
BR112014024206B1 (pt) * 2012-03-31 2021-08-24 Intel Corporation Equipamento, método implementado por computador e sistema para controle de gerenciamento de energia em microsservidores.
KR101975288B1 (ko) 2012-06-15 2019-05-07 삼성전자 주식회사 멀티 클러스터 프로세싱 시스템 및 그 구동 방법
TWI496087B (zh) * 2012-09-21 2015-08-11 Htc Corp 具多重中央處理單元之電子裝置及其效能管理方法
US9081625B2 (en) * 2012-10-16 2015-07-14 Dell Products, L.P. Method for reducing execution jitter in multi-core processors within an information handling system
US20140258759A1 (en) * 2013-03-06 2014-09-11 Lsi Corporation System and method for de-queuing an active queue
US10002031B2 (en) * 2013-05-08 2018-06-19 Nvidia Corporation Low overhead thread synchronization using hardware-accelerated bounded circular queues
US9619289B2 (en) 2014-09-11 2017-04-11 Dell Products, L.P. Workload optimized server for intelligent algorithm trading platforms
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9525697B2 (en) 2015-04-02 2016-12-20 Varmour Networks, Inc. Delivering security functions to distributed networks
US20160306416A1 (en) * 2015-04-16 2016-10-20 Intel Corporation Apparatus and Method for Adjusting Processor Power Usage Based On Network Load
US9483317B1 (en) * 2015-08-17 2016-11-01 Varmour Networks, Inc. Using multiple central processing unit cores for packet forwarding in virtualized networks
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
WO2018014298A1 (zh) * 2016-07-21 2018-01-25 张升泽 电子芯片内部电压分配方法及系统
WO2018018371A1 (zh) * 2016-07-25 2018-02-01 张升泽 多核芯片电压计算方法及系统
WO2018018372A1 (zh) * 2016-07-25 2018-02-01 张升泽 电子芯片内的电流计算方法及系统
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11119826B2 (en) * 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US20240095208A1 (en) * 2022-09-15 2024-03-21 Ampere Computing Llc External quiesce of a core in a multi-core system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109729A (ja) * 1999-10-12 2001-04-20 Nec Corp マルチプロセッサシステムにおける消費電力制御装置および方法
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
JP2008257578A (ja) * 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
WO2010035315A1 (ja) * 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086681A (ja) 1994-04-18 1996-01-12 Hitachi Ltd 省電力制御システム
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109729A (ja) * 1999-10-12 2001-04-20 Nec Corp マルチプロセッサシステムにおける消費電力制御装置および方法
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
JP2008257578A (ja) * 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
WO2010035315A1 (ja) * 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014521131A (ja) * 2011-06-29 2014-08-25 日本電気株式会社 マルチプロセッサシステム、および、その省エネルギー化方法
US9047088B2 (en) 2012-03-23 2015-06-02 Kabushiki Kaisha Toshiba Multiprocessor system and method of controlling power
JP2013196672A (ja) * 2012-03-23 2013-09-30 Toshiba Corp マルチプロセッサシステムおよび電力制御方法
US9459870B2 (en) 2012-03-30 2016-10-04 Fujitsu Limited Data processor
WO2013145282A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データ処理装置
JPWO2013145282A1 (ja) * 2012-03-30 2015-08-03 富士通株式会社 データ処理装置
US9405349B2 (en) 2013-05-30 2016-08-02 Samsung Electronics Co., Ltd. Multi-core apparatus and job scheduling method thereof
JP2016024561A (ja) * 2014-07-17 2016-02-08 ローム株式会社 パワーマネージメント回路、それを用いた電子機器
JP2016105273A (ja) * 2014-11-18 2016-06-09 エイチジーエスティーネザーランドビーブイ 装置における電源管理のためのリソース割当及び解除
JP2018521427A (ja) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 可変レーンアーキテクチャのためのシステムおよび方法
US10691463B2 (en) 2015-07-30 2020-06-23 Futurewei Technologies, Inc. System and method for variable lane architecture
US10884756B2 (en) 2015-07-30 2021-01-05 Futurewei Technologies, Inc. System and method for variable lane architecture
KR101918289B1 (ko) * 2017-05-26 2018-11-13 (주)뉴트론 저전력 반도체 소자

Also Published As

Publication number Publication date
US20100299541A1 (en) 2010-11-25
JP5091912B2 (ja) 2012-12-05
US8214679B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
JP5091912B2 (ja) マルチコアプロセッサシステム
JP6386165B2 (ja) 分散コンピュータシステムへの電力割り振りに変更がある場合に中断され得るジョブ及び中断され得ないジョブを管理するための方法並びに装置
CN106170742B (zh) 多处理器片上系统中的能效感知热管理的方法和系统
JP6249953B2 (ja) ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング
US8381215B2 (en) Method and system for power-management aware dispatcher
JP5433837B2 (ja) 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP5347451B2 (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
JP5182792B2 (ja) マルチコアプロセッサ制御方法及び装置
CN107430425B (zh) 用于基于网络负荷来调整处理器功率使用率的设备和方法
KR20160005367A (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
KR20110075295A (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
JP2007272573A (ja) 低消費電力化メモリ管理方法及びメモリ管理プログラム
US20140215252A1 (en) Low Power Control for Multiple Coherent Masters
US8892819B2 (en) Multi-core system and external input/output bus control method
JP2008090546A (ja) マルチプロセッサシステム
JP2019527867A (ja) モバイルデバイス上でのエネルギー効率のためのウェイクロックアウェアシステム全体のジョブスケジューリング
JP2010160565A (ja) タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム
KR101826088B1 (ko) 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
WO2013145199A1 (ja) 仮想計算機のスケジュール方法
JP5790758B2 (ja) スケジューリング方法およびスケジューリングシステム
US20100205306A1 (en) Grid computing system, management apparatus, and method for managing a plurality of nodes
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JPWO2019239522A1 (ja) 制御コントローラおよび車両制御システム
CN107870808A (zh) 核心标识符的分配

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees