CN114817107B - Pcie设备切换系统、方法、装置、计算机设备和存储介质 - Google Patents
Pcie设备切换系统、方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114817107B CN114817107B CN202210738086.2A CN202210738086A CN114817107B CN 114817107 B CN114817107 B CN 114817107B CN 202210738086 A CN202210738086 A CN 202210738086A CN 114817107 B CN114817107 B CN 114817107B
- Authority
- CN
- China
- Prior art keywords
- pcie
- module
- server
- operation instruction
- instruction
- 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
Links
Images
Classifications
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及一种PCIE设备切换系统、方法、装置、计算机设备和存储介质。所述系统包括:第一PCIE模块、第二PCIE模块、控制模块和切换模块,控制模块分别与第一PCIE模块、第二PCIE模块和切换模块连接,切换模块分别与第一PCIE模块和第二PCIE模块连接,切换模块还与服务器连接,切换模块在启动的情况下,切换至第一PCIE模块,使得服务器在第一次启动时识别到第一PCIE模块;控制模块将第二PCIE模块发送的目标消息,发送至第一PCIE模块和切换模块;第一PCIE模块根据目标消息,控制服务器进行第二次启动;切换模块根据目标消息,切换至第二PCIE模块,使得服务器在第二次启动时识别到第二PCIE模块。采用本系统,能够实现在服务器刚启动时及时发现PCIE设备的目的。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种PCIE设备切换系统、方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,网卡从原始的基础网卡,逐渐发展到了智能网卡,直到现在的DPU(Data Processing Unit,数据处理器)智能网卡。典型的DPU智能网卡,采用PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)接口,内部带有CPU(Central Processing Unit,中央处理器),用来卸载控制平面的任务和一些灵活复杂的数据平面业务。
传统技术中,DPU智能网卡为了实现各种功能,一般会通过FPGA(Field-Programmable Gate Array,即现场可编程门阵列)和DPU后端的CPU上的程序配合,来实现PCIE设备,从而与服务器进行数据交互。但是,在服务器刚启动时,DPU后端的CPU也需要启动时间,特别是需要启动操作系统让CPU上的程序运行起来,造成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设备连接,所述第一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模块是否满足预设工作状态。
在其中一个实施例中,所述方法还包括:
控制所述第一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模块发送的目标消息;其中,所述目标消息为表征所述第二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设备,避免了传统技术中PCIE设备准备过慢,导致服务器刚启动时无法及时发现PCIE设备的缺陷。
附图说明
图1为一个实施例中PCIE设备切换系统的结构框图;
图2为另一个实施例中PCIE设备切换系统的结构框图;
图3为又一个实施例中PCIE设备切换系统的结构框图;
图4为再一个实施例中PCIE设备切换系统的结构框图;
图5为一个实施例中PCIE设备切换方法的流程示意图;
图6为一个实施例中实现动态切换PCIE设备的系统的结构框图;
图7为另一个实施例中实现动态切换PCIE设备的系统的结构框图;
图8为又一个实施例中实现动态切换PCIE设备的系统的结构框图;
图9为一个实施例中PCIE设备切换装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种PCIE设备切换系统,该系统包括:第一PCIE模块101、第二PCIE模块102、控制模块103和切换模块104,控制模块103分别与第一PCIE模块101、第二PCIE模块102和切换模块104连接,切换模块104分别与第一PCIE模块101和第二PCIE模块102连接,切换模块104还与服务器连接。其中,切换模块104,用于在启动的情况下,切换至第一PCIE模块101,使得服务器在第一次启动时识别到第一PCIE模块101;控制模块103,用于将第二PCIE模块102发送的目标消息,发送至第一PCIE模块101和切换模块104,其中,目标消息为表征第二PCIE模块102满足预设工作状态的消息;第一PCIE模块101,用于根据目标消息,控制服务器进行第二次启动;切换模块104,还用于根据目标消息,切换至第二PCIE模块102,使得服务器在第二次启动时识别到第二PCIE模块102。
其中,第一PCIE模块101是指启动速度较快的PCIE设备,能够在服务器刚启动时,被服务器扫描到,然后等待第二PCIE模块102准备好,控制服务器进行第二次启动,使得服务器第二次启动时可以扫描到第二PCIE模块102,并进行后续的业务处理。第一PCIE模块101具体是指快速PCIE模块,可以由FPGA(Field-Programmable Gate Array,现场可编程门阵列)固化实现。
其中,第二PCIE模块102是指启动速度较慢的PCIE设备,在服务器刚启动时,第二PCIE模块102还未准备好(比如还未处理完内部事务),无法被服务器扫描到,需要等其准备好(比如处理完内部事务),才能在服务器第二次启动时被服务器扫描到。第二PCIE模块102具体是指慢速PCIE模块,可以由FPGA和CPU上的应用程序来共同实现。在实际场景中,第二PCIE模块102在上电之后,开始处理其内部事务,比如启动CPU、启动CPU上的应用程序等。
需要说明的是,PCIE设备是指以PCIE协议为标准的设备,能够通过PCIE接口与主机(比如服务器)进行连接,并与主机进行数据交互,具体可以由FPGA固化实现,也可以由FPGA和CPU上的应用程序(即软件定义)来共同实现。在实际场景中,PCIE设备一般表示串行或者I/O(Input/Output,输入/输出)设备,用于接收针对其设备内的内存空间和配置空间的读写操作,并进行处理。
其中,控制模块103是指用于控制整个系统的模块,能够将第二PCIE模块102发送的用于表征第二PCIE模块102满足预设工作状态的目标消息,发送至第一PCIE模块101和切换模块104。控制模块103具体是指控制器,其与第一PCIE模块101和第二PCIE模块102之间的连接方式,可以是I2C(Inter-Integrated Circuit,I2C总线)、SMBUS(SystemManagement Bus,系统管理总线)、串口、GPIO(General-purpose input/output,通用输入输出)等。
其中,切换模块104是指用于切换第一PCIE模块101和第二PCIE模块102,以决定哪个PCIE模块通过PCIE通道与服务器相连的模块,具体是指高速切换芯片或者PCIE SWITCH桥芯片;当然,也可以直接使用FPGA来搭建切换模块104。切换模块104分别与第一PCIE模块101和第二PCIE模块102连接,实现了任一时刻只有一个PCIE模块通过PCIE通道与服务器连接,即在任一时刻,服务器只能发现第一PCIE模块101或者第二PCIE模块102。
需要说明的是,切换模块104在上电之后,直接切换到第一PCIE模块101;等待第二PCIE模块102准备好,切换至第二PCIE模块102,使得服务器在第二次启动时可以扫描到第二PCIE模块102。
其中,在切换模块104切换至第一PCIE模块101之后,第一PCIE模块101通过切换模块104和PCIE通道,与服务器连接。在切换模块104切换至第二PCIE模块102之后,第二PCIE模块102通过切换模块104和PCIE通道,与服务器连接。
其中,服务器在第一次启动时识别到第一PCIE模块101,发现其包含第一PCIE扩展ROM(Read Only Memory,只读存储器)代码,可以将第一PCIE扩展ROM代码加载到服务器的内存中执行。服务器在第二次启动时识别到第二PCIE模块102,发现其包含第二PCIE扩展ROM代码,可以将第二PCIE扩展ROM代码加载到服务器的内存中执行。
需要说明的是,服务器的第一次启动是指服务器每次断电后再上电时的第一次启动,服务器的第二次启动是相对于服务器的第一次启动的,具体是指服务器的第一次启动之后的再次启动。
其中,第二PCIE模块102满足预设工作状态,是指第二PCIE模块102处理完其内部事务,比如启动内部CPU,开始运行其上的应用程序。在实际场景中,第二PCIE模块102满足预设工作状态,是指第二PCIE模块102已准备好。
其中,第一PCIE模块101用于根据目标消息,控制服务器进行第二次启动,是指第一PCIE模块101中的第一PCIE扩展ROM代码在服务器中运行,当识别到第一PCIE模块101中存储有表示第二PCIE模块102满足预设工作状态的目标标识,则控制服务器进行重启,使得服务器进行第二次启动。
需要说明的是,在图1中,还可以用其他类型的主机代替服务器。
具体地,启动服务器和对整个PCIE设备切换系统进行上电;切换模块104在上电之后,直接切换到第一PCIE模块101,并通过PCIE通道与服务器连接;同时,第二PCIE模块102在上电之后,开始处理其内部事务。服务器在第一次启动之后,识别到第一PCIE模块101,发现其包含第一PCIE扩展ROM代码,则将第一PCIE扩展ROM代码加载到服务器的内存中执行;其中,第一PCIE扩展ROM代码在服务器中运行,向第一PCIE模块101轮询并等待。第二PCIE模块102已处理完其内部事务,说明其满足预设工作状态,则生成用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至控制模块103。控制模块103分别将目标消息发送至第一PCIE模块101和切换模块104。第一PCIE模块101在收到目标消息之后,生成并存储用于表示第二PCIE模块102满足预设工作状态的目标标识,当第一PCIE模块101中的第一PCIE扩展ROM代码识别到第一PCIE模块101中存储有目标标识,则控制服务器进行重启,使得服务器进行第二次启动。同时,切换模块104在接收到目标消息之后,确认第二PCIE模块已经准备好,则切换至第二PCIE模块,并通过PCIE通道与服务器连接;服务器在第二次启动之后,识别到第二PCIE模块102,发现其包含第二PCIE扩展ROM代码,则将第二PCIE扩展ROM代码加载到服务器的内存中执行,以进行后续的业务处理。
上述PCIE设备切换系统,包括第一PCIE模块101、第二PCIE模块102、控制模块103和切换模块104,控制模块103分别与第一PCIE模块101、第二PCIE模块102和切换模块104连接,切换模块104分别与第一PCIE模块101和第二PCIE模块102连接,切换模块104还与服务器连接,切换模块104,用于在启动的情况下,切换至第一PCIE模块101,使得服务器在第一次启动时识别到第一PCIE模块101;控制模块103,用于将第二PCIE模块102发送的目标消息,发送至第一PCIE模块101和切换模块104,其中,目标消息为表征第二PCIE模块102满足预设工作状态的消息;第一PCIE模块101,用于根据目标消息,控制服务器进行第二次启动;切换模块104,还用于根据目标消息,切换至第二PCIE模块102,使得服务器在第二次启动时识别到第二PCIE模块102。这样,先默认切换至第一PCIE模块101,使得服务器在第一次启动时可以及时发现第一PCIE模块101;在第二PCIE模块102满足预设工作状态的情况下,切换至第二PCIE模块102,同时控制服务器进行第二次启动,使得服务器在第二次启动时可以及时发现第二PCIE模块102,从而实现了动态切换PCIE设备的目的,使得服务器刚启动时可以及时发现PCIE设备,避免了传统技术中PCIE设备准备过慢,导致服务器刚启动时无法及时发现PCIE设备的缺陷。
在一个实施例中,如图1所示,第二PCIE模块102,用于在上电之后进入工作状态;在满足预设工作状态的情况下,生成目标消息,并将目标消息发送至控制模块103。
具体地,参考图1,第二PCIE模块102在上电之后进入工作状态,开始处理其内部事务,比如启动CPU上的应用程序;若处理完其内部事务,则确认其满足预设工作状态,并生成用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至控制模块103,以通知控制模块103其已经处理完内部事务。
在本实施例中,第二PCIE模块102在上电之后开始进入工作状态,并在其满足预设工作状态的情况下,生成用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至控制模块103,使得控制模块103可以进一步通知第一PCIE模块101和切换模块104,以控制服务器重启和切换至第二PCIE模块102,使得服务器在第二次启动时可以识别到第二PCIE模块102,并进行后续的业务处理,从而实现了在服务器启动时可以快速扫描到PCIE设备的目的,解决了服务器启动时无法及时发现PCIE设备的问题。
在一个实施例中,如图2所示,第一PCIE模块101包括相连接的第一PCIE核101a和第一存储单元101b;第一存储单元101b,用于存储第一操作指令;第一PCIE核101a,用于在服务器第一次启动时,根据服务器发送的携带有第一操作指令的标识的第一读取指令,从第一存储单元101b中读取第一操作指令,并将第一操作指令发送至服务器;服务器,用于根据第一操作指令,查询第一PCIE模块101,得到对应的查询结果,其中,查询结果用于表示第二PCIE模块102是否满足预设工作状态。
其中,第一PCIE核101a启动较快,在服务器刚启动时可以被扫描到;可以是指FPGA固化好的一个PCIE IP核心,比如快速PCIE核。具体地,第一PCIE核101a就是为了让服务器发现后,加载第一PCIE核101a的第一PCIE扩展ROM代码,以等待第二PCIE核102a(比如慢速PCIE核)准备好;由第一PCIE核101a的第一PCIE扩展ROM代码控制服务器重启;这样,服务器在重启之后就能发现第二PCIE核102a了。
其中,第一存储单元101b可以是指各种类型FLASH(Flash Memory,快闪存储器)或者ROM(Read-OnlyMemory,只读存储器),比如NOR FLASH、NAND FLASH等,其存储有第一操作指令。第一操作指令是指第一PCIE扩展ROM代码,用于等待第二PCIE模块102准备好,然后通过第一操作指令控制服务器重启。
其中,第一操作指令的标识,用于标识第一操作指令,可以是ID。携带有第一操作指令的标识的第一读取指令,是指用于读取第一操作指令,比如读取第一存储单元101b中存储的第一PCIE扩展ROM代码。
其中,服务器用于根据第一操作指令,查询第一PCIE模块101,是指服务器可以根据第一操作指令,轮询第一PCIE模块101,判断第一PCIE模块101中是否存储有表示第二PCIE模块102满足预设工作状态的目标标识。若第一PCIE模块101中存储有目标标识,说明第二PCIE模块102满足预设工作状态,可以控制服务器重新启动;若第一PCIE模块101中没有存储目标标识,说明第二PCIE模块102不满足预设工作状态,暂时还不能控制服务器重新启动。
具体地,参考图2,第一存储单元101b中存储有第一操作指令,比如第一PCIE扩展ROM代码。服务器第一次启动时,扫描到第一PCIE模块101,识别到第一PCIE模块101中包括第一操作指令,则生成携带有第一操作指令的标识的第一读取指令,并将第一读取指令发送至第一PCIE核101a。第一PCIE核101a根据接收到的第一读取指令,从第一存储单元101b中读取第一操作指令,并将第一操作指令通过PCIE通道发送至服务器。服务器运行接收到的第一操作指令,并根据第一操作指令,查询第一PCIE模块101,判断第一PCIE模块101中是否存储有表示第二PCIE模块102满足预设工作状态的目标标识,得到对应的查询结果;若查询结果为第一PCIE模块101中存储有表示第二PCIE模块102满足预设工作状态的目标标识,则说明第二PCIE模块102满足预设工作状态,即第二PCIE模块已准备好,可以通知服务器进行重启。
在本实施例中,第一PCIE核101a在服务器第一次启动时,根据服务器发送的携带有第一操作指令的标识的第一读取指令,从第一存储单元101b中读取第一操作指令,并将第一操作指令发送至服务器,然后通过服务器根据第一操作指令,查询第一PCIE模块101,以判断第二PCIE模块102是否满足预设工作状态,有利于在第二PCIE模块102满足预设工作状态之后,控制服务器重启,使得服务器在第二次启动时可以扫描到第二PCIE模块102,并进行后续的业务处理,从而实现了在服务器第二次启动时可以快速扫描到PCIE设备的目的,避免了服务器启动时无法及时发现PCIE设备的缺陷。
在一个实施例中,如图2所示,第一PCIE模块101还包括寄存器101c;第一PCIE核101a,还用于生成与目标消息对应的目标标识,并将目标标识存储至寄存器101c中;服务器,还用于根据第一操作指令,查询到寄存器101c中包括目标标识,则确认第二PCIE模块102满足预设工作状态,并根据第一操作指令进行第二次启动。
其中,寄存器101c是指第一PCIE模块101中的内部寄存器,用于存储目标标识;寄存器101c,具体可以是指配置空间寄存器、IO寄存器、MEMORY寄存器等。
其中,目标标识是指用于表示第二PCIE模块102满足预设工作状态的标识信息。
具体地,参考图2,第一PCIE核101a在接收到控制模块103发送的目标消息,确认到第二PCIE模块102满足预设工作状态,则生成与目标消息对应的目标标识,并将目标标识存储至寄存器101c中。服务器根据第一操作指令,比如第一PCIE扩展ROM代码,查询第一PCIE模块101,当查询到第一PCIE模块101中的寄存器101c中存储有目标标识,则确认第二PCIE模块102满足预设工作状态,则根据第一操作指令,控制服务器进行重启,使得服务器进行第二次启动。
在本实施例中,服务器根据第一操作指令查询第一PCIE模块101,当查询到第一PCIE模块101中的寄存器101c中存储有与目标消息对应的目标标识,则确认第二PCIE模块102满足预设工作状态,并控制服务器重启,有利于服务器在重启之后可以及时发现满足预设工作状态的第二PCIE模块102。
在一个实施例中,如图2所示,切换模块104,还用于根据目标消息,进入锁定状态;在接收到服务器发送的第二次启动的启动信号的情况下,解除锁定状态,并切换至第二PCIE模块102。
其中,第二次启动的启动信号,是指服务器发送到PCIE通道上的PCIERESET信号。需要说明的是,PCIE RESET信号是PCIE规范中定义的PERST#。
具体地,参考图2,切换模块104根据接收到的目标消息,进入锁定状态,暂时无法切换至第二PCIE模块102。服务器在第二次启动之后,通过PCIE通道将第二次启动的启动信号(比如PCIERESET信号)发送至切换模块104。切换模块104根据接收到的启动信号,解除锁定状态,并从第一PCIE模块101切换至第二PCIE模块102。
在本实施例中,切换模块104根据接收到的目标消息,先进入锁定状态;在接收到服务器发送的第二次启动的启动信号的情况下,再解除锁定状态,并切换至第二PCIE模块102,有利于保证硬件切换的安全性。
在一个实施例中,如图2所示,第二PCIE模块102包括相连接的第二PCIE核102a和第二存储单元102b;第二存储单元102b,用于存储第二操作指令;第二PCIE核102a,用于在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,从第二存储单元102b中读取第二操作指令,并将第二操作指令发送至服务器;服务器,还用于根据第二操作指令,执行对应的操作。
其中,第二PCIE核102a启动较慢,在服务器刚启动时无法被扫描到;可以是指FPGA和CPU上的应用程序所共同实现的PCIE核,比如慢速PCIE核。具体地,第二PCIE核102a启动较慢,有可能是通过DPU卡上的软件来模拟PCIE设备,导致服务器刚启动时,PCIE设备还没准备好,无法被服务器探测到。
其中,第二存储单元102b可以是指各种类型FLASH或者ROM,比如NOR FLASH、NANDFLASH等,其存储有第二操作指令。第二操作指令是指第二PCIE扩展ROM代码,用于被服务器加载到其内存中,以进行后续的业务处理。
需要说明的是,根据PCIE协议,这些PCIE扩展ROM代码将在服务器的BIOS启动阶段,由服务器加载到其内存中执行。
其中,第二操作指令的标识,用于标识第二操作指令,可以是ID。携带有第二操作指令的标识的第二读取指令,是指用于读取第二操作指令,比如读取第二存储单元102b中存储的第二PCIE扩展ROM代码。
具体地,参考图2,第二存储单元102b中存储有第二操作指令,比如第二PCIE扩展ROM代码。服务器第二次启动时,扫描到第二PCIE模块102,识别到第二PCIE模块102中包括第二操作指令,则生成携带有第二操作指令的标识的第二读取指令,并将第二读取指令发送至第二PCIE核102a。第二PCIE核102a根据接收到的第二读取指令,从第二存储单元102b中读取第二操作指令,并将第二操作指令通过PCIE通道发送至服务器。服务器根据接收到的第二操作指令,执行对应的操作,比如业务操作。
在本实施例中,第二PCIE核102a在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,从第二存储单元102b中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,如图3所示,第二PCIE核102a包括第一处理器102a1和第二处理器102a2,第二处理器102a2包括第一PCIE设备102a3和第二PCIE设备102a4,第二存储单元102b包括第一存储器102b1和第三存储器102b2;第一处理器102a1分别与第一存储器102b1、第三存储器102b2和第二PCIE设备102a4连接,第一PCIE设备102a3分别与控制模块103和切换模块104连接;第一存储器102b1,用于存储第二操作指令;第一PCIE设备102a3,用于在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第二PCIE设备102a4发送至第一处理器102a1;第一处理器102a1,用于根据第二读取指令,从第一存储器102b1中读取第二操作指令,并将第二操作指令通过第二PCIE设备102a4发送至第一PCIE设备102a3;服务器,用于根据第一PCIE设备102a3发送的第二操作指令,执行对应的操作。
其中,第一处理器102a1可以是指CPU;第一存储器102b1是指硬盘,存储有第二操作指令,比如第二PCIE扩展ROM代码;第三存储器102b2是指内存。
其中,第二处理器102a2是指FPGA,第一PCIE设备102a3和第二PCIE设备102a4是指FPGA所构建的两个PCIE设备,比如PCIE EP。此外,第一PCIE设备102a3与服务器连接,第二PCIE设备102a4与第一处理器102a1连接。
具体地,参考图3,第一存储器102b1中存储有第二操作指令,比如第二PCIE扩展ROM代码。服务器第二次启动时,扫描到第二PCIE模块102,识别到第二PCIE模块102中包括第二操作指令,则生成携带有第二操作指令的标识的第二读取指令,并将第二读取指令发送至第一PCIE设备102a3;第一PCIE设备102a3将接收到的第二读取指令发送至第二PCIE设备102a4;第二PCIE设备102a4将接收到的第二读取指令发送至第一处理器102a1。第一处理器102a1根据第二读取指令,从第一存储器102b1中读取第二操作指令,并将第二操作指令通过第二PCIE设备102a4发送至第一PCIE设备102a3;第一PCIE设备102a3将接收到的第二操作指令发送至服务器。服务器根据接收到的第二操作指令,执行对应的操作,比如业务操作。
在本实施例中,第一PCIE设备102a3在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,通过第二PCIE设备102a4和第一处理器102a1,从第一存储器102b1中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以及时扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,如图4所示,第二PCIE核102a包括第三处理器102a5、第三PCIE设备102a6和第四PCIE设备102a7,第二存储单元102b包括第二存储器102b3和第四存储器102b4,第三处理器102a5分别与第二存储器102b3、第四存储器102b4和第四PCIE设备102a7连接,第三PCIE设备102a6分别与控制模块103和切换模块104连接;第三PCIE设备102a6、第四PCIE设备102a7、第一PCIE模块101、控制模块103和切换模块104位于第四处理器105中;第二存储器102b3,用于存储第二操作指令;第三PCIE设备102a6,用于在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第四PCIE设备102a7发送至第三处理器102a5;第三处理器102a5,用于根据第二读取指令,从第二存储器102b3中读取第二操作指令,并将第二操作指令通过第四PCIE设备102a7发送至第三PCIE设备102a6;服务器,用于根据第三PCIE设备102a6发送的第二操作指令,执行对应的操作。
其中,第三处理器102a5可以是指CPU;第二存储器102b3是指硬盘,存储有第二操作指令,比如第二PCIE扩展ROM代码;第四存储器102b4是指内存。
其中,第四处理器105是指FPGA,第三PCIE设备102a6和第四PCIE设备102a7是指FPGA所构建的两个PCIE设备,比如PCIE EP。此外,第三PCIE设备102a6与服务器连接,第四PCIE设备102a7与第三处理器102a5连接。
其中,第三PCIE设备102a6、第四PCIE设备102a7、第一PCIE模块101、控制模块103和切换模块104均包含在第四处理器105中,第一PCIE模块101、控制模块103和切换模块104均可以通过第四处理器105中的内部逻辑电路实现。
具体地,参考图4,第二存储器102b3中存储有第二操作指令,比如第二PCIE扩展ROM代码。服务器第二次启动时,扫描到第二PCIE模块102,识别到第二PCIE模块102中包括第二操作指令,则生成携带有第二操作指令的标识的第二读取指令,并将第二读取指令发送至第三PCIE设备102a6;第三PCIE设备102a6将接收到的第二读取指令发送至第四PCIE设备102a7;第四PCIE设备102a7将接收到的第二读取指令发送至第三处理器102a5。第三处理器102a5根据第二读取指令,从第二存储器102b3中读取第二操作指令,并将第二操作指令通过第四PCIE设备102a7发送至第三PCIE设备102a6;第三PCIE设备102a6将接收到的第二操作指令发送至服务器。服务器根据接收到的第二操作指令,执行对应的操作,比如业务操作。
在本实施例中,第三PCIE设备102a6在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,通过第四PCIE设备102a7和第三处理器102a5,从第二存储器102b3中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以及时扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,如图5所示,提供了一种PCIE设备切换方法,该方法可以应用于如图1所述的控制模块103中,包括以下步骤:
步骤S501,控制切换模块在启动的情况下切换至第一PCIE模块,使得服务器在第一次启动时识别到第一PCIE模块。
步骤S502,接收与第一PCIE模块关联的第二PCIE模块发送的目标消息;其中,目标消息为表征第二PCIE模块满足预设工作状态的消息。
步骤S503,将目标消息发送至第一PCIE模块和切换模块,使得第一PCIE模块根据目标消息控制服务器进行第二次启动,以及使得切换模块根据目标消息切换至第二PCIE模块,使得服务器在第二次启动时识别到第二PCIE模块。
具体地,参考图1,控制模块103通过控制指令,控制切换模块104在启动之后,直接切换到第一PCIE模块101,并通过PCIE通道与服务器连接;同时,第二PCIE模块102在上电之后,开始处理其内部事务。服务器在第一次启动之后,识别到第一PCIE模块101,发现其包含第一PCIE扩展ROM代码,则将第一PCIE扩展ROM代码加载到服务器的内存中执行;其中,第一PCIE扩展ROM代码在服务器中运行,向第一PCIE模块101轮询并等待。第二PCIE模块102已处理完其内部事务,说明其满足预设工作状态,则生成用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至控制模块103。控制模块103分别将第二PCIE模块102发送的目标消息发送至第一PCIE模块101和切换模块104。第一PCIE模块101在收到目标消息之后,根据目标消息生成并存储用于表示第二PCIE模块102满足预设工作状态的目标标识,当第一PCIE模块101中的第一PCIE扩展ROM代码识别到第一PCIE模块101中存储有目标标识,则控制服务器进行重启,使得服务器进行第二次启动。同时,切换模块104在接收到目标消息之后,确认第二PCIE模块已经准备好,则切换至第二PCIE模块,并通过PCIE通道与服务器连接;服务器在第二次启动之后,识别到第二PCIE模块102,发现其包含第二PCIE扩展ROM代码,则将第二PCIE扩展ROM代码加载到服务器的内存中执行,以进行后续的业务处理。
需要说明的是,关于上述步骤的具体限定,可以参考图1至图4的PCIE设备切换系统的相关实施例,在此不再赘述。
上述PCIE设备切换方法,通过PCIE设备切换系统中的控制模块103控制切换模块104在启动的情况下,切换至第一PCIE模块101,使得服务器在第一次启动时识别到第一PCIE模块101;接着,控制模块103接收与第一PCIE模块101关联的第二PCIE模块102发送的用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至第一PCIE模块101和切换模块104,使得第一PCIE模块101根据目标消息控制服务器进行第二次启动,以及使得切换模块104根据目标消息切换至第二PCIE模块102,使得服务器在第二次启动时识别到第二PCIE模块102。这样,先默认切换至第一PCIE模块101,使得服务器在第一次启动时可以及时发现第一PCIE模块101;在第二PCIE模块102满足预设工作状态的情况下,切换至第二PCIE模块102,同时控制服务器进行第二次启动,使得服务器在第二次启动时可以及时发现第二PCIE模块102,从而实现了动态切换PCIE设备的目的,使得服务器刚启动时可以及时发现PCIE设备,避免了传统技术中PCIE设备准备过慢,导致服务器刚启动时无法及时发现PCIE设备的缺陷。
在一个实施例中,参考图1,接收与第一PCIE模101关联的第二PCIE模块102发送的目标消息,具体包括:在第二PCIE模块102上电之后的工作状态满足预设工作状态的情况下,接收第二PCIE模块102生成的目标消息。
在本实施例中,第二PCIE模块102在上电之后开始进入工作状态,并在其满足预设工作状态的情况下,生成用于表征第二PCIE模块102满足预设工作状态的目标消息,并将目标消息发送至控制模块103,使得控制模块103可以进一步通知第一PCIE模块101和切换模块104,以控制服务器重启和切换至第二PCIE模块102,使得服务器在第二次启动时可以识别到第二PCIE模块102,并进行后续的业务处理,从而实现了在服务器启动时可以快速扫描到PCIE设备的目的,解决了服务器启动时无法及时发现PCIE设备的问题。
在一个实施例中,参考图2,本申请的PCIE设备切换方法还包括如下内容:通过第一存储单元101b存储第一操作指令;控制第一PCIE核101a在服务器第一次启动时,根据服务器发送的携带有第一操作指令的标识的第一读取指令,从第一存储单元101b中读取第一操作指令,并将第一操作指令发送至服务器,使得服务器根据第一操作指令,查询第一PCIE模块101,得到对应的查询结果,其中,查询结果用于表示第二PCIE模块102是否满足预设工作状态。
在本实施例中,第一PCIE核101a在服务器第一次启动时,根据服务器发送的携带有第一操作指令的标识的第一读取指令,从第一存储单元101b中读取第一操作指令,并将第一操作指令发送至服务器,然后通过服务器根据第一操作指令,查询第一PCIE模块101,以判断第二PCIE模块102是否满足预设工作状态,有利于在第二PCIE模块102满足预设工作状态之后,控制服务器重启,使得服务器在第二次启动时可以扫描到第二PCIE模块102,并进行后续的业务处理,从而实现了在服务器第二次启动时可以快速扫描到PCIE设备的目的,避免了服务器启动时无法及时发现PCIE设备的缺陷。
在一个实施例中,参考图2,本申请的PCIE设备切换方法还包括如下内容:控制第一PCIE核101a生成与目标消息对应的目标标识,并将目标标识存储至寄存器101c中,使得服务器根据第一操作指令,查询到寄存器101c中包括目标标识,则确认第二PCIE模块102满足预设工作状态,并根据第一操作指令进行第二次启动。
在本实施例中,服务器根据第一操作指令查询第一PCIE模块101,当查询到第一PCIE模块101中的寄存器101c中存储有与目标消息对应的目标标识,则确认第二PCIE模块102满足预设工作状态,并控制服务器重启,有利于服务器在重启之后可以及时发现满足预设工作状态的第二PCIE模块102。
在一个实施例中,参考图2,本申请的PCIE设备切换方法还包括如下内容:控制切换模块104根据目标消息,进入锁定状态,在接收到服务器发送的第二次启动的启动信号的情况下,解除锁定状态,并切换至第二PCIE模块102。
在本实施例中,切换模块104根据接收到的目标消息,先进入锁定状态;在接收到服务器发送的第二次启动的启动信号的情况下,再解除锁定状态,并从第一PCIE模块101切换至第二PCIE模块102,有利于保证硬件切换的安全性。
在一个实施例中,参考图2,本申请的PCIE设备切换方法还包括如下内容:通过第二存储单元102b存储第二操作指令;控制第二PCIE核102a在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,从第二存储单元102b中读取第二操作指令,并将第二操作指令发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
在本实施例中,第二PCIE核102a在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,从第二存储单元102b中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,参考图3,本申请的PCIE设备切换方法还包括如下内容:通过第一存储器102b1存储第二操作指令;控制第一PCIE设备102a3在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第二PCIE设备102a4发送至第一处理器102a1;控制第一处理器102a1根据第二读取指令,从第一存储器102b1中读取第二操作指令,并将第二操作指令通过第二PCIE设备102a4和第一PCIE设备102a3发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
在本实施例中,第一PCIE设备102a3在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,通过第二PCIE设备102a4和第一处理器102a1,从第一存储器102b1中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以及时扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,参考图4,本申请的PCIE设备切换方法还包括如下内容:通过第二存储器102b3存储第二操作指令;控制第三PCIE设备102a6在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第四PCIE设备102a7发送至第三处理器102a5;控制第三处理器102a5根据第二读取指令,从第二存储器102b3中读取第二操作指令,并将第二操作指令通过第四PCIE设备102a7和第三PCIE设备102a6发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
在本实施例中,第三PCIE设备102a6在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,通过第四PCIE设备102a7和第三处理器102a5,从第二存储器102b3中读取第二操作指令,并将第二操作指令发送至服务器,然后通过服务器根据第二操作指令,执行对应的操作;有利于在服务器第二次启动时,可以及时扫描到第二PCIE模块102,并加载第二PCIE模块102存储的第二操作指令,根据第二操作指令执行对应的操作,不会出现交互延迟,从而提高了数据交互效率。
在一个实施例中,为了更清晰阐明本申请实施例提供的PCIE设备切换系统,以下以一个具体的实施例对该PCIE设备切换系统进行具体说明。在一个实施例中,如图6所示,本申请还提供了一种实现动态切换PCIE设备的系统,包括:快速PCIE模块601、慢速PCIE模块602、控制模块603和切换模块604。快速PCIE模块601包括快速PCIE核601a和存储单元601b;慢速PCIE模块602包括慢速PCIE核602a和存储单元602b。其中,控制模块603分别与快速PCIE模块601、慢速PCIE模块602与切换模块604连接;切换模块604分别与快速PCIE模块601和慢速PCIE模块602连接,实现了任一时刻只有一个PCIE模块通过PCIE通道与HOST主机连接,也即在任一时刻,HOST主机只能发现快速PCIE模块601或者慢速PCIE模块602。
针对图6所示的系统,本申请还提供了一种实现动态切换PCIE设备的方法,具体包括如下步骤:
步骤1:启动HOST主机,切换模块604切换至快速PCIE模块601,并通过PCIE通道与HOST主机连接;同时,慢速PCIE模块602的慢速PCIE核602a开始处理其内部事务。
步骤2:HOST主机识别到快速PCIE模块601,发现其包含PCIE扩展ROM代码,将PCIE扩展ROM代码加载到HOST主内存中执行。
步骤3:快速PCIE模块601的PCIE扩展ROM代码运行,向快速PCIE模块601轮询并等待。
步骤4:慢速PCIE核602a处理完内部事务,完成后通知控制模块603。
步骤5:控制模块603将此事件通知快速PCIE模块601,快速PCIE模块601标识此事件;同时,控制模块603将此事件通知给切换模块604。
其中,快速PCIE模块601标识事件,可以在其配置空间寄存器、IO寄存器、MEMORY寄存器中保存,其PCIE扩展ROM代码在运行过程中读取相应寄存器,获得此标识。
步骤6:快速PCIE模块601的PCIE扩展ROM代码在HOST主机运行,向快速PCIE模块601进行轮询等待,得到快速PCIE模块601标识事件的通知,重新启动HOST主机。
步骤7:切换模块604切换至慢速PCIE模块602,并通过PCIE通道与HOST主机连接。
其中,切换模块604在切换PCIE模块时,其状态进行锁定;当切换模块604接收到HOST主机发送到PCIE通道上的RESET信号之后,才进行切换。
步骤8:HOST主机启动,识别到慢速PCIE模块602,发现其包含PCIE扩展ROM代码,将该PCIE扩展ROM代码加载到HOST主机的内存中执行。
在本实施例中,在HOST主机第一次开机的时候,是扫描到快速PCIE模块601,并加载快速PCIE模块601的PCIE扩展ROM代码的。此时,慢速PCIE模块602内部,还在进行其他的工作。而快速PCIE模块601的PCIE扩展ROM代码,在HOST主内存上运行过程中,是可以通过快速PCIE模块601的内部寄存器,根据控制模块603传过来的慢速PCIE模块602的信息,得知慢速PCIE模块602是否准备完成的。因此,快速PCIE模块601的PCIE扩展ROM代码,可以重启HOST主机,配合切换模块604切换到慢速PCIE模块602。在HOST主机第二次启动的时候,所发现的就是慢速PCIE模块602了,并可以加载慢速PCIE模块602的PCIE扩展ROM代码。
图7提供了另一种实现动态切换PCIE设备的系统;其中,慢速PCIE模块602由一般的DPU硬件构成,包括FPGA和CPU,CPU上连接由硬盘602b1、内存602b2,实际上也是一个内部的主机系统。而FGPA构建了两个PCIE EP,分别是PCIE EP(602a3)和PCIE EP(602a4),PCIEEP(602a3)连接到HOST主机,PCIE EP(602a4)连接到内部的CPU。慢速PCIE模块602中,连接在CPU上的硬盘602b1,存有DPU所需的各种后端应用程序,也包括了慢速PCIE模块602所需要的PCIE扩展ROM代码。
针对图7所示的系统,本申请还提供了另一种实现动态切换PCIE设备的方法,具体包括如下步骤:
步骤1:启动HOST主机,切换模块604切换至快速PCIE模块601,并通过PCIE通道与HOST主机连接;同时,慢速PCIE模块602的慢速PCIE核开始处理其内部事务。
步骤2:慢速PCIE模块602在HOST主机上电开机后,也开始为FPGA和CPU上电,并一直运行到CPU上的应用软件启动。
步骤3:HOST主机对PCIE设备进行扫描,扫描到快速PCIE模块601,且发现其包含PCIE扩展ROM代码,将该PCIE扩展ROM代码加载到HOST主内存中执行。
步骤4:快速PCIE模块601的PCIE扩展ROM代码运行,向快速PCIE模块601轮询并等待。
步骤5:慢速PCIE模块602启动内部CPU,开始运行其上的应用程序,并通知控制模块603已经准备完毕。
步骤6:控制模块603将此消息发送给快速PCIE模块601,快速PCIE模块601在其内部寄存器上标识此事件。同时,控制模块603将此事件通知给切换模块604。
步骤7:快速PCIE模块601的PCIE扩展ROM代码在HOST主机运行,向快速PCIE模块601进行轮询等待,得到快速PCIE模块601标识事件的通知,重新启动HOST主机。
步骤8:切换模块604切换至慢速PCIE模块602,并通过PCIE通道与HOST主机连接;
步骤9:HOST主机第二次启动,扫描PCIE设备并发现慢速PCIE模块602。慢速PCIE模块602内部CPU上的应用程序,以及FPGA,共同处理HOST主机发过来的TLP报文,完成PCIE设备的扫描过程;
其中,图7中,PCIE EP是指PCIE设备。
步骤10:HOST主机加载慢速PCIE模块602的PCIE扩展ROM代码,开始执行后续的业务逻辑。
图8提供了又一种实现动态切换PCIE设备的系统;其中,该系统由FPGA和通用CPU组成。CPU连接硬盘602b3和内存602b4,作为通用的计算机架构,在CPU上运行若干DPU所需要的应用程序。FGPA由快速PCIE模块601、控制模块603和切换模块604组成;并实现了另外两个PCIE EP,分别为PCIE EP 50(602a7)和PCIE EP 60(602a6)。PCIE EP 50(602a7)连接到CPU,并与PCIE EP 60(602a6)相连。快速PCIE模块601包括快速PCIE核601a和存储单元601b,快速PCIE核601a由FPGA通过逻辑电路搭建,存储单元601b可以由FPGA通过逻辑电路搭建,也可以外接存储芯片。存储单元601b可以是各种类型的FLASH或者ROM,其中存储有快速PCIE模块601的PCIE扩展ROM代码。控制模块603连接快速PCIE模块601和PCIE EP 60(602a6),切换模块604连接快速PCIE模块601和PCIE EP 60(602a6),并与控制模块603相连。连接在CPU上的硬盘602b3,存有DPU所需的各种后端应用程序,也包括了PCIE扩展ROM代码生成文件。需要说明的是,PCIE EP 50和PCIE EP 60均是指PCIE设备。
参考图8,当切换模块604切换到快速PCIE模块601的时候,是通过PCIE通道与HOST主机相连,呈现给HOST主机的是一个PCIE EP设备。而当切换模块604连接到PCIE EP 60(602a6)时,也是通过PCIE通道连接HOST主机的,同样呈现给主机的是PCIE EP设备。只是在此时,PCIE EP 60(602a6)和PCIE EP 50(602a7)是连接的,HOST主机通过PCIE通道发送的部分TLP包,将通过此连接通道发往CPU上运行的应用程序,由其进行处理。
针对图8所示的系统,本申请还提供了又一种实现动态切换PCIE设备的方法,具体包括如下步骤:
步骤1:启动HOST主机,切换模块604切换至快速PCIE模块601,并通过PCIE通道与HOST主机连接。快速PCIE模块601是FPGA固化在内部实现的。
步骤2: HOST主机上电开机后,也开始为FPGA(605)和CPU(602a5)上电,并一直运行到CPU(602a5)上的应用软件启动。
步骤3:HOST主机对PCIE设备进行扫描,当扫描到快速PCIE模块601,且发现其包含PCIE扩展ROM代码,将该PCIE扩展ROM代码加载到HOST主内存中执行。
步骤4:快速PCIE模块601的扩展ROM代码运行,向快速PCIE模块601轮询并等待。
步骤5:内部的CPU(602a5)启动完成,开始运行其上的应用程序,并通过PCIE EP50(602a7)至PCIE EP 60(602a6)这条通道,通知控制模块603已经准备完毕。
步骤6:控制模块603将此消息发送给快速PCIE模块601,快速PCIE模块601在其内部寄存器上标识此事件。同时,控制模块603将此事件通知给切换模块604。
步骤7:快速PCIE模块601的PCIE扩展ROM代码在HOST主机运行,向快速PCIE模块601进行轮询等待,得到快速PCIE模块601标识事件的通知,重新启动HOST主机。
步骤8:切换模块604切换至PCIE EP 60(602a6),并通过PCIE通道与HOST主机连接。
其中,切换模块604在切换快速PCIE模块601和PCIE EP 60(602a6)时,其状态进行锁定。当切换模块604接收到HOST主机的发送到PCIE通道上的RESET信号后,才进行切换。
步骤9:HOST主机第二次启动,扫描PCIE设备并发现PCIE EP 60(602a6)。CPU上的应用程序,以及FPGA,共同处理HOST主机发过来的TLP报文,完成PCIE设备的扫描过程。在此过程中,FPGA(605)将HOST主机发过来的TLP包,通过PCIE EP 50(602a7)这条通道发往CPU上的应用程序。
步骤10:HOST主机向PCIE EP 60(602a6)扫描的过程中,发现其包含PCIE扩展ROM代码。HOST主机会去加载其PCIE扩展ROM代码,读取PCIE扩展ROM代码的TLP消息发往PCIEEP 60(602a6),会由FPGA通过PCIE EP 50(602a7)发往CPU上的应用程序,应用程序将存储在硬盘(602b3)上的PCIE扩展ROM代码发送过去。PCIE扩展ROM代码会在HOST主机的主内存中执行,执行后续的业务逻辑。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的PCIE设备切换方法的PCIE设备切换装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个PCIE设备切换装置实施例中的具体限定可以参见上文中对于PCIE设备切换方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种PCIE设备切换装置,包括:PCIE切换模块910、消息接收模块920和消息发送模块930,其中:
PCIE切换模块910,用于控制切换模块在启动的情况下切换至第一PCIE模块,使得服务器在第一次启动时识别到第一PCIE模块。
消息接收模块920,用于接收与第一PCIE模块关联的第二PCIE模块发送的目标消息;其中,目标消息为表征第二PCIE模块满足预设工作状态的消息。
消息发送模块930,用于将目标消息发送至第一PCIE模块和切换模块,使得第一PCIE模块根据目标消息控制服务器进行第二次启动,以及使得切换模块根据目标消息切换至第二PCIE模块,使得服务器在第二次启动时识别到第二PCIE模块。
在一个实施例中,消息接收模块920,还用于在第二PCIE模块上电之后的工作状态满足预设工作状态的情况下,接收第二PCIE模块生成的目标消息。
在一个实施例中,PCIE设备切换装置还包括第一读取模块,用于通过第一存储单元存储第一操作指令;控制第一PCIE核在服务器第一次启动时,根据服务器发送的携带有第一操作指令的标识的第一读取指令,从第一存储单元中读取第一操作指令,并将第一操作指令发送至服务器,使得服务器根据第一操作指令,查询第一PCIE模块,得到对应的查询结果,其中,查询结果用于表示第二PCIE模块是否满足预设工作状态。
在一个实施例中,PCIE设备切换装置还包括标识存储模块,用于控制第一PCIE核生成与目标消息对应的目标标识,并将目标标识存储至寄存器中,使得服务器根据第一操作指令,查询到寄存器中包括目标标识,则确认第二PCIE模块满足预设工作状态,并根据第一操作指令进行第二次启动。
在一个实施例中,PCIE设备切换装置还包括状态控制模块,用于控制切换模块根据目标消息,进入锁定状态,在接收到服务器发送的第二次启动的启动信号的情况下,解除锁定状态,并切换至第二PCIE模块。
在一个实施例中,PCIE设备切换装置还包括第二读取模块,用于通过第二存储单元存储第二操作指令;控制第二PCIE核在服务器第二次启动时,根据服务器发送的携带有第二操作指令的标识的第二读取指令,从第二存储单元中读取第二操作指令,并将第二操作指令发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
在一个实施例中,PCIE设备切换装置还包括第三读取模块,用于通过第一存储器存储第二操作指令;控制第一PCIE设备在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第二PCIE设备发送至第一处理器;控制第一处理器根据第二读取指令,从第一存储器中读取第二操作指令,并将第二操作指令通过第二PCIE设备和第一PCIE设备发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
在一个实施例中,PCIE设备切换装置还包括第四读取模块,用于通过第二存储器存储第二操作指令;控制第三PCIE设备在服务器第二次启动时,接收服务器发送的第二读取指令,将第二读取指令通过第四PCIE设备发送至第三处理器;控制第三处理器根据第二读取指令,从第二存储器中读取第二操作指令,并将第二操作指令通过第四PCIE设备和第三PCIE设备发送至服务器,使得服务器根据第二操作指令,执行对应的操作。
上述PCIE设备切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是数据处理器芯片(DPU),还可以是配置有该数据处理器芯片的服务器。该计算机设备的内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一操作指令、第二操作指令等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种PCIE设备切换方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (19)
1.一种PCIE设备切换系统,其特征在于,包括:第一PCIE模块、第二PCIE模块、控制模块和切换模块,所述控制模块分别与所述第一PCIE模块、所述第二PCIE模块和切换模块连接,所述切换模块分别与所述第一PCIE模块和所述第二PCIE模块连接,所述切换模块还与服务器连接,所述第一PCIE模块的启动速度大于所述第二PCIE模块的启动速度,
所述切换模块,用于在启动的情况下,切换至所述第一PCIE模块,使得所述服务器在第一次启动时识别到所述第一PCIE模块;
所述控制模块,用于将所述第二PCIE模块发送的目标消息,发送至所述第一PCIE模块和所述切换模块,其中,所述目标消息为表征所述第二PCIE模块满足预设工作状态的消息;
所述第一PCIE模块,用于根据所述目标消息,控制所述服务器进行第二次启动;
所述切换模块,还用于根据所述目标消息,切换至所述第二PCIE模块,使得所述服务器在第二次启动时识别到所述第二PCIE模块。
2.根据权利要求1所述的系统,其特征在于,所述第二PCIE模块,用于在上电之后进入工作状态;在满足预设工作状态的情况下,生成所述目标消息,并将所述目标消息发送至所述控制模块。
3.根据权利要求1所述的系统,其特征在于,所述第一PCIE模块包括第一PCIE核和第一存储单元;
所述第一存储单元,用于存储第一操作指令;
所述第一PCIE核,用于在所述服务器第一次启动时,根据所述服务器发送的携带有所述第一操作指令的标识的第一读取指令,从所述第一存储单元中读取所述第一操作指令,并将所述第一操作指令发送至所述服务器;
所述服务器,用于根据所述第一操作指令,查询所述第一PCIE模块,得到对应的查询结果,其中,所述查询结果用于表示所述第二PCIE模块是否满足预设工作状态。
4.根据权利要求3所述的系统,其特征在于,所述第一PCIE模块还包括寄存器;
所述第一PCIE核,还用于生成与所述目标消息对应的目标标识,并将所述目标标识存储至所述寄存器中;
所述服务器,还用于根据所述第一操作指令,查询到所述寄存器中包括所述目标标识,则确认所述第二PCIE模块满足预设工作状态,并根据所述第一操作指令进行第二次启动。
5.根据权利要求1所述的系统,其特征在于,所述切换模块,还用于根据所述目标消息,进入锁定状态;在接收到所述服务器发送的第二次启动的启动信号的情况下,解除所述锁定状态,并切换至所述第二PCIE模块。
6.根据权利要求1所述的系统,其特征在于,所述第二PCIE模块包括第二PCIE核和第二存储单元;
所述第二存储单元,用于存储第二操作指令;
所述第二PCIE核,用于在所述服务器第二次启动时,根据所述服务器发送的携带有所述第二操作指令的标识的第二读取指令,从所述第二存储单元中读取所述第二操作指令,并将所述第二操作指令发送至所述服务器;
所述服务器,还用于根据所述第二操作指令,执行对应的操作。
7.根据权利要求6所述的系统,其特征在于,所述第二PCIE核包括第一处理器和第二处理器,所述第二处理器包括第一PCIE设备和第二PCIE设备,所述第二存储单元包括第一存储器;所述第一处理器分别与所述第一存储器和所述第二PCIE设备连接,所述第一PCIE设备分别与所述控制模块和所述切换模块连接;
所述第一存储器,用于存储所述第二操作指令;
所述第一PCIE设备,用于在所述服务器第二次启动时,接收所述服务器发送的所述第二读取指令,将所述第二读取指令通过所述第二PCIE设备发送至所述第一处理器;
所述第一处理器,用于根据所述第二读取指令,从所述第一存储器中读取所述第二操作指令,并将所述第二操作指令通过所述第二PCIE设备发送至所述第一PCIE设备;
所述服务器,用于根据所述第一PCIE设备发送的所述第二操作指令,执行对应的操作。
8.根据权利要求6所述的系统,其特征在于,所述第二PCIE核包括第三处理器、第三PCIE设备和第四PCIE设备,所述第二存储单元包括第二存储器,所述第三处理器分别与所述第二存储器和所述第四PCIE设备连接,所述第三PCIE设备分别与所述控制模块和所述切换模块连接;所述第三PCIE设备、第四PCIE设备、所述第一PCIE模块、所述控制模块和所述切换模块位于第四处理器中;
所述第二存储器,用于存储所述第二操作指令;
所述第三PCIE设备,用于在所述服务器第二次启动时,接收所述服务器发送的所述第二读取指令,将所述第二读取指令通过所述第四PCIE设备发送至所述第三处理器;
所述第三处理器,用于根据所述第二读取指令,从所述第二存储器中读取所述第二操作指令,并将所述第二操作指令通过所述第四PCIE设备发送至所述第三PCIE设备;
所述服务器,用于根据所述第三PCIE设备发送的所述第二操作指令,执行对应的操作。
9.一种PCIE设备切换方法,其特征在于,所述方法包括:
控制切换模块在启动的情况下切换至第一PCIE模块,使得服务器在第一次启动时识别到所述第一PCIE模块;
接收与所述第一PCIE模块关联的第二PCIE模块发送的目标消息;其中,所述目标消息为表征所述第二PCIE模块满足预设工作状态的消息;所述第一PCIE模块的启动速度大于所述第二PCIE模块的启动速度;
将所述目标消息发送至所述第一PCIE模块和所述切换模块,使得所述第一PCIE模块根据所述目标消息控制所述服务器进行第二次启动,以及使得所述切换模块根据所述目标消息切换至所述第二PCIE模块,使得所述服务器在第二次启动时识别到所述第二PCIE模块。
10.根据权利要求9所述的方法,其特征在于,所述接收与所述第一PCIE模块关联的第二PCIE模块发送的目标消息,包括:
在所述第二PCIE模块上电之后的工作状态满足预设工作状态的情况下,接收所述第二PCIE模块生成的所述目标消息。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
通过第一存储单元存储第一操作指令;
控制第一PCIE核在所述服务器第一次启动时,根据所述服务器发送的携带有所述第一操作指令的标识的第一读取指令,从所述第一存储单元中读取所述第一操作指令,并将所述第一操作指令发送至所述服务器,使得所述服务器根据所述第一操作指令,查询所述第一PCIE模块,得到对应的查询结果,其中,所述查询结果用于表示所述第二PCIE模块是否满足预设工作状态。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
控制所述第一PCIE核生成与所述目标消息对应的目标标识,并将所述目标标识存储至寄存器中,使得所述服务器根据所述第一操作指令,查询到所述寄存器中包括所述目标标识,则确认所述第二PCIE模块满足预设工作状态,并根据所述第一操作指令进行第二次启动。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
控制所述切换模块根据所述目标消息,进入锁定状态,在接收到所述服务器发送的第二次启动的启动信号的情况下,解除所述锁定状态,并切换至所述第二PCIE模块。
14.根据权利要求9所述的方法,其特征在于,所述方法还包括:
通过第二存储单元存储第二操作指令;
控制第二PCIE核在所述服务器第二次启动时,根据所述服务器发送的携带有所述第二操作指令的标识的第二读取指令,从所述第二存储单元中读取所述第二操作指令,并将所述第二操作指令发送至所述服务器,使得所述服务器根据所述第二操作指令,执行对应的操作。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
通过第一存储器存储所述第二操作指令;
控制第一PCIE设备在所述服务器第二次启动时,接收所述服务器发送的所述第二读取指令,将所述第二读取指令通过第二PCIE设备发送至第一处理器;
控制所述第一处理器根据所述第二读取指令,从所述第一存储器中读取所述第二操作指令,并将所述第二操作指令通过所述第二PCIE设备和所述第一PCIE设备发送至所述服务器,使得所述服务器根据所述第二操作指令,执行对应的操作。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
通过第二存储器存储所述第二操作指令;
控制第三PCIE设备在所述服务器第二次启动时,接收所述服务器发送的所述第二读取指令,将所述第二读取指令通过第四PCIE设备发送至第三处理器;
控制所述第三处理器根据所述第二读取指令,从所述第二存储器中读取所述第二操作指令,并将所述第二操作指令通过所述第四PCIE设备和所述第三PCIE设备发送至所述服务器,使得所述服务器根据所述第二操作指令,执行对应的操作。
17.一种PCIE设备切换装置,其特征在于,所述装置包括:
PCIE切换模块,用于控制切换模块在启动的情况下切换至第一PCIE模块,使得服务器在第一次启动时识别到所述第一PCIE模块;
消息接收模块,用于接收与所述第一PCIE模块关联的第二PCIE模块发送的目标消息;其中,所述目标消息为表征所述第二PCIE模块满足预设工作状态的消息;所述第一PCIE模块的启动速度大于所述第二PCIE模块的启动速度;
消息发送模块,用于将所述目标消息发送至所述第一PCIE模块和所述切换模块,使得所述第一PCIE模块根据所述目标消息控制所述服务器进行第二次启动,以及使得所述切换模块根据所述目标消息切换至所述第二PCIE模块,使得所述服务器在第二次启动时识别到所述第二PCIE模块。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求9至16中任一项所述的方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求9至16中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738086.2A CN114817107B (zh) | 2022-06-28 | 2022-06-28 | Pcie设备切换系统、方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738086.2A CN114817107B (zh) | 2022-06-28 | 2022-06-28 | Pcie设备切换系统、方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817107A CN114817107A (zh) | 2022-07-29 |
CN114817107B true CN114817107B (zh) | 2022-10-25 |
Family
ID=82522431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210738086.2A Active CN114817107B (zh) | 2022-06-28 | 2022-06-28 | Pcie设备切换系统、方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817107B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795605B (zh) * | 2023-08-23 | 2023-12-12 | 珠海星云智联科技有限公司 | 一种外围器件互联扩展设备异常自动恢复系统以及方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2365445B1 (en) * | 2010-03-11 | 2013-10-23 | Ricoh Company, Ltd. | Adapter and communication method |
US8868954B1 (en) * | 2013-05-21 | 2014-10-21 | Microsoft Corporation | Low cost storage for rarely read data |
TW201600972A (zh) * | 2014-06-23 | 2016-01-01 | 英業達股份有限公司 | 伺服器系統 |
CN104133533A (zh) * | 2014-08-06 | 2014-11-05 | 浪潮(北京)电子信息产业有限公司 | 一种支持全长的pcie扩展卡板卡系统 |
CN104518886A (zh) * | 2014-12-11 | 2015-04-15 | 曙光信息产业(北京)有限公司 | 服务器的网络唤醒方法和装置 |
CN106452968A (zh) * | 2016-10-24 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种pcie设备可靠性的加速检测方法 |
CN110622145B (zh) * | 2017-05-15 | 2023-06-13 | 莫列斯有限公司 | 可重新配置的服务器以及服务器机架 |
CN112134713A (zh) * | 2020-08-26 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种智能网卡与服务器连接方法及装置 |
CN112069108A (zh) * | 2020-08-27 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种基于PCIE Switch的服务器灵活配置系统及方法 |
CN112269584A (zh) * | 2020-10-19 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种PCIe Switch固件更新方法、装置、电子设备及介质 |
CN112631979A (zh) * | 2020-12-28 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种自动分配pcie信号的服务器及方法 |
CN113849431A (zh) * | 2021-09-24 | 2021-12-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种系统拓扑结构切换方法、装置及介质 |
CN114185603B (zh) * | 2021-11-08 | 2024-01-05 | 深圳云天励飞技术股份有限公司 | 一种智能加速卡的控制方法、服务器及智能加速卡 |
-
2022
- 2022-06-28 CN CN202210738086.2A patent/CN114817107B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114817107A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101255382B1 (ko) | 운영체제에 친숙한 부트로더 | |
EP3029912B1 (en) | Remote accessing method and corresponding system | |
CN110134446B (zh) | 启动pcie设备扫描的方法 | |
US11080404B2 (en) | Firmware upgrade method, slave station of robot, and machine readable storage medium | |
CN110928935B (zh) | 数据的访问命令处理方法、装置和系统 | |
CN114817107B (zh) | Pcie设备切换系统、方法、装置、计算机设备和存储介质 | |
WO2021077742A1 (zh) | 一种业务处理方法、系统、装置及可读存储介质 | |
US9319313B2 (en) | System and method of forwarding IPMI message packets based on logical unit number (LUN) | |
CN114817105A (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
WO2010077813A2 (en) | Composite device emulation | |
WO2024103583A1 (zh) | Bios选项修改的生效方法和装置、非易失性可读存储介质及电子装置 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN111767082A (zh) | 计算芯片启动方法、装置和计算机系统 | |
CN116820527A (zh) | 程序升级方法、装置、计算机设备和存储介质 | |
CN111953753B (zh) | 通信设备连接方法、装置、计算机设备和存储介质 | |
CN110096366B (zh) | 一种异构内存系统的配置方法、装置及服务器 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN111124522B (zh) | 一种微内核及宏内核混合的方法及系统 | |
CN111045787B (zh) | 一种快速继续实验方法及系统 | |
CN116032498A (zh) | 一种内存区域注册方法、装置及设备 | |
US10402454B1 (en) | Obtaining platform-specific information in a firmware execution environment | |
CN112667544A (zh) | 一种控制主板插槽使能的方法、装置、系统及介质 | |
CN116528300B (zh) | 任务下发方法、装置、系统及通信设备 | |
CN116243994B (zh) | 一种存储设备的驱动加载方法、操作系统启动方法及系统 | |
CN110928582B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |