JP2023030299A - プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム - Google Patents
プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム Download PDFInfo
- Publication number
- JP2023030299A JP2023030299A JP2021135353A JP2021135353A JP2023030299A JP 2023030299 A JP2023030299 A JP 2023030299A JP 2021135353 A JP2021135353 A JP 2021135353A JP 2021135353 A JP2021135353 A JP 2021135353A JP 2023030299 A JP2023030299 A JP 2023030299A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- virtual machine
- operating
- clock
- power supply
- 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.)
- Pending
Links
- 238000004590 computer program Methods 0.000 title claims description 6
- 238000007726 management method Methods 0.000 title 1
- 239000000758 substrate Substances 0.000 claims description 66
- 238000000034 method Methods 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 abstract description 56
- 238000005516 engineering process Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 24
- 230000009467 reduction Effects 0.000 description 16
- 238000011156 evaluation Methods 0.000 description 9
- 230000000052 comparative effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000000747 cardiac effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Abstract
【課題】RTOSのリアルタイム性を確保しつつプロセッサの消費エネルギーを低減する。
【解決手段】プロセッサシステムは、プロセッサと、複数の電源供給部と、複数のクロック供給部と、電源用スイッチ部と、クロック用スイッチ部と、仮想マシン管理部とを備える。プロセッサは、GPOSを実行する第1仮想マシンとRTOSを実行する第2仮想マシンとの間を切り替わる。複数のクロック供給部は、第1仮想マシン動作用の第1電源供給部と、第2仮想マシン動作用の第2電源供給部とを含む。複数のクロック供給部は、第1仮想マシン動作用の第1クロック供給部と、第2仮想マシン動作用の第2クロック供給部とを含む。電源用スイッチ部は、1つの電源供給部を選択し、クロック用スイッチ部は、1つのクロック供給部を選択する。仮想マシン管理部は、プロセッサの動作状態に応じて各電源供給部の電圧と各クロック供給部のクロック周波数とを個別に制御する。
【選択図】図1
【解決手段】プロセッサシステムは、プロセッサと、複数の電源供給部と、複数のクロック供給部と、電源用スイッチ部と、クロック用スイッチ部と、仮想マシン管理部とを備える。プロセッサは、GPOSを実行する第1仮想マシンとRTOSを実行する第2仮想マシンとの間を切り替わる。複数のクロック供給部は、第1仮想マシン動作用の第1電源供給部と、第2仮想マシン動作用の第2電源供給部とを含む。複数のクロック供給部は、第1仮想マシン動作用の第1クロック供給部と、第2仮想マシン動作用の第2クロック供給部とを含む。電源用スイッチ部は、1つの電源供給部を選択し、クロック用スイッチ部は、1つのクロック供給部を選択する。仮想マシン管理部は、プロセッサの動作状態に応じて各電源供給部の電圧と各クロック供給部のクロック周波数とを個別に制御する。
【選択図】図1
Description
本明細書に開示される技術は、プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラムに関する。
例えば、自動車のブレーキシステムや心臓ペースメーカ等の組み込みシステムには、高いリアルタイム性(例えば、応答時間が数百マイクロ秒以内であること)が求められる。そのため、そのような組み込みシステム用のオペレーティングシステム(Operating System、以下、「OS」という。)としては、機能を絞ることによってリアルタイム性を確保したリアルタイムOS(Real Time OS、以下、「RTOS」という。)が採用されてきた。
近年、IoT需要の高まり等に伴い、組み込みシステムに求められる機能は拡大している。例えば、プリンタはインクを噴射するだけではなく、タッチパネル上のGUIを制御し、ネットワークからの要求により動作しなければならない。また、例えば、センサノードは、インターネットに接続して他のノードやサーバと協調動作する必要がある。こうした複雑な機能を単純なRTOS上に実装することは困難であり、組み込みシステムにおいてもLinux(登録商標)のような汎用OS(General Purpose OS、以下、「GPOS」という。)を採用することが増えている。
しかしながら、GPOSの割り込み応答時間は一般的に大きく、かつ予測が難しいため、このような組み込みシステムでは、リアルタイム性を確保することが困難である。そのため、一般に、組み込みシステムにおいて、リアルタイム性を確保しつつ機能性を拡充するために、ハードウェアの分離が行われる。例えば、小規模かつクリティカルな処理は動作を予測しやすい組み込み用μコントローラユニット(Micro Controller Unit、以下、「MCU」という。)で行い、大規模かつ高機能な処理はアプリケーションプロセッサで動作させるのである。
しかしながら、このようなハードウェアの分離は、明らかにコストが大きい上に、リアルタイムシステムにおいても浮動小数点演算を多く行いたい場合等に性能が不足する場合もある。そのため、1つの物理プロセッサ上でRTOSとGPOSとを短時間で切り替えて実行することにより、あたかも2つの仮想マシンが実在するように見せかける仮想化と呼ばれる技術が提案されている(例えば、特許文献1参照)。仮想化技術を用いれば、ハードウェアの分離を行うことなく、リアルタイム性の確保と機能性の拡充とを両立することができる。
他方、組み込みシステムのプロセッサに求められる要件として、省エネルギー性がある。組み込みシステムは安定した系統ではなくバッテリにより動作することが多いため、プロセッサの消費エネルギーを低減することが特に求められる。従来、プロセッサの消費エネルギー低減を図る技術として、プロセッサの動作状態に応じてプロセッサの動作電圧および動作周波数を動的に変更する動的電圧・周波数スケーリング(Dynamic Voltage and Frequency Scaling、以下、「DVFS」という。)と呼ばれる技術や(例えば、特許文献2参照)、プロセッサの電源電圧を変更可能なパワースイッチにより複数の電源電圧を切り替えて使用する技術が知られている(例えば、特許文献3参照)。
一般に、プロセッサ10の動作周波数の上限は動作電圧に応じて決まる。上述したDVFS等の消費エネルギー低減技術は、プロセッサ10の動作周波数を高める必要がないときには、プロセッサに対して動作電源を供給する電源供給部における電圧を低い値に切り替えて、消費エネルギーを低減する技術である。しかしながら、電源供給部における電圧の切り替えには、長時間(例えば数百マイクロ秒以上の時間)を要する。そのため、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサに対し、DVFS等の消費エネルギー低減技術を適用して、例えばGPOS実行時に電源供給部における電圧を低下させると、その後にRTOS実行に切り替わったときに、電源供給部における電圧を瞬時に増大させることができないために動作周波数を瞬時に高めることができず、RTOSのリアルタイム性が確保できない、という事態が発生し得る。このように、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいては、RTOSのリアルタイム性を確保しつつ、消費エネルギーを低減することが困難であるという課題がある。
なお、このような課題は、組み込みシステム用のプロセッサに限らず、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサに共通の課題である。
本明細書では、上述した課題を解決することが可能な技術を開示する。
本明細書に開示される技術は、例えば、以下の形態として実現することが可能である。
(1)本明細書に開示されるプロセッサシステムは、プロセッサと、複数の電源供給部と、複数のクロック供給部と、電源用スイッチ部と、クロック用スイッチ部と、仮想マシン管理部とを備える。プロセッサは、汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンと、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンと、の間を仮想的に切り替わるように機能する。複数の電源供給部は、前記プロセッサに電圧可変の動作電源を供給する。複数の電源供給部は、前記第1仮想マシンの動作用である第1電源供給部と、前記第2仮想マシンの動作用である第2電源供給部と、を含む。複数のクロック供給部は、前記プロセッサに周波数可変の動作クロックを供給する。複数のクロック供給部は、前記第1仮想マシンの動作用である第1クロック供給部と、前記第2仮想マシンの動作用である第2クロック供給部と、を含む。電源用スイッチ部は、前記複数の電源供給部から、前記プロセッサに動作電源を供給する1つの前記電源供給部を選択する。クロック用スイッチ部は、前記複数のクロック供給部から、前記プロセッサに動作クロックを供給する1つの前記クロック供給部を選択する。仮想マシン管理部18は、前記プロセッサ上で動作する前記第1仮想マシンと前記第2仮想マシンとを仮想的に切り替えると共に、前記プロセッサの動作状態に応じて、前記複数の電源供給部のそれぞれの電圧と、前記複数のクロック供給部のそれぞれのクロック周波数とを、個別に制御する。
このように、本プロセッサシステムは、第1仮想マシンの動作用である第1電源供給部および第1クロック供給部と、第2仮想マシンの動作用である第2電源供給部および第2クロック供給部とを備え、電源用スイッチ部が、プロセッサに動作電源を供給する1つの電源供給部を選択し、クロック用スイッチ部が、プロセッサに動作クロックを供給する1つのクロック供給部を選択する。また、仮想マシン管理部は、プロセッサの動作状態に応じて、複数の電源供給部のそれぞれの電圧と、複数のクロック供給部のそれぞれの周波数とを、個別に制御する。そのため、本プロセッサシステムでは、GPOSを実行する第1仮想マシン動作時の電源電圧およびクロック周波数と、RTOSを実行する第2仮想マシン動作時の電源電圧およびクロック周波数とを、一方が他方へ影響を及ぼすことなく、互いに独立して制御することができる。例えば、GPOSを実行する第1仮想マシンの動作時に、プロセッサの消費エネルギーを低減するために第1電源供給部における電圧を低下させても、その後にRTOSを実行する第2仮想マシンの動作に切り替わったときに、電源用スイッチ部を用いてプロセッサに接続される電源供給部を第1電源供給部から第2電源供給部に瞬時に切り替えることができ、その結果、第2仮想マシンは第1電源供給部の電圧に影響を受けることなく、RTOSのリアルタイム性を確保するために電圧が適切に設定された第2電源供給部から供給される動作電源により動作することができ、RTOSのリアルタイム性が損なわれることを回避することができる。従って、本プロセッサシステムによれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいて、RTOSのリアルタイム性を確保しつつ、プロセッサの消費エネルギーを低減することができる。
(2)上記プロセッサシステムにおいて、さらに、前記プロセッサにおける回路の閾値電圧を可変に設定する複数の基板バイアス供給部であって、前記第1仮想マシンの動作用である第1基板バイアス供給部と、前記第2仮想マシンの動作用である第2基板バイアス供給部と、を含む複数の基板バイアス供給部と、前記複数の基板バイアス供給部から、前記プロセッサに基板バイアスを供給する1つの前記基板バイアス供給部を選択する基板バイアス用スイッチ部と、を備え、前記仮想マシン管理部は、前記プロセッサの動作状態に応じて、前記複数の基板バイアス供給部のそれぞれの基板バイアスを個別に制御する構成としてもよい。なお、基板バイアスを変更することによりプロセッサの閾値電圧が変更される。本プロセッサシステムでは、GPOSを実行する第1仮想マシン動作時の閾値電圧と、RTOSを実行する第2仮想マシン動作時の閾値電圧とを、一方が他方へ影響を及ぼすことなく、互いに独立して制御することができる。従って、本プロセッサシステムによれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいて、RTOSのリアルタイム性を確保しつつ、閾値電圧を調整することにより、プロセッサの消費エネルギーを効果的に低減することができる。
(3)上記プロセッサシステムにおいて、前記仮想マシン管理部は、各システム周期において、前記プロセッサを前記第2仮想マシンとして機能させた後に、前記プロセッサを前記第1仮想マシンとして機能させる構成としてもよい。本プロセッサシステムによれば、各システム周期においてRTOS上のRTタスクを先に行うことにより、RTOSのリアルタイム性を十分に確保しつつ、プロセッサの消費エネルギーを低減することができる。
(4)上記プロセッサシステムにおいて、前記仮想マシン管理部は、各システム周期において、前記第2仮想マシンによるRTOS上のRTタスク終了後、前記RTタスクのデッドラインの到来を待たずに、前記プロセッサを前記第1仮想マシンとして機能させる構成としてもよい。本プロセッサシステムによれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいて、GPOS上のGPタスクの実行時間を長くとることができ、GPタスクを実行する第1仮想マシンをより低い動作電圧および動作周波数で動作させることによって第1仮想マシン動作時の消費エネルギーをより効果的に低減することができ、プロセッサの消費エネルギーをより効果的に低減することができる。
(5)上記プロセッサシステムにおいて、前記仮想マシン管理部は、各システム周期において、前記第1電源供給部の電圧を前記第2電源供給部の電圧より低く設定する構成としてもよい。本プロセッサシステムによれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいて、第1仮想マシン動作時の消費エネルギーをより効果的に低減することができ、プロセッサの消費エネルギーをより効果的に低減することができる。
(6)上記プロセッサシステムにおいて、前記仮想マシン管理部は、各システム周期において、前記第1電源供給部の電圧と前記第2電源供給部の電圧とを略同一の値に設定する構成としてもよい。本プロセッサシステムによれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサにおいて、RTOS上のRTタスクの実行時にあえて高い動作電圧および動作周波数でプロセッサを動作させ、RTタスクの終了時刻を早めることにより、GPOSタスクの実行時間としてより長い時間を確保し、GPOSタスク実行時のプロセッサの動作電圧および動作周波数をRTタスク実行時と略同一とすることができる。これにより、RTタスク実行時からGPOSタスク実行時にかけて、プロセッサの動作電圧および動作周波数を略一定にすることができ、プロセッサの消費エネルギーを極めて効果的に低減することができる。
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、プロセッサシステム、該プロセッサシステムを備える装置、それらの管理方法または制御方法、それらの方法を実現するコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
A.第1実施形態:
A-1.プロセッサシステム100の構成:
図1は、第1実施形態におけるプロセッサシステム100の構成を概念的に示す説明図であり、図2は、比較例のプロセッサシステム100Xの構成を概念的に示す説明図である。本実施形態のプロセッサシステム100は、例えば組み込みシステム用のMCUである。
A-1.プロセッサシステム100の構成:
図1は、第1実施形態におけるプロセッサシステム100の構成を概念的に示す説明図であり、図2は、比較例のプロセッサシステム100Xの構成を概念的に示す説明図である。本実施形態のプロセッサシステム100は、例えば組み込みシステム用のMCUである。
図1に示すように、プロセッサシステム100は、プロセッサ10を備える。プロセッサ10は、例えば中央処理装置(Central Processing Unit、以下、「CPU」という。)である。本実施形態のプロセッサ10は、仮想化技術を用いて、汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンVM1と、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンVM2と、の間を短時間で(例えば、数ミリ秒オーダーで)切り替わるように機能する。RTOSを実行する第2仮想マシンVM2には、高いリアルタイム性が求められる一方、GPOSを実行する第1仮想マシンVM1には、多様な機能性が求められる。プロセッサ10における第1仮想マシンVM1と第2仮想マシンVM2との切り替えは、仮想マシン管理部18により管理される。
プロセッサシステム100は、さらに、プロセッサ10に電圧可変の動作電源を供給する電源供給部と、プロセッサ10に周波数可変の動作クロックを供給するクロック供給部とを備える。プロセッサ10は、電源供給部から供給される動作電源とクロック供給部から供給される動作クロックとに従い動作する。一般に、プロセッサ10の動作周波数の上限は動作電圧に応じて決まり、プロセッサ10の動作周波数を高めるためには、動作電圧を高くすることが必要である。
ここで、図2に示すように、比較例のプロセッサシステム100Xは、本実施形態のプロセッサシステム100と同様に、第1仮想マシンVM1および第2仮想マシンVM2として機能するプロセッサ10を備える。比較例のプロセッサシステム100Xは、電源供給部として、単一の電源供給部33を備え、クロック供給部として、単一のクロック供給部23を備える。そして、プロセッサ10の仮想マシン管理部18は、電源供給部33およびクロック供給部23について、例えばDVFS(Dynamic Voltage and Frequency Scaling)による消費エネルギー低減制御を行う。
一般に、消費エネルギー低減制御において、プロセッサ10へ動作電源を供給する電源供給部33における電圧の切り替えには、長時間(例えば数百マイクロ秒以上の時間)を要する。一方、RTOSを実行する第2仮想マシンVM2の動作周波数は、リアルタイム性確保の観点から、最低値(図2に示す「Min. for RTOS」)が決まっている。そのため、例えばプロセッサ10がGPOSを実行する第1仮想マシンVM1として機能しているときに、消費エネルギー低減のために電源供給部33における電圧を低下させると、その後にプロセッサ10がRTOSを実行する第2仮想マシンVM2に切り替わったときに、電源供給部33における電圧を瞬時に増大させることができず、その結果、第2仮想マシンVM2の動作周波数を上述した最低値まで上げることができず、RTOSのリアルタイム性を確保できないという事態が発生し得る。このような事態の発生を回避するために、比較例のプロセッサシステム100Xでは、GPOS実行時にもクロック供給部23の周波数を上述した最低値より低い値まで下げることができず、それに伴い、電源供給部33の電圧を、該周波数の最低値での動作が可能な電圧範囲より低い値まで下げることができない。これにより、GPOS実行時にもプロセッサ10を比較的高速で動作させざるを得ず、消費エネルギーを効果的に低減することができない。
これに対し、図1に示すように、本実施形態のプロセッサシステム100は、GPOSを実行する第1仮想マシンVM1用の第1電源供給部31および第1クロック供給部21を備え、かつ、RTOSを実行する第2仮想マシンVM2用の第2電源供給部32および第2クロック供給部22を備える。そして、プロセッサシステム100は、電源供給部31,32の中からプロセッサ10に動作電源を供給する1つの電源供給部を選択する電源用スイッチ部30と、クロック供給部21,22の中からプロセッサ10に動作クロックを供給する1つのクロック供給部を選択するクロック用スイッチ部20とを備える。各スイッチ部20,30は、例えばマルチプレクサ(MUX)により構成され、GPOS実行時には、プロセッサ10に第1仮想マシンVM1用の第1電源供給部31および第1クロック供給部21を接続する一方、RTOS実行時には、プロセッサ10に第2仮想マシンVM2用の第2電源供給部32および第2クロック供給部22を接続する。そして、仮想マシン管理部18は、プロセッサ10の動作状態に応じて、各電源供給部31,32の電圧と、各クロック供給部21,22の周波数とを、個別に制御する。すなわち、仮想マシン管理部18による各電源供給部31,32の電圧制御ポリシーは互いに干渉せず、かつ、仮想マシン管理部18による各クロック供給部21,22の周波数制御ポリシーは互いに干渉しない。
一般に、GPOS実行時には、処理の高速性が求められない場合があるため、プロセッサ10の動作電圧および動作周波数を下げることによって、プロセッサ10の消費エネルギーを大きく低減することができる。一方、RTOS実行時には、リアルタイム性確保の観点から処理の高速性が求められるため、動作電圧および動作周波数を下げることによる消費エネルギー低減余地は大きくない。本実施形態のプロセッサシステム100では、GPOSおよびRTOSの特性を踏まえ、仮想マシン管理部18が各電源供給部31,32および各クロック供給部21,22について独立してDVFS等の消費エネルギー低減制御を行うことにより、RTOSのリアルタイム性を確保しつつ、プロセッサ10の消費エネルギーを効果的に低減することができる。以下、本実施形態のプロセッサシステム100について、さらに具体的に説明する。
図3は、本実施形態のプロセッサシステム100のハードウェア構成を示す説明図である。図3に示すように、プロセッサシステム100は、プロセッサ10としてのCPUを備える。また、プロセッサシステム100は、第1仮想マシンVM1用の第1電源供給部31と、第2仮想マシンVM2用の第2電源供給部32と、複数の電源供給部31,32の中からプロセッサ10に動作電源を供給する1つの電源供給部を選択する電源用スイッチ部30とを備える。各電源供給部31,32は、例えば、DC-DCコンバータを含んでおり、プロセッサ10に電圧可変の動作電源を供給する。本願の明細書および図面では、各電源供給部31,32を「DC-DC」と表記することがある。各電源供給部31,32から供給される電源の電圧は、仮想マシン管理部18(図1)によって個別に制御される。すなわち、仮想マシン管理部18は、プロセッサ10の動作状態に応じて予め各電源供給部31,32の電源電圧を調整しておき、プロセッサ10上で動作する第1仮想マシンVM1と第2仮想マシンVM2との間の切り替えの際に、電源用スイッチ部30を用いてプロセッサ10に動作電源を供給する電源供給部を瞬時に(例えば、1マイクロ秒程度以下の時間で)切り替える。これにより、プロセッサ10に供給される動作電源の電圧を、いずれの仮想マシンVM1,VM2がプロセッサ10上で動作しているかに応じた適切な値に、遅滞なく切り替えることができる。なお、図3の例では、第1仮想マシンVM1用の第1電源供給部31の供給電圧は比較的低く、第2仮想マシンVM2用の第2電源供給部32の供給電圧は比較的高くなっている。ただし、電圧の高低関係はこれに限られない。
また、プロセッサシステム100は、第1仮想マシンVM1用の第1クロック供給部21と、第2仮想マシンVM2用の第2クロック供給部22と、複数のクロック供給部21,22の中からプロセッサ10に動作クロックを供給する1つのクロック供給部を選択するクロック用スイッチ部20とを備える。各クロック供給部21,22は、位相同期ループ回路(Phase Locked Loop 回路、以下、「PLL回路」という。)を含んでおり、プロセッサ10に周波数可変の動作クロックを供給する。本願の明細書および図面では、各クロック供給部21,22を「PLL」と表記することがある。各クロック供給部21,22は、さらに、周波数分周回路を含んでいてもよい。各クロック供給部21,22から供給されるクロックの周波数は、仮想マシン管理部18(図1)によって個別に制御される。すなわち、仮想マシン管理部18は、プロセッサ10の動作状態に応じて予め各クロック供給部21,22のクロック周波数を調整しておき、プロセッサ10上で動作する第1仮想マシンVM1と第2仮想マシンVM2との間の切り替えの際に、クロック用スイッチ部20を用いてプロセッサ10にクロックを供給するクロック供給部を瞬時に(例えば、1マイクロ秒程度以下の時間で)切り替える。これにより、プロセッサ10に供給される動作クロックの周波数を、いずれの仮想マシンVM1,VM2がプロセッサ10上で動作しているかに応じた適切な値に、遅滞なく切り替えることができる。なお、図3の例では、第1仮想マシンVM1用の第1クロック供給部21の供給クロックの周波数は比較的低く、第2仮想マシンVM2用の第2クロック供給部22の供給クロックの周波数は比較的高くなっている。ただし、クロック周波数の高低関係はこれに限られない。また、図3の例では、プロセッサ10とクロック供給部21,22とが同一のチップ90上に実装されているが、さらに電源供給部31,32が該チップ90上に実装されていてもよい。
図4は、ソフトウェアの視点から見た本実施形態のプロセッサシステム100の構成を示す説明図である。図4に示すように、ソフトウェアの視点からは、プロセッサシステム100に、互いに分離されたGPOS用の第1仮想マシンVM1として機能するプロセッサ10と、RTOS用の第2仮想マシンVM2として機能するプロセッサ10とが、仮想的に存在しているように見える。そして、第1仮想マシンVM1と第2仮想マシンVM2とのそれぞれが、独立して設けられた電源供給部31,32およびクロック供給部21,22から供給される動作電源および動作クロックに従い動作する。なお、本実施形態のプロセッサシステム100では、RTOS用の第2仮想マシンVM2が優先的に動作し、RTOS用の第2仮想マシンVM2がアイドル状態にあるときだけ、GPOS用の第1仮想マシンVM1が動作することができる。
図5は、本実施形態のプロセッサシステム100の構成を概念的に示す説明図である。図5に示すように、本実施形態のプロセッサシステム100では、1つの物理的なプロセッサ10が仮想マシン管理プログラム50を実行することにより、GPOSを実行する第1仮想マシンVM1と、RTOSを実行する第2仮想マシンVM2と、の間を仮想的に切り替わるように機能する。また、プロセッサシステム100は、第1仮想マシンVM1用の第1電源供給部31および第1クロック供給部21と、第2仮想マシンVM2用の第2電源供給部32および第2クロック供給部22とを備える。仮想マシン管理プログラム50を実行するプロセッサ10により実現される仮想マシン管理部18(図1)は、プロセッサ10の動作状態に応じて、各電源供給部31,32の電圧と各クロック供給部21,22の周波数とを、個別に制御する。
なお、図5の例では、プロセッサシステム100は、さらに、第1仮想マシンVM1用の第1基板バイアス供給部41と、第2仮想マシンVM2用の第2基板バイアス供給部42とを備える。各基板バイアス供給部41,42は、例えば、チャージポンプを含んでおり、プロセッサ10に可変の基板バイアスを供給する。本願の明細書および図面では、各基板バイアス供給部41,42を「チャージポンプ」と表記することがある。また、図5の例では、プロセッサシステム100は、プロセッサ10に基板バイアスを供給する1つの基板バイアス供給部を選択する基板バイアス用スイッチ部40を備える。図5の例では、仮想マシン管理部18(図1)は、プロセッサ10の動作状態に応じて、各電源供給部31,32の電圧および各クロック供給部21,22の周波数に加えて、各基板バイアス供給部41,42の基板バイアスを個別に制御する。なお、基板バイアスを変更することによりプロセッサの閾値電圧が変更される。すなわち、図5の例では、プロセッサ10の動作状態に応じて、プロセッサ10の動作電圧、動作周波数および閾値電圧を動的に変更する最小エネルギー点トラッキング(Minimum Energy Point Tracking、以下、「MEPT」という。)と呼ばれる消費エネルギーの低減手法を実現することができる。
A-2.プロセッサシステム100において実行される消費エネルギー低減制御:
次に、本実施形態のプロセッサシステム100において実行される消費エネルギー低減制御の一例について説明する。図6から図8は、本実施形態のプロセッサシステム100において実行される消費エネルギー低減制御の一例を示す説明図である。図6から図8には、プロセッサシステム100の1つのシステム周期におけるプロセッサ10の動作電圧および動作クロック周波数の時間推移が概念的に示されている。上述したように、本実施形態のプロセッサシステム100においては、RTOS用の第2仮想マシンVM2が優先的に動作し、RTOS用の第2仮想マシンVM2がアイドル状態にあるときだけ、GPOS用の第1仮想マシンVM1が動作することができる。そのため、仮想マシン管理部18(図1)は、各システム周期において、プロセッサ10を第2仮想マシンVM2として機能させた後に、プロセッサ10を第1仮想マシンVM1として機能させる。すなわち、プロセッサ10は、各システム周期の開始時刻から、第2仮想マシンVM2としてRTOS上のタスク(以下、「RTタスク」という。)の実行を開始する。各RTタスクには、リアルタイム性確保の観点から、最悪実行時間(Worst-Case Execution Time、以下、「WCET」という。)が設定されており、RTタスクは、処理開始時からWCETが経過した時刻であるデッドラインDLまでに完了する必要がある。プロセッサ10は、RTタスクの終了後、第1仮想マシンVM1としてGPOS上のタスク(以下、「GPタスク」という。)の実行を開始する。各システム周期においてGPタスクが終了した後、システム周期終了時刻まで、プロセッサ10はアイドル状態となり、次のシステム周期の開始時刻から次のRTタスクを実行する。このように、本実施形態のプロセッサシステム100では、例えばARINC 653によって規定されている時間パーティショニングにより、RTOS用の第2仮想マシンVM2とGPOS用の第1仮想マシンVM1との切り替えが行われる。なお、各タスクは、各OS上で動作するアプリケーションの断片(処理の一部)である。
次に、本実施形態のプロセッサシステム100において実行される消費エネルギー低減制御の一例について説明する。図6から図8は、本実施形態のプロセッサシステム100において実行される消費エネルギー低減制御の一例を示す説明図である。図6から図8には、プロセッサシステム100の1つのシステム周期におけるプロセッサ10の動作電圧および動作クロック周波数の時間推移が概念的に示されている。上述したように、本実施形態のプロセッサシステム100においては、RTOS用の第2仮想マシンVM2が優先的に動作し、RTOS用の第2仮想マシンVM2がアイドル状態にあるときだけ、GPOS用の第1仮想マシンVM1が動作することができる。そのため、仮想マシン管理部18(図1)は、各システム周期において、プロセッサ10を第2仮想マシンVM2として機能させた後に、プロセッサ10を第1仮想マシンVM1として機能させる。すなわち、プロセッサ10は、各システム周期の開始時刻から、第2仮想マシンVM2としてRTOS上のタスク(以下、「RTタスク」という。)の実行を開始する。各RTタスクには、リアルタイム性確保の観点から、最悪実行時間(Worst-Case Execution Time、以下、「WCET」という。)が設定されており、RTタスクは、処理開始時からWCETが経過した時刻であるデッドラインDLまでに完了する必要がある。プロセッサ10は、RTタスクの終了後、第1仮想マシンVM1としてGPOS上のタスク(以下、「GPタスク」という。)の実行を開始する。各システム周期においてGPタスクが終了した後、システム周期終了時刻まで、プロセッサ10はアイドル状態となり、次のシステム周期の開始時刻から次のRTタスクを実行する。このように、本実施形態のプロセッサシステム100では、例えばARINC 653によって規定されている時間パーティショニングにより、RTOS用の第2仮想マシンVM2とGPOS用の第1仮想マシンVM1との切り替えが行われる。なお、各タスクは、各OS上で動作するアプリケーションの断片(処理の一部)である。
図6に示す例では、RTタスクがデッドラインDLまでに完了するように設定された比較的高い動作電圧および動作周波数で第2仮想マシンVM2としてのプロセッサ10を動作させることによってRTタスクを実行し、RTタスクの終了後、デッドラインDLの到来を待って、第1仮想マシンVM1としてのプロセッサ10を動作させることによってGPタスクを実行する。このとき、GPタスクを実行する第1仮想マシンVM1としてのプロセッサ10を比較的低い動作電圧および動作周波数で動作させることにより、プロセッサ10の消費エネルギーを低減することができる。
図7に示す例では、RTタスクがデッドラインDLまでに完了するように設定された比較的高い動作電圧および動作周波数で第2仮想マシンVM2としてのプロセッサ10を動作させることによってRTタスクを実行し、RTタスクの終了後、即座に(すなわち、RTタスクのデッドラインDLの到来を待たずに)、第1仮想マシンVM1としてのプロセッサ10を動作させることによってGPタスクを実行する。すなわち、RTタスクの終了時からデッドラインDLまでの期間であるスラックSLにおいても、第1仮想マシンVM1としてのプロセッサ10は、GPタスクを実行する。そのため、図7に示す例では、GPタスクを実行する第1仮想マシンVM1としてのプロセッサ10をより低い動作電圧および動作周波数で動作させることができ、プロセッサ10の消費エネルギーをより効果的に低減することができる。
図8に示す例では、RTタスクがデッドラインDLまでに完了するように設定された動作電圧および動作周波数と比較して、より高い動作電圧および動作周波数で第2仮想マシンVM2としてのプロセッサ10を動作させることによってRTタスクを実行する。これにより、RTタスクの終了時刻を、図7に示す例より早めることができる。RTタスクの終了後、即座に(すなわち、RTタスクのデッドラインDLの到来を待たずに)、第1仮想マシンVM1としてのプロセッサ10を動作させることによってGPタスクを実行する。図8において破線で示すように、RTタスクの実行時に、RTタスクがデッドラインDLまでに完了する最低の動作電圧および動作周波数でプロセッサ10を動作させた場合には、RTタスクの終了後にGPタスクを実行する際に、プロセッサ10の動作電圧および動作周波数を、RTタスク実行時より高くする必要がある。一方、図8に実線で示す例のように、RTタスクの実行時にあえて高い動作電圧および動作周波数でプロセッサ10を動作させ、RTタスクの終了時刻を早めることにより、GPOSタスクの実行時間としてより長い時間を確保し、GPOSタスク実行時のプロセッサ10の動作電圧および動作周波数をRTタスク実行時と略同一とすることができる。これにより、RTタスク実行時からGPOSタスク実行時にかけて、プロセッサ10の動作電圧および動作周波数を略一定にすることができ、プロセッサ10の消費エネルギーを極めて効果的に低減することができる。
A-3.本実施形態の効果:
以上説明したように、本実施形態のプロセッサシステム100は、プロセッサ10と、複数の電源供給部31,32と、複数のクロック供給部21,22と、電源用スイッチ部30と、クロック用スイッチ部20と、仮想マシン管理部18とを備える。プロセッサ10は、汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンVM1と、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンVM2と、の間を仮想的に切り替わるように機能する。複数の電源供給部31,32は、プロセッサ10に電圧可変の動作電源を供給する。複数の電源供給部31,32は、第1仮想マシンVM1の動作用である第1電源供給部31と、第2仮想マシンVM2の動作用である第2電源供給部32とを含む。複数のクロック供給部21,22は、プロセッサ10に周波数可変の動作クロックを供給する。複数のクロック供給部21,22は、第1仮想マシンVM1の動作用である第1クロック供給部21と、第2仮想マシンVM2の動作用である第2クロック供給部22とを含む。電源用スイッチ部30は、複数の電源供給部31,32から、プロセッサ10に動作電源を供給する1つの電源供給部31,32を選択する。クロック用スイッチ部20は、複数のクロック供給部21,22から、プロセッサ10に動作クロックを供給する1つのクロック供給部21,22を選択する。仮想マシン管理部18は、プロセッサ10上で動作する第1仮想マシンVM1と第2仮想マシンVM2とを仮想的に切り替える。また、仮想マシン管理部18、プロセッサ10の動作状態に応じて、複数の電源供給部31,32のそれぞれの電圧と、複数のクロック供給部21,22のそれぞれの周波数とを、個別に制御する。
以上説明したように、本実施形態のプロセッサシステム100は、プロセッサ10と、複数の電源供給部31,32と、複数のクロック供給部21,22と、電源用スイッチ部30と、クロック用スイッチ部20と、仮想マシン管理部18とを備える。プロセッサ10は、汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンVM1と、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンVM2と、の間を仮想的に切り替わるように機能する。複数の電源供給部31,32は、プロセッサ10に電圧可変の動作電源を供給する。複数の電源供給部31,32は、第1仮想マシンVM1の動作用である第1電源供給部31と、第2仮想マシンVM2の動作用である第2電源供給部32とを含む。複数のクロック供給部21,22は、プロセッサ10に周波数可変の動作クロックを供給する。複数のクロック供給部21,22は、第1仮想マシンVM1の動作用である第1クロック供給部21と、第2仮想マシンVM2の動作用である第2クロック供給部22とを含む。電源用スイッチ部30は、複数の電源供給部31,32から、プロセッサ10に動作電源を供給する1つの電源供給部31,32を選択する。クロック用スイッチ部20は、複数のクロック供給部21,22から、プロセッサ10に動作クロックを供給する1つのクロック供給部21,22を選択する。仮想マシン管理部18は、プロセッサ10上で動作する第1仮想マシンVM1と第2仮想マシンVM2とを仮想的に切り替える。また、仮想マシン管理部18、プロセッサ10の動作状態に応じて、複数の電源供給部31,32のそれぞれの電圧と、複数のクロック供給部21,22のそれぞれの周波数とを、個別に制御する。
このように、本実施形態のプロセッサシステム100は、第1仮想マシンVM1の動作用である第1電源供給部31および第1クロック供給部21と、第2仮想マシンVM2の動作用である第2電源供給部32および第2クロック供給部22とを備え、電源用スイッチ部30が、プロセッサ10に動作電源を供給する1つの電源供給部31,32を選択し、クロック用スイッチ部20が、プロセッサ10に動作クロックを供給する1つのクロック供給部21,22を選択する。また、仮想マシン管理部18は、プロセッサ10の動作状態に応じて、複数の電源供給部31,32のそれぞれの電圧と、複数のクロック供給部21,22のそれぞれの周波数とを、個別に制御する。そのため、本実施形態のプロセッサシステム100では、GPOSを実行する第1仮想マシンVM1動作時の電源電圧およびクロック周波数と、RTOSを実行する第2仮想マシンVM2動作時の電源電圧およびクロック周波数とを、一方が他方へ影響を及ぼすことなく、互いに独立して制御することができる。例えば、GPOSを実行する第1仮想マシンVM1の動作時に、プロセッサ10の消費エネルギーを低減するために第1電源供給部31における電圧を低下させても、その後にRTOSを実行する第2仮想マシンVM2の動作に切り替わったときに、電源用スイッチ部30を用いてプロセッサ10に接続される電源供給部を第1電源供給部31から第2電源供給部32に瞬時に切り替えることができ、その結果、第2仮想マシンVM2は第1電源供給部31の電圧に影響を受けることなく、RTOSのリアルタイム性を確保するために電圧が適切に設定された第2電源供給部32から供給される動作電源により動作することができ、RTOSのリアルタイム性が損なわれることを回避することができる。従って、本実施形態のプロセッサシステム100によれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、RTOSのリアルタイム性を確保しつつ、プロセッサ10の消費エネルギーを低減することができる。
また、本実施形態のプロセッサシステム100は、さらに、複数の基板バイアス供給部41,42と、基板バイアス用スイッチ部40とを備える。複数の基板バイアス供給部41,42は、プロセッサ10における回路の閾値電圧を可変に設定する。複数の基板バイアス供給部41,42は、第1仮想マシンVM1の動作用である第1基板バイアス供給部41と、第2仮想マシンVM2の動作用である第2基板バイアス供給部42とを含む。基板バイアス用スイッチ部40は、複数の基板バイアス供給部41,42から、プロセッサ10に基板バイアスを供給する1つの基板バイアス供給部41,42を選択する。仮想マシン管理部18は、プロセッサ10の動作状態に応じて、複数の基板バイアス供給部41,42のそれぞれの基板バイアスを個別に制御する。このように、本実施形態のプロセッサシステム100は、さらに、第1仮想マシンVM1の動作用である第1基板バイアス供給部41と、第2仮想マシンVM2の動作用である第2基板バイアス供給部42とを備え、基板バイアス用スイッチ部40が、プロセッサ10に基板バイアスを供給する1つの基板バイアス供給部41,42を選択する。また、仮想マシン管理部18は、プロセッサ10の動作状態に応じて、複数の基板バイアス供給部41,42のそれぞれの基板バイアスを個別に制御する。なお、基板バイアスを変更することによりプロセッサの閾値電圧が変更される。そのため、本実施形態のプロセッサシステム100では、GPOSを実行する第1仮想マシンVM1動作時の閾値電圧と、RTOSを実行する第2仮想マシンVM2動作時の閾値電圧とを、一方が他方へ影響を及ぼすことなく、互いに独立して制御することができる。従って、本実施形態のプロセッサシステム100によれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、RTOSのリアルタイム性を確保しつつ、閾値電圧を調整することにより、プロセッサ10の消費エネルギーを効果的に低減することができる。
また、本実施形態のプロセッサシステム100では、仮想マシン管理部18は、各システム周期において、プロセッサ10を、RTOSを実行する第2仮想マシンVM2として機能させた後に、プロセッサ10を、GPOSを実行する第1仮想マシンVM1として機能させる。従って、本実施形態のプロセッサシステム100によれば、各システム周期においてRTOS上のRTタスクを先に行うことにより、RTOSのリアルタイム性を十分に確保しつつ、プロセッサ10の消費エネルギーを低減することができる。
また、本実施形態のプロセッサシステム100において、仮想マシン管理部18は、各システム周期において、第2仮想マシンVM2によるRTOS上のRTタスク終了後、該RTタスクのデッドラインDLの到来を待たずに、プロセッサ10を第1仮想マシンVM1として機能させてもよい。このようにすれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、GPOS上のGPタスクの実行時間を長くとることができ、GPタスクを実行する第1仮想マシンVM1をより低い動作電圧および動作周波数で動作させることによって第1仮想マシンVM1動作時の消費エネルギーをより効果的に低減することができ、プロセッサ10の消費エネルギーをより効果的に低減することができる。
また、本実施形態のプロセッサシステム100において、仮想マシン管理部18は、各システム周期において、GPOSを実行する第1仮想マシンVM1用の第1電源供給部31の電圧を、RTOSを実行する第2仮想マシンVM2用の第2電源供給部32の電圧より低く設定するとしてもよい。このようにすれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、第1仮想マシンVM1動作時の消費エネルギーをより効果的に低減することができ、プロセッサ10の消費エネルギーをより効果的に低減することができる。
また、本実施形態のプロセッサシステム100において、仮想マシン管理部18は、各システム周期において、第1仮想マシンVM1用の第1電源供給部31の電圧と第2仮想マシンVM2用の第2電源供給部32の電圧とを略同一の値に設定するとしてもよい。このようにすれば、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、RTOS上のRTタスクの実行時にあえて高い動作電圧および動作周波数でプロセッサ10を動作させ、RTタスクの終了時刻を早めることにより、GPOSタスクの実行時間としてより長い時間を確保し、GPOSタスク実行時のプロセッサ10の動作電圧および動作周波数をRTタスク実行時と略同一とすることができる。これにより、RTタスク実行時からGPOSタスク実行時にかけて、プロセッサ10の動作電圧および動作周波数を略一定にすることができ、プロセッサ10の消費エネルギーを極めて効果的に低減することができる。
B.第2実施形態:
図9は、第2実施形態におけるプロセッサシステム100aの構成を概念的に示す説明図である。以下では、第2実施形態のプロセッサシステム100aの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
図9は、第2実施形態におけるプロセッサシステム100aの構成を概念的に示す説明図である。以下では、第2実施形態のプロセッサシステム100aの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
第2実施形態のプロセッサシステム100aは、プロセッサ10aの構成の点が、第1実施形態のプロセッサシステム100と異なる。具体的には、第2実施形態のプロセッサシステム100aにおけるプロセッサ10aは、複数の(3個の)コア11,12,13を有する。複数のコア11,12,13のうち、第1コア11は、比較的処理能力の高いビッグコアであり、第2コア12および第3コア13は、比較的処理能力の低いスモールコアである。GPOSを実行する第1仮想マシンVM1およびRTOSを実行する第2仮想マシンVM2のそれぞれは、プロセッサ10aを構成する少なくとも1つのコアにより実現される。
第2実施形態のプロセッサシステム100aにおいても、複数のコア11,12,13を有するプロセッサ10aは、GPOSを実行する第1仮想マシンVM1と、RTOSを実行する第2仮想マシンVM2と、の間を仮想的に切り替わるように機能する。また、第2実施形態のプロセッサシステム100aは、第1実施形態のプロセッサシステム100と同様に、複数の電源供給部31,32と、複数のクロック供給部21,22と、電源用スイッチ部30と、クロック用スイッチ部20と、仮想マシン管理部18とを備える。そのため、第2実施形態のプロセッサシステム100aによれば、第1実施形態のプロセッサシステム100と同様に、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10aにおいて、RTOSのリアルタイム性を確保しつつ、消費エネルギーを低減することができる。
C.第3実施形態:
図10は、第3実施形態におけるプロセッサシステム100bの構成を概念的に示す説明図である。以下では、第3実施形態のプロセッサシステム100bの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
図10は、第3実施形態におけるプロセッサシステム100bの構成を概念的に示す説明図である。以下では、第3実施形態のプロセッサシステム100bの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
第3実施形態のプロセッサシステム100bは、各電源供給部31,32、各クロック供給部21,22および各基板バイアス供給部41,42の利用態様の点が、第1実施形態のプロセッサシステム100と異なる。具体的には、第3実施形態のプロセッサシステム100bでは、第2電源供給部32、第2クロック供給部22および第2基板バイアス供給部42は、RTOSを実行する第2仮想マシンVM2の動作専用である。一方、第1電源供給部31、第1クロック供給部21および第1基板バイアス供給部41は、GPOSを実行する第1仮想マシンVM1の動作用であるが、第2仮想マシンVM2の動作用としても利用される。すなわち、仮想マシン管理部18(またはRTOS)は、第2仮想マシンVM2実行時のプロセッサ10の動作状態に応じて、第2仮想マシンVM2の動作用の電源供給部、クロック供給部および基板バイアス供給部として、第2仮想マシンVM2専用である第2電源供給部32、第2クロック供給部22および第2基板バイアス供給部42を利用するか、または、第1仮想マシンVM1との共用である第1電源供給部31、第1クロック供給部21および第1基板バイアス供給部41を利用するかを選択する。
例えば、第1電源供給部31、第1クロック供給部21および第1基板バイアス供給部41の状態(電源電圧、クロック周波数、基板バイアス)が、RTOSを実行する第2仮想マシンVM2の動作要件を満たすものであれば、GPOSを実行する第1仮想マシンVM1から第2仮想マシンVM2への切り替えの際に、電源供給部、クロック供給部および基板バイアス供給部の切り替えを行わず、第1電源供給部31、第1クロック供給部21および第1基板バイアス供給部41をそのまま利用する。一方、第1電源供給部31、第1クロック供給部21および第1基板バイアス供給部41の状態がRTOSを実行する第2仮想マシンVM2の動作要件を満たさない場合には、GPOSを実行する第1仮想マシンVM1から第2仮想マシンVM2への切り替えの際に、第2仮想マシンVM2専用である第2電源供給部32、第2クロック供給部22および第2基板バイアス供給部42に切り替える。
第3実施形態のプロセッサシステム100bは、第1実施形態のプロセッサシステム100と同様に、プロセッサ10と、複数の電源供給部31,32と、複数のクロック供給部21,22と、電源用スイッチ部30と、クロック用スイッチ部20と、仮想マシン管理部18とを備える。そのため、第3実施形態のプロセッサシステム100bによれば、第1実施形態のプロセッサシステム100と同様に、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、RTOSのリアルタイム性を確保しつつ、消費エネルギーを低減することができる。
D.第4実施形態:
図11は、第4実施形態におけるプロセッサシステム100cの構成を概念的に示す説明図である。以下では、第4実施形態のプロセッサシステム100cの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
図11は、第4実施形態におけるプロセッサシステム100cの構成を概念的に示す説明図である。以下では、第4実施形態のプロセッサシステム100cの構成の内、上述した第1実施形態のプロセッサシステム100と同一の構成については、同一の符号を付すことによってその説明を適宜省略する。
第4実施形態のプロセッサシステム100cは、プロセッサ10cの構成の点が、第1実施形態のプロセッサシステム100と異なる。具体的には、第4実施形態のプロセッサシステム100cにおけるプロセッサ10cは、複数の(6個の)コア11,12,13,14,15,16を有する。複数のコア11,12,13,14,15,16のうち、第1コア11、第2コア12、第3コア13および第4コア14は、比較的処理能力の低いスモールコアであり、第5コア15および第6コア16は、比較的処理能力の高いビッグコアである。また、複数のコア11,12,13,14,15,16のうち、第1コア11および第2コア12は、GPOSを実行する第1仮想マシンVM1の専用であり、第3コア13、第4コア14および第6コア16は、RTOSを実行する第2仮想マシンVM2の専用である。一方、第5コア15は、GPOSを実行する第1仮想マシンVM1と、RTOSを実行する第2仮想マシンVM2とで共用される。
例えば、プロセッサ10cの第1コア11、第2コア12および第5コア15により、GPOSを実行する第1仮想マシンVM1が実現され、プロセッサ10cの第3コア13、第4コア14、第6コア16および第5コア15により、RTOSを実行する第2仮想マシンVM2が実現される。このとき、例えば、GPOSを実行する第1仮想マシンVM1動作時には、第1コア11、第2コア12および第5コア15のすべてについて、DVFS等による積極的な消費エネルギー低減手法が採られ、RTOSを実行する第2仮想マシンVM2動作時には、第3コア13、第4コア14、第6コア16および第5コア15のうち、第5コア15について、DVFS等による積極的な消費エネルギー低減手法が採られるとしてもよい。
第4実施形態のプロセッサシステム100cは、第1実施形態のプロセッサシステム100と同様に、プロセッサ10と、複数の電源供給部31,32と、複数のクロック供給部21,22と、電源用スイッチ部30と、クロック用スイッチ部20と、仮想マシン管理部18とを備える。そのため、第4実施形態のプロセッサシステム100cによれば、第1実施形態のプロセッサシステム100と同様に、仮想化技術を用いてRTOSとGPOSとを切り替えて実行するプロセッサ10において、RTOSのリアルタイム性を確保しつつ、消費エネルギーを低減することができる。
E.性能評価:
E-1.プロセッサ10の消費エネルギー低減について:
プロセッサ10の消費エネルギー低減の観点で実施した性能評価について説明する。本性能評価では、プロセッサシステム100が備えるプロセッサ10として、NXP社のi.MX RT685を用いた。図12は、プロセッサ10の仕様を示すテーブルである。図12には、i.MX RT685のデータシートから引用した電源電圧VDDおよび動作周波数fの最大値と、ベンチマークプログラムであるCoreMark実行時の実測した平均消費エネルギーEが示されている。
E-1.プロセッサ10の消費エネルギー低減について:
プロセッサ10の消費エネルギー低減の観点で実施した性能評価について説明する。本性能評価では、プロセッサシステム100が備えるプロセッサ10として、NXP社のi.MX RT685を用いた。図12は、プロセッサ10の仕様を示すテーブルである。図12には、i.MX RT685のデータシートから引用した電源電圧VDDおよび動作周波数fの最大値と、ベンチマークプログラムであるCoreMark実行時の実測した平均消費エネルギーEが示されている。
また、図13は、あるシステム周期におけるプロセッサ10の動作条件の一例を示すテーブルである。図13には、1つの動作条件(以下、「基本動作条件」という。)として、システム周期Tと、RTタスクの実行時間TRTの上限(すなわち、処理開始時からデッドラインDLまでの時間)と、RTタスクの実際の実行時間TRTと、GPタスクの実際の実行時間TGPと、RTOSを実行する第2仮想マシンVM2の動作周波数fRTと、GPOSを実行する第1仮想マシンVM1の動作周波数fGPと、該システム周期におけるプロセッサ10の総消費エネルギーとが示されている。
図13に示す基本動作条件から、消費エネルギー低減のために、RTOSを実行する第2仮想マシンVM2の動作周波数fRTを変更することを考えたとき(以下、変更後の動作周波数fRTを動作周波数fRT’と表す。他のパラメータについても同様。)、変更後の動作周波数fRT’に対応するRTタスクの実際の実行時間TRT’(=fRT・TRT/fRT’)がRTタスクの実行時間TRTの上限(=6ミリ秒)未満となるのは、図12に示す動作周波数fのうち、210MHz以上の周波数である。そのため、変更後の動作条件の候補としては、図14に示す3つの動作条件C1~C3が挙げられる。図14には、変更後の各動作条件について、RTOSを実行する第2仮想マシンVM2の動作周波数fRT’と、RTタスクの実際の実行時間TRT’と、GPOSを実行する第1仮想マシンVM1の動作周波数fGPの下限と、変更後の動作周波数fGP’と、プロセッサ10の総消費エネルギーと、図13に示す基本動作条件時の総消費エネルギー(=490μJ)からの消費エネルギー削減率とが示されている。
図14を参照すると、動作条件C2において、消費エネルギー削減率が最も高くなっている。すなわち、消費エネルギー低減の観点からの最適な動作周波数fRT’および動作周波数fGP’の組合せは、単純にどちらか一方を最も速い値にしたり最も遅い値にしたりすることでは得られないことがわかる。動作条件C2では、基本動作条件、すなわち、動作周波数fRTと動作周波数fGPとの両方を最高速(=300MHz)にした場合と比較して、消費エネルギーを27.8%削減することができた。
なお、図14に示す各動作条件では、RTタスクの実際の実行時間TRT’が最悪実行時間WCETであるとしているが、仮に、平均実行時間がこの1/2であると仮定した場合の動作条件を考えると、図15に示す通りとなる。すなわち、図15に示す動作条件C4~C6は、それぞれ、図14に示す動作条件C1~C3について、RTタスクの実際の実行時間TRT’を1/2にしたものである。図15に示すように、動作条件C4およびC5では、動作条件C1およびC2に対して、GPOSを実行する第1仮想マシンVM1の動作周波数fGP’をさらに低くすることができ、その結果、消費エネルギーをさらに効果的に削減できた。
E-2.電源電圧の切り替え時間について:
プロセッサ10に供給される電源電圧の切り替え時間の観点から実施した性能評価について説明する。図16は、本性能評価に用いた回路構成を示す説明図である。本性能評価では、プロセッサ(マイクロコントローラ(μC))としてNXP社のi.MX RT685を用い、DC-DCコンバータとしてアナログ・デバイセズ社のLTC3542を用い、デジタル・ポテンショメータとしてアナログ・デバイセズ社のAD5160を用い、アナログマルチプレクサとして同社のADG839を用い、電源管理ICとしてNXP社のPCA9420を用いた。
プロセッサ10に供給される電源電圧の切り替え時間の観点から実施した性能評価について説明する。図16は、本性能評価に用いた回路構成を示す説明図である。本性能評価では、プロセッサ(マイクロコントローラ(μC))としてNXP社のi.MX RT685を用い、DC-DCコンバータとしてアナログ・デバイセズ社のLTC3542を用い、デジタル・ポテンショメータとしてアナログ・デバイセズ社のAD5160を用い、アナログマルチプレクサとして同社のADG839を用い、電源管理ICとしてNXP社のPCA9420を用いた。
デジタル・ポテンショメータAD5160により、DC-DCコンバータLTC3542の出力電圧を制御し、この出力電圧をRTOS用の電源電圧VRTとした。また、電源管理IC PCA9420からの出力電圧をGPOS用の電源電圧VGPとした。プロセッサi.MX RT685の電源電圧VCOREには、アナログマルチプレクサADG839を介して、RTOS用の電源電圧VRTとGPOS用の電源電圧VGPとの一方が供給される。アナログマルチプレクサADG839は、プロセッサi.MX RT685から出力される制御信号VSWに従い制御される。
この回路において、プロセッサi.MX RT685にGPOS用の電源電圧VGP=1.0V(動作周波数275MHz)が供給された状態から、アナログマルチプレクサADG839により、プロセッサi.MX RT685にRTOS用の電源電圧VRT=1.13V(動作周波数275MHz)が供給された状態に切り替えた。図17は、切り替え前後の各信号波形を示す説明図である。図17に示すように、時刻t=0において制御信号VSWによりアナログマルチプレクサADG839の状態を切り替えると、1マイクロ秒程度以内でプロセッサi.MX RT685の電源電圧VCOREが目標電圧である1.13Vに安定的に変化している。この性能評価結果によれば、アナログマルチプレクサ等から構成される電源用スイッチ部によりプロセッサに電源を供給する電源供給部を切り替えることにより、プロセッサの電源電圧を瞬時に(1マイクロ秒程度以内に)切り替えることができることが確認された。
F.変形例:
本明細書で開示される技術は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の形態に変形することができ、例えば次のような変形も可能である。
本明細書で開示される技術は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の形態に変形することができ、例えば次のような変形も可能である。
上記実施形態におけるプロセッサシステム100の構成は、あくまで一例であり、種々変形可能である。例えば、上記実施形態のプロセッサシステム100は、例えば組み込みシステム用のMCUであるとしているが、本明細書に開示される技術は、組み込みシステム用のMCUに限らず、他のプロセッサシステムにも同様に適用可能である。
上記実施形態では、プロセッサ10が2つの仮想マシンとして機能するとしているが、プロセッサ10が3以上の仮想マシンとして機能するとしてもよい。その場合において、プロセッサシステム100が、各仮想マシンの動作用の電源供給部、クロック供給部(および基板バイアス供給部)を備えるとしてもよい。
上記実施形態において、ハードウェアによって実現されている構成の一部をソフトウェアに置き換えるようにしてもよく、反対に、ソフトウェアによって実現されている構成の一部をハードウェアに置き換えるようにしてもよい。
上記実施形態におけるプロセッサ10の消費エネルギー低減制御の態様は、あくまで一例であり、種々変形可能である。例えば、上記実施形態では、DVFSまたはMEPTにより消費エネルギー低減制御を実行しているが、他の消費エネルギー低減制御手法を採用してもよい。
10:プロセッサ 18:仮想マシン管理部 20:クロック用スイッチ部 21:第1クロック供給部 22:第2クロック供給部 23:クロック供給部 30:電源用スイッチ部 31:第1電源供給部 32:第2電源供給部 33:電源供給部 40:基板バイアス用スイッチ部 41:第1基板バイアス供給部 42:第2基板バイアス供給部 50:仮想マシン管理プログラム 90:チップ 100:プロセッサシステム VM1:第1仮想マシン VM2:第2仮想マシン
Claims (8)
- プロセッサシステムであって、
汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンと、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンと、の間を仮想的に切り替わるように機能するプロセッサと、
前記プロセッサに電圧可変の動作電源を供給する複数の電源供給部であって、前記第1仮想マシンの動作用である第1電源供給部と、前記第2仮想マシンの動作用である第2電源供給部と、を含む複数の電源供給部と、
前記プロセッサに周波数可変の動作クロックを供給する複数のクロック供給部であって、前記第1仮想マシンの動作用である第1クロック供給部と、前記第2仮想マシンの動作用である第2クロック供給部と、を含む複数のクロック供給部と、
前記複数の電源供給部から、前記プロセッサに動作電源を供給する1つの前記電源供給部を選択する電源用スイッチ部と、
前記複数のクロック供給部から、前記プロセッサに動作クロックを供給する1つの前記クロック供給部を選択するクロック用スイッチ部と、
前記プロセッサ上で動作する前記第1仮想マシンと前記第2仮想マシンとを仮想的に切り替えると共に、前記プロセッサの動作状態に応じて、前記複数の電源供給部のそれぞれの電圧と、前記複数のクロック供給部のそれぞれのクロック周波数とを、個別に制御する仮想マシン管理部と、
を備える、
プロセッサシステム。 - 請求項1に記載のプロセッサシステムであって、さらに、
前記プロセッサにおける回路の閾値電圧を可変に設定する複数の基板バイアス供給部であって、前記第1仮想マシンの動作用である第1基板バイアス供給部と、前記第2仮想マシンの動作用である第2基板バイアス供給部と、を含む複数の基板バイアス供給部と、
前記複数の基板バイアス供給部から、前記プロセッサに基板バイアスを供給する1つの前記基板バイアス供給部を選択する基板バイアス用スイッチ部と、
を備え、
前記仮想マシン管理部は、前記プロセッサの動作状態に応じて、前記複数の基板バイアス供給部のそれぞれの基板バイアスを個別に制御する、
プロセッサシステム。 - 請求項1または請求項2に記載のプロセッサシステムであって、
前記仮想マシン管理部は、各システム周期において、前記プロセッサを前記第2仮想マシンとして機能させた後に、前記プロセッサを前記第1仮想マシンとして機能させる、
プロセッサシステム。 - 請求項3に記載のプロセッサシステムであって、
前記仮想マシン管理部は、各システム周期において、前記第2仮想マシンによるRTOS上のRTタスク終了後、前記RTタスクのデッドラインの到来を待たずに、前記プロセッサを前記第1仮想マシンとして機能させる、
プロセッサシステム。 - 請求項4に記載のプロセッサシステムであって、
前記仮想マシン管理部は、各システム周期において、前記第1電源供給部の電圧を前記第2電源供給部の電圧より低く設定する、
プロセッサシステム。 - 請求項4に記載のプロセッサシステムであって、
前記仮想マシン管理部は、各システム周期において、前記第1電源供給部の電圧と前記第2電源供給部の電圧とを略同一の値に設定する、
プロセッサシステム。 - 汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンと、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンと、の間を仮想的に切り替わるように機能するプロセッサと、
前記プロセッサに電圧可変の動作電源を供給する複数の電源供給部であって、前記第1仮想マシンの動作用である第1電源供給部と、前記第2仮想マシンの動作用である第2電源供給部と、を含む複数の電源供給部と、
前記プロセッサに周波数可変の動作クロックを供給する複数のクロック供給部であって、前記第1仮想マシンの動作用である第1クロック供給部と、前記第2仮想マシンの動作用である第2クロック供給部と、を含む複数のクロック供給部と、
前記複数の電源供給部から、前記プロセッサに動作電源を供給する1つの前記電源供給部を選択する電源用スイッチ部と、
前記複数のクロック供給部から、前記プロセッサに動作クロックを供給する1つの前記クロック供給部を選択するクロック用スイッチ部と、
を備えるプロセッサシステムの管理方法であって、
前記プロセッサ上で動作する前記第1仮想マシンと前記第2仮想マシンとを仮想的に切り替えると共に、前記プロセッサの動作状態に応じて、前記複数の電源供給部のそれぞれの電圧と、前記複数のクロック供給部のそれぞれのクロック周波数とを、個別に制御する工程を備える、
プロセッサシステムの管理方法。 - 汎用オペレーティングシステム(GPOS)を実行する第1仮想マシンと、リアルタイムオペレーティングシステム(RTOS)を実行する第2仮想マシンと、の間を仮想的に切り替わるように機能するプロセッサと、
前記プロセッサに電圧可変の動作電源を供給する複数の電源供給部であって、前記第1仮想マシンの動作用である第1電源供給部と、前記第2仮想マシンの動作用である第2電源供給部と、を含む複数の電源供給部と、
前記プロセッサに周波数可変の動作クロックを供給する複数のクロック供給部であって、前記第1仮想マシンの動作用である第1クロック供給部と、前記第2仮想マシンの動作用である第2クロック供給部と、を含む複数のクロック供給部と、
前記複数の電源供給部から、前記プロセッサに動作電源を供給する1つの前記電源供給部を選択する電源用スイッチ部と、
前記複数のクロック供給部から、前記プロセッサに動作クロックを供給する1つの前記クロック供給部を選択するクロック用スイッチ部と、
を備えるプロセッサシステムを管理するためのコンピュータプログラムであって、
前記プロセッサシステムに、前記プロセッサ上で動作する前記第1仮想マシンと前記第2仮想マシンとを仮想的に切り替えると共に、前記プロセッサの動作状態に応じて、前記複数の電源供給部のそれぞれの電圧と、前記複数のクロック供給部のそれぞれのクロック周波数とを、個別に制御する処理を実行させる、
コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021135353A JP2023030299A (ja) | 2021-08-23 | 2021-08-23 | プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021135353A JP2023030299A (ja) | 2021-08-23 | 2021-08-23 | プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023030299A true JP2023030299A (ja) | 2023-03-08 |
Family
ID=85414256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021135353A Pending JP2023030299A (ja) | 2021-08-23 | 2021-08-23 | プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023030299A (ja) |
-
2021
- 2021-08-23 JP JP2021135353A patent/JP2023030299A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5433837B2 (ja) | 仮想計算機システム、仮想計算機の制御方法及びプログラム | |
JP6289444B2 (ja) | 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置 | |
US9367340B2 (en) | Resource management method and apparatus for virtual machine system, and virtual machine system | |
US10031574B2 (en) | Apparatus and method for controlling multi-core processor of computing system | |
US10579132B2 (en) | System and method for performing distributed power management without power cycling hosts | |
US20120060168A1 (en) | Virtualization system and resource allocation method thereof | |
JPH0720968A (ja) | 電圧と周波数を動的に変更することによってコンピュータの消費電力を減少させる方法 | |
JP2012142019A (ja) | 駆動オーバーライドを備えた電圧レギュレータ | |
GB2376325A (en) | Inregrated circuit having dynamically adjustable clock signal frequency | |
US20130080809A1 (en) | Server system and power managing method thereof | |
US20110271124A1 (en) | Processor performance state optimization | |
EP3281085A1 (en) | Dynamic power routing to hardware accelerators | |
US20130007493A1 (en) | Computer system, method for controlling power of computer system, and recording medium for power control program | |
JP2023030299A (ja) | プロセッサシステム、プロセッサシステムの管理方法、および、コンピュータプログラム | |
US10157066B2 (en) | Method for optimizing performance of computationally intensive applications | |
US20090077290A1 (en) | Controller for processing apparatus | |
TW201610701A (zh) | 伺服器控制方法及機架控制器 | |
US10261882B2 (en) | Functional unit promotion to management unit | |
JP5768586B2 (ja) | 計算装置、計算装置の制御方法、及びプログラム | |
JP2019109600A (ja) | 情報処理装置、計算機制御方法、および計算機制御プログラム | |
US9201707B2 (en) | Distributed system, device, method, and program | |
JP2024514420A (ja) | 動的システム電力負荷管理 | |
CN1645293A (zh) | 电源管理的频率电压装置及频率电压控制的方法 | |
Tambe et al. | Virtual batching approach for green computing | |
CN110955321A (zh) | 一种IaaS宿主机节能的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20210823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20210823 |