[Libre-soc-dev] SVP64 bclrl
programmerjake at gmail.com
Thu Apr 7 05:19:06 BST 2022
On Wed, Apr 6, 2022 at 9:15 PM Jacob Lifshay <programmerjake at gmail.com> wrote:
> On Wed, Apr 6, 2022 at 9:02 PM lkcl <luke.leighton at gmail.com> wrote:
> > SVP64 Branches are specifically designed to spam
> > such an 8-way multi-issue Engine (having 8 Branch
> > Units) with a massive hit of *8* branches (one per
> > element) in a *single* clock cycle, with virtually no
> > modifications required to the Branch Units
> > themselves.
> > an Architect unfamiliar with SVP64 will at first have a bit of an "oink" moment at that, but once the SVP64 paradigm sinks in an epiphany lightbulb will start to glow.
> In other words, so we can have some semblance of efficiency, we need a
> SIMD branch unit...that basically does exactly what I described, just
> that conceptually it's running VL separate branches rather than 1
Another reason to treat branches internally like
vector-reduce-branches is that otherwise the branch-predictor in the
fetch pipeline has to predict exactly *how many* branches in a SVP64
branch will be taken, otherwise we'll stop the speculative shadow at
the wrong spot and basically every SVP64 branch will always be a
branch misprediction -- terrible.
More information about the Libre-soc-dev