CN1564987A - 在计算节点的热插拔期间枚举处理器的装置和方法 - Google Patents

在计算节点的热插拔期间枚举处理器的装置和方法 Download PDF

Info

Publication number
CN1564987A
CN1564987A CN02819693.7A CN02819693A CN1564987A CN 1564987 A CN1564987 A CN 1564987A CN 02819693 A CN02819693 A CN 02819693A CN 1564987 A CN1564987 A CN 1564987A
Authority
CN
China
Prior art keywords
processor
node
computing node
processors
detected
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
Application number
CN02819693.7A
Other languages
English (en)
Other versions
CN100380353C (zh
Inventor
琳达·兰金
莫汉·库马尔
夏夫南丹·考希克
詹姆斯·克罗斯兰
戴维·奥谢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1564987A publication Critical patent/CN1564987A/zh
Application granted granted Critical
Publication of CN100380353C publication Critical patent/CN100380353C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

本发明描述了一种用于在热插拔计算节点期间枚举处理器的装置和方法。该方法包括响应于热插拔重置而对一个或多个处理器的枚举。枚举结果被提供给其中有计算节点被热插拔的系统体系结构操作系统。一旦完成枚举,就响应于操作系统激活请求而启动所述计算节点。因此,只要完成了设备枚举和资源枚举,就激活处理器/存储器节点上的一个或多个处理器,使得操作系统可以开始利用被热插拔的计算节点上的处理器。

Description

在计算节点的热插拔期间枚举处理器的装置和方法
技术领域
本发明一般涉及设备热插拔(hot-plug)领域。更具体地说,本发明涉及在计算节点的热插拔过程中用于处理器枚举(enumeration)的方法和装置。
背景技术
以高端企业级服务器系统为目标的服务器芯片组和服务器产品的开发需要认真地考虑可靠性、可用性和可服务性(RAS)的要求和特征。这类产品可能想要用作后端服务器(例如在数据中心中),其中,RAS特征和要求与系统性能同样重要。在计算机系统中,在不关闭电源(powerdown)或关闭计算机的情况下具有交换模块的能力是很有益的。这种“交换”被冠以各种名称,例如热插座(hot socket)、热交换(hot swap)、热增加(hot addition)、热去除(hot removal)、热插拔能力等等。
因此,在企业级服务器系统中实现热插拔能力是一种至关重要的RAS特征。热插拔能力允许在不关闭电源或重启系统的情况下,对系统内的节点进行升级和修复。结果,有能力热插拔计算机系统的各种部件,例如处理器、存储器、I/O(输入/输出)板、模块等,这有益于替换有缺陷的部件,实现系统升级等。
CPU/存储器的热插拔指的是在操作系统(O/S)继续在平台上运行的同时,增加/去除/替换处理器/存储器的能力。同样,I/O节点的热插拔就是在O/S继续运行的同时,增加/去除/替换由多个外围元件互连(PCI)根桥和总线段组成的I/O节点的能力。本领域的技术人员将会认识到,CPU/存储器、I/O节点的热插拔(I/O节点的热插拔与PCI热插拔的区别在于有多个根桥在被热插拔)是一种不为当前的系统体系结构和操作系统所支持的特征。
目前,设备的热插拔被限制于PCI设备。热插拔PCI设备的能力由PCI总线定义给出。由此,PCI总线定义提供了两种能够实现PCI设备的热插拔的特性。PCI总线定义通过PCI配置机制提供了一种用于枚举PCI总线上的设备的机制。另外,PCI总线定义还通过设备PCI配置空间中的PCI基地址寄存器(BAR)而提供了一种用于枚举PCI设备所需资源的机制。
如上所述,热插拔指的是当系统开机并运行操作系统时,在不对当前在系统上执行的任务产生很大影响的情况下,设备被增加到计算机系统/从计算机系统中去除的能力。基于上述PCI总线定义特性,操作系统需要两种特性用于设备的热插拔。首先,设备必须是可枚举的。其次,设备资源必须是可枚举的。
换言之,需要一种O/S可以使用的软件机制来检测设备何时被热增加,或者检测设备何时被去除。此外,在设备对当前运行中的操作系统所知的任何资源(存储器空间、I/O、配置ID)进行译码之前,该设备的资源应当是可枚举的。同样,热插拔设备不能使用运行中的系统正在使用的任何资源,直到操作系统知道了哪个设备正被热插拔之后。一旦检测到热插拔,就需要对被热插拔的设备将要使用的资源进行枚举。
不幸的是,目前的操作系统不支持处理器/存储器节点的热插拔。这是由于没有可用的或没有定义用于枚举处理器/存储器节点的机制。另外,没有可用的用于枚举处理器/存储器节点所需资源的标准机制。既然处理器/存储器节点不具有上述用于实现设备热插拔的特性,那么要实现一种用于支持处理器和存储器节点的热插拔的机制,就潜在地需要一种用于处理器枚举的、新的总线接口的定义。
因此,始终需要克服上述情况下的一种或多种限制。
附图说明
在附图中以示例的方式,而非限制的方式图示了本发明,其中:
图1描绘的框图示出了现有技术中公知的网络计算机环境。
图2描绘的框图示出了传统的计算机系统。
图3描绘的框图示出了现有技术中公知的PCI设备的热插拔。
图4描绘的框图示出了根据本发明的实施例,其中可以实现本发明的系统。
图5A和5B还图示了根据本发明另一个实施例的、如图4所示的计算机节点。
图6描绘的框图示出了系统的另一个实施例,在该系统中可以实现本发明。
图7描绘的框图示出了根据本发明另一个实施例的系统配置的总线层级结构。
图8描绘的流程图示出了根据本发明的实施例,在计算节点的热插拔过程中用于枚举处理器的方法。
图9描绘的流程图示出了根据本发明的另一个实施例,用于对检测到一个或多个处理器进行枚举的另一种方法。
图10描绘的流程图示出了根据本发明的实施例,用于设置所检测到的处理器的处理器ID的另一种方法。
图11描绘的流程图示出了根据本发明的另一个实施例,用于与运行中的操作系统开始握手的另一种方法。
图12描绘的流程图示出了根据本发明的示例性实施例,用于与运行中的操作系统开始握手的另一种方法。
图13描绘的流程图示出了根据本发明的示例性实施例,用于检测一个或多个处理器的另一种方法。
图14描绘的流程图示出了根据本发明的另一个实施例,设置所检测到的处理器的处理器ID的另一种方法。
图15描绘的流程图示出了根据本发明的一个实施例,用于在计算节点的热插拔之后枚举处理器资源的方法。
图16描绘的流程图示出了根据本发明的另一个实施例,用于检测热插拔通知的另一种方法。
图17描绘的流程图示出了根据本发明的另一个实施例,用于枚举处理器资源的另一种方法。
图18描绘的流程图示出了根据本发明的另一个实施例,用于在计算节点的热插拔之后检测一个或多个处理器的另一种方法。
图19描绘的流程图示出了根据本发明的示例性实施例,用于确定一个或多个检测到的处理器中每一个的处理器ID的另一种方法。
具体实施方式
下面描述用于在计算节点的热插拔过程中对处理器进行枚举的装置和方法。所述方法包括响应于热插拔重置,对一个或多个处理器的枚举。由运行在其中处理器/存储器节点被热插拔的系统上的操作系统来执行枚举。一旦枚举完成,响应于操作系统激活请求来启动处理器/存储器节点。由此,一旦完成了设备枚举以及资源枚举,处理器/存储器节点的一个或多个处理器就被激活,使得操作系统可以开始使用所述热插拔处理器/存储器节点的处理器。
在下述描述中,出于解释的目的,阐述了很多具体的细节,从而提供对本发明的彻底理解。然而,对于本领域内的技术人员来说很清楚的是,没有这些具体的细节也可以实现本发明。另外,下列描述提供了多个例子,并且为了说明的目的,附图示出了各种例子。然而,由于这些例子仅仅是想提供本发明的例子,而不是提供本发明所有可能实现方式的穷尽式枚举,因此不应当以限制意义来解释这些例子。另外,为了避免模糊本发明的细节,以框图的形式示出了公知的结构和设备。
下列具体描述中的多个部分可能以对数据位(bit)上的操作的符号表示和算法来呈现。这些算法描述和表示被数据处理领域内的技术人员用来向本领域内的其他技术人员传达其工作的实质内容。这里所描述的算法指的是导致预期结果的自相一致的动作序列。这些动作是需要对物理量进行物理上的操纵的那些动作。这些量可以采用能够被存储、传输、合并、比较、以及其它操纵的电或磁信号的形式。而且,主要出于通用的原因,这些信号被引用为位、值、元素、符号、字符、项、数字等。
然而,这些和类似的术语都与适当的物理量相关联,而且仅仅是应用到这些量上的方便标签而已。除非特别声明,可以理解,使用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语的讨论内容指的是计算机系统或类似的电子计算设备的动作和处理,所述计算机系统或类似的电子计算设备操纵并将计算机系统的设备内以物理(电)量表示的数据转换成其它数据,这些数据在诸如存储器、寄存器或其它这种信息存储、传输、显示设备等计算机系统设备内类似地用物理量来表示。
这里所提出的算法和显示并不固有地和特定的计算机或其它装置有关。利用根据此处教导的程序,可以使用各种通用系统,或者可能证明,构造更加专用的装置来实现所需的方法是很方便的。例如,可以通过用硬连线电路、编程通用处理器,或者通过硬件和软件的任意组合,来实现根据本发明的任意方法。
本领域的技术人员会立即明白,可以用不同于以下所述的计算机系统配置来实现本发明,包括手持设备、多处理器系统、基于微处理器或可编程消费电子产品、数字信号处理器(DSP)设备、网络PC、小型机、大型机等等。也可以用分布式计算环境来实现本发明,其中由通过通信网络链接在一起的远程处理设备来执行任务。在以下描述中将出现多种这类系统所需的结构。
应当理解,本领域的技术人员可以使用各种术语和技术来描述通信、协议、应用、实现方案、机制等。一种这样的技术就是用算法或数学表达式对技术的实现方案的描述。即,例如当通过在计算机上执行代码来实施技术时,对这种技术的表达可以更准确、更简洁地被表达及传达为公式、算法或数学表达式。
因此,本领域的技术人员会把指示A+B=C的框视为加法功能,其硬件和/或软件的实现方案具有两个输入(A和B)并产生一个求和输出(C)。因此,使用公式、算法或数学表达式来进行描述,这将被理解为具有至少用硬件和/或软件实现的物理实施例(例如,一个计算机系统,其中,本发明的技术可以被实现以及实施为一个实施例)。
在一个实施例中,用机器可执行指令来实现本发明的方法。这些指令可被用来使得以这些指令编程的通用或专用处理器来执行本发明的步骤。或者,可由包括用于执行这些步骤的硬连线逻辑的专用硬件元件,或者由已编程的计算机元件和定制硬件元件的任意组合来执行本发明的步骤。
在一个实施例中,本发明可以是一种计算机程序产品,它可以包括其上存储有指令的机器或计算机可读介质,所述指令可被用来编程一个计算机(或其它电子设备)以执行根据本发明的处理。计算机可读介质可以包括,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机访问存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存等等。
因此,计算机可读介质包括适于存储电指令的任何类型的媒体/机器可读介质。而且,本发明也可以作为计算机程序产品来下载。这种情况下,可以从远程计算机(例如,服务器)向发出请求的计算机(例如,客户端)传输程序。对程序的传输可以经由通信链路(例如,调制解调器、网络连接等),在载波或其它传播介质中以数据信号的形式来实现。
系统体系结构
参考图1,图1描绘了网络环境100,可以在其中实施本发明的技术。如图所示,该网络环境包括通过网络102互连的几个计算机系统,例如多个服务器104(104-1、......、104-M)和多个客户端108(108-1、......、108-N)。网络102例如可以是因特网。注意,网络102或者可能是或包括以下网络中的一个或多个:局域网(LAN)、广域网(WAN)、卫星链路、光纤网络、有线网络或者这些和/或其它网络的组合。这里所描述的方法和装置可以基本上应用于任何类型的通信装置或设备,无论本地还是远程的,例如LAN、WAN、系统总线、盘驱动器、存储设备等。
参考图2,图2图示了框图形式的传统个人计算机200,它可以代表图1中所示的客户端108和服务器104中的任何一种。该框图是一种高度抽象化的表示方法,并可以通过各种体系结构,以多种方式来实施。计算机200包括总线系统202,其将中央处理单元(CPU)204、只读存储器(ROM)206、随机访问存储器(RAM)208、存储设备210、显示器220、音频设备222、键盘224、指取设备226、各种输入/输出(I/O)设备(MISC)228和通信设备230互连起来。
总线系统202例如可以是一个或多个下列总线,例如系统总线、外围元件互连(PCI)、加速图形端口(AGP)、小型机系统接口(SCSI)、火线(FireWire)等。CPU 204可以是单个、多个、甚至分布式的计算资源。ROM 206可以是任意类型的非易失存储器,它可以是可编程的,例如可掩模编程的,以及闪存等等。
另外,RAM 208例如可以是静态、动态、同步、异步的,或者任意的组合。存储设备210可以是压缩盘(CD)、数字多功能盘(DVD)、硬盘(HD)、光盘、磁带、闪存、存储棒(memory stick)、摄像机等。而显示器220例如可能是阴极射线管(CRT)、液晶显示器(LCD)、投影系统、电视(TV)等。音频设备222可以是单声道、立体声、三维声卡等。
键盘224可以是键盘、音乐键盘、小键盘、一排开关等。指取设备226例如可以是鼠标、触摸板、跟踪球、操纵杆等。而I/O设备228可以是语音命令输入设备、指纹输入设备、智能卡槽、个人计算机卡(PC卡)接口、虚拟现实附件等,它们通过输入/输出端口229可选地连接到其它设备或系统。各种I/O设备228的一个例子就是音乐设备数字接口(MIDI)卡,以I/O端口229与音乐设备相连。
通信设备230例如可以是用于局域网(LAN)连接的以太网适配器、卫星连接、机顶盒适配器、数字用户线(xDSL)适配器、无线调制解调器、传统电话调制解调器、直接电话连接、混合光纤同轴(HFC)连接、有线调制解调器等。而外部连接端口232可以根据需要,通过通信设备230在远程设备和总线系统202之间提供任何互连。
例如,通信设备230可以是以太网适配器,其经由连接端口232而与例如外部DSL调制解调器相连。注意,根据计算机系统的实际实现方案,该计算机系统可以包括框图中组件的一些、全部、更多、或重新排列。例如,一个简单的客户端可能由例如缺少传统键盘的无线手持设备组成。因此,图2中的系统可能出现很多变化。
回来参考图1,多个客户端108通过网络102与由服务器,例如多个服务器104所表示的万维网网站、应用服务提供商、搜索引擎和/或数据库资源有效地相连,万维网浏览器和/或其它应用程序一般运行在多个客户端108上,而信息一般保存在多个服务器104上。为了解释方便,考虑单个服务器104或单个客户端108-1来说明本发明的一个实施例。很容易明白,这些技术可以容易地应用于多个客户端、服务器等。
参考图3,图3描绘的框图示出了例如在图2中所示的计算机200中的PCI设备的热插拔。如上所述,传统的设备热插拔已被限制在PCI设备。为了实现PCI热插拔,PCI总线定义提供了设备热插拔所需的两种特性:(1)PCI总线定义通过PCI配置机制提供了一种用于枚举PCI总线上的设备的机制;以及(2)PCI总线定义通过PCI基地址寄存器(BAR)和设备PCI配置空间提供了一种用于枚举PCI设备所需资源的机制。
因此,如图3所示,PCI适配器302可以被插入PCI槽312中。在所述实施例中,PCI槽的开关314的机械闭合向热插拔控制器330发出中断信号。这样一来,一旦热插拔控制器330通过例如开关332接收到中断,则热插拔控制器的通知部件334就向CPU 340提供中断。如图所示,热插拔控制器330包括寄存器336,用于指示PCI总线号以及被热插拔的设备的设备号。这个信息通过中断338被提供给CPU 340。另外,该中断也被提供给软件(S/W)350,该软件为了检查PCI配置空间320内的基地址寄存器326而利用PCI配置空间320。
因此,基于对BAR 326的分析,软件350就能够枚举PCI设备所需的资源,还能够向计算机200的可用资源提供对热插拔设备的访问权。结果,如图3所示,设备枚举由热插拔控制器334来提供,而资源枚举由基地址寄存器326来提供,它们都是由PCI总线定义实现的。不幸的是,传统系统并不支持非PCI设备例如处理器节点的热插拔。
参考图4,图4图示了可以实现本发明的系统400的一个实施例。图4是8路服务器体系结构的示意框图。计算节点402包括链接到可扩展节点控制器(SNC0)420上的多个处理器(P)410(410-1、......、410-N)和链接到SNC1 470上的多个其它处理器(P)460(460-1、......、460-N)。SNC0 420控制与开关SPS0 430和SPS1 480之间的接口,它也是与存储器406相接口的存储器控制器。同样,SNC1 470控制与开关SPS1 480之间的接口,并且也是与存储器454相接口的存储器控制器。开关SPS0 430和SPS1 480都是可扩展性端口开关(SPS),在计算(处理器/存储器)节点402和450与I/O节点(SIOH0 432和SIOH1 482)之间起到开关的作用。
服务器I/O中心(SIOH)SIOH0 432和SIOH1 482可以作为根PCI桥来使用。SIOH0 432和SIOH1 482分别链接到I/O控制中心2(ICH2)434和484,ICH2 434通过436进行链接,ICH2 486通过486进行链接。在一个实施例中,SIOH0 432和SIOH1 482例如链接到各种传统设备上,例如USB设备、AC’97设备等。ICH2 434和ICH2 484也可以控制功率管理接口。
SIOH0 432和SIOH1 482也链接到PCI-IBA(infiniband)桥IVXB 442和492,再经由链路444和494链接到设备。在这个实施例中还示出了SIOH0 432和SIOH1 482也链接到PCI 64 Hub2设备(P64H2)438、446和488、496。P64H2有两个PCI到PCI桥、两个PCI热插拔控制器和两个I/O高级可编程中断控制器。于是,P64H2 446经由链路448与设备接口,P64H2 438经由链路440与设备接口,P64H2 496经由链路498与设备接口,而P64H2 488经由链路490与设备接口。
应该理解的是,在一个系统,例如图4所示的系统中,不支持计算节点402/450的热插拔。例如,在功能完备的系统中,计算节点402/450的故障将需要关闭整个系统,从而替换这个有缺陷的节点。而且,除非支持计算节点的热插拔,否则系统升级和计算节点的修复都需要系统关闭。不幸的是,为了提供设备热插拔所需的设备枚举以及资源枚举,计算节点的热插拔将需要一种新的总线定义。
参考图5A,图5A进一步图示了图4中所示计算系统400中的计算节点402。由于上述原因,目前传统系统还不支持在图4中所示计算系统400内的计算节点402的热插拔。但是,基于PCI热插拔所需的特性,为了支持计算节点的热插拔,提供了以下特性。首先,本发明提供了一种设备枚举的机制。在一个实施例中,提供了一种软件机制,计算系统400的操作系统可以使用该软件机制来检测计算节点何时被热插拔或热增加,或者检测该计算节点何时被去除。
另外,本发明描述了一种枚举计算节点资源的机制。如上所述,在设备对当前运行中的操作系统所知的任何资源(存储空间、I/O空间等)进行译码前,这些资源应当是可枚举的。换言之,在操作系统知道哪个设备正在被热插拔、以及被热插拔的设备将要使用哪些资源前,被热插拔的设备不能使用运行中的操作系统正在使用的任何资源。
由此,下面给出了根据本发明一个实施例的设备枚举和资源枚举技术。在一个实施例中,与被热插拔的计算节点有关的PCI设备的配置空间被用于对耦合到该计算节点的处理器的存在/不存在进行记录(register)。在一个实施例中,通过适当的功率管理规范,例如高级配置和功率管理接口(ACPI)机制来揭示设备的存在和不存在,就可以实现上述操作。
如上所示,计算节点的PCI设备就是可扩展节点控制器(SNC0)420,并且可用的空间指的是例如CPUKILL寄存器426的CPUKILL位,这些位包含在SNC0 420的PCI配置空间的系统重置寄存器425中。在所描述的实施例中,CPUKILL位被用于反映计算节点上处理器的存在。由此,在一个实施例中,运行在SNC0 420上的BIOS在加入运行中的系统前负责通过现有的原始体系结构机制(传统技术)来检测处理器的存在,并在CPUKILL位中反映这种存在/不存在。
另外,提供了一种用于识别处理器资源的动态机制。在一个实施例中,通过在与计算节点相关联的PCI设备的配置空间中的信息来识别处理器资源。如上所示,有关的PCI设备是可扩展节点控制器(SNC0420/SNC1 470)。在所描述的实施例中,O/S可见的处理器资源是处理器的高级可编程中断控制器(APIC)标识(APIC ID)。
由此,如图5B所示,处理器410包括APIC 412区,它包含了APICID寄存器414。这样一来,就提供了一种动态机制,用于以响应于热插拔重置而生成的独有ID来重置每个被热插拔的处理器的APIC ID。在一个实施例中,独有的APIC ID使用SNC0 420的节点ID 424和代表各个处理器的CPUKILL位号。这样一来,在所描述的实施例中,APIC ID有8位,它是通过将5位的节点ID 424与对应于处理器的CPUKILL位中的3位连接(concatenate)在一起而形成的。
这样,由于在整个系统中SNC节点ID 424是独有的,因此对于各个被热插拔的处理器而言,这种组合产生了系统范围内的独有APIC ID。然而,在另一个实施例中,可以使用PCI总线号和设备号的组合来代替节点ID,这是因为这种组合在整个给定的PCI段中将是独有的。另外,用于报告设备资源的标准ACPI机制使用这种动态机制来向操作系统报告设备的APIC ID。
再次参考图5A,响应于热插拔重置指令,计算节点402将被激活以运行系统BIOS。在一个实施例中,由一个智能代理来执行对处理器/存储器节点的热插拔检测,所述智能代理在计算节点被插入例如图4所示的SPS1 480中时,检测例如开关(未示出)的锁定。这样一来,一旦检测出来,所述代理将发出热插拔重置,从而让BIOS检测耦合到该计算节点的一个或多个处理器。
由此,在所描述的实施例中,BIOS将为每个检测到的处理器都设置CPUKILL寄存器。一旦检测到,每个处理器的不同APIC ID都被设置,这个APIC ID是节点ID 424和代表各个处理器的CPUKILL位的组合。一旦执行,BIOS就可以开始与其中有计算节点被热插拔的系统体系结构的运行中系统进行握手,所述系统体系结构例如参见图4。
在一个实施例中,BIOS将设置可扩展性端口接口控制(SPINCO)寄存器位,以允许到可扩展性端口开关例如SPS0 430或SPS1 480的链路404。由此,响应于对SPINCO寄存器的设置,计算节点402可以发出中断。在一个实施例中,系统控制中断(SCI)被发往运行中的操作系统。响应于该SCI,O/S可能发动一个平台子系统,例如ACPI子系统。一旦发动,可将ACPI事件通知提供给ACPI子系统,以开始枚举过程。
在一个实施例中,为了枚举耦合到热插拔计算节点402的每个处理器,这个枚举过程将接着读取有关的芯片组自举配置(CBC)寄存器422和CPUKILL寄存器426,并且更新设备结构。在一个实施例中,由操作系统来读取设备结构,从而接收对热插拔处理器以及被热插拔的处理器所使用的资源的枚举。在一个实施例中,所述设备结构是在系统ACPI表中由BIOS所提供的多APIC表条目(MAT)。MAT方法的细节可在ACPI2.0规范中找到。
这样,运行中的操作系统就可以使用设备数据结构,并且一旦有关的设备以及资源被确定,就可以向计算节点发出系统初始化请求,从而开始运行耦合于其上的一个或多个处理器。这样,本发明通过适当的ACPI机制揭示了设备的存在和不存在,并使用一种动态机制,用于通过可扩展节点控制器的配置空间中的信息来识别处理器资源。因此,本发明就实现了例如图4和5A所示的计算节点的热插拔。
图6图示了可以实现本发明的系统500的另一个实施例。图6是带有4个四处理器节点的8路服务器系统体系结构的示意框图。这些四处理器节点是510(510-1、......、510-4)。具体地图示了节点510-1,其中4个处理器(P)502(502-1、......、502-4)被链接到可扩展节点控制器(SNC)504、以及存储器506和LPC(少量引脚数)闪存BIOS 508。注意,处理器(P)也可以有可用的局部存储器以供自己使用,例如Level 2缓存。SNC 504接口于开关SPS0 512和SPS1 520。
同样地,其它节点510-2-510-4具有与开关SPS0 512和SPS1 520相接口的SNC,还有处理器P、存储器和LPC闪存BIOS。开关SPS0 512和SPS1 520都是可扩展性端口开关(SPS),在计算(处理器/存储器)节点(510)与I/O节点(SIOH0 514和SIOH1 530)之间起到开关的作用。服务器I/O中心(SIOH)SIOH0 514和SIOH1 530作为根PCI桥来使用。SIOH0 514和SIOH1 530分别链接到I/O控制中心2(ICH2)518和532。
ICH2 518与各种可能的设备和/或总线链接。这些设备和/或总线例如是硬盘驱动器(HDD)518-1、USB(通用串行总线)518-2、IDE(综合驱动电子设备)CD-ROM 518-3、PCI槽518-4、超级I/O 518-5和固件中心FWH 518-8。注意,这些设备和/或总线可以与其它设备和/或总线相连。例如,超级I/O 518-5上连接有键盘控制器KBC 518-6和各种(MISC)设备518-7。所述的各种设备例如可能是各种传统设备,例如AC’97设备、功率控制管理设备等。同样,ICH2 532可以经由链路533与各种设备和/或总线相接口。
SIOH1 530被示出与带有链路535的VXB 534桥相链接。VXB 534例如可以是NGIO桥(下一代I/O),其具有的链路535表示NGIO通道。如这个实施例中所示,SIOH0 514和SIOH1 530也链接到PCI 64 Hub2设备(P64H2)516-1到516-N和536。P64H2有两个PCI到PCI桥、两个PCI热插拔控制器和两个I/O高级可编程中断控制器。于是,P64H2 516-1到516-N将分别经由链路517-1到517-N与设备接口。
图7图示了用于系统配置的一个实施例的总线层级结构600。这里,四个节点SNC被表示为SNC0 602、SNC1 604、SNC2 606和SNC3 608。两个SPS被表示为SPS0 610和SPS1 612。每个SNC(601-608)与每个SPS 610和612相连。另外,每个SPS 610和612与每个IOH(I/O中心)IOH0 614和IOH1 616相连。这里,每个SNC、SPS和IOH可以包含寄存器,用于保存诸如节点ID、总线类型等信息。此外,IOH可通过诸如桥、中心链路等设备,与例如PCI总线系列的其它总线相连。
从图7的图示中应当理解以下这种能力,即通过使用从SNC或处理器(参见图5)中可访问的信息来枚举上述计算节点热插拔检测以及资源信息。可以动态地获得这种设备信息,以允许操作系统和/或软件枚举计算节点的热插拔,并实现对处理器资源的枚举,从而由操作系统开始使用被热插拔的计算节点。
由此,本发明描述了用于枚举耦合到被热插拔的计算节点上的处理器的技术。另外,一个独有ID被设置为每个检测到的处理器的处理器ID。这种设置每个检测到的处理器的处理器ID的机制利用ACPI子系统所提供的枚举过程实现了设备枚举。因此,所述枚举过程将通过计算节点内所包含的各种配置寄存器来确定每个检测到的处理器和检测到的处理器的ID。
一旦得到确定,枚举过程将更新设备结构,从而向运行中的操作系统提供对热插拔计算节点上的处理器的设备枚举和资源枚举。通过提供这种信息,运行中的操作系统可以开始运行这些处理器并利用这些处理器,从而向其指派任务。这样,这里所描述的技术就可以避免实施一种新的PCI定义,该定义用于支持处理器-存储器节点的热插拔。下面描述用于实施本发明的教导的程序性的方法。
操作
参考图8,图8描绘的流程图示出了方法700,用于执行对耦合到例如图4-6所示的、被热插拔的处理器/存储器节点402/450上的一个或多个处理器的设备枚举。在处理框702,确定是否已接收到热插拔重置指令。一旦接收到,就执行处理框704。在处理框704,由其中有计算节点(例如402)被热插拔的操作系统对一个或多个处理器进行枚举。
在所述实施例中,枚举基本上就是功率管理子系统的枚举过程,例如ACPI规范,其可以查询被热插拔的计算节点的各个PCI配置寄存器。使用这些配置寄存器,所述过程就可以确定每个检测到的处理器的ID,并向运行中的操作系统枚举这个信息以及处理器资源。因此,一旦向操作系统提供了设备枚举和资源枚举,运行中的操作系统就可以开始使用一个或多个被热插拔的处理器。
接下来,在处理框720,确定是否收到了操作系统激活请求。一旦收到了激活请求,就执行处理框780。在处理框780,被热插拔的计算节点的一个或多个处理器被启动。这样,激活请求的接收就意味着操作系统已经完成了对检测到的设备和被热插拔的设备、以及这些设备各自的资源的枚举。这样,在一个实施例中,操作系统已经查询了具有有关的设备和资源信息的设备结构,所述设备和资源信息使得运行中的操作系统能开始使用处理器并向这些处理器指派任务。
参考图9,图9描绘的流程图所示出的方法706用于图8中所示的处理框704中对检测到一个或多个处理器进行枚举。在处理框708中,检测耦合到被热插拔的计算节点上的一个或多个处理器。一旦检测到,在处理框710,将一个或多个检测到的处理器中每一个的各自的处理器ID设置为各自的独有值。接下来,在处理框750,计算节点将开始与其中有计算节点正被热插拔的体系结构平台中正在运行的操作系统的握手。在一个实施例中,握手的开始将向操作系统提供热插拔通知。
参考图10,图10描绘的流程图所示出的另一种方法712用于图9所示的处理框710中对各个处理器ID的设置。在处理框714,从一个或多个检测到的处理器中选择一个处理器。一旦选出,则在处理框730,根据与所述处理器相关的处理器号和所述计算节点的节点ID,为所选择的处理器生成一个独有ID。由此,在所述实施例中,处理器号就是与各个处理器相关的CPUKILL寄存器值,而节点ID指的是包含在图5A所示的可扩展节点控制器(SNC0 420)的CBC寄存器422中的节点ID 424。
一旦为所选择的处理器生成了独有ID,则执行处理框734。在处理框734,根据所生成的独有ID来更新所述处理器的处理器ID。这样,在所述实施例中,所述处理器的APIC ID例如被系统BIOS设置为所生成的独有ID。最后,在处理框736,对于每一个检测到的处理器,重复处理框714-734。
参考图11,图11描绘的流程图所示出的方法752用于图9所示的处理框750中开始与运行中的操作系统的握手。在处理框754,允许所述计算节点的节点链路,以开始与系统体系结构端口的通信(参见图4)。由此,在所述实施例中,为了开始与可扩展性端口开关例如SPS1 430的通信,可扩展节点控制器的链路被激活。一旦实现,则在处理框756,指引所述计算节点发出中断。最后,在处理框758,所述计算节点将经由可扩展性端口开关向操作系统发出中断。
参考图12,图12描绘的流程图所示出的另一种方法760用于图9所示的处理框750中开始与运行中的操作系统的握手。在处理框762,确定运行中的操作系统是否检测到系统中断。一旦检测到,则在处理框764,运行中的操作系统将启动一个平台子系统。在一个实施例中,平台子系统指的是ACPI子系统。接下来,在处理框766,向该平台子系统提供热插拔事件通知。在一个实施例中,通过由平台子系统检测一个锁存位来实现上述操作。一旦给出了通知,则在处理框768,平台子系统将运行枚举过程,这个过程将执行被热插拔的计算节点的设备和资源信息。
参考图13,图13描绘的流程图所示出的另一种方法716用于处理框714中对一个或多个检测到的处理器的选择。在处理框718,查询被热插拔的计算节点的节点处理器寄存器,以确定所述计算节点的处理器容量值。在一个实施例中,通过分析计算节点的系统重置寄存器来实现上述操作。在重置寄存器中,CPUKILL位寄存器包括与计算节点的每个处理器端口相关的处理器号、以及用于指示处理器是否耦合到计算节点的处理器端口上的一个或多个位(参见图5A)。
一旦确定了容量值,则在处理框720,选出计算节点的一个处理器端口。一旦选出,则在处理框722,确定是否所选出的端口是否装有处理器。根据本领域技术人员所公知的处理器检测技术来执行处理器的检测。当某个处理器装在所选出的端口内时,执行处理框724。在处理框724,对处理器节点寄存器值进行设置,以指示所检测到的处理器的存在。最后,在处理框726,对于每个处理器端口,重复处理框720-724。
参考图14,图14描绘的流程图所示出的另一种方法740用于设置每个检测到的处理器的处理器ID。在处理框742,对一个检测到的处理器选择相应的处理器节点寄存器处理器号。一旦选出,则在处理框744,将所选择的处理器号与节点寄存器ID值连接起来,以形成独有ID。一旦形成,则在处理框746,用这个独有ID替换所述处理器的处理器ID。最后,在处理框748,对于每个检测到的处理器,重复处理框742-746。由此,一旦完成,对每个处理器ID的设置就向运行中的操作系统提供了设备枚举,在一个实施例中,这是通过由平台子系统启动的枚举过程来完成的。
参考图15,图15描绘的流程图所示出的方法800响应于例如图4-7所示的系统内计算节点的热插拔,对运行中的操作系统执行设备枚举和资源枚举。在处理框802,确定是否检测到了热插拔通知。一旦检测到,则在处理框820,向其中有计算节点被热插拔的系统体系结构操作系统提供对一个或多个检测到的处理器以及每个检测到的处理器的资源的枚举。
一旦将对被热插拔的设备以及被热插拔设备的资源的枚举提供给操作系统,则执行处理框860。在处理框860,向所述计算节点的一个或多个处理器发送激活请求,从而指引所述计算节点启动耦合到该计算节点上的每个处理器。一旦启动,则操作系统可以开始向一个或多个检测到的处理器中的每一个指派任务,从而开始对被热插拔的计算节点的充分利用。
参考图16,图16所示出的另一种方法806用于检测热插拔通知。在处理框808,确定是否检测到了中断。在一个实施例中,所述中断就是由被热插拔的计算节点发出的系统控制中断。一旦检测到,则在处理框810,启动一个系统控制中断,以指引运行中的操作系统发动一个平台子系统,例如上述的ACPI平台子系统。接下来,在处理框812,确定是否已发动了平台子系统。一旦已发动,则在处理框814,向所述平台子系统发出枚举事件通知。
参考图17,图17所示出的另一种方法822用于图15所示的处理框820中对设备和资源信息的执行。在处理框824,执行对耦合到被热插拔的计算节点的一个或多个处理器的检测。一旦执行,则每一个检测到的处理器的一种或多种资源也被检测。在处理框846,用每个检测到的处理器的每个处理器ID和各种处理器资源中的每一种来更新处理器设备结构。由此,如上所述,一旦运行中的操作系统查询了处理器设备结构,则对处理器设备结构的更新将向运行中的操作系统提供设备枚举和资源枚举。这样,使用这些信息,运行中的操作系统就能够向被热插拔的计算节点上的处理器发出任务。
参考图18,图18描绘的流程图所示出的另一种方法822用于处理框824中的检测一个或多个处理器。在处理框828,根据例如系统重置寄存器的CPUKILL位来选择所述计算节点的相应处理器端口。一旦选出,则在处理框830,确定是否有处理器装在所述计算节点的该处理器端口内。如上所述,利用本领域内公知的传统技术就可以实现这种处理。接下来,在处理框832,确定所检测到的处理器的ID。最后,在处理框834,对于被热插拔的计算节点的每个处理器端口,重复处理框828-832,从而对耦合到被热插拔的计算节点上的每个处理器进行检测。
参考图19,图19描绘的流程图所示出的另一种方法836用于检测一个或多个处理器的处理器ID,例如图17中所示的处理框824。在处理框838,对于一个检测到的处理器,从相应的处理器节点寄存器中选择处理器号。接下来,在处理框840,将所选择的处理器号与计算节点的节点ID连接起来,以确定所述处理器的ID。最后,在处理框842,对于被热插拔的计算节点上所检测到的一个或多个处理器中的每一个,重复处理框838至840,以确定检测到的处理器中每一个的处理器ID。
由此,本发明描述了用于枚举耦合到被热插拔的计算节点上的处理器的技术。另外,一个独有ID被设置为每个检测到的处理器的处理器ID。这种设置每个检测到的处理器的处理器ID的机制利用ACPI子系统所提供的枚举过程实现了设备枚举。因此,所述枚举过程将通过计算节点内所包含的各种配置寄存器来确定每个检测到的处理器和检测到的处理器的ID。
一旦得到确定,枚举过程将更新设备结构,从而向运行中的操作系统提供对热插拔计算节点上的处理器的设备枚举和资源枚举。通过提供这种信息,运行中的操作系统可以开始运行这些处理器并利用这些处理器,从而向其指派任务。这样,这里所描述的技术就可以避免实施一种新的PCI定义,该定义用于支持处理器-存储器节点的热插拔。
可替换的实施例
已经描述了用于提供实现计算节点的热插拔的系统体系结构的一种实施方案中的几个方面。然而,所述体系结构的各种实施方案提供了多种特征,这些特征可以包括、补充、增添和/或替换前面所描述的特征。在不同的实施方案中,各种特征可用系统微代码的一部分、软件过程或计算节点的一部分来实现。另外,为了解释方便,前面的描述中使用了特定的术语以彻底地理解本发明。然而,本领域的技术人员很清楚的是,不需要这些具体的细节也可以实现本发明。
另外,虽然这里所描述的实施例涉及对被热插拔的计算节点进行处理器枚举的方法和装置,但是本领域的技术人员将会明白,可以将本发明的教导应用于其它系统。事实上,在不偏离本发明的精神和范围的情况下,供热插拔的系统(所有非PCI设备)都属于本发明的教导之内。之所以选择并描述上述实施例,就是为了更好地解释本发明及其实际应用的原理。选择这些实施例的目的就是使得本领域的其他技术人员能够更好地利用本发明和各种实施例,为了适于所设想的特定用途,可以对这些实施例做出各种修改。
应当理解,虽然在上面的描述中已经阐述了本发明的各种实施例的多种特性和优点、以及本发明各种实施例的结构和功能的细节,但是这种公开仅仅是示意性的。在某些情况下,仅以这样一种实施例对某些组件进行了具体描述。尽管如此,应该认识并预想到,这些组件也可以应用到本发明的其它实施例中。可以在很多细节处进行修改,特别是在结构问题和部件管理方面,在本发明的原则内,可以在所附权利要求所表达的术语的广义范围内进行上述修改。
本发明与公知技术相比具有很多优点。由此,本发明描述了用于对耦合到被热插拔的计算节点上的处理器进行枚举的技术。另外,一个独有ID被设置为每个检测到的处理器的处理器ID。这种设置每个检测到的处理器的处理器ID的机制利用ACPI子系统所提供的枚举过程实现了设备枚举。因此,所述枚举过程将通过计算节点内所包含的各种配置寄存器来确定每个检测到的处理器和检测到的处理器的ID。
一旦得到确定,枚举过程将更新设备结构,从而向运行中的操作系统提供对热插拔计算节点上的处理器的设备枚举和资源枚举。通过提供这种信息,运行中的操作系统可以开始运行这些处理器并利用这些处理器,从而向其指派任务。这样,这里所描述的技术就可以避免实施一种新的PCI定义,该定义用于支持处理器-存储器节点的热插拔。
已公开了示例性的实施例和最佳方式,可以对公开的这些实施例做出多种修改和变化,而仍保持在所附权利要求所定义的本发明的范围之内。

Claims (34)

1.一种方法,包括:
响应于热插拔重置,向其中有计算节点被热插拔的系统体系结构操作系统枚举一个或多个处理器;并且
响应于操作系统激活请求,启动所述计算节点的所述一个或多个处理器。
2.如权利要求1所述的方法,其中,枚举操作还包括:
将耦合到所述计算节点上的所述一个或多个检测到的处理器中每一个的各自的处理器ID设置成各自的独有值;并且
开始与所述操作系统的握手,从而向所述操作系统提供热插拔通知。
3.如权利要求2所述的方法,其中,设置各自的处理器ID还包括:
从所述一个或多个检测到的处理器中选择一个处理器;
对于所选择的处理器,根据该所选择的处理器的处理器号和所述计算节点的节点ID,生成一个独有ID;
根据所生成的独有ID来更新所述所选择的处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择、生成和更新操作。
4.如权利要求2所述的方法,其中,开始握手还包括:
实现所述计算节点的节点链路,从而激活与系统体系结构端口的通信;并且
指引所述计算节点通过所述链路发出系统中断。
5.如权利要求4所述的方法,还包括:
响应于所述系统中断,由所述操作系统启动一个平台子系统;
向所述平台子系统提供热插拔事件通知;并且
由所述平台子系统运行资源枚举过程,以枚举所述一个或多个检测到的处理器的资源。
6.如权利要求4所述的方法,其中,实现所述节点链路还包括:
设置节点端口寄存器,以指引所述计算节点实现所述节点链路;
向所述计算节点发出请求,请求该计算节点发出系统控制中断;并且
响应于所述系统控制中断,由所述操作系统启动一个平台子系统。
7.如权利要求1所述的方法,还包括:
检测耦合到所述计算节点上的一个或多个处理器;并且
对于每个检测到的处理器设置各自的节点处理器寄存器,以允许向所述操作系统枚举每一个检测到的处理器。
8.如权利要求3所述的方法,其中,选择处理器还包括:
查询节点处理器寄存器,以确定所述计算节点的处理器容量值;
选择所述计算节点的一个处理器端口;
确定是否有处理器装在所述计算节点的该处理器端口内;
当检测到处理器时,设置对应的处理器节点寄存器值,以指示所检测到的处理器的存在;并且
根据所述处理器容量值,对于所述一个或多个检测到的处理器中的每一个,重复所述选择、确定和设置操作,使得每个处理器ID都是根据各自的处理器节点寄存器值而设置的。
9.如权利要求2所述的方法,其中,对所述处理器ID的设置还包括:
对于一个检测到的处理器,从相应的处理器节点寄存器中选择对应的处理器号;
将所选择的处理器号与节点寄存器连接起来,以形成一个独有ID;
用所述独有ID替换所述处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择和连接操作。
10.一种方法,包括:
响应于热插拔通知,开始枚举过程;
由所述枚举过程向其中有计算节点被热插拔的系统体系结构操作系统枚举一个或多个检测到的处理器的资源;并且
向所述被热插拔的计算节点上的所述一个或多个处理器发送激活请求。
11.如权利要求10所述的方法,其中的开始还包括:
检测中断;
响应于所述中断,启动一个系统控制中断,从而指引所述操作系统发动一个平台子系统;并且
一旦所述平台子系统被发动,则向所述平台子系统发出资源枚举事件通知。
12.如权利要求10所述的方法,其中,枚举操作还包括:
响应于资源事件通知,发动所述枚举过程;
响应于处理器枚举,检测耦合到所述被热插拔的计算节点上的一个或多个处理器;
响应于处理器枚举,检测所述一个或多个检测到的处理器所需的一种或多种资源;并且
用每个检测到的处理器ID和资源来更新处理器设备结构,从而向所述操作系统枚举所述一个或多个检测到的处理器以及所述一个或多个检测到的处理器的资源。
13.如权利要求12所述的方法,其中,检测操作还包括:
选择所述计算节点的一个对应的处理器节点寄存器值;
当处理器节点寄存器值被设置时,检测处理器;并且
对于所述计算节点的每一个处理器节点寄存器值,重复所述选择和检测操作,以检测出所述一个或多个处理器。
14.如权利要求12所述的方法,其中,检测操作还包括;
对于一个检测到的处理器,从相应的处理器节点寄存器中选择对应的处理器号;
将所选择的处理器号与节点寄存器ID值连接起来,以确定该处理器的独有处理器ID;
用所述独有ID替换所述处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择和连接操作,以确定所述一个或多个检测到的处理器中每一个的处理器ID。
15.一种计算机可读存储介质,包括程序指令,这些程序指令当由处理器执行时,指引计算机以特定的方式工作,所述程序指令包括:
响应于热插拔重置,向其中有计算节点被热插拔的系统体系结构操作系统枚举一个或多个处理器;并且
响应于操作系统激活请求,启动所述计算节点的所述一个或多个处理器。
16.如权利要求15所述的计算机可读存储介质,其中的枚举还包括:
将耦合到所述计算节点上的所述一个或多个检测到的处理器中每一个的各自的处理器ID设置成各自的独有值;并且
开始与所述操作系统的握手,从而向所述操作系统提供热插拔通知。
17.如权利要求16所述的计算机可读存储介质,其中,设置各自的处理器ID还包括:
从所述一个或多个检测到的处理器中选择一个处理器;
对于所选择的处理器,根据该所选择的处理器的处理器号和所述计算节点的节点ID,生成一个独有ID;
根据所生成的独有ID来更新所述所选择的处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择、生成和更新操作。
18.如权利要求16所述的计算机可读存储介质,其中,开始握手还包括:
实现所述计算节点的节点链路,从而激活与系统体系结构端口的通信;并且
指引所述计算节点通过所述链路发出系统中断。
19.如权利要求18所述的计算机可读存储介质,还包括:
响应于所述系统中断,由所述操作系统启动一个平台子系统;
向所述平台子系统提供热插拔事件通知;并且
由所述平台子系统运行资源枚举过程,以枚举所述一个或多个检测到的处理器的资源。
20.如权利要求18所述的计算机可读存储介质,其中,实现所述节点链路还包括:
设置节点端口寄存器,以指引所述计算节点实现所述节点链路;
向所述计算节点发出请求,请求该计算节点发出系统控制中断;并且
响应于所述系统控制中断,由所述操作系统启动一个平台子系统。
21.如权利要求15所述的计算机可读存储介质,还包括:
检测耦合到所述计算节点上的一个或多个处理器;并且
对于每个检测到的处理器设置各自的节点处理器寄存器,以允许向所述操作系统枚举每一个检测到的处理器。
22.如权利要求17所述的计算机可读存储介质,其中,选择处理器还包括:
查询节点处理器寄存器,以确定所述计算节点的处理器容量值;
选择所述计算节点的一个处理器端口;
确定是否有处理器装在所述计算节点的该处理器端口内;
当检测到处理器时,设置对应的处理器节点寄存器值,以指示所检测到的处理器的存在;并且
根据所述处理器容量值,对于所述一个或多个检测到的处理器中的每一个,重复所述选择、确定和设置操作,使得每个处理器ID都是根据各自的处理器节点寄存器值而设置的。
23.如权利要求16所述的计算机可读存储介质,其中,对所述处理器ID的设置还包括:
对于一个检测到的处理器,从相应的处理器节点寄存器中选择对应的处理器号;
将所选择的值与节点寄存器ID值连接起来,以形成独有处理器ID;
用所述独有ID替换所述处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择和连接操作。
24.一种计算机可读存储介质,包括程序指令,这些程序指令当由处理器执行时,指引计算机以特定的方式工作,所述程序指令包括:
响应于热插拔通知,开始枚举过程;
由所述枚举过程向其中有计算节点被热插拔的系统体系结构操作系统枚举一个或多个检测到的处理器的资源;并且
向所述被热插拔的计算节点上的所述一个或多个处理器发送激活请求。
25.如权利要求24所述的计算机可读存储介质,其中的开始还包括:
检测中断;
响应于所述中断,启动一个系统控制中断,从而指引所述操作系统发动一个平台子系统;并且
向所述平台子系统发出资源枚举事件通知。
26.如权利要求24所述的计算机可读存储介质,其中的枚举还包括:
响应于资源事件通知,发动所述枚举过程;
响应于处理器枚举,检测耦合到所述被热插拔的计算节点上的一个或多个处理器;
响应于处理器枚举,检测所述一个或多个检测到的处理器所需的一种或多种资源;并且
用每个检测到的处理器ID和资源来更新处理器设备结构,从而向所述操作系统枚举所述一个或多个检测到的处理器以及所述一个或多个检测到的处理器的资源。
27.如权利要求26所述的计算机可读存储介质,其中,对一个或多个处理器的检测还包括:
选择所述计算节点的一个对应的处理器节点寄存器值;
当处理器节点寄存器值被设置时,检测处理器;并且
对于所述计算节点的每一个处理器节点寄存器值,重复所述选择和检测操作,以检测出所述一个或多个处理器。
28.如权利要求26所述的计算机可读存储介质,其中,检测一个或多个处理器还包括:
对于一个检测到的处理器,从相应的处理器节点寄存器中选择对应的处理器号;
将所选择的处理器号与节点寄存器ID值连接起来,以确定该处理器的独有处理器ID;
用所述独有ID替换所述处理器的处理器ID;并且
对于所述一个或多个检测到的处理器中的每一个,重复所述选择和连接操作,以确定所述一个或多个检测到的处理器中每一个的处理器ID。
29.一种装置,包括:
计算节点,包括耦合于其上的一个或多个处理器,耦合到所述节点上的每条链路,所述链路使得所述计算节点能够插入到系统体系结构端口中;和
耦合到所述计算节点上的存储设备,具有存储于其中的指令序列,所述指令序列在被所述计算节点执行时使得所述计算节点:
响应于热插拔重置,向其中有计算节点被热插拔的系统体系结构操作系统枚举对一个或多个处理器的检测;并且
响应于操作系统激活请求,启动所述一个或多个处理器。
30.如权利要求29所述的装置,其中,用于枚举的指令还使得所述处理器:
将耦合到所述计算节点上的所述一个或多个检测到的处理器中每一个的各自的处理器ID设置成各自的独有值;并且
开始与所述操作系统的握手,从而向所述操作系统提供热插拔通知。
31.如权利要求29所述的装置,其中,用于枚举的指令还使得所述处理器:
查询节点处理器寄存器,以确定所述计算节点的处理器容量值;
选择所述计算节点的一个处理器端口;
确定是否有处理器装在所述计算节点的该处理器端口内;
当检测到处理器时,设置对应的处理器节点寄存器值,以指示所检测到的处理器的存在;并且
根据所述处理器容量值,对于所述一个或多个检测到的处理器中的每一个,重复所述选择、确定和设置操作,使得每个处理器ID都是根据各自的处理器节点寄存器值而设置的。
32.一种系统,包括:
体系结构平台,包括用于耦合到一个或多个计算节点的一个或多个端口;
计算节点,包括一个或多个耦合于其上的处理器和一个或多个链路,每条链路都耦合到所述节点上,这些链路用于实现到系统体系结构端口中的热插拔;和
耦合到所述计算节点上的存储设备,具有存储于其中的指令序列,所述指令序列在被所述计算节点执行时使得所述计算节点:
响应于热插拔重置,向其中有计算节点被热插拔的系统体系结构操作系统枚举一个或多个处理器;并且
响应于操作系统激活请求,启动所述一个或多个处理器。
33.如权利要求32所述的系统,其中,用于枚举的指令还包括:
将耦合到所述计算节点上的所述一个或多个检测到的处理器中每一个的各自的处理器ID设置成各自的独有值;并且
开始与所述操作系统的握手,从而向所述操作系统提供热插拔通知。
34.如权利要求33所述的系统,还包括用于以下操作的指令:
响应于热插拔通知,开始枚举过程;
由所述枚举过程向其中有计算节点被热插拔的系统体系结构操作系统枚举所述一个或多个检测到的处理器的资源;以及
向所述被热插拔的计算节点上的所述一个或多个处理器发送激活请求。
CNB028196937A 2001-10-03 2002-09-30 在计算节点的热插拔期间枚举处理器的装置和方法 Expired - Fee Related CN100380353C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/971,211 US7493438B2 (en) 2001-10-03 2001-10-03 Apparatus and method for enumeration of processors during hot-plug of a compute node
US09/971,211 2001-10-03

Publications (2)

Publication Number Publication Date
CN1564987A true CN1564987A (zh) 2005-01-12
CN100380353C CN100380353C (zh) 2008-04-09

Family

ID=25518074

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028196937A Expired - Fee Related CN100380353C (zh) 2001-10-03 2002-09-30 在计算节点的热插拔期间枚举处理器的装置和方法

Country Status (7)

Country Link
US (2) US7493438B2 (zh)
CN (1) CN100380353C (zh)
AU (1) AU2002362405A1 (zh)
DE (1) DE10297314T5 (zh)
GB (1) GB2397152B (zh)
HK (1) HK1062592A1 (zh)
WO (1) WO2003029993A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523277A (zh) * 2011-12-09 2012-06-27 中兴通讯股份有限公司 一种终端平台版本升级的方法和系统
US9210068B2 (en) 2007-11-29 2015-12-08 Intel Corporation Modifying system routing information in link based systems
CN105553568A (zh) * 2015-12-12 2016-05-04 浙江环顺网络科技有限公司 Ftth终端及其模块更换方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225427B2 (en) * 2002-06-14 2007-05-29 Hewlett-Packard Development Company, L.P. Method and device for providing computer system component data
US20040015581A1 (en) * 2002-07-22 2004-01-22 Forbes Bryn B. Dynamic deployment mechanism
US20040015638A1 (en) * 2002-07-22 2004-01-22 Forbes Bryn B. Scalable modular server system
US7114105B2 (en) * 2002-12-05 2006-09-26 Qualcomm, Inc. System and method for software download to wireless communication device
US7200694B2 (en) * 2003-05-30 2007-04-03 American Megatrends, Inc. Servicing multiple hot-plug events utilizing a common event signal in providing hot-plug attention button support
US7734741B2 (en) * 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US20070150713A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Methods and arrangements to dynamically modify the number of active processors in a multi-node system
JP4831317B2 (ja) * 2006-02-24 2011-12-07 日本電気株式会社 Pci多段ブリッジ構成コンピュータにおけるacpiマシン語テーブル記述方法及び装置とそのプログラム
US7725613B2 (en) * 2006-02-27 2010-05-25 Microsoft Corporation Device installation with host controller consideration
US20070214347A1 (en) * 2006-03-13 2007-09-13 Rothman Michael A Method and apparatus for performing staged memory initialization
US8028100B2 (en) * 2006-05-05 2011-09-27 Data I/O Corporation Automated processing system employing intelligent module automatic recognition
US7860930B2 (en) * 2006-12-19 2010-12-28 International Business Machines Corporation Communication between host systems using a transaction protocol and shared memories
US7836129B2 (en) * 2006-12-19 2010-11-16 International Business Machines Corporation Communication between host systems using a queuing system and shared memories
US7836238B2 (en) * 2006-12-19 2010-11-16 International Business Machines Corporation Hot-plug/remove of a new component in a running PCIe fabric
US7991839B2 (en) * 2006-12-19 2011-08-02 International Business Machines Corporation Communication between host systems using a socket connection and shared memories
US7813366B2 (en) 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US7984454B2 (en) * 2006-12-19 2011-07-19 International Business Machines Corporation Migration of single root stateless virtual functions
US8271604B2 (en) * 2006-12-19 2012-09-18 International Business Machines Corporation Initializing shared memories for sharing endpoints across a plurality of root complexes
JP2008186261A (ja) * 2007-01-30 2008-08-14 Fujitsu Ltd マザーボード,情報処理装置,設定方法,設定プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US20090198770A1 (en) * 2008-02-04 2009-08-06 Universal Scientific Industrial Co., Ltd. System and method of updating codes in controller
US20090278679A1 (en) * 2008-05-07 2009-11-12 Dell Products L.P. Methods and Media for Event Notification in Information Handling Systems
US9110716B2 (en) * 2008-06-10 2015-08-18 Dell Products, Lp Information handling system power management device and methods thereof
JP5401679B2 (ja) * 2009-02-19 2014-01-29 株式会社日立製作所 計算機システム、管理方法及び管理サーバ
US8949499B2 (en) * 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8943257B2 (en) 2011-09-30 2015-01-27 Intel Corporation Protocol neutral fabric
US8984174B2 (en) 2011-12-06 2015-03-17 Qualcomm Incorporated Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
CN104115132B (zh) 2011-12-22 2018-02-06 英特尔公司 借助于存储器通道关闭的功率节约
US8972618B2 (en) * 2012-07-31 2015-03-03 Hewlett-Packard Develpment Company, L.P. Staged discovery in a data storage fabric
JP5985403B2 (ja) * 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
US10437751B1 (en) * 2018-04-13 2019-10-08 Dell Products L.P. Device hot plug system
CN114372017B (zh) * 2022-01-04 2023-12-12 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法
CN114185607B (zh) * 2022-02-14 2022-06-14 苏州浪潮智能科技有限公司 Arm服务器中pci设备的启动控制方法、装置及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT978377B (it) 1973-01-23 1974-09-20 Folco Z Struttura mobile con raggio di curvatura di valore zero
US5933609A (en) 1996-04-08 1999-08-03 Vlsi Technology, Inc. Method and system for hot docking a portable computer to a docking station via the primary PCI bus
US5999997A (en) * 1996-07-26 1999-12-07 Compaq Computer Corporation Two computers cooperating via interconnected busses
US6338150B1 (en) * 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6249828B1 (en) * 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6212585B1 (en) * 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6161157A (en) * 1998-10-27 2000-12-12 Intel Corporation Docking system
US6295566B1 (en) 1998-10-31 2001-09-25 Campaq Computer Corporation PCI add-in-card capability using PCI-to-PCI bridge power management
US6535944B1 (en) 1999-03-30 2003-03-18 International Business Machines Corporation Hot plug control of MP based computer system
US6925513B1 (en) * 1999-05-04 2005-08-02 Apple Computer, Inc. USB device notification
US6516367B1 (en) * 1999-06-24 2003-02-04 International Business Machines Corporation Method and system for detecting bus device configuration changes
GB2394849A (en) 1999-10-01 2004-05-05 Agilent Technologies Inc Multi-channel replicating device for broadband optical signals, and systems including such devices
US6262493B1 (en) * 1999-10-08 2001-07-17 Sun Microsystems, Inc. Providing standby power to field replaceable units for electronic systems
US6754725B1 (en) * 2001-05-07 2004-06-22 Cypress Semiconductor Corp. USB peripheral containing its own device driver
US6807596B2 (en) * 2001-07-26 2004-10-19 Hewlett-Packard Development Company, L.P. System for removing and replacing core I/O hardware in an operational computer system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9210068B2 (en) 2007-11-29 2015-12-08 Intel Corporation Modifying system routing information in link based systems
CN102523277A (zh) * 2011-12-09 2012-06-27 中兴通讯股份有限公司 一种终端平台版本升级的方法和系统
CN102523277B (zh) * 2011-12-09 2018-03-23 中兴通讯股份有限公司 一种终端平台版本升级的方法和系统
CN105553568A (zh) * 2015-12-12 2016-05-04 浙江环顺网络科技有限公司 Ftth终端及其模块更换方法
CN105553568B (zh) * 2015-12-12 2018-02-06 浙江环顺网络科技有限公司 Ftth终端及其模块更换方法

Also Published As

Publication number Publication date
US20030065752A1 (en) 2003-04-03
GB2397152A (en) 2004-07-14
US7822900B2 (en) 2010-10-26
WO2003029993A2 (en) 2003-04-10
WO2003029993A3 (en) 2004-01-29
GB2397152B (en) 2005-12-07
HK1062592A1 (en) 2004-12-17
DE10297314T5 (de) 2004-09-09
US7493438B2 (en) 2009-02-17
AU2002362405A1 (en) 2003-04-14
US20090106471A1 (en) 2009-04-23
GB0407360D0 (en) 2004-05-05
CN100380353C (zh) 2008-04-09

Similar Documents

Publication Publication Date Title
CN1564987A (zh) 在计算节点的热插拔期间枚举处理器的装置和方法
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
CN101421701B (zh) 用于引导非易失性存储器的方法、设备和系统
TWI262443B (en) Method, system and recording medium for automatically configuring data processing system
CN102177499B (zh) 具有定制镜像的固件存储介质
TWI537748B (zh) 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體
US7490267B2 (en) System and method for testing computer
CN109426613B (zh) 在uefi中检索调试数据的方法及其电脑系统
CN101078985A (zh) 用于识别在计算机系统上运行的操作系统的方法和设备
US20080082755A1 (en) Administering An Access Conflict In A Computer Memory Cache
WO2007053980A1 (en) Method and apparatus to support virtualization with code patches
CN109240754B (zh) 一种配置bios启动项的逻辑器件及方法、系统
CN1831777A (zh) 用于管理多个热插拔操作的系统和方法
US10394711B2 (en) Managing lowest point of coherency (LPC) memory using a service layer adapter
US7921230B2 (en) USB devices pre-configuration for KVM switch
TWI329837B (en) Information handling system and computer system having one or more central processing units operative with main memory and method of updating a bios
JP2001222435A (ja) システムbiosに機能を与えるシステムおよび方法
JP2008090819A (ja) ハードウェアプラットフォームクラスの識別を高速化するシステム及び方法
JP2006012131A (ja) Scsiおよびsasハードウェア確認用システムおよび方法
TWI396092B (zh) 用於架構一遠端資料處理系統之電腦程式產品、資料處理系統、電腦實施方法及一種用於為一客戶架構一客戶端資料處理系統之服務處理方法
US20050160256A1 (en) [remote boot method and device thereof and server device using remote boot method]
CN114417373A (zh) 一种NVMe-oF用户态客户端的数据访问方法和装置
CN109032696A (zh) 一种页面调起方法、终端及计算机存储介质
Nikkel NVM express drives and digital forensics
US20060047927A1 (en) Incremental provisioning of software

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
CI01 Publication of corrected invention patent application

Correction item: Name

Correct: Device and method for enumerating a processor during hot insertion of a computing node

False: Device and method for enumerating a processor during thermal insertion of a computing node

Number: 15

Page: 1244

Volume: 24

CI03 Correction of invention patent

Correction item: Name

Correct: Device and method for enumerating a processor during hot insertion of a computing node

False: Device and method for enumerating a processor during thermal insertion of a computing node

Number: 15

Page: The title page

Volume: 24

COR Change of bibliographic data

Free format text: CORRECT: NAME; FROM: DEVICE AND METHOD FOR ENUMERATING PROCESSORS DURING HOT-POKING OF THE CALCULATION NODE TO: DEVICE AND METHOD FOR ENUMERATING PROCESSORS DURING HOT-PLUG OF THE CALCULATION NODE

ERR Gazette correction

Free format text: CORRECT: NAME; FROM: DEVICE AND METHOD FOR ENUMERATING PROCESSORS DURING HOT-POKING OF THE CALCULATION NODE TO: DEVICE AND METHOD FOR ENUMERATING PROCESSORS DURING HOT-PLUG OF THE CALCULATION NODE

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: 20080409

Termination date: 20180930