TW201730767A - 監視處理器之操作 - Google Patents
監視處理器之操作 Download PDFInfo
- Publication number
- TW201730767A TW201730767A TW105137104A TW105137104A TW201730767A TW 201730767 A TW201730767 A TW 201730767A TW 105137104 A TW105137104 A TW 105137104A TW 105137104 A TW105137104 A TW 105137104A TW 201730767 A TW201730767 A TW 201730767A
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- memory
- sampling interval
- software
- tracking information
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Human Computer Interaction (AREA)
Abstract
在此揭示用於監視處理器之操作的本發明實施例。在一實施例中,一系統包含一處理器及在該處理器外部的一硬體代理器。該處理器包含虛擬化邏輯以提供該處理器在根模式與非根模式中操作。該硬體代理器用以基於藉由欲藉由該處理器在該根模式中執行之軟體代理器所收集的追蹤資訊來驗證該處理器在該非根模式中之操作。
Description
本發明係關於資訊處理之領域,且更具體而言,係關於在資訊處理系統中之驗證之領域。
在資訊處理系統中之處理器之正確操作之驗證對於若干之原因可能係重要的,包含品質保證、可靠性及安全性。已經開發了可用於此目的之各種技術,諸如檢查點及追踪。這些技術中之一些可被認為係內部的,例如,當處理器自身向外部代理器提供某種形式之鑑別時。例如,當在處理器外部之代理器或組件監視處理器之操作時,則其他的可被視為係外部的。外部驗證可能需要至信號接腳及/或位於處理器與系統之其餘部分之間之連接之實質接達。
100‧‧‧系統
110‧‧‧處理器
112‧‧‧外部驗證(EV)硬體/邏輯
114‧‧‧虛擬化硬體/邏輯
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示
140‧‧‧周邊控制代理器
142‧‧‧裝置
150‧‧‧資訊儲存裝置
160‧‧‧處理器
162‧‧‧EV硬體/邏輯
164‧‧‧虛擬化硬體/邏輯
170‧‧‧外部驗證代理器(EVA)
180‧‧‧平台檢查模組(PCM)
200‧‧‧系統
210‧‧‧儲存單元
212‧‧‧狀態暫存器
220‧‧‧指令單元
222‧‧‧VM輸入指令
224‧‧‧狀態保存指令
230‧‧‧執行單元
240‧‧‧控制單元
242‧‧‧虛擬化單元
250‧‧‧記憶體管理單元(MMU)
252‧‧‧轉譯後備緩衝器
254‧‧‧頁行走硬體
300‧‧‧系統
310‧‧‧裸平台硬體
320‧‧‧處理器
330‧‧‧處理器
340‧‧‧外部驗證代理器(EVA)
350‧‧‧系統記憶體空間
360‧‧‧PCM記憶體
362‧‧‧平台-檢查模組(PCM)
364‧‧‧追蹤資訊記憶體
366‧‧‧被追蹤頁記憶體
370‧‧‧普通軟體堆疊(OSS)記憶體
372‧‧‧普通軟體堆疊(OSS)
376‧‧‧未追蹤的頁
400‧‧‧方法
410‧‧‧方塊
420‧‧‧方塊
422‧‧‧方塊
424‧‧‧方塊
426‧‧‧方塊
430‧‧‧方塊
440‧‧‧方塊
442‧‧‧方塊
444‧‧‧方塊
446‧‧‧方塊
448‧‧‧方塊
450‧‧‧方塊
452‧‧‧方塊
454‧‧‧方塊
460‧‧‧方塊
470‧‧‧方塊
500‧‧‧方法
510‧‧‧方塊
512‧‧‧方塊
514‧‧‧方塊
520‧‧‧方塊
522‧‧‧方塊
530‧‧‧方塊
532‧‧‧方塊
534‧‧‧方塊
536‧‧‧方塊
538‧‧‧方塊
540‧‧‧方塊
542‧‧‧方塊
552‧‧‧方塊
554‧‧‧方塊
560‧‧‧方塊
562‧‧‧方塊
564‧‧‧方塊
566‧‧‧方塊
568‧‧‧方塊
570‧‧‧方塊
572‧‧‧方塊
574‧‧‧方塊
576‧‧‧方塊
580‧‧‧方塊
582‧‧‧方塊
584‧‧‧方塊
586‧‧‧方塊
588‧‧‧方塊
600‧‧‧外部驗證代理器(EVA)
610‧‧‧中斷產生電路
620‧‧‧執行電路
630‧‧‧記憶體讀取電路
640‧‧‧記憶體寫入電路
650‧‧‧比較器電路
660‧‧‧控制邏輯
本發明係以舉例而非限制於附圖中之方式來繪示。
圖1係繪示依照本發明之一實施例之包含用於監視處
理器之操作之支援之系統。
圖2係繪示依照本發明之一實施例之包含用於監視之支援之處理器。
圖3係繪示依照本發明之一實施例之包含用以監視處理器之操作之硬體及軟體之系統。
圖4係繪示依照本發明之一實施例之用於監視處理器之操作之方法。
圖5係繪示依照本發明之一實施例之用於驗證處理器之記憶體接達之方法。
圖6係繪示依照本發明之一實施例之外部驗證代理器。
以下描述用於監視處理器之操作之本發明之實施例。在此描述中,可闡述許多具體細節,諸如組件及系統組態,以便提供對本發明之更透徹之瞭解。然而,由熟習本領域之技術者將理解的,可在沒有此種具體細節之情況下來實施本發明。此外,一些相當習知之結構、電路及其他特徵係未被詳細地展示,以避免不必要地模糊本發明。
在以下的說明中,參照「一個實施例」、「一實施例」、「實例實施例」、「各種實施例」等等係指示如此描述之本發明之該(等)實施例係可包含特定之特徵、結構或特性,但是多於一個的實施例可且非每個實施例皆必然地包含特定
之特徵、結構或特性。再者,某些實施例可具有針對其他實施例所描述之特徵中的一些、全部或全無。
如在此描述及申請專利範圍中所使用的,且除非另有說明,使用序數形容詞「第一」、「第二」、「第三」等等來描述元件係僅指示參照一元件之特定實例或類似元件之不同實例,且不旨在暗示如此描述之元件必須在時間上、空間上,以分級或以任何其他之方式處於特定之序列中。
此外,術語「位元」、「旗標」、「欄位」、「登錄」、「指示符」等等可被使用以描述在暫存器、表、資料庫或其他資料結構中之儲存位置之任何類型之內容,無論係以硬體或軟體來實施,而非表示將本發明之實施例限制於任何特定類型之儲存位置或在任何特定儲存位置中之位元或其他元件之數量。術語「清除」可被使用以指示儲存或以其他方式使得零之邏輯值被儲存在儲存位置中,且術語「設置」可被使用以指示儲存或以其他方式使得一、所有的或一些其他特定值之邏輯值被儲存在儲存位置中;然而,這些術語係非表示將本發明之實施例限制於任何特定的邏輯約定,因為在本發明之實施例中可使用任何邏輯約定。
此外,如在本發明之實施例之描述中所使用的,術語之間的「/」符號可表示實施例可包含或使用、利用及/或依照第一術語及/或第二術語(及/或任何其他額外之術語)來實施。
如在背景部分中所描述的,已經開發可用於驗證在資
訊處理系統中之處理器之正確操作之技術。本發明之實施例可為外部代理器提供用以監視或驗證處理器之操作之新方法,其可能係期望的,因為其等不需要接達至處理器之所有之信號接腳。
圖1係繪示系統100,其係包含用於監視處理器之操作之本發明之實施例之資訊處理系統。系統100可表示任何類型之資訊處理系統,諸如伺服器、桌上型電腦、可攜式電腦、機上盒、手持式裝置(諸如平板電腦或智慧型電話)或埋設之控制系統。系統100係包含處理器110、系統記憶體120、圖形處理器130、周邊控制代理器140、資訊儲存裝置150、處理器160及外部代理器170。實施本發明之系統可包含任何數量之這些組件中之各者及任何其他組件或其他元件,諸如周邊設備及輸入/輸出裝置。除非另有說明,在此或任何系統實施例中之任何或所有之組件或其他元件可藉由任何數量之總線、點對點或其他有線或無線之介面或連接來連接、耦合或以其他方式彼此通信。無論係在圖1中所展示的或係在圖1中未圖示的,系統100之任何組件或其他部分可被整合或以其他方式被包含在單一晶片(系統單晶片或SOC)、晶粒、基板或封裝上或其中。
系統記憶體120可以係動態隨機接達記憶體(DRAM)或由處理器110及/或160可讀的任何其他類型之媒體。儘管在圖1中係被展示為單一方塊,但是系統記憶體120可包含在各種組態中之多個組件。例如,在非一致性記憶
體存取(NUMA)架構中,系統記憶體120可邏輯地擴展橫跨具有通信匯流排之多個處理器插槽。
圖形處理器130可包含用於處理用於顯示器132之圖形資料之任何處理器或其他組件。周邊控制代理器140可表示任何組件,諸如晶片組組件,其包含或透過周邊設備、輸入/輸出(I/O)或其他組件或裝置,諸如裝置142(例如,觸控螢幕、鍵盤、麥克風、揚聲器、其他音頻裝置、攝像機、視訊或其他媒體裝置、網路適配器、運動或其他感測器、用於全球定位或其他資訊之接收器等等)及/或資訊儲存裝置150,其可被連接或耦合至處理器110及/或160。資訊儲存裝置150可表示包含任何一種或多種類型之持久性或非揮發性記憶體或儲存器之任何一或多個組件,諸如快閃記憶體及/或固態、磁性或光碟機。
處理器110可表示包含整合在單一基板上或封裝在單一封裝中之一或多個處理器或處理器核心之硬體組件之全部或一部分,其中之各者可包含在任何組合中之多個執行緒及/或多個執行核心。被表示為或在處理器110中之各個處理器可以係任何類型之處理器,包含通用之微處理器,諸如在英特爾核心(Intel® Core®)處理器系列中之處理器或來自英特爾(Intel®)公司或另一個公司之其他處理器系列、專用處理器或微控制器或在其中可實施本發明之實施例之資訊處理系統中之任何其他裝置或組件。處理器110可被架構及設計以依照任何指令集架構(ISA)來操作,
其可或可不被微碼所控制。
處理器110可依照任何方法來支援資源之虛擬化。通常,在資訊處理系統中之虛擬化之概念係允許一或多個操作系統(每個操作系統,一「OS」)之多個實例在單一資訊處理系統上運行,即使每個OS被設計成對於系統及其之資源係具有完整的、直接的控制。虛擬化通常係藉由使用軟體(例如,虛擬機監視器或「VMM」)向每個OS呈現具有包含一或多個虛擬處理器之虛擬資源之「虛擬機」(「VM」)來實施,該OS可完全地且直接地控制,而該VMM維持用於實施諸如在該VM(「虛擬環境」)之中共用及/或指定實體資源之虛擬化策略之系統環境。
在資訊處理系統中之處理器可例如藉由在兩種模式中操作來支援虛擬化:「根」模式,其中軟體係直接地在硬體上運行,在任何虛擬化環境之外;及「非根」模式,其中軟體係在其預期之特權等級下來運行,但係在由以根模式來運行之VMM所托管之虛擬環境中來運行。在該虛擬環境中,可攔截特定之事件、操作及情況(諸如中斷、異常及嘗試接達特權暫存器或資源),亦即,使處理器退出虛擬環境(「VM退出」),使得VMM可操作以例如實施虛擬化策略。該處理器可支援用於建立、進入(「VM登錄」)、退出及維持虛擬環境之指令,且可包含指示或控制處理器之虛擬化能力之暫存器位元或其他結構。
此外,依照本發明之一實施例之用於外部監視之支援可由諸如處理器110之處理器使用埋設在硬體、微碼、韌
體及/或如以下所描述的或依照任何其他方法來配置之其他結構中之電路及/或邏輯之任何組合來提供,且在圖1中被表示為外部驗證(EV)硬體/邏輯112,其可包含或完全地被實施在虛擬化硬體/邏輯114中以支援虛擬化。因此,除了外部驗證之外,虛擬化硬體/邏輯114及/或EV硬體/邏輯112之所有之硬體/邏輯可出於任何一或多個目的而存在於處理器110中。
在其中系統100係表示多處理器系統之一實施例中,處理器100可表示一或多個處理器,且可被稱之為第一處理器,且系統200亦可包含由在圖1中之處理器160所表示之第二處理器,及/或任何數量之額外處理器。處理器160可表示任何類型之處理器,包含與處理器110相同的、相容的、在相同系列中的、共用相同ISA之任何部分的及/或以任何方式與處理器110不同的處理器。處理器160可包含EV硬體/邏輯162及/或虛擬化硬體/邏輯164,其中之各者可以係類似於處理器110之相對應之部分。
外部驗證代理器(EVA)170可表示任何代理器,諸如處理器110外部之第三處理器,現場可編程閘極陣列或其他硬體組件。在本發明之各種實施例中,外部可表示以下之一或多者:EVA 170係不在與處理器110相同之積體電路中;EVA 170及處理器110係在不同之積體電路中;EVA 170係不在與處理器110相同之晶粒或基板上;EVA 170係在與處理器110不同之晶粒或基板上;EVA 170係
不在與處理器110相同之封裝中;EVA 170及處理器110係在不同之封裝中;及/或EVA 170係在由藉由處理器110可發送之一組接腳或連接器所界定之邊界之外,且接收前往及來自邊界之外之一或多個代理器或組件之信號。作為外部代理器,在某些實施例中,EVA 170可監視及/或攔截在系統記憶體匯流排(例如,在處理器100與系統記憶體120之間)上之事務及/或輸入/輸出之匯流排(例如,快速周邊組件互連(PCIe)匯流排至網路控制器、儲存裝置、鍵盤/滑鼠、圖形及顯示器等等)。在包含第二處理器(例如,處理器160)之一實施例中,EVA 170係亦在處理器160外部。
EVA 170係表示依照本發明之一實施例之用以驗證一或多個處理器(例如,處理器110及/或160)之操作之硬體或硬體代理器,包含用於執行指令及用於從系統記憶體讀取及寫入至系統記憶體(直接地或間接地)之電路。在各種實施例中,EVA 170可表示用以驗證另一或多個處理器之操作之經程式化或可編程之處理器(諸如與處理器110及/或160相同的、相容的、在相同系列中的、共用相同ISA之任何部分的及/或以任何方式而與處理器110及/或160不同的),或用以驗證一或多個處理器之操作之經組態或可組態之控制器或其他硬體代理器(例如,具有韌體)。
平台檢查模組(PCM)180係表示由一或多個處理器所執行以收集反射及/或與該(等)處理器之操作相關之資訊之
軟體代理器(以下所定義的),該資訊可被EVA使用以驗證該(等)處理器之操作。軟體代理器可由在系統100中之處理器所執行之任何程式、軟體模組、軟體組件、軟體代理器或指令之其他序列,或可翻譯或可轉換成由在系統100中之處理器所執行之指令之序列,如儲存在由在系統100中之處理器可讀之任何非揮發性媒體上的,及/或如複製至由在系統100中之處理器可讀之任何揮發性或非揮發性媒體之其之全部或任何部分,諸如在處理器中或接達至處理器之系統記憶體120及/或任何快取記憶體。因此,在各種實施例中,PCM 180可被儲存為在系統100中之任何記憶體、儲存器及/或組件中之軟體或韌體,且可在系統100之操作期間於各種時間且以各種組態整體地或各個部分地被移動及/或複製至在系統100中之任何記憶體。例如,PCM 180可被儲存在資訊儲存裝置150中,整體地或部分地被加載至用於由一或多個處理器(諸如處理器110及/或160)來執行之系統記憶體120中,且部分地被複製至在執行它的處理器之任一或多者中及/或接達至執行它的處理器之任一或多者之一或多個快取記憶體中。因此,在各種實施例中,PCM 180之多個實例化可例如在不同之執行核心上同時地或並存地運行。再者,不同類型之PCM可被使用以監視在分區系統中之不同模式之處理器操作(例如,主機模式、系統管理模式)或不同之執行核心。
圖2係繪示處理器200,其可表示在圖1中之處理器
110及/或160或在圖1中之處理器110/160之多核心處理器實施例之執行核心之實施例。處理器200可包含儲存單元210、指令單元220、執行單元230、控制單元240及記憶體管理單元(MMU)250,其中圖1之EV硬體/邏輯112/1 62之電路、結構及功能性可被包含在此種單元之任一者中及/或分布在此種單元之任一者之中。處理器200亦可包含在圖1中未圖示之任何其他電路、結構或邏輯(例如,效能計數器硬體)。
儲存單元210可包含可使用於在處理器200中之任何目的之任何類型之存儲器之任何組合;例如,其可包含使用任何記憶體或儲存技術來實施之任何數量之可讀取的、可寫的及/或可讀寫的暫存器、緩衝器及/或快取,其中係用以儲存能力資訊、組態資訊、控制資訊、狀態資訊、效能資訊、指令、資料及在處理器200之操作中可使用之任何其他資訊,及可使用以接達此種儲存及/或引起或支援與至此種儲存之接達相關聯之各種操作及/或組態之電路。在本發明之各種實施例中,儲存單元210可包含一或多個暫存器或其他狀態儲存位置(狀態暫存器212),其之內容可被複製或移動至結合保存處理器200之狀態(例如,利用狀態保存指令224)之系統記憶體120且其可從結合恢復處理器200之狀態之系統記憶體120而被加載或寫入。
指令單元220可包含用以提取、接收、解碼、解譯、調度及/或處理指令(諸如VM輸入指令222及狀態保存指
令224)之任何電路、邏輯、結構及/或其他硬體(諸如指令解碼器),以由處理器200來執行。在本發明之範圍內可使用任何指令格式;例如,指令可包含運算碼及一或多個運算元,其中運算碼可被解碼成用於由執行單元230來執行之一或多個微指令或微操作。運算元或其他參數可隱式地、直接地、間接地或依照任何其他方法地與指令相關聯。VM輸入指令222可表示在任何指令集中之任一或多個指令,藉由指令,控制可例如藉由VMM而被傳送至VM以用於初始之登錄至新建立之VM或用於隨後之登錄(亦即,跟隨先前之VM登錄及VM退出的)至先前所建立之VM中。
執行單元230可包含用以處理資料及執行指令、微指令及/或微操作之任何電路、邏輯、結構及/或其他硬體,諸如算術單元、邏輯單元、浮動點單元、移位器等等。執行單元230可表示任一或多個實體上或邏輯上不同之執行單元。
控制單元240可包含用以控制處理器200之單元及其他元件之操作及在處理器200之內、之中及之外之資料之傳輸之任何微碼、韌體、電路、邏輯、結構及/或硬體。控制單元240可使處理器200執行或參與本發明之方法實施例(諸如以下所描述之方法實施例)之效能,例如,藉由使用執行單元230及/或任何其他資源使處理器200執行由指令單元220所接收之指令及從由指令單元220所接收之指令所衍生之微指令或微操作。由執行230進行之指令
之執行可基於儲存在儲存單元210中之控制及/或組態資訊而變化。控制單元240可包含虛擬化單元242以提供用於用以攔截在VM中所發生之某些事件之處理器200且導致VM退出。
MMU 250可包含用以管理系統記憶體之任何電路、邏輯、結構及/或其他硬體,諸如提供用於依照任何期望之方法之實體記憶體之虛擬化及系統記憶體之保護。在一實施例中,MMU 250支援使用虛擬記憶體來提供軟體,包含在VM中運行之軟體,其具有用於儲存及接達大於在系統(例如,系統記憶體120)中之實體記憶體之位址空間之代碼及資料之位址空間。處理器200之虛擬記憶體空間可僅受可用於在處理器上運行之軟體之位址位元之數量所限制,而處理器200之實體記憶體空間可被限制於系統記憶體120之大小。MMU 250支援諸如分頁之記憶體管理方案,以在如所需之基礎上來交換進及出系統記憶體120之執行軟體之代碼及資料。作為此方案之一部分,軟體可藉由未轉譯之位址來接達處理器之虛擬記憶體空間,未轉譯之位址係由處理器轉譯成處理器可使用來接達處理器之實體記憶體空間之經轉譯位址。
因此,依照諸如分頁之任何習知之記憶體管理技術,MMU 250可包含轉譯後備緩衝器252,其中係用以儲存虛擬的、邏輯的、線性的轉譯或其他至實體之未轉譯之位址或其他轉譯之位址。為了執行這些位址之轉譯,MMU 250可包含頁行走硬體254,其用以參照儲存在處理器200、
系統記憶體130、在圖1中未圖示之系統100中之儲存位置及/或這些位置中之任何組合中之一或多個資料結構。依照任何習知之分頁架構,這些資料結構可包含頁目錄、頁表及其他分頁資料結構。每個此種分頁資料結構及TLB 252可包含(或已與個別或群組之輸入項相關聯的)一或多個位元或其他指示符,其被使用以指示及實施各種許可(例如,讀取、寫入或執行),其可定義或限制至記憶體之頁(或其他區域)之接達。
圖3係繪示包含用以監視處理器之操作之硬體及軟體之系統之另一視圖。在圖3中,系統300係包含裸平台硬體310,其可表示在圖1中之系統100之硬體。裸平台硬體310被展示為包含分別地對應於在圖1中之處理器110、處理器160及EVA 170之處理器320、處理器330及EVA 340,但是可包含任何數量之處理器。
圖3亦展示系統記憶體空間350,其表示在系統300之系統架構中之可由在系統300中之任一或多個處理器來定址之記憶體空間。系統記憶體空間350可表示由基於實體系統記憶體(諸如在圖1中之系統記憶體120)之記憶體虛擬化技術所提供之虛擬系統記憶體空間。因此,系統記憶體空間350係實體記憶體之抽象概念,且可在系統300之操作期間之各種時間儲存在各種記憶體及/或在系統300中之其他儲存位置中之資料、指令、代碼、程式、軟體及/或其他資訊之各種組合。
儘管在圖3中未圖示,但是除了如在圖3中所展示之
系統記憶體空間之外,依照本發明之一實施例之系統可包含一或多個記憶體空間。例如,為了支援在系統管理模式(SMM)中之處理器之操作,系統可包含與系統記憶體空間分離之SMM記憶體空間(SMRAM)。因此,本發明之實施例可提供用於駐留在SMRAM中之第二PCM及/或監視至SMRAM之接達。
為了方便起見,圖3係將系統記憶體空間350展示為單一的、連續的記憶體空間。然而,系統記憶體空間350可被邏輯地組織、可被定址為及/或以其他方式被分區(例如,使用由MMU 250所提供之記憶體分割/保護技術)成一或多個統一大小之區域。在各種實施例中,此種區域可以係4K-位元組之頁,因此,為了方便起見,此種區域在此說明書中可被稱之為頁;因此,在此說明書中之術語「頁」之使用可表示記憶體之任何大小之區域。
再者,在任何組合中之任何數量之此種區域可被保護,使得此種系統記憶體空間350之一些部分係被接達至某些軟體、組件及/或VM,但是不可接達至其他軟體、組件及/或VM。例如,系統記憶體空間350可包含PCM記憶體360及普通軟體堆疊(OSS)記憶體370,其中PCM記憶體360係包含且可接達至PCM 362,且OSS記憶體370係包含且可接達至由在系統300中之一或多個處理器來執行及/或可執行之其他軟體(OSS 372,例如,操作系統及應用軟體)。PCM記憶體360可由在系統360中之一或多個處理器(例如,處理器320及/或330)所接達,使得PCM
362可由一或多個處理器(例如,處理器320及/或330)來執行,但是PCM記憶體係被保護而不可接達至OSS 372。此外,PCM記憶體360係包含追蹤資訊記憶體364及被追蹤頁記憶體366,其中之兩者係被接達至其中用以分別地儲存追蹤資訊及被追蹤頁之EVA 350,兩者皆如以下所描述的;且OSS記憶體370係如以下所描述的包含未追蹤頁376。
在各種實施例中,PCM 362可在單一之VMM或層狀或多個VMM虛擬化架構中,被實施為VMM或管理程序或VMM或管理程序之軟體或韌體模組或組件(因此PCM可被稱之為「主機」或「主機」軟體),且因此能夠將系統記憶體340分割成PCM區域360且建立及維持VM以包含OSS記憶體區域370(因此OSS372可被稱之為「客戶」或「客戶」軟體,因為該OSS係由PCM所托管之虛擬化環境中之客戶)。因此,由EVA 340所產生之中斷可被使用以使得VM從其中該OSS正在操作之VM退出,且處理器之控制係從在OSS 372中之軟體轉移至PCM 362。
在各種實施例中,EVA 340可產生開始取樣間隔之第一中斷及結束取樣間隔之第二中斷。如以下所進一步描述的,PCM 362可藉由EVA 340在可被使用之取樣間隔之開始、結束及/或期間來收集資訊,連同來自OSS記憶體370之其他資訊,以驗證一或多個處理器(例如,處理器320及/或330)之操作。
圖4係繪示依照本發明之一實施例之用於監視處理器
之操作之方法400。儘管本發明之方法實施例在此方面中係不被限制的,但是可參考圖1、2及3之元件來幫助描述圖4之方法實施例。方法400之各個部分可由硬體、韌體、軟體及/或諸如系統100及/或300之系統之使用者來執行。
在方法400之方塊410中,資訊處理系統(例如,系統300)可在具有或不具有由PCM(例如,PCM 362)所維護之虛擬化環境之情況下來操作。
在方塊420中,EVA(例如,EVA 340)向在系統中之一或多個處理器(例如,處理器320及/或330)發送第一中斷以起始取樣間隔。在各種實施例中,可使用起始(及/或終止)取樣間隔之其他方法。例如,該EVA可指定在PCM開始取樣間隔及/或組態系統(例如,分頁結構、除錯暫存器、VMCS、系統定時器等等)之特定時間或條件(接達特定之實體記憶體位置、觀察特定之中斷或其他事件等等)下,使得其可隨後地截取各種事件且執行如可能由EVA所指示之檢查點。
在方塊422中,將第一中斷遞送至處理器係使得處理器之控制(藉由VM退出、中斷向量、中斷處置例程等等中之任何組合)被傳送至PCM。在方塊424中,該PCM係藉由在被保留以用於由PCM(例如,追蹤資訊記憶體364)來使用之系統記憶體之區域中之第一資料結構中儲存(例如,使用保存狀態指令)某些暫存器或其他儲存位置(例如,狀態暫存器212)之狀態來建立初始檢查點。在方塊
426中,該PCM將處理器之控制(例如,利用VM輸入指令)傳送至在VM上運行之OSS(例如,OSS 372)中之軟體。
在方塊430中,在該OSS中之軟體係在VM中操作,且可在各種時間由PCM攔截,在各個時間,該PCM可在追蹤資訊記憶體中記錄追蹤資訊。追蹤資訊可包含藉由追蹤在記憶體總線、I/O匯流排及多處理器插槽互連上之執行而收集之資訊。各種事件,諸如中斷、嘗試接達特權的或指定的暫存器及/或儲存及/或記憶體位置、由該OSS所起始之I/O操作等等,可被截取、追蹤、及模擬或允許由OSS來處理、完成及/或執行。
例如,在方塊440中,可從輸入/輸出裝置(例如,裝置142)或其他來源向一或多個處理器發送第二中斷。在方塊442中,將第二中斷傳遞至處理器係使得處理器之控制(藉由VM退出)被傳遞至PCM。在方塊444中,該PCM在追蹤資訊記憶體中之第二資料結構中記錄追蹤資訊(例如,中斷向量)。在方塊446中,PCM將處理器之控制(例如,藉由VM輸入指令)傳送回到在VM上運行之OSS中之軟體,且將第二中斷傳送至OSS(例如,與VM登錄結合,將相對應於第二中斷之虛擬中斷注入至VM中)。在方塊448中,在OSS中之軟體可處理第二中斷,且接著繼續在VM中操作。
在各種實施例中,在取樣間隔期間由PCM所記錄之追蹤資訊可包含提供用於用以模仿及/或驗證一或多個處
理器之操作之EVA之資訊。此種資訊可包含用以指示在每個中斷及/或其他事件發生時之在取樣間隔及/或指令序列中之該點之指令計數及/或任何其他資訊,使得EVA可準確地模仿指令序列之執行。
在一實施例中,該PCM可使用計數器(例如,由處理器所提供之效能計數器)來計數在取樣間隔期間執行/退出之指令之數量。該追蹤資訊可包含中斷追蹤(例如,在取樣間隔期間所發生之中斷之列表,由其等之中斷向量所識別的)或其他事件追蹤,其中每個中斷或事件係以指令計數值來註釋以指示在相對應之中斷或事件發生之前所執行/退出之指令之數量或被傳遞至OSS(例如,藉由該PCM在PCM攔截該中斷或事件之後)。因此,該EVA可在該指令模仿它們時對該指令進行計數,以精確地判定在模仿該中斷或其他事件時之指令邊界。在一實施例中,中斷追蹤可包含該對之列表,其中指令計數值係作為該對之第一成員,而中斷向量係作為該對之第二成員。
在方塊450中,該EVA向一或多個處理器發送第三中斷以結束取樣間隔。在各種實施例中,可使用終止取樣間隔之其他方法。例如,該EVA可指定在該PCM開始該取樣間隔時之特定時間或條件(接達特定之實體記憶體位置,觀察特定之中斷或其他事件等等)。
在方塊452中,將該第三中斷傳遞至該處理器係使得處理器之控制(藉由VM退出)被傳送至PCM。在方塊454中,該PCM係藉由將在追蹤資訊記憶體中之第三資料結
構中之某些暫存器或其他儲存位置(例如,狀態暫存器212)之狀態儲存(例如,使用保存狀態指令)來建立最終檢查點(又或者,僅儲存與在取樣間隔之開始時之狀態不同之狀態)。
在方塊460中,該EVA從追蹤資訊記憶體讀取初始檢查點資訊、追蹤資訊及/或最終檢查點資訊,且依照任何習知之方法使用其來檢查在取樣間隔期間該一或多個處理器是否依照該一或多個處理器之正確的及/或預期的操作及/或行為之規範來操作。
在方塊470中,在具有或不具有由該PCM所維護之虛擬化環境之狀況下,該系統可繼續操作。
在本發明之各種實施例中,收集及驗證檢查點及追蹤資訊之各種方法係可能的。例如,處理器之EVA之模仿可包含使用在追蹤資訊記憶體中用於各種處理器暫存器之指定位置,從由該PCM在初始檢查點處所記錄之狀態開始,模仿在取樣間隔期間所執行之每個指令(包含載入及儲存在追蹤資訊記憶體而不是實際處理器暫存器中之指定位置),且將在追蹤資訊記憶體中之指定位置之內容與由該PCM在最終檢查點處所記錄之狀態進行比較。任何不匹配都將表示驗證失敗。
作為另一個實例,圖5係繪示依照本發明之一實施例之用於驗證處理器之記憶體接達之方法500。方法500可結合方法400或依照本發明之一實施例之起始及結束取樣間隔之任何其他方法來使用;因此,方法500可指在沒有
進一步細節之情況下起始及結束取樣間隔。
在方法500之方塊510中,EVA為了取樣間隔之起始而發出信號。在方塊512中,結合取樣間隔之起始,PCM(例如,使用MMU 250)將在OSS中的及/或接達至OSS之所有頁標記為唯讀。在方塊514中,該PCM將控制傳送至在一或多個處理器上之VM中所操作之OSS。
在方塊520中,該OSS嘗試接達在記憶體中標記為唯讀之第一頁。在方塊522中,該嘗試之接達引起頁錯誤、VM退出,及將控制傳送回到該PCM。
在方塊530中,該PCM在追蹤資訊記憶體中之記憶體追蹤資料結構中之第一登錄項中記錄第一頁之位址。在方塊532中,該PCM儲存在為該PCM所保留且不可接達至OSS之記憶體(例如,被追蹤頁記憶體366)中之第一頁之初始值/內容之複本(亦即,在取樣間隔期間由OSS進行之任何改變之前)及/或將初始值/內容與第一登錄項相關聯。在一實施例中,記憶體追蹤可包含該對之列表,其中由該OSS所使用來接達頁之位址(例如,在OSS記憶體中之頁之客戶-實體位址)係作為該對之第一成員,而與該PCM複製該頁之值/內容相對應之位址(例如,在被追蹤頁記憶體中之主機-實體位址)係作為該對之第二成員。因此,該頁之值/複本及在該EVA可接達該值/複本處之位址兩者皆被儲存在PCM記憶體中,其中其可由該EVA(而非由該OSS)接達以用於模仿。
在方塊534中,該PCM將第一頁標記為讀取/寫入。
在方塊536中,該PCM將控制傳送回到在該VM中之該OSS。因此,在方塊538中,該OSS繼續操作,且現在可修改(若需要,不止一次)第一頁之該值/內容,而不引起另一個頁錯誤、VM退出或將控制傳送回到該PCM。同樣地,該OSS在取樣間隔期間修改不同頁之每個第一次嘗試可能引起頁錯誤、VM退出及/或將控制傳送回到該PCM,以允許該PCM記錄該位址及初始值/內容。
在方塊540中,該EVA為了取樣間隔之結束而發出信號。在方塊542中,結合取樣間隔之結束,該PCM使得記憶體追蹤資料結構及被追蹤頁係可用於該EVA。
在方塊552中,在準備模仿時,該EVA在邏輯上將OSS記憶體劃分成PCM登錄至(且因此被EVA發現)被追蹤頁記憶體之頁之群組中及PCM不登錄至(且因此未被EVA發現)記憶體追蹤資料結構之頁之群組中(例如,未追蹤頁376)。在方塊554中,該EVA在取樣間隔期間使用記憶體追蹤資料結構及被追蹤頁之內容開始模仿該一或多個處理器之操作,包含被執行之指令。
在方塊560中,該EVA判定處理器是否執行記憶體-讀取之接達。若是,則在方塊562中,該EVA嘗試模仿該讀取。若在方塊564中,該EVA判定該頁係被追蹤頁,則在方塊566中,該EVA執行從來自該被追蹤頁記憶體之該頁之值/內容之複本之讀取(其在該EVA模仿至該頁之任何寫入之前,將反映該頁之初始值/內容)。相反地,若在方塊564中,該EVA判定該頁係未被追蹤頁,
則在方塊568中,該EVA係直接地從在OSS記憶體中之該頁來執行讀取。
在方塊570中,該EVA判定處理器是否執行記憶體-寫入之接達。若是,則在方塊572中,該EVA嘗試模仿該寫入。若在方塊574中,該EVA判定該頁係被追蹤頁,則在方塊576中,該EVA對在該被追蹤頁記憶體中之該頁之值/內容之複本執行該寫入。相反地,若在方塊574中,該EVA判定該頁係未被追蹤頁,則該EVA判定該寫入係表示驗證失敗,且方法500在方塊586中結束。
在方塊580中,該EVA判定該取樣間隔的(或該指令串流的或所有記憶體接達的)模仿是否係完成的。若不是,則該EVA返回至方塊564以繼續模仿,至少直到所有記憶體之讀取及寫入已經被模仿。
在方塊582中,在該取樣間隔之模仿完成之後,該EVA將在該被追蹤頁記憶體中之每個頁之值/內容與在OSS記憶體中之相對應之頁之值/內容進行比較。若在方塊584中,該EVA發現在該被追蹤頁記憶體中之被追蹤頁之值/內容與OSS記憶體之間不匹配,則在方塊586中,該EVA判定驗證失敗。相反地,若在方塊584中,該EVA發現在該被追蹤頁記憶體中之所有追蹤頁之值/內容係與OSS記憶體匹配,則在方塊588中,該EVA判定處理器之記憶體接達之驗證通過。
在本發明之各種實施例中,可以以不同之順序,利用所繪示之組合的或省略的方塊、利用所添加之額外方塊,
或利用重新排序的、組合的、省略的或額外的方塊之組合來執行在圖4及圖5中所繪示之方法。例如,取樣間隔可基於預定之時間、事件及/或持續時間而不是來自該EVA之中斷來開始或結束。再者,本發明之方法實施例係不被限制於方法400、方法500或其之變化形式。
作為針對方法500之基於頁的記憶體追蹤之替代(或附加),PCM可使用子頁策略(SPP)來提供何時寫入頁之特定區域之更精細之指示,且因此,模仿係待被執行。例如,SPP可提供將相對應於截取記憶體匯流排之記憶體追蹤邏輯之粒度之快取線粒度。
在各種實施例中,TLB失誤亦可使用效能計數器及效能監視器中斷來監視。例如,效能計數器臨限值可被使用以指示何時頁行走係正在處理中以使EVA能夠模仿分頁結構接達、接達/損壞位元輔助等等。
在各種實施例中,可藉由限制讀取/寫入接達以觸發可由該PCM攔截之中斷來監視圖形及/或其他裝置之記憶體接達。
未在本文中所描述之許多其他方法實施例(及設備、系統及其他實施例)在本發明之範圍內係可能的。
本發明之各種實施例可包含用於監視多個處理器/核心(例如,處理器110及處理器160)之操作之各種技術。在各種實施例中,EVA及/或PCM可藉由使OSS指令串流在第一取樣間隔期間由第一處理器/核心來執行或使相同或不同之OSS指令串流在第二取樣間隔期間由第二處
理器/核心來執行等等以導致每個處理器/核心被單獨地監視及/或驗證。例如,在取樣間隔之起始時,該EVA可使處理器/執行緒與中斷同步化,以使每個處理器之控制傳送至該PCM,或該PCM可使該處理器/執行緒與在處理器之間之中斷同步化。在每個取樣間隔期間,其他處理器/執行緒可保持閒置(例如,處於低功率之狀態中)。
或者,在各種實施例中,PCM可使VM在取樣間隔中之OSS指令串流中之特定指令邊界處(例如,使用效能計數器來計數執行/退回之指令)退出,以便將該指令串流劃分或分割成(或依照)在處理器/核心之間或之中之不同的執行緒,其中用以定義在指令串流待被劃分時之該點及/或該指令串流待被各個處理器/核心執行之部分之方法(排程、執行緒之列表及指令計數對等等)係確定性的,其由該EVA判定且預先被傳送至該PCM,及/或由該PCM判定且隨後被傳送至該EVA。同樣地,在該監視中所包含之中斷及其他事件可基於確定性、預定及/或間隔前/後之通信技術而與在該追蹤資訊中之一或多個處理器/核心相關聯,諸如其中斷/事件係由其處理器/核心來處理之一或多個列表。因此,可在單一取樣間隔期間為每個處理器/核心建立初始檢查點、最終檢查點、中斷追蹤、記憶體追蹤及任何其他所需之追蹤資訊,且由該EVA使用以驗證在單一取樣間隔期間每個處理器之操作。
圖6係繪示依照本發明之一實施例之EVA 600。EVA 600可包含硬體,其用以執行被包含在一或多個處理器之
操作之模仿及/或驗證之各種操作中,如在方法400、方法500或其他方式中所描述的。例如,EVA 600可包含:中斷產生電路610,其用以產生中斷以起始及/或結束取樣間隔;執行電路620,其用以模仿由處理器所進行之指令之執行;記憶體讀取電路630,其用以執行對系統記憶體之讀取;記憶體寫入電路640,其用以執行對系統記憶體之寫入;一或多個比較器電路650,其用以執行比較(用以將模仿之後之狀態資訊與由PCM所提供之狀態資訊進行比較、用以將在記憶體追蹤資料結構中之頁之值/內容與在OSS記憶體中之頁進行比較,等等);及控制邏輯660,其用以控制EVA 600之操作。
如上述之本發明之實施例或實施例之部分可被儲存在任何形式之機器可讀取之媒體上。例如,當由處理器執行時,方法400或500之全部或部分可被實施在被儲存於由處理器可讀取之媒體上之軟體或韌體指令中,使得處理器執行本發明之實施例。此外,本發明之各方面可被實施於被儲存在機器可讀取之媒體上之資料中,其中該資料係表示可用於製造處理器之全部或部分之設計或其他資訊。
因此,已經描述用於監視處理器之操作之發明之實施例。儘管已經描述且在附圖中展示某些實施例,但是應瞭解,此種實施例僅係說明性的,而非對廣泛之發明之限制,且本發明係不被限制於所展示及描述之具體構造及配置,因為那些一般的熟習本領域之技術者在研究本發明時
可進行各種其他修改。在諸如此類之技術之領域中,其中成長係快速的且不容易預見進一步之進展,揭示之實施例可容易地在配置及細節中進行修改,如在不脫離本發明之原理或隨附之申請專利範圍之範疇的情況下藉由實現技術之進展所促進的。
100‧‧‧系統
110‧‧‧處理器
112‧‧‧外部驗證(EV)硬體/邏輯
114‧‧‧虛擬化硬體/邏輯
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示
140‧‧‧周邊控制代理器
142‧‧‧裝置
150‧‧‧資訊儲存裝置
160‧‧‧處理器
162‧‧‧EV硬體/邏輯
164‧‧‧虛擬化硬體/邏輯
170‧‧‧外部驗證代理器(EVA)
180‧‧‧平台檢查模組(PCM)
Claims (20)
- 一種系統,包括:處理器,其包含虛擬化邏輯以提供該處理器用以在根模式或非根模式中操作;及硬體代理器,其在該處理器外部,用以基於藉由欲藉由該處理器在該根模式中執行之軟體代理器所收集的追蹤資訊來驗證該處理器在該非根模式中之操作。
- 如申請專利範圍第1項之系統,其進一步包括於其中儲存該追蹤資訊之系統記憶體。
- 如申請專利範圍第2項之系統,其中,該處理器在該非根模式中之操作包含藉由虛擬機之普通軟體堆疊的執行。
- 如申請專利範圍第3項之系統,其中,該處理器亦包含記憶體管理單元以提供用於將該系統記憶體分割成複數個記憶體區域,其中,該追蹤資訊欲被儲存在可接達至該硬體代理器且不可接達至該虛擬機之該複數個記憶體區域之一或多者。
- 如申請專利範圍第4項之系統,其中,該處理器亦包含狀態儲存器,其中,該追蹤資訊係包含該狀態儲存器之初始檢查點及該狀態儲存器之最終檢查點。
- 如申請專利範圍第5項之系統,其中,該硬體代理器係用以模仿藉由該處理器從基於該初始檢查點之初始狀態至最終狀態之該普通軟體堆疊之執行且用以比較該最終狀態與該最終檢查點。
- 如申請專利範圍第6項之系統,其中,該軟體代理器係用以記錄結合取樣間隔之起始之初始檢查點資訊且用以記錄結合取樣間隔之終止之最終檢查點資訊。
- 如申請專利範圍第7項之系統,其中,該硬體代理器係用以提供第一信號以起始該取樣間隔且用以提供第二信號以終止該取樣間隔。
- 一種方法,包括:藉由軟體代理器監視普通軟體堆疊藉由在處理器上之虛擬機之執行;藉由該軟體代理器儲存追蹤資訊於系統記憶體中;及使用該追蹤資訊藉由在該處理器外部的硬體代理器來驗證該處理器之操作。
- 如申請專利範圍第9項之方法,其中,該軟體代理器在該處理器之根模式中執行。
- 如申請專利範圍第10項之方法,其中,驗證包含比較實際最終狀態與模仿的最終狀態。
- 如申請專利範圍第11項之方法,其進一步包括藉由該軟體代理器來儲存實際初始狀態之複本。
- 如申請專利範圍第12項之方法,其進一步包括藉由該硬體代理器基於藉由該處理器之該普通軟體堆疊之執行的模仿來修改該實際初始狀態之該複本以產生該模仿的最終狀態。
- 如申請專利範圍第13項之方法,其進一步包括藉由該軟體代理器結合取樣間隔之起始來將複數個記憶體區 域標記為唯讀以造成結合藉由該普通軟體堆疊要修改在該複數個記憶體區域中之其中一記憶體區域的嘗試之虛擬機退出。
- 如申請專利範圍第14項之方法,其進一步包括藉由該軟體代理器回應於該虛擬機退出來將該記憶體區域新增至被追蹤的記憶體區域之列表。
- 如申請專利範圍第15項之方法,其中,該實際初始狀態之該複本包含在該取樣間隔期間欲藉由在該虛擬機上執行之該普通軟體堆疊予以修改之前之該記憶體區域之複本。
- 一種設備,包括:記憶體讀取電路,用以從耦合至處理器之系統記憶體來讀取追蹤資訊,該追蹤資訊係在該處理器上之虛擬機上的客用軟體之執行的取樣間隔期間藉由虛擬機監視器而被收集在該處理器;執行電路,用以使用該追蹤資訊來模仿該客用軟體之執行,以產生模仿的最終狀態;及比較電路,用以將該模仿的最終狀態與實際最終狀態相比較;其中,該設備係在該處理器的外部。
- 如申請專利範圍第17項之設備,其進一步包括中斷產生電路,用以對該處理器產生第一中斷以起始該取樣間隔及對該處理器產生第二中斷以終止該取樣間隔。
- 一種有形處理器可讀取媒體,其儲存指令,當該 指令藉由處理器執行時,造成該處理器用以:監視在該處理器上之虛擬機的執行;且將追蹤資訊儲存在系統記憶體,該追蹤資訊係由在該處理器外部之硬體代理器所使用以驗證該處理器之操作。
- 如申請專利範圍第19項之有形處理器可讀取媒體,其中,該指令係欲由該處理器在根模式中來執行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/973,238 | 2015-12-17 | ||
US14/973,238 US9858167B2 (en) | 2015-12-17 | 2015-12-17 | Monitoring the operation of a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201730767A true TW201730767A (zh) | 2017-09-01 |
TWI738680B TWI738680B (zh) | 2021-09-11 |
Family
ID=59057372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105137104A TWI738680B (zh) | 2015-12-17 | 2016-11-14 | 監視處理器之操作之系統 |
TW110130533A TWI799953B (zh) | 2015-12-17 | 2016-11-14 | 監視處理器之操作之系統、設備及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110130533A TWI799953B (zh) | 2015-12-17 | 2016-11-14 | 監視處理器之操作之系統、設備及方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9858167B2 (zh) |
CN (2) | CN114625616A (zh) |
DE (1) | DE112016005823T5 (zh) |
TW (2) | TWI738680B (zh) |
WO (1) | WO2017105758A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180054364A (ko) * | 2016-11-15 | 2018-05-24 | 삼성전자주식회사 | 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10365987B2 (en) | 2017-03-29 | 2019-07-30 | Google Llc | Synchronous hardware event collection |
US9875167B1 (en) * | 2017-03-29 | 2018-01-23 | Google Inc. | Distributed hardware tracing |
US11347531B2 (en) * | 2018-10-31 | 2022-05-31 | The Boeing Company | Generalized virtualization platform for systems using hardware abstraction software layers |
US10581522B1 (en) | 2018-12-06 | 2020-03-03 | At&T Intellectual Property I, L.P. | Free-space, twisted light optical communication system |
US10992554B2 (en) | 2018-12-07 | 2021-04-27 | At&T Intellectual Property I, L.P. | Intelligent data analytics collectors |
US11669335B2 (en) * | 2019-03-28 | 2023-06-06 | Intel Corporation | Secure arbitration mode to build and operate within trust domain extensions |
CN112083934A (zh) * | 2019-06-13 | 2020-12-15 | 青岛海信移动通信技术股份有限公司 | 一种终端和处理方法 |
US12118088B2 (en) * | 2020-04-22 | 2024-10-15 | Arm Limited | Moderator system for a security analytics framework |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080283B1 (en) * | 2002-10-15 | 2006-07-18 | Tensilica, Inc. | Simultaneous real-time trace and debug for multiple processing core systems on a chip |
US7802110B2 (en) | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US20080168435A1 (en) * | 2007-01-05 | 2008-07-10 | David Tupman | Baseband firmware updating |
US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
JP4864817B2 (ja) * | 2007-06-22 | 2012-02-01 | 株式会社日立製作所 | 仮想化プログラム及び仮想計算機システム |
WO2010014109A1 (en) | 2008-08-01 | 2010-02-04 | Hewlett-Packard Development Company, L.P. | Verifying firmware |
US8930912B2 (en) | 2008-12-16 | 2015-01-06 | Cadence Design Systems, Inc. | Method and system for performing software verification |
JP5298967B2 (ja) * | 2009-03-06 | 2013-09-25 | 富士通株式会社 | 検証支援プログラム、情報処理装置および検証支援方法 |
US8776028B1 (en) * | 2009-04-04 | 2014-07-08 | Parallels IP Holdings GmbH | Virtual execution environment for software delivery and feedback |
US20110098973A1 (en) * | 2009-10-23 | 2011-04-28 | Computer Associates Think, Inc. | Automatic Baselining Of Metrics For Application Performance Management |
CN101826050B (zh) * | 2010-02-03 | 2012-05-09 | 龙芯中科技术有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
US20120066551A1 (en) | 2010-09-15 | 2012-03-15 | Alexandre Palus | Run-time Verification of CPU Operation |
US9747187B2 (en) * | 2010-10-27 | 2017-08-29 | International Business Machines Corporation | Simulating black box test results using information from white box testing |
CN108490204A (zh) * | 2011-09-25 | 2018-09-04 | 赛拉诺斯知识产权有限责任公司 | 用于多重分析的系统和方法 |
US9015025B2 (en) | 2011-10-31 | 2015-04-21 | International Business Machines Corporation | Verifying processor-sparing functionality in a simulation environment |
JP6079317B2 (ja) * | 2013-03-05 | 2017-02-15 | 富士通株式会社 | 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム |
US9195570B2 (en) * | 2013-09-27 | 2015-11-24 | International Business Machines Corporation | Progressive black-box testing of computer software applications |
US9619346B2 (en) * | 2013-10-31 | 2017-04-11 | Assured Information Security, Inc. | Virtual machine introspection facilities |
-
2015
- 2015-12-17 US US14/973,238 patent/US9858167B2/en active Active
-
2016
- 2016-11-14 TW TW105137104A patent/TWI738680B/zh active
- 2016-11-14 TW TW110130533A patent/TWI799953B/zh active
- 2016-11-17 WO PCT/US2016/062575 patent/WO2017105758A1/en active Application Filing
- 2016-11-17 DE DE112016005823.3T patent/DE112016005823T5/de not_active Withdrawn
- 2016-11-17 CN CN202210308352.8A patent/CN114625616A/zh active Pending
- 2016-11-17 CN CN201680067222.2A patent/CN108351826B/zh active Active
-
2017
- 2017-11-30 US US15/827,890 patent/US10599547B2/en active Active
-
2020
- 2020-02-11 US US16/787,333 patent/US11048588B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9858167B2 (en) | 2018-01-02 |
CN114625616A (zh) | 2022-06-14 |
TWI738680B (zh) | 2021-09-11 |
TWI799953B (zh) | 2023-04-21 |
TW202147116A (zh) | 2021-12-16 |
DE112016005823T5 (de) | 2018-08-30 |
WO2017105758A1 (en) | 2017-06-22 |
US10599547B2 (en) | 2020-03-24 |
US20200257609A1 (en) | 2020-08-13 |
US11048588B2 (en) | 2021-06-29 |
US20180157575A1 (en) | 2018-06-07 |
CN108351826A (zh) | 2018-07-31 |
US20170177460A1 (en) | 2017-06-22 |
CN108351826B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048588B2 (en) | Monitoring the operation of a processor | |
TWI697805B (zh) | 載入和虛擬化密碼金鑰 | |
US8656222B2 (en) | Method and system for recording a selected computer process for subsequent replay | |
KR101574403B1 (ko) | 결합된 가상 그래픽 장치 | |
TWI509518B (zh) | 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統 | |
JP5936640B2 (ja) | 協調設計されたプロセッサへの、隔離された実行環境の作成 | |
US7356735B2 (en) | Providing support for single stepping a virtual machine in a virtual machine environment | |
US20170185776A1 (en) | Trusted launch of secure enclaves in virtualized environments | |
US8806104B2 (en) | Enabling virtualization of a processor resource | |
BR112015022865B1 (pt) | Método e aparelho para ativar seletivamente as operações de um monitor de máquina virtual sob demanda | |
US10430221B2 (en) | Post-copy virtual machine migration with assigned devices | |
TW201339971A (zh) | 虛擬機器控制結構陰影化技術 | |
US10268595B1 (en) | Emulating page modification logging for a nested hypervisor | |
US10963280B2 (en) | Hypervisor post-write notification of control and debug register updates | |
US9086906B2 (en) | Apparatus and method for guest and root register sharing in a virtual machine | |
US20110106522A1 (en) | virtual platform for prototyping system-on-chip designs | |
Garcia et al. | Towards hardware embedded virtualization technology: architectural enhancements to an ARM SoC | |
JP6920286B2 (ja) | 例外処理 | |
JP2018531462A6 (ja) | 例外処理 | |
Hin et al. | Supporting RISC-V full system simulation in gem5 | |
EP3278219A1 (en) | Migration of computer systems | |
De Sá | Risc-V Lightweight Virtualization Extensions | |
US20230221982A1 (en) | Enabling communication between virtual machines and virtual devices by hypervisor-controlled firmware | |
Oikawa et al. | Simultaneous virtual-machine logging and replay | |
Shah | ARMithril: A Secure OS Leveraging ARM's TrustZone Technology. |