Status Register Serialization via Queue Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in serializing status register access operations, particularly in processors that execute instructions in parallel or out-of-order, leading to potential incorrect results due to lack of up-to-date status register access, which current methods address by halting dispatch, thereby impacting instruction processing throughput.

Innovation Solution

The system employs a special register pipeline for status register access, coupled with dispatch, commit, and result queue circuitry, using access timing control to ensure that only preceding instructions have completed their updates before performing the status register access, allowing continuous dispatch of instructions while maintaining serialization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If halting dispatch while processing pipelines drain is used to ensure proper serialisation, then serialisation of status register access is achieved, but instruction processing throughput deteriorates

Engineering Contradiction:
Improveserialisation of status register accessVSAvoidinstruction processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invention segments the processing system into multiple independent queues: a dispatch queue that continues accepting instructions, a commit queue that controls instruction completion, and a result queue that tracks retirement. This segmentation allows the dispatch queue to maintain throughput while the commit queue enforces serialisation constraints on status register accesses without halting the entire pipeline.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The commit queue acts as an intermediary between the dispatch queue and the execution pipelines. It receives instructions from the dispatch queue, filters them based on serialisation requirements for status register accesses, and selectively permits completion. This intermediary mechanism enables continuous dispatch while enforcing serialisation only where needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If continuous dispatch is maintained while controlling commit queue, then instruction processing throughput is improved, but ensuring serialisation becomes more complex

Engineering Contradiction:
Improveinstruction processing throughputVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-tagging status register access instructions with a serialisation marker when they are dispatched. This early identification allows the commit queue to recognize these instructions and enforce serialisation constraints without requiring complex real-time analysis during execution, thereby maintaining throughput while managing complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The result queue provides feedback about which instructions have completed and updated architectural state variables. This feedback mechanism allows the commit queue to detect when all preceding instructions have finished their updates, enabling the status register access to proceed at the correct moment without requiring complex forward-looking control logic.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9058179B2Retirement serialisation of status register access operations
Publication Date: 2015.06.16 ARM LTD
  • US9058179B2 patent drawing
  • US9058179B2 patent drawing
  • US9058179B2 patent drawing

AI summary

A processor 2 for performing out-of-order execution of a stream of program instructions includes a special register access pipeline for performing status access instructions accessing a status register 20. In order to serialise these status access instructions relative to other instructions within the system access timing control circuitry 32 permits dispatch of other instructions to proceed but controls the commit queue and the result queue such that no program instructions in program order succeeding the status access instruction are permitted to complete until after a trigger state has been detected in which all program instructions preceding in program order the status access instruction have been performed and made any updates to the architectural state. This is followed by the performance of the status access instruction itself.