PCI Expansion ROM Microcode Caching in BIOS
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The lengthy boot time of computer systems with multiple PCI devices is due to the need for the BIOS to probe and initialize each expansion ROM, increasing production costs and reducing space on PCI plug-in cards.
Innovation Solution
Caching PCI device expansion ROM microcode in BIOS memory, allowing the system to configure and enable PCI devices without needing to probe each expansion ROM individually, thereby reducing the number of ROMs required on PCI plug-in cards.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If each PCI device includes an expansion ROM on the PCI plug-in card, then the device can function properly, but the number of ROMs increases production costs and reduces space on the card
Solution Approach 1:
The BIOS memory is used for multiple purposes: storing system boot instructions and caching PCI device expansion ROM microcode. This allows the same memory resource to serve dual functions, eliminating the need for separate expansion ROMs on each PCI device while maintaining device functionality.
Solution Approach 2:
The system creates a copy of the expansion ROM microcode and stores it in the BIOS memory during system initialization. This copied microcode is then used to enable PCI devices without requiring the original expansion ROM chips on the plug-in cards, thereby reducing component count and production costs.
2Reliability
If each PCI device includes an expansion ROM on the PCI plug-in card, then the device can function properly, but the space available on the PCI plug-in card is reduced
Solution Approach 1:
The expansion ROM microcode is extracted from the physical expansion ROM chips on the PCI plug-in card and transferred to the BIOS memory during system boot. This extraction eliminates the need for expansion ROM components on the plug-in cards, freeing up physical space while preserving device functionality through the cached microcode.
Solution Approach 2:
The system moves the storage of expansion ROM microcode from the spatial dimension (physical ROM chips on the PCI card) to the temporal dimension (caching in BIOS memory during boot sequence). This allows the microcode to be available when needed without occupying physical space on the plug-in card.
3Ease of operation
If the BIOS probes and initializes each expansion ROM for PCI devices, then the devices can be configured, but the boot time increases to several minutes
Solution Approach 1:
The system performs preliminary actions during system initialization by caching all necessary expansion ROM microcode in BIOS memory before actual PCI device operation is required. This preliminary caching eliminates the need for time-consuming probing and initialization of expansion ROMs during device operation, significantly reducing boot time.
Solution Approach 2:
The BIOS skips the traditional time-consuming process of probing each expansion ROM individually by using the pre-cached microcode in BIOS memory. This allows the system to rush through the PCI device configuration process much faster, reducing boot time from several minutes to a fraction of that time.
Data Source
AI summary
A system for caching peripheral component interconnect device data. In response to probing a peripheral component interconnect device, peripheral component interconnect device data is discovered. The discovered peripheral component interconnect device data is cached and then configured to enable the peripheral component interconnect device to execute.


