gnu A8F Timing Benchmarks

ti.platforms.evmAM3359

Benchmark Cycles (1)
Interrupt latency 966
Hwi_enable 23
Hwi_disable 33
Hwi dispatcher prolog 826
Hwi dispatcher epilog 440
Hwi dispatcher 884
Hardware Interrupt to Blocked Task 1432
Hardware Interrupt to Software Interrupt 1025
Swi_enable 208
Swi_disable 19
Post Software Interrupt Again 96
Post Software Interrupt without Context Switch 223
Post Software Interrupt with Context Switch 297
Create a New Task without Context Switch 2666
Set a Task Priority without a Context Switch 460
Task_yield 539
Post Semaphore, No Waiting Task 111
Post Semaphore No Task Switch 416
Post Semaphore with Task Switch 491
Pend on Semaphore, No Context Switch 105
Pend on Semaphore with Task Switch 408
Clock_getTicks 44

(1) The benchmark application was built using BIOS.LibType_Custom with the following compiler options:

"-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard -mabi=aapcs -O3 -g -Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections -g -Dti_sysbios_Build_useHwiMacros -Dfar= -D__DYNAMIC_REENT__".

Timings were obtained using the evmAM3359 development board.

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

To maximize performance, all code and data memory sections are prefetched and locked into the L2 cache at startup.

Unlike other target benchmarks that are collected using flat memory simulators or hardware with zero wait-state memory and no cache, these A8F 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.