信息快照方法、设备及CPU与流程

文档序号:11519710阅读:289来源:国知局
信息快照方法、设备及CPU与流程

本申请涉及网络通信技术领域,特别涉及一种信息快照方法、设备及cpu。



背景技术:

cpu(centralprocessingunit,中央处理器)异常是一个事件,该cpu异常是由cpu指令、内部定时器、调试事件或错误情况所引起的事件处理。

目前,cpu在运行应用程序中,当cpu发生异常时,首先cpu会执行完当前正在运行的应用程序指令;然后cpu从异常类型指定的地址,提取异常处理程序指令并开始异常处理(即cpu执行异常处理程序)、以及保存异常现场信息。

但是,当出现特殊类型的异常时,比如:出现cpu异常嵌套或cpu访问外部io(in/out,输入/输出)设备挂死,异常cpu不能获取异常现场信息,从而导致维护人员不能远程定位异常原因。



技术实现要素:

本申请提供一种信息快照方法、设备及cpu,以解决现有技术中当出现特殊类型的异常时,异常cpu不能获取异常现场信息,从而导致维护人员不能远程定位异常原因的问题。

根据本申请实施例的第一方面,提供了一种cpu,所述cpu包括:信息快照装置、cpu通用寄存器和cpu内存单元,所述信息快照装置分别与cpu通用寄存器、cpu内存单元相连接;

所述信息快照装置用于接收看门狗发送的针对异常cpu的快照触发指令;根据所述快照触发指令对所述异常cpu对应的异常现场信息进行快照,得到快照信息;将所述快照信息保存到异常信息存储介质。

根据本申请实施例的第二方面,提供了一种信息快照设备,所述设备包括上述第一方面提供的cpu,以及分别与所述cpu相连接的系统内存、看门狗、和异常信息存储介质。

根据本申请实施例的第三方面,提供了一种信息快照方法,该方法应用于cpu,所述cpu包括信息快照装置、cpu通用寄存器和cpu内存单元,所述信息快照装置分别与cpu通用寄存器、cpu内存单元相连接;该方法包括:

信息快照装置接收看门狗发送的针对异常cpu的快照触发指令;

所述信息快照装置根据所述快照触发指令对所述异常cpu对应的异常现场信息进行快照,得到快照信息,将所述快照信息保存到异常信息存储介质。

应用本申请实施例,cpu内的信息快照装置可以对异常现场信息进行快照,得到快照信息,并将快照信息保存到异常信息存储介质,这样可以避免出现特殊类型的异常时不能保存异常现场信息的情形,并有利于维修人员根据快照信息远程定位cpu异常的原因,从而提高了cpu的可维护性和维护效率。

附图说明

图1是本申请信息快照方法的应用场景示意图;

图2是本申请cpu的一个实施例框图;

图3是本申请cpu的另一个实施例框图;

图4是本申请信息快照方法的一个实施例流程图;

图5是本申请信息快照方法的另一个实施例流程图;

图6是本申请信息快照设备的一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是本申请信息快照方法的应用场景示意图。如图1所示,该应用场景中包括cpu(包括信息快照装置)、系统内存、看门狗、异常信息存储介质。

信息快照装置集成在cpu内部,且该信息快照装置是由硬件实现的。

异常信息存储介质可以位于cpu内部,也可以位于cpu外部。

看门狗的复位管脚、快照触发管脚、看门狗定时器访问总线均和cpu相连。其中,看门狗的快照触发管脚连接于cpu内部的信息快照装置。

cpu在运行应用程序中,cpu软件会定时清空看门狗定时器。

当cpu出现异常时,一般情况下cpu还可以执行异常处理程序;但是,当出现特殊类型的异常时,比如:出现cpu异常嵌套或cpu访问外部io设备挂死,此时异常cpu已经无法执行程序指令,且无法清空看门狗定时器,当看门狗定时器超时后,看门狗会有效与信息快照装置相连接的快照触发管脚,从而触发信息快照装置对异常现场信息进行快照,并将快照信息保存到异常信息存储介质,以用于远程定位cpu异常的原因。

另外,当看门狗有效快照触发管脚后,还会启动预设等待时间计数,当该预设等待时间计数超时后,看门狗有效cpu复位管脚,复位cpu。

图2是本申请cpu的一个实施例框图。如图2所示,cpu包括信息快照装置、cpu通用寄存器和cpu内存单元,并且信息快照装置分别与cpu通用寄存器、cpu内存单元相连接。

其中,信息快照装置用于接收看门狗发送的针对异常cpu的快照触发指令;根据快照触发指令对异常cpu对应的异常现场信息进行快照,得到快照信息;将快照信息保存到异常信息存储介质。

在一实施例中,如图2所示,信息快照装置可以通过快照触发管脚与看门狗相连接。

信息快照装置具体用于当检测到快照触发管脚为有效时,确定接收到看门狗发送的快照触发指令。

在一实施例中,如图2所示,cpu还包括:cpu接口;cpu内存单元与cpu接口相连接,用于通过cpu接口访问系统内存。

信息快照装置具体用于从cpu通用寄存器读取通用寄存器值,该通用寄存器值包括栈指针寄存器值;以及通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据,通用寄存器值和堆栈空间数据为快照信息。

在一实施例中,cpu内存单元还用于通过cpu接口访问异常信息存储介质。

信息快照装置具体用于通过cpu内存单元将快照信息保存到异常信息存储介质中首地址的存储空间。

由上述实施例可见,cpu内的信息快照装置可以对异常现场信息进行快照,得到快照信息,并将快照信息保存到异常信息存储介质,这样可以避免出现特殊类型的异常时不能保存异常现场信息的情形,并有利于维修人员根据快照信息远程定位cpu异常的原因,从而提高了cpu的可维护性和维护效率。

图3是本申请cpu的另一个实施例框图。如图3所示,cpu内部由cpu指令单元、cpu内存单元、cpu接口、cpu通用寄存器和信息快照装置组成。

其中,cpu内存单元包括mmu(memorymanagementunit,内存管理单元)和cpu缓存(cachememory)等。该cpu内存单元通过cpu接口可以访问cpu外部的系统内存和异常信息存储介质。

cpu指令单元包括cpu指令预取、cpu指令执行、指令流水线和完成队列等。该cpu指令单元通过cpu内存单元获取程序指令和数据,cpu指令单元执行指令时,会使用cpu通用寄存器。

cpu接口是cpu和外部总线互连的接口,cpu外部io设备都挂接在cpu外部总线上。cpu指令单元和cpu内存单元均可以通过cpu接口访问cpu外部io设备。

本申请中的信息快照装置独立于cpu指令单元,仅仅与cpu通用寄存器和cpu内存单元相连接。

当信息快照装置被触发快照后,会从cpu通用寄存器中读取通用寄存器值,并通过cpu内存单元获取系统内存中的堆栈空间数据,再通过cpu内存单元将通用寄存器值和堆栈空间数据写入到异常信息存储介质中。

如果异常信息存储介质集成于cpu内,比如:异常信息存储介质位于cpu内存单元,则信息快照装置可以将通用寄存器值和堆栈空间数据写入cpu内存单元的异常信息存储介质。

如果异常信息存储介质位于cpu外,信息快照装置也可以通过cpu内存单元将通用寄存器值和堆栈空间数据写入cpu外的异常信息存储介质。

因此,信息快照装置在执行信息快照功能时,独立于cpu指令单元,无需cpu执行程序指令,可以完全由硬件逻辑实现信息快照功能。

图4是本申请信息快照方法的一个实施例流程图,该方法应用于cpu,该cpu包括信息快照装置、cpu通用寄存器和cpu内存单元,信息快照装置分别与cpu通用寄存器、cpu内存单元相连接。其中,信息快照装置专门用于对cpu异常现场信息进行快照,且该快照是独立于cpu指令单元的硬件操作。如图4所示,该信息快照方法包括以下步骤410-430:

步骤410,信息快照装置接收看门狗发送的针对异常cpu的快照触发指令。

本申请实施例中,快照触发指令是看门狗检测到出现cpu异常嵌套或cpu访问外部io设备挂死等特殊类型的cpu异常后触发的硬件指令。

cpu软件初始化时,会先使能看门狗,看门狗使能后,看门狗中的计数器开始自动计数,cpu运行的软件程序会不断的清空看门狗定时器。如果在一定时间内看门狗定时器自动计数没有被清空,而达到预设的计数门限,看门狗会判定cpu出现特殊类型的cpu异常,比如:出现cpu异常嵌套或cpu访问外部io设备挂死,此时看门狗会向cpu内部的信息快照装置发送快照触发指令,令信息快照装置对cpu异常现场信息进行快照,并将快照信息保存到异常信息存储介质中,然后等到预设等待时间后,再有效cpu的复位管脚,重启cpu。

其中,预设等待时间要大于信息快照装置对cpu异常现场信息进行快照并将快照信息保存到异常信息存储介质所使用的时间。

上述出现cpu异常嵌套,用于表征当异常发生后,cpu在执行异常处理程序中,cpu又嵌套发生异常这一异常情形。

上述cpu访问外部io设备挂死,用于表征cpu软件在访问cpu外部的io设备时,可能会出现由于io设备的原因导致cpu当前执行的访问io设备的指令挂住(即io设备不响应cpu发起的访问,cpu访问io设备的指令无法执行完成的现象)这一异常情形。

在一实施例中,信息快照装置通过快照触发管脚与看门狗相连接;在信息快照装置接收看门狗发送的针对异常cpu的快照触发指令时,可以包括:

信息快照装置检测到快照触发管脚为有效时,确定接收到看门狗发送的快照触发指令。

本申请实施例中,当看门狗检测到出现cpu异常嵌套或cpu访问外部io设备挂死等特殊类型的cpu异常后,会有效与信息快照装置相连接的快照触发管脚。

步骤420,信息快照装置根据快照触发指令对异常cpu对应的异常现场信息进行快照,得到快照信息,将快照信息保存到异常信息存储介质。

本申请实施例中,对cpu异常现场信息的快照是独立于cpu指令单元的硬件操作。异常cpu对应的异常现场信息可以包括cpu内的通用寄存器值和系统内存中的堆栈空间数据。

另外,异常信息存储介质用于表征能够存储快照信息的存储介质。如果异常信息存储介质集成于cpu内,信息快照装置可以独立于cpu指令单元,通过cpu内存单元将快照信息保存到cpu内的异常信息存储介质;如果异常信息存储介质位于cpu外,信息快照装置也可以独立于cpu指令单元,通过cpu内存单元将快照信息保存到cpu外的异常信息存储介质。

在一实施例中,cpu还包括:cpu接口;cpu内存单元与cpu接口相连接,通过cpu接口访问系统内存;在信息快照装置根据快照触发指令对异常cpu对应的异常现场信息进行快照,得到快照信息时,可以包括:

信息快照装置从cpu通用寄存器读取通用寄存器值,通用寄存器值包括栈指针寄存器值;通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据,通用寄存器值和堆栈空间数据为快照信息。

本申请实施例中,异常cpu内的通用寄存器值保存在cpu通用寄存器,可以直接从cpu通用寄存器读取通用寄存器值,该通用寄存器值包括栈指针寄存器值。

堆栈空间数据保存在系统内存中,可以通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据。

在一实施例中,cpu内存单元还通过cpu接口访问异常信息存储介质;在信息快照装置将快照信息保存到异常信息存储介质时,可以包括:

信息快照装置通过cpu内存单元将快照信息保存到异常信息存储介质中首地址的存储空间。

本申请实施例中,可以通过cpu内存单元将快照信息写入异常信息存储介质中首地址的存储空间,这样便于硬件实现。

由上述实施例可见,通过信息快照装置接收看门狗发送的针对异常cpu的快照触发指令,并根据快照触发指令对异常cpu对应的异常现场信息进行快照,得到快照信息,以及将快照信息保存到异常信息存储介质,以用于远程定位cpu异常的原因,使得信息快照装置专门用于实现异常现场信息的硬件快照,这样可以避免出现特殊类型的异常时不能保存异常现场信息的情形,并有利于维修人员根据快照信息远程定位cpu异常的原因,从而提高了cpu的可维护性和维护效率。

图5是本申请信息快照方法的另一个实施例流程图,该方法应用于cpu,该cpu包括信息快照装置、cpu通用寄存器和cpu内存单元,信息快照装置分别与cpu通用寄存器、cpu内存单元相连接。其中,信息快照装置专门用于对cpu异常现场信息进行快照,且该快照是独立于cpu指令单元的硬件操作。如图5所示,该信息快照方法包括以下步骤510-530:

步骤510,信息快照装置检测快照触发管脚是否有效。其中,信息快照装置通过快照触发管脚与看门狗相连接。

本申请实施例中,当看门狗检测到出现cpu异常嵌套或cpu访问外部io设备挂死等特殊类型的cpu异常后,会有效与信息快照装置相连接的快照触发管脚。

步骤520,当信息快照装置检测到快照触发管脚为有效时,则确定接收到看门狗发送的快照触发指令。

本申请实施例中,看门狗有效快照触发管脚,就是向信息快照装置发送快照触发指令,目的是触发信息快照装置对异常现场信息进行快照,并将快照信息保存到异常信息存储介质。

步骤530,信息快照装置从cpu通用寄存器读取通用寄存器值,该通用寄存器值包括栈指针寄存器值。

本申请实施例中,由于通用寄存器值保存在cpu通用寄存器,信息快照装置可以直接从cpu通用寄存器读取通用寄存器值。其中,通用寄存器值包括栈指针寄存器值。

步骤540,信息快照装置通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据。

本申请实施例中,由于堆栈空间数据在cpu外的系统内存中,信息快照装置可以独立于cpu指令单元,通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据。

步骤550,信息快照装置将快照信息保存到异常信息存储介质中首地址的存储空间,该快照信息包括cpu内的通用寄存器值和系统内存中与栈指针寄存器值对应的堆栈空间数据。

本申请实施例中,可以通过cpu内存单元将快照信息写入异常信息存储介质中首地址的存储空间。

由于cpu硬件执行动作是固定的,此时将存储介质中首地址的存储空间用来存储快照信息,这样便于远程定位cpu异常的原因时可以快速读取快照信息,从而提高了远程定位cpu异常的原因的效率。

由上述实施例可见,当检测到本地快照触发管脚为有效时,则可以读取异常cpu内的通用寄存器值,并根据通用寄存器值包括的栈指针寄存器值获取系统内存中与栈指针寄存器值对应的堆栈空间数据,以及将通用寄存器值和与栈指针寄存器值对应的堆栈空间数据保存到异常信息存储介质中首地址的存储空间,使得信息快照装置可以完全由硬件逻辑实现快照功能,从而提高了远程定位异常原因的效率。

与前述信息快照方法实施例相对应,本申请还提供了信息快照设备的实施例。

参见图6,为本申请信息快照设备的一个实施例框图。如图6所示,信息快照设备包括:cpu,以及分别与该cpu相连接的系统内存、看门狗、和异常信息存储介质。

其中,cpu可以包括信息快照装置、cpu通用寄存器和cpu内存单元,并且信息快照装置分别与cpu通用寄存器、cpu内存单元相连接。并且,信息快照装置用于接收看门狗发送的针对异常cpu的快照触发指令;根据快照触发指令对异常cpu对应的异常现场信息进行快照,得到快照信息;将快照信息保存到异常信息存储介质。

信息快照装置还可以通过快照触发管脚与看门狗相连接。并且,信息快照装置具体用于当检测到快照触发管脚为有效时,确定接收到看门狗发送的快照触发指令。

cpu还可以包括:cpu接口;cpu内存单元与cpu接口相连接,用于通过cpu接口访问系统内存。并且,信息快照装置具体用于从cpu通用寄存器读取通用寄存器值,该通用寄存器值包括栈指针寄存器值;以及通过cpu内存单元获取系统内存中与栈指针寄存器值对应的堆栈空间数据,通用寄存器值和堆栈空间数据为快照信息。

cpu内存单元还用于通过cpu接口访问异常信息存储介质。并且,信息快照装置具体用于通过cpu内存单元将快照信息保存到异常信息存储介质中首地址的存储空间。

由上述实施例可见,cpu内的信息快照装置可以对异常现场信息进行快照,得到快照信息,并将快照信息保存到异常信息存储介质,这样可以避免出现特殊类型的异常时不能保存异常现场信息的情形,从而有利于维修人员根据快照信息远程定位cpu异常的原因,从而提高了cpu的可维护性和维护效率。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1