支持多处理器系统中的多个配置的方法和设备的制作方法

文档序号:6657098阅读:340来源:国知局
专利名称:支持多处理器系统中的多个配置的方法和设备的制作方法
技术领域
本发明涉及使用多处理器系统体系结构实现多个处理配置的方法和设备。
背景技术
近年来,因为刀刃(cutting-edge)计算机应用涉及实时多媒体功能,人们对更快速的计算机处理数据吞吐量有永不满足的期望。图形应用是那些应用中的一种,图形应用对处理系统有最高的要求,因为它们需要在相对短时间段内进行非常大量的数据访问,数据计算和数据操作,以实现期望的视觉结果。这些应用需要非常快速的处理速度,例如每秒数千兆位数据。虽然某些处理系统使用单处理器来实现快速处理速度,然而其它处理系统则利用多处理器体系结构来实现。在多处理器系统中,多个子处理器能够并行(或至少一致地)工作,以实现期望的处理结果。
某些多处理系统考虑通过矩阵配置经由接口来进行互连,以提高处理吞吐率和通用性。在美国专利公开说明书2005/0097231和美国专利6,526,491中公开了这样的配置的例子,这里将上述文献的整个公开内容引为参考。虽然在这些文献中公开的技术可能用于各种应用,然而它们不能在其它应用中提供期望的灵活度和/或可编程性。
因此,本领域需要一种新的方法和设备,用于互连一或多个多处理器系统和一或多个外部设备,以实现更高处理能力。

发明内容
根据本发明的一或多个方面,处理元件(PE)(使用多个不同并行处理器)包含宽带接口控制器(BIC),其提供一致性或非一致性的高性能互连,用于连接其它PE,存储器子系统,交换机,桥接器芯片等等。BIC提供2个灵活接口,其具有不同的协议和带宽能力,以满足不同的系统需求。所述接口能够被配置为2个I/O接口(IOIF0/1),或配置为I/O和一致性SMP接口(IOIF&BIF)。当BIC被配置成一致性SMP接口时,BIC为PE提供高性能一致性互连。当BIC被配置成I/O接口时,BIC为PE提供高性能(非一致性)互连。
BIC包含逻辑层,传送层,数据链路层和物理链路层。逻辑层(和在某些实施例中的传送层)可以用于在一致性SMP接口(BIF)和非一致性接口(IOIF)之间改变BIC的操作。逻辑层定义BIF或IOIF的基本操作,包含定序和一致性规则。传送层定义如何在设备之间传送命令和数据分组。命令和数据分组优选地被分成称作物理层组(PLG)的较小单元,以便提供给数据链路层。数据链路层定义保证(基本上)在发送方和接收方之间进行信息的无差错传送的设施。物理层定义I/O驱动器的电气特性和定时,并且描述在物理链路上如何传送数据链路封装。物理链路层优选地支持多达2组逻辑/传送/数据链路层的并行操作,和在这两组之间分配物理层可用带宽的可配置方法。
BIC的逻辑层,传送层,数据链路层和物理层的功能和操作优选地使物理层带宽可以在2个接口之间进行划分,只要(BIF和/或IOIF)的总带宽不超过物理层的最大带宽。例如,物理层可以具有35GB/s的总原始输出带宽和25GB/s的总原始输入带宽。
根据本发明的一或多个其它实施例,BIC的灵活接口允许在一或多个处理器单元所布置到的系统配置中具有显著的灵活性。例如,BIC可以用于实现双I/O接口(IOIF0和IOIF1),以在PE和2个设备之间建立相应的非一致性接口。BIC的物理层输入/输出带宽可以在2个IOIF接口之间划分,只要2个接口的带宽总和不超过物理层的总带宽(例如,30GB/s出,25GB/s入)。
根据可选实施例,通过均在一致性对称多处理器(SMP)接口(或BIF)配置中使用其相应的BIC,2个处理器元件可以被级联起来。每个处理元件的一致性SMP接口(BIF)彼此连接以在其间建立一致性接口。每个处理元件的IOIF可以以非一致性方式针对其它设备发送和接收数据。并且,每个BIC的物理层输入/输出带宽可以在其2个接口之间划分。
根据另一个可选实施例,通过均在一致性SMP接口(BIF)配置中使用其相应的BIC,多于2个的处理器元件可以被级联起来。集中布置的处理器元件可以使用具有2个BIF的BIC。一对终端布置的处理器元件可以构成集中布置的处理器元件,并且每个处理器元件使用具有一个BIF和一个IOIF的BIC。每个处理元件的BIF可以彼此连接以在其间建立一致性接口。终端处理元件的IOIF可以以非一致性方式针对其它设备发送和接收数据。
根据另一个可选实施例,通过均在I/O和一致性SMP接口(IOIF& BIF)配置中使用其相应的BIC,多于2个的处理器元件可以被级联起来。每个处理元件的一致性SMP接口(BIF)可以连接到交换机,交换机有效地彼此连接处理元件,以便在其间建立一致性接口。每个处理元件的IOIF可以以非一致性方式针对系统中的其它设备发送和接收数据。
根据这里结合附图进行的说明,本领域技术人员将明白本发明的其它方面,特性和优点。


为说明本发明的各个方面,在附图中示出了当前优选的形式,然而应当理解,本发明不局限于示出的具体结构和手段。
图1的模块图说明了使用本发明的一或多个实施例的多处理系统的结构;图2的模块图说明了可以被图1的系统使用的其它特性;图3是适用于根据本发明一或多个方面的处理系统的接口控制器的模块图;图4的模块图说明了有关多处理器系统的一或多个方面如何可以被用来实现处理配置的例子;图5的模块图说明了有关多处理器系统的一或多个方面如何可以被用来实现其它处理配置的例子;图6的模块图说明了有关多处理器系统的一或多个方面如何可以被用来实现其它处理配置的例子;图7的模块图说明了有关多处理器系统的一或多个方面如何可以被用来实现其它处理配置的例子;图8的图例说明了图1的系统的示例性子处理单元(SPU)的结构,该子处理单元可以根据本发明的一或多个其它方面来调整;而图9的图例说明了图1的系统的示例性子处理单元(PU)或Power处理单元(power processing unit)(PPU)的结构,该子处理单元或Power处理单元可以根据本发明的一或多个其它方面来调整。
具体实施例方式
现在提供对多处理器系统的优选计算机体系结构的说明,该多处理器系统适于实现这里讨论的一或多个特性。根据一或多个实施例,多处理器系统可以被实现成用于富媒体(media-rich)应用(例如游戏系统,家庭终端,PC系统,服务器系统和工作站)的独立和/或分布式处理的单芯片解决方案。在某些应用(例如游戏系统和家庭终端)中,实时计算机可能是必要的。例如在实时分布式游戏应用中,必须足够快速地执行网络图像解压缩,3D计算机图形,音频生成,网络通信,物理模拟和人工智能中的一或多个,以为用户提供实时体验的假象。因而,多处理器系统中的每个处理器必须在短和可预测的时间内完成任务。
因此,根据这个计算机体系结构,多处理计算机系统的所有处理器由公共计算模块(或单元)构造而成。这种公共计算模块具有一致的结构,并且优选地使用相同的指令集体系结构。多处理计算机系统能够由一或多个客户机,服务器,PC,移动计算机,游戏机,PDA,机顶盒,电器,数字电视和使用计算机处理器的其它设备组成。
必要时,多个计算机系统也可以是网络的成员。一致的模块结构允许多处理计算机系统对应用程序和数据进行高效高速处理,并且如果使用网络,允许通过网络快速传送应用程序和数据。这种结构也简化了各个规模和处理能力的网络的成员的建立,以及供这些成员处理的应用程序的准备。
参考图1和2,基本处理模块是处理器元件(PE)500。PE 500包括I/O接口502,处理单元(PU)504,和多个子处理单元508,即子处理单元508A,子处理单元508B,子处理单元508C和子处理单元508D。本地(或内部)PE总线512在PU 504,子处理单元508和存储器接口511间传送数据和应用程序。本地PE总线512能够具有例如常规体系结构,或能够被实现成分组交换网。如果实现成分组交换网络,当需要更多硬件时,增加可用带宽。
能够使用实现数字逻辑的方法来构造PE 500。然而,PE 500优选地被构造成在硅质基底上使用互补金属氧化物半导体(CMOS)的单个集成电路。衬底的可选材料包含使用各种掺杂剂的砷化镓,砷化镓铝和其它所谓的III-B化合物。也可以使用超导材料,例如快速单磁通量子(RSFQ)逻辑来实现PE 500。
PE 500通过高带宽存储器连接516与共享(主)存储器514紧密相关。虽然存储器514优选地是动态随机存取存储器(DRAM),然而能够使用其它手段将存储器514实现为例如静态随机存取存储器(SRAM),磁性随机访问存储器(MRAM),光学存储器,全息存储器等等。
PU 504和子处理单元508优选地均连接到存储器流控制器(MFC),存储器流控制器包含直接存储器访问DMA功能,并且与存储器接口511结合来帮助实现DRAM 514,子处理单元508和PE 500的PU 504之间的数据传送。应当注意,DMAC和/或存储器接口511可以相对子处理单元508和PU 504整体或分别地布置。实际上,DMAC功能和/或存储器接口511功能可以与子处理单元508和PU 504中的一或多个(优选地为全部)整体布置。还应当注意,DRAM 514可以相对PE 500整体或分别地布置。例如,如图中示出的所示意的那样,DRAM 514可以被布置在芯片外,或者DRAM 514可以以集成方式被布置在芯片内。
PU 504能够是例如标准处理器,其能够独立处理数据和应用程序。在操作中,PU 504优选地调度和协调子处理单元对数据和应用程序的处理。子处理单元优选地是单指令多数据(SIMD)处理器。在PU 504的控制下,子处理单元以并行和独立的方式执行对这些数据和应用程序的处理。优选地使用PowerPC核心实现PU 504,PowerPC核心是使用精减指令集计算(RISC)技术的微处理器体系结构。RISC使用简单指令的组合来执行更加复杂的指令。因而,处理器的定时可以基于更简单和快速的操作,从而允许微处理器以指定时钟速度执行更多指令。
应当注意,可以通过承担主处理单元角色的子处理单元508中的一个实现PU 504,主处理单元调度和协调子处理单元508对数据和应用程序的处理。此外,在处理器元件500内可以实现不止一个PU。
根据这种模块化结构,具体计算机系统使用的PE 500的数量取决于系统所需的处理能力。例如,服务器可能使用4个PE 500,工作站可能使用2个PE 500,PDA可能使用一个PE 500。分配来处理具体软件单元的PE 500的子处理单元的数量取决于该单元内程序和数据的复杂度和量。
模块互连总线(MIB)512是一致性总线,其可以被组织成若干个(半速率)环,这些环都支持多个同时数据传送。
MIC 511用于帮助实现PE和多个存储体之间的通信,所述存储体实现共享存储器514。MIC 511优选地相对处理器和I/O接口异步工作。
BIC 513是MIB 512的逻辑扩展,并且在MIB 512和I/O接口502之间提供异步接口。BIC 513提供一致性或非一致性高性能互连,用于连接其它PE,存储器子系统,交换机,桥接器芯片等等。BIC513提供2个灵活接口,其具有不同的协议和带宽能力,以满足不同的系统需求。所述接口能够被配置为2个I/O接口(IOIF 0/1),或配置为I/O和一致性SMP接口(IOIF&BIF)。灵活接口以7个发送字节和5个接收字节进行操作。当BIC 513513被配置成一致性SMP接口时,BIC 513为PE提供高性能一致性互连。当BIC 513被配置成I/O接口时,BIC 513为PE提供高性能(非一致性)互连。BIC 513(充当BIF或IOIF)也可以被用于需要高速接口的其它应用程序。
BIC 513利于在PE和其它PE,存储器子系统,交换机,桥接器芯片等等之间执行事务。BIF和IOIF事务通常是由PE或连接到PE的外部设备内的本地高速缓存层次结构不能提供服务的数据事务所导致的存储器访问请求(数据请求)。存储器访问请求可能需要一或多个事务。事务能够由主设备或高速缓存一致性控制器(探听者)发起,并且能够导致主设备和从设备之间的系列分组传送。BIF和IOIF事务被分成3个阶段命令(例如载入和存储),探听和数据(虽然不是全部事务都需要数据阶段)。
BIC 513的BIF和IOIF特性用于可伸缩地和灵活地支持许多不同系统配置和将来的符合要求的处理器。BIC 513的特性包含(i)支持高速缓存一致性和数据同步(当充当BIF时)的分组协议;(ii)具有用于定序和一致性(当充当IOIF时)的标志的分组协议;(iii)完全流水线化的命令事务,数据事务和响应/应答事务;(iv)分割事务;和(v)基于信用的命令和数据支持。
现在参考图3,图3是有关BIC 513的一或多个方面的模块图,BIC 513包含逻辑层(包含至少两个部分0,1),传送层(也包含至少两个部分0,1),数据链路层(也包含至少两个部分0,1)和物理链路层。逻辑层(和在某些实施例中的传送层)可以用于在一致性SMP接口(BIF)和非一致性接口(IOIF)之间改变BIC 513的操作。
逻辑层定义BIF或IOIF的基本操作,包含定序和一致性规则。因而,连接到使用BIF或IOIF的PE的设备应当完全符合逻辑层规范。然而在某些应用中,能够实现逻辑层规范的子集并且仍然能够通过BIC 513与PE进行操作。逻辑层中的信息包括基本命令(地址),数据和响应分组。当逻辑层被配置用于一致性SMP接口时,则允许探听响应分组。当逻辑层被配置用于非一致性接口时,则只允许响应分组。
传送层定义如何在设备之间传送命令和数据分组。命令和数据分组优选地被分成称作物理层组(PLG)的较小单元,以便提供给数据链路层。传送层中还包含有关用于调整PLG传送的速度的流控机制的定义。传送层优选地能够被定制以适合系统或应用的需要。
数据链路层定义保证(基本上)在发送方和接收方之间进行信息的无差错传送的设施。这个层中也包含用于物理链路的初始化或训练序列。数据链路层也优选地能够被定制以适合系统或应用的需要。
物理层定义I/O驱动器的电气特性和定时,并且描述在物理链路上如何传送数据链路封装。物理链路层优选地支持多达2组逻辑/传送/数据链路层的并行操作,和在这两组之间分配物理层可用带宽的可配置方法。物理层也可以定义印制电路板(PCB)路由和封装指南。物理层的目标之一是隐藏I/O驱动器的物理特性(例如速度,是单向还是双向,I/O的数量),以及向数据链路层提供一致接口。输入/输出功能可以使用Rambus RRAC I/O来实现,其允许提供根本带宽支持。对于提高灵活性,RRAC发送器和接收器异步地对处理器和存储器操作,并且2个接口之间的可用带宽是可配置的。
在提供BIC 513的逻辑层,传送层,数据链路层和物理层的上述功能和操作的情况下,可以支持PE的相对较高的带宽需求以及不同系统配置。例如,物理层可以以每对5GB/s的速度运行,并且具有35GB/s的总原始输出带宽和25GB/s的原始输入带宽。物理层带宽可以在2个接口之间分割,所述接口的最大带宽能够是30GB/s出和25GB/s入。每个接口的带宽可以以5GB/s的增量来配置。优选地,2个接口的总和不能超过物理层的总带宽。
现在提供BIC 513接口的进一步细节。BIC 513是PE,存储器子系统,交换机,桥接器芯片等等之间的点到点总线,并且是MIB 512的逻辑扩展。BIC 513支持许多设备与桥接器芯片或交换机的连接。单个物理设备用于执行多个设备类型的任务。这些设备类型包含主设备,探听设备,从设备,存储器,总线适配器和I/O桥接器。主设备可以是例如对命令总线进行仲裁和驱动的总线设备。探听设备可以是例如观察命令总线上的活动以保持某些缓存数据与其它系统高速缓存的一致性的总线设备。总线适配器或I/O桥接器可以包含高速缓存,并且如果包含高速缓存,则起类似于探听设备的作用,例如保持缓存数据和其它系统高速缓存之间的一致性。从设备可以是例如响应存储器读或写命令的总线设备。从设备能够包含存储器或I/O寄存器,也能够包含存储器和I/O寄存器。存储器设备是从设备的例子。从设备可以是例如响应存储器读或写并且处理对一致性操作的肯定确认的总线设备。如果存储器的某部分连接到远程总线,则总线适配器执行对该远程存储器空间进行存储器访问的存储器职责。总线适配器可以是例如到另一总线的网关,其可以具有相同或不同的总线体系结构,并且优选地使用再运行协议以传送一致性操作到远程总线。I/O桥接器可以是例如到I/O总线的网关,其不能缓存独占或修改状态的数据。桥接器不能提供与I/O总线的一致性;然而它优选地包含针对I/O设备以共享状态缓存的数据的I/O目录,因此不使用再运行协议向I/O总线传送一致性操作。桥接器可以支持编程I/O(PIO)或存储器映射I/O设备。
BIC 513体系结构优选地基于单独命令,数据和(探听)响应分组。这些分组优选地独立运行,从而允许分割事务,其中在命令分组和数据分组之间不存在定时关系,除了命令分组优选地在数据分组前面之外。请求和应答被加上标记以允许非顺序的应答,这对于到另一总线的I/O或在非统一存储器访问(NUMA)环境中是常见的。
在一致性SMF配置中,命令分组包含描述BIF上要执行的事务的地址和控制信息。地址集中器(address concentrator)接收命令分组,确定处理命令的顺序,并且选择命令。选择的命令分组被主设备以反射命令的格式发送到BIF上的从设备。在接收反射命令分组之后,从设备以探听响应分组的形式向主设备发送应答。探听响应分组表示反射命令分组的接受或拒绝。在某些情况下,从设备可能不是事务的最终目的地。对于这些情况,从设备负责传递请求到最终目的地,并且不产生探听响应分组。通常,命令分组是对数据事务的请求。对于例如一致性管理和同步的请求,命令分组是完整事务。当请求用于数据事务时,在主设备和从设备之间传送包含控制信息和请求的数据的数据分组。根据传送层定义,可以由BIF上的两个设备同时发送和接收命令和数据分组。
在非一致性配置中,命令分组优选地包含描述IOIF上要执行的事务的地址和控制信息。主设备以IOIF命令的形式向IOIF上的从设备发送命令分组。在接收命令分组之后,从设备以IOIF响应分组的形式向主设备发送应答。响应分组表示IOIF命令分组的接受或拒绝。在某些情况下,从设备可能不是事务的最终目的地。对于这些情况,从设备负责传递请求到最终目的地。通常,IOIF命令分组是对数据事务的请求。对于例如中断和中断重发操作的请求,命令分组是完整事务。当请求用于数据事务时,在主设备和从设备之间传送包含控制信息和请求的数据的数据分组。根据传送层定义,可以由IOIF上的两个设备同时发送和接收命令和数据分组。
BIC 513提供MIB和I/O接口之间的异步接口,因此包含速度匹配SRAM缓冲区和逻辑,以及3个时钟域。处理器侧以半速率操作,I/O侧以RRAC的速率的三分之一操作,较小分布网络以RRAC的速率的一半操作。由于发送器和接收器的高速度,RRAC和BIC 513需要校准。对于BIC 513校准,弹性缓冲区被用于消除构成接口的字节之间的偏移。
如上所述,BIC 513提供2个灵活接口(i)双I/O接口(IOIF0/1);和(ii)I/O和一致性SMP接口(IOIF&BIF)。这允许在一或多个处理器元件被布置到的系统配置中有显著的灵活性。
例如,如图4所示,BIC 513可以用于实现双I/O接口(IOIF0和IOIF1),以在PE 500和2个设备(设备0和设备1)之间建立相应的非一致性接口。在这个配置中,单个PE 500可以通过IOIF0和IOIF1的每个发送和接收数据。
如上所述,BIC 513的物理层输入/输出带宽可以在2个接口之间划分(BIF-BIF,IOIF-IOIF,和/或BIF-IOIF),只要2个接口的带宽总和不超过物理层的总带宽(例如,30GB/s出,25GB/s入)。假定设备0是高吞吐率设备,例如图形引擎,并且设备1是低吞吐率设备,例如I/O桥接器,则可以以有利于实现适当配置的方式来分割BIC513的带宽。例如,到图形引擎(设备0)的IOIF 0非一致性接口可以是30GB/s出和20GB/s入,而到I/O桥接器(设备1)的IOIF 1非一致性接口可以是2.5GB/s出和2.5GB/s入(假定2.5GB/s增量可用)。
如图5所示,通过均在一致性SMP接口(BIF)配置中使用其相应的BIC 513,2个处理器元件500可以被级联起来。每个处理元件500的一致性SMP接口(BIF)彼此连接以在其间建立一致性接口。每个处理元件500的IOIF可以以非一致性方式针对其它设备发送和接收数据。
并且,BIC 513的物理层输入/输出带宽可以在该2个接口之间划分。假定设备0和设备1是相对较低吞吐率设备,例如I/O桥接器,则可以以有利于实现适当配置的方式来分割相应BIC 513的带宽。例如,到设备0的IOIF 0非一致性接口可以是5GB/s出和5GB/s入,到设备1的IOIF 1非一致性接口可以是5GB/s出和5GB/s入,并且处理元件500之间的一致性BIF接口可以是20GB/s入和20GB/s出。
如图6所示,通过均在一致性SMP接口(BIF)配置中使用其相应的BIC 513,多于2个的处理器元件500可以被级联起来。中央处理器单元500使用具有2个BIF的BIC 513。每个处理元件500的BIF彼此连接以在其间建立一致性接口。终端处理元件500的IOIF可以以非一致性方式针对其它设备发送和接收数据。
如图7所示,通过均在I/O和一致性SMP接口(IOIF & BIF)配置中使用其相应的BIC 513,多于2个的处理器元件500可以被级联起来。每个处理元件500的一致性SMP接口(BIF)可以连接到交换机,交换机有效地彼此连接处理元件500,以便在其间建立一致性接口。每个处理元件500的IOIF可以以非一致性方式针对系统中的其它设备发送和接收数据。
SPU经由一致性转换和保护DMA与PPU共享系统存储器,但是在通过专用于每个SPU的256K本地存储(LS)支持的私有实地址空间中存储数据和指令。SPU提供处理器元件的大部分计算性能。8个处理器中的每个包含128位宽的双提交SIMD数据流,该数据流针对所有操作(除了双精度浮点之外)完全流水线化。由128位寄存器堆通过统一的128条目来提供操作数。每个SPU具有256kB单端口LS,其支持对MIB的完全带宽并行读写DMA访问,以及16字节SPU载入和存储,和指令(预)获取。SPU通过向相关MFC提交具有有效地址(EA)的DMA命令来访问主存储器。MFC对EA应用标准Power体系结构(Power Architecture)地址转换,并且接着在本地存储和主存储器之间异步传送数据。这允许重叠通信和计算,并且利于实时操作。SPU经由DMA,大寄存器堆和标准按顺序(in-order)执行语义对共享存储器的访问提供了通用流式编程环境。每个SPU能够被动态配置成在其资源只能被验证的程序访问的模式中操作。
图8进一步说明了示例性子处理单元(SPU)508的细节。SPU508体系结构优选地填补了通用处理器(设计用于实现宽范围应用的高平均性能)和专用处理器(设计用于实现单个应用的高性能)之间的空白。SPU 508被设计成实现游戏应用程序,媒体应用,宽带系统等等的高性能,以及为实时应用的程序员提供高度控制。SPU 508的某些能力包含图形几何流水线,表面细分,快速富立叶变换,图像处理关键字,流处理,MPEG编码器/解码,加密,解密,设备驱动程序扩展,模拟,游戏物理学,内容创建和音频合成与处理。
子处理单元508包含2个基本功能单元,即SPU核心510A和存储器流控制器(MFC)510B。SPU核心510A执行程序执行,数据操作等等,而MFC 510B执行涉及SPU核心510A和系统的DRAM514之间的数据传送的功能。
SPU核心510A包含本地存储器550,指令单元(IU)552,寄存器554,一或多个浮点执行级段556和一或多个定点执行级段558。优选地使用单端口随机访问存储器,例如SRAM来实现本地存储器550。虽然多数处理器通过使用高速缓存来减少到存储器的时延,然而SPU核心510A实现相对较小的本地存储器550而不是高速缓存。实际上,为了向实时应用(和这里提及的其它应用)的程序员提供一致和可预测的存储器访问等待时间,SPU 508A内的高速缓冲存储器体系结构不是优选的。高速缓冲存储器的高速缓存命中/命中失误特性导致易失存储器访问时间从几周期到几百周期。这样的不稳定性(volatility)削弱了在例如实时应用编程中期望的访问定时可预测性。通过将DMA传送与数据计算重叠,可以在本地存储器SRAM 550中实现时延隐藏。这为实时应用的编程提供了高度控制。由于与DMA传送相关的时延和指令开销超过处理高速缓存命中失误的时延的开销,当DMA传送尺寸足够大并且足够可预测(例如DMA命令能够在需要数据之前提交)时,SRAM本地存储器方案具有优点。
子处理单元508中的指定子处理单元508上运行的程序使用本地地址访问相关本地存储器550,然而本地存储器550的每个位置也被分配总系统存储器映射内的实地址(RA)。这允许特权软件将本地存储器550映射到进程的有效地址(EA),以利于一个本地存储器550和另一本地存储器550之间的DMA传送。PU 504也可以使用有效地址直接访问本地存储器550。在一个最优实施例中,本地存储器550包含556千字节的存储,并且寄存器552的容量是128×128位。
优选地使用处理流水线实现SPU核心504A,其中以流水线方式处理逻辑指令。虽然流水线可以被分成任何数量的处理指令的级段,然而流水线通常包括获取一或多个指令,解码指令,检查指令间的依赖,提交指令和执行指令。在这点上,IU 552包含指令缓冲区,指令解码电路,依赖检查电路和指令提交电路。
指令缓冲区优选地包含多个寄存器,这些寄存器连接到本地存储器550并且用于临时存储获取的指令。指令缓冲区优选地进行操作以使得所有指令成组地(即基本同时地)离开寄存器。虽然指令缓冲区可以具有任何尺寸,然而优选的是具有不大于大约2个或3个寄存器的尺寸。
通常,解码电路分解指令和产生用于执行相应指令的功能的逻辑微操作。例如,逻辑微操作可以指定算术和逻辑操作,载入和存储操作到本地存储器550,寄存源操作数和/或立即数据操作数。解码电路也可以指示指令使用哪些资源,例如目标寄存器地址,结构资源,功能单元和/或总线。解码电路也可以提供指示需要资源的指令流水线级段的信息。指令解码电路优选地用于基本同时地解码数量与指令缓冲区的寄存器数量相等的指令。
依赖检查电路包含执行测试以确定指定指令的操作数是否依赖流水线中其它指令的操作数的数字逻辑。如果是,则指定指令不应被执行,直到这样的其它操作数被更新(例如,通过允许其它指令完成执行)。优选地,依赖检查电路同时确定从解码电路112分派的多个指令的依赖。
指令提交电路用于向浮点执行级段556和/或定点执行级段558提交指令。
寄存器554优选地被实现成相对较大的统一寄存器堆,例如128条目寄存器堆。这允许不需要寄存器重命名来避免寄存器饿死(register starvation)的深流水线化高频实现。重命名硬件通常消耗处理系统中的较大部分面积和功率。因此,当通过软件循环展开或其它交错技术覆盖时延时,可以实现有利的操作。
优选地,SPU核心510A具有超标量体系结构,使得每时钟周期提交不止一个指令。SPU核心510A优选地在对应于从指令缓冲区分派的同时指令的数量,例如在2和3之间的数量(意味着每个时钟周期提交2个或3个指令)的程度上作为超标量工作。根据需要的处理能力,可以使用更大或更少数量的浮点执行级段556和定点执行级段558。在一个最优实施例中,浮点执行级段556以320亿浮点操作每秒(32GFLOPS)的速度操作,定点执行级段558以320亿操作每秒(32GOPS)的速度操作。
MFC 510B优选地包含总线接口单元(BIU)564,存储器管理单元(MMU)562和直接存储器存取控制器(DMAC)560。除了DMAC 560之外,与SPU核心510A和总线512相比,MFC 510B优选地以一半频率(一半速度)运行以满足低功率消耗设计目的。MFC 510B用于处理从总线512进入SPU 508的数据和指令,提供针对DMAC的地址转换,以及用于数据一致性的探听操作。BIU 564在总线512和MMU 562与DMAC 560之间提供接口。因而,SPU 508(包含SPU核心510A和MFC 510B)和DMAC 560被物理和/或逻辑地连接到总线512。
MMU 562优选地用于将有效地址(得自DMA命令)转换成用于存储器访问的实地址。例如,MMU 562可以将有效地址的高阶位转换成实地址位。然而,低阶地址位优选地是不可转换的,并且被认为是逻辑和物理的,以用于形成实地址和请求访问存储器。在一或多个实施例中,可以基于64位存储器管理模型实现MMU 562,并且MMU 562可以提供具有4K字节,64K字节,1M字节和16M字节页面尺寸和256MB段尺寸的264字节有效地址空间。优选地,MMU 562用于支持多达265字节的虚拟存储器,和242字节(4兆兆字节)物理存储器以用于DMA命令。MMU 562的硬件可以包含8条目完全关联SLB,256条目4路组关联TLB和用于TLB的4×4替换管理表(RMT)-用于硬件TLB命中失误处理。
DMAC 560优选地用于管理来自SPU核心510A和一或多个其它设备(例如PU 504和/或其它SPU)的DMA命令。可以有3个类别的DMA命令放置命令,用于从本地存储器550向共享存储器514移动数据;获取命令,用于从共享存储器514向本地存储器550移动数据;和存储控制命令,包含SLI命令和同步命令。同步命令可以包含原子命令,发送信号命令和专用屏蔽(barrier)命令。响应于DMA命令,MMU 562将有效地址转换成实地址,并且实地址被传递到BIU564。
SPU核心510A优选地使用通道接口和数据接口与DMAC 560内的接口通信(发送DMA命令,状态等等)。SPU核心510A通过通道接口向DMAC 560中的DMA队列分派DMA命令。一旦DMA命令处于DMA队列中,由DMAC 560内的提交和完成逻辑处理它。当完成DMA命令的所有总线事务时,通过通道接口将完成信号回送到SPU核心510A。
处理器元件包含64位处理单元504(或Power处理单元(PPU)),其属于Power体系结构处理器的系列。它被实现成具有Power体系结构的整数,浮点,VMX和MMU单元的双线程核心。处理器包含32kB指令和数据高速缓存,512kB L2高速缓存和片上总线接口逻辑。处理器是核心的新的基础实现(ground up implementation),具有扩展的流水线以实现低FO4以匹配SPU。该核心是具有中等流水线长度的增强按顺序设计(enhanced in-order design),以提供具有技术发展水平的性能能力。已经通过用于高速缓存的资源管理表和转换表对PPU进行扩展,以支持实时操作。通过存储器映射I/O控制寄存器,PPU也可以代表SPU发起DMA请求,并且支持与SPU邮箱的通信。它也实现Power体系结构管理程序扩展,以允许多个并行操作系统通过线程管理支持在其上同时运行。
图9说明了PU 504的示例性结构和功能。PU 504包含2个基本功能单元,即PU核心504A和存储器流控制器(MFC)504B。PU核心504A执行程序执行,数据操作,多处理器管理功能等等,而MFC504B执行涉及PU核心504A和系统的存储器空间之间的数据传送的功能。
PU核心504A包含L1高速缓存570,指令单元572,寄存器574,一或多个浮点执行级段576和一或多个定点执行级段578。L1高速缓存对通过MFC 504B从共享存储器106,处理器102或存储器空间的其它部分接收的数据提供数据高速缓存功能。当PU核心504A优选地被实现成超级流水线时,指令单元572优选地被实现成具有许多级段(包含获取,解码,依赖检查,提交等等)的指令流水线。PU核心504A也优选地具有超标量配置,从而每时钟周期从指令单元572提交不止一个指令。为实现高处理能力,浮点执行级段576和定点执行级段578在流水线配置中包含多个级段。根据需要的处理能力,可以使用更大或更少数量的浮点执行级段576和定点执行级段578。
MFC 504B包含总线接口单元(BIU)580,L2高速缓冲存储器,非可高速缓存单元(NCU)584,核心接口单元(CIU)586,和存储器管理单元(MMU)588。与PU核心504A和总线108相比,MFC 504B的大部分以一半频率(一半速度)运行以满足低功率消耗设计目的。
BIU 580提供总线108与L2高速缓存582和NCU 584逻辑块之间的接口。因此,BIU 580可以充当总线108上的主设备以及从设备,以便执行完全一致性存储器操作。作为主设备,它可以发出载入/存储请求到总线108,以代表L2高速缓存582和NCU 584提供服务。BIU 580也可以实现用于命令的流控机制,其限制能够被发送到总线108的命令的总数。总线108上的数据操作可以被设计成采用8个节拍(beat),因此优选地基于128字节高速缓存线来设计BIU 580,并且一致性和同步粒度为128KB。
L2高速缓冲存储器582(和支持硬件逻辑)优选地被设计成高速缓存512KB的数据。例如,L2高速缓存582可以处理可高速缓存的载入/存储,数据预取,指令获取,指令预取,高速缓存操作和屏蔽操作。L2高速缓存582优选地是8路组关联系统。L2高速缓存582可以包含与六个(6)分派队列(castout queues)(例如6个RC机器)匹配的6个重新载入队列,和8个(64字节宽)存储队列。L2高速缓存582可以提供L1高速缓存570中某些或所有数据的备份复本。有利的是,这可用于当处理节点被热切换时进行状态恢复。这个配置也允许L1高速缓存570以较少的端口更多快速地操作,并且允许进行更快速的高速缓存到高速缓存传送(因为请求可以在L2高速缓存582处停止)。这个配置也提供传递高速缓存一致性管理到L2高速缓冲存储器582的机制。
NCU 584与CIU 586,L2高速缓冲存储器582和BIU 580接口,并且通常充当PU核心504A和存储器系统之间的不可高速缓存的操作的排队/缓冲电路。NCU 584优选地处理L2高速缓存582未处理的与PU核心504A的所有通信,例如禁止高速缓存的载入/存储,屏蔽操作和高速缓存一致性操作。NCU 584优选地以一半速度运行,以满足上述功耗目的。
CIU 586被布置在MFC 504B和PU核心504A的边界上,并且充当来自执行级段576,578,指令单元572和MMU单元588并且到达L2高速缓存582和NCU 584的请求的路由,仲裁和流控点。PU核心504A和MMU 588优选地以全速度运行,而L2高速缓存582和NCU 584适用于2∶1的速度比值。因而,在CIU 586中存在频率边界,并且其功能之一是当它在2个频域之间传递请求和重新载入数据时正确地处理频率交叉。
CIU 586由3个功能模块构成载入单元,存储单元和重新载入单元。另外,数据预取功能由CIU 586执行,并且优选地是载入单元的功能部分。CIU 586优选地用于(i)接受来自PU核心504A和MMU 588的载入和存储请求;(ii)将来自全速度时钟频率的请求转换到半速度(2∶1时钟频率转换);(iii)路由可高速缓存请求到L2高速缓存582,以及路由非可高速缓存请求到NCU 584;(iv)在针对L2高速缓存582和NCU 584的请求之间进行公平仲裁;(v)为针对L2高速缓存582和NCU 584的分派提供流控,使得在目标窗口中接收请求并且避免溢出;(vi)接受载入返回数据并且将其路由到执行级段576,578,指令单元572或MMU 588;(vii)传送探听请求到执行级段576,578,指令单元572或MMU 588;和(viii)将载入返回数据和探听业务从半速度转换到全速度。
MMU 588优选地例如通过第二级地址转换设施为PU核心540A提供地址转换。优选地通过可以比MMU 588更小和更快速的单独指令和数据ERAT(有效到实地址转换)阵列在PU核心504A中提供第一级转换。
在一个最优实施例中,PU 504通过64位实现以4-6GHz,10F04操作。寄存器优选地为64位长(虽然一或多个专用寄存器可以更小),并且有效地址为64位长。优选地使用PowerPC技术实现指令单元570,寄存器572和执行级段574和576,以实现(RISC)计算技术。
在美国专利6,526,491中可以找到有关这个计算机系统的模块结构的其它细节,这里参考引用了该文献的全部公开内容。
根据本发明的至少一个其它方面,可以利用例如图例中说明的适当硬件来实现上述方法和设备。可以利用任何已知的技术(例如标准数字电路),任何用于执行软件和/或固件程序的已知处理器,一或多个可编程数字设备或系统(例如可编程只读存储器(PROM),可编程阵列逻辑器件(PAL)等等)来实现这样的硬件。此外,虽然附图中说明的设备被示出为分成某些功能模块,然而这样的模块可以通过单独的电路来实现,和/或合并成一或多个功能单元。此外,可以通过软件和/或固件程序实现本发明的各个方面,这些程序可以被存储在适当存储介质或媒体(例如软盘,存储器芯片等等)上,以便传送和/或发布。
虽然这里参考具体实施例描述了本发明,然而应当理解,这些实施例仅仅是本发明原理和应用的示例。因此应当理解,可以对图解实施例进行许多修改,并且在不偏离如所附权利要求书定义的本发明的实质和范围的前提下可以设计其它结构。
权利要求
1.一种多处理器,包括在操作中通过一或多个通信总线彼此连接的多个处理器;和可配置接口电路,适于在以下模式中工作(i)提供一致性对称接口的第一模式,该一致性对称接口能够互连多处理器和一或多个外部设备,并且在多处理器的一或多个存储器和一或多个外部设备的一或多个存储器之间保持高速缓存一致性;或(ii)提供非一致性接口的第二模式,该非一致性接口能够互连多处理器和一或多个外部设备,并且对多处理器的一或多个存储器提供至少某些存储器保护。
2.如权利要求1所述的多处理器,其中该可配置接口电路包含逻辑层,传送层和物理层。
3.如权利要求2所述的多处理器,其中逻辑层用于定义在第一模式工作的一致性规则,和在第二模式工作的定序规则;传送层用于定义在多处理器和一或多个外部设备之间传送的命令和数据分组配置;并且物理层用于定义存储器访问命令,存储器探听请求和多处理器与一或多个外部设备之间的数据传送的电气特性和定时。
4.如权利要求1所述的多处理器,其中可配置接口电路用于帮助实现存储器访问命令,存储器探听请求和多处理器与一或多个外部设备之间的数据传送。
5.如权利要求4所述的多处理器,其中存储器访问命令,存储器探听请求和数据传送具有异步独立分组的形式。
6.如权利要求5所述的多处理器,其中分组包含定义期望事务的地址信息和控制信息。
7.如权利要求1所述的多处理器,其中可配置接口电路包含第一和第二接口,每个接口适于在第一和第二模式中独立工作。
8.一种系统,包括一或多个多处理器,每个多处理器包含在操作中通过一或多个通信总线彼此连接的多个处理器;和可配置接口电路,适于在以下模式中工作(i)提供一致性对称接口的第一模式,或(ii)提供非一致性接口的第二模式,可配置接口电路能够互连多处理器和一或多个外部设备,其中每个多处理器的可配置接口电路包含第一和第二接口,每个接口适于在第一和第二模式中独立工作。
9.如权利要求8所述的系统,还包括第一外部设备,通过其第一接口连接到所述多处理器中的一个多处理器,并且工作于第二模式;和第二外部设备,通过其第二接口连接到所述多处理器中的所述一个多处理器,并且工作于第二模式。
10.如权利要求8所述的系统,还包括所述多处理器中的至少两个多处理器,经由其第一接口互连,并且工作于第一模式;第一外部设备,通过其第二接口连接到所述至少两个多处理器中的一个多处理器,并且工作于第二模式;和第二外部设备,通过其第二接口连接到所述多处理器中的另一个多处理器,并且工作于第二模式。
11.如权利要求8所述的系统,还包括所述多处理器中的第一和第二多处理器,经由其第一接口互连,并且工作于第一模式;和所述多处理器中的所述第一和第三多处理器,经由其第二和第一接口互连,并且分别工作于第一模式;其中所述第二和第三多处理器的第二接口在操作中用于和一个或多个外部设备互连。
12.如权利要求11所述的系统,还包括第一外部设备,通过其第二接口连接到所述第二和第三多处理器中的一个多处理器,并且工作于第二模式;和第二外部设备,通过其第二接口连接到所述第二和第三多处理器中的另一个多处理器,并且工作于第二模式。
13.如权利要求8所述的系统,还包括多端口数据交换机;和多个多处理器,经由其第一接口连接到交换机,并且工作于第一模式,其中所述多处理器的第二接口在操作中用于和一个或多个外部设备互连。
14.如权利要求13所述的系统,还包括至少一个外部设备,通过其第二接口连接到所述多处理器中的一个多处理器,并且工作于第二模式。
15.一种方法,包括提供在操作中通过一或多个通信总线彼此连接的多个处理器;和配置接口电路以使其在以下模式中工作(i)提供一致性对称接口的第一模式;或(ii)提供非一致性接口的第二模式,其中该一致性对称接口能够互连多处理器和一或多个外部设备,以保持多处理器的一或多个存储器和一或多个外部设备的一或多个存储器之间的高速缓存一致性,并且该非一致性接口能够互连多处理器和一或多个外部设备,以对多处理器的一或多个存储器提供至少某些存储器保护。
16.如权利要求15所述的方法,还包括将至少一个外部设备连接到该接口。
17.如权利要求16所述的方法,还包括为存储器访问命令,存储器探听请求和/或多处理器与一或多个外部设备之间的数据传送提供服务。
全文摘要
提供一种通过一或多个可配置接口电路互连一或多个多处理器和一或多个外部设备的方法和设备,其适于在以下模式中操作(i)提供一致性对称接口的第一模式;或(ii)提供非一致性接口的第二模式。
文档编号G06F12/08GK101057223SQ20058003497
公开日2007年10月17日 申请日期2005年10月14日 优先权日2004年10月15日
发明者山崎刚, 斯克特·道格拉斯·克拉克, 查尔斯·雷伊·约翰斯, 詹姆斯·阿伦·卡尔 申请人:索尼计算机娱乐公司, 国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1