phd-defense/slides/30_frontend/main.tex

51 lines
1.6 KiB
TeX

\section{A frontend model for the Cortex A72}
\begin{frame}{The Cortex A72}
\begin{itemize}
\item{} Low-power ARM CPU
\item{} CPU of the Raspberry Pi 4: easily available
\item{} Aarch64, NEON SIMD
\medskip{}
\item{} ARM CPUs not usually modeled!
\item{} Backend modeled by \palmed{}
\end{itemize}
\end{frame}
\begin{frame}
\centering
\includegraphics[width=0.9\textwidth]{A72_pipeline_diagram.svg}
\end{frame}
\begin{frame}{Manual model}
\begin{itemize}
\item Goal: manually craft a frontend model
\item Try to follow methods that can be automated
\item Propose a parametric model for future works, leaving question
marks on some sections
\end{itemize}
\end{frame}
\begin{frame}{Counting \uops{}}
For an instruction $i$, denote \alert{$\mucount{i}$} its number of \uops{}.
\begin{itemize}
\item{} For $k \in \nat$, construct (if possible) $\kerK_k$ a kernel:
\begin{itemize}
\item instruction $i$ + $k$ ``simple'' instructions (one \uop)
\item frontend-bound:
\[
\cyc{\kerK_k} = \dfrac{k + \mucount{i}}{3}
\]
\end{itemize}
\item{} For well-chosen $k_0$, we should have
\[
\cyc{\kerK_{k_0}} + \sfrac{1}{3} = \cyc{\kerK_{k_0+1}}
\]
\item{} Measure to verify
\bigskip
\item{} If so, \textbf{\[
\mucount{i} = 3 \cyc{\kerK_{k_0}} - k
\]}
\end{itemize}
\end{frame}