JP5862727B2 - Multi-core processor system, multi-core processor system control method, and multi-core processor system control program - Google Patents

Multi-core processor system, multi-core processor system control method, and multi-core processor system control program Download PDF

Info

Publication number
JP5862727B2
JP5862727B2 JP2014165036A JP2014165036A JP5862727B2 JP 5862727 B2 JP5862727 B2 JP 5862727B2 JP 2014165036 A JP2014165036 A JP 2014165036A JP 2014165036 A JP2014165036 A JP 2014165036A JP 5862727 B2 JP5862727 B2 JP 5862727B2
Authority
JP
Japan
Prior art keywords
core
cpu
processor system
software
core processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014165036A
Other languages
Japanese (ja)
Other versions
JP2014209394A (en
Inventor
宏真 山内
宏真 山内
浩一郎 山下
浩一郎 山下
鈴木 貴久
貴久 鈴木
康志 栗原
康志 栗原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014165036A priority Critical patent/JP5862727B2/en
Publication of JP2014209394A publication Critical patent/JP2014209394A/en
Application granted granted Critical
Publication of JP5862727B2 publication Critical patent/JP5862727B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

  • Power Sources (AREA)

Description

本発明は、電力を制御するマルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラムに関する。   The present invention relates to a multicore processor system for controlling power, a control method for a multicore processor system, and a control program for a multicore processor system.

従来から、マルチコアプロセッサシステムには、複数のコアに同一の命令を割り当てるSMP(Symmetric Multiple Processor)と、別々な命令を割り当てるAMP(Asymmetric Multiple Processor)が存在する。従来のシングルコアプロセッサ向けのソフトウェア資産をSMPに継承させる場合、ソフトウェアのプログラムコードから、並列処理となる部分を抽出する作業が行われる。これにより、プログラムコード変更に伴い開発コストが増大し、信頼性も低下する可能性があった。   Conventionally, multi-core processor systems include SMP (Symmetric Multiple Processor) for assigning the same instruction to a plurality of cores and AMP (Asymmetric Multiple Processor) for assigning different instructions. When inheriting software assets for a conventional single-core processor to SMP, an operation of extracting a part to be processed in parallel from software program code is performed. As a result, the development cost increases along with the program code change, and the reliability may decrease.

これに対し、AMPにソフトウェア資産を継承させる場合、それぞれの高負荷のソフトウェアをコアごとに分散して実行することで、プログラムコードの変更も発生せず、性能が向上するという効果があった。高負荷のソフトウェアを分散させたAMPでは、全体のコントロールを司る低クロックのプロセッサコアと、高負荷の処理を高速実行する高クロックのプロセッサコアを有している。このように、複数の性能の異なるプロセッサコアを有するマルチコアプロセッサシステムを、ヘテロジニアス・マルチコアプロセッサシステムと呼ぶ。   On the other hand, when the AMP inherits software assets, there is an effect that the program code is not changed and the performance is improved by distributing and executing each high-load software for each core. An AMP in which high-load software is distributed has a low-clock processor core that controls the entire system and a high-clock processor core that executes high-load processing at high speed. A multi-core processor system having a plurality of processor cores with different performances is called a heterogeneous multi-core processor system.

また、携帯端末などの組み込み機器においては、様々な省電力技術が適用されている。省電力技術が適用される理由としては、消費電力を抑えることにより、駆動時間を延ばすことができるためである。また、同一の駆動時間でも消費電力を削減することによりバッテリーを小型化することができ、組み込み機器全体の重量、体積を小さくすることができる。   Various power saving technologies are applied to embedded devices such as portable terminals. The reason why the power saving technique is applied is that the driving time can be extended by suppressing the power consumption. In addition, the battery can be reduced in size by reducing power consumption even in the same driving time, and the weight and volume of the entire embedded device can be reduced.

ヘテロジニアス・マルチコアプロセッサシステムの省電力の技術として、CPU(Central Processing Unit)の負荷に応じてプログラムを動作させるCPUを切り替えることで、省電力化を図るという技術が開示されている(たとえば、下記特許文献1を参照。)。   As a power saving technique of the heterogeneous multi-core processor system, a technique is disclosed in which power saving is achieved by switching a CPU that operates a program according to a load of a CPU (Central Processing Unit) (for example, the following) (See Patent Document 1).

また、ヘテロジニアス・マルチコアプロセッサシステムにおける他の省電力の技術として、専用のCPUと汎用のCPUのうち、外部電源かバッテリー駆動かに応じて、プログラムを割り当てるCPUを選択することで省電力化を図るという技術が開示されている(たとえば、下記特許文献2を参照。)。   In addition, as another power-saving technology in heterogeneous multi-core processor systems, power saving can be achieved by selecting a CPU to which a program is assigned according to whether it is an external power source or a battery drive, among dedicated CPUs and general-purpose CPUs. The technique of aiming is disclosed (for example, refer to the following Patent Document 2).

また、DVFS(Dynamic Voltage and Frequency Scaling)制御を行うことにより、省電力化を図る技術が開示されている(たとえば、下記非特許文献1を参照)。DVFS制御とは、消費電力が電圧または周波数の値に比例するため、プログラムの実行制約時間の範囲内で可能な限り電圧および周波数の値を下げることで、消費電力を削減する技術である。   Further, a technique for saving power by performing DVFS (Dynamic Voltage and Frequency Scaling) control is disclosed (for example, see Non-Patent Document 1 below). DVFS control is a technique for reducing power consumption by reducing voltage and frequency values as much as possible within the range of program execution restriction time because power consumption is proportional to the value of voltage or frequency.

特開平4−215168号公報JP-A-4-215168 特開2008−276395号公報JP 2008-276395 A

Keiji Kimura, Masayoshi Mase, Hiroki Mikami, Takamichi Miyamoto, Jun Shirako, and Hironori Kasahara“OSCAR API for Real−time Low−Power Multicores and Its Performance on Multicores and SMP Servers”Department of Computer Science and Engineering,vol.2,No.3,Sep.,2009,pp.96〜106Keiji Kimura, Masayoshi Mase, Hiroki Mikami, Takamichi Miyamoto, Jun Shirako, and Hironori Kasahara "OSCAR API for Real-time Low-Power Multicores and Its Performance on Multicores and SMP Servers" Department of Computer Science and Engineering, vol. 2, no. 3, Sep. , 2009, pp. 96-106

しかしながら、上述した従来技術において、特許文献1にかかる技術では、処理を割り当てていないCPUから発生するリーク電流が存在し、特にプロセッサコアが高クロックになると、リーク電流による消費電力が増大するという問題があった。   However, in the above-described prior art, in the technique according to Patent Document 1, there is a leakage current generated from a CPU to which processing is not assigned, and particularly when the processor core becomes a high clock, the power consumption due to the leakage current increases. was there.

また、特許文献2にかかる技術では、電源の利用形態が外部電源かバッテリー駆動かによってプログラムを割り当てるCPUを選択している。バッテリー駆動の際に、省電力状態となる低性能のCPUを選択することになり、バッテリーに余裕があったとしても常にプログラムの実行速度が低速となる問題点があった。   In the technique according to Patent Document 2, a CPU to which a program is allocated is selected depending on whether the power supply is used in an external power supply or battery-driven. When the battery is driven, a low-performance CPU that is in a power saving state is selected, and there is a problem that the execution speed of the program is always low even if there is room in the battery.

また、非特許文献1にかかる技術は、マルチ電源電圧が要求され、そのためには専用の回路を搭載しなければならず、製造コストや、実装面積が増大するという問題があった。さらに、非特許文献1ではマルチコアシングルスレッドの状態を対象としており、マルチスレッド動作を行うと、各スレッドがそれぞれに影響しあうため、スレッドの実行終了時間の予測が困難であるという問題があった。   Further, the technique according to Non-Patent Document 1 requires a multi power supply voltage, and for that purpose, a dedicated circuit has to be mounted, and there is a problem that a manufacturing cost and a mounting area increase. Furthermore, Non-Patent Document 1 targets the state of a multi-core single thread, and when a multi-thread operation is performed, there is a problem that it is difficult to predict the thread execution end time because each thread affects each other. .

本発明は、上述した従来技術による問題点を解消するため、製造コスト、実装面積を増大せずに消費電力を削減できるマルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラムを提供することを目的とする。   In order to solve the above-described problems caused by the prior art, the present invention provides a multi-core processor system, a multi-core processor system control method, and a multi-core processor system control program capable of reducing power consumption without increasing manufacturing cost and mounting area. The purpose is to provide.

上述した課題を解決し、目的を達成するため、開示のマルチコアプロセッサシステムは、イベントを処理する第1コアを複数有する第1コア群と、イベントを処理する場合の最大処理能力値が第1コアよりも低い第2コアを、第1コア群に含まれる第1コアと同じ数有する第2コア群と、第1コア群から第2コア群へ移行可能なイベントを示す移行イベント情報を記憶する記憶部と、を有するマルチコアプロセッサシステムであって、マルチコアプロセッサシステムに実装されたいずれかのコアは、第1コア群で移行イベント情報に対応する移行イベントが割り当てられたことを検出し、検出した移行イベントを第2コア群に移行し、移行後の第1コア群の処理能力値を移行前よりも低くする。   In order to solve the above-described problems and achieve the object, the disclosed multi-core processor system includes a first core group having a plurality of first cores that process events, and a maximum processing capability value when events are processed. A second core group having the same number of lower second cores as the first cores included in the first core group, and migration event information indicating events that can be migrated from the first core group to the second core group are stored And any one of the cores mounted on the multi-core processor system detects that the transition event corresponding to the transition event information is assigned in the first core group, and detects the detected event. The migration event is migrated to the second core group, and the processing capability value of the first core group after migration is made lower than that before migration.

本マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラムによれば、製造コスト、実装面積を増大せずに、消費電力を削減できるという効果を奏する。   According to the multicore processor system, the control method of the multicore processor system, and the control program of the multicore processor system, there is an effect that power consumption can be reduced without increasing the manufacturing cost and the mounting area.

実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。It is a block diagram which shows the hardware of the multi-core processor system concerning embodiment. マルチコアプロセッサシステム100のハードウェアの一部とソフトウェアを示すブロック図である。2 is a block diagram showing a part of hardware and software of the multi-core processor system 100. FIG. マルチコアプロセッサシステム100の機能を示すブロック図である。2 is a block diagram showing functions of a multi-core processor system 100. FIG. マルチコアプロセッサシステム100の通常モードにおける状態を示す説明図である。3 is an explanatory diagram showing a state in a normal mode of the multi-core processor system 100. FIG. マルチコアプロセッサシステム100の低電力モードにおける状態を示す説明図である。2 is an explanatory diagram showing a state of a multi-core processor system 100 in a low power mode. FIG. マルチコアプロセッサシステム100の通常モードにおける状態を示す説明図である。3 is an explanatory diagram showing a state in a normal mode of the multi-core processor system 100. FIG. マルチコアプロセッサシステム100の通常モードから低電力モードへの移行の検出を示す説明図である。3 is an explanatory diagram illustrating detection of transition from a normal mode to a low power mode of the multi-core processor system 100. FIG. マルチコアプロセッサシステム100の通常モードから低電力モードに移行する状態を示す説明図である。3 is an explanatory diagram showing a state in which a multicore processor system 100 shifts from a normal mode to a low power mode. FIG. マルチコアプロセッサシステム100の低電力モードから通常モードへ移行する状態を示す説明図である。3 is an explanatory diagram showing a state in which the multi-core processor system 100 shifts from a low power mode to a normal mode. FIG. マルチコアプロセッサシステム100の低電力モードから通常モードへ復帰後の状態を示す説明図である。3 is an explanatory diagram showing a state after the multi-core processor system 100 returns from a low power mode to a normal mode. FIG. 通常モードと低電力モードにおけるマルチコアプロセッサシステム100の消費電力の一例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of power consumption of the multi-core processor system 100 in a normal mode and a low power mode. ユースケーステーブル301の記憶内容の一例を示す説明図である。It is explanatory drawing which shows an example of the memory content of the use case table. 通常モードから低電力モードへの移行処理を示すフローチャートである。It is a flowchart which shows the transfer process from normal mode to low power mode. 低電力モードから通常モードへの移行処理を示すフローチャートである。It is a flowchart which shows the transfer process from low power mode to normal mode.

以下に添付図面を参照して、本発明にかかるマルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラムの好適な実施の形態を詳細に説明する。   Exemplary embodiments of a multi-core processor system, a multi-core processor system control method, and a multi-core processor system control program according to the present invention will be explained below in detail with reference to the accompanying drawings.

(マルチコアプロセッサシステムのハードウェア)
図1は、実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。図1において、マルチコアプロセッサシステム100は、CPUを複数搭載するCPUs101と、ROM(Read‐Only Memory)102と、RAM(Random Access Memory)103と、を備えている。また、マルチコアプロセッサシステム100は、フラッシュROM104と、フラッシュROMコントローラ105と、フラッシュROM106と、を備えている。また、マルチコアプロセッサシステム100は、ユーザやその他の機器との入出力装置として、ディスプレイ107と、I/F(Interface)108と、キーボード109と、を備えている。また、各部はバス110によってそれぞれ接続されている。
(Multi-core processor system hardware)
FIG. 1 is a block diagram of hardware of the multi-core processor system according to the embodiment. In FIG. 1, a multi-core processor system 100 includes CPUs 101 on which a plurality of CPUs are mounted, a ROM (Read-Only Memory) 102, and a RAM (Random Access Memory) 103. The multi-core processor system 100 includes a flash ROM 104, a flash ROM controller 105, and a flash ROM 106. The multi-core processor system 100 includes a display 107, an I / F (Interface) 108, and a keyboard 109 as input / output devices for a user and other devices. Each unit is connected by a bus 110.

ここで、CPUs101は、マルチコアプロセッサシステム100の全体の制御を司る。CPUs101は、シングルコアのプロセッサを並列して接続したすべてのCPUを指している。CPUs101の詳細は、図2にて後述する。また、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。また、好ましくは、マルチコアプロセッサシステム100は、性能が異なるコアを複数含む、ヘテロジニアス・マルチコアプロセッサシステムであってもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。   Here, the CPUs 101 govern the overall control of the multi-core processor system 100. CPUs 101 refers to all CPUs in which single-core processors are connected in parallel. Details of the CPUs 101 will be described later with reference to FIG. A multi-core processor system is a computer system including a processor having a plurality of cores. Preferably, the multi-core processor system 100 may be a heterogeneous multi-core processor system including a plurality of cores having different performances. In the present embodiment, in order to simplify the explanation, a processor group in which single-core processors are arranged in parallel will be described as an example.

ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPUs101のワークエリアとして使用される。フラッシュROM104は、OS(Operating System)などのシステムソフトウェアやアプリケーションソフトウェアなどを記憶している。たとえば、OSを更新する場合、マルチコアプロセッサシステム100は、I/F108によって新しいOSを受信し、フラッシュROM104に格納されている古いOSを、受信した新しいOSに更新する。   The ROM 102 stores a program such as a boot program. The RAM 103 is used as a work area for the CPUs 101. The flash ROM 104 stores system software such as an OS (Operating System), application software, and the like. For example, when updating the OS, the multi-core processor system 100 receives the new OS through the I / F 108 and updates the old OS stored in the flash ROM 104 to the received new OS.

フラッシュROMコントローラ105は、CPUs101の制御に従ってフラッシュROM106に対するデータのリード/ライトを制御する。フラッシュROM106は、フラッシュROMコントローラ105の制御で書き込まれたデータを記憶する。データの具体例としては、マルチコアプロセッサシステム100を使用するユーザがI/F108を通して取得した画像データ、映像データなどである。フラッシュROM106は、たとえば、メモリカード、SDカードなどを採用することができる。   The flash ROM controller 105 controls data read / write with respect to the flash ROM 106 according to the control of the CPUs 101. The flash ROM 106 stores data written under the control of the flash ROM controller 105. Specific examples of the data include image data and video data acquired by the user using the multi-core processor system 100 through the I / F 108. As the flash ROM 106, for example, a memory card, an SD card, or the like can be adopted.

ディスプレイ107は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ107は、たとえば、TFT液晶ディスプレイなどを採用することができる。   A display 107 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box. As the display 107, for example, a TFT liquid crystal display can be adopted.

I/F108は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク111に接続され、ネットワーク111を介して他の装置に接続される。そして、I/F108は、ネットワーク111と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F108には、たとえばモデムやLANアダプタなどを採用することができる。   The I / F 108 is connected to a network 111 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line, and is connected to other devices via the network 111. The I / F 108 controls an internal interface with the network 111 and controls data input / output from an external device. For example, a modem or a LAN adapter can be employed as the I / F 108.

キーボード109は、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード109は、タッチパネル式の入力パッドやテンキーなどであってもよい。   The keyboard 109 includes keys for inputting numbers, various instructions, and the like, and inputs data. The keyboard 109 may be a touch panel type input pad or a numeric keypad.

図2は、マルチコアプロセッサシステム100のハードウェアの一部とソフトウェアを示すブロック図である。図2で示されるハードウェアは、メモリコントローラ201と、RAM103と、CPUs101に含まれるCPU#0〜CPU#3とである。メモリコントローラ201と、CPU#0〜CPU#3はバス110によって接続されている。また、CPU#2とCPU#3は、バス203によって接続されている。   FIG. 2 is a block diagram showing a part of hardware and software of the multi-core processor system 100. The hardware shown in FIG. 2 is a memory controller 201, a RAM 103, and CPUs # 0 to CPU # 3 included in the CPUs 101. The memory controller 201 and the CPUs # 0 to CPU # 3 are connected by a bus 110. CPU # 2 and CPU # 3 are connected by a bus 203.

メモリコントローラ201は、CPU#0〜CPU#3によるRAM103へのアクセスの制御をする。また、メモリコントローラ201は、RAM103以外にも、ROM102、フラッシュROM104などのアクセスを制御してもよい。メモリコントローラ201は、各CPUが同時にRAM103にアクセスした場合に、アクセスを調停する機能を有する。   The memory controller 201 controls access to the RAM 103 by the CPUs # 0 to # 3. In addition to the RAM 103, the memory controller 201 may control access to the ROM 102, the flash ROM 104, and the like. The memory controller 201 has a function of arbitrating access when each CPU accesses the RAM 103 at the same time.

CPU#0とCPU#1は、最大の処理能力値の高いCPU群であり、CPU#2とCPU#3は、最大の処理能力値の低いCPU群である。CPU#0とCPU#1は、高クロックでありローカルキャッシュメモリ容量も大きいため、演算能力が高いが、消費電力も大きくなる。CPU#2とCPU#3は、低クロックであり、ローカルキャッシュメモリ容量も小さいため、演算能力は低いが、消費電力は小さくなる。   CPU # 0 and CPU # 1 are CPU groups with the highest maximum processing capability value, and CPU # 2 and CPU # 3 are CPU groups with the lowest maximum processing capability value. Since CPU # 0 and CPU # 1 have a high clock and a large local cache memory capacity, they have a high computing capacity but also a large power consumption. Since CPU # 2 and CPU # 3 have a low clock and a small local cache memory capacity, the computing power is low, but the power consumption is small.

また、最大の処理能力値の高いCPUと最大の処理能力値の低いCPUを同クロックに設定した場合、最大の処理能力値の高いCPUの方が、ローカルキャッシュメモリなどの搭載されている素子が多いため、消費電力が大きくなる。また、最大の処理能力値の高いCPU群のCPU#0とCPU#1は最大の処理能力値が等しくても異なっていてもどちらでもよい。CPU#2、CPU#3についても同様である。   Also, when the CPU with the highest processing capability value and the CPU with the lowest processing capability value are set to the same clock, the CPU with the highest processing capability value is equipped with an element such as a local cache memory. Since there are many, power consumption becomes large. Further, the CPU # 0 and CPU # 1 of the CPU group having the highest maximum processing capability value may have either the same or different maximum processing capability values. The same applies to CPU # 2 and CPU # 3.

各CPUは、ローカルキャッシュメモリを搭載し、ローカルキャッシュメモリにアクセスして演算処理を実行する。また、各CPUは、ローカルキャッシュメモリに記憶されていないデータをアクセスする際に、メモリコントローラ201からROM102、RAM103、フラッシュROM104などにアクセスする。   Each CPU is equipped with a local cache memory, and accesses the local cache memory to execute arithmetic processing. Each CPU accesses the ROM 102, RAM 103, flash ROM 104, and the like from the memory controller 201 when accessing data not stored in the local cache memory.

図2で示されるソフトウェアは、ファイルシステム202と、ハイパーバイザ204と、OS205と、動画再生ソフトウェア206と、音楽再生ソフトウェア207と、GUIソフトウェア208と、である。また、OSの一部で提供されるソフトウェアとして、図2では、システムコールライブラリ209、システムコールライブラリ210、ドライバハンドラ211、ドライバハンドラ212と、が示される。   The software shown in FIG. 2 is a file system 202, a hypervisor 204, an OS 205, a moving image reproduction software 206, a music reproduction software 207, and a GUI software 208. As software provided as part of the OS, FIG. 2 shows a system call library 209, a system call library 210, a driver handler 211, and a driver handler 212.

ファイルシステム202は、OS205の機能によって、補助記憶装置となるフラッシュROM104、フラッシュROM106などに格納されたデータであるファイルのアクセスを行う機能を有している。たとえば、フラッシュROM106に格納されたファイルは、CPU#0によってRAM103に読み込まれる。また、CPU#0によって更新されたデータは、フラッシュROM106にファイルとして書き込まれる。   The file system 202 has a function of accessing a file, which is data stored in the flash ROM 104, the flash ROM 106, or the like serving as an auxiliary storage device by the function of the OS 205. For example, a file stored in the flash ROM 106 is read into the RAM 103 by the CPU # 0. Further, the data updated by the CPU # 0 is written as a file in the flash ROM 106.

ハイパーバイザ204は、ハードウェア上で直接動作するプログラムである。ハイパーバイザ204は、CPU内のレジスタを直接参照したり、CPU内のレジスタの情報を読み出したり、CPU内のI/O操作を行うような特殊なレジスタの情報を書き換えたりする特権命令を実行することができる。また、ハイパーバイザ204は、一般のプログラムでは操作できないCPUのキャッシュ制御を行い、一般のプログラムでは読み書きできないメモリ上の空間を用いて動作する。また、ハイパーバイザ204は、OSとCPUの間にて位置し、前述の特徴によって、OSの監視を行い、OSがハングアップした際にリセットをするほか、OSが何もスレッドを実行していない場合に、省電力設定にする。   The hypervisor 204 is a program that directly operates on hardware. The hypervisor 204 executes a privileged instruction that directly refers to a register in the CPU, reads information in the CPU, or rewrites information in a special register that performs an I / O operation in the CPU. be able to. The hypervisor 204 performs CPU cache control that cannot be performed by a general program, and operates using a space on a memory that cannot be read and written by the general program. The hypervisor 204 is located between the OS and the CPU. Based on the above-described features, the hypervisor 204 monitors the OS, resets when the OS hangs up, and the OS is not executing any threads. In this case, set the power saving setting.

OS205は、マルチコアプロセッサシステム100を制御するプログラムである。具体的には、OS205は、動画再生ソフトウェア206〜GUIソフトウェア208が使用するライブラリを提供する。また、OS205は、ROM102、RAM103などのメモリの管理を行う。また、OS205は、CPU#0〜CPU#3が実行するソフトウェアのスケジューリング処理を行う。   The OS 205 is a program that controls the multi-core processor system 100. Specifically, the OS 205 provides a library used by the moving image playback software 206 to the GUI software 208. The OS 205 manages memories such as the ROM 102 and the RAM 103. In addition, the OS 205 performs a scheduling process for software executed by the CPUs # 0 to # 3.

動画再生ソフトウェア206は、動画ファイルをディスプレイ107に再生するソフトウェアである。動画再生ソフトウェア206が正常動作するには、実行するCPUに高処理能力が求められる。音楽再生ソフトウェア207は、音声ファイルを再生するソフトウェアである。GUIソフトウェア208は、マルチコアプロセッサシステム100の使用者とのインターフェースを担当するソフトウェアである。たとえば、GUIソフトウェア208は、キーボード109からの外部イベントを検出し、動画再生ソフトウェア206や、音楽再生ソフトウェア207の起動要求をOS205に対して行う。   The moving image reproduction software 206 is software for reproducing a moving image file on the display 107. In order for the moving image reproduction software 206 to operate normally, a high processing capability is required for the CPU to be executed. The music playback software 207 is software that plays back an audio file. The GUI software 208 is software that takes charge of an interface with the user of the multi-core processor system 100. For example, the GUI software 208 detects an external event from the keyboard 109 and makes a startup request for the moving image playback software 206 or the music playback software 207 to the OS 205.

システムコールライブラリ209、システムコールライブラリ210は、OS205がアプリケーションソフトウェア等に汎用的な機能を提供するソフトウェアである。たとえば、動画再生ソフトウェア206は、動画ファイルを再生する際に、動画ファイルの符号化に従った復号処理を行う。たとえば、動画ファイルがMPEG(Moving Picture Experts Group)であれば、動画再生ソフトウェア206は、MPEG復号処理を行う。MPEG復号処理は他のソフトウェアでも行うため、このような処理をOS205は、システムコールライブラリとして提供してもよい。各ソフトウェアは、システムコールライブラリにアクセスすることで、汎用的な機能を実行することができる。   The system call library 209 and the system call library 210 are software that the OS 205 provides general-purpose functions to application software and the like. For example, the moving image reproduction software 206 performs a decoding process according to the encoding of the moving image file when reproducing the moving image file. For example, if the moving image file is MPEG (Moving Picture Experts Group), the moving image reproduction software 206 performs an MPEG decoding process. Since the MPEG decoding process is also performed by other software, the OS 205 may provide such a process as a system call library. Each software can execute general-purpose functions by accessing the system call library.

ドライバハンドラ211、ドライバハンドラ212は、OS205やアプリケーションソフトウェア等にハードウェアのアクセスを提供するソフトウェアである。ハードウェアの特性はハードウェアごとに異なるため、ドライバハンドラは、ハードウェア特有の処理を実行し、OS205に対して仕様で定められた入出力方法を提供する。たとえば、キーボード109にてボタンが押下されたことの割り込み信号をCPU#0が受け、割り込み信号に対応する処理をOS205を通じてドライバハンドラ212が行う。処理後、ドライバハンドラ212は、OS205に対して、OS205が定めたキーダウンイベントとして通知する。   The driver handler 211 and the driver handler 212 are software that provides hardware access to the OS 205 and application software. Since the hardware characteristics differ from hardware to hardware, the driver handler executes hardware-specific processing and provides the OS 205 with an input / output method defined in the specification. For example, the CPU # 0 receives an interrupt signal indicating that a button has been pressed on the keyboard 109, and the driver handler 212 performs processing corresponding to the interrupt signal through the OS 205. After processing, the driver handler 212 notifies the OS 205 as a key down event determined by the OS 205.

図2では、OS205は、CPU#0、CPU#1上で実行されている。また、動画再生ソフトウェア206と、GUIソフトウェア208は、CPU#0で実行されている。また、音楽再生ソフトウェア207は、CPU#1で実行されている。システムコールライブラリ209、ドライバハンドラ211は、CPU#2で実行されている。システムコールライブラリ210、ドライバハンドラ212は、CPU#3で実行されている。   In FIG. 2, the OS 205 is executed on the CPU # 0 and the CPU # 1. Further, the moving image reproduction software 206 and the GUI software 208 are executed by the CPU # 0. The music playback software 207 is executed by the CPU # 1. The system call library 209 and the driver handler 211 are executed by the CPU # 2. The system call library 210 and the driver handler 212 are executed by the CPU # 3.

このように、アプリケーションソフトウェアである動画再生ソフトウェア206〜GUIソフトウェア208は、1つ1つのCPUで分散されて実行されている。動画再生ソフトウェア206〜GUIソフトウェア208を複数のCPUで並列実行しない理由として、従来のソフトウェアは並列性を意識してプログラムが記述されていないことが挙げられる。また、並列処理を意識して書かれていないプログラムから、並列性を抽出することは困難であり、並列処理に書き換える場合にも、開発コストの増大や信頼性の問題からリスクが大きい。このため、並列処理が適用できるソフトウェアはドライバハンドラやシステムコールライブラリなどであり、その他のソフトウェアは分散されて実行される結果となる。   As described above, the moving image reproduction software 206 to GUI software 208, which are application software, are distributed and executed by each CPU. The reason why the moving image reproduction software 206 to the GUI software 208 are not executed in parallel by a plurality of CPUs is that conventional software does not describe a program in consideration of parallelism. In addition, it is difficult to extract parallelism from a program that is not written in consideration of parallel processing, and even when it is rewritten to parallel processing, there is a large risk due to an increase in development cost and reliability problems. For this reason, software to which parallel processing can be applied is a driver handler, a system call library, and the like, and other software is distributed and executed.

また、本実施の形態にかかるマルチコアプロセッサシステム100では、CPU群を最大の処理能力値の高いCPU群と最大の処理能力値の低いCPU群というように、2つのCPUグループに分類したが、3つ以上のグループに分類してもよい。たとえば、最大の処理能力値が最大のCPU群が、動画再生ソフトウェア206などの高負荷ソフトウェアを分散実行する。最大の処理能力値が中程度のCPU群が、ビジネスソフトウェアなどの中負荷ソフトウェアを分散実行する。最大の処理能力値が最小のCPU群が、並列処理が適用でき負荷の小さいソフトウェアを並列実行する。前述のように、実行されるソフトウェアが要求する処理能力値に応じて、CPU群を3つ以上に分類してもよい。   In the multi-core processor system 100 according to the present embodiment, the CPU group is classified into two CPU groups such as a CPU group having a high maximum processing capability value and a CPU group having a low maximum processing capability value. You may classify into two or more groups. For example, the CPU group having the maximum maximum processing capability value executes high-load software such as the moving image reproduction software 206 in a distributed manner. A CPU group having a medium maximum processing capability value executes medium load software such as business software in a distributed manner. A CPU group having the smallest maximum processing capability value can execute parallel processing and can execute software with a small load in parallel. As described above, the CPU group may be classified into three or more according to the processing capability value required by the executed software.

(マルチコアプロセッサシステム100の機能)
次に、マルチコアプロセッサシステム100の機能について説明する。図3は、マルチコアプロセッサシステム100の機能を示すブロック図である。マルチコアプロセッサシステム100は、検出部302と、設定部303と、移行部304と、判断部305と、を含む。この制御部となる機能(検出部302〜判断部305)は、記憶装置に記憶されたプログラムをCPU#0〜CPU#3が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図1に示したROM102、RAM103、フラッシュROM104、フラッシュROM106などである。
(Functions of the multi-core processor system 100)
Next, functions of the multi-core processor system 100 will be described. FIG. 3 is a block diagram showing functions of the multi-core processor system 100. The multi-core processor system 100 includes a detection unit 302, a setting unit 303, a transition unit 304, and a determination unit 305. The functions (detection unit 302 to determination unit 305) serving as the control unit are realized by the CPU # 0 to CPU # 3 executing the program stored in the storage device. Specifically, the storage device is, for example, the ROM 102, the RAM 103, the flash ROM 104, the flash ROM 106, etc. shown in FIG.

また、マルチコアプロセッサシステム100は、特定のソフトウェアを移行元のコアより最大の処理能力値が低いコアに移行可能とするイベントを記憶するデータベースとして、RAM103内に格納されているユースケーステーブル301にアクセス可能である。ユースケーステーブル301の詳細は、図12にて後述する。また、ユースケーステーブル301は、最大の処理能力値が高いコアに移行要求するイベントをさらに記憶してもよい。特定のソフトウェアは、たとえばOSである。また、特定のソフトウェアは、最大の処理能力値の高いCPU群と最大の処理能力値の低いCPU群のどちらでも実行可能なソフトウェアであってもよい。また、最大の処理能力値とは、該当のCPUで設定できる最大のクロック周波数となる。   In addition, the multi-core processor system 100 accesses the use case table 301 stored in the RAM 103 as a database for storing events that allow specific software to be transferred to a core having a lower maximum processing capability value than the migration source core. Is possible. Details of the use case table 301 will be described later with reference to FIG. Further, the use case table 301 may further store an event for requesting migration to a core having a maximum maximum processing capability value. The specific software is, for example, an OS. The specific software may be software that can be executed by either a CPU group having a high maximum processing capability value or a CPU group having a low maximum processing capability value. The maximum processing capability value is the maximum clock frequency that can be set by the corresponding CPU.

また、後述する検出部302〜終了部308は、最大の処理能力値の高いCPU#0、CPU#1にて実行されている特定のソフトウェアを、最大の処理能力値の低いCPU#2、CPU#3に移行させる場合の機能群について説明する。   Further, the detection unit 302 to the end unit 308, which will be described later, specify specific software executed by the CPU # 0 and CPU # 1 having the highest maximum processing capability value, and the CPU # 2 and CPU having the lowest processing capability value. A function group for shifting to # 3 will be described.

また、移行部304は、起動通知部306と、起動部307、終了部308を含む。CPU#0は、判断部305と、起動通知部306を含み、CPU#2は、検出部302と、設定部303と、起動部307と、終了部308を含む。また、図3では、最大の処理能力値の高いCPU群の一つとしてCPU#0を、最大の処理能力値の低いCPU群の一つとしてCPU#2を表示しているが、他のCPUも前述の機能を含んでもよい。たとえばCPU#1も移行部304と起動通知部306を含んでもよい。また、検出部302、設定部303、判断部305は、OSの機能によって実行され、移行部304は、ハイパーバイザ204の機能によって実行される。   The transition unit 304 includes an activation notification unit 306, an activation unit 307, and an end unit 308. CPU # 0 includes a determination unit 305 and an activation notification unit 306, and CPU # 2 includes a detection unit 302, a setting unit 303, an activation unit 307, and an end unit 308. In FIG. 3, CPU # 0 is displayed as one of the CPU groups with the highest maximum processing capability value, and CPU # 2 is displayed as one of the CPU groups with the lowest maximum processing capability value. May include the aforementioned functions. For example, the CPU # 1 may also include the transition unit 304 and the activation notification unit 306. The detection unit 302, the setting unit 303, and the determination unit 305 are executed by the function of the OS, and the migration unit 304 is executed by the function of the hypervisor 204.

検出部302は、マルチコアのうち移行元のコアから、移行元のコアより特定の処理能力値が低い移行先のコアへの、特定のソフトウェアの移行(マイグレーション)状態を検出する機能を有する。特定の処理能力値とは、コアが取り得る最大の処理能力値のことである。また特定の処理能力値は、コアの正常動作が保証できる処理能力値のうち、最大の値であってもよい。たとえば、特定の処理能力値は、コアの発熱量が許容範囲に収まることができる処理能力値のうち、最大の値であってもよい。また、検出部302は、移行部304によって移行元のコアから移行先のコアへの特定のソフトウェアの移行状態を検出してもよい。   The detection unit 302 has a function of detecting a migration state of specific software from a migration source core to a migration destination core having a specific processing capability value lower than that of the migration source core among the multicores. The specific processing capability value is the maximum processing capability value that the core can take. The specific processing capability value may be the maximum value among the processing capability values that can guarantee the normal operation of the core. For example, the specific processing capability value may be the maximum value among the processing capability values that allow the heat generation amount of the core to be within an allowable range. Further, the detection unit 302 may detect the migration state of specific software from the migration source core to the migration destination core by the migration unit 304.

たとえば、検出部302は、OSがCPU#0、CPU#1で実行されていた状態からCPU#2、CPU#3に移行させられた移行状態を検出する。なお、検出結果は、CPU#2のレジスタ、RAM103などの記憶領域に記憶される。   For example, the detection unit 302 detects a transition state in which the OS is shifted to the CPU # 2 and the CPU # 3 from the state where the OS is being executed by the CPU # 0 and the CPU # 1. The detection result is stored in a storage area such as the register of the CPU # 2 and the RAM 103.

なお、移行状態を検出する検出部302は、図3では移行先のコアとなるCPU#2の機能となっているが、移行元のコアとなるCPU#0が検出部302を実行してもよい。また、特定のソフトウェアの移行を指示したコアが移行元のコアと移行先のコア以外として存在するならば、移行を指示したコアが検出部302を実行してもよい。   The detection unit 302 that detects the transition state has the function of the CPU # 2 that is the migration destination core in FIG. 3, but even if the CPU # 0 that is the migration source core executes the detection unit 302. Good. In addition, if a core instructed to migrate specific software exists other than the migration source core and the migration destination core, the core instructed to migrate may execute the detection unit 302.

設定部303は、検出部302が移行状態を検出する場合、移行元のコアの検出時点の処理能力値を、移行前よりも低い処理能力値に設定する機能を有する。また、設定部303は、判断部305によって移行可能なイベントが発生したと判断され、かつ、検出部302が移行状態を検出する場合、移行元のコアの検出時点の処理能力値を、移行前よりも低い処理能力値に設定してもよい。   When the detection unit 302 detects the transition state, the setting unit 303 has a function of setting the processing capability value at the time of detection of the migration source core to a processing capability value lower than that before the transition. When the determination unit 305 determines that an event that can be transferred has occurred and the detection unit 302 detects a transfer state, the setting unit 303 sets the processing capability value at the time of detection of the transfer source core to the value before the transfer. A lower processing capability value may be set.

たとえば、設定部303は、検出部302がCPU#0、CPU#1からCPU#2、CPU#3へのOSの移行状態を検出すると、CPU#0、CPU#1のクロック周波数を、移行前よりも低い処理能力値に設定する。具体的には、設定部303は、CPU#0、CPU#1のクロック周波数を、並列実行されるシステムコールライブラリ209〜ドライバハンドラ212が実行可能である超低クロック状態に設定してもよい。なお、設定したクロック周波数の値は、RAM103などの記憶領域に記憶されてもよい。   For example, when the detection unit 302 detects the OS transition state from the CPU # 0 and CPU # 1 to the CPU # 2 and CPU # 3, the setting unit 303 sets the clock frequency of the CPU # 0 and CPU # 1 to the pre-migration state. Set to a lower processing capacity value. Specifically, the setting unit 303 may set the clock frequencies of the CPU # 0 and the CPU # 1 to an extremely low clock state in which the system call library 209 to the driver handler 212 that are executed in parallel can be executed. The set clock frequency value may be stored in a storage area such as the RAM 103.

移行部304は、特定のソフトウェアが他のソフトウェアを移行元のコアから移行先のコアに移行させるソフトウェアを含む場合、特定のソフトウェアが実行中である移行元のコアから移行先のコアに、特定のソフトウェアを移行させる機能を有する。また、移行部304は、判断部305によって移行要求するイベントが発生したと判断された場合、特定のソフトウェアの移行をキャンセルし、結果的に特定のソフトウェアを移行させなくてもよい。他のソフトウェアを移行元のコアから移行先のコアに移行させるソフトウェアとは、移行処理であり、それを含む特定のソフトウェアの例としては、OSである。   When the specific software includes software for transferring other software from the migration source core to the migration destination core, the migration unit 304 identifies the migration source core from which the specific software is being executed as the migration destination core. It has a function to migrate software. Further, the migration unit 304 may cancel the migration of specific software and may not migrate the specific software as a result when the judgment unit 305 determines that an event requesting migration has occurred. Software that migrates other software from the migration source core to the migration destination core is a migration process, and an example of specific software including the software is an OS.

たとえば、移行部304は、CPU#2、CPU#3上でOSを起動した後に、マルチコアプロセッサシステム100を管理するOSを、OS205から新たに起動したOSにスイッチした後に、OS205を終了させることで、OSを移行させる。なお、移行させたという情報は、CPU#2のレジスタなどの記憶領域に記憶される。   For example, after the OS is started on the CPU # 2 and the CPU # 3, the migration unit 304 switches the OS managing the multi-core processor system 100 from the OS 205 to the newly started OS, and then terminates the OS 205. , Migrate OS. The information indicating that the data has been transferred is stored in a storage area such as a register of CPU # 2.

判断部305は、特定のソフトウェアを移行元のコアより特定の処理能力値が低いコアに移行可能とするイベントを記憶するユースケーステーブル301から、発生したイベントが移行可能とするイベントか否かを判断する機能を有する。また、判断部305は、特定のソフトウェアを移行元のコアより特定の処理能力値が高いコアに移行要求するイベントを記憶するユースケーステーブル301から、発生したイベントが移行要求するイベントか否かを判断してもよい。   The determination unit 305 determines whether or not the generated event is an event that can be migrated from the use case table 301 that stores an event that makes it possible to migrate specific software to a core having a specific processing capability value lower than that of the migration source core. Has a function to judge. In addition, the determination unit 305 determines whether or not the generated event is an event for requesting migration from the use case table 301 that stores an event for requesting migration of specific software to a core having a specific processing capability value higher than that of the migration source core. You may judge.

たとえば、判断部305は、マルチコアプロセッサシステム100にて、一定期間高負荷ソフトウェアが未実行であるというイベントが発生すると、前述のイベントがユースケーステーブル301に登録されているかを判断する。なお、判断結果は、CPU#0のレジスタ、RAM103などの記憶領域に記憶される。   For example, when an event that the high-load software has not been executed for a certain period occurs in the multi-core processor system 100, the determination unit 305 determines whether the above-described event is registered in the use case table 301. The determination result is stored in a storage area such as the register of the CPU # 0 and the RAM 103.

起動通知部306は、判断部305によって移行可能なイベントが発生したと判断された場合、移行先のコアに特定のソフトウェアを起動させるように通知する機能を有する。たとえば、起動通知部306は、ハイパーバイザ204によってCPU#2、CPU#3でOSを起動させるように通知する。なお、通知した内容は、CPU#0のレジスタなどの記憶領域に記憶される。   The activation notification unit 306 has a function of notifying the migration destination core to activate specific software when the determination unit 305 determines that a migratable event has occurred. For example, the activation notification unit 306 notifies the hypervisor 204 to activate the OS with the CPU # 2 and CPU # 3. The notified contents are stored in a storage area such as a register of CPU # 0.

起動部307は、起動通知部306によって特定のソフトウェアの起動通知を受けた場合、特定のソフトウェアを起動する機能を有する。たとえば、起動部307は、ハイパーバイザ204によってOSを起動させるように通知を受けると、CPU#2、CPU#3にてOSをブートする。なお、OSを起動させたという情報は、CPU#2のレジスタなどの記憶領域に記憶される。   The activation unit 307 has a function of activating specific software when the activation notification unit 306 receives activation notification of specific software. For example, when the activation unit 307 receives a notification to activate the OS by the hypervisor 204, the activation unit 307 boots the OS with the CPU # 2 and CPU # 3. Information that the OS has been activated is stored in a storage area such as a register of CPU # 2.

終了部308は、起動部307によって移行先のコアにて特定のソフトウェアが起動完了した場合、移行元のコアにて実行中である特定のソフトウェアを終了させる機能を有する。たとえば、終了部308は、起動部307によってCPU#2、CPU#3にて実行されるOSが起動完了した場合、CPU#0、CPU#1にて実行されるOS205を終了させる。なお、OS205を終了させたという情報は、CPU#2のレジスタなどの記憶領域に記憶される。   The ending unit 308 has a function of ending the specific software being executed in the migration source core when the activation unit 307 completes the activation of the specific software in the migration destination core. For example, when the activation unit 307 completes activation of the OS executed by the CPU # 2 and CPU # 3 by the activation unit 307, the termination unit 308 terminates the OS 205 executed by the CPU # 0 and CPU # 1. Information that the OS 205 is terminated is stored in a storage area such as a register of the CPU # 2.

前述の説明では、移行元のコアとなる特定の処理能力値の高いCPU#0、CPU#1にて実行されている特定のソフトウェアを、移行先のコアとなる特定の処理能力値の低いCPU#2、CPU#3に移行させる場合の機能群について説明した。続けて、移行元のコアとなる特定の処理能力値の低いCPU#2、CPU#3にて実行されている特定のソフトウェアを、移行先のコアとなる特定の処理能力値の高いCPU#0、CPU#1に移行させる場合の機能群について説明する。   In the above description, the specific software executed by the CPU # 0 and CPU # 1 having a high specific processing capability value serving as the migration source core is referred to as the CPU having a low specific processing capability value serving as the migration destination core. The function group when moving to # 2, CPU # 3 has been described. Subsequently, the specific software executed by the CPU # 2 and CPU # 3 having a low specific processing capability value as the migration source core is transferred to the CPU # 0 having a high specific processing capability value as the migration destination core. A function group for shifting to CPU # 1 will be described.

この場合、各機能部が特定の処理能力値の高いCPUと特定の処理能力値の低いCPUで入れ替わった状態となる。具体的には、CPU#2が、判断部305と、起動通知部306を含み、CPU#0が、検出部302と、設定部303と、起動部307と、終了部308を含む。また、入れ替わった状態である移行部304とその内部の機能である起動通知部306と起動部307と終了部308は、入れ替わる前の機能と等しいため、説明は省略する。   In this case, each functional unit is switched between a CPU having a specific processing capability value and a CPU having a specific processing capability value. Specifically, CPU # 2 includes a determination unit 305 and an activation notification unit 306, and CPU # 0 includes a detection unit 302, a setting unit 303, an activation unit 307, and an end unit 308. In addition, the transition unit 304 that is in the switched state and the activation notification unit 306, the activation unit 307, and the end unit 308 that are the internal functions are the same as the functions before the replacement, and thus description thereof is omitted.

検出部302は、移行元のコアより特定の処理能力値が高い移行先のコアへの、特定のソフトウェアの移行状態を検出する機能を有する。たとえば、検出部302は、OSがCPU#2、CPU#3で実行されていた状態からCPU#0、CPU#1に移行させられる移行状態を検出する。なお、検出結果は、CPU#0のレジスタ、RAM103などの記憶領域に記憶される。   The detection unit 302 has a function of detecting a migration state of specific software to a migration destination core having a specific processing capability value higher than that of the migration source core. For example, the detection unit 302 detects a transition state in which the OS is shifted to the CPU # 0 and CPU # 1 from the state where the OS is being executed by the CPU # 2 and CPU # 3. The detection result is stored in a storage area such as the register of the CPU # 0 and the RAM 103.

設定部303は、検出部302が移行状態を検出する場合、移行元のコアの検出時点の処理能力値を、移行前よりも低い処理能力値に設定する機能を有する。また、設定部303は、さらに判断部305によって移行要求するイベントが発生したと判断された場合に、処理能力値を設定してもよい。たとえば、設定部303は、検出部302がCPU#2、CPU#3からCPU#0、CPU#1へのOSの移行状態を検出すると、CPU#2、CPU#3のクロック周波数を、移行前よりも低い処理能力値に設定する。なお、設定したクロック周波数の数値は、RAM103などの記憶領域に記憶されてもよい。   When the detection unit 302 detects the transition state, the setting unit 303 has a function of setting the processing capability value at the time of detection of the migration source core to a processing capability value lower than that before the transition. In addition, the setting unit 303 may set a processing capability value when the determination unit 305 determines that an event requesting migration has occurred. For example, when the detection unit 302 detects the OS transition state from the CPU # 2 and CPU # 3 to the CPU # 0 and CPU # 1, the setting unit 303 sets the clock frequency of the CPU # 2 and CPU # 3 to the pre-migration state. Set to a lower processing capacity value. Note that the numerical value of the set clock frequency may be stored in a storage area such as the RAM 103.

判断部305は、特定のソフトウェアを移行元のコアより特定の処理能力値が高いコアに移行要求するイベントを記憶するユースケーステーブル301から、発生したイベントが移行要求するイベントか否かを判断する機能を有する。たとえば、判断部305は、マルチコアプロセッサシステム100にて、高負荷ソフトウェアが起動要求されたというイベントが発生すると、前述のイベントがユースケーステーブル301に登録されているかを判断する。なお、判断結果は、CPU#2のレジスタ、RAM103などの記憶領域に記憶される。   The determination unit 305 determines whether or not the generated event is an event for requesting migration from the use case table 301 that stores an event for requesting migration of specific software to a core having a specific processing capability value higher than that of the migration source core. It has a function. For example, when an event that the high-load software is requested to start occurs in the multi-core processor system 100, the determination unit 305 determines whether the event is registered in the use case table 301. The determination result is stored in a storage area such as the register of the CPU # 2 and the RAM 103.

なお、図4〜図14の説明では、説明を簡略化するために、特定の処理能力値は、最大の処理能力値であるとして説明を行う。   In the description of FIGS. 4 to 14, in order to simplify the description, the specific processing capability value is described as being the maximum processing capability value.

図4は、マルチコアプロセッサシステム100の通常モードにおける状態を示す説明図である。図4におけるマルチコアプロセッサシステム100では、最大の処理能力値が高いCPU#0、CPU#1上にてOS205が起動している。OS205を起動するCPU群をメインCPU群とし、OS205を起動しないCPU群をサブCPU群と呼称する。また、メインCPU群が、最大の処理能力値が高いCPU#0、CPU#1となる状態を通常モードと呼称する。   FIG. 4 is an explanatory diagram showing a state of the multi-core processor system 100 in the normal mode. In the multi-core processor system 100 in FIG. 4, the OS 205 is activated on the CPUs # 0 and # 1 having the highest maximum processing capability values. A CPU group that starts the OS 205 is called a main CPU group, and a CPU group that does not start the OS 205 is called a sub CPU group. A state in which the main CPU group becomes CPU # 0 and CPU # 1 having the highest maximum processing capability value is referred to as a normal mode.

通常モードにおけるマルチコアプロセッサシステム100は、全体の処理の大半となる動画再生ソフトウェア206〜GUIソフトウェア208を、CPU#0、CPU#1で分散して実行する。また、マルチコアプロセッサシステム100は、僅かに並列に処理できるシステムコールライブラリ209〜ドライバハンドラ212をCPU#2、CPU#3にて並列実行している。マルチコアプロセッサシステム100は全体として、高い処理能力値に比例した電力を消費している。   The multi-core processor system 100 in the normal mode executes the moving image reproduction software 206 to the GUI software 208, which are the majority of the entire processing, in a distributed manner by the CPU # 0 and CPU # 1. In addition, the multicore processor system 100 executes the system call library 209 to the driver handler 212 that can be processed slightly in parallel by the CPU # 2 and the CPU # 3. The multi-core processor system 100 as a whole consumes power proportional to a high processing capability value.

図5は、マルチコアプロセッサシステム100の低電力モードにおける状態を示す説明図である。図5におけるマルチコアプロセッサシステム100では、動画再生ソフトウェア206は起動しておらず、GUIソフトウェア208は待機状態である。この状態を検出すると、マルチコアプロセッサシステム100は、CPU#2、CPU#3で実行中のソフトウェアをCPU#0、CPU#1に移行し、移行後に最大の処理能力値が低いCPU#2、CPU#3にてOS205’を起動する。   FIG. 5 is an explanatory diagram showing a state of the multi-core processor system 100 in the low power mode. In the multi-core processor system 100 in FIG. 5, the moving image playback software 206 is not activated, and the GUI software 208 is in a standby state. When this state is detected, the multi-core processor system 100 shifts the software being executed by the CPU # 2 and CPU # 3 to the CPU # 0 and CPU # 1, and the CPU # 2 and CPU with the lowest maximum processing capability value after the transition. In step # 3, the OS 205 ′ is activated.

ソフトウェアの移行処理を行う場合、移行元のCPUは、移行対象ソフトウェア内の各スレッドが保持するコンテキスト情報、具体的にはプログラムカウンタを含むCPUのレジスタ情報をRAM103や、ファイルシステム202に退避する。また、CPUのレジスタの一部であるスタックポインタで指し示されるスタック領域が、移行先のCPUで参照できない領域、たとえば、移行元のCPUのローカルメモリに存在するならば退避する。   When performing the software migration process, the migration source CPU saves the context information held by each thread in the migration target software, specifically, the CPU register information including the program counter in the RAM 103 and the file system 202. In addition, if the stack area pointed to by the stack pointer that is a part of the CPU register exists in an area that cannot be referred to by the migration destination CPU, for example, in the local memory of the migration source CPU, it is saved.

退避後、移行元のCPUは、移行先のCPUに退避したアドレス領域を通知する。通知後、移行元のCPUは、自身が管理するスレッド管理テーブルから、移行対象ソフトウェアのスレッドを削除する。移行先のCPUは、自身が管理するスレッド管理テーブルにソフトウェアの各スレッドの情報を追加し、退避されたコンテキスト情報に基づいて、ソフトウェアの各スレッドを実行することで、ソフトウェアの移行処理を終了する。   After saving, the migration source CPU notifies the migration destination CPU of the saved address area. After the notification, the migration source CPU deletes the migration target software thread from the thread management table managed by itself. The migration destination CPU adds the information of each thread of software to the thread management table managed by itself, and finishes the software migration process by executing each thread of software based on the saved context information. .

OS205’は、OS205と同等の処理を行うOSである。またOS205’は、最大の処理能力値が低いCPU#2、CPU#3上で動作するため、OS205が行う処理のうち、一部の処理を行ってもよい。また、割り込み信号をCPU#0が受けた場合、割り込み信号に対する処理を、OS205’を通じてたとえばドライバハンドラ212が行う。   The OS 205 ′ is an OS that performs processing equivalent to the OS 205. Further, since the OS 205 ′ operates on the CPU # 2 and the CPU # 3 having a low maximum processing capability value, a part of the processing performed by the OS 205 may be performed. Further, when the interrupt signal is received by the CPU # 0, for example, the driver handler 212 performs processing for the interrupt signal through the OS 205 '.

OS205’が起動後に、マルチコアプロセッサシステム100は、音楽再生ソフトウェア207をCPU#1からCPU#2に移行させる。移行後、マルチコアプロセッサシステム100は、OS205を終了し、最大の処理能力値が高いCPU#0、CPU#1を、供給されるクロック周波数が低下した超低クロック状態で動作させる。図5のようにメインCPU群が、最大の処理能力値が低いCPUとなった状態を低電力モードと呼称する。   After the OS 205 ′ is activated, the multicore processor system 100 shifts the music playback software 207 from the CPU # 1 to the CPU # 2. After the transition, the multi-core processor system 100 terminates the OS 205 and causes the CPU # 0 and CPU # 1 having the highest maximum processing capability value to operate in an extremely low clock state in which the supplied clock frequency is reduced. A state in which the main CPU group is a CPU having a low maximum processing capability value as shown in FIG. 5 is referred to as a low power mode.

低電力モードにおけるマルチコアプロセッサシステム100において、低電力モード移行完了後には、音楽再生ソフトウェア207はCPU#2で分散実行されている。また、システムコールライブラリ209〜ドライバハンドラ212は、超低クロック状態となったCPU#0、CPU#1で並列実行される。   In the multi-core processor system 100 in the low power mode, the music playback software 207 is distributedly executed by the CPU # 2 after completion of the transition to the low power mode. Further, the system call library 209 to the driver handler 212 are executed in parallel by the CPU # 0 and CPU # 1 that are in the ultra-low clock state.

このように、低電力モードにおけるマルチコアプロセッサシステム100は、CPU#0とCPU#1が並列ソフトウェアを実行できる分の処理能力を残しつつ、クロックを低下することにより、分散処理を行い、さらに消費電力を削減することができる。   As described above, the multi-core processor system 100 in the low power mode performs distributed processing by lowering the clock while leaving the processing capacity that the CPU # 0 and the CPU # 1 can execute the parallel software, and further reduces the power consumption. Can be reduced.

また、CPU#0とCPU#1の処理能力が、CPU#2とCPU#3の処理能力と同じとなるように、CPU#0とCPU#1のクロック周波数を設定しても、CPU#0とCPU#1の方が、消費電力が大きいという結果になる。これは、CPU#0とCPU#1の方が、キャッシュメモリ等、搭載されている素子の数が多いためである。具体的な消費電力の差については図11にて後述する。   Even if the clock frequencies of CPU # 0 and CPU # 1 are set so that the processing capabilities of CPU # 0 and CPU # 1 are the same as those of CPU # 2 and CPU # 3, CPU # 0 As a result, CPU # 1 has a higher power consumption. This is because CPU # 0 and CPU # 1 have a larger number of mounted elements such as a cache memory. A specific difference in power consumption will be described later with reference to FIG.

図6は、マルチコアプロセッサシステム100の通常モードにおける状態を示す説明図である。通常モードにおけるマルチコアプロセッサシステム100は、CPU#0、CPU#1がメインCPU群となる。ディスプレイ107は、動画再生ソフトウェア206によって動画を再生中である。動画を再生している動画再生ソフトウェア206と、音楽再生ソフトウェア207と、GUIソフトウェア208は、CPU#0、CPU#1にて実行されている。システムコールライブラリ209、システムコールライブラリ210、ドライバハンドラ211、ドライバハンドラ212はサブCPU群となるCPU#2、CPU#3にて実行されている。   FIG. 6 is an explanatory diagram showing a state of the multi-core processor system 100 in the normal mode. In the multi-core processor system 100 in the normal mode, CPU # 0 and CPU # 1 are the main CPU group. The display 107 is reproducing a moving image by the moving image reproducing software 206. The moving image reproduction software 206 that reproduces the moving image, the music reproduction software 207, and the GUI software 208 are executed by the CPU # 0 and the CPU # 1. The system call library 209, the system call library 210, the driver handler 211, and the driver handler 212 are executed by CPU # 2 and CPU # 3, which are sub CPU groups.

図7は、マルチコアプロセッサシステム100の通常モードから低電力モードへの移行の検出を示す説明図である。図7におけるマルチコアプロセッサシステム100は、図6にて実行していた動画再生ソフトウェア206の終了後一定時間が経過し、ディスプレイ107にて表示していた待ち受け画面が消えた状態である。待ち受け画面が消えたことにより、GUIソフトウェア208は待機状態である。この状態になった場合に、マルチコアプロセッサシステム100は、OSを最大の処理能力値が低いCPUに移行可能であると検出する。   FIG. 7 is an explanatory diagram showing detection of transition from the normal mode to the low power mode of the multi-core processor system 100. The multi-core processor system 100 in FIG. 7 is in a state in which a standby time displayed on the display 107 has disappeared after a certain period of time has elapsed after the moving image playback software 206 executed in FIG. Due to the disappearance of the standby screen, the GUI software 208 is in a standby state. In this state, the multi-core processor system 100 detects that the OS can be migrated to a CPU having a low maximum processing capability value.

図8は、マルチコアプロセッサシステム100の通常モードから低電力モードに移行する状態を示す説明図である。図8におけるマルチコアプロセッサシステム100は、図7にてOSを最大の処理能力値が低いCPUに移行可能であると検出した状態である。検出後、CPU#0、CPU#1のいずれかが、OS205によってシステムコールライブラリ209〜ドライバハンドラ212をCPU#0、CPU#1に移行させる。移行後に、CPU#0、CPU#1のいずれかがハイパーバイザ204によってOS205’を起動させる。   FIG. 8 is an explanatory diagram showing a state in which the multi-core processor system 100 shifts from the normal mode to the low power mode. The multi-core processor system 100 in FIG. 8 is in a state in which it is detected in FIG. 7 that the OS can be migrated to a CPU having a low maximum processing capability value. After detection, either the CPU # 0 or the CPU # 1 causes the OS 205 to transfer the system call library 209 to the driver handler 212 to the CPU # 0 and CPU # 1. After the migration, either the CPU # 0 or the CPU # 1 activates the OS 205 'by the hypervisor 204.

OS205’の起動完了後に、CPU#2、CPU#3のいずれかが、CPU#0、CPU#1で実行されているソフトウェアをCPU#2、CPU#3に移行させる。図8では、CPU#2、CPU#3のいずれかが、音楽再生ソフトウェア207、システムコールライブラリ209〜ドライバハンドラ212を移行させる。また、OS205’の起動完了後、CPU#2、CPU#3のいずれかは、OS205を終了させる。OS205の終了後、CPU#2、CPU#3のいずれかが、CPU#0、CPU#1を超低クロック状態に設定する。   After the activation of the OS 205 ′, either the CPU # 2 or the CPU # 3 causes the software being executed on the CPU # 0 or the CPU # 1 to be transferred to the CPU # 2 or the CPU # 3. In FIG. 8, either the CPU # 2 or the CPU # 3 migrates the music playback software 207 and the system call library 209 to the driver handler 212. In addition, after the activation of the OS 205 ′, either the CPU # 2 or the CPU # 3 ends the OS 205. After the OS 205 ends, either the CPU # 2 or the CPU # 3 sets the CPU # 0 or the CPU # 1 to the ultra low clock state.

超低クロック状態に設定後、システムコールライブラリ209〜ドライバハンドラ212が発生した場合は、CPU#0、CPU#1が並列実行する。通常モードから低電力モードへの移行処理の詳細は、図13にて後述する。   If the system call library 209 to the driver handler 212 are generated after setting to the ultra-low clock state, the CPU # 0 and CPU # 1 execute in parallel. Details of the transition process from the normal mode to the low power mode will be described later with reference to FIG.

図9は、マルチコアプロセッサシステム100の低電力モードから通常モードへ移行する状態を示す説明図である。図9におけるマルチコアプロセッサシステム100は、図8にて低電力モードとなった後、高負荷なソフトウェアが起動される状態である。高負荷なソフトウェアとは動画再生ソフトウェア206などである。高負荷なソフトウェアの起動により、マルチコアプロセッサシステム100は、低電力モードから通常モードへ移行を開始する。このとき、CPU#2、CPU#3はクロックを最大に設定し、移行中の間、GUIソフトウェア208を実行する。また、CPU#2、CPU#3は、ハイパーバイザ204によって、OS205を起動する。   FIG. 9 is an explanatory diagram showing a state in which the multi-core processor system 100 shifts from the low power mode to the normal mode. The multi-core processor system 100 in FIG. 9 is in a state where high-load software is started after entering the low power mode in FIG. The high-load software is the moving image reproduction software 206 or the like. The multi-core processor system 100 starts the transition from the low power mode to the normal mode by the activation of high-load software. At this time, the CPU # 2 and CPU # 3 set the clock to the maximum, and execute the GUI software 208 during the transition. CPU # 2 and CPU # 3 activate the OS 205 by the hypervisor 204.

図10は、マルチコアプロセッサシステム100の低電力モードから通常モードへ復帰後の状態を示す説明図である。図9におけるマルチコアプロセッサシステム100は、図9にて低電力モードから通常モードへ移行を開始し、OS205を起動完了した状態である。OS205の起動が完了すると、動画再生ソフトウェア206〜GUIソフトウェア208はCPU#0、CPU#1にて分散して実行され、システムコールライブラリ209〜ドライバハンドラ212は、CPU#2、CPU#3にて並列で実行される。また、CPU#0、CPU#1がOS205’を終了させる。低電力モードから通常モードへの移行処理の詳細は、図14にて後述する。   FIG. 10 is an explanatory diagram showing a state after the multi-core processor system 100 returns from the low power mode to the normal mode. The multi-core processor system 100 in FIG. 9 is in a state in which the transition from the low power mode to the normal mode is started in FIG. When the activation of the OS 205 is completed, the video playback software 206 to the GUI software 208 are distributed and executed by the CPU # 0 and CPU # 1, and the system call library 209 to the driver handler 212 are executed by the CPU # 2 and CPU # 3. Run in parallel. Further, the CPU # 0 and the CPU # 1 end the OS 205 '. Details of the transition process from the low power mode to the normal mode will be described later with reference to FIG.

図11は、通常モードと低電力モードにおけるマルチコアプロセッサシステム100の消費電力の一例を示す説明図である。表1101は、最大の処理能力値が高いCPU群と最大の処理能力値が低いCPU群とが、それぞれのソフトウェアを実行する際に要求されるクロック周波数とそれに対する消費電力の例を示している。表1102は、表1101に基づいて、通常モードと低電力モードにおけるマルチコアプロセッサシステム100の消費電力の一例を算出した表である。   FIG. 11 is an explanatory diagram illustrating an example of power consumption of the multi-core processor system 100 in the normal mode and the low power mode. Table 1101 shows an example of the clock frequency required when the CPU group having the highest maximum processing capability value and the CPU group having the lowest maximum processing capability value execute the respective software and the power consumption corresponding thereto. . Table 1102 is a table in which an example of power consumption of the multi-core processor system 100 in the normal mode and the low power mode is calculated based on the table 1101.

通常モードにおけるマルチコアプロセッサシステム100の状態は、図7で説明した状態となっている。具体的には、メインCPU群となるCPU#0とCPU#1は、OS205を実行し、さらにCPU#1が音楽再生ソフトウェア207を実行し、クロック周波数が200[MHz]で動作している。サブCPU群となるCPU#2とCPU#3は、並列ソフトウェアとなるシステムコールライブラリ209〜ドライバハンドラ212を実行し、クロック周波数が20[MHz]で動作している。   The state of the multi-core processor system 100 in the normal mode is the state described with reference to FIG. Specifically, the CPU # 0 and CPU # 1, which are the main CPU group, execute the OS 205, the CPU # 1 executes the music reproduction software 207, and operates at a clock frequency of 200 [MHz]. CPU # 2 and CPU # 3, which are sub CPU groups, execute system call library 209 to driver handler 212, which are parallel software, and operate at a clock frequency of 20 [MHz].

同様に低電力モードにおけるマルチコアプロセッサシステム100の状態は、図8で説明した状態となっている。具体的には、メインCPU群となるCPU#2とCPU#3は、OS205’を実行し、さらにCPU#2が音楽再生ソフトウェア207を実行し、クロック周波数が200[MHz]で動作している。サブCPU群となるCPU#0とCPU#1は、並列ソフトウェアとなるシステムコールライブラリ209〜ドライバハンドラ212を実行し、クロック周波数が20[MHz]で動作している。表1101にて、同じクロック周波数であっても、最大の処理能力値が高いCPU群の方が消費電力が大きいのは、処理能力値が高い分、キャッシュメモリや素子を多く搭載し、リーク電流が多くなるため、消費電力が大きくなるためである。   Similarly, the state of the multi-core processor system 100 in the low power mode is the state described with reference to FIG. Specifically, the CPU # 2 and CPU # 3, which are the main CPU group, execute the OS 205 ′, and the CPU # 2 executes the music playback software 207, and operates at a clock frequency of 200 [MHz]. . The CPU # 0 and CPU # 1, which are sub CPU groups, execute the system call library 209 to the driver handler 212, which are parallel software, and operate at a clock frequency of 20 [MHz]. In Table 1101, even if the clock frequency is the same, the CPU group with the highest maximum processing capability value consumes more power because of the higher processing capability value, which has more cache memory and more elements and leak current. This is because the power consumption increases.

通常モードにおけるマルチコアプロセッサシステム100の消費電力は、表1101より、最大の処理能力値が高いCPU群が240[mW]、最大の処理能力値が低いCPU群が20[mW]となり、表1102で示すように合計で260[mW]となる。また、低電力モードにおけるマルチコアプロセッサシステム100の消費電力は、表1101より、最大の処理能力値が高いCPU群が24[mW]、最大の処理能力値が低いCPU群が200[mW]となり、表1102で示すように合計で224[mW]となる。このように、低電力モードの方が通常モードより消費電力を削減することができる。   From Table 1101, the power consumption of the multi-core processor system 100 in the normal mode is 240 [mW] for the CPU group with the highest maximum processing capability value and 20 [mW] for the CPU group with the lowest maximum processing capability value. As shown, the total is 260 [mW]. The power consumption of the multi-core processor system 100 in the low power mode is 24 [mW] for the CPU group having the highest maximum processing capability value and 200 [mW] for the CPU group having the lowest maximum processing capability value from Table 1101. As shown in Table 1102, the total is 224 [mW]. Thus, the power consumption can be reduced in the low power mode than in the normal mode.

また、OS以外のソフトウェアを移行しても消費電力を削減することができる。たとえば、最大の処理能力値が中程度のCPU群として、最大のクロック周波数が400[MHz]が存在することを想定する。最大の処理能力値が中程度のCPU群は、クロック周波数が100[MHz]時の消費電力を110[mW]、クロック周波数が20[MHz]時の消費電力を22[mW]とする。また、OSと高負荷ソフトウェアが最大の処理能力値が高いCPU群で実行されており、音楽再生ソフトウェア207が最大の処理能力値が中程度のCPU群で実行されており、並列ソフトウェアが最大の処理能力値が低いCPU群で実行されているとする。   Moreover, even if software other than the OS is migrated, power consumption can be reduced. For example, it is assumed that the maximum clock frequency is 400 [MHz] as a CPU group having a medium maximum processing capability value. The CPU group having a medium maximum processing capability value has a power consumption of 110 [mW] when the clock frequency is 100 [MHz] and a power consumption of 22 [mW] when the clock frequency is 20 [MHz]. In addition, the OS and high-load software are executed by a CPU group having a maximum processing capability value, the music playback software 207 is executed by a CPU group having a maximum maximum processing capability value, and parallel software is the maximum. It is assumed that it is executed by a CPU group having a low processing capability value.

このとき、最大の処理能力値が中程度のCPU群と最大の処理能力値が低いCPU群との消費電力の合計は、110+20=130[mW]となる。次に、音楽再生ソフトウェア207と並列ソフトウェアの移行処理を行った場合を想定する。この場合、最大の処理能力値が高いCPU群は状態を維持し、並列ソフトウェアが最大の処理能力値が中程度のCPU群で実行されており、音楽再生ソフトウェア207が最大の処理能力値が低いCPU群で実行されている。この時の消費電力の合計は、22+100=122[mW]となり、移行処理を行う前より消費電力を削減することができる。   At this time, the total power consumption of the CPU group having a medium maximum processing capability value and the CPU group having a low maximum processing capability value is 110 + 20 = 130 [mW]. Next, it is assumed that the music playback software 207 and parallel software are migrated. In this case, the CPU group with the highest processing capability value maintains the state, the parallel software is executed by the CPU group with the medium maximum processing capability value, and the music playback software 207 has the lowest processing capability value. It is executed by the CPU group. The total power consumption at this time is 22 + 100 = 122 [mW], and the power consumption can be reduced from before the migration process.

図12は、ユースケーステーブル301の記憶内容の一例を示す説明図である。テーブルは、イベント種別、イベント内容という2つのフィールドを有する。イベント種別フィールドは、発生したイベントが低電力モードに移行するトリガーとなるか、通常モードに移行するトリガーとなるかを区別する値を格納する。イベント種別フィールドが“低電力モード移行”であれば発生したイベントは低電力モードに移行するトリガーとなり、“通常モード移行”であれば、発生したイベントは通常モードに移行するトリガーとなる。イベント内容フィールドは、イベントの内容を格納する。   FIG. 12 is an explanatory diagram showing an example of the contents stored in the use case table 301. The table has two fields: event type and event content. The event type field stores a value for discriminating whether the generated event is a trigger for shifting to the low power mode or the trigger for shifting to the normal mode. If the event type field is “low power mode transition”, the generated event is a trigger to shift to the low power mode, and if it is “normal mode shift”, the generated event is a trigger to shift to the normal mode. The event content field stores the content of the event.

たとえば、ユーザによる低電力モードへの移行指示のイベントが発生した場合、マルチコアプロセッサシステム100は、最大の処理能力値が低いコアに移行可能とするイベントと判断し、通常モードであれば低電力モードに移行する。同様に、一定期間、高負荷ソフトウェアが未実行で、電池の残量が一定値以下となったイベントが発生した場合も、マルチコアプロセッサシステム100は、通常モードであれば低電力モードに移行する。   For example, when an event of a transition instruction to the low power mode by the user occurs, the multi-core processor system 100 determines that the event allows the transition to a core having a maximum maximum processing capability value. Migrate to Similarly, even when an event occurs in which high-load software has not been executed for a certain period of time and the remaining battery level becomes a certain value or less, the multi-core processor system 100 shifts to the low power mode if it is in the normal mode.

また、高負荷ソフトウェアとして、GUIソフトウェア208の起動要求のイベントが発生した場合、マルチコアプロセッサシステム100は、最大の処理能力値が高いコアに移行要求するイベントと判断し、低電力モードであれば通常モードに移行する。同様に、高負荷ソフトウェアとして動画再生ソフトウェア206、ゲームソフトウェア等の起動要求のイベントが発生した場合、マルチコアプロセッサシステム100は、低電力モードであれば通常モードに移行する。   Further, when an activation request event of the GUI software 208 occurs as high-load software, the multi-core processor system 100 determines that the event is a request to shift to a core having a maximum maximum processing capability value, and is normal in the low power mode. Enter mode. Similarly, when an activation request event such as moving image reproduction software 206 or game software occurs as high-load software, the multi-core processor system 100 shifts to the normal mode if it is in the low power mode.

起動要求時に“通常モード移行”へ移行するソフトウェアの登録方法としては、設計時に、ESL(Electronic System Level)シミュレータによって、対象のソフトウェアの要求する演算能力が、閾値を超える演算性能を超えるかを判断する方法がある。   As a method for registering software that shifts to “transition to normal mode” when a startup request is made, at the time of design, an ESL (Electronic System Level) simulator is used to determine whether the computing power required by the target software exceeds the computing performance exceeding the threshold. There is a way to do it.

また、“通常モード移行”へ移行するイベントとして、高負荷ソフトウェアの起動準備が発生した場合、マルチコアプロセッサシステム100は、低電力モードであれば通常モードに移行してもよい。高負荷ソフトウェアの起動準備とは、高負荷ソフトウェアが所定時刻に起動するように設定されている場合の準備作業である。   In addition, when the high load software startup preparation occurs as an event to shift to “normal mode shift”, the multi-core processor system 100 may shift to the normal mode in the low power mode. The high load software activation preparation is a preparation work when the high load software is set to be activated at a predetermined time.

たとえば、マルチコアプロセッサシステム100の利用者によって、所定時刻にアラーム等を通知するソフトウェアが設定された場合で、アラームを通知するソフトウェアが高負荷ソフトウェアであることを想定する。マルチコアプロセッサシステム100は、低電力モードであった場合、所定時刻より前に通常モードに移行しておくことで、所定時刻に高負荷ソフトウェアを通常モードで起動することができる。具体的には、マルチコアプロセッサシステム100は、所定時刻からOS205の起動完了にかかる時間を減じた時刻にて、低電力モードから通常モードへの移行処理を行ってもよい。   For example, it is assumed that software for notifying an alarm or the like at a predetermined time is set by a user of the multi-core processor system 100 and the software for notifying an alarm is high-load software. When the multi-core processor system 100 is in the low power mode, the high-load software can be started in the normal mode at a predetermined time by shifting to the normal mode before the predetermined time. Specifically, the multi-core processor system 100 may perform the transition process from the low power mode to the normal mode at a time obtained by subtracting the time required to complete the startup of the OS 205 from a predetermined time.

図13は、通常モードから低電力モードへの移行処理を示すフローチャートである。通常モードから低電力モードへの移行処理と、低電力モードから通常モードへの移行処理では、最大の処理能力値の高いCPU群が実行する場合、CPU#0とCPU#1の少なくともどちらか一方が実行すればよい。また、最大の処理能力値の低いCPU群が実行する場合、CPU#2とCPU#3のどちらかが実行すればよい。図13と図14の説明では、説明を簡略化するため、最大の処理能力値の高いCPU群が実行する場合は、CPU#0が実行することを想定して説明し、最大の処理能力値の低いCPU群が実行する場合は、CPU#2が実行することと想定して説明する。   FIG. 13 is a flowchart showing a transition process from the normal mode to the low power mode. In the transition process from the normal mode to the low power mode and the transition process from the low power mode to the normal mode, when a CPU group having a maximum processing capability value is executed, at least one of the CPU # 0 and the CPU # 1 Can be executed. Further, when the CPU group having the lowest processing capability value is executed, either the CPU # 2 or the CPU # 3 may execute. In the description of FIG. 13 and FIG. 14, in order to simplify the description, when the CPU group having the highest maximum processing capability value is executed, it is assumed that CPU # 0 executes, and the maximum processing capability value is described. A description will be given assuming that CPU # 2 executes when a low CPU group executes.

CPU#0はOS205によって、CPU#2、CPU#3に移行可能とするイベントのいずれかが発生したかを判断する(ステップS1301)。移行可能とするイベントは、ユースケーステーブル301のうち、イベント種別フィールドの値が低電力モードとなるイベントである。移行可能とするイベントが発生していない場合(ステップS1301:No)、CPU#0は、一定時間後、ステップS1301の処理を実行する。移行可能とするイベントが発生している場合(ステップS1301:Yes)、CPU#0は、CPU#2、CPU#3へのソフトウェアのディスパッチを禁止する(ステップS1302)。   The CPU # 0 determines whether an event that can be transferred to the CPU # 2 or the CPU # 3 has occurred by the OS 205 (step S1301). The event that can be transferred is an event in the use case table 301 in which the value of the event type field is in the low power mode. If an event that can be shifted has not occurred (step S1301: No), the CPU # 0 executes the process of step S1301 after a predetermined time. When an event for enabling migration has occurred (step S1301: Yes), the CPU # 0 prohibits software dispatch to the CPU # 2 and CPU # 3 (step S1302).

ディスパッチ禁止後、CPU#0はOS205によって、CPU#2、CPU#3で実行中のソフトウェアをCPU#0、CPU#1に移行する(ステップS1303)。また、移行対象となるソフトウェアは、OS205以外のすべてのソフトウェアとなる。また、OS205以外のすべてのソフトウェアの移行を行う理由としては、次のステップにて、OS205’をブートする際にメモリの初期化を行うために、ソフトウェアの実行を継続できなくなるためである。   After the dispatch is prohibited, the CPU # 0 causes the OS 205 to transfer the software being executed on the CPU # 2 and the CPU # 3 to the CPU # 0 and the CPU # 1 (step S1303). Further, the software to be migrated is all software other than the OS 205. Further, the reason why all software other than the OS 205 is migrated is that the execution of software cannot be continued because the memory is initialized when the OS 205 ′ is booted in the next step.

実行中のソフトウェアをすべて移行後、CPU#0は、ハイパーバイザ204によってCPU#2、CPU#3でOS205’のブートを開始する(ステップS1304)。ブート開始後、CPU#0は、OS205’のブートが完了したかを判断する(ステップS1305)。ブートが完了した場合(ステップS1305:Yes)、CPU#0は、マルチコアプロセッサシステム100を管理するOSをOS205からOS205’へスイッチする(ステップS1306)。   After all the software being executed is migrated, the CPU # 0 starts booting the OS 205 'with the CPU # 2 and CPU # 3 by the hypervisor 204 (step S1304). After starting the boot, the CPU # 0 determines whether the boot of the OS 205 'has been completed (step S1305). When the boot is completed (step S1305: Yes), the CPU # 0 switches the OS that manages the multi-core processor system 100 from the OS 205 to the OS 205 '(step S1306).

OSのスイッチ後、CPU#2は、OS205’によってCPU#0、CPU#1で実行中のすべてのソフトウェアをCPU#2、CPU#3に移行する(ステップS1307)。すべてのソフトウェアを移行した後に、CPU#2は、ハイパーバイザ204によって、CPU#0、CPU#1のOS205を終了する(ステップS1308)。OS205の終了後、CPU#2は、OS205’によってCPU#0、CPU#1を超低クロックでリセットする(ステップS1309)。これにより、マルチコアプロセッサシステム100は、移行元のコアとなるCPU#0、CPU#1の処理能力値を超低クロックで設定したことになる。リセットを終えると、CPU#2は、低電力モードへの移行を完了し(ステップS1310)、処理を終了する。   After the OS is switched, the CPU # 2 shifts all software being executed on the CPU # 0 and CPU # 1 to the CPU # 2 and CPU # 3 by the OS 205 '(step S1307). After all the software has been migrated, the CPU # 2 terminates the OS 205 of the CPU # 0 and CPU # 1 by the hypervisor 204 (step S1308). After the end of the OS 205, the CPU # 2 resets the CPU # 0 and the CPU # 1 with the very low clock by the OS 205 '(step S1309). As a result, the multi-core processor system 100 sets the processing capability values of the CPU # 0 and CPU # 1, which are the cores of the migration source, with an extremely low clock. When the reset is completed, the CPU # 2 completes the transition to the low power mode (step S1310) and ends the process.

OS205’のブートが完了していない場合(ステップS1305:No)、CPU#0は、CPU#0、CPU#1に移行要求するイベントのいずれかが発生したかを判断する(ステップS1311)。移行要求するイベントが発生していない場合(ステップS1311:No)、CPU#0は、ステップS1305の処理に移行する。   If the boot of the OS 205 ′ has not been completed (step S <b> 1305: NO), the CPU # 0 determines whether one of the events requested to shift to the CPU # 0 or CPU # 1 has occurred (step S <b> 1311). When the event for requesting the transition has not occurred (step S1311: No), the CPU # 0 proceeds to the process of step S1305.

移行要求するイベントが発生した場合(ステップS1311:Yes)、CPU#0は、CPU#2、CPU#3でのOS205’のブートをキャンセルする(ステップS1312)。移行要求するイベントは、ユースケーステーブル301のうち、イベント種別フィールドの値が通常モード移行となるイベントである。ブートキャンセル後、CPU#0は、OS205によってCPU#2、CPU#3のディスパッチの禁止を解除する(ステップS1313)。ディスパッチの禁止の解除後、CPU#0は、通常モードへの復帰を完了し(ステップS1314)、処理を終了する。   When an event for requesting migration has occurred (step S1311: Yes), the CPU # 0 cancels booting of the OS 205 'in the CPU # 2 and CPU # 3 (step S1312). The event requested to be transferred is an event in which the value of the event type field in the use case table 301 is shifted to the normal mode. After the boot cancellation, the CPU # 0 cancels the prohibition of dispatch of the CPUs # 2 and # 3 by the OS 205 (step S1313). After canceling the prohibition of dispatch, CPU # 0 completes the return to the normal mode (step S1314) and ends the process.

なお、OS以外のソフトウェアが特定のソフトウェアとして移行する場合、CPU#0は、ステップS1301:Yesとなり移行可能と判断した後、特定のソフトウェアをCPU#2、CPU#3に移行する。移行後、CPU#2は、ステップS1309の処理に移行してもよい。   When software other than the OS is migrated as specific software, the CPU # 0 determines that the migration is possible in step S1301: Yes, and then migrates the specific software to the CPU # 2 and CPU # 3. After the transfer, the CPU # 2 may move to the process of step S1309.

図14は、低電力モードから通常モードへの移行処理を示すフローチャートである。CPU#2は、OS205’によってCPU#0、CPU#1に移行要求するイベントのいずれかが発生したかを判断する(ステップS1401)。移行要求するイベントが発生していない場合(ステップS1401:No)、CPU#2は、一定時間待機後、ステップS1401の処理に移行する。   FIG. 14 is a flowchart showing a transition process from the low power mode to the normal mode. The CPU # 2 determines whether any of the events requested to shift to the CPU # 0 or the CPU # 1 has occurred by the OS 205 '(step S1401). When the event for requesting the transition has not occurred (step S1401: No), the CPU # 2 transitions to the process of step S1401 after waiting for a predetermined time.

移行要求するイベントが発生した場合(ステップS1401:Yes)、CPU#2は、CPU#2、CPU#3のクロックを最大に変更する(ステップS1402)。クロックを最大に変更後、CPU#2は、CPU#0、CPU#1へのディスパッチを禁止し(ステップS1403)、CPU#0、CPU#1で実行中のすべてのソフトウェアをCPU#2、CPU#3に移行する(ステップS1404)。   When an event for requesting migration has occurred (step S1401: Yes), the CPU # 2 changes the clocks of the CPU # 2 and CPU # 3 to the maximum (step S1402). After changing the clock to the maximum, CPU # 2 prohibits dispatching to CPU # 0 and CPU # 1 (step S1403), and all software being executed by CPU # 0 and CPU # 1 is transferred to CPU # 2 and CPU # 1. The process proceeds to # 3 (step S1404).

すべてのソフトウェアの移行終了後、CPU#2は、ハイパーバイザ204によってCPU#0、CPU#1でOS205のブートを開始する(ステップS1405)。OS205のブートを開始後、CPU#2は、OS205のブートが完了したかを判断する(ステップS1406)。ブートが完了していない場合(ステップS1406:No)、CPU#2は、一定時間後、再びステップS1406の処理を実行する。ブートが完了した場合(ステップS1406:Yes)、CPU#2はマルチコアプロセッサシステム100を管理するOSをOS205’からOS205へスイッチする(ステップS1407)。   After completing the migration of all the software, the CPU # 2 starts booting the OS 205 with the CPU # 0 and the CPU # 1 by the hypervisor 204 (step S1405). After starting the boot of the OS 205, the CPU # 2 determines whether the boot of the OS 205 has been completed (step S1406). If the boot has not been completed (step S1406: NO), the CPU # 2 executes the process of step S1406 again after a predetermined time. When the boot is completed (step S1406: Yes), the CPU # 2 switches the OS that manages the multi-core processor system 100 from the OS 205 'to the OS 205 (step S1407).

OSのスイッチ後、CPU#0は、OS205によってCPU#2、CPU#3で実行中のソフトウェアをCPU#0、CPU#1に移行する(ステップS1408)。移行後、CPU#0は、ハイパーバイザ204によってCPU#2、CPU#3側のOS205’を終了する(ステップS1409)。OS205’を終了後、CPU#0は、OS205によってCPU#2、CPU#3を低クロックでリセットする(ステップS1410)。リセット終了後、CPU#0は、通常モードへの移行を完了し(ステップS1411)、処理を終了する。   After switching the OS, the CPU # 0 causes the OS 205 to transfer the software being executed on the CPU # 2 and CPU # 3 to the CPU # 0 and CPU # 1 (step S1408). After the migration, the CPU # 0 terminates the OS 205 'on the CPU # 2 and CPU # 3 sides by the hypervisor 204 (step S1409). After ending OS 205 ′, CPU # 0 resets CPU # 2 and CPU # 3 with the low clock by OS 205 (step S 1410). After resetting, CPU # 0 completes the transition to the normal mode (step S1411) and ends the process.

なお、OS以外のソフトウェアが特定のソフトウェアとして移行する場合、CPU#2は、ステップS1401:Yesとなり移行要求と判断した後、特定のソフトウェアをCPU#0、CPU#1に移行する。移行後、CPU#0は、ステップS1410の処理に移行してもよい。   When software other than the OS is migrated as specific software, the CPU # 2 determines in step S1401: Yes that it is a migration request, and then migrates the specific software to the CPU # 0 and CPU # 1. After the transition, the CPU # 0 may transition to the process of step S1410.

以上説明したように、マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラムによれば、移行元のコアより最大の処理能力値が低い移行先のコアへの特定のソフトウェアの移行状態を検出する。移行状態を検出する場合、マルチコアプロセッサシステムは、移行元のコアの処理能力を移行前後で低く設定する。これにより、最大の処理能力値が高い移行元のコアで発生するリーク電流を抑制でき、コアの利用効率を高く保ったまま、製造コスト、実装面積を増大せずに消費電力を削減することができる。   As described above, according to the multi-core processor system, the control method of the multi-core processor system, and the control program of the multi-core processor system, the specific processing software of the specific software to the migration destination core whose maximum processing capacity value is lower than that of the migration source core. Detect transition status. When detecting the migration state, the multi-core processor system sets the processing capability of the migration source core low before and after the migration. As a result, the leakage current that occurs in the migration source core with the highest maximum processing capability value can be suppressed, and the power consumption can be reduced without increasing the manufacturing cost and mounting area while keeping the core utilization efficiency high. it can.

また、マルチコアプロセッサシステムは、特定のソフトウェアが移行機能を含むソフトウェアである場合、特定のソフトウェアが実行中である移行元のコアから移行先のコアに、特定のソフトウェアを移行させてもよい。これにより、移行機能を含むOSを、最大の処理能力値が低い移行先のコアに移行させることになり、最大の処理能力値が高い移行元のコアで発生するリーク電流を抑制でき、消費電力を削減することができる。特に、OSの要求する処理能力は、並列実行可能なソフトウェアの要求する処理能力と比較すると非常に大きいため、OSを最大の処理能力値が低い移行先のコアに移行すると、リーク電流を大きく抑制することができる。   In the multi-core processor system, when the specific software is software including a migration function, the specific software may be migrated from the migration source core in which the specific software is being executed to the migration destination core. As a result, the OS including the migration function is migrated to the migration destination core having the lowest maximum processing capability value, and the leakage current generated in the migration source core having the highest maximum capability value can be suppressed, and the power consumption Can be reduced. In particular, the processing capability required by the OS is very large compared to the processing capability required by the software that can be executed in parallel. Therefore, when the OS is transferred to a migration destination core having a low maximum processing capability value, the leakage current is greatly suppressed. can do.

また、マルチコアプロセッサシステムは、発生したイベントが特定のソフトウェアを最大の処理能力値が低いコアに移行可能とするイベントであると判断する。さらにマルチコアプロセッサシステムは、移行元のコアより最大の処理能力値が低い移行先のコアへの特定のソフトウェアの移行状態を検出する。移行状態を検出する場合、マルチコアプロセッサシステムは、移行元のコアの処理能力を移行前後で低く設定してもよい。   In addition, the multi-core processor system determines that the generated event is an event that allows specific software to be transferred to a core having a low maximum processing capability value. Furthermore, the multi-core processor system detects the state of migration of specific software to a migration destination core having a maximum processing capability value lower than that of the migration source core. When detecting the transition state, the multi-core processor system may set the processing capacity of the migration source core low before and after the transition.

これにより、マルチコアプロセッサシステムは、最大の処理能力値が高い移行元のコアで発生するリーク電流を抑制でき、消費電力を削減することができる。また、発生したイベントの判断は、データベースに登録されているかによって判断するため、データベースの内容を変更するだけで運用形態を容易に変更でき、マルチコアプロセッサシステムの運用を容易に行うことができる。   Thereby, the multi-core processor system can suppress the leakage current generated in the migration source core having the highest maximum processing capability value, and can reduce the power consumption. In addition, since an event that has occurred is determined based on whether it is registered in the database, the operation mode can be easily changed by simply changing the contents of the database, and the multi-core processor system can be easily operated.

また、マルチコアプロセッサシステムは、特定のソフトウェアを移行中に、移行元のコアより最大の処理能力値が高いコアに移行要求するイベントが発生した場合、特定のソフトウェアの移行をキャンセルし、結果的に特定のソフトウェアを移行させなくてもよい。たとえば、OSの移行にはOSのブートを行う時間が含まれ、利用者の操作を受け付ける時間が充分にあるため、その間に、たとえば高負荷ソフトウェアの起動要求のイベントが発生する可能性がある。このようなとき、本実施の形態にかかるマルチコアプロセッサシステムは、一度低電力モードに移行してから再度通常モードに移行するということを行わず、すぐに通常モードに復帰するため、発生したイベントに対して即応することができる。   In addition, if an event requesting migration to a core with a maximum processing capacity value higher than the migration source core occurs during migration of specific software, the multi-core processor system cancels the migration of the specific software, and as a result There is no need to migrate specific software. For example, the OS migration includes a time for booting the OS and there is sufficient time for accepting a user's operation, so that an event of a request for starting a high-load software may occur during that time, for example. In such a case, the multi-core processor system according to the present embodiment does not perform the transition to the low power mode and then the normal mode again, and immediately returns to the normal mode. You can respond immediately.

また、マルチコアプロセッサシステムは、発生したイベントが移行元のコアより最大の処理能力値が高いコアに移行要求するイベントであると判断し、かつ、移行元のコアより最大の処理能力値が高いコアへの、特定のソフトウェアの移行状態を検出する。移行状態を検出する場合、マルチコアプロセッサシステムは、移行元のコアの処理能力を移行前後で低く設定してもよい。これにより、マルチコアプロセッサシステムは、最大の処理能力値が低いコアで動作していた特定のソフトウェアを、最大の処理能力値が高いコアに移行することで割り込み応答に速く対応することができる。   In addition, the multi-core processor system determines that the generated event is an event requesting a migration to a core having a higher maximum processing capability value than the migration source core, and has a higher processing capability value than the migration source core. Detect the specific software migration status to When detecting the transition state, the multi-core processor system may set the processing capacity of the migration source core low before and after the transition. As a result, the multi-core processor system can quickly respond to the interrupt response by moving the specific software operating on the core having the lowest maximum processing capability value to the core having the highest processing capability value.

具体的には、最大の処理能力値が高いコアにて割り込み要求の通知を受け、特定のソフトウェアが割り込み要求からの通知を受ける場合、特定のソフトウェアは、最大の処理能力値が高いコアにて実行されている場合に、最も速く割り込み要求に応答できる。たとえば、キーボードからの割り込み要求を受ける場合、特定のソフトウェアは、最大の処理能力値が高いコアにて実行されている場合に、最も速くキーボードからの信号に応答できる。このように、マルチコアプロセッサシステムの消費電力が削減される状態となり、特定のソフトウェアの割り込み応答性能が低下した場合にも、特定のソフトウェアを移行させることで、割り込みに対する応答速度を戻すことができる。   Specifically, if a core with a high maximum processing capacity value is notified of an interrupt request and specific software receives a notification from an interrupt request, the specific software must be When running, it can respond to interrupt requests the fastest. For example, when receiving an interrupt request from the keyboard, the specific software can respond to the signal from the keyboard the fastest when it is executed in a core having a maximum processing capacity value. As described above, even when the power consumption of the multi-core processor system is reduced and the interrupt response performance of the specific software is lowered, the response speed for the interrupt can be restored by shifting the specific software.

また、本実施の形態のマルチコアプロセッサシステムは、OSによる制御であって、DVFS制御で必須となるマルチ電源電圧も必要ないため、従来例のマルチコアプロセッサシステムに対して容易に適用することができる。また、本実施の形態のマルチコアプロセッサシステムは、マルチコアでマルチスレッドが実行しても、ユースケーステーブルに従って運用するため、DVFS制御のように見積もりが困難となることがなく、運用が容易である。また、本実施の形態のマルチコアプロセッサシステムは、大きなキャッシュメモリを持つCPUを低クロックで動作させるため、リーク電流を減らすことができ、消費電力を削減する効果を得る。   The multi-core processor system according to the present embodiment is controlled by the OS and does not require a multi-power supply voltage that is essential for DVFS control. Therefore, the multi-core processor system can be easily applied to the conventional multi-core processor system. In addition, the multi-core processor system according to the present embodiment is operated according to the use case table even when multi-threads are executed by multi-core, so that estimation is not difficult unlike DVFS control, and operation is easy. In addition, since the multi-core processor system according to the present embodiment operates a CPU having a large cache memory with a low clock, the leakage current can be reduced and the power consumption can be reduced.

なお、本実施の形態で説明したマルチコアプロセッサシステムの制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本マルチコアプロセッサシステムの制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本マルチコアプロセッサシステムの制御プログラムは、インターネット等のネットワークを介して配布してもよい。   Note that the control method of the multi-core processor system described in this embodiment can be realized by executing a prepared program on a computer such as a personal computer or a workstation. The control program of the multi-core processor system is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The control program for the multi-core processor system may be distributed via a network such as the Internet.

#0、#2 CPU
103 RAM
110 バス
201 メモリコントローラ
204 ハイパーバイザ
301 ユースケーステーブル
302 検出部
303 設定部
304 移行部
305 判断部
306 起動通知部
307 起動部
308 終了部
# 0, # 2 CPU
103 RAM
DESCRIPTION OF SYMBOLS 110 Bus 201 Memory controller 204 Hypervisor 301 Use case table 302 Detection part 303 Setting part 304 Migration part 305 Judgment part 306 Start notification part 307 Start part 308 End part

Claims (6)

イベントを処理する第1コアを複数有する第1コア群と、
前記イベントを処理する場合の最大処理能力値が前記第1コアよりも低い第2コアを、前記第1コア群に含まれる前記第1コアと同じ数有する第2コア群と、
前記第1コア群から前記第2コア群へ移行可能なイベントを示す移行イベント情報を記憶する記憶部と、
を有するマルチコアプロセッサシステムであって、前記マルチコアプロセッサシステムに実装されたいずれかのコアは、
記移行イベント情報に対応する移行イベントが前記第1コア群に割り当てられた場合に前記第1コア群に含まれる各々の第1コアに割り当てられた前記移行イベントを前記第2コア群のうち前記各々の第1コアに対応する前記第2コアにそれぞれ移行し、移行後の前記第1コア群の処理能力値を移行前よりも低くする
マルチコアプロセッサシステム。
A first core group having a plurality of first cores for processing events;
A second core group having the same number of second cores as the first core included in the first core group, the second core having a maximum processing capacity value lower than the first core when processing the event;
A storage unit for storing transition event information indicating events that can be transferred from the first core group to the second core group;
A multi-core processor system having any of the cores implemented in the multi-core processor system,
When the transition event corresponding to the previous SL transition event information is assigned to the first core group, the transition event assigned to the first core of each included in the first core group and the second core group The multi-core processor system which shifts to the second core corresponding to each of the first cores, and lowers the processing capability value of the first core group after the transition than before the transition.
前記いずれかのコアは、前記移行イベントを検出した場合に、前記第1コア群に割り当てられ第1記憶部に記録された前記第1コア群の動作状態を示す情報を前記第2コア群に割り当てられた第2記憶部に書き込む、請求項1に記載のマルチコアプロセッサシステム。 Wherein any of the core, wherein, when the transition event is detected, the information indicating the operating state of the first core groups recorded in the first memory unit assigned to the first core group and the second core group The multi-core processor system according to claim 1, wherein the multi-core processor system is written in a second storage unit assigned to . イベントを処理する第1コアを複数有する第1コア群と、前記イベントを処理する場合の最大処理能力値が前記第1コアよりも低い第2コアを、前記第1コア群に含まれる前記第1コアと同じ数有する第2コア群と、前記第1コア群から前記第2コア群へ移行可能なイベントを示す移行イベント情報を記憶する記憶部と、を有するマルチコアプロセッサシステムの制御方法であって、前記マルチコアプロセッサシステムに実装されたいずれかのコアが、
記移行イベント情報に対応する移行イベントが前記第1コア群に割り当てられた場合に前記第1コア群に含まれる各々の第1コアに割り当てられた前記移行イベントを前記第2コア群のうち前記各々の第1コアに対応する前記第2コアにそれぞれ移行し、
移行後の前記第1コア群の処理能力値を移行前よりも低くする
処理を実行するマルチコアプロセッサシステムの制御方法。
A first core group having a plurality of first cores for processing events, and a second core having a maximum processing capacity value lower than that of the first cores when processing the events are included in the first core group. A control method for a multi-core processor system, comprising: a second core group having the same number as one core; and a storage unit that stores transition event information indicating events that can be migrated from the first core group to the second core group. Any of the cores implemented in the multi-core processor system
When the transition event corresponding to the previous SL transition event information is assigned to the first core group, the transition event assigned to the first core of each included in the first core group and the second core group Each of which transitions to the second core corresponding to the first core ,
A control method for a multi-core processor system, which executes a process of lowering the processing capability value of the first core group after migration than before migration.
前記いずれかのコアが、前記移行イベントを検出した場合に、前記第1コア群に割り当てられ第1記憶部に記録された前記第1コア群の動作状態を示す情報を前記第2コア群に割り当てられた第2記憶部に書き込む処理をさらに実行する、請求項3に記載のマルチコアプロセッサシステムの制御方法。 Wherein any of the core, wherein when a transition event has been detected, the information indicating the operating state of the first core groups recorded in the first memory unit assigned to the first core group and the second core group The control method of the multi-core processor system according to claim 3, further executing a process of writing to the second storage unit allocated to the computer. イベントを処理する第1コアを複数有する第1コア群と、前記イベントを処理する場合の最大処理能力値が前記第1コアよりも低い第2コアを、前記第1コア群に含まれる前記第1コアと同じ数有する第2コア群と、前記第1コア群から前記第2コア群へ移行可能なイベントを示す移行イベント情報を記憶する記憶部と、を有するマルチコアプロセッサシステムの制御プログラムであって、前記マルチコアプロセッサシステムに実装されたいずれかのコアに、
記移行イベント情報に対応する移行イベントが前記第1コア群に割り当てられた場合に前記第1コア群に含まれる各々の第1コアに割り当てられた前記移行イベントを前記第2コア群のうち前記各々の第1コアに対応する前記第2コアにそれぞれ移行し、
移行後の前記第1コア群の処理能力値を移行前よりも低くする
処理を実行させるマルチコアプロセッサシステムの制御プログラム。
A first core group having a plurality of first cores for processing events, and a second core having a maximum processing capacity value lower than that of the first cores when processing the events are included in the first core group. A control program for a multi-core processor system, comprising: a second core group having the same number as one core; and a storage unit that stores transition event information indicating events that can be migrated from the first core group to the second core group. Any of the cores implemented in the multi-core processor system
When the transition event corresponding to the previous SL transition event information is assigned to the first core group, the transition event assigned to the first core of each included in the first core group and the second core group Each of which transitions to the second core corresponding to the first core ,
A control program for a multi-core processor system that executes processing for lowering the processing capability value of the first core group after migration than before migration.
前記いずれかのコアに、前記移行イベントを検出した場合に、前記第1コア群に割り当てられ第1記憶部に記録された前記第1コア群の動作状態を示す情報を前記第2コア群に割り当てられた第2記憶部に書き込む処理をさらに実行させる、請求項5に記載のマルチコアプロセッサシステムの制御プログラム。
Wherein any of the core, wherein when the transition event is detected, the information indicating the operating state of the first core groups recorded in the first memory unit assigned to the first core group and the second core group The control program for a multi-core processor system according to claim 5, further causing a process of writing to a second storage unit assigned to the multi-core processor system.
JP2014165036A 2014-08-13 2014-08-13 Multi-core processor system, multi-core processor system control method, and multi-core processor system control program Expired - Fee Related JP5862727B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014165036A JP5862727B2 (en) 2014-08-13 2014-08-13 Multi-core processor system, multi-core processor system control method, and multi-core processor system control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014165036A JP5862727B2 (en) 2014-08-13 2014-08-13 Multi-core processor system, multi-core processor system control method, and multi-core processor system control program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012519178A Division JPWO2011155047A1 (en) 2010-06-10 2010-06-10 Multi-core processor system, power control method, and power control program

Publications (2)

Publication Number Publication Date
JP2014209394A JP2014209394A (en) 2014-11-06
JP5862727B2 true JP5862727B2 (en) 2016-02-16

Family

ID=51903536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014165036A Expired - Fee Related JP5862727B2 (en) 2014-08-13 2014-08-13 Multi-core processor system, multi-core processor system control method, and multi-core processor system control program

Country Status (1)

Country Link
JP (1) JP5862727B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138716A (en) * 1995-11-14 1997-05-27 Toshiba Corp Electronic computer
JPH09185589A (en) * 1996-01-05 1997-07-15 Toshiba Corp Information processing system and power saving method for the system
JP2898616B2 (en) * 1997-08-26 1999-06-02 三菱電機株式会社 Computer with suspend / resume function

Also Published As

Publication number Publication date
JP2014209394A (en) 2014-11-06

Similar Documents

Publication Publication Date Title
US11181970B2 (en) System and method for performing distributed power management without power cycling hosts
TWI536269B (en) Operating system decoupled heterogeneous computing
US9417794B2 (en) Including performance-related hints in requests to composite memory
EP2380081B1 (en) Method and system for hibernation or suspend using a non-volatile-memory device
TWI518587B (en) Core switching acceleration in asymmetric multiprocessor system
US8689017B2 (en) Server power manager and method for dynamically managing server power consumption
WO2011155047A1 (en) Multi-core processor system, method of power control, and power control program
US11579918B2 (en) Optimizing host CPU usage based on virtual machine guest OS power and performance management
JP2011100431A (en) Device and method for controlling virtual machine
KR102219122B1 (en) Technologies for operating system transitions in multiple-operating-system environments
US9836378B2 (en) Methods for managing performance states in an information handling system
US9323317B2 (en) System and methods for DIMM-targeted power saving for hypervisor systems
US20170269668A1 (en) Wireless component state based power management
US11307888B2 (en) Managing host hardware configuration for virtual machine migration
US9933832B2 (en) Systems and methods for modifying power states in a virtual environment
JP5862727B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program
JP2008243049A (en) Information processor and memory control method therefor
US20180341482A1 (en) Method and arrangement for utilization of a processing arrangement
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
WO2023225991A1 (en) Dynamic establishment of polling periods for virtual machine switching operations
JP6731620B2 (en) Computer system and storage device activation control method
Chuang et al. Modified Packing Algorithm for Dynamic Energy-Saving in Cloud Computing Servers

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151214

R150 Certificate of patent or registration of utility model

Ref document number: 5862727

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees