Title: Real Time Operating System for SoC
1Real Time Operating System for SoC
- ???
- Department of Computer and Information Science
- National Chiao Tung University
2Overview
- Motivation
- Characteristics of a Real Time Operating System
(RTOS) - Components of an RTOS
- Case Study VxWorks/pSOS, QNX, OSE, WinCE,
Nucleus, eCos, Embedded Linux - Concluding Remarks
3Motivation
Monitoring, Control, Remote Management, Consumer
Devices
Applications
Middleware
Databases, Graphics, Java
Operating System
Linux, VxWorks, others...
PPC, 68k, MIPS, ARM, x86, etc.
CPU/ASIC
4An Example Bluetooth Baseband
5Software for Bluetooth
Host Application GSM/UMTS etc
WAP
Management SW
Bluetooth Adviser
WDP
API
SDP
RFCOMM
L2CAP
Link Control/HCI/UART
HCI Router
Link Manager
Lyra/Vega
Link Control
Baseband Controller
ARM 7TDMI
Radio Transceiver
6Real Time OS
- A RTOS is an abstraction from hardware and
software programming - Shorter development time
- Less porting efforts
- Better reusability
- Choosing a RTOS is important
- High efforts when porting to a different OS
- The chosen OS may have a high impact on the
amount of resources needed
7Characteristics of a RTOS
- Single/Multi-platform OS
- Lyra x86, ARM, MIPS
- Multitasking
- Priority
- Real-time
- Soft and hard real time requirements
- Variants of RTOS
8Real Time
- Real-time does not mean speed, but keeping
deadlines - Overall deterministic behavior
- Guaranteed typically short response/reaction
times
9Soft and Hard Real Time Requirements
- Soft real-time requirements
- Breaking the time limit is unwanted, but is not
immediately critical - Multimedia Streaming
- Hard real-time requirements
- Breaking the limit is always seen as a
fundamental failure - Nuclear Power Plant Controller
10Variants of RTOS
RT-Application
RTOS
Hardware
11Pure Real Time OS
- Especially designed for real-time requirements
- Completely real-time compliant
- Often usable for simple architecture
- Advantage no or little overhead
- Computing power, memory
- Disadvantage limited functionality
- Example eCos, Nucleus, pSOS, VxWork, QNX, OSE,
Lyra
12OS Real-Time Extensions
- Extension of an OS by real-time components
- Cooperation between RT- and non-RT parts
- Advantages rich functionality
- Disadvantage
- No general real-time ability
- Computing and memory resources
- Example RT-Linux, Solaris, Windows NT
13OS Real-Time Extensions
RT Applications
Applications
Standard OS
RT extension
Hardware
14Components of a RTOS
- Process(task) management
- Scheduler
- Synchronization mechanism
- Interprocess communication (IPC)
- Semaphores
- Memory management
- Interrupt service mechanism
- I/O management
- Hardware abstraction layer
- Development Environments
- Communication subsystems (Option)
- Board Support Packages (BSP)
15Situation of the RTOS Market
- A vast of RTOS on the market
- Nucleus Plus, OSE, Virtuoso, ThreadX, WinCE, AMX,
RTX, LynxOS, VRTX, uC/OS II, OS-9, On Time,
VxWork, pSOS, EPOC, eCos - Proprietary OSs
- Lyra/Vega
16VxWorks/pSOS
- Manufacturer WindRiver System
- Largest player on the market
- Application examples HP laser printers, Mars
Probe pathfinder, Sony Walkman, digital camera,
Internet switch and routers, - Characteristics
- Support many architectures
- Tool Tornado
- No memory protection by OS
- OS ROM size scalable from 80KB to 500KB
- RAM requirements at least 50KB
- License royalty professional service
17pSOS
18QNX
- Manufacturer QNX Software Systems Ltd (Canada)
- Support many 32-bits architectures x86, MIPS,
PPC, ARM, - Applications medical technology, automotive
technology, - Characteristics
- Microkernel architecture
- Full MMU support
- GUI support
- License royalty
- Free for non-commercial use
19QNX
20OSE
- Manufacturer Enea Data (Sweden)
- Enea has a long tradition in the embedded area
- Climber of the last two years
- Main applications Telecomm (Ericsson, Nokia)
- Characteristics
- Different kernels for different application areas
- The smallest kernel needs only 6 functions
- Principle of the kernel message-passing
- Good connection to the SDL tool chain
21Nucleus
- Manufacturer Accelerated Technology
- Application wireless equipments (handsets),
internet access devices - Characteristics
- Source code license no royalty
- Small memory footprint and CPU overheads
22eCos
- Manufacturer redhat (Cygnus)
- Applications wireless applications, internet
access, embedded applications - Characteristics
- Open source (GNU license)
- Implemented in C
- Embedded configurable RTOS
- Memory footprint from 10s KB to 100s KB
23eCos configuration tool
24Windows CE
- Manufacturer Microsoft
- Application areas PDA, Industrial embedded
systems, game consoles - Characteristics
- Win32 API
- Own tool chain (Visual Studio)
- For most well-known 32 bit platforms with MMU
- Typical memory requirements a few MBs
- Relative high royalty
25Windows CE
Shells
Internet Explorer
Remote Connectivity
Microsoft Programming Interfaces Win32, COM, MFC,
ATL, ...
Communication Interfaces (Winsock, RAS, TAPI,
network)
Kernel OAL
GWE
Object Store (File Systems)
IrDA
TCP/IP
Unimodem
PPP/SLIP
IR Miniport
Ethernet Miniport
NDIS
Native Stream Interface Drivers
Other Drivers
Serial
26Embedded Linux
- Open Source
- Almost Free
- Community
- Code Quality
- Robust
- Brand Name
- Internet Platform
- IBM will invest 1 Billion per year for Linux
27Embedded and Real-Time Linux Solution Providers
- Lynx -- Blue Cat Linux
- MontaVista -- Hard Hat Linux
- Lineo -- Embedix Linux
- FSMLabs -- RTLinux
- Zentropix -RealTime Linux
- Coollogic -- On-Channel Linux
- Redhat
- IBM
28A Typical Embedded Linux
Embedded Linux OS
29Embedded Linux For Internet Appliances
? Browser (1M bytes)
GW32 (800 k bytes)
Embedded Linux OS(500 k bytes)
ICA (500 k bytes)
GW32 (800 k bytes)
Embedded Linux OS(500 k bytes)
30FIC Aqua 3200 WebPAD
- 7.4 DSTN LCD
- Crusoe 3120 400MHz
- 16M Flash
- 64M RAM
- Embedded Linux
- Netscape Web Browser
31Linux PDA - Samsung YOPY
- 4.0 Color TFT LCD
- 206 MHz ARM, 32M DRAM, 32M Flash
- MP3 player, Voice recording, MPEG
- ARMLinux
- Digital Camera
- TV (NTSC)
32Lineo Embedix
- Embedix Linux Installer
- text based
- The Shell
- Ash (much smaller than Bash)
- The Kernel Binary
- Linux kernel with small number of device drivers
- The C library ( 600K)
- Reduced Glibc (with tool support)
33The Size of Embedix 1.0
- The minimum target size for Embedix Linux on x86
- 4 MB of RAM and 1MB of ROM, Flash
- A demo system with v2.0 Linux kernel, web server,
shell, DHCP server, CGI scripts, web camera
driver - 4 MB RAM and 1MB Floppy
- Lineo Web Browser (HTML 3.2)
- 5 MB of Flash and 16MB of RAM
34Embedix Linux SDK
35Two Classes of Embedded Linux
- 500KB kernel
- 2MB Flash vs. 16MB Flash
- Microbrowser vs. Netscape
- 4M DRAM vs. 32MB 64MB DRAM
36Linux kernel
- Design Focus Application throughput
- Linux use interrupt off critical section
management - Linux kernel is non-preemptable
- Linux compromises the timely selection of
real-time processes for throughput - Linux allow nested interrupts (depends on
hardware)
37Current Linux Solutions
- Design application around the problems
- Directly use interrupt service routines
- Avoid known excessive interrupt off periods in
Linux - If a process component is required in the
real-time control path, then consider aggregate
system loading - Use real-time scheduler instead
38Hybrid Kernel
- RTLiux
- run Linux as the idle task
- real-time threads are executing in real-time
kernel - interrupt off/on operations by Linux are emulated
by lower level kernel - complex and difficult for application development
39RTLinux
40Add real-time control to Linux directly
- Preemptive points in Linux kernel
- A rate monotonic scheduler (UC Irvine)
- The KURT program at University of Kansas
- Linux SRT (soft real-time) project
41MontaVista
- Measure the interrupt off periods
- Provide a priority driven real-time process
scheduler with fixed and low overhead for process
creation and dispatch - Measure process preemption delays
- Develop, access and provide preemptable Linux
kernel
42EL/IX Delivers The Vision for Embedded Computing
Development Environment Including GNU Tools (gcc,
gdb, etc.)
Manual or Auto Configuration
User Config
API Config
EL/IX API
eCos or Other RTOS
Kernel-level Config
LINUX
PDA
Deeply Embedded
43Concluding Remarks
- How to select a RTOS for your own SoC ?
- What are the requirements of the applications?
- Which OS features are really necessary?
- How hard are the real time constraints?
- Is the OS available for the chosen hardware
platform? - What are the overall cost of using the OS
including the license fee, tool cost, training
and royalty? - Consider software issues from very beginning
44Wireless Multimedia PDA SoC
45Embedded Linux with Real Time Extension
- Cadence Virtual Component Co-design
- Hardware/Software Co-design
- Mentor Graphics Seamless for WLAN MAC
verification - Linux Driver(ISS) MAC (ModelSim)
- Intel StrongARM development board /ARM ASIC
Integrator board - Embedded Linux development
- MPEG 4 Codec