CN103761072B - 一种粗粒度可重构层次化的阵列寄存器文件结构 - Google Patents
一种粗粒度可重构层次化的阵列寄存器文件结构 Download PDFInfo
- Publication number
- CN103761072B CN103761072B CN201410046664.1A CN201410046664A CN103761072B CN 103761072 B CN103761072 B CN 103761072B CN 201410046664 A CN201410046664 A CN 201410046664A CN 103761072 B CN103761072 B CN 103761072B
- Authority
- CN
- China
- Prior art keywords
- reconfigurable
- register file
- processing unit
- register
- depositor
- 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
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种粗粒度可重构层次化的阵列寄存器文件结构,包括全局寄存器文件、本地寄存器文件和分布式寄存器文件。全局寄存器文件:作为连接系统控制内核和可重构阵列的共享寄存器,不仅满足系统对可重构架构调用时的参数传递问题,而且作为阵列上每个单元都可以连接的寄存器,拥有可重构阵列中最大的扇出系数;本地寄存器文件:作为重构处理单元的私有寄存器,数据仅供自己使用;分布式寄存器文件:作为可重构阵列内部分重构计算单元数据寄存和传输通道。本发明通过层次化的可重构阵列寄存器文件结构设计,解决可重构计算过程中阵列数据的寄存和传输问题,提高阵列中数据变量存储效率和可重构计算性能。
Description
技术领域
本发明涉及一种粗粒度可重构层次化的阵列寄存器文件结构,属于嵌入式可重构设计技术。
背景技术
随着现场可编程阵列可重构技术的出现,大大改变了传统的嵌入式设计的方法,可重构计算作为一种新型时空域的计算模式,在嵌入式和高性能的计算领域具有广泛的应用前景,已经成为当前嵌入式系统发展的趋势。图像处理和现代通信等媒体应用领域算法具有大规模并行性,需要进行大量的矩阵运算。寄存器文件设计允许灵活的重排序操作和移位操作。通过多路选择器实现读/写数据选择到不同的寄存器中。相比延时链和移位寄存器,寄存器文件在写操作时有更多的功耗消耗。消耗包括译码和选择的相关逻辑。因此,只有在寄存器文件作为长时间的数据存储的时候可以抵消功耗上面的损失。寄存器对于短生命周期的数据不是一个最佳选择。
可以将现有的可重构寄存器文件架构按照对阵列计算性能的影响划分为两类:一类是阵列外的片存取寄存器,一类是阵列内的分布式寄存器。可重构阵列的数据存取优化,一方面可以通过阵列外的片上存取寄存器减少访存延时实现,另一方面还可以通过优化片上存取寄存器的访存模式来实现。而通过优化阵列内的分布式寄存器结构,可以减少数据在计算过程中因为架构约束而带来的调度性能下降,并通过层次化的寄存器文件设计和调度策略,提高阵列的计算性能。
可重构片上存取寄存器所涉及的寄存器组织形式、共享机制、替换策略、划分机制都需要根据具体的阵列结构和访存特性进行相应研究,以便在低访问延迟和高命中率之间进行权衡与折中。通过对阵列外的数据访存通路的研究,包括片上存储器的设计,预取和重用的单元结构,以及基于矢量和标量的寄存器文件设计组成了阵列外的数据流通路。
可重构阵列与全局寄存器的访存方式对访存效率的影响也愈发突出,对于连续,密集数据的快速,对带宽性能的影响巨大。可重构阵列与全局寄存器的互联形式明显束缚阵列的对访存性能,现有设计中采用的交叉互联结构以及环状结构实现高效的访问的目标,满足低延迟、高带宽、低功耗的存储访问需求;或者采用二维的存取模式用于加速多媒体数据的存取。
如何以较低代价实现行向量寄存器和列向量寄存器的灵活分块,即设计出可重构的层次化的阵列寄存器文件,仍是本领域研究的热点问题。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种粗粒度可重构层次化的阵列寄存器文件结构,解决可重构计算过程中阵列数据的寄存和传输问题,以实现提高阵列中数据变量存储效率和可重构计算性能的优点。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种粗粒度可重构层次化的阵列寄存器文件结构,用于实现m×n矩形阵列排布的可重构阵列与系统控制内核之间的参数传递,同时完成可重构阵列上的数据寄存和传输,包括全局寄存器文件、本地寄存器文件和分布式寄存器文件:
所述全局寄存器文件:作为连接系统控制内核和可重构阵列的共享寄存器,不仅满足系统控制内核对可重构阵列调用时的参数传递需求,而且作为每个重构处理单元都可以连接的寄存器,拥有可重构阵列中最大的扇出系数;
所述本地寄存器文件:每个重构处理单元均对应设计有一个本地寄存器,所述本地寄存器作为与之相对应的重构处理单元的私有寄存器,数据仅供与之相对应的重构处理单元使用;
所述分布式寄存器文件:作为可重构阵列中部分重构处理单元之间的数据寄存和传输通道。
优选的,所述全局寄存器文件,包括n个全局寄存器,所述全局寄存器文件的数据位宽与重构处理单元的数据位宽一致;所述全局寄存器文件作为数据传输通道,用于传输输入参数和返回值,并且系统控制内核和可重构阵列都可以对全局寄存器进行存取。
优选的,所述全局寄存器文件与可重构阵列直接互联,具体实现方法为:设计全局寄存器文件顶端的m个全局寄存器和底端的1个全局寄存器采用全网状互联和总线互联、可以被所有的重构处理单元访问,其余全局寄存器采用总线互联;当循环传入参数大于m、超过顶端的m个全局寄存器时,多出的参数需要通过总线访问;底端的1个全局寄存器用于传输函数返回值。
优选的,所述本地寄存器文件,主要用于存储生命周期较长而空间位置固定的变量,其输入和输出的对象都只是其私有的重构处理单元(对应的重构处理单元);所述本地寄存器能够在一个周期内完成输出数据到输入数据的准备工作;所述本地寄存器的写入通过配置字中的使能位控制,当使能位置时,其可以在一个周期内完成将重构处理单元的计算结果写入本地寄存器的本地寄存器文件中。
优选的,所述分布式寄存器文件由按m×n矩形阵列排布的分布式寄存器构成,每行寄存器组和每列寄存器组共享一个分布式寄存器,分布式寄存器和重构处理单元的位置一一对应;每个重构处理单元可以操作两组寄存器,分别为对应位置分布式寄存器所置于的一行寄存器组和一列寄存器组;每个重构处理单元在同一时间仅能操作一组寄存器,多个重构处理单元间的读写操作通过多路器进行选择;多个重构处理单元可以同时对跨行域寄存器组进行写操作;多个重构处理单元可以同时对同一个分布式寄存器进行读操作。
优选的,所述跨域寄存器组以行互联或列互联的方式实现互联,当位于第i行、第j列的重构处理单元将数据写入跨域寄存器时,位于第i行或第j列上的所有重构处理单元都可以通过跨域寄存器获得数据。
优选的,所述分布式寄存器文件采用多输入、多输出的数据访存形式,为了避免出现不同的重构处理单元同时存取同一个分布式寄存器,采用下述两种方法规避:
方法一、通过在映射中避免同时对同一个分布式寄存器进行存取;
方法二、在不可预知的多个重构处理单元同时存取同一个分布式寄存器的情况下,根据重构处理单元在可重构阵列中的编号,按照编号顺序从大到小进行优先等级划分,优先等级高的重构处理单元用于写入的权利。
有益效果:本发明提供的粗粒度可重构层次化的阵列寄存器文件结构,使得可重构计算过程中阵列数据的寄存和传输能够准确高效地进行,提高阵列中数据变量存储效率和可重构计算性能。
附图说明
图1为本发明的一种结构示意图;
图2为全局寄存器文件示意图;
图3为本地寄存器文件示意图;
图4为分布式寄存器文件示意图;
图5为本发明的一个实例的结构示意图;
图6为本发明数据变量寄存传输的流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种粗粒度可重构层次化的阵列寄存器文件结构,用于实现m×n矩形阵列排布的可重构阵列与系统控制内核之间的参数传递,同时完成可重构阵列上的数据寄存和传输;如图1所示,包括全局寄存器文件、本地寄存器文件和分布式寄存器文件。
所述全局寄存器文件:作为连接系统控制内核和可重构阵列的共享寄存器,不仅满足系统控制内核对可重构阵列调用时的参数传递需求,而且作为每个重构处理单元都可以连接的寄存器,拥有可重构阵列中最大的扇出系数。
所述全局寄存器文件,包括n个全局寄存器,所述全局寄存器文件的数据位宽与重构处理单元的数据位宽一致;所述全局寄存器文件作为数据传输通道,用于传输输入参数和返回值,并且系统控制内核和可重构阵列都可以对全局寄存器进行存取。所述全局寄存器文件与可重构阵列直接互联,具体实现方法为:设计全局寄存器文件顶端的m个全局寄存器和底端的1个全局寄存器采用全网状互联和总线互联、可以被所有的重构处理单元访问,其余全局寄存器采用总线互联;当循环传入参数大于m、超过顶端的m个全局寄存器时,多出的参数需要通过总线访问;底端的1个全局寄存器用于传输函数返回值。
如图2所示的全局寄存器文件,包含了16个全局寄存器,其中顶端的3个全局寄存器和底端的1个全局寄存器可以被所有的重构处理单元访问;当循环传入的参数大于3,超过顶端的3个寄存器时,多出的参数需要通过总线访问;特别的,底端的全局寄存器用于函数返回值;全局寄存器采用重构阵列时钟域和复位域,支持软、硬件复位操作。
所述本地寄存器文件:每个重构处理单元均对应设计有一个本地寄存器,所述本地寄存器作为与之相对应的重构处理单元的私有寄存器,数据仅供与之相对应的重构处理单元使用。
所述本地寄存器文件,主要用于存储生命周期较长而空间位置固定的变量,其输入和输出的对象都只是其私有的重构处理单元(对应的重构处理单元);所述本地寄存器能够在一个周期内完成输出数据到输入数据的准备工作;所述本地寄存器的写入通过配置字中的使能位控制,当使能位置时,其可以在一个周期内完成将重构处理单元的计算结果写入本地寄存器的本地寄存器文件中。
如图3所示,本地寄存器在设计时仅提供4个子本地寄存器,本地寄存器能够在1个周期中完成输出数据到输入数据的准备工作。
所述分布式寄存器文件:作为可重构阵列中部分重构处理单元之间的数据寄存和传输通道。
所述分布式寄存器文件由按m×n矩形阵列排布的分布式寄存器构成,每行寄存器组和每列寄存器组共享一个分布式寄存器,分布式寄存器和重构处理单元的位置一一对应;每个重构处理单元可以操作两组寄存器,分别为对应位置分布式寄存器所置于的一行寄存器组和一列寄存器组;每个重构处理单元在同一时间仅能操作一组寄存器,多个重构处理单元间的读写操作通过多路器进行选择;多个重构处理单元可以同时对跨行域寄存器组进行写操作;多个重构处理单元可以同时对同一个分布式寄存器进行读操作。所述跨域寄存器组以行互联或列互联的方式实现互联,当位于第i行、第j列的重构处理单元将数据写入跨域寄存器时,位于第i行或第j列上的所有重构处理单元都可以通过跨域寄存器获得数据。所述分布式寄存器文件采用多输入、多输出的数据访存形式,为了避免出现不同的重构处理单元同时存取同一个分布式寄存器,采用下述两种方法规避:
方法一、通过在映射中避免同时对同一个分布式寄存器进行存取;
方法二、在不可预知的多个重构处理单元同时存取同一个分布式寄存器的情况下,根据重构处理单元在可重构阵列中的编号,按照编号顺序从大到小进行优先等级划分,优先等级高的重构处理单元用于写入的权利。
举例来说,当位于阵列(i,j)点的重构处理单元输出的数据需要传递到位于阵列(1,1)点的重构处理单元时,通过位于(i,1)或(1,j)位置的重构处理单元进行数据传递,在运行Ti时刻,位于阵列(i,j)点的重构处理单元将数据写入跨行寄存器组中的0位,在Ti+1时刻,位于阵列(i,1)点的重构处理单元通过数据交换指令将DCR跨行寄存器组0中的数据写入跨列寄存器组0的位置,这样在Ti+2时刻,位于阵列(1,1)点的重构处理单元即可以在跨列寄存器组0中获得位于阵列(i,j)点的重构处理单元写出的数据。
如图5所示的可重构计算最小系统,采用了本案提出的可重构层次化的阵列寄存器文件结构。该系统的结构包括:用作系统控制内核的ARM7TDMI处理器、可重构阵列、全局寄存器文件、本地寄存器文件、用作传输数据的AHB总线和分布式寄存器文件。
选择具有小型、快速、低能耗、编译器支持好等优点的ARM7TDMI处理器作为内核,用于控制系统运行的调度和配置;全局寄存器文件与可重构阵列通过64bitAHB总线相连;本地寄存器文件与可重构阵列通过专用的访问接口互联,数据位宽为128bit;分布式寄存器文件与可重构阵列通过专用的访问接口互联,数据位宽为128bit;可重构阵列含有4×4个重构处理单元,每个重构处理单元可以支持单周期的16位算术操作和逻辑操作。
可重构阵列数据的寄存和传输的过程如图6所示,包括:传输请求:可重构阵列根据外部存储器取得的指令,请求参数或可重构阵列数据的传输;若所需传输的数据与系统控制内核交换,则通过全局寄存器文件实现和系统控制内核的数据交换;否则判断是否为可重构阵列内数据交换,若为可重构阵列内数据交换,则通过分布式寄存器文件实现数据的寄存和交换;否则的即为重构处理单元的数据寄存,通过本地寄存器进行数据寄存。可重构数据的寄存和传输根据不同情况,选择最合适的寄存器文件进行寄存和传输,充分利用了寄存器文件的资源,从而提高了数据变量存储效率和可重构计算性能。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:用于实现m×n矩形阵列排布的可重构阵列与系统控制内核之间的参数传递,同时完成可重构阵列上的数据寄存和传输,包括全局寄存器文件、本地寄存器文件和分布式寄存器文件:
所述全局寄存器文件:作为连接系统控制内核和可重构阵列的共享寄存器,不仅满足系统控制内核对可重构阵列调用时的参数传递需求,而且作为每个重构处理单元都可以连接的寄存器,拥有可重构阵列中最大的扇出系数;所述全局寄存器文件,包括n个全局寄存器,所述全局寄存器文件的数据位宽与重构处理单元的数据位宽一致;所述全局寄存器文件作为数据传输通道,用于传输输入参数和返回值,并且系统控制内核和可重构阵列都可以对全局寄存器进行存取;
所述本地寄存器文件:每个重构处理单元均对应设计有一个本地寄存器,所述本地寄存器作为与之相对应的重构处理单元的私有寄存器,数据仅供与之相对应的重构处理单元使用;
所述分布式寄存器文件:作为可重构阵列中重构处理单元之间的数据寄存和传输通道。
2.根据权利要求1所述的粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:所述全局寄存器文件与可重构阵列直接互联,具体实现方法为:设计全局寄存器文件顶端的m个全局寄存器和底端的1个全局寄存器采用全网状互联和总线互联、可以被所有的重构处理单元访问,其余全局寄存器采用总线互联;当循环传入参数大于m、超过顶端的m个全局寄存器时,多出的参数需要通过总线访问;底端的1个全局寄存器用于传输函数返回值。
3.根据权利要求1所述的粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:所述本地寄存器文件,主要用于存储生命周期较长而空间位置固定的变量,其输入和输出的对象都只是其私有的重构处理单元;所述本地寄存器能够在一个周期内完成输出数据到输入数据的准备工作;所述本地寄存器的写入通过配置字中的使能位控制,当使能位置时,其可以在一个周期内完成将重构处理单元的计算结果写入本地寄存器的本地寄存器文件中。
4.根据权利要求1所述的粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:所述分布式寄存器文件由按m×n矩形阵列排布的分布式寄存器构成,每行寄存器组和每列寄存器组共享一个分布式寄存器,分布式寄存器和重构处理单元的位置一一对应;每个重构处理单元可以操作两组寄存器,分别为对应位置分布式寄存器所置于的一行寄存器组和一列寄存器组;每个重构处理单元在同一时间仅能操作一组寄存器,多个重构处理单元间的读写操作通过多路器进行选择;多个重构处理单元可以同时对跨域寄存器组进行写操作;多个重构处理单元可以同时对同一个分布式寄存器进行读操作。
5.根据权利要求4所述的粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:所述跨域寄存器组以行互联或列互联的方式实现互联,当位于第i行、第j列的重构处理单元将数据写入跨域寄存器时,位于第i行或第j列上的所有重构处理单元都可以通过跨域寄存器获得数据。
6.根据权利要求4所述的粗粒度可重构层次化的阵列寄存器文件结构,其特征在于:所述分布式寄存器文件采用多输入、多输出的数据访存形式,为了避免出现不同的重构处理单元同时存取同一个分布式寄存器,采用下述两种方法规避:
方法一、通过在映射中避免同时对同一个分布式寄存器进行存取;
方法二、在不可预知的多个重构处理单元同时存取同一个分布式寄存器的情况下,根据重构处理单元在可重构阵列中的编号,按照编号顺序从大到小进行优先等级划分,优先等级高的重构处理单元用于写入的权利。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046664.1A CN103761072B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046664.1A CN103761072B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103761072A CN103761072A (zh) | 2014-04-30 |
CN103761072B true CN103761072B (zh) | 2016-08-31 |
Family
ID=50528316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410046664.1A Active CN103761072B (zh) | 2014-02-10 | 2014-02-10 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761072B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317770B (zh) * | 2014-10-28 | 2017-03-08 | 天津大学 | 用于众核处理系统的数据存储结构及数据访问方法 |
CN104915213B (zh) * | 2015-06-19 | 2018-05-18 | 东南大学 | 一种可重构系统的局部重构控制器 |
CN105468568B (zh) * | 2015-11-13 | 2018-06-05 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN107590085B (zh) * | 2017-08-18 | 2018-05-29 | 浙江大学 | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 |
CN112463719A (zh) * | 2020-12-04 | 2021-03-09 | 上海交通大学 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
CN112486904A (zh) * | 2020-12-18 | 2021-03-12 | 清华大学 | 可重构处理单元阵列的寄存器堆设计方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402415A (zh) * | 2011-10-21 | 2012-04-04 | 清华大学 | 一种动态可重构阵列内数据缓存的装置及方法 |
CN203706196U (zh) * | 2014-02-10 | 2014-07-09 | 东南大学 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133688A1 (en) * | 2001-01-29 | 2002-09-19 | Ming-Hau Lee | SIMD/MIMD processing on a reconfigurable array |
-
2014
- 2014-02-10 CN CN201410046664.1A patent/CN103761072B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402415A (zh) * | 2011-10-21 | 2012-04-04 | 清华大学 | 一种动态可重构阵列内数据缓存的装置及方法 |
CN203706196U (zh) * | 2014-02-10 | 2014-07-09 | 东南大学 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
Non-Patent Citations (1)
Title |
---|
支持循环自动流水线的粗粒度可重构阵列体系结构;窦勇等;《中国科学E辑:信息科学》;20080415;第38卷(第4期);第579页至第591页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103761072A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761072B (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN107590085B (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
Pellauer et al. | Buffets: An efficient and composable storage idiom for explicit decoupled data orchestration | |
Zhan et al. | OSCAR: Orchestrating STT-RAM cache traffic for heterogeneous CPU-GPU architectures | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN102497411B (zh) | 面向密集运算的层次化异构多核片上网络架构 | |
CN103246542B (zh) | 智能缓存及智能终端 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN105468568B (zh) | 高效的粗粒度可重构计算系统 | |
Lodde et al. | Heterogeneous NoC design for efficient broadcast-based coherence protocol support | |
CN104317770B (zh) | 用于众核处理系统的数据存储结构及数据访问方法 | |
CN101833441A (zh) | 并行向量处理引擎结构 | |
CN107113253A (zh) | 用于片上网络的空间划分的电路交换信道 | |
CN107506329B (zh) | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 | |
WO2014004007A2 (en) | Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring | |
CN108647777A (zh) | 一种实现并行卷积计算的数据映射系统及方法 | |
CN107562549B (zh) | 基于片上总线和共享内存的异构众核asip架构 | |
CN203706196U (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN104035896B (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
CN106339327B (zh) | 一种计算机系统及刀片式服务器机箱 | |
CN100456232C (zh) | 针对流处理的存储访问与调度装置 | |
CN114116167B (zh) | 一种面向高性能计算的区域自治异构众核处理器 | |
Li et al. | An efficient multicast router using shared-buffer with packet merging for dataflow architecture | |
Di et al. | Microprocessor architecture and design in post exascale computing era | |
Li et al. | Cross-layer techniques for optimizing systems utilizing memories with asymmetric access characteristics |
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 |