JP6963534B2 - メモリ保護回路及びメモリ保護方法 - Google Patents

メモリ保護回路及びメモリ保護方法 Download PDF

Info

Publication number
JP6963534B2
JP6963534B2 JP2018100185A JP2018100185A JP6963534B2 JP 6963534 B2 JP6963534 B2 JP 6963534B2 JP 2018100185 A JP2018100185 A JP 2018100185A JP 2018100185 A JP2018100185 A JP 2018100185A JP 6963534 B2 JP6963534 B2 JP 6963534B2
Authority
JP
Japan
Prior art keywords
stored
storage register
virtual machine
memory
virtual machines
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
JP2018100185A
Other languages
English (en)
Other versions
JP2019204382A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2018100185A priority Critical patent/JP6963534B2/ja
Priority to US16/405,585 priority patent/US11119948B2/en
Priority to EP19175067.8A priority patent/EP3572967B1/en
Priority to CN201910434757.4A priority patent/CN110532816B/zh
Publication of JP2019204382A publication Critical patent/JP2019204382A/ja
Priority to US17/400,918 priority patent/US11526452B2/en
Application granted granted Critical
Publication of JP6963534B2 publication Critical patent/JP6963534B2/ja
Priority to US18/055,607 priority patent/US11775450B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Description

本発明はメモリ保護回路及びメモリ保護方法に関し、例えば複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うのに適したメモリ保護回路及びメモリ保護方法に関する。
CPU(Central Processing Unit)等の演算処理回路と、メモリと、の間には、CPUからメモリへの不正なアクセスを防ぐため、CPUからメモリへのアクセスを制御するメモリ保護回路が設けられている。
ところで、単一の物理リソースを複数のリソースに見せかける仮想化技術を用いることで、1つのCPU上において、ハイパーバイザによる管理のもと、複数の仮想マシンを動作させることができる。ただし、複数の仮想マシンが単一のメモリを共有するためには、複数の仮想マシンからのメモリへのアクセスを制御する機構が必要である。
関連する技術が特許文献1に開示されている。特許文献1に開示されたメモリ保護回路は、信頼度の高いハイパーバイザにのみ、メモリへのアクセス権限を有する仮想マシンの情報が格納されたレジスタへのアクセス権限を与え、信頼度の低い仮想マシンには、当該レジスタへのアクセス権限を与えない。それにより、特許文献1に開示されたメモリ保護回路は、複数の仮想マシンによる共通のメモリへのアクセスを制御している。
特開2013−232151号公報
しかしながら、特許文献1に開示されたメモリ保護回路では、複数の仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリへのアクセスが完了するたびに、当該仮想マシンからハイパーバイザに処理を移行させたうえで、ハイパーバイザからの要求によってメモリへのアクセス権限を次の仮想マシンに切り替える必要がある。
例えば、2つの仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、まず、ハイパーバイザによって一方の仮想マシンにメモリへのアクセス権限が付与される。その後、一方の仮想マシンによるメモリへのアクセスが完了すると、当該一方の仮想マシンからハイパーバイザに対してアクセスの完了が通知される。それにより、一方の仮想マシンからハイパーバイザに処理が移行する。その後、ハイパーバイザによって一方の仮想マシンから他方の仮想マシンにメモリへのアクセス権限が切り替えられた後、他方の仮想マシンによるメモリへのアクセスが行われる。
そのため、特許文献1に開示されたメモリ保護回路では、複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことができないという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、メモリ保護回路は、ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのID(Identification)が格納された第1ID格納レジスタと、前記複数の仮想マシンのうち、前記第1ID格納レジスタに格納されたIDの仮想マシンに対して、メモリへのアクセスを許可するアクセス判定回路と、前記複数の仮想マシンのうち何れかの仮想マシンのIDが格納された第2ID格納レジスタと、前記複数の仮想マシンのうち、前記第2ID格納レジスタに格納されたIDの仮想マシンに対して、前記第1ID格納レジスタに格納されたIDの書き換えを許可するID更新制御回路と、を備える。
他の実施の形態によれば、メモリ保護方法は、ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのID(Identification)を第1ID格納レジスタに格納し、前記複数の仮想マシンのうち何れかの仮想マシンのIDを第2ID格納レジスタに格納し、前記複数の仮想マシンのうち、前記第2ID格納レジスタに格納されたIDの仮想マシンに対して、前記第1ID格納レジスタに格納されたIDの書き換えを許可し、前記複数の仮想マシンのうち、前記第1ID格納レジスタに格納されたIDの仮想マシンに対して、メモリへのアクセスを許可する。
前記一実施の形態によれば、例えば複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことが可能なメモリ保護回路及びメモリ保護方法を提供することができる。
実施の形態1に係るメモリ保護システムの構成例を示すブロック図である。 第1ID格納レジスタに格納されたIDがロックされていない場合における、ID書き換え要求を行った仮想マシンのIDと、第1ID格納レジスタに格納されたIDと、の関係を示す図である。 第1ID格納レジスタに格納されたIDがロックされている場合における、ID書き換え要求を行った仮想マシンのIDと、第1ID格納レジスタに格納されたIDと、の関係を示す図である。 図1に示すメモリ保護システムの変形例の動作を説明するための図である。 実施の形態2に係るメモリ保護システムの構成例を示すブロック図である。 図5に示すメモリ保護システムに設けられたメモリ保護回路の動作を示すフローチャートである。 実施の形態1に至る前の構想に係るメモリ保護システムの構成例を示すブロック図である。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<発明者による事前検討>
実施の形態1にかかるメモリ保護システムの説明をする前に、発明者らが事前検討した内容について説明する。
図7は、実施の形態1に至る前の構想にかかるメモリ保護システムSYS50の構成例を示すブロック図である。
図7に示すように、メモリ保護システムSYS50は、例えばCPU等の演算処理回路によって実現されるn(nは2以上の整数)個の仮想マシンVM1〜VMn及びハイパーバイザHV1と、メモリ保護回路50と、メモリM1と、を備える。以下、仮想マシンVM1〜VMnのうちの任意の仮想マシンを、仮想マシンVMと称する場合がある。
ハイパーバイザHV1は、仮想マシンVM1〜VMnよりも信頼性が高く、これら仮想マシンVM1〜VMnを管理する。また、ハイパーバイザHV1は、メモリ保護回路50に設けられた各レジスタにアクセスする権限を有する。仮想マシンVM1〜VMnは、それぞれ並行して演算処理を行うことが可能であるが、メモリ保護回路50に設けられた各レジスタにアクセスする権限を有しない。
メモリ保護回路50は、複数の仮想マシンVM1〜VMnによるメモリM1へのアクセスを制御する回路である。具体的には、メモリ保護回路50は、レジスタ群51と、アクセス判定回路52と、を備える。
レジスタ群51は、保護領域設定レジスタ511と、ID格納レジスタ512と、を有する。保護領域設定レジスタ511には、メモリM1の記憶領域のうち仮想マシンVM1〜VMnによるアクセスからの保護対象となっている記憶領域が設定されている。ID格納レジスタ512には、仮想マシンVM1〜VMnのうち、メモリM1へのアクセス権限が与えられた仮想マシンVMのID(Identification)、が格納されている。
アクセス判定回路52は、仮想マシンVM1〜VMnの何れかの仮想マシンVMからメモリM1へのアクセス要求があった場合に、アクセス要求を行った仮想マシンVMに対してメモリM1へのアクセスを許可するか否かを判定する。
具体的には、アクセス判定回路52は、アドレス比較回路521と、ID比較回路522と、を有する。アドレス比較回路521は、アクセス要求を行った仮想マシンVMによって指定されたメモリM1のアドレスと、保護領域設定レジスタ511に設定された記憶領域のアドレスと、を比較する。ID比較回路522は、アクセス要求を行った仮想マシンVMのIDと、ID格納レジスタ512に格納されたIDと、を比較する。アクセス判定回路52は、アドレス比較回路521による比較結果が一致を示し、かつ、ID比較回路522による比較結果が一致を示す場合に、アクセス要求を行った仮想マシンVMに対してメモリM1へのアクセスを許可する。
ここで、メモリ保護回路50では、例えば2つの仮想マシンVM1,VM2間で共通のメモリM1を介してデータの受け渡しを行う場合、まず、ハイパーバイザHV1によって仮想マシンVM1にメモリM1へのアクセス権限が付与される。具体的には、ハイパーバイザHV1によってID格納レジスタ512に仮想マシンVM1のIDが格納される。それにより、例えば、仮想マシンVM1によって、メモリM1にデータが書き込まれる。
その後、仮想マシンVM1によるメモリM1へのアクセスが完了すると、仮想マシンVM1からハイパーバイザHV1に対してアクセスの完了が通知される。それにより、仮想マシンVM1からハイパーバイザHV1に処理が移行する。その後、ハイパーバイザHV1によって仮想マシンVM1から仮想マシンVM2にメモリM1へのアクセス権限が切り替えられる。具体的には、ハイパーバイザHV1によって、ID格納レジスタ512に格納されたIDが、仮想マシンVM1のIDから仮想マシンVM2のIDに書き換えられる。それにより、例えば、仮想マシンVM2によって、メモリM1に書き込まれたデータが読み出される。
このように、メモリ保護回路50では、例えば2つの仮想マシンVM1,VM2間で共通のメモリM1を介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリM1へのアクセスが完了するたびに、その仮想マシンからハイパーバイザに処理を移行させたうえで、ハイパーバイザからの要求によってメモリM1へのアクセス権限を次の仮想マシンに切り替える必要がある。そのため、メモリ保護回路50では、複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことができない、という問題があった。
また、この一連の処理を行うためのハイパーバイザ向けソフトウェアの開発が必要となる。さらに、仮想マシンからハイパーバイザへの遷移、及び、ハイパーバイザから仮想マシンへの遷移の際に、コンテキストスイッチによるメモリアクセス処理が発生するため、CPU等の演算処理回路による処理サイクルが長くなり、その結果、一方の仮想マシンによるデータ通信処理が完了してから、次の仮想マシンによってデータ通信処理が行われるまでの時間が長くなってしまう。
そこで、発明者は、複数のマシン間の共通のメモリを介したデータの受け渡しを速やかに行うことが可能な、実施の形態1にかかるメモリ保護回路を見いだした。
<実施の形態1>
図1は、実施の形態1に係るメモリ保護回路が設けられたメモリ保護システムSYS1の構成例を示すブロック図である。
図1に示すように、メモリ保護システムSYS1は、例えばCPU等の演算処理回路によって実現されるn(nは2以上の整数)個の仮想マシンVM1〜VMn及びハイパーバイザHV1と、メモリ保護回路1と、メモリM1と、を備える。以下、仮想マシンVM1〜VMnのうちの任意の仮想マシンを、仮想マシンVMと称する場合がある。
ハイパーバイザHV1は、仮想マシンVM1〜VMnよりも信頼性が高く、これら仮想マシンVM1〜VMnを管理する。また、ハイパーバイザHV1は、メモリ保護回路1に設けられた各レジスタ(保護領域設定レジスタ111、第1ID格納レジスタ112、第2ID格納レジスタ113、及び、モード設定レジスタ116)にアクセスする権限を有する。仮想マシンVH1〜VMnは、それぞれ並行して演算処理を行うことが可能であるが、メモリ保護回路1にアクセスする権限は限定されている。
メモリ保護回路1は、複数の仮想マシンVM1〜VMnによるメモリM1へのアクセスを制御する回路である。具体的には、メモリ保護回路1は、レジスタ群11と、アクセス判定回路12と、アクセス判定回路14と、ID更新制御回路15と、を備える。
レジスタ群11は、保護領域設定レジスタ111と、第1ID格納レジスタ112と、第2ID格納レジスタ113と、トリガ発生レジスタ114と、IDロックレジスタ115と、モード設定レジスタ116と、を有する。
保護領域設定レジスタ111には、メモリM1の記憶領域のうち仮想マシンVM1〜VMnによるアクセスからの保護対象となっている記憶領域が設定されている。第1ID格納レジスタ112には、仮想マシンVM1〜VMnのうち、メモリM1へのアクセス権限が与えられた仮想マシンVMのID(Identification)、が格納されている。なお、第2ID格納レジスタ113、トリガ発生レジスタ114、IDロックレジスタ115、及び、モード設定レジスタ116については後述する。
アクセス判定回路12は、仮想マシンVM1〜VMnの何れかの仮想マシンVMからメモリM1に対してアクセス要求があった場合に、アクセス要求を行った仮想マシンVMに対してメモリM1へのアクセスを許可するか否かを判定する。
具体的には、アクセス判定回路12は、アドレス比較回路121と、ID比較回路122と、を有する。アドレス比較回路121は、アクセス要求を行った仮想マシンVMによって指定されたメモリM1のアドレスと、保護領域設定レジスタ111に設定された記憶領域のアドレスと、を比較する。ID比較回路122は、アクセス要求を行った仮想マシンVMのIDと、ID格納レジスタ112に格納されたIDと、を比較する。アクセス判定回路12は、アドレス比較回路121による比較結果が一致を示し、かつ、ID比較回路122による比較結果が一致を示す場合に、アクセス要求を行った仮想マシンVMに対してメモリM1へのアクセスを許可する。
レジスタ群11において、第2ID格納レジスタ113には、第1ID格納レジスタ112へのアクセス権限が与えられた2つの仮想マシンVMのID、が格納されている。換言すると、第2ID格納レジスタ113には、第1ID格納レジスタ112に格納されたIDの書き換え権限が与えられた2つの仮想マシンVMのID、が格納されている。
アクセス判定回路14は、仮想マシンVM1〜VMnのうち何れかの仮想マシンVMからメモリ保護回路1に対して、第1ID格納レジスタ112に格納されたIDの書き換え要求があった場合(換言すると、メモリM1へのアクセス権限を有する仮想マシンVMの変更要求があった場合)、ID書き換え要求を行った仮想マシンVMに対して、第1ID格納レジスタ112に格納されたIDの書き換えを許可するか否かを判定する。
例えば、アクセス判定回路14は、ID書き換え要求を行った仮想マシンVMのIDと、第2ID格納レジスタ113に格納された2つのIDの何れかと、が一致した場合に、ID書き換え要求を行った仮想マシンVMに対して、第1ID格納レジスタ112に格納されたIDの書き換えを許可する。このとき、トリガ発生レジスタ114は、パルス形状のトリガ信号TRGを出力する。トリガ信号TRGが出力されると、ID更新制御回路15は、第1ID格納レジスタ112に格納されたIDを、第2ID格納レジスタ113に格納された2つのIDのうちの一方から他方に書き換える。
例えば、第1ID格納レジスタ112には、32個の仮想マシンVM1〜VM32に対応する32ビット幅のID格納領域が設けられている。なお、32ビット幅のID格納領域のうち、例えば、下位から第1ビット目の値(即ち、最下位ビットの値)が仮想マシンVM1によるメモリM1へのアクセス権限の有無を表し、下位から第32ビット目の値(即ち、最上位ビットの値)が仮想マシンVM32によるメモリM1へのアクセス権限の有無を表している。
同様に、第2ID格納レジスタ113には、32個の仮想マシンVM1〜VM32に対応する32ビット幅のID格納領域が設けられている。なお、32ビット幅のID格納領域のうち、例えば、下位から第1ビット目の値(即ち、最下位ビットの値)が仮想マシンVM1によるID書き換え権限の有無を表し、下位から第32ビット目の値(即ち、最上位ビットの値)が仮想マシンVM32によるID書き換え権限の有無を表している。
例えば、仮想マシンVM1に対してメモリM1へのアクセス権限が与えられ、かつ、仮想マシンVM1,VM2に対して第1ID格納レジスタ112に格納されたIDの書き換え権限が与えられている場合、第1ID格納レジスタ112の下位4ビットの値は“0001”を示し、かつ、第2ID格納レジスタ113の下位4ビットの値は“0011”を示す。以下、本例では、上位28ビットの値は何れも0であるため、省略する。
ここで、ID書き換え要求に応じてトリガ信号TRGが出力された場合、ID更新制御回路15は、第1ID格納レジスタ112に格納された32ビット幅の値の各ビットと、第2ID格納レジスタ113に格納された32ビット幅の値の各ビットと、の排他的論理和を算出して、第1ID格納レジスタ112に上書きする。具体的には、ID更新制御回路15は、第1ID格納レジスタ112の下位4ビットの値“0001”の各ビットと、第2ID格納レジスタ113の下位4ビットの値“0011”の各ビットと、の排他的論理和である値“0010”を第1ID格納レジスタ112に上書きする。それにより、メモリM1へのアクセス権限を有する仮想マシンが仮想マシンVM1から仮想マシンVM2に移行する。
さらに、アクセス判定回路14は、仮想マシンVM1〜VMnのうち何れかの仮想マシンVMからメモリ保護回路1に対して、第1ID格納レジスタ112に格納されたIDのロックの要求があった場合、IDのロックの要求を行った仮想マシンVMに対して、第1格納レジスタ112に格納されたIDのロックを許可するか否かを判定する。
例えば、アクセス判定回路14は、IDのロックの要求を行った仮想マシンVMのIDと、第1ID格納レジスタ112に格納されたIDと、が一致した場合に、IDのロックの要求を行った仮想マシンVMに対して、第1ID格納レジスタ112に格納されたIDのロックを許可する。このとき、IDロックレジスタ115は、ロック信号LKをアクティブにする。ロック信号LKがアクティブになると、ID更新制御回路15は、第1ID格納レジスタ112に格納されたIDをロックする。それにより、第1ID格納レジスタ112に格納されたIDは、ロックが解除されるまで、書き換えられなくなる。
また、ロックされたIDの仮想マシンVMから、第1ID格納レジスタ112に格納されたIDの書き換え要求があった場合には、当該要求は受け付けられる。このとき、IDロックレジスタ115は、ロック信号LKをアクティブからインアクティブに切り替える。それにより、ロックは解除される。同時に、ID更新制御回路15は、第1ID格納レジスタ112に格納されたIDを、第2ID格納レジスタ113に格納された2つのIDのうちの一方から他方に書き換える。
それにより、例えば、メモリM1へのアクセス権限を有する仮想マシンVM1によるメモリM1へのデータの書き込み後、メモリM1へのアクセス権限が仮想マシンVM1から仮想マシンVM2に移行し、その後、仮想マシンVM2によるメモリM1からのデータの読み出しが完了する前に、メモリM1へのアクセス権限が仮想マシンVM2から仮想マシンVM1に移行してしまうのを防ぐことができる。
図2は、第1ID格納レジスタ112に格納されたIDがロックされていない場合における、ID書き換え要求を行った仮想マシンVMのIDと、第1ID格納レジスタ112に格納されたIDと、の関係を示す図である。なお、図2の例では、仮想マシンVM1,VM2に、第1ID格納レジスタ112に格納されたIDの書き換え権限が与えられているものとする。
図2を参照すると、第1ID格納レジスタ112に格納されたIDがロックされていない場合、仮想マシンVM1,VM2の何れかからID書き換え要求があれば、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM1,VM2の一方のIDから他方のIDに書き換えられている。
図3は、第1ID格納レジスタ112に格納されたIDがロックされている場合における、ID書き換え要求を行った仮想マシンVMのIDと、第1ID格納レジスタ112に格納されたIDと、の関係を示す図である。なお、図3の例では、仮想マシンVM1,VM2に、第1ID格納レジスタ112に格納されたIDの書き換え権限が与えられているものとする。
図3を参照すると、第1ID格納レジスタ112に格納されたIDがロックされている場合、第1ID格納レジスタ112に格納されたIDの仮想マシンVMからID書き換え要求がある場合にのみ、第1ID格納レジスタ112に格納された仮想マシンVM1,VM2の一方のIDから他方のIDに書き換えられている。また、IDが書き換えられた場合には、IDの書き換えとともにロックが解除されている。
モード設定レジスタ116には、第2ID格納レジスタ113に格納されたIDの仮想マシンVMからの書き換え要求によって第1ID格納レジスタに格納されたIDの書き換えが行われる動作モード(以下、動作モードMDと称す)、を有効にするか否かが設定される。本実施の形態では、動作モードMDが有効となるように設定されている。なお、動作モードMDが無効となるように設定された場合、メモリ保護回路1は、例えば、メモリ保護回路50と同様の動作を行う。
(メモリ保護回路1の動作)
続いて、メモリ保護回路1の動作について説明する。本例では、仮想マシンVM1,VM2との間で共通のメモリM1を介してデータの受け渡しが行われる場合について説明する。
まず、ハイパーバイザHV1によってメモリ保護回路1の各レジスタへの初期設定が行われる。例えば、第1ID格納レジスタ112には、仮想マシンVM1のIDが格納される。それにより、仮想マシンVM1には、メモリM1へのアクセス権限が付与される。また、第2ID格納レジスタ113には、仮想マシンVM1,VM2の2つのIDが格納される。それにより、仮想マシンVM1,VM2には、第1格納レジスタ112に格納されたIDの書き換え権限が付与される。また、保護領域設定レジスタ111には、仮想マシンVM1,VM2によってアクセスされるメモリM1の記憶領域が設定される。さらに、モード設定レジスタ116には動作モードMDが有効となるように設定される。
ハイパーバイザHV1は、メモリ保護回路1の各レジスタへの初期設定後、メモリM1へのアクセス権限を有する仮想マシンVM1を起動させる。
メモリM1へのアクセス権限を有する仮想マシンVM1は、例えば、メモリM1へのデータの書き込みを行う。このとき、仮想マシンVM1は、メモリ保護回路1に対して、第1ID格納レジスタ112に格納されたIDのロックを要求してもよい。IDがロックされることにより、仮想マシンVM1によるメモリM1へのデータの書き込みが完了する前に、メモリM1へのアクセス権限が仮想マシンVM1から仮想マシンVM2に移行してしまうのを防ぐことができる。
仮想マシンVM1は、メモリM1へのデータの書き込みが完了すると、メモリ保護回路1に対して、第1ID格納レジスタ112に格納されたIDの書き換えを要求する。ID書き換え要求に応じてトリガ発生レジスタ114からトリガ信号TRGが出力されると、ID更新制御回路15は、第1ID格納レジスタ112に格納されたIDを、仮想マシンVM1のIDから仮想マシンVM2のIDに書き換える。それにより、メモリM1へのアクセス権限は、仮想マシンVM1から仮想マシンVM2に移行する。なお、このとき、IDロックレジスタ115から出力されるロック信号LKはインアクティブになる。それにより、第1ID格納レジスタ112に格納されたIDのロックは解除される。
その後、仮想マシンVM1は、仮想マシンVM2に対して割り込み通知を行うことにより、仮想マシンVM2を起動させる。
メモリM1へのアクセス権限を有する仮想マシンVM2は、例えば、メモリM1に書き込まれたデータの読み出しを行う。このとき、仮想マシンVM2は、メモリ保護回路1に対して、第1ID格納レジスタ112に格納されたIDのロックを要求してもよい。IDがロックされることにより、仮想マシンVM2によるメモリM1からのデータの読み出しが完了する前に、メモリM1へのアクセス権限が仮想マシンVM2から仮想マシンVM1に移行してしまうのを防ぐことができる。
仮想マシンVM2は、メモリM1からのデータの読み出しが完了すると、第1ID格納レジスタ112に格納されたIDの書き換えを要求する。ID書き換え要求に応じてトリガ発生レジスタ114からトリガ信号TRGが出力されると、ID更新制御回路15は、第1ID格納レジスタ112に格納されたIDを、仮想マシンVM2のIDから仮想マシンVM1のIDに書き換える。それにより、メモリM1へのアクセス権限は、仮想マシンVM2から仮想マシンVM1に移行する。なお、このとき、IDロックレジスタ115から出力されるロック信号LKはインアクティブになる。それにより、第1ID格納レジスタ112に格納されたIDのロックは解除される。
その後、仮想マシンVM2は、仮想マシンVM1に対して割り込み通知を行うことにより、仮想マシンVM1を起動させる。このような動作が繰り返される。
このように、メモリ保護回路1では、2つの仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、一方の仮想マシンによるメモリM1へのアクセスが完了しても、当該一方の仮想マシンからハイパーバイザに処理を移行させることなく、一方の仮想マシンから他方の仮想マシンに直接的に処理を移行させることができる。つまり、メモリ保護回路1は、2つの仮想マシン間の共通のメモリM1を介したデータの受け渡しを、ハイパーバイザHV1を介することなく、速やかに行うことができる。
また、メモリ保護回路1では、メモリ保護回路50の場合と異なり、ハイパーバイザHV1からの要求によって第1ID格納レジスタ112に格納されたIDを書き換えるためのソフトウェアの開発が不要となる。そのため、開発工数を削減することができる。
さらに、2つの仮想マシン間のデータ通信を行うにあたり、メモリM1へのアクセス権限は、2つの仮想マシンVMの何れか一つにのみ与えられる。また、メモリM1へのアクセス権限を有する仮想マシンVMの移行は、2つの仮想マシンVMからの要求によってのみ許可される。つまり、保護対象であるメモリM1の記憶領域へのアクセスは、2つの仮想マシンのみによって行われるため、他のリソースからもデータを保護することができる。
(メモリ保護回路1の変形例)
本実施の形態では、メモリ保護回路1が、2つの仮想マシンVM1,VM2間で共通のメモリM1を介してデータの受け渡しが行われる場合を例に説明したが、これに限られない。メモリ保護回路1は、3つ以上の仮想マシン間で共通のメモリM1を介してデータの受け渡しが行われてもよい。以下、メモリ保護回路1の変形例をメモリ保護回路1aとして簡単に説明する。
図4は、メモリ保護回路1aの動作の一例を説明するための図である。図4の例では、3個の仮想マシンVM1〜VM3間で共通のメモリM1を介してデータの受け渡しが行われている。
なお、第2ID格納レジスタ113には、仮想マシンVM1〜VM3のそれぞれのIDが格納されている。つまり、本例では、仮想マシンVM1〜VM3からのID書き換え要求によって、第1ID格納レジスタ112に格納されたIDの書き換えが可能となっている。
図4の例では、まず、仮想マシンVM1にメモリM1へのアクセス権限が与えられている。ここで、仮想マシンVM1からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM1のIDから仮想マシンVM2のIDに書き換えるように要求があった場合、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM1のIDから仮想マシンVM2のIDに書き換えられる。それにより、メモリM1へのアクセス権限は、仮想マシンVM1から仮想マシンVM2に移行する。
次に、仮想マシンVM2からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM2のIDから仮想マシンVM3のIDに書き換えるように要求があった場合、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM2のIDから仮想マシンVM3のIDに書き換えられる。それにより、メモリM1へのアクセス権限は、仮想マシンVM2から仮想マシンVM3に移行する。
次に、仮想マシンVM3からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM3のIDから仮想マシンVM1のIDに書き換えるように要求があった場合、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM3のIDから仮想マシンVM0のIDに書き換えられる。それにより、メモリM1へのアクセス権限は、仮想マシンVM3から仮想マシンVM1に移行する。
次に、メモリM1へのアクセス権限を持たない仮想マシンVM3からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM1のIDから仮想マシンVM2のIDに書き換えるように要求があった場合、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM1のIDから仮想マシンVM2のIDに書き換えられない。この場合、第1ID格納レジスタ112に格納されたIDは、例えば、アクセスのあった仮想マシンVM3のIDに書き換えられる。それにより、メモリM1へのアクセス権限は、仮想マシンVM1から仮想マシンVM3に移行する。
次に、メモリM1へのアクセス権限を有する仮想マシンVM3からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されているID(即ち、仮想マシンVM3のID)のロックを要求する旨のアクセスがあった場合、第1ID格納レジスタ112に格納されたIDはロックされる。
このとき、メモリM1へのアクセス権限を持たない仮想マシンVM2からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM3のIDから仮想マシンVM1のIDに書き換えるように要求があった場合でも、第1ID格納レジスタ112に格納されたIDは、ロックされているため、仮想マシンVM3のIDから仮想マシンVM1のIDに書き換えられない。つまり、第1ID格納レジスタ112に格納されたIDは、仮想マシンVM3のIDに維持される。それにより、メモリM1へのアクセス権限は、仮想マシンVM3に維持される。
それに対し、メモリM1へのアクセス権限を有する仮想マシンVM3からメモリ保護回路1aに対して、第1ID格納レジスタ112に格納されたIDを仮想マシンVM3のIDから仮想マシンVM1のIDに書き換えるように要求があった場合、第1ID格納レジスタ112に格納されたIDは、ロック解除されるため、仮想マシンVM3のIDから仮想マシンVM1のIDに書き換えられる。それにより、メモリM1へのアクセス権限は、仮想マシンVM3から仮想マシンVM1に移行する。
なお、メモリM1へのアクセス権限は、メモリM1へのアクセス権限を有する仮想マシンによって、第2ID格納レジスタ113に格納された3つのIDのそれぞれの仮想マシンVM1〜VM3の何れかに移行するように指定される。メモリM1へのアクセス権限の移行先として指定された仮想マシンVMのIDは、例えばトリガ発生レジスタ114に格納される。そして、トリガ発生レジスタ114に格納されたIDと、第2ID格納レジスタ113に格納された3つのIDの何れかと、が一致した場合に、第1ID格納レジスタ112に格納されたIDは、トリガ発生レジスタ114に格納されたIDに書き換えられる。ただし、既に説明したように、メモリM1へのアクセス権限を持たない仮想マシンによってアクセス権限の移行先が指定された場合には、第1ID格納レジスタ112に格納されたIDは、トリガ発生レジスタ114に格納されたIDに書き換えられる代わりに、例えばアクセス権限の移行を要求した仮想マシンのIDに書き換えられる。
このように、メモリ保護回路1aは、3つ以上の仮想マシン間の共通のメモリM1を介したデータの受け渡しを、ハイパーバイザを介することなく、速やかに行うことができる。
<実施の形態2>
図5は、実施の形態2にかかるメモリ保護システムSYS2の構成例を示すブロック図である。メモリ保護システムSYS2は、メモリ保護システムSYS1と比較して、メモリ保護回路1の代わりにメモリ保護回路2を備える。メモリ保護回路2は、メモリ保護回路1と比較して、カウンタ21と、比較回路22と、閾値格納レジスタ117と、をさらに有する。
閾値格納レジスタ117には、ハイパーバイザHV1によって指定された所定の閾値が格納されている。カウンタ21は、IDロックレジスタ115から出力されるロック信号LKがアクティブ(例えばHレベル)になったことに同期して(即ち、第1ID格納レジスタ112に格納されたIDがロックされたタイミングで)、初期値0を示すカウント値CNのカウントアップ動作を開始する。
比較回路22は、カウンタ21のカウント値CNと、閾値格納レジスタ117に格納された閾値N1と、を比較する。比較回路22は、カウント値CNが、カウンタ21によるカウントアップ開始後、所定期間経過後に、閾値N1に達すると、比較結果をインアクティブからアクティブ(例えばLレベルからHレベル)に切り替える。それにより、IDロックレジスタ115から出力されるロック信号LKが強制的にアクティブからインアクティブに切り替わるため、第1ID格納レジスタ112に格納されているIDのロックは解除される。つまり、第1ID格納レジスタ112に格納されたIDがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後には、強制的に当該IDのロックは解除される。また、比較結果をインアクティブからアクティブに切り替えることによって、ロックの解除と同時に、第1ID格納レジスタ112に格納されたIDの書き換えを行うことができる。
メモリ保護回路2のその他の構成については、メモリ保護回路1の場合と同様であるため、その説明を省略する。
(メモリ保護回路2の動作)
続いて、図6を用いて、メモリ保護回路2の動作について説明する。
図6は、メモリ保護回路2の動作を示すフローチャートである。
図6に示すように、まず、第1ID格納レジスタ112に格納されたIDの仮想マシンVM(即ち、メモリM1へのアクセス権限が与えられている仮想マシンVM)から、メモリ保護回路2に対して、第1ID格納レジスタ112に格納されているIDのロックを要求する旨のアクセスがあった場合、IDロックレジスタ115は、ロック信号LKをインアクティブからアクティブ(例えばLレベルからHレベル)に切り替える。それにより、第1ID格納レジスタ112に格納されたIDはロックされる(ステップS101)。
カウンタ21は、第1ID格納レジスタ112に格納されたIDがロックされたタイミングで、初期値0を示すカウント値CNのカウントアップ動作を開始する(ステップS102)。
例えば、カウント値CNが閾値N1に達する前に(ステップS103のNO)、第1ID格納レジスタ112に格納されたIDの仮想マシンVMからのID書き換え要求によって当該IDのロックが解除された場合(ステップS104のYES)には、ロックの解除と同時に、第1ID格納レジスタ112に格納されたIDの書き換えが行われる(ステップS106)。なお、このとき、カウンタ21によるカウントアップ動作は停止し、カウント値CNはゼロに初期化される。
それに対し、カウント値CNが閾値N1に達する前に(ステップS103のNO)、第1ID格納レジスタ112に格納されたIDのロックが解除されなければ(ステップS104のNO)、カウンタ21によるカウント値CNのカウントアップ動作は継続される。
そして、カウント値CNが閾値N1に達すると(ステップS103のYES)、第1ID格納レジスタ112に格納されたIDの仮想マシンVMからのID書き換え要求が無くても、IDロックレジスタ115から出力されるロック信号LKは強制的にアクティブからインアクティブに切り替わる。それにより、第1ID格納レジスタ112に格納されているIDのロックは解除される(ステップS105)。つまり、第1ID格納レジスタ112に格納されたIDがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後には、強制的に当該IDのロックは解除される。
このとき、必要に応じて、第1ID格納レジスタ112に格納されるIDの仮想マシンからの要求によって当該IDの書き換えが行われる(ステップS106)。
このように、本実施の形態にかかるメモリ保護回路2は、メモリ保護回路1と同等程度の効果を奏することができる。また、本実施の形態にかかるメモリ保護回路2は、第1ID格納レジスタ112に格納されたIDがロックされてから所定期間経過後には、第1ID格納レジスタ112に格納されたIDの仮想マシンVMからの要求が無くても、第1ID格納レジスタ112に格納されているIDのロックを解除する。それにより、本実施の形態にかかるメモリ保護回路2は、第1ID格納レジスタ112に格納されたIDがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後に強制的に当該IDのロックを解除することにより、メモリ保護回路2の設定を正常な状態に復帰させることができる。
また、本実施の形態にかかるメモリ保護回路2は、ハイパーバイザHV1による処理を介することなく、比較回路22による比較結果に基づいて、強制的にIDのロックを解除している。それにより、ハイパーバイザHV1を起動するためのコンテキストの退避、及び、ハイパーバイザHV1による復帰動作が不要になるため、メモリ保護システムSYS2の性能低下が抑制される。
以上のように、上記実施の形態1,2にかかるメモリ保護回路1,2は、複数の仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリM1へのアクセスが完了しても、その仮想マシンからハイパーバイザに処理を移行させることなく、その仮想マシンから次の仮想マシンに処理を移行させることができる。つまり、メモリ保護回路1は、複数の仮想マシン間の共通のメモリM1を介したデータの受け渡しを、ハイパーバイザHV1を介することなく、速やかに行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
SYS1 メモリ保護システム
1 メモリ保護回路
1a メモリ保護回路
2 メモリ保護回路
11 レジスタ群
12 アクセス判定回路
14 アクセス判定回路
15 ID更新制御回路
21 カウンタ
22 比較回路
111 保護領域設定レジスタ
112 第1ID格納レジスタ
113 第2ID格納レジスタ
114 トリガ発生レジスタ
115 IDロックレジスタ
116 モード設定レジスタ
117 閾値格納レジスタ
121 アドレス比較回路
122 ID比較回路
M1 メモリ
VM1〜VMn 仮想マシン
HV1 ハイパーバイザ

Claims (10)

  1. ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのID(Identification)が格納された第1ID格納レジスタと、
    前記複数の仮想マシンのうち、前記第1ID格納レジスタに格納されたIDの仮想マシンに対して、メモリへのアクセスを許可するアクセス判定回路と、
    前記複数の仮想マシンのうち何れかの仮想マシンのIDが格納された第2ID格納レジスタと、
    前記複数の仮想マシンのうち、前記第2ID格納レジスタに格納されたIDの仮想マシンに対して、前記第1ID格納レジスタに格納されたIDの書き換えを許可するID更新制御回路と、
    を備えた、メモリ保護回路。
  2. 前記第2ID格納レジスタには、前記複数の仮想マシンのうち2つの仮想マシンである第1及び第2仮想マシンのそれぞれのIDが格納され、
    前記ID更新制御回路は、前記第1及び前記第2仮想マシンの何れかから前記第1ID格納レジスタに格納されたIDの書き換え要求があった場合、前記第1ID格納レジスタに格納されたIDを前記第1及び前記第2仮想マシンの一方のIDから他方のIDに書き換えるように構成されている、
    請求項1に記載のメモリ保護回路。
  3. 前記第2ID格納レジスタには、前記複数の仮想マシンのうち3つ以上の仮想マシンのそれぞれのIDが格納され、
    前記ID更新制御回路は、前記3つ以上の仮想マシンの何れかの仮想マシンから前記第1ID格納レジスタに格納されたIDの書き換え要求があった場合、前記第1ID格納レジスタに格納されたIDを前記3つ以上の仮想マシンの何れかの仮想マシンのIDに書き換えるように構成されている、
    請求項1に記載のメモリ保護回路。
  4. 前記第1ID格納レジスタに格納されたIDの前記仮想マシンからアクセスがあった場合に、ロック信号をアクティブにするIDロックレジスタをさらに備え、
    前記ID更新制御回路は、前記ロック信号がアクティブの場合には、前記第2ID格納レジスタに格納されたIDの前記仮想マシンから前記第1ID格納レジスタに格納されたIDの書き換え要求があった場合でも、前記第1ID格納レジスタに格納されたIDの書き換えを行わないように構成されている、
    請求項1に記載のメモリ保護回路。
  5. 前記IDロックレジスタは、前記ロック信号がアクティブの期間中において、前記第1ID格納レジスタに格納されたIDの前記仮想マシンから前記第1ID格納レジスタに格納されたIDの書き換え要求があった場合、前記ロック信号をインアクティブにするように構成されている、
    請求項4に記載のメモリ保護回路。
  6. 前記ロック信号がアクティブになったことに同期してカウントアップ動作を開始するカウンタと、
    前記カウンタによるカウント値と、所定閾値と、を比較する比較回路と、をさらに備え、
    前記比較回路から前記カウント値が前記所定閾値に達したことを示す比較結果が出力された場合、前記IDロックレジスタは、前記ロック信号を強制的にアクティブからインアクティブに切り替えるように構成されている、
    請求項4に記載のメモリ保護回路。
  7. 前記第1ID格納レジスタに格納されたIDは、前記第2ID格納レジスタに格納されたIDの前記仮想マシンからの要求に関わらず、ハイパーバイザからの要求に応じて書き換えられる、
    請求項1に記載のメモリ保護回路。
  8. 前記ハイパーバイザ及び前記複数の仮想マシンの処理を実現する演算処理回路と、
    請求項1に記載のメモリ保護回路と、
    前記メモリと、
    を備えた、メモリ保護システム。
  9. メモリ保護回路によって制御されるメモリ保護方法であって、
    ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのID(Identification)を第1ID格納レジスタに格納し、
    前記複数の仮想マシンのうち何れかの仮想マシンのIDを第2ID格納レジスタに格納し、
    前記複数の仮想マシンのうち、前記第2ID格納レジスタに格納されたIDの仮想マシンに対して、前記第1ID格納レジスタに格納されたIDの書き換えを許可し、
    前記複数の仮想マシンのうち、前記第1ID格納レジスタに格納されたIDの仮想マシンに対して、メモリへのアクセスを許可する、
    メモリ保護方法。
  10. 前記第2ID格納レジスタには、前記複数の仮想マシンのうち2つの仮想マシンである第1及び第2仮想マシンのそれぞれのIDが格納され、
    前記第1及び前記第2仮想マシンの何れかから前記第1ID格納レジスタに格納されたIDの書き換え要求があった場合、前記第1ID格納レジスタに格納されたIDを前記第1及び前記第2仮想マシンの一方のIDから他方のIDに書き換える、
    請求項9に記載のメモリ保護方法。
JP2018100185A 2018-05-25 2018-05-25 メモリ保護回路及びメモリ保護方法 Active JP6963534B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2018100185A JP6963534B2 (ja) 2018-05-25 2018-05-25 メモリ保護回路及びメモリ保護方法
US16/405,585 US11119948B2 (en) 2018-05-25 2019-05-07 Memory protection circuit and memory protection method
EP19175067.8A EP3572967B1 (en) 2018-05-25 2019-05-17 Memory protection circuit and memory protection method
CN201910434757.4A CN110532816B (zh) 2018-05-25 2019-05-23 存储器保护电路和存储器保护方法
US17/400,918 US11526452B2 (en) 2018-05-25 2021-08-12 Memory protection circuit and memory protection method
US18/055,607 US11775450B2 (en) 2018-05-25 2022-11-15 Memory protection circuit and memory protection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018100185A JP6963534B2 (ja) 2018-05-25 2018-05-25 メモリ保護回路及びメモリ保護方法

Publications (2)

Publication Number Publication Date
JP2019204382A JP2019204382A (ja) 2019-11-28
JP6963534B2 true JP6963534B2 (ja) 2021-11-10

Family

ID=66589417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018100185A Active JP6963534B2 (ja) 2018-05-25 2018-05-25 メモリ保護回路及びメモリ保護方法

Country Status (4)

Country Link
US (3) US11119948B2 (ja)
EP (1) EP3572967B1 (ja)
JP (1) JP6963534B2 (ja)
CN (1) CN110532816B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904330B2 (en) * 2018-07-10 2021-01-26 Vmware, Inc. Systems, methods and apparatus to manage services in distributed systems
CN112749397A (zh) * 2019-10-29 2021-05-04 阿里巴巴集团控股有限公司 一种系统和方法
KR20210066288A (ko) * 2019-11-28 2021-06-07 한국전자통신연구원 전자 장치, 인터럽트 설정 제어 방법 및 저장 매체
CN116126477B (zh) * 2023-04-04 2023-07-25 支付宝(杭州)信息技术有限公司 计算设备中访问tpm的方法和计算设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131729A1 (en) * 2004-12-21 2010-05-27 Koninklijke Philips Electronics N.V. Integrated circuit with improved device security
US20060271557A1 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Database Caching and Invalidation Based on Detected Database Updates
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
WO2009001153A1 (en) * 2007-06-28 2008-12-31 Nokia Corporation Memory protection unit in a virtual processing environment
JP2009251967A (ja) * 2008-04-07 2009-10-29 Toyota Motor Corp マルチコアシステム
US8769206B2 (en) * 2009-01-20 2014-07-01 Oracle International Corporation Methods and systems for implementing transcendent page caching
US9529615B2 (en) * 2010-11-24 2016-12-27 International Business Machines Corporation Virtual device emulation via hypervisor shared memory
JP5914145B2 (ja) 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
CN103235760B (zh) * 2013-01-31 2016-05-04 苏州国芯科技有限公司 基于CLB总线的高利用率NorFLASH存储接口芯片
CN105210037B (zh) * 2013-05-10 2019-05-21 英派尔科技开发有限公司 存储器访问的加快
JP6179369B2 (ja) * 2013-11-22 2017-08-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US10397053B2 (en) * 2014-08-14 2019-08-27 Netapp Inc. Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof
US9390028B2 (en) * 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
US20160210069A1 (en) * 2015-01-21 2016-07-21 Bitdefender IPR Management Ltd. Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
US20170031699A1 (en) * 2015-07-29 2017-02-02 Netapp, Inc. Multiprocessing Within a Storage Array System Executing Controller Firmware Designed for a Uniprocessor Environment
CN106445628A (zh) * 2015-08-11 2017-02-22 华为技术有限公司 一种虚拟化方法、装置和系统
JP6476098B2 (ja) * 2015-09-15 2019-02-27 ルネサスエレクトロニクス株式会社 半導体装置
DE102016220639A1 (de) * 2016-10-20 2018-04-26 Infineon Technologies Ag Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
US10733003B2 (en) * 2016-11-03 2020-08-04 Salesforce.Com, Inc. Cost efficient and on-demand pool of running instances in a virtual machine environment
US10243746B2 (en) * 2017-02-27 2019-03-26 Red Hat, Inc. Systems and methods for providing I/O state protections in a virtualized environment
US10554663B2 (en) * 2017-03-23 2020-02-04 Ca, Inc. Self-destructing smart data container

Also Published As

Publication number Publication date
US11775450B2 (en) 2023-10-03
CN110532816A (zh) 2019-12-03
EP3572967A1 (en) 2019-11-27
US11526452B2 (en) 2022-12-13
US20210374075A1 (en) 2021-12-02
US20230084922A1 (en) 2023-03-16
US20190361818A1 (en) 2019-11-28
JP2019204382A (ja) 2019-11-28
EP3572967B1 (en) 2021-08-25
US11119948B2 (en) 2021-09-14
CN110532816B (zh) 2024-04-23

Similar Documents

Publication Publication Date Title
JP6963534B2 (ja) メモリ保護回路及びメモリ保護方法
TWI482084B (zh) 提供平台獨立記憶體邏輯之裝置、方法及系統
JP6067449B2 (ja) 情報処理装置、情報処理プログラム
KR100668000B1 (ko) 인증된 코드 방법 및 장치
JP6373888B2 (ja) 情報処理装置及び制御方法
US20150244559A1 (en) Migration of full-disk encrypted virtualized storage between blade servers
US20110022832A1 (en) Multi-operating system (os) booting apparatus, multi-os booting program, recording medium, and multi-os booting method
TW200825904A (en) Virtualizing performance counters
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
TW201617957A (zh) 鑑別變數之管理技術
WO2012039971A2 (en) Platform firmware armoring technology
TW201447903A (zh) 修復非依電性記憶體中受危害之系統資料之技術
JP2022550697A (ja) プログラマブルデバイスのステータスの追跡
US20190205560A1 (en) Remote provisioning and authenticated writes to secure storage devices
JP4724640B2 (ja) ストレージ仮想化スイッチ
JP7332083B2 (ja) マルチモード保護メモリ
JP6622360B2 (ja) 情報処理装置
US20150269092A1 (en) Information processing device and shared memory management method
JP6462540B2 (ja) ドライバ装置、情報処理システム、プログラムおよび方法
US10628056B2 (en) Information processing apparatus and shared memory management method
CN112579481B (zh) 数据处理方法、数据处理装置和计算装置
JP2019074797A (ja) 不揮発性メモリのデータ書換方法及び半導体装置
JP2018526720A (ja) 仮想マシンの状態情報の保護
JP2021149417A (ja) 記憶装置および制御方法
CN116501237A (zh) 一种固态存储ai协处理器和固态存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211015

R150 Certificate of patent or registration of utility model

Ref document number: 6963534

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150