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

Re: [microblaze-uclinux] Bad uClinux performance on Spartan-2e.



Hi Leonid,

Please see my comments below:

Leonid wrote:

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
both cases.
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
busybox
(200K) takes several seconds to start while small "cat" launches
quickly.

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?

Regards,

John

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