Shadow Pipeline Controller for Out-of-Order Coprocessor Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional microprocessor systems with embedded auxiliary processor units (APUs) are limited by sequential instruction execution, leading to stalling and lack of out-of-order execution capabilities, resulting in inefficiencies and increased latency in processing tasks.

Innovation Solution

The implementation of a shadow pipeline within the APU controller that allows for the queuing and out-of-order execution of instructions, enabling back-to-back transactions without dead cycles and supporting out-of-order execution by using multiple queues and state machine control to manage instruction and index associations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential instruction execution is used in the APU controller, then the controller structure is simple, but the processing throughput is low and latency is high

Engineering Contradiction:
Improveprocessing throughputVSAvoidcontroller structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The APU controller is segmented into multiple independent execution pipelines (first execution pipeline, second execution pipeline, third execution pipeline) that can process instructions simultaneously. Each pipeline has its own execution units and control logic, allowing parallel processing of different instruction types without interfering with each other, thereby increasing throughput while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller transitions from single-threaded sequential execution to multi-threaded parallel execution by introducing multiple execution pipelines operating in different dimensional spaces. Instructions are distributed across multiple queues and pipelines, adding a temporal and spatial dimension to the execution flow, enabling out-of-order execution and eliminating dead cycles between back-to-back transactions

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

2Reliability

If one instruction is executed at a time in the APU controller, then the control logic is simple, but the system stalls during instruction execution

Engineering Contradiction:
Improvecontinuous processing capabilityVSAvoidcontrol logic
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instructions are pre-fetched and staged in multiple instruction queues before execution. The controller prepares multiple instructions in advance across different pipelines, so when one instruction completes, another is already ready to execute immediately, eliminating stalling. This preliminary preparation ensures continuous processing without idle cycles

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller implements feedback mechanisms where completion status of instructions in one pipeline feeds into the scheduling logic of other pipelines. This allows dynamic adjustment of instruction flow, ensuring that pipeline dependencies are resolved and new instructions are dispatched appropriately, maintaining reliable continuous operation while adapting to varying execution conditions

Inventive Principle:
Principle #23Feedback

3Loss of time

If back-to-back transactions are processed sequentially, then the controller is easy to implement, but dead microprocessor system clock cycles occur

Engineering Contradiction:
Improvewait statesVSAvoidpipeline structure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The multi-pipeline structure ensures continuity of useful action by eliminating idle cycles. While one pipeline executes an instruction, other pipelines simultaneously process different instructions or prepare data. This continuous utilization of execution resources across multiple pipelines eliminates dead clock cycles that would otherwise occur during sequential transaction processing

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

Multiple execution pipelines are merged into a single unified APU controller structure that shares common resources such as instruction queues, data memory interfaces, and control logic. This merging allows coordinated parallel execution while maintaining a compact implementation, reducing the overhead that would result from completely separate controller units for each pipeline

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7788470B1Shadow pipeline in an auxiliary processor unit controller
Publication Date: 2010.08.31 XILINX INC
  • US7788470B1 patent drawing
  • US7788470B1 patent drawing
  • US7788470B1 patent drawing

AI summary

A method and controller for supporting out of order execution of instructions is described. A microprocessor is coupled to a coprocessor via a controller. Instructions are received by the microprocessor and the controller. Indices respectively associated with the instructions are generated by the microprocessor, and the instructions are popped from the first queue for execution by the coprocessor. The controller includes a first queue and a second queue. The instructions and the indices are queued in the first queue, and this first queuing includes steering the instructions and the indices associated therewith to respective first register locations while maintaining association between the instructions and the indices. The instructions may be popped off the first queue out of order with respect to an order in which the instructions are received into the first queue.