Memory Controller RMW Command Interleaving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory systems face significant performance hindrances due to high turnaround delays between read and write operations, particularly in read-modify-write (RMW) transactions, especially when coupled with error checking data, leading to inefficiencies in memory bus utilization.

Innovation Solution

Implementing a method to interleave RMW command sequences by grouping read and write components separately in the command queue, allocating dedicated buffers for RMW operations, and using a watermarking technique to manage resource allocation, thereby minimizing bus turnaround occurrences and optimizing storage usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If read-modify-write transactions are executed sequentially with error checking data, then data integrity is maintained, but memory bus utilization deteriorates due to high turnaround delays

Engineering Contradiction:
Improvedata integrityVSAvoidmemory bus utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments RMW transactions into separate read and write command sequences that can be independently queued and executed. By dividing the transaction into distinct phases and allowing interleaving with other commands, the system maintains data integrity through proper sequencing while improving memory bus utilization by eliminating sequential bottlenecks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary buffering of read data before write operations are executed. By pre-fetching and storing read data in buffers, the system prepares necessary information in advance, allowing write operations to proceed without waiting for read completion, thus reducing turnaround delays while maintaining data integrity through controlled data flow.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If RMW command sequences are executed in order, then command simplicity is maintained, but turnaround delays increase reducing overall performance

Engineering Contradiction:
Improvecommand sequencingVSAvoidturnaround delays
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent introduces dynamic command sequencing that adapts based on buffer availability and command readiness. Instead of fixed sequential execution, the system dynamically interleaves read and write commands based on real-time conditions, allowing faster execution when buffers are available while maintaining simplicity through automated management of the sequencing logic.

Inventive Principle:
Principle #15Dynamics

3Productivity

If dedicated buffers are allocated for RMW operations, then resource contention is reduced, but memory device complexity increases

Engineering Contradiction:
Improvecommand execution efficiencyVSAvoidbuffer management structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements multi-functional buffers that serve both RMW operations and general memory transactions. By designing buffers that can handle multiple types of operations rather than dedicated buffers for each function, the system reduces resource contention for RMW commands while avoiding the complexity of separate dedicated buffer structures.

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

Data Source

PatentUS10642684B1Memory command interleaving
Publication Date: 2020.05.05 CADENCE DESIGN SYST INC
  • US10642684B1 patent drawing
  • US10642684B1 patent drawing
  • US10642684B1 patent drawing

AI summary

Various embodiments described herein provide for grouping read-modify-writes (RMWs) such that multiple RMW command sequences can be executed (or rearranged in the command queue) in an interleaved manner rather than being executed in order. In particular, various embodiments described herein split the read and write components (commands) of multiple RMW command sequences, group the read components in the command queue to execute consecutively, and group the write components in the command queue to execute consecutively.