一种可伸缩式动态可重构阵列配置信息方法

文档序号:6430960阅读:187来源:国知局
专利名称:一种可伸缩式动态可重构阵列配置信息方法
技术领域
本发明涉及嵌入式系统领域中的动态可重构处理器技术领域,特别是涉及一种可伸缩式的描述动态可重构阵列配置信息方法。
背景技术
动态可重构处理器是一种新生的处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。首先,动态可重构处理器内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。其次,较传统的静态可重构电路一现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一沉不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。现有技术中,通常一张数据流图不需要全部的可重构单元参与运算,但是在配置可重构阵列的过程中仍然会向那些不参与运算的可重构单元发送配置信息,这部分冗余的配置信息占据了传输位宽,拉长了配置过程,造成的带宽浪费和配置周期延长。

发明内容
本发明所要解决的技术问题是提供一种可伸缩式配置动态可重构阵列配置信息方法,消除了冗余的配置信息造成的带宽浪费和配置周期延长。为了解决上述问题,本发明公开了一种可伸缩式动态配置可重构阵列配置信息的方法,包括配置信息步骤,配置所述可重构阵列的配置信息,所述的配置信息具体包括标志位配置信息,具体的,标志位信息包括运算单元标志位和暂存单元标志位;可重构单元配置信息,具体的,包括输入第一选择器的配置信息、输入第二选择器的配置信息、运算单元的配置信息、输出寄存器的配置信息和暂存单元的配置信息;其中, 所述的可重构单元为标志位信息中标记为有效的可重构单元;描述综合控制配置信息,具体的,综合控制信息包括时序控制信息和粒度配置信息;译码步骤,根据标志位信息,将可重构单元信息发送到对应的运算单元。优选的,所述的标志位信息包括运算单元标志位和暂存单元标志位;所述的运算单元标志位用于配置指示可重构阵列中哪些运算单元参与了当前运算的配置信息;
所述的暂存单元标志位用于配置指示可重构阵列中哪些暂存单元参与了当前运算的配置信息。优选的,所述的运算单元配置信息用于配置只包含运算单元的标志位中标记为有效的运算单元的配置信息;所述的暂存单元配置信息用于配置只包含暂存单元的标志位中标记为有效的暂存单元的配置信息。优选的,所述的译码步骤包括运算单元标志位发送步骤,用于根据运算单元的标志位提供的信息,将运算单元配置信息发送到对应的运算单元;和,暂存单元标志位发送步骤,用于根据暂存单元的标志位提供的信息,将暂存单元配置信息发送到对应的暂存单元。优选的,所述输入第一选择器的配置信息和输入第二选择器的配置信息包括是否接收操作数、操作数的来源和操作数的地址。优选的,所述操作数的来源包括输入缓存器、上一行运算单元的输出寄存器、上一行的暂存单元和常数寄存器。优选的,所述操作数的地址描述了操作数在输入缓存器的输出数据中的具体位置,或者来自上一行的哪一个运算单元的输出寄存器,或者来自上一行的哪一个暂存单元, 或所述操作数的地址描述了操作数来自哪一个常数寄存器。优选的,所述运算单元的配置信息描述的是运算单元所要执行的操作类型,包括算术运算和逻辑运算;所述输出寄存器的配置信息描述了是否有计算结果输出到输出缓存器以及输出到输出缓存器中的具体地址;所述暂存单元的配置信息描述了暂存单元的输入和输出操作。优选的,所述时序控制信息包括数据输入时间、运算时间、数据输出时间、循环间隔、循环次数;粒度配置信息描述的是当前在可重构阵列上执行的运算的数据位宽。与现有技术相比,本发明具有以下优点本发明通过在可重构阵列的配置信息中增加标志位,以及在可重构阵列的硬件中增加译码单元,来达到去除冗余的配置信息的目的节省了配置信息存储空间,消除了冗余的配置信息所造成的带宽浪费和配置周期延长,提高了配置效率。


图1是本发明具体实施方式
中所述的可重构阵列的示意图;图2是本发明具体实施方式
中所述的可重构单元的结构示意图;图3是本发明一种可伸缩式配置动态可重构阵列配置信息方法的流程图;图4是本发明具体实施方式
中所述的译码单元分配配置信息的示意图;图5是本发明具体实施方式
中所述的数据流图到可重构阵列的映射示意图;图6是本发明具体实施方式
中所述的运算单元标志位示意图;图7是本发明具体实施方式
中所述的运算单元的配置信息排列示意图;图8是本发明具体实施方式
中所述的运算单元配置过程示意图9是本发明具体实施方式
中所述的暂存单元标志位示意图;图10是本发明具体实施方式
中所述的运算单元的配置信息排列示意图;图11是本发明具体实施方式
中所述的暂存单元配置过程示意图;图12是本发明具体实施方式
中所述的数据流图的映射结果示意图;图13是本发明具体实施方式
中所述的可重构阵列执行运算的时序图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。可重构阵列是动态可重构处理器的核心运算部件,其结构示意图如图1所示。结合图1和图2,分为下面五个部分进行介绍1.输入缓存器输入缓存器中存储着可重构阵列进行运算所需要的外部数据。2.常数寄存器常数寄存器中存储着可重构阵列进行运算所需要的常数。3.可重构阵列可重构阵列按照配置信息描述的功能执行相应的运算。可重构阵列由两部分构成a)可重构单元一个可重构阵列包含很多可重构单元,每个可重构单元又包括一个运算单元和一个暂存单元。运算单元可以在一个节拍内完成算数逻辑运算,暂存单元只是单纯的将输入数据寄存一个节拍。可重构单元的结构如图2所示。i.运算单元每个运算单元包括2个输入选择器、1个运算单元和1个输出寄存器。(1)每个输入选择器为运算单元选择当前运算所需要的一个操作数。操作数可以来自输入缓存器,也可以来自常数寄存器(只有输入选择器B具有选择常数寄存器的功能),还可以来自上一行运算单元的输出寄存器或者上一行的暂存单元。(2)运算单元用于执行算术或者逻辑运算。(3)输出寄存器用于寄存当前节点的计算结果,计算结果可以作为下一行可重构单元的输入,也可以输出到输出缓存器进行缓存。ii.暂存单元暂存单元用于将输入寄存一拍,然后输出。它的输入可以来自输入缓存器,也可以来自上一行运算单元的输出寄存器或者上一行的暂存单元。它的输出可以作为下一行可重构单元的输入,也可以输出到输出缓存器进行缓存。b)路由单元路由单元主要负责完成可重构单元间的数据连接,一个路由单元对应一行可重构单元。i.路由单元将来自输入缓存器的数据、来自常数寄存器的数据、来自上一行暂存单元的数据、或者来自上一行运算单元的输出寄存器的数据按照配置信息分配给指定的可重构单元,可重构单元将接收到的数据传递到输入选择器或者暂存单元。ii.每一行的任意一个可重构单元都可以接收上一行任意一个可重构单元的输出结果(包括运算结果和暂存数据)。iii.第一行的任意一个可重构单元都可以接收最后一行任意一个可重构单元的输出结果(包括运算结果和暂存数据)。4.输出缓存器输出缓存器用于存储可重构阵列的运算结果。运算结束后,可重构阵列将运算结果输出到输出缓存器进行缓存。可重构阵列如何运转是由配置信息决定的,配置信息把所要执行的数据流图映射到可重构阵列上,使之正确的完成数据流图对应的计算任务。一套高效的配置信息是可重构阵列的性能得到充分发挥的前提,以此为出发点,本发明提出了一种描述动态可重构阵列配置信息的方法。5.译码单元所述的译码单元在可重构阵列中增加译码单元,完成对压缩后的运算单元和暂存单元的配置信息的解压缩,其中所述的译码单元包括所述的译码单元包括运算单元标志位信息发送模块和暂存单元标志位信息发送模块,其功能如下(1)所述的运算单元标志位信息发送模块根据运算单元的标志位提供的信息,将运算单元配置信息发送到对应的运算单元。(2)所述的暂存单元标志位信息发送模块根据暂存单元的标志位提供的信息,将暂存单元配置信息发送到对应的暂存单元。图3示出了一种可伸缩式配置动态可重构阵列配置信息方法的流程图。所述的方法包括配置信息步骤100,配置所述可重构阵列的配置信息,所述的配置信息具体包括标志位配置信息,具体的,标志位信息包括运算单元标志位和暂存单元标志位;可重构单元配置信息,具体的,包括输入第一选择器的配置信息、输入第二选择器的配置信息、运算单元的配置信息、输出寄存器的配置信息和暂存单元的配置信息;其中, 所述的可重构单元为标志位信息中标记为有效的可重构单元;描述综合控制配置信息,具体的,综合控制信息包括时序控制信息和粒度配置信息;译码步骤200,根据标志位信息,将可重构单元信息发送到对应的运算单元。其中,对于1.标志位在可重构阵列的配置信息中增加标志位,这包括运算单元标志位和暂存单元标志位。a)运算单元标志位运算单元标志位用于指示可重构阵列中哪些运算单元参与了当前运算。b)暂存单元标志位暂存单元标志位用于指示可重构阵列中哪些暂存单元参与了当前运算。2.增加标志位后的可重构阵列的配置信息
增加标志位后的可重构阵列的配置信息包括四个部分,其中前三部分与标志位相关,具体如下a)标志位部分i.其中包含了运算单元的标志位和暂存单元的标志位b)运算单元的配置信息部分i.此部分只包含运算单元的标志位中标记为有效的运算单元的配置信息。通过此方式减少了对于不参与当前运算的运算单元的配置信息的冗余存储。c)暂存单元的配置信息部分i.此部分只包含暂存单元的标志位中标记为有效的暂存单元的配置信息。通过此方式减少了对于不参与当前运算的暂存单元的配置信息的冗余存储。d)综合控制信息部分3.译码步骤对可重构阵列的配置信息进行译码的示意图如图4所示,其译码步骤如下a)译码单元接收配置信息的标志位。b)译码单元接收运算单元配置信息,并根据运算单元的标志位将压缩的运算单元的配置信息发送到参与当前运算的运算单元。译码单元接收暂存单元配置信息,并根据暂存单元的标志位将压缩的暂存单元的配置信息发送到参与当前运算的暂存单元。下面,在本发明中以一张数据流图到一个4x4可重构阵列的完整映射过程为例, 来说明如何使用本发明提出的方法来描述动态可重构阵列配置信息。如图5所示,左侧的数据流图需要映射到右侧的4x4可重构阵列上执行,为了便于描述,将可重构阵列中的可重构单元进行了编号。数据流图上有6个节点,映射到可重构阵列上,需要6个运算单元,选定运算单元0、1、3、5、10、14参与本次运算;数据流图需要一个暂存操作,映射到可重构阵列上,需要1个暂存单元,选定暂存单元7参与本次运算。具体实现如下1.运算单元的配置过程使用一个16位的数据表示运算单元标志位,每1位对应一个运算单元,“0”表示该运算单元不参与本次运算,“1”表示该运算单元参与本次运算。对应于图5的数据流图, 其运算单元标志位如图6所示。运算单元的配置信息排列顺序如图7所示。译码单元根据运算单元标志位将运算单元0、1、3、5、10、14的配置信息发送到指定位置,其配置过程如图 8所示。图8中,发送到每个运算单元的配置信息内容如下a)可重构单元0:i.输入选择器A从输入缓存器接收数据。ii.输入选择器B从输入缓存器接收数据。iii.运算单元执行加法操作。iv.输出寄存器无数据输出。b)可重构单元1 i.输入选择器A从输入缓存器接收数据。
ii.输入选择器B从输入缓存器接收数据。iii.运算单元执行加法操作。iv.输出寄存器无数据输出。C)可重构单元3:i.输入选择器A从输入缓存器接收数据。ii.输入选择器B从输入缓存器接收数据。iii.运算单元执行减法操作。iv.输出寄存器无数据输出。d)可重构单元5:i.输入选择器A从可重构单元0的输出寄存器接收数据。ii.输入选择器B从可重构单元1的输出寄存器接收数据。iii.运算单元执行减法操作。iv.输出寄存器无数据输出。e)可重构单元10 i.输入选择器A从可重构单元5的输出寄存器接收数据。ii.输入选择器B从可重构单元7的暂存单元接收数据。iii.运算单元执行乘法操作。iv.输出寄存器无数据输出。f)可重构单元14:i.输入选择器A从可重构单元10的输出寄存器接收数据。ii.输入选择器B从常数寄存器接收数据。iii.运算单元执行除法操作。iv.输出寄存器输出运算结果。2.暂存单元的配置过程使用一个16位的数据表示暂存单元标志位,每1位对应一个暂存单元,“0”表示该暂存单元不参与本次运算,“1”表示该暂存单元参与本次运算。对应于图5的数据流图, 其暂存单元标志位如图9所示。暂存单元的配置信息排列顺序如图10所示。译码单元根据暂存单元标志位将暂存单元7的配置信息发送到指定位置,其配置过程如图11所示。图11中,发送到暂存单元7的配置信息内容如下a)暂存单元从可重构单元3的输出寄存器接收数据。b)无数据输出。3.综合控制信息a)时序控制信息
参数拍数数据输入时间1运算时间4数据输出时间1循环间隔0循环次数4b)粒度控制信息数据位宽为8bit。根据以上配置信息,数据流图的映射结果如图12所示,可重构阵列执行运算的时序图如图13所示。以上对本发明所提供的一种可伸缩式的描述动态可重构阵列配置信息方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员, 依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种可伸缩式动态配置可重构阵列配置信息的方法,其特征在于,包括 配置信息步骤,配置所述可重构阵列的配置信息,所述的配置信息具体包括 标志位配置信息,具体的,标志位信息包括运算单元标志位和暂存单元标志位;可重构单元配置信息,具体的,包括输入第一选择器的配置信息、输入第二选择器的配置信息、运算单元的配置信息、输出寄存器的配置信息和暂存单元的配置信息;其中,所述的可重构单元为标志位信息中标记为有效的可重构单元;描述综合控制配置信息,具体的,综合控制信息包括时序控制信息和粒度配置信息; 译码步骤,根据标志位信息,将可重构单元信息发送到对应的运算单元。
2.如权利要求1所述的方法,其特征在于所述的标志位信息包括运算单元标志位和暂存单元标志位;所述的运算单元标志位用于配置指示可重构阵列中哪些运算单元参与了当前运算的配置信息;所述的暂存单元标志位用于配置指示可重构阵列中哪些暂存单元参与了当前运算的配直^[曰息ο
3.如权利要求1所述的方法,其特征在于所述的运算单元配置信息用于配置只包含运算单元的标志位中标记为有效的运算单元的配置信息;所述的暂存单元配置信息用于配置只包含暂存单元的标志位中标记为有效的暂存单元的配置信息。
4.如权利要求2所述的方法,其特征在于 所述的译码步骤包括运算单元标志位发送步骤,用于根据运算单元的标志位提供的信息,将运算单元配置信息发送到对应的运算单元;和,暂存单元标志位发送步骤,用于根据暂存单元的标志位提供的信息,将暂存单元配置信息发送到对应的暂存单元。
5.如权利要求1所述的方法,其特征在于所述输入第一选择器的配置信息和输入第二选择器的配置信息包括 是否接收操作数、操作数的来源和操作数的地址。
6.如权利要求5所述的方法,其特征在于所述操作数的来源包括输入缓存器、上一行运算单元的输出寄存器、上一行的暂存单元和常数寄存器。
7.如权利要求6所述的方法,其特征在于所述操作数的地址描述了操作数在输入缓存器的输出数据中的具体位置,或者来自上一行的哪一个运算单元的输出寄存器,或者来自上一行的哪一个暂存单元,或所述操作数的地址描述了操作数来自哪一个常数寄存器。
8.如权利要求1所述的方法,其特征在于所述运算单元的配置信息描述的是运算单元所要执行的操作类型,包括算术运算和逻辑运算;所述输出寄存器的配置信息描述了是否有计算结果输出到输出缓存器以及输出到输出缓存器中的具体地址;所述暂存单元的配置信息描述了暂存单元的输入和输出操作。
9.如权利要求1所述的方法,其特征在于所述时序控制信息包括数据输入时间、运算时间、数据输出时间、循环间隔、循环次数;粒度配置信息描述的是当前在可重构阵列上执行的运算的数据位宽。
全文摘要
本发明提供了一种可伸缩式动态配置可重构阵列配置信息的方法,涉及嵌入式系统领域中的动态可重构处理器技术领域。所述方法配置信息步骤,配置所述可重构阵列的配置信息,所述的配置信息具体包括标志位配置信息,可重构单元配置信息,其中,所述的可重构单元为标志位信息中标记为有效的可重构单元;描述综合控制配置信息,译码步骤,根据标志位信息,将可重构单元信息发送到对应的运算单元。本发明通过在可重构阵列的配置信息中增加标志位,以及在可重构阵列的硬件中增加译码单元,来达到去除冗余的配置信息的目的节省了配置信息存储空间,消除了冗余的配置信息所造成的带宽浪费和配置周期延长,提高了配置效率。
文档编号G06F15/177GK102411555SQ201110235988
公开日2012年4月11日 申请日期2011年8月17日 优先权日2011年8月17日
发明者刘雷波, 尹首一, 戚斌, 时龙兴, 曹鹏, 朱敏, 杨军, 王延升, 魏少军 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1