Parallel Slice Processor Instruction Dispatch and Reconfiguration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor cores face reduced throughput due to resources being tied up in busy pipelines, leading to instruction stream stalls when all assigned pipelines are busy.

Innovation Solution

Implementing a method where instruction execution slices can be dynamically reassigned or combined to handle wider instructions or SIMD operations, allowing subsequent instructions to be dispatched to available slices, even if initially assigned to another instruction stream, thereby avoiding stalls and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If specific resources and pipelines are allocated for execution of different instruction streams, then resource sharing and continuous execution are enabled, but resources remain tied up when pipelines are busy, causing instruction stream stalls

Engineering Contradiction:
Improveprocessor throughputVSAvoidinstruction stream flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic pipeline allocation where the mapping between instruction streams and execution slices is not fixed but can change based on real-time resource availability. When a pipeline becomes busy, the system dynamically reassigns subsequent instructions to different available pipelines, allowing the instruction stream to adapt its execution path rather than stalling. This dynamic remapping mechanism enables continuous processor productivity while maintaining flexibility in handling multiple instruction streams.

Inventive Principle:
Principle #15Dynamics

2Reliability

If pipelines are assigned to instruction streams, then execution can proceed during waiting conditions, but all assigned pipelines being busy causes stalls that reduce throughput

Engineering Contradiction:
Improveexecution continuityVSAvoidprocessor throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent employs a lookahead mechanism that monitors pipeline busy conditions and proactively identifies alternative pipelines before the current pipeline becomes unavailable. When a pipeline is detected to be busy or approaching a stall condition, the system has already prepared alternative execution paths by identifying available pipelines in advance. This preliminary action prevents stalls from occurring and maintains both execution continuity and high throughput by ensuring no instruction stream waits idle.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10157064B2Processing of multiple instruction streams in a parallel slice processor
Publication Date: 2018.12.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10157064B2 patent drawing
  • US10157064B2 patent drawing
  • US10157064B2 patent drawing

AI summary

A method of managing instruction execution for multiple instruction streams using a processor core having multiple parallel instruction execution slices. An event is detected indicating that either resource requirement or resource availability for a subsequent instruction of an instruction stream will not be met by the instruction execution slice currently executing the instruction stream. In response to detecting the event, dispatch of at least a portion of the subsequent instruction is made to another instruction execution slice. The event may be a compiler-inserted directive, may be an event detected by logic in the processor core, or may be determined by a thread sequencer. The instruction execution slices may be dynamically reconfigured as between single-instruction-multiple-data (SIMD) instruction execution, ordinary instruction execution, wide instruction execution. When an instruction execution slice is busy processing a current instruction for one of the streams, another slice can be selected to proceed with execution.