Firmware Memory Manager Lifespan-Based Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing firmware systems inefficiently manage memory allocations, leading to non-contiguous memory regions that complicate memory map retrieval and exceed maximum call limits, especially during the transition from boot time to run time.
Innovation Solution
Implement a memory allocation method that determines the lifespan of requested memory blocks and allocates them adjacent to blocks with similar lifespans, optimizing memory usage and reducing complexity in memory map retrieval by grouping blocks by their lifespan.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If memory is allocated sequentially without regard to lifespan, then memory allocation is simple, but non-contiguous regions are created making memory management complex
Solution Approach 1:
The patent changes the allocation parameter from sequential addressing to lifespan-based categorization. Memory blocks are allocated based on their lifespan characteristics (boot-time only vs. run-time), grouping them into different regions. This parameter change transforms the allocation strategy to maintain contiguity within lifespan categories while simplifying overall management.
2Adaptability or versatility
If multiple non-contiguous memory regions are created, then memory can be allocated flexibly, but the number of memory map calls exceeds maximum limits
Solution Approach 1:
The patent segments memory into distinct regions based on lifespan characteristics. Boot-time memory blocks are allocated in one region, while run-time blocks are allocated in another contiguous region. This segmentation reduces the total number of separate memory regions that need to be reported, keeping memory map call counts within operational limits.
3Speed
If memory blocks are allocated without grouping by lifespan, then allocation process is fast, but memory map retrieval complexity increases
Solution Approach 1:
The patent performs preliminary classification of memory blocks by lifespan during the allocation phase. By determining whether each block is needed only at boot-time or extends into run-time before allocation, the system pre-organizes memory into manageable groups. This preliminary action simplifies subsequent memory map retrieval operations.
Data Source
AI summary
A firmware memory manager allocates memory for code and data based on a lifespan associated with each allocation. The memory manager determines whether each allocated block of memory is needed only for a certain lifespan. Based on this determination, blocks of memory needed beyond the certain lifespan are all allocated adjacent to each other in memory. Once execution exceeds the certain lifespan, memory needed only for boot time is reported as being available for reuse by an operating system.


