From: Luke Kenneth Casson Leighton Date: Tue, 9 Jan 2024 10:59:37 +0000 (+0000) Subject: bug 1244: describe ddffirst details X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e0cc6cc03613da1638cd60193c2a9ce8d5e5b4b2;p=libreriscv.git bug 1244: describe ddffirst details --- diff --git a/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex b/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex index c739b4377..06a73fe60 100644 --- a/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex +++ b/conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex @@ -130,24 +130,6 @@ function op\_cmpi(BA, RA, SI) # cmpi not vector-cmpi! \end{frame} - -\begin{frame}[fragile] -\frametitle{Data-Dependent-Fail-First in a nutshell} - -\begin{semiverbatim} - while srcstep < VL - 1 - RT[SS], Rc = DO (MAXS, RA[SS], RB) - if test (Rc) == FAIL: VL = srcstep + 1, break - -\end{semiverbatim} - -\begin{itemize} - \item Above is oversimplified: predication etc. left out - \item Scalar-scalar and scalar-vector and vector-vector now all in one - \item OoO may choose to push CMPIs into instr. queue (v. busy!) -\end{itemize} -\end{frame} - \frame{\frametitle{Load/Store Fault-First} \begin{itemize} @@ -164,6 +146,30 @@ function op\_cmpi(BA, RA, SI) # cmpi not vector-cmpi! \end{itemize} } +\begin{frame}[fragile] + \frametitle{Data-Dependent-Fail-First in a nutshell} + + \begin{semiverbatim} +function op\_cmpi(BA, RA, SI) # cmpi not vector-cmpi! +int i, id=0, ira=0; +for (i = 0; i < VL; i++) + CR[BA+id] <= compare(ireg[RA+ira], SI); + if (reg\_is\_vectorised[BA] ) \{ id += 1; \} + if (reg\_is\_vectorised[RA])  \{ ira += 1; \} + if test (CR[BA+id]) == FAIL: \{ VL = id + 1; break \} + \end{semiverbatim} + + \begin{itemize} + \item Parallelism still perfectly possible + ("hold" writing results until sequential post-analysis + carried out. Best done with OoO) + \item VL truncation can be inclusive or exclusive + (include or exclude a NULL pointer or a + string-end character, or overflow result) + \item + \end{itemize} +\end{frame} + \frame{\frametitle{Additional Simple-V features}