一种全互联路由结构动态可重构数据处理方法及处理器的制作方法

文档序号:6425728阅读:146来源:国知局
专利名称:一种全互联路由结构动态可重构数据处理方法及处理器的制作方法
技术领域
本发明涉及动态可重构处理器领域,特别涉及一种全互联路由结构动态可重构数据处理方法及处理器。
背景技术
可重构计算是一种将软件的灵活性和硬件的高效性结合在一起的计算方式,比如现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)就是一个可重构计算应用的具体实例。和普通微处理器之间的区别在于它不仅可以改变控制流,还可以改变数据通路(Data Path)的结构,具有高性能、低硬件开销和功耗、灵活性好、扩展性好的优点。目前主要应用于媒体处理、模式识别、基带处理等计算密集型的算法。随着嵌入式处理器普遍要求缩短设计周期、降低设计和开发成本,另外最终市场和技术的不确定性越来越大,可重构处理逐步成为嵌入式处理器国际发展的趋势。不仅如此,在很多高性能计算的领域它也有所涉足,包括结构分析、计算流体力学、分子模拟、生物信息、计算化学、地震地质(油气勘探)、数值气象、宇宙学研究等。新的半导体工艺为可重构硬件带来千万门级电路的技术,从而为可重构硬件提供足够的面积;在速度上,可重构硬件的性能正在接近专用定制芯片。在这些变化影响下,可重构计算在技术路线上逐步走上动态重构、粗颗粒度并行硬件、异构多核的道路。例如欧洲微电子中心(IMEC)的ADRES处理器由紧耦合的超长指令字(Very Long Instruction fford,VLIff)处理器内核和粗颗粒度并行矩阵计算的可重构硬件构成。而惠普(HP)的CHESS 处理器则由大量可重构算术计算单元阵列构成。可重构处理器的基本组成包括主控制器和可重构运算单元。可重构运算单元均采用阵列的形式(阵列是并行化硬件的基本形式),来加大处理能力,同时通过灵活的互联结果来保证阵列的通用性。现有技术是通过寄存器堆从外部读入数据,并且外部寄存器中数据只能传递给对应列的相邻三个计算单元,它主要有如下四个缺点(1)阵列的数据输入口和输出口使用同一套寄存器接口,并且由于采用寄存器堆,难以批量的同时导入导出;(2)输入互联不够灵活,如需要实现负责的功能映射,则需要浪费计算单元;(3)由于阵列内部均采用十字互联,导致难以映射较大规模的算法,并行计算的效率低;(4)阵列内部的路由单元采用,局部区块内十字互联,全局相邻互联,导致计算模型复杂,难于算法的自动编译。另一种是采用总线形式分发数据,需要格外的周期进行地址译码和控制信息解析,并且数据单个单个写入接口寄存器,效率低。

发明内容
本发明所要解决的技术问题是提供一种全互联路由结构动态可重构数据处理方法及处理器,实现提高输入输出带宽及运行效率。为了解决上述问题,本发明公开了一种全互联路由结构动态可重构数据处理方法,包括步骤101、输入一个周期的待处理数据;步骤102、将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;步骤103、将处理完毕的数据通过提取编码方法提取所需数据;步骤104、将所述提取的数据输出。其中,步骤102所述的分配编码方法具体包括当每个周期内输入阵列的数据个数为2n,阵列大小为2mX2k个,其中2m为行宽,2k 为列宽时,对每个路由单元按照l+max(n,m)比特的形式进行编码。其中,步骤103所述的提取编码方法具体包括当阵列大小为2m X 2k个,每个周期输出数据为f个时,输出路由针对m+k进行编码,配置输出路由的i个输出端口。其中,提取编码方法为对于计算单元的输出位置编码或者对于输出的计算单元位置编码。本发明还公开了一种全互联路由结构动态可重构处理器,包括输入FIFO,用于输入多个待处理数据;动态可重构阵列,包括阵2mX2k列单元,所述的阵列单元包括路由单元和计算单元,每个路由单元连接输入FIFO;动态可重构阵列按列排列形成一维环状结构;用于将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;输出路由,每个计算单元连接输出路由,用于将处理完毕的数据通过提取编码方法提取所需数据;输出FIFO,连接输出路由,用于将所述提取的数据输出。其中,还包括内部缓存,连接输出路由与动态可重构阵列的每个路由单元,用于使阵列的运算结果在内部反复运算。其中,还包括编译单元,连接每个计算单元和输出路由,用于转换对于计算单元的输出位置编码为对于输出的计算单元位置编码。与现有技术相比,本发明具有以下优点(1)本发明采用输入FIFO输入数据,输出FIFO输出数据,实现全局数据的输入和输出,加大数据带宽。(2)本发明采用一个计算单元配一个路由单元,输出路由连接所有计算单元的形式,按特定的编码方法输入和输出数据,使内部互联灵活,提高了数据的运行效率。


图1是本发明一种全互联路由结构动态可重构数据处理方法;图2是本发明的动态可重构阵列全互联的路由单元的编码方法;图3是本发明的动态可重构阵列全互联的输出路由的编码方法;图4是本发明一种全互联路由结构动态可重构处理器的实施例一;图5是本发明一种全互联路由结构动态可重构处理器的实施例二。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。参照图1,示出了本发明一种全互联路由结构动态可重构数据处理方法。步骤101、输入一个周期的待处理数据;通过输入FIFO (First In First Out,一种先进先出的数据缓存器)输入2n个数据。由于输入FIFO缓存同时可以具有很大的宽度和深度,当输入的数据大于宽度时, 输入FIFO自动将数据分为多列然后输入。比如当输入FIFO宽度为16位时,如果输入了 48 位的数据,那么输入FIFO就将这40位数据分为3列,每列16位。步骤102、将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;实际中,先对每个计算单元的路由单元进行配置,包括按分配编码方法进行编码, 然后依照编码后的配置条件分配被输入FIFO输入的2n个数据,并进行处理。实际中,如果一个数据需要多次处理才能得到最终的数据,那么首先由每个计算单元的路由单元按分配编码方法接收数据到相应的计算单元先处理,然后从这个计算单元开始,通过路由单元将数据传输到与计算单元全互联的下一个计算单元进行处理,直到数据处理完毕。所述的分配编码方法包括当每个周期内输入阵列的数据个数为2n,阵列大小为2mX2k个(2-为宽度,2k为深度)。针对每个计算单元设计专门的路由单元,此路由单元同时接受来自输入接口的2"个数据和来自上一行的2m个计算结果。路由单元的编码方式采用输入2"个数据的η比特地址线和上一行2m个计算结果的m比特地址线相结合的方式,使用l+maX(n,m)比特的形式进行编码。第1比特选择来自内部还是外部的数据,剩余的max(n,m)比特作为地址译码得到输入数据或者上一行计算结果的编码。参照图2,示出了本发明的动态可重构阵列全互联的路由单元的编码方法。Sl表示路由单元数据来源选择位外部或者内部。S2表示数据的独立地址编码。步骤103、将处理完毕的数据通过提取编码方法提取所需数据;实际中,当将输入的2"个数据处理完毕时,将处理完毕的数据通过提取编码方法提取所需的数据。所述的提取编码方法包括当阵列大小为2mX2k个,每个周期内输出阵列的数据个数为扎通常情况下m+k要大于j的值,故在输出路由的实现上针对m+k进行编码,配置输出的i个端口。即每个端口都可以获得m+k比特的配置内容,用以选择对应的输出数据。这是对于输出的单元位置编码,可以简化输出路由的代价。而在编程模型上,选择对于单元的输出位置编码或者对于输出的单元位置编码,均是可以的。前者虽然在硬件实现上并不可取,但是对于统一输入输出路由的描述方式,则提供了很大的便利。故可以使用专门的编译单元或者硬件单元转换这两种编码方式。
参照图3,示出了本发明的动态可重构阵列全互联的输出路由的编码方法。Pl表示数据的行地址选择,P2表示数据的列地址选择步骤104、将所述提取的数据输出。输出路由将需要的数据提取出来之后,输入到输出FIFO,然后由输出FIFO将数据输出。上文出现的n\m\k\j均为正整数。2n表示单个周期内输入到阵列的数据个数;2m 表示阵列的宽度;2k表示阵列的深度;2」表示单个周期内从阵列输出的数据个数。其中,2X不一定要取2的整数次幂(χ表示2的指数),假定参数为A,这里只是使用整数X来表示可以取得刚好大于A的2X,即2="1 < A且2X彡A。上述的编码方式也适用于多周期的输入输出情况。由于入口的数据宽度终究有限,大于宽度个数的数据需要分多个周期输入,在多个周期输入时,路由单元的编码方式需要另外再加上输入个数的配置部分(比如使用s比特来编码输入个数2s,使用这s比特来选择输入数据所在输入个数的位置),其余的部分还和以前一样。出口的情况同理。参照图4,示出了本发明一种全互联路由结构动态可重构处理器的实施例一。本实施例包括输入FIF0201,输入多个待处理数据;动态可重构阵列202,包括阵2mX2k列单元,所述的阵列单元包括χ型的路由单元和白色的计算单元,每个路由单元连接输入FIF0201 ;动态可重构阵列202按列排列形成一维环状结构;经过χ型路由单元将输入的每个待处理数据通过分配编码方法分配一个计算单元进行处理;输出路由203,每个白色的计算单元连接输出路由,将处理完毕的数据通过提取编码方法提取所需数据;输出FIF0204,连接输出路由203,用于将所述提取的数据输出。数据流从输入FIF0201进入,沿着动态可重构阵列202的路由单元从左向右流动, 经过输出路由203从输出FIF0204流出,形成一个一维互连结构。同时A位置和A’位置相重合,形成一维的互联环。本发明中,路由单元结构(包括路由单元和输出路由204)连接了输入FIF0201,动态可重构阵列单元202,以及阵列单元之间的数据交互通道,形成了动态可重构处理器的基本计算通路。计算通路是一维结构,纵向是计算数据流(运算数据只能从阵列中的某一行传输给它的下一行),横向上可以自由通信(数据在阵列的一行之间可以自由取用,比如第二行的η个单元均可以使用第一行的第一个输出结果),同时环形的通路设计使计算深度可以进一步的延深(环形通信这里指当运算数据收到阵列的深度限制时,比如传输到最后一行时,可以返回连接第一行计算单元,故复用原有行中空闲的单元电路),达到计算单元利用的最大化。输入FIFO同时向动态可重构阵列输送多个数据,输出FIFO从阵列中同时取得多个数据,输入和输出均可以针对任意的可重构计算单元。故路由单元不但要处理运算单元间的数据;还需要在多个FIFO数据中选择输入和输出的位置。参照图4,X型方格指动态可重构阵列的互联单元,白色方格指计算单元,十字型方格指阵列的输出路由。按从左至右的顺序,数据是从左到右横向流动的,第二列可以自由选择第一列的数据,最后一列的数据可以回到第一列来继续计算。互联单元均可以接受来自输入FIFO的数据,而输出数据通过输出路由连接到输出FIFO。动态可重构阵列的全互联路由单元分成两部分实现,一部分实现计算单元输入的互联,另一部分实现计算单元输出的互联。例如,可重构计算阵列大小为虹4,输入数据宽度是4个,输出数据宽度是4个。这样路由单元需要选择来自输入FIFO和上一行输出结果一共G+4 = ) 8个数据,使用3比特 (取8以2为底的幂指数)编码的方式。第一比特选择来自FIFO还是来自上一行的输出结果,接下来两个比特选择FIFO或者上一行结果的位置。输出路由则从0x4 = ) 16个计算单元的结果中进行选择,按照针对输出的单元位置编码,(这里一个周期可以输出4个数据)输出的每一个数据都获得4比特的输出配置信息。这4比特中,前两比特选择阵列的行(选择哪一行的单元输出),后两比特选择这一行中第几列(选择哪一列中的单元输出),最终得到满足这个行列位置选择的特定单元的
计算结果。参照图5,示出了本发明一种全互联路由结构动态可重构处理器的实施例二。除了图4包括的结构,还包括了内部寄存器组205。输出路由203和路由χ型单元这两种互联结构在阵列内通过内部寄存器组205相连接,形成从输出重新回到输入的环形通道。这种环形通道使得阵列的运算结果可以不用输出到外部,而在内部进行反复运算,成为节省接口数据带宽的有效手段。本发明全互联路由结构动态可重构处理器还可以还包括硬件单元,连接每个计算单元和输出路由,用于转换对于计算单元的输出位置编码为对于输出的计算单元位置编码。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种全互联路由结构动态可重构数据处理方法及处理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种全互联路由结构动态可重构数据处理方法,其特征在于 步骤101、输入一个周期的待处理数据;步骤102、将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;步骤103、将处理完毕的数据通过提取编码方法提取所需数据; 步骤104、将所述提取的数据输出。
2.如权利要求1所述的全互联路由结构动态可重构处理数据方法,其特征在于 步骤102所述的分配编码方法具体包括当每个周期内输入阵列的数据个数为2n,阵列大小为2mX2k个,其中2">为行宽,2k为列宽时,对每个路由单元按照l+max(n,m)比特的形式进行编码。
3.如权利要求1所述的全互联路由结构动态可重构处理数据方法,其特征在于 步骤103所述的提取编码方法具体包括当阵列大小为2mX 2k个,每个周期输出数据为2」个时,输出路由针对m+k进行编码,配置输出路由的i个输出端口。
4.如权利要求3所述的全互联路由结构动态可重构处理数据方法,其特征在于 提取编码方法为对于计算单元的输出位置编码或者对于输出的计算单元位置编码。
5.一种全互联路由结构动态可重构处理器,其特征在于 包括输入FIFO,用于输入多个待处理数据;动态可重构阵列,包括阵2mX 2k列单元,所述的阵列单元包括路由单元和计算单元,每个路由单元连接输入FIFO ;动态可重构阵列按列排列形成一维环状结构;用于将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;输出路由,每个计算单元连接输出路由,用于将处理完毕的数据通过提取编码方法提取所需数据;输出FIFO,连接输出路由,用于将所述提取的数据输出。
6.如权利要求5所述的全互联路由结构动态可重构处理器,其特征在于还包括内部缓存,连接输出路由与动态可重构阵列的每个路由单元,用于使阵列的运算结果在内部反复运算。
7.如权利要求5所述的全互联路由结构动态可重构处理器,其特征在于还包括编译单元,连接每个计算单元和输出路由,用于转换对于计算单元的输出位置编码为对于输出的计算单元位置编码。
全文摘要
本发明提供了一种全互联路由结构动态可重构数据处理方法和处理器。所述的方法包括步骤101、输入一个周期的待处理数据;步骤102、将输入的每个待处理数据由每个路由单元按分配编码方法接收数据,输送到与每个路由单元相配的计算单元进行处理;步骤103、将处理完毕的数据通过提取编码方法提取所需数据;步骤104、将所述提取的数据输出。所述的处理器包括输入FIFO,动态可重构阵列;动态可重构阵列,包括阵2m×2k列单元,所述的阵列单元包括路由单元和计算单元,每个路由单元连接输入FIFO;动态可重构阵列按列排列形成一维环状结构;输出FIFO,连接输出路由,用于将所述提取的数据输出。通过本发明提高了处理器带宽和数据运行效率。
文档编号G06F15/173GK102253920SQ201110152239
公开日2011年11月23日 申请日期2011年6月8日 优先权日2011年6月8日
发明者刘雷波, 尹首一, 戚斌, 时龙兴, 曹鹏, 朱敏, 杨军, 王延升, 魏少军 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1