\item Why?
Implementors need flexibility in vectorisation to optimise for
area or performance depending on the scope:
\item Why?
Implementors need flexibility in vectorisation to optimise for
area or performance depending on the scope:
Compilers also need flexibility in vectorisation to optimise for cost
of pipeline setup, amount of state to context switch
Compilers also need flexibility in vectorisation to optimise for cost
of pipeline setup, amount of state to context switch
\item How?
By marking INT/FP regs as "Vectorised" and
adding a level of indirection,
SV expresses how existing instructions should act
\item How?
By marking INT/FP regs as "Vectorised" and
adding a level of indirection,
SV expresses how existing instructions should act
- on [contiguous] blocks of registers, in parallel.\vspace{4pt}
+ on [contiguous] blocks of registers, in parallel, WITHOUT
+ needing new any actual extra arithmetic opcodes.
\item What?
Simple-V is an "API" that implicitly extends
existing (scalar) instructions with explicit parallelisation\\
\item What?
Simple-V is an "API" that implicitly extends
existing (scalar) instructions with explicit parallelisation\\
\item context-switch (LOAD/STORE multiple): 1-2 instructions
\item Compressed instrs further reduces I-cache (etc.)
\item Greatly-reduced I-cache load (and less reads)
\item context-switch (LOAD/STORE multiple): 1-2 instructions
\item Compressed instrs further reduces I-cache (etc.)
\item Greatly-reduced I-cache load (and less reads)
\item Modularity/Abstraction in both the h/w and the toolchain.
\item "Reach" of registers accessible by Compressed is enhanced
\item Modularity/Abstraction in both the h/w and the toolchain.
\item "Reach" of registers accessible by Compressed is enhanced