On 2/13/07, Neil Murphy <[EMAIL PROTECTED]> wrote:

I'm assuming the problem is in determining whether the FIFO is non-empty
in order to allow reads. Perhaps it is possible to only allow reads
every other cycle when the FIFO is below a watermark?

Not in this case.  We have a queue of memory addresses that we want to
push through the memory controller.  The requirement is to maximize
throughput, which means we have to maximize burst lengths, and of
course, we also have to maximize burst efficiency by pulling out one
address per cycle.

Anyhow, Howard and I brainstormed, he came up with a solution, and
he's working on testing it.  We'll see how that goes.  In the long
term, we may want a more elegant solution.  But for the moment, we
just need something that works.

One of my ideas is a sort of bidirectional fifo.  They're two fifos
paired up.  The left fifo is enqueued on the front end and dequeued on
the back end.  The idea here is to use a bit in the fifo data to
indicate that an entry is valid, meaning we go from having to compare
9-bit counters to having to look at a single data bit to see if we can
read.  The meaning of the valid bit depends on whether or not the fifo
has wrapped (if you don't get it, I can explain further).  The right
fifo is enqueued on the back end and dequeued on the front end.  The
left fifo starts out empty, and the right fifo starts out full.  Using
an entry in one fifo frees up an entry in the other.

We could make a lot of use of this, because there are a number of
cases where we have paired, balanced fifos.  Every situation where we
want to read from memory involves a request fifo and a response fifo,
and the number of entries going through one is equal to the number
going through the other.

The major challenge is that if the number of entries going through
each ever gets out of balance, or worse, if you ever want to reset the
fifo at an arbitrary point, then we have to find a way to clear every
entry, and that adds extra logic that may offset the benefits of what
we're doing.

--
Timothy Normand Miller
http://www.cse.ohio-state.edu/~millerti
Favorite book:  The Design of Everyday Things, Donald A. Norman, ISBN
0-465-06710-7
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to