530 likes | 961 Views
Real Time Operating System for SoC. 張瑞川 Department of Computer and Information Science National Chiao Tung University. Overview. Motivation Characteristics of a Real Time Operating System (RTOS) Components of an RTOS Case Study: VxWorks/pSOS, QNX, OSE, WinCE, Nucleus, eCos, Embedded Linux
E N D
Real Time Operating System for SoC 張瑞川 Department of Computer and Information Science National Chiao Tung University
Overview • 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
Motivation • SoC CPU + ASIC + Software Monitoring, Control, Remote Management, Consumer Devices Applications Middleware Databases, Graphics, Java Operating System Linux, VxWorks, others... PPC, 68k, MIPS, ARM, x86, etc. CPU/ASIC
Software for Bluetooth Host Application GSM/UMTS etc WAP Management SW Bluetooth Adviser WDP API RFCOMM SDP L2CAP Link Control/HCI/UART HCI Router Link Manager Lyra/Vega Link Control Baseband Controller ARM 7TDMI Radio Transceiver
Real 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
Characteristics of a RTOS • Single/Multi-platform OS • Lyra: x86, ARM, MIPS • Multitasking • Priority • Real-time • Soft and hard real time requirements • Variants of RTOS
Real Time • “Real-time does not mean speed, but keeping deadlines” • Overall deterministic behavior • Guaranteed – typically short – response/reaction times
Soft 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
Variants of RTOS • Pure real time OS RT-Application RTOS Hardware
Pure 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
OS 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
OS Real-Time Extensions Applications RT Applications Standard OS RT extension Hardware
Components 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)
Situation 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 OS’s • Lyra/Vega
VxWorks/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
QNX • 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
OSE • 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
Nucleus • Manufacturer: Accelerated Technology • Application: wireless equipments (handsets), internet access devices • Characteristics • Source code license + no royalty • Small memory footprint and CPU overheads
eCos • Manufacturer : redhat (Cygnus) • Applications : wireless applications, internet access, embedded applications • Characteristics • Open source (GNU license) • Implemented in C++ • Embedded configurable RTOS • Memory footprint from 10’s KB to 100’s KB
Windows 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 MB’s • Relative high royalty
Windows 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
Embedded Linux • Open Source • Almost Free • Community • Code Quality • Robust • Brand Name • Internet Platform • IBM will invest 1 Billion per year for Linux
Embedded 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
Screen Phone & Web Pad WBT XC PDA Browser PocketWord ICQ E-mail MP3 PIM ICA JavaVM GTK+ & GDK GUI SDK DDK GW32 Multi- Language A Typical Embedded Linux Embedded Linux OS
Screen Phone & Web Pad WBT Embedded 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)
FIC Aqua 3200 WebPAD • 7.4“ DSTN LCD • Crusoe 3120 400MHz • 16M Flash • 64M RAM • Embedded Linux • Netscape Web Browser
Linux 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)
Lineo 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)
The 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
Two Classes of Embedded Linux • 500KB kernel • 2MB Flash vs. 16MB Flash • Microbrowser vs. Netscape • 4M DRAM vs. 32MB ~ 64MB DRAM
Linux 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)
Current 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
Hybrid 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
Init Bash Xterm Real time task Real time task Linux Kernel System calls Drivers Interrupt or polling I/O RT-Linux Scheduler I/O Interrupt Interrupt Hardware RTLinux
Add 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
MontaVista • 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
Application Application Application EL/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
Concluding 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
DSP CPU Core Cache DMA control DRAM System Bus Power Mgr. Bridge Memory Controller UART UART RTC 1 RTC 2 IO pins GPIO Interrupt control Reset Speaker MIC Image Sensor Sound codec Reset Antenna LCD LCD control Wireless LAN Baseband/MAC RF Wireless Multimedia PDA SoC
Embedded 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