API Constraint Language for Hardware-Agnostic Resource Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current API implementations across different hardware platforms and mixed hardware resources are cumbersome due to their dependency on specific hardware systems, limiting their ability to be efficiently implemented across a range of platforms such as GPP, GPU, FPGA, or varying resource allocations like CPU time and bus bandwidth.

Innovation Solution

The introduction of an API constraint language that allows for the communication of resource constraints between layers of a communication stack, using an API Constraint Vector (ACV) to dynamically allocate and manage hardware and software resources, ensuring efficient execution of communication functions based on timing, latency, throughput, and priority, and applicable across various hardware target types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current API implementations are used across different hardware platforms, then hardware-specific optimization is achieved, but portability and ease of implementation across multiple platforms deteriorates

Engineering Contradiction:
Improvehardware-specific optimizationVSAvoidportability across hardware platforms
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an API constraint language as an intermediary layer between the communication stack and hardware resources. This language includes constraint vectors that describe resource requirements and availability, allowing the API to be implemented across different hardware platforms without direct hardware-specific coding. The constraint language mediates between the need for hardware optimization and cross-platform portability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware-specific API implementations are used, then performance on specific platforms is improved, but device complexity and implementation difficulty increases

Engineering Contradiction:
Improvecommunication performanceVSAvoidimplementation complexity across platforms
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The API constraint language is designed to be universal and hardware-agnostic, allowing the same API implementation to work across multiple hardware platforms (GPP, GPU, FPGA, etc.). The constraint vectors provide a standardized interface that can be mapped to different hardware resources, eliminating the need for separate implementations for each platform while maintaining performance optimization capabilities.

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

3Ease of manufacture

If resource allocation is statically defined, then implementation simplicity is maintained, but adaptability to varying communication conditions deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidadaptability to communication conditions
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The API constraint language enables dynamic resource allocation by allowing constraint vectors to be updated based on current communication conditions, hardware availability, and performance requirements. Rather than static resource definitions, the system can adapt resource allocation dynamically while maintaining a relatively simple implementation framework through the standardized constraint language.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9582342B2API constraint language for a communication device
Publication Date: 2017.02.28 NATIONAL INSTRUMENTS CORP
  • US9582342B2 patent drawing
  • US9582342B2 patent drawing
  • US9582342B2 patent drawing

AI summary

A communication device and associated method which is configured to utilize an API constraint language for communication of resource constraints between different layers of a communication stack. A first layer of the communication stack executing in a first communication device may receive application programming interface (API) messages from a second layer of the communication stack also executing in the first communication device. In addition, the first layer may receive resource constraints with the one or more API messages. These one or more resource constraints may be generated by the second layer, or other software executing in the communication device. The first layer may then execute communication functions based on the API messages and subject to the resource constraints. The resource constraints may affect usage of hardware and/or software resources of the first communication device during execution of the communication functions.