[Layout] Fixes
This commit is contained in:
parent
b9ffd045b5
commit
852a1ccff9
4 changed files with 53 additions and 43 deletions
|
@ -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 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 Es gibt keine Überträge beim kleinen $1\times 1$ im Binärsystem
|
||||||
\item Bilden von Zwischensummen
|
\item Bilden von Zwischensummen
|
||||||
\item keine mehrstelligen Überträge bei Addition von zwei Summanden
|
\item Keine mehrstelligen Überträge bei Addition von zwei Summanden
|
||||||
\item rechten Faktor beginnend mit niederwertigster Stelle abarbeiten, siehe \autoref{tbl:multi_rl}
|
\item Rechten Faktor beginnend mit niederwertigster Stelle abarbeiten, siehe \autoref{tbl:multi_rl}
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{paracol}
|
\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}
|
\end{figure}
|
||||||
|
|
||||||
\begin{Achtung}[frametitle={Hinweis zur Abbildung}]
|
\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}
|
\end{Achtung}
|
||||||
|
|
||||||
\begin{Hinweis}
|
\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
|
\item $n\cdot m$ ~~ \code{UND} mit jeweils 2 Eingängen $\Rightarrow$ $2\cdot n\cdot m$ Transistoren
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\newpage % Nur für's Layout
|
||||||
|
|
||||||
\textit{Somit ergibt sich bei\ldots}
|
\textit{Somit ergibt sich bei\ldots}
|
||||||
\begin{enumerate}%[leftmargin=0pt]
|
\begin{enumerate}%[leftmargin=0pt]
|
||||||
\item[\ldots] Verwendung eines \textbf{\acs{RC-PA}}:
|
\item[\ldots] Verwendung eines \textbf{\acs{RC-PA}}:
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}[noitemsep]
|
||||||
\item[$\Rightarrow$] $n$-Bit-\acs{RC-PA}: ~ $18n-10$ Transistoren
|
\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$] 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}
|
\end{itemize}
|
||||||
|
|
||||||
\item[\ldots] Verwendung eines \textbf{\acs{CLA-PA}}
|
\item[\ldots] Verwendung eines \textbf{\acs{CLA-PA}}
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}[noitemsep]
|
||||||
\item $n$-Bit-\acs{CLA-PA}: $\approx O(n\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)$
|
\item[$\Rightarrow$] davon $m-1$: ~ $(m-1)\cdot O(n\cdot 2^n) = O(n\cdot m\cdot 2^n)$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{enumerate}
|
\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}
|
\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})
|
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
|
\item Annahme: \acs{PA} sind $n$-Bit-\acs{RC-PA}. \newline
|
||||||
Berechnungszeit eines $n$-Bit-\acs{RC-PA}: $2n$ \acs{GLZ} \newline
|
Berechnungszeit eines $n$-Bit-\acs{RC-PA}: $2n$ \acs{GLZ} \newline
|
||||||
Insgesamt: $1+(m-1)\cdot 2n=2nm-2n+1$ \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
|
\item Annahme: \acs{PA} sind $n$-Bit-\acs{CLA-PA} \newline
|
||||||
Berechnungszeit eines $n$-Bit-\acs{CLA-PA}: $6$ \acs{GLZ} \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
|
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
|
Damit besser $n>m$ bei Verwendung von \acs{CLA-PA}, um geringeren Zeitaufwand zu bekommen
|
||||||
$\lightning$ zu großer \acs{HW}-Aufwand (wächst exponentiell mit $n$)
|
|
||||||
\end{enumerate}\todo{Kontrollieren...}
|
\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}]
|
\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}
|
\end{Hinweis}
|
||||||
|
|
||||||
\subsection{Seriellmultiplizierer}
|
\subsection{Seriellmultiplizierer} \index{Seriellmultiplizierer}
|
||||||
Motivation: Noch engere Anlehung an das schriftliche Multiplikationsverfahren, um den Aufwand für die Addierglieder gering zu halten.
|
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]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=13cm]{Bilder/Seriellmultiplizierer.png}
|
\includegraphics[width=15cm]{Bilder/Seriellmultiplizierer.png}
|
||||||
\caption{5-Bit Seriellmultiplizierer}
|
\caption{5-Bit Seriellmultiplizierer}
|
||||||
\label{fig:seriellmultiplizierer}
|
\label{fig:seriellmultiplizierer}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
\begin{Hinweis}
|
\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)
|
(\enquote{Reset-Eingang} oder ähnliches)
|
||||||
\end{Hinweis}
|
\end{Hinweis}
|
||||||
|
|
||||||
|
@ -746,7 +751,7 @@ Siehe \autoref{fig:seriellmultiplizierer}.
|
||||||
\textbullet~ & $n$ \code{UND} mit jeweils 2 Eingängen & $\Rightarrow$ 2 Transistoren \\
|
\textbullet~ & $n$ \code{UND} mit jeweils 2 Eingängen & $\Rightarrow$ 2 Transistoren \\
|
||||||
\textbullet~ & $2n$ \acsp{D-FF} & $\Rightarrow$ $12n$ Transistoren \\
|
\textbullet~ & $2n$ \acsp{D-FF} & $\Rightarrow$ $12n$ Transistoren \\
|
||||||
\textbullet~ & $2m$-Bit-\acs{SR} & $\Rightarrow$ $12m$ 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}
|
\end{tabular}
|
||||||
|
|
||||||
gesamt: $18n-10+2n+12n+12m=32n+12m-10$ Transistoren % stimmt so; verglichen mit 15er
|
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}}
|
\begin{tabular}{cp{7.55cm}|cp{7.55cm}}
|
||||||
\multicolumn{2}{p{8.2cm}|}{\textbf{\acf{RISC}}}
|
\multicolumn{2}{p{8.2cm}|}{\textbf{\acf{RISC}}}
|
||||||
& \multicolumn{2}{p{8.2cm}}{\textbf{\acf{CISC}}}
|
& \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}|}{für jeden Maschinensprachenbefehl gibt es eine \enquote{passende} Hardwareeinheit}
|
||||||
& \multicolumn{2}{p{8.2cm}}{manche Maschinensprachenbefehle werden als Mikroprogramm ausgeführt}
|
& \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
|
$\oplus$ & Einheit für Mikroprogrammausführung kann bei der Produktion entfallen \newline
|
||||||
(CPU weniger komplex)
|
(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$ & \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.
|
& $\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.
|
$\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})
|
& $\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}
|
\end{tabular}
|
||||||
\medskip
|
\medskip
|
||||||
\hspace*{-6mm}
|
\hspace*{-6mm}
|
||||||
|
|
|
@ -22,7 +22,7 @@ Motivation für Sekundärspeicher: nicht-flüchtig, \dash der Speicherinhalt ble
|
||||||
|
|
||||||
\textbf{Anwendungen:}
|
\textbf{Anwendungen:}
|
||||||
|
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}
|
||||||
\item Programmcode (Betriebsystem, Anwendungsprogramme)
|
\item Programmcode (Betriebsystem, Anwendungsprogramme)
|
||||||
\item Nutzdaten
|
\item Nutzdaten
|
||||||
\item virtuelle Erweiterung des Speicherwerks (Swap-Datei/-Partition)
|
\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.
|
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:
|
Eigenschaften des Cache:
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}[noitemsep]
|
||||||
\item flüchtig
|
\item flüchtig
|
||||||
|
@ -52,7 +54,7 @@ Eigenschaften des Cache:
|
||||||
Verantwortlich dafür, dass der Cache Geschwindigkeitsvorteile bringen kann.
|
Verantwortlich dafür, dass der Cache Geschwindigkeitsvorteile bringen kann.
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[räumliche Lokalität] Wenn auf eine Adresse zugegriffen wird, wird auch auf naheliegende Adressen zugegriffen.
|
\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}
|
\end{description}
|
||||||
\medskip
|
\medskip
|
||||||
\begin{Hinweis}
|
\begin{Hinweis}
|
||||||
|
@ -83,14 +85,13 @@ Verantwortlich dafür, dass der Cache Geschwindigkeitsvorteile bringen kann.
|
||||||
\switchcolumn
|
\switchcolumn
|
||||||
\begin{tabular}{ll}
|
\begin{tabular}{ll}
|
||||||
\textbf{Ziel}: & Hit-Rate $\rightarrow 1$ (nicht realistisch) \\
|
\textbf{Ziel}: & Hit-Rate $\rightarrow 1$ (nicht realistisch) \\
|
||||||
& Hit-Rate $\rightarrow 0$ \\
|
& Miss-Rate $\rightarrow 0$ \\
|
||||||
& Hit-Rate $\rightarrow$ systembedingtes Maximum \\
|
& Hit-Rate $\rightarrow$ systembedingtes Maximum \\
|
||||||
& \qquad (realistisch)
|
& \qquad (realistisch)
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{paracol}
|
\end{paracol}
|
||||||
|
|
||||||
|
Das systembedingte Maximum hängt ab von:
|
||||||
systembedingtes Maximum hängt ab von
|
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}[noitemsep]
|
||||||
\item Lokalität des Zugriffsmusters
|
\item Lokalität des Zugriffsmusters
|
||||||
\item Größe (und Größenverhältnis) von Cache und \acl{HS}
|
\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}
|
\begin{description}
|
||||||
\item[kalter Cache]\index{Cache!kalter Cache} bei Betriebsbeginn ist der Cache leer
|
\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[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}
|
\end{description}
|
||||||
|
|
||||||
\subsection{Cachearchitekturen}\index{Cache!Architektur}
|
\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.
|
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]
|
\begin{itemize}[leftmargin=5mm]
|
||||||
\item[$\ominus$] $t_\text{Miss}=t_\text{Cache}+t_\text{HS}$ \newline
|
\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
|
\switchcolumn
|
||||||
\textsf{\textbf{Write-Through}}
|
\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]
|
\begin{itemize}[leftmargin=5mm]
|
||||||
\item[$\oplus$] optimale Konsistenz der Daten
|
\item[$\oplus$] optimale Konsistenz der Daten
|
||||||
\item[$\ominus$] Schreiben nur in \acl{HS}-Geschwindigkeit möglich
|
\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
|
\midrule
|
||||||
|
|
||||||
\textbf{Look-Through}
|
\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.
|
& $\ominus$ Kombination nicht möglich, da kein direkter Zugriff der \acs{CPU} auf \acs{HS} physisch gegeben ist.
|
||||||
\\ \midrule
|
\\ \midrule
|
||||||
|
|
||||||
\textbf{Look-Aside}
|
\textbf{Look-Aside}
|
||||||
& $\ominus$ schlechte Kombination, da bei jedem Schreibzugriff der Bus zweimal belastet wird
|
& $\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}
|
\end{tabular}
|
||||||
|
|
||||||
\subsection{Cache-Aufbau}
|
\subsection{Cache-Aufbau}
|
||||||
|
@ -224,24 +225,25 @@ $\Rightarrow$ sobald das Zugriffsmuster Lokalität aufweist, ergibt sich eine be
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{description}
|
\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[\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[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[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)
|
\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}
|
\end{description}
|
||||||
|
|
||||||
\subsection{vollassoziativer Cache}
|
\subsection{Vollassoziativer Cache}
|
||||||
Jede \acl{HSS} kann in jeder \acl{CL} eingelagert werden (nicht gleichzeitig!)
|
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$] 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}
|
\end{itemize}
|
||||||
|
|
||||||
Wie kann verglichen werden? Welche Möglichkeiten des Vergleichs gibt es?
|
Wie kann verglichen werden? Welche Möglichkeiten des Vergleichs gibt es?
|
||||||
|
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}
|
||||||
\item sequentiell $\Rightarrow$ Nachteil: erhöhte Zugriffszeit
|
\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
|
\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}.
|
Nachteil: \acl{HW}-Aufwand für Komparator in jeder \acs{CL}.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -314,7 +316,7 @@ Im Cache reicht der Vergleich auf Gleichheit aller Ziffern parallel:
|
||||||
\begin{itemize}[noitemsep]
|
\begin{itemize}[noitemsep]
|
||||||
\item 2 $n$-Bit-Zahlen: $n$ Äquivalenzgatter und 1 \code{UND} mit $n$ Eingängen. (vergleiche \autoref{fig:cache_komparator_3})
|
\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}
|
\end{itemize}\todo{Formatieren, etc}
|
||||||
|
|
Binary file not shown.
|
@ -56,6 +56,7 @@
|
||||||
\acro{HA}{Halbaddierer}
|
\acro{HA}{Halbaddierer}
|
||||||
\acro{HS}{Hauptspeicher}
|
\acro{HS}{Hauptspeicher}
|
||||||
\acro{HSA}{Hauptspeicheradresse}
|
\acro{HSA}{Hauptspeicheradresse}
|
||||||
|
\acrodefplural{HSA}[HSA]{Hauptspeicheradressen}
|
||||||
\acro{HSS}{Hauptspeicherseite}
|
\acro{HSS}{Hauptspeicherseite}
|
||||||
\acro{HW}{Hardware}
|
\acro{HW}{Hardware}
|
||||||
\acro{LW}{Laufwerk}
|
\acro{LW}{Laufwerk}
|
||||||
|
@ -65,6 +66,7 @@
|
||||||
\acro{RC-PA}{Ripple-Carry-Paralleladdierer}
|
\acro{RC-PA}{Ripple-Carry-Paralleladdierer}
|
||||||
\acro{RISC}{Reduced Instruction Set Computer}
|
\acro{RISC}{Reduced Instruction Set Computer}
|
||||||
\acro{SA}{Serielladdierer}
|
\acro{SA}{Serielladdierer}
|
||||||
|
\acro{SM}{Seriellmultiplizierer}
|
||||||
\acro{SR}{Schieberegister}
|
\acro{SR}{Schieberegister}
|
||||||
\acro{UNIVAC}{Universal Automatic Computer}
|
\acro{UNIVAC}{Universal Automatic Computer}
|
||||||
\acro{VA}{Volladdierer}
|
\acro{VA}{Volladdierer}
|
||||||
|
|
Loading…
Reference in a new issue