Synchronous Software Interface for Accelerated Compute Engine Page Fault Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor technologies lack a seamless way for applications to handle page faults transparently, leading to complex event handling and inefficient asynchronous operations when accessing specialized resources like accelerated compute engines (ACEs).

Innovation Solution

A synchronous software interface is introduced that detects and handles page faults and lack of forward progress transparently, allowing applications to directly access ACEs without intermediary layers, and manages resource management through hardware or software outside the operating system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an asynchronous interface is used to access the accelerated compute engine, then the application can operate independently without waiting for completion, but the application becomes complex requiring manual event handling for page faults and errors

Engineering Contradiction:
Improveapplication execution efficiencyVSAvoidapplication programming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A synchronous software interface layer is introduced as an intermediary between the application and the accelerated compute engine. This interface handles page faults and events transparently by intercepting exceptions, determining their causes, and managing retry logic without requiring application involvement. The interface acts as a mediator that converts complex asynchronous operations with manual event handling into simple synchronous calls.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synchronous software interface implements self-service mechanisms by automatically detecting page faults through exception interception, determining their causes (such as invalid addresses or memory access issues), and handling retries without application intervention. The interface monitors its own operation status and manages error recovery independently, freeing the application from complex event handling requirements.

Inventive Principle:
Principle #25Self-service

2Reliability

If the particular unit reports page faults to the application, then the application can potentially address the issue, but most applications are incapable of handling page faults as the operating system usually handles them

Engineering Contradiction:
Improvepage fault handling capabilityVSAvoidapplication programming simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The synchronous software interface serves as an intermediary that captures page fault exceptions before they reach the application. It provides page fault handling capability by intercepting exceptions, determining their causes, and managing recovery automatically. This eliminates the need for applications to implement complex page fault handling logic while maintaining reliable error management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The interface implements self-service page fault handling by automatically detecting faults through exception interception, analyzing their causes, and executing appropriate recovery actions. This self-managed approach provides reliable page fault handling without requiring application capability or intervention, simplifying application programming while maintaining system reliability.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If a synchronous software interface is introduced to handle events transparently, then application programming is simplified, but an additional software layer is added between the application and the accelerated compute engine

Engineering Contradiction:
Improveapplication programming simplicityVSAvoidsoftware interface structure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

While a synchronous software interface layer is introduced as an intermediary, it consolidates multiple functions (event handling, page fault management, retry logic) into a single unified layer. This intermediary simplifies application programming by absorbing complexity internally, even though it adds a software layer between the application and accelerated compute engine.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synchronous software interface merges multiple complex functions into a single unified layer: asynchronous operation management, page fault detection and handling, error management, and retry logic. By combining these functions in one place, the interface simplifies application programming while managing the added software layer efficiently through functional consolidation.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9053022B2Synchronous software interface for an accelerated compute engine
Publication Date: 2015.06.09 INTEL CORP
  • US9053022B2 patent drawing
  • US9053022B2 patent drawing
  • US9053022B2 patent drawing

AI summary

Some implementations disclosed herein provide techniques and arrangements for a synchronous software interface for a specialized logic engine. The synchronous software interface may receive, from a first core of a plurality of cores, a control block including a transaction for execution by the specialized logic engine. The synchronous software interface may send the control block to the specialized logic engine and wait to receive a confirmation from the specialized logic engine that the transaction was successfully executed.