Prefetch Queue Protection Bubble for Processor Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies due to memory latency and the challenge of correctly predicting address patterns for prefetching, leading to reduced processing speed and increased latency when handling multiple instructions out of order.

Innovation Solution

Implementing a prefetch unit that allocates a protection bubble and safety zone around cachelines to prevent new prefetch streams from allocating if the accessed cacheline is within the protection bubble, and to advance the prefetch stream if it is within the safety zone, thereby maintaining and sustaining the prefetch stream efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor allocates multiple prefetch streams to handle multiple instructions out of order, then processing efficiency is improved, but the likelihood of address pattern misprediction increases leading to wasted prefetch operations

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidaddress pattern prediction accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by allocating a protection bubble and safety zone around the currently accessed cacheline before new prefetch streams are established. This preliminary protective measure prevents misprediction by blocking new stream allocation when address patterns may be unpredictable, thereby resolving the contradiction between maintaining high productivity through multiple streams and ensuring reliability by avoiding mispredictions.

Inventive Principle:
Principle #10Preliminary action

2Speed

If the processor aggressively allocates new prefetch streams to reduce memory latency, then data retrieval speed is improved, but the processor suffers from increased latency due to misprediction and stream allocation overhead

Engineering Contradiction:
Improvedata retrieval speedVSAvoidmemory retrieval latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The protection bubble and safety zone act as intermediary structures between the prefetch stream allocation mechanism and the cacheline access pattern. These intermediaries filter out potentially mispredicted address patterns by preventing new stream allocation in protected regions, thereby reducing misprediction overhead and stream allocation latency while maintaining aggressive prefetching in safe regions where patterns are predictable.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the processor uses a protection bubble to prevent new prefetch stream allocation, then misprediction is reduced, but the prefetch stream may be sustained too conservatively limiting processing throughput

Engineering Contradiction:
Improveprefetch stream accuracyVSAvoidprefetch stream throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory address space is segmented into protected regions (within the protection bubble) and unprotected regions (outside the bubble). This segmentation allows the system to apply different prefetch stream allocation policies to different regions: conservative policy within the bubble to ensure accuracy, and aggressive policy outside the bubble to maximize throughput. The safety zone further refines this segmentation by creating a transition region that allows controlled stream advancement.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11093248B2Prefetch queue allocation protection bubble in a processor
Publication Date: 2021.08.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11093248B2 patent drawing
  • US11093248B2 patent drawing
  • US11093248B2 patent drawing

AI summary

A computer system, processor, and method for processing information is disclosed that includes allocating a prefetch stream; providing a protection bubble to a plurality of cachelines for the allocated prefetch stream; accessing a cacheline; and preventing allocation of a different prefetch stream if the accessed cacheline is within the protection bubble. The system, processor and method in an aspect further includes providing a safety zone to a plurality of cachelines for the allocated prefetch stream, and advancing the prefetch stream if the accessed cacheline is one of the plurality of cachelines in the safety zone. In an embodiment, the number of cachelines within the safety zone is less than the number of cachelines in the protection bubble.