CN103761075B - 一种粗粒度动态可重构数据规整控制单元结构 - Google Patents
一种粗粒度动态可重构数据规整控制单元结构 Download PDFInfo
- Publication number
- CN103761075B CN103761075B CN201410046567.2A CN201410046567A CN103761075B CN 103761075 B CN103761075 B CN 103761075B CN 201410046567 A CN201410046567 A CN 201410046567A CN 103761075 B CN103761075 B CN 103761075B
- Authority
- CN
- China
- Prior art keywords
- data
- vector
- phase shift
- memory access
- module
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种粗粒度动态可重构数据规整控制单元结构,其数据流控制模块包括三个部分:矢量加载模块,矢量移相模块,解包分发模块。三个模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步。其中,矢量加载模块通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载。矢量移相模块通过动态可重构配置的方式实现对数据流的移位,拼接等操作,输出数据写入矢量相移寄存器文件。解包分发模块通过配置实现寄存器数据的分发操作,满足阵列对计算数据并发输入的需求。这种粗粒度动态可重构数据规整控制单元结构有效解决了数据加载过程中的非对齐存取和数据规整的问题。
Description
技术领域
本发明涉及一种粗粒度动态可重构数据规整控制单元结构,属于嵌入式可重构设计技术。
背景技术
可重构计算是一种将软件的灵活性和硬件的高效性结合在一起的计算方式,比如现场可编程逻辑门阵列就是一个可重构计算应用的具体实例。和普通微处理器之间的区别在于它不仅可以改变控制流,还可以改变数据通路的结构,具有高性能、低硬件开销和功耗、灵活性好、拓展性好的优点。目前主要应用于媒体处理、模式识别、基带处理等计算密集型的算法。随着嵌入式处理器普遍要求缩短设计周期、降低设计和开发成本,另外最终市场和技术的不确定性越来越大,可重构处理初步成为嵌入式处理器国际发展的趋势。不仅如此,在很多高性能计算的领域它也有所涉足,包括结构分析、计算流体力学、分子模拟、生物信息、计算化学、地震地质(油气勘探)、数值气象、宇宙学研究等。
随着各类软件应用的要求越来越高,相应的,对可重构系统的性能要求也越来越高。同样可重构计算的数据流通也面临诸多挑战,除了面临大数据访问量的挑战,还需要面对由于访存效率低下而带来的性能降低。访存效率低的原因除了存储器的固有访存延时,数据在存储器中存放结构,数据的访存方式对传输效率也有极大的影响。数据传输面临非对齐存取和数据规整的问题。
传统的通用处理器会在编译过程中自动对数据结构进行补足,并对可能产生这类问题的冒险行为进行警告。不对齐的内存字操作往往会导致硬件异常,或者在通用处理器的微码中将这类操作转换成两次读操作。
单指令多数据流处理器在地址对齐时可以一次并发访问多个数据,但是当面对地址不对齐时,则需要通过数据规整和拼接得到所需的数据结构。虽然并发访问获得数据带宽的成倍提高,但是增加了编程复杂性,通常仅针对应用的核心计算进行单指令多数据流代码的改写。
专用集成电路方式在实现特定的数据访存行为时,有极高的效率。专用集成电路的实现方式可以同时实现数据移位和访存,增加数据访存效率的同时,提高应用的处理性能。但是,针对具体算法的特殊设计不仅设计复杂,而且导致专用集成电路应用的局限性。
在已有的可重构架构研究中,采用了多种设计方法来满足数据流规整的需求。传统的粗粒度可重构架构为了满足灵活的数据存储,采用可重构计算单元显示存取的方式实现阵列外数据存取,并针对多模块的存储结构进行访存调度满足计算数据的需求。这样的设计简化了数据的路由通路,但是存取的可重构计算单元同样也占用了计算资源,特别是可重构计算单元的数据存取会导致整个阵列计算流水被阻塞,导致计算性能受到限制。虽然通过探索数据的预取和重用可以有效的隐藏访存开销,但是仍然受到数据并行性的影响,无法利用多个计算之间数据的依赖关系获得更好的数据并行性的执行性能。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种粗粒度动态可重构数据规整控制单元结构,探索基于预取和重用的访存单元寄存器,并对可重构阵列离散不规则计算数据的需求进行研究,提出基于矢量寄存器文件设计的数据流规整单元,解决可重构访存数据通路的瓶颈。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种粗粒度动态可重构数据规整控制单元结构,包括数据流控制模块,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,所述三个模块通过矢量数据寄存器文件和矢量相移寄存器文件实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,具体为:
所述矢量加载模块:通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载;
所述矢量移相模块:通过动态可重构配置的方式实现对矢量数据寄存器文件中数据的移位、拼接等操作,将输出的数据写入矢量相移寄存器文件;
所述解包分发模块:通过动态重构配置实现矢量相移寄存器文件中数据的分发操作,满足可重构阵列对计算数据并发输入的需求。
优选的,所述矢量加载模块主要用于实现对不同存储空间的访存控制和数据流的非对齐加载,包括访存控制逻辑、并发访存状态机、内部存储访存控制、外部存储访存控制和数据选择:
所述访存控制逻辑:动态重构配置信息解码后向并发访存状态机发出控制命令;
所述并发访存状态机:利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求,减少数据等待的时延;
所述内部存储访存控制和外部存储访存控制:除了向系统总线发起满足协议的访存操作,还需要将非对齐的访存请求拆分为地址对齐的多次访存操作;
所述数据选择:从系统总线返回的数据在数据选择中完成移位、拼接等操作之后写入矢量数据寄存器文件中。
优选的,所述矢量移相模块中设计有类似于扩展单指令多数据流结构的移相处理簇,可以同时并行处理多个不同的寄存器,获得数据处理能力的多倍提升。
优选的,所述移相处理簇中设计有移相处理单元,所述移相处理单元的结构与可重构计算单元类似,区别在于移相处理单元的处理核心不是用于处理数据计算的算术逻辑单元,而是增强的移相单元;除了处理核心的不同,数据位宽也比可重构计算单元大很多,采用128bit设计;另外,由于采用传统的单指令多数据流结构,数据的输入不需要考虑邻近处理单元的直接连接,而仅仅需要考虑来自不同寄存器文件的输入即可。
优选的,所述解包分发模块负责将矢量移相模块处理后的数据加载到可重构阵列数据接口,主要实现两种功能:
数据对齐:由于存在可重构计算单元的数据位宽与应用的计算位宽不匹配,因而在解包分发模块,需要对数据进行对齐操作,包括移位和补齐操作;
数据的路由分发:利用解包分发模块中的解包分发单元实现矢量相移寄存器文件中每个矢量相移寄存器与每行可重构计算单元之间的一一对应关系。
有益效果:本发明提供的粗粒度动态可重构数据规整控制单元结构,矢量加载模块、矢量移相模块和解包分发模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,有效解决了数据加载过程中的非对齐存取和数据规整的问题;相对于传统的显示存取可重构的数据访存设计,数据流规整单元的设计可以有效的提高计算性能达到平均3.34倍。
附图说明
图1为本发明的结构示意图;
图2为矢量加载模块结构示意图;
图3为并发访存状态机状态转换示意图;
图4为矢量移相模块结构示意图;
图5为移相处理单元结构示意图;
图6为解包分发模块结构示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种粗粒度动态可重构数据规整控制单元结构,包括数据流控制模块,如图1所示,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,三个模块通过双缓冲寄存器实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步。
所述矢量加载模块:通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载,具体操作方式如图2所示;
所述矢量移相模块:通过动态可重构配置的方式实现对矢量数据寄存器文件中数据的移位、拼接等操作,将输出的数据写入矢量相移寄存器文件,其工作机理如图4所示;
所述解包分发模块:通过动态重构配置实现矢量相移寄存器文件中数据的分发操作,满足可重构阵列对计算数据并发输入的需求,工作流程如图6所示。
矢量加载模块通过两条不同位宽的标准AMBA AHB2.0总线与系统连接,分别与片上存储器和片外存储控制器连接,可以满足可重构阵列对不同数据传输的设计需求。动态重构配置信息在访存控制逻辑中解码,向并发访存状态机发出控制命令。根据地址空间的不同,并发访存状态机控制内部存储访存控制和外部存储访存控制向系统总线发出访存操作。从系统总线返回的数据在数据选择中完成移位、拼接等操作之后写入矢量寄存器文件中。内部存储访存控制和外部存储访存控制同时维护了各自的总线访存协议控制,用于实现与外部接口的交互。下面通过图3对并发访存状态机工作方式具体分析。
并发访存状态机利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求,减少数据等待的时延。如图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状态间切换,并发访存状态机简化为单一的顺序访存控制逻辑。
为了满足非对齐存取的设计需求,需要对访存请求和返回的数据进行处理。由于系统总线的传输需要满足地址对齐,因而内部存储访存控制和外部存储访存控制除了向总线发起满足协议的访存操作,还需要将非对齐的访存请求,拆分为地址对齐的多次访存操作。同时,需要将多个返回的数据进行拼接,以得到非对齐存取的矢量数据。数据的拼接操作在数据选择中完成。例如,当矢量加载模块从起始地址低位为0x3处开始加载时,由于外部总线的采用32bit对齐Burst4的方式进行数据访问,因而,需要将两次总线访存0x0和0x4的数据进行移位拼接,才能获得所需的访存数据。
如图4所示,所述矢量移相模块中设计有类似于扩展单指令多数据流结构的移相处理簇,可以同时并行处理多个不同的寄存器,获得数据处理能力的多倍提升。
优选的,所述移相处理簇中设计有移相处理单元,所述移相处理单元的结构与可重构计算单元类似,区别在于移相处理单元的处理核心不是用于处理数据计算的算术逻辑单元,而是增强的移相单元;除了处理核心的不同,数据位宽也比可重构计算单元大很多,采用128bit设计;另外,由于采用传统的单指令多数据流结构,数据的输入不需要考虑邻近处理单元的直接连接,而仅仅需要考虑来自不同寄存器文件的输入即可。
本案中,在整个数据流控制模块中包括两套独立的相移处理簇,最高可以获得同时处理8个线程的计算能力。同时,在计算需求仅有一半的时候,可以关闭第二套移相处理簇,从而达到减少移相命令加载和降低系统功耗的目的。单个“移相处理簇”包含4个移相处理单元,特别针对矢量移相指令进行设计功能优化,其数据位宽与双缓冲寄存器相匹配。
按照图4的描述移相命令队列中的指令依次经过译码之后分发到4个移相处理单元中,每个移相处理单元根据所解析的命令进行计算。数据在矢量移相模块最少可以实现在1个时钟周期内完成数据处理,而最大的处理周期则根据命令队列的长度相关,受到数据移相需求和数据量大小的限制。
通过图5对移相处理单元的描述,移相处理单元的输入数据通过选择信号可以分别来自矢量数据寄存器文件和矢量相移寄存器文件,输出数据则写入矢量相移寄存器文件。来自矢量数据寄存器文件的数据通过数据选择分别进入移相处理单元的不同端口,计算的输出最终写入矢量相移寄存器,并给出标示信号。同时,矢量相移寄存器也作为计算过程中用于存放临时数据的寄存器。
所述解包分发模块将双缓冲寄存器中的数据处理后按列映射到可重构计算阵列每行的数据接口上,按照图6所示流程,首先根据解包分发命令中操作数目和源操作数的大小对输入数据进行移位操作,之后,按照目标操作数的大小设置进行数据补齐操作,最后,将处理后的数据分发到计算阵列的数据接口中。由于每个重构处理单元拥有两个数据输入端口,因此,对于8x8的可重构阵列而言,每行拥有16个数据输入端口,这样寄存器中可以容纳的最大16个8bit的数据同时对齐后输入阵列。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种粗粒度动态可重构数据规整控制单元结构,其特征在于:包括数据流控制模块,所述数据流控制模块包括矢量加载模块、矢量移相模块和解包分发模块三个模块,所述三个模块通过矢量数据寄存器文件和矢量相移寄存器文件实现多层次的复合两级流水线,并通过硬件握手实现流水线的同步,具体为:矢量加载模块和矢量移相模块之间设置有矢量数据寄存器文件,矢量移相模块和解包分发模块之间设置有矢量相移寄存器文件;
所述矢量加载模块:通过动态重构配置实现对不同数据地址空间的访问,完成数据从存储器到矢量数据寄存器文件的加载;所述矢量加载模块主要用于实现对不同存储空间的访存控制和数据流的非对齐加载,包括访存控制逻辑、并发访存状态机、内部存储访存控制、外部存储访存控制和数据选择:
所述访存控制逻辑:动态重构配置信息解码后向并发访存状态机发出控制命令;
所述并发访存状态机:利用内部和外部存储器独立的数据通路,并行处理内部和外部存储的访存请求,减少数据等待的时延;
所述内部存储访存控制和外部存储访存控制:除了向系统总线发起满足协议的访存操作,还需要将非对齐的访存请求拆分为地址对齐的多次访存操作;
所述数据选择:从系统总线返回的数据在数据选择中完成移位、拼接操作之后写入矢量数据寄存器文件中;
所述矢量移相模块:通过动态可重构配置的方式实现对矢量数据寄存器文件中数据的移位、拼接操作,将输出的数据写入矢量相移寄存器文件;所述矢量移相模块中设计移相处理簇,可以同时并行处理多个不同的寄存器,获得数据处理能力的多倍提升;
所述解包分发模块:通过动态重构配置实现矢量相移寄存器文件中数据的分发操作,满足可重构阵列对计算数据并发输入的需求。
2.根据权利要求1所述的粗粒度动态可重构数据规整控制单元结构,其特征在于:所述移相处理簇中设计有移相处理单元,所述移相处理单元的处理核心是增强的移相单元。
3.根据权利要求1所述的粗粒度动态可重构数据规整控制单元结构,其特征在于:所述解包分发模块负责将矢量移相模块处理后的数据加载到可重构阵列数据接口,主要实现两种功能:
数据对齐:由于存在可重构计算单元的数据位宽与应用的计算位宽不匹配,因而在解包分发模块,需要对数据进行对齐操作,包括移位和补齐操作;
数据的路由分发:利用解包分发模块中的解包分发单元实现矢量相移寄存器文件中每个矢量相移寄存器与每行可重构计算单元之间的一一对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046567.2A CN103761075B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度动态可重构数据规整控制单元结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046567.2A CN103761075B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度动态可重构数据规整控制单元结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103761075A CN103761075A (zh) | 2014-04-30 |
CN103761075B true CN103761075B (zh) | 2017-01-25 |
Family
ID=50528319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410046567.2A Active CN103761075B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度动态可重构数据规整控制单元结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761075B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407880A (zh) * | 2014-10-27 | 2015-03-11 | 杭州中天微系统有限公司 | 支持硬件非对齐存储访问的risc处理器加载/存储单元 |
CN104391820B (zh) * | 2014-11-25 | 2017-06-23 | 清华大学 | 基于fpga的通用浮点矩阵处理器硬件结构 |
CN104572029B (zh) * | 2014-12-26 | 2017-06-30 | 中国科学院自动化研究所 | 一种状态机可拼接性和拼接规则判定方法和装置 |
CN105468568B (zh) * | 2015-11-13 | 2018-06-05 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN107590085B (zh) * | 2017-08-18 | 2018-05-29 | 浙江大学 | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 |
CN108717402B (zh) * | 2018-05-16 | 2021-03-30 | 清华大学 | 用于可重构处理系统的存储器和可重构处理系统 |
CN110825435B (zh) * | 2018-08-10 | 2023-01-24 | 昆仑芯(北京)科技有限公司 | 用于处理数据的方法和装置 |
CN111475205B (zh) * | 2020-03-02 | 2023-03-17 | 上海交通大学 | 一种基于数据流解耦合的粗粒度可重构阵列结构设计方法 |
CN113746486B (zh) * | 2021-09-15 | 2022-09-02 | 北京中科胜芯科技有限公司 | 一种针对fpga配置码流并行流水线式解压缩装置 |
CN115328821B (zh) * | 2022-10-18 | 2022-12-23 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571303B2 (en) * | 2002-10-16 | 2009-08-04 | Akya (Holdings) Limited | Reconfigurable integrated circuit |
US8078835B2 (en) * | 2007-09-11 | 2011-12-13 | Core Logic, Inc. | Reconfigurable array processor for floating-point operations |
CN102510273A (zh) * | 2011-12-27 | 2012-06-20 | 中国科学院自动化研究所 | 一种有限脉冲响应滤波器 |
-
2014
- 2014-02-10 CN CN201410046567.2A patent/CN103761075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571303B2 (en) * | 2002-10-16 | 2009-08-04 | Akya (Holdings) Limited | Reconfigurable integrated circuit |
US8078835B2 (en) * | 2007-09-11 | 2011-12-13 | Core Logic, Inc. | Reconfigurable array processor for floating-point operations |
CN102510273A (zh) * | 2011-12-27 | 2012-06-20 | 中国科学院自动化研究所 | 一种有限脉冲响应滤波器 |
Also Published As
Publication number | Publication date |
---|---|
CN103761075A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761075B (zh) | 一种粗粒度动态可重构数据规整控制单元结构 | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
US20190007332A1 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US20190102179A1 (en) | Processors and methods for privileged configuration in a spatial array | |
US7114056B2 (en) | Local and global register partitioning in a VLIW processor | |
EP1958059B1 (en) | Distributed loop controller architecture for multi-threading in uni-threaded processors | |
US20190005161A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US20190004945A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features | |
US20150012723A1 (en) | Processor using mini-cores | |
CN103229122B (zh) | 提供每内核电压和频率控制 | |
US20200310994A1 (en) | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator | |
WO2019194916A1 (en) | Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator | |
US9910673B2 (en) | Reconfigurable microprocessor hardware architecture | |
US7694084B2 (en) | Ultra low power ASIP architecture | |
CN102023844B (zh) | 并行处理器及其线程处理方法 | |
US20120303933A1 (en) | tile-based processor architecture model for high-efficiency embedded homogeneous multicore platforms | |
CN105468568B (zh) | 高效的粗粒度可重构计算系统 | |
US20140137123A1 (en) | Microcomputer for low power efficient baseband processing | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN107273205B (zh) | 用于在计算机处理器中调度指令的方法和系统 | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
CN107567614A (zh) | 用于对根据关键度被分组的指令的缕程的执行的多核处理器 | |
CN107562549B (zh) | 基于片上总线和共享内存的异构众核asip架构 | |
CN101739383A (zh) | 一种可配置处理器体系结构和控制方法 | |
CN203706197U (zh) | 一种粗粒度动态可重构数据规整控制单元结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |