Configurable Embedded Memory System for Power and Speed Trade-offs

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Adaptability or versatility

If IC devices are made more dense with more logic features, then functionality is improved, but power consumption increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

2Productivity

If IC devices operate at higher frequencies, then performance is improved, but power consumption increases

Engineering Contradiction:
ImproveperformanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If programmable fabric resources are used for routing, then flexibility is improved, but speed deteriorates

Engineering Contradiction:
ImproveflexibilityVSAvoidspeed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If routing complexity is reduced by localizing logic, then speed is improved, but adaptability deteriorates

Engineering Contradiction:
ImprovespeedVSAvoidadaptability
Core Design Contradiction:
SpeedVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2917844B1Configurable embedded memory system
Publication Date: 2018.08.22 XILINX INC
  • EP2917844B1 patent drawingFigure 1
  • EP2917844B1 patent drawingFigure 2
  • EP2917844B1 patent drawingFigure 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.