180 likes | 577 Views
Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU. Anders Rönnholm. Overview. Background Problem description Real-time system characteristics Overview of target system Overview of evaluated kernels Evaluation Results Conclusions. Background.
E N D
Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm
Overview • Background • Problem description • Real-time system characteristics • Overview of target system • Overview of evaluated kernels • Evaluation • Results • Conclusions
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 - CRC20 persons working with mechatronics5 of them with SoCsolutions
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
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
Target system Xilinx Virtex4 XC4VFX12 • 200,000 Logic Cells. m68000 60,000 large • Support for 8 MicroBlaze • Many Additional components- Hardware barrel shifter- Hardware divider- Instruction and data cache- Memory interfaces
Target system cont. • Xilinx EDK- IDE- Debugger Benchmark design • DDR-RAM • Uart • 2 Timers (system clock, interrupt generator) • 16kB instruction and data cache
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
uClinux • Port of Linux 2.0 , 2.4 and 2.6- 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.
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.
Asterix • Developed at MRTC • Periodic / aperiodic tasks • Signals / semaphores and wait&lock free communication • Monitoring support: Deterministic replay and deterministic testing.
Asterix Port • 16-bit h8/300 CISC -> 32-bit MicroBlaze RISC • 4 external interrupts -> 1 external interrups- Interrupt controller • HAL – Assembler • 3 - 4 weeks of work
Test System Applications Applications Applications • Board Configuration MicroBlaze 100 MHz 64MB DDR-RAM • Timer 100 Hz • 5,000,000 interrupts(13.8h) Asterix uClinux Xilkernel MicroBlaze Virtex4
Evaluation • Benchmarks- Interrupt latency- Task response time • Priority inversion • Scalability • Kernel size (footprint)
Result – Benchmark and Footprint Footprints Benchmark results
Result - Priority inversion • uClinuxNo support without patch • XilkernelPriority inheritance • AsterixImmediate inheritance
Result - Scalability • uClinuxOnly scalable on the operating system. Network support, filesystems, sound • XilkernelSupport for pthread, semaphore, mutex, stack size. • Asterix Support for semaphore, signal, stack size.
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.