Leistungsbudgets in SoC-Designs einhalten
Die Stromversorgung im Blick
Bei der Analyse der Leistungsaufnahme eines SoC-Designs ist es notwendig, das komplette System – auf realistische Weise – während der Hardware-/Softwarevalidierung zu betrachten. Mit dem Veloce-Emulator und Codelink liefert Mentor hierfür die notwendigen Tools.
Die Beurteilung der Leistungsaufnahme ist ein wichtiger Bestandteil der Systemvalidierung. Es reicht nicht mehr aus, durch Verifikation zu klären, ob ein SoC funktioniert. Designer müssen auch die Frage beantworten, ob das System das Leistungsbudget einhält. Eine korrekte Bewertung der Leistungsaufnahme erfordert jedoch eine Analyse der realen Anwendungsstimuli und die Verwendung von ausgereifter Software. Normalerweise beginnen die Softwareentwicklung und Verifikation erst, wenn das Design und die Implementierung der Hardware abgeschlossen sind. Oft arbeiten Hardwareteams zu diesem Zeitpunkt bereits am nächsten Projekt. Um die Leistungsaufnahme zu verifizieren und zu validieren, müssen Entwickler zumindest Teile der Software früher im Designzyklus entwerfen. Zudem muss die Software in einem Kontext laufen, in dem Leistungsdaten erfasst werden können.
Beim Versuch Probleme bei der Leistungsaufnahme herauszufinden, ist es entscheidend, dass das System auf realistische Weise betrieben wird. Nur wenn die komplette Software läuft und die Caches in einem typischen Zustand sind, erhält man ein realitätsnahes Leistungsprofil. Systementwickler können nicht benötige Teile eines Systems abschalten und somit große Energieeinsparungen ohne Kompromisse an der Funktionalität erzielen. Bei einem Kundenprojekt wurde ein derartiger Ansatz verwendet, wobei jedoch ein Problem festgestellt wurde. Die meiste Zeit funktionierte das System innerhalb der Akkulaufzeit sehr gut, gelegentlich (ca. zehn Prozent der Zeit) verabschiedete sich der Akku lange bevor er sollte. Die Entwickler waren verblüfft. Nach ausführlichem Debuggen entdeckten sie, dass eine der energiehungrigen Peripheriekomponenten dauerhaft eingeschaltet war, obwohl diese von keinem Prozess verwendet wurde. Um das Problem zu debuggen, stoppten sie die Arbeiten am Prototypen und kehrten zur Emulation zurück. Mit dem Veloce-Emulator von Mentor wollten sie die Ursache herausfinden. Veloce bietet eine Funktion, mit der man ein ‚Activity Plot‘ des Designs erstellen kann, das auf dem Emulator läuft. Der Activity-Plot zeigt einige Sample der Schaltaktivität des Designs. Obwohl die Schaltaktivität kein absolutes und exaktes Maß für die aufgenommene Leistung ist, lassen sich damit die verstecken Stromfresser herausfinden (siehe Bild oben).