TWI714582B - 受保護異常處置 - Google Patents
受保護異常處置 Download PDFInfo
- Publication number
- TWI714582B TWI714582B TW105114881A TW105114881A TWI714582B TW I714582 B TWI714582 B TW I714582B TW 105114881 A TW105114881 A TW 105114881A TW 105114881 A TW105114881 A TW 105114881A TW I714582 B TWI714582 B TW I714582B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- page
- ownership
- given
- access
- Prior art date
Links
Images
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
- 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
- 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
-
- 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)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種用於處理資料之資料處理系統,包含: 所有權電路系統,其強制記憶體區域之所有權,一給定記憶體區域具有在複數個程序之中經指定的一給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取之獨佔權;及 上下文切換電路系統,其響應於一中斷之接收以觸發自一第一活動程序至一第二活動程序之一上下文切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫。
Description
本揭示內容係關於資料處理系統之領域。
已知提供支援一或多個客體執行環境之虛擬化之資料處理系統。舉例而言,已知提供使用超管理器之資料處理系統,該超管理器控制一或多個客體執行環境且對其執行進行排程,該等客體執行環境自身可包括客體作業系統及一或多個客體應用程式。在此類系統之至少一些使用中,期望給定客體執行環境之資料(可能為保密資料)應受保護免遭系統內之其他程序存取。
本揭示內容之至少一些實施例提供一種用於處理資料之設備,包含: 所有權電路系統,其強制記憶體區域之所有權,給定記憶體區域具有在複數個程序之中經指定的給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取之獨佔權;及 異常處置電路系統,其響應於中斷之接收以觸發自第一活動程序至第二活動程序之上下文切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫。
本揭示內容之至少一些其他實施例提供一種用於處理資料之設備,包含: 所有權手段,其用於強制記憶體區域之所有權,給定記憶體區域具有在複數個程序之中經指定的給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取之獨佔權;及 異常處置手段,其用於響應於中斷之接收觸發自第一活動程序至第二活動程序之上下文切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫。
本揭示內容之至少一些其他實施例提供一種處理資料之方法,包含: 強制記憶體區域之所有權,給定記憶體區域具有在複數個程序之中經指定的給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取之獨佔權;及 響應於中斷之接收觸發自第一活動程序至第二活動程序之上下文切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫。
本發明之以上及其他目的、特徵結構及優點將自結合隨附圖式解讀之說明性實施例之以下詳細描述顯而易見。
第1圖示意性說明可由資料處理設備執行之程序之實例。超管理器2可管理多個虛擬機(virtual machine; VM,亦已知為客體作業系統(operating system; OS)或客體OS) 4。各VM 4可管理一或多個應用6。舉例而言,超管理器2可控制位址空間之哪些區域經分配至各虛擬機4且控制虛擬機4之間的切換,例如對各別虛擬機4之間的時間共享處理資源之中斷進行排程。類似地,各VM 4可控制位址空間之哪些區域經分配至在該VM 4下執行的各應用6,且可視需要控制應用之間的切換。
如第1圖中所示,各程序與給定特權等級EL0、EL1、EL2、EL3相關聯。在此實例中,編號較高之特權等級比編號較低之特權等級特權更高,儘管在其他實例中可能以相反方式編號。在此實例中,應用6以特權等級EL0執行,VM 4以特權等級EL1執行且超管理器2以特權等級EL2執行。通常,以較高特權等級執行之程序具有以較低特權等級執行之程序不可用之權限。
如第1圖中所示,超管理器2、VM 4及設備6可在正常域中操作。另外,設備可支援自正常域分割之安全域以使得在正常域中執行的程序無法存取與安全域相關聯之資料或指令。因此,亦可存在在安全域中執行之程序,諸如安全作業系統(operating system; OS) 10及在安全OS 10控制下之安全域中執行的可信賴應用12。安全OS 10及可信賴應用12分別以特權等級S-EL1、S-EL0執行。亦以特權等級EL3提供安全監視器程序14以管理正常域與安全域之間的轉化。安全監視器程序14可例如管理位址空間之哪些區域與安全或非安全域相關聯,同時提供一些保護硬體以防止正常域中之非安全程序存取安全區域內之資料或指令。用於分割正常與安全域之技術之實例為由英國ARM® Limited of Cambridge提供之Trustzone®技術,儘管也可以使用其他實例。如第1圖中所示提供安全域為可選的且其他實施例例如可能不支援安全監視器14、安全OS 10及可信賴應用12。
程序2、4、6、10、12、14各使用虛擬位址(virtual address; VA)以識別資料儲存器(諸如記憶體)中待存取之位置。VA經轉換成實體位址(physical address; PA),其直接識別對應的儲存位置。對於應用6或虛擬機4,VA首先經轉換成中間實體位址(intermediate physical address; IPA),且隨後IPA經轉換成PA。舉例而言,藉由提供兩個等級之位址轉換,虛擬機4可控制用於VA至IPA轉換之頁表以控制位址空間之哪些部分經分配至各應用6,且超管理器2可控制用於IPA至PA轉換之頁表以控制位址空間之哪些部分經分配至各虛擬機4。對於其他程序2、14、10、12,VA直接轉換成PA,其中例如超管理器2 (在正常域中)或安全OS 10 (在安全域中)控制頁表,該等頁表控制各程序可存取位址空間之哪些部分。
因此,可能存在多個可由資料處理設備執行之程序。在典型系統中,對位址空間之存取之控制以「自上而下(top down)」方式管理,處於較高特權等級之程序控哪些位址可由處於較低特權等級之程序存取。舉例而言,處於EL2之超管理器2設定存取許可,其定義哪些位址可由處於EL1之虛擬機4存取。然而,以較高特權等級執行之程序通常可讀取或寫入與在其下執行之處於較低特權等級之各程序相關聯的所有位址。此可能為以較低特權等級操作之程序之開發者帶來安全問題。舉例而言,在實施由不同方提供之多個虛擬機4之雲端平臺中,各方中之一者可能希望防止與虛擬機4相關聯之資料或編碼曝露於可能由不同方(諸如雲端操作者)提供的超管理器2。
本申請案介紹「盲超管理器(blind hypervisor)」之概念,該超管理器仍管理虛擬機4且控制其可存取位址空間之哪些部分,但不一定能够查看與給定虛擬機4相關聯之所有資料。類似地,對於以其他特權等級操作之程序,以較高特權等級執行之程序可被阻止存取由以較低特權等級執行之程序使用的位址。
第2A圖及第2B圖(其顯示單個圖示之左部分及右部分)顯示包含多個匯流排主控器之資料處理設備20之實例,該等匯流排主控器包括一些用於響應於指令處理資料之處理電路。在此實例中,處理電路包括兩個中央處理單元(central processing unit; CPU)24、圖形處理單元(graphics processing unit; GPU)25及安全複合體28,其為用於管理某些安全功能之專用處理單元,如下文中將論述。匯流排主控器亦包括可代表處理電路中之一者執行處理任務之其他裝置,諸如直接記憶體存取(direct memory access; DMA)控制器26或輸入/輸出(input/output; I/O)介面(第2A圖及第2B圖中未顯示),其例如用於控制資料至外部裝置之輸入或輸出。應瞭解亦可提供其他類型之主裝置。系統匯流排30將每個匯流排主控器與控制記憶體34之存取的記憶體控制器(memory controller; DMC)32耦合。在此實例中,使用動態隨機存取記憶體(dynamic random access memory; DRAM)實施記憶體,但亦可提供其他形式之記憶體或其他類型之資料儲存器。各匯流排主控器24、25、26、28可經由匯流排30向記憶體控制器32發起資料存取異動(讀取或寫入),且控制器控制記憶體34以服務異動。
提供多個快取記憶體36以用於快取處理電路24、25之本端資料或指令。CPU 24各具有其自身1級指令快取記憶體及1級資料快取記憶體,但共享2級快取記憶體。GPU 25具有用於快取資料或指令之快取記憶體36。應瞭解此僅為可使用之可能的快取記憶體階層之實例且其他配置為可能的。各處理電路(CPU或GPU) 24、25亦具有用於在虛擬位址(virtual address; VA)、中間實體位址(intermediate physical address; IPA)與實體位址(physical address; PA)之間進行轉換且強制由某些程序使用頁表設定之存取許可,如將在下文中更詳細地論述。
CPU 24及GPU 25可執行來自上文中關於第1圖論述之程序類型中之任一者之指令。第1圖之每個程序2、4、6、10、12、14均可稱為「盲域」(blind domain; BD)且具有對應的盲域識別符(blind domain identifier; BDID)。對於一些程序,BDID可任意分配至各別程序。舉例而言,可僅對超管理器2、安全監視器14或安全OS 10指定對應之BDID值。然而,對於其他程序,BDID可為已經指定至個別程序之現有識別符之序連連接。舉例而言,用於在特定虛擬機4下執行之給定應用6之BDID可至少部分地由與彼應用相關聯之應用空間識別符(application space identifier; ASID)及虛擬機識別符(virtual machine identifier; VMID)形成。指示程序與安全域抑或正常域相關聯之安全位元S亦可包括在BDID中。總而言之,各程序可使用其對應的BDID而唯一地識別。
在記憶體34內提供盲域描述符表(blind domain descriptor table; BDDT) 42以追蹤各BD 2、4、6、10、12、14之狀態。舉例而言,對於各BDID,BDDT 42可將盲域之狀態指定為以下各者中之一者:· 無效
:對於此BDID尚未建立盲域;· 清除
:BDID系由安全複合體28主張(如下文所描述,此可包括進行重寫程序以重寫在記憶體34中與先前使用相同BDID之程序相關聯之任何資料);· 準備
:安全複合體28初始化與彼BDID相關聯之BD以使BD準備好執行;· 執行
:BD已經初始化且準備好執行或被執行。
舉例而言,BDDT 42可為各BDID指定2位元狀態欄位以識別對應盲域之狀態。在下文中更詳細地描述盲域之狀態之生命週期。由ASID識別之應用之BDDT條項可使用VMID至ASID間接表追蹤,該表將給定虛擬機4之VMID映射至在彼虛擬機6下執行之應用6之ASID。應瞭解BDDT 42亦可包括與給定BD相關聯之其他資訊,而非僅僅上文提及之狀態識別符。
各盲域(blind domain; BD)可保護其資料或指令隔開任何其他盲域。任何BD可要求其成為實體位址空間之選定頁之持有者BD。頁所有權表(page ownership table; POT) 50儲存在記憶體34中,其追蹤哪些BD (若存在)為記憶體之各實體頁之持有者BD。記憶體之給定頁之持有者BD (亦稱為持有者程序)具有控制彼頁之存取之獨佔權。舉例而言,持有者BD可設定在頁所有權表50中之控制其他BD能否存取該頁之屬性。各匯流排主控器均具備保護硬體60、62,其用於強制由給定頁之持有者BD設定之許可屬性,其防止在該等存取請求違反由持有者BD控制之限制的情況下來自其他BD之以彼頁為目標之存取請求輸出至匯流排30上。以此方式,任何程序均可防止其他程序(包括較高特權等級程序)存取其資料或指令。
如第2A圖及第2B圖中所示,頁所有權表(page ownership table; POT) 50包括多個條項52,其各自對應於實體位址空間之不同頁。POT 50為由實體位址索引。POT 50之各條項52包括以下資訊: · 持有者BDID欄位54,其指定擁有對應實體頁之BD之BDID; · 屬性欄位56,其指定一或多個用於控制對對應實體頁之存取之屬性。此等屬性由在BDID欄位54中識別之持有者BD設定; · 位址欄位58:對於持有者BD使用虛擬位址或中間實體位址(例如,應用6、12或虛擬機4)之頁,位址欄位58在該頁由持有者BD主張時指定映射至對應實體頁之實體位址之VA或IPA; · 頁狀態欄位(未在第2A圖及第2B圖中說明):其指示對應頁之狀態。舉例而言,各實體頁可處於以下狀態中之一者: O無效
:不由任何BD所有; O主張中
:處於由BDID欄位54中指示之BD主張的過程中,但尚未經有效地擁有; O有效
:由BDID欄位54中所指示之BD有效地擁有。 · 視需要的主張計數欄位60,其追蹤在主張頁之所有權時進行重寫程序期間經重寫之頁之行數(其更多細節在下文中描述)。 亦可能在不同位置中儲存主張計數器60,諸如在CPU 24或GPU 25之緩存器或記憶體34中之堆疊結構內,以使得若需要時主張計數欄位60可自POT 50省略。
給定頁之POT條項52之屬性欄位56由彼頁之持有者BD設定,以向持有者BD提供對其他BD存取該頁之方式之獨佔性控制。屬性欄位56可包括用於控制對對應頁存取之一系列屬性,例如: · 共享屬性,其指示除持有者BDID以外的程序可存取該頁。舉例而言,共享屬性可指定以下頁類型中之一者: O專用
:頁僅可由在BDID欄位54中識別之持有者BD存取; OIO
:頁僅可由在BDID欄位54中識別之持有者BD及已經持有者BD主張之任何裝置26存取(參見下文中對主張裝置所有權之論述); O共享
:頁可由持有者BD及一或多個選定其他BD但不由任何其他BD存取。選定其他BD可藉由屬性欄位56之其他屬性或藉由自頁所有權表50分別儲存之控制資料來識別。 O全域
:頁可由任何BD存取。 · 讀/寫屬性,其指示當允許除持有者BD以外的BD存取頁時,彼BD對該頁具有唯讀存取及(或)讀/寫存取。 · 加密屬性,其指示應用於寫入對應實體頁之資料之加密等級。
如第2A圖及第2B圖中所示,記憶體控制器32可包括加密電路系統56,其用於加密寫入記憶體34之資料並解密讀取自記憶體34之資料。加密電路系統56可維持多個保密加密密鑰且各BDID可具有其自身之密鑰。加密電路系統56支援多個不同的加密等級,自根本不加密(資料不受阻礙地寫入記憶體中)至連續變強之加密形式。大體上,加密愈強,安全性愈高,但在加密及解密資料中消耗較多資源。
在一些實施例中,給定BD可對其所擁有之所有頁指定相同的加密等級。若BD所擁有之所有頁之加密等級相同,則替代方案為,在BDDT 42中之彼BD條項中而非在該BD擁有之頁之各POT條項52中指定加密等級。然而,指定頁表中之加密等級允許達成較快效能,因為隨後加密電路系統56僅需讀取一個表50以識別頁之持有者BD及加密等級兩者,而非讀取POT 50及BDDT 42。
然而,在其他實施例中,持有者BD可對其所有之不同頁指定不同加密等級。藉由允許持有者BD按頁選擇特定頁所需之加密等級,最強加密可預留給真正需要加密之頁,且儲存較不敏感資訊之頁可使用較弱加密等級以節約能量。此允許較好的安全與能量平衡。
因此,在寫入時,加密電路系統56檢查目標位址之POT條項52以決定應用於對應頁之加密等級。加密電路系統56選擇用於彼POT條項52之BDID 54欄位中指示之持有者BD之適當加密密鑰,且使用該密鑰及指定加密等級加密資料,隨後將加密資料寫入至記憶體34。類似地,在讀取存取時,加密電路系統56檢查對應頁之POT條項52以決定所需解密等級及應使用哪一持有者BD密鑰來解密、解密自記憶體34讀取之資料且隨後將解密資料經匯流排30輸出至請求資料之主控器。
因此,各程序均可成為實體位址之對應頁之持有者且具有對其他程序可否存取彼頁之獨佔性控制,包括對特權等級較高程序之控制。此使得例如虛擬機4能够防止超管理器2存取其資料或指令,從而解決上文論述之問題。
頁所有權表50中之策略設定之強制由與各處理電路24、25、28相關聯之盲域管理單元(blind domain management unit; BDMU) 60來進行。如第3圖中所示,BDMU 6可充當異動驗證之進一步階段,其對已通過由記憶體管理單元(memory management unit; MMU) 40進行之任何檢查之異動進行操作。
如第3圖中所示,MMU 40可包括階段1 MMU (stage 1 MMU; S1MMU) 40-1及階段2 MMU (stage 2 MMU; S2MMU) 40-2用於分別提供位址轉換之兩個階段。至MMU之異動輸入包含待存取之虛擬位址70、指定異動為讀取還是寫入異動之異動類別屬性72、識別發起異動之應用6之ASID 73及識別應用6在其下執行之虛擬機4的VMID 74。ASID及VMID可一起被認為形成上下文識別符,其識別異動在其中執行之上下文。
S1MMU 40-1查找階段1轉換旁看緩衝(stage 1 translation lookaside buffer ; S1TLB)中之虛擬位址70及ASID 73,該階段1轉換旁看緩衝為S1MMU內之本端快取記憶體,其用於快取來自儲存在記憶體34中之階段1 (stage 1; S1)頁表80之條項子集。在正常域中,S1頁表80由控制應用6之虛擬機4設定,且在安全域中,S1頁表80由安全OS 10設定。各S1頁表條項指定用於虛擬位址空間之對應頁之VA-PA或VA-IPA映射,且指定對應ASID具有對於對應頁之讀取抑或寫入許可之屬性。若S1TLB不含有用於VA 70及ASID 73之對應條項,則進行頁表走查以將所需條項自S1頁表80擷取。一旦所需條項處於S1TLB中,S1MMU 40-1即檢查對於指定ASID 73及虛擬位址70是否准許由讀/寫屬性72指定之類別的存取。若不准許存取,則異動被拒絕且可能發信通知階段1存取違規。另一方面,若滿足許可,則輸出對應於輸入VA 70之經轉換的PA或IPA 75。
若以例外等級S-EL0、S-EL1、EL2或EL3中之一者發起輸入異動,則S1MMU 40-1之輸出為PA且可繞過階段2 MMU 40-2。
然而,若以EL0或EL1執行之應用6或虛擬機4發起輸入異動,則S2MMU 40-2進行進一步位址轉換及存取許可檢查。S2MMU 40-2包括階段2 TLB (stage 2 TLB; S2TLB),其快取來自記憶體34中之階段2 (stage 2; S2)頁表82之條項子集。S2頁表82由超管理器2(用於正常域)或安全OS 10(用於安全域)設定。S2MMU 40-2查找S2TLB以檢查是否存在用於指定IPA 75及VMID 74之條項,且若不存在,則進行頁表走查以自S2頁表82擷取所需條項。當所需條項處於S2TLB中時,S2MMU 40-2檢查是否准許屬性72中所指定的類型之異動,且若准許,則輸出對應於IPA 75之經轉換的PA 76。若異動不被准許,則標記階段2存取違規且異動被拒絕。
因此,MMU 40-1、40-2之各階段均可視為存取控制電路系統,其用於檢查存取請求是否滿足由處於給定特權等級之預定程序設定之存取許可(例如,S1MMU 40-1強制由虛擬機4或安全OS 10設定之許可,且S2MMU 40-2強制由超管理器2設定之許可)。
實體位址76隨後傳遞至BDMU 60以強制由用於實體位址空間之對應頁之POT 50中之持有者BD設定的任何存取控制。以與MMU 40之各階段內TLB類似之方法,BDMU 60可包括用於自記憶體34快取POT 50及BDDT 42之部分的旁看緩衝(參見下文第9圖)。因此,當接收到實體位址76時(自來自EL2、EL3或S-EL1之實體編址異動,或由MMU 40轉換自VA或IPA),BDMU 60檢查所需POT條項及BDDT條項是否在各別旁看緩衝中,且若不在,則自記憶體34擷取所需條項。一旦所需條項可用,即使用如下一系列檢查驗證實體位址: · BDMU 60檢查當前上下文BD (自其産生異動之BD)是否為BDDT 42中之有效上下文。舉例而言,BDMU 60可自VMID 74及ASID 73形成當前上下文BD之BDID並檢查對應BDID是否在BDDT 42中標記為「執行」狀態。 · BDMU 60檢查當前上下文BD是否顯示為對應於實體位址76之POT條項52之持有者BD 54。 · 若當前上下文BD不為持有者BD,則BDMU 60檢查當前上下文BD是否由持有者BD准許存取頁(使用上文所描述之共享屬性)。 · 若當前上下文BD不為持有者BD,則BDMU 60檢查對應POT條項之讀/寫屬性以決定屬性72中指定類型之異動是否由持有者BD准許。 · 若當前上下文BD為持有者BD,則BDMU 60檢查具備輸入異動之VA 70或IPA 75是否與對應POT條項52之位址欄位58中之VA/IPA匹配。 · BDMU 60亦檢查在S1頁表中指定用於當前存取之預期共享屬性是否與對應POT條項中指定之實際共享屬性匹配。 若此等檢查中之任一者失敗,則存取被拒絕且觸發存取違規。否則,實體位址異動經驗證且輸出至系統匯流排30上。應瞭解上文所描述之檢查可以任何次序進行或可至少部分地同時進行。
類似地,BD過濾器62可控制以實體位址空間之特定頁為目標之異動是否經輸出至系統匯流排30上,其系基於彼頁之持有者是否已在對應POT條項52之屬性欄位56中將該頁標記為「IO」型。
因此,如第4圖中所示,耦合至系統匯流排30之各匯流排主控器24、25、26、28可具備BDMU 60或BD過濾器62以用於驗證實體編址異動,以使得所有輸出在系統匯流排上之異動均為指定實體位址的經驗證的異動且因此在記憶體控制器32處不需要任何後續驗證。替代方案為將BDMU功能60移動至記憶體控制器32以使得已由MMU 40驗證但尚未與由頁持有者在POT 50中設定之任何許可相比較之異動經輸出至匯流排上,且隨後當其達至記憶體控制器32時針對POT 50接受檢查。然而,提供BDMU 60為有利的,因為其藉由防止通不過POT 50檢查之異動輸出至匯流排上,及避免需要將額外標記自匯流排主控器傳輸至識別與各異動相關聯之當前上下文BD之記憶體控制器而減少匯流排傳輸量。相反地,在記憶體控制器32處提供加密/解密電路系統56以使得寫入記憶體之資料可經加密以防止硬體攻擊,但匯流排主控器24、25、26、28自身不需要具有任何加密功能。
第5圖顯示檢查是否准許由處理電路24中之一者發起之資料存取異動(存取請求)之方法。在步驟100,接收指定VA 70之輸入異動。在步驟102,S1MMU 40-1查找用於對應於條項VA 70及當前上下文(VMID、ASID)之條項之S1TLB。S1MMU 40-1檢查在彼條項中是否存在對存取許可設定之違規。若存在S1存取違規,則異動請求在步驟104被拒絕。若不存在S1存取違規,則輸出經轉換之IPA或PA。此外,頁之PISG狀態(預期共享屬性)由S1MMU 40-1輸出,如將在下文中更詳細地論述。若異動以EL2、EL3、S-EL0或S-EL1發起,則經轉換之位址為PA且略過S2MMU 40-2。若異動以EL0或EL1發起,則輸出位址為IPA且進行位址轉換之第二階段。在此情況下,S2MMU MMU 40-2類似地查找用於對應於IPA 75及當前上下文(VMID)之條項之S2TLB。彼條項中之存取許可經檢查且若存在存取違規,則請求再一次在步驟104被拒絕。若存取由S2MMU 40-2准許,則IPA經轉換成輸出至BDMU 60之PA 76。
因此,在階段1或階段2位址轉換時不存在存取違規之前提下,獲得實體位址。在步驟112,向BDMU 60提供實體位址,其檢查當前上下文之BDID是否在BDDT 42中顯示為「執行」狀態。若不顯示為「執行」狀態,則在步驟114請求被拒絕。為了進展至執行狀態,BDID將首先需要進展通過「清除」及「準備」狀態,如將在下文中論述。此驗證BDID之步驟藉由為尚未安全初始化之BDID發起存取而防止安全初始化程序被撤銷。此外,快取一些最近被查找之BDDT 42條項之本端旁看緩衝可維持在BDMU 60內以加速BDDT條項之檢查。
若當前上下文之BDID經驗證為處於「執行」狀態,則在步驟116,BDMU 60檢查對應於所需實體位址76之POT條項52 (記法POT [PA]系指對應POT條項52)。此外,此可在提供於BDMU 60內之本端POT旁看緩衝內存取,該本端POT旁看緩衝用於快取記憶體最近遭遇之POT條項之子集以用於較快存取。BDMU檢查對應POT條項52是否將當前上下文之BDID識別為目標頁之持有者BD。若不然,則在步驟118,BDMU檢查對應POT條項52之共享屬性經標記為「全域」或與當前上下文之具體BDID「共享」。BDMU 60亦可檢查存取請求之讀/寫類型是否與針對對應POT條項52之屬性欄位56中之BD而非持有者所定義之准許類型匹配。若通過此等檢查,則在步驟120,BDMU驗證異動且將其輸出至系統匯流排30上。另一方面,若頁不與當前上下文之BDID共享(例如,頁為專用的或僅與不同BD共享)或存取請求指定寫入但頁經標記為唯讀,則請求在步驟114被拒絕。
另一方面,若在步驟116,當前上下文為對應頁之持有者BD,則不需要檢查共享屬性56,因為持有者BD經准許存取其自身之頁。然而,在步驟122,若異動源處於特權等級EL0、EL1或S-EL0下,則BDMU 60檢查異動之VA或IPA是否與儲存在對應POT條項52之位址欄位58中之VA或IPA匹配。對於在EL0或S-EL0下發起之異動,BDMU 60檢查異動之VA是否與位址欄位58中之VA匹配,而對於在EL1下發起之異動,BDMU 60檢查異動之IPA是否與位址欄位58中之IPA匹配。若存在匹配,則驗證了異動且在步驟120在匯流排30上輸出。若位址不匹配,則請求在步驟114被拒絕。
此針對POT 50中記錄之VA或IPA之上一檢查為何是有用的可能不立即顯而易見。考慮以下情形: 超管理器2可例如將兩個實體編址頁PA0、PA1分配至特定虛擬機4,S2頁表82中之位址映射如下:IPA PA
IPA4 PA1 IPA9 PA0
虛擬機4可隨後取得此等頁兩者之所有權且如下設定POT 50中之共享屬性:PA 共享?
PA0 全域 PA1 專用
虛擬機4可隨後例如包括將敏感資料寫入至IPA4 (VM 4將預期已在POT 50中經標記為專用)以防止其他程序存取此資料的一些代碼。
然而,在VM 4啟動代碼之***分以用於寫入敏感資料之前,超管理器2可如下修改S2頁表82:IPA PA
IPA4 PA0 IPA9 PA8
若VM 4現在使用中間實體位址IPA4執行其代碼之***分,則此現在將被映射至不同的實體位址PA0,其在POT 50中標記為「全域」頁。VM 4將其敏感資料寫入至「全域」頁,從而使此資訊曝露於包括超管理器2本身之任何其他程序。
此問題可藉由在POT 50中提供資訊58來避免,其將用於持有頁之位址映射「鎖定」至某些映射,以使得若另一程序在POT 50中之所有權屬性資訊已經設定之後改變頁表80、82中之位址映射,則可觸發存取違規。舉例而言,當持有者BD主張頁時,在主張頁時的當前VA-PA或IPA-PA映射可使用對應於彼實體編址頁之POT條項52之位址欄位58記錄。在以上實例中,POT 50可為如下:PA 共享? IPA
PA0 全域 IPA9 PA1 專用 IPA4
隨後,當VM 4試圖使用中間位址IPA4存取專用頁時,若超管理器2已同時將IPA4重映射以指向PA0,則此將被偵測到,因為在實體頁PA0之POT條項52中存取之中間位址IPA4現在將與中間位址IPA9匹配。因此,可標記出錯誤且VM 4可停止其安全處理以避免使敏感資訊曝露於其他程序。此避免上文所論述類型之攻擊。VM 4可隨後再次請求IPA4及IPA9之所有權以設定現在映射至此等IPA之實體頁PA0、PA8之所需存取控制許可。
因此,在POT 50中包括反向位址轉換映射可幫助避免上文所描述之由頁表中之變化所導致的類型之攻擊。儘管以上實例論述超管理器修改由虛擬機4持有之頁之頁表映射,但可使用類似技術防止虛擬機4修改由應用6或可信賴應用12持有之頁之頁表映射,在此情況下,VA將儲存在位址欄位58而非IPA中。
儘管未在第5圖中顯示,但驗證異動之方法亦可包括額外步驟,該步驟驗證POT條項52對應於目標PA之「共享」屬性是否與在S1頁表條項中針對對應VA所指定之預期屬性匹配。當頁持有者設定給定頁之共享屬性時(其指示該頁為專用、IO、共享或全域,如上文所論述),此亦可觸發S1頁表之更新以使得對應頁表條項指定對應屬性。在一些情況下,頁表條項最初僅可在S1 TLB中更新,且隨後記憶體中之S1頁表80可隨後在對應頁表條項自S1 TLB中驅逐出時更新。隨後,當對彼頁發起存取請求時,S1 MMU 80可輸出在對應S1頁表條項中指定之預期共享屬性(PISG類型),且BDMU 60可檢查預期共享屬性是否與POT條項52中對應於PA所指定之共享屬性匹配。若存在匹配,則存取請求可經驗證(經受上文所描述之其他檢查)。然而,若實際共享屬性不與S1頁表條項中所指定之預期共享屬性匹配,則存取請求被拒絕。此防止如下潜在攻擊。
舉例而言,給定BD可主張給定實體頁之所有權且將其標記為專用以準備向彼頁寫入敏感資訊。然而,在BD開始寫入敏感資訊之前,另一BD可主張相同頁之所有權且可將彼頁標記為全域。當先前持有者BD隨後試圖向該頁寫入敏感資訊時,由於該頁由當前持有者標記為全域,請求可被驗證,且因此此可能導致敏感資訊曝露於其他程序。此可藉由向對應頁表條項寫入指示彼頁所預期之頁共享類型之資訊,且在存取彼頁時檢查此是否與POT中所記錄之實際共享類別匹配來避免。
在以上實例中,在S1頁表中指定預期共享屬性(PISG類型),但其他實例可在S2頁表中對其進行指定。此外,在一些情況下,一些頁可能具有S1頁表中所指定之預期共享屬性而其他頁具有S2頁表中所指定之共享屬性,此取決於哪一程序設定共享屬性。
總而言之,BDMU 60在MMU 40之上提供額外一層存取許可檢查,以使得異動之驗證要求檢查在MMU 40及BDMU 60兩者中通過。然而MMU 40檢查由處於某些特權等級之程序設定之許可(例如EL1控制S1頁表且EL2控制S2頁表),BDMU 60則強制可由以任何特權等級執行之持有者程序施加至特定頁之許可。因此,儘管超管理器2例如仍可將位址空間之特定區域分配至特定虛擬機4且防止其他VM 4使用S2MMU 40-2及S2頁表存取彼等區域,但虛擬機4本身可藉由在POT 50中設定適宜的許可以控制BDMU 60拒絕任何來自超管理器2之對於彼等頁之請求,來防止超管理器2存取在其經分配之頁「池」內之一些頁。此使得以下系統成為可能:其中各「盲域」可強制其安全性以使得其可針對系統內之任何其他域隱藏資料。
第6圖顯示一方法之實例,藉由該方法,BD可請求其具有寫入存取之實體位址空間之任何頁之所有權。在請求頁之所有權時,相同實體頁之先前持有者可能先前已向彼頁寫入安全資料。為防止資料在頁之所有權於不同BD之間傳送時泄漏,可要求新的持有者在成為該頁之有效持有者之前完成重寫程序150以用於在請求頁之各位置中重寫資料。寫入各位置之特定資料值並不重要,只要重寫先前資料——例如,各位置可經寫入0或任何其他虛設值。藉由要求新的持有者在其可有效地主張所有權之前進行破壞性主張序列以在頁內重寫任何現有資料,即使先前持有給定頁之特定BD已不存在(例如超管理器2可能已結束執行給定VM 4),仍可強制資料之安全性。在一些實例中,可在處理電路系統24、25、28內提供一些專用硬體以在請求頁所有權時進行重寫序列。然而,在下文給出之實例中,與新的持有者BD相關聯之軟體藉由向所主張之頁之各位置觸發一系列寫入來進行重寫,但在處理電路24、25、28中執行彼軟體之一些控制硬體檢查新的持有者BD是否已成功完成重寫程序150且在此完成此操作之前防止該頁在POT 50中經標記為有效。
所有權請求可例如對應於執行所有權主張指令之預期持有者BD,該所有權主張指令指定對應於待主張之頁之位址。在步驟130,接收到所有權請求,其指定VA以識別被請求所有權之頁。在步驟132,MMU 40決定是否對指定頁准許寫入存取,且若MMU 40之階段1或階段2決定寫入存取未經准許,則請求在步驟134被拒絕。因此,BD被阻止主張其本身不允許寫入資料之頁之所有權。若准許了寫入存取,則VA (直接或經由IPA)經轉換成PA且輸出PA。
方法隨後以重寫程序150繼續,該重寫程序150用於在對應於目標PA之頁中之各位置中重寫資料。上文描述之主張計數器60系由控制硬體使用來追蹤重寫程序之進展並計數頁迄今為止已經重寫之行數。在步驟152,重寫計數器60經初始化以指向頁中之第一位址,例如自頁之基準位址偏移為零之位址。在步驟154,控制硬體等待請求程序BD (請求所有權之BD)以觸發寫入。當進行寫入時,在步驟156,控制硬體檢查寫入之目標位址是否正確。舉例而言,控制硬體可要求請求程序BD以固定次序迭代通過頁之各行,因此可僅僅檢查下一位址是否已經寫入(例如寫入偏移是否與增量計數器匹配)。若位址不正確,則在步驟158,所有權請求被拒絕且頁在POT中標記為無效,以防止請求BD例如藉由寫入不在彼頁中之其他位址或反復寫入相同位址而撤銷重寫程序。當所有權請求被拒絕時,若請求程序BD希望再次請求所有權,則其將不得不再次以新的所有權請求開始並正確完成重寫程序150。
若目標位址在步驟156為正確的,則在步驟159,控制硬體使重寫計數器增量。在步驟160,控制硬體檢查請求BD是否已宣告其已完成所有權主張程序。舉例而言,請求BD可執行所有權主張結束指令以標記其已完成重寫程序50。若尚未達至所有權主張末尾,則方法返回步驟154以檢查頁將被重寫之下一行。程序對於頁之各行循環通過步驟154至160多次。最終,請求程序宣告其已完成其重寫程序50,且在步驟162,控制硬體檢查是否已經寫入整頁(例如重寫計數器是否與該頁中之行數匹配)。若尚未經寫入整頁,則所有權請求在步驟158再次被拒絕且頁在POT 50中標記為無效。若已經寫入整頁,則頁在步驟164標記為有效以使得請求程序BD現在成為該頁之有效持有者且因此可獨佔性地控制對該頁之存取。此外,頁之PISG類型(共享屬性)經寫入對應POT條項52。在一些情況下,最近主張之頁最初可預設地經標記為專用,若新的持有者希望將頁變為IO、共享或全域,則需要後續改變屬性(例如,在下文第8圖或第14圖中所示)。或者,可能在最初的所有權請求中指定將對彼頁指定共享屬性之何值。更新共享屬性亦可觸發S1 TLB及/或S1頁表80中之對應頁表條項之更新,以編碼預期共享類別以使得其可在隨後存取記憶體時針對POT共享屬性經驗證。
在步驟166,若請求者BD為處於EL0或S-EL0下之程序,則所有權請求中指定之VA經寫入所主張之頁之POT條項52之位址欄位58,而若請求者BD為處於EL1下之程序,則由MMU獲得之IPA經寫入位址欄位58以鎖定映射至POT中之反向PA-VA或PA-IPA以防止上文所描述類型之攻擊。應瞭解在其他實施例中,步驟166可較早進行,例如在剛接收到所有權請求時進行。類似地,請求者程序之BDID可在第6圖中所示之方法期間的任何時間經寫入POT 50,只要POT條項52不在步驟164之前生效。
以下顯示用於請求者BD執行所有權請求及重寫程序150之假碼之實例: BD.Page.Invalidate(VA1) //使廣播頁失效 BD.Page.Claim.Start(VA1) //請求無效頁 line = (*64byte_ptr) VA1 do while ( line < (VA1 + PAGESIZE) ) DCZ.WT(line++) //頁有序清零 BD.Page.Claim.End(VA1) //使頁生效
第7圖為解釋假碼之流程圖。舉例而言,應用希望主張對應於虛擬位址「VA1」之頁之所有權。在請求所有權之前,請求者BD執行失效指令(BD.Page.Invalidate)以使與位址VA1相關聯之來自BDMU 60內之任何旁看緩衝之任何POT條項失效。此確保在所有權主張之後,舊的資料將不常駐在旁看緩衝中。因此,在第7圖之步驟190,頁最初處於無效狀態。請求者BD隨後執行頁主張開始指令(BD.Page.Claim.Start)以發起所有權請求。此導致實體編址頁PA1 (藉由使用MMU 40轉換VA1獲得其位址)轉化為「主張」狀態。請求者(調用者) BD之BDID經寫入用於頁PA1之POT條項52之BDID欄位54。當前映射至PA1之虛擬位址VA1經寫入位址欄位58。主張計數器初始化為零。
請求程序隨後執行資料清零指令(DCZ.WT)以開始第一重寫操作。在此實例中,資料清零指令一次清零頁之64個字節,但應瞭解其他實例可操作其他大小之資料區塊。在步驟196,控制硬體檢查彼指令之寫入偏移是否與主張計數匹配。若不匹配,則請求被拒絕且頁在步驟190轉化回「無效」狀態,因此請求者BD若要再一次企圖主張所有權則將不得不執行另一BD.Page.Claim.Start指令。另一方面,若寫入偏移與主張計數匹配,則在步驟198,對主張計數器60增量,且請求者BD在步驟194執行另一資料清零指令DCZ.WT。循環步驟196、198、194直至請求者BD執行頁主張結束指令(BD.Page.Claim.End)以發信號通知其已完成所有重寫操作。在步驟198,控制硬體檢查主張計數器與頁中之位址之數目匹配。若選擇主張計數器之位元數目對應於頁面大小,則當均已經寫入對應頁中之所有位置時,主張計數器將溢出,因此控制硬體可僅檢查主張計數器之溢出字節,若其等於1,則將顯示重寫程序已完成。若主張計數器在步驟198尚未溢出,則頁在步驟190再次轉化回無效狀態且請求者BD將不得不再次開始主張所有權。若主張計數器在步驟198已溢出,則在步驟200,頁PA1變為有效且現在持有者可設定此頁之屬性。
當由新的程序循環使用特定BDID時,亦可進行類似的破壞性重寫程序150。舉例而言,為將給定BDID自「無效」狀態轉化為「準備」狀態,BDID首先經轉化為「清除」狀態。當處於「清除」狀態時,硬體可檢查進行重寫程序150以在給定BDID當前顯示為POT 50中之持有者之各頁內重寫各位址。硬體亦可要求使與彼BDID相關聯之各POT條項52均失效。實際重寫操作可由超管理器2或要求建立新BD之其他程序在軟體中執行,但硬體可檢查重寫程序成功完成並防止BDID在其已成功完成之前轉化為「準備」狀態。此防止與具有彼BDID之舊程序相關聯之敏感資訊泄漏至共享相同BDID之新的程序。
其他實施例可省略「清除」狀態,但自「無效」狀態至「準備」狀態之轉化可在重寫程序已成功完成之前被禁止以將在POT 50中所記錄之各頁中之資料重寫為由對應BDID持有並使與彼BDID相關聯之各POT條項52失效。
第8圖顯示用於給定頁之持有者BD更新POT 50中之屬性之方法。在步驟210,發起POT更新請求,其指定識別目標頁之VA及待寫入彼頁之POT條項52之一或多個屬性。在步驟212,MMU 40檢查是否准許對彼頁之寫入存取,且若S1或S2 MMU 40-1、40-2發信號通知存取違規,則請求被拒絕。若准許寫入存取,則(直接自VA或經由IPA)獲得經轉換之PA。
在步驟222,使用實體位址查找POT 50以決定發起更新請求之當前上下文BD是否為所需頁之持有者BD。若不然,則在步驟224請求被拒絕。
若當前上下文BDID為所需頁之持有者,則在步驟226,針對更新請求(對於起源於EL0、EL1或S-EL0之請求)之VA/IPA檢查位址欄位58,以檢查位址映射是否與分配POT條項52時之位址映射仍然相同。若不然,則在步驟228更新請求被拒絕。若位址匹配,則在步驟230,基於更新請求中指定之屬性更新對應頁所有權表條項之屬性。舉例而言,頁之持有者可改變屬性以使得專用頁現在為共享或共享頁為專用,或可改變對於彼頁是否准許讀取或寫入。若存在共享屬性之更改,則此亦可觸發S1 TLB或頁表80中之S1頁表條項中所記錄之預期共享屬性(PISG狀態)之對應更新。
步驟226為可選的且另一實施例可自步驟222直接繼續至步驟230,因為如上文第5圖中所示,當隨後發起記憶體存取時,可在任何情況下偵測到位址映射之更改。然而,若在更新POT屬性時標記位址映射之更改,則此可更早地向持有者BD標記存在潜在問題。
如第9圖中所示,BDMU 60可具有頁所有權表旁看緩衝(page ownership table lookaside buffer; POTLB) 302,其用於快取POT 50之最近存取之條項,及BDDT旁看緩衝(BDDT lookaside buffer; BDDTLB),其用於快取BDDT 42之最近存取之條項。該等以類似於MMU 40內之TLB 300之方式操作。如第9圖之下部中所示,系統匯流排30及處理單元24、25、28可支援使POTLB 302或BDDTLB 304之條項失效之失效指令。當處理單元24、25、28執行此等指令中之一者時,在匯流排30上向系統中之每個BDMU 60廣播命令以觸發各BDMU 60以使來自TLB 302、304之條項失效。指令310、312系用於使POTLB 302之條項失效。其可在例如即將主張頁之所有權或更新POT 50中之屬性之前使用。指令310觸發BDMU 60以使其來自POTLB 302之所有條項失效。指令312觸發BDMU 60以僅使對應於指定頁位址之POTLB 302之條項失效(若指令指定VA或IPA,則其由MMU轉換為PA且實體編址失效異動經廣播至BDMU 60以使對應POT條項失效)。類似地,指令314、316用於使BDDTLB 304之條項失效,其中指令314觸發BDDTLB 304之所有條項之失效且指令316僅使與指定BDID相關聯之條項失效。在失效之後,當遭遇請求特定BDID或頁之後續存取請求時,將需要自記憶體34中之主BDDT 42或POT 50擷取對應條項。
在一些情況下,類似的失效命令可由於由給定BD執行之其他指令自動産生。舉例而言,當程序執行失效指令以使POT 50之條項失效時,此可自動導致由處理電路24、25、BDMU 60或記憶體控制器32內之硬體産生廣播失效命令以觸發BDMU 60中之條項之對應失效。類似地,POT條項之更新或BD狀態中之生命週期更新或更改可導致BDMU 60中之POT或BDDT條項之失效。
上文已論述一些具體實例。然而,本技術不限於此等精確實例。例如,以上實例以頁為單位管理記憶體區塊之所有權,但POT 50可具有對應於一些其他大小之實體位址區塊(其可為頁之倍數或可對應於更多任意位址區塊,其不一定需要與MMU 40所用之相同大小的頁一致)之條項。
儘管以上實例顯示包含一個頁所有權表50之系統,但在一些情況下,同一系統中可能存在多個POT 50。舉例而言,若存在用於控制在實體記憶體中不相交之不同DRAM之多個記憶體控制器,則提供用於各記憶體控制器/DRAM之單獨的POT 50可為有用的。
此外,儘管以上實例顯示用於控制並更新POT之命令由持有者程序發起,但在其他實例中此等命令可來自持有者程序所信賴之另一程序。舉例而言,在一些系統中,可代表持有者域由在安全控制器28上執行之程序管理POT 50。因此,當持有者程序請求待請求之頁之所有權或POT 50之更新時,其可向可信賴程序(例如在安全控制器28上執行之程序)發送命令,其觸發可信賴程序發起所有權請求或更新請求。類似地,上文描述之重寫(破壞性主張)程序可由不一定為持有者程序之可信賴程序進行。
此外,儘管以上實例描述執行指令以觸發所有權請求或POT更新請求,但在其他實例中,對於所有權或表更新之請求可由其他形式之命令觸發。舉例而言,命令可為指令、對用於控制POT之硬體控制器之直接I/O操作或(可信賴)函數調用。類似地,所有權主張開始及結束命令不一定需要為指令且可為其他形式之命令。
第10圖示意性說明客體執行環境(guest execution environment; GEE)之安全初始化。客體執行環境可呈多種不同形式,例如獨立應用程式、支援一或多個應用程式之執行之作業系統,或甚至為進一步虛擬化系統。安全初始化系藉由自用於客體執行環境之可執行代碼源發送請求以初始化彼客體執行環境來開始。初始化之請求經發送至超管理器。請求可例如為希望使用由超管理器控制之虛擬化計算機系統(基於雲端之計算系統)來初始化一些所要處理的用戶之結果。初始化客體執行環境之請求同時(或可能在之後的時間)伴隨有用於客體執行環境之執行之至少第一部分的可執行代碼之加密版本。此加密可執行代碼可經加密以在其以多種不同方式轉移至其預期接收者期間幫助保護安全。在此實例中,加密可執行代碼以公用/專用密鑰對之公用密鑰加密。專用密鑰對由安全控制器(隨後描述)持有且由其保密。
超管理器接收請求以初始化客體執行環境産生新的虛擬機(virtual machine; VM)且為實體記憶體位址空間分配待由客體執行環境使用之頁,且設定與客體執行環境相關聯之其他參數,此在超管理器中為正常操作。超管理器隨後向安全控制器轉送用於初始化客體執行環境之請求、加密可執行代碼、已由超管理器分配至客體執行環境之實體記憶體位址空間之頁的頁識別符及待由客體執行環境使用之盲域識別符。將理解,在典型系統中,超管理器將向客體執行環境分配大量的實體記憶體位址空間,該客體執行環境可能在其操作中使用此經分配的位址空間中之一些或全部。在本示例性實施例中,安全控制器(及後來的客體執行環境本身)首先破壞性主張其希望使用之實體記憶體之任何頁(自已由超管理器分配為可由客體執行環境使用)為由安全控制器且隨後客體執行環境所持有。
安全控制器接收自超管理器轉送之請求並破壞性主張所有其希望向其中安裝加密執行代碼之頁。安全控制器將正在主張並清除之程序標記為狀態「清除」,此在用於所請求之程序之程序描述符條項中指示(當其經主張並清除時)。程序隨後在安裝可執行代碼時經標記為「準備」。安全控制器使用其專用密鑰解密其已接收到之可執行代碼。經解密之代碼儲存至在此階段中由安全控制器持有之所主張的頁中。隨後將儲存經解密可執行代碼之頁標記為「執行」,其指示其已關閉且準備好執行。安全控制器隨後將其已主張之頁之所有權傳送至正在經初始化之客體執行環境。亦在此時初始化相關盲域內之預設的空CPU執行上下文結構。在此示例性實施例中,安全控制器已藉由應用其專用密鑰以解密可執行代碼而已預形成安全初始化。在其他示例性實施例中,安全初始化可另外或替代地包括藉由安全控制器之可執行代碼之驗證及/或安全安裝證實。
在此階段中,安全控制器通知超管理器客體執行環境現在準備好「執行」。指示此為「第一次」執行之狀態可以用於相關程序之CPU上下文表條項單獨儲存。
超管理器執行排程程序以進行執行。當已到達最近經初始化之客體執行環境被第一次執行之時間時,超管理器開始此執行。客體執行環境隨後執行儲存至實體頁中之經解密可執行代碼,該等實體頁已由安全控制器在客體執行環境之所有權中傳送。在客體執行環境中執行之代碼在超管理器標記為對其可用之彼等頁之中破壞性主張其需要之任何其他頁。
應瞭解客體執行環境可呈現多種不同形式。在一些實施例中,客體執行環境可為支援多個客體應用程式之完整作業系統。在其他示例性實施例中,客體執行環境可為使用其自身記憶體頁且不具有單獨作業系統或其他相關聯系統之單一裸應用程式。本技術可在此等及其他情形中使用。在超管理器控制下操作之客體執行環境提供獨立程序彼此分離執行之能力。此外,提供安全控制器及頁所有權表之機制及破壞性主張頁之所有權力求提供一種系統,其中客體執行環境之資料(無論呈何形式)可受到保護免於被其他客體執行環境及超管理器本身存取。
在此示例性實施例中,安全控制器呈現獨立處理器之形式。在其他示例性實施例中,安全控制器可呈現在相同處理器上執行之可信賴程序(例如以安全模式在支援ARM Limited之TrustZone之處理器上執行之可信賴程序)或可信賴超管理器之形式,其取決於所需/所要之特定安全程度。
第11圖為流程圖,其示意性說明破壞性頁主張之程序。在步驟700,處理等至接收到取得頁之所有權之請求。當接收到此類請求時,步驟702決定正常記憶體管理單元是否為與請求程序相關之頁提供寫入許可。此記憶體管理單元可由超管理器控制。若記憶體管理單元不給出寫入許可,則請求被拒絕且處理返回至步驟700。若記憶體管理單元給出寫入許可,則處理繼續至步驟704,其中初始化重寫計數器。步驟706等至偵測到向其請求所有權之頁之一行已經重寫。步驟708決定此是否為預期重寫之下一行。假定在此示例性實施例中,預期依次寫入形成記憶體之頁之行。若未重寫預期行,則主張所有權之請求再次失敗且處理返回至步驟700。若在步驟708之決定為重寫了預期下一行,則處理繼續至步驟710,其中重寫計數器經增量。步驟712決定是否已經重寫整頁,此由重寫計數器達至預定值指示。若重寫計數器尚未達至指示已經重寫整頁之值,則處理返回至步驟706,其中系統等待重寫頁之下一行。若已經重寫整頁,則步驟714將頁標記為現在由頁所有權表中之請求者持有。
第12圖示意性說明用於提供本文中描述之系統之硬體環境800。在此實例中,在硬體環境800中提供複數個處理器802、804、安全控制器806、實體主記憶體808及匯流排主控器裝置,諸如經記憶體映射之輸入輸出裝置810,其全部經由互連件812連接。應瞭解硬體環境800可呈現多種不同形式。本技術非常適合於例如在雲端計算之背景中使用,其中承租者(雲端客戶)具有其希望執行之處理任務。承租者不具有其自身之處理硬體來進行所需任務,而是將該所需任務發送以在由雲端服務提供商提供之客體執行環境內執行。雲端服務提供商可以超管理器程序接收對於客體執行環境之請求且隨後初始化客體執行環境之執行,如先前所論述。客體執行環境之執行可本身遍及多個程序或甚至多個網站分佈,其取決於所提供之雲端執行支援之類型。本文中描述之機制力圖提供客體執行環境之間的更高安全等級,其中客體執行環境可針對彼此受到保護且亦可針對超管理器本身受到保護。
第12圖之硬體執行環境800支援如本文中所描述之頁所有權表。處理器802、804及安全控制器806各具備所有權及重寫追蹤硬體(overwrite tracking hardware; OTH),其用以管理獲得實體記憶體位址空間之頁之所有權之程序及重寫彼頁(作為主張程序之一部分),如本文中別處所描述。亦至少在支援上下文切換之處理器802及804內提供上下文切換電路系統(context switching circuitry; CS),其用以將上下文資料保存至主記憶體808內之上下文資料存儲器814,其作為上下文切換程序之一部分。上下文切換電路系統為異常處置電路系統之形式。關於各上下文形成上下文資料存儲器814之區域將由相關之相關聯的程序持有,該程序可從而控制彼上下文資料之存取以確保其保持為專用(若需要)。
第13圖示意性說明使用當前技術之軟體層模型。此軟體層模型包括多個等級之特權,其自處於最高等級下之安全控制器向下延伸至超管理器及客體執行環境,其可本身包括客體作業系統及客體應用程式。在比超管理器之特權等級低的特權等級下初始化新的客體執行環境。
在一個示例性實施例中,特權等級可自對應於客體應用程式之最低等級延伸。下一較高等級將為客體作業系統,隨後為超管理器且隨後為由安全控制器執行之監視器程序或韌體。最高特權等級可與管理系統中所用之密碼密鑰之存取、其分佈及驗證之安全複合體相關聯。應瞭解可採用其他特權等級模型。
本技術之特徵為頁所有權機制准許系統操作以使得客體執行環境控制其持有之頁之存取,而例如具有較高特權等級之超管理器可經客體執行環境阻止存取彼等頁。此與正常預期相反,在正常預期中較高特權等級給予更多存取權及對存取權之控制。第12圖中說明之所有權及重寫追蹤電路可用以根據由彼頁之持有程控之存取配置來強制實體記憶體位址空間內之記憶體區域之所有權。持有程序(如頁所有權表中所指示)可將頁所有權標記為持有程序專用,或在持有程序與記憶體存取請求之一或多個其他源之間共享。頁將通常在其破壞性主張之後經初始化為專用狀態。由持有程序共享之存取可呈現多種不同形式,如第14圖中說明。用於頁之持有程序可將彼頁之所有權傳送至由持有程序(「母」程序)初始化之「子」程序。當此類母程序已初始化子程序且子程序仍處於「準備」狀態時,其可將母程序持有之頁之一或多者之所有權傳送至子程序。子程序將最初接收經標記為彼子程序專用之彼等頁。若希望,則子程序可隨後為其持有之頁中之任一者改變共享存取控制狀態以指示其與母程序共享之共享狀態。當子程序自其母程序接收新的頁時,其破壞性主張向其分配該等新的頁。共享亦可係與上代程序,諸如祖程序或上代階層中之任何舊的程序。
當程序存取頁時,在一些示例性實施例中,其可檢查用於彼頁之彼共享存取控制資料與程序所預期相同。舉例而言,若程序持有頁且已將其設定為共享存取控制為「專用」,則其可在其向彼頁儲存任何敏感資料之前檢查該頁在頁所有權表內仍以此方式經配置。
可由持有程序選定之共享之另一形式為與經記憶體映射之裝置共享頁,其中相關記憶體映射裝置經映射至記憶體之由改變存取控制之程序持有的頁中。因此,可給予由程序持有之記憶體位址空間內之經記憶體映射裝置存取由彼相同程序持有之記憶體之彼特定頁或另一頁之權利。
可由持有程序指定之共享存取之另一形式為全域共享狀態,其中准許實體位址記憶體之頁由任何其他程序存取且不再由任何個別程序持有(在一些示例性實施例中,可提供唯一的BDID以與全部全域頁相關聯)。持有程序可確保彼持有程序之敏感資料不被寫入至彼全域共享頁中。
第15圖示意性說明充當所有權電路之所有權及重寫追蹤硬體如何用以處理自程序接收到之用於改變共享許可之請求。在步驟900,處理等至接收到改變共享許可之請求。當接收到此類請求時,步驟902決定是否已自在頁所有權表中經指示為持有相關頁之程序接收到改變存取許可之請求。若已自持有程序接收到請求,則步驟904操作存取許可之所請求的更改(例如採用第14圖中指示之存取控制狀態選項中之一者)且隨後處理返回至步驟900。若步驟902處之決定為請求系來自不持有相關頁之程序,則步驟906用以忽略所請求之更改且視需要發起警告,即接收到不正確及/或不合適的改變請求,隨後處理再次返回至步驟900。
如結合第10圖所提及,超管理器可用以對不同執行環境之執行進行排程。此等不同執行環境分別持有實體記憶體位址空間之其持有頁。當超管理器停止處理一個客體執行環境且開始處理不同的客體執行環境時,則此為執行上下文之切換且其程序之切換將為活動的。此上下文切換可藉由受保護之異常處置來進行。在上下文更改發生時,處理器或更寬範圍之系統之狀態資料可包括多個狀態參數,例如暫存器上下文、配置變量、程式狀態值等。此狀態資料為上下文資料且可表示專用資訊,其理想地不允許對其他客體執行環境或超管理器本身可用。第16A圖及第16B圖為流程圖,其說明如何保護執行上下文。
在步驟1000,處理等至接收到上下文切換中斷,諸如至不同程序之非自主出口。狀態1002將重新啟動資料保存至由經受中斷之程序(客體執行環境)持有之上下文資料存儲器814之部分。在一些示例性實施例中,此重新啟動資料可為足以重新啟動中斷程序之狀態資料,但不需要包括所有依賴中斷程序之狀態資料。舉例而言,重新啟動資料可包括通用暫存器上下文,但不需要包括微架構狀態,諸如快取記憶體上下文、轉換旁看緩衝上下文及其類似者。在步驟1002將重新啟動資料保存至由經中斷之程序持有的上下文資料記憶體814之部分中之後,步驟1004用以破壞性重寫依賴當前程序之狀態資料且其將在切換至另一程序之後可由任何其他程序存取。經重寫之資料可為重新啟動資料之超集。經重寫之資料亦可排除微架構資料及不可由最近開始之程序存取之其他資料,例如由經中斷之程序持有之記憶體區域內之資料,但其由於頁所有權表及其他機制之操作而不可由新開始之程序存取。重寫可例如將依賴當前程序之所有可存取狀態設定為零值或不依賴實際上由經中斷之程序進行之處理之一些其他預定值。系統隨後返回至步驟1000以等候下一上下文切換中斷。在自程序自主退出之情況下,例如至較高例外等級之程序調用,暫存器上下文之子集,例如R0至R7,可經傳遞至調用目標,暫存器/狀態在退出並重新進入時經儲存並恢復。
如第16B圖中所示,系統在步驟1005等至有新程序待開始。步驟1006用以決定待開始之新程序是否為CPU上下文資料中之相關聯狀態為「準備好的」程序。若程序不處於準備好的狀態,則此指示其已經排程用於執行且已經執行至少一次,且因此將具有其持有上下文資料,該資料將應在其執行重新開始之前恢復。若待開始之程序不處於「準備好的狀態」,則步驟108用以自上下文資料存儲器814內之其持有之記憶體頁恢復其重新啟動資料。若待開始之程序處於「準備好的」狀態,例如處於「準備好首次執行」狀態,則繞過步驟1008。最後,在步驟1010,新程序之執行在程序返回至步驟1005以等候另一新程序之前開始。
第17圖指示程序描述符條項,其可為程序描述符表內之複數個程序描述符條項中之一者。程序描述符條項包括例如盲域識別符(blind domain identifier; BDID)。頁描述符條項亦包括至上下文資料存儲器814內之位置之指針(手柄),當相關程序經切換出時,相關程序之上下文資料將保存至該位置(且該上下文資料自其恢復)。此指針指示由相關程序持有之記憶體之區域。頁描述符條項亦包括當前程序狀態,如將在下文中進一步論述。
第18圖示意性說明程序之示例性程序狀態。已停止使用之程序經標記為無效且其BDID將可由新程序回收。超管理器可對創建程序及設定程序描述符條項負責。彼程序之初始化可結合如先前描述之安全控制器進行。可由程序採用之序列中之下一狀態為「清除」狀態。此指示已經主張相關程序BDID且由程序主張所有權之相關聯之頁正在經歷清除,例如移除供相關BDID先前使用之頁所有權表中之現有條項且隨後主張及清除(經受破壞性重寫)BDID之新的頁。當清除已完成時,相關程序轉化至「準備」狀態,此指示相關程序打開且其頁準備好填充。當頁之填充已完成時,程序變為「執行」狀態,其關閉且準備好執行。當程序之執行開始時,準備好第一次執行狀態儲存在域內之CPU執行上下文之狀態欄位中且用於控制重新啟動資料是否恢復。第18圖說明程序之「生命週期」,其包括複數個程序狀態,程序在其執行準備之後依次通過該等程序狀態。此等狀態之數目及具體形式可變化。
至少一些示例性實施例包括盲域執行上下文(或框架) BDEC,其可用於在將程序切換為執行及結束執行時儲存彼程序之狀態資料。此狀態資料內包括相關程序是否已經歷一些執行之指示。若程序尚未經執行,則其在此實例中標記為「新的」(參見先前論述之「準備好的」狀態)。在退出程序時,執行上下文資料亦可包括狀態資料,諸如通用緩存器上下文。此等暫存器上下文可在重新進入程序時被恢復。存在狀態參數,其進一步指定程序經自主(例如在軟體函數調用之後)或不自主(例如在硬體中斷之後)退出;此資訊可用於控制如何重新開始程序並退出預形成為程序之操作。可儲存上下文資料以為相關程序專用。
各BDEC可含有狀態指示,諸如新的、自主退出、非自主退出、自主完成、非自主完成及無效。BDEC亦可包括持有域之例外等級之指示、用於域之通用暫存器之上下文(例如R0至R30、PC、P-狀態等)及用於域之例外等級暫存器之上下文(例如TTBR_ELx等)。
大體上,可提供包含一或多個條項之所有權表,該等一或多個條項各為實體位址之對應區塊指示複數個程序中之哪一者為獨佔性控制實體位址之對應區塊之存取的持有者程序。此可用於允許複數個程序中之任一者獨佔性控制實體位址空間之給定區域以便限制其他程序對彼區域之存取。此為尤其有用的,因為其可允許處於較低特權等級之程序或限制特權較高程序對資料之存取,其在典型系統中為不可能的。
大體上,可存在一些用於請求程序請求實體位址之目標區塊之所有權的手段。實體位址之目標區塊可直接在請求中或間接地藉由指定虛擬位址或中間位址或以一些其他方式識別。舉例而言,所有權請求可為專用所有權請求指令(諸如上文論述之主張開始指令)或另一種具有指示對給定頁請求所有權之參數的指令,或請求可對應於另一種所有權請求命令(不一定為指令),例如藉由設定一些觸發一些其他程序初始化所有權請求之控制資訊。響應於所有權請求,處理電路系統可更新所有權表以指示請求程序現在為目標頁之持有者。因此,請求程序可例如藉由在將敏感資料寫入記憶體之前請求對應位址區塊之所有權來保護敏感資料。
當給定位址區塊之所有權自一個程序變為另一程序時,多種技術可用於防止敏感資訊自舊的持有者泄漏至新的持有者。如在上文實例中論述,一種方法為在請求所有權之程序可有效成為彼區塊之持有者程序之前請求成功完成重寫程序以重寫目標區塊中之各位址。此可藉由實際上執行重寫程序之硬體或以請求程序本身或進行重寫程序但硬體檢查其是否已成功完成之另一可信賴程序來強制。硬體檢查重寫程序是否已成功完成之一種方法可為檢查及確保在所有權主張開始命令與所有權主張結束命令之間執行之一或多個寫入操作中經重寫之實體位址包括目標區塊之每一實體位址。若在所有權主張開始與結束命令之間進行之寫入不連續地覆蓋整個位址區塊,則重寫程序可能失敗且請求者無法有效地變成持有者。舉例而言,此等檢查可使用如上文論述之追蹤完成寫入數目及其位址偏移之主張計數值來進行。應瞭解可存在其他技術用於決定重寫程序已成功重寫目標區塊之各實體位址處之資料。
一些實施例可提供加密電路系統以加密寫入記憶體之資料並解密自記憶體讀取之資料。各程序可具有一或多個相關聯之密鑰且寫入特定位址區塊之資料可使用與彼區塊之持有者相關聯之密鑰加密,且在自記憶體讀回資料時解密。在包含加密之系統中,重寫過程可能不必要,因為即使在將位址區塊傳送至另一持有者之後與一個程序相關聯之資料保留在記憶體中,新的持有者仍不能够讀取資料,因為其系使用舊持有者之密鑰加密。
然而,出於增加安全性之原因,即使存在加密功能,但當傳送區塊之所有權時,較佳亦要求對彼位址區塊執行重寫程序。將加密與重寫程序組合亦具有以下益處,當傳送區塊之所有權時,持有者程序可改變其持有之每個位址區塊所需之加密等級而不遭受資料損失的風險。舉例而言,不同加密模式可包含不同的加密等級或強度。
大體上,可提供所有權保護電路系統以在所有權表之對應條項指示當前程序未經持有者程序准許存取位址時拒絕來自當前程序之在該目標實體位址存取資料的請求。舉例而言,所有權保護電路系統可包含上文描述之BDMU,或可替代地為在記憶體控制器內提供之一些電路系統。藉由拒絕不滿足持有者之許可之要求,持有者程序可獨佔性控制對所持有之位址區塊之存取。
除了所有權保護電路系統,亦可存在存取控制電路系統,其強制由特定程序,諸如超管理器、虛擬機或作業系統設定之存取許可。舉例而言,存取控制電路系統可對應於如上文論述之MMU。鑒於存取控制電路系統強制由處於特定特權等級之特定程序設定之許可(例如,以允許超管理器在不同虛擬機之間分割位址空間),所有權保護電路系統可藉由請求需要其之彼等許可之頁之所有權來允許任何程序強制對其他程序之許可,而不論其特權等級為何。
該技術可尤其對支援兩個或更多個超管理器、一或多個虛擬機、一或多個客體作業系統及一或多個應用程式之系統有用。然而,更大體而言,該技術可應用於任何系統,其中多個程序共存且一個程序可防止另一程序存取資料。
如上文論述,POT 50可包括位址欄位58,其有效表示自與POT條項52相關聯之PA至VA或IPA之「反向轉換映射」,自該映射在特定參考時間點轉換PA。
然而,類似技術亦可更大體地應用至任何藉由實體位址索引之表,該表至少一個條項可識別第一位址,對應實體位址自該第一位址由位址轉換電路系統轉換。藉由保存自實體位址至自其轉換了實體位址之第一位址之反向映射之快照,有可能隨後檢查映射是否仍然相同,此可用於偵測位址映射中之後續更改,其可影響表之上下文之有效性。
大體上,處理電路系統可響應於參考事件之發生以在對應於給定實體位址之表之條項中記錄當前由位址轉換電路系統轉換為給定實體位址之第一位址。參考事件可例如為將新的條項分配至用於給定實體位址之表中、更新用於給定實體位址之表之現有條項中的資訊、執行預定類型之指令(例如指定給定第一位址之指令)或預定更改資料處理設備之操作模式(例如更改為安全模式)。因此,表中記錄之第一位址可表示在參考事件之時存在的在第一位址與對應實體位址之間的映射。
隨後,當接收到指定將由位址轉換電路系統轉換為目標實體位址之目標實體位址的存取請求時,控制電路系統可決定在目標第一位址與由對應於目標實體位址之表之條項所指定的第一位址之間是否存在不匹配。舉例而言,此有效地決定位址映射是否仍然與導致了第一位址儲存至表之參考事件之時相同。若在此等位址之間存在不匹配,則請求可被拒絕或可發信號通知錯誤。
在一些情況下,可僅出於追蹤過去位址映射及偵測其在隨後時間是否仍然相同之目的提供實體索引表,因此實體索引表不一定需要含有除第一位址本身之外的任何資訊。
儘管本技術可用於任何實體索引表,但其尤其對上文論述之形式之所有權表有用,該所有權表指示對應實體位址區塊之持有者且其中持有者獨佔性控制彼等位址之存取。記錄表中之反向實體至第一位址映射可幫助防止上文論述類型之攻擊,其中位址映射之更改可導致敏感資訊丟失。
在一些情況下,第一位址可為虛擬位址。在其他情況下,第一位址可為中間實體位址。此外,一個表可能具有一些第一位址為虛擬位址之條項,及第一位址為中間位址之其他條項。
在本申請案中,詞語「經配置以……」用於意謂設備之部件具有能够進行所定義操作之配置。在此上下文中,「配置」意謂硬體或軟體之互連配置或方式。舉例而言,設備可具有提供所定義操作之專用硬體,或處理器或其他處理裝置可經程式化以執行功能。「經配置以」不暗示設備部件需要以任何方式改變以便提供所定義之操作。
儘管本文中關於隨附圖式詳細描述本發明之說明性實施例,但應理解本發明不限於彼等精確實施例,且熟習此項技術者可在不脫離如由隨附申請專利範圍所定義之本發明之範疇及精神的情況下在其中産生各種更改及修改。
2‧‧‧超管理器
4‧‧‧虛擬機
6‧‧‧應用
10‧‧‧安全作業系統
12‧‧‧可信賴應用
14‧‧‧安全監視器程序
20‧‧‧處理設備
24‧‧‧中央處理單元
25‧‧‧圖形處理單元
26‧‧‧直接記憶體存取控制器
28‧‧‧安全複合體
30‧‧‧系統匯流排
32‧‧‧記憶體控制器
34‧‧‧記憶體
36‧‧‧快取記憶體
40‧‧‧記憶體管理單元
40-1‧‧‧階段1記憶體管理單元
40-2‧‧‧階段2記憶體管理單元
42‧‧‧盲域描述符表
50‧‧‧頁所有權表
52‧‧‧頁所有權表條項
54‧‧‧盲域識別符欄位
56‧‧‧屬性欄位/加密電路系統
58‧‧‧位址欄位
60‧‧‧保護硬體/主張計數欄位/主張計數器/盲域管理單元
62‧‧‧保護硬體/盲域過濾器
70‧‧‧虛擬位址
72‧‧‧屬性
73‧‧‧應用空間識別符
74‧‧‧虛擬機識別符
75‧‧‧中間實體位址
76‧‧‧實體位址
80‧‧‧階段1頁表/硬體環境
82‧‧‧階段2頁表
100‧‧‧步驟
102‧‧‧步驟
104‧‧‧步驟
112‧‧‧步驟
114‧‧‧步驟
116‧‧‧步驟
118‧‧‧步驟
120‧‧‧步驟
122‧‧‧步驟
130‧‧‧步驟
132‧‧‧步驟
134‧‧‧步驟
150‧‧‧重寫程序
152‧‧‧步驟
154‧‧‧步驟
156‧‧‧步驟
158‧‧‧步驟
159‧‧‧步驟
160‧‧‧步驟
162‧‧‧步驟
164‧‧‧步驟
190‧‧‧步驟
196‧‧‧步驟
198‧‧‧步驟
200‧‧‧步驟
210‧‧‧步驟
212‧‧‧步驟
222‧‧‧步驟
224‧‧‧步驟
226‧‧‧步驟
228‧‧‧步驟
230‧‧‧步驟
300‧‧‧TLB
302‧‧‧頁所有權表旁看緩衝
304‧‧‧盲域描述符表旁看緩衝
310‧‧‧指令
312‧‧‧指令
314‧‧‧指令
316‧‧‧指令
700‧‧‧步驟
702‧‧‧步驟
704‧‧‧步驟
706‧‧‧步驟
708‧‧‧步驟
710‧‧‧步驟
712‧‧‧步驟
714‧‧‧步驟
800‧‧‧硬體環境
802‧‧‧處理器
804‧‧‧處理器
806‧‧‧安全控制器
808‧‧‧實體主記憶體
812‧‧‧互連件
814‧‧‧上下文資料記憶體
900‧‧‧步驟
902‧‧‧步驟
904‧‧‧步驟
906‧‧‧步驟
1000‧‧‧步驟
1002‧‧‧狀態/步驟
1004‧‧‧步驟
1005‧‧‧步驟
1006‧‧‧步驟
1008‧‧‧步驟
1010‧‧‧步驟
第1圖示意性說明由處理設備執行之程序之實例;
第2A圖及第2B圖顯示資料處理設備之實例;
第3圖示意性說明在資料儲存器中對存取資料之存取請求之驗證的實例;
第4圖說明在資料處理設備之不同點處的異動之實例;
第5圖說明驗證存取請求之示例性方法;
第6圖說明用於請求程序之示例性方法,該請求程序請求實體位址之對應頁之所有權;
第7圖顯示重寫程序之實例;
第8圖顯示所有權表中之更新屬性之實例;
第9圖說明用於在旁看緩衝中使條項無效之指令之實例;
第10圖示意性說明客體執行環境之安全初始化;
第11圖為流程圖,其示意性說明破壞性主張實體記憶體位址空間頁之所有權之程序;
第12圖示意性說明用於支援超管理器及多個客體執行環境之硬體系統;
第13圖示意性說明超管理器、安全控制器與多個客體執行環境之間的關係。
第14圖示意性說明實體記憶體位址空間頁之各種共享狀態;
第15圖為流程圖,其示意性說明處理變化共享許可之請求;
第16A圖及第16B圖為示意性說明執行上下文切換之流程圖。
第17圖示意性說明示例性程序描述符條項;及
第18圖示意性說明程序狀態態。
以下論述本技術之一些具體實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
1000‧‧‧步驟
1002‧‧‧狀態/步驟
1004‧‧‧步驟
Claims (15)
- 一種用於處理資料之設備,包含:所有權電路系統,其強制記憶體區域之所有權,一給定記憶體區域具有在複數個程序之中經指定的一給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取權;及異常處置電路系統,其響應於一中斷之接收以觸發自一第一程序至具有相對於該第一程序的一較高特權等級的一第二程序之一切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫,以阻止具有該較高特權等級的該第二程序存取待重寫的該一或多個狀態項目。
- 如請求項1所述之設備,其中用於重新啟動該第一程序之該等一或多個狀態項目足以重新啟動該第一程序。
- 如請求項1所述之設備,其中該異常處置電路系統響應於該第一程序之繼續執行以讀取該等一或多個上下文資料記憶體區域且恢復該等一或多個狀態項目用於重新啟動該第一程序。
- 如請求項3所述之設備,其中該異常處置電路系統經配置以在切換至先前未經執行之程序時抑制上下文資料記憶體之讀取及狀態資料之恢復。
- 如請求項1所述之設備,其包含一程序描述符表,其儲存用於該複數個程序之各別程序描述符條項,一程序描述符條項包含至該一或多個上下文資料記憶體區域之指針。
- 如請求項5所述之設備,其中該程序描述符條項包含一狀態指示符,其指示一對應程序之一當前狀態。
- 如請求項6所述之設備,其中該當前狀態為無效、清除、準備及執行中之一者。
- 如請求項1所述之設備,其中該等記憶體區域為在一實體記憶體位址空間內之記憶體區域。
- 如請求項1所述之設備,其中獨立於特權等級指定該給定持有程序。
- 如請求項9所述之設備,其中該所有權電路系統准許該給定持有程序拒絕特權等級高於該給定持有程序之程序存取該給定記憶體區域。
- 如請求項1所述之設備,其中將該給定記憶體區域分配至一新的給定持有程序包括在該新的 給定持有程序獲得該等獨佔權之前重寫儲存在該給定記憶體區域內之資料。
- 如請求項11所述之設備,其中該重寫係藉由該新的給定持有程序進行且該重寫之完成係藉由重寫追蹤硬體來追蹤以確保該重寫在該新的持有者獲得該等獨佔權之前完成。
- 如請求項1所述之設備,其包含一所有權表以儲存指示該複數個程序中之哪些具有控制哪些記憶體區域之獨佔權。
- 一種用於處理資料之設備,包含:所有權手段,其用於強制記憶體區域之所有權,一給定記憶體區域具有在複數個程序之中經指定的一給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取權;及異常處置手段,其用於響應於一中斷之接收觸發自一第一程序至具有相對於該第一程序的一較高特權等級的一第二程序之切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫,以阻止具有 該較高特權等級的該第二程序存取待重寫的該一或多個狀態項目。
- 一種處理資料之方法,包含以下步驟:強制記憶體區域之所有權,一給定記憶體區域具有在複數個程序之中經指定的一給定持有程序,該給定持有程序具有控制對該給定記憶體區域之存取權;及響應於一中斷之接收觸發自一第一程序至具有相對於該第一程序的一較高特權等級的一第二程序之一切換,藉以用於重新啟動該第一程序之一或多個狀態項目經保存至由該第一程序持有之一或多個上下文資料記憶體區域,且該第二程序可存取且依賴於由該第一程序處理之一或多個狀態項目在開始執行該第二程序之前經重寫,以阻止具有該較高特權等級的該第二程序存取待重寫的該一或多個狀態項目。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1510531.5A GB2539433B8 (en) | 2015-06-16 | 2015-06-16 | Protected exception handling |
GB1510531.5 | 2015-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201710903A TW201710903A (zh) | 2017-03-16 |
TWI714582B true TWI714582B (zh) | 2021-01-01 |
Family
ID=53784797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105114881A TWI714582B (zh) | 2015-06-16 | 2016-05-13 | 受保護異常處置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10838877B2 (zh) |
EP (1) | EP3311271B1 (zh) |
JP (1) | JP2018523211A (zh) |
KR (1) | KR102592377B1 (zh) |
CN (1) | CN107690621B (zh) |
GB (1) | GB2539433B8 (zh) |
IL (1) | IL255646B (zh) |
TW (1) | TWI714582B (zh) |
WO (1) | WO2016203188A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045471B2 (en) | 2021-07-27 | 2024-07-23 | International Business Machines Corporation | Secure memory isolation for secure endpoints |
Families Citing this family (24)
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 |
US20180203807A1 (en) | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US10664306B2 (en) * | 2017-01-13 | 2020-05-26 | Arm Limited | Memory partitioning |
US10649678B2 (en) * | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
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 |
US10658046B2 (en) * | 2017-05-26 | 2020-05-19 | Macronix International Co., Ltd. | Memory device and method for operating the same |
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 |
GB2563881B (en) | 2017-06-28 | 2019-12-25 | Advanced Risc Mach Ltd | Realm execution context masking and saving |
GB2563883B (en) | 2017-06-28 | 2019-10-09 | Advanced Risc Mach Ltd | Invalidation of a target realm in a realm hierarchy |
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 |
GB2578297B (en) * | 2018-10-19 | 2021-07-14 | Advanced Risc Mach Ltd | Trusted intermediary realm |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US20070103476A1 (en) * | 2005-11-10 | 2007-05-10 | Via Technologies, Inc. | Interruptible GPU and method for context saving and restoring |
US20080109625A1 (en) * | 2006-11-03 | 2008-05-08 | Microsoft Corporation | Operating system protection against side-channel attacks on secrecy |
US20080313417A1 (en) * | 2007-06-18 | 2008-12-18 | Su Yong Kim | Apparatus and method of detecting and controlling privilege level violation process |
CN102460376A (zh) * | 2009-06-26 | 2012-05-16 | 英特尔公司 | 无约束事务存储器(utm)***的优化 |
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 |
TW201502780A (zh) * | 2013-05-13 | 2015-01-16 | Advanced Risc Mach Ltd | 頁表資料管理 |
TW201514850A (zh) * | 2013-10-09 | 2015-04-16 | Arm股份有限公司 | 用於控制推測向量運算效能的資料處理設備及方法 |
Family Cites Families (68)
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 | 情報処理装置 |
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 |
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 |
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 |
US8661181B2 (en) | 2007-06-28 | 2014-02-25 | Memory Technologies Llc | 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 |
JP4643702B2 (ja) | 2008-10-27 | 2011-03-02 | 株式会社東芝 | マイクロプロセッサ |
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 |
JP5631334B2 (ja) * | 2009-12-14 | 2014-11-26 | パナソニック株式会社 | 情報処理装置 |
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 |
WO2011148447A1 (ja) | 2010-05-24 | 2011-12-01 | パナソニック株式会社 | 仮想計算機システム、領域管理方法、及びプログラム |
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 |
GB2483907A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
GB2483906C (en) | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
US9152573B2 (en) | 2010-11-16 | 2015-10-06 | Vmware, Inc. | Sharing memory pages having regular expressions within a virtual machine |
JP5981845B2 (ja) | 2011-03-02 | 2016-08-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路 |
US20130070513A1 (en) * | 2011-09-16 | 2013-03-21 | Advanced Micro Devices, Inc. | Method and apparatus for direct backup of memory circuits |
US8788763B2 (en) * | 2011-10-13 | 2014-07-22 | International Business Machines Corporation | Protecting memory of a virtual guest |
WO2013085511A1 (en) | 2011-12-07 | 2013-06-13 | 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 |
CN104011691B (zh) | 2011-12-29 | 2016-12-14 | 英特尔公司 | 非易失性ram盘 |
DE102012201225A1 (de) | 2012-01-27 | 2013-08-01 | Continental Automotive Gmbh | Rechnersystem |
TWI480733B (zh) | 2012-03-29 | 2015-04-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
JP5914145B2 (ja) | 2012-05-01 | 2016-05-11 | ルネサスエレクトロニクス株式会社 | メモリ保護回路、処理装置、およびメモリ保護方法 |
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 |
US9384024B2 (en) | 2012-12-18 | 2016-07-05 | Dynavisor, Inc. | Dynamic device virtualization |
US9747052B2 (en) | 2013-02-05 | 2017-08-29 | Arm Limited | Virtualisation supporting guest operating systems using memory protection units to determine permission of a memory access operation for a physical address |
WO2014155666A1 (ja) | 2013-03-29 | 2014-10-02 | 株式会社 東芝 | 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法 |
GB2515536A (en) * | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
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 US US15/578,340 patent/US10838877B2/en active Active
- 2016-04-26 WO PCT/GB2016/051166 patent/WO2016203188A1/en active Application Filing
- 2016-04-26 EP EP16720485.8A patent/EP3311271B1/en active Active
- 2016-04-26 JP JP2017564103A patent/JP2018523211A/ja active Pending
- 2016-04-26 KR KR1020187000523A patent/KR102592377B1/ko active IP Right Grant
- 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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US20070103476A1 (en) * | 2005-11-10 | 2007-05-10 | Via Technologies, Inc. | Interruptible GPU and method for context saving and restoring |
US20080109625A1 (en) * | 2006-11-03 | 2008-05-08 | Microsoft Corporation | Operating system protection against side-channel attacks on secrecy |
US20080313417A1 (en) * | 2007-06-18 | 2008-12-18 | Su Yong Kim | Apparatus and method of detecting and controlling privilege level violation process |
CN102460376A (zh) * | 2009-06-26 | 2012-05-16 | 英特尔公司 | 无约束事务存储器(utm)***的优化 |
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 |
TW201502780A (zh) * | 2013-05-13 | 2015-01-16 | Advanced Risc Mach Ltd | 頁表資料管理 |
TW201514850A (zh) * | 2013-10-09 | 2015-04-16 | Arm股份有限公司 | 用於控制推測向量運算效能的資料處理設備及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045471B2 (en) | 2021-07-27 | 2024-07-23 | International Business Machines Corporation | Secure memory isolation for secure endpoints |
Also Published As
Publication number | Publication date |
---|---|
KR20180017095A (ko) | 2018-02-20 |
US10838877B2 (en) | 2020-11-17 |
JP2018523211A (ja) | 2018-08-16 |
GB201510531D0 (en) | 2015-07-29 |
GB2539433B (en) | 2017-11-29 |
WO2016203188A1 (en) | 2016-12-22 |
KR102592377B1 (ko) | 2023-10-23 |
GB2539433B8 (en) | 2018-02-21 |
GB2539433A (en) | 2016-12-21 |
TW201710903A (zh) | 2017-03-16 |
IL255646B (en) | 2020-02-27 |
IL255646A (en) | 2018-01-31 |
EP3311271B1 (en) | 2023-02-22 |
EP3311271A1 (en) | 2018-04-25 |
US20180150413A1 (en) | 2018-05-31 |
CN107690621A (zh) | 2018-02-13 |
CN107690621B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI714582B (zh) | 受保護異常處置 | |
TWI709043B (zh) | 安全初始化 | |
TWI710898B (zh) | 具有所有權表的資料處理設備及方法 | |
TWI740825B (zh) | 共享頁 | |
TWI713522B (zh) | 位址轉換 |