JP2010272055A - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2010272055A
JP2010272055A JP2009125206A JP2009125206A JP2010272055A JP 2010272055 A JP2010272055 A JP 2010272055A JP 2009125206 A JP2009125206 A JP 2009125206A JP 2009125206 A JP2009125206 A JP 2009125206A JP 2010272055 A JP2010272055 A JP 2010272055A
Authority
JP
Japan
Prior art keywords
instruction set
instruction
control
program
execution
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
JP2009125206A
Other languages
English (en)
Inventor
Atsushi Mitsuzawa
敦 光澤
Yuji Matsuyama
祐司 松山
Toshihiko Kawai
利彦 河合
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2009125206A priority Critical patent/JP2010272055A/ja
Priority to TW99114214A priority patent/TWI467488B/zh
Priority to US12/800,178 priority patent/US8768684B2/en
Priority to EP10162652A priority patent/EP2256629A3/en
Priority to CN201010183139.6A priority patent/CN101901149B/zh
Publication of JP2010272055A publication Critical patent/JP2010272055A/ja
Priority to HK11100162.9A priority patent/HK1146130A1/xx
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/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】プログラムのマイグレーション前後で、プログラムを効率的に実行する。
【解決手段】命令セットAを実装するCPU11Aに接続されているメモリ12Aに存在する仮想マシン13を、命令セットBを実装するCPU11Bに接続されているメモリ12Bにマイグレーションする。この場合、命令セットAと命令セットBとに共通な命令は、CPU11Bの能力で実行される。命令セットAには存在するが、命令セットBには存在しない命令は、命令エミュレータ15によって、エミュレーションされることにより、実行される。本発明は、例えば、複数のCPUを搭載するコンピュータに適用できる。
【選択図】図1

Description

本発明は、情報処理装置および方法、並びにプログラムに関し、プログラムのマイグレーション前後で、プログラムを効率的に実行することを可能にする情報処理装置および方法、並びにプログラムに関する。
近年、プログラムのマイグレーション(プログラムの移行、変換処理)が実行されるようになっている。
このようなマイグレーションを実行する従来の手法として、例えば、QEMU(Fabrice Bellardの登録商標)等のエミュレーション手法がある。
また例えば、別の従来の手法が、非特許文献1,2に開示されている。
Ben Serebrin, "Cross-vendor migration: What do you mean my ISA isn't compatible?", Xen Summit, February 2009 FlexMigration [平成21年4月23日検索]、インターネット、<URL:http://communities.intel.com/openport/docs/DOC-2538>
しかしながら、上述した従来の手法を単に適用しただけでは、次のような要望に充分に応えることができない。
即ち、近年、異なる性質のCPU(Central Processing Unit)間や、例えば、高性能CPUと低消費電力CPUの間で、実行中のプログラムのマイグレーション(プログラムの移行、変換処理)を実行したいという要求が高まっている。しかしながら、かかる要求に充分に応えることができない状況である。
本発明は、このような状況に鑑みてなされたものであり、プログラムのマイグレーション前後で、プログラムを効率的に実行することを可能にするものである。
本発明の第1の側面の情報処理装置は、第1の命令セットが実装された第1の制御手段と、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段とを備え、前記第1の制御手段は、前記第1の命令セットの命令で構成されるプログラムの実行を制御し、前記第1の制御手段と前記第2の制御手段は、前記プログラムについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、前記第2の制御手段は、前記プログラムの実行の制御として、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させる制御を行う。
本発明の第1の側面の情報処理方法とプログラムのそれぞれは、上述した本発明の第1の側面の情報処理装置に対応する情報処理方法とプログラムのそれぞれである。
本発明の第1の側面の情報処理装置および方法、並びにプログラムにおいては、第1の命令セットの命令で構成されるプログラムの実行が制御され、プログラムについての、マイグレーションが実行され、プログラムの実行の制御として、第2の命令セットの命令のうち、第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令についてはエミュレーションさせる制御が行われる。
本発明の第2の側面の情報処理装置は、第1の命令セットが実装された第1の制御手段と、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段とを備え、前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、前記第1の制御手段と前記第2の制御手段は、前記仮想マシンについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、前記第2の制御手段は、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させることで、前記仮想マシンによる前記1以上のプログラムの実行を制御する。
本発明の第2の側面の情報処理方法とプログラムのそれぞれは、上述した本発明の第2の側面の情報処理装置に対応する情報処理方法とプログラムのそれぞれである。
本発明の第2の側面の情報処理装置および方法、並びにプログラムにおいては、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンが制御され、仮想マシンについての、マイグレーションの実行が制御され、第2の命令セットの命令のうち、第1の命令セットと同一の命令については自身で担当し、第1の命令セットとは異なる命令についてはエミュレーションされることで、仮想マシンによる前記1以上のプログラムの実行が制御される。
本発明の第3の側面の情報処理装置は、第1の命令セットが実装された第1の制御手段と、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段とを備え、前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムの実行を制御し、前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、その実行の制御を終了し、前記第2の命令セットと同一の命令のみを含むプログラムについては、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、前記第2の制御手段は、前記マイグレーションの実行の制御の後、実行の制御を終了させた前記プログラムについて、その実行の制御を再開させる。
本発明の第3の側面の情報処理方法とプログラムのそれぞれは、上述した本発明の第3の側面の情報処理装置に対応する情報処理方法とプログラムのそれぞれである。
本発明の第3の側面の情報処理装置および方法、並びにプログラムにおいては、前記第1の命令セットの命令で構成される1以上のプログラムの実行が制御され、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、その実行の制御が終了され、前記第2の命令セットと同一の命令のみを含むプログラムについては、マイグレーションの実行が制御され、前記マイグレーションの実行の制御の後、実行の制御が終了された前記プログラムについて、その実行の制御が再開される。
本発明の第4の側面の情報処理装置は、第1の命令セットが実装された第1の制御手段と、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段とを備え、前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、前記仮想マシンによる実行の制御を終了させ、前記仮想マシンについての前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、前記第2の制御手段は、前記マイグレーションの実行の制御の後、前記仮想マシンによる実行の制御を終了させた前記プログラムについて、その実行の制御を開始する。
本発明の第4の側面の情報処理方法とプログラムのそれぞれは、上述した本発明の第4の側面の情報処理装置に対応する情報処理方法とプログラムのそれぞれである。
本発明の第4の側面の情報処理装置および方法、並びにプログラムにおいては、第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンが制御され、1以上のプログラムのうち、少なくとも第2の命令セットとは異なる命令を含むプログラムについては、仮想マシンによる実行の制御が終了され、仮想マシンについてのマイグレーションの実行が制御され、マイグレーションの実行の制御の後、仮想マシンによる実行の制御が了されたプログラムについて、その実行の制御が開始される。
本発明の一側面によれば、プログラムのマイグレーション前後で、プログラムを効率的に実行することができる。
本発明が適用された情報処理装置の第1実施形態の構成例を示すブロック図である。 図1の例において仮想マシン13のマイグレーションが実行された場合の構成例を示すブロック図である。 第1実施形態のマイグレーション処理の一例を説明するフローチャートである。 第1実施形態のマイグレーション先の命令実行処理の一例を説明するフローチャートである。 本発明が適用された情報処理装置の第2実施形態の構成例を示すブロック図である。 本発明が適用された情報処理装置の第3実施形態の構成例を示すブロック図である。 プログラムの構成の一例を示す図である。 プログラムの構成の一例であって、図7とは異なる例を示す図である。 第3実施形態の仮想マシン13の構成例を示すブロック図である。 第3実施形態のマイグレーションマネージャ41とデータベース44の構成例を示すブロック図である。 第3実施形態のマイグレーション処理の一例を説明するフローチャートである。 マイグレーション先のCPU情報チェック処理の一例を説明するフローチャートである。 マイグレーションの前処理の一例を説明するフローチャートである。 マイグレーションの実行処理の一例を説明するフローチャートである。 発明が適用される情報処理装置に含まれるまたはその駆動を制御するコンピュータの構成例を示すブロック図である。
初めに、本発明の理解を容易なものとすべく、従来の技術の概要について説明する。次に、図面を参照して、本発明が適用される情報処理装置の実施の形態として、3つの実施の形態(以下、それぞれ第1乃至第3実施形態と称する)について説明する。よって、説明は以下の順序で行う。
1、従来の技術
2、第1実施形態(すべてのプログラムの命令に対し、マイグレーションを実行する例)
3、第2実施形態(すべてのプログラムの命令に対し、マイグレーションを実行する例)
4、第3実施形態(マイグレーション先にない命令が存在しているプログラム以外のプログラムに対し、マイグレーションを実行する例)
<1、従来の技術>
[背景技術]の欄で上述したように、プログラムのマイグレーションを実行する従来の手法の1つとして、エミュレーション手法が存在する。
エミュレーション手法は、ある命令セットAを実装するCPU(以下、CPU-Aと称する)で実行されるプログラムを、命令セットAとは異なる命令セットBを実装するCPU(以下、CPU−Bと称する)で実行させるための手法である。具体的には、命令セットAの命令を、命令セットBの命令に変換する手法である。これにより、CPU-Bは、変換後の命令セットBの命令でプログラムを実行することが可能となる。
エミュレーション手法は、命令セットAの命令を、まったく異なる命令セットBを実装するCPU-Bで実行可能であるという利点を持つ。
しかしながら、エミュレーション手法では、命令セットAの命令を命令セットBの命令に変換するまでの処理時間が非常に長い。その処理時間は、一般的に、変換後の命令セットBの命令を実行する時間を上回るほどである。このため、エミュレーション手法を用いてマイグレーションを行う場合、CPU-Bにおけるプログラムの実行が著しく遅くなる場合がある。
例えば、命令セットAと、命令セットBが、主要な命令は同じで、一部の命令だけが異なる命令セットであるとする。このような場合においても、エミュレーション手法は、命令セットAのすべての命令を、命令セットBの命令に変換する。
このため、命令セットAの命令と、命令セットBの命令とが、主要な命令は同じで、一部の命令だけが異なる命令セットである場合にエミュレーション手法を適用することは、効率が悪い。
また、仮想化技術を用いて仮想マシンを実現し、仮想マシンのマイグレーションを実行したいという要望がある。
仮想化技術とは、ソフトウエアで仮想的なハードウエアを生成し、その仮想的なハードウエア上でアプリケーション等のソフトウエアを動作させる技術をいう。
また、仮想マシンとは、OS(Operating System)やアプリケーションソフトウエアを物理的なコンピュータと同じように実行可能とさせるための、ソフトウエアやデータの集合をいう。仮想マシンには、CPU、メモリ、HDD(Hard Disc Drive)やネットワークコントローラ等と等価な機能を有する各種仮想デバイス等も含まれる。
仮想マシンは、物理的なハードウエア上に作成され、例えばVMware(VMware,Inc.の登録商標)やXen(XenSource,Inc.の登録商標)等の仮想マシンモニタにより制御される。
仮想マシンのマイグレーションとは、ある仮想マシンモニタから別の仮想マシンモニタに仮想マシンを移動することをいう。
しかしながら、仮想マシンは、物理的なCPUと同一セットの命令セットを実装している。従って、例えば命令セットAを実装するCPU−Aにより動作されていた仮想マシンを、単純に命令セットBを実装するCPU−Bに対してマイグレーションを実行することはできない。
また、プログラムをマイグレーションする別の手法として、非特許文献1では、異なるベンダーで開発されたCPU間においてマイグレーションを実行する手法が開示されている。即ち、非特許文献1の手法を適用することで、主要命令セットが同じで、一部の命令が異なるCPU間において、プログラムのマイグレーションを実行すること自体は可能になる。しかしながら、非特許文献1の手法では、高性能のCPUと低性能のCPUを有するシステムを構成した場合、高性能のCPUのみにある拡張命令を使用しないため、高性能のCPUで得られるはずの本来の性能を得ることができない場合があった。
さらにまた、プログラムのマイグレーションを実行する別の手法として、非特許文献2には、INTEL社のFlexMigrationというハードウエアが開示されている。FlexMigrationは、新しい世代のCPUを、古い世代のCPUに見せかけることによって、異なる世代のCPU間におけるマイグレーションを実行するハードウエアである。しかしながら、FlexMigrationは、新しい世代のCPUに高性能化を実現する拡張命令が追加されていた場合でも、その拡張命令を使うことができない。その結果、新しい世代のCPUで本来得られるはずの性能を得ることができない。
さらにまた、プログラムをマイグレーションする別の手法として、AMD社により、AMD-V(AMD Virtualization)というハードウエアが提案されている。AMD-Vも、上述したFlexMigrationと同様に、新しい世代のCPUを古い世代のCPUに見せかけることで、異なる世代のCPU間のマイグレーションを実現するものである。
従って、AMD-Vも、上述したFlexMigrationと同様、新しい世代のCPUで得られるはずの本来の性能を得ることができない。
そこで、本発明人は、主要な命令が同じで、一部の命令のみが異なる命令セットを実装するCPU間(例えば、異なる世代、異なるベンダーのCPU間)におけるプログラムのマイグレーションを、より効率的に、より高性能を保ったまま実行する技術を発明した。以下、かかる技術が適用された情報処理装置、即ち、本発明が適用された情報処理装置として、3つの実施の形態について説明していく。
<2、第1実施形態>
[第1実施形態の情報処理装置の構成例]
図1は、本発明が適用された情報処理装置の構成例を示すブロック図である。
なお、本明細書において、システムとは、複数の装置や処理部により構成される装置全体を表すものである。即ち、図1の例の情報処理装置は、別々の筐体に収納された複数の装置として構成することも可能であるが、本実施の形態では、1つの筐体に収納された1台の装置として構成されているとする。
図1の例の情報処理装置には、CPU11Aと、CPU11Aに接続されたメモリ12Aが存在する。メモリ12Aには、さらに、仮想マシン13、および仮想マシンモニタ14Aが存在する。
また、図1の例の情報処理装置には、CPU11Bと、CPU11Bに接続されたメモリ12Bが存在する。メモリ12Bには、仮想マシンモニタ14Bが存在する。さらに、仮想マシンモニタ14Bには、命令エミュレータ15が存在する。
CPU11Aには、命令セットAが実装されているとする。また、CPU11Bには、命令セットBが実装されているとする。
なお、命令セットAと命令セットBは、主要な命令が共通の命令セットである。以下、命令セットAと命令セットBにおいて共通な命令を、共通命令と称する。また、命令セットAの命令には、命令セットBにはない命令が含まれているとする。この命令を、以下、命令Xと称する。即ち、命令セットAの命令には、共通命令と命令Xとが含まれている。命令セットBの命令には、共通命令は含まれているが、命令Xは含まれていない。
仮想マシン13は、例えば、命令セットAの命令からなるプログラムを含む。仮想マシン13のプログラムは、仮想マシン13が存在するメモリ12Aに接続されているCPU11Aの能力により、実行される。
仮想マシンモニタ14A,14Bは、例えば、ハードウエアに依存しない実行環境を仮想マシン13に提供するためのプログラムとして構成されている。
命令エミュレータ15は、命令セットAにはあって、命令セットBにはない命令Xを、命令セットBの命令に変換して実行する機能を有するプログラムである。その動作の詳細については、図2を参照して後述する。
図1の例においては、仮想マシン13は、メモリ12A上で、仮想マシンモニタ14Aの制御により動作している。仮想マシン13のプログラムは、命令セットAを実装するCPU11Aの能力で実行される。
以上、図1を参照して第1実施形態の情報処理装置の構成例について説明した。次に、図2を参照して、仮想マシン13のマイグレーションについて説明する。
図2において、メモリ12Aからメモリ12Bへ、仮想マシン13のマイグレーションが実行されたとする。
マイグレーションにより、仮想マシン13はメモリ12Aからメモリ12Bに移動するが、仮想マシン13が実行するプログラムは、命令セットAの命令で構成されている。しかしながら、仮想マシン13は、マイグレーションにより、命令セットBを実装するCPU11Bに接続されたメモリ12Bに移行されることになる。
即ち、仮想マシン13のプログラムは、CPU11Bの能力で実行されることとなる。しかしながら、上述したように、共通命令は、CPU11Bの能力で実行することが可能であるが、共通命令以外の命令は、CPU11Bの能力で実行することができない。
このため、マイグレーション後は、仮想マシン13のプログラムは、命令に応じて、次のように実行される。
即ち、仮想マシン13のプログラムの命令の主要な部分である共通命令は、CPU11Bの能力により実行される。
CPU11Bの能力で実行できない命令、即ち、共通命令以外の命令は、仮想マシン13から、仮想マシンモニタ14Bに移行され、仮想マシンモニタ14Bの命令エミュレータ15が、CPU11Aの能力で実行した場合と等価に実行する。なお、CPU11Bで実行できない命令としては、例えば、CPUの種類を調べるための命令(例えば、INTEL社のCPUID命令。以下、CPUID命令と称する)や、命令Xが挙げられる。
このような構成をもつことにより、第1実施形態の情報処理装置は、例えば以下の効果を奏することができる。
例えば、CPU11Aが、高性能であるが、高消費電力のCPUで構成されたとする。また、CPU11Bが、低性能であるが、低消費電力のCPUで構成されたとする。
この場合、高消費電力のCPU11Aが接続されているメモリ12Aから、仮想マシン13を、プログラムの実行を停止させることなく、低消費電力のCPU11Bが接続されているメモリ12Bへ、マイグレーションを実行することができる。
従って、例えば高性能を必要とする命令はCPU11Aの能力で実行し、高性能を必要としない命令は、CPU11Bの能力で実行することができる。このように構成することにより、第1実施形態の情報処理装置は、高性能と、低消費電力とを両立させたシステムを実現することができる。
[情報処理装置の第1実施形態の処理例]
図3は、図2を参照して説明した、メモリ12Aからメモリ12Bへ、仮想マシン13のマイグレーションが実行される処理(以下、マイグレーション処理と称する)のフローチャートである。
なお、以下、適宜、マイグレーション前に仮想マシン13が存在したメモリ12Aと接続されているCPU11Aを、マイグレーション元のCPU11Aと表現する。また、マイグレーションにより仮想マシン13が移動した先のメモリ12Bに接続されているCPU11Bを、マイグレーション先のCPU11Bと称する。
ステップS1において、仮想マシン13が、マイグレーション元のCPU11Aの能力で、プログラムを実行する。
ステップS2において、マイグレーション元のCPU11Aは、マイグレーションの条件が成立したか否かを判定する。マイグレーションの条件としては、例えば、ユーザにより、マイグレーションするとの指示がなされた場合がある。また例えば、高性能のCPU11Aが、高性能を必要とする命令を実行していて、次の命令が高性能を必要としない場合に、マイグレーションの条件が成立したと判定される。
マイグレーションの条件が成立しない場合、ステップS2においてNOであると判定されて、処理はステップS1に戻され、それ以降の処理が繰り返される。
即ち、マイグレーションの条件が成立するまで、ステップS1、S2のループ処理が繰り返されて、マイグレーション元のCPU11Aでプログラムが実行される。
その後、マイグレーションの条件が成立した場合、ステップS2においてYESであると判定されて、処理はステップS3に進む。
ステップS3において、マイグレーション元のCPU11Aは、マイグレーションを実行する。具体的には例えば、図2の例においては、メモリ12Aからメモリ12Bへ、仮想マシン13のマイグレーションが実行される。
ステップS4において、仮想マシン13が、マイグレーション先のCPU11Bの能力で、プログラムを実行して、マイグレーション処理は終了される。なお、仮想マシン13がマイグレーション先のCPU11Bの能力でプログラムを実行する処理の一例については、図4を参照して後述する。
図4は、図3のマイグレーション処理のうち、ステップS4の仮想マシン13がマイグレーション先のCPU11Bの能力で、プログラムを実行する場合の処理の一例について説明するフローチャートである。なお、このような処理を、以下、マイグレーション先の命令実行処理と称する。
ステップS11において、マイグレーション先のCPU11Bは、実行する命令がCPUID命令、または命令Xであるか否かを判定する。
実行する命令がCPUID命令、または命令Xでない場合、即ち、共通命令である場合、ステップS11においてNOであると判定されて、処理はステップS13に進む。
ステップS13において、仮想マシン13が、マイグレーション先のCPU11Bの能力で命令を実行し、処理は終了される。
これに対し、実行する命令がCPUID命令、または命令Xである場合、ステップS11においてYESであると判定されて、処理はステップS12に進む。
ステップS12において、命令エミュレータ15は、命令(CPUID命令、または命令X)を実行する。
このようにして、CPUID命令、または命令Xである場合は命令エミュレータ15が命令を実行し、共通命令、即ち、命令の主要な部分は、仮想マシン13がCPU11Bの能力で命令を実行することができる。
これにより、第1実施形態では、命令のすべてをエミュレーションする必要はなく、マイグレーション先のCPU11Bの能力で実行できない命令Xのみをエミュレーションする。よって、本発明が適用された情報処理装置は、エミュレーションに要する時間が短縮される。その結果、本発明が適用された情報処理装置は、仮想マシン13のマイグレーションの前後で、効率的に仮想マシン13を実行することが可能となる。
以上、図1乃至図4を参照して、本発明の第1実施形態について説明した。次に図5を参照して、本発明の第2実施形態について説明する。
<3、第2実施形態>
[第2実施形態の情報処理装置の構成例]
図5は、本発明が適用された情報処理装置の機能的構成例であって、図1の例とは異なる構成例を示している。
図5の例において、図1と対応する箇所には対応する符号が付してあり、それらの説明は適宜省略する。
なお、図5の例の情報処理装置は、別々の筐体に収納された複数の装置として構成することも可能であるが、本実施の形態では、1つの筐体に収納された1台の装置として構成されているとする。
図5の例の情報処理装置には、CPU11A、CPU11B、メモリ12A、およびHDD16が存在している。メモリ12Aは、CPU11A、およびCPU11Bに共有されている。また、HDD16には、命令エミュレータ15を備えた仮想マシンモニタ14Bが存在する。仮想マシンモニタ14A,14Bは、それぞれメモリ12AとHDD16を相互に移動可能である。
このような構成においては、次のような一連の処理が実行されることで、仮想マシン13のマイグレーションが実行される。
仮想マシンモニタ14Aは、メモリ12A以外の場所、例えば、HDD16に退避される。次に、仮想マシンモニタ14Bは、メモリ12Aに移動される。これにより、仮想マシン13のマイグレーションが実現される。
換言すると、仮想マシンモニタ14AがHDD16に、仮想マシンモニタ14Bがメモリ12Aにそれぞれ転送されることで、仮想マシン13は、マイグレーションされたとみなされる。これにより、マイグレーション後は、仮想マシン13のプログラムは、CPU11Bの能力で実行されることとなる。
以上、図5を参照して、本発明の第2実施形態について説明した。
<4、第3実施形態>
[第3実施形態の概要]
第1実施形態、および第2実施形態では、上述したように、マイグレーション先のCPU11Bに存在しない命令Xのみをエミュレーションすることにより、効率的に仮想マシン13のマイグレーションを実行した。
これに対して、第3実施形態では、命令Xが存在するプログラムは、マイグレーションが実行される前に終了される。これにより、第3実施形態では、共通命令のみが存在するプログラムのみ、マイグレーションが実行され、命令Xが存在するプログラムについては、マイグレーションが実行されない。命令Xが存在するプログラムは、マイグレーション後に、マイグレーション先のCPU11Bによって再び起動される。
換言すると、第3実施形態では、共通命令のみが存在するプログラムのみマイグレーションが実行されて、引き続きマイグレーション先でプログラムが実行される。そして、命令Xが存在するプログラムは、マイグレーション前に一度終了され、マイグレーション後にマイグレーション先で再び実行される。
[第3実施形態の情報処理装置の構成例] 図6は、本発明が適用された情報処理装置の機能的構成例であって、図1の例とは異なる構成例を示している。
図6の例において、図1と対応する箇所には対応する符号が付してあり、それらの説明は適宜省略する。
なお、図6の例の情報処理装置は、別々の筐体に収納された複数の装置として構成することも可能であるが、本実施の形態では、1つの筐体に収納された1台の装置として構成されているとする。
図6の例の情報処理装置には、仮想マシンモニタ14Aにコントロールパネル17Aが、存在している。また、仮想マシンモニタ14Bには、コントロールパネル17Bが存在している。
仮想マシンモニタ14A、14Bは、それぞれが仮想マシン13を制御することができる。また、仮想マシンモニタ14A、14Bや仮想マシン13は、コントロールパネル17A、コントロールパネル17Bのインタフェースを介して、制御される。
また、コントロールパネル17A、17Bは、仮想マシンモニタ14A、14Bや仮想マシン13を制御するための機能を実現できるプログラムである。コントロールパネル17Aとコントロールパネル17Bは、ネットワーク等を介して相互に通信することが可能である。
また、仮想マシン13は、コントロールパネル17A,17Bと相互にアクセスすることが可能である。
図7、図8は、第3の実施形態の情報処理装置において実行されるプログラム21の構成例について説明する図である。
図7は、第3の実施形態の情報処理装置において実行されるプログラム21の構成例のうち、命令セットAで構成される命令列31と、命令セットBで構成される命令列32とが、単に羅列された構成となっている例である。図7に示されるプログラムの一例として、例えば、Power PC(IBM社の登録商標)とx86(INTEL社の登録商標)との両方で動作するユニバーサルバイナリ等が該当する。
図8は、第3の実施形態の情報処理装置において実行されるプログラム22の構成例の別の一例である。図8は、主要な命令が共通で、一部の命令だけが異なる命令セットである命令セットAと命令セットBが含まれるプログラムの、典型的な例である。
図8の例のプログラム22は、命令セットAと命令セットBとの共通部分の命令列33を含んでいる。さらに、図8の例のプログラム22は、命令セットAの拡張部分の命令列34を含んでいる。命令セットAの拡張部分の命令列34とは、命令セットAにあって、命令セットBにはない命令が存在する命令列である。さらにまた、図8の例のプログラム22は、命令セットBの拡張部分の命令列35を含んでいる。命令セットBの拡張部分の命令列35とは、命令セットBにあって、命令セットAにはない命令が存在する命令列である。
主要な命令が共通で、一部の命令が異なる命令セットを含むプログラムの構成としては、図8の例の構成のほうが、図7の例の構成より、プログラムのサイズが小さくなるという利点がある。このため、第3実施形態では、図8の構成のプログラムが採用されているとして、以下、説明する。
図8の例のプログラムにおいては、x=ASM(“CPUID;”)という命令で、CPUの種類を調べることができる。そして、CPUによって異なる命令セットは、CPUID命令の結果の値によって、分岐した各命令列、例えば、命令セットAの拡張部分の命令列34、命令セットBの拡張部分の命令列35のそれぞれの中で実行される。
即ち、if(X=命令セットAのCPU)という命令により、CPUの種類がCPU11Aであった場合には、命令セットAの拡張部分の命令列34の命令が実行される。また、else if(X=命令セットBのCPU)という命令により、CPUの種類がCPU11Bであった場合には、命令セットBの拡張部分の命令列35の命令が実行される。
以上、図7、8を参照して第3実施形態の情報処理装置において実行されるプログラムの例について説明した。ところで、第3実施形態においては、上述したように、マイグレーション先のCPU11Bの能力で実行できない命令を含むプログラムは、マイグレーションが実行されない。このため、仮想マシン13のマイグレーションを実行するためには、仮想マシン13のプログラムにマイグレーション先のCPU11Bの能力で実行できない命令が存在するか否かを調べる必要がある。
以下、マイグレーション先のCPUの能力で実行できない命令が存在しているか否かを調べる手法について説明する。
マイグレーション先のCPUの能力で実行できない命令が存在しているか否かを調べるためには、静的な手法と、動的な手法との2種類がある。
静的な手法とは、プログラムをリバースエンジニアリングすることにより、そのプログラムがCPUID命令や命令Xを持っているか否かを調べる手法である。
これに対して、動的な手法とは、CPUID命令や命令Xが実行されたか否かを調べる手法である。
プログラムがマイグレーション可能か否かの判定手法としては、静的な手法、または動的な手法のいずれかを用いる判定手法と、静的な手法および動的な手法を組み合わせて用いる判定手法とがある。
なお、図8の例のプログラムにおいては、x=ASM(“CPUID;”)が実行される前であればマイグレーションが可能である。また、x=ASM(“CPUID;”)実行後、if文の実行前であれば、マイグレーション後にx=ASM(“CPUID;”)を再度実行することにより、マイグレーションが可能である。しかしながら、if文内の命令列(例えば、図8の例においては、命令セットAの拡張部分の命令列34)を実行後は、マイグレーションが不可能となる。
このため、第3実施形態では、静的な手法および動的な手法を組み合わせて用いる判定手法が採用されているとして、以下、説明する。具体的には、第3実施形態では、CPUID命令については、命令が実行されたか否かを調査し、命令Xについては、プログラムをリバースエンジニアリングするという判定手法が採用されているとする。
以上、図7,8を参照して、図6の例の情報処理装置において実行されるプログラムの例について説明した。
図9は、図6の仮想マシン13の詳細な構成例を示している。
仮想マシン13には、マイグレーションマネージャ41、オペレーティングシステム42、アプリケーション43−1乃至43−nが存在している。
マイグレーションマネージャ41は、マイグレーション処理を制御するモジュールである。マイグレーションマネージャ41は、常に動作している。また、マイグレーションマネージャ41は、マイグレーションするための一連の制御を行う。なお、マイグレーションマネージャ41の詳細な構成例については、図10を参照して後述する。
オペレーティングシステム42は、仮想マシン13上で動作するオペレーティングシステムである。なお、オペレーティングシステム42は、共通命令で構成されているとする。
アプリケーション43−1乃至43−n(nは1以上の整数値)は、仮想マシン13上で動作するプログラムである。なお、以下、アプリケーション43−1乃至43−nを特に区別する必要がない場合、これらをまとめてアプリケーション43と称する。アプリケーション43は、オペレーティングシステム42により実行される。
図10は、マイグレーションマネージャ41と、マイグレーションマネージャ41と通信可能なデータベース44の詳細な構成例を示している。
マイグレーションマネージャ41には、例えば、チェックすべきプログラムリスト51、マイグレーション先に存在しない命令リスト52、終了したプログラムリスト53等のリストを含むように構成されている。これらのリストの詳細については、後述する。
また、マイグレーションマネージャ41は、仮想マシン13に存在するすべてのプログラムに対して、プログラムにどのような命令が存在するかについて調査する。具体的には、マイグレーションマネージャ41は、プログラム実行前に、あらかじめリバースエンジニアリング等の手法を適用して、各プログラムに存在している命令のリストを作成する。
このようにして作成されたリストは、プログラムが使用する命令リスト61−1乃至61−n(nは1以上の整数値)として、データベース44に格納される。なお、データベース44は、例えば、ファイルシステム上であっても、ネットワーク上であってもよく、マイグレーションマネージャ41が参照可能な位置にあればよい。
プログラムが使用する命令リスト61−1乃至61−nは、仮想マシン13に存在するプログラムのそれぞれに対して作成される。即ち、プログラムが使用する命令リスト61−1乃至61−nは、仮想マシン13に存在するプログラムの数だけ存在する。なお、以下、プログラムが使用する命令リスト61−1乃至61−n(nは1以上の整数値)を特に区別する必要がない場合、これらをまとめてプログラムが使用する命令リスト61と称する。
プログラムが使用する命令リスト61の作成タイミングは、マイグレーションの実行には依存せず、任意でよい。例えば、マイグレーションマネージャ41は、マイグレーションの実行が指示されるよりも前の適当なタイミングで、プログラムが使用する命令リスト61を作成することができる。また例えば、マイグレーションマネージャ41は、マイグレーションの実行が指示された後、マイグレーションを実行する直前に作成することができる。
マイグレーションマネージャ41は、データベース44をいつでも参照することが可能である。マイグレーションマネージャ41は、プログラムが使用する命令リスト61を参照することにより、実行の対象となるプログラムにどのような命令が使用されているかを迅速に知ることができる。
なお、プログラムが使用する命令リスト61は、図10の例では、データベース44に格納されていた。ただし、プログラムが使用する命令リスト61の格納場所は、図10の例に特に限定されない。例えば、プログラムのヘッダに、そのプログラムが使用する命令リスト61をエンコードして埋め込むこともできる。
次に、マイグレーションマネージャ41に存在するチェックすべきプログラムリスト51、マイグレーション先に存在しない命令リスト52、および終了したプログラムリスト53について説明する。
チェックすべきプログラムリスト51は、CPUID命令を発行したプログラムを特定する情報が羅列されて構成される。
即ち、マイグレーションマネージャ41は、仮想マシン13に存在する全てのプログラムを監視する。具体的には、マイグレーションマネージャ41は、全てのプログラムのそれぞれについて、CPUID命令が発行されたか否かを監視する。マイグレーションマネージャ41は、実行中のとあるプログラムからCPUID命令が発行された場合、そのCPUID命令を捕捉して、そのプログラムを特定する情報を、チェックすべきプログラムリスト51に追記する。このようにして、チェックすべきプログラムリスト51の内容が更新されていく。
また、マイグレーションマネージャ41は、チェックすべきプログラムリスト51に追記されたプログラムの実行が終了した場合には、そのプログラムをチェックすべきプログラムリスト51から削除する。
マイグレーション先に存在しない命令リスト52には、マイグレーションマネージャ41が、マイグレーション元のCPU11Aには存在し、マイグレーション先のCPU11Bに存在しないことを確認した命令が記載されている。
終了したプログラムリスト53には、マイグレーションマネージャ41が、マイグレーション前に、あらかじめ終了させたプログラムが記載されている。あらかじめ終了させたプログラムとは、マイグレーションが実行できないプログラム、即ちマイグレーション先に存在しない命令を含むプログラムである。終了したプログラムリスト53に記載されたプログラムは、マイグレーション終了後に、マイグレーション先のCPU11Bの能力で再起動される。
このような構成をもつことにより、第3実施形態の情報処理装置は、共通命令のみで構成されるプログラムについては、マイグレーション前後にかかわらずそのまま実行をし続け、共通命令以外の命令を含むプログラムについては、マイグレーション前に一度終了した後、マイグレーション先のCPU11Bの能力で、共通命令のみを用いて再び実行することができる。
よって、例えばCPU11Aを高性能であるが高消費電力のCPUで構成し、CPU11Bを低性能であるが低消費電力のCPUで構成した場合、次のような効果を奏することが可能になる。
即ち、第3実施形態の情報処理装置においては、共通命令のみにより構成されるプログラムについてはマイグレーション前後にかかわらずそのまま実行し続け、共通命令以外の命令を含むプログラムについてはマイグレーション後に再起動することで、CPU11Bで共通命令以外の命令が実行されないようにすることができる。これにより、第3実施形態の情報処理装置は、オペレーティングシステム全体が破壊されることなしに、仮想マシンを高性能、高消費電力のCPUから低性能、低消費電力のCPUに、効率的にマイグレーションすることが可能となる。
[情報処理装置の第3実施形態の処理例]
図11は、図6を参照して説明した、メモリ12Aからメモリ12Bへ、仮想マシン13がマイグレーションされる処理(以下、マイグレーション処理を称する)を説明するフローチャートである。
ステップS21において、マイグレーションマネージャ41は、マイグレーションする前に、マイグレーション先のCPU11Aについて調査する。以下、このような処理をマイグレーション先のCPU情報チェック処理と称する。マイグレーション先のCPU情報チェック処理の詳細例については、図12を参照して後述する。
ステップS22において、マイグレーションマネージャ41は、マイグレーションの前処理を実行する。プログラムの前処理とは、マイグレーションマネージャ41が、処理対象となるプログラムがマイグレーション可能なプログラムか否かを判定し、マイグレーション可能でないプログラムを終了させる指示をする処理である。マイグレーションの前処理の詳細例については、図13を参照して後述する。
ステップS23において、マイグレーションマネージャ41は、メモリ12Aからメモリ12Bへの仮想マシン13のマイグレーションを実行する。以下、このような処理を、マイグレーションの実行処理と称する。マイグレーションの実行処理の詳細例については、図14を参照して後述する。
ステップS24において、マイグレーションマネージャ41は、終了したプログラムリスト53にリストアップされているプログラムをすべて起動する。以上で、本発明における第3実施形態のマイグレーション処理が終了される。
図12は、図11のマイグレーション処理のうちステップS21のマイグレーション先のCPU情報チェック処理の詳細例を説明するフローチャートである。
ステップS31において、マイグレーションマネージャ41は、コントロールパネル17Aを介して、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bに、マイグレーション先のCPU情報を問い合わせる。CPU情報には、マイグレーション先のCPU11Bが実装している命令の情報が含まれている。
ステップS32において、マイグレーションマネージャ41は、マイグレーション元のCPU情報と、マイグレーション先のCPU情報を比較する。マイグレーション元のCPU情報と、マイグレーション先のCPU情報は、コントロールパネル17A,17Bを介して入手される。
ステップS33において、マイグレーションマネージャ41は、マイグレーション先のCPU11Bに存在しない命令があるか否かを判定する。
マイグレーション先のCPU11Bに存在しない命令がない場合、ステップS33においてNOと判定されて、マイグレーション先のCPU情報チェック処理は終了される。
これに対し、マイグレーション先のCPU11Bに存在しない命令がある場合、ステップS33においてYESと判定され、処理はステップS34に進む。
ステップS34において、マイグレーションマネージャ41は、マイグレーション先のCPU11Bに存在しない命令を、マイグレーション先に存在しないリスト52に追記する。
これにより、マイグレーション先のCPU情報チェック処理が終了される。即ち、図11のステップS21の処理は終了し、ステップS22の処理として、例えば図13に示されるようなマイグレーションの前処理が開始する。
図13は、図11のマイグレーション処理のうちステップS22のマイグレーションの前処理の詳細例を説明するフローチャートである。
ステップS41において、マイグレーションマネージャ41は、チェックすべきプログラムリスト51に存在する各プログラムのうち所定の1つを、処理対象プログラムとして設定する。上述したように、チェックすべきプログラムリスト51には、CPUID命令を発行したプログラムを特定する情報が羅列されて構成されている。
ステップS42において、マイグレーションマネージャ41は、処理対象プログラムがマイグレーション先に存在しない命令を持っているか否かを判定する。即ち、マイグレーションマネージャ41がマイグレーション先に存在しない命令リスト52を参照することにより、処理対象プログラムがマイグレーション先に存在しない命令を持っているか否かを判定することが可能となる。
処理対象プログラムが、マイグレーション先に存在しない命令を持っていない場合、ステップS42においてNOであると判定されて、処理はステップS45に進む。ステップS45以降の処理については後述する。
これに対して、処理対象プログラムが、マイグレーション先に存在しない命令を持っている場合、ステップS42においてYESであると判定されて、処理はステップS43に進む。
ステップS43において、マイグレーションマネージャ41は、マイグレーション元のCPU11Aに、処理対象プログラムの終了シグナルを送信する。これにより、処理対象のプログラムの実行が終了される。即ち、マイグレーション先に存在しない命令を持っている処理対象プログラムをマイグレーションさせないために、マイグレーションマネージャ41は、マイグレーション前に処理対象プログラムを終了させる。
ステップS44において、マイグレーションマネージャ41は、処理対象プログラムが停止したことを確認し、処理対象プログラムを終了したプログラムリスト53に追記する。
ステップS45において、マイグレーションマネージャ41は、チェックすべきプログラムリスト51に存在するすべてのプログラムが処理対象プログラムに設定されたか否かを判定する。
チェックすべきプログラムリスト51に存在するすべてのプログラムが、処理対象プログラムに設定されていない場合、ステップS45においてNOであると判定されて、処理はステップS41に戻され、それ以降の処理が繰り返される。
即ち、チェックすべきプログラムリスト51に存在するすべてのプログラムが、処理対象プログラムに設定されるまで、ステップS41乃至S44の処理が繰り返される。換言すると、チェックすべきプログラムリスト51に存在するプログラムのそれぞれについて、マイグレーション先に存在しない命令を持っているか否かが判定される。マイグレーション先に存在しない命令を持っているプログラムは、終了したプログラムリスト53に追記される。
その後、チェックすべきプログラムリスト51に存在するすべてのプログラムが処理対象プログラムに設定された場合、ステップS45においてYESであると判定されて、処理は終了される。
これにより、マイグレーションの前処理が終了する。即ち、図11のステップS22の処理は終了し、ステップS23の処理として、例えば図14に示されるようなマイグレーションの実行処理が開始する。
図14は、図11のマイグレーション処理のうち、ステップS23のマイグレーションの実行処理の詳細例を説明するフローチャートである。
ステップS51において、マイグレーションマネージャ41は、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bに、マイグレーションの実行を要求する。
仮想マシンモニタ14Bは、コントロールパネル17Bにマイグレーションの実行が要求されると、メモリ12Aからメモリ12Bへの仮想マシン13のマイグレーションを実行する。マイグレーションが終了すると、マイグレーションマネージャ41に対し、マイグレーション完了通知を送信する。
ステップS52において、マイグレーションマネージャ41は、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bから、マイグレーション完了通知を受信したか否かを判定する。
マイグレーションマネージャ41が、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bから、マイグレーション完了通知を受信していない場合、ステップS52においてNOであると判定されて、処理はステップS51に戻る。
即ち、マイグレーションマネージャ41が、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bから、マイグレーション完了通知を受信するまで、マイグレーションの実行処理は待機される。
これに対して、マイグレーションマネージャ41が、マイグレーション先の仮想マシンモニタ14Bのコントロールパネル17Bから、マイグレーション完了通知を受信した場合、ステップS52においてYESであると判定されて、処理が終了する。
これにより、マイグレーションの実行処理が終了する。即ち、図11のステップS23の処理は終了し、ステップS24の処理に進む。
以上説明した本発明が適用された情報処理装置によれば、以下の効果を奏することが可能となる。
本発明が適用された情報処理装置によれば、主要な命令が同じで、一部の命令が異なる命令セットを実装するCPU11A,11B間において、仮想マシン13のプログラムの実行を停止させることなくマイグレーションを実行することが可能となる。
例えば、CPU11Aが、高性能であるが、高消費電力のCPUで構成されたとする。また、CPU11Bが、低性能であるが、低消費電力のCPUで構成されたとする。
第1、第2の実施形態の情報処理装置によれば、例えば高い性能を必要とする命令プログラムはCPU11Aの能力で実行し、高い性能を必要としない命令は、CPU11Bの能力で実行することができる。このような構成とすることにより、本発明が適用された情報処理装置は、高い性能と、低い消費電力とを両立させたシステムを実現することができる。

また、第3の実施形態の情報処理装置によれば、例えばCPU11Aでしか実行できない命令が存在しているプログラムはCPU11Aの能力で実行し、共通命令のみで構成されたプログラムは、CPU11Bでの能力で実行することができる。このような構成とすることにより、第3実施形態の情報処理装置は、高い性能と、低い消費電力とを両立させたシステムを実現することができる。
また例えば、第1乃至第3の実施形態の情報処理装置によれば、既存のシステムに、廉価なハードウエアを追加し、それらのハードウエアに仮想マシン13をマイグレーションすることが可能となる。
また例えば、第1乃至第3の実施形態の情報処理装置によれば、既存のシステムに、新たに高性能なハードウエアを追加した場合に、その高性能な機能を使用しつつ、既存のハードウエアにもマイグレーションすることが可能となる。これにより、既存のシステムについても有効に活用することが可能となる。
また、マイグレーションは、上述した例では一装置内で行われたが、2以上の装置間で行われてもよい。即ち、本発明は、任意の情報処理装置にも適用可能である。本明細書において、システムとは、複数の装置や処理部により構成される装置全体を表すものである。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図15は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU101,102,ROM(Read Only Memory)103,RAM(Random Access Memory)104は、バス105により相互に接続されている。
バス105には、さらに、入出力インタフェース106が接続されている。入出力インタフェース106には、入力部107、出力部108、記憶部109、通信部110、およびドライブ111が接続されている。
入力部107は、キーボード、マウス、マイクロフォンなどよりなる。出力部108は、ディスプレイ、スピーカなどよりなる。記憶部109は、ハードディスクや不揮発性のメモリなどよりなる。通信部110は、ネットワークインタフェースなどよりなる。ドライブ111は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア112を駆動する。
以上のように構成されるコンピュータでは、CPU101,102が、例えば、記憶部109に記憶されているプログラムを、入出力インタフェース106およびバス105を介して、RAM104にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU101,102)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア112に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア112をドライブ111に装着することにより、入出力インタフェース106を介して、記憶部109にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部110で受信し、記憶部109にインストールすることができる。その他、プログラムは、ROM103や記憶部109に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
11A、11B CPU, 12A、12B メモリ, 13 仮想マシン, 14A、14B 仮想マシンモニタ, 15 命令エミュレータ, 16 HDD, 17A、17B コントロールパネル, 41 マイグレーションマネージャ, 42 オペレーティングシステム, 43 アプリケーション, 44 データベース, 51 チェックすべきプログラムリスト, 52 マイグレーション先に存在しない命令リスト, 53 終了したプログラムリスト, 61 プログラムが使用する命令リスト

Claims (12)

  1. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段と
    を備え、
    前記第1の制御手段は、前記第1の命令セットの命令で構成されるプログラムの実行を制御し、
    前記第1の制御手段と前記第2の制御手段は、前記プログラムについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記プログラムの実行の制御として、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させる制御を行う
    情報処理装置。
  2. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段と
    を備える情報処理装置のうち、
    前記第1の制御手段は、前記第1の命令セットの命令で構成されるプログラムの実行を制御し、
    前記第1の制御手段と前記第2の制御手段は、前記プログラムについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションを実行し、
    前記第2の制御手段は、前記プログラムの実行の制御として、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させる制御を行う
    ステップを含む情報処理方法。
  3. 第1の命令セットが実装された第1のコンピュータと、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2のコンピュータと
    のうち少なくとも一方に実行させるプログラムとして、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーションプログラムと、
    前記第1のコンピュータに、前記第1の命令セットの命令で構成されるプログラムの実行を制御させ、
    前記第1のコンピュータと前記第2のコンピュータに、前記プログラムについての、前記第1のコンピュータから前記第2のコンピュータへのマイグレーションの実行を制御させ、
    前記第2のコンピュータに、前記プログラムの実行の制御として、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーションプログラムに担当させる制御を行わせる
    ステップを含む制御プログラムと
    を含むプログラム。
  4. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段と
    を備え、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、
    前記第1の制御手段と前記第2の制御手段は、前記仮想マシンについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させることで、前記仮想マシンによる前記1以上のプログラムの実行を制御する
    情報処理装置。
  5. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーション手段と
    を備える情報処理装置のうち、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、
    前記第1の制御手段と前記第2の制御手段は、前記仮想マシンについての、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーション手段に担当させることで、前記仮想マシンによる前記1以上のプログラムの実行を制御する
    ステップを含む情報処理方法。
  6. 第1の命令セットが実装された第1のコンピュータと、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2のコンピュータと
    のうち少なくとも一方に実行させるプログラムとして、
    前記第1の命令セットの命令のうち、前記第2の命令セットとは異なる命令をエミュレーションするエミュレーションプログラムと、
    前記第1のコンピュータに、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御させ、
    前記第1のコンピュータと前記第2のコンピュータ、前記仮想マシンについての、前記第1のコンピュータから前記第2のコンピュータへのマイグレーションの実行を制御し、
    前記第2のコンピュータに、前記第2の命令セットの命令のうち、前記第1の命令セットと同一の命令については自身で担当し、前記第1の命令セットとは異なる命令については前記エミュレーションプログラムに担当させることで、前記仮想マシンによる前記1以上のプログラムの実行を制御させる
    ステップを含む制御プログラムと
    を含むプログラム。
  7. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と
    を備え、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムの実行を制御し、
    前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、その実行の制御を終了し、前記第2の命令セットと同一の命令のみを含むプログラムについては、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記マイグレーションの実行の制御の後、実行の制御を終了させた前記プログラムについて、その実行の制御を再開させる
    情報処理装置。
  8. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と
    を備える情報処理装置のうち、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムの実行を制御し、
    前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、その実行の制御を終了し、前記第2の命令セットと同一の命令のみを含むプログラムについては、前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記マイグレーションの実行の制御の後、実行の制御を終了させた前記プログラムについて、その実行の制御を再開させる
    ステップを含む情報処理方法。
  9. 第1の命令セットが実装された第1のコンピュータに、前記第1の命令セットの命令で構成される1以上のプログラムの実行を制御させ、
    前記第1のコンピュータと、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2のコンピュータに、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、その実行の制御を終了させ、前記第2の命令セットと同一の命令のみを含むプログラムについては、前記第1のコンピュータから前記第2のコンピュータへのマイグレーションの実行を制御させ、
    前記第2のコンピュータに、前記マイグレーションの実行の制御の後、実行の制御を終了させた前記プログラムについて、その実行の制御を再開させる
    プログラム。
  10. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と
    を備え、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、
    前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、前記仮想マシンによる実行の制御を終了させ、前記仮想マシンについての前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記マイグレーションの実行の制御の後、前記仮想マシンによる実行の制御を終了させた前記プログラムについて、その実行の制御を開始する
    情報処理装置。
  11. 第1の命令セットが実装された第1の制御手段と、
    前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2の制御手段と
    を備える情報処理装置のうち、
    前記第1の制御手段は、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御し、
    前記第1の制御手段と前記第2の制御手段は、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、前記仮想マシンによる実行の制御を終了させ、前記仮想マシンについての前記第1の制御手段から前記第2の制御手段へのマイグレーションの実行を制御し、
    前記第2の制御手段は、前記マイグレーションの実行の制御の後、前記仮想マシンによる実行の制御を終了させた前記プログラムについて、その実行の制御を開始する
    ステップを含む情報処理方法。
  12. 第1の命令セットが実装された第1のコンピュータに、前記第1の命令セットの命令で構成される1以上のプログラムを実行する仮想マシンを制御させ、
    前記第1のコンピュータと、前記第1の命令セットに対して少なくとも一部の命令が異なる第2の命令セットが実装された第2のコンピュータに、前記1以上のプログラムのうち、少なくとも前記第2の命令セットとは異なる命令を含むプログラムについては、前記仮想マシンによる実行の制御を終了させ、前記仮想マシンについての前記第1のコンピュータから前記第2のコンピュータへのマイグレーションの実行を制御させ、
    前記第2のコンピュータに、前記マイグレーションの実行の制御の後、前記仮想マシンによる実行の制御を終了させた前記プログラムについて、その実行の制御を開始させる
    プログラム。
JP2009125206A 2009-05-25 2009-05-25 情報処理装置および方法、並びにプログラム Pending JP2010272055A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2009125206A JP2010272055A (ja) 2009-05-25 2009-05-25 情報処理装置および方法、並びにプログラム
TW99114214A TWI467488B (zh) 2009-05-25 2010-05-04 用以處理資訊之設備、方法及程式
US12/800,178 US8768684B2 (en) 2009-05-25 2010-05-10 Apparatus, method and program for processing information
EP10162652A EP2256629A3 (en) 2009-05-25 2010-05-12 Apparatus, method and program for processing information
CN201010183139.6A CN101901149B (zh) 2009-05-25 2010-05-18 处理信息的设备、方法和程序
HK11100162.9A HK1146130A1 (en) 2009-05-25 2011-01-10 Apparatus, method and program for processing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009125206A JP2010272055A (ja) 2009-05-25 2009-05-25 情報処理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2010272055A true JP2010272055A (ja) 2010-12-02

Family

ID=42790865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009125206A Pending JP2010272055A (ja) 2009-05-25 2009-05-25 情報処理装置および方法、並びにプログラム

Country Status (6)

Country Link
US (1) US8768684B2 (ja)
EP (1) EP2256629A3 (ja)
JP (1) JP2010272055A (ja)
CN (1) CN101901149B (ja)
HK (1) HK1146130A1 (ja)
TW (1) TWI467488B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194868A (ja) * 2011-03-17 2012-10-11 Ntt Data Corp 移動要求装置、移動要求方法、移動要求プログラム
JP2013191089A (ja) * 2012-03-14 2013-09-26 Fujitsu Ltd 例外処理方法、プログラム及び装置
JP2013210757A (ja) * 2012-03-30 2013-10-10 Nec Corp 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム
WO2015001615A1 (ja) 2013-07-02 2015-01-08 富士通株式会社 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
JP2018500646A (ja) * 2014-11-12 2018-01-11 インテル コーポレイション グラフィックス仮想化を用いたホストコンピュータからの/ホストコンピュータへの仮想マシンのライブマイグレーション

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760389B2 (en) * 2013-03-15 2017-09-12 Excalibur Ip, Llc Activity initiated virtual machine migration
JP6056578B2 (ja) * 2013-03-19 2017-01-11 富士通株式会社 仮想マシンの移動終了を検出する装置、方法、及びプログラム
CN103455363B (zh) * 2013-08-30 2017-04-19 华为技术有限公司 一种虚拟机的指令处理方法、装置及物理主机
US9336039B2 (en) * 2014-06-26 2016-05-10 Vmware, Inc. Determining status of migrating virtual machines
CN104899022B (zh) * 2015-05-12 2018-01-02 北京京东尚科信息技术有限公司 一种处理指令的方法和装置
CN106325819B (zh) * 2015-06-17 2019-08-02 华为技术有限公司 计算机指令处理方法、协处理器和系统
CN104951047A (zh) * 2015-07-12 2015-09-30 佛山博朗德技术有限公司 一种小功耗cpu系统唤醒大功耗cpu系统的设计方法
US10055208B2 (en) * 2015-08-09 2018-08-21 Oracle International Corporation Extending a virtual machine instruction set architecture
US10331656B2 (en) * 2015-09-25 2019-06-25 Microsoft Technology Licensing, Llc Data migration validation
US9529620B1 (en) * 2015-12-17 2016-12-27 International Business Machines Corporation Transparent virtual machine offloading in a heterogeneous processor
US10419547B1 (en) * 2017-04-10 2019-09-17 Plesk International Gmbh Method and system for composing and executing server migration process
CN107621970B (zh) * 2017-10-16 2021-02-05 郑州云海信息技术有限公司 一种异构cpu的虚拟机迁移方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
EP2048578A2 (en) * 2007-09-06 2009-04-15 Dell Products, L.P. Virtual machine (VM) migration between processor architectures

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098419A1 (en) * 2002-11-18 2004-05-20 International Business Machines Corporation Method and apparatus for a migration assistant
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7389403B1 (en) * 2005-08-10 2008-06-17 Sun Microsystems, Inc. Adaptive computing ensemble microprocessor architecture
CN100514298C (zh) * 2006-08-04 2009-07-15 深圳市研祥智能科技股份有限公司 异构硬件体系间软件移植的系统
US7886172B2 (en) 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
EP2048578A2 (en) * 2007-09-06 2009-04-15 Dell Products, L.P. Virtual machine (VM) migration between processor architectures

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200500829009; 茂木龍太: 'サーバー向け仮想マシン・ソフトを徹底比較' 日経Windowsプロ 第93号, 200412, 94-100頁, 日経BP社 *
CSNG200701069002; 深江輝昭ほか: '機能分散マルチプロセッサ向けRTOSへのマイグレーション可能タスクの導入' 電子情報通信学会技術研究報告 Vol.106 No.601, 200703, 7-12頁, 社団法人電子情報通信学会 *
JPN6013038859; 深江輝昭ほか: '機能分散マルチプロセッサ向けRTOSへのマイグレーション可能タスクの導入' 電子情報通信学会技術研究報告 Vol.106 No.601, 200703, 7-12頁, 社団法人電子情報通信学会 *
JPN6013058705; 茂木龍太: 'サーバー向け仮想マシン・ソフトを徹底比較' 日経Windowsプロ 第93号, 200412, 94-100頁, 日経BP社 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194868A (ja) * 2011-03-17 2012-10-11 Ntt Data Corp 移動要求装置、移動要求方法、移動要求プログラム
JP2013191089A (ja) * 2012-03-14 2013-09-26 Fujitsu Ltd 例外処理方法、プログラム及び装置
JP2013210757A (ja) * 2012-03-30 2013-10-10 Nec Corp 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム
WO2015001615A1 (ja) 2013-07-02 2015-01-08 富士通株式会社 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
JPWO2015001615A1 (ja) * 2013-07-02 2017-02-23 富士通株式会社 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
JP2018500646A (ja) * 2014-11-12 2018-01-11 インテル コーポレイション グラフィックス仮想化を用いたホストコンピュータからの/ホストコンピュータへの仮想マシンのライブマイグレーション

Also Published As

Publication number Publication date
CN101901149A (zh) 2010-12-01
US20100299130A1 (en) 2010-11-25
HK1146130A1 (en) 2011-05-13
TWI467488B (zh) 2015-01-01
US8768684B2 (en) 2014-07-01
EP2256629A3 (en) 2012-04-11
CN101901149B (zh) 2014-06-04
EP2256629A2 (en) 2010-12-01
TW201110024A (en) 2011-03-16

Similar Documents

Publication Publication Date Title
JP2010272055A (ja) 情報処理装置および方法、並びにプログラム
US10552208B2 (en) Migrating a virtual machine that owns a resource such as a hardware device
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
US8984507B2 (en) Cross architecture virtual machine migration
US10007541B2 (en) Method for operating a mobile virtual environment upon connection to a host computer
RU2406113C2 (ru) Системы и способы двухрежимной виртуализации устройства реальных и идеализированных аппаратных устройств
JP5893029B2 (ja) クラウド・コンピューティング環境においてハイパーバイザの制御を可能にする方法
US20130191555A1 (en) Intelligent storage controller
TW200305823A (en) Systems and methods for managing drivers in a computing system
US20120102455A1 (en) System and apparatus for hosting applications on a storage array via an application integration framework
JP2014506708A (ja) ハイバネイトからの多段レジューム
US20150127833A1 (en) Rapid virtual machine cloning
US20120017209A1 (en) Optimizing a file system interface in a virtualized computing environment
US8447894B2 (en) Upgrading an elastic computing cloud system
CN111194437A (zh) 使用存储中代码执行的数据处理卸载
WO2012094303A1 (en) Upgrading an elastic computing cloud system
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
US9158550B2 (en) Caching based operating system installation
US9229757B2 (en) Optimizing a file system interface in a virtualized computing environment
US11003488B2 (en) Memory-fabric-based processor context switching system
JP6197871B2 (ja) 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
JP2010518470A (ja) 命令実行を容易にするためのバッファの使用
US20230026015A1 (en) Migration of virtual computing storage resources using smart network interface controller acceleration
KR102301937B1 (ko) 가상 머신 환경에서의 입출력 방법
US20220342688A1 (en) Systems and methods for migration of virtual computing resources using smart network interface controller acceleration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131128