CN104750659A - 一种基于自动布线互连网络的粗粒度可重构阵列电路 - Google Patents
一种基于自动布线互连网络的粗粒度可重构阵列电路 Download PDFInfo
- Publication number
- CN104750659A CN104750659A CN201310731152.4A CN201310731152A CN104750659A CN 104750659 A CN104750659 A CN 104750659A CN 201310731152 A CN201310731152 A CN 201310731152A CN 104750659 A CN104750659 A CN 104750659A
- Authority
- CN
- China
- Prior art keywords
- bunch
- processing unit
- data
- interconnection
- interconnection network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于自动布线互连网络的粗粒度可重构阵列电路,其包括:多个处理单元簇:每个处理单元簇包括多个处理单元,其用于将输入至本处理单元簇中的数据分配给相应的处理单元进行处理,并将处理单元的处理结果输出;簇间互连网络:其用于在各个处理单元簇间交换数据。所述处理单元簇还包括簇内互连网络,其用于在所述处理单元簇内的各个处理单元之间交换数据,并将来自其它处理单元簇的输入数据分配给相应的处理单元。
Description
技术领域
本发明涉及嵌入式可重构计算结构技术领域,尤其涉及一种基于自动布线互连网络的粗粒度可重构阵列电路。
背景技术
传统上,算法的实现方式有两种,一种是通过专用集成电路以硬件电路的方式,另外一种通过通用处理器以指令流的方式。前者具有高性能但是功能灵活性较低,后者正好相反,性能较低但是有很高的功能灵活性。可重构结构是一种能够将这二者的优势结合在一起的结构,其既具有较高的性能,又具有适中的功能灵活性。根据重构的粒度,可重构结构可以分为粗粒度可重构结构和细粒度可重构结构。细粒度可重构结构的功能单元和互连网络按位配置,比如现场可编程门阵列结构(Field-Programmable Gate Array,FPGA),其中功能单元主要是查找表(Look-Up Table,LUT)和寄存器,这种结构在理论上可以实现任意数字逻辑。粗粒度可重构结构(Coarse-Grained Reconfigurable Array,CGRA)的处理单元和互连网络按字配置,处理单元是算术逻辑运算单元(Arithmetic and Logic Unit,ALU),这种结构适合于实现字级(Word-level)操作和数据通路。在映射计算密集型算法时,比如快速傅里叶变换(Fast Fourier Transform,FFT)和离散余弦变换(Discrete Cosine Transform,DCT),CGRA在配置位的数量、配置时间、面积效率和功耗效率等方面比细粒度可重构结构更具有优势。
CGRA一般是由按照一定网络拓扑结构连接在一起的处理单元(Processing Element,PE)阵列组成。一般来讲,处理单元由三部分组成:用于执行字级操作的算术运算单元;用于存储中间值的寄存器堆;用于选择操作数的输入选择器。现有的CGRA多采用类似于二维网格形式的互连网络拓扑结构,比如日本东芝的REMARC、比利时IMEC的ADRES、美国华盛顿大学的MorphoSys、日本庆应大学的Cool Mega Array以及国防科技大学的lspCGRA等。在这类结构中,PE只能与相邻的而非所有的PE 建立连接。图1(a)~1(c)中列举了三种具有代表性的二维网格形式的互连网络拓扑结构。图1(a)采用于REMARC,在此结构中,PE与同一行/列中离得最近的四个PE连接,同一行/列的PE构成一个环路。图1(b)采用于ADRES,在此结构中,PE可与同一行/列中离得最近和次近的PE连接。图1(c)采用于MorphoSys中,在此结构中,同一行/列的PE可以任意连接。由于基于二维网格形式网络拓扑结构的CGRA不能保证任意一对PE之间的连接,因此这类结构需要复杂的布局和布线算法。为了使CGRA中的任意一对PE均可以建立连接关系,Ricardo等提出了一种将二维网格形式的互连网络拓扑结构和多级互连网络(Multistage Interconnection Network,MIN)结合在一起的网络拓扑结构,如图1(d)所示,这种结构能够极大的简化CGRA的布局布线算法的难度,但是,由于这种结构采用的MIN是一种具有自动布线特性但是阻塞的网络,因此需要为其配备一个布线算法,通过这种算法重复查找不存在阻塞的路径,直到查找到为止。而且,由于MIN会引入较大的路径延迟,因此这种结构的最高工作频率与二维网格结构的CGRA相比有所下降。
可见,现有技术的粗粒度可重构阵列具有以下技术缺陷:
(1)基于二维网格形式网络拓扑结构的CGRA无法保证任意一对PE之间的连接和数据交换,而不相连的PE可能会导致在CGRA上映射的算法无法获取最佳性能。
在CGRA上映射实现算法,一般是以数据流图(DFG)的形式实现的。DFG由结点(Node)和边(Edge)组成,每个结点代表一个操作,边用于表示结点与结点的数据依赖关系以及数据的流向。依据PE之间的连接关系,CGRA可以转换成时空图。CGRA上的算法映射可以理解成DFG与时空图的匹配,DFG的每个结点相当于一个PE,每条边相当于CGRA中的互连线。理想状态下,PE处于全连通的状态,DFG的每条边均能在时空图中找到对应的互连线,此时映射结果最理想,性能表现最佳,算法执行所需时钟周期数和占用的PE资源最少。然而,过多的互连线会导致过大的面积开销,为了平衡性能和面积开销,往往需要合理的牺牲互连度,因此现有的CGRA多采用类似于二维网格形式的互连网络拓扑结构。但是这类结构导致CGRA中存在不相连的PE,如图1(a)~1(c),这三种拓扑结构均 存在不相连的PE,比如,图1(a)中的PE(1,0)和PE(0,1),图1(b)中的PE(1,0)和PE(2,1)以及图1(c)中的PE(0,0)和PE(1,1)。这些不相连的PE可能会导致映射的算法性能下降。以在图1(a)上映射数字信号处理领域常见的位倒序(Bit-Reverse)寻址为例,其DFG如图2(a)所示。此DFG包含两级,每级8个顶点,每级需要8个PE与这些顶点对应。将这8个PE按照时间展开,选取图1(a)所示的网络拓扑结构为例,可以得到图2(b)所示的时空图,虚线所示的互连线为此拓扑结构所有支持的连接关系。映射的过程是DFG和时空图匹配的过程,从图中可以发现图1(a)中的边2,4,5,7无法在图2(b)中找到对应的互连线,因此图1(a)的拓扑结构无法实现直接映射图2(a)所示的DFG。解决办法是增加额外的时钟周期,占用额外的PE资源。图2(b)中实线标示的部分为成功映射图2(a)的一种解决方案,其中灰色标注的PE用作中间寄存器。可见,成功映射此DFG,需要两倍的时钟周期和占用两倍的PE资源。将图2(a)的DFG映射到图1(b)和1(c)所示的其他拓扑结构上也可以得到类似的结果。
(2)基于二维网格形式的网络拓扑结构加全局MIN的CGRA,虽能保证任意一对PE的连接,但是需要以增加面积开销和功耗,降低最高工作频率为代价。
MIN包含多级,每级包含多个的小尺寸的交叉网络(Crossbar),级与级之间通过互连线连接。以采用二输入/二输出的Crossbar构建N输入/N输出(N=2m)的MIN为例,MIN由Log2N级组成,每级包含N/2个二输入/二输出的Crossbar,级与级之间包含N条互连线。因此,与基于二维网格形式的互连网络拓扑结构的CGRA相比,此种结构会增加:Log2N×N/2个二输入/二输出的Crossbar的面积开销,Log2N级的路径延时以及Log2N×N条互连线的翻转带来的动态功耗。
(3)现有CGRA的PE包含的输入选择器的尺寸较大,所需的配置信息较多,并且在操作数选择方面存在浪费。
互连线资源增加会导致的面积开销的增大以及配置位的增多。一般来说,互连线越多意味着输入到PE的可选操作数就越多。在PE内部,操作数的选择是通过输入选择器实现的,操作数越多,输入选择器的尺寸就越大,所需的配置位也就越多。每个PE中均包含了两个同样尺寸的输入选 择器,而PE内部的ALU只需要两个操作数,因此操作数选择存在浪费。
发明内容
(一)要解决的技术问题
鉴于上述技术问题,本发明旨在提出一种既能够提供丰富的互连线资源,保证任意一对处理单元之间的连接和交换数据,又不需要因为互连线资源的增多而付出较高代价的粗粒度可重构阵列结构。
(二)技术方案
根据本发明的一个方面,提供了一种一种基于自动布线互连网络的粗粒度可重构阵列电路,其包括:
多个处理单元簇:每个处理单元簇包括多个处理单元,其用于将输入至本处理单元簇中的数据分配给相应的处理单元进行处理,并将处理单元的处理结果输出;
簇间互连网络:其用于在各个处理单元簇间交换数据。
其中,所述处理单元簇还包括簇内互连网络,其用于在所述处理单元簇内的各个处理单元之间交换数据,并将来自其它处理单元簇的输入数据分配给相应的处理单元。
其中,所述簇内互连网络包括第一基本互连单元和第二基本互连单元,每个基本互连单元的输入和输出端口数目与该处理单元簇内的处理单元数目相同;其中,所述第一基本互连单元用于在簇内处理单元间的数据交换,所述第二基本处理单元用于将来自其它处理单元簇的数据分配给簇内处理单元进行处理。
其中,来自簇内处理单元的数据包括标签和数据,而来自其它处理单元簇的数据包括多组标签和数据,其中标签用于指示数据的输出端口号,每个输出端口对应接入一个处理单元。
其中,所述处理单元的输入数据来源包括:外部数据和簇内和/或簇间互连网络交换的数据。
其中,所述基本互连单元包括多输入/输出的Omega多级互连网络。
其中,所述基本互连单元还包括预处理单元,所述预处理单元用于检测输入数据的目标输出端口的排列方式是否会造成阻塞,并在检测为阻塞 时调整所述排列方式。
其中,所述簇间互连网络包括多个输入和输出端口,每个输入和输出端口均连接至一个处理单元簇。
其中,所述处理单元包括两个输出端口,其中一个输出端口用于将数据输出至簇内互连网络,而另一个输出端口用于将数据输出至簇间互连网络。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
(1)基本互连单元、和粗粒度;
本发明采用一种具有自动布线和非阻塞特性的基本互连单元构建整个互连网络。自动布线的特性来源于基本互连单元中的四输入/四输出的Omega网络,这种特性为互连网络提供了简易的布线控制机制。非阻塞的特性来源于在Omega网络第一级之前插入的预处理单元,这种特性保证了任意一对输入输出均可以建立连接关系。由于基本互连单元采用的Omega的尺寸较小,因此由基本互连单元导致的路径延迟和面积开销都很小。
(2)处理单元簇:
本发明中的处理单元簇将多个处理单元整合在一起。这种整合方式使簇和处理单元之间形成了层次关系,而且使每个簇均可以作为一个子模块单独工作,因此这种整合方式在实现任务级并行方面有较大优势。由于簇与处理单元之间的层次关系,簇的控制机制非常简易。通过配置信息,能够很容易地控制整个簇是否需要工作,如果不需要工作,直接关闭即可,这点对于降低功耗方面有较大益处。另外,在本发明中,处理单元的操作数的选择转交给了簇内互连网络,因此处理单元内部的输入选择器的尺寸减小,从而减少了处理单元所需的配置信息,以及由于输入选择器导致的面积开销。
(3)可重构阵列
本发明中的粗粒度可重构阵列结构将多个处理单元簇通过簇间互连网络连接在一起,构成了一种层次型的网络拓扑结构。这种网络拓扑结构在实现任务级并行方面有较大的优势:每个簇单独执行一个任务,多个任 务同时执行,任务之间的数据交换通过簇间互连网络实现。而且,通过簇间和簇内互连网络的联合,可以实现阵列内的任意一对处理单元均可以建立连接和交换数据,并且这种连接关系的建立的控制非常简易,从而降低在阵列上映射算法的难度。
附图说明
图1(a)~(d)为现有技术中粗粒度可重构阵列的网络拓扑结构示例图;
图2(a)~(b)为现有技术中在粗粒度可重构阵列上映射算法的示意图;
图3为本发明实施例中粗粒度可重构阵列结构的示意图;
图4为本发明实施例中粗粒度可重构阵列结构的全局数据总线图;
图5(a)~(b)为本发明实施例中处理单元簇的硬件结构和数据格式的示意图;
图6(a)~(b)为本发明实施例中处理单元的硬件结构的示意图;
图7(a)~(f)为本发明实施例中基本互连单元硬件结构的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。
本发明提出了一种基于自动布线互连网络的粗粒度可重构阵列结构。
根据本发明的一个示例性实施例中,图3示出了本发明提出的一种基于自动布线互连网络的粗粒度可重构阵列结构的框图。
如图3所示,本发明提出的可重构阵列结构包括:多个处理单元簇和一个簇间互连网络。本实施例中,以四个处理单元簇A~D和一个簇间互连网络E为例加以说明。其中,每个处理单元簇包括一个簇内互连单元和多个处理单元,其为簇间互连网络E提供一个输入。簇间互连网络E具有 多个输出,每个输出分别作为处理单元簇的一个输入。所述簇间互连网络E用于簇与簇的数据交换。
图4示出了本发明中粗粒度可重构阵列结构的全局数据总线图。如图4所示,两条全局数据总线GB_1和GB_2为每个处理单元提供两个输入。总线GB_1和GB_2分别为每个簇提供两个位宽为4N的数据,这些数据在簇内被分割为位宽为N的数据,并分布给各个处理单元。
根据本发明的一个示例性实施例,图5示出了本发明提供的处理单元簇。如图5所示,所述处理单元簇包括一个簇内互连网络、多个处理单元、一个输入端口和一个输出端口。输入端口接收两种数据来源,即来自于其他处理单元簇的数据和来自于簇本身的数据。这两种来源均是通过簇间互连网络交换得来。输出端口输出的数据可以通过簇间互连网络交换到其他簇,也可以传回簇本身。
所述簇内互连网络负责为每个处理单元提供两个操作数,以及处理单元之间的数据交换,其结构与簇间互连网络基本相同,均由基本互连单元构成,但是也存在差别:簇内互连网络包含两个基本互连单元,而簇间互连网络包含一个基本互连单元;簇间互连网络与簇内互连网络传输的数据位宽不一样。簇间互连网络传输的数据的位宽约为簇内互连网络的四倍。簇内互连网络由两个基本互连单元组成,每个基本互连单元的输入和输出端口的数目与所述处理单元的数目相等,本实施例中均为4。第一基本互连单元负责簇内处理单元之间的数据交换,第二基本互连单元将输入端口输入的数据分布给各个处理单元。第一基本互连单元的四个输入分别来自于四个处理单元的左输出端,输入数据的格式如图5(b)中的②所示,包含标签和数据,标签用于指明需要将输入的数据传送到基本互连单元的哪个输出端口,数据是需要传递到处理单元的数据。第一基本互连单元的四个输出分别连接到处理单元的左输入端,这样设计是为了保证簇内处理单元之间的任意连接。第一基本互连单元输出的数据格式如图5(b)中的①所示,仅包括数据,不再包含标签。第二基本互连单元的四个输入由输入端口输入的数据分割而来,输入端口输入的数据格式如图5(b)中的③所示,由多组标签和数据组合而成,经过分割之后数据格式如图5(b)中的②所示,仅包括一个标签和一个数据,分割之后的四个部分分别作为第二基本互连单 元的四个输入。第二基本互连单元的四个输出分别传送到处理单元的右输入端,输出数据的格式如图5(b)中的①所示。
所述处理单元用于执行一些算术和逻辑运算,计算过程中所需的操作数由簇内互连网络提供,这样的设计有两个优势:1)处理单元内部无需再对操作数进行选择;2)通过簇内互连网络实现多个处理单元的操作数选择的共享,从而可以节省由操作数选择造成的面积开销。
图6示出了本发明中所述处理单元的结构示意图。如图6(a)所示,本发明中的处理单元包含四个输入和两个输出。输入的来源有两种:全局数据总线和簇内互连网络。从所述全局数据总线输入的数据是从外部数据存储器载入的待处理的数据,从簇内互连网络输入的数据是经过处理单元运算和簇内/簇间互连网络交换的数据,可以理解为计算过程中产生的数据。处理单元的左输出连接到簇内互连网络,右输出和簇内其他处理单元的右输出拼接在一起连接到簇间互连网络,即输入到簇间互连网络的四个输入是由簇内四个处理单元的输出信号拼接而成,并包含一个数据标签,如图5(a)中所示。
本发明中处理单元内部的硬件结构由六部分组成:输入选择器11、算术运算单元12、寄存器分配器13、寄存器堆14、输出选择器15以及配置寄存器16。其中,输入选择器11用于选取操作数,选取结果共有四种组合:两个操作数均来源于全局数据总线,两个操作数分别来源于全局数据总线和簇内互连网络,两个操作数分别来源于簇内互连网络和全局数据总线,两个操作数均来源于簇内互连网络。算术运算单元12用于执行常见的算术和逻辑运算,比如加,减,乘,移位,与,或,异或,取反等。寄存器分配器13将算术运算单元输出的结果分配到寄存器堆14中的某个寄存器中,本实施例中,寄存器堆14中包括四个寄存器;通过这种形式的寄存,算术运算单元输出的结果既可以用于下一个周期,也可以暂时不用,等需要时再通过输出选择器15从寄存器中取出。处理单元的整个计算过程为:1)输入选择器选取操作数;2)操作数输入到算术运算单元计算;3)计算结果通过寄存器分配器分配到某个寄存器;4)寄存器0中的值直接传出到左输出,而右输出需要通过输出选择器从四个寄存器中选取。两个输出均会被打上标签,左输出包含一个标签,因为只经过一级基本互连 单元(簇内互连网络),而右输出包含两个标签,因为需要经过两级基本互连单元:先经过簇间互连网络,再经过簇内互连网络(如图5中所示)。配置寄存器16用于存储处理单元的配置信息,这些配置信息主要包括控制输入选择器的操作数选择配置位,控制算术运算单元的功能选择配置位,控制寄存器分配器的配置位,控制输出选择器的配置位,以及左/右输出端口的标签。
根据本发明的一个示例性实施例中,图7示出了本发明中提供的一种基本互连单元结构图。这种基本互连单元结构具有自动布线和非阻塞的特性,其基本结构包括两个部分:四输入/四输出的Omega多级互连网络和预处理单元。
如图7(b)所示,基本互连单元包含4个输入IN_0~IN_3和4个输出OUT_0~OUT_3。输入到基本互连单元的数据格式如图7(a)所示,其包含两个部分:标签和数据。标签用于指明目标输出端口的编号,数据是需要传递到处理单元的数据。在基本互连单元中,数据交换的实现是通过检测这些标签,然后根据标签值将数据从相应的输出端口输出。交换的整个过程无需关注数据,只需检测标签。而且,基本互连单元支持目标输出端口编号的所有排列方式(共24种),输入数据均以无阻塞地、准确地传送到目标输出端口。
基本互连单元由两部分组成:预处理单元和四输入/四输出的Omega网络。Omega网络是一种具有自动布线特性但是阻塞的互连网络。这种网络具有和交叉网络(Crossbar)相同的连通性,即任一输入可以连接到任一输出。对于N输入的Omgea网络,其由Log2N级组成,每级包含N/2个开关,级与级之间有N条互连线,每个输入数据均包含一个Log2N比特的标签。每个开关包含两种状态:并行传输(如图7(c))和交叉传输(图7(d))。第1级开关的状态由标签的最高位控制,第2级由次高位控制,以此类推。根据标签对应位的值是0或者1,分别将数据传送到开关的上输出端口和下输出端口。
Omega网络虽然可以实现自动布线,但是这种网络是阻塞的,也就是说无法支持目标输出端口编号的所有排列方式。为了弥补Omega网络的不足,本发明在四输入/四输出的Omega网络前加了一级预处理单元。预 处理单元的作用是检测输入的四个数据的目标输出端口的排列方式是否可能造成阻塞,如果可能造成阻塞,那么调整排列方式。之所以只在第一级开关之前插入预处理单元,是因为本发明中采用的是四输入/四输出的Omega网络,其由两级组成,而最后一级不可能发生阻塞,因此只需要检测第一级的开关状态即可。
当第1级开关的两个输入数据的标签的最高位均为0或者1时,阻塞就会发生。如图7(e)所示的阻塞在两个输入数据的标签的最高位均为0时发生;如图7(f)所示的阻塞在两个输入数据的标签的最高位均为1时发生。以输入数据的目标输出端口的排列方式IN_0→OUT_0,IN_1→OUT_1,IN_2→OUT_2,IN_3→OUT_3为例,对应的排列为2'b00,2'b01,2’b10,2’b11,IN_0和IN_1会造成图7(e)所示的阻塞,IN_2和IN_3会造成图3(f)所示的阻塞,如果将这种排列方式改为2'b00,2’b10,2'b01,2'b11,那么输入到第一级开关的数据标签的最高位不相等,从而不会发生阻塞。因此,预处理单元功能可以具体为:检测输入到第1级每个开关的两个数据的标签最高位是否相等,如果相等则调整这四个数据的排列方式。由于只有四个输入,输入到四输入/四输出的Omega网络的两个开关的状态只可能有两种组合:两个开关均发生阻塞和两个开关均不发生阻塞。而且,如果发生阻塞,这两个开关的阻塞方式必然有一个属于图7(e)所示的阻塞(最高位均为0),而另外一个则是图7(f)所示的阻塞(最高位均为1)。因此,只需要从这两个开关的输入数据中各挑出一个交换,即可阻止阻塞的发生,而此即为插入预处理单元的目的。
预处理单元的结构如图7(b)所示,其由一个同或门(XNOR)和两个选择器组成。选择器的控制信号由同或门产生。IN_0和IN_1的标签最高位分别连接到同或门的两个输入端。同或门的输出作为两个选择器的控制信号,通过这个控制信号控制是否需要将IN_2和IN_3交换。当同或门输出等于1,即IN_0和IN_1的最高位相等时,IN_2和IN_3无需交换;当同或门输出等于0,即IN_0和IN_1的最高位不相等时,交换IN_2和IN_3。预处理单元处理之后,交换TMP_1和TMP_2,这样传输到Omega的数据就不会产生阻塞。以输入数据的目标输出端口的排列方式IN_0→OUT_0,IN_1→OUT_2,IN_2→OUT_1,IN_3→OUT_3为例,对应的排列为2’b00, 2’b10,2'b01,2'b11,IN_0和IN_1的最高位不相等,同或门输出为0,交换IN_2和IN_3,经过预处理单元之后的排列方式变为2'b00,2’b10,2’b11,2'b01,交换TMP_1和TMP_2,输入到Omega的排列方式变为2'b00,2’b11,2’b10,2'b01,Omega不会产生阻塞。以输入数据的目标输出端口的排列方式IN_0→OUT_3,IN_1→OUT_2,IN_2→OUT_1,IN_3→OUT_0为例,对应的排列为2’b11,2’b10,2’b10,2'b00,IN_0和IN_1的最高位相等,同或门输出为1,因此无需交换IN_2和IN_3,在交换TMP_1和TMP_2之后,输入到Omega的排列方式变为2’b11,2'b01,2’b10,2'b00,Omega也不会产生阻塞。
为了节省由于互连网络导致的面积开销,本发明对簇与簇之间的数据交换做了限定:单个时钟周期内,一个簇只能和单个簇而不能同时和多个簇进行数据交换。以簇A为例,单个时钟周期内,可以与其进行数据交换的组合有:AA,AB,AC,AD,这些组合每个周期内只能存在一种,不能出现类似于ABC,ABD,ACD,ABCD这样的交换方式。虽然存在这种限定,但是依然可以实现:1)任意一对处理单元均可以建立连接关系;2)建立连接的过程是无阻塞的。以簇A中处理单元0和簇D中的处理单元1的连接为例,建立连接的过程为:1)处理单元0的右输出打上两个标签:2’b11和2'b01,通过O_A输出到簇间互连网络;2)簇间互连网络根据标签2’b11判断出目标簇为簇D,将数据交换到I_D;3)I_D输入的数据被分割为4段,并输入到簇内互连网络;4)簇D的簇内互连网络根据标签2'b01判断出目标输出为处理单元1,并将数据交换到处理单元1。
在本发明中的处理单元阵列上映射算法时,可以先将算法按任务划分,每个簇负责执行一个任务,任务之间的数据交换通过簇间互连网络实现,这样可以实现任务级的并行执行。以映射某算法为例,假设这个算法被划分两个任务:任务A和任务B。任务A映射到簇A执行,任务B映射到簇D上执行,那么执行过程为:1)通过全局数据总线载入待处理的数据到簇A和簇D;2)分别在簇A和簇D执行任务A和任务B;3)执行过程中的任务之间的数据交换通过簇间互连网络实现。
本发明提出的这种将多个处理单元整合在一起的方式,在降低功耗方面也有较大优势。当簇不被选中时,可以通过配置信息设置簇内的数据和 时钟不再翻转,这样就不会产生动态功耗。
至此,已经结合附图对本实施例基于自动布线互连网络的粗粒度可重构阵列结构进行了详细描述。依据以上描述,本领域技术人员应当对本发明基于自动布线互连网络的粗粒度可重构阵列结构有了清楚的认识。
此外,上述对各元件、方法的定义并不仅限于实施方式中提到的各种具体结构、形状或方法,本领域的普通技术人员可对其进行简单地熟知地替换,例如:
(1)采用其他具有自动布线特性的网络代替Omega网络,比如Baseline网络和Butterfly网络;
(2)调整每个簇中包含的处理单元的个数,并增加簇内互连网络中基本单元的个数;
(3)阵列结构的网络拓扑结构可以由二维结构替换成一维结构:多个簇置于一行,簇间互连网络置于行的上方或者下方;
(4)阵列结构的网络拓扑结构可以由二维结构替换成三维结构(钻石形或者金字塔形):一层为簇间互连网络,一层为处理单元簇阵列。
本发明公开的上述粗粒度可重构阵列结构的构建包含三个部分,具体如下:
1)构建互连网络的基本互连单元。
为了保证簇内和簇间的任意连接,构建互连网络的基本单元应该具有较高的连通性,同时,其面积开销应该较低,而且其控制机制应该简易。基本单元的结构有两种选择方案:交叉网络和多级互连网络。这两种结构具有相同的连通性,即任意一个输入可以连接到任意一个输出。对于N输入/N输出的交叉网络和多级互连网络,二者的面积分别按O(N2)和O(N.logN)增长。因此,相同输入输出端口数下,多级互连网络的面积开销比交叉网络小很多。同时考虑面积开销和连通性,多级互连网络更适合作为基本单元构建整个互连网络。多级互连网络的种类有很多,本发明只关注一种具有自动布线特性的多级互连网络。自动布线是一种快速的布线方式,只需要知道目标输出端口的编号就可以将输入准确送达,而不需要关注其内部结构,因此其控制机制很简易。
2)减少因为处理单元(PE)中操作数选择导致的浪费,降低输入选 择器的尺寸,较少配置信息。
一般来说,互连线越多意味着输入到PE的可选操作数就越多。在PE内部,操作数的选择是通过输入选择器实现的,操作数越多,输入选择器的尺寸就越大,所需的配置位也就越多。每个PE中均包含了两个同样尺寸的输入选择器,而PE内部的ALU只需要两个操作数,因此操作数选择存在浪费。减少浪费可以通过减少可选操作数来源来实现。可选操作数的来源主要有三种:全局数据总线,相邻PE以及PE内部的寄存器堆。如果将来源于相邻PE和寄存器堆的操作数的选择移出PE,转交给簇内互连网络来完成,由簇内互连网络为每个PE提供两个操作数,那么输入到PE的可选操作数只剩下四个:两个来源于全局数据总线和两个来源于簇内互连网络,PE的输入选择器的尺寸就会降低很多,配置位也会有所减少。
3)保证任意一对PE之间的连接。
在基于二维网格形式的网络拓扑结构的CGRA中,PE只能和相邻的PE连接和交换数据,因此存在许多不相连的PE。如果将二维网格结构的CGRA等分为四个簇,每个簇中包含四个PE,在簇内,PE之间可以任意连接和交换数据,在簇外,簇之间可以任意连接和交换数据,簇内和簇外通过总线连接,那么,通过这种划分以及簇内和簇间的任意连接就能够实现整个结构中的任意一对PE之间的连接和交换数据。
综上所述,本发明提出的上述方案中互连网络和处理单元簇构成了层次型的网络拓扑结构,高层是处理单元簇,底层是处理单元。高层之间通过通过簇间互连网络实现任意连接和交换数据,底层之间通过簇内互连网络实现任意连接和数据交换。簇内和簇间互连网络的联合,为整个阵列结构提供丰富的互连线资源,并使整个阵列结构中的任意一个处理单元均可以和其他任意一个处理单元连接和交换数据。这两种互连网络均是由一种四输入/四输出的开关互连结构构建而成,这种开关互连和交叉网络具有相同的连通性,而且具有自动布线和非阻塞的特性,即连接到开关上的任意输入只需要知道目标输出端口的编号,即可将输入的数据准确送达,而不需要关注开关互连的内部结构。处理单元由算术逻辑运算单元,寄存器堆,配置寄存器和输入选择选择器等组成,与传统的粗粒度可重构阵列结构不同的是,其内部的输入选择器的尺寸较小,这是因为操作数选择转交给了 簇内互连网络。总之,本发明通过层次型的网络拓扑结构和自动布线的开关互连结构,以较小面积开销为代价为粗粒度可重构阵列结构提供丰富的互连资源,从而在映射计算密集型应用程序时获取较高的性能。
本发明提供的基于自动布线互连网络的粗粒度可重构阵列结构在面积效率和功耗效率方面均有较大的优势,并能够提供丰富的互连网络资源,保证任意一对处理单元均可以无阻塞地建立连接。而且,本发明非常适合于实现任务级并行地执行应用程序,从而可以广泛应用于多媒体处理,数字信号处理等存在较多计算密集型应用的领域。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于自动布线互连网络的粗粒度可重构阵列电路,其包括:
多个处理单元簇:每个处理单元簇包括多个处理单元,其用于将输入至本处理单元簇中的数据分配给相应的处理单元进行处理,并将处理单元的处理结果输出;
簇间互连网络:其用于在各个处理单元簇间交换数据。
2.如权利要求1所述的电路,其中,所述处理单元簇还包括簇内互连网络,其用于在所述处理单元簇内的各个处理单元之间交换数据,并将来自其它处理单元簇的输入数据分配给相应的处理单元。
3.如权利要求1所述的电路,其中,所述簇内互连网络包括第一基本互连单元和第二基本互连单元,每个基本互连单元的输入和输出端口数目与该处理单元簇内的处理单元数目相同;其中,所述第一基本互连单元用于在簇内处理单元间的数据交换,所述第二基本处理单元用于将来自其它处理单元簇的数据分配给簇内处理单元进行处理。
4.如权利要求1-3任一项所述的电路,其中,来自簇内处理单元的数据包括标签和数据,而来自其它处理单元簇的数据包括多组标签和数据,其中标签用于指示数据的输出端口号,每个输出端口对应接入一个处理单元。
5.如权利要求1-3任一项所述的电路,其中,所述处理单元的输入数据来源包括:外部数据和簇内和/或簇间互连网络交换的数据。
6.如权利要求3所述的电路,其中,所述基本互连单元包括多输入/输出的Omega多级互连网络。
7.如权利要求6所述的电路,其中,所述基本互连单元还包括预处理单元,所述预处理单元用于检测输入数据的目标输出端口的排列方式是否会造成阻塞,并在检测为阻塞时调整所述排列方式。
8.如权利要求1所述的电路,其中,所述簇间互连网络包括多个输入和输出端口,每个输入和输出端口均连接至一个处理单元簇。
9.如权利要求1-3、6-8任一项所述的电路,其中,所述处理单元包括两个输出端口,其中一个输出端口用于将数据输出至簇内互连网络,而另一个输出端口用于将数据输出至簇间互连网络。
10.如权利要求1-3、6-8任一项所述的电路,其中,所述簇间互连网络和簇内互连网络的结构类似,均由基本互连单元组成,但是簇间互连网络只需一个基本互连单元即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310731152.4A CN104750659B (zh) | 2013-12-26 | 2013-12-26 | 一种基于自动布线互连网络的粗粒度可重构阵列电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310731152.4A CN104750659B (zh) | 2013-12-26 | 2013-12-26 | 一种基于自动布线互连网络的粗粒度可重构阵列电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750659A true CN104750659A (zh) | 2015-07-01 |
CN104750659B CN104750659B (zh) | 2018-07-20 |
Family
ID=53590371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310731152.4A Active CN104750659B (zh) | 2013-12-26 | 2013-12-26 | 一种基于自动布线互连网络的粗粒度可重构阵列电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750659B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326628A (zh) * | 2015-12-03 | 2017-01-11 | 西安邮电大学 | 一种实现自然对数和自然指数函数的可重构阵列结构 |
CN112486905A (zh) * | 2020-12-18 | 2021-03-12 | 清华大学 | 可重构异构化pea互连方法 |
CN113051214A (zh) * | 2019-12-26 | 2021-06-29 | 财团法人工业技术研究院 | 深度神经网络硬件加速器与其操作方法 |
CN115878558A (zh) * | 2022-11-29 | 2023-03-31 | 白盒子(上海)微电子科技有限公司 | 一种支持混合粒度可重构的通用sdr平台 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070552A1 (en) * | 2006-03-17 | 2009-03-12 | Interuniversitair Microelektronica Centrum Vzw (Imec) | Reconfigurable multi-processing coarse-grain array |
CN102138138A (zh) * | 2008-08-18 | 2011-07-27 | 国际商业机器公司 | 用于实现流处理计算机架构的方法及系统 |
CN102782672A (zh) * | 2010-02-01 | 2012-11-14 | 菲利普·马内 | 用于高效嵌入式同类多核平台的基于瓦片的处理器架构模型 |
US20130089102A1 (en) * | 2011-10-05 | 2013-04-11 | Woong Seo | Coarse-grained reconfigurable array based on a static router |
CN103092807A (zh) * | 2012-12-24 | 2013-05-08 | 杭州华为数字技术有限公司 | 节点控制器、并行计算服务器系统以及路由方法 |
CN103336756A (zh) * | 2013-07-19 | 2013-10-02 | 中国人民解放军信息工程大学 | 一种数据计算节点的生成装置 |
-
2013
- 2013-12-26 CN CN201310731152.4A patent/CN104750659B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070552A1 (en) * | 2006-03-17 | 2009-03-12 | Interuniversitair Microelektronica Centrum Vzw (Imec) | Reconfigurable multi-processing coarse-grain array |
CN102138138A (zh) * | 2008-08-18 | 2011-07-27 | 国际商业机器公司 | 用于实现流处理计算机架构的方法及系统 |
CN102782672A (zh) * | 2010-02-01 | 2012-11-14 | 菲利普·马内 | 用于高效嵌入式同类多核平台的基于瓦片的处理器架构模型 |
US20130089102A1 (en) * | 2011-10-05 | 2013-04-11 | Woong Seo | Coarse-grained reconfigurable array based on a static router |
CN103092807A (zh) * | 2012-12-24 | 2013-05-08 | 杭州华为数字技术有限公司 | 节点控制器、并行计算服务器系统以及路由方法 |
CN103336756A (zh) * | 2013-07-19 | 2013-10-02 | 中国人民解放军信息工程大学 | 一种数据计算节点的生成装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326628A (zh) * | 2015-12-03 | 2017-01-11 | 西安邮电大学 | 一种实现自然对数和自然指数函数的可重构阵列结构 |
CN106326628B (zh) * | 2015-12-03 | 2018-12-28 | 西安邮电大学 | 一种实现自然对数和自然指数函数的可重构阵列结构 |
CN113051214A (zh) * | 2019-12-26 | 2021-06-29 | 财团法人工业技术研究院 | 深度神经网络硬件加速器与其操作方法 |
CN112486905A (zh) * | 2020-12-18 | 2021-03-12 | 清华大学 | 可重构异构化pea互连方法 |
CN115878558A (zh) * | 2022-11-29 | 2023-03-31 | 白盒子(上海)微电子科技有限公司 | 一种支持混合粒度可重构的通用sdr平台 |
Also Published As
Publication number | Publication date |
---|---|
CN104750659B (zh) | 2018-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296705B2 (en) | Stacked programmable integrated circuitry with smart memory | |
US9256575B2 (en) | Data processor chip with flexible bus system | |
CN102541809B (zh) | 一种动态可重构处理器 | |
US7595659B2 (en) | Logic cell array and bus system | |
CN101833441B (zh) | 并行向量处理引擎结构 | |
CN102497411B (zh) | 面向密集运算的层次化异构多核片上网络架构 | |
CN104933008B (zh) | 可重构系统和可重构阵列结构及其应用 | |
CN102214158B (zh) | 一种全互联路由结构动态可重构处理器 | |
CN102306141B (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN107590085A (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
CN104750659A (zh) | 一种基于自动布线互连网络的粗粒度可重构阵列电路 | |
CN101620587B (zh) | 柔性可重构任务处理单元结构 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
Konishi et al. | PCA-1: A fully asynchronous, self-reconfigurable LSI | |
EP3180860B1 (en) | Reconfigurable integrated circuit with on-chip configuration generation | |
CN105373492A (zh) | 一种面向任务流的基于寄存器文件的快速数据交换结构 | |
CN103914429A (zh) | 用于粗粒度动态可重构阵列的多模式数据传输互连器 | |
CN112486905B (zh) | 可重构异构化pea互连方法 | |
US20190065428A9 (en) | Array Processor Having a Segmented Bus System | |
GB2370139A (en) | Parallel loaded shift register in parallel processor element | |
CN203706196U (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN203982379U (zh) | 用于粗粒度动态可重构阵列的多模式数据传输互连器 | |
CN112540950B (zh) | 基于配置信息共享存储的可重构处理器及其共享存储方法 | |
CN203377863U (zh) | 一种面积优化的fpga互连结构 | |
Kawamata et al. | Crossbar Implementation with Partial Reconfiguration for Stream Switching Applications on an FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |