Programmable Instruction Buffering for Deterministic Pipeline Timing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing systems with pipelined processing face variability in instruction fetch times due to factors like caching and page mapping faults, leading to inconsistent execution times for sequences of instructions.

Innovation Solution

A processing pipeline with fetch circuitry, buffers, and buffer control circuitry that can stall and restart a stallable portion downstream of the buffers, accumulating a burst of instructions based on a programmable trigger, allowing for deterministic timing independent of instruction fetch delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are fetched from memory in a pipelined processing system, then instruction throughput is improved through parallelism, but execution time becomes inconsistent due to variable fetch delays from caching and page mapping faults

Engineering Contradiction:
Improveinstruction throughputVSAvoidexecution time consistency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by accumulating a predetermined number of instructions in buffers before execution. The buffer control circuitry stores fetched instructions in advance and only releases them to the execution pipeline when a complete set is available, ensuring that execution always starts with a full buffer regardless of variable fetch times. This preliminary accumulation eliminates execution time variability while maintaining high throughput through parallel fetching.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the processing pipeline continues operating without interruption, then productivity is maintained, but deadlock may occur when downstream stages cannot consume instructions fast enough

Engineering Contradiction:
Improvepipeline throughputVSAvoiddeadlock prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The buffer control circuitry implements feedback control by continuously monitoring the number of accumulated instructions in the buffers. When the buffer reaches a predetermined level, the control circuitry automatically stalls the fetch stage to prevent overflow and potential deadlock. This feedback mechanism ensures the pipeline operates within safe bounds, preventing deadlock while maximizing throughput by keeping the pipeline full when possible.

Inventive Principle:
Principle #23Feedback

3Loss of time

If the pipeline is stalled to wait for instructions, then execution consistency is improved, but productivity decreases due to pipeline idle time

Engineering Contradiction:
Improveexecution time consistencyVSAvoidpipeline throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system performs preliminary accumulation of instructions in buffers before execution begins. By gathering a predetermined number of instructions in advance and only then releasing them to the execution pipeline, the system ensures consistent execution timing without requiring stalls during actual execution. The preliminary buffering action separates the variable-fetch phase from the deterministic-execution phase, maintaining both consistency and throughput.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11579889B2Programmable instruction buffering for accumulating a burst of instructions
Publication Date: 2023.02.14 ARM LTD
  • US11579889B2 patent drawing
  • US11579889B2 patent drawing
  • US11579889B2 patent drawing

AI summary

A processing system 2 includes a processing pipeline 12, 14, 16, 18, 28 which includes fetch circuitry 12 for fetching instructions to be executed from a memory 6, 8. Buffer control circuitry 34 is responsive to a programmable trigger, such as explicit hint instructions delimiting an instruction burst, or predetermined configuration data specifying parameters of a burst together with a synchronising instruction, to trigger the buffer control circuitry to stall a stallable portion of the processing pipeline (e.g. issue circuitry 16), to accumulate within one or more buffers 30, 32 fetched instructions starting from a predetermined starting instruction, and, when those instructions have been accumulated, to restart the stallable portion of the pipeline.