CN102473169B - 动态***重新配置 - Google Patents
动态***重新配置 Download PDFInfo
- Publication number
- CN102473169B CN102473169B CN201080025194.0A CN201080025194A CN102473169B CN 102473169 B CN102473169 B CN 102473169B CN 201080025194 A CN201080025194 A CN 201080025194A CN 102473169 B CN102473169 B CN 102473169B
- Authority
- CN
- China
- Prior art keywords
- hardware
- reconfigures
- memory
- described dynamic
- processor
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Abstract
在一些实施例中,要用来执行包括多个处理器核心的***的动态硬件重新配置的***重新配置代码和数据被缓存,并且在动态硬件重新配置期间的任何直接或间接存储器访问被阻止。所述多个处理器核心中的一个执行所缓存的***重新配置代码和数据以便动态地对硬件进行重新配置。描述了并要求保护其他实施例。
Description
技术领域
本发明总体上涉及动态***重新配置。
背景技术
随着引入能够构建大型多处理器(MP)***(例如,具有128个插座)的可伸缩快速通道互联(QPI)服务器,***的重新配置变得非常复杂。存储器控制器被集成到每个处理器插座中。此外,在未来,其他部件(例如IO根复合体、IO设备……)可能被集成到一个或更多处理器插座中。这进一步增加了地址路由的复杂性。诸如处理器热插拔和输入/输出中心(IOH)热插拔、存储器迁移、CPU迁移……等的可靠性、可用性和可服务性(RAS)特征被添加到特征列表。在该附加的复杂性和新特征的情况下,在硬件中实现动态***重新配置解决方案是非常复杂的并且开发和验证非常昂贵。
目前使用***管理中断(SMI)实现RAS操作(尤其是在运行时影响***重新配置的操作),其中,SMI汇集所有的处理器,执行QPI代理(例如处理器,IOH等)的停顿(quiesce),并且对***配置(例如QPI路由、地址解码器等)进行重新编程。然而,不管QPI互连的链路特性如何,都必须原子地进行对所有QPI代理(处理器,IO中心……)的改变以防止误路由的数据业务。当该重新配置由自身在一致性存储器外部执行的SMI代码执行时,这会引起特殊挑战,所述SMI代码在一致性存储器外部执行在QPI路由改变期间是不能容忍的。还要注意,SMI操作是对OS(操作***)透明的,并且因此需要将SMI延迟保持最小(通常为数百微秒的量级)以进行可靠的***操作。
附图说明
通过下面给出的详细描述和本发明的一些实施例的附图将更全面地理解本发明,然而,这些详细描述和附图不应当用于将本发明限制到所描述的特定实施例,而是仅用于解释和理解。
图1说明了根据本发明的一些实施例的***。
图2说明了根据本发明的一些实施例的***。
图3说明了根据本发明的一些实施例的***。
图4说明了根据本发明的一些实施例的流程。
图5说明了根据本发明的一些实施例的流程。
图6说明了根据本发明的一些实施例的流程。
图7说明了根据本发明的一些实施例的流程。
图8说明了根据本发明的一些实施例的***。
图9说明了根据本发明的一些实施例的***。
图10说明了根据本发明的一些实施例的流程。
图11说明了根据本发明的一些实施例的流程。
具体实施方式
本发明的一些实施例涉及动态***重新配置。
图1说明了根据一些实施例的***100。在一些实施例中,***100包括多个处理器和/或中央处理单元(CPU),包括例如CPU0 102、CPU1 104、CPU2 106和CPU3 108。在一些实施例中,***100附加地包括多个存储器,包括例如存储器112、存储器114、存储器116和存储器118。在一些实施例中,处理器102、104、106和108的每一个具有存储器控制器。在一些实施例中,***100附加地包括一个或多个输入/输出中心(IOH),包括例如IOH0 122和IOH1 124。在一些实施例中,IOH1 124耦合到快速PCI总线132和/或快速PCI总线134,和/或IOH0 122耦合到快速PCI总线136、快速PCI总线138和/或输入/输出控制器中心(ICH)140。在一些实施例中,处理器102、104、106和108以及IOH 122和IOH 124通过多个链路和/或互连耦合在一起。在一些实施例中,耦合处理器102、104、106和108以及IOH0 122和IOH1 124的链路和/或互连是多个一致性链路,例如在一些实施例中,是快速通道互联(QPI)链路和/或多个通用***接口(CSI)链路。
在一些实施例中,***100是四插座基于QPI的***。在一些实施例中,使用英特尔QPI链路连接QPI部件(例如,处理器插座和/或I/O中心)并且通过英特尔QPI端口控制QPI部件。在一些实施例中,使用源地址解码器(SAD)和路由器(RTA)来使得能够在QPI部件之间进行通信。源地址解码器(SAD)解码对特定节点地址的带内地址访问。QPI路由器在QPI部件中路由业务以及将业务路由到其他QPI部件。
根据一些实施例,QPI平台需要***中的所有源地址解码器和路由器被相同地编程以防止业务的误路由。在引导操作期间,可以在任何控制被移交给操作***(OS)之前在基本输入/输出***(BIOS)中完成该编程。
在一些实施例中,在***被引导到OS之后,可靠性、可用性和可服务性(RAS)事件能够改变***配置。例如,RAS事件包括诸如以下的操作:处理器添加、处理器移除、IOH添加、IOH移除、存储器添加、存储器移动、存储器迁移、存储器镜像、存储器备用、处理器热插拔、存储器热插拔、热插拔插座、热插拔IOH(I/O中心),域分区等。这些和其他类型的RAS事件需要QPI部件在OS继续运行时被动态编程。它们需要在OS运行时动态地改变***。由于SAD和路由器在所有时间都被相同编程的要求,这些RAS操作需要“原子地”进行对QPI配置的任何更新(即,当重新配置QPI时必须没有一致性业务在进行)。此外,由于在这些RAS事件期间OS继续运行,因此需要在窄时间窗口(例如,通常是数百微秒量级)内完成重新配置以防止OS超时。
高端RAS特征,例如,热插拔插座、热插拔处理器、热插拔存储器、热插拔I/O中心(IOH)、存储器的热插拔、I/O芯片组的热插拔,I/O控制器中心(ICH)的热插拔、处理器的在线/离线、存储器的在线/离线、I/O芯片组的在线/离线、I/O控制器中心(ICH)的在线/离线、存储器迁移、存储器镜像、处理器(和/或CPU)迁移、域分区等,是高端关键任务多处理器服务器平台的关键区别。基于诸如QPI的链路的服务器和/或多处理器平台被设计为允许诸如这些的高端RAS特征。如上所提及的,对基于QPI的***中的这些RAS流的共同要求是需要在所有的QPI代理上(例如,在所有的处理器和I/O中心上)原子地更新QPI配置(例如,QPI路由改变、源地址解码器改变、广播列表等)。
除了要是原子的,还需要以OS透明的方式进行这些改变,而不影响正在运行的OS。根据一些实施例,***管理模式(SMM)用于使用***管理中断(SMI)来完成路由改变。传统的SMI代码执行在存储器外部运行,所述存储器可以位于***中的任何QPI插座上。然而,如果不在重新配置期间阻止存储器访问,那么在QPI配置改变期间的存储器访问导致可能误路由的分组并且损害***的完整性。此外,由于OS实时访问的期望,SMI延迟被限制为数百微秒的量级。
根据一些实施例,以原子的方式执行动态QPI***重新配置(即,当重新配置正在进行时没有诸如存储器访问的一致性业务发生),并且动态QPI***重新配置满足操作***/虚拟存储器管理器(OS/VMM)实时响应要求。
图2说明了根据一些实施例的***200。在一些实施例中,***200包括多个处理器和/或中央处理单元(CPU),包括例如CPU0 202、CPU1 204、CPU2 206和CPU3 208。在一些实施例中,***200附加地包括多个存储器,包括例如存储器212、存储器214、存储器216和存储器218。在一些实施例中,处理器202、204、206和208的每一个具有存储器控制器。在一些实施例中,***200附加地包括一个或多个输入/输出中心(IOH),包括例如IOH0 222和IOH1 224。在一些实施例中,处理器202、204、206和208以及IOH 222和IOH 224通过多个链路和/或互连耦合在一起。在一些实施例中,耦合处理器202、204、206和208以及IOH0 222和IOH1 224的链路和/或互连是多个一致性链路,例如在一些实施例中,是快速通道互联(QPI)链路和/或多个通用***接口(CSI)链路。
图2的***200假设CPU3 208(和/或图1的***中的CPU3 108)在***被引导时不存在,并且CPU3 208需要热添加到正在运行的***。图2说明了***中QPI代理202、204、206、208、222和224的每一个的端口信息。其他处理器202、204和206以及IOH 222和224之间的链路(例如,QPI链路)被示出为已初始化且正在工作的链路,而CPU3 208和其他部件之间的链路在图2中用虚线示出,这是因为这些链路还没有被初始化。为了处理CPU3 208的热添加,首先需要进行关于正在运行的***是如何与添加的CPU3 208连接的发现。根据一些实施例,在CPU3 208以及所有其他QPI部件202、204、206、222和224上的路由器(RTA)和源地址解码器(SAD)需要被配置(或重新配置),以使CPU3 208和存储器218能够被添加到该正在运行的***。
图3说明了根据一些实施例的***300。在一些实施例中,***300包括多个处理器和/或中央处理单元(CPU),包括例如CPU0 302、CPU1 304、CPU2 306和CPU3 308。在一些实施例中,***300附加地包括多个存储器,包括例如,存储器312、存储器314、存储器316和存储器318。在一些实施例中,处理器302、304、306和308的每一个具有存储器控制器。在一些实施例中,***300附加地包括一个或多个输入/输出中心(IOH),包括例如IOH0 322和IOH1 324。在一些实施例中,处理器302、304、306和308以及IOH 322和IOH 324通过多个链路和/或互连耦合在一起。在一些实施例中,耦合处理器302、304、306和308以及IOH0 322和IOH1 324的链路和/或互连是多个一致性链路,例如在一些实施例中,是快速通道互联(QPI)链路和/或多个通用***接口(CSI)链路。
图3的***300假设IOH1 324(和/或图1的***中的IOH1 124和/或图2的***中的IOH1 224)在***被引导时不存在,并且IOH1 324需要热添加到正在运行的***。图3说明了***中QPI代理302、304、306、308、322和324的每一个的端口信息。处理器302、304、306和308以及其他IOH0322之间的链路(例如,QPI链路)被示出为已初始化且正在工作的链路,而IOH1 324和其他部件之间的链路在图3中用虚线示出,这是因为这些链路还没有被初始化。为了处理IOH1 324的热添加,首先需要进行关于正在运行的***是如何与添加的IOHI 324连接的发现。在IOH1 324以及所有其他QPI部件302、304、306、308和322上的路由器(RTA)和源地址解码器(SAD)需要被配置(或重新配置),以使IOH1 324能够被添加到该正在运行的***。
根据一些实施例,***重新配置代码和数据被缓存,并且对存储器的任何直接或间接访问被阻止。在一些实施例中,由于***重新配置在高速缓存外部执行时被执行,因此任何QPI链路路由或源地址解码器改变仍不会影响代码执行。
根据一些实施例,仅一个处理器核心被允许在重新配置时间窗口期间运行,并且所有其他核心被阻止实现任何外发(outbound)访问。在一些实施例中,在停顿-取消停顿窗口外部计算重新配置数据以减少SMI延迟。根据一些实施例,使用运行时固件流程完成QPI平台的动态重新配置,所述运行时固件流程使用QPI停顿操作。
在一些实施例中,通过从存储器中读取停顿代码来对所述停顿代码进行缓存。停顿数据被缓存,并且通过执行数据读取和写入操作以使得高速缓存线处于修改后状态来阻止对该数据的任何修改被写回到存储器中。禁止预取以避免***重新配置代码执行期间的存储器访问。通过避开除了停顿代码和数据之外的所有地址区域而不进行从存储器的推测性加载。非核心被清洗以确保在执行任何***重新配置操作之前完成了所有的未完成事务。在***重新配置代码在核心中执行时,所有其他线程被同步,以确保它们在高速缓存外部执行。在***重新配置窗口期间停止所有带外(OOB)调试钩子。
根据一些实施例,QPI部件支持停顿模式,通过所述停顿模式,所有QPI代理暂停除了停顿之外的正常业务。根据一些实施例,下面示出了处理器的停顿模式特定寄存器(MSR)的定义。该寄存器可以根据一些实施例用于软件来通过处理器MSR发起停顿、取消停顿和非核心屏障操作。
图4说明了根据一些实施例的流程400。在一些实施例中,流程400是停顿数据生成流程。首先,在402确定和/或识别RAS操作。然后,如果需要的话,在404初始化新的链路(例如,QPI链路)。然后,在406(如果需要的话,例如使用周期SMI)计算诸如SAD、链路路由(和/或QPI路由)、广播列表等的停顿数据。在408,设置停顿请求标志。然后在410生成停顿SMI#。
在一些实施例中,仅一个处理器核心(例如,“Monarch”处理器)被允许在重新配置窗口期间运行,并且阻止所有其他核心的任何外发访问。在一些实施例中,在停顿-取消停顿窗口外部计算重新配置数据以减少SMI延迟。
图5、6和7说明了根据一些实施例的流程500、600和700。在一些实施例中,流程500、600和700说明了用于实现诸如QPI平台的平台的动态重新配置的流程。在一些实施例中,流程500、600和700使用实现QPI停顿的运行时固件流程。
从***中所有可用核心中选择停顿Monarch核心来执行停顿、***重新配置和取消停顿操作。停顿核心可能具有多个线程。每一个停顿核心线程需要确保其在重新配置操作期间不访问任何存储器。例如,在图5、6和/或7中,该操作被概括为MonarchAP(应用处理器,即,非Monarch处理器)线程。
在图5的502,确定SMI是否运行在被识别为允许在重新配置期间运行的一个处理器的Monarch QPI代理(例如,Monarch处理器)上。如果在502不是SMI Monarch,则在504执行常规SMI AP(应用处理器,即非-Monarch处理器)自旋循环。如果在502是SMI Monarch,则在506确定停顿请求标志是否被设置。如果在506没有设置停顿请求标志,则在508执行常规SMI Monarch代码。然而,如果在506设置了停顿请求标志,则在510实现唤醒Monarch AP线程(例如,如果Monarch AP线程是活动的)。在一些实施例中,如果每个线程在进入AP自旋循环之前检查停顿请求标志,则可以避免唤醒。
在512,停顿Monarch禁止任何外部代理对存储器或配置备用寄存器(CSR)的访问。RTA和SAD被正常实现为CSR,从而在重新配置阶段期间对CSR的访问可能导致证实错误内容。在一些实施例中,这通过配置实现特定MSR或通过请求带外(OOB)设备(例如,基带管理控制器(BMC)、***服务处理器(SSP)和/或管理引擎(ME))来实现。在一些实施例中,可以例如通过禁止处理器调试钩子或通过禁止通过处理器边带接口的访问来实现在512的外部代理对存储器或CSR的访问。在514确定是否已经禁止了外部代理的CSR访问。如果在514还没有禁止,则该线程中的流程保持在514直到已经禁止为止。一旦确定在514已经禁止了外部代理的CSR访问,则在516通过设置QUIESCE_CTL寄存器中的停顿比特(例如,通过设置QUIESCE_CTL1.Quiesce=1),和在一些实施例中将MonarchStatus设置为“QUIESCE_ON”,来发起停顿操作。该操作确保所有的QPI代理进入停顿状态并且不发起任何新的事务。在Monarch AP线程中,流程保持在522直到确定MonarchStatus已经被设置为“QUIESCE_ON”为止。流程从516移动到图6中的“Mon1”,并且流程从522移动到图6中的“MAPT1”。
一旦***处于停顿状态,则如图6中的Monarch线程流程所示,Monarch线程对代码和数据二者进行缓存并且开始在高速缓存外部进行执行,而没有外部存储器访问。在602,进行关于MonarchAPStatus是否是“准备好重新配置”的确定。在一些实施例中,仅当存在Monarch AP时才对此进行检查。一旦Monarch AP状态是“准备好重新配置”,则在604发生禁止预取操作。在一些实施例中,这在604通过以下操作来实现:保存MISC_FEATURE_CONTROL,然后执行“MFENCE”(存储器屏障——例如,串行化操作,其保证程序次序在MFENCE指令之前的每个加载和存储指令是在MFENCE指令之后的任何加载或存储指令全局可见之前全局可见的)和/或然后将MISC_FEATHURE_CONTROL设置为0Fh。在一些实施例中,这在604通过保存预取控制、MFENCE和禁止预取来实现。在606,针对具有WB(写回缓存属性)属性的停顿代码和数据区和具有UC(未缓存的缓存属性)属性的CSR访问区建立页表。建立这些页表,以使得在停顿代码区外部不存在推测性加载。建立这些页表,以使得仅停顿代码区是UC。这间接地确保不在停顿代码区外部执行推测性加载。在608,读取停顿代码区以对代码进行缓存。在610,执行停顿数据区的读取和写入。在一些实施例中(未在图6中示出),然后执行到所缓存的代码的跳转(例如,跳转到停顿Monarch代码)。在该步骤,在高速缓存外部,而非从存储器执行代码。在614,设置UnCoreFence比特(例如,QUIESCE_CTL 1.UnCoreFence=1)。
在图6中使用停顿Monarch代码来对停顿代码和数据进行缓存。例如,在622,发生禁止预取操作。在一些实施例中,保存预取控制,MFENCE并禁止预取。在一些实施例中,这在622通过以下操作来实现:保存MISC_FEATURE_CONTROL,然后执行“MFENCE”(存储器屏障)和/或然后将MISC_FRETURE_CONTROL设置为0Fh。在624,针对具有WB属性的停顿代码区和具有UC属性的CSR访问区建立页表。建立这些页表,以使得在停顿代码和数据区外部不存在推测性加载。建立这些页表,以使得仅停顿代码和数据区是UC。这间接地确保不在停顿代码和数据区外部执行推测性加载。在626,读取停顿代码区以对代码进行缓存。读取和写入停顿数据区,以对处于修改后状态的数据进行缓存。这确保在***重新配置期间任何停顿数据访问不会导致存储器访问。在628,实现到停顿Monarch代码(和/或停顿AP代码)的跳转。在该步骤,在高速缓存外部执行代码。在630,MonarchAPStatus被设置为“准备好重新配置”。流程从614移动到图7中的“Mon2”并且流程从630移动到图7中的“MAPT2”。执行非核心屏障以确保来自核心、非核心和插座的包括高速缓存牺牲业务的所有未完成事务被排净(drain)。此时,所有的代码和数据访问都是来自高速缓存的,并且没有存储器访问被执行。
根据一些实施例,Monarch停顿通过对每个插座上的RTA、SAD等进行编程来对***进行重新配置。***被设置为取消停顿,并且所有的核心能够从先前暂停的位置继续。恢复预取和外部代理的CSR访问。这例如根据图7来实现。在702,***被重新配置(例如,通过对QPI路由、SAD、广播列表等进行编程来进行)。在704,将Monarch状态设置为“已完成重新配置”。在706进行关于MonarchAPStatus是否是“AP_DONE”的确定。在一些实施例中,仅在Monarch AP存在时才对此进行检查。一旦在706确定Monarch AP状态是“已完成AP”,则在708恢复预取控制。在710,“QUIESCE_CTL1.UnQuiesce”比特被设置为“1”,并且“QuiesceStatus”被设置为“QUIESCE_OFF”。然后在712执行到常规SMI Monarch代码的返回。
在722,进行关于MonarchStatus是否被设置为“已完成重新配置”的确定。如果是,则在724恢复预取控制。在726,将MonarchAPStatus设置为“AP_DONE”。然后在728执行到常规SMI AP代码的返回。
具有诸如QPI的一致性链路、多个处理器(MP)、多个存储器控制器和多个芯片组的***正在被设计出来并且正在变得越来越普及。包括但不限于处理器热插拔、处理器迁移、存储器热插拔、存储器镜像、存储器迁移和存储器备用等的高级RAS特征将在服务器市场细分中变得普及。RAS特征要求基本输入/输出***(BIOS)在运行时期间完成很多工作。根据一些实施例,***重新配置在不需要昂贵硬件钩子的情况下被实现。
基于快速通道互联(QPI)(和/或CSI)的服务器***引入的高级RAS特征包括但不限于:处理器热插拔、存储器热插拔、存储器镜像、存储器迁移和存储器备用等。这些特征要求在操作***(OS)正在运行时动态地改变***配置。当前使用***管理中断(SMI)来实现这些操作,其中,SMI汇集所有的处理器,执行API代理(例如,处理器、IOH等)的停顿,并且对***配置(例如QPI路由、地址解码器等)进行重新编程。然而,SMI在存储器外部执行,这在QPI路由改变期间是不能容忍的。因此,在一些实施例中,SMI处理程序代码和数据被加载到高速缓存中并且在其外部执行。这使得运行时配置流程与高速缓存架构是非常相关的。此外,通过SMI代码执行进行的对代码的缓存和对QPI路由和地址解码器的重新编程将花费相当长的时间。由于在SMI延迟上的OS限制,需要在严格的时间约束下小心地写入SMI停顿和QPI编程代码以满足延迟要求。这些因素使得先前的停顿流程变得非常复杂,并且难以编码和验证。
根据一些实施例,影子寄存器允许硬件执行停顿操作并且改变***配置,而在停顿下不执行任何BIOS和/或SMI代码。这允许对***配置的快速改变、低SMI延迟(或无SMI延迟),并且移除对处理器高速缓存架构的相关性和相关联的复杂化。
图8说明了根据一些实施例的***800。在一些实施例中,***800包括多个处理器和/或中央处理单元(CPU),包括例如CPU0 802、CPU1 804、CPU2 806和CPU3 808。在一些实施例中,***800附加地包括多个存储器,包括例如,存储器812、存储器814、存储器816和存储器818。在一些实施例中,处理器802、804、806和808的每一个具有存储器控制器。在一些实施例中,***800附加地包括一个或多个输入/输出中心(IOH),包括例如IOH0 822和IOH1 824。在一些实施例中,处理器802、804、806和808以及IOH 822和IOH 824通过多个链路和/或互连耦合在一起。在一些实施例中,耦合处理器802、804、806和808以及IOH0 822和IOH1 824的链路和/或互连是多个一致性链路,例如在一些实施例中,是快速通道互联(QPI)链路和/或多个通用***接口(CSI)链路。
图8的***800假设当***被引导时CPU3 808(和/或图1的***中的CPU3 108)存在,但是要被从正在运行的***中热移除。其他处理器802、804和806以及IOH 822和824之间的链路(例如,一致性链路和/或QPI链路)被示出为已初始化其正在工作的链路,而CPU3 808和其他部件之间的链路在图8中使用虚线示出,这是因为这些链路在CPU3 808的热移除后不再需要是活动的。为了处理CPU3 808的热移除,OS将需要停止使用CPU3 808和耦合到CPU3 808的存储器818。***必须被停顿,CPU3 808在所有插座中的地址路由必须被移除,并且到CPU3 808的链路路由(例如,QPI路由)必须在所有插座中被移除。然后,***需要被取消停顿,以便继续OS。
图9说明了根据一些实施例的***900。在一些实施例中,***900包括多个处理器和/或中央处理单元(CPU),包括例如CPU0 902、CPU1 904、CPU2 906和CPU3 908。在一些实施例中,***900附加地包括多个存储器,包括例如,存储器912、存储器914、存储器916和存储器918。在一些实施例中,处理器902、904、906和908的每一个具有存储器控制器。在一些实施例中,***900附加地包括一个或多个输入/输出中心(IOH),包括例如IOH0 922和IOH1 924。在一些实施例中,处理器902、904、906和908以及IOH 922和IOH 924通过多个链路和/或互连耦合在一起。在一些实施例中,耦合处理器902、904、906和908以及IOH0 922和IOH1 924的链路和/或互连是多个一致性链路,例如在一些实施例中,是快速通道互联(QPI)链路和/或多个通用***接口(CSI)链路。
图9的***900假设当***被引导时IOH1 924(和/或图1的***中的IOH1 124)存在,但是要被从正在运行的***中热移除。处理器902、904、906和908以及其他IOH0922之间的链路(例如,一致性链路和/或QPI链路)被示出为已初始化其正在工作的链路,而IOH1 924和其他部件之间的链路在图9中使用虚线示出,这是因为这些链路在IOH1 924的热移除后不再需要是活动的。为了处理IOH1 924的热移除,OS将需要停止使用IOH1924。***必须被停顿,IOH1 924在所有插座中的地址路由必须被移除,并且到IOH1 924的链路路由(例如,QPI路由)必须在所有插座中被移除。然后,***需要被取消停顿,以便继续OS。
在一些实施例中,每个代理(例如,每个QPI代理)提供用于链路路由(例如,QPI路由)、地址解码器、广播列表的一组影子寄存器和会影响***重新配置的任何其他寄存器。为了执行配置改变,在一些实施例中,用软件以新的配置寄存器对影子寄存器进行编程,并且该软件发起硬件请求以执行配置切换。一完成配置切换,新的配置就生效。
图10说明了根据一些实施例的流程1000。在一些实施例中,流程1000是配置改***件流程。流程1000在1002开始。在1004,用新的一组配置值对影子寄存器进行编程。在1006,从在配置改变之后没有被移除的诸如QPI代理的代理发起配置改变请求。通过对诸如模式特定寄存器(MSR)或配置空间寄存器(CSR)的硬件寄存器进行写入来发起配置改变。在1008,硬件执行配置改变操作。在一些实施例中,在1008,硬件例如以与图11中说明的并且后面将进一步详细描述的流程1100类似或相同的方式,来执行配置改变操作。硬件基于影子寄存器(例如在一些实施例中,如在图11中说明并在下文描述的那样)执行停顿并且切换到新的配置寄存器。在1010,***现在包含新的配置,并且***操作现在可以以新的配置继续。流程1000在1012结束。
图11说明了根据一些实施例的流程1100。在一些实施例中,流程1100表示硬件配置改变流程。流程1100在1102开始。在1104发送请求以停顿每个QPI代理(或在一些实施例中停顿其他类型的代理)。这阻止直接存储器访问(DMA),并且阻止来自除了停顿发起代理之外的任何QPI代理的任何新事务的生成。在一些实施例中,对于要完成的所有未完成事务进行轮询。在1106,流程1100等待所有的QPI代理返回确认,该确认表明代理已经进入停顿,并且已经排净所有的未完成事务。对所有的QPI代理作出请求,以根据影子寄存器对寄存器组(和/或新的配置)进行重新编程(和/或将寄存器组切换到影子寄存器)。例如,基于影子寄存器中设置的信息发送回确认。在一些实施例中,寄存器数据包含基于生成树要响应的对象。在例如以下文献中可以找到关于在一些实施例中这是如何进行的进一步的信息:美国专利申请序列号为11/011,801、在2006年6月15日公开为美国专利公开US-2006-0126656-A1并且名称为“Method,System,and Apparatusfor System Level Initialization”的美国专利申请。
在1108,广播配置改变请求。在1110进行关于是否所有的子生成树已经返回完成的确定。在一些实施例中,进行完成***重新配置的确认。一旦在1110所有的子生成树已经返回了完成,则在1112将取消停顿请求发送到所有的QPI代理(和/或新的代理)。在1114,进行关于是否所有的代理(和/或新的代理)都返回了确认的确定。一旦在1114所有的代理(和/或新的代理)已经返回了确认,则在1116恢复正常操作。这(例如,通过返回到执行代码)去除对DMA的阻止并且允许事务继续。
在一些实施例中,影子(和/或复制)寄存器保存新的配置信息。在一些实施例中,由软件实现配置改变的发起。在一些实施例中,硬件执行***停顿并且将影子配置切换到当前配置,以及还执行取消停顿以便然后继续***操作。在一些实施例中,硬件执行检查以确保在发起配置寄存器切换操作之前所有的QPI代理处于停顿状态。在一些实施例中,包含生成树的影子寄存器用于在重新配置之后返回数据。
当前服务器***实现基于MSR的机制以发起停顿和取消停顿。SMI代码需要将所有的处理器带到集合点并发起停顿。SMI需要对代码和数据进行缓存,并且需要确保在它改变***之前阻止预取和推测性加载(处理器不提供直接控制来禁止推测性加载,因此需要复杂的未缓存的和缓存的代码设置序列)。否则,存储器访问、监听、预取和推测性加载将导致QPI路由改变期间的SMI代码/数据访问问题并且导致***错误。SMI代码和形成这种特征所涉及的其他设置的验证非常复杂,并且可能导致SMI延迟超过SMI的OS允许时间限制。
在一些实施例中,使用能够在SMI和/或停顿/取消停顿时间窗口外部计算和编程的影子寄存器组。此外,通过硬件而非复杂的软件流程来进行影子寄存器切换。这有助于减少SMI延迟。
一些实施例不依赖于代码和/或数据缓存行为,并且因此是架构无关的。
在一些实施例中,由于影子寄存器切换在硬件中进行,并且每个QPI代理包含影子寄存器组,因此提供了可伸缩的解决方案。已有的基于SMI的解决方案需要SMI中的所有线程。随着QPI代理和/或核心数量的增加,需要花费很长时间来完成操作,并且违反了OS SMI延迟要求。在一些实施例中,解决方案从一代到另一代是更可扩展的并且是可伸缩的(例如,跨越方法可伸缩的)。
在一些实施例中,带外(OOB)固件(例如,***服务处理器或SSP)被允许来改变***配置而不会超过OS延迟限制,即使在使用慢边带接口时也是如此。当使用先前已有的解决方案时,SSP不能改变运行时***配置。
当前QPI解决方案(其是支持QPI平台上RAS特征的关键)是高速缓存架构相关、非常复杂、且难以验证的,并且固件处理程序需要手动调整来适应OS延迟要求。诸如从直接连接的闪存对QPI路由和地址解码器进行运行停顿和重新编程的其他替代是非常慢的,并且违反SMI延迟的OS要求。根据一些实施例克服了这些问题。在一些实施例中,在停顿时段内不进行影子寄存器的编程,因此减少了停顿的延迟以及执行停顿和***配置改变流程的固件的复杂性。根据一些实施例,去除了对高速缓存架构的相关性,并且移除了对复杂固件流程的需要。
在一些实施例中,由硬件执行配置改变,并且在配置改变期间不需要软件干涉。用这种方式,与改变***配置有关的总延迟比现有解决方案低得多,并且能够对终端用户进行实时响应。
如本文中所描述的,支持高端RAS特征是高端服务器市场细分中的平台的关键,所述高端RAS特征包括但不限于处理器、存储器的热插拔,在线/离线等。需要有效的QPI操作来实现这些RAS流。用于RAS的当前QPI停顿流程是由于高速缓存架构相关而特定于处理器代别的,这是因为停顿代码必须从高速缓存运行,而不生成外部存储器访问/监听/推测性加载等。这种流程对于编码而言是极为复杂的并且难以验证,并且因此可能严重地限制了在QPI上的RAS支持。在一些实施例中,使用了独立于处理器高速缓存架构的更简单的停顿解决方案。此外,在对于更大的多处理器(MP)平台伸缩良好的QPI平台上使得能够支持高端RAS特征。
一些实施例已在本文中描述为适用于***管理中断(SMI)技术。然而,其他实现涉及其他运行时接口。例如,在一些实施例中,使用平台管理中断(PMI)。
一些实施例已在本文中被描述和说明为包括例如处理器核心和/或集成存储器的插座。然而,在一些实施例中,另外的部件被集成到插座中。例如,在一些实施例中,I/O根复合体被集成到例如处理器插座中。在一些实施例中,I/O设备被集成到处理器插座中。集成到处理器插座的额外部件的进一步的实施例在当前和未来的实施例实现中也是显而易见的。
尽管一些实施例已在本文中被描述为可适用于基于QPI的***,但是根据一些实施例,可以不需要这些特定实现。即,本文描述的实施例在一些实施例中可适用于任何一致性链路而不限于QPI。在一些实施例中,实现了非基于QPI的***。在一些实施例中,实现了基于节点控制器的***。
尽管已经参考特定实现描述了一些实施例,但是其他实现根据一些实施例也是可能的。此外,在附图中说明的和/或本文中描述的电路元件或其他特征的布置和/或顺序不需要以所说明和描述的特定方式来布置。许多其他布置根据一些实施例也是可能的。
在附图中所示的每个***中,在某些情况中的元件可能分别具有相同附图标号或不同附图标号,以表明所表示的元件可以是不同和/或类似的。然而,元件可以足够灵活以具有不同的实现并且与本文中所示出或描述的一些或所有***一起工作。附图中所示的各个元件可以是相同或不同的。哪个被称为第一元件以及哪个被称为第二元件是任意的。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解,这些术语并非旨在作为彼此的同义词。而是在特定的实施例中,“连接”可以用于表明两个或更多元件相互之间是直接物理或电接触的。“耦合”可以表明两个或更多元件是直接物理或电接触的。然而,“耦合”还可以表明两个或更多元件不是直接彼此接触的,但是仍然相互协作或交互。
本文中的算法一般被认为是导致期望结果的动作或操作的自相容序列。这些包括对物理量的物理操纵。通常但不是必须的,这些量采用能够被存储、传送、组合、比较和其他方式操纵的电或磁信号的形式。主要为了通用的原因,有时将这些信号称为比特、值、要素、符号、字符、项或数字等已经被证实是方便的。然而,应当理解,所有这些和类似术语应当与适当的物理量相关联并且仅仅是应用到这些量的方便标记。
可以用硬件、固件和软件中的一个或组合实现一些实施例。还可以将一些实施例实现为存储在机器可读介质上的指令,这些指令可以被计算平台读取和执行以执行本文中所描述的操作。机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式存储或传输信息的任何机构。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号、发送和/或接收信号的接口等)以及其他。
实施例是本发明的实现或示例。在本说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用表示结合这些实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但是不必然被包括在本发明的所有的实施例中。在各处出现的“实施例”、“一个实施例”或“一些实施例”不必然都指的是相同的实施例。
不是本文中所说明的所有的部件、特征、结构、特性等均需要被包括在特定实施例或多个实施例中。例如,如果说明书声明部件、特征、结构或特性“可以”(may)、“可能”(might)、“能够”(can)或“能”(could)被包括,则该特定部件、特征、结构或特性不必须被包括。如果说明书或权利要求提及“一个”(“a”或“an”)元件,这并不意味着仅有一个该元件。如果说明书或权利要求提及“一个附加的”元件,这并不排除有一个以上的所述附加元件。
尽管本文中可能使用了流程图和/或状态图来描述实施例,但是本发明不限于本文中的这些图或对应的描述。例如,流程不必移动通过每个说明的框或者状态,或者以与本文中所说明和描述的完全相同的顺序来移动。
本发明不限于本文中所列出的特定细节。实际上,从本公开获益的本领域技术人员将理解,可以在本发明的范围内对以上描述和附图进行许多其他变型。因此,由包括对其的任意修改的所附权利要求限定本发明的范围。
Claims (35)
1.一种用于动态***重新配置的方法,包括:
缓存要用于执行***的动态硬件重新配置的***重新配置代码和数据,其中所述***包括多个处理器核心;
在所述动态硬件重新配置期间阻止所有直接或间接存储器访问;
由所述多个处理器核心或线程中执行所缓存的***重新配置代码和数据的一个处理器核心或线程来实现所述动态硬件重新配置。
2.根据权利要求1所述的方法,还包括仅允许所述多个处理器核心中的一个在所述动态硬件重新配置期间运行。
3.根据权利要求2所述的方法,还包括阻止除了所允许的一个处理器核心之外的所有所述多个处理器核心的任何外发存储器访问。
4.根据权利要求1所述的方法,还包括在所述动态硬件重新配置期间禁止预取以避免存储器访问。
5.根据权利要求1所述的方法,还包括避免推测性存储器加载。
6.根据权利要求1所述的方法,还包括清洗所述多个处理器核心中的一个或多个,以确保在执行所述动态硬件重新配置之前完成所有未完成的事务。
7.根据权利要求1所述的方法,还包括在所述动态硬件重新配置期间避免任何带外调试钩子。
8.根据权利要求1所述的方法,还包括从所述多个处理器核心中选择所述一个处理器核心来执行所述动态硬件重新配置。
9.根据权利要求1所述的方法,其中,所述动态硬件重新配置包括热添加、热移除、热插拔、热交换、存储器迁移、存储器镜像、运行时链路重新配置、运行时错误注入和/或处理器迁移中的一个或多个。
10.根据权利要求9所述的方法,其中所述热添加包括热处理器添加、热存储器添加、热芯片组添加、以及热输入/输出中心添加中的一个或多个;以及
其中所述热移除包括热处理器移除、热存储器移除、热芯片组移除、以及热输入/输出中心移除中的一个或多个。
11.根据权利要求1所述的方法,其中,所述动态硬件重新配置包括可靠性、可用性和可服务性特征。
12.根据权利要求1所述的方法,其中,以对操作***透明的方式执行所述动态硬件重新配置。
13.根据权利要求1所述的方法,其中,所述动态硬件重新配置是所述***中一个或多个硬件设备的原子更新。
14.根据权利要求1所述的方法,其中,所述动态硬件重新配置包括停顿操作。
15.根据权利要求1所述的方法,还包括用新的一组配置值对影子寄存器进行编程。
16.根据权利要求1所述的方法,还包括通过对硬件寄存器进行写入来发起配置改变。
17.根据权利要求16所述的方法,其中,所述硬件寄存器是模式特定寄存器或配置空间寄存器。
18.根据权利要求1所述的方法,还包括响应于硬件寄存器中的值而执行配置改变。
19.一种用于动态***重新配置的装置,包括:
高速缓存,用于存储缓存要用来执行动态硬件重新配置的***重新配置代码和数据;以及
多个处理器核心,其中,所述多个处理器核心中的一个用于执行所缓存的***重新配置代码和数据以执行所述动态硬件重新配置,其中,在所述动态硬件重新配置期间,阻止由所述多个处理器核心进行的所有直接或间接存储器访问。
20.根据权利要求19所述的装置,其中,所述多个处理器核心中仅有一个处理器核心被允许在所述动态硬件重新配置期间运行。
21.根据权利要求20所述的装置,其中,阻止除了所允许的一个处理器核心之外的所有所述多个处理器核心的任何外发存储器访问。
22.根据权利要求19所述的装置,其中,在所述动态硬件重新配置期间禁止预取以避免存储器访问。
23.根据权利要求19所述的装置,其中,避免推测性存储器加载。
24.根据权利要求19所述的装置,其中,清洗所述多个处理器核心中的一个或多个以确保在执行所述动态硬件重新配置之前完成所有未完成的事务。
25.根据权利要求19所述的装置,其中,在所述动态硬件重新配置期间避免任何带外调试钩子。
26.根据权利要求19所述的装置,其中,所述动态硬件重新配置包括热添加、热移除、热插拔、热交换、存储器迁移、存储器镜像、运行时链路重新配置、运行时错误注入和/或处理器迁移中的一个或多个。
27.根据权利要求26所述的装置,其中所述热添加包括热处理器添加、热存储器添加、热芯片组添加、以及热输入/输出中心添加中的一个或多个;以及
其中所述热移除包括热处理器移除、热存储器移除、热芯片组移除、以及热输入/输出中心移除中的一个或多个。
28.根据权利要求19所述的装置,其中,所述动态硬件重新配置包括可靠性、可用性和可服务性特征。
29.根据权利要求19所述的装置,其中,以操作***透明的方式执行所述动态硬件重新配置。
30.根据权利要求19所述的装置,其中,所述动态硬件重新配置是所述***中一个或多个硬件设备的原子更新。
31.根据权利要求19所述的装置,其中,所述动态硬件重新配置包括停顿操作。
32.根据权利要求19所述的装置,还包括用新的一组配置值来编程的影子寄存器。
33.根据权利要求19所述的装置,所述多个处理器核心中的至少一个通过对硬件寄存器进行写入来发起配置改变。
34.根据权利要求33所述的装置,其中,所述硬件寄存器是模式特定寄存器或配置空间寄存器。
35.根据权利要求19所述的装置,还包括存储值的硬件寄存器,其中,所述多个处理器核心中的所述一个响应于在所述硬件寄存器中存储的所述值而执行配置改变。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/655,586 US20110161592A1 (en) | 2009-12-31 | 2009-12-31 | Dynamic system reconfiguration |
US12/655,586 | 2009-12-31 | ||
PCT/US2010/059815 WO2011081840A2 (en) | 2009-12-31 | 2010-12-10 | Dynamic system reconfiguration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102473169A CN102473169A (zh) | 2012-05-23 |
CN102473169B true CN102473169B (zh) | 2014-12-03 |
Family
ID=44188870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080025194.0A Expired - Fee Related CN102473169B (zh) | 2009-12-31 | 2010-12-10 | 动态***重新配置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20110161592A1 (zh) |
EP (1) | EP2519892A4 (zh) |
JP (1) | JP5392404B2 (zh) |
KR (1) | KR101365370B1 (zh) |
CN (1) | CN102473169B (zh) |
WO (1) | WO2011081840A2 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110179311A1 (en) * | 2009-12-31 | 2011-07-21 | Nachimuthu Murugasamy K | Injecting error and/or migrating memory in a computing system |
CN103154927A (zh) * | 2010-10-16 | 2013-06-12 | 惠普发展公司,有限责任合伙企业 | 设备硬件代理 |
US20120155273A1 (en) * | 2010-12-15 | 2012-06-21 | Advanced Micro Devices, Inc. | Split traffic routing in a processor |
DE112011105692T5 (de) | 2011-09-29 | 2014-07-24 | Intel Corporation | Verfahren und eine Vorrichtung zur Injektion von Fehlern in einen Speicherhintergrund |
TWI454905B (zh) * | 2011-09-30 | 2014-10-01 | Intel Corp | 在多核心平台中之受限制的啓動技術 |
KR101572403B1 (ko) | 2011-12-22 | 2015-11-26 | 인텔 코포레이션 | 메모리 채널 셧다운에 의한 전력 절약 |
US9342394B2 (en) | 2011-12-29 | 2016-05-17 | Intel Corporation | Secure error handling |
KR101867960B1 (ko) * | 2012-01-05 | 2018-06-18 | 삼성전자주식회사 | 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법 |
EP2965246A4 (en) * | 2013-03-07 | 2016-10-19 | Intel Corp | MECHANISM FOR RELIABILITY, AVAILABILITY, AND MAINTENANCE CAPACITY (RAS) MECHANISM IN A PAIR MONITOR |
CN103488436B (zh) * | 2013-09-25 | 2017-04-26 | 华为技术有限公司 | 内存扩展***及方法 |
EP3060992B1 (en) * | 2013-10-27 | 2019-11-27 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
US9569267B2 (en) * | 2015-03-16 | 2017-02-14 | Intel Corporation | Hardware-based inter-device resource sharing |
US9811491B2 (en) | 2015-04-07 | 2017-11-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Minimizing thermal impacts of local-access PCI devices |
CN106708551B (zh) * | 2015-11-17 | 2020-01-17 | 华为技术有限公司 | 一种热添加中央处理器cpu的配置方法及*** |
CN106844258B (zh) * | 2015-12-03 | 2019-09-20 | 华为技术有限公司 | 热添加CPU使能x2APIC的方法和服务器*** |
WO2017113128A1 (zh) | 2015-12-29 | 2017-07-06 | 华为技术有限公司 | 一种cpu及多cpu***管理方法 |
US10430580B2 (en) * | 2016-02-04 | 2019-10-01 | Intel Corporation | Processor extensions to protect stacks during ring transitions |
CN106055436A (zh) * | 2016-05-19 | 2016-10-26 | 浪潮电子信息产业股份有限公司 | 一种测试QPI data lane Degrade功能的方法 |
WO2020000354A1 (en) * | 2018-06-29 | 2020-01-02 | Intel Corporation | Cpu hot-swapping |
US10572430B2 (en) | 2018-10-11 | 2020-02-25 | Intel Corporation | Methods and apparatus for programming an integrated circuit using a configuration memory module |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542638A (zh) * | 2003-04-28 | 2004-11-03 | �Ҵ���˾ | 用于无中断动态热插拔的***与方法 |
CN1801740A (zh) * | 2004-12-13 | 2006-07-12 | 英特尔公司 | 资源动态再配置的方法、***和设备 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US955010A (en) * | 1909-01-11 | 1910-04-12 | Monarch Typewriter Co | Type-writing machine. |
UST955010I4 (en) * | 1975-03-12 | 1977-02-01 | International Business Machines Corporation | Hardware/software monitoring system |
US5493668A (en) * | 1990-12-14 | 1996-02-20 | International Business Machines Corporation | Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation |
US5604863A (en) * | 1993-11-01 | 1997-02-18 | International Business Machines Corporation | Method for coordinating executing programs in a data processing system |
US6304984B1 (en) * | 1998-09-29 | 2001-10-16 | International Business Machines Corporation | Method and system for injecting errors to a device within a computer system |
JP2000259586A (ja) * | 1999-03-08 | 2000-09-22 | Hitachi Ltd | マルチプロセッサシステムの構成制御方法 |
US6725317B1 (en) * | 2000-04-29 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for managing a computer system having a plurality of partitions |
US6629315B1 (en) * | 2000-08-10 | 2003-09-30 | International Business Machines Corporation | Method, computer program product, and system for dynamically refreshing software modules within an actively running computer system |
US6775728B2 (en) * | 2001-11-15 | 2004-08-10 | Intel Corporation | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
US7130951B1 (en) * | 2002-04-18 | 2006-10-31 | Advanced Micro Devices, Inc. | Method for selectively disabling interrupts on a secure execution mode-capable processor |
US7254676B2 (en) * | 2002-11-15 | 2007-08-07 | Intel Corporation | Processor cache memory as RAM for execution of boot code |
JP3986950B2 (ja) * | 2002-11-22 | 2007-10-03 | シャープ株式会社 | Cpuおよびこれを備えた情報処理装置、cpuの制御方法 |
US6799227B2 (en) * | 2003-01-06 | 2004-09-28 | Lsi Logic Corporation | Dynamic configuration of a time division multiplexing port and associated direct memory access controller |
US20050114687A1 (en) * | 2003-11-21 | 2005-05-26 | Zimmer Vincent J. | Methods and apparatus to provide protection for firmware resources |
JP4320247B2 (ja) * | 2003-12-24 | 2009-08-26 | 株式会社日立製作所 | 構成情報設定方法および装置 |
US7302539B2 (en) * | 2005-04-20 | 2007-11-27 | Hewlett-Packard Development Company, L.P. | Migrating data in a storage system |
US7386662B1 (en) * | 2005-06-20 | 2008-06-10 | Symantec Operating Corporation | Coordination of caching and I/O management in a multi-layer virtualized storage environment |
US7818736B2 (en) * | 2005-09-14 | 2010-10-19 | International Business Machines Corporation | Dynamic update mechanisms in operating systems |
US20070226795A1 (en) * | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
US7533249B2 (en) * | 2006-10-24 | 2009-05-12 | Panasonic Corporation | Reconfigurable integrated circuit, circuit reconfiguration method and circuit reconfiguration apparatus |
US7640453B2 (en) * | 2006-12-29 | 2009-12-29 | Intel Corporation | Methods and apparatus to change a configuration of a processor system |
US7856551B2 (en) * | 2007-06-05 | 2010-12-21 | Intel Corporation | Dynamically discovering a system topology |
US7900029B2 (en) * | 2007-06-26 | 2011-03-01 | Jason Liu | Method and apparatus to simplify configuration calculation and management of a processor system |
US7818555B2 (en) * | 2007-06-28 | 2010-10-19 | Intel Corporation | Method and apparatus for changing a configuration of a computing system |
US8099561B2 (en) * | 2007-11-09 | 2012-01-17 | Plurality, Ltd. | Shared memory system for a tightly-coupled multiprocessor |
US7921286B2 (en) * | 2007-11-14 | 2011-04-05 | Microsoft Corporation | Computer initialization for secure kernel |
US7925857B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | Method for increasing cache directory associativity classes via efficient tag bit reclaimation |
US7987336B2 (en) * | 2008-05-14 | 2011-07-26 | International Business Machines Corporation | Reducing power-on time by simulating operating system memory hot add |
US20100281222A1 (en) * | 2009-04-29 | 2010-11-04 | Faraday Technology Corp. | Cache system and controlling method thereof |
US20110179311A1 (en) * | 2009-12-31 | 2011-07-21 | Nachimuthu Murugasamy K | Injecting error and/or migrating memory in a computing system |
-
2009
- 2009-12-31 US US12/655,586 patent/US20110161592A1/en not_active Abandoned
-
2010
- 2010-12-10 EP EP10841477.2A patent/EP2519892A4/en not_active Withdrawn
- 2010-12-10 JP JP2012516396A patent/JP5392404B2/ja not_active Expired - Fee Related
- 2010-12-10 CN CN201080025194.0A patent/CN102473169B/zh not_active Expired - Fee Related
- 2010-12-10 KR KR1020117031359A patent/KR101365370B1/ko active IP Right Grant
- 2010-12-10 WO PCT/US2010/059815 patent/WO2011081840A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542638A (zh) * | 2003-04-28 | 2004-11-03 | �Ҵ���˾ | 用于无中断动态热插拔的***与方法 |
CN1801740A (zh) * | 2004-12-13 | 2006-07-12 | 英特尔公司 | 资源动态再配置的方法、***和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP5392404B2 (ja) | 2014-01-22 |
US20110161592A1 (en) | 2011-06-30 |
KR101365370B1 (ko) | 2014-02-24 |
JP2012530327A (ja) | 2012-11-29 |
EP2519892A4 (en) | 2017-08-16 |
CN102473169A (zh) | 2012-05-23 |
EP2519892A2 (en) | 2012-11-07 |
KR20120026576A (ko) | 2012-03-19 |
WO2011081840A3 (en) | 2011-11-17 |
WO2011081840A2 (en) | 2011-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473169B (zh) | 动态***重新配置 | |
KR101828756B1 (ko) | 고성능 인터커넥트 코히어런스 프로토콜 | |
KR100342802B1 (ko) | L1 데이타 캐시 패러티 에러 복구 메카니즘 | |
US9588844B2 (en) | Checkpointing systems and methods using data forwarding | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
TW445416B (en) | Upgrade card for a computer system and method of operating the same | |
US8949659B2 (en) | Scheduling workloads based on detected hardware errors | |
EP2645237B1 (en) | Deadlock/livelock resolution using service processor | |
US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
CN101084485A (zh) | 用于改善片上仿真***中高级语言的仿真速度的装置和方法 | |
US9342393B2 (en) | Early fabric error forwarding | |
CN101334735B (zh) | 多处理器计算***中单个处理器的代码更新的方法和*** | |
JP2017527902A (ja) | 例外からの復帰時のマスク不可割り込みの早期有効化の回避 | |
JP6187600B2 (ja) | 分散型環境におけるコンピュータプログラムの実装パラメータテスト | |
CN103562865A (zh) | 重新编程可编程硬件设备而不需要***停机时间 | |
CN104460938A (zh) | 利用存储器高速缓存在***范围内节省电力的方法和*** | |
WO2019169582A1 (zh) | 处理中断的方法和装置 | |
US7373555B2 (en) | Systems and methods controlling transaction draining for error recovery | |
US7302690B2 (en) | Method and apparatus for transparently sharing an exception vector between firmware and an operating system | |
US7673125B2 (en) | Resetting multiple cells within a partition of a multiple partition computer system | |
US7225284B2 (en) | Increasing the quantity of I/O decode ranges using SMI traps | |
JP2011180840A (ja) | プロセッサ、マルチプロセッサシステム、及びメモリアクセス不正検出方法 | |
CN116339475A (zh) | 硬件的复位方法、配置方法、电子设备与存储介质 | |
CN102073551A (zh) | 可自我重置的微处理器及其方法 | |
KR20050069691A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141203 Termination date: 20181210 |