[发明专利]一种处理器内部寄存器组异常行为实时检测方法及系统有效
申请号: | 202110162587.6 | 申请日: | 2021-02-05 |
公开(公告)号: | CN112905995B | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 李磊;袁世伟;周婉婷 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F21/55 | 分类号: | G06F21/55 |
代理公司: | 成都虹盛汇泉专利代理有限公司 51268 | 代理人: | 王伟 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理器 内部 寄存器 异常 行为 实时 检测 方法 系统 | ||
1.一种处理器内部寄存器组异常行为实时检测方法,其特征在于,包括以下步骤:
S1、搭建指令集测试使用的处理器环境;
S2、遍历处理器所有的公开指令集;
S3、分析指令集在译码、执行、回写过程中的执行情况及处理器的内核结构,并获得相关信号;
S4、获取处理器寄存器组模块的32个通用寄存器状态与其端口信号,并通过实时处理获得寄存器组的状态;具体包括以下分步骤:
S41、实时采样寄存器组的32个通用寄存器的值;
S42、将S41采集到的值通过时序逻辑延迟一个时钟周期,作为通用寄存器新的值;
S43、将步骤S41和步骤S42得到的值进行比较,若同一寄存器的两个值不同,则将该寄存器状态信号记为1,反之记为0,得到32Bit的寄存器组状态信号;
S44、实时采样处理器寄存器组模块的写通道信号,并使用写通道信号对步骤S43得到的寄存器组状态信号进行修正;
S5、根据指令集在处理器的遍历测试,获取每一条指令的特征信息;
S6、根据步骤S3获取的相关信号、步骤S4获取的寄存器组状态以及步骤S5获取的指令特征信息,对取指令操作后的指令流进行修正处理,使指令流的每一条指令与步骤S4实时获取的寄存器组状态匹配到一个时钟周期;
S7、根据修正后的指令流以及步骤S4获取的寄存器组状态和处理器寄存器组模块的写端口信号对步骤S4实时获取的寄存器组状态进行简化处理,使其用2Bit信号来表示;
S8、判决寄存器组状态是否异常:根据步骤S6修正后的指令流与步骤S5获取的指令特征信息,通过逻辑组合生成修正后的指令流中的指令对应的唯一的寄存器组状态值,用2Bit表示,再将此寄存器组状态值与步骤S7获得的寄存器组状态值进行比较,当两者状态值不一致时,产生第一次预警,并执行步骤S9,若一致则结束操作;
S9、二次判决寄存器组状态是否异常:将步骤S4实时获取的寄存器组模块的写通道信号、指令信息和32个通用寄存器的值进行比较,若三者信息一致则结束操作,否则产生第二次预警。
2.根据权利要求1所述的一种处理器内部寄存器组异常行为实时检测方法,其特征在于,所述步骤S3中的相关信号具体包括:1)处理器每个流水阶段的valid信号;2)流水冲突与数据冲突指示信号。
3.根据权利要求1所述的一种处理器内部寄存器组异常行为实时检测方法,其特征在于,所述步骤S5获得指令的特征信息包括:1)指令的生命周期;2)指令类型,记录指令是否为多周期指令,对于非定长周期指令按照其出现的最小周期数进行记录;3)指令对寄存器组的操作类型。
4.根据权利要求1所述的一种处理器内部寄存器组异常行为实时检测方法,其特征在于,步骤S6中对取指令操作后的指令流进行修正处理的目标为:还原处理器在运行过程中真正的指令执行顺序。
5.根据权利要求1所述的一种处理器内部寄存器组异常行为实时检测方法,其特征在于,所述步骤S7中信号简化表达指令对应的寄存器组状态的具体包括以下内容:
1)2’b00:指令没有对目标寄存器进行写操作,且其它寄存器没有被写入值;
2)2’b01:指令没有对目标寄存器进行写操作,且其它寄存器被写入了值;
3)2’b10:指令对目标寄存器进行写操作,且其它寄存器没有被写入值;
4)2’b11:指令对目标寄存器进行写操作,且其它寄存器被写入了值。
6.根据权利要求1所述的一种处理器内部寄存器组异常行为实时检测方法,其特征在于,所述步骤S9中写通道信号、指令信息以及寄存器组值的信息不一致的具体表现为:
1)指令信息指示对寄存器组进行写操作,而写通道的写使能未拉高;
2)指令信息指示的目标寄存器与写通道的地址信号的值不一致;
3)目标寄存器的值与写通道的数据信号的值不一致。
7.一种处理器内部寄存器组异常行为实时检测系统,其特征在于,包括以下模块:
指令执行周期译码模块:用于对处理器取指操作的指令流进行译码,得到程序运行中的指令的生命周期信息,辅助指令与寄存器组状态对齐模块完成对当前指令流的修正处理;
指令与寄存器组状态对齐模块:利用指令流修正规则来完成对取值操作后的指令流进行修正处理,以达到将指令流中的指令与其对应的寄存器组状态同步到一个时钟周期的目的;
寄存器组状态获取及其简化模块:将实时采样的寄存器组的值与上一个时钟周期的寄存器组的值进行比较,得到寄存器组的状态;
指令操作类型译码模块:对由指令与寄存器组状态对齐模块修正后的指令流进行译码,得到指令是否为多周期指令和是否会对寄存器组进行写值操作的信息,辅助寄存器组异常状态判决模块进行寄存器组的异常状态实时检测;
寄存器组异常状态判决模块:将修正后的指令流、指令的生命周期、指令是否会对寄存器进行写值操作与指令是否为多周期指令信息组合在一起生成修正后的指令流中的指令生命周期内对应的唯一的寄存器组状态;再将该寄存器组的2Bit状态值与实际采样处理的寄存器的2Bit状态值进行比较,并使用写端口信号进行辅助判断,实时的检测寄存器组的异常状态,并且可以将出现异常状态所对应的指令、PC值与所处的时钟周期数输出,供处理器进行故障预警与自我保护使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110162587.6/1.html,转载请声明来源钻瓜专利网。