CN101371232B - 在用户级存储器中提供后备存储器 - Google Patents
在用户级存储器中提供后备存储器 Download PDFInfo
- Publication number
- CN101371232B CN101371232B CN2006800406201A CN200680040620A CN101371232B CN 101371232 B CN101371232 B CN 101371232B CN 2006800406201 A CN2006800406201 A CN 2006800406201A CN 200680040620 A CN200680040620 A CN 200680040620A CN 101371232 B CN101371232 B CN 101371232B
- Authority
- CN
- China
- Prior art keywords
- processor
- backing store
- state information
- register
- operating system
- 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.)
- Expired - Fee Related
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
- G06F9/463—Program control block organisation
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Digital Computer Display Output (AREA)
Abstract
在一个实施例中,本发明包括一种用于请求为处理器的体系结构状态信息分配存储器作为后备存储器、并使用应用程序将所述体系结构状态信息存储在后备存储器中的方法。这样,后备存储器以及使用后备存储器中的信息的处理器增强对操作系统可以是透明的。描述了其它实施例并要求其权益。
Description
技术领域
本发明的实施例涉及基于处理器的系统中的数据处理,特别是涉及对操作系统(OS)透明地执行处理器操作。
背景技术
系统通常由硬件和软件组件构成。典型的硬件包括处理器及相关电路,其中包括芯片组、存储器、输入/输出(I/O)设备等。软件组件通常包括OS和基本输入/输出系统(BIOS)程序、低级驱动器和高级应用程序,如用于执行诸如字处理、数据库处理、科学计算等预期任务的用户级应用程序。
一般来说,OS是系统上的活动的主调度器,并且完全知道在处理器上正运行的各种进程。因此,在将附加特征或扩展加入硬件、如处理器时,在驱动器或其它软件方面需要OS支持,使得OS可监测增强的硬件的运行。当附加处理器特征或扩展对正在处理器上运行的各进程可见时,OS可选择对特征或扩展进行虚拟化,使得各进程感觉它具有它自己的、对特征或扩展的私有访问或副本。
在发起进程时,OS提供进程控制块(PCB),它是表示存储器的特许级中(即用户级应用程序不可访问)的进程的结构。PCB可包括与运行进程有关的各种信息,例如标识信息、状态信息、寄存器值、存储器信息和其它这种信息。提供这种信息并保持处理器与OS维护的进程控制块中的这种信息之间的相干性的步骤是麻烦且性能敏感的活动。
在将某些指令加入指令集体系结构(ISA)时,附加的、扩展的状态在处理器中可能是可用的。此外,在结合对硬件(例如处理器硬件,如寄存器等)的增强时,需要OS支持。这种支持可采取当前OS的驱动器或者新OS服务包的形式,并且将来的OS版本可包括附加代码来支持所述增强。另外,每当将新特征加到处理器时,需要PCB或其它OS数据结构中的附加存储空间。
这些扩展还可对各种活动、如两个进程之间的上下文切换产生性能影响。如果由于这些扩展而使附加状态不可能由大多数进程频繁使用,则OS可实现所谓的延迟(lazy)保存和恢复机制,该机制可用来推迟、有时消除因这些扩展而引起的附加状态的上下文切换,从而节省时间。但是,在多处理器系统、如对称多处理器(SMP)系统中,这些机制更为麻烦,并且OS通常会在上下文切换时改为执行全状态保存,这可能是比较昂贵的过程。这类保存既涉及到OS又是低效的。
因此,需要一种实现对硬件的增强、如处理器扩展的改进方式。
附图说明
图1是根据本发明的一个实施例的方法的流程图。
图2是根据本发明的一个实施例、初始化后备存储器的方法的流程图。
图3是根据本发明的一个实施例、换出任务的方法的流程图。
图4是根据本发明的一个实施例、执行进程迁移的方法的流程图。
图5是根据本发明的一个实施例的处理器的框图。
图6是根据本发明的一个实施例的系统的一部分的框图。
图7是根据本发明的一个实施例的系统的框图。
具体实施方式
在各种实施例中,应用存储器(即用户级可存取存储器)可用作处理器的某些按进程或者按线程状态信息的存储装置,而不要求操作系统(OS)在其PCB或其它OS结构中提供存储装置。状态信息可对应于体系结构状态信息,例如控制和配置寄存器、物理寄存器、其它控制结构等。在一些实现中,这些寄存器的至少一部分可以是远比处理器的标量寄存器更宽的向量大小寄存器。这样,OS可能不知道加到处理器的附加状态。此外,附加状态可由独立应用程序使用,而无需应用程序之间的任何交互或协调。这转而允许在现有操作系统上使用新的处理器扩展,例如新的操作模式、指令扩展等。
使用本发明的实施例,可保存和恢复处理器状态而无需OS参与。状态可包括状态的N个字节,其中N可通过待实现的给定处理器特征来确定。此外,本文描述的机制可以是操作系统不可知且透明的,并且能以比OS对每个上下文切换执行完全保存和恢复时更高的性能来执行状态保存和恢复操作。为此,这些机制可具有建立和使用的最小开销,并且可由多个进程使用,而无需OS对这个被管理状态进行上下文切换。因此,可在处理器中实现新的寄存器和特征,而无需OS进程控制块中的附加存储要求。换言之,可支持处理器扩展,它们可包括执行新特征或功能的附加硬件、状态和/或指令(本文中统称为“扩展”)。此外,可提供这种支持而无需OS支持。也就是说,这类扩展可包含在处理器中,并且可对OS透明地进行适当的执行。另外,无需在控制权转移到另一个应用程序时立即保存处理器状态。因此,可使保持状态的性能开销为最小,并且只进行绝对必要的上下文切换。如果扩展的性质可使得多个进程将同时使用该扩展是不太可能的,则一般避免了这个新状态的上下文切换。在更为扩展的状态没有被大多数应用程序使用或者没有被频繁使用时,这是特别适当的。
这样,可按线程或按进程来对扩展(例如处理器)资源进行虚拟化,从而要求来自用户代码的最小支持,同时完全是OS透明的。这样,多个线程和/或进程可有效的使用扩展资源,其中对上下文变更具有最小开销。
一般来说,在上下文切换期间由OS显式保存和恢复OS中的进程可用的寄存器。通常,OS知道进程的寄存器的后备存储装置所在的位置,但硬件不知道。但是,在这里,处理器知道后备存储器的位置,而在一些实施例中,OS可能不知道。代替上下文切换期间的显式保存和恢复,硬件保存状态的一位或多位,它们指示新扩展状态的当前授权副本所在的位置,是在硬件的寄存器中还是在后备存储器中。在一些实施例中,仅使用一个状态位来表示全部扩展状态,由硬件根据需要对该状态位进行保存和恢复。在其它实施例中,新扩展状态可分解为更小的部分,其中的每一个具有这样一个状态位。硬件可动态地、即根据与这些状态位其中之一相对应的状态来检测对扩展状态的给定部分进行保存或恢复的需要,以及根据需要透明地执行保存或恢复,并相应地更新该状态位。
当后备存储器是授权副本并且用户尝试访问扩展状态的一部分时,硬件在继续执行之前透明地将状态恢复到处理器的寄存器中。这个动作可能引起页错误,因为后备存储器不一定存在。因此,指定访问这种扩展状态的所有新指令允许这类页错误。
当用户尝试修改扩展状态的一部分时,硬件首先检验后备存储器当前是否存在、可写,以及标记为“脏”。如果不是,则发信号通知适当页错误。因此,指定可修改这种扩展状态的所有新指令允许这类页错误。当进行这种检验时,处理器可在出现某些事件之前对肯定结果进行高速缓存,从而消除对于频繁检验的需要。作为这种检验的一个副作用,处理器发现用户为后备存储器指定的虚拟地址的物理转换,这种物理转换可由硬件来保持,并按照以下所述方式使用。
在一些实施例中,当用户尝试修改扩展状态的一部分时,处理器断言后备存储器中对应的高速缓存线的所有权。进行这种操作的方法随所涉及存储系统的性质而改变。
在一些实施例中,将一个或多个修改标志位(dirty bit)与扩展状态的若干部分相关联。在从后备存储器中恢复一些值时,以及在又将这些值保存到后备存储器时,清除这类修改标志位。每当运行改变相应扩展寄存器的值的指令时,设置这类修改标志位。
每当扩展状态的授权副本驻留在处理器的寄存器并且为“脏”时,始终存在处理器中存储的当前后备存储器的有效物理转换。处理器可对针对这些地址的存储器事务作出响应。处理器可通过寄存器中存储的值来响应存储器读取请求。因此,寄存器实质上充当专用高速缓存,仅缓存用作后备存储器的存储器。因此,对于后备存储器中包含的各高速缓存线,处理器保持所要求的每个高速缓存线状态,而无论什么存储系统存在于系统中。
后备存储器的位置可能通过若干事件来改变。在一些实施例中,用户可显式改变该位置。在一些实施例中,OS可知道后备存储器指针,并且可作为上下文切换的组成部分来改变该指针。因为后备存储器指针可以是虚拟地址,所以地址空间的每一个变化均可能改变后备存储器的物理转换。就在这些事件的任一个之前,扩展状态的授权副本可存储在后备存储器或者处理器的寄存器中。如果授权副本处于后备存储器中,则当指针改变时不需要进一步动作。如果授权副本处于处理器的寄存器中,并且没有标记为“脏”,则同样不需要进一步动作。如果授权副本处于处理器的寄存器中,但标记为“脏”,则一些实施例可立即将“脏”状态保存到后备存储器。其它实施例可提供推迟这种状态保存的部件,并且可能消除这种状态保存。作为一个实例,一种实现可选择成允许指向后备存储器的虚拟地址被更新,但指示物理转换不再与这个新指针同步。只要没有尝试访问新的扩展状态,旧物理转换和扩展寄存器本身就继续充当它们映射的高速缓存线的“常规”高速缓存,对任何窥探业务进行响应等。如果另一个代理断言所有权,则可通过常规高速缓存业务使这些寄存器或高速缓存线无效。在进行某种后续尝试以便访问扩展状态时,当前后备存储器指针被转换(如上所述),并与旧的物理转换进行比较。如果相同,并且扩展状态高速缓存标志仍然有效,则不需要状态保存或恢复;将它们完全消除,并且设置位以便指示授权副本位于寄存器中。但是,如果转换不匹配,则在使用新转换来从新后备存储器中取出对应的寄存器值之前,将仍然有效的“高速缓存线”刷新到存储器。
作为一个示例实现,处理器使用的寄存器状态信息可具有位于用户级分页存储器中的用户指定位置的后备存储器。在进程初始化期间,例如可向OS请求作为存储器中的已分配块的后备存储区。虽然向OS请求这个区域,但是OS不知道该区域用作后备存储器。用户通过将寄存器设置为指向这个存储装置的地址,来指定该地址。在一些实施例中,由OS作为常规上下文切换的组成部分来保存和恢复这个寄存器;存在免除了这种要求的其它实施例。
因此,有两个位置上可存在扩展状态的副本:在扩展寄存器本身中,以及(假定用户提供了指针)在后备存储器中。每当设置了指向后备存储器的指针时,状态的授权副本被认为处于后备存储器中。使用或访问新扩展状态的任何尝试会使它被透明地加载到寄存器中。
在每次使用扩展状态之前,处理器检查存储器页面是否存在且可写,以及是否标记为“脏”,如OS所看到的那样。如果通过分页系统来存取用户存储器,则处理器记住保持新状态所需的用户页面的转换。这可看作是专用转换后备缓冲器(translation lookaside buffer)(TLB)。一旦进行这种检查,并且直到通常要求处理器丢弃或刷新这样一种TLB条目时,处理器可允许对新状态和新特征的无限制访问。在一些实施例中,处理器可允许修改它的新/扩展状态,而无需考虑保持与这个后备存储器的一致性。通过这样放宽相干性要求,可在给定实现方式中实现某些有益效果。在一些实施例中,处理器可在与TLB相似的结构中保持指向后备存储器(线性或虚拟地址)以及转换物理地址的指针。但是,对于当前保护级(CPL)改变,处理器可根据状态信息的状态(例如“脏”或“清洁”)以适当的响应来对这个区域上的窥探作出响应。对于Intel体系结构(IA-32)环境中的CPL改变,OS可使对于给定页面的写许可(即存储后备存储器)无效,因此,对于从较高特许状态到较低特许状态(例如从OS到应用程序)的恢复,处理器再次检查存储器的页面是否存在且可写。
现在参照图1,示出根据本发明的一个实施例的方法的流程图。如图1所示,方法10可实现一种用于在用户级应用存储器中创建和使用后备存储器的技术。如图1所示,方法10可通过请求后备存储器的地址开始(框20)。例如,在处理器上运行的应用程序可向OS请求存储区。这个对存储区的请求可以与存储器使用的任何应用请求相似。响应这个请求,OS可发送存储器区的起始地址,例如指向分页存储器的线性指针。
虽然图1中未示出,但是,可由OS来调度请求后备存储器的应用程序,以便替代当前运行的进程。当前运行的进程也可具有用户级存储器中后备存储器。可实现访问这个先前应用程序的后备存储器(如果有的话)的不同方式。在一些实现方式中,可使用固定指针、即按惯例商定的(agreed-by-convention)位置上存储的指针来访问后备存储器。例如,指针可处于线程私有存储器的给定偏移量处,该偏移量可通过例如机器特定寄存器(MSR)来获得。在其它实施例中,可结合经过OS实现的保存/恢复操作、如浮点状态保存操作(FXSAVE)的其它状态信息来处理指向后备存储器的指针。或者,可将后备存储器的地址存储在OS进程控制块中。因此,在一些实施例中,不需要OS修改或需要最小限度的修改就能实现如上所述指向后备存储器的指针的存储。
再参照图1,对于实现这个上下文切换的CPL改变,可保存当前运行进程的后备存储器的地址。此外,OS可调度新进程(即应用程序的),并且还将新后备存储器的起始地址加载到例如处理器的指针中。这时,处理器可将前一个进程的数据回写到与那个进程相关联的后备存储器中。因此,处理器这时准备运行与该应用程序相关联的新进程。
仍然参照图1,可将下一个处理器状态信息加载到后备存储器(即用户级应用存储器)中(框30)。具体来说,可将包括用于给定进程的控制信息和数据在内的各种处理器状态信息加载到分页存储器中。随后,可将分页存储器中的处理器状态信息加载到处理器中(框40)。也就是说,可将后备存储器中存在的各种信息加载到处理器的某些配置寄存器和数据寄存器中。使用这个信息,这时可由应用程序在运行期间使用扩展(框50)。这种操作可继续进行,直到应用程序或进程完成,或者直到在处理器上例如由OS调度另一个活动。只要当前应用程序或进程被执行,就可能不相干地保持处理器和后备存储器中的处理器状态信息。也就是说,处理器中的处理器状态信息可被修改,而无需将这类改变回写到存储器中的后备存储器。
但是,当特许级改变时,例如当控制权又从应用程序转移到OS时,处理器中的处理器状态信息与后备存储器之间保持相干性(框60)。也就是说,在对不同特许级的处理器状态信息进行修改时,可将“脏”数据回写到存储器、更具体来说回写到后备存储器,从而保持相干性。在不同的实施例中,可实现保持相干性的各种方式。
当特许级从较高特许级改变为较低特许级时,例如当控制权又从OS转移到应用程序时,必须检验存储器中后备存储器的存在。也就是说,在其中具有应用程序的后备存储器的存储页面或多个页面必须存在于存储器中,并且是应用程序可写的。此外,在某些实现方式中,可能需要测试在利用新状态的任何扩展或指令的使用之前是否建立和初始化了后备存储器。
在各种实现中,当发起将使用某些处理器扩展或指令的进程时,具体来说在给定的OS不支持这类扩展或指令的情况下,用户级后备存储器可被建立并用来实现这类扩展或指令,而无需涉及OS。现在参照图2,示出根据本发明的一个实施例、初始化后备存储器的方法的流程图。如图2所示,方法100可通过运行进程A开始(框110)。当发起进程的运行时,可确定该进程是否将使用一个或多个新处理器特征(例如扩展)(菱形框115)。作为一个实例,处理器扩展可以是向量流单指令多数据(SIMD)扩展(VSSE)。这样一种VSSE实现的处理器可包括处理向量指令的附加和扩展寄存器,这会在下面进行进一步论述。如果不是,则控制返回到框110,并且进程A继续运行。相反,如果在菱形框115确定将使用新处理器特征,则控制转移到框120。在那,应用程序可向OS请求分页存储器的给定量、例如N个字节(框120)。OS又可向应用程序回送线性指针,指示已分配分页存储器的起始位置。在各种实现方式中,向OS的请求对OS表现为应用程序对存储器的其它任何请求。也就是说,OS可以仍然不知道后备存储器以及它与各种处理器扩展的配合使用。
仍然参照图2,随后,应用程序可指示处理器使用OS所提供的指针作为状态保存区的后备存储器(框125)。此外,在框125,后备存储器本身可加载当前处理器状态信息。虽然处理器状态信息可采取各种形式,但在许多实施例中,这个状态信息可包括处理器的各种控制寄存器和其它控制结构的状态以及某些寄存器(例如扩展长度寄存器、如支持向量操作的处理器中的向量长度寄存器)的值。随后,可将指针以及指针位置的转换(即物理转换)存储在处理器中(框130)。例如,可将这个转换存储在处理器的存储位置,例如转换缓冲器、标志位置等中。
随后,处理器可读取后备存储器中存在的状态,并将它加载到处理器(框135)。因此,这时将预期状态信息加载到处理器中,并且应用程序或进程的进一步运行是可能的。这样,进程的运行可继续进行。在运行期间,可确定是否存在特许级、如当前保护级(CPL)的改变(菱形框140)。如果没有,则不将作为运行当前进程或者具有相同特许级的其它任何进程的结果而出现的对处理器状态信息的任何改变回写到存储器。换言之,在处理器中的处理器状态信息与后备存储器之间不保持相干性(框145)。
相反,如果在菱形框140确定特许级已经改变,则控制可转移到菱形框150。这里,在运行不同特许级的新进程期间,处理器可确定它是否接收到对一个或多个处理器状态位置的窥探请求(菱形框150)。若否,则在带有菱形框150的循环中继续运行该新进程。但是,如果接收到对处理器状态信息的位置的窥探请求,则随后确定命中是否针对“脏”位置(菱形框155)。如果窥探位置不为“脏”(即“清洁”),表示寄存器的状态和存储器的状态已知为相干的,则可发送命中响应(框160),并且可通过返回到菱形框150的循环继续进行该新进程的进一步运行。
相反,如果在菱形框155,窥探请求命中“脏”位置,表示寄存器的状态和存储器的状态已知为不相干,则控制转移到框170。在这里,随“脏”数据一起发送窥探响应(框170)。在一些实现方式中,还可将“脏”位置回写到存储器,更具体来说回写到后备存储器。在一些实施例中,可通过微码或者硬件机构来把数据提供给后备存储器(即存储器)。这样,在上下文切换时,可保持处理器状态信息与后备存储器之间的相干性。因此,处理器中的处理器状态信息存储装置充当高速缓冲存储器。为此,在各种实现中,处理器可包括处理对这些处理器状态位置的入局窥探请求的附加窥探过滤器(如果窥探过滤器已经存在)。此外,可采用指示存在有效和/或“脏”数据的一个或多个指示符来扩展处理器状态位置,但是本发明的范围不限于此。
使用本发明的实施例,可在从使用后备存储器的进程到OS所调度的不同进程的任务切换时,将后备存储器数据换出到存储器分级结构的较低级(例如磁盘)。现在参照图3,示出根据本发明的一个实施例、换出任务的流程图。如图3所示,方法200可用来实现使用利用后备存储器的处理器扩展的进程。如图3所示,方法200可通过在第一处理器上运行进程(例如进程A)开始(框210)。为了说明这个实施例,可假定进程A使用一个或多个处理器扩展,并且相应地在用户级应用存储器中保持后备存储器。
仍然参照图3,随后,OS可为处理器A调度不同的应用程序(框215)。此外,OS可将对应于第一进程的存储器分页到磁盘(框220)。因此,OS可向直接存储器存取(DMA)代理、如磁盘驱动控制器发送DMA设备命令。DMA代理转而可开始读取将被回写到磁盘的存储器(框250)。DMA代理可继续这类读取和写入操作,直至到达用于后备存储器的存储器页面(框260)。在到达这样一个页面时,如同其它非相干存储器结构那样,DMA代理可向第一处理器发送一个或多个对所有权的请求(RFO)。因此,第一处理器可在运行它的其它(即新的)进程的过程中,窥探处理器中的处理器状态位置(框225)。这样,处理器可将处理器状态位置视为可高速缓存的存储器位置,并且可由处理器作为传统高速缓冲存储器对它们进行窥探。
根据窥探结果,可确定对处理器中的位置是否发生命中(菱形框230)。例如,可使用处理器中的专用窥探过滤器来执行对处理器中的这些状态存储位置的窥探。如上所述,可采用指示这类位置的状态(例如有效、“脏”等)的一个或多个指示符来扩展这类位置。如果在菱形框230没有命中,则出现未命中,并且控制又可转移到DMA代理,这将在下面进行进一步论述。随后,如果发生了命中,则可确定命中是否对应于“脏”位置(菱形框235)。如果与命中对应的位置不为“脏”,则发送命中响应,并且控制又可转移到DMA代理。相反,如果在菱形框235确定对“脏”位置发生命中,则第一处理器可将“脏”数据从处理器的状态存储装置(例如寄存器文件)移动到存储器的后备存储器(框240)。
此外,在一些实现中,处理器可向DMA代理发送标识已修改位置存储器的一个或多个响应(例如命中修改(HITM)响应),以及向DMA代理提供“脏”数据。在任一种情况下,当“脏”数据对DMA代理可用时(直接或者通过后备存储器),DMA代理可完成将分页存储器写入磁盘(框270)。当后备存储器位置未命中窥探过滤器(或者不为“脏”)时,也执行框270,从菱形框230和235接收控制,如上所述。虽然在图3的实施例中采用这个具体实现方式进行描述,但是要理解,本发明不限于此。
在一些实现中,例如可由OS指引而将在第一处理器上运行的进程迁移到第二处理器。如果该进程涉及扩展处理器资源并使用后备存储器,则可将后备存储器恢复到第二处理器,用于在第二处理器上进行适当操作。现在参照图4,示出根据本发明的一个实施例、执行进程迁移的方法的流程图。如图4所示,方法300可通过例如使用扩展寄存器在第一处理器上运行进程(例如进程A)开始(框310)。随后,OS可调度第一处理器的不同应用程序(框315)。
因此,在框320,OS调度没有使用扩展寄存器的进程B。此外,OS调度进程A到第二处理器的迁移。因此,如图4所示,调度进程A,以便在第二处理器上开始运行(框355)。在一个实施例中,可由OS在状态保存操作(例如浮点状态保存操作(FXSAVE))中保存指向后备存储器的指针。为了实现进程A的运行,可将进程A的上下文恢复到第二处理器(框360)。因此,在所描述的实施例中,可采用OS支持、例如浮点恢复操作(如FXRSTR)将后备存储器中的上下文恢复到第二处理器。这样,可将后备存储器中的数据提供给第二处理器的处理器状态寄存器。
然后,在第二处理器上运行进程A期间,当使用扩展寄存器时,可由第二处理器发出一个或多个RFO(框365)。也就是说,在进程B的运行期间,在例如通过高速缓存相干机构对寄存器进行依请求的访问时取得寄存器状态信息。因此,第二处理器可向第一处理器发送一个或多个对所有权的请求(RFO)。因此,第一处理器可在运行它的其它(即新的)进程的过程中,窥探处理器中的处理器状态位置(框325)。
根据窥探结果,可确定是否对处理器中的位置发生命中(菱形框330)。如果没有,则可向第二处理器发送未命中,并且第二处理器中的控制转移到框370,下面进行论述。相反,如果在菱形框330发生命中,则随后可确定该命中是否对应于处理器中的“脏”位置(菱形框335)。例如,如上所述,可使用处理器中的专用窥探过滤器来窥探处理器状态存储位置。如果位置为“清洁”,则向第二处理器发送适当响应,并且第二处理器中的控制转移到框370。相反,如果在菱形框335确定对“脏”位置发生命中,则第一处理器可将“脏”数据从第一处理器中的状态存储装置(例如寄存器文件)移动到存储器中的后备存储器(框345)。此外,第一处理器可向第二处理器发送标识已修改存储位置的一个或多个响应(例如命中修改(HITM)响应),以及在一些实现方式中,还可向请求代理(即第二处理器)提供“脏”数据。
在处理窥探响应之后,第一处理器可继续运行进程B(框350)。此外,第二处理器可继续运行进程A(框370)。因此,进程A在第二处理器上完成(框375)。
在一些实现中,可使用多个线程或子进程来运行进程。为了允许在多个这类线程或子进程中使用扩展寄存器状态信息,可提供应用存储器中的一个或多个附加存储空间。也就是说,当前运行的进程的子进程可向OS请求单独的后备存储器,以便允许复制后备存储器信息,从而允许两个进程不受阻碍地继续进行。这样,两个线程可具有寄存器状态的私有集合,以便避免故障状态。
可在许多不同的处理器体系结构中实现实施例。现在参照图5,示出根据本发明的一个实施例的处理器的框图。如图5所示,处理器400可以是多级流水线处理器,包括与根据本发明的一个实施例的后备存储器配合使用的各种结构。
如图5所示,处理器400可包括流水线,所述流水线包括可用于将指令字节解析为指令并对任何前缀进行解码的重命名器410。此外,重命名器410可将指令解码为微操作(μop),并且还将μop中的寄存器参考从逻辑表示重命名为物理表示。虽然在图5中未示出,但是要理解,处理器的各种前端组件可耦合在重命名器410之前。这类前端组件可包括指令高速缓存和控制级以及其它这类组件。
仍然参照图5,可将重命名指令提供给调度器420,它可获得指令的必要数据(例如源操作数),并将所述数据提供给可包括多个物理寄存器的寄存器文件430。在一些实施例中,这类寄存器可包括正常宽度寄存器以及扩展长度寄存器。一种典型寄存器435如图5所示。作为一个实例,寄存器435可以是例如用于向量操作的扩展长度寄存器。扩展长度寄存器可采取不同形式。例如,多个向量寄存器均可具有比流水线的常规数据宽度、如256位或另一个这样的数量更大的宽度。在其它实现方式中,向量寄存器可具有包括多个标量值的扩展长度。例如,单向量寄存器可包括大数量、如128个标量值的存储装置,但是本发明的范围不限于此。此外,寄存器435可包括提供用于保持与后备存储器中的信息的相干性的指示符的附加位。具体来说,如图5所示,有效位436可指示寄存器435是否包括有效数据,而修改标志位437可指示何时已经修改了寄存器435的内容。
如图5所进一步示出的,寄存器文件430可包括附加信息的存储装置,例如转换存储装置或标志存储装置470。存储装置470可以是转换缓冲器或标志存储装置,可用于存储从OS接收的、指向用户级存储器中的后备存储器的开始处的指针从逻辑地址到物理地址的转换。但是,在其它实施例中,标志存储装置470可设置在寄存器文件430的外部。
当μop的全部所需数据都存在于寄存器文件430中时,可通过执行单元440其中之一来执行μop。在各种实现方式中,可存在不同的执行单元。例如,整数、浮点、地址生成、单指令多数据(SIMD)和存储数据(STD)单元可以存在,但是本发明的范围不限于此。在执行之后,又可将结果数据提供给寄存器文件430,以便在指令引退之前进行存储。然后,可将结果数据回写到(例如存储器分级结构的)预期位置。
虽然在图5的实施例中采用这种实现方式来说明,但是许多变更是可行的。例如,回写级可耦合到执行单元440,以便接收结果数据供随后传递给存储器分级结构。或者,例如存储缓冲器、加载缓冲器等其它一个或多个缓冲器可耦合到寄存器文件430。作为一个实例,一个或多个引退缓冲器可耦合到寄存器文件430,用于在关联指令的引退之前存储μop及关联结果数据。
如图5所进一步示出的,可使用处理器400中的附加结构来处理与后备存储器有关的操作。例如,处理器400可包括多个控制寄存器450,它们可为存储处理器状态信息而设。这些控制寄存器可包括用于存储处理器在运行指令时所使用的控制信息的寄存器,例如控制寄存器(CR)。附加处理器状态信息也可存储在控制寄存器450中。这种处理器状态信息可包括对新处理器指令的各种扩展和/或支持。例如,在用于与向量扩展配合使用的一个实现方式中,可存在多个向量控制寄存器。这类寄存器可提供用于实现向量操作的控制信息。作为实例,这些向量寄存器可包括向量长度寄存器和向量跨距寄存器以及其它这类控制寄存器。更进一步,在与处理器扩展结合用于通过配置文件导引优化来改进性能的实现方式中,可存在与用于存储与不同性能计数器或处理器事件相关联的信息的一个或多个信道相对应的多个控制寄存器。
这样,控制寄存器450可提供体系结构状态信息,该信息可用来对处理器扩展进行处理,而无需OS支持。一种典型寄存器455如图5所示。寄存器455还可扩展为包括指示符456和457,例如,它们可指示有效数据的存在以及是否已经修改寄存器内容。如图5所示,控制寄存器450可与窥探过滤器460进行通信,窥探过滤器460可以是用于处理来自其它系统代理的请求的附加窥探过滤器(为了便于说明,图5中未示出主窥探过滤器)。具体来说,例如,窥探过滤器460可处理对所有权的请求(RFO)或者对控制寄存器450和寄存器文件430中存储的信息的其它窥探请求。这样,处理器400的这些寄存器可充当高速缓存。因此,窥探过滤器460可接收入局请求,并确定所请求地址是否对应于控制寄存器450或者寄存器文件430中的位置。如图5所进一步示出的,窥探过滤器460可包括目录465,它包括到对应于寄存器文件430和控制寄存器450中的位置的物理地址的转换。这样,作为窥探请求而接收的逻辑地址可访问目录465,以便确定是否发生命中。
如果在目录465中发生命中,则窥探过滤器460可窥探寄存器文件430或控制寄存器450中的物理位置,以便确定该位置的状态。如果位置为“脏”,则窥探过滤器460可向请求代理指示这种情况,并且还将“脏”数据提供给请求代理以及存储器中的后备存储器。这样,窥探过滤器460可保持这些位置的内容与请求代理、如DMA代理或者多处理器系统的另一个处理器之间的相干性。虽然在图5的实施例中采用这个具体实现进行说明,但是要理解,根据预期体系结构,处理器可采取许多不同的形式。
现在参照图6,示出根据本发明的一个实施例的系统的一部分的框图。如图6所示,处理器400经由存储器控制器中心(memory controllerhub)(MCH)475耦合到存储器480。虽然在图6的实施例中采用这个具体实现方式进行说明,但是要理解,处理器400可例如通过点对点互连或者以另一种这样的方式直接耦合到存储器480。
如图6所示,处理器400包括可划分为不同部分的寄存器文件430。具体来说,图6所示的部分包括扩展资源,更具体来说包括可变长度的附加寄存器。如图所示,第一部分包括扩展长度寄存器435a和另一个寄存器435b。这些寄存器的每一个可具有与其相关联的各种状态位。在图6所示的实施例中,有效位436a和修改标志位437a可与寄存器435a相关联,而相似的位436b和437b可与寄存器435b相关联。此外,在一些实现方式中,存在位438a可与寄存器文件430的定义部分相关联。存在位438a可指示对应于寄存器文件430的那个部分的后备存储器是否存在于存储器中。
注意,在各种实施例中,可提供不同粒度的各种状态位。例如,如图6所示,全局存在位439可与寄存器文件430相关联,以便指示与当前运行的进程相关联的状态相对应的后备存储器存在于存储器中。还要注意,图6示出还存在与存储器的另一个分区相对应的相似寄存器和状态位,即寄存器435c、435d及其相关状态位,即436c、436d、437c、437d和438b。
仍然参照图6,存储器480可包括与当前运行于处理器400上的进程相对应的后备存储器485。后备存储器485可包括指示存在与后备存储器相对应的存储页面的全局状态指示符487,以及诸如有效和/或修改标志位等其它状态信息。此外,后备存储器485表示,由于寄存器组(register bank)430中的不同寄存器的大小,与其对应的后备存储器信息可存在于一个或多个高速缓存线中。因此,如图6所示,与多个常规大小寄存器相对应的后备存储器信息可存储在单高速缓存线490中,单高速缓存线490包括对作为后备存储器信息493、496的多个寄存器以及对应的状态指示符例如与后备存储器信息493相关联的指示符491、492和与后备存储器信息496相关联的指示符494、495的支持。例如,这些指示符可对应于有效和修改标志位。此外,后备存储器485包括多个高速缓存线498、499,它们共同组成例如对应于扩展长度寄存器的后备存储器信息495。因此,指示符497a、497b可与后备存储器信息498、499相关联。
虽然采用图6的实施例中的这个具体实现方式进行说明,但是要理解,本发明不限于此,并且在各种实施例中,可提供不同粒度的状态指示符,例如存在/不存在和“脏”/“清洁”位。例如,在不同的实施例中,粒度可基于每个寄存器、每个寄存器组或者寄存器文件。
因此,在各种实施例中,可为处理器体系结构的指令集添加和扩展分配空间,而无需OS支持。可在各种处理器体系结构中实现这些实施例,所述体系结构包括例如芯片微处理器(CMP)、小核心阵列、其它多核处理器、协处理器或其它这类系统。
因此,可在许多不同的系统类型中实现这些实施例。现在参照图7,示出根据本发明的一个实施例的系统的框图。如图7所示,多处理器系统是点对点互连系统,并且包括通过点对点互连550耦合的第一处理器570和第二处理器580。如图7所示,处理器570和580的每一个可以是多核处理器,其中包括第一和第二处理器核心(即处理器核心574a、574b和处理器核心584a、584b)。虽然为了便于说明而未示出,但是,第一处理器570和第二处理器580可包括具有通用存储寄存器以及用于常规运行和扩展操作模式、如向量扩展的控制寄存器的一个或多个寄存器组。第一处理器570还包括存储器控制器中心(MCH)572和点对点(P-P)接口576、578。类似地,第二处理器580包括MCH 582和P-P接口586、588。如图7所示,MCH 572、582将处理器耦合到相应的存储器、即存储器532和存储器534,它们可以是本地附连到相应处理器的主存储器的部分。可使用主存储器的这些部分来实现根据本发明的一实施例的后备存储器。
第一处理器570和第二处理器580可分别经由P-P接口552、554耦合到芯片组590。如图7所示,芯片组590包括P-P接口594和598。此外,芯片组590包括将芯片组590与高性能图形引擎538耦合的接口592。在一个实施例中,可使用高级图形端口(AGP)总线539将图形引擎538耦合到芯片组590。AGP总线539可符合Intel公司(加利福尼亚的圣克拉拉)于1998年5月4日发布的加速图形端口接口规范,版本2.0。或者,点对点互连539可对这些组件进行耦合。
芯片组590又可经由接口596耦合到第一总线516。在一个实施例中,第一总线516可以是日期为1995年6月的PCI本地总线规范,产品版本,修订版2.1所定义的外设部件互连(PCI)总线,或者例如PCIExpress总线或另一种第三代I/O互连总线等总线,但是本发明的范围不限于此。
如图7所示,各种输入/输出(I/O)设备514可连同总线桥518一起耦合到第一总线516,总线桥518将第一总线516耦合到第二总线520。在一个实施例中,第二总线520可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线520,所述设备包括例如键盘/鼠标522、通信设备526以及可包括代码530的例如磁盘驱动器或其它海量存储设备的数据存储单元528。此外,音频I/O 524可耦合到第二总线520。
实施例可通过代码来实现,并且可存储在已经存储了指令的存储介质中,所述指令可用于将系统编程以执行指令。存储介质可包括但不限于:任何类型的磁盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SARAM)等的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡;或者适合于存储电子指令的其它类型的媒体。
虽然针对有限的实施例对本发明进行了描述,但本领域的技术人员会从其中知道大量修改和变更。所附权利要求书意在覆盖落入本发明的真正精神和范围内的所有这类修改和变更。
Claims (29)
1.一种用于对操作系统透明地执行处理器操作的方法,包括:
为处理器的体系结构状态信息分配存储器的一部分作为后备存储器,其中,所述体系结构状态信息包括对所述操作系统透明的扩展状态信息,所述扩展状态信息对应于所述操作系统不支持的扩展处理器特征;以及
通过应用程序将所述体系结构状态信息存储在所述后备存储器中,而无需操作系统支持。
2.如权利要求1所述的方法,还包括:从所述操作系统接收与所述后备存储器的起始地址相对应的指针,其中,所述后备存储器驻留在用户级存储器中。
3.如权利要求1所述的方法,还包括:对所述扩展处理器特征进行虚拟化。
4.如权利要求1所述的方法,还包括:在所述应用程序的运行期间修改所述处理器的体系结构状态信息,其中,所述体系结构状态信息与所述后备存储器不相干。
5.如权利要求1所述的方法,还包括:在特许级改变之后,将所述体系结构状态信息的至少一部分写入所述后备存储器。
6.如权利要求5所述的方法,还包括:响应所述处理器的窥探过滤器中的命中而将“脏”数据写入所述后备存储器。
7.如权利要求1所述的方法,还包括:
对于第二应用程序换出应用程序;以及
响应高速缓存一致性协议而窥探所述处理器中的体系结构状态信息。
8.如权利要求7所述的方法,还包括:
从所述后备存储器中将所述应用程序的上下文恢复到第二处理器;以及
向所述处理器请求所述后备存储器中的所述数据。
9.一种装置,包括:
执行操作的至少一个执行单元;
寄存器文件,耦合到所述至少一个执行单元以便存储数据,所述寄存器文件包括存储位置以便存储指向用户级存储器中的后备存储器的存储器位置的指针,所述后备存储器是为处理器的体系结构状态信息分配的,其中,所述体系结构状态信息包括对操作系统透明的扩展状态信息,所述扩展状态信息对应于所述操作系统不支持的扩展处理器特征;以及
窥探过滤器,耦合到所述寄存器文件,以便确定对所述后备存储器中的地址的窥探请求是否对应于所述寄存器文件中的位置。
10.如权利要求9所述的装置,其中,所述寄存器文件包括将按进程进行虚拟化而无需操作系统(OS)支持的至少一个资源。
11.如权利要求10所述的装置,其中,所述至少一个资源包括所述操作系统不支持的扩展长度寄存器。
12.如权利要求11所述的装置,其中,所述后备存储器包括对所述扩展长度寄存器进行高速缓存的多个高速缓存线。
13.如权利要求11所述的装置,其中,所述至少一个资源还包括所述操作系统不支持的第二和第三寄存器。
14.如权利要求13所述的装置,其中,所述后备存储器包括对所述第二和第三寄存器进行高速缓存的高速缓存线。
15.如权利要求9所述的装置,其中,所述至少一个执行单元将在用户级控制下并且对操作系统透明地启动所述后备存储器。
16.一种系统,包括:
第一处理器,包括状态信息存储装置和过滤器,根据对所有权的请求来访问所述状态信息存储装置,其中,所述状态信息存储装置中的状态信息还存在于与所述状态信息不相干地保持的用户级存储器中的后备存储器中,所述后备存储器是为第一处理器的体系结构状态信息分配的,其中,所述体系结构状态信息包括对操作系统透明的扩展状态信息,所述扩展状态信息对应于所述操作系统不支持的扩展处理器特征;
代理,耦合到所述第一处理器,向所述第一处理器传递所述对所有权的请求,并从所述第一处理器接收对所述对所有权的请求的响应;以及
动态随机存取存储器(DRAM),耦合到所述第一处理器和所述代理。
17.如权利要求16所述的系统,其中,所述代理包括将数据从所述DRAM写入海量存储设备的直接存储器存取(DMA)代理,其中,所述数据包括所述后备存储器。
18.如权利要求17所述的系统,其中,所述DRAM包括所述后备存储器,所述后备存储器包括接纳来自所述状态信息存储装置的多个寄存器的状态信息的第一高速缓存线。
19.如权利要求18所述的系统,其中,所述后备存储器包括第二高速缓存线和第三高速缓存线,所述第二和第三高速缓存线接纳来自所述状态信息存储装置的扩展寄存器的状态信息。
20.如权利要求16所述的系统,其中,所述状态信息存储装置包括用于无需操作系统(OS)支持就能执行的处理器扩展的至少一个控制寄存器。
21.如权利要求16所述的系统,其中,所述代理包括运行从所述第一处理器换出的进程的第二处理器,其中,所述第二处理器将从所述后备存储器中获得所述进程的上下文信息。
22.如权利要求21所述的系统,其中,所述第二处理器将传递对所述上下文信息的所有权的请求,以及其中,所述第一处理器将向所述第二处理器发送包括所述状态信息存储装置中的“脏”上下文信息的响应。
23.一种装置,包括:
请求第一进程的用户级存储器中的第一后备存储器的地址的部件,所述第一后备存储器是为处理器的状态信息分配的,其中,所述状态信息包括对操作系统透明的扩展状态信息,所述扩展状态信息对应于所述操作系统不支持的扩展处理器特征;
将所述处理器状态信息加载到所述第一后备存储器的部件;
将所述处理器状态信息从所述第一后备存储器复制到所述处理器的寄存器组的部件;以及
使用所述寄存器组中的所述处理器状态信息来在所述第一处理器上运行所述第一进程的部件。
24.如权利要求23所述的装置,还包括:在所述第一进程的特许级的执行期间,与所述寄存器组中的所述处理器状态信息不相干地保持所述第一后备存储器的部件。
25.如权利要求24所述的装置,还包括:在与所述第一进程的特许级不同的特许级的执行期间,与所述寄存器组中的所述处理器状态信息相干地保持所述第一后备存储器的部件。
26.如权利要求23所述的装置,还包括:将所述处理器状态信息加载到所述第一后备存储器中的部件,以及对所述操作系统透明地复制所述处理器状态信息的部件。
27.如权利要求23所述的装置,还包括:将所述第一进程移动到第二处理器的部件,以及根据对所述处理器状态信息的所有权的请求来窥探所述寄存器组的部件。
28.如权利要求23所述的装置,还包括:确定所述寄存器组中的所述处理器状态信息是否为所述处理器状态信息的授权副本的部件。
29.如权利要求28所述的装置,还包括:
如果所述授权副本存在于所述寄存器组中,则修改所述处理器状态信息的部件;以及
如果所述授权副本存在于所述第一后备存储器中,则将所述处理器状态信息从所述第一后备存储器加载到所述寄存器组中的部件,所述加载对所述操作系统是透明的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/263,628 | 2005-10-31 | ||
US11/263,628 US7500049B2 (en) | 2005-10-31 | 2005-10-31 | Providing a backing store in user-level memory |
PCT/US2006/042619 WO2007053668A2 (en) | 2005-10-31 | 2006-10-31 | Providing a backing store in user-level memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101371232A CN101371232A (zh) | 2009-02-18 |
CN101371232B true CN101371232B (zh) | 2011-10-19 |
Family
ID=37997963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800406201A Expired - Fee Related CN101371232B (zh) | 2005-10-31 | 2006-10-31 | 在用户级存储器中提供后备存储器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7500049B2 (zh) |
CN (1) | CN101371232B (zh) |
DE (1) | DE112006002582T5 (zh) |
WO (1) | WO2007053668A2 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533696B1 (en) * | 2006-09-29 | 2013-09-10 | Emc Corporation | Methods and systems for allocating hardware resources to instances of software images |
US7899904B2 (en) * | 2007-04-30 | 2011-03-01 | Lsi Corporation | Hardware processing of regular expressions |
US7996663B2 (en) * | 2007-12-27 | 2011-08-09 | Intel Corporation | Saving and restoring architectural state for processor cores |
US8086801B2 (en) * | 2009-04-08 | 2011-12-27 | International Business Machines Corporation | Loading data to vector renamed register from across multiple cache lines |
US8234407B2 (en) * | 2009-06-30 | 2012-07-31 | Oracle America, Inc. | Network use of virtual addresses without pinning or registration |
US10078518B2 (en) * | 2012-11-01 | 2018-09-18 | International Business Machines Corporation | Intelligent context management |
US10102003B2 (en) * | 2012-11-01 | 2018-10-16 | International Business Machines Corporation | Intelligent context management |
CN105183668B (zh) * | 2015-09-21 | 2018-05-18 | 华为技术有限公司 | 缓存刷新方法及装置 |
US9898408B2 (en) * | 2016-04-01 | 2018-02-20 | Intel Corporation | Sharing aware snoop filter apparatus and method |
US10255181B2 (en) * | 2016-09-19 | 2019-04-09 | Qualcomm Incorporated | Dynamic input/output coherency |
US11526445B2 (en) * | 2019-05-13 | 2022-12-13 | Rambus Inc. | Managing memory maintenance operations in a memory system having backing storage media |
CN112463652B (zh) * | 2020-11-20 | 2022-09-27 | 海光信息技术股份有限公司 | 基于缓存一致性的数据处理方法、装置、处理芯片及服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434677B1 (en) * | 1999-06-01 | 2002-08-13 | Intel Corporation | Method and apparatus for altering data length to zero to maintain cache coherency |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5551006A (en) | 1993-09-30 | 1996-08-27 | Intel Corporation | Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6671762B1 (en) * | 1997-12-29 | 2003-12-30 | Stmicroelectronics, Inc. | System and method of saving and restoring registers in a data processing system |
US6145049A (en) * | 1997-12-29 | 2000-11-07 | Stmicroelectronics, Inc. | Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set |
US6487630B2 (en) * | 1999-02-26 | 2002-11-26 | Intel Corporation | Processor with register stack engine that dynamically spills/fills physical registers to backing store |
US6456891B1 (en) * | 1999-10-27 | 2002-09-24 | Advanced Micro Devices, Inc. | System and method for transparent handling of extended register states |
US6629157B1 (en) | 2000-01-04 | 2003-09-30 | National Semiconductor Corporation | System and method for virtualizing the configuration space of PCI devices in a processing system |
US6651163B1 (en) * | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
US6434683B1 (en) * | 2000-11-07 | 2002-08-13 | Storage Technology Corporation | Method and system for transferring delta difference data to a storage device |
US8776050B2 (en) | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
-
2005
- 2005-10-31 US US11/263,628 patent/US7500049B2/en active Active
-
2006
- 2006-10-31 DE DE112006002582T patent/DE112006002582T5/de not_active Ceased
- 2006-10-31 CN CN2006800406201A patent/CN101371232B/zh not_active Expired - Fee Related
- 2006-10-31 WO PCT/US2006/042619 patent/WO2007053668A2/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434677B1 (en) * | 1999-06-01 | 2002-08-13 | Intel Corporation | Method and apparatus for altering data length to zero to maintain cache coherency |
Non-Patent Citations (2)
Title |
---|
US5768557A的 1998.06.16 |
全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2007053668A2 (en) | 2007-05-10 |
DE112006002582T5 (de) | 2008-09-18 |
US7500049B2 (en) | 2009-03-03 |
CN101371232A (zh) | 2009-02-18 |
WO2007053668A3 (en) | 2008-05-29 |
US20070101076A1 (en) | 2007-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101371232B (zh) | 在用户级存储器中提供后备存储器 | |
CN100397368C (zh) | 无效存储器,清除缓冲区表项 | |
JP4045062B2 (ja) | ロード命令を実行する方法、プロセッサ、およびシステム | |
JP3509067B2 (ja) | ストア命令転送方法およびプロセッサ | |
CN100428198C (zh) | 改进任务切换的系统和方法 | |
US7996564B2 (en) | Remote asynchronous data mover | |
US11379236B2 (en) | Coherency tracking apparatus and method for an attached coprocessor or accelerator | |
US6715057B1 (en) | Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes | |
CN100487674C (zh) | 利用镜像锁定高速缓存传播数据的方法和处理器节点 | |
JPH02234248A (ja) | 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法 | |
CN101221493A (zh) | 并行处理器中的多线程执行 | |
US10547680B2 (en) | Systems, methods, and apparatuses for range protection | |
CN102981800A (zh) | 处理异构资源的地址转换和异常 | |
CN104205042A (zh) | 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制 | |
CN102906704A (zh) | 控制处理适配器中断请求的速率 | |
US8407701B2 (en) | Facilitating quiesce operations within a logically partitioned computer system | |
US11915000B2 (en) | Apparatuses, methods, and systems to precisely monitor memory store accesses | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
US10754782B1 (en) | Apparatuses, methods, and systems to accelerate store processing | |
US11163682B2 (en) | Systems, methods, and apparatuses for distributed consistency memory | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
JP3876033B2 (ja) | 順不同に命令を実行するコンピュータのためのシステム | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism | |
US6986013B2 (en) | Imprecise cache line protection mechanism during a memory clone operation | |
KR19980079726A (ko) | 프로세서에 저장 인스트럭션을 전송하는 시스템 및 방법 |
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: 20111019 Termination date: 20181031 |
|
CF01 | Termination of patent right due to non-payment of annual fee |