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

Re: [microblaze-uclinux] FSLFIFO



Hi John,

    Please dig out the code and send to me. I like to give it a try.

Thanks,

Simon

----- Original Message ----
From: John Williams <jwilliams@xxxxxxxxxxxxxx>
To: microblaze-uclinux@xxxxxxxxxxxxxx
Sent: Monday, March 24, 2008 3:47:15 PM
Subject: Re: [microblaze-uclinux] FSLFIFO

Hi Simon,

Simon Tam wrote:

>    I have only one FSL link in my design. I believe the tasklet in the
> driver loops around all 8 FIFOs however. So I changed the
> MAX_FSLFIFO_COUNT from 8 to 1 hoping this will improve the performance.
> But it seems that did not make any difference by looking at the object
> code. I still see the put statements for each of the 8 FSL links. And
> the performance did not improve. I wonder if there is a better way to
> make the link faster if I am only using one FIFO.

The performance issue is not related to the number of configured FSL
channels (that just saves you a bit of memory more than anything else),
instead it's just a limitation of the driver architecture and the
original FSL instruction semantics.

If you look at the code, we have to use non-blocking FSL operations, and
check the result each time.  This is slow.  Also, it's polled rather
than interrupt driven - that's slow and inefficient.

One of our students created an interrupt-driven version of the driver -
you hook the FSL channel's HAS_DATA signal to the interrupt controller -
but I'll have to dig it out.  The code needs some cleanup as well.  But,
  from memory the performance and latency is quite a lot better.

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/