Computer sind erweiterbar. Das klingt trivial, setzt aber viel Technik und Abstimmung voraus. Bereits bei den PCMCIA-Karten (Personal Computer Memory Card International Association) der 1990er-Jahre zeigte sich, dass die Stromversorgung während der Betriebs- und Startup-Phasen sorgfältig definiert sein muss. Potenzielle Probleme waren die Anlaufkondensatoren in Festplatten-Antrieben oder die von vielen Anwendungen benötigten Stützkondensatoren. Diese Kapazitäten konnten große Einschaltströme hervorrufen, die wiederum die Stromversorgung des Hosts überlasteten. Das konnte zu einem Systemabsturz führen oder den Mosfet-Leistungsschalter im Host außerhalb seiner SOA arbeiten lassen (Safe Operating Area, sicherer Betriebsbereich).

Praktische Indiskretion

Powermanagement für PCIe-Erweiterungskarten ist heute eine diffizile Angelegenheit. Traditionelle diskrete Aufbauten verbieten sich aus etlichen Gründen: Sie sind langsam, teuer und unzuverlässig. Beim Lattice POWR1014A sparen sich Entwickler derlei Ärger und behalten dank der Programmierbarkeit des Bausteins dennoch die nötige Flexibilität.

Die PCMCIA kümmerte sich daher um Spannungen, Ströme, Stromstöße und das Sequencing (die Einschaltreihenfolge der einzelnen Subsysteme). Obwohl sich die Organisation längst aufgelöst hat, gilt ihr Erbe bei Stromversorgungsspezifikationen jetzt für zahlreiche andere Add-Ons, etwa PC-Cards, die sich als Nachfolger der PCMCIA-Karten etablierten.

Systemdesign

Wie bei einer PC-Card sind auch bei PCIe (PCI Express) die Anforderungen an die Stromversorgung für Add-On-Karten in PCs spezifiziert. Für das Bereitstellen der Energie gelten die gleichen Grundüberlegungen, und genauso wie bei PC-Cards können auch PCIe-Karten Sekundärspannungen erzeugen, die abhängig von der Applikation ein Sequencing sowie eine Überwachung erfordern. Auch die Vorsichtsmaßnahmen bezüglich der Einschaltströme sind nach wie vor nötig, weil die Peripherieelemente und deren Eingangskondensatoren immer wieder ein- und ausgeschaltet, eingesteckt und entnommen werden.

Zu Anfang der Erweiterungskarten bestand das Power-Management aus einer oder zwei Spannungen, die von Mosfets geschaltet werden, die wiederum von diskreten Logikschaltungen und ASICs gesteuert wurden. Heute findet man ASSPs (Application Specific Standard Product) wie Hot-Swap-/Soft-Start-Controller, Power-Sequencer und -Tracker, Spannungsüberwacher, Reset-Generatoren und Watchdog-Timer. Ein umfangreiches Power-Management-Design kann teuer und komplex werden, weil unterschiedliche Applikationen verschiedene Kombinationen und Varianten von ASSPs benötigen.

Die Auswahl der passenden Bauelementekombination kann ziemlich frustrierend sein, schließlich gibt es Hunderte Bausteine von Dutzenden Anbietern. Manche Entwickler vereinfachen daher ihre Power-Management-Designs, indem sie bestimmte Fehler- oder Störszenarien ignorieren oder bestimmte Sequenzen als fest vorgegeben annehmen. Ein Beispiel dafür ist ein Power-Management-Design, das nur die Spannung der Eingangsstromversorgung überwacht und dann das Sequencing der sekundären Spannungen durchführt, indem es das Power-Good-Signal eines Schaltreglers mit dem Enable-Eingang des nächsten Schaltreglers verbindet. Das senkt zwar Kosten und Komplexität, weil ein diskreter Sequencer und etliche Präzisions-Spannungsüberwacher an den einzelnen Spannungsschienen entfallen können. Allerdings steigt die Reaktionszeit auf eine Fehlfunktion der Stromversorgung eventuell deutlich, was übertragene oder gespeicherte Daten verfälschen kann.

Durchblick bei den Slots

Bild 1: Bei PCIe-Stromversorgungen unterscheiden sich die Anforderungen je nach Slot. Alle Angaben sind Maximalwerte.

Bild 1: Bei PCIe-Stromversorgungen unterscheiden sich die Anforderungen je nach Slot. Alle Angaben sind Maximalwerte.Lattice

Die Spannungen, Ströme und die Eingangskapazitäten von PCIe-Karten sind für zahlreiche Slots definiert. Bild 1 zeigt die PCIe-Spezifikation für die Spannungsschienen +12 und +3,3 V mit ihren Toleranzen, kapazitiven Lasten und ihrem maximalen Strom – und zwar inklusive Einschaltstrom für unterschiedliche Karten. Bei PCIe sind auch Hot-Swap-Karten möglich, bei denen die Slew-Rate (Anstiegsgeschwindigkeit) der Startup-Spannung ganz besonders sorgfältig begrenzt werden muss. Hierfür sind Bausteine angeraten, die die Spannung auf den Eingängen überwachen. Obwohl PCIe das Sequencing von Stromversorgungen nicht spezifiziert, kann eine individuelle Applikation mit sekundären Stromversorgungen ein komplexes Sequencing erfordern.

Bild 2: Der Signalverlauf beim PCIe-Startup zeigt, dass nach dem Anlegen einer stabilen Spannung noch 100 ms vergehen, bis PERST# die Karte aktiviert.

Bild 2: Der Signalverlauf beim PCIe-Startup zeigt, dass nach dem Anlegen einer stabilen Spannung noch 100 ms vergehen, bis PERST# die Karte aktiviert.Lattice

Bild 2 zeigt die Startup-Sequenz einer PCI-Karte. Der blaue Pfeil kennzeichnet die 100 ms lange Zeitspanne, die nach dem Einsetzen der Karte vergehen muss, bis die 12- und 3-V-Spannungsschienen stabil sind. Nach 100 ms aktiviert der PCIe-Host-Bus die Karte, indem er PERST# auf High setzt und damit freigibt. Oft ist die Zeitspanne von 100 ms aber zu kurz für das komplette Sequencing der sekundären Stromversorgungen auf der Karte, sowie für die Initialisierung großer FPGAs, ASICs und anderer konfigurierbarer Bausteine. Um die individuellen Anforderungen eines Boards zu erfüllen ist oft eine Verlängerung des Impulses (Pulse Stretching) oder eine Verzögerung des PERST#-Signals erforderlich.

Bild 3: Das PERST#-Signal kündigt einen Power-Down an, damit die Erweiterungskarte kontrolliert herunterfahren kann.

Bild 3: Das PERST#-Signal kündigt einen Power-Down an, damit die Erweiterungskarte kontrolliert herunterfahren kann.Lattice

In Bild 3 ist die Power-Down-Sequenz einer PCIe-Karte zu sehen. PERST# initialisiert den Abschaltvorgang, so dass es möglich ist, die Bausteine rechtzeitig in einer kontrollierten Prozedur herunterzufahren. Wenn aber jemand die Karte bei aktiver Stromversorgung einfach am Steckverbinder herauszieht, werden die Bausteine abrupt abgeschaltet, mit eventuell katastrophalen Folgen. Ein vorsichtig designtes Board muss auch mit dem völlig überraschenden Entfernen der Karte aus dem Slot klarkommen. Bei der Entwicklung des PCIe-Power-Managements heißt es also, zahlreiche Herausforderungen zu meistern, unter anderem:

  • Der Einschaltstrom ist bei jedem Design anders. Er darf unter keinen Umständen und zu keinem Zeitpunkt den Maximalstrom der PCIe-Stromversorgung überschreiten. Die Amplitude und die Dauer des Einschaltstroms hängen von der Eingangskapazität des Boards sowie von zahlreichen anderen Faktoren ab, etwa den Startup-Strömen der FPGAs und ASICs.
  • Es kann sein, dass die Karten für jede Applikation eine individuelle Hot-Swap-Controllerschaltung benötigen.
  • Es kann sein, dass das Timing über das 100 ms dauernde PERST#-Signal hinaus verlängert werden muss, um das Reset-Timing zu verlangsamen, was wiederum ein Sequencing der Stromversorgung, ein Konfigurieren der FPGAs und ein Reset der CPUs ermöglicht.
  • Das Design sollte schnell genug sein, um während eines Hot-Swap-Entfernens der Karte sofort zu reagieren und das Board herunterzufahren, ohne Daten zu verfälschen.
  • Alle Stromversorgungen sollten auf Unter- und Überspannungen hin überwacht werden, um einen geregelten Betrieb aufrecht zu erhalten.
  • Das Sequencing von Stromversorgungen sollte flexibel sein, weil es für jede einzelne Applikation individuell sein kann und eventuell Änderungen im Rahmen von weiteren Design-Iterationen notwendig sein können.
  • Auf Boards, die komplexe Chips wie beispielsweise CPUs enthalten, ist normalerweise eine stabile Spannung für den Rechenkern erforderlich, bevor es zur Initialisierung der I/O-Spannungen kommt.

Grenzen des diskreten Designs

Bild 4: Die diskrete Powermanagement-Lösung setzt für jede Aufgabe einen eigenen Baustein ein.

Bild 4: Die diskrete Powermanagement-Lösung setzt für jede Aufgabe einen eigenen Baustein ein.Lattice

Bild 4 zeigt einen Ansatz, in dem der Hot-Swap-Controller, der Sequencer, die Spannungsüberwacher (Supervisor), der Reset-Generator und die Watchdog-Timer separat implementiert sind. Die Entwickler müssen hier eine regelrechte Datenblatt-Recherche durchführen, um aus einer Vielzahl von Bausteinen die passenden auszuwählen. Damit nicht genug: Jede Veränderungen am Design und jede neue Applikation führen zu neuen Kombinationen verschiedener Einzelbauelemente. Zudem verändern sich Timing- und Steuerungsschaltungen im Laufe der Zeit, wenn sie sich auf RC-Kombinationen für das Timing verlassen, weil Bausteine altern und die Spannungsversorgung variiert. Außerdem sind diskrete Designs zu langsam, um auf Fehlerzustände wie ein unvorhergesehenes Entfernen der Karte zu reagieren.

Die Integration des Power-Managements in ein System kann die Kosten signifikant senken – unter anderem, weil doppelte Funktionselemente entfallen. Wenn Spannungsüberwachungs-Elemente, Sequencer, Hot-Swap-Controller, Reset-Generatoren sowie Trim- und Margin-Elemente in einem IC integriert sind, können mehrere Teile zum Beispiel eine einzelne, extrem genaue Band-Gap-Referenz gemeinsam nutzen. Außerdem reagiert eine integrierte Lösung auf Fehler im zweistelligen Mikrosekundenbereich statt binnen mehrerer Hundert Millisekunden, wie sie in Systemen üblich sind, die von einem Mikrocontroller überwacht werden.

Es gibt ASICs, die mehrere diskrete Bauelemente ersetzen. Allerdings benötigen sie typischerweise zusätzliche ICs (inklusive einem Prozessor), enthalten aber gleichzeitig Funktionalitäten, die für die individuelle Anwendung nicht erforderlich sind. Darüber hinaus lässt sich die Lösung auf Basis eines ASICs nur schwer simulieren, und da es sich um einen festgelegten Ansatz handelt, müssen alle Veränderungen direkt auf der Leiterplatte erfolgen.

Der passende Chip

Bild 5: Die Architektur des POWR1014A. Dank CPLD-Einheit lässt er sich einfach an die jeweilige Aufgabe anpassen.

Bild 5: Die Architektur des POWR1014A. Dank CPLD-Einheit lässt er sich einfach an die jeweilige Aufgabe anpassen.Lattice

Ein integrierter Power-Management-IC schafft die beschriebenen Probleme aus der Welt und senkt die Gesamtkosten, weil mehrere Kanäle die kritischen Funktionalitäten gemeinsam nutzen. So enthält der Lattice POWR1014A (Bild 5) beispielsweise zehn programmierbare Elemente zur Spannungsüberwachung, die sich eine Band-Gap-Referenz teilen, so dass die Überwachung der Spannung aller Kanäle mit einer Genauigkeit von 0,3 % möglich wird.

Ein interner Takt sowie integrierte digitale Timer beseitigen die Genauigkeitsprobleme, die externe R/C-Netzwerke mitbringen würden. Digitale I/Os, programmierbare Timer und ein CPLD-Kern ermöglichen es, PERST# und PRSNT# zu überwachen und ein kartenspezifisches Timing zu erzeugen, um ein korrektes Sequencing und die richtige Konfiguration sicher zu stellen. Auch zusätzliche Signale, die von den Eingängen abhängen und zu einem Alarm-Reset des Systems führen können oder auf einen Brownout (Spannungsabfall) hinweisen, lassen sich erzeugen.

Der POWR1014A enthält zwei Ladungspumpen zur Steuerung von n-Kanal-Mosfets. Auch ein Hot-Swap lässt sich leicht an individuelle Applikationen anpassen – und zwar durch Verändern der Gate-Spannung und der Ladungsrate, während gleichzeitig eine Überwachung der Ströme und Spannungen des Systems erfolgt, um innerhalb der PCIe-Spezifikation zu bleiben. Mit dem CPLD-Kern sind Modifikationen von Designs für zahlreiche Applikationen, Board-Versionen und Lieferantenabweichungen möglich. Die Ein- und Ausgänge lassen sich leicht konfigurieren, während die Programmierung des CPLD-Kerns über die Design-Software PAC-Designer von Lattice erfolgt.

Flexibel bleiben

PCI Express hat die Schnittstelle und das Timing zwischen PC und Erweiterungskarten standardisiert. Die zahlreichen Applikationen erfordern für jede einzelne Strom-, Timing-, Spannungs- und Sequencing-Funktionalität aber ein kundenspezifisches Design. Diskrete Lösungen sind teuer, ermöglichen kein exaktes Timing, arbeiten unpräzise und unzuverlässig und sind nicht flexibel, wenn sich das Design ändert. Der Lattice POWR1014A integriert das PCIe-Power-Management in eine präzise, flexible, programmierbare Low-Cost-Lösung.