wind river's real-time solutions - ibm

43
© 2007 Wind River Wind River's Real-Time Solutions Moti Elkayam Wind River

Upload: others

Post on 17-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

Wind River's Real-Time Solutions

Moti ElkayamWind River

Page 2: Wind River's Real-Time Solutions - IBM

2 © 2007 Wind River

Agenda

• Wind River Real-Time Solutions• VxWorks 6.x Hard RT Architecture• Wind River RTLinux

Page 3: Wind River's Real-Time Solutions - IBM

3 © 2007 Wind River

• Dual-kernel technology• Runs a single real-time process

within a non-real-time OS• Designed for mission critical

applications that require hard real-time

• 100% determinism• Proprietary and patented IP

solution• Largely independent of

architectures or existing drivers

• Open-source patches to standard kernel

• Run one or more processes with soft real-time priority

• Designed for audio/video other “bandwidth” applications with ‘statistical determinism”

• “Pure open-source” solution in mainstream kernel

• Implementation dependencies on drivers, SMP, architecture

Hard Real-Time Linux

We Will Offer Three Real-Time Solutions

• Designed from the ground-up for hard real-time

• Run multiple real-time processes within a fully real-time operatingsystem

• All hard real-time applications with very small footprint

• Certifiable • 100% determinism• Proprietary IP solution• Broadly available across all

architectures and processors

Soft Real-Time Linux

Wind River Linux

Hardware

Linux Applications

Standard Linux Kernel

Interrupts

PREEMPT_RT

Wind River VxWorks

Hardware

VxWorks Real-Time Process

Kernel-Mode Applications

Device Drivers

Hardware Interrupts

Linux Applications

VxWorksWind River Linux

Device Drivers

Standard LinuxKernel

Wind River Real-Time Core

Real-Time App.

VxWorks

Device Drivers

Interrupts

Page 4: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

VxWorks 6.x Hard Real Time Architecture

Page 5: Wind River's Real-Time Solutions - IBM

5 © 2007 Wind River

VxWorks 6.x - Features

• VxWorks 6 memory protection– MMU-based real-time processes for user-mode applications– Protects kernel from applications, and apps from each other

• VxWorks 6 msg channels interprocess communication– Enables IPC between real-time processes, – Transparent messaging across systems and Oses

• VxWorks 6 shared libraries and shared data– Shared libraries enable common code re-use and footprint savings– Shared data enable fast, simple IPC

• VxWorks 6 error management– Automatic detection and reporting for common memory errors– API to manage application errors

• VxWorks 6 improved standards support– Improved POSIX compliance in user-mode– IPv4/IPv6 dual-mode stack; approved for “IPv6 Ready” logo phase II– Open source industry standard TIPC protocol for IPC

Page 6: Wind River's Real-Time Solutions - IBM

6 © 2007 Wind River

Real-Time Process Architecture

Page 7: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

Wind River RTLinux

Page 8: Wind River's Real-Time Solutions - IBM

8 © 2007 Wind River

• Transforming Linux into an RTOS• FSMLabs & RTLinux• RTLinux in Applications• What is RTLinux? How does it work?• RTLinux and Hard Real-Time Systems• Developing RTLinux Applications• RTLinux and its modules• RTCore & Preempt_RT• Commercial Grade Linux

Page 9: Wind River's Real-Time Solutions - IBM

9 © 2007 Wind River

Transforming Linux into an RTOS

Two basic methods of making Linux a RT operating system:• PREEMPT_RT and the Kernel Preemption Patches

– the benefit of being part of the mainstream Linux Kernel development– well suited to certain types of real-time application development such as

audio or video streaming – incapable of yielding 100% guaranteed real-time performance

• Wind River Real-Time Core for Wind River Linux and the Real-Time Executive Approach– not a part of the standard Linux OS– not licensed by the GPL– immediately capable of providing a guaranteed hard real-time

Page 10: Wind River's Real-Time Solutions - IBM

10 © 2007 Wind River

FSMLabs & RTLinux

• In February 2007, Wind River acquired FSMLabs patented IP of hard real-time Linux technology

• RTLinux was developed as a master thesis project at New Mexico Tech, Socorro, NM in ~1996 by:– Dr. Victor Yodaiken & master’s student Michael Barabanov

• RTLinux to community under an open patent license ~1997• Cort Dougan joined the project and added PowerPC support

to RTLinux in ~1998• Yodaiken and Dougan formed Finite State Machine Labs

(FSMLabs) in 2000 to support commercial customers• RTLinuxPro - Professional, commercial version of RTLinux

Page 11: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

RTLinux in Applications

Page 12: Wind River's Real-Time Solutions - IBM

12 © 2007 Wind River

RTLinux in Military/Aerospace

BBN has used RTLinux in ad hoc Network for Harris Systems’ Linux based Military radio system

JSF-135 Engine on RTLinux controlled test stand

Page 13: Wind River's Real-Time Solutions - IBM

13 © 2007 Wind River

RTLinux in Research/Entertainment

Charles Nichols at Stanford plays an RTLinux powered Haptic violin

Cablecam, the “flying camera” atsporting events, has used RTLinux to control the winch motors

Page 14: Wind River's Real-Time Solutions - IBM

14 © 2007 Wind River

RTLinux in Telecommunications

Infineon and Comneon have used RTLinux as the basis for the first single-core mobile phone

RTLinux in cell phone Management in Europe

Page 15: Wind River's Real-Time Solutions - IBM

15 © 2007 Wind River

RTLinux in Robotics

Samsung Heavy Industries (SHI) has usedRTLinux as the basis for controlling the“Spider” welder in shipbuilding

Fujitsu has used RTLinux to buildindustrial and humanoid robots

Page 16: Wind River's Real-Time Solutions - IBM

16 © 2007 Wind River

RTLinux in Automotive

RTLinux has been used in Diamler-Chrysler portable diagnostictools

Page 17: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

What is RTLinux? How does it work?

Page 18: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

RTLinux

FSM Lab’s RTLinux

RTCore(real-time scheduler)

Hardware

RTLinux

Real-Time App

Kernel.orgv. 2.6.x

User Space

Kernel Space

ext3 file systemgcc 3.x

Page 19: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

Wind River Real-Time Core for Linux

• GPL-Safe

• Standards-Based

• Mature and Stable

• Fast and Deterministic

• Cost-Effective

• Proprietary and PatentedWind River

Real-Time Core

HardwareHardware

Wind River Linux

Linux Applications(Networking, Mgmt. Solutions, etc.)

Real-Time App.

Page 20: Wind River's Real-Time Solutions - IBM

20 © 2007 Wind River

Hardware

Linux Kernel (2.6)

Command Line Interfaces X Windows

GUI Tools

VMWare Eclipse Browser

Windows

No real-time guarantees!

Linux System

Diagram of a basic Linux system

Page 21: Wind River's Real-Time Solutions - IBM

21 © 2007 Wind River

RTCore-aware System

Hardware

RTLinux Kernel (2.6)

Command Line Interfaces X Windows

GUI Tools

VMWare Eclipse Browser

Windows

No real-time guarantees!

Basic Linux kernel replaced byRTLinux kernel.

GPL Linux kernel with RTLinux “hooks”

Page 22: Wind River's Real-Time Solutions - IBM

22 © 2007 Wind River

Hardware

RTLinux Kernel (2.6)

Command Line Interfaces X Windows

GUI Tools

VMWare Eclipse Browser

Windows

No real-time guarantees!

RTCore

RTCore-enabled System

GPL Linux kernel with RTLinux “hooks”

RTCore controls hardware interrupts,Linux highest priority thread

Page 23: Wind River's Real-Time Solutions - IBM

23 © 2007 Wind River

Hardware

RTLinux Kernel (2.6)

Command Line Interfaces X Windows

GUI Tools

VMWare Eclipse Browser

Windows

Real-time guarantees!

RTCore

Real-Time System

RT App

RT App (PSDD)

GPL Linux kernel with RTLinux “hooks”

RTCore controls hardware interrupts,RT App has highest priority threaddetermined by programmer

Page 24: Wind River's Real-Time Solutions - IBM

24 © 2007 Wind River

Decoupled Architecture

Hardware

RTCore OS

Real-Time Applications

GPL Linux Kernel & OS

General purpose Applications

POSIX APIs

LNet ControlsKit

Inte

rrup

t Con

trol

PSD

D G

POS

Thr

eads

• Linux “thinks” it is directly interactingwith hardware

• RTCore virtualizes interrupts to Linux

Page 25: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

RTLinux and Hard Real-Time Requirements

Page 26: Wind River's Real-Time Solutions - IBM

26 © 2007 Wind River

Initial Benchmark ComparisonsResults in Microseconds on an ARM processor

Measurement VxWorksWind River

Linux 1.4 with RTCore

Wind River Linux 1.4 with PREEMPT_RT

Wind River Linux

Co-operative context switch: elapsed time from task A yielding of the CPU until task B is scheduled on the CPU and is executing task B application code

TBD 21.2us 492.3us 1653.3

Pre-emptive context switch (pre-emption latency): Elapsed time from a task becoming the highest priority runnable task on a CPU until the CPU is executing the task's application code

TBD 103.9us 348.0us 1512.0

Interrupt latency: Elapsed time from a hardware interrupt being asserted to a CPU until the CPU begins executing the handler corresponding to the interrupt.

TBD 82.7us 140.0us 1370.6

Page 27: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

Developing RTLinux Applications

Page 28: Wind River's Real-Time Solutions - IBM

28 © 2007 Wind River

The RTLinux API, Briefly

• Follows the POSIX standard closely• Differs slightly on SMP calls as some are not defined• Programmers primarily develop in C or C++• If a programmer is familiar with development in C or C++,

programming RTLinux applications should be very straight forward

Page 29: Wind River's Real-Time Solutions - IBM

29 © 2007 Wind River

Designing RTLinux Applications

• Programmers are recommended to separate real-time applications from non real-time (GPOS) applications

• Time sensitive code needs to be scheduled by RTCore and the RTLinux API needs to be used

• Code that requires access to more complex non real-time applications, e.g. file systems, needs to be scheduled by the Linux host and its API

Page 30: Wind River's Real-Time Solutions - IBM

30 © 2007 Wind River

RTLinux & Linux Communication

• RTLinux can pass information to Linux (non real-time) applications– FIFOs– Shared Memory– Interrupts

• FIFOs are preferred method & widely used• FIFOs are preferred to be created unidirectional, not

bidirectional

Page 31: Wind River's Real-Time Solutions - IBM

31 © 2007 Wind River

• Running RTLinux modules same as executing regular programs, e.g. ./example.rtl

• “Insmoding” real-time application done seamlessly in the background

• Developer doesn’t have to worry about correct linking with kernel

• Real-time is based on threads• Memory allocation done in main() function

Compiling, Running RTLinux Applications

Page 32: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

RTLinux and its modules

Page 33: Wind River's Real-Time Solutions - IBM

33 © 2007 Wind River

Process Space Development Domain (PSDD)

• PSDD RT threads run in the context of a UNIX process• Hard real-time performance like with in-kernel RTCore• Lightweight system calls and process context switching• Most of the RTCore API is available for PSDD threads• Access to RTCore device drivers, LNet• C, C++, Fortran support• Basis for ARINC; provides time & space partitioning

Page 34: Wind River's Real-Time Solutions - IBM

34 © 2007 Wind River

Frame Scheduler (fsched)

• Schedules of PSDD RT threads in terms of major and minor cycles

• Provides command line and programming interfaces• Mostly used for simulations – easier debugging• Implemented as just another PSDD application

Page 35: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

RTCore & Preempt_RT –The Engineering Tradeoff

Page 36: Wind River's Real-Time Solutions - IBM

36 © 2007 Wind River

The Engineering Tradeoff:RTCore & Preempt_RT

• RTCore– Alternative API designed specifically for real-time application support– In-kernel execution achieves optimized, guaranteed performance– API allows coordination with cooperating applications existing under

Linux host kernel– PSDD module allows real-time applications to reside in memory

protected Linux user space

• Preempt_RT– Maximize preemptability of the native Linux API– Traditional Linux API semantics– Aggressive improvement but difficult to guarantee– Access to API via syscalls and more complex abstractions limit

attainable performance

Page 37: Wind River's Real-Time Solutions - IBM

© 2007 Wind River

Commercial Grade Linux

Page 38: Wind River's Real-Time Solutions - IBM

38 © 2007 Wind River

Linux Tools That Span the Software Lifecycle

Implementation Integration TestDesign

3rd Party UML Eclipse Plug-in

Source Code Analysis & Navigation

Linux Kernel Debug (KGDB)

On-Chip Debug (JTAG)

Application Debug (user-mode)

System Viewer

ProfileScope

Stethoscope

MemScope

Native Linux Debug

Unit Tester

Diagnostics

Page 39: Wind River's Real-Time Solutions - IBM

39 © 2007 Wind River

Workbench Development Environment

Page 40: Wind River's Real-Time Solutions - IBM

40 © 2007 Wind River

Key Features of Workbench Diagnostics

• Sensor Points– Software test points that can be

dynamically placed into a running application

• No pre-instrumentation required in application code

– No modification to application source code required

– Minimally intrusive to application operation

– Tightly integrated tool set

• Core Image Generation– Comprehensive system state

information at the point of exception– Tightly integrated tool set

Application

kernel

SP 1

SP 2

SP 4

SP 3

SP 5

Application

kernel

Core Image

Page 41: Wind River's Real-Time Solutions - IBM

41 © 2007 Wind River

Open Source Transparency and Maintainability

Wind River Linux cross build system

Pristine Open-Sourcepackages

• tar.gz• src.rpm

Open-Sourcecommunity patches

• diff• src.rpm

Wind River Linux cross toolchain

customizedtarget binaries

Wind River & partnerpatches

• diff• src.rpm

validatedWind River pre-built

target binaries

validateddistributionsource tree

customized distributionsource tree

Customerpatches

• diff• src.rpm

Benefit – maintain only one source base for many different projects

Benefit – easier to apply patches to all platforms and to integrate new open source patches

Page 42: Wind River's Real-Time Solutions - IBM

42 © 2007 Wind River

Flexible SupportOnly Device company certified for “Support Center Practices”

ReferenceKernel/BSP

ModifiedKernel/BSP

CustomBoard

ReferencePackages

ReferenceBoard

ReferenceKernel/BSP

ModifiedPackages

ReferenceBoard

ModifiedKernel/BSP

ReferenceBoard

ReferencePackages

ModifiedPackages

ModifiedPackages

Technical Support Request (TSR)24 Hours Initial Response

Full Support orBest Effort?

Reproducedon Reference

Platform?

Customer SpecificSupport through

Wind River Services

Workaround or Patchfor Reference Platform

Product UpdateRelease

No

Yes

BestEffortFull

Wind RiverCommunity Efforts

ReferencePlatform

ModifiedPackages

ModifiedPackages

ReferenceHost OS

ReferenceToolchain

ReferenceHost OS

ReferenceToolchain

ReferenceHost OS

ReferenceToolchain

CustomHost OS

ReferenceToolchain

Open SourceCommunity

Software ProblemReport (SPR)• Critical• Severe• Standard• Low

Page 43: Wind River's Real-Time Solutions - IBM

43 © 2007 Wind River

Summary

Wind River is uniquely qualified to address a customer’s device software requirements

through a combination of…

– 20+ years of device software experience– Flexible and proven integrated run-time solutions – Open and extensible development suite for all project phases– Global support delivered locally– World class Professional Services– Unique value-added partnerships and ecosystem