Bild 1: Server-Blockdiagramm mit acht PLD-Socket-Funktionen.

Bild 1: Server-Blockdiagramm mit acht PLD-Socket-Funktionen. (Bild: Lattice)

Server-Designs basieren oft auf einer ganz elementaren Infrastruktur (Bild 1), die Server-Entwickler an die spezifischen Anforderungen verschiedener Märkte anpassen. Welche periphere Hardware-Blöcke, Systemebenen-Interface-Blöcke, BMC-Schnittstellen und sonstigen Komponenten eingesetzt werden, unterscheidet sich von einem Server-Design zum anderen. Entwickler müssen Funktionen wie Power-Management, boardspezifische Glue-Logic oder I/O-Erweiterungen für jeden Servertyp modifizieren. Obwohl die Socket-Funktion #1 keine Rolle für die Payload-Funktionen wie CPU, Festplatte oder Netzwerk spielt, wird sie benötigt, damit alle wichtigen Funktionsblöcke auf der Leiterplatte innerhalb ihrer Betriebsgrenzen arbeiten. Entwickler suchen deshalb ständig nach Wegen, die Kosten und die Komplexität dieser Funktionen zu verringern, ohne die Zuverlässigkeit des Boards zu gefährden.

Socket-Funktion #1 im Detail

Bild 1: Server-Blockdiagramm mit acht PLD-Socket-Funktionen.

Bild 1: Server-Blockdiagramm mit acht PLD-Socket-Funktionen. Lattice

In der Vergangenheit haben Entwickler für die Implementierung der Power-Management-, Steuer- und sonstigen Glue-Logic-Funktionen in der Regel eine Vielzahl diskreter Bauelemente unterschiedlicher Art verwendet. Viele Jahre lang war dies die kostengünstigste Lösung. Mit zunehmender Komplexität der Server-Designs wuchs auch die Anzahl solcher Funktionen, und diskrete Lösungen erforderten immer mehr Bauteile. Wenn sich beispielsweise die Anzahl komplexer SoC-Bauteile auf dem Board ändert, ändert sich unter Umständen auch die Anzahl der Stromversorgungs-, Glue-Logic- und anderer Steuerfunktionen. Das kann signifikante Änderungen an der Logik und beim Timing erforderlich machen. In der Folge verzögern diskrete Lösungen nicht nur die Einführung neuer Server-Hardwaretypen, sondern verursachen auch wegen der zunehmenden Bauteilanzahl immer höhere Kosten.

Hinzu kommt außerdem, dass Design-Änderungen manchmal eine Überarbeitung des gesamten Boards notwendig machen, was zu weiteren Verzögerungen und zusätzlichen Kosten führt. Deshalb wird bei modernen Serversystemen die Socket-Funktion #1 in nichtflüchtige PLDs (Progammable Logic Device) implementiert. Diese PLDs sollen ihren Betrieb aufnehmen, sobald die Betriebsspannung an das Board angelegt wird (instant-on). Die Logikdichte und die Anzahl der zur Implementierung der Socket-Funktion #1 benötigten I/Os ist vom Servertyp abhängig. Deshalb eignet sich eine PLD-Familie mit zahlreichen I/O- und Dichte-Optionen sehr gut zur Implementierung der Funktion #1.

FPGA-Familie Mach-XO3

Bild 2: Schematischer Aufbau der Steuer-PLDs auf der Basis des Mach-XO2/O3.

Bild 2: Schematischer Aufbau der Steuer-PLDs auf der Basis des Mach-XO2/O3. Lattice

Sowohl die Mach-XO3 FPGA-Familie von Lattice als auch deren Vorgänger, die Mach-XO2-Familie (im Folgenden zusammen als Mach-XO2/3 bezeichnet, Bild 2), bieten diese Eigenschaften. Die Mach-XO2/3 Bausteine sind sofort betriebsbereite, nichtflüchtige PLDs mit 640 bis 9400 LUTs (Lookup-Tabelle) und 22 bis 384 I/Os. Diese PLDs lassen sich im System transparent aktualisieren und unterstützen Dual-Boot für den Fall etwaiger Fehler während eines Updates. Sie benötigen nur eine einzige 3,3-V-Betriebsspannung, und der Algorithmus für das Serverboard-Power-Management tritt in Aktion, sobald die Betriebsspannung höher als 2,2 V ist. Dadurch ist das Mach-XO2/XO3 der erste Baustein auf dem Board, der betriebsbereit ist, und der letzte, der beim Herunterfahren funktionslos wird.

Diese Bausteine unterstützen mehrere I/O-Bänke, die einzeln aktiviert/deaktiviert werden können, ohne den Betrieb der übrigen Blöcke zu beeinflussen. Sie eignen sich dadurch für die Integration mehrerer heterogener Funktionen wie beispielsweise die Steuerung mehrerer Betriebsspannungsdomänen, Außerband-Signalisierungen und Stand-by-Steuerungen. Außerdem ermöglichen sie es Entwicklern, ältere Designs um SPI-, I2C- und Timer/Zähler-Schnittstellen zu erweitern und programmierbare Multi-Time/On-Chip-Flash-Konfigurationsspeicher zu unterstützen. Die Bausteine der Mach-XO2/XO3-Familie sind im 5 mm x 5 mm großen QFN- und BGA-Gehäuse mit 1 mm- beziehungsweise 0,80-mm-Lotkugelraster verfügbar.

 

Wie sich ein In-System-Update ohne Unterbrechung des laufenden Server-Betriebs durchführen lässt und wie Mach-XO2/3-PLDs hot-swap-fähige Laufwerke unterstützen, erfahren Sie auf der nächsten Seite.

Hitless I/O

Eck-Daten

Wie in der Vergangen­heit suchen auch heute Server-Ent­wick­ler nach Möglich­keiten, mög­lichst schnell und kosten­günstig mehr Funk­tio­nali­tät auf ihre Boards zu packen. Das lässt sich durch den Einsatz von Steuer-PLDs erreichen – eine erfolg­reiche, wenngleich oft übersehene Stra­te­gie. Steuer-PLDs bieten Server-Ent­wick­lern eine einfache Möglich­keit, alle Steuerpfad­funk­tionen in einen einzigen program­mier­baren Baustein zu inte­grie­ren und die Funk­tio­nali­tät sogar nach der Auslieferung des Servers an den Kunden noch zu erwei­tern oder zu modi­fi­zie­ren. Das bedeutet eine wesent­liche Vereinfachung des Board-Designs und -Debug­gings.

Steuer-PLDs ermöglichen es Entwicklern, die Markteinführung neuer Produkte signifikant zu beschleunigen und dem Druck des Marktes gerecht zu werden, innerhalb der vorgegebenen Zeit eine neue kundenspezifische Hardware auf den Markt zu bringen. Manchmal kann es bei der Implementierung der Steuerfunktion oder der Gesamt-Systemarchitektur zu Fehlern kommen, die eine neue Funktion erfordern.

Design-Modifikationen laufen üblicherweise so ab, dass ein In-System-Update durchgeführt und das System anschließend herunter- und wieder hochgefahren und damit das neu eingespielte Image wirksam wird. Dies unterbricht den laufenden Betrieb der gesamten Server-Hardware und setzt die Systemverfügbarkeit herab. Um den kontinuierlichen Betrieb von Hochverfügbarkeitssystemen sicherzustellen, können die Mach-XO3-PLDs die I/Os während des Konfigurations-Refreshs und der Initialisierung der neuen Konfiguration unverändert lassen. Dies wird als „Hitless I/O“ bezeichnet.

Wie bringt das System es fertig, die Zustände der Ausgänge zur Steuerung der Betriebsspannungen und andere Logiksteuerungssignale unverändert zu lassen, während die Zustandsmaschinen, die durch das neue Image entstehen, initialisiert werden? Das wird dadurch erreicht, dass bei diesen PLDs alle kritischen I/Os über einen Latch-MUX verfügen, der die Ausgänge während der Initialisierung der Zustandsmaschinen im letzten bekannten Zustand hält und nach Abschluss der Initialisierung die Kontrolle über die Ausgänge wieder an die Zustandsmaschinen zurückgibt. Das ist möglich, weil die Schaltung einen separaten „Hitless_I/O_Enable“-Eingang besitzt und dadurch zwischen einem normalen (Power-on) Start und einem Neustart nach einer Rekonfiguration unterscheiden kann. Der „Hitless_I/O_Enable“-Eingang verhindert, dass kritische Ausgänge bei einer normalen Power-on-Sequenz gesperrt werden.

Unterstützung hot-swap-fähiger Laufwerke

Bild 3: PLDs vereinfachen die Backplane-Steuerung von hot-swap-fähigen Laufwerken.

Bild 3: PLDs vereinfachen die Backplane-Steuerung von hot-swap-fähigen Laufwerken. Lattice

Rack-Server unterstützen hot-swap-fähige HDD/FD/NVMe-Laufwerke. Diese Laufwerke werden in einen Rückwand-Steckplatz gesteckt und kommunizieren über serielle Schnittstellen wie beispielsweise SGPIO und I2C mit dem Motherboard. Ein Mach-XO2/3-PLD eignet sich für die Integration der für die Backplane-Steuerung benötigten Logikfunktionen (Bild 3). Wenn beispielsweise ein NVMe-Laufwerk in den Laufwerksschacht gesteckt wird, routet die Logik im Mach-XO2/3 die Status- und Steuersignale automatisch zum I2C-Bus statt zum SGPIO-Bus.

Hardware-Management des Host-Bus-Adapters

Eine weitere mögliche Anwendung für Mach-XO2/3-PLDs ist die Integration der Steuerlogik für den Host-Bus-Adapter. Diese Lösung integriert SGPIO- und andere Außerband-Signalisierung und managt die Power/Reset-Sequenzierung und andere PLD-Funktionen, darunter die schnelle Erkennung von Stromversorgungsfehlern und die Statusspeicherung. Mithilfe der Hitless-I/O-Features können Entwickler im Feld via I2C-Schnittstelle die im Mach-XO2/3 implementierte Logik um zusätzliche Funktionen erweitern oder etwaige Fehler beheben, ohne den Systembetrieb unterbrechen zu müssen.

 

Wie sich der Analog-Sense-Control-Baustein gemeinsam mit dem Steuer-PLD zur Überwachung einsetzen lässt und wie sich mehrere I2C-Puffer integrieren lassen, beschreibt der Beitrag auf der folgenden Seite.

Überwachungsfunktionen

Bild 4: Blockschaltbild eines Konzepts zur Integration von Telemetriefunktionen.

Bild 4: Blockschaltbild eines Konzepts zur Integration von Telemetriefunktionen. Lattice

Typischerweise messen Systeme kontinuierlich Onboard-Betriebsspannungen, Board- und Bauteiltemperaturen und Lastströme kritischer Stromversorgungen. Zur Unterstützung dieser Messungen enthalten Server-Boards A/D-Wandler-ICs, die die im BMC integrierten Kanäle ergänzen, und außerdem externe ICs- zur Überwachung von Temperaturen und Lastströmen. Für das Management der Telemetrie-I2C-Busse enthält das Board I2C-Puffer-ICs und I2C-Multiplexer-ICs (Bild 4). Die DC/DC-Wandler auf dem Board dienen zur Versorgung der ICs und werden vom Steuer-PLD überwacht. Das Steuer-PLD überwacht außerdem die digitalen „Power-Good“-Signale der DC/DC-Wandler.

Entwickler können den ASC-Baustein (Analog Sense und Control) von Lattice zusammen mit dem Steuer-PLD zur Integration des ADC-ICs und mehrerer Temperaturüberwachungs-ICs nutzen. Zugleich überträgt das Bauteil die „Enable“- und „Power-Good“-Signale vom Steuer-PLD zu den ASC-Bausteinen. Dadurch werden I/Os am Steuer-PLD frei, die sich dann zur Integration der Funktionen von I2C-Puffern und I2C-Multiplexer-ICs verwenden lassen. Dadurch verringern sich die Gesamtkosten und die für die Telemetrie-Schaltung benötigte Bauteilanzahl. Durch die Überwachung der Betriebsspannungen verbessert das ASC außerdem die Zuverlässigkeit der Power-down-Sequenzierung und minimiert Datenstaus auf dem Board.

Integration auf Riser-Karten

Server enthalten oft Riser-Karten, beispielsweise zum Anschluss von LEDs oder Sensoren zur Überwachung des Gehäuse-Öffnungszustands, wodurch sich die Anzahl der Steckverbindungen auf dem Mainboard verringern lässt. Diese Funktionen sind oft mittels diskreter Logik-ICs implementiert. Das Ergebnis sind mehrere Riser-Karten mit jeweils geringfügig unterschiedlicher Funktionalität. Eine Möglichkeit, die Anzahl von Riser-Karten-Typen zu reduzieren, besteht darin, deren Funktionen in ein Mach-XO2/3-PLD zu integrieren. Damit lässt sich die Logik einfach während der Produktion wie erforderlich modifizieren.

Integration mehrerer I2C-Puffer

Bild 5: Das Mach-XO2/O3-1-V-I/O unterstützt die Integration von I2C-Puffern.

Bild 5: Das Mach-XO2/O3-1-V-I/O unterstützt die Integration von I2C-Puffern. Lattice

Die CPU in einem Serversystem kommuniziert mit den DDR-Speicher-DIMMs über ein Paar I2C-Puffer (Bild 5). Über eine weitere I2C-Schnittstelle überwacht die CPU außerdem das SSD-Laufwerk. Entwickler sind gezwungen, die 1,05-V-I2C-Schnittstelle der CPU mithilfe von Pegelumsetzern an die mit 1,2 V betriebenen DDR-Speicherbausteine und an die mit 3,3 V betriebenen SSD-Laufwerke anzupassen.

Die CPU erzeugt außerdem mehrere Außerbandsignale, die über die 1,05-V-Logiksignalschnittstelle ausgegeben werden. Diese Außerband-Logiksignale werden von anderen Funktionsblöcken benötigt, deren Signalschnittstelle mit 2,5 V oder 3,3 V arbeitet. Deshalb werden GTL-Puffer (Gunning Transceiver Logic) auf dem Board benötigt. Preiswerte Mach-XO3-PLDs in einem kompakten QFN-Gehäuse (5 mm x 5 mm) lassen sich dazu verwenden, den 1,05-V-I2C-Logikpegel und andere Logiksignale auf 1,2 V, 3,3 V oder 2,5 V umzusetzen. Das spart Leiterplattenfläche, Bauteile und – was am wichtigsten ist – Implementierungskosten.

Srirama Shyam Chandra

(Bild: Lattice)
Senior Marketing Manager bei Lattice Semiconductor

(na)

Sie möchten gerne weiterlesen?

Unternehmen

Lattice Semiconductor

Churchill Court, 3 Manor Royal
N/A Surrey, Woking
United Kingdom