Die CPU - Ansicht des offenen Herzens

 

Damit ein Computer arbeiten kann, ist ein Bauelement unabdingbar. Ohne eine CPU kann kein Rechnersystem arbeiten. Der Mikroprozessor, wie die CPU auch genannt wird, sorgt für die Steuerung der einzelnen Elemente im Computer. Ebenso berechnet der Mikroprozessor gewünschte Daten und entscheidet, wann welche Aktionen ausgeführt werden. Die Bezeichnung CPU kommt im Übrigen aus dem Englischen und bedeutet ausgeschrieben Central Processing Unit.

 

Nur, wie trifft der Mikroprozessor solche Entscheidungen oder wie werden Werte berechnet? Dies soll in diesem und weiteren Lehrgängen Schritt für Schritt ergründet werden. Am Ende steht dem Leser ein kleiner 4-Bit Computer zur Verfügung. Dieser kann dann auf Steckboard aufgebaut werden oder es können Platinen verwendet werden, dessen Layout am Ende des Lehrgangs angeboten werden.

 

 

Grundaufbau einer CPU

 

Eine CPU besteht aus einer ganzen Menge digitaler Schaltkreise. Im Grunde ist eine CPU nichts weiter als eine recht komplexe Logikschaltung aus Und, Oder und Nicht-Gattern.

 

Wie in der nebenstehenden Grafik zu sehen ist, besteht ein Mikroprozessor aus mehreren verschiedenen Einheiten. Wann eine bestimmte Einheit etwas macht, wird durch das Steuerwerk bestimmt.

Im Kern des Steuerwerks werkelt ein ROM indem sich der so genannte Mikrocode befindet. Die Ausgänge des ROMs werden mit den einzelnen Einheiten verbunden. Durch einen Zähler werden in dem ROM die Adressen abgerufen, und durch entsprechende Speicherinhalte wird dann die Steuerung koordiniert. Näheres in einem anderen Kapitel.

Die eigentliche 'Intelligenz' findet sich im Rechenwerk. Hier werden Werte berechnet, Logikverknüpfungen vorgenommen und Werte miteinander verglichen.

Damit Werte bearbeitet werden können, benötigt das Rechenwerk mindestens ein Register, wo die zu berechnenden Werte geladen werden und wo zum Schluss das Ergebnis zur Verfügung steht. Dieses Register nennt sich Akku oder Arbeitsregister. Moderne Prozessoren besitzen nicht nur 1 Register, sondern eine ganze Reihe davon. Oft ist auch der Akku nicht fest vorgegeben sondern wird vom Programmierer beliebig festgelegt. Ein gutes Beispiel ist z.B. die AVR-Familie. Hier sind 32 Register vorhanden.

Damit der Prozessor aber überhaupt etwas berechnen kann, benötigt er Anweisungen. Diese werden aus einem externen Speicher geladen. Hierzu werden die internen Datenleitungen heraus geführt um z.B. das Arbeitsregister mit einem Wert zu laden.

Externer Speicher hat natürlich nicht nur 1 Speicherzelle sondern erheblich mehr. 1 Gigabyte (=1073741824 Bytes) sind noch eher ein kleiner Speicher in modernen PCs. Damit die einzelnen Speicherzellen angesprochen werden können, werden auch Adressleitungen benötigt. Diese werden Hauptsächlich durch den Programm-Zähler bedient. Dieser zählt im Grunde bei jedem Befehl um 1 hoch. Durch Sondersituationen, wie z.B. Sprünge, kann das Steuerwerk ein externes Laden mit einem anderen Wert veranlassen.

Der Stapel-Zeiger ist ein Aufwärts/Abwärts-Zähler. Dieser wird immer angesteuert, wenn Unterprogramme aufgerufen werden sollen. Dieser Zähler muss am Programmanfang gleich vom Anwender geladen werden und sorgt ab dann dafür, dass die Rücksprungadressen im Arbeitsspeicher abgelegt werden.

Damit ein Prozessor arbeiten kann, muss der Zähler für das Mikrokode-ROM mit einem Takt versorgt werden. Dies geschieht über den Anschluss 'Clock'.

Zu guter Letzt gibt es noch eine Reset-Leitung, welche alle Register und Zähler auf den Einschaltmoment zurück setzt.

Wem das jetzt zu schnell war, oder das Eine oder Andere nicht verstanden hat, dem wird das Ganze noch detaillierter in weiteren Lehrgängen mit praktischen Versuchen erklärt.

 

 

Neumann oder Harvard

 

Damit eine CPU arbeiten kann, wird ein Programm benötigt. Dieses wird der CPU in einem externen ROM angeboten. Des Weiteren wird meist noch Arbeitsspeicher benötigt, in dem größere Datenmengen gespeichert werden können. Dieses RAM wird auch extern angeschlossen.

 

Bei den ersten Rechnersystemen wurde ab der Adresse 0 ein ROM mit dem entsprechenden Betriebssystem gelegt und in den höheren Adressen befindet sich das RAM. Diese Methode hat aber 2 Nachteile

 

Zum Einen wird der mögliche RAM-Bereich immer kleiner, wenn das Betriebssystem größer wird und zum Anderen ist hier die Arbeitsgeschwindigkeit begrenzt, da sich der CPU-Takt an die RAM-Geschwindigkeit anpassen muss.

 

Um dieses Dilemma zu entgehen, hat man in den 1980er Jahren begonnen, immer mehr Prozessoren zu entwickeln, welche die so genannte Harvard-Archtiktur verwenden. Hier werden der Programm und der Arbeitsspeicher getrennt. So kann die CPU mit voller Geschwindigkeit auf das ROM zugreifen und wenn auf das RAM zugegriffen werden soll, wird der Zugriff, mit Warteschleifen, künstlich verlangsamt. Bekannte Vertreter dieser Struktur sind z.B. die 8051-Familie oder der AVR.

Aber auch diese Struktur hat mindestens einen großen Nachteil. Es muss das Programm von vornherein feststehen. Wird die Software ständig geändert bzw. zugeladen ist man gezwungen bei der so genannten Neumann-Struktur zu bleiben da es hier die CPU erlaubt auch Programme im RAM auszuführen.

Ein äußerst erfolgreicher Vertreter der Neumann-Struktur ist der heimische PC. Um hier den 'Flaschenhals' Arbeitsspeicher ein Schnippchen zu schlagen, wird in der CPU ein sehr schnelles kleines RAM eingebaut. Dieses enthält einen Teil des Programmcodes und wird neu eingelesen, sobald die CPU an eine Adresse außerhalb dieses Programmsegments springt. Das Einlesen übernimmt eine extra Logik in der CPU. Viele dürften von diesem RAM-Bereich schon einmal etwas gelesen haben. Es ist der 2nd-Level Cache-Speicher.

 

 

Mikroprozessor oder Mikrokontroller

 

Wer sich ein wenig mit Mikroelektronik befasst, wird schnell über 2 Begriffe stolpern. Es gibt nämlich Mikroprozessoren und Mikrokontroller. Was ist hier aber nun der Unterschied?

 

Ein Mikroprozessor stellt nur die 'Intelligenz' zur Verfügung. Soll die CPU irgendwie mit der Außenwelt in Kontakt treten, muss zusätzlich Hardware angebaut werden, die die gewünschte Ein und Ausgabe steuert. Als Beispiel kann man hier wieder den PC nehmen. Dieser enthält ein Mikroprozessor welche durch Hardware ergänzt werden muss, um arbeiten zu können. Man muss z.B. Grafik-Karte, HD-Kontroller usw. hinzufügen. Vieles findet man heute aber schon komplett auf dem Motherboard.

 

Der Mikrokontroller entgegen enthält schon alles, was für einen einfachen Computer nötig ist. Angefangen vom Programmspeicher, Arbeitsspeicher bis hin zu recht komplexen Schnittstellen wie USB oder Ethernet. Der AVR gehört unter anderem zur Familie der Mikrokontroller. Hier reicht unter Umständen ein kleiner 8-poliger AVR und schon hat man eine RGB-LED-Steuerung. Alles nötige hat der AVR 'on board'. Taktgeber, Speicher, IO-Ports sind alle schon im Chip vorhanden.

 

 

Zurück zur Auswahlseite            Zur Hauptseite