\documentclass{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ab_01_prozessoraufbau_architektur.tex 1342 2015-09-24 09:11:44Z pieper $}

\dokName{Aufbau eines Prozessors}
\jahrgang{EF}


\begin{document}
\section*{Aufbau einer CPU}
\begin{wrapfigure}[13]{r}{10cm}
	\begin{center}
		\vspace{-1,3cm}
		\input{cpu.cir}
	\end{center}
\end{wrapfigure}

Eine CPU besteht prinzipiell aus dem Steuerwerk, dem Rechenwerk und Registern. Die Register sind dabei sehr kleine Speicherbereiche, auf die im Takt des Prozessors zugegriffen werden kann. In ihnen werden Daten abgelegt, die für die weiteren Rechnungen des Prozessors benötigt werden. Außerdem gibt es spezielle Register, in denen z.\,B. abgelegt ist, an welcher Stelle in einem Programm sich der Rechner gerade befindet. Die Größe eines einzelnen Registers entspricht in der Regel höchstens der maximalen Wortgröße des Prozessors (8, 16, 32 oder 64 Bit)

\subsection*{Steuerwerk}
Mit dem Steuerwerk wird es ermöglicht, jedes in Maschinensprache übersetzte Programm in die Aufgaben des Prozessors zu überführen. Dabei werden diese Programme in einzelnen Schritten aus dem Speicher geholt. Die dann auszuführenden Aktionen werden an das Rechenwerk weitergeleitet, dass dieses im nächsten Taktschritt umsetzt. Solche Aktionen können neben den Grundrechenarten auch die Anweisung sein, etwas aus dem Speicher zu laden, bzw. das Ablegen des Ergebnisses einer Rechnung. Außerdem werden dort Anweisungen bezüglich des Prüfens von Bedingungen gegeben oder selber im Programmcode an eine andere Stelle zu springen.

\subsection*{Rechenwerk}
Das Rechenwerk oder auch ALU (Arithmetic Logic Unit), führt auf den maximal zwei ihr gegebenen Werten die Rechen- oder Vergleichsoperation aus, die durch das Steuerwerk vorgegeben ist. Die Ergebnisse der Berechnung werden dann wieder in den Registern abgelegt.

Eine der Eingaben in das Rechenwerk muss dabei mindestens aus einem Register erfolgen. Deshalb muss bei der Addition zweier Werte aus dem Speicher zuerst, in einem Schritt, einer der Werte in ein Register überführt werden. Die Bearbeitung von Werten aus zwei unterschiedlichen Registern ist jederzeit möglich.

\subsection*{Ein- und Ausgabe}
Für die CPU geschieht jede Ein- oder Ausgabe über den Speicher, der nicht Teil der CPU selber ist. Dabei bekommt jedes Gerät einen entsprechenden Speicherbereich zugewiesen. So ist der CPU eigentlich egal, ob sie gerade von der Tastatur oder von der Festplatte einliest um diese Daten zu verarbeiten. Da aber die Zugriffsgeschwindigkeit auch des Hauptspeichers gering ist gegenüber dem Prozessor, wird mindestens ein Zwischenspeicher, der sogenannten Cache, zwischengeschaltet. Dieses ist in der Zeichnung nicht aufgeführt.

\subsection*{Bussystem}
Alle Informationen und Daten innerhalb der CPU und darüber hinaus werden über Signalleitungen, die auch als Busse bezeichnet werden, ausgetauscht. Dabei wird stets durch verschiedene Komponenten sichergestellt, dass stets nur eine Information über einen Bus läuft.


\section*{Prozessorarchitektur}
Die beiden wesentlichen Grundarchitekturen nach der eine CPU arbeiten kann, sind die Von-Neumann- und die Harvard-Architektur. Beide unterscheiden sich hauptsächlich darin, an welcher Stelle die Programme und die Daten im Speicher abgelegt sind. 

Eigentlich alle modernen Rechner arbeiten mit der nach dem Mathematiker John von Neumann benannten Von-Neumann-Architektur. Bei ihr gibt es keine Trennung zwischen dem Speicher für Daten und Programmcode. So ist es möglich, dass Programme auch selber wieder andere Programme erzeugen bzw. sogar ihren eigenen Code modifizieren können.

Bei den ersten amerikanischen und englischen Rechnern wurde die Harvard-Architektur genutzt. In dieser Architektur werden Daten und Programme in strikt voneinander getrennten Speichern abgelegt. Dadurch könnte schneller gearbeitet werden, da auf den Speicher für Daten und Programme gleichzeitig zugegriffen werden könnte. Bei Rechnern dieser Architektur müssen die Programme über zusätzliche Datenträger geladen werden.

\section*{Aufgaben}
\begin{enumerate}
	\item Beschreiben Sie, welche Aufgabe Register in einer CPU haben. Geben Sie Gründe an, warum man nicht auf den Speicher alleine zurückgreift.
	\item Welche entscheidenden Unterschiede gibt es zwischen der Von-Neumann-Architektur und der Harvard-Architektur. Zählen Sie mögliche Gründe auf, warum sich die Von-Neumann-Architektur bei modernen Rechnern durchgesetzt hat.
\end{enumerate}

\end{document}