Sliding Window Access Logic for Vector Register Data Fetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current continuous and overlapping data-stream memory access methods in computer systems result in increased instruction count, code bloat, and execution port pressure, leading to inefficient use of internal buffers and potential power consumption issues.

Innovation Solution

The implementation of a Sliding Window Access (SWA) logic that allows a single instruction to fetch and store multiple sets of continuous and overlapping data elements into physical registers, effectively unrolling loops and reducing memory access operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional continuous and overlapping data-stream memory access methods are used, then data can be accessed sequentially, but the instruction count increases and code bloat occurs

Engineering Contradiction:
Improvedata access efficiencyVSAvoidinstruction count
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple sequential memory access operations into a single instruction by introducing a sliding window access mechanism. This single instruction can perform multiple data stream accesses simultaneously, reducing the total instruction count while maintaining the same data access functionality, thereby resolving the contradiction between productivity and device complexity

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If multiple memory access operations are performed for overlapping data elements, then complete data can be retrieved, but execution port pressure increases

Engineering Contradiction:
Improvedata completenessVSAvoidexecution port pressure
Core Design Contradiction:
ReliabilityVSStress or pressure

Solution Approach 1:

The sliding window access instruction combines multiple memory access operations into a single execution port operation. By merging the retrieval of overlapping data elements into one instruction, the system maintains data completeness while significantly reducing execution port pressure that would otherwise result from multiple separate access operations

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If sequential memory accesses are performed for overlapping data streams, then data can be fetched continuously, but internal buffer usage increases

Engineering Contradiction:
Improvedata stream continuityVSAvoidinternal buffer usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent merges multiple sequential memory accesses into a single sliding window access instruction that retrieves overlapping data elements in one operation. This reduces the quantity of internal buffer usage that would be required to support multiple separate access operations, while maintaining continuous data stream availability

Inventive Principle:
Principle #5Merging (Combining)

4Reliability

If multiple memory access operations are executed, then complete data can be loaded, but power consumption increases

Engineering Contradiction:
Improvedata loading completenessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The sliding window access instruction merges multiple memory access operations into a single power-consuming operation. By loading complete overlapping data streams in one instruction rather than through multiple separate accesses, the system maintains data loading completeness while reducing total power consumption associated with repeated memory operations

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9348592B2Apparatus and method for sliding window data access
Publication Date: 2016.05.24 TAHOE RES LTD
  • US9348592B2 patent drawing
  • US9348592B2 patent drawing
  • US9348592B2 patent drawing

AI summary

An apparatus and method are described for fetching and storing a plurality of portions of a data stream into a plurality of registers. For example, a method according to one embodiment includes the following operations: determining a set of N vector registers into which to read N designated portions of a data stream stored in system memory; determining the system memory addresses for each of the N designated portions of the data stream; fetching the N designated portions of the data stream from the system memory at the system memory addresses; and storing the N designated portions of the data stream into the N vector registers.