The Research of Application Customization Reconfigurable Pipelinin

Page 1

Scientific Journal of Information Engineering August 2015, Volume 5, Issue 4, PP.119-125

The Research of Application Customization Reconfigurable Pipelining’s Multi-Functional Register File Kongfei Du#, Guanwu Wang, Sikun Li School of Computer Science, National University of Defense Technology, Hunan Chansgha 410073, China #

Email: adu_521@yeah.net

Abstract Reconfigurable pipeline have datapath and functional components reconfigurable, high flexibility, reconfigurable overhead small, support multiple data stream characteristics, this can significantly improve the efficiency of data-intensive computing model. In order to the needs of reconfigurable pipelined data flow, we designed a Multi-functional register file (MFRF). The multi-port register file, heap and stack using a set of register in MFRF. The MFRF combine the characteristics of general register file with the functions of heap and stack. The experimental results show that MFRF can effectively support a variety of data-streams for reconfigurable pipeline, the results of simulation matrix multiplication and FFT, compared with the general register file, Matrix multiplication with a significant performance improvement. Keywords: Multi-Functional Register File; Heap; Stack; Reconfigurable Pipeline; Model of Data Flow for Computing

应用定制可重构流水线多功能寄存器文件设计 * 杜孔飞,王观武,李思昆 国防科学技术大学计算机学院,湖南 长沙 410073 摘 要:可重构流水线具有数据通路和运算部件功能可重构、灵活性高、重构开销小、支持多种数据流计算模式的特点, 可显著提高数据密集型计算的效率。为了支持可重构流水线高效数据访问,设计了一种用于高速缓存的多功能寄存器文 件 MFRF。MFRF 采用一套寄存器组设计实现了多端口寄存器文件、堆、栈等多种功能,在没有显著增加面积开销的情 况下,既具有普通寄存器文件的特点又具有堆和栈的功能。实验结果表明,该多功能寄存器文件可以有效满足可重构流 水线的多种数据流计算模式的需求,运行矩阵乘和 FFT 算法等典型算法性能良好。 关键词:多功能寄存器文件;堆;栈;可重构流水线;数据流计算模式

引言 应用定制可重构流水线[1-2](Application Customization Reconfigurable Pipeline, ACRP)由应用定制处理单元 集、可重构互连数据通道、数据缓存部件等部分组成,具有数据通路和运算部件功能可重构、灵活性高、 重构开销小、支持多种数据流计算模式等特点,可显著提高数据密集型计算的效率。在语音处理、图像处 理等数据密集型计算领域应用前景广阔。ACRP 有两类数据,一类是源数据,需要运算部件进行计算处理的 数据;另一类是配置信息数据,用于根据执行上下文信息重构数据通路和配置运算部件功能的数据。应用 统计表明,ACRP 的计算时间开销约 60-70%用于数据访问操作,因而,做好数据缓存部件设计优化工作, 对提高 ACRP 的计算性能至关重要。 *

基金资助:受国家自然科学基金资助(61076020)。 - 119 http://www.sjie.org


ACRP 支持流水计算、循环计算、顺序计算、变序计算等多种数据流计算模式,不同的数据流计算模式 对数据存取方式的需求不同。例如,FFT(快速傅里叶变换)乘加循环计算的数据是变序存入-顺序读取, 对数据的存取是变序的;矩阵乘的乘加循环计算的数据位置不能改变,运算结果是有顺序的,对数据的存 取是有顺序的。另外,可重构数据通路的配置信息数据存取方式,根据应用算法的不同执行上下文,也有 顺序存取和变序存取的不同需求。因此,设计适合 ACRP 数据流计算模式的数据缓存部件结构是降低数据 存取开销的有效技术途径。 传统寄存器文件是由多个寄存器组成的阵列,用于在内存与运算部件之间暂存数据,通常由快速的静 态随机读写存储器(SRAM)实现,具有多个专门的读端口与写端口,可以多路并发访问不同的寄存器[3]。寄 存器文件的主要优点是代码可以产生最通用的模型,不同字长的数据可以采用不同宽度的寄存器来存储, 但是所有被操作数必须是命名的,因而指令较长。目前的多端口寄存器文件,是由读地址和写地址控制着 数据在寄存器文件中的读写位置,而读写地址是限制多端口寄存器文件发展的最主要原因之一[3][4]。堆栈的 好处是支持高效的数据顺序存取。缺点是不能随机访问,使用不够灵活。为了提高 ACRP 对多种数据流计 算模式的数据访问效率,需要设计一种既具有寄存器文件结构的数据存取方式,也具有堆栈结构的数据存 放方式的新数据缓存部件。 文献[5]提出了一种堆栈式寄存器堆,将通用寄存器组与寄存器堆栈体结合起来,实现了传统多端口寄存 器文件功能和先进后出(First-In Last-Out, FILO)方式的栈功能。但由于采用一套寄存器组和寄存器堆栈体组 合结构,硬件开销较大,而且不具有 ACRP 需要的先进先出(First-In First-Out, FIFO)方式的椎功能。 本文设计了一种多功能寄存器文件(Multi-functional register file, MFRF),采用一套寄存器组实现了传统 多端口寄存器文件、椎(先进先出,First-In First-Out,FIFO)、栈(先进后出,First-In Last-Out,FILO) 多种功能。典型应用算法实验结果表明,MFRF 在硬件开销不大的情况下,可有效支持可重构流水线的多种 数据流计算模式的高速数据访问,有良好的应用前景。

图 1 应用定制可重构流水线的结构框图 - 120 http://www.sjie.org


1

应用定制可重构流水线简介 应 用 定 制 可 重 构 流 水 线 [1][2] 的 结 构 如 图 1 所 示 。 ACRP 由 三 部 分 组 成 : 1) 应 用 定 制 处 理 单 元 集

(Customization Processing Element, CPE);2)可重构互连数据通道;3)数据缓存部件。CPE 是根据应用的特征 进行提取定制的指令集,根据面向的具体领域应用进行定制的。根据面向领域应用具体算法的控制/数据流 图提取这些算法独特的计算功能特征,统计出这些算法的基本算术运算类型和运算次数。以计算功能特征、 算术运算类型和运算次数为依据,定制出符合该领域应用的指令集。可重构互联数据通路采用交叉开关的 方式实现,主要由多路选择器组成,可以实现 CPE 之间任意的数据交换,并且在运行过程中可以对不同 CPE 之间的数据通路进行实时的配置。这样可以减少 ACRP 对数据访存的需要,从而起到加速处理的作用。 数据缓存部件是为了充分的保证 ACRP 中数据的需求,数据缓存部件的数据吞吐率直接影响着 ACRP 的性 能。ACRP 一般用于密集型计算的应用,ACRP 中流水线对数据的需求较大,而 ACRP 又是通过减少访存次 数来起到加速处理的效果,因此设计出高效、高速的缓存部件对 ACRP 的性能起到至关紧要的作用。 在 ACRP 中不但处理单元(CPE)可重构而且数据通路也是可重构的。ACRP 非常适合映射具有流处理特 征的应用,缺点是灵活性不如二维阵列结构的可重构结构,可能导致一些具有分支的应用无法映射,但是 ACRP 一般是作为协处理器而存在的,主要对应用中的计算密集部分进行映射,可以避免其缺点。 ACRP 是一种体系结构模板。根据映射不同的领域应用,定制出合适的 CPE 的指令集,确定 CPE 的个 数以及流水线的条数,更加高效的处理应用。

2

多功能寄存器文件设计

2.1 结构设计 多功能寄存器文件的总体结构和模块划分如图 2 所示。输入是配置信息、各个写端口的地址总线、各个 写端口的数据总线、各个读端口的地址总线及时钟信号。输出是各个写端口的数据总线[7]。

图 2 寄存器文件的结构图

由于可重构流水线的顺序和变序计算数据流模式的工作状态是互斥的,因此,寄存器的功能和堆栈的 功能是互斥工作的,在多功能寄存器文件设计中,可使普通的寄存器文件、堆、栈共用一套存储体,这样 可以节省大量的面积。

- 121 http://www.sjie.org


功能控制器控制多功能寄存器文件的功能,通过配置信息配置多功能寄存器文件的工作状态—普通寄 存器文件或者堆栈。如果配置信息是 1,则多功能寄存器工作在寄存器文件状态,如果配置信息是 0,则工 作在堆栈状态。 堆栈控制器主要由计数器构成,控制数据写入寄存器组中的位置和从寄存器组位置中读出的数据如图 3 所示。每个输入或输出端口对应一个计数器,输入端口对应计数器的增量是 1 和 2,输出端口对应计数器的 增量是 1、2、3、4,具体的端口增量由配置信息决定。Count0 的增量是 1,Count1 的增量是 2,Count2 的 增量是 3,Count3 的增量是 4。默认情况下 Count0 的初始值是 0,Count1 的初始值是 1,Count2 的初始值是 2,Count3 的初始值是 3。各个计数器的初始值也可以根据寄存器中的数据值,寄存器的数值可以在运行过 程中根据应用的需求进行改变。计数器的最大值不能超过 MFRF 中寄存器的数目。但是 MFRF 工作在 FILO 时,在读数据的过程中,计数器从最后写入的地址开始依次减少,直到最先写入的数据被读出。

图 3 堆栈控制器的结构示意图

译码器是对读地址和写地址进行译码,生成访问寄存器组的地址。由读使能和写使能控制着是否向生 成的地址中写数据。 寄存器组由多个寄存器构成的阵列结构,是整个多功能寄存器文件的存储部分,是整个多功能寄存器 文件的主要组成部分。 内部时钟生成电路是为了达到高速的设计目的,在设计过程中对译码器等电路采用了动态电路的设计, 这就对时钟信号要求很高。需要对一些时钟信号的相位及驱动能力进行重新设计,以保证寄存器文件按次 序的进行快速工作[7][8]。 读数据选择和写数据选择主要由多路选择器组成。作为普通寄存器文件时,由经过译码的输出端口读 地址和输入端口的写地址控制多路选择器的数据通路,与寄存器组进行数据的交换。作为堆栈时,由堆栈 控制器控制多路选择器的数据通路,实现与寄存器组的数据交换。

2.2 工作原理 多功能寄存器文件作为普通的寄存器文件时,工作原理与普通寄存器文件工作原理完全是一样的。 多功能寄存器文件作为堆栈式寄存器文件,在预处理时,将多功能寄存器文件中的功能控制器的功能 配置为堆栈式寄存器文件。 开始工作时,将寄存器组中的数据全部置 0。译码器停止工作。堆栈控制器开始工作,堆栈控制器根据 配置信息的不同将多功能寄存器文件中数据进出的顺序分为两种:先进先出(FIFO),先进后出(FILO),将数 据进出多功能寄存器的端口分为:一进一出、二进二出、一进二出、二进四出。堆栈控制器中的计数器控 制着数据在寄存器组中的读写位置。 先进先出(FIFO),一进一出和二进二出时,多功能寄存器文件类似于数据的中转站,不需要很大的容量, - 122 http://www.sjie.org


满足同一个时刻对不同寄存器的读写即可。一进二出、二进四出,需要向寄存器组中写满数据后,开始输 出,同时还有输入。写数据时,从寄存器 0 开始写数据,直到写满,然后再从寄存器 0 开始写数据,在寄存 器组里面循环,直到结束。读数据时,从寄存器 0 开始读据,直到读完,然后再从寄存器 0 开始读数据,在 寄存器组里面开始循环。输入和输出的位置由计数器控制,每个端口对应一个计数器。一进一出的读写数 据计数器增量是 1。二进二出的读写数据计数器增量是 2。一进二出写数据计数器的增量是 1,读数据计数 器的增量是 2。二进四出写数据计数器的增量是 2,读数据计数器的增量是 4。 先进后出(FIFO),数据开始向寄存器堆中写数据,数据写满后或数据写完后,开始输出。由计数器控制 着数据在寄存器组中的位置。

2.3 时序分析 本文设计的多功能数据寄存器文件具备三个功能:a)传统的寄存器文件的功能;b)堆的功能;c)栈的功 能;这三种功能依靠功能控制器进行切换,功能控制器受配置信息的控制。普通的寄存器文件访问路径如 下图 4(a)所示: 功能控制器接收到多功能数据寄存器文件作为传统的寄存器文件的配置信息时,向译码器发送信号, 译码器开始工作。译码器根据相应的地址和读写配置向存储体相应位置的发送读写请求。 堆的功能是先进先出(FIFO),栈的功能是先进后出(FILO),不受地址的控制。其访问路径如图 5(b)所示。 功能控制器接收到多功能数据寄存器文件作为堆或栈时的配置信息后,向堆栈控制器发送信号,堆栈 控制器开始工作。堆栈控制器控制数据流出存储体的顺序,也就是多功能寄存器文件是作为堆使用或作为 栈使用。 为了避免数据的冲突,同时刻不能向存储体中相同的位置读写数据,同时刻可以向存储体中不同的位 置写数据或读数据。多功能数据寄存器文件的读端口的扇出系数要较大,同时能满足不同的 SPE 同时对多 功能寄存器文件中同一个读端口的访问。 多功能寄存器文件作为普通的寄存器文件时,其读和写是同时进行的,在同一个时钟周期内完成读数 据和写数据。因为下次读操作是在下一个周期才进行,这样使得数据写入存储单元的时间变得相对宽松, 保证数据正确写入。因为当读写地址相同时,需要增加旁路模块以起到对数据缓存的作用,这会使寄存器 文件面积增大,本文为了控制寄存器面积,没有增加额外的硬件资源,所以在使用过程中应避免读写地址 相同。

(a) 寄存器文件访问路径

(b) 堆或栈访问路径

图 4 MFRF 访问路径

多功能寄存器文件作为堆(FIFO)使用时,数据先向寄存器文件中写数据,当数据写满后,开始边读边写, 先写入的数据首先被读出。 多功能寄存器文件作为栈(FILO)使用时,数据写完后,再进行读操作。先写入的数据,后读出来。 - 123 http://www.sjie.org


3

实验

3.1 实验方案 用 Verilog HDL 分别对图 6 所示的普通寄存器文件和堆栈式寄存器文件,以及本文设计的多功能寄存器 文件进行建模,比较这三类寄存器文件面积的大小。其中普通寄存器文件是一输入两输出结构和两输入四 输出结构,多功能寄存器文件作为普通寄存器文件时是一输入两输出结构作为堆栈时是两输入四输出结构, 堆栈式寄存器堆作为普通寄存器文件时是一输入两输出结构作为堆栈时是两输入四输出结构。

(a) 普通寄存器文件结构图

(b) 堆栈式寄存器文件结构图

图 6 普通寄存器文件和堆栈寄存器文件结构图

将普通寄存器文件、普通寄存器文件作为堆栈使用、多功能寄存器文件分别作为可重构流水线 ACRP 的数据缓存部件使用,完成矩阵乘和傅里叶变换,比较加速效果。其中普通寄存器文件是一输入两输出结 构和两输入四输出结构,多功能寄存器文件作为普通寄存器文件时是一输入两输出结构作为堆栈时是两输 入四输出结构。

3.2 实验结果分析 表 2 是多功能寄存器文件、普通寄存器文件在 FPGA 芯片 EP3C55F484 上使用 quartusⅡ(32-bit)的综合 结果。从表 1 中可以看出,多功能寄存器文件与普通的一输入两输出寄存器文件面积相比明显的增加、与普 通的两输入四输出寄存器文件面积相比与堆栈式寄存器堆相比面积有所减少,与堆栈式寄存器堆相比面积 有所明显的减少。 表 3 中,结构一是普通一输入两输出寄存器文件与应用定制可重构流水线结合,模拟实现矩阵乘和 FFT。 结构二是普通两输入四输出寄存器文件与应用定制可重构流水线结合,模拟实现矩阵乘和 FFT。结构三是 多功能寄存器文件与应用定制可重构流水线结合,模拟实现矩阵乘和 FFT。矩阵乘过程中多功能寄存器文 件作为堆栈的使用,FFT 变换过程中多功能寄存器文件的三种功能交替实现。ACRP 中有一条流水线,每条 流水线中有 8 个 SPE。 实验表明,多功能寄存器文件的面积相对于普通的一输入二输出寄存器文件的面积有明显的增加,但 是对于数据量大的运算有明显的性能提升。多功能寄存器文件的面积相对于普通的二输入四输出寄存器文 件的面积有所减少,但是对于数据量大的运算有一定的性能提升。 表 2 面积综合结果 名称 普通寄存器文件[9] 多功能寄存器文件 堆栈式寄存器堆[5]

端口数据 一输入两输出 两输入四输出 普通寄存器文件:一输入两输出 堆栈:两输入四输出 普通寄存器文件:一输入两输出 堆栈:两输入四输出 - 124 http://www.sjie.org

面积(逻辑单元) 2564 4419 4092 6172


表 3 模拟运行周期 结构一 结构二 结构三

4

1*256与256*300的矩阵乘 79200 39600 39300

256点FFT 9220 5122 4098

小结 本文针对应用定制可重构流水线支持多种数据流计算模式的特点,使用普通寄存器文件做数据缓存时

效率低问题,设计了具有传统寄存器文件、堆、栈功能的多功能寄存器文件。模拟实验与分析结果表明, 多功能寄存器文件,与传统的寄存器文件相比有一定的优势,可支持可重构流水线高效运行,有良好应用 前景。

REFERENCES [1]

G Wang, L Liu, S Li. ACRP: Application Customized Reconfigurable Pipeline[M]//Advanced Computer Architecture. Springer Berlin Heidelberg, 2014: 16-30

[2]

L Liu, Z Yang, J Shen, et al. An Application Specific Instruction Set Reconfiguranle Architecture And the Mapping of FFT on it [J]. Journal of National University of Defense Technology, 2012, 6: 39-45

[3]

Ramanujam J, Hong J, Kandemir M, et al. Reducing memory requirements of nested loops for embedded systems[C]//Proceedings of the 38th annual Design Automation Conference. ACM, 2001: 359-364

[4]

Wuytack S, Diguet J P, Catthoor F V M, et al. Formalized methodology for data reuse: exploration for low-power hierarchical memory mappings[J]. Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, 1998, 6(4): 529-537

[5]

J Wang, Z Wang,Q Wang.The Principle and Application of Stack Register File[J].Computer Engineering and Applications, 2001, 37:42-44. DOI: 10.3321.2001.11.016

[6]

K Zhang, S Chen, Y Wang, et al. A Customized Multi-grain Matrix Register File for SIMD Processors[J]. Journal of National University of Defense Technology, 2013, 35(4):156-160

[7]

Liu Ronghua. Full-custom Design and Implementation of Multi-port Register File in 40nm Process [D].Changsha, Hunan, National University of Defense Technology, 2013

[8]

Feng Guozhu. The Design and Implementation of YHFT-DX Register File [D]. Changsha, Hunan, National University of Defense Technology, 2012

[9]

J Han, X Zhang, Y Li, et al. A 64× 32bit 4-read 2-write low power and area efficient register file in 65nm CMOS[J]. IEICE Electronics Express, 2012, 9(16): 1355-1361

[10] Abdel-Majeed M, Annavaram M. Warped register file: A power efficient register file for GPGPUs[C]//High Performance Computer Architecture (HPCA2013), 2013 IEEE 19th International Symposium on. IEEE, 2013: 412-423 [11] Yan H, Liu Y, Wang D, et al. A low-power 8-read 4-write register file design[C] // Microelectronics and Electronics (PrimeAsia), 2010 Asia Pacific Conference on Postgraduate Research in. IEEE, 2010: 178-181

【作者简介】 1

杜孔飞(1989-),男,汉,硕士研究

2

王观武(1980-),男,汉,博士研究生,研究方向:嵌入

生,研究方向:SoC 设计。2012 年 9 月

式系统与 SoC 设计方法。国防科学技术大学在读博士生

至今,国防科学技术大学在读硕士。

3

Email:adu_521@yeah.net

嵌入式系统与 SoC 设计、虚拟现实可视化。

李思昆(1941-),男,汉,教授,博士生导师,研究方向:

- 125 http://www.sjie.org


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.