[libre-riscv-dev] GPU design

lkcl lkcl at libre-riscv.org
Wed Dec 5 13:06:25 GMT 2018


right.  something just went "click" in the past 30 minutes, i think it
was the diagram from slide 11 here:
https://slideplayer.com/slide/9776709/

i suddenly realised that the combination of each ROB line plus the
reservation station is *directly* equivalent to a "scoreboard" line.

scoreboard:

* name
* op
* busy
* dest reg
* src reg1
* src reg2
* func unit producing value Qi
* func unit producing value Qj
* src reg has value Ri y/n
* src reg has value Rj y/n

equivalence:

* op: ROB "opcode"
* busy: ROB "completed y/n"
* dest reg: ROB "dest reg"
* src reg1: Reservation Station
* src reg2: Reservation Station
* func unit producing value Qi: Common Data Bus via ROB#
* func unit producing value Qj: Common Data Bus via ROB#
* src reg has value Ri y/n: Reservation Station / ROB has ROB# instead of value
* src reg has value Rj y/n: Reservation Station / ROB has ROB# instead of value

however, they're *not* directly equivalent, because in scoreboarding
there's absolutely no way to "roll back" operations.  you commit to
the operation and you better hope nothing goes wrong (like an
exception).

i think, really, by the time scoreboarding is modified and augmented
with all the additional pieces of the puzzle, you end up *with*
TS+ROB.

l.



More information about the libre-riscv-dev mailing list