一种粗粒度动态可重构数据规整控制单元结构的制作方法

文档序号:6641892阅读:123来源:国知局
一种粗粒度动态可重构数据规整控制单元结构的制作方法
【专利摘要】本实用新型公开了一种粗粒度动态可重构数据规整控制单元结构,其数据流控制模块包括三个部分:矢量加载模块,矢量移相模块,解包分发模块。三个模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步。其中,矢量加载模块通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载。矢量移相模块通过动态可重构配置的方式实现对数据流的移位,拼接等操作,输出数据写入矢量相移寄存器文件。解包分发模块通过配置实现寄存器数据的分发操作,满足阵列对计算数据并发输入的需求。这种粗粒度动态可重构数据规整控制单元结构有效解决了数据加载过程中的非对齐存取和数据规整的问题。
【专利说明】一种粗粒度动态可重构数据规整控制单元结构
【技术领域】
[0001]本实用新型涉及一种粗粒度动态可重构数据规整控制单元结构,属于嵌入式可重构设计技术。
【背景技术】
[0002]可重构计算是一种将软件的灵活性和硬件的高效性结合在一起的计算方式,比如现场可编程逻辑门阵列就是一个可重构计算应用的具体实例。和普通微处理器之间的区别在于它不仅可以改变控制流,还可以改变数据通路的结构,具有高性能、低硬件开销和功耗、灵活性好、拓展性好的优点。目前主要应用于媒体处理、模式识别、基带处理等计算密集型的算法。随着嵌入式处理器普遍要求缩短设计周期、降低设计和开发成本,另外最终市场和技术的不确定性越来越大,可重构处理初步成为嵌入式处理器国际发展的趋势。不仅如此,在很多高性能计算的领域它也有所涉足,包括结构分析、计算流体力学、分子模拟、生物信息、计算化学、地震地质(油气勘探)、数值气象、宇宙学研究等。
[0003]随着各类软件应用的要求越来越高,相应的,对可重构系统的性能要求也越来越高。同样可重构计算的数据流通也面临诸多挑战,除了面临大数据访问量的挑战,还需要面对由于访存效率低下而带来的性能降低。访存效率低的原因除了存储器的固有访存延时,数据在存储器中存放结构,数据的访存方式对传输效率也有极大的影响。数据传输面临非对齐存取和数据规整的问题。
[0004]传统的通用处理器会在编译过程中自动对数据结构进行补足,并对可能产生这类问题的冒险行为进行警告。不对齐的内存字操作往往会导致硬件异常,或者在通用处理器的微码中将这类操作转换成两次读操作。
[0005]单指令多数据流处理器在地址对齐时可以一次并发访问多个数据,但是当面对地址不对齐时,则需要通过数据规整和拼接得到所需的数据结构。虽然并发访问获得数据带宽的成倍提高,但是增加了编程复杂性,通常仅针对应用的核心计算进行单指令多数据流代码的改写。
[0006]专用集成电路方式在实现特定的数据访存行为时,有极高的效率。专用集成电路的实现方式可以同时实现数据移位和访存,增加数据访存效率的同时,提高应用的处理性能。但是,针对具体算法的特殊设计不仅设计复杂,而且导致专用集成电路应用的局限性。
[0007]在已有的可重构架构研究中,采用了多种设计方法来满足数据流规整的需求。传统的粗粒度可重构架构为了满足灵活的数据存储,采用可重构计算单元显示存取的方式实现阵列外数据存取,并针对多模块的存储结构进行访存调度满足计算数据的需求。这样的设计简化了数据的路由通路,但是存取的可重构计算单元同样也占用了计算资源,特别是可重构计算单元的数据存取会导致整个阵列计算流水被阻塞,导致计算性能受到限制。虽然通过探索数据的预取和重用可以有效的隐藏访存开销,但是仍然受到数据并行性的影响,无法利用多个计算之间数据的依赖关系获得更好的数据并行性的执行性能。实用新型内容
[0008]发明目的:为了克服现有技术中存在的不足,本实用新型提供一种粗粒度动态可重构数据规整控制单元结构,探索基于预取和重用的访存单元寄存器,并对可重构阵列离散不规则计算数据的需求进行研究,提出基于矢量寄存器文件设计的数据流规整单元,解决可重构访存数据通路的瓶颈。
[0009]技术方案:为实现上述目的,本实用新型采用的技术方案为:
[0010]一种粗粒度动态可重构数据规整控制单元结构,包括通过硬件连接实现的数据流控制模块,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,所述三个模块通过矢量数据寄存器文件和矢量相移寄存器文件实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,具体为:
[0011]所述矢量加载模块:对不同数据地址空间进行访问,将数据从存储器加载到矢量数据寄存器文件;
[0012]所述矢量移相模块:对矢量数据寄存器文件中数据进行移位、拼接等操作,然后将输出的数据写入矢量相移寄存器文件;
[0013]所述解包分发模块:将矢量相移寄存器文件中数据的分发操作,以满足可重构阵列对计算数据并发输入的需求。
[0014]优选的,所述矢量加载模块主要用于实现对不同存储空间的访存控制和数据流的非对齐加载,包括访存控制逻辑、并发访存状态机、内部存储访存控制、外部存储访存控制和数据选择:
[0015]所述访存控制逻辑:解码动态重构配置信息后向并发访存状态机发出控制命令;
[0016]所述并发访存状态机:利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求,以减少数据等待的时延;
[0017]所述内部存储访存控制和外部存储访存控制:除了向系统总线发起满足协议的访存操作,还需要将非对齐的访存请求拆分为地址对齐的多次访存操作;
[0018]所述数据选择:从系统总线返回的数据在数据选择中完成移位、拼接等操作之后写入矢量数据寄存器文件中。
[0019]优选的,所述矢量移相模块中设计有类似于扩展单指令多数据流结构的移相处理簇,可以同时并行处理多个不同的寄存器,获得数据处理能力的多倍提升。
[0020]优选的,所述移相处理簇中设计有移相处理单元,所述移相处理单元的结构与可重构计算单元类似,区别在于移相处理单元的处理核心不是用于处理数据计算的算术逻辑单元,而是增强的移相单元;除了处理核心的不同,数据位宽也比可重构计算单元大很多,采用128bit设计;另外,由于采用传统的单指令多数据流结构,数据的输入不需要考虑邻近处理单元的直接连接,而仅仅需要考虑来自不同寄存器文件的输入即可。
[0021]优选的,所述解包分发模块负责将矢量移相模块处理后的数据加载到可重构阵列数据接口,主要实现两种功能:
[0022]数据对齐:由于存在可重构计算单元的数据位宽与应用的计算位宽不匹配,因而在解包分发模块,需要对数据进行对齐操作,包括移位和补齐操作;
[0023]数据的路由分发:利用解包分发模块中的解包分发单元实现矢量相移寄存器文件中每个矢量相移寄存器与每行可重构计算单元之间的一一对应关系。[0024]应当理解,本案中涉及的各个部分及其功能均通过寄存器或寄存器文件的连接实现。
[0025]有益效果:本实用新型提供的粗粒度动态可重构数据规整控制单元结构,矢量加载模块、矢量移相模块和解包分发模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,有效解决了数据加载过程中的非对齐存取和数据规整的问题;相对于传统的显示存取可重构的数据访存设计,数据流规整单元的设计可以有效的提高计算性能达到平均3.34倍。
【专利附图】

【附图说明】
[0026]图1为本实用新型的结构示意图;
[0027]图2为矢量加载模块结构示意图;
[0028]图3为并发访存状态机状态转换示意图;
[0029]图4为矢量移相模块结构示意图;
[0030]图5为移相处理单元结构示意图;
[0031]图6为解包分发模块结构示意图。
【具体实施方式】
[0032]下面结合附图对本实用新型作更进一步的说明。
[0033]一种粗粒度动态可重构数据规整控制单元结构,包括通过硬件连接实现的数据流控制模块,如图1所示,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,三个模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步。
[0034]所述矢量加载模块:通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载,具体操作方式如图2所示;
[0035]所述矢量移相模块:通过动态可重构配置的方式实现对矢量数据寄存器文件中数据的移位、拼接等操作,将输出的数据写入矢量相移寄存器文件,其工作机理如图4所示;
[0036]所述解包分发模块:通过动态重构配置实现矢量相移寄存器文件中数据的分发操作,满足可重构阵列对计算数据并发输入的需求,工作流程如图6所示。
[0037]矢量加载模块通过两条不同位宽的标准AMBA AHB2.0总线与系统连接,分别与片上存储器和片外存储控制器连接,可以满足可重构阵列对不同数据传输的设计需求。动态重构配置信息在访存控制逻辑中解码,向并发访存状态机发出控制命令。根据地址空间的不同,并发访存状态机控制内部存储访存控制和外部存储访存控制向系统总线发出访存操作。从系统总线返回的数据在数据选择中完成移位、拼接等操作之后写入矢量寄存器文件中。内部存储访存控制和外部存储访存控制同时维护了各自的总线访存协议控制,用于实现与外部接口的交互。下面通过图3对并发访存状态机工作方式具体分析。
[0038]并发访存状态机利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求,减少数据等待的时延。如图3所示,EI表示有效的内部访存请求,EE表示有效的外部访存请求,VI表示有效的内部请求数据返回,VE表示有效的外部请求数据返回。并发访存状态机根据请求信号按照片上优先级大于片外优先级的设定进行状态的跳转。当EI有效时,不考虑EE是否有效,并发访存状态机都会从IDLE状态跳转到INTERNAL状态。此时,如果EE信号有效,则并发访存状态机跳转到BOTH状态,同时处理内部数据和外部数据访存;反之,如果EE信号无效,则在内部数据访存完成VI信号有效的时候,并发访存状态机返回到IDLE状态。仅当只有EE信号有效,而EI信号无效时,并发访存状态机从IDLE状态进入EXTERNAL状态。此时,如果EI信号有效,那么并发访存状态机跳转到BOTH状态。在BOTH状态,根据数据访存完成的先后顺序,从BOTH状态分别退回到INTERNAL状态或EXTERNAL状态。当存在多个对同一类型的存储空间访存操作时,如对片上存储器进行多次访问,此时,并发访存状态机仅在IDLE和INTERNAL状态间切换,并发访存状态机简化为单一的顺序访存控制逻辑。
[0039]为了满足非对齐存取的设计需求,需要对访存请求和返回的数据进行处理。由于系统总线的传输需要满足地址对齐,因而内部存储访存控制和外部存储访存控制除了向总线发起满足协议的访存操作,还需要将非对齐的访存请求,拆分为地址对齐的多次访存操作。同时,需要将多个返回的数据进行拼接,以得到非对齐存取的矢量数据。数据的拼接操作在数据选择中完成。例如,当矢量加载模块从起始地址低位为0x3处开始加载时,由于外部总线的采用32bit对齐Burst4的方式进行数据访问,因而,需要将两次总线访存0x0和0x4的数据进行移位拼接,才能获得所需的访存数据。
[0040]如图4所示,所述矢量移相模块中设计有类似于扩展单指令多数据流结构的移相处理簇,可以同时并行处理多个不同的寄存器,获得数据处理能力的多倍提升。
[0041]优选的,所述移相处理簇中设计有移相处理单元,所述移相处理单元的结构与可重构计算单元类似,区别在于移相处理单元的处理核心不是用于处理数据计算的算术逻辑单元,而是增强的移相单元;除了处理核心的不同,数据位宽也比可重构计算单元大很多,采用128bit设计;另外,由于采用传统的单指令多数据流结构,数据的输入不需要考虑邻近处理单元的直接连接,而仅仅需要考虑来自不同寄存器文件的输入即可。
[0042]本案中,在整个数据流控制模块中包括两套独立的相移处理簇,最高可以获得同时处理8个线程的计算能力。同时,在计算需求仅有一半的时候,可以关闭第二套移相处理簇,从而达到减少移相命令加载和降低系统功耗的目的。单个“移相处理簇”包含4个移相处理单元,特别针对矢量移相指令进行设计功能优化,其数据位宽与双缓冲寄存器相匹配。
[0043]按照图4的描述移相命令队列中的指令依次经过译码之后分发到4个移相处理单元中,每个移相处理单元根据所解析的命令进行计算。数据在矢量移相模块最少可以实现在I个时钟周期内完成数据处理,而最大的处理周期则根据命令队列的长度相关,受到数据移相需求和数据量大小的限制。
[0044]通过图5对移相处理单元的描述,移相处理单元的输入数据通过选择信号可以分别来自矢量数据寄存器文件和矢量相移寄存器文件,输出数据则写入矢量相移寄存器文件。来自矢量数据寄存器文件的数据通过数据选择分别进入移相处理单元的不同端口,计算的输出最终写入矢量相移寄存器,并给出标示信号。同时,矢量相移寄存器也作为计算过程中用于存放临时数据的寄存器。
[0045]所述解包分发模块将双缓冲寄存器中的数据处理后按列映射到可重构计算阵列每行的数据接口上,按照图6所示流程,首先根据解包分发命令中操作数目和源操作数的大小对输入数据进行移位操作,之后,按照目标操作数的大小设置进行数据补齐操作,最后,将处理后的数据分发到计算阵列的数据接口中。由于每个重构处理单元拥有两个数据输入端口,因此,对于8x8的可重构阵列而言,每行拥有16个数据输入端口,这样寄存器中可以容纳的最大16个8bit的数据同时对齐后输入阵列。
[0046]以上所述仅是本实用新型的优选实施方式,应当指出:对于本【技术领域】的普通技术人员来说,在不脱离本实用新型原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本实用新型的保护范围。
【权利要求】
1.一种粗粒度动态可重构数据规整控制单元结构,其特征在于:包括数据流控制模块,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,所述三个模块通过矢量数据寄存器文件和矢量相移寄存器文件实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,具体为: 所述矢量加载模块:对不同数据地址空间进行访问,将数据从存储器加载到矢量数据寄存器文件; 所述矢量移相模块:对矢量数据寄存器文件中的数据进行移位、拼接操作,然后将输出的数据写入矢量相移寄存器文件; 所述解包分发模块:将矢量相移寄存器文件中数据进行分发。
2.根据权利要求1所述的粗粒度动态可重构数据规整控制单元结构,其特征在于:所述矢量加载模块包括访存控制逻辑、并发访存状态机、内部存储访存控制、外部存储访存控制和数据选择: 所述访存控制逻辑:解码动态重构配置信息后向并发访存状态机发出控制命令; 所述并发访存状态机:利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求; 所述内部存储访存控制和外部存储访存控制:除了向系统总线发起满足协议的访存操作,还需要将非对齐的访存请求拆分为地址对齐的多次访存操作; 所述数据选择:从系统总线返回的数据在数据选择中完成移位、拼接操作之后写入矢量数据寄存器文件中。
3.根据权利要求1所述的粗粒度动态可重构数据规整控制单元结构,其特征在于:所述矢量移相模块中设计移相处理簇,可以同时并行处理多个不同的寄存器。
4.根据权利要求3所述的粗粒度动态可重构数据规整控制单元结构,其特征在于:所述移相处理簇中设计有移相处理单元,所述移相处理单元的处理核心是增强的移相单元。
【文档编号】G06F13/40GK203706197SQ201420060846
【公开日】2014年7月9日 申请日期:2014年2月10日 优先权日:2014年2月10日
【发明者】葛伟, 曹鹏, 马俊, 刘波, 杨锦江, 徐凯, 杨军, 王超, 卜爱国 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1