Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

557 users

0 votes
Since the ROB is a FIFO-Buffer we need to put new entries at the bottom of the table.
In WB I move the value of the topmost Entry in the ROB to the given Register and set the bsy-flag to 0

So far so good

Now I want to add a new Entry.
But of course I can't put that one on the top
So my question is, if I need to move all Entries one up or if I need to wait till the whole ROB is empty so I can put new Entries in there.

Of course the assumption is that the ROB is full at the beginning,
in * TF "Emb. Sys. and Rob." by (250 points)

1 Answer

+2 votes
 
Best answer

Yes, the values of the valid entries should move up as you suggest. However, the ROB is a FIFO implemented on top of an array and there are different implementations for this. The one you have in mind assumes that the head of the FIFO is always at index 0 which is often called a fall-through buffer. There is also a circular buffer that maintains a head and tail pointer as well as a status flag that tells us whether the FIFO is empty or not. 

If you are interested in more details about FIFO buffer implementations, you may have a look at https://es.cs.uni-kl.de/publications/datarsg/ScBR22.pdf which even implements virtual buffers in terms of a single one. But it also discusses the implementation of simple buffers.

by (170k points)
selected by
Imprint | Privacy Policy
...