Instruction Streaming State Migration for Branch Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems with out-of-order execution processors face inefficiencies in handling multiple instruction streams and threads, particularly in resolving branch instructions, which can lead to reduced processor efficiency and increased latency.

Innovation Solution

The system employs a method where a parent stream is processed and a child stream is activated, with the content of a parent mapper copy being copied to a child mapper copy, allowing instructions from both streams to be executed on different execution slices, enabling parallel processing of multiple threads and streams within a processor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple execution slices are used to process multiple instruction streams, then processor throughput is improved, but device complexity increases

Engineering Contradiction:
Improveprocessor throughputVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor is divided into multiple execution slices (first execution slice, second execution slice, etc.), each capable of independently processing instruction streams. This segmentation allows parallel processing of multiple threads or streams simultaneously, improving throughput while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a stream identifier dimension to distinguish different instruction streams within the same processor core. By adding this dimensional attribute to track and route instructions to appropriate execution slices, the system achieves multi-stream processing without requiring separate physical processors

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If branch instructions are resolved by creating child streams, then instruction execution accuracy is improved, but loss of time increases

Engineering Contradiction:
Improveinstruction execution accuracyVSAvoidbranch resolution latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

When a branch instruction is encountered, the system creates child streams in advance by copying the parent stream's state to multiple child mappers. This preliminary action allows multiple potential execution paths to be prepared simultaneously, and the correct path can be quickly selected once branch resolution is known, reducing overall latency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses mapper copies to replicate the parent stream's instruction state and register mapping to multiple child streams. This copying mechanism enables parallel exploration of different branch paths without requiring sequential resolution, improving accuracy while minimizing time loss through efficient state duplication

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If mapper copies are created for child streams, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvestream processing flexibilityVSAvoidmapper structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The mapper structure is designed to serve multiple functions: it maps register entries to physical registers for the current stream, and simultaneously serves as a template for creating mapper copies for child streams. This multi-functionality allows a single mapper design to support both current stream execution and future stream creation, improving adaptability without proportionally increasing complexity

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

Solution Approach 2:

Instead of creating entirely new mapper structures for each child stream, the system copies the parent mapper's structure and state. This copying approach maintains consistency across stream types while reducing the actual hardware complexity, as the same mapper template can be reused for different streams through duplication rather than unique instantiation

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11301254B2Instruction streaming using state migration
Publication Date: 2022.04.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11301254B2 patent drawing
  • US11301254B2 patent drawing
  • US11301254B2 patent drawing

AI summary

A method, system, and/or processor for processing data is disclosed that includes processing a parent stream, detecting a branch instruction in the parent stream, activating an additional child stream, copying the content of a parent mapper copy of the parent stream to an additional child mapper copy, dispatching instructions for the parent stream and the additional child stream, and executing the parent stream and the additional child stream on different execution slices. In an aspect, a first parent mapper copy is associated and used in connection with executing the parent stream and a second different child mapper copy is associated and used in connection with executing the additional child stream. The method in an aspect includes processing one or more streams and/or one or more threads of execution on one or more execution slices.