一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于服务器系统的中断拓展方法与流程

2022-06-01 00:42:36 来源:中国专利 TAG:


1.本发明主要涉及到服务器管控技术领域,特指一种用于服务器系统的中断拓展方法。


背景技术:

2.为了便于管理服务器,现阶段的服务器系统中,都加入了服务器管控单元(bmc)。cpu与bmc的主从关系为:cpu为主设备,bmc为从设备。cpu(主机)可以发起对bmc的访问,但是bmc(从机)却没有这样的权限。这样的限制就会造成bmc无法向cpu发起命令,造成bmc关机这一类的行为无法进行。为规避这样的问题,大部分的处理器都是用自身具有中断功能的gpio,接收bmc对应的中断信号再执行对应的功能操作,规避上述问题。但是这也会大大地浪费了cpu本就不多的gpio口。


技术实现要素:

3.本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、适用范围广的用于服务器系统的中断拓展方法。
4.为解决上述技术问题,本发明采用以下技术方案:
5.一种用于服务器系统的中断拓展方法,其包括:
6.将中断id保存于中断状态寄存器中,所述中断id与服务器系统的从机采用一一对应的方式进行映射;
7.服务器系统中主机的cpu读取中断状态寄存器中的中断id值;
8.服务器系统中主机的cpu根据读取的中断id值执行对应的中断服务程序;
9.服务器系统中主机的cpu清除中断,在另一个线程中执行中断请求任务。
10.作为本发明的进一步改进:所述主机与服务器系统中的从机使用同一个时钟源,通过中断线将一个主机与多个从机连接在一起。
11.作为本发明的进一步改进:所述从机包括bmc,以bmc向cpu发起中断命令。
12.作为本发明的进一步改进:所述bmc与cpu之间连接时设置电平转换。
13.作为本发明的进一步改进:确定服务器系统中多个从机所使用的中断id和主机的中断id,均保存至中断状态寄存器。
14.作为本发明的进一步改进:所述中断状态寄存器采用uart虚拟串口中断;当中断发出之后,所述主机的cpu根据设置好的中断id,通过uart虚拟串口来进行中断操作。
15.作为本发明的进一步改进:在所述中断状态寄存器中设置有多个从机所使用的中断id和主机的中断id。
16.作为本发明的进一步改进:所述中断状态寄存器中中断id的定义采用自定义方式,令从机能够判断中断id对应的是虚拟串口功能。
17.作为本发明的进一步改进:当需要修改中断id时,直接写入对应的所需确定的数值。
18.作为本发明的进一步改进:所述主机的cpu根据不同的中断id来选择走不同的分支线程。
19.与现有技术相比,本发明的优点就在于:
20.1、本发明的用于服务器系统的中断拓展方法,原理简单、操作简便、适用范围广,不占用cpu中有限的带中断功能的gpio引脚,能够最大提升serirq的设备占有率,降低硬件设计的复杂程度。本发明将采用其他固定模块并没有占用的中断,去实现若干拓展功能,如:向cpu发起关机、重启、获取cpu状态等请求。而且,采用本发明之后,中断的设备数量可以进行灵活的增减,便于后期的开发维护。
21.2、本发明的用于服务器系统的中断拓展方法,服务器系统中的主机cpu不会直接执行中断,cpu会读取中断状态寄存器的值。该中断状态寄存器保存了中断id(中断号),该中断id与外设(从机)进行一一对应的映射。而后根据不同的中断id执行不同的中断服务程序,并同时清除中断,在另外一个线程上执行中断请求任务。
附图说明
22.图1是本发明在具体应用实例中方法的流程示意图。
23.图2是serirq支持的中断数量示意图。
24.图3是本发明在一个具体应用实例中控制的拓扑结构原理示意图。
25.图4是本发明在一个具体应用实例中寄存器设置的示意图。
26.图5是本发明在一个具体应用实例中控制的拓扑结构原理示意图。
具体实施方式
27.以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
28.如图2所示,为serirq支持的中断数量示意图。在服务器系统的主机与从机的构架中,一般均设置有lpc接口,而带有lpc接口中附带有serirq中断。通常都是用于符合serirq中断的从机(专有设备)来使用,当然上述的从机(专有设备)包括了bmc。在bmc中的固定模块(如sol模块、superio模块、acpi模块等)会通过该中断向cpu发送命令。显然,上述固定模块都是有限的,而serirq是可以承载多个设备的串行中断,因此本发明将采用其他固定模块并没有占用的中断,去实现若干拓展功能,如:向cpu发起关机、重启、获取cpu状态等请求。
29.如图1所示,本发明的用于服务器系统的中断拓展方法,令服务器系统中的主机与从机使用的均为同一个时钟源,通过中断线将一个主机与多个从机连接在一起;所述从机包括bmc;先确定多个从机(专有设备)所使用的中断id(中断号)和主机的中断id(中断号)并保存至中断状态寄存器;所述中断状态寄存器采用uart虚拟串口中断;当中断发出之后,主机的cpu需要根据设置好的中断id,通过uart虚拟串口来进行中断操作。
30.通过采用本发明的上述方案,本发明中cpu不会直接执行中断,cpu会读取中断状态寄存器的值。该中断状态寄存器保存了中断id(中断号),该中断id与外设(从机)进行一一对应的映射。而后根据不同的中断id执行不同的中断服务程序,并同时清除中断,在另外一个线程上执行中断请求任务。
31.在具体应用实例中,在所述寄存器中设置有多个从机(专有设备)所使用的中断id
(中断号)和主机的中断id(中断号),并以特定数值的形式保存。当需要修改时,直接写入对应的所需确定的数值即可。
32.在具体应用实例中,寄存器中断id的定义可以通过图2中的寄存器第7到第4个bit进行调整,但是需要让对方的server知道该中断id(中断号)对应的是虚拟串口功能。由此可见,本发明就是因为可以自定义该中断id,才使得更多的设备可以加入到中断上。
33.lpc接口中附带的serirq中断,通常都是用于符合serirq中断的专有设备使用,当然上述的专有设备包括了bmc。bmc中的固定模块如sol模块、superio模块、acpi模块等会通过该中断向cpu发送命令。上述模块都是有限的,而serirq是可以承载多个设备的串行中断,因此本方案将采用其他模块并没有占用的中断,去实现如:向cpu发起关机、重启、获取cpu状态等请求。
34.具体应用实例1:参见图3,本发明以bmc向cpu发起关机命令为例说明。由于本发明的硬件连接与常用的lpc接口实现master和slaver的连接并没有做调整,因此在硬件的描述上就此省略了。
35.本发明的具体流程为:
36.步骤s1:确定所有设备所使用的中断,包括服务器系统中从机和主机根据自己选择的中断id,确定图4中寄存器的值,并写入确定好的数值。
37.步骤s2:将从机中bmc的0x1e787020的值改写为0x23,即可向主机的cpu发出中断请求。在该实例中,所述寄存器本身为uart的虚拟串口中断。
38.步骤s3:当中断发出之后,主机的cpu需要根据上述步骤s1中设置的中断id,走关机的操作流程。
39.至此,就实现了使用uart虚拟串口中断,实现关机操作的功能了。
40.具体应用实例2:参见图5,当bmc检查到整机的外设中,风扇、温度等任何部件出现异常的情况下,均可以通过该中断上报到server的cpu,让cpu做好降频、任务转移等工作,防止由于部件的异常,导致整个计算节点故障,进而造成大量数据丢失。
41.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献