用于在对称多处理器系统中发送分组的方法和装置的制作方法

文档序号:6424553阅读:183来源:国知局
专利名称:用于在对称多处理器系统中发送分组的方法和装置的制作方法
技术领域
本发明一般涉及一种数据处理系统,并具体涉及对称多处理器系统。更具体而言,本发明涉及一种用于在对称多处理器系统内的处理节点之间发送分组的方法和装置。
背景技术
通过利用串联的多个独立处理器的处理功率可以实现较大的处理性能是计算机领域中公知的。可以以多种不同的结构来设计多处理器计算机系统,其中,依赖于所打算的设计、系统性能要求和软件环境,一种结构可能相对于其他的结构更适合于特定的应用。公知的多处理器结构包括例如对称多处理器(SMP)系统结构和非一致存储器访问(NUMA)系统结构。
在一种SMP数据处理系统中,所有的处理单元一般相同;即它们都具有相同的结构和使用指令和协议的公共集(common set)或子集来操作。典型地,每个处理单元包括一个处理器核心,它具有至少一个用于执行程序指令的执行单元。另外,每个处理单元可以包括至少一级高速缓冲存储器,通常被称为第一级(L1)高速缓冲存储器,它们通常被实现为高速存储器。类似地,通常被称为第二级(L2)高速缓冲存储器的第二级的高速缓冲存储器也可以被包括在用于支持L1高速缓冲存储器的每个处理单元中。有时,在用于支持L2高速缓冲存储器的每个处理单元中也可以包括通常被称为第三级(L3)高速缓冲存储器的第三级的高速缓冲存储器。高速缓冲存储器的每级存储系统存储器中包括的数据和/或指令的子集,以用于各种处理器核心的低等待时间的访问。
本公开描述了一种用于在SMP系统内的各种处理节点之间发送分组的方法和装置。

发明内容
按照本发明的一个优选实施例,一种用于在数据处理系统内的处理节点之间发送分组的方法,其中所述数据处理系统包括多个经由互连彼此连接的处理节点,所述方法包括启动从主节点向多个接收节点的请求事项;产生与所述请求事项相关联的写计数器数量;由所述主节点从所述接收节点接收组合的响应;按照所述组合响应从所述主代理向所述接收节点中的预期的一个发送数据分组;以及在从所述预期的接收节点接收确认消息之前和在已经发送所述数据分组之后立即启动新的写计数器数量和新的请求事项。
通过下面的详细书面说明,本发明的所有目的、特点和优点将会变得明显。


通过下面结合附图详细说明一个示范性的实施例,可以更好地明白本发明本身及其使用的优选模式、其他的目的和优点,其中图1是按照本发明的一个优选实施例的多节点数据处理系统的方框图;图2是按照本发明的一个优选实施例的处理器的方框图,所述处理器可以被利用来在图1中的数据处理系统内实现任何代理;图3是按照本发明的一个优选实施例的、在图2的处理器内的通信逻辑块的方框图;图4是按照现有技术的、在图1的数据处理系统中的请求事项的状态图;图5a描述了经由图1的数据处理系统的地址信道被发送的请求事项的示范格式;图5b描述了经由图1的数据处理系统的数据信道被发送的数据事项的示范格式;图5c描述了经由图1的数据处理系统的响应信道被发送的部分组合响应或组合响应的示范格式;和图6是按照本发明的一个优选实施例的、图1的数据处理系统中的请求事项的状态图。
具体实施例方式
现在参见附图,具体参见图1,其中描述了按照本发明的一个优选实施例的多节点数据处理系统的方框图。如图所示,数据处理系统10包括多个节点11a-11n,它们通过分段互连20一起被连接成环形结构,节点11a-11n中的每个为一个段。数据处理系统10的节点11a-11n的每个包括一个或多个代理,它们连接到互连20,并且对于节点11a被指定A0-An,对于节点11b被指定B0-Bn,等等。节点11a-11n的每个也包括一个相应的响应和流程控制逻辑块12,用于控制在互连20上的事项向其相邻节点的流动。
互连20被配置来作为高速高带宽的总线,最好工作在500M赫兹或更高级别的频率。互连20包括至少一个数据信道13和几个不闭塞的地址信道14a-14n,地址信道14a-14n的每个与节点11a-11n中的相应的一个相关联,以便仅仅在节点11a-11n的相关联的一个中的代理可以在地址信道14a-14n之一上发出请求。地址信道14a-14n和数据信道13的每个如上所述被分段,以便节点11a-11n的每个包括每个地址和数据信道的一个段,并且每个地址和数据信道段连接到同一信道的至少两个相邻的段。如箭头所示,每个信道也是单向的,这意味着在互连20上的地址和数据事项仅仅在所指示的方向上在相邻的节点之间传播。在所图解的实施例中,地址信道14a-14n的每个的每段被实现为一个地址总线,它并行传送32个地址比特,并且数据信道13的每段被实现为数据总线,它并行传送16个数据字节;但是,可以理解,互连20的独立的段可以替换地以基于开关的或混合的互连来实现。
结合互连20,数据处理系统10具有三个边带信道,即部分组合响应(PCR)信道15、组合响应(CR)信道16和取消信道17,以便分别地传达部分组合响应、组合响应和取消(或停止(stomp))信号。在此所使用的PCR被定义为少于所有节点的一些节点内的所有代理的请求的累积响应,CR被定义为对于在所有节点中的所有代理的请求的累积响应。如下所述,代理能够通过参照与在地址信道14a-14n的任何一个上被探听(snooped)到的请求相关联的PCR、CR和取消信号而确定是否服务于该请求。
现在参照图2,其中描述了按照本发明的一个优选实施例的处理器的方框图,所述处理器可以用于实现在图1的数据处理系统10内的任何代理。虽然可以以处理器来实现在数据处理系统10内的每个代理,应当明白,代理可以是能够支持在此所述的通信协议的任何器件。如图所示,处理器21包括处理逻辑块22,用于处理指令和数据;通信逻辑块23,用于实现管理在(图1的)互连20上的通信的通信协议;分层高速缓冲存储器24,用于提供对于指令和数据的局部的、低等待时间的存储。除了可能包括例如第一级(L1)和第二级(L2)高速缓冲存储器的分层高速缓冲存储器24之外,处理器21的局部存储器可以包括相关联的芯片外(off-chip)第三级(L3)高速缓冲存储器,诸如L3高速缓冲存储器19和局部存储器18,如图1所示。指令和数据最好分布在局部存储器18之间,以便所有局部存储器18的内容的集合形成可以由数据处理系统10内的任何代理访问的共享“主存储器”。以下,将包括与特定的地址相关联的存储位置的局部存储器18称为那个地址的本地(home)局部存储器,将在所述本地局部存储器和互连20之间插入的代理称为那个地址的本地代理。如图2所示,每个本地代理具有可以由通信逻辑块23和分层高速缓冲存储器24访问的存储映像25,它仅仅指示在关联的局部存储器18中包括什么存储器地址。
现在参见图3,其中图解了图2的通信逻辑23的详细方框图。如图所示,通信逻辑23包括主控制逻辑块31;主地址定序器32,用于在地址信道14a-14n之一上排序(sourcing)请求(地址)事项(见图1);主数据定序器33,用于在数据信道13上排序数据事项。为了保证地址信道14a-14n的每个是非阻塞的,在给定节点11内的每个代理的主地址定序器32仅仅连接到与其节点11相关联的地址信道14。因此,例如,代理A0-An的每个的主地址定序器32仅仅连接到地址信道14a,代理B0-Bn的每个的主地址定序器32仅仅连接到地址信道14b,代理N0-Nn的每个的主地址定序器32仅仅连接到地址信道14n。为了公平地分配地址信道14a-14n的使用和保证局部代理不发出冲突的地址事项,应当使用一些仲裁机制(例如循环复用或时间片)来在同一节点11内的代理之间仲裁。
相反,在数据处理系统10内的所有代理的主数据定序器33连接到数据信道13。数据信道13是非阻塞的,因为对于其中优化了在局部存储器18之间的存储器的分布和在代理之间的处理的分布的应用,可以通过数据信道13来传送的数据事项的类型是统计上少见的,其中所述数据事项主要包括(1)来源于非本地代理的一个代理的修改的数据,(2)来源于本地代理的数据,和(3)被写回本地局部存储器18的修改的数据。当然,在仅包括单一数据信道13的实现方式中,应当使用一些仲裁机制(例如循环复用或时间片)来在同一节点11内的代理之间仲裁以保证局部代理不发出冲突的数据事项。
主控制逻辑31也包括写计数器39。写计数器39的目的是用于在发送请求事项之前递增在请求事项内的写计数器字段。下面进一步说明写计数器字段的细节。
通信逻辑23也包括探听地址和响应定序器35,它连接到地址信道14a-14n的每个和边带响应信道15和16;探听数据定序器36,它连接到数据信道13;探听控制逻辑块34,它连接到探听地址和响应定序器35以及探听数据定序器36。响应于接收到探听地址和响应定序器35的请求事项或探听数据定序器36的数据事项,所述事项被传送到探听控制逻辑块34。探听控制逻辑块34按照所实现的通信协议来处理所述事项,并且如果是请求事项,则探听控制逻辑块34向其节点的响应和流程控制逻辑块12提供探听响应并且可能还提供取消信号。依赖于所接收的事项的类型,探听控制逻辑块34可以启动更新分层高速缓冲存储器24的目录或数据阵列、向局部存储器18写入或一些其他行为。探听控制逻辑块34分别对来自一组请求队列37和数据队列38的请求和数据事项执行这样的处理。
现在参见图4,其中描述了按照现有技术的(图1的)数据处理系统10内的请求事项的状态图。如步骤41所示,由诸如节点11a的代理A0的主代理启动请求事项,所述主代理控制在诸如地址信道14a的相关联的地址信道内的读取或写入请求事项。所述请求事项经由地址信道14a依序从节点11a到节点11b并且最后到节点11n传播。在每个代理的探听地址和响应定序器35探听在地址信道14a上的请求事项之后,如步骤42中所述,所述请求事项被转发到对应的探听控制逻辑,诸如探听控制逻辑块34,它向诸如响应和流程控制逻辑块12的相关联的响应和流程控制块提供适当的探听响应,指示是否所述代理可以服务(或参加服务)所述请求,如步骤43中所示。在表I中以优先级的降序示出了可能的探听响应。
表I


代理A0-An的探听响应随后被响应和流程控制逻辑块12a组合为在PCR信道15上的PCR输出。如果在适当的探听响应的确定期间,在节点11a内的一个代理的探听控制逻辑块34确定可能在数据处理系统10内具有所有代理的最高优先级探听响应,诸如用于读取请求的修改的干预或用于写入请求的本地,则在节点10a内的代理将其取消信号向局部取消逻辑块(未示出)断言,所述局部取消逻辑块在取消信道17上输出取消信号。最好在取消信道17上断言所述取消信号。
其后,节点11a向可以服务所述请求的接收节点发送与所述请求相关联的数据分组,如步骤44所示,并且节点11a随后在发送另一个数据分组之前等待来自接收节点的确认(ACK)信号,如步骤45所示。每个数据分组与一个标签相关联。节点11a必须等待来自接收节点的ACK信号,因为如果节点11a立即发送新的数据分组,则准备好接收数据的所有节点会看到同一标签的多次使用,并且不能将一个数据分组与另一个相区别。但是,由于沿着诸如互连20的互连的阻塞/失速(stalling),对于ACK信号的等待时间会很长。
例如,L2高速缓冲存储器使用标签Y,用于将数据从在节点A0内的缓冲器向节点M0排出。一旦数据从节点A0被卸载,则由于在节点A0和节点M0之间连接的互连内的业务量,所述数据会在其向下游到节点M0的路径上失速。同时,可以预见,在节点A0内的同一排出缓冲器可以以相同标签Y发出另一个地址使用期,但是这一次数据是前往节点N0的。因此,如果来自第一次排出的数据在第二次排出之前还没有被节点M0接收,则在节点M0和N0上的数据的接收方将不能区分被排出的数据分组意欲前往哪个节点。因此,在现有技术中,在节点A0内的排出缓冲器不允许复位和再次开始,直到节点A0接收到ACK信号(仅仅地址的使用期)以指示所排出的数据的预定目的地实际收到了被排出的数据分组。但是,对于ACK信号的等待时间由于沿着互连的阻塞/失速而会很长。由于数据总线失速的机会增加和通过处理系统传送数据所需要的时间,这样的问题在实际的具有许多节点的大处理系统中被加重。
为了避免等待时间,使用按照本发明的新的请求事项。现在参见图5a,其中描述了按照本发明的一个优选实施例的请求事项的数据结构。如图所示,请求事项50包括主节点ID字段51,用于指示主代理的节点ID;写计数器字段52;事项类型字段53,用于指示是否所述请求事项是读取(例如只读或打算修改的读取)或写入请求;和请求地址字段54,用于指定请求地址。图5b描述了数据事项55的类似数据结构,所述数据事项55包括目的节点ID字段56,用于指示目的节点的节点ID;写计数器字段57;和数据字段58,用于包含该数据。
按照本发明的一个优选实施例,每次发送一个事项请求,则将在写计数器字段52和57内的数量增加1。例如,用于第一请求事项的在写计数器字段52内的数据是“00”,用于第二请求事项的在写计数器字段52内的数量是“01”,用于第三请求事项的在写计数器字段52内的数量是“10”,用于第四请求事项的在写计数器字段52内的数量是“11”。于是,用于第五请求事项的在写计数器字段52内的数量将返回“00”。
在写计数器字段52内的比特的数量最好依赖于在连接在数据处理系统内的所有节点的一个互连中的节点和延迟的数量。例如,在数据处理系统内的节点的数量=2n,其中n是在写计数器字段52内的比特的数量。因此,n=log10(在所述数据处理系统内的节点的数量)/log102。因而,在写计数器字段52内的比特的数量可以按照诸如在图1中的互连20的互连的长度被调整来提供最佳的性能。在写计数器字段52内的比特的数量最好被诸如来自图3的写计数器39的写计数器更新。
如图5c所示,响应60的数据结构包括探听节点ID字段61,用于指示提供已接收到最高优先级探听响应的代理的节点ID;和响应字段62,用于指示已接收到的最高优先级探听响应。
现在参见图6,其中描述了按照本发明的一个优选实施例的、数据处理系统10中的一个请求事项的状态图(见图1)。如步骤71所示,由在第一节点内的主代理来启动诸如读取或写入的请求事项。请求事项的地址依序从一个节点向另一个节点传播,如步骤72所示。主代理然后等待来自接收节点之一的响应,如步骤73所示。在接收到一个响应之后,从主代理向预定的、已经发送所述响应的接收节点发送数据,如步骤74中所述。在结束数据使用期时,下一个请求事项的写计数器字段(诸如图5a的写计数器字段52)被加1,以便下一个请求事项将具有比前一个请求事项更高的写计数。然后,处理可以进行到下一个请求状态,重复图6的顺序,而不等待来自预定的接收节点的ACK信号,就像在现有技术设计中所做的那样。
如上所述,本发明提供了一种用于在对称多处理器系统内发送分组的方法和装置。本发明通过每次使用给定的缓冲器来区别标签而消除了标签问题。因此,可以在上载总线上的数据分组后重新使用所述缓冲器。通过使用本发明的写计数器,可以避免重新使用同一标签的长等待时间,并且可以潜在地降低在用于存储准备好被发送的数据的节点内的队列(诸如排出缓冲器)的数量。
虽然已经参照一个优选实施例具体示出和说明了本发明,但本领域的技术人员应明白,在不脱离本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。
权利要求
1.一种用于在数据处理系统内的处理节点之间发送分组的方法,其中所述数据处理系统包括多个经由互连彼此连接的处理节点,所述方法包括启动从主节点向多个接收节点的请求事项;产生与所述请求事项相关联的写计数器数量;由所述主节点从所述接收节点接收组合响应;按照所述组合响应从所述主代理向所述接收节点中的预期的一个发送数据分组;和在从所述预期的接收节点接收确认消息之前以及在已经发送所述数据分组后,立即与新的写接收器数量一起启动新的请求事项。
2.按照权利要求1的方法,其中所述产生步骤还包括产生用于每个请求事项的新的写计数器数量。
3.按照权利要求1的方法,其中在所述写计数器数量中的比特的数量==log10(在所述数据处理系统内的节点的数量)/log102。
4.按照权利要求1的方法,其中所述数据处理系统是一种对称多处理器系统。
5.一种用于在数据处理系统内的处理节点之间发送分组的装置,其中所述数据处理系统包括多个经由互连彼此连接的处理节点,所述装置包括用于启动从主节点向多个接收节点的请求事项的部件;用于产生与所述请求事项相关联的写计数器数量的部件;用于由所述主节点从所述接收节点接收组合响应的部件;用于按照所述组合响应从所述主代理向所述接收节点中的预期的一个发送数据分组的部件;和用于在从所述预期的接收节点接收确认消息之前和在已经发送所述数据分组后,立即与新的写接收器数量一起启动新的请求事项的部件。
6.按照权利要求5的装置,其中所述产生部件还包括一个写计数器,用于产生每个请求事项的新的写计数器数量。
7.按照权利要求5的装置,其中在所述写计数器数量中的比特的数量==log10(在所述数据处理系统内的节点的数量)/log102。
8.按照权利要求5的装置,其中所述数据处理系统是对称多处理器系统。
全文摘要
公开了一种用于在对称多处理器系统内发送分组的装置。所述对称多处理器系统包括多个经由互连彼此连接的处理节点,在每个节点有多个代理。通过在主节点内的主代理向所有接收节点启动请求事项。产生与所述请求事项相关联的写计数器数量。主代理然后等待来自接收节点的组合响应。在接收到所述组合响应后,按照该组合响应从主代理向接收节点的预期的一个发送数据分组。在已经发送了所述数据分组后,在接收到来自接收节点的确认消息之前,在主节点中的主代理准备好发送另一个请求事项以及新的写计数器数量。
文档编号G06F15/17GK1527975SQ02814110
公开日2004年9月8日 申请日期2002年7月25日 优先权日2001年7月31日
发明者拉维·K·阿里米利, 盖伊·L·格思里, 乔迪·B·乔伊纳, 杰里·D·刘易斯, B 乔伊纳, D 刘易斯, L 格思里, 拉维 K 阿里米利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1