CN117215819B - 一种机器异常检查中断的处理方法及装置 - Google Patents
一种机器异常检查中断的处理方法及装置 Download PDFInfo
- Publication number
- CN117215819B CN117215819B CN202311171326.6A CN202311171326A CN117215819B CN 117215819 B CN117215819 B CN 117215819B CN 202311171326 A CN202311171326 A CN 202311171326A CN 117215819 B CN117215819 B CN 117215819B
- Authority
- CN
- China
- Prior art keywords
- processor core
- machine
- mci
- exception checking
- register
- 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
- 238000003672 processing method Methods 0.000 title abstract description 6
- 238000012545 processing Methods 0.000 claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000003860 storage Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 23
- 230000003068 static effect Effects 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000004904 shortening Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000010411 cooking Methods 0.000 description 4
- 238000007600 charging Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种机器异常检查中断的处理方法及装置,所述方法包括:在处理器核心中设置寄存器,基于寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;当检测到处理器核心的执行指令中存在MCI标签时,切换第一寄存器的工作状态为第一固件首选会处理状态;所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器;将处理器核心当前任务的上下文存储至预设存储器的堆栈空间。本发明通过改变MCI执行路径和MCI保存处理器的保存方式提高OpenPOWER平台上机器异常检查中断的稳定性和可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种机器异常检查中断的处理方法及装置。
背景技术
OpenPOWER平台是基于POWER处理器架构建立的一个全球性协作生态系统,将POWER硬、软件用于开源开发,同时向其它厂商开放POWER知识产权许可。但在使用openpower平台时若遇到CPU执行指令发生错误,其中的一部分错误会触发机器异常检查中断(Machine Check Interrupt,以下简称MCI),MCI会执行软件代码对错误进行修复从而提高系统的可用性。
但MCI在执行过程中还存在以下两个问题:第一,MCI的软件程序是存储在双倍速率同步动态随机存储器(DDR SDRAM,以下简称DDR),当遇到CPU执行指令发生错误时,MCI的执行路径比较长,需要历经ISU/LSU→L2/NCU→CHI→CMN→L3/DDR→MCI,过长的执行路径使得MCI的执行环境本身存在一定的不稳定性;第二,MCI软件程序在执行时MCI会被硬件关闭,软件程序执行上下文保存在堆栈时,才会重新开启MCI,并且设定MSR[RE]=1。但是在这个期间,如果重新触发了MCI,那么系统会直接停止异常检查,或者产生上下文丢失导致MCI不能正确返回。例如,当第一次触发MCI时,系统会处理第一个MCI的中断处理函数,若在此期间产生第二个触发的MCI,则系统不会响应第二个触发的MCI。如何提高OpenPOWER平台上机器异常检查中断的稳定性和可靠性,是个亟待解决的技术问题。
发明内容
本发明旨在提供一种机器异常检查中断的处理方法及装置,以解决上述技术问题,通过改变MCI执行路径和MCI保存处理器的保存方式提高OpenPOWER平台上机器异常检查中断的稳定性和可靠性。
为了解决上述技术问题,本发明提供了一种机器异常检查中断的处理方法,包括:
在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器,所述预设存储器中存放有用于错误恢复的RAS代码;
将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针。
上述方案中,预先在处理器核心中增设第一寄存器,基于第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系。对处理器核心的执行指令进行MCI标签检测,当检测到执行指令存在MCI标签时通过预先设置的译码关系将机器异常检查中断向量表的地址直接译码至预设存储器中,此时MCI执行程序不需要经过繁琐的执行路径到达MCI的软件程序所在的随机存储器,根据译码关系到达预设寄存器即可直接开启MCI的软件程序,不仅可以提高MCI的处理效率,且执行路径的缩短还可以提高MCI软件程序的执行稳定性。进一步的,改变核心处理器在执行机器异常检查中断时的保存方式,将原有当前任务的上下文保存在预设寄存器的堆栈空间,从而减少寄存器的复用,可以避免因MCI嵌套导致MCI保存处理器被覆盖而无法正常返回。而后当堆栈空间内保存的上下文进入MCI软件程序时,处理器核心直接对堆栈空间的指针进行移动,无需由MCI软件程序进行控制,减少MCI软件程序的处理压力。
在一种实现方式中,所述机器异常检查中断的处理方法还包括:
当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态切换为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
在一种实现方式中,所述机器异常检查中断的处理方法还包括:
预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;
基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。
上述方案中,预先设置缓存优先级可以便于在存储器中进行数据调取,无需在存储器中进行遍历查询,提高软件执行效率。
在一种实现方式中将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:
在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;
基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间。
上述方案中,增加的队列(Queue)相当于增加了缓冲区,可以实现连接处的关系解耦,而队列上的若干通道相当于增加了处理人手,可以提高该处理流程的执行效率。
在一种实现方式中,所述预设存储器为静态随机存取存储器SRAM。
上述方案中,静态随机存取存储器具备高速访问、随机访问、低功耗等优先,可以直接访问存储器中的的任意位置,不需要按顺序逐个读取,可以提高对机器异常检查中断向量表的地址和RAS代码的读取速度。
第二方面,本申请还提供一种机器异常检查中断的处理装置,包括器件设置模块、数据处理模块和数据保存模块;
所述器件设置模块用于在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
所述数据处理模块用于当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器,所述预设存储器中存放有用于错误恢复的RAS代码;
所述数据保存模块用于将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针。
上述方案中,预先在处理器核心中增设第一寄存器,基于第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系。对处理器核心的执行指令进行MCI标签检测,当检测到执行指令存在MCI标签时通过预先设置的译码关系将机器异常检查中断向量表的地址直接译码至预设存储器中,此时MCI执行程序不需要经过繁琐的执行路径到达MCI的软件程序所在的随机存储器,根据译码关系到达预设寄存器即可直接开启MCI的软件程序,不仅可以提高MCI的处理效率,且执行路径的缩短还可以提高MCI软件程序的执行稳定性。进一步的,改变核心处理器在执行机器异常检查中断时的保存方式,将原有当前任务的上下文保存在预设寄存器的堆栈空间,从而减少寄存器的复用,可以避免因MCI嵌套导致MCI保存处理器被覆盖而无法正常返回。而后当堆栈空间内保存的上下文进入MCI软件程序时,处理器核心直接对堆栈空间的指针进行移动,无需由MCI软件程序进行控制,减少MCI软件程序的处理压力。
在一种实现方式中,所述机器异常检查中断的处理装置还包括:
当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
在一种实现方式中,所述机器异常检查中断的处理装置还包括:
预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;
基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。
在一种实现方式中,所述将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:
在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;
基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间。
在一种实现方式中,所述预设存储器为静态随机存取存储器。
第三方面,本申请还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的机器异常检查中断的处理方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的机器异常检查中断的处理方法。
附图说明
图1为本发明一实施例中提供的一种机器异常检查中断的处理方法的流程示意图;
图2为本发明一实施例中提供的一种机器异常检查中断的处理装置的模块流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)MCI:Machine Check Interrupt,机器异常检查中断。
(2)MIV:Machine check interrupt vector,机器异常检查中断向量表。
(3)FFH:Firmware First Handle,固件首选会处理。
(4)ISA:Instruction Set Architecture,指的是一种计算机的指令集架构。ISA是一种为CPU制定操作代码基准的标准化设计,通过指定CPU操作码和接口定义,使得软件与硬件之间的交互变得更加可靠。
(5)SRAM:Static Random-Access Memory,静态随机存取存储器,这种存储器只要保持通电,里面储存的数据就可以恒常保持。
实施例1
参见图1,图1为本发明一实施例中提供的一种机器异常检查中断的处理方法的流程示意图。本发明实施例提供一种机器异常检查中断的处理方法,包括步骤101至步骤103,各项步骤具体如下:
步骤101:在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系。
本发明实施例中在处理器核心core中增设一个第一寄存器,在第一寄存器FFH中预先设置机器异常检查中断向量表到预设存储器的译码关系,基于所述译码关系可以直接将机器异常检查中断向量表的地址存储至预设存储器。本发明实施例中采用寄存器存储所述译码关系,具备访问速度块、占用存储空间小的优点。不同类型的寄存器具备不同作用,可根据服务器的具体需求选取第一寄存器的类型,在此不对第一寄存器的类型进行限制。
步骤102:当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表,所述预设存储器中存放有用于错误恢复的RAS代码。
处理器核心core在执行指令处于完成阶段时会自动检查执行指令的执行状态,若检测到执行指令中带有MCI标签时,此时处理器核心core不会根据执行指令跳转至机器异常检查中断向量表MIV,而是将第一寄存器切换为第一固件首选会处理状态,即FFH=1,根据第一寄存器中预先设置的译码关系将机器异常检查中断向量表MIV的地址译码至预设存储器。此时MCI的执行路径由原先的ISU/LSU→L2/NCU→CHI→CMN→L3/DDR→MCI变更为ISU/LSU→MCI,执行路径的缩短不仅可以提高MCI的处理效率,还可以带来更高的软件执行稳定性。
一实施例中,所述机器异常检查中断的处理方法还包括:当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态切换为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
当处理器核心core的执行指令中不存在MCI标签时,将第一寄存器切换为第二固件首选会处理状态,此时FFH=0,处理器核心core根据正常的ISA标准执行机器异常检查中断表MIV。具体的执行流程根据不同服务器的ISA标准存在不同,在此不对执行过程进行限定。
作为本发明实施例的一个优化方案,一实施例中,所述机器异常检查中断的处理方法还包括:预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。本发明实施中,预先在预设存储器中存储RAS代码并设置RAS代码的缓存优先级。RAS代码用于对执行指令中的错误进行错误恢复、错误隔离和错误汇报。当机器异常检查中断表的地址译码至预设存储器时,将译码地址的缓存优先级设置为与RAS代码的缓存优先级一致。预先设置缓存优先级可以便于在存储器中进行数据调取,无需在存储器中进行遍历查询,提高软件执行效率。优选的,一般将RAS代码的缓存优先级设置为Level 2,即选取一部分缓存优先级为Level 2的存储空间预先存储RAS代码,当预设存储器接收到机器异常检查中断向量表的地址译码时,将地址译码同样存储至Level 2的存储空间中。
步骤103将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针。
现有技术中的MCI保存处理器的保存方式为MCI→关闭MCI→软件执行处理器context保存→开启MCI,在关闭MCI→软件执行处理器context保存的MCI软件程序执行器期间,若产生第二个触发的MCI,此时系统会直接停止异常检查或产生上下文丢失导致MCI不能正确返回。本发明实施例中,当第一寄存器处于FFH=1的处理状态时,将处理器核心当前任务的上下文context保存在预设寄存器的堆栈空间后再进入MCI软件程序中,改变核心处理器在执行机器异常检查中断时的保存方式,从而减少寄存器的复用,避免因MCI嵌套导致处理器核心当前任务的上下文被覆盖而无法正常返回。而后当堆栈空间内保存的上下文进入MCI软件程序时,由处理器核心对堆栈空间的指针进行移动,无需由MCI软件程序进行控制,减少MCI软件程序的处理压力。不同堆栈空间的栈情况不同,对应的指针移动方向也不相同,在此不对指针移动过程进行限定。
作为本发明实施例的一个优化方案,所述将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间。
核心处理器将当前任务的上下文context保存到预设存储器相较于直接保存到寄存器中会存在一定程度的延时。基于此,本发明实施例中,在将处理器核心当前任务的上下文存储至预设存储时的执行流程中增加了一个具备若干通道(Entry)的队列(Queue),相当于为这段执行流程增加了几个处理管道(pipeline),提高处理效率。队列(Queue)相当于增加了缓冲区,可以实现连接处的关系解耦,而处理管道(pipeline)相当于增加了处理人手,例如一个人在摆摊炒菜时需要同时负责炒菜、打包以及收费等流程,而增加该具备若干通道的队列后,每增在一个通道相当于增加一个处理人手,负责炒菜的人只需要专心负责炒菜,负责打包收电费的人则专心负责打包收费,从而提高该执行流程的处理效果。
一实施例中,所述预设存储器为静态随机存取存储器SRAM。静态随机存取存储器具备高速访问、随机访问、低功耗等优先,可以直接访问存储器中的的任意位置,不需要按顺序逐个读取,可以提高对机器异常检查中断向量表的地址和RAS代码的读取速度。
本发明实施例中,还提供了一种机器异常检查中断的处理设备,包括处理器、存储器以及存储在存储器中且被配置为由处理器执行的计算机程序,处理器执行计算机程序时实现上述的机器异常检查中断的处理方法。
本发明实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的机器异常检查中断的处理方法。示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在机器异常检查中断的处理设备中的执行过程。
所述机器异常检查中断的处理设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述机器异常检查中断的处理设备可包括,但不仅限于,处理器、存储器、显示器。本领域技术人员可以理解,上述部件仅仅是机器异常检查中断的处理设备的示例,并不构成对机器异常检查中断的处理设备的限定,可以包括比所述部件更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器异常检查中断的处理设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述机器异常检查中断的处理设备的控制中心,利用各种接口和线路连接整个所述机器异常检查中断的处理设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述机器异常检查中断的处理设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述机器异常检查中断的处理设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例提供一种机器异常检查中断的处理方法,预先在处理器核心中增设第一寄存器,基于第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系。对处理器核心的执行指令进行MCI标签检测,当检测到执行指令存在MCI标签时通过预先设置的译码关系将机器异常检查中断向量表的地址直接译码至预设存储器中,此时MCI执行程序不需要经过繁琐的执行路径到达MCI的软件程序所在的随机存储器,根据译码关系到达预设寄存器即可直接开启MCI的软件程序,不仅可以提高MCI的处理效率,且执行路径的缩短还可以提高MCI软件程序的执行稳定性。进一步的,改变核心处理器在执行机器异常检查中断时的保存方式,将原有当前任务的上下文保存在预设寄存器的堆栈空间,从而减少寄存器的复用,可以避免因MCI嵌套导致MCI保存处理器被覆盖而无法正常返回。而后当堆栈空间内保存的上下文进入MCI软件程序时,处理器核心直接对堆栈空间的指针进行移动,无需由MCI软件程序进行控制,减少MCI软件程序的处理压力。
实施例2
参见图2,图2为本发明一实施例中提供的一种机器异常检查中断的处理装置的模块流程图。本发明实施例提供一种机器异常检查中断的处理装置,包括器件设置模块201、数据处理模块202和数据保存模块203;
所述器件设置模块201用于在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
所述数据处理模块202用于当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器,所述预设存储器中存放有用于错误恢复的RAS代码。
所述数据保存模块203用于将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针
一实施例中,所述机器异常检查中断的处理装置还包括:当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
一实施例中,所述机器异常检查中断的处理装置还包括:预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。
一实施例中,所述将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间。
一实施例中,所述预设存储器为静态随机存取存储器。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供一种机器异常检查中断的处理装置,预先在处理器核心中增设第一寄存器,基于第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系。对处理器核心的执行指令进行MCI标签检测,当检测到执行指令存在MCI标签时通过预先设置的译码关系将机器异常检查中断向量表的地址直接译码至预设存储器中,此时MCI执行程序不需要经过繁琐的执行路径到达MCI的软件程序所在的随机存储器,根据译码关系到达预设寄存器即可直接开启MCI的软件程序,不仅可以提高MCI的处理效率,且执行路径的缩短还可以提高MCI软件程序的执行稳定性。进一步的,改变核心处理器在执行机器异常检查中断时的保存方式,将原有当前任务的上下文保存在预设寄存器的堆栈空间,从而减少寄存器的复用,可以避免因MCI嵌套导致MCI保存处理器被覆盖而无法正常返回。而后当堆栈空间内保存的上下文进入MCI软件程序时,处理器核心直接对堆栈空间的指针进行移动,无需由MCI软件程序进行控制,减少MCI软件程序的处理压力。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (10)
1.一种机器异常检查中断的处理方法,其特征在于,包括:
在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述预设存储器,所述预设存储器中存放有用于错误恢复的RAS代码;
将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针。
2.根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述机器异常检查中断的处理方法还包括:
当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态切换为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
3.根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述机器异常检查中断的处理方法还包括:
预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;
基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。
4.根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:
在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;
基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间。
5.根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述预设存储器为静态随机存取存储器。
6.一种机器异常检查中断的处理装置,其特征在于,包括器件设置模块、数据处理模块和数据保存模块;
所述器件设置模块用于在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
所述数据处理模块用于当检测到所述处理器核心的执行指令中存在MCI标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述预设存储器,所述预设存储器中存放有用于错误恢复的RAS代码;
所述数据保存模块用于将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针。
7.根据权利要求6所述的一种机器异常检查中断的处理装置,其特征在于,所述机器异常检查中断的处理装置还包括:
当检测到所述处理器核心的执行指令中不存在MCI标签时,将所述第一寄存器的工作状态为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据ISA标准执行所述机器异常检查中断向量表。
8.根据权利要求6所述的一种机器异常检查中断的处理装置,其特征在于,所述机器异常检查中断的处理装置还包括:
预先设置所述机器异常检查中断向量表的地址和所述RAS代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述RAS代码处于同一优先级;
基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述RAS代码。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述的机器异常检查中断的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至5中任意一项所述的机器异常检查中断的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171326.6A CN117215819B (zh) | 2023-09-11 | 2023-09-11 | 一种机器异常检查中断的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171326.6A CN117215819B (zh) | 2023-09-11 | 2023-09-11 | 一种机器异常检查中断的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117215819A CN117215819A (zh) | 2023-12-12 |
CN117215819B true CN117215819B (zh) | 2024-03-19 |
Family
ID=89050542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311171326.6A Active CN117215819B (zh) | 2023-09-11 | 2023-09-11 | 一种机器异常检查中断的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215819B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106873946A (zh) * | 2017-01-24 | 2017-06-20 | 青岛朗思信息科技有限公司 | 一种中断处理方法及流水线控制器 |
CN115391079A (zh) * | 2022-08-25 | 2022-11-25 | 中电科申泰信息科技有限公司 | 一种基于五级流水线处理器的中断与异常处理方法 |
CN115495278A (zh) * | 2022-11-14 | 2022-12-20 | 阿里巴巴(中国)有限公司 | 异常修复方法、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392644B2 (en) * | 2010-07-30 | 2013-03-05 | Mips Technologies, Inc. | System and method for automatic hardware interrupt handling |
-
2023
- 2023-09-11 CN CN202311171326.6A patent/CN117215819B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106873946A (zh) * | 2017-01-24 | 2017-06-20 | 青岛朗思信息科技有限公司 | 一种中断处理方法及流水线控制器 |
CN115391079A (zh) * | 2022-08-25 | 2022-11-25 | 中电科申泰信息科技有限公司 | 一种基于五级流水线处理器的中断与异常处理方法 |
CN115495278A (zh) * | 2022-11-14 | 2022-12-20 | 阿里巴巴(中国)有限公司 | 异常修复方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117215819A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239324B (zh) | 业务流转处理方法、装置及系统 | |
KR101817397B1 (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
US9740562B2 (en) | Method for checkpointing and restoring program state | |
CN102063286B (zh) | 程序流控制 | |
US10394561B2 (en) | Mechanism for facilitating dynamic and efficient management of instruction atomicity volations in software programs at computing systems | |
CN107038041B (zh) | 数据处理方法、错误码动态兼容方法、装置和系统 | |
KR101249693B1 (ko) | 서브루틴 복귀 메카니즘 선택 | |
JP4334598B1 (ja) | 情報処理装置およびエラー訂正方法 | |
US20060031669A1 (en) | Boot method and system | |
US8966068B2 (en) | Selective logging of network requests based on subsets of the program that were executed | |
US6581120B1 (en) | Interrupt controller | |
US11928529B2 (en) | High-throughput BPF map manipulations with uprobes | |
CN117215819B (zh) | 一种机器异常检查中断的处理方法及装置 | |
CN105824750A (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
US20120216068A1 (en) | Application reliability and fault tolerant chip configurations | |
TWI660307B (zh) | 二元碼轉譯裝置及方法 | |
US20110131397A1 (en) | Multiprocessor system and multiprocessor control method | |
CN117215966B (zh) | 一种芯片sdk接口的测试方法、测试装置及电子设备 | |
CN110766886B (zh) | 驱动装置及其驱动读卡器实现卡片业务的方法、自助缴费系统 | |
CN114780283B (zh) | 一种故障处理的方法及装置 | |
US20180032339A1 (en) | Cross-level prefetch for shared multi-level libraries | |
US9164770B2 (en) | Automatic control of multiple arithmetic/logic SIMD units | |
US8112591B1 (en) | System and method for detection of non-deterministic memory access events | |
CN117632411A (zh) | 一种中断处理程序的处理方法、中断控制方法及处理器 | |
CN108509013B (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 |