Intel

Echtzeitverhalten bei dynamischen Taktänderungen

30. März 2023, 9:41 Uhr | Matthias Hahn und Markus Schweikhardt
© Intel

Schon seit Jahren ist ein Trend zur Konsolidierung verschiedener Anwendungen auf Industrie-PCs zu beobachten. Unterstützt wird dieser Trend durch moderne Prozessoren, die den Takt pro Kern regeln können und sich durch ein Umschaltverhalten mit geringer Latenz auszeichnen.

Viele Anwendungen im Bereich der industriellen Regelungs- und Automatisierungstechnik erfordern ein deterministisches Systemverhalten: So werden in jedem Prozesszyklus Sensordaten geladen, verarbeitet und davon ausgehend neue Ansteuerungsdaten bereitgestellt. Dabei müssen vorgegebene Zykluszeiten von mitunter weniger als 1 ms streng eingehalten werden. Das Überschreiten einer vorher festgelegten Zeitschranke (Deadline) wird als Versagen des Systems gewertet und kann hohe Kosten, mitunter auch Schäden an der angesteuerten Maschine, nach sich ziehen. Neben der Rechenzeit, die zur Verarbeitung der Daten nötig ist, tragen weitere Faktoren zur Gesamtantwortzeit bei – vom Auslesen angelegter Sensordaten bis zum Schreiben neuer Aktuatordaten. Hierbei hat auch einen wichtigen Einfluss, was parallel zu einer Echtzeitanwendung auf einem Prozessor ausgeführt wird. Denn Ressourcen wie gemeinsamer Cache oder verfügbare Speicherbandbreite werden geteilt und Rahmenbedingungen wie die maximal zugelassene Leistungsaufnahme oder Temperatur des Prozessors, gelten für die CPU als Ganzes.

Der Einfluss von DVFS auf Industrieanwendungen

Im Laufe der Jahre wurden Prozessoren zunehmend mit Dynamic Voltage and Frequency Scaling (DVFS)-Funktionen ausgestattet. Diese ermöglichen es, Taktfrequenzen bedarfsorientiert dynamisch anzupassen und dabei mitunter auch kurzzeitig die CPU zu übertakten. Insbesondere die Einführung von Hardware-Controlled P-States erlaubt ein noch granulareres Powermanagement. Hierbei übernimmt der Prozessor selbst die Ansteuerung der P-States in Abhängigkeit der CPU-Auslastung. Die P-States stellen Frequenz- und Spannungspunkte dar, um die jeweils optimale Performance, gleichzeitig aber auch Energieeffizienz für bestimmte CPU-Lasten zu ermöglichen. Das Betriebssystem hat die Möglichkeit, für die Hardware nicht bindende Vorgaben bezüglich der gewünschten minimalen und maximalen Frequenzen zu übermitteln.

Anbieter zum Thema

zu Matchmaker+
Echtzeitverhalten bei dynamischen Taktänderungen
Bild 1. Der Versuchsaufbau: Eine Best Effort-Anwendung und eine Echtzeit-Anwendung laufen parallel auf einem Prozessor.
© Intel

Übergänge von einem zum anderen P-State führten auf älteren Prozessoren häufig zu zusätzlichen Latenzen von etlichen Mikrosekunden. Diese wirkten sich auf alle aktiven Prozessorkerne gleichermaßen aus, da die jeweilige Frequenz und Spannung einheitlich gesetzt wurde. Für sehr viele Anwendungen ohne Echtzeitanforderungen stellen sporadische Latenzen kein Problem dar. Für Echtzeitanwendungen hingegen, insbesondere solche mit kurzen Zykluszeiten im Mikrosekundenbereich, kann dies eine nicht tolerierbare Jitterquelle sein. Erschwerend kommt die Beherrschbarkeit des Echtzeitverhaltens bei dynamischen Frequenzänderungen hinzu. Aus derartigen Überlegungen heraus werden bei Industrieanwendungen DVFS-Funktionen oft schon im BIOS deaktiviert.

Bei einigen jüngeren Prozessoren wurden Intel Time Coordinated Computing (Intel TCC) Funktionen eingeführt, die der Verbesserung des Echtzeitverhalten dienen. Zudem wurde auf manchen Prozessoren die Spannungs- und Taktfrequenzregelung dahingehend verändert, dass nun Rechenkerne einzeln und separat ansteuerbar sind. Schließlich sorgt ein verändertes Schaltverhalten für deutlich geringeren Latenzen bei P-State-Wechseln. Dadurch bieten sich Systemintegratoren neue Möglichkeiten zur IPC-Konfiguration, insbesondere auch bei konsolidierten Anwendungen.
Leistungsfähige Prozessoren bieten die Basis, um mehrere Anwendungen wie die Steuerung einzelner Maschinen, die Datenerfassung zur Prozessoptimierung, die Bedienoberfläche sowie Kommunikations-, Security- und Safety- Funktionen mit der Hilfe von „virtuellen Maschinen“ auf einem einzigen IPC zu konsolidieren und auszuführen. Dadurch lassen sich die Gesamtsystemkosten senken, die Bereitstellung beschleunigen und die Ressourcennutzung verbessern.

Konsolidierung auf IPCs

Die Konsolidierung von Anwendungen mit gemischter Kritikalität kommt mit neuen Anforderungen. In solch einem konsolidierten System ließe sich beispielsweise eine PLC- oder CNC-Anwendung, in einem Real-Time Operating System (RTOS) parallel zu einer Nutzschnittstelle (HMI) in einem General Purpose Operating System (GPOS) wie Microsoft Windows oder Linux ausführen.

Echtzeitverhalten bei dynamischen Taktänderungen
Bild 2. Die Messergebnisse des Systems mit TCC fähigem Prozessor Intel Core i5-1145GRE und erweiterten DFVS-Funktionen.
© Intel

In einer solchen Systemarchitektur wird das GPOS normalerweise als Best Effort (BE) behandelt und zielt auf maximale Spitzenleistung ab, während das RTOS auf die höchstmögliche Servicequalität in Bezug auf Determinismus abzielt. Mit den neuen Hardwaremöglichkeiten im Bereich DVFS sind auch derartige Anforderungen realisierbar, wie folgende Analyse exemplarisch zeigt.

Versuchsaufbau und Durchführung

Der Versuchsaufbau (Bild 1) simuliert einen typischen Anwendungsfall, bei dem parallel eine Best Effort-Anwendung und eine Echtzeit-Anwendung auf einem Prozessor ausgeführt werden.

Echtzeitverhalten bei dynamischen Taktänderungen
Bild 3. Werden anhand der gepulsten BE-Anwendung auf einem System mit älterem Prozessor (Intel Core i5-8265U) die Taktfrequenzen geändert, wirkt sich das auf alle Kerne aus.
© Intel

Die beiden Anwendungen laufen auf unterschiedlichen Rechenkernen. Während die Echtzeit-Anwendung auf Kernen mit fester Frequenz läuft, sind die Rechenkerne für die BE-Anwendung so konfiguriert, dass die Taktfrequenzen dynamisch, sogar bis in den Turbo-Frequenzbereich, geändert werden können. Es wird hierfür ein natives, aktuelles Linux mit preempt RT-Patch verrwendet. Die Echtzeitkerne sind durch Linux-Direktive von den BE-Kernen isoliert. Als Echtzeitanwendung kommt die bekannte Open Source-Anwendung Cyclictest zum Einsatz. Diese Anwendung ist gut geeignet, um wichtige Aspekte des Echtzeitverhaltens eines Systems zu beschreiben, wie es beispielsweise die OSADL für 24×7-Langzeitstudien verwendet. Cyclictest ermittelt hierbei das Jitterverhalten von Interrupts. Dieses Jitter lässt sich unter anderem durch Hardware, Firmware, das Betriebssystem, aber eben auch durch BE-Anwendungen beeinflussen.

In der Versuchsanordnung wird auf einem der BE-Kerne mittels eines stress-ng CPU-Stressors die CPU-Last einer BE-Anwendung simuliert. Ein periodisch sich wiederholendes Aufrufen und Stoppen von stress-ng sorgt dafür, dass ein P-State-Wechsel, also Frequenzänderungen, stattfinden.

In einem ersten Vergleich wurden auf einem System mit einem aktuellen Intel TCC-fähigen Prozessor und erweiterten DVFS-Funktionen zunächst Messungen durchgeführt, bei der DVFS-Funktionen wie beispielsweise Intel SpeedStep, Intel Speed-Shift und Intel Turbo Boost-Technologie im BIOS deaktiviert wurden. Im Anschluss fanden Messungen statt, bei denen diese Funktionen wieder aktiviert wurden. Zudem erfolgte die Messung der Prozessortaktfrequenzen über die Zeit.
In einem Vergleich erfolgten die Messungen mit gleicher Versuchsanordnung auf einem älteren Prozessor, der weder TCC noch eine der erweiterten DVFS-Funktionen unterstützt.

Bild 2 zeigt die Messergebnisse des Systems mit TCC fähigem Prozessor und erweiterten DFVS-Funktionen. Der Prozessor hat eine Basisfrequenz von 2,6 GHz und eine maximale Turbo-Frequenz von 4,1 GHz. Wie sich den Frequenzdiagrammen entnehmen lässt, finden im zweiten Szenario mit aktivierten BIOS-Funktionen dynamische Frequenzänderungen in den Turbo-Frequenzbereich hinein statt. Wie im dargestellten Histogramm zu sehen ist, sind die Auswirkungen dieser BE-Anwendung mit Frequenzänderung allerdings vernachlässigbar. Die maximalen Latenzen unterscheiden sich um 1 µs und liegen in beiden Szenarien unter 10 µs.
Ganz anders stellen sich die Schaubilder auf dem System mit dem älteren Prozessor dar (Bild 3). Bleiben die Frequenzen konstant, entsprechen die maximalen Latenzen im Histogramm denen aus Bild 2. Werden aber anhand der gepulsten BE-Anwendung die Taktfrequenzen geändert, wirkt sich dies wie erwartet auf alle Rechenkerne aus. Da die Frequenzen im Szenario mit Frequenzänderungen höher liegen als bei dem Szenario mit konstanter Frequenz, wäre von den sich ergebenen Erhöhungen der Taktfrequenz auf den Echtzeitkernen keine Zunahme der maximalen Latenzen zu erwarten. Im Histogramm ist aber zu sehen, dass die maximalen Latenzen von 7 µs auf 23 µs steigen. Der Vergleich des Histogramms aus Bild 2 mit dem in Bild 3 verdeutlicht die Verbesserung im Bereich DVFS mit Bezug auf die Echtzeitfähigkeit mancher aktueller gegenüber älteren Prozessor-Generationen.

Die Autoren

Echtzeitverhalten bei dynamischen Taktänderungen
© Intel
Echtzeitverhalten bei dynamischen Taktänderungen
© Intel

Alle Bilder anzeigen (2)

Die durchgeführten Versuche bestätigen, dass es die DVFS-Hardwareeigenschaften einiger moderner Prozessoren ermöglichen, konsolidierte Anwendungen flexibel auf IPCs zu konfigurieren. Echtzeitanforderungen der OT-Welt, die feste Prozessorfrequenzen voraussetzen, lassen sich mit Anforderungen aus der IT-Welt, wie beispielsweise dynamisch bedarfsorientierten hohen Rechenleistungen in der Spitze, kombinieren. Gleichzeitig können Rechenkerne mit Leerlaufprozessen heruntergetaktet werden, ohne dabei das Echtzeitverhalten auf den echtzeitkritischen Rechenkernen wesentlich zu beeinflussen. Dadurch ergeben sich interessante neue Möglichkeiten für kundenspezifische Konfigurationen. 


Verwandte Artikel

INTEL GmbH

Industrie 4.0