reduce number of wait states in ReservationStations2 by detecting
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 7 Nov 2021 13:14:05 +0000 (13:14 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 7 Nov 2021 13:14:05 +0000 (13:14 +0000)
commit1cd2eab9b74eb2b826f3dac292e57b291e6d1777
treedb7e5b16fc64f71467e2e322903aaa842b8d1c33
parent1a4ce85f335b82044a2ee70f299acb69b871041e
reduce number of wait states in ReservationStations2 by detecting
opportunities for sending (and receiving) data immediately.

the previous version was a 4-cycle FSM.  however it is perfectly
fine to detect, in the very first phase (as part of ACCEPTANCE),
if the ALU is already ready to accept.  effectively this combines
phase 1 and phase 2.  if the ALU was *not* ready then and only
then will a given FSM move to phase 2 (after buffering the data)

likewise, when data comes out of the ALU, there is an opportunity
to signal to the RS output that the data is in fact ready... *if*
the RS output was in fact waiting for it already.  again, this
combines phase 3 and phase 4.  again: if the RS output was not
ready, then a given FSM will move to phase 4 (again, after
buffering the data)
src/nmutil/concurrentunit.py