Memory Management Bitmap Sub-block Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory fragmentation in computing systems leads to inefficient use of memory space, resulting in lower computing efficiency as substantial portions of memory remain unused despite being divided into many small blocks.
Innovation Solution
Implementing a memory management system that partitions memory into larger blocks and uses sub-blocks with a bit map to identify freeable data structures, delaying de-allocation until a threshold is reached, and coalescing memory by marking and freeing data structures with a freeable property to reduce fragmentation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If memory is allocated and de-allocated frequently on a block basis, then memory can be divided into many small blocks to satisfy allocation requests, but memory fragmentation occurs and substantial portions of memory space remain unused
Solution Approach 1:
The patent divides memory into blocks and further segments each block into multiple data structures. This segmentation allows the system to allocate and de-allocate individual data structures within blocks rather than entire blocks, reducing memory fragmentation while maintaining the ability to satisfy allocation requests of varying sizes.
Solution Approach 2:
The patent merges multiple data structures within a single memory block and uses a unified bitmap to track allocation status. This merging approach allows contiguous free data structures to be coalesced into larger allocatable units, preventing memory fragmentation and improving memory utilization while maintaining adaptability to different allocation requests.
2Reliability
If memory de-allocation is performed immediately when a process finishes using memory, then memory availability is improved, but overhead increases due to frequent consolidation operations
Solution Approach 1:
The patent performs preliminary actions by maintaining a bitmap that tracks the allocation status of each data structure within a block. When data structures are de-allocated, their status is immediately updated in the bitmap, preparing the information for potential future allocation without requiring immediate consolidation operations, thus reducing overhead while maintaining availability.
Solution Approach 2:
The bitmap structure enables self-service by automatically tracking which data structures are free and contiguous. When allocation requests come in, the system can self-determine allocatable regions by examining the bitmap without requiring complex consolidation algorithms, reducing computational overhead while ensuring memory availability.
3Loss of substance
If contiguous blocks of available memory are joined to form larger blocks, then memory fragmentation is reduced, but device complexity increases due to consolidation operations
Solution Approach 1:
The patent uses a bitmap as a simplified copy or representation of the actual memory allocation state. Instead of performing complex physical consolidation operations to join contiguous blocks, the system maintains a bitmap copy that reflects free and allocated regions, allowing logical consolidation without the complexity of physical memory reorganization.
Solution Approach 2:
The patent changes the parameter representation from physical memory block addresses to bitmap indices. This parameter transformation simplifies the consolidation process by allowing the system to identify and merge contiguous free regions through simple bitmap operations rather than complex address calculations and physical memory management operations.
Data Source
AI summary
Methods and devices are provided for memory management. One embodiment includes creating a memory control block including a number of sub-blocks, where the number of sub-blocks are capable of storing at least one data structure in a memory device. The method also includes scanning the control block for a free-able data structure having a defined data structure property, marking the free-able data structure as free-able in a bit map, and de-allocating the free-able data structure.


