Memory Cache Channel Access for Non-Sequential Data Operands

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face performance and power inefficiencies when accessing non-sequential data operands, particularly in high-performance computing systems that use vector data structures, due to the need to read and write entire cache blocks even when only one operand is used, leading to excessive memory bandwidth and power consumption.

Innovation Solution

A method for accessing and writing data operands in a memory unit with independently controlled channels, utilizing a memory cache and tag store to compare physical addresses, allowing selective reading and writing of blocks, reducing unnecessary reads and writes by exploiting locality and vector references.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If entire cache blocks are read to access a single operand, then the operand can be retrieved, but memory bandwidth and power are excessively consumed

Engineering Contradiction:
Improveoperand access accuracyVSAvoidmemory power consumption
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The cache block is segmented into multiple independently accessible channels. Instead of reading the entire cache block, the system selectively activates only the specific channel containing the required operand, thereby reducing memory bandwidth consumption and power usage while maintaining accurate operand retrieval.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If entire cache blocks are read to access a single operand, then the operand can be retrieved, but memory access time increases due to unnecessary data transfer

Engineering Contradiction:
Improveoperand access accuracyVSAvoidmemory access time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The cache block is divided into multiple channels that can be independently accessed. The system directly targets and reads only the specific channel containing the required operand, eliminating the time penalty of transferring unnecessary data from other channels while ensuring accurate operand retrieval.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary identification of the operand's location within the cache block before initiating the read operation. By knowing in advance which channel contains the required operand, the system can directly access that channel without first reading the entire block, thereby reducing memory access time.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If sequential access methods are used, then implementation is simple, but performance is severely impacted for non-sequential references

Engineering Contradiction:
Improveaccess method simplicityVSAvoidmemory access performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system dynamically adapts its access method based on the reference pattern. For sequential references, it uses simple sequential access; for non-sequential references, it employs the channel-selective access mechanism. This dynamic adaptation maintains ease of operation for common cases while significantly improving performance for vector and non-sequential access patterns.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12481595B2Method for storing and accessing a data operand in a memory unit
Publication Date: 2025.11.25 BARCELONA SUPERCOMPUTING CENT CENT NAT DE SUPERCOMPUTACION
  • US12481595B2 patent drawing
  • US12481595B2 patent drawing
  • US12481595B2 patent drawing

AI summary

The present invention relates to a method for storing and accessing an operand in a memory unit of a computer, and specifically, to a method for accessing a data operand stored in a main memory unit with N independently controlled channels a memory cache and a tag store, wherein the method comprises the steps of comparing a physical address with the tag store, the cache tags comprising N status bits, referencing the channels, and a method for writing a data operand in a main memory unit with N independently controlled channels.