[Kapitel] Inhalt ergänzt
This commit is contained in:
parent
8d211f9269
commit
d5fa6517f4
6 changed files with 236 additions and 8 deletions
BIN
Bilder/Parallelmultiplizierer.png
Normal file
BIN
Bilder/Parallelmultiplizierer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
BIN
Bilder/Serielladdierer_3.png
Normal file
BIN
Bilder/Serielladdierer_3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
BIN
Bilder/Seriellmultiplizierer.png
Normal file
BIN
Bilder/Seriellmultiplizierer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
BIN
Bilder/Subtrahierer.png
Normal file
BIN
Bilder/Subtrahierer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Reference in a new issue