[Layout] Fixes

This commit is contained in:
Andre Meyering 2017-11-26 13:43:53 +01:00
parent b9ffd045b5
commit 852a1ccff9
Signed by: Andre
GPG key ID: 5A1BBB0FB1D4716B
4 changed files with 53 additions and 43 deletions

View file

@ -629,8 +629,8 @@ Es ist kein spezieller Hardware-Subtrahierer notwendig. Eine Subtraktion wird ü
\item Kleines $1\times 1$ im Binärsystem ist ein einfaches \code{UND}
\item Es gibt keine Überträge beim kleinen $1\times 1$ im Binärsystem
\item Bilden von Zwischensummen
\item keine mehrstelligen Überträge bei Addition von zwei Summanden
\item rechten Faktor beginnend mit niederwertigster Stelle abarbeiten, siehe \autoref{tbl:multi_rl}
\item Keine mehrstelligen Überträge bei Addition von zwei Summanden
\item Rechten Faktor beginnend mit niederwertigster Stelle abarbeiten, siehe \autoref{tbl:multi_rl}
\end{enumerate}
\end{paracol}
@ -665,7 +665,7 @@ Ein $n\times m$-Bit-\acf{PM}, bspw. ein $5\times 4$-Bit-\acl{PM} ist in \autoref
\end{figure}
\begin{Achtung}[frametitle={Hinweis zur Abbildung}]
Unbedingt auf die \enquote{0} als Eingang achten! Ansonsten gibt es in der Klausur punktabzug!
Unbedingt auf die \enquote{0} als Eingang achten! Ansonsten gibt es in der Klausur punktabzug! Bei unterschiedlicher Stellenanzahl sind Nullen aufzufüllen.
\end{Achtung}
\begin{Hinweis}
@ -680,25 +680,27 @@ Ein $n\times m$-Bit-\acf{PM}, bspw. ein $5\times 4$-Bit-\acl{PM} ist in \autoref
\item $n\cdot m$ ~~ \code{UND} mit jeweils 2 Eingängen $\Rightarrow$ $2\cdot n\cdot m$ Transistoren
\end{itemize}
\newpage % Nur für's Layout
\textit{Somit ergibt sich bei\ldots}
\begin{enumerate}%[leftmargin=0pt]
\item[\ldots] Verwendung eines \textbf{\acs{RC-PA}}:
\begin{itemize}[noitemsep]
\item[$\Rightarrow$] $n$-Bit-\acs{RC-PA}: ~ $18n-10$ Transistoren
\item[$\Rightarrow$] davon $m-1$: $(m-1)(18n-10)$ Transistoren = $18nm-18n-10m+10$ Transistoren
\item[$\Rightarrow$] Insgesamt: ~~~ $20nm-18n-10m+10$ Transistoren $\Rightarrow O(n)$
\item[$\Rightarrow$] Insgesamt: ~~~ $20nm-18n-10m+10$ Transistoren $\Rightarrow O(nm)$
\end{itemize}
\item[\ldots] Verwendung eines \textbf{\acs{CLA-PA}}
\begin{itemize}[noitemsep]
\item $n$-Bit-\acs{CLA-PA}: $\approx O(n\cdot 2^n)$
\item $\Rightarrow$ davon $m-1$: ~ $(m-1)\cdot O(n\cdot 2^n) = O(n\cdot m\cdot 2^n)$
\item $n$-Bit-\acs{CLA-PA}: $\approx O(n\cdot 2^n)$ \textit{(Achtung: eigentlich $O(n^2\cdot 4^n)$)}
\item[$\Rightarrow$] davon $m-1$: ~ $(m-1)\cdot O(n\cdot 2^n) = O(n\cdot m\cdot 2^n)$
\end{itemize}
\end{enumerate}
Hier bei verschieden großen Faktoren also besser $m>n$ bei \ac{CLA-PA}) für geringeren \acs{HW}-Aufwand.
Hier bei verschieden großen Faktoren also besser $m>n$ bei \ac{CLA-PA}) für einen geringeren \acs{HW}-Aufwand.
Demgegenüber bei Verwendung von \acs{RC-PA}: Besser $n>m$ für geringeren \acs{HW}-Aufwand. \todo{Besser umformulieren}
Demgegenüber sollte bei Verwendung von \acs{RC-PA} besser $n>m$ für geringeren \acs{HW}-Aufwand sein.
\subsubsection{Analyse: Zeitaufwand für die Multiplikation mit Paralleladdierer}
1 \acs{GLZ} für einstellige Multiplikation (\code{UND}-Gatter) sowie $(m-1)~\times$ Berechnungszeit($n$-Bit-\acs{PA})
@ -707,34 +709,37 @@ Demgegenüber bei Verwendung von \acs{RC-PA}: Besser $n>m$ für geringeren \acs{
\item Annahme: \acs{PA} sind $n$-Bit-\acs{RC-PA}. \newline
Berechnungszeit eines $n$-Bit-\acs{RC-PA}: $2n$ \acs{GLZ} \newline
Insgesamt: $1+(m-1)\cdot 2n=2nm-2n+1$ \acs{GLZ} \newline
Damit besser $n>m$ bei Verwendung von \acs{RC-PA} um geringeren Zeitaufwand zu bekommen.
Damit besser $n>m$ bei Verwendung von \acs{RC-PA}, um geringeren Zeitaufwand zu bekommen.
\item Annahme: \acs{PA} sind $n$-Bit-\acs{CLA-PA} \newline
Berechnungszeit eines $n$-Bit-\acs{CLA-PA}: $6$ \acs{GLZ} \newline
Insgesamt: $1 + (m-1)\cdot 6$ \acs{GLZ} $=6m-5$ \acs{GLZ} $=O(m)$ \newline
damit: besser $n>m$ bei Verwendung von \acs{CLA-PA}, um geringeren Zeitaufwand zu bekommen \newline
$\lightning$ zu großer \acs{HW}-Aufwand (wächst exponentiell mit $n$)
\end{enumerate}\todo{Kontrollieren...}
Damit besser $n>m$ bei Verwendung von \acs{CLA-PA}, um geringeren Zeitaufwand zu bekommen
\textcolor{red}{$\lightning$} zu großer \acs{HW}-Aufwand (wächst exponentiell mit $n$)
\end{enumerate}
\bigskip
\bigskip
\begin{Hinweis}[frametitle={Hinweis für die Klausur}]
Logarithmischen Aufwand für \acs{CLA-PA} auf \href{https://de.wikipedia.org/wiki/Paralleladdierer_mit_\%C3\%9Cbertragsvorausberechnung}{Wikipedia} nachschauen. Dies wird wahrscheinlich in der Klausur abgefragt! Unserer Variante hat exponentiellen Hardwareaufwand und konstanten Zeitaufwand. Die Variante auf \href{https://de.wikipedia.org/wiki/Paralleladdierer_mit_\%C3\%9Cbertragsvorausberechnung}{Wikipedia} nicht.
Den logarithmischen Aufwand für \acs{CLA-PA} auf \href{https://de.wikipedia.org/wiki/Paralleladdierer_mit_\%C3\%9Cbertragsvorausberechnung}{Wikipedia} nachschauen. Dies wird wahrscheinlich in der Klausur abgefragt! Unserer Variante hat exponentiellen Hardwareaufwand und konstanten Zeitaufwand. Die Variante auf \href{https://de.wikipedia.org/wiki/Paralleladdierer_mit_\%C3\%9Cbertragsvorausberechnung}{Wikipedia} nicht.
\end{Hinweis}
\subsection{Seriellmultiplizierer}
Motivation: Noch engere Anlehung an das schriftliche Multiplikationsverfahren, um den Aufwand für die Addierglieder gering zu halten.
\subsection{Seriellmultiplizierer} \index{Seriellmultiplizierer}
Motivation: Wir wollen eine noch engere Anlehung an das schriftliche Multiplikationsverfahren, um den Aufwand für die Addierglieder gering zu halten.
Siehe \autoref{fig:seriellmultiplizierer}.
\autoref{fig:seriellmultiplizierer} zeigt einen 5-Bit-\acl{SM}.
\begin{figure}[ht]
\centering
\includegraphics[width=13cm]{Bilder/Seriellmultiplizierer.png}
\includegraphics[width=15cm]{Bilder/Seriellmultiplizierer.png}
\caption{5-Bit Seriellmultiplizierer}
\label{fig:seriellmultiplizierer}
\end{figure}
\bigskip
\begin{Hinweis}
Vor dem ersten Takt müssen alle D-FF auf \code{0} gesetzt werden \newline
Vor dem ersten Takt müssen alle \acsp{D-FF} auf \code{0} gesetzt werden \newline
(\enquote{Reset-Eingang} oder ähnliches)
\end{Hinweis}
@ -746,7 +751,7 @@ Siehe \autoref{fig:seriellmultiplizierer}.
\textbullet~ & $n$ \code{UND} mit jeweils 2 Eingängen & $\Rightarrow$ 2 Transistoren \\
\textbullet~ & $2n$ \acsp{D-FF} & $\Rightarrow$ $12n$ Transistoren \\
\textbullet~ & $2m$-Bit-\acs{SR} & $\Rightarrow$ $12m$ Transistoren \\
\textbullet~ & \multicolumn{2}{l}{Takterzeugung (wird im folgenden nicht berücksichtigt)}
\textbullet~ & \multicolumn{2}{@{}l}{Takterzeugung (wird im folgenden nicht berücksichtigt)}
\end{tabular}
gesamt: $18n-10+2n+12n+12m=32n+12m-10$ Transistoren % stimmt so; verglichen mit 15er
@ -805,23 +810,24 @@ In \autoref{tbl:risc_cisc} werden \acs{RISC} und \acs{CISC} verglichen.
\begin{tabular}{cp{7.55cm}|cp{7.55cm}}
\multicolumn{2}{p{8.2cm}|}{\textbf{\acf{RISC}}}
& \multicolumn{2}{p{8.2cm}}{\textbf{\acf{CISC}}}
\\ \midrule
\\[1.5ex] \midrule
\multicolumn{2}{p{8.2cm}|}{für jeden Maschinensprachenbefehl gibt es eine \enquote{passende} Hardwareeinheit}
& \multicolumn{2}{p{8.2cm}}{manche Maschinensprachenbefehle werden als Mikroprogramm ausgeführt}
\\ \midrule
\\[1.5ex] \midrule
$\oplus$ & Einheit für Mikroprogrammausführung kann bei der Produktion entfallen \newline
(CPU weniger komplex)
& $\oplus$ & komfortables Programmieren in Maschinensprache \\
& $\oplus$ & komfortables Programmieren in Maschinensprache
\\[4.5ex]
$\ominus$ & \acs{CPU} wird komplex, falls die Forderung nach komplexen Befehlen in Maschinensprache realisiert, besteht.
& $\ominus$ & bei manchen Befehlen (welche als Mikroprogramm ausgeführt werden) ist die Bearbeitungszeit sehr groß und variabel.
\\
\\[1.5ex]
$\oplus$ & jeder Befehl kann in wenigen (und jeweils einer festen Zahl an) Taktzyklen ausgeführt werden.
& $\ominus$ & Mikroprogramme sind Software, komplex und fehleranfällig, ggf. Austausch der \acs{CPU} für \enquote{Bugfix} notwendig (vgl. \href{https://de.wikipedia.org/wiki/Pentium-FDIV-Bug}{Intel Pentium FDIV Bug})
\\
\\[1.5ex]
\end{tabular}
\medskip
\hspace*{-6mm}

View file

@ -22,7 +22,7 @@ Motivation für Sekundärspeicher: nicht-flüchtig, \dash der Speicherinhalt ble
\textbf{Anwendungen:}
\begin{itemize}[noitemsep]
\begin{itemize}
\item Programmcode (Betriebsystem, Anwendungsprogramme)
\item Nutzdaten
\item virtuelle Erweiterung des Speicherwerks (Swap-Datei/-Partition)
@ -33,6 +33,8 @@ Motivation für Sekundärspeicher: nicht-flüchtig, \dash der Speicherinhalt ble
Temporärer, flüchtiger, schneller Zwischenspeicher, um auf Informationen aus dem Hauptspeicher schneller zugreifen zu können.
\newpage % Für's Layout
Eigenschaften des Cache:
\begin{itemize}[noitemsep]
\item flüchtig
@ -52,7 +54,7 @@ Eigenschaften des Cache:
Verantwortlich dafür, dass der Cache Geschwindigkeitsvorteile bringen kann.
\begin{description}
\item[räumliche Lokalität] Wenn auf eine Adresse zugegriffen wird, wird auch auf naheliegende Adressen zugegriffen.
\item[zeitlich Lokalität] Die Zugriffe (auf nahe beieinanderliegene Adressen) erfolgen in relativ geringem zeitlichen Aufwand
\item[zeitliche Lokalität] Die Zugriffe (auf nahe beieinanderliegende Adressen) erfolgen in relativ geringem zeitlichen Aufwand
\end{description}
\medskip
\begin{Hinweis}
@ -83,14 +85,13 @@ Verantwortlich dafür, dass der Cache Geschwindigkeitsvorteile bringen kann.
\switchcolumn
\begin{tabular}{ll}
\textbf{Ziel}: & Hit-Rate $\rightarrow 1$ (nicht realistisch) \\
& Hit-Rate $\rightarrow 0$ \\
& Miss-Rate $\rightarrow 0$ \\
& Hit-Rate $\rightarrow$ systembedingtes Maximum \\
& \qquad (realistisch)
\end{tabular}
\end{paracol}
systembedingtes Maximum hängt ab von
Das systembedingte Maximum hängt ab von:
\begin{itemize}[noitemsep]
\item Lokalität des Zugriffsmusters
\item Größe (und Größenverhältnis) von Cache und \acl{HS}
@ -105,7 +106,7 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
\begin{description}
\item[kalter Cache]\index{Cache!kalter Cache} bei Betriebsbeginn ist der Cache leer
\item[sich erwärmender Cache]\index{Cache!erwärmender Cache} Während des Betriebs wird der Cache mit immer mehr Daten geladen und die Hit-Rate steigt.
\item[heißer Cache]\index{Cache!heißer Cache} Der Cache ist (nahezu) voll nach einer gewissen Betriebszeit. Die Hit-Rate erreicht das systembedingte Maximum.
\item[heißer Cache]\index{Cache!heißer Cache} Der Cache ist nach einer gewissen Betriebszeit (nahezu) voll. Die Hit-Rate erreicht das systembedingte Maximum.
\end{description}
\subsection{Cachearchitekturen}\index{Cache!Architektur}
@ -154,7 +155,7 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
Wie in \autoref{fig:cpu_cache_look_through} zu sehen, ist die CPU nur mit dem Cache und der \acl{HS} ebenfalls nur mit dem Cache verbunden.
CPU greift über den Cache auf den \acl{HS} zu:
Die \acs{CPU} greift über den Cache auf den \acl{HS} zu:
\begin{itemize}[leftmargin=5mm]
\item[$\ominus$] $t_\text{Miss}=t_\text{Cache}+t_\text{HS}$ \newline
@ -191,7 +192,7 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
\switchcolumn
\textsf{\textbf{Write-Through}}
Schreibzugriffe durch die \acs{CPU} findet im \acl{HS} statt. Parallel dazu müssen die Daten im Cache invalidiert (schlecht) oder ebenfalls geschrieben werden (gut).
Schreibzugriff durch die \acs{CPU} findet im \acl{HS} statt. Parallel dazu müssen die Daten im Cache invalidiert (schlecht) oder ebenfalls geschrieben werden (gut).
\begin{itemize}[leftmargin=5mm]
\item[$\oplus$] optimale Konsistenz der Daten
\item[$\ominus$] Schreiben nur in \acl{HS}-Geschwindigkeit möglich
@ -205,13 +206,13 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
\midrule
\textbf{Look-Through}
& $\oplus$ gute klassische Kombination, da die physische Gegebenheit vorhanden sind, um direktes Schreiben in Cache und Rückschreiben vom Cache in \acs{HS} zu ermöglichen
& $\oplus$ gute klassische Kombination, da die physische Gegebenheit vorhanden ist, um direktes Schreiben in Cache und Rückschreiben vom Cache in \acs{HS} zu ermöglichen
& $\ominus$ Kombination nicht möglich, da kein direkter Zugriff der \acs{CPU} auf \acs{HS} physisch gegeben ist.
\\ \midrule
\textbf{Look-Aside}
& $\ominus$ schlechte Kombination, da bei jedem Schreibzugriff der Bus zweimal belastet wird
& $\oplus$ gute klassische Kombination, da Schreibzugriffe parallel im \acs{HS} und Cache physisch gut machbar
& $\oplus$ gute klassische Kombination, da Schreibzugriffe parallel im \acs{HS} und Cache physisch gut machbar sind
\end{tabular}
\subsection{Cache-Aufbau}
@ -224,24 +225,25 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
\end{figure}
\begin{description}
\item[\acf{HSS}] gleich große Speicheranteile des Hauptspeichers. Eine \acs{HSS} sollte $2^m$ \acs{HSA} beinhalten, um eine einfache Umrechung von \acs{HSS}-Nummern und \acs{HSA} zu ermöglichen.
\item[\acf{HSS}] gleich große Speicheranteile des Hauptspeichers. Eine \acs{HSS} sollte $2^m$ \acfp{HSA} beinhalten, um eine einfache Umrechung von \acs{HSS}-Nummern und \acs{HSA} zu ermöglichen.
\item[\acf{CL}] Kopie einer \acl{HSS} im Cache
\item[Tag] Die um $m$ niederwertigsten Bit gekürzte \acs{HSA}, welche der \acs{HSS}-Nummer entspricht.
\item[Status] Zustandsinfo zur Cache-Line, \zB Valid-Flag und weiter Zustandsinfos abhängig von Verdrängungsstrategie
\item[Valid-Flag] Die Daten werden im Cache geändert und müssen noch in den \acs{HS} zurückgeschrieben werden (nur bei Write-Back-Schreibstrategie)
\end{description}
\subsection{vollassoziativer Cache}
\subsection{Vollassoziativer Cache}
Jede \acl{HSS} kann in jeder \acl{CL} eingelagert werden (nicht gleichzeitig!)
\begin{itemize}[noitemsep]
\begin{itemize}
\item[$\Rightarrow$] bei jedem Zugriff auf eine \acf{HSA} muss überprüft werden, ob die gekürzte \acs{HSA} einem der Tags von validen \acl{CL} entspricht!
\item[$\Rightarrow$] Vergleichen der gekkürzten \acs{HSA} mit allen Tags (von validen \acs{CL})
\item[$\Rightarrow$] Vergleichen der gekürzten \acs{HSA} mit allen Tags (von validen \acs{CL})
\end{itemize}
Wie kann verglichen werden? Welche Möglichkeiten des Vergleichs gibt es?
\begin{itemize}[noitemsep]
\item sequentiell $\Rightarrow$ Nachteil: erhöhte Zugriffszeit
\begin{itemize}
\item Sequentiell $\Rightarrow$ Nachteil: erhöhte Zugriffszeit
\item Parallel $\Rightarrow$ gleichzeitiges Vergleichen der angelegten (gekürzten) \acs{HSA} mit allen Tags über jeweils einen eigenen Komparator in jeder \acs{CL}. \newline
Nachteil: \acl{HW}-Aufwand für Komparator in jeder \acs{CL}.
\end{itemize}
@ -305,7 +307,7 @@ Somit ergibt sich als Schaltnetz für einen 4-Bit-Komparator die \autoref{fig:n_
\acs{HW}-Aufwand für einen kaskadierbaren 1-Bit-Komparator
\begin{itemize}[noitemsep]
\item[] HW: 42 Transistoren
\item[] Zeit: 2\acs{GLZ}
\item[] Zeit: 2 \acs{GLZ}
\end{itemize}
@ -314,7 +316,7 @@ Im Cache reicht der Vergleich auf Gleichheit aller Ziffern parallel:
\begin{itemize}[noitemsep]
\item 2 $n$-Bit-Zahlen: $n$ Äquivalenzgatter und 1 \code{UND} mit $n$ Eingängen. (vergleiche \autoref{fig:cache_komparator_3})
$\Rightarrow$ 7n Transistoren HW-Aufwand
$\Rightarrow$ $7n$ Transistoren HW-Aufwand
$\Rightarrow$ 3\acs{GLZ} Zeitaufwand
$\Rightarrow$ 3 \acs{GLZ} Zeitaufwand
\end{itemize}\todo{Formatieren, etc}

View file

@ -56,6 +56,7 @@
\acro{HA}{Halbaddierer}
\acro{HS}{Hauptspeicher}
\acro{HSA}{Hauptspeicheradresse}
\acrodefplural{HSA}[HSA]{Hauptspeicheradressen}
\acro{HSS}{Hauptspeicherseite}
\acro{HW}{Hardware}
\acro{LW}{Laufwerk}
@ -65,6 +66,7 @@
\acro{RC-PA}{Ripple-Carry-Paralleladdierer}
\acro{RISC}{Reduced Instruction Set Computer}
\acro{SA}{Serielladdierer}
\acro{SM}{Seriellmultiplizierer}
\acro{SR}{Schieberegister}
\acro{UNIVAC}{Universal Automatic Computer}
\acro{VA}{Volladdierer}