Vector Prefetch Unit for Cache Miss Consolidation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order processors experience frequent data cache misses due to aggressive instruction issuance, leading to increased memory latency, which is exacerbated by deep prefetchers producing numerous outstanding cache misses that overwhelm the interconnect and memory systems.

Innovation Solution

Implement vector prefetching, where a missing address storage unit identifies relationships between prefetch requests and generates a single vector prefetch request that includes a starting cache block and the number of related blocks, reducing the number of requests sent over the interconnection network and improving processor performance by merging non-issued related prefetch requests into a single command.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If deep prefetchers are used to reduce memory latency, then memory access speed is improved, but the number of outstanding cache misses increases overwhelming the interconnect and memory systems

Engineering Contradiction:
Improvememory access speedVSAvoidnumber of outstanding cache misses
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent merges multiple individual prefetch requests into a single vector prefetch request that can retrieve multiple cache blocks simultaneously. The vector prefetch unit combines several outstanding cache misses into one consolidated request sent to the interconnect, reducing the total number of requests while maintaining the ability to fetch multiple data blocks needed by the processor.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If multiple individual prefetch requests are sent to handle outstanding cache misses, then cache hit rate is improved, but command bandwidth utilization and interconnect congestion increase

Engineering Contradiction:
Improvecache hit rateVSAvoidinterconnect congestion
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The vector prefetch unit consolidates multiple individual prefetch requests into a single vector request that traverses the interconnect. This merging approach maintains the ability to service multiple cache misses and improve cache hit rates while significantly reducing interconnect congestion and command bandwidth utilization by sending one request instead of many separate requests.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If numerous prefetch requests are issued to reduce memory latency, then processor throughput is improved, but the memory system's command handling capacity is exceeded

Engineering Contradiction:
Improveprocessor throughputVSAvoidcommand bandwidth overload
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent merges multiple prefetch requests into a single vector prefetch request that can service multiple outstanding cache misses. This approach maintains processor throughput by ensuring all needed data is fetched while reducing command bandwidth overload by decreasing the total number of requests sent to the memory system.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The vector prefetch request serves multiple functions simultaneously - it addresses multiple outstanding cache misses, fetches multiple cache blocks, and maintains processor throughput all in a single request. This multi-functionality allows the system to maintain high productivity without exceeding memory system capacity.

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

Data Source

PatentUS11500779B1Vector prefetching for computing systems
Publication Date: 2022.11.15 MARVELL ASIA PTE LTD
  • US11500779B1 patent drawing
  • US11500779B1 patent drawing
  • US11500779B1 patent drawing

AI summary

Described is a computing system for vector prefetching which includes a hierarchical memory including multiple caches, a missing address storage unit (MASU) associated with each cache which stores prefetch requests suffering a cache miss, a prefetcher which sends prefetch requests towards the hierarchical memory, and a vector prefetch unit. The vector prefetch unit determines existence of at least one of a relationship between a cache block associated with the prefetch request and cache blocks associated with one or more entries in a MASU, or a relationship between cache blocks associated with different entries in a MASU, and sends a vector prefetch request based on related prefetch requests including indicators indicating a starting cache block and a number of related cache blocks to a higher memory level to obtain data associated with each cache block. The hierarchical memory stores the data received in at least one response message from the higher memory level if available.