Memory Fragmentation Reduction in Devices Without Graphics MMU
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Devices lacking a graphics memory management unit face significant memory fragmentation issues, leading to inefficient memory use and performance degradation, with existing solutions either requiring additional RAM, terminating applications, or involving time-consuming defragmentation processes that consume energy.
Innovation Solution
A method that transforms two-dimensional images into one-dimensional space to allocate memory efficiently, minimizing internal fragmentation by determining optimal surface width and height, and using a mapping system to locate and compress images, thereby reducing both internal and external fragmentation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a large section of continuous physical addresses is allocated for graphical images, then memory allocation simplicity is improved, but memory fragmentation increases because smaller allocations are placed over the memory
Solution Approach 1:
The patent segments the memory allocation process into multiple stages: first identifying free memory regions, then allocating the largest possible contiguous block for the graphical image. This segmentation allows the system to handle memory allocation in manageable steps rather than attempting to allocate the entire memory space at once, thereby reducing fragmentation while maintaining allocation simplicity.
Solution Approach 2:
The patent introduces a two-dimensional allocation strategy by considering both the size and position of memory blocks. Instead of simple one-dimensional sequential allocation, the system evaluates memory availability in terms of contiguous blocks of sufficient size, effectively adding a dimensional aspect to the allocation decision that reduces fragmentation.
2Quantity of substance
If additional RAM is provided to resolve fragmentation, then memory availability is improved, but system cost increases
Solution Approach 1:
The patent changes the parameter of memory allocation from fixed-size partitions to dynamic contiguous block allocation. By modifying how memory is allocated (allocating the largest available contiguous block rather than fixed partitions), the system achieves better memory utilization without requiring additional RAM, thereby avoiding increased system cost while improving memory availability.
3Stability of the object's composition
If application termination and restart is used to resolve fragmentation, then memory continuity is improved, but time consumption and energy usage increase
Solution Approach 1:
The patent performs preliminary memory allocation by identifying and reserving the largest contiguous free memory block before the graphical image needs to be loaded. This preliminary action ensures memory continuity is established in advance, eliminating the need for application termination and restart, thereby reducing time consumption and energy usage while maintaining memory stability.
4Ease of operation
If fixed partitions are used for memory allocation, then allocation simplicity is improved, but internal fragmentation increases because any process occupies an entire partition
Solution Approach 1:
The patent transitions from static fixed partition allocation to dynamic contiguous block allocation. Instead of pre-defining fixed partitions, the system dynamically allocates memory by identifying the largest available contiguous block at the time of allocation request. This dynamic approach maintains allocation simplicity while significantly reducing internal fragmentation by allowing flexible memory usage.
Data Source
AI summary
Method for reducing memory fragmentation characterized in that it the steps of: for each image in a source set of images (601) determining image size (602) in pixels and obtaining (603) a minimal total number of pixels for an aggregated surface by obtaining a sum of image sizes; factorizing (604) the sum of image sizes into a surface's width and height; allocating memory (702) for the surface (701); creating (703) a mapping between an image identifier and its location, width, height for each image associated with the surface; for each image, according to its offset in the surface, the two-dimensional space of the image is cast (704) to one dimension; knowing the casting formula between the one and two-dimensional spaces, copying each image to the surface (705).


