Memory Controller Identifier Segmentation for Buffer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory transaction management systems require large buffers to handle out-of-order data item reception, leading to inefficiencies and increased power consumption due to unnecessary row openings and closures in storage systems.

Innovation Solution

Allocating unique identifiers to memory controllers and assigning memory transaction requests for spatially local data items, allowing for efficient data retrieval and buffering only when necessary, reducing the buffer size required and minimizing row openings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each memory transaction request is allocated a unique identifier and the master handles out-of-order data items, then data items can be correctly reassembled in order, but the buffer size must be large enough to store all transactions in the worst-case scenario

Engineering Contradiction:
Improvedata reassembly correctnessVSAvoidbuffer size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the buffer management into segments associated with each memory controller rather than using a single large buffer. Each memory controller has its own buffer segment, and the master only needs to buffer data items that are out of order relative to other memory controllers. This segmentation reduces the total buffer size from needing to accommodate all transactions to only needing to accommodate transactions from other controllers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces memory controller identifiers as an intermediary mechanism to track which memory controller issued each transaction. This allows the master to determine whether a received data item is out of order relative to other controllers and only buffer it if necessary. The identifier acts as a mediator that enables selective buffering without requiring a large universal buffer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a large buffer is used to store all out-of-order transactions, then all transactions can be handled, but power consumption increases due to unnecessary row openings and closures in storage

Engineering Contradiction:
Improvetransaction handling capabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

By segmenting the buffer into controller-specific portions, the system reduces the total buffer size required. This smaller buffer results in fewer row openings and closures in the storage medium, directly reducing power consumption while maintaining the ability to handle out-of-order transactions from multiple controllers.

Inventive Principle:
Principle #1Segmentation

3Productivity

If each memory transaction request is assigned to a memory controller based on unique identifiers, then spatially local data items can be efficiently accessed, but the system complexity increases due to identifier management and controller assignment logic

Engineering Contradiction:
Improvedata access efficiencyVSAvoididentifier management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The unique identifier allocated to each memory controller serves multiple functions: it identifies the controller for assignment purposes, tracks which controller issued each transaction for buffering decisions, and enables spatially local data access. This multi-functionality reduces overall system complexity compared to having separate mechanisms for each function.

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

Data Source

PatentUS11599391B2Memory transaction request management for an ordered unit of data items
Publication Date: 2023.03.07 ARM LTD
  • US11599391B2 patent drawing
  • US11599391B2 patent drawing
  • US11599391B2 patent drawing

AI summary

A method of requesting data items from storage. The method comprising allocating each of a plurality of memory controllers a unique identifier and assigning memory transaction requests for accessing data items to a memory controller according to the unique identifiers. The data items are spatially local to one another in storage. The data items are requested from the storage via the memory controllers according to the memory transaction requests and then buffered if the data items are received out of order relative to an order in which the data items are requested.