bug 1244: add slide for describing load/store fault-first
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 8 Jan 2024 11:41:09 +0000 (11:41 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 8 Jan 2024 11:41:11 +0000 (11:41 +0000)
conferences/fosdem2024/fosdem2024_ddffirst/fosdem2024_ddffirst.tex

index a76f7e537f1bfc888e380c062f6d5611930e493d..f41b20c4c4011cb9767c86238b8cebc6f825f2aa 100644 (file)
@@ -126,6 +126,36 @@ function op\_cmpi(BA, RA, SI) # cmpi not vector-cmpi!
   \end{itemize}
 \end{frame}
 
+\frame{\frametitle{Load/Store Fault-First}
+       
+       \begin{itemize}
+               \item Problem: vector load and store can cause a page fault
+               \item Solution: a protocol that allows optional load/store
+               \item instruction \textit{requests} a number of elements
+               \item instruction \textit{informs} the number actually loaded
+               \item first load/store is not optional     
+       \end{itemize}
+}
+
+\begin{frame}[fragile]
+       \frametitle{Data-Dependent Fail-First}
+       
+       \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; \}
+       \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{Additional Simple-V features}