[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] another compiler oddity



Hi Yashi,

Yasushi SHOJI wrote:

> one of my co-worker found this.  in a flat funciton, accessing block
> ram is _slower_ thank dram.  if you make inner loop a function, block
> ram is faster as i expected.
> 
> any thoughts?

Interesting...   You want to be careful with tests like this - there 
could well be other factors.

AFAIK LMB/BRAM transactions are fixed at 2 cycles per access - it's 
deterministic.  Similarly, a cache access (hit) will also be 2 cycles.

Did you disable the instruction cache for this test?  Because microblaze 
cache is direct mapped, if you cross a particular power-of-two address 
boundary (ie the physical cache size) you may end up thrashing the 
icache, which would negatively impact the results.  The fact that you 
got different results with inline code vs a function call might support 
this interpretation.

Also, how different were the results, and how repeatable?

Cheers,

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/