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

Cortex-A8 performance

I'm working an a project on a Texas Instruments AM3517 Cortex-A8 processor. I was seeing less than expected performance, and did a simple comparison with a Cortex-M3 processor. The M3 performance was more than twice as good as the A8(?!).

The test was a simple count to 100,000:

while (1)
{
    volatile uint32_t    i;
  
    dbg_PinSet(DBG_PIN_00);
    for ( i = 0; i < 100000; i++ )
    {
    }
    dbg_PinClear(DBG_PIN_00);
}

This is a bare metal system.  Timing was measured with a scope and the debug pin, and found to be about 40 ms on the A8 clocked at 600 MHz, and about 14 ms on the M3 clocked at 72 MHz.

The code on the A8 is running from the on chip 64K ram to remove cache and external memory effects.  Interrupts are disabled on both processors.

I'm relatively new to the A8, and suspect I'm missing something simple in setup somewhere.

Any pointers or help will be greatly appreciated.

Thanks,

-Rob

Parents
  • To wrap this up, I went back and tracked down some init code from TI Starterware v2.00.01.01 for the AM335X (different processor than the AM3517 I'm using but still A8, and mmu and cache are the same).

    Here are my results for the count to 100,000 test:

    On Chip Memory  branch prediction  
    disabled    enabled
    mmu, caches disabled:  49.5780 ms    43.6035 ms
    mmu enabled:  36.2767 ms    38.4381 ms
    mmu enabled, caches enabled:  1.54182 ms    1.00014 ms
    external DDR2 memory, 166 MHz  branch prediction  
    disabled    enabled
    mmu, caches disabled:  81.7507 ms    72.6937 ms
    mmu enabled:  68.8886 ms    60.4374 ms
    mmu enabled, caches enabled:  1.80018 ms    1.20018 ms

    Clearly, enabling the mmu, caches, and branch prediction was the answer I needed.

    Thanks to all who replied!

    -Rob

Reply
  • To wrap this up, I went back and tracked down some init code from TI Starterware v2.00.01.01 for the AM335X (different processor than the AM3517 I'm using but still A8, and mmu and cache are the same).

    Here are my results for the count to 100,000 test:

    On Chip Memory  branch prediction  
    disabled    enabled
    mmu, caches disabled:  49.5780 ms    43.6035 ms
    mmu enabled:  36.2767 ms    38.4381 ms
    mmu enabled, caches enabled:  1.54182 ms    1.00014 ms
    external DDR2 memory, 166 MHz  branch prediction  
    disabled    enabled
    mmu, caches disabled:  81.7507 ms    72.6937 ms
    mmu enabled:  68.8886 ms    60.4374 ms
    mmu enabled, caches enabled:  1.80018 ms    1.20018 ms

    Clearly, enabling the mmu, caches, and branch prediction was the answer I needed.

    Thanks to all who replied!

    -Rob

Children