A8Fnv Timing Benchmarks

ti.platforms.evmAM3359

Benchmark Cycles (1)
Interrupt latency 728
Hwi_enable 12
Hwi_disable 20
Hwi dispatcher prolog 718
Hwi dispatcher epilog 442
Hwi dispatcher 794
Hardware Interrupt to Blocked Task 1171
Hardware Interrupt to Software Interrupt 881
Swi_enable 204
Swi_disable 42
Post Software Interrupt Again 82
Post Software Interrupt without Context Switch 208
Post Software Interrupt with Context Switch 274
Create a New Task without Context Switch 2042
Set a Task Priority without a Context Switch 308
Task_yield 388
Post Semaphore, No Waiting Task 91
Post Semaphore No Task Switch 326
Post Semaphore with Task Switch 419
Pend on Semaphore, No Context Switchi 102
Pend on Semaphore with Task Switch 355
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. These numbers are effected by varying amounts of cache filling depending on the dynamics of the cache and the previous function calls.