According to Express Logic, Inc., their ThreadX/MCU RTOS performed up to 50% better than other RTOSes measured by the Thread-Metric benchmark suite. In the tests, ThreadX/MCU RTOS ran on Microchip Technology’s [NASDAQ: MCHP] PIC24 16-bit microcontroller. The Thread-Metric benchmark suite is a freely-available set of benchmarks that measures many aspects of RTOS performance. Express Logic’s ThreadX/MCU RTOS is a small (2KB – 10KB), fast, royalty-free, affordable RTOS based on the highly popular ThreadX® RTOS, and is optimized for 16-bit microcontrollers such as Microchip’s PIC24 16-bit family and dsPIC® Digital Signal Controllers (DSCs). All tests were run on a Microchip 40 MIPS PIC24HJ256GP610 PIC24 16-bit microcontroller.
The first comparison shows RTOS performance for ThreadX/MCU, uc/OS-II, TNKernel, AVA and FreeRTOS, with status checking included for each RTOS. In each test, Express Logic’s ThreadX/MCU outperformed all of the other RTOSes. In all tests, a higher score is better.
|Interrupt preemption processing||3,052,151||(1)||2,693,630||1,260,190||2,400,967|
(1) Cooperative scheduling not supported
(2) Not reported
(3) mc/OS-II Message Processing test is not valid – copies 1 32-bit word instead of copying 4 32-bit words.
The second comparison shows the results for ThreadX/MCU and the AVIX RTOS, which is the one RTOS for which status checking was not performed. For this comparison, ThreadX/MCU was also run without status checking to enable a consistent comparison. ThreadX/MCU outperformed AVIX substantially in cooperative scheduling (33.42%), message processing (56.28%) and memory processing (34.67%) while providing modest advantages in preemptive scheduling (5.39%), interrupt processing (4.13%), and interrupt preemption processing (2.67%). Only in synchronization processing did AVIX outperform Thread/MCU by 6.46%, and it is noted that AVIX uses 16-bit semaphores while ThreadX/MCU uses 32-bit semaphores. Again, in all tests, a higher score is better.
|Cooperative scheduling||11,848,815||8,880,289||33.42 %|
|Preemptive scheduling||5,032,710||4,775,165||5.39 %|
|Interrupt processing||7,342,967||7,051,598 (2)||4.13 %|
|Interrupt preemption processing||3,132,150||3,050,405 (2)||2.67 %|
|Message processing||7,354,317||4,705,841||56.28 %|
|Synchronization processing||17,592,956||18,729,971 (1)||-6.46 %|
|Memory processing||14,413,455||10,702,506||34.67 %|
(1) AVIX semaphores are 16-bits, ThreadX semaphores are 32-bits.
(2) AVIX uses the interrupted thread’s stack in ISR processing; ThreadX/MCU switches to a dedicated system stack.
(3) The AVIX thread-metric porting layer does not check return status. For this comparison, the porting layer for ThreadX/MCU was modified not to check status to enable a fair comparison with AVIX.
ThreadX/MCU license is available for prices starting at $5,990 with no royalties. Free evaluation copies are available for download as well.