[发明专利]一种CPU指令异常的处理方法及装置在审
申请号: | 201711475120.7 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108415729A | 公开(公告)日: | 2018-08-17 |
发明(设计)人: | 燕雪松;张茜歌;赵东艳;张海峰;唐晓柯;刘亮;甘杰 | 申请(专利权)人: | 北京智芯微电子科技有限公司;国网信息通信产业集团有限公司;国家电网有限公司 |
主分类号: | G06F9/32 | 分类号: | G06F9/32 |
代理公司: | 北京中誉威圣知识产权代理有限公司 11279 | 代理人: | 李晓康;张相午 |
地址: | 100192 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 异常处理程序 长度信息 继续执行 异常指令 指令发生 存储 | ||
本发明涉及一种CPU指令异常的处理方法及装置,方法包括:当接收到的指令发生异常时,存储发生异常的指令的地址以及发生异常的指令的长度信息;进行异常处理程序;当异常处理程序完成后,根据发生异常的指令的地址以及发生异常的指令的长度信息,计算发生异常的指令的下一条指令的地址;根据所述下一条指令的地址,执行下一条指令。本发明提供的CPU指令异常的处理方法及装置,实现了当异常处理程序发生时,程序可以从异常指令的下一条指令继续执行。
技术领域
本发明涉及通信技术领域,尤其涉及一种CPU指令异常的处理方法及装置。
背景技术
随着信息技术和计算机技术的发展和广泛应用,嵌入式微控制器(英文全称:Embedded Microcontroller Unit,缩写:EMCU)已越来越多地应用在各种电子设备中,EMCU内部的主控模块是中央处理器(英文全称:Central Processing Unit,缩写:CPU),通常也称为嵌入式CPU。CPU除了完成由程序事先编写好的各项功能外,也有可能碰到一些异常事件,如取到了非法指令,违反了对某个地址的访问权限等。当异常事件发生时,CPU要中断当前正在执行的程序,根据异常类型跳转到相应的异常处理程序中执行,异常处理程序执行完成后,通常需要跳回到之前被中断的程序继续执行。因此,目前的CPU体系结构中,通常都设有异常返回地址寄存器,当异常发生时,先记录异常返回地址再跳转到异常处理程序,这样能保证异常处理程序在需要的时候能正常返回被中断的程序继续执行。
根据异常类型不同,异常返回地址有可能是被中断的当前指令,也就是导致异常的那条指令,也可能是当前指令的下一条指令,这一点是由CPU体系结构事先定义的,大多数情况下,异常返回地址都是导致异常发生的当前指令的地址。
基于此,本发明的发明人发现,现有的CPU因为目前的嵌入式CPU体系结构,通常只保存了导致异常的当前指令的地址,当异常处理程序发生时,无法获得异常指令的下一条指令的地址,造成指令无法继续执行。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
有鉴于此,本发明要解决的技术问题是,如何提供一种CPU指令异常的处理方法及装置,以解决现有的CPU结构,在异常处理程序发生时,无法执行异常指令的下一条指令的问题。
为解决以上技术问题,本发明提供一种CPU指令异常的处理方法,包括:当接收到的指令发生异常时,存储发生异常的指令的地址以及发生异常的指令的长度信息;进行异常处理程序;当异常处理程序完成后,根据发生异常的指令的地址以及发生异常的指令的长度信息,计算发生异常的指令的下一条指令的地址;根据所述下一条指令的地址,执行下一条指令。
在一种可能的实现方式中,在所述接收到的指令发生异常之前,还包括:接收指令;对所述指令进行解码,以获得指令的长度信息;执行所述指令。
在一种可能的实现方式中,所述对所述指令进行解码之后,还包括:保存当前指令的地址以及长度信息。
本发明还提供一种CPU指令异常的处理装置,包括:存储模块,用于在接收到的指令发生异常时,存储发生异常的指令的地址以及发生异常的指令的长度信息;处理模块,用于进行异常处理程序;计算模块,用于在异常处理程序完成之后,根据发生异常的指令的地址以及发生异常的指令的长度信息,计算发生异常的指令的下一条指令的地址;执行模块,用于根据所述下一条指令的地址,执行下一条指令。
在一种可能的实现方式中,还包括:解析模块,用于在接收到的指令发生异常之前:接收指令;对所述指令进行解码,以获得指令的长度信息;执行所述指令。
在一种可能的实现方式中,所述解析模块还用于在对所述指令进行解码之后,保存当前指令的地址以及长度信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯微电子科技有限公司;国网信息通信产业集团有限公司;国家电网有限公司,未经北京智芯微电子科技有限公司;国网信息通信产业集团有限公司;国家电网有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711475120.7/2.html,转载请声明来源钻瓜专利网。