JP5815524B2 - 仮想計算機システム、仮想計算機制御方法、及び集積回路 - Google Patents

仮想計算機システム、仮想計算機制御方法、及び集積回路 Download PDF

Info

Publication number
JP5815524B2
JP5815524B2 JP2012523514A JP2012523514A JP5815524B2 JP 5815524 B2 JP5815524 B2 JP 5815524B2 JP 2012523514 A JP2012523514 A JP 2012523514A JP 2012523514 A JP2012523514 A JP 2012523514A JP 5815524 B2 JP5815524 B2 JP 5815524B2
Authority
JP
Japan
Prior art keywords
processor
virtual machine
state
power
processors
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.)
Active
Application number
JP2012523514A
Other languages
English (en)
Other versions
JPWO2012004948A1 (ja
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.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to JP2012523514A priority Critical patent/JP5815524B2/ja
Publication of JPWO2012004948A1 publication Critical patent/JPWO2012004948A1/ja
Application granted granted Critical
Publication of JP5815524B2 publication Critical patent/JP5815524B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

本発明は、複数の仮想計算機を並列に実行する仮想計算機システムに関する。
複数のプロセッサを備え、それら複数のプロセッサを用いて複数の仮想計算機を並列に実行する仮想計算機システムが知られている(特許文献1参照)。
この種の仮想計算機システムにおいて、各仮想計算機は、1又は複数のプロセッサに割り当てられて実行される。
一方、プロセッサの数が仮想計算機の数よりも多いと、一部のプロセッサに仮想計算機が割り当てられないことがある。
また、複数のプロセッサを備える仮想計算機システムにおける消費電力を削減するための技術として、例えば、特許文献2、特許文献3に記載されている技術等が知られている。
特許文献2に記載されている技術は、仮想計算機システムにおいて、一部のプロセッサに仮想計算機が割り当てられていない場合に、そのプロセッサへの電源供給を遮断するというものであり、特許文献3に記載されている技術は、仮想計算機システムにおいて、仮想計算機が割り当てられていないプロセッサが存在する場合に、そのプロセッサをスリープ状態とするというものである。
特開2006−113767号公報 特開2004−192612号公報 特開2009−140157号公報
ところで、一般に、電源供給が遮断されているプロセッサを起動する場合には、そのプロセッサが安定して処理を実行できるようになるまでに、典型的には数ミリ秒〜数十ミリ秒が必要となる。
特許文献2に開示されている技術では、仮想計算機が割り当てられていないプロセッサに新たに仮想計算機を割り当てようとする場合に、それらのプロセッサを新たに起動させる必要がある。
従って、仮想計算機が割り当てられていないプロセッサに新たに仮想計算機を割り当てようとしても、新たに起動させたプロセッサが処理を開始するまでに、典型的には数ミリ秒〜数十ミリ秒の時間がかかってしまい、仮想計算機システムのパフォーマンスが低下してしまうという問題がある。
特許文献3に開示されている技術では、仮想計算機が割り当てられていない全てのプロセッサは、新たに仮想計算機が割り当てられるまでスリープ状態となる。
しかしながら、スリープ状態のプロセッサは、仮想計算機に係る処理を行うことができないにも関わらず、通常動作状態よりも消費電力は少ないものの、一定量の電力を消費する。
従って、仮想計算機が割り当てられていないプロセッサの数が多くなると、仮想計算機に係る処理を行うことのないプロセッサによる消費電力が多くなってしまうという問題がある。
そこで、本発明は係る問題に鑑みてなされたものであり、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑える仮想計算機システムを提供することを目的とする。
上記課題を解決するために本発明に係る仮想計算機システムは、複数のプロセッサを有し、複数の仮想計算機を動作させる仮想計算機システムであって、電力を供給されているプロセッサに仮想計算機を割り当てる割当手段と、前記割当手段が、電力を供給されていて仮想計算機を割り当てられていないプロセッサに仮想計算機を割り当てる場合において、電力を供給されていないプロセッサが複数存在するとき、電力を供給されていないプロセッサのうちの一部のプロセッサに電力を供給し、電力を供給されていないプロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する電力供給手段とを備えることを特徴とする。
上述の構成を備える本発明に係る仮想計算機システムは、電力を供給されていて仮想計算機を割り当てられていないプロセッサに仮想計算機を割り当てる場合に、次に新たなプロセッサに仮想計算機を割り当てるときに備えて、電力供給手段によって新たに電力を供給されるプロセッサを待機状態にしておくことができるようになる。
また、仮想計算機を割り当てられていないプロセッサのうち、次に新たなプロセッサに仮想計算機を割り当てるときに備えて待機させておくプロセッサ以外のプロセッサには電力を供給されない。
従って、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑えることができる。
仮想計算機システム100の主要なハードウエア構成を示すブロック図 電源制御ブロック111の構成を示すブロック図 クロック制御ブロック112の構成を示すブロック図 仮想計算機システム100を構成する主要な機能ブロックを示す機能構成図 仮想計算機情報のデータ構成図 プロセッサ情報のデータ構成図 システム起動処理のフローチャート システム更新処理のフローチャート 仮想計算機割当処理のフローチャートその1 仮想計算機割当処理のフローチャートその2 仮想計算機割当変更処理のフローチャート プロセッサ更新処理のフローチャート 仮想計算機情報のデータ構成図 プロセッサ情報のデータ構成図 仮想計算機システム100を構成する主要な機能ブロックを示す機能構成図 仮想計算機情報のデータ構成図 プロセッサ情報のデータ構成図 仮想計算機システム100を構成する主要な機能ブロックを示す構成図 変形仮想計算機システム1900の主要なハードウエア構成を示すブロック図 電源制御ブロック1911の構成を示すブロック図 クロック制御ブロック1912の構成を示すブロック図 変形仮想計算機システム1900を構成する主要な機能ブロックを示す機能構成図 仮想計算機情報のデータ構成図 プロセッサ情報のデータ構成図 変形システム起動処理のフローチャート 変形プロセッサ更新処理のフローチャートその1 変形プロセッサ更新処理のフローチャートその2 変形システム更新処理のフローチャート 変形仮想計算機割当処理のフローチャートその1 変形仮想計算機割当処理のフローチャートその2 変形仮想計算機割当変更処理のフローチャート 仮想計算機情報のデータ構成図 プロセッサ情報のデータ構成図 変形仮想計算機システム1900を構成する主要な機能ブロックを示す機能構成図 変形例において、仮想計算機システム上で実現される、割当手段3501と電力供給手段3502とを示す模式図
<実施の形態1>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、4つのプロセッサを備え、これらのプロセッサを用いて複数の仮想計算機を並列に実行する仮想計算機システムについて説明する。
この仮想計算機システムは、一部のプロセッサに仮想計算機が割り当てられていない場合に、次に新たなプロセッサに仮想計算機を割り当てる場合に備えて、仮想計算機が割り当てられていないプロセッサのうちの1つのプロセッサに電力を供給して待機状態としておき、その他の仮想計算機が割り当てられていないプロセッサに電力を供給しないという制御を行うものである。
以下、本実施の形態1に係る仮想計算機システムの構成について図面を参照しながら説明する。
図1は、仮想計算機システム100の主要なハードウエア構成を示すブロック図である。
同図に示す通り、仮想計算機システム100は、システムLSI(Large Scale Integration)110とハードディスク装置130と出力装置131と入力装置132とから構成される。
システムLSI110は、プロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104と電源制御ブロック111とクロック制御ブロック112とROM(Read Only Memory)113とRAM(Random Access Memory)114とハードディスク装置インターフェース115と出力装置インターフェース116と入力装置インターフェース117と内部バス120とを集積した集積回路であって、ハードディスク装置130と出力装置131と入力装置132とに接続する。
プロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104とは、それぞれ内部バス120と電源制御ブロック111とクロック制御ブロック112とに接続し、それぞれROM113、RAM114、又はハードディスク装置130に記憶されているプログラムを実行することで、電源制御ブロック111とクロック制御ブロック112とROM113とRAM114とハードディスク装置130と出力装置131と入力装置132とを制御して、様々な機能を実現する。
プロセッサA101〜プロセッサD104は、それぞれ同じ機能を有するプロセッサであって、電源電圧が1.2Vで動作周波数が1GHzで動作する通常動作モードと、電源電圧が1.0Vで動作周波数が500MHzで動作する省電力モードとの2つのモードを有する。
また、プロセッサA101〜プロセッサD104は、供給される電源の電圧が0Vから1.0V以上に変化し、クロック信号が供給されることで起動する。
電源制御ブロック111は、内部バス120とプロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104とに接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって制御され、プロセッサA101〜プロセッサD104へ供給する電源の電圧を切り換える機能を有する。
図2は、電源制御ブロック111の主要なハードウエア構成を示すブロック図である。
同図に示す通り、電源制御ブロック111は、スイッチ設定レジスタ210と電源スイッチ211と電源スイッチ212と電源スイッチ213と電源スイッチ214とから構成される。
スイッチ設定レジスタ210は、内部バス120と電源スイッチ211と電源スイッチ212と電源スイッチ213と電源スイッチ214とに接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって値を書き込まれる8ビットのレジスタである。
電源スイッチ211は、スイッチ設定レジスタ210と1.2Vの電圧を供給する1.2V電源配線221と1.0Vの電圧を供給する1.0V電源配線222と0Vの電圧を供給するグラウンド配線223とプロセッサA101に電圧を供給するためのプロセッサA電源配線231とに接続し、スイッチ設定レジスタ210の0ビット目と1ビット目とに書き込まれている値に従って、1.2V電源配線221と1.0V電源配線222とグラウンド配線223との3つの配線のうちの一つの配線を選択して、選択する配線とプロセッサA電源配線231とを電気的に接続するスイッチである。
電源スイッチ212〜電源スイッチ214は、それぞれ電源スイッチ211と同様のスイッチである。
電源スイッチ212は、スイッチ設定レジスタ210の2ビット目と3ビット目とに書き込まれている値に従って、プロセッサB102に電圧を供給するためのプロセッサB電源配線232と電気的に接続する電源配線を選択するスイッチであって、電源スイッチ213は、スイッチ設定レジスタ210の4ビット目と5ビット目とに書き込まれている値に従って、プロセッサC103に電圧を供給するためのプロセッサC電源配線233と電気的に接続する電源配線を選択するスイッチであって、電源スイッチ214は、スイッチ設定レジスタ210の6ビット目と7ビット目とに書き込まれている値に従って、プロセッサD104に電圧を供給するためのプロセッサD電源配線234と電気的に接続する電源配線を選択するスイッチである。
電源制御ブロック111は、また、仮想計算機システム100がリセットされた場合には、スイッチ設定レジスタ210に初期値が代入されることで、プロセッサA101に1.2Vの電圧を供給し、プロセッサB102に1.0Vの電圧を供給し、プロセッサC103とプロセッサD104とに0Vの電圧を供給する機能を有する。
再び図1に戻って、仮想計算機システム100の主要なハードウエア構成の説明を続ける。
クロック制御ブロック112は、内部バス120とプロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104と接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって制御され、プロセッサA101〜プロセッサD104へ供給するクロック信号の周波数を切り換える機能を有する。
図3は、クロック制御ブロック112の主要なハードウエア構成を示す構成図である。
同図に示す通り、クロック制御ブロック112は、セレクタ設定レジスタ310と1GHzPLL(Phase Locked Loop)301と1/2分周回路302とセレクタ311とセレクタ312とセレクタ313とセレクタ314とから構成される。
セレクタ設定レジスタ310は、内部バス120とセレクタ311とセレクタ312とセレクタ313とセレクタ314とに接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって値を書き込まれる8ビットのレジスタである。
1GHzPLL301は、1/2分周回路302とセレクタ311とセレクタ312とセレクタ313とセレクタ314とに接続し、1GHzの周波数のクロック信号を生成して出力する機能を有する。
1/2分周回路302は、1GHzPLL301とセレクタ311とセレクタ312とセレクタ313とセレクタ314とに接続し、入力される1GHzの周波数のクロック信号を2分周し、500MHzの周波数のクロック信号を出力する機能を有する。
セレクタ311は、セレクタ設定レジスタ310と1GHzPLL301と1/2分周回路302とグラウンド303とプロセッサA101にクロック信号を供給するためのプロセッサAクロック配線321とに接続し、セレクタ設定レジスタ310の0ビット目と1ビット目とに書き込まれている値に従って、1GHzの周波数のクロック信号と500MHzの周波数のクロック信号と0MHzの周波数のクロック信号とのうちの一つのクロック信号を選択して、プロセッサAクロック配線321を介してプロセッサA101に出力するセレクタである。
セレクタ312〜セレクタ314は、それぞれセレクタ311と同様のセレクタである。
セレクタ312は、セレクタ設定レジスタ310の2ビット目と3ビット目とに書き込まれている値に従って、プロセッサBクロック配線322を介してプロセッサB102に出力するクロック信号を選択して出力するセレクタであって、セレクタ313は、セレクタ設定レジスタ310の4ビット目と5ビット目とに書き込まれている値に従って、プロセッサCクロック配線323を介してプロセッサC103に出力するクロック信号を選択して出力するセレクタであって、セレクタ314は、セレクタ設定レジスタ310の6ビット目と7ビット目とに書き込まれている値に従って、プロセッサDクロック配線324を介してプロセッサD104に出力するクロック信号を選択して出力するセレクタである。
クロック制御ブロック112は、また、仮想計算機システム100がリセットされた場合には、セレクタ設定レジスタ310に初期値が代入されることで、プロセッサA101に1GHzのクロック信号を出力し、プロセッサB102に500MHzのクロック信号を出力し、プロセッサC103とプロセッサD104とに0Hzのクロック信号を供給する機能を有する。
再び図1に戻って、仮想計算機システム100の主要なハードウエア構成の説明を続ける。
ROM113は、内部バス120と接続し、プロセッサA101〜プロセッサD104の動作を規定するプログラムと、プロセッサA101〜プロセッサD104が利用するデータとを記憶している。
RAM114は、内部バス120と接続し、プロセッサA101〜プロセッサD104の動作を規定するプログラムと、プロセッサA101〜プロセッサD104がプログラムを実行することに伴って発生するデータとを一時的に記憶する。
ハードディスク装置インターフェース115と出力装置インターフェース116と入力装置インターフェース117とは、それぞれ内部バス120と接続し、それぞれ内部バス120とハードディスク装置130との間の信号のやり取りを仲介する機能、内部バス120と出力装置131との間の信号のやり取りを仲介する機能、内部バス120と入力装置132との間の信号のやり取りを仲介する機能を有する。
内部バス120は、プロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104と電源制御ブロック111とクロック制御ブロック112とROM113とRAM114とハードディスク装置インターフェース115と出力装置インターフェース116と入力装置インターフェース117とに接続し、接続される回路間の信号を伝達する機能を有する。
ハードディスク装置130は、ハードディスク装置インターフェース115と接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって制御され、内蔵するハードディスクにデータを書き込む機能と、内蔵するハードディスクに書き込まれているデータを読み出す機能とを有する。
出力装置131は、出力装置インターフェース116と接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって制御され、内蔵するディスプレイを用いて文字列等を表示する機能を有する。
入力装置132は、入力装置インターフェース107と接続し、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104によって制御され、付属するキーボード、マウスなどを通じてユーザからの操作コマンドを受け付け、受け付けた操作コマンドをプロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104に送信する機能を有する。
上述の仮想計算機システム100は、プロセッサA101、プロセッサB102、プロセッサC103、又はプロセッサD104が、ROM113、RAM114、又はハードディスク装置130に記憶されているプログラムを実行することによって、様々な機能を実現する。
以下、上述のハードウエアによって実現される仮想計算機システム100の機能について、図面を用いて説明する。
図4は、仮想計算機システム100を構成する主要な機能ブロックを示す機能構成図に、プロセッサA101に3つの仮想計算機が割り当てられ、プロセッサC103に1つの仮想計算機が割り当てられている状態を示す模式図を加えた図である。
同図に示すように、仮想計算機システム100は、ハイパーバイザ440と複数の仮想計算機(ここでは、仮想計算機A411と仮想計算機B412と仮想計算機C413と仮想計算機D414)とから構成されている。
仮想計算機A411は、仮想計算機システム100上で実現される仮想計算機であって、第1OS(Operating System)421とタスクA431とタスクB432とが動作し、ここでは、プロセッサA101に割り当てられて動作している。
仮想計算機B412は、仮想計算機システム100上で実現される仮想計算機であって、第2OS422とタスクI433とタスクJ434とが動作し、ここではプロセッサA101に割り当てられて動作している。
仮想計算機C413は、仮想計算機システム100上で実現される仮想計算機であって、第3OS423とタスクM435とタスクN436とが動作し、ここではプロセッサA101に割り当てられて動作している。
仮想計算機A411と仮想計算機B412と仮想計算機C413とは、プロセッサA101が時分割方式で順番に繰り返して各仮想計算機に係る処理を行うことによって実現されている。
仮想計算機D414は、仮想計算機システム100上で実現される仮想計算機であって、第4OS424とタスクP437とタスクQ438とが動作し、ここではプロセッサC103に割り当てられて動作している。
ハイパーバイザ440は、負荷監視手段441と仮想計算機割当手段442と仮想計算機管理手段443とプロセッサ管理手段444と仮想計算機情報記憶手段445とプロセッサ情報記憶手段446とから構成される、OSよりも特権レベルの高いソフトウエアである。
負荷監視手段441は、仮想計算機で動作しているOSのそれぞれと仮想計算機管理手段443とに接続し、時間の経過を計測するタイマ機能と、所定時間T1(例えば100μs)毎に、各OSからそのOSによって管理されるタスク待ち行列に存在するタスクの数を取得し、OSから取得したタスクの数の情報と、そのOSが動作する仮想計算機を特定するための仮想計算機IDとの組を仮想計算機管理手段443に出力する機能とを有する。
仮想計算機管理手段443は、負荷監視手段441と仮想計算機割当手段442と仮想計算機情報記憶手段445とに接続し、以下の4つの機能を有する。
機能1:ハイパーバイザ440起動時に、実行対象となる仮想計算機の全てがプロセッサA101と対応付けられるように仮想計算機情報を生成し、生成した仮想計算機情報を仮想計算機情報記憶手段445に記憶させる機能。
機能2:負荷監視手段441から、タスクの数の情報と仮想計算機IDとの組を受け取ると、受け取ったタスクの数の情報と仮想計算機IDとの組に基づいて、仮想計算機情報記憶手段445に記憶されている仮想計算機情報を更新する機能。
機能3:負荷監視手段441から受け取ったタスクの数の情報と仮想計算機IDとの組に基づいて、仮想計算機情報記憶手段445に記憶されている仮想計算機情報を更新した場合において、更新前のタスクの数と更新後のタスクの数とで変化しているものがあるとき、そのタスクの数に対応する仮想計算機IDを、仮想計算機割当手段442に出力する機能。
機能4:仮想計算機割当手段442から、仮想計算機IDとプロセッサIDとの組を受け取ると、受け取った仮想計算機IDとプロセッサIDとの組に基づいて、仮想計算機情報記憶手段445に記憶されている仮想計算機情報を更新する機能。
図5は、仮想計算機管理手段443によって生成され、仮想計算機情報記憶手段445によって記憶される仮想計算機情報のデータ構成図である。
同図に示されるように、仮想計算機情報は、仮想計算機ID501とタスク数502とプロセッサID503とが対応付けられたものである。
仮想計算機ID501は、仮想計算機を特定するための情報である。
タスク数502は、対応する仮想計算機IDで特定される仮想計算機で動作するOSによって管理されるタスク待ち行列に存在するタスクの数を示す情報である。
プロセッサID503は、対応する仮想計算機IDで特定される仮想計算機が動作するプロセッサを特定するための情報である。
再び、図4に戻って仮想計算機システム100の機能構成の説明を続ける。
仮想計算機情報記憶手段445は、仮想計算機管理手段443と仮想計算機割当手段442とに接続し、仮想計算機情報を記憶するための記憶領域であって、RAM114の一部の領域として実装されている。
プロセッサ管理手段444は、仮想計算機割当手段442とプロセッサ情報記憶手段446とに接続し、以下の3つの機能を有する。
機能1:ハイパーバイザ440起動時に、プロセッサA101の属性が”共有”(後述)となり、プロセッサB102の属性が”待機”となり、プロセッサC103とプロセッサD104との属性がそれぞれ”オフ”となり、プロセッサA101に対応付けられる仮想計算機数が実行対象となる仮想計算機の総数を示す情報となり、プロセッサB102とプロセッサC103とプロセッサD104とのそれぞれに対応付けられる仮想計算機数が、それぞれ初期値である”0”を示す情報となるようにプロセッサ情報を生成し、生成したプロセッサ情報をプロセッサ情報記憶手段446に記憶させる機能。
機能2:仮想計算機割当手段442から、プロセッサIDと属性との組を受け取ると、受け取ったプロセッサIDと属性との組に基づいて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する機能。
機能3:プロセッサ情報記憶手段446に記憶されているプロセッサ情報に基づいて、各プロセッサにクロック信号と電源電圧とを供給する機能。
図6は、プロセッサ管理手段444によって生成され、プロセッサ情報記憶手段446に記憶されるプロセッサ情報のデータ構成図である。
同図に示されるように、プロセッサ情報は、プロセッサID601と属性602と仮想計算機数603とが対応付けられたものである。
プロセッサID601は、プロセッサを特定するための情報である。
属性602は、対応するプロセッサIDで特定されるプロセッサの属性を示す情報である。
プロセッサA101〜プロセッサD104のそれぞれは、”専有”、”共有”、”待機”、”オフ”の4つの属性のうちの1つの属性を対応付けられる。
”専有”属性は、プロセッサの状態が、電源電圧が1.2Vで動作周波数が1GHzで動作する通常動作モードで動作し、自プロセッサ上で動作する仮想計算機の数を1つに限定する状態となることを示す属性である。
“共有”属性は、プロセッサの状態が、電源電圧が1.2Vで動作周波数が1GHzで動作する通常動作モードで動作し、自プロセッサ上で動作する仮想計算機の数を1以上とする状態となることを示す属性である。
”共有”属性のプロセッサ上で動作する仮想計算機が複数の場合には、プロセッサは、時分割方式で仮想計算機を実行させる。
“待機”属性は、プロセッサの状態が、電源電圧が1.0Vで動作周波数が500MHzで動作する省電力モードで動作し、自プロセッサ上で仮想計算機を動作させない状態となることを示す属性である。
“オフ”属性は、プロセッサの状態が動作しない状態、すなわち、0Vの電源電圧が供給される状態となることを示す属性である。
仮想計算機数603は、対応するプロセッサIDで特定されるプロセッサ上で動作する仮想計算機の数を示す情報である。
再び、図4に戻って仮想計算機システム100の機能構成の説明を続ける。
プロセッサ情報記憶手段446は、プロセッサ管理手段444と接続し、プロセッサ情報を記憶するための記憶領域であって、RAM114の一部の領域として実装される。
仮想計算機割当手段442は、仮想計算機管理手段443とプロセッサ管理手段444と仮想計算機情報記憶手段445とプロセッサ情報記憶手段446とに接続し、以下の4つの機能を有する。
機能1:仮想計算機情報記憶手段445に記憶されている仮想計算機情報と、プロセッサ情報記憶手段446に記憶されているプロセッサ情報とに基づいて、プロセッサの属性を変更する機能。
機能2:プロセッサの属性を変更した場合に、属性を変更したプロセッサを特定するためのプロセッサIDと変更後の属性との組を、プロセッサ管理手段444に出力する機能。
機能3:仮想計算機情報記憶手段445に記憶されている仮想計算機情報に基づいて、プロセッサ上で動作している仮想計算機を他のプロセッサに移動して、その移動先のプロセッサでその仮想計算機を動作させる機能。
機能4:仮想計算機を移動させた場合に、移動させた仮想計算機を特定するための仮想計算機IDと、移動後のプロセッサを特定するためのプロセッサIDとの組を、プロセッサ管理手段444に出力する機能。
以上のように構成される仮想計算機システム100の行う動作について、以下、図面を参照しながら説明する。
<動作>
ここでは、仮想計算機システム100の行う動作のうち、特徴的な動作である、システム起動処理と、システム更新処理とについて説明する。
<システム起動処理>
システム起動処理は、仮想計算機システム100がリセットされた場合に、仮想計算機システム100を起動する処理である。
図7は、システム起動処理のフローチャートである。
仮想計算機システム100がリセットされると、電源制御ブロック111は、プロセッサA101に1.2Vの電源電圧を供給し、プロセッサB102に1.0Vの電源電圧を供給し、クロック制御ブロック112は、プロセッサA101に1GHzのクロック信号を供給し、プロセッサB102に500MHzのクロック信号を供給し、プロセッサA101とプロセッサB102とが起動する(ステップS700)。
プロセッサA101が起動すると、プロセッサA101は、ハイパーバイザ440を起動する(ステップS710)。
ハイパーバイザ440が起動すると、仮想計算機管理手段443は、実行対象となる仮想計算機の全てがプロセッサA101と対応付けられるように仮想計算機情報を生成し、生成した仮想計算機情報を仮想計算機情報記憶手段445に記憶させる(ステップS720)。
このとき生成される仮想計算機情報のタスク数502には、それぞれ初期値である”0”を示す情報が代入される。
ステップS720の処理が終了すると、プロセッサ管理手段444は、プロセッサA101の属性が”共有”となり、プロセッサB102の属性が”待機”となり、プロセッサC103とプロセッサD104との属性がそれぞれ”オフ”となり、プロセッサA101に対応付けられる仮想計算機数が仮想計算機の総数を示す情報となり、プロセッサB102とプロセッサC103とプロセッサD104とのそれぞれに対応付けられる仮想計算機数が、それぞれ初期値である”0”を示す情報となるようにプロセッサ情報を生成し、生成したプロセッサ情報をプロセッサ情報記憶手段446に記憶させる(ステップS730)。
ステップS730の処理が終了すると、仮想計算機割当手段442は、仮想計算機情報記憶手段445に記憶されている仮想計算機情報に基づいて、プロセッサA101で全ての仮想計算機を動作させる(ステップS740)。
ステップS740の処理が終了すると、仮想計算機システム100は、そのシステム起動処理を終了する。
<システム更新処理>
システム更新処理は、各仮想計算機上で動作しているOSが管理する待ち行列のそれぞれに存在するタスクの数の変動に応じて、各プロセッサの属性を動的に変更し、各仮想計算機のプロセッサへの割り当てを動的に変更する処理である。
図8は、システム更新処理のフローチャートである。
負荷監視手段441は、仮想計算機システム100の稼働中に、タイマ機能を利用して所定時間T1(例えば100μs)毎に、各仮想計算機のOSによって管理されるタスク待ち行列に存在するタスクの数を取得し(ステップS800)、OSから取得したタスクの数の情報と、そのOSが動作する仮想計算機を特定するための仮想計算機IDとの組を仮想計算機管理手段443に出力する。
ステップS800の処理が終了すると、負荷監視手段441は、タイマを起動して、新たに所定時間T1(例えば100μs)の計測を開始する(ステップS810)。
ステップS810の処理が終了すると、仮想計算機管理手段443は、受け取ったタスクの数の情報と仮想計算機IDとの組に基づいて、仮想計算機情報記憶手段445に記憶されている仮想計算機情報を更新する(ステップS820)。
ステップS820の処理が終わると、仮想計算機管理手段443は、更新前のタスク数と更新後のタスク数とで変化しているものがあるか否かを調べる(ステップS830)。
ステップS830の処理において、更新前のタスク数と更新後のタスク数とで変化しているものがある場合に(ステップS830:Yes)、仮想計算機管理手段443は、そのタスク数に対応する仮想計算機IDを仮想計算機割当手段442に出力し、仮想計算機システム100は、仮想計算機割当処理を実施する(ステップS840)。
図9、図10は、仮想計算機システム100の行う仮想計算機割当処理のフローチャートである。
仮想計算機割当手段442は、変化しているタスク数に対応する仮想計算機IDを受け取ると、受け取った仮想計算機IDの中から1つを選択する。
仮想計算機割当手段442は、仮想計算機IDを1つ選択すると、仮想計算機情報記憶手段445に記憶されている仮想計算機情報と、プロセッサ情報記憶手段446に記憶されているプロセッサ情報とを読み出して、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサの属性が”共有”であるか否かを調べる(ステップS900)。
ステップS900の処理において、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサの属性が”共有”である場合に(ステップS900:Yes)、仮想計算機割当手段442は、その仮想計算機に対応付けられているタスク数が第1所定量(例えば30)以上であるか否かを調べる(ステップS910)。
ステップS910の処理において、タスク数が第1所定量(例えば30)以上の場合に(ステップS910:Yes)、仮想計算機割当手段442は、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサに、他の仮想計算機が割り当てられて動作しているか否かを調べる(ステップS920)。
ステップS920の処理において、プロセッサに他の仮想計算機が割り当てられて動作している場合に(ステップS920:Yes)、仮想計算機割当手段442は、”待機”属性のプロセッサが存在するか否かを調べる(ステップS930)。
ステップS930において、”待機”属性のプロセッサが存在する場合に(ステップS930:Yes)、仮想計算機割当手段442は、その”待機”属性のプロセッサの属性が”専有”となるように、プロセッサ管理手段444を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS940)。
ステップS940の処理が終わると、仮想計算機割当手段442は、選択している仮想計算機IDによって特定される仮想計算機を割り当てられて実行するプロセッサを、その仮想計算機が現在割り当てられて動作しているプロセッサ(以後、移動元プロセッサと呼ぶ。)から、ステップS940の処理において属性を”待機”から”専有”に更新されたプロセッサ(以後、移動先プロセッサと呼ぶ。)へと変更する(ステップS950:仮想計算機割当変更処理)。
図11は、仮想計算機システム100の行う仮想計算機割当変更処理のフローチャートである。
仮想計算機システム100が仮想計算機割当変更処理を開始すると、仮想計算機割当手段442は、移動元プロセッサで対象となる仮想計算機が処理中であるか否かを調べる(ステップS1100)。
ステップS1100において、移動元プロセッサで対象となる仮想計算機が処理中である場合に(ステップS1100:Yes)、その処理中の仮想計算機の状態(各種レジスタに記憶されているデータ等の、仮想計算機の処理を復旧させるために必要なデータ群)を、RAM114の所定の領域に退避する(ステップS1110)。
ステップS1100において、移動元プロセッサで対象となる仮想計算機が処理中でない場合に(ステップS1100:No)は、その仮想計算機は、時分割方式における退避状態となっているため、その仮想計算機の状態はRAM114の所定の領域に退避されている(ステップS1120)。
ステップS1110の処理が終了した場合、又はステップS1120の処理が終了した場合に、仮想計算機割当手段442は、移動先プロセッサで仮想計算機が動作中であるか否かを調べる(ステップS1130)。
ステップS1130の処理において、移動先プロセッサで仮想計算機が動作中である場合に(ステップS1130:Yes)、仮想計算機割当手段442は、移動先プロセッサの時分割処理において、対象となる仮想計算機の処理が行われる時間になると、退避されている仮想計算機の状態を利用して、移動先プロセッサで対象となる仮想計算機を復旧させて動作させる(ステップS1140)。
ステップS1130の処理において、移動先プロセッサで仮想計算機が動作中でない場合に(ステップS1130:No)、仮想計算機割当手段442は、退避されている仮想計算機の状態を利用して、移動先プロセッサで対象となる仮想計算機を復旧させて動作させる(ステップS1150)。
ステップS1140の処理が終了した場合、又はステップS1150の処理が終了した場合に、仮想計算機システム100は、その仮想計算機割当変更処理を終了する。
再び、図9に戻って仮想計算機割当処理の説明を続ける。
ステップS950の処理が終了した場合、又はステップS930の処理において、”待機”属性のプロセッサが存在しない場合に(ステップS930:No)、仮想計算機割当手段442は、”オフ”属性のプロセッサが存在するか否かを調べる(ステップS960)。
ステップS960の処理において、”オフ”属性のプロセッサが存在する場合に(ステップS960:Yes)、仮想計算機割当手段442は、その”オフ”属性のプロセッサの属性が”待機”となるように、プロセッサ管理手段444を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS970)。
ステップS920の処理において、プロセッサに他の仮想計算機が割り当てられて動作していない場合に(ステップS920:No)、仮想計算機割当手段442は、その”共有”属性のプロセッサの属性が”専有”となるように、プロセッサ管理手段444を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS990)。
ステップS900の処理において、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサの属性が”共有”でない場合、すなわち、属性が”専有”である場合に(ステップS900:No)、仮想計算機割当手段442は、その仮想計算機に対応付けられているタスク数が第2所定量(例えば25)以下であるか否かを調べる(図10のステップS1000)。
ステップS1000の処理において、タスク数が第2所定量(例えば25)以下の場合に(ステップS1000:Yes)、仮想計算機割当手段442は、”共有”属性のプロセッサが存在するか否かを調べる(ステップS1010)。
ステップS1010の処理において、”共有”属性のプロセッサが存在する場合に(ステップS1010:Yes)、仮想計算機システム100は、選択している仮想計算機IDによって特定される仮想計算機を割り当てられて実行するプロセッサを移動元プロセッサとし、”共有”属性のプロセッサを移動先プロセッサとして、前述の仮想計算機割当処理(図11参照)を実行する(ステップS1020)。
ステップS1020の処理が終了すると、仮想計算機割当手段442は、移動元プロセッサの属性が”オフ”となるように、プロセッサ管理手段444を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS1030)。
ステップS1010の処理において、”共有”属性のプロセッサが存在しない場合に(ステップS1010:No)、仮想計算機割当手段442は、選択している仮想計算機IDによって特定される仮想計算機を割り当てられて実行するプロセッサの属性が”共有”となるように、プロセッサ管理手段444を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS1040)。
ステップS910の処理においてタスク数が第1所定量(例えば30)以上でない場合(ステップS910:No)、ステップS990の処理が終了した場合、ステップS960の処理において”オフ”属性のプロセッサが存在しない場合(ステップS960:No)、ステップS1000の処理において、タスク数が第2所定量(例えば25)以下でない場合(ステップS1000:No)、ステップS1030の処理が終了した場合、又はステップS1040の処理が終了した場合に、仮想計算機割当手段442は、受け取った仮想計算機IDの中に未だ選択したことのない仮想計算機IDがあるか否かを調べる(図9のステップS980)。
ステップS980の処理において、未だ選択したことのない仮想計算機IDが存在する場合に(ステップS980:Yes)、仮想計算機割当手段442は、未だ選択したことのない仮想計算機IDのうちの1つを選択し、再びステップS900の処理に戻って、ステップS900以降の処理を行う。
ステップS980の処理において、未だ選択したことのない仮想計算機IDが存在しない場合に(ステップS980:No)、仮想計算機システム100は、その仮想計算機割当処理を終了する。
再び図8に戻って、システム更新処理の説明を続ける。
ステップS840の処理が終了すると、プロセッサ管理手段444は、ステップS840の仮想計算機割当処理において、プロセッサ情報記憶手段446に記憶されているプロセッサ情報の属性が更新されたプロセッサが存在するか否かを調べる(ステップS850)。
ステップS850の処理において、プロセッサ情報の属性が更新されていた場合に(ステップS850:Yes)、プロセッサ管理手段444は、属性が更新されていたプロセッサのそれぞれに対して、プロセッサ更新処理を実施する(ステップS860)。
図12は、プロセッサ管理手段444の行うプロセッサ更新処理のフローチャートである。
プロセッサ更新処理が開始されると、プロセッサ管理手段444は、対象となるプロセッサの現在の属性が”専有”又は”共有”であるか否かを調べる(ステップS1200)。
ステップS1200の処理において、対象となるプロセッサの現在の属性が”専有”又は”共有”である場合には(ステップS1200:Yes)、そのプロセッサに供給する電源電圧が1.2Vとなるように変更、又は継続し、供給するクロック信号の周波数が1GHzとなるように変更、又は継続する(ステップS1210)。
ステップS1200の処理において、対象となるプロセッサの現在の属性が”専有”又は”共有”でない場合には(ステップS1200:No)、プロセッサ管理手段444は、対象となるプロセッサの現在の属性が”待機”であるか否かを調べる(ステップS1220)。
ステップS1220の処理において、対象となるプロセッサの現在の属性が”待機”である場合には(ステップS1220:Yes)、プロセッサ管理手段444は、そのプロセッサに供給する電源電圧が1.0Vとなるように変更し、供給するクロック信号の周波数が500MHzとなるように変更する(ステップS1230)。
ステップS1220の処理において、対象となるプロセッサの現在の属性が”待機”でない場合には(ステップS1220:No)、プロセッサ管理手段444は、そのプロセッサに供給する電源電圧が0Vとなるように変更し、供給するクロック信号の周波数が0Hzとなるように変更する(ステップS1240)。
ステップS1210の処理が終了した場合、ステップS1230の処理が終了した場合、ステップS1240の処理が終了した場合に、プロセッサ管理手段444は、そのプロセッサ更新処理を終了する。
再び図8に戻って、システム更新処理の説明を続ける。
ステップS830の処理において更新前のタスク数と更新後のタスク数とで変化しているものがない場合(ステップS830:No)、ステップS850の処理においてプロセッサ情報の属性が更新されてなかった場合(ステップS850:No)、又はステップS860の処理が終了した場合に、負荷監視手段441は、起動中のタイマで計測している時間が所定時間T1(例えば100μs)となるまで待機する(ステップS870)。
計測している時間が所定時間T1(例えば100μs)となると、負荷監視手段441は再びステップS800の処理に戻り、ステップS800以下の処理を行う。
<具体例>
以下、上述のシステム更新処理について、具体例を用いて説明を補足する。
この具体例は、時刻t1に、仮想計算機情報記憶手段445に記憶されている仮想計算機情報が図13に示されるものであり、プロセッサ情報記憶手段446に記憶されているプロセッサ情報が図14に示されるものであって、仮想計算機A411と仮想計算機B412と仮想計算機C413とがプロセッサA101に割り当てられて実行され、プロセッサB102が省電力モードで起動しつつ新たな仮想計算機の割り当てに備えて待機し、プロセッサC103とプロセッサD104とは電源が供給されていない状態となっている場合において(図15参照)、時刻t2に、第3OS423が管理するタスク待ち行列に存在するタスク数が5から40に変化したときの例である。
時刻t2以降において負荷監視手段441が各仮想計算機のOSによって管理されるタスク待ち行列に存在するタスク数を取得する最初のタイミングになると、負荷監視手段441は、各仮想計算機のOSによって管理されるタスク待ち行列に存在するタスク数を取得して、タイマを起動し、仮想計算機管理手段443が仮想計算機情報を更新する(ステップS800〜ステップS820)。
更新された仮想計算機情報は、図16に示されるものとなる。
仮想計算機C413のタスク数が5から40に変化しているので(ステップS830:Yes)、仮想計算機システム100は、仮想計算機割当処理を実施する(ステップS840)。
仮想計算機C413が動作するプロセッサA101の属性は”共有”で(図14参照、ステップS900:Yes)、タスク数が第1所定量(例えば30)以上で(図16参照、ステップS910:Yes)、プロセッサA101に他のプロセッサが割り当てられていて(ステップS920:Yes)、”待機”属性のプロセッサB102が存在する(図14参照、ステップS930:Yes)ので、仮想計算機割当手段442は、プロセッサB102の属性を”専有”に変更してプロセッサ情報を更新して(ステップS940)、仮想計算機割当処理(ステップS950)を実行する。
仮想計算機割当手段442は、仮想計算機C413がプロセッサA101に割り当てられて動作している状態を、仮想計算機C413がプロセッサB102に割り当てられて動作している状態に変更する(ステップS1100〜ステップS1140)。
プロセッサC103の属性は”オフ”なので(ステップS960:Yes)、プロセッサC103の属性を”待機”に変更してプロセッサ情報を更新する(ステップS970)。
他にタスク数が変化している仮想計算機がないので(ステップS980:No)、仮想計算機割当手段442は、仮想計算機割当処理を終了し、プロセッサ管理手段444は、プロセッサ情報の属性が更新されたプロセッサが存在するか否かを調べる(ステップS850)。
この時のプロセッサ情報記憶手段446に記憶されているプロセッサ情報は図17に示されるものとなっており、プロセッサB102とプロセッサC103との属性が変更されていることがわかる(ステップS850:Yes)。
プロセッサB102の属性は”専有”なので(ステップS1200:Yes)、プロセッサ管理手段444は、プロセッサB102に供給する電源電圧を1.0Vから1.2Vに変更し、プロセッサB102に供給するクロック信号の周波数を500MHzから1GHzに変更し(ステップS1210)、プロセッサB102を通常動作モードとする。
プロセッサC103の属性は”待機”なので、(ステップS1200:No〜ステップS1220:Yes)、プロセッサ管理手段444は、プロセッサC103に1.0Vの電源電圧を供給し、500MHzのクロック信号を供給して、プロセッサC103を省電力モードで動作させる(図18参照)。
その後、負荷監視手段441は、起動中のタイマで計測している時間が所定時間T1(例えば100μs)となるまで待機する(ステップS870)。
<まとめ>
上述の仮想計算機システム100によれば、仮想計算機が割り当てられていないプロセッサに新たに仮想計算機を割り当てて動作させる必要が生じる場合に、仮想計算機が割り当てられていないプロセッサのうち、”待機”属性として既に起動中のプロセッサに仮想計算機を割り当てて動作させることとなる。
従って、新たに仮想計算機を割り当てられたプロセッサが処理を開始するまでに数ミリ秒もの時間を要することがない。
また、上述の仮想計算機システム100によれば、仮想計算機が割り当てられていないプロセッサが複数ある場合に、1つのプロセッサを”待機”属性として起動させ、他のプロセッサの電源をオフとすることとなる。
従って、仮想計算機が割り当てられていないプロセッサの全てに電源を供給する方式の仮想計算機システムに比べて、仮想計算機が割り当てられていないプロセッサの数が多くなっても、仮想計算機に係る処理を行うことのないプロセッサによる消費電力が大きくなることがない。
また、上述の仮想計算機システム100によれば、”待機”属性として起動されているプロセッサは、通常モードよりも消費電力の少ない省電力モードで動作することとなる。
従って、新たに仮想計算機を割り当てられる場合に備えて待機している起動中のプロセッサが、通常モードで動作する方式の仮想計算機システムに比べて、仮想計算機に係る処理を行うことのないプロセッサによる消費電力を低く抑えることができる。
<実施の形態2>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1における仮想計算機システム100の一部を変形した変形仮想計算機システムについて説明する。
実施の形態1における仮想計算機システム100は、4つのプロセッサを備えているものであったが、この変形仮想計算機は、4つのプロセッサに替えて、3つの省電力プロセッサと3つの高性能プロセッサとを備えている。
ここで、省電力プロセッサと高性能プロセッサとは、同じISA(Instruction Set Architecture)を持つプロセッサである。省電力プロセッサは、高性能プロセッサよりも消費電力は小さいが、処理能力が小さい。
この変形仮想計算機システムは、複数の仮想計算機を並列に実行し、複数の省電力プロセッサに仮想計算機が割り当てられていない場合に、次に新たな省電力プロセッサに仮想計算機を割り当てる場合に備えて、仮想計算機が割り当てられていない省電力プロセッサのうちの1つのプロセッサに電力を供給して待機状態としておき、その他の仮想計算機が割り当てられていない省電力プロセッサに電力を供給しないという制御を行い、複数の高性能プロセッサに仮想計算機が割り当てられていない場合に、次に新たな高性能プロセッサに仮想計算機を割り当てる場合に備えて、仮想計算機が割り当てられていない高性能プロセッサのうちの1つのプロセッサに電力を供給して待機状態としておき、その他の仮想計算機が割り当てられていない高性能プロセッサに電力を供給しないという制御を行うというものである。
以下、本実施の形態2に係る変形仮想計算機システムの構成について図面を参照しながら、実施の形態1にける仮想計算機システム100との相違点を中心に説明する。
図19は、変形仮想計算機システム1900の主要なハードウエア構成を示すブロック図である。
同図に示すように、変形仮想計算機システム1900は、実施の形態1における仮想計算機システム100から、システムLSI110をシステムLSI1910に変更するように変形したものである。
システムLSI1910は、実施の形態1におけるシステムLSI110から、電源制御ブロック111を電源制御ブロック1911に変形し、クロック制御ブロック112をクロック制御ブロック1912に変形し、プロセッサA101〜プロセッサD104を削除し、省電力プロセッサA1901と省電力プロセッサB1902と省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とを追加したものである。
省電力プロセッサA1901と省電力プロセッサB1902と省電力プロセッサC1903とは、それぞれ内部バス120と電源制御ブロック1911とクロック制御ブロック1912とに接続し、それぞれROM113、RAM114、又はハードディスク装置130に記憶されているプログラムを実行することで、電源制御ブロック1911とクロック制御ブロック1912とROM113とRAM114とハードディスク装置130と出力装置131と入力装置132とを制御して、様々な機能を実現する。
省電力プロセッサA1901〜省電力プロセッサC1903は、それぞれ同じ機能を有するプロセッサであって、電源電圧が1.0Vで動作周波数が500MHzで動作する通常動作モードと、電源電圧が0.8Vで動作周波数が250MHzで動作する省電力モードとの2つのモードを有する。
また、省電力プロセッサA1901〜省電力プロセッサC1903は、供給される電源の電圧が0Vから0.8V以上に変化し、クロック信号が供給されるとことで起動する。
高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とは、それぞれ内部バス120と電源制御ブロック1911とクロック制御ブロック1912とに接続し、それぞれROM113、RAM114、又はハードディスク装置130に記憶されているプログラムを実行することで、電源制御ブロック1911とクロック制御ブロック1912とROM113とRAM114とハードディスク装置130と出力装置131と入力装置132とを制御して、様々な機能を実現する。
高性能プロセッサA1904〜高性能プロセッサC1906は、省電力プロセッサA1901〜省電力プロセッサC1903と同じISAを持つプロセッサであって、それぞれ同じ機能を有し、電源電圧が1.2Vで動作周波数が1GHzで動作する通常動作モードと、電源電圧が1.0Vで動作周波数が500MHzで動作する省電力モードとの2つのモードを有する。
また、高性能プロセッサA1904〜高性能プロセッサC1906は、供給される電源の電圧が0Vから1.0V以上に変化し、クロック信号が供給されるとことで起動する。
電源制御ブロック1911は、内部バス120と省電力プロセッサA1901と省電力プロセッサB1902と省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とに接続し、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、又は高性能プロセッサC1906によって制御され、省電力プロセッサA1901〜省電力プロセッサC1903、高性能プロセッサA1904〜高性能プロセッサC1906へ供給する電源の電圧を切り換える機能を有する。
図20は、電源制御ブロック1911の主要なハードウエア構成を示す構成図である。
同図に示す通り、電源制御ブロック1911は、スイッチ設定レジスタ2010と電源スイッチ2011と電源スイッチ2012と電源スイッチ2013と電源スイッチ2014と電源スイッチ2015と電源スイッチ2016とから構成される。
スイッチ設定レジスタ2010は、内部バス120と電源スイッチ2011と電源スイッチ2012と電源スイッチ2013と電源スイッチ2014と電源スイッチ2015と電源スイッチ2016とに接続し、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、又は高性能プロセッサC1906によって値を書き込まれる12ビットのレジスタである。
電源スイッチ2011は、スイッチ設定レジスタ2010と1.2Vの電圧を供給する1.2V電源配線221と1.0Vの電圧を供給する1.0V電源配線222と0Vの電圧を供給するグラウンド配線223と高性能プロセッサA1904に電圧を供給するための高性能プロセッサA電源配線2031とに接続し、スイッチ設定レジスタ2010の0ビット目と1ビット目とに書き込まれている値に従って、1.2V電源配線221と1.0V電源配線222とグラウンド配線223との3つの配線のうちの一つの配線を選択して、選択する配線と高性能プロセッサA電源配線2031とを電気的に接続するスイッチである。
電源スイッチ2012と電源スイッチ2013とは、それぞれ電源スイッチ2011と同様のスイッチである。
電源スイッチ2012は、スイッチ設定レジスタ2010の2ビット目と3ビット目とに書き込まれている値に従って、高性能プロセッサB1905に電圧を供給するための高性能プロセッサB電源配線2032と電気的に接続する電源配線を選択するスイッチであって、電源スイッチ2013は、スイッチ設定レジスタ2010の4ビット目と5ビット目とに書き込まれている値に従って、高性能プロセッサC1906に電圧を供給するための高性能プロセッサC電源配線2033と電気的に接続する電源配線を選択するスイッチである。
電源スイッチ2014は、スイッチ設定レジスタ2010と1.0Vの電圧を供給する1.0V電源配線222と0.8Vの電圧を供給する0.8V電源配線2024と0Vの電圧を供給するグラウンド配線223と省電力プロセッサA1901に電圧を供給するための省電力プロセッサA電源配線2034とに接続し、スイッチ設定レジスタ2010の6ビット目と7ビット目とに書き込まれている値に従って、1.0V電源配線222と0.8V電源配線2024とグラウンド配線223との3つの配線のうちの一つの配線を選択して、選択する配線と省電力プロセッサA電源配線2034とを電気的に接続するスイッチである。
電源スイッチ2015と電源スイッチ2016とは、それぞれ電源スイッチ2014と同様のスイッチである。
電源スイッチ2015は、スイッチ設定レジスタ2010の8ビット目と9ビット目とに書き込まれている値に従って、省電力プロセッサB1902に電圧を供給するための省電力プロセッサB電源配線2035と電気的に接続する電源配線を選択するスイッチであって、電源スイッチ2016は、スイッチ設定レジスタ2010の10ビット目と11ビット目とに書き込まれている値に従って、省電力プロセッサC1903に電圧を供給するための省電力プロセッサC電源配線2036と電気的に接続する電源配線を選択するスイッチである。
電源制御ブロック1911は、また、変形仮想計算機システム1900がリセットされた場合には、スイッチ設定レジスタ2010に初期値が代入されることで、省電力プロセッサA1901に1.0Vの電圧を供給し、省電力プロセッサB1902と省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とに0Vの電圧を供給する機能を有する。
再び図19に戻って、変形仮想計算機システム1900の主要なハードウエア構成の説明を続ける。
クロック制御ブロック1912は、内部バス120と省電力プロセッサA1901と省電力プロセッサB1902と省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とに接続し、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、又は高性能プロセッサC1906によって制御され、省電力プロセッサA1901〜省電力プロセッサC1903、高性能プロセッサA1904〜高性能プロセッサC1906へ供給するクロック信号の周波数を切り換える機能を有する。
図21は、クロック制御ブロック1912の主要なハードウエア構成を示す構成図である。
同図に示す通り、クロック制御ブロック1912は、セレクタ設定レジスタ2110と1GHzPLL2101と1/2分周回路2102と1/4分周回路2103とセレクタ2111とセレクタ2112とセレクタ2113とセレクタ2114とセレクタ2115とセレクタ2116とから構成される。
セレクタ設定レジスタ2110は、内部バス120とセレクタ2111とセレクタ2112とセレクタ2113とセレクタ2114とセレクタ2115とセレクタ2116とに接続し、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、又は高性能プロセッサC1906によって値を書き込まれる12ビットのレジスタである。
1GHzPLL2101は、1/2分周回路2102と1/4分周回路2103とセレクタ2111とセレクタ2112とセレクタ2113とに接続し、実施の形態1における1GHzPLL301と同様に、1GHzの周波数のクロック信号を生成して出力する機能を有する。
1/2分周回路2102は、1GHzPLL2101とセレクタ2111とセレクタ2112とセレクタ2113とセレクタ2114とセレクタ2115とセレクタ2116とに接続し、実施の形態1における1/2分周回路302と同様に、入力される1GHzの周波数のクロック信号を2分周し、500MHzの周波数のクロック信号を出力する機能を有する。
1/4分周回路2103は、1GHzPLL2101とセレクタ2114とセレクタ2115とセレクタ2116とに接続し、入力される1GHzの周波数のクロック信号を4分周し、250MHzの周波数のクロック信号を出力する機能を有する。
セレクタ2111は、セレクタ設定レジスタ2110と1GHzPLL2101と1/2分周回路2102とグラウンド303と高性能プロセッサA1904にクロック信号を供給するための高性能プロセッサAクロック配線2121とに接続し、セレクタ設定レジスタ2110の0ビット目と1ビット目とに書き込まれている値に従って、1GHzの周波数のクロック信号と500MHzの周波数のクロック信号と0MHzの周波数のクロック信号とのうちの一つのクロック信号を選択して、高性能プロセッサAクロック配線2121を介して高性能プロセッサA1904に出力するセレクタである。
セレクタ2112とセレクタ2113とは、それぞれセレクタ2111と同様のセレクタである。
セレクタ2112は、セレクタ設定レジスタ2110の2ビット目と3ビット目とに書き込まれている値に従って、高性能プロセッサBクロック配線2122を介して高性能プロセッサB1905に出力するクロック信号を選択して出力するセレクタであって、セレクタ2113は、セレクタ設定レジスタ2110の4ビット目と5ビット目とに書き込まれている値に従って、高性能プロセッサCクロック配線2123を介して高性能プロセッサC1906に出力するクロック信号を選択して出力するセレクタである。
セレクタ2114は、セレクタ設定レジスタ2110と1/2分周回路2102と1/4分周回路2103とグラウンド303と省電力プロセッサA1901にクロック信号を供給するための省電力プロセッサAクロック配線2124とに接続し、セレクタ設定レジスタ2110の6ビット目と7ビット目とに書き込まれている値に従って、500MHzの周波数のクロック信号と250MHzの周波数のクロック信号と0MHzの周波数のクロック信号とのうちの一つのクロック信号を選択して、省電力プロセッサAクロック配線2124を介して省電力プロセッサA1901に出力するセレクタである。
セレクタ2115とセレクタ2116とは、それぞれセレクタ2114と同様のセレクタである。
セレクタ2115は、セレクタ設定レジスタ2110の8ビット目と9ビット目とに書き込まれている値に従って、省電力プロセッサBクロック配線2125を介して省電力プロセッサB1902に出力するクロック信号を選択して出力するセレクタであって、セレクタ2116は、セレクタ設定レジスタ2110の10ビット目と11ビット目とに書き込まれている値に従って、省電力プロセッサCクロック配線2126を介して省電力プロセッサC1903に出力するクロック信号を選択して出力するセレクタである。
クロック制御ブロック1912は、また、変形仮想計算機システム1900がリセットされた場合には、セレクタ設定レジスタ2110に初期値が代入されることで、省電力プロセッサA1901に500MHzのクロック信号を出力し、省電力プロセッサB1902と省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905と高性能プロセッサC1906とに0Hzのクロック信号を供給する機能を有する。
以下、上述のハードウエアによって実現される変形仮想計算機システム1900の機能について、図面を用いて説明する。
図22は、変形仮想計算機システム1900を構成する主要な機能ブロックを示す機能構成図に、省電力プロセッサA1901と省電力プロセッサB1902と省電力プロセッサC1903とにそれぞれ1つの仮想計算機が割り当てられている状態を示す模式図を加えたものである。
同図に示されるように、変形仮想計算機システム1900は、実施の形態1における仮想計算機システム100から、ハイパーバイザ440がハイパーバイザ2240に変形されたものである。
ハイパーバイザ2240は、実施の形態1におけるハイパーバイザ440から仮想計算機割当手段442を仮想計算機割当手段2242に変更し、仮想計算機管理手段443を仮想計算機管理手段2243に変更し、プロセッサ管理手段444をプロセッサ管理手段2244に変更するように変形したものである。
仮想計算機管理手段2243は、実施の形態1における仮想計算機管理手段443の一部の機能を変形したものであり、負荷監視手段441と仮想計算機割当手段2242と仮想計算機情報記憶手段445とに接続し、仮想計算機管理手段443の機能2と機能3と機能4とに加え、以下の機能1aを有する。
機能1a:ハイパーバイザ2240起動時に、実行対象となる全ての仮想計算機が、それぞれ1つのプロセッサと対応付けられるように仮想計算機情報を生成し、生成した仮想計算機情報を仮想計算機情報記憶手段に記憶させる機能。
ここで、実行対象となる仮想計算機を割り当てていくプロセッサの順番は、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、高性能プロセッサC1906の順になっている。
図23は、仮想計算機管理手段2243によって生成され、仮想計算機情報記憶手段445によって記憶される仮想計算機情報のデータ構成図である。
同図に示されるように、仮想計算機情報は、実施の形態1における仮想計算機情報と同様に、仮想計算機ID2301とタスク数2302とプロセッサID2303とが対応付けられたものである。
再び、図22に戻って変形仮想計算機システム1900の機能構成の説明を続ける。
プロセッサ管理手段2244は、実施の形態1におけるプロセッサ管理手段444の一部の機能を変形したものであり、仮想計算機割当手段2242とプロセッサ情報記憶手段446とに接続し、プロセッサ管理手段444の機能2と機能3とに加え、以下の機能1aと機能1bと機能1cと機能1dとの機能を有する。
機能1a:ハイパーバイザ2240起動時に、実行対象となる仮想計算機の数のプロセッサの属性が”実行”(後述)となるようにプロセッサ情報を生成する機能。
ここで、”実行”属性とするプロセッサの順番は、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、高性能プロセッサC1906の順になっている。
機能1b:プロセッサ情報を生成する場合において、属性が”実行”となっていない省電力プロセッサが存在するとき、属性が”実行”となっていない省電力プロセッサのうちの1つのプロセッサの属性を”待機”とし、さらに、属性が”実行”、又は”待機”となっていない省電力プロセッサが存在すれば、そのプロセッサの属性を”オフ”とするように、プロセッサ情報を生成する機能。
機能1c:プロセッサ情報を生成する場合において、属性が”実行”となっていない高性能プロセッサが存在するとき、属性が”実行”となっていない高性能プロセッサのうちの1つのプロセッサの属性を”待機”とし、さらに、属性が”実行”、又は”待機”となっていない高性能プロセッサが存在すれば、そのプロセッサの属性を”オフ”とするように、プロセッサ情報を生成する機能。
機能1d:ハイパーバイザ2240起動時に生成したプロセッサ情報を、プロセッサ情報記憶手段446に記憶させる機能。
図24は、プロセッサ管理手段2244によって生成され、プロセッサ情報記憶手段446に記憶されるプロセッサ情報のデータ構成図である。
同図に示されるように、プロセッサ情報は、プロセッサID2401と属性2402とが対応付けられたものである。
プロセッサID2401は、プロセッサを特定するための情報である。
属性2402は、対応するプロセッサIDで特定されるプロセッサの属性を示す情報である。
省電力プロセッサA1901〜省電力プロセッサC1903、高性能プロセッサA1904〜高性能プロセッサC1906のそれぞれは、”実行”、”待機”、”オフ”の3つの属性のうちの1つの属性を対応付けられる。
“実行”属性は、自プロセッサ上で仮想計算機を動作させる状態であることを示し、省電力プロセッサであれば、電源電圧が1.0Vで動作周波数が500MHzで動作する通常動作モードで動作する状態となり、高性能プロセッサであれば、電源電圧が1.2Vで動作周波数が1GHzで動作する通常動作モードで動作する状態となる属性である。
“待機”属性は、自プロセッサ上で仮想計算機を動作させない状態であることを示し、省電力プロセッサであれば、電源電圧が0.8Vで動作周波数が250MHzで動作する省電力モードで動作する状態となり、高性能プロセッサであれば、電源電圧が1.0Vで動作周波数が500MHzで動作する省電力モードで動作する状態となる属性である。
“オフ”属性は、プロセッサの状態が動作しない状態、すなわち、0Vの電源電圧が供給される状態となることを示す属性である。
再び、図22に戻って変形仮想計算機システム1900の機能構成の説明を続ける。
仮想計算機割当手段2242は、実施の形態1における仮想計算機割当手段442の一部の機能を変形したものであり、仮想計算機管理手段2243とプロセッサ管理手段2244と仮想計算機情報記憶手段445とプロセッサ情報記憶手段446とに接続し、仮想計算機割当手段442と同様の機能を有する。
仮想計算機割当手段2242は、仮想計算機割当手段442と同様の機能を有するが、対象とするプロセッサが、省電力プロセッサと高性能プロセッサの2種類である点、及び、プロセッサの属性が、”実行”と”待機”と”オフ”との3種類である点が、仮想計算機割当手段442と異なっているため、仮想計算機割当手段2242の行う動作の一部は、仮想計算機割当手段442の動作の一部と異なっている。
仮想計算機割当手段2242の行う動作のうちの、仮想計算機割当手段442の行う動作との相違点については、後述する。
以上のように構成される変形仮想計算機システム1900の行う動作について、以下、図面を参照しながら説明する。
<動作>
ここでは、変形仮想計算機システム1900が行う動作のうち、特徴的な動作である、変形システム起動処理と、変形システム更新処理とについて説明する。
<変形システム起動処理>
変形システム起動処理は、実施の形態1におけるシステム起動処理の一部を変形されたものであり、変形仮想計算機システム1900がリセットされた場合に、変形仮想計算機システム1900を起動する処理である。
図25は、変形システム起動処理のフローチャートである。
変形仮想計算機システム1900がリセットされると、電源制御ブロック1911は、省電力プロセッサA1901に1.0Vの電圧を供給し、クロック制御ブロック1912は、省電力プロセッサA1901に500MHzのクロック信号を供給し、省電力プロセッサA1901が起動する(ステップS2500)。
省電力プロセッサA1901が起動すると、省電力プロセッサA1901は、ハイパーバイザ2240を起動する(ステップS2510)。
ハイパーバイザ2240が起動すると、仮想計算機管理手段2243は、実行対象となる全ての仮想計算機が、それぞれ1つのプロセッサと対応付けられるように仮想計算機情報を生成し、生成した仮想計算機情報を仮想計算機情報記憶手段に記憶させる(ステップS2520)。
このとき、実行対象となる仮想計算機を対応付けていくプロセッサの順番は、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、高性能プロセッサC1906の順となり、生成される仮想計算機情報のタスク数2302には、それぞれ初期値である”0”を示す情報が代入される。
ステップS2520の処理が終了すると、プロセッサ管理手段2244は、実行対象となる仮想計算機を対応付けられたプロセッサのそれぞれの属性が”実行”となるように、また、属性が”実行”とならなかった省電力プロセッサが存在するとき、属性が”実行”となっていない省電力プロセッサのうちの1つのプロセッサの属性を”待機”とし、さらに、属性が”実行”、又は”待機”とならなかった省電力プロセッサが存在すれば、そのプロセッサの属性を”オフ”となるように、そして、属性が”実行”となっていない高性能プロセッサが存在するとき、属性が”実行”となっていない高性能プロセッサのうちの1つのプロセッサの属性を”待機”とし、さらに、属性が”実行”、又は”待機”となっていない高性能プロセッサが存在すれば、そのプロセッサの属性を”オフ”とするように、プロセッサ情報を生成し、生成したプロセッサ情報をプロセッサ情報記憶手段446に記憶させる(ステップS2530)。
ステップS2530の処理が終了すると、プロセッサ管理手段2244は、省電力プロセッサA1901以外のプロセッサのそれぞれについて、プロセッサ情報記憶手段446に記憶させたプロセッサ情報に基づいて、変形プロセッサ更新処理を実施する(ステップS2540)。
図26、図27は、プロセッサ管理手段2244の行う変形プロセッサ更新処理のフローチャートである。
変形プロセッサ更新処理が開始されると、プロセッサ管理手段2244は、対象のプロセッサが省電力プロセッサか否かを調べる(ステップS2600)。
ステップS2600の処理において、対象のプロセッサが省電力プロセッサである場合に(ステップS2600:Yes)、プロセッサ管理手段2244は、対象となるプロセッサの現在の属性が”実行”であるか否かを調べる(ステップS2610)。
ステップS2610の処理において、属性が”実行”である場合に(ステップS2610:Yes)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が1.0Vとなるように変更し、供給するクロック信号の周波数が500MHzとなるように変更する(ステップS2620)。
ステップS2610の処理において、対象となるプロセッサの現在の属性が”実行”でない場合には(ステップS2610:No)、プロセッサ管理手段2244は、対象となるプロセッサの現在の属性が”待機”であるか否かを調べる(ステップS2630)。
ステップS2630の処理において、対象となるプロセッサの現在の属性が”待機”である場合には(ステップS2630:Yes)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が0.8Vとなるように変更し、供給するクロック信号の周波数が250MHzとなるように変更する(ステップS2640)。
ステップS2630の処理において、対象となるプロセッサの現在の属性が”待機”でない場合には(ステップS2630:No)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が0Vとなるように変更し、供給するクロック信号の周波数が0Hzとなるように変更する(ステップS2650)。
ステップS2600の処理において、対象のプロセッサが省電力プロセッサでない、すなわち、高性能プロセッサである場合に(ステップS2600:No)、プロセッサ管理手段2244は、対象となるプロセッサの現在の属性が”実行”であるか否かを調べる(ステップS2710)。
ステップS2710の処理において、属性が”実行”である場合に(ステップS2710:Yes)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が1.2Vとなるように変更し、供給するクロック信号の周波数が1GHzとなるように変更する(ステップS2720)。
ステップS2710の処理において、対象となるプロセッサの現在の属性が”実行”でない場合には(ステップS2710:No)、プロセッサ管理手段2244は、対象となるプロセッサの現在の属性が”待機”であるか否かを調べる(ステップS2730)。
ステップS2730の処理において、対象となるプロセッサの現在の属性が”待機”である場合には(ステップS2730:Yes)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が1.0Vとなるように変更し、供給するクロック信号の周波数が500MHzとなるように変更する(ステップS2740)。
ステップS2730の処理において、対象となるプロセッサの現在の属性が”待機”でない場合には(ステップS2730:No)、プロセッサ管理手段2244は、そのプロセッサに供給する電源電圧が0Vとなるように変更し、供給するクロック信号の周波数が0Hzとなるように変更する(ステップS2750)。
ステップS2620の処理が終了した場合、ステップS2640の処理が終了した場合、ステップS2650の処理が終了した場合、ステップS2720の処理が終了した場合、ステップS2740の処理が終了した場合、ステップS2750の処理が終了した場合に、プロセッサ管理手段2244は、その変形プロセッサ更新処理を終了する。
ステップS2540の処理(変形プロセッサ更新処理)が終了すると、仮想計算機割当手段2242は、仮想計算機情報記憶手段445に記憶されている仮想計算機情報に基づいて、仮想計算機と対応付けられているプロセッサで仮想計算機を動作させる(ステップS2550)。
ステップS2550の処理が終了すると、変形仮想計算機システム1900は、その変形システム起動処理を終了する。
<変形システム更新処理>
変形システム更新処理は、実施の形態1におけるシステム更新処理の一部を変形されたものであり、各仮想計算機上で動作しているOSが管理する待ち行列のそれぞれに存在するタスクの数の変動に応じて、各プロセッサの属性を動的に変更し、各仮想計算機のプロセッサへの割り当てを動的に変更する処理である。
図28は、変形システム更新処理のフローチャートである。
変形システム更新処理のうち、ステップS2800、ステップS2810、ステップS2820、ステップS2830の処理は、それぞれ、実施の形態1におけるシステム更新処理(図8参照)のステップS800、ステップS810、ステップS820、ステップS830の処理と同等の処理なので、ここでは説明を省略する。
ステップS2830の処理において、更新前のタスク数と更新後のタスク数とで変化しているものがある場合に(ステップS2830:Yes)、仮想計算機管理手段2243は、そのタスク数に対応する仮想計算機IDを仮想計算機割当手段2242に出力し、変形仮想計算機システム1900は、変形仮想計算機割当処理を実施する(ステップS2840)。
図29、図30は、変形仮想計算機システム1900の行う変形仮想計算機割当処理のフローチャートである。
仮想計算機割当手段2242は、変化しているタスク数に対応する仮想計算機IDを受け取ると、受け取った仮想計算機IDの中から1つを選択する。
仮想計算機割当手段2242は、仮想計算機IDを1つ選択すると、仮想計算機情報記憶手段445に記憶されている仮想計算機情報を読み出して、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサが省電力プロセッサであるか否かを調べる(ステップS2900)。
ステップS2900の処理において、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサが省電力プロセッサである場合に(ステップS2900:Yes)、仮想計算機割当手段2242は、その仮想計算機に対応付けられているタスク数が第1所定量(例えば30)以上であるか否かを調べる(ステップS2910)。
ステップS2910の処理において、タスク数が第1所定量(例えば30)以上の場合に(ステップS2910:Yes)、仮想計算機割当手段2242は、”待機”属性の高性能プロセッサが存在するか否かを調べる(ステップS2920)。
ステップS2920の処理において、”待機”属性の高性能プロセッサが存在する場合に(ステップS2920:Yes)、仮想計算機割当手段2242は、その”待機”属性の高性能プロセッサの属性が”実行”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS2925)。
ステップS2925の処理が終わると、仮想計算機割当手段2242は、選択している仮想計算機IDによって特定される仮想計算機を割り当てられて実行するプロセッサを、その仮想計算機が現在割り当てられて動作しているプロセッサ(以後、移動元プロセッサと呼ぶ。)から、ステップS2920の処理において存在することが判明した”待機”属性のプロセッサ(以後、移動先プロセッサと呼ぶ。)へと変更する(ステップS2930:変形仮想計算機割当変更処理)。
図31は、変形仮想計算機システム1900の行う変形仮想計算機割当変更処理のフローチャートである。
変形仮想計算機システム1900が変形仮想計算機割当変更処理を開始すると、仮想計算機割当手段2242は、移動元プロセッサにおける仮想計算機の状態(各種レジスタに記憶されているデータ等の、仮想計算機の処理を復旧させるために必要なデータ群)を、RAM114の所定の領域に退避させ(ステップS3100)、移動先プロセッサで対象となる仮想計算機を復旧させて動作させる(ステップS3110)。
ステップS3110の処理が終了すると、変形仮想計算機システム1900は、その変形仮想計算機割当変更処理を終了する。
再び、図29に戻って変形仮想計算機割当処理の説明を続ける。
ステップS2930の処理が終了した場合、又はステップS2920の処理において、”待機”属性の高性能プロセッサが存在しない場合に(ステップS2920:No)、仮想計算機割当手段2242は、”オフ”属性の高性能プロセッサが存在するか否かを調べる(ステップS2940)。
ステップS2940の処理において、”オフ”属性の高性能プロセッサが存在する場合に(ステップS2940:Yes)、仮想計算機割当手段2242は、その”オフ”属性の高性能プロセッサの属性が”待機”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS2950)。
ステップS2950の処理が終了した場合に、仮想計算機割当手段2242は、”待機”属性の省電力プロセッサが存在するか否かを調べる(ステップS2960)。
ステップS2960の処理において、”待機”属性の省電力プロセッサが存在する場合に(ステップS2960:Yes)、仮想計算機割当手段2242は、移動元プロセッサの属性が”オフ”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS2970)。
ステップS2960の処理において、”待機”属性の省電力プロセッサが存在しない場合に(ステップS2960:No)、仮想計算機割当手段2242は、移動元プロセッサの属性が”待機”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS2980)。
ステップS2900の処理において、選択している仮想計算機IDによって特定される仮想計算機が動作しているプロセッサが省電力プロセッサでない場合、すなわち、高性能プロセッサである場合に(ステップS2900:No)、仮想計算機割当手段2242は、その仮想計算機に対応付けられているタスク数が第2所定量(例えば25)以下であるか否かを調べる(ステップS3000)。
ステップS3000の処理において、タスク数が第2所定量(例えば25)以下の場合に(ステップS3000:Yes)、仮想計算機割当手段2242は、”待機”属性の省電力プロセッサが存在するか否かを調べる(ステップS3010)。
ステップS3010の処理において、”待機”属性の省電力プロセッサが存在する場合に(ステップS3010:Yes)、仮想計算機割当手段2242は、選択している仮想計算機IDによって特定される仮想計算機を割り当てられて実行するプロセッサを移動元プロセッサとして、ステップS2920の処理において存在することが判明した”待機”属性のプロセッサを移動先プロセッサとして、変形仮想計算機割当変更処理を実施する(ステップS3020)。
ステップS3020の処理が終了した場合、又はステップS3010の処理において、”待機”属性の省電力プロセッサが存在しない場合に(ステップS3010:No)、仮想計算機割当手段2242は、”オフ”属性の省電力プロセッサが存在するか否かを調べる(ステップS3030)。
ステップS3030の処理において、”オフ”属性の省電力プロセッサが存在する場合に(ステップS3030:Yes)、仮想計算機割当手段2242は、その”オフ”属性の省電力プロセッサの属性が”待機”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS3040)。
ステップS3040の処理が終了した場合に、仮想計算機割当手段2242は、”待機”属性の高性能プロセッサが存在するか否かを調べる(ステップS3050)。
ステップS3050の処理において、”待機”属性の高性能プロセッサが存在する場合に(ステップS3050:Yes)、仮想計算機割当手段2242は、移動元プロセッサの属性が”オフ”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS3060)。
ステップS3050の処理において、”待機”属性の省電力プロセッサが存在しない場合に(ステップS3050:No)、仮想計算機割当手段2242は、移動元プロセッサの属性が”待機”となるように、プロセッサ管理手段2244を用いて、プロセッサ情報記憶手段446に記憶されているプロセッサ情報を更新する(ステップS3070)。
ステップS2910の処理において、タスク数が第1所定量(例えば30)以上でない場合(ステップS2910:No)、ステップS2940の処理において、”オフ”属性の高性能プロセッサが存在しない場合(ステップS2940:No)、ステップS2970の処理が終了した場合、ステップS2980の処理が終了した場合、ステップS3000の処理において、タスク数が第2所定量(例えば25)以下でない場合(ステップS3000:No)、ステップS3030の処理において、”オフ”属性の省電力プロセッサが存在しない場合(ステップS3030:No)ステップS3060の処理が終了した場合、ステップS3070の処理が終了した場合に、仮想計算機割当手段2242は、受け取った仮想計算機IDの中に未だ選択したことのない仮想計算機IDがあるか否かを調べる(図29のステップS2990)。
ステップS2990の処理において、未だ選択したことのない仮想計算機IDが存在する場合に(ステップS2990:Yes)、仮想計算機割当手段2242は、未だ選択したことのない仮想計算機IDのうちの1つを選択し、再びステップS2900の処理に戻って、ステップS2900以降の処理を行う。
ステップS2990の処理において、未だ選択したことのない仮想計算機IDが存在しない場合に(ステップS2990:No)、変形仮想計算機システム1900は、その仮想計算機割当処理を終了する。
再び図28に戻って、変形システム更新処理の説明を続ける。
ステップS2840の処理が終了すると、プロセッサ管理手段2244は、ステップS2840の仮想計算機割当処理において、プロセッサ情報記憶手段446に記憶されているプロセッサ情報の属性が更新されたプロセッサが存在するか否かを調べる(ステップS2850)。
ステップS2850の処理において、プロセッサ情報の属性が更新されていた場合に(ステップS2850:Yes)、プロセッサ管理手段2244は、属性が更新されていたプロセッサのそれぞれに対して、プロセッサ更新処理(図26、図27参照)を実施する(ステップS2860)。
ステップS2830の処理において更新前のタスク数と更新後のタスク数とで変化しているものがない場合(ステップS2830:No)、ステップS2850の処理においてプロセッサ情報の属性が更新されてなかった場合(ステップS2850:No)、又はステップS2860の処理が終了した場合に、負荷監視手段441は、起動中のタイマで計測している時間が所定時間T1(例えば100μs)となるまで待機する(ステップS2870)。
計測している時間が所定時間T1(例えば100μs)となると、負荷監視手段441は再びステップS2800の処理に戻り、ステップS2800以下の処理を行う。
<具体例>
以下、上述の変形システム更新処理について、具体例を用いて説明を補足する。
この具体例は、時刻t1に、仮想計算機情報記憶手段445に記憶されている仮想計算機情報が図23に示されるものであり、プロセッサ情報記憶手段446に記憶されているプロセッサ情報が図24に示されるものであって、仮想計算機A411が省電力プロセッサA1901に割り当てられて実行され、仮想計算機B412が省電力プロセッサB1902に割り当てられて実行され、仮想計算機C413が省電力プロセッサC1903に割り当てられて実行され、高性能プロセッサA1904が省電力モードで起動しつつ新たな仮想計算機の割り当てに備えて待機し、高性能プロセッサB1905と高性能プロセッサC1906とは電源が供給されていない状態となっている場合において(図22参照)、時刻t2に、第3OSが管理するタスク待ち行列に存在するタスク数が5から40に変化したときの例である。
時刻t2以降において負荷監視手段441が各仮想計算機のOSによって管理されるタスク待ち行列に存在するタスク数を取得する最初のタイミングになると、負荷監視手段441は、各仮想計算機のOSによって管理されるタスク待ち行列に存在するタスク数を取得して、タイマを起動し、仮想計算機管理手段2243が仮想計算機情報を更新する(ステップS2800〜ステップS2820)。
更新された仮想計算機情報は、図32に示されるものとなる。
仮想計算機C413のタスク数が5から40に変化しているので(ステップS2830:Yes)、変形仮想計算機システム1900は、変形仮想計算機割当処理を実施する(ステップS2840)。
仮想計算機C413が動作するプロセッサは、省電力プロセッサで(図32参照、ステップS2900:Yes)、タスク数が第1所定量(例えば30)以上で(ステップS2910:Yes)、”待機”属性の高性能プロセッサA1904が存在する(図24参照、ステップS2920:Yes)ので、仮想計算機割当手段2242は、高性能プロセッサA1904の属性を”実行”に変更してプロセッサ情報を更新して(ステップS2925)、変形仮想計算機割当変更処理(ステップS2940)を実行する。
仮想計算機割当手段2242は、仮想計算機C413が省電力プロセッサC1903に割り当てられて動作している状態を、仮想計算機C413が高性能プロセッサA1904に割り当てられて動作している状態に変更する(ステップS3100〜ステップS3110)。
高性能プロセッサB1905の属性は”オフ”なので(ステップS2940)、高性能プロセッサB1905の属性を”待機”に変更してプロセッサ情報を更新し(ステップS2950)、”待機”属性の省電力プロセッサがないので(ステップS2960:No)、省電力プロセッサC1903の属性を”待機”に変更してプロセッサ情報を更新する(ステップS2980)。
他にタスク数が変化している仮想計算機がないので(ステップS2990:No)、仮想計算機割当手段2242は、変形仮想計算機割当処理を終了し、プロセッサ管理手段2244は、プロセッサ情報の属性が更新されたプロセッサが存在するか否かを調べる(ステップS2850)。
この時のプロセッサ情報記憶手段446に記憶されているプロセッサ情報は図33に記憶されているものとなっており、省電力プロセッサC1903と高性能プロセッサA1904と高性能プロセッサB1905との属性が変更されていることがわかる(ステップS2860:Yes)。
省電力プロセッサC1903は、省電力プロセッサで(ステップS2600:Yes)、属性が”待機”なので(ステップS2610:No〜ステップS2630:Yes)、プロセッサ管理手段2244は、省電力プロセッサC1903に供給する電源電圧を1.0Vから0.8Vに変更し、省電力プロセッサC1903に供給するクロック信号の周波数を500MHzから250MHzに変更し(ステップS2640)、省電力プロセッサC1903を省電力モードとする。
高性能プロセッサA1904は、高性能プロセッサで(ステップS2600:No)、属性が”実行”なので(ステップS2710:Yes)、プロセッサ管理手段2244は、高性能プロセッサA1904に供給する電源電圧を1.0Vから1.2Vに変更し、高性能プロセッサA1904に供給するクロック信号の周波数を500MHzから1GHzに変更し(ステップS2720)、高性能プロセッサA1904を通常動作モードとする。
高性能プロセッサB1905は、高性能プロセッサで(ステップS2600:No)、属性が”待機”なので(ステップS2710:No〜ステップS2730:Yes)、プロセッサ管理手段224は、高性能プロセッサB1905に1.0Vの電源電圧を供給し、500MHzのクロック信号を供給して、高性能プロセッサB1905を省電力モードで起動させる(図34参照)。
その後、負荷監視手段441は、起動中のタイマで計測している時間が所定時間T1(例えば100μs)となるまで待機する(ステップS2870)。
<まとめ>
上述の変形仮想計算機システム1900によれば、省電力プロセッサに割り当てられて動作している仮想計算機のタスク数が第1所定量以上になると、その仮想計算機を省電力プロセッサよりも処理能力の高い高性能プロセッサに割り当てて動作させることができるようになる。
また、上記変形仮想計算機システム1900によれば、高性能プロセッサに割り当てられて動作している仮想計算機のタスク数が第2所定量以下になると、その仮想計算機を高性能プロセッサよりも消費電力の少ない省電力プロセッサに割り当てて動作させることができるようになる。
<補足>
以上、本発明に係る仮想計算機システムの一実施形態として、実施の形態1、実施の形態2において、2つの仮想計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの仮想計算機システムに限られないことはもちろんである。
(1)実施の形態1において、仮想計算機システム100が4つのプロセッサを備える場合の例について説明したが、複数のプロセッサを備えていれば、プロセッサの数は必ずしも4に限られることはなく、例えば、プロセッサの数が3、10等であっても構わない。
(2)実施の形態2において、各プロセッサは、通常モード時に電源電圧が1.2Vで動作周波数が1GHzで動作し、省電力モード時に電源電圧が1.0Vで動作周波数が500MHzで動作する場合の例について説明したが、必ずしも通常モード時に電源電圧が1.2Vで動作周波数が1GHzで動作し、省電力モード時に電源電圧が1.0Vで動作周波数が500MHzで動作する必要はなく、通常モード時のデータ処理能力が省電力モード時のデータ処理能力以上であって、通常モード時の消費電力が省電力モード時の消費電力以上であれば、例えば、通常モード時に電源電圧が1.5Vで動作周波数が200MHzで動作し、省電力モード時に電源電圧が1.2Vで動作周波数が100MHzで動作するとしても構わない。
さらには、通常モードと省電力モードとで、電源電圧と動作周波数とが同じ、すなわち、通常モードと省電力モードとの区別がないとしても構わない。
(3)実施の形態1において、仮想計算機システム100は、仮想計算機で動作するOSによって管理されるタスク待ち行列に存在するタスクの数に基づいて、プロセッサの属性を変更する場合の例について説明したが、仮想計算機の負荷量を示す指標となり得るものに基づいて、プロセッサの属性を変更することができれば、必ずしもタスクの数に基づいて、プロセッサの属性を変更する必要はなく、例えば、タスクの種類によって重み付けされたタスクの数に基づいて、プロセッサの属性を変更するとしても構わないし、タスクの種類に基づいて、プロセッサの属性を変更するとしても構わない。
(4)実施の形態1において、各仮想計算機が1つのプロセッサに割り当てられて動作する場合の例について説明したが、仮想計算機を実現することができれば、1つの仮想計算機が割り当てられるプロセッサは必ずしも1つである必要はなく、例えば、1つの仮想計算機が2つのプロセッサに割り当てられて動作するとしても構わない。
(5)実施の形態1において、仮想計算機システム100は、一部のプロセッサに仮想計算機が割り当てられていない場合に、次に新たなプロセッサに仮想計算機を割り当てる場合に備えて、仮想計算機が割り当てられていないプロセッサのうちの1つのプロセッサに電力を供給して待機状態としておき、その他の仮想計算機が割り当てられていないプロセッサに電力を供給しないという制御を行う例について説明したが、待機状態となるプロセッサが存在していれば、必ずしも待機状態としておくプロセッサの数は1つに限られず、例えば、待機状態となるプロセッサが2つとなるように制御しても構わないし、例えば、午前9時から午後7時までの時刻には待機状態となるプロセッサは2つで、それ以外の時刻には待機状態となるプロセッサが1つとなるように制御するというように、時刻に応じて待機状態となるプロセッサの数が変動するように制御しても構わない。
(6)実施の形態1において、仮想計算機システム100は、”待機”属性のプロセッサが存在する場合において、仮想計算機が割り当てられていたプロセッサに仮想計算機が割り当てられなくなるとき、その新たに仮想計算機が割り当てられなくなるプロセッサを”オフ”属性にする場合の例について説明したが、待機属性のプロセッサが少なくとも1つ存在するように制御できれば、必ずしも新たに仮想計算機が割り当てられなくなるプロセッサを”オフ”属性にする必要はなく、例えば、”待機”属性のプロセッサを”オフ”属性とし、新たに仮想計算機が割り当てられなくなるプロセッサを”待機”属性とするとしても構わない。
(7)実施の形態1において、プロセッサA101とプロセッサB102とプロセッサC103とプロセッサD104と電源制御ブロック111とクロック制御ブロック112とROM113とRAM114とハードディスク装置インターフェース115と出力装置インターフェース116と入力装置インターフェース117と内部バス120とが、1つのシステムLSI110に集積されている例について説明したが、これらの回路が必ずしも1つのLSIに集積されている必要はなく、システムLSI110によって実現される機能を実現することができれば、例えば、各回路がそれぞれ互いに異なる集積回路に集積されている構成であっても構わない。
(8)実施の形態1において、第1所定量が例えば30で、第2所定量が例えば25である場合の例について説明したが、第1所定量が第2所定量以上であれば、第1所定量は必ずしも30である必要はなく、第2所定量は必ずしも25である必要はなく、例えば、第1所定量が100で第2所定量が90であっても構わないし、第1所定量と第2所定量とが共に40であっても構わない。
(9)実施の形態1において、プロセッサは、複数の仮想計算機を動作させる場合に、それぞれの仮想計算機を時分割方式で順番に繰り返し動作させる例について説明したが、複数の仮想計算機を動作させることができれば、必ずしも時分割方式で順番に繰り返し動作させる必要はなく、例えば、プロセッサは、複数のスレッドを並列に動作させることができるマルチスレッド処理機能を有していて、複数の仮想計算機を、そのマルチスレッド処理機能を利用して並列に動作させるとしても構わない。
(10)実施の形態1において、”待機”属性のプロセッサは、電源電圧が1.0Vで、動作周波数が500MHzで動作する例について説明したが、”待機”属性のプロセッサは、動作に必要となる電源電圧が供給されていれば、必ずしも電源電圧が1.0Vである必要はなく、また、必ずしも動作周波数が500MHzで動作している必要はない。
例えば、”待機”属性のプロセッサは、電源電圧が1.2Vで、動作周波数が0Hz、すなわち、動作していない状態であっても構わないし、電源電圧が1.2Vで、動作周波数が1GHzで動作していても構わない。
(11)実施の形態2において、省電力プロセッサの数と高性能プロセッサの数とが同じである場合の例について説明したが、省電力プロセッサの数が複数で、高性能プロセッサの数が複数であれば、必ずしも省電力プロセッサの数と高性能プロセッサの数とが同じである必要はない。
(12)実施の形態2において、省電力プロセッサと高性能プロセッサとが同じISAである場合の例について説明したが、必ずしも同じISAである必要はない。
異なるISAにおいて、実装されていない命令を実行する場合、例えば、ハイパーバイザ等によって命令のエミュレーションを行うことで代用できる。
(13)実施の形態2において、仮想計算機管理手段2243は、ハイパーバイザ2240起動時に、実行対象となる仮想計算機を割り当てていくプロセッサの順番を、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、高性能プロセッサC1906の順とする場合の例について説明したが、順番が一意に決まっていれば、必ずしも、省電力プロセッサA1901、省電力プロセッサB1902、省電力プロセッサC1903、高性能プロセッサA1904、高性能プロセッサB1905、高性能プロセッサC1906の順である必要はない。
(14)実施の形態1において、スイッチ設定レジスタ210のビット数が8ビットである場合の例について説明したが、各プロセッサに供給する電源電圧を設定することができるビット数であれば、必ずしも8ビットである必要はない。
また、実施の形態1では、仮想計算機システム100において、プロセッサの数が4であり、各プロセッサに供給する電源電圧が3種類である場合に、スイッチ設定レジスタ210のビット数を8ビットとする例について説明したが、仮想計算機システム100とプロセッサの数や電源電圧の種類が互いに異なる仮想計算機システムであれば、当然、その仮想計算機システムにおけるプロセッサの数や電源電圧の種類を反映して、スイッチ設定レジスタのビット数は決定される。
同様に、実施の形態2において、スイッチ設定レジスタ2010のビット数が12ビットである場合の例について説明したが、各プロセッサに供給する電源電圧を設定することができるビット数であれば、必ずしも12ビットである必要はない。
また、同様に、実施の形態2では、仮想計算機システム1900において、省電力プロセッサの数が3であり、各省電力プロセッサに供給する電源電圧が3種類であり、高性能プロセッサの数が3であり、各高性能プロセッサに供給する電源電圧が3種類である場合に、スイッチ設定レジスタ2010のビット数を12ビットとする例について説明したが、仮想計算機システム1900とプロセッサの数や電源電圧の種類が互いに異なる仮想計算機システムであれば、当然、その仮想計算機システムにおけるプロセッサの数や電源電圧の種類を反映して、スイッチ設定レジスタのビット数は決定される。
(15)実施の形態1において、セレクタ設定レジスタ310のビット数が8ビットである場合の例について説明したが、各プロセッサに供給するクロック信号の周波数を設定することができるビット数であれば、必ずしも8ビットである必要はない。
また、実施の形態1では、仮想計算機システム100において、プロセッサの数が4であり、各プロセッサに供給するクロック信号が3種類である場合に、セレクタ設定レジスタ310のビット数を8ビットとする例について説明したが、仮想計算機システム100とプロセッサの数やクロック信号の種類が互いに異なる仮想計算機システムであれば、当然、その仮想計算機システムにおけるプロセッサの数やクロック信号の種類を反映して、セレクタ設定レジスタのビット数が決定される。
同様に、実施の形態2において、セレクタ設定レジスタ2110のビット数が12ビットである場合の例について説明したが、各プロセッサに供給するクロック信号の周波数を設定することができるビット数であれば、必ずしも12ビットである必要はない。
また、同様に、実施の形態2では、仮想計算機システム1900において、省電力プロセッサの数が3であり、各省電力プロセッサに供給するクロック信号が3種類であり、高性能プロセッサの数が3であり、各高性能プロセッサに供給するクロック信号が3種類である場合に、セレクタ設定レジスタ2110のビット数を12ビットとする例について説明したが、仮想計算機システム1900とプロセッサの数やクロック信号の種類が互いに異なる仮想計算機システムであれば、当然、その仮想計算機システムにおけるプロセッサの数やクロック信号の種類を反映して、セレクタ設定レジスタのビット数が決定される。
(16)以下、さらに本発明の一実施形態に係る仮想計算機システムの構成及びその変形例と各効果について説明する。
(a)本発明の一実施形態に係る仮想計算機システムは、複数のプロセッサを有し、複数の仮想計算機を動作させる仮想計算機システムであって、電力を供給されているプロセッサに仮想計算機を割り当てる割当手段と、前記割当手段が、電力を供給されていて仮想計算機を割り当てられていないプロセッサに仮想計算機を割り当てる場合において、電力を供給されていないプロセッサが複数存在するとき、電力を供給されていないプロセッサのうちの一部のプロセッサに電力を供給し、電力を供給されていないプロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する電力供給手段とを備えることを特徴とする。
上述の構成を備える仮想計算機システムは、電力を供給されていて仮想計算機を割り当てられていないプロセッサに仮想計算機を割り当てる場合に、次に新たなプロセッサに仮想計算機を割り当てるときに備えて、電力供給手段によって新たに電力を供給されるプロセッサを待機状態にしておくことができるようになる。
また、仮想計算機を割り当てられていないプロセッサのうち、次に新たなプロセッサに仮想計算機を割り当てるときに備えて待機させておくプロセッサ以外のプロセッサには電力を供給されない。
従って、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑えることができる。
図35は、上記変形例において、複数のプロセッサを有し、複数の仮想計算機を動作させる仮想計算機システム上で実現される、割当手段3501と電力供給手段3502とを模式的に示す模式図である。
同図において、割当手段3501は、電力を供給されているプロセッサに仮想計算機を割り当てる機能を有する。この割当部3501は、一例として、実施の形態1(図4参照)における、ハイパーバイザ440の機能の一部として実現される。
電力供給手段3502は、割当手段3501が、電力を供給されていて仮想計算機を割り当てられていないプロセッサに仮想計算機を割り当てる場合において、電力を供給されていないプロセッサが複数存在するとき、電力を供給されていないプロセッサのうちの一部のプロセッサに電力を供給し、電力を供給されていないプロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する機能を有する。この電力供給手段3502は、一例として、実施の形態1における、ハイパーバイザ440の機能の一部として実現される。
(b)また、前記仮想計算機システムは、プロセッサのうち、電力を供給されているプロセッサに限ってクロック信号を供給するクロック供給手段を備えるとしてもよい。
このような構成にすることによって、動作しないプロセッサにクロック信号を供給しなくなるので、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑えることができるようになる。
(c)また、前記仮想計算機システムは、電力を供給されていて仮想計算機を割り当てられているプロセッサに供給するクロック信号の周波数の方が、電力を供給されていて仮想計算機を割り当てられていないプロセッサに供給するクロック信号の周波数よりも高くなるように、電力を供給されているプロセッサに供給するクロック信号を制御するクロック制御手段を備えるとしてもよい。
このような構成にすることによって、待機中のプロセッサの消費電力の方が、仮想計算機を割り当てられているプロセッサの消費電力よりも低くすることができるため、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑えることができるようになる。
(d)また、前記仮想計算機システムは、電力を供給されていて仮想計算機を割り当てられているプロセッサの電源電圧の方が、電力を供給されていて仮想計算機を割り当てられていないプロセッサの電源電圧よりも高くなるように、電力を供給されているプロセッサの電源電圧を制御する電圧制御手段を備えるとしてもよい。
このような構成にすることによって、待機中のプロセッサの消費電力の方が、仮想計算機を割り当てられているプロセッサの消費電力よりも低くすることができるため、仮想計算機システムのパフォーマンスの低下を防止しつつ、消費電力を抑えることができるようになる。
(e)また、前記仮想計算機システムは、前記電力供給手段は、さらに、電力を供給されていて仮想計算機を割り当てられていたプロセッサが仮想計算機を割り当てられていない状態となった場合に、電力を供給されていて仮想計算機を割り当てられていないプロセッサのうちの、少なくとも1つのプロセッサの電力供給を停止するとしてもよい。
このような構成にすることによって、待機中のプロセッサの数を少なくすることができるため、消費電力を抑えることができるようになる。
(f)また、前記仮想計算機システムは、前記割当手段は、前記仮想計算機の割り当てを、第1仮想計算機を割り当てられている第1プロセッサに当該第1仮想計算機以外の仮想計算機が割り当てられている場合において当該第1仮想計算機の処理対象とする処理が所定条件を満たすようになるとき、電力を供給されていて仮想計算機を割り当てられていない第2プロセッサが存在すれば、前記仮想計算機を、前記第1プロセッサから前記第2プロセッサに変更して割り当てるように行うとしてもよい。
このような構成にすることによって、複数の仮想計算機が割り当てられているプロセッサで動作している仮想計算機の中に、負荷が大きくなる仮想計算機があると、その仮想計算機を他のプロセッサに割り当てて、そのプロセッサをその仮想計算機に専有させて動作させることができるようになる。
(g)また、前記仮想計算機システムは、前記割当手段は、前記仮想計算機の割り当てを、第1仮想計算機を割り当てられている第1プロセッサに当該第1仮想計算機以外の仮想計算機が割り当てられていない場合において当該第1仮想計算機の処理対象とする処理が第1の所定条件を満たすようになるとき、処理対象とする処理が第2の所定条件を満たす仮想計算機を割り当てられている第2のプロセッサが存在すれば、前記第1仮想計算機を、前記第1プロセッサから前記第2プロセッサに変更して割り当てるように行うとしてもよい。
このような構成にすることによって、プロセッサを専有して動作している仮想計算機の負荷が小さくなると、その仮想計算機を他の仮想計算機とプロセッサを共有して動作させることができるようになる。
(h)また、前記仮想計算機システムは、前記仮想計算機システムは、複数の第1種プロセッサと、第1種プロセッサよりも処理能力と消費電力とが低い複数の第2種プロセッサとを有し、前記割当手段は、前記仮想計算機の割り当てを、プロセッサに割り当てられている仮想計算機のそれぞれについて、当該仮想計算機の処理対象とする処理が所定条件を満たすようになる場合に、割り当てるプロセッサのプロセッサ種を変更するように行い、前記電力供給手段は、前記電力の供給を、前記割当手段が、電力を供給されていて仮想計算機を割り当てられていない第1種プロセッサに仮想計算機を割り当てる場合において電力を供給されていない第1種プロセッサが複数存在するとき、電力を供給されていない第1種プロセッサのうちの一部のプロセッサに電力を供給し、電力を供給されていない第1種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持するように行い、前記割当手段が、電力を供給されていて仮想計算機を割り当てられていない第2種プロセッサに仮想計算機を割り当てる場合において電力を供給されていない第2種プロセッサが複数存在するとき、電力を供給されていない第2種プロセッサのうちの一部のプロセッサに電力を供給し、電力を供給されていない第2種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持するように行うとしてもよい。
このような構成にすることによって、プロセッサの種類が1つの仮想計算機システムに比べて、よりきめ細かく、仮想計算機システムのパフォーマンスと消費電力とのトレードオフの調整をすることができるようになる。
(i)また、前記仮想計算機システムは、前記電力供給手段は、さらに、電力を供給されていて仮想計算機を割り当てられていた第1種プロセッサが仮想計算機を割り当てられていない状態となった場合に、電力を供給されていて仮想計算機を割り当てられていない第1種プロセッサのうちの、少なくとも1つの第1種プロセッサの電力供給を停止し、電力を供給されていて仮想計算機を割り当てられていた第2種プロセッサが仮想計算機を割り当てられていない状態となった場合に、電力を供給されていて仮想計算機を割り当てられていない第2種プロセッサのうちの、少なくとも1つの第2種プロセッサの電力供給を停止するとしてもよい。
このような構成にすることによって、待機中の第1種プロセッサの数と待機中の第2種プロセッサの数とを少なくすることができるため、消費電力を抑えることができるようになる。
本発明は、複数のプロセッサを有し、複数の仮想計算機を動作させるシステムに広く利用することができる。
100 仮想計算機システム
101 プロセッサA
102 プロセッサB
103 プロセッサC
104 プロセッサD
110 システムLSI
111 電源制御ブロック
112 クロック制御ブロック
113 ROM
114 RAM
115 ハードディスク装置インターフェース
116 出力装置インターフェース
117 入力装置インターフェース
120 内部バス
130 ハードディスク装置
131 出力装置
132 入力装置

Claims (11)

  1. 電力が供給されて動作する第1の状態と、前記第1の状態より少ない電力が供給されて動作する第2の状態と、電力が供給されずに停止する第3の状態とのうちのいずれかの状態となる複数のプロセッサを有し、複数の仮想計算機を動作させる仮想計算機システムであって、
    前記複数のプロセッサは、複数の第1種プロセッサと、第1種プロセッサよりも処理能力と消費電力とが低い複数の第2種プロセッサとを含み、
    電力を供給されているプロセッサに仮想計算機を割り当てる割当手段と、
    前記割当手段が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第1種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第1種プロセッサが複数存在するとき、前記第3の状態にある第1種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第1種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持し、前記割当手段が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第2種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第2種プロセッサが複数存在するとき、前記第3の状態にある第2種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第2種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する電力供給手段とを備え
    前記割当手段は、前記仮想計算機の割り当てを、プロセッサに割り当てられている仮想計算機のそれぞれについて、当該仮想計算機の処理対象とする処理が所定条件を満たすようになる場合に、割り当てるプロセッサのプロセッサ種を変更するように行う
    ことを特徴とする仮想計算機システム。
  2. プロセッサのうち、電力を供給されているプロセッサに限ってクロック信号を供給するクロック供給手段を備える
    ことを特徴とする請求項1記載の仮想計算機システム。
  3. 前記第1の状態にあり、かつ、仮想計算機を割り当てられているプロセッサに供給するクロック信号の周波数の方が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていないプロセッサに供給するクロック信号の周波数よりも高くなるように、電力を供給されているプロセッサに供給するクロック信号を制御するクロック制御手段を備える
    ことを特徴とする請求項2記載の仮想計算機システム。
  4. 前記第1の状態にあり、かつ、仮想計算機を割り当てられているプロセッサの電源電圧の方が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていないプロセッサの電源電圧よりも高くなるように、電力を供給されているプロセッサの電源電圧を制御する電圧制御手段を備える
    ことを特徴とする請求項1記載の仮想計算機システム。
  5. 前記電力供給手段は、さらに、前記第1の状態にあり、かつ、仮想計算機を割り当てられていたプロセッサが仮想計算機を割り当てられていない状態となった場合に、前記第2の状態にあり、かつ、仮想計算機を割り当てられていないプロセッサのうちの、少なくとも1つのプロセッサの電力供給を停止する
    ことを特徴とする請求項1記載の仮想計算機システム。
  6. 前記割当手段は、前記仮想計算機の割り当てを、第1仮想計算機を割り当てられている第1プロセッサに当該第1仮想計算機以外の仮想計算機が割り当てられている場合において当該第1仮想計算機の処理対象とする処理が所定条件を満たすようになるとき、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第2プロセッサが存在すれば、前記仮想計算機を、前記第1プロセッサから前記第2プロセッサに変更して割り当てるように行う
    ことを特徴とする請求項1記載の仮想計算機システム。
  7. 前記割当手段は、前記仮想計算機の割り当てを、第1仮想計算機を割り当てられている第1プロセッサに当該第1仮想計算機以外の仮想計算機が割り当てられていない場合において当該第1仮想計算機の処理対象とする処理が第1の所定条件を満たすようになるとき、処理対象とする処理が第2の所定条件を満たす仮想計算機を割り当てられている第2のプロセッサが存在すれば、前記第1仮想計算機を、前記第1プロセッサから前記第2プロセッサに変更して割り当てるように行う
    ことを特徴とする請求項1記載の仮想計算機システム。
  8. 前記電力供給手段は、さらに、前記第1の状態にあり、かつ、仮想計算機を割り当てられていた第1種プロセッサが仮想計算機を割り当てられていない状態となった場合に、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第1種プロセッサのうちの、少なくとも1つの第1種プロセッサの電力供給を停止し、前記第の状態にあり、かつ、仮想計算機を割り当てられていた第2種プロセッサが仮想計算機を割り当てられていない状態となった場合に、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第2種プロセッサのうちの、少なくとも1つの第2種プロセッサの電力供給を停止する
    ことを特徴とする請求項記載の仮想計算機システム。
  9. 電力が供給されて動作する第1の状態と、前記第1の状態より少ない電力が供給されて動作する第2の状態と、電力が供給されず動作しない第3の状態とのうちのいずれかの状態となる複数のプロセッサを有し、複数の仮想計算機を動作させる集積回路であって、
    前記複数のプロセッサは、複数の第1種プロセッサと、第1種プロセッサよりも処理能力と消費電力とが低い複数の第2種プロセッサとを含み、
    電力を供給されているプロセッサに仮想計算機を割り当てる割当手段と、
    前記割当手段が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第1種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第1種プロセッサが複数存在するとき、前記第3の状態にある第1種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第1種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持し、前記割当手段が、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第2種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第2種プロセッサが複数存在するとき、前記第3の状態にある第2種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第2種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する電力供給手段とを備え
    前記割当手段は、前記仮想計算機の割り当てを、プロセッサに割り当てられている仮想計算機のそれぞれについて、当該仮想計算機の処理対象とする処理が所定条件を満たすようになる場合に、割り当てるプロセッサのプロセッサ種を変更するように行う
    ことを特徴とする集積回路。
  10. 電力が供給されて動作する第1の状態と、前記第1の状態より少ない電力が供給されて動作する第2の状態と、電力が供給されず動作しない第3の状態とのうちのいずれかの状態となる複数のプロセッサを有し、複数の仮想計算機を動作させる仮想計算機システムを制御する制御方法であって、
    前記複数のプロセッサは、複数の第1種プロセッサと、第1種プロセッサよりも処理能力と消費電力とが低い複数の第2種プロセッサとを含み、
    電力を供給されているプロセッサに仮想計算機を割り当てる割当ステップと、
    前記割当ステップが、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第1種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第1種プロセッサが複数存在するとき、前記第3の状態にある第1種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第1種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持し、前記割当ステップが、前記第2の状態にあり、かつ、仮想計算機を割り当てられていない第2種プロセッサに仮想計算機を割り当てる場合において前記第3の状態にある第2種プロセッサが複数存在するとき、前記第3の状態にある第2種プロセッサのうちの一部のプロセッサに電力を供給して前記第2の状態とし、前記第3の状態にある第2種プロセッサのうちの前記一部のプロセッサ以外のプロセッサに電力を供給しない状態を維持する電力供給ステップとを備え
    前記割当ステップは、前記仮想計算機の割り当てを、プロセッサに割り当てられている仮想計算機のそれぞれについて、当該仮想計算機の処理対象とする処理が所定条件を満たすようになる場合に、割り当てるプロセッサのプロセッサ種を変更するように行う
    ことを特徴とする制御方法。
  11. 前記割当手段は、前記仮想計算機が前記第2プロセッサを専有して動作させるよう割り当てる
    ことを特徴とする請求項6記載の仮想計算機システム。
JP2012523514A 2010-07-06 2011-06-27 仮想計算機システム、仮想計算機制御方法、及び集積回路 Active JP5815524B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012523514A JP5815524B2 (ja) 2010-07-06 2011-06-27 仮想計算機システム、仮想計算機制御方法、及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010154068 2010-07-06
JP2010154068 2010-07-06
PCT/JP2011/003662 WO2012004948A1 (ja) 2010-07-06 2011-06-27 仮想計算機システム、仮想計算機制御方法、及び集積回路
JP2012523514A JP5815524B2 (ja) 2010-07-06 2011-06-27 仮想計算機システム、仮想計算機制御方法、及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2012004948A1 JPWO2012004948A1 (ja) 2013-09-02
JP5815524B2 true JP5815524B2 (ja) 2015-11-17

Family

ID=45440943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012523514A Active JP5815524B2 (ja) 2010-07-06 2011-06-27 仮想計算機システム、仮想計算機制御方法、及び集積回路

Country Status (5)

Country Link
US (1) US9069589B2 (ja)
EP (1) EP2592549B1 (ja)
JP (1) JP5815524B2 (ja)
CN (1) CN102971710B (ja)
WO (1) WO2012004948A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
WO2013065115A1 (ja) * 2011-10-31 2013-05-10 富士通株式会社 情報処理装置、情報処理装置の制御方法、仮想マシン制御プログラム及び情報処理システム
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
JP5998566B2 (ja) * 2012-03-27 2016-09-28 富士通株式会社 移動制御プログラム、移動制御方法および制御装置
US9104456B2 (en) * 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US8793688B1 (en) 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US20160149566A1 (en) * 2013-06-27 2016-05-26 Emory University Devices, Methods and Computer Readable Storage Media Storing Instructions for Generating Pulse Signals
WO2015009288A1 (en) * 2013-07-16 2015-01-22 Empire Technology Development, Llc Processor identification for virtual machines
US9634486B2 (en) * 2014-07-09 2017-04-25 Qualcomm Incorporated Dynamic power rail control for clusters of loads
CN104679218A (zh) * 2015-02-13 2015-06-03 小米科技有限责任公司 控制功耗的方法和装置
US10976801B2 (en) * 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006508445A (ja) * 2002-11-27 2006-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション固有の冗長特性に基づく自動電力制御ポリシー
JP2007323244A (ja) * 2006-05-31 2007-12-13 Nec Corp 仮想サーバ管理システムおよびその方法ならびに管理サーバ装置
JP2009116852A (ja) * 2007-10-18 2009-05-28 Fujitsu Ltd マイグレーションプログラム、および仮想マシン管理装置
JP2009140157A (ja) * 2007-12-05 2009-06-25 Hitachi Ltd 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007183B2 (en) 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US7756972B2 (en) * 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US8468230B2 (en) 2007-10-18 2013-06-18 Fujitsu Limited Method, apparatus and recording medium for migrating a virtual machine
US7441135B1 (en) * 2008-01-14 2008-10-21 International Business Machines Corporation Adaptive dynamic buffering system for power management in server clusters
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006508445A (ja) * 2002-11-27 2006-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション固有の冗長特性に基づく自動電力制御ポリシー
JP2007323244A (ja) * 2006-05-31 2007-12-13 Nec Corp 仮想サーバ管理システムおよびその方法ならびに管理サーバ装置
JP2009116852A (ja) * 2007-10-18 2009-05-28 Fujitsu Ltd マイグレーションプログラム、および仮想マシン管理装置
JP2009140157A (ja) * 2007-12-05 2009-06-25 Hitachi Ltd 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Also Published As

Publication number Publication date
EP2592549A4 (en) 2013-12-04
EP2592549B1 (en) 2020-10-14
WO2012004948A1 (ja) 2012-01-12
CN102971710B (zh) 2016-06-29
JPWO2012004948A1 (ja) 2013-09-02
US20130081016A1 (en) 2013-03-28
US9069589B2 (en) 2015-06-30
CN102971710A (zh) 2013-03-13
EP2592549A1 (en) 2013-05-15

Similar Documents

Publication Publication Date Title
JP5815524B2 (ja) 仮想計算機システム、仮想計算機制御方法、及び集積回路
US20230236903A1 (en) System and Method for Managing a Hybrid Compute Environment
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
US9197698B2 (en) Management computer, resource management method, resource management computer program, recording medium, and information processing system
US11243806B2 (en) System on chip including a multi-core processor and task scheduling method thereof
US8584125B2 (en) Apparatuses, methods, and computer-readable media for interrupt control
RU2530345C2 (ru) Экземпляры планировщика в процессе
JP5199000B2 (ja) ファイルサーバリソース分割方法、システム、装置及びプログラム
JP2007272263A (ja) 計算機の管理方法、計算機システム、及び管理プログラム
JP2008269332A (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
JPWO2007072544A1 (ja) 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
US11403149B2 (en) Management of a virtual network function
US9043575B2 (en) Managing CPU resources for high availability micro-partitions
US20180239646A1 (en) Information processing device, information processing system, task processing method, and storage medium for storing program
EP2255281B1 (en) System and method for managing a hybrid compute environment
JP2006031525A (ja) 情報処理装置および情報処理方法、並びに、プログラム
KR101557995B1 (ko) 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
JPH10293695A (ja) 論理計算機システムの動的再構成方式
WO2011118424A1 (ja) マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム
WO2017067402A1 (zh) 计算设备及计算设备存储部件的管理方法及系统
JP6102302B2 (ja) システム自動構成装置、情報処理システム、システム自動構成方法及びシステム自動構成プログラム
JPH06110717A (ja) 複合計算機システム
JPH04346136A (ja) 仮想命令プロセッサ構成制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131205

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150924

R150 Certificate of patent or registration of utility model

Ref document number: 5815524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250