CN117009129B - 一种错误上报方法、微处理器及计算机设备 - Google Patents

一种错误上报方法、微处理器及计算机设备 Download PDF

Info

Publication number
CN117009129B
CN117009129B CN202311181985.8A CN202311181985A CN117009129B CN 117009129 B CN117009129 B CN 117009129B CN 202311181985 A CN202311181985 A CN 202311181985A CN 117009129 B CN117009129 B CN 117009129B
Authority
CN
China
Prior art keywords
error
functional module
processor core
signal
microprocessor
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
Application number
CN202311181985.8A
Other languages
English (en)
Other versions
CN117009129A (zh
Inventor
窦强
郭御风
吴欢欢
朱青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202311181985.8A priority Critical patent/CN117009129B/zh
Publication of CN117009129A publication Critical patent/CN117009129A/zh
Application granted granted Critical
Publication of CN117009129B publication Critical patent/CN117009129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提出一种错误上报方法、微处理器及计算机设备,所述方法应用于微处理器,所述微处理器包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述方法包括:所述错误上报器在接收到所述功能模块发送的错误信号的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,所述第一中断信号用于表示有功能模块发生了错误。采用该方法能够使处理器核及时获知功能模块发生了错误,从而可以及时对功能模块错误进行修复。

Description

一种错误上报方法、微处理器及计算机设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种错误上报方法、微处理器及计算机设备。
背景技术
微处理器是具有中央处理器功能的大规模集成电路器件,其内部结构除了包括处理器核之外,还包含各种功能模块,比如外设类控制器、片上存储单元、存储类控制器等。
在微处理器运行过程中,功能模块可能会发生错误而出现功能异常,此时需要由处理器核来修复功能模块错误。因此,如何能够使处理器核及时获知功能模块发生错误,是保证各功能模块稳定运行的关键。
发明内容
针对上述技术问题,本申请提出一种错误上报方法、微处理器及计算机设备,能够使处理器核及时获知功能模块发生了错误,从而可以及时对功能模块错误进行修复。
为了达到上述技术目的,本申请具体提出如下技术方案:
本申请第一方面提出一种错误上报方法,应用于微处理器,所述微处理器包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述方法包括:所述错误上报器在接收到所述功能模块发送的错误信号的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,所述第一中断信号用于表示有功能模块发生了错误。
本申请第二方面提出另一种错误上报方法,所述方法应用于微处理器,所述微处理器包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述方法包括:所述处理器核在接收到所述中断控制器发送的第一中断信号的情况下,控制所述功能模块复位;其中,所述第一中断信号,是所述中断控制器在接收到所述错误上报器发送的触发信号的情况下生成的,所述触发信号是所述错误上报器在接收到所述功能模块发送的错误信号的情况下生成的。
本申请第三方面提出一种微处理器,包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述错误上报器被配置为执行上述的由错误上报器执行的错误上报方法,和/或,所述处理器核被配置为执行上述的由处理器核执行的错误上报方法。
本申请第四方面提出一种计算机设备,包括上述的微处理器。
基于上述第一方面至第四方面的任意一项,本申请提出的错误上报方法,在微处理器内部设置错误上报器,该错误上报器在接收到功能模块发送的错误信号后,向中断控制器发送中断信号,中断控制器接收到中断信号后向处理器核发送表示该功能模块发生了错误的中断,从而使得处理器核能够在功能模块发生错误时获知功能模块发生了错误,以便及时对功能模块进行修复。
在一些实现方式中,所述错误上报器中设置有分组状态寄存器和错误记录状态寄存器;所述分组状态寄存器中的第一寄存器位用于存储与所述错误信号对应的错误标识;所述错误记录状态寄存器与所述错误标识相对应,用于记录与所述错误信号对应的错误信息;其中,所述第一寄存器位是与所述错误信号对应的寄存器位,所述错误信息包括错误类型。基于这种实现方式,错误上报器可以实现对错误相关信息的有效记录,并且,当发错误情况较多时,也可以保证错误信息不错乱,保证错误记录有条理、数据准确。
在一些实现方式中,在所述错误信号为多个的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,包括:依次确定每个错误信号各自对应的上报优先级;按照上报优先级由高到低的顺序,依次触发所述中断控制器向所述处理器核发送与各个错误信号对应的第一中断信号。基于这种实现方式,错误上报器可以更加有次序的进行错误上报,保证高优先级的错误优先被上报,从而优先被处理,提高微处理器的错误处理效率。
在一些实现方式中,触发所述中断控制器向所述处理器核发送第一中断信号,包括:判断错误信号对应的错误是否为可纠错误;其中,所述可纠错误用于表征所述错误信号对应的错误可以在所述功能模块运行过程中被纠正;在错误信号对应的错误是可纠错误的情况下,判断已发生的可纠错误的数量是否大于预设数量;在已发生的可纠错误的数量大于预设数量的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,并将已发生的可纠错误的数量清零。在该实现方式中,错误上报器对可纠错误进行识别,并且在可纠错误达到一定数量后才上报,避免了对错误上报资源的浪费,提高了错误上报效率。
在一些实现方式中,所述方法还包括:在已发生的可纠错误的数量不大于所述预设数量的情况下,对已发生的可纠错误的数量进行统计。在该实现方式中,错误上报器对已发生的可纠错误进行统计和记录,能够保证对可纠错误的准确统计,避免由于反复发生可纠错误而引发更严重的处理器错误。
在一些实现方式中,所述处理器核控制所述功能模块复位,包括:所述处理器核访问所述错误上报器的错误分组状态寄存器,获取与所述第一中断信号对应的错误标识,以及,访问所述错误标识对应的错误记录状态寄存器,确定与所述错误上报信号对应的错误信息;所述处理器核根据所述错误信息控制所述功能模块复位。在该实现方式中,处理器核通过访问错误上报器,获得准确的功能模块错误信息,从而能够准确地对发生错误的功能模块进行修复。
在一些实现方式中,所述微处理器还包括MCU和时钟复位模块,所述MCU与所述处理器核连接,所述时钟复位模块与所述MCU连接;所述处理器核控制所述功能模块复位,包括:所述处理器核向所述MCU发送复位指令,以通过所述MCU指示所述时钟复位模块对所述功能模块进行复位。基于该实现方式,处理器核调用微处理器中的时钟复位模块对功能模块进行复位,能够提高复位效率以及降低处理器核的运算压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提出的一种微处理器的结构示意图。
图2为本申请实施例提供的另一种微处理器的结构示意图。
图3为本申请实施例提供的一种错误上报方法的流程示意图。
图4为本申请实施例提供的另一种微处理器的结构示意图。
图5为本申请实施例提供的另一种微处理器的结构示意图。
图6为本申请实施例提供的另一种错误上报方法的流程示意图。
图7-图12为本申请实施例提供的另一些微处理器的结构示意图。
图13为本申请实施例提供的另一种错误上报方法的流程示意图。
图14(a)-图14(c)为本申请实施例提供的另一些微处理器的结构示意图。
图15-图17为本申请实施例提供的一些计算机系统的结构示意图。
图18为申请实施例提供的另一种错误上报方法的流程示意图。
图19为本申请实施例提供的另一种计算机系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
微处理器是具有中央处理器功能的大规模集成电路器件,微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分,它可与存储器和外围电路芯片组成微型计算机。
图1示出了一种微处理器的结构示意图。参见图1可知,在微处理器上首先设置有一个或多个处理器核001,还包括多种不同的功能模块002,比如外设类控制器、片上存储单元、存储类控制器。除此之外,微处理器中还包括中断控制器003,该中断控制器003通过微处理器的地址总线与处理器核001相连,同时,功能模块002与中断控制器003相连,从而形成功能模块002、中断控制器003和处理器核001之间的通路。
其中,处理器核001负责整个微处理器的控制和运算处理,中断控制器003则用于产生中断,并上报给处理器核001,由处理器核001对中断进行处理。中断控制器003产生中断,包括但不限于当业务流程中断、突发事件中断、高优先级事件中断、故障中断等情况发生时产生中断。
在微处理器工作过程中,微处理器上的功能模块002也可能发生错误,比如模块工作程序错误、数据错误等。当功能模块002发生错误时,向中断控制器003发送错误信号,然后由中断控制器003根据功能模块002发送的错误信号,向处理器核001发送中断,使得处理器核001对该中断进行相应处理,修复功能模块002的错误。
但是,在微处理器中,中断控制器003负责对整个微处理器的中断的控制,即,所有类型的中断,都需要由中断控制器003来控制。在这种情况下,功能模块002将错误信号发送给中断控制器003,会进一步增加中断控制器003的工作量,占用中断控制器资源,而且还可能使得由于功能模块002发生错误而产生的中断与其他类型的中断相混杂,导致处理器核001不能及时获知和处理功能模块002的错误,影响微处理器的硬件功能。
为了解决上述技术问题,本申请实施例首先提出一种改进的微处理器,参见图2所示,在本申请实施例提出的微处理器中,包括处理器核001、功能模块002,以及错误上报器004,处理器核001的数量可以为一个或多个,功能模块002的数量也可以为一个或多个,其中,功能模块002中的每一个,分别与错误上报器004相连,错误上报器004通过单独的通路直接与处理器核001相连。上述的错误上报器004可以采用任意的具有数据处理功能的器件添加错误上报功能而实现,比如,可以由处理器执行错误上报功能实现错误上报器,或者通过硬件电路等来执行错误上报程序实现错误上报器。
基于上述的微处理器结构,本申请实施例提出应用于该微处理器的错误上报方法,该方法由该微处理器中的错误上报器004和处理器核001配合执行,也就是说,本申请实施例提出的上述微处理器中,错误上报器004和处理器核001分别被配置为执行如下所述的错误上报方法中的相应执行主体的处理步骤。
参见图3所示,本申请实施例提出的错误上报方法的处理过程包括:
S101、功能模块在发生错误的情况下,向错误上报器发送错误信号。
具体的,在微处理器工作过程中,如果微处理器上的功能模块002,比如外设类控制器、片上存储单元、存储类控制器等功能模块中的一个或多个功能模块发生错误时,会主动向错误上报器004发出错误信号,告知错误上报器004该功能模块发生了错误。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送信号,从而可以使得错误上报器004在获知功能模块002发生错误的同时,确定功能模块002发生的错误的类型。
S102、错误上报器在接收到功能模块发送的错误信号的情况下,向处理器核发送错误上报消息。
其中,上述的错误上报消息用于表示有功能模块发生了错误。
具体的,错误上报器004在接收到功能模块002发送的错误信号时,可以确定功能模块发生了错误,此时,错误上报器004向处理器核001发送错误上报消息,用于通知处理器核001有功能模块发生了错误。
其中,上述的错误上报消息可以采用任意的消息形式或消息内容,在实际实施本申请实施例技术方案时,能够保证处理器核001获知有功能模块发生了错误的任意形式和内容的消息,都可以作为上述的错误上报消息。
在一些实现方式中,在错误上报器004内部还设置有寄存器用于存储功能模块002发生的错误的相关信息。
具体而言,在错误上报器004内部设置有分组状态寄存器和错误记录状态寄存器。其中,分组状态寄存器用于存储错误标识,错误记录状态寄存器用于存储错误信息,在分组状态寄存器中存储错误标识,该错误标识可以是错误编号等,一个错误标识对应一个错误记录状态寄存器,用于存储该错误标识对应的具体错误信息,比如错误类型、错误发生的时间、发生错误的功能模块信息,等。其中,错误类型可以根据不同的分类方式分类为可纠错误、不可纠错误、延迟错误、内部存储器数据错误、外部存储器数据错误、非法地址、非法访问、从设备错误响应、外部超时(如访问其他模块时超时)、内部超时(如访问其他模块时超时)等。
当错误上报器004接收到功能模块002发送的错误信号时,首先根据错误信号,在分组状态寄存器的第一寄存器位存储与该错误信号对应的错误标识,以及,在该错误标识对应的错误记录状态寄存器中存储与该错误信号对应的错误信息,比如存储错误类型等信息。
上述的第一寄存器位,是分组状态寄存器中的、与接收到的错误信号相对应的寄存器位。示例性的,可以预先设置不同的错误信号与错误标识之间的对应关系,当错误上报器004接收到错误信号时,根据预先设置的对应关系,可以确定与错误信号相应的错误标识。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,以及对应不同的错误标识。当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送出错误信号。错误上报器004根据接收错误信号的端口,即可确定错误信号对应的错误标识。
同时,可以预先设置错误信号、错误标识与分组状态寄存器中的寄存器位之间的对应关系。
基于上述的对应关系,当错误上报器004接收到功能模块002发送的错误信号时,可以确定相应的错误类型、错误标识,以及根据上述对应关系确定与该错误信号对应的寄存器位,并将该错误信号对应的错误标识存储至该寄存器位中。然后,错误上报器004将该错误信号对应的错误信息,比如错误类型、发生错误的功能模块、发生错误的时间、次数等,存储至与该错误标识对应的错误记录状态寄存器中。
错误上报器004通过上述的分组状态寄存器和错误记录状态寄存器记录错误相关信息,可以实现对错误相关信息的有效记录,并且,当发错误情况较多时,也可以保证错误信息不错乱,保证错误记录有条理、数据准确。
S103、处理器核在接收到错误上报器发送的错误上报消息的情况下,控制功能模块复位。
具体的,当处理器核001接收到错误上报消息时,可以确定有功能模块发生了错误,此时处理器核001控制该发生错误的功能模块复位。
示例性的,在错误上报器004发送给处理器核001的错误上报消息中,可以携带发生错误的功能模块的信息。处理器核001在接收到错误上报器发送的错误上报消息时,可以根据该错误上报消息中包含的发生错误的功能模块的信息,控制该功能模块复位。
在其他实现方式中,错误上报器通过分组状态寄存器和错误记录状态寄存器来记录错误标识和错误信息。在这种方式中,当处理器核001接收到错误上报器004发送的错误上报消息时,访问错误上报器004中的错误分组状态寄存器,查询该错误分组状态寄存器中存储的错误标识,然后访问与该错误标识对应的错误记录状态寄存器,从中读取与接收到的错误上报消息对应的错误信息。
通过读取上述的错误信息,处理器核001能够确认发生错误的功能模块,然后根据上述的错误信息,控制该功能模块复位。
示例性的,处理器核001和各功能模块002之间可以直接建立通信链路,从而,处理器核001可以通过该通信链路,向发生错误的功能模块发生复位控制信号,控制发生错误的功能模块进行复位。
在另一些实现方式中,参见图4所示,在本申请实施例所提出的微处理器中还包括MCU(Microcontroller Unit,微控制单元)005和时钟复位模块006。其中,MCU005与处理器核001相连,时钟复位模块006与MCU005相连。
MCU005用于对微处理器上的特定模块(被设置为由MCU控制的模块,其中包括时钟复位模块)进行控制、调度。时钟复位模块006用于控制微处理器上的各个功能模块的时钟和复位。
基于图4所示的微处理器结构,当处理器核001控制功能模块复位时,向MCU005发送复位指令,MCU005接收到复位指令后,向时钟复位模块006发送指示信息,指示时钟复位模块006对功能模块进行复位。时钟复位模块006接收到MCU005发送的指示信息后,控制功能模块复位。
通过上述介绍可见,本申请实施例提出的错误上报方法,在微处理器内部设置错误上报器,该错误上报器在接收到功能模块发送的错误信号后,向处理器核发送表示该功能模块发生了错误的错误上报消息,从而使得处理器核能够在功能模块发生错误时获知功能模块发生了错误,以便及时对功能模块进行修复。
基于上述任意实施例所介绍的错误上报方法,本申请实施例所提出的如图2所示的微处理器,通过配置错误上报器004,设置微处理器中的错误上报器004和处理器核001分别执行上述错误上报方法中的相应执行主体的处理步骤,使得该微处理器具有更高的错误上报效率,以及具有更高的错误修复效率。
基于上述的微处理器,还可以构建得到任意包含该微处理器的计算机设备,比如个人计算机、工业计算机、智能终端、手持终端、智能可穿戴设备、服务器等。
在另一些实施例中,还提出另一种微处理器,参见图5所示,该微处理器包括处理器核001、功能模块002、中断控制器003,以及错误上报器004。处理器核001的数量可以为一个或多个,功能模块002的数量也可以为一个或多个,其中,功能模块002中的每一个,分别与错误上报器004相连,错误上报器004与中断控制器003相连,中断控制器003通过地址总线与处理器核001相连。
上述的错误上报器004可以采用任意的具有数据处理功能的器件添加错误上报功能而实现,比如,可以由处理器执行错误上报功能实现错误上报器,或者通过硬件电路等来执行错误上报程序实现错误上报器。
基于上述的微处理器结构,本申请实施例提出应用于该微处理器的错误上报方法,该方法由该微处理器中的错误上报器004、处理器核001和中断控制器003配合执行,也就是说,本申请实施例提出的上述微处理器中,错误上报器004、处理器核001和中断控制器003分别被配置为执行如下所述的错误上报方法中的相应执行主体的处理步骤。
参见图6所示,本申请实施例提出的错误上报方法的处理过程包括:
S201、功能模块在发生错误的情况下,向错误上报器发送错误信号。
具体的,在微处理器工作过程中,如果微处理器上的功能模块002发生错误,比如外设类控制器、片上存储单元、存储类控制器等功能模块中的一个或多个功能模块发生错误时,功能模块002会主动向错误上报器004发出错误信号,告知错误上报器004该功能模块发生了错误。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送信号,从而可以使得错误上报器004在获知功能模块002发生错误的同时,确定功能模块002发生的错误的类型。
S202、错误上报器在接收到功能模块发送的错误信号的情况下,触发中断控制器向处理器核发送第一中断信号。
其中,该第一中断信号用于表示有功能模块发生了错误。
具体的,错误上报器004在接收到功能模块002发送的错误信号时,可以确定功能模块发生了错误,同时可以确定是哪个功能模块发生了错误。此时,错误上报器004向中断控制器003发送错误触发信号,该错误触发信号用于告知中断控制器003有功能模块发生了错误,并且触发中断控制器003向处理器核001发送中断信号,以便使处理器核001获知有功能模块发生了错误。
其中,错误上报器004发送给中断控制器003的错误触发信号,可以采用任意的信号形式或信号内容,在实际实施本申请实施例技术方案时,能够保证中断控制器003获知有功能模块发生了错误的任意形式和内容的信号,都可以作为上述的错误触发信号。
在一些实现方式中,在错误上报器004内部还设置有寄存器用于存储功能模块002发生的错误的相关信息。
具体而言,在错误上报器004内部设置有分组状态寄存器和错误记录状态寄存器。其中,分组状态寄存器用于存储错误标识,错误记录状态寄存器用于存储错误信息,在分组状态寄存器中存储错误标识,该错误标识可以是错误编号等,一个错误标识对应一个错误记录状态寄存器,用于存储该错误标识对应的具体错误信息,比如错误类型、错误发生的时间、发生错误的功能模块信息,等。其中,错误类型可以根据不同的分类方式分类为可纠错误、不可纠错误、延迟错误、内部存储器数据错误、外部存储器数据错误、非法地址、非法访问、从设备错误响应、外部超时(如访问其他模块时超时)、内部超时(如访问其他模块时超时)等。
当错误上报器004接收到功能模块002发送的错误信号时,首先根据错误信号解析错误类型,确定相应的错误标识,然后在分组状态寄存器的第一寄存器位存储与该错误信号对应的错误标识,以及,在该错误标识对应的错误记录状态寄存器中存储与该错误信号对应的错误信息,比如存储错误类型等信息。
上述的第一寄存器位,是分组状态寄存器中的、与接收到的错误信号相对应的寄存器位。示例性的,可以预先设置不同的错误信号与错误标识之间的对应关系,当错误上报器004接收到错误信号时,根据预先设置的对应关系,可以确定与错误信号相应的错误标识。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,以及对应不同的错误标识。当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送出错误信号。错误上报器004根据接收错误信号的端口,即可确定错误信号对应的错误标识。
同时,可以预先设置错误信号、错误标识与分组状态寄存器中的寄存器位之间的对应关系。
基于上述的对应关系,当错误上报器004接收到功能模块002发送的错误信号时,可以确定相应的错误类型、错误标识,以及根据上述对应关系确定与该错误信号对应的寄存器位,并将该错误信号对应的错误标识存储至该寄存器位中。然后,错误上报器004将该错误信号对应的错误信息,比如错误类型、发生错误的功能模块、发生错误的时间、次数等,存储至与该错误标识对应的错误记录状态寄存器中。
错误上报器004通过上述的分组状态寄存器和错误记录状态寄存器记录错误相关信息,可以实现对错误相关信息的有效记录,并且,当发错误情况较多时,也可以保证错误信息不错乱,保证错误记录有条理、数据准确。
S203、中断控制器响应于错误上报器的触发,向处理器核发送第一中断信号。
具体的,中断控制器003在接收到错误上报器004发送的错误触发信号时,向处理器核001发起中断,具体是向处理器核001发送第一中断信号,该第一中断信号具体是一个错误中断信号,其用于表示有功能模块发生了错误。
S204、处理器核在接收到中断控制器发送的第一中断信号的情况下,控制功能模块复位。
具体的,当处理器核001接收到第一中断信号时,可以确定有功能模块发发生了错误,此时处理器核001控制该发生错误的功能模块复位。其中,处理器核001控制该发生错误的功能模块复位,可以是处理器核001直接向发生错误的功能模块发送复位信号,使发生错误的功能模块复位,或者,也可以是处理器核001控制其他模块向发生错误的功能模块发送复位信号,时发生错误的功能模块复位。
示例性的,在错误上报器004发送给中断控制器003的错误触发信号中,可以携带发生错误的功能模块的信息,当中断控制器003接收到该错误触发信号后,可以在发送给处理器核001的第一中断信号中,也携带发生错误的功能模块的信息。因此,处理器核001在接收到中断控制器003发送的第一中断信号时,可以根据该中断控制信号中包含的发生错误的功能模块的信息,控制该功能模块复位。
在其他实现方式中,错误上报器004通过分组状态寄存器和错误记录状态寄存器来记录错误标识和错误信息。在这种方式中,当处理器核001接收到中断控制器003发送的第一中断信号时,访问错误上报器004中的错误分组状态寄存器,查询该错误分组状态寄存器中存储的错误标识,然后访问与该错误标识对应的错误记录状态寄存器,从中读取与接收到的第一中断信号对应的错误信息,也就是读取具体的错误信息。
通过读取上述的错误信息,处理器核001能够确认发生错误的功能模块,然后根据上述的错误信息,控制该功能模块复位。
示例性的,处理器核001和各功能模块002之间可以直接建立通信链路,从而,处理器核001可以通过该通信链路,向发生错误的功能模块发出复位控制信号,控制发生错误的功能模块进行复位。
在另一些实现方式中,参见图7所示,在本申请实施例所提出的微处理器中还包括微控制单元MCU(Microcontroller Unit)005和时钟复位模块006。其中,MCU005与处理器核001相连,时钟复位模块006与MCU005相连。
MCU005用于对微处理器上的特定模块(被设置为由MCU控制的模块,其中包括时钟复位模块)进行控制、调度。时钟复位模块006用于控制微处理器上的各个功能模块的时钟和复位。
基于图7所示的微处理器结构,当处理器核001控制功能模块复位时,向MCU005发送复位指令,MCU005接收到复位指令后,向时钟复位模块006发送指示信息,指示时钟复位模块006对功能模块进行复位。时钟复位模块006接收到MCU005发送的指示信息后,控制功能模块复位。
通过上述介绍可见,本申请实施例提出的错误上报方法,在微处理器内部设置错误上报器,该错误上报器在接收到功能模块发送的错误信号后,向处理器核发送表示该功能模块发生了错误的错误上报消息,从而使得处理器核能够在功能模块发生错误时获知功能模块发生了错误,以便及时对功能模块进行修复。
基于上述的错误上报方法,本申请实施例所提出的如图5所示的微处理器,通过配置错误上报器004,设置微处理器中的错误上报器004、中断控制器003和处理器核001分别执行上述错误上报方法中的相应执行主体的处理步骤,使得该微处理器具有更高的错误上报效率,以及具有更高的错误修复效率。
基于上述的微处理器,还可以构建得到任意包含该微处理器的计算机设备,比如个人计算机、工业计算机、智能终端、手持终端、智能可穿戴设备、服务器等。
在实际应用本申请实施例所提出的错误上报方法时,可以选择通过图2所示的微处理器结构实施如图3所示的错误上报方法,也可以选择通过图5所示的微处理器结构实施如图6所示的错误上报方法。
在另一些实施例中,可以将图2所示的微处理器结构与图5所示的微处理器结构相融合,得到图8所示的微处理器。在该微处理器中,包含处理器核001、功能模块002、错误上报器004、中断控制器003。
其中,功能模块002中的每一个分别与错误上报器004相连,错误上报器004与处理器核001通过错误上报通路1相连,同时,错误上报器004与中断控制器003通过错误上报通路2相连,中断控制器003通过地址总线与处理器核001相连。
上述的处理器核001、功能模块002、错误上报器004、中断控制器003的具体功能和设置,可以参见上述实施例的介绍,此处不再重复。
参见图8所示的微处理器可知,在该微处理器中,包含了两条错误上报通路,分别为错误上报器004和处理器核001构成的错误上报通路1,以及错误上报器004、中断控制器003和处理器核001构成的错误上报通路2。基于上述的错误上报通路1,错误上报器004和处理器核001通过执行上述实施例介绍的图3所示的错误上报方法,实现错误上报器004直接向处理器核001上报错误;基于上述的错误上报通路2,错误上报器004、中断控制器003以及处理器核001通过执行上述实施例介绍的图6所示的错误上报方法,实现错误上报器004通过中断控制器003间接向处理器核001上报错误。
基于图8所示的微处理器,错误上报器004可以灵活选择通过错误上报通路1向处理器核001上报错误,或者是通过错误上报通路2向处理器核001上报错误。错误上报器004在选择是通过错误上报通路1还是通过错误上报通路2向处理器核001上报错误时,可以根据预先设置的通路选择规则进行选择,比如按照通路选择规则,当规则规定需要通过错误上报通路1进行错误上报时,错误上报器004只能通过错误上报通路1向处理器核001上报错误,当规则规定需要通过错误上报通路2进行错误上报时,错误上报器004只能通过错误上报通路2向处理器核001上报错误。上述的通路选择规则,可以实时调整,或者可以按照设定规则进行更新设置。
或者,错误上报器004也可以根据实时的处理器资源选择通过错误上报通路1或者是通过错误上报通路2进行错误上报。比如,当中断控制器003的处理资源紧张时,错误上报器004可以通过错误上报通路1直接向处理器核001上报错误,当中断控制器003的处理资源充足时,错误上报器004可以通过错误上报通路2向处理器核001上报错误。
在其他实现方式中,错误上报器004还可以对待上报的错误进行优先级分级,按照待上报的错误的分级结果来选择是通过错误上报通路1进行上报,还是通过错误上报通路2进行上报。
具体而言,错误上报器004按照功能模块所发生的错误的类型、紧急程度等,对待上报的错误进行优先级分级,功能模块所发生的错误的类型越严重、紧急程度越紧急,则其优先级越高,反之其优先级越低。然后,错误上报器004按照待上报错误的分级结果,选择错误上报通路。其选择原则是,待上报错误的优先级越高,则优先选择通过错误上报通路1进行上报,以便处理器核001能够更加快速地进行错误修复;相反,待上报错误的优先级越低,则优先选择通过错误上报通路2进行上报,避免频繁抢占处理器核001的处理资源,增加处理器核001的工作压力。
在图8所示的微处理器中,处理器核001与功能模块002之间具有通信链路,从而处理器核001能够通过该通信链路,对功能模块002进行复位。
在一些实现方式中,基于图8所示微处理器,还可以构建出图9所示的微处理器,在该微处理器中,还包括MCU(Microcontroller Unit,微控制单元)005和时钟复位模块006。其中,MCU005与处理器核001相连,时钟复位模块006与MCU005相连。
MCU005用于对微处理器上的特定模块(被设置为由MCU控制的模块,其中包括时钟复位模块)进行控制、调度。时钟复位模块006用于控制微处理器上的各个功能模块的时钟和复位。
基于图9所示的微处理器结构,当处理器核001控制功能模块复位时,向MCU005发送复位指令,MCU005接收到复位指令后,向时钟复位模块006发送指示信息,指示时钟复位模块006对功能模块进行复位。时钟复位模块006接收到MCU005发送的指示信息后,控制功能模块复位。
在上述的微处理器中,错误上报器004、中断控制器003和处理器核001在执行上述的错误上报方法时的具体处理过程,可参见上述的错误上报方法的实施例的介绍。
通过上述介绍可见,本申请实施例提出的错误上报方法,在微处理器内部设置错误上报器,该错误上报器在接收到功能模块发送的错误信号后,向处理器核发送表示该功能模块发生了错误的错误上报消息,或者触发中断控制器向处理器核发送表示该功能模块发生了错误的第一中断信息,从而使得处理器核能够在功能模块发生错误时获知功能模块发生了错误,以便及时对功能模块进行修复。
基于上述的错误上报方法,本申请实施例所提出的如图8所示的微处理器,通过配置错误上报器004,设置微处理器中的错误上报器004、中断控制器003和处理器核001分别执行上述错误上报方法中的相应执行主体的处理步骤,使得该微处理器具有更高的错误上报效率,以及具有更高的错误修复效率。
基于上述的微处理器,还可以构建得到任意包含该微处理器的计算机设备,比如个人计算机、工业计算机、智能终端、手持终端、智能可穿戴设备、服务器等。
通过上述介绍可知,本申请实施例提出的各种微处理器内部设置了错误上报器004,并且建立了错误上报器004与处理器核001之间的错误上报通路,使得错误上报器004能够对微处理器中发生的各种功能模块错误进行收集、记录、上报等。
但是在某些情况下,错误上报器004与处理器核001之间的错误上报通路可能出现异常,从而导致错误上报器004无法向处理器核001上报错误,也就无法使处理器001获知功能模块错误,以及无法使发生错误的功能模块得到修复。其中,错误上报器004与处理器核001之间的错误上报通路异常,包括但不限于是错误上报器004与处理器核001之间的通信链路中断、或者错误上报器004与处理器核001之间的错误上报通路上的器件故障,或者处理器核001故障。
比如,在图8所述的微处理器结构中,错误上报通路1可能会发生异常,比如该通路的通信链路中断或者处理器核001故障;以及,错误上报通路2也可能会发生异常,比如该通路的通信链路中断或者中断控制器003故障,或者处理器核001故障等。
当发生上述的错误上报通路异常情况时,会导致错误上报器004无法有效上报错误。比如,在图2所示的微处理器结构中,当错误上报通路异常时,错误上报器004无法上报错误;在图5所示的微处理器结构中,当错误上报通路异常时,也会导致错误上报器004无法上报错误;在图8所示的微处理器结构中,当错误上报通路1和错误上报通路2均异常时,错误上报器004同样无法上报错误。
针对上述技术问题,本申请实施例进一步提出另一种新的微处理器,该微处理器包括功能模块002、错误上报器004和MCU(Microcontroller Unit,微控制单元)005。其中,功能模块002与错误上报器004相连,错误上报器004与MCU005相连。上述的功能模块002、错误上报器004和MCU005的具体功能和相关介绍,可参见上述实施例的相关介绍。
上述的微处理器结构可以应用于图2所示的微处理器,从而得到如图10所示的微处理器结构,或者应用于图5所示的微处理器,从而得到如图11所示的微处理器结构,或者应用于图8所示的微处理器,从而得到如图12所示的微处理器结构。
基于图10、图11、图12所示的微处理器中的任意一个或多个,本申请提出一种适用于这些微处理器的错误上报方法,参见图13所示,该方法包括:
S301、功能模块在发生错误的情况下,向错误上报器发送错误信号。
具体的,在微处理器工作过程中,如果微处理器上的功能模块002发生错误,比如外设类控制器、片上存储单元、存储类控制器等功能模块中的一个或多个功能模块发生错误时,功能模块002会主动向错误上报器004发出错误信号,告知错误上报器004该功能模块发生了错误。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送信号,从而可以使得错误上报器004在获知功能模块002发生错误的同时,确定功能模块002发生的错误的类型。
S302、错误上报器在接收到功能模块发送的错误信号的情况下,向MCU发送错误上报消息。其中,所述错误上报消息用于表示有功能模块发生了错误。
具体的,错误上报器004在接收到功能模块002发送的错误信号时,可以确定功能模块发生了错误,同时可以确定是哪个功能模块发生了错误。此时,错误上报器004向MCU005发送错误上报消息,用于通知MCU005有功能模块发生了错误。
其中,上述的错误上报消息可以采用任意的消息形式或消息内容,在实际实施本申请实施例技术方案时,能够保证MCU005获知有功能模块发生了错误的任意形式和内容的消息,都可以作为上述的错误上报消息。
在一些实现方式中,在微处理器中包括处理器核001,并且错误上报器004与该处理器核001相连的场景下,比如在图10和图12所示的微处理器中,错误上报器004在接收到功能模块发送的错误信号的情况下,除了向MCU005发送错误上报消息之外,还向处理器核001发送错误上报消息。错误上报器004向处理器核001发送的错误上报消息,用于告知处理器核001有功能模块发生了错误。错误上报器004向MCU005发送错误上报消息,以及向处理器核001发送的错误上报消息,两者的消息形式、消息内容可以相同,也可以不同。
在一些实现方式中,在微处理器中包括处理器核001和中断控制器003,并且错误上报器004与中断控制器003相连,中断控制器003与处理器核001相连的场景下,比如在图11和图12所示的微处理器中,错误上报器004在接收到功能模块发送的错误信号的情况下,除了向MCU005发送错误上报消息之外,还触发中断控制器003向处理器核001发送用于表示有功能模块发生了错误的第一中断信号,从而使处理器核001也能够获知有功能模块发生了错误。
基于上述两种实现方式,错误上报器004在接收到功能模块发送的错误信号的情况下,会同时向处理器核001和MCU005发送消息。
在一些实现方式中,在错误上报器004内部还设置有寄存器用于存储功能模块002发生的错误的相关信息。
具体而言,在错误上报器004内部设置有分组状态寄存器和错误记录状态寄存器。其中,分组状态寄存器用于存储错误标识,错误记录状态寄存器用于存储错误信息,在分组状态寄存器中,用于存储错误标识,该错误标识可以是错误编号等,一个错误标识对应一个错误记录状态寄存器,用于存储该错误标识对应的具体错误信息,比如错误类型、错误发生的时间、发生错误的功能模块信息,等。其中,错误类型可以包括可纠错误、不可纠错误、延迟错误、内部存储器数据错误、外部存储器数据错误、非法地址、非法访问、从设备错误响应、外部超时(如访问其他模块时超时)、内部超时(如访问其他模块时超时)等。
当错误上报器004接收到功能模块002发送的错误信号时,首先根据错误信号解析错误类型,确定相应的错误标识,然后在分组状态寄存器的第一寄存器位存储与该错误信号对应的错误标识,以及,在该错误标识对应的错误记录状态寄存器中存储与该错误信号对应的错误信息,比如存储错误类型等信息。
上述的第一寄存器位,是分组状态寄存器中的、与接收到的错误信号相对应的寄存器位。示例性的,可以预先设置不同的错误信号与错误标识之间的对应关系,当错误上报器004接收到错误信号时,根据预先设置的对应关系,可以确定与错误信号相应的错误标识。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,以及对应不同的错误标识。当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送出错误信号。错误上报器004根据接收错误信号的端口,即可确定错误信号对应的错误标识。
同时,可以预先设置错误信号、错误标识与分组状态寄存器中的寄存器位之间的对应关系。
基于上述的对应关系,当错误上报器004接收到功能模块002发送的错误信号时,可以确定相应的错误类型、错误标识,以及根据上述对应关系确定与该错误信号对应的寄存器位,并将该错误信号对应的错误标识存储至该寄存器位中。然后,错误上报器004将该错误信号对应的错误信息,比如错误类型、发生错误的功能模块、发生错误的时间、次数等,存储至与该错误标识对应的错误记录状态寄存器中。
错误上报器004通过上述的分组状态寄存器和错误记录状态寄存器记录错误相关信息,可以实现对错误相关信息的有效记录,并且,当发错误情况较多时,也可以保证错误信息不错乱,保证错误记录有条理、数据准确。
S303、MCU接收错误上报器发送的错误上报消息,并检测该错误上报消息在设定时长内是否被处理。
具体的,参见上述介绍可知,错误上报器004在向MCU005发送错误上报消息的同时,也会向处理器核001发送错误上报消息,或者触发中断控制器003向处理器核001发送第一中断消息,从而使处理器核001也获知有功能模块发生了错误。
若处理器核001能够成功接收到错误上报消息或第一中断消息,并且处理器核001的功能和运算资源正常,则处理器核001可以对发生错误的功能模块进行修复,也就是处理错误上报消息或第一中断消息。
但是,在错误上报器004与处理器核001之间的错误上报通路异常,或者处理器核001异常的情况下,处理器核001无法对发生错误的功能模块进行修复。在这种情况下,本申请实施例设置由MCU005检测错误上报消息是否被及时处理,并且在错误上报消息没有被及时处理时,由MCU005对错误功能模块进行修复。
MCU005在接收到错误上报器004发送的错误上报消息时,以接收到该错误上报消息的时刻为起始时刻,判断从该起始时刻开始的设定时长内,该错误上报消息是否被处理。
在一些实现方式中,MCU005通过检测MCU005与错误上报器004之间的连接通路上的电平信号,来判断错误上报消息是否被处理。
具体而言,当错误上报器004向MCU005发送错误上报消息时,会将MCU005与错误上报器004之间的连接通路上的电平拉高形成高电平信号。当错误上报器004检测到发送给处理器核001的错误上报消息被处理,比如处理器核001成功接收了错误上报消息,或者处理器核001将接收的错误上报消息加入消息处理队列,则错误上报器004可以确认该错误上报消息被处理器核001处理,此时错误上报器004可以撤销向MCU005发送的错误上报消息,从而使MCU005与错误上报器004之间的连接通路上的高电平信号出现下降沿,变为低电平信号。
因此,MCU005可以通过检测MCU005与错误上报器004之间的连接通路上的电平信号,来判断在接收到错误上报消息后,该错误上报消息在设定时长内是否被处理。在MCU005接收到错误上报消息对应的高电平信号后,如果在设定时长内,MCU005与错误上报器004之间的连接通路上的高电平信号出现下降沿,则说明在设定时长内该错误上报消息被处理;若在设定时长内,MCU005与错误上报器004之间的连接通路上的高电平信号没有出现下降沿,则说明在设定时长内该错误上报消息没有被处理。
S304、MCU在检测到错误上报消息在设定时长内没有被处理的情况下,控制功能模块复位。
经过步骤S303的判断,若MCU005确认在接收到错误上报消息之后的设定时长内,该错误上报消息没有被处理,则MCU005对该错误上报消息进行处理,从而避免在错误上报器004与处理器核001之间的错误上报通路异常的情况下,影响对功能模块错误的及时修复,从而导致微处理器功能问题。
当MCU005检测到接收的错误上报消息在设定时长内没有被处理,则MCU005控制发生错误的功能模块复位。
示例性的,在错误上报器004发送给MCU005的错误上报消息中,可以携带发生错误的功能模块的信息。MCU005在接收到错误上报器发送的错误上报消息时,可以根据该错误上报消息中包含的发生错误的功能模块的信息,控制该功能模块复位。
在其他实现方式中,错误上报器004通过分组状态寄存器和错误记录状态寄存器来记录错误标识和错误信息。在这种方式中,当MCU005接收到错误上报器004发送的错误上报消息时,访问错误上报器004中的错误分组状态寄存器,查询该错误分组状态寄存器中存储的错误标识,然后访问与该错误标识对应的错误记录状态寄存器,从中读取与接收到的错误上报消息对应的错误信息。
通过读取上述的错误信息,MCU005能够确认发生错误的功能模块,然后根据上述的错误信息,控制该功能模块复位。
示例性的,MCU005和各功能模块002之间可以直接建立通信链路,从而,MCU005可以通过该通信链路,向发生错误的功能模块发出复位控制信号,控制发生错误的功能模块进行复位。
在另一些实现方式中,基于图10、图11、图12所示的微处理器,还可以在微处理器中设置时钟复位模块006,该时钟复位模块006与MCU005相连,得到图14(a)、图14(b)、图14(c)所示的微处理器。MCU005用于对微处理器上的特定模块(被设置为由MCU控制的模块,其中包括时钟复位模块)进行控制、调度。时钟复位模块006用于控制微处理器上的各个功能模块的时钟和复位。
基于图14(a)、图14(b)、图14(c)所示的微处理器结构,当MCU005控制功能模块复位时,向时钟复位模块006发送指示信息,指示时钟复位模块006对功能模块进行复位。时钟复位模块006接收到MCU005发送的指示信息后,控制功能模块复位。
通过上述介绍可见,本申请实施例提出的错误上报方法,在微处理器内部设置错误上报器,该错误上报器在接收到功能模块发送的错误信号后,向微处理器中的MCU发送错误上报消息,MCU在检测到所述错误上报消息在设定时长内没有被处理的情况下,控制所述功能模块复位。上述方案使得在微处理器的功能模块发生错误的并且未被及时修复的情况下,包括在功能模块与处理器核之间的错误上报通路异常的情况下,能够借助MCU来对功能模块进行复位,从而能够及时修复功能模块,避免由于功能模块不能及时得到修复而引发更严重的处理器异常。
基于上述实施例所介绍的错误上报方法,本申请实施例所提出的如图10、图11、图12所示的微处理器,通过配置错误上报器004,设置微处理器中的错误上报器004和MCU005分别执行上述错误上报方法中的相应执行主体的处理步骤,使得该微处理器具有更高的错误上报效率,以及具有更高的错误修复效率。
基于上述的微处理器,还可以构建得到任意包含该微处理器的计算机设备,比如个人计算机、工业计算机、智能终端、手持终端、智能可穿戴设备、服务器等。
在上述实施例中,构建了如图10、图11、图12所示的微处理器结构,基于这些微处理器结构,通过错误上报器004与MCU005之间的错误上报通路,实现了对错误上报器004与处理器核001之间的错误上报通路的备份,即,当错误上报器004与处理器核001之间的错误上报通路异常时,可以通过错误上报器004与MCU005之间的通路,将错误上报消息发送给MCU005,由MCU005来代替处理器核001对发生错误的功能模块进行复位。
但是,在某些情况下,错误上报器004与MCU005之间的通路也可能异常,从而发生错误上报器004没有任何通路发出错误上报信号的情况。比如在图10、图11、图12所示的微处理器中,错误上报器001与处理器核001之间的通路、与MCU005之间的通路可能同时发生异常,在这种情况下,微处理器内部完全无法实现功能模块错误处理。
针对上述技术问题,本申请实施例进一步提出了另一种错误上报方法,以及提出了用于执行该错误上报方法的计算机系统。
该计算机系统包括微处理器和现场可编程门阵列(FPGA,Field ProgrammableGate Array)单元007,其中,微处理器包括功能模块002和错误上报器004,功能模块002与错误上报器004相连,错误上报器004与现场可编程门阵列单元007相连。上述的功能模块002和错误上报器004的具体功能和相关介绍,可参见上述实施例的相关介绍。
上述的现场可编程门阵列单元007为运行错误上报程序、具有错误上报功能的FPGA硬件模块。示例性的,现场可编程门阵列单元007与错误上报器004通过微处理器的引脚相连。可以理解,该现场可编程门阵列单元007是设置在微处理器之外的硬件模块。
上述的计算机系统结构可以应用于图10所示的微处理器,从而得到如图15所示的计算机系统结构,或者应用于图11所示的微处理器,从而得到如图16所示的计算机系统结构,或者应用于图12所示的微处理器,从而得到如图17所示的计算机系统结构。
基于图15、图16、图17所示的计算机系统中的任意一个或多个,本申请实施例提出一种适用于这些计算机系统的错误上报方法,参见图18所示,该方法包括:
S401、功能模块在发生错误的情况下,向错误上报器发送错误信号。
具体的,在微处理器工作过程中,如果微处理器上的功能模块002发生错误,比如外设类控制器、片上存储单元、存储类控制器等功能模块中的一个或多个功能模块发生错误时,功能模块002会主动向错误上报器004发出错误信号,告知错误上报器004该功能模块发生了错误。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送信号,从而可以使得错误上报器004在获知功能模块002发生错误的同时,确定功能模块002发生的错误的类型。
S402、错误上报器在接收到功能模块发送的错误信号的情况下,向现场可编程门阵列单元发送错误上报消息。其中,该错误上报消息用于表示有功能模块发生了错误。
具体的,错误上报器004在接收到功能模块002发送的错误信号时,可以确定功能模块发生了错误,同时可以确定是哪个功能模块发生了错误。此时,错误上报器004向现场可编程门阵列单元007发送错误上报消息,用于通知现场可编程门阵列单元007有功能模块发生了错误。
其中,上述的错误上报消息可以采用任意的消息形式或消息内容,在实际实施本申请实施例技术方案时,能够保证现场可编程门阵列单元007获知有功能模块发生了错误的任意形式和内容的消息,都可以作为上述的错误上报消息。
在一些实现方式中,在微处理器中包括处理器核001,并且错误上报器004与该处理器核001相连的场景下,比如在图15和图17所示的计算机系统中,错误上报器004在接收到功能模块发送的错误信号的情况下,除了向现场可编程门阵列单元007发送错误上报消息之外,还向处理器核001发送错误上报消息。错误上报器004向处理器核001发送的错误上报消息,用于告知处理器核001有功能模块发生了错误。错误上报器004向现场可编程门阵列单元007发送错误上报消息,以及向处理器核001发送的错误上报消息,两者的消息形式、消息内容可以相同,也可以不同。
在一些实现方式中,在微处理器中包括处理器核001和中断控制器003,并且错误上报器004与中断控制器003相连,中断控制器003与处理器核001相连的场景下,比如在图16和图17所示的计算机系统中,错误上报器004在接收到功能模块发送的错误信号的情况下,除了向现场可编程门阵列单元007发送错误上报消息之外,还触发中断控制器003向处理器核001发送用于表示有功能模块发生了错误的第一中断信号,从而使处理器核001也能够获知有功能模块发生了错误。
基于上述两种实现方式,错误上报器004在接收到功能模块发送的错误信号的情况下,会同时向处理器核001和现场可编程门阵列单元007发送消息。
在一些实现方式中,在错误上报器004内部还设置有寄存器用于存储功能模块002发生的错误的相关信息。
具体而言,在错误上报器004内部设置有分组状态寄存器和错误记录状态寄存器。其中,分组状态寄存器用于存储错误标识,错误记录状态寄存器用于存储错误信息,在分组状态寄存器中,用于存储错误标识,该错误标识可以是错误编号等,一个错误标识对应一个错误记录状态寄存器,用于存储该错误标识对应的具体错误信息,比如错误类型、错误发生的时间、发生错误的功能模块信息,等。其中,错误类型可以包括可纠错误、不可纠错误、延迟错误、内部存储器数据错误、外部存储器数据错误、非法地址、非法访问、从设备错误响应、外部超时(如访问其他模块时超时)、内部超时(如访问其他模块时超时)等。
当错误上报器004接收到功能模块002发送的错误信号时,首先根据错误信号解析错误类型,确定相应的错误标识,然后在分组状态寄存器的第一寄存器位存储与该错误信号对应的错误标识,以及,在该错误标识对应的错误记录状态寄存器中存储与该错误信号对应的错误信息,比如存储错误类型等信息。
上述的第一寄存器位,是分组状态寄存器中的、与接收到的错误信号相对应的寄存器位。示例性的,可以预先设置不同的错误信号与错误标识之间的对应关系,当错误上报器004接收到错误信号时,根据预先设置的对应关系,可以确定与错误信号相应的错误标识。
在一些实现方式中,功能模块002与错误上报器004之间通过多个端口连接,其中,不同的端口对应不同类型的错误,以及对应不同的错误标识。当功能模块002发生某种类型的错误时,通过与发生错误的类型相对应的端口向错误上报器004发送出错误信号。错误上报器004根据接收错误信号的端口,即可确定错误信号对应的错误标识。
同时,可以预先设置错误信号、错误标识与分组状态寄存器中的寄存器位之间的对应关系。
基于上述的对应关系,当错误上报器004接收到功能模块002发送的错误信号时,可以确定相应的错误类型、错误标识,以及根据上述对应关系确定与该错误信号对应的寄存器位,并将该错误信号对应的错误标识存储至该寄存器位中。然后,错误上报器004将该错误信号对应的错误信息,比如错误类型、发生错误的功能模块、发生错误的时间、次数等,存储至与该错误标识对应的错误记录状态寄存器中。
错误上报器004通过上述的分组状态寄存器和错误记录状态寄存器记录错误相关信息,可以实现对错误相关信息的有效记录,并且,当发错误情况较多时,也可以保证错误信息不错乱,保证错误记录有条理、数据准确。
S403、现场可编程门阵列单元接收错误上报器发送的错误上报消息,并检测该错误上报消息在设定时长内是否被处理。
具体的,参见上述介绍可知,错误上报器004在向现场可编程门阵列单元007发送错误上报消息的同时,也会向处理器核001发送错误上报消息,或者触发中断控制器003向处理器核001发送第一中断消息,从而使处理器核001也获知有功能模块发生了错误。
若处理器核001能够成功接收到错误上报消息或第一中断消息,并且处理器核001的功能和运算资源正常,则处理器核001可以对发生错误的功能模块进行修复,也就是处理错误上报消息或第一中断消息。
但是,在错误上报器004与处理器核001之间的错误上报通路异常,或者处理器核001异常的情况下,处理器核001无法对发生错误的功能模块进行修复。在这种情况下,本申请实施例设置由现场可编程门阵列单元007检测错误上报消息是否被及时处理,并且在错误上报消息没有被及时处理时,由现场可编程门阵列单元007主动触发对错误功能模块的修复。
现场可编程门阵列单元007在接收到错误上报器004发送的错误上报消息时,以接收到该错误上报消息的时刻为起始时刻,判断从该起始时刻开始的设定时长内,该错误上报消息是否被处理。
在一些实现方式中,现场可编程门阵列单元007通过检测现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的电平信号,来判断错误上报消息是否被处理。
具体而言,当错误上报器004向现场可编程门阵列单元007发送错误上报消息时,会将现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的电平拉高形成高电平信号。当错误上报器004检测到发送给处理器核001的错误上报消息被处理,比如处理器核001成功接收了错误上报消息,或者处理器核001将接收的错误上报消息加入消息处理队列,则错误上报器004可以确认该错误上报消息被处理器核001处理,此时错误上报器004可以撤销向现场可编程门阵列单元007发送的错误上报消息,从而使现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的高电平信号出现下降沿,变为低电平信号。
因此,现场可编程门阵列单元007可以通过检测现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的电平信号,来判断在接收到错误上报消息后,该错误上报消息在设定时长内是否被处理。在现场可编程门阵列单元007接收到错误上报消息对应的高电平信号后,如果在设定时长内,现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的高电平信号出现下降沿,则说明在设定时长内该错误上报消息被处理;若在设定时长内,现场可编程门阵列单元007与错误上报器004之间的连接通路(引脚)上的高电平信号没有出现下降沿,则说明在设定时长内该错误上报消息没有被处理。
S404、现场可编程门阵列单元在检测到错误上报消息在设定时长内没有被处理的情况下,控制功能模块复位。
经过步骤S403的判断,若现场可编程门阵列单元007确认在接收到错误上报消息之后的设定时长内,该错误上报消息没有被处理,则现场可编程门阵列单元007对该错误上报消息进行处理,从而避免在错误上报器004与处理器核001之间的错误上报通路异常的情况下,影响对功能模块错误的及时修复,从而导致微处理器功能问题。
当现场可编程门阵列单元007检测到接收的错误上报消息在设定时长内没有被处理,则现场可编程门阵列单元007控制发生错误的功能模块复位。
示例性的,在错误上报器004发送给现场可编程门阵列单元007的错误上报消息中,可以携带发生错误的功能模块的信息。现场可编程门阵列单元007在接收到错误上报器发送的错误上报消息时,可以根据该错误上报消息中包含的发生错误的功能模块的信息,控制该功能模块复位。
在其他实现方式中,错误上报器004通过分组状态寄存器和错误记录状态寄存器来记录错误标识和错误信息。在这种方式中,当现场可编程门阵列单元007接收到错误上报器004发送的错误上报消息时,访问错误上报器004中的错误分组状态寄存器,查询该错误分组状态寄存器中存储的错误标识,然后访问与该错误标识对应的错误记录状态寄存器,从中读取与接收到的错误上报消息对应的错误信息。
通过读取上述的错误信息,现场可编程门阵列单元007能够确认发生错误的功能模块,然后根据上述的错误信息,控制该功能模块复位。
示例性的,现场可编程门阵列单元007和各功能模块002之间可以直接建立通信链路。从而,现场可编程门阵列单元007可以通过该通信链路,向发生错误的功能模块发出复位控制信号,控制发生错误的功能模块进行复位。
通过图15、图16、图17所示可知,现场可编程门阵列单元007是设置在微处理器片外的功能器件,如果使现场可编程门阵列单元007直接对微处理器内部的功能模块进行控制,则可能在现场可编程门阵列单元007被恶意控制的情况下,使不法分子通过现场可编程门阵列单元007对微处理器造成恶意控制,从而影响微处理器的片内安全。
为了解决上述问题,在另一些实现方式中,在本申请实施例所提出的计算机系统的微处理器中还包括时钟复位模块006,MCU005与现场可编程门阵列单元007相连,时钟复位模块006与MCU005相连。MCU005用于对微处理器上的特定模块(被设置为由MCU控制的模块,其中包括时钟复位模块)进行控制、调度。时钟复位模块006用于控制微处理器上的各个功能模块的时钟和复位。
上述的计算机系统结构可以应用于图15、图16、图17中的任意一种或多种的计算机系统中,例如,将上述的计算机系统结构应用于图17所示的计算机系统中,可以得到图19所示的计算机系统。
基于图19所示的计算机系统结构,当现场可编程门阵列单元007控制功能模块复位时,向MCU005发送错误通知消息,从而告知MCU005有功能模块发生了错误,以及触发MCU005对功能模块进行复位。
MCU005在接收到现场可编程门阵列单元007发送的错误通知消息后,对功能模块进行复位。
示例性的,在现场可编程门阵列单元007发送给MCU005的错误通知消息中,可以携带发生错误的功能模块的信息。MCU005在接收到现场可编程门阵列单元007发送的错误通知消息时,可以根据该错误通知消息中包含的发生错误的功能模块的信息,控制该功能模块复位。
在其他实现方式中,错误上报器004通过分组状态寄存器和错误记录状态寄存器来记录错误标识和错误信息。在这种方式中,当MCU005接收到现场可编程门阵列单元007发送的错误通知消息时,访问错误上报器004中的错误分组状态寄存器,查询该错误分组状态寄存器中存储的错误标识,然后访问与该错误标识对应的错误记录状态寄存器,从中读取与接收到的错误上报消息对应的错误信息。
通过读取上述的错误信息,MCU005能够确认发生错误的功能模块,然后根据上述的错误信息,控制该功能模块复位。
示例性的,MCU005和各功能模块002之间可以直接建立通信链路,从而,MCU005可以通过该通信链路,向发生错误的功能模块发出复位控制信号,控制发生错误的功能模块进行复位。
在另一些实现方式中,当MCU005控制功能模块复位时,可以向时钟复位模块006发送指示信息,指示时钟复位模块006对功能模块进行复位。时钟复位模块006接收到MCU005发送的指示信息后,控制功能模块复位。
在另一些实现方式中,为了保证微处理器片内环境的安全性不受片外的现场可编程门阵列单元007的影响,可以对现场可编程门阵列单元007的权限进行限制,使现场可编程门阵列单元007不能读取微处理器内部的状态和信息,只能向微处理器内部的MCU发送错误通知消息,同时,微处理器内部也只能传递错误上报消息给现场可编程门阵列单元007,而不能传递其他消息。
另外,对于微处理器内部的MCU005来说,其与现场可编程门阵列单元007的通信接口受微处理器芯片周期的管控,只有在某些允许的芯片周期状态下,现场可编程门阵列单元007才可以与MCU05通信。
芯片周期状态有5个,描述如下:
CM态( Chip Manufacturing,芯片厂商所有状态):芯片生产后的初始状态为CM态。在CM态下,芯片的所有权为芯片厂商,芯片的所有的功能都可以使用,芯片厂商在CM态下注入芯片厂商密钥和关键数据,芯片所有调试、测试接口功能均打开。
DM态( Device Manufacturing,整机厂商所有状态):芯片由芯片厂商交付整机厂商前,在芯片厂商控制下完成生命周期变迁,进入整机厂商阶段。在DM态下,芯片的所有权为整机厂商,整机厂商在DM态下注入整机厂商密钥或关键数据,除保留必要的软件调试接口功能外其他的硬件调试、测试接口功能都关闭。CM态下注入的芯片厂商密钥和关键数据在DM 态下不能被读取和篡改,但是可以使用这些密钥进行相关运算。
UM态(User management,用户所有/安全状态):整机厂商将整机交付最终客户前,在整机厂商控制下完成生命周期变迁,进入用户阶段。在UM态下,芯片的所有权为用户,用户可以在芯片中存储用户密钥和关键数据,芯片的调试、测试接口功能全部关闭。CM态下注入的芯片厂商密钥和关键数据,以及DM态下注入的整机厂商密钥和关键数据,在UM态下均不能被读写,但是可以基于其生成派生密钥。
DM RMA态(返厂至整机厂商状态):整机发生用户不可修复的故障,返厂至整机厂商后,在整机厂商控制下完成生命周期变迁,进入DMRMA态。在DM RMA态下,芯片的所有权为整机厂商,软件调试功能打开,硬件调试、测试功能关闭,此状态下的密钥访问权限与DM态相同。
CM RMA态(返厂至芯片厂商状态):芯片发生整机厂商不可修复的故障,返厂至芯片厂商后,在芯片厂商控制下完成生命周期变迁,进入CM RMA态。在CM RMA态下,芯片的所有权为芯片厂商,所有的调试、测试接口均打开,此状态下的密钥访问权限与CM态相同。
其中,CM 、DM 、CM RMA对用户是不开放的,可以在UM和DM RAM两种状态中选一种作为允许现场可编程门阵列单元007与MCU05通信的芯片状态。
另外,还可以设置只有在某些允许安全情况下,MCU005才响应现场可编程门阵列单元007发送的错误通知消息,对功能模块进行复位。比如,MCU005对现场可编程门阵列单元007发送的错误通知消息的访问地址进行解析,在确定现场可编程门阵列单元007发送的错误通知消息的访问地址为安全地址的情况下,MUC005才响应该错误通知消息,对功能模块进行复位,否则,MCU005不响应。
基于上述的安全机制设置,可以实现在保证微处理器安全的情况下,由微处理器外部的现场可编程门阵列单元触发对微处理器内部的发生错误的功能模块进行复位。
通过上述介绍可见,本申请实施例提出的错误上报方法,在微处理器内部设置错误上报器,以及在微处理器外部设置与错误上报器连接的现场可编程门阵列单元,该错误上报器在接收到功能模块发送的错误信号后,向现场可编程门阵列单元发送错误上报消息,现场可编程门阵列单元在检测到所述错误上报消息在设定时长内没有被处理的情况下,控制所述功能模块复位。上述方案在微处理器外部设置了现场可编程门阵列单元,使得当微处理器中的功能模块错误不能被及时处理的情况下,由微处理器外部的现场可编程门阵列单元来对功能模块进行复位,提高了对功能模块错误的修复效率。此外,由于现场可编程门阵列单元不会受微处理器异常的影响,因此该方案能够保证对微处理器内部功能模块的修复功能更加稳健。
基于上述实施例所介绍的错误上报方法,本申请实施例所提出的如图15、图16、图17所示的计算机系统,通过配置错误上报器004,设置微处理器中的错误上报器004和微处理器片外的现场可编程门阵列单元007分别执行上述错误上报方法中的相应执行主体的处理步骤,使得该微处理器具有更高的错误上报效率,以及具有更高的错误修复效率。
基于上述的计算机系统,还可以构建得到任意包含该计算机系统的计算机设备,比如个人计算机、工业计算机、智能终端、手持终端、智能可穿戴设备、服务器等。
在上述任意实施例所介绍的错误上报方法中,当错误上报器004接收到错误信号后,还可以对错误信号进行分级、分类处理,以及可以对功能模块发生的错误进行纠错、统计处理。
在一些实现方式中,当错误上报器004接收到的功能模块002发送的错误信号为多个的情况下,错误上报器004发送错误上报消息之前,比如向处理器核001或MCU005或现场可编程门阵列单元007发送错误上报消息之前,或者错误上报器004触发中断控制器003向处理器核001发送第一中断信号之前,先依次确定每个错误信号各自对应的上报优先级,然后错误上报器004按照上报优先级由高到低的顺序,依次向处理器核001或MCU005或现场可编程门阵列单元007发送与各个错误信号对应的错误上报消息,或者依次触发中断控制器003向处理器核001发送与各个错误信号对应的第一中断信号。
具体的,本申请实施例预先为不同的功能模块错误设置了处理优先级,当某一功能模块错误发生时,该功能模块错误对应的处理优先级越高,则该功能模块错误越早被处理;相应的,处理优先级较低的功能模块错误要在等待处理优先级较高的功能模块错误被处理后才能被处理。
示例性的,可以根据功能模块错误的错误类型、发生错误的功能模块、发生功能模块错误的时长、频次等,来确定不同功能模块错误所对应的处理优先级。
基于上述的处理优先级设置,当错误上报器004接收到多个错误信号(包括一个功能模块发送的多个错误信号,或者多个功能模块发送的多个错误信号)时,先根据预先设置的不同功能模块错误对应的处理优先级,依次确定接收到的每个错误信号各自对应的上报优先级。比如,假设预先设置的不同功能模块错误对应的处理优先级包括不同功能模块错误类型对应的处理优先级,则当错误上报器004接收到多个错误信号时,先解析确定各个错误信号各自对应的错误类型,然后根据各个错误信号各自对应的错误类型,以及预先设置的不同功能模块错误类型对应的处理优先级,确定各个错误信号各自对应的处理优先级,该处理优先级作为错误信号上报的上报优先级。
然后,错误上报器004按照各个错误信号各自对应的上报优先级,依次将各个错误信号上报。比如,按照各个错误信号对应的上报优先级由高到低的顺序,依次向处理器核001或MCU005或现场可编程门阵列单元007发送与各个错误信号对应的错误上报消息,从而实现多个错误的有序上报。或者,错误上报器004按照各个错误信号对应的上报优先级由高到低的顺序,依次触发中断控制器003向处理器核001发送与各个错误信号对应的第一中断信号。
通过上述处理,错误上报器004能够有次序、分优先级地对多个错误依次进行上报,一方面可以保证错误上报秩序,另一方面可以提高对运算资源的利用率,保证紧急的功能模块错误及时得到处理。
在另一些实现方式中,错误上报器004在发送错误上报消息,或者在触发中断控制器003向处理器核001发送第一中断信号之前,还可以对错误类型进行纠正、统计,并且根据纠正、统计结果有选择地进行错误上报。
具体的,错误上报器004接收到功能模块002发送的错误信号后,在向处理器核001或MCU005或现场可编程门阵列单元007发送错误上报消息之前,或者在触发中断控制器003向处理器核001发送第一中断信号之前,先判断收到的错误信号对应的错误是否为可纠错误。
其中,上述的可纠错误,是指错误信号对应的错误可以在功能模块运行过程中被纠正的错误,也就是可以在不复位功能模块的情况下由功能模块自己纠正的错误。
比如,在微处理器上的静态随机存取存储器SRAM中,数据都是以二进制形式存储的。在数据写入SRAM时,会通过校验算法为数据添加校验码形成校验位。校验位用于对数据进行错误校验及纠正,并且,不同的校验码可以纠正的数据位数量有所不同。
假设为数据添加的校验码能够纠正单数据位的错误,则当通过校验码检测到SRAM中的单个数据位的数据发生错误时,可以通过更改该单个数据位的二进制值来进行纠正,因此单个数据位发生错误,即为可纠错误;而如果SRAM中的多个数据位的数据都发生错误,则由于该校验码不支持多数据位的数据错误纠正,因此多个数据位发生错误,即为不可纠错误。
对于可纠错误而言,可以在功能模块本地进行修复,无须通过其他部件来对功能模块进行修复,因此可以不用上报;而对于不可纠错误而言,由于不能在功能模块本地进行修复,因此需要上传到其他部件来对功能模块进行修复,比如通过处理器核来对功能模块进行复位,实现对功能模块错误的修复。另外,当同种可纠错误多次出现时,可能是因为功能模块出现了某种顽固异常从而导致功能模块反复出现可纠错误,在这种情况下,也可以向处理器核上报错误,由处理器核对功能模块进行修复,从而避免功能模块再次出现可纠错误。
基于上述思想,本申请实施例设定,错误上报器004接收到功能模块002发送的错误信号后,在向处理器核001或MCU005或现场可编程门阵列单元007发送错误上报消息之前,或者在触发中断控制器003向处理器核001发送第一中断信号之前,先判断收到的错误信号对应的错误是否为可纠错误,或者是否为某种特定的可纠错误。
示例性的,可以预先对各种类型的错误分别标记是否为可纠错误,在此基础上,错误上报器004可以通过识别错误信号对应的错误的类型,来判断错误信号对应的错误是否为可纠错误,或者是否为某种特定的可纠错误。
如果错误上报器004 接收到的来自功能模块的错误信号对应的错误是可纠错误或者是某种特定的可纠错误,则进一步判断已发生的可纠错误或已发生的该特定的可纠错误的数量是否大于预设数量,也就是判断该功能模块出现该可纠错误的次数是否超过预设次数。
在本申请实施例中,错误上报器004还具有错误统计功能,即,能够对功能模块已发生的可纠错误或已发生的某种特定的可纠错误的数量进行统计、计数。当错误上报器004确定接收到的错误信号对应的错误是可纠错误或者是某种特定的可纠错误时,错误上报器004可以对已发生的可纠错误或者已发生的该特定的可纠错误的数量加1,从而达到更新已发生的可纠错误的数量的目的。
在错误上报器004确定已发生的可纠错误的数量或者已发生的某种特定的可纠错误的数量大于预设数量的情况下,即是确定了功能模块反复出现可纠错误或反复出现某种特定的可纠错误,此时可以确定该功能模块出现了异常并且不能通过功能模块自主修复,需要错误上报器004将错误上报给其他器件,由其他器件控制功能模块复位达到修复错误的目的。因此,错误上报器004向处理器核001或MCU005或现场可编程门阵列单元007发送错误上报消息,或者触发中断控制器003向处理器核001发送第一中断信号,从而使处理器核001或MCU005或现场可编程门阵列单元007能够对功能模块进行复位,达到修复功能模块错误的目的。在此基础上,错误上报器004将记录的已发生的可纠错误的数量清零,开启下一轮次对已发生的可纠错误的数量统计。
在错误上报器004确定已发生的可纠错误的数量或者已发生的某种特定的可纠错误的数量不大于预设数量的情况下,说明功能模块只是少量次数出现了可纠错误或某种特定的可纠错误,此时可以先不对功能模块进行复位,而只是对已发生的可纠错误的数量或者已发生的某种特定的可纠错误的数量进行统计、更新,比如对已发生的可纠错误的数量或者已发生的某种特定的可纠错误的数量加1。
另外,如果错误上报器004 接收到的来自功能模块的错误信号对应的错误是不可纠错误,则错误上报器004直接将错误上报,比如向处理器核001或MCU005或现场可编程门阵列单元007发送错误上报消息,或者触发中断控制器003向处理器核001发送第一中断信号,从而使处理器核001或MCU005或现场可编程门阵列单元007能够对功能模块进行错误修复。
在上述的实施例方案中,错误上报器004可以对可纠错误进行识别、统计,从而避免对接收到的各种错误都无差别上报造成错误上报资源浪费,同时,又可以防止可纠错误一直不上报引发更严重的错误。
以上各实施例示例性的对本申请所提出的微处理器和计算机系统的结构和功能进行了介绍,以及对基于这些微处理器和计算机系统的错误上报方法进行了介绍。
在上述的各种实施例中,微处理器和/或计算机系统中的单元可以以硬件电路的形式实现,可以通过对硬件电路的设计,实现部分或全部单元的功能。例如,在一种实现中,该硬件电路为ASIC,通过对电路内元件逻辑关系的设计,实现以上部分或全部单元的功能;再如,在另一种实现中,该硬件电路可以通过PLD实现,以FPGA为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元的功能。
此外,以上微处理器和/或计算机系统中的各单元可以全部或部分地集成在一起,或者可以独立实现。
以上的微处理器和/或计算机系统可以应用于任意的计算机设备,从而构成具有上述微处理器和/或计算机系统,并且可以执行与微处理器和/或计算机系统的结构和功能相适应的错误上报方法的硬件设备,对于这些计算机设备,本申请实施例不再一一详细介绍。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种错误上报方法,其特征在于,应用于微处理器,所述微处理器包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述方法包括:
所述错误上报器在接收到所述功能模块发送的错误信号的情况下,根据功能模块错误的紧急程度,触发所述中断控制器向所述处理器核发送第一中断信号,所述第一中断信号用于表示有功能模块发生了错误,所述功能模块错误的紧急程度根据错误类型、发生错误的功能模块、发生错误的时长、发生错误的频次中的至少一项而确定。
2.根据权利要求1所述的方法,其特征在于,所述错误上报器中设置有分组状态寄存器和错误记录状态寄存器;
所述分组状态寄存器中的第一寄存器位用于存储与所述错误信号对应的错误标识;
所述错误记录状态寄存器与所述错误标识相对应,用于记录与所述错误信号对应的错误信息;
其中,所述第一寄存器位是与所述错误信号对应的寄存器位,所述错误信息包括错误类型。
3.根据权利要求1所述的方法,其特征在于,在所述错误信号为多个的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,包括:
依次确定每个错误信号各自对应的上报优先级;
按照上报优先级由高到低的顺序,依次触发所述中断控制器向所述处理器核发送与各个错误信号对应的第一中断信号。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,触发所述中断控制器向所述处理器核发送第一中断信号,包括:
判断错误信号对应的错误是否为可纠错误;其中,所述可纠错误用于表征所述错误信号对应的错误可以在所述功能模块运行过程中被纠正;
在错误信号对应的错误是可纠错误的情况下,判断已发生的可纠错误的数量是否大于预设数量;
在已发生的可纠错误的数量大于预设数量的情况下,触发所述中断控制器向所述处理器核发送第一中断信号,并将已发生的可纠错误的数量清零。
5.根据权利要求4所述的方法,其特征在于,还包括:
在已发生的可纠错误的数量不大于所述预设数量的情况下,对已发生的可纠错误的数量进行统计。
6.一种错误上报方法,其特征在于,所述方法应用于微处理器,所述微处理器包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述方法包括:
所述处理器核在接收到所述中断控制器发送的第一中断信号的情况下,控制所述功能模块复位;
其中,所述第一中断信号,是所述中断控制器在接收到所述错误上报器发送的触发信号的情况下生成的,所述触发信号是所述错误上报器在接收到所述功能模块发送的错误信号的情况下,根据功能模块错误的紧急程度生成的,所述功能模块错误的紧急程度根据错误类型、发生错误的功能模块、发生错误的时长、发生错误的频次中的至少一项而确定。
7.根据权利要求6所述的方法,其特征在于,所述处理器核控制所述功能模块复位,包括:
所述处理器核访问所述错误上报器的错误分组状态寄存器,获取与所述第一中断信号对应的错误标识,以及,访问所述错误标识对应的错误记录状态寄存器,确定与所述错误上报信号对应的错误信息;
所述处理器核根据所述错误信息控制所述功能模块复位。
8.根据权利要求6或7所述的方法,其特征在于,所述微处理器还包括MCU和时钟复位模块,所述MCU与所述处理器核连接,所述时钟复位模块与所述MCU连接;
所述处理器核控制所述功能模块复位,包括:
所述处理器核向所述MCU发送复位指令,以通过所述MCU指示所述时钟复位模块对所述功能模块进行复位。
9.一种微处理器,其特征在于,包括功能模块、处理器核、错误上报器和中断控制器,所述功能模块与所述错误上报器相连,所述错误上报器与所述中断控制器相连,所述中断控制器与所述处理器核相连,所述功能模块包括用于实现特定的处理器功能的硬件模块,所述中断控制器被配置为执行如权利要求1至5中任意一项所述的错误上报方法,和/或,所述处理器核被配置为执行如权利要求6至8中任意一项所述的错误上报方法。
10.一种计算机设备,其特征在于,包括如权利要求9所述的微处理器。
CN202311181985.8A 2023-09-14 2023-09-14 一种错误上报方法、微处理器及计算机设备 Active CN117009129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311181985.8A CN117009129B (zh) 2023-09-14 2023-09-14 一种错误上报方法、微处理器及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311181985.8A CN117009129B (zh) 2023-09-14 2023-09-14 一种错误上报方法、微处理器及计算机设备

Publications (2)

Publication Number Publication Date
CN117009129A CN117009129A (zh) 2023-11-07
CN117009129B true CN117009129B (zh) 2024-01-02

Family

ID=88569216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311181985.8A Active CN117009129B (zh) 2023-09-14 2023-09-14 一种错误上报方法、微处理器及计算机设备

Country Status (1)

Country Link
CN (1) CN117009129B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920339A (zh) * 2018-07-21 2018-11-30 中国人民解放军战略支援部队信息工程大学 一种系统异常上报方法及装置
CN111625388A (zh) * 2020-05-28 2020-09-04 深圳忆联信息系统有限公司 Ssd前端错误处理方法、装置、计算机设备和存储介质
CN114741225A (zh) * 2022-04-15 2022-07-12 北京奕斯伟计算技术有限公司 用于处理硬件错误的装置及方法
CN115629905A (zh) * 2022-12-21 2023-01-20 苏州浪潮智能科技有限公司 一种内存故障预警方法、装置、电子设备及可读介质
CN115934389A (zh) * 2021-08-04 2023-04-07 三星电子株式会社 用于错误报告和处理的系统和方法
CN116049249A (zh) * 2021-12-31 2023-05-02 海光信息技术股份有限公司 报错信息处理方法、装置、系统、设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920339A (zh) * 2018-07-21 2018-11-30 中国人民解放军战略支援部队信息工程大学 一种系统异常上报方法及装置
CN111625388A (zh) * 2020-05-28 2020-09-04 深圳忆联信息系统有限公司 Ssd前端错误处理方法、装置、计算机设备和存储介质
CN115934389A (zh) * 2021-08-04 2023-04-07 三星电子株式会社 用于错误报告和处理的系统和方法
CN116049249A (zh) * 2021-12-31 2023-05-02 海光信息技术股份有限公司 报错信息处理方法、装置、系统、设备和存储介质
CN114741225A (zh) * 2022-04-15 2022-07-12 北京奕斯伟计算技术有限公司 用于处理硬件错误的装置及方法
CN115629905A (zh) * 2022-12-21 2023-01-20 苏州浪潮智能科技有限公司 一种内存故障预警方法、装置、电子设备及可读介质

Also Published As

Publication number Publication date
CN117009129A (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
US9495233B2 (en) Error framework for a microprocesor and system
TWI229796B (en) Method and system to implement a system event log for system manageability
CN100440157C (zh) 用于将可恢复的错误记入日志的系统和方法
CN102141947A (zh) 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
CN107077408A (zh) 故障处理的方法、计算机系统、基板管理控制器和系统
US9141463B2 (en) Error location specification method, error location specification apparatus and computer-readable recording medium in which error location specification program is recorded
CN113176963B (zh) 一种PCIe故障自修复方法、装置、设备及可读存储介质
CN102075380A (zh) 一种服务器状态检测方法及装置
CN106155826B (zh) 用于在总线结构中检测及处理错误的方法和系统
CN113407391A (zh) 故障处理的方法、计算机系统、基板管理控制器和系统
CN118245269B (zh) Pci设备的故障处理方法及装置、故障处理系统
CN117009129B (zh) 一种错误上报方法、微处理器及计算机设备
CN116932272B (zh) 一种错误上报方法及微处理器
CN116909801B (zh) 一种错误上报方法、微处理器及计算机设备
CN117009128B (zh) 一种错误上报方法及计算机系统
CN114048156B (zh) 一种多通道多映射中断控制器
US7739420B2 (en) Communication error information output method, communication error information output device and recording medium therefor
JPWO2007097040A1 (ja) 情報処理装置の制御方法、情報処理装置
CN115658373A (zh) 基于服务器的内存处理方法和装置、处理器及电子设备
CN106506074B (zh) 一种检测光口状态的方法和装置
CN115495301A (zh) 一种故障处理方法、装置、设备及系统
CN110471814A (zh) 服务器装置的错误报告功能的控制方法
CN115129508B (zh) 一种内存可纠正错误的带外处理方法、装置、设备及介质
CN112256467B (zh) 错误类型判断系统及其方法
CN102307139A (zh) 一种pos芯片配置的自适应的方法及装置

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