Serializing Compiler for Embedded Multitasking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded systems face challenges in multitasking due to the lack of operating system (OS) support for various embedded processors, leading to performance and memory overheads, and the need for costly and time-consuming manual porting of OS infrastructure, which is not optimized for specific applications.

Innovation Solution

A serializing compiler transforms multitasking applications into optimized monolithic sequential code, eliminating the need for a generic OS layer by generating application-specific infrastructure, enabling fine-grained control over task timing and improving performance through automated source-to-source translation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a generic operating system layer is used to support multitasking, then task creation, synchronization, and communication are enabled, but performance overhead and memory overhead increase

Engineering Contradiction:
Improvemultitasking supportVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts only the essential multitasking primitives needed by the application from a full operating system. The serializing compiler analyzes the multitasking application and generates a minimalistic task management infrastructure that includes only the specific synchronization and communication mechanisms required, eliminating unnecessary OS overhead while preserving essential multitasking capabilities

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the multitasking support functionality into application-specific components. Instead of using a monolithic OS, the compiler divides task management into discrete, optimized primitives tailored to the specific application's needs, allowing selective inclusion of only required features and reducing overall system overhead

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If a full-fledged operating system is ported to embedded processors, then multitasking capability is achieved, but porting cost and time increase

Engineering Contradiction:
Improvemultitasking capabilityVSAvoidporting effort
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The serializing compiler automatically generates the task management infrastructure directly from the multitasking application source code. The compiler performs self-service by analyzing the application's synchronization and communication requirements and automatically producing the appropriate minimalistic task management code, eliminating the need for manual OS porting

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The compiler performs preliminary analysis of the multitasking application during the compilation phase to identify required synchronization mechanisms and communication patterns. This preliminary action allows the generated minimalistic OS infrastructure to be precisely tailored to the application's specific needs before execution, avoiding unnecessary porting work

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If a generic operating system infrastructure is used, then broad application compatibility is achieved, but application-specific optimization is lost

Engineering Contradiction:
Improveapplication compatibilityVSAvoidapplication performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies local quality by generating task management primitives that are specifically optimized for each application's unique requirements. The serializing compiler analyzes the particular synchronization and communication patterns of each application and generates customized minimalistic infrastructure code, ensuring that each application receives precisely the level of optimization it needs rather than a one-size-fits-all solution

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7886283B2Phantom serializing compiler and method of operation of same
Publication Date: 2011.02.08 RGT UNIV OF CALIFORNIA
  • US7886283B2 patent drawing
  • US7886283B2 patent drawing
  • US7886283B2 patent drawing

AI summary

An alternative to a real time operating system (RTOS) is provided based on serializing compilers. A serializing compiler can transform a multitasking application into an equivalent and optimized monolithic sequential code, to be compiled with the embedded processor's native optimizing compiler, effectively filling the RTOS gap. The serializing compiler can analyze the tasks at compile time and generate a fine-tuned, application specific infrastructure to support multitasking, resulting in a more efficient executable than one that is intended to run on top of a generic RTOS. By having control over the application execution and context switches, the serializing compiler enables the fine grain control of task timing while enhancing overall performance. The serializing compiler technology strengthens existing compilers, making them timing and task-aware. The Phantom compiler provides a fully automated mechanism to synthesize a single threaded, ANSI C/C++ program from a multithreaded C/C++ (extended with POSIX) program.