[libre-riscv-dev] [Bug 101] IEEE754 pipeline "go_die" (Computation Unit Cancellation) needed

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Fri Aug 2 08:26:11 BST 2019


--- Comment #6 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
damn. first experiment to blur the lines between data and control: fail.

data is contained in the "Stage" API, and is passed through with a
call to nmoperator.eq, and is otherwise untouched and completely opaque
to the "pipeline" part that "handles" control and routing.

i intended to add cancel and mask to the *data*, and to break the
above rule by allowing the *control* side to inspect the data.

the problem comes when trying to stop CMOS gate-flipping, as we talked
about a few days ago, jacob.  with the data being both passed across
through registers *and* now effectively containing a "control" signal
(the mask), the only way to get the data to discern when data should
NOT be passed from pipeline register to pipeline register is to MODIFY
that data, EXCLUDING sending the "control" signal (the mask).

that would cause such a coding mess that i don't even want to try it,
especially when doing so breaks the separation between data and
control/routing in the first place.

so instead i will look at how to add the "mask" and "cancel" signals
to the *handling* side (PrevControl and NextControl), where, really,
it should have been in the first place.

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

More information about the libre-riscv-dev mailing list