一种RISC-V服务器自检测方法、装置、软件架构及电子设备

文档序号:28539985发布日期:2022-01-19 14:29阅读:70来源:国知局
一种RISC-V服务器自检测方法、装置、软件架构及电子设备
一种risc-v服务器自检测方法、装置、软件架构及电子设备
技术领域
1.本技术涉及服务器安全技术领域,尤其涉及一种risc-v服务器自检测方法、装置、软件架构及电子设备。


背景技术:

2.risc-v由于其精简、高效、低功耗的特点,在嵌入式系统领域得到了越来越多的应用,risc-v的服务器也在发展过程中。对于服务器而言,提供服务的可靠性和稳定性十分重要。
3.在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:现阶段,risc-v类型服务器尚未得到自检测方法的支持,由于risc-v类型服务器没有得到自检测方法的支持,所以在发生硬件错误时,risc-v服务器会采取宕机的形式消除对系统的影响,这带来严重的经济损失。


技术实现要素:

4.本技术实施例的目的是提供一种risc-v服务器自检测方法、装置、软件架构及电子设备,以解决相关技术中存在的risc-v的服务器由于发生硬件错误从而影响系统稳定性的技术问题。
5.根据本技术实施例的第一方面,提供一种risc-v服务器自检测方法,包括:
6.接收risc-v服务器内硬件发生错误所产生的错误信息;
7.如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据进行迁移并禁用该硬件地址段;
8.如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修。
9.进一步地,所述错误信息包括可更正错误和不可更正错误。
10.进一步地,所述可更正错误的接收过程包括:
11.获取可更正错误;
12.对所述可更正错误进行存储并将可更正错误的数量加1;
13.当可更正错误的数量达到了预定阈值,发送可更正错误中断;
14.根据所述可更正错误中断,接收所述数量的可更正错误。
15.进一步地,所述不可更正错误的接收过程包括:
16.获取不可更正错误;
17.根据所述不可更正错误,产生不可更正错误中断和用于打断相关指令的执行的不可更正错误异常;
18.根据所述不可更正错误中断,接收所述不可更正错误。
19.根据本技术实施例的第二方面,提供一种risc-v服务器自检测装置,包括:
20.接收模块,用于接收错误信息;
21.第一处理模块,用于如果所述错误信息对应的错误为不会对服务器产生致命影响的设备地址段上产生的硬件错误,则对所述错误对应的设备的数据迁移并禁用该设备地址段;
22.第二处理模块,用于如果所述错误信息对应的错误为可能会对服务器产生致命影响的设备地址段上产生的硬件错误,则判断所述错误是否对服务器产生致命影响,如果产生致命影响,则发送提醒到用户并等待物理硬件维修,如果不产生致命影响,则对所述错误对应的设备的数据迁移并禁用该设备地址段。
23.根据本技术实施例的第三方面,提供一种risc-v服务器自检测软件架构,包括:
24.硬件层,用于发送错误信息;
25.固件层,用于接收错误信息,如果所述错误信息对应的错误为不会对服务器产生致命影响的设备地址段上产生的硬件错误,则对所述错误对应的设备的数据迁移并禁用该设备地址段,如果固件层无法对所述错误进行处理,则将所述错误信息发送至操作系统层;
26.操作系统层,用于接收错误信息,如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修,如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的设备的数据迁移并禁用该设备地址段;
27.应用层,用于接收操作系统层发送的提醒信息。
28.根据本技术实施例的第四方面,提供一种电子设备,包括:
29.一个或多个处理器;
30.存储器,用于存储一个或多个程序;
31.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
32.根据本技术实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如第一方面所述方法的步骤。
33.本技术的实施例提供的技术方案可以包括以下有益效果:
34.由上述实施例可知,本技术接收risc-v服务器内硬件发生错误所产生的错误信息;如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据进行迁移并禁用该硬件地址段,以使得该错误不会影响risc-v服务器中未发生错误的硬件正常工作;如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修,以防止risc-v服务器在用户不知情的情况下发生故障,影响用户使用。
35.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
36.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
37.图1是根据一示例性实施例示出的一种risc-v自检测软件架构的整体示意图。
38.图2是根据一示例性实施例示出的可更正错误中断控制的设计示意图。
39.图3是根据一示例性实施例示出的的错误注入示例。
40.图4是根据一示例性实施例示出的一种risc-v自检测方法的流程图。
41.图5是根据一示例性实施例示出的可更正错误的接收过程流程图。
42.图6是根据一示例性实施例示出的不可更正错误的接收过程流程图。
43.图7是根据一示例性实施例示出的一种risc-v自检测装置的框图。
具体实施方式
44.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
45.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
46.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
47.图1是根据一示例性实施例示出的一种risc-v服务器自检测软件架构的示意图,如图1所示,可以包括:
48.硬件层,用于发送错误信息;
49.固件层,用于接收错误信息,如果所述错误信息对应的错误为不会对服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据迁移并禁用该硬件地址段,如果固件层无法对所述错误进行处理,则将所述错误信息发送至操作系统层;
50.操作系统层,用于接收错误信息,如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修,如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据迁移并禁用该硬件地址段;
51.应用层,用于接收操作系统层发送的提醒信息。
52.由上述实施例可知,本技术接收risc-v服务器内硬件发生错误所产生的错误信息;如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据进行迁移并禁用该硬件地址段,以使得该错误不会影响risc-v服务器中未发生错误的硬件正常工作;如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修,以防止risc-v服务器在用户不知情的情况下发生故障,影响用户使用。
53.具体地,所述硬件层包括risc-v处理器和中断控制器,所述risc-v处理器包括错误报告寄存器组和中断控制器,所述错误报告寄存器组包括错误状态报告寄存器、错误控制报告寄存器、错误地址报告寄存器和错误杂项报告寄存器,用于记录某一类硬件发生错误时,错误的状态、地址、类型及补充信息,所述中断控制器用于根据硬件发生的错误信息发出中断。
54.具体地,所述错误信息包括可更正错误和不可更正错误,所述可更正类型错误指的是硬件可以进行自行恢复或者解决的错误,当所述可更正错误发生时,对所述可更正错误进行存储并将所述错误控制报告寄存器中可更正错误的数量加1,当可更正错误的数量达到了预定阈值,所述中断控制器产生并发送可更正错误中断;所述不可更正类型错误指的是硬件不可以进行自行恢复或者解决的,需要上层软件采取措施以降低影响的错误,当所述不可更正错误发生时,根据所述不可更正错误,所述中断控制器产生并发送不可更正错误中断和用于打断相关指令的执行的不可更正错误异常。
55.在一实施例中,内存硬件上产生了一次3比特位翻转类型错误,而内存的ecc校验模块的纠错能力为8位,则属于一次可更正类型错误,如图2所示,此时增加内存硬件对应的错误控制报告寄存器中的可更正类型错误计数域,并与可更正类型错误阈值域进行比较,若计数值达到了阈值,则发起一次可更正类型错误中断,通知固件层进行处理。
56.在另一实施例中,内存硬件上产生了一次11比特位翻转类型错误,而内存的ecc校验模块的纠错能力为8位,则属于一次不可更正类型错误。系统首先会产生不可更正类型错误异常,打断当前cpu指令的执行,防止不可更正类型错误在系统中传播下去,随后产生不可更正类型错误中断,通知固件层进行处理。
57.具体地,所述硬件层还包括全局控制状态控制器组,所述全局控制状态控制器组包括全局配置寄存器、全局状态寄存器和全局控制寄存器,所述全局控制状态控制器组用于配置自检测软件架构的功能和保存自检测软件架构的状态。上层软件可以通过全局控制状态寄存器组配置自检测软件架构的功能,获取自检测软件架构的工作状态。
58.具体地,所述固件层包括固件错误处理模块及分配给所述固件错误处理模块的固件内存,所述固件内存用于存储记录硬件的错误信息,数据结构上采取链表的形式,所述固件错误处理模块用于将错误信息整理放置在固件内存中,并对所述错误对应的硬件的数据迁移且禁用该硬件地址段,如果所述固件错误处理模块接收了无法处理的错误信息,则将所述错误信息发送至操作系统层。
59.具体地,所述固件错误处理模块主要处理发生在用户态或对系统影响较小的错误,当固件层的固件错误处理模块接收到硬件层发送的错误处理中断及异常时,会根据发起中断的错误报告寄存器组中所有寄存器记录的错误信息,选取对应的回调函数进行处理,并对所述错误对应的硬件的数据迁移且禁用该硬件地址段,并将错误信息按照特定格式写入分配给固件错误处理模块的固件内存中备用。若固件层无法处理该类型的硬件错误,则会发起一次固件层错误中断,申请操作系统层错误处理模块进行处理。由于固件层对硬件属性更加了解,因此由固件层优先处理可以增加整个自检测架构的效率,并降低操作系统的冗余性。
60.在一实施例中,在内存中发生了用户态地址段的数据错误,则固件错误处理模块可以根据实际错误类型选择是否杀死对应进程,并禁用掉对应的地址段,以防由于物理内
存颗粒损坏导致数据再次产生错误的情况发生。若由于某些原因无法处理错误,则会发起错误处理中断,申请操作系统层介入处理。
61.具体地,所述操作系统层包括操作系统层错误处理模块和错误信息读取驱动模块,所述操作系统层的错误信息读取驱动模块用于操作系统层或应用层从分配给固件错误处理模块的固件内存中提取硬件的错误信息,该错误信息用于操作系统层错误处理模块时使用,所述操作系统层错误处理模块通过错误信息读取驱动模块读取固件内存中记录的错误信息,对所述错误对应的硬件的数据迁移且禁用该硬件地址段,若操作系统层无法处理,则发送提醒信息给用户以等待物理硬件维修。
62.具体地,操作系统层错误处理模块收到固件层错误中断后,首先使用操作系统层错误信息读取驱动从分配给固件错误处理模块的固件内存中读取该次硬件错误的错误信息,并且对所述错误对应的硬件的数据迁移且禁用该硬件地址段,若操作系统层错误处理模块无法对错误进行有效处理,则向用户层发送提醒信息,请求用户进行处理。
63.在一实施例中,在内存中发生内核态地址段的数据错误,则操作系统层错误处理模块首先判断该错误是否会对服务器系统产生致命影响,如是,则上报用户层询问是否重启或采取其他措施。如否,则将发生错误的地址段数据迁移,并重启受该错误影响的系统服务。
64.具体地,应用层包括错误信息汇报应用,用于接收操作系统层错误处理模块发送的提醒消息,通过所述错误信息读取驱动从固件内存中提取错误信息,将所述错误信息发送给用户进行交互的应用。
65.具体地,所述全局控制状态寄存器组、错误报告寄存器组、固件错误处理模块、分配给固件错误处理模块的固件内存、错误信息读取驱动、操作系统层错误处理模块和错误信息交互应用组成自检测功能链路,所述自检测功能链路的主要作用为当硬件错误发生时,能够采取措施降低甚至消除硬件错误对服务器功能的影响。
66.具体地,所述软件架构中还可以包括错误注入测试功能链路,所述错误注入测试功能链路的主要作用为:当由于硬件发展引入了新的类型的硬件错误时,能够将此类错误注入到实际的硬件中,更高效地进行此类错误的自修复功能开发,所述错误注入测试功能链路一般用于所述软件架构的测试。
67.具体地,所述错误注入测试功能链路包括应用层的错误注入控制应用、操作系统层的错误信息注入驱动、固件层用于存储错误注入信息的固件内存和硬件层的错误注入模块。
68.具体地,所述应用层的错误注入应用用于接收用户想要向硬件中注入的错误信息,并且经过操作系统层的错误注入驱动模块交由底层的错误注入模块进行硬件的错误注入。
69.具体地,所述操作系统层的错误注入驱动模块用于根据应用层的错误注入应用,向固件内存中写入错误注入指令,发起错误注入流程。
70.具体地,所述固件内存用于存储记录错误注入的信息,数据结构上采取链表的形式。这样做有利于对内存中保存的错误信息进行增加和删除。
71.具体地,所述硬件层错误注入模块用于接收操作系统层发送的错误注入指令并获取固件内存中的错误注入信息,根据所述错误注入指令和错误注入信息将特定的硬件错误
注入到实际的硬件中。
72.具体地,用户首先通过错误注入控制应用输入想要向硬件注入的错误信息。随后通过操作系统层的错误注入驱动将需要注入的错误信息写入分配给固件错误处理模块的内存空间中,随后通知硬件层错误注入模块接收信息,并按照信息内的指令将错误注入到实际的硬件之内。这样可以直接在硬件设备中引起一个真实的硬件错误,方便对该类型硬件错误的自检测功能进行测试改进。
73.图3为一次错误注入的实例,测试的目的为:测试内存中的位翻转错误的自修复处理流程,注入的地址为内存的0x80000004,注入的操作为翻转数据的第0,2,3位。错误注入模块将此错误注入到内存中后,内存0x80000004地址的数据后四位由1001变为0100。此时从该内存地址读取数据后,会产生读取错误,触发内存位翻转的自修复功能。通过观测后续系统的工作表现,可以得知系统对于内存位翻转错误的处理是否有效。
74.与前述的risc-v服务器自检测软件结构的实施例相对应,本技术还提供了risc-v服务器自检测方法的实施例。
75.图4是根据一示例性实施例示出的一种risc-v服务器自检测方法流程图。参照图4,该方法包括:
76.步骤s11:接收risc-v服务器内硬件发生错误所产生的错误信息;
77.具体地,所述错误信息包括可更正错误和不可更正错误。进一步地,如图5所示,所述可更正错误的接收过程包括:
78.步骤s21:获取可更正错误;
79.步骤s22:对所述可更正错误进行存储并将可更正错误的数量加1;
80.步骤s23:当可更正错误的数量达到了预定阈值,发送可更正错误中断;
81.步骤s24:根据所述可更正错误中断,接收所述数量的可更正错误。
82.如图6所示,所述不可更正错误的接收过程包括:
83.步骤s31:获取不可更正错误;
84.步骤s32:根据所述不可更正错误,产生不可更正错误中断和用于打断相关指令的执行的不可更正错误异常;
85.步骤s33:根据所述不可更正错误中断,接收所述不可更正错误。
86.步骤s12:如果所述错误信息对应的错误为不会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则对所述错误对应的硬件的数据进行迁移并禁用该硬件地址段;
87.步骤s13:如果所述错误信息对应的错误为会对risc-v服务器产生致命影响的硬件地址段上产生的硬件错误,则发送提醒信息给用户以等待物理硬件维修。
88.关于上述实施例中的方法,其中各个步骤执行操作的具体过程已经在有关该软件架构的实施例中进行了详细描述,此处将不做详细阐述说明。
89.与前述的risc-v服务器自检测方法的实施例相对应,本技术还提供了risc-v服务器自检测装置的实施例。
90.图7是根据一示例性实施例示出的一种risc-v服务器自检测装置框图。参照图7,该装置包括:
91.接收模块21,用于接收错误信息;
92.第一处理模块22,用于如果所述错误信息对应的错误为不会对服务器产生致命影响的设备地址段上产生的硬件错误,则对所述错误对应的设备的数据迁移并禁用该设备地址段;
93.第二处理模块23,用于如果所述错误信息对应的错误为可能会对服务器产生致命影响的设备地址段上产生的硬件错误,则判断所述错误是否对服务器产生致命影响,如果产生致命影响,则发送提醒到用户并等待物理硬件维修,如果不产生致命影响,则对所述错误对应的设备的数据迁移并禁用该设备地址段。
94.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
95.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
96.相应的,本技术还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的risc-v服务器自检测方法。
97.相应的,本技术还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如上述的risc-v服务器自检测方法。
98.本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
99.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1