一种检测HBA卡的方法、装置和计算机可读存储介质与流程

文档序号:16390372发布日期:2018-12-22 11:23阅读:607来源:国知局
一种检测HBA卡的方法、装置和计算机可读存储介质与流程

本发明涉及计算机存储技术领域,特别是涉及一种检测hba卡的方法、装置和计算机可读存储介质。

背景技术

随着电子技术的不断发展,越来越多的厂家不再仅仅满足于芯片的研发,为了追求更大的利润和更丰富的产品线,很多厂家开始介入主机总线适配器(hostbusadapter,hba)卡的开发。主板上中央处理器(centralprocessingunit,cpu)提供的一种高速串行计算机扩展总线(peripheralcomponentinterconnectexpress,pcie)接口是与hba卡互联的一种常用高速总线接口。

由于电磁干扰等因素,主板基本输入输出系统(basicinputoutputsystem,bios)在系统初始化扫描hba卡时,经常出现hba卡扫描失败的情况,即在启动后检测不到外插的hba卡,从而造成hba卡资源的浪费。

可见,如何提升系统成功识别hba卡的概率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种检测hba卡的方法、装置和计算机可读存储介质,可以提升系统成功识别hba卡的概率。

为解决上述技术问题,本发明实施例提供一种检测hba卡的方法,包括:

s10:检测目标插槽的槽位状态信息是否为有效信息;若是,则执行s11;其中,所述目标插槽为用于和hba卡连接的插槽;

s11:判断所述目标插槽的带宽值是否为零;若是,则执行s12;若否,则结束检测hba卡的操作;

s12:调用系统重启程序,并返回所述s11。

可选的,在调用系统重启程序之后,并且在返回所述s11之前还包括:

统计调用所述系统重启程序的次数;

判断所述次数是否达到预设上限值;

若是,则结束检测hba卡的操作;若否,则返回所述s11。

可选的,在所述判断所述次数是否达到预设上限值之后还包括:

当所述次数达到预设上限值时,则展示hba卡连接失败的提示信息。

可选的,在所述s11之后还包括:

当所述目标插槽的带宽值不为零时,则判断所述带宽值和预先存储的目标带宽值是否相同;

若否,则展示hba卡降级兼容的提示信息。

本发明实施例还提供了一种检测hba卡的装置,包括检测单元、判断单元和调用单元;

所述检测单元,用于检测目标插槽的槽位状态信息是否为有效信息;若是,则触发所述判断单元;其中,所述目标插槽为用于和hba卡连接的插槽;

所述判断单元,用于判断所述目标插槽的带宽值是否为零;若是,则触发所述调用单元;若否,则结束检测hba卡的操作;

所述调用单元,用于调用系统重启程序,并触发所述判断单元。

可选的,还包括统计单元;

所述统计单元,用于统计调用所述系统重启程序的次数;

所述判断单元还用于判断所述次数是否达到预设上限值;若是,则结束检测hba卡的操作;若否,则触发所述判断单元。

可选的,还包括连接失败提示单元;

所述连接失败提示单元,用于当所述次数达到预设上限值时,展示hba卡连接失败的提示信息。

可选的,还包括降级兼容提示单元;

所述判断单元还用于当所述目标插槽的带宽值不为零时,则判断所述带宽值和预先存储的目标带宽值是否相同;若否,则触发所述降级兼容提示单元;

所述降级兼容提示单元,用于展示hba卡降级兼容的提示信息。

本发明实施例还提供了一种检测hba卡的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述检测hba卡的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述检测hba卡的方法的步骤。

由上述技术方案可以看出,检测目标插槽的槽位状态信息是否为有效信息;其中,目标插槽为用于和hba卡连接的插槽。当目标插槽的槽位状态信息为有效信息时,则说明该目标插槽连接有hba卡,此时则可以进一步判断目标插槽的带宽值是否为零。当目标插槽的带宽值为零时,则说明目标插槽虽然连接有hba卡但是系统识别失败了,此时可以调用系统重启程序,并重新执行检测hba卡的步骤,以此降低由于外界因素的干扰造成hba卡link失败的情况发生,有效的提升了系统成功识别hba卡的概率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种检测hba卡的方法的流程图;

图2为本发明实施例提供的一种检测hba卡的装置的结构示意图;

图3为本发明实施例提供的一种检测hba卡的装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种检测hba卡的方法。图1为本发明实施例提供的一种检测hba卡的方法的流程图,该方法包括:

s10:检测目标插槽的槽位状态信息是否为有效信息。

其中,目标插槽可以是用于和hba卡连接的插槽。

在实际应用中,cpu上往往设置有pcie接口,用于和hba卡互联,相应的,目标插槽可以是用于和hba卡互联的pcie接口。

在cpu中存在有用于记录目标插槽相关状态信息的存储器。在本发明实施例中依据这些存储器中记录的信息来对hba的连接状态进行判定,从而有效降低由于外界因素的干扰如电磁干扰等造成系统识别hba卡失败的情况发生。

为了方便介绍,下面均以pcie接口作为目标插槽为例,对hba卡检测的过程展开介绍。

pcie接口有其对应的pcie存储器。依据记录信息的种类不同,pcie存储器包括有pxpcap存储器和inksts存储器。

其中,inksts存储器中记录有pcie接口的带宽值、运行速率等信息。在pxpcap存储器中记录有pcie接口的槽位状态信息。槽位状态信息反映了pcie接口的占用情况,当pcie接口连接有hba卡时,此时pcie接口被占用,相应的,pcie接口的槽位状态信息即为有效信息。

根据存储器的信息记录机制,一般情况下,会用数字“0”表示无效信息,数字“1”表示有效信息。相应的,当检测到槽位状态信息为1时,即说明该槽位状态信息为有效信息。

系统启动后,可以获取寄存器中记载的目标插槽的槽位状态信息。当目标插槽的槽位状态信息为有效信息时,说明目标插槽中连接有hba卡,此时是否能够成功的识别到hba卡则需要做进一步的判断,即执行s11。

s11:判断目标插槽的带宽值是否为零。

带宽值是判断系统能否识别出hba卡的重要依据。

当目标插槽的带宽值为零时,则说明目标插槽和hba卡能够实现通信,系统可以顺利识别出hba卡的存在,即hba卡连接(link)成功,此时则可以结束检测hba卡的操作。

当带宽值为零时,则说明目标插槽和hba卡之间没有信号的流通,系统无法顺利识别出hba卡的存在,即hba卡link失败。

在实际应用中,往往会由于外在因素的干扰如电磁干扰等,造成hba卡link失败。为了有效降低该种情况的发生,当判断出目标插槽的带宽值为零后,则可以执行s12。

需要说明的是,在本发明实施例中,对于s10和s11的先后顺序不做限定,也可以先判断目标插槽的带宽值是否为零;当目标插槽的带宽值为零时,再进一步检测目标插槽的槽位状态信息是否为有效信息;当检测目标插槽的槽位状态信息为有效信息时,则说明目标插槽连接有hba卡,但是hba卡link失败了,此时则可以执行s12。

s12:调用系统重启程序,并返回s11。

通过依据目标插槽的槽位状态信息和带宽值,对hba卡的连接情况进行判定,当目标插槽的槽位状态信息为有效信息,并且目标插槽的带宽值为零时,则说明目标插槽连接有hba卡但是系统无法识别到hba卡的存在,此时可以调用系统重启程序。

当系统重启后,系统会对hba卡重新进行检测,此时可以返回s11对目标插槽的带宽值重新进行判断。

当然在系统重启后,也可以返回s10先对目标插槽的槽位状态信息进行检测,当该槽位状态信息为有效信息时,再对目标插槽的带宽值是否为零进行判断。这样可以有效的确保是在目标插槽连接有hba卡的情况下,再对目标插槽的带宽值是否为零进行判断。

由上述技术方案可以看出,检测目标插槽的槽位状态信息是否为有效信息;其中,目标插槽为用于和hba卡连接的插槽。当目标插槽的槽位状态信息为有效信息时,则说明该目标插槽连接有hba卡,此时则可以进一步判断目标插槽的带宽值是否为零。当目标插槽的带宽值为零时,则说明目标插槽虽然连接有hba卡但是系统识别失败了,此时可以调用系统重启程序,并重新执行检测hba卡的步骤,以此降低由于外界因素的干扰造成hba卡link失败的情况发生,有效的提升了系统成功识别hba卡的概率。

一般情况下,系统经过多次重启后,几乎可以将外界干扰导致hba卡link失败的情况排除。在实际应用中,除了外界因素干扰导致hba卡link失败之外,也可能是由于hba启动程序和pcie不兼容,如果是由于程序不兼容,则无需一直对系统执行重启操作,故此,可以对调用系统重启程序的次数进行限定,当调用系统重启程序的次数达到设定的上限值时,目标插槽的带宽值仍未零,为了避免系统执行不必要的操作,则可以结束检测hba卡的操作。

具体的,可以在调用系统重启程序之后,并且在返回s11之前对调用系统重启程序的次数进行统计,并判断该次数是否达到预设上限值。

预设上限值可以是调用系统重启程序次数的最大值,当调用系统重启程序的次数达到预设上限值时,则可以结束检测hba卡的操作,即停止执行上述s10-s12的步骤。

当调用系统重启程序的次数未达到预设上限值,则可以返回s11,继续对hba的连接状态进行判断,直至系统可以识别出hba为止或者调用系统重启程序的次数达到预设上限值,则结束检测hba卡的操作。

相应的,当次数达到预设上限值时,目标插槽的带宽值仍未零,则说明目标插槽虽然连接了hba卡,但是系统无法识别到该hba卡,相应的,也会不对利用到该hba卡,此时hba相当于是一个无效hba卡。为了避免无效hba卡对目标插槽的占用,以及对hba卡资源的浪费,则可以展示hba卡连接失败的提示信息。

在具体实现中,可以在系统中显示屏上设置相关的界面,用于展示hba卡连接失败的提示信息,以便于及时提供管理人员进行处理。

在实际应用中,hba卡有其对应的最大带宽值,当hba卡和系统cpu完全兼容时,则目标插槽的带宽值即为最大带宽值。当hba卡和系统cpu不完全兼容时,为了实现对hba卡的利用,系统往往会采用降级操作的方式,来实现和hba卡之间的正常通信。

其中,降级操作是指系统采用降低带宽值的方式来实现和hba卡之间的正常通信。例如,hba卡的最大带宽值为x8,而实际检测到的目标插槽的带宽值为x4,则说明系统为了实现和hba卡的正常通信,进行了降级操作。

但是降级操作后,hba的资源利用率并不高。在本发明实施例中,可以依据带宽值对hba卡的资源利用率进行判定。

具体的,当目标插槽的带宽值不为零时,则可以判断目标插槽的带宽值和预先存储的目标带宽值是否相同。

其中,目标带宽值用于表示hba卡的最大带宽值。

当目标插槽的带宽值和预先存储的目标带宽值不相同时,则说明hba卡和系统cpu并非完全兼容,系统对于hba卡的利用率并不高,此时可以展示hba卡降级兼容的提示信息。

在具体实现中,可以在系统中显示屏上设置相关的界面,用于展示hba卡连接失败的提示信息,以便于管理人员及时了解hba卡的资源利用情况,从而换取更为合适的hba卡,以提高对hba卡的资源利用率。

在本发明实施例中,除了依据目标插槽的带宽值对系统是否执行了降级操作进行判定外,也可以依据目标插槽的速率值进行判断。

当目标插槽的速率值小于预先存储的目标速率值时,则说明系统进行了降级处理。其中,目标速率值为hba可以达到的最大速率值。速率值和带宽值的判断原理类似,在此不再赘述。

图2为本发明实施例提供的一种检测hba卡的装置的结构示意图,所述装置包括检测单元21、判断单元22和调用单元23;

检测单元21,用于检测目标插槽的槽位状态信息是否为有效信息;若是,则触发判断单元22;其中,目标插槽为用于和hba卡连接的插槽;

判断单元22,用于判断目标插槽的带宽值是否为零;若是,则触发调用单元23;若否,则结束检测hba卡的操作;

调用单元23,用于调用系统重启程序,并触发判断单元21。

可选的,还包括统计单元;

统计单元,用于统计调用系统重启程序的次数;

判断单元还用于判断次数是否达到预设上限值;若是,则结束检测hba卡的操作;若否,则触发判断单元。

可选的,还包括连接失败提示单元;

连接失败提示单元,用于当次数达到预设上限值时,展示hba卡连接失败的提示信息。

可选的,还包括降级兼容提示单元;

判断单元还用于当目标插槽的带宽值不为零时,则判断带宽值和预先存储的目标带宽值是否相同;若否,则触发降级兼容提示单元;

降级兼容提示单元,用于展示hba卡降级兼容的提示信息。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,检测目标插槽的槽位状态信息是否为有效信息;其中,目标插槽为用于和hba卡连接的插槽。当目标插槽的槽位状态信息为有效信息时,则说明该目标插槽连接有hba卡,此时则可以进一步判断目标插槽的带宽值是否为零。当目标插槽的带宽值为零时,则说明目标插槽虽然连接有hba卡但是系统识别失败了,此时可以调用系统重启程序,并重新执行检测hba卡的步骤,以此降低由于外界因素的干扰造成hba卡link失败的情况发生,有效的提升了系统成功识别hba卡的概率。

图3为本发明实施例提供的一种检测hba卡的装置30的硬件结构示意图,所述检测hba卡的装置30包括:

存储器31,用于存储计算机程序;

处理器32,用于执行所述计算机程序以实现如上述检测hba卡的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述检测hba卡的方法的步骤。

以上对本发明实施例所提供的一种检测hba卡的方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1