BIOS Startup Method for CC-NUMA Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale CC-NUMA systems, the limited 32-bit address space below 4 GB restricts memory-mapped input/output (MMIO) space, leading to reduced compatibility with PCIe devices and potential operating system startup issues due to fixed MMCFG space allocation per CPU, which decreases as the number of CPUs increases.
Innovation Solution
The BIOS startup method dynamically allocates local MMCFG space below the first address and moves it above the first address during unified memory addressing, reserving space below 4 GB for MMIO and memory, ensuring compatibility with PCIe devices and operating systems, even with increased CPU counts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the number of CPUs in a large-scale CC-NUMA system is increased, then the system processing capacity is improved, but the MMCFG space below 4 GB is occupied more, causing the MMIO space to decrease and reducing compatibility with PCIe devices
Solution Approach 1:
The patent introduces a dimension transition by switching from 32-bit addressing mode to 64-bit addressing mode. This allows the system to access MMCFG space above the 4 GB boundary, effectively adding a new address space dimension. As a result, the MMIO space below 4 GB is preserved and not consumed by additional CPUs, maintaining PCIe device compatibility while supporting larger CPU configurations.
Solution Approach 2:
The patent changes the addressing mode parameter from 32-bit to 64-bit, which fundamentally alters the addressable memory space. This parameter change enables the system to allocate MMCFG space in the upper address range (above 4 GB), thereby freeing up the lower address space for MMIO operations and preserving compatibility with PCIe devices even as CPU count increases.
2Quantity of substance
If the number of CPUs in a large-scale CC-NUMA system is increased, then the system processing capacity is improved, but the available memory address space below 4 GB decreases, causing compatibility problems with operating system startup
Solution Approach 1:
By transitioning to 64-bit addressing mode, the system accesses memory space in a higher dimension (above 4 GB). This dimensional shift ensures that the traditional 32-bit address space below 4 GB remains available for operating system startup requirements, thereby maintaining reliability and compatibility even as the system scales to support more CPUs.
Solution Approach 2:
The addressing mode parameter is changed from 32-bit to 64-bit, which expands the total addressable memory space. This parameter change allows the system to allocate MMCFG space for additional CPUs in the upper address range, preserving the lower address space needed for reliable operating system startup.
3Ease of manufacture
If MMCFG space is allocated below 4 GB in 32-bit mode, then memory initialization can be performed, but the MMIO space and available memory space below 4 GB are reduced
Solution Approach 1:
The patent resolves this spatial conflict by moving MMCFG space allocation to a higher dimension (above 4 GB) through 64-bit addressing. This allows memory initialization to proceed while preserving the lower address space below 4 GB for MMIO and available memory, eliminating the need to trade off between these competing space requirements.
Solution Approach 2:
The addressing mode parameter is changed from 32-bit to 64-bit, which fundamentally changes the address space allocation strategy. This parameter change enables MMCFG space to be allocated in the upper address range, thereby preserving sufficient space below 4 GB for both MMIO operations and available memory, without compromising memory initialization capability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A BIOS startup method and apparatus are disclosed, and relate to the computer field. While extending a quantity of CPUs included in a large-scale CC-NUMA system, BIOS startup does not affect capacities occupied by an MMIO space and an available memory space below a first address in a global access address of the system. The specific solution includes: in a first access mode, allocating, by a current node, a local MMCFG in a space below a local access address of the current node that is a first address, and completing memory initialization; and when performing unified memory addressing of a system, moving positions of addresses of a part or an entirety of the MMCFG space of the current node from the original space below the first address in a global access address of the system to a space that is above the first address and can be accessed in a second access mode.