Bild 1: Blockdiagramm des ARM Cortex-M7.

Bild 1: Blockdiagramm des ARM Cortex-M7.Cadence

Die energiesparenden, einfach einsetzbaren Mikroprozessoren der ARM Cortex-M-Serie (Bild 1) sind bei tragbaren und drahtlosen Embedded-Anwendungen inzwischen weit verbreitet. Bei Designs mit hoher Leistungsfähigkeit ist der Energieverbrauch ein wichtiger Aspekt, da bei hohen Frequenzen die Leistungsaufnahme schnell mehrere Watt erreichen kann. Um damit umzugehen, ist ein komplexes Wärmemanagement auf Systemebene nötig, das höhere Kosten verursacht und eine potenzielle Fehlerquelle darstellt.

Dynamische Leistungskomponenten

In Hochleistungsmikroprozessoren gibt es mehrere Ursachen für die hohe Verlustleistung. Bereits die hohe Zahl integrierter Bauteile und Leitungen in einem großen Chip erhöht die Gesamtkapazität des Designs. Um hohe Performance zu erreichen, sind auch immer höhere Taktfrequenzen nötig. Allerdings ist die dynamische Leistung direkt proportional zur Häufigkeit der Umladung der Kapazitäten (also zur Taktfrequenz).

Eckdaten

Die Reduzierung der Verdrahtungslängen und die Slack-Profil-basierende Platzierung sowie die Voraussage des genauen Einflusses des Routings in einer frühen Phase des Designs sind wichtige Aspekte, um die Leistung zu verbessern und den dynamischen Stromverbrauch im Design zu reduzieren. Die Tools leisten mehr, wenn der richtige Floorplan zusammen mit den geeigneten Direktiven an passenden Stellen vorgegeben ist. Mit einer Kombination von Designänderungen, fortschrittlichen Tools und Entwicklungsexpertise können Entwicklungsingenieure heute die Herausforderungen des Timing-Closure umfassend adressieren und gleichzeitig den dynamischen Stromverbrauch des Designs niedrig halten.

Ein weiterer Aspekt ist der ineffiziente Einsatz von Gates. Die Schaltkapazität der Bauteile setzt sich aus Gate-Oxid-Kapazität, Überlappungskapazität und Sperrschichtkapazität zusammen. Außerdem ist der Einfluss der internen Knoten eines komplexen Logikgatters zu berücksichtigen. Zum Beispiel trägt die Sperrschichtkapazität hintereinander geschalteter NMOS-Transistoren in einem NAND-Gatter zur Gesamtschaltkapazität bei, obwohl diese nicht am Output-Knoten erscheint. Die dynamische Leistung wird verbraucht, wenn ein Gatter umschaltet.

Den Takt verstehen

Das Interesse im physikalischen Designbereich hat indessen zugenommen: Das Ziel lautet, die verfügbaren Gatter besser zu nutzen, indem man die Rate der Taktzyklen beim Umschalten eines Gatters erhöht. Damit erhöhen sich allerdings auch die Aktivitäten auf dem Bauteil, was wiederum den Leistungsverbrauch anhebt. Die dynamische Leistungsaufnahme hat den größten Anteil am Stromverbrauch des Gesamtchips (der Rest entfällt auf Kurzschlussleistung und Leckstromleistung). Da der Leckstrom nur <2 % der Gesamtleistung ausmacht, konzentriert sich dieser Beitrag auf die dynamische Leistung. Die Formel für die dynamische Leistung lautet:

  • Pdynamic = α·C·Vdd2·f

Hierbei steht C für die Kapazität, die ge-/entladen wird, Vdd ist die Versorgungsspannung, f ist die Arbeitsfrequenz und α ist ein Maß für die Schaltaktivitäten. Diese Formel nimmt an, dass die Ausgangslast einen vollen Spannungshub Vdd erfährt. Wenn dies nicht der Fall ist und es Schaltungen gibt, die diese Tatsache ausnutzen, wird Pdynamic proportional zu (Vdd · Vswing). Daher ist hier eine kurze Diskussion des Schaltfaktors α erforderlich. Er ist in diesem Modell als die Wahrscheinlichkeit definiert, dass ein Gatter in einem beliebigen Taktzyklus am Ausgang einen Low-zu-High-Übergang erfährt. Zum Beispiel findet bei einem Takt-Buffer in jedem Taktzyklus sowohl ein Übergang von Low zu High als auch von High zu Low statt.

Folglich ist α für ein Taktsignal gleich 1, da es mit jedem Taktzyklus einen energieverbrauchenden Übergang gibt. Glücklicherweise sind die Aktivitätsfaktoren der meisten Schaltungen viel kleiner als 1. Einige typische Werte für Logik sind ungefähr 0,5 für Datenpfad-Logik und 0,03 bis 0,05 für Steuerlogik. In den meisten Fällen nutzen wir einen Standardwert von 0,15 für α. Dieser Wert ist in der Literatur in der Regel für statische CMOS-Designs angegeben. Bemerkenswerte Ausnahmen für diese Annahme sind Cache-Speicher, wo Schreib-/Lese-Operationen fast in jedem Zyklus stattfinden, und Taktschaltungen. Die fünf wichtigsten Komponenten im Hinblick auf den dynamischen Stromverbrauch sind:

  • Standardzellenlogik und lokale Verdrahtung
  • Globale Verbindungen (hauptsächlich Busse, Routing zwischen Modulen und andere Steuerungen)
  • Globale Taktverteilung (Treiber + Verbindungen + sequenzielle Elemente)
  • Speicher (Onchip-Cache) – in unserem Fall konstant
  • I/Os (Treiber + kapazitive Lasten außerhalb des Chips) – in unserem Fall konstant

Komponenten für das Timing-Closure

Ein grundsätzliches Problem des Timing-Closure ist die Modellierung der physischen Überbelegung. Das Problem umfasst unter anderem die Darstellung und das Handling verschiedener Layout-Probleme. Während ein sauberes und universelles mathematisches Modell der physikalischen Constraints offen bleibt, neigen Entwickler dazu, das Layout-Problem mit Hilfe mehrerer Constraints und komplexen Details zu formulieren, welche die Implementierung verkomplizieren. Für einen Timing-Closure-Designprozess müssen daher mehrere Constraints mit einer einheitlichen Zielfunktion bedacht werden.

Bild 2: Um die Platzierungsdichte zu verbessern, hat ARM bestimmte Teile des Designs soft-blocked gehalten und die Standardzelldichte auf über 75 % gehoben.

Bild 2: Um die Platzierungsdichte zu verbessern, hat ARM bestimmte Teile des Designs soft-blocked gehalten und die Standardzelldichte auf über 75 % gehoben.Cadence

Die Signalintegrität-Effekte (SI) müssen unbedingt vorausgesagt werden, bevor das detaillierte Routing erfolgt, da eine umfangreichere Fehlinterpretation des Timings vor dem detaillierten Routing zu Timing-Sprüngen nach dem Routing führen kann. Aus der Erfahrung betrachtet, erfolgte bei Designs mit einem schwierigen Timing-Closure nur eine Post-Route-Optimierung, um das Setup-/Hold-Timing zu klären. Mit der Einführung der „In-Route-Optimierung“ ist das Timing-Closure während des Routings mittels einer Track-Zuordnung früher möglich.

Bessere Platzierung

Während der Evaluierung des Floorplans und der Zellenplatzierung wurde festgestellt, dass der Floorplan größer als erforderlich und die Platzierungsdichte der Zellen einheitlich war. Diese zwei Aspekte könnten auf eine unnötige Ausbreitung der Zellen hinweisen, was längere Verbindungen und höhere Takt-Latenzen zur Folge hätte. Um die Platzierungsdichte zu verbessern, wurden bestimmte Teile des Designs soft-blocked und die Standardzelldichte auf über 75 % gehalten (Bild 2).

Bild 3: Die Giga-Place-Engine von Cadence hilft dabei, die Zellen in einem Timing-gesteuerten Modus zu platzieren.

Bild 3: Die Giga-Place-Engine von Cadence hilft dabei, die Zellen in einem Timing-gesteuerten Modus zu platzieren.Cadence

Die Platzierung der Standardzellen spielt dabei eine entscheidende Rolle. Erfolgt dies korrekt, dann kann sich das durch einen besseren QoR-Wert (Quality of Results) und eine Reduzierung der Verbindungslängen auszahlen. Wenn die Platzierungsalgorithmen außerdem gewisse Aspekte bei der Wärmeabfuhr berücksichtigen, wie eine Reduzierung der Verbindungslängen und des gesamten Slack-Profils des Designs, und zudem eine korrekte Platzierung erfolgt, dann kann dies zu einer deutlichen Verbesserung führen. Dies ist das Grundprinzip der Platzierungs-Engine Giga-Place, die im Cadence Innovus-Implementierungssystem verfügbar ist.

Bild 4: Reduzierte Verbindungslängen mit Giga-Place und Soft-Blocked-Placement.

Bild 4: Reduzierte Verbindungslängen mit Giga-Place und Soft-Blocked-Placement.Cadence

Die Engine hilft dabei, die Zellen in einem Timing-gesteuerten Modus zu platzieren, sodass das Slack-Profil der Pfade aufgebaut und die Platzierungsanpassung auf der Basis dieser Timing-Slacks durchgeführt wird. Cadence hat die neue Platzierungs-Engine mit dem ARM Cortex-M7-Design vorgestellt und gute Verbesserungen bei den gesamten Verbindungslängen und dem TNS-Wert (Total Negative Slack) erreicht.

Mit einem reduzierten Floorplan und durch die Vermeidung einer einheitlichen Platzierung sowie dem Einsatz der neuen Giga-Place-Technologien konnte Cadence die Verbindungslängen deutlich reduzieren (Bild 4). Damit ließ sich sowohl die Frequenz erhöhen (Bild 5) als auch die Leistungsaufnahme reduzieren.

Bild 5: Total-Negative-Slack bei einem Takt von 500 MHz.

Bild 5: Total-Negative-Slack bei einem Takt von 500 MHz.Cadence

In-Route-Optimierung

Die In-Route-Optimierung zur Timing-Optimierung geschieht vor dem Routing (Bild 6). Sie ist eine sehr genaue Darstellung der echten Verbindungen, die allerdings keine DRC-Korrekturen und keinen Leaf-Cell-Pin-Zugriff berücksichtigt. Das ermöglicht Anwendern, einen genauen Timing-/SI-Einblick zu erhalten und umfangreichere Änderungen vorzunehmen, ohne die Verbindungen zu unterbrechen. Diese Änderungen sind dann für ein vollständiges detailliertes Routing festgelegt.

Bild 6: Vor dem Routing erfolgt die In-Route-Optimierung zur Timing-Optimierung.

Bild 6: Vor dem Routing erfolgt die In-Route-Optimierung zur Timing-Optimierung.Cadence

Die In-Route-Optimierungstechnologie nutzt eine interne Extraktions-Engine für eine effiziente RC-Modellierung. Die nach der Post-Route-Optimierung beobachtete Timing-QoR-Verbesserung erfolgte deutlich und auf Kosten einer geringen Laufzeiterhöhung (aktuell wurden nur 2 % beobachtet). Durch die erfolgreiche Nutzung eines internen Extraktionsmodells während der In-Route-Optimierung ließ sich die beim Übergang von Pre-Route zu Post-Route festgestellte Timing-Divergenz reduzieren. Mit dieser Optimierungstechnologie konnte ARM das Design so verbessern, dass es die vorgesehene Frequenz erreichte.

Designänderungen

ARM hat drei Arten von Experimenten durchgeführt, um die dynamische Leistungsaufnahme des Designs zu reduzieren. Das erste Experiment nutzte dazu zwei entscheidende Tool-Merkmale: die „Dynamic Power Optimization Engine“ und die „Area Reclaim“-Funktion in der Post-Routing-Stufe. Mit diesen Optionen konnte die dynamische Leistung um 5 % bei 400 MHz verringert werden. Damit ließ sich die Lücke zwischen dem ursprünglichen und dem gewünschten Leistungsziel halbieren.

Bild 7: Beispiel einer Leistungsoptimierung.

Bild 7: Beispiel einer Leistungsoptimierung.Cadence

Im zweiten Experiment verkleinerte ARM den Floorplan um 100 µm, um die Verbindungslängen zu reduzieren. Dies ist im Detail bereits in einem vorhergehenden Abschnitt diskutiert. Die Verkleinerungen im Floorplan sind zurückzuführen auf:

  • Erhöhung der Dichte von ~76 % auf 85 %
  • Reduzierung der Verbindungslängen um 5,1 % – nach dem Routing
  • Fläche (in Kombination mit #1 und Reduzierung), Verkleinerung um ~4 % – nach dem Routing

Dadurch konnten zusätzliche 2 % bei 400 MHz eingespart werden, wobei eine ähnliche Auswirkung über den Frequenzbereich feststellbar war.

Bild 8: Dynamischer Energieverbrauch von Logikgattern.

Bild 8: Dynamischer Energieverbrauch von Logikgattern.Cadence

Die dritte Versuchsreihe umfasst Designänderungen, bei denen die Flop-Größen auf ein Minimum von „pre_cts“ verkleinert und die restlichen Flops mit höheren Treiber-Stärken auf „nicht nutzen“ gesetzt waren. Damit konnte ARM den sequenziellen Leistungsbedarf weiter reduzieren, ohne die kombinierte Leistung deutlich zu erhöhen.

Ergebnisse

Durch den Einsatz dieser neuen Tool-Technologien und Designverfahren konnte ARM eine um 10 % höhere Frequenz und eine um 10 % reduzierte dynamische Leistung erreichen. Die in Tabelle 1 dargestellten Ergebnisse basieren auf 400 MHz und 200 MHz für die dynamische Leistungsreduzierung.

Tabelle 1: Ergebnisse der reduzierten, dynamischen Leistung.

Tabelle 1: Ergebnisse der reduzierten, dynamischen Leistung.Cadence

Bei ihrer Zusammenarbeit haben ARM und Cadence zuerst die Herausforderungen an zwei Punkten/Szenarien auf der PPA-Kurve (Power, Performance, Area) betrachtet:

  • Konzentration auf die Frequenz bei optimaler Leistung (400 MHz)
  • Niedrigste Leistung bei reduzierter Frequenz (200 MHz)

Beim ersten Szenario konnte 400 MHz mit standardmäßigem 14.1-System erreicht werden. Mit dem Einsatz der Power-Opt-Technologie, die im Innovus-Implementierungssystem verfügbar ist, konnte die Leistungsaufnahme auf einen optimalen Wert reduziert werden. Beim zweiten Szenario erlaubte der zusätzliche Einsatz der Giga-Place-Technologie und eines besseren SI-Managements ein entspanntes Takt-Slew und es war eine viel höhere Leistungsreduzierung bei 200 MHz möglich. Mit der Kombination von ARM Design-Techniken und Cadence Tool-Merkmalen konnte eine dynamische Leistungsreduzierung (für Standardzellen) um 38 % ab 400 MHz erreicht werden – 13.2-basierter Lauf bis 200 MHz – bestes 14.2 Leistungsrezept.