[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Bad uClinux performance on Spartan-2e.
Please see my comments below:
I have Spartan-2e board here which resembles to certain extent
Spartan-3e starter kit. There are differences however - SDRAM instead of
DDR, older Microblaze core, higher CPU clock, EMAC instead Etherlite,
etc... I've attached auto-config.h files, generated by Petalogix BSP for
I managed to compile and run u-boot and uClinux for both boards.
However there is visible delay - 3-5 sec - when start any application
(like "ls" for instance) on my Spartan-2e target under uClinux. The
following observations have been done:
1) Delay depends on application's size: "ls" which in fact starts
(200K) takes several seconds to start while small "cat" launches
2) On Spartan-3e Starter Kit delay is also visible, but less than on my
Spartan-2e based HW. Note that the Starter Kit CPU clock is little bit
slower than mine (50MHz vs. 64MHz).
3) Simple memory read/write tests (I ran them from BRAM based code) show
that my board performs even better than starter kit which is to be
expected provided that clock is higher.
I sounds for me that uClinux kernel uses some resources (cashes?) which
are not well supported in older Spartan-2e architecture. Can somebody
give me an idea where to look?
There are a couple of critical differences in your systems that will be
contributing to this:
1. instruction and data caches are not present in your -2e system. Even
a small (2kb) instruction cache gives a huge performance improvement.
Data cache is not so critical.
2. HW integer multiplier. When synthesising mb-v2.00.a for Spartan2E
family, there is no HW multipler support. This will contribute to
maknig your system slower.
Looking at the datasheets for various MicroBlaze versions, it's not
clear whether you can force the use of logic to create HW multipler on
older FPGA families without embedded multiplers.
Point (1) is the almost certainly the main cause of your performance
problems, but (2) will also be having some impact.
Is there a reason you want to use the obsolete v2.00.a of MicroBlaze?
microblaze-uclinux mailing list
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/