AM62Px MCU+ SDK  09.02.01
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
wkup-r5fss0-0 freertos
Toolchain ti-arm-clang
Board am62px-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 : 1007
Instruction Cache Access : 769
Number of Instructions Executed : 389890
Data Cache Miss : 1007
InstructionCacheMiss/sec : 1006999
Instructions/sec : 389890000
DataCacheMiss/sec : 769000
MemCopy Size : 50
Exec Time in Usec : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 968
Instruction Cache Access : 809
Number of Instructions Executed : 593390
Data Cache Miss : 968
InstructionCacheMiss/sec : 968000
Instructions/sec : 593390000
DataCacheMiss/sec : 809000
MemCopy Size : 100
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 917
Instruction Cache Access : 969
Number of Instructions Executed : 755184
Data Cache Miss : 917
InstructionCacheMiss/sec : 458500
Instructions/sec : 377592000
DataCacheMiss/sec : 484500
MemCopy Size : 200
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1122
Instruction Cache Access : 1251
Number of Instructions Executed : 1135437
Data Cache Miss : 1122
InstructionCacheMiss/sec : 561000
Instructions/sec : 567718500
DataCacheMiss/sec : 625500
MemCopy Size : 500
Exec Time in Usec : 3000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 900
Instruction Cache Access : 1285
Number of Instructions Executed : 2002335
Data Cache Miss : 900
InstructionCacheMiss/sec : 300000
Instructions/sec : 667445000
DataCacheMiss/sec : 428333
MemCopy Size : 750
Exec Time in Usec : 5000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1017
Instruction Cache Access : 1623
Number of Instructions Executed : 2952423
Data Cache Miss : 1017
InstructionCacheMiss/sec : 203400
Instructions/sec : 590484600
DataCacheMiss/sec : 324600
MemCopy Size : 1000
Exec Time in Usec : 5000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1156
Instruction Cache Access : 2385
Number of Instructions Executed : 3467601
Data Cache Miss : 1156
InstructionCacheMiss/sec : 231200
Instructions/sec : 693520200
DataCacheMiss/sec : 477000
MemCopy Size : 1250
Exec Time in Usec : 6000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1082
Instruction Cache Access : 2643
Number of Instructions Executed : 3839319
Data Cache Miss : 1082
InstructionCacheMiss/sec : 180333
Instructions/sec : 639886500
DataCacheMiss/sec : 440500
MemCopy Size : 1500
Exec Time in Usec : 8000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1461
Instruction Cache Access : 4058
Number of Instructions Executed : 5525335
Data Cache Miss : 1461
InstructionCacheMiss/sec : 182625
Instructions/sec : 690666875
DataCacheMiss/sec : 507250
MemCopy Size : 2048
Exec Time in Usec : 12000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1847
Instruction Cache Access : 6671
Number of Instructions Executed : 8573229
Data Cache Miss : 1847
InstructionCacheMiss/sec : 153916
Instructions/sec : 714435750
DataCacheMiss/sec : 555916
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 : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1329
Instruction Cache Access : 1268
Number of Instructions Executed : 427512
Data Cache Miss : 1329
InstructionCacheMiss/sec : 664500
Instructions/sec : 213756000
DataCacheMiss/sec : 634000
MemCopy Size : 50
Exec Time in Usec : 1000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1119
Instruction Cache Access : 1080
Number of Instructions Executed : 577012
Data Cache Miss : 1119
InstructionCacheMiss/sec : 1119000
Instructions/sec : 577012000
DataCacheMiss/sec : 1080000
MemCopy Size : 100
Exec Time in Usec : 2000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1031
Instruction Cache Access : 849
Number of Instructions Executed : 824925
Data Cache Miss : 1031
InstructionCacheMiss/sec : 515499
Instructions/sec : 412462500
DataCacheMiss/sec : 424500
MemCopy Size : 200
Exec Time in Usec : 3000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1221
Instruction Cache Access : 1249
Number of Instructions Executed : 1092852
Data Cache Miss : 1221
InstructionCacheMiss/sec : 407000
Instructions/sec : 364284000
DataCacheMiss/sec : 416333
MemCopy Size : 500
Exec Time in Usec : 4000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1774
Instruction Cache Access : 2465
Number of Instructions Executed : 2196190
Data Cache Miss : 1774
InstructionCacheMiss/sec : 443500
Instructions/sec : 549047500
DataCacheMiss/sec : 616250
MemCopy Size : 750
Exec Time in Usec : 6000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2157
Instruction Cache Access : 3188
Number of Instructions Executed : 3376415
Data Cache Miss : 2157
InstructionCacheMiss/sec : 359500
Instructions/sec : 562735833
DataCacheMiss/sec : 531333
MemCopy Size : 1000
Exec Time in Usec : 7000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2140
Instruction Cache Access : 3848
Number of Instructions Executed : 3822753
Data Cache Miss : 2140
InstructionCacheMiss/sec : 305714
Instructions/sec : 546107571
DataCacheMiss/sec : 549714
MemCopy Size : 1250
Exec Time in Usec : 7000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1611
Instruction Cache Access : 3491
Number of Instructions Executed : 4862341
Data Cache Miss : 1611
InstructionCacheMiss/sec : 230142
Instructions/sec : 694620142
DataCacheMiss/sec : 498714
MemCopy Size : 1500
Exec Time in Usec : 9000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2191
Instruction Cache Access : 4338
Number of Instructions Executed : 5407615
Data Cache Miss : 2191
InstructionCacheMiss/sec : 243444
Instructions/sec : 600846111
DataCacheMiss/sec : 482000
MemCopy Size : 2048
Exec Time in Usec : 11000
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2485
Instruction Cache Access : 6828
Number of Instructions Executed : 7091380
Data Cache Miss : 2485
InstructionCacheMiss/sec : 225909
Instructions/sec : 644670909
DataCacheMiss/sec : 620727
All tests have passed!!

wkup-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 : 1362
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1121
Instruction Cache Access : 892
Number of Instructions Executed : 398224
Data Cache Miss : 1121
InstructionCacheMiss/sec : 823054
Instructions/sec : 292381791
DataCacheMiss/sec : 654919
MemCopy Size : 50
Exec Time in Usec : 1643
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1261
Instruction Cache Access : 940
Number of Instructions Executed : 602242
Data Cache Miss : 1261
InstructionCacheMiss/sec : 767498
Instructions/sec : 366550213
DataCacheMiss/sec : 572124
MemCopy Size : 100
Exec Time in Usec : 1732
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1026
Instruction Cache Access : 803
Number of Instructions Executed : 736510
Data Cache Miss : 1026
InstructionCacheMiss/sec : 592378
Instructions/sec : 425236720
DataCacheMiss/sec : 463625
MemCopy Size : 200
Exec Time in Usec : 2219
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1188
Instruction Cache Access : 934
Number of Instructions Executed : 1090461
Data Cache Miss : 1188
InstructionCacheMiss/sec : 535376
Instructions/sec : 491420009
DataCacheMiss/sec : 420910
MemCopy Size : 500
Exec Time in Usec : 3383
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1173
Instruction Cache Access : 1237
Number of Instructions Executed : 1984290
Data Cache Miss : 1173
InstructionCacheMiss/sec : 346733
Instructions/sec : 586547443
DataCacheMiss/sec : 365651
MemCopy Size : 750
Exec Time in Usec : 5290
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2058
Instruction Cache Access : 2973
Number of Instructions Executed : 3127838
Data Cache Miss : 2058
InstructionCacheMiss/sec : 389035
Instructions/sec : 591273724
DataCacheMiss/sec : 562003
MemCopy Size : 1000
Exec Time in Usec : 5559
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1807
Instruction Cache Access : 2678
Number of Instructions Executed : 3454512
Data Cache Miss : 1807
InstructionCacheMiss/sec : 325058
Instructions/sec : 621426875
DataCacheMiss/sec : 481741
MemCopy Size : 1250
Exec Time in Usec : 6219
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1546
Instruction Cache Access : 2502
Number of Instructions Executed : 4075249
Data Cache Miss : 1546
InstructionCacheMiss/sec : 248593
Instructions/sec : 655290078
DataCacheMiss/sec : 402315
MemCopy Size : 1500
Exec Time in Usec : 8106
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2456
Instruction Cache Access : 4173
Number of Instructions Executed : 5180228
Data Cache Miss : 2456
InstructionCacheMiss/sec : 302985
Instructions/sec : 639060942
DataCacheMiss/sec : 514803
MemCopy Size : 2048
Exec Time in Usec : 13563
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 3837
Instruction Cache Access : 8611
Number of Instructions Executed : 8891953
Data Cache Miss : 3837
InstructionCacheMiss/sec : 282902
Instructions/sec : 655603701
DataCacheMiss/sec : 634889
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 : 1634
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1344
Instruction Cache Access : 1219
Number of Instructions Executed : 434602
Data Cache Miss : 1344
InstructionCacheMiss/sec : 822521
Instructions/sec : 265974296
DataCacheMiss/sec : 746022
MemCopy Size : 50
Exec Time in Usec : 1919
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1511
Instruction Cache Access : 1338
Number of Instructions Executed : 618342
Data Cache Miss : 1511
InstructionCacheMiss/sec : 787389
Instructions/sec : 322220948
DataCacheMiss/sec : 697238
MemCopy Size : 100
Exec Time in Usec : 1934
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1111
Instruction Cache Access : 858
Number of Instructions Executed : 808785
Data Cache Miss : 1111
InstructionCacheMiss/sec : 574457
Instructions/sec : 418192864
DataCacheMiss/sec : 443640
MemCopy Size : 200
Exec Time in Usec : 2607
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1560
Instruction Cache Access : 1530
Number of Instructions Executed : 1131344
Data Cache Miss : 1560
InstructionCacheMiss/sec : 598388
Instructions/sec : 433963943
DataCacheMiss/sec : 586881
MemCopy Size : 500
Exec Time in Usec : 4109
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1561
Instruction Cache Access : 1687
Number of Instructions Executed : 2324631
Data Cache Miss : 1561
InstructionCacheMiss/sec : 379897
Instructions/sec : 565741299
DataCacheMiss/sec : 410562
MemCopy Size : 750
Exec Time in Usec : 4962
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1463
Instruction Cache Access : 2142
Number of Instructions Executed : 3014239
Data Cache Miss : 1463
InstructionCacheMiss/sec : 294840
Instructions/sec : 607464530
DataCacheMiss/sec : 431680
MemCopy Size : 1000
Exec Time in Usec : 6407
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2136
Instruction Cache Access : 3446
Number of Instructions Executed : 3806191
Data Cache Miss : 2136
InstructionCacheMiss/sec : 333385
Instructions/sec : 594067582
DataCacheMiss/sec : 537849
MemCopy Size : 1250
Exec Time in Usec : 8043
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 2463
Instruction Cache Access : 4382
Number of Instructions Executed : 4956686
Data Cache Miss : 2463
InstructionCacheMiss/sec : 306229
Instructions/sec : 616273281
DataCacheMiss/sec : 544821
MemCopy Size : 1500
Exec Time in Usec : 8529
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 1996
Instruction Cache Access : 3493
Number of Instructions Executed : 5586480
Data Cache Miss : 1996
InstructionCacheMiss/sec : 234025
Instructions/sec : 654998241
DataCacheMiss/sec : 409543
MemCopy Size : 2048
Exec Time in Usec : 11827
Iteration : 1
Task Calls : 500
Instruction Cache Miss : 3322
Instruction Cache Access : 7329
Number of Instructions Executed : 7504336
Data Cache Miss : 3322
InstructionCacheMiss/sec : 280882
Instructions/sec : 634508835
DataCacheMiss/sec : 619683
All tests have passed!!