一种面向risc处理器的三端口浮点寄存器文件的制作方法

文档序号:6546656阅读:164来源:国知局
一种面向risc处理器的三端口浮点寄存器文件的制作方法
【专利摘要】本发明公开了一种面向RISC处理器的三端口浮点寄存器文件,通过在寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存器阵列的控制逻辑根据精度标志位和读写标志位,对源操作数和目标操作数地址指定的寄存器及与它地址相邻的寄存器同时进行读写操作,可以单周期完成双精度、四精度浮点数的读取和回写,解决了浮点运算过程中面临的SRAM带宽问题。
【专利说明】—种面向RISC处理器的三端口浮点寄存器文件
【技术领域】
[0001]本发明专利属于微处理器体系结构领域,涉及一种面向RISC处理器的三端口浮点寄存器文件。
【背景技术】
[0002]精简指令集(RISC)处理器的大部分指令操作都在寄存器之间进行,必须由专门的访存指令完成外部存储器的读写操作。为了加快指令的执行速度,RISC处理器内部都有寄存器文件,指令执行过程中从寄存器文件取得源操作数,并将执行结果(目标操作数)写回到寄存器文件。一般情况下,RISC处理器的指令使用两个源操作数,计算得到一个目标操作数,基于此,寄存器文件应具有三个端口,具体包括两个读端口和一个写端口。
[0003]当前,三端口的寄存器文件的主要设计方法有两种,第一种为针对特殊应用要求(如抗辐照)的全定制设计,此类方法并不适用于通用处理器的寄存器文件实现。另一种基于单元库的半定制设计,即利用两块单元库中提供的双端口 SRAM构造三端口的寄存器文件,如Atmel公司的AT697E、AT697F系列处理器,Gaisler研究所的LEON系列处理器及UT699系列处理器等。
[0004]文献“UT699LE0N3FT/SPARCV8MicroProcessor Functional Manual,,公开了UT699处理器中寄存器文件的设计方法,通过两块256x48的双端口 SRAM构造一个168x39的三端口寄存器文件,构造方法如图1所示,将目标操作数同时回写到两块SRAM中,以保证两块SRAM中数据的一致性,两个源操作数则是通过分别向两块SRAM请求数据获得。
[0005]基于单元库的半定制设计主要存在以下不足:(I)硬件资源浪费,增大了设计的功耗。该方法至少需要2倍于实际寄存器文件大小的SRAM存储单元,忽略SRAM存储单元中的行浪费,UT699中为3倍(2x256 + 169) ; (2)带宽限制。当处理器进行大于单精度的浮点运算时,其所需的源操作数需要多个周期获得,影响处理器性能(同一时刻,SRAM只能译码一个读地址,也只能给出一个存储单元的数据)。
[0006]中国专利“一种用于浮点协处理器的寄存器文件分组编址、读写控制方法”(ZL201010261146.3)解决了浮点运算时SRAM带宽限制的问题,该方法通过将原来两块的SRAM分成两组,每组又分为四个小组,通过处理器对八个小组分别提供读写控制信号实现对输入、输出128位数据的控制。由于该方法基于单元库中SRAM,可能不存在合适大小的SRAM而造成更大的资源浪费,增加了功耗,另外该设计需要处理器产生8组控制信号,增加了处理器设计复杂性及后端布线的难度。

【发明内容】

[0007]本发明解决的技术问题在于提供一种面向RISC处理器的三端口浮点寄存器文件,通过使用寄存器阵列代替单元库中的SRAM作为三端口寄存器文件的存储单元,避免了硬件资源的浪费,降低了功耗。
[0008]本发明专利是通过以下技术方案来实现:[0009]一种面向RISC处理器的三端口浮点寄存器文件,包括:
[0010]写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有效时,置与写地址对应的寄存器AR的写使能w_en有效,并将其分别输出至写控制模块和写数据互连网络;
[0011]写控制模块,根据输入的写使能w_en和端口的输入写操作精度标志位,决定寄存器AR下面相邻的寄存器的写使能是否有效;输出m位写使能至寄存器阵列中m个寄存器的与使能端;
[0012]写数据互连网络,在写使能w_en控制下,将输入的寄存器文件128位写数据从低位到高位,以32位一组分为a、b、c、d四组;输出为m个32位的数据,分别连接至寄存器阵列中m个寄存器的数据输入端:将a组连接到寄存器AR的数据输入端datai ;将b、C、d三组分别依次连接至AR下面相邻的三个寄存器的数据输入端datai,除a、b、c、d四组之外其余m-4组均为O ;
[0013]寄存器阵列,为线性编址的一维寄存器阵列,大小为mX32,阵列的宽等于浮点寄存器的位宽,阵列的深度m等于浮点寄存器的个数,阵列中每一个寄存器有写使能,其每个寄存器的写使能和数据输入端分别来自写控制模块和数据互连网络,寄存器阵列有m个32位输出,全部连接至读数据互连网络;当某个寄存器写使能有效时,其输入的数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效;
[0014]第一读地址译码模块,输入为源操作数I的读使能I和读地址1,当读使能I有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第一读控制模块;
[0015]第一读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作I精度标志位和读使能1,决定AR下面相邻的寄存器的读使能是否有效;
[0016]第二读地址译码模块,输入为源操作数2的读使能2和读地址2,当读使能2有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第二写读控制模块;
[0017]第二读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作2精度标志位和读使能2,决定AR下面相邻的寄存器的读使能是否有效;
[0018]读数据互连网络,根据输入寄存器阵列的m个32位的输出和第二读控制模块的四位读使能的信号,生成I个128位的数据进行输出;
[0019]根据输入寄存器阵列的m个32位的输出和第一读控制模块的四位读使能的信号,生成I个128位的数据进行输出。
[0020]所述的写控制模块,根据写使能w_en和端口的输入写操作精度标志位进行如下判断:
[0021]如果写操作的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的写使能w_en置有效;
[0022]如果写操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的写使能w_en全部置有效(高电平);
[0023]如果写操作的精度标志位为单精度,只保持AR的写使能w_en有效。
[0024]所述的第一读控制模块进行以下判断:[0025]如果读操作I的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效;
[0026]如果读操作I的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enl、r_en2、r_en3全部置有效;
[0027]如果读操作I的精度标志位为单精度,只保持AR的读使能r_en0有效。
[0028]所述的第二读控制模块进行以下判断:
[0029]如果读操作2的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效;
[0030]如果读操作2的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enl、r_en2、r_en3全部置有效;
[0031 ] 如果读操作2的精度标志位为单精度,只保持AR的读使能r_en0有效。
[0032]所述的寄存器阵列对m个32位寄存器实行线性编址,构成一维寄存器阵列,地址范围O?m-1。
[0033]所述的读数据互连网络输出的128位的数据是由从低到高的a、b、c、d四组32位数据组成,a组的读使能对应读控制模块产生的r_en0, b组的读使能对应读控制模块产生的r_enl, c组的读使能对应读控制模块产生的r_en2, d组的读使能对应读控制模块产生的r_en3,若a、b、C、d中任一组的读使能有效,则该组数据为对应寄存器的数据输出,否则该组对应的数据为32位的O。
[0034]与现有技术相比,本发明具有以下有益的技术效果:
[0035]本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,通过在寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存器阵列的控制逻辑根据精度标志位和读写标志位,对源操作数和目标操作数地址指定的寄存器及与它地址相邻的寄存器同时进行读写操作,可以单周期完成双精度、四精度浮点数的读取和回写,解决了浮点运算过程中面临的SRAM带宽问题。
[0036]本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,使用寄存器阵列代替单元库中的SRAM作为三端口寄存器文件的存储单元,可以由设计者在不依赖单元库的基础上,根据处理器架构的要求,控制寄存器阵列的大小,避免了 SRAM硬件资源的浪费,降低了功耗。
[0037]本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,不需要改变处理器任何控制逻辑,不需要提供额外的读写控制信号,仅需处理器给出寄存器文件读写操作时的精度标志位,控制较为简单。
[0038]本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,可以在单周期内完成双、四精度浮点数据的读取和回写,效率较高,提高了处理器性能。
【专利附图】

【附图说明】
[0039]图1为现有的半定制三端口寄存器文件的结构图;
[0040]图2为基于本发明的寄存器阵列框图,其中图(a)为寄存器阵列中的任意一个η位寄存器示意图,图(b)为一维线性编址的寄存器阵列框图;
[0041]图3为基于本发明的三端口寄存器文件的电路结构图;[0042]图4为读过程中的数据处理示意图。
【具体实施方式】
[0043]下面结合附图对本发明专利做进一步详细描述,所述是对本发明的解释而不是限定。
[0044]如图2、图3所示,一种面向RISC处理器的三端口浮点寄存器文件,包括写地址译码模块、写控制模块、写数据互连网络、寄存器阵列、第一读地址译码模块、第二读地址译码模块、第一读控制模块、第二读控制模块、读数据互连网络;
[0045]所述写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有效时(高电平),置与写地址对应的寄存器AR的写使能w_en有效,并将其输出至写控制模块和写数据互连网络。
[0046]所述写控制模块, 输出为m位写使能,分别连接至寄存器阵列中m个寄存器的写使能端。该模块根据写使能w_en和端口的输入写操作精度标志位,决定AR下面相邻的寄存器的写使能是否有效;如果写操作的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加I)的写使能《^11置有效(高电平);如果写操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存器)的写使能w_en全部置有效(高电平),其余情况(单精度)只保持AR的写使能w_en有效。
[0047]所述写数据互连网络,输出为m个32位的数据,分别连接至寄存器阵列中m个寄存器的数据输入端。该模块在AR的写使能控制下,将寄存器文件的128写位数据从低位到高位,以32位一组,分为a、b、C、d四组,将a组连接到寄存器AR的数据输入端datai ;将
b、C、d三组分别依次连接至AR下面相邻的三个寄存器的数据输入端datai。
[0048]所述的寄存器阵列,如图2所示,线性编址的一维寄存器阵列,大小为mX32,阵列的宽(32)等于浮点寄存器的位宽,阵列的深度m等于浮点寄存器的个数,阵列中每一个寄存器有写使能,当某个寄存器写使能有效时,那么数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效。其每个寄存器的写使能和数据输入端分别来自写控制模块和数据互连网络,寄存器阵列有m个32位输出,全部连接至读数据互连网络。
[0049]所述的第一读地址译码模块,输入为源操作数I的读使能I和读地址1,当读使能
I有效时(高电平),置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第一读控制模块。
[0050]所述的第一读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络。该模块根据输入读操作I精度标志位和读使能1,决定AR下面相邻的寄存器的读使能是否有效;如果读操作I的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加I)的读使能r_enl置有效(高电平);如果读操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存器)的读使能:r_enl、r_en2、r_en3全部置有效(高电平),其余只保持AR的读使能r_enO有效。
[0051]所述的第二读地址译码模块,输入为源操作数2的读使能2和读地址2,当读使能
2有效时(高电平),置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至写读控制模块2。[0052]所述的第二读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络。该模块根据输入读操作2精度标志位和读使能2,决定AR下面相邻的寄存器的读使能是否有效;如果读操作2的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加I)的读使能r_enl置有效(高电平);如果读操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存器)的读使能:r_enl、r_en2、r_en3全部置有效(高电平),其余只保持AR的读使能r_enO有效。
[0053]所述读数据互连网络,输入为寄存器阵列的m个32位的输出、第二读控制模块的四位读使能,根据上述输入信号生成I个128位的数据进行输出;
[0054]输入为寄存器阵列的m个32位的输出,第一读控制模块的四位读使能,根据上述输入信号,生成I个128位的数据进行输出。
[0055]如图4所示,所述的读数据互连网络输出的128位的数据是由从低到高的a、b、c、d四组32位数据组成,a组的读使能对应读控制模块产生的r_enO, b组的读使能对应读控制模块产生的r_enl, c组的读使能对应读控制模块产生的r_en2, d组的读使能对应读控制模块产生的r_en3,若a、b、c、d中任一组的读使能有效,则该组数据为对应寄存器的数据输出,否则该组对应的数据为32位的O。
[0056]基于本发明实现的三端口浮点寄存器文件已经应用在一款SPARC V8架构的处理器中。相对于基本单元库的半定制设计方法,本发明使设计者根据处理器架构的要求,自主控制寄存器阵列的大小,避免了单元库中SRAM硬件资源的浪费;本发明不需要改变处理器任何控制逻辑,仅需处理器给出寄存器文件读写操作时的精度标志位,控制较为简单;本发明三端口浮点寄存器文件,可以使处理器在单周期内完成双、四精度浮点数据的读取和回与,效率较闻,提闻了处理器性能。
【权利要求】
1.一种面向RISC处理器的三端口浮点寄存器文件,其特征在于,包括: 写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有效时,置与写地址对应的寄存器AR的写使能w_en有效,并将其分别输出至写控制模块和写数据互连网络; 写控制模块,根据输入的写使能w_en和端口的输入写操作精度标志位,决定寄存器AR下面相邻的寄存器的写使能是否有效;输出m位写使能至寄存器阵列中m个寄存器的写使倉; 写数据互连网络,在写使能w_en控制下,将输入的寄存器文件128位写数据从低位到高位,以32位一组分为a、b、c、d四组;输出为m个32位的数据,分别连接至寄存器阵列中m个寄存器的数据输入端:将a组连接到寄存器AR的数据输入端datai ^fb、c、d三组分别依次连接至AR下面相邻的三个寄存器的数据输入端datai,除a、b、C、d四组之外其余m_4组均为O ; 寄存器阵列,为线性编址的一维寄存器阵列,大小为mX32,阵列的宽等于浮点寄存器的位宽,阵列的深度m等于浮点寄存器的个数,阵列中每一个寄存器有写使能,其每个寄存器的写使能和数据 输入端分别来自写控制模块和数据互连网络,寄存器阵列有m个32位输出,全部连接至读数据互连网络;当某个寄存器写使能有效时,其输入的数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效; 第一读地址译码模块,输入为源操作数I的读使能I和读地址1,当读使能I有效时,置与读地址对应的寄存器AR的读使能r_enO有效,并将其输出至第一读控制模块; 第一读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作I精度标志位和读使能1,决定AR下面相邻的寄存器的读使能是否有效; 第二读地址译码模块,输入为源操作数2的读使能2和读地址2,当读使能2有效时,置与读地址对应的寄存器AR的读使能r_enO有效,并将其输出至第二写读控制模块; 第二读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作2精度标志位和读使能2,决定AR下面相邻的寄存器的读使能是否有效; 读数据互连网络,根据输入寄存器阵列的m个32位的输出和第二读控制模块的四位读使能的信号,生成I个128位的数据进行输出; 根据输入寄存器阵列的m个32位的输出和第一读控制模块的四位读使能的信号,生成I个128位的数据进行输出。
2.如权利要求1所述的面向RISC处理器的三端口浮点寄存器文件,其特征在于,所述的写控制模块,根据写使能w_en和端口的输入写操作精度标志位进行如下判断: 如果写操作的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的写使能w_en置有效; 如果写操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的写使能w_en全部置有效(高电平); 如果写操作的精度标志位为单精度,只保持AR的写使能w_en有效。
3.如权利要求1所述的面向RISC处理器的三端口浮点寄存器文件,其特征在于,所述的第一读控制模块进行以下判断:如果读操作I的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效; 如果读操作I的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enI > r_en2 > r_en3 全部置有效; 如果读操作I的精度标志位为单精度,只保持AR的读使能r_enO有效。
4.如权利要求1所述的面向RISC处理器的三端口浮点寄存器文件,其特征在于,所述的第二读控制模块进行以下判断: 如果读操作2的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效; 如果读操作2的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enI > r_en2 > r_en3 全部置有效; 如果读操作2的精度标志位为单精度,只保持AR的读使能r_enO有效。
5.如权利要求1所述的面向RISC处理器的三端口浮点寄存器文件,其特征在于,所述的寄存器阵列对m个32位寄存器实行线性编址,构成一维寄存器阵列,地址范围O~m-1。
6.如权利要求1所述的面向RISC处理器的三端口浮点寄存器文件,其特征在于,所述的读数据互连网络输出的128位的数据是由从低到高的a、b、c、d四组32位数据组成,a组的读使能对应读控制模块产生的r_enO,b组的读使能对应读控制模块产生的r_enl, c组的读使能对应读控制模块产 生的r_en2, d组的读使能对应读控制模块产生的r_en3,若a、b、c、d中任一组的读使能有效,则该组数据为对应寄存器的数据输出,否则该组对应的数据为32位的O。
【文档编号】G06F9/30GK103984524SQ201410206420
【公开日】2014年8月13日 申请日期:2014年5月15日 优先权日:2014年5月15日
【发明者】陈庆宇, 吴龙胜, 段青亚, 盛廷义, 唐威 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1