Two-Dimensional Memory Array Bandwidth Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing main memory systems experience reduced data bandwidth due to idle time in memory channels, particularly with higher or variable latency memory modules, which affects overall system performance.

Innovation Solution

The implementation of a two-dimensional memory array with a master memory controller and multiple memory modules allows for concurrent access across multiple memory slices, aggregating random memory requests into compound transactions to optimize bandwidth usage and manage latency variations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory modules with higher latency are introduced into the main memory, then memory capacity and flexibility are improved, but data bandwidth is reduced due to increased idle time in memory channels

Engineering Contradiction:
Improvememory capacityVSAvoiddata bandwidth
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The memory channel is divided into multiple segments or lanes, allowing parallel memory transactions to occur simultaneously. The master memory controller distributes memory requests across multiple channels, enabling concurrent access to different memory modules and reducing idle time in individual channels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional sequential memory access model to a multi-dimensional parallel access model. By organizing memory modules in a two-dimensional array and enabling access along both row and column dimensions, the system achieves higher bandwidth utilization despite individual module latency variations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If memory modules with variable latency are introduced into the main memory, then adaptability is improved, but data bandwidth is reduced due to idle time waiting for memory transactions

Engineering Contradiction:
Improvememory module compatibilityVSAvoididle time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The master memory controller performs preliminary actions by pre-fetching data from memory modules before it is actually requested by the processor. It anticipates future memory needs and initiates data transfer operations in advance, thereby reducing idle time when data is finally needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous useful action in memory channels by overlapping memory transactions. While one memory module is being accessed, the controller simultaneously initiates transactions with other memory modules, ensuring that memory channels remain continuously productive rather than idle during latency periods.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9251061B2Methods for accessing memory in a two-dimensional main memory having a plurality of memory slices
Publication Date: 2016.02.02 WESTERN DIGITAL TECHNOLOGIES INC
  • US9251061B2 patent drawing
  • US9251061B2 patent drawing
  • US9251061B2 patent drawing

AI summary

In one embodiment of the invention, a memory module is disclosed including a printed circuit board with an edge connector; an address controller coupled to the printed circuit board; and a plurality of memory slices. Each of the plurality of memory slices of the memory module includes one or more memory integrated circuits coupled to the printed circuit board, and a slave memory controller coupled to the printed circuit board and the one or more memory integrated circuits. The slave memory controller receives memory access requests for the memory module from the address controller. The slave memory controller selectively activates one or more of the one or more memory integrated circuits in the respective memory slice in response to the address received from the address controller to read data from or write data into selected memory locations in the memory integrated circuits.