Block-Based Processor Architecture with Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face challenges in achieving sustained performance improvements due to limitations in Instruction Set Architectures (ISAs) and inefficiencies in resource utilization, particularly in managing instruction flow and register renaming, which hinder energy efficiency and complexity reduction.

Innovation Solution

The introduction of a block-based processor architecture with Explicit Data Graph Execution (EDGE) ISA, which enables atomic execution of instructions, reduces the need for complex architectural features like register renaming and misspeculation recovery, and supports high instruction-level parallelism through explicit dataflow execution, allowing for improved compiler and processor performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If out-of-order superscalar implementations are used to improve processor performance, then execution speed increases, but area and power consumption increase due to complex architectural features like register renaming and misspeculation recovery

Engineering Contradiction:
Improveprocessor execution speedVSAvoidarchitectural complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The processor architecture segments instruction execution into fixed-size blocks (e.g., 8 instructions per block) that are executed atomically. This segmentation eliminates the need for complex register renaming and misspeculation recovery mechanisms by enforcing a simpler block-based execution model, thereby reducing architectural complexity while maintaining performance through parallel block execution

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The architecture dynamically schedules and executes instruction blocks in parallel across multiple execution units. By dynamically allocating blocks to available execution resources and enabling out-of-order block execution without traditional superscalar complexity, the system achieves high execution speed with reduced architectural overhead

Inventive Principle:
Principle #15Dynamics

2Device complexity

If traditional ISA with sequential instruction execution is used, then architectural simplicity is maintained, but instruction-level parallelism and processor performance are limited

Engineering Contradiction:
Improvearchitectural simplicityVSAvoidinstruction throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The architecture performs preliminary actions by pre-fetching and preparing multiple instruction blocks before they are needed for execution. Instruction blocks are fetched, decoded, and scheduled in advance, allowing the execution units to remain continuously busy and increasing instruction throughput while maintaining architectural simplicity through the block-based model

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system ensures continuity of useful action by maintaining multiple instruction blocks in various stages of execution simultaneously. With parallel execution units working on different blocks at the same time and continuous block generation from the instruction stream, the architecture achieves high instruction throughput while preserving architectural simplicity through the uniform block execution model

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentEP3314401B1Block-based architecture with parallel execution of successive blocks
Publication Date: 2020.02.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3314401B1 patent drawingFigure 1
  • EP3314401B1 patent drawingFigure 2
  • EP3314401B1 patent drawingFigure 3

AI summary

Systems, methods, and computer-readable storage are disclosed for providing early access to target addresses in block-based processor architectures. In one example of the disclosed technology, a method of performing a branch in a block-based architecture can include executing one or more instructions of a first instruction block using a first core of the block-based architecture. The method can include, before the first instruction block is committed, initiating non-speculative execution of instructions of a second instruction block.