[Libre-soc-bugs] [Bug 352] virtual (dependency-tracked) regfile (cache) needed
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Fri Oct 30 22:24:31 GMT 2020
https://bugs.libre-soc.org/show_bug.cgi?id=352
--- Comment #6 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #5)
> (In reply to Luke Kenneth Casson Leighton from comment #4)
> > https://groups.google.com/g/comp.arch/c/vdgvrYGoxTM
> >
> > need help, asked on comp.arch :)
>
> Google finally fixed Google Groups so it's archivable on archive.org!
bout time, it's big enough and dignificant enough, good for them.
so after going round the houses a bit on comp.arch it looks like a counter
and/or bitfield per reg on WaW is the way to go. as it is r9-r9 or r3-r3 the
number of columns i *think* only need be 1 i.e. it is a WaW vector more than it
is a matrix.
allocating an entirely new virtual row in the FU-REGs per newly-discovered WaW
conflict gives us a safe rollback/shadow-commit even when faced with WaW
hazards.
the FU-REGs itself stores all Write Hazards and by ORing all write hazards
together down the columns we get a "Write Hazard Vector".
this can be ANDed with our instruction's write reg target to tell us that a WaW
exists.
normally (in the 6600) this would be an indication to issue to "stall". we
instead use this to increment that reg's "rename" counter.
this just leaves a multi-issue-capable method of transmitting and marshalling
read/write regfile ports and addresses. which is the bit i am still going
"hmmm" on.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list