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 2

Front-End verarbeitet zwei Befehlstypen

Bild 3. Denvers CPU-Mikroarchitektur. Einem ziemlich einfachen Front-End folgt eine breite Anordnung von Ausführungseinheiten, die zwei Integer-, zwei Gleitkomma-, zwei Lade-/Speichern-Einheiten und eine Verzweigungseinheit beinhaltet. (Bild: Elektro
Bild 3. Denvers CPU-Mikroarchitektur. Einem ziemlich einfachen Front-End folgt eine breite Anordnung von Ausführungseinheiten, die zwei Integer-, zwei Gleitkomma-, zwei Lade-/Speichern-Einheiten und eine Verzweigungseinheit beinhaltet. (Bild: Elektronik)
© Elektronik

Der Denver-Mikroarchitektur verbindet ein ziemlich einfach gestaltetes Front-End mit zahlreichen Ausführungseinheiten (Bild 3). Der Befehls-Cache umfasst 128 KB, das Vierfache der üblichen Größe für den Cortex-A15 und andere beliebte ARM-CPUs. Das 3-fache Code-Erweiterung durch Mikro-Ops hat Nvidia zu diesem größeren Cache gezwungen. Der Anweisungs-TLB hat 128 Einträge und arbeitet vier-Wege-assoziativ. Bei jedem Taktzyklus füttert der Befehls-Cache 32 Bytes in die Warteschlange. Diese Bandbreite entspricht der maximalen Bündelgröße.

In ARM-Modus lädt die Abruf-Warteschlange acht Byte pro Taktzyklus in die ARM-Dekoder, die zwei ARM-Anweisungen in Mikro-Ops dekodieren. Die Dekoder verarbeiten sowohl ARMv8-Anweisungen als auch ARMv7-Apps im AArch32-Modus. Wenn möglich kombiniert ein Dekoder die Micro-Ops in ein einziges Bündel. Wenn die beiden Befehle Abhängigkeiten oder Ressourcenkonflikte haben, erstellt er zwei getrennte Bündel.

Im nativen Modus extrahiert die Abruf-Einheit ein einzelnes Bündel mit variabler Länge aus der Warteschlange und speist es in den Mikrocode-Dekoder ein. Auch wenn die Mikro-Befehle im Speicher in einer erweiterten Form gespeichert werden, werden einige Felder gemultiplext, um die Aufblähung des Codes zu reduzieren. Der Mikrocode-Dekoder demultiplext diese Felder in eine Reihe von Signale, die z.B. anzeigen, welche Funktionseinheit jeden Mikro-Op auszuführen wird. Hierdurch wird der Betrieb des Schedulers beschleunigt.

Wie oben erwähnt, enthält ein Bündel maximaler Größe meist fünf oder sechs Mikro-Befehle, die im Durchschnitt drei ARM-Anweisungen darstellen. Selbst unter der Annahme, dass der Optimierer solche Bündel schafft, hat Denver Schwierigkeiten, mehr als fünf Mikro-Ops oder mehr als drei ARM-Anweisungen pro Taktzyklus zu schaffen. Im Vergleich dazu ist die maximale nachhaltige Ausführungsrate in ARM-Modus zwei ARM-Anweisungen pro Taktzyklus.

Die Denver-Mikroarchitektur ist ein In-Order-Design, wodurch die Notwendigkeit für Umordnungs-Puffer oder ähnliche Hardware-Strukturen entfällt. Alle Befehlsbündel, ob sie vom ARM-Dekoder oder dem Mikrocode-Dekoder kommen, werden in der gleichen Weise behandelt, sobald sie den Scheduler erreichen. Der Scheduler prüft nur die Mikrobefehle, um sicherzustellen, daß alle Operanden verfügbar sind. Wenn sich einer der Operanden verzögert (z.B. aufgrund eines unerwarteten Cache-Miss) wird die Ausführung angehalten, bis die Abhängigkeit aufgelöst ist. Diese Zustände passieren häufiger im ARM-Modus, weil der Optimierer versucht, den Mikrocode so zu gestalten, dass Blockaden vermieden werden.

Die CPU verfügt über 64 Integer-Register und 64 Gleitkomma-/Neon-Register – doppelt soviele wie die Größe des ARMv8-Architektur-Registersatzes. In ARM-Modus nutzen die ARM-Register nur die niedrigeren Nummern der Mikrocode-Register. Im nativen Modus jedoch zieht der Optimierer Nutzen aus dem breiteren Registersatz, indem die zusätzlichen Register für die Umbenennung genutzt werden. Dieser Ansatz ist der Hardware-basierten Registerumbenennung in den meisten High-End-CPU-Designs ähnlich, aber er beseitigt die komplexe Logik zum Zuweisen und Verfolgen der Register-Zuordnung.


  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+