CN104951283A - 一种risc处理器的浮点处理单元集成电路及方法 - Google Patents
一种risc处理器的浮点处理单元集成电路及方法 Download PDFInfo
- Publication number
- CN104951283A CN104951283A CN201510309976.1A CN201510309976A CN104951283A CN 104951283 A CN104951283 A CN 104951283A CN 201510309976 A CN201510309976 A CN 201510309976A CN 104951283 A CN104951283 A CN 104951283A
- Authority
- CN
- China
- Prior art keywords
- point
- floating
- module
- instruction
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Advance Control (AREA)
Abstract
本发明一种RISC处理器的浮点处理单元集成电路,包括七级的定点流水线和六级的浮点流水线,以及与门;其中集成方法包括,对处理器流水线停顿的控制管理的步骤;对浮点流水线各流水级的执行控制步骤。通过浮点流水线的对应设置,以及对定点流水线中存储器访问模块访问控制逻辑和异常处理模块对异常情况的处理逻辑的共用,使得浮点集成结构清楚,在充分利用原定点处理器逻辑的同时,对原定点流水线设计逻辑改动小,并减少了浮点流水线的控制逻辑,降低了功耗;集成方法具有通用性,实现定点和浮点流水线协同工作,共同实现定点和浮点指令执行,在一个时钟周期内完成两个源操作数的读取和一个运算结果的写入操作,且无其他特殊等待周期,效率高。
Description
技术领域
本发明涉及嵌入式处理器领域,具体为一种RISC处理器的浮点处理单元集成电路及方法。
背景技术
随着工程应用对处理器计算精度的更高要求,要求处理器支持单、双、甚至四精度的浮点指令运算,而浮点指令的运算大多是在独立的浮点执行部件中完成的,为此应研究如何根据浮点执行部件进行浮点处理单元的集成。
目前有很多关于提高浮点流水线的技术,如专利“基于全展开的全流水128位精度浮点累加器”(CN 201010180381.8),“一种浮点乘加融合单元的五级流水结构”(ZL200710099408.9),但均不是对于浮点处理单元的集成。专利“扩展双精度的80位浮点处理单元在处理器中的集成系统及方法”,(申请公布号:CN104156195A),给出了一种针对5级流水线扩展双精度的80位浮点处理单元在处理器的集成方法,但该集成方法需等待浮点指令四级流水全部执行完才可以再对定点指令进行预译码,这直接降低了指令的执行性能,另外,将一条多精度浮点指令的执行状态变为多个单周期指令的执行状态,也需对取指和预译码模块进行控制管理,确保在浮点指令的执行周期不进行新指令的读取和译码,对原处理器流水线设计逻辑修改较多,集成方法通用性不强。
发明内容
针对现有技术中存在的问题,本发明提供一种定点流水线和浮点流水线能够协同并行执行,定点指令和浮点指令运行高效,通用性强的RISC处理器的浮点处理单元集成电路及方法。
本发明是通过以下技术方案来实现:
一种RISC处理器的浮点处理单元集成电路,包括七级的定点流水线和六级的浮点流水线,以及与门;
所述七级的定点流水线包括依次连接的取指模块、译码模块、寄存器访问模块、执行模块、存储器访问模块、异常处理模块和数据写回模块,以及设置在每一个定点流水级输出端的定点流水级间寄存器;
所述六级的浮点流水线包括依次连接在取指模块输出端的译码级FD模块、寄存器访问级FA模块、执行级FE模块、存储器访问级FM模块、异常处理级FX模块和数据写回级FW模块,以及设置在每一个浮点流水级输出端的浮点流水级间寄存器;
所述的浮点流水线还包括浮点执行部件FP和浮点寄存器文件堆;浮点执行部件FP的输入端分别连接译码级FD模块、寄存器访问级FA模块和执行级FE模块输出的执行控制信号;浮点执行部件FP的输出端输出执行结果和浮点运算完成信号fdone分别连接执行级FE模块;浮点寄存器文件堆的输入端连接译码级FD模块用于读控制,以及连接数据写回级FW模块用于写数据和写控制;浮点寄存器文件堆的输出端连接寄存器访问级FA模块用于读数据;
所述与门的输入端分别连接定点流水线的停顿信号holdn与浮点运算完成信号fdone,输出端输出处理器流水线停顿信号new_holdn控制定点和浮点流水线的停顿。
优选的,存储器访问级FM模块输出load类指令读取存储器的地址fraddr,store类指令读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr连接至存储器访问模块的输入。
优选的,异常处理级FX模块输出浮点运算异常指示ferr连接至异常处理模块的输入,同时异常处理模块输出load类指令读取异常floaderr和读取数据frdata连接至异常处理级FX模块的输入。
优选的,译码级FD模块包括初始译码模块、数据相关判决模块、异常检测模块和FP执行控制产生模块;
定点流水线取指模块输出的指令连接至异常检测模块和初始译码模块的输入,异常检测模块输出浮点指令异常指示ftrap、浮点指令异常类型ftt,其中ftrap连接数据相关判决模块的输入;
初始译码模块输出浮点源操作数1寄存器号frs1、浮点源操作数2寄存器号frs2、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点源操作数1读取初始使能frs1r、浮点源操作数2读取使能frs2r、浮点运算指令码fopf,其中frs1、frs2、frs1r、frs2r连接至数据相关判决模块的输入,fopf连接至FP执行控制产生模块的输入;
后继流水级目的寄存器号和相应写使能信号连接数据相关判决模块的输入,数据相关判决模块输出为浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、数据相关阻塞pc指示lock_pc、浮点执行控制信号fpctrl,其中fpctrl连接FP执行控制产生模块的输入,FP执行控制输出产生译码级FD模块的执行控制信号。
进一步,寄存器访问级FA模块包括数据选择模块、数据对其模块和FP执行控制模块;
浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel和后继流水级结果值连接至数据选择模块的输入,数据选择模块的输出初始源操作数1信号fop1t和初始源操作数2信号fop2t连接至数据对齐模块的输入,数据对齐模块输出浮点源操作数1信号fop1和浮点源操作数2信号fop2;
浮点运算指令码fopf和浮点指令异常指示ftrap连接FP执行控制模块的输入,FP执行控制模块输出寄存器访问级FA的执行控制信号。
再进一步,执行级FE模块包括ldst地址产生模块和浮点执行控制模块;
浮点源操作数fop1和fop2分别连接至ldst地址产生模块的输入,ldst地址产生模块输出写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr;
浮点运算指令码fopf、执行结果和浮点运算完成fdone连接至浮点执行控制的输入,浮点执行控制模块输出浮点运算结果fresult和浮点运算异常fexc。
一种RISC处理器的浮点处理单元集成方法,基于如再进一步所述的一种RISC处理器的浮点处理单元集成电路,包括如下步骤,
对处理器流水线停顿的控制管理的步骤;
将定点流水线停顿信号holdn与浮点运算完成信号fdone相与作为处理器流水线停顿信号new_holdn控制定点和浮点流水线的停顿,其中fdone为高表示浮点运算完成,浮点运算未完成时fdone保持为低;
对浮点流水线各流水级的执行控制步骤;具体包括如下操作,
1)浮点译码级FD模块根据输入的指令、后继流水级目的寄存器号和相应写使能信号;输出浮点源操作数1寄存器号frs1、源操作数2寄存器号frs2、浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt、数据相关阻塞pc指示lock_pc、执行控制信号和浮点运算指令码fopf;
浮点寄存器文件堆根据输入的作为读控制信号的frs1、frs1_r、frs2和frs2_r,在下一个时钟周期上升沿读出两个源操作数;
2)浮点寄存器访问级FA模块根据输入的浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、后继流水级结果值、浮点指令异常指示ftrap和浮点运算指令码fopf,输出浮点源操作数fop1和fop2;
并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
3)浮点执行级FE模块根据输入的浮点源操作数fop1、fop2,浮点运算指令码fopf、执行结果、浮点运算完成fdone,输出写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr、浮点运算结果fresult和浮点运算异常fexc;
并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
4)当浮点运算异常指示信号fexc有效或浮点指令异常指示ftrap有效时,浮点存储器访问级FA模块输出浮点异常指示ferr有效,并根据fexc和ftrap产生相应异常类型指示fttf,否则ferr无效;
当ferr有效时,浮点目的寄存器的写使能frd_w无效,并对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
5)当ferr或定点流水线传递过来的异常信号floaderr有效时,浮点异常处理级FX模块修改目的寄存器的写使能frd_w无效,修改相应状态控制寄存器,同时对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
6)在目的寄存器的写使能frd_w有效情况下,浮点数据写回级FW模块将浮点结果fresult写入浮点目的寄存器号frd中。
进一步,还包括对浮点流水线load/store类指令的控制管理;浮点流水线和定点流水线共用定点流水线对存储器访问的控制逻辑,具体步骤如下;
对于load类指令,浮点流水线传递给定点流水线需要读取存储器的地址fraddr,通过定点流水线的存储器访问控制逻辑完成地址fraddr的读取操作,并将读取数据frdata传递给浮点流水线;
对于store类指令,浮点流水线传递给定点流水线读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr,通过定点流水线的存储器访问控制逻辑完成数据fwdata写入地址fwaddr的操作。
进一步,还包括对浮点流水线异常的控制管理;浮点流水线和定点流水线共用定点流水线对异常情况的处理逻辑,具体步骤如下;
浮点流水线根据浮点运算异常传递给定点流水线浮点异常的指示信号ferr,通过定点流水线的异常处理逻辑,对异常的进入和指令的回溯进行处理;
对于load类指令,在定点流水线进行存储器的读取,如读取发生异常floaderr,也将该异常传递给浮点流水线,当floaderr无效时,在浮点流水线中完成数据frdata写入相应浮点目的寄存器号的操作,当floaderr有效时,不进行frdata的写入操作。
与现有技术相比,本发明具有以下有益的技术效果:
本发明通过浮点流水线的对应设置,以及对定点流水线中存储器访问模块访问控制逻辑和异常处理模块对异常情况的处理逻辑的共用,使得浮点集成结构清楚,在充分利用原定点处理器逻辑的同时,对原定点流水线设计逻辑改动小,并减少了浮点流水线的控制逻辑,降低了功耗;集成方法具有通用性,实现定点和浮点流水线协同工作,共同实现定点和浮点指令执行,能够在一个时钟周期内完成两个源操作数的读取和一个运算结果的写入操作,且无其他特殊等待周期,确保定点和浮点指令的高效运行。同时对浮点执行部件FP无特殊要求,浮点执行部件FP的选择性广,适用性强。
进一步的,本发明对流水线停顿的控制管理,以及共用流水线部分逻辑的集成思想可适用于任何流水级处理器的浮点处理器集成中,通用性强。
附图说明
图1为本发明实例中所述的处理单元集成电路结构图。
图2为本发明实例中所述的浮点执行部件FP端口示意图。
图3为本发明实例中所述的译码级FD模块的结构图。
图4为本发明实例中所述的寄存器访问级FA模块结构图。
图5为本发明实例中所述的执行级FE模块结构图。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明针对七级流水线(取指级、译码级、寄存器访问级、执行级、存储器访问级、异常处理级和数据写回级)的处理器,为使定点指令和浮点指令高效运行。
首先,如图1所示,在七级定点流水线,取指级、译码级、寄存器访问级、执行级、存储器访问级、异常处理级、数据写回级的基础上,增加除取指级外的其他六级浮点流水线,包括译码级、寄存器访问级、执行级、存储器访问级、异常处理级、数据写回级,指令执行时,定点流水线的后六级和六级的浮点流水线协同并行执行。
其中,如图1所示,r1表示定点流水取指级寄存器,r2_1和r2_2分别表示定点流水译码级寄存器和浮点流水译码级寄存器,r3_1和r3_2分别表示定点流水寄存器访问级寄存器和浮点流水寄存器访问级寄存器,r4_1和r4_2分别表示定点流水执行级寄存器和浮点流水执行级寄存器,r5_1和r5_2分别表示定点流水存储器访问级寄存器和浮点流水存储器访问级寄存器,r6_1和r6_2分别表示定点流水异常处理级寄存器和浮点流水异常处理级寄存器,r7_1和r7_2分别表示定点流水写回级寄存器和浮点流水写回级寄存器,这些寄存器为流水级间寄存器。
浮点流水线由FD模块、FA模块、FE模块、FM模块、FX模块、FW模块、浮点执行部件FP、浮点寄存器文件以及浮点流水级间寄存器r2_2,r3_2,r4_2,r5_2,r6_2,r7_2组成,其中r1的输出与FD模块的输入连接,FD模块的输出与r2_2的输入连接,r2_2的输出与FA模块的输入连接,FA模块的输出与r3_2的输入连接,r3_2的输出与FE模块的输入连接,FE模块的输出于r4_2的输入连接,r4_2的输出与FM模块的输入连接,FM模块的输出于r5_2的输入连接,r5_2的输出与FX模块的输入连接,FX模块的输出与r6_2的输入连接,r6_2的输出与FW模块的输入连接,FW模块的输出与r7_2的输入连接。
原定点流水线的流水线停顿信号holdn与浮点运算完成信号fdone相与为新的处理器流水线停顿信号new_holdn,控制定点和浮点流水线的停顿,其中fdone为高表示浮点运算完成,浮点运算未完成时fdone保持为低。
浮点执行部件FP的执行控制信号来源于FD模块、FA模块和FE模块,根据浮点执行部件FP自身的时序要求可有所不同。浮点执行部件FP的输出fdone和执行结果作为FE模块的输入。浮点执行部件FP的端口说明详见图2。
FM模块将输出load类指令读取存储器的地址fraddr,store类指令读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr作为存储器访问模块的输入。
FX模块将输出浮点运算异常指示ferr作为定点异常处理模块的输入,同时定点异常处理模块将输出load类指令读取异常floaderr和读取数据frdata作为FX模块的输入。
FD模块输出浮点寄存器文件读控制信号,浮点寄存器文件读出数据作为FA模块的输入,FW模块输出浮点寄存器文件写数据和写控制信号。
如图2所示,给出一般性浮点执行部件FP的端口信号,浮点执行部件FP的输入信号为执行控制信号包括启动信号,源操作数1、源操作数2和运算精度/类型/舍入模式等控制信号,浮点执行部件FP的输出信号包括浮点运算完成信号fdone和执行结果输出信号,执行结果输出信号包括浮点运算结果和浮点运算异常信号。
如图3所示,给出FD模块的结构图,FD模块包括初始译码模块、数据相关判决模块、异常检测模块和FP执行控制产生模块。指令连接异常检测模块和初始译码模块的输入,异常检测模块输出浮点指令异常指示ftrap、浮点指令异常类型ftt,其中ftrap连接数据相关判决模块的输入。初始译码模块输出浮点源操作数1寄存器号frs1、浮点源操作数2寄存器号frs2、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点源操作数1读取初始使能frs1r、浮点源操作数2读取使能frs2r、浮点运算指令码fopf,其中frs1、frs2、frs1r、frs2r连接数据相关判决模块的输入,fopf连接FP执行控制产生模块的输入。后继流水级目的寄存器号和相应写使能信号连接数据相关判决模块的输入,数据相关判决模块输出为浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、数据相关阻塞pc指示lock_pc、浮点执行控制信号fpctrl,其中fpctrl连接FP执行控制产生模块的输入,FP执行控制产生模块输出执行控制信号。
如图4所示,给出FA模块的结构图,FA模块包括数据选择模块、数据对其模块和FP执行控制模块。浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel和后继流水级结果值连接数据选择模块的输入,数据选择模块的输出初始源操作数1信号fop1t和初始源操作数2信号fop2t连接数据对齐模块的输入,数据对齐模块输出浮点源操作数1信号fop1和浮点源操作数2信号fop2。浮点运算指令码fopf和浮点指令异常指示ftrap连接FP执行控制模块的输入,FP执行控制模块输出执行控制信号。
如图5所示,给出FE模块的结构图,FE模块包括ldst地址产生模块和浮点执行控制模块。浮点源操作数fop1、fop2连接ldst地址产生模块的输入,ldst地址产生模块输出写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr。浮点运算指令码fopf、执行结果和浮点运算完成fdone连接浮点执行控制的输入,浮点执行控制模块输出浮点运算结果fresult和浮点运算异常fexc。
其次,对处理器流水线停顿的控制管理。将原定点流水线停顿信号holdn与浮点运算完成信号fdone相与作为新的处理器流水线停顿信号new_holdn控制定点和浮点流水线的停顿,其中fdone为高表示浮点运算完成,浮点运算未完成时fdone保持为低。
第三,对浮点流水线load/store类指令的控制管理。浮点流水线和定点流水线共用定点流水线对存储器访问的控制逻辑,具体的:对于load类指令,浮点流水线传递给定点流水线需要读取存储器的地址fraddr,通过定点流水线的存储器访问控制逻辑完成地址fraddr的读取操作,并将读取数据frdata传递给浮点流水线;对于store类指令,浮点流水线传递给定点流水线读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr,通过定点流水线的存储器访问控制逻辑完成数据fwdata写入地址fwaddr的操作。
第四,对浮点流水线异常的控制管理。浮点流水线和定点流水线共用定点流水线对异常情况的处理逻辑,具体的:浮点流水线根据浮点运算异常传递给定点流水线浮点异常的指示信号ferr,通过定点流水线的异常处理逻辑,对异常的进入和指令的回溯进行处理。同时,根据第三点描述,对于load类指令,在定点流水线进行存储器的读取,如读取发生异常floaderr,也将该异常传递给浮点流水线,当floaderr无效时,在浮点流水线中完成数据frdata写入相应浮点目的寄存器号的操作,当floaderr有效时,不进行frdata的写入操作。
第五,选用高效浮点寄存器文件结构,可在一个时钟周期内完成两个源操作数的读取和一个运算结果的写入操作。浮点流水线各流水级的执行情况。具体的:
1)浮点译码级FD模块由初始译码模块、数据相关判决模块、异常检测模块、FP执行控制产生模块组成。FD模块的输入为指令、后继流水级目的寄存器号和相应写使能信号。FD模块的输出为浮点源操作数1寄存器号frs1、源操作数2寄存器号frs2、浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt、数据相关阻塞pc指示lock_pc、执行控制信号和浮点运算指令码fopf。frs1、frs1_r、frs2和frs2_r作为读控制信号连接浮点寄存器文件的输入,浮点寄存器文件在下一个时钟周期上升沿即可读出两个源操作数;
2)浮点寄存器访问级FA模块由数据选择模块、数据对齐模块、FP执行控制模块组成,FA模块的输入为浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、后继流水级结果值、浮点指令异常指示ftrap和浮点运算指令码fopf,输出浮点源操作数fop1和fop2,并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
3)浮点执行级FE模块由ldst地址产生模块和浮点执行控制模块组成,FE模块的输入为浮点源操作数fop1、fop2,浮点运算指令码fopf、执行结果、浮点运算完成fdone,FE模块的输出为写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr、浮点运算结果fresult和浮点运算异常fexc,并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
4)浮点存储器访问级,当浮点运算异常指示信号fexc有效或浮点指令异常指示ftrap有效时,输出浮点异常指示ferr有效,并根据具体情况产生异常类型fttf,否则ferr无效。当ferr有效时,浮点目的寄存器的写使能frd_w无效。对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
5)浮点异常处理级,当ferr或定点流水线传递过来的异常信号floaderr有效时,修改目的寄存器的写使能frd_w无效,修改相应状态控制寄存器,同时对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
6)浮点数据写回级在目的寄存器的写使能frd_w有效情况下,将浮点结果fresult写入浮点目的寄存器号frd中。
将本发明应用于一款兼容SPARC V8结构处理器的SoC中,该SoC使用了本发明中一种RISC处理器的浮点处理单元集成电路和方法,使定点流水线和浮点流水线协同并行执行,实现定点和浮点指令执行的高效性,且集成方法通用性强。
Claims (9)
1.一种RISC处理器的浮点处理单元集成电路,其特征在于,包括七级的定点流水线和六级的浮点流水线,以及与门;
所述七级的定点流水线包括依次连接的取指模块、译码模块、寄存器访问模块、执行模块、存储器访问模块、异常处理模块和数据写回模块,以及设置在每一个定点流水级输出端的定点流水级间寄存器;
所述六级的浮点流水线包括依次连接在取指模块输出端的译码级FD模块、寄存器访问级FA模块、执行级FE模块、存储器访问级FM模块、异常处理级FX模块和数据写回级FW模块,以及设置在每一个浮点流水级输出端的浮点流水级间寄存器;
所述的浮点流水线还包括浮点执行部件FP和浮点寄存器文件堆;浮点执行部件FP的输入端分别连接译码级FD模块、寄存器访问级FA模块和执行级FE模块输出的执行控制信号;浮点执行部件FP的输出端输出执行结果和浮点运算完成信号fdone分别连接执行级FE模块;浮点寄存器文件堆的输入端连接译码级FD模块用于读控制,以及连接数据写回级FW模块用于写数据和写控制;浮点寄存器文件堆的输出端连接寄存器访问级FA模块用于读数据;
所述与门的输入端分别连接定点流水线的停顿信号holdn与浮点运算完成信号fdone,输出端输出处理器流水线停顿信号new_holdn控制定点和浮点流水线的停顿。
2.根据权利要求1所述的一种RISC处理器的浮点处理单元集成电路,其特征在于,存储器访问级FM模块输出load类指令读取存储器的地址fraddr,store类指令读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr连接至存储器访问模块的输入。
3.根据权利要求1所述的一种RISC处理器的浮点处理单元集成电路,其特征在于,异常处理级FX模块输出浮点运算异常指示ferr连接至异常处理模块的输入,同时异常处理模块输出load类指令读取异常floaderr和读取数据frdata连接至异常处理级FX模块的输入。
4.根据权利要求1所述的一种RISC处理器的浮点处理单元集成电路,其特征在于,译码级FD模块包括初始译码模块、数据相关判决模块、异常检测模块和FP执行控制产生模块;
定点流水线取指模块输出的指令连接至异常检测模块和初始译码模块的输入,异常检测模块输出浮点指令异常指示ftrap、浮点指令异常类型ftt,其中ftrap连接数据相关判决模块的输入;
初始译码模块输出浮点源操作数1寄存器号frs1、浮点源操作数2寄存器号frs2、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点源操作数1读取初始使能frs1r、浮点源操作数2读取使能frs2r、浮点运算指令码fopf,其中frs1、frs2、frs1r、frs2r连接至数据相关判决模块的输入,fopf连接至FP执行控制产生模块的输入;
后继流水级目的寄存器号和相应写使能信号连接数据相关判决模块的输入,数据相关判决模块输出为浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、数据相关阻塞pc指示lock_pc、浮点执行控制信号fpctrl,其中fpctrl连接FP执行控制产生模块的输入,FP执行控制输出产生译码级FD模块的执行控制信号。
5.根据权利要求4所述的一种RISC处理器的浮点处理单元集成电路,其特征在于,寄存器访问级FA模块包括数据选择模块、数据对其模块和FP执行控制模块;
浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel和后继流水级结果值连接至数据选择模块的输入,数据选择模块的输出初始源操作数1信号fop1t和初始源操作数2信号fop2t连接至数据对齐模块的输入,数据对齐模块输出浮点源操作数1信号fop1和浮点源操作数2信号fop2;
浮点运算指令码fopf和浮点指令异常指示ftrap连接FP执行控制模块的输入,FP执行控制模块输出寄存器访问级FA的执行控制信号。
6.根据权利要求5所述的一种RISC处理器的浮点处理单元集成电路,其特征在于,执行级FE模块包括ldst地址产生模块和浮点执行控制模块;
浮点源操作数fop1和fop2分别连接至ldst地址产生模块的输入,ldst地址产生模块输出写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr;
浮点运算指令码fopf、执行结果和浮点运算完成fdone连接至浮点执行控制的输入,浮点执行控制模块输出浮点运算结果fresult和浮点运算异常fexc。
7.一种RISC处理器的浮点处理单元集成方法,其特征在于,基于如权利要求6所述的一种RISC处理器的浮点处理单元集成电路,包括如下步骤,
对处理器流水线停顿的控制管理的步骤;
将定点流水线停顿信号holdn与浮点运算完成信号fdone相与作为处理器流水线停顿信号new_holdn控制定点和浮点流水线的停顿,其中fdone为高表示浮点运算完成,浮点运算未完成时fdone保持为低;
对浮点流水线各流水级的执行控制步骤;具体包括如下操作,
1)浮点译码级FD模块根据输入的指令、后继流水级目的寄存器号和相应写使能信号;输出浮点源操作数1寄存器号frs1、源操作数2寄存器号frs2、浮点源操作数1读取使能frs1_r、浮点源操作数2读取使能frs2_r、浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt、数据相关阻塞pc指示lock_pc、执行控制信号和浮点运算指令码fopf;
浮点寄存器文件堆根据输入的作为读控制信号的frs1、frs1_r、frs2和frs2_r,在下一个时钟周期上升沿读出两个源操作数;
2)浮点寄存器访问级FA模块根据输入的浮点源操作数1来源选择frs1_sel、浮点源操作数2来源选择frs2_sel、后继流水级结果值、浮点指令异常指示ftrap和浮点运算指令码fopf,输出浮点源操作数fop1和fop2;
并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
3)浮点执行级FE模块根据输入的浮点源操作数fop1、fop2,浮点运算指令码fopf、执行结果、浮点运算完成fdone,输出写入存储器地址fwaddr、写入存储器数据fwdata、读取存储器地址fraddr、浮点运算结果fresult和浮点运算异常fexc;
并将浮点目的寄存器号frd、浮点目的寄存器的写使能frd_w、浮点指令异常指示ftrap、浮点指令异常类型ftt进行传递;
4)当浮点运算异常指示信号fexc有效或浮点指令异常指示ftrap有效时,浮点存储器访问级FA模块输出浮点异常指示ferr有效,并根据fexc和ftrap产生相应异常类型指示fttf,否则ferr无效;
当ferr有效时,浮点目的寄存器的写使能frd_w无效,并对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
5)当ferr或定点流水线传递过来的异常信号floaderr有效时,浮点异常处理级FX模块修改目的寄存器的写使能frd_w无效,修改相应状态控制寄存器,同时对浮点运算结果fresult、浮点目的寄存器号frd进行传递;
6)在目的寄存器的写使能frd_w有效情况下,浮点数据写回级FW模块将浮点结果fresult写入浮点目的寄存器号frd中。
8.根据权利要求7所述的一种RISC处理器的浮点处理单元集成方法,其特征在于,还包括对浮点流水线load/store类指令的控制管理;浮点流水线和定点流水线共用定点流水线对存储器访问的控制逻辑,具体步骤如下;
对于load类指令,浮点流水线传递给定点流水线需要读取存储器的地址fraddr,通过定点流水线的存储器访问控制逻辑完成地址fraddr的读取操作,并将读取数据frdata传递给浮点流水线;
对于store类指令,浮点流水线传递给定点流水线读取的浮点寄存器文件数据fwdata,以及需要写入存储器的地址fwaddr,通过定点流水线的存储器访问控制逻辑完成数据fwdata写入地址fwaddr的操作。
9.根据权利要求8所述的一种RISC处理器的浮点处理单元集成方法,其特征在于,还包括对浮点流水线异常的控制管理;浮点流水线和定点流水线共用定点流水线对异常情况的处理逻辑,具体步骤如下;
浮点流水线根据浮点运算异常传递给定点流水线浮点异常的指示信号ferr,通过定点流水线的异常处理逻辑,对异常的进入和指令的回溯进行处理;
对于load类指令,在定点流水线进行存储器的读取,如读取发生异常floaderr,也将该异常传递给浮点流水线,当floaderr无效时,在浮点流水线中完成数据frdata写入相应浮点目的寄存器号的操作,当floaderr有效时,不进行frdata的写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510309976.1A CN104951283B (zh) | 2015-06-05 | 2015-06-05 | 一种risc处理器的浮点处理单元集成电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510309976.1A CN104951283B (zh) | 2015-06-05 | 2015-06-05 | 一种risc处理器的浮点处理单元集成电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951283A true CN104951283A (zh) | 2015-09-30 |
CN104951283B CN104951283B (zh) | 2017-05-31 |
Family
ID=54165957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510309976.1A Active CN104951283B (zh) | 2015-06-05 | 2015-06-05 | 一种risc处理器的浮点处理单元集成电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951283B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415728A (zh) * | 2018-03-01 | 2018-08-17 | 中国科学院计算技术研究所 | 一种用于处理器的扩展浮点运算指令执行方法及装置 |
CN109933372A (zh) * | 2019-02-26 | 2019-06-25 | 西安理工大学 | 一种多模式动态可切换架构低功耗处理器 |
CN109978130A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995016952A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics Inc. | Superscalar microprocessor instruction pipeline including instruction dispatch and release control |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
CN1983164A (zh) * | 2005-09-28 | 2007-06-20 | 英特尔公司 | 用于矢量处理的可扩展并行流水线浮点单元 |
US7243217B1 (en) * | 2002-09-24 | 2007-07-10 | Advanced Micro Devices, Inc. | Floating point unit with variable speed execution pipeline and method of operation |
US7454654B2 (en) * | 2003-09-18 | 2008-11-18 | International Business Machines Corporation | Multiple parallel pipeline processor having self-repairing capability |
CN101859241A (zh) * | 2010-05-22 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 基于全展开的全流水128位精度浮点累加器 |
CN102934076A (zh) * | 2010-06-11 | 2013-02-13 | 松下电器产业株式会社 | 指令发行控制装置以及方法 |
CN104156195A (zh) * | 2014-08-19 | 2014-11-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法 |
-
2015
- 2015-06-05 CN CN201510309976.1A patent/CN104951283B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
WO1995016952A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics Inc. | Superscalar microprocessor instruction pipeline including instruction dispatch and release control |
US7243217B1 (en) * | 2002-09-24 | 2007-07-10 | Advanced Micro Devices, Inc. | Floating point unit with variable speed execution pipeline and method of operation |
US7454654B2 (en) * | 2003-09-18 | 2008-11-18 | International Business Machines Corporation | Multiple parallel pipeline processor having self-repairing capability |
CN1983164A (zh) * | 2005-09-28 | 2007-06-20 | 英特尔公司 | 用于矢量处理的可扩展并行流水线浮点单元 |
CN101859241A (zh) * | 2010-05-22 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 基于全展开的全流水128位精度浮点累加器 |
CN102934076A (zh) * | 2010-06-11 | 2013-02-13 | 松下电器产业株式会社 | 指令发行控制装置以及方法 |
CN104156195A (zh) * | 2014-08-19 | 2014-11-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法 |
Non-Patent Citations (1)
Title |
---|
李大鹏 等: "32位RISC微处理器"龙腾R2"浮点流水线的设计和实现", 《微电子学与计算机》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109978130A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN108415728A (zh) * | 2018-03-01 | 2018-08-17 | 中国科学院计算技术研究所 | 一种用于处理器的扩展浮点运算指令执行方法及装置 |
CN108415728B (zh) * | 2018-03-01 | 2020-12-29 | 中国科学院计算技术研究所 | 一种用于处理器的扩展浮点运算指令执行方法及装置 |
CN109933372A (zh) * | 2019-02-26 | 2019-06-25 | 西安理工大学 | 一种多模式动态可切换架构低功耗处理器 |
CN109933372B (zh) * | 2019-02-26 | 2022-12-09 | 西安理工大学 | 一种多模式动态可切换架构低功耗处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN104951283B (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100900364B1 (ko) | 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체 | |
US20070022277A1 (en) | Method and system for an enhanced microprocessor | |
KR101744081B1 (ko) | 이진 변환된 자가 수정 코드 및 교차 수정 코드의 처리 | |
JPH04245540A (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
CN101916180A (zh) | Risc处理器中执行寄存器类型指令的方法和其系统 | |
JP2018005488A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
CN103761075A (zh) | 一种粗粒度动态可重构数据规整控制单元结构 | |
US20070288724A1 (en) | Microprocessor | |
CN104951283A (zh) | 一种risc处理器的浮点处理单元集成电路及方法 | |
JP2014182817A (ja) | 条件付きショート前方分岐の計算的に等価な述語付き命令への変換 | |
JP5565228B2 (ja) | プロセッサ | |
CN100451951C (zh) | Risc cpu中的5+3级流水线设计方法 | |
CN109582364B (zh) | 基于忆阻器的精简指令集处理器 | |
CN101923386B (zh) | 一种降低cpu功耗的方法及一种低功耗cpu | |
US10019354B2 (en) | Apparatus and method for fast cache flushing including determining whether data is to be stored in nonvolatile memory | |
JP2003316598A (ja) | 高信頼性モード動作併用長命令実行プロセッサ | |
CN108845832B (zh) | 一种提高处理器主频的流水线细分装置 | |
CN110045989B (zh) | 一种动态切换式低功耗处理器 | |
KR19980034436A (ko) | 듀얼 파이프라인 프로세서에서 로드 명령의 병렬 수행 장치 | |
EP2709003B1 (en) | Loopback structure and data loopback processing method for processor | |
CN101930281B (zh) | 一种降低cpu功耗的方法及一种低功耗cpu | |
Finlayson et al. | Improving low power processor efficiency with static pipelining | |
US11269651B2 (en) | Reusing adjacent SIMD unit for fast wide result generation | |
KR101118593B1 (ko) | Vliw 명령어 처리 장치 및 방법 | |
US20230195456A1 (en) | System, apparatus and method for throttling fusion of micro-operations in a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |