CPU

1. Komponenten eines Prozessors

 

 

 
Steuerwerk       Rechenwerk     Cache  
 

Befehlsdecoder

  • Instruction Decode Unit
  • übersetzt eingehende Befehle in Mikrocode
  • bereitet Ausführung vor

 

 

Kontrolleinheit

  • Control Logic
  • steuert Ablauf der Mikroprogramme

 

 

Bussteuereinheit

  • Bus Interface Logik
  • steuert und bewacht internen Bus

 

     

Arithmetisch logische Einheit

  • führt arithmetische und logische Rechenoperationen aus

 

     

Cachespeicher für Daten

  • Data Cache Unit
  • schneller Zwischenspeicher für Daten

 

 
                                                 
                 

Busschnittstelle

  • Bus Interface Unit
  • Schnittstelle zwischen internem Prozessorbus und Front Side Bus
                         
    Interner Bus   Interner Bus    
                                       
                                                 
 

Ausführungseinheit

  • Execution Unit
  • führt die im Mikrocode vorliegenden Befehle aus
 

Interner ROM-Speicher

  • Internal ROM
  • beinhaltet die Mikroprogramme des Prozessors
             

Co-Prozessor

  • Floating Point Unit
  • führt Berechnungen mit Fließkommazahlen aus
     

Cachespeicher für Befehle

  • Code Cache
  • schneller Zwischenspeicher für Befehle
 
                                 
               
Front
Side
Bus

 

                 
         

Chipsatz

  • Northbridge

 

                 

 

2. Befehls- und Datenstrom  (Von-Neumann-Zyklus)

 

3. Prozessorkenngrößen

  Arbeitsweise während Befehlszyklus SISD
  • single instruction stream, single data stream
  • Befehle werden einzeln nacheinander von Rechenwerk ausgeführt
   SIMD
  • single instruction stream, multiple data stream
  • schnelle Ausführung gleichartiger Rechenoperationen auf mehrere gleichzeitig eintreffende  Eingangsdatenströme
   MIMD
  • multiple instruction stream, multiple data stream
  • gleichzeitig verschiedene Operationen auf verschieden Eingangsdatenströmen
  Architektur RISC
  • Reduced Instruction Set Computing
  • Prozessoren die einen verhältnismäßig kleinen, aber effizienten Befehlssatz verarbeiten können
  • versteht nur 128 oder weniger Befehle
  • daher einfacher Aufbau und geringe Chipfläche
  • die wichtigsten Befehlsfolgen sind auf Chip fest verdrahtet (brauchen nicht durch Mikroprogramm aufgerufen werden, das erst geladen und dann ausgeführt werden müsste)
  • daher hohe Verarbeitungsgeschwindigkeit
   CISC
  • Complex Instruction Set Computing
  • Allround - Prozessoren die einen umfassenden, komplexen Befehlssatz verarbeiten können
  • versteht zwischen 200 und 400 Befehlen
  • daher komplizierter Aufbau und große Chipfläche
  • Umsetzung der Prozessorbefehle durch Mikroprogramme, die im ROM des Prozessors gespeichert sind
  • daher geringe Verarbeitungsgeschwindigkeit

 

  Taktfrequenz CPU - Takt
  • Maß für die Geschwindigkeit, mit der ein Prozessor arbeiten kann
  • wird in Megahertz (MHz) oder Gigahertz (GHz) angegeben
  • liegt heute um 3 GHz
   CPU - Bustakt
  • auch bekannt unter: Backsidebus, Speicherbus, oder interner Bus
  • Maß für die Geschwindigkeit, mit der Daten und Adressen auf den Front Side Bus übertragen werden können
  • heute viel geringer als CPU - Takt
  Verarbeitungsbreite MIPS
  • Millions of Instructions per Second
  • Millionen Anweisungen pro Sekunde
  • gibt an, wie viele Anweisungen ein Prozessor innerhalb einer Sekunde verarbeitet

   MFLOPS
  • Million Floating Point Operations per Second
  • Millionen Gleitkomma-Operationen pro Sekunde
  • Maß für die durchschnittliche Rechenleistung eines Prozessors
  Cache Level 1 Cache
  • hält die aktuellen Adressen, Befehle und Zwischenergebnisse auf Vorrat, damit diese schneller aufgerufen werden können
  • liegt direkt im Prozessorkern
  • von 8 bis 256 KB
   Level 2 Cache
  • puffert größere aktuell zu verarbeitete Datenbestände / Programmabschnitte
  • liegt in Prozessornähe auf dem Board
  • mit Prozessortakt betrieben
  • von 512 KB bis 16 MB
  Core-Spannung
  • Spannung mit welcher der Prozessorkern arbeitet
  • von 0,9V bis 1,75V
  • niedrige Core-Spannung verringert Leistungsaufnahme und damit Abwärme und ermöglicht höhere CPU-Taktraten
  Herstellungstechnologie
  • Größe der integrierten Transistoren und deren elektrische Verbindungen
  • Strukturgröße von 0,18µm bis 0,13µm

 

4. Formen der Leistungssteigerung

4.1. Pipelining

Bei jedem Befehl den ein Prozessor ausführt, muss er nach Neumann fünf Teilschritte abarbeiten:

Für einen Befehl sind also mindestens fünf Takte nötig. Für zwei Befehle werden dann 10 Takte benötigt.

Takt

1 2 3 4 5 6 7 8 9 10
                     
Befehl holen Befehl 1         Befehl 2        
Befehl decodieren   Befehl 1         Befehl 2      
Operanden holen     Befehl 1         Befehl 2    
Befehl ausführen       Befehl 1         Befehl 2  
Ergebnis ausgeben         Befehl 1         Befehl 2

Um die Leistung der CPU zu erhöhen, werden nun einfach fünf Funktionseinheiten auf einen Chip integriert, die parallel miteinander arbeiten. So ist die eine Funktionseinheit dafür zuständig, die Befehle zu holen, während die zweite alle Befehle dekodiert usw. Diese Funktionseinheiten werden auch Pipelines genannt.

Die Zeitersparnis wird im folgenden Bild deutlich:

Takt

1 2 3 4 5 6 7 8 9 10
                     
Befehl holen Befehl 1 Befehl 2                
Befehl decodieren   Befehl 1 Befehl 2              
Operanden holen     Befehl 1 Befehl 2            
Befehl ausführen       Befehl 1 Befehl 2          
Ergebnis ausgeben         Befehl 1 Befehl 2        

Während im ersten Takt nur der Befehl 1 geholt wird, arbeiten im zweiten Takt schon zwei Funktionseinheiten gleichzeitig. Die erste Pipeline holt schon den zweiten Befehl und die zweite Pipeline decodiert den ersten.

Nach fünf Takten arbeitet die CPU optimal. Nun wird mit jedem Takt nicht nur ein neuer Befehl geholt, sondern auch immer ein Ergebnis ausgegeben. Theoretisch arbeitet die CPU wegen der fünfstufigen Pipeline nun auch fünfmal schneller:

Takt

1 2 3 4 5 6 7 8 9 10
                     
Befehl holen Befehl 1 Befehl 2 Befehl 3 Befehl 4 Befehl 5 Befehl 6        
Befehl decodieren   Befehl 1 Befehl 2 Befehl 3 Befehl 4 Befehl 5 Befehl 6      
Operanden holen     Befehl 1 Befehl 2 Befehl 3 Befehl 4 Befehl 5 Befehl 6    
Befehl ausführen       Befehl 1 Befehl 2 Befehl 3 Befehl 4 Befehl 5 Befehl 6  
Ergebnis ausgeben         Befehl 1 Befehl 2 Befehl 3 Befehl 4 Befehl 5 Befehl 6

Eine weitere Leistungssteigerung wird erreicht, wenn statt der einen fünfstufigen Pipeline eine doppelte fünfstufige Pipeline zum Einsatz kommen. Der Pentium 4 arbeitet z.B. mit zwei Pipelinestufen, der U und V Pipeline.

Probleme

Um ein optimales Pipelining abzusichern, sollten die Befehle in der Reihenfolge abgearbeitet werden, wie sie tatsächlich bei der Programmausführung aufgerufen werden. Das wird durch die Datenflussanalyse und die erweiterte Sprungvorhersage (Advanced Dynamic Execution) ermöglicht.
 

4.2. Datenflussanalyse

  Erstellung einer optimalen Reihenfolge der Befehlsabfolge

 

4.3. Erweiterte Sprungvorhersage (Advanced Dynamic Execution)

  Sprünge und Verzweigungen werden gesucht

 

4.4. Spekulative Ausführung (Speculative execution)

  Befehle werden im Voraus abgearbeitet, Ergebnisse sind sofort abrufbar, wenn Ausführung des Befehls tatsächlich verlangt wird

 

4.5. Hyperthreading

  gleichzeitige Abarbeitung mehrerer Prozesse

 

Aufgaben

Leistungsparameter

Prozessor 1

Core 2 Duo

Prozessor 2

Athlon 64 X2 4600+

Prozessor 3

Pentium D 820

Realtakt

 2666 MHz  2400 MHz  2800 MHz

Fertigung

65 nm 90 nm 90 nm

Kernanzahl

2 2 2

FSB (effektiv)

1066 MHz 800 MHz 800 MHz

L1-Befehlscache

 32 KByte  128 KByte  24 KByte

L1-Datencache

 32 KByte  64 KByte  32 KByte

L2-Cache

4096 KByte  1024 KByte  2048 KByte

Befehlssätze

MMX, SSE,SSE2, SSE3, SSE4 MMX, SSE, SSE2, SSE3, 3DNow!, 3DNow!+ MMX, SSE, SSE2, SSE3

Prozessoraufbau

12-stufige Pipeline 17-stufige FPU und 12-stufige ALU Pipeline 31-stufige Pipeline

Transistoren

291 Mio. 154 Mio. 230 Mio.

Kerngröße

143 mm² 147 mm² 206 mm²

Sockel

 LGA 775  939 LGA 775

Leistungsaufnahme

65 W 110 W 95 W