Memory Controller Dynamic Binary Overlay for Working Memory Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The increasing size of firmware in memory systems leads to higher storage capacity requirements, resulting in increased costs for memory systems, particularly in memory controllers with diversified and complex functions.
Innovation Solution
Implementing a dynamic runtime overlay technique where non-overlayable binaries are always loaded and overlayable binaries are dynamically loaded at runtime, optimizing memory usage by allocating specific regions for each type of binary, with the memory controller using a non-mapping based architecture to manage memory addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the firmware size is increased to support diversified and complicated functions, then the functionality and versatility of the memory controller is improved, but the storage capacity requirement and cost of the memory system increases
Solution Approach 1:
The firmware is divided into multiple binaries with different overlay attributes. Non-overlayable binaries are loaded into a first region of working memory and remain resident, while overlayable binaries are loaded into a second region only when needed. This segmentation allows the system to support diverse functions without loading all firmware into memory simultaneously, reducing the required working memory size.
Solution Approach 2:
The patent implements dynamic loading of overlayable binaries based on runtime conditions. The memory controller dynamically determines which binaries to load into the second region based on current operational needs, rather than loading all binaries statically. This dynamic approach optimizes memory usage while maintaining functional versatility.
2Ease of operation
If all binaries are loaded into working memory, then all functions are immediately available, but the working memory size and cost increases
Solution Approach 1:
The working memory is divided into a first region for non-overlayable binaries and a second region for overlayable binaries. This segmentation enables the system to maintain critical functions in the first region while loading less critical or less frequently used binaries into the second region only when needed, reducing overall working memory requirements.
Solution Approach 2:
Overlayable binaries in the second region can be unloaded from working memory when no longer needed, freeing up memory space for other operations. The system recovers memory resources by discarding binaries that are not currently required, maintaining function availability on demand while optimizing memory utilization.
Data Source
AI summary
A memory system includes a memory device including memory blocks and a memory controller configured to control the memory device. The memory device stores a firmware which includes binaries, and the binaries include a first binary and a second binary. The memory controller loads the firmware to a first region in a working memory, loads the first binary to a second region which is included in the first region, and loads the second binary to a third region which is included in the first region and is different from the second region. The memory controller stores information on an entry function corresponding to a target function included in the second binary, in a fourth region which is different from the first region. A start address of the second region is determined as a fixed value, and a start address of the third region is dynamically determined.


