Thread Messaging Abstraction Layer for Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing efficient communication mechanisms between execution threads in electronic devices, particularly in embedded systems, is challenging due to the need for maximizing parallelism and handling real-time tasks with restricted hardware resources, often requiring custom operating systems that increase development costs and complexity.

Innovation Solution

A standardized messaging interface and abstraction layer that allows execution threads to communicate through messages regardless of their location or relationship, using various data transfer mechanisms such as shared memory, inter-process pipes, and communication links, while providing a unified event model and timer management to simplify thread communication and management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a custom operating system is developed to facilitate thread communication and maximize parallelism, then thread communication efficiency and parallelism are improved, but development cost and system complexity increase

Engineering Contradiction:
Improvethread communication efficiencyVSAvoidoperating system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary abstraction layer between threads and the underlying operating system. This layer provides standardized messaging interfaces that automatically handle communication details, including selecting appropriate data transfer mechanisms (shared memory, pipes, sockets) based on thread relationships. The intermediary layer manages communication efficiency without requiring developers to implement custom OS-level solutions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The messaging interface is designed to be universal, handling communication between threads regardless of their process location or relationship. A single interface supports multiple data transfer mechanisms (shared memory for same-process threads, pipes for inter-process communication, sockets for network communication), making the system adaptable to various scenarios without requiring separate solutions for each case.

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

2Adaptability or versatility

If multiple data transfer mechanisms are implemented to handle different thread relationships, then communication versatility is improved, but system complexity and implementation difficulty increase

Engineering Contradiction:
Improvethread communication versatilityVSAvoiddata transfer mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system dynamically selects the appropriate data transfer mechanism based on the relationship between communicating threads. The messaging interface automatically determines whether to use shared memory, pipes, or sockets by analyzing thread process associations, eliminating the need for manual configuration. This dynamic adaptation provides versatility while maintaining simplicity through automated decision-making.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a simplified copy of the communication interface that works across different platforms and hardware architectures. By abstracting the communication details into a standardized messaging interface, the system provides consistent thread communication functionality without requiring platform-specific implementations, thus reducing complexity while maintaining versatility.

Inventive Principle:
Principle #26Copying

3Speed

If real-time communication between threads is implemented with optimized data transfer, then real-time performance is improved, but hardware resource requirements and system complexity increase

Engineering Contradiction:
Improvereal-time communication speedVSAvoidhardware resource requirements
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The messaging interface allows dynamic adjustment of communication parameters such as message priority, timing characteristics, and data transfer size. By changing these parameters based on real-time requirements, the system achieves real-time performance without requiring dedicated hardware resources. The interface can adapt to different real-time needs through software-based parameter modification rather than hardware changes.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9027034B2Communication among execution threads of at least one electronic device
Publication Date: 2015.05.05 DISH TECHNOLOGIES LLC
  • US9027034B2 patent drawing
  • US9027034B2 patent drawing
  • US9027034B2 patent drawing

AI summary

A method of communication in at least one electronic device is presented. In the method, a first execution thread and a second execution thread are created in the at least one electronic device. Also created is a message service for receiving messages for the first thread. A message to be transferred from the second thread to the message service of the first thread is generated. One of multiple data transfer mechanisms is selected for transferring the message from the second thread to the message service of the first thread based on a relationship between the first and second threads. This relationship may be one in which the first and second threads are executing within a single process, within different processes of the same device, or within different devices. The message is transferred to the message service of the first thread using the selected data transfer mechanism and processed in the first thread.