Abstraction Layer for RTOS Hardware Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded real-time operating systems (RTOS) require significant programming changes to application software when hardware components are altered, leading to potential disruptions in timing and operation, especially in critical systems like aircraft engines and medical equipment.

Innovation Solution

An abstraction layer is introduced between the application layer and hardware components, allowing for hardware modifications without altering the application software. This layer determines the necessary component type and timing for tasks, provides emulated outputs if hardware components do not match, and manages timing schedules to maintain consistent operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware components are altered (upgraded or replaced), then processing speed and performance are improved, but application software requires significant programming changes and timing disruptions occur

Engineering Contradiction:
Improveprocessing speedVSAvoidsoftware modification complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (virtualization layer or abstraction layer) between the hardware components and the application software. This intermediary translates hardware-specific operations into standardized instructions that applications can execute without modification. When hardware is upgraded or replaced, the intermediary absorbs the changes and continues to provide consistent interfaces to applications, thereby preventing software modification requirements while still allowing hardware improvements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system is segmented into distinct layers: hardware components, virtualization/abstraction layer, and application software. This segmentation allows each layer to be modified independently. The hardware layer can be upgraded without affecting the application layer because the virtualization/abstraction layer acts as a buffer that handles the translation and coordination between the two, thus resolving the contradiction between hardware improvement and software complexity.

Inventive Principle:
Principle #1Segmentation

2Productivity

If hardware components are altered, then processing rate increases, but application timing and operational consistency are disrupted

Engineering Contradiction:
Improveprocessing rateVSAvoidapplication timing consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The virtualization/abstraction layer serves as a mediator that manages timing and scheduling between hardware operations and application execution. It can buffer, synchronize, and coordinate data flow to ensure that applications receive consistently timed inputs regardless of hardware processing rate variations. This maintains application timing consistency even when hardware is upgraded to faster processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system employs dynamic adjustment mechanisms where the virtualization/abstraction layer adapts its behavior based on hardware performance characteristics. It can dynamically adjust buffering, scheduling, and data transformation rates to match application timing requirements, thereby maintaining operational consistency despite changes in hardware processing speed.

Inventive Principle:
Principle #15Dynamics

3Reliability

If hardware components are upgraded or replaced, then device performance is improved, but certification and operational validation become more difficult

Engineering Contradiction:
Improvedevice performanceVSAvoidsoftware compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The intermediary layer provides a stable, standardized interface that remains consistent across different hardware configurations. This allows certified applications to continue operating without re-certification because they interact with the unchanged intermediary interface, not the underlying hardware. The intermediary handles hardware-specific variations, thereby maintaining software compatibility and certification validity while allowing hardware upgrades.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The virtualization/abstraction layer is designed to be universal, supporting multiple hardware configurations through a single standardized interface. This multi-functionality allows the same application software to run across different hardware versions without modification or re-certification, as the intermediary adapts to various hardware implementations while presenting a consistent interface to applications.

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

Data Source

PatentEP3926473B1Systems and methods of providing an abstraction layer between an application layer and hardware components of a computing device
Publication Date: 2024.05.01 GENERAL ELECTRIC CO
  • EP3926473B1 patent drawingFigure 1
  • EP3926473B1 patent drawingFigure 2A
  • EP3926473B1 patent drawingFigure 2B

AI summary

A method of providing an abstraction layer between an application layer and one or more existing hardware components of a computing device includes receiving a request for a resource from the application layer, determining a component type for performing a task according to the request for the resource, determining whether the one or more existing hardware components of the computing device correspond to the component type for performing the task based on a predetermined function of the one or more existing hardware components, converting the task into a translated task readable by the one or more existing hardware components, providing the translated task to the one or more existing hardware components, receiving an output from the one or more existing hardware components as a result of providing the translated task, and providing the output to the application layer as an emulated output that mimics an expected output of the component type.