Firmware Memory Manager Lifespan-Based Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidmemory management complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidmemory map retrieval efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

3Speed

If memory blocks are allocated without grouping by lifespan, then allocation process is fast, but memory map retrieval complexity increases

Engineering Contradiction:
Improvememory allocation speedVSAvoidmemory map retrieval complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7577814B1Firmware memory management
Publication Date: 2009.08.18 AMERICAN MEGATRENDS
  • US7577814B1 patent drawing
  • US7577814B1 patent drawing
  • US7577814B1 patent drawing

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.