Initialization Code Memory Mapping via MMIO Read Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing information handling systems face delays during initialization and runtime operations due to the high overhead of SPI command read operations required to access data ROM, which slows down the completion of initialization and availability of services in the runtime environment.
Innovation Solution
The system employs Memory Mapped Input/Output (MMIO) read operations to access and copy initialization code from a first SPI flash memory device to the main memory system, and then uses the initialization engine to map and access initialization data stored in a second SPI flash memory device, reducing the need for slower SPI read operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If SPI command read operations are used to access data ROM, then data can be accessed, but the overhead is high and initialization is delayed
Solution Approach 1:
The patent applies preliminary action by copying initialization code from the first SPI flash memory device to the main memory system before it is needed for execution. This pre-positioning of code eliminates the need for repeated SPI read operations during initialization, thereby reducing overhead and acceleration the boot process while maintaining data accessibility
2Productivity
If MMIO read operations are used to access code ROM, then code can be read efficiently, but data ROM access still requires slow SPI operations
Solution Approach 1:
The patent applies universality by making the main memory system serve multiple functions: it stores both the copied initialization code and the initialization data that would otherwise require SPI access. This multi-functional use of main memory eliminates the need for separate SPI data ROM access paths, improving productivity while the memory mapping mechanism manages the complexity
Data Source
AI summary
A initialization code/data memory mapping system includes a processing system, memory device(s) storing initialization code and initialization data, and a main memory system. The processing system performs first MMIO read operations to access the initialization code stored in the memory device(s) that is mapped to an initialization memory space in order to provide an initialization engine, and uses it to copy the initialization code from the memory device(s) to the main memory system. The processing system then accesses the initialization code stored in the main memory system in order to provide the initialization engine, and uses it to map the initialization data stored in the memory device(s) to the initialization memory space. The processing system then performs second MMIO read operations to access the initialization data stored in the memory device(s) that is mapped to the initialization memory space for use by the initialization engine.


