Wie funktioniert eigentlich ein Prozessor?
In der heutigen Welt sind sie gar nicht mehr wegzudenken – Prozessoren. Nicht nur in Smartphones und Computern sorgen sie dafür, dass alles läuft, wie es soll. Auch in vermeintlich simplen Geräten wie Waschmaschinen, Mixern, Rasenmähern oder Lautsprechern sorgen die kleinen Chips dafür, dass Informationen so verarbeitet und eingesetzt werden können, wie das entsprechende Gerät es gerade braucht. Doch wie funktioniert so ein Prozessor überhaupt? Das wollen wir in diesem Artikel herausfinden.
Und damit herzlich willkommen zum ersten Teil unserer neuen Reihe “Wie funktioniert eigentlich…?” Hier erklären wir Euch, wie die Technik, die wir alltäglich nutzen, überhaupt funktioniert. Unser Ziel mit diesen Artikeln ist es, komplexe Themen einfach und verständlich aufzuarbeiten. Um das zu erreichen, sind die Erklärungen stark vereinfacht und auf das (unserer Ansicht nach) Wesentliche reduziert. Wer sich intensiver mit der Thematik beschäftigen möchte, findet in den Quellenangaben weiterführende Literatur.
Wie wird ein Prozessor produziert?
Die ältere Generation wird sich vielleicht noch daran erinnern, dass Computer nicht immer so klein waren, wie sie es heute sind. Es ist noch gar nicht so lange her, da füllte ein einziger Rechner einen ganzen Raum. Hauptsächlich lag das an den verwendeten Bauteilen. Denn ein Prozessor besteht aus abertausenden von Transistoren und Dioden, die zu Beginn der Computer alle noch einzeln zusammengelötet werden mussten. Inzwischen ist dem natürlich längst nicht mehr so – Prozessoren, bzw. deren Bausteine werden nun mithilfe von Fotolithografie aus Silizium hergestellt.
Das Wort „Transistor“ ist zusammengesetzt aus „transfer resistor“. Dabei handelt es sich um ein aktives elektrisches Bauteil, das Spannungen und Ströme regelt. Der Transistor ist übrigens das technische Bauteil, das von der Menschheit in der höchsten Gesamtstückzahl produziert wurde und wird.
In der heutigen Zeit werden Transistoren im Nanometer-Verfahren produziert. Das bedeutet, wir sprechen inzwischen nicht mehr von tausenden, sondern von Milliarden von Transistoren, die auf eine winzige Fläche gequetscht werden. Dazu werden zunächst aus Sand in mehreren Schritten dünne runde Silizium-Scheiben produziert (=Wafer). Jeder dieser Wafer hat einen Durchmesser von ca. 30cm und wird anschließend in vielen Schritten mit Transistoren und Leitungen versehen. Hierbei unterscheidet man zwischen den Front-End-of-Line Prozessen, bei denen die Transistoren entstehen und den Back-End-of-Line Prozessen, bei denen die Transistoren mit Leiterbahnen verbunden werden.
Front-End-of-Line
Als Erstes wird der Wafer in diesem Schritt mit Fotolack beschichtet. Mittels UV-Licht Bestrahlung durch eine Schablone härtet der Fotolack an bestimmten Stellen aus. Während der anschließenden Ätzung werden kleine “Gräben” in den Waver geätzt, die dann mit elektrisch isolierendem Material (meist Siliziumdioxid) aufgefüllt und poliert werden.
Durch Beschuss mit Ionen wird das Siliziumdioxid in den zuvor produzierten Gräben dotiert (leitfähig gemacht) und wird so zu einer “Wanne”. Dabei werden wieder durch zuvor aufgetragenen Fotolack die Stellen geschützt, die nicht dotiert werden sollen.
Diese Wannen werden wiederum in weiteren ähnlichen Prozessen mittels Beschichtung, Belichtung und Dotierung durch weitere Schichten aus Siliziumdioxid, Polysilizium und mehr ergänzt, bis ein vollständiger Transistor entsteht. Im “Middle-of-Line” Prozess werden die einzelnen Transistoren anschließend mit Elektroden (meist aus Silizid und Wolfram) versehen, um die Verbindung zu ermöglichen.
Back-End-of-Line
In diesem Schritt werden die Leiterbahnen hergestellt, damit aus den einzelnen Halbleitern ein integrierter Schaltkreis (IC) wird. Dazu kommt in den meisten Fällen Kupfer zum Einsatz. Um die Leiterbahnen zu definieren, wird hier zunächst eine isolierende Schicht aufgetragen, die anschließend wieder mittels Belichtung strukturiert wird. Die so entstandenen Leiterbahnen werden anschließend mittels Galvanisierung mit Kupfer gefüllt. Dabei wird der Wafer in Kupfersulfatlösung getaucht. Durch Anlegen von Strom lagern sich die Kupferionen auf den Transistoren ab. Überschüssiges Kupfer wird wegpoliert. Dieser Schritt wiederholt sich in modernen Prozessoren bis zu 15 Mal, bevor alle Beiteile miteinander verbunden sind.
Funktionstest
Sind diese Schritte abgeschlossen, wird der Wafer in einzelne Chips (=Die/Würfel) geschnitten und getestet: Nur einwandfreie Dices werden auf Trägerplatinen aufgebracht. Nach einem abschließenden Test werden die nun fertigen Prozessoren noch einmal auf Leistung getestet und klassifiziert, bevor sie in den Handel kommen. Sehr vereinfacht ist der Ablauf in diesem Video von Intel dargestellt:
Wie funktioniert ein Prozessor?
Anhand der Produktion wird nun auch klar, warum Prozessoren ausschließlich mit 0 und 1 rechnen können: die Transistoren funktionieren wie ein Schalter und lassen so entweder Strom fließen (=1) oder eben nicht (=0). Auch daraus lässt sich ein Zahlensystem erstellen: das Binärsystem. Es funktioniert wie unser Dezimalsystem, nur dass es unsere 9 (und damit der Wechsel zur nächsten Stelle) schon bei der 1 erreicht ist. Gezählt wird also 1 (=1), 10 (=2), 11=(3), 100 (=4),…
Auch in diesem System lässt sich also rechnen und genau das ist (neben dem Speichern von Werten) das Einzige, was ein Prozessor kann und tut. Dazu braucht es verschiedene Bauteile, die dafür zuständig sind, Steuerbefehle entgegen zu nehmen, die zugehörigen Speicherzellen mit den Befehlsparametern (Ausgangswerten) anzusteuern, Berechnungen (bzw. die dafür nötigen Schaltungen) auszuführen und die Ergebnisse wieder abzuspeichern. Die vier Bereiche, die diese Aufgaben übernehmen, stellen wir Euch im Folgenden vor:
Register
Dass jedes Smartphone und jeder PC einen Festspeicher und einen Arbeitsspeicher hat, dürfte bekannt sein. Diese beiden Speichereinheiten (insbesondere der RAM) sind zwar heute auch schon schnell, dennoch dauert es immer einige Zeit, bis Daten von dort abgerufen wurden. Damit der Prozessor nicht so lange auf die nötigen Daten warten muss, werden sie in Registern zwischengespeichert. Dabei handelt es sich um Speicherplatz, der ein direkter Teil der CPU ist und in nur einem Takt angesteuert werden kann. Damit ist er deutlich schneller als jeder Arbeitsspeicher, allerdings auch deutlich kleiner. Genauer hat ein Register heute meistens eine Breite von 64 Bit (das hat man dann doch schon einmal gehört) und kann je nach Prozessor zwischen 32 und um die 180 Werte speichern. Das klingt zwar wenig, ist aber ausreichend, da in diesem Speicherplatz nur Werte abgelegt werden, die sehr kurzfristig gebraucht werden (=General Purpose Register) oder für interne Prozessorfunktionen vorgesehen sind (Spezialregister).
Rechenwerk
Wie es der Name schon sagt, ist das Rechenwerk dafür verantwortlich, Werte auszurechnen. Die Aufträge dafür bekommt es vom Steuerwerk (dazu später mehr) und die Werte nimmt es aus dem Register. Das Rechenwerk besteht bei heutigen Chips eigentlich immer aus mehreren “Arithmetic Logical Units” (ALUs). Diese sind darauf ausgelegt, im Einzelnen mit 1 und 0 zu rechnen und können mit zwei Werten an ihren Eingängen folgende Operationen (logische Funktionen) ausführen:
- Konjunktion: AND (Wen beide Eingänge 1 sind, wird 1 ausgegeben)
- Disjunktion: OR (Wenn einer oder beide Eingänge 1 sind, wird 1 ausgegeben)
- Antivalenz: XOR (Nur wenn genau einer der beiden Eingänge 1 ist, wird 1 ausgegeben)
- Negation: NOT (Hier genügt ein Eingang: Aus 1 wird 0, aus 0 wird 1)
- Negation + Konjunktion: NAND (Wenn beide Eingänge 1 sind, wird 0 ausgegeben)
Da für beinahe alle Aufgaben in einem aktuellen Chip größere Zahlen berechnet werden müssen, als sich in einem Bit abbilden lassen, werden entsprechend viele ALUs im Prozessor parallel geschaltet. So können auch größere Zahlen arithmetisch berechnet werden:
- Addition (z.B. 101 + 10 = 111)
- Multiplikation (z.B. 100 x 11 = 1100)
Die Werte für diese Berechnungen bekommen die ALUs aus den Registern, dort wird auch der errechnete Wert wieder abgelegt. Zuständig für die Steuerung all dieser Befehle ist das Steuerwerk.
Steuerwerk
Dieses Bauteil ist mit Abstand am komplexesten zu verstehen. Es besteht aus dem Adressierwerk, dem Befehlsregister, dem Befehlsdecoder und einem Programmzähler. Wie zuvor erwähnt, ist es dazu da, Programmcodes einzulesen und dafür zu sorgen, dass sie auch korrekt ausgeführt werden. Der Vorgang, der dabei im Steuerwerk abläuft, lässt sich vereinfacht mit dem “Von-Neumann-Zyklus” beschreiben:
Fetch
Das Steuerwerk liest den aktuellen Maschinenbefehl aus dem Befehlsregister. Dieser in Binärschreibweise liegt vor (“Op-Code”) und ist eventuell mit einem Operanten (benötigtem Wert) versehen.
Decode
Während früher ein Op-Code exakt einen Befehl enthielt, beschreibt er heute ein “Mikroprogramm”, welches wiederum eine Reihe von einzelnen Befehlen enthält. Diese Befehle zu entschlüsseln, ist Aufgabe des Befehlsdecoders. Er greift dazu auf seinen “Mikroprogramm-ROM” (=Read Only Memory, mit den gespeicherten Befehlen) zu und aktiviert daraufhin nach und nach die Schaltungen, die zur Ausführung der einzelnen Befehle nötig sind. Die Ausführung eines Befehls entspricht dabei übrigens einem Takt. Das bedeutet, ein Prozessor mit 2GHz kann 2.000.000.000 Befehle in einer Sekunde ausführen
Fetch Operands
Während der Befehlsdecoder für die Ausführung der Programme zuständig ist, liegt es in der Verantwortung des Adressierwerks, alle nötigen Werte dafür zur Verfügung zu stellen. Dazu ist es wichtig zu wissen, dass der Chip mit Werten an sich wenig anfangen kann, sondern immer eine Speicheradresse braucht, unter der ein Wert zu finden ist. In diesem Schritt stellt das Adressierwerk also die Adressen bereit, auf denen die Werte abgelegt sind, die der entsprechende Op-Code benötigt. Diese Werte werden dann in den Registern zwischengespeichert und stehen so dem Rechenwerk zur Verfügung.
Execute
Der Op-Code wird ausgeführt. Es folgt also eine Reihe von Mikroprogrammen, die Operationen im Rechenwerk ausführen oder Peripheriegeräte ansteuern. Anschließend wird der Programmzähler um 1 erhöht und der Prozessor geht einen Schritt weiter zur nächsten Adresse mit dem folgenden Op-Code. Dieser wird daraufhin ins Befehlsregister geladen und das ganze Spiel geht von vorne los.
Nun ist es möglich, dass die CPU während der Ausführung des Programms auf ein unvorhergesehenes Ereignis reagieren muss. Dafür gibt es sogenannte “Interrupts“, die die aktuelle Aufgabe unterbrechen. Dies sei aber nur am Rande erwähnt und führt an dieser Stelle zu weit.
Bussystem
Der Bus ist im Prinzip nichts anderes als die Verbindung zwischen den einzelnen Bauteilen des Prozessors. Man unterscheidet dabei zwischen:
- Datenbus: Er ist zuständig für die Verbindung zwischen Datenspeicher und Prozessor.
- Adressbus: Hierüber kann der Prozessor festlegen, unter welcher Adresse im Speicher Daten ausgelesen oder gespeichert werden sollen.
- Steuerbus: Wie es der Name schon sagt, werden über diese Verbindung Signale und Befehle an einzelne Bausteine des Prozessors gesendet.
Zusammenfassung
Wer nicht gerade plant, selbst einen Prozessor zu entwickeln, wird viele der oben genannten Begriffe wohl heute zum ersten und letzten Mal gehört haben. Dennoch hoffen wir, dass Ihr in diesem Artikel etwas lernen konntet. Merken solltet Ihr Euch, dass ein Prozessor aus drei wesentlichen Bereichen (Rechenwerk, Steuerwerk und Register) besteht, die über ein Bussystem verbunden werden. Während das Steuerwerk für die Ausführung der Programme zuständig ist, sorgt das Rechenwerk dafür, dass die notwendigen Berechnungen durchgeführt werden und greift dabei auf die Werte zu, die im Register abgelegt sind.
Ein Prozessor enthält trotz seiner Größe eine Unmenge an komplexen Bauteilen, ohne die unser Leben heute gar nicht mehr vorstellbar ist.
Newsletter bestellen
Hol Dir die neuesten Infos zu Chinahandys und Gadgets direkt ins Postfach!
Kleiner Hinweis aus der Digitaltechnik: Antivalenz ist keineswegs ein Exklusiv-Oder!
Ein Antivalenz-Glied wird 1, solange eine ungerade Anzahl an Eingängen eine 1 führt.
Ein XOR-Glied hingegen ist nur 1, wenn genau ein Eingang eine 1 führt.
Aber wenn es nur zwei Eingänge gibt, gibt es doch zwangsläufig nur bei genau einem Eingang die Eins aus. Mehr Möglichkeiten für eine ungerade Anzahl an Eingängen gibt es hier doch nicht (0/0; 1/0; 0/1; 1/1), oder stehe ich auf dem Schlauch? 😛
Naja, etwas chaotisch der Artikel.
Und die Transistoranschlüsse mit Kupfer galvanisieren – da kann man nicht mal drüber lachen.
Außerdem hat ein moderner Prozessor Milliarden und nicht Millionen Transistoren.
Etc. und pp.
Moin Tom, auf den Fehler bei der Produktion hat mich Paule schon hingewiesen und ich habe den entsprechenden Abschnitt angepasst. Wenn Dir noch andere Punkte auffallen, würde es mich freuen, wenn Du sie konstruktiv verpackst, damit ich sie verbessern kann. In Bezug auf Deinen anderen Kommentar hast Du sicher recht, dass ich kein Experte auf dem Gebiet bin. Dennoch stecken in diesem Artikel mehrere Tage (!) Arbeit und ich bin der Überzeugung, damit einen Überblick über die Thematik zu bieten für diejenigen, die sich eben nicht stundenlang durch Fachliteratur wälzen wollen. …zeugt davon, dass der Autor die Sache nicht versteht.… Weiterlesen »
Sehr gut gemacht! Vielen Dank
Tolle Rubrik, gerne mehr davon!
Danke Dir!
Die nächsten Artikel sind schon in Arbeit – hast Du einen konkreten Wunsch?
Wenn Du so fragst: das Thema Sensoren finde ich sehr spannend (Touchscreen, Fingerabdrucksensoren, Näherungssensoren, etc.) Bin mir gar nicht sicher wieviel mittlerweile in Smartphones verbaut werden, geschweige denn wie sie funktionieren.
Beste Grüße:)
Wow, interessant und angenehm geschriebener Beitrag. Viel Information, sehr kompakt. Gut gemacht 🙂