[Libre-soc-isa] [Bug 1023] crternlut/crbinlut analysis needed of CR regfile usage

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Mar 14 15:29:59 GMT 2023


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

--- Comment #1 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
for scalar use assuming that there is only one 32-bit CR, this is
pretty standard fare already: mtcr, mfcr. thus, for scalar i think
there will be no problem.

in TestIssuer the CR regfile is extremely weird: it is 4-bit ports
mostly but then combined to *unary masking* to create at least two
full 32-bit-wide ports that take read-enable (write-enable) on a
per-4-bit-field basis.
mfxcr is therefore a perfect match for this design, just pass the
incoming mask immediate directly to the regfile.

SVP64 gets complicated because the additional range (128 CR Fields)
means that there would be QTY 16of 32-bit CRs (or, implementors
could choose to make that QTY 8of 64-bit CRs).

thus unless the programmer happens to issue an instruction that
reads (then writes) to/from the same group of 8 CR Fields...

crternluti can be reduced down to 3-in 1-out by making it an
"overwrite". likewise crbinlut.

this does have the significant advantage of greatly reducing opcode
space, as well.

i will see if there is an existing Form.  drat i should have spotted
this 6+ months ago.

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


More information about the Libre-SOC-ISA mailing list