Dynamic Memory Allocation for Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded systems face challenges in efficiently allocating memory across different types of RAM devices to optimize program execution, as they often require a mix of fast and slow memory to accommodate various priority programs, leading to increased costs due to the need for providing sufficient high-speed memory that may not be utilized.

Innovation Solution

A dynamic memory allocation method using a dynamic memory manager that determines the available types and amounts of memory devices, allocating programs to the most suitable memory based on their requirements, allowing for sharing of high-speed memory and reducing the need for excessive fast memory by utilizing slower memory devices if necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If sufficient high-speed memory is provided to accommodate all programs, then program execution speed is improved, but system cost increases

Engineering Contradiction:
Improveprogram execution speedVSAvoidamount of high-speed memory required
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements dynamic memory allocation where the system automatically assigns programs to different memory types (high-speed IRAM or low-speed external RAM) based on real-time execution priority requirements. This dynamic approach allows the same memory resources to serve multiple purposes at different times, eliminating the need to provision high-speed memory for all programs simultaneously.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the memory allocation parameter based on program characteristics. By analyzing execution priority and dynamically adjusting memory assignment decisions, the system optimizes the balance between execution speed and memory cost, allocating high-speed memory only when necessary for critical real-time tasks.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If a mix of fast and slow memory devices is used to reduce cost, then memory cost is reduced, but optimal memory allocation becomes more complex

Engineering Contradiction:
Improvememory costVSAvoidmemory allocation complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The memory management system performs self-service by automatically analyzing program execution priorities and making allocation decisions without external intervention. The system monitors runtime characteristics and dynamically adjusts memory assignments, thereby simplifying the overall complexity despite managing multiple memory types.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback mechanisms that monitor program execution performance and memory usage patterns. Based on this feedback, the memory allocator optimizes future allocation decisions, learning from past performance to improve allocation efficiency and reduce complexity over time.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10901883B2Embedded memory management scheme for real-time applications
Publication Date: 2021.01.26 CONTINENTAL AUTOMOTIVE SYSTEMS INC
  • US10901883B2 patent drawing
  • US10901883B2 patent drawing
  • US10901883B2 patent drawing

AI summary

Memory is dynamically shared or allocated in an embedded computer system. The types of memory that are part of the system are first determined. Thereafter, the amount of memory available for use is determined. The type of memory required by a program or application is determined as is the amount of space that is required. If the amount of memory space that can be allocated to the program in a first type of requested memory is greater than or at least equal to the amount of memory space required by the computer program, the program is then loaded into the available memory. If the requested type of memory is not available or there is not enough of the requested memory available, other types of memory devices are considered and used, if sufficient space in one or more of them exists.