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)
