CN1936847A - 上下文状态管理技术 - Google Patents
上下文状态管理技术 Download PDFInfo
- Publication number
- CN1936847A CN1936847A CNA2006101399067A CN200610139906A CN1936847A CN 1936847 A CN1936847 A CN 1936847A CN A2006101399067 A CNA2006101399067 A CN A2006101399067A CN 200610139906 A CN200610139906 A CN 200610139906A CN 1936847 A CN1936847 A CN 1936847A
- Authority
- CN
- China
- Prior art keywords
- state
- processor
- information
- context
- clauses
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
一种用于管理上下文状态信息的技术。至少一个实施例包括用于存储多个机器上下文状态信息的多个保存区片段。一个实施例包括至少一个使用中比特矢量,以指示所述多个机器上下文信息的状态。
Description
技术领域
本发明的实施例涉及微处理器架构,尤其涉及在微处理器内管理上下文状态信息。
背景技术
现代微处理器可执行要求改变上下文状态的许多功能。例如,微处理器可当在诸如软件“线程”的指令组之间进行切换时改变上下文状态信息。例如,在软件线程之间改变时,一组指令的上下文状态可保持于一存储器位置且另一组指令的上下文状态可从存储器恢复并载入微处理器。
参考软件线程,“上下文状态”可表示处理器内上下文切换之间要保持的每个软件线程的状态的一部分。上下文状态可存入处理器架构寄存器、控制寄存器或诸如存储器的其它存储区。上下文状态通常由大量比特表示,这些比特的值定义了特殊的上下文状态。
术语“上下文切换”通常表示从一个处理器执行状态变到另一个,诸如软件线程切换。上下文切换通常由操作系统或由用户的程序来执行。例如,上下文切换可因调用用户程序内的子例程而发生,其中当发生对子例程的调用时调用程序的上下文被保存于诸如“堆栈”的存储区中,且当从所调用的子例程返回时从该存储区恢复。
通常,由于存储器中上下文状态保存区域的组织结构以及与这些保存区域被寻址的粒度大小,以可包括在给定时间上所需的更多上下文状态信息的组将上下文状态保存在存储器中或恢复到处理器寄存器。结果,每次从存储器恢复上下文状态时,会替换大量不必要的处理器状态信息。例如,操作系统或用户程序可仅请求属于处理器内执行的特殊软件线程或其它进程的上下文状态信息的子集。然而,现有技术的上下文状态保存和恢复机制会要求属于一线程或其它进程的所有上下文状态被恢复和/或保存,以检索属于所关心的线程或进程的任何上下文状态信息。
因此,现有技术的上下文状态管理技术导致性能和资源的低效率。
附图说明
附图中,作为示例而非限制来说明本发明的实施例,图中相同的标号表示相似的元件,其中:
图1是示出根据本发明一个实施例的具有保存区域片段的保存区域的示图。
图2是示出根据本发明一个实施例的使用保存状态片段的操作的示图。
图3示出了其中使用中的比特矢量被用于缓和空恢复和空保存操作的至少一个实施例的操作。
图4是示出根据本发明一个实施例的指示和检测保存区片段内的错误的技术的流程图。
图5是其中可使用本发明的至少一个实施例的共享总线计算机系统。
图6是其中可使用本发明的至少一个实施例的点对点计算机系统。
具体实施方式
本发明的实施例涉及微处理器架构。更具体地,本发明的实施例涉及管理处理器上下文状态。本发明的至少一个实施例将扩展功能引入某些现有技术的上下文状态管理技术,以便在读取和更新微处理器内的上下文状态信息时提升资源和性能效率。
操作系统和/或用户程序通常使用诸如动态随机存取存储器(DRAM)的存储器结构中的区域(“保存区”),用于在上下文切换时存储上下文状态。在其它现有技术的系统中,诸如异常处理机的一些软件例程可按需要(动态地)在诸如堆栈的存储器存储区内分配该保存区。指令集架构通常定义一个获得多个指令来处理存储器中上下文状态的存储或者从存储器的上下文状态的恢复。例如,在一个指令集架构中,两个指令(例如,“FXSAVE”和“FXRSTOR”)可用于分别地将上下文状态存入存储器并从存储器向处理器的寄存器恢复上下文状态。在其它指令集架构中,可使用两个以上或以下的指令来管理上下文状态信息。
在本发明部分的至少一个实施例中,定义保存区的“片段”或“分段”,它们可被初始化并被用于在不初始化、保存或恢复整个保存区的情况下存储和访问上下文状态信息。在本发明的一个实施例中,允许访问上下文状态保存区的片段节省了用于更新、初始化或读取上下文状态信息所必需的时间量和存储区。
此外,在本发明的至少一个实施例中,提供保存区内的“使用中”比特或使用中比特组(“比特矢量”),以指示特定的保存区片段或保存区片段组是否包含有效信息。使用中的比特或比特矢量可通过消除在从存储器向处理器寄存器恢复上下文状态后进行有效性检查的需要而进一步提升上下文状态管理效率。相反,使用中的比特或比特矢量可简单地被读取,确定相应的片段是否包含有效信息。
本发明的实施例还可包括一种机制,用于在片段内保存包含的用于确定该片段是否已被初始化的上下文状态信息之前确定保存区片段是否已被初始化。在一个实施例中,可通过读取与该片段相关联的初始化比特来检查保存区片段以确定它是否已被初始化。更具体地,在本发明的一个实施例中,使用中比特或比特矢量可用于确定特殊片段是否已被初始化。在一个实施例中,上下文状态由将一个或多个片段写为初始值的软件例程(例如“微码”)初始化,而在其它实施例中,处理器可包括用于初始化上下文状态的逻辑。
这里将描述各种实施例的其它特点,其中包括用于清除上下文状态信息的保存区片段的机制、用于检测和处理上下文状态保存区片段内的错误的机制、以及用于启用和管理其状态在一个或多个上下文状态保存区片段中反映的附加架构特征的机制。具体地,将描述关于监视处理器的各种性能方面的至少一个架构特征,它们可使用这里所述的各种上下文状态管理特征和技术。
此外,本发明的至少一个实施例可包括模块架构,用以允许实现扩展数量的上下文状态保存区片段以存储与处理器的其它特征相关的上下文信息。此外,在一个实施例中,扩展数量的上下文状态保存区片段和相应的上下文状态信息可按对处理器正执行的操作系统透明的方式被包括。换言之,至少一个实施例包括上下文状态管理技术,该技术不必涉及在使用本发明实施例的处理器上对正在执行的操作系统的修改或对该操作系统的通知。
图1示出了根据本发明一个实施例的包括保存区片段的保存区。特别是,保存区100是被分成“n”个片段的512字节的缓冲器。在图1所示的实施例中,每个片段是512/n个字节,但在其它实施例中根据存储区的大小以及片段数量,每个片段可以更大或更小。图1所示的每个片段可存储不同类型的上下文状态信息,其示例将在以下进一步描述。在一个实施例中,保存区100包括首部区105,它包含使用中比特矢量来指示每个片段的状态信息。
在一个实施例中,保存区片段表示其中可保存、初始化和恢复上下文状态信息的保存区中存储的最小粒度尺寸。在至少一个实施例中,可相互独立地初始化、使用和管理保存区片段。此外,当需要附加上下文状态的新架构特征被添加到图1的保存区相对应的处理器时,可相应地添加新的保存区片段。然而,在一些实施例中,单个保存区片段可包括与一个或多个特征(包括添加的特征)相关联的上下文状态信息。
保存区片段还可被复位到初始状态而不影响其它片段的状态,诸如在恢复操作、错误恢复操作期间。例如,在一个实施例中,如果执行恢复操作,未由恢复操作更新的所有处理器上下文状态都被设定为初始化状态。该初始化的处理器上下文状态随后可存储回它们相应的保存区片段。
根据所使用的计算机系统的需要,可以实现用于图1所示的保存区片段的许多示例。在本发明的一个实施例中,可以分别避免将状态上下文保存到保存区片段及从保存区片段恢复状态上下文,即通过确保上下文状态在上下文保存操作和上下文恢复操作之间或当处理器被复位时被置于初始化状态而处于初始化状态中。
例如,图2示出了使用至少一个保存区片段存储信息以指示相应的上下文状态信息(“状态元素”)何时在使用中或另外有效的操作。特别地,图2示出了保存区200中存储的三个上下文状态区片段201、203、205内的三个不同的上下文状态,以及根据时间将它们恢复入机器状态210。参考图2,在图2所示的机器上下文状态210的实例中初始化的上下文状态由“I”表示,而在使用中的上下文状态实例由“U”表示。
在时间实例“1”处,机器上下文状态处于由“I”表示的初始化状态,而在时间实例“2”,机器上下文经由处理器中执行的指令被更改为由“U”表示的第一上下文状态。在时间实例“3”处,第一上下文状态被存储到上下文状态区片段201,且在时间实例“4”处相应的机器上下文状态被再次初始化或“清零”,由“I”表示。在时间实例“5”,将第二上下文状态从保存区片段203恢复到机器状态且机器状态再次在使用中,由“U”指示。在时间实例“6”,机器状态再次经由处理器中执行的指令被更改,且在时间实例“7”,将机器状态存储到上下文保存区片段203。在时间实例“8”,机器上下文状态再次被初始化到初始状态值,且机器上下文状态在时间实例“8”被标记为不使用。类似地,在时间实例“9”,执行保存区片段205中存储的上下文状态的空恢复,该操作不用新状态信息更新机器上下文状态。在时间实例“10”,处理器不用任何新信息更新机器上下文状态,因而在时间实例“11”,执行空存储以将机器上下文状态(是初始化状态)存回保存区片段205。
在本发明的一个实施例中,可通过检测与被保存或恢复的上下文状态相对应的“使用中”比特的状态来替换空保存操作(即,将不使用的、初始化的或另外无效的机器上下文保存到保存区片段的那些操作)和/或空恢复操作(即,从保存区片段将不使用的、初始化的或另外无效的上下文状态恢复到机器状态的那些操作)。例如,在一个实施例中,使用中比特矢量在保存区内维持,以指示一个或多个保存区片段内的上下文状态信息是否包含不使用或另外无效的信息用于在上下文状态不使用或另外无效的情况下使上下文状态不必从保存区片段读出到机器状态。
同样,使用中比特矢量可协同处理器内的机器状态加以维护以指示机器状态内的上下文状态信息是否是不使用的或另外无效的,以使在上下文状态不使用或另外无效的情况下该上下文状态不必从机器状态存入保存区片段。在一些实施例中,可为保存区片段和机器状态两者维持一使用中的比特矢量,而在其它实施例中,可为保存区片段和机器状态中的任一个或两者维持一个使用中比特矢量。
在一个实施例中,一个或多个指令可用于更新使用中的比特矢量,以指示与特殊保存区片段相对应的上下文状态信息是否在使用中。例如,在一个实施例中,一个指令(例如,一个指令集架构中的“STMXCSR”)可由处理器执行,以设定该使用中比特矢量来指示与一个或多个保存区片段相对应的状态信息当前在使用中或者指示该保存区片段另外包含有效数据。
图3示出了一个实施例的操作,其中为保存区片段和机器状态维持使用中的比特矢量。图3类似于图2,区别在于保存区包含条目数等于保存区片段数的使用中比特矢量320。在一个实施例中,每个使用中矢量320条目包含一个比特用于指示例如当初始化片段时相应的保存区片段是否包含有效信息或者它是否包含无效信息。类似地,为机器状态维持一使用中比特矢量325,以指示例如当将机器状态置入初始状态时与特殊保存区片段相对应的机器状态是否包含有效信息或者与特殊保存区片段相对应的机器状态是否是无效的。
在图3所示的实施例中,空保存和空恢复操作是不必要的,因为在执行空保存或空恢复操作之前程序或逻辑可首先检测状态信息是有效的还是无效的。在一个实施例中,如果空保存或空恢复操作对应于无效的状态信息,则不需要执行任何空保存或空恢复操作,节省了操作周期。
在本发明的一个实施例中,当监视微处理器内的各种事件或“情况”时,分别地将上下文状态信息存储到存储区片段或从存储区片段恢复上下文状态信息。例如,在一个实施例中,在情况专用组或“信道”中维持机器状态。信道可保存配置信息,包括处理器内要监视的条件(“触发”条件),以及应响应于其采取的动作,诸如异步地将控制转移到软件线程内的某一指令地址。此外,在一个实施例中,信道可以是有效或无效的,且如果信道不是有效的,则该信道可以被保存或恢复或者不可以被保存或恢复。
在一个实施例中,通过执行一指令来编程信道信息,该指令可使用诸如32或64位寄存器的寄存器中存储的输入。除了信道信息之外,上下文状态信息还可包括可应用于一个或多个信道的首部信息。根据一个实施例,以下示出了用于两个信道的上下文状态信息和相应的首部信息,它们可存储在存储区片段中或可恢复到处理器上下文状态:
内容描述 | 偏离字节 |
首部 | 0-7 |
产生触发 | 8-15 |
保留 | 16-31 |
信道0 | 32-63 |
信道0配置信息 | 32-39 |
信道0配置信息 | 40-47 |
信道0配置信息 | 48-55 |
信道0配置信息 | 56-63 |
信道1 | 64-95 |
信道1配置信息 | 64-71,72-79,80-87,88-95 |
上表中示出的88个字节的上下文状态信息包括与其上下文状态信息分别包含在比特32-63和64-95中的两个信道有关的0-7比特的首部信息。在一个实施例中,除其它信息之外,首部信息可包括每个信道的使用中比特。此外,以上上下文状态信息包括8-15比特中的指令指针和比特16-31中的保留字段。
在一些实施例中,每个保存区片段可具有相应的有效性指示符,用于指示错误数据是否被存入相应的保存区片段,从而允许响应于此采取各种动作。例如,在一个实施例中,响应于在保存区片段内检测到错误,软件、硬件逻辑或其某一组合可实现一算法来执行各种操作,包括以下的一个或多个:1)初始化包含错误的保存区片段,2)初始化与一些或全部保存区片段相对应的处理器状态信息。此外,在一个实施例中,可响应于检测到上下文状态首部字段或除保存区片段外的其它字段内的一区域来初始化处理器状态。
在一个实施例中,当保存区片段被恢复到处理器状态时,可能检测到错误。响应于检测到错误的情况,使用中比特可指示该片段无效,且因此使用中比特随后在该片段被存储到存储器时被清零。因此,在一个实施例中,从使用中比特的观察者的角度或许不能区别片段是否由于错误或由于缺少初始化而被指示为是无效的。
在一个实施例中,使用中比特矢量被用于反映每个保存区片段中存储的状态信息的有效性。例如,在每个保存区片段对应于特别事件监视信道的情况中,如以上讨论的表中所示的,首部信息可包含使用中比特矢量,其比特各自指示保存区片段中保存的相应一组信道信息的有效性。指示保存区片段是否包含错误可帮助软件或处理器硬件确定是否恢复和后续使用包含在其中的上下文状态信息。
图4是示出根据本发明一个实施例的当在保存区片段内指示和检测到错误时可执行的各种操作的流程图。在操作401,保存区片段内出现的错误由使用中比特矢量中的相应比特反映。在一个实施例中,使用中比特矢量可在与一定数目的事件监视信道相对应的保存区的首部字段内。在其它实施例中,使用中比特矢量可与同各种软件线程相对应的保存区片段一起被存储。
在操作405,在从保存区片段向机器状态恢复上下文状态信息之前检测使用中比特。如果在410处在保存区片段中检测到错误,则在操作415,包含错误的保存区片段内存储的上下文状态信息不被恢复到机器状态。另外地,在操作420,将检测使用中比特的保存区片段内存储的上下文状态信息恢复到机器状态。在一个实施例中,可将使用中比特与掩码字段进行比较,以检测相应保存区片段内的错误,而在其它实施例中可使用其它检测方法。
在一些实施例中,保存、恢复和/或初始化操作(例如指令)可使用掩码字段来更改或读取保存区片段的内容。例如,在一个实施例中,其条目对应于使用中比特矢量条目的掩码字段可以是布尔逻辑操作(例如,XOR、AND、OR)的操作数,其结果可确定使用中比特矢量的状态并由此确定各种片段的有效性。
图5示出了可使用本发明的一个实施例的前端总线(FSB)计算机系统。处理器505从一级(L1)高速缓冲存储器510和主存储器515访问数据。在本发明的其它实施例中,高速缓冲存储器可以是二级(L2)高速缓存或计算机系统存储器分层结构中的其它存储器。此外,在一些实施例中,图5的计算机系统可同时包含L1高速缓存和L2高速缓存。
图5的处理器内示出的是机器状态的存储区域506。在一个实施例中,存储区域可以是一组寄存器,而在其它实施例中,该存储区域可以是其它存储器结构。此外,根据一个实施例,图5中示出了保存区片段的存储区域507。在其它实施例中,保存区片段可以在其它装置或存储器结构中。处理器可具有任意数量的处理核心。然而,本发明的其它实施例可在系统内的其它装置内实现,诸如分开的总线代理;或者以硬件、软件或其组合分布在整个系统中。
主存储器可以在各种存储器源中实现,诸如动态随机存取存储器(DRAM)、硬盘驱动器(HDD)520或包含各种存储装置和技术的经由网络接口530而远离计算机系统的存储器源。高速缓冲存储器可位于处理器内或靠近处理器,诸如在处理器的本地总线507上。
此外,高速缓冲存储器可包含相对较快的存储器单元,诸如六个晶体管(6T)单元或者近似相等或更快访问速度的其它存储器单元。图5的计算机系统可以是总线代理的点对点(PtP)网络,诸如微处理器,它们经由专属于PtP网络上的每个代理的总线信号进行通信。图6示出了在点对点(PtP)配置中安排的计算机系统。特别地,图6示出了一种系统,其中处理器、存储器和输入/输出设备通过一些点对点接口互连。
图6的系统还可以包括若干处理器,为清楚起见仅示出其中的两个处理器670和680。处理器670和680可各自包括本地存储器控制器集线器(MCH)672、682,以与存储器22、24相连。处理器670、680可经由点对点(PtP)接口650使用PtP接口电路678和688交换数据。处理器670、680可各自经由单独的PtP接口652、653使用点对点接口电路676、694、686、698与芯片组690交换数据。芯片级690还可经由高性能图形接口639与高性能图形电路638交换数据。本发明的实施例可位于具有任意数量处理核心的任一处理器内或者在图6的每个PtP总线代理内。
然而,本发明的其它实施例可存在于其它电路、逻辑单元或图6系统内的设备中。此外,在本发明的其它实施例中,可以被分布在遍及图6所示的若干电路、逻辑单元或设备中。
本发明实施例的各个方面可使用互补金属氧化物半导体(CMOS)电路或逻辑装置(硬件)来实现,同时其它方面可使用机器可读介质上存储的指令(软件)来实现,这些指令在由处理器执行时将使得处理器执行一方法以实施本发明的实施例。此外,本发明的一些实施例可单独用硬件实行,而其它实施例可单独用软件实行。
虽然已参考说明性实施例描述了本发明,但该描述并非旨在是限制性的。本领域熟练技术人员显而易见的说明书实施例和其它实施例的各种修改都被认为在本发明的精神和范围内。
Claims (30)
1.一种装置,包括:
包括多个片段用于存储多个处理器上下文状态信息的保存区,其中所述多个片段的每一个中存储的上下文状态信息可独立于所述多个片段中的其它片段中存储的其它上下文状态信息被恢复到处理器上下文状态。
2.如权利要求1所述的装置,其特征在于,所述保存区还包括使用中比特矢量。
3.如权利要求2所述的装置,其特征在于,所述使用中比特矢量的每个条目指示相应片段内存储的信息是否要被用作处理器上下文状态。
4.如权利要求2所述的装置,其特征在于,所述使用中比特矢量的每个条目是要指示相应片段内存储的信息是否是有效信息。
5.如权利要求2所述的装置,其特征在于,所述使用中比特矢量的每个条目是要指示相应片段内存储的信息是否在使用中。
6.如权利要求1所述的装置,其特征在于,所述多个片段的每一个中存储的上下文状态信息可独立于在所述多个片段的其它片段中存储其它上下文状态信息而被保存到一片段。
7.如权利要求5所述的装置,其特征在于,如果所述使用中比特矢量条目中的任一个指示一错误,则与错误相对应的片段内存储的上下文状态信息将不被恢复到处理器的机器上下文状态。
8.如权利要求2所述的装置,其特征在于,在将所述多个片段内的上下文状态信息恢复到所述处理器的机器上下文状态之前,要检查所述使用中比特矢量条目的状态。
9.一种方法,包括:
检查包括与多个保存区片段相对应的多个条目的使用中比特矢量;
确定所述使用中比特矢量内的条目处于第一状态还是第二状态;
仅当所述条目处于所述第一状态时,将与所述条目相对应的所述多个片段之一内的上下文状态信息恢复到处理器的机器上下文状态;
如果所述条目处于所述第二状态,则忽略与所述条目相对应的所述多个片段之一内的上下文状态信息。
10.如权利要求9所述的方法,其特征在于,所述条目指示所述多个片段之一内的所述相应上下文状态信息是否有效。
11.如权利要求9所述的方法,其特征在于,还包括确定所述多个片段之一内的相应上下文状态信息是否错误,且如果是这样,则执行由以下操作构成的操作组中的任一个或全部:初始化包含错误的所述多个片段中的一个,初始化与包含错误的所述多个片段中的一些或全部相对应的处理器状态信息,初始化与包含错误的所述多个片段中的一个或多个相对应的首部信息。
12.如权利要求9所述的方法,其特征在于,还包括如果所述条目处于所述第二状态,则将与所述条目相对应的所述多个片段之一内的上下文状态信息置入初始化状态。
13.如权利要求9所述的方法,其特征在于,在将所述多个片段内的任意上下文状态信息恢复到所述处理器的机器状态之前,检查所述使用中比特矢量。
14.如权利要求9所述的方法,其特征在于,通过将其中的所述条目与比特掩码字段进行比较来检查所述使用中比特矢量。
15.如权利要求9所述的方法,其特征在于,还包括在将所述处理器的机器状态保存到所述多个片段之一前,检查第二使用中比特矢量。
16.如权利要求15所述的方法,其特征在于,仅当所述第二使用中比特矢量的条目指示机器状态有效时,将所述处理器的机器状态保存到所述多个片段之一。
17.如权利要求15所述的方法,其特征在于,仅当所述第二使用中比特矢量的条目指示机器状态无效时,将所述处理器的机器状态保存到所述多个片段之一。
18.一种系统,包括:
处理器,用于存储多个机器状态信息和其条目各自对应于所述多个机器状态信息之一的第一使用中比特矢量;
存储器,用于存储包含多个片段的保存区,用于存储多个处理器机器状态信息及其条目各自对应于所述多个片段之一的第二使用中比特矢量。
19.如权利要求18所述的系统,其特征在于,机器状态信息对应于信道状态信息,该信息包括用于指示其中将监视所述处理器操作的各个方面的条件的触发信息。
20.如权利要求18所述的系统,其特征在于,所述第二使用中比特矢量的每个条目都指示相应片段内存储的信息是否要被用作所述处理器的机器上下文状态。
21.如权利要求18所述的系统,其特征在于,所述第二使用中比特矢量的每个条目是要指示相应片段内存储的信息是否是有效信息。
22.如权利要求18所述的系统,其特征在于,所述第二使用中比特矢量的每个条目是要指示相应片段内存储的信息是否包含错误。
23.如权利要求18所述的系统,其特征在于,所述多个片段的每一个中存储的机器状态信息可独立于将其它机器状态信息存储入所述多个片段中的其它片段中而保存到一片段。
24.如权利要求22所述的系统,其特征在于,如果所述第二使用中比特矢量条目的任一个指示一错误,则与所述错误相对应的片段内存储的机器状态信息不被恢复到所述处理器的机器上下文状态。
25.如权利要求18所述的系统,其特征在于,分别在将所述多个片段内的机器状态信息保存到所述处理器的机器上下文状态或从所述处理器的机器上下文状态恢复所述机器状态信息之前,要检查所述第一或第二使用中比特矢量条目的状态。
26.一种处理器,包括:
包括触发条件的多个信道信息,其中监视所述处理器操作的一方面,且其中所述信道信息包括用于存储与所述多个信道信息相对应的多个使用中比特的首部字段,其中所述使用中比特指示所述多个信道信息是否要被保存到多个保存区片段。
27.如权利要求26所述的处理器,其特征在于,仅当与所述多个信道信息之一相对应的所述使用中比特指示所述多个信道信息中的所述一个有效时,所述多个信道信息之一将被保存到所述多个保存区片段之一。
28.如权利要求26所述的处理器,其特征在于,仅当与所述多个信道信息之一相对应的所述使用中比特指示所述多个信道信息中的所述一个不包含错误时,所述多个信道信息之一将被保存到所述多个保存区片段之一。
29.如权利要求27所述的处理器,其特征在于,如果所述多个信道中的所述一个无效时,它将被置入初始化状态。
30.如权利要求28所述的处理器,其特征在于,如果所述多个信道中的所述一个包含错误时,它将被置入初始化状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/230,721 US8171268B2 (en) | 2005-09-19 | 2005-09-19 | Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors |
US11/230,721 | 2005-09-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100817464A Division CN101241449A (zh) | 2005-09-19 | 2006-09-18 | 上下文状态管理技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1936847A true CN1936847A (zh) | 2007-03-28 |
CN1936847B CN1936847B (zh) | 2012-10-03 |
Family
ID=37832780
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101399067A Expired - Fee Related CN1936847B (zh) | 2005-09-19 | 2006-09-18 | 用于上下文状态管理的装置、方法和系统 |
CNA2008100817464A Pending CN101241449A (zh) | 2005-09-19 | 2006-09-18 | 上下文状态管理技术 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100817464A Pending CN101241449A (zh) | 2005-09-19 | 2006-09-18 | 上下文状态管理技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8171268B2 (zh) |
CN (2) | CN1936847B (zh) |
DE (1) | DE102006039747A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679584A (zh) * | 2013-11-28 | 2015-06-03 | 中国航空工业集团公司第六三一研究所 | 矢量上下文切换方法 |
CN107580697A (zh) * | 2015-05-07 | 2018-01-12 | Arm 有限公司 | 用于验证正确的代码执行上下文的检查指令 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171268B2 (en) | 2005-09-19 | 2012-05-01 | Intel Corporation | Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors |
US8108880B2 (en) * | 2007-03-07 | 2012-01-31 | International Business Machines Corporation | Method and system for enabling state save and debug operations for co-routines in an event-driven environment |
US7953994B2 (en) * | 2007-03-26 | 2011-05-31 | Stmicroelectronics Pvt. Ltd. | Architecture incorporating configurable controller for reducing on chip power leakage |
US8762692B2 (en) * | 2007-09-27 | 2014-06-24 | Intel Corporation | Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode |
US8631261B2 (en) | 2007-12-31 | 2014-01-14 | Intel Corporation | Context state management for processor feature sets |
US20150095614A1 (en) * | 2013-09-27 | 2015-04-02 | Bret L. Toll | Apparatus and method for efficient migration of architectural state between processor cores |
US9898330B2 (en) | 2013-11-11 | 2018-02-20 | Intel Corporation | Compacted context state management |
US9417876B2 (en) * | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
GB2549774B (en) * | 2016-04-28 | 2019-04-10 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
US10521585B2 (en) * | 2017-10-02 | 2019-12-31 | Baidu Usa Llc | Method and apparatus for detecting side-channel attack |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353328A (ja) * | 1989-07-20 | 1991-03-07 | Hitachi Ltd | レジスタ退避回復方法ならびに処理装置 |
JP3619939B2 (ja) * | 1994-09-26 | 2005-02-16 | 株式会社ルネサステクノロジ | 中央処理装置 |
US6209085B1 (en) * | 1995-05-05 | 2001-03-27 | Intel Corporation | Method and apparatus for performing process switching in multiprocessor computer systems |
US5842028A (en) * | 1995-10-16 | 1998-11-24 | Texas Instruments Incorporated | Method for waking up an integrated circuit from low power mode |
JPH09212371A (ja) * | 1996-02-07 | 1997-08-15 | Nec Corp | レジスタ退避及び復元システム |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
US5878264A (en) * | 1997-07-17 | 1999-03-02 | Sun Microsystems, Inc. | Power sequence controller with wakeup logic for enabling a wakeup interrupt handler procedure |
US5999730A (en) * | 1997-10-27 | 1999-12-07 | Phoenix Technologies Limited | Generation of firmware code using a graphic representation |
US6438708B1 (en) * | 1997-11-07 | 2002-08-20 | Hitachi, Ltd. | Information processing apparatus that can hold internal information |
US6131166A (en) * | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6134653A (en) * | 1998-04-22 | 2000-10-17 | Transwitch Corp. | RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit |
US6408325B1 (en) * | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
US6205543B1 (en) * | 1998-12-03 | 2001-03-20 | Sun Microsystems, Inc. | Efficient handling of a large register file for context switching |
US6553487B1 (en) * | 2000-01-07 | 2003-04-22 | Motorola, Inc. | Device and method for performing high-speed low overhead context switch |
US6983374B2 (en) * | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US6440073B1 (en) * | 2000-09-13 | 2002-08-27 | Koninklijke Philips Electronics N.V. | Ultrasonic diagnostic imaging system with automatic restart and response |
US6748548B2 (en) * | 2000-12-29 | 2004-06-08 | Intel Corporation | Computer peripheral device that remains operable when central processor operations are suspended |
EP1447736A1 (fr) * | 2003-02-06 | 2004-08-18 | STMicroelectronics | Microprocesseur comprenant des modes de fonctionnement à faible consommation électrique |
US20060149940A1 (en) * | 2004-12-27 | 2006-07-06 | Intel Corporation | Implementation to save and restore processor registers on a context switch |
US8171268B2 (en) | 2005-09-19 | 2012-05-01 | Intel Corporation | Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors |
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
-
2005
- 2005-09-19 US US11/230,721 patent/US8171268B2/en not_active Expired - Fee Related
-
2006
- 2006-08-24 DE DE102006039747A patent/DE102006039747A1/de not_active Ceased
- 2006-09-18 CN CN2006101399067A patent/CN1936847B/zh not_active Expired - Fee Related
- 2006-09-18 CN CNA2008100817464A patent/CN101241449A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679584A (zh) * | 2013-11-28 | 2015-06-03 | 中国航空工业集团公司第六三一研究所 | 矢量上下文切换方法 |
CN104679584B (zh) * | 2013-11-28 | 2017-10-24 | 中国航空工业集团公司第六三一研究所 | 矢量上下文切换方法 |
CN107580697A (zh) * | 2015-05-07 | 2018-01-12 | Arm 有限公司 | 用于验证正确的代码执行上下文的检查指令 |
CN107580697B (zh) * | 2015-05-07 | 2021-11-30 | Arm 有限公司 | 用于验证正确的代码执行上下文的检查指令 |
Also Published As
Publication number | Publication date |
---|---|
DE102006039747A1 (de) | 2007-03-29 |
CN1936847B (zh) | 2012-10-03 |
CN101241449A (zh) | 2008-08-13 |
US20080133898A1 (en) | 2008-06-05 |
US8171268B2 (en) | 2012-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1936847B (zh) | 用于上下文状态管理的装置、方法和系统 | |
JP4505608B2 (ja) | 工業用制御装置を冗長制御装置と同期化するための方法および装置 | |
US7698594B2 (en) | Reconfigurable processor and reconfiguration method executed by the reconfigurable processor | |
US6256775B1 (en) | Facilities for detailed software performance analysis in a multithreaded processor | |
US5008812A (en) | Context switching method and apparatus for use in a vector processing system | |
US8412980B2 (en) | Fault tolerant stability critical execution checking using redundant execution pipelines | |
US6052708A (en) | Performance monitoring of thread switch events in a multithreaded processor | |
JP5612061B2 (ja) | 複数のデータ・エレメントの収集及び分散 | |
EP0684561B1 (en) | System and method for synchronization in split-level data cache system | |
US5043867A (en) | Exception reporting mechanism for a vector processor | |
EP0335515B1 (en) | Method and apparatus for executing instructions for a vector processing system | |
US20170031866A1 (en) | Computer with Hybrid Von-Neumann/Dataflow Execution Architecture | |
JP4160925B2 (ja) | 分散型ノード・トポロジにおけるクロス・チップ通信機構を含むマルチプロセッサ・コンピュータ・システム内の処理ユニット間の通信方法およびシステム | |
US20090125703A1 (en) | Context Switching on a Network On Chip | |
JP4925973B2 (ja) | 装置、システム、方法およびプログラム | |
CN102334102A (zh) | 处理器装置、多线程处理器装置 | |
CN102736956A (zh) | 线程通信和同步技术 | |
GB2367648A (en) | Avoidance of repeated trap handling | |
US7500138B2 (en) | Simplified event selection for a performance monitor unit | |
WO2018203032A1 (en) | An apparatus and method for managing capability metadata | |
CN102597972A (zh) | 虚拟计算机系统、区域管理方法及程序 | |
US6519684B1 (en) | Low overhead method for selecting and updating an entry in a cache memory | |
CN115777097A (zh) | 清除寄存器数据 | |
JP3723243B2 (ja) | プロセッサ装置及びその制御方法 | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121003 Termination date: 20160918 |
|
CF01 | Termination of patent right due to non-payment of annual fee |