CN108351826A - 监视处理器的操作 - Google Patents
监视处理器的操作 Download PDFInfo
- Publication number
- CN108351826A CN108351826A CN201680067222.2A CN201680067222A CN108351826A CN 108351826 A CN108351826 A CN 108351826A CN 201680067222 A CN201680067222 A CN 201680067222A CN 108351826 A CN108351826 A CN 108351826A
- Authority
- CN
- China
- Prior art keywords
- processor
- memory
- state
- sampling interval
- eva
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
要求优先权
本申请要求名称为“MONITORING THE OPERATION OF A PROCESSOR”且于2015年12月17日提交的美国非临时专利申请No. 14/973,238的优先权提交权益。
技术领域
本公开涉及信息处理的领域,并且更具体地,涉及信息处理系统中的验证的领域。
背景技术
出于多种原因,信息处理系统中的处理器的正确操作的验证可以是重要的,该多种原因包括质量保证、可靠性和安全性。已经开发可出于该目的(诸如检查点处理和追踪)而有用的各种技术。这些技术中的一些可以被视为内部的,例如,当处理器自身将某种形式的认证提供给外部代理时。其他技术可以被视为外部的,例如,当处理器外的代理或部件监视处理器的操作时。外部验证可能要求对信号管脚的实质访问和/或处理器与系统其余部分之间的连接。
附图说明
在附图中作为示例而非限制来图示本发明。
图1图示了根据本发明实施例的包括用于监视处理器的操作的支持的系统。
图2图示了根据本发明实施例的包括用于监视的支持的处理器。
图3图示了根据本发明实施例的包括监视处理器的操作的硬件和软件的系统。
图4图示了根据本发明实施例的用于监视处理器的操作的方法。
图5图示了根据本发明实施例的用于验证处理器的存储器访问的方法。
图6图示了根据本发明实施例的外部验证代理。
具体实施方式
描述了用于监视处理器的操作的本发明的实施例。在该描述中,可以阐述许多具体细节(诸如,部件和系统配置),以便提供对本发明的更透彻理解。然而,本领域技术人员将领会,可以在没有这种具体细节的情况下实践本发明。附加地,未详细示出一些公知结构、电路和其他特征,以避免不必要地使本发明模糊。
在以下描述中,对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用指示如此描述的本发明的(一个或多个)实施例可以包括特定特征、结构或特性,但多于一个实施例可以包括该特定特征、结构或特性,并且不是每个实施例都必然包括该特定特征、结构或特性。进一步地,一些实施例可以具有针对其他实施例而描述的特征中的一些、全部或不具有该特征。
如该描述和权利要求中所使用并且除非以其他方式指定,为了描述元素而对序数形容词“第一”、“第二”、“第三”等的使用仅仅指示元素的特定实例或相似元素的不同实例被提及,而不意图暗示如此描述的元素必须在时间上、在空间上、在等级上或以任何其他方式按特定顺序。
而且,可以使用术语“比特”、“标记”、“字段”、“条目”、“指示符”等以描述寄存器、表、数据库或其他数据结构中的储存位置的任何类型或内容,不论以硬件还是软件实现,而不意在将本发明的实施例限于任何特定类型的储存位置或者任何特定储存位置内的任何特定数目的比特或其他元素。可以使用术语“清除”以指示存储逻辑值0或者以其他方式使逻辑值0被存储在储存位置中,并且可以使用术语“设置”以指示存储逻辑值1、全1或某个其他指定值或者以其他方式使逻辑值1、全1或某个其他指定值被存储在储存位置中;然而,这些术语不意在将本发明的实施例限于任何特定逻辑惯例,这是由于可以在本发明的实施例内使用任何逻辑惯例。
而且,如本发明的实施例的描述中所使用,术语之间的“/”字符可以意味着实施例可以包括第一术语和/或第二术语(和/或任何其他附加术语),或者是使用、利用和/或根据第一术语和/或第二术语(和/或任何其他附加术语)来实现的。
如背景技术章节中所描述,已经开发可对于验证信息处理系统中的处理器的正确操作而言有用的技术。本发明的实施例可以提供新途径以供外部代理监视或验证处理器的操作,这可以是期望的,这是因为它们不要求对处理器的所有信号管脚都进行访问。
图1图示了系统100,其为包括用于监视处理器的操作的本发明实施例的信息处理系统。系统100可以表示任何类型的信息处理系统,诸如服务器、台式计算机、便携式计算机、机顶盒、手持设备(诸如平板或智能电话)或者嵌入式控制系统。系统100包括处理器110、系统存储器120、图形处理器130、外围控制代理140、信息储存设备150、处理器160和外部代理170。体现本发明的系统可以包括这些部件以及任何其他部件或其他元件(诸如,外围装置和输入/输出设备)中的任何数目的每一个部件或元件。该系统实施例或任何系统实施例中的任何或所有部件或其他元件可以通过任何数目的总线、点对点或者其他有线或无线接口或连接而彼此连接、耦合或以其他方式通信,除非以其他方式指定。系统100的任何部件或其他部分(不论在图1中示出还是未在图1中示出)可以集成或以其他方式包括在单个芯片(片上系统或SOC)、管芯、衬底或封装上或中。
系统存储器120可以是动态随机存取存储器(DRAM)或者处理器110和/或160可读的任何其他类型的介质。尽管在图1中被示作单个块,但系统存储器120可以在各种配置中包括多个部件。例如,在非一致性存储器访问(NUMA)架构中,可以利用通信总线跨多个处理器插座在逻辑上扩展系统存储器120。
图形处理器130可以包括用于处理针对显示器132的图形数据的任何处理器或其他部件。外围控制代理140可以表示诸如芯片组部件之类的任何部件,该部件包括外围、输入/输出(I/O)或者其他部件或设备,诸如设备142(例如触摸屏、键盘、麦克风、扬声器、其他音频设备、相机、视频或其他媒体设备、网络适配器、运动或其他传感器、用于全球定位或其他信息的接收器等)和/或信息储存设备150,或者通过该部件,该外围、输入/输出(I/O)或者其他部件或设备可以连接或耦合到处理器110和/或160。信息储存设备150可以表示包括任何一种或多种类型的持久性或非易失性存储器或储存器(诸如闪存和/或固态驱动器、磁盘驱动器或光盘驱动器)的任何一个或多个部件。
处理器110可以表示包括以任何组合集成在单个衬底上或封装在单个封装内的一个或多个处理器或处理器核的硬件部件的全部或部分,该处理器或处理器核中的每一个可以包括多个执行线程和/或多个执行核。被表示为处理器110或处于处理器110中的每一个处理器可以是任何类型的处理器,包括通用微处理器(诸如,Intel® Core®处理器族或者来自Intel®公司或另一公司的其他处理器族中的处理器)、专用处理器或微控制器、或者其中可实现本发明实施例的信息处理系统中的任何其他设备或部件。处理器110可以被架构和设计成在受微代码控制的情况下或在不受微代码控制的情况下根据任何指令集架构(ISA)进行操作。
处理器110可以根据任何途径来支持资源的虚拟化。一般地,信息处理系统中的虚拟化的概念允许一个或多个操作系统(各自为“OS”)的多个实例在单个信息处理系统上运行,即使每一个OS被设计成具有对系统及其资源的完全直接控制。典型地,通过使用软件(例如虚拟机监视器或“VMM”)来实现虚拟化,以向每一个OS呈现具有OS可完全且直接控制的包括一个或多个虚拟处理器的虚拟资源的“虚拟机”(“VM”),而VMM维持用于实现虚拟化策略(诸如,在VM之间共享和/或分配物理资源)的系统环境(“虚拟环境”)。
信息处理系统中的处理器可以支持虚拟化,例如通过在下述两个模式中操作——“根”模式,其中在任何虚拟化环境外,软件直接在硬件上运行;以及“非根”模式,其中软件在其所意图的特权级别处运行,但在由在根模式中运行的VMM托管的虚拟环境内。在虚拟环境中,可以拦截某些事件、操作和情形,诸如中断、异常、以及访问有特权的寄存器或资源的尝试,即,使处理器退出虚拟环境(“VM退出”),使得VMM可以操作以例如实现虚拟化策略。处理器可以支持用于建立、进入(“VM进入”)、退出和维持虚拟环境的指令,且可以包括指示或控制处理器的虚拟化能力的寄存器比特或其他结构。
附加地,根据本发明实施例的针对外部监视的支持可以由处理器(诸如,处理器110)使用硬件、微代码、固件和/或如下面描述的那样布置的其他结构中嵌入的电路和/或逻辑的任何组合或者根据任何其他途径来提供,且在图1中被表示为外部验证(EV)硬件/逻辑112,其可以包括虚拟化硬件/逻辑114或被完全实现在虚拟化硬件/逻辑114中以支持虚拟化。由此,虚拟化硬件/逻辑114和/或EV硬件/逻辑112的所有硬件/逻辑可以除了用于外部验证外还出于任何一个或多个目的而存在于处理器110中。
在其中系统100表示多处理器系统的实施例中,处理器100可以表示一个或多个处理器,且可以被称作第一处理器,并且系统200还可以包括由图1中的处理器160表示的第二处理器和/或任何数目的附加处理器。处理器160可以表示任何类型的处理器,包括与处理器110相同、兼容、处于相同族中、共享相同ISA的任何部分和/或以任何方式不同的处理器。处理器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的任何部分和/或以任何方式不同的处理器)或者被配置或可配置(例如,利用固件)成验证一个或多个处理器的操作的控制器或其他硬件代理。
平台检查模块(PCM)180表示软件代理(下面定义),该软件代理要由一个或多个处理器执行以收集反映(一个或多个)处理器的操作的信息和/或与(一个或多个)处理器的操作相关的信息,该信息可以被EVA使用以验证(一个或多个)处理器的操作。软件代理可以是:任何程序、软件模块、软件部件、软件代理、或者可由系统100中的处理器执行或可转译或可转换成可由系统100中的处理器执行的指令序列的其他指令序列,如存储在可由系统100中的处理器读取的任何非易失性介质上;和/或其所有或任何部分,如拷贝到可由系统100中的处理器读取的任何易失性或非易失性介质,诸如系统存储器120和/或处于处理器内或对处理器来说可访问的任何高速缓冲存储器。由此,在各种实施例中,PCM 180可以作为软件或固件而存储在系统100中的任何存储器、储存器和/或部件内,且可以在系统100的操作期间在各种时间处且在各种配置中被整体地或以各种部分移动和/或拷贝到系统100中的任何存储器。例如,PCM 180可以被存储在信息储存设备150中,被整体地或部分地加载到系统存储器120中以供诸如处理器110和/或160之类的一个或多个处理器执行,以及被部分地拷贝到处于借以执行它的处理器中的任何一个或多个内和/或对该处理器中的任何一个或多个来说可访问的一个或多个高速缓冲存储器中。相应地,在各种实施例中,PCM 180的多个实例化可以例如在不同执行核上同时或并发地运行。此外,可以使用不同类型的PCM以监视处理器操作的不同模式(例如,主机模式、系统管理模式)或经分区的系统中的不同执行核。
图2图示了处理器200,其可以表示图1中的处理器110和/或160的实施例或者图1中的处理器110/160的多核处理器实施例的执行核。处理器200可以包括储存单元210、指令单元220、执行单元230、控制单元240和存储器管理单元(MMU)250,其中图1的EV硬件/逻辑112/162的电路、结构和功能可以被包含在这种单元中的任一个内和/或分布在这种单元中的任一个当中。处理器220还可以包括图1中未示出的任何其他电路、结构或逻辑(例如,性能计数器硬件)。
储存单元210可以包括在处理器200内出于任何目的而可使用的任何类型的储存器的任何组合;例如,其可以包括:使用任何存储器或储存器技术而实现的任何数目的可读、可写和/或可读写寄存器、缓冲器和/或高速缓存,其中存储能力信息、配置信息、控制信息、状态信息、性能信息、指令、数据和在处理器200的操作中可使用的任何其他信息;以及可用于访问这种储存器和/或导致或支持与对这种储存器的访问相关联的各种操作和/或配置的电路。在本发明的各种实施例中,储存单元210可以包括一个或多个寄存器或者其他状态储存位置(状态寄存器212),该一个或多个寄存器或者其他状态储存位置的内容可以与保存处理器200的状态(例如,利用状态保存指令224)相关地被拷贝或移动到系统存储器120,并且该一个或多个寄存器或者其他状态储存位置可以与恢复处理器200的状态相关地被从系统存储器120加载或写入。
指令单元220可以包括用于取得、接收、解码、解释、调度和/或处置要由处理器200执行的指令(诸如,VM进入指令222和状态保存指令224)的任何电路、逻辑、结构和/或其他硬件(诸如,指令解码器)。可以在本发明的范围内使用任何指令格式;例如,指令可以包括操作码和一个或多个操作数,其中操作码可以被解码成一个或多个微指令或微操作以供执行单元230执行。可以隐式地、直接地、间接地或根据任何其他途径将操作数或其他参数与指令相关联。VM进入指令222可以表示可借以将控制传送到VM(例如,由VMM针对到新创建的VM中的初始进入或针对到先前创建的VM中的后续进入(即,在先前VM进入和VM退出之后))的任何指令集中的任何一个或多个指令。
执行单元230可以包括用于处理数据且执行指令、微指令和/或微操作的任何电路、逻辑、结构和/或其他硬件,诸如算术单元、逻辑单元、浮点单元、移位器等。执行单元230可以表示任何一个或多个物理上或逻辑上不同的执行单元。
控制单元240可以包括用于控制处理器200的单元和其他元件的操作以及数据在处理器200内、到处理器200中和从处理器200向外的传送的任何微代码、固件、电路、逻辑、结构和/或硬件。控制单元240可以使处理器200执行或参与执行本发明的方法实施例,诸如下面描述的方法实施例,例如通过使用执行单元230和/或任何其他资源使处理器200执行由指令单元220接收到的指令和从由指令单元220接收到的指令导出的微指令或微操作。由执行单元230对指令的执行可以基于存储在储存单元210中的控制和/或配置信息而变化。控制单元240可以包括虚拟化单元242,以为处理器200作准备以拦截在VM中发生的某些事件并导致VM退出。
MMU 250可以包括用于管理系统存储器(诸如,为根据任何期望途径而对物理存储器的虚拟化以及对系统存储器的保护作准备)的任何电路、逻辑、结构和/或其他硬件。在实施例中,MMU 250支持使用虚拟存储器以给软件(包括运行在VM中的软件)提供比系统中的物理存储器(例如,系统存储器120)的地址空间大的用于存储和访问代码和数据的地址空间。处理器200的虚拟存储器空间可以仅受对在处理器上运行的软件来说可用的地址比特的数目限制,而处理器200的物理存储器空间可以被限于系统存储器120的大小。MMU 250支持存储器管理方案(诸如,分页),以在按需的基础上在系统存储器120中且从系统存储器120向外交换执行软件的代码和数据。作为该方案的一部分,软件可以利用由处理器转译成经转译的地址的未转译地址来访问处理器的虚拟存储器空间,处理器可以使用该经转译的地址以访问处理器的物理存储器空间。
相应地,MMU 250可以包括转译后备缓冲器252,其中根据任何已知存储器管理技术(诸如,分页)来存储虚拟、逻辑、线性或其他未转译地址到物理或其他经转译地址的转译。为了执行这些地址转译,MMU 250可以包括页面浏览(page-walk)硬件254,该页面浏览硬件254用于查阅处理器200、系统存储器130、图1中未示出的系统100中的储存位置和/或这些位置的任何组合中存储的一个或多个数据结构。这些数据结构可以包括页面目录、页表以及根据任何已知分页架构的其他分页数据结构。每一个这种页面数据结构以及TLB252可以包括(或者已经关联于条目的个体或组)一个或多个比特或其他指示符,以用于指示和实行可定义或限制对存储器的页面(或其他区)的访问的各种许可(例如,读取、写入或执行)。
图3图示了包括监视处理器的操作的硬件和软件的系统的另一视图。在图3中,系统300包括可表示图1中的系统100的硬件的裸平台硬件310。裸平台硬件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)。因此,本发明实施例可以为第二PCM作准备以驻留在SMRAM中和/或监视对SMRAM的访问。
为了方便,图3将系统存储器空间350示作单个邻接存储器空间。然而,系统存储器空间350可以在逻辑上被组织为、可寻址为和/或以其他方式被分区(例如,使用由MMU 250提供的存储器分区/保护技术)成一个或多个均匀大小的区。在各种实施例中,这种区可以是4K字节页面,因此为了方便,这种区可以在该描述中被称作页面;因此,该描述中对术语“页面”的使用可以意指存储器的任何大小区。
此外,可以保护任何组合中的任何数目的这种区,使得系统存储器空间350的一些部分对某些软件、部件和/或VM来说可访问,但对其他软件、部件和/或VM来说不可访问。例如,系统存储器空间350可以包括PCM存储器360和普通软件栈(OSS)存储器370,其中PCM存储器360包括PCM 362且对PCM 362来说可访问,并且OSS存储器370包括正在由和/或可由系统300中的一个或多个处理器执行的其他软件(OSS 372,例如操作系统和应用软件)且对该其他软件来说可访问。PCM存储器360可由系统360中的一个或多个处理器(例如,处理器320和/或330)访问,使得PCM 362可以由一个或多个处理器(例如,处理器320和/或330)执行,但PCM存储器被保护以避免OSS 372且对OSS 372来说不可访问。而且,PCM存储器360包括追踪信息存储器364和被追踪页面存储器366,二者对EVA 350来说均可访问,其中分别存储追踪信息和被追踪页面,二者均如下面所描述;并且OSS存储器370包括未被追踪页面376,如下面所描述。
在各种实施例中,PCM 362可以在单个VMM或分层或多VMM虚拟化架构中被实现为VMM或管理程序(hypervisor)或者VMM或管理程序的软件或固件模块或部件(因此,PCM可以被称作“主机”或“主机”软件),且因而可能能够将系统存储器340分区成PCM区360并创建和维持VM以包含OSS存储器区370(因此,OSS 372可以被称作“客机”或“客机”软件,这是因为OSS在由PCM托管的虚拟化环境中是客机)。相应地,可以使用由EVA 340生成的中断以导致来自OSS正在其中操作的VM的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)维持或不被该PCM维持的情况下操作。
在框420中,EVA(例如,EVA 340)将第一中断发送到系统中的一个或多个处理器(例如,处理器320和/或330),以发起采样间隔。在各种实施例中,可以使用发起(和/或终止)采样间隔的其他途径。例如,EVA可以指定特定时间或条件(特定物理存储器位置被访问、特定中断或其他事件被观察到等),在该特定时间或条件处,PCM要开始采样间隔和/或配置系统(例如分页结构、调试寄存器、VMCS、系统定时器等)以使得其可以后续如EVA可指示的那样拦截各种事件并执行检查点。
在框422中,第一中断到处理器的递送使处理器的控制(通过VM退出、中断向量、中断处置例程等的任何组合)被传送到PCM。在框424中,PCM通过(例如,使用保存状态指令)将某些寄存器或其他储存位置(例如,状态寄存器212)的状态存储在被预留以供PCM(例如,追踪信息存储器364)使用的系统存储器的区中的第一数据结构中来创建初始检查点。在框426中,PCM将处理器的控制(例如,利用VM进入指令)传送到在VM上运行的OSS(例如,OSS372)中的软件。
在框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对指令进行仿真,EVA可以对指令进行计数,以精确地确定在其处对中断或其他事件进行仿真的指令边界。在实施例中,中断踪迹可以包括对列表,具有指令计数值作为该对的第一成员和中断向量作为该对的第二成员。
在框450中,EVA将第三中断发送到该一个或多个处理器以结束采样间隔。在各种实施例中,可以使用终止采样间隔的其他途径。例如,EVA可以指定PCM要在其处开始采样间隔的特定时间或条件(特定物理存储器位置被访问、特定中断或其他事件被观察到等)。
在框452中,第三中断到处理器的递送使处理器的控制(通过VM退出)被传送到PCM。在框454中,PCM通过(例如,使用保存状态指令)将某些寄存器或其他储存位置(例如,状态寄存器212)的状态存储在追踪信息存储器中的第三数据结构中(或者可替换地,仅存储与采样间隔开始处的状态不同的状态)来创建最终检查点。
在框460中,EVA从追踪信息存储器读取初始检查点信息、追踪信息和/或最终检查点信息,并根据任何已知途径来使用它,以根据该一个或多个处理器的正确和/或期望操作和/或行为的规范来检查该一个或多个处理器是否在采样间隔期间操作。
在框470中,系统可以在虚拟化环境被PCM维持或不被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将第一页面的初始值/内容(例如,在由OSS在采样间隔期间进行的任何改变之前)的拷贝存储在针对PCM而预留且对OSS来说不可访问的存储器(例如,被追踪页面存储器366)中,和/或将初始值/内容与第一条目相关联。在实施例中,存储器踪迹可以包括对列表,具有被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存储器和被追踪页面存储器中的被追踪页面的值/内容之间的失配,则EVA在框586中确定验证失败。取而代之,如果在框584中EVA发现被追踪页面存储器中的所有踪迹页面的值/内容匹配于OSS存储器,则EVA在框588中确定处理器的存储器访问的验证通过。
在本发明的各种实施例中,图4和5中图示的方法可以按不同的次序、在所图示的框被组合或省略的情况下、在附加框被添加的情况下或者在对经重新排序、经组合、被省略或附加的框进行组合的情况下执行。例如,采样间隔可以基于预定时间、事件和/或持续时间而不是来自EVA的中断而开始或结束。此外,本发明的方法实施例不限于方法400、方法500或其变型。
作为方法500的基于页面的存储器追踪的可替换方案(或者除此之外),PCM可以使用子页面策略(SPP)以提供对页面的具体区何时被写入以及因而仿真何时要被执行的更具粒度的指示。例如,SPP可以提供高速缓存线粒度,该高速缓存线粒度将对应于拦截存储器总线的存储器追踪逻辑的粒度。
在各种实施例中,还可以使用性能计数器和性能监视器中断来监视TLB未命中。例如,可以使用性能计数器阈值以指示页面浏览何时处于进行中,以使EVA能够对分页结构访问、访问/脏比特辅助等进行仿真。
在各种实施例中,可以通过限制读/写访问来监视图形和/或其他设备的存储器访问以触发可由PCM拦截的中断。
本文未描述的许多其他方法实施例(以及装置、系统和其他实施例)在本发明的范围内是可能的。
本发明的多种实施例可以包括用于监视多个处理器/核(例如,处理器110和处理器160)的操作的多种技术。在各种实施例中,EVA和/或PCM可以通过使OSS指令流由第一处理器/核在第一采样间隔期间执行、使相同或不同的OSS指令流由第二处理器/核在第二采样间隔期间执行等,来使每一个处理器/核分别被监视和/或验证。例如,在采样间隔发起时,EVA可以将处理器/线程与中断进行同步以使得每一个处理器的控制传送到PCM,或者PCM可以将处理器/线程与处理器间中断进行同步。其他处理器/线程可以被保持为在每一个采样间隔期间空闲(例如,处于低功率状态中)。
可替换地,在各种实施例中,PCM可以在采样间隔中在OSS指令流中导致特定指令边界处的VM退出(例如,使用性能计数器以对所执行/所引退的指令进行计数),以便将指令流划分或分区成处理器/核之间或当中的不同线程,或者根据处理器/核之间或当中的不同线程来对指令流进行划分或分区,其中定义在其处指令流要被划分的点和/或要由每一个处理器/核执行的指令流的部分(调度、线程和指令计数对的列表等)的途径是确定性的,由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的全部或部分可以以存储在处理器可读的介质上的软件或固件指令体现,该软件或固件指令在由处理器执行时使处理器执行本发明实施例。而且,本发明的方面可以以存储在机器可读介质上的数据体现,其中该数据表示可用于制造处理器的全部或部分的设计或其他信息。
因此,已经描述用于监视处理器的操作的本发明的实施例。尽管已经描述了且在附图中示出了某些实施例,但应当理解,这种实施例仅仅说明而非限制较宽的发明,并且本发明不限于所示出和描述的具体构造和布置,这是由于本领域技术人员在研究了本公开后可以想到各种其他修改。在其中增长迅速并且进一步提升不容易被预见到的诸如此类的技术领域中,在不脱离本公开的原理或所附权利要求的范围的情况下,所公开的实施例可以如通过实现技术提升而促进的那样在布置和细节方面可容易修改。
Claims (20)
1.一种系统,包括:
处理器,包括为所述处理器作准备以在根模式中和在非根模式中操作的虚拟化逻辑;以及
处于所述处理器外部的硬件代理,基于要由软件代理收集的追踪信息来验证在所述非根模式中所述处理器的操作,所述软件代理要在所述根模式中由所述处理器执行。
2.如权利要求1所述的系统,进一步包括:系统存储器,其中要存储所述追踪信息。
3.如权利要求2所述的系统,其中所述非根模式中所述处理器的操作包括由虚拟机对普通软件栈的执行。
4.如权利要求3所述的系统,其中所述处理器还包括:存储器管理单元,为将所述系统存储器分区成多个存储器区作准备,其中所述追踪信息要被存储在对所述硬件代理来说可访问且对所述虚拟机来说不可访问的所述多个存储器区中的一个或多个中。
5.如权利要求4所述的系统,其中所述处理器还包括状态储存器,其中所述追踪信息要包括所述状态储存器的初始检查点和所述状态储存器的最终检查点。
6.如权利要求5所述的系统,其中所述硬件代理要从基于所述初始检查点的初始状态到最终状态对由所述处理器对所述普通软件栈的执行进行仿真,并将所述最终状态与所述最终检查点进行比较。
7.如权利要求6所述的系统,其中所述软件代理要与采样间隔的发起相关地记录初始检查点信息并与采样间隔的终止相关地记录最终检查点信息。
8.如权利要求7所述的系统,其中所述硬件代理要提供用于发起所述采样间隔的第一信号并提供用于终止所述采样间隔的第二信号。
9.一种方法,包括:
由软件代理监视由处理器上的虚拟机对普通软件栈的执行;
由所述软件代理将追踪信息存储在系统存储器中;以及
由处于所述处理器外部的硬件代理使用所述追踪信息来验证所述处理器的操作。
10.如权利要求9所述的方法,其中所述软件代理在所述处理器的根模式中执行。
11.如权利要求10所述的方法,其中验证包括:将实际最终状态与所仿真的最终状态进行比较。
12.如权利要求11所述的方法,进一步包括:由所述软件代理存储实际初始状态的拷贝。
13.如权利要求12所述的方法,进一步包括:由所述硬件代理基于由所述处理器对所述普通软件栈的执行的仿真来修改所述实际初始状态的拷贝以生成所仿真的最终状态。
14.如权利要求13所述的方法,进一步包括:由所述软件代理与采样间隔的发起相关地将多个存储器区标记为只读,以与由所述普通软件栈进行的尝试相关地导致虚拟机退出,以便修改所述多个存储器区中的存储器区。
15.如权利要求14所述的方法,进一步包括:由所述软件代理响应于所述虚拟机退出而将所述存储器区添加到被追踪存储器区的列表。
16.如权利要求15所述的方法,其中所述实际初始状态的拷贝包括在所述采样间隔期间被在所述虚拟机上执行的普通软件栈修改之前所述存储器区的拷贝。
17.一种装置,包括:
存储器读电路,从耦合到处理器的系统存储器读取追踪信息,所述追踪信息要由所述处理器上的虚拟机监视器在所述处理器上的虚拟机上的客机软件的执行的采样间隔期间收集;
执行电路,使用所述追踪信息来对所述客机软件的执行进行仿真,以生成所仿真的最终状态;以及
比较电路,将所仿真的最终状态与实际最终状态进行比较;
其中所述装置处于所述处理器外部。
18.如权利要求17所述的装置,进一步包括:中断生成电路,生成用于发起所述采样间隔的对所述处理器的第一中断和用于终止所述采样间隔的对所述处理器的第二中断。
19.一种存储指令的有形处理器可读介质,所述指令在由所述处理器执行时使所述处理器:
监视由所述处理器上的虚拟机进行的执行;以及
将追踪信息存储在系统存储器中,所述追踪信息要由处于所述处理器外部的硬件代理使用以验证所述处理器的操作。
20.如权利要求19所述的有形处理器可读介质,其中所述指令要在所述处理器的根模式中执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210308352.8A CN114625616A (zh) | 2015-12-17 | 2016-11-17 | 监视处理器的操作 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/973,238 US9858167B2 (en) | 2015-12-17 | 2015-12-17 | Monitoring the operation of a processor |
US14/973238 | 2015-12-17 | ||
PCT/US2016/062575 WO2017105758A1 (en) | 2015-12-17 | 2016-11-17 | Monitoring the operation of a processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210308352.8A Division CN114625616A (zh) | 2015-12-17 | 2016-11-17 | 监视处理器的操作 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351826A true CN108351826A (zh) | 2018-07-31 |
CN108351826B CN108351826B (zh) | 2022-04-15 |
Family
ID=59057372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067222.2A Active CN108351826B (zh) | 2015-12-17 | 2016-11-17 | 监视处理器的操作 |
CN202210308352.8A Pending CN114625616A (zh) | 2015-12-17 | 2016-11-17 | 监视处理器的操作 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210308352.8A Pending CN114625616A (zh) | 2015-12-17 | 2016-11-17 | 监视处理器的操作 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9858167B2 (zh) |
CN (2) | CN108351826B (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 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010014109A1 (en) * | 2008-08-01 | 2010-02-04 | Hewlett-Packard Development Company, L.P. | Verifying firmware |
US20100153924A1 (en) * | 2008-12-16 | 2010-06-17 | Cadence Design Systems, Inc. | Method and System for Performing Software Verification |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
US20100229158A1 (en) * | 2009-03-06 | 2010-09-09 | Fujitsu Limited | Computer-readable recording medium storing verification support program, information processor, and verification support method |
US7802110B2 (en) * | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
US20120066551A1 (en) * | 2010-09-15 | 2012-03-15 | Alexandre Palus | Run-time Verification of CPU Operation |
US20140074451A1 (en) * | 2011-10-31 | 2014-03-13 | International Business Machines Corporation | Verifying processor-sparing functionality in a simulation environment |
US8719814B2 (en) * | 2007-02-15 | 2014-05-06 | Oracle America, Inc. | Apparatus and method for monitoring software installation performance |
Family Cites Families (12)
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 |
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 |
JP4864817B2 (ja) * | 2007-06-22 | 2012-02-01 | 株式会社日立製作所 | 仮想化プログラム及び仮想計算機システム |
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 |
US9747187B2 (en) * | 2010-10-27 | 2017-08-29 | International Business Machines Corporation | Simulating black box test results using information from white box testing |
RU2627927C2 (ru) * | 2011-09-25 | 2017-08-14 | Теранос, Инк. | Системы и способы многостороннего анализа |
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 CN CN201680067222.2A patent/CN108351826B/zh active Active
- 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 WO PCT/US2016/062575 patent/WO2017105758A1/en active Application Filing
-
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
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802110B2 (en) * | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
US8719814B2 (en) * | 2007-02-15 | 2014-05-06 | Oracle America, Inc. | Apparatus and method for monitoring software installation performance |
WO2010014109A1 (en) * | 2008-08-01 | 2010-02-04 | Hewlett-Packard Development Company, L.P. | Verifying firmware |
US20100153924A1 (en) * | 2008-12-16 | 2010-06-17 | Cadence Design Systems, Inc. | Method and System for Performing Software Verification |
US20100229158A1 (en) * | 2009-03-06 | 2010-09-09 | Fujitsu Limited | Computer-readable recording medium storing verification support program, information processor, and verification support method |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
US20120066551A1 (en) * | 2010-09-15 | 2012-03-15 | Alexandre Palus | Run-time Verification of CPU Operation |
US20140074451A1 (en) * | 2011-10-31 | 2014-03-13 | International Business Machines Corporation | Verifying processor-sparing functionality in a simulation environment |
Also Published As
Publication number | Publication date |
---|---|
CN114625616A (zh) | 2022-06-14 |
WO2017105758A1 (en) | 2017-06-22 |
TWI799953B (zh) | 2023-04-21 |
CN108351826B (zh) | 2022-04-15 |
US20170177460A1 (en) | 2017-06-22 |
US9858167B2 (en) | 2018-01-02 |
DE112016005823T5 (de) | 2018-08-30 |
US20180157575A1 (en) | 2018-06-07 |
TWI738680B (zh) | 2021-09-11 |
TW202147116A (zh) | 2021-12-16 |
US10599547B2 (en) | 2020-03-24 |
US20200257609A1 (en) | 2020-08-13 |
TW201730767A (zh) | 2017-09-01 |
US11048588B2 (en) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048588B2 (en) | Monitoring the operation of a processor | |
CN107357666B (zh) | 一种基于硬件保护的多核并行系统处理方法 | |
AU2009266333B2 (en) | Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor | |
JP5969550B2 (ja) | パフォーマンスカウンタの仮想化 | |
US8656222B2 (en) | Method and system for recording a selected computer process for subsequent replay | |
CN104049948B (zh) | 指令仿真处理器、方法和系统 | |
US20090249357A1 (en) | Systems and methods for inter process communication based on queues | |
EP3752922B1 (en) | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches | |
US10430221B2 (en) | Post-copy virtual machine migration with assigned devices | |
US10268595B1 (en) | Emulating page modification logging for a nested hypervisor | |
US20230342282A1 (en) | Memory page markings as logging cues for processor-based execution tracing | |
US11544201B2 (en) | Memory tracing in an emulated computing system | |
Nanavati | Operator, number please: mediating access to shared resources for efficiency and isolation | |
Stratikopoulos | Low Overhead & Energy Efficient Storage Path for Next Generation Computer Systems | |
Park et al. | Cooperative kernel: online memory test platform using inter-kernel context switch and memory isolation | |
Oikawa et al. | Simultaneous virtual-machine logging and replay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |