CN109614286A - 一种PCIe设备的热插拔识别方法、装置和介质 - Google Patents
一种PCIe设备的热插拔识别方法、装置和介质 Download PDFInfo
- Publication number
- CN109614286A CN109614286A CN201811475953.8A CN201811475953A CN109614286A CN 109614286 A CN109614286 A CN 109614286A CN 201811475953 A CN201811475953 A CN 201811475953A CN 109614286 A CN109614286 A CN 109614286A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interrupt requests
- slot position
- target slot
- pcie device
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003780 insertion Methods 0.000 claims abstract description 85
- 230000037431 insertion Effects 0.000 claims abstract description 85
- 238000012544 monitoring process Methods 0.000 claims abstract description 36
- 230000008859 change Effects 0.000 claims abstract description 17
- 238000001514 detection method Methods 0.000 claims abstract description 14
- 239000000284 extract Substances 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 9
- 238000003860 storage Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 54
- 108010001267 Protein Subunits Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 208000033999 Device damage Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种PCIe设备的热插拔识别方法、装置和计算机可读存储介质,操作系统端对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;PCIe设备监测端判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求;操作系统端判断中断请求所属的中断类型;当中断请求为热插入中断请求时,调用相应的热插入中断函数,对目标槽位执行插入操作;当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对目标槽位执行拔出操作,实现了对PCIe设备热插拔事件及时有效的识别处理。
Description
技术领域
本发明涉及设备识别技术领域,特别是涉及一种PCIe设备的热插拔识别方法、装置和计算机可读存储介质。
背景技术
随着存储系统的不断发展,越来越多的用户要求在不关闭整个系统和电源的前提下,进行固态硬盘(Solid State Drives,SSD)的更换,从而提高系统在异常情形下的及时恢复能力,提高系统的扩展和灵活性。基于该种情况,需要SSD具有热插拔的能力。
目前在热插拔实现上,最新的总线和接口标准(peripheral componentinterconnect express,PCIe)设备、PCIe交换机(PCIe#switch)及相应的软件上往往缺乏完整的热插拔监控机制或者是不兼容的问题,导致无法及时准确的对热插拔的PCIe设备进行识别和处理。
可见,如何实现对PCIe设备热插拔事件及时有效的识别处理,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种PCIe设备的热插拔识别方法、装置和计算机可读存储介质,可以实现对PCIe设备热插拔事件及时有效的识别处理。
为解决上述技术问题,本发明实施例提供一种PCIe设备的热插拔识别方法,适用于操作系统端,所述方法包括:
对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;
接收PCIe设备监测端发送的中断请求;
判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;
当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;
当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。
可选的,所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作包括:
调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位进行供电;
建立与所述目标槽位上的PCIe设备之间的通信链路,并为所述PCIe设备分配驱动资源;
相应的,所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作包括:
调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位进行断电,并卸载所述目标槽位上的PCIe设备的驱动资源。
可选的,在所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位进行供电之后,并且在所述建立与所述目标槽位上的PCIe设备之间的通信链路之前还包括:
判断在到达预设时间时热插拔状态信息是否为插入状态;
若是,对所述目标槽位设置无效标识,并执行所述建立与所述目标槽位上的PCIe设备之间的通信链路的步骤;
相应的,在所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位进行断电之后,并且在所述卸载所述PCIe设备的驱动资源之前还包括:
判断在到达预设时间时热插拔状态信息是否为拔出状态;
若是,对所述目标槽位设置有效标识,并执行所述卸载所述PCIe设备的驱动资源的步骤。
可选的,所述判断所述中断请求所属的中断类型包括:
判断所述中断请求中是否携带在线状态标识;
若是,则判定所述中断请求为热插入中断请求;
若否,则判断所述中断请求中是否携带有离线状态标识和链路中断标识;
若是,则判定所述中断请求为热拔出中断请求。
本发明实施例还提供了一种PCIe设备的热插拔识别装置,适用于操作系统端,所述装置包括初始化单元、接收单元、判断单元、插入单元和拔出单元;
所述初始化单元,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;
所述接收单元,用于接收PCIe设备监测端发送的中断请求;
所述判断单元,用于判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;
所述插入单元,用于当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位执行插入操作;
所述拔出单元,用于当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位执行拔出操作。
可选的,所述插入单元包括供电子单元和分配子单元;
所述供电子单元,用于调用相应的热插入中断函数,对所述中断请求所指向的目标槽位进行供电;
所述分配子单元,用于建立与所述目标槽位上的PCIe设备之间的通信链路,并为所述PCIe设备分配驱动资源;
相应的,所述拔出单元包括切断子单元和卸载子单元;
所述切断子单元,用于调用相应的热拔出中断函数,对所述中断请求所指向的目标槽位进行断电;
所述卸载子单元,用于卸载所述目标槽位上的PCIe设备的驱动资源。
可选的,并且在所述建立与所述目标槽位上的PCIe设备之间的通信链路之前还包括状态判断单元和设置单元;
所述状态判断单元,用于在所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位进行供电之后,判断在到达预设时间时热插拔状态信息是否为插入状态;若是,触发所述设置单元;
所述设置单元,用于对所述目标槽位设置无效标识,并触发所述分配子单元执行所述建立与所述目标槽位上的PCIe设备之间的通信链路的步骤;
相应的,所述状态判断单元还用于在所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位进行断电之后,判断在到达预设时间时热插拔状态信息是否为拔出状态;若是,触发所述设置单元;
所述设置单元,用于对所述目标槽位设置有效标识,并触发所述卸载子单元执行所述卸载所述PCIe设备的驱动资源的步骤。
可选的,判断单元包括第一判断子单元、第一判定子单元、第二判断子单元和第二判定子单元;
所述第一判断子单元,用于判断所述中断请求中是否携带在线状态标识;若是,则触发所述第一判定子单元;若否,则触发所述第二判断子单元;
所述第一判定子单元,用于判定所述中断请求为热插入中断请求;
所述第二判断子单元,用于判断所述中断请求中是否携带有离线状态标识和链路中断标识;若是,则触发所述第二判定子单元;
所述第二判定子单元,用于判定所述中断请求为热拔出中断请求。
本发明实施例还提供了一种PCIe设备的热插拔识别方法,适用于PCIe设备监测端,所述方法包括:
判断各热插拔槽位的电平信号及其链路状态是否发生变化;
若是,根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
本发明实施例还提供了一种PCIe设备的热插拔识别装置,适用于PCIe设备监测端,所述装置包括判断单元和发送单元;
所述判断单元,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,则触发所述发送单元;
所述发送单元,用于根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
本发明实施例还提供了一种PCIe设备的热插拔识别系统,包括操作系统端和PCIe设备监测端;
所述操作系统端,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;接收PCIe设备监测端发送的中断请求;判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作;
所述PCIe设备监测端,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
由上述技术方案可以看出,操作系统端对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;PCIe设备监测端判断各热插拔槽位的电平信号及其链路状态是否发生变化;当热插拔槽位的电平信号及其链路状态发生变化时,则说明热插拔槽位有PCIe设备插入或者是PCIe设备拔出,此时PCIe设备监测端根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求;操作系统端接收PCIe设备监测端发送的中断请求;判断中断请求所属的中断类型;其中,中断类型包括热插入中断请求和热拔出中断请求;当中断请求为热插入中断请求时,则调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。该技术方案提供了一套完整的PCIe设备热插拔事件的识别体系,实现了对PCIe设备热插拔事件及时有效的识别处理。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种PCIe设备的热插拔识别方法的信令流程图;
图2为本发明实施例提供的一种适用于操作系统端的PCIe设备的热插拔识别装置的结构示意图;
图3为本发明实施例提供的一种适用于PCIe设备监测端的PCIe设备的热插拔识别装置的结构示意图;
图4为本发明实施例提供的一种PCIe设备的热插拔识别系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的PCIe设备的热插拔识别方法。图1为本发明实施例提供的一种PCIe设备的热插拔识别方法的信令流程图,该方法包括:
S101:操作系统端对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数。
热插拔事件包括热插入和热拔出,热插入是指PCIe设备插入相应的槽位;热拔出是指PCIe设备从相应的槽位中拔出。
针对于热插拔事件需要预先为其分配桥设备资源和插槽资源;插槽资源包括PCIe设备实现插拔的槽位;桥设备资源用于实现操作系统端和PCIe设备监测端的信息交互。
当出现热插拔事件时,操作系统端可以调用相应的中断服务函数处理热插拔事件。
S102:PCIe设备监测端判断各热插拔槽位的电平信号及其链路状态是否发生变化。
操作系统为热插拔事件分配的插槽资源往往包括有多个槽位,每个槽位的检测方式类似,在本发明实施例中,以所分配的所有槽位中的任意一个槽位即目标槽位为例展开说明。
当PCIe设备插入目标槽位,目标槽位上电平信号会发生变化。一般情况下,目标槽位在空闲状态下即没有PCIe设备插入时,处于低电平状态;目标槽位在占用状态下即插入有PCIe设备时,处于高电平状态。当出现PCIe设备的插入或拔出时,目标槽位的电平信号会发生变化。为了便于介绍,在本发明实施例中,均以高电平对应PCIe设备插入槽位;低电平对应PCIe设备从槽位中拔出为例展开说明。
考虑到在实际应用中,可能会出现PCIe设备损坏的情况,从而导致目标槽位上的电压信号出现异常,因此,在本发明实施例中,在检测电压信号的基础上增加了对链路状态的检测。
当目标槽位上的电平信号及其链路状态均发生变化时,则说明目标槽位存在PCIe设备的插入或者是拔出,此时则可以执行S103。
S103:PCIe设备监测端根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
在本发明实施例中,为了区分不同的槽位,可以针对于每个槽位设置其对应的一个槽位标识。
热插事件包括热插入和热拔出两种类型,针对于不同类型的热插拔事件,中断请求中所携带的标识信息有所差异。
当PCIe设备监测端检测到目标槽位上的电压信号由低电平变为高电平时,则说明有PCIe设备插入目标槽位,此时可以向操作系统端发送携带在线状态标识和目标槽位标识的中断请求。
当PCIe设备监测端检测到目标槽位上的电压信号由高电平变为低电平,并且目标槽位所对应的链路断开时,则说明该目标槽位上的PCIe设备被拔出,此时可以向操作系统端发送携带离线状态标识、链路中断标识和目标槽位标识的中断请求。
S104:操作系统端接收PCIe设备监测端发送的中断请求。
S105:操作系统端判断中断请求所属的中断类型。
中断类型包括热插入中断请求和热拔出中断请求。
操作系统根据中断请求中携带的标识信息,可以确定出该中断请求所属的中断类型。
在具体实现中,操作系统端可以判断中断请求中是否携带在线状态标识;当中断请求中携带有在线状态标识时,则判定中断请求为热插入中断请求;当中断请求中为携带在线状态标识时,则判断中断请求中是否携带有离线状态标识和链路中断标识;当中断请求中携带有离线状态标识和链路中断标识,则判定中断请求为热拔出中断请求。
上述方式仅是一种具体可行的中断类型判断方式,在实际应用中,对于各判断步骤的先后顺序可以进行调整,例如,可以先判断中断请求中是否携带有离线状态标识和链路中断标识,当中断请求中未携带离线状态标识和链路中断标识时,再判断中断请求中是否携带在线状态标识。本发明实施例对于判断中断请求的具体形式不做限定。
S106:当中断请求为热插入中断请求时,操作系统端则调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作。
在具体实现中,当中断请求为热插入中断请求时,操作系统端可以调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位进行供电,为插入的PCIe设备提供设备运行所需的供电电源。
为了保证PCIe设备的正常运行,操作系统端可以建立与目标槽位上的PCIe设备之间的通信链路,并为PCIe设备分配驱动资源。
其中,驱动资源可以包括配置空间和中断向量,配置空间可以供PCIe设备存储数据,中断向量中记载了PCIe设备运行时所需的程序代码。
S107:当中断请求为热拔出中断请求时,操作系统端则调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。
在具体实现中,当中断请求为热拔出中断请求时,操作系统端可以调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位进行断电,并卸载目标槽位上的PCIe设备的驱动资源。
当PCIe设备从目标槽位上拔出时,操作系统端为PCIe设备分配的驱动资源仍保留在操作系统中,为了提升资源利用率,此时操作系统端可以将该PCIe设备所对应的驱动资源卸载。
由上述技术方案可以看出,操作系统端对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;PCIe设备监测端判断各热插拔槽位的电平信号及其链路状态是否发生变化;当热插拔槽位的电平信号及其链路状态发生变化时,则说明热插拔槽位有PCIe设备插入或者是PCIe设备拔出,此时PCIe设备监测端根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求;操作系统端接收PCIe设备监测端发送的中断请求;判断中断请求所属的中断类型;其中,中断类型包括热插入中断请求和热拔出中断请求;当中断请求为热插入中断请求时,则调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。该技术方案提供了一套完整的PCIe设备热插拔事件的识别体系,实现了对PCIe设备热插拔事件及时有效的识别处理。
在操作系统端设置有热插拔状态寄存器,当目标槽位完成上电或下电操作后,该热插拔状态寄存器记录的状态信息会发生变化。
在本发明实施例中,操作系统端在调用相应的热插入中断函数,对中断请求中携带的目标槽位进行供电之后,可以依据热插拔状态寄存器中记录的热插拔状态信息进一步确定目标槽位的状态。具体的,可以判断在到达预设时间时热插拔状态信息是否为插入状态。
预设时间的取值可以依据实际需求进行设定,例如,可以将预设时间取值设置为100ms,当操作系统端控制热插拔控制器向目标槽位供电后,等待100ms后,再判断热插拔状态信息是否为插入状态。
PCIe设备的热插入或者是热拔出会带来抖动,通过等待预设时间可以降低抖动带来的影响。
当热插拔状态信息为插入状态时,则可以对目标槽位设置无效标识,并执行建立与目标槽位上的PCIe设备之间的通信链路的步骤。
相应的,在调用相应的热拔出中断函数,对中断请求中携带的目标槽位进行断电之后,操作系统端可以判断在到达预设时间时热插拔状态信息是否为拔出状态。当热插拔状态信息为拔出状态时,操作系统端可以对目标槽位设置有效标识,并执行卸载PCIe设备的驱动资源的步骤。
无效标识可以用于表示目标槽位已经被占用。有效标识可以用于表示目标槽位处于空闲状态,此时目标槽位插入PCIe设备时,需要对PCIe设备进行复位操作。
根据目标槽位的当前状态,对目标槽位设置有效标识或者是无效标识,可以便于PCIe设备监测端对目标槽位的监控和管理,并且保证了目标槽位上PCIe设备复位工作的有序执行。
图2为本发明实施例提供的一种PCIe设备的热插拔识别装置的结构示意图,适用于操作系统端,装置包括初始化单元21、接收单元22、判断单元23、插入单元24和拔出单元25;
初始化单元21,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;
接收单元22,用于接收PCIe设备监测端发送的中断请求;
判断单元23,用于判断中断请求所属的中断类型;其中,中断类型包括热插入中断请求和热拔出中断请求;
插入单元24,用于当中断请求为热插入中断请求时,则调用相应的热插入中断函数,对中断请求中携带的目标槽位执行插入操作;
拔出单元25,用于当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对中断请求中携带的目标槽位执行拔出操作。
可选的,插入单元包括供电子单元和分配子单元;
供电子单元,用于调用相应的热插入中断函数,对中断请求所指向的目标槽位进行供电;
分配子单元,用于建立与目标槽位上的PCIe设备之间的通信链路,并为PCIe设备分配驱动资源;
相应的,拔出单元包括切断子单元和卸载子单元;
切断子单元,用于调用相应的热拔出中断函数,对中断请求所指向的目标槽位进行断电;
卸载子单元,用于卸载目标槽位上的PCIe设备的驱动资源。
可选的,并且在建立与目标槽位上的PCIe设备之间的通信链路之前还包括状态判断单元和设置单元;
状态判断单元,用于在调用相应的热插入中断函数,对中断请求中携带的目标槽位进行供电之后,判断在到达预设时间时热插拔状态信息是否为插入状态;若是,触发设置单元;
设置单元,用于对目标槽位设置无效标识,并触发分配子单元执行建立与目标槽位上的PCIe设备之间的通信链路的步骤;
相应的,状态判断单元还用于在调用相应的热拔出中断函数,对中断请求中携带的目标槽位进行断电之后,判断在到达预设时间时热插拔状态信息是否为拔出状态;若是,触发设置单元;
设置单元,用于对目标槽位设置有效标识,并触发卸载子单元执行卸载PCIe设备的驱动资源的步骤。
可选的,判断单元包括第一判断子单元、第一判定子单元、第二判断子单元和第二判定子单元;
第一判断子单元,用于判断中断请求中是否携带在线状态标识;若是,则触发第一判定子单元;若否,则触发第二判断子单元;
第一判定子单元,用于判定中断请求为热插入中断请求;
第二判断子单元,用于判断中断请求中是否携带有离线状态标识和链路中断标识;若是,则触发第二判定子单元;
第二判定子单元,用于判定中断请求为热拔出中断请求。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,操作系统端对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;当接收PCIe设备监测端发送的中断请求;判断中断请求所属的中断类型;其中,中断类型包括热插入中断请求和热拔出中断请求;当中断请求为热插入中断请求时,则调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。该技术方案提供了一套完整的PCIe设备热插拔事件的识别体系,实现了对PCIe设备热插拔事件及时有效的识别处理。
图3为本发明实施例提供的一种PCIe设备的热插拔识别装置的结构示意图,适用于PCIe设备监测端,装置包括判断单元31和发送单元32;
判断单元31,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,则触发发送单元32;
发送单元32,用于根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,PCIe设备监测端判断各热插拔槽位的电平信号及其链路状态是否发生变化;当热插拔槽位的电平信号及其链路状态发生变化时,则说明热插拔槽位有PCIe设备插入或者是PCIe设备拔出,此时PCIe设备监测端根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求,以便于操作系统端根据中断请求所属的中断类型,调用相应的中断函数对中断请求中携带的目标槽位标识所指向的目标槽位执行热插拔处理。该技术方案提供了一套完整的PCIe设备热插拔事件的识别体系,实现了对PCIe设备热插拔事件及时有效的识别处理。
图4为本发明实施例提供的一种PCIe设备的热插拔识别系统40的结构示意图,包括操作系统端41和PCIe设备监测端42;
操作系统端41,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;接收PCIe设备监测端发送的中断请求;判断中断请求所属的中断类型;其中,中断类型包括热插入中断请求和热拔出中断请求;当中断请求为热插入中断请求时,则调用相应的热插入中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作;
PCIe设备监测端42,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,根据电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
以上对本发明实施例所提供的一种PCIe设备的热插拔识别方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (10)
1.一种PCIe设备的热插拔识别方法,其特征在于,适用于操作系统端,所述方法包括:
对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;
接收PCIe设备监测端发送的中断请求;
判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;
当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;
当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作。
2.根据权利要求1所述的方法,其特征在于,所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作包括:
调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位进行供电;
建立与所述目标槽位上的PCIe设备之间的通信链路,并为所述PCIe设备分配驱动资源;
相应的,所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作包括:
调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位进行断电,并卸载所述目标槽位上的PCIe设备的驱动资源。
3.根据权利要求2所述的方法,其特征在于,在所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位进行供电之后,并且在所述建立与所述目标槽位上的PCIe设备之间的通信链路之前还包括:
判断在到达预设时间时热插拔状态信息是否为插入状态;
若是,对所述目标槽位设置无效标识,并执行所述建立与所述目标槽位上的PCIe设备之间的通信链路的步骤;
相应的,在所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位进行断电之后,并且在所述卸载所述PCIe设备的驱动资源之前还包括:
判断在到达预设时间时热插拔状态信息是否为拔出状态;
若是,对所述目标槽位设置有效标识,并执行所述卸载所述PCIe设备的驱动资源的步骤。
4.根据权利要求2所述的方法,其特征在于,所述判断所述中断请求所属的中断类型包括:
判断所述中断请求中是否携带在线状态标识;
若是,则判定所述中断请求为热插入中断请求;
若否,则判断所述中断请求中是否携带有离线状态标识和链路中断标识;
若是,则判定所述中断请求为热拔出中断请求。
5.一种PCIe设备的热插拔识别装置,其特征在于,适用于操作系统端,所述装置包括初始化单元、接收单元、判断单元、插入单元和拔出单元;
所述初始化单元,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;
所述接收单元,用于接收PCIe设备监测端发送的中断请求;
所述判断单元,用于判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;
所述插入单元,用于当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位执行插入操作;
所述拔出单元,用于当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位执行拔出操作。
6.根据权利要求5所述的装置,其特征在于,所述插入单元包括供电子单元和分配子单元;
所述供电子单元,用于调用相应的热插入中断函数,对所述中断请求所指向的目标槽位进行供电;
所述分配子单元,用于建立与所述目标槽位上的PCIe设备之间的通信链路,并为所述PCIe设备分配驱动资源;
相应的,所述拔出单元包括切断子单元和卸载子单元;
所述切断子单元,用于调用相应的热拔出中断函数,对所述中断请求所指向的目标槽位进行断电;
所述卸载子单元,用于卸载所述目标槽位上的PCIe设备的驱动资源。
7.根据权利要求6所述的装置,其特征在于,并且在所述建立与所述目标槽位上的PCIe设备之间的通信链路之前还包括状态判断单元和设置单元;
所述状态判断单元,用于在所述调用相应的热插入中断函数,对所述中断请求中携带的目标槽位进行供电之后,判断在到达预设时间时热插拔状态信息是否为插入状态;若是,触发所述设置单元;
所述设置单元,用于对所述目标槽位设置无效标识,并触发所述分配子单元执行所述建立与所述目标槽位上的PCIe设备之间的通信链路的步骤;
相应的,所述状态判断单元还用于在所述调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位进行断电之后,判断在到达预设时间时热插拔状态信息是否为拔出状态;若是,触发所述设置单元;
所述设置单元,用于对所述目标槽位设置有效标识,并触发所述卸载子单元执行所述卸载所述PCIe设备的驱动资源的步骤。
8.一种PCIe设备的热插拔识别方法,其特征在于,适用于PCIe设备监测端,所述方法包括:
判断各热插拔槽位的电平信号及其链路状态是否发生变化;
若是,根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
9.一种PCIe设备的热插拔识别装置,其特征在于,适用于PCIe设备监测端,所述装置包括判断单元和发送单元;
所述判断单元,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,则触发所述发送单元;
所述发送单元,用于根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
10.一种PCIe设备的热插拔识别系统,其特征在于,包括操作系统端和PCIe设备监测端;
所述操作系统端,用于对热插拔事件分配桥设备资源和插槽资源,并注册热插拔中断服务函数和槽位事件检测函数;接收PCIe设备监测端发送的中断请求;判断所述中断请求所属的中断类型;其中,所述中断类型包括热插入中断请求和热拔出中断请求;当所述中断请求为热插入中断请求时,则调用相应的热插入中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行插入操作;当所述中断请求为热拔出中断请求时,则调用相应的热拔出中断函数,对所述中断请求中携带的目标槽位标识所指向的目标槽位执行拔出操作;
所述PCIe设备监测端,用于判断各热插拔槽位的电平信号及其链路状态是否发生变化;若是,根据所述电位信号和链路状态所对应的热插拔类型,向操作系统端发送携带标识信息的中断请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811475953.8A CN109614286A (zh) | 2018-12-04 | 2018-12-04 | 一种PCIe设备的热插拔识别方法、装置和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811475953.8A CN109614286A (zh) | 2018-12-04 | 2018-12-04 | 一种PCIe设备的热插拔识别方法、装置和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614286A true CN109614286A (zh) | 2019-04-12 |
Family
ID=66006995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811475953.8A Withdrawn CN109614286A (zh) | 2018-12-04 | 2018-12-04 | 一种PCIe设备的热插拔识别方法、装置和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614286A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457005A (zh) * | 2019-08-16 | 2019-11-15 | 歌尔股份有限公司 | 一种设备信号过滤方法、装置、系统和介质 |
CN111338700A (zh) * | 2020-02-24 | 2020-06-26 | 杭州迪普科技股份有限公司 | 加载fpga版本的方法及装置、存储介质 |
CN111881074A (zh) * | 2019-05-02 | 2020-11-03 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN112115000A (zh) * | 2020-09-16 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 系统部件电源的远端重置方法、系统及bmc远端设备 |
CN112463446A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种PCIe设备恢复方法、系统及电子设备和存储介质 |
CN113485955A (zh) * | 2021-07-07 | 2021-10-08 | 中国科学技术大学先进技术研究院 | 设备传输电路、装置及系统 |
CN114020670A (zh) * | 2021-10-28 | 2022-02-08 | 郑州云海信息技术有限公司 | 一种pcie卡的管理方法、系统、设备及存储介质 |
CN114385537A (zh) * | 2022-03-24 | 2022-04-22 | 浪潮(山东)计算机科技有限公司 | 一种页槽号动态分配方法、装置、设备及介质 |
CN117591458A (zh) * | 2024-01-18 | 2024-02-23 | 四川惟芯科技有限公司 | 一种固态硬盘热插拔管理系统及方法 |
-
2018
- 2018-12-04 CN CN201811475953.8A patent/CN109614286A/zh not_active Withdrawn
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881074A (zh) * | 2019-05-02 | 2020-11-03 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN111881074B (zh) * | 2019-05-02 | 2021-11-09 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN110457005A (zh) * | 2019-08-16 | 2019-11-15 | 歌尔股份有限公司 | 一种设备信号过滤方法、装置、系统和介质 |
CN110457005B (zh) * | 2019-08-16 | 2023-06-20 | 歌尔股份有限公司 | 一种设备信号过滤方法、装置、系统和介质 |
CN111338700A (zh) * | 2020-02-24 | 2020-06-26 | 杭州迪普科技股份有限公司 | 加载fpga版本的方法及装置、存储介质 |
CN111338700B (zh) * | 2020-02-24 | 2022-11-25 | 杭州迪普科技股份有限公司 | 加载fpga版本的方法及装置、存储介质 |
CN112115000B (zh) * | 2020-09-16 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 系统部件电源的远端重置方法、系统及bmc远端设备 |
CN112115000A (zh) * | 2020-09-16 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 系统部件电源的远端重置方法、系统及bmc远端设备 |
CN112463446A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种PCIe设备恢复方法、系统及电子设备和存储介质 |
CN112463446B (zh) * | 2020-11-19 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种PCIe设备恢复方法、系统及电子设备和存储介质 |
CN113485955A (zh) * | 2021-07-07 | 2021-10-08 | 中国科学技术大学先进技术研究院 | 设备传输电路、装置及系统 |
CN113485955B (zh) * | 2021-07-07 | 2024-02-23 | 合肥中科采象科技有限公司 | 设备传输电路、装置及系统 |
CN114020670A (zh) * | 2021-10-28 | 2022-02-08 | 郑州云海信息技术有限公司 | 一种pcie卡的管理方法、系统、设备及存储介质 |
CN114020670B (zh) * | 2021-10-28 | 2024-04-26 | 郑州云海信息技术有限公司 | 一种pcie卡的管理方法、系统、设备及存储介质 |
CN114385537A (zh) * | 2022-03-24 | 2022-04-22 | 浪潮(山东)计算机科技有限公司 | 一种页槽号动态分配方法、装置、设备及介质 |
CN117591458A (zh) * | 2024-01-18 | 2024-02-23 | 四川惟芯科技有限公司 | 一种固态硬盘热插拔管理系统及方法 |
CN117591458B (zh) * | 2024-01-18 | 2024-04-09 | 四川惟芯科技有限公司 | 一种固态硬盘热插拔管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614286A (zh) | 一种PCIe设备的热插拔识别方法、装置和介质 | |
CN110429672B (zh) | 电池充电管理方法、终端设备及存储介质 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN108430116A (zh) | 断网重连方法、介质、装置和计算设备 | |
CN102692985B (zh) | 远程管理式计算机系统的平稳带外电源控制方法和系统 | |
CN101495988A (zh) | 在无线网络中的保留会话 | |
CN105739668A (zh) | 一种笔记本电脑的电源管理方法及电源管理系统 | |
CN111399879A (zh) | 一种cpld的固件升级系统和方法 | |
CN110069925A (zh) | 软件监测方法、系统及计算机可读存储介质 | |
CN101895138B (zh) | 蓄电池组管理方法及系统 | |
CN109856984B (zh) | 用电管理方法、装置、计算机设备和存储介质 | |
CN109343944A (zh) | eSIM卡的数据处理方法、装置、终端及存储介质 | |
CN101309300B (zh) | 一种多路径存储系统中的路径倒换控制方法和系统 | |
CN106227569A (zh) | 一种应用升级方法及终端设备 | |
CN103971430B (zh) | 一种变电站接地线实时监控管理方法 | |
CN105472599A (zh) | 访问sim卡的方法和双卡移动终端 | |
CN105119765B (zh) | 一种智能处理故障体系架构 | |
CN106294070A (zh) | 对服务器内存cpu及硬盘使用率的监控方法 | |
CN201657197U (zh) | 智能电源管理视频监控设备 | |
CN108631438A (zh) | 一种基于云计算的智能电源控制方法及其智能电源、云计算中心 | |
TW201044810A (en) | Method to control the overload of power | |
CN108055159A (zh) | 一种集群节点操作同步方法及装置 | |
CN210428579U (zh) | 无源电编码锁 | |
CN106937407A (zh) | 一种无线网络连接管理方法及装置、终端 | |
CN217543332U (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190412 |
|
WW01 | Invention patent application withdrawn after publication |