本发明专利技术公开了一种面向RISC处理器的三端口浮点寄存器文件,通过在寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存器阵列的控制逻辑根据精度标志位和读写标志位,对源操作数和目标操作数地址指定的寄存器及与它地址相邻的寄存器同时进行读写操作,可以单周期完成双精度、四精度浮点数的读取和回写,解决了浮点运算过程中面临的SRAM带宽问题。
【技术实现步骤摘要】
—种面向RISC处理器的三端口浮点寄存器文件
本专利技术专利属于微处理器体系结构领域,涉及一种面向RISC处理器的三端口浮点寄存器文件。
技术介绍
精简指令集(RISC)处理器的大部分指令操作都在寄存器之间进行,必须由专门的访存指令完成外部存储器的读写操作。为了加快指令的执行速度,RISC处理器内部都有寄存器文件,指令执行过程中从寄存器文件取得源操作数,并将执行结果(目标操作数)写回到寄存器文件。一般情况下,RISC处理器的指令使用两个源操作数,计算得到一个目标操作数,基于此,寄存器文件应具有三个端口,具体包括两个读端口和一个写端口。当前,三端口的寄存器文件的主要设计方法有两种,第一种为针对特殊应用要求(如抗辐照)的全定制设计,此类方法并不适用于通用处理器的寄存器文件实现。另一种基于单元库的半定制设计,即利用两块单元库中提供的双端口 SRAM构造三端口的寄存器文件,如Atmel公司的AT697E、AT697F系列处理器,Gaisler研究所的LEON系列处理器及UT699系列处理器等。文献“UT699LE0N3FT/SPARCV8MicroProcessor Functional Manual,,公开了UT699处理器中寄存器文件的设计方法,通过两块256x48的双端口 SRAM构造一个168x39的三端口寄存器文件,构造方法如图1所示,将目标操作数同时回写到两块SRAM中,以保证两块SRAM中数据的一致性,两个源操作数则是通过分别向两块SRAM请求数据获得。基于单元库的半定制设计主要存在以下不足:(I)硬件资源浪费,增大了设计的功耗。该方法至少需要2倍于实际寄存器文件大小的SRAM存储单元,忽略SRAM存储单元中的行浪费,UT699中为3倍(2x256 + 169) ; (2)带宽限制。当处理器进行大于单精度的浮点运算时,其所需的源操作数需要多个周期获得,影响处理器性能(同一时刻,SRAM只能译码一个读地址,也只能给出一个存储单元的数据)。中国专利“一种用于浮点协处理器的寄存器文件分组编址、读写控制方法”(ZL201010261146.3)解决了浮点运算时SRAM带宽限制的问题,该方法通过将原来两块的SRAM分成两组,每组又分为四个小组,通过处理器对八个小组分别提供读写控制信号实现对输入、输出128位数据的控制。由于该方法基于单元库中SRAM,可能不存在合适大小的SRAM而造成更大的资源浪费,增加了功耗,另外该设计需要处理器产生8组控制信号,增加了处理器设计复杂性及后端布线的难度。
技术实现思路
本专利技术解决的技术问题在于提供一种面向RISC处理器的三端口浮点寄存器文件,通过使用寄存器阵列代替单元库中的SRAM作为三端口寄存器文件的存储单元,避免了硬件资源的浪费,降低了功耗。本专利技术专利是通过以下技术方案来实现:一种面向RISC处理器的三端口浮点寄存器文件,包括:写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有效时,置与写地址对应的寄存器AR的写使能w_en有效,并将其分别输出至写控制模块和写数据互连网络;写控制模块,根据输入的写使能w_en和端口的输入写操作精度标志位,决定寄存器AR下面相邻的寄存器的写使能是否有效;输出m位写使能至寄存器阵列中m个寄存器的与使能端;写数据互连网络,在写使能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 ;寄存器阵列,为线性编址的一维寄存器阵列,大小为mX32,阵列的宽等于浮点寄存器的位宽,阵列的深度m等于浮点寄存器的个数,阵列中每一个寄存器有写使能,其每个寄存器的写使能和数据输入端分别来自写控制模块和数据互连网络,寄存器阵列有m个32位输出,全部连接至读数据互连网络;当某个寄存器写使能有效时,其输入的数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效;第一读地址译码模块,输入为源操作数I的读使能I和读地址1,当读使能I有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第一读控制模块;第一读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作I精度标志位和读使能1,决定AR下面相邻的寄存器的读使能是否有效;第二读地址译码模块,输入为源操作数2的读使能2和读地址2,当读使能2有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第二写读控制模块;第二读控制模块,输出为4位读使能r_en0、r_enl、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作2精度标志位和读使能2,决定AR下面相邻的寄存器的读使能是否有效;读数据互连网络,根据输入寄存器阵列的m个32位的输出和第二读控制模块的四位读使能的信号,生成I个128位的数据进行输出;根据输入寄存器阵列的m个32位的输出和第一读控制模块的四位读使能的信号,生成I个128位的数据进行输出。所述的写控制模块,根据写使能w_en和端口的输入写操作精度标志位进行如下判断:如果写操作的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的写使能w_en置有效;如果写操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的写使能w_en全部置有效(高电平);如果写操作的精度标志位为单精度,只保持AR的写使能w_en有效。所述的第一读控制模块进行以下判断:如果读操作I的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效;如果读操作I的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enl、r_en2、r_en3全部置有效;如果读操作I的精度标志位为单精度,只保持AR的读使能r_en0有效。所述的第二读控制模块进行以下判断:如果读操作2的精度标志位为双精度,则将寄存器阵列中AR的下一个寄存器的读使能r_enl置有效;如果读操作2的精度标志位为四精度,则将寄存器阵列中AR的下三个寄存器的读使能r_enl、r_en2、r_en3全部置有效;[0031 ] 如果读操作2的精度标志位为单精度,只保持AR的读使能r_en0有效。所述的寄存器阵列对m个32位寄存器实行线性编址,构成一维寄存器阵列,地址范围O?m-1。所述的读数据互连网络输出的128位的数据是由从低到高的a、b、c、d四组32位数据组成,a组的读使能对应读控制模块产生的r_en0, b组的读使能对应读控制模块产生的r_enl, c组的读使能对应读控制模块产生的r_en2, d组的读使能对应读控制模块产生的r_en3,若a、b、C、d中任一组的读使能有效,则该组数据为对应寄存器的数据输出,否则该组对应的数据为32位的O。与现有技术相比,本专利技术具有以下有益的技术效果:本专利技术提供的一种面向RISC处理器的三端口浮点寄存器文件,通过在寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存器阵列本文档来自技高网...
【技术保护点】
一种面向RISC处理器的三端口浮点寄存器文件,其特征在于,包括:写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有效时,置与写地址对应的寄存器AR的写使能w_en有效,并将其分别输出至写控制模块和写数据互连网络;写控制模块,根据输入的写使能w_en和端口的输入写操作精度标志位,决定寄存器AR下面相邻的寄存器的写使能是否有效;输出m位写使能至寄存器阵列中m个寄存器的写使能端;写数据互连网络,在写使能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组均为0;寄存器阵列,为线性编址的一维寄存器阵列,大小为m×32,阵列的宽等于浮点寄存器的位宽,阵列的深度m等于浮点寄存器的个数,阵列中每一个寄存器有写使能,其每个寄存器的写使能和数据输入端分别来自写控制模块和数据互连网络,寄存器阵列有m个32位输出,全部连接至读数据互连网络;当某个寄存器写使能有效时,其输入的数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效;第一读地址译码模块,输入为源操作数1的读使能1和读地址1,当读使能1有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第一读控制模块;第一读控制模块,输出为4位读使能r_en0、r_en1、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作1精度标志位和读使能1,决定AR下面相邻的寄存器的读使能是否有效;第二读地址译码模块,输入为源操作数2的读使能2和读地址2,当读使能2有效时,置与读地址对应的寄存器AR的读使能r_en0有效,并将其输出至第二写读控制模块;第二读控制模块,输出为4位读使能r_en0、r_en1、r_en2、r_en3,全部连接至读数据互连网络;该模块根据输入读操作2精度标志位和读使能2,决定AR下面相邻的寄存器的读使能是否有效;读数据互连网络,根据输入寄存器阵列的m个32位的输出和第二读控制模块的四位读使能的信号,生成1个128位的数据进行输出;根据输入寄存器阵列的m个32位的输出和第一读控制模块的四位读使能的信号,生成1个128位的数据进行输出。...
【技术特征摘要】
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位的数据进行输出; 根据输入寄存器...
【专利技术属性】
技术研发人员:陈庆宇,吴龙胜,段青亚,盛廷义,唐威,
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。