bug 1244: describe ddffirst details
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 9 Jan 2024 10:59:37 +0000 (10:59 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 9 Jan 2024 10:59:37 +0000 (10:59 +0000)
conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex

index c739b437759e3c5eb8503d87377d73d8d429b728..06a73fe60533445e743de180e977df5a55f2adee 100644 (file)
@@ -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}