多处理器无线网络中微处理器通信的方法和数据处理系统的制作方法

文档序号:6420830阅读:99来源:国知局
专利名称:多处理器无线网络中微处理器通信的方法和数据处理系统的制作方法
技术领域
一般地说,本发明涉及数据处理,特别是在数据处理系统中各处理器之间的通信。更具体地说,本发明涉及多处理器数据处理系统中处理器通信和协调的方法、处理单元和系统。
背景技术
在计算机技术领域,大家都知道通过利用多个单处理器联合的处理能力能达到更强的计算机系统性能。多处理器(MP)计算机系统能以若干不同的体系结构设计出来,其中,根据预期的设计目的、系统的性能要求以及每个应用的软件环境,可有各种设计更好地适用于特定的应用。已知的MP体系结构包括例如对称多处理器(SMP)和非均衡存储器访问(NUMA)体系结构。
在共享存储器的多处理器数据处理系统中,系统中多个处理器每个都可以访问和修改共享存储器中存储的数据。为了在多处理器之间同步对存储器特定区组(例如高速缓存线)的访问,程序设计模型往往要求一个处理器在修改该区组之前获取与该区组关联的锁并在修改之后释放该锁。
在SMP体系结构中,多处理器利用进、出共享存储器内可高速缓存的存储器单元的“加载”和“存储”,在互联总线上实现彼此通信。当同步多处理器系统以实现流水线或并行处理时,在各处理器之间不断地传送通信信息,以允许每个处理器与执行该进程的其他处理器协调。处理器通过高速缓存子系统内的加载和存储,传送特定的处理器信息,如处理器的状态或进程的状态。当一个处理器达到需要更新它的状态信息并将其告知其他处理器的状态时,该处理器通过获取对数据的锁来取得对该信息的排他控制以便对其进行修改。这使得持有这一信息的其他处理器使它们的副本无效,并在前述处理器已存储了其对信息的更新之后再次从存储器中加载该状态信息。这种处理器通信机制的效率是低的,因为它需要处理器不断地争夺对信息的控制,它需要从其他处理器中清空那个信息,只在已发生改变之后再重新加载,并且每当一个处理器存储该信息而其他处理器停住以等待信息更新时,它使流水线或并行处理减慢。
本发明认识到,相对于互连耦合的处理器之间进行的小百分比和小数量的处理间通信及其他事务而言,这些低效行为消耗大量互连带宽并且使得通信延迟太高。例如,一个8路SMP系统中两个节点每个中存在的四个处理器由较高级总线耦合,而这两个节点本身由较低级总线耦合,即使对于这样一个比较简单的系统,在不同节点中的处理器之间的一个数据请求的传送将在这三条总线的每一个中产生与总线获取及其他事务有关的延迟。即使在同一节点中处理器之间进行的处理器间通信,也必须消耗较高级总线带宽并造成总线延迟。因为这种延迟只是由于增大互连层次结构的深度造成的,所以本发明认识到,提供一种改善的数据处理系统体系结构是人们所希望的和有益的,这一系统减小了物理上远离的处理器间通信的延迟并减小了总线带宽消耗,从而释放了总线带宽,以用于各处理器及分级存储器系统之间的一般数据传送。

发明内容
根据一个优选实施例,提供了处理器通信的方法、处理器和多处理器系统,其中这多个处理器中有至少一个处理器包含一个处理器通信寄存器(PCR),它向该处理器提供对其中所存储的信息的连续访问。一个处理器从这多个处理器的一个处理器中包含的PCR的一个或多个区(sector)提取信息,其中这些区之一被分配只供该多个处理器中的相关联的一个处理器进行存储;以及把来自该相关联的处理器的信息存入该多个处理器中的每个PCR中与其关联的区。
在另一个实施例中,该多个处理器中至少两个处理器同时从它们各自的PCR提取信息。在又一个优选实施例中,在该多个处理器中包含的各个PCR中含有相同的信息。在又一个优选实施例中,该信息对于该多个处理器协调流水线或并行多重处理是有用的。在又一个优选实施例中,这一个或多个区的每个区被排他地分配给只供该多个处理器中的一个相关的处理器进行存储。在又一个实施例中,该一个或多个区的每个区为4字节。在又一个优选实施例中,该处理器不断地更新每个PCR中的每个区,从而使该多个处理器中的每个处理器访问它自己的PCR中存储的信息,无需从系统存储器加载这一信息。


在所附权利要求中陈述了相信能表征本发明的新特性。然而,结合附图参考下文中对实施示例的详细描述,将能最好地理解发明本身以及它的优选使用方式,进一步的目的和优点,其中图1描绘根据本发明优选实施例的一个支持微处理器通信的多处理器数据处理系统的高级方框图;图2A显示根据本发明一个优选实施例的数据处理系统的一个简图中互连每个PCR的星型总线结构;图2B显示根据本发明优选实施例的数据处理系统的一个简图中互连每个PCR的环型总线结构;图3A和3B描绘根据本发明的一个优选实施例,使用PCR以便于在多处理器系统中分别进行流水线处理和并行处理的举例;图4A描绘根据本发明的优选实施例,具有改进的处理器通信的基于集群的数据处理网络;图4B显示根据本发明的一个优选实施例,在集群C1-C3中所有处理器单元内包含的处理器通信寄存器使用的数据格式;以及图5描绘根据本发明的一个优选实施例,利用独立的无线网络提供改进的处理器通信的数据处理系统。
具体实施例方式
现在参考附图,特别是参考图1,图中显示根据本发明的一个实施例,支持微处理器通信的多处理器(MP)数据处理系统的高级方框图。如图中所示,数据处理系统8包括若干个(例如64个)处理单元10,它们通过系统互连12耦合以进行通信。如图1的实施例中所示,处理单元10包含四个处理器单元1-4作为举例;然而,该优选实施例不受处理器单元数量的限制,本发明将支持任何数量或类型的处理器单元。本发明能在具有任何数量的处理器单元的数据处理系统中实现,例如在该多处理器系统中包括2、4、8、16、32等数量的处理器。每个处理单元10是一个包括一个或多个处理器核心14的集成电路。除了寄存器、指令流程逻辑和用于执行程序指令的执行单元外,每个处理器核心14还包括相关联的一级(L1)指令和数据高速缓存16和18,它们分别暂时缓存可能由相关联的处理器核心14访问的指令和操作数数据。
如图1中进一步显示的那样,数据处理系统8的存储器分层结构还包括物理存储器22,包含一个或多个存储器模块(图中示为存储器模块36、38和40),它们构成该存储器分层结构中最低级易失性数据存储器,以及一个或多个较低级高速缓冲存储器,如芯片上二级(L2)高速缓存20,它们用于中间集结从物理存储器22到处理器核心14的指令和操作数数据。如本领域技术人员理解的那样,存储器分层结构的每个相继的较低级通常能比较高级存储更大量数据,但是具有更高的访问延迟。如图所示,物理存储器22通过存储器控制器30、32和34与互连12接口,可存储操作数数据以及一个或多个操作系统的一些部分以及一个或多个应用程序。存储器控制器30、32和34分别与相应的存储器模块36、38和40耦合并控制它们。
图中还显示了输入/输出连接器52,当执行对存储器系统的直接存储器访问操作时,连接器52以与处理单元10相似的方式操作。如将理解的那样,该系统可有附加的输入/输出连接器,与输入/输出连接器52等同,连接于互连12。由于各种输入/输出设备,如盘驱动器和视频监视器,被添加到PCI总线58(或其他类似的附加总线)上或从该总线上去掉,输入/输出连接器52用于通过桥54在PCI总线58和互连12之间传送数据。
本领域技术人员将会理解,数据处理系统8可包括许多额外的图中未示出的部件,如I/O适配器、互连桥、非易失性存储器、连接到网络或附加设备的端口等。因为这些附加部件对理解本发明不是必须的,故没有显示在图1中且不在这里进一步讨论。然而,还应该理解,由本发明提供的增强特性可应用于任何体系结构的数据处理系统并且决不限于图1所示一般化MP体系结构。
根据一个优选实施例,处理器单元1-4每个分别包含一个处理器通信寄存器(PCR)22、24、26和28。每个PCR22-28存储完全相同的信息,它对多处理器系统中的处理器有用,如用于协调流水线或并行多重处理的处理器通信信息。每个PCR22-28是一个四字节寄存器,它能由其相关联的处理器单元读出,但这里的四个字节每个被排他地分配只供四个处理器单元1-4中与其关联的一个进行存储(在另一个实施例中,该PCR有32个区,每个区有四字节宽)。在操作时,每个处理器单元1-4对其自己的PCR内容连续地访问,并能遍存(store-through)到它自己的以及每个其他PCR内的它的专用区。换言之,在数据处理系统内的每个处理器单元写每个处理器单元中包含的每个PCR,但只写这些PCR的它的被指定部分。通过处理器单元的操作,由每个处理器更新所有PCR内该处理器的区,每个PCR22-28被持续地更新,从而立即允许每个处理器单元1-4看到PCR数据中的改变。例如,在本发明的一个实施例中,处理器单元1将通过改变它自己的PCR22内包含的数据,然后通过互连12传送指向处理器单元2-4的每个中的PCR的“遍存”命令,但越过整个高速缓存子系统(包括L1和L2高速缓存),来改变这些PCR内它的区。处理器单元1的遍存命令将只寻址分配给它的区,其是每个PCR22-28的四个字节内的第一个字节。例如,处理器单元3将向每个其他处理器单元1、2及4发送一个遍存命令,它寻址每个PCR内的第三个字节。将会理解,PCR22-28不限于寄存器中持有的任何特定字节数或分配给特定处理器的任何特定寄存器字节数,而且在另一些实施例中它们可以持有任何数量的字节或向特定的处理器分配任何数量的寄存器字节。
如将会理解的那样,本发明通过允许将处理器通信信息立即传送到所有处理器而无需暂时地限制对该信息的访问或迫使所有处理器持续的争夺同一高速缓存线,以致以无休止的“加载”、“存储”和“使无效”命令流淹没互连和存储器系统,从而显著地提高了多处理器系统内的效率。
本优选实施例在多处理系统进行流水线或并行处理的那些应用中特别有用。例如,在现有技术中,当一个处理器完成一个流水线处理的它的那一部分时,它把处理器通信信息存储在它外部的高速缓存子系统中,表明它已完成了该处理的它那一阶段。在该流水线中的下一个微处理器持续地轮询它的高速缓存子系统,等待更新的状态信息。当前一个处理器得到独占访问并使高速缓存中的状态信息无效时,该下一个处理器从存储器或前一处理器高速缓存中提取更新后的状态信息并检验适当的标志以确定该处理是否已准备好进入它的阶段。如将会理解的那样,有大量的互连带宽被处理器间通信耗掉,因为所有的多处理器都在高速缓存内加载和存储关于该流水线的处理器通信信息的相同字节,以便互通和协调它们的处理。
现在参考图2A,图中显示根据本发明的优选实施例在数据处理系统8的一个简图中互连每个PCR的星型总线结构。在一个优选实施例中,每个PCR22-28被分成四个区,每个区被指定用于数据处理系统8中的四个处理器之一,而且每个区含有一个信息字节。如将会理解的那样,PCR22-28能被分成任何数量的区,包括其数量等于该数据处理系统中处理器单元的数量(例如2、4、8、16、32、64等)。再有,在PCR22-28内分配给每个区的字节数也不限于如该优选实施例中所示仅为一个字节,而是设置成认为是在给定体系结构中为提供处理器通信所必须的字节数。
如图2A中所示,处理器单元1能在任何时候读整个PCR22,从而能立即访问来自该系统内所有处理器的处理器通信信息。类似地,处理器单元2能在任何时候读整个PCR24,处理器单元3能在任何时候读整个PCR26,以及处理器单元4能在任何时候读整个PCR28。在一个实施例中,在所有PCR内的区P1由处理器单元1控制,在所有PCR内的区P2由处理器单元2控制,在所有PCR内的区P3由处理器单元3控制,以及在所有PCR内的区P4由处理器单元4控制。只有控制一个区的处理器单元能对该PCR内的那个区进行更新、修改或存储。这样,例如,只有处理器单元1能对PCR22-28内的区P1进行写操作。类似地,处理器单元2控制区P2,因而是该系统内能对PCR22-28内的区P2进行写操作的唯一处理器单元。类似地,区P3和P4分别由处理器单元3和4控制,因而只有控制处理器单元能对PCR22-28内的特定区进行写操作。然而,所有处理器单元1-4能从那个处理器单元包含的PCR内的全部区中读出信息。
如图2A中所示,互连200-206(集体作为互连总线)是每个处理器单元1-4之间的直接总线链接,它们是独立的并越过由存储器系统使用的互连12。处理器单元1直接向它的PCR22的区P1写信息,以更新它自己的处理器通信信息。处理器单元1还有通过互连200到其他处理器单元2-4的直接通信链接。当写入信息以更新其处理器通信信息时,处理器单元1通过互连200遍写到PCR24-28,这直接把被写数据放到相应寄存器的P1区。处理器单元2以类似的方式把处理器信息遍写到它自己的PCR24内它的区P2并通过互连202把该处理器通信信息直接传送到PCR22,26及28的P2区。处理器单元3把处理器信息遍写到它自己的PCR26内它的区P3并通过互连204把该处理器通信信息直接传送到PCR22、24及28的P3区。处理器单元4把处理器信息遍写到它自己的PCR28内它的区P4并通过互连206把该处理器通信信息直接传送到PCR22、24及26的P4区。
为向每个处理器单元提供对PCR区的读和写,可实现星型处理器通信互连的各种实现。如图2A中所示,每个处理器单元只被允许对PCR内分配给它的区写信息。这能通过互连200-206的直接硬连线实现,从而只有那些区可由处理器单元访问。另一种作法是,互连200-206可为单个通信总线或多重通信总线,它们接供数据和该数据的目标地址二者,从而使每个处理器单元只能以该寄存器内的指定字节为目标。例如,处理器单元2只有权向每个PCR22-28的第二个字节写信息。为了读信息,每个处理器单元1-4有能力读它自己内部的PCR。然而,如将会理解的那样,随着系统内处理器单元数量的增大,互连总线系统的复杂性随着每增加一个处理器单元而显著增大。在另一些实施例中,在多处理器系统内的其他处理器单元能被接入该星型网络之中,从而使该处理器能读另一处理器单元的PCR。例如,一个新的处理器单元5(未示出)能被连入该星型网络中去读寄存器28并得到处理器单元1-4正在利用的同样的处理器通信信息。
现在针对图2B,图中显示根据本发明的优选实施例的数据处理系统8的一个简图中互连每个PCR的环型总线结构。环型总线210是一个特殊的通信互连,它允许一个多处理器系统内的各处理器单元互通存储在PCR22-28中的特殊处理器通信信息。环型总线210独立于由互连12连接到处理器单元1-4的分层存储器系统。在该环型总线实施例中,如本领域技术人员公知的那样,利用令牌传送环型网络成按包来传送数据。如将会理解的那样,使用环型总线是很可伸缩的,并不限制数据处理系统中能包括的处理器单元数量。然而,星型互连的延迟低于环型总线,因为每个处理器直接与其他处理器相连。
当每个处理器单元1-4需要更新PCR22-28中它的区时,相应的处理器在环型总线210上传送的“包”中发出一个存储命令。该包沿着互连环210传送并被连到该环型总线的每个其他处理器单元1-4接收。在环型总线210上接收包的每个处理器单元解码包含在该包内的地址并把信息存储到相关联的PCR区,或者,替代的作法是根据该包中包含的信息确定是哪个处理器单元发出了该存储指令,然后更新与那个发存储指令的处理器关联的PCR区。为防止在环型总线210上发生冲突,处理器单元1-4在把它的净载荷连到该包的尾端之前让来自其他处理器的包传送通过该环型总线。
现在参考图3A和3B,图中给出根据本发明的优选实施例在多处理器系统内使用PCR以便于分别进行流水线和并行处理的举例。当进行流水线处理时,在处理器网络内的每个处理器负责执行与一段计算关联的特定算法。通常,在流水线处理中,一个处理单元接收已由前一个处理器处理过的信息,对那个数据完成它的处理功能,然后把该处理过的数据传送给流水线中的下一个处理器以进一步处理该数据。例如,数据处理系统8可能正处理16K字节音频文件以对该音频文件执行各种处理例程。例如,一个处理器可能正执行一个例程以规一化音量,另一个处理器可能正实现一个功能去规一化基音,而另一个处理器可能正对该音频文件加密。这样的任务使它本身趋向于流水线处理。
图3A中描绘的是PCR的内容,这里每行表示选定时刻一个区(P1、P2、P3和P4)的内容,而每个相继行代表在不同的时间点(t1、t2、t3、和t4)的区。在时刻t1,每个处理器单元1-4看到区P1表明处理器单元1当前正在处理标为“F”的数据。类似地,P2表明当前在处理标为“E”的数据,P3表明当前在处理标为“D”的数据,以及P4表明当前在处理标为“C”的数据。这里在图3A中显示的字节由它们的16进制表示形式表示。在时刻t2,P1仍表明处理器单元1仍在处理由F代表的数据,但处理器单元2和3已更新了PCR中的P2和P3,表明它们已完成了对数据E和D的处理,如分别由E’和D’代表的那样。P4显示出未被更新,表明处理器单元4仍在处理与C相关的数据。
在时刻t3,处理器单元1已更新了PCR中的P1,表明它现在已开始处理与“0”相关的数据。一旦看到PCR内对P1的更新,处理器单元2明白处理器单元1已完成了它对与F相关的数据集的例程,于是处理单元2可开始它对那个数据的例程。处理器单元2更新PCR中它的区P2以表明F,然后从高速缓存子系统中提取该相关的数据以开始它的例程。类似地,处理器单元3看到处理器单元2现已完成对数据集E的例程并已释放了它的控制,于是更新在PCR内的区P3以表明处理器单元3现在开始作用于数据集E。尽管在时刻3处理器单元4能看到处理器单元3已完成了对数据集D的工作,但它尚未完成对数据集C的例程,所以尚未更新PCR。在时刻t4,处理器单元1已完成它对数据集0的例程并已开始处理数据集1,如它更新PCR中它的区P1所指出的那样,表明它在对数据集1工作。类似地,处理器单元2已完成对数据集F的工作并已开始执行对数据集0的操作,因为它通过处理器单元1对其PCR内的区P1的更新看到处理器单元1已完成对数据集0的工作。在时刻t4,处理器单元3尚未完成它对数据集E的例程,所以它在PCR内的区P3尚未被更新。如由D′指出的那样,处理器单元4已完成它对数据集D的操作。因为处理器3尚未完成它对数据集E的处理,所以处理器4不能开始对那个数据集工作,于是相应地尚未更新PCR。
正如能看到的那样,本发明的优选实施例允许该系统内的每个处理器单元能立即访问来自其他处理器的处理器通信信息,这些信息表明正在对特定数据集执行其处理的每个处理器的当前状态,从而有助于进行流水线处理。这通过与该数据集流水线处理并行的有效的处理器通信提供对处理器的有效协调。
现在参考图3B,图中显示根据本发明的优选实施例在并行处理中利用PCR的举例。在这一例子中,数据处理系统8内的每个处理单元正对同一问题的相互关联的不同部分进行工作,但正被处理的该各数据集之间的数据依赖性要求它们被并行执行,从而要求在数据被处理时各处理单元之间的协调。如图3B中可见,在时刻t1,每个处理单元1-4已更新PCR内它们的区,表明当前它们正在处理由“0”代表的数据集。在时刻t2,P1、P2和P4已被更新,表明处理单元1、2和4已准备好开始处理数据集1,但P3表明处理单元3继续处理数据集0。直至时刻t3,处理单元3才更新P3,表明它已完成处理数据集0。在那一点,每个处理单元1-4开始并行处理数据集1。在时刻t4,P1表明处理单元1已完成处理数据集1并准备开始处理数据集2。P2和P3表明处理单元2和3在继续处理数据集1。P4显示处理单元4已完成数据集1并准备开始处理数据集2。在时刻t5,处理单元2和3已完成处理数据集1并已更新PCR以表明它们准备好开始处理数据集2。在那一点,每个处理单元1-4开始并行处理数据集2。如将会理解的那样,PCR允许每个处理单元1-4通过立即访问每个PCR中存储的处理器通信信息来同步它们对该数据集的并行处理,无需消耗高速缓存子系统互连的任何带宽去更新和协调由每个处理单元进行的并行处理过程。
现在参考图4A,图中显示根据本发明的优选实施例,具有改进的处理器通信的、基于集群的数据处理网络。数据处理系统400包括由网络420互连的集群1(C1)、集群2(C2)和集群3(C3)。每个集群C1-C3包含四个处理器单元401-404,由环型总线410互连。每个处理器单元401-404分别包含一个PCR422-428,其包含12字节处理器通信信息。每个集群C1-C3包括与环型总线410相连的网卡406,其使它的集群与网络420互连。网络420能在至少三个不同的实施例中实现,以提供用于该优选实施例的处理器通信的PCR之间的互连(1)具有专用协议的标准数据网络,它允许在集群之间传送一种特殊的数据包,(2)标准的数据网络,其传输唯一网际协议(IP)地址,只用于把数据存入PCR,以及(3)专用于向PCR传送处理器通信信息的单独的数据网络。
在网络420的一个优选实施例中,网络420将由一个专用协议实现,该层位于计算机系统数据网络,如局域网(LAN)或因特网内的标准网络协议,如千兆字节以太网协议或基于IP的协议的顶层。为提供该集群处理器与位于一个不同集群中的其他处理器之间的通信,在该系统网络上传送使用该专用协议的点到广播型特殊包。如在一个优选实施例中使用的那样,网络420通常利用诸如传输控制协议/网际协议(TCP/IP)的通信协议提供每个集群C1-C3之间的数据和指令通信。网卡406利用标识它的集群的唯一IP地址供接收和发送集群间的通信。
为更新PCR,进行更新的处理器在环型总线410上发送“遍存”命令以更新每个PCR中它的区。它的集群中的其他处理器,通过索引到由该处理器传送的包中的地址,来更新它们自己的PCR。网络单元406接收该命令并把它插入一个特殊的专用协议TCP/IP包中,该包被编址到该数据处理系统400中其他集群的IP地址。该特殊的PCR包在网络420上传送并由其他集群的网络单元406接收。其净载荷的解码与其他标准包的不同之处在于跨越TCP/IP协议堆栈,代之以只是从该包中剥离出净载荷并在环型总线410上作为遍存命令传送给处理器单元401-404以更新各PCR422-428中被寻址的区(或多个区,如果该净载荷包含多个区更新的话)。通过索引到与进行传送的集群中正在更新其处理器通信信息的那个或那些处理器单元相关联的那个或那些区,在PCR内的每个区被编址,如图4B中描绘的那样。这样,由集群C1-C3利用的特殊类型IP包提供对其他集群中包含的所有PCR的更新。
现在参考图4B,图中显示根据本发明的优选实施例,在集群C1-C3中所有处理器单元内包含的PCR所用的数据格式。每个处理器单元401-404分别包含具有12个数据字节的一个PCR422-428,其每个由指定的集群C1-C3的各自的处理器P1-P4控制,如图4B中所示。由于每个处理器单元在其PCR中保留相同处理器通信信息的它自己的副本,所以最新更新的处理器通信信息可由所有集群C1-C3立即和持续地得到。当一个集群内的一个处理器单元需要在整个网络上更新该各PCR内包含的它的处理器通信信息时,该处理器在环型总线410上发出一个特殊的“遍写”命令,该命令寻址到各PCR422-428内分配给它的字节,从而更新该各PCR内由它控制的字节,例如,在集群C2内,处理器单元3将遍存到各PCR422-428内的第七字节。在集群C2中的每个其他处理器单元(处理器单元1、2和4)将继续更新它们的相应PCR内的第七字节。当网卡406接收来自处理器单元3的遍存请求时,它把该命令打包(如果必要的话)并在网络420上把该遍存命令传送到集群C1和C3的IP地址(以一包或多包传送,取决于具体实现)。每个集群C1和C3将利用进行发送的集群C2的IP地址解码该存储请求以确定集群C2的第三个处理器单元(P3)曾在更新PCR的第七字节。
回来参考图4A,在网络420的另一优选实施例中,将使用处在标准网络协议顶层的专用协议实现网络420,但那里每个集群C1-C3有其自己的唯一IP地址专用于更新PCR并与网络420使用的与各集群通信的一般IP地址无关。为更新PCR,进行更新的处理器在环型总线410上发送一个遍存命令以更新PCR的它的区。与环型总线410连接的该集群中的其他处理器通过索引到被该处理器传送的包中的地址来更新它们自己的PCR。网络单元406接收该命令并将其插入一个TCP/IP包,该包被编址到唯一IP地址,这些IP地址预留出以供更新数据处理系统400的其他集群中的PCR。这一特殊的PCR包在网络420上传送并根据其它集群的网络单元406的PCR所用的该唯一IP地址,由其他集群的网络单元406接收。其净载荷被解码并作为遍存命令在环型总线410上传送到处理器单元401-404,以更新各PCR422-428中的被寻址区(或多个区,如果该净载荷包含多个区更新的话)。如图4B中引用的那样,通过索引到与进行传送的集群中正在更新其处理器通信信息的那个或那些处理器单元相关联的那个或那些区,在各PCR内的每个区被编址。
在网络420的又一个优选实施例中,网络420将用一个专用于更新各PCR的且与互连各集群的标准网络无关的单独的、专用网络来实现。在专用网络420的一个优选实施例中,使用互连每个集群的单独点到点总线实现互连。网络单元406协调这些直接通信并把“遍存”从其他集群传送到它的相关环型总线410。在专用网络420的另一优选实施例中,使用基于包的网络和专用协议与各集群通信,以此实现互连。它还能使用标准协议,如千兆字节以太网或基于IP的协议,或者它们的某些定制变体。在这一实施例中,为更新各PCR,进行更新的处理器在环型总线410上发送一个“遍存”命令以更新PCR中它的区。与环型总线410连接的该集群中的其他处理器通过索引到由该处理器传送的包中的地址来更新它们自己的PCR。网络单元406接收该命令并将其插入一个包,该包被编址到唯一IP地址,这些地址预留出以供更新数据处理系统400的其他集群中的各PCR。这一特殊的PCR包在专用网络420上传送并被其他集群的网络单元406接收。其净载荷被解码并作为遍存命令在环型总线410上传送到处理器单元401-404,以更新各PCR422-428中的被寻址区(或多个区,如果该净载荷包含多个区更新的话)。如图4B中引用的那样,通过索引到与进行传送的集群中正在更新其处理器通信信息的那个或那些处理器单元相关联的那个或那些区,在各PCR内的每个区被编址。
现在参考图5,图中显示根据本发明的优选实施例,利用独立的无线网络提供改进的处理器通信的数据处理系统。数据处理系统500有多个被互连的服务器计算机共处一处集体完成复杂的和/或数据量大的计算(通常称作服务器场(server farm))。在图5的例子中,服务器场500包含六个服务器(服务器1-6)。每个服务器1-6包括两个“抽屉(drawer)”其包含多个服务器片(blade)502、504。如将会理解的那样,每个服务器片502、504可包含多个对称多处理器。在一个优选实施例中,每个服务器片502、504将针对数据处理系统配置而成,例如针对图1中所示数据处理系统8配置而成,其被配置成具有多个处理器,其使用用于服务器片的每个处理器中包含的每个处理器通信寄存器之间的通信的环形互连(例如如图2B中所示)。如将会理解的那样,所显示的服务器场500有六个服务器只是为了便于说明,并不限于任何特定的服务器数量。如会进一步理解的那样,每个服务器片502、504能包含任何数量的处理器(例如2、4、8、16、32个等),不限于图2B中所示的四个处理器。
根据本发明的优选实施例,在服务器1-6中的服务器片502有环型总线(未示出),其以无线网卡506互连服务器片502中的每个服务器单元(未示出)中包含的PCR(未示出),其互连方式与图4A中显示的以环型总线410互连处理器单元401-404中的PCR及网卡406的方式相同。无线网卡506的操作与图4A中看到的网卡406的操作完全相同,只是它经由通过天线508的传输在无线网络514上与服务器场500内的其他无线网卡506互连。类似地,服务器片504利用环型网络互连服务器卡处理器中的每个PCR与无线网卡510互连。无线网卡510通过天线512与无线网络514进行无线通信。以同样方式,服务器1-6的每个服务器片502、504与无线网络514互连,以创建具有12个单独集群(包含12个服务器抽屉)的基于集群的网络。
服务器场500内的每个集群以与网络400的各集群相同的方式更新各自在PCR内包含的处理器通信信息。然而,在这种情况中,为更新各PCR中的处理器通信信息而与每个集群的通信是在无线网络上完成的。每个无线网卡506、510在所有指定频率上监听,等待服务器场500内另一集群对PCR的更新。在一个利用频分多路复用(FDM)的实施例中,当一个集群需要遍写到其他集群以更新其PCR区时,它在其唯一频率上传送该遍存信息。在服务器场500内没有其他集群在那个特定频率上传输,因此,唯一地识别出一个特定集群内的对PCR的那个区具有写权限的特定处理器,所以复杂的基于IP的寻址和协议是不必要的。例如,在一个优选实施例中,每个无线网卡506、510利用标准的无线网络协议,如IEEE802.11(a)协议,它使用正交FDM,彼此通信。在另一些优选实施例中,该无线网络利用时分多路复用(TDM)或码分多路复用(CDM)传输系统。
在另一个优选实施例中,服务器片502、504的每个服务器片本身含有无线网卡,它通过环型总线与服务器片的处理器互连,而且通过无线网络514与服务器场500内的所有其他服务器片进行无线通信。例如,每个服务器片502、504将针对如图4A中的集群C1被配置,但网卡406将具有无线能力以提供通过网络420与其他集群的互连通信。如将会理解的那样,利用无线网络连接提供处理器通信信息的该服务器场实施例由于避开了环型集群网络的复杂协议堆栈和延迟从而显著地提高了PCR更新过程的速度。
尽管已经参考优选实施例具体显示和描述了本发明,但本领域技术人员将会理解,可以做出在形式和细节上的各种改变而不脱离本发明的精神和范围。
权利要求
1.一种在包含通过一个网络互连的多个处理器集群的多处理器系统中进行处理器通信的方法,其中每个处理器集群包含至少一个具有处理器通信寄存器(PCR)的处理器,该处理器通信寄存器(PCR)向它的处理器提供对存储在该PCR中的信息的持续访问,该方法包括以下步骤从该多个处理器集群中的一个第一处理器中包含的PCR的一个或多个区中提取信息,其中这些区中的一个区被分配只供该多个处理器集群中一个相关的处理器进行存储;在该第一处理器处接收从该相关处理器被传输至该网络的信息;将该接收到的信息存入被分配给供该相关处理器进行存储的区中。
2.权利要求1的方法,进一步地,其中该多个集群中至少两个处理器同时提取每个来自该多个处理器集群中包含的单独的、各自的PCR的信息。
3.权利要求1的方法,其中该相同信息被包含在该多个处理器集群中含有的每个各自的PCR中
4.权利要求1的方法,进一步地,其中该信息用于该多个集群协调流水线或并行多处理。
5.权利要求1的方法,进一步地,其中该一个或多个区的每个区被排他地分配给只供该多个处理器集群中的一个相关处理器进行存储。
6.权利要求1的方法,进一步包含持续更新该多个处理器集群中每个PCR中的每个区,以使该多个处理器集群的每个处理器可以访问存储在其各自PCR中的信息,而无需从系统存储器加载此信息。
7.权利要求1的方法,进一步包含在网络上从该相关处理器传输该信息的步骤。
8.权利要求7的方法,其中该传输步骤包含在一标准数据网络上使用一个专用协议,以允许特定数据包在集群之间被传输。
9.权利要求7的方法,其中该传输步骤包含在一标准数据网络上使用只用于将数据存入PCR的唯一的网际协议地址。
10.权利要求7的方法,其中该传输步骤包含使用一个专用于至少将处理器通信信息传输至PCR的单独数据网络。
11.权利要求7的方法,其中该传输步骤包含使用一个专用于至少将处理器通信信息传输至PCR的无线数据网络。
12.一种在包含通过一个网络互连的多个处理器集群的多处理器系统中进行处理器通信的方法,其中每个处理器集群包含至少一个具有处理器通信寄存器(PCR)的处理器,该处理器通信寄存器(PCR)向它的处理器提供对存储在该PCR中的信息的持续访问,其中每个PCR包含多个区,且该多个区的每个区被分配给只供该多个处理器集群中一个相关的处理器进行存储,该方法包括以下步骤从该多个处理器集群中两个PCR中的每一个提取相同的信息;在该网络上从该相关处理器传输信息;在该多个处理器集群中的每个PCR处接收从该相关处理器传输至该网络的信息;将在该多个处理器集群中的每个PCR处接收到的信息存入被分配给供该相关处理器进行存储的区中;以及通过存储从该相关处理器接收到的信息更新该多个处理器集群中每个PCR中的每个区,而无需从系统存储器加载此信息。
13.权利要求12的方法,其中该网络是具有一个允许特定数据包在集群之间被传输的专用协议的标准数据网络。
14.权利要求12的方法,其中该网络是传输只用于将数据存入PCR的唯一网际协议地址的标准数据网络。
15.权利要求12的方法,其中该网络是专用于至少将处理器通信信息传输至PCR的单独的数据网络。
16.权利要求12的方法,其中该网络是专用于至少将处理器通信信息传输至PCR的无线数据网络。
17.一个多处理器系统,包括多个处理器集群,其中每个处理器集群包含至少一个含有处理器通信寄存器(PCR)的处理器,该处理器通信寄存器具有多个区,其中该多个处理器集群中的每个处理器可访问它的PCR并可提取存储在该多个区的每个区中的信息,且其中该多个处理器集群中每个PCR中多个区的每个区被分配只供该多个处理器集群中一个相关的处理器进行存储,以及其中该多个处理器集群中的每个处理器更新该多个处理器集群中每个PCR中该多个区中与该处理器相关的区,以使当一个区被它的相关处理器更新时,包含PCR的每个处理器能立即访问该更新的信息;以及互连该多个处理器集群的网络,以使该多个处理器集群的一个处理器集群中的一个相关处理器通过在该网络上传输信息而更新该多个处理器集群的其他处理器集群中每个PCR中与该处理器相关的区。
18.权利要求17的多处理器系统,其中该信息用于该多个处理器集群协调流水线或并行多处理。
19.权利要求17的多处理器系统,其中该多个处理器集群中的每个处理器可访问该多个区的每个被更新的区中存储的信息,而无需从系统存储器中提取此信息。
20.权利要求17的多处理器系统,其中该相同信息被包含在该多个处理器集群中的每个PCR内。
21.权利要求17的多处理器系统,其中该网络是具有允许特定数据包在集群之间传输的专用协议的标准数据网络。
22.权利要求17的多处理器系统,其中该网络是传输只用于将数据存入每个PCR的唯一网际协议地址的标准数据网络。
23.权利要求17的多处理器系统,其中该网络是专用于将处理器通信信息传输给每个PCR的单独数据网络。
24.权利要求17的多处理器系统,其中该网络是专用于至少将处理器通信信息传输给每个PCR的无线数据网络。
全文摘要
在一个多处理器集群网络内的每个处理器中包含的处理器通信寄存器(PCR)提供增强的处理器通信。每个PCR存储用于流水线或并行多处理的相同的处理器通信信息。每个处理器具有排他的权利对该集群网络内每个PCR中的一个区进行存储并可访问以读取它自己的PCR的内容。每个处理器通过一个专用协议或专用无线网络更新所有PCR内它的专用区,以允许该集群网络内的所有其他处理器看到该PCR数据内的改变,并越过高速缓存子系统。通过提供会立即被传送到网络并被传送给所有处理器的处理器通信,而无需暂时限制对该信息的访问或迫使所有处理器持续争夺同一高速缓存行,从而提高了该处理器集群网络内的效率。
文档编号G06F15/167GK1506836SQ200310116968
公开日2004年6月23日 申请日期2003年12月3日 优先权日2002年12月12日
发明者R·K·阿里米利, R·A·卡哥诺尼, D·E·威廉斯, K·L·赖特, R K 阿里米利, 卡哥诺尼, 威廉斯, 赖特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1