[Libre-soc-bugs] [Bug 359] cut down on wires between decode and function units

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Jul 12 23:14:48 BST 2020


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

--- Comment #1 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
data structure for the static fields has been split out.  registers etc remain
in Decode1ToExecuteType.

what is now needed is two things:

1. to be able to specify a row filter function on PowerDecoder.  only the
subset of instructions that pass the row filter are put into switch statements

2. a *column* filter that selects a subset of PowerOp, dynamically.

the PowerOp subsetting is important to be able to cut down the amount of fields
created in the main instruction decode phase.

the most minimal subset needed would be the Function Unit (fn_unit). however
there are other fields needed (register numbers particularly implicit SPRs when
OP_B* are used) and also "privileged instruction detection" that mean it is not
such a small subset.

however specific fields such as the immediates, link register, update mode,
sign extend etc, all of these can be decoded at the Function Unit as needed
instead of globally in PowerDecode2.

when doing so it ia not necessary to re-decode the SPR, RA, RB etc fields,
hence the subsets.

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


More information about the libre-soc-bugs mailing list