[Libre-soc-isa] [Bug 905] create Scalar reg access encoding (SVP64-Single)

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Sep 11 14:41:54 BST 2022


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

--- Comment #11 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #10)
> (In reply to Jacob Lifshay from comment #8)
> 
> > i meant to saturate float to the range of those int types, not to convert to
> > an int and back. e.g. 23.5 saturating to u8's range is 23.5, but 300.25 goes
> > to 255.0.
> 
> *click*. using dest elwidth.

*not* using dest elwid (unless it's repurposed for this and not elwid when
saturation is enabled). if you have a f32 you may want to saturate to u16 range
with a f32 result...

>  i like it.
> is starting to encroach on the reserved space though.
> 
> if nothing else they can be added on top of those
> MODULO-FP operations.
> 
> (In reply to Jacob Lifshay from comment #9)
> > if you're working on the ldst-with-shift, 
> 
> heck no.  way too much else to do.
> 
> > 7 -- wasm mode -- rb indexes bytes -- exact process determined by SPRs (TBD)
> 
> SPRs controlling something as lowlevel and critical as LDST now requiring
> *five* 64-bit read ports and two writes? not a snowball in hell's chance
> that would get through the ISA WG, the IBM POWER Architects would take
> an extremely dim view of such costly operstions.

it's fine if they're somewhat more expensive, wasm ld/st isn't a standard ld/st
op. they are necessary for wasm performance though, unless you like a 30%
performance hit due to constantly needing several more instructions for each
ld/st?

> 
> ldst-with-shift is already pushing the limits.
> 
> you really do need to think through the regfile port allocation and
> Hazard Management implications, jacob,
> you can't just blithely throw features in without thinking through
> the micro-architectural implications.

those sprs can be assumed to rarely change, allowing them to be cached at the
ld/st alus and requiring a full pipeline flush each time they're changed --
that way they don't need dependency tracking or extra register read ports or a
pile of extra wires into the ld/st alus.

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


More information about the Libre-SOC-ISA mailing list