Reductionist architectures for instrument FSW Alan S. Mazer Instrument Flight Software Group Instruments Division Jet Propulsion Laboratory, California.

Slides:



Advertisements
Similar presentations
Implementation and Verification of a Cache Coherence protocol using Spin Steven Farago.
Advertisements

Computer Architecture
5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling.
Process Synchronization. Module 6: Process Synchronization Background The Critical-Section Problem Peterson’s Solution Synchronization Hardware Semaphores.
INSE - Lectures 19 & 20 SE for Real-Time & SE for Concurrency  Really these are two topics – but rather tangled together.
Microprocessors General Features To be Examined For Each Chip Jan 24 th, 2002.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Lecture Objectives: 1)Explain the limitations of flash memory. 2)Define wear leveling. 3)Define the term IO Transaction 4)Define the terms synchronous.
Chapter 13 Embedded Systems
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
Operating System Support Focus on Architecture
Project 2 – solution code
6-1 I/O Methods I/O – Transfer of data between memory of the system and the I/O device Most devices operate asynchronously from the CPU Most methods involve.
Chapter 13 Embedded Systems
Basic Input/Output Operations
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Computer Organization and Architecture
CprE 458/558: Real-Time Systems
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
INPUT/OUTPUT ORGANIZATION INTERRUPTS CS147 Summer 2001 Professor: Sin-Min Lee Presented by: Jing Chen.
IN2305-II Embedded Programming Lecture 5: Survey of SW Architectures.
Software Engineering Principles Chapter 3 From Software Engineering by I. Sommerville, Slide 1 project managementorganizing planning scheduling Learning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
INTRODUCTION TO MICROCONTROLLER. What is a Microcontroller A microcontroller is a complete microprocessor system, consisting of microprocessor, limited.
EtherCAT Protocol Implementation Issues on an Embedded Linux Platform
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
What is Concurrent Programming? Maram Bani Younes.
Introduction to Embedded Systems
Micro-operations Are the functional, or atomic, operations of a processor. A single micro-operation generally involves a transfer between registers, transfer.
Flight-like Flight Software Testing Methods Celina A Garcia Jet Propulsion Laboratory California Institute of Technology ©2009 California Institute of.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
1. Introduction 1.1 Background 1.2 Real-time applications 1.3 Misconceptions 1.4 Issues in real-time computing 1.5 Structure of a real-time system.
Windows NT and Real-Time? Reading: “Inside Microsoft Windows 2000”, (Solomon, Russinovich, Microsoft Programming Series) “Real-Time Systems and Microsoft.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Threads in Java. History  Process is a program in execution  Has stack/heap memory  Has a program counter  Multiuser operating systems since the sixties.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
NMP EO-1 TECHNOLOGY WORKSHOP Section 2 Meeting Objectives.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
Embedded Systems OS. Reference Materials The Concise Handbook of Real- Time Systems TimeSys Corporation.
Real-time Software Design King Saud University College of Computer and Information Sciences Department of Computer Science Dr. S. HAMMAMI.
New Products from NASA’s Software Architecture Review Board
Chapter 6 Storage and Other I/O Topics. Chapter 6 — Storage and Other I/O Topics — 2 Introduction I/O devices can be characterized by Behaviour: input,
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
For a good summary, visit:
Embedded Computer - Definition When a microcomputer is part of a larger product, it is said to be an embedded computer. The embedded computer retrieves.
Evaluating the Fault Tolerance Capabilities of Embedded Systems via BDM M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dipartimento di Automatica.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Non-Preemptive Scheduling
Background on the need for Synchronization
Computer Architecture
Real Time Operating System
Real-time Software Design
RTS: Kernel Design and Cyclic Executives
An Embedded Software Primer
Processor Fundamentals
Control Unit Introduction Types Comparison Control Memory
Direct Memory Access Disk and Network transfers: awkward timing:
Operating Systems : Overview
CSC3050 – Computer Architecture
Operating Systems : Overview
CSE 153 Design of Operating Systems Winter 19
Embedded System Development Lecture 12 4/4/2007
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Reductionist architectures for instrument FSW Alan S. Mazer Instrument Flight Software Group Instruments Division Jet Propulsion Laboratory, California Institute of Technology © 2015 California Institute of Technology. Government sponsorship acknowledged.

Introduction Trends in instrument flight software o Instrument budgets are going down, schedules are getting shorter. o Developers with real-time embedded experience are getting harder to find. Besides these… o Most science instruments are “one-offs”: different instruments require different software, making reusability elusive. o Many proposal and instrument managers see software as a risk. 2

Introduction At the same time, FSW designs are becoming more featured, more complex, more risky, more expensive o Many classes o Many tasks o And often, many interrupts Architecture can rapidly spin out of control Extra resources are often in short supply o Experienced people o Budget o Schedule 3

A reductionist alternative A number of JPL instruments, including new ISS instruments OCO-3 and ECOSTRESS, address complexity concerns by going “retro”… o Single thread o Single interrupt This gives us an architecture which… o is simpler, with easier definition, fewer synchronization mechanisms, fewer potential race conditions, no task prioritization o requires less experience from developers o decomposes nicely across a development team o has very predictable execution behavior and margins o is easily understandable by project management 4

5 Basic approach First we define the tasks that need to be performed, and the rates at which they need to be completed, e.g., o Command processing (1 Hz) o Instrument sampling (5 Hz) o Mechanism control (10 Hz) Then we define a schedule to fit, and execute the schedule through a regularly-executing loop

6 Example (generic) schedule

7 Example loop Our loop executes one iteration per minor frame, performing the work of one 10- millisecond “slot” The entire schedule executes every second The loop can be synchronized to o S/C bus (e.g., 1553)  GALEX o Internal clock  OCO-3, ECOSTRESS o Instrument clock  Microwave Radiometer (Juno), Mars Climate Sounder (MRO) Iteration enable can be semaphore or simple flag variable

Implementation Each slot is typically implemented with a lower-level state machine. Coding requires care to ensure that each slot’s work completes on time. o In some applications FSW should assert on an overrunning slot. Long operations (e.g., image compression) typically need to be decomposed into small chunks of work. “Taking turns” can delay work, and some time is typically wasted. 8

9 Using interrupts Minimizing the use of interrupts helps to keep timing (and margins) deterministic Interrupts may still be useful, especially if ISR is small, leaving most work to scheduled slots Worst-case ISR execution time must be measured and taken into account when planning non- ISR work Serial buffers larger than the maximum transaction size enable polling rather than interrupt-based I/O

Variations on the basic approach Some variations on the basic architecture provide flexibility o Some applications allow soft limits on slot start and stop  Idle time within each slot can be used to perform a background task if the background task can monitor the start of the next slot, and if the application isn’t sensitive to minor variations in slot start time o Sometimes it’s useful for a slot to start a background task temporarily, e.g., to position a mechanism Any variation must be carefully characterized to make sure that required work gets done on time 10

Summary Some embedded applications are best coded using simple single-threaded slot execution o Fewer synchronization mechanisms, potential race conditions o Predictable and consistent execution o Scalability: any processor can execute a slot-oriented architecture o Reduced need for an OS o Less skill required from development staff o Easily understood by non-technical management The slot-based approach has been used on a number of JPL instruments o GALEX, Mars Climate Sounder (MRO), Diviner (LRO), Microwave Radiometer (Juno) o Upcoming ISS instruments OCO-3 and ECOSTRESS 11