CN114840465B - 提高PCIe卡兼容性的方法、装置、设备及存储介质 - Google Patents
提高PCIe卡兼容性的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114840465B CN114840465B CN202210485137.5A CN202210485137A CN114840465B CN 114840465 B CN114840465 B CN 114840465B CN 202210485137 A CN202210485137 A CN 202210485137A CN 114840465 B CN114840465 B CN 114840465B
- Authority
- CN
- China
- Prior art keywords
- pcie
- output system
- enumeration
- server
- basic input
- 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
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/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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种提高PCIe卡兼容性的方法、装置、设备及存储介质,所述方法包括以下步骤:当检测到复位信号时,预设软件将拓扑状态调整为简化状态;基于所述简化状态,通知服务器启动,控制基本输入输出系统扫描拓扑结构,并执行所述基本输入输出系统枚举阶段;当所述枚举阶段结束,控制所述服务器运行预设随选内存,发送所述基本输入输出系统枚举阶段的结束消息;根据所述结束消息,将所述拓扑调整为完整状态,并控制所述服务器进入内核阶段,匹配驱动。采用本申请,能够减少复杂拓扑和设备的处理步骤,大幅度提高PCIe卡兼容性。
Description
技术领域
本申请属于计算机领域,主要涉及了一种提高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卡兼容性设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“1”和“2”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参见图1,图1为本申请实施例提供的一种提高PCIe卡兼容性的应用场景图。如图1所示,该应用场景图包括用户101、服务器102和电脑103。需要说明的是,图1所示的系统中的各个设备的数量、各个设备的形态和用户的数量用于举例,并不构成对本申请实施例的限定,一个用户可以使用多个电子设备。
其中,用户101是实际操作电脑103的用户,以控制电脑103执行相应的操作。电脑103可以是图1所示的台式机电脑,还可以是笔记本电脑、一体机和便捷式设备等。PC端的电子设备,例如一体机等,其操作系统可以包括但不限于iOS系统、Linux系统、Unix系统、Windows系列系统(例如Windows xp、Windows 7、Windows 10等)等操作系统。
下面介绍本申请实施例提供的提高PCIe卡兼容性的方法,该方法可以由提高PCIe卡兼容性装置执行,该装置可由软件和/或硬件实现,一般可集成在电子设备或服务器中。
请参照图2,图2为本申请实施例提供的一种提高PCIe卡兼容性的流程示意图。以该方法应用于提高PCIe卡兼容性过程进行举例说明,该提高PCIe卡兼容性的装置可以包括服务器或电子设备,该方法包括如下步骤S201-S204。
S201:当检测到复位信号时,预设软件将拓扑状态调整为简化状态。
在本申请实施例中,PCIe卡具有一定的灵活性和复杂性,随着数据中心的发展,越来越多的功能需要从服务器卸载到PCIe卡,为了满足虚拟化的需求,PCIe卡需要具备一定算力且可灵活配置,可为服务器提供大量的设备和卸载能力。当PCIe卡插到服务器上,不只是呈现为单个设备,也可呈现经过多级switch连接的多个不同设备,形成复杂的拓扑,且每个设备本身也会具备较多的能力,例如虚拟出多个设备和拓扑结构。多种设备及每个设备本身的复杂性进行叠加,对bios的兼容性形成挑战。
在本申请实施例中,PCI Express,简称PCI-E或PCIe,是计算机总线的一个重要分支,大量的设备使用PCIe接入到计算机上。单个PCIe卡接入后可呈现为一个设备,例如呈现为单个网卡或者显卡。PCIe总线规定了两个复位方式。传统的复位方式分为Cold、Warm和Hot Reset。PCIe设备可以根据当前的设备的运行状态选择合适的复位方式,PCIe总线提供多种复位方式的主要原因是减小PCIe设备的复位延时。其中,传统复位方式的延时大于FLR方式。使用传统复位方式时,Cold Reset使用的时间最长,而Hot Reset使用的时间最短。除了传统的复位方式之外,PCIe总线还提供了FLR方式,系统软件通过填写某些寄存器,如synosys的PCIe的IP是可以通过配置PCI ExpressCapability的DeviceControl Register的第16比特完成FLR。支持FLR方式的PCIe设备需要在其BAR空间中提供一个寄存器,当系统软件对该寄存器的Function LevelReset位写1时,PCIe设备将使用FLR方式复位PCIe设备的内部逻辑。FLR方式对PCIe设备是可选的,在一个大规模的并行处理系统中,系统软件使用分区的概念管理所有硬件资源,包括处理器资源和所有IO资源,这些IO资源中通常会包含PCIe设备。在这种处理器系统中,任务在指定的分区中运行,当这个任务执行完毕后,系统软件需要调整硬件资源的分区。此时受到影响的PCIe设备需要使用FLR方式复位内部的逻辑,以免造成对新的分区的资源污染,并保护之前任务的结果。需要强调的是,预设软件将拓扑状态调整为简化或者完整状态时,可以是硬件逻辑实现的自动调整,也可以是软件实现的自动调整,软件可运行在逻辑生成的核上,也可以运行在外挂的独立中央处理器核上。
在本申请实施例中,对上述的简化状态进行举例说明:将设备的部分属性隐藏起来,例如呈现为不支持sriov的设备;将设备隐藏起来,只呈现未接入设备的switch;彻底隐藏,只呈现一个switch的upstream口。
在一种可能的示例中,步骤S201包括以下步骤:
控制预设逻辑检测PCIe接口信号,当接收所述服务器重启的信息,判断即将进入基本输入输出系统枚举阶段。
在本申请实施例中,所述预设逻辑包括ASIC/FPGA逻辑。其中,FPGA代表现场可编程门阵列,它是一种集成电路,可以“现场”编程,按预期设计工作。这意味着它可以作为一个微处理器,或者一个加密单元,或者显卡,甚至可以同时使用这三个功能。顾名思义,FPGA是现场可编程的。因此,与半导体铸造厂不同,作为微处理器的FPGA可以重新编程,在现场充当显卡。在FPGA上运行的设计通常使用硬件描述语言创建。
FPGA是由数千个可配置逻辑块(CLB)组成的,它们嵌入在可编程互连的海洋中。CLB主要由查找表(LUT)、多路复用器和触发器组成。它们可以实现复杂的逻辑功能。除了CLB和路由互连,许多FPGA还包含用于各种功能的专用硬硅块,如块RAM、DSP块、外部存储器控制器、PLL和千兆位收发器等。最近的一个趋势是在同一个FPGA芯片内部提供一个硬硅处理器核心,这样处理器就可以处理日常的、非关键的任务,而FPGA可以处理用处理器无法完成的高速加速,这些专用的硬件块在与ASIC竞争中至关重要。
ASIC代表专用集成电路,顾名思义,ASIC是特定于应用程序的。它们的设计目的只有一个,它们的整个使用寿命都是一样的。例如,手机内部的CPU是一个ASIC,它的功能是作为一个CPU的整个生命周期。它的逻辑功能不能改变成其他任何东西,因为它的数字电路是由永久连接的门和硅触发器组成的。ASIC的逻辑功能以类似于FPGA的方式指定,使用硬件描述语言。在这种情况下,集成电路的数量是可配置的。作为比较,可以考虑使用乐高积木建造城堡与使用混凝土建造城堡,前者类似于FPGA,而后者类似于ASIC。你可以重复使用乐高积木创造一个不同的设计,但混凝土城堡是永久性的。
S202:基于所述简化状态,通知服务器启动,控制基本输入输出系统扫描拓扑结构,并执行所述基本输入输出系统枚举阶段。
在本申请实施例中,bios是英文“basic input output system”的缩略词,直译过来后中文名称就是“基本输入输出系统”。其实,它是一组固化到计算机内主板上一个芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。
其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。它与一般的软件有一些区别,而且它与硬件的联系也是相当地紧密。基本输入输出系统程序有大小之分,例如有256KB、512KB、1M、2M等,占用空间越大基本输入输出系统选择项越多,基本输入输出系统越丰富。形象地说,基本输入输出系统应该是连接软件程序与硬件设备的一座“桥梁”,负责解决硬件的即时要求。一块主板性能优越与否,很大程度上就取决于基本输入输出系统程序的管理功能是否合理先进。主板上的基本输入输出系统芯片或许是主板上唯一贴有标签的芯片,一般它是一块32针的双列直插式的集成电路,上面印有“bios”字样。586以前的bios多为可重写EPROM芯片,上面的标签起着保护bios内容的作用(紫外线照射会使EPROM内容丢失),不能随便撕下。586以后的ROM bios多采用EEPROM(电可擦写只读ROM),通过跳线开关和系统配带的驱动程序盘,可以对EEPROM进行重写,方便地实现bios升级。常见的bios芯片有Award、AMI、Phoenix、MR等,在芯片上都能见到厂商的标记。
计算机用户在使用计算机的过程中,都会接触到基本输入输出系统,它在计算机系统中起着非常重要的作用。一块主板性能优越与否,很大程度上取决于主板上的基本输入输出系统管理功能是否先进。基本输入输出系统芯片是主板上一块长方型或正方型芯片,基本输入输出系统中主要存放:
自诊断程序:通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化;
CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中;
系统自举装载程序:在自检成功后将磁盘相对0道0扇区上的引导程序装入内存,让其运行以装入DOS系统;
主要I/O设备的驱动程序和中断服务。
在一种可能的示例中,步骤S202包括以下步骤A1-A2,其中:
A1:对PCIe总线进行扫描,枚举所述PCIe总线下连接的所有设备。
在本申请实施例中,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次,PCIe总线使用的层次结构与网络协议栈较为类似。举例而言,PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成。其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个PCIe链路可以由多个Lane组成,高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合。该电容也被称为AC耦合电容。PCIe链路使用差分信号进行数据传送,一个差分信号由D+和D-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0”。与单端信号相比,差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”和“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到D+和D-两根信号上,其差值在理想情况下为0,对信号的逻辑值产生的影响较小。因此差分信号可以使用更高的总线频率,此外,使用差分信号能有效抑制电磁干扰EMI(Electro Magnetic Interference)。由于差分信号D+与D-距离很近,而且信号幅值相等、极性相反。这两根线与地线间耦合电磁场的幅值相等,将相互抵消,因此差分信号对外界的电磁干扰较小。当然差分信号的缺点也是显而易见的,一是差分信号使用两根信号传送一位数据;二是差分信号的布线相对严格一些。
A2:所述基本输入输出系统枚举阶段按照深度优先的顺序遍历设备。
在本申请实施例中,上述的深度优先的顺序来自于深度优先搜索算法(DepthFirst Search,DFS),中文简称深度优先搜索算法,其过程为沿着每一个可能的路径向下进行搜索,直到不能再深入为止,并且每一个节点只能访问一次。举例而言,首先找到初始节点a,依次从该节点未被访问的邻节点出发,对图进行深度优先遍历,若有节点未被访问,则回溯到该初始节点a,继续进行深度优先遍历,直到所有与该初始节点a路径相通的节点都被访问过一次。
在一种可能的示例中,步骤S202包括以下步骤:
所述设备通过转换进行拓展,组织成树形结构。
S203:当所述枚举阶段结束,控制所述服务器运行预设随选内存,发送所述基本输入输出系统枚举阶段的结束消息。
在本申请实施例中,PCI option rom又叫PCI Expansion ROM,它是用于设备初始化和系统boot的code,有的PCI option rom被存放在板卡上,而有的则保存在基本输入输出系统的binary里面。就功能而言,它是PCIe设备上存放的一段程序镜像,基本输入输出系统在枚举时会读取,全部拓扑枚举完成之后,会执行此段程序,再继续下一阶段的启动。
在一种可能的示例中,步骤S203包括以下步骤:
当检测到数据事务层包开始为PCIe卡上的第一个桥设置总线号和存储范围时,此时基本输入输出系统枚举结束。
在一种可能的示例中,步骤S203包括以下步骤:
基于所述随选内存,判断基本输入输出系统扫描结束;
经由所述预设软件将PCIe卡展现的拓扑调整为完整状态。
在本申请实施例中,当不使用随选内存时,PCIe卡持续接收分析基本输入输出系统的扫描数据事务层包,根据特征判断基本输入输出系统扫描结束,将PCIe卡展现的拓扑调整为完整状态,服务器继续启动,进入内核阶段,内核枚举到完整的PCIe拓扑结构,正常匹配网卡等驱动。
在本申请实施例中,对上述调整为完整状态进行举例说明:在kernel枚举之前调整,由kernel来发现;在kernel枚举之后,通过热插拔的方式新增设备。
S204:根据所述结束消息,将所述拓扑调整为完整状态,并控制所述服务器进入内核阶段,匹配驱动。
在一种可能的示例中,步骤S204包括以下步骤:
经由内核枚举到完整的PCIe拓扑结构;
所述驱动包括网卡驱动、声卡驱动和显卡驱动中的至少一项。
在本申请实施例中,所述驱动可包括但不限于网卡驱动、声卡驱动和显卡驱动中的至少一项,在此并不限定其具体类型,取决于PCIe卡展示的设备类型。
在本申请实施例中,计算机网络的最主要的拓扑结构有总线型拓扑、环形拓扑、树形拓扑、星形拓扑、混合型拓扑和网状拓扑。PCIe采用的是树形拓扑结构,RC是树的根,或者主干,它为CPU代言,与PCIe系统其它部分通讯,一般为通讯的发起者;switch(交换机)是树枝,树枝上有叶子(Endpoint),也可节外生枝,switch上连switch,归根结底,是为了连接更多的Endpoint。switch为它下面的Endpoint或switch提供路由转发服务;Endpoint是树叶,诸如SSD,网卡和显卡等,从而实现某些特定功能。我们还看到有所谓的桥,用以将PCIe总线转换成PCI总线。
在本申请实施例中,网卡是硬件设备:计算机与外界局域网的连接是通过主机箱内插入一块网络接口板。网络接口板又称为通信适配器或网络适配器(networkadapter)或网络接口卡,但是更多的人愿意使用更为简单的名称“网卡”。网卡驱动是配套的软件:驱动程序全称为“设备驱动程序”,是一种可以使计算机中央处理器——CPU控制和使用设备的特殊程序,相当于硬件的接口,操作系统通过这个接口,控制硬件设备的工作。所有的硬件都要安装驱动程序,没有驱动程序的硬件是运行不了的。假如某设备的驱动程序未能正确安装,便不能正常工作,因此,网卡驱动程序是CPU控制和使用网卡的重要程序。
请参见图3,图3为本申请实施例提供的一种提高PCIe卡兼容性装置的结构示意图。基于上述的系统架构,该提高PCIe卡兼容性装置300可以为服务器,也可以为服务器中的模块。该装置300,至少包括:采集模块301和处理模块302,其中,
采集模块301用于采集复位信号;
处理模块302用于将拓扑状态调整为简化状态;控制基本输入输出系统扫描拓扑结构,并执行所述基本输入输出系统枚举阶段;控制所述服务器运行预设随选内存;将所述拓扑调整为完整状态,并控制所述服务器进入内核阶段,匹配驱动。
在一个可能的示例中,所述处理模块302控制预设逻辑检测PCIe接口信号,当接收所述服务器重启的信息,判断即将进入基本输入输出系统枚举阶段。
在一个可能的示例中,所述处理模块302对PCIe总线进行扫描,枚举所述PCIe总线下连接的所有设备,在所述基本输入输出系统枚举阶段按照深度优先的顺序遍历设备。
在一个可能的示例中,所述处理模块302通过转换进行拓展设备,组织成树形结构。
在一个可能的示例中,当检测到数据事务层包开始为PCIe卡上的第一个桥设置总线号和存储范围时,所述处理模块302判断基本输入输出系统枚举结束。
在一个可能的示例中,所述处理模块302判断基本输入输出系统扫描结束,经由所述预设软件将PCIe卡展现的拓扑调整为完整状态。
在一个可能的示例中,所述处理模块302经由内核枚举到完整的PCIe拓扑结构,匹配网卡驱动。
请参见图4,图4为本申请实施例提供的一种分阶段调整PCIe卡的方法图。如图4所示,该方法图包括主机400、option rom动作401、逻辑402、模拟器403和存储404。计算机系统复位或者上电之后,中央处理器并不知道实际连接的设备,软件首先要对PCIe总线进行扫描来枚举该总线下连接的所有设备,枚举时是按照深度优先的顺序来遍历探测存在哪些设备,最终给每个设备分配编号,并进行处理,在设备彼此的联系中,PCIe设备之间发送的数据包,称为tlp包。在初始化阶段,主机400能够发出重启信号给逻辑402,逻辑402能够将主机400重启通知tlp发送给模拟器403,从而调整为简化的模拟状态。在bios枚举,重复交互tlp包阶段,主机400能够发出枚举tlp包给逻辑402,逻辑402能够发送枚举tlp包给模拟器403,模拟器403能够发送回复tlp包给逻辑402,逻辑402能够发送回复tlp包给主机400。在option rom阶段,option rom动作401能够将枚举阶段成功信号发送给逻辑402,逻辑402能够将枚举成功通知tlp发送给模拟器403,从而调整为完整的模拟状态。在kernel枚举,重复交互tlp包阶段,主机400能够发出枚举tlp包给逻辑402,逻辑402能够将枚举tlp包发送给模拟器403,模拟器403能够将回复tlp包发送给逻辑402,逻辑402能够将回复tlp包发送给主机400。需要说明的是,本申请实施例是对上述步骤进行开放性描述,并不进行限定。
请参见图5,图5为本申请实施例提供的一种PCIe卡连接设备的场景图。如图5所示,该场景图包括中央处理器501、根复合体设备502、PCIe连接503、switch504和PCIe设备505,整个计算机的PCIe设备505,通过switch504拓展,组织成树形结构。switch504和PCIe设备505可以是一个switch综合芯片,或者是一组芯片,或者是逻辑、芯片实现的一个综合PCIe switch功能,其中部分功能可为软件模拟。
请参见图6,图6为本申请实施例提供的一种提高PCIe卡兼容性设备的结构图。如图6所示,该提高PCIe卡兼容性设备600包括处理器601、存储器602、通信接口604以及一个或至少一个程序603。上述一个或至少一个程序603被存储在上述存储器602中,并且被配置由上述处理器601执行,上述程序603包括用于执行以下步骤的指令:
当检测到复位信号时,预设软件将拓扑状态调整为简化状态;
基于所述简化状态,通知服务器启动,控制基本输入输出系统扫描拓扑结构,并执行所述基本输入输出系统枚举阶段;
当所述枚举阶段结束,控制所述服务器运行预设随选内存,发送所述基本输入输出系统枚举阶段的结束消息;
根据所述结束消息,将所述拓扑调整为完整状态,并控制所述服务器进入内核阶段,匹配驱动。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
控制预设逻辑检测PCIe接口信号,当接收所述服务器重启的信息,判断即将进入基本输入输出系统枚举阶段。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
对PCIe总线进行扫描,枚举所述PCIe总线下连接的所有设备;
所述基本输入输出系统枚举阶段按照深度优先的顺序遍历设备。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
通过转换进行拓展设备,组织成树形结构。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
当检测到数据事务层包开始为PCIe卡上的第一个桥设置总线号和存储范围时,此时基本输入输出系统枚举结束。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
基于所述随选内存,判断基本输入输出系统扫描结束;
经由所述预设软件将PCIe卡展现的拓扑调整为完整状态。
在一个可能的示例中,所述程序603具体用于执行以下步骤的指令:
经由内核枚举到完整的PCIe拓扑结构;
所述驱动包括网卡驱动、声卡驱动和显卡驱动中的至少一项。
本领域技术人员可以理解,为了便于说明,图6中仅示出了一个存储器602和处理器601。在实际的终端或服务器中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。
应理解,在本申请实施例中,处理器可以是中央处理单元(Central ProcessingUnit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器还可以采用通用的微处理器、图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所需执行的功能。
处理器601还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的各个步骤可以通过处理器601中硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存和只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成本申请实施例的方法、装置及存储介质包括的单元所需执行的功能。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。该存储器还可以是只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在的,通过总线与处理器相连接。存储器也可以和处理器集成在一起,存储器可以存储程序,当存储器中存储的程序被处理器执行时,处理器用于执行本申请上述实施例中确定方法的各个步骤。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block,简称ILB)和步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机编程的程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在处理器上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输,也可以从一个网站站点、计算机、服务器或数据中心通过有线方式向手机处理器进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (7)
1.一种提高PCIe卡兼容性的方法,其特征在于,包括以下步骤:
当检测到复位信号时,预设软件将拓扑状态调整为简化状态;
基于所述简化状态,通知服务器启动,控制基本输入输出系统扫描拓扑结构,并执行所述基本输入输出系统枚举阶段;
所述输入输出系统枚举阶段按照深度优先的顺序遍历设备;
基于所述基本输入输出系统枚举阶段,对PCIe总线进行扫描,枚举所述PCIe总线下连接的所有设备;
所述设备通过转换进行拓展,组织成树形结构;
当所述枚举阶段结束,控制所述服务器运行预设随选内存,发送所述基本输入输出系统枚举阶段的结束消息;
根据所述结束消息,将所述拓扑调整为完整状态,并控制所述服务器进入内核阶段,匹配驱动,所述驱动包括网卡驱动、声卡驱动和显卡驱动中的至少一项;
经由所述内核枚举到完整的PCIe拓扑结构。
2.根据权利要求1所述的方法,其特征在于,所述基于所述简化状态,通知服务器启动,包括以下步骤:
控制预设逻辑检测PCIe接口信号,当接收所述服务器重启的信息,判断即将进入输入输出系统枚举阶段。
3.根据权利要求1所述的方法,其特征在于,所述当所述枚举阶段结束,包括以下步骤:
当检测到数据事务层包开始为PCIe卡上的第一个桥设置总线号和存储范围时,此时输入输出系统枚举结束。
4.根据权利要求1所述的方法,其特征在于,所述控制所述服务器运行预设随选内存,发送所述基本输入输出系统枚举阶段的结束消息,包括以下步骤:
基于所述随选内存,判断基本输入输出系统扫描结束;
经由所述预设软件将PCIe卡展现的拓扑调整为完整状态。
5.一种提高PCIe卡兼容性的装置,其特征在于,用于执行如权利要求1-4中任一项所述的方法。
6.一种提高PCIe卡兼容性的设备,其特征在于,包括处理器、存储器以及一个或至少一个程序,其中,所述一个或至少一个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1-4中任一项所述方法的指令。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序使得计算机执行以实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210485137.5A CN114840465B (zh) | 2022-05-06 | 2022-05-06 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210485137.5A CN114840465B (zh) | 2022-05-06 | 2022-05-06 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840465A CN114840465A (zh) | 2022-08-02 |
CN114840465B true CN114840465B (zh) | 2023-08-18 |
Family
ID=82568567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210485137.5A Active CN114840465B (zh) | 2022-05-06 | 2022-05-06 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840465B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170744B (zh) * | 2023-11-03 | 2024-01-23 | 珠海星云智联科技有限公司 | DPU的OptionRom功能实现方法及相关装置 |
CN117290272B (zh) * | 2023-11-23 | 2024-02-23 | 井芯微电子技术(天津)有限公司 | PCIe Switch及其配置通路的实现方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
CN109218231A (zh) * | 2018-09-21 | 2019-01-15 | 中国航空无线电电子研究所 | 一种RapidIO交换网络 |
CN112835839A (zh) * | 2021-02-04 | 2021-05-25 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
CN113688087A (zh) * | 2021-10-25 | 2021-11-23 | 苏州浪潮智能科技有限公司 | 一种pcie设备枚举方法、系统、存储介质及设备 |
CN113849431A (zh) * | 2021-09-24 | 2021-12-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种系统拓扑结构切换方法、装置及介质 |
WO2022007644A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 多处理器系统及配置多处理器系统的方法 |
WO2022012309A1 (zh) * | 2020-07-13 | 2022-01-20 | 华为技术有限公司 | 扩展PCIe系统的方法、PCIe交换设备及PCIe系统 |
-
2022
- 2022-05-06 CN CN202210485137.5A patent/CN114840465B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
CN109218231A (zh) * | 2018-09-21 | 2019-01-15 | 中国航空无线电电子研究所 | 一种RapidIO交换网络 |
WO2022007644A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 多处理器系统及配置多处理器系统的方法 |
WO2022012309A1 (zh) * | 2020-07-13 | 2022-01-20 | 华为技术有限公司 | 扩展PCIe系统的方法、PCIe交换设备及PCIe系统 |
CN112835839A (zh) * | 2021-02-04 | 2021-05-25 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
CN113849431A (zh) * | 2021-09-24 | 2021-12-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种系统拓扑结构切换方法、装置及介质 |
CN113688087A (zh) * | 2021-10-25 | 2021-11-23 | 苏州浪潮智能科技有限公司 | 一种pcie设备枚举方法、系统、存储介质及设备 |
Non-Patent Citations (1)
Title |
---|
"一种SOA架构下VTD-XML解析引擎的设计与实现";刘大鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114840465A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114840465B (zh) | 提高PCIe卡兼容性的方法、装置、设备及存储介质 | |
CN108572938B (zh) | 在ip与多个gpio之间具有安全soc连接的系统及对应方法 | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
KR101035832B1 (ko) | 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템 | |
KR101406426B1 (ko) | 휴대용 저장 인터페이스 | |
KR101620655B1 (ko) | 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩 | |
KR101725536B1 (ko) | Pcie 프로토콜 스택을 이용하는 저전력 phy의 동작을 위한 디바이스, 방법 및 시스템 | |
JP2010520528A (ja) | 複数のブート可能装置間のブートネゴシエーション | |
US10013388B1 (en) | Dynamic peer-to-peer configuration | |
CN109656844B (zh) | 一种AT24xx EEPROM驱动方法和装置 | |
CN103383676A (zh) | 集线器装置以及用以初始化集线器装置的方法 | |
TW201209592A (en) | Method for adjusting link speed and computer system | |
CN103514074A (zh) | Mvb网卡开发方法及平台 | |
CN104035757A (zh) | 基于MIPS处理器的u-boot移植的实现方法 | |
CN111897582B (zh) | 一体机以太网刷新方法、装置、存储介质及一体机设备 | |
US20080005374A1 (en) | System and Method for Flexible Multiple Protocols | |
CN106569967A (zh) | 双列直插式存储器模块固态硬盘片上系统及模拟方法 | |
CN113986796A (zh) | 一种PCIe链路宽度的动态配置方法、装置、设备及可读介质 | |
CN116431546B (zh) | 参数配置方法、电子设备、存储介质及程序产品 | |
CN107861803A (zh) | 一种基于中断的xp系统下cpci总线rs422通信驱动方法 | |
US20180198633A1 (en) | Network card | |
US9619415B2 (en) | System and method for intelligent platform management interface keyboard controller style interface multiplexing | |
CN116302006A (zh) | 模拟器的热升级方法及相关装置 | |
JP6965943B2 (ja) | 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム | |
CN106201938A (zh) | 一种芯片、集线器、电子设备及中断usb信号的方法 |
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 |