浮点异常处理装置以及用该装置进行异常处理的方法制造方法及图纸

技术编号:2827810 阅读:154 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种浮点异常处理装置以及用该装置进行异常处理的方法,其装置包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特征在于:还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM。其方法包括下述步骤,初始化后执行微程序RAM中的微指令:第一条微指令检测浮点协处理器是否空闲;第二条检测有无非屏蔽异常,如有则触发中断,如无则执行后续微指令并启动浮点单元;运算中会保存发生的异常;在执行最后一条微指令时记录指令现场。由于本发明专利技术浮点中断控制电路用一个可改写的微程序RAM替换,该微程序RAM构造简单,而且一旦发生设计上的错误,即使在芯片流片后也可进行纠正。

【技术实现步骤摘要】

本专利技术涉及一种浮点异常处理装置,还涉及利用这种装置进行异常处理的方法。
技术介绍
文献“专利号为6826682的美国专利”公开了一种浮点异常检测方法,该方法首先采取一个过程,这个过程可以自动向一个正在执行的指令序列中添加用于测试浮点异常的特殊指令。其次在该指令序列的执行中,通过将指令序列重置到一个已知的正确状态来对异常进行处理。最后按照每个单个指令为一个队列进行单独执行。该方法可以实现浮点异常的检测,但是由于需要向正常指令序列添加特殊指令,特殊指令的译码和执行消耗了大量的处理器时间,额外时间开销非常较大。文献“专利号为5257214的美国专利”公开了一种自定时的异常检测触发机制。通过非边沿触发逻辑,该专利技术以小的延时获得异常信息。但是该触发逻辑不能有效滤波,因此系统的抗干扰能力差,如果电路中因为外部干扰有一个小毛刺出现都可能被认为是异常,另外在浮点指令和定点指令并行执行的情况下,这种方式由于需要保存定点现场来对浮点异常进行处理,需要花费大量的访存代价。文献“专利号为5410657的美国专利”公开了一种异常检测处理方法。在浮点指令运算时,定点单元不再执行程序中的有效指令,而是执行一个由系统产生的“哑指令”,该哑指令没有任何有效操作,只是在浮点指令发射时返回该浮点指令的地址,这样如果该浮点指令产生异常,系统就可以精确定位并区分是那条浮点指令产生的浮点异常。这种方法可以有效区分浮点指令间的异常,但是在浮点指令执行期间,定点指令需要执行一个专门用于报告浮点指令地址的哑指令,相当于程序的定点指令是完全停滞的,浮点和定点指令之间成为一种顺序执行关系,严重影响了指令并行度(ILP)。本专利技术设置了专门保存现场的浮点现场寄存器,可以通过硬件精确定位发生异常的浮点指令,完全可以保证浮点指令和定点指令的并行执行。参照图5,公知的浮点异常处理装置包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,浮点控制寄存器用于保存异常的控制信息,浮点异常寄存器用于保存已发生的浮点异常,浮点中断控制电路根据浮点异常和控制寄存器内容控制浮点中断产生电路,以决定是否触发中断。如果发生某类浮点异常,并且控制寄存器中没有对该类浮点异常进行屏蔽,该装置才允许触发中断。该装置存在以下问题:浮点中断控制电路比较复杂,而且一旦发生设计上的错误,就无法进行纠正。
技术实现思路
-->为了克服现有技术浮点异常处理代价高及浮点异常处理装置中浮点中断控制电路设计复杂、发生错误不能改正的不足,本专利技术提供一种浮点异常处理装置,将浮点中断控制电路用一个可改写的微程序RAM替换,该微程序RAM构造简单,而且一旦发生设计上的错误,即使在芯片流片后也可进行纠正。本专利技术还提供利用这种装置进行异常处理的方法。在执行浮点指令中,异常信息被保存在浮点异常寄存器中,指令现场被保存在浮点现场寄存器中。第一条浮点指令执行完毕,在执行第二条浮点指令开始,首先检测第一条浮点指令是否有异常产生,如果有异常产生,则浮点异常检测微指令触发一个异常中断,并报出中断向量号;否则不产生中断。本专利技术解决其技术问题所采用的技术方案:一种浮点异常处理装置,包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特点是还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令;浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽异常产生电路,判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制中断请求信号或者中断向量。一种利用上述装置进行异常处理的方法,其特点是包括以下步骤:(a)浮点控制寄存器的内容被初始化为1111111b,其中1表示该异常被屏蔽;浮点异常寄存器的内容被初始化为0000000b,其中0表示没有该种异常发生;(b)从微程序RAM中读出并执行该指令微程序中的第一条微指令,浮点完成检测微指令;(c)从微程序RAM中读出并执行该指令微程序中的第二条微指令,浮点异常检测微指令,该微指令控制浮点中断产生电路对非屏蔽异常作出判断,如果有非屏蔽异常,该电路向处理器发送一个中断请求,如果没有非屏蔽异常则不发送;(d)启动浮点协处理器,当发生浮点异常时,浮点异常寄存器进行记录;(e)执行最后一条微指令,浮点微程序完成微指令,浮点现场寄存器接收到该条微指令后保存当前正在执行的指令现场;(f)浮点完成微指令检测,转到步骤(b),直到程序执行完成。本专利技术的有益效果是:由于本专利技术浮点中断控制电路用一个可改写的微程序RAM替换,该微程序RAM构造简单,可以对异常中断的触发方式进行编程,而且一旦发生设计上的错误,即使在芯片流片后也可进行纠正;相比软件的浮点异常检测、处理方式,本专利技术的处理-->代价非常小。下面结合附图和实施例对本专利技术作详细说明。附图说明图1是本专利技术浮点异常处理装置的结构框图。图2是图1中浮点异常寄存器和浮点控制寄存器的详细说明图。图3是图1中微程序的详细说明图。图4是图1中浮点中断产生电路的详细说明图。图5是公知的浮点异常处理装置具体实施方式参照图1~4,本专利技术在构造上采用了微程序加硬连线的全硬件浮点异常处理装置,整个装置由浮点异常寄存器、浮点控制寄存器、非屏蔽异常产生电路,浮点现场寄存器,微程序RAM,浮点中断产生电路四大部分组成,微程序RAM替代了浮点中断控制电路,浮点异常寄存器保存现在和已有的不同浮点异常,浮点控制寄存器用于控制是否屏蔽某个异常,非屏蔽异常产生电路生成非屏蔽异常信号;浮点现场寄存器保存每一条正在执行的浮点指令的程序地址指针和数据地址指针;微程序RAM保存不同浮点指令的微程序,各个微程序由浮点完成检测微指令,浮点异常检测微指令,其他微指令和浮点完成微指令按序组成;浮点中断产生电路为硬连线,首先输入非屏蔽异常和正在执行的微指令,如果发生了非屏蔽异常,且正在执行的微指令为浮点异常检测微指令,则该电路会触发浮点中断产生电路向处理器发送浮点单元异常中断信号和中断向量号。整个电路的信息流向为:用户向控制寄存器中写入浮点控制信息,然后处理器开始执行浮点指令,在执行中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中。浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽异常产生电路,该电路判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制该电路是否要向处理器产生中断。浮点异常处理装置进行异常处理的方法,具体如下:(1)开机。(2)初始化。浮点控制寄存器的内容被初始化为1111111b,其中1表示该异常被屏蔽;浮点异常寄存器的内容被初始化为0000000b,其中0表示没有该种异常发生。(3)执行浮点指令。首先从微程序RAM中读出及执行的是该指令微程序中的第一条微指令:浮点完成检测微指令。(4)从微程序RAM中读出并执行该指令微程序中的第二条微指令:浮点异常检测微指-->令,该微指令控制浮点中断产生电路对非屏蔽异常作出判断,如果有非屏蔽异常,该电路向本文档来自技高网
...

【技术保护点】
一种浮点异常处理装置,包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特征在于:还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令;浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽异常产生电路,判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制中断请求信号或者中断向量。

【技术特征摘要】
1.一种浮点异常处理装置,包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特征在于:还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令;浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽异常产生电路,判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制中断请求信号或者中断向量。2.一种利用权利要求1所述浮点异常处理装置进行异常处理的方法,其特征在于包括下述步骤:(a)浮点控制寄存器的内容被初始化为1111111b,其中1表示该异常被屏蔽;浮点异常寄存器的内容被初始化为0000000b,其中0表示没有该种异常发生;(b)从微程序R...

【专利技术属性】
技术研发人员:高德远张盛兵田杭沛樊晓桠王党辉黄小平魏廷存张萌郑然
申请(专利权)人:西北工业大学
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利