© ABB Group Jun-15 Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm
© ABB Group Jun-15 Overview Background Problem description Real-time system characteristics Overview of target system Overview of evaluated kernels Evaluation Results Conclusions
© ABB Group Jun-15 Background System-on-Chip - The whole system on one chip FPGA - A chip containing programmable logic cells. Reprogrammable. Embedded systems - Special purpose systems incapsulated in the device it controls. ABB - CRC 20 persons working with mechatronics 5 of them with SoC solutions
© ABB Group Jun-15 Problem Description Areas using embedded systems are: Airbags, pacemakers, MP3 players and industrial robots. Evaluated kernels -uClinux, Xilkernel, Asterix Evaluation - Interrupt latency - Task response time - Priority inversion - Kernel size (footprint) - Scalability
© ABB Group Jun-15 Real-time system characteristics Real-time systems are systems that must respond to an event within a given deadline. Characteristics - Determinism - Responsiveness - User control - Reliability - Fail-soft operation
© ABB Group Jun-15 Target system Xilinx Virtex4 XC4VFX12 200,000 Logic Cells. m ,000 large Support for 8 MicroBlaze Many Additional components - Hardware barrel shifter - Hardware divider - Instruction and data cache - Memory interfaces
© ABB Group Jun-15 Target system cont. Xilinx EDK - IDE - Debugger Benchmark design DDR-RAM Uart 2 Timers (system clock, interrupt generator) 16kB instruction and data cache
© ABB Group Jun-15 MicroBlaze Soft CPU - Implemented using the hardware logic in the FPGA 32-bit RISC core 32 general purpose registers 5 special purpose registers Bus interfaces - On-chip Peripheral Bus - Local Memory Bus - Fast Simplex Link Bus - Debug Interface
© ABB Group Jun-15 uClinux Port of Linux 2.0, 2.4 and Only 2.4 ported to MicroBlaze Not RTOS, kernel not preemptive Kernel package and Distribution package Kernel package contains the kernel Dist package contains: - Applications, libraries, drivers Needs to be compiled in a Linux Environment. Downloaded with Xilinx tool.
© ABB Group Jun-15 Xilkernel Developed by Xilinx. Shipped and highly integrated into EDK. Signal, Message queue, semaphore communication. Applications can be created as separate executables. Compiled and downloaded inside EDK.
© ABB Group Jun-15 Asterix Developed at MRTC Periodic / aperiodic tasks Signals / semaphores and wait&lock free communication Monitoring support: Deterministic replay and deterministic testing.
© ABB Group Jun-15 Asterix Port 16-bit h8/300 CISC -> 32-bit MicroBlaze RISC 4 external interrupts -> 1 external interrups - Interrupt controller HAL – Assembler weeks of work
© ABB Group Jun-15 Test System Board Configuration MicroBlaze 100 MHz 64MB DDR-RAM Timer 100 Hz 5,000,000 interrupts (13.8h) Virtex4 Xilkernel MicroBlaze AsterixuClinux Applications
© ABB Group Jun-15 Evaluation Benchmarks - Interrupt latency - Task response time Priority inversion Scalability Kernel size (footprint)
© ABB Group Jun-15 Result – Benchmark and Footprint Benchmark results Footprints
© ABB Group Jun-15 Result - Priority inversion uClinux No support without patch Xilkernel Priority inheritance Asterix Immediate inheritance
© ABB Group Jun-15 Result - Scalability uClinux Only scalable on the operating system. Network support, filesystems, sound Xilkernel Support for pthread, semaphore, mutex, stack size. Asterix Support for semaphore, signal, stack size.
© ABB Group Jun-15 Conclusions Asterix the best kernel if memory is very limited otherwise Xilkernel. uClinux can be used as a real-time system in a design that is not memory limited and does not need fast response times. Xilkernel easiest to work with.