Scratch Pad Memory Management via Dynamic Block Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional scratch pad memory allocation schemes are static and inefficient, leading to waste and incompatibility with dynamically generated tasks, as they rely on compiler analysis and do not effectively manage memory in environments where tasks are dynamically created.
Innovation Solution
A dynamic memory management system that divides scratch pad memory into unit blocks, uses a memory allocation table in main memory to manage these blocks, and classifies memory chunks as free, allocated, or fixed block pools, allowing for efficient allocation and release of memory based on request sizes and minimizing waste by utilizing a free list and bitmap for optimal resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If a compiler-based static allocation scheme is used for scratch pad memory, then the memory allocation is simple and deterministic, but the memory utilization efficiency deteriorates due to wasted allocated areas and inability to support dynamically generated tasks
Solution Approach 1:
The patent transitions from static compiler-based allocation to dynamic runtime allocation. The memory management unit dynamically assigns scratch pad memory blocks to tasks based on actual needs and availability, allowing allocation to change during system operation. This resolves the contradiction by making the allocation scheme adaptive while maintaining efficiency through runtime optimization.
Solution Approach 2:
The system changes the allocation parameters from fixed compile-time values to dynamic runtime values. The memory management unit uses metadata structures to track and adjust allocation parameters such as block size, duration, and priority based on actual system state, thereby improving utilization without sacrificing simplicity through automated management.
2Device complexity
If static allocation is used where each task uses only its allocated area, then the allocation management is straightforward, but memory waste occurs when allocated areas are not fully utilized
Solution Approach 1:
The patent merges multiple allocation considerations into a unified runtime memory management unit. This unit consolidates tracking of multiple tasks, their memory needs, and allocation states into a single management mechanism that can dynamically redistribute memory, reducing waste while maintaining manageable complexity through centralization.
Solution Approach 2:
The system implements feedback mechanisms where the memory management unit continuously monitors memory usage patterns and adjusts allocations accordingly. Metadata structures provide feedback about current allocation states, enabling the system to identify and eliminate waste by reallocating unused portions to other tasks that need them.
3Loss of time
If compiler-based analysis is used to divide scratch pad memory, then the allocation is determined at compile time, but the scheme cannot be used in environments where tasks are dynamically generated
Solution Approach 1:
The system performs preliminary setup of the memory management infrastructure at compile time (creating metadata structures and management unit), but defers actual allocation decisions to runtime. This allows the system to be prepared in advance while remaining flexible enough to handle dynamically generated tasks that cannot be predetermined.
Solution Approach 2:
The patent makes the allocation system dynamic by moving from compile-time determination to runtime determination. The memory management unit can adapt to tasks generated during execution, changing allocation decisions based on actual system state rather than being constrained by compile-time analysis.
4Productivity
If dynamic memory management is implemented with metadata in main memory, then memory utilization efficiency improves, but the system complexity increases due to additional management structures
Solution Approach 1:
The patent introduces a memory management unit as an intermediary between tasks and scratch pad memory. This intermediary handles the complexity of dynamic allocation, tracking, and optimization, while presenting a simple interface to tasks. The metadata structures serve as intermediaries that organize and manage allocation information efficiently.
Solution Approach 2:
The memory management unit performs multiple functions within a single structure: allocation, deallocation, tracking, optimization, and support for dynamic tasks. By consolidating these functions into one universal management mechanism, the system achieves high utilization efficiency without proportionally increasing complexity.
Data Source
AI summary
Disclosed is a scratch pad memory management device and a method thereof. The scratch pad memory management device divides a scratch pad memory into a plurality of unit blocks, maintains a memory allocation table corresponding to indices of the plurality of unit blocks in a main memory, and manages the scratch pad memory.


