一种分布式数据驱动交点队列型片上通信结构的制作方法

文档序号:6626340阅读:210来源:国知局
一种分布式数据驱动交点队列型片上通信结构的制作方法【专利摘要】本发明公开了一种分布式数据驱动交点队列型片上通信结构,由8╳8交点队列型片上通信结构与实现数据驱动的数据驱动模块组成;数据驱动模块与处理器相连,组成多核处理器单元,并扩展组成处理器阵列;每个处理器在数据驱动模块的驱动工作模式下,互不干扰的并行操作;8╳8交点队列型片上通信结构,具有8个输入端口和8个输出端口,包括三种模块:处理器标签过滤器、“簇”标签过滤器、输出端口。本发明的方法打破了片上通信网络性能瓶颈-握手闭环,实现了低延迟的路由通信功能;采用全阵列排布的结构,可以全并行工作,并降低了并行编程难度,具有高带宽的性能;有效降低了调度模块调度算法的复杂度,提高了调度效率。【专利说明】一种分布式数据驱动交点队列型片上通信结构[0001]【
技术领域
】[0002]本发明涉及一种片上通信结构,属于通信【
技术领域
】。【
背景技术
】[0003]微体系结构是处理器的躯干,而程序执行模型则是处理器的灵魂,建立有效的程序执行模型对体系结构至关重要。随着多核架构的出现,问题也随之而来,因为所有人都不知道如何在多核平台上有效的进行编程,DavidPatterson在其文章“Thetroublewithmulticore”中说到“造芯片的家伙正忙着生产那些大多数程序员不知道如何编程的多核处理器”(IEEESpectrumtableofcontentsarchive,2010(47):28-32)。多核编程主要面临着三大挑战:负载均衡(loadbalancing)、顺序依赖(sequentialdependency)和同步(synchronizat1n)。[0004]针对多核编程问题,研究者们进行着各种编程模型的尝试,目前已经有5种主要并行编程模型。MPI(MessagePassingInterface)是MPI论坛发布的一个库,支持C、c++和Fortran语言。0penMP(0penMultiProcessing)是一种用于并行编程的规范,是在串行语言上的扩展,目前可以在C、C++和Fortran语言中使用。IntelIPP(IntegratedPerformancePrimitives)是第二代Intel函数库,Intel为每种新的多核处理器都发布一个IPP函数库,专用于多核架构,同时提供了调度优化的函数库,其中涉及的领域有信号处理、音频视频、图像处理与编码等。IntelTBB(ThreadingBuildingBlocks),Intel线程构建模块,是一个为创建可靠、可移植的和可扩展的并行程序的C++模板库。MapReducesh是Google研究开发出来的一个针对大规模群组中的海量数据处理的分布式编程模型。[0005]解决并行编程的另一思路是从硬件结构出发。数据驱动计算机(数据流计算机)是麻省理工的丹尼斯(JackDennis)在1972年提出的,它背离了传统冯?诺依曼计算机思想,最终目的是实现并行处理以提高运算速度,历经40年的实践检验,该模型已经证明其并行方面的有效性。与传统的冯.诺伊曼计算机不同,数据流计算机不是采用指令驱动操作,而是采用数据(操作数)驱动操作的一种执行方式,即当且仅当某一操作所需的操作数全部到齐后,此操作就立即开始执行。这样,如果有很多个操作均满足上述条件,他们就可以彼此并发执行而不受指令顺序执行的限制,从而充分开拓并行度。数据流是基于“异步性”和“函数性”的一种计算模型。“异步性”指数据流操作一旦收到其操作数后就开始执行;“函数性”指每一位数据流操作均消耗一组输入,产生一组输出而不存在副作用。显然,“异步性”是数据流中开拓并行性的基础;而“函数性”能确保任何两个并发操作可以任意次序的并发执行而不会相互干扰。【
发明内容】[0006]本发明的目的是针对多核结构遇到的并行编程、核间通信等问题,本发明结合了数据流计算机及片上网络相关技术,将数据驱动机制与片上路由技术结合,提出了集总式数据驱动交点队列型片上通信网络。[0007]为解决上述技术问题,本发明提供一种分布式数据驱动交点队列型片上通信结构,其特征是,由8X8交点队列型片上通信结构与实现数据驱动的数据驱动模块组成;通信网络的4个端口分别连接函数驱动模块,另外4个端口用于扩展;数据驱动模块与处理器相连,组成了一个多核处理器单元,称之为“簇”;以“簇”为基本单元进行扩展组成一个处理器阵列;每个处理器在数据驱动模块的驱动工作模式下,互不干扰的并行操作;8X8交点队列型片上通信结构,具有8个输入端口和8个输出端口,包括三种模块:处理器标签过滤器、“簇”标签过滤器、输出端口;其基本结构是:输出端口PortO_oUt、Port2_out>Port4_out、Port6_out对应的每个输出节点上连接着处理器标签过滤器;输出端口Portl_out、Port3_out、Port5_out、Port7_out对应的每个输出节点上则连接着“簇”标签过滤器,每个输出端口上连接着I个输出模块。[0008]需要传递的数据通过片上通信网络通信;片上通信有两种模式:一种是“簇”内通信,即同“簇”的处理器核之间的数据交换;另一种是“簇”间,即先通过通信接口转发到不同的“簇”,然后再送给相应的处理器核。[0009]数据驱动模块由通信队列、数据包处理模块、参数存储模块、标签更新模块及函数队列组成;通信队列用于缓存来自于片上通信网络器的数据包;数据包处理模块用于控制通信队列接收数据包,并提取数据包中的函数号、数据号与数据;参数存储模块根据数据包的函数号和数据号生成相应的地址并在对应单元中存储数据;标签更新模块若检测到某个函数号的数据号都到达,即该函数的数据完备,则将函数号送至函数队列;函数队列用于缓存函数号,等待处理器提取;执行时,处理器根据函数号从参数存储模块提取与该函数号关联的有效数据。[0010]有效数据输入时,各节点的处理器标签过滤器同时检测输入端口送入的数据,当该数据的处理器标签与自己不匹配时忽略数据,若匹配则进入接受操作,同时发送输出请求信号给相应的输出模块,若收到允许信号则直接把数据送入输出模块,一个时钟周期内,若未收到允许信号则将数据送入交点处缓存队列,等待允许信号到达时再发送;同时,各节点的“簇”标签过滤器检测输入端口送入的数据,当该数据的簇标签与本节点的标签匹配时,接收此数据,若与本节点“簇”标签不匹配,则“簇”标签过滤器各节点分别查找各自的路由表中的标签,若匹配到路由表中的标签,则将该节点数据根据匹配的结果进行转发,并生成发送请求信号,若匹配不到节点路由表中的标签,则直接忽略此数据。[0011]处理器标签过滤器工作过程为:当输入端口送入的数据有效时,数据被寄存在第一级寄存器,同时取出处理器标号与处理器标签寄存器中的值,若匹配则产生匹配信号,当匹配信号有效且数据有效或者FIFO非空时产生仲裁请求信号;匹配成功后,数据进入第二个寄存器,等待响应信号,若在下一个时钟到来之前,响应信号已经来到且FIFO为空,则数据直接通过多路选择器与三态门直接发送至数据总线上;若没有响应信号,则数据进入FIFO队列等待仲裁输出。[0012]输出模块由两部分组成:输出寄存器与仲裁器;输出寄存器用于寄存输出数据;仲裁器采用轮询匹配算法,以优先级编码器实现循环调度器,包括以下步骤:第一步,请求:每个需发送数据的端口向相应的输出端口发送请求输出信号;第二步,响应:每个收到发送请求的输出端口根据轮询调度器的指针状态响应其中一个请求;同时端口指针在被响应之后进行更新;第三步,接受:每个收到响应的输入端口接受一个输出端口的接受响应信号;整个仲裁过程结束,建立了相应的连接。[0013]本发明所达到的有益效果:(O打破了片上通信网络性能瓶颈一握手闭环,实现了低延迟的路由通信功能;(2)采用了全阵列排布的结构,可以全并行工作,具有高带宽的性能;(3)有效的降低了调度模块调度算法的复杂度,在不影响调度公平性的同时,有效提高了调度效率;(4)借鉴了数据流计算机中的数据驱动技术,降低了并行编程难度。【专利附图】【附图说明】[0014]图1通信网络结构及其扩展;图2匹配机制示意图;图3数据驱动模块电路结构图;图4分布式交点队列通信网络总体结构;图5处理器标签过滤器;图6“簇”标签过滤器;图7轮询调度算法实现的一个例子;图8仲裁器。【具体实施方式】[0015]下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。[0016]〈一〉整体结构如图1所示,该通信结构由8X8交点队列型片上通信结构与数据驱动模块组成。通信网络的4个端口分别连接函数驱动模块,另外4个端口用于扩展。[0017]数据驱动模块与函数处理器相连,组成了一个多核处理器单元,称之为“簇”。以“簇”为基本单元再进行扩展就组成了一个处理器阵列。[0018]数据驱动模块主要进行数据完备性检查,建立相应的函数标签,实现数据驱动机制。每个处理器在数据驱动的工作模式下,可以互不干扰的并行操作。[0019]需要传递的数据将通过片上通信网络通信。片上通信有两种模式:一种是“簇”内通信,即同“簇”的处理器核之间的数据交换;另一种是“簇”间,即先通过通信接口转发到不同的“簇”,然后再送给相应的处理器核。[0020]〈二〉数据驱动模块的结构1.数据匹配机制匹配机制是数据驱动机制的重要组成部分,数据匹配是有效驱动执行单元的前提条件,本发明采用了快速、有效的直接匹配机制。其匹配操作过程见图2:首先,输入队列从通信网络中接收到一个有效的数据封包;然后,控制逻辑就会依据以函数号为基址地址,数据号为偏移地址将此操作数存入操作数存储器中,并且将相应的标志位置1,匹配完成。[0021]2.数据驱动模块的电路结构数据驱动模块电路结构如图3所示。由于通信网络数据包是64位的,这就需要考虑数据位宽,32位宽是比较合理的宽度,因为大部分嵌入式处理器还是32位的,且64位将占用大量的金属通道,会增加线延迟与动态功耗。综合考虑,本设计采用32位宽,64位数据分两周期发送,每周期发送32位。[0022]数据驱动模块实现数据驱动功能。由通信队列、数据包处理模块、参数存储模块、标签更新模块及函数队列组成。通信队列用于缓存来自于片上通信网络器的数据包;数据包处理模块用于控制通信队列接收数据包,并提取数据包中的函数号、数据号与数据;参数存储模块可根据数据包的函数号和数据号生成相应的地址并在对应单元中存储数据;标签更新模块若检测到某个函数号的数据号都“到达”,即该函数的“数据完备”,则将函数号送至函数队列。函数队列用于缓存函数号,等待处理器提取。执行时,处理器根据函数号从参数存储模块提取与该函数号关联的有效数据。其操作过程如下所述:(1)接收来自交点队列型片上通信网络的新数据,将数据暂存FIFO存储中;(2)数据处理模块读取FIFO存储中的数据,取出函数号、数据号,生成相应的地址,将有效数据输出存储到相应的RAM数据存储器中,并生成相应的操作数标志信号。[0023](3)标签更新模块根据接收到的操作数标志信号,由标签生成器生成相应的函数标签,并把标签同预先存储的函数所需数据表做比对,对于所需数据全部有效的函数,生成有效标志位,通知目的CPU,数据完备,驱动目的CPU的执行,并将相应的函数号存储至FIFO函数存储器中,等待CPU读取。[0024](4)一旦该数据被使用过,就将其标志置为无效。[0025]〈三〉分布式交点队列型片上通信结构1.总体结构本发明设计的分布式交点队列型片上通信网络总体结构如图4所示,8X8交点队列型片上通信结构,分别具有8个输入端口Port0_in-Port7_in和8个输出端口Port0_0ut-P0rt7_0ut,主要由三种模块构成:处理器标签过滤器、“簇”标签过滤器、输出端口。其基本结构是:输出端口PortO_out、Port2_out、Port4_out、Port6_out对应的每个输出节点上连接着处理器标签过滤器;输出端口Portl_out、Port3_out、Port5_out、Port7_out对应的每个输出节点上则连接着“簇”标签过滤器,每个输出端口Port0_out-Port7_out上连接着I个输出模块。[0026]此通信网络的工作过程如下:有效数据输入时,各节点的处理器标签过滤器同时检测输入端口送入的数据,当该数据的处理器标签(“簇”号与核号)与自己不匹配时忽略数据,若匹配则进入接受操作,同时发送输出请求信号给相应的输出模块,若收到允许信号则直接把数据送入输出模块,一个时钟周期内,若未收到允许信号则将数据送入交点处缓存队列,等待允许信号到达时再发送;同时,各节点的“簇”标签过滤器检测输入端口送入的数据,当该数据的簇标签与本节点的标签配时,说明数据是发送给本“簇”内的处理器核的,接收此数据;若与本节点“簇”标签不匹配,则“簇”标签过滤器各节点分别查找各自的路由表中的标签,若匹配到路由表中的标签,则将该节点数据根据匹配的结果进行转发,并生成发送请求信号,若匹配不到节点路由表中的标签,则直接忽略此数据。一个时钟周期内,若收到目的地的允许信号则直接把数据通过总线送入输出模块输出,若未收到目的地的允许信号则将数据送入交点处缓存队列,等待允许信号到达时再发送。[0027]2.处理器标签过滤器与“簇”标签过滤器处理器标签过滤器如图5所示,为2?3级可变流水线设计。其工作过程为:当输入端口送入的数据有效时,数据被寄存在第一级寄存器,同时取出处理器标号与处理器标签寄存器(图5中的可配置寄存器)中的值,若匹配(由图5中的比较器产生匹配信号)则产生匹配信号,当匹配信号有效且数据有效或者FIFO非空时产生仲裁请求信号。匹配成功后,数据进入第二个寄存器,等待响应信号;若在下一个时钟到来之前,响应信号已经来到且FIFO为空,则数据直接通过多路选择器a,到达多路选择器b后再与三态门直接发送至数据总线上;若没有响应信号,则数据经过多路选择器a,入FIFOC队列等待仲裁,仲裁后经过多路选择器C后再与三态门直接发送至数据总线上。不经过FIFO时,为2级流水线,经过FIFO时,为3级流水线,此可变流水线结构可以很好实现通信网络的低延迟。由于一个有效数据分两个时钟周期进来,采用了一个触发器与反相器产生一个二分频电路作为匹配信号寄存的使能端,寄存后的匹配信号与数据有效信号相与生成FIFO写使能信号,数据有效匹配时,连续存储(或发送)两个有效数据。[0028]如图6,“簇”标签过滤器结构与处理器标签过滤器结构相当,也是2?3级可变流水线结构,不同之处是匹配时使用了路由表CAM(ContentAddressableMemory)阵列构成了存储阵列来存储路由信息。CAM可以提高匹配速度。其他操作与处理标签结构相同,此处不再重复描述。[0029]3.输出模块如图7所不:输出模块由两部分组成:输出寄存器与仲裁器。输出寄存器用于寄存输出数据。下面重点介绍仲裁器的设计,仲裁器设计的核心是调度算法的选择,对于本设计,轮询匹配算法(Round-Robin,RR),算法具有公平性与简单易实现等优点,是比较好的选择,本设计使用了RR算法,RR以优先级编码器实现循环调度器,比随机调度器运行更快。以图7所示,RR算法主要由3步构成:第一步:请求。每个需发送数据的端口向相应的输出端口发送请求输出信号。在图中,输出端口2与输出端口4都收到2个发送请求。[0030]第二步:响应。每个收到发送请求的输出端口根据轮询调度器的指针状态响应其中一个请求。在图中,输入端口I和端口3同时请求输出端口2输出,而输出端口2与输出端口4的指针都指向1,所以就都响应了输入端口I的请求,同时端口指针在被响应之后就进行更新。[0031]第三步:接受。每个收到响应的输入端口接受一个输出端口的接受响应信号。在此例中,输入端口I就接受了输出端口I的响应,然后指针更新为2。最后整个仲裁过程结束,建立了相应的连接。[0032]本设计的仲裁器,其结构如图8所示,主要由固定优先级编码器、可编程优先级编码器、解码器和一些基本逻辑门与寄存器组成。指针控制电路由优先级寄存器、加法器和选择器组成。[0033]此仲裁器的工作过程如下所述:当使能信号有效,有仲裁请求时。仲裁开始,请求信号进入固定优先级仲裁器仲裁,同时,将优先级寄存器Pr1rity中经解码器解码得到的结果取反后与输入请求相与后进入可编程优先级编码器,得到屏蔽信号与仲裁结果。将屏蔽信号取反后与固定优先级仲裁器结果相与后(实现屏蔽功能)再与可编程优先级编码器的结果相或作为输出结果。若屏蔽无效,取固定优先级编码器结果为输出结果;若屏蔽信号有效,屏蔽掉固定优先级编码器结果,取可编程优先级编码器结果作为输出结果。同时,此结果输入指针更新控制电路进行优先级指针更新。[0034]以上所述仅是本发明的优选实施方式,应当指出,对于本【
技术领域
】的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。【权利要求】1.一种分布式数据驱动交点队列型片上通信结构,其特征是,由8X8交点队列型片上通信结构与实现数据驱动的数据驱动模块组成;通信网络的4个端口分别连接函数驱动模块,另外4个端口用于扩展;数据驱动模块与处理器相连,组成了一个多核处理器单元,称之为“簇”;以“簇”为基本单元进行扩展组成一个处理器阵列;每个处理器在数据驱动模块的驱动工作模式下,互不干扰的并行操作;8X8交点队列型片上通信结构,具有8个输入端口和8个输出端口,包括三种模块:处理器标签过滤器、“簇”标签过滤器、输出端口;其基本结构是:输出端口PortO_oUt、Port2_out>Port4_out、Port6_out对应的每个输出节点上连接着处理器标签过滤器;输出端口Portl_out、Port3_out、Port5_out、Port7_out对应的每个输出节点上则连接着“簇”标签过滤器,每个输出端口上连接着I个输出模块。2.根据权利要求1所述的一种分布式数据驱动交点队列型片上通信结构,其特征是,需要传递的数据通过片上通信网络通信;片上通信有两种模式:一种是“簇”内通信,即同“簇”的处理器核之间的数据交换;另一种是“簇”间,即先通过通信接口转发到不同的“簇”,然后再送给相应的处理器核。3.根据权利要求1所述的一种分布式数据驱动交点队列型片上通信结构,其特征是,数据驱动模块由通信队列、数据包处理模块、参数存储模块、标签更新模块及函数队列组成;通信队列用于缓存来自于片上通信网络器的数据包;数据包处理模块用于控制通信队列接收数据包,并提取数据包中的函数号、数据号与数据;参数存储模块根据数据包的函数号和数据号生成相应的地址并在对应单元中存储数据;标签更新模块若检测到某个函数号的数据号都到达,即该函数的数据完备,则将函数号送至函数队列;函数队列用于缓存函数号,等待处理器提取;执行时,处理器根据函数号从参数存储模块提取与该函数号关联的有效数据。4.根据权利要求1所述的一种分布式数据驱动交点队列型片上通信结构,其特征是,有效数据输入时,各节点的处理器标签过滤器同时检测输入端口送入的数据,当该数据的处理器标签与自己不匹配时忽略数据,若匹配则进入接受操作,同时发送输出请求信号给相应的输出模块,若收到允许信号则直接把数据送入输出模块,一个时钟周期内,若未收到允许信号则将数据送入交点处缓存队列,等待允许信号到达时再发送;同时,各节点的“簇”标签过滤器检测输入端口送入的数据,当该数据的簇标签与本节点的标签匹配时,接收此数据,若与本节点“簇”标签不匹配,则“簇”标签过滤器各节点分别查找各自的路由表中的标签,若匹配到路由表中的标签,则将该节点数据根据匹配的结果进行转发,并生成发送请求信号,若匹配不到节点路由表中的标签,则直接忽略此数据。5.根据权利要求1所述的一种分布式数据驱动交点队列型片上通信结构,其特征是,处理器标签过滤器工作过程为:当输入端口送入的数据有效时,数据被寄存在第一级寄存器,同时取出处理器标号与处理器标签寄存器中的值,若匹配则产生匹配信号,当匹配信号有效且数据有效或者FIFO非空时产生仲裁请求信号;匹配成功后,数据进入第二个寄存器,等待响应信号,若在下一个时钟到来之前,响应信号已经来到且FIFO为空,则数据直接通过多路选择器与三态门直接发送至数据总线上;若没有响应信号,则数据进入FIFO队列等待仲裁输出。6.根据权利要求1所述的一种分布式数据驱动交点队列型片上通信结构,其特征是,输出模块由两部分组成:输出寄存器与仲裁器;输出寄存器用于寄存输出数据;仲裁器采用轮询匹配算法,以优先级编码器实现循环调度器,包括以下步骤:第一步,请求:每个需发送数据的端口向相应的输出端口发送请求输出信号;第二步,响应:每个收到发送请求的输出端口根据轮询调度器的指针状态响应其中一个请求;同时端口指针在被响应之后进行更新;第三步,接受:每个收到响应的输入端口接受一个输出端口的接受响应信号;整个仲裁过程结束,建立了相应的连接。【文档编号】G06F13/40GK104182373SQ201410454893【公开日】2014年12月3日申请日期:2014年9月10日优先权日:2014年9月10日【发明者】王镇,张磊,赵忠惠,陈亚宁,汪健申请人:中国兵器工业集团第二一四研究所苏州研发中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1