211 lines
8.5 KiB
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}
|
|
|
|
|
|
|