Configurable Embedded Memory System for Power and Speed Trade-offs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Integrated circuit (IC) devices face challenges in reducing power consumption and increasing performance due to increased complexity and demand for higher speeds, which existing technologies struggle to address effectively.
Innovation Solution
A configurable embedded memory system is introduced, utilizing a memory module with multiplexers and registers as a programmable hard macro, allowing for reduced routing complexity and enhanced performance by enabling parallel cascading of data within memory columns without relying on slower programmable fabric resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If IC devices are made more dense with more logic features, then functionality is improved, but power consumption increases
Solution Approach 1:
The memory system is divided into multiple independent memory blocks (first memory block, second memory block, etc.) that can be individually enabled or disabled. This segmentation allows only the necessary memory blocks to be active, reducing overall power consumption while maintaining the required functionality for dense IC designs.
Solution Approach 2:
The system employs dynamic configuration through control logic that can change the operational mode of memory blocks based on real-time requirements. The cascading mode allows data to flow between memory blocks when needed, while independent mode allows individual blocks to operate autonomously, enabling the system to adapt its power consumption to actual functional demands.
2Productivity
If IC devices operate at higher frequencies, then performance is improved, but power consumption increases
Solution Approach 1:
The control logic dynamically selects between cascading mode and independent mode based on performance requirements. When high-speed operation is needed, the cascading mode enables synchronized operation across memory blocks. When lower speeds are acceptable, individual blocks can operate independently at lower power, thus dynamically balancing performance and power consumption.
Solution Approach 2:
The system changes operational parameters (cascading vs. independent mode) to optimize the trade-off between frequency of operation and power consumption. By adjusting the mode of operation, the system can achieve higher frequencies when necessary while consuming less power during normal operation.
3Adaptability or versatility
If programmable fabric resources are used for routing, then flexibility is improved, but speed deteriorates
Solution Approach 1:
The patent merges the routing functionality directly into the memory block structure by providing dedicated cascading output ports and input ports that are physically adjacent to the memory arrays. This integration eliminates the need for data to traverse through distant programmable fabric resources, significantly improving speed while maintaining flexibility through configurable cascading modes.
Solution Approach 2:
The cascading ports act as intermediaries between memory blocks, providing a direct high-speed data path that bypasses the programmable fabric. These intermediary structures enable fast data transfer between adjacent memory blocks while the control logic maintains flexibility in determining when and how data flows through these paths.
4Speed
If routing complexity is reduced by localizing logic, then speed is improved, but adaptability deteriorates
Solution Approach 1:
Each memory block is designed with universal interfaces including cascading output ports, cascading input ports, and independent input/output ports. This multi-functionality allows the same localized structure to serve multiple purposes: fast local operation when blocks work independently, and fast cascaded operation when blocks need to communicate, thus maintaining adaptability while preserving speed advantages of localized logic.
Data Source
Figure 1
Figure 2
Figure 3-1~4
AI summary
An embodiment of a memory module is disclosed. This memory module (250) is a configurable hard macro. A portion of this memory module (250) includes a data input multiplexer (305) coupled to select between cascaded data and direct/bused data. Such portion further includes, a memory (313) coupled to receive output from the data input multiplexer (305) for storage therein, and a register input multiplexer (325) coupled to select between read data from the memory (313) and the cascaded data. This memory module (250) further includes: a register (335) coupled to receive output from the register input multiplexer (325), a latch/register mode multiplexer (345) coupled to select between the read data from the memory (313) and registered data from the register (335), and a data output multiplexer (217) coupled to select between the cascaded data and output from the latch/register mode multiplexer (345) to provide output data.