Instruktionsanordnung

This commit is contained in:
Marco Ammon 2020-06-27 13:06:29 +02:00
parent 36d62f60cb
commit dbc85caedd

View File

@ -365,5 +365,32 @@
\end{itemize}
\end{itemize}
\end{enumerate}
\section{Instruktionsanordnung}
\begin{itemize}
\item Abhänigkeits-DAG:\begin{itemize}
\item Betrachtung pro Grundblock
\item Knoten: Instruktion
\item Kante: Datenabhängigkeit zwischen zwei Instruktionen:\begin{itemize}
\item Flussabhängigkeit (\enquote{read after write})
\item Ausgabeabhängigkeit (\enquote{write after write})
\item Antiabhängigkeit (\enquote{write after read})
\end{itemize}
\end{itemize}
\item Ausführungszeit (\enquote{ExecTime}) einer Instruktion: Zeit bis Instruktion durch alle Stufen der Pipeline gewandert ist
\item Latenz (\enquote{Latency}) einer Instruktion: Zeit, die Instruktion bis zur Ausführung warten muss
\item Verzögerung (\enquote{Delay}) einer Instruktion: Zeit bis alle davon abhängigen Instruktionen ausgeführt wurden:
\begin{equation*}
\mathrm{Delay}(n) = \begin{cases*}
\mathrm{ExecTime}(n) & falls $n$ Blattknoten\\
\max_{m\in \mathrm{Succ}(n)} \left( \mathrm{Latency}(n, m) + \mathrm{Delay}(m)\right) & sonst
\end{cases*}
\end{equation*}
\item List-Scheduling: solange DAG Knoten enthält\begin{enumerate}
\item Wurzelknoten $w$ mit größtem Delay wählen
\item $w$ an Ausgabeliste anhängen
\item $w$ aus DAG entfernen
\end{enumerate}
\end{itemize}
%\printbibliography
\end{document}