This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Juno A57 Core Runs Slower Than A53 Core

Hi experts,

Recently, I'm trying to evaluate the code execution time when using the A53 core and the A57 core.

However, my result shows A53 core is much faster than the A57 core, which does not make sense to me so I want to share my case here to see if there is anything I missed.

Here are my testing code:

enterTime = read_cntpct_el0();
asm volatile("mrs %0, pmccntr_el0" : "=r" (enterPMU));

for (i=0; i<100000; i++) 
{
    asm volatile("mrs %0, pmcr_el0" : "=r" (controlPMU));
}

asm volatile("mrs %0, pmccntr_el0" : "=r" (finishPMU));
finishTime = read_cntpct_el0();

I used both timer counter 'CNTPCT_EL0' and cycle counter 'PMCCNTR_EL0' to evaluate the time for a core to execute the MRS instruction 100,000 times.

Both registers show that the A53 finishes the MRS instructions faster, here is what I get:

A57:
Time Counter: 0x1046d
Cycles Counter: 0xc3508

A53:
Time Counter: 0xb44d
Cycles Counter: 0x927d4

Time Counter = finishTime - enterTime.

Cycle Counter = finishPMU - enterPMU.

Also, I want to confirm that on the Juno r1 board, the A53 cores' have the MPIDR_EL1 register as 0x80000100 and 0x80000103.

Meanwhile, the A57 cores set the registers as 0x80000000 and 0x80000001. 

Please let me know if this incorrect.

Any advice or suggestion will be appreciated.

Simon Wan

  • Few things to check:

    1. You list only MPIDR of 2 A53, just want to make sure you are running all 4 or not ?

    2. Do you have any CPU DVFS active or are you running at default/boot frequencies ?

    3. Is this bare metal or on some OS ?