TWI544418B - 用以執行保全嵌入式容器之處理器擴充技術(二) - Google Patents

用以執行保全嵌入式容器之處理器擴充技術(二) Download PDF

Info

Publication number
TWI544418B
TWI544418B TW103122300A TW103122300A TWI544418B TW I544418 B TWI544418 B TW I544418B TW 103122300 A TW103122300 A TW 103122300A TW 103122300 A TW103122300 A TW 103122300A TW I544418 B TWI544418 B TW I544418B
Authority
TW
Taiwan
Prior art keywords
memory
processor
key
oirm
page
Prior art date
Application number
TW103122300A
Other languages
English (en)
Other versions
TW201437916A (zh
Inventor
凡德伊斯 沙巴吉
亞范德 庫瑪
普拉休坦 高爾
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 TW201437916A publication Critical patent/TW201437916A/zh
Application granted granted Critical
Publication of TWI544418B publication Critical patent/TWI544418B/zh

Links

Classifications

    • 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/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Description

用以執行保全嵌入式容器之處理器擴充技術(二) 發明領域
本發明係大致有關電子學的技術領域。更確切來說,本發明的一實施例係有關用以執行保全嵌入式容器的處理器擴展技術。
發明背景
一電腦系統可實行為一種層疊式裝置,例如,包括一硬體層、一韌體與作業系統層、以及一應用程式層。可把該電腦系統的硬體層稱為一實體平台。該實體平台可包括處理器、晶片組、通訊頻道、記憶體、板卡、以及系統。
該電腦系統亦可包括一管理性引擎,例如,包括專用來允許該電腦系統能受到管理的一微控制器,例如,透過一通訊網路而經由一遠端管理控制台遠端地受到管理。然而,提供用於管理性服務的一專屬微控制器可能不適當、不實際、或者在某些實行方案中因為包括成本、大小、電力耗用、散熱、有限MIPS(每秒百萬個指令)等因素而變得無法縮放。
依據本發明之一可行實施例,係特地提出一種處理器,其包含:一或多個處理器核心;一快取記憶體儲存體,其至少部分地藉由使用一擴充頁面表(EPT)而可由該等一或多個處理器核心存取;一封裝上(on-package)記憶體,其用以儲存映射至來自一作業系統(OS)獨立記憶體分割區的實體位址之一金鑰頁面;一嵌入式處理器金鑰,其可由一OS獨立(OI)資源管理器(OIRM)存取以用於密碼操作,其中在該處理器上執行之來自該OI記憶體分割區外部的一應用程式可喚起由該OIRM所提供的一種二進制大型物件(blob)服務來產生一金鑰二進制大型物件以存取在該OI記憶體分割區內部的該金鑰頁面。
100、1800、1900‧‧‧運算系統
102、102-1~102-N、1902、 1904、1802、1802-1~ 1802-n‧‧‧處理器
104‧‧‧互連網路或匯流排
106、106-1~106-M、1002、1004‧‧‧處理器核心
108‧‧‧快取記憶體
110‧‧‧路由器
111‧‧‧處理器上記憶體、封裝上記憶體
112‧‧‧匯流排或互連體
113‧‧‧處理器金鑰、嵌入式金鑰
114、1812、1910‧‧‧記憶體
116-1‧‧‧L1快取記憶體
120‧‧‧HOST OS/VMM分割區(容器)
122‧‧‧OI分割區(容器)
123‧‧‧SMM分割區(容器)
124‧‧‧OI資源管理器(OIRM)
302‧‧‧OI驅動程式
303‧‧‧OI工作者執行緒
304‧‧‧OIEE(OI執行環境)
402、406、410‧‧‧喚起OI讀取
404‧‧‧中斷到達OS/VMM
408、412‧‧‧OI時間分配屆期
902‧‧‧C-狀態規則
904‧‧‧PCU(電力控制單元)探 索法
906‧‧‧平台P透過來源(AC電源/電池)
908‧‧‧核心清單
910‧‧‧經過濾核心清單
912‧‧‧是否有任何核心處於C-x狀態?
914‧‧‧C-0核心清單
916‧‧‧C-x核心清單
918‧‧‧選出處於最低C狀態的核心
920‧‧‧核心跳躍規則
1006、1008‧‧‧LAPIC(本地先進可編程中斷控制器)
1010‧‧‧中斷再映射單元
1012‧‧‧外部中斷
1020‧‧‧中斷再映射表(IRT)
1022‧‧‧OI裝置過濾器
1102~1114‧‧‧步驟
1202‧‧‧OI PIC(OI可編程中斷控制器)模組
1204‧‧‧來自分派裝置的向量
1206‧‧‧內部向量
1208‧‧‧OI IRR(中斷請求暫存 器)
1210‧‧‧OI ISR(OI服務內暫存器)
1212‧‧‧OI EOI(中斷的結束)
1214‧‧‧OIRM排程器模組
1702‧‧‧OIEE頁面
1704‧‧‧ICV陣列
1706‧‧‧背景任務
1803‧‧‧電腦網路
1804‧‧‧互連網路(或匯流排)
1806、1920‧‧‧晶片組
1808‧‧‧記憶體控制中樞(GMCH)
1810‧‧‧記憶體控制器
1814、1936‧‧‧圖形介面
1816‧‧‧顯示器裝置
1818‧‧‧中樞介面
1820‧‧‧輸入/輸出控制中樞(ICH)
1822、1940、1944‧‧‧匯流排
1824‧‧‧周邊橋接器(或控制器)
1826‧‧‧音訊裝置
1828‧‧‧碟片驅動機
1830‧‧‧網路介面裝置
1906、1908‧‧‧本地記憶體控制器中樞(MCH)
1914、1922、1924‧‧‧點對點(PtP)介面
1916、1918、1926~1932、1937、1941‧‧‧點對點(PtP)介面電路
1942‧‧‧匯流排橋接器
1943‧‧‧I/O裝置
1945‧‧‧鍵盤/滑鼠
1946‧‧‧通訊裝置
1947‧‧‧音訊I/O裝置
1948‧‧‧資料儲存裝置
1949‧‧‧程式碼
以下將參照圖式來提出本發明的詳細說明。在圖式中,一元件編號的最左邊數字表示該元件編號首先出現的圖式編號。在不同圖式中,將使用相同的元件編號來表示相似或相同的物件。
第1圖、第18圖與第19圖以方塊圖展示出運算系統的實施例,該等運算系統可用以實行本發明討論的各種不同實施例。
第2圖以狀態轉換圖展示出根據一實施例的四種狀態與觸發器,其促使從一狀態轉換至另一種狀態的轉換狀況。
第3圖以方塊圖展示出根據一實施例之與執行不 同記憶體分割區相關聯的各種不同操作。
第4圖至第8圖以時間圖展示出根據本發明的某些實施例。
第9圖與第11圖以流程圖展示出根據本發明的某些實施例。
第10圖以方塊圖展示出根據一實施例用以處置源自於分派給OI之多個裝置的多個中斷以及將它們注入到該OI分割區的各種不同部件。
第12圖展示出根據一實施例之用於與一OI PIC模組進行通訊的各種不同部件。
第13圖與第14圖以方塊圖展示出根據某些實施例之與使用一載入金鑰相關聯的操作。
第15圖與第16圖以方塊圖展示出根據某些實施例之與使用一儲存金鑰相關聯的操作。
第17圖以方塊圖展示出根據一實施例之與在S0以及S3之間進行保全轉換動作相關聯的操作。
較佳實施例之詳細說明
在以下的發明說明中,將列出多種特定細節以供完整地了解本發明。然而,不需要該等特定細節亦能實行本發明。在其他事例中,並未詳細地說明已知方法、程序、構件、與電路,以避免模糊本發明的焦點。再者,可利用各種不同構件來執行本發明實施例的各種不同面向,例如整合式半導體電路(“硬體”)、組構成一或多個程式(“軟體”) 的電腦可讀指令、或硬體與軟體的某些組合。為了本發明的說明目的,本文中表式的“邏輯組件”應該表示硬體、軟體、或該等的某些組合。此外,可交替地在本文中使用“指令”或“微操作”(其亦可被稱為“uop”)等用語。同樣地,即使本發明討論的某些實施例可分別把一組數值或清除數值表示為邏輯0與邏輯1,可交替地使用該等用語,例如,依據實行方案而定。
某些處理器可包括多個處理核心。除了該等多個核心之外,一處理器晶粒可包括一非核心(其可整體地表示位於該等處理器晶粒上而除了該(等)核心以外的所有其他元件)。為了提升效能,可把越來越多的功能整合到處理器的非核心中,例如,藉著置換多個晶片組。例如,某些實行方案可把記憶體控制器功能、IO(輸入輸出)控制器功能、以及圖形功能建構到該非核心中。然而,此種趨勢對在平台遞送的其他功能或服務具有衝擊性,例如管理性。目前,可在一專屬處理器上遞送某些管理性功能,其可構成一管理引擎(ME)的核心部份。ME大致上位於一晶片組上。同樣地,某些伺服器平台可實行一種分立的專屬微控制器,稱為一基板管理控制器(BMC)、一服務處理器(SP)、或任何其他名稱。如前所討論地,該等解決方案因著例如成本、大小、電力耗用、散熱、有限MIPS等因素而無法縮放。在超行動個人電腦(UMPC)環境中,這將是更嚴重問題,並且強迫要使用一不同的解決方案。
於此,本發明的某些實施例針對管理性功能提供 縮放式解決方案,例如,針對UMPC環境,或者當中針對管理性使用一專屬處理器或微控制器可能是不適當或不實際的環境。例如,在一實施例中,一OS(作業系統)或VMM(虛擬機器管理器)獨立架構(整體地在本文中稱為“OI”)包含藉著在該HOST OS/VMM以及該OI容器之間動態地劃分資源(例如處理器週期、記憶體、裝置)來在一處理器上產生一或多個容器。在一實施例中,一OI資源管理器(OIRM)可在該HOST OS/VMM容器(在本文中亦稱為分割區)以及該OS獨立容器之間進行時間共享操作。因此,某些實施例允許閒置處理器週期能用於一有用目地(例如管理性),而不會衝擊到OS/VMM執行效能(或使衝擊縮小)。
在一實施例中,揭露了用以處置源自於分派給OI之多個裝置的多個中斷以及將該等中斷注入到一OI分割區的技術。在一實施例中,備置了防竄改記憶體,以供掌管OI中易於受到安全性威脅的資料。在一實施例中,可使從S3轉換到S0且從S0轉換到S3所需花費的時間縮短。再者,本文所述的技術可允許改善各種不同運算裝置中的效能、效率、及/或安全性,例如參照第1圖至第19圖討論地。
更確切來說,第1圖以方塊圖展示出根據本發明一實施例的一種運算系統100。系統100可包括一或多個處理器102-1至102-N(在本文中整體地稱為“處理器102”)。該等處理器102可經由互連網路或匯流排104進行通訊。各個處理器可包括各種不同部件,而為了簡要目的僅參照處理器102-1討論其中的某些部件。因此,剩餘的處理器102-2 至102-N可各包括參照處理器102-1討論的相同或相似部件。
在一實施例中,處理器102-1可包括一或多個處理器核心106-1至106-M(在本文中整體地稱為“核心106”)、共享快取記憶體108、及/或路由器110。可在一單一積體電路(IC)晶片上實行處理器核心106。再者,該晶片可包括一或多個共享及/或私有快取記憶體(例如快取記憶體108)、匯流排或互連體(例如匯流排或互連體112)、記憶體控制器(例如,參照第18圖與第19圖討論的記憶體控制器)、或其他部件。
在一實施例中,路由器110可用來在處理器102-1及/或系統100的各種不同部件之間進行通訊。再者,處理器102-1可不只包括一個路由器110。再者,該等多個路由器110可處於通訊中,以致能在處理器102-1內部或外部之各種不同部件之間的資料路由動作。在一實施例中,處理器102-1可具有僅能由OIRM 124存取以用於密碼操作的一嵌入式金鑰113。在一實施例中,可在最初啟動該處理器時,由該OIRM利用一種強固隨機數產生器來產生此金鑰並把它儲存在該處理器上。在另一個實施例中,可在製造時把此金鑰儲存在該處理器中。
共享快取記憶體108可儲存由處理器102-1之一或多個部件(例如核心106)使用的資料(例如包括指令)。如所展示地,處理器102亦可包括處理器上(在本文中亦稱為“封裝上”)記憶體111(其可作為保全記憶體,如以下進一步 討論地)。例如,共享快取記憶體108可區域地快取儲存在記憶體114中的資料,以供處理器102的部件能進行較快速存取動作。在一實施例中,快取記憶體108可包括一中間階級快取記憶體(例如第二階級(L2)、第三階級(L3)、第四階級(L4)、其他階級的快取記憶體)、一最後階級快取記憶體(LLC)、及/或該等的任何組合。再者,處理器102-1的各種不同部件可透過一匯流排(例如匯流排112)及/或記憶體控制器或中樞直接地與共享快取記憶體108進行通訊。如第1圖所示,在某些實施例中,該等核心106中的一或多個可各包括一個第一階級(L1)快取記憶體(116-1)(在本發明中整體地稱為“L1快取記憶體116”)及/或第二階級(L2)快取記憶體(未展示)。
如第1圖所示,系統100可使用一或多個分割區(在本文中亦交替地稱為“容器”)120與122。OI資源管理器(OIRM)124可在該實體層(例如,處理器核心、晶片組、記憶體、儲存體、網路介面等)以及該HOST OS/VMM與OI容器(或分割區)120與122之間通訊式地耦合。同樣地,可以使用不只一個OI容器。在某些實施例中,可把OIRM 124實行為一處理器上的微碼或韌體。例如,OIRM 124可為負責排程處理器週期的處理器微碼。它亦可允許主要OS/VMM分割區120能執行與OI分割區124執行之處理器指令交錯的處理器指令,例如,以便維持對在該系統上執行之多個程序的公平性或系統響應性。
HOST OS/VMM分割區120可包括一般(主機)應 用程式及/或主機裝置驅動程式(未展示)。同樣地,OI分割區122可包括應用程式、對應於核心能力的資料、及/或OI驅動程式(例如用於選定裝置)(未展示)。再者,在某些實施例中,當對OIEE(OI執行環境(該OI分割區中的作業環境))分配處理器時間時,OIRM 124可能需滿足下列限制中的一或多個:
●HOST OS/VMM將不會遺漏中斷或遭受時間漂移,且HOST OS/VMM IO裝置(例如CDROM、LAN、WLAN等)應該及時地得到服務,以避免緩衝器的下溢或上溢狀況。這暗示著將以最小潛伏期間來遞送外部中斷以及預定用於HOST OS/VMM的處理器間中斷。
●在一處理器核心上排程該OIEE的動作將不會導致阻擋其他處理器的動作。當該作業系統對受選來排程OI的該處理器核心進行一項鎖定動作時,該種狀況可能會發生。為了執行OI而帶走此處理器核心的動作會使等待此鎖定動作的其他處理器核心旋轉並且浪費週期。排程OI以供在該處理器核心上執行的演算法應該盡可能地避免該等狀況。
●處理器核心、裝置、匯流排等的電源管理動作應該要與該OS合作,而不是干擾HOST OS/VMM 120。可使OIRM 124知悉對該系統之電力、熱氣、以及效能狀態之排程決策的副作用。例如,使一C-x處理器核心(與處理器C狀態相關聯)處於C-0以排程OI的動作可能會使該系統的氣囊功率錯過臨界值,進而導致自動頻率 跳變問題。因此,選出一C-x處理器核心以供進行排程動作(儘管已經完成)來避免對C-0處理器核心產生的效能衝擊,可能會不經意地造成一種分離效能損失。OIRM 124可利用核心與非核心中可得的適當電源探索法,例如,來自一PCU(電力控制單元),以做出明智而審慎的選擇。可把一PCU備置在該處理器非核心中,以管理用於處理器核心與非核心部件的電源管理策略。
●可把作業系統與效能監看工具組配成具有一機會能檢測從一給定處理器核心耗用以執行OI的週期數量。如果觀察到任何無法預見的行為時,提供該種觀察能力能夠協助對該系統進行除錯,以確定它是否是由OI引發。
在某些實施例中,該等OI實行方案將提供一種不會受到HOST OS/VMM狀態影響的執行環境。因此,在某些實施例中,OIRM可符合下列需求中的一或多個:
●藉著確保OI操作/指令能如所組配地執行達一段最小保證期間來避免或縮減OI飢餓狀況。
●避免或縮減OI操作/指令在該系統的任何一個處理器核心上旋轉。OS獨立操作可從HOST OS/VMM取得週期。某些作業系統與VMM釘住工作量(例如執行緒、VM(虛擬機器)等),以便達成傳輸量目標。使OI釘住到一特定處理器核心的動作會不公平地使由HOST OS/VMM釘住到該處理器核心的任何工作量不利。
●在對系統效能產生最小衝擊的該處理器核心上執行。該系統效能是HOST OS/VMM傳輸量、電力耗用與C-狀態喚醒潛伏期間的一項混合。該OIRM可仰賴來自該PCU的探索法,達到處理器核心選擇的最佳決策以供執行OIEE,以便不會不當地沿著該等向量中的任一個向量而衝擊該系統效能。
第2圖以狀態轉換圖展示出根據一實施例的四種狀態與觸發器,其促使從一狀態轉換至另一種狀態的轉換狀況。再者,根據上述需求,可以參考所展示出之一處理器核心的狀態轉換。根據某些實施例,一處理器核心可存在於下面模式中的一種。在一實施例中,係由OIRM 124來控制一處理器核心在該等模式之間轉換的動作。
●HOST OS/VMM-HOST OS/VMM容器120為主動的,且在該處理器核心上執行。
●OI-該處理器核心正在執行該(等)OI容器122中的一個。
●SMM(系統管理模式)-該處理器核心正在執行SMM容器123。可從任何狀態進入該SMM狀態。
●IDEL(閒置)-該HOST OS/VMM以及該OIEE係處於C-x狀態。該OIRM把該處理器核心轉換為該HOST OS/VMM所要求的C狀態。
下面的表1提供展示於第2圖之各項轉換的進一步資訊以及起因。
再者,可把OIRM 124實行為在所有處理器執行緒執行的一微碼模組。該等該OIRM事例中的一事例可主動地排程該OIEE,以供於任何給定時點在該等處理器核心中之一上執行。在本文中,可把主動地排程OIEE以供在一處理器核心上執行的該OIRM事例稱為“主動(Active)”OIRM事例,而把其他事例稱為“待機(standby)”OIRM事例。在一實施例中,在該系統中僅有一個OIRM的主動事例。
大致上,一個多處理器致能作業系統使用閉鎖以堅持某些操作的單元性(“atomicity”)。可因著搶佔而令使用該等閉鎖的關鍵性片段程式碼擴充,以供在保有該閉鎖的處理器核心上執行OI容器。因此,其他閉鎖競爭者必須要結束旋轉,直到使該處理器核心返回以供執行HOST OS/VMM為止;因此,可相當程度地擴充自旋鎖(spinlock)取得內容。在一處理器核心上排程該OIEE的動作不應導致其他處理器核心在自旋鎖上的該種不欲旋轉狀況。本發明討論架構所實行的下面方法將可藉由以下方式來避免該種鎖定狀況(或至少降低可能性):
(1)驅動程式輔助排程-給予該作業系統一機會以便能及時地宣告區間,其中將把該處理器核心帶離該作業系統以執行OI操作/指令的動作可免於受到危害。例如,一驅動程式,例如備置在HOST OS/VMM 120中的一驅動程式,可協助進行此項判定動作。此可為操作的正常模式,其中該OIRM通知HOST OS/VMM中的該OI驅動程式(例如利用一中斷),以表示需要排程OI 操作/指令。例如,該驅動程式將響應於受到排程而通知該OIRM。此通知可由該OIRM作為一“產出”指示,以在該處理器核心上排程OI。該OIRM允許該OI能在該處理器核心上執行,直到OI耗用其週期分配額為止,或者一中斷/IPI(處理器間中斷)需要被遞送到該HOST OS/VMM為止。此種方法導致該OI執行時間實質上對該驅動程式執行時間負責,且亦可避免高優先順序鎖定同步化的相關問題。
(2)獨立自主的排程-然而,在某些狀況中,並無法完全地仰賴上述的方法(1)來進行OI排程,因為:(a)該HOST OS/VMM可能處於一種非操作狀態;(b)可能使該OI驅動程式無效或者並未安裝該OI驅動程式;及/或(c)HOST OS/VMM上的目前工作量可避免該OI驅動程式受到排程。因為該OIRM需要保護該OIEE使其不受挨餓,並且提供某一段經組配的最小執行時間,該OIRM可使用一保護計時器來保護免於受到HOST OS/VMM中該種不正常況的影響。當把呈中斷形式而針對該OI驅動程式的通知遞送到該HOST OS/VMM時,可使該保護計時器開始。如果該OI驅動程式受到排程的時間並不夠長而無法在此保護時間中對OI分配該經組配最小執行時間,該OIRM可轉移到一種搶佔式操作模式,以滿足對OIEE做出的最小執行時間保證。該OIRM亦可確保該HOST OS/VMM受到搶佔的期間具有決定性,並且與一臨界上限結合。
根據某些實施例,下面的參數可掌管HOST OS/VMM與OI之間之執行時間的時間共享:
1. OI-Accounting-Interval(OI-結算區間)-當中在OIEE與HOST OS/VMM之間共享時間的結算區間將受到執行。例如,如果係把該OIEE組配成可在一處理器核心上使用3%的週期,且把該OI-結算區間設定為100ms,該OIEE便不應該在任何給定100ms區間中執行超過3ms。可在各個結算區間的開始對該OI驅動程式遞送該中斷。
2. OI-Minimum-Share(OI-最小-共享)-可對該OI保證而做為該OI結算區間之一百分比的最小處理器執行時間。在任何給定結算區間中,該最小共享都是該OI可得的。然而,並沒有潛伏期間承諾,且該最小共享可能散佈於一或多個路程中的整個結算區間。
3. OI-Normal-Share(OI-正常-共享)-對OI分派而作為該OI結算區間之一百分比的處理器時間正常共享。並無法對該OI保證此正常共享。
4. OI-Maximum-Share(OI-最大-共享)-可由OI使用而作為該OI結算區間之一百分比的最大處理器時間共享。當它進入修復模式時,這是該OI可得的處理器共享,如該OS獨立對OIRM所表示地,且可如該OI-結算區間的100%一般高,依據實行方案而定。
5. OI-Scheduling-Quantum(OI-排程-總量)-當執行該HOST OS/VMM之處理器核心受到搶佔以供執行 OI時,OI可利用未搶佔方式運作的最大時間。
可由OIRM利用稱為OI-Current-Share(OI-目前-共享)的一參數來追蹤目前的執行時間共享(例如,OI-正常-共享或OI-最大-共享)。例如,在各個結算區間的開始,該OIEE在處理器核心上接收等於其執行時間之OI-目前-共享的一時間信用額度。該信用額度係以等於OIEE在該處理器核心上執行之期間的一數量在該OIEE的各個排程上受到耗用。當耗用完該等信用額度時,將阻擋該OIEE使其無法執行,直到該信用額度受到補充的下一個結算區間為止。
該驅動程式輔助排程方案(上面的項目(1))可依據安裝在該HOST OS/VMM中的一OI驅動程式而定。該OI驅動程式可向OIRM登錄一中斷向量,作為其與該OIRM之初始化的部分。該OI驅動程式亦可使一OI工作執行緒產生,其位於一無限迴圈中,等待來自該OI驅動程式的一事件通知。該OIRM可把中斷注入到該HOST OS/VMM中,以喚起對應於此向量的一ISR(中斷服務常式)掌管程式,以便通知該OI驅動程式該OI-結算區間的開始。
第3圖以方塊圖展示出根據一實施例之與執行OIEE以及HOST OS/VMM相關聯的各種不同操作。如第3圖所示,在操作1中,OIRM 124把一中斷注入到HOST OS/VMM 120中。此動作可喚起由OI驅動程式302登錄的該ISR(例如儲存在OS/VMM分割區120中)。在操作2中,OI驅動程式302(例如經由一對應ISR)通知該OI工作執行緒303。在一實施例中,執行緒303並不與任何特定處理器核 心結盟。該作業系統可適當地排程執行緒303。在操作3中,執行緒303喚起一指令以請求OIRM 124要排程OIEE 304。在操作4中,OIRM 124儲存HOST OS/VMM容器120的目前狀態,並且載入OIEE 304的經儲存狀態。可因為針對HOST OS/VMM 120之一中斷/IPI的到來而觸發操作5,或者可因為針對OIEE 304組配之目前執行時間共享(正常或最大)的屆期而觸發操作5。
從該HOST OS/VMM以及該OI工作執行緒303的觀點,該IO指令實質上為在執行上面的操作5時會返回的一阻擋指令。根據執行操作5的原因,OIRM 124可把下面的返回值之一送回給工作執行緒303:
●BLOCK(阻擋)-此返回值表示已經因為耗用了對該OI的時間分配額而執行操作5。此動作實質上使執行緒303返回、阻擋、並等待來自該OI驅動程式的下一個事件通知。
●CONTINUE(繼續)-此返回值表示已經執行了操作5,例如,因著到達HOST OS/VMM的一外部中斷/IPI而使OI受到搶佔。在此結算區間中,針對該OI的時間分配額可能尚未耗用。使操作5受到執行的該中斷可搶佔該OI。當該HOST OS/VMM已經完成該ISR處理時(且可能地執行其他未決的高優先順序任務),它將重排新程OI工作執行緒303。替代地,該HOST OS/VMM可把執行緒303移動到另一個處理器核心,而它同時處理到達的中斷。在受到恢復時,工作執行緒303可檢查該 返回值,且如果該返回值為CONTINUE(繼續)的話,它便執行操作3以恢復OI執行動作。
第4圖以時間圖展示出根據本發明的一實施例。二個結算區間係展示於第4圖中。在第一結算區間中(從第4圖的左邊開始),將因著喚起OI-READ的OI驅動程式執行緒303而在402中排程OI;然而,將因著一HOST OS/VMM中斷而在404中使OI中斷。稍後將在406於該結算區間中再度排程該OI,並且在408中完成執行其經分配時間。在第二結算區間(開始於410)中,OI不中斷地執行,直到它在412完成執行其分配時間為止。
在某些事例中,可能有機會藉著避免或阻擋執行OI工作執行緒303的動作,而在該OI上實行一完整的服務否定,不管是不小心地或蓄意地。以下說明的保護計時器與相關聯HOST OS/VMM搶佔方式將允許OIRM能對OI做出的最小執行時間保證進行遞送。
更確切來說,在注入中斷以供請求排程OI工作執行緒303時,該OIRM開始該保護計時器。在一實施例中,可把此計時器的期間設定為該結算區間的50%。亦可設定其他期間。如果該OI得到充分機會可執行耗用其最小的經組配時間共享,OIRM便針對該結算區間關閉該保護計時器。可能因此無法保證任何額外的執行機會。在此保護計時器屆期時,如果該OI尚未有機會執行其經組配最小時間共享,該OIRM便進入搶佔排程模式,直到它提供充足機會給OI耗用其經組配最小時間共享為止。當進行該搶佔排程 以執行OI時,該HOST OS/VMM中斷可能受到阻擋。然而,該OIRM可把OI不中斷地執行的最大期間控制為該OI-排程-總量。
在一實施例中,下面的操作說明保護計時器屆期時的OIRM處理動作,其中OIRM開啟周期性P的一計時器,其中P係有以下方程式判定:P=(OI_Accounting_Interval/2)/(OI_Minimum_Share/OI_Sc heduling_Quantum)
在各個區間屆期時,將進行下列動作:(a)搶佔HOST OS/VMM並且排程OI,以供在處理器核心上執行,其中已經搶佔了HOST OS/VMM;(b)針對OI組配一搶佔時間,以在OI-排程-總量之後屆期;以及(c)當該OI搶佔計時器屆期時,恢復HOST OS/VMM。
第5圖至第8圖以時間圖展示出根據本發明的某些實施例。更確切來說,第5圖展示出在保護計時器屆期之前所耗用的OI-最小-共享。在此,係展示出2個結算區間。在第一結算區間中,該OI已經在保護時間屆期之前耗用了其最小共享;然而,HOST OS/VMM決不會對OI提供機會以執行更多動作。在第二區間中,相似的狀況會發生,然而,該HOST OS/VMM確實允許OI能執行多於該OI-最小-共享的工作。
在第6圖中,OI進入搶佔排程模式,且開始搶佔HOST OS/VMM以在OI中執行OI-排程-總量長期叢發,直到它有機會可以針對其最小經組配時間共享來執行為止。在第7圖中,OI進入搶佔排程模式,並且開始搶佔HOST OS/VMM以在OI中執行OI-排程-總量長期叢發。然而,在數個該種總量之後,該OS中的驅動程式將變得主動並且喚起該OI-READ要請求排程OI。同樣地,該OI-READ導致OI執行的時間夠長而耗用該經組配的最小時間以及HOST OS/VMM的搶佔動作以執行OI停止。在第8圖中,OI進入搶佔排程模式,且開始搶佔HOST OS/VMM以在OI中執行OI-排程-總量長期叢發。然而,在數個該種總量之後,該OS中的驅動程式將變得主動並且喚起該OI-READ要請求排程OI(然而,該OI運作的時間並不夠長而無法耗用該經組配最小時間)。此將使OIRM繼續進行該搶佔式排程,直到在OI中執行該經組配最小時間為止。
在一實施例中,有關在HOST OS/VMM中掌管OI驅動程式的缺席/故障,如果在該作業系統中安裝了該種驅動程式,該驅動程式輔助排程機構便可產生作用(kick in)。然而,該OI排程可能並不依賴所出現的驅動程式;因此,當已經安裝了該驅動程式,且它正在運作時,該排程以OS友善方式運作。如果並未安裝或者並未載入該驅動程式,或該作業系統本身並未受到安裝或者該作業系統無法運作,該OIRM便進行該排程動作,如同上述的保護時間為零一般。並無法求助於該搶佔式排程模式,直到該OIEE已經 收到該經組配最小執行時間為止。一旦該OIEE已經運轉達該經組配最小時間,OIEE時間片段中之HOST OS/VMM事件的到來可依次地促成OIEE的搶佔動作,以執行HOST OS/VMM。
在某些實施例中,可把OS可見度備置到於OI模式中耗用的週期中。此項能力亦可用來作為除錯工具,以在OI受致能的狀況下,了解該平台上的任何不恰當行為。可透過一對核心MSR(模型特定暫存器)-OI_CYCLE_LOW(包含該週期計數的較低等級32位元)以及OI_CYCLE_HIGH(包含該計數器的較高等級32位元),使於OI模式中耗用週期的可見度成為可得的-其可由該作業系統及/或效能監看工具讀取。該OIRM可針對各個核心把該等計數器重置為0,作為其初始化順序的部分。在各個OI執行上,可以透過該等計數器來更新在該OI中花費的時間(並不計算在SMM或HOST OS/VMM中花費的時間)。
第9圖以流程圖展示出根據一實施例判定出要跳躍到的下一個核心。例如,當驅動程式輔助排程模式適當時,該OIRM可請求該HOST OS/VMM選出該處理器核心以供執行OIEE。當產生對該OI驅動程式的中斷以請求該OI排程時,該作業系統可在一處理器核心上排程OI工作執行緒303時暗示性地做出此項選擇。當中排程了工作執行緒303的該處理器核心可用來排程OIEE。在當中該HOST OS/VMM並不響應的模式中(例如,該保護計時器屆期或該HOST OS/VMM並未安裝有一OI驅動程式),該OIRM可獨立 自主地進行處理器核心選擇動作。
大致上,當一處理器核心(或一硬體執行緒)正主動地執行處理器指令時,它可說是處於C0狀態。在此狀態中,所有系統部件(例如處理器、匯流排、快取記憶體、記憶體等)均開啟電源並且正受使用。然而,當處理器核心並未執行指令時,它可移動到C1、C2、C3等狀態,其中可漸進地關閉該系統之不同部分的電源,或者使其置於低電力模式。該等省電狀態大致上將稱為C-x狀態。
根據某些實施例,OIRM可使負載散佈在該系統的所有處理器核心上。此動作可降低或避免對在一特定處理器核心上執行的軟體產生不利;例如,由該VMM釘住到一實體處理器核心的一虛擬機器。該處理器核心跳躍規則係由OIRM的目前主動事例來進行,且依賴處理器核心跳躍演算法的結果,它可把該主動角色切換成該等待機事例中之一。OI可呈一封裝樣式於任何給定時間在該等處理器核心中之一上運作。該OIRM可做出一項關於該處理器核心要使用以執行OI的決策。該HOST OS/VMM可把一或多個處理器核心置於C-x狀態。OIRM用來判定要在上面執行處理器核心的邏輯組件可把一處理器核心的C-x狀態常駐性以及該處理器核心的目前C-x狀態列入考量。
在一實施例中,該OIRM可決定是否要從一C0處理器核心取得週期,或者要喚醒一C-x處理器核心以執行OI。此項抉擇為電力(功率)比上效能的抉擇。喚醒一C-x處理器核心以執行OI的動作可能不會(在大部分的狀況下)影 響該HOST OS/VMM的效能,因為並不會從它為主動的該等處理器核心中取出週期。然而,喚醒C-x處理器核心的動作確實會增加電力使用。另一個要考量的因素是動態跳變,其當因為電力/熱度範圍中的改變而喚醒一C-x處理器核心時,會降低該C0處理器核心的效能。該OIRM可向CPPM/PCU諮詢探索法,以協助做出此項判定。第二項要考量的因素是對該HOST OS/VMM做出有關從C-x狀態喚醒之潛伏期間的“承諾”。各個C狀態係一潛伏期間相關聯以喚醒到C0狀態。當由該HOST OS/VMM選出已受置於C-x狀態的一處理器核心以供執行OI時,該處理器核心的狀態將移動到C0。如果一喚醒事件(例如一中斷)針對HOST OS/VMM而發生(當該處理器核心正在執行OI),該OIRM可搶佔OI以把控制動作轉移回到HOST OS/VMM。進行從OI切換到HOST OS/VMM之動作產生的潛伏期間可能不會超過該HOST OS/VMM已經要求從C狀態喚醒的承諾潛伏期間。在某些實施例中,下面的規則將由該OIRM用來進行處理器核心選擇動作:請參照第9圖,在C狀態中(在此該等C狀態為該HOST OS/VMM所要求且理解的C狀態),可以套用規則902。為了避免因為竊取週期而影響該HOST OS/VMM的效能,該OIRM可在閒置(例如,從HOST OS/VMM的觀點來看為處於C-x狀態)且並未受到該HOST OS/VMM使用的一處理器核心上執行OIEE。然而,喚醒一C-x處理器核心以執行OIEE的動作可能會有不利的副作用,即,使電源/感熱機基 座產生自主跳變而受到觸發,並且使該C0處理器核心上的HOST OS/VMM效能受到不利的影響。該OIRM(例如在902)可利用來自PCU的探索法904,以判定包含搶佔一C0處理器核心以執行OI對上使用一C-x處理器核心的抉擇。同樣地,如果喚醒一睡眠中處理器核心對上使用處於C0狀態的一處理器核心來說,該平台上的電力衝擊較高。然而,如果該平台正以AC電源操作對上以電池電力操作(步驟906),喚醒一處理器核心以執行OI所產生之小量電力耗用增加是可接受的。
如第9圖所示,C-狀態規則902的應用可把目前核心清單908、PCU探索法904、及/或平台電源906列入考量,以產生一經過濾核心清單910(其可包括C0處理器核心以及C-x處理器核心)。在步驟912中,如果判定出並沒有核心處於C-x狀態,該OIRM可在C0處理器核心914之間進行核心跳躍規則920(例如一循環選擇),以使該負載散佈。如果有C-x處理器核心,該OIRM可從清單916中選出一C-x處理器核心,且不進行任何進一步跳躍動作(例如,在步驟918中選出處於最低C狀態的一核心)。在一實施例中,該OIRM可藉著執行C-狀態規則902定期地重新評估此狀況,以確保選定的處理器核心仍是可執行的最佳處理器核心。
因此,根據展示於第9圖之實施例的處理器核心選擇動作可包括下面的操作。首先,使用上面OI可執行並且套用C-狀態規則902之一處理器核心908清單以產生經過濾處理器核心清單910。使用PCU探索法904以及平台電源 906作為對該C-狀態規則的輸入。如果在經過濾處理器核心清單910中有處於C-x狀態912的任何處理器核心,便揀選出處於最低C-x狀態918的處理器核心作為要跳躍的下一個處理器核心。如果並沒有處於C-x狀態的處理器核心,便喚起C-0處理器核心914清單中的處理器核心跳躍規則920(例如以進行一循環跳躍)。在某些實施例中,此動作包含在該等處理器核心上切換OIRM的主動/待機角色。
第10圖以方塊圖展示出根據一實施例用以處置源自於分派給OI之多個裝置的多個中斷以及將它們注入到該OI分割區的各種不同部件。如所展示地,硬體單元可包括多個處理器核心1002與1004,各個核心分別具有一個LAPIC(本地先進編程中斷控制器)1006與1008。該等LAPIC各與一個中斷再映射單元1010(其接收外部中斷1012)進行通訊。
中斷再映射單元1010可包括對下列的支援:(a)向OI IRT登錄項(IRTE)登錄一第二中斷再映射表(IRT)1020;(b)登錄一OI裝置過濾器1022(例如,針對各個PCI請求器ID具有一位元-8KB);及/或(c)對該中斷再映射邏輯組件進行修改,如下所述,例如,如第11圖中的灰色方格所示,其中第11圖以流程圖展示出根據一實施例之與掌管一OI-相關中斷相關聯的操作。例如,在接收一中斷之後(步驟1102),如果所發布的中斷並不是中斷TLB(轉譯查考緩衝器)(步驟1104),便可判定出是否發布了該中斷(步驟1106),且若是,便利用該PCI請求器ID在裝置過濾器1022 中進行一項查找(步驟1108)。若未發布,便處置該中斷(步驟1109)。如果在裝置過濾器1022中設定了對應位元,該OI IRT(步驟1110)便可用來查找對應標籤,否則該OS/VMM IRT可用來進行該項查找(步驟1112)。在操作1110與1112之後,可在步驟1114張貼針對中斷描述符的向量。
再者,在一實施例中,該中斷描述符可具有能協助該中斷再映射單元判定出要在哪發布該中斷的二個項目:用於中斷的APIC ID以及作為通知中斷的向量。再者,在某些實施例中,對OI的需求之一是針對該OI的中斷遞送動作不應該受到來自主要OS之任何動作的影響。這暗示著所發布之用以把該中斷描述符中之向量遞送到該本地APIC(受編程到該描述符中以供對該核心遞送)的中斷方法已經經過修改,因此該中斷再映射單元能利用一新進微碼事件通知來通知該OIRM CPU微碼。更確切來說,在接收到來自該中斷再映射單元的該微碼事件通知時,該OIRM可能無法立即地把已發布的中斷注入到OI分割區中,因為該OI分割區在該時間可能並不在任何處理器核心上執行。因此,該OIRM把所接收到的中斷排入到下述記憶體結構(例如OI PIC(OI可編程中斷控制器))的佇列中,並且每當使用利用OI IDT(中斷描述符表)的標準x86中斷遞送機構而受到排程時,把中斷注入到該OI分割區中。
第12圖展示出根據一實施例之用於與一OIPIC模組進行通訊的各種不同部件。如所展示地,OIPIC模組1202接收向量以供從二個可能來源遞送到該OIEE:(1)來自分派 給OIEE 1204之裝置的中斷(例如,受到該中斷再映射單元通知且發布到該OI中斷緩衝器);或者(2)針對OIEE計時器的OIRM注入中斷、OI間通訊通知、電源管理事件等(整體地標示為1206)。
OIPIC模組1202可模型化三個暫存器以把向量排入佇列以供遞送到該OIEE:(1)OI IRR(中斷請求暫存器)1208(例如,其中來自內部或外部來源的所有向量進入此256位元暫存器);(2)OI ISR(OI服務中暫存器)1208(例如,如果來自OI IRR之最高優先順序向量的優先順序高於已經位於該OI ISR中的向量,它便被移動到該OI ISR中-這可能是追蹤目前受到OIEE服務之中斷向量的一個256位元暫存器-已經位於該OI ISR中的該(等)目前中斷向量維持不變,例如,表示一較高優先順序中斷已經打斷了一較低優先順序中斷);及/或(3)OI EOI(中斷的結束)1212(例如,其中OIEE ISR發出信號表示完成掌管目前已經標示在該OI ISR中之最高優先順序向量的動作)。
在某些實施例中,當OI分割區受到排程(例如由排程器1214)時,將由OIPIC模組1202進行下面的動作,以供在一處理器核心上執行:(1)如果在OI IRR中並沒有未決的向量,便不需要採取動作;(2)從OI IRR取得最高優先順序向量,並且與OI ISR中的最高向量比較(如果該OI IRR向量低於OI ISR向量,便不需要採取動作);(3)如果OIEE是可打斷的,便設定對應於從該OI ISR中之OI IRR接收到之最高向量的位元(並且在一實施例中從OI IRR清除該向量);及 /或(4)把在OI ISR中未決的最高向量送回,作為欲注入到OIEE中的向量。響應於該中斷,OIEE中的該中斷控制器驅動程式使用對OI EOI暫存器1212的一項寫入動作發出表示完成的信號。在接收到來自OIEE的OI EOI時,OIPIC 1202清除對應於在OI ISR 1210中未決之最高優先順序向量的該位元。它隨後判定在下一次恢復時是否有任何其他向量可注入到OIEE中。
如參照第10圖至第12圖所示,將在該HOST OS/VMM上提供非侵入式技術,其不會對可由該HOST OS/VMM使用的該等中斷向量設下限制。同樣地,該等實施例不會攔截對來自該HOST OS/VMM之LAPIC/IOAPIC的任何存取動作,也不會嘗試著虛擬化任何該等裝置。此動作允許把該等中斷引導到不同分割區的一種機構,相較於缺乏此項能力的其它實行方案來說,此項能力相當優越並且能進行縮放。
在某些實施例中,為了在該HOST OS/VMM以及OI分割區之間提供記憶體劃分技術,該OIRM可利用一硬體範圍暫存器的一或多個位元,以判定是否要阻擋該HOST OS/VMM對該OI記憶體分割區產生的存取。同樣地,為了控制從OI分割區對該HOST OS/VMM記憶體分割區的存取動作,該OIRM可產生一頁面表-例如一擴充頁面表(EPT)-在該OI分割區下。例如,上述的該OI分割區可用來進行某些易受安全性影響的工作,如預開機驗證、媒體轉碼、電子商務等。當進行該等操作時,該OI分割區可具有例如 金鑰與密碼的機密。依次地,可利用範圍暫存器與DMA裝置過濾器,來阻擋對OI記憶體的軟體式攻擊以利用HOST OS/VMM處理器式存取或利用DMA匯流排主控裝置竊取該等機密的動作。
在某些實施例中,可提供二種類型的保護:(1)保護靜止資料;或者(2)保護使用中資料。當靜止資料處於依電或非依電時,保護該靜止資料的動作需要使該資料受到加密,藉此使它對攻擊者來說並沒有價值。於此,當需要對該資料進行操作時,OI需要一種方法來解密該資料,而同時間能保全該資料,使得在對該資料進行操作時不會遭竊。
保護靜止資料的動作暗示著可利用一種加密演算法來加密該資料,例如先進加密標準(AES)(256位元或其他版本;利用任何模式的密碼來加密,例如CBC(密碼阻擋鏈接)、CTR(計數器模式)等)等。用以進行該加密動作的金鑰亦需要受到保全。在一實施例中,需要保護其機密的各個應用程式具有其本身的金鑰以供加密其機密。該OIRM可提供一種二進制大型物件(blob)服務,以利用該核心或非核心中的一處理器熔線(fuse)來保全此金鑰。針對該二進制大型物件金鑰操作,使用者產生他所想要使用的一金鑰以保全其資料,並且請求該OIRM要將它以二進制大型物件予以容裝。再者,如以下進一步討論地,某些實施例亦可在該程序中協助保全使用者所產生的金鑰。
根據一實施例,可由使用者使用下列的虛擬程式 碼來產生該金鑰二進制大型物件:
在上述虛擬程式碼的第4行,該應用程式在key_buffer中產生一金鑰,且在第5行中,該應用程式喚起該二進制大型物件服務(例如由該OIRM提供),以產生一金鑰二進制大型物件。該OIRM二進制大型物件服務可利用用於此二進制大型物件服務的處理器金鑰113來加密該金鑰緩衝器中的金鑰。因此,該應用程式具有可用來與保護其機密之該平台相結合的一保全金鑰。該應用程式並不需要保有它在上面第4行中產生的原始金鑰。該金鑰二進制大型物件已是它對該資料進行操作所需的全部物件。
在某些實施例中,為了在運轉時間中保護該資料,決不可以在該系統記憶體中清除該資料。此動作可藉著使用封裝上記憶體111的一頁面來暫時地儲存OI機密而達成。在一實施例中,封裝上記憶體111允許此記憶體的內容無法藉由使用該匯流排分析器而受到存取,且並且可使攻擊“凍結”。換言之,在處理器102-1的外部並無法取得儲 存在記憶體111中的未加密資訊。在一實施例中,該OIRM提供使用者下面的指令以供致能存取保全記憶體的動作:(1)載入金鑰頁面(Load_Key_Page)-使資料從一記憶體緩衝器移動到該保全記憶體,並且解密它以供由該應用程式使用;(2)儲存金鑰頁面(Store Key Page)-使該資料從該保全記憶體移動到一記憶體緩衝器並且清除該保全記憶體。
在一實施例中,該載入金鑰頁面(Load_Key_Page)操作取得2項輸入:(a)用於加密該金鑰頁面的二進制大型物件金鑰;以及(b)保有經加密資料(稱為金鑰頁面)之該緩衝器的實體位址。當喚起該載入金鑰頁面(Load_Key_Page)操作時,OIRM進行下列動作:(1)把指向該實體位址的頁面內容複製到封裝上記憶體111中;(2)利用該處理器混合金鑰來解密該金鑰二進制大型物件;(3)利用該解密金鑰來解密封裝上記憶體111中的該資料;(4)更新OI的EPT以把對此此操作傳遞之實體位址的存取動作重新導向到封裝上記憶體111;及/或(5)該應用程式現在可使用標準軟體建構來存取該等機密。
第13圖與第14圖以方塊圖展示出根據某些實施例之與使用一載入金鑰相關聯的操作。在第13圖中,載入金鑰把實體記憶體(例如經加密)傳輸到保全記憶體,並且利用一申請者的金鑰來解密資料。在第14圖中,可使OI EPT重新映射,以把該實體記憶體重新導向到該保全記憶體。
在某些實施例中,在任何時點僅可載入一個單一 金鑰頁面。嘗試著進行一項載入金鑰頁面(Load_Key_Page)操作而不在先前載入頁面上進行一項儲存金鑰頁面(Store Key Page)操作可能會產生一項錯誤。來自OIEE核心的金鑰頁面管理可仰賴對應用程式提供載入/儲存服務的一OI核心模組。該核心模組可鈎住該OI核心排程器,以收到有關程序/任務切換的通知,並且使用該載入/儲存金鑰頁面以根據在OI中執行的該應用程式來改變該金鑰頁面。
在一實施例中,該儲存金鑰頁面操作取得二項輸入:(a)用以加密該金鑰頁面的二進制大型物件金鑰;以及(b)用以儲存該經加密資料(稱為金鑰頁面)之該緩衝器的實體位址。OIRM進行下列動作:(1)利用該處理器熔線金鑰來解密該金鑰二進制大型物件;(2)利用該經解密的二進制大型物件金鑰來加密封裝上記憶體111的內容;及/或(3)把封裝上記憶體111的內容複製到由該應用程式傳遞的該記憶體頁面。
第15圖與第16圖以方塊圖展示出根據某些實施例之與使用一儲存金鑰相關聯的操作。在第15圖中,儲存金鑰把保全記憶體(例如清除)傳輸到實體記憶體,並且藉著使用一申請者的金鑰來加密資料。在第16圖中,可重新映射OI EPT以取消重新導向該實體記憶體的動作。
在一實施例中,下面的虛擬程式碼可用於上面討論的Load_Key_Page以及Store-Key_Page:Do_secret_work_example_function(uint64_t
在上面的程式碼中,“la”表示線性,而“PA”表示實體位址。因此,一實施例提供用以掌管OI中易受到安全性影響之資料的防竄改記憶體,例如,藉著保護OI記憶體中的機密免於受到硬體式攻擊(例如冷開機)或者軟體式攻擊。相較於缺乏此項能力的其它實行方案來說,此能力相當優越並且能進行縮放。
在某些實施例中,為了在HOST OS/VMM以及OIEE之間提供記憶體劃分功能,該OIRM利用一種阻擋該HOST OS/VMM對該OI記憶體分割區存取的硬體範圍暫存器。同樣地,為了控制從OI分割區對HOST OS/VMM記憶體分割區的存取動作,該OIRM可產生一頁面表-例如一擴充頁面表(EPT)-在該OI分割區下方。
當使該系統暫停時(S3),該系統記憶體處於自我刷新狀態。然而,該CPU的電源關閉,且因此在該記憶體上沒有主動的保護動作。因此,當系統處於S3狀態時,敵 方能夠修改記憶體的內容,且如果該記憶體並未在恢復時受到驗證(S0),可能會產生對OI上的程式碼注入攻擊。一種用以避免該種程式碼注入攻擊的技術是在進入S3之前使該記憶體混雜(受到雜湊),並且在從S3恢復到S0時驗證該內容。然而,此種方法在某些事例中可能具有2個缺點:(1)因為需要進行額外工作來使該記憶體內容混雜(受到雜湊),它會使從S0轉換到S3的時間延長;以及(2)因為需要進行額外工作來使該記憶體內容混雜(受到雜湊)以驗證該等內容是否未受到竄改,它會增加從S3轉換到S0的時間。
如前所述,使一系統轉換到S3的動作會使該CPU的電力關閉,且使該記憶體置於自我刷新模式。此時,主動記憶體上沒有保護動作,因為該範圍暫存器與裝置過濾器均是未運作的。當該系統返回到S0狀態時,保留在S3的記憶體影像將受到執行。然而,此記憶體的整體性目前是可疑的,且可能會有惡意的程式碼注入到該自我刷新影像中,或者該記憶體不小心地受到某種形式的毀壞或竄改。於此,一實施例在從S3恢復時能驗證該記憶體的整體性。例如,OIRM 124可在允許呈自我刷新狀態的記憶體執行之前,測量該記憶體影像的整體性。如前所述,一種用於此種整體性驗證的方法可為記錄OI記憶體之S0至S3轉換的量測結果,並且在從S3轉換為S0時驗證該影像。此種方法可增加從S3恢復的潛伏期間,因為該OIRM在繼續進行S3恢復之前,需要花費一段長時間來進行整體性驗證。此方案的副作用(其在具有2LM(二階層記憶體)的系統上變得較為明 顯)為從NV(非依電性)記憶體擷取記憶體頁面到DRAM頁面快取記憶體以供進行量測的額外工作。該S3恢復路徑必須受到最佳化,以便能最小化例如使用“立即開機(instant-ON)”模式的延遲,其中可能可以在一段短時間中進行從S3恢復的動作,以在使該系統返回到S3之前進行同步化活動。
在一實施例中,為了最小化該恢復時間,可依據逐頁方式針對該OIEE影像計算出該整體性核對值(ICV),因此在從S3恢復時,可以最小化用以驗證該ICV的時間,因為現在驗證動作可隨著S3恢復後存取該OIEE程式碼與資料而依據逐頁方式完成。請參照第17圖,其以方塊圖展示出根據一實施例之與在S0以及S3之間進行保全轉換動作相關聯的操作。可把OIEE頁面1702的逐頁方式整體性核對值記錄在ICV陣列1704中(例如由OIRM 124)。該ICV陣列的各個元件對應於該OI記憶體中的一頁面並且具有下面的資訊:(1)整體性核對值(ICV)-一種單向頁面密碼雜湊方式,其利用經組配的單向密碼雜湊演算法產生,如SHASHA256、SHA512等;(2)ICV有效(在第17圖展示為“V”)-真/假;及/或(3)DMA(直接記憶體存取)頁面(在第17圖中展示為“D”)-真/假。OIRM亦可維持有關該ICV陣列的一SHA雜湊(例如,同樣位於記憶體114中),以驗證該ICV陣列的整體性。當進行一項從S0至S3狀態的轉換時,該OIRM可對該ICV陣列的雜湊作記號,因此使它可以在從S3恢復時受到驗證。
在某些實施例中,該OIRM可使用一種背景任務 1706以(例如定期地)使OI頁面1702受到混雜(雜湊)。在轉換到該OI的各個動作之前,背景任務1706可受到喚起以雜湊記憶體中的一組固定頁面。例如,如果該OI影像大小為64MB,便有16384頁面要進行整體性保護。該背景任務可利用循環方式瀏覽該等16K頁面,並且在各個瀏覽動作中進行16頁面的雜湊。因此,該背景任務將需要受到喚起1K次,以對分配給OIEE的所有16K頁面進行雜湊。在一實施例中,雜湊該等頁面所花費的時間係歸屬於OI,且從執行信用額度中減去。
一旦已經注意到一頁面的雜湊動作,該OIRM可追蹤對該等頁面的寫入,以便檢測需要一項進行重新雜湊的修改。該OIRM可利用該OI EPT進行寫入追蹤。一旦已經使一頁面雜湊,且在ICV陣列1704中標示出來該雜湊,它便在該EPT中被標示為唯讀,且在該ICV陣列中把該ICV標示為有效。從OIEE對該頁面的一寫入動作可造成一項EPT錯誤,進而導致OIRM把該頁面ICV標示為無效且再度地把該頁面標示為可寫入。當背景雜湊任務再度地跳脫此頁面時,該頁面便會受到重新雜湊,且在注意到有雜湊之後,它將重新地被標示為唯讀。再者,無法利用該等EPT錯誤來追蹤使用DMA操作對頁面進行的寫入動作。為了追蹤對該等DMA頁面的寫入動作,OIRM可依賴該OIEE核心能在把用於DMA的一頁面傳遞到一裝置之前,先通知該OIRM。OIRM在該ICV陣列中把該等頁面標示為DMA頁面,且可能不對該等頁面進行任何ICV檢查作為其背景任務的部分。
針對S0到S3的轉換,如果該轉換是一項S3轉換,且針對已經記錄有無效ICV頁面以及DMA頁面標示了ICV值,該OIRM可掃描ICV頁面陣列。針對標示為DMA頁面的頁面,除了記錄其雜湊之外,該OIRM亦可把其狀態清除作為DMA頁面。該OIRM隨後可對該ICV陣列進行一項雜湊。可利用從該封裝中從處理器金鑰113衍生出的OIRM ICV簽署金鑰來標示該ICV陣列的雜湊。可把該ICV陣列的簽署雜湊留在該系統記憶體中,因為OIRM能檢測到其竄改。
針對一項S3恢復動作,BIOS(基本IO系統)可通知該OIRM要恢復該OI影像。該OIRM可針對OI產生一容器,並且隨後判定在OI記憶體中是否有一有效ICV陣列。在一實施例中,可藉著驗證該ICV陣列之雜湊上的簽章並且對照儲存在S0到S3轉換中儲存的數值來檢查該ICV陣列雜湊,以判定該ICV陣列的有效性。如果ICV陣列整體性並不完整,OIRM可繼續該OI初始化動作作為一正常重置路徑(例如,丟棄記憶體中的影像,並且進行一項新近載入碼載入動作)。如果該ICV陣列的整體性並未受到危及,OIRM可把所有OIEE頁面標示為未出現在該OIEPT中,且把控制傳輸到該OIEE。當OIEE開始執行動作時,該程式碼與資料頁面存取動作將產生導向OIRM的EPT錯誤。如果在該ICV陣列中有針對該頁面的一有效ICV,該OIRM在該錯誤頁面上運算該ICV,且使它與該ICV陣列中的ICV進行配對動作,以驗證該頁面的整體性。可隨後把此頁面映射到該OI EPT 作為一唯讀頁面(例如,以追蹤對該頁面的改變)。因此,相較於今日所進行的雜湊動作,例如超級監督者(hypervisor),使用OIRM以及處理器產生EPT的增量雜湊是一種重大差異。再者,一實施例可在從自我刷新出現時,加入能有效地驗證OI記憶體整體性的相當重要機構。相較於缺乏此項能力的其它實行方案來說,此能力相當優越並且能進行縮放。
第18圖以方塊圖展示出根據本發明一實施例的一種運算系統1800。運算系統1800可包括透過一互連網路(或匯流排)1804進行通訊的一或多個中央處理單元(CPU)1802或處理器。處理器1802可包括一般用途處理器、網路處理器(其處理透過電腦網路1803傳遞的資料)、或其他類型的處理器(包括精簡指令集電腦(RISC)處理器、或複雜指令集電腦(CISC))。再者,處理器1802可具有一種單一核心或多核心設計。具有多核心設計的處理器1802可整合相同積體電路(IC)晶粒上的不同類型處理器核心。同樣地,可把具有多核心設計的處理器1802實行為對稱或非對稱多處理器。在一實施例中,該等處理器1802中的一或多個可相同或相似於第1圖中的該等處理器102。例如,該等處理器1802中的一或多個可包括參照第1圖至第17圖討論之該等快取記憶體、儲存裝置、及/或邏輯組件中的一或多個,例如包括OIRM 124。同樣地,可由系統1800的一或多個部件來進行參照第1圖至第17圖討論的操作。
晶片組1806亦可與互連網路1804進行通訊。晶片 組1806可包括記憶體控制中樞(GMCH)1808。MCH 1808可包括與記憶體1812進行通訊的記憶體控制器1810(其可相同或相似於第1圖的記憶體114)。記憶體1812可儲存資料,包括由CPU 1802執行或由運算系統1800中之任何其他裝置執行的指令串。在本發明的一實施例中,記憶體1812可包括一或多個依電性儲存(或記憶體)裝置,例如隨機存取記憶體(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、或其他類型的儲存裝置。亦可使用非依電性記憶體,例如硬碟。其他的裝置可透過互連網路1804進行通訊,例如多個CPU及/或多個系統記憶體。
MCH 1808亦可包括與顯示器裝置1816通訊的圖形介面1814。在本發明的一實施例中,圖形介面1814可透過一個加速圖形埠(AGP)來與顯示器裝置1816進行通訊。在本發明的一實施例中,顯示器裝置1816(例如平坦面板顯示器)可透過一信號轉換器來與圖形介面1814進行通訊,該信號轉換器把儲存在一儲存裝置(例如視訊記憶體或系統記憶體)中一影像的數位表述轉譯為可由該顯示器1816解譯並顯示的多個顯示信號。在受到該顯示器1816解譯且後續地顯示在該顯示器上之前,由該顯示器裝置產生的該等顯示器信號可通過各種不同控制裝置。
中樞介面1818可允許MCH 1808與輸入/輸出控制中樞(ICH)1820能進行通訊。ICH 1820可對與運算系統1800進行通訊的多個I/O裝置提供一介面。ICH 1820可透過周邊橋接器(或控制器)1824與匯流排1822進行通訊,例如周 邊部件互連(PCI)橋接器、通用串列匯流排(USB)控制器、或其他類型的周邊橋接器或控制器。橋接器1824可提供介於CPU 1802以及多個周邊裝置之間的一資料路徑。可使用其他類型的拓樸結構。同樣地,多個匯流排可與ICH 1820進行通訊,例如透過多個橋接器或控制器。再者,在本發明的各種不同實施例中,與ICH 1820進行通訊的其他周邊裝置可包括整合式驅動電子介面(IDE)或小型電腦系統介面(SCSI)硬碟驅動機、USB埠、鍵盤、滑鼠、並列埠、串列埠、軟碟機、數位輸出支援裝置(例如數位視訊介面(DVI))、或其他裝置。
匯流排1822可與音訊裝置1826、一或多個碟片驅動機1828、以及網路介面裝置1830(其與電腦網路1803通訊)進行通訊。其他裝置可透過匯流排1822進行通訊。同樣地,在本發明的某些實施例中,各種不同部件(例如網路介面裝置1830)可與MCH 1808進行通訊。此外,可把處理器1802與第18圖中展示的其他部件結合在一起(包括但不限於MCH 1808、1808的一或多個部件等),以形成一個單一晶片。再者,在本發明的其他實施例中,可把一圖形加速器包括在MCH 1808中。
再者,運算系統1800可包括依電性及/或非依電性記憶體(或儲存體)。例如,非依電性記憶體可包括下列的一或多種:唯讀記憶體(ROM)、可規劃ROM(PROM)、可抹除PROM(EPROM)、電性EPROM(EEPROM)、碟片驅動機(例如碟片驅動機1828)、軟碟、小型光碟ROM (CD-ROM)、數位多用途碟片(DVD)、快閃記憶體、磁性光學碟片、或能儲存電子資料(例如包括指令)的其他類型非依電性機器可讀媒體。
第19圖展示出根據本發明一實施例之一種配置為點對點(PtP)組態的運算系統1900。特別地,第19圖展示出一種系統,其中多個處理器、記憶體與多個輸入/輸出裝置係由數個點對點介面互連。可由系統1900的一或多個部件來進行參照第1圖至第18圖討論的操作。
如第19圖所示,系統1900可包括數個處理器,然為了清楚與簡要目的,僅展示出二個處理器1902與1904。處理器1902與處理器1904各包括用以致能與記憶體1910與記憶體1912之通訊的本地記憶體控制器中樞(MCH)1906與1908。記憶體1910及/或記憶體1912可儲存各種不同資料,如參照第8圖之記憶體1812討論的資料。
在一實施例中,處理器1902與處理器1904可為參照第18圖討論之該等多個處理器1802中的一處理器,例如包括參照第1圖至第18圖討論之該等快取記憶體中的一或多個。處理器1902與處理器1904可分別利用點對點(PtP)介面電路1916與點對點(PtP)介面電路1918而透過點對點(PtP)介面1914來交換資料。同樣地,處理器1902與處理器1904可利用點對點介面電路1926、1928、1930與1932而透過個別點對點(PtP)介面1922與1924來與晶片組520交換資料。晶片組1920可另利用點對點(PtP)介面電路1937而透過圖形介面1936來與圖形電路1934交換資料。
可把本發明的至少一實施例備置在處理器1902與1904中。例如,第1圖中該等核心106中的一或多個可位於處理器1902與1904中。同樣地,處理器1902與1904可包括參照第1圖至第18圖討論之該等快取記憶體、儲存裝置、及/或邏輯組件中的一或多個。例如,可把OIRM 124備置在處理器1902/1904中;然而,可把OIRM備置在其他位置中,如參照第1圖至第18圖所討論地(例如,介於MCH 1906/1908以及處理器1902/1904之間、在晶片組1920中等)。然而,本發明的其他實施例可存在於第19圖之系統1900的其他電路、邏輯單元、或者裝置中。再者,可使本發明的其他實施例散佈在第19圖的數個電路、邏輯單元、或裝置中。
晶片組1920可利用點對點(PtP)介面電路1941與匯流排1940進行通訊。匯流排1940可與一或多個裝置進行通訊,例如匯流排橋接器1942與I/O裝置1943。經由匯流排1944,匯流排橋接器1942可與其他裝置進行通訊,例如鍵盤/滑鼠1945、通訊裝置1946(例如數據機、網路介面裝置、或可與電腦網路1803通訊的其他通訊裝置)、音訊I/O裝置1947、及/或資料儲存裝置1948。資料儲存裝置1948可儲存由處理器1902及/或處理器1904執行的程式碼1949。
在本發明的各種不同實施例中,可把參照第1圖至第19圖討論的多個操作實行為可備置為電腦程式產品之硬體(例如邏輯電路)、軟體、韌體、或該等的組合,例如可包括儲存有用以編程電腦以實行本文所述程序指令(或軟體程序)的機器可讀或電腦可讀媒體。此外,亦可下載該等 有形電腦可讀媒體作為一種電腦程式產品,其中可利用傳播媒體中的資料信號而透過一通訊鏈結(例如匯流排、數據機、或網路連結)把該程式從一遠端電腦(例如一伺服器)傳輸到提出要求的一電腦(例如一客戶機)。
本發明說明中所謂的“一個實施例”或“一實施例”表示的是參照實施例所述的一特定特徵、結構、或者特性係包括在至少一實施例中。本發明說明不同部分中出現的二或更多個“一個實施例”或“一實施例”或“一替代實施例”未必均表示相同的實施例。
同樣地,在本發明的說明以及申請專利範圍中,可使用所謂的“耦合”與“連接”用語以及其變化形式。在本發明的某些實施例中,可使用“連接”來表示二個或更多個元件直接實體或電性地接觸。“耦合”可表示來表示二個或更多個元件直接實體或電性地接觸。然而,“耦合”亦可表示二個或更多個元件並未彼此直接接觸,但仍彼此互相合作或者互動。
因此,雖然已經以結構特徵及/或方法論動作的特定語言來說明本發明實施例,要了解的是,並不把本發明請求項目限制在所述的特定特徵或動作中。反之,所述的該等特定特徵或動作係作為實行本發明請求項目的樣本形式。
100‧‧‧運算系統
102、102-1~102-N‧‧‧處理器
104‧‧‧互連網路或匯流排
106、106-1~106-M‧‧‧處理器核心
108‧‧‧快取記憶體
110‧‧‧路由器
111‧‧‧處理器上記憶體、封裝上記憶體
112‧‧‧匯流排或互連體
113‧‧‧處理器金鑰、嵌入式金鑰
114‧‧‧記憶體
116-1‧‧‧L1快取記憶體
120‧‧‧HOST OS/VMM分割區(容器)
122‧‧‧OI分割區(容器)
123‧‧‧SMM分割區(容器)
124‧‧‧OI資源管理器(OIRM)

Claims (31)

  1. 一種處理器,其包含:一或多個處理器核心;一快取記憶體儲存體,其中,該等一或多個處理器核心可藉由使用一擴充頁面表(EPT)而存取該快取記憶體儲存體的至少一部分;一封裝上(on-package)記憶體,其用以儲存映射至來自一作業系統(OS)獨立(OI)記憶體分割區的實體位址之一金鑰頁面;一嵌入式處理器金鑰,其可由一OS獨立(OI)資源管理器(OIRM)存取以用於密碼操作,其中在該處理器上執行之來自該OI記憶體分割區外部的一應用程式可喚起由該OIRM所提供的一種二進制大型物件(blob)服務來產生一金鑰二進制大型物件以存取在該OI記憶體分割區內部的該金鑰頁面。
  2. 如請求項1之處理器,其中該OIRM用以於來自該OI記憶體分割區內部與來自該OI記憶體分割區外部的執行操作或指令之間動態地劃分該處理器的週期。
  3. 如請求項2之處理器,其中該OIRM用以使多個分割區耦合至該處理器,該等多個分割區包括至少該OI記憶體分割區與一第二分割區以儲存一OS。
  4. 如請求項3之處理器,其中響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之一指令,該OIRM用以將資料從該金鑰 頁面複製至該封裝上記憶體並使用該金鑰二進制大型物件在該封裝上記憶體中將該資料解密。
  5. 如請求項4之處理器,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之該指令,該OIRM用以更新該EPT以將存取動作從映射至該OI記憶體分割區中的該金鑰頁面之該等實體位址重新導向至映射至該封裝上記憶體之實體位址。
  6. 如請求項5之處理器,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之該指令,該OIRM用以使用該嵌入式處理器金鑰將該金鑰二進制大型物件解密並使用該經解密之金鑰二進制大型物件在該封裝上記憶體中將該資料解密。
  7. 如請求項6之處理器,其中響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式儲存該金鑰頁面之一指令,該OIRM用以使用該金鑰二進制大型物件在該封裝上記憶體中將該資料加密並將該經加密之資料從該封裝上記憶體複製至該OI記憶體分割區中之該金鑰頁面。
  8. 如請求項7之處理器,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式儲存該金鑰頁面之該指令,該OIRM用以使用該嵌入式處理器金鑰將該金鑰二進制大型物件解密並使用該經 解密之金鑰二進制大型物件在該封裝上記憶體中將該資料加密。
  9. 如請求項8之處理器,其中該OIRM用以維持一整體性核對值陣列以儲存對應於該OI記憶體分割區之一或多個頁面之資料,其中該陣列中的各個登錄項用以指出該OI記憶體分割區中之一對應頁面的一保全雜湊演算值、一有效性、與直接記憶體存取。
  10. 如請求項9之處理器,其中該OIRM用以根據儲存在該整體性核對值陣列之一對應登錄項中的數值而判定該第一分割區之該一或多個頁面的整體性。
  11. 如請求項10之處理器,其中該OIRM用以響應於檢測到對該OI記憶體分割區之一對應頁面的一項修改而引發對儲存在該整體性核對值陣列中之一數值的更新。
  12. 一種電腦實行方法,其包含下列步驟:藉由使用一擴充頁面表(EPT)而由一或多個處理器核心存取一快取記憶體儲存體的至少一部分;在一封裝上記憶體中,儲存藉由該EPT而至少部分地映射至來自一作業系統(OS)獨立(OI)記憶體分割區的實體位址之一金鑰頁面;藉由一OS獨立(OI)資源管理器(OIRM)存取一嵌入式處理器金鑰以用於一密碼操作;將該金鑰頁面儲存在該OI記憶體分割區內部;以及針對在該等一或多個處理器核心上執行之來自該OI記憶體分割區外部的一應用程式,喚起由該OIRM所提供 的一種二進制大型物件服務來產生一金鑰二進制大型物件以存取在該OI記憶體分割區內部之映射至實體位址的該金鑰頁面。
  13. 如請求項12之方法,其中該OIRM用以於來自該OI記憶體分割區內部與來自該OI記憶體分割區外部的執行操作或指令之間動態地劃分處理器週期。
  14. 如請求項12之方法,其中該OIRM用以使多個分割區耦合至該等一或多個處理器核心,該等多個分割區包括至少該OI記憶體分割區與一第二分割區以儲存一OS。
  15. 如請求項12之方法,其中該OIRM響應於用於從在該等一或多個處理器核心上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之一指令而用以將資料從該金鑰頁面複製至該封裝上記憶體並使用該金鑰二進制大型物件在該封裝上記憶體中將該資料解密。
  16. 如請求項15之方法,其中該OIRM進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之該指令而用以更新該EPT以將存取動作從映射至該OI記憶體分割區中的該金鑰頁面之該等實體位址重新導向至映射至該封裝上記憶體之實體位址。
  17. 如請求項12之方法,其中該OIRM響應於用於從在該等一或多個處理器核心上執行之來自該OI記憶體分割區外部的該應用程式儲存該金鑰頁面之一指令而用以 使用該金鑰二進制大型物件在該封裝上記憶體中將該資料加密並將該經加密之資料從該封裝上記憶體複製至該OI記憶體分割區中之該金鑰頁面。
  18. 如請求項12之方法,其中該OIRM用以維持一整體性核對值陣列以儲存對應於該OI記憶體分割區之一或多個頁面之資料,其中該陣列中的各個登錄項用以指出該OI記憶體分割區中之一對應頁面的一保全雜湊演算值、一有效性、與直接記憶體存取。
  19. 如請求項18之方法,其中該OIRM用以根據儲存在該整體性核對值陣列之一對應登錄項中的數值而判定該第一分割區之該一或多個頁面的整體性。
  20. 如請求項18之方法,其中該OIRM用以響應於檢測到對該OI記憶體分割區之一對應頁面的一項修改而引發對儲存在該整體性核對值陣列中之一數值的更新。
  21. 一種計算系統,其包含:一處理器,其包含:一或多個處理器核心,一快取記憶體儲存體,其中,該等一或多個處理器核心可藉由使用一擴充頁面表(EPT)而存取該快取記憶體儲存體的至少一部分,一封裝上記憶體,其用以儲存映射至來自一作業系統(OS)獨立(OI)記憶體分割區的實體位址之一金鑰頁面,一嵌入式處理器金鑰,其可由一OS獨立(OI)資源管理器(OIRM)存取以用於密碼操作,其中在該處理器上執 行之來自該OI記憶體分割區外部的一應用程式可喚起由該OIRM所提供的一種二進制大型物件服務來產生一金鑰二進制大型物件以存取在該OI記憶體分割區內部的該金鑰頁面;以及一記憶體,其包含多個分割區,該等多個分割區包括至少該OI記憶體分割區與一第二分割區以儲存一OS。
  22. 如請求項21之系統,其中該OIRM用以於來自該OI記憶體分割區內部與來自該OI記憶體分割區外部的執行操作或指令之間動態地劃分該處理器的週期。
  23. 如請求項22之系統,其中該OIRM用以根據對於已知該OIRM未能將儲存在該OI記憶體分割區中的一或多個指令排程來在一選定時期中執行的一判定結果,對該等一或多個指令分配一預定最小保證執行期間。
  24. 如請求項21之系統,其中響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之一指令,該OIRM用以將資料從該金鑰頁面複製至該封裝上記憶體並使用該金鑰二進制大型物件在該封裝上記憶體中將該資料解密。
  25. 如請求項24之系統,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之該指令,該OIRM用以更新該EPT以將存取動作從映射至該OI記憶體分割區中的該金鑰頁面之該等實體位址重新導向至映射至該封裝上記憶體之實體位址。
  26. 如請求項25之系統,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式載入該金鑰頁面之該指令,該OIRM用以使用該嵌入式處理器金鑰將該金鑰二進制大型物件解密並使用該經解密之金鑰二進制大型物件在該封裝上記憶體中將該資料解密。
  27. 如請求項26之系統,其中響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式儲存該金鑰頁面之一指令,該OIRM用以使用該金鑰二進制大型物件在該封裝上記憶體中將該資料加密並將該經加密之資料從該封裝上記憶體複製至該OI記憶體分割區中之該金鑰頁面。
  28. 如請求項27之系統,其中進一步響應於用於從在該處理器上執行之來自該OI記憶體分割區外部的該應用程式儲存該金鑰頁面之該指令,該OIRM用以使用該嵌入式處理器金鑰將該金鑰二進制大型物件解密並使用該經解密之金鑰二進制大型物件在該封裝上記憶體中將該資料加密。
  29. 如請求項28之系統,其中該OIRM用以維持一整體性核對值陣列以儲存對應於該OI記憶體分割區之一或多個頁面之資料,其中該陣列中的各個登錄項用以指出該OI記憶體分割區中之一對應頁面的一保全雜湊演算值、一有效性、與直接記憶體存取。
  30. 如請求項29之系統,其中該OIRM用以根據儲 存在該整體性核對值陣列之一對應登錄項中的數值而判定該第一分割區之該一或多個頁面的整體性。
  31. 如請求項30之系統,其中該OIRM用以響應於檢測到對該OI記憶體分割區之一對應頁面的一項修改而引發對儲存在該整體性核對值陣列中之一數值的更新。
TW103122300A 2008-12-31 2009-12-24 用以執行保全嵌入式容器之處理器擴充技術(二) TWI544418B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/347,890 US9086913B2 (en) 2008-12-31 2008-12-31 Processor extensions for execution of secure embedded containers

Publications (2)

Publication Number Publication Date
TW201437916A TW201437916A (zh) 2014-10-01
TWI544418B true TWI544418B (zh) 2016-08-01

Family

ID=42286552

Family Applications (2)

Application Number Title Priority Date Filing Date
TW098144740A TWI451338B (zh) 2008-12-31 2009-12-24 用以執行保全嵌入式容器之處理器擴充技術
TW103122300A TWI544418B (zh) 2008-12-31 2009-12-24 用以執行保全嵌入式容器之處理器擴充技術(二)

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW098144740A TWI451338B (zh) 2008-12-31 2009-12-24 用以執行保全嵌入式容器之處理器擴充技術

Country Status (7)

Country Link
US (3) US9086913B2 (zh)
JP (3) JP5318964B2 (zh)
KR (1) KR101288152B1 (zh)
CN (3) CN102171672A (zh)
BR (1) BRPI0920788A2 (zh)
TW (2) TWI451338B (zh)
WO (1) WO2010078143A2 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002035429A (ja) * 2000-07-21 2002-02-05 Konami Co Ltd ネットワークゲーム装置、ゲームシステム、記録媒体
US20160248588A1 (en) 2006-09-07 2016-08-25 Altera Corporation Security ram block with multiple partitions
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US9954875B2 (en) * 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US9015078B2 (en) * 2010-03-28 2015-04-21 Lenovo (Singapore) Pte. Ltd. Audit trails for electronic financial transactions
JP5353828B2 (ja) * 2010-06-14 2013-11-27 富士通セミコンダクター株式会社 プロセッサ及びプロセッサシステム
US8428929B2 (en) 2010-09-30 2013-04-23 Intel Corporation Demand based USB proxy for data stores in service processor complex
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
US9191454B2 (en) 2011-06-27 2015-11-17 Microsoft Technology Licensing, Llc Host enabled management channel
US8868811B2 (en) * 2011-10-03 2014-10-21 Via Technologies, Inc. Systems and methods for hot-plug detection recovery
US8832478B2 (en) * 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
WO2013095461A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Secure direct memory access
US9110729B2 (en) * 2012-02-17 2015-08-18 International Business Machines Corporation Host system admission control
US9594703B2 (en) * 2012-03-29 2017-03-14 Intel Corporation Architecture and method for managing interrupts in a virtualized environment
US9268941B1 (en) * 2012-05-01 2016-02-23 Marvell International Ltd. Method for secure software resume from low power mode
US8924640B2 (en) * 2012-05-14 2014-12-30 Alcatel Lucent Dynamic allocation of records to clusters in a ternary content addressable memory
US9342362B2 (en) * 2012-06-15 2016-05-17 Nvidia Corporation Service-processor-centric computer architecture and method of operation thereof
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
CN103106175B (zh) * 2013-01-23 2015-12-23 杭州士兰微电子股份有限公司 基于共享寄存器和流水处理的处理器阵列
US20160212012A1 (en) * 2013-08-30 2016-07-21 Clearpath Networks, Inc. System and method of network functions virtualization of network services within and across clouds
KR101697647B1 (ko) * 2013-10-08 2017-02-01 한국전자통신연구원 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
CN105637486B (zh) 2013-10-31 2018-11-13 慧与发展有限责任合伙企业 内存完整性检查
CN103593477A (zh) * 2013-11-29 2014-02-19 华为技术有限公司 一种哈希数据库的配置方法和装置
US10261882B2 (en) 2014-01-31 2019-04-16 Hewlett Packard Enterprise Development Lp Functional unit promotion to management unit
US10649796B2 (en) * 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
CN105808328B (zh) * 2014-12-31 2019-05-17 杭州华为数字技术有限公司 任务调度的方法、装置和系统
US10230528B2 (en) * 2015-05-04 2019-03-12 Intel Corporation Tree-less integrity and replay memory protection for trusted execution environment
CN105487837B (zh) * 2015-05-11 2018-10-09 上海兆芯集成电路有限公司 具有载入扩展页表指令的处理器
EP3096259B1 (en) * 2015-05-18 2018-06-20 Altera Corporation Security ram block with multiple partitions
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
TWI554945B (zh) * 2015-08-31 2016-10-21 晨星半導體股份有限公司 例行工作的分配方法及應用其之多核心電腦
US9910780B2 (en) * 2015-10-28 2018-03-06 International Business Machines Corporation Pre-loading page table cache lines of a virtual machine
US10417453B2 (en) * 2015-12-14 2019-09-17 Cryptography Research, Inc. Preemption of a container in a secure computation environment
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US20180013636A1 (en) * 2016-07-07 2018-01-11 Cisco Technology, Inc. System and method for scaling application containers in cloud environments
US10476846B2 (en) * 2016-08-05 2019-11-12 The Boeing Company Data-at-rest (DAR) encryption for integrated storage media
CN106384052A (zh) * 2016-08-26 2017-02-08 浪潮电子信息产业股份有限公司 一种实现BMC U‑boot可信启动控制的方法
CN107783913B (zh) 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
EP3355188B1 (en) 2017-01-31 2021-08-25 OpenSynergy GmbH Instrument display on a car dashboard by checking frames of a gui by a realtime os
US10528749B2 (en) * 2017-03-20 2020-01-07 Huawei Technologies Co., Ltd. Methods and apparatus for containerized secure computing resources
EP3682335A4 (en) 2017-10-30 2021-03-31 Hewlett-Packard Development Company, L.P. SECURE HARDWARE INITIALIZATION
CN108021518B (zh) * 2017-11-17 2019-11-29 华为技术有限公司 一种数据交互方法和计算设备
US11036651B2 (en) * 2018-06-29 2021-06-15 Micron Technology, Inc. Host side caching security for flash memory
CN109086614A (zh) * 2018-07-31 2018-12-25 长沙龙生光启新材料科技有限公司 一种安全地提供数据的方法及系统
CN108897263B (zh) * 2018-09-13 2020-06-12 杭州华澜微电子股份有限公司 具有多维数据传输和处理功能的智能电路单元及其系统和控制方法
KR102556091B1 (ko) * 2018-10-04 2023-07-14 삼성전자주식회사 보안 정보의 주입을 위한 장치 및 방법
KR20200085966A (ko) * 2019-01-07 2020-07-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11354418B2 (en) 2019-03-08 2022-06-07 International Business Machines Corporation Incremental decryption and integrity verification of a secure operating system image
US10970100B2 (en) 2019-03-08 2021-04-06 International Business Machines Corporation Starting a secure guest using an initial program load mechanism
CN110297674B (zh) * 2019-06-28 2021-01-15 联想(北京)有限公司 一种信息处理方法及电子设备
CN111124956B (zh) * 2019-11-22 2023-03-07 海光信息技术股份有限公司 一种容器保护方法、处理器、操作系统及计算机设备
CN111488142B (zh) * 2020-04-10 2023-04-28 中电科航空电子有限公司 支持多操作系统平台的嵌入式航空通信中间件及其应用
US11720717B2 (en) 2020-12-16 2023-08-08 Hewlett Packard Enterprise Development Lp System memory information protection with a controller
WO2023283872A1 (en) * 2021-07-15 2023-01-19 Intel Corporation System management mode runtime resiliency manager

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5944820A (en) * 1997-10-15 1999-08-31 Dell U.S.A., L.P. Modifiable partition boot record for a computer memory device
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6381682B2 (en) 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6253224B1 (en) 1998-03-24 2001-06-26 International Business Machines Corporation Method and system for providing a hardware machine function in a protected virtual machine
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
US6691146B1 (en) 1999-05-19 2004-02-10 International Business Machines Corporation Logical partition manager and method
US6708272B1 (en) * 1999-05-20 2004-03-16 Storage Technology Corporation Information encryption system and method
US7748005B2 (en) * 2000-01-28 2010-06-29 Hewlett-Packard Development Company, L.P. System and method for allocating a plurality of resources between a plurality of computing domains
US7035850B2 (en) * 2000-03-22 2006-04-25 Hitachi, Ltd. Access control system
US6892383B1 (en) 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US7003771B1 (en) 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
US7096469B1 (en) 2000-10-02 2006-08-22 International Business Machines Corporation Method and apparatus for enforcing capacity limitations in a logically partitioned system
JP2002202959A (ja) 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7206819B2 (en) 2001-01-18 2007-04-17 Sun Microsystems, Inc. Method and apparatus for providing virtual namespaces for active computing environments
US7523454B2 (en) * 2001-03-06 2009-04-21 Hewlett-Packard Development Company, L.P. Apparatus and method for routing a transaction to a partitioned server
US6957435B2 (en) 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
JP2002323986A (ja) * 2001-04-25 2002-11-08 Hitachi Ltd コンピュータリソース流通システム及び方法
US7428485B2 (en) 2001-08-24 2008-09-23 International Business Machines Corporation System for yielding to a processor
US7565398B2 (en) 2002-06-27 2009-07-21 International Business Machines Corporation Procedure for dynamic reconfiguration of resources of logical partitions
US7296267B2 (en) 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
KR100497384B1 (ko) 2003-01-28 2005-06-23 삼성전자주식회사 가상 머신을 이용한 분산 처리 시스템 및 분산 처리방법
JP2004272594A (ja) * 2003-03-07 2004-09-30 Sony Corp データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム
US7139855B2 (en) 2003-04-24 2006-11-21 International Business Machines Corporation High performance synchronization of resource allocation in a logically-partitioned system
JP3892829B2 (ja) * 2003-06-27 2007-03-14 株式会社東芝 情報処理システムおよびメモリ管理方法
KR100591755B1 (ko) 2003-07-22 2006-06-22 삼성전자주식회사 복수의 스레드를 동시에 처리하는 장치 및 방법
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20070067366A1 (en) 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
EP1678617A4 (en) 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US7484210B2 (en) 2004-02-17 2009-01-27 Intel Corporation Apparatus and method for a generic, extensible and efficient data manager for virtual peripheral component interconnect devices (VPCIDs)
JP4036838B2 (ja) * 2004-03-12 2008-01-23 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム
US20050259678A1 (en) 2004-05-21 2005-11-24 Gaur Daniel R Network interface controller circuitry
US8024726B2 (en) * 2004-05-28 2011-09-20 International Business Machines Corporation System for correct distribution of hypervisor work
US7444523B2 (en) 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US7099477B2 (en) * 2004-10-21 2006-08-29 International Business Machines Corporation Method and system for backup and restore of a context encryption key for a trusted device within a secured processing system
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US7904943B2 (en) * 2004-12-28 2011-03-08 O'connor Dennis M Secure controller for block oriented storage
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7337291B2 (en) * 2005-01-14 2008-02-26 Microsoft Corporation Software memory access control
US7188230B2 (en) * 2005-02-15 2007-03-06 Hitachi, Ltd. Method of assuring data integrity on storage volumes
KR20070110367A (ko) 2005-02-24 2007-11-16 제라운드 시스템즈 리미티드 데이터 관리 방법 및 장치
US20060206891A1 (en) * 2005-03-10 2006-09-14 International Business Machines Corporation System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US20060272027A1 (en) 2005-05-26 2006-11-30 Finisar Corporation Secure access to segment of data storage device and analyzer
JP4850830B2 (ja) * 2005-06-01 2012-01-11 パナソニック株式会社 コンピュータシステム及びプログラム生成装置
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8839450B2 (en) * 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US20070006175A1 (en) 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7845005B2 (en) 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
US20070192761A1 (en) 2006-02-15 2007-08-16 Ravi Sahita Method for adding integrity information to portable executable (PE) object files after compile and link steps
US8522018B2 (en) * 2006-08-18 2013-08-27 Fujitsu Limited Method and system for implementing a mobile trusted platform module
US20080059811A1 (en) 2006-09-06 2008-03-06 Ravi Sahita Tamper resistant networking
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US7873770B2 (en) * 2006-11-13 2011-01-18 Globalfoundries Inc. Filtering and remapping interrupts
US20110004412A1 (en) 2007-11-29 2011-01-06 Elminda Ltd. Clinical applications of neuropsychological pattern analysis and modeling
US8171321B2 (en) 2007-12-26 2012-05-01 Intel Corporation Method and apparatus for cost and power efficient, scalable operating system independent services
US8560578B2 (en) * 2008-06-26 2013-10-15 Microsoft Corporation Common block storage infrastructure
US8468356B2 (en) 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers

Also Published As

Publication number Publication date
KR101288152B1 (ko) 2013-07-19
US20160132437A1 (en) 2016-05-12
JP5784677B2 (ja) 2015-09-24
JP2015195053A (ja) 2015-11-05
CN104375890B (zh) 2018-04-10
WO2010078143A3 (en) 2010-08-26
US9086913B2 (en) 2015-07-21
BRPI0920788A2 (pt) 2015-12-22
CN104375890A (zh) 2015-02-25
JP5318964B2 (ja) 2013-10-16
JP2013242893A (ja) 2013-12-05
US20150293777A1 (en) 2015-10-15
KR20110063812A (ko) 2011-06-14
US20100169968A1 (en) 2010-07-01
CN102171672A (zh) 2011-08-31
JP6082787B2 (ja) 2017-02-15
TW201032137A (en) 2010-09-01
US9442865B2 (en) 2016-09-13
JP2012508940A (ja) 2012-04-12
TWI451338B (zh) 2014-09-01
CN101944013B (zh) 2017-07-04
TW201437916A (zh) 2014-10-01
WO2010078143A2 (en) 2010-07-08
CN101944013A (zh) 2011-01-12
US9268594B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
TWI544418B (zh) 用以執行保全嵌入式容器之處理器擴充技術(二)
US20240184717A1 (en) Processors, methods, systems, and instructions to support live migration of protected containers
US11934843B2 (en) Secure arbitration mode to build and operate within trust domain extensions
JP6137499B2 (ja) 方法および装置
EP3317999B1 (en) Loading and virtualizing cryptographic keys
CN112148642A (zh) 针对核中的所有权访问的存储器写入
EP3961446A1 (en) Method and apparatus for securely entering trusted execution environment in hyper-threading scenario
US9566158B2 (en) Hardware protection of virtual machine monitor runtime integrity watcher
CN114691288A (zh) 用于迁移受保护虚拟机的方法、装置、系统、和指令
US10303503B2 (en) Hardware protection of virtual machine monitor runtime integrity watcher

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees