JP5472449B2 - マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム - Google Patents
マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム Download PDFInfo
- Publication number
- JP5472449B2 JP5472449B2 JP2012508002A JP2012508002A JP5472449B2 JP 5472449 B2 JP5472449 B2 JP 5472449B2 JP 2012508002 A JP2012508002 A JP 2012508002A JP 2012508002 A JP2012508002 A JP 2012508002A JP 5472449 B2 JP5472449 B2 JP 5472449B2
- Authority
- JP
- Japan
- Prior art keywords
- software
- core
- migration
- cores
- apl
- 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
Links
- 238000000034 method Methods 0.000 title claims description 146
- 230000008569 process Effects 0.000 claims description 136
- 230000005012 migration Effects 0.000 claims description 113
- 238000013508 migration Methods 0.000 claims description 113
- 238000004364 calculation method Methods 0.000 claims description 48
- 230000006870 function Effects 0.000 claims description 40
- 238000001514 detection method Methods 0.000 claims description 22
- 239000000725 suspension Substances 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 123
- 230000004913 activation Effects 0.000 description 26
- 230000007704 transition Effects 0.000 description 19
- 208000036762 Acute promyelocytic leukaemia Diseases 0.000 description 17
- 230000007958 sleep Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101150112439 SMAP gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Description
本発明は、電力を制御するマルチコアプロセッサシステム、電力制御方法、および電力制御プログラムに関する。
従来の携帯電話は、通信、通話機能をベースバンドプロセッサ(以下、「BP」と称する。)が担当しており、その他のマルチメディア処理をアプリケーションプロセッサ(以下、「APL」と称する。)が担当している。さらに、BPは、通話機能で使用する音声の符号化と復号を行う音声コーデック処理をDSP(Digital Signal Processor)に処理させている(たとえば非特許文献1〜3を参照。)。DSPは、特定の演算処理を高速に行うことを目的に作られ、主に音声処理・画像処理などに使われるプロセッサである。このように、携帯電話を制御するプロセッサは、BP、APL、DSPという処理の異なるプロセッサを有するヘテロジニアス・マルチコアプロセッサシステムである。
ヘテロジニアス・マルチコアプロセッサシステムの省電力の技術として、専用のCPU(Central Processing Unit)と汎用のCPUのうち、外部電源かバッテリー駆動かに応じて、プログラムを割り当てるCPUを選択することで省電力化を図るという技術が開示されている(たとえば、下記特許文献1を参照。)。
また、APLは負荷の高いマルチメディア処理を担当するため、実行しているマルチメディア処理によって演算能力が大きく変化する。したがって、APLは、演算能力を変化させる機能として、クロックギア機能を有する場合もある。クロックギア機能は、周波数を段階的に変更させることができる機能である。APLが有するクロックギア機能は、3〜5段階に周波数を変更できる場合が多い。このように、APLは、実行しているマルチメディア処理に応じてクロックギアを変更することで、省電力化を図ることができる。
頭脳放談 : 第20回 日立がS−MAPでケータイを変える?、[online]、[平成22年03月18日検索]、インターネット<http://www.atmarkit.co.jp/fpc/rensai/zunouhoudan020/smap.html>
@IT:頭脳放談:第44回 ニッポン半導体、復活のカギは携帯電話?、[online]、[平成22年03月18日検索]、インターネット<http://www.atmarkit.co.jp/fsys/zunouhoudan/044zunou/app_processor.html>
Mobile:TIの「OMAP」,NEC,松下,富士通が3G携帯に採用、[online]、[平成22年03月18日検索]、インターネット<http://plusd.itmedia.co.jp/mobile/0203/18/n_omap.html>
しかしながら、上述した従来技術において、特許文献1にかかる技術では、電源の利用形態が外部電源かバッテリー駆動かによってプログラムを割り当てるCPUを選択している。バッテリー駆動の際に、省電力状態となる低性能のCPUを選択することになり、バッテリーに余裕があったとしても常にプログラムの実行速度が低速となる問題点があった。また、クロックギア機能を使って省電力化を行っていても、クロックギアで設定できる階数は少ないため、実行中のマルチメディア処理が適切な演算能力とAPLの演算能力とで差分が発生し、演算能力の余剰が発生するという問題点があった。
本発明は、上述した従来技術による問題点を解消するため、演算能力の余剰を減らし、省電力化するマルチコアプロセッサシステム、電力制御方法、および電力制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示のマルチコアプロセッサシステムは、第1の処理を実行する第1のコアとは異なる第2のコアにおいて、複数のソフトウェアのうち第1のソフトウェアは第1の処理と同等の機能を有し、複数のソフトウェアのうち第1のソフトウェアと異なる機能を有する第2のソフトウェアが実行中であることを検出し、第2のソフトウェアが第2のコアで実行中である状態が検出された場合、複数のソフトウェアのそれぞれに対応する演算能力の要求値を記憶したデータベースから、第1のソフトウェアと第2のソフトウェアとの演算能力の要求値を抽出し、抽出された第1のソフトウェアと第2のソフトウェアとの演算能力の要求値の合計が、第2のコアの演算能力値以下か否かを判断し、演算能力の要求値の合計が第2のコアの演算能力値以下であると判断された場合、第2のコアに第1のソフトウェアを割り当て、第1のソフトウェアが第2のコアに割り当てられた場合、第1のコアを休止させることを要件とする。
本マルチコアプロセッサシステム、電力制御方法、および電力制御プログラムによれば、演算能力の余剰を減らし、省電力化できるという効果を奏する。
以下に添付図面を参照して、本発明にかかるマルチコアプロセッサシステム、電力制御方法、および電力制御プログラムの好適な実施の形態を詳細に説明する。
(マルチコアプロセッサシステムのハードウェア)
図1は、本実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。図1において、マルチコアプロセッサシステム100は、ベースバンドプロセッサ(BP)101と、PMU(Power Management Unit)102と、アプリケーションプロセッサ(APL)103と、DSP104と、を備えている。
図1は、本実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。図1において、マルチコアプロセッサシステム100は、ベースバンドプロセッサ(BP)101と、PMU(Power Management Unit)102と、アプリケーションプロセッサ(APL)103と、DSP104と、を備えている。
マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。好ましくは、マルチコアプロセッサシステム100は、性能が異なるコアを複数備える、ヘテロジニアス・マルチコアプロセッサシステムであってもよい。
また、専用の記憶領域として、マルチコアプロセッサシステム100は、BP101がアクセス可能なRAM(Random Access Memory)107と、APL103がアクセス可能なRAM108とを備えている。共用の記憶領域として、マルチコアプロセッサシステム100は、ROM(Read Only Memory)109と、RAM110と、フラッシュROM111と、を備えている。また、ユーザやその他の機器との入出力装置として、マルチコアプロセッサシステム100は、アンテナ105と、RF回路106と、ディスプレイ112と、キーボード113と、を備えている。また、各部はバス114によってそれぞれ接続されている。
ここで、BP101は、RF回路106の制御によって通話の検出を行い、通信、通話機能を担当するプロセッサコアである。また、本実施の形態にかかるBP101は、APL103の演算能力に余剰があるか否かで、通話に伴う音声コーデック処理をAPL103かDSP104に配布する。PMU102は、消費電力を装置ごとに管理する装置であり、本実施の形態では、APL103とDSP104をスリープさせる。
APL103は、マルチメディア処理を担当するプロセッサコアである。また、APL103は、演算能力に余剰がある場合に、音声コーデックも担当する。APL103は、APL103とRAM108などの動作周波数を変更できる機能として、クロックギア機能を有してもよい。APL103は、実行しているソフトウェアの負荷に応じてクロックギアを切り替えることにより、省電力効果を得ることができる。たとえば、APL103は、クロックギアを3〜5段階に変更できる。具体的な動作周波数の例としては、100[MHz]、200[MHz]、600[MHz]であり、それぞれの動作周波数に対応する消費電力の例としては、100[mW]、200[mW]、600[mW]である。
DSP104は、音声コーデックを担当するプロセッサコアである。音声コーデックのフォーマットとしては、PCM(Pulse Code Modulation)、ADPCM(Adaptive Differential Pulse Code Modulation)が存在する。DSP104の専用のRAMを図示していないが、DSP104専用のRAMが存在してもよい。また、マルチコアプロセッサシステム100は、APL103がRAM108にアクセスして音声コーデック処理を実行している途中に、DSP104に音声コーデック処理を移行することもある。そのときには、RAM108に格納されている音声コーデックの途中結果にアクセスするため、DSP104はRAM108にアクセスできるように結線してもよい。
アンテナ105は、無線信号を送受信する。RF回路106は、高周波処理部であり、アンテナ105を介してインターネットなどのネットワークからデータを受信したり、ネットワークへデータを送信したりする。ここでは、RF回路106は、A(Analog)/D(Digital)コンバータやD/Aコンバータなどを備えていることとし、ネットワークからのデータをディジタル信号に変換したり、BP101からのデータをアナログ信号に変換したりする。
ROM109は、ブートプログラムなどのプログラムを記憶している。RAM110は、BP101、PMU102、APL103、DSP104のワークエリアとして使用される。フラッシュROM111は、OS(Operating System)などのシステムソフトウェアやアプリケーションソフトウェアなどを記憶している。
ディスプレイ112は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ112は、たとえば、TFT液晶ディスプレイなどを採用することができる。キーボード113は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。図1にて図示した例では、テンキーであり、ユーザからの入力を外部割り込みとしてPMU102に送信する。
(マルチコアプロセッサシステム100)
次に、マルチコアプロセッサシステム100について説明する。図2は、マルチコアプロセッサシステム100を示すブロック図である。マルチコアプロセッサシステム100は、検出部202と、抽出部203と、余剰判断部204と、割当部205と、休止部206と、決定部207と、移行部208と、休止通知部209と、コーデック処理検出部210と、コーデック処理配布部211と、を含む。この制御部となる機能(検出部202〜コーデック処理配布部211)は、記憶装置に記憶されたプログラムをBP101、PMU102、APL103のいずれかが実行することにより、その機能を実現する。記憶装置とは、たとえば、図1に示したRAM107、RAM108、ROM109、RAM110、フラッシュROM111などである。
次に、マルチコアプロセッサシステム100について説明する。図2は、マルチコアプロセッサシステム100を示すブロック図である。マルチコアプロセッサシステム100は、検出部202と、抽出部203と、余剰判断部204と、割当部205と、休止部206と、決定部207と、移行部208と、休止通知部209と、コーデック処理検出部210と、コーデック処理配布部211と、を含む。この制御部となる機能(検出部202〜コーデック処理配布部211)は、記憶装置に記憶されたプログラムをBP101、PMU102、APL103のいずれかが実行することにより、その機能を実現する。記憶装置とは、たとえば、図1に示したRAM107、RAM108、ROM109、RAM110、フラッシュROM111などである。
また、マルチコアプロセッサシステム100は、ソフトウェア能力要求テーブル201にアクセス可能である。ソフトウェア能力要求テーブル201は、複数のソフトウェアのうち、ソフトウェアごとに演算能力の要求値を記憶する。ソフトウェア能力要求テーブル201にアクセスするのは、APL103であるため、図2ではソフトウェア能力要求テーブル201がRAM108に格納されているが、RAM110などに格納されていてもよい。
また、各制御部のうち、検出部202〜割当部205、決定部207〜休止通知部209はAPL103によって実行される。休止部206は、PMU102によって実行される。コーデック処理検出部210、コーデック処理配布部211は、BP101によって実行される。
検出部202は、特定の処理を実行する特定のコアとは異なる他のコアにおいて、複数のソフトウェアのうち、特定のソフトウェアとは異なる他のソフトウェアが実行中であることを検出する機能を有する。特定のソフトウェアは、複数のソフトウェアに属し、特定の処理と同等の機能を有する。また、特定の処理とは、たとえば音声のコーデック処理であり、特定のコアとはDSP104である。また、特定の処理としては、DSP104が一般的に得意とするディジタル画像処理であってもよい。
特定のコアとは異なる他のコアは、APL103である。また、他のソフトウェアは、APL103にて実行される特定のソフトウェア以外であればどのソフトウェアであってもよい。たとえば、他のソフトウェアは、特定の処理以外のマルチメディア処理である、ストリーミング映像再生処理であってもよい。たとえば、マルチメディア処理を実行する以外にも、他のソフトウェアがビジネスソフトウェアであるワードプロセッサソフトウェアであれば文章編集処理を実行してもよい。
また、特定のコアと他のコアは、性能の異なるCPUであってもよい。図1、図2で示したAPL103は1つのCPUであるが、マルチメディア処理を実行するAPL103は複数のCPUを含んでいてもよい。特定の処理と同等の機能を有する特定のソフトウェアとは、たとえば、DSP104が担当するコーデック処理と同等の機能を有するコーデック処理ソフトウェアである。
具体的には、たとえば、検出部202は、DSP104にて音声のコーデック処理が実行中で、APL103ではコーデック処理ソフトウェアとは異なる他のソフトウェアが実行中であることを検出する。なお、検出されたという情報は、RAM108、RAM110などの記憶領域に記憶される。
抽出部203は、検出部202によって他のソフトウェアが他のコアに実行中である状態が検出された場合、ソフトウェア能力要求テーブル201から、特定のソフトウェアと他のソフトウェアとの演算能力の要求値を抽出する機能を有する。演算能力の要求値とは、ソフトウェアが正常動作するための演算能力である。演算能力の要求値は、実行前のシミュレーションや、プロファイラを用いて事前に測定される。また、APL103は、ソフトウェア実行時に記録を取り、ソフトウェア能力要求テーブル201を更新してもよい。具体的には、たとえば、検出部202によって検出された場合、抽出部203は、特定のソフトウェアの演算能力の要求値を抽出する。
抽出された値は、たとえば、1秒間に何百万個の命令が実行できるかを示すMIPS(Million Instructions Per Second)で示される。たとえば、抽出部203によって特定のソフトウェアであるコーデック処理ソフトウェアの演算能力の要求値は60[MIPS]と抽出される。同様に、抽出部203によって他のソフトウェアとして、ストリーミング再生ソフトウェアの演算能力の要求値は100[MIPS]、音声再生ソフトウェアの演算能力の要求値は40[MIPS]と抽出される。なお、抽出された演算能力の要求値は、RAM108、RAM110などの記憶領域に記憶される。
余剰判断部204は、抽出部203によって抽出された特定のソフトウェアと他のソフトウェアとの演算能力の要求値の合計が、他のコアの演算能力値以下か否かを判断する機能を有する。また、余剰判断部204は、移行部208によって移行対象ソフトウェアが移行させられる場合に、移行元のコアの移行対象ソフトウェア以外の残余のソフトウェアとの演算能力の要求値の合計が、移行元のコアの演算能力値以下か否かを判断してもよい。また、余剰判断部204は、移行元のコアの演算能力値以下であり、かつ、特定のソフトウェアと他のコアごとに実行中のソフトウェア群との演算能力の要求値の合計が、他のコアの演算能力値の合計以下であるか否かを判断してもよい。
具体的には、たとえば、特定のソフトウェアの演算能力の要求値が60[MIPS]、他のソフトウェアの演算能力の要求値が100[MIPS]、40[MIPS]であり、APL103の演算能力値が200[MIPS]である状態を想定する。60+100+40≦200となるため、余剰判断部204は、演算能力の要求値の合計が、APL103の演算能力値以下であると判断する。なお、判断された情報は、RAM108、RAM110などの記憶領域に記憶される。
割当部205は、余剰判断部204によって他のコアの演算能力値以下であると判断された場合、他のコアに特定のソフトウェアを割り当てる機能を有する。また、割当部205は、決定部207によって決定されたコアに特定のソフトウェアを割り当ててもよい。具体的には、たとえば、余剰判断部204によってAPL103の演算能力値以下であると判断された場合、割当部205は、APL103にコーデック処理ソフトウェアを割り当てる。なお、割り当て結果は、RAM108、RAM110などの記憶領域に記憶される。
休止部206は、割当部205によって特定のソフトウェアが他のコアに割り当てられた場合、休止通知部209から通知を受け、特定のコアを休止させる機能を有する。また、休止部206は、割当部205によって特定のソフトウェアが決定部207によって決定されたコアに割り当てられた場合、特定のコアを休止させてもよい。具体的には、たとえば、APL103にコーデック処理ソフトウェアが割り当てられた場合、PMU102は、DSP104を休止させる。なお、休止させたという情報は、RAM110などの記憶領域に記憶される。
決定部207は、余剰判断部204によって他のコアの演算能力値以下であると判断された場合、他のコアの中から、演算能力値と特定のソフトウェアおよび他のソフトウェアの演算能力の要求値の合計との差分が最大となるコアを決定する機能を有する。
たとえば、APL103がAPL#1〜APL#3という3個のCPUを含む。また、APL#1の演算能力値が100[MIPS]であり、要求値の合計が70[MIPS]であれば、差分は30[MIPS]となる。同様に、APL#2の演算能力値が200[MIPS]であり、要求値の合計が120[MIPS]であれば、差分は80[MIPS]となる。同様に、APL#3の演算能力値が600[MIPS]であり、要求値の合計が580[MIPS]であれば、差分は20[MIPS]となる。
このとき、決定部207は、APL#1〜APL#3から差分が最大となるAPL#2をコーデック処理ソフトウェアを割り当てられるCPUとして決定する。なお、決定されたCPUの情報は、RAM108、RAM110などの記憶領域に記憶される。
移行部208は、他のコアのうち移行元のコアで実行中である移行対象ソフトウェアを、他のコアのうち移行先のコアに移行させる機能を有する。また、移行部208は、余剰判断部204によって、特定のソフトウェアと移行元のコアの移行対象ソフトウェア以外の残余のソフトウェアとの演算能力の要求値の合計が移行元のコアの演算能力値以下と判断された場合、移行対象ソフトウェアを移行させてもよい。
たとえば、APL103がAPL#1、APL#2という2個のCPUを含む。さらに、APL#1が移行元のコア、APL#2が移行先のコアとする。APL#1にて実行中のソフトウェアの演算能力の要求値が160[MIPS]であり、移行対象ソフトウェアの演算能力の要求値が20[MIPS]であれば、残余のソフトウェアの演算能力の要求値の合計は160−20=140[MIPS]となる。
さらに、APL#1の演算能力値が200[MIPS]、特定のソフトウェアの演算能力の要求値が60[MIPS]であれば、140+60≦200となり、余剰判断部204は、移行元のコアの演算能力値以下と判断する。よって、移行部208は、移行対象ソフトウェアをAPL#2に移行させる。なお、移行させた移行対象ソフトウェアの情報は、RAM108、RAM110などの記憶領域に記憶されてもよい。
休止通知部209は、割当部205によって特定のソフトウェアが他のコアに割り当てられた場合に、特定のコアの休止依頼を通知する機能を有する。具体的には、たとえば、APL103に特定のソフトウェアであるコーデック処理ソフトウェアが割り当てられた後、休止通知部209は、PMU102にDSP104の休止依頼を通知する。なお、休止依頼情報は、RAM108、RAM110などの記憶領域に記憶されてもよい。
コーデック処理検出部210は、RF回路106によって入出力されたデータに基づいて、コーデック処理が発生するかを検出する機能を有する。具体的には、たとえば、入力されたデータをマルチコアプロセッサシステム100で適用するプロトコルに従って変換した結果、入力されたデータのフォーマットがPCMやADPCMであった場合に、BP101は、コーデック処理が発生することを検出する。なお、検出されたデータは、RAM107、RAM110などの記憶領域に記憶される。
コーデック処理配布部211は、コーデック処理検出部210によって検出されたコーデック処理をAPL103の演算能力の余剰に基づいて、APL103かDSP104に配布する機能を有する。具体的には、たとえば、APL103の演算能力に余剰があれば、BP101は、コーデック処理をAPL103に配布する。APL103の演算能力に余剰がなければ、BP101は、コーデック処理をDSP104に配布する。なお、APL103かDSP104のどちらにコーデック処理を配布したかという情報は、RAM107、RAM110などの記憶領域に記憶される。
図3は、マルチコアプロセッサシステム100の各CPUの実行状態の遷移を示す説明図である。マルチコアプロセッサシステム100の状態は、以下の5つの状態のうちいずれか1つの状態になる。状態301は、通話中でなくBP101のみを実行中である。状態302は、通話中でありBP101とDSP104を実行中である。状態303は、通話中でありBP101とAPL103を実行中である。状態304は、通話中でありBP101とAPL103とDSP104を実行中である。状態305は、通話中でなくBP101とAPL103を実行中である。
マルチコアプロセッサシステム100が状態301の状態で、BP101が通話の検出を行うと、PMU102は、音声コーデック処理を行うDSP104を休止状態から復帰させる。結果、マルチコアプロセッサシステム100は、状態301から状態302に遷移する。また、マルチコアプロセッサシステム100が状態301の状態で、PMU102がキーボード113からの外部割り込みを検出すると、PMU102は、マルチメディア処理を行うAPL103を休止状態から復帰させる。結果、マルチコアプロセッサシステム100は、状態301から状態305に遷移する。
マルチコアプロセッサシステム100が状態302の状態で、BP101が通話終了の検出を行うと、PMU102は、音声コーデック処理を行うDSP104を休止させる。結果、マルチコアプロセッサシステム100は、状態302から状態301に遷移する。
また、マルチコアプロセッサシステム100が状態302の状態で、PMU102がキーボード113からの外部割り込みを検出すると、PMU102はマルチメディア処理を行うAPL103を休止状態から復帰させる。さらに、APL103の演算能力に余剰がある場合は、PMU102は、コーデック処理をDSP104からAPL103に移行させる。結果、マルチコアプロセッサシステム100は、状態302から状態303に遷移する。もし、APL103の演算能力に余剰がない場合は、DSP104はコーデック処理を継続する。結果、マルチコアプロセッサシステム100は、状態302から状態304に遷移する。
マルチコアプロセッサシステム100が状態303の状態で、無操作状態が一定時間を超えタイムアウトした場合は、APL103は、マルチメディア処理を終了する。続けて、PMU102は、DSP104を休止状態から復帰させた後、コーデック処理をAPL103からDSP104に移行させた後、APL103を休止させる。結果、マルチコアプロセッサシステム100は、状態303から状態302に遷移する。
また、マルチコアプロセッサシステム100が状態303の状態で、更なる外部割り込みを検出しマルチメディア処理が増加し、APL103の演算能力に余剰がなくなった場合、PMU102は、まずDSP104を休止状態から復帰させる。続けて、PMU102はコーデック処理をAPL103からDSP104に移行させる。結果、マルチコアプロセッサシステム100は、状態303から状態304に遷移する。また、マルチコアプロセッサシステム100が状態303の状態で、BP101が通話終了の検出を行うと、APL103は音声コーデック処理を終了する。結果、マルチコアプロセッサシステム100は、状態303から状態305に遷移する。
マルチコアプロセッサシステム100が状態304の状態で、マルチメディア処理のいくつかが終了し、APL103の演算能力に余剰が発生した場合、PMU102はコーデック処理をDSP104からAPL103に移行させる。続けて、PMU102は、DSP104を休止させる。結果、マルチコアプロセッサシステム100は、状態304から状態303に遷移する。また、マルチコアプロセッサシステム100が状態304の状態で、BP101が通話終了の検出を行うと、PMU102は、音声コーデック処理を行うDSP104を休止させる。結果、マルチコアプロセッサシステム100は、状態304から状態305に遷移する。
マルチコアプロセッサシステム100が状態305の状態で、BP101が通話の検出を行うと、APL103の演算能力に余剰がある場合は、APL103がコーデック処理を実行する。結果、マルチコアプロセッサシステム100は、状態305から状態303に遷移する。また、APL103の演算能力に余剰がない場合は、PMU102は、DSP104を休止状態から復帰させる。結果、マルチコアプロセッサシステム100は、状態305から状態304に遷移する。
また、マルチコアプロセッサシステム100が状態305の状態で、無操作状態が一定時間を越えタイムアウトした場合は、APL103は、マルチメディア処理を終了する。マルチメディア処理がすべて終了した場合、PMU102は、APL103を休止させる。結果、マルチコアプロセッサシステム100は、状態305から状態301に遷移する。
図4は、図3の状態302における各CPUの実行状況と消費電力の説明図である。マルチコアプロセッサシステム100の状態が状態302である場合、BP101とDSP104が通話処理を実行中である。また、DSP104の消費電力を50[mW]とし、APL103の消費電力は、クロックギアの低い順に100[mW]、200[mW]、600[mW]とする。マルチコアプロセッサシステム100の状態302におけるDSP104とAPL103の合計消費電力は、50+0=50[mW]となる。
図5は、図3の状態304における各CPUの実行状況と消費電力の説明図である。マルチコアプロセッサシステム100の状態が状態304である場合、BP101とAPL103とDSP104が実行中である。APL103は、下から2番目のクロックギアで動作していることを想定する。マルチコアプロセッサシステム100の状態304におけるDSP104とAPL103の合計消費電力は、50+200=250[mW]となる。
図6は、図3の状態303における各CPUの実行状況と消費電力の説明図である。マルチコアプロセッサシステム100の状態が状態303である場合、BP101とAPL103が実行中である。マルチコアプロセッサシステム100の状態303におけるDSP104とAPL103の合計消費電力は、0+200=200[mW]となる。このように、状態304と状態303を比較すると、マルチコアプロセッサシステム100として実行している処理は一致しているものの、APL103の演算能力の余剰分をコーデック処理に使用しているため、状態303の方が省電力となる。
図7は、ソフトウェア能力要求テーブル201の記憶内容の一例を示す説明図である。テーブルは、ソフトウェア名称、演算能力の要求値という2つのフィールドを有する。ソフトウェア名称フィールドは、ソフトウェアの名称を格納する。演算能力の要求値フィールドは、ソフトウェアの演算能力の要求値を格納する。
“ストリーミング再生”ソフトウェアが正常動作するには、たとえば、演算能力は100[MIPS]となる。同様に、“音声再生”ソフトウェアが正常動作するには、たとえば、演算能力は40[MIPS]、“地図表示”ソフトウェアが正常動作するには、演算能力は、たとえば、110[MIPS]となる。また、DSP104が行うコーデック処理と同等の機能を持つ“PCMコーデック”ソフトウェアが正常動作するには、演算能力は、たとえば、60[MIPS]となる。具体的な演算能力の要求値の設定方法については、実行前のシミュレーションや、プロファイラを用いて事前に測定して得られた結果を設定する。
図7を用いて、マルチコアプロセッサシステム100が状態304から状態303になる場合のAPL103でのマルチメディア処理の実行例を示す。たとえば、APL103の消費電力が200[mW]であり、対応する演算能力が200[MIPS]とする。このとき、APL103で実行しているソフトウェアが、“ストリーミング再生”ソフトウェアと“音声再生”ソフトウェアであれば、両ソフトウェアの演算能力の要求値の合計は140[MIPS]となる。APL103の演算能力が200[MIPS]であり、余剰演算能力は、200−140=60[MIPS]となることから、APL103は、“PCMコーデック”ソフトウェアの正常動作に60[MIPS]を確保できる。この場合は、余剰ありとして、マルチコアプロセッサシステム100の状態が状態304から状態303となる。
また、APL103で実行しているソフトウェアが、“地図表示”ソフトウェアと“音声再生”ソフトウェアである場合を想定する。この場合の両ソフトウェアの演算能力の要求値の合計は110+40=150[MIPS]となる。余剰演算能力は、200−150=50[MIPS]となることから、APL103は、60[MIPS]を確保できないため、“PCMコーデック”ソフトウェアの正常動作をすることができない。したがって、マルチコアプロセッサシステム100の状態は、状態304を維持する。
図8A、図8Bは、マルチコアプロセッサシステム100のスケジューリング処理を示すフローチャートである。図8AではPMU102とAPL103のスケジューリング処理を示し、図8BではBP101のスケジューリング処理を示す。
PMU102は、後述するステップS826、ステップS828、ステップS830、ステップS832、ステップS846、ステップS850、ステップS851から通知を受信すると、PMUイベント取得処理を実行する(ステップS801)。PMUイベント取得処理の詳細は、図9にて後述する。PMU102は、PMUイベント取得処理で出力されたイベントによって処理を分岐する(ステップS802)。出力されたイベントが“外部割り込みイベント”であれば(ステップS802:外部割り込みイベント)、PMU102は、外部割り込み検出処理を実行する(ステップS803)。外部割り込み検出処理の詳細は、図10にて後述する。ステップS803の処理内ではAPL103の状態に応じて、PMU102はAPL103に外部割り込み通知を送信する。外部割り込み検出処理実行後、PMU102は、ステップS801の処理に移行する。
出力されたイベントが“コーデック結果イベント”であれば(ステップS802:コーデック結果イベント)、PMU102は、コーデック結果処理を実行する(ステップS804)。コーデック結果処理の詳細は、図11にて後述する。コーデック結果処理実行後、PMU102は、ステップS801の処理に移行する。出力されたイベントが“DSP起動要求イベント”であれば(ステップS802:DSP起動要求イベント)、PMU102は、DSP起動要求処理を実行する(ステップS805)。DSP起動要求処理の詳細は、図12にて後述する。ステップS805の処理内では、DSP起動要求を行った要求元に応じて、PMU102は、APL103か、BP101にDSP起動完了通知を送信する。DSP起動要求処理実行後、PMU102は、ステップS801の処理に移行する。
出力されたイベントが“余剰ありイベント”であれば(ステップS802:余剰ありイベント)、PMU102は、余剰あり処理を実行する(ステップS806)。余剰あり処理の詳細は、図13にて後述する。また、ステップS806の処理内で、PMU102は、BP101に余剰あり通知を送信する。余剰あり処理実行後、PMU102は、ステップS801の処理に移行する。出力されたイベントが“APLスリープ要求イベント”であれば(ステップS802:APLスリープ要求イベント)、PMU102は、APL103を休止させる(ステップS807)。実行後、PMU102は、ステップS801の処理に移行する。
次に、APL103のフローチャートを説明する。APL103は、通知を受信するまで休止する(ステップS821)。具体的な休止方法としては、たとえば、PMU102がAPL103に対して電力の供給を停止することで、APL103を休止状態にさせる。
続けて、ステップS803、ステップS805、または、後述するステップS845、ステップS849から通知を受け取ると、APL103は、受信した通知を取得する(ステップS822)。次に、APL103は外部割り込み処理を開始する(ステップS823)。具体的には、APL103は、外部割り込み処理に対応したマルチメディア処理としてストリーミング再生ソフトウェア、音声再生ソフトウェアなどを実行する。
外部割り込み処理開始後、APL103は、余剰判断処理を実行する(ステップS824)。余剰判断処理の詳細は、図14、図15A、図15Bにて後述する。判断結果により、APL103は、余剰ありか否かを判断する(ステップS825)。余剰ありと判断された場合(ステップS825:Yes)、APL103は、PMU102へ余剰あり通知を送信する(ステップS826)。送信後、APL103は、ステップS822の処理にてコーデック処理依頼通知を受けたかを判断する(ステップS827)。
コーデック処理依頼通知を受けていた場合(ステップS827:Yes)、APL103は、コーデック開始処理を実行する(ステップS828)。コーデック開始処理の詳細は、図16にて後述する。ステップS828の処理内ではDSP104の休止状態であれば、APL103はPMU102にDSP起動要求通知を送信する。また、コーデック処理が終了した場合、APL103は、コーデック処理の結果をBP101へ通知する。
コーデック開始処理実行後、APL103は、外部割り込み処理が終了したかを判断する(ステップS831)。外部割り込み処理が終了した場合(ステップS831:Yes)、APL103は、外部割り込み終了処理を実行する(ステップS832)。外部割り込み終了処理の詳細は、図18にて後述する。ステップS832の処理内ではPMU102に余剰あり通知を送信していた場合、APL103はPMU102に余剰ありの取り消し通知を送信する。
外部割り込み終了処理終了後、APL103は、ステップS821の処理に移行する。外部割り込み処理が終了していない場合(ステップS831:No)、APL103は、タスクディスパッチが発生したかを判断する(ステップS833)。タスクディスパッチが発生した場合(ステップS833:Yes)、再び外部割り込み処理が発生したことになるため、APL103は、ステップS823の処理に移行する。タスクディスパッチが発生していない場合(ステップS833:No)、APL103は、ステップS831の処理に移行する。
余剰なしと判断された場合(ステップS825:No)、APL103は、コーデック処理依頼通知を受けたかを判断する(ステップS829)。コーデック処理依頼通知を受けていた場合(ステップS829:Yes)、APL103は、DSPコーデック処理を実行する(ステップS830)。DSPコーデック処理の詳細は、図17にて後述する。ステップS830の処理内ではDSP104が休止状態であれば、APL103はPMU102にDSP起動要求通知を送信する。DSPコーデック処理後、APL103は、ステップS831の処理に移行する。コーデック処理依頼通知を受けていない場合も(ステップS827:No、ステップS829:No)、APL103は、ステップS831の処理に移行する。
次に、図8Bを用いてBP101のスケジューリング処理を説明する。BP101は、コーデック処理が発生したかを判断する(ステップS841)。コーデック処理が発生していない場合(ステップS841:No)、BP101は一定時間後に、再びステップS841の処理を実行する。コーデック処理が発生した場合(ステップS841:Yes)、BP101は、ステップS805、ステップS806、ステップS828から送信され、BP101が受信した通知を取得する(ステップS842)。通知を取得後、BP101は、コーデック処理をDSP104かAPL103が現在実行しているかを判断する(ステップS843)。
コーデック処理が実行されている場合(ステップS843:Yes)、BP101は、PMU102からAPL103の余剰あり通知を受信したかを判断する(ステップS844)。余剰あり通知を受信していない場合(ステップS844:No)、BP101は、DSP104またはAPL103からコーデック処理の結果を受信したかを判断する(ステップS847)。コーデック処理の結果を受信した場合(ステップS847:Yes)、BP101は、PMU102へ、コーデック処理結果受け取り通知を送信する(ステップS851)。送信後、BP101は、ステップS841の処理に移行する。
コーデック処理の結果を受信していない場合(ステップS847:No)、BP101は、ステップS842の処理に移行する。余剰あり通知を受信した場合(ステップS844:Yes)、BP101は、APL103へコーデック処理依頼通知を送信する(ステップS845)。送信後、BP101は、PMU102へ、APL103への配布完了通知を送信し(ステップS846)、ステップS842の処理に移行する。
コーデック処理がDSP104でもAPL103でも実行されていない場合(ステップS843:No)、BP101は、PMU102からAPL103の余剰あり通知を受信したかを判断する(ステップS848)。余剰あり通知を受信した場合(ステップS848:Yes)、BP101は、APL103へコーデック処理依頼通知を送信し(ステップS849)、ステップS842の処理に移行する。余剰あり通知を受信していない場合(ステップS848:No)、BP101は、DSPコーデック処理を実行し(ステップS850)、ステップS842の処理に移行する。ステップS850の処理内ではDSP104が休止状態であれば、BP101はPMU102にDSP起動要求通知を送信する。
図9は、PMUイベント取得処理を示すフローチャートである。PMU102は、割り込みまたは通知を受信するまで待機する(ステップS901)。PMU102は、割り込みまたは通知を取得し(ステップS902)、余剰ありの取り消し通知を取得したかを判断する(ステップS903)。余剰ありの取り消し通知を取得した場合(ステップS903:Yes)、PMU102は、通知を記憶するキューの中から余剰あり通知を削除し(ステップS904)、再びステップS901の処理に移行する。
取得した通知が余剰ありの取り消し通知でない場合(ステップS903:No)、PMU102は、外部割り込みを取得したかを判断する(ステップS905)。外部割り込みを取得した場合(ステップS905:Yes)、PMU102は、外部割り込みイベントを出力し(ステップS906)、PMUイベント処理を終了する。外部割り込みを取得していない場合(ステップS905:No)、PMU102は、BP101からのコーデック処理結果受け取り通知を取得したかを判断する(ステップS907)。コーデック処理結果受け取り通知を取得した場合(ステップS907:Yes)、PMU102は、コーデック結果イベントを出力し(ステップS908)、PMUイベント処理を終了する。
コーデック処理結果受け取り通知を取得していない場合(ステップS907:No)、PMU102は、DSP起動要求通知を取得したかを判断する(ステップS909)。DSP起動要求通知を取得した場合(ステップS909:Yes)、PMU102は、DSP起動要求イベントを出力し(ステップS910)、PMUイベント処理を終了する。DSP起動要求通知を取得していない場合(ステップS909:No)、PMU102は、余剰あり通知を取得したかを判断する(ステップS911)。余剰あり通知を取得した場合(ステップS911:Yes)、PMU102は、余剰ありイベントを出力し(ステップS912)、PMUイベント処理を終了する。
余剰あり通知を取得していない場合(ステップS911:No)、PMU102は、APL103からのスリープ要求通知を取得したかを判断する(ステップS913)。スリープ要求通知を取得した場合(ステップS913:Yes)、PMU102は、APLスリープ要求イベントを出力し(ステップS914)、PMUイベント処理を終了する。APLスリープ要求通知を取得していない場合(ステップS913:No)、ステップS902にて取得した通知は破棄し、ステップS901の処理に移行する。
図10は、外部割り込み検出処理を示すフローチャートである。PMU102は、APL103が起動中かを判断する(ステップS1001)。APL103が起動中でない場合(ステップS1001:No)、PMU102は、APL103を起動させる(ステップS1002)。APLが起動中の場合(ステップS1001:Yes)、またはステップS1002の処理後、PMU102は、APL103へ外部割り込み通知を送信し(ステップS1003)、外部割り込み検出処理を終了する。
図11は、コーデック結果処理を示すフローチャートである。PMU102は、DSP104が起動中かを判断する(ステップS1101)。起動中である場合(ステップS1101:Yes)、PMU102は、DSP104を休止させ(ステップS1102)、コーデック結果処理を終了する。DSP104が起動中でない場合も(ステップS1101:No)、PMU102はコーデック結果処理を終了する。
図12は、DSP起動要求処理を示すフローチャートである。PMU102は、DSP104を起動させる(ステップS1201)。DSP104の起動後、PMU102は、APL103からDSP起動要求通知を受信したかを判断する(ステップS1202)。APL103からDSP起動要求通知を受信した場合(ステップS1202:Yes)、PMU102は、APL103へDSP起動完了通知を送信する(ステップS1203)。ステップS1203の処理後、またBP101からDSP起動要求通知を受信していない場合(ステップS1202:No)、PMU102は、BP101へDSP起動完了通知を送信し(ステップS1204)、DSP起動要求処理を終了する。
図13は、余剰あり処理を示すフローチャートである。PMU102は、BP101へ余剰あり通知を送信する(ステップS1301)。送信後、PMU102は、BP101からAPL103への配布完了通知を受信したかを判断する(ステップS1302)。配布完了通知を受信していない場合(ステップS1302:No)、PMU102は、一定時間後に、再びステップS1302の処理に移行する。
配布完了通知を受信した場合(ステップS1302:Yes)、PMU102は、DSP104が起動中かを判断する(ステップS1303)。DSP104が起動中の場合(ステップS1303:Yes)、PMU102は、DSP104を休止させ(ステップS1304)、余剰あり処理を終了する。DSP104が起動中でない場合(ステップS1303:No)、PMU102は、余剰あり処理を終了する。
図14、図15A、図15Bは、余剰判断処理を示すフローチャートである。図14では、マルチコアプロセッサシステム100でのAPL103の個数が単数である場合のフローチャートを示し、図15A、図15Bでは、マルチコアプロセッサシステム100でのAPL103の個数が複数である場合のフローチャートを示す。
図14は、APL103が単数の場合における余剰判断処理を示すフローチャートである。APL103は、ソフトウェア能力要求テーブル201から、コーデック処理ソフトウェアの演算能力の要求値Cを取得する(ステップS1401)。続けて、APL103は、変数kを1に設定する(ステップS1402)。
設定後、APL103は、ソフトウェア能力要求テーブル201から、APL103で実行されているk番目のソフトウェアの演算能力の要求値A(k)を取得する(ステップS1403)。取得後、APL103は、変数kをインクリメントし(ステップS1404)、変数kがAPL103で実行中のソフトウェア数以下かを判断する(ステップS1405)。変数kが実行中のソフトウェア数以下である場合(ステップS1405:Yes)、APL103は、ステップS1403の処理に移行する。
変数kが実行中のソフトウェア数を越えた場合(ステップS1405:No)、APL103は、APL103の現在のクロックギアnに対する演算能力P(n)を取得する(ステップS1406)。ステップS1403、ステップS1406で取得した値を使用して、APL103は、不等式ΣkA(k)+C≦P(n)が成り立つかを判断する(ステップS1407)。不等式が成り立つ場合(ステップS1407:Yes)、APL103は、余剰ありとして判断し(ステップS1408)、余剰判断処理を終了する。不等式が成り立たない場合(ステップS1407:No)、APL103は、余剰なしとして判断し(ステップS1409)、余剰判断処理を終了する。
図15A、図15Bは、APL103が複数の場合における余剰判断処理を示すフローチャートである。図15A、図15Bでは、APL103がAPL#1、APL#2、・・・、APL#MまでのM個のCPUを含む。また、APL103が複数存在した場合、APL103が実行していたスケジューリング処理は、APL#1〜APL#Mのいずれか一つのCPUが行う。図15A、図15Bのフローチャートは、APL#1が実行している状態を説明している。
APL#1は、ソフトウェア能力要求テーブル201から、コーデック処理ソフトウェアの演算能力の要求値Cを取得する(ステップS1501)。取得後、APL#1は、変数xに1を設定する(ステップS1502)。設定後、APL#1は、x番目のAPLを選択する(ステップS1503)。選択後、APL#1は、変数kに1を設定する(ステップS1504)。設定後、APL#1は、ソフトウェア能力要求テーブル201から、APL#xで実行されているk番目のソフトウェアの演算能力の要求値Ax(k)を取得する(ステップS1505)。
取得後、APL#1は、変数kをインクリメントし(ステップS1506)、変数kがAPL#xで実行中のソフトウェア数以下かを判断する(ステップS1507)。変数kが実行中のソフトウェア数以下である場合(ステップS1507:Yes)、APL#1は、ステップS1505の処理に移行する。変数kが実行中のソフトウェア数を越えた場合(ステップS1507:No)、APL#1は、APL#xの、現在のクロックギアnxに対する演算能力Px(nx)を取得する(ステップS1508)。取得後、APL#1は、APL#1は変数xをインクリメントし(ステップS1509)、変数xがAPLの個数以下かを判断する(ステップS1510)。変数xがAPLの個数以下である場合(ステップS1510:Yes)、ステップS1503の処理に移行する。
変数xがAPLの個数以下でない場合(ステップS1510:No)、APL#1は、不等式ΣxΣkAx(k)+C≦ΣxPx(nx)が成り立つかを判断する(ステップS1511)。不等式が成り立たない場合(ステップS1511:No)、APL#1は、余剰なしと判断し(ステップS1520)、余剰判断処理を終了する。不等式が成り立つ場合(ステップS1511:Yes)、APL#1は、変数xを1に設定する(ステップS1512)。
続けてAPL#1は、APL#xでのコーデック割り当て後の余剰演算能力S(x)をS(x)=Px(nx)−{ΣkAx(k)+C}として算出する(ステップS1513)。算出後、APL#1は、変数xをインクリメントし(ステップS1514)、変数xがAPLの個数以下であるかを判断する(ステップS1515)。変数xがAPLの個数以下である場合(ステップS1515:Yes)、APL#1は、ステップS1513の処理に移行する。
変数xがAPLの個数以下でない場合(ステップS1515:No)、APL#1は、Max(S(x))が0以上となるかを判断する(ステップS1516)。Max(S(x))が0以上である場合(ステップS1516:Yes)、APL#1は、Max(S(x))となるAPL#xを余剰ありのCPUとして判断し(ステップS1519)、余剰判断処理を終了する。Max(S(x))が0未満である場合(ステップS1516:No)、APL#1〜APL#Mは、APL#1〜APL#Mでソフトウェアのリスケジューリング、またはマイグレーションを行う(ステップS1517)。
ステップS1517の処理の結果、APL#1は、APL#1〜APL#Mの中で、Max(S(x))≧0となるAPL#xが存在するかを判断する(ステップS1518)。APL#xが存在する場合(ステップS1518:Yes)、APL#1は、ステップS1519の処理に移行する。APL#xが存在しない場合(ステップS1518:No)、APL#1は、ステップS1520の処理に移行する。
ステップS1517の処理であるリスケジューリング、またはマイグレーションはAPL#1〜APL#Mの余剰演算能力S(x)がコーデック処理ソフトウェアの演算能力の要求値Cを超えるように実行される。以下に、具体的なマイグレーションの例を示す。具体的には、たとえば、APLがAPL#1、APL#2と2つ存在し、それぞれのクロックギアからAPL#1の演算能力が100[MIPS]、APL#2の演算能力が200[MIPS]である場合を想定する。
また、APL#1にて実行されているソフトウェアがソフトウェアA、ソフトウェアBと2つあり、演算能力の要求値が、それぞれ60[MIPS]、20[MIPS]であるとする。また、APL#2にて実行されているソフトウェアがソフトウェアC、ソフトウェアDと2つあり、演算能力の要求値が、140[MIPS]、20[MIPS]であるとする。また、コーデック処理ソフトウェアの演算能力の要求値Cが60[MIPS]であるとする。
このとき、ステップS1511の不等式は、(60+20)+(140+20)+60≦100+200となるため、APL#1は、ステップS1511:Yesのルートを処理する。続けて、ステップS1516にて、S(1)=−40、S(2)=−20となり、APL#1は、ステップS1517:Noのルートを処理する。
ステップS1517の処理にて、APL#1、APL#2は、APL#2で実行中のソフトウェアDを移行対象ソフトウェアとしてAPL#1に移行させることで、S(2)=0となり、APL#1は、ステップS1518:Yesのルートを処理することになる。このように、APL#1、APL#2の中で、コーデック処理ソフトウェアの演算能力の要求値Cを越えるようにAPL#1、APL#2はリスケジューリング、またはマイグレーションを行う。マイグレーションの対象となる移行対象ソフトウェアの検索処理の一例を示すフローチャートは、図19にて後述する。
図16は、コーデック開始処理を示すフローチャートである。APL103は、コーデック処理を開始する(ステップS1601)。コーデック処理中に、APL103は、外部割り込み処理が終了したか、または、APL103の演算能力に余剰がなくなったかを判断する(ステップS1602)。外部割り込み処理が終了していなく、かつ、APL103の演算能力に余剰がある場合(ステップS1602:No)、APL103は、コーデック処理が終了したかを判断する(ステップS1603)。コーデック処理が終了していない場合、APL103は、ステップS1602の処理に移行する。
コーデック処理が終了した場合(ステップS1603:Yes)、APL103は、BP101へコーデック処理の結果を返却する(ステップS1604)。結果を返却後、APL103は、コーデック処理の依頼通知を引き続き受信したかを判断する(ステップS1606)。受信していない場合(ステップS1606:No)、APL103は、コーデック開始処理を終了する。
コーデック処理の依頼通知を受信していた場合(ステップS1606:Yes)、APL103は、ステップS1601の処理に移行する。外部割り込み処理が終了したか、または、APL103の演算能力に余剰がなくなった場合(ステップS1602:Yes)、APL103は、DSPコーデック処理を実行し(ステップS1605)、コーデック開始処理を終了する。
図17は、DSPコーデック処理を示すフローチャートである。DSPコーデック処理は、BP101か、APL103によって実行される。図17の例では、DSPコーデック処理がBP101にて実行される場合を想定する。
BP101は、PMU102へDSP起動要求通知を送信する(ステップS1701)。DSP起動要求通知を送信後、BP101は、PMU102からDSP起動完了通知を受信したかを判断する(ステップS1702)。DSP起動完了通知を受信していない場合(ステップS1702:No)、BP101は、一定時間後、再びステップS1702の処理に移行する。
DSP起動完了通知を受信した場合(ステップS1702:Yes)、BP101は、APL103にてコーデック処理を実行していたかを判断する(ステップS1703)。APL103にてコーデック処理を実行していた場合(ステップS1703:Yes)、BP101は、APL103からDSP104にコーデック処理を移行し(ステップS1704)、DSPコーデック処理を終了する。APL103にてコーデック処理を実行していなかった場合(ステップS1703:No)、BP101は、DSP104へコーデック処理を配布し(ステップS1705)、DSPコーデック処理を終了する。
図18は、外部割り込み終了処理を示すフローチャートである。APL103は、PMU102へ余剰あり通知を送信したかを判断する(ステップS1801)。余剰あり通知を送信した場合(ステップS1801:Yes)、APL103は、PMU102へ余剰ありの取り消し通知を送信する(ステップS1802)。余剰あり通知を送信していない場合(ステップS1801:No)、または、ステップS1802の終了後、APL103は、PMU102へAPLスリープ要求を送信し(ステップS1803)、外部割り込み終了処理を終了する。
なお、余剰ありの取り消し通知を送信する際には、APL103は、PMU102の通知を格納するキューの一番先頭に、余剰ありの取り消し通知を格納してもよい。これにより、PMU102がステップS902にて通知を取得する際に、余剰あり通知より先に余剰ありの取り消し通知を取得でき、PMU102は、余剰あり通知を削除することができる。
図19は、ステップS1517におけるマイグレーションの対象となる移行対象ソフトウェアの検索処理の一例を示すフローチャートである。APL#1は、変数xに1を設定し(ステップS1901)、変数kにも1を設定する(ステップS1902)。設定後、APL#1は、APL#xのk番目のソフトウェアにおいて、S(x)+A(k)を算出する(ステップS1903)。
算出後、APL#1は、変数kをインクリメントし(ステップS1904)、変数kが実行中のソフトウェア以下かを判断する(ステップS1905)。変数kが実行中のソフトウェア数以下である場合(ステップS1905:Yes)、APL#1は、ステップS1903の処理に移行する。変数kが実行中のソフトウェア数を越えた場合(ステップS1905:No)、APL#1は、変数xをインクリメントし(ステップS1906)、変数xがAPLの個数以下かを判断する(ステップS1907)。変数xがAPLの個数以下である場合(ステップS1907:Yes)、APL#1はステップS1902の処理に移行する。
変数xがAPLの個数より大きい場合(ステップS1907:No)、APL#1は、算出されたS(x)+A(k)のうち、S(x)+A(k)≧0となり、最も最小のS(x)+A(k)となるx、kをx1、k1に設定する(ステップS1908)。APL#x1が移行元のCPUとなり、APL#x1のk1番目のソフトウェアが移行対象ソフトウェアになる。S(x1)+A(k1)≧0となるx1、k1が存在しなかった場合、APL#1は値を設定しない。なお、S(x1)+A(k1)≧0については、以下のように変形できる。
S(x1)+A(k1)≧0
⇔Px(nx1)−{ΣkAx(k)+C}+A(k1)≧0
⇔Px(nx1)≧{ΣkAx(k)−A(k1)}+C
⇔Px(nx1)−{ΣkAx(k)+C}+A(k1)≧0
⇔Px(nx1)≧{ΣkAx(k)−A(k1)}+C
{ΣkAx(k)−A(k1)}+Cは、移行対象ソフトウェア以外の残余のソフトウェアとコーデック処理の演算能力の要求値の合計となる。したがって、S(x1)+A(k1)≧0を満たすことは、前述の合計がAPL#x1の演算能力値以下となることと同値である。
APL#1は、x1、k1に値が設定されたかを判断する(ステップS1909)。値が設定されていない場合(ステップS1909:No)、APL#1は、移行対象ソフトウェアが見つからなかったとして出力し(ステップS1916)、移行対象ソフトウェアの検索処理を終了する。値が設定された場合(ステップS1909:Yes)、APL#1は、変数xに1を設定する(ステップS1910)。
設定後、APL#1は、変数xがAPLの個数以下かを判断する(ステップS1911)。変数xがAPLの個数より大きい場合(ステップS1911:No)、APL#1はステップS1916の処理に移行する。変数xがAPLの個数以下である場合(ステップS1911:Yes)、APL#1は変数xとx1が等しいかを判断する(ステップS1912)。変数xとx1が等しい場合(ステップS1912:Yes)、APL#1は変数xをインクリメントし(ステップS1914)、ステップS1911の処理に移行する。
変数xとx1が等しくない場合(ステップS1912:No)、APL#1は、不等式Px(nx)−ΣkA(k)−A(k1)≧0が成り立つかを判断する(ステップS1913)。不等式が成り立たない場合(ステップS1913:No)、APL#1は、ステップS1914の処理に移行する。不等式が成り立つ場合(ステップS1913:Yes)、APL#1は、APL#x1が移行元のCPU、APL#x1のk1番目のソフトウェアが移行対象ソフトウェア、APL#xが移行先のCPUであると出力する(ステップS1915)。出力後、APL#1は、移行対象ソフトウェアの検索処理を終了する。
図19の例では、移行対象ソフトウェアが1つの場合を例に挙げたが、複数のソフトウェアを移行対象ソフトウェアとして、移行元のAPLの演算能力にコーデック処理ソフトウェアの演算能力の要求値C分の余剰が生まれるようにしてもよい。
以上説明したように、マルチコアプロセッサシステム、電力制御方法、および電力制御プログラムによれば、特定のコアで実行される機能を持つ特定のソフトウェアと他のコアで実行中の他のソフトウェアの演算能力の合計が他のコアの演算能力以内かを判断する。演算能力以内なら、マルチコアプロセッサシステムは、特定のソフトウェアを他のコアに割り当て、特定のコアを休止させる。これにより、マルチコアプロセッサシステムは、他のコアで発生していた演算能力の余剰を有効活用し、特定のコアが使用する電力分省電力化を図ることができる。
また、マルチコアプロセッサシステムは、他のコアの中で、演算能力の余剰が最大となるコアに、特定のソフトウェアを割り当ててもよい。これにより、マルチコアプロセッサシステムは、特定のコアの分省電力化を図ることができる。さらに、マルチコアプロセッサシステムは、他のコアの負荷が均等に近づくように特定のソフトウェアを割り当てることができる。
また、マルチコアプロセッサシステムは、移行元のコアで実行中の移行対象ソフトウェアを移行先のコアに移行させ、移行元のコアに、特定のソフトウェアを割り当ててもよい。これにより、マルチコアプロセッサシステムは、他のコアのおのおのの演算能力の余剰が、特定のソフトウェアの演算能力の要求値に届かなくても、演算能力の余剰を1つのコアに集めることで特定のソフトウェアを前述の1つのコアで実行でき、省電力化を図れる。
また、マルチコアプロセッサシステムは、特定のソフトウェアと他のコアごとに実行中のソフトウェアとの演算能力の要求値の合計が、他のコアの演算能力値の合計以下である場合に、移行対象ソフトウェアを移行してもよい。これにより、マルチコアプロセッサシステムは、演算能力の余剰をまとめる前に、特定のソフトウェアを他のコアの1つのコアで実行できるか否かが判断でき、無駄な移行処理を行わずに済む。
なお、本実施の形態で説明した電力制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本電力制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本電力制御プログラムは、インターネット等のネットワークを介して配布してもよい。
101 BP
102 PMU
103 APL
104 DSP
105 アンテナ
106 RF回路
108 RAM
114 バス
201 ソフトウェア能力要求テーブル
202 検出部
203 抽出部
204 余剰判断部
205 割当部
206 休止部
207 決定部
208 移行部
209 休止通知部
210 コーデック処理検出部
211 コーデック処理配布部
102 PMU
103 APL
104 DSP
105 アンテナ
106 RF回路
108 RAM
114 バス
201 ソフトウェア能力要求テーブル
202 検出部
203 抽出部
204 余剰判断部
205 割当部
206 休止部
207 決定部
208 移行部
209 休止通知部
210 コーデック処理検出部
211 コーデック処理配布部
Claims (5)
- 第1の処理を実行する第1のコアとは異なる複数の第2のコアにおいて、複数のソフトウェアのうち第1のソフトウェアは前記第1の処理と同等の機能を有し、前記複数の第2のコアの各々のコアごとに、前記複数のソフトウェアのうち前記第1のソフトウェアと異なる機能を有するソフトウェアが実行中であることを検出する検出手段と、
前記検出手段によって前記第1のソフトウェアと異なる機能を有するソフトウェアが前記各々のコアで実行中である状態が検出された場合、前記複数のソフトウェアのそれぞれに対応する演算能力の要求値を記憶したデータベースから、前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値を前記各々のコアごとに抽出する抽出手段と、
前記抽出手段によって前記各々のコアごとに抽出された前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値の合計が、前記各々のコアの演算能力値以下か否かを前記各々のコアごとに判断する判断手段と、
前記判断手段によって前記演算能力の要求値の合計が前記各々のコアの演算能力値より大きいと判断された場合、前記複数の第2のコアのうち移行元のコアで実行中である移行対象ソフトウェアを、前記複数の第2のコアのうち移行先のコアに移行させる際に、前記第1のソフトウェアと前記移行元のコアで実行中のソフトウェアのうちの前記移行対象ソフトウェア以外のソフトウェアとの演算能力の要求値の合計が前記移行元のコアの演算能力値以下であるという判断結果と、前記移行先のコアが実行中のソフトウェアと前記移行対象ソフトウェアとの演算能力の要求値の合計が前記移行先のコアの演算能力値以下であるという判断結果と、が得られた際の前記移行元のコアと前記移行先のコアと前記移行対象ソフトウェアとを検索する検索手段と、
前記検索手段によって検索された前記移行元のコアで実行中である前記移行対象ソフトウェアを、前記検索手段によって検索された前記移行先のコアに移行させる移行手段と、
前記移行手段によって前記移行対象ソフトウェアが移行させられた後、前記移行元のコアに前記第1のソフトウェアを割り当てる割当手段と、
前記割当手段によって前記第1のソフトウェアが前記移行元のコアに割り当てられた場合、前記第1のコアを休止させる休止手段と、
を備えることを特徴とするマルチコアプロセッサシステム。 - 前記判断手段によって、前記演算能力の要求値の合計が前記各々のコアの演算能力値以下であると判断された前記各々のコアのうち、前記演算能力値と前記第1のソフトウェアおよび前記各々のコアが実行中のソフトウェアの演算能力の要求値の合計との差分が最大となるコアを決定する決定手段を備え、
前記割当手段は、
前記決定手段によって決定されたコアに前記第1のソフトウェアを割り当て、
前記休止手段は、
前記割当手段によって前記第1のソフトウェアが前記決定されたコアに割り当てられた場合、前記第1のコアを休止させることを特徴とする請求項1に記載のマルチコアプロセッサシステム。 - 前記判断手段は、
さらに、前記抽出手段によって抽出された前記第1のソフトウェアの演算能力の要求値と前記各々のコアごとに抽出された前記複数の第2のコアが実行中のソフトウェア群の演算能力の要求値との合計が、前記複数の第2のコアの演算能力値の合計以下であるか否かを判断し、
前記検索手段は、
前記判断手段によって前記演算能力の要求値の合計が前記各々のコアの演算能力値より大きいと判断され、かつ、前記第1のソフトウェアの演算能力の要求値と前記複数の第2のコアが実行中のソフトウェア群の演算能力の要求値との合計が前記複数の第2のコアの演算能力値の合計以下であると判断された場合、前記移行対象ソフトウェアを前記移行先のコアに移行させる際に、前記第1のソフトウェアと前記移行元のコアで実行中のソフトウェアのうちの前記移行対象ソフトウェア以外のソフトウェアとの演算能力の要求値の合計が前記移行元のコアの演算能力値以下であるという判断結果と、前記移行先のコアが実行中のソフトウェアと前記移行対象ソフトウェアとの演算能力の要求値の合計が前記移行先のコアの演算能力値以下であるという判断結果と、が得られた際の前記移行元のコアと前記移行先のコアと前記移行対象ソフトウェアとを検索する、
ことを特徴とする請求項1に記載のマルチコアプロセッサシステム。 - 第1の処理を実行する第1のコアとは異なる複数の第2のコアにおいて、複数のソフトウェアのうち第1のソフトウェアは前記第1の処理と同等の機能を有し、前記複数の第2のコアの各々のコアごとに、前記複数のソフトウェアのうち前記第1のソフトウェアと異なる機能を有するソフトウェアが実行中であることを検出する検出工程と、
前記検出工程によって前記第1のソフトウェアと異なる機能を有するソフトウェアが前記各々のコアで実行中である状態が検出された場合、前記複数のソフトウェアのそれぞれに対応する演算能力の要求値を記憶したデータベースから、前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値を前記各々のコアごとに抽出する抽出工程と、
前記抽出工程によって前記各々のコアごとに抽出された前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値の合計が、前記各々のコアの演算能力値以下か否かを前記各々のコアごとに判断する判断工程と、
前記判断工程によって前記演算能力の要求値の合計が前記各々のコアの演算能力値より大きいと判断された場合、前記複数の第2のコアのうち移行元のコアで実行中である移行対象ソフトウェアを、前記複数の第2のコアのうち移行先のコアに移行させる際に、前記第1のソフトウェアと前記移行元のコアで実行中のソフトウェアのうちの前記移行対象ソフトウェア以外のソフトウェアとの演算能力の要求値の合計が前記移行元のコアの演算能力値以下であるという判断結果と、前記移行先のコアが実行中のソフトウェアと前記移行対象ソフトウェアとの演算能力の要求値の合計が前記移行先のコアの演算能力値以下であるという判断結果と、が得られた際の前記移行元のコアと前記移行先のコアと前記移行対象ソフトウェアとを検索する検索工程と、
前記検索工程によって検索された前記移行元のコアで実行中である前記移行対象ソフトウェアを、前記検索工程によって検索された前記移行先のコアに移行させる移行工程と、
前記移行工程によって前記移行対象ソフトウェアが移行させられた後、前記移行元のコアに前記第1のソフトウェアを割り当てる割当工程と、
前記割当工程によって前記第1のソフトウェアが前記移行元のコアに割り当てられた場合、前記第1のコアの休止依頼を通知する休止通知工程と、
を前記複数の第2のコアのうちのいずれかのコアが実行することを特徴とする電力制御方法。 - 第1の処理を実行する第1のコアとは異なる複数の第2のコアにおいて、複数のソフトウェアのうち第1のソフトウェアは前記第1の処理と同等の機能を有し、前記複数の第2のコアの各々のコアごとに、前記複数のソフトウェアのうち前記第1のソフトウェアと異なる機能を有するソフトウェアが実行中であることを検出する検出工程と、
前記検出工程によって前記第1のソフトウェアと異なる機能を有するソフトウェアが前記各々のコアで実行中である状態が検出された場合、前記複数のソフトウェアのそれぞれに対応する演算能力の要求値を記憶したデータベースから、前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値を前記各々のコアごとに抽出する抽出工程と、
前記抽出工程によって前記各々のコアごとに抽出された前記第1のソフトウェアと前記各々のコアが実行中のソフトウェアとの演算能力の要求値の合計が、前記各々のコアの演算能力値以下か否かを前記各々のコアごとに判断する判断工程と、
前記判断工程によって前記演算能力の要求値の合計が前記各々のコアの演算能力値より大きいと判断された場合、前記複数の第2のコアのうち移行元のコアで実行中である移行対象ソフトウェアを、前記複数の第2のコアのうち移行先のコアに移行させる際に、前記第1のソフトウェアと前記移行元のコアで実行中のソフトウェアのうちの前記移行対象ソフトウェア以外のソフトウェアとの演算能力の要求値の合計が前記移行元のコアの演算能力値以下であるという判断結果と、前記移行先のコアが実行中のソフトウェアと前記移行対象ソフトウェアとの演算能力の要求値の合計が前記移行先のコアの演算能力値以下であるという判断結果と、が得られた際の前記移行元のコアと前記移行先のコアと前記移行対象ソフトウェアとを検索する検索工程と、
前記検索工程によって検索された前記移行元のコアで実行中である前記移行対象ソフトウェアを、前記検索工程によって検索された前記移行先のコアに移行させる移行工程と、
前記移行工程によって前記移行対象ソフトウェアが移行させられた後、前記移行元のコアに前記第1のソフトウェアを割り当てる割当工程と、
前記割当工程によって前記第1のソフトウェアが前記移行元のコアに割り当てられた場合、前記第1のコアの休止依頼を通知する休止通知工程と、
を前記複数の第2のコアのうちのいずれかのコアに実行させることを特徴とする電力制御プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055966 WO2011121786A1 (ja) | 2010-03-31 | 2010-03-31 | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014021654A Division JP2014078286A (ja) | 2014-02-06 | 2014-02-06 | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011121786A1 JPWO2011121786A1 (ja) | 2013-07-04 |
JP5472449B2 true JP5472449B2 (ja) | 2014-04-16 |
Family
ID=44711571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012508002A Expired - Fee Related JP5472449B2 (ja) | 2010-03-31 | 2010-03-31 | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム |
Country Status (5)
Country | Link |
---|---|
US (2) | US9037888B2 (ja) |
EP (1) | EP2555112A4 (ja) |
JP (1) | JP5472449B2 (ja) |
CN (1) | CN102822803A (ja) |
WO (1) | WO2011121786A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150005A (zh) * | 2013-03-01 | 2013-06-12 | 福州瑞芯微电子有限公司 | 非对称低功耗移动设备的多核结构 |
CN104348764B (zh) * | 2013-07-31 | 2017-09-19 | 国际商业机器公司 | 在数据接收链路中分配计算单元的方法和装置 |
US9785481B2 (en) * | 2014-07-24 | 2017-10-10 | Qualcomm Innovation Center, Inc. | Power aware task scheduling on multi-processor systems |
CN105005373A (zh) * | 2015-07-13 | 2015-10-28 | 中国科学院计算机网络信息中心 | 超级计算机中基于PCI Express总线的多GPU供电控制装置及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11202988A (ja) * | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JP2004126968A (ja) * | 2002-10-03 | 2004-04-22 | Fujitsu Ltd | 並列計算機のジョブスケジューリング装置 |
JP2005267635A (ja) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | マルチプロセッサシステムの電力損失を低減する方法、装置およびプロセッサ |
JP2008191949A (ja) * | 2007-02-05 | 2008-08-21 | Nec Corp | マルチコアシステムおよびマルチコアシステムの負荷分散方法 |
JP2009175850A (ja) * | 2008-01-22 | 2009-08-06 | Nec Corp | マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09185589A (ja) | 1996-01-05 | 1997-07-15 | Toshiba Corp | 情報処理システムと情報処理システムの省電力方法 |
JPH09274608A (ja) | 1996-04-04 | 1997-10-21 | Hitachi Ltd | マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法 |
US6006248A (en) | 1996-07-12 | 1999-12-21 | Nec Corporation | Job application distributing system among a plurality of computers, job application distributing method and recording media in which job application distributing program is recorded |
JP3006551B2 (ja) | 1996-07-12 | 2000-02-07 | 日本電気株式会社 | 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体 |
JP2000137692A (ja) | 1998-10-30 | 2000-05-16 | Toshiba Corp | 分散ノード間負荷分散方式 |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
JP2004287801A (ja) | 2003-03-20 | 2004-10-14 | Sony Computer Entertainment Inc | 情報処理システム、情報処理装置、分散情報処理方法及びコンピュータプログラム |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
EP1715405A1 (en) | 2005-04-19 | 2006-10-25 | STMicroelectronics S.r.l. | Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
JP2008276395A (ja) | 2007-04-26 | 2008-11-13 | Toshiba Corp | 情報処理装置およびプログラム実行制御方法 |
US8615647B2 (en) * | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US20100318827A1 (en) * | 2009-06-15 | 2010-12-16 | Microsoft Corporation | Energy use profiling for workload transfer |
US8381005B2 (en) * | 2009-12-18 | 2013-02-19 | International Business Machines Corporation | Processor and memory folding for managing power consumption in information processing systems |
-
2010
- 2010-03-31 CN CN201080065829XA patent/CN102822803A/zh active Pending
- 2010-03-31 WO PCT/JP2010/055966 patent/WO2011121786A1/ja active Application Filing
- 2010-03-31 EP EP10848962.6A patent/EP2555112A4/en not_active Withdrawn
- 2010-03-31 JP JP2012508002A patent/JP5472449B2/ja not_active Expired - Fee Related
-
2012
- 2012-09-28 US US13/630,526 patent/US9037888B2/en not_active Expired - Fee Related
-
2015
- 2015-04-17 US US14/689,603 patent/US20150220362A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11202988A (ja) * | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JP2004126968A (ja) * | 2002-10-03 | 2004-04-22 | Fujitsu Ltd | 並列計算機のジョブスケジューリング装置 |
JP2005267635A (ja) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | マルチプロセッサシステムの電力損失を低減する方法、装置およびプロセッサ |
JP2008191949A (ja) * | 2007-02-05 | 2008-08-21 | Nec Corp | マルチコアシステムおよびマルチコアシステムの負荷分散方法 |
JP2009175850A (ja) * | 2008-01-22 | 2009-08-06 | Nec Corp | マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN102822803A (zh) | 2012-12-12 |
EP2555112A4 (en) | 2014-08-13 |
US20150220362A1 (en) | 2015-08-06 |
WO2011121786A1 (ja) | 2011-10-06 |
EP2555112A1 (en) | 2013-02-06 |
US9037888B2 (en) | 2015-05-19 |
US20130031391A1 (en) | 2013-01-31 |
JPWO2011121786A1 (ja) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fernando et al. | Dynamic mobile cloud computing: Ad hoc and opportunistic job sharing | |
CN113037929B (zh) | 一种信息接力输出方法、装置、电子设备及存储介质 | |
JP6355853B2 (ja) | マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法 | |
CN109117260A (zh) | 一种任务调度方法、装置、设备和介质 | |
KR100700951B1 (ko) | 이동통신 시스템에서 다중 작업 관리를 위한 장치 및 방법 | |
JP5472449B2 (ja) | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム | |
EP2530592B1 (en) | Mobile terminal and task scheduling method therefor | |
US20120066526A1 (en) | System and method for determining optimal operating parameters for conserving power of a portable computing device | |
US20110225590A1 (en) | System and method of executing threads at a processor | |
Chunlin et al. | Cost and energy aware service provisioning for mobile client in cloud computing environment | |
US9836527B2 (en) | Customized query-action mappings for an offline grammar model | |
CN110162393B (zh) | 任务调度方法、装置及存储介质 | |
KR20170059474A (ko) | 다수의 디바이스 상에 컴퓨팅 환경의 제시 | |
CN112686528A (zh) | 用于分配客服资源的方法、装置、服务器和介质 | |
CN115858175A (zh) | 异步i/o请求优先级的调度方法、装置、介质及控制设备 | |
CN103092703A (zh) | Java资源访问的同步方法和装置 | |
CN112835703B (zh) | 任务处理方法、装置、设备及存储介质 | |
US20130343373A1 (en) | Voice-over-internet protocol (voip) application platform | |
JP2014078286A (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
KR102230266B1 (ko) | 복수의 전자 디바이스 사이에서 애플리케이션을 공유하는 방법 및 전자 디바이스 | |
WO2021227642A1 (zh) | 一种低功耗分布式调用方法、设备及装置 | |
CN114205420A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN110209491B (zh) | 一种资源管理方法、装置、服务器及存储介质 | |
WO2011132296A1 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
Netto et al. | Leveraging attention scarcity to improve the overall user experience of cloud services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130909 |
|
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: 20140107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |