Rechnerarchitektur_Roethig/Kapitel/02_Rechner.tex

211 lines
8.5 KiB
TeX

\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}