[libre-riscv-dev] Scoreboards

Luke Kenneth Casson Leighton lkcl at lkcl.net
Mon May 20 08:34:34 BST 2019


samuel i added a second section, which contains a modified version of
the Dependency Cell.  if you look closely at the Function Unit diagram
(11.4.8, p31), you'll see that the (current) instruction's local
RD_Pending vector is checked against the *GLOBAL* Write Pending
vector.  likewise local WR is checked against *GLOBAL* read.

this is *not* how the Dependency Cell (in the FU-Regs matrix version)
is shown: it's shown the *wrong way round*.  current instruction Dest
is checked against *another Dest* register for a hazard.   this would
be a WaW hazard.  and current instruction Src1/Src2 is checked against
*another src register*... which would indicate a RaR (read after read)
hazard.

i do not believe this to be correct.

so i modified the diagram accordingly, so that the Dest latch checks
against the *source* registers, and the src latches check against the
*dest* register, and i believe that this will give an indicator of RaW
and WaR hazards.

l.



More information about the libre-riscv-dev mailing list