CPU: Unterschied zwischen den Versionen

Aus Foxwiki
Kamalalhassan (Diskussion | Beiträge)
Kamalalhassan (Diskussion | Beiträge)
Zeile 158: Zeile 158:


=Cache-Grundlagen=
=Cache-Grundlagen=
Zur Steigerung der Arbeitsleistung sitzt in der CPU zwischen den extrem schnellen Funktionseinheiten und dem vergleichsweise sehr langsamen Arbeitsspeicher der L1-Cache.


[[Datei:006 Cache-Grundlagen.jpg]]
[[Datei:006 Cache-Grundlagen.jpg]]

Version vom 9. Januar 2021, 20:03 Uhr

Central processing unit

Funktion

Mikroprozessoren sind hochkomplexe Maschinen. Sie basieren jedoch auf einem einfachen Grundprinzip. Wer es kennt, versteht auch die Funktionsweise der modernen CPUs.

History

Die Von-Neumann-Architektur besteht aus vier Funktionseinheiten, die in Bild 1 zu sehen sind: Rechenwerk, Steuerwerk, Speicher (Memory) und Ein-/Ausgabeeinheit (I/O-Unit).

Dazu kommen noch die Verbindungen zwischen den Funktionsblöcken - das Bussystem.

Die beiden wichtigsten Einheiten ALU und CU sind heute im Prozessor vereint.

Die CPU als Ganzes übernimmt innerhalb des Von-Neumann-Rechners die Ausführung der Befehle und die hierfür notwendige laufsteuerung.

Von-Neumann-Rechner:Er beinhaltete schon vor 50 Jahren die wesentlichen Bestandteile heutiger PCs.

Von-Neumann-Rechner

Die Anpassung für jedes zu lösende Problem erfolgt mit im Speicher abgelegten Programmen.

Diese Software beinhaltet die Informationen zur Steuerung des Rechners.

Jede Speicherzelle ist mit einer festen Adresse eindeutig identifizierbar.

In ihrer ursprünglichen Form verarbeitet sie mit nur einem Prozessor Schritt für Schritt Befehle und Daten, die aus dem Speicher stammen.

Obwohl Befehle und Daten aus dem gleichen Speicher kommen, gibt es nur eine Busverbindung für Beides dorthin.

So wurde eine hierarchisch gegliederte Speicherstruktur mit Registern und verschiedenen Cache-Ebenen eingeführt.

Die sequenzielle Befehlsausführung wird in der CPU nach Kräften parallelisiert.

Dazu stehen mehrere Funktionseinheiten und Ausführungsebenen bereit.

Erweiterte Architektur

Der Von-Neumann-Rechner holt alle Befehle und Daten direkt aus dem Speicher. Für die heutigen CPUs wäre das viel zu langsam.

Die tecChannel-CPU orientiert sich hinsichtlich Arbeitsweise stark an den x86-Prozessoren der PCs.

Deshalb besitzt sie einen zusätzlichen Registersatz, der den Zugriff auf Befehle und Daten ohne Wartezyklen ermöglicht.

Es handelt sich um Mehrzweckregister für Befehle und Daten.

Das Adresswerk ist für die Berechnung der effektiven Adresse zuständig.

Und der L1-Cache entkoppelt den Prozessorkern zusätzlich vom langsamen externen Speicher.


Beispiel-Prozessor: Die erweiterte tecChannel-CPU hat schon alles, was einen einfachen Mikroprozessor ausmacht.


Wie die einzelnen Funktionsblöcke genau arbeiten, klären wir in den folgenden Abschnitten.

  • Holphase (Fetch): Zunächst muss ein Befehl aus dem Speicher geladen werden.

Wenn sich die gesuchte Information noch nicht im L1-Cache befindet, muss die BIU dafür den Speicher ansprechen.

  • Dekodierphase (Decode): Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte. Es entscheidet, welche Operation (Addition, Subtraktion, logische Verknüpfung und so weiter) die ALU auszuführen hat.
  • Ausführungsphase (Execute): Die ALU wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den geladenen Daten auszuführen
  • Schreibphase (Write Back): Das Ergebnis der Operation landet in einem der Register oder im Speicher.

Um langwierige Zugriffe auf das externe RAM zu vermeiden, sammelt die CPU die Daten eventuell im L1-Cache, damit sie später in einem schnellen Blockschreibvorgang übertragen werden können.

Steuereinheit (CU)

Die CU ist die Kommandozentrale der CPU.

Sie steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.

Die CU holt sich diesen Befehl aus dem Arbeitsspeicher/Cache und speichert ihn in einem Register zwischen.

Damit ist der CPU-Bus frei für weitere Aktionen.

Im Befehlsdecoder untersucht die CU die einzelnen Bits des commandos dann genauer.

Aus einem Teil der Information ergibt sich der weitere logische und zeitliche Ablauf bei der Befehlsausführung.

Handelt es sich um einen fest implementierten Befehl, werden sofort die entsprechenden Schritte in der Ablaufsteuerung eingeleitet.

Sind alle zur Steuerung notwendigen Informationen gesammelt, beginnt die Ablaufsteuerung damit, das System zu koordinieren.

Dazu gehört auch die Steuerung der BIU, um die Operanden für die Rechenbefehle in die Register zu laden.

Control Unit: Die CU steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.

Rechenwerk (ALU)

Die ALU ist in der CPU für die Rechenarbeit zuständig.

Alle aktuellen PC-Prozessoren besitzen neben einem oder mehreren dieser Rechenwerke für Ganzzahlen auch solche für Fließkommaarithmetik.

Das Bild zeigt den Datenweg unserer Beispiel-CPU.

Die CU steuert die ALU, die auf Anweisung die beiden Operanden aus dem Registersatz holt, mit denen sie rechnen soll.

Sie werden zunächst in den beiden Hilfsregistern zwischengepuffert, damit sie während der gesamten Rechenoperation stabil anliegen.

Im nächsten Schritt führt die ALU die von der CU geforderte Rechenoperation aus.

Das Resultat wird schließlich im Ergebnisregister zwischengepuffert, damit sich die ALU sofort der nächsten Aufgabe zuwenden kann.

Arithmetical and Logical Unit: Die ALU und ihr Datenweg. Die Hilfsregister für die Operanden und Ergebnisse gehören zu diesem nktionsblock.

Adresseinheit (AU) & Busschnittstelle (BIU)

Der Aufbau der AU mit einem zentralen Addierer in Bild 5 ähnelt dem der ALU.

Tatsächlich wurde die Adressberechnung bei den ersten Prozessoren auch noch in dieser erledigt.

Die spezialisierte AU erledigt das jedoch schneller und vor allem parallel zur ALU.

Der Decoder ist im einfachsten Fall als Linksschieberegister realisiert.

Dieser Barrel Shifter extrahiert die Adressinformation aus dem Befehl durch Verschieben des Befehlscodes um n Bits in nur einem Taktzyklus.

Die extrahierte Grundadresse gelangt dann in Hilfsregister A, wo Sie stabil anliegt bis der Addierer seine Arbeit beendet hat.

Hilfsregister B beinhaltet den Inhalt des Programmzählers oder den des BIU-Adresspuffers.

Die komplexere MMU realer PC-Prozessoren kann darüber hinaus virtuelle Adressen verwalten.

Das Betriebssystem lagert hierbei den Speicher blockweise auf die Festplatte aus.

Greift die CPU auf den ausgelagerten Speicher zu, verursacht das einen Seitenfehler, der die MMU zum Handeln veranlasst.

Das Betriebssystem blendet dann den gewünschten Speicherbereich in das RAM des PCs ein und lagert einen gerade nicht benötigten dafür aus.

Den virtuellen Speicher kann die CPU dank MMU so ansprechen, als wäre er real existierendes RAM.

Address Unit: Die AU sorgt für die Berechnung der Adresse. In modernen CPUs verseht eine leistungsfähigere MMU diesen Dienst.

Busschnittstelle (BIU)

Die Busschnittstelle verbindet die internen Busse des Prozessors mit der Außenwelt.

Sie enthält Puffer zur Zwischenspeicherung von Adressen, Daten und Steuersignalen.

Die CPU arbeitet intern mit einer möglichst niedrigen Spannung, damit die Erwärmung bei hohen Taktfrequenzen in erträglichen Grenzen bleibt.

Die BIU sorgt deshalb auch für eine Pegelanpassung zwischen dem CPU-Kern und dem externen Bussystem.

Cache-Grundlagen

Zur Steigerung der Arbeitsleistung sitzt in der CPU zwischen den extrem schnellen Funktionseinheiten und dem vergleichsweise sehr langsamen Arbeitsspeicher der L1-Cache.


Cache Interna: Der prinzipielle Aufbau eines Caches (oben) sowie die Adressauswertung im Cache-Controller (unten).

Cache-Organisation

Assoziativspeicher: Der teilassoziative Mehrweg-Cache beinhaltet im Prinzip mehrere Direct Mapped Caches plus Statistik-Bits (LRU).

Pipeline-Verfahren

Pipeline in Funktion: Mit der Pipelining-Technik lässt sich die Befehlsausführung beschleunigen.

Superskalare Architektur

Parallel ist schneller: Superskalare Architekturen mit einer doppelten Pipeline (oben) und parallel arbeitenden Ausführungseinheiten (unten).

Sprungvorhersage

Dynamische Sprungvorhersage