AM62x MCU+ SDK  09.02.00
Memcopy benchmarking demo

Introduction

This application, internally called as AUTOSAR benchmarking application is used for benchmarking several KPIs such as:

  • I-cache miss
  • D-cache miss
  • memory copy performance on different cores
  • with options such as XIP, non-XIP
  • ability to run software on other cores
  • run with CCS or SBL etc.

Supported Combinations

Parameter Value
CPU + OS r5fss0-0 freertos
Toolchain ti-arm-clang
Boards am62x-sk, am62x-sk-lp, am62x-sip-sk
Example folder examples/kernel/freertos/memcpy_benchmark/

Steps to Run the Example

See Also

FreeRTOS

Sample Output

Shown below is a sample output when the benchmark application is run, Board: am62x-sk, Core: r5f

Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2693
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1405
Instruction Cache Access : 912
Number of Instructions Executed : 398497
Data Cache Miss : 1405
InstructionCacheMiss/sec : 521722
Instructions/sec : 147975120
DataCacheMiss/sec : 338655
MemCopy Size : 50
Exec Time in Usec : 3207
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1347
Instruction Cache Access : 919
Number of Instructions Executed : 602215
Data Cache Miss : 1347
InstructionCacheMiss/sec : 420018
Instructions/sec : 187781415
DataCacheMiss/sec : 286560
MemCopy Size : 100
Exec Time in Usec : 3409
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1163
Instruction Cache Access : 814
Number of Instructions Executed : 736783
Data Cache Miss : 1163
InstructionCacheMiss/sec : 341155
Instructions/sec : 216128776
DataCacheMiss/sec : 238779
MemCopy Size : 200
Exec Time in Usec : 4387
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1338
Instruction Cache Access : 922
Number of Instructions Executed : 1090857
Data Cache Miss : 1338
InstructionCacheMiss/sec : 304992
Instructions/sec : 248656713
DataCacheMiss/sec : 210166
MemCopy Size : 500
Exec Time in Usec : 6441
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1127
Instruction Cache Access : 934
Number of Instructions Executed : 1957388
Data Cache Miss : 1127
InstructionCacheMiss/sec : 174972
Instructions/sec : 303895047
DataCacheMiss/sec : 145008
MemCopy Size : 750
Exec Time in Usec : 9095
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1179
Instruction Cache Access : 1085
Number of Instructions Executed : 2991991
Data Cache Miss : 1179
InstructionCacheMiss/sec : 129631
Instructions/sec : 328970973
DataCacheMiss/sec : 119296
MemCopy Size : 1000
Exec Time in Usec : 10017
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1063
Instruction Cache Access : 1645
Number of Instructions Executed : 3342803
Data Cache Miss : 1063
InstructionCacheMiss/sec : 106119
Instructions/sec : 333712987
DataCacheMiss/sec : 164220
MemCopy Size : 1250
Exec Time in Usec : 11656
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1048
Instruction Cache Access : 1901
Number of Instructions Executed : 3991428
Data Cache Miss : 1048
InstructionCacheMiss/sec : 89910
Instructions/sec : 342435483
DataCacheMiss/sec : 163091
MemCopy Size : 1500
Exec Time in Usec : 14322
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1282
Instruction Cache Access : 2183
Number of Instructions Executed : 4990088
Data Cache Miss : 1282
InstructionCacheMiss/sec : 89512
Instructions/sec : 348421170
DataCacheMiss/sec : 152422
MemCopy Size : 2048
Exec Time in Usec : 23841
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1502
Instruction Cache Access : 4866
Number of Instructions Executed : 8565960
Data Cache Miss : 1502
InstructionCacheMiss/sec : 63000
Instructions/sec : 359295331
DataCacheMiss/sec : 204102
All tests have passed!!

Board: am62x-sk-lp, Core: r5f

Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2724
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1420
Instruction Cache Access : 899
Number of Instructions Executed : 398349
Data Cache Miss : 1420
InstructionCacheMiss/sec : 521292
Instructions/sec : 146236784
DataCacheMiss/sec : 330029
MemCopy Size : 50
Exec Time in Usec : 3253
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1413
Instruction Cache Access : 934
Number of Instructions Executed : 602215
Data Cache Miss : 1413
InstructionCacheMiss/sec : 434368
Instructions/sec : 185126037
DataCacheMiss/sec : 287119
MemCopy Size : 100
Exec Time in Usec : 3449
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1196
Instruction Cache Access : 858
Number of Instructions Executed : 736919
Data Cache Miss : 1196
InstructionCacheMiss/sec : 346767
Instructions/sec : 213661641
DataCacheMiss/sec : 248767
MemCopy Size : 200
Exec Time in Usec : 4420
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1352
Instruction Cache Access : 914
Number of Instructions Executed : 1090811
Data Cache Miss : 1352
InstructionCacheMiss/sec : 305882
Instructions/sec : 246789819
DataCacheMiss/sec : 206787
MemCopy Size : 500
Exec Time in Usec : 6471
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1114
Instruction Cache Access : 945
Number of Instructions Executed : 1957388
Data Cache Miss : 1114
InstructionCacheMiss/sec : 172152
Instructions/sec : 302486169
DataCacheMiss/sec : 146036
MemCopy Size : 750
Exec Time in Usec : 9108
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1095
Instruction Cache Access : 1050
Number of Instructions Executed : 2991991
Data Cache Miss : 1095
InstructionCacheMiss/sec : 120223
Instructions/sec : 328501427
DataCacheMiss/sec : 115283
MemCopy Size : 1000
Exec Time in Usec : 10073
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1080
Instruction Cache Access : 1678
Number of Instructions Executed : 3342809
Data Cache Miss : 1080
InstructionCacheMiss/sec : 107217
Instructions/sec : 331858334
DataCacheMiss/sec : 166583
MemCopy Size : 1250
Exec Time in Usec : 11706
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1054
Instruction Cache Access : 1861
Number of Instructions Executed : 3991405
Data Cache Miss : 1054
InstructionCacheMiss/sec : 90039
Instructions/sec : 340970869
DataCacheMiss/sec : 158978
MemCopy Size : 1500
Exec Time in Usec : 14384
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1210
Instruction Cache Access : 2224
Number of Instructions Executed : 4990230
Data Cache Miss : 1210
InstructionCacheMiss/sec : 84121
Instructions/sec : 346929226
DataCacheMiss/sec : 154616
MemCopy Size : 2048
Exec Time in Usec : 23918
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1463
Instruction Cache Access : 4741
Number of Instructions Executed : 8566108
Data Cache Miss : 1463
InstructionCacheMiss/sec : 61167
Instructions/sec : 358144828
DataCacheMiss/sec : 198218
All tests have passed!!

Board: am62x-sip-sk, Core: r5f

Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 0
Number of instructions: 39
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 2656
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1320
Instruction Cache Access : 870
Number of Instructions Executed : 398354
Data Cache Miss : 1320
InstructionCacheMiss/sec : 496987
Instructions/sec : 149982680
DataCacheMiss/sec : 327560
MemCopy Size : 50
Exec Time in Usec : 3191
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1304
Instruction Cache Access : 912
Number of Instructions Executed : 602237
Data Cache Miss : 1304
InstructionCacheMiss/sec : 408649
Instructions/sec : 188729865
DataCacheMiss/sec : 285803
MemCopy Size : 100
Exec Time in Usec : 3399
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1135
Instruction Cache Access : 797
Number of Instructions Executed : 736918
Data Cache Miss : 1135
InstructionCacheMiss/sec : 333921
Instructions/sec : 216804354
DataCacheMiss/sec : 234480
MemCopy Size : 200
Exec Time in Usec : 4370
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1294
Instruction Cache Access : 922
Number of Instructions Executed : 1090674
Data Cache Miss : 1294
InstructionCacheMiss/sec : 296109
Instructions/sec : 249582151
DataCacheMiss/sec : 210983
MemCopy Size : 500
Exec Time in Usec : 6432
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1062
Instruction Cache Access : 949
Number of Instructions Executed : 1957381
Data Cache Miss : 1062
InstructionCacheMiss/sec : 165111
Instructions/sec : 304319185
DataCacheMiss/sec : 147543
MemCopy Size : 750
Exec Time in Usec : 9085
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1115
Instruction Cache Access : 1095
Number of Instructions Executed : 2991990
Data Cache Miss : 1115
InstructionCacheMiss/sec : 122729
Instructions/sec : 329332966
DataCacheMiss/sec : 120528
MemCopy Size : 1000
Exec Time in Usec : 9937
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1025
Instruction Cache Access : 1381
Number of Instructions Executed : 3342802
Data Cache Miss : 1025
InstructionCacheMiss/sec : 103149
Instructions/sec : 336399516
DataCacheMiss/sec : 138975
MemCopy Size : 1250
Exec Time in Usec : 11553
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 969
Instruction Cache Access : 1552
Number of Instructions Executed : 3991268
Data Cache Miss : 969
InstructionCacheMiss/sec : 83874
Instructions/sec : 345474595
DataCacheMiss/sec : 134337
MemCopy Size : 1500
Exec Time in Usec : 14249
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1180
Instruction Cache Access : 2029
Number of Instructions Executed : 4990110
Data Cache Miss : 1180
InstructionCacheMiss/sec : 82812
Instructions/sec : 350207733
DataCacheMiss/sec : 142395
MemCopy Size : 2048
Exec Time in Usec : 23657
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1415
Instruction Cache Access : 4153
Number of Instructions Executed : 8565965
Data Cache Miss : 1415
InstructionCacheMiss/sec : 59813
Instructions/sec : 362090079
DataCacheMiss/sec : 175550
All tests have passed!!