采用数据驱动机制多处理器间数据通信电路的制作方法

文档序号:6401074阅读:147来源:国知局
专利名称:采用数据驱动机制多处理器间数据通信电路的制作方法
技术领域
本发明涉及一种采用数据驱动机制的多处理器间数据通信电路,具体的说是一种涉及数据流驱动技术、交叉开关矩阵技术的一种可阵列化高并行性的数据驱动通信电路。
背景技术
多核处理器是指把两个以上的处理器核集成在一块芯片上的技术,以增强计算性能。CMP (片上多处理器)通过在多个CPU核上分配工作负荷,并且依靠到内存和输入输出(I/O)的高速片上互联和高带宽管道对系统性能进行提升。多核处理器,较之当前的单核处理器,能带来更多的性能和生产力优势,因而最终将成为一种广泛普及的计算模式。处理器发展至今,发热量和干扰等因素的介入使得单个处理器的频率已经越来越趋近于一个极限。最有力的证据是功耗不断增大。无论芯片是否正在工作,漏电流增大的趋势越来越显著,因而无法再像以前那样提高处理器的工作频率。此外,靠改变单核体系结构提高性能,需要昂贵的成本。目前为止,多核技术已成为提高性能的最后王牌,各CPU厂家也开始改变设计典范,未来所有微处理器皆朝多核心设计发展为主流,传统型单一核心处理器将退居二线。关于双核心,从ALTHON 64 X2系列的横空出世,到现在的酷睿傲视群雄,再到双核安腾2的发布,双核心已经是目前市场的主流产品。在服务器领域,双核心处理器以其卓越的性能,更低的成本也被大多数企业接收。多核系统的一个关键问题是并行编程,现有的程序都是基于控制流机的,都是顺序执行,如何实现有效的并行编程,这是一大问题。多核系统的关键技术是片上网络通信的设计。目前,多核处理器的互联通信有多种不同的设计,但是如何有效的处理数量庞大的多核系统之间的协作、数量庞大的处理器核的通信等还存在着诸多问题。

针对以上并行编程与片上网络通信问题,本发明提出了采用数据驱动机制的多处理器间数据通信电路。其特点是数据驱动、可阵列化与高并行性,数据驱动可以充分发掘数据间隐藏的并行性,降低了并行编程的难度,可阵列化使得其可扩展性强,高并行性使得能够同时处理多个数据,提高了通信速度。本发明电路中采用了基于iSLIP高效调度算法的交叉开关矩阵进行传送数据,这是一种高效的片上通信结构,并且设计了数据流专用存储器DFM(Data Flow Memory),用于数据驱动,充分发掘了数据间潜在的并行性。

发明内容
本发明的目的是:针对多核体系结构中面临并行编程与片上网络通信问题,本发明提供一种采用数据驱动机制的多处理器间数据通信电路,能较好的解决多核结构出现通 目瓶颈问题。为达到上述目的,本发明的技术方案是:一种采用数据驱动机制的多处理器间数据通信电路,包括:一个交叉开关矩阵、4个数据流存储器、4个匹配电路。连接方式如图1所示:发送数据传送时,源CPU根据之前定好的协议经过一个匹配电路发送数据至交叉开关矩阵实现数据传输;接收数据时,首先源数据经过交叉开关矩阵选择路径后传送至交叉开关矩阵的相对应的输出端口,输出的数据进入数据流流存储器,经过数据流储存器完备性检测后,取出函数号与数据传送至相应的目的CPU。上述数据流存储器是专为函数级数据流驱动机制设计的专用数据函数存储器,主要实现函数提取与数据存储功能。上述匹配电路用于匹配CPU核与交叉开关矩阵之间的时序,使得数据能过正确的传送,使时序匹配。上述交叉开关矩阵中的调度器采用的iSLIP调度算法,保证了调度的公平公正性,解决了饿死现象,并实现了 100%的吞吐。上述交叉开关矩阵中的输入模块,提出了一种的基于链表的电路结构,避免了头阻塞现象,相比于传统的虚拟输出队列的方法,减少了硬件资源的消耗。本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著技术进
I K
少:
(I)采用了数据驱动机制,设计了数据流专用存储器,只要CPU所需要数据到达就驱动执行,发掘了潜在的数据并行性,降低了并行编程的难度使得并行处理更容易实现。(2)给出了一种片上网络通信的详细设计方案一交叉开关矩阵。此互联结构克服了总线互联出现的不支持多核心、吞吐量低的缺点;
(3)采用了交叉开关矩阵结构,具有可阵列化的特点、可扩展性强。(4)采用了交叉开关矩阵结构,相比于总线结构具有高的并行通信能力。


图1是系统总框图。图2是数据流存储器电路结构图。图3是数据处理模块 图4是标签更新模块电路图 图5是匹配电路
图6是交叉开关矩阵架构图。图7是交叉开关矩阵输入模块结构图。图8是交叉开关矩阵调度模块结构图。图9是调度器中的仲裁器结构图。
具体实施例方式本发明的优选实施例结合附图详述如下:
实施例一:
如图1所示,本发明提出的采用数据驱动机制的多处理器间数据通信电路包括一个交叉开关矩阵(1)、4个数据流存储器(fiU)、四个匹配电路(fUd3)。其特征是:发送数据传送时,源CPU根据之前定好的协议经过匹配电路(3°、3\32、33)发送数据至交叉开关矩阵(I)实现数据传输;接收数据时,首先源数据经过交叉开关矩阵(I)选择路径后传送至交叉开关矩阵(I)的相对应的输出端口,输出的数据进入数据流流存储器(2°,2\22,23),经过数据流专用存储器(2°、2\22、23)完备性检测后,取出函数号与数据传送至相应的目的CPU。实施例二:
本实施例与实施例一基本相同,特别之处如下:
< 一 >、数据流存储器
参见图2,数据流存储器是一种特殊的存储器,主要由FIFO存储、数据处理模块、标签更新模块、RAM数据存储器以及FIFO函数存储器组成。其中FIFO存储主要用于存储输入的数据,使得数据能够正确的接收与传输;其中数据处理模块又由数据分段取出、地址生成器、译码器、位扩展及控制逻辑组成,取出输入数据中的函数号、数据号与数据,并由地址生成器生成相对应的地址,从而将数据传送至相关的功能模块进行相应的操作,并且生成相应的操作数标签;其中标签更新模块又由标签生成器、标签函数数据表寄存器及其他控制逻辑组成。它的主要功能为接收由数据预处理模块取出的函数号,检查数据完备性,如果数据完备,生成相应的函数标签,然后根据标签,将函数号输出至FIFO函数存储器等待目的(PU取走函数号、数据号及数据进行处理。其操作过程如下:
①接收来自交叉开关矩阵的新数据,将数据暂存FIFO存储中;
②数据处理模块读取FIFO存储中的数据,取出函数号、数据号,生成相应的地址,将有效数据输出存储到相应的RAM数据存储器中,并生成相应的操作数标志信号。③标签更新模块根据接收到的操作数标志信号,由标签产生器生成相应的函数标签,并把标签同预先存储的函数所需数据表做比对,对于所需数据全部有效的函数,生成有效标志位,通知目的CPU,数据完备,驱动目的CPU的执行,并将相应的函数号存储至FIFO函数存储器中,等待CPU读取。④一旦该数据被使用过,就将其标志置为无效。上述数据处理模块,参见图3,主要由数据分段取出、地址生成器、译码器,位扩展、寄存器组及一些基本的门构成。由图可知,首先,数据进入数据分段取出,取出相应的函数号、数据号、有效数据,然后地址生成器(将函数号与数据号并置而成,函数号在前,数据号在后)根据函数号与数据号生成相对应的有效数据存储地址;同时,函数号经过译码器,生成想对应的使能信号与数据号得到的使能信号及写使能信号进行与操作生成相应的操作数标志寄存输出。上述标签更新模块由标签生成器、标签函数数据表寄存器及其他控制逻辑组成。其关键部分为标签生成器。标签生成器如图4所示,主要由上升沿检测电路与一些简单的门电路组成,由图可知,当某一函数所需的操作数完备时,即操作数0标签与操作数I标签都为I时,就通过上升沿检测电路,产生函数标签信号,而所有的这些标签信号经过译码后就是标签值。〈二〉、匹配电路
匹配电路如图5所示,主要由上升沿检测电路与触发器组成,其功能是使得CPU核输出数据的时序与外界相匹配,从而使数据正确传送。其连接方式:输入有效先进入一级寄存器寄存,下一个时钟到来时,将当前输入有效与之前寄存的输入有效的取反相与,得到的结果再用寄存器输出寄存,有效数据则直接进入寄存器寄存,通过检测有效信号的上升沿来标注数据位有效数据。如图所示,上升沿检测电路检测输入有效的上升沿,若有,就会产生一个周期的高电平,此信号经过一级触发器匹配后作为新的输入有效信号,只有此信号有效时,输出数据才有效,这就实现了时序匹配的要求。〈三〉、交叉开关矩阵
如图6:数据先进入输入模块寄存,然后经过交叉开关阵列,最后由输出模块寄存输出。交叉开关阵列由调度模块控制传输路径。上述输入模块,其功能为接收需要发送的数据包,在每个数据等待调度时将其存储起来,当调度完成时将相应的数据包传送至目的输出端口。由于要等待,这就涉及到排队问题,如果简单的使用FIFO做为队列,将会产生头阻塞(HOL)问题,一般会采用虚拟队列来解决头阻塞问题,但这会增加硬件资源消耗。基于此,本发明提出了一种基于链表指针的结构,如图7所示:
输入模块的组成包括:4个存储器阵列、一个FIFO、一个移位寄存器。主要存储器是共享存储单元,它是用来存放32位包数据,最多可放32个包,其他三个存储器提供一个虚拟输出队列。链表头和链表尾有4个空间,每一个空间代表了虚拟输出端口。链表头和链表尾中的数据分别是每个输出端口中链表的“头”与“尾”在共享存储单元中的地址指针。而链表就保存了每个虚拟输出端口从“头”到“尾”的链表。FIFO以环形队列的方式存储共享存储单元中空闲地址,所以在FIFO中的下一个地址就是存放新数据包的地址,而当数据包从共享存储单元删除后就将这个地址写入到FIFO中。输入模块的发送允许信号由调度器仲裁而得到,而每个输入模块向调度器发送虚拟输出队列中每个端口的请求信号,这个信号由链表头最后一位(即数据有效位)决定。这个有效位为I时,意味着此输入模块对相应的输出模块有发送请求。当调度器向输入模块发送允许信号和允许端口后,连接就会被建立起来。输入模块就会将相应的数据包放入移位寄存器中,32位的数据包将以每周期8位,分4个周期经输出模块输出。上述调度器是基于多次迭代轮询算法(iSLIP)设计的,结构如图8所示,调度器的输入为每个输入模块的发送占用寄存器组成的占用向量表,这个值记录了所有需发送数据包的调度需求。共有4组向量组成,每组向量代表了一个输入模块。这4*4的向量寄存器是迭代仲裁的请求信号。调度器中又包含了 4个响应仲裁器(Grant Arbiters)和4个接收仲裁器(Accept Arbiter)。响应仲裁器的作用是对应输出模块是否响应每个输入模块对它的请求,接收仲裁器的作用是对应的输入模块是否接收输出模块对它的申请。所以4*4的网络中应该有2*4个仲裁器。每个仲裁器的结构都是相同的,由优先级编码器组成,优先级编码器中有一个记录了下一个仲裁周期中输入请求的最高优先级。仲裁器根据优先级确认此次仲裁后所接收的请求。4次迭代,即一个信元周期结束后就会把存储连接连接关系的寄存器中的连接情况都发送到响应输入输出模块。在每次迭代结束后,都有反馈信号给每个仲裁器,来决定在以后的迭代中是否还要进行仲裁。反馈信号由busy忙信号和match匹配信号组成。Busy忙信号表示了输出模块的当前状态,如果输出模块处在接收状态或者外设没有足够空间时,Busy忙信号将有效;match匹配信号表示相应的输入输出模块是否建立连接,如果已经建立连接,则响应的仲裁器也将不进行仲裁。最后,每经过4次迭代后,调度器就会把需要建立连接的选择器打开。仲裁器是调度器中最重要的部分,上述调度器中的仲裁器如图9所示,主要包括优先级编码器、指针更新控制电路组成。仲裁器以优先级编码器为基础,指针更新准许信号(update_enable)决定是否更新iSLIP算法的指针。优先级编码器的电路图如图9中的虚线框所示,主要包括固定优先级编码器、可编程优先级编码器和一些控制电路组成。
权利要求
1.一种采用数据驱动机制的多处理器间数据通信电路,由一个交叉开关矩阵(1)、4个数据流存储器(2°、2\22、23)和4个匹配电路构成,其特征是:所述4个匹配电路⑶』^)的输出连接到交叉开关矩阵(1),而交叉开关矩阵(I)的4个输出分别连接到4数据流存储器(2°、2\22、23);发送数据传送时,源CPU根据定义的协议经过4个匹配电路(3°、3\32、33)发送数据至交叉开关矩阵(I)实现数据传输;接收数据时,首先源数据经过交叉开关矩阵(I)路由选择后传送至交叉开关矩阵(I)的相对应的输出端口,输出的数据分别进入4个数据流存储器(2°、2\22、23),经过数据流存储器(2°、2\22、23)完备性检测后,取出函数号与数据传送至相应的目的CPU。
2.根据权利要求1所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述四个数据流存储器(2^2^2^23),均由一个FIFO存储模块(2-1)、一个数据处理模块(2-2)、标签更新模块(2-3)、RAM数据存储模块(2-4)和FIFO函数存储模块(2-5)构成,其连接方式:所述FIFO存储模块(2-1)的数据输出连接至数据处理模块(2-2),数据处理模块(2-2)的写数据连接至RAM数据存储模块(2-4),数据处理模块(2-2)的函数O和函数I连接至标签更新模块(2-3),标签更新模块(2-3)的数据输出连接至FIFO函数存储模块(2-5)。首先,数据进入FIFO (2-1)缓冲,只要检测到FIFO非空,数据处理模块(2-2)读取数据,提取出数据中的函数号、数据号和有效数据,由函数号和数据号进入地址生成器生成写地址连接至RAM数据存储模块(2-4)的写地址,有效数据根据写地址出入至RAM数据存储模块(2-4),函数号、数据号等生成操作数标签分别连接至标签更新模块(2-3),标签更新模块(2-3)检测操作数标签,若都为真,则将此函数标签存储至FIFO函数存储模块(2-5)缓存函数标签,等待CPU读取标签。
3.根据权利要求2所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述的数据处理模块(2-2)由地址生成器、译码器、位扩展和两组寄存器组成。其连接方式是:数据输入首先分段取出数据号、函数号和有效数据,然后将取出的数据号与函数号送至地址生成器生成相应的数据存储地址,同时函数号进入译码器译码、数据号则进行位扩展与fifo的空信号的取反相与生成时能信号控制操作数标签。
4.根据权利要求2 所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述标签更新模块(2-3)由上升沿检测电路及必要的逻辑门组成,其连接方式:将两个操作数标签相与后进入上升沿检测电路看是否有跳变,生成信号相或作为输出使能信号,有上升沿的则数目数据到达,将上升沿检测电路生成的信号寄存,作为标签输出。
5.根据权利要求1所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述的四个匹配电路(3°、3\32、33)均由一个上升沿检测电路与寄存器组组成,其连接方式:输入有效先进入一级寄存器寄存,下一个时钟到来时,将当前输入有效与之前寄存的输入有效的取反相与,得到的结果再用寄存器输出寄存,有效数据则直接进入寄存器寄存,通过检测有效信号的上升沿来标注数据位有效数据。
6.根据权利要求1所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述的交叉开关矩阵(I)包括调度模块(1-1)、交叉阵列(1-3)和输出模块(1-4),输入模块(1-2)的一路输出经调度模块(1-1)后连接到交叉阵列(1-3),另一路输出直接连接到交叉阵列(1-3),交叉阵列(1-3)的输出连接到输出模块(1-4);首先数据进入输入模块(1-2)寄存,同时输入模块(1-2)向调度模块(1-1)发送请求信号,调度模块(1-1)生成响应信号,打开交叉阵列开关(1-3)的相关通路,将数据输出至输出模块(1-4)。
7.根据权利要求6所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于所述的交叉开关矩阵(I)的调度模块(1-1)由一个占用向量表(1-1-1)、四个响应仲裁器(1-1-2)、四个接受仲裁器(1-1-3)和存储关系寄存器(1-1-4)构成,占用向量表(1-1-1)的输出连接至响应仲裁器(1-1-2),响应仲裁器(1-1-2)的输出连接至接收仲裁器(1-1-3),接收仲裁器(1-1-3)的输出连接至存储关系寄存器;首先占用向量表(1-1-1)根据占用信息输入生成请求信号发送至响应仲裁器(1-1-2),响应仲裁器(1-1-2)根据请求信号生成响应信号发送至接收仲裁器(1-1-3),接收仲裁器(1-1-3)则根据收到的仲裁信号再次仲裁,生成相应的结果传送至存储关系寄存器(1-1-4),存储关系寄存器(1-1-4)则根据得到的信息生成相应的匹配信号与忙信号相或作为响应仲裁器(1-1-2)的控制信号,控制链路信号的生成。
8.根据权利要求6所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于交叉开关矩阵(I)中的输入模块(1-2)由I个共享存储单元(1-2-1)、1个存储队列(1-2-2),1个链表头(1-2-3)、1个链表(1-2-4)、1个链表尾(1-2-5)和I个移位寄存器(1-2-6)构成,其结构是:共享存储单元(1-2-1)的输出连接至移位寄存器(1-2-6),存储队列(1-2-2)的输入连接至共享存储单元(1-2-1)的输出地址,存储队列(1-2-2)的输出连接至共享存储单元(1-2-1)的输入地址,而链表头(1-2-2 )和链表尾(1-2-5 )的数据输入连接至共享存储单元(1-2-1)的输入地址,使得链表头(1-2-3)和链表尾(1-2-5)中的数据是共享存储单元(1-2-1)的地址指针,而链表头(1-2-3 )和链表尾(1-2-5 )的输入数据并置成链表(1-2-4)的输入数据,链表头(1-2-3)输出4个占用向量供调度模块进行调度。
9.根据权利要求7所述的采用数据驱动机制的多处理器间数据通信电路,其特征在于调度模块(1-1)中的仲裁器(1-1-2)采用了屏蔽结构的轮询仲裁器,由固定优先级编码器、可变优先级编码器、解码器、指针更新电路构成。其基本结构:仲裁开始,请求信号进入固定优先级仲裁器仲裁,同时,将优先级寄存器中经解码器解码得到的结果取反后与输入请求相与后进入可编程优先级编码器,得到屏蔽信号与仲裁结果。将屏蔽信号与固定优先级仲裁器结果相与后(实现 屏蔽功能)再与可编程优先级编码器的结果相或作为输出结果。若屏蔽无效,取固定优先级编码器结果为输出结过;若屏蔽信号有效,屏蔽掉固定优先级编码器结果,取可编程优先级编码器结果作为输出结果。同时,此结果进去指针更新控制电路进行优先级指针更新。
全文摘要
本发明涉及一种采用数据驱动机制的多处理器间数据通信电路,它包括一个交叉开关矩阵、4个数据流存储器、4个匹配电路。如图所示,发送数据传送时,源CPU根据之前定好的协议经过与其相连的匹配电路,然后发送至交叉开关矩阵实现数据传输;接收数据时,首先源数据经过交叉开关矩阵选择路径后后传送至交叉开关矩阵的相对应的输出端口,输出的数据进入数据流流存储器DFM,经过DFM完备性检测后,取出函数号与数据传送至相应的目的CPU。本发明能较好的解决多核结构出现的通信瓶颈问题。
文档编号G06F15/163GK103218343SQ20131010301
公开日2013年7月24日 申请日期2013年3月28日 优先权日2013年3月28日
发明者毕卓, 王镇, 张莹, 徐云川, 孔维利 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1