一种多处理器系统(10),包括:互连网络(18)、耦合于该互连网络的共享资源(26)以及彼此耦合且经由该互连网络而耦合于共享资源的多个处理器(12、14、16)。对处理器进行编程以将加权值与多个处理器中的每一个相关联,比较加权值,并且根据加权值的比较,从多个处理器中选择至少其中一个处理器。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术总体上涉及多处理器系统,更具体而言,涉及一种。相关技术说明多处理器系统内部的早期固件执行(例如启动或引导过程)特别有问题。在多处理器系统内部的固件执行的早期阶段期间(例如,像在系统复位之后),在启动或引导过程期间执行的许多功能不是多处理器安全的。具体来讲,在固件执行的早期阶段期间,未充分地发挥出系统存储器和高速缓存的作用,由此存储器相干性机制是不可操作的,而且无法维护存储器相干性。其结果是,多处理器系统内部的早期固件执行可能会导致两个或多个处理器同时尝试访问一个资源。例如,两个或多个处理器可以同时尝试对寄存器进行写,这会导致存储资源中的不正确数据或过时数据的存储。将与多处理器系统内部的固件执行的早期阶段相关联的难度减到最低的一种常见手段就是,选择单个处理器来起到自引导处理器(bootstrap processor,BSP)的作用。众所周知,单个BSP的选择使BSP能执行为充分操作(例如,操作系统的执行)而准备多处理器系统的功能,这包括建立存储器相干性模式,与此同时多处理器系统内部的其它处理器保持空闲状态。照此,单个处理器(例如,BSP)的选择使多处理器系统能仅仅使用单个处理器向前推进通过尚未确立存储器相干性的早期固件阶段,并且消除把过时数据写入到可能会由多处理器系统内部的处理器共享的资源中的可能性。在一些例如就像Intel公司的基于IA-32的系统这样的多处理器系统内,BSP的选择是自动地利用前端总线(FSB)协议来执行的。利用FSB协议,多处理器系统内的每个处理器都包括连接或搭接到系统总线上的多个信号输入端或管脚,以便根据FSB上处理器的物理位置来为每个处理器建立唯一的二进制码或标识符。当系统复位时,每个处理器就对其管脚进行采样,并且读取且内部地存储其唯一标识符。利用FSB协议,当系统复位时,就把具有特定的预定标识符的处理器之一指定为BSP。典型地,指定的BSP经由处理器间中断(IPI)来产生系统管理中断。具体来讲,BSP利用其它处理器的唯一标识符来指挥位于这些处理器上的IPI,以便使它们强行设为已知的空闲状态。如果其它处理器处于空闲状态,那么BSP具有对引导过程的完全控制,直到已经充分地发挥了系统存储器和高速缓存的作用以使多处理器能安全工作为止。一些微处理器体系结构,例如就像Intel ItaniumTM系列处理器所采用的体系结构,并未利用诸如上述FSB协议之类的硬件技术提供BSP的自动选择。反而,不为BSP的选择而提供基于硬件的机制的处理器却通常依靠多处理器安全固件来选择BSP。在操作系统执行期间,多处理器系统通常采用诸如(例如)cmpxchg之类的原子(即,不可中断的)读/比较/写指令来创建基于存储器的信号量,所述信号量实现了从多处理器系统内部的多个处理器中选择单个处理器。令人遗憾的是,虽然在后来的固件执行阶段期间可以采用这类基于固件的处理器选择技术,但是当相干的存储器是不可用之时,在早期的固件执行阶段期间就不能使用那些技术。在易于选择多处理器系统内部的单个处理器(例如,BSP)的另一种手段当中,同系统一起使用的芯片组包含当第一次读取时返回一个特定值而对于所有后续的读取返回一个不同值的专用寄存器。照此,读取该专用寄存器的第一处理器将根据从寄存器中检索出的值来认定它是BSP,而随后读取寄存器并检索出不同值的其余的处理器认定它们要保持空闲状态。虽然这个专用寄存器提供了一种用于从多个处理器中选择单个处理器的机制,但是这种选择是任意的,由此不考虑多处理器系统内部的可用处理器的状况良好(health)或工作条件。附图简要说明附图说明图1是使用这里所述的处理器选择技术的多处理器系统示例的框图;图2a-c是描绘这样一种方式的示例的流程图,采用所述方式,可以在图1中所示的多处理器系统内使用这里所述的处理器选择技术;和图3是描绘这样一种方式的流程图,采用所述方式,可以对图1中所示的处理器进行编程以产生它们的加权值。详细说明图1是使用这里所述的示例性处理器选择技术的多处理器系统10的示例的框图。如图1所示,多处理器系统10包括经由互连总线或网络18而彼此相耦合的多个处理器12、14和16。处理器12-16可以是任何适合的处理器、处理单元或微处理器,例如就像Intel ItaniumTM处理器、Intel X-ScaleTM处理器、Intel PentiumTM处理器、等等。处理器12-16还耦合于芯片组20,所述芯片组包括存储器控制器22、输入/输出(I/O)控制器24和共享资源26。众所周知,芯片组典型地提供I/O和存储管理功能以及多个通用和/或专用寄存器、定时器等等,它们可由耦合于该芯片组的一个或多个处理器访问或使用。存储器控制器22执行使处理器12-16能访问系统存储器28的功能,所述系统存储器可以包括任何期望类型的易失性存储器,例如就像静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等等。I/O控制器24执行使处理器12-16能经由I/O总线30而与外围设备(未示出)相通信的功能。虽然在图1中把存储器控制器22和I/O控制器24描绘成了芯片组20内的独立功能块,但是可以在单个半导体电路内集成由这些块所执行的功能或者可以利用两个或多个独立的集成电路来实现由这些块所执行的功能。在图1中所示的示例中,共享资源26是可由所有处理器12-16访问的芯片组20内的寄存器。尽管在图1中把共享资源26描绘成是独立于存储器控制器22和I/O控制器24的,但是共享资源26也可以是存储器控制器22或I/O控制器24内部的寄存器。供共享资源26使用的寄存器是可读且可写的寄存器,在系统10复位之后,所述寄存器具有已知缺省值,例如零值。在处理器12-16是Intel TitaniumTM处理器的情况下,可以将Intel 870芯片组用作为芯片组20。正如这里更详细描述的那样,Intel870芯片组提供了多个暂存寄存器,其中任何一个暂存寄存器都能够执行共享资源26的功能。然而,应当认识到的是,虽然诸如由870芯片组提供的那些寄存器之类的暂存寄存器都非常适合于用作为共享资源26,但是也可以代替使用任何其它具有可容许的副作用(side-effect)的寄存器。换言之,可以同下面结合图2a-2c所描述的技术一起使用的、对系统10的操作没有不利影响的任何寄存器,都是适合的备选方案。由此,如果处理器12-16对那个寄存器的访问(即,从那个寄存器中读取,和/或向那个寄存器写入)不会致使不良的后果或副作用,则可以把任何寄存器都用作为共享资源26。例如,可以把与固定的外设部件互连(PCI)装置相关联的基址寄存器用作为共享资源26,当执行这里所述的处理器选择技术的同时,所述外设部件互连装置不为系统10所使用。正如同样在图1中描绘的那样,处理器12-16包括各自的以已知频率进行计数的时间间隔定时器/计数器(ITC)寄存器38-42。例如,在处理器12-16是Intel ItaniumTM处理器的情况下,ITC寄存器38-42是能被复位且继而从零开始以每秒10亿次计数速率连续向上计数的64位的寄存器。由于Intel itanium处理器内的ITC寄存器的大尺寸(即,计数器位数),这些ITC寄存器能够在不翻转(ro本文档来自技高网...
【技术保护点】
一种从多处理器系统内的多个处理器中选择处理器的方法,包括:将加权值与多个处理器中的每一个相关联;比较加权值;以及根据加权值的比较,从多个处理器中选择至少其中一个处理器。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:T谢林,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。