TW202314484A - 用於針對信任域延伸輸入輸出(tdx-io)之以角色為基礎的暫存器保護之設備及方法 - Google Patents

用於針對信任域延伸輸入輸出(tdx-io)之以角色為基礎的暫存器保護之設備及方法 Download PDF

Info

Publication number
TW202314484A
TW202314484A TW111125959A TW111125959A TW202314484A TW 202314484 A TW202314484 A TW 202314484A TW 111125959 A TW111125959 A TW 111125959A TW 111125959 A TW111125959 A TW 111125959A TW 202314484 A TW202314484 A TW 202314484A
Authority
TW
Taiwan
Prior art keywords
register
memory
initiator
vmm
write
Prior art date
Application number
TW111125959A
Other languages
English (en)
Inventor
維亞斯 珊布赫古
拉維 夏西塔
烏特卡什 Y 卡凱亞
阿布希雪克 巴薩克
李 亞爾賓
菲利普 史摩爾
魯平 瓦哈瓦拉
維尼特 M 亞伯拉罕
拉格南丹 馬卡拉姆
Original Assignee
美商英特爾公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商英特爾公司 filed Critical 美商英特爾公司
Publication of TW202314484A publication Critical patent/TW202314484A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

本發明提供用於以角色為基礎之暫存器保護之設備及方法。舉例而言,一種設備之一個實施例包含:一或多個處理器核心,其用以執行指令並處理資料,該一或多個處理器核心用以執行一或多個安全指令以保護一虛擬機或受信任應用程式免受一虛擬機監視器(VMM)或作業系統(OS)的影響;一互連網狀架構,其用以將該一或多個處理器核心耦接至一裝置;以及安全硬體邏輯,其用以判定是否允許經由該互連網狀架構進行針對一受保護暫存器之一讀取或寫入異動,該安全硬體邏輯用以評估與該異動之一發起者相關聯之一或多個安全屬性以進行該判定。

Description

用於針對信任域延伸輸入輸出(TDX-IO)之以角色為基礎的暫存器保護之設備及方法
發明領域
本發明之實施例大體上係關於電腦處理器領域。更特定言之,實施例係關於用於以角色為基礎之暫存器保護之設備及方法。
發明背景
在計算時,虛擬機(VM)為電腦系統之仿真。VM係基於特定電腦架構且提供基礎實體電腦系統之功能性。其實施可涉及專用硬體、軟體或組合。虛擬機監視器(VMM)(亦被稱作超管理器)為使得能夠創建、管理及管控VM並管理實體主機機器頂部上虛擬化環境之操作的軟體程式。VMM為虛擬化環境及實施後之主要軟體。當經由主機機器安裝時,VMM促進VM之創建,各VM具有單獨作業系統(OS)及應用程式。VMM藉由分配必要的計算、記憶體、儲存及其他輸入/輸出(I/O)資源而管理此等VM之後端操作。VMM亦提供用於管理經由單一主機機器安裝或跨越不同及互連主機散佈的VM之整個操作、狀態及可用性之集中式介面。
為了達成機密及/或受保護VM執行,亦必須保護主機機器之記憶體及執行時間處理器狀態。維持僅指派至VM之記憶體之機密性(及完整性)並不足夠。亦需要經由使用延伸頁表(EPT)以更改VM使用之最終頁面映射而防止惡意或所利用VMM對記憶體位址空間執行頁面重新映射攻擊。迄今為止,此問題不存在完全解決方案。
依據本發明之一實施例,係特地提出一種設備,其包含:一或多個處理器核心,其用以執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護一虛擬機或受信任應用程式免受一虛擬機監視器(VMM)或作業系統(OS)的影響;一互連網狀架構,其用以將該一或多個處理器核心耦接至一裝置;以及安全硬體邏輯,其用以判定是否允許經由該互連網狀架構進行針對一受保護暫存器之一讀取或寫入異動,該安全硬體邏輯用以評估與該異動之一發起者相關聯之一或多個安全屬性以進行該判定。
較佳實施例之詳細說明
在以下描述中,出於解釋之目的,闡述眾多特定細節以便提供對下文所描述的本發明之實施例的透徹理解。然而,熟習此項技術者將顯而易見可在並無此等特定細節中之一些細節的情況下實踐本發明之實施例。在其他情況下,以方塊圖形式展示熟知結構及裝置以避免混淆本發明之實施例的基本原理。
如本揭露內容中所預期,本發明之實施例包括被稱作信任域延伸(TDX)以經由使用經由記憶體控制器引擎之記憶體加密及完整性滿足增加之安全目標的處理器安全能力。如TDX中所使用,信任域(TD)為受保護VM。本發明之實施例阻止來自惡意或所利用VMM對TD之私用記憶體位址空間之頁面重新映射攻擊。
實施例包含由用於TD私用頁面查核行程之處理器使用的被稱作安全延伸頁表(SEPT)之額外延伸頁表(EPT)結構。SEPT為每TD EPT(亦即,各TD具有其自身SEPT),其由信任域資源管理器(TDRM)僅經由新近添加至處理器之指令集架構(ISA)之特殊指令管理。TDRM無法在不使用此等指令的情況下更改SEPT,否則處理器將報告完整性故障。在其他實施例中,SEPT之全部或部分可使用處理器範圍暫存器保護進行存取控制。
在典型VM實施中,處理器每虛擬記憶體控制結構(VMCS)支援一個EPT指標(EPTP)。VMCS為每VM存在一次之記憶體中之資料結構,而VM由VMM管理。藉由不同VM之間的執行上下文之每次改變,針對當前VM恢復VMCS,進而界定VM之虛擬處理器之狀態。VMM管理由EPTP參考之EPT。在本發明之實施例中,VM可由TD囊封,且VMCS可由管理TD之訪客狀態的被稱作信任域控制結構(TDCS)之類似控制結構替換。
在本發明之實施例中,使用至少二個新組件。
頁面未命中處置器(PMH):處理器支援被稱作信任域(TD)安全延伸頁表指標(SEPTP)之新根指標(指向當前經存取之SEPT),且對於TD私用頁面存取,藉由頁面未命中處置器經由TD OS-管理訪客頁表(PT)及SEPT執行巢套頁面查核行程。對於非私用(亦即,共用)記憶體存取,處理器使用不受信任EPT執行一般頁面查核行程。
管理SEPT之指令集架構(ISA):處理器支援指令集以安全地允許TDRM在不違反安全目標的情況下操控SEPT-亦即一旦將記憶體頁指派至TD,訪客實體位址(GPA)至主機實體位址(HPA)映射(及GPA屬性)就無法修改。此ISA需要使用指令進行SEPT管理以將頁面添加至TD,稍後將頁面添加至TD,為指派至TD之頁面提供記憶體調換支援,及自TD移除頁面。另外,處理器提供ISA以明確管理SEPT頁面。
解決EPT重新映射攻擊為自用於TDX之受信任計算庫(TCB)移除超管理器以滿足雲端服務提供商要求之核心要求中之一者。同時,TDRM之記憶體管理靈活性必須保持用於可調式記憶體管理方案(例如,支援分段記憶體分配、隨選指派、頁面調換等)。本發明之實施例亦滿足彼等非安全要求。
描述使用信任域(TD)提供虛擬化系統中之隔離之架構。計算中之當前趨勢為藉由利用代管由雲端服務提供商(CSP)提供之服務而將資料及企業工作負載置放於雲端中。由於代管雲端中之資料及企業工作負載,CSP之客戶(本文中被稱作租戶)正請求用於其工作負載之較佳安全及隔離解決方案。詳言之,客戶正尋求使得能夠在租戶之軟體之TCB外部進行CSP提供軟體之操作的解決方案。系統之TCB指代能夠影響對系統之總體操作之信任的硬體、韌體及/或軟體組件之集合。
在本揭露內容之實施中,提供TD架構及用於TD架構之指令集架構(ISA)延伸(在本文中被稱作TD延伸(TDX))以提供不受信任CSP基礎設施中執行之客戶(租戶)軟體之機密性(及完整性)。可為系統單晶片(SoC)能力之TD架構提供TD工作負載與CSP軟體,諸如CSP之虛擬機管理器(VMM)之間的隔離。TD架構之組件可包括1)經由MK-總記憶體加密(MKTME)引擎之記憶體加密;2)在本文中被稱作信任域資源管理器(TDRM)之資源管理能力(TDRM可為虛擬機監視器(VMM)之軟體延伸);以及3)處理器中經由CPU管理記憶體所有權表(MOT)及經由CPU存取受控TD控制結構提供之執行狀態及記憶體隔離能力。TD架構提供處理器部署充分利用MK-TME引擎、MOT及存取受控TD控制結構之TD以供TD工作負載之安全操作的能力。
在一個實施中,租戶之軟體以被稱為TD之架構概念執行。TD(亦被稱作租戶TD)指代租戶工作負載(其可包含例如單獨作業系統(OS)連同OS頂部上執行之其他環-3應用程式,或VMM頂部上執行之虛擬機(VM)連同其他環-3應用程式)。各TD獨立於系統中之其他TD操作且使用平台上由TDRM指派之邏輯處理器、記憶體及I/O。各TD在記憶體中使用MK-TME引擎之至少一個排他性加密密鑰以密碼方式隔離以用於加密與信任域相關聯之記憶體(保存程式碼及/或資料)。
在本揭露內容之實施中,TD架構中之TDRM充當TD之主機且具有對核心及其他平台硬體之完全控制。TDRM向TD中之軟體指派邏輯處理器。然而,TDRM無法存取所指派邏輯處理器上之TD執行狀態。類似地,TDRM將實體記憶體及I/O資源指派至TD,但由於每TD使用由處理器強制執行之單獨加密密鑰及對記憶體之其他完整性及重放控制而無權存取TD之記憶體狀態。TD中執行之軟體在特權減少的情況下操作使得TDRM可保持對平台資源之控制。然而,TDRM在經界定情形下無法影響記憶體或CPU結構中TD狀態之機密性或完整性。
用於提供虛擬化系統中之隔離之習知系統並不完全自租戶之TCB提取CSP軟體。此外,習知系統可使用本揭露內容之實施避免的單獨晶片組子系統來顯著增加TCB。本揭露內容之實施之TD架構藉由自TCB移除CSP軟體明確減小TCB而提供客戶(租戶)工作負載與CSP軟體之間的隔離。實施藉由為CSP客戶工作負載(租戶TD)提供安全隔離提供優於習知系統之技術改良且允許自客戶之TCB移除CSP軟體,同時滿足CSP之安全及功能性要求。另外,TD架構可縮放至多個TD,其可支援多個租戶工作負載。此外,本文中所描述之TD架構為通用的且可應用於任何動態隨機存取記憶體(DRAM)或基於儲存類別記憶體(SCM)之記憶體,諸如非依電性雙直列記憶體模組(NV-DIMM)。因而,本揭露內容之實施允許軟體利用效能益處,諸如用於SCM之NVDIMM直接存取儲存(DAS)模式,而不會損害平台安全要求。
圖1A為根據本揭露內容之實施的使用TD提供虛擬化系統中之隔離之計算系統100之示意性方塊圖。虛擬化系統100包括支援數個用戶端裝置101A至101C之虛擬化伺服器110。虛擬化伺服器110包括執行TDRM 180之至少一個處理器112 (亦被稱作處理裝置)。TDRM 180可包括VMM (亦可稱為超管理器),其可具現化可由用戶端裝置101A至101C經由網路介面170存取之一或多個TD 190A至190C。用戶端裝置101A至101C可包括但不限於桌上型電腦、平板電腦、膝上型電腦、迷你筆記型電腦、筆記型電腦、個人數位助理(PDA)、伺服器、工作站、蜂巢式電話、行動計算裝置、智慧型手機、網際網路器具或任何其他類型之計算裝置。
TD可指代租戶(例如,客戶)工作負載。舉例而言,租戶工作負載可包括單獨OS連同在OS頂部上執行之其他環-3應用程式,或可包括在VMM頂部上執行之VM連同其他環-3應用程式。在本揭露內容之實施中,每一TD可使用用於加密與TD相關聯之記憶體(保存程式碼及資料)之單獨排他性密鑰在記憶體中以密碼方式隔離。
處理器112可包括一或多個核心120 (亦被稱作處理核心120)、範圍暫存器130、記憶體管理單元(MMU)140及輸出埠150。 1B為執行與MOT 160通訊之TDRM 180及一或多個信任域控制結構(TDCS)124及信任域執行緒控制結構(TDTCS)128之處理器核心120之詳細視圖之示意性方塊圖,如 1A中所示。TDTCS與TD-TCS在本文中可互換使用。處理器112可用於系統中,包括但不限於桌上型電腦、平板電腦、膝上型電腦、迷你筆記型電腦、筆記型電腦、PDA、伺服器、工作站、蜂巢式電話、行動計算裝置、智慧型手機、網際網路器具或任何其他類型之計算裝置。在另一實施中,處理器112可用於SoC系統中。
計算系統100表示可購自加利福尼亞州聖克拉拉英特爾公司之基於微處理裝置之處理系統,但亦可使用其他系統(包括具有其他微處理裝置、工程化工作台、機上盒及其類似者之PC)。在一個實施中,樣本系統100執行可購自華盛頓州雷蒙德微軟公司之WINDOWS™作業系統的版本,但亦可使用其他作業系統(例如,UNIX及Linux)、嵌入式軟體及/或圖形使用者介面。因此,本揭露內容之實施不限於硬體電路系統及軟體之任何特定組合。
一或多個處理核心120執行系統之指令。處理核心120包括但不限於提取指令之預提取邏輯、對指令進行解碼之解碼邏輯、執行指令之執行邏輯及其類似者。在一實施中,計算系統100包括組件,諸如採用包括執行演算法以供處理資料之邏輯之執行單元的處理器112。
虛擬化伺服器110包括主記憶體114及輔助儲存器118以儲存程式二進位及OS驅動器事件。輔助儲存器118中之資料可儲存於被稱作頁面之區塊中,且各頁面可對應於實體記憶體位址之集合。虛擬化伺服器110可採用虛擬記憶體管理,其中由核心120,諸如TD 190A至190C執行之應用程式使用映射至訪客實體記憶體位址之虛擬記憶體位址,且訪客實體記憶體位址藉由MMU 140映射至主機/系統實體位址。
核心120可執行MMU 140以將頁面自輔助儲存器118載入至主記憶體114 (其包括依電性記憶體及/或非依電性記憶體)中以供由處理器112上(例如,核心上)執行之軟體較快存取。當TD 190A至190C中之一者嘗試存取對應於載入至主記憶體114中之頁面之實體記憶體位址的虛擬記憶體位址時,MMU 140傳回請求資料。核心120可執行TDRM 180之VMM部分以將訪客實體位址轉譯成主記憶體之主機實體位址且提供允許核心120讀取、查核及解譯此等映射之協定的參數。
在一個實施中,處理器112實施TD架構及TD架構之ISA延伸(TDX)。TD架構提供TD工作負載190A至190C之間及與處理器112上執行之CSP軟體(例如,TDRM 180及/或CSP VMM(例如,根VMM 180))之隔離。TD架構之組件可包括1)經由MK-TME引擎145之記憶體加密;2)在本文中被稱作TDRM 180之資源管理能力;以及3)處理器112中經由MOT 160及經由存取受控TD控制結構(亦即,TDCS 124及TDTCS 128)提供之執行狀態及記憶體隔離能力。TDX架構提供處理器112部署充分利用MK-TME引擎145、MOT 160及存取受控TD控制結構(亦即,TDCS 124及TDTCS 128)之TD 190A至190C以供TD工作負載190A至190C之安全操作的能力。
在本揭露內容之實施中,TDRM 180充當主機且具有對核心120及其他平台硬體之完全控制。TDRM 180向TD 190A至190C中之軟體指派邏輯處理器。然而,TDRM 180無法存取所指派邏輯處理器上之TD 190A至190C執行狀態。類似地,TDRM 180將實體記憶體及I/O資源指派至TD 190A至190C,但由於單獨加密密鑰及記憶體上之其他完整性及重放控制而無權存取TD 190A之記憶體狀態。
關於單獨加密密鑰,處理器可利用MK-TME引擎145以對在執行期間使用之記憶體進行加密(及對其進行解密)。藉由全記憶體加密(TME),藉由核心120上執行之軟體之任何記憶體存取可在記憶體中藉由加密密鑰進行加密。MK-TME為允許使用多個加密密鑰之TME之增強(所支援密鑰之數目為實施相依性的)。處理器112可利用MKTME引擎145以致使使用不同MK-TME密鑰對不同頁面進行加密。MK-TME引擎145在本文中所描述之TD架構中可用於支援每TD 190A至190C一或多個加密密鑰,以幫助實現不同CSP客戶工作負載之間的密碼編譯隔離。舉例而言,當MK-TME引擎145用於TD架構中時,CPU預設強制執行使用TD特定密鑰對TD(所有頁面)進行加密。此外,TD可進一步選擇特定TD頁面為明文或使用對CSP軟體不透明之不同臨時密鑰進行加密。
各TD 190A至190C為軟體環境,其支援由VMM(例如,使用虛擬機延伸(VMX))、OS及/或應用程式軟體(由OS代管)組成之軟體堆疊。各TD 190A至190C獨立於其他TD 190A至190C操作且使用平台上由TDRM 180指派之邏輯處理器、記憶體及I/O。TD 190A至190C中執行之軟體在特權減少之情況下操作,使得TDRM 180可保持對平台資源之控制;然而,TDRM在經界定情形下無法影響TD 190A至190C之機密性或完整性。下文參考 1B更詳細地描述TD架構及TDX之其他細節。
本揭露內容之實施不限於電腦系統。本揭露內容之替代實施可用於諸如手持型裝置之其他裝置及嵌入式應用程式中。手持型裝置之一些實例包括蜂巢式電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。嵌入式應用程式可包括微控制器、數位信號處理裝置(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器或可根據至少一個實施執行一或多個指令之任何其他系統。
可在單一處理裝置桌上型電腦或伺服器系統之上下文中描述一個實施,但替代實施可包括於多處理裝置系統中。計算系統100可為「集線器」系統架構的實例。計算系統100包括處理資料信號之處理器112。作為一個說明性實例,處理器112包括複雜指令集電腦(CISC)微處理裝置、精簡指令集(RISC)微處理裝置、超長指令字(VLIW)微處理裝置、實施指令集之組合之處理裝置或任何其他處理裝置,諸如數位信號處理裝置。處理器112耦接至處理裝置匯流排,其在處理器112與計算系統100中之其他組件,諸如主記憶體114及/或輔助儲存器118之間傳輸資料信號,儲存指令、資料或其任何組合。計算系統100之其他組件可包括圖形加速器、記憶體控制器集線器、I/O控制器集線器、無線收發器、快閃基本輸入輸出系統、網路控制器、音訊控制器、串列擴充埠、I/O控制器等。此等元件執行彼等熟習此項技術者所熟知之其習知功能。
在一個實施中,處理器112包括1階(L1)內部快取記憶體。取決於架構,處理器112可具有單一內部快取記憶體或多級內部快取記憶體。取決於特定實施及需要,其他實施包括內部及外部快取記憶體二者之組合。暫存器檔案將不同類型之資料儲存於各種暫存器中,包括整數暫存器、浮點暫存器、向量暫存器、備用暫存器、影子暫存器、檢查點暫存器、狀態暫存器、組態暫存器及指令指標暫存器。
應注意,執行單元可或可不具有浮點單元。在一個實施中,處理器112包括微碼(ucode)ROM以儲存微碼,微碼在被執行時針對某些巨集指令執行演算法或處置複雜情境。此處,微碼有可能可更新以處置處理器112之邏輯錯誤/修復。
執行單元之替代實施亦可用於微控制器、嵌入式處理裝置、圖形裝置、DSP及其他類型之邏輯電路中。系統100包括主記憶體114 (亦可稱為記憶體114)。主記憶體114包括DRAM裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置或其他記憶體裝置。主記憶體114儲存待由處理器112執行之由資料信號表示之指令及/或資料。處理器112經由處理裝置匯流排耦接至主記憶體114。系統邏楫晶片,諸如記憶體控制器集線器(MCH)可耦接至處理裝置匯流排及主記憶體114。MCH可提供至主記憶體114之高頻寬記憶體路徑以用於指令及資料儲存及用於圖形命令、資料及紋理之儲存。舉例而言,MCH可用於在處理器112、主記憶體114及系統100中之其他組件之間引導資料信號且用於在處理裝置匯流排、記憶體114及系統I/O之間橋接資料信號。MCH可經由記憶體介面耦接至記憶體114。在一些實施中,系統邏楫晶片可提供用於經由加速圖形埠(AGP)互連件耦接至圖形控制器之圖形埠。
計算系統100亦可包括I/O控制器集線器(ICH)。ICH可經由本端I/O匯流排提供至一些I/O裝置之直接連接。本端I/O匯流排為用於將周邊裝置連接至記憶體114、晶片組及處理器112之高速I/O匯流排。一些實例為音訊控制器、韌體集線器(快閃基本輸入輸出系統)、無線收發器、資料儲存器、含有使用者輸入及鍵盤介面之傳統I/O控制器、諸如通用串列匯流排(USB)等串列擴充埠,及網路控制器。資料儲存裝置可包含硬碟機、軟碟機、CD-ROM裝置、快閃記憶體裝置或其他大容量儲存裝置。
對於系統之另一實施,由上文所描述之處理裝置核心120執行之指令可與系統單晶片一起使用。系統單晶片之一個實施包含處理裝置及記憶體。用於一個此類系統之記憶體為快閃記憶體。快閃記憶體可與處理裝置及其他系統組件位於同一晶粒上。另外,諸如記憶體控制器或圖形控制器等其他邏輯區塊亦可位於系統單晶片上。
參考 1B,此圖描繪根據本揭露內容之一個實施的 1A之處理器112之方塊圖。在一個實施中,處理器112可經由單一核心120或跨越若干核心120執行應用程式堆疊101。如上文所論述,處理器112可提供TD架構及TDX以為在不受信任雲端服務提供商(CSP)基礎設施中之客戶/租戶(亦即,TD 190A)中執行之客戶軟體提供機密性(及完整性)。TD架構提供經由MOT 160之記憶體隔離;經由TDCS 124及/或TDTCS 128之併有CPU密鑰管理之CPU狀態隔離;以及用於TD 190A軟體之CPU量測基礎設施。
在一個實施中,TD架構提供ISA延伸(被稱作TDX),其支援OS及OS管理應用程式(虛擬化及非虛擬化)之機密操作。啟用TDX之平台,諸如包括處理器112之平台可充當被稱作TD之多個經加密上下文。為了易於解釋,單一TD 190A描繪於 1B中。各TD 190A可執行VMM、VM、OS及/或應用程式。舉例而言,TD 190A描繪為代管VM 195A。
在一個實施中,TDRM 180可包括為VMM功能性(例如,根VMM)之部分。VMM可指代創建、執行及管理虛擬機(VM),諸如VM 195A之軟體、韌體或硬體。應注意,VMM可創建、執行及管理一或多個VM。如所描繪,VMM 110包括為處理裝置122之一或多個處理核心120之組件。VMM 110可創建及執行VM 195A並將一或多個虛擬處理器(例如,vCPU)分配至VM 195A。VM 195A在本文中可被稱為訪客195A。VMM可允許VM 195A存取基礎計算系統,諸如 1A之計算系統100之硬體。VM 195A可執行訪客作業系統(OS)。VMM可管理訪客OS之執行。訪客OS可用以控制VM 195A之虛擬處理器對計算系統100之基礎硬體及軟體資源之存取。應注意,當存在處理裝置112上操作之眾多VM 195A時,VMM可管理眾多訪客上執行之訪客OS中之各者。在一些實施中,VMM可藉由TD 190A實施以管理VM 195A。此VMM可被稱為租戶VMM及/或非根VMM且在下文中更詳細地論述。
TDX亦提供用於被稱作TDRM 180之TD架構之TD管理層的程式化介面。TDRM可實施為CSP/根VMM之部分。TDRM 180管理TD 190A之操作。雖然TDRM 180可指派及管理資源,諸如CPU、記憶體及輸入/輸出(I/O)至TD 190A,但TDRM 180經設計以在TD 190A之TCB外部操作。系統之TCB指代硬體、韌體及/或軟體組件之集合,其具有影響系統之總體操作之信任的能力。
在一個實施中,TD架構因此為保護TD 190A中執行之軟體之能力。如上文所論述,TD架構之組件可包括:1)經由具有至TME之多密鑰延伸之TME引擎(例如, 圖1A之MK-TME引擎145)的記憶體加密;2)軟體資源管理層(TDRM 180);以及3)TD架構中之執行狀態及記憶體隔離能力。
圖2A為描繪實施TD架構200之實例計算系統之方塊圖。TD架構200支援二種類型之TD。第一類型之TD為租戶信任CSP以強制執行機密性且並不實施本揭露內容之實施之TD架構的TD。此類型之傳統TD描繪為TD1 210。TD1 210為具有CSP VMM管理之TCB 202之CSP TD。TD1 210可包括管理CSP VM 214及/或一或多個租戶VM 216A、216B之CSP VMM 212。在此情況下,租戶VM 216A、216B由VM 216A、216B TCB 202中之CSP VMM 212管理。在本揭露內容之實施中,租戶VM 216A、216B仍可充分利用在此模型中經由TME或MK-TME之記憶體加密(在下文中進一步描述)。
另一種類型之TD為租戶並不信任CSP來強制執行機密性且因此依賴於具有本揭露內容之實施之TD架構之CPU的TD。此類型之TD以二個變體展示為TD2 220及TD3 230。TD2 220展示為具有由TD2 220中執行之租戶VMM(非根)222利用以管理租戶VM 225A、225B之虛擬化模式(諸如VMX)。TD3 230不包括使用虛擬化模式之軟體,但替代地直接在TD3 230中執行闡明OS 235。TD2 220及TD3 230為具有如本揭露內容之實施中所描述之硬體強制執行之TCB 204的租戶TD。在一個實施中,TD2 220或TD3 230可與關於 1A及/或 1B所描述之TD 190A相同。
TDRM 180管理全部三種類型之TD 210、220、230之生命週期,包括資源之分配。然而,TDRM 180在TCB中不用於TD類型TD2 220及TD3 230。TD架構200並不對系統上主動的TD之數目或混合進行任何架構限制。然而,特定實施中之軟體及某些硬體限制可由於其他約束限制系統上並行地執行之TD之數目。
圖2B為描繪TD架構250及TD 220與TDRM 280之間的互動之實例之方塊圖。在一個實施中,TD 220及TDRM 280與其關於 2A所描述之對應物相同。TD架構250可與由 1A1B之計算裝置100提供之TD架構及/或 2A之TD架構200相同。TD架構250提供管理系統上作用中之TD之生命週期的層。支援TD之處理器由被稱作TDX操作之形式的處理器操作提供。存在二種類型之TDX操作:資源管理器操作及租戶操作。一般而言,TDRM 180在TDX資源管理器操作中執行,且TD,諸如TD2 220在TDX租戶操作中執行。資源管理器操作與租戶操作之間的轉變被稱作TDX轉變。
存在二種類型之TDX轉變:TD進入270及TD退出260。自TDX資源管理器操作至TDX租戶操作中之轉變被稱作TD進入270。自TDX租戶操作至TDX資源管理器操作之轉變被稱作TD退出260。
TDX資源管理器操作中之處理器行為類似於TDX操作外部。主要差異在於:TDX操作(TDX指令)之集合可用且可載入至某些控制暫存器中之值限於限制TDRM 180之模式及能力。
TDX租戶操作中之處理器行為類似地限於促進隔離。舉例而言,代替一般操作,某些事件致使至TDRM 180之TD退出260。此等TD退出260並不允許TDRM 180修改TD 220行為或狀態。TDRM 180使用平台能力來保持對平台資源之控制。TD 220中執行之軟體可使用軟體可見資訊以判定其在TD 220中執行,且可對載入至TD 220中之額外軟體強制執行本端量測策略。然而,驗證TD 220之安全狀態由遠端證明方執行以確保機密性。
TD架構250經設計以使在執行於TD 220中時對依賴於虛擬化之軟體之相容性影響最小化,且因此使租戶操作中執行之VM 225A、225B與租戶操作中執行之租戶VMM 222之間的大部分互動保持不變。若TD 220中不存在VMM 222,則VM OS可經修改成與TDRM 180一起用作根VMM。
在一個實施中,TDRM 180可明確決定致使TD退出260,例如終止TD 120或管理記憶體資源(例如,產生所指派記憶體資源、請求自由記憶體資源等)。TD架構250亦為TDRM 180提供迫使TD退出260用於搶佔之能力。在TD退出260時,TD架構強制執行將TD 220之執行狀態保存於分配至TD 220之CPU存取受控記憶體中且使用對TDRM 180或其他TD不可見的TD 220之唯一加密密鑰(在下文中進一步論述)進行加密以保護TD狀態之機密性免受TDRM 180或其他TD的影響。TD執行狀態可類似地經由對記憶體之完整性控制受保護以防欺騙、重新映射及/或重放。
TD進入270為TD退出260之互補事件。舉例而言,TD進入270可發生在TDRM 180排程TD 220以執行於邏輯處理器上且將執行傳送至TD 220中執行之軟體時。在TD進入270期間,TD架構250強制執行將TDRM 180之執行狀態保存於TDRM擁有之記憶體中,該執行狀態使用經指派以供TDRM 180單獨使用之唯一加密密鑰進行加密。
諸如TD 220之TD可由TDRM 180使用TDCREATE(以創建TDCS)、TDTCREATE(以創建TD-TCS)及TDADDPAGE指令設定,致使屬於TD 220之記憶體使用對TDRM 180或其他TD不可見或可存取該TDRM或其他TD之TD唯一加密密鑰進行加密。在執行屬於TD之任何指令之前,所有TD記憶體使用TD唯一密鑰進行加密。儘管本文中參考特定指令名稱,但用於指令之其他名稱可用於本揭露內容之實施中且不限於本文中所提供之特定名稱。
在一個實施中,TDRM 180可在簽名驗證之後藉由小軟體影像(類似於IBB或初始啟動區塊)啟動各TD 220且使用平台信任根記錄IBB量測值(用於後續證明)。TD 220中執行之IBB軟體負責完成TD 220之經量測啟動並自TDRM 180請求額外資源。TD 220具有當在TD 220內部執行時針對整個TD 220使用單一加密密鑰或針對不同租戶VM 225A、225B (及/或容器或不同記憶體資源,諸如NVRAM)使用額外加密密鑰的選項。因此,當首先設定TD 220時,TD 220正使用排他性CPU產生之MK-TME密鑰。此後,TD 220可任擇地針對在TD 220內部操作之各租戶軟體管理上下文(例如,租戶VM 225A、225B,容器或其他記憶體類型)設定額外MK-TME加密密鑰。
為了使對用於CSP(例如,TDRM根VMM 180及租戶VMM 222)之VMM之軟體相容性影響最小化,虛擬化(例如,VMX)操作在TD架構250中之TD 220內部可保持未經修改。類似地,VMM軟體之操作,諸如延伸頁表(EPT)管理可保持在租戶VMM 222(若其在TD 220中處於作用中且不由TDRM 180管理)之控制下。當TDRM 180為各TD 220指派實體記憶體時,TD架構250包括MOT(亦即,關於 1A1B所描述之MOT 160)。處理器112查詢TDRM 180管理之MOT以將記憶體之分配指派至TD 220。此允許TDRM 180完全能夠將記憶體作為資源管理,而無需具有對駐留於所指派TD記憶體中之資料之任何可見性。在一些實施中,如上文所論述,平台(例如,根)VMM及TDRM 180可處於同一加密密鑰域中,因此共用記憶體管理及排程器功能(但仍保持在租戶之TCB外部)。
在一實施例中, 圖3說明實例計算系統300。可在計算系統300上具現化來自TD 1 190A、TD 2 190B、...、TD N 190C之一或多個信任域(TD),其中N為自然數。各TD包括程式碼/資料308,其可包括對一或多個訪客虛擬位址(GVA)310之參考。為了將GVA轉譯成可用於存取計算系統之實體記憶體之一部分的實體位址,TD可使用訪客頁表312。因此,GVA 310可使用訪客頁表312轉譯成訪客實體位址(GPA)166。GPA 166可接著經由EPT 322映射至主機實體位址(HPA)161,以存取主機實體記憶體332。
圖4說明實例訪客實體記憶體316。在此實例中,展示複數個記憶體頁面,其中與TD相關聯之各頁面係藉由使用不同密鑰,諸如用於各TD之唯一私用密鑰之加密來保護。舉例而言,與TD 1 190A相關聯之頁面402可藉由TD 1之密鑰進行加密,與TD 2 190B相關聯之頁面404可藉由TD 2之密鑰進行加密,以此類推,直至與TD N 190C相關聯之頁面406可藉由TD N之密鑰進行加密。如所已知,不與TD相關聯之頁面408可使用記憶體加密來保護。
圖5說明訪客實體位址(GPA)空間之實例分割。TD架構將用於訪客實體記憶體316之訪客實體位址空間502分割成二個部分-私用位址空間504及共用位址空間506。對映射至私用位址空間504之頁面的存取可藉由TD之私用密鑰進行加密及完整性保護。對映射至共用位址空間506之頁面的存取可藉由由TD 190A及TDRM 180共用之密鑰進行加密及完整性保護。在一實施例中,GPA之最高有效位元被稱為「共用」位元。在其他實施例中,GPA之另一預定位元可用於指示共用狀態對比私用狀態。
轉回至 3,TDRM 180設定不受信任EPT 322,其提供GPA 166之轉譯,其中「共用」位元設定至1(亦即,共用頁面)。對此EPT之指標(EPTP)325(由TDRM及所儲存信任域控制結構(TDCS)124指定)可在處理器進入TD模式時由處理器112之頁面未命中處置器(PMH)140程式化且可在處理器退出TD模式時清除。
本發明之實施例引入可由處理器112硬體構建及管理之一或多個安全EPT(SEPT)334。各TD可具有相關聯SEPT。在系統初始化之後,SEPT結構與EPT相同,除用於SEPT頁面之記憶體使用TD臨時密鑰保護(亦即,對頁面進行加密及完整性保護)外。在一個實施例中,SEPT中之SW可用/忽略位元中之一些保留於SEPT條目中,使得CPU可根據需要儲存微型架構狀態資訊(諸如,鎖定、GPA狀態等)。
對SEPT之指標(被稱作SEPTP)336可在處理器進入TD模式時由處理器之頁面未命中處置器(PMH)140程式化且在處理器退出TD模式時清除。SEPT 334及SEPTP 336可儲存於主機實體記憶體332之受保護區域中且不可由TD存取或已知。SEPT 334及SEPTP 336可僅由處理器112之某些組件存取,諸如頁面未命中處置器140、SEPT指令338及實體位址轉譯328。在一實施例中,SEPT 334可儲存於主機實體記憶體332內之受保護記憶體中。在另一實施例中,用於TD 190A之SEPT可儲存於訪客實體記憶體316之經加密頁面中,其中頁面使用TD之私用密鑰進行加密。
圖6說明處置共用頁面及私用頁面之位址轉譯之實例邏輯流程600。本文中包括表示用於執行所揭示架構之新穎態樣之實例方法的邏輯流程之集合。儘管出於解釋簡單化之目的將本文中所展示之一或多種方法展示並描述為一系列動作,但熟習此項技術者將理解並瞭解,該等方法不受動作之次序限制。一些動作可根據此以不同次序發生及/或與來自本文中所展示及描述之動作的其他動作同時發生。舉例而言,熟習此項技術者將理解及瞭解,可將方法替代性地表示為一系列相關狀態或事件,諸如以狀態圖表示。此外,並非方法中所說明之所有動作可為新穎實施所需的。
邏輯流程可以軟體、韌體及/或硬體實施。在軟體及韌體實施例中,邏輯流程可由儲存於至少一個非暫時性電腦可讀媒體或機器可讀媒體(諸如,光學、磁性或半導體儲存器)上之電腦可執行指令來實施。實施例並不限於此上下文中。
在區塊602處,PMH 140接收請求以將訪客實體位址(GPA)166轉譯成主機實體位址(HPA)161。在區塊604處,PMH 140檢查GPA之「共用」位元。當請求PMH將「共用」位元設定為0之GPA(亦即,私用頁面)轉譯成HPA時,在區塊606處,PMH查核(亦即,使用已知頁面位址轉譯技術)由SEPTP 336參考之SEPT 334。對於「共用」位元設定至1之GPA(亦即,共用頁面),在區塊608處,PMH查核由EPTP 325參考之EPT 322。在其他實施例中,共用位元之含義可翻轉(亦即,0意謂私用頁面且1意謂共用頁面)。故障處置/報告改變可包括若在使用SEPTP 336時觀測到任何EPT違反(對於「共用位元」=0 GPA),則EPT違反退出檢核報告由於SEPT 336中之EPT違反而發生TD退出。其他實施例可防止TD在此EPT違反自SEPT 336發生的情況下進一步執行。
由於SEPT 336由處理器構建及管理,因此對於使用SEPT 334執行之私用頁面,TDRM 180(或傳統VMM)無法影響GPA至HPA轉譯。VMM 180在指派頁面時將GPA指定為HPA,但一旦經指派,就無法在TD 190A不知道的情況下惡意地重新映射GPA。
現轉回至圖3,亦被稱作實體位址元資料表(PAMT)之實體位址(PA)追蹤器組件342為由CPU儲存於受保護記憶體中之每4KB頁面元資料表,使得軟體可從不存取該表。在一實施例中,PA追蹤器用於藉由以下欄位保存各頁面之狀態資訊:PAMT.TYPE=頁面類型-例如常規、自由、TDCS、TDVPS、TDSSA、SEPT、PMDSA等;PAMT.OWNER=TDID(對於常規)、TDVPS(對於TDSSA);PAMT.EPOCH=用於轉譯後備緩衝器(TLB)追蹤;PAMT.LOCK=用於頁面鎖定。
圖7說明用於構建、執行及拆卸信任域之實例邏輯流程700。圖7中所展示之TD生命週期涵蓋用於TD記憶體管理之所有ISA及硬體互動。在區塊702處,可構建信任域(TD)。在一實施例中,TD構建記憶體指派/量測可包括以下操作:添加SEPT頁面及映射(藉由使用TDADDSEPT指令)、將頁面添加至TD量測(藉由使用TDADDPAGE及TDEXTEND指令)及將零頁面添加至TD後量測(藉由使用TDAUGPAGE指令)。
在區塊704處,可執行信任域。在一實施例中,TD執行(例如,所指派記憶體之使用觸發上文所描述之PMH 140行為)可包括用於記憶體分頁之操作(藉由使用TDBLOCKPAGE、TDEVICT及TDRELOAD指令)及用於記憶體碎片/碎片整理之操作(藉由使用TDBLOCKPAGE、TDPROMOTE及TDDEMOTE指令)。
在區塊706處,可拆解信任域。在一實施例中,TD拆解可包括用於記憶體解除分配之操作(藉由使用TDBLOCKPAGE及TDREMOVE指令)及用於SEPT 134頁面之記憶體回收(藉由使用TDREMOVEPAGE指令)。
處理器提供可供TDRM 180調用以管理SEPT 334之指令。 8說明安全延伸頁表(SEPT)指令338之實例集合。
TDADDSEPT 802—此指令將GPA 166至HPA 161映射添加至SEPT 334。此指令添加映射以將GPA轉譯成HPA,但將映射設定為阻止存取。僅當頁面HPA 161使用TDADDPAGE或TDAUGPAGE指令實體地指派至TD 190A時,此映射才可有效。此指令使用下文描述之創建映射微指令來更新SEPT 334。
TDADDPAGE 804—此指令將頁面添加至TD 190A。TDRM 180經由參數指定此頁面之初始內容。此指令首先將初始內容複製至頁面,使得內容藉由TD 190A之私用加密密鑰進行加密。隨後,此指令亦更新且使得SEPT 334中之對應轉譯有效,使得TD 190A現可存取此等頁面。此指令使用下文描述之指派映射及解除阻止映射微指令來更新SEPT 334。
TDAUGPAGE 806—此指令類似於TDADDPAGE,但替代將初始內容複製至頁面中,指令將頁面初始化成零。此指令使用下文描述之指派映射及解除阻止映射微指令來更新SEPT 334。
TDBLOCKPAGE 808—此指令將指定頁面之SEPT 334映射更新為阻止狀態,使得頁面無法自TD 190A存取。此指令使用下文描述之阻止映射微指令來更新SEPT 334。
TDEVICTPAGE 810—此指令將指定頁面之SEPT 334映射更新為阻止狀態,使得頁面無法自TD 190A存取。此指令使用下文描述之阻止映射微指令。此指令接著產生處理器密鑰完整性強制執行之頁面元資料,其包括GPA 166、權限及頁面內容,使得TDRM可使用HPA 166以用於另一TD 190B或VM。
TDRELOADPAGE 812—此指令首先驗證由TDRM 180提供之頁面元資料之完整性且更新將完整性檢查元資料傳遞至下文描述之指派映射及解除阻止映射微指令之所指定GPA 166之SEPT 334映射。
TDPROMOTE 814—此指令由TDRM 180用於將4k頁面TDEVICT/TDRELOAD至記憶體之連續2MB區中以「提昇」至較大TLB映射。TDRM必須在其頁面訊框編號(PFN)資料庫中追蹤指派至TD 190A、190B、...、190C之HPA 161。實施記憶體管理之所有作業系統/VMM管理PFN資料庫中之實體頁面之狀態。TDRM接著可隨後經由使用下文描述之提昇映射微指令之此指令請求SEPT結構之提昇/降級。
TDDEMOTE 816—此指令由TDRM使用以將較大頁面分段成較小頁面之連續區以使TLB映射降級。TDRM必須在其PFN資料庫中追蹤針對TD 190A分段之HPA 161。指令經由下文描述之降級映射微指令更新SEPT 334結構。
TDREMOVEPAGE 818—此指令自TD 190A移除頁面。指令可僅針對先前已經經由TDADDPAGE添加至TD 190A之頁面執行。(亦即,頁面可未經移除直至針對SEPT 334中之HPA 161存在一或多個有效映射)。
TDREMOVEMAPPING 820—此指令自SEPT 334移除用於GPA 166之阻止映射且在不再自SEPT頁面保持傳出參考時將頁面轉換回至TDRM 180所有權。用於SEPT頁面334之分頁可由用於儲存SEPT 334元資料之特定元資料之EPT 122頁面(相較於常規TD頁面)之類似TDMAPPINGEVICT及TDMAPPINGRELOAD變體支援。在一實施例中,指令TDWBPAGE、TDLDPAGE(在圖8中未展示)在SEPT中將GPA標記為「逐出」且接著捕獲頁面之狀態且藉由分頁密鑰對其進行加密,以及捕獲頁面之散列、GPA及屬性。
圖8亦說明在實施上文所論述之SEPT指令338時使用之SEPT微指令850之實例集合。
創建映射852採用GPA 166作為輸入參數以經由SEPT 334及一個HPA 161目的地(無來源)映射以添加SEPT頁面並插入映射。處理器112驗證GPA 166不具有「共用」位元集合,否則傳回錯誤。處理器112經由SEPT 334執行頁面查核行程(處理器強制執行HPA 161並非自我參考)以供所提供GPA 166在需要新HPA 161時建立。在頁面查核行程期間,若頁面查核行程需要新頁面以使映射完成,則處理器使用TDRM密鑰ID對所提供HPA進行讀取檢查以確保頁面為未指派至任何其他TD 190A、...、190C之一般頁面。替代地,處理器可使用位元映射(查找HPA)以執行此檢查。若頁面為一般頁面,則處理器使用TD密鑰ID執行一系列MOVDIR64操作以清除SEPT頁面目錄條目(PDE)/頁表條目(PTE)頁面(有效地更新記憶體控制器中之完整性檢查值及將頁面轉換成TD頁面)。對於非葉延伸頁表條目(EPTE),處理器讀取-修改-藉由經修改延伸頁面目錄/表(x)快取記憶體條目(EPxE)寫入快取線以參考所添加HPA 161,更新上部層級EPxE之參考計數。若需要更多頁面以使映射完全指定,則處理器傳回錯誤碼以報告至OS,否則對於葉EPTE,處理器112讀取-修改-藉由經修改EPxE寫入快取線以將GPA 166標記為不存在(因此阻止映射)。
指派映射854採用GPA 166、權限、用於待指派至TD 190A之最終頁面之源頁面及目的地HPA 161之有效位址作為輸入參數。處理器112驗證GPA 166不具有「共用」位元集合。處理器執行頁面查核行程,其在處理器暫停/需要更多頁面時傳回錯誤(接著TDRM應使用TDADDSEPT以修復錯誤)。若頁面查核行程成功地完成,則處理器檢查映射是否標記為不存在(亦即,阻止狀態)。對於目的地HPA 161,處理器使用TDRM密鑰ID對所提供HPA進行讀取檢查以確保頁面為未指派至相同或另一TD 190A、...、190C之一般頁面。此檢查亦防止同一TD頁面之別名。替代地,處理器可使用位元映射(查找HPA)以執行此檢查。若此檢查成功地通過,則處理器執行至HPA之一系列MOVDIR64寫入以將資料自源頁面複製至目的地頁面(取決於參數具有內容或零)。對於最終EPTE頁條目,處理器讀取-修改-寫入以藉由目的地HPA、權限修改EPTE,並將其標記為不存在(亦即,阻止);且更新L2 EPTE上之參考計數。
解除阻止映射856採用GPA 166作為輸入參數。處理器驗證GPA不具有「共用」位元集合。處理器執行頁面查核行程,其在處理器暫停/需要更多頁面時傳回錯誤(接著TDRM 180應使用TDADDSEPT指令以修復錯誤)。若頁面查核行程成功地完成,則處理器檢查映射是否標記為不存在(亦即,阻止狀態)。對於最終EPTE頁條目,處理器讀取-修改-寫入以修改EPTE以將其標記為存在(亦即,未被阻止)。在一實施例中,指派映射及解除阻止映射微指令可經組合以用於最佳化操作。
阻止映射858採用GPA 166作為輸入參數。處理器驗證GPA不具有「共用」位元集合。處理器112執行頁面查核行程,其在處理器暫停/需要更多頁面時傳回錯誤(接著TDRM應使用TDADDSEPT指令以修復錯誤)。若頁面查核行程成功地完成,則處理器檢查映射是否標記為存在(亦即,並非阻止狀態)。對於最終EPTE頁條目,處理器讀取-修改-寫入以修改EPTE來將其標記為不存在(阻止)。
提昇映射860採用GPA 166及所要大小作為輸入參數。處理器112驗證GPA不具有「共用」位元集合。處理器執行頁面查核行程,其在處理器暫停/需要更多頁面時傳回錯誤(接著TDRM應使用TDADDSEPT指令以修復錯誤)。若查核行程成功地完成,則處理器檢查映射是否標記為不存在(亦即,阻止狀態)。處理器經由9個EPxE可用位元檢查維持於內部層級(對於較低層級)之參考計數之PDE且檢查頁表條目(PTE)頁面是否完全填充(亦即,512個條目),所有條目在HPA空間中為連續的且標記為被阻止。在成功後,處理器傳回中間SEPT頁面334之HPA,使得TDRM可TDREMOVE彼等頁面,且解除阻止SEPT中之2MB映射。
降級映射862採用第一HPA、GPA 166及所要(較小)大小作為輸入參數。處理器112驗證GPA不具有「共用」位元集合。處理器執行頁面查核行程,其在處理器暫停/需要更多頁面時傳回錯誤(接著TDRM應使用TDADDMAPPING指令以修復錯誤)。若查核行程成功地完成,則處理器檢查映射是否標記為不存在(亦即,阻止狀態)。處理器檢查葉EPTE頁面大小是否應大於所要(較小)大小且快取EPTE之第二HPA及目的地較大頁面之第三HPA。對於第一分段GPA(例如,2MB區之第一4KB),處理器使用在第一分段區之GPA及第一HPA中傳遞之創建映射微指令來初始化新PTE頁面。在成功後,對於剩餘分段,處理器使用指派映射及解除阻止映射微指令(使用自GPA及第三HPA3之偏移)來藉由先前步驟中之創建映射微指令更新對應於PTE頁面設定中之各分段之EPTE。處理器更新上部層級EPTE(亦即,第二HPA2)之參考計數。
清除映射864採用GPA 166作為輸入參數。處理器112驗證GPA不具有「共用」位元集合,否則處理器傳回錯誤。處理器經由SEPT 334執行頁面查核行程(處理器強制執行HPA 161並非自我參考)以供所提供GPA在SEPT 334未經設定時、在處理器未傳回錯誤時建立。在到達葉EPTE(處理器快取先前層級條目HPA)後,處理器讀取-修改-寫入快取線以更新葉EPxE來清除HPA並將EPTE標記為不存在(因此阻止映射)。處理器更新上部層級參考計數,並將層級及參考計數傳回至OS(使得OS可遞歸地重新嘗試移除所有SEPT頁面)。
實施可實施於許多不同系統類型中。現參考 9,展示根據實施的多處理裝置系統900之方塊圖。如 9中所示,多處理裝置系統900為點對點互連系統,且包括經由點對點互連件950耦接之第一處理裝置970及第二處理裝置980。如 9中所示,處理裝置970及980中之各者可為多核心處理裝置,包括第一及第二處理裝置核心(未展示),但處理裝置中有可能存在更多個核心。根據本發明之實施,處理裝置可各自包括混合式寫入模式邏輯。使用信任域提供虛擬化系統中之隔離之實施可實施於處理裝置970、處理裝置980或這二者中。
雖然展示為二個處理裝置970、980,但應理解,本揭露內容之範疇不限於此。在其他實施中,一或多個額外處理裝置可存在於給定處理裝置中。
處理裝置970及980展示為分別包括整合式記憶體控制器單元972及982。處理裝置970亦包括為其匯流排控制器單元點對點(P-P)介面976及978之部分;類似地,第二處理裝置980包括P-P介面986及988。處理裝置970、980可經由點對點(P-P)介面950使用P-P介面電路978、988交換資訊。如 9中所示,IMC 972及982將處理裝置耦接至各別記憶體,亦即記憶體932及記憶體934,其可為本端附接至各別處理裝置之主記憶體之部分。
處理裝置970、980可各自使用點對點介面電路976、994、986、998經由個別P-P介面952、954與晶片組990交換資訊。晶片組990亦可經由高效能圖形介面939與高效能圖形電路938交換資訊。
共用快取記憶體(未展示)可包括於處理裝置中或二個處理裝置外部,但經由Pp互連件與處理裝置連接,使得處理裝置之本端快取記憶體資訊中之任一者或二者可在處理裝置被置放於低功率模式下時儲存於共用快取記憶體中。晶片組990可經由介面996耦接至第一匯流排916。在一個實施中,第一匯流排916可為周邊組件互連(PCI)匯流排,或諸如PCI高速匯流排或另一第三代I/O互連匯流排等匯流排,但本揭露內容之範疇不限於此。
9中所示,各種I/O裝置914可耦接至第一匯流排916,連同將第一匯流排916耦接至第二匯流排920之匯流排橋接器918。在一個實施中,第二匯流排920可為低接腳計數(LPC)匯流排。在一個實施中,各種裝置可耦接至第二匯流排920,包括例如鍵盤及/或滑鼠922、通訊裝置927及儲存單元928,諸如可包括指令/程式碼及資料930之磁碟機或其他大容量儲存裝置。此外,音訊I/O 924可耦接至第二匯流排920。應注意,其他架構為可能的。舉例而言,替代 9之點對點架構,系統可實施多點匯流排或其他此類架構。
現參考 10,展示根據本揭露內容之實施之第三系統1000之方塊圖。 10說明處理裝置970、980可分別包括整合式記憶體及I/O控制邏輯(「CL」)972及982。對於至少一個實施,CL 972、982可包括如本文中所描述之整合式記憶體控制器單元。另外,CL 972、982亦可包括I/O控制邏輯。 9說明記憶體932、934耦接至CL 972、982,且I/O裝置1014亦耦接至控制邏輯972、982。傳統I/O裝置1015耦接至晶片組990。使用信任域提供虛擬化系統中之隔離之實施可實施於處理裝置970、處理裝置980或這二者中。
圖11為可包括核心1102中之一或多者的實例系統單晶片(SoC)。此項技術中已知的用於以下各者之其他系統設計及組態亦為合適的:膝上型電腦、桌上型電腦、手持型PC、個人數位助理、工程化工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理裝置、數位信號處理裝置(DSP)、圖形裝置、視訊遊戲裝置、機上盒、微控制器、蜂巢式電話、攜帶型媒體播放器、手持式裝置及各種其他電子裝置。一般而言,能夠併有如本文所揭示之處理裝置及/或其他執行邏輯之大量系統或電子裝置大體上為合適的。
現參考 11,展示根據本揭露內容之實施之SoC 1100之方塊圖。並且,虛線框為較高級SoC上之形貌體。在 11中,互連單元1102耦接至應用程式處理裝置1110,其包括一或多個核心1102A-N之集合及共用快取記憶體單元1106;系統代理單元1112;匯流排控制器單元1116;整合式記憶體控制器單元1114;一組或一或多個媒體處理裝置1120,其可包括整合式圖形邏輯1108、用於提供靜物及/或視訊相機功能性之影像處理裝置1124、用於提供硬體音訊加速度之音訊處理裝置1126及用於提供視訊編碼/解碼加速度之視訊處理裝置1128;靜態隨機存取記憶體(SRAM)單元1130;直接記憶體存取(DMA)單元1132;以及用於耦接至一或多個外部顯示器之顯示單元1140。使用信任域提供虛擬化系統中之隔離之實施可實施於SoC 1100中。
接下來轉向 12,描繪根據本揭露內容之實施之SoC設計之實施。作為說明性實例,SoC 1200包括於使用者設備(UE)中。在一個實施中,UE指代待由終端使用者使用以進行通訊的任何裝置,諸如手持型電話、智慧型手機、平板電腦、超薄筆記型電腦、具有寬頻配接器之筆記型電腦,或任何其他類似通訊裝置。AUE可連接至基地台或節點,其可在本質上對應於GSM網路中之行動台(MS)。使用信任域提供虛擬化系統中之隔離之實施可實施於SoC 1200中。
此處,SoC 1220包括2個核心-1206及1207。類似於以上論述,核心1206及1207可符合指令集架構,諸如具有Intel®架構Core™之處理裝置、進階微型裝置、公司(AMD)處理裝置、以MIPS為基礎之處理裝置、以ARM為基礎之處理裝置設計或其客戶,以及其被許可方或採用方。核心1206及1207耦接至快取記憶體控制1208,其與匯流排介面單元1209及L2快取記憶體1210相關聯以與系統1200之其他部分通訊。互連件1211包括晶片上互連件,諸如IOSF、AMBA或上文所論述之其他互連件,其可實施所描述揭露內容之一或多個態樣。
互連件1211提供至其他組件之通訊通道,諸如用以與SIM卡介接之用戶識別模組(SIM) 1230、用以保持用於由核心1206及1207執行以初始化及啟動SoC 1200之啟動程式碼的啟動ROM 1235、用以與外部記憶體(例如,DRAM 1260)介接之SDRAM控制器1240、用以與非依電性記憶體(例如,快閃記憶體1265)介接之快閃記憶體控制器1245、用以與周邊裝置介接之周邊控制1250 (例如,串聯周邊介面)、用以顯示及接收輸入(例如,觸控啟用輸入)之視訊編碼解碼器1220及視訊介面1225、用以執行圖形相關計算之GPU 1215等。此等介面中之任一者可併有本文中所描述之實施的態樣。
另外,系統說明用於通訊之周邊裝置,諸如藍牙模組1270、3G數據機1275、GPS 1280及Wi-Fi 1285。應注意,如上文所陳述,UE包括用於通訊之無線電。因此,此等周邊通訊模組可不都包括。然而,在UE中,應包括用於外部通訊之某一形式之無線電。
圖13說明呈計算系統1300之實例形式之機器之圖解表示,在該計算系統內可執行用於致使機器執行本文中所論述之方法中之任何一或多種的指令集。在替代實施中,機器可連接(例如,網路連接)至LAN、企業內部網路、企業間網路或網際網路中之其他機器。機器可在用戶端-伺服器網路環境中作為伺服器或用戶端裝置,或在同級間(或分散式)網路環境中作為同級機器操作。機器可為個人電腦(PC)、平板PC、機上盒(STB)、個人數位助理(PDA)、蜂巢式電話、網路電氣設備、伺服器、網路路由器、交換器或橋接器、或能夠執行指定待由機器採取的動作之指令集(順序或以其他方式)的任何機器。另外,雖然僅說明單個機器,但術語「機器」亦應被採用以包括個別地或聯合地執行一指令集(或多個指令集)以執行本文中所論述之方法中之任何一或多種的機器之任何集合。轉換頁面及區段之實施可實施於計算系統1300中。
計算系統1300包括處理裝置1302、主記憶體1304 (例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM)(諸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、靜態記憶體1306 (例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)及經由匯流排1330彼此通訊之資料儲存裝置1318。
處理裝置1302表示一或多個通用處理裝置,諸如微處理裝置、中央處理單元或其類似者。更特定言之,處理裝置可為複雜指令集計算(CISC)微處理裝置、精簡指令集電腦(RISC)微處理裝置、超長指令字(VLIW)微處理裝置或實施其他指令集之處理裝置或實施指令集之組合之處理裝置。處理裝置1302亦可為一或多個專用處理裝置,諸如特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位信號處理裝置(DSP)、網路處理裝置或其類似者。在一個實施中,處理裝置1302可包括一或多個處理裝置核心。處理裝置1302經組配以執行處理邏輯1326來執行本文中所論述之操作。在一個實施中,處理裝置1302可為 1之計算系統100之部分。替代地,計算系統1300可包括如本文中所描述之其他組件。應理解,該核心可支援多執行緒處理(執行操作或執行緒之二個或更多個平行集合),及可以多種方式進行此操作,包括時間分片多執行緒處理、同步多執行緒處理(其中單一實體核心提供用於實體核心正同步多執行緒處理的執行緒中之每一者之邏輯核心),或其組合(例如,時間分片提取及解碼及其後之同步多執行緒處理,諸如在Intel®超執行緒技術中)。
計算系統1300可進一步包括可通訊地耦接至網路1320之網路介面裝置1308。計算系統1300亦可包括視訊顯示單元1310 (例如,液晶顯示器(LCD)或陰極射線管(CRT))、字母數字輸入裝置1312 (例如,鍵盤)、游標控制裝置1314 (例如,滑鼠)、信號產生裝置1316 (例如,揚聲器)、或其他周邊裝置。此外,計算系統1300可包括圖形處理單元1322、視訊處理單元1328及音訊處理單元1332。在另一實施中,計算系統1300可包括指代積體電路之群組之晶片組(未說明),或經設計以與處理裝置1302一起工作且控制處理裝置1302與外部裝置之間的通訊的晶片。舉例而言,晶片組可為主機板上之連結處理裝置1302至極高速裝置(諸如,主記憶體1304及圖形控制器)、以及連結處理裝置1302至周邊裝置之較低速周邊匯流排(諸如,USB、PCI或ISA匯流排)的晶片集合。
資料儲存裝置1318可包括電腦可讀儲存媒體1324,在該電腦可讀儲存媒體上儲存有體現本文中所描述之功能的任何一或多種方法之軟體1326。軟體1326亦可在其由計算系統1300執行期間完全或至少部分地作為指令1326駐存於主記憶體1304內及/或作為處理邏輯1326駐存於處理裝置1302內;主記憶體1304及處理裝置1302亦構成電腦可讀儲存媒體。
電腦可讀儲存媒體1324亦可用於利用處理裝置1302儲存指令1326,如關於 1所描述,及/或含有調用上述應用程式之方法之軟體程式庫。雖然電腦可讀儲存媒體1324在一實例實施中展示為單一媒體,但術語「電腦可讀儲存媒體」應被視為包括儲存一或多個指令集之單一媒體或多個媒體(例如,集中式或分散式資料庫,及/或相關聯快取記憶體及伺服器)。術語「電腦可讀儲存媒體」亦應被視為包括能夠儲存、編碼或攜載指令集以供機器執行且致使機器執行實施之方法中之任何一或多種的任何媒體。術語「電腦可讀儲存媒體」應相應地被視為包括但不限於固態記憶體及光學及磁性媒體。
雖然已關於有限數目個實施描述本揭露內容,但熟習此項技術者將瞭解自本揭露內容之眾多修改及變化。希望隨附申請專利範圍涵蓋如在本揭露內容之真實精神及範疇內的所有此等修改及變化。
在本文中之描述中,闡述諸如以下各者之實例的眾多特定細節以便提供對本揭露內容之透徹理解:特定類型之處理裝置及系統組態、特定硬體結構、特定架構及微架構細節、特定暫存器組態、特定指令類型、特定系統組件、特定量測/高度、特定處理裝置管線步驟及操作等。然而,熟習此項技術者將顯而易見,無需採用此等特定細節來實踐本揭露內容。在其他情況下,尚未詳細描述熟知組件或方法,諸如特定及替代處理裝置架構、用於所描述演算法之特定邏輯電路/程式碼、特定韌體程式碼、特定互連操作、特定邏輯組態、特定製造技術及材料、特定編譯器實施、程式碼中之演算法之特定表達、特定切斷電源及閘控技術/邏輯及電腦系統之其他特定操作細節,以免不必要地混淆本揭露內容。
參考使用特定積體電路,諸如計算平台或微處理裝置中之信任域在虛擬化系統中提供隔離來描述實施。實施亦可適用於其他類型之積體電路及可程式化邏輯裝置。舉例而言,所揭示之實施不限於桌上型電腦系統或攜帶型電腦,諸如Intel® Ultrabooks™電腦。且亦可用於其他裝置中,諸如手持型裝置、平板電腦、其他薄型筆記型電腦、系統單晶片(SoC)裝置及嵌入式應用中。手持型裝置之一些實例包括蜂巢式電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。嵌入式應用通常包括微控制器、數位信號處理裝置(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器,或可執行下文教示之功能及操作的任何其他系統。其描述了該系統可為任何種類之電腦或嵌入式系統。所揭示之實施可尤其用於低端裝置,如同可穿戴式裝置(例如,手錶)、電子插入物、感測及控制基礎設施裝置、控制器、監督控制及資料獲取(SCADA)系統或其類似者。此外,本文中所描述之設備、方法及系統不限於實體計算裝置,但亦可關於用於節約能源及效率之軟體最佳化。如在以下描述中將易於變得顯而易見,本文中所描述之方法、設備以及系統的實施(不管參考硬體、韌體、軟體抑或其組合)對於藉由效能考量平衡的「綠色技術」遠景為至關重要的。 用於使用信任域之安全記憶體存取之設備及方法
在一個實施例中,程序位址空間ID(PASID)與信任域(TD)相關聯且用於安全地存取信任域。提供額外指令,其追蹤PASID至TD之指派且限制TD僅藉由所指派PASID產生ENQ*請求。另外,一個實施例追蹤裝置功能或PASID經由用於受信任裝置之位址轉譯之受信任IO記憶體管理單元(IOMMU)轉譯表至TD之指派並代表TD執行受信任IO轉譯後備緩衝器(IOTLB)及裝置TLB無效化。
另外,本發明之一個實施例包括高速匯流排(例如,PCIe)協定延伸以將裝置起始異動界定為「受信任或非受信任異動」(例如,具有異動標頭位元)。其他位元可用於表示裝置鑑認後之其他裝置能力。
最後,一個實施例包括IOMMU硬體延伸以將受信任IOMMU轉譯表用於源自裝置之受信任異動。TD特定密鑰ID可與轉譯實體位址相關聯以允許對TD私用記憶體之DMA操作。
14中說明用於信任域之受信任IO框架之一個實施例,其展示耦接至VM/TD且與特定PASID 1401相關聯之裝置1410。VM/TD使用PASID 1401存取唯一第一層級頁表1420 (例如,以執行訪客虛擬位址(GVA)至訪客實體位址(GPA)轉譯)。藉由自第一層級頁表1420擷取之位址,VM/TD使用其域ID 1405存取第二層級頁表1430 (例如,使用上文所描述之技術)。
在至虛擬機(VM)之裝置指派模型中,TD屬於由域ID 1405識別之唯一域且各TD域ID 1405與提供GPA至HPA之轉譯之第二層級頁表1430相關聯。在一個實施例中,第二層級頁表1430包含上文所描述之安全EPT頁表。各TD域可被指派1至N個PASID,而給定PASID可指派至僅一個TD域。TD域可被指派0至N個裝置功能(b/d/f),而直接指派裝置fn.可指派至僅一個TD。PASID 1401可與第一層級頁表1420相關聯且第一層級頁表1420可與1至N個PASID相關聯。
本文中所描述之受信任IO框架提供受信任認證、受信任佈建、受信任MMIO及受信任DMA。對於受信任認證,裝置證書用作裝置之真實性之證據。一個實施例提供安全姿勢及裝置組態之報告。
受信任佈建可包括佈建秘密(密鑰等)、建立對MMIO暫存器及TD私用記憶體之存取控制。對於受信任MMIO及DMA,實施機密性、完整性及重放保護技術以及去向/來自裝置之受信任異動之信令及存取控制強制執行。
在一個實施例中,IOMMU使用樹狀資料結構來強制執行存取控制。在 15中,樹狀結構包括具有複數個根表條目1500至1502之根表1599,該等根表條目中之各者識別上下文表1510至1512。上下文表條目可識別複數個PASID目錄條目1520、1530,其繼而識別PASID表條目1525、1535之集合。
在一個實施例中,IOMMU使用請求方ID(RID),其由匯流排編號、裝置編號及功能編號構成以識別裝置。RID為DMA異動之部分且攜載於異動封包之標頭中。來自裝置之DMA異動可任擇地攜載識別裝置中之唯一IO上下文之PASID。若異動並不攜載PASID,則IOMMU使用如組配於IOMMU資料結構中之預設PASID值。
如所提及,此資料結構之根為根表1599且根表之位址由虛擬機監視器(VMM)程式化至IOMMU中。在一個實施例中,根表1599由RID中之匯流排編號索引且各根表條目1500至1502指向上下文表1510。上下文表條目1510至1512由RID中之(裝置編號+功能編號)索引且指向PASID目錄表1520、1530。上下文表條目藉由PASID編號程式化以在裝置DMA異動確實攜載PASID標頭時使用。PASID目錄由PASID編號之上部14個位元索引且指向PASID表1525、1535,其由PASID之下部6個位元索引。
PASID表條目1525接著指向第一層級頁表(任擇的)及第二層級頁表。若DMA請求正使用虛擬位址,則IOMMU使用第一層級頁表來將虛擬位址轉譯成訪客實體位址且接著使用第二層級頁表來將訪客實體位址轉譯成主機實體位址。
在一個實施例中,為了支援受信任IO,VMM不受信任以建立此等IOMMU資料結構。為了支援此安全目標,IOMMU具有資料結構之二個集合。第一集合由VMM設定以執行對所有裝置及資料結構之第二集合之存取控制,以執行對來自指派至信任域之受信任裝置之TD私用頁面之受信任DMA請求的存取控制。IOMMU在經由由VMM建立之資料結構對不受信任裝置執行查核行程時強制執行此操作。彼等資料結構及由於查核彼等資料結構獲得之最終實體位址均不可具有TD私用密鑰ID。資料結構之此第二集合由微碼經由本文中所描述之新指令管理。此模型允許IOMMU電路系統及邏輯大部分不變,除在DMA請求自裝置到達時選取正確根表開始用於轉譯之查核行程外。在圖16中展示實例,其展示存取用於受信任異動之受信任裝置上下文1602內之第一根表及用於不受信任異動之不受信任上下文1605之第二根表的IOMMU 1601。在此特定實例中,受信任裝置上下文映射至受信任裝置OS管理頁表1603及微碼管理安全EPT 1604。
IOMMU 1601需要知曉受信任根表位址,且為此,第二根指標包括於IOMMU中,在此處被稱作TRUSTED_ROOT_PTR,其藉由如 16中所示之第二樹狀資料結構程式化以代管指派至信任域之受信任裝置之映射。在一個實施例中,此TRUSTED_ROOT_PTR僅為可微碼寫入的且此係使用發起者安全屬性(SAI)檢查強制執行。TRUSTED_ROOT_POINTER可映射至IOMMU中由新TRUSTED_IOMMU_BAR(受信任IOMMU基礎位址暫存器)指定之MMIO範圍且由BIOS或VMM組配。然而,由於此等暫存器SAI受保護,因此BIOS或VMM無法寫入由此MMIO範圍映射之暫存器中之任一者。TRUSTED IOMMU_BAR在組配後寫入一次且鎖定一次。TRUSTED_IOMMU_BAR亦含有TRUSTED_INVALIDATION_REGISTERS之集合,其可由微碼使用以調用IOTLB及IOMMU中間結構快取記憶體作為未指派來自TD之裝置之流程之部分。
如自 16中之資料結構圖所見,第二受信任資料結構之全部記憶體要求可極高。供記憶體代管此資料結構之選項包括(a)在啟動時自DRAM竊用記憶體且使用範圍暫存器保護記憶體,(b)在執行時間使VMM分配記憶體用於此資料結構。在一個實施例中使用選項b),由於其針對最大大小之此資料結構並不浪費記憶體(如選項(a)將需要)。選項(b)亦允許VMM靈活地分配記憶體且在不需要時回收此記憶體。
然而,使用由VMM分配之記憶體意指在執行時間需要保護記憶體免於被VMM篡改。在一個實施例中,為了在啟動時不竊用記憶體的情況下保護受信任上下文結構,使用平台保留密鑰ID(「PKID」),其為映射至微碼建立密鑰之MK-TME密鑰ID且不可由VMM使用(亦即,VMM無法產生指定HPA中VMM頁表參考之PKID之主機頁表映射)。PKID獲自TD名稱空間且不用於任何TD短鑰。用於受信任IOMMU資料結構之記憶體因此藉由與此PKID相關聯之密鑰進行加密及完整性保護,且任何VMM嘗試篡改此記憶體(使用其他HKID)將導致MK-TME引擎中之完整性檢查故障,從而導致機器檢查異常。
在一個實施例中,受信任裝置經鑑認且其至與其連接之橋接埠或根埠之鏈路由受信任鑑認及佈建代理進行加密。現有技術已知用於鑑認PCIe裝置( 參見例如PCI高速裝置安全增強,版本0.7,2018年6月)。一個實施例基於此裝置鑑認模型對PCIe協定構建以下延伸以強制執行受信任IO安全屬性。新指示符位元在PCIe異動中用於指示請求為受信任請求。可使用以下不同實施例:
實施例1 :PASID TLP 前綴中之受信任指示符:裝置在產生DMA異動時可使用PASID TLP前綴中之新「T-受信任」欄位1701指示其為至TD私用記憶體之受信任異動抑或至非TD私用記憶體之DMA,如 17中所示。T欄位值00指示其為不受信任異動且PASID無效;01指示不受信任異動且PASID有效;10指示受信任異動且PASID無效;且11指示受信任異動且PASID有效。
實施例2 延伸異動處理提示TLP 前綴中之受信任指示符:當啟用受信任IO時,TPH TLP前綴之位元0經界定為受信任位元。舉例而言,值0指示不受信任異動且值1指示受信任異動。TLP前綴之一個實施例說明於 18中。
實施例3:對於此實施,新TLP前綴用於指示此為受信任異動。
實施例4:在此實施例中,位址欄位之位元63用於指示此為受信任異動。
實施例5:對於此實施例,現有PCIe異動標頭或TLP前綴中之一者中之保留位元或編碼用作「受信任」位元。
在一個實施例中,IOMMU 1601使用此「受信任」位元以判定其是否應使用VMM建立根指標或微碼建立受信任根指標進行用於轉譯之查核行程。應注意,PCIe封包中之受信任位元狀態由經攜載以鑑認來自鑑認裝置之PCIe封包之鏈路完整性標頭涵蓋。因此,若裝置經鑑認,且封包完整性檢查通過,則可評估受信任位元。這防止受信任位元欺騙。
本發明之一個實施例實施關於PCIe根埠及橋接件之以下要求以強制執行受信任IO:
DEV_REQ_1:當在已經經由鑑認及鏈路加密保證安全之鏈路上接收到請求時,橋接件或根埠應允許DMA異動在標頭中具有「受信任」位元。若在具有受信任位元集合之不安全鏈路上接收到請求,則根埠或橋接件應將異動作為格式錯誤異動丟棄。
DEV_REQ_2:當橋接件在具有「受信任」位元集合之安全鏈路上接收到異動時,其不必將該異動轉遞至不安全鏈路。
DEV_REQ_3:已經置於受信任模式下且在具有「受信任」位元集合之安全鏈路上接收到異動的橋接件或根埠必須驗證標頭之請求方ID中之匯流排編號為用於該埠之有效匯流排編號。在埠連接至端點裝置之情況下,匯流排編號及裝置編號對於該埠有效。應注意,不受信任裝置由於DEV_REQ_1及DEV_REQ_2無法設定「受信任」位元。具有欺騙請求方ID之不受信任DMA異動並非威脅,此係因為其查核VMM建立表且由於MK-TME加密及完整性檢查而無法到達TD私用記憶體。此DEV_REQ_3強制執行ID欺騙無法由受信任裝置進行。
在一個實施例中,當IOMMU 1601查核此等上下文結構以加速轉譯請求時,其將條目自此等表快取至其轉譯快取記憶體中。IOMMU亦快取IOTLB中之轉譯以允許後續請求命中且因此較快轉譯。
一個實施例包括IOMMU中間及IOTLB結構中之「受信任」標籤位元。使用來自異動之「受信任」位元連同請求方ID及位址以查找此等結構。因此,「受信任」標籤位元提供此等快取記憶體中之受信任條目與不受信任條目之間的隔離。
一個實施例亦包括至IOMMU上下文結構條目及PASID表條目之延伸。詳言之,此實施例包括上下文結構條目及PASID表條目。
上下文結構條目-當裝置完全指派至TD時,指派至此裝置之所有PASID亦必須為指派至該TD之彼等者。為了執行此檢查,擁有此裝置之TD之ID在上下文結構條目中記錄如下。實例上下文條目延伸1901說明於 19中。對於VMM建立資料結構中之上下文結構條目,此等欄位保持保留且不由IOMMU消耗。信任域控制結構(TDCS)指標當在受信任上下文結構條目中不為空時指向擁有此裝置之TD之TD控制結構。對於此類裝置,TD亦可指定預設PASID值RID_PASID以指示應用於並不攜載PASID TLP前綴之DMA異動之PASID。
PASID 表條目-在一個實施例中,PASID表包括在VMM建立資料結構中保持保留之二個結構。如說明實例PASID條目2001之 圖20中所說明,TDCS指標2002為指向已經被指派此PASID之TD之TD控制結構的指標。第二結構TD MK-TME KID 2003為指派至此TD之多密鑰TME密鑰ID且由IOMMU使用以標記所轉譯實體位址,使得彼等DMA異動可存取由TD私用密鑰ID加密之記憶體。
在一個實施例中,將裝置指派至TD之處理填寫上文所描述之受信任資料結構(例如,受信任裝置上下文1602、頁表1603、微碼管理EPT 1604)。在一個實施例中,以下新指令執行TD裝置指派:
TDPASIDASSIGN-此指令將PASID分配至TD。指令驗證PASID尚未指派至任何其他TD且隨後更新PASID追蹤器結構以記錄PASID指派。
TDDEVICEBIND-此指令由TD使用以指示其希望獲取裝置及/或PASID之所有權。此指令並不立即給出TD所有權,而是由TD使用以創建處理器簽名之資料結構(例如,裝置綁定結構),使得其接著可提供至VMM以請求指派。使資料結構由處理器簽名強制執行VMM無法改變請求;VMM可僅接受請求或拒絕請求。
TDDEVICEASSIGN-此指令由VMM使用以執行TD之請求來獲取裝置之所有權。此指令採用由TDDEVICEBIND指令創建之簽名之資料結構(例如,裝置綁定結構)作為參數中之一者。此指令接著構建由IOMMU使用以執行存取控制之受信任結構。
TDDEVICEUNBIND-此指令由TD使用,其希望釋放先前指派裝置及/或PASID之所有權。如同TDDEVICEBIND,此指令產生接著提供至VMM以請求釋放之處理器簽名之資料結構(例如,裝置解綁結構)。
TDDEVICEREMOVE-此指令由VMM使用以執行TD之請求來釋放裝置之所有權。此指令採用由TDDEVICEUNBIND指令創建之簽名之資料結構(例如,裝置解綁結構)作為參數中之一者。此指令接著更新由IOMMU使用以執行存取控制之受信任結構以移除此裝置及/或PASID相關條目。
TDDEVCTXMEMORYRECLAIM-此指令收回鏈接至連接至受信任根指標之資料結構之記憶體結構。
TDPASIDTRKRMEMORYRECLAIM-此指令用於在該結構現為自由的時回收用於PASID追蹤器之VMM分配記憶體。
TDCONFIGIOMMU-此指令由VMM使用以將裝置上下文表之根程式化成平台中之各種IOMMU。
此等指令之特定實施之細節提供於下文中。
TDPASIDASSIGN
如所提及,TDPASIDASSIGN指令更新PASID追蹤器結構以將PASID指派至TD。此PASID追蹤器結構由由VMM提供之記憶體構建,但由指令使用平台保留密鑰ID(PKID)加密。
TDPASIDASSIGN指令之一個實施例包括以下輸入及輸出參數:
輸入參數:
PASID-待指派PASID
TDCS Ptr-指向TD控制結構頁面之指標
SPARE_PAGE_PA-可由此指令使用以構建追蹤結構之備用頁面之實體位址
輸出參數:
狀態-OK-指派成功,FAIL-指派失敗
SPARE_PAGE_STATUS-指令是否消耗所提供備用頁面
ERROR_CODE-指派故障原因之一
ALREADY_ASSIGNED-PASID已經指派
NEED_MORE_MEMORY-需要更多記憶體來構建PASID追蹤器
UNSPECIFIED-其他錯誤
TDPASIDASSIGN指令之一個實施例構建PASID追蹤器2100作為如 22中所示之二層級資料結構。PASID目錄指標2101指向PASID目錄21045內之位置,該PASID目錄包括識別包含目錄指標0至目錄指標3之PASID表之條目(其為處理器中之控制暫存器且其重設預設狀態為空)。
PASID之輸入至指令之位元19:18用於檢查對應PASID目錄指標是否為空。若該目錄指標為空,則由VMM提供之備用頁面經消耗且其位址記錄於對應控制暫存器中。接著使用PKID將頁面初始化為全0,這亦確保VMM無法篡改此頁面。為了進行此初始化,指令之一個實施例使用MOVDIR64 uop,其進行快取線範圍儲存而不在對應快取線上進行RFO。指令接著傳回錯誤碼NEED_MORE_MEMORY。
若PASID目錄指標不為空,則指令使用輸入PASID之位元18:10讀取PASID目錄條目。若該條目並不存在,則由VMM提供之備用頁面經消耗且其位址記錄於對應PASID目錄條目中。接著使用PKID將頁面初始化為全0,這亦確保VMM無法篡改此頁面。如上文所描述,指令可使用MOVDIR64 uop,其進行快取線範圍儲存而不在對應快取線上進行RFO。指令接著傳回錯誤碼NEED_MORE_MEMORY。
若PASID目錄條目不為空,則指令使用輸入PASID之位元9:0讀取PASID表條目。若該條目有效且記錄於條目中之TDCS指標並非輸入至指令之TDCS指標,則指令傳回錯誤ALREADY_ASSIGNED。若該條目無效,則指令將條目標記為有效並將TDCS指標記錄於條目中以成功地完成指派。在成功指派後,指令將狀態傳回為OK。
TDDEVICEBIND
此指令由TD使用以指示其希望獲取裝置及/或PASID之所有權。
輸入參數: - 請求方ID-待擁有之裝置之匯流排/裝置/功能編號 - PASID-待擁有主機PASID - 裝置排他性-用以指示TD希望獲取整個裝置功能之所有權抑或僅該裝置功能中之PASID上下文的旗標 - Default_PASID-待用於並不攜載PASID之裝置異動之PASID。此欄位僅在裝置排他性設定為1時才有效。 - 啟用裝置TLB-是否允許裝置側IOTLB-此由IOMMU使用以允許或拒絕來自裝置之位址轉譯服務(ATS)請求 - 第一層級分頁模式-若TD啟用二個層級,亦即用於DMA異動之巢套頁表,則其指定第一層級頁表之格式 - 第一層級頁表指標-第一層級頁表在啟用巢套轉譯時之訪客實體位址 - 寫入-保護-啟用-是否允許監督DMA請求忽略第一層級頁表中之寫入權限 - 監督器請求啟用-是否允許監督DMA請求 輸出參數:- 狀態-OK-綁定成功,FAIL-綁定失敗
裝置綁定結構-此結構包括輸入參數且另外具有輸入參數上由處理器使用處理器內部密鑰產生之MAC。MAC亦涵蓋反重放計數器,其用於確保此裝置綁定結構僅使用一次。此結構之子欄位為:輸入參數、反重放計數器及輸入參數及反重放計數器上之MAC。
指令之一個實施例將輸入參數寫入至裝置綁定結構。指令亦以原子方式遞增TD控制結構中之綁定解綁分配計數器並將預遞增值寫入至裝置綁定結構作為反重放計數器。指令接著基於輸入參數及綁定解綁分配計數器產生MAC且使用處理器內部密鑰將其寫入至裝置綁定結構。
TD控制結構保持二個計數器-綁定解綁分配計數器及綁定解綁消耗計數器。分配計數器作為反重放計數器填充至該結構中且藉由此指令遞增。消耗計數器藉由TDDEVICEASSIGN/TDDEVICEREMOVE指令遞增。因此,由TDDEVICEASSIGN/TDDEVICEREMOVE進行之反重放檢查為裝置綁定結構中之計數器應等於綁定解綁消耗計數器。
TDDEVICEASSIGN:
此指令由VMM使用以請求處理器將裝置指派至TD。此涉及構建受信任根、上下文、PASID目錄及PASID表結構。為了構建此等結構,VMM提供可由此指令消耗之記憶體作為參數。
輸入參數:
裝置綁定結構-由TDDEVICEBIND指令創建之簽名結構
最大PASID
SPARE_MEMORY_PTR1
SPARE_MEMORY_PTR2
拒絕
需要分配為IOMMU資料結構之構建之部分的最大連續結構為PASID目錄。此PASID目錄需要每32768 PASID之4K位元組。因此,最大PASID參數用於判定提供為此指令之參數的備用記憶體之大小。記憶體之大小因此為Floor(Max_PASID/32768)+1個頁面。此提供於SPARE_MEMORY_PTR2中。
所有其他結構均為4K大小且SPARE_MEMORY_PTR1為由VMM提供之4K大小結構。
拒絕為輸入至此指令之特殊旗標,其指示VMM請求完成此指令,但出現錯誤,但使反回退計數器前進使得後續請求可經處理。此旗標在其並不批准如由TD提供之裝置綁定結構內容時由VMM使用。
輸出參數:
狀態-OK-綁定成功,FAIL-綁定失敗
ERROR_CODE
REJECT_REQUESTED-指令由於拒絕旗標而請求失敗
NEED_MORE_MEMORY_SPARE_MEMORY_PTR1_USED-SPARE_MEMORY_PTR1經消耗且操作需要更多記憶體來構建結構
NEED_MORE_MEMORY_SPARE_MEMORY_PTR2_USED-SPARE_MEMORY_PTR2經消耗且操作需要更多記憶體來構建結構
UNSPECIFIED-其他錯誤
操作:
指令首先使用CPU內部密鑰基於裝置綁定結構驗證MAC且在無效時產生錯誤。指令接著進行如先前所描述之反重放檢查且在失敗時傳回錯誤。
若拒絕請求旗標設定為真,則指令藉由遞增綁定解綁消耗計數器且藉由錯誤碼將故障回應傳回為REJECT_REQUESTED而使反重放計數器前進。
指令首先驗證記錄於裝置綁定結構中之PASID指派至記錄於裝置綁定結構中之TD。為進行此驗證,指令查找PASID追蹤器以驗證PASID經指派至此TD。若PASID追蹤器指標為空或若PASID未指派至TD,則指令傳回錯誤。
此資料結構之受信任根指標為CPU中其重設值為空之控制暫存器。
若受信任根指標為空,則由SPARE_MEMORY_PTR1提供之4K頁面由指令消耗。指令藉由此結構之位址程式化CPU受信任根指標且CPU使用MOVDIR64 uop將此頁面初始化為藉由PKID加密之全0。指令接著傳回錯誤碼NEED_MORE_MEMORY_SPARE_PTR1。
若受信任根指標不為空,則處理器使用裝置綁定結構中請求方ID之匯流排編號索引至根表中。若根表條目無效,則指令消耗SPARE_MEMORY_PTR1且建立根表條目。此頁面現為用於此裝置之上下文表結構。指令接著初始化上下文表結構且傳回錯誤碼NEED_MORE_MEMORY_SPARE_PTR1。
若根表條目有效,則指令使用裝置綁定結構請求方ID中之裝置+功能編號作為索引而查核轉遞上下文結構且讀取上下文表條目。若上下文表條目無效,則指令消耗SPARE_MEMORY_PTR2且建立上下文表條目。此頁面現為用於此裝置之PASID目錄結構。指令接著初始化上下文表結構且傳回錯誤碼NEED_MORE_MEMORY_SPARE_PTR2。
若上下文表條目有效,則指令使用裝置綁定結構請求方ID中之PASID編號作為索引而查核轉遞至PASID目錄結構且讀取PASID目錄條目。若PASID目錄條目無效,則指令消耗SPARE_MEMORY_PTR1且建立PASID目錄條目。此頁面現為PASID表結構。指令接著初始化PASID表結構。
現在,指令已驗證所有層級處之所有結構均有效,指令自根表條目再次開始查核行程且這次適當地填寫上下文表條目及PASID表條目。指令接著傳回成功。此確保以原子方式進行整個表更新。
最後,指令遞增由反重放檢查使用之綁定解綁消耗計數器。
對於整個樹狀資料結構為空(例如,受信任根指標為空)之情況,此構建程序說明於 22A-E中。參考 22A,在TDDEVICEASSIGN之首次調用之後,分配根表2201。指令傳回錯誤,表示其需要更多記憶體。
參考 22B,在TDDEVICEASSIGN之第二次調用後,分配上下文表2202(例如,可縮放模式下部上下文表2202)。指令傳回錯誤,指示其需要更多記憶體。
參考 22C,在TDDEVICEASSIGN之第三次調用後,分配可縮放模式PASID目錄2203。指令傳回錯誤,指示其需要更多記憶體。
參考 22D,在TDDEVICEASSIGN之第四次調用後,分配可縮放模式PASID表2204。現在,進行所有記憶體分配,指令填充各種表條目以用於此指派,如 22E中所說明。此等結構接著用於經由第一層級頁表結構2205及第二層級頁表結構2206定位條目。
第二層級頁表指標(亦即,指向第二層級頁表結構2206)創建為TD之EPT(細節參見上文安全EPT描述)。第一層級頁表指標(亦即,指向第一層級頁表結構2205)如上文所描述之裝置綁定結構中所指定。並非由裝置綁定結構指定之上下文及PASID表條目由TDDEVICEASSIGN指令以安全預設值填充。
TDDEVICEUNBIND
此指令類似於TDDEVICEBIND指令,但對希望釋放裝置之TD進行編碼。如同TDDEVICEBIND指令,此指令建立裝置解綁結構,其如同裝置綁定結構具有MAC及反重放計數器。裝置解綁結構中之參數指示是否釋放PASID指派。當TD不將PASID用於任何其他裝置上下文時,其亦可將PASID標記為釋放。此指令亦取樣作為反重放計數器之綁定解綁分配計數器以包括於裝置解綁結構中且以原子方式使其遞增。
在不同實施例中,TDDEVICEBIND及TDDEVICEUNBIND可使用具有指示執行哪一操作之輸入旗標之單一指令來實施。
TDDEVICEREMOVE
此指令使用裝置解綁結構作為輸入參數且釋放對TD進行之裝置及/或PASID之指派。
輸入參數: - 裝置解綁結構-由TDDEVICEUNBIND指令創建之簽名結構 - 拒絕-指示VMM想要藉由故障回應拒絕指令但使反重放計數器前進之旗標 輸出參數: - 狀態-OK-綁定成功,FAIL-綁定失敗 - ERROR_CODE o REJECT_REQUESTED-指令由於拒絕旗標而請求失敗 o UNSPECIFIED-其他錯誤
操作:
指令首先檢查在TD ID記錄於裝置解綁結構中時TD是否已經終止。若TD已經終止,則指令將不驗證關於裝置解綁結構之MAC,由於此為在TD終止之後之清除操作。
若TD未標記為終止,則指令首先使用CPU內部密鑰驗證關於裝置綁定結構之MAC,且在無效時產生錯誤。指令接著進行如先前所描述之反重放檢查且在失敗時傳回錯誤。
若拒絕請求旗標設定為真,則指令藉由遞增綁定解綁消耗計數器且藉由錯誤碼將故障回應傳回為REJECT_REQUESTED而使反重放計數器前進。
指令接著使用記錄於裝置解綁結構中之請求方ID及PASID來查核鏈接至受信任根指標之資料結構。若遇到任何無效表條目,則指令失敗且傳回錯誤。若PASID表條目不與移除此裝置之TD相關聯,則指令失敗且傳回錯誤。
若未遇到故障,則指令重新查核該結構且在其重新查核該結構時將PASID表條目標記為無效並將上下文結構條目標記為無效。
若裝置解綁結構將PASID標記為釋放,則指令查核PASID追蹤器表且將PASID追蹤器條目標記為無效並清除針對該PASID記錄之TD ID。
指令使各IOMMU中之IOMMU TLB及中間上下文及分頁結構快取記憶體失效,其中受信任根表經由TRUSTED_IOMMU_BAR中之TRUSTED_INVALIDATION_REGISTERS程式化。
最後,指令以原子方式遞增綁定解綁消耗計數器。
TDDEVCTXMEMORYRECLAIM
此指令用於在該結構現為自由的時回收VMM分配記憶體,亦即使用該結構之所有裝置分配已經移除。
輸入參數: - 請求方ID - PASID - VMM密鑰ID 輸出參數: - FREE_PTR - FREE_SIZE - 狀態-OK,FAIL
操作:
指令之一個實施例首先使用請求方ID及PASID查核至其可到達之最末層級。一旦其到達最末層級,其就掃描通過該結構中之所有條目以查看其是否有效。若條目中之任一者有效,則指令返回並出錯。若所有條目為自由的,則其使該結構與其上代層級解除鏈接。指令接著使用由指令參數指定之VMM密鑰ID使用MOVDIR64 uop將該結構初始化為0。指令接著傳回成功且將指標提供至FREE_PTR中之此結構。釋放之該結構之大小提供於FREE_SIZE輸出參數中。
TDPASIDTRKRMEMORYRECLAIM
此指令用於在該結構現為自由的時回收用於PASID追蹤器之VMM分配記憶體。
輸入參數: - PASID - VMM密鑰ID 輸出參數: - FREE_PTR - 狀態-OK,FAIL
操作:
指令之一個實施例首先使用PASID查核至其可在PASID追蹤器中到達之最末層級。一旦其到達最末層級,其就掃描通過該結構中之所有條目以查看其是否有效。若條目中之任一者有效,則指令返回並出錯。若所有條目為自由的,則其使該結構與其上代層級解除鏈接。指令接著使用由指令參數指定之VMM密鑰ID使用MOVDIR64 uop將該結構初始化為0。指令接著傳回成功且將指標提供至FREE_PTR中之此結構。
TDCONFIGIOMMU
此指令用於藉由CPU管理裝置上下文結構之根指標組配平台中之IOMMU。VMM藉由平台中各IOMMU之TRUSTED_IOMMU_BAR之位址來調用此。
CPU亦記錄所有IOMMU之TRUSTED_IOMMU_BAR,其中TRUSTED_ROOT_PTR經程式化至微碼私用記憶體中。此資料隨後用以在裝置上下文移除時執行IOTLB失效。
輸入參數: - TRUSTED_IOMMU_BAR-含有TRUSTED_ROOT_PTR暫存器之MMIO範圍之基礎位址 輸出參數: - 狀態-OK,FAIL
操作:
指令之一個實施例使用微碼SAI來將TRUSTED_ROOT_PTR暫存器寫入TRUSTED_IOMMU_BAR中。
IOMMU操作之一個實施例:
當IOMMU自鑑認裝置接收DMA異動時,其驗證每鏈路加密會話設定之封包且接著其檢查標頭中之「受信任」位元。若受信任位元清除,則如當前使用VMM建立根指標進行程序。
若「受信任」位元經設定,則IOMMU使用異動中之請求方ID、PASID及位址連同受信任位元查找其上下文、PASID及IOTLB快取記憶體。若IOTLB中存在命中,則將記錄於IOTLB中之實體位址及TD KID發送至網格以完成DMA異動。
若存在未命中,則IOMMU開始表查核行程。使用平台保留密鑰ID-PKID經由受信任裝置上下文結構進行此查核行程。一旦已經查核至PASID表條目,IOMMU就具有指向第一層級頁表、第二層級頁表及TD密鑰ID之指標。使用TD密鑰ID查核第一及第二層級頁表。一旦最終轉譯完成,就判定IOTLB以轉譯實體位址連同具有「受信任」位元集合之TD KID填充。接著將實體位址及TD KID發送至網格以完成DMA異動。
根埠完成產生:
對於來自裝置之非發佈請求,如同記憶體讀取,當自記憶體接收到資料時,根埠對裝置產生完成。若完成係回應於受信任請求,則完成之標頭中之受信任位元經設定以指示此為受信任完成。
排入佇列指令-ENQCMDU/ENQCMDS:
排入佇列指令ENQCMDUS及ENQCMDS使用具有64位元組寫入原子性之非發佈寫入將諸如 23中所示之64位元組命令排入佇列至裝置中之裝置共用工作佇列(SWQ)。此命令之有效負載攜載提交工作之PASID 2301。
當自TD調用此等指令時,指令將查核有效負載中之PASID指派至之PASID追蹤器結構。因此,自TD訪客調用之排入佇列指令需要PASID之身分標識映射,亦即不執行訪客PASID至主機PASID轉譯。若在查核PASID追蹤器結構時存在錯誤或PASID不指派至TD,則指令致使#GP故障。 用於以角色為基礎之暫存器保護之設備及方法
本文中所描述之TDX IO延伸(TDX-IO)允許裝置及加速器包括於信任域(TD)中。容許進入TD之信任邊界之此類裝置可因此存取TD機密記憶體且可對由TD提供之資料進行計算。本文中所描述之TDX-IO之實施例使得TD能夠使用具有低時延及高頻寬之裝置及加速器,同時支援標準IO虛擬化框架,諸如單根IO虛擬化(SR-IOV)。
TDX-IO之實施例構建用於裝置至VM之直接指派之現有能力,諸如SR-IOV及位址轉譯服務(ATS),以建立TD VM。在TDX-IO中,VMM自身可不受TD信任,因此一些TD經組配以基於由TD使用之基礎硬體進行信任決策。儘管不需要VMM受TD信任,但其如在非TDX-IO使用模型中一樣繼續執行資源分配及系統管理功能,但其方式為使得可測試結果,且若可接受,則在不通知受影響TD的情況下阻止改變結果。因此,隱含地信任VMM之「傳統」VM可與系統中之TD共存。
在一個實施例中,可指派裝置介面(ADI)為用於TDX-IO中之有IO虛擬化能力之裝置的指派單元。舉例而言,ADI可為整個裝置或裝置之邏輯部分(例如,非PF/VF功能、VF或VF之一部分)。
安全模型及相關標準
TDX-IO安全模型並不需要VMM受TD信任。因此,支援硬體輔助I/O虛擬化(例如,SR-IOV)之裝置需要安全延伸以確保所需的虛擬化模型並不允許或需要由TD信任邊界外部之軟體干預,以執行影響裝置中正在運行或靜止之TD資料之機密性及/或完整性之操作。
藉助於實例而非限制,儲存於所指派裝置中之信任域資料、程式碼及執行狀態必須受保護免於自不包括於TD(諸如其他TD及VMM)之受信任計算庫(TCB)中之韌體、軟體及/或硬體實體之機密性突破。資料、程式碼及執行狀態之完整性亦必須受保護以免受此等實體的影響。
TDX-IO架構概述
圖24說明與有受信任執行環境(TEE)-IO能力之裝置2450通訊之有TDX-IO能力之主機2460之一個實施例。有TDX-IO能力之主機2460可為CPU或支援TDX-IO之任何其他類型之處理器,說明為TDX模組2430。在一個實施例中,基線TDX-IO實施建構於PCI-SIG可指派裝置介面安全協定(ADISP)中指定之參考架構上。
主機2460中之TDX模組2430對主機上執行之TD 2440強制執行安全策略及隔離機制。有TEE-IO能力之裝置2450上之裝置安全管理器(DSM)2422為裝置中可容許由TDX模組2430進入TD之TCB且對裝置2450強制執行安全策略之邏輯實體。DSM 2422之角色及要求由PCI-SIG ADISP界定。
通常,實體功能(PF)2420為用於ADI 2425之資源管理實體且由VMM 2401之PF驅動器2410經由裝置介面組態2405管理。如藉由 24中使用之模式寫碼所指示,VMM 2401及PF驅動器2410不需要處於TD之TCB中。VMM 2401使用PF 2420來組配ADI 2425以供指派至TD。TDX-IO需要裝置2450來組織其硬體/軟體介面,使得PF 2420在其由TD使用時可不用於影響ADI 2425之安全性。裝置2450 ID在由TDX模組2430請求時能夠鎖定ADI 2425之組態,使得一旦TD已被接受且使用ADI啟動,對ADI組態之任何修改就被偵測為惡意動作。需要裝置實施安全架構,其保護TD資料之機密性及完整性以免被PF 2420或指派至其他TD或VM之其他ADI篡改。
當使用曝露鏈路時,支援完整性及資料加密(IDE),如藉由以通訊方式耦接至裝置2450上之PCIe IDE 2423的主機2460上之PCIe IDE 2412所指示。選擇性IDE串流之使用藉由允許自TCB排除中間交換器而使TCB及攻擊表面最小化。對於直接連接至根埠之端點上游埠,PCIe異動層級封包(TLP)一旦在裝置2423處或根埠處經解密及鑑認便呈明文,且存取控制機制由主機2460上之TDX模組2430及裝置2450上之DSM 2422實施、針對不在TD之TCB中之實體為TLP內容提供機密性及完整性。IDE界定T-位元(此後被稱作「IDE-Tbit」),其允許TLP之發起者指示TLP與TD相關聯。IDE-Tbit可由裝置2450及IO橋接件2414(例如,IOMMU)使用以向TD指派記憶體及記憶體映射I/O暫存器提供存取控制。
簡要地,裝置安全管理器(DSM)2422之一個實施例提供以下功能: o 鑑認裝置身分標識且執行量測報告。 o 在裝置2450中組配IDE加密密鑰。TDX模組2430提供用於初始組態之密鑰且使用IDE密鑰管理協定將後續密鑰刷新至DSM 2422。 o 鎖定ADI 2425組態、報告ADI組態、使ADI 2425與TD 2440附接及分離。 o 實施存取控制及安全機制以使TD資料與不在TD之TCB中之實體隔離。
TDX模組2430之一個實施例提供以下功能: o 將介面提供至VMM 2401(或主機OS)以將記憶體、CPU及ADI資源2425指派至TD。 o 實施安全機制及存取控制(例如,IOMMU轉譯表等)以保護主機中TD資料及執行狀態之機密性及完整性以免受不在TD之TCB中之實體的影響。 o 使用ADISP協定管理待由TD 2440使用之ADI 2425之安全狀態。 o 判定IDE加密密鑰並藉由DSM 2422排程密鑰刷新。TDX模組2430將IDE加密密鑰程式化至主機根埠中且與DSM 2422通訊以在裝置2450中組配IDE加密密鑰。
以角色為基礎之暫存器保護
TDX-IO架構之一個實施例需要在平台上選擇進入TDX-IO時將某些暫存器限於可僅由TDX模組2430寫入。此類暫存器之清單包括但不限於用於鏈路加密、完整性及裝置加密(IDE)及串流組態之PCIe根埠暫存器;PCIe根埠密鑰組態暫存器;以及IOMMU中在未受保護時將為安全易損性之暫存器。
然而,此等暫存器無法無條件限於可僅由TDX模組2430寫入。舉例而言,當選擇退出TDX-IO時,此等暫存器必須為可寫入的且可由其他系統組件,諸如OS/VMM 2401使用。
本發明之一個實施例藉由界定對網狀架構之新發起者安全屬性(「SAI」)編碼以識別由TDX模組2430(安全仲裁模式(「SEAM」)SAI)起始之異動來解決此要求。另外,一個實施例包括核心中可僅由TDX模組2430(例如,經由SEAM)寫入之邏輯處理器範疇模型特定暫存器(MSR),以啟用/停用用於記憶體映射IO(MMIO)及記憶體映射組態(MMCFG)異動之SEAM SAI之產生。在一個實施中,暫存器經配置成策略群組,其中各策略群組與用於不同類型之異動,包括由TDX模組2430起始之彼等異動相關聯之存取控制權限。
藉助於實例而非限制, 圖25說明暫存器2511至2515之集合與SAI策略群組2510相關聯之一個實施。在一個實施例中,諸如控制暫存器或晶片上表等資料結構追蹤與各策略群組相關聯之暫存器。在所說明之實施例中,控制策略暫存器2511藉由與特定SAI相關聯之SAI識別符值來程式化。當特定SAI值儲存於控制策略暫存器2511中時,代理2520至2521確證此SAI有權限修改策略群組2510之寫入存取控制(WAC)暫存器2512。此允許TDX模組2430在選擇進入TDX-IO時停用來自OS/VMM 2401之寫入存取。寫入存取控制策略暫存器2512判定准許哪些代理2520至2521(基於其可產生之SAI)寫入策略群組2460涵蓋之暫存器。
在一個實施例中,濾波器邏輯經組配於各網狀架構端點中,使得SEAM SAI僅在異動作為經加密/完整性受保護異動到達時才可伴隨有異動。因此,可偵測及防止異動與SEAM SAI之任何注入。雖然下文在超路徑互連(UPI)端點之上下文中描述某些實施例,但本發明之基礎原理可實施於包括點對點處理器互連件及網狀架構之任何處理器互連件上。
在一個實施例中,各暫存器讀取/寫入異動與識別異動之發起者之SAI或安全屬性相關聯。舉例而言,如上文所描述,暫存器2511至2515之集合可配置於SAI策略群組2510中,其中各策略群組具有寫入存取控制(WAC)暫存器2512,其判定准許哪些SAI寫入至該策略群組中之暫存器2511至2515。讀取存取控制(RAC)暫存器2513中之值判定允許哪些SAI自該策略群組中之暫存器讀取,且控制策略暫存器2511中之值判定允許哪些SAI修改WAC暫存器2512及RAC暫存器2512(進而更改讀取/寫入存取控制)。
本發明之一個實施例界定識別異動是否起始於TDX模組2430中之新SAI編碼。為了支援SEAM SAI,CPU核心中之SAI產生邏輯延伸如下: IF SunPass Funny IO SAI = HOST_IA_SUNPASS ELSEIF FUNNY IO SAI = HOST_IA_UCODE ELSEIF BIOS_DONE[THREAD_ID] == 0 SAI = HOST_IA_BOOT ELSEIF EN_SEAM_SAI[THREAD_ID]    //新控制位元 SAI = HOST_IA_SEAM ELSEIF IN_SMM_MODE[THREAD_ID] SAI = HOST_IA_SMM ELSE SAI = HOST_IA_POSTBOOT ENDIF
在上述程式碼中,SAI編碼識別不同SAI類型,包括例如主機微碼、啟動程式碼、系統管理模式(SMM)、啟動後模式及SAI SEAM。各SAI類型可指定於控制策略暫存器2511或寫入存取控制暫存器2512中以指示SAI策略群組2510內之讀取/寫入權限。
在一個實施例中,EN_SEAM_SAI控制為每邏輯處理器控制暫存器中由SEAM模式MSR-MSR_ENABLE_SEAM_SAI 2550驅動之位元。此MSR之一個實施具有經界定之一個位元-位元0,其在設定(例如,設定為1)時啟用SEAM SAI產生且在清除(例如,清除為0)時停用SEAM SAI產生。在一個實施例中,保留此MSR中之所有其他位元。
在一個實施例中,TDX模組2430使用SEAM SAI異動經由封裝互連件或系統互連件存取暫存器,諸如VTBAR暫存器2670(虛擬化技術基礎位址暫存器)及KEY_CONFIG_BAR暫存器2671(密鑰組態基礎位址暫存器)。此等暫存器可與處理器成一體(在本端插座中)或可位於遠端插座中(例如,在同一系統上之不同處理器中)。如 25中所說明,當此等暫存器處於遠端插座中時,與異動相關聯之SAI經由互連件2560通訊,該互連件在一個實施例中為UPI互連件。
通常,UPI並不支援安全SAI異動,諸如SEAM SAI,從而使其降級為「不受裝置信任」。在一個實施例中,使此降級為條件性的且在UPI加密安全隧道上接收到異動時准許此降級。因此,當本端插座處理器需要發送異動與SEAM SAI時,其經由UPI加密安全隧道發送此類異動。
在一個實施中,在此處被稱作SEAM_OS_W之新策略群組使用以下暫存器界定於PCIe根埠及/或IOMMU中: o 用於鏈路加密、完整性及資料加密(IDE)及串流組態之PCIe根埠暫存器; o PCIe根埠密鑰組態暫存器;以及 o IOMMU中在未受保護時將為安全易損性之暫存器。
在一個實施例中,SEAM_OS_W寫入存取控制暫存器2512之預設值允許TDX模組2430及OS/VMM 2401二者寫入策略群組中之暫存器。控制策略暫存器2511中指示之SEAM_OS_W策略群組之控制策略包括SEAM SAI自身,使得其允許TDX模組2430使用SEAM SAI異動寫入此策略群組之寫入存取控制暫存器2512以移除OS/VMM 2401寫入權限。
TDX模組2430之一個實施例將API提供至OS/VMM 2401以選擇進入/選擇退出TDX-IO。在一個實施中,當OS/VMM選擇進入TDX-IO時,TDX模組2430對各SEAM_OS_W策略群組執行以下動作以對暫存器進行寫入保護: 1.   使用MSR_ENABLE_SEAM_SAI啟用SEAM SAI產生; 2.   對於各SEAM_OS_W策略群組,自策略群組之寫入存取控制暫存器2512清除OS/VMM SAI; 3.   使用MSR_ENABLE_SEAM_SAI停用SEAM SAI產生。
當TDX模組2430需要修改受保護暫存器以例如設定鏈路加密密鑰時,TDX模組執行以下操作: 1.   使用MSR_ENABLE_SEAM_SAI啟用SEAM SAI產生; 2.   寫入受保護暫存器; 3.   使用MSR_ENABLE_SEAM_SAI停用SEAM SAI產生。
圖26說明藉由更新SEAM_OS_W策略群組之寫入存取控制(WAC)暫存器2512將寫入限於受保護暫存器之異動序列之一個實施例。在圖26中之特定配置中,TDX模組2430對目標2650上之WAC暫存器2653,諸如PCIe根埠執行更新。在2614處,TDX模組2430發起至遠端OS/VMM SAI之寫入異動。在2616處,藉由更新MSR_ENABLE_SEAM_SAI暫存器,SEAM SAI可由TDX模組2430停用。
本端網格2620上之本籍代理在網格上將本端變數設定為is_tdx = 1且產生至本端UPI插座2630之寫入WAC命令。本端插座UPI端點2630檢查is_tdx = 1且在2632處設定UPI安全隧道。如上文所提及,在一個實施例中,僅在UPI加密安全隧道上接收到異動時才准許經由UPI進行SEAM SAI異動。若未滿足任一條件,則產生機器檢查操作或異常。
若成功,則本端插座UPI端點2630將具有指定參數(SAI = SEAM_SAI,is_tdx = 1)之寫入WAC命令傳輸至遠端插座UPI端點2640,其在2642處驗證命令是否為經由UPI安全隧道接收到之SEAM_SAI命令。若並非如此,則在2643處命令降級為不受信任SAI。若經由安全隧道接收,則在2652處,目標IP(例如,目標PCIe根埠)2650判定所指定SAI是否指示於當前控制策略中(例如,指定於控制策略暫存器中)。若否,則中止異動。若是,則在2653處更新WAC暫存器。
圖27說明用於寫入至受保護暫存器之異動序列之一個實施例。在圖27中之特定實施例中,TDX模組2430在經由MSR_ENABLE_SEAM_SAI暫存器啟用SEAM SAI之後在2714處對受保護暫存器執行寫入操作(寫入<暫存器>)。SEAM SAI隨後可在2616處由TDX模組2430經由MSR_ENABLE_SEAM_SAI暫存器停用。
在2722處,在確認命令源自TDX模組2430之後,本端網格2620上之本籍代理在本端網格上設定is_tdx = 1。本端網格2620上之本籍代理在網格上將本端變數設定為is_tdx = 1且產生至本端UPI插座2630之寫入WAC命令。本端插座UPI端點2630檢查is_tdx = 1且在2732處設定UPI安全隧道。如所提及,在一些實施中,僅在UPI加密安全隧道上接收到異動時才可允許SEAM SAI異動。若未滿足任一條件,則產生機器檢查操作或異常。
若成功,則本端插座UPI端點2630將具有指定參數(SAI = SEAM_SAI,is_tdx = 1)之寫入<暫存器>命令傳輸至遠端插座UPI端點2640,其在2742處驗證命令是否為經由UPI安全隧道接收到之SEAM SAI命令。若並非如此,則在2643處命令降級為不受信任SAI。若經由安全隧道接收,則在2752處,目標IP(例如,目標PCIe根埠)2650判定所指定SAI是否指示於當前控制策略中(例如,指定於控制策略暫存器中)。若否,則中止異動。若是,則在2753處更新SAI策略群組中之指定暫存器(如藉由<暫存器>所指示)。
在前述說明書中,本發明之實施例已參考其特定例示性實施例進行了描述。然而,顯而易見,可在不背離如所附申請專利範圍中所闡述的本發明之更廣泛精神及範疇之情況下對本發明做出各種修改及改變。因此,應在說明性意義上而非限制性意義上看待說明書及圖式。
針對設備中之任一者描述的組件、形貌體及細節亦可任擇地適用於方法中之任一者,該等方法在實施例中可由此類設備及/或藉由此類設備執行。本文中所描述之處理器中之任一者可包括於本文所揭示之系統中之任一者中。在一些實施例中,電腦系統可包括互連件、與互連件耦接之處理器,及與互連件耦接之動態隨機存取記憶體(DRAM)。替代地,代替DRAM,可使用不需要刷新之其他類型之依電性記憶體,或可使用快閃記憶體。
在描述及申請專利範圍中,可能已使用術語「耦接」及/或「連接」連同其派生詞。此等術語未必意欲為彼此之同義詞。實情為,在實施例中,可使用「連接」以指示二個或更多個元件彼此直接實體及/或電氣接觸。「耦接」可意謂二個或更多個元件彼此直接實體及/或電氣接觸。然而,「耦接」亦可意謂二個或更多個元件未彼此直接接觸,但仍彼此合作或互動。舉例而言,執行單元可經由一或多個介入組件與暫存器及/或解碼單元耦接。在諸圖中,使用箭頭來展示連接及耦接。
可能已經使用術語「及/或」。如本文中所使用,術語「及/或」意謂一個或另一個或這二者(例如,A及/或B意謂A或B或A及B這二者)。
在以上描述中,闡述了特定細節以便提供對實施例之透徹理解。然而,可在無此等特定細節中之一些細節的情況下實踐其他實施例。本發明之範疇並不由上文提供之特定實例來判定,而是僅由以下申請專利範圍判定。在其他情況下,以方塊圖形式及/或不具有細節的方式來展示熟知電路、結構、裝置及操作以免混淆對該描述之理解。在認為適當時,除非另外指定或清楚地顯而易見,否則參考編號或參考編號之末端部分已在諸圖中重複以指示可任擇地具有類似或相同特性之對應或類似元件。
某些操作可由硬體組件執行,或可體現於可用以致使及/或導致機器、電路或硬體組件(例如,處理器、處理器之部分、電路等)藉由執行操作之指令程式化的機器可執行或電路可執行指令中。該等操作亦可任擇地由硬體與軟體之組合來執行。處理器、機器、電路或硬體可包括特定或特定電路系統或其他邏輯(例如,可能與韌體及/或軟體組合之硬體)可操作以執行及/或處理指令且回應於指令儲存結果。
一些實施例包括一製品(例如,電腦程式產品),其包括機器可讀媒體。媒體可包括提供(例如,儲存)可由機器讀取之形式之資訊的機制。機器可讀媒體可提供或在其上儲存一指令或指令序列,該指令或指令序列在由機器執行之情況下及/或在由機器執行時可操作以致使機器執行及/或導致機器執行本文中所揭示之操作、方法或技術中之一者。
在一些實施例中,機器可讀媒體可包括非暫時性機器可讀儲存媒體。舉例而言,非暫時性機器可讀儲存媒體可包括軟碟、光學儲存媒體、光學光碟、光學資料儲存裝置、CD-ROM、磁碟、磁光碟、唯讀記憶體(ROM)、可程式化ROM (PROM)、可抹除且可程式化ROM (EPROM)、電可抹除且可程式化ROM (EEPROM)、隨機存取記憶體(RAM)、靜態RAM (SRAM)、動態RAM (DRAM)、快閃記憶體、相變記憶體、相變資料儲存材料、非依電性記憶體、非依電性資料儲存裝置、非暫時性記憶體、非暫時性資料儲存裝置或其類似者。非暫時性機器可讀儲存媒體並不由暫時傳播信號組成。在一些實施例中,儲存媒體可包括包括固體物質之有形媒體。
合適的機器之實例包括但不限於通用處理器、專用處理器、數位邏輯電路、積體電路或其類似者。合適的機器之又其他實例包括電腦系統或包括處理器、數位邏輯電路或積體電路之其他電子裝置。此類電腦系統或電子裝置之實例包括但不限於桌上型電腦、膝上型電腦、筆記型電腦、平板電腦、迷你筆記型電腦、智慧型手機、蜂巢式電話、伺服器、網路裝置(例如,路由器及交換器)、行動網際網路裝置(MID)、媒體播放器、智慧型電視、桌上型易網機、機上盒及視訊遊戲控制器。
舉例而言,遍及本說明書參考「一個實施例」、「實施例」、「一或多個實施例」、「一些實施例」指示可在本發明之實踐中包括特定形貌體但未必為必需的。類似地,在該描述中,有時將各種形貌體一起分群在單一實施例、圖或其描述中以用於使本揭露內容精簡且輔助理解各種發明態樣。然而,本揭露內容之此方法不應被解譯為反映本發明需要比每一技術方案中明確敍述之形貌體多的形貌體之意圖。實情為,如以下申請專利範圍反映,本發明態樣在於單一所揭示實施例之少於全部之形貌體。因此,在實施方式之後的申請專利範圍藉此明確地併入至此實施方式中,其中每一技術方案使其自身獨立成為本發明之單獨實施例。
實例
下文為本發明之不同實施例之實例實施。
實例1.一種設備,其包含:一或多個處理器核心,其用以執行指令並處理資料,該一或多個處理器核心用以執行一或多個安全指令以保護虛擬機或受信任應用程式免受虛擬機監視器(VMM)或作業系統(OS)的影響;互連網狀架構,其用以將該一或多個處理器核心耦接至裝置;以及安全硬體邏輯,其用以判定是否允許經由該互連網狀架構進行針對受保護暫存器之讀取或寫入異動,該安全硬體邏輯用以評估與該異動之發起者相關聯之一或多個安全屬性以進行該判定。
實例2.如實例1之設備,其中該受保護暫存器為策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以使讀取及/或寫入權限與一或多個發起者相關聯。
實例3.如實例2之設備,其中該一或多個控制暫存器包括:策略控制暫存器,其用以儲存發起者識別符(ID)值以識別當前具有寫入至該策略群組之一或多個其他控制暫存器之權限之發起者。
實例4.如實例3之設備,其中該一或多個其他控制暫存器包含寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器之發起者之指示。
實例5.如實例1之設備,其進一步包含:第一網狀架構端點,其耦接至該互連網狀架構且與該一或多個處理器核心相關聯;及第二端點,其耦接至該互連網狀架構且與該裝置相關聯,其中安全硬體邏輯與第一及/或第二端點一體化。
實例6.如實例3之設備,其中該發起者ID值包含發起者(SAI)編碼之安全屬性。
實例7.如實例4之設備,其中該發起者包含與第一發起者ID相關聯之信任域延伸(TDX)模組或與第二發起者ID相關聯之虛擬機監視器(VMM)或作業系統(OS)。
實例8.如實例7之設備,其中與TDX模組相關聯之第一代理具有當第一發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限且與VMM或OS相關聯之第二代理具有當第二發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限。
實例9.一種方法,其包含:在一或多個處理器核心上執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護虛擬機或受信任應用程式免受虛擬機監視器(VMM)或作業系統(OS)的影響;由與一或多個處理器核心中之一者相關聯之發起者經由互連網狀架構產生針對受保護暫存器之讀取或寫入異動;評估與異動之發起者相關聯之一或多個安全屬性;以及基於評估判定是否允許經由互連網狀架構進行讀取或寫入異動。
實例10.如實例9之方法,其中該受保護暫存器為策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以使讀取及/或寫入權限與一或多個發起者相關聯。
實例11.如實例10之方法,其中該一或多個控制暫存器包括策略控制暫存器,該方法包含:將發起者識別符(ID)值儲存於策略控制暫存器中以識別當前具有寫入至策略群組之一或多個其他控制暫存器之權限之發起者。
實例12.如實例11之方法,其中該一或多個其他控制暫存器包含寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器之發起者之指示。
實例13.如實例9之方法,其中第一網狀架構端點耦接至互連網狀架構且與一或多個處理器核心相關聯;且第二網狀架構端點耦接至互連網狀架構且與裝置相關聯,第一及/或第二端點執行評估一或多個安全屬性且判定是否允許讀取或寫入異動之操作。
實例14.如實例11之方法,其中發起者ID值包含發起者安全屬性(SAI)編碼。
實例15.如實例12之方法,其中該發起者包含與第一發起者ID相關聯之信任域延伸(TDX)模組或與第二發起者ID相關聯之虛擬機監視器(VMM)或作業系統(OS)。
實例16.如實例15之方法,其中與TDX模組相關聯之第一代理具有當第一發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限且與VMM或OS相關聯之第二代理具有當第二發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限。
實例17.一種上面儲存有程式碼之機器可讀媒體,該程式碼在由機器執行時致使該機器執行以下操作:在一或多個處理器核心上執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護虛擬機或受信任應用程式免受虛擬機監視器(VMM)或作業系統(OS)的影響;由與一或多個處理器核心中之一者相關聯之發起者經由互連網狀架構產生針對受保護暫存器之讀取或寫入異動;評估與異動之發起者相關聯之一或多個安全屬性;以及基於評估判定是否允許經由互連網狀架構進行讀取或寫入異動。
實例18.如實例17之機器可讀媒體,其中該受保護暫存器為策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以使讀取及/或寫入權限與一或多個發起者相關聯。
實例19.如實例18之機器可讀媒體,其中該一或多個控制暫存器包括策略控制暫存器,該機器可讀媒體包含程式碼以致使以下額外操作:將發起者識別符(ID)值儲存於策略控制暫存器中以識別當前具有寫入至策略群組之一或多個其他控制暫存器之權限之發起者。
實例20.如實例19之機器可讀媒體,其中該一或多個其他控制暫存器包含寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器之發起者之指示。
實例21.如實例17之機器可讀媒體,其中第一網狀架構端點耦接至互連網狀架構且與一或多個處理器核心相關聯;且第二網狀架構端點耦接至互連網狀架構且與裝置相關聯,第一及/或第二端點執行評估一或多個安全屬性且判定是否允許讀取或寫入異動之操作。
實例22.如實例19之機器可讀媒體,其中發起者ID值包含發起者安全屬性(SAI)編碼。
實例23.如實例20之機器可讀媒體,其中該發起者包含與第一發起者ID相關聯之信任域延伸(TDX)模組或與第二發起者ID相關聯之虛擬機監視器(VMM)或作業系統(OS)。
實例24.如實例18之機器可讀媒體,其中與TDX模組相關聯之第一代理具有當第一發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限且與VMM或OS相關聯之第二代理具有當第二發起者ID儲存於策略控制暫存器中時更新WAC暫存器之權限。
本發明之實施例可包括上文已描述之各種步驟。該等步驟可體現於可用以使通用或專用處理器執行該等步驟之機器可執行指令中。替代地,可藉由含有用於執行步驟之固線式邏輯的特定硬體組件,或藉由經程式化之電腦組件及定製硬體組件之任何組合執行此等步驟。
如本文所描述,指令可指經組配以執行某些操作或具有儲存於體現於非暫時性電腦可讀媒體中之記憶體中的預定功能性或軟體指令的硬體(諸如,特殊應用積體電路(ASIC))之特定組態。因此,可使用儲存並執行於一或多個電子裝置(例如,終端站、網路元件等)上之程式碼及資料實施諸圖中所展示之技術。此等電子裝置使用電腦機器可讀媒體(諸如,非暫時性電腦機器可讀儲存媒體(例如,磁碟、光碟、隨機存取記憶體、唯讀記憶體、快閃記憶體裝置、相變記憶體)及暫時性電腦機器可讀通訊媒體(例如,電、光、聲或其他形式之傳播信號,諸如載波、紅外線信號、數位信號等))儲存並傳達(內部地及/或經由網路與其他電子裝置)程式碼及資料。另外,此等電子裝置通常包括耦接至一或多個其他組件(諸如,一或多個儲存裝置(非暫時性機器可讀儲存媒體)、使用者輸入/輸出裝置(例如,鍵盤、觸控式螢幕及/或顯示器)及網路連接)之一或多個處理器之集合。通常經由一或多個匯流排及橋接器(亦稱為匯流排控制器)耦接處理器之集合與其他組件。攜載網路訊務之儲存裝置及信號分別表示一或多個機器可讀儲存媒體及機器可讀通訊媒體。因此,給定電子裝置之儲存裝置通常將用於執行之程式碼及/或資料儲存於彼電子裝置之一或多個處理器之集合上。當然,可使用軟體、韌體及/或硬體之不同組合實施本發明之實施例的一或多個部分。
貫穿此詳細描述,出於解釋之目的,闡述眾多特定細節以便提供對本發明之透徹理解。然而,熟習此項技術者將顯而易見,可在並無此等特定細節中之一些細節的情況下實踐本發明。在某些情況下,並未詳細描述熟知結構及功能以免混淆本發明之標的物。因此,應就以下申請專利範圍判定本發明之範疇及精神。
100:虛擬化系統/計算系統 101:應用程式堆疊 101A,101B,101C:用戶端裝置 110:虛擬化伺服器 112:處理器 114,1304:主記憶體 118:輔助儲存器 120:核心/處理核心 122,1302:處理裝置 124:信任域控制結構(TDCS) 128:信任域執行緒控制結構(TDTCS) 130:範圍暫存器 134,334:安全延伸頁表(SEPT) 140:記憶體管理單元(MMU)/頁面未命中處置器 145:MK-TME引擎 150:輸出埠 160:記憶體所有權表(MOT) 161:主機實體位址(HPA) 166:訪客實體位址(GPA) 170:網路介面 180,280:信任域資源管理器(TDRM) 190A,190B,190C,2440:信任域(TD) 195A:虛擬機(VM) 200:TD架構 202,204:受信任計算庫(TCB) 210:TD1 212:CSP VMM 214:CSP VM 216A,216B,225A,225B:租戶VM 220:TD2 222:租戶VMM 230:TD3 235:闡明OS 250:TD架構 260:TD退出 270:TD進入 300,1300:計算系統 308:程式碼/資料 310:訪客虛擬位址(GVA) 312:訪客頁表 316:訪客實體記憶體 322:延伸頁表(EPT) 325:對此EPT之指標(EPTP) 328:實體位址轉譯 332:主機實體記憶體 336:安全延伸頁表指標(SEPTP) 338:SEPT指令 342:實體位址(PA)追蹤器組件 402,404,406,408:頁面 502:訪客實體位址空間 504:私用位址空間 506:共用位址空間 600,700:邏輯流程 602,604,606,608,702,704,706,2614,2616,2632,2642,2643,2652,2714,2722,2732,2742,2752,2753:區塊 802:TDADDSEPT 804:TDADDPAGE 806:TDAUGPAGE 808:TDBLOCKPAGE 810:TDEVICTPAGE 812:TDRELOADPAGE 814:TDPROMOTE 816:TDDEMOTE 818:TDREMOVEPAGE 820:TDREMOVEMAPPING 850:SEPT微指令 852:創建映射 854:指派映射 856:解除阻止映射 858:阻止映射 860:提昇映射 862:降級映射 864:清除映射 900:多處理裝置系統 914,1014:I/O裝置 916:第一匯流排 918:匯流排橋接器 920:第二匯流排 922:鍵盤及/或滑鼠 924:音訊I/O 927:通訊裝置 928:儲存單元 930:指令/程式碼及資料 932,934:記憶體 938:高效能圖形電路 939:高效能圖形介面 950:點對點互連件/點對點(P-P)介面 952,954:P-P介面 970:第一處理裝置 972,982:整合式記憶體控制器單元(IMC)/整合式記憶體及I/O控制邏輯(CL) 976,978,986,988,994,998:匯流排控制器單元點對點(P-P)介面/P-P介面電路 980:第二處理裝置 990:晶片組 996:介面 1000:第三系統 1015:傳統I/O裝置 1100,1200:系統單晶片(SoC) 1102:互連單元 1102A,1102N,1206,1207:核心 1106:共用快取記憶體單元 1108:整合式圖形邏輯 1110:應用程式處理裝置 1112:系統代理單元 1114:整合式記憶體控制器單元 1116:匯流排控制器單元 1120:媒體處理裝置 1124:影像處理裝置 1126:音訊處理裝置 1128:視訊處理裝置 1130:靜態隨機存取記憶體(SRAM)單元 1132:直接記憶體存取(DMA)單元 1140:顯示單元 1208:快取記憶體控制 1209:匯流排介面單元 1210:L2快取記憶體 1211,2560:互連件 1215:GPU 1220:視訊編碼解碼器 1225:視訊介面 1230:用戶識別模組(SIM) 1235:啟動ROM 1240:SDRAM控制器 1245:快閃記憶體控制器 1250:周邊控制 1260:DRAM 1265:快閃記憶體 1270:藍牙模組 1275:3G數據機 1280:GPS 1285:Wi-Fi 1306:靜態記憶體 1308:網路介面裝置 1310:視訊顯示單元 1312:字母數字輸入裝置 1314:游標控制裝置 1316:信號產生裝置 1318:資料儲存裝置 1320:網路 1322:圖形處理單元 1324:電腦可讀儲存媒體 1326:處理邏輯/軟體/指令 1328:視訊處理單元 1330:匯流排 1332:音訊處理單元 1401:特定PASID 1405:域ID 1410:裝置 1420:第一層級頁表 1430:第二層級頁表 1500,1501,1502:根表條目 1510,1511,1512:上下文表/上下文表條目 1520,1530:PASID目錄條目/PASID目錄表 1525,1535:PASID表條目/PASID表 1599,2201:根表 1601:IOMMU 1602:受信任裝置上下文 1603:受信任裝置OS管理頁表 1604:微碼管理安全EPT 1605:不受信任上下文 1701:新「T-受信任」欄位 1901:上下文條目延伸 2001:PASID條目 2002:TDCS指標 2003:TD MK-TME KID 2100:PASID追蹤器 2101:PASID目錄指標 2105:PASID目錄 2202:上下文表 2203:可縮放模式PASID目錄 2204:可縮放模式PASID表 2205:第一層級頁表結構 2206:第二層級頁表結構 2301:程序位址空間ID(PASID) 2401:虛擬機監視器(VMM) 2405:裝置介面組態 2410:PF驅動器 2412,2423:PCIe IDE 2414:IO橋接件 2420:實體功能(PF) 2422:裝置安全管理器(DSM) 2425:可指派裝置介面(ADI) 2430:TDX模組 2450:有受信任執行環境(TEE)-IO能力之裝置 2460:有TDX-IO能力之主機 2510:SAI策略群組 2511:暫存器/控制策略暫存器 2512:暫存器/寫入存取控制(WAC)暫存器 2513:暫存器/讀取存取控制(RAC)暫存器 2514,2515:暫存器 2520,2521:代理 2550:SEAM模式MSR-MSR_ENABLE_SEAM_SAI 2620:本端網格 2630:本端UPI插座/本端插座UPI端點 2640:遠端插座UPI端點 2650:目標/目標IP 2653:WAC暫存器 2670:VTBAR暫存器 2671:KEY_CONFIG_BAR暫存器
可自以下結合以下圖式進行之詳細描述獲得對本發明之較佳理解,其中:
圖1A為說明根據一個實施的使用信任域提供虛擬化系統中之隔離之實例計算系統的方塊圖;
圖1B為說明根據一個實施的使用信任域提供虛擬化系統中之隔離之另一實例計算系統的方塊圖;
圖2A為根據一個實施的信任域架構之實例之方塊圖;
圖2B為根據一個實施的信任域架構之另一實例之方塊圖;
3說明另一實例計算系統;
4說明實例實體記憶體;
5說明訪客實體位址(GPA)空間之實例分割;
6說明處置共用頁面及私用頁面之位址轉譯之實例邏輯流程;
7說明用於構建、執行及拆卸信任域之實例邏輯流程;
8說明安全延伸頁表(SEPT)指令之實例集合;
9說明SEPT微指令之實例集合;
10為根據另一實施的電腦系統之方塊圖;
11為根據一個實施的系統單晶片之方塊圖;
12說明計算系統之方塊圖之另一實施;
13說明計算系統之方塊圖之另一實施;
14說明第一及第二層級頁表及與信任域相關聯之各種識別符之間的關係;
圖15說明根表、上下文表及PASID表之實例;
16說明實例IO記憶體管理單元(MMU);
17說明具有受信任指示符之TLP前綴之實例;
18說明具有受信任位元之TLP前綴之實例;
19說明上下文條目延伸之實例;
20說明程序位址空間ID(PASID)表條目之一個實施例;
圖21說明PASID追蹤器之實例;
圖22A-E說明在一個實施例中執行之查找之序列;
圖23說明排入佇列指令之實例;
圖24說明耦接至有TEE-IO能力之裝置的有TDX-IO能力之主機之一個實施例;
圖25說明SAI策略群組及具有啟用位元之模型特定暫存器之一個實施例;
圖26說明經由對策略群組之更新限制至受保護暫存器之寫入的一個實施例;且
圖27說明根據一個實施例的至受保護暫存器之寫入。
100:虛擬化系統/計算系統
101A,101B,101C:用戶端裝置
110:虛擬化伺服器
112:處理器
114:主記憶體
118:輔助儲存器
120:核心/處理核心
124:信任域控制結構(TDCS)
128:信任域執行緒控制結構(TDTCS)
130:範圍暫存器
140:記憶體管理單元(MMU)/頁面未命中處置器
145:MK-TME引擎
150:輸出埠
160:記憶體所有權表(MOT)
170:網路介面
180:信任域資源管理器(TDRM)
190A,190B,190C:信任域(TD)

Claims (24)

  1. 一種設備,其包含: 一或多個處理器核心,其用以執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護一虛擬機或受信任應用程式免受一虛擬機監視器(VMM)或作業系統(OS)的影響; 一互連網狀架構,其用以將該一或多個處理器核心耦接至一裝置;以及 安全硬體邏輯,其用以判定是否允許經由該互連網狀架構進行針對一受保護暫存器之一讀取或寫入異動,該安全硬體邏輯用以評估與該異動之一發起者相關聯之一或多個安全屬性以進行該判定。
  2. 如請求項1之設備,其中該受保護暫存器為一策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以將讀取及/或寫入權限與一或多個發起者相關聯。
  3. 如請求項2之設備,其中該一或多個控制暫存器包括: 一策略控制暫存器,其用以儲存一發起者識別符(ID)值以識別當前具有要寫入至該策略群組之一或多個其他控制暫存器的權限之一發起者。
  4. 如請求項3之設備,其中該一或多個其他控制暫存器包含一寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器的發起者之一指示。
  5. 如請求項1至4中任一項之設備,其進一步包含: 一第一網狀架構端點,其耦接至該互連網狀架構且與該一或多個處理器核心相關聯;及 一第二端點,其耦接至該互連網狀架構且與該裝置相關聯,其中該安全硬體邏輯係與該第一端點及/或該第二端點一體化。
  6. 如請求項3至5中任一項之設備,其中該發起者ID值包含一發起者安全屬性(SAI)編碼。
  7. 如請求項4至6中任一項之設備,其中該發起者包含與一第一發起者ID相關聯之一信任域延伸(TDX)模組或與一第二發起者ID相關聯之一虛擬機監視器(VMM)或作業系統(OS)。
  8. 如請求項7之設備,其中與該TDX模組相關聯之一第一代理具有用以當該第一發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限,並且與該VMM或OS相關聯之一第二代理具有用以當該第二發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限。
  9. 一種方法,其包含: 在一或多個處理器核心上執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護一虛擬機或受信任應用程式免受一虛擬機監視器(VMM)或作業系統(OS)的影響; 由與該一或多個處理器核心中之一者相關聯之一發起者經由一互連網狀架構產生針對一受保護暫存器之一讀取或寫入異動; 評估與該異動之該發起者相關聯之一或多個安全屬性;以及 基於評估判定是否允許經由該互連網狀架構進行該讀取或寫入異動。
  10. 如請求項9之方法,其中該受保護暫存器為一策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以將讀取及/或寫入權限與一或多個發起者相關聯。
  11. 如請求項10之方法,其中該一或多個控制暫存器包括一策略控制暫存器,該方法包含: 將一發起者識別符(ID)值儲存於該策略控制暫存器中以識別當前具有要寫入至該策略群組之一或多個其他控制暫存器之權限之一發起者。
  12. 如請求項11之方法,其中該一或多個其他控制暫存器包含一寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器的發起者之一指示。
  13. 如請求項9至12中任一項之方法,其中一第一網狀架構端點係耦接至該互連網狀架構且與該一或多個處理器核心相關聯;且一第二網狀架構端點係耦接至該互連網狀架構且與該裝置相關聯,該第一端點及/或該第二端點執行評估該一或多個安全屬性且判定是否允許該讀取或寫入異動之操作。
  14. 如請求項11至13中任一項之方法,其中該發起者ID值包含一發起者安全屬性(SAI)編碼。
  15. 如請求項12至14中任一項之方法,其中該發起者包含與一第一發起者ID相關聯之一信任域延伸(TDX)模組或與一第二發起者ID相關聯之一虛擬機監視器(VMM)或作業系統(OS)。
  16. 如請求項15之方法,其中與該TDX模組相關聯之一第一代理具有用以當該第一發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限,並且與該VMM或OS相關聯之一第二代理具有用以當該第二發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限。
  17. 一種機器可讀媒體,其具有儲存於其上之程式碼,該程式碼在由一機器所執行時致使該機器進行下列操作: 在一或多個處理器核心上執行指令並處理資料,該一或多個處理器核心執行一或多個安全指令以保護一虛擬機或受信任應用程式免受一虛擬機監視器(VMM)或作業系統(OS)的影響; 由與該一或多個處理器核心中之一者相關聯之一發起者經由一互連網狀架構產生針對一受保護暫存器之一讀取或寫入異動; 評估與該異動之該發起者相關聯之一或多個安全屬性;以及 基於評估判定是否允許經由該互連網狀架構進行該讀取或寫入異動。
  18. 如請求項17之機器可讀媒體,其中該受保護暫存器為一策略群組之複數個暫存器中之一者,該策略群組包含一或多個控制暫存器以將讀取及/或寫入權限與一或多個發起者相關聯。
  19. 如請求項18之機器可讀媒體,其中該一或多個控制暫存器包括一策略控制暫存器,該機器可讀媒體包含程式碼以致使下列額外操作: 將一發起者識別符(ID)值儲存於該策略控制暫存器中以識別當前具有要寫入至該策略群組之一或多個其他控制暫存器之權限之一發起者。
  20. 如請求項19之機器可讀媒體,其中該一或多個其他控制暫存器包含一寫入存取控制(WAC)暫存器,該WAC暫存器用以儲存當前准許寫入至該策略群組中之暫存器的發起者之一指示。
  21. 如請求項17至20中任一項之機器可讀媒體,其中一第一網狀架構端點係耦接至該互連網狀架構且與該一或多個處理器核心相關聯;且一第二網狀架構端點係耦接至該互連網狀架構且與該裝置相關聯,該第一端點及/或該第二端點執行評估該一或多個安全屬性且判定是否允許該讀取或寫入異動之操作。
  22. 如請求項19至21中任一項之機器可讀媒體,其中該發起者ID值包含一發起者安全屬性(SAI)編碼。
  23. 如請求項20至22中任一項之機器可讀媒體,其中該發起者包含與一第一發起者ID相關聯之一信任域延伸(TDX)模組或與一第二發起者ID相關聯之一虛擬機監視器(VMM)或作業系統(OS)。
  24. 如請求項18至23中任一項之機器可讀媒體,其中與該TDX模組相關聯之一第一代理具有用以當該第一發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限,並且與該VMM或OS相關聯之一第二代理具有用以當該第二發起者ID被儲存於該策略控制暫存器中時更新該WAC暫存器之權限。
TW111125959A 2021-09-25 2022-07-11 用於針對信任域延伸輸入輸出(tdx-io)之以角色為基礎的暫存器保護之設備及方法 TW202314484A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/485,421 2021-09-25
US17/485,421 US20230098288A1 (en) 2021-09-25 2021-09-25 Apparatus and method for role-based register protection for tdx-io

Publications (1)

Publication Number Publication Date
TW202314484A true TW202314484A (zh) 2023-04-01

Family

ID=85718451

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111125959A TW202314484A (zh) 2021-09-25 2022-07-11 用於針對信任域延伸輸入輸出(tdx-io)之以角色為基礎的暫存器保護之設備及方法

Country Status (4)

Country Link
US (1) US20230098288A1 (zh)
CN (1) CN117730312A (zh)
TW (1) TW202314484A (zh)
WO (1) WO2023048886A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5914145B2 (ja) * 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
US10243746B2 (en) * 2017-02-27 2019-03-26 Red Hat, Inc. Systems and methods for providing I/O state protections in a virtualized environment
US20190004978A1 (en) * 2017-06-30 2019-01-03 Intel Corporation Security role identifier pools allocation
US11126453B2 (en) * 2019-03-07 2021-09-21 Micron Technology, Inc. Protected regions management of memory
US11599621B2 (en) * 2019-03-30 2023-03-07 Intel Corporation Apparatuses, methods, and systems for verification of input-output memory management unit to device attachment
US20210141658A1 (en) * 2020-11-11 2021-05-13 Ravi Sahita Method and apparatus for trusted devices using trust domain extensions

Also Published As

Publication number Publication date
CN117730312A (zh) 2024-03-19
US20230098288A1 (en) 2023-03-30
WO2023048886A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
EP3629540B1 (en) Apparatus and method for secure memory access using trust domains
US11934843B2 (en) Secure arbitration mode to build and operate within trust domain extensions
US11520611B2 (en) Secure public cloud using extended paging and memory integrity
EP3657378B1 (en) Providing isolation in virtualized systems using trust domains
US10325118B2 (en) Cryptographic cache lines for a trusted execution environment
EP3671515B1 (en) Method and apparatus for trust domain creation and destruction
US11748146B2 (en) Scalable virtual machine operation inside trust domains within the trust domain architecture
TWI608378B (zh) 裝置與安全處理環境之間的介面
US10705976B2 (en) Scalable processor-assisted guest physical address translation
TW202314484A (zh) 用於針對信任域延伸輸入輸出(tdx-io)之以角色為基礎的暫存器保護之設備及方法
US20230195652A1 (en) Method and apparatus to set guest physical address mapping attributes for trusted domain
US20240061697A1 (en) Providing trusted devices fine grained access into private memory of trusted execution environment