本发明涉及计算机领域,尤其涉及一种可重构处理单元阵列的寄存器堆设计方法及装置。
背景技术:
:本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。寄存器是一种可以存储若干个一位二进制代码的高速存储部件。通常寄存器的容量有限但是拥有非常高的读写速度,所以寄存器间的数据传输速率非常高。按照不同的分类方式以及应用场景,寄存器可以分为很多种,并且在有着较为广泛的应用。在计算机领域,寄存器通常是cpu内部用来暂时存放参与运算的数据、运算结果、指令或者地址的一个存储区域,是以存储功能为核心的一段电路,通常由一定数量的触发器构成。寄存器位于存储器层次结构的最高层,也是cpu可以读写的速度最快、尺寸最小的存储器。通常情况下,内部寄存器文件与许多不同的总线相连,但是只有一条总线与主存相连,故冯诺依曼瓶颈是一个明显的数据流瓶颈。只有足够多的寄存器资源才可以解决这一瓶颈。而足够多的寄存器使得其与存储器间只是偶尔地交换数据。但是如果将各个独立寄存器直接与处理单元相连,会极大地增加互连面积,故处理器中的寄存器堆技术应运而生。在cpu中,由多个寄存器组成的阵列即为寄存器文件或寄存器堆。这是由cpu指令集架构所定义的一批寄存器,用于暂存cpu的运算单元与内存之间数据,故寄存器文件通常处于处理器的数据通路上,它的访问速度也直接决定了处理器的性能。因而,如何在面积等条件的约束下,设置大规模寄存器文件资源,以降低处理器访存延时、提高处理器性能,是目前亟待解决的技术问题。技术实现要素:本发明实施例中提供了一种可重构处理单元阵列的寄存器堆设计方法,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,该方法包括:采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列(processingelementsarray,简称pea)的全局寄存器堆(globalregister,简称gr)进行设计,其中,每个pea包括:多个处理器单元(processingelements,简称pe);采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr(localregister,简称lr)进行设计。本发明实施例中还提供了一种可重构处理单元阵列的寄存器堆设计装置,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,该装置包括:全局寄存器设计模块,用于采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,其中,每个pea包括:多个处理器单元pe;局部寄存器设计模块,用于采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr进行设计。本发明实施例中还提供了一种计算机设备,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述可重构处理单元阵列的寄存器堆设计方法。本发明实施例中还提供了一种计算机可读存储介质,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,该计算机可读存储介质存储有执行上述可重构处理单元阵列的寄存器堆设计方法的计算机程序。本发明实施例中,采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个pea的全局寄存器堆gr进行设计,并采用数据和配置信息分离存储的方式,对每个pea中每个处理器单元pe的局部寄存器堆lr进行设计。本发明实施例中,通过层次化的寄存器文件设计,能够充分利用可重构处理器单元阵列中各个处理单元的资源,提升可重构处理器单元阵列的系统性能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本发明实施例中提供的一种可重构处理单元阵列的寄存器堆设计方法流程图;图2为本发明实施例中提供的一种将单个pea划分为多个局部pea的示意图;图3为本发明实施例中提供的一种pe结构示意图;图4为本发明实施例中提供的一种可重构处理单元阵列的寄存器堆设计装置示意图;图5为本发明实施例中提供的一种计算机设备示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。本发明实施例中提供了一种可重构处理单元阵列的寄存器堆设计方法,图1为本发明实施例中提供的一种可重构处理单元阵列的寄存器堆设计方法流程图,如图1所示,该方法包括如下步骤:s101,采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,其中,每个pea包括:多个处理器单元pe。在具体实施时,上述s101可以通过如下步骤来实现:对每个pea中的多个pe进行区域划分,形成多个局部pea;将gr中第一地址范围的寄存器设计为存储局部pea数据的寄存器;将gr中第二地址范围的寄存器设计为存储全局pea数据的寄存器;将gr中第三地址范围的寄存器设计为存储全局pea配置信息的寄存器。在一个实施例中,当gr包含20个寄存器的情况下;第一地址范围为gr0-7;第二地址范围为gr8-15;第三地址范围为gr16-19。在本发明实施例中,虽然不同的局部pes对应的寄存器地址范围(例如,gr0-7)相同,但实际上不同的局部pea访问不同物理空间的寄存器。s102,采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr进行设计。在具体实施时,上述s102可以通过如下步骤来实现:将lr中第一地址范围的寄存器设计为存储pe数据的寄存器;将lr中第二地址范围的寄存器设计为存储pe配置信息的寄存器。在一个实施例中,当lr包含12个寄存器的情况下;第一地址范围为gr0-7;第二地址范围为gr8-11。在一个实施例中,本发明实施例中提供的可重构处理单元阵列的寄存器堆设计方法还可以包括如下步骤:在寄存器文件中设计面向pea功能控制的特殊寄存器。在具体实施时,对gr和lr的设计如下:(一)gr设计:每个pea共享一个全局寄存器堆gr,名义寻址的大小为20个32bit的寄存器堆。gr采用数据局部和全局共享结合、数据和配置信息共享分离的设计方式,能够提高gr的利用率,同时降低gr的面积和功耗。(1)配置信息和数据信息分离存储的gr方案gr的高4个寄存器16-19为迭代寄存器,存储配置信息中的迭代和闲置(idle)信息的,只能被配置中的迭代字段读取;gr的低16个寄存器0-15为数据寄存器,存放运算输入和输出数据的,可以供处理单元(pe:processingelements,以下简称pe)的运算访问,包括协处理器接口读取、算数逻辑单元(alu:arithmeticandlogicunit,以下简称alu)运算的两个操作数,以及本地存储单元(lsu:localstorageunit,以下简称lsu)运算的地址和储存数据的读取。(2)数据局部和全局共享结合的gr设计方案gr0-7(即:第0-7个全局寄存器,下同)为1/4的pea局部共享的gr寄存器,即:如图2的每1/4的pea都有一个独立的局部gr寄存器堆,相应的pe虽然共享相同的编码地址,但是实际上访问的gr物理空间不同,即:实际有四个独立的这样的局部gr堆,不同1/4的pea间不能实现该段地址的gr的数据共享;gr8-19为整个pea全局共享的gr寄存器,即:如图2的四个1/4的pea都有共享该地址段gr寄存器堆的物理空间,不同1/4的pea间能通过该段地址的gr实现数据及配置共享。(3)gr8-15和gr16-19且支持协处理器接口读取,gr0-7不支持前处理器读取。因此,需要通过gr与外部处理器通信的话,只能通过高12个gr寄存器gr8-19;(4)gr0-19都可支持被pe读写,即:支持所有pe读写每个gr的寄存器;(5)pe只有out1(alu运算结果输出,将在下文详细阐述)的输出结果能够写入gr中。具体的pea全局寄存器gr接口信号如表1所示。表1pea全局寄存器gr信号接口信号名称类型位宽含义pea_global_dout_routput32global数据输出pea_global_en_winput1global写使能pea_global_addrinput5global地址输入pea_global_din_winput32global数据输入(二)lr设计每个pe独享一个局部寄存器堆lr,大小为12个32bit的寄存器堆,同样采用数据和配置信息分离存储的方案设计,降低lr的面积,并提高lr的利用率。图3本发明实施例中提供的一种pe结构示意图,如图3所示,pe内部的核心部分有:pe控制器pecontrol、配置存储器cm、局部寄存器lr、pe路由器router、pe执行单元(alu、mul和lsu)和debug模块deb。(1)lr的低8个寄存器0-7为数据寄存器,存放运算输入和输出数据,可以供每个pe的运算访问,包括alu运算的三个操作数,以及lsu运算的地址和储存数据的输入;(2)lr的高4个寄存器8-11为迭代寄存器,存储配置信息中的迭代和idle信息的,只能被配置中的迭代字段读取;(3)lr0-11都能够被pe运算写入,但是只有pe单元的out1的输出结果能够写入lr。gr读数据1个周期取回,写数据3个周期(实际第3个周期写进去能马上在本周起被读取出来lr读数据为1个周期取回,写数据2个周期(实际第2个周期写进去也能马上在本周起被读取出来)需要注意的是,pea写入配置后,必须配置为非空时,pea才会自动启动时钟,此时才能对pea进行数据的读写和计算处理,包括gr和sm的访问等。另外,除了局部寄存器和全局寄存器外,层次化的寄存器文件设计方案中还涉及一些面向pea功能控制的特殊寄存器,如表2所示。在本发明实施例中,base_addr为16。表2特殊寄存器功能列表alu类型的运算配置信息中的out1也涉及寄存器文件的相关内容。out1是alu类型配置信息的第23-29位,共7位数据,是32bit的计算结果的输出数据,其具体行为如下:(1)out1[6:5]=00,输出数据1将输出到本pe的本地寄存器文件,out1[4:0]表示局部寄存器index,目前仅支持8个局部寄存器;0-7位数据寄存器,8-11位迭代寄存器;同时流水线寄存器out1reg默认是被写入的。(2)out1[6:5]=01,输出数据1将输出本pea的全局寄存器文件,out1[4:0]表示全局寄存器index,目前版本支持16个全局寄存器;0-15位数据寄存器,16-19位迭代寄存器,同时流水线寄存器out1reg默认是被写入的。(3)out1[6:5]=10,输出数据1将只输出本pe的输出寄存器out1,即不写任何其他本地或者全局寄存器。由上可知,本发明实施例,通过层次化的寄存器文件设计,能够实现pea中各个区域pe之间更灵活的数据传输。在兼顾面积开销、复杂性等情况下,充分利用了pea各部分的pe资源,同时提升了整个系统性能。基于同一发明构思,本发明实施例中还提供了一种可重构处理单元阵列的寄存器堆设计装置,如下面的实施例。由于该装置解决问题的原理与可重构处理单元阵列的寄存器堆设计方法相似,因此该装置的实施可以参见可重构处理单元阵列的寄存器堆设计方法的实施,重复之处不再赘述。图4为本发明实施例中提供的一种可重构处理单元阵列的寄存器堆设计装置示意图,如图4所示,该装置包括:全局寄存器设计模块41和局部寄存器设计模块42。其中,全局寄存器设计模块41,用于采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,其中,每个pea包括:多个处理器单元pe;局部寄存器设计模块42,用于采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr进行设计。在一个实施例中,上述全局寄存器设计模块41还用于:对每个pea中的多个pe进行区域划分,形成多个局部pea;将gr中第一地址范围的寄存器设计为存储局部pea数据的寄存器;将gr中第二地址范围的寄存器设计为存储全局pea数据的寄存器;将gr中第三地址范围的寄存器设计为存储全局pea配置信息的寄存器。在一个实施例中,上述局部寄存器设计模块42还用于:将lr中第一地址范围的寄存器设计为存储pe数据的寄存器;将lr中第二地址范围的寄存器设计为存储pe配置信息的寄存器。在一个实施例中,本发明实施例中提供的可重构处理单元阵列的寄存器堆设计装置还可以包括:特殊寄存器设计模块43,用于在寄存器文件中设计面向pea功能控制的特殊寄存器。基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,图5为本发明实施例中提供的一种计算机设备示意图,如图5所示,该计算机设备50包括存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序,处理器502执行计算机程序时实现上述可重构处理单元阵列的寄存器堆设计方法。基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决如何在面积等条件的约束下,设置大规模寄存器文件资源,以提高处理器性能的技术问题,该计算机可读存储介质存储有执行上述可重构处理单元阵列的寄存器堆设计方法的计算机程序。综上所述,本发明实施例中提供了一种可重构处理单元阵列的寄存器堆设计方法、装置、计算机设备及计算机可读存储介质,采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个pea的全局寄存器堆gr进行设计,并采用数据和配置信息分离存储的方式,对每个pea中每个处理器单元pe的局部寄存器堆lr进行设计。本发明实施例中,通过层次化的寄存器文件设计,能够充分利用可重构处理器单元阵列中各个处理单元的资源,提升可重构处理器单元阵列的系统性能。本发明实施例中提供的层次化结构的寄存器堆设计方法,层次化结构主要以全局寄存器、局部寄存器和特殊寄存器为主,通过不同的寄存器功能实现可重构处理单元阵列各个单元各个区域之间有效的数据交互和传递,并且对于数据和配置的不同设计不同的寄存器方案。由于gr可以和更多的pe之间共享数据,故相对于局部寄存器来说,其拥有更加复杂的设计以及丰富的区域互连,同时会占用更大的面积资源。最主要的由于大面积的数据共享,在全局寄存器的基础上可以实现更多复杂的功能和更庞大数据的运算。而局部寄存器由于与其共享数据相对较小,其拥有着更高的数据交互效率以及更少的面积资源。同时一些特殊的寄存器还可还可实现寄存器与其他处理单元更丰富的功能。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
技术特征:1.一种可重构处理单元阵列的寄存器堆设计方法,其特征在于,包括:
采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,其中,每个pea包括:多个处理器单元pe;
采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr进行设计。
2.如权利要求1所述的方法,其特征在于,采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,包括:
对每个pea中的多个pe进行区域划分,形成多个局部pea;
将gr中第一地址范围的寄存器设计为存储局部pea数据的寄存器;
将gr中第二地址范围的寄存器设计为存储全局pea数据的寄存器;
将gr中第三地址范围的寄存器设计为存储全局pea配置信息的寄存器。
3.如权利要求2所述的方法,其特征在于,所述gr包含:20个寄存器;所述第一地址范围为gr0-7;所述第二地址范围为gr8-15;所述第三地址范围为gr16-19。
4.如权利要求1所述的方法,其特征在于,采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆进行设计,包括:
将lr中第一地址范围的寄存器设计为存储pe数据的寄存器;
将lr中第二地址范围的寄存器设计为存储pe配置信息的寄存器。
5.如权利要求4所述的方法,其特征在于,所述lr包含:12个寄存器;所述第一地址范围为gr0-7;所述第二地址范围为gr8-11。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
在寄存器文件中设计面向pea功能控制的特殊寄存器。
7.一种可重构处理单元阵列的寄存器堆设计装置,其特征在于,包括:
全局寄存器设计模块,用于采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列pea的全局寄存器堆gr进行设计,其中,每个pea包括:多个处理器单元pe;
局部寄存器设计模块,用于采用数据和配置信息分离存储的方式,对每个pe的局部寄存器堆lr进行设计。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
特殊寄存器设计模块,用于在寄存器文件中设计面向pea功能控制的特殊寄存器。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述可重构处理单元阵列的寄存器堆设计方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一项所述可重构处理单元阵列的寄存器堆设计方法的计算机程序。
技术总结本发明公开了一种可重构处理单元阵列的寄存器堆设计方法及装置,其中,该方法包括:采用数据局部和全局共享结合、数据和配置信息分离存储的方式,对每个可重构处理单元阵列PEA的全局寄存器堆GR进行设计,其中,每个PEA包括:多个处理器单元PE;采用数据和配置信息分离存储的方式,对每个PE的局部寄存器堆LR进行设计。本发明通过层次化的寄存器文件设计,能够充分利用可重构处理器单元阵列中各个处理单元的资源,提升可重构处理器单元阵列的系统性能。
技术研发人员:尹首一;蒋昱;谷江源;钟鸣;罗列;张淞;韩慧明;刘雷波;魏少军
受保护的技术使用者:清华大学
技术研发日:2020.12.18
技术公布日:2021.03.12