Die verstärkte Nutzung von Personal-Area-Networks und häuslichen Gesundheitsüberwachungssystemen führt dazu, dass medizinische Geräte auch außerhalb typischer medizinischer Einrichtungen eingesetzt werden. Die Zuverlässigkeit und Lebensdauer dieser Geräte lässt sich durch effektives Power-Management und Techniken zur Verringerung der Wärmeabgabe erhöhen.
Um die Fernüberwachung von Patienten zu ermöglichen und eine höhere Mobilität in Krankenhäusern zu erreichen, wird zurzeit stark in die Entwicklung tragbarer medizinischer Geräte, PANs (Personal Area Networks) und häuslicher Gesundheitsüberwachungssysteme investiert. Bei der Entwicklung eines tragbaren medizi-nischen Geräts hängen die Wahl der Prozessoren und Komponenten von einer Vielzahl von Variablen ab. Da-zu gehören Leistungsfähigkeit, Preis, Qualität und Zuverlässigkeit. Letztere ist aufgrund der kritischen Natur dieser Geräte besonders wichtig.
Die nutzbare Produktlebensdauer ist ein entscheidender Faktor für den erfolgreichen Einsatz eines jeden tragbaren medizinischen Geräts. Sie kann durch Erhöhung der mittleren Betriebsdauer zwischen Ausfällen (Mean Time Between Failures - MTBF) verlängert werden. Die Zuverlässigkeit der Hardwarekomponenten lässt sich zwar anhand von Daten bestimmen, oft wird der Rolle, welche die Software bei der Verlängerung der nutzbaren Lebensdauer spielt, wenig Aufmerksamkeit geschenkt. Da der Druck hinsichtlich kürzerer Entwicklungszyklen und mehr softwarebasierter Funktionen steigt, erhöht sich die Komplexität der Designs, und es wird schwieriger, Softwaredesigns zuverlässig zu entwickeln. Deshalb sollten zu Beginn eines neuen Projekts frühzeitig Überlegungen bezüglich der Systemarchitektur, Tool-Umgebung sowie der Auswahl des richtigen Betriebssystems getroffen werden. Denn diese Faktoren erlauben es Softwareentwicklern, Systeme mit hoher Zuverlässigkeit zu erstellen.
Geräteausfälle vorhersagen
Die gängigsten Modelle zur Vorhersage der Zuverlässigkeit beinhalten die Ausfallrate (Failure In Time - FIT) und die MTBF. Fehlermodelle konzentrieren sich üblicherweise auf drei Stadien im Lebenszyklus einer Komponente (Bild 1):
Beide Modelle - FIT und MTBF - verwenden jedoch Temperatur und Spannung zur Vorhersage der Ausfallrate als wichtige steuerbare Variablen. Im Grunde sind dies Stressfaktoren, die zusammen als Beschleunigungsfaktoren bezeichnet werden. Die Überwachung der Ausfallrate, während sich das Produkt im Service befindet, korreliert unmittelbar mit der Überwachung der Beschleunigungsfaktoren des Produkts. Die Modelle zeigen, dass längere Perioden mit hohen Betriebs-temperaturen und/oder erhöhten Spannungen die vorhergesagte Ausfallrate erhöhen. Sie haben sich als starke Indikatoren für die Zuverlässigkeit der Geräte bewährt und sind somit für die Vorhersage der Ausfallrate sehr hilfreich. Das Testen und Modellieren eines Geräts spiegelt aber nur die derzeitige Zuverlässigkeit des Produkts wider - sie verlängern nicht die Produktlebensdauer selbst. Jede Verbesserung der Zuverlässigkeit muss früh im Entwicklungszyklus in das Produkt eindesignt werden.
Überwachung der Leistungsaufnahme und Wärmeabgabe
CPUs in Embedded-Geräten liefen früher üblicherweise mit einer einzigen Geschwindigkeit und im Wesentlichen ohne Optionen zur Steuerung der Leistungsaufnahme. Mit der Vernetzung von Embedded-Geräten sind auch die Anforde-rungen an die Datenverarbeitung gestiegen. Folglich statten CPU-Hersteller heute ihre Bausteine mit mehr Funktionen aus. Networking-Engines, individuelle Grafik- und Video-IP-Blöcke, DMA-Controller, größere Cache-Speicher und Speicherblöcke wurden selbst für Low-Cost-Prozessoren gemeinsame Merkmale. Als die Geschwindigkeiten und der CPU-Funktionsumfang stiegen, schränkten die Leistungsaufnahme und die begrenzte Möglichkeit, die erzeugte Wärme abzuführen, die Designs erheblich ein. High-End-Prozessoren setzten auf dynamische Spannungs- und Frequenzskalierung (Dynamic Voltage and Frequency Scaling - DVFS), um auf Anforderung des Systems zu jedem vorgegebenen Zeitpunkt den Arbeitspunkt auf Low-Power-Modi zu übertragen. Damit ließen sich sowohl die Leistungsaufnahme als auch die Wärmeabgabe reduzieren. Die Möglichkeit, den Arbeitspunkt auf Grundlage der Systemanforderungen zu ändern, erlaubte eine bessere Steuerung der Leistungsaufnahme und Wärmeerzeugung.
High-End-MPUs und Low-Cost-MCUs bieten heute eine Reihe von Funktionen zur Energieeinsparung. Dazu gehören DVFS, Idle- und Sleep-Modi sowie Takt- und Power-Gating (zum Abschalten individueller Peripherieblöcke). Und während diese Funktionen die Grundlage zum Managen der Leistungsaufnahme und Systemtemperatur bilden, verschiebt sich die Bürde der Implementierung dieser Funktionen in Richtung Anwendungsentwickler. Effektives Design führt zu einem Hardwaresystem, das mit passiver Kühlung effektiv arbeitet und deshalb keine aktive Kühlung durch Lüfter erfordert, die sich wiederum nachteilig auf die MTBF des Systems auswirkt.
Komplexität der Software
Moderne Embedded-SoCs verfügen über Schnittstellen zu komplexen externen Geräten zum Senden, Empfangen und Speichern von Daten. Die von diesen SoCs aufgenommene Leistung steigt, wenn die externen Geräte direkt angesteuert werden. Mit Fokus auf die Überwachung der Leistungsaufnahme haben Halbleiteranbieter eine Reihe von Funktionen eingeführt, um die Frequenz, Spannung und andere Betriebszustände des Prozessors, einzelner Geräte und Blöcke von Geräten zu steuern. Damit der Stromverbrauch oder die Wärme-abgabe reduziert werden, lassen sich beispielsweise einzelne Peripheriekomponenten oder -blöcke in Low-Power-Modi versetzen oder vollständig herunterfahren. Arbeitspunktübergänge lassen sich nutzen, um die CPU-Taktfrequenz und/oder Betriebsspannung zu senken. Wenn der Prozessor oder die Peripheriekomponenten in den Low-Power-Zustand versetzt werden, benötigt das System üblicherweise komplexe Software, damit es auf ein Ereignis reagieren und das Gerät in den Low-Power-Zustand versetzen beziehungsweise es bei Bedarf wieder in den ursprünglichen Betriebszustand zurückführen kann.
Die für den Übergang auf unterschiedliche Betriebszustände erforderlichen Schritte variieren je nach Komplexität des Geräts. Um die Frequenzen des Systems zur Reduzierung der Wärme und Leistungseinsparung zu verringern, werfen wir einen Blick auf den Arbeitspunktübergang. Mit Hilfe von Software lässt sich die eingesparte Energiemenge im Vergleich zu der Energiemenge, die für den Übergang in und aus dem Low-Power-Modus gebraucht wird, bestimmen. Für jede Peripheriekomponente muss Treibersoftware geschrieben werden, die den Übergang des Geräts auf die unterschiedlichen, von der Hardware angebotenen Low-Power-Zustände unterstützt.
Ebenso muss Software programmiert werden, um den Zustand eines jeden Peripheriegeräts vor dem Übergang zu überprüfen und zu protokollieren: Ist das Gerät an oder aus? Aktiv oder im Standby? Kann es während des Übergangs offline gehen und ohne jeglichen Daten- oder Leistungsverlust wieder zurückkehren?
Damit ein Übergang stattfinden kann, ist es notwendig, Geräte offline zu schalten. Um die Zeitspanne zu bestimmen, die jedes aktive Gerät offline sein kann, und sie mit der Zeitdauer zu vergleichen, die für den Übergang erforderlich ist, muss Software geschrieben werden. Wenn ein Gerät den Systemtakt als Referenz nutzt, zum Beispiel für die Definition der Baudrate für einen UART, dann ist nach dem Frequenzwechsel eine Neuberechnung erforderlich. Komplexe Geräte wie WLAN erfordern Software, um den Status von ausgehenden TCP/UDP-Paketpuffern und IP-Management-Warteschlangen zu verifizieren und zu gewährleisten, dass diese vor dem Herunterfahren leer sind. Dies bedingt unter Umständen einen Blick auf die Pufferbeschreibungen einer jeden Protokollschicht bis hinunter zum DMA-Treiber. Sowohl die Menge an Software als auch die Komplexität beim Managen der Power-Zustände können für den Softwareentwickler entmutigend sein. Deshalb gilt es, von Projektbeginn an entsprechende Software zu schreiben, damit sich die Stromsparfunktionen, die in der Hardware zur Verringerung der Wärmeabgabe integriert sind, effektiv nutzen und managen lassen. Ohne eine Softwareinfrastruktur, welche die Hardwarefunktionen auf die Software-APIs abbildet, müssen sich Softwareentwickler nicht nur auf ihre individuellen Fähigkeiten beim Schreiben von Low-Level-Gerätetreibern zur Steuerung einzelner Geräte verlassen können, sondern auch auf die erforderliche Systemsoftware zur Koordination der CPU- und Peripherieblöcke und der High-Level-Software.
Zuverlässigkeit inbegriffen
Basierend auf den Ausfall-Vorhersagemodellen lässt sich argumentieren, dass die zunehmende MTBF eines Systems ein ordnungsgemäßes Management der Leistungsaufnahme (Spannungs-Management) und Wärmeabgabe notwendig macht. Die Komplexität der für das Geräte- und Systemmanagement erforderlichen Software ist oft hinderlich, um sie zur Verbesserung der Systemzuverlässigkeit effektiv einzusetzen. Durch die Auswahl eines Betriebssystems, das ein Framework zum Managen der Leistungsaufnahme für den Prozessor und einzelner Geräte bietet, können Entwickler Software zur Überwachung der Beschleunigungsfaktoren, welche die Systemzuverlässigkeit beeinträchtigen, programmieren. Um dieses Framework zu veranschaulichen, wird das Echtzeitbetriebssystem »Nucleus« von Mentor Graphics verwendet.
Nucleus bietet ein umfangreiches Framework zum effizienten Power-Management von tragbaren medizinischen Geräten. Dieser Rahmenbau ermöglicht direktes Mapping zu den Low-Power-Funktionen der Hardware (Bild 2). Das Nucleus-Power-Management-Framework nähert sich dem Erhalt des Energieverbrauchs und der Reduzierung der Wärmeabgabe aus vier Richtungen:
Das Framework enthält auch einen Gerätemanager (Bild 3), der bei der Initialisierung einer Peripheriekomponente zum Registrieren nötig ist, verfügbare Power-Modi meldet und den Geräte-status aktualisiert. System- und Gerätestatus werden geändert, um die Energieeinsparung der Peripheriekomponenten zu managen, und sie sind eng mit der Leistungssteuerung des Kerns durch DVFS gekoppelt. Diese beiden Komponenten steuert der Gerätemanager, der einen ordnungsgemäßen Power-State-Übergang von Peripheriebetrieb und CPU-Timing ermöglicht. Jede Änderung einer Komponente, die sich auf eine andere auswirkt, führt zu einem koordinierten Übergang aller beteiligten Subsysteme. Das Idle-Management setzt die Codeausführung vorübergehend aus, falls diese Ausführung keine verwertbaren Ergebnisse bringt. Diese Funktion ist für die Anwendung unsichtbar und hat für den Fall, dass ein Ereignis auftritt, das CPU-Ressourcen erfordert, keine Auswirkungen auf die Reaktionszeit des Systems. Besteht die Möglichkeit, offline zu gehen, bieten Ruhezustand und Schlafmodus kontrollierte Sleep-Levels.
Mit der Wahl eines RAM-basierten oder NVM-basierten Systemspeichers kann die Reaktionszeit zur Wiederherstellung gegen die Energieeinsparung und die Notwendigkeit, den Betrieb durch ein Kaltstartverfahren wieder aufzunehmen, abgewogen werden. Der zur Konvertierung von High-Level-Befehlen erforderliche Code ist im Nucleus-Framework enthalten und ermöglicht Softwareentwicklern eine umfassende Steuerung des Systems.
Über den Autor:
Andrew Caples ist Product Marketing Manager bei der Embedded Software Division (ESD) von Mentor Graphics.