[发明专利]一种指令处理方法、装置、系统及智能设备在审
申请号: | 202010957662.3 | 申请日: | 2020-09-10 |
公开(公告)号: | CN114168193A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 郭任 | 申请(专利权)人: | 平头哥(上海)半导体技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京成创同维知识产权代理有限公司 11449 | 代理人: | 李秀霞 |
地址: | 201210 上海市浦东新区自由*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 处理 方法 装置 系统 智能 设备 | ||
本发明实施例公开了一种指令处理方法,包括:执行包括桩点指令的目标指令序列,当执行到桩点指令时,进行异常处理;将该桩点指令所对应的目标指令写入指令缓存寄存器;在异常处理完毕之后,从指令缓存寄存器中读取目标指令;以及单步执行该目标指令。本发明实施例还公开了相应的装置、计算设备、片上系统及智能设备。
技术领域
本发明涉及处理器领域,尤其涉及一种指令处理方法、装置、系统及智能设备。
背景技术
在处理器领域,为了对指令进行调试,通常采用桩点探测方法。目前被广泛应用的桩点探测方法,例如Kprobe/Uprobe技术,是将桩点处的指令替换为桩点指令,并将被替换的指令复制到另一内存地址,后续采用模拟执行或者单步执行的方式来从另一内存地址读取并执行该指令。显然地,由于是异地址异权限执行指令,导致单步执行在内核态无法有效模拟部分指令,只能采用软件模拟。但采用软件模拟又增加了软件设计的复杂度以及跨指令集的CPU微架构维护难度。
因此,期望提供一种更为先进的指令处理方案,以解决传统单步执行机制中无法有效模拟部分指令等问题。
发明内容
为此,本发明实施例提供一种指令处理方法、装置、系统及智能设备,以力图解决或至少缓解上面存在的问题。
根据本发明实施例的一个方面,提供了一种指令处理方法,包括:执行包括桩点指令的目标指令序列,当执行到桩点指令时,进行异常处理;将该桩点指令所对应的目标指令写入指令缓存寄存器;在异常处理完毕之后,从指令缓存寄存器中读取目标指令;以及单步执行该目标指令。
可选地,在根据本发明实施例的方法中,还包括:响应于执行到桩点指令,将状态控制寄存器中的桩点使能标志配置为有效。
可选地,在根据本发明实施例的方法中,将桩点指令所对应的目标指令写入指令缓存寄存器,包括:响应于检测到有效的桩点使能标志,获取桩点指令所对应的目标指令;将目标指令写入指令缓存寄存器。
可选地,在根据本发明实施例的方法中,还包括:在执行目标指令序列之前,将原始指令序列中位于插桩位置处的目标指令替换为桩点指令,得到目标指令序列。
可选地,在根据本发明实施例的方法中,还包括:记录插桩位置与目标指令的对应关系;以及获取桩点指令所对应的目标指令,包括:基于对应关系,确定原先位于桩点指令所在插桩位置处的目标指令。
可选地,在根据本发明实施例的方法中,还包括:在单步执行目标指令之后,将桩点使能标志配置为无效。
可选地,在根据本发明实施例的方法中,将状态控制寄存器中的桩点使能标志配置为有效,包括:将状态控制寄存器中的桩点使能标志置1;以及将状态控制寄存器中的桩点使能标志配置为无效,包括:将状态控制寄存器中的桩点使能标志置0。
可选地,在根据本发明实施例的方法中,进行异常处理,包括:执行与桩点指令关联的对象。
可选地,在根据本发明实施例的方法中,还包括:在进行异常处理之前,保存当前的运行状态;以及在异常处理完毕之后,恢复所保存的运行状态。
可选地,在根据本发明实施例的方法中,桩点使能标志为单步使能标志。
可选地,在根据本发明实施例的方法中,桩点指令包括断点指令或跳转指令。
根据本发明实施例的另一个方面,提供了一种程序调试方法,包括:在程序的原始指令序列中设置插桩位置;将原始指令序列中位于插桩位置处的目标指令替换为桩点指令,得到目标指令序列;启动程序,以便指令处理装置执行目标指令序列;以及当执行到桩点指令时,进行异常处理,指令处理装置将桩点指令所对应的目标指令写入指令缓存寄存器,并在异常处理完毕之后,从指令缓存寄存器中读取目标指令,单步执行目标指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平头哥(上海)半导体技术有限公司,未经平头哥(上海)半导体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010957662.3/2.html,转载请声明来源钻瓜专利网。