AM62Ax 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 mcu-r5fss0-0 freertos
r5fss0-0 freertos
Toolchain ti-arm-clang
Boards am62ax-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,

mcu r5f core:

Memcpy Benchmarking for MSRAM memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 1
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 : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 969
Instruction Cache Access : 764
Number of Instructions Executed : 389860
Data Cache Miss : 969
InstructionCacheMiss/sec : 969000
Instructions/sec : 389860000
DataCacheMiss/sec : 764000
MemCopy Size : 50
Exec Time in Usec : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 956
Instruction Cache Access : 850
Number of Instructions Executed : 593379
Data Cache Miss : 956
InstructionCacheMiss/sec : 956000
Instructions/sec : 593379000
DataCacheMiss/sec : 850000
MemCopy Size : 100
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 910
Instruction Cache Access : 747
Number of Instructions Executed : 728511
Data Cache Miss : 910
InstructionCacheMiss/sec : 455000
Instructions/sec : 364255500
DataCacheMiss/sec : 373500
MemCopy Size : 200
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 983
Instruction Cache Access : 841
Number of Instructions Executed : 1082113
Data Cache Miss : 983
InstructionCacheMiss/sec : 491500
Instructions/sec : 541056500
DataCacheMiss/sec : 420500
MemCopy Size : 500
Exec Time in Usec : 4000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 822
Instruction Cache Access : 855
Number of Instructions Executed : 1949171
Data Cache Miss : 822
InstructionCacheMiss/sec : 205500
Instructions/sec : 487292750
DataCacheMiss/sec : 213750
MemCopy Size : 750
Exec Time in Usec : 5000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 907
Instruction Cache Access : 1004
Number of Instructions Executed : 2983315
Data Cache Miss : 907
InstructionCacheMiss/sec : 181400
Instructions/sec : 596663000
DataCacheMiss/sec : 200800
MemCopy Size : 1000
Exec Time in Usec : 5000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 819
Instruction Cache Access : 1231
Number of Instructions Executed : 3334291
Data Cache Miss : 819
InstructionCacheMiss/sec : 163800
Instructions/sec : 666858200
DataCacheMiss/sec : 246200
MemCopy Size : 1250
Exec Time in Usec : 5000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 786
Instruction Cache Access : 1512
Number of Instructions Executed : 3982721
Data Cache Miss : 786
InstructionCacheMiss/sec : 157200
Instructions/sec : 796544200
DataCacheMiss/sec : 302400
MemCopy Size : 1500
Exec Time in Usec : 7000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 898
Instruction Cache Access : 1960
Number of Instructions Executed : 4981020
Data Cache Miss : 898
InstructionCacheMiss/sec : 128285
Instructions/sec : 711574285
DataCacheMiss/sec : 280000
MemCopy Size : 2048
Exec Time in Usec : 12000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1160
Instruction Cache Access : 3928
Number of Instructions Executed : 8555920
Data Cache Miss : 1160
InstructionCacheMiss/sec : 96666
Instructions/sec : 712993333
DataCacheMiss/sec : 327333
All tests have passed!!
Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 1
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 : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1147
Instruction Cache Access : 909
Number of Instructions Executed : 399352
Data Cache Miss : 1147
InstructionCacheMiss/sec : 1147000
Instructions/sec : 399352000
DataCacheMiss/sec : 909000
MemCopy Size : 50
Exec Time in Usec : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1051
Instruction Cache Access : 784
Number of Instructions Executed : 556188
Data Cache Miss : 1051
InstructionCacheMiss/sec : 1051000
Instructions/sec : 556188000
DataCacheMiss/sec : 784000
MemCopy Size : 100
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1001
Instruction Cache Access : 849
Number of Instructions Executed : 801227
Data Cache Miss : 1001
InstructionCacheMiss/sec : 500499
Instructions/sec : 400613500
DataCacheMiss/sec : 424500
MemCopy Size : 200
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 952
Instruction Cache Access : 977
Number of Instructions Executed : 1065900
Data Cache Miss : 952
InstructionCacheMiss/sec : 476000
Instructions/sec : 532950000
DataCacheMiss/sec : 488500
MemCopy Size : 500
Exec Time in Usec : 4000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1080
Instruction Cache Access : 1235
Number of Instructions Executed : 2262393
Data Cache Miss : 1080
InstructionCacheMiss/sec : 270000
Instructions/sec : 565598250
DataCacheMiss/sec : 308750
MemCopy Size : 750
Exec Time in Usec : 4000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 985
Instruction Cache Access : 1282
Number of Instructions Executed : 2952018
Data Cache Miss : 985
InstructionCacheMiss/sec : 246250
Instructions/sec : 738004500
DataCacheMiss/sec : 320500
MemCopy Size : 1000
Exec Time in Usec : 6000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1049
Instruction Cache Access : 1572
Number of Instructions Executed : 3635131
Data Cache Miss : 1049
InstructionCacheMiss/sec : 174833
Instructions/sec : 605855166
DataCacheMiss/sec : 262000
MemCopy Size : 1250
Exec Time in Usec : 7000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 897
Instruction Cache Access : 2080
Number of Instructions Executed : 4755039
Data Cache Miss : 897
InstructionCacheMiss/sec : 128142
Instructions/sec : 679291285
DataCacheMiss/sec : 297142
MemCopy Size : 1500
Exec Time in Usec : 7000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 888
Instruction Cache Access : 2167
Number of Instructions Executed : 5439723
Data Cache Miss : 888
InstructionCacheMiss/sec : 126857
Instructions/sec : 777103285
DataCacheMiss/sec : 309571
MemCopy Size : 2048
Exec Time in Usec : 10000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 913
Instruction Cache Access : 3412
Number of Instructions Executed : 7196748
Data Cache Miss : 913
InstructionCacheMiss/sec : 91300
Instructions/sec : 719674800
DataCacheMiss/sec : 341200
All tests have passed!!

r5f core:

Memcpy Benchmarking for MSRAM memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 39
Number of Instructions: 53
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 1372
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1271
Instruction Cache Access : 398370
Number of Instructions Executed : 398384
Data Cache Miss : 857
InstructionCacheMiss/sec : 926384
Instructions/sec : 290367346
DataCacheMiss/sec : 624635
MemCopy Size : 50
Exec Time in Usec : 1633
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1230
Instruction Cache Access : 601931
Number of Instructions Executed : 601945
Data Cache Miss : 892
InstructionCacheMiss/sec : 753214
Instructions/sec : 368612982
DataCacheMiss/sec : 546233
MemCopy Size : 100
Exec Time in Usec : 1731
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1026
Instruction Cache Access : 736499
Number of Instructions Executed : 736513
Data Cache Miss : 803
InstructionCacheMiss/sec : 592720
Instructions/sec : 425484113
DataCacheMiss/sec : 463893
MemCopy Size : 200
Exec Time in Usec : 2224
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1214
Instruction Cache Access : 1090533
Number of Instructions Executed : 1090547
Data Cache Miss : 916
InstructionCacheMiss/sec : 545863
Instructions/sec : 490353866
DataCacheMiss/sec : 411870
MemCopy Size : 500
Exec Time in Usec : 3267
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 980
Instruction Cache Access : 1956962
Number of Instructions Executed : 1956976
Data Cache Miss : 1278
InstructionCacheMiss/sec : 299969
Instructions/sec : 599013161
DataCacheMiss/sec : 391184
MemCopy Size : 750
Exec Time in Usec : 4600
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1105
Instruction Cache Access : 2991423
Number of Instructions Executed : 2991437
Data Cache Miss : 1480
InstructionCacheMiss/sec : 240217
Instructions/sec : 650312391
DataCacheMiss/sec : 321739
MemCopy Size : 1000
Exec Time in Usec : 4997
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 952
Instruction Cache Access : 3342099
Number of Instructions Executed : 3342113
Data Cache Miss : 1452
InstructionCacheMiss/sec : 190514
Instructions/sec : 668823894
DataCacheMiss/sec : 290574
MemCopy Size : 1250
Exec Time in Usec : 5795
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 892
Instruction Cache Access : 3990559
Number of Instructions Executed : 3990573
Data Cache Miss : 1625
InstructionCacheMiss/sec : 153925
Instructions/sec : 688623468
DataCacheMiss/sec : 280414
MemCopy Size : 1500
Exec Time in Usec : 7204
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1118
Instruction Cache Access : 4989094
Number of Instructions Executed : 4989108
Data Cache Miss : 2839
InstructionCacheMiss/sec : 155191
Instructions/sec : 692546918
DataCacheMiss/sec : 394086
MemCopy Size : 2048
Exec Time in Usec : 11856
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1421
Instruction Cache Access : 8564404
Number of Instructions Executed : 8564418
Data Cache Miss : 4233
InstructionCacheMiss/sec : 119854
Instructions/sec : 722369939
DataCacheMiss/sec : 357034
All tests have passed!!
Memcpy Benchmarking for DDR memory:
Filling up the gBuffers
Sanity checking for PMU counters
Inst Cache Miss: 0
Inst Cache Access: 39
Number of Instructions: 53
Data Cache Miss: 0
Created MasterTask
Created all 15 slaveTasks
Master_task
Master_task -- start sending
MemCopy Size : 0
Exec Time in Usec : 1478
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1236
Instruction Cache Access : 407329
Number of Instructions Executed : 407343
Data Cache Miss : 955
InstructionCacheMiss/sec : 836265
Instructions/sec : 275604194
DataCacheMiss/sec : 646143
MemCopy Size : 50
Exec Time in Usec : 1598
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1134
Instruction Cache Access : 563776
Number of Instructions Executed : 563790
Data Cache Miss : 809
InstructionCacheMiss/sec : 709637
Instructions/sec : 352809762
DataCacheMiss/sec : 506257
MemCopy Size : 100
Exec Time in Usec : 1918
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1148
Instruction Cache Access : 808769
Number of Instructions Executed : 808783
Data Cache Miss : 841
InstructionCacheMiss/sec : 598540
Instructions/sec : 421680396
DataCacheMiss/sec : 438477
MemCopy Size : 200
Exec Time in Usec : 2259
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1148
Instruction Cache Access : 1073508
Number of Instructions Executed : 1073522
Data Cache Miss : 904
InstructionCacheMiss/sec : 508189
Instructions/sec : 475220008
DataCacheMiss/sec : 400177
MemCopy Size : 500
Exec Time in Usec : 3822
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1197
Instruction Cache Access : 2270043
Number of Instructions Executed : 2270057
Data Cache Miss : 1593
InstructionCacheMiss/sec : 313186
Instructions/sec : 593944793
DataCacheMiss/sec : 416797
MemCopy Size : 750
Exec Time in Usec : 4635
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1066
Instruction Cache Access : 2959640
Number of Instructions Executed : 2959654
Data Cache Miss : 1605
InstructionCacheMiss/sec : 229989
Instructions/sec : 638544552
DataCacheMiss/sec : 346278
MemCopy Size : 1000
Exec Time in Usec : 5487
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1100
Instruction Cache Access : 3642493
Number of Instructions Executed : 3642507
Data Cache Miss : 1752
InstructionCacheMiss/sec : 200473
Instructions/sec : 663843083
DataCacheMiss/sec : 319300
MemCopy Size : 1250
Exec Time in Usec : 6905
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1091
Instruction Cache Access : 4762435
Number of Instructions Executed : 4762449
Data Cache Miss : 1922
InstructionCacheMiss/sec : 158001
Instructions/sec : 689710209
DataCacheMiss/sec : 278349
MemCopy Size : 1500
Exec Time in Usec : 7796
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1018
Instruction Cache Access : 5446929
Number of Instructions Executed : 5446943
Data Cache Miss : 2808
InstructionCacheMiss/sec : 130579
Instructions/sec : 698684325
DataCacheMiss/sec : 360184
MemCopy Size : 2048
Exec Time in Usec : 10037
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1038
Instruction Cache Access : 7203928
Number of Instructions Executed : 7203942
Data Cache Miss : 3398
InstructionCacheMiss/sec : 103417
Instructions/sec : 717738567
DataCacheMiss/sec : 338547
All tests have passed!!