JP5852677B2 - レジスタ・マッピング方法 - Google Patents

レジスタ・マッピング方法 Download PDF

Info

Publication number
JP5852677B2
JP5852677B2 JP2013551519A JP2013551519A JP5852677B2 JP 5852677 B2 JP5852677 B2 JP 5852677B2 JP 2013551519 A JP2013551519 A JP 2013551519A JP 2013551519 A JP2013551519 A JP 2013551519A JP 5852677 B2 JP5852677 B2 JP 5852677B2
Authority
JP
Japan
Prior art keywords
register
mapping
information
mapping table
hypervisor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013551519A
Other languages
English (en)
Other versions
JPWO2013099414A1 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013551519A priority Critical patent/JP5852677B2/ja
Publication of JPWO2013099414A1 publication Critical patent/JPWO2013099414A1/ja
Application granted granted Critical
Publication of JP5852677B2 publication Critical patent/JP5852677B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

本発明は、レジスタ・マッピングに関し、より具体的には、複数のハードウェア・スレッドを用いて、ハイパーバイザと複数のOSとが動作可能な仮想化システムにおけるレジスタ・マッピング方法に関する。
現在多くのプロセッサでは、1つのシステムで複数のオペレーティングシステム(OS)を動かすための仮想化をサポートするハードウェア機能が搭載されており、レジスタ・マッピングもその一つの機能である。レジスタ・マッピングとは、複数のOSを管理するためのソフトウェア(ハイパーバイザと呼ばれる)と複数のOSが効率よくレジスタにアクセスするための機能である。仮想化システム上で動くOSは一般にゲストOSと呼ばれることから、ハイパーバイザ上で動くOSもゲストOSと呼ばれることもある。以下の説明では、このゲストOSの意味も含めて単にOSと呼ぶことにする。
このレジスタ・マッピングがサポートされていないプロセッサ上で仮想化を行う場合、ハイパーバイザとOSとで1つのレジスタを共有するため、OSが動作している状態からハイパーバイザが動作している状態に遷移する場合、レジスタの内容を一時メモリ上に退避することが必要となり、これがパフォーマンスの大きな劣化となる。
これを解決するために、従来のレジスタ・マッピング技術では、ハイパーバイザ動作時のレジスタとOS動作時のレジスタを別々に用意し、現在の動作モードがハイパーバイザかOSかをハードウェアで自動的に判断することにより、同一のレジスタ命令でのレジスタの読み書きの場所をスイッチしている。
しかし、この従来のレジスタ・マッピング技術では、レジスタ・マッピングをサポートしているレジスタが限定されており、それらがサポートされていないレジスタに関しては動作切り替えに伴うレジスタの内容のメモリ退避が依然として必要となってしまう。
また、現在仮想化のより高度な機能として、1つのプロセッサ・コアを複数のOSで時分割もしくは他のポリシーで共有して使用する共有プロセッサ機能が存在する。この共有プロセッサ機能を使用した場合、ハイパーバイザとOSの動作切り替えのみならず、複数のOS間でも動作の切り替えが発生する。
しかし、従来の技術では、OS用に割り当てられたレジスタは1つであるため、共有プロセッサ機能を使用した場合は、OS間の遷移の際にレジスタの内容の一時退避の問題が生じ、パフォーマンスの劣化が発生してしまう。
さらに、複数のハードウェア・スレッドを備えるマルチスレッディング機構では、1つのプロセッサ・コアで複数のハードウェア・スレッドが動作するため、各スレッドがアクセスするレジスタも種別によっては、共有されることによりパフォーマンスの劣化を生じるものがある。この場合、すべてのレジスタをスレッド毎に用意することも可能であるが、レジスタ個数が膨大となってしまい、コストや消費電力の面での大きなデメリットとなる。
公開特許公報の特開2009-151650は、実際の計算機に同時に複数のOSを動作させ、複数の仮想化された計算機とする計算機仮想化装置を開示する。この計算機仮想化装置は、仮想化された計算機上のメモリ空間の識別子(ゲストRID)と、実際の計算機で用いられる識別子(物理RID)の対応付けを管理するマッピング・テーブルと、ゲストRIDを代入するエミュレーション処理を契機に、マッピング・テーブルを参照してゲストRIDを物理RIDに変換するRID変換部と、マッピング・テーブルにゲストRIDと物理RIDの対応付けが存在しない場合、新規な対応付けを作成し、マッピング・テーブルに追加するRIDテーブル更新部と、を備える。
特開2009-151650号公報
本発明の目的は、上述した従来のレジスタ・マッピング技術における問題を解決あるいは軽減すること、すなわち複数のハードウェア・スレッドを用いて、ハイパーバイザと複数のOSとが動作可能な仮想化システムにおいてレジスタ・アクセスのパフォーマンスを向上させることが可能なレジスタ・マッピング方法を提供することである。
本発明は、少なくとも2つ以上のハードウェア・スレッドを用いて、ハイパーバイザと少なくとも2つ以上のOSとが動作可能な仮想化システムにおけるレジスタ・マッピング方法を提供する。そのレジスタ・マッピング方法は、(a)複数のマッピング用レジスタを含むレジスタ・プールを準備するステップと、(b)レジスタ・プール中の各マッピング用レジスタについて、レジスタIDと、仮想化システムの動作状態を表す複数のパラメータの各々とに関する情報を設定した、マッピング・テーブルを準備するステップと、(c)ハードウェア・スレッドによるレジスタ・アクセス要求があった際における、当該アクセス対象のレジスタIDと、動作中の動作状態を表す複数のパラメータの各々に関する情報を取得するステップと、(d)取得したレジスタIDおよび複数のパラメータの各々に関する情報が、マッピング・テーブル中のレジスタIDおよび複数のパラメータの各々についての情報に一致するマッピング用レジスタを、レジスタ・アクセス要求に対応してアクセスするレジスタとして設定するステップと、を含む。
本発明によれば、マルチスレッディング機構を備える仮想化システムにおいて、マッピング・テーブルを利用することにより、レジスタ・アクセス要求に対して迅速なレジスタ・アクセスを可能にする。
本発明の一態様では、マッピング・テーブル中の動作状態を表す複数のパラメータは、ハイパーバイザの動作かOSの動作かを示す動作IDと、OSのIDと、ハードウェア・スレッドのIDと、を含む。
本発明の一態様によれば、ハイパーバイザの動作かOSの動作かにより、あるいはハードウェア・スレッドに応じて、OS毎に対応付けられたレジスタへの迅速なアクセスを可能にする。
本発明の一態様では、マッピング・テーブルは、各マッピング用レジスタについて、動作ID、OSのID、およびハードウェア・スレッドのIDの中のどのパラメータの情報を一致するか否かのチェックに利用するかを指定するチェック・マスクをさらに含む。
本発明の一態様によれば、動作状態、OSの種別、およびハードウェア・スレッドの種別に応じて、マッピング・テーブル中のチェック項目を変更することにより、より迅速かつ柔軟なレジスタ・アクセスが可能となる。
本発明の一態様では、レジスタ・アクセス要求に対応してアクセスするレジスタとして設定するステップ(d)は、マッピング・テーブル中のチェック・マスクにより指定されたパラメータの情報についてのみ一致するか否かを判断することを含む。
本発明の一態様によれば、マッピング・テーブルを用いたアクセスするレジスタの設定のための判断処理をより迅速におこなうことが可能となる。
本発明の一態様では、取得したレジスタIDの情報がマッピング・テーブル中のレジスタIDの情報に一致しない場合、レジスタ・プール中のマッピング用レジスタ以外のレジスタをレジスタ・アクセス要求に対応してアクセスするレジスタとして設定する。
本発明の一態様によれば、レジスタIDの情報が一致しないことのみを判断することにより、アクセスするレジスタを早期に設定することが可能になる。
本発明のレジスタ・マッピング方法を実施するシステムの構成例を示す図である。 図1のCPUの構成例を示すブロック図である。 本発明のレジスタ・プールを用いたレジスタ・マッピングを説明するための図である。 本発明のレジスタ・マッピング方法の処理フローの例を示す図である。 本発明のマッピング・テーブルの検索の処理フローの例を示す図である。 本発明のマッピング・テーブルの構成例を示す図である。
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明のレジスタ・マッピング方法を実施するシステムの構成例を示す図である。図1のシステム50は、いわゆるコンピュータ・システムであって、バス14を介して相互に接続された演算処理装置(CPU)10、記憶手段12、各種I/F16を含む。各種I/F16は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するキーボード、マウス、テンキー等の入力手段18、CRT、LCD等の表示手段20、通信手段22、USBあるいはLAN接続の半導体メモリHDD、テープドライブ等の外部記憶手段24に接続する。
演算処理装置10は、所定のソフトウェアを実行することにより、記憶手段12に保管されるデータや通信手段22を介して送受信するデータなどの管理、制御あるいは入力手段18により入力された情報や表示手段20に表示する情報などの制御をおこなう。記憶手段12は、RAM、ROM等の半導体メモリ、HDD等を含む。記憶手段12は、保管される対象(データ)に応じて複数の記憶部(保管部)を設定することができる。その際、物理的に2つの記憶手段を設けることができ、あるいは1つの記憶手段において2つの記憶域を設定することもできる。
図2は、図1の演算処理装置(CPU)10の構成例を示すブロック図である。図2の例は、パワー・アーキテクチャ(Power Architecture)をベースとしたマルチスレディング機構を用いる構成例である。図2のCPU構成は、ハイパーバイザと少なくとも2つ以上のOSとが動作可能な仮想化システムとして動作可能である。図2では、CPU10は2つのコア1(102)、コア2(104)を備える。なお、コア数は2に限定されない。各コア1、2は、複数のハードウェア・スレッド(以下、単に「スレッド」と略す)106、108、110、112を含む。スレッドは、ハードウェアとして認識可能な演算処理単位を意味する。スレッドの数は任意に設定可能である。
各コア1、2は、少なくとも1つのレジスタ・プール114、116を含む。各レジスタ・プール114、116は、マッピング可能な複数の汎用レジスタ118、120、122、124の集合を意味する。汎用レジスタの数は任意に設定可能である。
図3は、本発明のレジスタ・プールを用いたレジスタ・マッピングを説明するための図である。レジスタ・プール114(116)は、複数のマッピング可能な汎用レジスタUREG0〜3を含む。各汎用レジスタUREG0〜3は、図の破線で示されるように、OS用のレジスタを意味するGSSR0、GSRPG0〜3のそれぞれと対応付けられている。さらに、各汎用レジスタUREG0〜3は、図3の左側の5つのブロックSPR0、SPRG0〜3で例示されるハイパーバイザ動作モードでアクセス対象となるレジスタの各々とも関連付けられている。こうした関連付けにより、ハイパーバイザの各動作モードにおいて、予め各OS用に対応付けられた汎用レジスタUREG0〜3のいずれかを対応するアクセス可能なマッピング・レジスタとして動作させることができる。なお、図3において「マッピングなし」と示されたSPRG1にアクセスする場合は、マッピング・レジスタにアクセスせず、かつ動作モードにかかわらず、SPRG1にアクセスすることになる。
次に、図4〜図6を参照しながら、本発明のレジスタ・マッピング方法の実施形態について説明する。図4は、本発明のレジスタ・マッピング方法の処理フローの例を示す図である。図5は、本発明のマッピング・テーブルの検索の処理フローの例を示す図である。図6は、本発明のマッピング・テーブルの構成例を示す図である。
図4のステップS1において、レジスタ・プールが準備される。レジスタ・プールの準備とは、既に図2、図3を用いて説明したレジスタ・プール114、116を利用(アクセス)可能な状態にすることを意味する。ステップS2において、マッピング・テーブルを準備する。マッピング・テーブルの準備とは、記憶手段12(図1)等に格納されているマッピング・テーブルを呼び出して利用可能な状態にすることを意味する。
図6を参照しながらマッピング・テーブルについて説明する。図6は、パワー・アーキテクチャ(Power Architecture)のPower ISAに準拠したレジスタ群にマッピング・テーブルを適用した場合の構成例である。マッピング・テーブルは、図3においても登場するレジスタ・プール114、116内のマッピング・レジスタUREG0〜3の各々について、パラメータとして、レジスタ番号(Register ID)、ハイパーバイザ動作かOS動作かの判断情報(GS)、OSのID(LPID)、およびスレッドのID(TID)の値(ビット情報)、さらにGS、LPID、TIDのどれをチェックするかを規定するマスク情報(Check Mask)を含む。
GSには、ハイパーバイザ動作を示す値0またはOS動作を示す値1が設定される。LPIDとTIDには、それぞれ予め割り振られたOSのID(番号:1、2、3・・・・)とスレッドのID(番号:1、2、3・・・・)が設定される。例えば、マッピング・レジスタUREG1は、レジスタ番号は10であり、OS動作(GS=1)であり、OSのIDは3(LPID=3)であり、この2つのパラメータをチェックする(Check Mask=GS、LPID)ことが規定されている。なお、図6のマッピング・テーブルは全体の一部であり、さらに含まれるパラメータは上述した項目に限定されず、他のパラメータを追加したり、あるいは他のパラメータに変更することも可能である。
図4に戻って、ステップS3において、あるレジスタへのアクセス要求がソフトウェアにより発行される。このソフトウェアにはOS自身も含まれる。ステップS4において、あるレジスタへのアクセス要求に伴うレジスタID(番号)と各パラメータ値を取得する。各パラメータ値とは、例えば上述した図6に例示されるマッピング・テーブル中のパワー・アーキテクチャ(Power Architecture)のPower ISAに準拠したレジスタについてのGS、LPID、TIDである。
ここで、GS、LPID、およびTIDは、それぞれステップS3のアクセス要求が発行された時点で動作している、ハイパーバイザ動作またはOS動作、OS、およびスレッドについての上述した各値である。パワー・アーキテクチャ(Power Architecture)のPower ISAにおいては、レジスタへの書き込み/読み込み命令(mtspr/mfspr)に対して、レジスタ上のビット(この場合MSR[GS])を参照することにより、GSの値(0または1)を取得することができ、OSのIDを示すLPIDはLPIDRレジスタから取得でき、さらにスレッドのIDを示すTIDはTIRレジスタよりそれぞれ取得することができる。
ステップS5において、マッピング・テーブルの検索が行われる。図5を参照して、マッピング・テーブルの検索について説明する。ステップS51において、取得したレジスタIDとエントリのレジスタIDが一致しているか判定する。エントリのレジスタIDとは、マッピング・テーブル中の各レジスタのID(例えば、図6のRegister ID)を意味する。この判定がYesの場合、次のステップS52において、マッピング・テーブル中のその一致したレジスタIDを持つエントリ(レジスタ情報)を参照して、マスクビットのたったパラメータ値と取得したパラメータ値を個々に比較する。マスクビットのたったパラメータ値とは、図6のマスク情報(Check Mask)で設定されたチェックすべきパラメータ値(GS、LPID、またはTIDのいずれかの値)が該当する。
ステップS53において、その一致したレジスタIDを持つエントリにおいて、全てのパラメータ値が一致するか否かを判定する。例えば、図6のレジスタUREG1がその致したレジスタIDを持つエントリに該当する場合、マスク情報(Check Mask)で設定されたGSとLPIDの値がいずれも一致するか否かが判定される。この判定がYesの場合、ステップS54において、その全てのパラメータ値が一致したレジスタが一致マッピング・レジスタとして特定(選択)される。次のステップS55において、マッピング・テーブル中の最後のエントリ(レジスタ)か否かを判定する。ステップS51およびS53において、判定結果がNoの場合も、ステップS55に進み、同様な判定が行われる。この判定がNoの場合、ステップS51に戻り、ステップS51〜S54までが繰り返される。ステップS55の判定がYesの場合、マッピング・テーブルの検索を終了して戻る。
図4に戻って、ステップS6において、一致マッピング・レジスタがあるか否かを判定する。一致マッピング・レジスタは、図5のステップS54で特定(選択)された一致マッピング・レジスタである。この判定がYesの場合、その一致マッピング・レジスタが、ステップS3のレジスタへのアクセス要求に応じてアクセスされるレジスタとしてアクセスされる。ステップS6の判定がNoの場合、レジスタ・プール114、116内のマッピング・レジスタではない一般のレジスタが、ステップS3のレジスタへのアクセス要求に応じてアクセスされるレジスタとしてアクセスされる。
最後に、本発明のレジスタ・マッピング方法の実施例として、パワー・アーキテクチャ(Power Architecture)におけるESR(Exception Syndrome Register)レジスタ処理について説明する。ESRレジスタは、システムの例外処理を行う際にその例外処理の詳細情報を保存しておくレジスタである。システムの例外処理には、(i)ハイパーバイザが処理すべきシステムに致命的な例外処理と(ii)OSが処理すべき例外処理とある。従来のシステムでは、これらの処理の詳細情報は、ESRレジスタ にはハイパーバイザ用の例外処理詳細情報が、GESRレジスタにはOS用の例外処理詳細情報がそれぞれ保存される。この場合、1つのOSのみが動作する場合には、GESRレジスタに保存されている情報の退避は不要となるが、複数のOSが動作する場合、GESRレジスタの情報を一旦メモリに退避して切り替え処理が必要となる。これらの切り替え処理は、各OSの仲介役となるハイパーバイザが行わねばならず、切り替え処理の度にハイパーバイザへの処理依頼が必要となってしまう。
本発明では複数のGESRレジスタを確保することが可能なため、切り替え処理に伴うハイパーバイザへの処理依頼も不要となり、システムとして効率的な仮想化が実現可能となる。例えば、OSが自身に対して例外処理を発生させるためにESRにアクセスした場合の処理を挙げると、以下のような手順となる。
(a)OSが詳細情報をESRに保存するためのCPU命令 mtsprを発行する。
(b)CPU内で、GS、LPID、TIDの情報(値)が追加され、レジスタSave/Restore処理部に処理を依頼する。なお、GESRレジスタが1つしかない従来のシステムではこの時点で、現在のGESRの内容を退避する必要があるため、ハイパーバイザに処理が移り、ハイパーバイザにより現在のGESRをメモリに退避する処理が行われる。
(c)本発明ではハイパーバイザに処理は移らず、追加されたGS、LPID、TIDの情報を元にマッピング・テーブルの参照が行われ、特定されたマッピング・レジスタまたは通常のレジスタにアクセスして内容の保存が行われた後、CPU命令mtsprを発行したOSに処理が戻される。
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
10 演算処理装置(CPU)
12 記憶手段
14 バス
16 各種I/O
18 入力手段
20 表示手段
22 通信手段
24 外部記憶装置
50 システム
102、104 コア
106、108、110、112 ハードウェア・スレッド
114、116 レジスタ・プール
118、120、122、124 マッピング(用)・レジスタ

Claims (4)

  1. 少なくとも2つ以上のハードウェア・スレッドを用いて、ハイパーバイザと少なくとも2つ以上のOSとが動作可能な仮想化システムにおけるレジスタ・マッピング方法であって、
    複数のマッピング用レジスタを含むレジスタ・プールを準備するステップと、
    前記レジスタ・プール中の各マッピング用レジスタについて、レジスタIDと、前記仮想化システムの動作状態を表す複数のパラメータの各々とに関する情報を設定した、マッピング・テーブルを準備するステップと、
    ハードウェア・スレッドによるレジスタ・アクセス要求があった際における、当該アクセス対象のレジスタIDと、動作中の前記動作状態を表す複数のパラメータの各々に関する情報を取得するステップと、
    取得した前記レジスタIDおよび前記複数のパラメータの各々に関する情報が、前記マッピング・テーブル中の前記レジスタIDおよび前記複数のパラメータの各々についての情報に一致する前記マッピング用レジスタを、前記レジスタ・アクセス要求に対応してアクセスするレジスタとして設定するステップと、
    を含み、
    前記マッピング・テーブル中の前記動作状態を表す複数のパラメータは、前記ハイパーバイザの動作か前記OSの動作かを示す動作IDと、OSのIDと、前記ハードウェア・スレッドのIDとを含む、
    レジスタ・マッピング方法。
  2. 前記マッピング・テーブルは、前記各マッピング用レジスタについて、前記動作ID、前記OSのID、および前記ハードウェア・スレッドのIDの中のどのパラメータの情報を前記一致するか否かのチェックに利用するかを指定するチェック・マスクをさらに含む、請求項のレジスタ・マッピング方法。
  3. 前記レジスタ・アクセス要求に対応してアクセスするレジスタとして設定するステップは、前記マッピング・テーブル中の前記チェック・マスクにより指定された前記パラメータの情報についてのみ一致するか否かを判断することを含む、請求項のレジスタ・マッピング方法。
  4. 前記取得したレジスタIDの情報が前記マッピング・テーブル中の前記レジスタIDの情報に一致しない場合、前記レジスタ・プール中の前記マッピング用レジスタ以外のレジスタを前記レジスタ・アクセス要求に対応してアクセスするレジスタとして設定する、請求項1〜のいずれか1項のレジスタ・マッピング方法。
JP2013551519A 2011-12-26 2012-10-19 レジスタ・マッピング方法 Active JP5852677B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013551519A JP5852677B2 (ja) 2011-12-26 2012-10-19 レジスタ・マッピング方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011284197 2011-12-26
JP2011284197 2011-12-26
JP2013551519A JP5852677B2 (ja) 2011-12-26 2012-10-19 レジスタ・マッピング方法
PCT/JP2012/077114 WO2013099414A1 (ja) 2011-12-26 2012-10-19 レジスタ・マッピング方法

Publications (2)

Publication Number Publication Date
JPWO2013099414A1 JPWO2013099414A1 (ja) 2015-04-30
JP5852677B2 true JP5852677B2 (ja) 2016-02-03

Family

ID=48655872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013551519A Active JP5852677B2 (ja) 2011-12-26 2012-10-19 レジスタ・マッピング方法

Country Status (3)

Country Link
US (2) US9430254B2 (ja)
JP (1) JP5852677B2 (ja)
WO (1) WO2013099414A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342243B2 (en) * 2012-11-28 2016-05-17 Lenovo (Beijing) Co., Ltd. Method and electronic apparatus for implementing multi-operating system
CN106484523B (zh) * 2015-08-24 2019-07-30 大唐移动通信设备有限公司 一种硬件设备管理方法及其装置
JP6726088B2 (ja) * 2016-12-15 2020-07-22 ルネサスエレクトロニクス株式会社 データ処理装置、及びアクセス制御方法
US10545766B2 (en) 2017-04-18 2020-01-28 International Business Machines Corporation Register restoration using transactional memory register snapshots
US10740108B2 (en) 2017-04-18 2020-08-11 International Business Machines Corporation Management of store queue based on restoration operation
US10572265B2 (en) 2017-04-18 2020-02-25 International Business Machines Corporation Selecting register restoration or register reloading
US11010192B2 (en) 2017-04-18 2021-05-18 International Business Machines Corporation Register restoration using recovery buffers
US10649785B2 (en) 2017-04-18 2020-05-12 International Business Machines Corporation Tracking changes to memory via check and recovery
US10489382B2 (en) 2017-04-18 2019-11-26 International Business Machines Corporation Register restoration invalidation based on a context switch
US10963261B2 (en) 2017-04-18 2021-03-30 International Business Machines Corporation Sharing snapshots across save requests
US10782979B2 (en) 2017-04-18 2020-09-22 International Business Machines Corporation Restoring saved architected registers and suppressing verification of registers to be restored
US10552164B2 (en) 2017-04-18 2020-02-04 International Business Machines Corporation Sharing snapshots between restoration and recovery
US10838733B2 (en) 2017-04-18 2020-11-17 International Business Machines Corporation Register context restoration based on rename register recovery
US10564977B2 (en) 2017-04-18 2020-02-18 International Business Machines Corporation Selective register allocation
US10540184B2 (en) 2017-04-18 2020-01-21 International Business Machines Corporation Coalescing store instructions for restoration
US10761983B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10552070B2 (en) 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
KR102498319B1 (ko) 2018-06-04 2023-02-08 삼성전자주식회사 반도체 장치
GB2579617B (en) * 2018-12-06 2021-01-27 Advanced Risc Mach Ltd An apparatus and method for handling exception causing events
US10929167B2 (en) * 2019-01-09 2021-02-23 Microsoft Technology Licensing, Llc Low-latency events across a virtual machine boundary
CN111782271A (zh) * 2020-06-29 2020-10-16 Oppo广东移动通信有限公司 一种软硬件交互方法及装置、存储介质
CN115983173B (zh) * 2023-03-21 2023-07-07 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61114546A (ja) 1984-11-09 1986-06-02 Canon Inc 半導体装置の製造方法
JPH0754468B2 (ja) * 1984-12-19 1995-06-07 株式会社日立製作所 仮想計算機システム
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7117346B2 (en) 2002-05-31 2006-10-03 Freescale Semiconductor, Inc. Data processing system having multiple register contexts and method therefor
US20040049580A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
US20040268093A1 (en) 2003-06-26 2004-12-30 Samra Nicholas G Cross-thread register sharing technique
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US7873961B2 (en) * 2005-07-29 2011-01-18 International Business Machines Corporation Supervisory operating system for running multiple child operating systems simultaneously and optimizing resource usage
US20070168525A1 (en) * 2006-01-18 2007-07-19 Deleon Baltazar Iii Method for improved virtual adapter performance using multiple virtual interrupts
US8108872B1 (en) * 2006-10-23 2012-01-31 Nvidia Corporation Thread-type-based resource allocation in a multithreaded processor
US8266633B1 (en) * 2007-02-13 2012-09-11 Oracle America, Inc. Method and message handling hardware structure for virtualization and isolation of partitions
US8219988B2 (en) * 2007-08-02 2012-07-10 International Business Machines Corporation Partition adjunct for data processing system
JP5091655B2 (ja) * 2007-12-21 2012-12-05 株式会社日立製作所 計算機仮想化装置、そのプログラム、及びその方法
US7996663B2 (en) * 2007-12-27 2011-08-09 Intel Corporation Saving and restoring architectural state for processor cores
JPWO2009110111A1 (ja) * 2008-03-04 2011-07-14 三菱電機株式会社 サーバ装置及びサーバ装置の異常検知方法及びサーバ装置の異常検知プログラム
US8234432B2 (en) * 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
US8060722B2 (en) * 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
US8443156B2 (en) * 2009-03-27 2013-05-14 Vmware, Inc. Virtualization system using hardware assistance for shadow page table coherence
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
RU2010103272A (ru) 2010-02-01 2011-08-10 Общество с ограниченной ответственностью Крейф (ООО Крейф) (RU) Способ повышения точности ввода информации с помощью дистанционного указателя
US8484392B2 (en) * 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US9191454B2 (en) * 2011-06-27 2015-11-17 Microsoft Technology Licensing, Llc Host enabled management channel
US8775784B2 (en) * 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
WO2014002220A1 (ja) * 2012-06-27 2014-01-03 富士通株式会社 管理装置、データ取得方法およびデータ取得プログラム
US9436626B2 (en) * 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
CN104781803B (zh) * 2012-12-26 2018-06-15 英特尔公司 用于架构不同核的线程迁移支持
US10261813B2 (en) * 2013-09-25 2019-04-16 Arm Limited Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator

Also Published As

Publication number Publication date
WO2013099414A1 (ja) 2013-07-04
US20130232489A1 (en) 2013-09-05
US20130167149A1 (en) 2013-06-27
US9471342B2 (en) 2016-10-18
JPWO2013099414A1 (ja) 2015-04-30
US9430254B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
JP5852677B2 (ja) レジスタ・マッピング方法
US8793528B2 (en) Dynamic hypervisor relocation
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US4347565A (en) Address control system for software simulation
US20080040715A1 (en) Virtualizing performance counters
WO2020238245A1 (zh) 实现函数跳转的方法、装置及计算机存储介质
JP2011070663A (ja) コンピュータ・システムにおける入れ子式仮想化の性能改善
TWI736912B (zh) 用於通用處理器之排序及合併指令之電腦程式產品、電腦系統及電腦實施方法
US7395199B2 (en) Emulating the operation of a video graphics adapter
US20150347166A1 (en) Paravirtualized migration counter for migrating a virtual cpu to a different physical cpu
CN112930532A (zh) 控制合并操作的存储访问
US10705993B2 (en) Programming and controlling compute units in an integrated circuit
US9792042B2 (en) Systems and methods for set membership matching
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
US9378057B2 (en) Paravirtualized migration counter
CN112955867A (zh) 部分完成的指令的迁移
US10877771B2 (en) Virtual machine booting using disk metadata
JPS61184643A (ja) 仮想計算機の起動制御方式
WO2023185799A1 (zh) 一种指令翻译方法及其相关设备
US11182184B2 (en) Implementing high-performance virtual machines for bare metal simulation
CN114816433A (zh) 基于异步编程在项目中的编码方法、系统、设备及介质
JPH0567973B2 (ja)
US8656375B2 (en) Cross-logical entity accelerators
JPH0193831A (ja) 仮想計算機のオペランドアクセス制御方式
CN116339937A (zh) 任务迁移方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150910

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151204

R150 Certificate of patent or registration of utility model

Ref document number: 5852677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150