Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
18 Elektronik 20 2024 EmbEddEd-SoftwarE einfach mittels Funktionsaufruf die RPMsg-Funktion genutzt werden Prozessorund umgebungsübergreifende Latenzmessung An der Kommunikation zwischen einer Anwendung aus dem Linux-Userspace und der Firmware eines Coprozessors sind verschiedene Schichten und Treiber beteiligt Zwar sind im Linux-Kernel bereits verschiedene Möglichkeiten zur Messung von Latenzen integriert doch keine davon kann eine Prozessoroder gar umgebungsübergreifende Messung durchführen Für die Analyse der RPMsg-Latenzen ist also ein spezielles Messsystem notwendig Zur Implementierung eines Prozessorund umgebungsübergreifenden Messsystems auf einem MPSoC kann die Tatsache genutzt werden dass die Prozessoren nicht nur gemeinsamen Zugriff auf den Speicher haben sondern auch auf die Peripheriemodule Es kann also ein Timer-Modul als gemeinsame Referenz verwendet werden da sowohl aus der Linux-Umgebung als auch aus der FreeRTOS-Umgebung auf dem Coprozessor der aktuelle Timer-Wert ausgelesen werden kann Für die Durchführung automatischer Latenzmessungen wurden drei Komponenten implementiert Eine Linux-Userspace-Anwendung ein Linux-Kernelmodul und eine FreeRTOSbasierte Firmware für den Coprozessor Bild 3 Linux-Userspace-Anwendung Im Zentrum des Messsystems steht eine Anwendung die im Linux-Userspace ausgeführt wird Mit dieser Anwendung werden die Parameter der Messung konfiguriert Abhängig von den gewählten Parametern wird die entsprechende Firmware für den Coprozessor geladen und gestartet Anschließend wird von dieser Anwendung aus die Kommunikation mit dem Coprozessor initialisiert und die Latenzmessung gestartet Dazu greift die Anwendung mittels des Linux Memory Device auf das Timer-Modul zu und konfiguriert es für die Messung Nach jedem einzelnen Messdurchlauf in einer Messreihe sammelt die Userspace-Anwendung die Zeitstempel die an verschiedenen Messpunkten im Kommunikationsablauf erfasst wurden Falls diese Messpunkte nicht in der Linux-Userspace-Anwendung selbst liegen sind weitere Mechanismen notwendig für die Aufzeichnung und die Bereitstellung der Zeitstempel Diese Mechanismen sind im Linux-Kernelmodul und in der Coprozessor-Firmware implementiert Tabelle 2 Latenzen für die einzelnen Kommunikationsabschnitte der Coprozessor-Umgebung zu Linux-Userspace-Kommunikation Verglichen werden wieder die zwei möglichen Linux-Userspace-Schnittstellen sowie die Durchschnittsund Maximallatenzen Die Ausreißer in dieser Kommunikationsrichtung sind signifikant größer als in der Gegenrichtung Die hohen Ausreißer treten ausschließlich in der Linux-Umgebung auf * Dieser Wert ist geringer als die Summe der Maximallatenzen der Einzelabschnitte da die Einzelmaxima verteilt auf verschiedene Gesamtabläufe aufgetreten sind Quelle Ingenics Digital Abschnitt TTY-Gerät Character-Gerät Latenz Durchschnitt [µs] Latenz max [µs] Latenz Durchschnitt [µs] Latenz max [µs] RPMsg-Framework-Einstieg auf dem Coprozessor zur Benachrichtigung der Linux-Umgebung mittels Interprozessor-Interrupts 47 50 47 51 Benachrichtigung der Linux-Umgebung mittels Interprozessor-Interrupt zu Beginn der Abarbeitung des Interrupts im Linux-Kernel 11 470 10 483 Beginn der Abarbeitung des Interrupts im Linux-Kernel bis zur Übergagbe der Daten an die Userspace-Schnittstelle 13 7066 14 8122 Übergagbe der Daten an die Userspace-Schnittstelle bis zur Verfügbarkeit der Daten im Userspace 33 8770 12 1427 Gesamt 104 8832 * 83 8226 * Tabelle 1 Latenzen für die einzelnen Kommunikationsabschnitte der Linux-Userspace zu Coprozessor-Umgebungskommunikation Verglichen werden sowohl die zwei möglichen Linux-Userspace-Schnittstellen sowie die Durchschnittsund Maximallatenzen Die Abschnitte in der Linux-Umgebung weisen dabei eine deutlich größere Schwankung der Latenzen auf als die Abschnitte in der Coprozessor-Umgebung * Dieser Wert ist geringer als die Summe der Maximallatenzen der Einzelabschnitte da die Einzelmaxima verteilt auf verschiedene Gesamtabläufe aufgetreten sind Quelle Ingenics Digital Abschnitt TTY-Gerät Character-Gerät Latenz Durchschnitt [µs] Latenz max [µs] Latenz Durchschnitt [µs] Latenz max [µs] Linux-Userspace zu RPMsg-Framework-Einstieg 2 51 2 35 RPMsg-Framework-Einstieg zur Benachrichtigung des Coprozessors mittels Interprozessor-Interrupts 3 53 3 37 Benachrichtigung des Coprozessors mittels Interprozessor-Interrupt zur Abarbeitung des Interrupts im Coprozessor 1 3 1 3 Abarbeitung des Interrupts im Coprozessor bis zur Verfügbarkeit der Daten für die Coprozessor-Anwendung 15 19 15 19 Gesamt 21 71* 21 56*