Schneller als Apple und Qualcomm

Nvidias erste eigene CPU rasiert die Konkurrenz

22. August 2014, 11:16 Uhr | Lars Bube

Fortsetzung des Artikels von Teil 4

Blick auf die Pipeline

Bild 4. Denvers CPU-Pipeline. Die ARMv8-CPU verwendet eine 15-stufige Pipeline, die in ihrer Länge ähnlich zum Cortex-A15 ist. (Bild: Elektronik)
Bild 4. Denvers CPU-Pipeline. Die ARMv8-CPU verwendet eine 15-stufige Pipeline, die in ihrer Länge ähnlich zum Cortex-A15 ist. (Bild: Elektronik)
© Elektronik

Die Denver-CPU verwendet eine mäßig lange Pipeline mit 15 Stufen, verglichen mit 18 Stufen für den Cortex-A15. Aufgrund der Ähnlichkeit in der Pipeline-Länge sollte sie in der Lage sein, die maximale Taktfrequenz des A15 annähernd erreichen zu können. In mobilen Systemen wird jedoch die Geschwindigkeit des Cortex-A15 durch seine Leistungsaufnahme (thermische Grenzen), nicht durch seine Pipeline limitiert. Mit nur zwei statt vier Cores bietet Denver mehr thermischen Spielraum, der dem Tegra K1-64 hilft, etwas höhere Taktraten als der K1-32 zu erreichen.

Nvidia entschied sich dafür, die Pipeline zu „verzerren“, d.h. den Ausführungszustand zu verzögern, bis auf den Daten-Cache zugegriffen wird (Bild 4). Diese Anordnung eliminiert im Wesentlichen die Load-Use-Strafe (Verzögerungen, die auftreten, wenn geladene Daten weiterverarbeitet werden sollen, ohne dass diese schon verfügbar sind), so dass der Optimierer einen Ladevorgang, eine abhängige ALU-Operation und eine abhängige Speicher-Operation bündeln kann. In diesem Fall berechnet die Lade-/Speicher-Einheit die Ladeadresse in Stufe EA2 und greift auf den Daten-Cache in den Stufen ED3 und EL4 zu. Die geladenen Daten werden direkt an die ALU in Stufe EE5 weitergeleitet. Das Berechnungsergebnis geht in die zweite Lade-/Speicher-Einheit, die die Speicheradresse in der Stufe ES6 berechnet und die Daten in EW7 speichert.

Dieser Entwurf liefert dem Optimierer eine größere Flexibilität, so dass er viele abhängige Operationen im selben Bündel kombinieren kann und somit die Anzahl der Befehle, die in jedem Taktzyklus ausgeführt werden, erhöht wird. Die Verzögerung der Ausführungsphase verlängert jedoch die Zeit, bevor eine Sprungfehlvorhersage entdeckt wird. Statt potenziell in der Stufe EA2 wird eine Vergleichsanweisung erst in EE5 ausgeführt. Wie Bild 4 zeigt, wird eine Fehlvorhersage mit 13 Taktzyklen bestraft, die heftig, aber immer noch kürzer als die 15-Zyklen-Strafe beim Cortex-A15 ist.

Um diese Fehlvorhersage-Strafe zu vermeiden, investierte Nvidia erhebliche Arbeit in die Verbesserung der Sprungvorhersagegenauigkeit. Verglichen mit dem A15 reduziert Denver die Sprungfehlvorhersagen um etwa 20 % bei SPECint2000, SPECfp2000 und Google Octane. Für alle drei Benchmarks liegt die Fehlvorhersage-Rate deutlich unter 1 %. Nvidia gibt keine Details der Denver-Sprungvorhersage-Hardware bekannt, deutete jedoch an, dass sowohl direkte als auch indirekte Prädiktoren sowie die üblichen Rücksprungadressen-Stacks genutzt werden.


  1. Nvidias erste eigene CPU rasiert die Konkurrenz
  2. Optimierer analysiert den ARM-Code und übersetzt ihn in den CPU-nativen Mikrocode
  3. Front-End verarbeitet zwei Befehlstypen
  4. Mikrokodierte Ausführungs-Engine
  5. Blick auf die Pipeline
  6. Tegra K1 mit Kepler-GPU
  7. Branchenführende CPU-Leistung
  8. Auswirkungen der dynamischen Übersetzung
  9. Die weitere Tegra-Roadmap
  10. Hoch über seine Rivalen

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu NVIDIA Corporate

Matchmaker+