XCALL Instruction for Low-Latency Accelerator Invocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face high latency and asynchronous issues when invoking accelerators, requiring significant processing resources and complex mechanisms to manage interrupts and exceptions, which hinders efficient execution of accelerated tasks.

Innovation Solution

A generic, extensible XCALL instruction is introduced to enable low-latency invocation of synchronous accelerators, using a format with result, command, and parameter registers to facilitate direct communication between general-purpose processors and accelerator clusters, allowing for fine-grained control and efficient resource sharing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a driver interface is used to invoke accelerators, then the system maintains hierarchical protection domains, but the latency increases significantly and processing resources are consumed

Engineering Contradiction:
Improvehierarchical protection domainVSAvoidinvocation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the accelerator invocation mechanism from the traditional driver interface (ring 0) and creates a dedicated coprocessor interface that operates at ring 3. This separation allows accelerators to be invoked directly without switching protection domains, eliminating the latency associated with driver interface transitions while maintaining system security through the coprocessor interface design.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a coprocessor interface as an intermediary layer between the application thread and accelerators. This interface includes a command buffer and result buffer that mediate communication, allowing fast direct invocation while maintaining protection domain integrity through structured data transfer mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If asynchronous accelerator interfaces are used, then the application thread can handle exceptions and migrate between cores, but the latency between task request and execution increases

Engineering Contradiction:
Improvethread migration and exception handlingVSAvoidtask execution latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a dynamic hybrid synchronization model where accelerators can operate in either synchronous or asynchronous mode based on the specific task requirements. The coprocessor interface includes control mechanisms that allow the application thread to specify the desired execution mode, enabling flexibility in balancing latency and thread adaptability for different workloads.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the synchronization parameter of accelerator invocation from fixed asynchronous to a configurable mode. The coprocessor interface includes control bits and status registers that allow dynamic adjustment of synchronization behavior, enabling the system to switch between synchronous (low latency) and asynchronous (high adaptability) operation as needed.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If synchronous accelerators are used with interrupt handling, then forward progress is ensured, but complex mechanisms are required to manage interrupts, exceptions, and context switches

Engineering Contradiction:
Improveforward progressVSAvoidinterrupt management mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the coprocessor interface automatically manages accelerator invocation and result retrieval. The command buffer and result buffer are automatically updated and synchronized by the coprocessor interface hardware, eliminating the need for complex software management of interrupts and context switches while ensuring forward progress through hardware-based synchronization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical software-based interrupt and exception handling mechanism with a hardware-based coprocessor interface. The synchronization and forward progress assurance are achieved through hardware registers, command buffers, and status flags that automatically manage the accelerator invocation lifecycle without requiring complex software intervention.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If non-X86 ISA accelerators are used, then specialized acceleration is achieved, but a separate tool chain is required to generate and integrate accelerated tasks

Engineering Contradiction:
Improveacceleration capabilityVSAvoidtool chain requirement
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal coprocessor interface that works with both X86 and non-X86 accelerators. The interface uses standard X86 instruction set extensions (SSE/AVX registers) for data transfer and control, allowing X86 compilers and toolchains to generate code that can invoke any accelerator type without requiring separate tool chains, while still enabling specialized acceleration capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10095521B2Apparatus and method for low-latency invocation of accelerators
Publication Date: 2018.10.09 INTEL CORP
  • US10095521B2 patent drawing
  • US10095521B2 patent drawing
  • US10095521B2 patent drawing

AI summary

An apparatus and method are described for providing low-latency invocation of accelerators. For example, a processor according to one embodiment comprises execution logic to execute a plurality of instructions including an accelerator invocation instruction to invoke one or more accelerator commands. The accelerator invocation instruction stores command data specifying the command within a command register. One or more accelerators read the command data from the command register and responsively attempt to execute the command identified by the command data. Upon a switch from a first context to a second context, an accelerator context save/restore pointer identifies a region within system memory where the accelerator is to save its state and later the accelerator context save/restore pointer aids in restoring its state upon returning to the first context.