发明名称 实现寄存器文件分组编址、读写控制方法的寄存器电路
摘要 本发明公开了一种实现寄存器文件分组编址、读写控制方法的寄存器电路,包括一个写回数据生成模块、一个写地址和控制信号生成模块、两块寄存器RAM,两个读地址和控制信号生成模块和两个操作数生成模块;其中第一块寄存器分为RAM0~RAM3寄存器组,第二块寄存器分为RAM4~RAM7寄存器组,每个寄存器组的大小为寄存器文件的四分之一;写回数据生成模块的输出分别连接各寄存器组的32位数据输入;写地址和控制信号生成模块的输出分别连接各寄存器组的写控制输入;RAM0~RAM3寄存器组通过第一操作数生成模块输出128位的第一源操作数;RAM4~RAM7寄存器组通过第二操作数生成模块输出128位的第二源操作数。
申请公布号 CN101930355B 申请公布日期 2013.07.24
申请号 CN201010261114.3 申请日期 2010.08.24
申请人 中国航天科技集团公司第九研究院第七七一研究所 发明人 张洵颖;裴茹霞;肖建青;赵华;李红桥
分类号 G06F9/30(2006.01)I 主分类号 G06F9/30(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 朱海临
主权项 一种实现寄存器文件分组编址、读写控制方法的寄存器电路,包括一个写回数据生成模块、一个写地址和控制信号生成模块、两块寄存器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]地址信号、读控制信号和操作类型选择信号;以上所述操作类型选择信号是指根据指令操作类型译码,产生指示单、双、四精度操作的操作类型信号;读地址和控制信号生成模块将n+1位的源操作数地址rs[n:0]分为两部分,一个为每一组RAM块中的地址rs[n:2]和rs[1:0],其中rs[n:2]用于对组中特定寄存器的访问,rs[1:0]用于在单、双精度操作数时进行组选择,四精度时所有组都要进行读取,无需进行组选择;操作数生成模块根据组选通信号形成拼接后的128位数据,再根据操作类型选择具体拼接得到的值作为操作数输出,包括一个4路选择模块,2路选择模块,128位数据拼接模块,64位数据拼接模块,其中,4路选择模块的输入分别为RAM0、RAM1、RAM2或者RAM3的32位输出,根据rs[1:0]选择其中的一个32位的值输出至数据拼接模块1,数据拼接模块1输出128位数据,其高位为输入的32位数据,低96位补“0”;64位数据拼接模块分别将输入的RAM0和RAM1、RAM2和RAM3拼接为两个64位输出,2路选择模块根据rs[1]选择其中的一个64位值输出至数据拼接模块2,数据拼接模块2输出128位数据,其高位为输入的64位数据,低64位补“0”;128位数据拼接模块将RAM0、RAM1、RAM2和RAM3输出的数据拼接为128位,输出至3路选择模块,3路选择模块根据操作类型选择输出数据 拼接模块1输出的128位数据、数据拼接模块2输出的128位数据或者128位数据拼接模块输出的128位数据中的一个作为输出,其中单精度操作时选择数据拼接模块1输出的数据作为输出;双精度时选择数据拼接模块2的数据作为输出;四精度时选择128位数据拼接模块的输出作为输出;写回数据生成模块根据对128位处理结果进行截取、复制操作形成操作单、双、四精度时到分组RAM块上的写回数据,根据操作类型选择选通到分组RAM写入数据端口上的数据,由写控制信号确定特定组的写入;对于作为写回结果的128位数据,四倍复制时将128位数据的高32位数据四倍复制形成128位写入数据;两倍复制模块将128位数据的高64位数据,两倍复制形成128位写入数据;3路选择模块将四倍复制模块和两倍复制模块输出的两个128位数据与128位写回结果数据三个128位数据,根据操作类型选择其一输出,输出的128位数据拆分为4个32位数据分别连接到RAM0、RAM1、RAM2、RAM3的写入数据端口上。
地址 710054 陕西省西安市太乙路189号