PERFORMANCE ANALYSIS USING NXP S I.MX RT1050 CROSSOVER PROCESSOR AND THE ZEPHYR OS

Similar documents
Performance Analysis using NXP s i.mx RT1050 Crossover Processor and the Zephyr OS

LF Real-Time Operating Systems: Evolution and Trends. Kate Stewart. Senior Director of Strategic

Zephyr LTS Release. What to expect and why are we doing this. Anas Nashif, Intel Corp.

ZEPHYR PROJECT OVERVIEW. Kate Stewart, The Linux Foundation

Build the unified end to end IoT solution on ARM LEADING COLLABORATION IN THE ARM ECOSYSTEM

What is Zephyr Project?

ARM mbed mbed OS mbed Cloud

mbed OS Update Sam Grove Technical Lead, mbed OS June 2017 ARM 2017

Building mbed Together: An Overview of mbed OS and How To Get Involved

Using SoC Vendor HALs in the Zephyr Project. Maureen Helm, NXP

Using SoC Vendor HALs in the Zephyr Project. Maureen Helm, NXP

The friendly operating system for the IoT!

ARM mbed Technical Overview

Backporting is so 1993

ARM mbed Technical Overview

An Incubator Project in the Apache Software Foundation. 13 July 2016

3 Software Stacks for IoT Solutions. Ian Skerrett Eclipse

CONNECTING SERVICES IN IOT DESIGN

The IoT and Thread in PHYTEC Nodes. Jonas Remmert July 15th, 2016

HEXIWEAR COMPLETE IOT DEVELOPMENT SOLUTION

A Big Little Hypervisor for IoT Development February 2018

智能互联推动嵌入式系统创新. March 2015

NXP MICROCONTROLLER INNOVATION CLOUD CONNECTIVITY WITH AWS & LPC54018

Loosely Coupled Actor Systems

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes

ARM mbed Reference Designs

Device to Cloud. Software Hardware Know How

Diversity of. connectivity required for scalable IoT devices. Sam Grove Principal Software Engineer Arm. Arm TechCon 2017.

ARM mbed Towards Secure, Scalable, Efficient IoT of Scale

Kick Start your Embedded Development with Qt

Hands-On Workshop: ARM mbed : From Rapid Prototyping to Production

GET STARTED FAST WITH THIS COMPREHENSIVE ENABLEMENT OFFERING FOR LPC800 MCUS

Linaro Year 6. BKK16 George Grey, Linaro CEO

Software Design Challenges for heterogenic SOC's

Soletta. Closing the IoT Development Gap. OpenIoT & ELC Europe 2016

Cypress PSoC 6 Microcontrollers

HOW TO INTEGRATE NFC FRONTENDS IN LINUX

Introduction to RoweBots Ultra Tiny Linux RTOS

New Approaches to Connected Device Security

IoT OS. IoT OS on RISC-V with RT-Thread

The Three Software Stacks Required for IoT. Benjamin Cabé Eclipse

Jinfan Shi. Director of Huawei LiteOS Marketing Huawei

Hands-On Workshop: ARM mbed

More info about the competition and the Intel Galileo Gen 2

IoT Ecosystem and Business Opportunities

μez Software Quickstart Guide

Mobile & IoT Market Trends and Memory Requirements

Introduction to PThreads and Basic Synchronization

Mobile & IoT Market Trends and Memory Requirements

μez Software Quickstart Guide

Major Components of the Internet of Things Systems

Eclipse IoT State of the Union. Benjamin Cabé, Eclipse

NXP i.mx 6 UltraLite Evaluation Kit Edge MicroServer Installation and Setup Guide. Version 1.0

HOW SENSOR FRAMEWORKS ENABLE EFFICIENT DEVELOPMENT

Managing & Accelerating Innovation with Open Source at the Edge

ARM mbed Enabled. Mihail Stoyanov Partner Enablement Team Lead, ARM mbed. Xiao Sun Partner Enablement Engineer, ARM mbed

Threads. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

NFC Framework and NT3H1201 Device Driver v1.1

Practical real-time operating system security for the masses

Java Embedded on ARM

Resilient IoT Security: The end of flat security models

A Guided Tour of Eclipse IoT: 3 Software Stacks for IoT. Benjamin Cabé, Eclipse

Designing Security & Trust into Connected Devices

Accelerating IoT with ARM mbed

Mobile & IoT Market Trends and Memory Requirements

Qt for Device Creation

Security for Secure IoT: Advanced Architectures for IoT Gateways. Simon Forrest Director of Segment Marketing, Consumer Electronics

LITE Lightning Talks. Linaro LITE team

LSN 13 Linux Concurrency Mechanisms

Developing Mission Critical Products with Digi i.mx53 Module

FTF-CON-F0403. An Introduction to Heterogeneous Multiprocessing (ARM Cortex -A + Cortex- M) on Next-Generation i.mx Applications Processors

CS Lecture 3! Threads! George Mason University! Spring 2010!

Bidirectional wireless communication between IBM Cloud and Bluetooth Low Energy peripherals through SimpleLink Wi-Fi

ARROW ARIS Board Software User s Guide 27/07/2016

iw-rainbow-g3 / G3V FAQs:

Beyond TrustZone PSA Reed Hinkel Senior Manager Embedded Security Market Development

HOW TO INTEGRATE NFC CONTROLLERS IN LINUX

THE RTOS AS THE ENGINE POWERING THE INTERNET OF THINGS

IOTIVITY INTRODUCTION

Accelerating IoT with ARM mbed

Open Source IoT. Eclipse IoT. Tim De Borger - Senior Solution Architect 13/06/2017

Eclipse Tool Chain for Smart Development of High-Tech / Low Cost Embedded Systems

Fiji VM Safety Critical Java

SOMNIUM DRT Benchmarks Whitepaper DRT v3.4 release : August 2016

KW41Z IEEE and BLE Coexistence Performance

Accelerating IoT with ARM mbed

Simplify rich applications & hard real-time

Industrial IoT Sensor Node & Gateway Solutions

i.mx アプリケーション プロセッサ ARM Processor for Automotive Sadeque Hanif Marketing, Microcontrollers External Use

The TechNexion Difference

Connect your IoT device: Bluetooth 5, , NB-IoT

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

STM32MP1 Microprocessor Continuing the STM32 Success Story. Press Presentation

JerryScript An ultra-lightweight JavaScript engine for the Internet of Things

Building secure devices on the intelligent edge with Azure Sphere. Paul Foster, Microsoft Dr Hassan Harb, E.On

Si7013 Temperature Humidity Driver v1.2

LEARN ALL ABOUT NFC SESSION 4: PRODUCT SUPPORT PACKAGE FOR NFC READERS & NFC CONNECTED TAGS

ARM Cortex -M and Java in the Internet of Things. Asim Chaudhry Field Applications Engineer, ARM

ARROW ARIS EDGE Board Software User s Guide 12/05/2017

RENESAS SYNERGY PLATFORM

Transcription:

PERFORMANCE ANALYSIS USING NXP S I.MX RT1050 CROSSOVER PROCESSOR AND THE ZEPHYR OS MAUREEN HELM LEOTESCU FLORIN MARIUS CRISTIAN VLAD BENCHMARKING TEAM

AGENDA Zephyr Project introduction Analysis scope Hardware configuration Benchmark study methodology Run to run performance variation Performance comparison with i.mx 6UL Conclusions 1

Zephyr Project Open source real time operating system Vibrant Community participation Built with safety and security in mind Cross-architecture with growing developer tool support Vendor Neutral governance Permissively licensed - Apache 2.0 Complete, fully integrated, highly configurable, modular for flexibility, better than roll-your-own Product development ready with LTS Certification ready with Auditable Open Source, RTOS, Connected, Embedded Fits where Linux is too big Zephyr OS 3 rd Party Libraries Application Services OS Services Kernel HAL 2 22

Address Fragmentation Modular Infrastructure Open-Source Feature Richness Why Zephyr? The Zephyr OS addresses broad set of embedded use cases across a broad set of platforms and architectures using a modular and configurable infrastructure. It addresses the need for RTOS consolidation. No single RTOS addresses broad set of embedded use cases across a broad set of platforms and architectures Disjoint use cases have led to fragmentation in RTOS space Existing commercial solutions force roll your own solutions and duplication of software components Modular and configurable infrastructure allows creation of highly compact and optimal solutions for different products from a common origin Reuse allows NRE costs to be amortized across multiple products and solutions Multi-architecture support reduces platform switching costs and vendor lock-in concerns Roll your own is expensive & difficult to develop & maintain Permissively licensed corresponds to ease of adoption Corporate sponsorship assures long term commitment and longevity Community innovation has proven faster for progression and project development is a collaboration of industry experts Reduce costs and improve efficiency through reuse Need for a solution or semicomplete solution rather than just an ingredient. Lowers entry level barrier for new products and speeds up software delivery using existing feature and hardware support Encourages adherence to standards and promotes collaboration on complex features inside the organization Developers focus on the end-user facing interfaces instead of re-inventing low level interfaces 3

kernel OS Services Application Services I2C SPI UART GPIO File System Logging/ Debug Database/ Properties Crypto IPC Sensors... Device Management Thread Architecture Radios DTLS 15.4 LWM2M RPL 6LoWPAN Kernel Services / Schedulers Power Management Sensors Application Smart Objects / High Level APIs / Data Models MQTT Low Level API Platform TCP/UDP IPv6/IPv4 BLE Wi-Fi* NFC*... Crypto HW HTTP TLS Flash CoAP Highly Configurable, Highly Modular Cooperative and Pre-emptive Threading Memory and Resources are typically statically allocated Integrated device driver interface Memory Protection: Stack overflow protection, Kernel object and device driver permission tracking, Thread isolation Bluetooth Low Energy (BLE 4.2, 5.0) with both controller and host, BLE Mesh Native, fully featured and optimized networking stack Fully featured OS allows developers to focus on the application 4

Analysis scope Asses the real-time efficiency of an embedded system (i.mx RT1050 crossover processor) Determine the performance gap between the MIMXRT1050-EVK board equipped with an embedded ARM SoC and a similar board equipped with an application processor. 5

Hardware configuration i.mx RT1050 configuration Development board: MIMXRT1050-EVK Processor: MIMXRT1052DVL6A Arm Cortex -M7 core Number of cores: 1 Core Frequency: 600 MHz Board schematic: SCH-29538 REV A1 OS name: Zephyr OS 1.11.99 OS type: Real Time OS i.mx 6UL configuration Development board: i.mx 6UL EVK Processor: i.mx 6UltraLite Processor based on Arm Cortex-A7 core Number of cores: 1 Core Frequency: 528 MHz Board schematic: SCH-29163 REV A2 OS name: Linux BSP - kernel 4.9.88-imx_4.9.88_2.0.0_ga OS Type: Non- Real Time OS 6

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time RUNTIME C / POSIX LIBRARY OPERATING SYSTEM HARDWARE DEVICE 7

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time RUNTIME C / POSIX LIBRARY pthread_create() pthread_join() OPERATING SYSTEM 8 HARDWARE DEVICE

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time RUNTIME C / POSIX LIBRARY malloc() k_malloc() - Zephyr free() k_free() - Zephyr OPERATING SYSTEM 9 HARDWARE DEVICE

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time RUNTIME C / POSIX LIBRARY pthread_mutex_lock() pthread_mutex_unlock() OPERATING SYSTEM 10 HARDWARE DEVICE

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time RUNTIME C / POSIX LIBRARY sched_yield(); FUTEX / MUTEX OPERATING SYSTEM 11 HARDWARE DEVICE

Benchmarking methodology THREAD_BENCH - Thread creation time - Thread join time HEAP_BENCH - Heap allocation time - Heap deallocation time MUTEX_BENCH - Mutex lock time - Mutex unlock time CTX_BENCH - Context switch time TIME MEASUREMENT clock_gettime() TIMING_INFO_PRE_READ() TIMING_INFO_OS_GET_TIME() 12

CPU Cycles i.mx RT1050 EVK with Zephyr OS Run to run variation Predictable results observed. No variations from run to run. TIMING_INFO_PRE_READ() used to record elapsed time. 13

CPU Cycles i.mx 6UL EVK with Linux BSP Run to run variation 14 Results varies from run to run, depending on what the OS is doing behind the scenes. Used clock_get_time() to record the elapsed time.

Performance comparison 15 OS Zephyr OS 1.11.99 Linux BSP 4.9.88- imx_4.9.88_2.0.0_ga i.mx 6UL EVK Arm Cortex A7 Difference (x times) Board Name i.mx RT1050 EVK - Arm Cortex M7 CPU Cores 1 1 - Core Frequency (MHz) 600 528 - Average heap malloc time (cycles) 1001 11499 11x Average heap free time (cycles) 1126 4870 4x Average pthread_mutex_lock time (cycles) 53 799 15x Average pthread_mutex_unlock time (cycles) 83 818 10x Average pthread_create time (cycles) 719 85478 118x Average pthread_join time (cycles) 1702 89219 52x Average Context switch time (cycles) 47 1284 27x The average time is calculated in cycles (lower is better). Zephyr OS running on the i.mx RT1050 presents a significant improvement in all time cycles compared to the Linux BSP + i.mx 6UL EVK.

Conclusions The performance analysis was done by running custom microbenchmarks on two different hardware & software platforms. Benchmarks were developed around a common API to have comparable results. i.mx RT1050 EVK with Zephyr OS performs significantly better than i.mx 6UL with Linux BSP when doing the same tasks. 16

NXP Platforms supported by Zephyr OS NXP Boards MIMXRT1050-EVKB MIMXRT1060-EVK FRDM-K64F FRDM-KL25Z FRDM-KW41Z Hexiwear LPC54114 (M0 Core) LPC54114 (M4 Core) Partner boards: UDOO Neo Full (with i.mx 6SoloX - Arm Cortex-M4 Core only) Colibri imx7 (i.mx7 SoC - Arm Cortex-M4 Core only) www.nxp.com/zephyr 17

Thank You! 18