Miss Buffer for Multi-Threaded Processor Starvation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded processors, instruction cache misses lead to stalling, and existing resource allocation schemes result in inefficiencies and thread starvation due to underutilization of resources.

Innovation Solution

A processor architecture that dynamically allocates miss buffer entries to any thread while reserving dedicated entries for each thread to prevent starvation and optimize resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processor resources are dynamically allocated to all threads, then resource utilization is improved, but thread starvation may occur

Engineering Contradiction:
Improveresource utilizationVSAvoidthread starvation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The miss buffer is segmented into two distinct portions: a first portion with entries dedicated to specific threads, and a second portion with entries dynamically allocable to any thread. This segmentation allows the system to simultaneously guarantee minimum resources to prevent starvation while enabling dynamic allocation to improve overall utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different portions of the miss buffer have different allocation characteristics: the first portion provides dedicated, thread-specific resources with guaranteed availability, while the second portion provides shared, dynamically allocable resources. This local quality differentiation allows each thread to have both protected resources and access to additional resources when available.

Inventive Principle:
Principle #3Local quality

2Reliability

If dedicated processor resources are allocated to each thread, then thread starvation is prevented, but resource efficiency decreases due to underutilization

Engineering Contradiction:
Improvethread starvation preventionVSAvoidresource efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges dedicated miss buffer entries and dynamically allocable miss buffer entries into a single unified miss buffer structure. This combination allows threads to first utilize their dedicated entries (ensuring starvation prevention) and then access dynamically allocable entries when available (improving resource efficiency).

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The second portion of the miss buffer serves multiple functions: it can be allocated to any thread that needs additional miss buffer capacity, and it can be dynamically reassigned as threads complete or new threads are activated. This multi-functionality improves resource efficiency while the first portion maintains reliability guarantees.

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

3Reliability

If processor resources are statically allocated, then thread starvation is avoided, but stalling periods increase due to resource underutilization

Engineering Contradiction:
Improvethread starvation avoidanceVSAvoidstalling periods
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The miss buffer allocation transitions from a purely static model to a hybrid dynamic model. The first portion maintains static, dedicated allocation for reliability, while the second portion implements dynamic allocation that responds to actual thread needs in real-time, reducing stalling periods by providing additional resources when become available.

Inventive Principle:
Principle #15Dynamics

4Productivity

If all processor resources are dynamically allocable, then resource efficiency is maximized, but the complexity of resource management increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidresource management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting the miss buffer into dedicated and dynamically allocable portions, the system simplifies resource management complexity. Threads have clear priority: they first access their dedicated entries (simple, direct access), then access dynamically allocable entries (managed by allocation logic). This segmentation reduces the complexity compared to fully dynamic allocation while maintaining high resource efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9529594B2Miss buffer for a multi-threaded processor
Publication Date: 2016.12.27 ORACLE INT CORP
  • US9529594B2 patent drawing
  • US9529594B2 patent drawing
  • US9529594B2 patent drawing

AI summary

A multi-threaded processor configured to allocate entries in a buffer for instruction cache misses is disclosed. Entries in the buffer may store thread state information for a corresponding instruction cache miss for one of a plurality of threads executable by the processor. The buffer may include dedicated entries and dynamically allocable entries, where the dedicated entries are reserved for a subset of the plurality of threads and the dynamically allocable entries are allocable to a group of two or more of the plurality of threads. In one embodiment, the dedicated entries are dedicated for use by a single thread and the dynamically allocable entries are allocable to any of the plurality of threads. The buffer may store two or more entries for a given thread at a given time. In some embodiments, the buffer may help ensure none of the plurality of threads experiences starvation with respect to instruction fetches.