\chapter{Rechner}
Hilfsmittel zum Durchführen von \enquote{Rechnungen}.

\columnratio{0.55}
\begin{paracol}{2}
	\textsf{\textbf{Rechner}}
	\begin{itemize}[noitemsep]
		\item schneller
		\item fehlerfreier
		\item besseres Speichervermögen
	\end{itemize}

	\switchcolumn
	\textsf{\textbf{Rechenmaschine}}
	\begin{itemize}[noitemsep]
		\item Abakus (mechanisch, digital)
		\item Rechenschieber (mechanisch, analog)
	\end{itemize}
\end{paracol}

\textsf{\textbf{Arbeitsweise}}

Man unterscheidet zwischen \enquote{mechanisch vs elektrisch} und \enquote{digital vs analog}. Moderne \enquote{Rechner} (PC \& Co.) arbeiten elektrisch und digital. Dem gegenüber stehen elektrische Analogrechner, die um die 1920er genutzt wurden.

\section{Geschichte}
\subsection{Elektrischer Digitalrechner}

\begin{description}
	\item[ZUSE] Z1, Z2 (ab \circa{1940})

		Relais als zentrale Bauteile (elektromagnetischer Schalter mit Elektromagnet)

		\begin{itemize}[noitemsep]
			\item[$\oplus$] Automatismus möglich
			\item[$\ominus$] langsame Geschwindigkeit
			\item[$\ominus$] großer Platzverbrauch
			\item[$\ominus$] Geräusche beim Schalten
			\item[$\ominus$] hoher Energieverbrauch beim Schalten
			\item[$\ominus$] großer Verschleiß
		\end{itemize}

	\item[\acf{ENIAC}] (\circa{1945}) \newline
		Die \acs{ENIAC} besitzt als zentrales Bauteil eine Elektronenröhre. Eine Elektronenröhre ist ein eigentlich analog arbeitender Verstärker, wird hier aber als digitaler Schalter genutzt. Die Funktionsweise wird in \autoref{fig:elektronenstrahlroehre} dargestellt, wobei die Kathode negativ und die Anode positiv geladen sind.

		\begin{itemize}[noitemsep]
			\item[$\oplus$] (sehr) hohe Geschwindigkeit
			\item[$\ominus$] großer Platzverbrauch
			\item[$\ominus$] ständiges Summen bei $50Hz$ oft möglich und hörbar
			\item[$\ominus$] hoher, ständiger Energieverbrauch
			\item[$\ominus$] großer Verschleiß
		\end{itemize}

		\begin{figure}[ht]
			\centering
			\includegraphics[width=9.4cm]{Bilder/800px-Cathode_ray_tube_de.png}
			\caption{Funktionsweise Kathodenstrahlröhre [Quelle: \href{https://de.wikipedia.org/wiki/Kathodenstrahlr\%C3\%B6hre}{Wikipedia}]}
			\label{fig:elektronenstrahlroehre}
		\end{figure}

	\newpage % Für das Seitenlayout

	\item[Moderne Rechner] Moderne transistorisierte Digitalrechner (\zB \acs{UNIVAC} ab Ende der 1950er).
		\begin{itemize}[noitemsep]
			\item Transistor als zentrales Bauteil.
				Ein Transistor ist ein analog arbeitender Verstärker, wird hier aber als digital arbeitender Schalter genutzt.
			\item[$\oplus$] sehr hohe Geschwindigkeit
			\item[$\oplus$] sehr geringer Platzverbrauch
			\item[$\oplus$] keine Geräuschentwicklung (außer Lüfter)
			\item[$\oplus$] sehr niedriger Energieverbrauch
			\item[$\oplus$] geringer Verschleiß
		\end{itemize}
\end{description}

\section{Fundamentalarchitektur}
\subsection{von-Neumann-Architektur}\label{sec:von_neumann} \index{von-Neumann-Architektur}
In \autoref{fig:neumann_architektur} wird die von-Neumann-Architektur vereinfacht dargestellt. Diese besteht aus:

\begin{description}
	\item[Zentraleinheit (\acs{CPU})] Die CPU besteht aus:
		\begin{description}
			\item[Rechenwerk] Rechnen mit Zahlen und logischen Werten
			\item[Steuerwerk] Zuständig für das Steuern und Koordinieren aller anderen Komponenten \newline
				$\Rightarrow$ Interpretation und Ausführung des (Maschinensprachen-)Programms
		\end{description}
	\item[Speicherwerk] (Hauptspeicher, Primärspeicher) \newline
		Speichern von Informationen (sowohl Programmcode als auch Nutzdaten \textit{gleichermaßen})
	\item[Bus] verbindet alle Komponenten und ermöglicht den Informationsaustausch/Datenfluss zwischen ihnen.
	\item[Eingabewerk] \enquote{Schnittstelle} für Eingabegeräte (\zB USB-Controller, S-ATA-Controller). Es ist jedoch nicht das Peripheriegerät selbst (also nicht die Tastatur) gemeint.
	\item[Ausgabewerk] \enquote{Schnittstelle} für Ausgabegeräte (\zB Grafikkarte)
\end{description}

\begin{figure}[ht]
	\centering
	\includegraphics[width=8cm]{Bilder/Von-Neumann_Architektur.png}
	\caption{Vereinfachte Darstellung der von-Neumann-Architektur}
	\label{fig:neumann_architektur}
\end{figure}

\subsection{Harvard-Architektur}\label{sec:harvard} \index{Harvard-Architektur}
Die Harvard-Architektur ist ähnlich der \hyperref[sec:von_neumann]{von-Neumann-Architektur}, besitzt aber anstatt eines gemeinsamen, zwei getrennte Speicherwerke für Nutzdaten und Programmcode. Zusätzlich kann noch ein optionales zweites Eingabewerk existieren, welches nur für den Programmcode vorhanden ist. Das Speicher- und Eingabewerk für den Programmcode wird über einen zweiten Bus angebunden. \newline
Dadurch ist eine klare physikalische Trennung von Programmcode und Nutzdaten möglich. \autoref{fig:harvard_architektur} auf der nächsten Seite zeigt die Harvard-Architektur und wie sich diese von der  \hyperref[sec:von_neumann]{von-Neumann-Architektur} unterscheidet.

\begin{figure}[ht]
	\centering
	\begin{tikzpicture}
	% 2. Bus-System
	\draw[red] (-1, 2) rectangle ++(3.5, 1);
	\node[red] at (0.75, 2.5) {2. Bus System};
	\draw[red] (0.5, 2) -- ++(0, -0.5);

	\draw[red] (-1, 3.5) rectangle ++(3.5, 1.25);
	\node[red, text width=3.2cm] at (0.75, 4.1) {2. Speicherwerk für Programmcode};
	\draw[red] (0.5, 3.5) -- ++(0, -0.5);

	\draw[red, dashed] (-4, 3.5) rectangle ++(2.5, 1.25);
	\node[red, text width=2.5cm] at (-2.5, 4.1) {2. Eingabe- werk};
	\draw[red, dashed] (-2.75, 3.5) |- ++(1.75, -1);
	\node[red] at (-2.2, 2.2) {optional};

	% CPU
	\draw (-2, -1.5) rectangle ++(4,3);
	\node at (0, 1) {Zentraleinheit (CPU)};
	\draw (-1.75, -1.25) rectangle ++(1.5,1.5);
	\node [text width=1.25cm] at (-1.05, -0.45) (RW)  {Rechen- werk};
	\draw (0.25, -1.25) rectangle ++(1.5,1.5);
	\node[text width=1.25cm] at ([xshift=2.1cm]RW) (SW) {Steuer- werk};

	% Bus-System
	\draw (0, -1.5) -- (0, -2.5);
	\draw (-2, -2.5) rectangle ++(4, -1);
	\node at (0, -3) {Bus-System};

	% Ein-/Ausgabe
	\draw (-2.5, -4.5) rectangle ++(2,-2);
	\draw (0.5, -4.5) rectangle ++(2,-2);
	\node[text width=1.8cm] at (-1.4, -5.4) {Ein-/ Ausgabe- werk};
	\node[text width=1.8cm] at (1.6, -5.4) {Speicher-werk \textcolor{red}{ für Daten}};
	\draw (-1.5, -4.5) -- ++(0,1);
	\draw (1.5, -4.5) -- ++(0,1);

	% Info Box
	\draw[fill=black] (3, -5) rectangle ++(0.4,0.4);
	\draw[fill=red] (3, -6) rectangle ++(0.4,0.4);
	\node at (5.8,-4.8) {von-Neumann-Architektur};
	\node at (5.3,-5.8) {Harvard-Architektur};
	\end{tikzpicture}
	\caption{Vereinfachte Darstellung der Harvard-Architektur}
	\label{fig:harvard_architektur}
\end{figure}


\subsection{Vergleich}
\autoref{tbl:vergleich_vn_hv} auf \autopageref{tbl:vergleich_vn_hv} vergleicht die von-Neumann-Architektur mit der Harvard-Architektur.

\begin{table}[h]
	\hspace*{-5mm}
	\begin{tabular}{cp{7.5cm}|cp{7.5cm}}
		& \textbf{von-Neumann-Architektur} & & \textbf{Harvard-Architektur} \\
		\midrule

		  $\ominus$ & Virenanfälligkeit: Nutzdaten können als Programm ausgeführt werden
		& $\oplus$  & nahezu immun gegen unabsichtlichen Virenbefall
		\\[1.5ex]

		  $\oplus$ & universelle Programmierbarkeit \newline (\zB Compiler-Ausgabe wird als Programm ausgeführt)
		& $\oplus$ & keine (unbeabsichtigten oder ungewollten) Änderungen an der Betriebssoftware möglich
		\\[1.5ex]

		  $\oplus$  & flexible Speicheraufteilung zwischen Programmcode und Daten
		& $\ominus$ & komplexer und teurer (durch 2 Bus und ggf. 2 Eingabewerke)
		\\[1.5ex]

		  $\ominus$ & möglicher Flaschenhals Bus \& Speicherwerk
		& $\ominus$ & schwer update-fähig
		\\[1.5ex]

		  $\oplus$ & kostengünstig
		& $\oplus$ & bessere Performance möglich durch gleichzeitigen Zugriff auf beide Speicherwerke
		\\[1.5ex]

		&
		& $\ominus$ & ohne zweites Eingabewerk gibt es keine Möglichkeit anderen Programmcode auszuführen.
		\\[1.5ex]

		&
		& $\ominus$ & unflexible Aufteilung des Speichers: wenn das eine Speicherwerk voll ist, kann das andere Speicherwerk nicht genutzt werden.
		\\[1.5ex]

	\end{tabular}
	\hspace*{-7mm}
	\begin{tabular}{cp{7.6cm}|cp{7.6cm}}
		\multicolumn{4}{c}{\textbf{Einsatz}} \\
		\midrule

		  \textbullet & übliche \acs{PC}-Architektur -- \enquote{Universal-PC}
		& \textbullet & \enquote{embedded systems} (\zB in Waschmaschinen, KFZ-Elektronik, etc.)
		\\[1.5ex]

		&
		& \textbullet & Smartphones \& Co.
		\\[1.5ex]

		&
		& \textbullet & Bestandteile von \acsp{PC}: BIOS, \acs{CPU}-Cache in modernen \acsp{CPU} (Trennung in Cache für Programmcode und Nutzdaten), NX-Flag (Non-Executable) im Hauptspeicher
	\end{tabular}
	\caption{Vergleich der von-Neumann- und Harvard-Architektur}
	\label{tbl:vergleich_vn_hv}
\end{table}



