Dynamic Memory Allocation for Embedded Systems
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Speed
If sufficient high-speed memory is provided to accommodate all programs, then program execution speed is improved, but system cost increases
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.
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.
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
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.
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.
Data Source
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.


