[Libre-soc-bugs] [Bug 737] in-order single-issue Power ISA 3.0 core

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Nov 1 00:07:58 GMT 2021


https://bugs.libre-soc.org/show_bug.cgi?id=737

--- Comment #4 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
continuing the investigation: the MultiCompUnits in soc/fu/compunits.py
need to be concurrent, using ReservationStations.

* ReservationStations needs to be enhanced so that "fake" ALU instances
  are created which connect self.n[i] and self.p[i] into
  self.fakealus[i]

* the "fake" ALUs need to be passed each to MultiCompUnits
  in order to present multiple access points to the same
  underlying pipeline

* also their index muxid has to go into the fake alu

* each "fake" ALU back in compunits.py is given a number
  alu0 alu1 mul0 mul1 mul2 etc to give the impression
  of having multiple concurrent units

* in core.py the selector (enable signal) is masked out
  by FU busy signals to ensure that already-allocated
  Compunits do not try to allocate twice.

therefore there is:

* one actual (real) ALU
* one ReservationStation per ALU
* multiple ReservationStations which are named
* the appearance of more FunctionUnits than actually exists
* but all results are "managed".

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list