Instruction Fetch Resource Priority Promotion at Retirement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Despite advances in microprocessor design, achieving high performance thread execution in multicore processors remains challenging due to front-end stalls caused by large code footprints, leading to significant instruction fetch misses that account for over 30% of stalls in processor cores, particularly in datacenter and cloud applications.

Innovation Solution

The implementation of 'priority promotion at retirement' (PPR) functionality, which prioritizes instruction fetch resource entries based on stall-retire events to prevent eviction, using a prioritization scheme with high and low priority levels to manage instruction cache entries, ensuring critical instructions are retained and less critical ones are evicted.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instruction cache entries are managed using traditional eviction policies, then cache memory is efficiently utilized, but front-end stalls increase due to eviction of critical instructions

Engineering Contradiction:
Improvethread execution performanceVSAvoidfront-end stall frequency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the parameter of cache entry priority by introducing a dynamic priority field that can take different values (e.g., high priority = 0, low priority = 1). This allows the system to differentiate between critical and non-critical instructions, preventing eviction of high-priority entries while allowing eviction of low-priority entries, thereby reducing front-end stalls without compromising cache utilization

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic priority assignment where the priority of cache entries is not static but changes based on runtime conditions. The priority promotion at retirement mechanism dynamically updates the priority field of cache entries based on whether their retirement caused a front-end stall, making the cache eviction policy adaptive to actual execution needs and reducing stalls over time

Inventive Principle:
Principle #15Dynamics

2Loss of time

If all instruction cache entries are protected from eviction, then front-end stalls are reduced, but cache memory capacity is wasted and less critical instructions cannot be loaded

Engineering Contradiction:
Improvefront-end stall frequencyVSAvoidcache entry availability
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies local quality by assigning different priority levels to different cache entries based on their criticality. Instead of uniformly protecting or evicting all entries, the system selectively protects only those entries marked as high priority while allowing eviction of low-priority entries. This localized differentiation ensures cache capacity is efficiently utilized while protecting only the necessary critical instructions

Inventive Principle:
Principle #3Local quality

3Reliability

If instruction cache size is increased to accommodate large code footprints, then instruction fetch misses are reduced, but device complexity and memory resource consumption increase

Engineering Contradiction:
Improveinstruction fetch reliabilityVSAvoidcache structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the parameter of cache management from size-based to priority-based. Instead of increasing cache size to reduce misses, the system introduces a priority field parameter that enables intelligent selection of which entries to retain. This allows the same cache size to effectively handle larger code footprints by prioritizing critical instructions, avoiding the need for larger cache structures

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240311151A1Device, method and system for prioritizing entries of an instruction fetch resource
Publication Date: 2024.09.19 INTEL CORP
  • US20240311151A1 patent drawing
  • US20240311151A1 patent drawing
  • US20240311151A1 patent drawing

AI summary

Techniques and mechanisms for prioritizing entries of a processor resource which is accessed to facilitate the fetching of an instruction for execution. In an embodiment, a first entry of the resource includes, or otherwise corresponds to, a version of the instruction. The first entry is prioritized based on an event wherein the instruction is retired from execution after a front end stall which is due to the instruction. While the first entry is prioritized, the entry is protected from a selection to be evicted from the resource. In another embodiment, second entries of a cache are variously prioritized, based on respective retirement events, to be available for instruction prefetching.