[发明专利]扩展双精度的80位浮点处理单元在处理器中的集成系统及方法有效
| 申请号: | 201410410017.4 | 申请日: | 2014-08-19 |
| 公开(公告)号: | CN104156195A | 公开(公告)日: | 2014-11-19 |
| 发明(设计)人: | 陈庆宇;吴龙胜;艾刁;张辉;唐威 | 申请(专利权)人: | 中国航天科技集团公司第九研究院第七七一研究所 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 |
| 代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
| 地址: | 710068 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 扩展 精度 80 浮点 处理 单元 处理器 中的 集成 系统 方法 | ||
1.一种扩展双精度的80位浮点处理单元在处理器中的集成系统,其特征在于,包括PC、五级流水线、四级浮点处理流水线及指令预译码模块,四级浮点处理流水线包括浮点控制模块、DP2模块、DP1模块、DP0模块、待集成的FPU及浮点寄存器组,PC的输出端与取指模块的输入端相连接,取指模块的输出端与指令预译码模块的输入端相连接,指令预译码模块的输出端分别与五级流水线的输入端及浮点控制模块的输入端相连接,浮点控制模块的浮点输出端依次经DP2模块及DP1模块与DP0模块的输入端相连接,指令预译码模块与浮点控制模块之间、指令控制模块与五级流水线之间、浮点控制模块与DP2模块之间、DP2模块与DP1模块之间以及DP1模块与DP0模块之间分别设有第一个级间寄存器、第二个级间寄存器、第三个级间寄存器、第四个级间寄存器及第五个级间寄存器,浮点控制模块的控制信号输出端与待集成的FPU的输入端相连接,待集成的FPU的输出端分别与DP2模块的输入端、DP1模块的输入端及DP0模块的输入端相连接,浮点寄存器组的输入端分别与各级间寄存器的输出端及待集成的FPU的输出端相连接。
2.根据权利要求1所述的扩展双精度的80位浮点处理单元在处理器中的集成系统,所述浮点控制模块包括控制状态机、FPOP译码模块、地址生成器、相关判断模块、启动模块及原操作数寄存器,控制状态机与FPOP译码模块、地址生成器、相关判断模块、启动模块及原操作数寄存器相连接,地址生成器与FPOP译码模块、相关判断模块及启动模块相连接,启动模块与原操作数寄存器及待集成的FPU相连接。
3.一种扩展双精度的80位浮点处理单元在处理器中的集成方法,其特征在于,基于权利要求2所述的扩展双精度的80位浮点处理单元在处理器中的集成系统,包括以下步骤:
1)指令预译码模块将取值模块根据PC取回的指令进行预译码,当取回的指令为浮点指令时,则将所述浮点指令转发至四级浮点处理流水线上,并向五级流水线发送空指令,当取回的指令为整点指令时,则将fnull信号置为有效,使四级浮点处理水流线的时钟关闭;
2)四级浮点处理流水线中的FPOP译码模块对浮点指令进行逻辑判断,得源操作数的精度opf、目标操作数的精度dsz、源操作数的类型check、操作数寄存器号addr、指令精度ind及流水线挂起无效信号holdn,并将源操作数的类型check输入到相关判断模块中,将源操作数的精度opf及操作数寄存器号addr输入到地址生成器中,将目标操作数的精度dsz输入到控制状态机及地址生成器中,将指令精度ind及流水线挂起无效信号holdn输入到控制状态机中,其中,当浮点指令只需第一个源操作数时,则check=01;当浮点指令只需第二个源操作数,则check=10;当浮点指令需要第一个源操作数及第二个源操作数时,则check=11;当所需的源操作数为整型,则opf=00;当所需的源操作数为单精度,则opf=01;当所需的源操作数为双精度,则opf=10;当所需的源操作数为扩展双精度,则opf=11;当目标操作数为单精度或者整型,则dsz=00;当目标操作数为双精度,则dsz=10;当目标操作数为扩展双精度,则dsz=11;当指令精度为单精度,则ind=00;当指令精度为双精度,则ind=10;当指令精度为扩展双精度,则ind=11,将浮点指令中第一个源操作数的寄存器号、第二个源操作数的寄存器号及目标操作数的寄存器号拼接之后输出到地址生成器中;
3)设控制状态机转移条件101指浮点指令为单精度指令且holdn=1;控制状态机转移条件102指浮点指令为双或者扩展双精度指令且holdn=1;控制状态机转移条件103指浮点指令为双精度指令且holdn=1;控制状态机转移条件104指浮点指令为扩展双精度指令且holdn=1;控制状态机转移条件105为holdn=1;其中,控制状态机当转移条件101、转移条件105或转移条件103指浮点指令有效时,则状态机状态转移到state=00;当控制状态机转移条件104指浮点指令有效时,则状态机状态转移到state=10;当控制状态机转移条件102指浮点指令满足时,则状态机状态转移到state=01;
当state≠00时,控制状态机则将hold_pc置为高电平,禁止取指模块的输出信号指令PC的更新;
当state=00时,且opf=00或opf=01时,控制状态机则将write_reg置为高电平;
当state=00时,且opf=10,则判断目标操作数的精度,当此时目标操作数为双或者扩展双精度时,控制状态机则将write_reg置为高电平;
当state=00时,且当opf=11,则判断目标操作数的精度,当此时目标操作数的精度为扩展双精度时,控制状态机则将write_reg置为高电平;
当state=01时,且当opf=00、opf=01或opf=10时,控制状态机则将write_reg置为高电平;
当state=01时,且当opf=11,则判断目标操作数的精度,当此时目标操作数的精度为双或扩展双精度,控制状态机则将write_reg置为高电平;
当state=10时,控制状态机则将write_reg置为高电平;
最后控制状态机将状态标识state及目标操作数写使能write_reg均输入到各级间寄存器的输入端相连接,当holdn=1时,控制状态机则将状态标识state及目标操作数写使能write_reg向DP2模块传递;控制状态机将流水线挂起无效信号holdn输入到启动模块中,控制状态机将状态标识state输入到地址生成器、启动模块、源操作偶数寄存器;
4)地址生成器根据状态标识state、源操作数的寄存器号、目标操作数的寄存器号以及浮点类型,计算生成不同状态标识state下的源操作数及目标操作数对应的物理地址,并将第一源操作数的物理地址rs1、第二源操作数的物理地址rs2、目标操作数的物理地址rd输入至相关判断模块中;具体的,
当状态标识state=01时,且当源操作数为双或扩展双精度,地址生成器则将当前源操作数寄存器号+1之后的结果作为源操作数物理地址输入至相关判断模块中;
当状态标识state=10时,且当源操作数为扩展双精度,地址生成器则将当前源操作数寄存器号+2之后的结果作为源操作数物理地址输入至相关判断模块中;
当state=01时,且当目标操作数为双或扩展双精度,地址生成器则将当前目标操作数寄存器号+1之后的结果作为目标操作数物理地址输入至相关判断模块中;
当state=10时,且当目标操作数为扩展双精度,地址生成器则将当前目标操作数寄存器号+2之后的结果作为目标操作数物理地址输入至判断模块中;
5)所述相关判断模块接收五级流水线的标志信号ctrl,然后根据标志信号ctrl和源操作数的类型check判断四级浮点流水线中是否存在控制相关及数据相关,当存在控制相关及数据相关时,则产生lock_pc信号,并通过lock_pc信号禁止取指模块指令PC更新;当不存在数据相关或控制相关时,则从浮点寄存器组中读取32位操作数rs1_data及rs2_data,然后将读取的32位操作数rs1_data及rs2_data接入到源操作数寄存器的输入端;
6)所述源操作数寄存器根据状态标识state和源操作数的精度opf将源操作数rs1_data及rs2_data保存到源操作数寄存器的相应位置,具体的,当state=00时,将rs1_data及rs2_data保存到源操作数寄存器的低32位;当state=01时,且当源操作数为双或者扩展双精度,则将rs1_data及rs2_data保存到源操作数寄存器的中间32位;当state=10时,且当源操作数为扩展双精度,则将rs1_data及rs2_data保存到源操作数寄存器的高15位,否则,源操作数寄存器保持不变;
7)当state=00时,且当源操作数为单精度且holdn=1,则启动模块将fp_start置为高电平;当state=01时,且当源操作数为双精度以及holdn=1时,启动模块则将fp_start置为高电平;当state=“10”时,且源操作数为扩展双精度以及holdn=1,则启动模块将fp_start为高电平,当fp_start为高电平时,待集成的FPU对fp_start进行计算,得计算结果fpuo_result;
8)所述DP2模块输入待集成的FPU的计算结果fpuo_result、异常情况fpuo_excep、控制状态机输出的目标操作数写使能write_reg、状态标识state、opf、dsz以及浮点寄存器组输出的异常屏蔽位fsr_tem;
当fpuo_excep和fsr_tem作与运算的结果不为0时,则将异常置位信号t_ind置为高电平,将异常标志位trap置为高电平,同时将目标操作数写使能write_reg置为低电平;字选择模块选择根据state、opf、dsz及write_reg的组合作为32位result的选择使能,将目标操作数物理地址rd对应的浮点结果输出到32位result,32位result将所述浮点结果经第三个级间寄存器输入到DP1模块中;将异常标志信号trap输入到五级流水线的异常处理级,然后将state及目标操作数写使能write_reg经第三级间寄存器输入到DP1模块中;
9)所述DP1模块输入待集成的FPU输出的计算结果fpuo_result和异常情况fpuo_excep、DP2模块输出的state、write_reg、opf、dsz及浮点结果、以及浮点寄存器组输出的异常屏蔽位fsr_tem;
当fpuo_excep和fsr_tem作与运算的结果不为0时,则将异常置位信号t_ind置为高电平,将异常标志位trap置为高电平,同时将目标操作数写使能write_reg置为低电平,同时DP1模块将目标操作数写使能write_reg及state经第四个级间寄存器输入到DP0模块中,同时字选择电路选择与目标操作数物理地址rd对应的浮点结果输出到32位result,32位result将所述浮点结果输入到DP0模块中result;
10)所述DP0模块输入到待集成的FPU输出的计算结果fpuo_result及异常情况fpuo_excep、DP1模块输出的state、目标操作数写使能write_reg、opf、dsz以及up_result、以及浮点寄存器组输出的异常屏蔽位fsr_tem,DP0模块内的字选择电路选择与目标操作数物理地址rd对应的浮点结果,当目标操作数写使能write_reg为高电平,不同state下目标操作数物理地址rd对应32位result则将对应的浮点结果输入到浮点寄存器组的浮点寄存器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科技集团公司第九研究院第七七一研究所,未经中国航天科技集团公司第九研究院第七七一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410410017.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种图标智能生成方法
- 下一篇:一种虚拟磁盘容量平滑拓展方法





