WO2023221525A1 - Resource allocation method and apparatus of circuit board, circuit board, and storage medium - Google Patents
Resource allocation method and apparatus of circuit board, circuit board, and storage medium Download PDFInfo
- Publication number
- WO2023221525A1 WO2023221525A1 PCT/CN2022/143285 CN2022143285W WO2023221525A1 WO 2023221525 A1 WO2023221525 A1 WO 2023221525A1 CN 2022143285 W CN2022143285 W CN 2022143285W WO 2023221525 A1 WO2023221525 A1 WO 2023221525A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- resource
- hardware
- amount
- resource amount
- external device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 146
- 238000013468 resource allocation Methods 0.000 title claims abstract description 82
- 108010001267 Protein Subunits Proteins 0.000 claims description 36
- 230000006870 function Effects 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Definitions
- the present application relates to the field of computer technology, and in particular to a circuit board resource allocation method, device, circuit board and storage medium.
- Computer equipment includes circuit boards. Computer equipment can also be connected to external equipment. When the basic input output system (BIOS) of the circuit board recognizes the external equipment connected to the computer equipment, it uses the external equipment as the computer equipment. The hardware unit allocates the resources provided by the circuit board to the identified external devices.
- BIOS basic input output system
- the circuit board resource allocation process includes: the BIOS records the identification of each external device connected to the computer device through a whitelist. During the startup process, the BIOS records the identification of the external device currently connected to the computing device based on the identification recorded in the whitelist. Identify external devices and allocate resources to external devices that are successfully identified.
- the whitelist needs to be updated, and the BIOS also needs to be upgraded so that the upgraded BIOS can identify the newly connected device based on the updated whitelist.
- the newly connected external device is used as the hardware unit of the computer device.
- the BIOS needs to be continuously upgraded, which increases the maintenance cost of the BIOS.
- Embodiments of the present application provide a circuit board resource allocation method, device, circuit board, and storage medium, which can reduce BIOS maintenance costs.
- the technical solution is as follows:
- a resource allocation method for a circuit board is provided.
- the circuit board is connected to a hardware unit.
- the hardware unit is used to provide hardware resources.
- the method is applied to the basic input and output system BIOS of the circuit board.
- the methods include:
- Allocate resources to the hardware unit according to the first resource amount and the second resource amount wherein the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit, and the second resource amount is The amount of resources requested by the hardware unit.
- This method uses the BIOS of the circuit board to automatically allocate resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thereby saving money. Reduce BIOS maintenance costs.
- the circuit board is located in a computer device
- the hardware unit is an external device of the computer device
- the hardware unit is connected to the circuit board through a slot
- the first resource amount Equal to the maximum amount of resources corresponding to the slot.
- the circuit board is connected to a connector
- the slot is a card slot on the connector
- the hardware unit is connected to the slot
- the method further includes:
- the circuit board further includes a resource manager, the resource manager is connected to the BIOS and the connector respectively, and the slot corresponding data is read from the connector.
- the maximum amount of resources includes:
- the maximum amount of resources corresponding to the slot is read from the connector.
- the slot is a card slot on the circuit board
- the hardware unit is connected to the slot
- the circuit board further includes a resource manager
- the resource managers respectively Connected to the BIOS and the slot, before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
- the resource manager Through the resource manager, the maximum amount of resources corresponding to the slot is obtained, and the obtained maximum amount of resources is used as the first amount of resources.
- the hardware unit includes a plurality of hardware sub-units
- the second resource amount includes a plurality of third resource amounts
- each third resource amount corresponds to one of the plurality of hardware sub-units.
- a hardware subunit, each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit, and before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further include:
- the plurality of third resource amounts are read from the hardware unit.
- the hardware unit includes a plurality of hardware sub-units
- the second resource amount includes a plurality of third resource amounts
- each third resource amount corresponds to one of the plurality of hardware sub-units.
- a hardware subunit, each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit, and allocating resources to the hardware unit according to the first resource amount and the second resource amount includes:
- the resources corresponding to the third resource amount are allocated to each hardware subunit.
- the method before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
- the hardware unit If the first resource amount is greater than the target resource amount stored at the first address in the hardware unit, create at least two logical resources for the hardware unit according to the multiple between the first resource amount and the target resource amount. Interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware sub-unit of the hardware unit;
- the hardware unit includes multiple hardware subunits.
- the circuit board further includes a processor, and performing a subunit mounting operation on the at least two logical interfaces includes:
- each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;
- each second address is a hardware subunit mounted by the BIOS for the corresponding logical interface. assigned address.
- the hardware unit is a high-speed serial computer expansion bus standard PCIE device, and the resource is bandwidth.
- the circuit board includes multiple processors
- the hardware unit is any processor among the multiple processors
- the first resource amount is equal to the total resources of the resources. The amount is divided by the total number of the multiple processors.
- the circuit board is located in a computer device, the hardware unit is mounted with at least one external device of the computer device, and the circuit board is connected to the at least one external device through at least one slot. connect;
- the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount.
- the fourth resource amount is the hot plug of the target slot of the BIOS.
- the total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
- the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, where the first number is the first external number of the at least one external device.
- the total number of devices, the second number is the total number of hardware subunits in the second external device in the at least one external device, the first external device is the at least one external device that does not include hardware
- An external device of a subunit, the second external device is an external device including a hardware subunit in the at least one external device, and before allocating resources to the hardware unit according to the first resource amount and the second resource amount,
- the method also includes:
- the calculated sum of the first number and the second number is used as the total resource amount requested by the at least one external device
- the sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
- the circuit board is located in a computer device, and the hardware unit is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the second The resource amount is equal to the sum of the resource amounts requested by the at least one external device.
- the method before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
- the maximum resource amount corresponding to the external device is used as the resource amount requested by the sub-device. If the external device includes For multiple hardware sub-units, the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the device;
- the sum of resource amounts requested by the at least one external device is used as the second resource amount.
- the method before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
- circuit board further includes a resource manager, obtain the first amount of resources through the resource manager, wherein the resource manager is connected to the BIOS, the hardware unit and the at least one external device respectively. connect.
- allocating resources to the hardware unit according to the first resource amount and the second resource amount includes:
- the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit, so that the hardware The unit is capable of being allocated said resources of said second amount of resources;
- the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
- the resource manager is a complex programmable logic device or a microcontroller.
- a resource allocation device for executing the above resource allocation method.
- the resource allocation device includes a functional module for executing the resource allocation method provided by the above-mentioned first aspect or any optional manner of the above-mentioned first aspect.
- a circuit board which includes a resource allocation unit configured to load and execute at least one program code from a memory, so that the resource allocation unit executes to implement operations performed by the above resource allocation method. .
- a computer-readable storage medium is provided. At least one program code is stored in the storage medium. The program code is read by the resource allocation unit in the circuit board, so that the resource allocation unit executes the above resource allocation method. The operation performed.
- a computer program product in a fifth aspect, includes program code.
- the program code is stored in a computer-readable storage medium.
- the resource allocation unit in the circuit board reads the program code from the computer-readable storage medium. , the resource allocation unit executes the program code, so that the resource allocation unit executes the method provided in the above-mentioned first aspect or various optional implementations of the first aspect.
- Figure 1 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
- FIG. 2 is a schematic structural diagram of another circuit board provided by an embodiment of the present application.
- Figure 3 is a flow chart of a circuit board resource allocation method provided by this application.
- Figure 4 is a flow chart of a resource allocation method when the hardware unit is an external device provided by an embodiment of the present application
- Figure 5 is a flow chart of a resource allocation method when the hardware unit is a processor provided by an embodiment of the present application
- Figure 6 is a flow chart of another resource allocation method when the hardware unit is an external device provided by an embodiment of the present application.
- Figure 7 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
- Figure 8 is a flow chart for allocating bandwidth to a riser card provided by an embodiment of the present application.
- Figure 9 is a flow chart for allocating bandwidth to multi-chip PCIE devices provided by an embodiment of the present application.
- Figure 10 is a flow chart of another resource allocation method when the hardware unit is a processor provided by an embodiment of the present application.
- Figure 11 is a flow chart for allocating a bus to a CPU provided by an embodiment of the present application.
- Figure 12 is a flow chart of a circuit board resource allocation method provided by an embodiment of the present application.
- Figure 13 is a schematic structural diagram of a resource allocation device provided by an embodiment of the present application.
- Figure 14 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
- Circuit board Provides resources, and automatically allocates the resources provided by the identified hardware unit to communicate with the hardware unit through the allocated resources, where the circuit board is such as the motherboard.
- the provided resources include at least one of bandwidth, bus, and memory mapped input/output (MMIO) address.
- Hardware unit used to provide hardware resources.
- the hardware resources include at least one of computing resources, storage resources and other resources.
- Resource amount The amount of a resource, such as the size of bandwidth, the number of buses, or the size of MMIO addresses, etc.
- the first amount of resources the amount of resources pre-allocated by the circuit board for the hardware unit, where the pre-allocated resource amount is the number of resources allocated by the hardware unit when the circuit board pre-allocates resources for the hardware unit.
- the pre-allocation in this application is the preliminary planning of the use of resources, and what is allocated is the quantity of resources.
- pre-allocation is achieved by dividing the resources provided by the circuit board. Taking the resource as a bus as an example, the circuit board provides 100 buses, and the circuit board is connected to 10 hardware units. If the 100 buses are divided into 10 equal parts, then the amount of resources pre-allocated by the circuit board for each hardware unit is 10. In another possible implementation, pre-allocation is implemented by presetting the amount of resources for the hardware unit.
- a resource amount is preset for each hardware unit connected to the circuit board to implement preallocation, where the resource amount preset for the hardware unit is also the preallocated resource amount.
- the preset amount of resources may be achieved by the user recording the amount of resources in the circuit board. For example, for at least one hardware unit that can provide hardware resources for the circuit board, the user pre-stores the at least one hardware unit and at least one third in the circuit board. There is a correspondence between resource amounts, each hardware unit corresponds to a first resource amount, and the corresponding relationship indicates that the resources of the first resource amount are pre-allocated to the corresponding hardware unit.
- the at least one hardware unit includes a hardware unit to which the circuit board has been connected and/or a hardware unit to which the circuit board has not been connected.
- the hardware unit to which the circuit board has not been connected may be a hardware unit to which subsequent circuit boards may be connected.
- the preset resource amount may also be achieved by the user selecting an interface for the hardware unit to connect to the circuit board. For example, the user selects a certain interface and connects the hardware unit to the circuit board through the selected interface.
- the maximum amount of resources supported by the interface selected by the user That is, the amount of resources preset by the user for the hardware unit.
- the maximum amount of resources supported by the interface selected by the user is the amount of resources pre-allocated by the circuit board for the hardware unit.
- the user connects hardware unit 1 to interface 1 of the circuit board.
- the maximum bandwidth supported by interface 1 is 8K.
- 8K is the amount of resources preset by the user for hardware unit 1.
- the circuit board is the hardware unit. 1The amount of pre-allocated resources.
- Second resource amount the resource amount requested by the hardware unit.
- the amount of resources requested by the hardware unit is the maximum amount of resources that the hardware unit may request from the circuit board during the working process, which can be understood as the maximum amount of resources required by the hardware unit during the working process. Subsequently, the second resource amount will be further introduced with reference to specific embodiments.
- FIG. 1 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
- the circuit board 100 is connected to at least one hardware unit 101 , and each hardware unit 101 is used to provide hardware resources.
- the hardware unit 101 includes at least one of a processor and an external device, where the processor is located on the circuit board, and the hardware resources provided by the processor include computing resources.
- the processor on the circuit board has at least one. Processor such as central processing unit (CPU).
- CPU central processing unit
- the external device is a hardware unit 101 connected to the circuit board 100 through the interface 102 on the circuit board 100.
- the hardware resources provided by the external device include storage resources and other types of hardware resources other than storage resources.
- External devices include peripheral component interconnect (PCI) devices, peripheral component interconnect express (PCIE) devices, storage devices, etc.
- PCI peripheral component interconnect
- PCIE peripheral component interconnect express
- the hardware resources provided by the PCI device or the PCIE device include other types of hardware resources other than storage resources
- the hardware resources provided by the storage device include storage resources.
- Storage devices such as hard disks, read-only memory (ROM), random access memory (RAM), compact discs (compact disc read-only memory, CD-ROM), tapes, floppy disks, etc.
- the hard disk is, for example, a serial attached small computer system interface (SAS) hard disk or a serial advanced technology attachment hard disk (SATA) hard disk.
- SAS serial attached small computer system interface
- SATA serial advanced technology attachment hard disk
- any interface 102 on the circuit board 100 is a wired interface or a wireless interface, and the wireless interface is, for example, a card slot.
- Each interface 102 on the circuit board 100 is connected to one or more hardware units 101 through direct connection or cascading.
- Figure 2 is a schematic structural diagram of another circuit board provided by an embodiment of the present application.
- the interface 102 in the circuit board 100 shown in Figure 2 is connected to one or more external devices through a connector 103.
- On the connector 103 At least one card slot is provided, and each card slot is used to connect an external device.
- the card slot on the connector 103 is used to expand the interface of the circuit board 100.
- the connector 103 includes different types of connectors such as riser cards, hard disk backplanes, and expansion cards. Different types of connectors can connect to different types of external devices. For example, riser cards can connect to PCI devices or PCIE devices, hard drive backplanes can connect to hard drives, and expansion cards can connect to other types of external devices.
- the processor on the circuit board 100 is connected to the interface 102 through a bridge, so that the processor can communicate with the external device connected to the interface 102 .
- the processor establishes a link with the interface through a PCIE bridge and accesses the PCIE device or PCI device connected to the interface through the link.
- the external device connected to a certain interface is a SAS hard disk. The processor establishes a link with the interface through a SAS bridge and accesses the SAS hard disk connected to the interface through the link.
- some storage devices are connected to the processor and serve as the memory of the processor. Such storage devices may be located on the motherboard. This storage device is also a hardware unit 101 of the circuit board.
- the circuit board 100 is located in a computer device, and the hardware unit connected to the circuit board 100 serves as a hardware unit of the computer device, providing hardware resources for the computer device.
- the computer device is a server or terminal, and the server is such as a local server or a cloud server.
- Terminals include user equipment, portable terminals, laptop terminals, desktop terminals, and the like.
- the circuit board can run the BIOS.
- the circuit board 100 includes a target chip 104.
- the target chip 104 is the carrier of the BIOS and can run the BIOS.
- the functions of the BIOS are realized by running the BIOS.
- the BIOS can allocate resources to the hardware unit 101 according to the first resource amount and the second resource amount corresponding to the hardware unit 101, thereby realizing automatic allocation of resources without upgrading the BIOS and reducing costs. BIOS maintenance costs.
- the circuit board 100 also includes a resource manager 105, which is connected to the BIOS and the hardware unit 101 respectively. If a certain hardware unit 101 is located on the circuit board 100, the BIOS is directly or indirectly connected to the hardware unit 101. If the hardware unit 101 is an external device of the circuit board 100, the BIOS is indirectly connected to the hardware unit 101 through the circuit board interface 102.
- the resource manager 105 is a complex programmable logic device (CPLD) or a microcontroller unit (MCU). The embodiment of the present application does not limit the hardware form of the resource manager 105.
- the resource manager 105 is used to provide the BIOS with the first resource amount corresponding to each hardware unit 101 connected to the circuit board 100 .
- the resource manager 105 obtains the first resource amount corresponding to each hardware unit 101 connected to the circuit board 100, and stores the obtained first resource amount corresponding to each hardware unit 101. After receiving the instruction from the BIOS to request the acquisition of the first resource amount, the resource manager 105 returns the stored first resource amount corresponding to at least one hardware unit 101 to the BIOS. Alternatively, after receiving an instruction from the BIOS to request the acquisition of the first resource amount, the resource manager 105 obtains the sum of the first resource amount corresponding to at least one hardware unit 101 according to the BIOS instruction, and returns the obtained at least one hardware unit 101 to the BIOS. The corresponding first resource amount.
- the resource manager 105 is an optional component on the circuit board 100.
- the circuit board 100 shown in Figure 1 or Figure 2 includes the resource manager 105.
- the BIOS is integrated There is a resource manager 105 function, but the circuit board 100 does not include the resource manager 105 .
- the circuit board can be connected to at least one hardware unit. If the circuit board is located in a computer device, each hardware unit connected to the circuit board is also the hardware unit of the computer device, and the BIOS of the circuit board is also the hardware unit of the computer device. is the BIOS of the computer device. Since the process of BIOS allocating resources to each hardware unit connected to this circuit board is similar, for the convenience of description, taking a hardware unit connected to this circuit board as an example, the process of BIOS allocating resources to this hardware unit is introduced as follows:
- Figure 3 is a flow chart of a circuit board resource allocation method provided by the present application.
- the circuit board is connected to a hardware unit.
- the hardware unit is used to provide hardware resources.
- the method is applied to the BIOS of the circuit board. The method includes follow steps 301-303.
- the BIOS obtains the first resource amount corresponding to the hardware unit.
- the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
- the circuit board includes a motherboard or other types of circuit boards.
- the resources provided by the circuit board include at least one of bandwidth, bus and MMIO address, and the resources provided by the circuit board are resources to be allocated by the BIOS.
- This hardware unit is any hardware unit connected to the circuit board.
- This hardware unit is an external device or processor.
- the hardware unit is an external device such as a PCIE device or a PCI device, and for another example, the processor is a CPU.
- the hardware unit when the hardware unit is an external device, if the circuit board is located in a computer device, the hardware unit is an external device of the computer device. In a possible implementation manner, if the hardware unit is an external device, the hardware unit is connected to the circuit board through a slot. For example, the hardware unit is connected to the slot, and the slot is connected to the circuit board, so that the hardware unit is connected to the circuit board.
- the slot is a card slot on the connector or a card slot on the circuit board. If the slot is a card slot on a connector, the hardware unit is connected to the slot, and the connector is connected to a certain interface of the circuit board, so that the card slot is indirectly connected to the circuit board through the connector. If the slot is a card slot on a circuit board, the slot is directly connected to the circuit board. If the slot supports wired connection, the hardware device is wired to the slot. If the slot supports card connection, the hardware device is located in the slot.
- the first resource amount is equal to the maximum resource amount corresponding to the slot.
- the maximum resource amount corresponding to the slot is the maximum bandwidth supported by the slot.
- the circuit board includes a plurality of processors, and the hardware unit is a first processor among the plurality of processors, wherein the first processor is any one of the plurality of processors. processor.
- the resource is a bus or an MMIO address
- the first resource amount corresponding to the hardware unit is equal to the total resource amount of the resource divided by the total number of the multiple processors.
- the circuit board provides 100 buses.
- the circuit board includes 5 processors, and the first resource amount corresponding to each processor is 20.
- the size of the MMIO address space provided by the circuit board is 200.
- the circuit board includes 5 processors, and the first resource amount corresponding to each processor is 40.
- the BIOS obtains the second resource amount corresponding to the hardware unit, and the second resource amount is the resource amount requested by the hardware unit.
- the second resource amount is equal to the maximum resource amount corresponding to the hardware unit, and the maximum resource amount corresponding to the hardware unit It is the maximum amount of resources that the hardware unit may request during the work process, or it can also be understood as the maximum resource amount that the hardware unit requires during the work process, and the maximum resource amount that the hardware unit supports. Taking the resource as bandwidth as an example, the maximum bandwidth supported by the hardware unit is X8, then the maximum bandwidth required by the hardware unit during work is X8, and the second resource amount is X8.
- the hardware unit When the hardware unit is an external device, if the hardware unit includes multiple hardware sub-units. Taking the hardware device as a PCIE device as an example, if the PCIE device includes multiple chips, each chip in the PCIE device is a hardware subunit.
- the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to a hardware sub-unit among the multiple hardware sub-units, and each third resource amount
- the amount is the maximum amount of resources corresponding to the corresponding hardware subunit.
- the maximum amount of resources corresponding to a hardware subunit is the maximum amount of resources requested by the hardware subunit.
- the maximum amount of resources requested by the hardware subunit is the maximum amount of resources that the hardware subunit may request during the work process. Alternatively, it can also be understood as the maximum amount of resources required by the hardware subunit during its work.
- the maximum bandwidth supported by the hardware subunit is X2
- the maximum bandwidth required by the hardware unit during work is X2
- the third resource amount corresponding to the hardware subunit is X2.
- the maximum amount of resources corresponding to each hardware sub-unit of the hardware unit may be the same or different.
- the values of the plurality of third resource amounts included in the second resource amount may be the same or different. May be different.
- the hardware unit when the circuit board is located in a computer device and the hardware unit is a processor, the hardware unit is mounted with at least one external device of the computer device, and the at least one external device may be the same type of external device, or possibly different types of external devices.
- the at least one external device includes at least one external device among a PCI device, a PCIE device, or a hard disk.
- the circuit board is connected to the at least one external device through at least one slot.
- the circuit board is connected to one of the at least one external device through each slot in the at least one slot.
- the slot When the slot has a hot-swappable function, if the slot is hot-swapped, the slot will occupy the bus. Therefore, when the hardware unit is a processor, if the resource is a bus, the second resource amount is equal to the The sum of the total resource amount requested by at least one external device and the fourth resource amount, where the fourth resource amount is the total resource amount pre-allocated by the BIOS for the hot plug function of the target slot, and the target slot is the at least one A slot with hot-swappable functionality.
- the at least one external device may include an external device that does not include a hardware subunit, or there may be an external device that includes a hardware subunit.
- the at least one external device that does not include a hardware subunit will be referred to as the third external device.
- An external device, the external device including a hardware subunit among the at least one external device is called a second external device. Since each hardware subunit in each first external device or each second external device requires at least one bus when working, the total amount of resources requested by the at least one external device is equal to the first number and the second number. The sum of the numbers, where the first number is the total number of first external devices in the at least one external device, and the second number is the total number of hardware subunits in the second external device in the at least one external device. number.
- the second resource amount is equal to the sum of resource amounts requested by the at least one external device.
- the amount of resources requested by each external device is the maximum workload requested by each external device during its work.
- the resource amount requested by the first external device is the maximum resource amount corresponding to the first external device.
- the resource amount requested by the second external device is the sum of the maximum resource amount corresponding to each hardware unit in the second external device.
- the BIOS allocates resources to the hardware unit according to the first resource amount and the second resource amount.
- the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit. resources, thereby saving BIOS maintenance costs.
- the method by which the BIOS obtains the first resource amount corresponding to the hardware unit includes any of the following methods A and B.
- Method A The BIOS obtains the first resource amount corresponding to the hardware unit from the circuit board or hardware unit.
- Method B The BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager on the circuit board.
- the process by which the BIOS obtains the first resource amount corresponding to the hardware unit is different.
- the BIOS obtains The first resource amount process corresponding to the hardware unit is introduced in detail.
- the process by which the BIOS obtains the first resource amount corresponding to the hardware unit when the hardware unit is a processor will be described in detail with reference to the embodiment shown in FIG. 5 .
- Method B will be introduced in detail with reference to the embodiment shown in FIG. 10 .
- Figure 4 is a flow chart of a resource allocation method when the hardware unit is an external device provided by an embodiment of the present application.
- the circuit board is connected to the hardware unit.
- the hardware unit is used to provide hardware resources.
- the method is applied to the circuit board. BIOS, the method includes the following steps 401-404.
- the BIOS identifies the hardware unit connected to the circuit board.
- the hardware unit is any hardware unit connected to the circuit board.
- the BIOS obtains the configuration information of each hardware unit connected to the circuit board and identifies each hardware unit through the configuration information of each hardware unit to determine the type of each hardware unit.
- the configuration information of the hardware unit is introduced as follows:
- the configuration information of the hardware unit includes the maximum amount of resources corresponding to the hardware unit, the identification of the interface to which the hardware unit is connected on the circuit board, and the At least one of the identifiers of the hardware unit, wherein the maximum resource amount corresponding to the hardware unit is the maximum resource amount of the resources supported by the hardware unit, or it can also be understood as the resource amount required by the hardware unit during the work process. Maximum amount of resources.
- the configuration information of the hardware unit also includes configuration information of multiple hardware sub-units, and the configuration information of each hardware sub-unit includes the corresponding hardware sub-unit. At least one of the maximum amount of resources and the identification of the corresponding hardware subunit.
- the configuration information of the hardware unit includes at least one of an identifier of the hardware unit, an identifier of at least one interface, and at least one link information, wherein the at least one interface is an interface on a circuit board. , the at least one interface is used to connect an external device mounted on the processor.
- Each link information corresponds to one interface among the at least one interface, and each link information is used to indicate a link between the hardware unit and the corresponding interface. If a link is implemented through bridging and the link includes at least one bridge, the corresponding link information of the link includes the identification of the at least one bridge.
- the interface connected to the link is used to connect PCIE devices
- the at least one bridge is a PCIE bridge.
- the interface connected to the link is used to connect SAS hard disks
- the at least one bridge is a SAS bridge.
- the BIOS stores the configuration information of the circuit board.
- the configuration information of the circuit board includes the maximum number of processors supported by the circuit board, the configuration information of multiple processors on the circuit board, the configuration information of each interface and the circuit board.
- the configuration information of each interface includes the maximum amount of resources corresponding to the corresponding interface and the identifier of the corresponding interface.
- the maximum amount of resources corresponding to each interface is the maximum amount of resources supported by the corresponding interface. For example, the maximum bandwidth supported by an interface is X8.
- the maximum amount of resources corresponding to the interface is X8.
- the BIOS obtains the identifier of the hardware unit from the hardware unit, and determines whether the hardware unit is a processor based on the identifier of the hardware unit and the configuration information of the circuit board. For example, for the configuration information of any processor in the configuration information of the circuit board, if the identifier of the hardware unit is the same as the identifier of the processor in the configuration information of any processor, then the hardware unit is a processor.
- the hardware unit connected to each interface on the circuit board is identified.
- the process of identifying the hardware unit connected to the interface includes the following: Steps 4011-4013.
- Step 4011 If the interface is not connected to a connector, the BIOS enables the link between the processor and the interface.
- the interface is not connected to a hardware unit (such as an external device) through a connector and is directly connected to the hardware unit, then the interface is not connected to a connector, and the link between the processor and the interface is the processing link between the server and this hardware unit. If the interface is connected to a hardware unit (such as an external device) through a connector, the interface interfaces with the connector.
- a hardware unit such as an external device
- the BIOS queries the processor corresponding to the interface in the configuration information of the circuit board.
- the BIOS sends the configuration information of the processor in the configuration information of the circuit board to the processor because the link between the processor and the interface has been established in advance. is completed, the processor enables the link between the processor and the interface according to the link information corresponding to the interface in the configuration information of the processor.
- the processor includes a control register
- the BIOS sends the configuration information of the processor to the control register
- the control register stores the configuration information of the processor.
- the processor enables the link between the processor and the interface according to the link information corresponding to the interface in the configuration information of the processor stored in the control register.
- Step 4012 If the interface is connected to the connector, the BIOS establishes a link between the processor and each card slot of the connector.
- the link between the processor and each card slot includes a link between the processor and the interface and a link between the interface and each card slot.
- Each card slot of the connector can connect to a hardware unit (such as an external device), and the link between the processor and each card slot is also the link between the processor and the hardware unit connected to each card slot. link.
- the BIOS reads the connector's configuration information from the connector.
- the configuration information of a connector is stored in the connector's CPLD, and the BIOS reads the configuration information of the connector from the connector's CPLD.
- the configuration information of the connector includes the device type of the connector, the number of card slots of the connector, and the configuration information of each card slot on the connector. Among them, the device type of the connector is such as a riser card, or a hard disk backplane, etc.
- the configuration information of each card slot includes the identification of each card slot and the maximum amount of resources corresponding to each card slot.
- the maximum resource amount of each card slot is the maximum resource amount supported by each card slot, that is, the maximum resource amount required by each card slot during its operation.
- the configuration information of any card slot also includes a target identification, and the target identification indicates that the Any card slot is hot-swappable.
- the BIOS sends the read configuration information of the connector to the processor. If the BIOS does not send the configuration information of the processor to the processor, the BIOS sends the configuration information of the processor and the configuration information of the connector to the processor (such as a control register in the processor).
- the processor establishes a link between the processor and each card slot of the connector according to the configuration information of the connector. For example, the processor enables a link between the processor and the interface, and the processor establishes a link between the interface and each card slot of the connector according to the configuration information of the connector.
- the processing The link between the server and each card slot is established.
- Step 4013 For any link corresponding to the interface, the BIOS performs a scanning operation on the any link. The scanning operation is used to scan whether the link is connected to an external device.
- any link is a link between the processor and the interface. If the interface is connected to a connector, the any link is a link between the processor and any card slot of the connector.
- the BIOS scans any link. If the scan is successful, it means that a hardware unit is connected to any link, and the connected hardware unit is recognized as an external device. If the scan fails, it means that there is no hardware unit connected to any link.
- the BIOS can also allocate temporary resources to the successfully scanned hardware unit, so that the BIOS can access the hardware unit according to the temporary resources allocated to the hardware unit.
- the circuit board provides multiple buses and multiple MMIO addresses. Each MMIO address is used to indicate an address space. If the hardware unit scans successfully, the BIOS allocates a bus for the hardware unit from multiple buses. Allocate an MMIO address to the hardware unit among multiple MMIO addresses. The bus and MMIO address allocated to the hardware unit are temporary resources allocated to the hardware unit, so that the BIOS can access the hardware according to the bus allocated to the hardware unit. unit, or access the hardware unit according to the MMIO address assigned to the hardware unit in a manner similar to accessing memory.
- the BIOS establishes a corresponding relationship between any one of the multiple buses and the hardware unit to allocate the any bus to the hardware unit.
- the BIOS establishes a corresponding relationship between any one of the multiple MMIO addresses and the hardware unit, and maps the hardware unit to the address space indicated by the any MMIO address, so as to realize the allocation of any MMIO address to the hardware unit. hardware unit.
- the BIOS will obtain the maximum resource amount corresponding to the slot connected to the hardware unit and the circuit board.
- a first amount of resources wherein the first amount of resources is an amount of resources pre-allocated by the circuit board to the hardware unit.
- the slot may be a card slot on a connector or a card slot on a circuit board. If the slot is a card slot on a connector, the BIOS reads the maximum amount of resources corresponding to the card slot from the connector.
- the BIOS accesses the connector, reads the maximum resource amount corresponding to the slot from the configuration information of the connector, and uses the read maximum resource amount corresponding to the slot as the first resource amount.
- the BIOS has stored the configuration information of the connector in the control register of the processor, and then the BIOS obtains the maximum amount of resources corresponding to the slot from the configuration information of the connector stored in the control register, and will obtain the maximum amount of resources.
- the maximum resource amount corresponding to the slot is determined as the first resource amount.
- the BIOS will regard the slot as an interface on the circuit board, query the configuration information of the interface from the configuration information of the circuit board, and obtain the interface from the configuration information of the interface.
- the corresponding maximum resource amount is determined as the first resource amount.
- the BIOS reads the second resource amount corresponding to the hardware unit from the hardware unit, and the second resource amount is the resource amount requested by the hardware unit.
- the BIOS after allocating a bus to the hardware unit, the BIOS accesses the configuration information stored at the first address in the configuration space of the hardware unit based on the bus allocated to the hardware unit. Read the second amount of resources from the configuration information stored at the first address.
- the configuration information stored at the first address is the configuration information of the hardware unit. If the hardware unit includes multiple hardware subunits, the configuration information stored at the first address is the multiple hardware subunits. Configuration information of the first hardware subunit within each hardware subunit. In a possible implementation, if the hardware unit includes multiple hardware sub-units, the BIOS does not have the right to access the configuration information of the hardware sub-units other than the first hardware sub-unit in the multiple hardware units. In this case, the configuration information stored at the first address may be the configuration information of the hardware unit, or it may be the configuration information of the first hardware subunit in the hardware unit.
- the BIOS reads the third resource amount according to the first The maximum amount of resources in the configuration information stored at the address and the first amount of resources are determined to determine whether the hardware unit includes a hardware sub-unit, such as the following steps 4031-4033.
- Step 4031 The BIOS reads the target resource amount from the first address of the hardware unit, and the target resource amount is the maximum resource amount corresponding to the resource in the configuration information stored at the first address.
- the target resource amount is the maximum resource amount corresponding to the hardware unit. If the hardware unit includes multiple hardware sub-units, the target resource amount is the maximum resource amount corresponding to the first hardware sub-unit among the multiple hardware sub-units. At this time, the BIOS does not know whether the hardware unit includes a hardware subunit, and it still needs to be determined by performing the following steps 4032 and 4033.
- Step 4032 If the first resource amount is greater than the target resource amount, the BIOS creates at least two logical interfaces for the hardware unit according to the multiple between the first resource amount and the target resource amount. The number is equal to this multiple, and each logical interface is used to mount one hardware subunit of this hardware unit.
- the hardware unit may or may not include hardware sub-units. If the hardware unit is an external device, the first amount of resources is the maximum amount of resources that the BIOS can allocate to the hardware unit. In order to determine whether the hardware unit includes a hardware subunit, the BIOS assumes that the hardware unit includes multiple hardware subunits, and each The maximum amount of resources corresponding to each hardware subunit is the target resource amount, then the BIOS creates at least two logical interfaces for the hardware unit based on the multiple between the first resource amount and the target resource amount. Subsequently, the BIOS can create at least two logical interfaces based on the at least two When a hardware subunit is mounted on a logical interface, determine whether the hardware unit includes a hardware subunit.
- At least two logical interfaces are generated according to a multiple between the first resource amount and the target resource amount, and a corresponding relationship between the at least two logical interfaces and the hardware unit is established, so as to The implementation creates at least two logical interfaces for this hardware unit.
- Step 4033 The BIOS performs a subunit mounting operation on the at least two logical interfaces respectively.
- the subunit mounting operation is used to mount hardware subunits for the logical interfaces.
- the BIOS establishes a link between the logical interface and the processor and configures the link so that the link can access the device mounted on the link to implement subunit mounting. operate. For example, steps 40331-40332 below.
- Step 40331 The BIOS establishes at least two first links based on the at least two logical interfaces. Each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface. .
- each first link is a link between the processor and the corresponding logical interface.
- a corresponding relationship between each logical interface and the second link is established, and the first link where each logical interface is located is indicated through the corresponding relationship.
- the second link is a link between the processor and the hardware unit.
- Step 40332 The BIOS establishes a mapping relationship between the at least two logical interfaces, the at least two second links, and at least two second addresses.
- Each second address is a hardware subunit mounted by the BIOS for the corresponding logical interface. assigned address.
- the second address is an MMIO address pre-allocated to the hardware subunit mounted on the corresponding logical interface.
- the BIOS For each of the at least two logical interfaces, the BIOS allocates an MMIO address to each logical interface, and the MMIO address allocated to each logical interface is used as a second address. After the BIOS is established and allocates MMIO addresses to each logical interface, the hardware subunits existing in the hardware unit can be mapped to the address space indicated by the MMIO address of each logical interface.
- the BIOS can also allocate a bus to each logical interface so that the hardware subunit corresponding to the logical interface can be subsequently accessed through the bus.
- the bus and MMIO addresses allocated for each logical interface are temporary resources allocated for each logical interface. It should be noted that the way the BIOS allocates temporary resources to each logical interface is the same as the way it allocates temporary resources to the hardware unit in step 4012.
- the embodiment of the present application describes the way the BIOS allocates temporary resources to each logical interface. No longer.
- the BIOS After the BIOS performs subunit mounting operations on the at least two logical interfaces, the BIOS queries whether each of the at least two logical interfaces successfully mounts the hardware subunit. If multiple of the at least two logical interfaces If all logical interfaces successfully mount the hardware subunit, then the hardware unit includes multiple hardware subunits. If only one logical interface among the at least two logical interfaces successfully mounts the hardware subunit, and the other logical interfaces fail to mount, It means that the hardware subunit mounted on this logical interface is the hardware unit itself, then the hardware unit does not include hardware subunits.
- the BIOS queries whether the logical interface successfully mounts the hardware subunit is introduced as follows:
- the BIOS determines the first link corresponding to each logical interface and the bus allocated to each logical interface based on the mapping relationship between the at least two logical interfaces, the at least two first links, and the at least two buses. For any one of the at least two logical interfaces, the BIOS accesses the first link corresponding to the logical interface through the MMIO address assigned to the logical interface, and accesses the configuration space of the hardware unit through the first link, If the identifier of the hardware subunit can be queried in the configuration space, the logical interface successfully mounts the hardware subunit. If the identifier of the hardware subunit is not found in the configuration space, it means that the logical interface fails to be mounted.
- the target resource amount read from the first address is the maximum resource amount corresponding to the hardware unit, and the target resource amount is As the second resource amount of the hardware unit.
- the target resource amount is the maximum resource amount corresponding to the first hardware sub-unit among the multiple hardware sub-units, and the BIOS uses the target resource amount as the first hardware sub-unit.
- the BIOS determines the mapping relationship between the at least two logical interfaces, the at least two first links, and the at least two buses. , determine the first link corresponding to the logical interface mounted on any hardware subunit and the second address of the bus assigned to the logical interface, and access the corresponding first link through the bus assigned to the logical interface.
- the first link accesses the configuration space in the hardware unit, reads the maximum resource amount corresponding to any hardware sub-unit from the configuration space, and uses the read maximum resource amount corresponding to any hardware sub-unit as This any hardware subunit corresponds to the third amount of resources.
- the above steps 4031-4033 are explained by taking as an example that if the hardware unit includes multiple hardware sub-units, the BIOS has the right to access the configuration information of the first hardware sub-unit among the multiple hardware units.
- the BIOS has the right to access the configuration information of each hardware sub-unit in the multiple hardware units.
- the configuration information stored at the first address in the hardware unit may include multiple hardware units. Configuration information of each hardware subunit in the unit.
- the BIOS can access the first address in the hardware unit, read the maximum amount of resources corresponding to each hardware subunit of the hardware unit from the first address, and divide the maximum amount of resources corresponding to each hardware subunit into As a third resource.
- the BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
- the resource is bandwidth. If the first resource amount is greater than or equal to the second resource amount, and the hardware unit does not include a sub-hardware unit, the BIOS allocates the first resource amount to the hardware unit, or allocates the first resource amount to the hardware unit. Allocate the second amount of resources so that the resources allocated to the hardware unit can meet the work requirements of the hardware unit.
- the BIOS allocates corresponding third resources to each hardware subunit of the hardware unit.
- the amount of resources enables each hardware subunit in the hardware unit to be allocated sufficient resources to meet the work requirements of each hardware unit.
- the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can Allocate resources, thereby saving BIOS maintenance costs.
- Figure 5 is a flow chart of a resource allocation method when the hardware unit is a processor provided by an embodiment of the present application.
- the circuit board is connected to the hardware unit.
- the hardware unit is used to provide hardware resources.
- the method is applied to the circuit board. BIOS, the method includes the following steps 501-505.
- the BIOS identifies the hardware unit connected to the circuit board.
- This step 501 is the same as the above-mentioned step 401. Here, this step 501 will not be described again in this embodiment of the present application.
- the BIOS uses the average resource amount of the resource as the first resource amount corresponding to the hardware unit.
- the average resource amount is the total resource amount divided by the total number of processors on the circuit board.
- the average resource amount is stored in the configuration information of the circuit board, the BIOS obtains the average resource amount from the configuration information, and uses the average resource amount as the first resource corresponding to the hardware unit quantity.
- the configuration information of the circuit board stores the total number of multiple processors on the circuit board and the total amount of resources, and the BIOS divides the total amount of resources by the total amount of resources. number, the average resource amount is obtained, and the average resource amount is used as the first resource amount of the hardware unit.
- the BIOS uses the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit.
- the fourth amount of resources is the total amount of resources pre-allocated by the BIOS for the hot-plug function of the target slot, and the target slot is the slot with the hot-plug function among the at least one slot.
- the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number.
- the first number is the total number of first external devices in the at least one external device.
- the second number is The total number of hardware subunits in the second external device of the at least one external device, the first external device is an external device that does not include hardware subunits of the at least one external device, and the second external device is the at least one external device.
- a device includes an external device that is a hardware subunit.
- each first external device occupies a bus during operation, and each hardware subunit in the second external device also occupies a bus during operation, when the resource is a bus, the subsequent at least one The total amount of resources requested by the external device during operation may reach the total number of first external devices (i.e., the first number) in the at least one external device and the total number of hardware subunits (i.e., the second external device) in the second external device.
- the sum of two numbers therefore, when the resource is a bus, the total amount of resources requested by at least one external device is equal to the sum of the first number and the second number.
- the BIOS will first request at least one bus.
- the hot plug function of the target slot in the slot reserves a fourth amount of bus resources. It can be understood that the fourth resource amount is the total resource amount requested by the target slot in the at least one slot, where there are one or more target slots in the at least one slot.
- the sum of the bus requested by the at least one external device and the bus requested by the target slot is the amount of resources requested by the hardware unit, then
- the second resource amount corresponding to the hardware unit is equal to the sum of the total resource amount requested by the at least one external device and the fourth resource amount.
- the BIOS Before executing this step 503, the BIOS first obtains the total resource amount and the fourth resource amount requested by the at least one external device, such as the processes shown in the following steps 5031-5034.
- Step 5031 The BIOS counts the total number of the first external devices in the at least one external device to obtain the first number.
- the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit.
- the BIOS starts counting the total number of first external devices from 0.
- the second resource amount corresponding to the external device connected to any interface if the second resource amount corresponding to the external device connected to any interface has been obtained, explain The hardware unit is mounted with external devices connected to any interface.
- the second resource amount corresponding to any external device is the maximum resource amount corresponding to any external device, it means that any external device does not include a hardware subunit, and any external device does not include a hardware subunit.
- One external device is a first external device, and the count of the total number of first external devices is incremented by 1. If the second resource amount corresponding to any external device includes multiple third resource amounts, it means that any external device includes multiple hardware subunits, and any external device is a second external device, then the first external device The total count remains unchanged.
- the BIOS identifies each external device connected to any interface. Each external device is successfully identified, indicating that the identification is successful. The external device is mounted on the hardware unit. The BIOS determines whether the external device includes a hardware subunit based on the maximum resource amount stored at the first address in the external device and the first resource amount corresponding to the external device. If the external device does not Including hardware subunits, the external device is the first external device, and the count of the total number of first external devices is incremented by 1. If the external device includes multiple hardware subunits, the external device is a second external device, and the total number of first external devices remains unchanged.
- the counting result of the total number of first external devices is the first number.
- Step 5032 The BIOS counts the total number of hardware subunits in the second external device in the at least one external device to obtain the second number.
- the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit.
- the BIOS starts counting the total number of second external devices from 0. For any interface among the queried at least one interface, if the second resource amount corresponding to each external device connected to any interface has been obtained , for any hardware unit connected to any interface, if the second resource amount corresponding to any external device is the maximum resource amount corresponding to any external device, it means that any external device does not include a hardware sub-unit, and the If any external device is the first external device, the total number of second external devices remains unchanged.
- any external device includes multiple hardware subunits, and any external device is a second external device, then the second external device The total number count is increased by the total number of hardware subunits in any hardware unit.
- each external device connected to any interface is identified.
- Each external device is successfully identified, and the BIOS determines the external device according to the external device.
- the maximum amount of resources stored at the first address and the first amount of resources corresponding to the external device are determined to determine whether the external device includes a hardware subunit. If the external device does not include a hardware subunit, the external device is the first external device, The count of the total number of second external devices remains unchanged. If the external device includes multiple hardware sub-units, the external device is a second external device, and the count of the total number of second external devices is increased by the total number of hardware sub-units in the hardware unit.
- the counting result of the total number of second external devices is the second number.
- BIOS identifying an external device is described in step 401 above.
- the BIOS determines the external device based on the maximum resource amount and the first resource amount in the configuration information stored at the first address in the external device.
- the process of whether the device includes hardware subunits is introduced in step 403.
- the embodiment of the present application describes the process of the BIOS identifying each external device connected to any interface in steps 5031 and 5032 and the BIOS based on The maximum resource amount stored at the first address in the external device and the first resource amount corresponding to the external device, and the process of determining whether the external device includes a hardware subunit will not be described again.
- the above description is based on the example of counting the total number of first external devices and the total number of hardware subunits.
- the BIOS may also perform step 5032 first and then perform step 5031.
- the embodiment of the present application does not include this step.
- the execution order of 5031-5032 is not limited.
- the BIOS may count the total number of first external devices and the total number of second external devices at the same time, or may not at the same time. For example, every time the BIOS determines that an external device is a first external device, the total number of first external devices is incremented by 1. Every time the BIOS determines that an external device is a second external device, the total number of second external devices is incremented by 1. The total number of hardware subunits in the external device.
- Step 5033 The BIOS uses the calculated sum of the first number and the second number as the total amount of resources requested by the at least one external device.
- the BIOS starts counting from 0 and queries the at least one external device in the manner in step 5031 or 5032 above. During the query process, each time the BIOS determines that an external device is the first external device, the count is incremented by 1. Each time the BIOS determines that an external device is the second external device, the count is incremented by the total number of hardware subunits in the external device. . After querying the at least one external device, the final counting result is the total amount of resources requested by the at least one external device.
- Step 5034 The BIOS determines the fourth resource amount according to the number of the target slots in the at least one slot.
- the BIOS counts the number of the target slots in the at least one slot and obtains a third number. Considering that when a single target slot is hot-plugged, the maximum resource amount of the bus requested by a single target slot is the fifth resource amount, then the BIOS uses the product of the fifth resource amount and the third number as the fourth resource amount. Among them, the value of the fifth resource amount may be different according to the slots in different application scenarios. Here, the embodiment of the present application does not limit the value range of the fifth resource amount.
- the third number is the number of the target slot in at least one slot.
- BIOS counting the number of target slots in the at least one slot is introduced below:
- the BIOS starts counting the number of target slots from 0. For any of the at least one slot, when the control register of the hardware unit stores the configuration of the connector information, the BIOS obtains the configuration information of the slot from the configuration information of the connector in the control register.
- the BIOS accesses the connector and reads the slot from the connector's configuration information. configuration information. If any slot is a card slot on a circuit board, then any slot is an interface on the circuit, and the BIOS obtains the configuration information of the slot from the configuration information of the circuit board.
- the configuration information of the slot After obtaining the configuration information of the slot, if the configuration information of the slot includes the target identifier, it means that the slot has the hot-swappable function and the slot is the target slot, and the count of the number of target slots is incremented. 1. If the configuration information of the slot does not include the target identifier, it means that the slot does not have the hot-swappable function and the slot is not a target slot, so the count of the number of target slots remains unchanged.
- the counting result of the number of target slots is the third number.
- the BIOS After determining the total resource amount requested by the at least one external device and the fourth resource amount, the BIOS uses the sum of the total resource amount requested by the at least one external device and the fourth resource amount as the second resource amount of the hardware unit.
- the BIOS can also first determine the fourth resource amount. The amount of resources, and then determine the total amount of resources requested by the at least one external device, or determine the fourth amount of resources and the total amount of resources requested by the at least one external device at the same time.
- the hot-swapping function of the interface occupying the bus. If other functions of the interface may also occupy the bus, the number of buses that may be occupied by other functions is added to the amount of resources requested by the interface. Similarly, If the external device has other functions that may also occupy the bus, the number of buses that other functions may occupy is added to the amount of resources requested by the external device.
- the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit.
- this step 5041 includes the following steps 5041 and 5042.
- Step 5041 For each external device in the at least one external device, the BIOS obtains the resource amount requested by each external device.
- the BIOS Since the sub-hardware devices of the external device may also request the MMIO address in subsequent work processes, for each external device in the at least one external device, if the external device does not include a hardware subunit, the BIOS will The maximum resource amount is used as the resource amount requested by the device. If the external device includes multiple hardware sub-units, the BIOS takes the sum of the maximum resource amounts corresponding to the multiple hardware sub-units as the resource amount requested by the device.
- the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit. For any one of the queried at least one interface, if the second resource amount corresponding to each external device connected to any interface is not currently obtained, then perform the following operations on each external device connected to any interface: Identification, each successful identification of an external device means that the external device mounts the hardware unit and obtains the second amount of resources corresponding to the external device. Alternatively, after identifying at least one external device connected to the at least one interface, the BIOS obtains the second resource amount corresponding to each external device in the at least one external device.
- the second resource amount corresponding to at least one external device connected to any interface it means that the identification of the at least one external device has been completed, and then each external device in the at least one external device that has been obtained before is obtained. The corresponding second resource amount.
- the second resource amount corresponding to the external device is equal to the maximum resource amount corresponding to the external device, and when the external device includes multiple hardware subunits, the corresponding second resource amount of the external device includes multiple third resource amounts, and each third resource amount is the maximum resource amount corresponding to a hardware subunit. Therefore, for each external device in the at least one external device, when the second resource corresponding to the external device is obtained After measuring, if the external device does not include a hardware subunit, the second resource amount corresponding to the external device is used as the resource amount requested by the external device. If the external device includes multiple hardware subunits, the second resource amount corresponding to the external device is used as the resource amount requested by the external device. The sum of a plurality of third resource amounts included in the second resource amount is used as the resource amount requested by the external device.
- Step 5042 The BIOS uses the sum of the resource amounts requested by the at least one external device as the second resource amount corresponding to the hardware unit.
- steps 503 and 504 are the process of obtaining the second resource amount corresponding to the hardware unit in the case of different resources, and steps 503 and 504 are parallel steps.
- the BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
- the redundant resources of the target processor are allocated to the hardware unit, so that the The hardware unit can be allocated the second amount of resources.
- the resource amount pre-allocated by the circuit board to the target processor is greater than the resource amount requested by the target processor. It can be understood that the target processor is a corresponding first resource amount among multiple processors that is greater than the corresponding resource amount. A processor with a second amount of resources.
- the difference between the second resource amount and the first resource amount is called the sixth resource amount.
- a sixth amount of resources among the amount of excess resources of the target processor is allocated to the hardware unit and a second amount of resources pre-allocated to the hardware unit, so that the hardware unit can The resources allocated to the second resource amount, wherein the excess resource amount of the target processor is the difference between the corresponding second resource amount and the corresponding first resource amount of the target processor.
- the first resource amount corresponding to the hardware unit is 64
- the second resource amount is 72
- the sixth resource amount is 8. If the excess resource amount of target processor 1 in the at least one target processor is greater than or equal to 8, then Allocate 8 resources of target processor 1 to this hardware unit.
- the BIOS will select at least one of the target processors from the plurality of target processors.
- a sixth amount of resources is reclaimed from excess resources of a target processor, and the reclaimed sixth amount of resources is allocated to the hardware unit. For example, the first resource amount corresponding to the hardware unit is 64, the second resource amount is 72, then the sixth resource amount is 8.
- the excess resource amount of the target processor 2 among the multiple target processors is 5, if the multiple target processors have The amount of excess resources of target processor 3 among the target processors is 3, then 5 resources of target processor 2 and 3 resources of target processor 3 are allocated to the hardware unit. Or, if the excess resources of the target processors 4-7 among the multiple target processors are all 3, allocate 2 resources of each of the target processors 4-7 to the hardware unit.
- the BIOS determines the maximum amount of resources that the hardware unit can allocate, where, the hardware unit The maximum amount of resources that can be allocated is less than the second amount of resources, turn off at least one third external device mounted on the hardware unit, and use the seventh amount of resources among the excess resources of the target processor in the plurality of processors. assigned to this hardware unit.
- the sum of the resource amounts requested by the at least one third external device is greater than or equal to a seventh resource amount
- the seventh resource amount is the sum of the second resource amount corresponding to the hardware unit and the maximum resource amount that the hardware unit can allocate. Difference.
- the BIOS closing at least one third external device mounted on the hardware unit includes the BIOS closing the link between the processor and each third external device.
- the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can Allocate resources, thereby saving BIOS maintenance costs.
- the first amount of resources is less than the second amount of resources, and there is a target processor in the plurality of processors. Allocate excess resources of the target processor to the hardware unit so that the hardware unit can allocate the second amount of resources. resources to meet the working requirements of the hardware unit so that the subsequent hardware unit can work normally.
- Figure 6 is a flow chart of another resource allocation method when the hardware unit is an external device provided by an embodiment of the present application.
- the circuit board is connected to the hardware unit.
- the circuit board includes a resource manager, and the resource manager is connected to the BIOS.
- the hardware unit is used to provide hardware resources.
- the method is applied to the BIOS of the circuit board. The method includes the following steps 601-603.
- the BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager, where the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
- the hardware unit is connected to the circuit board through a slot, and the BIOS reads the maximum amount of resources corresponding to the slot where the hardware unit is located through the resource manager, and reads the corresponding The maximum resource amount is used as the first resource amount corresponding to the hardware unit.
- the BIOS can access the card from the connector through the resource manager.
- the maximum resource amount corresponding to the slot is read, and the BIOS uses the maximum resource amount corresponding to the slot as the first resource amount corresponding to the hardware unit.
- the slot is a card slot on the circuit board, the hardware unit is connected to the slot, and the resource manager is connected to the BIOS and the slot respectively.
- the BIOS obtains the maximum amount of resources corresponding to the slot through the resource manager. , using the maximum amount of resources corresponding to the slot as the first amount of resources corresponding to the hardware unit.
- the BIOS reads the maximum amount of resources corresponding to the slot from the connector through the resource manager, including: the BIOS reads the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager by issuing instructions to the resource manager. quantity.
- the BIOS sends an instruction to the resource manager to read the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager, including any of the following methods C or D. .
- Method C The BIOS sends a first acquisition request to the resource manager.
- the resource manager receives the first acquisition request, reads the maximum resource amount corresponding to the slot where the hardware unit is located according to the first acquisition request, and sends it to the BIOS.
- the maximum amount of resources corresponding to the slot where the hardware unit is located is located.
- the BIOS receives the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager.
- the first acquisition request is used to indicate acquiring the maximum amount of resources corresponding to the slot where the hardware unit is located. If the BIOS has not recognized the hardware unit, the first acquisition request includes the identification of the interface to which the hardware unit is connected on the circuit board. If the BIOS has identified the hardware unit, the first acquisition request includes the identification of the hardware unit. and the identification of the interface on the circuit board to which the hardware unit is connected.
- the resource manager After the resource manager obtains the first acquisition request, it parses the first acquisition request. If the identifier of the interface is parsed from the first acquisition request and the identifier of the hardware unit is not parsed, the resource manager parses the The identifier of the interface identifies each external device connected to the interface. If it is recognized that the interface is connected to at least one external device, the resource manager reads the maximum resource amount corresponding to the slot where the at least one external device is located, and reads The obtained maximum amount of resources corresponding to the slot where the at least one external device is located is sent to the BIOS.
- the BIOS receives the maximum amount of resources corresponding to the slot where the at least one external device is located from the resource manager, and the BIOS sends the maximum amount of resources corresponding to the slot where the at least one external device is located. Any external device is used as the hardware unit, and the maximum resource amount corresponding to the slot where the hardware unit is located is used as the first resource amount corresponding to the hardware unit.
- the resource manager If the identifier of the interface and the identifier of the hardware unit are parsed out from the first acquisition request, the resource manager reads the maximum amount of resources corresponding to the slot where the hardware unit is located based on the identifier of the interface and the identifier of the hardware unit, and transfers the The maximum amount of resources corresponding to the slot is sent to the BIOS.
- the BIOS receives the maximum resource amount corresponding to the slot where the hardware unit is located from the resource manager, and uses the maximum resource amount corresponding to the slot where the hardware unit is located as the first resource amount corresponding to the hardware unit.
- the interface is also the slot where the external device is located, and the resource manager reads the interface from the configuration information of the interface. The corresponding maximum amount of resources. If the external device is connected to the interface through a connector, the resource manager reads the maximum amount of resources corresponding to the slot where the external device is located from the connector.
- the resource manager stores the maximum amount of resources corresponding to the slot of at least one hardware unit.
- the BIOS sends a first acquisition request to the resource manager.
- the resource manager receives the first acquisition request. According to the first acquisition The request will send the maximum amount of resources corresponding to the slot of the at least one hardware unit to the BIOS.
- the resource manager When the circuit board is powered on, the resource manager identifies each external device connected to the circuit board, identifies at least one external device that is successfully identified as at least one hardware unit connected to the circuit board, and reads the slot where the at least one hardware unit is located.
- the maximum amount of resources corresponding to a bit stores the read maximum amount of resources corresponding to the slot where at least one hardware unit is located.
- the process of the BIOS reading the slot where the hardware unit is located is related to the introduction in method C.
- the embodiment of the present application will not go into details about the process of the BIOS reading the maximum amount of resources corresponding to the slot where the at least one hardware unit is located. .
- the resource manager After the resource manager receives the first acquisition request, if the identifier of the hardware unit can be parsed from the first acquisition request, the resource manager obtains the identifier of the hardware unit from at least one stored hardware unit according to the identifier of the hardware unit. Obtain the maximum resource amount corresponding to the slot where the hardware unit is located among the maximum resource amounts corresponding to the slot where the hardware unit is located, and send the maximum resource amount corresponding to the slot where the hardware unit is located to the BIOS.
- the resource manager retrieves the stored slot of at least one hardware unit based on the identifier of the interface. From the maximum resource amount corresponding to the bit, obtain the maximum resource amount corresponding to the slot of each hardware unit connected to the interface, and send the maximum resource amount corresponding to the slot of each hardware unit connected to the interface to the BIOS. .
- the resource manager stores the maximum amount of resources corresponding to at least one slot of the hardware unit, when the BIOS uses method D to obtain the maximum amount of resources corresponding to the slot of the hardware unit, the resource manager receives the first After obtaining the request, there is no need to read the maximum amount of resources corresponding to the slot where the hardware unit is located, which reduces the time for reading the maximum amount of resources corresponding to the slot where the hardware unit is located, and improves the efficiency of the BIOS in obtaining the maximum amount of resources corresponding to the slot where the hardware unit is located. efficiency.
- the process of the resource manager identifying the external device connected to the interface is the same as the process of the BIOS identifying the external device in step 401.
- the embodiment of the present application does not require the resource manager to identify the external device connected to the interface. The process of identification will not be described again.
- the BIOS reads the second resource amount corresponding to the hardware unit from the hardware unit, where the second resource amount is the resource amount requested by the hardware unit.
- Step 602 is the same as step 403. This step 602 will not be described again in this embodiment of the present application.
- the BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
- Step 603 is the same as step 404. This step 603 will not be described again in this embodiment of the present application.
- the BIOS of the circuit board obtains the first resource amount corresponding to the hardware unit through the resource manager, reads the second resource amount corresponding to the hardware unit from the hardware unit, and based on the first resource amount and the second resource amount, The amount of resources automatically allocates resources to the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thus saving BIOS maintenance costs.
- the resource manager provides the BIOS with the first resource and the second resource amount corresponding to the hardware unit, thereby reducing the workload of the BIOS.
- the above embodiment shown in Figure 6 is explained by taking the BIOS to obtain the maximum resource amount of a slot of a hardware unit from the resource manager as an example.
- the BIOS can also obtain the maximum resource amount from the resource manager.
- the controller obtains the maximum resource amount of the slots where multiple hardware units are located.
- the following takes the schematic structural diagram of a circuit board provided by the embodiment of the present application shown in Figure 7 as an example, combined with the flow chart of allocating bandwidth for a riser card provided by the embodiment of the present application shown in Figure 8. In this case, Make the following introduction:
- the motherboard shown in Figure 7 includes a CPU, PCIE bridge, target chip running BIOS, CPLD, and 6 interfaces.
- the CPLD of the motherboard is the resource manager in the motherboard. 6
- the interfaces are interfaces 1-6 respectively.
- the CPLD in the motherboard obtains the configuration information of each external device connected to the circuit board, so as to actively send the first resource amount and the second resource amount corresponding to each external device to the BIOS, or to send the corresponding first resource amount and second resource amount of each external device to the BIOS according to the instructions of the BIOS.
- the first resource amount and the second resource amount Take interface 4 on the motherboard as an example.
- Interface 4 is connected to a connector.
- the connector is a riser card.
- the riser card includes a CPLD.
- the CPLD of the l connector is an MCU or an electrically erasable and programmable read-only memory (electrically erasable and programmable). read only memory, EEPROM).
- the CPLD of the mainboard After the mainboard is powered on, for each interface connected to the connector, the CPLD of the mainboard obtains the configuration information of the connector connected to it from each interface.
- the CPLD of the motherboard communicates with the CPLD of the riser card through interface 4, and communicates from the CPLD of the riser card to obtain the configuration information of the riser card.
- the configuration information includes the device type of the riser card, the card number of the riser card. The number of slots, hot-swappable support, and the maximum bandwidth supported by each card slot (that is, the maximum amount of resources corresponding to each card slot).
- the mainboard's CPLD After the mainboard's CPLD obtains the configuration information of the riser card, it parses the obtained configuration information of the riser card and stores the contents of the parsed configuration information.
- the motherboard's CPLD also determines the link corresponding to each card slot on the riser card (that is, the link between the processor and the card slot) through the corresponding relationship between the interface identifier and the link.
- the BIOS When the BIOS starts, the BIOS sends a second acquisition request to the CPLD of the motherboard.
- the second acquisition request instructs to obtain the configuration information of each connector mounted on each CPU on the motherboard, and obtain each connector mounted on each CPU in sequence. Configuration information for the connector.
- the CPLD of the motherboard Based on the second acquisition request, the CPLD of the motherboard sends the configuration information of each connector mounted on each CPU to the BIOS from the stored configuration information of each connector.
- the BIOS After the BIOS receives the configuration information of each connector mounted on each CPU, the BIOS can also obtain the maximum bandwidth (i.e. the first resource amount) supported by each card slot of the corresponding connector from the configuration information of each connector. ).
- the BIOS After receiving the configuration information of each connector mounted on each CPU, the BIOS establishes a link between the card slot of each connector and the corresponding CPU based on the configuration information of each connector mounted on each CPU. . Still taking the riser card shown in Figure 7 as an example, the BIOS configures the configuration information of the riser card to the control register of the corresponding CPU. The CPU establishes a link between the card slot of the riser card and the CPU based on the configuration information of the riser card. The link consists of a PCIE bridge between the CPU and interface 4.
- the BIOS reads the maximum bandwidth (i.e., the second resource amount) supported by the external device from the external device connected to each card slot through the link established for each card slot, so as to determine the maximum bandwidth supported by the external device according to the card on which each external device is located.
- the maximum bandwidth supported by the slot and the maximum bandwidth supported by each external device allocating bandwidth to each external device.
- the BIOS enables the hot swap capability and enables the hot swap interrupt.
- BIOS allocating bandwidth to an external device when the external device includes a pair of hardware sub-devices, refer to the flow chart of allocating bandwidth for a multi-chip PCIE device provided by an embodiment of the present application shown in Figure 9 .
- Each PCIE device corresponds to a PCIE bridge (that is, the link between the CPU and the PCIE device), and each chip in the multi-chip PCIE device is equivalent to a hardware subunit (that is, a logical PCIE device). If the multi-chip PCIE The device presents a physical plug-in card to the outside world.
- multiple PCIE bridges need to be configured. If only one PCIE bridge is configured, the device may be lost and the device cannot be used normally.
- a PCIE device with a bandwidth of X8 is inserted into an X8 card slot.
- the PCIE device contains 4 hardware subunits, and the maximum bandwidth of each hardware subunit is X2.
- the mainboard's CPLD obtains the maximum bandwidth X8 supported by the card slot where the PCIE device is located.
- the BIOS obtains the maximum bandwidth supported by the card slot from the motherboard's CPLD, it stores the configuration information of the card slot in the control register of the CPU.
- the CPU establishes a PCIE link between the CPU and the card slot based on the configuration information of the card slot. road.
- the BIOS queries the connection status of the PCIE link corresponding to the card slot. If the connection is successful, the BIOS enables the CPU's address translation function and allocates a temporary bus to the PCIE device (for example, the CPU bus range is 0-63, then allocate bus 1 to the PCIE device, but the PCIE device is used when the operating system is running The bus is not necessarily bus 1) and the temporary MMIO address. BIOS accesses the PCIE configuration space of the PCIE device through the temporary bus and temporary MMIO address, and obtains the supported bandwidth supported by the PCIE device. The BIOS compares the maximum bandwidth supported by the card slot where the PCIE device is located with the maximum bandwidth supported by the PCIE device. If the maximum bandwidth supported by the PCIE device is less than the maximum bandwidth supported by the card slot, the following automatic bandwidth adjustment process is triggered:
- the BIOS will split the bandwidth supported by the card slot into multiple parts, reconfigure the bandwidth for the PCIE device, and establish a link. If the corresponding link of the card slot is PCIE bridge 1, the BIOS creates logical interfaces 1-4, assigns PCIE bridges 1-4 to each logical interface in logical interfaces 1-4, and configures PCIE bridge 1-4 on the CPU side The bandwidth is all X2, and the link is re-initialized. The BIOS queries the link establishment status of PCIE bridge 2-4.
- the link establishment If the link establishment is successful, it reallocates temporary resources, reads the configuration space of the PCIE device, and queries whether the new link (such as PCIE bridge 2-4) is connected. Hardware subunit. If yes, it means that the PCIE includes 4 hardware sub-units. The maximum bandwidth supported by the PCIE device obtained previously is the maximum bandwidth supported by X2 for the first hardware sub-unit among the 4 hardware sub-units, then continue to start; if If not, the BIOS discards the X2 bandwidth configuration, restores the original X8 bandwidth configuration, and continues booting.
- the BIOS discards the X2 bandwidth configuration, restores the original X8 bandwidth configuration, and continues booting.
- Figure 10 is a flow chart of a resource allocation method of a circuit board when the hardware unit is a processor provided by another embodiment of the present application.
- the circuit board is connected to the hardware unit.
- the circuit board includes a resource manager, and the resource manager is connected to
- the BIOS is connected to the hardware unit.
- the hardware unit is used to provide hardware resources.
- the method is applied to the BIOS of the circuit board. The method includes the following steps 1001-1003.
- the BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager, where the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
- BIOS implements step 1001 in any of the following manners E or F.
- Method E The average resource amount of multiple resources is stored in the resource manager.
- the BIOS sends a third acquisition request to the resource manager.
- the resource manager receives the third acquisition request and sends the request to the BIOS according to the received third acquisition request.
- the average resource amount of at least one resource among the multiple resources is sent.
- the BIOS uses the average resource amount of the at least one resource as a first resource amount corresponding to the hardware unit.
- the multiple resources include bus and MMIO addresses
- the third acquisition request is used to indicate acquiring an average resource amount of at least one resource among the multiple resources.
- the third acquisition request includes an identification of at least one resource.
- the resource manager After the resource manager receives the third acquisition request, it parses the identifier of the at least one resource from the third acquisition request.
- the resource manager obtains the average value of the stored multiple resources based on the identifier of the at least one resource. In the resource amount, the average resource amount of the at least one resource is obtained, and the obtained average resource amount of the at least one resource is sent to the BIOS. If the BIOS receives the average resource amount of the at least one resource from the resource manager, the BIOS uses the average resource amount of the at least one resource as a first resource amount corresponding to the hardware unit.
- the resource manager sends the total resource amount of the at least one resource and the number of processors on the circuit board to the BIOS.
- the BIOS receives the total resource amount of the at least one resource, amount and the number of processors on the circuit board. For each resource in the at least one resource, the BIOS divides the total resource amount of the resource by the number of the processor to obtain the first resource corresponding to the hardware unit. quantity.
- Method F The resource manager stores the first resource amount corresponding to at least one processor.
- the BIOS sends a fourth acquisition request to the resource manager.
- the resource manager receives the fourth acquisition request.
- the BIOS receives the corresponding first resource amount of the hardware unit.
- each first resource amount of each hardware unit object is a resource amount of a bus or a resource amount of an MMIO address.
- the fourth acquisition request is used to indicate acquiring the first resource amount corresponding to the hardware unit.
- the fourth acquisition request includes an identification of the hardware unit.
- the resource manager After the resource manager receives the fourth acquisition request, it parses the identification of the hardware unit from the fourth acquisition request.
- the resource manager obtains the first resource corresponding to at least one processor from the storage according to the identification of the hardware unit. In the amount, obtain the first resource amount corresponding to the hardware unit, and send the obtained first resource amount corresponding to the hardware unit to the BIOS.
- the BIOS can receive the corresponding first resource amount of the hardware unit.
- the BIOS obtains the second resource amount corresponding to the hardware unit, where the second resource amount is the resource amount requested by the hardware unit.
- the BIOS takes the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit. Please refer to the above-mentioned step 502 for the process in which the BIOS uses the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit.
- the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit. Please refer to the above step 503 for the process in which the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit.
- the BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
- this step 1003 is the same as step 505.
- this embodiment of the present application will not elaborate on this step 1003.
- the BIOS of the circuit board obtains the first resource amount corresponding to the hardware unit through the resource manager, and obtains the second resource amount corresponding to the hardware unit. According to the first resource amount and the second resource amount, the hardware The unit automatically allocates resources. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thus saving BIOS maintenance costs.
- the resource manager provides the BIOS with the first resource and the second resource amount corresponding to the hardware unit, thereby reducing the workload of the BIOS.
- the hardware unit is taken as the CPU below, and refer to the flow chart of allocating a bus to the CPU provided by the embodiment of the present application shown in Figure 11.
- the BIOS sends a command to the CPLD (resource manager) of the mainboard (i.e., circuit board) to obtain the maximum number of CPUs supported by the mainboard. Based on the maximum number of CPUs obtained, the number of CPUs on the mainboard is Each CPU shares BUS resources equally. For example, if the motherboard of a 4P server has 4 CPUs and a total of 256 BUS numbers (i.e. 256 buses), the BIOS initially allocates 64 (256/4) BUS numbers to each CPU.
- the BIOS obtains the number of slots where the external device is located, the number of logical external devices in each slot (including each hardware subunit in the first external device and the second external device), and the link of each logical external device from the CPLD of the motherboard. logo.
- the process of obtaining the number of logical external devices in each slot includes: BIOS enables the address translation function of the CPU and allocates temporary bus and temporary MMIO addresses to the external devices connected to each slot. Then, the BIOS reads the configuration space of the external device connected to each slot to determine whether it is a valid external device (for example, read the manufacturer's identification and the external device's identification, if the manufacturer's identification and the external device's identification are If the values are not all FF, the external device is valid). If the external device is valid, it is determined whether the external device includes a hardware subunit. If it does not include a hardware subunit, then the number of external devices is accumulated. If a hardware subunit is included, the number of hardware subunits is accumulated.
- BIOS enables the address translation function of the CPU and allocates temporary bus and temporary MMIO addresses to the external devices connected to each slot. Then, the BIOS reads the configuration space of the external device connected to each slot to determine whether it is a valid external device (for example, read
- each logical device After scanning the external devices connected to the links corresponding to all slots, obtain the number of logical external devices mounted on each CPU, based on the number of buses that each logical device can subsequently occupy (for example, each logical device occupies 1- 2 BUS numbers), and then calculate the total number of BUS required by each CPU (that is, the second resource amount corresponding to each CPU).
- the BIOS compares the number of BUS allocated to each CPU and the total number of BUS required by each CPU, and makes a determination for each CPU of multiple CPUs. Taking the determination process for a CPU as an example, if the number of BUS allocated to the CPU is less than required The total number of BUS will trigger BUS adjustment, otherwise, the next CPU will be judged;
- BIOS when the BIOS adjusts the BUS resources, it records the CPU whose allocated BUS number is less than the total required BUS number, and the additional BUS number A required by the CPU. For example, CPU1 is allocated 64 BUS numbers by default, and CPU1 requires 72, then additional BUS numbers are required. 8 buses, that is, A is 8. Then record the number of BUS assigned by the CPU that is greater than the total number of required BUS and the number of excess BUS numbers B. For example, CPU2 is assigned 64 BUS numbers by default, and CPU2 requires 32, then there are 32 excess, and B is 32). If B is greater than A, directly take A BUS number from B and assign it to CPU1, and then reconfigure the CPU address mapping register to reassign this A BUS number to CPU1.
- B is less than A
- some BUS resources are allocated from other processors with excess BUS resources. If the excess resources of each CPU with excess BUS resources have been recycled, the BUS bus required by CPU1 is still insufficient, and the part mounted under CPU1 is closed. Logical external device.
- the BIOS first allocates resources to the external devices connected to the circuit board, and then allocates resources to the processor on the circuit board.
- the BIOS Referring to the flow chart of a resource allocation method for a circuit board provided by an embodiment of the present application shown in Figure 12, as shown in Figure 12, taking the circuit board as the main board and the resource manager as the CPLD of the main board as an example, the BIOS The CPLD sends an acquisition request (such as the first to fifth acquisition requests, or the sixth acquisition request with the first to fifth acquisition request functions) to obtain the configuration information of the mainboard.
- an acquisition request such as the first to fifth acquisition requests, or the sixth acquisition request with the first to fifth acquisition request functions
- the content of the configuration information stores the configuration information of each processor and the configuration information of the connector connected to each interface in the configuration information to the control register of the corresponding processor, so that the processor can adjust the configuration information of each processor in the control register and the connection information of the processor to establish links between each processor and each card slot of the connector.
- the BIOS accesses the configuration space of the external device and obtains the maximum bandwidth C corresponding to the external device from the configuration space.
- the BIOS compares the maximum bandwidth D supported by the card slot where the external device is located with the obtained maximum bandwidth C corresponding to the external device. If C is less than D, bandwidth adjustment is triggered.
- the external device includes multiple sub-hardware units, and the maximum bandwidth corresponding to each sub-hardware unit is C, set the maximum bandwidth supported by each sub-hardware unit in the external device to C in the control register of the CPU.
- the chain is rebuilt for each hardware subunit of the external device and temporary resources are reallocated for each hardware subunit.
- the BIOS calculates the total resources requested by each CPU-mounted device.
- the BIOS traverses all logical external devices mounted by each CPU, counts the total number of logical external devices mounted by each CPU and the sum of the MMIO addresses requested by the logical external devices, and uses the total number of logical external devices as the CPU request
- the total resource amount of the bus, the sum of the MMIO addresses requested by the logical external devices is taken as the total resource amount of the MMIO address requested by the CPU.
- the BIOS divides the maximum number of buses supported by the motherboard by the number of CPUs to obtain the average resource amount of the bus.
- the BIOS divides the MMIO address size supported by the motherboard by the number of CPUs to obtain the average resource amount of the MMIO address.
- the BIOS compares the total amount of resources requested by the CPU-mounted device with the average amount of resources.
- the BIOS compares the total resources of the bus requested by each CPU and the average resource amount of the bus. If any CPU has insufficient resources, that is, the average resource amount of the bus is less than the total resource amount of the bus requested by the CPU, Then trigger resource adjustment between CPUs. After the adjustment is completed, the BIOS initializes the configuration of memory, external devices, etc., and the BIOS continues to boot. For example, after the adjustment is completed, the address mapping register of the CPU where resource adjustment occurs, allocates address resources for external devices, and then the BIOS continues to boot.
- Figure 13 is a schematic structural diagram of a resource allocation device provided by an embodiment of the present application.
- the device 1300 shown in Figure 13 is a circuit board.
- the circuit board is connected to a hardware unit 1301.
- the hardware unit 1301 is used for To provide hardware resources, the device 1300 includes a resource allocation unit 1302, and the resource allocation unit 1302 is used for:
- resources are allocated to the hardware unit 1301 according to a first resource amount and a second resource amount, where the first resource amount is that the circuit board is the hardware unit 1301 pre-allocated resource amount, the second resource amount is the resource amount requested by the hardware unit 1301.
- the circuit board is located in a computer device
- the hardware unit 1301 is an external device of the computer device
- the hardware unit 1301 is connected to the circuit board through a slot
- the first The amount of resources is equal to the maximum amount of resources corresponding to the slot.
- the circuit board is connected to a connector
- the slot is a card slot on the connector
- the hardware unit 1301 is connected to the slot
- the resource allocation unit 1302 Also used for:
- the maximum resource amount corresponding to the slot is read from the connector, and the read maximum resource amount is used as the first resource amount.
- the device 1300 further includes a resource manager, which is connected to the BIOS and the connector respectively.
- the resource allocation unit 1302 is also used to:
- the maximum amount of resources corresponding to the slot is read from the connector.
- the slot is a card slot on the circuit board
- the hardware unit 1301 is connected to the slot
- the device 1300 further includes a resource manager.
- the resource manager Connected to the BIOS and the slot respectively, the resource allocation unit 1302 is also used to:
- the resource manager is used to obtain the maximum amount of resources corresponding to the slot, and the obtained maximum amount of resources is used as the first amount of resources.
- the hardware unit 1301 includes multiple hardware sub-units
- the second resource amount includes a plurality of third resource amounts
- each third resource amount corresponds to the multiple hardware sub-units respectively.
- each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit.
- the resource allocation unit 1302 is also used to:
- the plurality of third resource amounts are read from the hardware unit 1301 through the BIOS.
- the hardware unit 1301 includes multiple hardware sub-units
- the second resource amount includes a plurality of third resource amounts
- each third resource amount corresponds to the multiple hardware sub-units respectively.
- each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit.
- the resource allocation unit 1302 is also used to:
- the BIOS allocates the resources corresponding to the third resource amount to each hardware subunit.
- the resource allocation unit 1302 is also used to:
- the hardware Unit 1301 creates at least two logical interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware subunit of the hardware unit 1301;
- BIOS Through the BIOS, perform a subunit mounting operation on the at least two logical interfaces respectively, and the subunit mounting operation is used to mount a hardware subunit for the logical interface;
- the hardware unit 1301 includes multiple hardware subunits.
- the device 1300 further includes a processor, and the resource allocation unit 1302 is further configured to:
- each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;
- each second address is a link of the BIOS for the corresponding logical interface.
- the hardware unit 1301 is a high-speed serial computer extension bus standard PCIE device, and the resource is bandwidth.
- the device 1300 includes multiple processors, the hardware unit 1301 is any processor among the multiple processors, and the first resource amount is equal to the total amount of the resources. The amount of resources is divided by the total number of the multiple processors.
- the circuit board is located in a computer device, the hardware unit 1301 is mounted with at least one external device of the computer device, and the circuit board is connected to the at least one external device through at least one slot.
- Device connection ;
- the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount.
- the fourth resource amount is the hot plug of the target slot of the BIOS.
- the total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
- the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, where the first number is the first external number of the at least one external device.
- the total number of devices, the second number is the total number of hardware subunits in the second external device in the at least one external device, the first external device is the at least one external device that does not include hardware
- An external device of the subunit, the second external device is an external device including a hardware subunit among the at least one external device
- the resource allocation unit 1302 is also used to:
- BIOS count the total number of the first external devices in the at least one external device to obtain the first number
- BIOS count the total number of hardware subunits in the second external device in the at least one external device to obtain the second number
- the calculated sum of the first number and the second number is used as the total amount of resources requested by the at least one external device
- the sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
- the circuit board is located in a computer device, and the hardware unit 1301 is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the third The second resource amount is equal to the sum of the resource amounts requested by the at least one external device.
- the resource allocation unit 1302 is also used to:
- the maximum resource amount corresponding to the external device is used as the resource amount requested by the external device through the BIOS, if The external device includes multiple hardware sub-units, and the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the external device;
- the sum of resource amounts requested by the at least one external device is used as the second resource amount.
- the resource allocation unit 1302 is also used to:
- the BIOS If the first resource amount is stored in the BIOS, obtain the stored first resource amount through the BIOS;
- the resource manager is used to obtain the first amount of resources through the BIOS, where the resource manager is connected to the BIOS, the hardware unit 1301 and The at least one external device is connected.
- the resource allocation unit 1302 is also used to:
- the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit through the BIOS. 1301, enabling the hardware unit 1301 to allocate the resources of the second amount of resources;
- the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
- the resource manager is a complex programmable logic device or a microcontroller.
- the resource allocation unit 1302 is a target chip.
- the device 1300 corresponds to the circuit board in the above method embodiment, and the modules in the device 1300 and the above other operations and/or functions are respectively implemented to implement various steps and methods implemented by the circuit board in the method embodiment. Specific details Please refer to the above method embodiments, which will not be described again for the sake of brevity.
- the device 1300 allocates resources to hardware units, only the division of the above functional modules is used as an example. In actual applications, the above function allocation can be completed by different functional modules as needed, that is, the internal structure of the device 1300 Divide it into different functional modules to complete all or part of the functions described above.
- the device 1300 provided in the above embodiments and the above method embodiments belong to the same concept. Please refer to the above method embodiments for its specific implementation process, which will not be described again here.
- the device 1300 may be equivalent to the circuit board 100, and the target chip in the circuit board is equivalent to the resource allocation unit 1302.
- the device 1300 is configured as a circuit board, and the BIOS of the circuit board automatically allocates resources to the hardware units based on the amount of resources pre-allocated by the circuit board for the hardware units and the amount of resources requested by the hardware units. Therefore, there is no need to upgrade the BIOS, and the BIOS can provide resources for the hardware units. Allocate resources, thereby saving BIOS maintenance costs.
- Figure 14 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
- the circuit board 1400 includes a resource allocation unit 1401.
- the resource allocation unit loads at least one program code from the memory 1402 from 1401.
- the program code is executed by the resource allocation unit 1401 to implement the above resource allocation method.
- the memory 1402 and the resource allocation unit 1401 may be connected through a bus or a signal line.
- the memory 1402 is located inside the circuit board 1400 or outside the circuit board 1400. If the memory 1402 is located outside the circuit board 1400, the memory 1402 is an external device of the circuit board 1400.
- the circuit board 1400 further includes a hardware unit 1403. There is at least one hardware unit 1403. Each hardware unit 1403 is a processor or an external device.
- the resource allocation unit executes at least one program code to implement Through the above resource allocation method, the resources of the circuit board 1400 are allocated to the hardware unit 1403.
- a computer-readable storage medium such as a memory including program code.
- the program code can be executed by a resource allocation unit in the circuit board to complete the resource allocation method in the above embodiment.
- the computer-readable storage medium is a non-transitory computer-readable storage medium, such as read-only memory (ROM), random access memory (RAM), compact disc read-only memory, CD-ROM), tapes, floppy disks and optical data storage devices, etc.
- Embodiments of the present application also provide a computer program product.
- the computer program product includes program code.
- the program code is stored in a computer-readable storage medium.
- the resource allocation unit in the circuit board reads the program from the computer-readable storage medium. code, the resource allocation unit executes the program code, so that the resource allocation unit implements the above resource allocation method.
- the information including but not limited to user equipment information, user personal information, etc.
- data including but not limited to data used for analysis, stored data, displayed data, etc.
- signals involved in this application All are authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions.
- the first resource amount and the second resource amount involved in this application are both obtained with full authorization.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
The present application relates to the field of computer technology, and discloses a resource allocation method and apparatus of a circuit board, a circuit board, and a storage medium. According to the method, a BIOS of a circuit board automatically allocates resources to a hardware unit according to the quantity of resources pre-allocated by the circuit board for the hardware unit and the quantity of resources requested by the hardware unit. Thus, a BIOS can allocate resources to hardware units without updating the BIOS, thereby reducing the maintenance cost of the BIOS.
Description
本申请要求于2022年05月19日提交的申请号为202210555101.X、发明名称为“电路板的资源分配方法、装置、电路板以及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with application number 202210555101. This reference is incorporated into this application.
本申请涉及计算机技术领域,特别涉及一种电路板的资源分配方法、装置、电路板以及存储介质。The present application relates to the field of computer technology, and in particular to a circuit board resource allocation method, device, circuit board and storage medium.
计算机设备包括电路板,计算机设备还能够与外部设备连接,电路板的基本输入输出系统(basic input output system,BIOS)在识别到计算机设备所连接的外部设备时,将外部设备作为该计算机设备的硬件单元,为识别出的外部设备分配电路板所提供的资源。Computer equipment includes circuit boards. Computer equipment can also be connected to external equipment. When the basic input output system (BIOS) of the circuit board recognizes the external equipment connected to the computer equipment, it uses the external equipment as the computer equipment. The hardware unit allocates the resources provided by the circuit board to the identified external devices.
目前,电路板的资源分配过程包括:BIOS通过白名单,记录计算机设备所连接的各个外部设备的标识,在启动过程中,BIOS根据白名单中记录的外部设备的标识,对计算设备当前所连接的外部设备进行识别,并为识别成功的外部设备分配资源。Currently, the circuit board resource allocation process includes: the BIOS records the identification of each external device connected to the computer device through a whitelist. During the startup process, the BIOS records the identification of the external device currently connected to the computing device based on the identification recorded in the whitelist. Identify external devices and allocate resources to external devices that are successfully identified.
对于上述资源的分配过程,一旦计算机设备接入新的外部设备,则需要更新白名单,且还需要对BIOS进行升级,以便升级后的BIOS能够根据更新后的白名单,识别出新接入的外部设备,将新接入的外部设备作为计算机设备的硬件单元。相应地,如果计算机设备频繁接入新的外部设备,则需要不断对的BIOS进行升级,增加了BIOS的维护成本。Regarding the above resource allocation process, once a computer device is connected to a new external device, the whitelist needs to be updated, and the BIOS also needs to be upgraded so that the upgraded BIOS can identify the newly connected device based on the updated whitelist. External device, the newly connected external device is used as the hardware unit of the computer device. Correspondingly, if the computer device frequently connects to new external devices, the BIOS needs to be continuously upgraded, which increases the maintenance cost of the BIOS.
发明内容Contents of the invention
本申请实施例提供了一种电路板的资源分配方法、装置、电路板以及存储介质,能够降低BIOS的维护成本。该技术方案如下:Embodiments of the present application provide a circuit board resource allocation method, device, circuit board, and storage medium, which can reduce BIOS maintenance costs. The technical solution is as follows:
第一方面,提供了一种电路板的资源分配方法,所述电路板与硬件单元连接,所述硬件单元用于提供硬件资源,所述方法应用于所述电路板的基本输入输出系统BIOS,所述方法包括:In a first aspect, a resource allocation method for a circuit board is provided. The circuit board is connected to a hardware unit. The hardware unit is used to provide hardware resources. The method is applied to the basic input and output system BIOS of the circuit board. The methods include:
根据第一资源量与第二资源量,为所述硬件单元分配资源,其中,所述第一资源量是所述电路板为所述硬件单元预分配的资源量,所述第二资源量是所述硬件单元请求的资源量。Allocate resources to the hardware unit according to the first resource amount and the second resource amount, wherein the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit, and the second resource amount is The amount of resources requested by the hardware unit.
本方法通过电路板的BIOS根据电路板为硬件单元预分配的资源量以及硬件单元请求的资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。This method uses the BIOS of the circuit board to automatically allocate resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thereby saving money. Reduce BIOS maintenance costs.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元为所述计算机设备的外部设备,所述硬件单元通过槽位与所述电路板连接,所述第一资源量等于所述槽位对应的最大资源量。In a possible implementation, the circuit board is located in a computer device, the hardware unit is an external device of the computer device, the hardware unit is connected to the circuit board through a slot, and the first resource amount Equal to the maximum amount of resources corresponding to the slot.
在一种可能的实现方式中,所述电路板与连接器连接,所述槽位为所述连接器上的卡槽, 所述硬件单元与所述槽位连接,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, the circuit board is connected to a connector, the slot is a card slot on the connector, the hardware unit is connected to the slot, and the With the second amount of resources, before allocating resources to the hardware unit, the method further includes:
从所述连接器读取所述槽位对应的最大资源量,将读取到的所述最大资源量作为所述第一资源量。Read the maximum resource amount corresponding to the slot from the connector, and use the read maximum resource amount as the first resource amount.
在一种可能的实现方式中,所述电路板还包括资源管理器,所述资源管理器分别与所述BIOS以及所述连接器连接,所述从所述连接器读取所述槽位对应的最大资源量包括:In a possible implementation, the circuit board further includes a resource manager, the resource manager is connected to the BIOS and the connector respectively, and the slot corresponding data is read from the connector. The maximum amount of resources includes:
通过所述资源管理器,从所述连接器读取所述槽位对应的最大资源量。Through the resource manager, the maximum amount of resources corresponding to the slot is read from the connector.
在一种可能的实现方式中,所述槽位为所述电路板上的卡槽,所述硬件单元与所述槽位连接,所述电路板还包括资源管理器,所述资源管理器分别与所述BIOS以及所述槽位连接,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, the slot is a card slot on the circuit board, the hardware unit is connected to the slot, the circuit board further includes a resource manager, and the resource managers respectively Connected to the BIOS and the slot, before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
通过所述资源管理器,获取所述槽位对应的最大资源量,将获取到的所述最大资源量作为所述第一资源量。Through the resource manager, the maximum amount of resources corresponding to the slot is obtained, and the obtained maximum amount of resources is used as the first amount of resources.
在一种可能的实现方式中,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to one of the plurality of hardware sub-units. A hardware subunit, each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit, and before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further include:
从所述硬件单元读取所述多个第三资源量。The plurality of third resource amounts are read from the hardware unit.
在一种可能的实现方式中,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述根据第一资源量与第二资源量,为所述硬件单元分配资源包括:In a possible implementation, the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to one of the plurality of hardware sub-units. A hardware subunit, each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit, and allocating resources to the hardware unit according to the first resource amount and the second resource amount includes:
若所述第一资源量大于或等于所述多个第三资源量之和,为每个硬件子单元分别分配对应第三资源量的所述资源。If the first resource amount is greater than or equal to the sum of the plurality of third resource amounts, the resources corresponding to the third resource amount are allocated to each hardware subunit.
在一种可能的实现方式中,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
若所述第一资源量大于所述硬件单元中第一地址存储的目标资源量,根据所述第一资源量与所述目标资源量之间的倍数,为所述硬件单元创建至少两个逻辑接口,所述至少两个逻辑接口的个数等于所述倍数,每个逻辑接口用于挂载所述硬件单元的一个硬件子单元;If the first resource amount is greater than the target resource amount stored at the first address in the hardware unit, create at least two logical resources for the hardware unit according to the multiple between the first resource amount and the target resource amount. Interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware sub-unit of the hardware unit;
对所述至少两个逻辑接口分别进行子单元挂载操作,所述子单元挂载操作用于为所述逻辑接口挂载硬件子单元;Perform a subunit mounting operation on the at least two logical interfaces respectively, and the subunit mounting operation is used to mount a hardware subunit for the logical interface;
若所述至少两个逻辑接口中的多个逻辑接口均成功挂载硬件子单元,则所述硬件单元包括多个硬件子单元。If multiple logical interfaces among the at least two logical interfaces successfully mount the hardware subunit, the hardware unit includes multiple hardware subunits.
在一种可能的实现方式中,所述电路板还包括处理器,所述对所述至少两个逻辑接口分别进行子单元挂载操作包括:In a possible implementation, the circuit board further includes a processor, and performing a subunit mounting operation on the at least two logical interfaces includes:
建立至少两个第一链路,每个第一链路对应一个逻辑接口,每个第一链路用于所述处理器与对应逻辑接口之间的通信;Establish at least two first links, each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;
建立所述至少两个逻辑接口、所述至少两个第一链路以及至少两个第二地址之间的映射关系,每个第二地址是所述BIOS为对应逻辑接口挂载的硬件子单元分配的地址。Establish a mapping relationship between the at least two logical interfaces, the at least two first links, and at least two second addresses, where each second address is a hardware subunit mounted by the BIOS for the corresponding logical interface. assigned address.
在一种可能的实现方式中,所述硬件单元为高速串行计算机扩展总线标准PCIE设备,所 述资源为带宽。In a possible implementation, the hardware unit is a high-speed serial computer expansion bus standard PCIE device, and the resource is bandwidth.
在一种可能的实现方式中,所述电路板包括多个处理器,所述硬件单元为所述多个处理器中的任一处理器,所述第一资源量等于所述资源的总资源量除以所述多个处理器的总个数。In a possible implementation, the circuit board includes multiple processors, the hardware unit is any processor among the multiple processors, and the first resource amount is equal to the total resources of the resources. The amount is divided by the total number of the multiple processors.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,所述电路板通过至少一个槽位与所述至少一个外部设备连接;In a possible implementation, the circuit board is located in a computer device, the hardware unit is mounted with at least one external device of the computer device, and the circuit board is connected to the at least one external device through at least one slot. connect;
若所述资源为总线,所述第二资源量等于所述至少一个外部设备请求的总资源量与第四资源量之和,所述第四资源量是所述BIOS为目标槽位的热插拔功能预分配的总资源量,所述目标槽位为所述至少一个槽位中具有热插拔功能的槽位。If the resource is a bus, the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount. The fourth resource amount is the hot plug of the target slot of the BIOS. The total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
在一种可能的实现方式中,所述至少一个外部设备请求的总资源量等于第一个数与第二个数之和,所述第一个数为所述至少一个外部设备中第一外部设备的总个数,所述第二个数为所述至少一个外部设备中第二外部设备内硬件子单元的总个数,所述第一外部设备为所述至少一个外部设备中不包括硬件子单元的外部设备,所述第二外部设备为所述至少一个外部设备中包括硬件子单元的外部设备,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, where the first number is the first external number of the at least one external device. The total number of devices, the second number is the total number of hardware subunits in the second external device in the at least one external device, the first external device is the at least one external device that does not include hardware An external device of a subunit, the second external device is an external device including a hardware subunit in the at least one external device, and before allocating resources to the hardware unit according to the first resource amount and the second resource amount, The method also includes:
统计所述至少一个外部设备中所述第一外部设备的总个数,得到所述第一个数;Count the total number of the first external devices in the at least one external device to obtain the first number;
统计所述至少一个外部设备中所述第二外部设备内硬件子单元的总个数,得到所述第二个数;Count the total number of hardware subunits in the second external device in the at least one external device to obtain the second number;
将统计出的所述第一个数与所述第二个数之和作为所述至少一个外部设备请求的总资源量;The calculated sum of the first number and the second number is used as the total resource amount requested by the at least one external device;
根据所述至少一个槽位中所述目标槽位的个数,确定所述第四资源量;Determine the fourth resource amount according to the number of the target slots in the at least one slot;
将所述至少一个外部设备请求的总资源量与所述第四资源量之和作为所述第二资源量。The sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,若所述资源为内存映射输入/输出地址,所述第二资源量等于所述至少一个外部设备请求的资源量之和。In a possible implementation, the circuit board is located in a computer device, and the hardware unit is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the second The resource amount is equal to the sum of the resource amounts requested by the at least one external device.
在一种可能的实现方式中,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
对于所述至少一个外部设备中每个外部设备,若所述外部设备不包括硬件子单元,将所述外部设备对应的最大资源量作为所述部设备请求的资源量,若所述外部设备包括多个硬件子单元,将所述多个硬件子单元对应的最大资源量之和作为所述部设备请求的资源量;For each external device in the at least one external device, if the external device does not include a hardware subunit, the maximum resource amount corresponding to the external device is used as the resource amount requested by the sub-device. If the external device includes For multiple hardware sub-units, the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the device;
将所述至少一个外部设备请求的资源量之和作为所述第二资源量。The sum of resource amounts requested by the at least one external device is used as the second resource amount.
在一种可能的实现方式中,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:In a possible implementation, before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:
若所述BIOS中存储有所述第一资源量,获取存储的所述第一资源量;If the first resource amount is stored in the BIOS, obtain the stored first resource amount;
若所述电路板还包括资源管理器,通过所述资源管理器,获取所述第一资源量,其中,所述资源管理器分别与所述BIOS、所述硬件单元以及所述至少一个外部设备连接。If the circuit board further includes a resource manager, obtain the first amount of resources through the resource manager, wherein the resource manager is connected to the BIOS, the hardware unit and the at least one external device respectively. connect.
在一种可能的实现方式中,所述根据第一资源量与第二资源量,为所述硬件单元分配资源包括:In a possible implementation, allocating resources to the hardware unit according to the first resource amount and the second resource amount includes:
若所述第一资源量小于所述第二资源量,且所述多个处理器中存在目标处理器,将所述目标处理器多余的所述资源分配给所述硬件单元,使得所述硬件单元能够分配到所述第二资 源量的所述资源;If the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit, so that the hardware The unit is capable of being allocated said resources of said second amount of resources;
其中,所述电路板为所述目标处理器预分配的所述资源的资源量大于所述目标处理器请求的资源量。Wherein, the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
在一种可能的实现方式中,所述资源管理器为复杂可编程逻辑器件或者微控制器。In a possible implementation, the resource manager is a complex programmable logic device or a microcontroller.
第二方面,提供了一种资源分配装置,用于执行上述资源分配方法。具体地,该资源分配装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的资源分配方法的功能模块。In a second aspect, a resource allocation device is provided for executing the above resource allocation method. Specifically, the resource allocation device includes a functional module for executing the resource allocation method provided by the above-mentioned first aspect or any optional manner of the above-mentioned first aspect.
第三方面,提供一种电路板,该电路板包括资源分配单元,所述资源分配单元用于从存储器加载执行至少一条程序代码,使得资源分配单元执行以实现如上述资源分配方法所执行的操作。In a third aspect, a circuit board is provided, which includes a resource allocation unit configured to load and execute at least one program code from a memory, so that the resource allocation unit executes to implement operations performed by the above resource allocation method. .
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由电路板中的资源分配单元读取,以使资源分配单元执行如上述资源分配方法所执行的操作。In a fourth aspect, a computer-readable storage medium is provided. At least one program code is stored in the storage medium. The program code is read by the resource allocation unit in the circuit board, so that the resource allocation unit executes the above resource allocation method. The operation performed.
第五方面,提供了一种计算机程序产品,该计算机程序产品包括程序代码,该程序代码存储在计算机可读存储介质中,电路板中的资源分配单元从计算机可读存储介质读取该程序代码,资源分配单元执行该程序代码,使得该资源分配单元执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。In a fifth aspect, a computer program product is provided. The computer program product includes program code. The program code is stored in a computer-readable storage medium. The resource allocation unit in the circuit board reads the program code from the computer-readable storage medium. , the resource allocation unit executes the program code, so that the resource allocation unit executes the method provided in the above-mentioned first aspect or various optional implementations of the first aspect.
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式Based on the implementation methods provided in the above aspects, this application can also be further combined to provide more implementation methods.
图1是本申请实施例提供的一种电路板的结构示意图;Figure 1 is a schematic structural diagram of a circuit board provided by an embodiment of the present application;
图2是本申请实施例提供的另一种电路板的结构示意图;Figure 2 is a schematic structural diagram of another circuit board provided by an embodiment of the present application;
图3是本申请实施提供的一种电路板的资源分配方法的流程图;Figure 3 is a flow chart of a circuit board resource allocation method provided by this application;
图4是本申请实施例提供的一种硬件单元为外部设备时的资源分配方法的流程图;Figure 4 is a flow chart of a resource allocation method when the hardware unit is an external device provided by an embodiment of the present application;
图5是本申请实施例提供的一种硬件单元为处理器时的资源分配方法的流程图;Figure 5 is a flow chart of a resource allocation method when the hardware unit is a processor provided by an embodiment of the present application;
图6是本申请实施例提供的另一种硬件单元为外部设备时的资源分配方法的流程图;Figure 6 is a flow chart of another resource allocation method when the hardware unit is an external device provided by an embodiment of the present application;
图7是本申请实施例提供的一种电路板的结构示意图;Figure 7 is a schematic structural diagram of a circuit board provided by an embodiment of the present application;
图8是本申请实施例提供的一种为Riser卡分配带宽的流程图;Figure 8 is a flow chart for allocating bandwidth to a riser card provided by an embodiment of the present application;
图9是本申请实施例提供的一种为多芯片的PCIE设备分配带宽的流程图;Figure 9 is a flow chart for allocating bandwidth to multi-chip PCIE devices provided by an embodiment of the present application;
图10是本申请实施例提供的另一种硬件单元为处理器时的资源分配方法的流程图;Figure 10 is a flow chart of another resource allocation method when the hardware unit is a processor provided by an embodiment of the present application;
图11是本申请实施例提供的一种为CPU分配总线的流程图;Figure 11 is a flow chart for allocating a bus to a CPU provided by an embodiment of the present application;
图12是本申请实施例提供的一种电路板的资源分配方法的流程图;Figure 12 is a flow chart of a circuit board resource allocation method provided by an embodiment of the present application;
图13是本申请实施例提供的一种资源分配装置的结构示意图;Figure 13 is a schematic structural diagram of a resource allocation device provided by an embodiment of the present application;
图14是本申请实施例提供的一种电路板的结构示意图。Figure 14 is a schematic structural diagram of a circuit board provided by an embodiment of the present application.
为了便于了解,首先对本申请实施例中涉及的部分名词进行如下解释:In order to facilitate understanding, some terms involved in the embodiments of this application are first explained as follows:
电路板:提供资源,为识别到的硬件单元自动分配其提供的资源,以便通过分配的资源 与硬件单元进行通信,其中,电路板例如主板。提供的资源包括带宽、总线(bus)以及内存映射输入/输出(memory mapped input output,MMIO)地址中的至少一种。Circuit board: Provides resources, and automatically allocates the resources provided by the identified hardware unit to communicate with the hardware unit through the allocated resources, where the circuit board is such as the motherboard. The provided resources include at least one of bandwidth, bus, and memory mapped input/output (MMIO) address.
硬件单元:用于提供硬件资源。其中,硬件资源包括计算资源、存储资源以及其他资源中的至少一种。Hardware unit: used to provide hardware resources. The hardware resources include at least one of computing resources, storage resources and other resources.
资源量:一种资源的数量,例如带宽的大小、总线的数量或者MMIO地址的大小等。Resource amount: The amount of a resource, such as the size of bandwidth, the number of buses, or the size of MMIO addresses, etc.
第一资源量:电路板为硬件单元预分配的资源量,其中,预分配的资源量是电路板为硬件单元预分配资源时硬件单元分配到的资源数量。本申请中的预分配是对资源的使用所进行的初步规划,分配的是资源的数量。在一种可能的实现方式中,预分配通过划分电路板提供的资源来实现。以该资源为总线为例,电路板提供100个总线,电路板连接10个硬件单元,将100个总线平均划分成10份,则电路板为每个硬件单元预分配的资源量均为10。在另一种可能的实现方式中,预分配通过为硬件单元预设资源量来实现。例如,为电路板所连接的每个硬件单元分别预设一个资源量,以实现预分配,其中,为硬件单元预设的资源量也即是预分配的资源量。预设资源量可能是用户通过在电路板中记录资源量来实现,例如,对于能够为电路板提供硬件资源的至少一个硬件单元,用户在电路板中预先存储该至少一个硬件单元与至少一个第一资源量之间对应关系,每个硬件单元对应一个第一资源量,通过该对应关系指示将第一资源量的资源预分配给对应的硬件单元。其中,该至少一个硬件单元包括电路板已经连接的硬件单元和/或电路板没有连接的硬件单元,电路板没有连接的硬件单元可能是后续电路板可能会连接的硬件单元。预设资源量还可能是用户通过为硬件单元选择与电路板连接的接口来实现,例如,用户选择某一个接口,将硬件单元通过选择的接口连接电路板,用户选择的接口所支持最大资源量也即是用户为该硬件单元预设的资源量,对于电路板而言,用户选择的接口所支持的最大资源量是电路板为硬件单元预分配的资源量。以资源为带宽为例,用户将硬件单元1与电路板的接口1连接,接口1所支持的最大带宽为8K,则8K为用户为硬件单元1预设的资源量,是电路板为硬件单元1预分配的资源量。The first amount of resources: the amount of resources pre-allocated by the circuit board for the hardware unit, where the pre-allocated resource amount is the number of resources allocated by the hardware unit when the circuit board pre-allocates resources for the hardware unit. The pre-allocation in this application is the preliminary planning of the use of resources, and what is allocated is the quantity of resources. In one possible implementation, pre-allocation is achieved by dividing the resources provided by the circuit board. Taking the resource as a bus as an example, the circuit board provides 100 buses, and the circuit board is connected to 10 hardware units. If the 100 buses are divided into 10 equal parts, then the amount of resources pre-allocated by the circuit board for each hardware unit is 10. In another possible implementation, pre-allocation is implemented by presetting the amount of resources for the hardware unit. For example, a resource amount is preset for each hardware unit connected to the circuit board to implement preallocation, where the resource amount preset for the hardware unit is also the preallocated resource amount. The preset amount of resources may be achieved by the user recording the amount of resources in the circuit board. For example, for at least one hardware unit that can provide hardware resources for the circuit board, the user pre-stores the at least one hardware unit and at least one third in the circuit board. There is a correspondence between resource amounts, each hardware unit corresponds to a first resource amount, and the corresponding relationship indicates that the resources of the first resource amount are pre-allocated to the corresponding hardware unit. Wherein, the at least one hardware unit includes a hardware unit to which the circuit board has been connected and/or a hardware unit to which the circuit board has not been connected. The hardware unit to which the circuit board has not been connected may be a hardware unit to which subsequent circuit boards may be connected. The preset resource amount may also be achieved by the user selecting an interface for the hardware unit to connect to the circuit board. For example, the user selects a certain interface and connects the hardware unit to the circuit board through the selected interface. The maximum amount of resources supported by the interface selected by the user That is, the amount of resources preset by the user for the hardware unit. For the circuit board, the maximum amount of resources supported by the interface selected by the user is the amount of resources pre-allocated by the circuit board for the hardware unit. Taking resource as bandwidth as an example, the user connects hardware unit 1 to interface 1 of the circuit board. The maximum bandwidth supported by interface 1 is 8K. Then 8K is the amount of resources preset by the user for hardware unit 1. The circuit board is the hardware unit. 1The amount of pre-allocated resources.
第二资源量:硬件单元请求的资源量。硬件单元请求的资源量为硬件单元在工作过程中可能向电路板请求的最大资源量,可以理解为,硬件单元在工作过程中需求的最大资源量。后续再结合具体的实施例,对第二资源量作进一步地介绍。Second resource amount: the resource amount requested by the hardware unit. The amount of resources requested by the hardware unit is the maximum amount of resources that the hardware unit may request from the circuit board during the working process, which can be understood as the maximum amount of resources required by the hardware unit during the working process. Subsequently, the second resource amount will be further introduced with reference to specific embodiments.
下面将结合附图对本申请实施方式作进一步地详细描述。The embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
图1是本申请实施例提供的一种电路板的结构示意图,参见图1,电路板100与至少一个硬件单元101连接,每个硬件单元101用于提供硬件资源。硬件单元101包括处理器以及外部设备中的至少一种,其中,处理器位于电路板,处理器提供的硬件资源包括计算资源。电路板上的处理器有至少一个。处理器例如中央处理器(central processing unit,CPU)。FIG. 1 is a schematic structural diagram of a circuit board provided by an embodiment of the present application. Referring to FIG. 1 , the circuit board 100 is connected to at least one hardware unit 101 , and each hardware unit 101 is used to provide hardware resources. The hardware unit 101 includes at least one of a processor and an external device, where the processor is located on the circuit board, and the hardware resources provided by the processor include computing resources. The processor on the circuit board has at least one. Processor such as central processing unit (CPU).
外部设备为通过电路板100上的接口102与电路板100连接的硬件单元101,外部设备提供的硬件资源包括存储资源以及存储资源以外的其他类型的硬件资源。外部设备包括外设组件互联(peripheral component interconnect,PCI)设备、快速外设组件互联(peripheral component interconnect express,PCIE)设备、存储设备等。其中,PCI设备或PCIE设备提供的硬件资源包括存储资源以外的其他类型的硬件资源,存储设备提供的硬件资源包括存储资源。存储设备例如硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘等,硬盘例如串行连接小型计算机系统接口(serial attached small computer system interface, SAS)硬盘或串行高技术配置(serial advanced technology attachment hard disk,SATA)硬盘。The external device is a hardware unit 101 connected to the circuit board 100 through the interface 102 on the circuit board 100. The hardware resources provided by the external device include storage resources and other types of hardware resources other than storage resources. External devices include peripheral component interconnect (PCI) devices, peripheral component interconnect express (PCIE) devices, storage devices, etc. Among them, the hardware resources provided by the PCI device or the PCIE device include other types of hardware resources other than storage resources, and the hardware resources provided by the storage device include storage resources. Storage devices such as hard disks, read-only memory (ROM), random access memory (RAM), compact discs (compact disc read-only memory, CD-ROM), tapes, floppy disks, etc. The hard disk is, for example, a serial attached small computer system interface (SAS) hard disk or a serial advanced technology attachment hard disk (SATA) hard disk.
其中,电路板100上的接口102有至少一个,电路板100上的任一接口102为有线接口或者无线接口,无线接口例如卡槽。电路板100上的每个接口102通过直连或者级联的方式连接一个或多个硬件单元101。例如图2所示的本申请实施例提供的另一种电路板的结构示意图,图2所示的电路板100中的接口102通过连接器103与一个或多个外部设备连接,连接器103上设置有至少一个卡槽,每个卡槽用于连接一个外部设备。连接器103上的卡槽用于扩展电路板100的接口,其中,连接器103包括Riser卡、硬盘背板以及扩展卡等不同类型的连接器。不同类型的连接器能够连接不同类型的外部设备,例如Riser卡能够连接PCI设备或PCIE设备,硬盘背板能够连接硬盘,扩展卡能够连接其他类型的外部设备。There is at least one interface 102 on the circuit board 100, and any interface 102 on the circuit board 100 is a wired interface or a wireless interface, and the wireless interface is, for example, a card slot. Each interface 102 on the circuit board 100 is connected to one or more hardware units 101 through direct connection or cascading. For example, Figure 2 is a schematic structural diagram of another circuit board provided by an embodiment of the present application. The interface 102 in the circuit board 100 shown in Figure 2 is connected to one or more external devices through a connector 103. On the connector 103 At least one card slot is provided, and each card slot is used to connect an external device. The card slot on the connector 103 is used to expand the interface of the circuit board 100. The connector 103 includes different types of connectors such as riser cards, hard disk backplanes, and expansion cards. Different types of connectors can connect to different types of external devices. For example, riser cards can connect to PCI devices or PCIE devices, hard drive backplanes can connect to hard drives, and expansion cards can connect to other types of external devices.
在一种可能的实现方式中,电路板100上的处理器通过桥接的方式与接口102连接,使得处理器能够与接口102所连接的外部设备进行通信。例如,某一接口连接的外部设备为PCIE设备或PCI设备,处理器通过PCIE桥与该接口建立链路,通过该链路访问该接口所连接的PCIE设备或PCI设备。再例如,某一接口连接的外部设备为SAS硬盘,处理器通过SAS桥与该接口建立链路,通过该链路访问该接口所连接的SAS硬盘。In one possible implementation, the processor on the circuit board 100 is connected to the interface 102 through a bridge, so that the processor can communicate with the external device connected to the interface 102 . For example, if the external device connected to a certain interface is a PCIE device or PCI device, the processor establishes a link with the interface through a PCIE bridge and accesses the PCIE device or PCI device connected to the interface through the link. For another example, the external device connected to a certain interface is a SAS hard disk. The processor establishes a link with the interface through a SAS bridge and accesses the SAS hard disk connected to the interface through the link.
在一种可能的实现方式中,如图1所示,某些存储设备与处理器连接,作为处理器的内存(memory),这种存储设备可能位于主板上。这种存储设备也是电路板的硬件单元101。In a possible implementation, as shown in Figure 1, some storage devices are connected to the processor and serve as the memory of the processor. Such storage devices may be located on the motherboard. This storage device is also a hardware unit 101 of the circuit board.
在一种可能的实现的方式中,电路板100位于计算机设备内,电路板100所连接的硬件单元作为计算机设备的硬件单元,为计算机设备提供硬件资源。该计算机设备为服务器或终端,服务器例如本地服务器或者云服务器。终端例如用户设备、便携式终端、膝上型终端、台式终端等。In a possible implementation manner, the circuit board 100 is located in a computer device, and the hardware unit connected to the circuit board 100 serves as a hardware unit of the computer device, providing hardware resources for the computer device. The computer device is a server or terminal, and the server is such as a local server or a cloud server. Terminals include user equipment, portable terminals, laptop terminals, desktop terminals, and the like.
电路板能够运行BIOS,如图1所示,电路板100包括目标芯片104,目标芯片104为BIOS的载体,能够运行BIOS,通过运行BIOS来实现BIOS的功能。对于电路板100连接的每个硬件单元101,BIOS能够根据硬件单元101对应的第一资源量和第二资源量,为硬件单元101分配资源,从而实现资源的自动分配,无须升级BIOS,降低了BIOS的维护成本。The circuit board can run the BIOS. As shown in Figure 1, the circuit board 100 includes a target chip 104. The target chip 104 is the carrier of the BIOS and can run the BIOS. The functions of the BIOS are realized by running the BIOS. For each hardware unit 101 connected to the circuit board 100, the BIOS can allocate resources to the hardware unit 101 according to the first resource amount and the second resource amount corresponding to the hardware unit 101, thereby realizing automatic allocation of resources without upgrading the BIOS and reducing costs. BIOS maintenance costs.
在一种可能的实现方式中,电路板100还包括资源管理器105,资源管理器105分别与BIOS以及硬件单元101连接。若某个硬件单元101位于电路板100上,BIOS与硬件单元101直接或者间接连接。若硬件单元101为电路板100的外部设备,BIOS通过电路板接口102与硬件单元101间接连接。资源管理器105为复杂可编程逻辑器件(complex programmable logic device,CPLD)或者微控制器(micro controller unit,MCU),在此本申请实施例对资源管理器105的硬件形态不做限定。其中,资源管理器105用于为BIOS提供电路板100连接的各个硬件单元101对应的第一资源量。例如,在电路板100上电后,资源管理器105获取该电路板100连接的各个硬件单元101对应的第一资源量,存储获取到的各个硬件单元101对应的第一资源量。当接收到BIOS请求获取第一资源量的指令后,资源管理器105向BIOS返回存储的至少一个硬件单元101对应的第一资源量。或者,当接收到BIOS请求获取第一资源量的指令后,资源管理器105根据BIOS的指令,获取至少一个硬件单元101对应的第一资源量和,向BIOS返回获取到的至少一个硬件单元101对应的第一资源量。In a possible implementation, the circuit board 100 also includes a resource manager 105, which is connected to the BIOS and the hardware unit 101 respectively. If a certain hardware unit 101 is located on the circuit board 100, the BIOS is directly or indirectly connected to the hardware unit 101. If the hardware unit 101 is an external device of the circuit board 100, the BIOS is indirectly connected to the hardware unit 101 through the circuit board interface 102. The resource manager 105 is a complex programmable logic device (CPLD) or a microcontroller unit (MCU). The embodiment of the present application does not limit the hardware form of the resource manager 105. The resource manager 105 is used to provide the BIOS with the first resource amount corresponding to each hardware unit 101 connected to the circuit board 100 . For example, after the circuit board 100 is powered on, the resource manager 105 obtains the first resource amount corresponding to each hardware unit 101 connected to the circuit board 100, and stores the obtained first resource amount corresponding to each hardware unit 101. After receiving the instruction from the BIOS to request the acquisition of the first resource amount, the resource manager 105 returns the stored first resource amount corresponding to at least one hardware unit 101 to the BIOS. Alternatively, after receiving an instruction from the BIOS to request the acquisition of the first resource amount, the resource manager 105 obtains the sum of the first resource amount corresponding to at least one hardware unit 101 according to the BIOS instruction, and returns the obtained at least one hardware unit 101 to the BIOS. The corresponding first resource amount.
需要说明的是,资源管理器105为电路板100上的可选部件,例如图1或图2所示的电路板100均包括资源管理器105,在另一种可能的实现方式中,BIOS集成有资源管理器105的功能,电路板100不包括资源管理器105。It should be noted that the resource manager 105 is an optional component on the circuit board 100. For example, the circuit board 100 shown in Figure 1 or Figure 2 includes the resource manager 105. In another possible implementation, the BIOS is integrated There is a resource manager 105 function, but the circuit board 100 does not include the resource manager 105 .
由上述对电路板的介绍可知,电路板能够与至少一个硬件单元连接,若该电路板位于计算机设备,电路板连接的各个硬件单元也即是计算机设备的硬件单元,该电路板的BIOS也即是该计算机设备的BIOS。由于BIOS为该电路板连接的每个硬件单元分配资源的过程类似,为了便于描述,以该电路板连接的一个硬件单元为例,对BIOS为该硬件单元分配资源的过程作如下介绍:From the above introduction to the circuit board, it can be seen that the circuit board can be connected to at least one hardware unit. If the circuit board is located in a computer device, each hardware unit connected to the circuit board is also the hardware unit of the computer device, and the BIOS of the circuit board is also the hardware unit of the computer device. is the BIOS of the computer device. Since the process of BIOS allocating resources to each hardware unit connected to this circuit board is similar, for the convenience of description, taking a hardware unit connected to this circuit board as an example, the process of BIOS allocating resources to this hardware unit is introduced as follows:
图3是本申请实施提供的一种电路板的资源分配方法的流程图,该电路板与硬件单元连接,该硬件单元用于提供硬件资源,该方法应用与该电路板的BIOS,该方法包括如下步骤301-303。Figure 3 is a flow chart of a circuit board resource allocation method provided by the present application. The circuit board is connected to a hardware unit. The hardware unit is used to provide hardware resources. The method is applied to the BIOS of the circuit board. The method includes Follow steps 301-303.
301、BIOS获取硬件单元对应的第一资源量,该第一资源量是电路板为该硬件单元预分配的资源量。301. The BIOS obtains the first resource amount corresponding to the hardware unit. The first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
其中,该电路板包括主板或者其他类型的电路板。该电路板提供的资源包括带宽、总线以及MMIO地址中的至少一种,该电路板提供的资源为BIOS为待分配的资源。该硬件单元为该电路板连接的任一个硬件单元。该硬件单元为外部设备或处理器。例如硬件单元为PCIE设备或PCI设备等外部设备,再例如,处理器为CPU。The circuit board includes a motherboard or other types of circuit boards. The resources provided by the circuit board include at least one of bandwidth, bus and MMIO address, and the resources provided by the circuit board are resources to be allocated by the BIOS. This hardware unit is any hardware unit connected to the circuit board. This hardware unit is an external device or processor. For example, the hardware unit is an external device such as a PCIE device or a PCI device, and for another example, the processor is a CPU.
在一种可能的实现方式,当该硬件单元为外部设备时,若该电路板位于计算机设备,该硬件单元为计算机设备的外部设备。在一种可能的实现方式中,若该硬件单元为外部设备,该硬件单元通过槽位与该电路板连接。例如,硬件单元与该槽位连接,槽位与电路板连接,从而使得硬件单元连接至电路板。其中,该槽位为连接器上的卡槽或者是电路板上的卡槽。若该槽位为连接器上的卡槽,该硬件单元与该槽位连接,该连接器与该电路板的某一接口连接,从而该卡槽通过连接器与电路板间接连接。若该槽位为电路板上的卡槽,该槽位与电路板直接连接。若该槽位支持有线连接,该硬件设备与该槽位有线连接,若该槽位支持插卡连接,则该硬件设备位于该槽位。In a possible implementation manner, when the hardware unit is an external device, if the circuit board is located in a computer device, the hardware unit is an external device of the computer device. In a possible implementation manner, if the hardware unit is an external device, the hardware unit is connected to the circuit board through a slot. For example, the hardware unit is connected to the slot, and the slot is connected to the circuit board, so that the hardware unit is connected to the circuit board. The slot is a card slot on the connector or a card slot on the circuit board. If the slot is a card slot on a connector, the hardware unit is connected to the slot, and the connector is connected to a certain interface of the circuit board, so that the card slot is indirectly connected to the circuit board through the connector. If the slot is a card slot on a circuit board, the slot is directly connected to the circuit board. If the slot supports wired connection, the hardware device is wired to the slot. If the slot supports card connection, the hardware device is located in the slot.
在一种可能的实现方式中,若该硬件单元为外部设备,待分配的资源为带宽,该第一资源量等于该槽位对应的最大资源量。以资源为带宽为例,该槽位对应的最大资源量为该槽位支持的最大带宽。In a possible implementation, if the hardware unit is an external device and the resource to be allocated is bandwidth, the first resource amount is equal to the maximum resource amount corresponding to the slot. Taking the resource as bandwidth as an example, the maximum resource amount corresponding to the slot is the maximum bandwidth supported by the slot.
在一种可能的实现方式中,该电路板包括多个处理器,该硬件单元为该多个处理器中的第一处理器,其中,第一处理器为该多个处理器中的任一处理器。此时,该资源为总线或者MMIO地址,该硬件单元对应的第一资源量等于该资源的总资源量除以该多个处理器的总个数。以资源为总线为例,电路板提供有100个总线,该电路板包括5个处理器,每个处理器对应的第一资源量均为20。以资源为MMIO地址为例,电路板提供的MMIO地址空间大小为200,该电路板包括5个处理器,每个处理器对应的第一资源量均为40。In a possible implementation, the circuit board includes a plurality of processors, and the hardware unit is a first processor among the plurality of processors, wherein the first processor is any one of the plurality of processors. processor. At this time, the resource is a bus or an MMIO address, and the first resource amount corresponding to the hardware unit is equal to the total resource amount of the resource divided by the total number of the multiple processors. Taking resources as buses as an example, the circuit board provides 100 buses. The circuit board includes 5 processors, and the first resource amount corresponding to each processor is 20. Taking the resource as an MMIO address as an example, the size of the MMIO address space provided by the circuit board is 200. The circuit board includes 5 processors, and the first resource amount corresponding to each processor is 40.
302、BIOS获取硬件单元对应的第二资源量,该第二资源量为该硬件单元请求的资源量。302. The BIOS obtains the second resource amount corresponding to the hardware unit, and the second resource amount is the resource amount requested by the hardware unit.
在一种可能的实现方式中,当该硬件单元为外部设备时,若硬件单元不包括硬件子单元,该第二资源量等于该硬件单元对应的最大资源量,该硬件单元对应的最大资源量为该硬件单元在工作过程中可能请求的最大资源量,或者,也可以理解为该硬件单元在工作过程中需要的该资源的最大资源量,该硬件单元支持的该资源的最大资源量。以资源为带宽为例,该硬件单元支持的最大带宽为X8,则该硬件单元在工作过程中需要的最大带宽为X8,该第二资源量为X8。In a possible implementation, when the hardware unit is an external device, if the hardware unit does not include a hardware sub-unit, the second resource amount is equal to the maximum resource amount corresponding to the hardware unit, and the maximum resource amount corresponding to the hardware unit It is the maximum amount of resources that the hardware unit may request during the work process, or it can also be understood as the maximum resource amount that the hardware unit requires during the work process, and the maximum resource amount that the hardware unit supports. Taking the resource as bandwidth as an example, the maximum bandwidth supported by the hardware unit is X8, then the maximum bandwidth required by the hardware unit during work is X8, and the second resource amount is X8.
当该硬件单元为外部设备时,若硬件单元包括多个硬件子单元。以该硬件设备为PCIE设 备为例,若该PCIE设备包括多个芯片,则该PCIE设备中的每个芯片分别为一个硬件子单元。When the hardware unit is an external device, if the hardware unit includes multiple hardware sub-units. Taking the hardware device as a PCIE device as an example, if the PCIE device includes multiple chips, each chip in the PCIE device is a hardware subunit.
若该硬件单元包括多个硬件子单元,该第二资源量包括多个第三资源量,每个第三资源量分别对应该多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量。其中,一个硬件子单元所对应的最大资源量为该硬件子单元请求的最大资源量,例如,该硬件子单元请求的最大资源量为该硬件子单元在工作过程中可能请求的最大资源量,或者,也可以理解为该硬件子单元在工作过程中需要的该资源的最大资源量。以资源为带宽为例,该硬件子单元支持的最大带宽为X2,则该硬件单元在工作过程中需要的最大带宽为X2,该硬件子单元对应的第三资源量为X2。需要说明的是,该硬件单元的每个硬件子单元对应的最大资源量可能相同,也可能不同,相应地,该第二资源量所包括的多个第三资源量的取值可能相同,也可能不同。If the hardware unit includes multiple hardware sub-units, the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to a hardware sub-unit among the multiple hardware sub-units, and each third resource amount The amount is the maximum amount of resources corresponding to the corresponding hardware subunit. Among them, the maximum amount of resources corresponding to a hardware subunit is the maximum amount of resources requested by the hardware subunit. For example, the maximum amount of resources requested by the hardware subunit is the maximum amount of resources that the hardware subunit may request during the work process. Alternatively, it can also be understood as the maximum amount of resources required by the hardware subunit during its work. Taking the resource as bandwidth as an example, the maximum bandwidth supported by the hardware subunit is X2, then the maximum bandwidth required by the hardware unit during work is X2, and the third resource amount corresponding to the hardware subunit is X2. It should be noted that the maximum amount of resources corresponding to each hardware sub-unit of the hardware unit may be the same or different. Correspondingly, the values of the plurality of third resource amounts included in the second resource amount may be the same or different. May be different.
在另一种可能的实现方式中,当该电路板位于计算机设备,且该硬件单元为处理器时,该硬件单元挂载有该计算机设备的至少一个外部设备,该至少一个外部设备可能为同一类型的外部设备,也可能为不同类型的外部设备。例如,该至少一个外部设备包括PCI设备、PCIE设备或者硬盘中的至少一种外部设备。该电路板通过至少一个槽位与该至少一个外部设备连接,例如,该电路板通过该至少一个槽位中的每个槽位分别与该至少一个外部设备中的一个外部设备连接。In another possible implementation, when the circuit board is located in a computer device and the hardware unit is a processor, the hardware unit is mounted with at least one external device of the computer device, and the at least one external device may be the same type of external device, or possibly different types of external devices. For example, the at least one external device includes at least one external device among a PCI device, a PCIE device, or a hard disk. The circuit board is connected to the at least one external device through at least one slot. For example, the circuit board is connected to one of the at least one external device through each slot in the at least one slot.
当槽位具有热插拔功能时,若该槽位进行热插拔,该槽位会占用总线,因此,当该硬件单元为处理器时,若该资源为总线,该第二资源量等于该至少一个外部设备请求的总资源量与第四资源量之和,其中,该第四资源量是BIOS为目标槽位的热插拔功能预分配的总资源量,该目标槽位为该至少一个槽位中具有热插拔功能的槽位。When the slot has a hot-swappable function, if the slot is hot-swapped, the slot will occupy the bus. Therefore, when the hardware unit is a processor, if the resource is a bus, the second resource amount is equal to the The sum of the total resource amount requested by at least one external device and the fourth resource amount, where the fourth resource amount is the total resource amount pre-allocated by the BIOS for the hot plug function of the target slot, and the target slot is the at least one A slot with hot-swappable functionality.
该至少一个外部设备中可能存在不包括硬件子单元的外部设备,也可能存在包括硬件子单元的外部设备,为了便于描述,将该至少一个外部设备中不包括硬件子单元的外部设备称为第一外部设备,将该至少一个外部设备中包括硬件子单元的外部设备称为第二外部设备。由于每个第一外部设备或者每个第二外部设备中的每个硬件子单元在工作时均至少需要一个总线,因此,该至少一个外部设备请求的总资源量等于第一个数与第二个数之和,其中,该第一个数为该至少一个外部设备中第一外部设备的总个数,该第二个数为该至少一个外部设备中第二外部设备内硬件子单元的总个数。The at least one external device may include an external device that does not include a hardware subunit, or there may be an external device that includes a hardware subunit. For convenience of description, the at least one external device that does not include a hardware subunit will be referred to as the third external device. An external device, the external device including a hardware subunit among the at least one external device is called a second external device. Since each hardware subunit in each first external device or each second external device requires at least one bus when working, the total amount of resources requested by the at least one external device is equal to the first number and the second number. The sum of the numbers, where the first number is the total number of first external devices in the at least one external device, and the second number is the total number of hardware subunits in the second external device in the at least one external device. number.
当该硬件单元为处理器时,若该资源为MMIO地址,该第二资源量等于该至少一个外部设备请求的资源量之和。此时,每个外部设备请求的资源量为每个外部设备在工作过程中请求的最大工作量。对于该至少一个外部设备中的第一外部设备,该第一外部设备请求的资源量为该第一外部设备对应的最大资源量。对于该至少一个外部设备中的第二外部设备,此时,该第二外部设备请求的资源量为该第二外部设备中每个硬件单元对应的最大资源量之和。When the hardware unit is a processor and the resource is an MMIO address, the second resource amount is equal to the sum of resource amounts requested by the at least one external device. At this time, the amount of resources requested by each external device is the maximum workload requested by each external device during its work. For the first external device among the at least one external device, the resource amount requested by the first external device is the maximum resource amount corresponding to the first external device. For the second external device among the at least one external device, at this time, the resource amount requested by the second external device is the sum of the maximum resource amount corresponding to each hardware unit in the second external device.
303、BIOS根据该第一资源量与该第二资源量,为该硬件单元分配资源。303. The BIOS allocates resources to the hardware unit according to the first resource amount and the second resource amount.
在本申请实施例中,电路板的BIOS根据电路板为硬件单元预分配的资源量以及硬件单元请求的资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。In the embodiment of the present application, the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit. resources, thereby saving BIOS maintenance costs.
BIOS获取硬件单元对应的第一资源量的方式包括下述方式A和方式B中的任一方式。The method by which the BIOS obtains the first resource amount corresponding to the hardware unit includes any of the following methods A and B.
方式A、BIOS从电路板或硬件单元,获取硬件单元对应的第一资源量。Method A: The BIOS obtains the first resource amount corresponding to the hardware unit from the circuit board or hardware unit.
方式B、BIOS通过电路板上的资源管理器,获取硬件单元对应的第一资源量。Method B: The BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager on the circuit board.
对于方式A,针对不同类型的硬件单元,BIOS获取硬件单元对应的第一资源量的过程有所不同,下面将结合图4所示的实施例,对硬件单元为外部设备的情况下,BIOS获取硬件单元对应的第一资源量过程作详细介绍。将结合图5所示的实施例,对硬件单元为处理器的情况下,BIOS获取硬件单元对应的第一资源量的过程作详细介绍。将结合图10所示的实施例,对方式B作详细介绍。For mode A, for different types of hardware units, the process by which the BIOS obtains the first resource amount corresponding to the hardware unit is different. In the following, combined with the embodiment shown in Figure 4, when the hardware unit is an external device, the BIOS obtains The first resource amount process corresponding to the hardware unit is introduced in detail. The process by which the BIOS obtains the first resource amount corresponding to the hardware unit when the hardware unit is a processor will be described in detail with reference to the embodiment shown in FIG. 5 . Method B will be introduced in detail with reference to the embodiment shown in FIG. 10 .
图4是本申请实施例提供的一种硬件单元为外部设备时的资源分配方法的流程图,该电路板与硬件单元连接,该硬件单元用于提供硬件资源,该方法应用与该电路板的BIOS,该方法包括如下步骤401-404。Figure 4 is a flow chart of a resource allocation method when the hardware unit is an external device provided by an embodiment of the present application. The circuit board is connected to the hardware unit. The hardware unit is used to provide hardware resources. The method is applied to the circuit board. BIOS, the method includes the following steps 401-404.
401、BIOS对该电路板所连接的硬件单元进行识别。401. The BIOS identifies the hardware unit connected to the circuit board.
其中,该硬件单元为该电路板所连接的任一硬件单元。若在启动时,BIOS获取该电路板所连接的每个硬件单元的配置信息,通过每个硬件单元的配置信息,对每个硬件单元进行识别,以确定每个硬件单元的类型。为了便于描述,在此以一个硬件单元为例,对该硬件单元的配置信息作如下介绍:Wherein, the hardware unit is any hardware unit connected to the circuit board. During startup, the BIOS obtains the configuration information of each hardware unit connected to the circuit board and identifies each hardware unit through the configuration information of each hardware unit to determine the type of each hardware unit. For the convenience of description, here we take a hardware unit as an example, and the configuration information of the hardware unit is introduced as follows:
其中,若该硬件单元为外部设备,且该硬件单元不包括硬件子单元,该硬件单元的配置信息包括该硬件单元对应的最大资源量、该电路板上该硬件单元连接的接口的标识以及该硬件单元的标识中的至少一种,其中,该硬件单元对应的最大资源量为该硬件单元支持的资源的最大资源量,或者,也可以理解为该硬件单元在工作过程中需要的该资源的最大资源量。Wherein, if the hardware unit is an external device and the hardware unit does not include a hardware sub-unit, the configuration information of the hardware unit includes the maximum amount of resources corresponding to the hardware unit, the identification of the interface to which the hardware unit is connected on the circuit board, and the At least one of the identifiers of the hardware unit, wherein the maximum resource amount corresponding to the hardware unit is the maximum resource amount of the resources supported by the hardware unit, or it can also be understood as the resource amount required by the hardware unit during the work process. Maximum amount of resources.
若该硬件单元为外部设备,且该硬件单元包括多个硬件子单元,该硬件单元的配置信息还包括多个硬件子单元的配置信息,每个硬件子单元的配置信息包括对应硬件子单元对应的最大资源量以及对应硬件子单元的标识中的至少一种。If the hardware unit is an external device, and the hardware unit includes multiple hardware sub-units, the configuration information of the hardware unit also includes configuration information of multiple hardware sub-units, and the configuration information of each hardware sub-unit includes the corresponding hardware sub-unit. At least one of the maximum amount of resources and the identification of the corresponding hardware subunit.
若该硬件单元为处理器,该硬件单元的配置信息包括该硬件单元的标识、至少一个接口的标识以及至少一个链路信息中的至少一种,其中,该至少一个接口为电路板上的接口,该至少一个接口用于连接该处理器所挂载的外部设备。每个链路信息对应该至少一个接口中的一个接口,每个链路信息用于指示该硬件单元与对应接口之间的链路。若一个链路通过桥接实现,且该链路包括至少一个桥,该链路的对应的链路信息包括该至少一个桥的标识。若该链路所连接的接口用于连接PCIE设备,该至少一个桥为PCIE桥,若该链路所连接的接口用于连接SAS硬盘,该至少一个桥为SAS桥。If the hardware unit is a processor, the configuration information of the hardware unit includes at least one of an identifier of the hardware unit, an identifier of at least one interface, and at least one link information, wherein the at least one interface is an interface on a circuit board. , the at least one interface is used to connect an external device mounted on the processor. Each link information corresponds to one interface among the at least one interface, and each link information is used to indicate a link between the hardware unit and the corresponding interface. If a link is implemented through bridging and the link includes at least one bridge, the corresponding link information of the link includes the identification of the at least one bridge. If the interface connected to the link is used to connect PCIE devices, the at least one bridge is a PCIE bridge. If the interface connected to the link is used to connect SAS hard disks, the at least one bridge is a SAS bridge.
对该硬件单元进行识别的过程作如下介绍:The process of identifying the hardware unit is introduced as follows:
BIOS中存储有该电路板的配置信息,该电路板的配置信息包括该电路板支持处理器的最大个数、该电路板上多个处理器的配置信息、每个接口的配置信息以及该电路板的标识,其中,该多个处理器为该电路板连接的处理器,该多个处理器的总个数小于或等于该电路板所支持的处理器的最大个数。每个接口的配置信息包括对应接口所对应的最大资源量以及对应接口的标识,每个接口对应的最大资源量为对应接口支持的最大资源量,例如某一接口支持的最大带宽为X8,该接口对应的最大资源量为X8。The BIOS stores the configuration information of the circuit board. The configuration information of the circuit board includes the maximum number of processors supported by the circuit board, the configuration information of multiple processors on the circuit board, the configuration information of each interface and the circuit board. The identification of the board, wherein the multiple processors are processors connected to the circuit board, and the total number of the multiple processors is less than or equal to the maximum number of processors supported by the circuit board. The configuration information of each interface includes the maximum amount of resources corresponding to the corresponding interface and the identifier of the corresponding interface. The maximum amount of resources corresponding to each interface is the maximum amount of resources supported by the corresponding interface. For example, the maximum bandwidth supported by an interface is X8. The maximum amount of resources corresponding to the interface is X8.
BIOS从该硬件单元中获取该硬件单元的标识,根据该硬件单元的标识以及该电路板的配置信息,确定该硬件单元是否为处理器。例如,对于该电路板的配置信息中任一处理器的配置信息,若该硬件单元的标识与该任一处理器的配置信息中处理器的标识相同,则该硬件单元为处理器。The BIOS obtains the identifier of the hardware unit from the hardware unit, and determines whether the hardware unit is a processor based on the identifier of the hardware unit and the configuration information of the circuit board. For example, for the configuration information of any processor in the configuration information of the circuit board, if the identifier of the hardware unit is the same as the identifier of the processor in the configuration information of any processor, then the hardware unit is a processor.
当BIOS启动时,对于电路板上的每个接口所连接的硬件单元进行识别,为了便于描述 以该电路板上的一个接口为例,对该接口所连接的硬件单元进行识别的过程包括下述步骤4011-4013。When the BIOS starts, the hardware unit connected to each interface on the circuit board is identified. For the convenience of description, taking an interface on the circuit board as an example, the process of identifying the hardware unit connected to the interface includes the following: Steps 4011-4013.
步骤4011、若该接口没有连接连接器,BIOS使能该处理器与该接口之间的链路。Step 4011: If the interface is not connected to a connector, the BIOS enables the link between the processor and the interface.
其中,若该接口没有通过连接器与硬件单元(如外部设备)连接,且与硬件单元直接连接,则该接口没有连接连接器,该处理器与该接口之间的链路也即是该处理器与该硬件单元之间的链路。若该接口通过连接器与硬件单元(如外部设备)连接,则该接口与连接器接口。Among them, if the interface is not connected to a hardware unit (such as an external device) through a connector and is directly connected to the hardware unit, then the interface is not connected to a connector, and the link between the processor and the interface is the processing link between the server and this hardware unit. If the interface is connected to a hardware unit (such as an external device) through a connector, the interface interfaces with the connector.
BIOS在电路板的配置信息中查询该接口对应的处理器,BIOS向该处理器发送电路板的配置信息中该处理器的配置信息,由于该处理器与该接口之间的链路已经预先建立完成,则该处理器根据该处理器的配置信息中该接口对应的链路信息,使能该处理器与该接口之间的链路。The BIOS queries the processor corresponding to the interface in the configuration information of the circuit board. The BIOS sends the configuration information of the processor in the configuration information of the circuit board to the processor because the link between the processor and the interface has been established in advance. is completed, the processor enables the link between the processor and the interface according to the link information corresponding to the interface in the configuration information of the processor.
在一种可能的实现方式中,处理器包括控制寄存器,BIOS将该处理器的配置信息发送至该控制寄存器,由该控制寄存器存储该处理器的配置信息。该处理器根据控制寄存器存储的该处理器的配置信息中该接口对应的链路信息,使能该处理器与该接口之间的链路。In a possible implementation, the processor includes a control register, the BIOS sends the configuration information of the processor to the control register, and the control register stores the configuration information of the processor. The processor enables the link between the processor and the interface according to the link information corresponding to the interface in the configuration information of the processor stored in the control register.
步骤4012、若该接口与连接器连接,BIOS建立处理器与该连接器的每个卡槽之间的链路。Step 4012: If the interface is connected to the connector, the BIOS establishes a link between the processor and each card slot of the connector.
其中,对于该连接器的每个卡槽,该处理器与每个卡槽之间的链路包括该处理器与接口之间的链路以及该接口与每个卡槽之间的链路。该连接器的每个卡槽均能够连接硬件单元(如外部设备),则该处理器与每个卡槽之间的链路也即是该处理器与每个卡槽连接的硬件单元之间的链路。Wherein, for each card slot of the connector, the link between the processor and each card slot includes a link between the processor and the interface and a link between the interface and each card slot. Each card slot of the connector can connect to a hardware unit (such as an external device), and the link between the processor and each card slot is also the link between the processor and the hardware unit connected to each card slot. link.
BIOS从连接器中读取该连接器的配置信息。例如,连接器的配置信息存储在连接器的CPLD中,BIOS从连接器的CPLD中读取该连接器的配置信息。其中,该连接器的配置信息包括该连接器的设备类型、该连接器的卡槽数量以及该连接器上每个卡槽的配置信息。其中,该连接器的设备类型例如Riser卡、或者硬盘背板等。每个卡槽的配置信息包括每个卡槽的标识以及每个卡槽对应的最大资源量。每个卡槽的最大资源量为每个卡槽支持的该资源的最大资源量,也即是每个卡槽工作过程中需要的该资源的最大资源量。在一种可能的实现方式中,对于该连接器上的任一卡槽,若该任一卡槽具有热插拔功能,该任一卡槽的配置信息还包括目标标识,该目标标识指示该任一卡槽具有热插拔功能。The BIOS reads the connector's configuration information from the connector. For example, the configuration information of a connector is stored in the connector's CPLD, and the BIOS reads the configuration information of the connector from the connector's CPLD. The configuration information of the connector includes the device type of the connector, the number of card slots of the connector, and the configuration information of each card slot on the connector. Among them, the device type of the connector is such as a riser card, or a hard disk backplane, etc. The configuration information of each card slot includes the identification of each card slot and the maximum amount of resources corresponding to each card slot. The maximum resource amount of each card slot is the maximum resource amount supported by each card slot, that is, the maximum resource amount required by each card slot during its operation. In a possible implementation, for any card slot on the connector, if any card slot has a hot-swappable function, the configuration information of any card slot also includes a target identification, and the target identification indicates that the Any card slot is hot-swappable.
BIOS将读取到的该连接器的配置信息发送至该处理器。若BIOS没有将该处理器的配置信息发送至该处理器,则BIOS将该处理器的配置信息以及该连接器的配置信息一起发送至该处理器(如处理器中的控制寄存器)。该处理器根据该连接器的配置信息,建立该处理器与该连接器的每个卡槽之间的链路。例如,该处理器使能该处理器与该接口之间的链路,该处理器根据该连接器的配置信息,建立该接口与该连接器的每个卡槽之间的链路,该处理器与每个卡槽之间的链路建立完成。The BIOS sends the read configuration information of the connector to the processor. If the BIOS does not send the configuration information of the processor to the processor, the BIOS sends the configuration information of the processor and the configuration information of the connector to the processor (such as a control register in the processor). The processor establishes a link between the processor and each card slot of the connector according to the configuration information of the connector. For example, the processor enables a link between the processor and the interface, and the processor establishes a link between the interface and each card slot of the connector according to the configuration information of the connector. The processing The link between the server and each card slot is established.
步骤4013、对于该接口对应的任一链路,BIOS对该任一链路进行扫描操作,该扫描操作用于扫描该链路是否连接有外部设备。Step 4013: For any link corresponding to the interface, the BIOS performs a scanning operation on the any link. The scanning operation is used to scan whether the link is connected to an external device.
其中,若该接口没有连接连接器,该任一链路为该处理器与该接口之间的链路。若该接口与连接器连接,该任一链路为该处理器与该连接器的任一卡槽之间的链路。Wherein, if the interface is not connected to a connector, any link is a link between the processor and the interface. If the interface is connected to a connector, the any link is a link between the processor and any card slot of the connector.
BIOS对该任一链路进行扫描,若扫描成功,说明该任一链路连接有硬件单元,则将该连接的硬件单元识别为外部设备。若扫描失败,说明该任一链路没有连接硬件单元。The BIOS scans any link. If the scan is successful, it means that a hardware unit is connected to any link, and the connected hardware unit is recognized as an external device. If the scan fails, it means that there is no hardware unit connected to any link.
在一种可能的实现方式中,该BIOS还能够为扫描成功的硬件单元分配临时资源,以便BIOS能够根据为该硬件单元分配的临时资源访问该硬件单元。例如,该电路板提供多个总线以及多个MMIO地址,每个MMIO地址用于指示一个地址空间,若该硬件单元扫描成功,则BIOS从多个总线中为该硬件单元为配一个总线,从多个MMIO地址中为该硬件单元分配一个MMIO地址,其中,为该硬件单元分配的总线以及MMIO地址均是该硬件单元分配的临时资源,以便BIOS能够根据为该硬件单元分配的总线访问该硬件单元,或者采用类似于访问内存的方式,根据为该硬件单元分配的MMIO地址访问该硬件单元。In a possible implementation, the BIOS can also allocate temporary resources to the successfully scanned hardware unit, so that the BIOS can access the hardware unit according to the temporary resources allocated to the hardware unit. For example, the circuit board provides multiple buses and multiple MMIO addresses. Each MMIO address is used to indicate an address space. If the hardware unit scans successfully, the BIOS allocates a bus for the hardware unit from multiple buses. Allocate an MMIO address to the hardware unit among multiple MMIO addresses. The bus and MMIO address allocated to the hardware unit are temporary resources allocated to the hardware unit, so that the BIOS can access the hardware according to the bus allocated to the hardware unit. unit, or access the hardware unit according to the MMIO address assigned to the hardware unit in a manner similar to accessing memory.
在一种可能的实现方式中,BIOS通过建立该多个总线中任一总线与该硬件单元之间的对应关系,以实现将该任一总线分配给该硬件单元。BIOS通过建立该多个MMIO地址中任一MMIO地址与该硬件单元之间的对应关系,将该硬件单元映射至该任一MMIO地址所指示的地址空间,以实现将任一MMIO地址分配给该硬件单元。In a possible implementation manner, the BIOS establishes a corresponding relationship between any one of the multiple buses and the hardware unit to allocate the any bus to the hardware unit. The BIOS establishes a corresponding relationship between any one of the multiple MMIO addresses and the hardware unit, and maps the hardware unit to the address space indicated by the any MMIO address, so as to realize the allocation of any MMIO address to the hardware unit. hardware unit.
402、若识别出的硬件单元为外部设备,且该硬件单元通过槽位与该电路板连接,BIOS将该硬件单元与该电路板连接的槽位对应的最大资源量,获取为该硬件单元对应的第一资源量,其中,该第一资源量为电路板为该硬件单元预分配的资源量。402. If the identified hardware unit is an external device and the hardware unit is connected to the circuit board through a slot, the BIOS will obtain the maximum resource amount corresponding to the slot connected to the hardware unit and the circuit board. A first amount of resources, wherein the first amount of resources is an amount of resources pre-allocated by the circuit board to the hardware unit.
其中,该槽位可能为连接器上的卡槽或者电路板上的卡槽,若该槽位为连接器上的卡槽,则BIOS从该连接器读取该卡槽对应的最大资源量。The slot may be a card slot on a connector or a card slot on a circuit board. If the slot is a card slot on a connector, the BIOS reads the maximum amount of resources corresponding to the card slot from the connector.
例如,BIOS访问该连接器,从该连接器的配置信息中读取该槽位对应的最大资源量,将读取到的该槽位对应的最大资源量作为该第一资源量。再例如,BIOS已经将该连接器的配置信息存储至处理器的控制寄存器,则BIOS从控制寄存器中存储的该连接器的配置信息中,获取该槽位对应最大资源量,将获取到的该槽位对应最大资源量确定为该第一资源量。For example, the BIOS accesses the connector, reads the maximum resource amount corresponding to the slot from the configuration information of the connector, and uses the read maximum resource amount corresponding to the slot as the first resource amount. For another example, the BIOS has stored the configuration information of the connector in the control register of the processor, and then the BIOS obtains the maximum amount of resources corresponding to the slot from the configuration information of the connector stored in the control register, and will obtain the maximum amount of resources. The maximum resource amount corresponding to the slot is determined as the first resource amount.
若该槽位为电路板上的卡槽,BIOS将该槽位作为该电路板上的接口,从该电路板的配置信息中查询该接口的配置信息,从该接口的配置信息中获取该接口对应的最大资源量,将该接口对应的最大资源量确定为该第一资源量。If the slot is a card slot on a circuit board, the BIOS will regard the slot as an interface on the circuit board, query the configuration information of the interface from the configuration information of the circuit board, and obtain the interface from the configuration information of the interface. The corresponding maximum resource amount is determined as the first resource amount.
403、BIOS从该硬件单元读取该硬件单元对应的第二资源量,该第二资源量为该硬件单元请求的资源量。403. The BIOS reads the second resource amount corresponding to the hardware unit from the hardware unit, and the second resource amount is the resource amount requested by the hardware unit.
在一种可能的实现方式中,当为该硬件单元分配总线后,BIOS根据为该硬件单元分配的总线,访问该硬件单元的配置空间中第一地址存储的配置信息。从该第一地址存储的配置信息中读取第二资源量。In a possible implementation, after allocating a bus to the hardware unit, the BIOS accesses the configuration information stored at the first address in the configuration space of the hardware unit based on the bus allocated to the hardware unit. Read the second amount of resources from the configuration information stored at the first address.
若该硬件单元不包括硬件子单元,则该第一地址存储的配置信息为该硬件单元的配置信息,若该硬件单元包括多个硬件子单元,则该第一地址存储的配置信息为该多个硬件子单元内第一个硬件子单元的配置信息。在一种可能的实现方式中,若该硬件单元包括多个硬件子单元,BIOS无权访问多个硬件单元中除第一个硬件子单元以外的其他硬件子单元的配置信息,对于这种情况,该第一地址存储的配置信息可能是该硬件单元的配置信息,也可能是该硬件单元中第一个硬件子单元的配置信息。If the hardware unit does not include a hardware subunit, the configuration information stored at the first address is the configuration information of the hardware unit. If the hardware unit includes multiple hardware subunits, the configuration information stored at the first address is the multiple hardware subunits. Configuration information of the first hardware subunit within each hardware subunit. In a possible implementation, if the hardware unit includes multiple hardware sub-units, the BIOS does not have the right to access the configuration information of the hardware sub-units other than the first hardware sub-unit in the multiple hardware units. In this case, , the configuration information stored at the first address may be the configuration information of the hardware unit, or it may be the configuration information of the first hardware subunit in the hardware unit.
若硬件单元包括多个硬件子单元,第二资源量包括第三资源量,为了在硬件单元包括多个硬件子单元的情况下,能够读取到多个第三资源量,BIOS根据该第一地址存储的配置信息内的最大资源量以及该第一资源量,确定该硬件单元是否包括硬件子单元,例如下述步骤4031-4033。If the hardware unit includes multiple hardware sub-units, and the second resource amount includes a third resource amount, in order to be able to read multiple third resource amounts when the hardware unit includes multiple hardware sub-units, the BIOS reads the third resource amount according to the first The maximum amount of resources in the configuration information stored at the address and the first amount of resources are determined to determine whether the hardware unit includes a hardware sub-unit, such as the following steps 4031-4033.
步骤4031、BIOS从该硬件单元的该第一地址读取目标资源量,该目标资源量为该第一 地址存储的配置信息中该资源对应的最大资源量。Step 4031: The BIOS reads the target resource amount from the first address of the hardware unit, and the target resource amount is the maximum resource amount corresponding to the resource in the configuration information stored at the first address.
其中,若硬件单元不包括硬件子单元,该目标资源量为该硬件单元对应的最大资源量。若该硬件单元包括多个硬件子单元,该目标资源量为该多个硬件子单元中第一个硬件子单元对应的最大资源量。此时,BIOS并不知道硬件单元是否包括硬件子单元,仍需要通过执行下述的步骤4032和4033来确定。Wherein, if the hardware unit does not include hardware sub-units, the target resource amount is the maximum resource amount corresponding to the hardware unit. If the hardware unit includes multiple hardware sub-units, the target resource amount is the maximum resource amount corresponding to the first hardware sub-unit among the multiple hardware sub-units. At this time, the BIOS does not know whether the hardware unit includes a hardware subunit, and it still needs to be determined by performing the following steps 4032 and 4033.
步骤4032、若第一资源量大于该目标资源量,BIOS根据该第一资源量与该目标资源量之间的倍数,为该硬件单元创建至少两个逻辑接口,该至少两个逻辑接口的个数等于该倍数,每个逻辑接口用于挂载该硬件单元的一个硬件子单元。Step 4032: If the first resource amount is greater than the target resource amount, the BIOS creates at least two logical interfaces for the hardware unit according to the multiple between the first resource amount and the target resource amount. The number is equal to this multiple, and each logical interface is used to mount one hardware subunit of this hardware unit.
若第一资源量大于该目标资源量,该硬件单元可能包括硬件子单元,也可能不包括硬件子单元。由于若硬件单元为外部设备,第一资源量是BIOS最多能够为该硬件单元分配的资源量,为了确定该硬件单元是否包括硬件子单元,BIOS假设该硬件单元包括多个硬件子单元,且每个硬件子单元对应的最大资源量均为目标资源量,则该BIOS根据该第一资源量与该目标资源量之间的倍数,为硬件单元创建至少两个逻辑接口,后续可根据该至少两个逻辑接口挂载硬件子单元的情况,确定该硬件单元是否包括硬件子单元。If the first amount of resources is greater than the target amount of resources, the hardware unit may or may not include hardware sub-units. If the hardware unit is an external device, the first amount of resources is the maximum amount of resources that the BIOS can allocate to the hardware unit. In order to determine whether the hardware unit includes a hardware subunit, the BIOS assumes that the hardware unit includes multiple hardware subunits, and each The maximum amount of resources corresponding to each hardware subunit is the target resource amount, then the BIOS creates at least two logical interfaces for the hardware unit based on the multiple between the first resource amount and the target resource amount. Subsequently, the BIOS can create at least two logical interfaces based on the at least two When a hardware subunit is mounted on a logical interface, determine whether the hardware unit includes a hardware subunit.
在一种可能的实现方式中,根据该第一资源量与该目标资源量之间的倍数,生成至少两个逻辑接口,建立该至少两个逻辑接口与该硬件单元之间的对应关系,以实现为该硬件单元创建至少两个逻辑接口。In a possible implementation, at least two logical interfaces are generated according to a multiple between the first resource amount and the target resource amount, and a corresponding relationship between the at least two logical interfaces and the hardware unit is established, so as to The implementation creates at least two logical interfaces for this hardware unit.
步骤4033、BIOS对该至少两个逻辑接口分别进行子单元挂载操作,该子单元挂载操作用于为该逻辑接口挂载硬件子单元。Step 4033: The BIOS performs a subunit mounting operation on the at least two logical interfaces respectively. The subunit mounting operation is used to mount hardware subunits for the logical interfaces.
在一种可能的实现方式中,BIOS通过建立逻辑接口与处理器之间的链路,对该链路进行配置,使得该链路能够访问该链路挂载的设备,以实现子单元挂载操作。例如,下述步骤40331-40332。In a possible implementation, the BIOS establishes a link between the logical interface and the processor and configures the link so that the link can access the device mounted on the link to implement subunit mounting. operate. For example, steps 40331-40332 below.
步骤40331、BIOS根据该至少两个逻辑接口,建立至少两个第一链路,每个第一链路对应一个逻辑接口,每个第一链路用于处理器与对应逻辑接口之间的通信。Step 40331: The BIOS establishes at least two first links based on the at least two logical interfaces. Each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface. .
其中,每个第一链路为该处理器与对应逻辑接口之间的链路。Wherein, each first link is a link between the processor and the corresponding logical interface.
在一种可能的实现方式中,建立每个逻辑接口与第二链路之间的对应关系,通过该对应关系指示每个逻辑接口所在的第一链路。其中,第二链路为该处理器与该硬件单元之间的链路。In a possible implementation manner, a corresponding relationship between each logical interface and the second link is established, and the first link where each logical interface is located is indicated through the corresponding relationship. The second link is a link between the processor and the hardware unit.
步骤40332、BIOS建立该至少两个逻辑接口、该至少两个第二链路以及至少两个第二地址之间的映射关系,每个第二地址是BIOS为对应逻辑接口挂载的硬件子单元分配的地址。Step 40332: The BIOS establishes a mapping relationship between the at least two logical interfaces, the at least two second links, and at least two second addresses. Each second address is a hardware subunit mounted by the BIOS for the corresponding logical interface. assigned address.
其中,第二地址为预分配给对应逻辑接口挂载的硬件子单元的MMIO地址。The second address is an MMIO address pre-allocated to the hardware subunit mounted on the corresponding logical interface.
对于该至少两个逻辑接口中的每个逻辑接口,BIOS为每个逻辑接口分别分配一个MMIO地址,将为每个逻辑接口分配的MMIO地址分别作为一个第二地址。当BIOS建立为每个逻辑接口分配完MMIO地址后,该硬件单元存在的硬件子单元能够映射至为每个逻辑接口的MMIO地址所指示的地址空间。For each of the at least two logical interfaces, the BIOS allocates an MMIO address to each logical interface, and the MMIO address allocated to each logical interface is used as a second address. After the BIOS is established and allocates MMIO addresses to each logical interface, the hardware subunits existing in the hardware unit can be mapped to the address space indicated by the MMIO address of each logical interface.
另外,该BIOS还能为每个逻辑接口分配一个总线,以便后续通过该总线访问该逻辑接口对应的硬件子单元。其中,为每个逻辑接口分配的总线和MMIO地址是为每个逻辑接口分配的临时资源。需要说明的是,BIOS为每个逻辑接口分配临时资源的方式与步骤4012中为硬件单元分配临时资源的方式同理,在此,本申请实施例对BIOS为每个逻辑接口分配临时 资源的方式不再赘述。In addition, the BIOS can also allocate a bus to each logical interface so that the hardware subunit corresponding to the logical interface can be subsequently accessed through the bus. Among them, the bus and MMIO addresses allocated for each logical interface are temporary resources allocated for each logical interface. It should be noted that the way the BIOS allocates temporary resources to each logical interface is the same as the way it allocates temporary resources to the hardware unit in step 4012. Here, the embodiment of the present application describes the way the BIOS allocates temporary resources to each logical interface. No longer.
BIOS对该至少两个逻辑接口分别进行子单元挂载操作后,BIOS查询该至少两个逻辑接口中的每个逻辑接口是否成功挂载硬件子单元,若该至少两个逻辑接口中的多个逻辑接口均成功挂载硬件子单元,则该硬件单元包括多个硬件子单元,若该至少两个逻辑接口中的仅有一个逻辑接口成功挂载硬件子单元,其他逻辑接口均挂载失败,说明该逻辑接口挂载的是硬件子单元为该硬件单元本身,则该硬件单元不包括硬件子单元。After the BIOS performs subunit mounting operations on the at least two logical interfaces, the BIOS queries whether each of the at least two logical interfaces successfully mounts the hardware subunit. If multiple of the at least two logical interfaces If all logical interfaces successfully mount the hardware subunit, then the hardware unit includes multiple hardware subunits. If only one logical interface among the at least two logical interfaces successfully mounts the hardware subunit, and the other logical interfaces fail to mount, It means that the hardware subunit mounted on this logical interface is the hardware unit itself, then the hardware unit does not include hardware subunits.
为了便于描述,以该至少两个逻辑接口中的一个逻辑接口为例,对BIOS查询该逻辑接口是否成功挂载硬件子单元做如下介绍:For the convenience of description, taking one logical interface among the at least two logical interfaces as an example, the BIOS queries whether the logical interface successfully mounts the hardware subunit is introduced as follows:
BIOS根据该至少两个逻辑接口、该至少两个第一链路以及至少两个总线之间的映射关系,确定每个逻辑接口对应的第一链路以及为每个逻辑接口分配的总线。对于该至少两个逻辑接口中的任一逻辑接口,BIOS通过为该逻辑接口分配的MMIO地址,访问该逻辑接口对应的第一链路,通过该第一链路访问该硬件单元的配置空间,若能够在该配置空间中查询到该硬件子单元的标识,则逻辑接口成功挂载硬件子单元。若在该配置空间中没有查询到该硬件子单元的标识,则说明该逻辑接口挂载失败。The BIOS determines the first link corresponding to each logical interface and the bus allocated to each logical interface based on the mapping relationship between the at least two logical interfaces, the at least two first links, and the at least two buses. For any one of the at least two logical interfaces, the BIOS accesses the first link corresponding to the logical interface through the MMIO address assigned to the logical interface, and accesses the configuration space of the hardware unit through the first link, If the identifier of the hardware subunit can be queried in the configuration space, the logical interface successfully mounts the hardware subunit. If the identifier of the hardware subunit is not found in the configuration space, it means that the logical interface fails to be mounted.
当确定出该硬件单元是否包括硬件子单元后,若该硬件单元不包括硬件子单元,则从第一地址读取到的目标资源量为该硬件单元对应的最大资源量,将该目标资源量作为该硬件单元的第二资源量。After determining whether the hardware unit includes a hardware subunit, if the hardware unit does not include a hardware subunit, the target resource amount read from the first address is the maximum resource amount corresponding to the hardware unit, and the target resource amount is As the second resource amount of the hardware unit.
若该硬件单元包括多个硬件子单元,则该目标资源量为该多个硬件子单元中第一个硬件子单元对应的最大资源量,则BIOS将该目标资源量作为该第一个硬件子单元对应的第三资源量。对于该多个硬件子单元中除第一个硬件子单元以外的任一硬件子单元,BIOS根据该至少两个逻辑接口、该至少两个第一链路以及至少两个总线之间的映射关系,确定该任一硬件子单元挂载的该逻辑接口所对应的第一链路以及为该逻辑接口分配的总线第二地址,通过为该逻辑接口分配的总线访问对应的第一链路,通过该第一链路访问该硬件单元中的配置空间,从该配置空间中读取该任一硬件子单元对应的最大资源量,将读取到的该任一硬件子单元对应的最大资源量作为该任一硬件子单元对应第三资源量。If the hardware unit includes multiple hardware sub-units, the target resource amount is the maximum resource amount corresponding to the first hardware sub-unit among the multiple hardware sub-units, and the BIOS uses the target resource amount as the first hardware sub-unit. The third resource amount corresponding to the unit. For any hardware subunit among the plurality of hardware subunits except the first hardware subunit, the BIOS determines the mapping relationship between the at least two logical interfaces, the at least two first links, and the at least two buses. , determine the first link corresponding to the logical interface mounted on any hardware subunit and the second address of the bus assigned to the logical interface, and access the corresponding first link through the bus assigned to the logical interface. The first link accesses the configuration space in the hardware unit, reads the maximum resource amount corresponding to any hardware sub-unit from the configuration space, and uses the read maximum resource amount corresponding to any hardware sub-unit as This any hardware subunit corresponds to the third amount of resources.
当获取到该硬件单元中每个硬件子单元对应的第三资源量后,该硬件单元对应的第二资源量获取完成。After obtaining the third resource amount corresponding to each hardware subunit in the hardware unit, the acquisition of the second resource amount corresponding to the hardware unit is completed.
上述步骤4031-4033是以若该硬件单元包括多个硬件子单元,BIOS有权访问多个硬件单元中第一个硬件子单元的配置信息为例进行说明,在另一种可能的实现方式中,若该硬件单元包括多个硬件子单元,BIOS有权访问多个硬件单元中各个硬件子单元的配置信息,对于这种情况,该硬件单元中第一地址存储的配置信息可能包括多个硬件单元中各个硬件子单元的配置信息。对于这种情况,该BIOS能够通过访问硬件单元中的第一地址,从第一地址中读取该硬件单元的各个硬件子单元对应的最大资源量,将各个硬件子单元对应的最大资源量分别作为一个第三资源量。The above steps 4031-4033 are explained by taking as an example that if the hardware unit includes multiple hardware sub-units, the BIOS has the right to access the configuration information of the first hardware sub-unit among the multiple hardware units. In another possible implementation, , if the hardware unit includes multiple hardware sub-units, the BIOS has the right to access the configuration information of each hardware sub-unit in the multiple hardware units. In this case, the configuration information stored at the first address in the hardware unit may include multiple hardware units. Configuration information of each hardware subunit in the unit. For this situation, the BIOS can access the first address in the hardware unit, read the maximum amount of resources corresponding to each hardware subunit of the hardware unit from the first address, and divide the maximum amount of resources corresponding to each hardware subunit into As a third resource.
404、BIOS根据该第一资源量以及该第二资源量,为该硬件单元分配该资源。404. The BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
其中,该资源为带宽,若该第一资源量大于或等于第二资源量,且该硬件单元不包括子硬件单元,BIOS为该硬件单元分配第一资源量的资源,或者,为该硬件单元分配第二资源量的资源,使得为该硬件单元分配的资源能够满足硬件单元的工作需求。Wherein, the resource is bandwidth. If the first resource amount is greater than or equal to the second resource amount, and the hardware unit does not include a sub-hardware unit, the BIOS allocates the first resource amount to the hardware unit, or allocates the first resource amount to the hardware unit. Allocate the second amount of resources so that the resources allocated to the hardware unit can meet the work requirements of the hardware unit.
若该第二资源量包括多个第三资源量,且该第一资源量大于或等于该多个第三资源量之 和,BIOS为该硬件单元的每个硬件子单元分别分配对应第三资源量的资源,使得该硬件单元中的每个硬件子单元均能够分配到足够的资源,以满足每个硬件单元的工作需求。If the second resource amount includes multiple third resource amounts, and the first resource amount is greater than or equal to the sum of the multiple third resource amounts, the BIOS allocates corresponding third resources to each hardware subunit of the hardware unit. The amount of resources enables each hardware subunit in the hardware unit to be allocated sufficient resources to meet the work requirements of each hardware unit.
本申请实施例提供的方法,电路板的BIOS根据电路板为硬件单元预分配的资源量以及硬件单元请求的资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。In the method provided by the embodiment of the present application, the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can Allocate resources, thereby saving BIOS maintenance costs.
图5是本申请实施例提供的一种硬件单元为处理器时的资源分配方法的流程图,该电路板与硬件单元连接,该硬件单元用于提供硬件资源,该方法应用与该电路板的BIOS,该方法包括如下步骤501-505。Figure 5 is a flow chart of a resource allocation method when the hardware unit is a processor provided by an embodiment of the present application. The circuit board is connected to the hardware unit. The hardware unit is used to provide hardware resources. The method is applied to the circuit board. BIOS, the method includes the following steps 501-505.
501、BIOS对该电路板所连接的硬件单元进行识别。501. The BIOS identifies the hardware unit connected to the circuit board.
其中,本步骤501与上述步骤401同理,在此,本申请实施例对本步骤501不在赘述。This step 501 is the same as the above-mentioned step 401. Here, this step 501 will not be described again in this embodiment of the present application.
502、若识别出的硬件单元为处理器,且该处理器挂载有至少一个外部设备,BIOS将该资源的平均资源量作为该硬件单元对应的第一资源量。502. If the identified hardware unit is a processor, and the processor is mounted with at least one external device, the BIOS uses the average resource amount of the resource as the first resource amount corresponding to the hardware unit.
其中,该平均资源量为该资源的总资源量除以该电路板上多个处理器的总个数。The average resource amount is the total resource amount divided by the total number of processors on the circuit board.
在一种可能的实现方式中,该电路板的配置信息中存储有该平均资源量,该BIOS从该配置信息中获取该平均资源量,将该平均资源量作为该硬件单元对应的第一资源量。In a possible implementation, the average resource amount is stored in the configuration information of the circuit board, the BIOS obtains the average resource amount from the configuration information, and uses the average resource amount as the first resource corresponding to the hardware unit quantity.
在另一种可能的实现方式中,该电路板的配置信息中存储有该电路板上多个处理器的总个数以及该资源的总资源量,BIOS将该总资源量除以该总个数,得到该平均资源量,将该平均资源量作为该硬件单元的第一资源量。In another possible implementation, the configuration information of the circuit board stores the total number of multiple processors on the circuit board and the total amount of resources, and the BIOS divides the total amount of resources by the total amount of resources. number, the average resource amount is obtained, and the average resource amount is used as the first resource amount of the hardware unit.
503、若该资源为总线,BIOS将该硬件单元挂载的至少一个外部设备请求的总资源量与第四资源量之和作为该硬件单元的第二资源量。503. If the resource is a bus, the BIOS uses the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit.
其中,第四资源量是BIOS为目标槽位的热插拔功能预分配的总资源量,目标槽位为所述至少一个槽位中具有热插拔功能的槽位。该至少一个外部设备请求的总资源量等于第一个数与第二个数之和,该第一个数为该至少一个外部设备中第一外部设备的总个数,该第二个数为该至少一个外部设备中第二外部设备内硬件子单元的总个数,该第一外部设备为该至少一个外部设备中不包括硬件子单元的外部设备,该第二外部设备为该至少一个外部设备中包括硬件子单元的外部设备。The fourth amount of resources is the total amount of resources pre-allocated by the BIOS for the hot-plug function of the target slot, and the target slot is the slot with the hot-plug function among the at least one slot. The total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number. The first number is the total number of first external devices in the at least one external device. The second number is The total number of hardware subunits in the second external device of the at least one external device, the first external device is an external device that does not include hardware subunits of the at least one external device, and the second external device is the at least one external device. A device includes an external device that is a hardware subunit.
由于每个第一外部设备在工作的过程中占用一个总线,且第二外部设备中的每个硬件子单元在工作的过程中也占用一个总线,则当该资源为总线时,后续该至少一个外部设备在工作过程中请求的总资源量可能达到该至少一个外部设备中第一外部设备的总个数(即第一个数)与第二外部设备中硬件子单元的总个数(即第二个数)之和,因此,当该资源为总线时,至少一个外部设备请求的总资源量等于第一个数和第二个数之和。Since each first external device occupies a bus during operation, and each hardware subunit in the second external device also occupies a bus during operation, when the resource is a bus, the subsequent at least one The total amount of resources requested by the external device during operation may reach the total number of first external devices (i.e., the first number) in the at least one external device and the total number of hardware subunits (i.e., the second external device) in the second external device. The sum of two numbers), therefore, when the resource is a bus, the total amount of resources requested by at least one external device is equal to the sum of the first number and the second number.
另外,对于具有热插拔功能的目标槽位,后续用户可能对该目标槽位进行热插拔,而目标槽位在进行热插拔时会请求一定量的总线,则BIOS先为该至少一个槽位中的目标槽位的热插拔功能预留第四资源量的总线。可以理解的是,第四资源量为该至少一个槽位中目标槽位请求的该资源的总资源量,其中,该至少一个槽位中的目标槽位有一个或多个。In addition, for a target slot with hot-swap function, subsequent users may hot-swap the target slot, and the target slot will request a certain amount of buses during hot-swapping, so the BIOS will first request at least one bus. The hot plug function of the target slot in the slot reserves a fourth amount of bus resources. It can be understood that the fourth resource amount is the total resource amount requested by the target slot in the at least one slot, where there are one or more target slots in the at least one slot.
由于该至少一个外部设备通过该至少一个槽位挂载在该硬件单元下,因此,而至少一个外部设备请求的总线以及该目标槽位请求的总线之和为该硬件单元请求的资源量,则该硬件单元对应的第二资源量等于该至少一个外部设备请求的总资源量与第四资源量之和。Since the at least one external device is mounted under the hardware unit through the at least one slot, the sum of the bus requested by the at least one external device and the bus requested by the target slot is the amount of resources requested by the hardware unit, then The second resource amount corresponding to the hardware unit is equal to the sum of the total resource amount requested by the at least one external device and the fourth resource amount.
在执行本步骤503之前,BIOS先获取该至少一个外部设备请求的总资源量以及第四资源 量,例如下述的步骤5031-5034所示的过程。Before executing this step 503, the BIOS first obtains the total resource amount and the fourth resource amount requested by the at least one external device, such as the processes shown in the following steps 5031-5034.
步骤5031、BIOS统计该至少一个外部设备中该第一外部设备的总个数,得到该第一个数。Step 5031: The BIOS counts the total number of the first external devices in the at least one external device to obtain the first number.
在一种可能的实现方式中,BIOS从该硬件单元的配置信息中,查询该硬件单元对应的至少一个接口。BIOS将第一外部设备的总个数从0开始计数,对于查询到的该至少一个接口中的任一接口,若已经获取到该任一接口所连接的外部设备对应的第二资源量,说明硬件单元挂载有该任一接口连接的外部设备。对于该任一接口连接的任一外部设备,若该任一外部设备对应的第二资源量为该任一外部设备对应的最大资源量,说明该任一外部设备不包括硬件子单元,该任一外部设备为第一外部设备,第一外部设备的总个数的计数加1。若该任一外部设备对应的第二资源量包括多个第三资源量,说明该任一外部设备包括多个硬件子单元,该任一外部设备为第二外部设备,则第一外部设备的总个数的计数不变。In a possible implementation, the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit. The BIOS starts counting the total number of first external devices from 0. For any interface in the at least one queried interface, if the second resource amount corresponding to the external device connected to any interface has been obtained, explain The hardware unit is mounted with external devices connected to any interface. For any external device connected to any interface, if the second resource amount corresponding to any external device is the maximum resource amount corresponding to any external device, it means that any external device does not include a hardware subunit, and any external device does not include a hardware subunit. One external device is a first external device, and the count of the total number of first external devices is incremented by 1. If the second resource amount corresponding to any external device includes multiple third resource amounts, it means that any external device includes multiple hardware subunits, and any external device is a second external device, then the first external device The total count remains unchanged.
若没有获取到该任一接口所连接的每个外部设备对应的第二资源量,BIOS对该任一接口所连接的每个外部设备进行识别,每个识别成功一个外部设备,说明识别成功的该外部设备挂载在该硬件单元,BIOS根据该外部设备中第一地址存储的最大资源量以及该外部设备对应的第一资源量,确定该外部设备是否包括硬件子单元,若该外部设备不包括硬件子单元,则该外部设备为第一外部设备,第一外部设备的总个数的计数加1。若该外部设备包括多个硬件子单元,则该外部设备为第二外部设备,则第一外部设备的总个数的计数不变。If the second resource amount corresponding to each external device connected to any interface is not obtained, the BIOS identifies each external device connected to any interface. Each external device is successfully identified, indicating that the identification is successful. The external device is mounted on the hardware unit. The BIOS determines whether the external device includes a hardware subunit based on the maximum resource amount stored at the first address in the external device and the first resource amount corresponding to the external device. If the external device does not Including hardware subunits, the external device is the first external device, and the count of the total number of first external devices is incremented by 1. If the external device includes multiple hardware subunits, the external device is a second external device, and the total number of first external devices remains unchanged.
按照上述的方式,当BIOS查询完该处理器对应的至少一个接口后,第一外部设备的总个数的计数结果为第一个数。In the above manner, after the BIOS queries at least one interface corresponding to the processor, the counting result of the total number of first external devices is the first number.
步骤5032、BIOS统计该至少一个外部设备中第二外部设备内硬件子单元的总个数,得到第二个数。Step 5032: The BIOS counts the total number of hardware subunits in the second external device in the at least one external device to obtain the second number.
在一种可能的实现方式,BIOS从该硬件单元的配置信息中,查询该硬件单元对应的至少一个接口。BIOS将第二外部设备的总个数从0开始计数,对于查询到的该至少一个接口中的任一接口,若已经获取到该任一接口所连接的每个外部设备对应的第二资源量,对于该任一接口连接的任一硬件单元,若该任一外部设备对应的第二资源量为该任一外部设备对应的最大资源量,说明该任一外部设备不包括硬件子单元,该任一外部设备为第一外部设备,第二外部设备的总个数的计数不变。若该任一外部设备对应的第二资源量包括多个第三资源量,说明该任一外部设备包括多个硬件子单元,该任一外部设备为第二外部设备,则第二外部设备的总个数的计数增加该任一硬件单元中硬件子单元的总个数。In a possible implementation manner, the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit. The BIOS starts counting the total number of second external devices from 0. For any interface among the queried at least one interface, if the second resource amount corresponding to each external device connected to any interface has been obtained , for any hardware unit connected to any interface, if the second resource amount corresponding to any external device is the maximum resource amount corresponding to any external device, it means that any external device does not include a hardware sub-unit, and the If any external device is the first external device, the total number of second external devices remains unchanged. If the second resource amount corresponding to any external device includes multiple third resource amounts, it means that any external device includes multiple hardware subunits, and any external device is a second external device, then the second external device The total number count is increased by the total number of hardware subunits in any hardware unit.
若没有获取到该任一接口所连接的每个外部设备对应的第二资源量,对该任一接口所连接的每个外部设备进行识别,每个识别成功一个外部设备,BIOS根据该外部设备中第一地址存储的最大资源量以及该外部设备对应的第一资源量,确定该外部设备是否包括硬件子单元,若该外部设备不包括硬件子单元,则该外部设备为第一外部设备,第二外部设备的总个数的计数不变。若该外部设备包括多个硬件子单元,则该外部设备为第二外部设备,则第二外部设备的总个数的计数增加该硬件单元中硬件子单元的总个数。If the second resource amount corresponding to each external device connected to any interface is not obtained, each external device connected to any interface is identified. Each external device is successfully identified, and the BIOS determines the external device according to the external device. The maximum amount of resources stored at the first address and the first amount of resources corresponding to the external device are determined to determine whether the external device includes a hardware subunit. If the external device does not include a hardware subunit, the external device is the first external device, The count of the total number of second external devices remains unchanged. If the external device includes multiple hardware sub-units, the external device is a second external device, and the count of the total number of second external devices is increased by the total number of hardware sub-units in the hardware unit.
按照上述的方式,当BIOS查询完该处理器对应的至少一个接口后,第二外部设备的总个数的计数结果为第二个数。According to the above method, after the BIOS queries at least one interface corresponding to the processor, the counting result of the total number of second external devices is the second number.
需要说明的是,BIOS对外部设备进行识别的过程在上述步骤401中有相关介绍,BIOS根据外部设备中该第一地址存储的配置信息内的最大资源量以及该第一资源量,确定该外部 设备是否包括硬件子单元的过程在步骤403中有相关介绍,在此,本申请实施例对步骤5031和步骤5032中BIOS对该任一接口所连接的每个外部设备进行识别的过程以及BIOS根据外部设备中第一地址存储的最大资源量以及该外部设备对应的第一资源量,确定该外部设备是否包括硬件子单元的过程,不再赘述。It should be noted that the process of BIOS identifying an external device is described in step 401 above. The BIOS determines the external device based on the maximum resource amount and the first resource amount in the configuration information stored at the first address in the external device. The process of whether the device includes hardware subunits is introduced in step 403. Here, the embodiment of the present application describes the process of the BIOS identifying each external device connected to any interface in steps 5031 and 5032 and the BIOS based on The maximum resource amount stored at the first address in the external device and the first resource amount corresponding to the external device, and the process of determining whether the external device includes a hardware subunit will not be described again.
上述是以第一外部设备的总个数和硬件子单元的总个数分别计数为例进行说明的,BIOS还可能先执行步骤5032,再执行本步骤5031,在此,本申请实施例对本步骤5031-5032的执行顺序不做限定。在另一种可能的实现方式中,BIOS对第一外部设备的总个数进行的计数以及对第二外部设备的总个数进行的计数可能同时进行,也可能不同时进行。例如,BIOS每确定出一个外部设备为第一外部设备,则第一外部设备的总个数加1,每确定出一个外部设备为第二外部设备,则第二外部设备的总个数增加该外部设备中硬件子单元的总个数。The above description is based on the example of counting the total number of first external devices and the total number of hardware subunits. The BIOS may also perform step 5032 first and then perform step 5031. Here, the embodiment of the present application does not include this step. The execution order of 5031-5032 is not limited. In another possible implementation, the BIOS may count the total number of first external devices and the total number of second external devices at the same time, or may not at the same time. For example, every time the BIOS determines that an external device is a first external device, the total number of first external devices is incremented by 1. Every time the BIOS determines that an external device is a second external device, the total number of second external devices is incremented by 1. The total number of hardware subunits in the external device.
步骤5033、BIOS将统计出的该第一个数与该第二个数之和作为该至少一个外部设备请求的总资源量。Step 5033: The BIOS uses the calculated sum of the first number and the second number as the total amount of resources requested by the at least one external device.
上述是以先分别统计第一个数和第二个数,再将第一个数和第二个数作为该至少一个外部设备请求的总资源量为例进行说明的。在另一种可能的实现方式中,直接对该至少一个外部设备请求的总资源量进行计数。例如,BIOS从0开始计数,按照上述步骤5031或5032中的方式对该至少一个外部设备进行查询。在查询的过程中,BIOS每确定出一个外部设备为第一外部设备,则计数加1,每确定出一个外部设备为第二外部设备,则计数增加该外部设备中硬件子单元的总个数。当查询完该至少一个外部设备后,最终的计数结果为该至少一个外部设备请求的总资源量。The above description is based on the example of first counting the first number and the second number respectively, and then taking the first number and the second number as the total amount of resources requested by the at least one external device. In another possible implementation manner, the total amount of resources requested by the at least one external device is directly counted. For example, the BIOS starts counting from 0 and queries the at least one external device in the manner in step 5031 or 5032 above. During the query process, each time the BIOS determines that an external device is the first external device, the count is incremented by 1. Each time the BIOS determines that an external device is the second external device, the count is incremented by the total number of hardware subunits in the external device. . After querying the at least one external device, the final counting result is the total amount of resources requested by the at least one external device.
步骤5034、BIOS根据该至少一个槽位中该目标槽位的个数,确定第四资源量。Step 5034: The BIOS determines the fourth resource amount according to the number of the target slots in the at least one slot.
在一种可能的实现方式中,该BIOS统计该至少一个槽位中该目标槽位的个数,得到第三个数。考虑到单个目标槽位进行热插拔时,单个目标槽位请求的总线的最大资源量为第五资源量,则该BIOS将第五资源量与第三个数的积作为第四资源量。其中,根据不同的应用场景下的槽位,第五资源量的取值可能有所不同,在此,本申请实施例对第五资源量的取值范围不做限定。In a possible implementation manner, the BIOS counts the number of the target slots in the at least one slot and obtains a third number. Considering that when a single target slot is hot-plugged, the maximum resource amount of the bus requested by a single target slot is the fifth resource amount, then the BIOS uses the product of the fifth resource amount and the third number as the fourth resource amount. Among them, the value of the fifth resource amount may be different according to the slots in different application scenarios. Here, the embodiment of the present application does not limit the value range of the fifth resource amount.
第三个数为该至少一个槽位中该目标槽位的个数,下面对BIOS统计该至少一个槽位中该目标槽位的个数的过程作如下介绍:The third number is the number of the target slot in at least one slot. The process of BIOS counting the number of target slots in the at least one slot is introduced below:
在一种可能的实现方式中,BIOS对目标槽位的个数从0开始计数,对于该至少一个槽位中的任一槽位,当该硬件单元的控制寄存器中存储有该连接器的配置信息时,则BIOS从该控制寄存器中该连接器的配置信息内,获取该槽位的配置信息。In a possible implementation, the BIOS starts counting the number of target slots from 0. For any of the at least one slot, when the control register of the hardware unit stores the configuration of the connector information, the BIOS obtains the configuration information of the slot from the configuration information of the connector in the control register.
当该硬件单元的控制寄存器中没有存储该连接器的配置信息时,若该槽位为连接器上的卡槽时,BIOS访问该连接器,从该连接器的配置信息中读取该槽位的配置信息。若该任一槽位为电路板上的卡槽,则该任一槽位为该电路上的接口,BIOS从该电路板的配置信息中获取该槽位的配置信息。When the control register of the hardware unit does not store the configuration information of the connector, if the slot is a card slot on the connector, the BIOS accesses the connector and reads the slot from the connector's configuration information. configuration information. If any slot is a card slot on a circuit board, then any slot is an interface on the circuit, and the BIOS obtains the configuration information of the slot from the configuration information of the circuit board.
当获取到该槽位的配置信息后,若该槽位的配置信息包括目标标识,说明该槽位具有热插拔功能,该槽位为目标槽位,则目标槽位的个数的计数加1。若该槽位的配置信息不包括目标标识,说明该槽位不具有热插拔功能,该槽位不是目标槽位,则目标槽位的个数的计数不变。After obtaining the configuration information of the slot, if the configuration information of the slot includes the target identifier, it means that the slot has the hot-swappable function and the slot is the target slot, and the count of the number of target slots is incremented. 1. If the configuration information of the slot does not include the target identifier, it means that the slot does not have the hot-swappable function and the slot is not a target slot, so the count of the number of target slots remains unchanged.
按照上述方式,当BIOS查询完该至少一个槽位后,目标槽位的个数的计数结果为第三 个数。According to the above method, after the BIOS queries the at least one slot, the counting result of the number of target slots is the third number.
当确定出该至少一个外部设备请求的总资源量以及该第四资源量之后,BIOS将该至少一个外部设备请求的总资源量与第四资源量之和作为该硬件单元的第二资源量。After determining the total resource amount requested by the at least one external device and the fourth resource amount, the BIOS uses the sum of the total resource amount requested by the at least one external device and the fourth resource amount as the second resource amount of the hardware unit.
需要说明的是,上述是以先确定该至少一个外部设备请求的总资源量,再确定第四资源量为例进行说明的是,再另一种实现方式中,BIOS还能先确定该第四资源量,再确定该至少一个外部设备请求的总资源量,或者是,同时确定第四资源量以及该至少一个外部设备请求的总资源量。It should be noted that the above is an example of first determining the total resource amount requested by the at least one external device and then determining the fourth resource amount. In another implementation manner, the BIOS can also first determine the fourth resource amount. The amount of resources, and then determine the total amount of resources requested by the at least one external device, or determine the fourth amount of resources and the total amount of resources requested by the at least one external device at the same time.
上述是以接口的热插拔功能占用总线为例进行的说明的,若接口具有的其他功能还可能占用总线,则将其他功能可能占用的总线数量增加到接口请求的资源量中,同理,若外部设备具有的其他功能还可能占用总线,则将其他功能可能占用的总线数量增加到外部设备请求的资源量中。The above description is based on the example of the hot-swapping function of the interface occupying the bus. If other functions of the interface may also occupy the bus, the number of buses that may be occupied by other functions is added to the amount of resources requested by the interface. Similarly, If the external device has other functions that may also occupy the bus, the number of buses that other functions may occupy is added to the amount of resources requested by the external device.
504、若该资源为MMIO地址,BIOS将该硬件单元挂载的至少一个外部设备请求的资源量之和作为该硬件单元对应的第二资源量。504. If the resource is an MMIO address, the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit.
在一种可能的实现方式中,本步骤5041包括下述步骤5041和5042。In a possible implementation, this step 5041 includes the following steps 5041 and 5042.
步骤5041、对于该至少一个外部设备中的每个外部设备,BIOS获取每个外部设备请求的资源量。Step 5041: For each external device in the at least one external device, the BIOS obtains the resource amount requested by each external device.
由于外部设备的子硬件设备在后续的工作过中也可能请求MMIO地址,因此,对于该至少一个外部设备中每个外部设备,若该外部设备不包括硬件子单元,BIOS将该外部设备对应的最大资源量作为该部设备请求的资源量,若该外部设备包括多个硬件子单元,BIOS将该多个硬件子单元对应的最大资源量之和作为该部设备请求的资源量。Since the sub-hardware devices of the external device may also request the MMIO address in subsequent work processes, for each external device in the at least one external device, if the external device does not include a hardware subunit, the BIOS will The maximum resource amount is used as the resource amount requested by the device. If the external device includes multiple hardware sub-units, the BIOS takes the sum of the maximum resource amounts corresponding to the multiple hardware sub-units as the resource amount requested by the device.
在一种可能的实现方式,BIOS从该硬件单元的配置信息中,查询该硬件单元对应的至少一个接口。对于查询到的该至少一个接口中的任一接口,若当前没有获取该任一接口所连接的每个外部设备对应的第二资源量,则对该任一接口所连接的每个外部设备进行识别,每个识别成功一个外部设备,说明该外部设备挂载该硬件单元,获取该外部设备对应的第二资源量。或者是,在识别到该至少一个接口所连接的至少一个外部设备后,BIOS获取该至少一个外部设备中每个外部设备对应的第二资源量。In a possible implementation manner, the BIOS queries at least one interface corresponding to the hardware unit from the configuration information of the hardware unit. For any one of the queried at least one interface, if the second resource amount corresponding to each external device connected to any interface is not currently obtained, then perform the following operations on each external device connected to any interface: Identification, each successful identification of an external device means that the external device mounts the hardware unit and obtains the second amount of resources corresponding to the external device. Alternatively, after identifying at least one external device connected to the at least one interface, the BIOS obtains the second resource amount corresponding to each external device in the at least one external device.
若当前已经获取到该任一接口所连接的至少一个外部设备对应的第二资源量,说明该至少一个外部设备已经识别完成,则获取之前已经获取到的该至少一个外部设备中每个外部设备对应的第二资源量。If the second resource amount corresponding to at least one external device connected to any interface has been obtained, it means that the identification of the at least one external device has been completed, and then each external device in the at least one external device that has been obtained before is obtained. The corresponding second resource amount.
由于当外部设备不包括硬件子单元时,外部设备对应的第二资源量等于外部设备对应的最大资源量,当外部设备包括多个硬件子单元时,外部设备的对应的第二资源量包括多个第三资源量,且每个第三资源量为一个硬件子单元对应的最大资源量,因此,对于该至少一个外部设备中的每个外部设备,当获取到该外部设备对应的第二资源量后,若该外部设备不包括硬件子单元,则将该外部设备对应的第二资源量作为该外部设备请求的资源量,若该外部设备包括多个硬件子单元,则将该外部设备对应的第二资源量所包括的多个第三资源量之和作为该外部设备请求的资源量。Because when the external device does not include a hardware subunit, the second resource amount corresponding to the external device is equal to the maximum resource amount corresponding to the external device, and when the external device includes multiple hardware subunits, the corresponding second resource amount of the external device includes multiple third resource amounts, and each third resource amount is the maximum resource amount corresponding to a hardware subunit. Therefore, for each external device in the at least one external device, when the second resource corresponding to the external device is obtained After measuring, if the external device does not include a hardware subunit, the second resource amount corresponding to the external device is used as the resource amount requested by the external device. If the external device includes multiple hardware subunits, the second resource amount corresponding to the external device is used as the resource amount requested by the external device. The sum of a plurality of third resource amounts included in the second resource amount is used as the resource amount requested by the external device.
步骤5042、BIOS将该至少一个外部设备请求的资源量之和作为该硬件单元对应的第二资源量。Step 5042: The BIOS uses the sum of the resource amounts requested by the at least one external device as the second resource amount corresponding to the hardware unit.
需要说明的是,步骤503和步骤504为不同资源的情况下获取该硬件单元对应第二资源 量的过程,步骤503和步骤504为并列步骤。It should be noted that steps 503 and 504 are the process of obtaining the second resource amount corresponding to the hardware unit in the case of different resources, and steps 503 and 504 are parallel steps.
505、BIOS根据该第一资源量以及该第二资源量,为该硬件单元分配该资源。505. The BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
在一种可能的实现方式中,若该第一资源量小于该第二资源量,且该多个处理器中存在目标处理器,将该目标处理器多余的资源分配给该硬件单元,使得该硬件单元能够分配到该第二资源量的资源。其中,该电路板为该目标处理器预分配的该资源的资源量大于该目标处理器请求的资源量,可以理解的是,该目标处理器为多个处理器中对应第一资源量大于对应第二资源量的处理器。In a possible implementation, if the first amount of resources is less than the second amount of resources, and there is a target processor in the plurality of processors, the redundant resources of the target processor are allocated to the hardware unit, so that the The hardware unit can be allocated the second amount of resources. Wherein, the resource amount pre-allocated by the circuit board to the target processor is greater than the resource amount requested by the target processor. It can be understood that the target processor is a corresponding first resource amount among multiple processors that is greater than the corresponding resource amount. A processor with a second amount of resources.
若第一资源量小于第二资源量,将第二资源量与第一资源量之间的差值称为第六资源量。其中,该多个处理器中存在至少一个目标处理器,若该至少一个目标处理器中存在一个多余资源量大于或等于第六资源量的目标处理器,则BIOS回收该目标处理器的多余资源量中第六资源量的资源,将该目标处理器的多余资源量中第六资源量的资源分配给该硬件单元以及为该硬件单元预分配的第二资源量的资源,使得该硬件单元能够分配到该第二资源量的资源,其中,目标处理器的多余资源量为该目标处理器对应第二资源量与对应第一资源量之差。例如,硬件单元对应的第一资源量为64,第二资源量为72,则第六资源量为8,若该至少一个目标处理器中目标处理器1的多余资源量大于或等于8,则将目标处理器1的8个资源分配给该硬件单元。If the first resource amount is less than the second resource amount, the difference between the second resource amount and the first resource amount is called the sixth resource amount. Wherein, there is at least one target processor among the plurality of processors. If there is a target processor with an excess resource amount greater than or equal to the sixth resource amount in the at least one target processor, the BIOS reclaims the excess resources of the target processor. A sixth amount of resources among the amount of excess resources of the target processor is allocated to the hardware unit and a second amount of resources pre-allocated to the hardware unit, so that the hardware unit can The resources allocated to the second resource amount, wherein the excess resource amount of the target processor is the difference between the corresponding second resource amount and the corresponding first resource amount of the target processor. For example, the first resource amount corresponding to the hardware unit is 64, the second resource amount is 72, then the sixth resource amount is 8. If the excess resource amount of target processor 1 in the at least one target processor is greater than or equal to 8, then Allocate 8 resources of target processor 1 to this hardware unit.
若该多个处理器中存在多个目标处理器,且该多个目标处理器中不存在多余资源量大于或等于第六资源量的目标处理器,则BIOS从该多个目标处理器中至少一个目标处理器的多余资源量中回收第六资源量的资源,并将回收的第六资源量的资源分配给该硬件单元。例如,硬件单元对应的第一资源量为64,第二资源量为72,则第六资源量为8,若该多个目标处理器中目标处理器2的多余资源量为5,若该多个目标处理器中目标处理器3的多余资源量为3,则将目标处理器2的5个资源以及目标处理器3的3个资源分配给该硬件单元。或者,若该多个目标处理器中目标处理器4-7的多余资源量均为3,若将目标处理器4-7中每个目标处理器的2个资源均分配给该硬件单元。If there are multiple target processors in the plurality of processors, and there is no target processor in the plurality of target processors whose excess resource amount is greater than or equal to the sixth resource amount, the BIOS will select at least one of the target processors from the plurality of target processors. A sixth amount of resources is reclaimed from excess resources of a target processor, and the reclaimed sixth amount of resources is allocated to the hardware unit. For example, the first resource amount corresponding to the hardware unit is 64, the second resource amount is 72, then the sixth resource amount is 8. If the excess resource amount of the target processor 2 among the multiple target processors is 5, if the multiple target processors have The amount of excess resources of target processor 3 among the target processors is 3, then 5 resources of target processor 2 and 3 resources of target processor 3 are allocated to the hardware unit. Or, if the excess resources of the target processors 4-7 among the multiple target processors are all 3, allocate 2 resources of each of the target processors 4-7 to the hardware unit.
当查询完该电路板上的各个目标处理器的多余资源量后,若硬件单元无法分配到第二资源量的资源,则BIOS确定该硬件单元能够分配到的最大资源量,其中,该硬件单元能够分配到的最大资源量小于该第二资源量,关闭该硬件单元所挂载的至少一个第三外部设备,将该多个处理器中目标处理器的多余资源量内第七资源量的资源分配给该硬件单元。其中,该至少一个第三外部设备请求的资源量之和大于或等于第七资源量,该第七资源量为该硬件单元对应的第二资源量与该硬件单元能够分配到的最大资源量之差。After querying the excess resources of each target processor on the circuit board, if the hardware unit cannot allocate the second amount of resources, the BIOS determines the maximum amount of resources that the hardware unit can allocate, where, the hardware unit The maximum amount of resources that can be allocated is less than the second amount of resources, turn off at least one third external device mounted on the hardware unit, and use the seventh amount of resources among the excess resources of the target processor in the plurality of processors. assigned to this hardware unit. Wherein, the sum of the resource amounts requested by the at least one third external device is greater than or equal to a seventh resource amount, and the seventh resource amount is the sum of the second resource amount corresponding to the hardware unit and the maximum resource amount that the hardware unit can allocate. Difference.
其中,BIOS关闭该硬件单元所挂载的至少一个第三外部设备包括该BIOS关闭处理器与每个第三外部设备之间的链路。Wherein, the BIOS closing at least one third external device mounted on the hardware unit includes the BIOS closing the link between the processor and each third external device.
本申请实施例提供的方法,电路板的BIOS根据电路板为硬件单元预分配的资源量以及硬件单元请求的资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。该第一资源量小于该第二资源量,且该多个处理器中存在目标处理器,将该目标处理器多余的资源分配给该硬件单元,使得该硬件单元能够分配到该第二资源量的资源,以满足该硬件单元的工作需求,以便后续该硬件单元能够正常工作。In the method provided by the embodiment of the present application, the BIOS of the circuit board automatically allocates resources to the hardware unit based on the amount of resources pre-allocated by the circuit board for the hardware unit and the amount of resources requested by the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can Allocate resources, thereby saving BIOS maintenance costs. The first amount of resources is less than the second amount of resources, and there is a target processor in the plurality of processors. Allocate excess resources of the target processor to the hardware unit so that the hardware unit can allocate the second amount of resources. resources to meet the working requirements of the hardware unit so that the subsequent hardware unit can work normally.
图6是本申请实施例提供的另一种硬件单元为外部设备时的资源分配方法的流程图,该 电路板与硬件单元连接,该电路板包括资源管理器,该资源管理器与BIOS连接,该硬件单元用于提供硬件资源,该方法应用于该电路板的BIOS,该方法包括如下步骤601-603。Figure 6 is a flow chart of another resource allocation method when the hardware unit is an external device provided by an embodiment of the present application. The circuit board is connected to the hardware unit. The circuit board includes a resource manager, and the resource manager is connected to the BIOS. The hardware unit is used to provide hardware resources. The method is applied to the BIOS of the circuit board. The method includes the following steps 601-603.
601、若该硬件单元为外部设备,BIOS通过该资源管理器,获取该硬件单元对应的第一资源量,其中,该第一资源量是该电路板为该硬件单元预分配的资源量。601. If the hardware unit is an external device, the BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager, where the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
在一种可能的实现方式中,该硬件单元通过槽位与该电路板连接,BIOS通过资源管理器,读取该硬件单元所在槽位对应的最大资源量,将读取到该硬件单元的对应最大资源量作为该硬件单元对应的第一资源量。In a possible implementation, the hardware unit is connected to the circuit board through a slot, and the BIOS reads the maximum amount of resources corresponding to the slot where the hardware unit is located through the resource manager, and reads the corresponding The maximum resource amount is used as the first resource amount corresponding to the hardware unit.
下面对BIOS通过资源管理器,读取该硬件单元所在槽位对应的最大资源量的过程作如下介绍:The following is an introduction to the process of the BIOS reading the maximum amount of resources corresponding to the slot where the hardware unit is located through the resource manager:
在一种可能的实现方式中,若该电路板与连接器连接,且该槽位为该连接器上的卡槽,该硬件单元与该槽位连接,BIOS通过资源管理器,从该连接器读取该槽位对应的最大资源量,BIOS将该槽位对应的最大资源量作为该硬件单元对应的第一资源量。若该槽位为电路板上的卡槽,该硬件单元与该槽位连接,该资源管理器分别与BIOS以及该槽位连接,BIOS通过该资源管理器,获取该槽位对应的最大资源量,将该槽位对应的最大资源量作为该硬件单元对应的第一资源量。In a possible implementation, if the circuit board is connected to a connector, and the slot is a card slot on the connector, and the hardware unit is connected to the slot, the BIOS can access the card from the connector through the resource manager. The maximum resource amount corresponding to the slot is read, and the BIOS uses the maximum resource amount corresponding to the slot as the first resource amount corresponding to the hardware unit. If the slot is a card slot on the circuit board, the hardware unit is connected to the slot, and the resource manager is connected to the BIOS and the slot respectively. The BIOS obtains the maximum amount of resources corresponding to the slot through the resource manager. , using the maximum amount of resources corresponding to the slot as the first amount of resources corresponding to the hardware unit.
其中,BIOS通过资源管理器,从该连接器读取该槽位对应的最大资源量包括:该BIOS通过向资源管理器下达指令,从资源管理器读取该硬件单元所在槽位对应的最大资源量。Among them, the BIOS reads the maximum amount of resources corresponding to the slot from the connector through the resource manager, including: the BIOS reads the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager by issuing instructions to the resource manager. quantity.
在一种可能的实现方式中,该BIOS通过向资源管理器下达指令,从资源管理器读取该硬件单元所在槽位对应的最大资源量的方式包括下述方式C或者方式D中任一方式。In a possible implementation manner, the BIOS sends an instruction to the resource manager to read the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager, including any of the following methods C or D. .
方式C、BIOS向资源量管理器发送第一获取请求,资源量管理器接收该第一获取请求,根据该第一获取请求,读取该硬件单元所在槽位对应的最大资源量,向BIOS发送该硬件单元所在槽位对应的最大资源量。相应地,BIOS从资源管理器接收该硬件单元所在槽位对应的最大资源量。Method C: The BIOS sends a first acquisition request to the resource manager. The resource manager receives the first acquisition request, reads the maximum resource amount corresponding to the slot where the hardware unit is located according to the first acquisition request, and sends it to the BIOS. The maximum amount of resources corresponding to the slot where the hardware unit is located. Correspondingly, the BIOS receives the maximum amount of resources corresponding to the slot where the hardware unit is located from the resource manager.
其中,第一获取请求用于指示获取该硬件单元所在槽位对应的最大资源量。若BIOS还未识别该硬件单元,则该第一获取请求包括电路板上该硬件单元所连接的接口的标识,若BIOS已经识别到该硬件单元,则该第一获取请求包括该硬件单元的标识以及电路板上该硬件单元所连接的接口的标识。The first acquisition request is used to indicate acquiring the maximum amount of resources corresponding to the slot where the hardware unit is located. If the BIOS has not recognized the hardware unit, the first acquisition request includes the identification of the interface to which the hardware unit is connected on the circuit board. If the BIOS has identified the hardware unit, the first acquisition request includes the identification of the hardware unit. and the identification of the interface on the circuit board to which the hardware unit is connected.
当资源管理器获取到该第一获取请求后,解析该第一获取请求,若从该第一获取请求中解析出接口的标识,且没有解析出该硬件单元的标识,资源管理器根据解析出的该接口的标识,识别该接口所连接的每个外部设备,若识别出该接口连接有至少一个外部设备,资源管理器读取该至少一个外部设备所在槽位对应的最大资源量,将读取的该至少一个外部设备所在槽位对应的最大资源量发送给BIOS,相应地,BIOS从资源管理器接收该至少一个外部设备所在槽位对应的最大资源量,BIOS将该至少一个外部设备中的任一外部设备作为该硬件单元,将该硬件单元所在槽位对应的最大资源量作为该硬件单元对应的第一资源量。After the resource manager obtains the first acquisition request, it parses the first acquisition request. If the identifier of the interface is parsed from the first acquisition request and the identifier of the hardware unit is not parsed, the resource manager parses the The identifier of the interface identifies each external device connected to the interface. If it is recognized that the interface is connected to at least one external device, the resource manager reads the maximum resource amount corresponding to the slot where the at least one external device is located, and reads The obtained maximum amount of resources corresponding to the slot where the at least one external device is located is sent to the BIOS. Correspondingly, the BIOS receives the maximum amount of resources corresponding to the slot where the at least one external device is located from the resource manager, and the BIOS sends the maximum amount of resources corresponding to the slot where the at least one external device is located. Any external device is used as the hardware unit, and the maximum resource amount corresponding to the slot where the hardware unit is located is used as the first resource amount corresponding to the hardware unit.
若从第一获取请求解析出接口的标识以及该硬件单元的标识,资源管理器根据该接口的标识以及该硬件单元的标识,读取硬件单元所在槽位对应的最大资源量,将该硬件单元所在槽位对应的最大资源量发送给BIOS。相应地,BIOS从资源管理器接收该硬件单元所在槽位对应的最大资源量,将该硬件单元所在槽位对应的最大资源量作为该硬件单元对应的第一资源量。If the identifier of the interface and the identifier of the hardware unit are parsed out from the first acquisition request, the resource manager reads the maximum amount of resources corresponding to the slot where the hardware unit is located based on the identifier of the interface and the identifier of the hardware unit, and transfers the The maximum amount of resources corresponding to the slot is sent to the BIOS. Correspondingly, the BIOS receives the maximum resource amount corresponding to the slot where the hardware unit is located from the resource manager, and uses the maximum resource amount corresponding to the slot where the hardware unit is located as the first resource amount corresponding to the hardware unit.
其中,对于该接口所连接的每个外部设备,若该外部设备与该接口直接连接,该接口也即是该外部设备所在的槽位,资源管理器从该接口的配置信息中读取该接口对应的最大资源量。若该外部设备通过连接器与该接口连接,资源管理器从该连接器读取该外部设备所在槽位对应的最大资源量。Among them, for each external device connected to the interface, if the external device is directly connected to the interface, the interface is also the slot where the external device is located, and the resource manager reads the interface from the configuration information of the interface. The corresponding maximum amount of resources. If the external device is connected to the interface through a connector, the resource manager reads the maximum amount of resources corresponding to the slot where the external device is located from the connector.
方式D、资源管理器中存储有至少一个硬件单元所在槽位对应的最大资源量,BIOS向资源量管理器发送第一获取请求,资源量管理器接收该第一获取请求,根据该第一获取请求,将向BIOS发送该至少一个硬件单元中该硬件单元所在槽位对应的最大资源量。Method D. The resource manager stores the maximum amount of resources corresponding to the slot of at least one hardware unit. The BIOS sends a first acquisition request to the resource manager. The resource manager receives the first acquisition request. According to the first acquisition The request will send the maximum amount of resources corresponding to the slot of the at least one hardware unit to the BIOS.
当电路板上电后,该资源管理器识别该电路板所连接各个外部设备,将识别成功的至少一个外部设备作为该电路板连接的至少一个硬件单元,分别读取该至少一个硬件单元所在槽位对应的最大资源量,存储读取到的至少一个硬件单元所在槽位对应的最大资源量。其中,BIOS读取硬件单元所在槽位的过程在方式C中有相关介绍,在此,本申请实施例对BIOS分别读取该至少一个硬件单元所在槽位对应的最大资源量的过程不再赘述。When the circuit board is powered on, the resource manager identifies each external device connected to the circuit board, identifies at least one external device that is successfully identified as at least one hardware unit connected to the circuit board, and reads the slot where the at least one hardware unit is located. The maximum amount of resources corresponding to a bit stores the read maximum amount of resources corresponding to the slot where at least one hardware unit is located. Among them, the process of the BIOS reading the slot where the hardware unit is located is related to the introduction in method C. Here, the embodiment of the present application will not go into details about the process of the BIOS reading the maximum amount of resources corresponding to the slot where the at least one hardware unit is located. .
当该资源管理器接收到该第一获取请求后,若能从该第一获取请求中解析出该硬件单元的标识,则该资源管理器根据该硬件单元的标识,从存储的至少一个硬件单元所在槽位对应的最大资源量中,获取该硬件单元所在槽位对应的最大资源量,向该BIOS发送该硬件单元所在槽位对应的最大资源量。After the resource manager receives the first acquisition request, if the identifier of the hardware unit can be parsed from the first acquisition request, the resource manager obtains the identifier of the hardware unit from at least one stored hardware unit according to the identifier of the hardware unit. Obtain the maximum resource amount corresponding to the slot where the hardware unit is located among the maximum resource amounts corresponding to the slot where the hardware unit is located, and send the maximum resource amount corresponding to the slot where the hardware unit is located to the BIOS.
若从该第一获取请求中没有解析出该硬件单元的标识,且解析出该硬件单元所连接的接口的标识,则该资源管理器根据该接口的标识,从存储的至少一个硬件单元所在槽位对应的最大资源量中,获取该接口所连接的每个该硬件单元所在槽位对应的最大资源量,向该BIOS发送该接口所连接的每个该硬件单元所在槽位对应的最大资源量。If the identifier of the hardware unit is not parsed from the first acquisition request and the identifier of the interface connected to the hardware unit is parsed, the resource manager retrieves the stored slot of at least one hardware unit based on the identifier of the interface. From the maximum resource amount corresponding to the bit, obtain the maximum resource amount corresponding to the slot of each hardware unit connected to the interface, and send the maximum resource amount corresponding to the slot of each hardware unit connected to the interface to the BIOS. .
对于方式D,由于资源管理器中存储有至少一个硬件单元所在槽位对应的最大资源量,BIOS在采用方式D获取硬件单元所在槽位对应的最大资源量时,资源管理器在接收到第一获取请求后,无需读取硬件单元所在槽位对应的最大资源量,减少了硬件单元所在槽位对应的最大资源量的读取时间,提高了BIOS获取硬件单元所在槽位对应的最大资源量的效率。For mode D, since the resource manager stores the maximum amount of resources corresponding to at least one slot of the hardware unit, when the BIOS uses method D to obtain the maximum amount of resources corresponding to the slot of the hardware unit, the resource manager receives the first After obtaining the request, there is no need to read the maximum amount of resources corresponding to the slot where the hardware unit is located, which reduces the time for reading the maximum amount of resources corresponding to the slot where the hardware unit is located, and improves the efficiency of the BIOS in obtaining the maximum amount of resources corresponding to the slot where the hardware unit is located. efficiency.
需要说明的是,资源管理器对该接口连接的外部设备进行识别的过程与步骤401中BIOS识别外部设备的过程同理,在此,本申请实施例对资源管理器对该接口连接的外部设备进行识别的过程,不再赘述。It should be noted that the process of the resource manager identifying the external device connected to the interface is the same as the process of the BIOS identifying the external device in step 401. Here, the embodiment of the present application does not require the resource manager to identify the external device connected to the interface. The process of identification will not be described again.
602、若该硬件单元为外部设备,BIOS从该硬件单元读取该硬件单元对应的第二资源量,其中,该第二资源量是该硬件单元请求的资源量。602. If the hardware unit is an external device, the BIOS reads the second resource amount corresponding to the hardware unit from the hardware unit, where the second resource amount is the resource amount requested by the hardware unit.
其中,本步骤602与步骤403同理,在此,本申请实施例对本步骤602不再赘述。Step 602 is the same as step 403. This step 602 will not be described again in this embodiment of the present application.
603、BIOS根据该第一资源量以及该第二资源量,为该硬件单元分配该资源。603. The BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
其中,本步骤603与步骤404同理,在此,本申请实施例对本步骤603不再赘述。Step 603 is the same as step 404. This step 603 will not be described again in this embodiment of the present application.
本申请实施例提供的方法,电路板的BIOS通过资源管理器获取硬件单元对应的第一资源量,从该硬件单元读取该硬件单元对应的第二资源量,根据第一资源量以及第二资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。且通过资源管理器为BIOS提供硬件单元对应的第一资源和第二资源量,降低了BIOS的工作量。In the method provided by the embodiment of the present application, the BIOS of the circuit board obtains the first resource amount corresponding to the hardware unit through the resource manager, reads the second resource amount corresponding to the hardware unit from the hardware unit, and based on the first resource amount and the second resource amount, The amount of resources automatically allocates resources to the hardware unit. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thus saving BIOS maintenance costs. In addition, the resource manager provides the BIOS with the first resource and the second resource amount corresponding to the hardware unit, thereby reducing the workload of the BIOS.
上述图6所示的实施例,是以BIOS从资源管理器获取一个硬件单元所在槽位的最大资源量为例进行说明的,在另一种可能的实现方式中,以BIOS还能够从资源管理器获取多个 硬件单元所在槽位的最大资源量。下面以图7所示的本申请实施例提供的一种电路板的结构示意图为例,结合图8所示的本申请实施例提供的一种为Riser卡分配带宽的流程图,对这种情况做如下介绍:The above embodiment shown in Figure 6 is explained by taking the BIOS to obtain the maximum resource amount of a slot of a hardware unit from the resource manager as an example. In another possible implementation, the BIOS can also obtain the maximum resource amount from the resource manager. The controller obtains the maximum resource amount of the slots where multiple hardware units are located. The following takes the schematic structural diagram of a circuit board provided by the embodiment of the present application shown in Figure 7 as an example, combined with the flow chart of allocating bandwidth for a riser card provided by the embodiment of the present application shown in Figure 8. In this case, Make the following introduction:
以图7中的电路板为主板为例,图7所示的主板包括CPU、PCIE桥、运行BIOS的目标芯片、CPLD以及6个接口,其中,主板的CPLD为主板中的资源管理器,6个接口分别为接口1-6。主板中的CPLD获取该电路板连接的各个外部设备配置信息,以便主动向BIOS发送各个外部设备对应的第一资源量和第二资源量,或者根据BIOS的指令,向BIOS发送各个外部设备对应的第一资源量和第二资源量。以主板上的接口4为例,接口4与连接器连接,连接器为Riser卡,Riser卡包括CPLD,l连接器的CPLD为MCU或者电可擦除可编程的只读存储器(electrically erasable and programmable read only memory,EEPROM)。Take the circuit board in Figure 7 as an example. The motherboard shown in Figure 7 includes a CPU, PCIE bridge, target chip running BIOS, CPLD, and 6 interfaces. Among them, the CPLD of the motherboard is the resource manager in the motherboard. 6 The interfaces are interfaces 1-6 respectively. The CPLD in the motherboard obtains the configuration information of each external device connected to the circuit board, so as to actively send the first resource amount and the second resource amount corresponding to each external device to the BIOS, or to send the corresponding first resource amount and second resource amount of each external device to the BIOS according to the instructions of the BIOS. The first resource amount and the second resource amount. Take interface 4 on the motherboard as an example. Interface 4 is connected to a connector. The connector is a riser card. The riser card includes a CPLD. The CPLD of the l connector is an MCU or an electrically erasable and programmable read-only memory (electrically erasable and programmable). read only memory, EEPROM).
主板上电后,对于与连接器连接的各个接口,主板的CPLD分别从各个接口获取其所连接的连接器的配置信息。以接口4为例,主板的CPLD通过接口4与Riser卡的CPLD进行通信,从Riser卡的CPLD进行通信,以获取Riser卡的配置信息,该配置信息包括Riser卡的设备类型、Riser卡的卡槽个数、热插拔支持情况以及每个卡槽支持的最大带宽(即每个卡槽对应的最大资源量)。主板的CPLD获取到Riser卡的配置信息后,解析获取到的Riser卡的配置信息,并存储解析出的配置信息的内容。主板的CPLD还通过接口的标识与链路之间的对应关系,确定Riser卡上每个卡槽对应的链路(即处理器与卡槽之间的链路)。After the mainboard is powered on, for each interface connected to the connector, the CPLD of the mainboard obtains the configuration information of the connector connected to it from each interface. Taking interface 4 as an example, the CPLD of the motherboard communicates with the CPLD of the riser card through interface 4, and communicates from the CPLD of the riser card to obtain the configuration information of the riser card. The configuration information includes the device type of the riser card, the card number of the riser card. The number of slots, hot-swappable support, and the maximum bandwidth supported by each card slot (that is, the maximum amount of resources corresponding to each card slot). After the mainboard's CPLD obtains the configuration information of the riser card, it parses the obtained configuration information of the riser card and stores the contents of the parsed configuration information. The motherboard's CPLD also determines the link corresponding to each card slot on the riser card (that is, the link between the processor and the card slot) through the corresponding relationship between the interface identifier and the link.
BIOS启动时,BIOS发送第二获取请求给主板的CPLD,该第二获取请求指示获取主板上每个CPU所挂载的每个连接器的配置信息,以顺序获取每个CPU挂载的每个连接器的配置信息。主板的CPLD根据第二获取请求,从存储的各个连接器的配置信息中,向BIOS发送每个CPU挂载的每个连接器的配置信息。When the BIOS starts, the BIOS sends a second acquisition request to the CPLD of the motherboard. The second acquisition request instructs to obtain the configuration information of each connector mounted on each CPU on the motherboard, and obtain each connector mounted on each CPU in sequence. Configuration information for the connector. Based on the second acquisition request, the CPLD of the motherboard sends the configuration information of each connector mounted on each CPU to the BIOS from the stored configuration information of each connector.
BIOS在接收到每个CPU挂载的每个连接器的配置信息后,BIOS还能从每个连接器的配置信息中获取对应连接器的每个卡槽支持的最大带宽(即第一资源量)。After the BIOS receives the configuration information of each connector mounted on each CPU, the BIOS can also obtain the maximum bandwidth (i.e. the first resource amount) supported by each card slot of the corresponding connector from the configuration information of each connector. ).
BIOS在接收到每个CPU挂载的每个连接器的配置信息后,根据每个CPU挂载的每个连接器的配置信息,建立每个连接器的卡槽与对CPU之间的链路。仍以图7所示的Riser卡为例,BIOS将Riser卡的配置信息配置到对应CPU的控制寄存器,CPU根据Riser卡的配置信息,建立Riser卡的卡槽与CPU之间的链路,该链路包括CPU与接口4之间的PCIE桥。After receiving the configuration information of each connector mounted on each CPU, the BIOS establishes a link between the card slot of each connector and the corresponding CPU based on the configuration information of each connector mounted on each CPU. . Still taking the riser card shown in Figure 7 as an example, the BIOS configures the configuration information of the riser card to the control register of the corresponding CPU. The CPU establishes a link between the card slot of the riser card and the CPU based on the configuration information of the riser card. The link consists of a PCIE bridge between the CPU and interface 4.
之后,BIOS通过为每个卡槽建立的链路,从每个卡槽连接的外部设备中,分别读取外部设备支持的最大带宽(即第二资源量),以便根据每个外部设备所在卡槽支持的最大带宽以及每个外部设备支持的最大带宽,为每个外部设备分配带宽。After that, the BIOS reads the maximum bandwidth (i.e., the second resource amount) supported by the external device from the external device connected to each card slot through the link established for each card slot, so as to determine the maximum bandwidth supported by the external device according to the card on which each external device is located. The maximum bandwidth supported by the slot and the maximum bandwidth supported by each external device, allocating bandwidth to each external device.
另外,建链完成后,若卡槽支持热插拔,BIOS使能热插拔能力,启用热插拔中断。In addition, after the link establishment is completed, if the card slot supports hot swap, the BIOS enables the hot swap capability and enables the hot swap interrupt.
为了进一步说明外部设备包括对个硬件子设备时,BIOS为外部设备分配带宽的过程,参见图9所示的本申请实施例提供的一种为多芯片的PCIE设备分配带宽的流程图。每个PCIE设备对应一个PCIE桥(即CPU到PCIE设备之间的链路),而多芯片的PCIE设备中每个芯片相当于一个硬件子单元(即一个逻辑PCIE设备),若多芯片的PCIE设备对外呈现一个物理插卡,PCIE设备在配置过程中,需要配置多个PCIE桥。如果只配置一个PCIE桥,会出现设备丢失,设备无法正常使用的情况。To further explain the process of BIOS allocating bandwidth to an external device when the external device includes a pair of hardware sub-devices, refer to the flow chart of allocating bandwidth for a multi-chip PCIE device provided by an embodiment of the present application shown in Figure 9 . Each PCIE device corresponds to a PCIE bridge (that is, the link between the CPU and the PCIE device), and each chip in the multi-chip PCIE device is equivalent to a hardware subunit (that is, a logical PCIE device). If the multi-chip PCIE The device presents a physical plug-in card to the outside world. During the configuration process of the PCIE device, multiple PCIE bridges need to be configured. If only one PCIE bridge is configured, the device may be lost and the device cannot be used normally.
例如一张带宽为X8的PCIE设备,插在X8卡槽上,PCIE设备内含有4个硬件子单元,每个硬件子单元的最大带宽均为X2。仍以电路板为主板,资源管理器为CPLD为例,BIOS 启动时,主板的CPLD获取该PCIE设备所在卡槽支持的最大带宽X8。BIOS从主板的CPLD获取到该卡槽支持的最大带宽后,将该卡槽的配置信息存储在CPU的控制寄存器,CPU根据该卡槽的配置信息,建立CPU与该卡槽之间的PCIE链路。在建链完成后,BIOS查询该卡槽对应的PCIE链路的连接状态。如果连接成功,BIOS使能CPU的地址翻译功能,并为该PCIE设备分配临时总线(如CPU总线范围为0-63,则分配总线1给PCIE设备,但PCIE设备在操作系系统运行时所使用总线不一定是总线1)以及临时MMIO地址。BIOS通过临时总线以及临时MMIO地址,访问PCIE设备的PCIE配置空间,从中获取PCIE设备支持的支持带宽。BIOS比较PCIE设备所在卡槽支持的最大带宽和PCIE设备支持的最大带宽,如果PCIE设备支持的最大带宽小于卡槽支持的最大带宽,则触发如下带宽自动调整流程:For example, a PCIE device with a bandwidth of X8 is inserted into an X8 card slot. The PCIE device contains 4 hardware subunits, and the maximum bandwidth of each hardware subunit is X2. Taking the circuit board as the main board and the resource manager as the CPLD as an example, when the BIOS is started, the mainboard's CPLD obtains the maximum bandwidth X8 supported by the card slot where the PCIE device is located. After the BIOS obtains the maximum bandwidth supported by the card slot from the motherboard's CPLD, it stores the configuration information of the card slot in the control register of the CPU. The CPU establishes a PCIE link between the CPU and the card slot based on the configuration information of the card slot. road. After the link establishment is completed, the BIOS queries the connection status of the PCIE link corresponding to the card slot. If the connection is successful, the BIOS enables the CPU's address translation function and allocates a temporary bus to the PCIE device (for example, the CPU bus range is 0-63, then allocate bus 1 to the PCIE device, but the PCIE device is used when the operating system is running The bus is not necessarily bus 1) and the temporary MMIO address. BIOS accesses the PCIE configuration space of the PCIE device through the temporary bus and temporary MMIO address, and obtains the supported bandwidth supported by the PCIE device. The BIOS compares the maximum bandwidth supported by the card slot where the PCIE device is located with the maximum bandwidth supported by the PCIE device. If the maximum bandwidth supported by the PCIE device is less than the maximum bandwidth supported by the card slot, the following automatic bandwidth adjustment process is triggered:
例如,如果获取到PCIE设备支持的最大带宽是X2,卡槽支持的最大带宽是X8,BIOS将卡槽支持的带宽拆分为多份,为该PCIE设备重新配置带宽以及建立链路。若卡槽对应链路为PCIE桥1,则BIOS建立逻辑接口1-4,将PCIE桥1-4分别分配给逻辑接口1-4中的每个逻辑接口,配置CPU侧的PCIE桥1-4的带宽均为X2,并进行重新初始化建链。BIOS查询PCIE桥2-4的建链状态,若建链成功后,重新分配临时资源,并读取PCIE设备的配置空间,查询新的链路(如PCIE桥2-4)是否有下挂有硬件子单元。如有,说明该PCIE包括4个硬件子单元,之前获取到的获取到PCIE设备支持的最大带宽是X2为4个硬件子单元中第一个硬件子单元支持的最大带宽,则继续启动;如果没有,则BIOS丢弃X2带宽的配置,恢复原有X8的带宽配置,并继续启动。For example, if it is obtained that the maximum bandwidth supported by the PCIE device is X2 and the maximum bandwidth supported by the card slot is X8, the BIOS will split the bandwidth supported by the card slot into multiple parts, reconfigure the bandwidth for the PCIE device, and establish a link. If the corresponding link of the card slot is PCIE bridge 1, the BIOS creates logical interfaces 1-4, assigns PCIE bridges 1-4 to each logical interface in logical interfaces 1-4, and configures PCIE bridge 1-4 on the CPU side The bandwidth is all X2, and the link is re-initialized. The BIOS queries the link establishment status of PCIE bridge 2-4. If the link establishment is successful, it reallocates temporary resources, reads the configuration space of the PCIE device, and queries whether the new link (such as PCIE bridge 2-4) is connected. Hardware subunit. If yes, it means that the PCIE includes 4 hardware sub-units. The maximum bandwidth supported by the PCIE device obtained previously is the maximum bandwidth supported by X2 for the first hardware sub-unit among the 4 hardware sub-units, then continue to start; if If not, the BIOS discards the X2 bandwidth configuration, restores the original X8 bandwidth configuration, and continues booting.
图10是本申请实施例提供的另一种硬件单元为处理器时电路板的资源分配方法的流程图,该电路板与硬件单元连接,该电路板包括资源管理器,该资源管理器分别与BIOS以及该硬件单元连接,该硬件单元用于提供硬件资源,该方法应用于该电路板的BIOS,该方法包括如下步骤1001-1003。Figure 10 is a flow chart of a resource allocation method of a circuit board when the hardware unit is a processor provided by another embodiment of the present application. The circuit board is connected to the hardware unit. The circuit board includes a resource manager, and the resource manager is connected to The BIOS is connected to the hardware unit. The hardware unit is used to provide hardware resources. The method is applied to the BIOS of the circuit board. The method includes the following steps 1001-1003.
1001、若该硬件单元为处理器,BIOS通过该资源管理器,获取该硬件单元对应的第一资源量,其中,该第一资源量是该电路板为该硬件单元预分配的资源量。1001. If the hardware unit is a processor, the BIOS obtains the first resource amount corresponding to the hardware unit through the resource manager, where the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit.
在一种可能的实现方式中,BIOS通过下述方式E或F中的任一方式,实现本步骤1001。In a possible implementation manner, the BIOS implements step 1001 in any of the following manners E or F.
方式E、资源管理器中存储有多种资源的平均资源量,BIOS向该资源管理器发送第三获取请求,该资源管理器接收该第三获取请求,根据接收的第三获取请求,向BIOS发送该多种资源中至少一种资源的平均资源量。BIOS接收到该至少一种资源的平均资源量后,将该至少一种资源的平均资源量分别作为该硬件单元对应的一个第一资源量。Method E. The average resource amount of multiple resources is stored in the resource manager. The BIOS sends a third acquisition request to the resource manager. The resource manager receives the third acquisition request and sends the request to the BIOS according to the received third acquisition request. The average resource amount of at least one resource among the multiple resources is sent. After receiving the average resource amount of the at least one resource, the BIOS uses the average resource amount of the at least one resource as a first resource amount corresponding to the hardware unit.
其中,该多种资源包括总线和MMIO地址,该第三获取请求用于指示获取该多种资源中至少一种资源的平均资源量。Wherein, the multiple resources include bus and MMIO addresses, and the third acquisition request is used to indicate acquiring an average resource amount of at least one resource among the multiple resources.
在一种可能的实现方式中,该第三获取请求包括至少一种资源的标识。当资源管理器接收到该第三获取请求后,从该第三获取请求中解析出该至少一种资源的标识,资源管理器根据该至少一种资源的标识,从存储的多种资源的平均资源量中,获取该至少一种资源的平均资源量,向BIOS发送获取到的该至少一种资源的平均资源量。若BIOS从资源管理器接收到该至少一种资源的平均资源量,则BIOS将该至少一种资源的平均资源量分别作为该硬件单元对应的一个第一资源量。In a possible implementation, the third acquisition request includes an identification of at least one resource. After the resource manager receives the third acquisition request, it parses the identifier of the at least one resource from the third acquisition request. The resource manager obtains the average value of the stored multiple resources based on the identifier of the at least one resource. In the resource amount, the average resource amount of the at least one resource is obtained, and the obtained average resource amount of the at least one resource is sent to the BIOS. If the BIOS receives the average resource amount of the at least one resource from the resource manager, the BIOS uses the average resource amount of the at least one resource as a first resource amount corresponding to the hardware unit.
或者,资源管理器接收到该第三获取请求后,向该BIOS发送该至少一种资源的总资源量以及该电路板上处理器的个数,当BIOS接收到该至少一种资源的总资源量以及该电路板 上处理器的个数,对于该至少一种资源中的每种资源,BIOS将该资源的总资源量除以该处理器的个数,得到该硬件单元对应的第一资源量。Alternatively, after receiving the third acquisition request, the resource manager sends the total resource amount of the at least one resource and the number of processors on the circuit board to the BIOS. When the BIOS receives the total resource amount of the at least one resource, amount and the number of processors on the circuit board. For each resource in the at least one resource, the BIOS divides the total resource amount of the resource by the number of the processor to obtain the first resource corresponding to the hardware unit. quantity.
方式F、资源管理器中存储有至少一个处理器对应的第一资源量,BIOS向该资源管理器发送第四获取请求,该资源管理器接收该第四获取请求,根据接收的第四获取请求,向BIOS发送该至少一个处理器中该硬件单元的对应的第一资源量。相应地,BIOS接收到该硬件单元的对应的第一资源量。Method F: The resource manager stores the first resource amount corresponding to at least one processor. The BIOS sends a fourth acquisition request to the resource manager. The resource manager receives the fourth acquisition request. According to the received fourth acquisition request , sending the corresponding first resource amount of the hardware unit in the at least one processor to the BIOS. Correspondingly, the BIOS receives the corresponding first resource amount of the hardware unit.
其中,至少一个处理器中每个硬件单元对应的第一资源量有至少一个,每个硬件单元对象的每个第一资源量为总线的资源量或MMIO地址的资源量。该第四获取请求用于指示获取该硬件单元对应的第一资源量。There is at least one first resource amount corresponding to each hardware unit in at least one processor, and each first resource amount of each hardware unit object is a resource amount of a bus or a resource amount of an MMIO address. The fourth acquisition request is used to indicate acquiring the first resource amount corresponding to the hardware unit.
在一种可能的实现方式中,该第四获取请求包括该硬件单元的标识。当资源管理器接收到该第四获取请求后,从该第四获取请求中解析出该硬件单元的标识,资源管理器根据该硬件单元的标识,从存储的至少一个处理器对应的第一资源量中,获取该硬件单元对应的第一资源量,向BIOS发送获取到的该硬件单元对应的第一资源量。相应地,BIOS能够接收到该硬件单元的对应的第一资源量。In a possible implementation, the fourth acquisition request includes an identification of the hardware unit. After the resource manager receives the fourth acquisition request, it parses the identification of the hardware unit from the fourth acquisition request. The resource manager obtains the first resource corresponding to at least one processor from the storage according to the identification of the hardware unit. In the amount, obtain the first resource amount corresponding to the hardware unit, and send the obtained first resource amount corresponding to the hardware unit to the BIOS. Correspondingly, the BIOS can receive the corresponding first resource amount of the hardware unit.
1002、若该硬件单元为处理器,BIOS获取该硬件单元对应的第二资源量,其中,该第二资源量是该硬件单元请求的资源量。1002. If the hardware unit is a processor, the BIOS obtains the second resource amount corresponding to the hardware unit, where the second resource amount is the resource amount requested by the hardware unit.
其中,若待分配的资源为总线,BIOS将该硬件单元挂载的至少一个外部设备请求的总资源量与第四资源量之和作为该硬件单元的第二资源量。BIOS将该硬件单元挂载的至少一个外部设备请求的总资源量与第四资源量之和作为该硬件单元的第二资源量的过程请参见上述步骤502。If the resource to be allocated is a bus, the BIOS takes the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit. Please refer to the above-mentioned step 502 for the process in which the BIOS uses the sum of the total resource amount requested by at least one external device mounted on the hardware unit and the fourth resource amount as the second resource amount of the hardware unit.
若待分配的资源为MMIO地址,BIOS将该硬件单元挂载的至少一个外部设备请求的资源量之和作为该硬件单元对应的第二资源量。BIOS将该硬件单元挂载的至少一个外部设备请求的资源量之和作为该硬件单元对应的第二资源量的过程请参见上述步骤503。If the resource to be allocated is an MMIO address, the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit. Please refer to the above step 503 for the process in which the BIOS uses the sum of the resource amounts requested by at least one external device mounted on the hardware unit as the second resource amount corresponding to the hardware unit.
1003、BIOS根据该第一资源量以及该第二资源量,为该硬件单元分配该资源。1003. The BIOS allocates the resource to the hardware unit according to the first resource amount and the second resource amount.
其中,本步骤1003与步骤505同理,在此,本申请实施例对本步骤1003不再赘述。Among them, this step 1003 is the same as step 505. Here, this embodiment of the present application will not elaborate on this step 1003.
本申请实施例提供的方法,电路板的BIOS通过资源管理器获取硬件单元对应的第一资源量,获取该硬件单元对应的第二资源量,根据第一资源量以及第二资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。且通过资源管理器为BIOS提供硬件单元对应的第一资源和第二资源量,降低了BIOS的工作量。In the method provided by the embodiment of the present application, the BIOS of the circuit board obtains the first resource amount corresponding to the hardware unit through the resource manager, and obtains the second resource amount corresponding to the hardware unit. According to the first resource amount and the second resource amount, the hardware The unit automatically allocates resources. Therefore, there is no need to upgrade the BIOS, and the BIOS can allocate resources to the hardware unit, thus saving BIOS maintenance costs. In addition, the resource manager provides the BIOS with the first resource and the second resource amount corresponding to the hardware unit, thereby reducing the workload of the BIOS.
为了进一步说明图10所示的过程,下面以硬件单元为CPU,参见图11所示的本申请实施例提供的一种为CPU分配总线的流程图。如图11所示,BIOS在启动过程中,向主板(即电路板)的CPLD(即资源管理器)发送命令,以获取主板支持的最大CPU数量,根据获取的最大CPU数量,为主板上的每个CPU均分BUS资源。例如,一个4P的服务器的主板有4个CPU,一共有256个BUS号(即256个总线),则BIOS初始给每个CPU分别分配64(256/4)个BUS号。In order to further explain the process shown in Figure 10, the hardware unit is taken as the CPU below, and refer to the flow chart of allocating a bus to the CPU provided by the embodiment of the present application shown in Figure 11. As shown in Figure 11, during the startup process, the BIOS sends a command to the CPLD (resource manager) of the mainboard (i.e., circuit board) to obtain the maximum number of CPUs supported by the mainboard. Based on the maximum number of CPUs obtained, the number of CPUs on the mainboard is Each CPU shares BUS resources equally. For example, if the motherboard of a 4P server has 4 CPUs and a total of 256 BUS numbers (i.e. 256 buses), the BIOS initially allocates 64 (256/4) BUS numbers to each CPU.
BIOS从主板的CPLD获取外部设备所在的槽位数量、每个槽位上逻辑外部设备(包括第一外部设备和第二外部中的各个硬件子单元)的数量以及每个逻辑外部设备的链路的标识。The BIOS obtains the number of slots where the external device is located, the number of logical external devices in each slot (including each hardware subunit in the first external device and the second external device), and the link of each logical external device from the CPLD of the motherboard. logo.
其中,获取每个槽位上逻辑外部设备的数量的过程包括:BIOS使能CPU的地址翻译功 能,并给每个槽位连接的外部设备分配临时总线和临时MMIO地址。然后,BIOS读取每个槽位连接的外部设备的配置空间,判断其是否为有效的外部设备(例如,读取厂商的标识和外部设备的标识,如果厂商的标识和外部设备的标识的取值均不为全FF,则即外部设备有效)。如果外部设备有效,则确定该外部设备是否包括硬件子单元,如不包括硬件子单元,则则累加外部设备的数量,如果包括硬件子单元,则累加硬件子单元的数量。扫描完所有槽位对应的链路所连接的外部设备后,获取每个CPU挂载的逻辑外部设备的数量,根据每个逻辑设备后续能占用的总线个数(如每个逻辑设备占用1-2个BUS号),进而统计出每个CPU需要的BUS总数量(即每个CPU对应的第二资源量)。Among them, the process of obtaining the number of logical external devices in each slot includes: BIOS enables the address translation function of the CPU and allocates temporary bus and temporary MMIO addresses to the external devices connected to each slot. Then, the BIOS reads the configuration space of the external device connected to each slot to determine whether it is a valid external device (for example, read the manufacturer's identification and the external device's identification, if the manufacturer's identification and the external device's identification are If the values are not all FF, the external device is valid). If the external device is valid, it is determined whether the external device includes a hardware subunit. If it does not include a hardware subunit, then the number of external devices is accumulated. If a hardware subunit is included, the number of hardware subunits is accumulated. After scanning the external devices connected to the links corresponding to all slots, obtain the number of logical external devices mounted on each CPU, based on the number of buses that each logical device can subsequently occupy (for example, each logical device occupies 1- 2 BUS numbers), and then calculate the total number of BUS required by each CPU (that is, the second resource amount corresponding to each CPU).
BIOS比较为每个CPU分配的BUS数量和每个CPU需要的BUS总数量,对多个CPU每个CPU进行判定,以对一个CPU进行的判定过程为例,若该CPU分配的BUS数量小于需要的BUS总数量,则触发BUS调整,否则,对下一个CPU进行判定;The BIOS compares the number of BUS allocated to each CPU and the total number of BUS required by each CPU, and makes a determination for each CPU of multiple CPUs. Taking the determination process for a CPU as an example, if the number of BUS allocated to the CPU is less than required The total number of BUS will trigger BUS adjustment, otherwise, the next CPU will be judged;
其中,BIOS在调整BUS资源时,记录分配的BUS数量小于需要的BUS总数量的CPU,以及该CPU额外需要的BUS数量A,例如CPU1默认分配64个BUS号,CPU1需要72个,则额外需要8个总线,即A为8。再记录BUS号分配的BUS数量大于需要的BUS总数量的CPU以及该多余的BUS号数量B,例如CPU2默认分配64个BUS号,CPU2需要32个,则多余32个,B为32)。如果B大于A,则直接从B中取出A个BUS号分配给CPU1,然后,重新配置CPU地址映射寄存器,以将这A个BUS号重新分配给CPU1。Among them, when the BIOS adjusts the BUS resources, it records the CPU whose allocated BUS number is less than the total required BUS number, and the additional BUS number A required by the CPU. For example, CPU1 is allocated 64 BUS numbers by default, and CPU1 requires 72, then additional BUS numbers are required. 8 buses, that is, A is 8. Then record the number of BUS assigned by the CPU that is greater than the total number of required BUS and the number of excess BUS numbers B. For example, CPU2 is assigned 64 BUS numbers by default, and CPU2 requires 32, then there are 32 excess, and B is 32). If B is greater than A, directly take A BUS number from B and assign it to CPU1, and then reconfigure the CPU address mapping register to reassign this A BUS number to CPU1.
如果B小于A,则从具有多余BUS资源的其他处理器分配部分BUS资源,若具有多余BUS资源的各个CPU多余的资源均回收完成,CPU1需要的BUS总线还是不足,关闭CPU1下挂载的部分逻辑外部设备。If B is less than A, some BUS resources are allocated from other processors with excess BUS resources. If the excess resources of each CPU with excess BUS resources have been recycled, the BUS bus required by CPU1 is still insufficient, and the part mounted under CPU1 is closed. Logical external device.
在一种可能的实现方式中,BIOS先为电路板连接的外部设备分配资源,再为电路板上的处理器分配资源。参见图12所示的本申请实施例提供的一种电路板的资源分配方法的流程图,如图12所示,以电路板为主板,资源管理器为主板的CPLD为例,BIOS向该主板的CPLD发送获取请求(例如第一至第五获取请求、或者具有第一至第五获取请求功能的第六获取请求),以获取该主板的配置信息,在获取该主板的配置信息后,解析配置信息的内容,将配置信息中各个处理器的配置信息以及各个接口连接的连接器的配置信息,存储到对应处理器的控制寄存器,以便处理器根据控制寄存器中各个处理器的配置信息以及连接器的信息,建立各个处理器到连接器的各个卡槽之间的链路。通过扫描建链成功的卡槽对应的外部设备,实现枚举设备,使能CPU的地址翻译功能,便于后续采用MMIO地址方式来访问卡槽所连接的外部设备,同时为这些外部设备分配总线以及MMIO地址等临时资源。对于每个外部设备,BIOS访问该外部设备的配置空间,从配置空间中获取外部设备对应的最大带宽C。BIOS比较外部设备所在卡槽支持的最大带宽D以及获取的外部设备对应的最大带宽C,如果C小于D,触发带宽调整。具体地,若外部设备包括多个子硬件单元,且每个子硬件单元对应的最大带宽均为C,在CPU的控制寄存器,将该外部设备中每个子硬件单元支持的最大带宽设置为C。为外部设备的每个硬件子单元重新建链,为每个硬件子单元重新分配临时资源。当查询完每个外部设备后,BIOS计算每个CPU挂载设备请求的总资源量。例如,BIOS遍历每个CPU挂载的所有逻辑外部设备,统计每个CPU挂载的逻辑外部设备的总数量以及逻辑外部设备请求的MMIO地址的总和,并将逻辑外部设备的总数量作为CPU请求的总线的总资源量,将逻辑外部设备请求的MMIO地址的总和作为CPU请求的MMIO地址的总资源量, BIOS将主板支持的最大总线数量除以CPU的个数,得到总线的平均资源量,BIOS将主板支持的MMIO地址大小除以CPU的个数,得到MMIO地址的平均资源量。BIOS比较CPU挂载设备请求的总资源量和平均资源量,如资源不足,则进行资源调整。以总线资源为例,BIOS比较每个CPU请求的总线的总资源量和总线的平均资源量,如果有CPU存在资源不够的情况,即总线的平均资源量小于CPU请求的总线的总资源量,则触发CPU之间的资源调整。调整完成后,BIOS初始化内存、外部设备的配置等,BIOS继续启动。例如,调整完成后,调整完成后,发生资源调整的CPU的地址映射寄存器,为外部设备分配地址资源,然后BIOS继续启动。In one possible implementation, the BIOS first allocates resources to the external devices connected to the circuit board, and then allocates resources to the processor on the circuit board. Referring to the flow chart of a resource allocation method for a circuit board provided by an embodiment of the present application shown in Figure 12, as shown in Figure 12, taking the circuit board as the main board and the resource manager as the CPLD of the main board as an example, the BIOS The CPLD sends an acquisition request (such as the first to fifth acquisition requests, or the sixth acquisition request with the first to fifth acquisition request functions) to obtain the configuration information of the mainboard. After obtaining the configuration information of the mainboard, parse The content of the configuration information stores the configuration information of each processor and the configuration information of the connector connected to each interface in the configuration information to the control register of the corresponding processor, so that the processor can adjust the configuration information of each processor in the control register and the connection information of the processor to establish links between each processor and each card slot of the connector. By scanning the external devices corresponding to the card slots that successfully established the link, the devices are enumerated and the address translation function of the CPU is enabled to facilitate the subsequent use of MMIO addresses to access the external devices connected to the card slots, and at the same time allocate buses and Temporary resources such as MMIO addresses. For each external device, the BIOS accesses the configuration space of the external device and obtains the maximum bandwidth C corresponding to the external device from the configuration space. The BIOS compares the maximum bandwidth D supported by the card slot where the external device is located with the obtained maximum bandwidth C corresponding to the external device. If C is less than D, bandwidth adjustment is triggered. Specifically, if the external device includes multiple sub-hardware units, and the maximum bandwidth corresponding to each sub-hardware unit is C, set the maximum bandwidth supported by each sub-hardware unit in the external device to C in the control register of the CPU. The chain is rebuilt for each hardware subunit of the external device and temporary resources are reallocated for each hardware subunit. After querying each external device, the BIOS calculates the total resources requested by each CPU-mounted device. For example, the BIOS traverses all logical external devices mounted by each CPU, counts the total number of logical external devices mounted by each CPU and the sum of the MMIO addresses requested by the logical external devices, and uses the total number of logical external devices as the CPU request The total resource amount of the bus, the sum of the MMIO addresses requested by the logical external devices is taken as the total resource amount of the MMIO address requested by the CPU. The BIOS divides the maximum number of buses supported by the motherboard by the number of CPUs to obtain the average resource amount of the bus. The BIOS divides the MMIO address size supported by the motherboard by the number of CPUs to obtain the average resource amount of the MMIO address. The BIOS compares the total amount of resources requested by the CPU-mounted device with the average amount of resources. If the resources are insufficient, the resources are adjusted. Taking bus resources as an example, the BIOS compares the total resources of the bus requested by each CPU and the average resource amount of the bus. If any CPU has insufficient resources, that is, the average resource amount of the bus is less than the total resource amount of the bus requested by the CPU, Then trigger resource adjustment between CPUs. After the adjustment is completed, the BIOS initializes the configuration of memory, external devices, etc., and the BIOS continues to boot. For example, after the adjustment is completed, the address mapping register of the CPU where resource adjustment occurs, allocates address resources for external devices, and then the BIOS continues to boot.
以上介绍了本申请实施例的方法,以下介绍本申请实施例的装置。应理解,以下介绍的装置具有上述方法中电路板的任意功能。The method of the embodiment of the present application is introduced above, and the device of the embodiment of the present application is introduced below. It should be understood that the device introduced below has any function of the circuit board in the above method.
参见图13,图13是本申请实施例提供的一种资源分配装置的结构示意图,图13所示的装置1300为电路板,所述电路板与硬件单元1301连接,所述硬件单元1301用于提供硬件资源,所述装置1300包括资源分配单元1302,资源分配单元1302用于:Referring to Figure 13, Figure 13 is a schematic structural diagram of a resource allocation device provided by an embodiment of the present application. The device 1300 shown in Figure 13 is a circuit board. The circuit board is connected to a hardware unit 1301. The hardware unit 1301 is used for To provide hardware resources, the device 1300 includes a resource allocation unit 1302, and the resource allocation unit 1302 is used for:
通过所述电路板的基本输入输出系统BIOS,根据第一资源量与第二资源量,为所述硬件单元1301分配资源,其中,所述第一资源量是所述电路板为所述硬件单元1301预分配的资源量,所述第二资源量是所述硬件单元1301请求的资源量。Through the basic input and output system BIOS of the circuit board, resources are allocated to the hardware unit 1301 according to a first resource amount and a second resource amount, where the first resource amount is that the circuit board is the hardware unit 1301 pre-allocated resource amount, the second resource amount is the resource amount requested by the hardware unit 1301.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元1301为所述计算机设备的外部设备,所述硬件单元1301通过槽位与所述电路板连接,所述第一资源量等于所述槽位对应的最大资源量。In a possible implementation, the circuit board is located in a computer device, the hardware unit 1301 is an external device of the computer device, the hardware unit 1301 is connected to the circuit board through a slot, and the first The amount of resources is equal to the maximum amount of resources corresponding to the slot.
在一种可能的实现方式中,所述电路板与连接器连接,所述槽位为所述连接器上的卡槽,所述硬件单元1301与所述槽位连接,所述资源分配单元1302还用于:In a possible implementation, the circuit board is connected to a connector, the slot is a card slot on the connector, the hardware unit 1301 is connected to the slot, and the resource allocation unit 1302 Also used for:
通过所述BIOS,从所述连接器读取所述槽位对应的最大资源量,将读取到的所述最大资源量作为所述第一资源量。Through the BIOS, the maximum resource amount corresponding to the slot is read from the connector, and the read maximum resource amount is used as the first resource amount.
在一种可能的实现方式中,所述装置1300还包括资源管理器,所述资源管理器分别与所述BIOS以及所述连接器连接,所述资源分配单元1302还用于:In a possible implementation, the device 1300 further includes a resource manager, which is connected to the BIOS and the connector respectively. The resource allocation unit 1302 is also used to:
通过所述BIOS,利用所述资源管理器,从所述连接器读取所述槽位对应的最大资源量。Through the BIOS and the resource manager, the maximum amount of resources corresponding to the slot is read from the connector.
在一种可能的实现方式中,所述槽位为所述电路板上的卡槽,所述硬件单元1301与所述槽位连接,所述装置1300还包括资源管理器,所述资源管理器分别与所述BIOS以及所述槽位连接,所述资源分配单元1302还用于:In a possible implementation, the slot is a card slot on the circuit board, the hardware unit 1301 is connected to the slot, and the device 1300 further includes a resource manager. The resource manager Connected to the BIOS and the slot respectively, the resource allocation unit 1302 is also used to:
通过所述BIOS,利用所述资源管理器,获取所述槽位对应的最大资源量,将获取到的所述最大资源量作为所述第一资源量。Through the BIOS, the resource manager is used to obtain the maximum amount of resources corresponding to the slot, and the obtained maximum amount of resources is used as the first amount of resources.
在一种可能的实现方式中,所述硬件单元1301包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述资源分配单元1302还用于:In a possible implementation, the hardware unit 1301 includes multiple hardware sub-units, the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to the multiple hardware sub-units respectively. For a hardware subunit in , each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit. The resource allocation unit 1302 is also used to:
通过所述BIOS,从所述硬件单元1301读取所述多个第三资源量。The plurality of third resource amounts are read from the hardware unit 1301 through the BIOS.
在一种可能的实现方式中,所述硬件单元1301包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述资源分配单元1302还用于:In a possible implementation, the hardware unit 1301 includes multiple hardware sub-units, the second resource amount includes a plurality of third resource amounts, and each third resource amount corresponds to the multiple hardware sub-units respectively. For a hardware subunit in , each third resource amount is the maximum resource amount corresponding to the corresponding hardware subunit. The resource allocation unit 1302 is also used to:
若所述第一资源量大于或等于所述多个第三资源量之和,通过所述BIOS,为每个硬件子 单元分别分配对应第三资源量的所述资源。If the first resource amount is greater than or equal to the sum of the plurality of third resource amounts, the BIOS allocates the resources corresponding to the third resource amount to each hardware subunit.
在一种可能的实现方式中,所述资源分配单元1302还用于:In a possible implementation, the resource allocation unit 1302 is also used to:
若所述第一资源量大于所述硬件单元1301中第一地址存储的目标资源量,通过所述BIOS,根据所述第一资源量与所述目标资源量之间的倍数,为所述硬件单元1301创建至少两个逻辑接口,所述至少两个逻辑接口的个数等于所述倍数,每个逻辑接口用于挂载所述硬件单元1301的一个硬件子单元;If the first resource amount is greater than the target resource amount stored at the first address in the hardware unit 1301, through the BIOS, according to the multiple between the first resource amount and the target resource amount, the hardware Unit 1301 creates at least two logical interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware subunit of the hardware unit 1301;
通过所述BIOS,对所述至少两个逻辑接口分别进行子单元挂载操作,所述子单元挂载操作用于为所述逻辑接口挂载硬件子单元;Through the BIOS, perform a subunit mounting operation on the at least two logical interfaces respectively, and the subunit mounting operation is used to mount a hardware subunit for the logical interface;
若所述至少两个逻辑接口中的多个逻辑接口均成功挂载硬件子单元,则所述硬件单元1301包括多个硬件子单元。If multiple logical interfaces among the at least two logical interfaces successfully mount hardware subunits, the hardware unit 1301 includes multiple hardware subunits.
在一种可能的实现方式中,所述装置1300还包括处理器,所述资源分配单元1302还用于:In a possible implementation, the device 1300 further includes a processor, and the resource allocation unit 1302 is further configured to:
通过所述BIOS,建立至少两个第一链路,每个第一链路对应一个逻辑接口,每个第一链路用于所述处理器与对应逻辑接口之间的通信;Through the BIOS, at least two first links are established, each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;
通过所述BIOS,建立所述至少两个逻辑接口、所述至少两个第一链路以及至少两个第二地址之间的映射关系,每个第二地址是所述BIOS为对应逻辑接口挂载的硬件子单元分配的地址。Through the BIOS, a mapping relationship between the at least two logical interfaces, the at least two first links, and at least two second addresses is established, and each second address is a link of the BIOS for the corresponding logical interface. The address assigned by the loaded hardware subunit.
在一种可能的实现方式中,所述硬件单元1301为高速串行计算机扩展总线标准PCIE设备,所述资源为带宽。In a possible implementation, the hardware unit 1301 is a high-speed serial computer extension bus standard PCIE device, and the resource is bandwidth.
在一种可能的实现方式中,所述装置1300包括多个处理器,所述硬件单元1301为所述多个处理器中的任一处理器,所述第一资源量等于所述资源的总资源量除以所述多个处理器的总个数。In a possible implementation, the device 1300 includes multiple processors, the hardware unit 1301 is any processor among the multiple processors, and the first resource amount is equal to the total amount of the resources. The amount of resources is divided by the total number of the multiple processors.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元1301挂载有所述计算机设备的至少一个外部设备,所述电路板通过至少一个槽位与所述至少一个外部设备连接;In a possible implementation, the circuit board is located in a computer device, the hardware unit 1301 is mounted with at least one external device of the computer device, and the circuit board is connected to the at least one external device through at least one slot. Device connection;
若所述资源为总线,所述第二资源量等于所述至少一个外部设备请求的总资源量与第四资源量之和,所述第四资源量是所述BIOS为目标槽位的热插拔功能预分配的总资源量,所述目标槽位为所述至少一个槽位中具有热插拔功能的槽位。If the resource is a bus, the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount. The fourth resource amount is the hot plug of the target slot of the BIOS. The total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
在一种可能的实现方式中,所述至少一个外部设备请求的总资源量等于第一个数与第二个数之和,所述第一个数为所述至少一个外部设备中第一外部设备的总个数,所述第二个数为所述至少一个外部设备中第二外部设备内硬件子单元的总个数,所述第一外部设备为所述至少一个外部设备中不包括硬件子单元的外部设备,所述第二外部设备为所述至少一个外部设备中包括硬件子单元的外部设备,所述资源分配单元1302还用于:In a possible implementation, the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, where the first number is the first external number of the at least one external device. The total number of devices, the second number is the total number of hardware subunits in the second external device in the at least one external device, the first external device is the at least one external device that does not include hardware An external device of the subunit, the second external device is an external device including a hardware subunit among the at least one external device, and the resource allocation unit 1302 is also used to:
通过所述BIOS,统计所述至少一个外部设备中所述第一外部设备的总个数,得到所述第一个数;Through the BIOS, count the total number of the first external devices in the at least one external device to obtain the first number;
通过所述BIOS,统计所述至少一个外部设备中所述第二外部设备内硬件子单元的总个数,得到所述第二个数;Through the BIOS, count the total number of hardware subunits in the second external device in the at least one external device to obtain the second number;
通过所述BIOS,将统计出的所述第一个数与所述第二个数之和作为所述至少一个外部设备请求的总资源量;Through the BIOS, the calculated sum of the first number and the second number is used as the total amount of resources requested by the at least one external device;
通过所述BIOS,根据所述至少一个槽位中所述目标槽位的个数,确定所述第四资源量;Determine the fourth resource amount through the BIOS according to the number of the target slots in the at least one slot;
通过所述BIOS,将所述至少一个外部设备请求的总资源量与所述第四资源量之和作为所述第二资源量。Through the BIOS, the sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
在一种可能的实现方式中,所述电路板位于计算机设备,所述硬件单元1301挂载有所述计算机设备的至少一个外部设备,若所述资源为内存映射输入/输出地址,所述第二资源量等于所述至少一个外部设备请求的资源量之和。In a possible implementation, the circuit board is located in a computer device, and the hardware unit 1301 is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the third The second resource amount is equal to the sum of the resource amounts requested by the at least one external device.
在一种可能的实现方式中,所述资源分配单元1302还用于:In a possible implementation, the resource allocation unit 1302 is also used to:
对于所述至少一个外部设备中每个外部设备,若所述外部设备不包括硬件子单元,通过所述BIOS,将所述外部设备对应的最大资源量作为所述部设备请求的资源量,若所述外部设备包括多个硬件子单元,将所述多个硬件子单元对应的最大资源量之和作为所述部设备请求的资源量;For each external device in the at least one external device, if the external device does not include a hardware subunit, the maximum resource amount corresponding to the external device is used as the resource amount requested by the external device through the BIOS, if The external device includes multiple hardware sub-units, and the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the external device;
通过所述BIOS,将所述至少一个外部设备请求的资源量之和作为所述第二资源量。Through the BIOS, the sum of resource amounts requested by the at least one external device is used as the second resource amount.
在一种可能的实现方式中,所述资源分配单元1302还用于:In a possible implementation, the resource allocation unit 1302 is also used to:
若所述BIOS中存储有所述第一资源量,通过所述BIOS,获取存储的所述第一资源量;If the first resource amount is stored in the BIOS, obtain the stored first resource amount through the BIOS;
若所述电路板还包括资源管理器,通过所述BIOS,利用所述资源管理器,获取所述第一资源量,其中,所述资源管理器分别与所述BIOS、所述硬件单元1301以及所述至少一个外部设备连接。If the circuit board further includes a resource manager, the resource manager is used to obtain the first amount of resources through the BIOS, where the resource manager is connected to the BIOS, the hardware unit 1301 and The at least one external device is connected.
在一种可能的实现方式中,所述资源分配单元1302还用于:In a possible implementation, the resource allocation unit 1302 is also used to:
若所述第一资源量小于所述第二资源量,且所述多个处理器中存在目标处理器,通过所述BIOS,将所述目标处理器多余的所述资源分配给所述硬件单元1301,使得所述硬件单元1301能够分配到所述第二资源量的所述资源;If the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit through the BIOS. 1301, enabling the hardware unit 1301 to allocate the resources of the second amount of resources;
其中,所述电路板为所述目标处理器预分配的所述资源的资源量大于所述目标处理器请求的资源量。Wherein, the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
在一种可能的实现方式中,所述资源管理器为复杂可编程逻辑器件或者微控制器。In a possible implementation, the resource manager is a complex programmable logic device or a microcontroller.
在一种可能的实现方式中,所述资源分配单元1302为目标芯片。In a possible implementation, the resource allocation unit 1302 is a target chip.
应理解,装置1300对应于上述方法实施例中的电路板,装置1300中的模块和上述其他操作和/或功能分别为了实现方法实施例中的电路板所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。It should be understood that the device 1300 corresponds to the circuit board in the above method embodiment, and the modules in the device 1300 and the above other operations and/or functions are respectively implemented to implement various steps and methods implemented by the circuit board in the method embodiment. Specific details Please refer to the above method embodiments, which will not be described again for the sake of brevity.
应理解,装置1300在为硬件单元分配资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置1300的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置1300与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。It should be understood that when the device 1300 allocates resources to hardware units, only the division of the above functional modules is used as an example. In actual applications, the above function allocation can be completed by different functional modules as needed, that is, the internal structure of the device 1300 Divide it into different functional modules to complete all or part of the functions described above. In addition, the device 1300 provided in the above embodiments and the above method embodiments belong to the same concept. Please refer to the above method embodiments for its specific implementation process, which will not be described again here.
应理解,装置1300可以相当于电路板100,电路板中的目标芯片相当于资源分配单元1302。It should be understood that the device 1300 may be equivalent to the circuit board 100, and the target chip in the circuit board is equivalent to the resource allocation unit 1302.
装置1300被配置为电路板,电路板的BIOS根据电路板为硬件单元预分配的资源量以及硬件单元请求的资源量,为硬件单元自动分配资源,因此,无须升级BIOS,BIOS就能够为硬件单元分配资源,从而节约了BIOS的维护成本。The device 1300 is configured as a circuit board, and the BIOS of the circuit board automatically allocates resources to the hardware units based on the amount of resources pre-allocated by the circuit board for the hardware units and the amount of resources requested by the hardware units. Therefore, there is no need to upgrade the BIOS, and the BIOS can provide resources for the hardware units. Allocate resources, thereby saving BIOS maintenance costs.
图14是本申请实施例提供的一种电路板的结构示意图,参加图14所示的电路板1400, 电路板1400包括资源分配单元1401,资源分配单元从1401从存储器1402加载至少一条程序代码,该程序代码由该资源分配单元1401执行以实现上述的资源分配方法。其中,存储器1402和资源分配单元从1401之间可能通过总线或信号线相连。该存储器为1402位于电路板1400内,或者位于电路板1400之外,若存储器1402位于电路板1400之外,存储器1402为电路板1400的一种外部设备。Figure 14 is a schematic structural diagram of a circuit board provided by an embodiment of the present application. Referring to the circuit board 1400 shown in Figure 14, the circuit board 1400 includes a resource allocation unit 1401. The resource allocation unit loads at least one program code from the memory 1402 from 1401. The program code is executed by the resource allocation unit 1401 to implement the above resource allocation method. Among them, the memory 1402 and the resource allocation unit 1401 may be connected through a bus or a signal line. The memory 1402 is located inside the circuit board 1400 or outside the circuit board 1400. If the memory 1402 is located outside the circuit board 1400, the memory 1402 is an external device of the circuit board 1400.
在一种可能的实现方式中,该电路板1400还包括硬件单元1403,硬件单元1403有至少一个,每个硬件单元1403为处理器或外部设备,资源分配单元通过执行至少一条程序代码,以实现通过上述的资源分配方法,为硬件单元1403分配电路板1400的资源。In a possible implementation, the circuit board 1400 further includes a hardware unit 1403. There is at least one hardware unit 1403. Each hardware unit 1403 is a processor or an external device. The resource allocation unit executes at least one program code to implement Through the above resource allocation method, the resources of the circuit board 1400 are allocated to the hardware unit 1403.
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由电路板中的资源分配单元执行以完成上述实施例中的资源分配方法。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。In an exemplary embodiment, a computer-readable storage medium is also provided, such as a memory including program code. The program code can be executed by a resource allocation unit in the circuit board to complete the resource allocation method in the above embodiment. For example, the computer-readable storage medium is a non-transitory computer-readable storage medium, such as read-only memory (ROM), random access memory (RAM), compact disc read-only memory, CD-ROM), tapes, floppy disks and optical data storage devices, etc.
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括程序代码,该程序代码存储在计算机可读存储介质中,电路板中的资源分配单元从计算机可读存储介质读取该程序代码,资源分配单元执行该程序代码,使得资源分配单元实现上述的资源分配方法。Embodiments of the present application also provide a computer program product. The computer program product includes program code. The program code is stored in a computer-readable storage medium. The resource allocation unit in the circuit board reads the program from the computer-readable storage medium. code, the resource allocation unit executes the program code, so that the resource allocation unit implements the above resource allocation method.
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。In the description of this application, unless otherwise stated, "/" means "or". For example, A/B can mean A or B. "And/or" in this article is just an association relationship that describes related objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone these three situations. In addition, "at least one" means one or more, and "plurality" means two or more. Words such as "first" and "second" do not limit the quantity and order of execution, and words such as "first" and "second" do not limit the number or order of execution.
本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。In this application, the words "exemplary" or "such as" are used to mean examples, illustrations or explanations. Any embodiment or design described herein as "exemplary" or "such as" is not intended to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the words "exemplary" or "such as" is intended to present the concept in a concrete manner.
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的第一资源量以及第二资源量都是在充分授权的情况下获取的。It should be noted that the information (including but not limited to user equipment information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application, All are authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions. For example, the first resource amount and the second resource amount involved in this application are both obtained with full authorization.
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。All the above optional technical solutions can be combined in any way to form optional embodiments of the present disclosure, and will not be described again one by one.
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above are only optional embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection of the present application. within the range.
Claims (38)
- 一种电路板的资源分配方法,其特征在于,所述电路板与硬件单元连接,所述硬件单元用于提供硬件资源,所述方法应用于所述电路板的基本输入输出系统BIOS,所述方法包括:A resource allocation method for a circuit board, characterized in that the circuit board is connected to a hardware unit, and the hardware unit is used to provide hardware resources. The method is applied to the basic input and output system BIOS of the circuit board, and the Methods include:根据第一资源量与第二资源量,为所述硬件单元分配资源,其中,所述第一资源量是所述电路板为所述硬件单元预分配的资源量,所述第二资源量是所述硬件单元请求的资源量。Allocate resources to the hardware unit according to the first resource amount and the second resource amount, wherein the first resource amount is the resource amount pre-allocated by the circuit board for the hardware unit, and the second resource amount is The amount of resources requested by the hardware unit.
- 根据权利要求1所述的方法,其特征在于,所述电路板位于计算机设备,所述硬件单元为所述计算机设备的外部设备,所述硬件单元通过槽位与所述电路板连接,所述第一资源量等于所述槽位对应的最大资源量。The method according to claim 1, characterized in that the circuit board is located in a computer device, the hardware unit is an external device of the computer device, the hardware unit is connected to the circuit board through a slot, and the The first resource amount is equal to the maximum resource amount corresponding to the slot.
- 根据权利要求2所述的方法,其特征在于,所述电路板与连接器连接,所述槽位为所述连接器上的卡槽,所述硬件单元与所述槽位连接,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to claim 2, characterized in that the circuit board is connected to a connector, the slot is a card slot on the connector, the hardware unit is connected to the slot, and the The first resource amount and the second resource amount, before allocating resources to the hardware unit, the method further includes:从所述连接器读取所述槽位对应的最大资源量,将读取到的所述最大资源量作为所述第一资源量。Read the maximum resource amount corresponding to the slot from the connector, and use the read maximum resource amount as the first resource amount.
- 根据权利要求3所述的方法,其特征在于,所述电路板还包括资源管理器,所述资源管理器分别与所述BIOS以及所述连接器连接,所述从所述连接器读取所述槽位对应的最大资源量包括:The method according to claim 3, characterized in that the circuit board further includes a resource manager, the resource manager is connected to the BIOS and the connector respectively, and the data read from the connector is The maximum amount of resources corresponding to the above slots includes:通过所述资源管理器,从所述连接器读取所述槽位对应的最大资源量。Through the resource manager, the maximum amount of resources corresponding to the slot is read from the connector.
- 根据权利要求2所述的方法,其特征在于,所述槽位为所述电路板上的卡槽,所述硬件单元与所述槽位连接,所述电路板还包括资源管理器,所述资源管理器分别与所述BIOS以及所述槽位连接,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method of claim 2, wherein the slot is a card slot on the circuit board, the hardware unit is connected to the slot, the circuit board further includes a resource manager, and the The resource manager is connected to the BIOS and the slot respectively. Before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:通过所述资源管理器,获取所述槽位对应的最大资源量,将获取到的所述最大资源量作为所述第一资源量。Through the resource manager, the maximum amount of resources corresponding to the slot is obtained, and the obtained maximum amount of resources is used as the first amount of resources.
- 根据权利要求2-5中任一项所述的方法,其特征在于,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to any one of claims 2-5, characterized in that the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, each third resource amount Corresponding to one of the plurality of hardware sub-units, each third resource amount is the maximum resource amount corresponding to the corresponding hardware sub-unit. According to the first resource amount and the second resource amount, the third resource amount is the Before the hardware unit allocates resources, the method further includes:从所述硬件单元读取所述多个第三资源量。The plurality of third resource amounts are read from the hardware unit.
- 根据权利要求2-6中任一项所述的方法,其特征在于,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述根据第一 资源量与第二资源量,为所述硬件单元分配资源包括:The method according to any one of claims 2-6, characterized in that the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, each third resource amount Corresponding to one of the plurality of hardware sub-units, each third resource amount is the maximum resource amount corresponding to the corresponding hardware sub-unit. According to the first resource amount and the second resource amount, the third resource amount is the Hardware unit allocation resources include:若所述第一资源量大于或等于所述多个第三资源量之和,为每个硬件子单元分别分配对应第三资源量的所述资源。If the first resource amount is greater than or equal to the sum of the plurality of third resource amounts, the resources corresponding to the third resource amount are allocated to each hardware subunit.
- 根据权利要求6或7所述的方法,其特征在于,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to claim 6 or 7, characterized in that before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:若所述第一资源量大于所述硬件单元中第一地址存储的目标资源量,根据所述第一资源量与所述目标资源量之间的倍数,为所述硬件单元创建至少两个逻辑接口,所述至少两个逻辑接口的个数等于所述倍数,每个逻辑接口用于挂载所述硬件单元的一个硬件子单元;If the first resource amount is greater than the target resource amount stored at the first address in the hardware unit, create at least two logical resources for the hardware unit according to the multiple between the first resource amount and the target resource amount. Interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware sub-unit of the hardware unit;对所述至少两个逻辑接口分别进行子单元挂载操作,所述子单元挂载操作用于为所述逻辑接口挂载硬件子单元;Perform a subunit mounting operation on the at least two logical interfaces respectively, and the subunit mounting operation is used to mount a hardware subunit for the logical interface;若所述至少两个逻辑接口中的多个逻辑接口均成功挂载硬件子单元,则所述硬件单元包括多个硬件子单元。If multiple logical interfaces among the at least two logical interfaces successfully mount the hardware subunit, the hardware unit includes multiple hardware subunits.
- 根据权利要求8所述的方法,其特征在于,所述电路板还包括处理器,所述对所述至少两个逻辑接口分别进行子单元挂载操作包括:The method according to claim 8, wherein the circuit board further includes a processor, and performing a subunit mounting operation on the at least two logical interfaces includes:建立至少两个第一链路,每个第一链路对应一个逻辑接口,每个第一链路用于所述处理器与对应逻辑接口之间的通信;Establish at least two first links, each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;建立所述至少两个逻辑接口、所述至少两个第一链路以及至少两个第二地址之间的映射关系,每个第二地址是所述BIOS为对应逻辑接口挂载的硬件子单元分配的地址。Establish a mapping relationship between the at least two logical interfaces, the at least two first links, and at least two second addresses, where each second address is a hardware subunit mounted by the BIOS for the corresponding logical interface. assigned address.
- 根据权利要求2-9中任一项所述的方法,其特征在于,所述硬件单元为高速串行计算机扩展总线标准PCIE设备,所述资源为带宽。The method according to any one of claims 2 to 9, characterized in that the hardware unit is a high-speed serial computer expansion bus standard PCIE device, and the resource is bandwidth.
- 根据权利要求1所述的方法,其特征在于,所述电路板包括多个处理器,所述硬件单元为所述多个处理器中的任一处理器,所述第一资源量等于所述资源的总资源量除以所述多个处理器的总个数。The method of claim 1, wherein the circuit board includes a plurality of processors, the hardware unit is any one of the plurality of processors, and the first resource amount is equal to the The total amount of resources is divided by the total number of the multiple processors.
- 根据权利要求1或11所述的方法,其特征在于,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,所述电路板通过至少一个槽位与所述至少一个外部设备连接;The method according to claim 1 or 11, characterized in that the circuit board is located in a computer device, the hardware unit is mounted with at least one external device of the computer device, and the circuit board is connected to the computer device through at least one slot. The at least one external device is connected;若所述资源为总线,所述第二资源量等于所述至少一个外部设备请求的总资源量与第四资源量之和,所述第四资源量是所述BIOS为目标槽位的热插拔功能预分配的总资源量,所述目标槽位为所述至少一个槽位中具有热插拔功能的槽位。If the resource is a bus, the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount. The fourth resource amount is the hot plug of the target slot of the BIOS. The total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
- 根据权利要求12所述的方法,其特征在于,所述至少一个外部设备请求的总资源量等于第一个数与第二个数之和,所述第一个数为所述至少一个外部设备中第一外部设备的总个数,所述第二个数为所述至少一个外部设备中第二外部设备内硬件子单元的总个数,所述第一外部设备为所述至少一个外部设备中不包括硬件子单元的外部设备,所述第二外部设备 为所述至少一个外部设备中包括硬件子单元的外部设备,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to claim 12, characterized in that the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, the first number being the amount of the at least one external device. The total number of first external devices in the at least one external device, the second number is the total number of hardware subunits in the second external device of the at least one external device, the first external device is the at least one external device An external device that does not include a hardware subunit, the second external device is an external device that includes a hardware subunit among the at least one external device, and according to the first resource amount and the second resource amount, it is the hardware unit Before allocating resources, the method further includes:统计所述至少一个外部设备中所述第一外部设备的总个数,得到所述第一个数;Count the total number of the first external devices in the at least one external device to obtain the first number;统计所述至少一个外部设备中所述第二外部设备内硬件子单元的总个数,得到所述第二个数;Count the total number of hardware subunits in the second external device in the at least one external device to obtain the second number;将统计出的所述第一个数与所述第二个数之和作为所述至少一个外部设备请求的总资源量;The calculated sum of the first number and the second number is used as the total resource amount requested by the at least one external device;根据所述至少一个槽位中所述目标槽位的个数,确定所述第四资源量;Determine the fourth resource amount according to the number of the target slots in the at least one slot;将所述至少一个外部设备请求的总资源量与所述第四资源量之和作为所述第二资源量。The sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
- 根据权利要求1或11所述的方法,其特征在于,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,若所述资源为内存映射输入/输出地址,所述第二资源量等于所述至少一个外部设备请求的资源量之和。The method according to claim 1 or 11, characterized in that the circuit board is located in a computer device, and the hardware unit is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the second resource amount is equal to the sum of the resource amounts requested by the at least one external device.
- 根据权利要求14所述的方法,其特征在于,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to claim 14, characterized in that before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:对于所述至少一个外部设备中每个外部设备,若所述外部设备不包括硬件子单元,将所述外部设备对应的最大资源量作为所述部设备请求的资源量,若所述外部设备包括多个硬件子单元,将所述多个硬件子单元对应的最大资源量之和作为所述部设备请求的资源量;For each external device in the at least one external device, if the external device does not include a hardware subunit, the maximum resource amount corresponding to the external device is used as the resource amount requested by the sub-device. If the external device includes For multiple hardware sub-units, the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the device;将所述至少一个外部设备请求的资源量之和作为所述第二资源量。The sum of resource amounts requested by the at least one external device is used as the second resource amount.
- 根据权利要求12或14所述的方法,其特征在于,所述根据第一资源量与第二资源量,为所述硬件单元分配资源之前,所述方法还包括:The method according to claim 12 or 14, characterized in that before allocating resources to the hardware unit according to the first resource amount and the second resource amount, the method further includes:若所述BIOS中存储有所述第一资源量,获取存储的所述第一资源量;If the first resource amount is stored in the BIOS, obtain the stored first resource amount;若所述电路板还包括资源管理器,通过所述资源管理器,获取所述第一资源量,其中,所述资源管理器分别与所述BIOS、所述硬件单元以及所述至少一个外部设备连接。If the circuit board further includes a resource manager, obtain the first amount of resources through the resource manager, wherein the resource manager is connected to the BIOS, the hardware unit and the at least one external device respectively. connect.
- 根据权利要求11-16中任一项所述的方法,其特征在于,所述根据第一资源量与第二资源量,为所述硬件单元分配资源包括:The method according to any one of claims 11-16, wherein allocating resources to the hardware unit according to the first resource amount and the second resource amount includes:若所述第一资源量小于所述第二资源量,且所述多个处理器中存在目标处理器,将所述目标处理器多余的所述资源分配给所述硬件单元,使得所述硬件单元能够分配到所述第二资源量的所述资源;If the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit, so that the hardware The unit is capable of being allocated said resources of said second amount of resources;其中,所述电路板为所述目标处理器预分配的所述资源的资源量大于所述目标处理器请求的资源量。Wherein, the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
- 根据权利要求4、5或16中任一项所述的方法,其特征在于,所述资源管理器为复杂可编程逻辑器件或者微控制器。The method according to any one of claims 4, 5 or 16, characterized in that the resource manager is a complex programmable logic device or a microcontroller.
- 一种资源分配装置,其特征在于,所述装置为电路板,所述电路板与硬件单元连接, 所述硬件单元用于提供硬件资源,所述装置包括资源分配单元,资源分配单元用于:A resource allocation device, characterized in that the device is a circuit board, the circuit board is connected to a hardware unit, the hardware unit is used to provide hardware resources, the device includes a resource allocation unit, and the resource allocation unit is used to:通过所述电路板的基本输入输出系统BIOS,根据第一资源量与第二资源量,为所述硬件单元分配资源,其中,所述第一资源量是所述电路板为所述硬件单元预分配的资源量,所述第二资源量是所述硬件单元请求的资源量。Through the basic input and output system BIOS of the circuit board, resources are allocated to the hardware unit according to a first resource amount and a second resource amount, where the first resource amount is the preset amount of the circuit board for the hardware unit. The allocated resource amount, the second resource amount is the resource amount requested by the hardware unit.
- 根据权利要求19所述的装置,其特征在于,所述电路板位于计算机设备,所述硬件单元为所述计算机设备的外部设备,所述硬件单元通过槽位与所述电路板连接,所述第一资源量等于所述槽位对应的最大资源量。The device according to claim 19, characterized in that the circuit board is located in the computer equipment, the hardware unit is an external device of the computer equipment, the hardware unit is connected to the circuit board through a slot, and the The first resource amount is equal to the maximum resource amount corresponding to the slot.
- 根据权利要求20所述的装置,其特征在于,所述电路板与连接器连接,所述槽位为所述连接器上的卡槽,所述硬件单元与所述槽位连接,所述资源分配单元还用于:The device according to claim 20, wherein the circuit board is connected to a connector, the slot is a card slot on the connector, the hardware unit is connected to the slot, and the resource Allocation units are also used for:通过所述BIOS,从所述连接器读取所述槽位对应的最大资源量,将读取到的所述最大资源量作为所述第一资源量。Through the BIOS, the maximum resource amount corresponding to the slot is read from the connector, and the read maximum resource amount is used as the first resource amount.
- 根据权利要求21所述的装置,其特征在于,所述装置还包括资源管理器,所述资源管理器分别与所述BIOS以及所述连接器连接,所述资源分配单元还用于:The device according to claim 21, characterized in that the device further includes a resource manager, the resource manager is connected to the BIOS and the connector respectively, and the resource allocation unit is also used to:通过所述BIOS,利用所述资源管理器,从所述连接器读取所述槽位对应的最大资源量。Through the BIOS and the resource manager, the maximum amount of resources corresponding to the slot is read from the connector.
- 根据权利要求20所述的装置,其特征在于,所述槽位为所述电路板上的卡槽,所述硬件单元与所述槽位连接,所述装置还包括资源管理器,所述资源管理器分别与所述BIOS以及所述槽位连接,所述资源分配单元还用于:The device according to claim 20, wherein the slot is a card slot on the circuit board, the hardware unit is connected to the slot, the device further includes a resource manager, and the resource The manager is connected to the BIOS and the slot respectively, and the resource allocation unit is also used to:通过所述BIOS,利用所述资源管理器,获取所述槽位对应的最大资源量,将获取到的所述最大资源量作为所述第一资源量。Through the BIOS, the resource manager is used to obtain the maximum amount of resources corresponding to the slot, and the obtained maximum amount of resources is used as the first amount of resources.
- 根据权利要求20-23中任一项所述的装置,其特征在于,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述资源分配单元还用于:The device according to any one of claims 20-23, characterized in that the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, each third resource amount Each third resource amount corresponds to one of the plurality of hardware sub-units, and each third resource amount is the maximum resource amount corresponding to the corresponding hardware sub-unit. The resource allocation unit is also used to:通过所述BIOS,从所述硬件单元读取所述多个第三资源量。The plurality of third resource amounts are read from the hardware unit through the BIOS.
- 根据权利要求20-24中任一项所述的装置,其特征在于,所述硬件单元包括多个硬件子单元,所述第二资源量包括多个第三资源量,每个第三资源量分别对应所述多个硬件子单元中的一个硬件子单元,每个第三资源量为对应硬件子单元所对应的最大资源量,所述资源分配单元还用于:The device according to any one of claims 20-24, wherein the hardware unit includes a plurality of hardware sub-units, the second resource amount includes a plurality of third resource amounts, each third resource amount Each third resource amount corresponds to one of the plurality of hardware sub-units, and each third resource amount is the maximum resource amount corresponding to the corresponding hardware sub-unit. The resource allocation unit is also used to:若所述第一资源量大于或等于所述多个第三资源量之和,通过所述BIOS,为每个硬件子单元分别分配对应第三资源量的所述资源。If the first resource amount is greater than or equal to the sum of the plurality of third resource amounts, the BIOS allocates the resources corresponding to the third resource amount to each hardware subunit.
- 根据权利要求24或25所述的装置,其特征在于,所述资源分配单元还用于:The device according to claim 24 or 25, characterized in that the resource allocation unit is also used to:若所述第一资源量大于所述硬件单元中第一地址存储的目标资源量,通过所述BIOS,根 据所述第一资源量与所述目标资源量之间的倍数,为所述硬件单元创建至少两个逻辑接口,所述至少两个逻辑接口的个数等于所述倍数,每个逻辑接口用于挂载所述硬件单元的一个硬件子单元;If the first resource amount is greater than the target resource amount stored at the first address in the hardware unit, through the BIOS, according to the multiple between the first resource amount and the target resource amount, the hardware unit Create at least two logical interfaces, the number of the at least two logical interfaces is equal to the multiple, and each logical interface is used to mount a hardware sub-unit of the hardware unit;通过所述BIOS,对所述至少两个逻辑接口分别进行子单元挂载操作,所述子单元挂载操作用于为所述逻辑接口挂载硬件子单元;Through the BIOS, perform a subunit mounting operation on the at least two logical interfaces respectively, and the subunit mounting operation is used to mount a hardware subunit for the logical interface;若所述至少两个逻辑接口中的多个逻辑接口均成功挂载硬件子单元,则所述硬件单元包括多个硬件子单元。If multiple logical interfaces among the at least two logical interfaces successfully mount the hardware subunit, the hardware unit includes multiple hardware subunits.
- 根据权利要求26所述的装置,其特征在于,所述装置还包括处理器,所述资源分配单元还用于:The device according to claim 26, characterized in that the device further includes a processor, and the resource allocation unit is further configured to:通过所述BIOS,建立至少两个第一链路,每个第一链路对应一个逻辑接口,每个第一链路用于所述处理器与对应逻辑接口之间的通信;Through the BIOS, at least two first links are established, each first link corresponds to a logical interface, and each first link is used for communication between the processor and the corresponding logical interface;通过所述BIOS,建立所述至少两个逻辑接口、所述至少两个第一链路以及至少两个第二地址之间的映射关系,每个第二地址是所述BIOS为对应逻辑接口挂载的硬件子单元分配的地址。Through the BIOS, a mapping relationship between the at least two logical interfaces, the at least two first links, and at least two second addresses is established, and each second address is a link of the BIOS for the corresponding logical interface. The address assigned by the loaded hardware subunit.
- 根据权利要求20-27中任一项所述的装置,其特征在于,所述硬件单元为高速串行计算机扩展总线标准PCIE设备,所述资源为带宽。The device according to any one of claims 20 to 27, characterized in that the hardware unit is a high-speed serial computer expansion bus standard PCIE device, and the resource is bandwidth.
- 根据权利要求19所述的装置,其特征在于,所述装置包括多个处理器,所述硬件单元为所述多个处理器中的任一处理器,所述第一资源量等于所述资源的总资源量除以所述多个处理器的总个数。The device according to claim 19, wherein the device includes a plurality of processors, the hardware unit is any one of the plurality of processors, and the first resource amount is equal to the resource The total resource amount is divided by the total number of the multiple processors.
- 根据权利要求19或29所述的装置,其特征在于,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,所述电路板通过至少一个槽位与所述至少一个外部设备连接;The device according to claim 19 or 29, characterized in that the circuit board is located in the computer equipment, the hardware unit is mounted with at least one external device of the computer equipment, and the circuit board is connected to the computer equipment through at least one slot. The at least one external device is connected;若所述资源为总线,所述第二资源量等于所述至少一个外部设备请求的总资源量与第四资源量之和,所述第四资源量是所述BIOS为目标槽位的热插拔功能预分配的总资源量,所述目标槽位为所述至少一个槽位中具有热插拔功能的槽位。If the resource is a bus, the second resource amount is equal to the sum of the total resource amount requested by the at least one external device and a fourth resource amount. The fourth resource amount is the hot plug of the target slot of the BIOS. The total amount of resources pre-allocated for the hot-plug function, and the target slot is a slot with the hot-plug function among the at least one slot.
- 根据权利要求30所述的装置,其特征在于,所述至少一个外部设备请求的总资源量等于第一个数与第二个数之和,所述第一个数为所述至少一个外部设备中第一外部设备的总个数,所述第二个数为所述至少一个外部设备中第二外部设备内硬件子单元的总个数,所述第一外部设备为所述至少一个外部设备中不包括硬件子单元的外部设备,所述第二外部设备为所述至少一个外部设备中包括硬件子单元的外部设备,所述资源分配单元还用于:The apparatus according to claim 30, wherein the total amount of resources requested by the at least one external device is equal to the sum of a first number and a second number, the first number being the sum of the at least one external device The total number of first external devices in the at least one external device, the second number is the total number of hardware subunits in the second external device of the at least one external device, the first external device is the at least one external device An external device that does not include a hardware subunit, the second external device is an external device that includes a hardware subunit among the at least one external device, and the resource allocation unit is also used to:通过所述BIOS,统计所述至少一个外部设备中所述第一外部设备的总个数,得到所述第一个数;Through the BIOS, count the total number of the first external devices in the at least one external device to obtain the first number;通过所述BIOS,统计所述至少一个外部设备中所述第二外部设备内硬件子单元的总个数,得到所述第二个数;Through the BIOS, count the total number of hardware subunits in the second external device in the at least one external device to obtain the second number;通过所述BIOS,将统计出的所述第一个数与所述第二个数之和作为所述至少一个外部设备请求的总资源量;Through the BIOS, the calculated sum of the first number and the second number is used as the total amount of resources requested by the at least one external device;通过所述BIOS,根据所述至少一个槽位中所述目标槽位的个数,确定所述第四资源量;Determine the fourth resource amount through the BIOS according to the number of the target slots in the at least one slot;通过所述BIOS,将所述至少一个外部设备请求的总资源量与所述第四资源量之和作为所述第二资源量。Through the BIOS, the sum of the total resource amount requested by the at least one external device and the fourth resource amount is used as the second resource amount.
- 根据权利要求19或29所述的装置,其特征在于,所述电路板位于计算机设备,所述硬件单元挂载有所述计算机设备的至少一个外部设备,若所述资源为内存映射输入/输出地址,所述第二资源量等于所述至少一个外部设备请求的资源量之和。The device according to claim 19 or 29, wherein the circuit board is located in a computer device, and the hardware unit is mounted with at least one external device of the computer device. If the resource is a memory mapped input/output address, the second resource amount is equal to the sum of the resource amounts requested by the at least one external device.
- 根据权利要求32所述的装置,其特征在于,所述资源分配单元还用于:The device according to claim 32, characterized in that the resource allocation unit is also used to:对于所述至少一个外部设备中每个外部设备,若所述外部设备不包括硬件子单元,通过所述BIOS,将所述外部设备对应的最大资源量作为所述部设备请求的资源量,若所述外部设备包括多个硬件子单元,将所述多个硬件子单元对应的最大资源量之和作为所述部设备请求的资源量;For each external device in the at least one external device, if the external device does not include a hardware subunit, the maximum resource amount corresponding to the external device is used as the resource amount requested by the external device through the BIOS, if The external device includes multiple hardware sub-units, and the sum of the maximum resource amounts corresponding to the multiple hardware sub-units is used as the resource amount requested by the external device;通过所述BIOS,将所述至少一个外部设备请求的资源量之和作为所述第二资源量。Through the BIOS, the sum of resource amounts requested by the at least one external device is used as the second resource amount.
- 根据权利要求30或32所述的装置,其特征在于,所述资源分配单元还用于:The device according to claim 30 or 32, characterized in that the resource allocation unit is also used to:若所述BIOS中存储有所述第一资源量,通过所述BIOS,获取存储的所述第一资源量;If the first resource amount is stored in the BIOS, obtain the stored first resource amount through the BIOS;若所述电路板还包括资源管理器,通过所述BIOS,利用所述资源管理器,获取所述第一资源量,其中,所述资源管理器分别与所述BIOS、所述硬件单元以及所述至少一个外部设备连接。If the circuit board further includes a resource manager, the resource manager is used to obtain the first amount of resources through the BIOS, where the resource manager is connected to the BIOS, the hardware unit and the resource manager respectively. At least one external device is connected.
- 根据权利要求19-34中任一项所述的装置,其特征在于,所述资源分配单元还用于:The device according to any one of claims 19-34, characterized in that the resource allocation unit is also used to:若所述第一资源量小于所述第二资源量,且所述多个处理器中存在目标处理器,通过所述BIOS,将所述目标处理器多余的所述资源分配给所述硬件单元,使得所述硬件单元能够分配到所述第二资源量的所述资源;If the first amount of resources is less than the second amount of resources, and there is a target processor among the plurality of processors, allocate the excess resources of the target processor to the hardware unit through the BIOS. , enabling the hardware unit to allocate the resources of the second amount of resources;其中,所述电路板为所述目标处理器预分配的所述资源的资源量大于所述目标处理器请求的资源量。Wherein, the amount of resources pre-allocated by the circuit board for the target processor is greater than the amount of resources requested by the target processor.
- 根据权利要求22、23或34中任一项所述的装置,其特征在于,所述资源管理器为复杂可编程逻辑器件或者微控制器。The device according to any one of claims 22, 23 or 34, characterized in that the resource manager is a complex programmable logic device or a microcontroller.
- 一种电路板,其特征在于,所述电路板包括资源分配单元,所述资源分配单元从存储器加载至少一条程序代码,所述程序代码由所述资源分配单元执行以实现如权利要求1至18中任一项所述的方法。A circuit board, characterized in that the circuit board includes a resource allocation unit, the resource allocation unit loads at least one program code from a memory, and the program code is executed by the resource allocation unit to implement claims 1 to 18 any one of the methods.
- 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由电路板中的资源分配单元读取,以使所述资源分配单元执行如权利 要求1至18中任一项所述的方法。A computer-readable storage medium, characterized in that at least one program code is stored in the storage medium, and the at least one program code is read by the resource allocation unit in the circuit board, so that the resource allocation unit executes the following: The method of any one of claims 1 to 18.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210555101.X | 2022-05-19 | ||
CN202210555101.XA CN117130763A (en) | 2022-05-19 | 2022-05-19 | Circuit board resource allocation method and device, circuit board and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023221525A1 true WO2023221525A1 (en) | 2023-11-23 |
Family
ID=88834517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/143285 WO2023221525A1 (en) | 2022-05-19 | 2022-12-29 | Resource allocation method and apparatus of circuit board, circuit board, and storage medium |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117130763A (en) |
WO (1) | WO2023221525A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123188A (en) * | 2014-06-30 | 2014-10-29 | 华为技术有限公司 | Resource allocating method and related devices |
US20150254203A1 (en) * | 2014-03-04 | 2015-09-10 | Nec Corporation | Information Processing Device, Resource Allocation Method, And Computer-Readable Recording Medium |
US20160378509A1 (en) * | 2015-06-25 | 2016-12-29 | Dell Products L.P. | Systems and methods for reducing bios reboots |
CN110399217A (en) * | 2019-06-27 | 2019-11-01 | 苏州浪潮智能科技有限公司 | A kind of memory source distribution method, device and equipment |
CN112948310A (en) * | 2021-03-25 | 2021-06-11 | 山东英信计算机技术有限公司 | Resource allocation method, device, equipment and computer readable storage medium |
CN114443531A (en) * | 2022-01-28 | 2022-05-06 | 苏州浪潮智能科技有限公司 | System and method for automatically configuring PCIe port of server |
-
2022
- 2022-05-19 CN CN202210555101.XA patent/CN117130763A/en active Pending
- 2022-12-29 WO PCT/CN2022/143285 patent/WO2023221525A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150254203A1 (en) * | 2014-03-04 | 2015-09-10 | Nec Corporation | Information Processing Device, Resource Allocation Method, And Computer-Readable Recording Medium |
CN104123188A (en) * | 2014-06-30 | 2014-10-29 | 华为技术有限公司 | Resource allocating method and related devices |
US20160378509A1 (en) * | 2015-06-25 | 2016-12-29 | Dell Products L.P. | Systems and methods for reducing bios reboots |
CN110399217A (en) * | 2019-06-27 | 2019-11-01 | 苏州浪潮智能科技有限公司 | A kind of memory source distribution method, device and equipment |
CN112948310A (en) * | 2021-03-25 | 2021-06-11 | 山东英信计算机技术有限公司 | Resource allocation method, device, equipment and computer readable storage medium |
CN114443531A (en) * | 2022-01-28 | 2022-05-06 | 苏州浪潮智能科技有限公司 | System and method for automatically configuring PCIe port of server |
Also Published As
Publication number | Publication date |
---|---|
CN117130763A (en) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9690739B2 (en) | Method and apparatus for extending PCIe domain | |
US8141092B2 (en) | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition | |
US7689755B2 (en) | Apparatus and method for sharing devices between multiple execution domains of a hardware platform | |
JP3234794B2 (en) | Method of allocating system resources in hierarchical bus structure | |
US7526578B2 (en) | Option ROM characterization | |
US20090077297A1 (en) | Method and system for dynamically reconfiguring PCIe-cardbus controllers | |
US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
US20200394076A1 (en) | Information Handling System And Method To Allocate Peripheral Component Interconnect Express (PCIE) Bus Resources | |
CN109324991B (en) | Hot plug device, method, medium and system of PCIE (peripheral component interface express) equipment | |
CN112540941A (en) | Data forwarding chip and server | |
US20240289295A1 (en) | PCIe DEVICE | |
KR102568909B1 (en) | PCIe FUNCTION AND OPERATING METHOD THEREOF | |
US5894563A (en) | Method and apparatus for providing a PCI bridge between multiple PCI environments | |
US10838861B1 (en) | Distribution of memory address resources to bus devices in a multi-processor computing system | |
WO2023221525A1 (en) | Resource allocation method and apparatus of circuit board, circuit board, and storage medium | |
CN113791905A (en) | Computing resource allocation method and device, electronic equipment and storage medium | |
CN116324706A (en) | Split memory pool allocation | |
US20040168004A1 (en) | Method, system, and apparatus for eliminating bus renumbering in a computer system | |
US20230350824A1 (en) | Peripheral component interconnect express device and operating method thereof | |
US11150912B2 (en) | Apparatus, method and program for legacy boot processing | |
US20230318606A1 (en) | Interface device and method of operating the same | |
CN117992375A (en) | Interrupt address allocation method, device and storage medium | |
CN118035143A (en) | DMA address allocation method, device and storage medium | |
CN116360995A (en) | PCIE resource allocation method, PCIE resource allocation device and PCIE resource allocation medium | |
CN118689827A (en) | Storage expansion system and resource allocation method thereof |
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: 22942544 Country of ref document: EP Kind code of ref document: A1 |