Register Dereservation for External Processor Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High latency instructions can cause processor stalling due to resource reservation, reducing efficiency and prolonging program execution as all resources become reserved, leading to unnecessary register reservations when results are not used.

Innovation Solution

A data processing apparatus with instruction send, allocation, and data receive circuitry that allocates registers for external processor results, allowing dereservation and result discard when specific conditions are met, such as the result being unused or not required, thereby freeing resources and preventing stalling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If registers are reserved for high latency instructions executed on external processors, then the correctness of data storage is ensured, but processor stalling occurs due to all resources being reserved

Engineering Contradiction:
Improvecorrectness of data storageVSAvoidprocessor efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the state parameter of register reservation from permanent to conditional/temporary. By introducing a mechanism that monitors whether the instruction result is actually needed, the system dynamically adjusts the reservation duration - releasing registers early when results are discarded, thus resolving the contradiction between ensuring correct storage and maintaining processor efficiency

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic register management where the reservation status of registers is not fixed but adapts based on runtime conditions. The system continuously evaluates whether reserved registers are still needed and releases them dynamically, transforming the static reservation model into a dynamic one that balances reliability and productivity

Inventive Principle:
Principle #15Dynamics

2Reliability

If registers are allocated for external processor results, then data integrity is maintained, but the number of available registers decreases causing processor stalling

Engineering Contradiction:
Improvedata integrityVSAvoidprogram execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by checking whether the result of an external processor instruction is needed before the instruction actually completes execution. By evaluating the necessity of the result in advance (through dependency analysis or similar mechanisms), the system can proactively release registers that will not be needed, preventing stalling while maintaining data integrity for actually required results

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a mechanism to identify and discard results that are not needed by the processing system. When a result is determined to be unnecessary, the associated register reservation is released and recovered for reuse by other instructions, thus reducing the loss of time while preserving data integrity for needed results

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS12112169B2Register freeing latency
Publication Date: 2024.10.08 ARM LTD
  • US12112169B2 patent drawing
  • US12112169B2 patent drawing
  • US12112169B2 patent drawing

AI summary

A data processing apparatus is provided. Instruction send circuitry sends an instruction to an external processor to be executed by the external processor. Allocation circuitry allocates a specified one of several registers for a result of the instruction having been executed on the external processor and data receive circuitry receives the result of the instruction having been executed on the external processor and stores the result in the specified one of the several registers. In response to a condition being met: the specified one of the several registers is dereserved prior to the result being received by the data receive circuitry, and the result is discarded by the data receive circuitry when the result is received by the data receive circuitry.