Title :
A specialized programming language for coordinating software execution timing in embedded systems
Author :
Koets, Michael A. ; Lecocke, Meredith Beveridge
Author_Institution :
Southwest Res. Inst., San Antonio, TX, USA
Abstract :
We have developed Representation and Implementation of Temporal Event Sequences (RITES), a domain specific programming language which enables users to precisely specify how software and firmware execute with respect to real time on embedded systems hardware. Precise timing of software and firmware operations is critical to many functions within a space system, including coordination of hardware components, scheduling of spacecraft resources, and execution of communications protocols. RITES provides a highly expressive and precise mechanism to specify when software and firmware operations occur. The programming languages commonly used to develop the software and firmware for space systems (i.e. C, C++, and Verilog) do not have a built-in semantic concept of time. In contrast, RITES allows the specification of scheduled behaviors to be made and modified using concepts natural to the scheduling problem and with a compact, intuitive syntax. RITES components coordinate the activities and temporal behavior of other modules within the system rather than encapsulating complete system behavior. The RITES language is supported by a family of code generators that produce executable implementations of RITES programs. Code generators translate RITES programs to C functions for execution as software on sequential processors and to Verilog hardware description language (HDL) modules for execution within Field Programmable Gate Arrays (FPGAs). Additional code generators produce HDL implementations with error tolerance features allowing execution on FPGAs susceptible to single event effects (SEEs) in environments with significant radiation. Specifically, RITES modules may be automatically implemented as Verilog with local or distributed triple modular redundancy (TMR). We provide several examples of the implementation of precision timed behavior at various timing granularities, including clock-by-clock control of a digital signal processing (DSP) core within an FPGA for efficient e- ecution of signal processing applications, implementation of a time division multiple access (TDMA) radio communications protocol, and a detailed study of the configuration and control of an external image compression ASIC.
Keywords :
C language; aerospace computing; avionics; computational linguistics; digital signal processing chips; embedded systems; field programmable gate arrays; firmware; formal specification; hardware description languages; language translation; program compilers; scheduling; software fault tolerance; space vehicles; time division multiple access; timing; ASIC; C functions; DSP; FPGA; RITES programs translation; SEE; TDMA radio communications protocol; TMR; VHDL modules; Verilog hardware description language; clock-by-clock control; code generator; digital signal processing; distributed triple modular redundancy; domain specific programming language; embedded system; error tolerance feature; field programmable gate arrays; firmware development; firmware execution; firmware operations; hardware components; image compression; precision timed behavior; representation and implementation of temporal event sequences; scheduled behavior specification; sequential processor; signal processing applications; single event effects; software development; software execution timing coordination; space system; spacecraft resource scheduling; syntax; time division multiple access; timing granularity; Field programmable gate arrays; Hardware design languages; Microprogramming; Pipelines; Ports (Computers); Software; Timing;
Conference_Titel :
Aerospace Conference, 2014 IEEE
Conference_Location :
Big Sky, MT
Print_ISBN :
978-1-4799-5582-4
DOI :
10.1109/AERO.2014.6836258