JP2017016219A - 電子機器および給電制御プログラム - Google Patents

電子機器および給電制御プログラム Download PDF

Info

Publication number
JP2017016219A
JP2017016219A JP2015129380A JP2015129380A JP2017016219A JP 2017016219 A JP2017016219 A JP 2017016219A JP 2015129380 A JP2015129380 A JP 2015129380A JP 2015129380 A JP2015129380 A JP 2015129380A JP 2017016219 A JP2017016219 A JP 2017016219A
Authority
JP
Japan
Prior art keywords
core
sleep
task
sleep state
cores
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
JP2015129380A
Other languages
English (en)
Other versions
JP6380261B2 (ja
Inventor
俊太郎 辻
Shuntaro Tsuji
俊太郎 辻
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2015129380A priority Critical patent/JP6380261B2/ja
Priority to US15/171,382 priority patent/US10108244B2/en
Publication of JP2017016219A publication Critical patent/JP2017016219A/ja
Application granted granted Critical
Publication of JP6380261B2 publication Critical patent/JP6380261B2/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/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

【課題】特殊なハードウェアを用いることなく、ソフトウェアにより一部のCPUまたは一部のコアをスリープさせて消費電力を低減させることが出来る電子機器および給電制御プログラムを提供する。
【解決手段】複数のタスクをそれぞれ実行する複数のコアを有するプロセッサーと、実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算するタスク総量計算部と、前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させるスリープ移行処理部と、前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させるスリープ復帰処理部とを備える。
【選択図】図4

Description

本発明は、複数のプロセッサーまたは複数のコアを持つプロセッサーの低消費電力制御を行う電子機器および給電制御プログラムに関する。
従来、複数のプロセッサー(CPU、Central Processing Unit)を持つ電子機器や、複数のコアを持つCPUにおいて、処理量が少ない時に、一部のCPUまたは一部のコアをスリープさせて消費電力を低減させる工夫がなされてきた。
例えば、特許文献1において開示されている技術では、一部のCPUがスリープ状態にある時に、外部割り込みや稼働中のCPUからの割り込みによらず、スリープ解除を行う制御回路が参照する制御ビットの書き換え、または同回路が参照する、メモリー上の所定アドレスへのタスク制御データの格納を行うことにより、スリープ状態からの復帰を行う。
また、例えば、特許文献2の技術では、マルチコアCPUの外部に、CPUコア状態検出部、CPUコア使用量監視部、およびCPUコア制御部を設け、稼働しているコアの数およびコア使用量に基づき、各コアの停止および開始制御を行う。
また、例えば、特許文献3の技術では、複数あるCPUのうち、主CPUが、副CPUに対し起動のためのboot要求や停止のためのhalt要求を専用ハードウェアにより実現されたプロセス間通信で送信し、電源管理デバイスが各CPUの電源のオン・オフを行うものである。
特開2013−41366号公報 特開2013−149221号公報 特開2004−355153号公報
上述した各技術では、一部のCPUまたは一部のコアを停止させたり開始させたりするために特殊な専用ハードウェアを追加する必要があったので、停止・開始のための仕組みが複雑になったり、コストがかかるものになったりしていた。
以上のような事情に鑑み、本発明の目的は、特殊なハードウェアを用いることなく、ソフトウェアにより一部のCPUまたは一部のコアをスリープさせて消費電力を低減させることが出来る電子機器および給電制御プログラムを提供することにある。
上記目的を達成するため、本発明の一形態に係る電子機器は、複数のタスクをそれぞれ実行する複数のコアを有するプロセッサーと、実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算するタスク総量計算部と、前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させるスリープ移行処理部と、前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させるスリープ復帰処理部とを備える。そのため、特殊なハードウェアを用いることなく、ソフトウェアにより一部のCPUまたは一部のコアをスリープさせて消費電力を低減させることが出来る。
上記目的を達成するため、本発明の一形態に係る電子機器は、前記タスク総量が、特定のコアで第1のしきい値を下回ったか否かを判断するスリープ移行チェック部を更に備え、 前記スリープ移行処理部は、前記スリープ移行チェック部の判断に基づき、前記タスク総量が前記第1のしきい値を下回ったコアをスリープ状態に移行させる構成でもよい。
上記目的を達成するため、本発明の一形態に係る電子機器では、前記スリープ移行チェック部は、前記タスク総量が前記第1のしきい値を下回ったコア以外のコアの前記タスク総量が第2のしきい値を超えるか否かを更に判断し、前記スリープ移行処理部は、前記スリープ移行チェック部の判断に基づき、前記タスク総量が前記第1のしきい値を下回ったコアを、前記タスク総量が前記第1のしきい値を下回ったコア以外のコアの前記タスク総量が第2のしきい値を超えない場合に、スリープ状態に移行させる構成でもよい。
上記目的を達成するため、本発明の一形態に係る電子機器は、一部の前記コアが前記スリープ状態にあるとき、前記スリープ状態にないコアにおける、前記タスク総量の合計が、第3のしきい値を超えるか否かを判断するスリープ復帰チェック部を更に備え、前記スリープ復帰処理部は、前記スリープ復帰チェック部の判断に基づき、前記スリープ状態にないコアにおける、前記タスク総量の合計が、第3のしきい値を超える場合に、前記スリープ状態にあるコアを前記スリープ状態から復帰させる構成でもよい。
上記目的を達成するため、本発明の一形態に係る給電制御プログラムは、複数のタスクをそれぞれ実行する複数のコアを有するプロセッサー上で稼働し、実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算し、前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させ、前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させる手順をコンピューターに実行させる。
以上のように、本発明によれば、特殊なハードウェアを用いることなく、ソフトウェアにより一部のCPUまたは一部のコアをスリープさせて消費電力を低減させることが出来る。
電子機器10が一般的なコンピューターにより構成される場合の構成図である。 CPU11の機能ブロック図である。 タスク量テーブルの一例である。 タスク総量が少なくなった1つのコアがスリープ状態に移行する際の処理について説明するためのフローチャートである。 一方のコアがスリープしている状態で、もう一方のコアが処理するタスク総量が増え、スリープしているコアをスリープ状態から復帰させる際の処理について説明するためのフローチャートである。
以下、図面を参照しながら、本発明の実施形態を説明する。
[概要]
最初に、概要について説明する。
図1に示すように、本発明の実施形態に係る電子機器10は、1つのCPU11を備え、CPU11は、SMP(Symmetric Multi-Processing、対称型マルチプロセッシング)を行う2つのコア、コア0およびコア1を備えている。コア0およびコア1は、共有メモリー等により互いに通信することが出来る。
なお、以下の説明では、1つのマルチコアCPUとして説明するが、電子機器がSMP型の複数のCPUを備えている場合も同様である。
本発明では、1つのコアのタスク総量(後述)が第1のしきい値を下回り、かつもう一つのコアのタスク総量が大きくなり過ぎない場合(第2のしきい値を超えない場合)には、第1のしきい値を下回ったコアをスリープさせ、本来処理を担当すべきであったタスクをもう一つのスリープしない方のコアに分担させる。
ここで、両方のコアが第1のしきい値を下回る場合には、タスク総量が小さい方のコアをスリープさせ、本来処理を担当すべきであったタスクをもう一つのスリープしない方のコアに分担させる。
なお、第1のしきい値は第2のしきい値よりも小さい値とすることができる。例えば、第1のしきい値をコアが特定時間内に処理可能なタスク総量の20%、第2のしきい値をコアが特定時間内に処理可能なタスク総量の60%とすることが出来る。
そして、1つのコアがスリープし、もう一方のコアだけで処理を行っている場合に、タスク総量が第3のしきい値を超える場合には、スリープしているコアをスリープから復帰させ、2つのコアを用いて処理を継続する。
ここで、第3のしきい値は、第2のしきい値よりも大きい値とすることが出来る。例えば、コア0とコア1が同じ処理能力を有しており、第2のしきい値をコアが特定時間内に処理可能なタスク総量の60%とするとき、第3のしきい値をコアが特定時間内に処理可能なタスク総量の80%とすることが出来る。
このようにすることで、特殊なハードウェアを用いることなく、ソフトウェアにより一部のCPUまたは一部のコアをスリープさせて消費電力を低減させることが出来る。
以上、概要について説明した。
[電子機器10の構成]
次に、電子機器10のハードウェア構成について説明する。電子機器10は、専用のハードウェアやソフトウェアにより構成されていてもよいし、一般的なコンピューターにより構成されてもよい。電子機器10が一般的なコンピューターにより構成される場合の構成図を図1に示す。
図1に示すように、電子機器10は、CPU11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、操作入力部14、ネットワークインターフェイス部15、表示部16、および記憶部17を有し、これら各ブロックがバス18を介して接続されている。
なお、以下の説明では、CPU11は、コア0およびコア1を有するデュアルコア構成であるとして説明するが、本発明はデュアルコアに限らず、3つ以上のコアにより構成されたCPUであっても適用可能である。
ROM12は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。RAM13は、CPU11の作業用領域として用いられ、OS(Operating System)、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
記憶部17は、例えばHDD(Hard Disk Drive)や、フラッシュメモリー、その他の不揮発性メモリーである。記憶部17には、OSや各種アプリケーション、各種データに加え、後述するタスク量テーブル17aが記憶される。
ネットワークインターフェイス部15は、外部と情報のやりとりを行う為のネットワークと結ばれている。
CPU11は、ROM12や記憶部17に格納された複数のプログラムのうち、操作入力部14から与えられる命令に対応するプログラムをRAM13に展開し、この展開されたプログラムにしたがって、表示部16及び記憶部17を適宜制御する。
操作入力部14は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
表示部16は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ、プラズマディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等である。表示部16は、電子機器10に内蔵されていてもよいし、外部接続されていてもよい。
なお、図2に示すように、コア0およびコア1は、それぞれ、タスク総量計算部11c、スリープ移行チェック部11d、スリープ移行処理部11e、スリープ復帰チェック部11f、およびスリープ復帰処理部11gを有している。タスク総量計算部11c、スリープ移行チェック部11d、スリープ移行処理部11e、スリープ復帰チェック部11f、およびスリープ復帰処理部11gは、ROM12などからRAM13にロードされたプログラムがコア0またはコア1により実行されることで実現される機能ブロックである。
タスク総量計算部11cは、後述するタスク量テーブル17aを更新し、更新したタスク量テーブル17aを用いてタスク総量を計算する。
スリープ移行チェック部11dは、コア0またはコア1において1つのタスクが終了した時点で、タスク総量をチェックし、コア0またはコア1をスリープに移行させる条件が成立しているか否かをチェックする。
スリープ移行処理部11eは、タスク総量の少なくなったコア、例えばコア1をスリープ状態に移行させると共に、スリープ移行通知をもう一方のコア0に送信し、スリープしないもう一方のコア0においては、スリープ移行通知を受信してコア1がスリープしたことを覚えておく。
スリープ復帰チェック部11fは、スリープしていない方のコアにおいて、1つのタスクが終了した時点で、タスク総量をチェックし、スリープしているコアをスリープから復帰させる条件が成立しているか否かをチェックする。
スリープ復帰処理部11gは、スリープしているコアをスリープから復帰させ、スリープしていない方のコアのみで行っていたタスクを、本来の分担割合に基づいて2つのコアが分担する状態に戻す。
以上、電子機器10の構成について説明した。
[タスク量テーブルについて]
次に、各コアをスリープさせたり、スリープから復帰させたりする際の判断に用いるタスク総量を求めるために用いられるタスク量テーブル17aについて説明する。図3はタスク量テーブルの一例である。この例は、例えばコア1においてタスクZが終了してタスク総量をチェックする時点での状態を表したものである。
例えば、タスクAは、タスクAを完了させるまでに100個の命令(例えばアセンブラ命令)を実行しなければならず、その100個の命令のうち、コア0の分担割合は70%であるので、タスクAを実行する際にコア0が分担する処理量は70となる。
CPU11では、タスクAからタスクFまでを処理することになっており、各タスクの処理量の合計(タスク総量)は490である。
また、コア0におけるタスク総量は198であり、コア1ではタスク総量は292である。
なお、1つのタスクを2つのコアで分担させる割合は、電子機器10の設計者により予め決められていてもよい。例えば、急ぐ処理の場合は、コア0およびコア1の分担割合を50%ずつとしてもよい。
また、例えば、電子機器10が画像形成装置(MFP、Multifunction Peripheral)であり、設計者がタスクの分担を設計時に予め決めやすい場合は、原稿を読取りながら印刷するコピー処理など、読取り処理を一方のコアに多く分担させ、もう一方のコアに印刷処理を多く分担させることが考えられる。このような分担にすると、印刷処理が完了していなくても、読取り処理が終了した時点で一方のコアをスリープさせ、省電力化を図ることが出来る。
なお、タスク量テーブル17aは、タスク総量計算部11cにより管理されている。
以上、タスク量テーブル17aについて説明した。
[処理の流れ(スリープ移行時)]
次に、タスク総量が少なくなった1つのコアがスリープ状態に移行する際の処理について説明する。図4は、タスク総量が少なくなった1つのコアがスリープ状態に移行する際の処理について説明するためのフローチャートである。
なお、ここでは、コア0の負荷が低くなり、コア1において両コア分のタスクを処理しても問題が無いと判断され、コア0がスリープ状態に移行する場合を例に説明している。
まず、コア0において、スリープ移行チェック部11dが、コア0において処理されているタスクのうちの1つが終了したか否かを判断する(ステップS1)。
タスクが終了していない場合(ステップS1のN)、スリープ移行チェック部11dはステップS1に戻り、タスクの終了を継続的にチェックする。
タスクが終了した場合(ステップS1のY)、コア0のスリープ移行チェック部11dは、タスク総量計算部11cに問い合わせて、コア0がスリープ可能か否かをチェックする(ステップS2)。具体的には、コア0のタスク総量が第1のしきい値を下回っており、かつコア0のスリープ時にコア1が処理しなければならないタスク総量が第2のしきい値を超えていないかをチェックする。
次に、コア0のスリープ移行チェック部11dは、スリープ移行が可能であるか否かを判断する(ステップS3)。
スリープ移行が不可能と判断された場合(ステップS3のN)、スリープ移行処理は行われず、2つのコアで分担して処理が継続される。
スリープ移行が可能と判断された場合(ステップS3のY)、コア0のスリープ移行処理部11eが、自コアをスリープさせるための処理を行い、もう一方のコアであるコア1のスリープ移行処理部11eに対し、コア0がスリープする旨を伝えるためのスリープ移行通知を送信する(ステップS4)。
スリープ移行通知を受信した、コア1のスリープ移行処理部11eは、コア0がスリープしたことを認識し、コア0が分担していたタスク処理を引き継ぐ(ステップS5)。
次に、コア0がスリープ状態に入る(ステップS6)。なお、コアがスリープ状態であるとは、スリープするコアに対する電力供給が遮断されている状態であってもよい。
以上、タスク総量が少なくなった1つのコアがスリープ状態に移行する際の処理について説明した。
[処理の流れ(スリープ復帰時)]
次に、一方のコアがスリープしている状態で、もう一方のコアが処理するタスク総量が増え、スリープしているコアをスリープ状態から復帰させる際の処理について説明する。図5は、一方のコアがスリープしている状態で、もう一方のコアが処理するタスク総量が増え、スリープしているコアをスリープ状態から復帰させる際の処理について説明するためのフローチャートである。
なお、ここでは、コア0がスリープしている状態で、コア1が処理している両コア分のタスクの総量が増え、コア0をスリープ状態から復帰させる場合を例に説明している。
最初、コア0はスリープ状態にあるとする(ステップS10)。
次に、コア1において、スリープ復帰チェック部11fが、コア1において処理されているタスクのうちの1つが終了したか否かを判断する(ステップS11)。
タスクが終了していない場合(ステップS11のN)、コア1のスリープ復帰チェック部11fはステップS11に戻り、タスクの終了を継続的にチェックする。
タスクが終了した場合(ステップS11のY)、コア1のスリープ復帰チェック部11fは、タスク総量計算部11cに問い合わせて、コア0をスリープから復帰させるべきか否かをチェックする(ステップS12)。具体的には、コア1のタスク総量が第3のしきい値を超えているかをチェックする。
次に、コア1のスリープ復帰チェック部11fは、コア0をスリープ状態から復帰させるべきか否かを判断する(ステップS13)。
スリープ復帰が不要と判断された場合(ステップS31のN)、コア0のスリープからの復帰処理は行われず、コア1のみで処理が継続される。
スリープ復帰が必要と判断された場合(ステップS3のY)、コア1のスリープ復帰処理部11gが、コア0をスリープ状態から復帰させるための処理を行い、コア0の復帰後、コア1において処理していた、本来コア0で行うべき処理を、コア0に移す(ステップS14、S15)。
例えば、コア0およびコア1の特定時間内に処理可能なタスク総量が270のとき、第1のしきい値を54、第2のしきい値を162、第3のしきい値を216とする。
このとき、コア0でタスクが完了したと判断されたとき(ステップS1のY)に図3に示すタスクEとタスクFが処理中であれば、コア0のタスク総量は37(=12+25)、コア1のタスク総量は133(=108+25)である。
そうすると、コア0のタスク総量(37)が第1のしきい値(50)を下回っており、コア1のタスク総量(133)が第2のしきい値(150)を超えていない。
従って、コア0のスリープ移行チェック部11dは、スリープ移行可能と判断し(ステップS3のY)、ステップS4およびステップS6を経てコア0がスリープ状態に入る。コア1は、コア0が分担していたタスクEとタスクFの処理を引き継ぐ(ステップS5)ので、コア1のタスク総量は170(=120+50)になる。
次に、図3に示すタスクAが発生したとする。このとき、コア1がタスクAの処理を開始する。さらに、コア1でタスクFが完了すると(ステップS11のY)、コア1のタスク総量は220(=100+120)になる。
コア1のスリープ復帰チェック部11fは、タスク総量(220)が第3のしきい値(216)を上回っているので、コア0をスリープ状態から復帰させるべきと判断し(ステップS13のY)、ステップS14及びステップS15を経てコア0がスリープ状態から復帰させる。
コア0の復帰後、コア1において処理していた、タスクAとタスクEの処理のうちコア0の分担割合に応じた処理を、コア0に移す。そして、コア0のタスク総量は82(=70+12)、コア1のタスク総量は138(=30+108)になる。
なお、本来、コア0で行うべき処理を、コア1からコア0に移す際に時間がかかる場合は、コア0を復帰させた後もコア1で処理を一時的に継続させることにより、コア1からコア0への移行をスムーズに行わせることが出来る。
以上、一方のコアがスリープしている状態で、もう一方のコアが処理するタスク総量が増え、スリープしているコアをスリープ状態から復帰させる際の処理について説明した。
[補足事項]
以上のように、本発明の一実施形態に係る電子機器10は、複数のタスクをそれぞれ実行する複数のコア(コア0およびコア1)を有するCPU11と、実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算するタスク総量計算部11cと、前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させるスリープ移行処理部11eと、前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させるスリープ復帰処理部11gとを備える。
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、上述の実施形態において、図4のステップS1、図5のステップS11において、タスク終了を判断する代わりに、新たなタスクの発生を判断してもよい。この場合新たなタスクが発生するとステップS2またはステップS12に進む。
また、図4のステップS1、図5のステップS11におけるタスク終了の判断に加えて、新たなタスクの発生を判断してもよい。この場合、タスクが終了した、又は新たなタスクが発生したと判断するとステップS2またはステップS12に進む。
また、全てのコアがタスクを処理している状態において、新たなタスクの発生により、一方のコアが分担するタスク総量が特定時間内に処理可能なタスク総量を超える場合、新たなタスクの超える分の処理量を他方のコアに分担させてもよい。
0 … コア
1 … コア
10 … 電子機器
11 … CPU
11c… タスク総量計算部
11d… スリープ移行チェック部
11e… スリープ移行処理部
11f… スリープ復帰チェック部
11g… スリープ復帰処理部
12 … ROM
13 … RAM
14 … 操作入力部
15 … ネットワークインターフェイス部
16 … 表示部
17 … 記憶部
17a… タスク量テーブル
18 … バス

Claims (5)

  1. 複数のタスクをそれぞれ実行する複数のコアを有するプロセッサーと、
    実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算するタスク総量計算部と、
    前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させるスリープ移行処理部と、
    前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させるスリープ復帰処理部と
    を備えた
    電子機器。
  2. 請求項1に記載の電子機器であって、
    前記タスク総量が、特定のコアで第1のしきい値を下回ったか否かを判断するスリープ移行チェック部を更に備え、
    前記スリープ移行処理部は、
    前記スリープ移行チェック部の判断に基づき、前記タスク総量が前記第1のしきい値を下回ったコアをスリープ状態に移行させる
    電子機器。
  3. 請求項2に記載の電子機器であって、
    前記スリープ移行チェック部は、
    前記タスク総量が前記第1のしきい値を下回ったコア以外のコアの前記タスク総量が第2のしきい値を超えるか否かを更に判断し、
    前記スリープ移行処理部は、
    前記スリープ移行チェック部の判断に基づき、前記タスク総量が前記第1のしきい値を下回ったコアを、前記タスク総量が前記第1のしきい値を下回ったコア以外のコアの前記タスク総量が第2のしきい値を超えない場合に、スリープ状態に移行させる
    電子機器。
  4. 請求項1から3のいずれか1つに記載の電子機器であって、
    一部の前記コアが前記スリープ状態にあるとき、前記スリープ状態にないコアにおける、前記タスク総量の合計が、第3のしきい値を超えるか否かを判断するスリープ復帰チェック部を更に備え、
    前記スリープ復帰処理部は、
    前記スリープ復帰チェック部の判断に基づき、前記スリープ状態にないコアにおける、前記タスク総量の合計が、第3のしきい値を超える場合に、前記スリープ状態にあるコアを前記スリープ状態から復帰させる
    電子機器。
  5. 複数のタスクをそれぞれ実行する複数のコアを有するプロセッサー上で稼働し、
    実行される前記複数のタスクの処理量の総量であるタスク総量を前記コア毎に計算し、
    前記コア毎に計算された前記タスク総量に基づき、前記複数のコアの一部をスリープ状態に移行させ、
    前記一部のコアが前記スリープ状態にあるとき、前記タスク総量に基づき、前記スリープ状態にあるコアを前記スリープ状態から復帰させる
    手順をコンピューターに実行させる給電制御プログラム。
JP2015129380A 2015-06-29 2015-06-29 電子機器および給電制御プログラム Expired - Fee Related JP6380261B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015129380A JP6380261B2 (ja) 2015-06-29 2015-06-29 電子機器および給電制御プログラム
US15/171,382 US10108244B2 (en) 2015-06-29 2016-06-02 Electronic apparatus and non-transitory computer readable medium for power consumption control of processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015129380A JP6380261B2 (ja) 2015-06-29 2015-06-29 電子機器および給電制御プログラム

Publications (2)

Publication Number Publication Date
JP2017016219A true JP2017016219A (ja) 2017-01-19
JP6380261B2 JP6380261B2 (ja) 2018-08-29

Family

ID=57602267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015129380A Expired - Fee Related JP6380261B2 (ja) 2015-06-29 2015-06-29 電子機器および給電制御プログラム

Country Status (2)

Country Link
US (1) US10108244B2 (ja)
JP (1) JP6380261B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451684B2 (en) 2019-06-27 2022-09-20 Canon Kabushiki Kaisha Processor having a plurality of cores and a controller that switches power states based on cores state
US11539851B2 (en) 2019-06-27 2022-12-27 Canon Kabushiki Kaisha Apparatus for switching a power state among a plurality of power states and method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240192965A1 (en) * 2022-12-13 2024-06-13 Ati Technologies Ulc Continuity of service for virtualized device after resumption from hibernation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010201961A (ja) * 2009-02-27 2010-09-16 Denso Corp 車両用電子制御装置
JP2011186531A (ja) * 2010-03-04 2011-09-22 Nec Corp Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
JP4196333B2 (ja) 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム
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
JP2013041366A (ja) 2011-08-12 2013-02-28 Renesas Electronics Corp データ処理装置
JP2013149221A (ja) * 2012-01-23 2013-08-01 Canon Inc プロセッサの制御装置およびその方法
KR20140089749A (ko) * 2013-01-07 2014-07-16 한국전자통신연구원 클러스터의 부하 할당 제어 장치 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010201961A (ja) * 2009-02-27 2010-09-16 Denso Corp 車両用電子制御装置
JP2011186531A (ja) * 2010-03-04 2011-09-22 Nec Corp Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451684B2 (en) 2019-06-27 2022-09-20 Canon Kabushiki Kaisha Processor having a plurality of cores and a controller that switches power states based on cores state
US11539851B2 (en) 2019-06-27 2022-12-27 Canon Kabushiki Kaisha Apparatus for switching a power state among a plurality of power states and method thereof

Also Published As

Publication number Publication date
US10108244B2 (en) 2018-10-23
JP6380261B2 (ja) 2018-08-29
US20160378164A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
US10649935B2 (en) Deferred inter-processor interrupts
US9400753B2 (en) Control system, control method, and computer program product
CN101689106B (zh) 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US9829961B2 (en) Electronic device
JP5094666B2 (ja) マルチプロセッサシステム及びその制御方法、並びに、コンピュータプログラム
WO2009157178A1 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
JP2007052511A (ja) スケジューリング方法およびスケジューリング装置
JP6380261B2 (ja) 電子機器および給電制御プログラム
JPWO2009150815A1 (ja) マルチプロセッサシステム
US9696787B2 (en) Dynamic control of processors to reduce thermal and power costs
JP5880564B2 (ja) 割込監視装置、およびコンピュータシステム
JP3866749B2 (ja) マイクロプロセッサ
KR102563648B1 (ko) 멀티 프로세서 시스템 및 그 구동 방법
JP6148129B2 (ja) 情報処理装置、ファームウェア更新方法およびファームウェア更新プログラム
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
JP5783348B2 (ja) 制御装置、制御プログラム、画像形成装置
JPWO2016204070A1 (ja) Cpu監視装置
JP2005346672A (ja) メモリ制御方法、メモリ制御システム、プログラム及び記憶媒体
JP5321169B2 (ja) 画像形成装置、ジョブ管理装置及びジョブ管理方法
KR20160061726A (ko) 인터럽트 핸들링 방법
JP4868012B2 (ja) コンピュータシステム、コンピュータシステムの制御方法、及びプログラム
JP6515771B2 (ja) 並列処理装置及び並列処理方法
JP2021043725A (ja) 計算システム、計算方法及びプログラム
JP5705185B2 (ja) 通信装置及びその制御方法、並びに、コンピュータプログラム
JP2015014962A (ja) 演算装置、演算方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180716

R150 Certificate of patent or registration of utility model

Ref document number: 6380261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees