多处理器数据处理系统的制作方法

文档序号:6509454阅读:174来源:国知局
专利名称:多处理器数据处理系统的制作方法
技术领域
本发明一般地涉及数据处理系统,具体地说,涉及多处理器数据处理系统。更具体地说,本发明涉及用于多处理器数据处理系统的数据互连和数据路由机制。
背景技术
在计算机领域中公知的是,通过利用多个处理单元的共同处理能力,可以得到更高的计算机系统性能。可以使用许多不同的体系结构来设计多处理器(MP)计算机系统,取决于预期的设计点、系统的性能要求以及每种应用的软件环境,其中可能有各种体系结构适合于特定的应用。已知的MP体系结构包括,例如,对称多处理器(SMP)和非一致性存储器访问(NUMA)体系结构。一般认为通过设计具有更多分层的计算机系统,即,具有更多互连的层并且每个互连具有更少的处理单元连接的计算机系统,可以获得更大的可伸缩性,以及因此更高的性能。
然而,本发明认识到传统分层互连体系结构内的处理单元间的事务的通信延迟是对提高系统性能的重大妨碍,并且这种传统分层系统的通信延迟随着系统的大小而增加,相当大地减小了通过增大系统规模可以得到的性能收益。为了解决这些性能和可伸缩性问题,美国专利No.6,519,649介绍了一种可伸缩的非分层的分段互连体系结构,该体系结构改善了地址事务和关联的相关响应的通信延迟。虽然美国专利No.6,519,649的非分层的分段互连体系结构改善了地址和关联的相关消息的通信延迟,但是提供一种减小延迟并提高处理单元间数据通信效率的增强的数据互连和数据路由机制是有用的并且是所希望的。

发明内容
鉴于上述的说明,本发明提供了一种具有改进的数据互连和数据路由机制的数据处理系统。在一个实施例中,数据处理系统至少包括第一到第三处理单元、连接到所述多个处理单元的数据存储装置以及互连构架。所述互连构架至少包括将所述第一处理单元连接到所述第二处理单元的第一数据总线,以及将所述第三处理单元连接到所述第二处理单元的第二数据总线,从而所述第一和第三处理单元可以向所述第二处理单元传输数据业务。所述数据处理系统进一步包括连接所述第一和第三处理单元的控制通道。所述第一处理单元经由所述控制通道请求来自所述第三处理单元的批准,以便向所述第二处理单元传输数据通信,并且所述第三处理单元在经由所述控制通道传输的响应中批准或推迟所述数据通信的传输。
本发明的数据互连和路由机制减小了数据通信延迟,并且支持基于处理器活动级别/业务的动态路由决定。此外,本发明的数据互连和路由机制实现了一种体系结构,所述体系结构支持与不断增加的处理器频率相称的通信频率的提高。
在下面详细的书面说明中,本发明的上述以及其他目的、特征和优点将变得显而易见。


在所附的权利要求书中说明了被认为是本发明的特性的新颖特征。然而,当结合附图阅读时,通过参考下面对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用模式、其他目的和优点,这些附图是图1是根据本发明的一个实施例的包括数据互连和数据路由机制的数据处理系统的高层方块图;图2是根据本发明的一个实施例的典型处理单元的更详细的方块图;图3是根据本发明的一个实施例的示例性数据通信情景的时序图;以及图4示出了一种根据本发明的一个实施例的典型数据通信格式。
具体实施例方式
现在参考附图,具体地说,参考图1,其中示出了根据本发明的一个实施例的具有数据互连和数据路由机制的多处理器数据处理系统8的高层方块图。本发明的数据互连和路由机制提供了高频率、低延迟、可伸缩的结构,该结构允许在多处理器数据处理系统内的多个处理单元之间高效地路由数据。
如图所示,数据处理系统8包括用于处理指令和数据(通常在软件和/或固件的控制下)的多个处理单元(PU)10a-10h。优选地,各PU10(可以是同类的或异类的)被物理地布置在一个二(或更高)维阵列内,所述阵列包括两行或更多行(或系列)的PU10。即,PU10a-10d形成第一行(或第一系列),并且PU10e-10h形成第二行(或第二系列)。尽管在所述第一行(包括PU10a-10d)中的每个PU10优选地在所述第二行(包括PU10e-10h)中具有相应的PU10,但是本发明并不要求这种对称。然而,如所示出的,各PU10的配对有利地允许两个或更多个PU10的每个这种处理“部”26被方便地包装在例如单个多芯片模块(MCM)内。这种包装允许通过连接所希望数目的处理部26来容易地构建各种不同规模的系统。
为了提供对软件指令和/或数据的存储,一个或多个PU10可以被连接到一个或多个存储器12。例如,在所示出的实施例中,PU10a、10d、10e、和10h(并且可能是其他PU10)都经由单向8字节存储器请求总线14和单向16字节存储器数据总线16被连接到相应的存储器12。存储器12包括通常可以由某些或全部PU10访问的共享存储器区域。可以理解,本发明中可以可替代地采用其他的存储体系结构。
经由一个或多个交换的、总线式的、混合的和/或其他在此处被总称为“互连构架”的互连结构,可以在各PU10之间传送数据访问请求、高速缓存管理命令、相关响应、数据以及其他信息。在图1中,经由地址和响应互连18在各PU10之间传送地址和相关响应业务,上面引用的美国专利No.6,519,649中详细披露了其优选的实施例,因此这里不再进一步说明。在另一方面,利用在图1中详细示出并且在下面说明的总线式数据互连体系结构在各PU10之间传递数据通信。
如图所示,图1的数据互连包括用于各PU10的每个系列的分段数据通道。因此,例如,通过由第一组数据总线20形成的第一分段数据通道对包括PU10a-10d的PU的第一系列进行互连,并且通过由另一组数据总线20形成的第二分段数据通道对包括PU10e-10h的PU的第二系列进行互连。在一个优选实施例中,各数据总线20在图1中箭头指出的方向上是单向的且具有一致的数据带宽(例如8字节),并且是总线并发式(bus-pumped)接口,该接口具有由各PU10内的时钟管理的公共传输频率。
数据处理系统8的数据互连还包括将每个PU10连接到相邻行中对应的PU10(如果有)的双向总线式接口。例如,在所示出的实施例中,每个PU10通过两个单向数据总线24被连接到相邻行中对应的PU10,所述两个单向数据总线24优选地(但并不是必须)与数据总线20相同。各PU10之间的距离,以及因此数据总线20和24的长度优选地被保持为最小,以便支持高传输频率。
数据处理系统8的数据互连还可以可选地包括一个或多个数据总线22,它们沿各PU10的所述阵列的一个或多个维度形成闭合的循环路径。例如,图1示出了一个实施例,其中数据总线22a将PU10d连接到PU10a,并且数据总线22b将PU10e连接到PU10h,为各PU10的每行形成了相应的闭合循环路径。当然,在其他实施例中,可以在各PU10的所述阵列的其他维度内可替代地或附加地形成(多个)闭合循环路径,例如,通过附加的“垂直”数据总线(未示出)而不是数据总线24将PU10a连接到PU10e。
与数据总线20、24相比,使用数据总线22可以实现更高的通信频率,如果总线长度被最小化的话。因此,最小化数据总线22的长度通常是有利的,例如,以最小化PU10d、10h与PU10a、10e之间距离的柱面布局来物理地布置处理部26。如果对于其他的设计考虑来说,不可能或不希望采用柱面布局,则可以可替代地以比数据总线20、24低的传输频率来实现数据总线22,以便允许更长的总线长度。还应指出,虽然如图1所示,数据总线22优选地具有与数据总线20和24相同的数据带宽(例如,8字节),但是当设计考虑要求时,可以可替代地以不同的(多个)带宽来实现数据总线22。
以所示出的配置,数据可以在大致顺时针方向的回路中传输,或在由一个或多个数据总线20和/或一个或多个数据总线24形成的不同大小的回路的各部分中传输。在源PU10和目的地PU10之间可能有多个路线,并且如果实现了数据总线22,则可能的路线数目会增加。例如,PU10b可以通过在其关联的数据总线20上输出所请求的数据(该数据然后将由PU10c接收)来响应PU10g的数据访问请求(由PU10a经由地址和响应互连18接收)。然后PU10c可以经由其数据总线24将该数据传输给PU10g,或可替代地可以分别经由PU10d和10h及其关联的数据总线24和20将该数据传输给PU10g。如下面进一步的说明,优选地,根据优先级方案和目的地(例如,PU或路线)标识符以及可选地基于PU间的控制通信,沿多个可能路线中的一个选定路线由各PU10来路由数据通信。可以是单向(如图所示)或双向的PU间的控制通信通过控制总线30来传送。重要的是,在一个优选实施例中,各PU10之间的数据通信对于各PU10是不可重试的。
现在参考图2,其中示出了PU10的方块图,该PU10可以被用于实现数据处理系统8内的任一或全部的PU10。在一个优选实施例中,每个PU10被实现为单个集成电路器件。
如图2所示,PU10包括一个或多个用于处理软件指令和数据的处理器核心44。处理器核心44可以配备有高速缓存分层结构46,以便为指令和数据提供低延迟存储。处理器核心44可以被连接到为存储器12提供接口的集成存储器控制器(IMC)40,并且被连接到提供用于与I/O设备、存储设备以及外围设备通信的接口的输入/输出控制器(IOC)42。如虚线所示,处理器核心44、IOC 42和IMC 40(以及可选地其他未示出的电路块)可以一起被看作“本地”电路50,其可以用作数据处理系统8的数据互连上的数据通信的源或目的地。
PU10还包括将PU10接口连接到数据处理系统8的所述互连构架的控制器。这些控制器包括地址和响应接口66,所述接口处理经由地址和响应互连18的通信,以及包括数据控制器52,其提供到数据处理系统8的数据互连的接口。数据控制器52包括“水平”控制器64,其管理输入和输出数据总线20上的通信,以及包括“垂直”控制器60,其管理输入和输出数据总线24上的通信。数据控制器52还包括路由映射68,其为具有每个可能的目的地标识符的数据通信指示可能的路线。
源PU10与目的地PU10之间的路线内的每个数据控制器52基于许多因素来选择数据通信将经过的路线的下一跳,所述因素包括可行路线的长度、选定的优先级方案、是否存在竞争的数据通信,以及可选地其他的因素,诸如可动态地设置的模式位、检测到的总线故障、历史业务模式以及经由控制总线30传递的PU间控制通信。通常,数据控制器52为不存在具有更高优先级的竞争数据通信的数据通信选择最短的可用路径。
尽管用于协调数据通信的所述可选的控制通信可以包括“下游”PU10与“上游”PU10(该“下游”PU10经由数据总线20从所述“上游”PU10接收数据通信)之间的控制通信,但是所述控制通信(如果存在)优选地至少包括配对的PU28间的通信,所述配对的PU28可能会潜在地向同一相邻的(多个)PU10发送竞争数据业务。在图1的典型数据处理系统8内,PU10a和10f是配对的PU,它们可能会潜在地向PU10e和10b发送竞争数据业务,PU10b和10g是配对的PU,它们可能会潜在地向PU10c和10f发送竞争数据业务,并且PU10c和10h是配对的PU,它们可能会潜在地向PU10g和10d发送竞争数据业务。通过协调配对的PU之间的通信,可以最小化相邻PU处数据业务之间的冲突。
现在参考表I,下面给出了根据本发明的由数据控制器52实现的一个典型优先级方案。就特定的PU10而言,如果从数据总线20或22接收或传输,则表I将数据通信标识为H(水平),如果从数据总线24接收或传输,则为V(垂直),以及如果数据通信将所述PU10的本地电路50作为源或目的地,则为L(本地)。
在表I给出的优先级方案中,PU10的数据控制器52给与在数据总线20(以及数据总线22,如果存在)上接收的输入数据通信最高优先级,而不管该数据通信的目的地是否是本地电路50、输出数据总线20(或22)或是输出数据总线24。实际上,从数据总线20(或22)接收的数据通信是不受阻止的。数据控制器52给与在数据总线24上接收的业务次最高优先级(如优先级2所示),而不管目的地是本地电路50还是数据总线20。最后,数据控制器52给与数据总线20和24上源自本地电路50的数据通信更低的优先级。在这种源自本地的、在同一数据总线上竞争传输的业务之间,数据控制器52将更高的优先级给予以水平或垂直相邻的PU作为最终目的地的业务。
表I

可以理解,例如,取决于所述下一个PU之后的路径,可以扩展表I中概括的典型优先级方案以便提供其他优先级别。即,具有垂直源和水平目的地的业务可以被进一步分解成具有水平“下一跳”的业务和具有垂直“下一跳”的业务,每个业务组具有不同的优先级。
现在参考图3,其中给出了一个典型通信情景,其说明了使用配对的PU(例如,配对的PU28)之间的控制通信来协调源PU与目的地PU之间的数据传输。在该典型通信情景中,PU10a是源PU,并且PU10f是目的地PU。
图3首先示出了对由PU10f请求的数据访问(例如,读取)的组合响应(CR)80。CR80(其优选地经由地址和控制互连18被传送到所有的PU10)将PU10a标识为所请求的数据的源。响应于接收到CR80,PU10a的本地电路50将所请求的数据从例如关联的存储器12或高速缓存分层结构46提供给数据控制器52。数据控制器52根据所述优先级方案在其数据总线20上输出包含所请求的数据的数据通信82。即,当垂直控制器60经由数据总线24或水平控制器64经由数据总线22(如果存在)没有接收到以数据总线20为中间目的地的数据业务时,数据控制器52的水平控制器64在数据总线20上输出数据通信82。在8字节数据总线20上传输数据通信82可能需要一个或多个节拍。
图4示出了数据通信82的一个典型实现。在该典型实现中,数据通信82包括指定目的地PU10的目的地标识符(ID)区段100,以及包含所请求数据的数据有效负载区段106。如所示出的,目的地ID区段100可以可选地不仅包括标识所述目的地PU的PU ID 102,还可以包括标识本地电路50内的内部位置以便有助于内部路由的本地ID 104。取决于所希望的实现,数据通信82可以包括其他区段,诸如事务ID区段(未示出),以便帮助所述目的地PU匹配分离事务的地址和数据部分。
回到图3,响应于接收到数据通信82,PU10b的数据控制器52根据所述优先级方案从数据总线20、24中选择数据总线24作为数据通信的优选路线。因此,垂直控制器60将所请求的数据的至少第一数据块(datagranule)84经由数据总线24发送到处理单元10f,并且如果该第一数据块84少于全部的所请求的数据,还向PU10c发出传送请求(TREQ)86。PU10f的垂直控制器60内的进入数据缓冲区62至少临时地缓冲第一数据块84,并且取决于实现,可以一直执行此操作直到接收到全部所请求的数据。
PU10c将传送请求88转发到PU10g(PU10b的配对PU)。PU10g的水平控制器64根据其输出数据总线20上的业务的目的地以及所述优先级方案来评估传送请求88,并且在控制总线30上输出传送确认(TACK)90,或者是批准或者是推迟从PU10b向PU10f传送所请求数据的剩余部分。如果水平控制器64的输出数据总线20没有承载任何冲突数据业务和/或如果水平控制器64可以推迟其他竞争业务(例如,PU10g内的本地电路50的数据业务)的数据的传送,水平控制器64输出批准该传送的传送确认92。在另一方面,如果水平控制器64在其数据总线20上传送目的地为PU10f的本地电路的数据通信(即,更高优先级的竞争数据通信),水平控制器64将提供一个指示推迟的传送确认92。响应于接收到传送确认90,PU10f经由控制总线30向PU10b传送相应的传送确认92。
如果传送确认92指示批准传送所请求数据的剩余部分,PU10b在数据包94内向PU10f传送数据通信82的剩余部分。在另一方面,如果传送确认92指示推迟所请求数据的剩余部分的传送,PU10b推迟所请求数据的剩余部分的传送,直到PU10g传送指示批准传送的另一个传送确认为止(例如,在结束传送更高优先级的竞争数据通信时)。
如前所述,本发明提供了一种用于多处理器数据处理系统的改进的数据互连和数据路由机制。根据本发明,数据处理系统至少包括第一和第二处理单元系列,每个处理单元系列至少具有第一和第二分段数据通道中相应的一个分段数据通道。每个分段数据通道包括一个或多个数据总线,每个数据总线连接相应的处理单元对。所述数据处理系统还包括多个系列间数据总线,每个系列间数据总线将所述第二系列中的所述处理单元中的一个处理单元与所述第一系列中相应的处理单元相连。优选地,所述总线上的通信是单向的,并且可以通过边频带控制通信来协调。
本发明的数据互连和路由机制减小了数据通信延迟,并且支持基于处理器活动级别/业务的动态路由决定。此外,本发明的数据互连和路由机制实现了一种体系结构,所述体系结构支持与不断增加的处理器频率相称的通信频率的提高。
虽然参考优选实施例如所说明的具体地示出了本发明,但是本领域的技术人员将理解,可以在形式和细节上做出各种更改而不偏离本发明的精神和范围。例如,本领域的技术人员将理解,本文中说明的总线宽度只是出于示例目的给出的且不应被解释为是对本发明的限制。还可以理解,可以可替代地实现其他优先级方案,并且不同的PU可以采用不同但仍然一致的优先级方案。
权利要求
1.一种数据处理系统,包括至少包括第一到第三处理单元的多个处理单元;连接到所述多个处理单元的数据存储装置;互连构架,所述互连构架至少包括将所述第一处理单元连接到所述第二处理单元的第一数据总线,以及将所述第三处理单元连接到所述第二处理单元的第二数据总线,其中所述第一和第三处理单元经由所述第一和第二数据总线向所述第二处理单元传输数据业务;以及连接所述第一和第三处理单元的控制通道,其中所述第一处理单元经由所述控制通道从所述第三处理单元请求批准,以便向所述第二处理单元传输数据通信,并且所述第三处理单元在经由所述控制通道传输的响应中批准或推迟所述数据通信的传输。
2.如权利要求1的数据处理系统,其中所述第一和所述第二数据总线中的每个数据总线都是单向的。
3.如权利要求1的数据处理系统,所述互连构架进一步包括连接全部所述第一、第二和第三处理单元的一个或多个地址通道。
4.如权利要求1的数据处理系统,其中所述控制通道包括将所述第一处理单元连接到所述第三处理单元的一个或多个第一控制总线、将所述第三处理单元连接到所述第二处理单元的第二控制总线以及将所述第二处理单元连接到所述第一处理单元的第三控制总线。
5.如权利要求1的数据处理系统,其中所述数据处理系统进一步包括第四处理单元;所述互连构架包括将所述第四处理单元连接到所述第一处理单元的第三数据总线;所述第一处理单元包括控制所述第一处理单元的数据通信的数据控制器,其中所述数据控制器至少基于优先级方案来有选择地将数据业务路由到所述第四处理单元和所述第二处理单元中的一个处理单元。
6.如权利要求1的数据处理系统,其中所述第三处理单元包括控制数据通信的数据控制器,其中所述第三处理单元内的所述数据控制器基于动态的数据业务状况来评估所述第一处理单元的所述请求并提供所述响应。
7.如权利要求1的数据处理系统,所述数据处理系统包括第一系列的M个处理单元,M是大于或等于2的整数;包括至少M-1个数据总线的第一分段数据通道,所述M-1个数据总线中的每个数据总线与所述第一系列中的所述M个处理单元的相应的对相连;第二系列的N个处理单元,N是包括2和M在内的2与M之间的整数;包括至少N-1个数据总线的第二分段数据通道,所述N-1个数据总线中的每个数据总线与所述第二系列中的所述N个处理单元的相应的对相连;以及多个系列间数据总线,其中每个所述系列间数据总线都将所述第二系列中的所述N个处理单元中的一个处理单元与所述第一系列中的所述M个处理单元中的一个相应处理单元相连;其中所述第一系列包括所述第一处理单元,所述第二系列包括所述第二和第三处理单元,所述第一总线是所述多个系列间总线中的一个总线,并且所述第二总线是属于所述第二分段数据通道的所述至少N-1个数据总线中的一个数据总线。
8.一种处理单元,包括处理电路;地址互连接口,所述地址互连接口与所述处理电路相连以便将所述处理电路连接到一个地址互连;以及数据控制器,所述数据控制器与所述处理电路相连以便将所述处理电路连接到一个数据互连,所述数据控制器包括一装置,所述装置用于经由形成所述数据互连的一部分的第一数据总线,将数据通信的一部分传输到第二处理单元;一装置,所述装置用于在所述数据通信的所述部分的所述传输的同时,经由控制通道将传输请求传输到第三处理单元;以及一装置,所述装置用于响应于经由所述控制通道接收到来自所述第三处理单元的传输确认,将所述数据通信的剩余部分传输到所述第二处理单元。
9.如权利要求8的处理单元,其中所述处理单元具有多个包括所述数据总线的输出数据总线,并且其中所述数据控制器进一步包括用于在所述多个输出数据总线间的选定数据总线上路由数据通信的装置。
10.如权利要求9的处理单元,其中所述处理单元具有多个输入数据总线,其中所述数据控制器进一步包括用于根据所述多个输入数据总线中从其上接收所述数据通信的输入数据总线的优先级,在所述数据总线上排序外发数据通信的装置。
11.一种数据处理系统内的数据通信方法,所述数据处理系统至少包括第一到第三处理单元、将所述第一处理单元连接到所述第二处理单元的第一数据总线以及将所述第三处理单元连接到所述第二处理单元的第二数据总线,所述方法包括所述第一处理单元经由所述第一数据总线向所述第二处理单元传输数据通信的一部分;在所述数据通信的所述部分的所述传输的同时,所述第一处理单元经由控制通道向所述第三处理单元传输一个传输请求;以及所述第一处理单元响应于经由所述控制通道接收到来自所述第三处理单元的传输确认,将所述数据通信的剩余部分传输到所述第二处理单元。
12.如权利要求11的方法,其中所述传输数据通信的一部分包括在与连接全部所述第一、第二和第三处理单元的地址互连相分离的数据总线上传输数据通信的所述部分。
13.如权利要求11的方法,其中所述控制通道包括将所述第一处理单元连接到所述第三处理单元的一个或多个第一控制总线、将所述第三处理单元连接到所述第二处理单元的第二控制总线以及将所述第二处理单元连接到所述第一处理单元的第三控制总线,并且其中所述方法包括经由所述第二控制总线和所述第三控制总线,从所述第三处理单元接收所述传输确认。
14.如权利要求11的方法,进一步包括所述第三处理单元响应于动态的数据业务状况来评估所述第一处理单元的所述请求并提供所述传输确认。
全文摘要
本发明提供了一种数据互连和路由机制。在一种实现中,数据处理系统至少包括第一到第三处理单元、连接到所述多个处理单元的数据存储装置以及互连构架。所述互连构架至少包括将所述第一处理单元连接到所述第二处理单元的第一数据总线,以及将所述第三处理单元连接到所述第二处理单元的第二数据总线,从而所述第一和第三处理单元可以向所述第二处理单元传输数据业务。所述数据处理系统进一步包括连接所述第一和第三处理单元的控制通道。所述第一处理单元经由所述控制通道请求来自所述第三处理单元的批准,以便向所述第二处理单元传输数据通信,并且所述第三处理单元在经由所述控制通道传输的响应中批准或推迟所述数据通信的传输。
文档编号G06F15/163GK1637734SQ20051000002
公开日2005年7月13日 申请日期2005年1月4日 优先权日2004年1月7日
发明者R·K·阿里米利, 刘易斯 J·堂, V·E·常, J·B·乔伊纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1