CN116737636B - Pcie设备热拔插控制方法及相关装置 - Google Patents

Pcie设备热拔插控制方法及相关装置 Download PDF

Info

Publication number
CN116737636B
CN116737636B CN202311009392.3A CN202311009392A CN116737636B CN 116737636 B CN116737636 B CN 116737636B CN 202311009392 A CN202311009392 A CN 202311009392A CN 116737636 B CN116737636 B CN 116737636B
Authority
CN
China
Prior art keywords
register
hot
value
pcie
plug
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.)
Active
Application number
CN202311009392.3A
Other languages
English (en)
Other versions
CN116737636A (zh
Inventor
胡培培
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202311009392.3A priority Critical patent/CN116737636B/zh
Publication of CN116737636A publication Critical patent/CN116737636A/zh
Application granted granted Critical
Publication of CN116737636B publication Critical patent/CN116737636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种PCIE设备热拔插控制方法及相关装置,应用于电子设备,该电子设备包括第一端口、热插入寄存器和热拔出寄存器,方法包括:在BIOS阶段,通过第一端口的OptionRom功能,从闪存中读取驱动程序,实现驱动功能,检测热拔出寄存器的值是否为第一指定值,热拔出寄存器携带第一寄存器信息,第一寄存器信息包括热拔出寄存器的值和第一BDF号,在热拔出寄存器的值为第一指定值时,读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除第一PCIE设备。采用本申请可以实现PCIE设备的热插拔机制。

Description

PCIE设备热拔插控制方法及相关装置
技术领域
本申请涉及通信技术领域或者互联网技术领域,具体涉及一种PCIE设备热拔插控制方法及相关装置。
背景技术
目前,基本输入输出系统(basic input output system,BIOS)扫描高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)拓扑阶段,不支持中断事件的处理,没有使能PCIE桥设备的消息信号中断(message signaled interrupts,MSI)MSI/扩展消息信号中断(extended message signaled interrupts,MSIX)能力,因此,不支持类似操作系统(operating system,OS)下的PCIE设备热插拔机制,因此,如何实现PCIE设备的热插拔机制的问题亟待解决。
发明内容
本申请提供了一种PCIE设备热拔插控制方法及相关装置,可以实现PCIE设备的热插拔机制。
第一方面,本申请提供一种PCIE设备热拔插控制方法,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,所述方法包括:
在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能;
检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;
在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
第二方面,本申请提供了一种PCIE设备热拔插控制装置,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,所述装置包括:读取单元、检测单元和删除单元,其中,
所述读取单元,用于在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能;
所述检测单元,用于检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;
所述删除单元,用于在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
第三方面,本申请提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请第一方面中的步骤的指令。
第四方面,本申请提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请第一方面中所描述的部分或全部步骤。
第五方面,本申请提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请,具备如下有益效果:
可以看出,本申请中所描述的PCIE设备热拔插控制方法及相关装置,应用于电子设备,该电子设备包括第一端口、热插入寄存器和热拔出寄存器,在BIOS阶段,通过第一端口的OptionRom功能,从闪存中读取驱动程序,以通过驱动程序实现驱动功能,检测热拔出寄存器的值是否为第一指定值,热拔出寄存器携带第一寄存器信息,第一寄存器信息包括热拔出寄存器的值和第一BDF号,第一指定值不为0,在热拔出寄存器的值为第一指定值时,读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除第一PCIE设备,释放第一PCIE设备的资源,由于BIOS阶段未安装操作系统,则可以通过OptionRom功能实现操作系统功能,另外,利用热插入寄存器和热拔出寄存器建立软件与硬件之间的桥梁,通过热拔出寄存器完成PCIE设备删除操作,进而,能够删除PCIE设备以实现PCIE设备的热插拔机制。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种用于实施PCIE设备热拔插控制方法的PCIE设备热拔插控制系统的架构示意图;
图2是本申请提供的一种PCIE设备热拔插控制方法的流程示意图;
图3是本申请提供的另一种用于实施PCIE设备热拔插控制方法的PCIE设备热拔插控制系统的架构示意图;
图4是本申请提供的另一种PCIE设备热拔插控制方法的流程示意图;
图5是本申请提供的一种电子设备的结构示意图;
图6是本申请提供的一种PCIE设备热拔插控制装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
具体实现中,本申请所涉及到的电子设备可以包括但不仅限于:智能网卡、数据处理器(data processing unit,DPU)、主机(HOST)、服务器、高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)设备。
本申请实施例中,PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。
其中,PCI Express由早期的PCI扩展衍生而来并且对兼容PCI,两者的主要区别在于并行到串行的切换,且速率更快。PCI Express是一种分层协议,由事务层,数据链路层和物理层组成。
其中,PCIE设备和PCI设备通过一种称作无意外(no surprises)方式实现热插拔。用户不允许在未告知系统软件的情况下插入或者移除一个PCIE设备;用户告知软件将要插入或者移除一个设备之后,软件将进行相关操作,之后告知用户是否可以安全的进行这个操作(通过相应的指示器);然后用户才可以进行接下来的操作。
其中,PCI Option ROM又叫PCI Expansion ROM。它是用于设备初始化和系统boot的code。有的PCI Option ROM被存放在板卡上,而有的则保存在BIOS的binary里面。
其中,DPU场景下,为了使DPU对HOST模拟出多个不同类型的标准PCIE设备,ECPU侧软件需要模拟出整个PCIE拓扑结构和不同类型的PCIE设备;HOST侧操作系统则枚举PCIE拓扑和PCIE设备;最后HOST侧不同类型驱动Probe不同类型PCIE设备。
相关技术中,请参阅图1,图1是本申请实施例提供的一种用于实施PCIE设备热拔插控制方法的PCIE设备热拔插控制系统的架构示意图,如图所示,本PCIE设备热拔插控制系统应用于主机(HOST),该系统可以包括:硬件模块和软件模块。硬件模块可以包括上层硬件(UP),如upstream、硬件层(HW)等等,在此不做限定,软件模块可以包括ECPU Emulator,硬件层可以包括网卡,如DPU网卡。ECPU Emulator用于模拟PCIE拓扑结构,PCIE拓扑结构可以包括多个节点,每一节点对应一个设备,例如,可以包括A1、第一交换机、B1、第二交换机、A2、B2、其中,A1、A2、B1、B2为PCIE设备。
相关技术中,对于热插入新的PCIE设备,需要手动重启Host进行重新扫描,对于PCIE设备的热拔出,目前并不支持。
为了解决相关技术中的缺陷,本申请提供了一种PCIE设备热拔插控制方法,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,其可以包括如下步骤:
在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能;
检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;
在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
本申请实施例中,可以在用户不参与的情况下,为处于BIOS阶段的Host动态增删PCIE设备,增加BIOS阶段PCIE拓扑更改的灵活性。
下面对本申请进行详细介绍。
请参阅图2,图2是本申请提供的一种PCIE设备热拔插控制方法的流程示意图,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,如图所示,本PCIE设备热拔插控制方法包括:
S201、在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能。
本申请实施例中,在BIOS阶段,由于没安装操作系统,进而,需要针对OptionRom功能,PCIE规范定义的一个闪存(Flash),网卡自带驱动,告诉HOST网卡自带驱动,通过OptionRom功能拉镜像,在第一次装机没操作系统,可以通过镜像实现操作系统功能。
其中,第一端口包括UP口。
其中,热插入寄存器即HotplugIn寄存器,热拔出寄存器即HotplugOut寄存器,本申请实施例中,借助于硬件提供的OptionRom功能和HotplugIn/HotplugOut寄存器,实现BIOS阶段PCIE设备热插拔机制。
具体实现中,可以通过第一端口的OptionRom功能,从闪存中读取驱动程序,以通过驱动程序实现驱动功能。
S202、检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0。
其中,第一指定值可以预先设置或者系统默认,第一指定值不为0,例如,第一指定值可以为1,本申请实施例中,可以检测热拔出寄存器的值是否为1。在出现热拔出寄存器的值为第一指定值,则说明需要删除PCIE设备,否则,则说明不需要删除PCIE设备。
具体实现中,第一寄存器信息可以包括一个字符串,例如,该字符串可以包括热拔出寄存器的值和第一BDF号,其中,第一BDF号可以理解为需要删除的设备的BDF号。具体的,可以检测热拔出寄存器的值是否为第一指定值,即检测是否出现PCIE设备删除信号。
本申请实施例中,PCIE总线中的每一个功能(Function)都有一个唯一的标识符与之对应,该标识符就是BDF号,BDF号具体包括总线(Bus)、设备(Device)、功能(Function)。
S203、在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
具体实现中,在热拔出寄存器的值为第一指定值时,则说明出现PCIE设备删除信号,则可以读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除所述第一PCIE设备,如此,可以实现动态删除PCIE设备,还可以释放第一PCIE设备的资源,如PCIE拓扑结构中第一PCIE设备所在的节点得以空闲出来,该节点可以用于插入其他需要插入的PCIE设备。
可选的,还可以包括如下步骤:
检测所述热插入寄存器的值是否为第二指定值,所述热插入寄存器携带第二寄存器信息,所述第二寄存器信息包括所述热插入寄存器的值,所述第二指定值不为0;在所述热插入寄存器的值为所述第二指定值时,将所述热插入寄存器的值设置为0;触发所述电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备。
本申请实施例中,第二指定值可以预先设置或者系统默认,第二指定值不为0,例如,第二指定值可以为1。具体实现中,第二指定值与第一指定值可以相同,也可以不同。
具体实现中,可以检测热插入寄存器的值是否为第二指定值。在出现热插入寄存器的值为第二指定值,则说明需要插入PCIE设备,否则,则说明不插入PCIE设备。
具体实现中,举例说明下,在第二指定值为1时,检测热插入寄存器的值是否为1,在热插入寄存器的值为1时,设置热插入寄存器的值为0,触发电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建第二PCIE设备,第二PCIE设备对应第二BDF号,进而,可以实现动态创建PCIE设备。
具体实现中,在热拔出寄存器的值不为第一指定值时,执行所述检测所述热插入寄存器的值是否为第二指定值的步骤。
具体实现中,在热拔出寄存器的值不为第一指定值时,则可以执行所述检测所述热插入寄存器的值是否为第二指定值的步骤,进而,能够便于实现动态插入PCIE设备。
可选的,还可以包括如下步骤:
在所述热插入寄存器的值不为所述第二指定值时,执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤。
具体实现中,在热插入寄存器的值不为第二指定值时,则可以执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤,进而,能够便于实现动态删除PCIE设备。
本申请实施例中,能够实现BIOS阶段PCIE设备热插拔机制:硬件提供OptionRom功能和HotplugIn/HotplugOut寄存器;ECPU侧创建新的PCIE设备,则设置HotplugIn寄存器为1,触发Host重新扫描并分配资源;ECPU侧删除PCIE设备,则设置HotplugOut寄存器为1,BIOS停止并复位该设备后,ECPU侧彻底删除该设备。
可选的,上述步骤,读取所述热拔出寄存器携带的第一BDF,可以包括如下步骤:
获取m个PCIE设备的BDF号,得到m个BDF号;选取所述m个BDF号中的一个BDF号作为所述第一BDF号;将所述第一BDF号传递给所述热拔出寄存器。
本申请实施例中,可以获取m个PCIE设备的BDF号,得到m个BDF号,m为正整数,选取m个BDF号中的一个BDF号作为第一BDF号,将第一BDF号传递给热拔出寄存器,即可以基于用户选择,删除用户想要删除的PCIE设备。
可选的,上述步骤,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备,可以包括如下步骤:
进行PCIE设备的扫描,以获取整个PCIE拓扑结构;根据所述整个PCIE拓扑结构确定可用资源,所述可用资源包括所述整个PCIE拓扑结构中的至少一个空闲节点;选取所述至少一个空闲节点中的目标空闲节点;根据所述目标空闲节点创建所述第二PCIE设备。
本申请实施例中,可以进行扫描和资源分配,创建需要创建的PCIE设备。具体实现中,进行PCIE设备的扫描,以获取整个PCIE拓扑结构,再根据整个PCIE拓扑结构确定可用资源,可用资源包括整个PCIE拓扑结构中的至少一个空闲节点,则可以选取至少一个空闲节点中的目标空闲节点,再根据目标空闲节点创建第二PCIE设备,第二PCIE设备可以对应第二BDF号,进而,可以实现PCIE设备动态创建。
本申请实施例中,可以借助于硬件提供的OptionRom功能和HotplugIn/HotplugOut寄存器,实现BIOS阶段PCIE设备热插拔机制,如图3所示,本PCIE设备热拔插控制系统应用于HOST,该系统可以包括:硬件模块和软件模块。硬件模块可以包括上层硬件(UP),如upstream、硬件层(HW)等等,在此不做限定,软件模块可以包括ECPU Emulator,硬件层可以包括网卡,如DPU网卡。软件模块(ECPU Emulator)用于模拟PCIE拓扑结构,例如,可以包括A1、第一交换机、B1、第二交换机、A2、B2、其中,A1、A2、B1、B2为PCIE设备。硬件层可以包括OptionRom(OptionRom功能)以及HotplugIn/HotplugOut寄存器。HotplugIn/HotplugOut寄存器相当于软件与硬件之间的联系桥梁。
举例说明下,以第一指定值为1、第二指定值为1进行说明,具体实现中,借助于DPU卡UP口提供的OptionRom功能和HotplugIn/HotplugOut寄存器,ECPU侧Emulator可以动态创建和删除PCIE设备,并且通知HOST侧BIOS实现PCIE设备的热插拔。如图4所示,热重启服务器,HOST侧BIOS扫描到PCIE完整拓扑,HOST侧BIOS加载UP口OptionRom并启动,检测HotplugOut寄存器的值,在HotplugOut寄存器的值为1时,OptionRom停止设备队列并复位设备;设置HotplugOut寄存器为0;ECPU检测到HotplugOut寄存器为0,则删除设备,在HotplugOut寄存器的值为0时,检测HotplugIn寄存器的值,在HotplugIn寄存器的值为1时,OptionRom设置HotplugIn寄存器为0,并重启HOST,在HotplugIn寄存器的值为0时,HOST侧BIOS加载UP口OptionRom并启动。
本申请实施例中,可以实现如下功能:
1)Host侧BIOS扫描到DPU卡上ECPU侧软件模拟的完整PCIE拓扑,加载DPU卡UP口的OptionRom程序并执行;
2)UP口OptionRom程序执行2个事件的处理:
a. 检测HotplugOut寄存器是否为1;如果为1,则读取HotplugOut寄存器携带的BDF,停止该PCIE设备并复位,同时设置HotplugOut寄存器为0;否则,执行步骤b;
b. 检测HotplugIn寄存器是否为1;如果为1,则设置HotplugIn寄存器为0;同时触发Host重启,进行新PCIE设备的扫描和资源分配;否则执行步骤a;
3)DPU卡上ECPU侧软件如果要删除某一个PCIE设备,则设置HotplugOut寄存器为1,同时写入该PCIE设备的BDF号;然后检测HotplugOut寄存器是否为0,为0则彻底删除该PCIE设备;
4)DPU卡上ECPU侧软件如果要创建某一个PCIE设备,则设置HotplugIn寄存器为1。
本申请实施例中,借助于硬件提供的OptionRom功能和HotplugIn/HotplugOut寄存器;实现BIOS阶段PCIE设备热插拔机制。
可以看出,本申请中所描述的PCIE设备热拔插控制方法,应用于电子设备,该电子设备包括第一端口、热插入寄存器和热拔出寄存器,在BIOS阶段,通过第一端口的OptionRom功能,从闪存中读取驱动程序,以通过驱动程序实现驱动功能,检测热拔出寄存器的值是否为第一指定值,热拔出寄存器携带第一寄存器信息,第一寄存器信息包括热拔出寄存器的值和第一BDF号,第一指定值不为0,在热拔出寄存器的值为第一指定值时,读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除第一PCIE设备,释放第一PCIE设备的资源,由于BIOS阶段未安装操作系统,则可以通过OptionRom功能实现操作系统功能,另外,利用热插入寄存器和热拔出寄存器建立软件与硬件之间的桥梁,通过热拔出寄存器完成PCIE设备删除操作,进而,能够删除PCIE设备以实现PCIE设备的热插拔机制。
与上述实施例一致地,请参阅图5,图5是本申请提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,所述电子设备还包括第一端口、热插入寄存器和热拔出寄存器,本申请中,上述程序包括用于执行以下步骤的指令:
在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能;
检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;
在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
可选的,上述程序还包括用于执行以下步骤的指令:
检测所述热插入寄存器的值是否为第二指定值,所述热插入寄存器携带第二寄存器信息,所述第二寄存器信息包括所述热插入寄存器的值,所述第二指定值不为0;
在所述热插入寄存器的值为所述第二指定值时,将所述热插入寄存器的值设置为0;触发所述电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备。
可选的,上述程序还包括用于执行以下步骤的指令:
在所述热插入寄存器的值不为所述第二指定值时,执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤。
可选的,在所述读取所述热拔出寄存器携带的所述第一BDF号方面,上述程序包括用于执行以下步骤的指令:
获取m个PCIE设备的BDF号,得到m个BDF号;
选取所述m个BDF号中的一个BDF号作为所述第一BDF号;
将所述第一BDF号传递给所述热拔出寄存器。
可选的,在所述进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备方面,上述程序包括用于执行以下步骤的指令:
进行PCIE设备的扫描,以获取整个PCIE拓扑结构;
根据所述整个PCIE拓扑结构确定可用资源,所述可用资源包括所述整个PCIE拓扑结构中的至少一个空闲节点;
选取所述至少一个空闲节点中的目标空闲节点;
根据所述目标空闲节点创建所述第二PCIE设备。
可以看出,本申请中所描述的电子设备,该电子设备包括第一端口、热插入寄存器和热拔出寄存器,在BIOS阶段,通过第一端口的OptionRom功能,从闪存中读取驱动程序,以通过驱动程序实现驱动功能,检测热拔出寄存器的值是否为第一指定值,热拔出寄存器携带第一寄存器信息,第一寄存器信息包括热拔出寄存器的值和第一BDF号,第一指定值不为0,在热拔出寄存器的值为第一指定值时,读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除第一PCIE设备,释放第一PCIE设备的资源,由于BIOS阶段未安装操作系统,则可以通过OptionRom功能实现操作系统功能,另外,利用热插入寄存器和热拔出寄存器建立软件与硬件之间的桥梁,通过热拔出寄存器完成PCIE设备删除操作,进而,能够删除PCIE设备以实现PCIE设备的热插拔机制。
图6是本申请中所涉及的一种PCIE设备热拔插控制装置600的功能单元组成框图。该PCIE设备热拔插控制装置600应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,所述PCIE设备热拔插控制装置600包括:读取单元601、检测单元602和删除单元603,其中,
所述读取单元601,用于在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能;
所述检测单元602,用于检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;
所述删除单元603,用于在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源。
可选的,所述PCIE设备热拔插控制装置600还具体用于:
检测所述热插入寄存器的值是否为第二指定值,所述热插入寄存器携带第二寄存器信息,所述第二寄存器信息包括所述热插入寄存器的值,所述第二指定值不为0;
在所述热插入寄存器的值为所述第二指定值时,将所述热插入寄存器的值设置为0;触发所述电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备。
可选的,所述PCIE设备热拔插控制装置600还具体用于:
在所述热插入寄存器的值不为所述第二指定值时,执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤。
可选的,在所述读取所述热拔出寄存器携带的所述第一BDF方面,所述删除单元603具体用于:
获取m个PCIE设备的BDF号,得到m个BDF号;
选取所述m个BDF号中的一个BDF号作为所述第一BDF号;
将所述第一BDF号传递给所述热拔出寄存器。
可选的,在所述进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备方面,所述PCIE设备热拔插控制装置600具体用于:
进行PCIE设备的扫描,以获取整个PCIE拓扑结构;
根据所述整个PCIE拓扑结构确定可用资源,所述可用资源包括所述整个PCIE拓扑结构中的至少一个空闲节点;
选取所述至少一个空闲节点中的目标空闲节点;
根据所述目标空闲节点创建所述第二PCIE设备。
可以看出,本申请中所描述的PCIE设备热拔插控制装置,应用于电子设备,该电子设备包括第一端口、热插入寄存器和热拔出寄存器,在BIOS阶段,通过第一端口的OptionRom功能,从闪存中读取驱动程序,以通过驱动程序实现驱动功能,检测热拔出寄存器的值是否为第一指定值,热拔出寄存器携带第一寄存器信息,第一寄存器信息包括热拔出寄存器的值和第一BDF号,第一指定值不为0,在热拔出寄存器的值为第一指定值时,读取热拔出寄存器携带的第一BDF号,停止第一BDF号对应的第一PCIE设备,并将第一PCIE设备复位,将热拔出寄存器的值设置为0,以删除第一PCIE设备,释放第一PCIE设备的资源,由于BIOS阶段未安装操作系统,则可以通过OptionRom功能实现操作系统功能,另外,利用热插入寄存器和热拔出寄存器建立软件与硬件之间的桥梁,通过热拔出寄存器完成PCIE设备删除操作,进而,能够删除PCIE设备以实现PCIE设备的热插拔机制。
可以理解的是,本实施例的PCIE设备热拔插控制装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种PCIE设备热拔插控制方法,其特征在于,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,所述方法包括:
在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能,即通过所述OptionRom功能实现操作系统功能;
检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;所述第一BDF号包括:总线、设备、功能;
在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源,即利用所述热插入寄存器和所述热拔出寄存器建立软件与硬件之间的桥梁;
其中,所述读取所述热拔出寄存器携带的第一BDF,包括:
获取m个PCIE设备的BDF号,得到m个BDF号;
基于用户选择选取所述m个BDF号中的一个BDF号作为所述第一BDF号;
将所述第一BDF号传递给所述热拔出寄存器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述热插入寄存器的值是否为第二指定值,所述热插入寄存器携带第二寄存器信息,所述第二寄存器信息包括所述热插入寄存器的值,所述第二指定值不为0;
在所述热插入寄存器的值为所述第二指定值时,将所述热插入寄存器的值设置为0;触发所述电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述热插入寄存器的值不为所述第二指定值时,执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤。
4.根据权利要求3所述的方法,其特征在于,所述进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备,包括:
进行PCIE设备的扫描,以获取整个PCIE拓扑结构;
根据所述整个PCIE拓扑结构确定可用资源,所述可用资源包括所述整个PCIE拓扑结构中的至少一个空闲节点;
选取所述至少一个空闲节点中的目标空闲节点;
根据所述目标空闲节点创建所述第二PCIE设备。
5.一种PCIE设备热拔插控制装置,其特征在于,应用于电子设备,所述电子设备包括第一端口、热插入寄存器和热拔出寄存器,所述装置包括:读取单元、检测单元和删除单元,其中,
所述读取单元,用于在BIOS阶段,通过所述第一端口的OptionRom功能,从闪存中读取驱动程序,以通过所述驱动程序实现驱动功能,即通过所述OptionRom功能实现操作系统功能;
所述检测单元,用于检测所述热拔出寄存器的值是否为第一指定值,所述热拔出寄存器携带第一寄存器信息,所述第一寄存器信息包括所述热拔出寄存器的值和第一BDF号,所述第一指定值不为0;所述第一BDF号包括:总线、设备、功能;
所述删除单元,用于在所述热拔出寄存器的值为所述第一指定值时,读取所述热拔出寄存器携带的所述第一BDF号,停止所述第一BDF号对应的第一PCIE设备,并将所述第一PCIE设备复位,将所述热拔出寄存器的值设置为0,以删除所述第一PCIE设备,释放所述第一PCIE设备的资源,即利用所述热插入寄存器和所述热拔出寄存器建立软件与硬件之间的桥梁;
其中,所述读取所述热拔出寄存器携带的第一BDF,包括:
获取m个PCIE设备的BDF号,得到m个BDF号;
基于用户选择选取所述m个BDF号中的一个BDF号作为所述第一BDF号;
将所述第一BDF号传递给所述热拔出寄存器。
6.根据权利要求5所述的装置,其特征在于,所述装置还具体用于:
检测所述热插入寄存器的值是否为第二指定值,所述热插入寄存器携带第二寄存器信息,所述第二寄存器信息包括所述热插入寄存器的值,所述第二指定值不为0;
在所述热插入寄存器的值为所述第二指定值时,将所述热插入寄存器的值设置为0;触发所述电子设备重启,进行第二PCIE设备的扫描和资源分配,以创建所述第二PCIE设备。
7.根据权利要求6所述的装置,其特征在于,所述装置还具体用于:
在所述热插入寄存器的值不为所述第二指定值时,执行所述检测所述热拔出寄存器的值是否为第一指定值的步骤。
8.一种电子设备,其特征在于,包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-4任一项所述的方法中的步骤的指令。
9.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-4任一项所述的方法。
CN202311009392.3A 2023-08-11 2023-08-11 Pcie设备热拔插控制方法及相关装置 Active CN116737636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311009392.3A CN116737636B (zh) 2023-08-11 2023-08-11 Pcie设备热拔插控制方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311009392.3A CN116737636B (zh) 2023-08-11 2023-08-11 Pcie设备热拔插控制方法及相关装置

Publications (2)

Publication Number Publication Date
CN116737636A CN116737636A (zh) 2023-09-12
CN116737636B true CN116737636B (zh) 2024-09-10

Family

ID=87901557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311009392.3A Active CN116737636B (zh) 2023-08-11 2023-08-11 Pcie设备热拔插控制方法及相关装置

Country Status (1)

Country Link
CN (1) CN116737636B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116932433B (zh) * 2023-09-18 2024-01-09 珠海星云智联科技有限公司 基于dpu的装机控制方法及相关设备
CN117170744B (zh) * 2023-11-03 2024-01-23 珠海星云智联科技有限公司 DPU的OptionRom功能实现方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955624A (zh) * 2018-09-26 2020-04-03 阿里巴巴集团控股有限公司 一种pcie设备的热插拔方法、装置和系统
CN113535246A (zh) * 2021-06-11 2021-10-22 中国长城科技集团股份有限公司 一种硬盘热插拔方法、装置、终端设备及介质
CN114817105A (zh) * 2022-04-22 2022-07-29 深圳星云智联科技有限公司 设备枚举的方法、装置、计算机设备以及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411654B2 (en) * 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9747240B2 (en) * 2014-10-24 2017-08-29 Cisco Technology, Inc. Dynamic connection of PCIe devices and functions to an array of hosts
US9953001B2 (en) * 2016-04-01 2018-04-24 Intel Corporation Method, apparatus, and system for plugin mechanism of computer extension bus
US10289588B2 (en) * 2016-06-30 2019-05-14 Quanta Computer Inc. Riser card
CN114064541B (zh) * 2022-01-18 2022-04-22 苏州浪潮智能科技有限公司 一种硬盘模拟插拔方法、装置、设备及存储介质
CN115454902A (zh) * 2022-08-02 2022-12-09 天津光电聚能专用通信设备有限公司 一种基于pcie接口的nvme通信系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955624A (zh) * 2018-09-26 2020-04-03 阿里巴巴集团控股有限公司 一种pcie设备的热插拔方法、装置和系统
CN113535246A (zh) * 2021-06-11 2021-10-22 中国长城科技集团股份有限公司 一种硬盘热插拔方法、装置、终端设备及介质
CN114817105A (zh) * 2022-04-22 2022-07-29 深圳星云智联科技有限公司 设备枚举的方法、装置、计算机设备以及存储介质

Also Published As

Publication number Publication date
CN116737636A (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
CN116737636B (zh) Pcie设备热拔插控制方法及相关装置
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
JP4810349B2 (ja) I/o装置及び方法
CN1130645C (zh) 用计算机登记外围设备的方法及其计算机系统
CN112463689B (zh) 一种ocp卡热插拔装置、方法及计算机可读存储介质
CN114817105B (zh) 设备枚举的方法、装置、计算机设备以及存储介质
CN106484549A (zh) 一种交互方法、NVMe设备、HOST及物理机系统
CN115951966A (zh) 验证仿真的基于PCIe的存储装置的电力循环的系统和方法
CN110968352A (zh) 一种pcie设备的复位系统及服务器系统
CN106708596B (zh) 一种输入输出虚拟化资源的调整方法及处理器
CN110413554B (zh) 热插拔系统及热插拔方法
CN113946530A (zh) 扩展卡的控制方法及装置、非易失性存储介质
CN109697179B (zh) 硬件资源扩充系统及热插入管理装置
CN112527715B (zh) 一种服务器多io拓展的自动配置方法及相关设备
CN105279110B (zh) 一种usb设备识别主机系统的方法及usb设备
CN116775413A (zh) 一种pcie拓扑扫描方法、装置、设备及可读存储介质
CN116560803B (zh) 基于sr-iov的资源管理方法及相关装置
CN115269474A (zh) 一种服务器及其PCIe热插拔的控制方法、装置及介质
CN105677606A (zh) 总线设备的热插拔方法及总线装置
WO2023016379A1 (zh) 计算机系统、基于PCIe设备的控制方法及相关设备
US10437768B2 (en) Method and host node for configuring a remote node and a host node
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
CN117725014B (zh) Dpu场景下的pcie设备属性修改方法及相关装置
CN117707709B (zh) Sr-iov配置使能控制方法及相关装置
CN117170744B (zh) DPU的OptionRom功能实现方法及相关装置

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
GR01 Patent grant
GR01 Patent grant