专利名称:资源动态再配置的方法、系统和设备的制作方法
技术领域:
本发明涉及支持联机增加和删除系统资源和/或再配置操作。例如,本发明易于在多操作系统(OS)分区间动态分配系统资源。
背景技术:
当前系统基于前端总线(FSB),不允许对独立总线组件进行热插拔。相反,新的总线技术方案支持增加和删除系统资源,但受限于粗糙的粒度,例如要求FSB上的所有处理器遵循系统控制芯片组。
发明内容
一种便于资源动态再配置的系统,包含具有耦合到网络结构的多个高速缓存代理和本地代理的点对点结构;该系统支持独立资源的动态再配置。
一种联机增加独立资源的方法,包含为独立资源建立物理和逻辑信息;在正在运行的系统(RS)和该独立资源之间定义串行链路;设置通向固件的路径;在该独立资源上运行自测试和初始化;向该RS上的固件执行指示该独立资源准备好加入至少一个分区;向该RS上的操作系统(OS)指示该独立资源准备好加入至少一个分区。
一种联机删除处理器结点的方法,包含要求移除处理器结点;对于要求移除的该处理器结点,从脱机的处理器和存储器中移走应用程序;从各个相关列表中移除要求移除的该处理器结点;产生要求移除的该处理器结点确实被移除的信号。
一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的该存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段。
一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的该存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段;如果移除的存储结点被分配给直接存储器访问(DMA)设备,则停止设备驱动程序或将其分配给新的缓存器。
一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的该存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段;如果移除的存储结点被分配给直接存储器访问(DMA)设备,则停止设备驱动程序或将其分配给新的缓存器;固件针对移除的存储结点定义的地址范围刷新处理器和多个平台高速缓冲存储器。
一种便于资源动态再配置的系统,包含具有耦合到网络结构的多个高速缓存代理和本地代理的点对点结构;该系统用停止和激活操作支持独立资源的动态再配置;该动态再配置允许联机增加和联机删除独立资源,且不要求重新启动操作系统。
在说明书的结论部分特别指出并清楚地要求了主题。然而所要求的主题,关于操作的组织和方法连同对象、特征和其优点,在结合附图参考以下详细描述时可以更好的理解,其中图1是一个实施例使用的协议结构。
图2说明一个实施例使用的联机增加资源的方法的流程图。
图3说明一个实施例使用的联机删除资源的方法的流程图。
图4是系统的多个实施例。
具体实施例以下说明中描述了一种高速点对点网络(pTp)的细粒动态再配置的方法、设备和系统,为了说明的目的,阐述许多细节以便全面理解本发明。然而,对于本领域技术人员而言,不需要这些细节即可实践本发明。
当前技术发展的领域涉及可靠性、可用性和可服务性(RAS)以及动态再配置。如前所述,当前系统基于前端总线(FSB),该前端总线不允许对单个总线组件进行热插拔。相反,新的总线技术方案支持增加和删除系统资源,但受限于粗糙的粒度,例如,要求FSB上的所有处理器遵循系统控制芯片组。相反,所要求的主题便于包括联机增加、删除和替换独立模块的动态再配置,以便支持系统的动态分区、互连(链路)再配置、存储器RAS,从而允许没有OS干预的迁移和镜像、动态存储器再交错、CPU和套接字迁移,并支持跨分区的全局共享存储器。为了便于联机增加或删除,固件能停止(quiesce)和激活(de-quiesce)相关域,使得以对固件上的软件层实质上像是原子操作的方式更新许多系统资源、比如路由选择表和地址译码器。所要求的主题便于利用运行系统和/或系统服务处理器进行的动态配置的操作。运行系统已经由2002年的申请记录“在基于Itanium结构的系统上的结点热插拔”所提出。
在一个实施例中,运行系统包含系统资源,系统资源在新元素加入系统/域中时已经可操作,或者当元素从系统/域中移除时系统资源保留可操作性。
定义在一个实施例中,停止状态是除了由固件和/或服务系统处理器生成的协议事务处理以外,整个系统或其子集中都没有协议事务处理的状态。
在一个实施例中,停止是由固件或系统服务处理器做出的一组动作,以保证该整个系统或其子集达到停止。
在一个实施例中,模块可以包含多个CPU、交叉开关、存储器和存储控制器、IO集线器或前面的任何组合。在这个实施例中,前面模块的组合可以基于特定平台配置。
在一个实施例中,点对点结构是由英特尔公司的公共系统接口(CSI)定义的,并且支持分层协议方案。图1说明了基础网络的高速缓存一致性协议的抽象视图的示例。高速缓存一致性协议的一个示例在2004年提交的未决申请P18890中描述。
如前所述,所要求的主题便于至少部分基于能够停止和激活相关域的固件的联机增加或删除,使得以对固件上的软件层实质上像是原子操作的方式可以更新许多系统资源,比如路由选择表和地址译码器。以下几段将描述用平台相关配置或系统服务处理器对IA32和Itanium处理器的停止和激活的若干例子。
在一个实施例中,固件保证单个停止操作在任何时候至多在一个域内部进行。在另一个实施例中,多个停止操作在具有多个域的系统中是可允许的。例如,停止操作由特定内核(带内)或SSP((带外)启动。SSP能够通过它的非CSI网络控制该停止或者能够指定一个内核,该内核遵循带内流程。
··对于多分区系统,固件可以选择停止每个分区(子域)并在每个分区(子域)被停止后宣布停止,或通过对IOH作用域寄存器和相关数据结构适当编程来停止作为整体的域。
·在进行停止操作时(在IA-32平台中),不允许使用锁。例如,这可以用首先通过SMI操作将域中所有处理器带入SMM来保证。
使用系统服务处理器(SSP)停止/激活SSP可以用来代替前述带内流程。SSP可以使用带外总线如SM总线和JTAG,以便对处理器和IOH寄存器编程并检查它们的状态。然后该流程以类似于前面所述流程的方式进行,除了由“启动内核”执行的功能现在由SSP执行。或者,SSP可向启动内核发送PMI/SMI,然后完全依赖带内管理流程来实现停止/激括。
例如,图1是一个实施例使用的协议结构。该结构描述耦合到网络结构的多个高速缓存代理和本地代理。例如,该网络结构结合分层协议方案并可以包含下列任意一个或全部链路层、物理层、协议层、路由层、传输层。该结构便于将消息从一种协议(本地或高速缓存代理)传输到点到点网络的另一种协议。一方面,该图描述了基础网络的高速缓存一致性协议的抽象视图。
图2说明实施例使用的联机增加资源的方法的流程图。该图描述联机增加资源的流程的方法,该方法可由带内固件(运行在CPU上的固件)或系统服务处理器(SSP)或二者的结合来执行。在这个实施例中,增加的联机资源是一个处理器结点,有或没有其它实体。
起初,为联机增加处理器结点而执行物理和逻辑的建立。例如,SSP和/或RS固件知道平台的拓扑结构和处理器结点、OL_A将连接到的CSI链路。在一个实施例中,它为OL_A正连接到的一个或多个结点上存在的每个CSI实体在RS上建立适当的关于如下信息{结点ID,代理类型和交叉开关端口号}的链路控制器。同样地,它也为与此类CSI链路相关联的RS上的一个或多个配置实体编程,以便在链路初始化完成时,向RS上的一个或多个处理器实体生成PMI/SMI中断。
在一个实施例中,SMI是系统管理中断(IA32)并且PMI平台管理中断(等同IPF)。
在一个实施例中,其中OL-A结点是RS的一部分并已经具有活动链路,不执行PMI/SMI中断的供给(arming)。例如,这种情况出现在当处理器实体被逻辑上从一个分区中移除并加入到另一个分区时。
接着,通过物理方式或通过SSP将处理器结点插入,其中SSP允许将已存在结点包括到OS分区作为新处理器结点(OL_A结点)。如果涉及物理插入,则该插入触发在OL_A结点上的通电复位序列,并启动OL_A上的带外信号(SM总线、JTAG等等),就此,SSP能够访问OL_A上的控制状态寄存器(CSR)资源。
在一个实施例中,为每个链路定义CSR。例如,它映射链路端口状态和链路初始化进程。可由系统管理通道或带内固件查询CSR,以验证与链路状态有关的各种情况链路连接到远程组件、检测的空闲迁徙(idle flit)、检测的空闲迁徙确认、链路初始化状态、启动CSI链路初始化和帧序列等等。在一个实施例中,可通过构造空间访问CSR。
如果存在SSP,则它为加入RS的每个现场可置换单元(FRU)上存在的每个CSI实体用三元组{结点ID,代理类型和交叉开关端口号}建立OL_A的链路控制器。在没有SSP的情况下,OL_A上的固件(或微码)执行该功能。OL_A上的固件或OL_A内的配置代理可以读取一些平台信号或联接插脚以导出它们自己的结点ID信息。
该流程进行到下一个模块204,启动RS和要加入结点、OL_A之间的CSI链路。例如,将在以下几个段落讨论启动该链路的详细信息。
·SSP或RS上的固件向链路控制器发布命令以执行物理和链路层的初始化以及链路/协议层参数的交换。在成功的链路初始化结束,链路各侧锁存关于链路另一端上存在的CSI实体信息,即,三元组{结点ID,代理类型和交叉开关端口号}。
如果该OL_A已经是系统的一部分并且链路是激活的,将不执行这一步。
·RS上一个或多个处理器实体接收PMI/SMI以识别OL_A事件。可能有一些在OL_A结点内不同CSI实体之间的CSI链路也需要被初始化。当所有预期的CSI链路可操作时,在RS上的固件执行继续进行OL_A的结合。在多分区RS中,接收PMI/SMI中断的RS上的固件执行知道将OL_A结合到的分区,如果必要的话,并将PMI/SMI指示传递给正确分区上的固件执行。可通过写入生成PMI/SMI的目标上的CSR来通知这种指示,或使用平台资源、使用SSP来通知。
由于OL_A事件PMI/SMI中断生成未发生,其中OL_A结点是RS的一部分并已经有活动链路(例如路由经过OL_A)。OL_A可以如上所述向RS通知PMI/SMI。
就此,RS可以访问OL_A的CSR资源。
·该步骤是固件和平台实现相关的。系统接口可以提供一种机制,通过该机制OL_A组件被设置为等候RS唤醒的停止状态。可以通过使用由OL_A在复位取消声明读取的启动模式指令提供这样的指示,或在链路层参数交换期间使用系统/套接层参数来提供,或通过SSP设置OL_A的配置代理的CSR值来提供。
SSP和/或RS上的固件执行合作设立RS和OL_A组件上的路由选择表、地址译码器和其它CSI结构。在该编程的结尾,OL_A可以访问RS上全部/有限的资源。可以将固件设计成保护公共资源如互连结构使之免于OL_A错误地访问,直到该OL_A组件被测试成功。
该流程进行到下一个模块206,该模块设置到固件的路径。例如,将在以下几个段落讨论设置通向固件的路径的详细信息。
·每个处理器内核都需要通向固件实体的路径。如果该OL_A联合体具有固件实体,则可以使用该固件实体。如果该OL_A结点连接到RS上的固件实体,则那个固件实体能由该OL_A使用。如果这两个选择都不可用,那么来自OL_A的固件访问可以路由经过RS上的结点,其中该结点担当通向固件实体的管道。在这种情况下,SSP或RS上的固件在OL_A结点上建立地址译码器和路由选择表以路由固件访问。
·SSP或RS中的固件执行写入OL_A上的实现相关CSR,以将其从停止状态释放,如果该OL_A等待这样的信号。它们也可以提供平台资源中的一些配置值,比如通过OL_A限制平台发现的范围的热添加指示。
该流程进行到下一个模块208,该模块允许要增加的新结点、OL_A进行自测试并执行初始化。例如,将在以下几个段落讨论进行自测试和初始化的详细信息。
·OL_A上的每个处理器内核都尝试成为结点启动捆绑处理器(NBSP)。在一个可能的实施例中,使用简单的竞赛来设置预定配置寄存器标记可以决定获胜者。
·在一些结构配置中,在NBSP上运行的固件同样初始化并启动存储器桥或存储控制器的一些功能。在OL_A结点上,如果存在,该NBSP初始化并测试存储器。使用配置寄存器或其它实现相关平台资源,通过SSP/RS上的固件将尺寸和存储器间隙信息传达给OL_A。
·完成需要暂时存储器的附加内核初始化和测试。OL_A模式上的固件和RS上的固件使用IPI或实现相关平台资源相互通信。如果OL_A结点没有本地存储器,它的存储需求可以由RS上的存储器满足。当OL_A结点还不是RS相干域的一部分时,将这种存储器非相干地映射到RS和OL_A。非相干访问同样防止OL_A错误地访问RS。
如果期望OL_A引导独立的OS,那么OL_A结点有它自己的存储器,并且RS上的固件执行和OL_A之间的配合不可用。
该流进行到下一个模块210,该模块向RS上的固件执行指示OL_A已准备好加入一个或多个分区。例如,将在以下几个段落讨论详细信息。
·如果OL_A期望加入已存在的OS分区,则OL_A上的固件执行向RS上的固件执行发送指示。任何一端的固件执行都以实现相关方式交换信息。RS上的固件知道OL_A上处理器、由OL_A增加的存储器和I/O集线器资源的健康状况。
·如果OL_A导致RS内的任何分区(或者可选的,整个RS)的路由选择表的变化则固件执行停止所有受影响的CSI实体的操作,更新路由选择表,然后唤醒已停止的CSI实体。同样地,OL_A的路由选择表是可根据需要编程/重新编程的。同样,参考14.3.5节,“OL_*事件期间对于停止的需要”了解详情。
·如果OL_A期望形成一个新分区,如果必要的话将其唤醒,并且OL_A上的固件进行引导其操作系统。
剩下的步骤描述OL_A将要加入一个已存在的分区的方案。
·OL_A和RS更新它们的系统地址映射和地址译码器以合并新资源。RS可能需要修正OS分区的各种CSI实体中的有关列表(监听、中断广播、加锁等等)。如果不是以原子或一致方式修正这些列表,则可能发生协议违例。
·RS上的固件执行和OL_A处理器结点使用实现特定机制相互作用,并允许相互间相关性通信。
·OL_A结点上的固件执行通知RS上的固件执行关于引导进程,然后循环等待分区的OS的唤醒。
该流程进行到下一个模块212,该模块向RS上的OS指示OL_A结点已准备好加入一个或多个分区例如,详细信息将在以下几个段落讨论。
·RS上的固件执行建立适当的ACPI表,并使用ACPI机制向OS产生中断以通知资源的增加。如果资源正被加到多个OS分区,则该RS上的固件将向多个分区发送中断。
·OS使用ACPI方法/接口识别OL_A结点的资源。如果增加I/O集线器、桥和装置,则操作系统将在I/O集线器上为新增加的资源加载适当的设备驱动程序。如果增加了存储器,OS就可开始使用这些存储器。
·操作系统唤醒OL_A结点上的处理器,并在这些处理器上执行OS初始化步骤。
在另一个实施例中,增加的联机资源仅是存储结点。在这个实施例中,该流程类似于关于图2的描绘。然而,它们的差异在以下几个段落描述。
·将存储结点通电,并且如果有的话,启用带外信号。SSP或OL_A存储结点内的配置代理用三元组(结点ID,代理类型和交叉开关端口号)为增加到RS的FRU上存在的每个CSI实体建立它的链路控制器。
·在链路/协议层初始化期间,RS从代理类型参数交换中识别存储器实体的增加。
·OL_A存储器实体的增加向RS上的固件执行产生PMI/SMI。
·如果OL_A导致RS的任何分区中的路由选择表改变,则固件可能需要执行停止在这些分区(或者可选的,整个RS)上的所有CSI实体的操作,更新路由选择表,然后唤醒已停止的CSI实体。典型地纯存储器实体是叶结点,并且在无需停止的情况下,可以对RS的路由选择表进行修改。同样,参考14.3.5节,“OL_*事件期间对于停止的需要”了解详情。·初始化SSP/RS上的固件并测试OL_A结点上的存储器。
·RS更新它的系统地址映射和地址译码器以合并新资源。在存储器实体的目标地址译码器被建立用来寻址新加的存储器。
·RS上的固件执行建立适当的ACPI表,并使用ACPI机制向操作系统产生中断,以通知资源的增加。如果资源正被加到多个OS分区,则RS上的固件将向多个分区发送中断。
·RS上的一个或多个OS将该存储器与一个或多个OS分区结合。
在另一个实施例中,增加的联机资源仅是I/O集线器结点。在这个实施例中,该流程类似于关于图2的描绘。然而,它们的差异在以下几个段落描述。
·SSP或OL_A结点内的配置代理用三元组{结点ID,代理类型和交叉开关端口号}为增加到RS的FRU上存在的每个CSI实体建立它的链路控制器。
·在链路/协议层初始化期间,RS从代理类型参数交换中识别I/O代理实体的增加。
·OL_A I/O代理实体的增加向RS上的固件执行产生PMI/SMI。
·如果OL_A改变RS内的任何分区的路由选择表,则固件执行停止在该分区(或者可选的,整个RS)中的所有CSI实体的操作,然后更新路由选择表。
·RS确定下游总线和装置所要求的MMIO和I/O地址范围。它更新它的系统地址映射和地址译码器以合并新资源。在OL_A I/O代理实体的目标地址译码器被建立用来寻址新增加的MMIO和I/O资源,并且在I/O代理实体的源地址译码器被建立用来寻址RS存储器和处理器资源。
·如果这样的实体是高速缓存代理,那么各个CSI实体的用于监听的相关列表被修改,以包括OL_A I/O代理实体。同样地如果OL_A要作为锁管理者,则初始化各个CSI实体上的适当的CSR。
·然后唤醒已停止的CSI实体。
·RS上的固件执行建立ACPI表,并使用ACPI机制向OS产生中断,以通知资源的增加。如果正在向多个操作系统分区增加资源,则RS上的固件将向多个分区发送中断。
·RS上的一个或多个OS识别OL_A事件,探测I/O集线器的I/O总线下游,发现装置,给这些装置加载合适的设备驱动程序,然后将该装置与一个或多个OS分区结合。
图3说明一个实施例使用的联机删除资源的方法的流程图。在本讨论中,OL_D是从RS上删掉的结点。在一个实施例中,依据系统配置,OL_D结点可以是a)有存储器和I/O的一个或多个处理器,b)有存储器的一个或多个处理器,c)仅为一个或多个处理器,d)仅为I/O集线器,e)仅为存储器。以下几个段落用一系列步骤解释删除过程。在这个图中,描述处理器结点的删除。
如模块302所述,请求移除特定的处理器结点OL_D。例如,在一个实施例中,通过系统管理通道向OS发出该请求。
接着,描述对于OL_D结点的一个或多个脱机处理器的动作,如模块304所描述的。例如,在以下几个段落描述其信息。
以下动作由不同的处理器(分别识别停止的处理器(QP)和RS的动作)承担。
·(QP)操作系统将应用、中断远离QP处理器并停止在QP中的调度工作。它同样禁止在QP上的中断。
·(QP)通过移除TLB来停止预取和推测性的访问。停止预取避免由于引用因地址译码器变化可能映射出界的存储器而引起的错误。
·(QP)OS使用ACPI机制以通知不再使用该QP结点,并且ACPI机制以实现相关方式进入固件层。然后固件层做以下工作-在IA-32系统,修正适当的相关列表以保证QP不是随后VLW、锁和广播IPI事件的目标。
-固件保证任何运行中的中断事务对于QP是未决的。该步骤是实现相关的,并可能涉及为未决的中断探询系统中的各个I/O集线器。读IOH导致从IOH释放未完成的中断。QP上的固件执行必须向它自己发送PMI IPI,并验证收到该PMI。这保证了任何早先的中断和IPI被传达给QP内核。如果新中断是未决的,则固件返回OS,并且期望OS发起从步骤2开始的一系列动作。
-在Itanium处理器,使用PLA_预取_可视过程,固件停止对其存储区域预取数据,其中存储区域在写回访问,并具有受限制推测(WBL)存储属性。
-固件执行处理器和平台高速缓冲存储器的刷新,并调用必要的指令以刷新写入聚合(WC)缓存器。
-从固件空间中执行以避免依赖RS存储器。
-在Itanium处理器,调用PAL停止过程,该过程具有选择用PMI传送类型将IPI写到RS。在IA-32上,用传送类型SMI IPI向RS产生IPI,随后是必要的步骤以达到低功耗系统睡眠状态。换句话说,QP上的固件可为RS上的OS创建规则的向量中断(例如SCI),并期望RS上的OS进入固件以执行下面关于模块306的功能。
-此阶段后,出现任何MCA/INIT/PMI/SMI事件都不能唤醒内核。只有复位事件可以唤醒这些睡眠内核。
接着,将描述从各个相关列表中删除QP,如模块306所述。例如,在以下几个段落描述其信息。
·(RS)RS上的固件在收到上述PMI/SMI IPI时做下述工作-执行停止以保证完成所有运行中的事务,比如监听QP。
-从RS上各个相关列表中移除QP。
-如果有的话,从目录/监听过滤结构中移除QP。
-改变QP的地址译码器,使得固件和数据访问都不能离开QP结点。
-从分区的固件数据结构中移除QP参考。RS上的MAC不再映射到QP。
-如果QP结点从系统中被物理移除,则固件也采取措施移除交叉开关。移除交叉开关涉及对多个CSI结点上的路由选择表的修改,以绕过QP结点。参考14.7节,用于完成这些修改的多种选择的“共享互连多分区管理”。进一步地,在具有硬分区的系统中,如果要禁止从OL_D到RS的链路,那么必须更新路由选择表。在此情况下,固件可能需要执行停止在RS上的受影响的CSI实体的操作,更新路由选择表,然后唤醒已停止的CSI实体。同样,参考14.3.5节,“OL_*事件期间对于停止的需要”了解详情。
-唤醒RS上已停止的CSI实体。
-使用ACPI机制(例如,使用SCI中断)通知RS上的OS成功完成删除。
接着,描述OL_D结点可被移除的信号的生成如模块308所述。例如,在以下几个段落描述其信息。
·(RS)OS从固件接收指示OL_D完成的中断。如果该行为由它发起,则它可以向SSP/系统管理应用提供完成指示。如果要求物理移除OL_D结点则OS可能运行一些ACPI方法来提供可见指示,例如,在移除槽上开启发光二极管。
在先前描述的实施例中,处理器结点被移除。在另一个实施例中,被移除的联机资源仅是存储结点。在以下几个段落论述其他细节。
·OS将使用移除的存储器的应用和设备驱动程序移到其它存储段。OS将可调页存储器刷新到磁盘,或者如果有足够的空闲存储器,则将OL_D存储内容复制到另一个存储区域。有一些情况需要以下动作-如果移除的存储器被分配给直接存储器访问(DMA)设备,那么必须停止设备驱动程序或将其分配给新的缓存器。
-如果OS设计允许,OS可以向其它联机存储器重新映射核心存储区,所述核心存储区是脱机的存储器的分区。
-如果交叉存取存储器并且存储器交叉存取粒度(交叉CSI结点)小于OS页,那么来自与OLD结点共享相同OS页的多个CSI结点的存储器需要被调页到磁盘。在极端的情况,在分区中所有可调页存储器都需要被调页到磁盘。
-以物理寻址模式(诸如SAL注册的OS_MCA、OS_INIT进入点)对于OS访问的区域需要与固件的特定交互。。以物理寻址模式(仅仅复制到一个不同的物理地址是不行的)访问固件存储区域,存在类似的需要。
·OS使用移除TLB停止对移除的存储器的预取和推测性访问,然后将控制转移到固件层。
·在Itanium处理器,使用PAL_预取_可视过程,固件停止对它的脱机存储器的预取。
·固件针对地址范围刷新处理器和平台高速缓冲存储器。
·如果I/O代理实体有高速缓冲存储器,则固件采取措施释放这些高速缓冲存储器并使存储器更新。
·固件执行停止操作以保证完成在转行中的对移除资源的事务处理。在松散超时内也可以工作。不执行路由通过功能的纯存储结点是叶结点,因此,如果RS上路由选择表的变化仅仅是被删除存储器的条目的移除,则可以避免停止操作。
·然后固件改变CSI实体上的地址译码器,以避免参考已移除的资源。OS将在它的地址空间看到“洞”,并决不能在将来产生对脱机存储器的请求。
·然后固件释放任何已停止的RS上CSI实体,以恢复它们的作用。
·固件使用ACPI机制通知OS完成移除,OS会提供平台指令、例如通知SSP或点亮LED等等。
·如果存储结点由多OS分区共享,则该步骤在所有分区进行。
在先前描述的实施例中,仅移除存储结点。在另一个实施例中,移除的资源是I/O集线器结点。在以下几个段落论述它们的细节。
OS采取措施以停用移除的资源,然后请求固件修改由固件控制的平台资源。固件移除对CSI结构中的资源、如地址译码器、相关列表等的参考,然后将完成通知OS。如下描述这些步骤·操作系统通知设备驱动程序关于I/O装置被移除。如果不能关闭设备驱动程序,那么它将拒绝请求,并且OS将不会继续进行移除。这样的拒绝可能影响从系统中移除其它资源。例如,如果已经为DMA操作为设备驱动程序分配了存储缓存器,并且设备驱动程序不能释放这样的缓存器,那么与该缓存器有关的存储结点也不能被移除。
·如果停止设备驱动程序,则OS收回与它们的代码和数据区域相关的存储器。然后OS使用ACPI机制将控制交给固件层以执行如下动作-如果I/O代理实体有高速缓冲存储器,则固件采取步骤释放该高速缓冲存储器并使存储器更新。
-固件执行停止操作并保证完成运行中的对移除资源的事务处理。
-在IA-32系统,如果移除的I/O集线器起锁管理者的作用,则指定另一个锁管理者,在该新锁管理者上建立锁范围寄存器,并修正RS上的各个CSI实体上的锁定目标寄存器。如果移除的I/O集线器为中断传送(有目的地缩写的物理目的地或以平面/簇寻址方式的逻辑目的地)保持广播列表,则要求类似的步骤并且必须将这类广播功能迁移到另一个I/O集线器。
-修正RS的CSI实体上的地址译码器,以避免参考已移除的资源。
-从相关列表比如监听、目录、监听过滤等中删除作为目标的I/0集线器CSI实体。
-然后固件释放任何已停止的RS上CSI实体,以恢复它们的操作。
-固件使用ACPI机制通知OS完成移除。
-如果该I/O结点是多OS分区(比如多OS分区共享的一个IOH)的一部分,则在所有分区进行这些步骤。
图4描述有一或多个处理器的点对点系统。所要求的主题包含几个实施例,一个是具有一个处理器的406,一个是具有两个处理器(P)的402,一个是具有四个处理器(P)的404。在实施例402和404中,每个处理器都耦合到存储器(M),并且通过网络结构连接到每个处理器,网络结构可包含下列任何一个或所有链路层、协议层、路由层、传输层和物理层。该结构便于点对点网络从一种协议(本地或高速缓存代理)向另一种协议传输消息。如先前描述,网络结构系统支持结合图1-3描述的任何实施例。
对于实施例406,单处理器P通过对应于分层协议方案的网络结构链路耦合到图形和存储器控制,描述为IO+M+F。图形和存储器控制耦合到存储器,并能够通过PCI Express链路接收和传送。同样地,图形和存储器控制耦合到ICH。此外,ICH通过LPC总线耦合到固件集线器(FWH)。同样,对于不同的单处理器实施例,处理器有外部网络结构链路。处理器可以有多个内核,这些内核有单独或共享的高速缓冲存储器,每个内核耦合到Xbar路由器和非路由全局链路接口。因此,该外部网络结构链路耦合到Xbar路由器和非路由全局链路接口。
虽然已经参考特定的实施例描述了所要求的主题但是该描述不意味着局限地解释。参考所要求主题的描述,所公开的实施例的各种修改以及所要求主题的替换实施例,对本领域技术人员而言是显而易见的。故预计,在不脱离如所附权利要求中定义的所要求主题的精神或范围下,可以进行这样的修改。
权利要求
1.一种便于资源动态再配置的系统,包含具有耦合到网络结构的多个高速缓存代理和本地代理的点对点结构;所述系统支持独立资源的动态再配置。
2.如权利要求1所述的系统,其中所述网络结构遵循分层协议方案。
3.如权利要求1所述的系统,其中所述停止和激活操作支持多个平台配置,或由系统服务处理器执行。
4.如权利要求1所述的系统,其中所述动态再配置用于联机增加和联机删除所述独立资源。
5.如权利要求1所述的系统,其中所述独立资源是处理器结点、纯存储结点或I/O集线器结点。
6.一种联机增加独立资源的方法,包含为独立资源建立物理和逻辑信息;在正在运行的系统(RS)和所述独立资源之间定义串行链路;设置通向固件的路径;在所述独立资源上运行自测试和初始化;向所述RS上的固件执行指示所述独立资源准备好加入至少一个分区;和向所述RS上的操作系统(OS)指示所述独立资源准备好加入至少一个分区。
7.如权利要求6所述的方法,其中所述独立资源是处理器结点、纯存储结点或I/O集线器结点。
8.一种联机删除处理器结点的方法,包含要求移除处理器结点;对于要求移除的所述处理器结点,从脱机的处理器和存储器中移走应用程序;从各个相关列表中移除要求移除的所述处理器结点;和产生要求移除的所述处理器结点确实被移除的信号。
9.如权利要求8所述的方法,其中对于要求移除的所述处理器结点,由操作系统(OS)执行从脱机的处理器和存储器中移走所述应用程序。
10.如权利要求8所述的方法,其中所述处理器结点可能包含IA-32或Itanium处理器。
11.一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;和刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的所述存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段。
12.如权利要求11所述的方法,其中所述被移除的存储结点来自分区。
13.一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的所述存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段;和如果移除的存储结点被分配给直接存储器访问(DMA)设备,则停止设备驱动程序或将其分配给新的缓存器。
14.如权利要求13所述的方法,其中所述移除的存储结点来自分区。
15.一种联机删除存储结点的方法,包含迁移使用存储结点的应用程序和设备驱动程序;刷新可分页存储器到磁盘,或者如果有足够的空闲存储器,则将待移除的所述存储结点的存储内容拷贝到存储器的另一区域即被移到其它存储段;如果移除的存储结点被分配给直接存储器访问(DMA)设备,则停止设备驱动程序或将其分配给新的缓存器;和固件针对移除的存储结点定义的地址范围刷新处理器和多个平台高速缓冲存储器。
16.如权利要求15所述的方法,其中移除的存储结点来自分区。
17.一种便于资源动态再配置的系统,包含具有耦合到网络结构的多个高速缓存代理和本地代理的点对点结构;所述系统用停止和激活操作支持独立资源的动态再配置;和所述动态再配置允许联机增加和联机删除独立资源,且不要求重新启动操作系统。
18.如权利要求17所述的系统其中所述网络结构遵循分层协议方案。
19.如权利要求17所述的系统,其中所述停止和激活操作支持多个平台配置或由系统服务处理器执行。
20.如权利要求17所述的系统,其中所述独立资源是处理器结点、纯存储结点或I/O集线器结点。
全文摘要
描述一种包括联机增加、删除和替换独立模块的动态再配置,以便支持系统的动态分区、互连(链路)再配置、存储器RAS,从而允许没有OS干预的迁移和镜像、动态存储器再交错、CPU和套接字迁移,并支持跨分区的全局共享存储器。为了便于联机增加或删除,固件能停止和激活相关域,使得以对固件上的软件层实质上像是原子操作的方式更新许多系统资源、比如路由选择表和地址译码器。
文档编号G06F9/46GK1801740SQ200510107388
公开日2006年7月12日 申请日期2005年12月12日 优先权日2004年12月13日
发明者M·阿亚, E·德拉诺, I·肖伊纳斯, A·库马, J·亚亚辛哈, A·瓦加斯 申请人:英特尔公司