JP5308522B2 - ハイパーバイザ・ローディングのためのメモリ管理 - Google Patents

ハイパーバイザ・ローディングのためのメモリ管理 Download PDF

Info

Publication number
JP5308522B2
JP5308522B2 JP2011515707A JP2011515707A JP5308522B2 JP 5308522 B2 JP5308522 B2 JP 5308522B2 JP 2011515707 A JP2011515707 A JP 2011515707A JP 2011515707 A JP2011515707 A JP 2011515707A JP 5308522 B2 JP5308522 B2 JP 5308522B2
Authority
JP
Japan
Prior art keywords
memory
program
hypervisor
computer
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011515707A
Other languages
English (en)
Other versions
JP2011526714A (ja
Inventor
カウシィク バルデ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40974121&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5308522(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2011526714A publication Critical patent/JP2011526714A/ja
Application granted granted Critical
Publication of JP5308522B2 publication Critical patent/JP5308522B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/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/45583Memory management, e.g. access or allocation
    • 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/45587Isolation or security of virtual machine instances

Description

本発明は、一般に類似アーキテクチャを共有するパーソナル・コンピュータ及び装置に関する。より詳細には、本発明は、ハイパーバイザ・プログラム及び関連アプリケーション・プログラムにおいて改良されたパフォーマンス及びセキュリティを可能にするための方法、製造されたコンピュータ・プログラム製品、並びに電子装置に関する。
現代では、PC(パーソナル・コンピュータ)の利用はすっかり当たり前になったが、依然として伸びている。過去何年にもわたって、手頃なハードウェアがより高速化し、より多くの機能及び容量を有するようになっている。新しいタスクを処理するためのアプリケーション・ソフトウェア、及び新しい装置に対応するためのシステム・ソフトウェアが出現し続けている。
一般的なユーザは、既に導入されている、旧バージョンと比較すると長所と短所の両方を有する新バージョンのソフトウェアに遭遇することがある。一般的なユーザは、時間の経過とともに機能がさらに多いコンピュータ、及びより多数のソフトウェアを導入すると言ってもいいだろう。
典型的なユーザが直面している問題は、新バージョンのハードウェア又はソフトウェア(或いは完全に新しいアプリケーション)を採用することによる恩恵(及び経済的費用)と、ユーザがうまく利用できるように学習してきたより古い製品に固執することによる恩恵との比較である。このような選択に通じる要因は複雑である(及びここでは割愛する)が、統合されたソフトウェア・ソリューションは、平和的に共存するための異なるアプリケーションの(又は同じアプリケーションの異型さえの)能力を限定する傾向があるので、さらなる懸念をもたらす。このタイプの共通の問題は、例えばユーザがMicrosoft(登録商標)Windows(登録商標)XP(商標)OS(オペレーティング・システム)のみで動くように設計された特定のハードウェア、及びMicrosoft(登録商標)Windows(登録商標)Vista OSのみで動くように設計されたアプリケーション・プログラムのためのデバイス・ドライバを有する場合に生じることがある。完全に満足できる解決策はなく、妥協を容認しなければならない。
典型的なユーザにとっての別の問題点は、コンピュータの起動時間である。一般的に、より多くの常駐ソフトウェアが容認されていると、それだけコンピュータが電源投入から利用可能状態になるまでの時間が長くなる。たとえ複数のソフトウェア、特に複数のOSが相互運用可能及び利用可能(又は少なくとも平和的に共存している)で十分なパフォーマンスを提供していても、単一OSの使用と比較すると、初期化して使用可能状態になるまでに時間がかかりすぎる。コンピュータ起動時間は、ただすぐに手持ちのタスクに取り組みたいと望んでいるだけのユーザを容易にいらいらさせてしまう。
さらなる及び増大している問題は、悪意のあるソフトウェア(マルウェア)である。悪意のあるソフトウェアを標的とした様々な改良が提案されてきたが、特定のベンダに関係する、又はさらに悪いことには特定のベンダからのソフトウェアの特定のバージョンに関係する統合ソリューションにしばしば依存しすぎている。これにより複数の様々なソフトウェアの管理がより困難になる場合がある。さらに、このようなソリューションは「曖昧さによるセキュリティ(Security by Obscure)」の手法をしばしば使用しすぎる場合があり、これはユーザの運命支配力を減少させるものであり、また、オープン・ソース製品での使用にはあまり適していない。
したがって、本発明は仮想マシンをサポートするためのコンピュータを初期化するための方法を提供する。コンピュータあるいは全く異なるデジタル・コントローラを含みうる、他の電子装置を使用することもできる。
本発明の方法は、メモリ領域を割り当てること、及びその中に不揮発性メモリからプログラムをロードすることを含みうる。このようなプログラムは、ハイパーバイザ・プログラム、ハイパーバイザをロードするためのプログラム、及びアプライアンス・プログラムを含みうる。様々な目的のためのメモリ・ヒープも作成することができ、オペレーティング・システムのロードなどのためにディスク・ドライブなどの不揮発性メモリも処理されうる。
一態様によれば、
読出し−書込みメモリの第1の領域を割り当てるステップと、
ハイパーバイザ・プログラムHV、及び、ハイパーバイザ・プログラムを前記第1の領域にロードするために動作するプログラムHSC、で構成されるリストから選択された第1のプログラムを第1の不揮発性メモリから第1の領域にロードするステップと、
前記第1の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップと、
前記第1のプログラムに制御を渡すステップとを備える、仮想マシンをサポートするためのコンピュータを初期化するための方法が提供される。
さらなる態様によれば、製造されたコンピュータ・プログラム製品であって、内部に符号化されたコンピュータ命令を有する少なくとも1つのコンピュータ可読媒体を備え、少なくとも1つのコンピュータによって命令が実行されると、以下の諸ステップによって、仮想マシンをサポートするために前記少なくとも1つのコンピュータを初期化させる、製造されたコンピュータ・プログラム製品が提供される:
読出し−書込みメモリの第1の領域を割り当てるステップ、
ハイパーバイザ・プログラム、及び、ハイパーバイザ・プログラムを前記第1の領域にロードするために動作するプログラムで構成されるリストから選択された第1のプログラムを第1の不揮発性メモリから前記第1の領域にロードするステップ、
前記第1の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップ、及び、
前記第1のプログラムに制御を渡すステップ。
さらなる態様によれば、プログラムされた命令を実行するための手段と、コンピュータ命令を記憶するための不揮発性手段とを備え、実行するための前記手段によって命令が実行されると、以下の諸活動ステップによって仮想マシンをサポートするために前記電子装置を初期化させる電子装置が提供される:
読出し−書込みメモリの第1の領域を割り当てるステップ、
ハイパーバイザ・プログラム、及び、ハイパーバイザ・プログラムを前記第1の領域にロードするために動作するプログラムで構成されるリストから選択された第1のプログラムを第1の不揮発性メモリから前記第1の領域にロードするステップ、
前記第1の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップ、及び、
前記第1のプログラムに制御を渡すステップ。
ハイパーバイザ・プログラムHVは、メモリ・ヒープを割り当てる及び/又は分割する前又は後にロードされうる。
一実施形態では、前記ヒープはHV専用のメモリを明確に除外してよく、これは後にロードされたプログラム、特に汎用オペレーティング・システムから見られるようなHVの可視性を排除する(又は実質的に減らす)ように作用する。
一実施形態では、ヒープ・セットアップの後、BIOSがHSCに制御を戻してよく、そうすればHSCが、被保護及び/又は仮想メモリ・モードのHVをロードして起動する。一般的に、共働するHV及び/又はBIOSは、BIOS構成のために使用されるメモリ(又は他の何らかのよく隠蔽された不揮発性メモリ)からパラメトリック・ステアリング情報を読むことになり、その情報はヒープを分割するために使用されうる。したがって、ステアリングを案内するための該情報がHSC又はHVにとって直接又はそれぞれのローダを通じて入手可能になる。
これらの態様のいくつかの変形も、代替例示的実施形態とともに論じられる。開示された、ファームウェア及び/又はソフトウェアのための改良された設計により、上記で概説した問題に関する優れたトレードオフ、及びその他が可能になる。
本発明の上記及び関連する諸利点及び諸特徴は、以下の本発明の詳細な説明を、本発明の実施形態を示す添付の図面と合わせて読めばよりよく理解及び評価されるであろう。添付の図面は本明細書に組み込まれ、及び本明細書の一部を構成し、図面において同様の番号は同様の要素を表す。
本発明の実施形態による、コンピュータ・プログラム製品及び/又はコンピュータを初期化するための方法、を実装するように構成された電子装置の概略ブロック図である。 本発明の実施形態を実装する際に電子装置によって実行される諸ステップを示す流れ図である。 本発明の例示的実施形態においてハイパーバイザ、アプライアンス、及び主要オペレーティング・システムのローディング及び実行を実装する際に実行される諸ステップを示す流れ図である。 本発明の例示的実施形態においてVM(仮想マシン)からのメモリ情報の要求を仮想化する際に実行される諸ステップを示す流れ図である。 本発明の例示的実施形態において機能縮小モードに切り替える際に実行される諸ステップを示す流れ図である。 本発明の例示的実施形態がコンピュータ媒体上にどのように符号化されうるかを示す図である。 本発明の例示的実施形態が、電磁波を使用してどのように符号化、送信、受信、及び復号化されうるかを示す図である。
説明の便宜上、様々な図面において同一の構成要素には同じ参照番号が振られている。
以下の説明では、説明を明快且つ簡潔にするために、概略図及び/又は図面に示された多数の構成要素のうちの全てを説明するとは限らない。本発明の十分で役立つ開示を当業者に提供するために、多数の構成要素が図面において示されている。構成要素の多くの操作は当業者には明白であり理解されるであろう。
ここで、図1を参照して本発明の例示的実施形態を説明する。
図1は、本発明の実施形態によるメモリ使用機能を実装している電子装置の概略ブロック図である。例示的実施形態では、例えばデスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレットPC、又は他の適したコンピュータ装置などのパーソナル・コンピュータとして電子装置10が実装されている。
説明はパーソナル・コンピュータの操作を概説するが、電子装置10はPDA、セルラー式電話などの無線通信装置、セットトップ・ボックスなどの組込みコントローラ又は装置、印刷装置、或いは他の適した装置又はそれらの組合せ、及び本発明を運用又は相互運用するために適した装置でよいことが当業者には理解されよう。
パーソナル・コンピュータ10は、電子装置10の全体的な操作を制御するように構成された、少なくとも1つのコントローラ又はプロセッサ12を含んでよい。このようなプロセッサ又はコントローラは、しばしばCPU(中央処理装置)又はMPU(マイクロプロセッサ・ユニット)と呼ばれる。プロセッサ12は、計算を実行するためのALU(演算/論理装置)、データ及び命令を一時的に記憶するための1つ又は複数のレジスタ、並びにパーソナル・コンピュータ10の操作を制御するためのシーケンサ又はコントローラを含んでよい。一実施形態では、プロセッサ12は、Intel(登録商標)Corporationによって製造されたCeleron(登録商標)及びCentrino(商標)マイクロプロセッサ、又はInternational Business Machines(登録商標)によって販売されたPower−PC(登録商標)プロセッサのうちのいずれかを含んでよい。さらに、プロセッサ12を実装するために、Sun Microsystems(登録商標)、MIPS(登録商標)、NEC(登録商標)、Cyrix(登録商標)などからのプロセッサを含む他の様々なプロセッサのうちのいずれかを使用してよい。プロセッサ12はマイクロプロセッサに限定されるものではなく、マイクロコントローラ、デジタル信号プロセッサ、ASIC(特定用途向け集積回路)などの専用ハードウェア、ステート・マシン、或いはネットワークを通じて分散された1つ又は複数のプロセッサ上で実行しているソフトウェアなどの、他の形をとる場合がある。
プロセッサ12はCPUバス13を通じてバス・コントローラ14に結合されてよい。バス・コントローラ14は、内部に組み込まれたメモリ・コントローラ15を含んでよい。代替実施形態では、メモリ・コントローラ15はバス・コントローラ14から分離されてよい。メモリ・コントローラ15は、システム・メモリ16、例えばRAM(ランダム・アクセス・メモリ)を読み書きするために、プロセッサ12又は他の装置がアクセスするためのインターフェースを提供してよい。
バス・コントローラ14は、システム・バス18、例えばPCI(ペリフェラル・コンポーネント・インターコネクト バス)に結合されてよい。システム・バス18に結合されているのは、入力/出力コントローラとしても知られている周辺装置コントローラ24でよい。次に、周辺装置コントローラ24はキーボード、マウス、プリンタなどの他の様々な装置25、26、27に結合されている。他のコンポーネント(図1には示さず)が存在することもあり、例えばディスプレイに結合されたディスプレイ・コントローラ、及びネットワーク通信コントローラが一般的である。
システム・バス18は、いくつかの不揮発性メモリ30、31、32、33にも結合されてよい。図1では例として4つの不揮発性メモリを示しているが、実際にはより少ない、又はより多くの不揮発性メモリがあってよい。他の実施形態では、メモリは他の方法で、例えば直接バス・コントローラ14に結合されてよい。
図1に示されるように、例示的な不揮発性メモリ30、31、32、33は様々な技術によるメモリでよく、またそれぞれの機能を有してよい。図1に示されるように、不揮発性メモリ30はROM(読出し専用メモリ)として実装されて、内部にPOST(パワーオン・セルフテスト)40及びCSS(コア・システム・ソフトウェア)41、並びにDDs(デバイス・ドライバ)などの他のコンポーネントを記録してよい。
引き続き図1を参照すると、さらなる不揮発性メモリ31が内蔵ディスク・ドライブ・メカニズム31を有するディスク・コントローラとして実装されてよい。ディスク・ベースの不揮発性メモリは、典型的には、プログラム及びデータの両方を含む、MBR(マスタ・ブート・レコード)51、及びOS(オペレーティング・システム・ソフトウェア)52、並びにさらに多くのものを含んでよい。
再び図1を参照すると、第3及び第4の不揮発性メモリ32、33が様々なコンポーネントを含んでよい。一般的に、不揮発性メモリのうちの1つはフラッシュ・メモリ又はSDM(セキュア・デジタル・メモリ)として実装されて、一般的にBIOS(基本入出力システム・ファームウェア)42内に含まれるPOSTによってまず使用されるシステム構成情報を格納するために使用されてよい。通常フラッシュ・メモリはブロック指向型のEEPROM(電気的消去可能書込み可能読出し専用メモリ)として実装される。
他のソフトウェア・コンポーネント、例えばPhoenix Technologies(登録商標)Ltd.のHyperspace(商標)が不揮発性メモリのうちのいずれかに格納されてよく、例えば第3の不揮発性メモリ32はハイパーバイザ・プログラム61(VMM(仮想マシン・モニタ)としても知られている)のコピー及び/又はアプライアンス62(又はアプレット)と呼ばれる比較的小さいアプリケーション・プログラムを含んでよい。
不揮発性メモリにファームウェア及びソフトウェアが格納されてよいが、当分野ではよく知られているように、一般的にブロック指向型デバイス・ドライバによる、又はシャドウ−メモリ技術による実行の前にシステム・メモリ16に転送される。例外的に、命令、特にシャドウ−メモリ動作自体を実装するために使用される命令などの初期のコンピュータ・セットアップに使用されるPOST命令がROMなどから直接実行されてよい。
図1の不揮発性メモリは、他の図面を参照して以下に説明する諸ステップ又は諸動作を実行するための命令(ファームウェア及びソフトウェア)を、結合及び多くの置換によりで含んでよい。
図2は、本発明の実施形態を実装する際に電子装置によって実行される、パワーオン状態200から開始する諸ステップを示す流れ図である。図2は単なる例示であり、本発明の一般的範囲内で多くの代替実施形態が可能である。さらに、図2は非常に高レベルなので、他の図面を参照してさらなる詳細を以下に説明する。
ステップ210で、他の機能が達成されうるようにハードウェアを呼び出す際の初期動作としてハードウェアが初期化される。次いで、図2には示されていない多くの特徴を有するPOST(パワーオン・セルフテスト)220が開始される。
POST処理におけるいくつかの点に、ミニSDM(ミニセキュア・デジタル・メモリ)などの不揮発性メモリ・パラメータの手動再構成ができるようにするために、人的介在240のための機会230が存在する。一般的に、これに続いてパワー・アップ初期化シーケンス210の開始に戻る。
ステップ250で、Phoenix Technologies(登録商標)Ltd.Hypercore(商標)などのハイパーバイザ・サービスが要求されているかどうか検査が行われる。このような要求は、BIOS構成パラメータに応答しうるものなどのブート・タイム・サービスでよい。こうして決定が行われ(ステップ260)、ハイパーバイザ・サービスが要求されていない場合、ステップ270で従来のメモリ・セットアップが実行され、ステップ280でOS(オペレーティング・システム)がブートロードされ、ステップ299でBIOSから制御が譲られる(この例ではOSに)。
ステップ300で、ハイパーバイザ・サービスが要求され、それぞれのハイパーコア・セットアップ及びハイパーバイザ・ブートロードは図3を参照して以下で説明する。その後、ステップ299でセットアップが完了する。
図3は、ハイパーバイザ・ブートロードを有するハイパーコア・セットアップ、及び本発明の実施形態による関連動作を示しており、ステップ300のハイパーコア・セットアップの開始で始まる。一般的に、実行のこの段階で、命令コードはBIOS又は他のファームウェアの一部であり、メモリにシャドウされてよい。
ステップ303で、HV(ハイパーバイザ)セキュリティ・データのためにSMM(システム管理メモリ)区分内に領域が割り当てられる。SMMメモリは一時的なあまり使用されていないCPUモード−CPU温度監視などの低レベル・サービスのためのシステム管理モードでアクセスされる。
次に、ステップ305で、PVMM(Phoenix Virtual Machine Monitor)などのHV(ハイパーバイザ)のために空きメモリから領域が割り当てられる。図示された例では、この割当てはTSEG(Top of Memory Segment)RAM領域からでよい。この新たに割り当てられた領域は、PVMMS(Phoenix Virtual Machine Monitor segment)として知られうる。
ステップ310で、フラッシュ・メモリなどの不揮発性メモリからPVMMSにHSC(Hypervisor Starter Code)がロードされる。調整されたベース・アドレスをオフセットすることを含むためのソフトウェア再配置技術、及びコードを絶対メモリ・アドレスから独立させるための同様の技術が、当分野ではよく知られている。一実施形態では、HSCは主にIntel(登録商標)x86におけるBig Real Mode(Unreal又はFlat Real Modeとしても知られる)、及び同様のリトル・エンディアンCPUアーキテクチャで実行する。
コードの再配置は、実装形態によっては、特にUnix(登録商標)符牒が好まれる環境ではローディング(Loading)としても知られている。厳密には、ローディングは、アドレス調整が高い割合で行われるにもかかわらず必ずしもアドレス調整を含まない点で再配置よりわずかに広義である。
一実施形態では、HSCは次いでHV(ハイパーバイザ)プログラムをロードするために作用してよい(ステップ315)。HVは直接ロードされないことがあるが、代わりにHVをカスケード・ローディング配置などでロードするように作用するローダがロードされる。
HVプログラムは当分野では一般的であり、コンピュータにおいて「裸で(naked)」(すなわちHVなし)で実質的に実行できるプログラムがHVによってホストされるVM(仮想マシン)環境を作成及びホストするために使用される。VMは、VM内で実行するプログラムが、同様のピア・プログラムの間でコンピュータにおいて唯一ではないこと(という事実の可視性)の「認識(awareness)」を有することがないように、VMのインスタンス間の可視性を防ぐメカニズムとしてよく知られている。
図3には示されていないが、制御はHSCからさらなる領域ニーズ、例えばACPI(Advanced Configuration and Power Interface)のための領域にシステム・メモリ(RAM)が割り当てられるBIOSスレッドに戻されてよい。
一般的に、BIOSコードの後の動作は、「フリー・ストア」としても知られる「メモリ・ヒープ」をセットアップすることである(図3、ステップ320)。該ヒープは、オペレーティング・システムによって、及びオペレーティング・システムがロードするプログラムによって使用するために利用可能な、実質的に全てのフリー・ストア(通常RAM)から構成される傾向がある。コンピュータ・サイエンスでは、動的メモリ割当ては、コンピュータ・プログラムにおいて、そのプログラムのランタイムの間に使用するためのメモリ装置の割当てである。限定されたメモリ資源の所有権を多くのデータ及びコード間で分配する方法と考えることもできる。本発明の実施形態では、該ヒープはHV専用のメモリを明確に除外し、これは、後にロードされたプログラム、特にMicrosoft(登録商標)Windows(登録商標)、又はLinux(登録商標)などの汎用オペレーティング・システムから見えるHVの可視性を排除する(又は実質的に減らす)ように作用する。
一実施形態では、ヒープのセットアップ後、BIOSがHSCに制御を返し、次いでHSCが、保護及び/又は仮想メモリ・モードのHVをロードして起動する。一般的に、共働するHV及び/又はBIOSは、BIOS構成のために使用されるメモリ(又は他の何らかのよく隠蔽された不揮発性メモリ)からパラメトリック・ステアリング情報を読むことになり、その情報は複数のVM専用となるメモリにヒープを分割する(ステップ325)ために使用されてよい。したがって、ステアリングを案内するための情報がHSC又はHVにとって直接又はそれぞれのローダを通じて入手可能になる。
引き続き図3を参照すると、ステップ330でハイパーバイザ・プログラムがロードされる。一般的にハイパーバイザ・プログラムはHSCによってロードされてよい。他の実施形態では、ハイパーバイザはメモリ・ヒープを割り当てる及び/又は分割する(ステップ320、325)前にロードされてよい。一実施形態では、HSCはCPU Big Real Modeで実行してよいが、HVは保護又は仮想メモリ・モードなどのより一般的なCPUモードで主に又は完全に実行してよい。HVに入る際にReal Modeを去るステップ335は主に実装時固有である。
したがって、ステップ340でVMのためのメモリ・ヒープ分割情報を使用できるので、HVは次にVMをセットアップし続けてよい。ステップ345で、アプライアンス又はアプレットとして知られる小さいアプリケーション・プログラムが、その目的のために確保された、又は一般的にハード・ディスク・ドライブである主要不揮発性メモリから分離及び保護された不揮発性メモリからロードされてよい。
当然のことながら、HVによってロードされたプログラムは一般的に、必要に応じて自分のメモリ割当てを自分のヒープとして取り扱って、様々なアプリケーション、デバイス・ドライバ等の間でさらに分割してよい。
この時点で、HVは非HV CPUブートロード手順のパスをたどってよく、例えばステップ350で19hインタラプトを発行してよい。19hインタラプトは、主要不揮発性メモリ(一般的にはハード・ディスク)からMBRをロードして(ステップ355)、MBRを使用して見つかったプログラムに制御を渡してよい(ステップ360)コードによって「とられたもの」である(及び、例えばMBR内に含まれるブート・ローダでも、MBRが何らかの形式の間接情報を含むプログラム(例えば「ディスク・ポインタ」)でもよい)。ステップ399で、HSC及びHV、並びにHVによってホストされたアプライアンス及び/又はOSプログラム,をロード及び実行するための領域を割り当てる動作が完了する。
当分野ではよく知られているように、当然のことながら大部分のHVはI−O(入力−出力)要求(ハードウェア宛てであろうと、デバイス・ドライバ宛てであろうと)の仮想化、及び他のシステム要求の準仮想化を含む、ここで述べたことよりさらに多くのことを行う。例えば、x86アーキテクチャにおいて、OSがヒープの自分の分割への可視性を有してヒープ全体の可視性を有しないように、よく知られている「Int.15h/EAX=E820h」メモリ要求を仮想化できるように、HVはインタラプト15hをフックしてよい。BIOSは一般的にヒープ全体の可視性を提供するものであり、HVはこの可視性を防ぐために動作してよい(HV自身において生じる要求、又は少なくともHVによってロードされたコード又はヒープ内にあるコード内からのものを除いて)。
したがって、いったん制御を有すると、HVは,しばしばSMM(システム管理モード)制御(一般的にオーバーヒーティング検出又は初期のシステム・シャットダウンなどの主なイベントのために使用される)による介入に応答しての次のシステム・リセットまで、コンピュータの制御を保持する。
図4は、本発明を使用するHVによって実行される仮想化の例を示している。ステップ400で、メモリ要求に応じてサービス機能へのエントリが行われ、その要求はHVによって仮想化されることになる。このようなメモリ要求は一般的にInt 15hソフトウェア・インタラプトのためのISR(インタラプト・サービス・ルーチン)として実装される(ステップ410)。
ステップ420で、その要求がフォーマットの多くが当分野でよく知られている、サポートされている特定のフォーマット(Int=15h/EAX=E820h)のメモリ情報かどうか検査が行われる。インタラプト要求が他の何らかの種類の要求の場合、ステップ425で制御は連鎖内の次のISRに抜け出る。
次いで、要求がサービスされるべきものと仮定すると、ステップ430でどのVMがメモリ情報を要求しているかについて決定がなされる。要求が全くVMからのものではない場合(ステップ440)、要求は仮想化されないが、ステップ445で単に連鎖内の別のISR(もしあれば)による動作に伝えられる。
ステップ450で、応答がInt=15h/EAX=E820h要求にコンパイルされるが、特定のVMのために仮想化される。実際にはVMのメモリ分割はまるで仮想化された応答をメモリ要求にコンパイルするためのヒープ全体のように取り扱われる。ステップ499で、仮想マシン・メモリ要求をサービスするためのISRが終了する。
次に図5を参照すると、減少された機能で、合理化された形式の動作へのランタイム遷移に関連付けられるハイパーコア・サービスを実行する際のHVの動作を説明している。この機能は、他の図面を参照して上述した機能と相補的であり、その機能によって主に可能となる。
本発明の例示的実施形態は、MBRを介してロードされた一次OSが中断/無効にされる減少された機能モードを使用でき、関連する(エネルギー不足の)ハード・ディスクがパワーダウン状態に置かれるが、アプライアンス・プログラムは半導体不揮発性メモリを使用して実行する。しかし、低電力操作での減少された機能状態の使用は例示でしかなく、2つの態様は場合によっては互いに全く分離可能である。
図5のステップ500で、低電力状態操作に切り替えるための処理へのエントリが行われる。ステップ510で、コンピュータ・ユーザは、おそらくそうするよう要求する刺激に答えて、コンピュータがアプライアンス・モードに入ろうとしていることを通知される。
ステップ520で、VM内にロードされた一つあるいは複数のOSには、仕掛のI−O(入力−出力)操作の完了を含みうる操作を終了するよう警告する信号が送信される。一般的にOSは、ハードウェア及び/又はソフトウェア実装時選択による「スリープ状態」又は同様の状態に入りつつあるマシンに関連して、その目的のためのフックを有する。
ステップ530で、ハード・ディスクの電源を切るための、及びおそらくCPUクロッキング速度又はマルチプロセッサCPUアクティブの数を減らすための、或いは他の適当なエネルギー節約型の変更のための要求がなされる。一般的にこのような制御はSMM内で実行しているソフトウェアによって処理され、その場合必要なサービスのために適切な要求ブロックとともにSMIを発行することが必要な場合がある。
ステップ540で、中断されるべきVMは利用可能なCPU時間(並びにスワップ・インされた仮想メモリページ及び/又はその他)の取り分を有しない、又はほとんど有しないとしてマークされる。
ステップ599で、アプライアンス実行が適切な終了/戻りコードによって再開される。
図6Aに関して、電子装置10内のコンピュータ命令が、記憶レコーダ620を使用して記憶された命令を有する様々な可能な媒体630を使用して、製造されたファームウェア及び/又はソフトウェア・コンピュータ製品610として流通させてもよい。本発明を導入するものと同じくらい複雑な製品においては、しばしば関連製品の流通及び製造において複数の媒体が使用されてよい。明確にするために図6Aには1つの媒体だけが示されているが、複数の媒体が使用されてよく、単一のコンピュータ製品が複数の媒体間で分割されてよい。
図6Bに関しては、さらに、特にインターネット利用が増加しているので、コンピュータ製品610を変調された信号に符号化することによって電波として流通せてよい。結果として得られる波形は送信機640によって転送され、変調された電磁搬送波650として伝搬され、受信機660によって受信されてよい。受信すると、波形は復調されてよく、信号はメモリ又は記憶装置11内でコンピュータ製品のさらなるバージョン又はコピー611に復号される。
本発明の代替実施形態を構築するために他のトポロジや装置が使用されうる。

Claims (13)

  1. 仮想マシンをサポートするためにコンピュータを初期化するための方法であって、
    読出し−書込みメモリの第1の領域を割り当てるステップと、
    ハイパーバイザ・プログラムを第1の不揮発性メモリから前記第1の領域にロードするステップと、
    前記第1の領域を除く前記読出し−書込みメモリにメモリ・ヒープを作成し、前記第1の領域にロードされた前記ハイパーバイザ・プログラムが、前記メモリ・ヒープにロードされるプログラムに対して不可視となるようにするステップと、
    前記コンピュータ内のBIOSの構成情報に基づいて、前記メモリ・ヒープを、複数の仮想マシンに専用の複数の区分に分割するステップと、
    前記分割するステップの結果を前記ハイパーバイザ・プログラムにとって可視にするステップと、
    前記ハイパーバイザ・プログラムを起動するステップと
    を含む方法。
  2. 前記割り当てるステップ及び前記ロードするステップは、CPU(中央処理装置)リアル・モードで動作し、
    前記ハイパーバイザ・プログラムは、保護モード又は仮想アドレス・モードで動作する、請求項1に記載の方法。
  3. 前記ハイパーバイザ・プログラムの動作に応答して、MBR(マスタ・ブート・レコード)内に含まれる、又は前記MBRを使用して位置決めされる第2のプログラムを実行するステップであって、前記MBRが第2の不揮発性メモリにあるステップをさらに含む、請求項1又は請求項2に記載の方法。
  4. 前記ハイパーバイザ・プログラムよりも後に、かつ、前記コンピュータ内で発生するさらに後のリセット状態よりも前に、前記第1の領域を、前記コンピュータにロードされた少なくともいくつかのプログラムにとって不可視にするステップをさらに含む、請求項1からまでのいずれか一項に記載の方法。
  5. 前記第1の領域を前記メモリ・ヒープ内に位置された命令からのメモリ位置クエリにとって不可視にするステップをさらに含む、請求項1からまでのいずれか一項に記載の方法。
  6. 前記ハイパーバイザ・プログラムが、
    第1の仮想マシンのための第1の環境を作成し、
    前記複数の区分から選択された区分を前記第1の仮想マシンに割り当て、及び
    前記第1の仮想マシンからの前記読出し−書込みメモリについての情報を求める要求を仮想化し、前記第1の仮想マシンに割り当てられた前記区分を恰も前記メモリ・ヒープ全体であるかのように取り扱う、請求項に記載の方法。
  7. 前記ハイパーバイザ・プログラムが、
    第1の仮想マシンのための第1の環境を作成し、
    第2の仮想マシンのための第2の環境を作成し、
    MBR(マスタ・ブート・レコード)を使用して前記第1の環境にロードされた第2のプログラムを仮想化し、前記MBRは第2の不揮発性メモリにあり、及び、
    前記第1の不揮発性メモリと、第3の不揮発性メモリとで構成されるリストから選択された不揮発性メモリから前記第2の環境にロードされた第3のプログラムを仮想化する、請求項1に記載の方法。
  8. 前記ハイパーバイザ・プログラムは、
    前記第2の不揮発性メモリをホストする装置の動作を停止し、
    前記第1の仮想マシン又は前記第2のプログラムのどちらかの動作を停止することにより、刺激に応答する、請求項に記載の方法。
  9. 前記第1の不揮発性メモリから前記第1の領域へローダをロードするステップをさらに含み、前記ローダは、前記ハイパーバイザ・プログラムをロードする働きをする、請求項1からまでのいずれか一項に記載の方法。
  10. 仮想マシンをサポートするためにコンピュータを初期化するためのコンピュータ・プログラムであって、前記プログラムは、前記コンピュータに、
    読出し−書込みメモリの第1の領域を割り当てるステップと、
    ハイパーバイザ・プログラムを第1の不揮発性メモリから前記第1の領域にロードするステップと、
    前記第1の領域を除く前記読出し−書込みメモリにメモリ・ヒープを作成し、前記第1の領域にロードされた前記ハイパーバイザ・プログラムが、前記メモリ・ヒープにロードされるプログラムに対して不可視となるようにするステップと、
    前記コンピュータ内のBIOSの構成情報に基づいて、前記メモリ・ヒープを、複数の仮想マシンに専用の複数の区分に分割するステップと、
    前記分割するステップの結果を前記ハイパーバイザ・プログラムにとって可視にするステップと、
    前記ハイパーバイザ・プログラムを起動するステップと
    を実行させる、コンピュータ・プログラム。
  11. 前記プログラムは、前記コンピュータに、前記第1の不揮発性メモリから前記第1の領域へローダをロードするステップをさらに実行させ、前記ローダは、前記ハイパーバイザ・プログラムをロードする働きをする、請求項10に記載のコンピュータ・プログラム。
  12. 電子装置であって、
    プログラムされた命令を実行するための手段と、
    コンピュータ命令を記憶するための不揮発性手段とを備え、
    前記命令は、前記実行するための手段によって実行されると、前記電子装置に、
    読出し−書込みメモリの第1の領域を割り当てるステップと、
    ハイパーバイザ・プログラムを第1の不揮発性メモリから前記第1の領域にロードするステップと、
    前記第1の領域を除く前記読出し−書込みメモリにメモリ・ヒープを作成し、前記第1の領域にロードされた前記ハイパーバイザ・プログラムが、前記メモリ・ヒープにロードされるプログラムに対して不可視となるようにするステップと、
    前記電子装置内のBIOSの構成情報に基づいて、前記メモリ・ヒープを、複数の仮想マシンに専用の複数の区分に分割するステップと、
    前記分割するステップの結果を前記ハイパーバイザ・プログラムにとって可視にするステップと、
    前記ハイパーバイザ・プログラムを起動するステップと
    を実行させる、電子装置。
  13. 前記命令は、前記電子装置に、前記第1の不揮発性メモリから前記第1の領域へローダをロードするステップをさらに実行させ、前記ローダは、前記ハイパーバイザ・プログラムをロードする働きをする、請求項12に記載の電子装置。
JP2011515707A 2008-07-02 2009-06-25 ハイパーバイザ・ローディングのためのメモリ管理 Expired - Fee Related JP5308522B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/217,240 2008-07-02
US12/217,240 US9286080B2 (en) 2008-07-02 2008-07-02 Memory management for hypervisor loading
PCT/IB2009/052750 WO2010001313A1 (en) 2008-07-02 2009-06-25 Memory management for hypervisor loading

Publications (2)

Publication Number Publication Date
JP2011526714A JP2011526714A (ja) 2011-10-13
JP5308522B2 true JP5308522B2 (ja) 2013-10-09

Family

ID=40974121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011515707A Expired - Fee Related JP5308522B2 (ja) 2008-07-02 2009-06-25 ハイパーバイザ・ローディングのためのメモリ管理

Country Status (7)

Country Link
US (1) US9286080B2 (ja)
EP (1) EP2307958B1 (ja)
JP (1) JP5308522B2 (ja)
CN (1) CN102203735B (ja)
BR (1) BRPI0910188B1 (ja)
TW (1) TWI443508B (ja)
WO (1) WO2010001313A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
US20100211769A1 (en) * 2009-02-19 2010-08-19 Subramonian Shankar Concurrent Execution of a Smartphone Operating System and a Desktop Operating System
WO2011159882A2 (en) * 2010-06-16 2011-12-22 Indiana University Research And Technology Corporation Novel stabilized insulin agonists
CN103153836B (zh) 2010-09-17 2015-07-29 哈肯意大利股份公司 设有可调自拉紧装置的绞盘和相关操作
TWI421683B (zh) * 2010-11-01 2014-01-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
WO2013165383A1 (en) 2012-04-30 2013-11-07 Hewlett-Packard Development Company, L.P. Configurable computer memory
US9747116B2 (en) * 2013-03-28 2017-08-29 Hewlett Packard Enterprise Development Lp Identifying memory of a blade device for use by an operating system of a partition including the blade device
US9323539B2 (en) * 2013-06-27 2016-04-26 Intel Corporation Constructing persistent file system from scattered persistent regions
TW201504937A (zh) * 2013-07-31 2015-02-01 Ibm 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US9292684B2 (en) 2013-09-06 2016-03-22 Michael Guidry Systems and methods for security in computer systems
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US5951685A (en) 1996-12-20 1999-09-14 Compaq Computer Corporation Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
JP2001236237A (ja) 2000-02-23 2001-08-31 Hitachi Ltd マルチos構成方法
JPH11282685A (ja) 1998-03-27 1999-10-15 Matsushita Electric Ind Co Ltd 情報処理装置
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6694346B1 (en) * 1999-04-30 2004-02-17 International Business Machines Corporation Long running, reusable, extendible, virtual machine
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
US6892383B1 (en) 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US7003771B1 (en) 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6701421B1 (en) 2000-08-17 2004-03-02 International Business Machines Corporation Application-level memory affinity control
US6915402B2 (en) * 2001-05-23 2005-07-05 Hewlett-Packard Development Company, L.P. Method and system for creating secure address space using hardware memory router
US7266658B2 (en) 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
RU2005115083A (ru) * 2002-11-18 2006-01-20 Арм Лимитед (Gb) Переключение процессора между защищенным и незащищенным режимами
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7082509B2 (en) 2003-02-06 2006-07-25 Intel Corporation Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
US7380136B2 (en) 2003-06-25 2008-05-27 Intel Corp. Methods and apparatus for secure collection and display of user interface information in a pre-boot environment
US7318148B2 (en) 2003-07-31 2008-01-08 Sap Ag Automatically configuring a computer
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7370186B1 (en) 2003-12-01 2008-05-06 Nvidia Corporation Multi-tasking bootstrap system and method
US20050160424A1 (en) 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7380119B2 (en) 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7174174B2 (en) * 2004-08-20 2007-02-06 Dbs Communications, Inc. Service detail record application and system
US8145872B2 (en) * 2004-11-08 2012-03-27 International Business Machines Corporation Autonomic self-tuning of database management system in dynamic logical partitioning environment
US7325163B2 (en) 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
US20060236122A1 (en) 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
JP2007004661A (ja) 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US7366887B2 (en) 2005-07-11 2008-04-29 Lenovo (Singapore) Pte. Ltd. System and method for loading programs from HDD independent of operating system
TW200705273A (en) 2005-07-26 2007-02-01 Mitac Technology Corp Method instantly initializing and executing a computer program by using a high-speed data access memory to load kernel program of operating system
CN101484876B (zh) * 2006-07-14 2012-12-19 英特尔公司 多任务虚拟机的堆组织
US20100031270A1 (en) * 2006-08-01 2010-02-04 Gansha Wu Heap manager for a multitasking virtual machine
US8032899B2 (en) 2006-10-26 2011-10-04 International Business Machines Corporation Providing policy-based operating system services in a hypervisor on a computing system
US20100306773A1 (en) 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
CN101038556B (zh) 2007-04-30 2010-05-26 中国科学院软件研究所 可信引导方法及其系统

Also Published As

Publication number Publication date
CN102203735A (zh) 2011-09-28
BRPI0910188A2 (pt) 2016-01-19
EP2307958A1 (en) 2011-04-13
US20100005267A1 (en) 2010-01-07
BRPI0910188B1 (pt) 2019-10-22
WO2010001313A1 (en) 2010-01-07
CN102203735B (zh) 2015-01-14
US9286080B2 (en) 2016-03-15
EP2307958B1 (en) 2019-06-12
TW201007450A (en) 2010-02-16
TWI443508B (zh) 2014-07-01
JP2011526714A (ja) 2011-10-13

Similar Documents

Publication Publication Date Title
JP5308522B2 (ja) ハイパーバイザ・ローディングのためのメモリ管理
US7937700B1 (en) System, processor, and method for incremental state save/restore on world switch in a virtual machine environment
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
TWI512479B (zh) 針對記憶體映射組態分派處理器之技術
US20050216920A1 (en) Use of a virtual machine to emulate a hardware device
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
JP2008257687A (ja) マルチモードコンピュータオペレーション
US7539986B2 (en) Method for guest operating system integrity validation
US20130297924A1 (en) Method of running multiple operating systems on an x86-based computer
US10620963B2 (en) Providing fallback drivers for IO devices in a computing system
US20200073832A1 (en) Systems And Methods For Hiding Operating System Kernel Data In System Management Mode Memory To Thwart User Mode Side-Channel Attacks
TW201319827A (zh) 執行多重作業系統的方法及電子裝置
Kanda et al. SIGMA system: A multi-OS environment for embedded systems
US8813072B1 (en) Inverse virtual machine
US11714756B2 (en) Information handling systems and methods to improve the security and performance of a shared cache memory contained within a multi-core host processor
US10552172B2 (en) Virtual appliance supporting multiple instruction set architectures
EP3835951A1 (en) System platform initializer for mixed-critical systems
Im et al. On-demand virtualization for live migration in bare metal cloud
KR20220070462A (ko) 부트로더를 위한 보안 버퍼
US11829772B2 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
JP7444994B2 (ja) 異種のマルチcpuを運用するシステムオンチップおよびその動作方法
Banik et al. Understanding the BIOS and Minimalistic Design
Murata et al. A study on asymmetric operating systems on symmetric multiprocessors

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120203

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5308522

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees