本发明属于芯片诊断领域,特别涉及一种芯片cpu异常诊断方法和装置。
背景技术:
1、在软件程序运行过程中访问非法地址时可能导致处理器触发同步异常、异步异常甚至cpu挂死。其中,同步异常通常是由于cpu直接执行某个指令而产生异常,异常处理程序的返回地址可以表明导致该异常的指令,该类异常是精确的,直接通过系统coredump(操作系统在遇到程序崩溃时将异常信息进行打印的方法)信息就可以分析出产生cpu异常的原因。而异步异常的发生原因与处理器当前正在执行的指令无关,发生异步异常时,异常处理程序的返回地址无法表明导致该异常的指令,该类异常是不精确的。由于异常不是即时触发的,特别在复杂的业务软件系统中,系统coredump信息所指向的位置相比实际发生异常时的位置相差较远,因此软件开发人员很难定位到直接触发cpu异常的软件操作指令。而对于cpu直接挂死,软件程序无法继续运行,更无法看到任何cpu运行的现场信息,由于cpu已经无法进入debug模式,仿真调试工具也无法介入,因此软件开发人员遇到该问题时更是无从应对。
2、相关技术中对cpu异常的诊断其中有些是对cpu占用率异常的纯软件诊断,无法对cpu本身出现的异常进行处理,并不能定位cpu发生异常的根源,还有些硬件诊断方法在对cpu挂死异常或者cpu异步异常的检测中所获取的异常信息不准确或实现方式较为复杂,缺少通用性。
技术实现思路
1、本发明的目的在于提供一种芯片cpu异常诊断方法和装置,旨在针对cpu异步异常和cpu挂死问题,实现准确并通用的诊断和调试。
2、根据本发明的第一方面,提供了一种芯片cpu异常诊断方法,包括:
3、利用探测器模块监测芯片cpu的axi接口信号,在所述探测器模块中预先设置内部寄存器,所述探测器模块设置在所述芯片cpu与系统总线之间;
4、当检测到axi总线的读写响应返回错误信号值时,确定出现异步异常,当预设时间段内未检测到axi总线的读写响应时,确定出现挂死异常,并将出现异步异常和挂死异常时的cpu当前访问地址信息、寄存器信息以及axi总线信息保存在所述内部寄存器中;
5、在系统复位后,输出所述内部寄存器中的cpu当前访问地址信息、寄存器信息以及axi总线信息,以实现异常诊断分析。
6、优选地,所述内部寄存器为粘性寄存器。
7、优选地,所述寄存器信息包括程序计数器指针信息,用于指示发生异常时代码执行的位置。
8、优选地,所述axi总线信息包括发生异常的cpu核id。
9、优选地,所述确定出现异步异常,进一步包括:
10、当检测到axi总线的读响应rresp或写响应bresp返回slverr或decerr信号时,确定出现异步异常。
11、根据本发明的第二方面,提供了一种芯片cpu异常诊断装置,包括:
12、监测单元,用于利用探测器模块监测芯片cpu的axi接口信号,在所述探测器模块中预先设置内部寄存器,所述探测器模块设置在所述芯片cpu与系统总线之间;
13、记录单元,用于当检测到axi总线的读写响应返回错误信号值时,确定出现异步异常,当预设时间段内未检测到axi总线的读写响应时,确定出现挂死异常,并将出现异步异常和挂死异常时的cpu当前访问地址信息、寄存器信息以及axi总线信息保存在所述内部寄存器中;
14、诊断单元,用于在系统复位后,输出所述内部寄存器中的cpu当前访问地址信息、寄存器信息以及axi总线信息,以实现异常诊断分析。
15、相比于相关技术,本发明的技术方案具备以下优点:
16、1.本发明不依赖看门狗,可以直接锁定cpu当前的异常访问行为,提高了实时性,精确记录cpu所访问的异常地址,这对于解决cpu异步异常问题尤为重要。
17、2.本发明检测到的异常现场信息既包含cpu通用寄存器信息,也包含总线信息,提高了信息的完整性,对于多核处理器场景也可以获取到产生异常的core id信息,对调试人员的问题分析帮助更大。
18、3.系统复位后,异常现场信息不丢失,提高了信息的持久性,而且实现机制更为简单,只需要根据axi总线信号抓取异常时的现场信息。此外该方法具有通用性,适用于所有基于axi总线的soc系统。
19、本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。
1.一种芯片cpu异常诊断方法,其特征在于,包括:
2.根据权利要求1所述的芯片cpu异常诊断方法,其特征在于,所述内部寄存器为粘性寄存器。
3.根据权利要求1所述的芯片cpu异常诊断方法,其特征在于,所述寄存器信息包括程序计数器指针信息,用于指示发生异常时代码执行的位置。
4.根据权利要求1所述的芯片cpu异常诊断方法,其特征在于,所述axi总线信息包括发生异常的cpu核id。
5.根据权利要求1所述的芯片cpu异常诊断方法,其特征在于,所述确定出现异步异常,进一步包括:
6.一种芯片cpu异常诊断装置,其特征在于,包括:
7.根据权利要求6所述的芯片cpu异常诊断装置,其特征在于,所述内部寄存器为粘性寄存器。
8.根据权利要求6所述的芯片cpu异常诊断装置,其特征在于,所述寄存器信息包括程序计数器指针信息,用于指示发生异常时代码执行的位置。
9.根据权利要求6所述的芯片cpu异常诊断装置,其特征在于,所述axi总线信息包括发生异常的cpu核id。
10.根据权利要求6所述的芯片cpu异常诊断装置,其特征在于,所述诊断单元,进一步用于:
