Instruction Fetch Unit Out-of-Order Packet Locking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional multiprocessor architectures face inefficiencies due to out-of-order packet replay in instruction fetch units (IFUs), leading to excessive traffic, increased latency, and power consumption, particularly in chip multiprocessors (CMPs) with multiple processor cores sharing resources.

Innovation Solution

The implementation of out-of-order (OOO) logic and a strand selector within the IFU to detect and lock out-of-order packets, preventing their replay until an in-order packet is received, thereby reducing unnecessary traffic and improving pipeline efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order packets are allowed to pass through the IFU, then pipeline throughput is maintained, but excessive traffic and power consumption occur due to repeated replay

Engineering Contradiction:
Improvepipeline throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by detecting out-of-order packets early in the fetch pipeline and locking them before they can cause repeated replay cycles. The OOO detection logic identifies out-of-order packets at an early stage (before full pipeline processing), and the strand selector locks these packets to prevent unnecessary replay, thereby consuming less energy while maintaining throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback through the OOO detection mechanism that monitors packet order and provides feedback to the strand selector. When an out-of-order packet is detected, the system feedbacks this information to lock the packet, preventing further replay. This closed-loop feedback system reduces wasted power consumption from repeated processing of out-of-order packets.

Inventive Principle:
Principle #23Feedback

2Productivity

If out-of-order packets are replayed multiple times, then the IFU continues to service active strands, but latency increases due to repeated processing

Engineering Contradiction:
Improvestrand servicing capabilityVSAvoidpacket processing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent prevents repeated replay by taking preliminary action to lock out-of-order packets as soon as they are detected. The strand selector locks the OOO packet before it can enter repeated replay cycles, thereby reducing the time (latency) spent processing the same packet multiple times while still maintaining the ability to service other active strands.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If a single IFU services multiple strands, then resource sharing is improved, but traffic complexity increases due to out-of-order packets from multiple sources

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidtraffic management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary mechanism (the OOO detection logic and strand selector) between the multiple strand sources and the fetch pipeline. This intermediary detects and locks out-of-order packets from any strand, simplifying traffic management by preventing complexity from propagating through the entire system while maintaining the ability to service multiple strands through a single IFU.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7328327B2Technique for reducing traffic in an instruction fetch unit of a chip multiprocessor
Publication Date: 2008.02.05 ORACLE AMERICAN INC
  • US7328327B2 patent drawing
  • US7328327B2 patent drawing
  • US7328327B2 patent drawing

AI summary

A processor includes a fetch pipeline, out-of-order (OOO) logic and a strand selector. The fetch pipeline is configured to provide instructions from an instruction store to a fetch buffer responsive to receiving a plurality of fetch requests for a first strand, selected from a plurality of active strands. The OOO logic is coupled to the fetch pipeline and is configured to detect an OOO packet in the fetch pipeline in response to the fetch requests for the first strand. The strand selector is coupled to the OOO logic and the fetch pipeline and selects a second strand for processing in the fetch pipeline, from the active strands, when the OOO logic detects the OOO packet associated with the first strand.