Quasi-Posted Load Timer for Processor Responsiveness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor systems, non-posted load operations can significantly delay processor responsiveness due to their long latency, causing inefficiencies and reduced system performance as the processor waits for data to arrive, preventing it from handling internal or external events until the load operation completes.

Innovation Solution

The implementation of quasi-posted loads, where a timer is used to measure the execution time of non-posted load instructions, allowing the processor to allocate an entry in a data return buffer and handle events before the data arrives, enabling the processor to respond to events and maintain performance without waiting for the load operation to finish.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If non-posted load operations are used to ensure data accuracy, then reliability is improved, but processor responsiveness deteriorates due to long latency

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessor responsiveness
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by allocating a buffer entry and initiating the load operation, then allows the processor to handle other events while waiting for data. The buffer entry is prepared in advance and the processor does not wait idle for the load to complete, thus maintaining responsiveness without sacrificing data accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A data return buffer is introduced as an intermediary between the load operation and the processor execution pipeline. The buffer decouples the slow load operation from the fast processor events, allowing events to be handled while load data is being fetched. This intermediary structure resolves the contradiction by providing a waiting mechanism that doesn't block processor responsiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the processor waits for non-posted load operations to complete, then data accuracy is ensured, but system performance deteriorates

Engineering Contradiction:
Improvedata accuracyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system maintains continuity of useful action by allowing the processor to continuously handle events and execute instructions while the load operation progresses in the background. The data return buffer ensures that when the load completes, the data is already available for use, thus maintaining uninterrupted productive work without compromising data accuracy.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If long-latency non-posted load operations are executed, then complete data retrieval is achieved, but event handling capability deteriorates

Engineering Contradiction:
Improvedata retrieval completenessVSAvoidevent handling speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The processor performs preliminary actions by allocating buffer entries and initiating load operations before events need to be handled. This allows the system to prepare for data retrieval without blocking event processing, maintaining both complete data retrieval and fast event handling speed through proactive buffer allocation and asynchronous execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10223121B2Method and apparatus for supporting quasi-posted loads
Publication Date: 2019.03.05 INTEL CORP
  • US10223121B2 patent drawing
  • US10223121B2 patent drawing
  • US10223121B2 patent drawing

AI summary

A processor includes a decoder, a data return buffer, and an execution unit. The decoder is to decode an instruction for a non-posted load into a decoded instruction for loading data from memory mapped input/output. The execution unit is for executing the decoded instruction. The execution is to start a timer, determine whether the timer exceeds a timeout threshold, allocate an entry in the data return buffer for the load, and determine whether an event arrived. The timer is to measure an amount of time taken to return the non-posted load instruction. The determination whether an event arrived is made in response to at least one of the allocation of the entry for the load, or a determination that the timer exceeds the timeout threshold.