可重构异构化PEA互连方法与流程

文档序号:24235735发布日期:2021-03-12 13:07阅读:253来源:国知局
可重构异构化PEA互连方法与流程

本发明涉及路由算法(routingalgorithm)、超大规模集成电路(vlsi)和可重构计算(reconfigurablecomputing)等技术领域,尤其涉及可重构异构化pea互连方法。



背景技术:

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

可重构计算的概念在上世纪60年代被提出,但是受限于当时的集成电路工艺水平,直到上世纪90年代可重构计算才重新得到重视,成为学术界和产业界的热点。可重构计算的计算方式包括两类突出特点:一是制造后芯片的定制能力,即硅实现后计算功能仍可按需改变,区别于传统的集成电路;二是能实现很大程度上的算法到数据通路上的空间映射,区别于通用处理器的时域映射。

在这些背景下,基于粗粒度可重构架构(coarse-grainedreconfigurablearchitecture,cgra)的处理器应运而生。区别于细粒度的运算单元为1bit的fpga或cpld,cgra的最小可配的运算单元为8bit或16bit,因此被称为粗粒度。cgra的数据通路一般包括运算单元阵列、存储器、数据接口和配置接口等四个部分。配置接口从控制通路上获取控制信号和配置字,同时也送出状态量。配置接口继而解析配置字,配置运算单元阵列的功能,调度阵列上任务的执行顺序。运算单元阵列通常包含大量的运算单元,这些运算单元由算数逻辑单元和寄存器组成,以某种方式互相连接,实现并行计算。

由于阵列单元存在大量重复的情况,因此在所有单元中加入一个面积很大但是使用频率较低的电路,例如乘法器,是一个很不经济的行为,这就涉及到了异构的概念。异构的概念可以分为两类:一类是广义上,从功能的角度出发,算法映射需要不同的结构,入路由单元、缓存结构、控制器等,它们和计算单元不同但又不可或缺;另一类是从效率的角度出发,优化功耗和面积等。在理想的情况下,设计一个大而全的计算单元是灵活的,但是有些功能的使用率很低,闲置也会导致面积和功耗的额外浪费,在该情况下应该对单元进行适当裁剪以得到基本运算单元的异构形式。

互连网络是用来实现计算机系统内部多个处理机或多个功能部件之间相互连接的网络,它通常是由有向边或无向边连接的有限个结点组成的。对于并行处理系统,互连网络已成为其核心组成部分。就阵列单元的互连而言,计算单元行或列之间多采用总线、mesh连接(邻域相连)和crossbar结构(输入和输出之间两两相连)。总线和mesh结构代价较低,但是灵活性比crossbar差。根据乘法原理,crossbar结构的硬件开销是非常大的,但是其层间灵活性又被算法dfg图映射过程普遍。当阵列规模增加到一定程度时,crossbar的全互连代价可能无法承受,尤其在阵列的输入输出端。



技术实现要素:

本发明实施例提供一种可重构异构化pea互连方法,pea结构包括4个可重构处理单元rpu,每个rpu包含4个运算单元阵列pea,每个pea阵列包含8×8个处理单元pe,其中,8×8个pe单元为异构pe,异构pe包括28个访存pe和64个计算pe,其中,28个访存pe包括8个第一访存pe和20个第二访存pe,8个第一访存pe为8×8个pe单元中的第1行的8个pe单元,20个第二访存pe为第8行的8个pe单元和第2行至第7行每行中的第一个pe单元和最后一个pe单元;64个计算pe包括第一计算pe和第二计算pe,所述第二计算pe为对应的28个访存pe,第一计算pe为剩余的36个pe;

可重构异构化pea互连方法包括:

28个访存pe的互连方式:将28个访存pe分为顶角pe和边沿pe,基于顶角pe和边沿pe,采用优化的mesh互连实现28个访存pe的互连;

64个计算pe的互连方式:对于第一计算pe中的任一个pe连接相邻的pe和第二计算pe中与任一个pe同行和同列的pe。

本发明实施例中,与现有技术中传统的邻域mesh互连结构简单,但是不能满足频繁的访存要求的技术方案相比,通过将28个访存pe分为顶角pe和边沿pe,基于顶角pe和边沿pe,采用优化的mesh互连实现28个访存pe的互连;对于第一计算pe中的任一个pe连接相邻的pe和第二计算pe中与任一个pe同行和同列的pe,对异构化的pe互连组织方式进行相应的优化和改变,可以满足频繁的访存要求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中pea模块的内部结构示意图;

图2为本发明实施例中异构化的pe示意图;

图3为本发明实施例中可重构异构化pea互连方法示意图;

图4为本发明实施例中pe结构原理图;

图5为本发明实施例中访存pe的互连示意图;

图6为本发明实施例中计算pe的互连示意图;

图7为本发明实施例中多个pea阵列之间通过sm示意图;

图8为本发明实施例中pea_data_control(数据控制器)的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在介绍pea互连组织方式之前,首先要了解pea本身的结构。为了达到cgra的运算能力不低于2000gops@8-bit的要求,通过计算,粗粒度处理单元pe(processingelement)的数目至少为1000个。为了避免单个超大的pea阵列的出现,经过综合考虑之后,本发明采用了4个可重构处理单元rpu,每个rpu包含4个运算单元阵列pea,每个pea阵列包含8×8个pe单元。

pea模块主要实现以下几个功能:

1.实现阵列内部pe的集成和互连;

2.实现pea对阵列片上sharedmemory的访问;

3.实现pea和协处理器接口对阵列全局寄存器堆的访问;

4.实现外部对阵列片上sharedmemory的读写访问,主要包括数据cache和主控总线(如dmac和riscv);

5.实现协处理器对配置cache的访问和对pea阵列各pe进行配置。

pea模块的内部结构如图1所示,pea模块内部集成了一个8×8pearray、pe的全局寄存器globalreg、协处理器接口coprocessorinterface、数据控制器datacontrol、数据共享存储器sharedmemory、处理单元阵列控制器peacontrol和配置控制器contextcontrol。其中,协处理器接口coprocessorinterface的主要功能在peainterface中实现。

下面介绍异构化的pe。

在异构计算系统上进行的并行计算通常称为异构计算。人们已从不同角度对异构计算进行定义:异构计算是一种特殊形式的并行和分布式计算,它或是用能同时支持simd方式和mimd方式的单个独立计算机,或是用由高速网络互连的一组独立计算机来完成计算任务。它能协调地使用性能、结构各异地机器以满足不同的计算需求,并使代码(或代码段)能以获取最大总体性能方式来执行。

对于处理单元pe来说,如果每个pe都采用相同的结构,那么需要的访存或计算资源会急剧增多,同时计算效率也会下降。

图2为异构化的pe示意图,如图2所示,只在pea的四周边沿的pe支持访存操作,能够从阵列共享的存储器sharedmemory中取数或者存储计算结果。异构的pe功能如下:

1.访存pe:包括8个第一访存pe(图2中交叉虚线所在的pe)和20个第二访存pe(图2中一条虚线所在的pe),共28个。8个第一访存pe为8×8个pe单元中的第1行的8个pe单元,20个第二访存pe为第8行的8个pe单元和第2行至第7行每行中的第一个pe单元和最后一个pe单元。

8个第一访存pe既可以访问本pea的sm(sharedmemory),又可以访问相邻一个pea的sm;20个第二访存pe只能访问本pea的sm。

2.计算pe:阵列所有pe,共64个,包括第一计算pe和第二计算pe,所述第二计算pe为对应的28个访存pe,第一计算pe为剩余的36个pe。所有pea上的pe都可以进行计算,但是边沿的28个访存pe不能进行除法和取模(16-bit的非流水执行)运算。

互连的方法主要有总线连接、mesh连接和crossbar结构。

1.总线连接:总线(bus)是指计算机组件间规范化的交换数据的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。总线连接的特点有:互连简单,所有pe都可以通过特定的总线协议进行互连;随着pe的增多,总线节点随之增多,可能导致每个pe的传输速度下降;扩展简单;维护容易,单个节点失效不影响整个互连网络,但是总线失效会导致整个网络瘫痪。

2.mesh连接:网状网络(meshnetwork)是一种在网络节点间通过动态路由的方式来进行数据和控制指令的传送。网状网络与一般网络架构的差异处在于,所有节点可以透过多次跳跃进行数据通信,但它们通常不是移动式装置。网状网络可以视为是一种点对点的架构。移动式点对点网络与网状网络在架构上是非常相似的,只是移动式点对点网络还必须随时更新组态以因应各节点移动的情形。

3.crossbar结构:也称为交叉开关矩阵或纵横式交换矩阵。crossbar的结构相对简单,共享交换架构中的线路卡到交换结构的物理连接简化为点到点连接,实现起来更加方便,从这个意义上来说,可以认为所有的crossbar在内部是无阻塞的,因为它可以支持所有端口同时交换数据。

基于上述描述,本发明提出一种可重构异构化pea互连方法,如图3所示,pea结构包括4个可重构处理单元rpu,每个rpu包含4个运算单元阵列pea,每个pea阵列包含8×8个处理单元pe,其中,8×8个pe单元为异构pe,异构pe包括28个访存pe和64个计算pe,其中,28个访存pe包括8个第一访存pe和20个第二访存pe,8个第一访存pe为8×8个pe单元中的第1行的8个pe单元,20个第二访存pe为第8行的8个pe单元和第2行至第7行每行中的第一个pe单元和最后一个pe单元;64个计算pe包括第一计算pe和第二计算pe,所述第二计算pe为对应的28个访存pe,第一计算pe为剩余的36个pe;

可重构异构化pea互连方法包括:

28个访存pe的互连方式:将28个访存pe分为顶角pe和边沿pe,基于顶角pe和边沿pe,采用优化的mesh互连实现28个访存pe的互连;

64个计算pe的互连方式:对于第一计算pe中的任一个pe连接相邻的pe和第二计算pe中与任一个pe同行和同列的pe。

在本发明中,是经过权衡与折中,在pea内部的pe互连采用的是邻域相连的mesh互连(即每个pe和上下左右的pe互连)。这种互连方式相对于crossbar的方式硬件开销更小,相对于总线的方式则速度更快。为了能够实现粗粒度计算处理单元阵列高效的计算能力,处理单元必须支持与其他处理单元和memory等之间的灵活数据传输,而又不会带来太多的互联面积和功耗开销,对粗粒度计算处理阵列典型2-dmesh互联形式进行优化改进,主要对内部计算pe与边缘访存pe间的互连方式进行优化。

在本发明实施例中,28个访存pe的互连方式和64个计算pe的互连方式为intra-pea的互连,所谓intra-pea的互连,是指pea模块内部的8×8个pe的互相连接。基于异构化的pe,采用mesh的互连结构,并针对异构化pe的特点进行了优化调整。目前本粗粒度计算处理单元阵列提供了9种其他pe数据的路由,分别是:

1.相邻的4个pe(上、下、左、右);

2.同行和同列两端的pe(上端、下端、左端、右端);

3.本身pe;

同时,该互连结构还支持脉动执行的部分和结果和一个计算分量(输入寄存器和输出寄存器)同时传递,都能传递给邻近pe的输入寄存器的2个32bit的数据输出端口,其增加的“同行、同列两端pe”相连,能够让pea阵列进行连续的脉动乘累加运算。

图4为pe内部的结构原理图,如图4所示,pe内部的核心部分有:处理单元控制器pecontrol、配置存储器(contextmemory,cm)、局部寄存器(localreg,lr)、pe路由器router、debug模块deb(调试模块)以及pe执行单元,pe执行单元包括算数逻辑单元(arithmeticlogicunit,alu)、乘法器(multiplier,mul)和存储单元(loadstoreunit,lsu)。其中,pe路由器router负责pe之间,也就是intra-pea的互连组织。

根据上述介绍的异构pea,下面对intra-pea的具体互连形式和router路由的编码进行详细介绍。

①pea阵列访存pe的互连形式,即28个访存pe的互连方式,如图5所示:

将28个访存pe分为4个顶角pe,所述4个顶角pe分别为8×8个pe单元中的第1行的第一个pe、第1行的第8个pe、第8行的第一个pe和第8行的第8个pe,28个访存pe中剩余的pe为边沿pe;

顶角pe按照如下方式实现28个访存pe的互连:

连接与顶角pe处于同行和同列距离为1、2、3和7的pe;

边沿pe按照如下方式实现28个访存pe的互连:

对处于第1行和第8行的边沿pe,连接与该边沿pe相邻的pe和与该边沿pe处于同一行的顶角pe,连接与该边沿pe处于同列的距离为1、2、3和7的pe;

对处于第1列和第8列的边沿pe,连接与该边沿pe相邻的pe和与该边沿pe处于同一列的顶角pe,连接与该边沿pe处于同行的距离为1、2、3和7的pe。

具体的路由router编码如表1、表2、表3、表4、表5和表6所示,其中对自身pe的编码已经省略:

表1左上顶角pe

表2右上顶角pe

表3左下顶角pe

表4右下顶角pe

表5上、下边沿pe(非顶角)

表6左、右边沿pe(非顶角)

②pea阵列内部计算pe的互连形式,即64个计算pe的互连方式,如图6所示,它同样也是改进型的mesh互连,即除了上下左右之外,还与上端、下端、左端和右端的访存pe互连,使得运算结果可以传递出去。

64个计算pe的互连方式为:

对于处于第2行至第4行、第2列至第4列之间的第一计算pe中,任一pe连接相邻的4个pe,连接处于同行左端的访存pe,不连接处于同行右端的访存pe,连接处于同列上端的访存pe,不连接处于同列下端的访存pe;

对于处于第2行至第4行、第5列至第7列之间的第一计算pe中,任一pe连接相邻的4个pe,连接处于同行右端的访存pe,不连接处于同行左端的访存pe,连接处于同列上端的访存pe,不连接处于同列下端的访存pe;

对于处于第5行至第7行、第2列至第4列之间的第一计算pe中,任一pe连接相邻的4个pe,连接处于同行左端的访存pe,不连接处于同行右端的访存pe,连接处于同列下端的访存pe,不连接处于同列上端的访存pe;

对于处于第5行至第7行、第5列至第7列之间的第一计算pe中,任一pe连接相邻的4个pe,连接处于同行右端的访存pe,不连接处于同行左端的访存pe,连接处于同列下端的访存pe,不连接处于同列上端的访存pe。

具体的路由router编码如表7、表8、表9和表10所示,其中对自身pe的编码已经省略:

表7左上内部pe

表8右上内部pe

表9左下内部pe

表10右下内部pe

在本发明实施例中,还包括:inter-pea的互连。inter-pea的互连是指4个pea阵列通过每个pea上的sharedmemory和访存pe进行数据交互,实现了多个pea阵列的数据交互和互连。通过这种结构,还可以实现不同pea和sm之间的任务流水执行。sm分为16个独立的bank,每个pea的上边沿的8个pe既可以访问自己的sm,又可以访问相邻pea的sm的全部16个bank。

如图7所示,pea1除了自身的sm1可以访问之外,还可以访问相邻的sm2。由于sm有16个bank,每个bank均为256×32,即1kb大小,因此这8个pe中每个pe可访问的空间共32kb大小。这种结构实现了pea之间的数据直接交互,提高片上数据带宽和吞吐率。基于pea和sm之间环形的数据交互方式,可以实现不同pea之间的一种流水的执行方式。

inter-pea的这种环形结构主要是通过pea内部的片上数据控制器pea_data_control实现的。如图8所示给出了其基本结构原理框图:

shmdc模块通过总线与主控(torpu_dmarpu_risc-v)和cache(tol1cache)进行交互;sharedmem用sram实现,共16个bank,每个bank的规格是256×32双端sram。仲裁器pea_arbiter.v接收来自pea1和pea2的请求,如果没有bank冲突,则两个请求均可访问内部的sram。

本发明实施例中,与现有技术中传统的邻域mesh互连结构简单,但是不能满足频繁的访存要求的技术方案相比,通过将28个访存pe分为顶角pe和边沿pe,基于顶角pe和边沿pe,采用优化的mesh互连实现28个访存pe的互连;对于第一计算pe中的任一个pe连接相邻的pe和第二计算pe中与任一个pe同行和同列的pe,对异构化的pe互连组织方式进行相应的优化和改变,可以满足频繁的访存要求。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1