Hybrid Instruction Buffer Shift FIFO for Multithreaded Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded processors face inefficiencies due to instruction dependencies causing pipeline stalls, leading to increased power consumption and delays in buffer structures, particularly in instruction buffers that require multiplexing.

Innovation Solution

A hybrid storage buffer system is introduced, featuring a shift FIFO that moves instructions next in program order to a dedicated entry in response to a shift signal, allowing for efficient instruction selection and reduced pipeline stalls, thereby minimizing power consumption and delay.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by stationary object

If a conventional instruction buffer structure is used, then instructions can be stored, but power consumption increases and multiplexing delays occur

Engineering Contradiction:
Improvepower consumptionVSAvoidinstruction selection efficiency
Core Design Contradiction:
Use of energy by stationary objectVSProductivity

Solution Approach 1:

The instruction buffer is segmented into multiple regions: a main buffer for storing instructions and a separate shift FIFO for instructions next in program order. This segmentation allows independent optimization of each region, reducing overall power consumption while maintaining efficient instruction selection through the dedicated shift FIFO path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A shift signal acts as an intermediary mechanism between the main buffer and the execution pipeline. This intermediary enables selective movement of instructions next in program order without requiring full multiplexing of the entire buffer, thereby reducing power consumption and avoiding multiplexing delays.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiplexing is implemented in the buffer structure, then thread selection is enabled, but unacceptable delay due to loading occurs

Engineering Contradiction:
Improvethread selection capabilityVSAvoidbuffer loading delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Instructions next in program order are pre-positioned in the shift FIFO in advance. When a thread stall is detected, these pre-positioned instructions can be immediately shifted to the execution pipeline without requiring time-consuming multiplexing operations, thus eliminating buffer loading delays while maintaining thread selection capability.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If instructions are stalled due to dependencies, then correct execution order is maintained, but pipeline efficiency decreases

Engineering Contradiction:
Improveinstruction execution correctnessVSAvoidpipeline throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

While instructions from a stalled thread are held in the main buffer, the shift FIFO continuously supplies instructions from other threads that are ready for execution. This maintains continuous useful action in the pipeline, preserving throughput while ensuring that stalled instructions are eventually executed in the correct order through the buffer's program order preservation.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8225034B1Hybrid instruction buffer
Publication Date: 2012.07.17 ORACLE AMERICAN INC
  • US8225034B1 patent drawing
  • US8225034B1 patent drawing
  • US8225034B1 patent drawing

AI summary

In one embodiment, a storage buffer includes a plurality of storage locations configured to store a plurality of incoming instructions. The storage buffer also includes a shift FIFO that is coupled to the plurality of storage locations. The shift FIFO includes an entry configured to store an instruction that is next in a program order. In response to receiving a shift signal, control functionality that is coupled to the plurality of storage locations and to the shift FIFO may cause the instruction that is next in the program order to be moved from a given location of the plurality of storage locations to the entry of the shift FIFO.