用于处理集群的控制节点的制作方法

文档序号:6362305阅读:166来源:国知局
专利名称:用于处理集群的控制节点的制作方法
技术领域
本发明一般涉及处理器,并且更具体地,涉及处理集群。
背景技术
图1是描述执行速率的加速比相对多核系统(从2核变化到16核)的并行开销的图示,其中加速比是单处理器执行时间除以并行处理器执行时间。可以看到,并行开销必须接近于零以从大量的核中获取显著效益。但是,由于并行程序之间存在任何交互时的开销会趋于很高,因此对于除了完全解耦的程序之外的任何程序而言,有效地使用多于一个或两个的处理器通常是很困难的。因此,需要一种改进的处理集群。

发明内容
因此,本公开的实施例提供一种装置。该装置的特征为:消息总线(1420);以及控制节点(1406),控制节点(1406)具有:主机接口( 1405),其配置成与主机处理器(1316)通信;多个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R),其每个耦合到消息总线(1420);耦合到消息总线(1420)的加载/存储消息流水线(6134-(R+2)、6136- (R+2)和6138- (R+2));消息队列(6102),其被耦合到每个分区消息流水线(6134-1到 6134-R、6136-1 到 6136-R 和 6138-1 到 6138-R)、加载 / 存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2))和主机接口( 1405);顺序处理器(6140),其耦合到每个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和加载/存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2));以及控制节点存储器(6114),其耦合到主机接口(1405)和消息队列(6102)。


图1是多核加速比参数的图形;图2是根据本公开的一个实施例的系统的图示;图3是根据本公开的一个实施例的片上系统(SOC)的图示;图4是根据本公开的一个实施例的并行处理集群的图示;图5和图6是控制节点的示例图;图7是从属方和支配方之间的协议示例的时序图;图8是消息的图示;图9是终止消息的格式的示例;图10是终止消息处理流程的示例;图11是控制节点以“封装”形式发送写入条目的图示;图12是一般包括头部和消息载荷的动作或消息的图示;以及图13是控制节点存储器的特殊动作更新消息的图示。
具体实施例方式在图2中,可以看到执行并行处理的SOC应用的示例。在该示例中,示出成像装置1250,该成像装置1250 (例如,其可以是移动电话或者照相机)一般包括图像传感器1252、S0C1300、动态随机访问存储器(DRAM)1254、闪存(FMEM)1256、显示器1526和电源管理集成电路(PMIC)1260。在操作中,图像传感器1252能够捕获S0C1300和DRAM1254可以处理并存储在非易失性存储器(即,闪存1256)中的图像信息(其可以是静止图像或视频)。此外,存储在闪存1256中的图像信息可以通过使用S0C1300和DRAM1254显示在显示器1258上。并且,成像装置1250通常是便携的,并且包括作为电源的电池;PMIC1260 (其可由S0C1300控制)可以协助调节电源使用以延长电池寿命。在图3中,根据本公开的一个实施例描绘了片上系统或S0C1300的示例。此S0C1300 (其通常为诸如0ΜΑΡ 的集成电路或IC) 一般包括处理集群1400 (其一般执行上述并行处理)和(上面描述和引用的)提供宿主环境的主机处理器1316。该主机处理器1316可以是宽(即,32位、64位等)RISC处理器(诸如,ARM Cortex_A9)并且与总线仲裁器1310、缓冲器1306、总线桥1320 (其允许·主机处理器1316通过接口总线或I总线1330访问外围接口 1324)、硬件应用编程接口(API )1308以及中断控制器1322通过主机处理器总线或HP总线1328通信。处理集群1400通常与功能电路1302 (例如,其可以是已充电的耦合装置或C⑶接口并且其可以与片外装置通信)、缓冲器1306、总线仲裁器1310以及外围接口 1324通过处理集群总线或PC总线1326进行通信。以此条件配置,主机处理器1316能够通过API1308提供信息(即,配置处理集群1400以符合所需的并行实施方式),而处理集群1400和主机处理器1316都可以直接访问闪存1256 (通过闪存接口 1312)和DRAM1254 (通过存储器控制器1304)。此外,通过联合测试行动组(JTAG)接口 1318可以进行测试和边界扫描。转到图4,根据本公开的一个实施例描绘了并行处理集群1400的示例。通常,处理集群1400对应硬件722。处理集群1400 —般包括分区1402-1到1402-R,这些分区包含节点808-1到808-N、节点包装器810-1到810-N、指令存储器(MEM) 1404-1到1404-R和总线接口单元或BIU4710-1到4710-R (将在下面详细讨论)。节点808-1到808-N的每个(通过其各自的BIU4710-1到4710-R和数据总线1422)耦合到数据互连814,并且通过消息总线1420为分区1402-1到1402-R提供来自控制节点1406的控制或消息。全局加载/存储(GLS)单元1408和共享的功能存储器1410还提供用于数据移动的额外功能(如下所述)。此外,3级或L3高速缓存1412、外围设备1414 (其一般不被包含在IC内)、存储器1416 (其通常是闪存1256和/或DRAM1254以及不包含在S0C1300内的其他存储器)以及硬件加速器(HWA)单元1418与处理集群1400 —起使用。还提供接口 1405以向控制节点1406传输数据和地址。处理集群1400 —般使用“推进”模型用于数据传送。该传送一般表现为缓冲写入(posted write),而不是请求-响应的访问类型。由于数据传送是单向的,因此与请求-响应访问相比,这种传送具有将对全局互连(即,数据互连814)的占用减少到1/2的优点。在将响应发送给请求方之后,一般不希望通过互联814发送请求,这导致互连814上的两次转变。推进模型生成单一的传送。这对于可扩展性是很重要的,因为网络延迟随着网络规模的增加而增加,并且这必然降低请求-响应事务的性能。
推进模型与数据流协议(S卩,812-1至812-N) —起通常会将全局数据通信量最小化到可正确使用的数据流量,同时,还通常最小化全局数据流对本地节点使用的影响。其通常对节点(即,808-1)性能影响很小或没有影响,即便对于大量的全局通信量。源将数据写入全局输出缓冲器(在以下讨论)并且继续操作而不要求传送成功的确认。数据流协议(即,812-1到812-N)通常使用在互连814上的单一传送确保首次尝试将数据移动到目标的传送成功。全局输出缓冲器(在以下讨论)可以保持高达16个输出(例如),使得节点(S卩,808-1)由于用于输出的瞬时全局带宽不足而挂起(stall)是不太可能的。而且,瞬时带宽不受请求-响应事务或不成功传送重新进行的影响。最终,推进模型更紧密地与编程模型匹配,即程序不“获取(fetch)”其自身的数据。相反地,它们的输入变量和/或参数在被调用前写入。在编程环境中,输入变量的初始化由源程序写入存储器。在处理集群1400中,这些写入被转换成缓冲写入,缓冲写入在节点上下文中产生变量的值。全局输入缓冲器(以下将讨论)用于从源节点接收数据。由于每个节点808-1到808-N的数据存储器是单端口的,因此输入数据的写入可能与本地单输入多数据(SMD)的读取相冲突。这种争用可以通过将输入数据接受到全局输入缓冲器中来避免,这种方式下输入数据的写入会等待开放数据存储器周期(也就是说,不存在与SIMD访问冲突的存储体)。数据存储器可以具有32个存储·体(例如),所以缓冲器很可能被迅速释放。然而,由于不存在确认传送的握手,因此节点(即,808-1)应该具有空闲的缓冲条目。如果需要,全局输入缓冲器可以使本地节点(即,808-1)挂起并且强制写入数据存储器以释放缓冲区位置,但是这种事件应该是极为罕见的。通常,全局输入缓冲器被实现为两个单独的随机访问存储器(RAM),使得一个存储器处于写全局数据的状态,而另一个存储器处于被读入数据存储器的状态。消息互连与全局数据互连是分离的,但是也使用推进模型。在系统级,类似于SMP或者对称多处理,节点808-1到808-N在处理集群1400中被复制,节点的数量规模扩大至期望吞吐量。该处理集群1400的规模可扩大至非常大数量的节点。节点808-1到808-N被分组为分区1402-1到1402-R,每一个分区具有一个或更多个节点。通过增加节点之间的本地通信,并且通过允许较大型的程序计算较大量的输出数据,分区1402-1到1402-R有助于可扩展性,使得更可能满足所需的吞吐量需求。在分区(SP,1402-1)内,节点使用本地互连进行通信,不需要全局资源。分区(B卩,1402-1)内的节点还可以以任何粒度共享指令存储器(即,1404-1):从每个节点使用独占指令存储器到所有节点使用共同的指令存储器。例如,三个节点可以共享指令存储器的三个存储体,而第四个节点具有指令存储器的独占存储体。当节点共享指令存储器(即,1404-1)时,节点通常同步执行相同的程序。处理集群1400还可支持很大数量的节点(B卩,808-1)和分区(B卩,1402-1)。然而,每个分区的节点数通常被限制为4,因为每个分区具有4个以上节点通常类似于非一致性存储器访问(NUMA)架构。在这种情况下,分区通过具有大致恒定的横截面带宽的一个(或更多)横条(其将在下文关于互连814进行描述)连接。目前,处理集群1400的架构设计成每周期传送一个节点的数据宽度(例如,64个16位像素),将像素分为4次传送,每个周期传送16像素,在4个周期内传送。处理集群1400 —般是容许时延的,并且节点缓冲通常避免节点挂起,即使当互连814接近饱和(注意:此条件很难实现,除了使用合成程序)。
通常,处理集群1400包括在分区之间共享的全局资源:(I)控制节点1406,其实现系统范围的消息互连(通过消息总线1420)、事件处理和调度,以及与主机处理器和调试器的接口(所有这些在下文详细描述)。(2) GLS单元1408,其含有可编程RISC处理器,该GLS单元1408使能系统数据移动可由C++程序描述,该C++程序可被直接编译为GLS数据移动线程。这使系统代码能够在交叉托管的环境中执行而不修改源代码,并且比直接存储器访问更普遍,因为其可以从系统中或者SMD数据存储器(下文描述)中的任何一组地址(变量)移动到任何其他组的地址(变量)。该GLS单元1408是多线程的,具有(例如)O周期的上下文切换,支持多达例如16个线程。(3)共享功能存储器1410,其是提供通用查找表(LUT)和统计收集工具(直方图)的大型共享存储器。其还支持使用大型共享存储器进行像素处理,诸如重采样和失真校正,而这种像素处理不能得到节点SMD的很好的支持(由于成本原因)。该处理使用(例如)6发射RISC处理器(即,在下文详细描 述的SFM处理器7614),其将标量、向量和二维阵列实现为固有类型。(4)硬件加速器1418,其可以合并用于不需要可编程性的功能或用于优化功率和/或面积。对于子系统而言,加速器作为系统中的其他节点出现,其参与控制和数据流,可以创建事件并且可以被调度,并且对于调试器可见。(在适用的情况下,硬件加速器可以具有专用LUT和统计采集)。(5)数据互连814和系统开放核心协议(0CP)L3连接1412。这些连接管理数据总线1422上节点分区、硬件加速器、系统存储器和外围设备之间的数据移动。(硬件加速器还可以具有到L3的私有连接。)(6)调试接口。这些接口未在图中示出,但是在本文中描述。控制节点1406可负责处理在分区1402-1到1402-R、共享功能存储器1410、GLS单元1408和硬件加速器1418之间流动的消息通信量。这些消息可归类为初始化消息和稳态消息。初始化消息包含去往控制节点1406本身的消息,例如,来自GLS单元1408的动作更新列表消息或者控制节点数据存储器初始化消息。这些旨在用于控制节点1406的消息为:用于初始化动作列表存储器的动作列表消息或引发控制节点1406的某种中断的消息(例如,HALT-ACK消息)。这些消息通过使用{SEG_ID,N0DE_ID}组合识别。而转到图5和图6,可以看到控制节点1408的一般结构。优选地,控制节点1408可实现系统范围的消息互连、事件处理和调度以及与主机处理器(从属)相接。控制节点1408可实现的功能的示例如下:(I)路由并分发消息;通常,所有消息可通过控制节点1406路由,控制节点1406可以提供生成消息跟踪用于调试的装置。控制节点也可以使事件通知串行化以避免没有这种集中分发点时可能出现的竞争情况。( 2 )消息处理用于排序和控制。(3)与主机处理器相接,包含数据/地址和中断接口。(4)支持通过主机处理器或者指定调试端口进行的调试。(5)经由跟踪端口提供跟踪消息(6)提供消息队列
此外,控制节点负责:(I)基于输入的{段标识.节点标识(segment id.node id)}头部信息,将输入的处理集群1400消息路由到合适的端口(2)基于其自身动作列表RAM中的信息内部处理终止消息(3)允许主机接口配置内部寄存器(4)允许调试接口配置内部寄存器(如果主机并未正在访问)(5)允许通过主机/调试器接口或者经由通信接口访问动作列表RAM(6)支持动作列表更新消息的消息队列,其允许“无限制的”消息处理(7)处理消息队列中编码的动作列表类型(8)将所有已处理的消息路由到ATB跟踪接口用于上游监测/调试
·
(9)根据“消息收发”需求使中断有效如图5所示,控制节点1406 —般包括消息队列6102、节点输入缓冲器6134、输出缓冲器6124。通常,消息队列6102通过接口 1405从主机处理器接收输入消息6104。这些输入消息6104 —般包含数据(即,消息内容6106)和地址(B卩,操作码6108、段标识6110和节点标识6112 )。节点输入缓冲器6134 —般接收来自节点(即,808-1 )的消息并且一般包括控制节点存储器6114,控制节点存储器6114可以存储动作列表条目处理或动作列表6116(其可包含程序标识/线程标识6118、段标识6120和节点标识6122)。输出缓冲器6124 —般存储具有数据(即,消息内容6132)和地址(B卩,操作码6126、段标识6128和节点标识6130)的输出消息,这些输出消息可以被发送到节点(即,808-1)或者跟踪和调试硬件。转到图6,可以更加详细地看到控制节点1406的架构。如所示,控制节点1406能够通过从接口 6134-1到6134-R和支配/主(master)接口 6138-1到6138-R与分区1402-1到1402-R (或节点)交互,通过从接口 6134- (R+1)和支配接口 6138- (R+1)与GLS单元1408交互,通过接口 1405与主机处理器交互,通过接口 6133与调试器交互,以及通过接口6135与跟踪交互。此外,控制节点1406 —般还包括消息预处理器6136-1到6136-(R+1)、顺序处理器6140、提取器6142、寄存器6144和仲裁器6146。通常,输入从接口 6134-1到6134-(R+1) —般负责处理来自上游模块(即,GLS单元1408)的所有进入的从属访问。在图7中可以看到在从接口和支配接口之间的协议的示例。假定呈现给从接口(即,6134-1)的数据被控制节点1406接受,但是多数情况不是这样的情形。将内部生成数据挂起(Data-stall),该数据挂起将门控(gate)至支配方的SDATAACCEPT。然后期望支配方保持MDATA值,直到从接口发送相应的SDATAACCEPT。一般,消息预处理器6138-1到6138-(R+1)负责确定控制节点1406应该对当前的消息动作还是转发该消息。这由首先解码锁存的头部字节确定。下面的表I示出当从上游支配方接收到消息列表时控制节点1406可以将其解码并对其动作的消息列表的示例。表权利要求
1.一种装置,其特征在于: 消息总线(1420);以及 控制节点(1406),其具有: 主机接口( 1405),其配置于与主机处理器(1316)通信; 多个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R),其每个耦合到所述消息总线(1420); 加载/存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2)),其耦合到所述消息总线(1420); 消息队列(6102),其耦合 到每个分区消息流水线(6134-1到6134_R、6136_1到6136-R 和 6138-1 到 6138-R)、所述加载 / 存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2))和所述主机接口(1405); 顺序处理器(6140 ),其耦合到每个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2));以及 控制节点存储器(6114),其耦合到所述主机接口(1405)和所述消息队列(6102)。
2.根据权利要求1所述的装置,其中所述分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2))中的每个的特征进一步在于: 从接口(6134-1到6134- (R+2)),其耦合到所述消息总线(1420); 消息预处理器(6136-1到6136-(R+2)),其耦合到所述消息队列(6102)、所述顺序处理器(6140)和所述从接口(6134-1到6134- (R+2));以及 从接口(6134-1到6134- (R+2)),其耦合到所述消息总线(1420)和所述消息预处理器(6136-1 到 6136- (R+2))。
3.根据权利要求1或2所述的装置,其中所述控制节点的特征进一步在于,提取器(6142),其耦合在所述顺序处理器(6140)和所述控制节点存储器(6114)之间,并耦合到所述分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2))中的每一个。
4.根据权利要求1、2或者3所述的装置,其中所述控制节点的特征进一步在于耦合到所述控制节点存储器(6114)的寄存器(6144)。
5.根据权利要求1、2、3或者4所述的装置,其中所述控制节点的特征进一步在于,耦合在所述消息队列(6102)和所述主机接口(1405)之间的仲裁器(6146)。
6.一种系统,其特征在于: 主机处理器(1316);以及 处理集群,其耦合到系统存储器(1416);其中所述处理集群包括: 消息总线(1420); 数据总线(1422); 多个处理节点(808-1到808-N),其布置在分区(1402-1到1402-R)中,每个分区具有耦合到所述数据总线(1422)的总线接口单元(4710-1到4710-R),其中每个所述处理节点耦合到所述消息总线(1420);加载/存储单元(1408),其耦合到所述消息总线(1420)和所述数据总线(1422);以及 控制节点(1406),其具有: 主机接口( 1405),其耦合到所述主机处理器(1316); 多个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R),其每个耦合到所述消息总线(1420); 加载/存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2)),其耦合到所述消息总线(1420); 消息队列(6102),其耦合到每个分区消息流水线(6134-1到6134_R、6136_1到6136-R 和 6138-1 到 6138-R)、所述加载 / 存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2))和所述主机接口(1405); 顺序处理器(6140 ),其耦合到每个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2));以及 控制节点存储器(6114),其耦合到所述主机接口(1405)和所述消息队列(6102)。
7.根据权利要求6所述的系 统,其中所述分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136_ (R+2)和6138- (R+2))中的每个的特征进一步为: 从接口(6134-1到6134- (R+2)),其耦合到所述消息总线(1420); 消息预处理器(6136-1到6136- (R+2))),其耦合到所述消息队列(6102)、所述顺序处理器(6140)和所述从接口(6134-1到6134- (R+2));以及 从接口(6134-1到6134- (R+2)),其耦合到所述消息总线(1420)和所述消息预处理器(6136-1 到 6136- (R+2))。
8.根据权利要求6或7所述的系统,其中所述控制节点的特征进一步在于,提取器(6142),其耦合在所述顺序处理器(6140)和所述控制节点存储器(6114)之间,并耦合到所述分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和所述加载/存储消息流水线(6134- (R+2)、6136- (R+2)和6138- (R+2))中的每一个。
9.根据权利要求6、7或者8所述的系统,其中所述控制节点的特征进一步在于耦合到所述控制节点存储器(6114)的寄存器(6144)。
10.根据权利要求6、7、8或者9所述的系统,其中所述控制节点的特征进一步在于耦合在所述消息队列(6102)和所述主机接口(1405)之间的仲裁器(6146)。
11.根据权利要求6、7、8、9或者10所述的系统,其中所述系统的特征进一步在于耦合在所述数据总线(1422)和所述加载/存储单元(1408)之间的数据互连(814)。
12.根据权利要求6、7、8、9、10或者11所述的系统,其中所述系统的特征进一步在于: 系统总线(1326,1328),其耦合到所述控制节点(1406)和所述主机处理器1316 ; 存储器控制器(1304),其耦合到所述系统总线(1326,1328);以及 系统存储器(1416),其耦合到所述系统总线(1326,1328)。
全文摘要
本发明提供一种装置。该装置包含消息总线和控制节点(1406)。控制节点(1406)具有主机接口(1405)、多个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)、加载/存储消息流水线(6134-(R+2)、6136-(R+2)和6138-(R+2))、消息队列(6102)、顺序处理器(6140)和控制节点存储器(6114)。主机接口(1405)配置为与主机处理器通信。多个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)每个耦合到消息总线。加载/存储消息流水线(6134-(R+2)、6136-(R+2)和6138-(R+2))耦合到消息总线。消息队列(6102)耦合到每个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)、加载/存储消息流水线(6134-(R+2)、6136-(R+2)和6138-(R+2))和主机接口(1405)。顺序处理器(6140)耦合到每个分区消息流水线(6134-1到6134-R、6136-1到6136-R和6138-1到6138-R)和加载/存储消息流水线(6134-(R+2)、6136-(R+2)和6138-(R+2)),并且控制节点存储器(6114)耦合到主机接口(1405)和消息队列(6102)。
文档编号G06F13/14GK103221934SQ201180055748
公开日2013年7月24日 申请日期2011年11月18日 优先权日2010年11月18日
发明者W·约翰森, J·W·戈楼茨巴茨, H·谢赫, A·甲雅拉, S·布什, M·琴纳坤达, J·L·奈, T·纳加塔, S·古普塔, R·J·尼茨卡, D·H·巴特莱, G·孙达拉拉彦 申请人:德克萨斯仪器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1