JP2018523211A - 保護された例外処理 - Google Patents
保護された例外処理 Download PDFInfo
- Publication number
- JP2018523211A JP2018523211A JP2017564103A JP2017564103A JP2018523211A JP 2018523211 A JP2018523211 A JP 2018523211A JP 2017564103 A JP2017564103 A JP 2017564103A JP 2017564103 A JP2017564103 A JP 2017564103A JP 2018523211 A JP2018523211 A JP 2018523211A
- Authority
- JP
- Japan
- Prior art keywords
- page
- ownership
- owned
- predetermined
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0745—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72454—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
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)
- Environmental & Geological Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、所定の所有プロセスが、所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使する所有権回路と、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こすための例外処理回路であって、これによって、第1プロセスを再開する際に用いられる1つ以上の状態の内容が、第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、第2プロセスがアクセス可能であり第1プロセスの処理に依存する1つ以上の状態の内容が、第2プロセスの実行開始より前に上書きされる、例外処理回路とを備えるデータ処理装置が提供される。
所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、所定の所有プロセスが、所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使する所有権手段と、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こすための例外処理手段であって、これによって、第1プロセスを再開する際に用いられる1つ以上の状態の内容が、第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、第2プロセスがアクセス可能であり第1プロセスの処理に依存する1つ以上の状態の内容が、第2プロセスの実行開始より前に上書きされる、例外処理手段とを備えるデータ処理装置が提供される。
所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、所定の所有プロセスが、所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使することと、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こし、これによって、第1プロセスを再開する際に用いられる1つ以上の状態の内容が、第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、第2プロセスがアクセス可能であり第1プロセスの処理に依存する1つ以上の状態の内容が、第2プロセスの実行開始より前に上書きされる、こととを含むデータ処理方法が提供される。
・無効(Invalid):このBDIDにはまだブラインドドメインが設定されていない。
・消去(Scrub):BDIDはセキュリティコンプレックス28によって請求されている(後述のように、これには、事前に同じBDIDを使用したプロセスと関連付けられたメモリ34内の任意のデータを上書きする上書き手続きを行うことが含まれてもよい)。
・準備(Prepare):セキュリティコンプレックス28は、そのBDIDと関連付けられたBDを初期化して、BDを実行する準備をしている。
・実行(Execute):BDは初期化されていて、実行の準備が完了しているか既に実行されている。
例えば、BDDT42は各BDIDに対して2ビットの状態フィールドを指定して、対応するブラインドドメインの状態を識別してもよい。ブラインドドメインの状態のライフサイクルを以下により詳しく説明する。ASIDによって識別されたアプリケーションに対するBDDTエントリは、所定の仮想マシン4のVMIDを、その仮想マシン4の下で実行されるアプリケーション6のASIDにマッピングするVMID‐ASID間接テーブル(VMID-to-ASID indirection table)を用いて追跡されてもよい。なお、BDDT42が、上記の状態識別子だけでなく、所定のBDと関連付けられた他の情報も含んでもよいことが理解されよう。
・対応する物理ページを所有するBDのBDIDを指定する所有者BDIDフィールド54。
・対応する物理ページへのアクセスを制御する1つ以上の属性を指定する属性フィールド(attribute field)56。これらの属性は、BDIDフィールド54内で識別される所有者BDによって設定される。
・アドレスフィールド58。その所有者BDが仮想アドレス又は中間物理アドレスを使用するページ(例えばアプリケーション6及び12や仮想マシン4)に対して、そのページが所有者BDによって請求されたときに、アドレスフィールド58は、対応する物理ページの物理アドレスにマッピングされるVA又はIPAを指定する。
・(図2には示されていない)ページ状態フィールド。対応するページの状態を示す。例えば、各物理ページは以下の状態の1つであってもよい。
○無効(Invalid):どのBDにも所有されていない。
○請求(Claiming):BDIDフィールド54内で示されるBDによって請求されているプロセス内にあるが、まだ所有が有効でない。
○有効(Valid):BDIDフィールド54内で示されるBDによる所有が有効である。
・任意で、ページの所有権を請求した場合に行われる上書きプロセスの際に上書きされたページの行数を追跡する(以下により詳しく説明される)請求カウントフィールド(claim count field)60。
また、CPU24又はGPU25のレジスタ内又はメモリ34内のスタック構造内といった異なるロケーション内に請求カウンター(claim counter)60を格納することも可能であり、これによって、必要に応じて、請求カウントフィールド60をPOT50から省略できる。
・所有者BDID以外のどのプロセスがページにアクセスできるかを示す共有属性。例えば、共有属性は以下のページのタイプの1つを指定できる。
○プライベート(Private):BDIDフィールド54内で識別された所有者BDのみがページにアクセスできる。
○IO:BDIDフィールド54内で識別された所有者BD及び、所有者BDによって請求されている任意の装置26のみがページにアクセスできる(後述の装置所有権の請求を参照)。
○共有(Shared):所有者BD及び1つ以上の選択された他のBDがページにアクセスできるが、その他のBDはいずれもアクセスできない。選択された他のBDは、属性フィールド56の更なる属性、又はページ所有権テーブル50とは別に格納された制御データによって識別できる。
○グローバル(Global):どのBDもページにアクセスできる。
・所有者BD以外のBDがページへのアクセスを許可された場合、そのBDがページに対する読み取り専用のアクセスを有しているか、読み取り/書き込みアクセスのどちらも有しているかを示す、読み取り/書き込み属性。
・対応する物理ページに書き込まれるデータに適用される暗号のレベルを示す暗号属性。
・BDMU60は現在のコンテキストBD(そこからトランザクションが生成されたBD)がBDDT42内の有効コンテキストであるかどうかを確認する。例えば、BDDT60は、VMID74及びASID73から現在のコンテキストBDのBDIDを形成して、対応するBDIDがBDDT42内で「実行」状態としてマークされているかどうかを確認する。
・BDMU60は、現在のコンテキストBDが、物理アドレス76に対応するPOTエントリ52内で所有者BD54として示されているかどうかを確認する。
・現在のコンテキストBDが所有者BDでない場合、BDMU60は、(上記の共有属性を用いて)現在のコンテキストBDがページにアクセスするのを所有者BDに許可されているかどうかを確認する。
・現在のコンテキストBDが所有者BDでない場合、BDMU60は、対応するPOTエントリの読み取り/書き込み属性を確認して、属性72で指定されたタイプのトランザクションが所有者BDに許可されているかどうかを判断する。
・現在のコンテキストBDが所有者BDである場合、BDMU60は、入力トランザクションが行われたVA70又はIPA75が、対応するPOTエントリ52のアドレスフィールド58内のVA/IPAと合致するかどうかを確認する。
・また、BDMU60は、現在のアクセスに対してS1ページテーブルエントリ内で指定された想定の共有属性が、対応するPOTエントリ内で指定された実際の共有属性と合致するかどうかも確認する。
これらのうちいずれかの確認が取れなかった場合、アクセスは拒否され、アクセス違反が生じる。それ以外の場合は、物理的アドレストランザクションは承認され、システムバス30へと出力される。なお、上記の確認が任意の順序で行われたり、少なくとも部分的に並列に行われたりしてもよいことが理解されよう。
IPA PA
IPA4 PA1
IPA9 PA0
そして、仮想マシン4は、以下のように、これらの両方のページの所有権を得て、POT50内の共有属性を設定できる。
PA 共有?
PA0 グローバル
PA1 プライベート
IPA PA
IPA4 PA0
IPA9 PA8
PA 共有? IPA
PA0 グローバル IPA9
PA1 プライベート IPA4
BD.Page.Invalidate(VA1)//broadcast page invalidate
BD.Page.Claim.Start(VA1)//requires an invalid page
line=(*64byte_ptr)VA1
do while(line<(VA1+PAGESIZE))
DCZ.WT(line++)//ordered zeroing of page
BD.Page.Claim.End(VA1)//make page valid
Claims (15)
- 所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、前記所定の所有プロセスが、前記所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使する所有権回路と、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こすための例外処理回路であって、これによって、前記第1プロセスを再開する際に用いられる1つ以上の状態の内容が、前記第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、前記第2プロセスがアクセス可能であり前記第1プロセスの処理に依存する1つ以上の状態の内容が、前記第2プロセスの実行開始より前に上書きされる例外処理回路とを備えるデータ処理装置。 - 前記第1プロセスを再開する際に用いられる前記1つ以上の状態の内容が、前記第1プロセスを再開するのに十分である、請求項1に記載の装置。
- 前記例外処理回路が、前記第1プロセスの実行の再開に応じて、前記1つ以上のコンテキストデータメモリ領域を読み取り、前記第1プロセスを再開する際に用いられる前記1つ以上の状態の内容を復元する、請求項1又は2に記載の装置。
- 前記例外処理回路が、まだ実行されていないプロセスに切り替える場合は、コンテキストデータメモリの読み取り及び状態データの復元を行わないように構成される、請求項3に記載の装置。
- 前記複数のプロセスに対応する夫々のプロセス記述子エントリを格納するプロセス記述子テーブルを備え、各プロセス記述子エントリが、前記1つ以上のコンテキストデータメモリ領域へのポインタを含む、請求項1〜4のいずれか一項に記載の装置。
- 前記プロセッサ記述子エントリが、対応するプロセスの現在のステータスを示すステータス表示を含む、請求項5に記載の装置。
- 前記現在のステータスが、無効、消去、準備及び実行のうちの1つである、請求項6に記載の装置。
- 前記メモリ領域が物理メモリアドレス空間内のメモリ領域である、請求項1〜7のいずれか一項に記載の装置。
- 前記所定の所有プロセスが、特権レベルに関わらず指定される、請求項1〜8のいずれか一項に記載の装置。
- 前記所有権回路が、前記所定の所有プロセスよりも高い特権レベルを有するプロセスによる前記所定のメモリ領域へのアクセスを前記所定の所有プロセスが拒否することを許可する、請求項9に記載の装置。
- 前記所定のメモリ領域を新たな所定の所有プロセスに割り当てることには、前記新たな所定の所有プロセスが前記排他的な権利を取得する前に、前記所定のメモリ領域内に格納されたデータを上書きすることが含まれる、請求項1〜10のいずれか一項に記載の装置。
- 前記上書きが前記新たな所定の所有プロセスによって行われ、前記新たな所有者が前記排他的な権利を取得する前に前記上書きが確実に完了するように、上書き追跡ハードウェアが前記上書きの完了を追跡する、請求項11に記載の装置。
- 前記複数のプロセスのうちのどのプロセスがどのメモリ領域を制御する排他的な権利を有するかを示す所有権データを格納する所有権テーブルを備える、請求項1〜12のいずれか一項に記載の装置。
- 所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、前記所定の所有プロセスが、前記所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使する所有権手段と、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こすための例外処理手段であって、これによって、前記第1プロセスを再開する際に用いられる1つ以上の状態の内容が、前記第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、前記第2プロセスがアクセス可能であり前記第1プロセスの処理に依存する1つ以上の状態の内容が、前記第2プロセスの実行開始より前に上書きされる例外処理手段とを備えるデータ処理装置。 - 所定のメモリ領域が、複数のプロセスの中から指定された所定の所有プロセスを有し、前記所定の所有プロセスが、前記所定のメモリ領域へのアクセスを制御する排他的な権利を有する、メモリ領域の所有権利を行使することと、
割り込みの受信に応じて第1アクティブプロセスから第2アクティブプロセスへのコンテキストスイッチを引き起こし、これによって、前記第1プロセスを再開する際に用いられる1つ以上の状態の内容が、前記第1プロセスによって所有される1つ以上のコンテキストデータメモリ領域に保存され、前記第2プロセスがアクセス可能であり前記第1プロセスの処理に依存する1つ以上の状態の内容が、前記第2プロセスの実行開始より前に上書きされることとを含むデータ処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1510531.5 | 2015-06-16 | ||
GB1510531.5A GB2539433B8 (en) | 2015-06-16 | 2015-06-16 | Protected exception handling |
PCT/GB2016/051166 WO2016203188A1 (en) | 2015-06-16 | 2016-04-26 | Protected exception handling |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018523211A true JP2018523211A (ja) | 2018-08-16 |
Family
ID=53784797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017564103A Pending JP2018523211A (ja) | 2015-06-16 | 2016-04-26 | 保護された例外処理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10838877B2 (ja) |
EP (1) | EP3311271B1 (ja) |
JP (1) | JP2018523211A (ja) |
KR (1) | KR102592377B1 (ja) |
CN (1) | CN107690621B (ja) |
GB (1) | GB2539433B8 (ja) |
IL (1) | IL255646B (ja) |
TW (1) | TWI714582B (ja) |
WO (1) | WO2016203188A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423418B2 (en) * | 2015-11-30 | 2019-09-24 | International Business Machines Corporation | Method for maintaining a branch prediction history table |
GB2547912B (en) * | 2016-03-02 | 2019-01-30 | Advanced Risc Mach Ltd | Register access control |
US10489296B2 (en) | 2016-09-22 | 2019-11-26 | International Business Machines Corporation | Quality of cache management in a computer |
US10664306B2 (en) | 2017-01-13 | 2020-05-26 | Arm Limited | Memory partitioning |
US10268379B2 (en) * | 2017-01-13 | 2019-04-23 | Arm Limited | Partitioning of memory system resources or performance monitoring |
US10394454B2 (en) * | 2017-01-13 | 2019-08-27 | Arm Limited | Partitioning of memory system resources or performance monitoring |
US10649678B2 (en) * | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
US20180203807A1 (en) | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
TWI696078B (zh) * | 2017-05-26 | 2020-06-11 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
GB2563883B (en) | 2017-06-28 | 2019-10-09 | Advanced Risc Mach Ltd | Invalidation of a target realm in a realm hierarchy |
WO2019002816A1 (en) * | 2017-06-28 | 2019-01-03 | Arm Limited | LOCKING REGION OF MEMORY |
GB2563885B (en) * | 2017-06-28 | 2019-10-23 | Advanced Risc Mach Ltd | Interrupting export of memory regions |
US10664400B2 (en) | 2017-07-11 | 2020-05-26 | Arm Limited | Address translation cache partitioning |
US11687654B2 (en) * | 2017-09-15 | 2023-06-27 | Intel Corporation | Providing isolation in virtualized systems using trust domains |
GB2568729B (en) * | 2017-11-24 | 2020-03-11 | Advanced Risc Mach Ltd | Scrub-commit state for memory region |
GB2578158B (en) * | 2018-10-19 | 2021-02-17 | Advanced Risc Mach Ltd | Parameter signature for realm security configuration parameters |
US11461244B2 (en) * | 2018-12-20 | 2022-10-04 | Intel Corporation | Co-existence of trust domain architecture with multi-key total memory encryption technology in servers |
US11003483B1 (en) * | 2019-06-28 | 2021-05-11 | Amazon Technologies, Inc. | Parameterized launch acceleration for compute instances |
US11256625B2 (en) | 2019-09-10 | 2022-02-22 | Arm Limited | Partition identifiers for page table walk memory transactions |
CN110795241B (zh) * | 2019-10-18 | 2022-07-19 | 北京并行科技股份有限公司 | 一种作业调度管理方法、调度中心和系统 |
CN114385528A (zh) * | 2020-10-16 | 2022-04-22 | 瑞昱半导体股份有限公司 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
CN114385529A (zh) * | 2020-10-16 | 2022-04-22 | 瑞昱半导体股份有限公司 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064462A (ja) * | 2008-10-27 | 2009-03-26 | Toshiba Corp | マイクロプロセッサ |
JP2013232151A (ja) * | 2012-05-01 | 2013-11-14 | Renesas Electronics Corp | メモリ保護回路、処理装置、およびメモリ保護方法 |
US20140230077A1 (en) * | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
JP2014532201A (ja) * | 2011-10-13 | 2014-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想ゲストのメモリ保護の方法、システムおよびコンピュータプログラム |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3454854B2 (ja) | 1992-01-16 | 2003-10-06 | 株式会社東芝 | メモリ管理装置及び方法 |
JP2007280421A (ja) | 1994-09-09 | 2007-10-25 | Renesas Technology Corp | データ処理装置 |
US5623632A (en) | 1995-05-17 | 1997-04-22 | International Business Machines Corporation | System and method for improving multilevel cache performance in a multiprocessing system |
US5815701A (en) | 1995-06-29 | 1998-09-29 | Philips Electronics North America Corporation | Computer method and apparatus which maintains context switching speed with a large number of registers and which improves interrupt processing time |
US5754762A (en) * | 1997-01-13 | 1998-05-19 | Kuo; Chih-Cheng | Secure multiple application IC card using interrupt instruction issued by operating system or application program to control operation flag that determines the operational mode of bi-modal CPU |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
JP2000276405A (ja) | 1999-01-19 | 2000-10-06 | Matsushita Electric Ind Co Ltd | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム |
JP2001297035A (ja) | 2000-04-11 | 2001-10-26 | Hitachi Ltd | 情報処理装置 |
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US7631160B2 (en) * | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6789156B1 (en) | 2001-05-22 | 2004-09-07 | Vmware, Inc. | Content-based, transparent sharing of memory units |
US6745307B2 (en) | 2001-10-31 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method and system for privilege-level-access to memory within a computer |
US6854039B1 (en) | 2001-12-05 | 2005-02-08 | Advanced Micro Devices, Inc. | Memory management system and method providing increased memory access security |
JP3866597B2 (ja) * | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
US7278030B1 (en) | 2003-03-03 | 2007-10-02 | Vmware, Inc. | Virtualization system for computers having multiple protection mechanisms |
US7503049B2 (en) * | 2003-05-29 | 2009-03-10 | Panasonic Corporation | Information processing apparatus operable to switch operating systems |
US20050091658A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
US7356665B2 (en) | 2003-12-17 | 2008-04-08 | International Business Machines Corporation | Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines |
US9152785B2 (en) | 2004-01-30 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Providing a flexible protection model in a computer system by decoupling protection from computer privilege level |
TWI258662B (en) | 2004-03-03 | 2006-07-21 | Faraday Tech Corp | Method and apparatus of determining whether a virtual address corresponds to a physical address in a translation lookaside buffer |
JP2005275629A (ja) | 2004-03-23 | 2005-10-06 | Nec Corp | マルチプロセッサシステム、及び、メモリアクセス方法 |
US7401230B2 (en) * | 2004-03-31 | 2008-07-15 | Intel Corporation | Secure virtual machine monitor to tear down a secure execution environment |
US7330942B2 (en) | 2004-07-31 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method for efficient virtualization of physical memory in a virtual-machine monitor |
US7334076B2 (en) | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
US20060294288A1 (en) * | 2005-06-24 | 2006-12-28 | Rohit Seth | System and method for using protection keys to emulate a large region identifier space |
JP2007004661A (ja) * | 2005-06-27 | 2007-01-11 | Hitachi Ltd | 仮想計算機の制御方法及びプログラム |
US8423747B2 (en) | 2008-06-30 | 2013-04-16 | Intel Corporation | Copy equivalent protection using secure page flipping for software components within an execution environment |
US7545381B2 (en) * | 2005-11-10 | 2009-06-09 | Via Technologies, Inc. | Interruptible GPU and method for context saving and restoring |
US7702743B1 (en) | 2006-01-26 | 2010-04-20 | Symantec Operating Corporation | Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes |
US7950020B2 (en) | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
US7870336B2 (en) * | 2006-11-03 | 2011-01-11 | Microsoft Corporation | Operating system protection against side-channel attacks on secrecy |
US8380987B2 (en) | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
US8001336B2 (en) * | 2007-03-02 | 2011-08-16 | International Business Machines Corporation | Deterministic memory management in a computing environment |
KR100874948B1 (ko) * | 2007-06-18 | 2008-12-19 | 한국전자통신연구원 | 권한 수준 위반 프로세스 관리 장치 및 방법 |
WO2009001153A1 (en) | 2007-06-28 | 2008-12-31 | Nokia Corporation | Memory protection unit in a virtual processing environment |
US7856536B2 (en) | 2007-10-05 | 2010-12-21 | International Business Machines Corporation | Providing a process exclusive access to a page including a memory address to which a lock is granted to the process |
US8195912B2 (en) | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
US7966453B2 (en) | 2007-12-12 | 2011-06-21 | International Business Machines Corporation | Method and apparatus for active software disown of cache line's exlusive rights |
GB2460393B (en) * | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
GB2484416B (en) | 2009-06-26 | 2015-02-25 | Intel Corp | Optimizations for an unbounded transactional memory (utm) system |
US9077654B2 (en) | 2009-10-30 | 2015-07-07 | Iii Holdings 2, Llc | System and method for data center security enhancements leveraging managed server SOCs |
GB2474666B (en) | 2009-10-21 | 2015-07-15 | Advanced Risc Mach Ltd | Hardware resource management within a data processing system |
US20110289294A1 (en) * | 2009-12-14 | 2011-11-24 | Manabu Maeda | Information processing apparatus |
US8719543B2 (en) * | 2009-12-29 | 2014-05-06 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US8793439B2 (en) | 2010-03-18 | 2014-07-29 | Oracle International Corporation | Accelerating memory operations using virtualization information |
JP5612681B2 (ja) | 2010-05-24 | 2014-10-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 仮想計算機システム、領域管理方法、及びプログラム |
GB2481232A (en) | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
US8392628B2 (en) | 2010-07-16 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Sharing memory spaces for access by hardware and software in a virtual machine environment |
JP5541036B2 (ja) * | 2010-09-21 | 2014-07-09 | 富士通株式会社 | メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置 |
US10013058B2 (en) | 2010-09-21 | 2018-07-03 | Apple Inc. | Touch-based user interface with haptic feedback |
GB2483906C (en) | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
GB2483907A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
US9152573B2 (en) | 2010-11-16 | 2015-10-06 | Vmware, Inc. | Sharing memory pages having regular expressions within a virtual machine |
WO2012117465A1 (ja) | 2011-03-02 | 2012-09-07 | パナソニック株式会社 | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 |
US20130070513A1 (en) * | 2011-09-16 | 2013-03-21 | Advanced Micro Devices, Inc. | Method and apparatus for direct backup of memory circuits |
US9170940B2 (en) | 2011-12-07 | 2015-10-27 | Intel Corporation | Techniques to prelink software to improve memory de-duplication in a virtual system |
GB2497736A (en) * | 2011-12-16 | 2013-06-26 | St Microelectronics Ltd | Hardware monitor with context selector for selecting from multiple contexts |
WO2013101053A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Non-volatile ram disk |
DE102012201225A1 (de) | 2012-01-27 | 2013-08-01 | Continental Automotive Gmbh | Rechnersystem |
TWI480733B (zh) | 2012-03-29 | 2015-04-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US9037558B2 (en) | 2012-05-25 | 2015-05-19 | International Business Machines Corporation | Management of long-running locks and transactions on database tables |
US8825550B2 (en) | 2012-08-23 | 2014-09-02 | Amazon Technologies, Inc. | Scaling a virtual machine instance |
WO2014100279A1 (en) | 2012-12-18 | 2014-06-26 | Dynavisor, Inc. | Dynamic device virtualization |
EP2954419B1 (en) | 2013-02-05 | 2017-03-29 | ARM Limited | Virtualisation supporting guest operating systems using memory protection units |
JP5362145B1 (ja) | 2013-03-29 | 2013-12-11 | 株式会社東芝 | 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法 |
GB2514107B (en) | 2013-05-13 | 2020-07-29 | Advanced Risc Mach Ltd | Page table data management |
GB2515536A (en) * | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
GB2519108A (en) | 2013-10-09 | 2015-04-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling performance of speculative vector operations |
US20150268985A1 (en) * | 2014-03-24 | 2015-09-24 | Freescale Semiconductor, Inc. | Low Latency Data Delivery |
US9575778B2 (en) | 2014-05-20 | 2017-02-21 | Via Alliance Semiconductor Co., Ltd. | Dynamically configurable system based on cloud-collaborative experimentation |
CN104536912B (zh) * | 2014-12-22 | 2017-10-31 | 昆腾微电子股份有限公司 | 在小型操作系统中实现内存保护模式的装置和方法 |
US9589105B2 (en) * | 2015-03-25 | 2017-03-07 | International Business Machines Corporation | Securing protected health information based on software designation |
-
2015
- 2015-06-16 GB GB1510531.5A patent/GB2539433B8/en active Active
-
2016
- 2016-04-26 KR KR1020187000523A patent/KR102592377B1/ko active IP Right Grant
- 2016-04-26 JP JP2017564103A patent/JP2018523211A/ja active Pending
- 2016-04-26 WO PCT/GB2016/051166 patent/WO2016203188A1/en active Application Filing
- 2016-04-26 US US15/578,340 patent/US10838877B2/en active Active
- 2016-04-26 EP EP16720485.8A patent/EP3311271B1/en active Active
- 2016-04-26 CN CN201680033460.1A patent/CN107690621B/zh active Active
- 2016-05-13 TW TW105114881A patent/TWI714582B/zh active
-
2017
- 2017-11-14 IL IL255646A patent/IL255646B/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009064462A (ja) * | 2008-10-27 | 2009-03-26 | Toshiba Corp | マイクロプロセッサ |
JP2014532201A (ja) * | 2011-10-13 | 2014-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想ゲストのメモリ保護の方法、システムおよびコンピュータプログラム |
JP2013232151A (ja) * | 2012-05-01 | 2013-11-14 | Renesas Electronics Corp | メモリ保護回路、処理装置、およびメモリ保護方法 |
US20140230077A1 (en) * | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
Also Published As
Publication number | Publication date |
---|---|
KR20180017095A (ko) | 2018-02-20 |
US20180150413A1 (en) | 2018-05-31 |
GB201510531D0 (en) | 2015-07-29 |
KR102592377B1 (ko) | 2023-10-23 |
EP3311271B1 (en) | 2023-02-22 |
GB2539433B8 (en) | 2018-02-21 |
IL255646A (en) | 2018-01-31 |
TWI714582B (zh) | 2021-01-01 |
EP3311271A1 (en) | 2018-04-25 |
WO2016203188A1 (en) | 2016-12-22 |
GB2539433B (en) | 2017-11-29 |
US10838877B2 (en) | 2020-11-17 |
CN107690621A (zh) | 2018-02-13 |
GB2539433A (en) | 2016-12-21 |
IL255646B (en) | 2020-02-27 |
TW201710903A (zh) | 2017-03-16 |
CN107690621B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6966333B2 (ja) | 安全な初期化 | |
JP6913636B2 (ja) | 共有ページ | |
JP6893479B2 (ja) | 所有権テーブルを用いたデータ処理装置及び方法 | |
JP6738354B2 (ja) | アドレス変換 | |
KR102592377B1 (ko) | 보호된 예외 핸들링 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200306 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200806 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210119 |