Shared Interface Registers for Non-Blocking Hardware Accelerators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware accelerators can block the processor or co-processor from performing additional operations until their processes are completed, leading to inefficiencies in compute-intensive tasks.

Innovation Solution

Implementing non-blocking accelerators that allow the processor or co-processor to continue working on other tasks while the accelerators perform computations, using shared interface registers for configuration, status updates, and interrupt mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware accelerators are used to boost processor performance, then compute-intensive task processing speed is improved, but the processor is blocked from performing additional operations until the accelerator processes are completed

Engineering Contradiction:
Improvecompute-intensive task processing speedVSAvoidprocessor operational productivity
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The interface between the processor and hardware accelerator is segmented into multiple independent registers (command register, status register, data register, control register). This segmentation allows the processor to interact with the accelerator in discrete, non-blocking operations, enabling the processor to continue executing other tasks while waiting for accelerator completion without being held in a blocked state.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A status register acts as an intermediary between the processor and the hardware accelerator. The processor writes commands to the accelerator and then checks the status register to determine when the operation is complete, rather than being blocked by the accelerator itself. This intermediary mechanism enables asynchronous operation where the processor can continue other work while the accelerator processes data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If hardware accelerators are implemented to handle compute-intensive operations, then processing capability is improved, but system complexity increases due to blocking behavior and coordination requirements

Engineering Contradiction:
Improveprocessing capabilityVSAvoidsystem coordination complexity
Core Design Contradiction:
PowerVSDevice complexity

Solution Approach 1:

The hardware accelerator interface uses a standardized set of registers (command, status, data, control) that can serve multiple functions and work with different types of compute-intensive operations. This universal interface design reduces the need for specialized coordination logic for each different operation type, thereby reducing overall system complexity while maintaining high processing capability.

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

Solution Approach 2:

The system uses control registers to change operational parameters such as enabling/disabling the accelerator, setting operation modes, and configuring data formats. By parameterizing the interface behavior through registers rather than hard-wired logic, the system achieves high processing capability for multiple operation types while keeping the coordination mechanism relatively simple and flexible.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12423145B2Hardware accelerators using shared interface registers
Publication Date: 2025.09.23 APPLE INC
  • US12423145B2 patent drawing
  • US12423145B2 patent drawing
  • US12423145B2 patent drawing

AI summary

Methods and systems include processors and hardware accelerators. The processor initiates a first process in a first hardware accelerator configured to aid the processor in performing the first process. The processor initiates the first process using one or more interface registers. The processor performs additional processing while the first hardware accelerator performs the first process after initiation of the first process. The processor also initiates a second process in a second hardware accelerator configured to aid the processor in performing a second process. Moreover, the processor initiates the second process using the one or more interface registers.