[Kapitel] Inhalt ergänzt

This commit is contained in:
Andre Meyering 2017-11-06 12:24:05 +01:00
parent 8d211f9269
commit d5fa6517f4
6 changed files with 236 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
Bilder/Subtrahierer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View file

@ -605,7 +605,6 @@ Beim Wechsel von $32$-Bit auf 64-Bit-\acs{CLA-PA} wäre der 16~Trillionen-fache
\end{tabular}
\todo{Vergleichen: Siehe Notizen, etc.}
\newpage % Für das Layout
\subsection{Kombination mehrerer kleinen \acsp{CLA-PA}}
@ -680,6 +679,7 @@ $\Rightarrow$ damit ist das $n$ der nicht-\acs{CLA-PA} noch klein $\Rightarrow$
\label{fig:casc_cla_ca}
\end{figure}
\newpage % Für das Layout
\section{Serielladdierer}
\textit{Idee}: Angelehnt an die Verfahrensweise des Menschen sollen die Stellen der beiden Summanden nacheinander (und nicht gleichzeitig) addiert werden. Dadurch wird nur \textbf{ein} \acs{VA} und mehrere \acf{SR} benötigt. Daher ist der \acf{SA} ein Schaltwerk, kein Schaltnetz! \autoref{fig:serielladdierer} zeigt das Schaltwerk eines Serielladdierer.
@ -696,17 +696,20 @@ $\Rightarrow$ damit ist das $n$ der nicht-\acs{CLA-PA} noch klein $\Rightarrow$
Der Zeitaufwand für einen $n$-Bit-\acs{SA} beträgt $n$ Taktzyklen, also $O(n)$
\textit{Ist dies wie beim \acs{RC-PA}?} \newline
Jein, denn $1$ Taktzyklus ist deutlich mehr als doppelt solang wie die Berechnung des \acs{VA} (Sicherheitsmargen!). Beispiel: 1 Taktzyklus > \circa{10}~\acs{GLZ} $\Rightarrow$ fünffache Berechnungszeit des \acs{RC-PA}
Jein, denn $1$ Taktzyklus dauert deutlich mehr als doppelt solang wie die Berechnung des \acs{VA} (Sicherheitsmargen!). Beispiel: 1 Taktzyklus > \circa{10}~\acs{GLZ} $\Rightarrow$ fünffache Berechnungszeit des \acs{RC-PA}
\subsection{Hardwareaufwand ($N$-Bit-SA)}
\begin{tabular}{@{}l@{}l}
1 \acs{VA}: & 18 Transistoren \\
2 \acs{D-FF}: $2\cdot 6=$ & $12$ Transistoren. (siehe Grafik rechts) \\
3 $n$-Bit-\acs{SR} & (siehe Grafik links)
\end{tabular}\todo{Checken}
1 \acs{VA} & $=18$ Transistoren \\
2 \acs{D-FF} = $2\cdot 6$ & $=12$ Transistoren. \textit{(siehe \autoref{fig:serielladdierer_2} rechts)} \\
3 $n$-Bit-\acs{SR} & $=4\cdot 6n = 18n$ Transistoren \textit{(siehe \autoref{fig:serielladdierer_2} links)} \\
Takterzeugung~~ & \textit{(im folgenden nicht näher betrachtet)} \\
gesamt & $18n+30$ Transistoren
\end{tabular}
Zum Vergleich: \acs{RC-PA}: $18n-10$, \dash der \acs{SA} braucht 40 Transistoren mehr (bei längerer Bearbeitungszeit)!
Takterzeugung (im folgenden nicht näher betrachtet)
\begin{figure}[h!]
\centering
@ -716,5 +719,228 @@ Takterzeugung (im folgenden nicht näher betrachtet)
\end{figure}
\begin{Achtung}
Die Takterzeugung muss in der Klausur für den \acl{SA} auf jeden Fall genannt werden, auch wenn er hier nicht weiter betrachtet wird!
Die Takterzeugung muss in der Klausur für den \acl{SA} auf jeden Fall genannt werden, auch wenn sie hier nicht weiter betrachtet wird!
\end{Achtung}
\subsection{Hardwareoptimierung des Serielladdierers}
\begin{figure}[ht]
\centering
\includegraphics[width=12cm]{Bilder/Serielladdierer_3.png}
\caption{Serielladdierer mit Hardwareoptimierung}
\label{fig:serielladdierer_hw_optimierung}
\end{figure}
Wie in \autoref{fig:serielladdierer_hw_optimierung} zu sehen ist, wird ein Schieberegister weniger benötigt $\Rightarrow 12n+36$ Transistoren
\subsubsection{Vergleich eines RC-PA mit dem verbesserten SA}
\begin{table}
\centering
\begin{tabular}{c|c|c}
n & \acs{RC-PA} (18n 10) & \acs{SA} (12n +36) \\ \midrule
1 & 8 & 48 \\
2 & 26 & 60 \\
3 & 44 & 72 \\
4 & 62 & 84
\end{tabular}
\caption{Vergleich von Hardwareaufwand eines \acs{RC-PA} mit dem verbesserten \acs{SA}}
\label{tbl:vergleich_rcpa_sa}
\end{table}
Tabelle \autoref{tbl:vergleich_rcpa_sa} vergleicht einen \acs{RC-PA} mit dem verbesserten \acs{SA}.
Break-Even (\enquote{\textit{Gewinnschwelle}}): $18n -10 = 12n + 36 \Rightarrow 46 = 6n \Rightarrow n = 7\frac{2}{3} $ \newline
\hspace*{5mm} $\Rightarrow$ Ab 8-Bit lohnt sich der \acs{SA}
\textbf{Mögliche Anwendung eines \acl{SA}}:
\begin{itemize}[noitemsep]
\item nicht im Rechenwerk der \acs{CPU} (aufgrund der Geschwindigkeit)!
\item aber möglicherweise in \enquote{Embedded System}, falls \zB Sensordaten sowieso seriell angeliefert werden
\item[$\Rightarrow$] eventuell sind sogar weitere Hardware-Einsparungen möglich!
\end{itemize}
\section{Subtraktion}
Es ist kein spezieller Hardware-Subtrahierer notwendig. Eine Subtraktion wird über die Addition des 2er-Komplements realisiert:
\begin{enumerate}[noitemsep]
\item Bits invertieren (Inverter)
\item $+1$ addieren (Addierer)
\end{enumerate}
\begin{figure}[ht]
\centering
\includegraphics[width=13cm]{Bilder/Subtrahierer.png}
\caption{Schaltnetz Subtrahierer}
\label{fig:subtraktion}
\end{figure}
\newpage % Nur für's Layout
\section{Multiplikation}
\columnratio{0.17}
\begin{paracol}{2}
\begin{tabular}{c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}}
4 & 7 & 1 & 1 & $\times$ & 8 & 1 & 5 \\ \midrule
& \textit{\small 3} & \textit{\small 5} & & & & & \\
& 6 & 7 & 6 & 8 & 8 & & \\
& & & 4 & 7 & 1 & 1 & \\
& & & \textit{\small 2} & \textit{\small 3} & & & \\
& & & 2 & 3 & 5 & 5 & 5 \\ \midrule
& 3 & 8 & 3 & 9 & 4 & 6 & 5
\end{tabular}
\switchcolumn
\textbf{\textsf{Mögliche Probleme / Schwierigkeiten}}
\begin{enumerate}[noitemsep]
\item kleines $1\times 1$ ist ein wenig Lernaufwand
\item Überträge beim kleinen $1\times 1$ sind möglich
\item Addition von mehr als zwei Ziffern gleichzeitig
\item mehrstellige Überträge bei der Summenbildung möglich
\item \label{lst:item:zwischensumme_stellen} für jede Zwischensumme muss der Addierer eine Stelle mehr verarbeiten
\end{enumerate}
\end{paracol}
\autoref{lst:item:zwischensumme_stellen} wird deutlich durch eine Multiplikation einer 6- und 4-stelligen Zahl im Binärsystem \enquote{von links nach rechts}, wie sie in \autoref{tbl:multi_lr} dargestellt wird.
\begin{table}[ht]
\centering
\begin{tabular}{c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}l}
1 & 0 & 1 & 0 & 1 & 0 & $\times$ & 1 & 0 & 1 & 0 & \quad ($42\times 10$) \\ \midrule
& & 1 & 0 & 1 & 0 & 1 & 0 & & & & \\
& & & 0 & 0 & 0 & 0 & 0 & 0 & & & \quad \textit{7-stellige Addition} \\ \midrule
& & 1 & 0 & 1 & 0 & 1 & 0 & 0 & & & \quad \textit{Zwischensumme} \\
& & & & 1 & 0 & 1 & 0 & 1 & 0 & & \quad \textit{8-stellige Addition} \\ \midrule
& & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & & \quad \textit{Zwischensumme} \\
& & & & & 0 & 0 & 0 & 0 & 0 & 0 & \quad \textit{9-stellige Addition} \\ \midrule
& & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & \quad \textit{10-stelliges Ergebnis}
\end{tabular}
\caption{Schriftliche Multiplikation \enquote{von links nach rechts}}
\label{tbl:multi_lr}
\end{table}
\columnratio{0.17}
\begin{paracol}{2}
\bigskip
\begin{center}
\begin{tabular}{cc|c}
b & a & ab \\
\midrule
0 & 0 & 0 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 1
\end{tabular}
\end{center}
\switchcolumn
\textbf{\textsf{Abhilfe}}
\begin{enumerate}[noitemsep]
\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}
\end{enumerate}
\end{paracol}
\begin{table}[ht]
\centering
\begin{tabular}{c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
1 & 0 & 1 & 0 & 1 & 0 & $\times$ & 1 & 0 & 1 & 0 & ($42\times 10$) \\ \midrule
& & & & & 0 & 0 & 0 & 0 & 0 & \textcolor{purple}{\textbf{0}} & \\
& & & & 1 & 0 & 1 & 0 & 1 & 0 & \textcolor{purple}{$p_0$} & \\ \midrule
& & & & 1 & 0 & 1 & 0 & 1 & \textcolor{OliveGreen}{\textbf{0}} & & \\
& & & 0 & 0 & 0 & 0 & 0 & 0 & \textcolor{OliveGreen}{$p_1$} & & \\ \midrule
& & & 0 & 1 & 0 & 1 & 0 & \textcolor{BrickRed}{\textbf{1}} & & & \\
& & 1 & 0 & 1 & 0 & 1 & 0 & \textcolor{BrickRed}{$p_2$} & & & \\ \midrule
& \textcolor{blue}{0} & \textcolor{blue}{1} & \textcolor{blue}{1} & \textcolor{blue}{0} & \textcolor{blue}{1} & \textcolor{blue}{0} & \textcolor{blue}{0} & & & & \\
& \textcolor{blue}{$p_9$} & \textcolor{blue}{$p_8$} & \textcolor{blue}{$p_7$} & \textcolor{blue}{$p_6$} & \textcolor{blue}{$p_5$} & \textcolor{blue}{$p_4$} & \textcolor{blue}{$p_3$} & & & &
\end{tabular}
\caption{Schriftliche Multiplikation \enquote{von rechts nach links}}
\label{tbl:multi_rl}
\end{table}
\newpage % Nur für's Layout
\subsection{Multiplikation mit Paralleladdierer}
Ein $n\times m$-Bit-\acf{PM}, bspw. ein $5\times 4$-Bit-\acl{PM} ist in \autoref{fig:parallelmultiplizierer} dargestellt.
\begin{figure}[ht]
\centering
\includegraphics[width=13cm]{Bilder/Parallelmultiplizierer.png}
\caption{5-Bit Parallelmultiplizierer}
\label{fig:parallelmultiplizierer}
\end{figure}
\begin{Achtung}[frametitle={Hinweis zur Abbildung}]
Unbedingt auf die \enquote{0} als Eingang achten! Ansonsten gibt es in der Klausur punktabzug!
\end{Achtung}
\begin{Hinweis}
In der Klausur muss evtl. ein 4-Bit \acl{PM} gezeichnet werden, also nicht mit 5 oder 6~Bit.
\end{Hinweis}
\subsubsection{Analyse: Hardwareaufwand für die Multiplikation mit Paralleladdierer}
\textit{Benötigt werden}:
\begin{itemize}[noitemsep]
\item $m-1$ ~ $n$-Bit-\acs{PA}
\item $n\cdot m$ ~~ \code{UND} mit jeweils 2 Eingängen $\Rightarrow$ $2\cdot n\cdot m$ Transistoren
\end{itemize}
\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)$
\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)$
\end{itemize}
\end{enumerate}
Hier bei verschieden großen Faktoren also besser $m>n$ bei \ac{CLA-PA}) für geringeren \acs{HW}-Aufwand.
Demgegenüber bei Verwendung von \acs{RC-PA}: Besser $n>m$ für geringeren \acs{HW}-Aufwand. \todo{Besser umformulieren}
\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})
\begin{enumerate}
\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.
\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...}
\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.
\end{Hinweis}
\subsection{Seriellmultiplizierer}
Motivation: Noch engere Anlehung an das schriftliche Multiplikationsverfahren, um den Aufwand für die Addierglieder gering zu halten.
Siehe \autoref{fig:seriellmultiplizierer}.
\begin{figure}[ht]
\centering
\includegraphics[width=13cm]{Bilder/Seriellmultiplizierer.png}
\caption{5-Bit Seriellmultiplizierer}
\label{fig:seriellmultiplizierer}
\end{figure}
\begin{Hinweis}
Vor dem ersten Takt müssen alle D-FF auf \code{0} gesetzt werden (\enquote{Reset-Eingang} oder ähnliches)
\end{Hinweis}

View file

@ -51,6 +51,8 @@
\acro{HA}{Halbaddierer}
\acro{HW}{Hardware}
\acro{PC}{Personal Computer}
\acro{PA}{Paralleladdierer}
\acro{PM}{Parallelmultiplizierer}
\acro{RC-PA}{Ripple-Carry-Paralleladdierer}
\acro{SA}{Serielladdierer}
\acro{SR}{Schieberegister}