首页> 中国专利> 一种面向RISC处理器的三端口浮点寄存器文件

一种面向RISC处理器的三端口浮点寄存器文件

摘要

本发明公开了一种面向RISC处理器的三端口浮点寄存器文件,通过在寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存器阵列的控制逻辑根据精度标志位和读写标志位,对源操作数和目标操作数地址指定的寄存器及与它地址相邻的寄存器同时进行读写操作,可以单周期完成双精度、四精度浮点数的读取和回写,解决了浮点运算过程中面临的SRAM带宽问题。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-07-06

    授权

    授权

  • 2014-09-10

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20140515

    实质审查的生效

  • 2014-08-13

    公开

    公开

说明书

技术领域

本发明专利属于微处理器体系结构领域,涉及一种面向RISC处理器的 三端口浮点寄存器文件。

背景技术

精简指令集(RISC)处理器的大部分指令操作都在寄存器之间进行,必 须由专门的访存指令完成外部存储器的读写操作。为了加快指令的执行速度, RISC处理器内部都有寄存器文件,指令执行过程中从寄存器文件取得源操作 数,并将执行结果(目标操作数)写回到寄存器文件。一般情况下,RISC 处理器的指令使用两个源操作数,计算得到一个目标操作数,基于此,寄存 器文件应具有三个端口,具体包括两个读端口和一个写端口。

当前,三端口的寄存器文件的主要设计方法有两种,第一种为针对特殊 应用要求(如抗辐照)的全定制设计,此类方法并不适用于通用处理器的寄 存器文件实现。另一种基于单元库的半定制设计,即利用两块单元库中提供 的双端口SRAM构造三端口的寄存器文件,如Atmel公司的AT697E、AT697F 系列处理器,Gaisler研究所的LEON系列处理器及UT699系列处理器等。

文献“UT699LEON3FT/SPARC V8MicroProcessor Functional Manual” 公开了UT699处理器中寄存器文件的设计方法,通过两块256x48的双端口 SRAM构造一个168x39的三端口寄存器文件,构造方法如图1所示,将目 标操作数同时回写到两块SRAM中,以保证两块SRAM中数据的一致性, 两个源操作数则是通过分别向两块SRAM请求数据获得。

基于单元库的半定制设计主要存在以下不足:(1)硬件资源浪费,增大 了设计的功耗。该方法至少需要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组 均为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位的数据进行输出。

所述的写控制模块,根据写使能w_en和端口的输入写操作精度标志位 进行如下判断:

如果写操作的精度标志位为双精度,则将寄存器阵列中AR的下一个寄 存器的写使能w_en置有效;

如果写操作的精度标志位为四精度,则将寄存器阵列中AR的下三个寄 存器的写使能w_en全部置有效(高电平);

如果写操作的精度标志位为单精度,只保持AR的写使能w_en有效。

所述的第一读控制模块进行以下判断:

如果读操作1的精度标志位为双精度,则将寄存器阵列中AR的下一个 寄存器的读使能r_en1置有效;

如果读操作1的精度标志位为四精度,则将寄存器阵列中AR的下三个 寄存器的读使能r_en1、r_en2、r_en3全部置有效;

如果读操作1的精度标志位为单精度,只保持AR的读使能r_en0有效。

所述的第二读控制模块进行以下判断:

如果读操作2的精度标志位为双精度,则将寄存器阵列中AR的下一个 寄存器的读使能r_en1置有效;

如果读操作2的精度标志位为四精度,则将寄存器阵列中AR的下三个 寄存器的读使能r_en1、r_en2、r_en3全部置有效;

如果读操作2的精度标志位为单精度,只保持AR的读使能r_en0有效。

所述的寄存器阵列对m个32位寄存器实行线性编址,构成一维寄存器 阵列,地址范围0~m-1。

所述的读数据互连网络输出的128位的数据是由从低到高的a、b、c、d 四组32位数据组成,a组的读使能对应读控制模块产生的r_en0,b组的读使 能对应读控制模块产生的r_en1,c组的读使能对应读控制模块产生的r_en2, d组的读使能对应读控制模块产生的r_en3,若a、b、c、d中任一组的读使 能有效,则该组数据为对应寄存器的数据输出,否则该组对应的数据为32 位的0。

与现有技术相比,本发明具有以下有益的技术效果:

本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,通过在 寄存器文件的输入信号中,增加源操作数和目标操作数的精度标志位,寄存 器阵列的控制逻辑根据精度标志位和读写标志位,对源操作数和目标操作数 地址指定的寄存器及与它地址相邻的寄存器同时进行读写操作,可以单周期 完成双精度、四精度浮点数的读取和回写,解决了浮点运算过程中面临的 SRAM带宽问题。

本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,使用寄 存器阵列代替单元库中的SRAM作为三端口寄存器文件的存储单元,可以由 设计者在不依赖单元库的基础上,根据处理器架构的要求,控制寄存器阵列 的大小,避免了SRAM硬件资源的浪费,降低了功耗。

本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,不需要 改变处理器任何控制逻辑,不需要提供额外的读写控制信号,仅需处理器给 出寄存器文件读写操作时的精度标志位,控制较为简单。

本发明提供的一种面向RISC处理器的三端口浮点寄存器文件,可以在 单周期内完成双、四精度浮点数据的读取和回写,效率较高,提高了处理器 性能。

附图说明

图1为现有的半定制三端口寄存器文件的结构图;

图2为基于本发明的寄存器阵列框图,其中图(a)为寄存器阵列中的任 意一个n位寄存器示意图,图(b)为一维线性编址的寄存器阵列框图;

图3为基于本发明的三端口寄存器文件的电路结构图;

图4为读过程中的数据处理示意图。

具体实施方式

下面结合附图对本发明专利做进一步详细描述,所述是对本发明的解释 而不是限定。

如图2、图3所示,一种面向RISC处理器的三端口浮点寄存器文件,包 括写地址译码模块、写控制模块、写数据互连网络、寄存器阵列、第一读地 址译码模块、第二读地址译码模块、第一读控制模块、第二读控制模块、读 数据互连网络;

所述写地址译码模块,输入为寄存器文件写使能和写地址,当写使能有 效时(高电平),置与写地址对应的寄存器AR的写使能w_en有效,并将其 输出至写控制模块和写数据互连网络。

所述写控制模块,输出为m位写使能,分别连接至寄存器阵列中m个 寄存器的写使能端。该模块根据写使能w_en和端口的输入写操作精度标志 位,决定AR下面相邻的寄存器的写使能是否有效;如果写操作的精度标志 位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加1)的写 使能w_en置有效(高电平);如果写操作的精度标志位为四精度,则将寄存 器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存 器)的写使能w_en全部置有效(高电平),其余情况(单精度)只保持AR 的写使能w_en有效。

所述写数据互连网络,输出为m个32位的数据,分别连接至寄存器阵 列中m个寄存器的数据输入端。该模块在AR的写使能控制下,将寄存器文 件的128写位数据从低位到高位,以32位一组,分为a、b、c、d四组,将 a组连接到寄存器AR的数据输入端datai;将b、c、d三组分别依次连接至 AR下面相邻的三个寄存器的数据输入端datai。

所述的寄存器阵列,如图2所示,线性编址的一维寄存器阵列,大小为 m×32,阵列的宽(32)等于浮点寄存器的位宽,阵列的深度m等于浮点寄 存器的个数,阵列中每一个寄存器有写使能,当某个寄存器写使能有效时, 那么数据在时钟上升沿写入该寄存器,阵列中寄存器的输出恒有效。其每个 寄存器的写使能和数据输入端分别来自写控制模块和数据互连网络,寄存器 阵列有m个32位输出,全部连接至读数据互连网络。

所述的第一读地址译码模块,输入为源操作数1的读使能1和读地址1, 当读使能1有效时(高电平),置与读地址对应的寄存器AR的读使能r_en0 有效,并将其输出至第一读控制模块。

所述的第一读控制模块,输出为4位读使能r_en0、r_en1、r_en2、r_en3, 全部连接至读数据互连网络。该模块根据输入读操作1精度标志位和读使能 1,决定AR下面相邻的寄存器的读使能是否有效;如果读操作1的精度标志 位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加1)的读 使能r_en1置有效(高电平);如果读操作的精度标志位为四精度,则将寄存 器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存 器)的读使能r_en1、r_en2、r_en3全部置有效(高电平),其余只保持AR 的读使能r_en0有效。

所述的第二读地址译码模块,输入为源操作数2的读使能2和读地址2, 当读使能2有效时(高电平),置与读地址对应的寄存器AR的读使能r_en0 有效,并将其输出至写读控制模块2。

所述的第二读控制模块,输出为4位读使能r_en0、r_en1、r_en2、r_en3, 全部连接至读数据互连网络。该模块根据输入读操作2精度标志位和读使能 2,决定AR下面相邻的寄存器的读使能是否有效;如果读操作2的精度标志 位为双精度,则将寄存器阵列中AR的下一个寄存器(AR的地址加1)的读 使能r_en1置有效(高电平);如果读操作的精度标志位为四精度,则将寄存 器阵列中AR的下三个寄存器(AR的地址加1,加2,加3对应的三个寄存 器)的读使能r_en1、r_en2、r_en3全部置有效(高电平),其余只保持AR 的读使能r_en0有效。

所述读数据互连网络,输入为寄存器阵列的m个32位的输出、第二读 控制模块的四位读使能,根据上述输入信号生成1个128位的数据进行输出;

输入为寄存器阵列的m个32位的输出,第一读控制模块的四位读使能, 根据上述输入信号,生成1个128位的数据进行输出。

如图4所示,所述的读数据互连网络输出的128位的数据是由从低到高 的a、b、c、d四组32位数据组成,a组的读使能对应读控制模块产生的r_en0, b组的读使能对应读控制模块产生的r_en1,c组的读使能对应读控制模块产 生的r_en2,d组的读使能对应读控制模块产生的r_en3,若a、b、c、d中任 一组的读使能有效,则该组数据为对应寄存器的数据输出,否则该组对应的 数据为32位的0。

基于本发明实现的三端口浮点寄存器文件已经应用在一款SPARC V8架 构的处理器中。相对于基本单元库的半定制设计方法,本发明使设计者根据 处理器架构的要求,自主控制寄存器阵列的大小,避免了单元库中SRAM硬 件资源的浪费;本发明不需要改变处理器任何控制逻辑,仅需处理器给出寄 存器文件读写操作时的精度标志位,控制较为简单;本发明三端口浮点寄存 器文件,可以使处理器在单周期内完成双、四精度浮点数据的读取和回写, 效率较高,提高了处理器性能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号