WO2026045679A1 - Computer system for bandwidth allocation, bandwidth allocation method, and product - Google Patents

Computer system for bandwidth allocation, bandwidth allocation method, and product

Info

Publication number
WO2026045679A1
WO2026045679A1 PCT/CN2025/107158 CN2025107158W WO2026045679A1 WO 2026045679 A1 WO2026045679 A1 WO 2026045679A1 CN 2025107158 W CN2025107158 W CN 2025107158W WO 2026045679 A1 WO2026045679 A1 WO 2026045679A1
Authority
WO
WIPO (PCT)
Prior art keywords
expansion unit
motherboard
computer system
bandwidth
configuration information
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.)
Pending
Application number
PCT/CN2025/107158
Other languages
French (fr)
Chinese (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Publication of WO2026045679A1 publication Critical patent/WO2026045679A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Embodiments of the present application relate to the technical field of computer systems, and provide a computer system for bandwidth allocation, a bandwidth allocation method, and a product. When a motherboard of the computer system is powered on, a monitoring module, upon identifying a change in applications of extension units plugged into the motherboard, generates, on the basis of bandwidth configuration information corresponding to the extension units, a bandwidth allocation information table corresponding to a central processing unit; after the motherboard of the computer system is powered on, a baseboard management controller generates an option configuration file on the basis of the bandwidth allocation information table; after a main unit of the computer system is triggered, a basic input/output system is used for configuring any connection port of the central processing unit on the basis of the option configuration file during a boot process, so as to allocate bandwidth resources of the central processing unit to the extension units. The embodiments of the present application aim to automatically allocate bandwidth resources in a computer system.

Description

一种带宽分配的计算机系统、带宽分配方法以及产品A computer system, method, and product for bandwidth allocation.

相关申请的交叉引用Cross-reference to related applications

本申请要求于2024年08月27日提交中国专利局,申请号为202411183104.0,申请名称为“一种带宽分配的计算机系统、带宽分配方法以及产品”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to Chinese Patent Application No. 202411183104.0, filed on August 27, 2024, entitled "A Computer System for Bandwidth Allocation, a Method for Bandwidth Allocation, and a Product", the entire contents of which are incorporated herein by reference.

技术领域Technical Field

本申请实施例涉及计算机系统的技术领域,具体而言,涉及一种带宽分配的计算机系统、带宽分配方法以及产品。This application relates to the technical field of computer systems, and more specifically, to a computer system, bandwidth allocation method, and product for bandwidth allocation.

背景技术Background Technology

随着技术的发展,CPU(Central Processing Unit,中央处理器)也可以支持不同版本的PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)通道,PCIe的带宽与PCIe版本和数据通路Lane数量密切相关,不同版本的PCIe的带宽也不相同,如:PCIe 4.0的线上比特传输速率提升至16GT/s(GigaTransfers per Second,每秒传输的千兆次数据量),而PCIe 5.0的线上比特传输速率最高可达32GT/s。With the development of technology, CPUs (Central Processing Units) can also support different versions of PCIe (Peripheral Component Interconnect Express) channels. The bandwidth of PCIe is closely related to the PCIe version and the number of data lanes. Different versions of PCIe have different bandwidths. For example, the online bit transfer rate of PCIe 4.0 has been increased to 16GT/s (GigaTransfers per Second), while the online bit transfer rate of PCIe 5.0 can reach up to 32GT/s.

此外,PCIe的带宽还与其数据通路Lane数量有关,如一个PCIe设备需要高带宽时则采用多个Lane;如果一个PCIe设备并不需要高带宽时,也可以分配一个Lane就可以了;其中,连接PCIe设备的物理插槽中,如PCIe x8插槽(8通道的PCIe接口)的理论最大带宽为8GB/s(Gigabytes per Second,每秒传输的千兆字节数);PCIe x16插槽拥有最高的理论最大带宽为16GB/s。In addition, the bandwidth of PCIe is also related to the number of its data path lanes. For example, a PCIe device that requires high bandwidth will use multiple lanes; if a PCIe device does not require high bandwidth, it can be allocated one lane. Among the physical slots that connect PCIe devices, the theoretical maximum bandwidth of a PCIe x8 slot (an 8-lane PCIe interface) is 8GB/s (Gigabytes per Second); the PCIe x16 slot has the highest theoretical maximum bandwidth of 16GB/s.

服务器主板上的PICe插槽一般采用PCIe x8插槽和PCIe x16插槽,便于后期插接不同种类的扩展卡,但是由于目前CPU直接给PCIe x8插槽和PCIe x16插槽提供的带宽是最大带宽,造成插入Lane数量小的扩展卡时不能有效识别,CPU同样分配最大带宽,导致PCIe资源浪费,造成CPU功能损失。Server motherboards typically use PCIe x8 and PCIe x16 slots for easy insertion of different types of expansion cards. However, since the CPU currently provides the maximum bandwidth to the PCIe x8 and PCIe x16 slots, expansion cards with a small number of lanes cannot be effectively recognized. The CPU still allocates the maximum bandwidth, resulting in wasted PCIe resources and loss of CPU functionality.

发明内容Summary of the Invention

本申请实施例提供一种带宽分配的计算机系统、带宽分配方法以及产品,旨在自动分配带宽资源。This application provides a computer system, method, and product for bandwidth allocation, which aims to automatically allocate bandwidth resources.

第一方面本申请实施例提供一种带宽分配的计算机系统,应用于计算机系统,计算机系统包括中央处理器、监测模块、基板管理控制器和基本输入输出系统;In a first aspect, embodiments of this application provide a bandwidth allocation computer system applied to a computer system, the computer system including a central processing unit, a monitoring module, a baseboard management controller, and a basic input/output system;

在计算机系统的主板上电时,监测模块用于识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,扩展单元用于将中央处理器的任一连接端口的带宽资源分配至连接的设备插槽;When the motherboard of the computer system is powered on, the monitoring module is used to identify when there are changes in the application of each expansion unit plugged into the motherboard. Based on the bandwidth configuration information of each expansion unit, it generates a bandwidth allocation information table corresponding to the central processing unit. The expansion unit is used to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot.

当计算机系统的主板上电后,基板管理控制器用于根据带宽分配信息表生成选项配置文件,选项配置文件中包括中央处理器的任一连接端口对应连接的扩展单元;When the motherboard of the computer system is powered on, the baseboard management controller is used to generate an option configuration file based on the bandwidth allocation information table. The option configuration file includes the expansion unit connected to any connection port of the central processing unit.

在计算机系统的主机触发后,基本输入输出系统用于在启动过程中,根据选项配置文件,对中央处理器的任一连接端口进行配置,以将中央处理器的带宽资源分配至各个扩展单元。After the computer system is triggered by the host, the Basic Input/Output System (BIOS) is used during the startup process to configure any connection port of the central processing unit (CPU) according to the option configuration file, so as to allocate the CPU's bandwidth resources to the various expansion units.

在本申请的一些实施例中,监测模块还用于:In some embodiments of this application, the monitoring module is further configured to:

识别主板中当前插接的各个扩展单元的配置信息;Identify the configuration information of each expansion unit currently plugged into the motherboard;

当主板中当前插接的各个扩展单元的配置信息,与上一次插接的各个扩展单元的历史配置信息不一致时,确定主板中当前插接的各个扩展单元的应用出现变动。When the configuration information of each expansion unit currently plugged into the motherboard is inconsistent with the historical configuration information of each expansion unit that was plugged in last time, it is determined that the application of each expansion unit currently plugged into the motherboard has changed.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息时,监测模块用于:In some embodiments of this application, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is used to:

在扩展单元的配置空间中,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。In the configuration space of the expansion unit, the bandwidth configuration information and plug-in position information of any expansion unit are obtained as the configuration information of that expansion unit.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息时,监测模块用于:In some embodiments of this application, when identifying the configuration information of each currently plugged-in expansion unit on the motherboard, the monitoring module is used to:

通过集成电路总线或系统管理总线,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。The bandwidth configuration information and plug-in location information of any expansion unit can be obtained through the integrated circuit bus or system management bus as the configuration information of that expansion unit.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息时,监测模块用于:In some embodiments of this application, when identifying the configuration information of each currently plugged-in expansion unit on the motherboard, the monitoring module is used to:

对于任一包含配置信号线的扩展单元,通过与该扩展单元连接的配置信号线,获取该扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。For any expansion unit that includes a configuration signal line, the bandwidth configuration information and plug-in position information of the expansion unit are obtained through the configuration signal line connected to the expansion unit as the configuration information of the expansion unit.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息之后,监测模块还用于:In some embodiments of this application, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to:

将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,在当前插接的任一扩展单元为新增的扩展单元时,确定主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. If any of the currently plugged-in expansion units is a newly added expansion unit, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息之后,监测模块还用于:In some embodiments of this application, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to:

将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,当上一次插接的任一扩展单元被移除时,确定主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. When any of the previously plugged-in expansion units is removed, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed.

在本申请的一些实施例中,识别主板中当前插接的各个扩展单元的配置信息之后,监测模块还用于:In some embodiments of this application, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to:

将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,若当前插接的任一扩展单元的插接位置信息与上一次插接时的插接位置信息不一致时,确定主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. If the plug-in position information of any currently plugged-in expansion unit is inconsistent with the plug-in position information at the time of the last plug-in, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed.

在本申请的一些实施例中,根据带宽分配信息表生成选项配置文件的过程中,基板管理控制器用于:In some embodiments of this application, during the process of generating the option configuration file based on the bandwidth allocation information table, the baseboard management controller is used to:

当计算机系统的主板上电时,从监测模块中获取带宽分配信息表;When the computer system's motherboard is powered on, the bandwidth allocation information table is obtained from the monitoring module;

当带宽分配信息表与历史带宽分配信息表不一致时,根据带宽分配信息表,生成中央处理器的各个连接端口对应的带宽配置策略;When the bandwidth allocation information table is inconsistent with the historical bandwidth allocation information table, the bandwidth configuration strategy corresponding to each connection port of the central processing unit is generated according to the bandwidth allocation information table.

根据中央处理器的各个连接端口对应的带宽配置策略,生成中央处理器的各个连接端口对应的选项配置文件,选项配置文件为基于超文本传输安全服务的管理标准协议传输的键值对数据格式的文件。Based on the bandwidth configuration policy corresponding to each connection port of the central processing unit, an option configuration file corresponding to each connection port of the central processing unit is generated. The option configuration file is a file of key-value data format transmitted based on the management standard protocol of Hypertext Transfer Security Service.

在本申请的一些实施例中,基本输入输出系统用于在基本输入输出系统的启动过程中,基于超文本传输安全服务的管理标准协议,向基板管理控制器发送第一请求;In some embodiments of this application, the basic input/output system is used to send a first request to the baseboard management controller based on the management standard protocol of Hypertext Transfer Security Service during the startup process of the basic input/output system;

当基板管理控制器在响应于第一请求后返回的第一响应表征存在选项变动时,基本输入输出系统用于基于超文本传输安全服务的管理标准协议,向基板管理控制器发送第二请求;When the first response returned by the baseboard management controller after responding to the first request indicates that there is an option change, the basic input/output system uses the management standard protocol based on the Hypertext Transfer Security Service to send a second request to the baseboard management controller.

基板管理控制器用于响应于第二请求,将选项配置文件发送至基本输入输出系统;The baseboard management controller is used to send the option configuration file to the basic input/output system in response to the second request;

基本输入输出系统用于在自检阶段,根据选项配置文件配置中央处理器的任一连接端口连接的扩展单元。The Basic Input/Output System (BIOS) is used during the self-test phase to configure any connection port of the CPU to be connected to an expansion unit according to the option configuration file.

在本申请的一些实施例中,监测模块包括集成在基板管理控制器中的复杂可编程逻辑元件。In some embodiments of this application, the monitoring module includes complex programmable logic elements integrated into the baseboard management controller.

第二方面,本申请实施例提供一种带宽分配方法,应用于本申请一些实施例的带宽分配的计算机系统,计算机系统包括中央处理器、监测模块、基板管理控制器和基本输入输出系统,方法包括:Secondly, embodiments of this application provide a bandwidth allocation method applied to a computer system for bandwidth allocation in some embodiments of this application. The computer system includes a central processing unit, a monitoring module, a baseboard management controller, and a basic input/output system. The method includes:

在计算机系统的主板上电时,监测模块识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,扩展单元用于将中央处理器的任一连接端口的带宽资源分配至连接的设备插槽;When the motherboard of the computer system is powered on, the monitoring module detects changes in the application of each expansion unit plugged into the motherboard. Based on the bandwidth configuration information of each expansion unit, it generates a bandwidth allocation information table corresponding to the central processing unit. The expansion unit is used to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot.

当计算机系统的主板上电后,基板管理控制器根据带宽分配信息表生成选项配置文件,选项配置文件中包括中央处理器的任一连接端口对应连接的扩展单元;When the motherboard of the computer system is powered on, the baseboard management controller generates an option configuration file based on the bandwidth allocation information table. The option configuration file includes the expansion unit connected to any connection port of the central processing unit.

在计算机系统的主机触发后,基本输入输出系统在启动过程中,根据选项配置文件,对中央处理器的任一连接端口进行配置,以将中央处理器的带宽资源分配至各个扩展单元。After the host computer of the computer system is triggered, the Basic Input/Output System (BIOS) configures any connection port of the central processing unit (CPU) according to the option configuration file during the startup process, so as to allocate the CPU's bandwidth resources to each expansion unit.

第三方面,本申请实施例提供一种计算机设备,包括:至少一个处理器,以及存储器,存储器存储有可在处理器上运行的计算机程序,其中,处理器执行计算机程序时执行本申请一些实施例的带宽分配方法。Thirdly, embodiments of this application provide a computer device, including: at least one processor and a memory, the memory storing a computer program executable on the processor, wherein the processor executes the computer program and performs a bandwidth allocation method according to some embodiments of this application.

第四方面,本申请实施例提供一种非易失性可读存储介质,非易失性可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时执行本申请一些实施例的带宽分配方法。Fourthly, embodiments of this application provide a non-volatile readable storage medium storing a computer program, wherein the computer program, when executed by a processor, performs a bandwidth allocation method according to some embodiments of this application.

第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请一些实施例的带宽分配方法。Fifthly, embodiments of this application provide a computer program product, including a computer program/instructions, which, when executed by a processor, implement the bandwidth allocation method of some embodiments of this application.

有益效果:Beneficial effects:

在计算机系统的主板上电时,监测模块用于识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,扩展单元用于将中央处理器的任一连接端口的带宽资源分配至连接的设备插槽。When the motherboard of the computer system is powered on, the monitoring module is used to identify when there are changes in the applications of each expansion unit plugged into the motherboard. Based on the bandwidth configuration information of each expansion unit, it generates a bandwidth allocation information table for the central processing unit. The expansion unit is used to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot.

当计算机系统的主板上电后,基板管理控制器用于根据带宽分配信息表生成选项配置文件,选项配置文件中包括中央处理器的任一连接端口对应连接的扩展单元。When the motherboard of the computer system is powered on, the baseboard management controller generates an option configuration file based on the bandwidth allocation information table. The option configuration file includes the expansion unit connected to any connection port of the central processing unit.

在计算机系统的主机触发后,基本输入输出系统用于在启动过程中,根据选项配置文件,对中央处理器的任一连接端口进行配置,以将中央处理器的带宽资源分配至各个扩展单元。After the computer system is triggered by the host, the Basic Input/Output System (BIOS) is used during the startup process to configure any connection port of the central processing unit (CPU) according to the option configuration file, so as to allocate the CPU's bandwidth resources to the various expansion units.

本实施例提供的计算机系统在扩展单元在出现变动时,可以为各个扩展单元分配并更改中央处理器的连接端口,从而自适应地分配服务器中的带宽资源,相比于CPU直接给PCIe x8插槽和PCIe x16插槽提供的带宽是最大带宽,可以减少PCIe资源的浪费。The computer system provided in this embodiment can allocate and change the connection port of the central processing unit for each expansion unit when changes occur, thereby adaptively allocating bandwidth resources in the server. Compared with the CPU directly providing the maximum bandwidth to the PCIe x8 slot and PCIe x16 slot, this can reduce the waste of PCIe resources.

附图说明Attached Figure Description

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单的介绍。To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below.

图1示出了本申请实施例提供的带宽分配的计算机系统的架构示意图;Figure 1 shows a schematic diagram of the architecture of a computer system for bandwidth allocation provided in an embodiment of this application;

图2示出了本申请实施例提供的带宽分配方法的步骤流程图;Figure 2 shows a flowchart of the bandwidth allocation method provided in an embodiment of this application;

图3示出了本申请实施例提供的计算机设备的示意图;Figure 3 shows a schematic diagram of the computer device provided in an embodiment of this application;

图4示出了本申请实施例提供的非易失性可读存储介质的示意图;Figure 4 shows a schematic diagram of a non-volatile readable storage medium provided in an embodiment of this application;

图5示出了本申请实施例提供的计算机程序产品的示意图。Figure 5 shows a schematic diagram of the computer program product provided in an embodiment of this application.

具体实施方式Detailed Implementation

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the various embodiments of this application will be described in detail below with reference to the accompanying drawings. However, those skilled in the art will understand that many technical details have been presented in the various embodiments of this application to enable readers to better understand this application. However, even without these technical details and various changes and modifications based on the following embodiments, the technical solutions claimed in this application can be implemented. The division of the various embodiments below is for the convenience of description and should not constitute any limitation on the specific implementation of this application. The various embodiments can be combined with and referenced by each other without contradiction.

CPU:Central Processing Unit,中央处理器;CPU: Central Processing Unit;

BIOS:Basic Input Output System,基本输入输出系统;BIOS: Basic Input Output System;

IPMI:Intelligent Platform Management Interface,智能平台管理接口;IPMI: Intelligent Platform Management Interface;

ACL:Access Control Lists,访问控制列表;ACL: Access Control Lists;

PCIe:Peripheral Component Interconnect Express,高速串行计算机扩展总线标准;PCIe: Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard;

PCI:Peripheral Component Interconnect,局部总线的标准;PCI: Peripheral Component Interconnect, a standard for local buses;

Redfish:基于HTTPs服务的管理标准协议;Redfish: A standard management protocol based on HTTPS services;

BMC:Baseboard Management Controller,基板管理控制器;BMC: Baseboard Management Controller;

CPLD:Complex Programmable Logic Device,复杂可编程逻辑器件;CPLD: Complex Programmable Logic Device;

GPIO:General-purpose input/output,通用型之输入输出;GPIO: General-purpose input/output;

SMBus:System Management Bus,系统管理总线。SMBus: System Management Bus.

BMC是一种专用于监控和管理服务器及其他计算机系统的硬件组件,作为一个独立的系统位于系统的主板上,拥有自己的处理器和存储器,可以独立于主机系统运行,并通过网络接口进行远程访问;BMC的主要功能和特点包括:A BMC (Browser Control Center) is a hardware component specifically designed for monitoring and managing servers and other computer systems. It resides on the motherboard as an independent system, possessing its own processor and memory. It can operate independently of the host system and can be remotely accessed via a network interface. The main functions and features of a BMC include:

1、远程监控与管理:BMC允许管理员远程监控服务器的健康状态,包括温度、风扇速度、电源状态、硬盘状态以及机箱盖开关状态等,甚至在操作系统不工作时也能进行管理;1. Remote monitoring and management: BMC allows administrators to remotely monitor the health status of the server, including temperature, fan speed, power status, hard drive status, and chassis cover status, and can even manage it when the operating system is not working;

2、故障诊断与报警:当检测到系统异常,如过热、电压异常或硬件故障时,BMC可以生成警报并通过网络发送给管理系统,有助于快速响应和故障排除;2. Fault diagnosis and alarm: When a system abnormality is detected, such as overheating, abnormal voltage, or hardware failure, the BMC can generate an alarm and send it to the management system via the network, which helps to respond quickly and troubleshoot the problem.

3、硬件控制:BMC可以控制服务器的开机、关机、重启等操作,以及调整风扇转速等硬件配置,从而优化系统性能和能效;3. Hardware control: The BMC can control the server's power-on, power-off, and restart operations, as well as adjust hardware configurations such as fan speed, thereby optimizing system performance and energy efficiency;

4、事件日志记录:记录系统运行期间的所有重要事件,包括硬件状态变化、错误信息等,为系统维护提供历史数据;4. Event Log Recording: Records all important events during system operation, including hardware status changes, error messages, etc., providing historical data for system maintenance;

5、固件更新:BMC自身也支持固件更新,以便修复漏洞、增加新功能或优化性能,通常可以通过网络进行远程更新;5. Firmware Updates: BMC itself also supports firmware updates to fix vulnerabilities, add new features, or optimize performance. Updates can usually be performed remotely over the network.

6、遵从行业标准:BMC遵循智能平台管理接口(IPMI)等标准,确保不同厂商的硬件和管理软件之间的互操作性;6. Adherence to industry standards: BMC follows standards such as the Intelligent Platform Management Interface (IPMI) to ensure interoperability between hardware and management software from different manufacturers;

7、安全特性:考虑到BMC的远程访问能力,现代BMC设计通常包括加密通信、访问控制列表(ACL)和身份验证机制等安全措施,以保护服务器免受未经授权的访问和攻击;7. Security Features: Considering the remote access capabilities of BMC, modern BMC designs typically include security measures such as encrypted communication, access control lists (ACLs), and authentication mechanisms to protect the server from unauthorized access and attacks.

总之,基板管理控制器是现代数据中心和企业信息技术的基础设施中不可或缺的一部分,它通过提供强大的远程管理能力,大幅提升了服务器维护的效率和系统的可靠性。In summary, the baseboard management controller is an indispensable part of the infrastructure of modern data centers and enterprise information technology. It significantly improves the efficiency of server maintenance and the reliability of the system by providing powerful remote management capabilities.

而PCIe在总线结构上采取了根本性的变革,主要体现在两个方面:一是由并行总线变为串行总线;二是采用点到点的互连;具体地,将原并行总线结构中桥下面挂连设备的一条总线变成了一条链路,一条链路可包含一条或多条通路,每条通路由两对差分信号线组成双单工的串行传输通道,没有专用的数据、地址、控制和时钟线,总线上各种事务组织成信息包来传送;PCIe采用点到点的互连方法,每个设备都由独立的链路连接,独享带宽,从而提高了传输率。PCIe has undergone a fundamental transformation in its bus architecture, primarily in two aspects: first, it has changed from a parallel bus to a serial bus; second, it adopts point-to-point interconnection. Specifically, the single bus connecting devices under the bridge in the original parallel bus architecture has been transformed into a link. A link can contain one or more paths, and each path consists of two pairs of differential signal lines forming a double simplex serial transmission channel. There are no dedicated data, address, control, and clock lines; various transactions on the bus are organized into information packets for transmission. PCIe uses a point-to-point interconnection method, with each device connected by an independent link and enjoying dedicated bandwidth, thereby improving the transmission rate.

PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展卡标准,主要用于连接CPU和各种扩展卡,如显卡、声卡和网络适配器等;PCIe总线结构将一条链路视为一条总线,从而从地址空间、配置机制及软件上均保持与传统PCI总线的兼容;一个PCIe设备占一条总线(链路),所以在基于PCIe的计算机里,桥和总线的数目很多,传统PCI设备亦可在PCIe平台上运行,通过PCIe到PCI(或PCI-X(Peripheral Component Interconnect eXtended,PCI总线的高性能扩展版本))的桥,可引出PCI(或PCI-X)总线,传统PCI设备挂在这样的总线上便可融入PCI Express结构;比起PCI以及更早期的计算机总线的共享并行架构,基于PCIe的每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。PCIe (Peripheral Component Interconnect Express) is a high-speed serial computer expansion card standard, primarily used to connect the CPU to various expansion cards, such as graphics cards, sound cards, and network adapters. The PCIe bus architecture treats a single link as a bus, thus maintaining compatibility with the traditional PCI bus in terms of address space, configuration mechanisms, and software. One PCIe device occupies one bus (link), so PCIe-based computers have a large number of bridges and buses. Traditional PCI devices can also run on the PCIe platform. Through PCIe-to-PCI (or PCI-X (Peripheral Component Interconnect eXtended, a high-performance extension of the PCI bus)) bridges, PCI (or PCI-X) buses can be routed, allowing traditional PCI devices to integrate into the PCI Express architecture. Compared to the shared parallel architecture of PCI and earlier computer buses, each PCIe-based device has its own dedicated connection, eliminating the need to request bandwidth from the entire bus and enabling data transfer rates at very high frequencies, achieving bandwidth levels that PCI cannot provide.

随着技术的发展,CPU也可以支持的不同版本的PCIe通道,PCIe的带宽与其版本和Lane数量密切相关,以下是不同版本的PCIe及其带宽的详细信息:With the development of technology, CPUs can support different versions of PCIe lanes. The bandwidth of PCIe is closely related to its version and the number of lanes. The following is detailed information on different versions of PCIe and their bandwidth:

PCIe 1.0:线上比特传输速率为2.5GB/s,使用8/10编码,因此PCIe 1.0x1的带宽为250MB/s(Megabytes per Second,兆字节每秒);PCIe 2.0:线上比特传输速率翻倍至5GB/s,使用8/10编码,因此PCIe 2.0x 1的带宽为500MB/s;PCIe 3.0:线上比特传输速率为8GB/s,使用128/130编码,因此PCIe 3.0x 1的带宽为1GB/s;PCIe 4.0:线上比特传输速率提升至16GT/s;PCIe 5.0:线上比特传输速率最高可达32GT/s。PCIe 1.0: 2.5GB/s over-the-line bit rate, using 8/10 encoding, therefore the bandwidth of PCIe 1.0x1 is 250MB/s (Megabytes per Second); PCIe 2.0: The over-the-line bit rate doubles to 5GB/s, using 8/10 encoding, therefore the bandwidth of PCIe 2.0x1 is 500MB/s; PCIe 3.0: The over-the-line bit rate is 8GB/s, using 128/130 encoding, therefore the bandwidth of PCIe 3.0x1 is 1GB/s; PCIe 4.0: The over-the-line bit rate is increased to 16GT/s; PCIe 5.0: The over-the-line bit rate can reach up to 32GT/s.

此外,PCIe的带宽还与其数据通路Lane数量有关,如设备需要很高的带宽则采用多个Lane(比如显卡);如果并不需要特别高的带宽,则只需要一个Lane就可以了;其中,PCIe x1插槽的理论最大带宽为1GB/s,适用于对数据传输要求不高的设备;PCIe x4插槽的理论最大带宽为4GB/s,适用于中等带宽需求的设备;PCIe x8插槽的理论最大带宽为8GB/s,适用于对数据传输速度有更高需求的设备;PCIe x16插槽拥有最高的理论最大带宽为16GB/s,广泛用于连接高性能图形卡。Furthermore, PCIe bandwidth is also related to the number of its data path lanes. For example, devices requiring high bandwidth use multiple lanes (such as graphics cards); if not particularly high bandwidth is needed, only one lane is required. Among them, the theoretical maximum bandwidth of a PCIe x1 slot is 1GB/s, suitable for devices with low data transfer requirements; the theoretical maximum bandwidth of a PCIe x4 slot is 4GB/s, suitable for devices with medium bandwidth requirements; the theoretical maximum bandwidth of a PCIe x8 slot is 8GB/s, suitable for devices with higher data transfer speed requirements; and the PCIe x16 slot has the highest theoretical maximum bandwidth of 16GB/s and is widely used to connect high-performance graphics cards.

服务器主板上的PICe接口一般采用PCIe x8插槽和PCIe x16插槽,便于后期插接不同种类的扩展卡,即使扩展卡上的金手指是x2或x4,同样可以插接到PCIe x8插槽或PCIe x16插槽上。Server motherboards typically use PCIe x8 and PCIe x16 slots for their PICe interfaces, facilitating the installation of different types of expansion cards. Even if the expansion card has x2 or x4 gold fingers, it can still be plugged into a PCIe x8 or PCIe x16 slot.

但是,由于目前CPU直接给PCIe x8插槽和PCIe x16插槽提供的带宽是最大带宽,造成插入Lane数量小的扩展卡时不能有效识别,而CPU同样分配最大带宽,导致PCIe资源浪费,造成CPU功能损失,比如两个PCIE x8设备插到两个PCIE x16的槽位上,而无法实现在一个x16槽位上支持两个x8的设备。However, since the CPU currently provides the maximum bandwidth directly to the PCIe x8 and PCIe x16 slots, it cannot effectively recognize expansion cards with a small number of lanes. The CPU also allocates the maximum bandwidth, resulting in wasted PCIe resources and loss of CPU functionality. For example, if two PCIe x8 devices are plugged into two PCIe x16 slots, it is impossible to support two x8 devices in one x16 slot.

虽然目前存在PCIe自动识别分配带宽的方法,采用的是基于GPIO扩展芯片(如PCA9555GPIO扩展芯片)进行带宽的动态配置,或采用物理检测电路板上的电阻控制电流或电压检测方法决定所需带宽;但是在目前的方法中,需要在检测非配程序中增设带宽分配表,扩展芯片检测或物理电阻检测在获得变化数据后,需要与提前设定的带宽分配表进行数值与对应的Lane数量匹配,然后CPU分析出对应的带宽并进行分配,因此前期需要统计不同扩展卡的数据模拟建表,不仅工作量较大,而且当带宽分配表中未存储数据的扩展卡插入时,仍存在识别误差,而且对硬件的检测需要针对不同类型的服务器定制不同的带宽分配模块的标准,因此适应性差,后期开发工作多,导致PCIe自动识别分配带宽的过程成本高。While current methods exist for automatic PCIe bandwidth allocation, they employ dynamic bandwidth configuration based on GPIO expansion chips (such as the PCA9555 GPIO expansion chip) or physical detection methods using resistors on the circuit board to control current or voltage detection to determine the required bandwidth. However, these methods require adding a bandwidth allocation table to the detection program. After the expansion chip detection or physical resistor detection obtains change data, it needs to match the values with the pre-set bandwidth allocation table and the corresponding Lane number. Then, the CPU analyzes the corresponding bandwidth and allocates it. Therefore, it is necessary to collect data from different expansion cards to simulate and build the table in the early stages, which is not only labor-intensive but also results in recognition errors when an expansion card without data stored in the bandwidth allocation table is inserted. Furthermore, hardware detection requires customizing different bandwidth allocation module standards for different types of servers, resulting in poor adaptability and extensive later development work, leading to high costs for the automatic PCIe bandwidth allocation process.

因此,为了自适应地分配服务器中的带宽资源,同时减小PCIe自动识别分配带宽的过程的成本,本申请实施例提供一种带宽分配的计算机系统。Therefore, in order to adaptively allocate bandwidth resources in the server while reducing the cost of the PCIe automatic bandwidth allocation process, embodiments of this application provide a computer system for bandwidth allocation.

参照图1,示出了本申请实施例提供的一种带宽分配的计算机系统的架构示意图,计算机系统包括中央处理器、监测模块、基板管理控制器和基本输入输出系统;计算机系统可以是服务器等系统,计算机系统中可以插接多个扩展单元,将中央处理器的PCIe带宽进行分配或拓展,如可以通过扩展单元将PCIe x16分为2个PCIe x8的通道等。Referring to Figure 1, a schematic diagram of the architecture of a computer system for bandwidth allocation provided in an embodiment of this application is shown. The computer system includes a central processing unit, a monitoring module, a baseboard management controller, and a basic input/output system. The computer system can be a server or other system. Multiple expansion units can be plugged into the computer system to allocate or expand the PCIe bandwidth of the central processing unit. For example, the PCIe x16 can be divided into two PCIe x8 channels through the expansion units.

计算机系统中的BMC包括BMC芯片和BMC固件两部分,独立对计算机系统的监控和管理包括监视运行状况、记录事件并进行故障分析以及部署配置系统等,也提供一系列其他远程管理功能。The BMC in a computer system consists of two parts: the BMC chip and the BMC firmware. It independently monitors and manages the computer system, including monitoring its operation, recording events and performing fault analysis, as well as deploying and configuring the system. It also provides a range of other remote management functions.

在计算机系统的主板上电时,监测模块用于识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,扩展单元用于将中央处理器的任一连接端口的带宽资源分配至连接的设备插槽;When the motherboard of the computer system is powered on, the monitoring module is used to identify when there are changes in the application of each expansion unit plugged into the motherboard. Based on the bandwidth configuration information of each expansion unit, it generates a bandwidth allocation information table corresponding to the central processing unit. The expansion unit is used to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot.

当计算机系统的主板上电后,基板管理控制器用于根据带宽分配信息表生成选项配置文件,选项配置文件中包括中央处理器的任一连接端口对应连接的扩展单元;When the motherboard of the computer system is powered on, the baseboard management controller is used to generate an option configuration file based on the bandwidth allocation information table. The option configuration file includes the expansion unit connected to any connection port of the central processing unit.

在计算机系统的主机触发后,基本输入输出系统用于在启动过程中,根据选项配置文件,对中央处理器的任一连接端口进行配置,以将中央处理器的带宽资源分配至各个扩展单元。After the computer system is triggered by the host, the Basic Input/Output System (BIOS) is used during the startup process to configure any connection port of the central processing unit (CPU) according to the option configuration file, so as to allocate the CPU's bandwidth resources to the various expansion units.

参照图2,示出了本申请实施例提供的一种带宽分配方法的步骤流程图,方法应用于本实施例的计算机系统,方法可以包括以下步骤:Referring to Figure 2, a flowchart of a bandwidth allocation method provided in an embodiment of this application is shown. The method is applied to the computer system of this embodiment and may include the following steps:

S101:在计算机系统的主板上电时,监测模块识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,扩展单元用于将中央处理器的任一连接端口的带宽资源分配至连接的设备插槽。S101: When the motherboard of the computer system is powered on, the monitoring module detects changes in the applications of each expansion unit plugged into the motherboard. Based on the bandwidth configuration information of each expansion unit, it generates a bandwidth allocation information table corresponding to the central processing unit. The expansion unit is used to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot.

具体地,扩展单元用于对CPU提供的任一带宽进行拓展,如扩展单元A可以连接CPU的PCIe x16的连接端口,然后将PCIe x16分为2个PCIe x8的通道,进而可以连接两个PCIe x8的设备,扩展单元B可以连接CPU的PCIe x16的连接端口,将PCIe x16可以分为4个PCIe x4的通道,进而可以连接4个PCIe x4的设备。Specifically, the expansion unit is used to expand any bandwidth provided by the CPU. For example, expansion unit A can connect to the CPU's PCIe x16 connection port and then divide the PCIe x16 into two PCIe x8 lanes, thereby connecting two PCIe x8 devices. Expansion unit B can connect to the CPU's PCIe x16 connection port and divide the PCIe x16 into four PCIe x4 lanes, thereby connecting four PCIe x4 devices.

因此,在为各个拓展单元分配带宽资源时,首先要检测主板中插接的各个扩展单元的应用是否出现变动。Therefore, when allocating bandwidth resources to each expansion unit, the first step is to check whether the applications of each expansion unit plugged into the motherboard have changed.

在一种可行的实施方式中,在计算机系统的主板上电时,计算机系统的监测模块识别主板中当前插接的各个扩展单元的配置信息,然后将当前插接的各个扩展单元的配置信息与上一次开机时计算机系统的主板中插接的各个扩展单元的历史配置信息进行比较。In one feasible implementation, when the motherboard of the computer system is powered on, the monitoring module of the computer system identifies the configuration information of each expansion unit currently plugged into the motherboard, and then compares the configuration information of each expansion unit currently plugged into the motherboard with the historical configuration information of each expansion unit plugged into the motherboard of the computer system during the last power-on.

当主板中当前插接的各个扩展单元的配置信息,与上一次插接的各个扩展单元的历史配置信息不一致时,确定主板中当前插接的各个扩展单元的应用出现变动。When the configuration information of each expansion unit currently plugged into the motherboard is inconsistent with the historical configuration information of each expansion unit that was plugged in last time, it is determined that the application of each expansion unit currently plugged into the motherboard has changed.

在实际实施的过程中,监测模块可以是集成在基板管理控制器中的复杂可编程逻辑元件即CPLD,CPLD是一种可编程器件,通常通过需求进行编程可以让CPLD实现复杂的逻辑功能,本实施例中,通过CPLD的软件进行编程,让CPLD在计算机系统的主板上电时,首先获取主板上插接的扩展单元的配置信息;在其他实施方式中,还可以设置一个具有软件程序的单独模块作为监测模块。In actual implementation, the monitoring module can be a complex programmable logic element (CPLD) integrated in the baseboard management controller. A CPLD is a programmable device that can typically be programmed to perform complex logic functions according to requirements. In this embodiment, the CPLD is programmed through software so that it first obtains the configuration information of the expansion units plugged into the motherboard when the computer system's motherboard is powered on. In other embodiments, a separate module with software programs can also be set as the monitoring module.

在一种可行的实施方式中,识别主板中当前插接的各个扩展单元的配置信息时,计算机系统的监测模块在扩展单元的配置空间中,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。In one feasible implementation, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module of the computer system obtains the bandwidth configuration information and plug-in position information of any expansion unit in the configuration space of the expansion unit as the configuration information of that expansion unit.

具体地,扩展单元如扩展卡作为PCI设备,在配置空间即PCI配置空间中存储有扩展单元的带宽配置信息和插接位置信息,监测模块如CPLD可以在PCI配置空间读取任一扩展单元的带宽配置信息和插接位置信息。Specifically, expansion units, such as expansion cards, are PCI devices. The configuration space, i.e., the PCI configuration space, stores the bandwidth configuration information and insertion location information of the expansion units. Monitoring modules, such as CPLDs, can read the bandwidth configuration information and insertion location information of any expansion unit in the PCI configuration space.

示例地,CPLD在PCI配置空间中识别任一Riser卡(扩展单元)并读取该Riser卡的配置信息的伪代码如下:

For example, the pseudocode for the CPLD to identify any Riser card (expansion unit) in the PCI configuration space and read the configuration information of that Riser card is as follows:

在上述示例中,PCI_VENDOR_ID_VENDER表示生产Riser卡的厂商ID(Identification,身份证明);PCI_DEVICE_ID_RISER表示生产Riser卡的产品ID;函数pci_get_device用于在PCI总线上寻找匹配的Riser卡,找到了对应的Riser卡后添加识别逻辑,CPLD可以主动识别Riser卡的变动;上述伪代码通过使用了一个的Moore状态机(摩尔型有限状态机)来识别line_detected信号(表示检测到某种特定序列或边界的信号)的上升沿,当检测到线路的信号代表Riser卡的连接时,状态机进入DETECTING(侦察)状态,并在检测到Riser卡后保持在DETECTED状态;riser_present(扩展卡存在信号)输出会相应地反映出Riser卡的存在。In the example above, PCI_VENDOR_ID_VENDER represents the vendor ID (identification) of the Riser card manufacturer; PCI_DEVICE_ID_RISER represents the product ID of the Riser card manufacturer; the function pci_get_device is used to find a matching Riser card on the PCI bus. After finding the corresponding Riser card, identification logic is added, and the CPLD can actively identify changes to the Riser card; the above pseudocode uses a Moore state machine (Moore's finite state machine) to identify the rising edge of the line_detected signal (indicating the detection of a specific sequence or boundary signal). When the detected line signal represents a Riser card connection, the state machine enters the DETECTING state and remains in the DETECTED state after detecting the Riser card; the riser_present (extension card presence signal) output will reflect the presence of the Riser card accordingly.

在一种可行的实施方式中,识别主板中当前插接的各个扩展单元的配置信息时,计算机系统的监测模块通过集成电路总线或系统管理总线,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。In one feasible implementation, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module of the computer system obtains the bandwidth configuration information and plug-in position information of any expansion unit through the integrated circuit bus or system management bus as the configuration information of that expansion unit.

示例地,部分扩展卡包括有I2C(Inter-Integrated Circuit,集成电路总线)接口和SMBus(System Management Bus,系统管理总线)接口,监测模块如CPLD可以通过集成电路总线或系统管理总线获取该扩展卡的带宽配置信息和插接位置信息。For example, some expansion cards include an I2C (Inter-Integrated Circuit) interface and an SMBus (System Management Bus) interface. Monitoring modules such as CPLDs can obtain the bandwidth configuration information and plug-in location information of the expansion card through the integrated circuit bus or the system management bus.

在一种可行的实施方式中,识别主板中当前插接的各个扩展单元的配置信息时,对于任一包含配置信号线的扩展单元,计算机系统的监测模块通过连接的配置信号线,获取该扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。In one feasible implementation, when identifying the configuration information of each expansion unit currently plugged into the motherboard, for any expansion unit containing a configuration signal line, the monitoring module of the computer system obtains the bandwidth configuration information and plug-in position information of the expansion unit through the connected configuration signal line as the configuration information of the expansion unit.

示例地,部分扩展卡中还提供了专门用于识别的配置信号线,监测模块如CPLD可以通过配置信号线读取该扩展卡上的带宽配置信息和插接位置信息。For example, some expansion cards also provide dedicated configuration signal lines for identification. Monitoring modules such as CPLDs can read the bandwidth configuration information and plug-in location information on the expansion card through the configuration signal lines.

计算机系统的监测模块识别主板中当前插接的各个扩展单元的配置信息之后,将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,在当前插接的任一扩展单元为新增的扩展单元时,确定主板中当前插接的各个扩展单元的应用出现变动。After the computer system's monitoring module identifies the configuration information of each expansion unit currently plugged into the motherboard, it compares the configuration information of each expansion unit currently plugged into with the configuration information of each expansion unit plugged into previously. If any of the currently plugged expansion units is a newly added expansion unit, it determines that the application of each expansion unit currently plugged into the motherboard has changed.

示例地,本次开机时,监测到新增了一个扩展单元,其用于将PCIe x16分为2个PCIe x8的通道,则需要为该扩展单元分配一个CPU的PCIe x16的宽带资源。For example, if a new expansion unit is detected during this boot, which is used to divide a PCIe x16 into two PCIe x8 lanes, then one CPU's PCIe x16 bandwidth resource needs to be allocated to this expansion unit.

将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,当上一次插接的任一扩展单元被移除时,确定主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. When any of the previously plugged-in expansion units is removed, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed.

示例地,本次开机时,监测到与上次开机时相比,减少了一个扩展单元,则需要释放减少的扩展的宽带资源,可以对释放的宽带资源重新进行分配。For example, if during this power-on, it is detected that one less expansion unit has been detected compared to the last power-on, then the reduced expansion bandwidth resources need to be released, and the released bandwidth resources can be reallocated.

将当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,若当前插接的任一扩展单元的插接位置信息与上一次插接时的插接位置信息不一致时,确定主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. If the plug-in position information of any currently plugged-in expansion unit is inconsistent with the plug-in position information at the time of the last plug-in, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed.

示例地,将PCIe x16分为2个PCIe x8的通道的扩展单元A的插接位置,与将PCIe x8分为2个PCIe x4的通道的扩展单元C的插接位置交换时,则需要调整CPU的连接端口连接的扩展单元,避免为扩展单元A提供PCIe x8的带宽资源,而为扩展单元C提供PCIe x16的带宽,造成带宽资源与扩展单元的带宽需求不匹配的问题。For example, if the insertion position of expansion unit A, which divides PCIe x16 into two PCIe x8 lanes, is swapped with the insertion position of expansion unit C, which divides PCIe x8 into two PCIe x4 lanes, then the expansion units connected to the CPU's connection ports need to be adjusted to avoid providing PCIe x8 bandwidth resources to expansion unit A while providing PCIe x16 bandwidth to expansion unit C, thus causing a mismatch between bandwidth resources and the bandwidth requirements of the expansion units.

当监测模块如CPLD识别到主板中插接的各个扩展单元的应用出现变动时,根据各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,带宽分配信息表中包括CPU提供的PCIe的带宽资源的分配。When a monitoring module such as CPLD detects changes in the applications of various expansion units connected to the motherboard, it generates a bandwidth allocation information table for the central processing unit based on the bandwidth configuration information corresponding to each expansion unit. The bandwidth allocation information table includes the allocation of PCIe bandwidth resources provided by the CPU.

S102:当计算机系统的主板上电后,基板管理控制器根据带宽分配信息表生成选项配置文件,选项配置文件中包括中央处理器的任一连接端口对应连接的扩展单元。S102: When the motherboard of the computer system is powered on, the baseboard management controller generates an option configuration file based on the bandwidth allocation information table. The option configuration file includes the expansion unit connected to any connection port of the central processing unit.

具体地,当计算机系统的主板上电后,BMC从监测模块如CPLD中获取带宽分配信息表。Specifically, when the motherboard of the computer system is powered on, the BMC obtains the bandwidth allocation information table from monitoring modules such as CPLD.

本实施例中,CPLD集成到BMC中,可以减少电路板数量,节省空间和成本,这种集成方式中,CPLD执行的功能被BMC完全替代,BMC通过软件控制实现CPLD的功能,BMC与CPLD之间采用的通信接口是I2C接口,即BMC通过I2C总线与CPLD通信,实现对CPLD的控制和监控,在实际实施的过程中,需要在BMC中添加l2C控制器,以便于对CPLD进行控制和监控。In this embodiment, the CPLD is integrated into the BMC, which reduces the number of circuit boards and saves space and cost. In this integration method, the functions performed by the CPLD are completely replaced by the BMC. The BMC implements the functions of the CPLD through software control. The communication interface between the BMC and the CPLD is the I2C interface. That is, the BMC communicates with the CPLD through the I2C bus to realize the control and monitoring of the CPLD. In actual implementation, an I2C controller needs to be added to the BMC to facilitate the control and monitoring of the CPLD.

然后BMC判断当前的带宽分配信息表是否与历史带宽分配信息表一致,若一致则不需要生成新的更改BIOS选项的选项配置文件。Then the BMC determines whether the current bandwidth allocation information table is consistent with the historical bandwidth allocation information table. If they are consistent, there is no need to generate a new option configuration file to change the BIOS options.

若当前的带宽分配信息表是否与历史带宽分配信息表不一致时,则需要根据带宽分配信息表,生成中央处理器的各个连接端口即PE端口(Processing Element Port,处理单元端口)对应的带宽配置策略,比如将CPU的端口号为port1的PE端口提供PCIe x16的带宽,将其分配给带宽需求为PCIe x16的扩展单元A,将端口号为port2的PE端口提供PCIe x16的带宽,将其分配给带宽需求为PCIe x16的扩展单元B,将端口号为port3的PE端口提供PCIe x8的带宽,将其分配给带宽需求为PCIe x8的扩展单元A。If the current bandwidth allocation information table is inconsistent with the historical bandwidth allocation information table, then it is necessary to generate the bandwidth configuration strategy corresponding to each connection port of the central processing unit, namely the PE port (Processing Element Port), according to the bandwidth allocation information table. For example, provide PCIe x16 bandwidth to the PE port with port number 1 of the CPU and allocate it to expansion unit A with a bandwidth requirement of PCIe x16; provide PCIe x16 bandwidth to the PE port with port number 2 and allocate it to expansion unit B with a bandwidth requirement of PCIe x16; provide PCIe x8 bandwidth to the PE port with port number 3 and allocate it to expansion unit A with a bandwidth requirement of PCIe x8.

然后BMC根据中央处理器的各个连接端口对应的带宽配置策略,生成中央处理器的各个连接端口对应的选项配置文件,选项配置文件为基于超文本传输安全服务的管理标准协议传输的键值对数据格式的文件。Then, the BMC generates option configuration files for each connection port of the central processing unit according to the bandwidth configuration policy corresponding to each connection port of the central processing unit. The option configuration files are files in key-value pair data format transmitted based on the management standard protocol of Hypertext Transfer Security Service.

在后续BIOS从BMC同步选项配置文件来实现修改选项对带宽配置方式,包括但不限于H2B通信(Host-to-Bus Communication,主机到总线通信)、IPMI通信等其他BIOS与BMC交互的方式,但本申请实施例采用BMC与BIOS通过基于超文本传输安全服务的管理标准协议,即Redfish协议进行通信。In subsequent BIOS implementations, the bandwidth configuration options are modified by synchronizing the option configuration file from the BMC. This includes, but is not limited to, other BIOS-BMC interaction methods such as H2B communication (Host-to-Bus Communication) and IPMI communication. However, in this embodiment, the BMC and BIOS communicate through the management standard protocol based on Hypertext Transfer Security Service, namely the Redfish protocol.

Redfish是一种基于HTTPs(HyperText Transfer Protocol Secure,超文本传输安全协议)服务的管理标准协议,利用RESTful接口(基于REST(Representational State Transfer,表述性状态转移)架构风格设计的接口)实现设备管理;每个HTTPs操作都以UTF-8编码(Unicode Transformation Format-8-bit,一种编码方式)的JSON(JavaScript Object Notation,一种轻量级的数据交换格式)格式提交或返回一个资源或结果,基于Redfish协议实现BMC和BIOS的通信,具有降低开发复杂性,易于实施和使用的优点,而且具有可扩展性,为后续的设计预留了灵活性空间。Redfish is a management standard protocol based on HTTPS (Hypertext Transfer Protocol Secure) services. It utilizes RESTful interfaces (interfaces designed based on the REST (Representational State Transfer) architectural style) to implement device management. Each HTTPS operation submits or returns a resource or result in JSON (JavaScript Object Notation) format encoded in UTF-8 (Unicode Transformation Format-8-bit). Based on the Redfish protocol, communication between the BMC and BIOS is implemented. It has the advantages of reducing development complexity, being easy to implement and use, and being scalable, reserving flexibility for subsequent design.

BMC生成的选项配置文件是一个JSON文件,JSON是一种键值对数据格式,即key-value对的数据格式。The options configuration file generated by BMC is a JSON file. JSON is a key-value pair data format.

在实际实施的过程中,可以在BIOS端集成Redfish Hi Driver驱动模块(Redfish硬件接口驱动模块)、Redfish Collection Driver驱动模块(Redfish资源集合驱动模块)、Redfish JSON schema to C Strtcture convertor模块(Redfish JSON模式到C结构体转换器模块)和Redfish DXE Driver驱动模块(Redfish UEFIDXE阶段驱动模块),而BMC端设置有Redfish host。In actual implementation, the Redfish Hi Driver module (Redfish hardware interface driver module), Redfish Collection Driver module (Redfish resource collection driver module), Redfish JSON schema to C Structure converter module (Redfish JSON schema to C structure converter module), and Redfish DXE Driver module (Redfish UEFIDXE stage driver module) can be integrated on the BIOS side, while the Redfish host is set on the BMC side.

其中,Redfish Hi Driver驱动模块用于向BMC发送网络请求、接收BMC端发送的数据,以及推送BIOS端资产信息数据,类似于使用浏览器发送http请求;Redfish Collection Driver驱动模块用于收集BIOS资产信息,收集资产信息的方式因厂商的不同而不同;Redfish JSON schema to C Strtcture convertor模块用于将收到的BIOS资产信息转换为JSON结构的数据。The Redfish Hi Driver module is used to send network requests to the BMC, receive data sent by the BMC, and push asset information data to the BIOS, similar to sending an HTTP request using a browser. The Redfish Collection Driver module is used to collect BIOS asset information, and the method of collecting asset information varies from manufacturer to manufacturer. The Redfish JSON schema to C Structure converter module is used to convert the received BIOS asset information into JSON structured data.

BMC端有Redfish host的本质是Linux系统(一种操作系统)下的一个服务程序,管理一个数据库(Redis(Remote Dictionary Server,一个键值存储系统),存储着BTos(Blockchain Technology Operating System,区块链技术操作系统)资产信息的数据);当计算机系统开机时BIOS端(Client,客户端)会收集好资产信息(在Redfish DXE Driver请求BMC数据后),整理成JSON格式的数据,再通过网络传输进行Post/Patch(新增/修补)等方式发送给BMC。The Redfish host on the BMC side is essentially a service program under a Linux system (an operating system) that manages a database (Redis (Remote Dictionary Server, a key-value store system) that stores asset information from BTOs (Blockchain Technology Operating System)). When the computer system boots up, the BIOS (Client) collects the asset information (after the Redfish DXE Driver requests data from the BMC), organizes it into JSON format, and then sends it to the BMC via network transmission using Post/Patch (add/repair) methods.

S103:在计算机系统的主机触发后,基本输入输出系统在启动过程中,根据选项配置文件,对中央处理器的任一连接端口进行配置,以将中央处理器的带宽资源分配至各个扩展单元。S103: After the host of the computer system is triggered, the basic input/output system configures any connection port of the central processing unit according to the option configuration file during the startup process, so as to allocate the bandwidth resources of the central processing unit to each expansion unit.

具体地,在计算机系统的主机触发后,基本输入输出系统在启动过程中,BIOS端的Redfish DXE Driver驱动模块向BMC发送第一请求;当基板管理控制器响应于第一请求后返回的第一响应表征存在选项变动时,第一响应如BMC的Post/Patch请求,表征修改BIOS的选项;则BIOS向基板管理控制器发送第二请求,BMC在响应于第二请求后,将选项配置文件发送至BIOS;在BIOS的自检阶段即POST过程中,根据选项配置文件配置中央处理器的任一连接端口连接的扩展单元,即将从BMC中获取到的JSON文件生效到CPU的各个PE端口,从而完成计算机系统主板的PCIe资源自适应分配。Specifically, after the computer system's host is triggered, during the startup process of the Basic Input/Output System (BIOS), the Redfish DXE Driver module on the BIOS side sends a first request to the BMC. When the first response returned by the Baseboard Management Controller (BMC) indicates a change in options, such as a Post/Patch request from the BMC, it indicates a modification of the BIOS options. Then, the BIOS sends a second request to the BMC. After responding to the second request, the BMC sends the option configuration file to the BIOS. During the BIOS's self-test (POST) phase, the expansion units connected to any connection port of the CPU are configured according to the option configuration file. This means that the JSON file obtained from the BMC is applied to each PE port of the CPU, thereby completing the adaptive allocation of PCIe resources on the computer system's motherboard.

示例地,JSON文件的样例如下所示:


For example, a sample JSON file is shown below:


本实施例提供的带宽分配方法至少具有以下有益效果:The bandwidth allocation method provided in this embodiment has at least the following beneficial effects:

1、可以在开机时,自动检测扩展单元并自适应地分配计算机系统中的带宽资源,相比于CPU直接给PCIe x8插槽和PCIe x16插槽提供的带宽是最大带宽,可以减少PCIe资源的浪费。1. It can automatically detect expansion units and adaptively allocate bandwidth resources in the computer system at startup. Compared to the CPU directly providing the maximum bandwidth to PCIe x8 and PCIe x16 slots, it can reduce the waste of PCIe resources.

2、避免了每次新开发计算机系统机型都需要重新开发BIOS,才可以适配每个机型计算机系统的PE端口资源分配的冗余复杂工作,本实施例提供的带宽分配方法只需开发一次标准的设定BIOS带宽选项的BMC模块,而每个机型的开发带宽适配工作,只需要开发CPLD的程序逻辑生成该机型所需要的带宽分配信息表即可。2. This avoids the redundant and complex work of redeveloping the BIOS for each new computer system model to adapt to the PE port resource allocation of each model. The bandwidth allocation method provided in this embodiment only requires the development of a standard BMC module for setting BIOS bandwidth options once. The bandwidth adaptation work for each model only requires the development of the CPLD program logic to generate the bandwidth allocation information table required by the model.

3、相比于传统的BIOS主动从GPIO或CPLD或BMC拿取带宽分配信息,本方法规范化BIOS、BMC的带宽分配相关代码模块的设计标准,实现该带宽分配程序模块每个机型都可以复用的效果。3. Compared to the traditional method where the BIOS actively retrieves bandwidth allocation information from GPIO, CPLD, or BMC, this method standardizes the design of the bandwidth allocation-related code modules of the BIOS and BMC, enabling the bandwidth allocation program module to be reused in each model.

4、带宽分配方法采用标准化设计,适用于任何计算机系统机型。4. The bandwidth allocation method adopts a standardized design and is applicable to any computer system model.

参照图3,示出了本申请实施例提供的一种计算机设备的示意图,计算机设备包括:至少一个处理器301,以及存储器302,存储器302存储有可在处理器301上运行的计算机程序,其中,处理器301执行计算机程序时执行实施例的带宽分配方法。Referring to FIG3, a schematic diagram of a computer device provided in an embodiment of the present application is shown. The computer device includes: at least one processor 301 and a memory 302. The memory 302 stores a computer program that can run on the processor 301, wherein the processor 301 executes the bandwidth allocation method of the embodiment when executing the computer program.

参照图4,示出了本申请实施例提供的一种非易失性可读存储介质的示意图,非易失性可读存储介质400存储有计算机程序401,其中,计算机程序被处理器执行时执行实施例的带宽分配方法。Referring to FIG4, a schematic diagram of a non-volatile readable storage medium provided in an embodiment of the present application is shown. The non-volatile readable storage medium 400 stores a computer program 401, wherein the computer program executes the bandwidth allocation method of the embodiment when executed by a processor.

参照图5,示出了本申请实施例提供的一种计算机程序产品的示意图,计算机程序产品500包括计算机程序/指令501,该计算机程序/指令501被处理器执行时实现实施例的带宽分配方法。Referring to FIG5, a schematic diagram of a computer program product provided in an embodiment of this application is shown. The computer program product 500 includes a computer program/instruction 501, which implements the bandwidth allocation method of the embodiment when executed by a processor.

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器)、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will understand that embodiments of this application can be provided as methods, apparatus, or computer program products. Therefore, embodiments of this application can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, embodiments of this application can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM (Compact Disc Read-Only Memory), optical storage, etc.) containing computer-usable program code.

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。This application describes embodiments with reference to flowchart illustrations and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of this application. It should be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing terminal device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal device, create means for implementing the functions specified in one or more blocks of the flowchart illustrations and/or one or more blocks of the block diagrams.

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing terminal device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and/or one or more block diagrams.

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions may also be loaded onto a computer or other programmable data processing terminal equipment to cause a series of operational steps to be performed on the computer or other programmable terminal equipment to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable terminal equipment, provide steps for implementing the functions specified in one or more flowcharts and/or one or more block diagrams.

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。Although preferred embodiments of the present application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of the present application.

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的相同要素。Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal device that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or terminal device. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or terminal device that includes the element.

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。This document uses specific examples to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the methods and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims (20)

一种带宽分配的计算机系统,其特征在于,应用于计算机系统,所述计算机系统包括中央处理器、监测模块、基板管理控制器和基本输入输出系统;A bandwidth allocation computer system, characterized in that it is applied to a computer system, the computer system comprising a central processing unit, a monitoring module, a baseboard management controller, and a basic input/output system; 在所述计算机系统的主板上电时,所述监测模块被配置为识别到所述主板中插接的各个扩展单元的应用出现变动时,根据所述各个扩展单元对应的带宽配置信息,生成所述中央处理器对应的带宽分配信息表,所述扩展单元被配置为将所述中央处理器的任一连接端口的带宽资源分配至连接的设备插槽;When the motherboard of the computer system is powered on, the monitoring module is configured to detect when the application of each expansion unit plugged into the motherboard changes, and generate a bandwidth allocation information table corresponding to the central processing unit according to the bandwidth configuration information corresponding to each expansion unit. The expansion unit is configured to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot. 当所述计算机系统的主板上电后,所述基板管理控制器被配置为根据所述带宽分配信息表生成选项配置文件,所述选项配置文件中包括所述中央处理器的任一连接端口对应连接的扩展单元;When the motherboard of the computer system is powered on, the baseboard management controller is configured to generate an option configuration file according to the bandwidth allocation information table, the option configuration file including an expansion unit connected to any connection port of the central processing unit; 在所述计算机系统的主机触发后,所述基本输入输出系统被配置为在启动过程中,根据所述选项配置文件,对所述中央处理器的任一连接端口进行配置,以将所述中央处理器的带宽资源分配至各个扩展单元。After the host of the computer system is triggered, the basic input/output system is configured to configure any connection port of the central processing unit according to the option configuration file during the startup process, so as to allocate the bandwidth resources of the central processing unit to each expansion unit. 根据权利要求1所述的计算机系统,其特征在于,所述监测模块还被配置为:The computer system according to claim 1, wherein the monitoring module is further configured as follows: 识别所述主板中当前插接的各个扩展单元的配置信息;Identify the configuration information of each expansion unit currently plugged into the motherboard; 当所述主板中当前插接的各个扩展单元的配置信息,与上一次插接的各个扩展单元的历史配置信息不一致时,确定所述主板中当前插接的各个扩展单元的应用出现变动。When the configuration information of each expansion unit currently plugged into the motherboard is inconsistent with the historical configuration information of each expansion unit plugged into the motherboard last time, it is determined that the application of each expansion unit currently plugged into the motherboard has changed. 根据权利要求2所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息时,所述监测模块被配置为:The computer system according to claim 2, characterized in that, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is configured as follows: 在扩展单元的配置空间中,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。In the configuration space of the expansion unit, the bandwidth configuration information and plug-in position information of any expansion unit are obtained as the configuration information of that expansion unit. 根据权利要求3所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息时,所述监测模块被配置为:The computer system according to claim 3, characterized in that, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is configured to: 通过集成电路总线或系统管理总线,获取任一扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。The bandwidth configuration information and plug-in location information of any expansion unit can be obtained through the integrated circuit bus or system management bus as the configuration information of that expansion unit. 根据权利要求4所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息时,所述监测模块被配置为:The computer system according to claim 4, characterized in that, when identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is configured to: 对于任一包含配置信号线的扩展单元,通过与该扩展单元连接的所述配置信号线,获取该扩展单元的带宽配置信息和插接位置信息作为该扩展单元的配置信息。For any expansion unit that includes a configuration signal line, the bandwidth configuration information and plug-in position information of the expansion unit are obtained through the configuration signal line connected to the expansion unit as the configuration information of the expansion unit. 根据权利要求3-5任一项所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息之后,所述监测模块还被配置为:The computer system according to any one of claims 3-5, characterized in that, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to: 将所述当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,在当前插接的任一扩展单元为新增的扩展单元时,确定所述主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. If any of the currently plugged-in expansion units is a newly added expansion unit, it is determined that the application of each currently plugged-in expansion unit on the motherboard has changed. 根据权利要求6所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息之后,所述监测模块还被配置为:The computer system according to claim 6, characterized in that, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to: 将所述当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,当上一次插接的任一扩展单元被移除时,确定所述主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. When any previously plugged-in expansion unit is removed, it is determined that the application of each currently plugged-in expansion unit in the motherboard has changed. 根据权利要求7所述的计算机系统,其特征在于,识别所述主板中当前插接的各个扩展单元的配置信息之后,所述监测模块还被配置为:The computer system according to claim 7, characterized in that, after identifying the configuration information of each expansion unit currently plugged into the motherboard, the monitoring module is further configured to: 将所述当前插接的各个扩展单元的配置信息与上一次插接的各个扩展单元的配置信息进行比较,若当前插接的任一扩展单元的插接位置信息与上一次插接时的插接位置信息不一致时,确定所述主板中当前插接的各个扩展单元的应用出现变动。The configuration information of each currently plugged-in expansion unit is compared with the configuration information of each previously plugged-in expansion unit. If the plug-in position information of any currently plugged-in expansion unit is inconsistent with the plug-in position information at the time of the last plug-in, it is determined that the application of each currently plugged-in expansion unit in the motherboard has changed. 根据权利要求1所述的计算机系统,其特征在于,根据所述带宽分配信息表生成选项配置文件的过程中,所述基板管理控制器被配置为:The computer system according to claim 1, characterized in that, during the process of generating the option configuration file based on the bandwidth allocation information table, the baseboard management controller is configured as follows: 当所述计算机系统的主板上电时,从所述监测模块中获取所述带宽分配信息表;When the motherboard of the computer system is powered on, the bandwidth allocation information table is obtained from the monitoring module; 当所述带宽分配信息表与历史带宽分配信息表不一致时,根据所述带宽分配信息表,生成所述中央处理器的各个连接端口对应的带宽配置策略;When the bandwidth allocation information table is inconsistent with the historical bandwidth allocation information table, a bandwidth configuration strategy corresponding to each connection port of the central processing unit is generated according to the bandwidth allocation information table. 根据所述中央处理器的各个连接端口对应的带宽配置策略,生成所述中央处理器的各个连接端口对应的选项配置文件,所述选项配置文件为基于超文本传输安全服务的管理标准协议传输的键值对数据格式的文件。Based on the bandwidth configuration policy corresponding to each connection port of the central processing unit, an option configuration file corresponding to each connection port of the central processing unit is generated. The option configuration file is a key-value data format file transmitted based on the management standard protocol of Hypertext Transfer Security Service. 根据权利要求9所述的计算机系统,其特征在于,所述基本输入输出系统被配置为在所述基本输入输出系统的启动过程中,基于超文本传输安全服务的管理标准协议,向所述基板管理控制器发送第一请求;The computer system according to claim 9, wherein the basic input/output system is configured to send a first request to the baseboard management controller based on the management standard protocol of Hypertext Transfer Security Service during the startup process of the basic input/output system; 当所述基板管理控制器在响应于所述第一请求后返回的第一响应表征存在选项变动时,所述基本输入输出系统被配置为基于超文本传输安全服务的管理标准协议,向所述基板管理控制器发送第二请求;When the first response returned by the baseboard management controller after responding to the first request indicates that there is an option change, the basic input/output system is configured to send a second request to the baseboard management controller based on the management standard protocol of Hypertext Transfer Security Service. 所述基板管理控制器被配置为响应于所述第二请求,将所述选项配置文件发送至所述基本输入输出系统;The baseboard management controller is configured to send the option configuration file to the basic input/output system in response to the second request; 所述基本输入输出系统被配置为在自检阶段,根据所述选项配置文件配置所述中央处理器的任一连接端口连接的扩展单元。The basic input/output system is configured, during the self-test phase, to configure any connection port of the central processing unit to be connected to an expansion unit according to the option configuration file. 根据权利要求1所述的计算机系统,其特征在于,所述监测模块包括集成在所述基板管理控制器中的复杂可编程逻辑元件。The computer system according to claim 1, wherein the monitoring module includes a complex programmable logic element integrated in the baseboard management controller. 一种带宽分配方法,其特征在于,应用于权利要求1-11任一项所述的带宽分配的计算机系统,所述计算机系统包括中央处理器、监测模块、基板管理控制器和基本输入输出系统,所述方法包括:A bandwidth allocation method, characterized in that it is applied to a computer system for bandwidth allocation according to any one of claims 1-11, the computer system comprising a central processing unit, a monitoring module, a baseboard management controller, and a basic input/output system, the method comprising: 在所述计算机系统的主板上电时,监测模块识别到所述主板中插接的各个扩展单元的应用出现变动时,根据所述各个扩展单元对应的带宽配置信息,生成中央处理器对应的带宽分配信息表,所述扩展单元被配置为将所述中央处理器的任一连接端口的带宽资源分配至连接的设备插槽;When the motherboard of the computer system is powered on, the monitoring module detects that the application of each expansion unit plugged into the motherboard has changed. Based on the bandwidth configuration information corresponding to each expansion unit, it generates a bandwidth allocation information table corresponding to the central processing unit. The expansion unit is configured to allocate the bandwidth resources of any connection port of the central processing unit to the connected device slot. 当所述计算机系统的主板上电后,基板管理控制器根据所述带宽分配信息表生成选项配置文件,所述选项配置文件中包括所述中央处理器的任一连接端口对应连接的扩展单元;When the motherboard of the computer system is powered on, the baseboard management controller generates an option configuration file according to the bandwidth allocation information table. The option configuration file includes an expansion unit connected to any connection port of the central processing unit. 在所述计算机系统的主机触发后,基本输入输出系统在启动过程中,根据所述选项配置文件,对所述中央处理器的任一连接端口进行配置,以将所述中央处理器的带宽资源分配至各个扩展单元。After the host of the computer system is triggered, the basic input/output system configures any connection port of the central processing unit according to the option configuration file during the startup process, so as to allocate the bandwidth resources of the central processing unit to each expansion unit. 根据权利要求12所述的方法,其特征在于,所述在所述计算机系统的主板上电时,监测模块识别到所述主板中插接的各个扩展单元的应用出现变动,包括:According to the method of claim 12, the step of the monitoring module identifying a change in the application of each expansion unit plugged into the motherboard when the motherboard of the computer system is powered on includes: 在所述计算机系统的主板上电时,所述监测模块识别所述主板中当前插接的各个扩展单元的配置信息;When the motherboard of the computer system is powered on, the monitoring module identifies the configuration information of each expansion unit currently plugged into the motherboard; 将所述当前插接的各个扩展单元的配置信息与上一次开机时所述计算机系统的主板中插接的各个扩展单元的历史配置信息进行比较;The configuration information of each currently plugged-in expansion unit is compared with the historical configuration information of each expansion unit plugged into the motherboard of the computer system during the last power-on. 当所述当前插接的各个扩展单元的配置信息,与所述上一次开机时所述计算机系统的主板中插接的各个扩展单元的历史配置信息不一致时,确定所述主板中当前插接的各个扩展单元的应用出现变动。When the configuration information of each currently plugged-in expansion unit is inconsistent with the historical configuration information of each expansion unit plugged into the motherboard of the computer system during the last power-on, it is determined that the application of each currently plugged-in expansion unit in the motherboard has changed. 根据权利要求13所述的方法,其特征在于,所述识别所述主板中当前插接的各个扩展单元的配置信息,包括:The method according to claim 13, wherein identifying the configuration information of each expansion unit currently plugged into the motherboard includes: 所述监测模块在所述扩展单元的配置空间中,获取任一所述扩展单元的所述带宽配置信息和插接位置信息作为所述扩展单元的配置信息。The monitoring module obtains the bandwidth configuration information and plug-in position information of any of the expansion units from the configuration space of the expansion units as the configuration information of the expansion units. 根据权利要求13所述的方法,其特征在于,所述识别所述主板中当前插接的各个扩展单元的配置信息,包括:The method according to claim 13, wherein identifying the configuration information of each expansion unit currently plugged into the motherboard includes: 所述监测模块通过集成电路总线或系统管理总线,获取任一所述扩展单元的所述带宽配置信息和插接位置信息作为所述扩展单元的配置信息。The monitoring module obtains the bandwidth configuration information and plug-in position information of any of the expansion units via an integrated circuit bus or a system management bus, and uses this information as the configuration information of the expansion unit. 根据权利要求13所述的方法,其特征在于,所述识别所述主板中当前插接的各个扩展单元的配置信息,包括:The method according to claim 13, wherein identifying the configuration information of each expansion unit currently plugged into the motherboard includes: 对于任一包含配置信号线的扩展单元,所述监测模块通过连接的所述配置信号线,获取所述扩展单元的所述带宽配置信息和插接位置信息作为所述扩展单元的配置信息。For any expansion unit containing a configuration signal line, the monitoring module obtains the bandwidth configuration information and plug-in position information of the expansion unit as the configuration information of the expansion unit through the connected configuration signal line. 根据权利要求12所述的方法,其特征在于,所述基板管理控制器根据所述带宽分配信息表生成选项配置文件,包括:The method according to claim 12, characterized in that the baseboard management controller generates an option configuration file based on the bandwidth allocation information table, including: 所述基板管理控制器判断当前的所述带宽分配信息表是否与历史带宽分配信息表一致;The baseboard management controller determines whether the current bandwidth allocation information table is consistent with the historical bandwidth allocation information table. 若当前的所述带宽分配信息表与所述历史带宽分配信息表一致,则不需要生成新的所述选项配置文件;If the current bandwidth allocation information table is consistent with the historical bandwidth allocation information table, then there is no need to generate a new option configuration file; 若当前的所述带宽分配信息表与所述历史带宽分配信息表不一致,则根据所述带宽分配信息表,生成所述中央处理器的各个连接端口对应的带宽配置策略;If the current bandwidth allocation information table is inconsistent with the historical bandwidth allocation information table, then the bandwidth configuration strategy corresponding to each connection port of the central processing unit is generated according to the bandwidth allocation information table. 所述基板管理控制器根据所述中央处理器的各个连接端口对应的带宽配置策略,生成所述中央处理器的各个连接端口对应的所述选项配置文件。The baseboard management controller generates the option configuration file corresponding to each connection port of the central processing unit according to the bandwidth configuration strategy corresponding to each connection port of the central processing unit. 一种计算机设备,其特征在于,包括:至少一个处理器,以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时执行权利要求12-17中任一所述的带宽分配方法。A computer device, characterized in that it comprises: at least one processor, and a memory storing a computer program executable on the processor, wherein the processor executes the computer program to perform the bandwidth allocation method according to any one of claims 12-17. 一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行权利要求12-17中任一所述的带宽分配方法。A non-volatile readable storage medium, characterized in that the non-volatile readable storage medium stores a computer program, wherein the computer program, when executed by a processor, performs the bandwidth allocation method according to any one of claims 12-17. 一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求12-17中任一所述的带宽分配方法。A computer program product comprising a computer program/instructions, characterized in that, when executed by a processor, the computer program/instructions implement the bandwidth allocation method as described in any one of claims 12-17.
PCT/CN2025/107158 2024-08-27 2025-07-04 Computer system for bandwidth allocation, bandwidth allocation method, and product Pending WO2026045679A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202411183104.0A CN118714015B (en) 2024-08-27 2024-08-27 Computer system for bandwidth allocation, bandwidth allocation method and product
CN202411183104.0 2024-08-27

Publications (1)

Publication Number Publication Date
WO2026045679A1 true WO2026045679A1 (en) 2026-03-05

Family

ID=92808168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/107158 Pending WO2026045679A1 (en) 2024-08-27 2025-07-04 Computer system for bandwidth allocation, bandwidth allocation method, and product

Country Status (2)

Country Link
CN (1) CN118714015B (en)
WO (1) WO2026045679A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118714015B (en) * 2024-08-27 2024-12-27 苏州元脑智能科技有限公司 Computer system for bandwidth allocation, bandwidth allocation method and product
CN119862147B (en) * 2025-03-18 2025-06-20 宝德计算机系统股份有限公司 Method and device for intelligently identifying server configuration and adaptively configuring PCIe bandwidth
CN120104542B (en) * 2025-04-30 2025-08-19 苏州元脑智能科技有限公司 PCIe device bandwidth management device, method and server
CN120872611B (en) * 2025-09-22 2026-02-24 中移(苏州)软件技术有限公司 Bandwidth resource allocation device and bandwidth resource allocation method
CN121524116A (en) * 2026-01-16 2026-02-13 深圳市国鑫数智科技股份有限公司 A method for dynamically configuring PCIe resources based on a server system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048036A (en) * 2021-11-17 2022-02-15 新华三大数据技术有限公司 PCIe bandwidth allocation method and basic input and output system
CN118034917A (en) * 2024-01-18 2024-05-14 苏州元脑智能科技有限公司 PCIe resource allocation method, device, electronic device and storage medium
CN118093485A (en) * 2024-01-19 2024-05-28 浪潮计算机科技有限公司 Bus bandwidth allocation method and device, substrate management controller and medium
WO2024139167A1 (en) * 2022-12-30 2024-07-04 浪潮电子信息产业股份有限公司 Bmc-based memory resource processing device, method and apparatus, and nonvolatile readable storage medium
CN118714015A (en) * 2024-08-27 2024-09-27 苏州元脑智能科技有限公司 A computer system for bandwidth allocation, a bandwidth allocation method and a product

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727419B (en) * 2008-10-16 2012-08-22 英业达股份有限公司 A computer that can automatically configure bandwidth according to the type of interface expansion card
US11507421B2 (en) * 2019-06-11 2022-11-22 Dell Products L.P. Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources
CN116260725B (en) * 2023-01-31 2026-01-30 苏州元脑智能科技有限公司 A server bandwidth allocation method, apparatus, electronic device, and storage medium.
CN118132458A (en) * 2024-02-06 2024-06-04 超聚变数字技术有限公司 MMIO address resource allocation method, device, computing device and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048036A (en) * 2021-11-17 2022-02-15 新华三大数据技术有限公司 PCIe bandwidth allocation method and basic input and output system
WO2024139167A1 (en) * 2022-12-30 2024-07-04 浪潮电子信息产业股份有限公司 Bmc-based memory resource processing device, method and apparatus, and nonvolatile readable storage medium
CN118034917A (en) * 2024-01-18 2024-05-14 苏州元脑智能科技有限公司 PCIe resource allocation method, device, electronic device and storage medium
CN118093485A (en) * 2024-01-19 2024-05-28 浪潮计算机科技有限公司 Bus bandwidth allocation method and device, substrate management controller and medium
CN118714015A (en) * 2024-08-27 2024-09-27 苏州元脑智能科技有限公司 A computer system for bandwidth allocation, a bandwidth allocation method and a product

Also Published As

Publication number Publication date
CN118714015B (en) 2024-12-27
CN118714015A (en) 2024-09-27

Similar Documents

Publication Publication Date Title
US10127170B2 (en) High density serial over LAN management system
WO2026045679A1 (en) Computer system for bandwidth allocation, bandwidth allocation method, and product
CN107526665B (en) Chassis management system and chassis management method
US10031736B2 (en) Automatic system software installation on boot
US9122501B1 (en) System and method for managing multiple bios default configurations
US8141093B2 (en) Management of an IOV adapter through a virtual intermediary in an IOV management partition
CN104202194B (en) The collocation method and device of PCIe topologys
US9542201B2 (en) Network bios management
JP4990055B2 (en) System and method for speeding up identification of hardware platform class
US7676694B2 (en) Managing system components
US10372639B2 (en) System and method to avoid SMBus address conflicts via a baseboard management controller
US11188407B1 (en) Obtaining computer crash analysis data
CN105938450A (en) Method and system for automatic debugging information collection
CN107632846A (en) Firmware upgrade method and device, Shelf management module
TWI608357B (en) Sharing bus port by multiple bus hosts and a sharing method
WO2024022212A1 (en) Configuration information management method and apparatus, and server
US10558453B1 (en) System and method to achieve shared drive firmware version consistency via ESRT update
WO2026037009A1 (en) Bandwidth allocation method, server, device, medium and program product
WO2022140544A1 (en) Multi-function uefi driver with update capabilities
US12001373B2 (en) Dynamic allocation of peripheral component interconnect express bus numbers
US20140280663A1 (en) Apparatus and Methods for Providing Performance Data of Nodes in a High Performance Computing System
US9794120B2 (en) Managing network configurations in a server system
US20250328647A1 (en) Securing legacy adapters with a secure microcontroller unit and legacy adapter recovery
US12282690B1 (en) Enable boot on a non-volatile memory express software redundant array of independent drives volume
US12265496B2 (en) Dynamic topology discovery and management with protocol detection

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25858723

Country of ref document: EP

Kind code of ref document: A1