23591.jpg

Asset Intertech

Der alte Spruch, dass eine Kette immer nur so stark ist wie ihr schwächstes Glied, gilt mehr denn je für die vernetzte Welt von heute, in der praktisch alle elektronischen Geräte zum einen oder anderen Zeitpunkt miteinander verbunden sind. Diese Verknüpfung der Elektronik verdeutlicht, wie wichtig die hohe Verfügbarkeit und Zuverlässigkeit von Systemen ist. Wenn nämlich ein Glied in der elektronischen Kette ausfällt, dann reißt die gesamte Kette.

Permanent verfügbare Systeme

Die Anwender zeigen wenig Toleranz gegenüber Systemabstürzen. Was einmal der Goldstandard für Verfügbarkeit war – nämlich die viel zitierten „Fünf Neunen“, also 99,999 Prozent Uptime – ist jetzt eine Mindestanforderung, die an viele Hochverfügbarkeitssysteme gestellt wird. Zum Glück kann Embedded-Diagnostics-Funktionalität implementiert werden, die den Debug-Port der CPU nutzt, um katastrophale Hardwarefehler und Softwarebugs im ersten Schritt zu analysieren und letztendlich die Fehlerhäufigkeit noch weiter zu reduzieren.

Viele Serversysteme, Storage-Komponenten, Switches, Telekommunikationsanlagen, Enduser-Geräte wie Smartphones, Desktop-PCs, Laptops, Tablet-Rechner und andere Geräte sind online und werden ständig angesprochen. Die Folge davon ist, dass sich die Verfügbarkeit eines Systems auf die Funktionsweise zahlreicher anderer auswirkt. Deshalb legen die Systemhersteller wesentlich mehr Wert auf hohe Verfügbarkeit und ständige Fortentwicklung im Rahmen von „Continuing Engineering“. Das heißt, die Arbeit des Ingenieurs endet nicht mit der Auslieferung des Produkts. Ganz im Gegenteil. Die Erfassung der Daten, die zur Optimierung und Verbesserung der Systemverfügbarkeit benötigt werden, ist natürlich alles andere als einfach. Systemabstürze hinterlassen in der Regel nicht sehr viele verwertbare Spuren. Bis der Techniker an den Ort des Geschehens kommt, sind nur noch wenige oder gar keine forensischen Daten zur Auswertung vorhanden. Das heißt, die Ursachenforschung gestaltet sich unter Umständen sehr schwierig.

Die Lösung lautet Embedded-Diagnostics

Heute werden kleine Messinstrumente mit geringem Platzbedarf in Systeme integriert, um die Performance laufend zu überwachen und forensische Daten zu Fehlern und Ausfällen zu erfassen. Diese Methode ist zu einem äußerst effektiven Mittel zur Durchführung von Lokal- und Ferndiagnosen des Systembetriebs geworden. Embedded-Diagnosetechnologie eignet sich besonders gut für Hochverfügbarkeitssysteme wie Server, Multimedia-Gateways, Router, Telekommunikationsanlagen, Switches und andere Systeme, die eine Architektur mit einer CPU und einem Service-Prozessor (SP) aufweisen. Bei Designs, die auf der typischen Hauptplatinen-Architektur eines Personal Computers basieren, übernimmt der SP in der Regel Wartungs- und Managementfunktionen zur Unterstützung des Systemkerns.

Neben den klassischen Funktionsblöcken, die in jedem Hauptplatinen-Design enthalten sind, sprich CPU, Memory, I/O-Hub und Peripherie-Schnittstellen, enthält das Design in Bild 2 auch einen SP, der für die Implementierung von Embedded-Diagnostics von entscheidender Bedeutung ist. Je nach der Komplexität des Systems ließe sich diese Schemazeichnung selbstverständlich noch mit zusätzlichen Funktionsblöcken für Co-Prozessoren, Analogbausteinen, Hochfrequenzkomponenten, digitalen Signalprozessoren und vielen anderen erheblich erweitern.

Im Routinebetrieb führt die CPU die Hauptanwendung(en) des Systems aus, interagiert aber auch häufig mit einem vorgelagerten Komponenten-Managementsystem. Die Belastung der CPU mit Managementfunktionen wie diesen, die für die Nutzeranwendungen des Systems zweitrangig sind, kann sich auf die Performance der Applikation auswirken und deren Reaktionsgeschwindigkeit beeinträchtigen. Um dies zu kompensieren, wird oft eine Teilmenge der Managementfunktionen von der CPU auf den SP verlagert, der Aufgaben wie Ausführung des Bootloader, Überwachung und Steuerung der CPU-Temperatur, Board-Energiemanagement usw. übernimmt. Diese Aufgaben werden oft als „Out-of-Band-Funktionen“ bezeichnet, da sie sich von anwendungsbezogenen oder In-Band-Funktionen unterscheiden, für die normalerweise in erster Linie die CPU zuständig ist. Darüber hinaus beherbergt und steuert der SP häufig die Instrumentierung, die die Basis für Embedded-Diagnostics bildet.

In-System Embedded-Diagnostics

Viele Systemhersteller nutzen den Service-Prozessor als Verarbeitungsressource für die Einbettung von Diagnose-IP (Intellectual Property) in das System. Der SP kann als Wächter agieren, wenn die CPU abstürzt oder einfriert. Die Gründe für solche Hänger oder Abstürze des Betriebssystems sind häufig sehr schwer nachvollziehbar, beispielsweise wenn sie durch unregelmäßige oder katastrophale Hardwarefehler wie Double-Bit-Memory-Fehler oder einen Kernel verursacht werden, der auf fehlerhafte Hardware zugreift, was wiederum zu einem ungültigen Ergebnis führt. Hänger können auch durch Aktionen von Anwendungen versursacht werden, beispielsweise ein Codesegment, das unerlaubterweise in einen geschützten Speicherbereich schreibt, Endlosschleifen, Out-of-Range-Fehler oder andere Bugs.

Wenn sich die CPU aus irgendeinem Grund aufhängt, kann der SP die Wiederherstellung des normalen Systembetriebszustands übernehmen, falls das möglich ist. Das vermeidet unter Umständen längere Lock-ups aufgrund eines undefinierten Systemzustands, was möglicherweise wiederum andere Probleme verursacht. Eine übliche Technik für die Vermeidung von längeren Blockaden ist der Watchdog-Timeout. Der SP fühlt dabei ständig den Puls der CPU und startet das System neu, wenn der Pulsschlag für längere Zeit aussetzt.

Anspruchsvollere Anwendungen des SP für Embedded-Diagnostics lassen sich mit der Black-Box eines Flugzeugs vergleichen. Der Status der CPU zum Zeitpunkt des Systemabsturzes wird erfasst und in ein nicht-flüchtiges RAM geschrieben. Dies hilft dem Designer sich per Debugging ein Bild davon zu verschaffen, was beim Systemabsturz genau passiert ist. Die aufgezeichneten Daten könnten den Inhalt der CPU-Register, den Instruktionszähler, einen Stack-Traceback, den Speicherinhalt und den Status der angeschlossenen Geräte beinhalten. Diese Informationen sind extrem wertvoll, denn die Ingenieure können damit die Ursachen von Fehlern im Feld zurückverfolgen. Dadurch lässt sich wiederum die Zuverlässigkeit und Verfügbarkeit verbessern.

SPs mit Embedded-Diagnostics können auch eine aktivere Rolle beim Systemdebugging im Labor oder im Feld übernehmen. Wenn der SP Zugriff auf den Debug-Port der CPU hat, kann er Haltepunkte setzen. Diese Haltepunkte werden erst aktiviert, wenn der Prozessor versucht, ein Segment eines fehlerhaften Codes auszuführen. Dann lassen sie sich dazu nutzen, die unregelmäßigsten und schwierigsten Arten von Fehlern zu korrigieren. Am Haltepunkt wird ein Speicherabzug durchgeführt, oder der Systemdesigner geht den Code Schritt für Schritt durch, um die Fehlerursache zu bestimmen. Haltepunkte sind auch ein ausgezeichnetes Tool, wenn sie in mehreren Systemen eingesetzt werden, um die Wahrscheinlichkeit zu erhöhen, einen Fehler zu finden.

Reg Waller

: Reg Waller ist Regional Sales Director der Asset Intertech.

(jj)

Sie möchten gerne weiterlesen?