实现寄存器文件分组编址、读写控制方法的寄存器电路的制作方法

文档序号:6608126阅读:215来源:国知局
专利名称:实现寄存器文件分组编址、读写控制方法的寄存器电路的制作方法
技术领域
本发明涉及一种32位RISC处理器中浮点寄存器文件的分组编址、读写控制方法 及电路的实现结构。
背景技术
精简指令集(RISC)处理器普遍采用基于寄存器的计算模式,其源操作数来自 寄存器或立即数,而执行的结果一般也要写回到寄存器中。基于这样的结构特点,为了 支持多操作数的同时访问,RISC处理器的寄存器必须提供至少两个的读端口和一个写端 口。在具体的处理器设计中,有两种典型的设计思路1)全定制的设计文献“A Small, Fast and Low-PowerRegister File by Bit-Partitioning,,(Proceedings of the Ilth InternationalSymposium on High-Performance Computer Architecture (HPCA-112005)) 和"The Alpha 21264 Microprocessor (IEEE MICRO, Vol. 19(2))中对这种设计进行了 介绍,以原DEC公司的Alpha系列处理器为代表的全定制设计通过定制寄存器文件,从 而提供多个读端口和写端口,这种方法在超标量RISC处理器设计中,为了适应多条指令 的同时访问,寄存器文件甚至设计了八个以上的读端口 ;2)基于单元库的半定制设计 这种设计应用单元库提供的多端口存储器模块来通过结构设计实现需求的端口保证, GaislerResearch公司的LEON系列处理器(www. gaisler. com)通过使用单元库提供的两块 双端口存储器,写端口共用,读端口相互独立来实现“两读一写”的寄存器文件结构。在这两 种设计思路中,全定制设计具有较高的技术门槛,而且随着设计的端口增多,设计复杂性急 剧上升,设计难度大;而基于单元库的半定制设计以结构复制的方式实现了设计的简便性。在端口设计之外是寄存器的地址组织,目前广泛采用统一线性编址模式。

图1给 出了应用一个读端口、一个写端口的RAM块[图1(b)]来实现统一线性编址寄存器文件结 构[图1(a)]的设计结构示意图,通过对两块RAM的同时写入和分别读出可以提供需要的 “两读一写”端口结构。在32位RISC处理器中,所有的寄存器位宽都是32位,这样对于超过32位位宽的 数据格式采取用多个寄存器来保存的方法。例如,32位的单精度浮点数采用一个寄存器保 存;64位的双精度浮点数用两个连续地址的寄存器保存,寄存器地址以2的整数倍对齐;而 128位的四精度浮点数则采用4个连续地址的寄存器来保存,寄存器地址以4的整数倍对 齐。针对目前的寄存器文件结构,对应的典型情况是32位RISC处理器在进行双或四精度 浮点运算时,必须要花费两或四个周期才能取得完整的操作数送入执行部件;同时,双或四 精度的计算结果需要两或四个周期才能写回寄存器。这种由多个寄存器共同提供一个操作 数的计算模式,导致必须对寄存器文件进行多次读写,在高性能微处理器设计中,这种为准 备操作数和结果写回而来的多寄存器访问周期对于处理器的性能具有较大的影响。如何统一不同操作数格式的寄存器访问时间,是高性能处理器设计,尤其是浮点 协处理器设计中必须要解决的问题,经检索相关文献和专利,尚未发现有解决该问题的方 法。

发明内容
本发明针对浮点协处理器高精度浮点计算时操作数准备和操作结果存回寄存器 需要多个时钟周期的问题,提出一种在不额外增加寄存器数量的情况下,能够实现单、双或 四精度不同位宽操作数的统一单周期访问的寄存器编址、读写访问控制方法与电路结构。为达到以上以上目的,本发明是采取如下技术方案予以实现的一种用于浮点协处理器的寄存器文件分组编址、读写控制方法,包括下述两大步 骤(1)寄存器文件分组编址将寄存器文件分为四组,即每次最大寄存器访问数目为4,同时,改变寄存器的编 址模式,将原来统一线性编址的模式改为基于分组的“之”字型编址,即,对于2n+1个的浮 点寄存器来讲,其地址为n+1位的二进制地址,在分成四组之后,每一组中采用统一线性编 址,称为组内偏移地址,该组内偏移地址对应于原地址rs[n:0]的rs[n:2]部分,原地址 rs[n:0]的rs[l:0]部分作为四组寄存器的组号出现,这样将一个一维的线性地址转变为 了一个两维的行列结构;对于单精度数据访问对应于RAMO、RAMI、RAM2或者RAM3中的一个 寄存器组中一个寄存器的访问;双精度数据的访问则对应于RAMO和RAMI或RAM2和RAM3 两组寄存器分组中相同偏移地址的访问;四精度数据的访问则对应于对四个分组中相同偏 移地址的同时访问;(2)寄存器文件的读写控制在步骤(1)分组编址的情况下,为每一组寄存器都提供一套读写控制信号、地址 信号和数据信号,其中每一组的地址信号对应于要访问寄存器地址的最高位到第三位,即 rs[n:2],数据信号、读写控制信号是每组专属的,其中,读写控制信号按照如下的步骤生 成1)根据指令操作类型译码,产生指示单、双、四精度操作的操作类型信号;2)应用操作类型信号判断寄存器组选择的类型,其中单精度时由要访问寄存器地 址的最低两位rs[l:0]的对应值来确定RAMO、RAMI、RAM2或者RAM3四个寄存器组中要被 选中的单组并提供读或写控制信号;双精度时由要访问寄存器地址的第二位rs[l]来确定 RAMO和RAMI或RAM2和RAM3寄存器组两两组合的两对中的一对并提供读或写控制信号; 四精度时所有的四个寄存器组都选通并提供读或写控制信号;对于支持单、双、四精度的浮点协处理器而言,其最大处理位宽为128位,其源操 作数和运算结果在进入数据路径前都被拼接成128位的模式,对于单精度来讲,其低96位 补“0”;双精度时低64位补“0”,四精度时则为对应的128位的数据,根据这样的数据结构, 每个寄存器组的数据信号的生成步骤如下1)数据读出时,读出使能的寄存器组都将数据送出,根据操作类型指示信号,单精 度时,寄存器组输出的数据和低96位的“0”相拼接,双精度时寄存器组输出的数据和低64 位的“0”相拼接,四精度时寄存器组输出的数据直接得到128位的操作数;2)数据写入时,根据操作类型指示信号和寄存器组选择信号进行128位数据的写 入分配,单精度时,将128位的高32位全部送到四组寄存器的数据信号上,配合寄存器组写 使能和组选择信号完成对选择的寄存器组的rs[n:2]地址的写入;双精度时将128位的高
464位按照地址对齐模式送至RAMO和RAMI或RAM2和RAM3两两成对的寄存器组的数据信号 上,配合寄存器组写使能和组选择信号将64位结果的高低各32位的数据写入选择的两组 寄存器的rs[n:2]中;四精度时,将128位的结果按照地址对齐模式分为4个32位数据,并 分别送至四个寄存器的数据信号上,配合寄存器组写使能和组选择信号实现4组寄存器文 件中rs[n:2]的写入。一种实现前述用于浮点协处理器的寄存器文件分组编址、读写控制方法的寄存器 电路结构,包括一个写回数据生成模块、一个写地址和控制信号生成模块、两块寄存器RAM, 两个读地址和控制信号生成模块和两个操作数生成模块;其中第一块寄存器分为RAMO RAM3寄存器组,第二块寄存器分为RAM4 RAM7 寄存器组,每个寄存器组的大小为寄存器文件的四分之一;写回数据生成模块的输入连接128位写回结果,输出分别连接各寄存器组的32位 数据输入;写地址和控制信号生成模块的输入连接由指令译码而来的包括rd[n:0]地址信 号、写控制信号和操作类型选择信号,输出分别连接各寄存器组的写控制输入;所述第一块寄存器的RAMO RAM3寄存器组通过第一操作数生成模块输出128位 的第一源操作数;RAMO RAM3寄存器组的读控制输入连接第一读地址和控制信号生成模 块的输出,第一读地址和控制信号生成模块的输入连接rsl[n:0]地址信号、读控制信号和 操作类型选择信号;所述第二块寄存器的RAM4 RAM7寄存器组通过第二操作数生成模块输出128位 的第二源操作数;RAM4 RAM7寄存器组的读控制输入连接第二读地址和控制信号生成模 块的输出,第二读地址和控制信号生成模块的输入连接rs2[n:0]地址信号、读控制信号和 操作类型选择信号。与现有技术相比,本发明的优点是1、可以实现双、四精度操作数的单周期访问,从而能够分别节省两个、六个由于数 据读取和结果写回的时钟周期开销;2、可以沿用既有的寄存器端口设计结构,不用额外进行寄存器的定制设计,同时 没有增加额外的寄存器数量;3、相比以前设计中由于要多周期读取或写入所以要提供数据寄存器来保持前面 周期读出或待写回数据的设计结构,本发明单周期能够实现单、双、四精度数据的读取和写 回,所以不再需要相应的暂存数据的寄存器;4、除了为多组寄存器提供的控制信号、数据信号而来的连线开销之外,没有增加 额外的硬件开销;5、采用操作类型控制组选通的机制,可以避免寄存器的无效动作,从而从结构上 提供低功耗的收益。本发明能够归一化RISC结构处理器操作数位宽不一致时的访问时长,从而最小 化处理器源操作数访问和结果写回的时钟周期数,使得长位宽操作数的操作不受操作数准 备和结果写回的影响,从而提升处理器的性能,
以下结合附图及具体实施方式
对本发明作进一步的详细说明。
图1为现有技术的采用统一线性编址的寄存器文件结构。其中图1(a)为寄存器 文件结构;图1(b)为寄存器文件用RAM块结构。图2为本发明中的寄存器文件分组和地址编址结构示意图。图3为采用本发明方法的不同数据位宽统一访问时长的浮点寄存器电路结构。图4为图3中的两个操作数生成模块的具体电路原理图。图5为图3中的写回数据生成模块电路原理图。
具体实施例方式一种用于浮点协处理器的寄存器文件分组编址、读写控制方法,包括下述两大步 骤(1)寄存器文件分组编址高精度浮点计算时操作数准备和结果存回寄存器需要多个时钟周期的原因是寄 存器位宽为32位,每次读出或写入的是一个寄存器,而双、四精度需要分别读出或写入的 是两个和四个寄存器,这样需要多次寄存器读或写。为了减少读或写周期数,需要实现对多 个寄存器的同时读和写,将原来统一的寄存器文件进行分组,每一组使用一块“一读一写” 端口的RAM块来实现,这样在每次访问时通过相应的读写控制方法可以实现对多个寄存器 的访问,从而实现数据位宽的扩展,根据单、双、四精度数据格式的寄存器地址对齐策略,在 读或写时由不同的组提供相应的寄存器的数据读出或写入,从而实现不同位宽的单周期统 一读写。本发明基于此思想,由于四精度数据操作是一次访问需要的最大位宽,所以将寄 存器文件分为四组,即每次最大寄存器访问数目为4。同时,改变寄存器的编址模式,将原来 统一线性编址的模式修改为基于分组的“之”字型编址,即,对于2n+1个(η为自然数)的浮 点寄存器来讲,其地址为η+1位的二进制地址,在分成四组之后,每一组中采用统一线性编 址,称为组内偏移地址,该地址对应于原地址rs[n:0]的rs[n:2]部分,原地址的rs[l:0] 部分作为四组寄存器的组号出现,这样将一个一维的线性地址转变为了一个两维的行列结 构,详细的结构示意图见图2。这样,对于单精度数据的访问则对应于对于RAMO、RAMI、RAM2 或者RAM3中的一个寄存器组中一个寄存器的访问;双精度数据的访问则对应于RAMO和 RAMI或RAM2和RAM3两两成对的寄存器分组中相同偏移地址的访问;四精度数据的访问则 对应于对四个分组中相同偏移地址的同时访问。基于这样的分组编址模式,从寄存器文件 的组织上为不同数据格式统一时长的访问提供了保证。(2)寄存器文件的读写控制在步骤(1)分组编址的情况下,对应的读写访问方法与采用统一线性编址的读写 访问方法不同。在原来统一线性编址的情况下,整个寄存器文件使用一套控制信号,在采用 分组编址之后,为每一组寄存器都提供一套读写控制信号、地址信号和数据信号,其中每一 组的地址信号对应于要访问寄存器地址的最高位到第三位,即rs[n:2],数据信号和读写控 制信号是每组专属的。读写控制信号按照如下的模式生成1)根据指令操作类型译码,产生指示单、双、四精度操作的操作类型信号;2)应用操作类型信号判断组选择的类型,其中单精度时由要访问寄存器地址的最 低两位rs [1:0]的对应值来确定RAM0、RAM1、RAM2或者RAM3四个寄存器组中的一个选通并
6提供读或写控制信号,双精度时由要访问寄存器地址的第二位rs[l]来确定两两成对的寄 存器对的一个选通并提供读或写控制信号,四精度时所有的寄存器组都选通并提供读或写 控制信号。对于支持单、双、四精度的浮点协处理器而言,其最大处理位宽为128位,所以其 源操作数和运算结果在进入数据路径前都被拼接成128位的模式,对于单精度来讲,其低 96位补“0”;双精度低64位补“0”,四精度则为对应的128位的数据。根据这样的结构,每 个寄存器组的数据信号的生成模式如下1)在数据读出端,读出使能的寄存器组都将数据送出,根据操作类型指示信号,单 精度时,寄存器组输出的数据和低96位的“0”相拼接,双精度时寄存器组输出的数据和低 64位的“0”相拼接,四精度时寄存器组输出的数据直接得到128位的操作数;3)数据写入时,根据操作类型指示信号和寄存器组选择信号进行128位数据的写 入分配,单精度时,将128位的高32位全部送到四组寄存器的数据信号上,配合写使能和组 选择信号完成对选择的寄存器组的rs[n:2]地址的写入;双精度时将128位的高64位按照 地址对齐模式送至RAMO和RAMI或RAM2和RAM3两两成对的组的数据信号上,配合寄存器组 写使能和组选择信号将64位结果的高低各32位的数据写入选择的两组寄存器的rs[n:2] 中;四精度时,将128位的结果按照地址对齐模式分为4个32位数据并分别送至四个寄存 器的数据信号上,配合寄存器组写使能和组选择信号实现4组寄存器文件中rs[n:2]的写 入。根据上述的分组编址和读写控制方法,可以实现单、双、四精度浮点数据格式操作 时对浮点寄存器的统一单周期访问。如图3所示,本发明还提供了一种实现前述用于浮点协处理器的寄存器文件分组 编址、读写控制方法的具体寄存器电路结构。包括一个写回数据生成模块、一个写地址和 控制信号生成模块、两块寄存器RAM,两个读地址和控制信号生成模块和两个操作数生成模 块;其中第一块寄存器分为RAMO RAM3寄存器组,第二块寄存器分为RAM4 RAM7 寄存器组,每个寄存器组的大小为寄存器文件的四分之一;写回数据生成模块的输入连接128位写回结果,输出分别连接各寄存器组的32位 数据输入;写地址和控制信号生成模块的输入连接由指令译码而来的包括rd[n:0]地址信 号、写控制信号和操作类型选择信号,输出分别连接各寄存器组的写控制输入;所述第一块寄存器的RAMO RAM3寄存器组通过第一操作数生成模块输出128位 的第一源操作数;RAMO RAM3寄存器组的读控制输入连接第一读地址和控制信号生成模 块的输出,第一读地址和控制信号生成模块的输入连接rsl[n:0]地址信号、读控制信号和 操作类型选择信号;所述第二块寄存器的RAM4 RAM7寄存器组通过第二操作数生成模块输出128位 的第二源操作数;RAM4 RAM7寄存器组的读控制输入连接第二读地址和控制信号生成模 块的输出,第二读地址和控制信号生成模块的输入连接rs2[n:0]地址信号、读控制信号和 操作类型选择信号。图3采用“一读一写”端口的RAM块实现的分组编址及访问控制,原来的两块RAM 块分别被四组大小为寄存器文件四分之一规模的寄存器组来替代。
7
在由指令译码结构而来的操作类型选择信号的控制下,读地址和控制信号生成模 块将n+1位的源操作数地址rs[n:0]分为两部分,一个为每一组RAM块中的地址rs[η:2] 和rs[l:0],其中rs[n:2]用于对组中特定寄存器的访问,rs[l:0]用于在单、双精度操作数 时进行组选择,四精度时所有组都要进行读取,无需进行组选择。根据操作类型信号和组选 择信号rs[l:0]确定仅将寄存器读写控制信号传送给特定的组,这样可以避免不必要的跳 变。操作数生成模块根据组选通信号形成拼接后的128位数据,再根据操作类型选择 具体拼接得到的值作为操作数输出,使用这样的两级选择和数据拼接结构来形成操作数的 生成,电路结构如图4所示,包括一个4路选择模块,2路选择模块,128位数据拼接模块,64 位数据拼接模块。其中,4路选择模块的输入分别为RAMO、RAMI、RAM2或者RAM3的32位输 出,根据rs[l:0]选择其中的一个32位的值输出至数据拼接模块1。数据拼接模块1输出 128位数据,其高位为输入的32位数据,低96位补“0” ;64位数据拼接模块分别将输入的RAMO和RAMI、RAM2和RAM3拼接为两个64位输 出,2路选择模块根据rs[l]选择其中的一个64位值输出至数据拼接模块2。数据拼接模 块2输出128位数据,其高位为输入的64位数据,低64位补“0” ;128位数据拼接模块将RAMO、RAMI、RAM2和RAM3输出的数据拼接为128位,输出 至3路选择模块。3路选择模块根据操作类型选择输出数据拼接1模块输出的128位数据、 数据拼接2模块输出的128位数据或者128位数据拼接模块输出的128位数据中的一个作 为输出,其中单精度操作时选择拼接1模块输出的数据作为输出;双精度时选择拼接2模块 的数据作为输出;四精度时选择128位数据拼接模块的输出作为输出。写数据生成模块根据对128位处理结果进行截取、复制操作形成操作单、双、四精 度时到分组RAM块上的写回数据,根据操作类型选择选通到分组RAM写入数据端口上的数 据,由写控制信号确定特定组的写入。其电路结构如图5所示,对于作为写回结果的128位 数据,四倍复制时将128位数据的高32位数据四倍复制形成128位写入数据;两倍复制模 块将128位数据的高64位数据,两倍复制形成128位写入数据;3路选择模块将上述两个 模块输出的两个128位数据与128位写回结果数据三个128位数据,根据操作类型选择其 一输出。输出的128位数据拆分为4个32位数据分别连接到RAMO、RAM2、RAM3、RAM4的写 入数据端口上。需要注意的是,根据处理器体系结构中定义的大端或小端结构的不同,双精 度和四精度结果在写回时可能需要寄存器地址的倒序。本发明已经应用于一款兼容SPARC V8结构的RSIC处理器中,通过应用本发明中 设计的浮点寄存器文件,可以通过一次寄存器访问而完成单、双、四精度数据不同数据位宽 的操作,在双、四精度操作时分别能够缩短2个和6个寄存器访问周期,在不影响处理器频 率的情况下,提高了指令的执行效率,从而提高了整个处理器的性能。由于这种分组的RAM 块的大小只是原来一块RAM块的四分之一,方便了在物理设计时布局布线的灵活性,由于 多组控制信号和数据信号而增加的连线硬件开销,可以在一定程度上被小RAM块带来的布 局布线灵活性所弥补,就具体实现结果来看,芯片面积并未提高。
8
权利要求
一种实现寄存器文件分组编址、读写控制方法的寄存器电路,包括一个写回数据生成模块、一个写地址和控制信号生成模块、两块寄存器RAM,两个读地址和控制信号生成模块和两个操作数生成模块;其中第一块寄存器分为RAM0~RAM3寄存器组,第二块寄存器分为RAM4~RAM7寄存器组,每个寄存器组的大小为寄存器文件的四分之一;写回数据生成模块的输入连接128位写回结果,输出分别连接各寄存器组的32位数据输入;写地址和控制信号生成模块的输入连接由指令译码而来的包括rd[n:0]地址信号、写控制信号和操作类型选择信号,输出分别连接各寄存器组的写控制输入;所述第一块寄存器的RAM0~RAM3寄存器组通过第一操作数生成模块输出128位的第一源操作数;RAM0~RAM3寄存器组的读控制输入连接第一读地址和控制信号生成模块的输出,第一读地址和控制信号生成模块的输入连接rs1[n:0]地址信号、读控制信号和操作类型选择信号;所述第二块寄存器的RAM4~RAM7寄存器组通过第二操作数生成模块输出128位的第二源操作数;RAM4~RAM7寄存器组的读控制输入连接第二读地址和控制信号生成模块的输出,第二读地址和控制信号生成模块的输入连接rs2[n:0]地址信号、读控制信号和操作类型选择信号。
全文摘要
本发明公开了一种实现寄存器文件分组编址、读写控制方法的寄存器电路,包括一个写回数据生成模块、一个写地址和控制信号生成模块、两块寄存器RAM,两个读地址和控制信号生成模块和两个操作数生成模块;其中第一块寄存器分为RAM0~RAM3寄存器组,第二块寄存器分为RAM4~RAM7寄存器组,每个寄存器组的大小为寄存器文件的四分之一;写回数据生成模块的输出分别连接各寄存器组的32位数据输入;写地址和控制信号生成模块的输出分别连接各寄存器组的写控制输入;RAM0~RAM3寄存器组通过第一操作数生成模块输出128位的第一源操作数;RAM4~RAM7寄存器组通过第二操作数生成模块输出128位的第二源操作数。
文档编号G06F9/30GK101930355SQ20101026111
公开日2010年12月29日 申请日期2010年8月24日 优先权日2010年8月24日
发明者张洵颖, 李红桥, 肖建青, 裴茹霞, 赵翠华 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1