浮点异常处理装置的制作方法

文档序号:6473190阅读:179来源:国知局
专利名称:浮点异常处理装置的制作方法
技术领域
本实用新型涉及一种浮点异常处理装置,还涉及利用这种装置进行异常处理的方法。
背景技术
文献"专利号为6826682的美国专利"公开了一种浮点异常检测方法,该方法首先采取 一个过程,这个过程可以自动向一个正在执行的指令序列中添加用于测试浮点异常的特殊指 令。其次在该指令序列的执行中,通过将指令序列重置到一个已知的正确状态来对异常进行 处理。最后按照每个单个指令为一个队列进行单独执行。该方法可以实现浮点异常的检测, 但是由于需要向正常指令序列添加特殊指令,特殊指令的译码和执行消耗了大量的处理器时 间,额外时间开销非常较大。
文献"专利号为5257214的美国专利"公开了一种自定时的异常检测触发机制。通过非 边沿触发逻辑,该发明以小的延时获得异常信息。但是该触发逻辑不能有效滤波,因此系统 的抗干扰能力差,如果电路中因为外部干扰有一个小毛刺出现都可能被认为是异常,另外在 浮点指令和定点指令并行执行的情况下,这种方式由于需要保存定点现场来对浮点异常进行 处理,需要花费大量的访存代价。
文献"专利号为5410657的美国专利"公开了一种异常检测处理方法。在浮点指令运算 时,定点单元不再执行程序中的有效指令,而是执行一个由系统产生的"哑指令",该哑指令 没有任何有效操作,只是在浮点指令发射时返回该浮点指令的地址,这样如果该浮点指令产 生异常,系统就可以精确定位并区分是那条浮点指令产生的浮点异常。这种方法可以有效区 分浮点指令间的异常,但是在浮点指令执行期间,定点指令需要执行一个专门用于报告浮点 指令地址的哑指令,相当于程序的定点指令是完全停滞的,浮点和定点指令之间成为一种顺 序执行关系,严重影响了指令并行度(ILP)。本发明设置了专门保存现场的浮点现场寄存器, 可以通过硬件精确定位发生异常的浮点指令,完全可以保证浮点指令和定点指令的并行执行。
参照图5,公知的浮点异常处理装置包括浮点控制寄存器、浮点异常寄存器、浮点中断 控制电路和浮点中断产生电路,浮点控制寄存器用于保存异常的控制信息,浮点异常寄存器 用于保存己发生的浮点异常,浮点中断控制电路根据浮点异常和控制寄存器内容控制浮点中 断产生电路,以决定是否触发中断。如果发生某类浮点异常,并且控制寄存器中没有对该类 浮点异常进行屏蔽,该装置才允许触发中断。该装置存在以下问题浮点中断控制电路比较 复杂,而且一旦发生设计上的错误,就无法进行纠正。 发明内容
为了克服现有技术浮点异常处理代价高及浮点异常处理装置中浮点中断控制电路设计复 杂、发生错误不能改正的不足,本实用新型提供一种浮点异常处理装置,将浮点中断控制电 路用一个可改写的微程序RAM替换,该微程序RAM构造简单,而且一旦发生设计上的错误, 即使在芯片流片后也可进行纠正。
本实用新型解决其技术问题所采用的技术方案 一种浮点异常处理装置,包括浮点控制 寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特点是还包括非屏蔽 异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄 存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮
点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令。 本实用新型的有益效果是由于浮点中断控制电路用一个可改写的微程序RAM替换,
该微程序RAM构造简单,可以对异常中断的触发方式进行编程, 一旦发生设计上的错误,
即使在芯片流片后也可进行纠正;相比软件的浮点异常检测、处理方式降低了成本。
以下结合附图和实施例对本实用新型作详细说明。

.
图1是本实用新型浮点异常处理装置的结构框图。 图2是公知的浮点异常处理装置。
具体实施方式
参照图1,本实用新型在构造上采用了微程序加硬连线的全硬件浮点异常处理装置,整 个装置由浮点异常寄存器、浮点控制寄存器、非屏蔽异常产生电路,浮点现场寄存器,微程 序RAM,浮点中断产生电路四大部分组成,微程序RAM替代了浮点中断控制电路,浮点 异常寄存器保存现在和已有的不同浮点异常,浮点控制寄存器用于控制是否屏蔽某个异常, 非屏蔽异常产生电路生成非屏蔽异常信号;浮点现场寄存器保存每一条正在执行的浮点指 令的程序地址指针和数据地址指针;微程序RAM保存不同浮点指令的微程序,各个微程序 由浮点完成检测微指令,浮点异常检测微指令,其他微指令和浮点完成微指令按序组成; 浮点中断产生电路为硬连线,首先输入非屏蔽异常和正在执行的微指令,如果发生了非屏 蔽异常,且正在执行的微指令为浮点异常检测微指令,则该电路会触发浮点中断产生电路 向处理器发送浮点单元异常中断信号和中断向量号。
整个电路的信息流向为用户向控制寄存器中写入浮点控制信息,然后处理器开始执 行浮点指令,在执行中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据 地址被保存在浮点现场寄存器中。浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽 异常产生电路,该电路判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制该电路是否要向处理器产生中断。
从执行流程上看,该装置有以下几个特点首先整个异常现场保存、异常中断生成全部 由微程序控制,而微程序可以通过重写RAM进行改变,整个执行流程可以变得非常灵活。 其次微程序的执行和浮点协处理器的执行是独立的,处理器通过微程序启动浮点协处理器后, 可以执行其它定点指令的微指令,从而可以并行执行浮点指令和定点指令。另外浮点微程序 完成微指令表示的是浮点微程序执行完毕,并不表示浮点指令执行完毕,浮点协处理器可能 还在进行运行,因此在每条指令微程序的开始都需要设置测试浮点完成检测微指令,该微指 令保证前一条浮点指令执行完毕之后才判断前一条浮点指令是否有异常发生,保证了判断的 正确性。
权利要求1、一种浮点异常处理装置,包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特征在于还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令。
专利摘要本实用新型公开了一种浮点异常处理装置,包括浮点控制寄存器、浮点异常寄存器、浮点中断控制电路和浮点中断产生电路,其特点是还包括非屏蔽异常产生电路和浮点现场寄存器,所述的浮点中断控制电路是微程序RAM,用户向控制寄存器中写入浮点控制信息,处理器执行浮点指令,执行过程中,浮点指令的异常保存在浮点异常寄存器中,浮点指令地址和数据地址被保存在浮点现场寄存器中,控制异常指令;浮点控制寄存器和浮点异常寄存器的内容输入到非屏蔽异常产生电路,判断是否有非屏蔽异常,并将结果输入到浮点中断产生电路,同时相应的微指令也输入到浮点中断产生电路,控制中断请求信号或者中断向量。由于本实用新型使用微程序RAM,设计中发生错误可进行纠正。
文档编号G06F9/22GK201188216SQ20082002816
公开日2009年1月28日 申请日期2008年1月22日 优先权日2008年1月22日
发明者萌 张, 张盛兵, 樊晓桠, 王党辉, 田杭沛, 然 郑, 高德远, 魏廷存, 黄小平 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1