一种机器异常检查中断的处理方法及装置制造方法及图纸

技术编号:39739127 阅读:9 留言:0更新日期:2023-12-17 23:40
本发明专利技术提供了一种机器异常检查中断的处理方法及装置,所述方法包括

【技术实现步骤摘要】
一种机器异常检查中断的处理方法及装置


[0001]本专利技术涉及计算机
,尤其是涉及一种机器异常检查中断的处理方法及装置


技术介绍

[0002]OpenPOWER
平台是基于
POWER
处理器架构建立的一个全球性协作生态系统,将
POWER


软件用于开源开发,同时向其它厂商开放
POWER
知识产权许可

但在使用
openpower
平台时若遇到
CPU
执行指令发生错误,其中的一部分错误会触发机器异常检查中断
(Machine Check Interrupt
,以下简称
MCI)

MCI
会执行软件代码对错误进行修复从而提高系统的可用性

[0003]但
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
平台上机器异常检查中断的稳定性和可靠性,是个亟待解决的技术问题


技术实现思路

[0004]本专利技术旨在提供一种机器异常检查中断的处理方法及装置,以解决上述技术问题,通过改变
MCI
执行路径和
MCI
保存处理器的保存方式提高
OpenPOWER
平台上机器异常检查中断的稳定性和可靠性

[0005]为了解决上述技术问题,本专利技术提供了一种机器异常检查中断的处理方法,包括:
[0006]在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;
[0007]当检测到所述处理器核心的执行指令中存在
MCI
标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器,所述预设存储器中存放有用于错误恢复的
RAS
代码;
[0008]将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针

[0009]上述方案中,预先在处理器核心中增设第一寄存器,基于第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系

对处理器核心的执行指令进行
MCI
标签
检测,当检测到执行指令存在
MCI
标签时通过预先设置的译码关系将机器异常检查中断向量表的地址直接译码至预设存储器中,此时
MCI
执行程序不需要经过繁琐的执行路径到达
MCI
的软件程序所在的随机存储器,根据译码关系到达预设寄存器即可直接开启
MCI
的软件程序,不仅可以提高
MCI
的处理效率,且执行路径的缩短还可以提高
MCI
软件程序的执行稳定性

进一步的,改变核心处理器在执行机器异常检查中断时的保存方式,将原有当前任务的上下文保存在预设寄存器的堆栈空间,从而减少寄存器的复用,可以避免因
MCI
嵌套导致
MCI
保存处理器被覆盖而无法正常返回

而后当堆栈空间内保存的上下文进入
MCI
软件程序时,处理器核心直接对堆栈空间的指针进行移动,无需由
MCI
软件程序进行控制,减少
MCI
软件程序的处理压力

[0010]在一种实现方式中,所述机器异常检查中断的处理方法还包括:
[0011]当检测到所述处理器核心的执行指令中不存在
MCI
标签时,将所述第一寄存器的工作状态切换为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据
ISA
标准执行所述机器异常检查中断向量表

[0012]在一种实现方式中,所述机器异常检查中断的处理方法还包括:
[0013]预先设置所述机器异常检查中断向量表的地址和所述
RAS
代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述
RAS
代码处于同一优先级;
[0014]基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述
RAS
代码

[0015]上述方案中,预先设置缓存优先级可以便于在存储器中进行数据调取,无需在存储器中进行遍历查询,提高软件执行效率

[0016]在一种实现方式中将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:
[0017]在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;
[0018]基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间

[0019]上述方案中,增加的队列
(Queue)
相当于增加了缓冲区,可以实现连接处的关系解耦,而队列上的若干通道相当于增加了处理人手,可以提高该处理流程的执行效率

[0020]在一种实现方式中,所述预设存储器为静态随机存取存储器
SRAM。
[0021]上述方案中,静态随机存取存储器具备高速访问

随机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种机器异常检查中断的处理方法,其特征在于,包括:在处理器核心中设置第一寄存器,基于所述第一寄存器预先设置机器异常检查中断向量表与预设存储器的译码关系;当检测到所述处理器核心的执行指令中存在
MCI
标签时,将所述第一寄存器的工作状态切换为第一固件首选会处理状态;其中,所述第一固件首选会处理状态为基于所述译码关系将所述机器异常检查中断向量表的地址译码至所述设存储器,所述预设存储器中存放有用于错误恢复的
RAS
代码;将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间;其中,每当检测到所述处理器核心进入机器异常中断检查流程时,控制所述处理器核心移动所述堆栈空间的指针
。2.
根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述机器异常检查中断的处理方法还包括:当检测到所述处理器核心的执行指令中不存在
MCI
标签时,将所述第一寄存器的工作状态切换为第二固件首选会处理状态;其中,所述第二固件首选会处理状态为根据
ISA
标准执行所述机器异常检查中断向量表
。3.
根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述机器异常检查中断的处理方法还包括:预先设置所述机器异常检查中断向量表的地址和所述
RAS
代码在所述预设存储器中的存储优先级;其中,所述机器异常检查中断向量表的地址和所述
RAS
代码处于同一优先级;基于所述存储优先级调取所述机器异常检查中断向量表的地址和所述
RAS
代码
。4.
根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间,还包括:在预设处理流程中设置一个具备若干通道的队列;其中,所述预设处理流程为将所述处理器核心当前任务的上下文存储至所述预设存储器;基于所述队列将所述处理器核心当前任务的上下文存储至所述预设存储器的堆栈空间
。5.
根据权利要求1所述的一种机器异常检查中断的处理方法,其特征在于,所述预设存储器为静态随机存取存储器
。6.
一种机器异常检查中断的处理装置,其特征在于,包括器件设...

【专利技术属性】
技术研发人员:刘宇
申请(专利权)人:合芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1