Hardware Prefetching Multidimensional Array Blocks Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processor idle time due to waiting for data from slower memory systems, particularly in stencil computations that require large volumes of data, leads to increased memory access latency and processing delays.

Innovation Solution

A hardware prefetching mechanism that uses specific instructions to load multidimensional blocks of elements from a multidimensional array into faster cache levels, reducing the time spent waiting for data by proactively fetching necessary elements before they are needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is fetched from slower memory systems during processor execution, then data availability is improved, but processor idle time increases due to waiting for data

Engineering Contradiction:
Improvedata availabilityVSAvoidprocessor idle time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a hardware prefetching mechanism that proactively loads multidimensional blocks of elements from slower memory into faster cache levels before the processor actually needs them. This preliminary action eliminates processor idle time by ensuring data is already available in cache when the processor reaches instructions requiring that data, thus resolving the contradiction between data availability and processor idle time.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If large volumes of data are accessed in stencil computations, then computation accuracy is improved, but memory access latency increases

Engineering Contradiction:
Improvecomputation accuracyVSAvoidmemory access latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The prefetching mechanism pre-loads the large volumes of data required for stencil computations into cache memory before the actual computation begins. This allows the processor to access all necessary data elements with high accuracy while avoiding repeated trips to slower memory systems, thus reducing memory access latency while maintaining computation accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent specifically addresses multidimensional data blocks by implementing prefetching that understands the spatial structure of stencil computations. By optimizing data movement in multiple dimensions (spatial prefetching), the system efficiently loads the required data blocks into cache, reducing latency while maintaining the ability to access all data elements needed for accurate computation.

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

3Speed

If data is loaded into cache from slower memory, then processing speed is improved, but memory access latency increases during the load operation

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory access latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The hardware prefetching mechanism performs data loading into cache in advance, during periods when the processor is executing other instructions or before the data is actually needed. This shifts the memory access latency to occur outside the critical processing path, allowing the processor to maintain high speed when actually using the data while the initial load latency is masked by other operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The prefetching mechanism enables continuous processor operation by ensuring data is continuously available in cache. While the initial data load from slower memory does take time, the system maintains continuous useful action by overlapping the load operation with other processor activities and by ensuring subsequent data accesses can proceed without interruption at high speed.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10656944B2Hardware apparatus and methods to prefetch a multidimensional block of elements from a multidimensional array
Publication Date: 2020.05.19 INTEL CORP
  • US10656944B2 patent drawing
  • US10656944B2 patent drawing
  • US10656944B2 patent drawing

AI summary

Methods and apparatuses relating to a prefetch instruction to prefetch a multidimensional block of elements from a multidimensional array into a cache. In one embodiment, a hardware processor includes a decoder to decode a prefetch instruction to prefetch a multidimensional block of elements from a multidimensional array into a cache, wherein at least one operand of the prefetch instruction is to indicate a system memory address of an element of the multidimensional block of elements, a stride of the multidimensional block of elements, and boundaries of the multidimensional block of elements, and an execution unit to execute the prefetch instruction to generate system memory addresses of the other elements of the multidimensional block of elements, and load the multidimensional block of elements into the cache from the system memory addresses.