So funktioniert ein Prozessor
Prozessoren sind ganz einfache Soldaten. Sie gehorchen nur Befehlen, die für sie in eine besondere Sprache übersetzt werden – die Maschinensprache, binär ausgelegt. Das heißt, Soldat Prozessor versteht nur 0 und 1.
Jeden Befehl bearbeitet ein moderner Prozessor in ein- und derselben Weise. Er folgt dabei dem Von-Neumann-Zyklus. John von Neumann war ein kluger Kopf, der 1945 als einer der ersten eine Computer-Architektur beschrieb, die es möglich machte, von der Rechnerhardware-Programmbindung abzuweichen. Bis dahin wurden Rechner für bestimmte Programme gebaut oder umgekehrt. Von Neumann schuf die Architektur für den Universalcomputer, der mit verschiedenen Programmen unterschiedlicher Programmiersprachen zurechtkommt.
Der Von-Neumann-Zyklus sieht so aus:
1. FETCH
Aus dem Befehlszählregister wird die Adresse des nächsten Maschinenbefehls gelesen. Er wird aus dem Arbeitsspeicher in den Befehlsspeicher geladen.
2. DECODE
Der Befehlsdecoder decodiert den Befehl und aktiviert alle Schaltungen, die dafür sorgen, dass der Befehl ausgeführt wird.
3. FETCH OPERANDS
Von der Festplatte, aus dem Cache oder dem Arbeitsspeicher werden alle Werte und Parameter in die Register geladen, die Gegenstand des Befehls sind und die verändert werden sollen.
4. EXECUTE
Der Befehl wird ausgeführt. Das heißt, es werden Peripheriegeräte (Drucker etc.) angesteuert oder Operationen im Rechenwerk durchgeführt oder ein Sprung im Programm bewerkstelligt. Sprung im Programm bedeutet, dass das Befehlszählerregister verändert wird.
Jetzt kann der Zyklus wieder von vorne beginnen.
Und das läuft nebenbei auch noch.
Während decodiert wird und die Operanden hereingeholt werden, wird auch der Update Instruction Pointer aktiv. Das ist der Befehlszähler, der sich regelmäßig ändert. Wird in der Execute-Phase kein Sprungbefehl ausgeführt, steigt er jeweils um 1 Zähler.
Nach dem Execute-Vorgang gibt es normalerweise auch noch eine Rückschreibphase, in der angefallene Rechenergebnisse in bestimmte Register geschrieben werden.
Nebenbei kommen ab und zu so genannte Hardware Interrupts vor: Die Hardware des Computers kann Anfragen an den Prozessor richten. Diese werden bevorzugt und sofort bearbeitet. Der Prozessor prüft also regelmäßig, ob Hardware-Anfragen vorliegen und unterbricht seine Arbeit am Programm, wenn dies der Fall ist.
Prozessor ist nicht gleich Prozessor
Als Prozessorkern (engl. core) wird das eigentliche Rechenwerk des Prozessors bezeichnet. Um diesen herum sind die weiteren Komponenten wie Caches und die Memory Management Unit angeordnet. Inzwischen hat die Entwicklung der Halbleitertechnik dazu geführt, dass mehrere Prozessorkerne auf einen Mikrochip passen. Dadurch werden die Computer schneller, obwohl jeder einzelne Prozessorkern in der Geschwindigkeit klaren physikalischen Grenzen folgt. Die Leistung eines Prozessors bestimmt sich durch die Anzahl der verbauten Transistoren (aktuell bis zu 1,9 Milliarden möglich), durch die Wortbreite (im Normalfall bei PCs 64 Bit) und die Taktfrequenz.
Es gibt Prozessoren ganz unterschiedlicher Bauart: Asynchrone Prozessoren, Bit-Slice-Prozessoren, Mehrkernprozessoren, Mikrocontroller und Mikroprozessoren. Und es gibt eine ganze Reihe Prozessoren, die auf bestimmte Funktionen ausgerichtet sind:
- Digitaler Signalprozessor (DSP): Er verarbeitet analoge Signale mit Hilfe digitaler Syteme. DSPs haben getrennte Bus-Systeme für Daten und Befehle
- I/O-Prozessor: Er steuert sicher die Eingabe- und Ausgabegeräte.
- Grafikprozessor (GPU = Graphics Processing Unit): Dieser dient dazu, Grafikdaten für die Bildschirmausgabe zu berechnen. Neuerdings nennt man diese Prozessoren öfter VPU = Visual oder Video Processing Unit, da sie eben auch bewegte Bilder auf den Bildschirm bringen.
- Hauptprozessor (CPU = Central Processing Unit), der Prozessor schlechthin.
- Mathematischer Koprozessor (FPU = Floating Point Unit), der lediglich dazu dient, Gleitkommazahlen zu verarbeiten.
- Physikbeschleuniger (PPU = Physics Processing Unit): Ein Prozessor, der physikalische Effekte verarbeitet und berechnet.
- Soundprozessor (Sound Processing Unit): Einer der ganz wichtigen Prozessoren heutzutage, sorgt er doch dafür, dass Klang korrekt verarbeitet und erzeugt wird.
In der Bauart unterscheidet man Prozessoren auch danach, wie ihre Architektur in Bezug auf die Größe des Befehlssatzes aufgebaut ist. Der Befehlssatz bezeichnet die Menge der Maschinenbefehle, die ein Prozessor beinhaltet, also versteht und umsetzen kann. Folgende Bauarten konkurrieren miteinander:
CISC (Complex Instruction Set Computing = Rechnen mit komplexem Befehlssatz). Diese Architektur versucht, immer mehr und immer komplexere Funktionen direkt in Maschinensprache auszudrücken. Die Anzahl der verfügbaren Maschinenbefehle liegt daher meist deutlich über 100, vielschrittige Operationen können direkt ausgeführt werden. Vorteil: Die erforderlichen Übersetzungsprogramme (Assembler, Compiler, Interpreter) für die Sprachen, in denen programmiert wird, sind relativ klein und ihrerseits einfach zu programmieren.
RISC (Reduced Instruction Set Computing = Rechnen mit reduziertem Befehlssatz). Diese neuere Architektur stellt möglichst wenige, deutlich unter 100 Befehle zur Verfügung, die einfach sind und schnell funktionieren. Vorteil: Befehle werden deutlich schneller ausgeführt, weniger Taktzahlen werden benötigt, auch die Decodierung ist schneller. Das Design von Prozessoren mit RISC-Architektur ist zudem einfacher.
So viel im Schnelldurchgang durch die Welt der Prozessoren. Wenn Sie mehr wissen möchten, fragen Sie nach oder forschen Sie selbst im Internet. Das Gute aber: Als zukünftige(r) Programmierer(in) müssen Sie gar nicht mal so tief in die Funktionsweise eines Computers einsteigen. Technisches Verständnis in der Tiefe brauchten nur die ersten Generationen der Programmierer. Sie sind zum Glück davon befreit und können es sich schenken, Computertechnik zu verstehen. Sie können loslegen.
Gratis-Informationen zum Programmieren lernen jetzt anfordern!
Was hat der Landwirt mit den ersten Computern zu tun?
Computermaschinen verstehen Maschinensprache. Und die ist binär aufgebaut. Sie besteht aus Bits (binary digits = Binärziffer), die jeweils nur 2 Zustände darstellen können, symbolisiert durch die Ziffern 0 und 1. Ein Bit ist vielleicht am einfachsten erklärt, wenn man ihn als Lichtschalter sieht: Ein oder Aus sind hier die Alternativen.
Ältere CPUs und Mikrocontroller verfügen häufig nur über wenige Register und einen eingeschränkten Befehlssatz. Die komplexesten Operationen sind oft Addition und Subtraktion. Zur Steuerung einfacher Maschinen reicht das aus. Denn auch Funktionen wie Multiplikation und Division lassen sich durch Verschieben und Addieren errechnen – man spricht dann im Computerdeutsch von bitweiser Verschiebung. Ein Verfahren, das uns seit der Einführung des Dezimalsystems mit 10 Ziffern merkwürdig vorkommt. Doch das war nicht immer so – und schon sind wir beim Landwirt – genauer gesagt, bei der russischen Bauernmultiplikation.
Russische Bauernmultiplikation
Das ist ein einfaches Verfahren zur Multiplikation natürlicher Zahlen, das ohne das Einmaleins auskommt. Im Prinzip ist es eine schriftliche Multiplikation im Binärsystem. Der Name rührt daher, dass dieses Verfahren bis weit in die Neuzeit unter russischen Bauern üblich war.
Und so geht´s:
- Beide zu multiplizierende Zahlen nebeneinander schreiben, dazwischen einen senkrechten Strich ziehen.
- Auf der linken Seite die Werte der Zahlen jeweils halbieren, Reste abrunden, und die Ergebnisse untereinander schreiben, bis die Zahl 1 erreicht ist.
- Auf der rechten Seite die Werte der Zahlen verdoppeln und untereinander schreiben.
- Die rechts stehenden Zahlen werden gestrichen, wenn die links daneben stehende Zahl gerade ist.
- Die Summe der nicht gestrichenen rechts stehenden Zahlen ergibt den gesuchten Wert.
Beispiel:
39 x 67
39 | 67
19| 134
9 | 268
4 | 536
2 | 1072
1 | 2144
______
2613 = 39 x 67
Programmieren leicht gemacht. Der Bedarf an Programmen und Programm-Verbesserungen steigt, Programmierer sind gesucht.
Anbieter: