CN117453495B - 支持在线纠错和调试的芯片、设计方法及相关设备 - Google Patents
支持在线纠错和调试的芯片、设计方法及相关设备 Download PDFInfo
- Publication number
- CN117453495B CN117453495B CN202311804267.1A CN202311804267A CN117453495B CN 117453495 B CN117453495 B CN 117453495B CN 202311804267 A CN202311804267 A CN 202311804267A CN 117453495 B CN117453495 B CN 117453495B
- Authority
- CN
- China
- Prior art keywords
- register
- value
- exception
- abnormality
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012937 correction Methods 0.000 title claims abstract description 35
- 238000013461 design Methods 0.000 title claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 81
- 230000005856 abnormality Effects 0.000 claims abstract description 69
- 230000002159 abnormal effect Effects 0.000 claims abstract description 67
- 238000012986 modification Methods 0.000 claims abstract description 36
- 230000004048 modification Effects 0.000 claims abstract description 36
- 230000001960 triggered effect Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及芯片技术领域,本发明公开了一种支持在线纠错和调试的芯片、设计方法及相关设备,芯片包括:寄存器监控模块,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若寄存器的值满足第一预设异常触发条件,则抛出异常;内存监控模块,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若内存地址的值满足第二预设异常触发条件,则抛出异常;锁定模块,用于在芯片复位后,锁定模块处于解锁状态,在解锁状态下进行相应的配置修改,配置修改完成后进行锁定。本发明的支持在线纠错和调试的芯片能够在程序运行过程中就发现异常并及时处理,从而提高程序的可靠性和安全性。
Description
技术领域
本发明涉及芯片技术领域,尤其是涉及一种支持在线纠错和调试的芯片、设计方法、计算机设备及计算机可读存储介质。
背景技术
在现代计算机***中,对于程序的调试是计算机软件开发的重要环节之一,其目的是发现程序代码中存在的各种问题,提高程序运行的正确性、安全性、可靠性。传统的程序调试方法采用断点设置与代码跟踪技术,编写的是直接执行的程序,由于程序的执行流程比较单一,这种方法是比较有效的。然而,由于程序员的错误、恶意软件和其他因素,程序在芯片运行过程中可能会出现各种异常情况,比如栈溢出、内存泄漏、非法访问内存等。这些异常情况可能会导致程序崩溃、数据丢失、信息泄露和安全漏洞等问题。
现有已经提出了许多监控和调试技术,比如断点、跟踪、调试器等。然而,这些技术都需要程序员手动设置断点或者打印调试信息,而且只能在程序崩溃或者出现异常情况后才能进行调试和修复。这种调试方式不仅效率低下,而且难以应对复杂程序的异常情况,可靠性和安全性差。
发明内容
本发明实施例的目的在于提供一种支持在线纠错和调试的芯片,以解决现有的程序在芯片中运行监控麻烦、可靠性和安全性差的问题。
为了解决上述技术问题,第一方面,本发明实施例提供了一种支持在线纠错和调试的芯片,所述芯片包括寄存器监控模块、内存监控模块以及锁定模块;
所述寄存器监控模块,用于预选指定寄存器,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;
所述内存监控模块,用于预设指定内存地址,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;
所述锁定模块,用于在芯片复位后,所述锁定模块处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。
优选的,所述第一预设异常触发条件为大小关系时,所述寄存器监控模块包括:
第一获取单元,用于获取多条监控表项,每一条所述监控表项监控一个所述寄存器的值;
第一控制寄存器,用于对当前条所述监控表项进行配置;
第一阈值寄存器,用于设置第一阈值;
第一判断单元,用于判断所述寄存器的值与所述第一阈值,是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常。
优选的,所述第一预设异常触发条件为范围关系时,所述芯片还包括:
第二阈值寄存器,用于设置第二阈值;
第二判断单元,用于判断所述寄存器的值与所述第一阈值和第二阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常。
优选的,所述第二判断单元,还用于将寄存器选择位设置为选择SP寄存器;
将条件判断位设置满足如下关系:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将异常触发位设置为不满足如下关系时触发异常:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将第一阈值寄存器设置为栈底部地址,将第二阈值寄存器设置为栈顶部地址;
将使能位设置为锁定状态,当前条所述监控表项配置完成;
当所述SP寄存器的值超出所述栈底部地址的值到所述栈顶部地址的值的范围,则触发异常。
优选的,所述第一预设异常触发条件还包括针对所述寄存器的值指定比特位进行监控的关系和读写状态。
优选的,所述第二预设异常触发条件为大小关系时,所述内存监控模块包括:
第二获取单元,用于获取多条监控表项,每一条所述监控表项监控一个所述内存地址的值;
第二控制寄存器,用于对当前条所述监控表项进行配置;
第三阈值寄存器,用于设置第三阈值;
第三判断单元,用于判断所述内存地址的值与预设的第三阈值;是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常。
优选的,所述第二预设异常触发条件为范围关系时,所述内存监控模块还包括:
第四阈值寄存器,用于设置第四阈值;
第四判断模块,用于判断所述内存地址的值与所述第三阈值和预设的第四阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常。
第二方面,本发明实施例提供一种支持在线纠错和调试的芯片设计方法,所述芯片设计方法包括以下步骤:
预选指定寄存器,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;
预设指定内存地址,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;
在芯片复位后,所述第一预设配置信息和所述第二预设配置信息处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。
第三方面,本发明实施例提供一种计算机设备,所述计算机设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的支持在线纠错和调试的芯片设计程序,所述处理器执行所述支持在线纠错和调试的芯片设计程序时实现如上述的支持在线纠错和调试的芯片设计方法中的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有支持在线纠错和调试的芯片设计程序,所述支持在线纠错和调试的芯片设计程序被处理器执行时实现如上述的支持在线纠错和调试的芯片设计方法中的步骤。
与现有技术相比,本发明中的支持在线纠错和调试的芯片,通过实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;通过在芯片复位后,所述锁定模块处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改;从而能够在程序运行过程中就发现异常并及时处理,从而提高程序的可靠性和安全性。同时,能够在芯片中程序执行出现问题的时候就直接进入到异常处理历程中,记录问题的详细信息,提高调试效率。还可以监控任意寄存器和内存地址的值,能够适应不同的程序和应用场景,灵活性高。可以通过添加寄存器监控模块和内存监控模块实现,不需要对现有CPU架构进行大规模修改,实现简单。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1为本发明实施列提供的支持在线纠错和调试的芯片的模块图;
图2为本发明实施例提供的寄存器监控模块的模块图;
图3为本发明实施例提供的内存监控模块的模块图;
图4为本发明实施列提供的支持在线纠错和调试的芯片设计方法的流程图;
图5为本发明实施列提供的计算机设备的模块图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参阅附图1-图3所示,本发明实施例提供一种支持在线纠错和调试的芯片200,所述芯片包括寄存器监控模块201、内存监控模块202以及锁定模块203;
寄存器监控模块201,用于预选指定寄存器,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常。
其中,通过在中央处理器(Central Processing Unit,简称CPU)对软件程序执行过程中,实时监控所选寄存器的值,将该所选寄存器的值根据第一预设异常触发条件进行判断,当所选寄存器的值满足设置好的第一预设异常触发条件时,触发异常,并获得相应的寄存器配置信息。
本实施例中,预选多个寄存器,实时获取每一个指定的所述寄存器的值,并根据多个第一预设异常触发条件获得每一个指定的所述寄存器的寄存器配置信息。
可选的,该获取不仅仅是一个寄存器的数据,还可以同时监控多个寄存器的数值。比如使用寄存器监控选项监控SP寄存器的值,可以很好的检测栈溢出的情况。当SP寄存器的值超过了栈的范围,就会触发异常,防止栈溢出导致程序崩溃或者安全问题。
内存监控模块202,用于预设指定内存地址,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常。
其中,通过在中央处理器对软件程序执行过程中,实时监控任意内侧地址的值,将该内存地址的值根据第一预设异常触发条件进行判断,当内存地址的值满足设置好的第二预设异常触发条件时,触发异常,并获得相应的内存地址配置信息。
可选的,该获取不仅仅是一个内存地址的值,也可以同时监控多段内存空间的值。比如使用内存地址监控选项的监控某个关键变量的值,可以检测出该变量被非法修改的情况。当内存中该变量的值被非法修改,就会触发异常,防止数据被篡改导致安全问题。
锁定模块203,用于在芯片复位后,所述锁定模块处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。
其中,在芯片复位时,锁定模块203处于解锁状态,软件可以配置相应的寄存器监控模块201和内存监控模块202。配置完成之后,软件根据相应的寄存器监控模块201和内存监控模块202将锁定模块设为锁定状态,之后软件将无法再修改寄存器监控模块201、内存监控模块202和锁定模块203的任何配置。
具体的,通过寄存器监控模块201实时获取指定的所述寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;内存监控模块202实时获取指定的所述内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;锁定模块203在芯片复位后,所述锁定模块203处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。从而能够在程序运行过程中就发现异常并及时处理,从而提高程序的可靠性和安全性。同时,能够在程序执行出现问题的时候就直接进入到异常处理历程中,记录问题的详细信息,提高调试效率。还可以监控任意寄存器和内存地址的值,能够适应不同的程序和应用场景,灵活性高。可以通过添加寄存器监控模块201和内存监控模块202实现,不需要对现有CPU架构进行大规模修改,实现简单。
本实施例中,所述第一预设异常触发条件为大小关系时,所述寄存器监控模块201包括:
第一获取单元2011,用于获取多条监控表项,每一条所述监控表项监控一个所述寄存器的值。
其中,通过使能用于启用或禁用本条监控表项,0表示禁用,1表示启用。
第一阈值寄存器2012,用于设置第一阈值;
第一控制寄存器2013,用于对当前条所述监控表项进行配置;
第一判断单元2014,用于判断所述寄存器的值与所述第一阈值,是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常。
本实施例中,所述第一预设异常触发条件为范围关系时,所述寄存器监控模块201还包括:
第二阈值寄存器2015,用于设置第二阈值;
第二判断单元2016,用于判断所述寄存器的值与所述第一阈值和所述第二阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常。
其中,第一阈值和第二阈值均通过相应的阈值寄存器设置,每一个阈值寄存器设置一个阈值。当然,阈值不仅仅是第一阈值和第二阈值,还也可以是多个,具体根据需求进行选择设置。
具体的,锁定模式用于锁定本条监控表项;其中,0:未锁定状态。复位时被硬件设置为0,此时软件可修改该条表项的3个寄存器。1:锁定状态。软件将该bit置1后,本条表项被锁定,对应的3个寄存器将无法做任何修改,除非芯片复位。
用于选择要监控的寄存器,10个bit总共可选择1024个寄存器。具体bit数可根据实际情况调整,能覆盖要监控的寄存器个数即可。
其中,第一预设异常触发条件的不同的取值表示不同的判定条件,和两个阈值寄存器结合起来得到最终的条件。用V表示寄存器的值,!=表示不等于。T1和T2分别表示第一阈值寄存器2012的第一阈值和第二阈值寄存器的第二阈值,该条件判断位不同取值的含义如下。具体实现中用可根据实际情况调整bit数和判断条件的定义。
其中,第一预设异常触发条件的大小关系如下:
V=T1,V<T1,V≤T1,V>T1,V≥T1,V!=T1。
其中,范围关系如下:
T1<V<T2,T1≤V<T2,T1<V≤T2,T1≤V≤T2。
本实施例中,所述第一预设异常触发条件还包括针对所述寄存器的值指定比特位进行监控的关系和读写状态。
其中,针对寄存器的值指定比特位进行监控的关系如下:
V&T1=T2,V&T1<T2,V&T1≤T2,V&T1>T2,V&T1≥T2,V&T1!=T2,V|T1=T2,V|T1<T2,V|T1≤T2,V|T1>T2,V|T1≥T2,V|T1!=T2。
这样能监控精确到位,针对某个值,更加精确。
其中,读写状态包括寄存器被读取、寄存器被写入及寄存值发生改变。此时,第一阈值和第二阈值没有产生具体的阈值,只能实现读写状态。
这样通过根据不同的大小关系、范围关系、针对所述寄存器的值指定比特位监控以及读写状态,判断是满足上述判断条件时触发异常还是不满足上述判断条件时触发异常,0:满足条件触发异常,1:不满足条件触发异常,这个可以根据使用者的设定进行选择触发异常情况。能够在程序执行出现问题的时候就直接进入到异常处理历程中,记录问题的详细信息,提高调试效率。
本实施例中,所述第二判断单元2016,还用于将寄存器选择位设置为选择SP寄存器;将条件判断位设置满足如下关系:所述第一阈值≤所述SP寄存器≤所述第二阈值;将异常触发位设置为不满足如下关系时触发异常:所述第一阈值≤所述SP寄存器≤所述第二阈值;将第一阈值寄存器2012设置为栈底部地址,将第二阈值寄存器2015设置为栈顶部地址;将使能位设置为锁定状态,当前条所述监控表项配置完成;当所述SP寄存器的值超出所述栈底部地址的值到所述栈顶部地址的值的范围,则触发异常。
具体的,将第一控制寄存器2013的寄存器选择位,设置为选择SP寄存器。将第一控制寄存器2013的条件判断位,设置为9,即T1≤SP≤T2;将监控寄存器的异常触发位,设置为1,即不满足上面的条件时触发异常;将第一阈值寄存器2012设置为栈底部地址,将第二阈值寄存器2015设置为栈顶部地址。将第一控制寄存器2013的使能位设置为1,即开启本条监控表项。当程序执行过程中,如果SP的值超出了规定的栈底到栈顶的范围,则寄存器监控模块201会触发异常,此时可以通过异常处理程序来处理堆栈溢出异常,比如打印错误信息并终止程序执行。
在本实施例中,所述芯片还包括多个所述寄存器监控模块201和多个所述内存监控模块202。
本实施例中,所述第二预设异常触发条件为大小关系时,内存监控模块202包括:
第二获取单元2021,用于获取多条监控表项,每一条所述监控表项监控一个所述内存地址的值;
第二控制寄存器2022,用于对当前条所述监控表项进行配置;
第三阈值寄存器2023,用于设置第三阈值;
第三判断单元2024,用于判断所述内存地址的值与所述第三阈值;是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常。
具体的,0:未锁定状态。复位时被硬件设置为0,此时软件可修改该条表项的4个寄存器。1:锁定状态。软件将该bit置1后,本条表项被锁定,对应的4个寄存器将无法做任何修改,除非芯片复位。
用于选择要监控的寄存器,10个bit总共可选择1024个寄存器。具体bit数可根据实际情况调整,能覆盖要监控的寄存器个数即可。
本实施例中,所述第二预设异常触发条件为范围关系时,内存监控模块202还包括:
第四阈值寄存器2025,用于设置第四阈值;
第四判断单元2026,用于判断所述内存地址的值与所述第三阈值和所述第四阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常。
具体的,第二预设异常触发条件的不同的取值表示不同的判定条件,和两个阈值寄存器结合起来得到最终的条件。用V表示寄存器的值,!=表示不等于。T1和T2分别表示第三阈值寄存器2023的第三阈值和第四阈值寄存器2025的第四阈值,该条件判断位不同取值的含义如下。具体实现中用可根据实际情况调整bit数和判断条件的定义。
其中,第二预设异常触发条件的大小关系如下:
V=T1,V<T1,V≤T1,V>T1,V≥T1,V!=T1。
其中,第二预设异常触发条件的范围关系如下:
T1<V<T2,T1≤V<T2,T1<V≤T2,T1≤V≤T2。
本实施例中,所述第二预设异常触发条件还包括针对寄存器的值指定比特位进行监控的关系和读写状态。
其中,第二预设异常触发条件的针对寄存器的值指定比特位进行监控的关系如下:
V&T1=T2,V&T1<T2,V&T1≤T2,V&T1>T2,V&T1≥T2,V&T1!=T2,V|T1=T2,V|T1<T2,V|T1≤T2,V|T1>T2,V|T1≥T2,V|T1!=T2。
这样能监控精确到位,针对某个值,更加精确。
其中,第二预设异常触发条件的读写状态包括寄存器被读取、寄存器被写入及寄存值发生改变。此时,第三阈值和第四阈值没有产生具体的阈值,只能实现读写状态。
可选的,上述不仅仅包括第三阈值和第四阈值这两个阈值,还可以是3、4、5个阈值等,根据实际情况的需要,可以增加多个阈值设置,此处不再一一描述。
实施例二
如图4所示,本发明实施例提供了一种支持在线纠错和调试的芯片设计方法,所述芯片设计方法包括以下步骤:
步骤S1、预选指定寄存器,实时获取指定的所述寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常。
其中,通过在中央处理器(Central Processing Unit,简称CPU)对软件程序执行过程中,实时监控所选寄存器的值,将该所选寄存器的值根据第一预设异常触发条件进行判断,当所选寄存器的值满足设置好的第一预设异常触发条件时,触发异常,并获得相应的寄存器配置信息。
本实施例中,预选多个寄存器,实时获取每一个指定的所述寄存器的值,并根据多个第一预设异常触发条件获得每一个指定的所述寄存器的寄存器配置信息。
具体的,该获取不仅仅是一个寄存器的数据,还可以同时监控多个寄存器的数值。比如使用寄存器监控选项监控SP寄存器的值,可以很好的检测栈溢出的情况。当SP寄存器的值超过了栈的范围,就会触发异常,防止栈溢出导致程序崩溃或者安全问题。
步骤S2、预设指定内存地址,实时获取指定的所述内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常。
其中,通过在中央处理器对软件程序执行过程中,实时监控任意内侧地址的值,将该内存地址的值根据第一预设异常触发条件进行判断,当内存地址的值满足设置好的第二预设异常触发条件时,触发异常,并获得相应的内存地址配置信息。
本实施例中,预设多个内存地址,实时获取每一个指定的所述内存地址的值,并根据多个第二预设异常触发条件获得每一个指定的所述内存地址的内存配置信息。
具体的,该获取不仅仅是一个内存地址的值,也可以同时监控多段内存空间的值。比如使用内存地址监控选项的监控某个关键变量的值,可以检测出该变量被非法修改的情况。当内存中该变量的值被非法修改,就会触发异常,防止数据被篡改导致安全问题。
步骤S3、在芯片复位后,所述第一预设配置信息和所述第二预设配置信息处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。
具体的,通过实时获取指定的所述寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;实时获取指定的所述内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;在芯片复位后,所述第一预设配置信息和所述第二预设配置信息处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改;从而能够在程序运行过程中就发现异常并及时处理,从而提高程序的可靠性和安全性。同时,能够在程序执行出现问题的时候就直接进入到异常处理历程中,记录问题的详细信息,提高调试效率。还可以监控任意寄存器和内存地址的值,能够适应不同的程序和应用场景,灵活性高。可以通过添加寄存器监控模块201和内存监控模块202实现,不需要对现有CPU架构进行大规模修改,实现简单。
本实施例中,通过支持在线纠错和调试的芯片设计方法所实现的技术效果及原理与本发明上述实施例一提供的支持在线纠错和调试的芯片200所实现的技术效果和原理相同,在此不再赘述。
实施例三
如图5所示,本声明实施例提供一种计算机设备300,所述计算机设备包括存储器301、处理器302和存储在所述存储器301上并可在所述处理器302上运行的支持在线纠错和调试的芯片设计程序,所述处理器302执行所述支持在线纠错和调试的芯片设计程序时实现如上述的支持在线纠错和调试的芯片设计方法中的步骤;
步骤S1、预选指定寄存器,实时获取指定的所述寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;
步骤S2、预设指定内存地址,实时获取指定的所述内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;
步骤S3、在芯片复位后,所述第一预设配置信息和所述第二预设配置信息处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改。
存储器301可用于存储软件程序以及各种数据。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器302是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器302中。
需要说明的是,计算机设备300在使用时,其可实现如上述支持在线纠错和调试的芯片设计方法所实现的技术效果,具体参上述支持在线纠错和调试的芯片设计方法的描述,在此不再赘述。
实施例四
本声明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有支持在线纠错和调试的芯片设计程序,所述支持在线纠错和调试的芯片设计程序被处理器执行时实现如上述的支持在线纠错和调试的芯片设计方法中的步骤。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种支持在线纠错和调试的芯片,其特征在于,所述芯片包括寄存器监控模块、内存监控模块以及锁定模块;
所述寄存器监控模块,用于预选指定寄存器,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;
所述内存监控模块,用于预设指定内存地址,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;
所述锁定模块,用于在芯片复位后,所述锁定模块处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改;
所述第一预设异常触发条件为大小关系时,所述寄存器监控模块包括:
第一获取单元,用于获取多条监控表项,每一条所述监控表项监控一个所述寄存器的值;
第一控制寄存器,用于对当前条所述监控表项进行配置;
第一阈值寄存器,用于设置第一阈值;
第一判断单元,用于判断所述寄存器的值与所述第一阈值,是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常;
所述第一预设异常触发条件为范围关系时,所述芯片还包括:
第二阈值寄存器,用于设置第二阈值;
第二判断单元,用于判断所述寄存器的值与所述第一阈值和第二阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常;
所述第二判断单元,还用于将寄存器选择位设置为选择SP寄存器;
将条件判断位设置满足如下关系:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将异常触发位设置为不满足如下关系时触发异常:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将第一阈值寄存器设置为栈底部地址,将第二阈值寄存器设置为栈顶部地址;
将使能位设置为锁定状态,当前条所述监控表项配置完成;
当所述SP寄存器的值超出所述栈底部地址的值到所述栈顶部地址的值的范围,则触发异常。
2.如权利要求1所述的支持在线纠错和调试的芯片,其特征在于,所述第一预设异常触发条件还包括针对所述寄存器的值指定比特位进行监控的关系和读写状态。
3.如权利要求1所述的支持在线纠错和调试的芯片,其特征在于,所述第二预设异常触发条件为大小关系时,所述内存监控模块包括:
第二获取单元,用于获取多条监控表项,每一条所述监控表项监控一个所述内存地址的值;
第二控制寄存器,用于对当前条所述监控表项进行配置;
第三阈值寄存器,用于设置第三阈值;
第三判断单元,用于判断所述内存地址的值与预设的第三阈值;是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常。
4.如权利要求3所述的支持在线纠错和调试的芯片,其特征在于,所述第二预设异常触发条件为范围关系时,所述内存监控模块还包括:
第四阈值寄存器,用于设置第四阈值;
第四判断模块,用于判断所述内存地址的值与所述第三阈值和预设的第四阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常。
5.一种支持在线纠错和调试的芯片设计方法,其特征在于,所述芯片设计方法包括以下步骤:
预选指定寄存器,实时获取指定的寄存器的值,并根据第一预设配置信息获取第一预设异常触发条件,若所述寄存器的值满足所述第一预设异常触发条件,则抛出异常;
预设指定内存地址,实时获取指定的内存地址的值,并根据第二预设配置信息获取第二预设异常触发条件,若所述内存地址的值满足所述第二预设异常触发条件,则抛出异常;
在芯片复位后,所述第一预设配置信息和所述第二预设配置信息处于解锁状态,在所述解锁状态下可以对所述第一预设配置信息和/或所述第二预设配置信息进行相应的配置修改,配置修改完成后进行锁定,锁定后无法进行任何配置的修改;
所述第一预设异常触发条件为大小关系时,所述芯片设计方法还包括以下子步骤:
获取多条监控表项,每一条所述监控表项监控一个所述寄存器的值;对当前条所述监控表项进行配置;设置第一阈值;判断所述寄存器的值与所述第一阈值,是满足所述大小关系时触发异常,还是不满足所述大小关系时触发异常;
如果配置为满足所述大小关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述大小关系时发生异常,那么若不满足,则触发异常;
所述第一预设异常触发条件为范围关系时,所述芯片设计方法还包括以下子步骤:
设置第二阈值;判断所述寄存器的值与所述第一阈值和第二阈值,是满足所述范围关系时触发异常,还是不满足所述范围关系时触发异常;
如果配置为满足所述范围关系时发生异常,那么若满足,则触发异常;
如果配置为不满足所述范围关系时发生异常,那么若不满足,则触发异常;
所述芯片设计方法还包括以下步骤:
将寄存器选择位设置为选择SP寄存器;
将条件判断位设置满足如下关系:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将异常触发位设置为不满足如下关系时触发异常:所述第一阈值≤所述SP寄存器≤所述第二阈值;
将第一阈值寄存器设置为栈底部地址,将第二阈值寄存器设置为栈顶部地址;
将使能位设置为锁定状态,当前条所述监控表项配置完成;
当所述SP寄存器的值超出所述栈底部地址的值到所述栈顶部地址的值的范围,则触发异常。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的支持在线纠错和调试的芯片设计程序,所述处理器执行所述支持在线纠错和调试的芯片设计程序时实现如权利要求5所述的支持在线纠错和调试的芯片设计方法中的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有支持在线纠错和调试的芯片设计程序,所述支持在线纠错和调试的芯片设计程序被处理器执行时实现如权利要求5所述的支持在线纠错和调试的芯片设计方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311804267.1A CN117453495B (zh) | 2023-12-26 | 2023-12-26 | 支持在线纠错和调试的芯片、设计方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311804267.1A CN117453495B (zh) | 2023-12-26 | 2023-12-26 | 支持在线纠错和调试的芯片、设计方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117453495A CN117453495A (zh) | 2024-01-26 |
CN117453495B true CN117453495B (zh) | 2024-03-26 |
Family
ID=89593391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311804267.1A Active CN117453495B (zh) | 2023-12-26 | 2023-12-26 | 支持在线纠错和调试的芯片、设计方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453495B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012119446A1 (zh) * | 2011-09-20 | 2012-09-13 | 华为技术有限公司 | 一种内存监控方法及装置 |
CN103455733A (zh) * | 2012-05-31 | 2013-12-18 | 飞思卡尔半导体公司 | 处理器资源和执行保护方法及装置 |
CN111221701A (zh) * | 2019-11-15 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种芯片及其电路逻辑重构*** |
CN112084086A (zh) * | 2020-08-14 | 2020-12-15 | 北京字节跳动网络技术有限公司 | 一种信息收集方法、装置、介质和电子设备 |
CN114936135A (zh) * | 2022-06-28 | 2022-08-23 | 浪潮商用机器有限公司 | 一种异常检测方法、装置及可读存储介质 |
WO2022227410A1 (zh) * | 2021-04-29 | 2022-11-03 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
CN115794661A (zh) * | 2023-01-19 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 处理器的异常访问定位方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154392A1 (en) * | 2002-02-11 | 2003-08-14 | Lewis Timothy A. | Secure system firmware using interrupt generation on attempts to modify shadow RAM attributes |
WO2011091743A1 (en) * | 2010-02-01 | 2011-08-04 | Hangzhou H3C Technologies Co., Ltd. | Apparatus and method for recording reboot reason of equipment |
-
2023
- 2023-12-26 CN CN202311804267.1A patent/CN117453495B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012119446A1 (zh) * | 2011-09-20 | 2012-09-13 | 华为技术有限公司 | 一种内存监控方法及装置 |
CN103455733A (zh) * | 2012-05-31 | 2013-12-18 | 飞思卡尔半导体公司 | 处理器资源和执行保护方法及装置 |
CN111221701A (zh) * | 2019-11-15 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种芯片及其电路逻辑重构*** |
CN112084086A (zh) * | 2020-08-14 | 2020-12-15 | 北京字节跳动网络技术有限公司 | 一种信息收集方法、装置、介质和电子设备 |
WO2022227410A1 (zh) * | 2021-04-29 | 2022-11-03 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
CN114936135A (zh) * | 2022-06-28 | 2022-08-23 | 浪潮商用机器有限公司 | 一种异常检测方法、装置及可读存储介质 |
CN115794661A (zh) * | 2023-01-19 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 处理器的异常访问定位方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117453495A (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9804952B1 (en) | Application debugging in a restricted container environment | |
CN105844157A (zh) | 一种针对Android***App行为的监控方法 | |
CN107516547A (zh) | 内存硬错误的处理方法及装置 | |
US7765434B2 (en) | Resource efficient software tracing for problem diagnosis | |
CN109409087B (zh) | 防提权检测方法及设备 | |
CN109815697B (zh) | 误报行为处理方法及装置 | |
CN110401899A (zh) | 音频测试方法及相关装置 | |
CN110928777A (zh) | 测试用例的处理方法、装置、设备及存储介质 | |
CN106997313B (zh) | 一种应用程序的信号处理方法、***及终端设备 | |
CN111897711A (zh) | 代码中bug的定位方法、装置、电子设备及可读存储介质 | |
CN117453495B (zh) | 支持在线纠错和调试的芯片、设计方法及相关设备 | |
CN107368738B (zh) | 一种智能设备的防Root方法及装置 | |
JP2014193690A (ja) | 車両用制御装置 | |
CN112015587B (zh) | 一种增强操作***可靠性的方法及装置 | |
CN108647516B (zh) | 一种防御漏洞非法提权方法及装置 | |
CN107844703B (zh) | 一种基于Android平台Unity3D游戏的客户端安全检测方法及装置 | |
CN106709338A (zh) | 一种程序检测方法及装置 | |
CN115811459A (zh) | 一种告警标记方法、装置、电子设备及存储介质 | |
CN115509691A (zh) | 一种虚拟机内部栈溢出识别方法及*** | |
CN109726115A (zh) | 一种基于Intel处理器跟踪的反调试自动绕过方法 | |
CN116107781A (zh) | 日志追踪方法、装置、电子设备、及计算机程序产品 | |
CN113282435A (zh) | 应用异常的处理方法和电子设备 | |
US7437612B1 (en) | Postmortem detection of owned mutual exclusion locks | |
CN112948276A (zh) | 模糊测试方法、装置和电子设备 | |
CN110826051A (zh) | 一种弱口令检测方法、装置、介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |