JP2012018515A - 情報処理装置,制御方法,制御プログラム - Google Patents

情報処理装置,制御方法,制御プログラム Download PDF

Info

Publication number
JP2012018515A
JP2012018515A JP2010154806A JP2010154806A JP2012018515A JP 2012018515 A JP2012018515 A JP 2012018515A JP 2010154806 A JP2010154806 A JP 2010154806A JP 2010154806 A JP2010154806 A JP 2010154806A JP 2012018515 A JP2012018515 A JP 2012018515A
Authority
JP
Japan
Prior art keywords
state
guest
virtual machine
information processing
unit
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
Application number
JP2010154806A
Other languages
English (en)
Inventor
Noboru Iwamatsu
昇 岩松
Naoki Nishiguchi
直樹 西口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010154806A priority Critical patent/JP2012018515A/ja
Priority to US13/097,272 priority patent/US8843923B2/en
Publication of JP2012018515A publication Critical patent/JP2012018515A/ja
Pending legal-status Critical Current

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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

【課題】ゲストOSの省電力機能によることなく、デバイスの省電力管理を適切に行なうことができるようにする。
【解決手段】デバイスドライバ仮想マシン31を介してデバイス203にアクセスしている複数のゲスト仮想マシン30のそれぞれに関して、複数のゲスト仮想マシン30のうち一つとデバイス203との間における非アクセス状態での経過時間を非アクセス時間として測定する測定部106と、非アクセス時間とデバイス203の動作モードを表す動作モード情報とを対応付けた動作プロファイル情報T1を記憶する記憶部と、測定された非アクセス時間に基づいて動作プロファイル情報T1を参照して、動作モードを決定する決定部107,108と、デバイス203を決定された動作モードに遷移させる遷移制御部108とをそなえる。
【選択図】図1

Description

本件は、複数種類のデバイスをそなえた情報処理装置を制御する技術に関する。
近年、仮想化技術により、一台の物理計算機を論理的に複数の計算機に分割し、これらの計算機において、それぞれ独立したOS(Operating System;ゲストOS)を実行することが行なわれている。これらの論理的な計算機は、仮想マシンもしくはVM(Virtual Machine)と呼ばれることもある。
また、仮想化技術によれば、複数台のサーバ上で実行していたOSを1台のサーバに集約もしくは統合し、リソースの効率利用により省電力化を実現することもできる。更に、実行中の仮想マシンを別のサーバへと動的に移動させるマイグレーション技術も知られている。これにより、仮想マシンを業務負荷に応じて効率的に集約して余剰サーバの電力を切断するといった省電力運用方法も知られている。
一方で、元々サーバなど大型計算機のための技術であった仮想化技術は、計算機の小型化、飛躍的な性能向上などにより、ノートPC(Personal Computer)や携帯電話等のクライアント機器にも適用されつつある。これらのクライアント機器への仮想化技術の適用により、ユーザインタフェースの異なる複数のゲストOSを利用できることによる利便性の向上や、ハードウェアの抽象化やOSを下位レイヤーから管理することによるセキュリティの確保を期待することができる。なお、ノートPCや携帯電話はユーザが直接利用する機器であり、他の機器へ集約したりマイグレーションするといったサーバで用いられる省電力運用を行なうことは困難である。
さて、主にバッテリで駆動されるノートPCや携帯電話等の情報処理装置は、消費電力低減への要求が非常に高く、従来からOSやアプリケーションにより、きめ細かにデバイスの電源状態管理を行なっている。例えば、クロックダウンや電源供給停止などの低消費電力モードへの移行等の機能を実現している。しかし、仮想マシンシステムにおいてはこれらの電源状態管理手法を適用することができない。複数のゲストOSが同時に実行され、同一のデバイスを他のゲストOSから共有して使用している可能性があり、一のゲストOSから自由にデバイスの動作状態を停止することができないからである。
そこで、従来においては、例えば、ゲストOSから通知される状態遷移命令(例えば、ACPI(Advanced Configuration and Power Interface)命令)を管理OSで調停し、この管理OSが共有しているデバイスリソースを管理する手法が知られている。これにより、デバイスの実際の省電力モードへの遷移を制御し、複数のゲストOSが動作する仮想マシンシステムにおける消費電力を低減することができる。
特開2005−115653号公報 特開2006−113767号公報
しかしながら、上述の如く、仮想マシン上で動作する各ゲストOSからの状態遷移命令を管理OSで調停する手法においては、システム全体で省電力を適切に実現するためには、全てのゲストOSが常に適切に状態遷移命令を発行して積極的に省電力を行なうことが必要となる。すなわち、仮にゲストOSのうち1つでも状態遷移命令を発行しないものが存在すると、省電力モードへ遷移できないという問題がある。
システムの運用上においては、ゲストOSとして、状態遷移命令を発行する機能をそなえていないレガシーなOSを互換性維持のために実行する場合がある。このような場合において、例えば、レガシーなゲストOSが適切な状態遷移命令を発行できるように改変を行なうのは困難である。又、レガシーなゲストOSに限らず、開発リソースの問題から、全てのゲストOSに同等の省電力機構をそなえさせることが困難な場合もある。
一方で、ゲストOSがそれほど活発に動いていない状態である時に、ゲストOSからの遷移命令に依らず、管理OSや仮想マシンモニタの判断によって、デバイスを省電力モードに遷移させる場合がある。このような場合に、ゲストOSがデバイスを利用しようとした際にデバイスを省電力モードから復帰させる必要があり時間がかかる、という問題も生じる。
1つの側面では、このような課題に鑑み創案されたもので、デバイスの省電力管理を行なうことができるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
第1の案では、この情報処理装置は、デバイスを備えた情報処理装置であって、該デバイスに対して処理を行なう複数のゲスト仮想マシンと、該複数のゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンと、該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定部と、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を記憶する記憶部と、測定された該非アクセス時間に基づいて該動作プロファイル情報を参照して、動作モードを決定する決定部と、該デバイスを、決定された該動作モードに遷移させる遷移制御部とを備える。
また、第2の案では、制御方法は、デバイスを備えた情報処理装置の制御方法であって、該デバイスに対して処理を行なう複数のゲスト仮想マシンを実現するゲスト仮想マシン実現ステップと、該ゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンを実現するデバイスドライバ仮想マシン実現ステップと、該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定ステップと、該測定ステップにおいて測定された、該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、動作モードを決定する決定ステップと、該デバイスを、決定された該動作モードに遷移させる遷移制御ステップとをそなえる。
さらに、第3の案では、制御プログラムは、デバイスの制御機能をコンピュータに実行させるための制御プログラムであって、該デバイスに対して処理を行なうゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンを介して該デバイスにアクセスしている複数の該ゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定し、測定した該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、該動作モードを決定し、該デバイスを、決定した該動作モードに遷移させる処理を該コンピュータを機能させる。
一態様によれば、デバイスの省電力管理を行なうことができる。
第1実施形態の一例としての情報処理装置の機能構成を模式的に示す図である。 第1実施形態の一例としての情報処理装置におけるデバイス及びゲストOSの構成例を示す図である。 第1実施形態の一例としての情報処理装置におけるデバイスステートを例示する図である。 (a),(b),(c)は第1実施形態の一例としての省電力プロファイル管理テーブルを説明するための図である。 第1実施形態の一例としてのインアクティビティ管理テーブルの例を示す図である。 第1実施形態の一例としてのバーチャルステート管理テーブルの例を示す図である。 第1実施形態の一例としての情報処理装置における電力管理処理を説明するためのフローチャートである。 第2実施形態の一例としての情報処理装置の機能構成を模式的に示す図である。 (a),(b),(c)は第2実施形態の一例としての情報処理装置の省電力プロファイル管理テーブルを示す図である。 第2実施形態の一例としての情報処理装置における端末状態の変更に伴う省電力ステートの再計算及び再設定の遷移処理を説明するためのフローチャートである。 第3実施形態の一例としての情報処理装置の機能構成を模式的に示す図である。 第3実施形態の一例としての情報処理装置におけるタイマクロックの変更処理を伴なう電力管理手法を説明するためのフローチャートである。
以下、図面を参照して本情報処理装置、制御方法,制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体に係る実施の形態を説明する。
(A)第1実施形態
図1は第1実施形態の一例としての情報処理装置1aの機能構成を模式的に示す図、図2はそのデバイス及びゲストOSの構成例を示す図である。
情報処理装置1aは、例えば、携帯電話機やPDA(Personal Digital Assistant),パーソナルコンピュータのような情報処理装置である。本実施形態においては、情報処理装置1aとして携帯電話端末を用いた例について説明する。なお、以下、情報処理装置1aを単に端末という場合がある。
本情報処理装置1aは、図1に示すように、ハードウェアリソース20として、CPU201,ROM202,RAM211及び複数(本実施形態においては4つ)のデバイス203−1〜203−4をそなえている。
デバイス203−1〜203−4は、情報処理装置1aの各種機能を実現する電子部品(モジュール)である。本実施形態においては、3Gデバイス203−1,無線LANデバイス203−2,カメラデバイス203−3及びSDメモリデバイス203−4がそなえられている。
ここで、3Gデバイス203−1は、例えばITU(International Telecommunication Union:国際電気通信連合)によって定められた「IMT-2000」標準に準拠したデジタル携帯電話の通信方式(いわゆる第3世代の携帯電話方式)で通信を実現するためのモジュールである。
無線LANデバイス203−2は、無線LAN(Local Area Network)での通信を実現するモジュールである。又、カメラデバイス203−3はカメラの撮像モジュールであり、SDメモリデバイス203−4はSDメモリカードにデータの読み書きを実現するモジュールである。
すなわち、本情報処理装置1aは、3G方式や無線LANを介したデータ通信を可能とするとともに、カメラをそなえ、SDメモリカードにデータの読み書きを行なう機能をそなえた携帯電話機として構成されている。
なお、以下、デバイスを示す符号としては、3Gデバイス203−1,無線LANデバイス203−2,カメラデバイス203−3及びSDメモリデバイス203−4のうち1つを特定する必要があるときには符号203−1〜203−4を用いるが、任意のデバイスを指すときには符号203を用いる。
ROM202は、CPU201が実行するOSやプログラム,種々のデータ等を格納する記憶装置である。
RAM211は、種々のデータやプログラムを一時的に格納する記憶領域であって、CPU201がプログラムを実行する際に、データやプログラムを一時的に格納や展開をして用いる。又、このRAM211には、後述するデバイスドライバ仮想マシン31やゲスト仮想マシン30が仮想マシン間共有メモリ(図示省略)や各仮想メモリ(vRAM)に格納したデータ等が格納される。
CPU201は、種々の制御や演算を行なう処理装置であり、ROM202に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
また、本情報処理装置1aにおいては、ハードウェアリソース20上で仮想マシンモニタ(ハイパーバイザ)21を実行することにより、1以上のゲスト仮想マシン30(30−1,30−2,・・・)による仮想化システムを実現する。
仮想マシンモニタ21は、情報処理装置1aを仮想化し、複数のゲスト仮想マシン30−1,30−2やデバイスドライバ仮想マシン31を生成することにより、複数の異なるOSを並列に実行できるようにするソフトウェア(仮想化OS)である。この仮想マシンモニタ21は、ハードウェアリソース20のCPU201により実行されることによりその機能を実現する。
この仮想マシンモニタ21は、コンピュータのハードウェアのように振舞う仮想的なコンピュータである複数の仮想マシン(VM:Virtual Machine,バーチャルマシン)30やデバイスドライバ仮想マシン31をソフトウェアによって作り出す。そしてこれらの仮想マシン30やデバイスドライバ仮想マシン31上において、それぞれ様々な種類のOS(ゲストOS,管理OS)を稼動させることができる。
すなわち、仮想マシンモニタ21は、計算機資源であるハードウェアリソース20を複数の計算機資源としてハードウェア的に利用することを可能にする。
この仮想マシンモニタ21としては、例えば、VMware,Xen,Oracle VM,Hyper-V,KVM,LPAR等を用いることができる。
以下、本実施形態においては、仮想マシンモニタ21上で、デバイスドライバ仮想マシン31と複数(図1に示す例においては2つ)のゲスト仮想マシン30−1,30−2が動作する例について示す。
ゲスト仮想マシン30−A,30−Aは、仮想的に設けられた互いに独立した計算機であって、それぞれゲストOSを稼動させて、種々の処理を行なう。なお、以下、ゲスト仮想マシン30−A上で稼動するOSをゲストOS−Aといい、ゲスト仮想マシン30−B上で稼動するOSをゲストOS−Bという場合がある。
なお、以下、ゲスト仮想マシン30を示す符号としては、複数のゲスト仮想マシンのうち1つを特定する必要があるときには符号30−A,30−Aを用いるが、任意のゲスト仮想マシンを指すときには符号30を用いる。
本実施形態においては、情報処理装置1aは、ゲストOS−AとゲストOS−Bとの2つのゲストOSを実行し、必要に応じて、3Gデバイス203−1,無線LANデバイス203−2,カメラデバイス203−3及びSDメモリデバイス203−4のいずかにアクセスして処理を行なう。
そして、図2に例示する本実施形態例においては、情報処理装置1aにおいて、ゲストOS−Aは、3G,カメラ及びSDメモリを利用し、3G通信網を用いた通話もしくは通信機能を有している。又、ゲストOS−Bは、無線LAN,カメラ及びSDメモリを利用し、無線LAN網を利用した構内IP電話機能などを有するものとする。
ゲストOS−A,Bは、それぞれ1以上のフロントエンド(Frontend)ドライバ301をそなえている。
フロントエンドドライバ301−1〜301−4は、それぞれデバイスドライバであって、ゲスト仮想マシン30からデバイス203への各アクセスを制御する。これらのフロントエンドドライバ301−1〜301−4は、後述するデバイスドライバ仮想マシン31の管理OSにそなえられたバックエンド(Backend)ドライバ105−1〜105−4を介して各デバイス203にアクセスする。
図2に示す例においては、ゲスト仮想マシン30−AのゲストOS−Aが、フロントエンドドライバ301−1,301−3,301−4をそなえている。又、ゲスト仮想マシン30−BのゲストOS−Bが、フロントエンドドライバ301−2,301−3,301−4をそなえている。
具体的には、フロントエンドドライバ301−1はバックエンドドライバ105−1を介して3Gデバイス203−1にアクセスし、フロントエンドドライバ301−2はバックエンドドライバ105−2を介して無線LANデバイス203−2にアクセスする。同様に、フロントエンドドライバ301−3はバックエンドドライバ105−3を介してカメラデバイス203−3にアクセスし、フロントエンドドライバ301−4はバックエンドドライバ105−4を介してSDメモリデバイス203−4にアクセスする。
なお、図中、−1,−2,−3,−4のように、−(ハイフン)とともに示す文字を有する各符号は、同じ文字を有する各符号どうしの間に、それぞれ対応関係があることを示している。例えば、図2に示す例においては、フロントエンドドライバ301−1やバックエンドドライバ105−1は3Gデバイス203−1に対応する。同様に、フロントエンドドライバ301−2やバックエンドドライバ105−2は無線LANデバイス203−2に、又、フロントエンドドライバ301−3やバックエンドドライバ105−3はカメラデバイス203−3にそれぞれ対応する。更に、フロントエンドドライバ301−4やバックエンドドライバ105−4はSDメモリデバイス203−4に対応する。以下、同様に、−1〜−4の文字を有する符号どうしは、互いに対応関係にある部分であることを示す。
また、以下、フロントエンドドライバを示す符号としては、複数のフロントエンドドライバのうち1つを特定する必要があるときには符号301−1〜301−4を用いるが、任意のフロントエンドドライバを指すときには符号301を用いる。同様に、バックエンドドライバを示す符号としては、複数のバックエンドドライバのうち1つを特定する必要があるときには符号105−1〜105−4を用いるが、任意のバックエンドドライバを指すときには符号105を用いる。
デバイスドライバ仮想マシン31は、ゲスト仮想マシン30−A,30−Bによる各デバイス203へのアクセス処理の少なくとも一部を代行する。
本実施形態にかかる仮想マシンシステムにおいては、ゲストOSを実行するゲスト仮想マシン30の実際のデバイス203に対する入出力に関して、ゲスト仮想マシン30とは別に実際のデバイスにアクセスするための仮想マシンであるデバイスドライバ仮想マシン31をそなえる。
ゲスト仮想マシン30は、このデバイスドライバ仮想マシン31を仲介して実際のデバイス203にアクセスを行なうことができる。
ここで、デバイスドライバ仮想マシン31は、デバイス203毎に各々独立した仮想マシンである場合もあり得るし、又、複数のデバイス203との入出力をまとめた仮想マシンである場合もあり得るし、更に、デバイスドライバ仮想マシン31の機能を、管理用仮想マシンなど他の用途の仮想マシンに内在させる構成も取り得る。
いずれの構成においても、デバイスドライバ仮想マシン31は、実際のデバイス203を駆動するためのデバイスドライバ112をその仮想マシンの中に有し、ゲスト仮想マシン30からデバイス203に対する出力及びデバイス203からゲスト仮想マシン30に対する入力を仲介する役割を行なう。
このデバイスドライバ仮想マシン31は、図1に示すように、仮想マシン管理部(動作プロファイル情報管理部)101,タイマ割込み管理部104及びバックエンドドライバ105をそなえている。
タイマ割込み管理部104は、予め設定された一定間隔で割り込み信号(クロック信号,基準タイマクロック)を生成するものであり、この割込み信号をバックエンドドライバ105に入力する。本情報処理装置1aにおいては、このタイマ割込み管理部104から割込み信号が入力されたタイミングでCPU201の割当の変更や、時間のカウント等が行なわれる。
バックエンドドライバ105は、デバイス203を制御するためのデバイスドライバであって、フロントエンドドライバ301からのデバイス203へのアクセスリクエストに応じて、対応するデバイス203に対するアクセス制御を行なう。
バックエンドドライバ105はデバイス203毎にそなえられる。図2に示す例においては、3Gバックエンドドライバ105−1,無線LANバックエンドドライバ105−2,カメラバックエンドドライバ105−3及びSDメモリバックエンドドライバ105−4の4つのバックエンドドライバ105がそなえられている。
ここで、3Gバックエンドドライバ105−1は、フロントエンドドライバ301−1からのリクエストに応じて3Gデバイス203−1に対するアクセス制御を行なう。同様に、無線LANバックエンドドライバ105−2は、フロントエンドドライバ301−2からのリクエストに応じて、無線LANデバイス203−2に対するアクセス制御を行なう。又、カメラバックエンドドライバ105−3はフロントエンドドライバ301−3からのリクエストに応じて、カメラデバイス203−3に対するアクセス制御を行なう。更に、SDメモリバックエンドドライバ105−4は、フロントエンドドライバ301−4からのリクエストに応じて、SDメモリデバイス203−4に対するアクセス制御を行なう。
すなわち、情報処理装置1aにおいては、デバイス203毎に、フロントエンドドライバ301とバックエンドドライバ105との組が存在する。
なお、バックエンドドライバ105は、図示しない仮想マシン間共有メモリや仮想マシン間イベント送信チャネル等により、フロントエンドドライバ301との通信を行なう。なお、これらの仮想マシン間共有メモリや仮想マシン間イベント送信チャネル等を用いたフロントエンドドライバ301との通信手法は既知の種々の手法を用いて実現することができ、その説明は省略する。
各バックエンドドライバ105は、図1に示すように、省電力管理部110,ゲスト入出力制御部111及びデバイスドライバ112をそなえている。
ゲスト入出力制御部111は、ゲストOSのフロントエンドドライバ301からの入出力要求をデバイス203に仲介する仲介処理を行なう。又、ゲスト入出力制御部111は、後述する省電力管理部110に対してゲストOSからデバイス203に対してアクセスが行なわれたことを通知するデバイスアクセス通知を行なう。
デバイスドライバ112は、実際にデバイス203を制御し動作させるドライバである。又、このデバイスドライバ112は、デバイス203との入出力だけでなく、デバイス203に対して電力状態遷移命令を発行する機能もそなえ、デバイス203を種々の段階の省電力動作モード(デバイスステート,動作モード)に移行させる。
図3は第1実施形態の一例としての情報処理装置におけるデバイスステートを例示する図である。この図3に示す例においては、D0〜D3の4段階のデバイスステート(動作モード)を示している。
ここで、デバイスステートD0(動作状態)は、そのデバイス203がフル稼働状態であり、省電力動作状態ではないことを示す。デバイスステートD1は、そのデバイス203が稼動しているが、フル稼働状態よりも低速なバスクロックで稼動している状態である。なお、このデバイスステートD1からはデバイスステートD0にすぐに復帰(移行)することができる。
デバイスステートD2(スタンバイ状態)は、そのデバイス203が稼動しているが、デバイスステートD0よりも低速なバスクロックで稼動しており、更に、デバイス203にそなえられた一部の機能が停止(オフ)している状態である。なお、このデバイスステートD2からはデバイスステートD1からほどではないが比較的高速にデバイスステートD0に復帰することが可能である。
デバイスステートD3(オフ状態)は、デバイス203においてバスクロック及びデバイス電源供給が停止している状態であり、デバイスステートD0に復帰するにはデバイスリセット等の処理が必要である。
そして、これらのデバイスステートD0〜D3のうち、デバイスステートD1〜D3が省電力状態であり、以下、これらのデバイスステートD1〜D3を特に省電力ステートという場合がある。なお、各デバイスステートでの消費電力量は以下の順となる。
D0>D1>D2>D3
従って、各デバイスステートにおける省電力度合いは、以下の順となる。
D0<D1<D2<D3
すなわち、省電力ステートD1〜D3においては、D1からD2、D3と進むほど省電力効果が大きくなるが、デバイスステートD0へ復帰する時間もかかるようになる。
そして、デバイスドライバ112は、デバイス203を上述したデバイスステートD00〜D3のいずれかの段階の動作モードに移行させる。
また、バックエンドドライバ105においては、上述したゲスト入出力制御部111及びデバイスドライバ112により、デバイス203との入出力が実現される。
仮想マシン管理部(動作プロファイル情報管理部)101は、各デバイス203を各省電力ステートへ遷移させる際の基準となる情報を管理するものであり、図4(a)に示すような省電力プロファイル(Profile)管理テーブルT1を管理する。
図4(a),(b),(c)は、第1実施形態の一例としての省電力プロファイル管理テーブルT1を説明するための図である。ここで図4(a)は省電力プロファイル管理テーブルT1を例示する図である。又、図4(b)は、そのゲストOS−Aにかかるカメラデバイス203−3の各省電力ステートとインアクティビティ値との関係を例示する図である。更に、図4(c)は、そのゲストOS−Bにかかるカメラデバイス203−3の各省電力ステートとインアクティビティ値との関係を例示する図である。
省電力プロファイル管理テーブルT1は、図4(a)に示すように、各デバイス203についての各省電力ステートとインアクティビティ値との対応をゲストOS毎に管理する。
ここで、インアクティビティ値とは、ゲストOS(ゲスト仮想マシン30)のデバイス203へのアクセスについて、デバイス203へアクセスが行なわれていない経過時間であり、ゲストOS(ゲスト仮想マシン30)のそのデバイス203に対する不活性度合いを表す。
このインアクティビティ値は、後述するインアクティビティ管理部106が、タイマ割込み管理部104によるタイマ割込みにより、ゲスト入出力制御部111からゲストOSとデバイスキ203との間に入出力がない期間を積算(計数)することにより求められる。
また、インアクティビティ値は、ゲストOSとデバイス203との間において入出力があると0にリセットされる。なお、ゲストOSとデバイス203との間において入出力があったことは、ゲスト入出力制御部111から通知される。
すなわち、このインアクティビティ値は、ゲスト仮想マシン30(ゲストOS)とデバイス203との間における非アクセス状態での経過時間(非アクセス時間)を表す。なお、インアクティビティ値には予め上限値が設定され、この上限値以上は増えることがない。
図4(a)〜(c)に示す例においては、3Gデバイス203−1,無線LANデバイス203−2,カメラデバイス203−3及びSDメモリデバイス203−4のそれぞれに対して、ゲストOS−A,Bのそれぞれにおける、省電力ステートD1〜D3へ移行するための基準値(上限値)としてのインアクティビティ値を対応付けて構成している。
図4(b)に示すように、例えば、カメラデバイス203−3は、ゲストOS−Aについては、インアクティビティ値が0から100まではデバイスステートD0であり、100から200までが省電力ステートD1となる。又、省電力ステート200から180000までが省電力ステートD2である。なお、本実施形態においてはインアクティビティ値の上限値は180000であるものとする。
インアクティビティ値は、仮想マシンモニタや管理OSにおいて一定間隔で呼び出されるタイマ割込み処理の中で加算が行なわれる。このインアクティビティ値の計数は0からスタートし、一定間隔毎に1ずつインクリメントすることにより行なう。例えば、10msに1度処理が起床されるとして考えると、ゲストOSとデバイス203との間での入出力がなかった場合、インアクティビティ値は1秒間で100貯まることになる。なお、この場合、インアクティビティ値の最大値(上限値)である180000は30分に相当する。
そして、後述するバーチャルステート管理部107が、この省電力プロファイル管理テーブルT1を参照して、仮の省電力ステートの設定(変更)を行なう。
すなわち、この省電力プロファイル管理テーブルT1において、各省電力ステートに対応させて登録された各値(インアクティビティ値)は、その値を超過した場合にそれぞれの仮の省電力ステートを変更することを示す。
図4(a)〜(c)に示す例において、ゲストOS−Aのカメラデバイス203−3では、インアクティビティ値が100以下であればデバイスステートD0である。又、インアクティビティ値が100より大きく200未満であれば省電力ステートD1であり、インアクティビティ値が200より大きいと省電力ステートD2である。
なお、インアクティビティ値は最大値180000以上大きくなることはないので、ゲストOS−Aに関しては、カメラデバイス203―3は省電力ステートD3にはならないことを表している。一方、ゲストOS−Bに関しては、カメラデバイス203−3は、インアクティビティ値が100以下であればデバイスステートD0であり、インアクティビティ値が100より大きく200以下であれば省電力ステートD1である。又、インアクティビティ値が200より大きいと省電力ステートD2であり、又、インアクティビティ値が1000より大きいと省電力ステートD3になることを表している。
すなわち、上述の如く、省電力プロファイル管理テーブルT1は、ゲストOSの各デバイス203に対するインアクティビティ値と遷移を許可する省電力状態を列挙したプロファイルであり、状態遷移の基準となるインアクティビティ値が登録されている。
すなわち、省電力プロファイル管理テーブルT1は、各々のゲスト仮想マシン30がデバイス203をある一定の時間以上利用していない場合には、各々のゲスト仮想マシン30はデバイス203をどの省電力ステートに遷移されることが可能であるかを記述したテーブルである。
そして、仮想マシン管理部101は、インアクティビティ値(非アクセス時間)とデバイス203の省電力ステート(動作モード情報)とを対応付けた省電力プロファイル管理テーブルT1(動作プロファイル情報)を管理する動作プロファイル情報管理部として機能する。
また、省電力プロファイル管理テーブルT1は、例えば、仮想マシン間共有メモリ等の記憶装置(記憶部)に格納される。又、この省電力プロファイル管理テーブルT1の格納場所は、適宜、変更してもよい。
省電力管理部110は、デバイス203の省電力動作モードを管理するものであり、図1に示すように、インアクティビティ(Inactivity)管理部(測定部)106,バーチャルステート(Virtual State)管理部(決定部)107及びリアルステート(Real State)管理部(決定部,遷移制御部)108をそなえている。
インアクティビティ管理部106は、図示しないタイマからのタイマ割込みを、ゲスト入出力制御部111からゲストOSとデバイス203間の入出力がない期間を計数することによりインアクティビティ値を求める。すなわち、インアクティビティ管理部106は、インアクティビティ値(非アクセス時間)を測定する測定部として機能する。
すなわち、デバイスドライバ仮想マシン31は、実際のデバイス203とゲスト仮想マシン30間の入出力から、デバイスが各々のゲスト仮想マシンからどれだけ使用されているか、前回使用されてからどれだけ時間が経過しているかを測定もしくは算出する。
なお、前述の如く、インアクティビティ値には予め上限値が設定され、この上限値以上は増えることがない。
また、インアクティビティ管理部106は、求めたインアクティビティ値をインアクティビティ管理テーブルT2により管理する。
図5は第1実施形態の一例としてのインアクティビティ管理テーブルT2の例を示す図である。インアクティビティ管理テーブルT2は、そのバックエンドドライバ105に対応するデバイス203について、インアクティビティ値をゲストOS毎に対応付けて格納することにより構成されている。
インアクティビティ管理部106は、ゲストOSのデバイス203へのアクセスについて、デバイス203へアクセスが行なわれていない経過時間を、ゲストOSのそのデバイス203に対する不活性度合いであるインアクティビティ値として管理する。
また、インアクティビティ管理テーブルT2は、例えば、仮想マシン間共有メモリ上に格納される。又、このインアクティビティ管理テーブルT2の格納場所は、適宜、変更してもよい。
バーチャルステート管理部(決定部)107は、ゲストOSのデバイス203に対するインアクティビティ値に基づいて、省電力プロファイル管理テーブルT1を参照して、デバイス203が遷移可能な省電力ステートを仮のデバイスステート(動作モード)としてゲストOS毎に管理する。
このバーチャルステート管理部107は、図6に示すような、バーチャルステート管理テーブルT3を管理する。
図6は第1実施形態の一例としてのバーチャルステート管理テーブルT3の例を示す図である。バーチャルステート管理テーブルT3は、そのバックエンドドライバ105に対応するデバイス203について、その遷移可能な省電力ステートをゲストOS毎に対応付けて格納することにより構成されている。
バーチャルステート管理部107は、インアクティビティ管理部106によって算出されたインアクティビティ値に基づいて省電力プロファイル管理テーブルT1を参照し、対応するデバイス203について、インアクティビティ値に対応する省電力ステートを選択する。そしてバーチャルステート管理部107は、この選択した省電力ステートを仮のデバイスステートとしてバーチャルステート管理テーブルT3に格納する。
すなわち、バーチャルステート管理部107は、デバイス203を共有する複数の管理OS(ゲスト仮想マシン30)のそれぞれに対して仮のデバイスステートを決定する。
また、このバーチャルステート管理テーブルT3は、例えば、仮想マシン間共有メモリ上に格納される。又、このバーチャルステート管理テーブルT3の格納場所は、適宜、変更してもよい。
リアルステート管理部(決定部、遷移制御部)108は、バーチャルステート管理テーブルT3に登録された、デバイス203にかかる複数のゲストOSに対応する各仮の省電力ステートの中から、一の省電力ステートを選択し、デバイスドライバ112を介して、そのデバイス203の省電力状態を遷移させる。
このリアルステート管理部108は、バーチャルステート管理テーブルT3に登録された、デバイス203に対する複数のゲストOSにかかる各仮のデバイスステート(仮の動作モード)の中から、最も省電力度合いが小さい仮のデバイスステートを、実際のデバイス203のデバイスステート(デバイス選択モード)として決定する。
すなわち、前述したバーチャルステート管理部107とこのリアルステート管理部108とが、インアクティビティ管理部106によって測定されたインアクティビティ値に基づいて、省電力プロファイル管理テーブルT1を参照して、動作モードを決定する決定部として機能する。
デバイスドライバ仮想マシン31においては、省電力プロファイル管理テーブルT1を参照することで、各々のゲスト仮想マシン30にとって、現在デバイス203をどの省電力ステートに遷移可能であるかを算出することができる。そして、各々のゲスト仮想マシン30の遷移可能な省電力ステートを比較して、全てのゲスト仮想マシン30にとって遷移可能な省電力ステートを選択して、デバイス203の省電力ステートを変更する。
図4(a)〜(c)に示した例において、例えば、カメラデバイス203−3については、ゲストOS−AおよびゲストOS−Bのそれぞれのインアクティビティ値が1000以上(すなわち10秒以上入出力がない)の場合について考える。この場合、リアルステート管理部108は、バーチャルステート管理テーブルT3を参照して、ゲストOS−Aの仮の省電力ステートD2とゲストOS−Bの省電力ステートD3を比較した結果、省電力度合いの小さい省電力ステートD2を、カメラデバイス203−3の省電力ステートとして選択する。
また、リアルステート管理部108は、その対応するデバイス203を選択した省電力ステートに遷移させる。すなわち、リアルステート管理部108は、デバイス203を、決定された動作モードに遷移させる遷移制御部としても機能する。
上述の如く構成された、第1実施形態の一例としての情報処理装置1aにおける電力管理処理を、図7に示すフローチャート(ステップA10〜A120)に従って説明する。なお、本例においては、複数のデバイス203のうちカメラデバイス203−3の省電力管理を行なう例について説明する。
なお、ゲスト仮想マシン30やデバイスドライバ仮想マシン31は、仮想マシンモニタ21により既に実行されているものとする(ゲスト仮想マシン実現ステップ,デバイスドライバ仮想マシン実現ステップ)。
タイマ割込み管理部104の制御により割り込み信号が入力されると、省電力管理部110は、バックエンドドライバ105−3に接続中のゲストOSの一覧を取得する(ステップA10)。バックエンドドライバ105−3に接続中のゲストOSの一覧は、例えば、ゲスト入出力制御部111によって取得することができる。
先ず、取得されたゲストOSの一覧のうち、最初のゲストOSが選択される(ステップA20)。省電力管理部110は、この選択されたゲストOSに関して、テーブル(インアクティビティ管理テーブルT2及びバーチャルステート管理テーブルT3)の更新を開始する(ステップA30)。
インアクティビティ管理部106は、前回テーブル更新を行なってから今回のテーブル更新のまでの間に、ゲストOSとデバイス203−5との間で入出力が行なわれたか否かを確認する(ステップA40)。ゲストOSとデバイス203−5との間で入出力が行なわれていない場合には(ステップA40のNOルート参照)、インアクティビティ管理部106は、次に、インアクティビティ管理テーブルT2におけるそのゲストOSにかかるインアクティビティ値が上限値(180000)となっているかを確認する(ステップA50)。インアクティビティ値が上限値に達していない場合には(ステップA50のNOルート参照)、インアクティビティ管理部106はインアクティビティ値をインクリメント(+1)する(ステップA60)。
次に、バーチャルステート管理部107が、ステップA60において求められたインアクティビティ値に基づいて省電力プロファイル管理テーブルT1を参照して、そのインアクティビティ値に対応する省電力ステートを取得する。バーチャルステート管理部107はこの取得した省電力ステートを仮のデバイスステートとして、バーチャルステート管理テーブルT3に、対象とするゲストOSに対応付けて登録する。これによりバーチャルステート管理テーブルT3の更新が行なわれる(ステップA70)。
一方、前回テーブル更新を行なってから今回のテーブル更新までの間に、ゲストOSとデバイス203−5との間で入出力が行なわれている場合には(ステップA40のYESルート参照)、インアクティビティ管理部106はインアクティビティ値を0にして(ステップA100)、ステップA70に移行する。
また、インアクティビティ値が上限値に達している場合にも(ステップA50のYESルート参照)、ステップA70に移行する。
省電力管理部110は、対象とするゲストOSについてのテーブル更新が終了したかを確認し(ステップA80)、そのテーブル更新が終了していない場合には、ステップA30に戻る。
なお、図7に示す例においては、これらのステップA30〜A80において、インアクティビティ値が求められる。すなわち、ステップA30〜A80が、ゲスト仮想マシン30とデバイス203との間における非アクセス状態での経過時間を非アクセス時間として測定する測定ステップに相当する。
対象とするゲストOSについてのテーブル更新が終了した場合には(ステップA80のYESルート参照)、次に、省電力管理部110は、ステップA10において取得された一覧中の全てのゲストOSについてテーブル更新が終了したかを確認する(ステップA90)。
ここで、全てのゲストOSについてのテーブル更新が終了していない場合には(ステップA90のNOルート参照)、ゲストOS一覧における次のゲストOSを新たな対象ゲストOSとして変更した後(ステップA110)、ステップA30に戻る。
全てのゲストOSについてのテーブル更新が終了した場合には(ステップA90のYESルート参照)、リアルステート管理部108が、バーチャルステート管理テーブルT3に登録された、各ゲストOSについての仮のデバイスステートの内、省電力度合いが最小のものを実デバイスステートとして決定する(ステップA120:決定ステップ)。
このようにして実デバイスステートが決定されると、リアルステート管理部108が、デバイスドライバ112を介して、そのデバイス203−4に対して、決定された実デバイスステートを設定する(遷移ステップ)。
このように、第1実施形態の一例としての情報処理装置1aによれば、ゲストOSの省電力機能に依ることなく、デバイスドライバ仮想マシン31が、予めゲスト仮想マシン30に合わせて設定された省電力プロファイル管理テーブルT1に従って適切にデバイスの省電力管理を行なうことができる。
また、複数のゲスト仮想マシン30が同一のデバイス203を共有して使用している場合も、全てのゲスト仮想マシン30が必要とするデバイス203の応答速度を満たす範囲で、省電力ステートを調停することができる。すなわち、複数のゲスト仮想マシン30が同一のデバイス203を共有して使用している場合においても、全てのゲスト仮想マシン30のデバイス203へのアクセス要求を満たした状態でデバイス203の動作モードを遷移させることができる。
さらに、ゲストOSの開発においても、ハードウェア端末(情報処理装置1a)ごとに個別に省電力機構を実装する必要がなく、デバイスドライバ仮想マシン31(仮想化システム)が独立して等価的に省電力制御を行なうことができる。これにより、全く同一のゲストOSを複数の異なるハードウェア端末に対して提供することも可能になり、開発コストの削減も可能となる。また、省電力制御の実装は主に管理OS(デバイスドライバドメイン)内で完結しており、デバイスドライバドメインのモジュール単位で、他ハードウェア端末に移植することも容易である。
(B)第2実施形態
図8は第2実施形態の一例としての情報処理装置1bの機能構成を模式的に示す図である。
本第2実施形態の情報処理装置1bも、第1実施形態の情報処理装置1aと同様に、例えば、携帯電話機やPDA,パーソナルコンピュータのような情報処理装置であり、本第2実施形態においても、情報処理装置1bとして携帯電話機を用いた例について説明する。なお、以下、情報処理装置1bを単に端末という場合がある。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
本第2実施形態の情報処理装置1bは、第1実施形態の情報処理装置1aのハードウェアリソース20において検知スイッチ204をそなえるとともに、デバイスドライバ40をそなえている。更に、デバイスドライバ仮想マシン31において、ユーザ状態変更監視通知部102をそなえる。なお、その他の部分は第1実施形態の情報処理装置1aと同様に構成されている。
検知スイッチ(検知部)204は、本情報処理装置1bの使用状態を検知し、その使用状態をONもしくはOFFの検知信号として出力するスイッチである。例えば、本情報処理装置1bがヒンジを介してディスプレイ部とキーボード部とを開閉可能に構成された折り畳み式携帯電話である場合に、その開状態/閉状態を検知する開閉検知スイッチを用いることができる。すなわち、検知スイッチ204は情報処理装置1bの開状態/閉状態の状態変更を検出し、その検出結果をユーザ状態変更監視通知部102に通知する。
以下、本情報処理装置1bがヒンジを介してディスプレイ部とキーボード部とを開いた状態(開状態)を端末開という場合があり、ヒンジを介してディスプレイ部とキーボード部とを閉じた状態(閉状態)を端末閉という場合がある。
なお、この検知スイッチ204は開閉検知スイッチに限定されるものではなく、種々変形して実現することができる。例えば、本情報処理装置1aのディスプレイのバックライトの点灯/消灯状態を検知するバックライト検知スイッチであってもよい。すなわち、情報処理装置1aの使用時にディスプレイのバックライトが点灯され、非使用状態には消灯されることをバックライト検知スイッチにより検知してもよい。
そして、この検知スイッチ204から出力される検知信号は、デバイスドライバ40を介して後述するデバイスドライバ仮想マシン31のユーザ状態変更監視通知部102に入力される。
ユーザ状態変更監視通知部102は、ユーザ状態の変更を監視し、変更を省電力管理部110に通知する。そして、ユーザ状態変更監視通知部102は、バーチャルステート管理部107にバーチャルステート管理テーブルT3の再計算を行なわせたり、リアルステート管理部108に対して、実デバイスステートの再設定を行なわせる。
具体的には、ユーザ状態変更監視通知部102は、例えば、検知スイッチ204からデバイスドライバ40を介して、情報処理装置1bの開状態/閉状態の状態変更が通知されると、その旨を省電力管理部110に通知する。
また、本第2実施形態の一例としての情報処理装置1bにおいては、仮想マシン管理部101は、省電力プロファイル管理テーブルT1において、情報処理装置1bの開状態/閉状態のそれぞれの状態での省電力プロファイルを設定されている。
図9(a),(b),(c)は第2実施形態の一例としての情報処理装置1bの省電力プロファイル管理テーブルT1を示す図である。ここで図9(a)は省電力プロファイル管理テーブルT1を例示する図である。又、図9(b)は、そのゲストOS−Aにかかるカメラデバイス203−3の各省電力ステートとインアクティビティ値との関係を例示する図である。更に、図9(c)は、そのゲストOS−Bにかかるカメラデバイス203−3の各省電力ステートとインアクティビティ値との関係を例示する図である。
この図9(a)に示す省電力プロファイル管理テーブルT1には、カメラデバイス203−3に関して、端末開の状態と端末閉との2つの情報(ユーザ状態)が登録されている。
カメラデバイス203−3に関して、端末開の場合及び端末閉の場合のそれぞれにおいて省電力プロファイルを設定できる場合を考える。例えば、カメラデバイス203−3は、端末が開いている場合は端末の画面及び端末の内側の操作ボタンによって操作可能であり、端末が閉じている場合は端末外側の小画面にと操作ボタンにより限定的な操作が可能であるとする。
ここで、ゲストOS−Aは、カメラデバイス203−3の端末が開いている場合の操作のみしか実装されておらず、端末が閉じた場合はカメラデバイスを操作する手段を持たないとする。このような場合においては、図9(a),(b)に示すように、端末が閉じた時は、常に省電力ステートD3にデバイス状態を遷移させてもよい。
すなわち、本第2実施形態の一例としての情報処理装置1bにおいては、ユーザ状態の変更を検出して、省電力プロファイルを変更することができるのである。
なお、ゲストOS−Bは、端末開の状態においても端末閉の状態においても、カメラデバイス203−3の操作手段を実装しており、よって、図9(a)に示すように端末の開閉状態に関わらず同一の省電力プロファイルを持つものとする。
ここで、端末開の状態であった場合、カメラデバイス203−3について、ゲストOS−AおよびゲストOS−Bのそれぞれのインアクティビティ値が1000以上(すなわち10秒以上入出力がない)場合について考える。
リアルステート管理部108は、ゲストOS−Aの仮の省電力ステートD2とゲストOS−Bの省電力ステートD3とを比較した結果、省電力ステートD2をカメラデバイス203−3の実省電力ステートとして設定されることになる。ここで、この状態から端末を閉じると、検知スイッチ204により端末閉の状態が検知され、デバイスドライバ40を介してユーザ状態変更監視通知部102に通知される。
そして、ユーザ状態変更監視通知部102がその旨を省電力管理部110に通知し、バーチャルステート管理部107によりゲストOS−Aの仮の省電力ステートがD3に変更される。リアルステート管理部108は、この省電力ステートD3をゲストOS−Bの省電力ステートD3と比較し、その結果、D3がカメラデバイス203−3の実省電力ステートとして再設定されることになる。
また、ユーザ状態変更監視通知部102は、予め、端末状態変更により影響を受けるバックエンドドライバ105を把握している。例えば、端末状態変更として検知スイッチ204による端末閉/端末開の状態変更に対しては、カメラデバイス203−3にかかるバックエンドドライバ105−3が相当する。又、影響を受けるバックエンドドライバ105が複数ある場合には、例えば、これらの複数のバックエンドドライバ105を登録した一覧表等の形式で管理する。
上述の如く構成された、第2実施形態の一例としての情報処理装置1bにおける端末状態の変更に伴う、省電力ステートの再計算及び再設定の遷移処理を、図10に示すフローチャート(ステップB10〜B50)に従って説明する。
ユーザが情報処理装置1bを操作して端末状態を変更すると、検知スイッチ204がその状態変更を検出し(ステップB10)、デバイスドライバ40を介してユーザ状態変更監視通知部102に通知される。
ユーザ状態変更監視通知部102は、この端末状態変更に関して、省電力プロファイル管理テーブルT1を参照するバックエンドドライバ105の一覧を検索する(ステップB20)。そして、ユーザ状態変更監視通知部102は、一覧に登録されたバックエンドドライバ105の省電力管理部110に対して、端末状態変更の通知を開始する(ステップB30)。
端末状態変更の通知を受けたバックエンドドライバ105においては、省電力管理部110(インアクティビティ管理部106)によるインアクティビティ値の更新や、デバイス状態の更新が行なわれる(ステップB40)。
その後、一覧に登録されている全てのバックエンドドライバ105に対して変更通知を行なったかを確認する(ステップB50)。この確認の結果、全てのバックエンドドライバ105に対して変更通知を行なっていない場合には(ステップB50のNOルート参照)、ステップB30に戻る。
また、全てのバックエンドドライバ105に対して変更通知を行なった場合には(ステップB50のYESルート参照)、処理を終了する。
このように、第2実施形態の一例としての情報処理装置1bによれば、上述した第1実施形態と同様の作用効果を得ることができる他、予め省電力プロファイル管理テーブルT1に端末状態の変更に応じた省電力プロファイルを登録しておくことにより、端末状態の変化に応じた省電力制御を行なうことができる。
なお、本第2実施形態においては、端末状態の変更として、端末開/端末閉の状態変化を検知スイッチ204によって検知する例について説明したが、これに限定されるものではない。例えば、情報処理装置1bにそなえられた特定の機能が使用されたことを状態変化として検知してもよく、又、図示しないバッテリーの残量を監視し、このバッテリーの残量が所定値以下となった場合を状態変化として検知してもよい。又、これら状態変化の検知は、ハードウェア手段もしくはソフトウェア手段のいずれを用いて検知してもよい。すなわち、他のデバイスドライバからの通知により状態変化の検知を行なってもよく、又、いずれかのゲストOSから状態変化の通知を行なってもよく、種々変形して実施することができる。
例えば、ノートPCや携帯電話等のようにユーザが直接操作する機器には、ユーザが端末を閉じていて操作を行なっていない、ACアダプタに接続されている、されていない、などのように、端末の利用状態に応じて、省電力のポリシーを変更したい場合がある。
本情報処理装置1bによれば、ユーザの利用状態に応じて、各々のデバイス203の省電力プロファイルを複数設定可能であり、利用状態変更の通知に応じて、複数のプロファイルを切り替え、省電力モードを再設定することが可能となる。
また、例えば、ゲスト仮想マシン30内において、特定のアプリケーションが起動しているか否か等の利用状態に応じて、省電力のポリシーを変更したい場合がある。
本情報処理装置1bによれば、ゲスト仮想マシン30内において、特定のアプリケーションが起動中であるか否かなどの情報を検出し、そのゲスト仮想マシン30から省電力プロファイルの切り替えをデバイスドライバ仮想マシン31に通知することで、省電力プロファイルを切り替えや省電力モードを再設定することが可能となる。
(C)第3実施形態
図11は第3実施形態の一例としての情報処理装置1cの機能構成を模式的に示す図である。
本第3実施形態の情報処理装置1cも、第1実施形態の情報処理装置1aと同様に、例えば、携帯電話機やPDA,パーソナルコンピュータのような情報処理装置であり、本第3実施形態においても、情報処理装置1cとして携帯電話機を用いた例について説明する。なお、以下、情報処理装置1cを単に端末という場合がある。
また、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
例えば、携帯電話端末においては、端末が基地局の電波の圏内にあるか否かを検知する、あるいは検知した際に通話や電子メール、SMS(ショートメッセージングサービス)等の着信の有無を確認するために、定期的に端末と基地局間とで通信を行なっている。
そして、この端末と基地局との間の通信の時間間隔は、例えば、端末をユーザが使用中で、端末と基地局が通信状態にある場合と、端末をユーザが使用していない場合とで変更することが可能である。
なお、ユーザが端末を使用中である場合としては、例えば、通話中である場合や、インターネットなどのネットワークサービスを利用中である場合が相当する。又、端末をユーザが使用していない場合としては、例えば、端末を閉じている場合が相当する。
この端末と基地局との間の定期的な通信は、通常は、インアクティビティ値の計算と同様に、タイマ割込み管理部104により一定間隔で呼び出されるタイマ割り込み処理から起床される。
そして、本第3実施形態においては、タイマ割込み管理部104によるタイマ割込みクロックの変更に応じて、デバイス203へのアクセスの行なわれなかった時間の積算方法を変更する。
本第3実施形態の情報処理装置1cにおいては、第2実施形態の情報処理装置1bのデバイスドライバ仮想マシン31において、タイマクロック変更通知部103をそなえ、その他の部分は第1実施形態の情報処理装置1bとほぼ同様に構成されている。
本第3実施形態の情報処理装置1cにおいて、タイマ割込み管理部(クロック変更部)104は、タイマクロック(基準タイマクロック)間隔を変更する機能(クロック変更機能)をそなえており、例えば、ユーザが端末を使用していないと判断した場合に、このクロック変更機能が、省電力クロックモードとして、上述したタイマの呼び出し間隔を長くし、処理の起床される時間間隔を延ばす。
例えば、通常クロック時(通常クロックモード)に10ms間隔であった場合に、省電力クロック時(省電力クロックモード)には2s間隔にする。
このように、ユーザが端末を使用していないと判断した場合に、通常クロックモードから省電力クロックモードに移行し、タイマの呼び出し間隔を長くして、処理の起床される時間間隔を延ばすことにより、例えばCPUのアイドル時間を延ばすことにつながり、より効果的に省電力を実現することができる。
なお、この基準タイマクロック間隔を変更する機能は、タイマ割込み管理部104のかわりに、タイマクロック機構を設定するためのバックエンドドライバ105により実現してもよく、種々変形して実施することができる。又、上述したタイマクロックの変更処理は、管理OSの指示により行なわれる。
なお、ユーザの端末の使用状態の検出や、タイマクロックの変更処理は、管理OSの指示により管理OS自身あるいはタイマクロック機構を設定するためのバックエンドドライバ105内により行なわれる。すなわち、これらの管理OSもしくはバックエンドドライバ105が、情報処理装置の基準タイマクロック間隔を変更するクロック変更部として機能する。
タイマクロック変更通知部103は、タイマ割込み管理部104によりタイマクロックが変更されたことを検知し、バックエンドドライバ105の省電力管理部110に通知する。すなわち、このタイマクロック変更通知部103が、基準タイマクロック間隔が変更されたことを検出するクロック変更検出部として機能する。
管理OSがタイマクロックの変更を行なう場合、このタイマ割り込み処理から起床されたタイミングで、省電力管理部110を持つ各々のバックエンドドライバ105に対して、タイマクロック変更通知部103からタイマクロックの変更を通知する。
この通知の方法は、例えば、各バックエンドドライバ105の省電力管理部110から参照可能なフラグとして、クロック状態を表すクロックフラグを設け、このフラグ内容をタイマクロック変更通知部103が書き換えることにより実現することができる。
クロックフラグとしては、例えば、0:通常クロック時(10ms間隔),1:省電力クロック時(2s間隔)とする。
本第3実施形態の情報処理装置1cにおいては、デバイスドライバ仮想マシン31は、タイマ割込み管理部104によって変更されたクロックに合わせて、各々のゲスト仮想マシン30からデバイス203へのアクセスについて、アクセスの行なわれなかった時間を積算する際の計算方法を変更することができる。
具体的には、省電力管理部110のインアクティビティ管理部106が、インアクティビティ値の測定方法を変更する機能をそなえている。すなわち、インアクティビティ管理部106はインアクティビティ値の測定方法を変更する測定方法変更部として機能する。そして、インアクティビティ管理部106は、タイマクロック変更通知部103により基準タイマクロック間隔の変更が検出されると、インアクティビティ値の測定方法を変更する。
インアクティビティ管理部106は、省電力クロックモードとなり、タイマクロック変更通知部103からタイマクロック間隔の変更が通知されると、インアクティビティ値の算出に際して1回でインクリメントする値を変更する。具体的には、タイマクロック間隔が通常クロック時からx倍に変更された場合に、インアクティビティ値の積算時にインクリメントする値をx倍に変更する。
例えば、タイマクロック間隔が10msの場合(通常クロック時)に1ずつインクリメントしていた状態から、タイマクロック間隔が2sに変更された場合(省電力クロック時)には、インアクティビティ管理部106は、一回の呼び出しでインアクティビティ値を200ずつインクリメントするよう測定方法の変更を行なう。
すなわち、インアクティビティ管理部106は、タイマクロック間隔に応じて、インアクティビティ値の積算時にインクリメントする量(インクリメント量)を変更することにより、省電力管理部110による実デバイスステートの選択もしくは設定に対する、省電力クロックモードへ移行により生じる影響を排除する。
このインアクティビティ値のインクリメント量は、例えば、マシン間共有メモリの所定領域に格納(設定)され、インアクティビティ管理部106は、このインクリメント量を参照して、インアクティビティ値のインクリメントを行なう。
上述の如く構成された第3実施形態の一例としての情報処理装置1cにおけるタイマクロックの変更処理を伴なう電力管理手法を、図12に示すフローチャート(ステップC10〜C220)に従って説明する。
なお、ゲスト仮想マシン30やデバイスドライバ仮想マシン31は、仮想マシンモニタ21により既に実行されているものとする(ゲスト仮想マシン実現ステップ,デバイスドライバ仮想マシン実現ステップ)。
例えば、端末閉状態の検出等により本情報処理装置1cをユーザが使用していないことが検出された場合に(検出ステップ)、未使用タイマ割込み管理部104の制御により割り込み信号が入力され、管理OSがタイマクロックの変更処理を開始する(ステップC10)。先ず、管理OSは、省電力管理部110を有するバックエンドドライバ105の一覧を取得する(ステップC20)。バックエンドドライバ105の取得は、例えば、管理OSから各バックエンドドライバ105に対して要求信号を出力し、この要求信号に対して、省電力管理部110を有するバックエンドドライバ105だけが特定の応答信号を送信することにより、管理OSにおいて一覧を取得することができる。更に、管理OSは、各バックエンドドライバ105に接続中のゲストOSの一覧を取得する(ステップC30)。バックエンドドライバ105に接続中のゲストOSの一覧は、例えば、ゲスト入出力制御部111によって取得することができる。
管理OSにおいて、タイマクロック変更通知部103が、取得したバックエンドドライバ105に対応する各クロックフラグを変更する(ステップC40)。
その後、省電力管理部110が、各バックエンドドライバ105のインアクティビティ値の更新を開始する(ステップC50)。
バックエンドドライバ105において、省電力管理部110は、バックエンドドライバ105に接続中のゲストOSの一覧を取得する(ステップC60)。バックエンドドライバ105に接続中のゲストOSの一覧は、例えば、ゲスト入出力制御部111によって取得することができる。
先ず、取得されたゲストOSの一覧のうち、最初のゲストOSが選択される(ステップC70)。省電力管理部110は、この選択されたゲストOSに関して、テーブル(インアクティビティ管理テーブルT2及びバーチャルステート管理テーブルT3)の更新を開始する(ステップC80)。
インアクティビティ管理部106は、前回テーブル更新を行なってから今回のテーブル更新のまでの間に、ゲストOSとデバイス203との間で入出力が行なわれたか否かを確認する(ステップC90)。ゲストOSとデバイス203との間で入出力が行なわれていない場合には(ステップC90のNOルート参照)、インアクティビティ管理部106は、次に、インアクティビティ管理テーブルT2におけるそのゲストOSにかかるインアクティビティ値が上限値(180000)となっているかを確認する(ステップC100)。インアクティビティ値が上限値に達していない場合には(ステップC100のNOルート参照)、インアクティビティ管理部106は、マシン間共有メモリ等に予め設定されているインクリメント量でインアクティビティ値をインクリメントする(ステップC110)。
次に、バーチャルステート管理部107が、ステップA60において求められたインアクティビティ値に基づいて省電力プロファイル管理テーブルT1を参照して、そのインアクティビティ値に対応する省電力ステートを取得する。バーチャルステート管理部107はこの取得した省電力ステートを仮のデバイスステートとして、バーチャルステート管理テーブルT3に、対象とするゲストOSに対応付けて登録する。これによりバーチャルステート管理テーブルT3の更新が行なわれる(ステップC120)。
一方、前回テーブル更新を行なってから今回のテーブル更新までの間に、ゲストOSとデバイス203との間で入出力が行なわれている場合には(ステップC90のYESルート参照)、インアクティビティ管理部106はインアクティビティ値を0にして(ステップC150)、ステップC120に移行する。
また、インアクティビティ値が上限値に達している場合にも(ステップC100のYESルート参照)、ステップC120に移行する。
省電力管理部110は、対象とするゲストOSについてのテーブル更新が終了したかを確認し(ステップC130)、そのテーブル更新が終了していない場合には、ステップC80に戻る。
なお、図12に示す例においては、これらのステップC80〜C130において、インアクティビティ値が求められる。すなわち、ステップC80〜C130が、ゲスト仮想マシン30とデバイス203との間における非アクセス状態での経過時間を非アクセス時間として測定する測定ステップに相当する。
対象とするゲストOSについてのテーブル更新が終了した場合には(ステップC130のYESルート参照)、次に、省電力管理部110は、ステップC60において取得された一覧中の全てのゲストOSについてテーブル更新が終了したかを確認する(ステップC140)。
ここで、全てのゲストOSについてのテーブル更新が終了していない場合には(ステップC140のNOルート参照)、ゲストOS一覧における次のゲストOSを新たな対象ゲストOSとして変更した後(ステップC160)、ステップC80に戻る。
全てのゲストOSについてのテーブル更新が終了した場合には(ステップC140のYESルート参照)、リアルステート管理部108が、バーチャルステート管理テーブルT3に登録された、各ゲストOSについての仮のデバイスステートの内、省電力度合いが最小のものを実デバイスステートとして決定する(ステップC170)。
このようにして実デバイスステートが決定されると、リアルステート管理部108が、デバイスドライバ112を介して、そのデバイス203に対して、決定された実デバイスステートを設定する。
省電力管理部110においては、上述の如くインアクティビティ値及び省電力ステートを更新した後、タイマのクロックフラグが変更されたか否かを確認する(ステップC180:クロック変更検出ステップ)、クロックフラグが変更されていた場合には(ステップC180のYESルート参照)、マシン間共有メモリ等に設定されているインアクティビティ値のインクリメント量を変更する(ステップC190:測定方法変更ステップ)。
そして、管理OSは、全てのバックエンドドライバ105についてインアクティビティ値の更新が完了したかを確認する(ステップC200)。全てのバックエンドドライバ105についてインアクティビティ値の更新が行なわれた場合には(ステップC200のYESルート参照)、管理OSはタイマクロックを変更し(ステップC210:クロック変更ステップ)、処理を終了する。
タイマクロックが変更された場合、次回の呼び出し以降、インアクティビティ値のインクリメント量が変更されるのである。
第3実施形態の一例としての情報処理装置1cによれば、上述した第2実施形態と同様の作用効果を得ることができる。
さらに、クロックフラグが変更されていた場合に、それにインアクティビティ値のインクリメント量を変更する。これにより、次回の更新処理の呼び出し以降は、再設定されたインクリメント量を用いてインアクティビティ値が更新される。そして、変更されたクロックに合わせて、各々のゲスト仮想マシン30からそのデバイス203へのアクセスについて、アクセスの行なわれなかった時間を積算する際の計算方法を変更することができる。
また、一般に、仮想マシンシステムにおける仮想マシン30へのCPU201の割り当ての変更や、時間のカウントなどは、ハードウェアに定期的なタイマ割り込みなどを設定し、そのタイマ割り込みのタイミングで行なわれる。そして、省電力要求の厳しい携帯電話機などの機器では、例えば、端末を閉じた状態でユーザの操作が行なわれない間は、タイマ割り込みのクロックを伸ばすことにより、CPUの電力消費量の節減を図る場合がある。
本情報処理装置1cによれば、仮想マシンシステムにおけるタイマ割り込みクロックの変更をデバイスドライバ仮想マシン31に通知する。そして、デバイスドライバ仮想マシン31が、この変更されたクロックに合わせて、各々のゲスト仮想マシン30からデバイスへ203のアクセスについて、アクセスの行なわれなかった時間を積算する際の計算方法を変更することができる。
(D)その他
上述した各実施形態においては、情報処理装置1a,1b,1cのCPU201が、制御プログラムを実行することにより、上述した、デバイスドライバ仮想マシン31,ゲスト仮想マシン30,仮想マシン管理部101,ユーザ状態変更監視通知部102,タイマクロック変更通知部103,タイマ割込み管理部104,省電力管理部110(インアクティビティ管理部106,バーチャルステート管理部107,リアルステート管理部108),ゲスト入出力制御部111及びデバイスドライバ112として機能する。
なお、これらのデバイスドライバ仮想マシン31,ゲスト仮想マシン30,仮想マシン管理部101,ユーザ状態変更監視通知部102,タイマクロック変更通知部103,タイマ割込み管理部104,省電力管理部110(インアクティビティ管理部106,バーチャルステート管理部107,リアルステート管理部108),ゲスト入出力制御部111及びデバイスドライバ112としての機能を実現するためのプログラム(制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
デバイスドライバ仮想マシン31,ゲスト仮想マシン30,仮想マシン管理部101,ユーザ状態変更監視通知部102,タイマクロック変更通知部103,タイマ割込み管理部104,省電力管理部110(インアクティビティ管理部106,バーチャルステート管理部107,リアルステート管理部108),ゲスト入出力制御部111及びデバイスドライバ112としての機能を実現する際には、内部記憶装置(上記各実施形態ではRAM211やROM202)に格納されたプログラムがコンピュータのマイクロプロセッサ(上記各実施形態ではCPU201)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置1a,1b,1cがコンピュータとしての機能を有しているのである。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、デバイス203として3Gデバイス203−1,無線LANデバイス203−2,カメラデバイス203−3及びSDメモリデバイス203−4をそなえた例を示しているが、これに限定されるものではない。すなわち、これら以外のデバイスをそなえてもよく、又、これらの少なくともいずれかをそなえなくともよく、適宜変更して実施することが出来る。
同様に、上述した各実施形態においては、ハードウェアリソース20において、CPU201,RAM211,ROM202及び検知スイッチ204がそれぞれ一つずつそなえられた例を示しているが、これに限定されるものではない。すなわち、CPU201,RAM211,ROM202及び検知スイッチ204の少なくともいずれかを2以上そなえてもよく、各実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上記第2実施形態においては、端末の利用状態の変更例として端末の開状態と閉状態について示しているが、これに限定されるものではない。例えば、バッテリーの残量が所定の閾値以下となることや、所定のアプリケーションが実行されたこと等を利用状態の変更として用いてもよく、種々変形して実施することができる。
また、上記第2実施形態においては、カメラデバイス203−3の省電力モードへ遷移を例として示したが、これに限定されるものではなく、カメラデバイス203−3以外のデバイスについて行なうこともできる。
さらに、上述した実施形態においては、デバイスドライバ仮想マシン31において管理OSを実行し、この管理OSにバックエンドドライバが内包されている例を示したが、これに限定されるものではなく種々変形して実施することができる。例えば、仮想マシンモニタ21と管理OSを一体として構成してもよく、又、管理OS内のバックエンドドライバ105のそれぞれを、各々が独立したデバイスドライバ仮想マシン上で実行する構成にしてもよい。
また、上述した開示により本実施形態を当業者によって実施や製造を行なうことが可能である。
(E)付記
(付記1)
デバイスを備えた情報処理装置であって、
該デバイスに対して処理を行なう複数のゲスト仮想マシンと、
該複数のゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンと、
該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれ関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定部と、
該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を記憶する記憶部と、
測定された該非アクセス時間に基づいて該動作プロファイル情報を参照して、動作モードを決定する決定部と、
該デバイスを、該動作モードに遷移させる遷移制御部と、
を備えることを特徴とする、情報処理装置。
(付記2)
該決定部が、
該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対する動作モードのうち、最も省電力度合いが小さい動作モードを選択して決定することを特徴とする、付記1記載の情報処理装置。
(付記3)
該決定部は、該デバイスを共有する複数の該ゲスト仮想マシンのそれぞれに対して、各ゲスト仮想マシンが遷移可能な動作モードをそれぞれ仮の動作モードとして決定し、これらの仮の動作モードのうち最も省電力度合いが小さい仮の動作モードを、デバイス選択モードとして決定し、
前記遷移制御部は、該デバイスを、決定された該デバイス選択モードに遷移させる、
ことを特徴とする、付記2記載の情報処理装置。
(付記4)
該情報処理装置の状態変更を検出する検出部をそなえるとともに、
該記憶部が、当該情報処理装置の状態に応じた該動作プロファイル情報をそなえ、
該決定部が、該検出部により当該情報処理装置の状態変更が検出された場合に、当該情報処理装置の状態に応じた該動作プロファイル情報を参照して、該動作モードを決定することを特徴とする、付記1〜3のいずれか1項に記載の情報処理装置。
(付記5)
該ゲスト仮想マシンが、該検出部をそなえることを特徴とする、付記4記載の情報処理装置。
(付記6)
当該情報処理装置の基準タイマクロック間隔を変更するクロック変更部と、
該クロック変更部により該基準タイマクロック間隔が変更されたことを検出するクロック変更検出部と、
該測定部による該非アクセス時間の測定方法を変更する測定方法変更部とをそなえ、
該クロック変更検出部により該基準タイマクロック間隔の変更が検出されると、該測定方法変更部が該測定部による該非アクセス時間の測定方法を変更することを特徴とする、付記1〜5のいずれか1項に記載の情報処理装置。
(付記7)
デバイスを備えた情報処理装置の制御方法であって、
該デバイスに対して処理を行なう複数のゲスト仮想マシンを実現するゲスト仮想マシン実現ステップと、
該ゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンを実現するデバイスドライバ仮想マシン実現ステップと、
該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定ステップと、
該測定ステップにおいて測定された、該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、動作モードを決定する決定ステップと、
該デバイスを、決定された該動作モードに遷移させる遷移制御ステップとをそなえることを特徴とする、制御方法。
(付記8)
該決定ステップにおいて、
該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対する動作モードのうち、最も省電力度合いが小さい動作モードを選択して決定することを特徴とする、付記7記載の制御方法。
(付記9)
該決定ステップにおいて、
該デバイスを共有する複数の該ゲスト仮想マシンのそれぞれに対して、各ゲスト仮想マシンが遷移可能な動作モードをそれぞれ仮の動作モードとして決定し、これらの仮の動作モードのうち最も省電力度合いが小さい仮の動作モードを、デバイス選択モードとして決定し、
前記遷移制御ステップにおいて、該デバイスを、決定された該デバイス選択モードに遷移させる、
ことを特徴とする、付記8記載の制御方法。
(付記10)
該情報処理装置の状態変更を検出する検出ステップをそなえるとともに、
該決定ステップにおいて、該検出ステップにおいて当該情報処理装置の状態変更が検出された場合に、当該情報処理装置の状態に応じた該動作プロファイル情報を参照して、該動作モードを決定することを特徴とする、付記7〜9のいずれか1項に記載の制御方法。
(付記11)
当該情報処理装置の基準タイマクロック間隔を変更するクロック変更ステップと、
該クロック変更ステップにおいて該基準タイマクロック間隔が変更されたことを検出するクロック変更検出ステップと、
該測定ステップにおける該非アクセス時間の測定方法を変更する測定方法変更ステップとをそなえ、
該クロック変更検出ステップにおいて該基準タイマクロック間隔の変更が検出されると、該測定方法変更ステップにおいて該測定ステップにおける該非アクセス時間の測定方法を変更することを特徴とする、付記7〜10のいずれか1項に記載の制御方法。
(付記12)
デバイスの制御機能をコンピュータに実行させるための制御プログラムであって、
該デバイスに対して処理を行なう複数のゲスト仮想マシンと、
該ゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンと、
該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている複数の該ゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうちの一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定し、
測定した該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、該動作モードを決定し、
該デバイスを、決定した該動作モードに遷移させる、
処理を該コンピュータに実行させることを特徴とする、制御プログラム。
(付記13)
該決定部として該コンピュータを機能させる際に、
該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対する動作モードのうち、最も省電力度合いが小さい動作モードを選択して決定させるように、該コンピュータを機能させることを特徴とする、付記12記載の制御プログラム。
(付記14)
該決定部として該コンピュータを機能させる際に、
該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対して、各ゲスト仮想マシンが遷移可能な動作モードをそれぞれ仮の動作モードとして決定し、これらの仮の動作モードのうち最も省電力度合いが小さい仮の動作モードを、デバイス選択モードとして決定し、
前記遷移制御部は、該デバイスを、決定された該デバイス選択モードに遷移させるように、該コンピュータを機能させることを特徴とする、付記13記載の制御プログラム。
(付記15)
該情報処理装置の状態変更を検出する検出部として、該コンピュータを機能させるとともに、
該決定部として該コンピュータを機能させる際に、該検出部により当該情報処理装置の状態変更が検出された場合に、当該情報処理装置の状態に応じた該動作プロファイル情報を参照して、該動作モードを決定させるように、該コンピュータを機能させることを特徴とする、付記12〜14のいずれか1項に記載の制御プログラム。
(付記16)
当該情報処理装置の基準タイマクロック間隔を変更するクロック変更部と、
該クロック変更部により該基準タイマクロック間隔が変更されたことを検出するクロック変更検出部と、
該測定部による該非アクセス時間の測定方法を変更する測定方法変更部として、該コンピュータを機能させるとともに、
該クロック変更検出部により該基準タイマクロック間隔の変更が検出されると、該測定方法変更部が該測定部による該非アクセス時間の測定方法を変更させるように、該コンピュータを機能させることを特徴とする、付記12〜15のいずれか1項に記載の制御プログラム。
1a,1b,1c 情報処理装置
20 ハードウェアリソース
21 仮想マシンモニタ
30,30−A,30−B ゲスト仮想マシン
101 仮想マシン管理部
102 ユーザ状態変更監視通知部
103 タイマクロック変更通知部
104 タイマ割込み管理部
106 インアクティビティ管理部
107 バーチャルステート管理部
108 リアルステート管理部
110 省電力管理部
111 ゲスト入出力制御部
112 デバイスドライバ
201 CPU
202 ROM
203,203−1〜203−4 デバイス
204 検知スイッチ
211 RAM
301,301−1〜301−4 フロントエンドドライバ
T1 省電力プロファイル管理テーブル(動作プロファイル情報)
T2 インアクティビティ管理テーブル
T3 バーチャルステート管理テーブル

Claims (7)

  1. デバイスを備えた情報処理装置であって、
    該デバイスに対して処理を行なう複数のゲスト仮想マシンと、
    該複数のゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンと、
    該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定部と、
    該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を記憶 する記憶部と、
    測定された該非アクセス時間に基づいて該動作プロファイル情報を参照して、動作モードを決定する決定部と、
    該デバイスを、決定された該動作モードに遷移させる遷移制御部と、
    を備えることを特徴とする、情報処理装置。
  2. 該決定部が、
    該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対する動作モードのうち、最も省電力度合いが小さい動作モードを選択して決定することを特徴とする、請求項1記載の情報処理装置。
  3. 該決定部は、該デバイスを共有する該複数のゲスト仮想マシンのそれぞれに対して、各ゲスト仮想マシンが遷移可能な動作モードをそれぞれ仮の動作モードとして決定し、これらの仮の動作モードのうち最も省電力度合いが小さい仮の動作モードを、デバイス選択モードとして決定し、
    前記遷移制御部は、該デバイスを、決定された該デバイス選択モードに遷移させる、
    ことを特徴とする、請求項2記載の情報処理装置。
  4. 該情報処理装置の状態変更を検出する検出部をそなえるとともに、
    該記憶部が 、当該情報処理装置の状態に応じた該動作プロファイル情報をそなえ、
    該決定部が、該検出部により当該情報処理装置の状態変更が検出された場合に、当該情報処理装置の状態に応じた該動作プロファイル情報を参照して、該動作モードを決定することを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 当該情報処理装置の基準タイマクロック間隔を変更するクロック変更部と、
    該クロック変更部により該基準タイマクロック間隔が変更されたことを検出するクロック変更検出部と、
    該測定部による該非アクセス時間の測定方法を変更する測定方法変更部とをそなえ、
    該クロック変更検出部により該基準タイマクロック間隔の変更が検出されると、該測定方法変更部が該測定部による該非アクセス時間の測定方法を変更することを特徴とする、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. デバイスを備えた情報処理装置の制御方法であって、
    該デバイスに対して処理を行なう複数のゲスト仮想マシンを実現するゲスト仮想マシン実現ステップと、
    該ゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンを実現するデバイスドライバ仮想マシン実現ステップと、
    該デバイスドライバ仮想マシンを介して該デバイスにアクセスしている該複数のゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定する測定ステップと、
    該測定ステップにおいて測定された、該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、動作モードを決定する決定ステップと、
    該デバイスを、決定された該動作モードに遷移させる遷移制御ステップとをそなえることを特徴とする、制御方法。
  7. デバイスの制御機能をコンピュータに実行させるための制御プログラムであって、
    該デバイスに対して処理を行なうゲスト仮想マシンによる該デバイスへのアクセス処理を代行するデバイスドライバ仮想マシンを介して該デバイスにアクセスしている複数の該ゲスト仮想マシンのそれぞれに関して、該複数のゲスト仮想マシンのうち一つと該デバイスとの間における非アクセス状態での経過時間を非アクセス時間として測定し、
    測定した該非アクセス時間に基づいて、該非アクセス時間と該デバイスの動作モードを表す動作モード情報とを対応付けた動作プロファイル情報を参照して、該動作モードを決定し、
    該デバイスを、決定した該動作モードに遷移させる、
    処理を該コンピュータに実行させることを特徴とする、制御プログラム。
JP2010154806A 2010-07-07 2010-07-07 情報処理装置,制御方法,制御プログラム Pending JP2012018515A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010154806A JP2012018515A (ja) 2010-07-07 2010-07-07 情報処理装置,制御方法,制御プログラム
US13/097,272 US8843923B2 (en) 2010-07-07 2011-04-29 Information processor, control method, and computer-readable recording medium recording control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010154806A JP2012018515A (ja) 2010-07-07 2010-07-07 情報処理装置,制御方法,制御プログラム

Publications (1)

Publication Number Publication Date
JP2012018515A true JP2012018515A (ja) 2012-01-26

Family

ID=45439500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010154806A Pending JP2012018515A (ja) 2010-07-07 2010-07-07 情報処理装置,制御方法,制御プログラム

Country Status (2)

Country Link
US (1) US8843923B2 (ja)
JP (1) JP2012018515A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013008188A (ja) * 2011-06-24 2013-01-10 Univ Of Tsukuba 計算機、デバイス管理方法、プログラム、及び記録媒体
WO2013125160A1 (ja) * 2012-02-22 2013-08-29 パナソニック株式会社 仮想計算機制御装置、及び仮想計算機制御方法
JP2015035112A (ja) * 2013-08-08 2015-02-19 富士ゼロックス株式会社 省電力制御装置、印刷装置及びプログラム
JP2017199369A (ja) * 2016-04-22 2017-11-02 カビウム・インコーポレーテッド 動的仮想システム・オン・チップのための方法および装置
JP2017224043A (ja) * 2016-06-13 2017-12-21 コニカミノルタ株式会社 画像処理装置およびモード切換プログラム
JP2018063563A (ja) * 2016-10-12 2018-04-19 Jns株式会社 コンピュータ装置及びコンピュータシステム
JP2019057162A (ja) * 2017-09-21 2019-04-11 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
WO2024053021A1 (ja) * 2022-09-07 2024-03-14 日本電信電話株式会社 動作モード設定装置、動作モード設定方法、動作モード設定プログラムおよびシステム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013274244A1 (en) 2012-06-15 2014-12-18 University Of Delaware Multiple-membrane multiple-electrolyte redox flow battery design
US9600423B2 (en) * 2012-07-26 2017-03-21 Hewlett-Packard Development Company, L.P. Periodic access of a hardware resource
KR101907486B1 (ko) * 2012-09-14 2018-10-12 한국전자통신연구원 보안성이 우수한 실행환경을 제공하는 이동 컴퓨팅 시스템
GB2507779A (en) * 2012-11-09 2014-05-14 Ibm Terminating a virtual machine in response to user inactivity in a cloud computing environment
TW201430546A (zh) * 2013-01-18 2014-08-01 Atrust Comp Corp 具多人機介面的電子裝置及其多人機介面運作方法
US9934047B2 (en) * 2014-03-20 2018-04-03 Intel Corporation Techniques for switching between operating systems
CN104571464A (zh) * 2015-01-19 2015-04-29 宇龙计算机通信科技(深圳)有限公司 一种多操作系统的省电模式控制方法、装置和终端
JP6548010B2 (ja) * 2015-06-16 2019-07-24 日本電気株式会社 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム
US12019898B2 (en) * 2020-09-30 2024-06-25 Seagate Technology Llc Data storage system with workload-based dynamic power consumption

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225694A (ja) * 1994-02-09 1995-08-22 Hitachi Ltd 仮想計算機システム
JP2000137550A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 情報処理装置及び電力管理方法並びに記録媒体
JP2000305671A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 省電力制御方式
JP2001043098A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
JP2001222346A (ja) * 2000-02-10 2001-08-17 Toshiba Corp コンピュータ、コンピュータシステム、および省電力制御方法
JP2001290568A (ja) * 2000-04-05 2001-10-19 Nec Software Hokkaido Ltd 消費電力を低減する電源制御方法、情報処理装置、及び記録媒体
JP2003256088A (ja) * 2002-03-05 2003-09-10 Matsushita Electric Ind Co Ltd 省電力制御を行う演算処理装置
JP2007011494A (ja) * 2005-06-28 2007-01-18 Sharp Corp 情報処理装置および情報処理システム
JP2008102667A (ja) * 2006-10-18 2008-05-01 Hitachi Ltd 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP2008120085A (ja) * 2006-11-08 2008-05-29 Xerox Corp デバイス内の電力消費を低減するためのシステムおよび方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
JP3861087B2 (ja) 2003-10-08 2006-12-20 株式会社エヌ・ティ・ティ・データ 仮想マシン管理装置及びプログラム
US20050108440A1 (en) * 2003-11-19 2005-05-19 Intel Corporation Method and system for coalescing input output accesses to a virtual device
US7454756B2 (en) * 2004-03-05 2008-11-18 Intel Corporation Method, apparatus and system for seamlessly sharing devices amongst virtual machines
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US20060107269A1 (en) * 2004-11-17 2006-05-18 International Business Machines Corporation Virtual device hub
US7546599B2 (en) * 2004-12-20 2009-06-09 Intel Corporation Method, apparatus and system for instructing a virtual device from a virtual machine
US20070245163A1 (en) * 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US8255708B1 (en) * 2007-08-10 2012-08-28 Marvell International Ltd. Apparatuses and methods for power saving in USB devices
JP5433837B2 (ja) * 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
US8327169B2 (en) * 2009-02-26 2012-12-04 International Business Machines Corporation Power management to maximize reduced power state for virtual machine platforms
US9829950B2 (en) * 2009-05-26 2017-11-28 Lenovo Enterprise Solutions (Singapore) PTE., LTD. Power management in a virtual machine farm at the local virtual machine platform level by a platform hypervisor extended with farm management server functions
US8392625B2 (en) * 2010-06-25 2013-03-05 Intel Corporation Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system
JP5569197B2 (ja) * 2010-07-06 2014-08-13 富士通株式会社 計算機装置およびリセット制御プログラム
US20120054740A1 (en) * 2010-08-31 2012-03-01 Microsoft Corporation Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
JP5557689B2 (ja) * 2010-10-22 2014-07-23 株式会社日立製作所 ネットワークシステム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225694A (ja) * 1994-02-09 1995-08-22 Hitachi Ltd 仮想計算機システム
JP2000137550A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 情報処理装置及び電力管理方法並びに記録媒体
JP2000305671A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 省電力制御方式
JP2001043098A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
JP2001222346A (ja) * 2000-02-10 2001-08-17 Toshiba Corp コンピュータ、コンピュータシステム、および省電力制御方法
JP2001290568A (ja) * 2000-04-05 2001-10-19 Nec Software Hokkaido Ltd 消費電力を低減する電源制御方法、情報処理装置、及び記録媒体
JP2003256088A (ja) * 2002-03-05 2003-09-10 Matsushita Electric Ind Co Ltd 省電力制御を行う演算処理装置
JP2007011494A (ja) * 2005-06-28 2007-01-18 Sharp Corp 情報処理装置および情報処理システム
JP2008102667A (ja) * 2006-10-18 2008-05-01 Hitachi Ltd 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP2008120085A (ja) * 2006-11-08 2008-05-29 Xerox Corp デバイス内の電力消費を低減するためのシステムおよび方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013008188A (ja) * 2011-06-24 2013-01-10 Univ Of Tsukuba 計算機、デバイス管理方法、プログラム、及び記録媒体
WO2013125160A1 (ja) * 2012-02-22 2013-08-29 パナソニック株式会社 仮想計算機制御装置、及び仮想計算機制御方法
JPWO2013125160A1 (ja) * 2012-02-22 2015-07-30 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機制御装置、及び仮想計算機制御方法
US9170832B2 (en) 2012-02-22 2015-10-27 Panasonic Intellectual Property Corporation Of America Virtual machine control apparatus and virtual machine control method
JP2015035112A (ja) * 2013-08-08 2015-02-19 富士ゼロックス株式会社 省電力制御装置、印刷装置及びプログラム
JP2017199369A (ja) * 2016-04-22 2017-11-02 カビウム・インコーポレーテッド 動的仮想システム・オン・チップのための方法および装置
JP2017224043A (ja) * 2016-06-13 2017-12-21 コニカミノルタ株式会社 画像処理装置およびモード切換プログラム
US9983839B2 (en) 2016-06-13 2018-05-29 Konica Minolta, Inc. Image processing apparatus and non-transitory computer-readable recording medium encoded with mode switching program
JP2018063563A (ja) * 2016-10-12 2018-04-19 Jns株式会社 コンピュータ装置及びコンピュータシステム
JP2019057162A (ja) * 2017-09-21 2019-04-11 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
WO2024053021A1 (ja) * 2022-09-07 2024-03-14 日本電信電話株式会社 動作モード設定装置、動作モード設定方法、動作モード設定プログラムおよびシステム

Also Published As

Publication number Publication date
US8843923B2 (en) 2014-09-23
US20120011506A1 (en) 2012-01-12

Similar Documents

Publication Publication Date Title
JP2012018515A (ja) 情報処理装置,制御方法,制御プログラム
US9910480B2 (en) Monitoring and real-time adjustment of power consumption settings
JP6073323B2 (ja) アプリケーションの再開および/またはアプリケーションの中断適用対象からの除外
TWI656479B (zh) 在多核心處理器中的非對稱核心之間遷移執行緒
US20200019230A1 (en) Managing power consumptions of multiple computing nodes in a hyper-converged computing system
US9292060B1 (en) Allowing clients to limited control on power consumed by the cloud while executing the client's tasks
US20130160003A1 (en) Managing resource utilization within a cluster of computing devices
US9547353B1 (en) Processor energy monitoring and dynamic adjustment
KR101839646B1 (ko) 접속형 대기 상태를 프로세스의 일시 정지 및/또는 조절 기법
US20150355924A1 (en) Decentralized Demand-Based Virtual Machine Migration Management
JP2013524317A (ja) 分散コンピューティングシステムにおける電力供給の管理
KR20130087583A (ko) 컴퓨터 플랫폼의 시스템 전력 상태를 전환하는 방법, 장치 및 시스템
US9836378B2 (en) Methods for managing performance states in an information handling system
US20200310886A1 (en) Cloud data center with reduced energy consumption
JP2016042249A (ja) 設定検証方法、設定検証プログラムおよび設定検証装置
US10884776B2 (en) Seamless virtual machine halt and restart on a server
US20130036417A1 (en) Virtual Resource Management Method, System, and Apparatus
US9395803B2 (en) Multi-core processor system implementing migration of a task from a group of cores to another group of cores
US9348391B1 (en) Managing resource power states in shared environments
WO2011061870A1 (ja) 計算機システム、管理サーバ及び電力削減方法
US20130275791A1 (en) Method and System for Tracking and Selecting Optimal Power Conserving Modes of a PCD
US20150012739A1 (en) Switching of operating systems
US20140351410A1 (en) Endpoint management based on endpoint type
Nguyen et al. Prediction-based energy policy for mobile virtual desktop infrastructure in a cloud environment
US20100293559A1 (en) Sharing input/output (i/o) resources across multiple computing systems and/or environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140930