A8Fnv Timing Benchmarks

ti.platforms.evmAM3359

Benchmark Cycles (1)
Interrupt latency 681
Hwi_enable 12
Hwi_disable 22
Hwi dispatcher prolog 713
Hwi dispatcher epilog 438
Hwi dispatcher 779
Hardware Interrupt to Blocked Task 1143
Hardware Interrupt to Software Interrupt 918
Swi_enable 202
Swi_disable 28
Post Software Interrupt Again 83
Post Software Interrupt without Context Switch 221
Post Software Interrupt with Context Switch 267
Create a New Task without Context Switch 2069
Set a Task Priority without a Context Switch 282
Task_yield 401
Post Semaphore, No Waiting Task 93
Post Semaphore No Task Switch 333
Post Semaphore with Task Switch 431
Pend on Semaphore, No Context Switchi 100
Pend on Semaphore with Task Switch 362
Clock_getTicks 28

(1) The benchmark application was built using BIOS.LibType_Custom with the following compiler options: "--endian=little -mv7A8 --abi=eabi --neon --float_support=vfpv3 -q -ms --opt_for_speed=2 --program_level_compile -o3".

Timings were obtained using the evmAM3359 development board.

The A8 core was running at 550MHz, with L1 & L2 caches enabled, and all code & data placed in OCMC0.

Furthermore, the first 64K bytes of OCMC0 memory are pulled in and locked into the L2 cache at startup to maximize cache performance.

Unlike other target benchmarks that are collected using flat memory simulators or hardware with zero wait-state memory and no cache, these A8Fnv numbers are collected on a real board with cache enabled and no-attempt to pre-fill the cache. These numbers are effected by varying amounts of cache filling depending on the dynamics of the cache and the previous function calls.