[Libre-soc-dev] new svp64 page

Cole Poirier colepoirier at gmail.com
Thu Dec 10 21:21:45 GMT 2020


On Thu, Dec 10, 2020 at 12:54 PM Luke Kenneth Casson Leighton
<lkcl at lkcl.net> wrote:
>
> On 12/10/20, Jacob Lifshay <programmerjake at gmail.com> wrote:
> > On Thu, Dec 10, 2020, 10:07 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> > wrote:
> >
> > For implementing average,
> > we could encode that by repurposing xor (or some other bitwise op) with
> > saturation to instead mean averaging add.
>
> ah now in light of the above that makes sense.  reuse opcode space
> rather than allocate new ones.
>
> except... i was thinking in this particular case, actually adding avg
> *to* OpenPOWER v3.N actually has a reasonable justification: reduction
> of the SIMD post-cleanup code size.
>
> it puzzles me that there's all this wonderful powerful SIMD ops yet
> the scalar ops, absolutely crucial to do cleanup of non-aligned
> multiples of the SIMD size, are left without corresponding ops!

I've been doing some research on hardware accelerated instructions,
and the understanding I've come to is that we are taking an
Application Specific Instruction Processor (ASIP)-like approach, but
unlike many ASIPs we are absolutely not going down the CISC, VLIW, or
so application specific that it compromises the performance of the cpu
routes.

It's an ASIP that is the CPU, it's just small extensions to the
existing CPU, some extra 'routines' that share the regular mul and
logical etc FUs, but also use new trig, pixel, and other special
circuits that massively speed up those operations that would take many
more cycles to 'emulate' in software, i.e. just doing it via ADDs and
MULs?

I've seen a few papers where they take the approach of trying to reuse
hardware used by one application specific op, in others as well,
sharing as much of the circuitry as possible to minimize area and
waste. This is what we are doing right? That's my understanding from
reading the Nyuzi Raster paper, and paying attention to our list and
bug tracker. I feel like I'm still missing some crucial details
however, so if anyone sees what I'm missing or misunderstanding I
would appreciate your insight and explanation.

Cole



More information about the Libre-soc-dev mailing list