\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}