Dynamic SRAM Sharing in System-on-Chip Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In System-on-Chip (SOC) devices, SRAMs allocated to different functional modules often remain idle due to non-simultaneous access, leading to underutilization and high production costs due to the substantial chip area occupied by memory blocks.
Innovation Solution
A memory sharing method that calculates the total memory capacity of a module group and allocates SRAMs dynamically, allowing a target module to access SRAMs from other functional modules when their combined capacity meets the target's requirements, thereby reducing the number of implemented SRAMs and lowering production costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If SRAMs are allocated to each functional module in SOC devices, then each module has dedicated memory access, but the total chip area is substantially occupied by memory blocks (about 70% area)
Solution Approach 1:
Multiple SRAMs from different functional modules are merged into a shared memory pool that can be accessed by any module. The memory management unit consolidates control over these SRAMs, allowing them to function as a unified resource rather than isolated dedicated memories, thereby reducing total memory footprint while maintaining access reliability.
Solution Approach 2:
SRAMs are designed to serve multiple functions and multiple functional modules simultaneously. A single SRAM can be allocated to different modules at different times based on system needs, making the memory resource universal rather than dedicated to a single module, thus reducing the overall number of SRAMs required.
2Ease of operation
If SRAMs are distributed in different functional modules, then each module has independent memory, but the SRAMs remain idle when not accessed, causing underutilization
Solution Approach 1:
The memory allocation system dynamically assigns SRAMs to functional modules based on real-time access patterns and system demands. Instead of static dedicated allocation, the memory management unit continuously monitors and reallocates memory resources, ensuring that SRAMs are actively utilized by whichever module currently needs them, thereby eliminating idle time and improving overall productivity.
Solution Approach 2:
The memory management unit enables functional modules to self-allocate memory resources from the shared pool based on their immediate needs. Modules can independently access and utilize available SRAMs without requiring permanent dedicated assignment, allowing the system to automatically optimize memory utilization across all modules while maintaining operational independence.
3Ease of manufacture
If dedicated SRAMs are assigned to each functional module, then memory allocation is simple, but the total number of SRAMs is high, increasing production costs
Solution Approach 1:
A memory management unit acts as an intermediary between functional modules and the shared SRAM pool. This mediator handles the complexity of memory allocation, addressing, and access control, allowing multiple modules to efficiently share a reduced number of SRAMs. The intermediary manages the increased complexity of dynamic allocation, enabling cost reduction through fewer physical SRAMs while maintaining allocation simplicity through centralized control.
Data Source
AI summary
A memory sharing method for at least a functional module and a target module is disclosed. The functional module includes at least a static random access memory (SRAM), the memory sharing method includes the steps of calculating a memory capacity of the functional module; if a total memory capacity of a module group satisfies a memory capacity requirement of the target module, allocating the SRAM of the module group, wherein the module group comprises at least one functional module; and accessing the SRAM of the functional module of the module group by utilizing the target module.


