[发明专利]用于处理异常的装置和方法在审
| 申请号: | 202080091711.8 | 申请日: | 2020-11-03 |
| 公开(公告)号: | CN114930286A | 公开(公告)日: | 2022-08-19 |
| 发明(设计)人: | T·C·格罗卡特 | 申请(专利权)人: | Arm有限公司 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/48 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 宋兴;臧建明 |
| 地址: | 英国*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 处理 异常 装置 方法 | ||
本发明提供了用于处理异常的装置和方法。该装置具有:处理电路,该处理电路能够在至少一个安全域中操作以执行程序代码,该程序代码包括响应于对应异常而执行的多个异常处理例程;和多个寄存器,该多个寄存器用于存储数据以供该处理电路在执行该程序代码时访问。响应于发生来自后台处理的给定异常,异常控制电路被布置成在触发该处理电路执行给定异常处理例程之前触发状态保存操作以保存来自该多个寄存器的数据。配置存储装置提供用于对异常处理例程进行分类的配置信息。该异常控制电路被布置成参考该配置信息来确定在该给定异常处理例程将在其中执行的该安全域内该给定异常处理例程属于第一类别还是第二类别。然后,当触发该状态保存操作时,该异常控制电路在该给定异常处理例程属于该第一类别时触发对来自该第一寄存器子组的该数据的保存,并且在该给定异常处理例程属于该第二类别时触发对来自该第一寄存器子组和该第二寄存器子组两者的该数据的保存。这种方法可显著减少支持执行可信异常处理例程和不可信异常处理例程两者的系统中的中断延迟。
背景技术
本技术涉及用于处理异常的装置和方法。
当处理器在执行程序代码时,其通常会访问多个寄存器,该多个寄存器用于存储处理器在执行程序代码时所使用的数据。在发生来自后台处理的异常时,已知在硬件中提供异常控制电路,该异常控制电路被布置成在触发处理器执行异常处理例程以处理异常之前对来自第一寄存器子组的数据执行状态保存。通过采取这种方法,异常处理例程可利用第一寄存器子组,而无需对这些寄存器中的数据执行任何状态保存,并且如果异常处理例程需要与这些寄存器交互,则异常处理例程仅需针对不在第一子组中的任何额外寄存器执行状态保存。
当发生异常时,可能的情况通常是异常处理例程将以与后台代码相同或更高的特权级别执行,并且因此允许异常处理例程对在第一子组之外的寄存器的内容具有可见性(即,寄存器中尚未由异常控制电路硬件进行的状态保存的数据)被认为不成问题。然而,在现代系统中,还期望支持使用不可信的异常处理例程,例如因为这些异常处理例程已由第三方供应商提供。在此类情况下,需要采取步骤以避免不可信异常处理例程获取权限访问其不应访问的数据。然而,中断延迟也正在成为现代系统中的重要问题,并且因此期望提供一种支持使用可信异常处理例程和不可信异常处理例程两者,同时减轻中断延迟问题的系统。
发明内容
在第一示例性布置中,提供了一种装置,该装置包括:处理电路,该处理电路在至少一个安全域中可操作以执行程序代码,该程序代码包括响应于对应异常而执行的多个异常处理例程;多个寄存器,该多个寄存器用于存储数据以供该处理电路在执行该程序代码时访问,该寄存器包括第一寄存器子组和与该第一子组不重叠的第二寄存器子组;异常控制电路,响应于发生来自后台处理的给定异常,该异常控制电路用于在触发该处理电路执行对应于该给定异常的给定异常处理例程之前触发状态保存操作以保存来自该多个寄存器的数据;和配置存储装置,该配置存储装置用于存储用于对该多个异常处理例程内的异常处理例程进行分类的配置信息;其中该异常控制电路被布置成:参考该配置信息来确定在该给定异常处理例程将在其中执行的该安全域内该给定异常处理例程属于第一类别还是第二类别,并且当触发该状态保存操作时被布置成:当该给定异常处理例程属于该第一类别时触发对来自该第一寄存器子组的该数据的保存,并且当该给定异常处理例程属于该第二类别时触发对来自该第一寄存器子组和该第二寄存器子组两者的该数据的保存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于Arm有限公司,未经Arm有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080091711.8/2.html,转载请声明来源钻瓜专利网。





