Erschienen in DESIGN&VERIFICATION 0/2000, S. 16
Die Reprogrammierbarkeit von PLDs wurde lange Zeit nur am Beginn der Entwicklungsphase genutzt, um erforderliche Hardware-Iterationen sehr schnell durchführen zu können. Durch diese Eigenschaft können PLDs die Design-Zyklen im Vergleich zu Implementierungen mit diskreten Standard-Komponenten oder ASICs wesentlich verringern. Jetzt gehen Entwickler verstärkt dazu über, PLDs auch für die eigentliche Produktentwicklung bzw. -realisierung einzusetzen, wobei die Reprogrammierbarkeit für die Implementierung von mehr Funktionalität und die Realisierung von System-On-a-Programmable-Chip-Designs (SOPCs) genutzt werden kann.
BERND NIEDERMEIER
Mit der Wiederprogrammierbarkeit von PLDs (programmable logic devices) direkt im Feld, kann der Entwickler hochintegrierte Systeme realisieren, die auch während des Betriebs modifiziert werden können, um den vielfältigen Aufgaben bei der kundenseitigen Installation gerecht zu werden. Für diesen SOPC-Entwicklungsansatz mussten natürlich erst die Voraussetzungen, wie die Verfügbarkeit der entsprechend komplexen PLDs (Abb. 1) gegeben sein. Darüber hinaus lassen sich die PLDs über verschiedene Kommunikationsmedien wie LANs oder Internet rekonfigurieren. Mit den seit kurzem verfügbaren Embedded-Mikroprozessor-Cores für PLDs lassen sich noch mehr programmierbare Funktionalitäten integrieren. Außerdem kann ein konfigurierbares System entwickelt werden, das verschiedene Applikationen über einen Satz von kundenspezifischen Peripheriefunktionen und Coprozessoren abdeckt.
Rekonfigurierbare Systeme auf PLD-Basis
Rekonfigurierbare System auf Basis von PLDs decken ein weites Applikationsfeld ab, angefangen von Anwendungen mit nur kleinen Modifikationen bis hin zu Systemen, die vollkommen verschiedene Produkte darstellen können. Ein Vertreter für die erstere Variante mag ein System mit paket-orientierter Datenübertragung sein, dass seine Übertragungstechnik an die jeweilige Situation anpasst. Das andere Extrem könnte ein DSP-basierendes Video-Produkt sein, dass die Koeffizienten der FIR-Filter, die Bandbreite oder Anzahl der Filterstufen und den Filtertyp ändern kann, um eine unterschiedliche Funktionalität zu realisieren. Eine typische PLD-basierende Applikation verwendet ein einzelnes Programmier-File, dass die Informationen enthält, die für die Konfiguration oder Programmierung des PLDs erforderlich ist. Systeme mit rekonfigurierbaren PLDs haben dagegen mehrere Programmier-Files, wobei jedes File einen unterschiedlichen Betriebsmode für das PLD beinhaltet. Heute basieren die komplexen PLDs meist auf einer SRAM-Technologie. Dies bedeutet, dass sie innerhalb von nur einigen hundert Millisekunden wiederprogrammiert werden können. Die Programmier-Files für die verschiedenen PLD-Konfigurationen können im System gespeichert oder über einen Kommunikationskanal auf das System heruntergeladen werden. Dieses System benötigt daher einen Art Host für die Neukonfiguration, um die PLDs entsprechend zu steuern – dies ist meist ein Mikrocontroller oder Mikroprozessor. Durch die Verfügbarkeit von Embedded-Prozessor-Cores für PLDs eröffnet sich Entwicklern nun ein neuer Integrationsgrad, indem auch dieser Konfigurations-Host auf dem PLD implementiert werden kann.
Prozessoren in PLDs
Viele digitale Systeme beinhalten einen oder auch mehrere Standard- und kundenspezifische Prozessoren. Die Entscheidung, spezielle Funktionen mit einem Prozessor oder einer entsprechenden Logik zu implementieren, ist eine Frage der Performance. Jede spezielle Funktion wird von einer speziellen Hardware besser ausgeführt als von einem Prozessor. Demnach ist ein wichtige Aufgabe der Systementwickler, die Funktionalität bestmöglich über das System zu verteilen und dabei einen idealen Kompromiss zwischen Leistungsfähigkeit und Kosten zu erreichen. Mit der Verfügbarkeit von Prozessor-Cores für PLDs (Abb. 2) haben Entwickler nun eine neue Möglichkeit, eine bestmögliche Implementierung von Funktionen in Prozessoren und spezielle Hardware wie Coprozessoren oder Peripheriekomponenten zu erreichen. Dabei bietet die PLD-Lösung deutliche Vorteile gegenüber disktreten Komponenten und ASICs. Durch den Einsatz von PLDs kann der Entwickler verschiedenen Design-Versionen evaluieren und mit funktionsfähiger Hardware testen – in der gleichen Zeit, die sonst allein für die Produktion eines einzelnen Bausteines (ASICs) benötigt wird. Gegenüber den Standard-Komponenten ergeben sich zudem deutliche Kostenvorteile, insbesondere wenn Design-Änderungen am Board erforderlich werden. Wenn die Design-Evaluierungen durchgeführt wurden, können die entsprechenden PLD-Programmier-Files abgespeichert und das System-PLD damit programmiert werden, wie es für die verschiedenen Betriebsmodi nötig ist. Beispielsweise können in einer Betriebsart zwei Coprozessoren A und B den Datentransfer durch das System abwickeln, während dies in einer anderen Betriebsart durch die Coprozessoren C und D erledigt wird. Auf diese Weise kann der Embedded-Entwickler mit der Vielfalt an Operationen eine Hardware-Performance erreichen, wie sie sonst nur von applikationsspezifischen Prozessoren mit spezifischem Befehlsatz erreicht wird. Darüber hinaus bleibt ein plattform-unabhängiger Code erhalten.
Remote-Konfiguration
Mit einem Embedded-Prozessor in einem PLD kann ein System relativ einfach aufgebaut werden, das durch einen externen Anwender überprüft und neu konfiguriert werden kann. In Abb. 3 ist das Blockdiagramm eines derartigen Systems dargestellt, wobei die neuen Konfigurations-Files aus dem Internet heruntergeladen werden können. Das neue File wird dann in den Flash-Speicher des Embedded-Prozessors programmiert. Der Flash-Speicher enthält außerdem ein Konfigurations-File sowie den Boot-Block für den Prozessor. Dieses Konfigurations-File ist ein sogenanntes ‚Known-good‘-File, auf das das System zurückgreifen kann, wenn es bei der Programmierung zu einer Systemunterbrechung kommt. Der Einsatz eines nichtflüchtigen Flash-Speichers für die Abspeicherung dieser Konfigurationsdatei für den Fehlerfall und des Boot-Blocks gewährleistet, dass das System auch im Fall eines Spannungseinbruchs einen Reset durchführen kann, falls die Konfigurationsinformation in dem SRAM-basierenden PLD verloren geht. Das Blockdiagramm in Abb. 3 zeigt eine PLD-basierendes rekonfigurierbares System, dass einen Embedded-Prozessor nutzt, um das System im Remote-Betrieb zu überwachen bzw. neu zu konfigurieren. Um die Remote-Überwachung bzw. -Konfiguration des PLDs zu ermöglichen, kann der Prozessor eine kleine HTML-Seite auf dem Web-Browser des Anwenders nutzen. Für die Realisierung benötigt der Prozessor einen Echtzeitbetriebskern, TCP/IP-Stack, ein Web-Server-Programm, eine Default-Webseite und den Boot-Block. Wenn das System-PLD nun rekonfiguriert ist, kann der Embedded-Prozessor das ‚Configuration Management PLD‘ (CMP) auffordern, das entsprechende Konfigurations-File vom Flash-Speicher zu holen und es zum JTAG-Port des System-PLDs zu senden. Das CMP führt dann den kompletten Konfigurationsprozess aus. Ist der Prozess fehlerhaft, dann kann das CMP auf das Known-Good-File zurückgreifen. Nach der durchgeführten Neukonfiguration steuert das Embedded-PLD die HTML-Seite an, um den Anwender über die erfolgreiche oder gescheiterte Konfiguration zu informieren. Die wesentlichen Komponenten für die Realisierung des beschriebenen Systems sind von den führenden PLD-Anbietern bereits verfügbar, einschließlich der Embedded-Prozessor-Cores, des Echtzeitbetriebsystems und der entsprechenden Software sowie Dokumentation.
Beispiel: Konfigurierbarer Netzwerk-Prozessor
Das folgende Beispiel zeigt das Design eines konfigurierbaren Netzwerk-Prozessors für paketorientierte Datenübertragung. Dabei wird deutlich, wie die neuen PLD-Merkmale wie hohe Komplexität, Embedded-Speicher (einschließlich inhaltsadressierbare Speicher, CAM), Prozessor-Cores und schnelle I/Os die Voraussetzung schaffen, komplexe Kommunikationssysteme zu entwickeln, die auf verschieden Arten neu konfiguriert werden können. Das Beispiel beinhaltet viele Elemente, die in einem typischen Netzwerk-Prozessor zu finden sind, einschließlich Framing, Klassifizierung, Suche, Modifizierung, Verschlüsselung, Kompression und Queuing. Einige dieser Elemente profitieren insbesondere von der Implementierung in PLDs, wie die schnellen Suchfunktionen (MPLS-Label oder QoS). Diese können z.B. die Embedded-CAM-Funktionalität sowie das LVDS-I/O-Interface, mit einer Bandbreite bis zu 840 MB/s nutzen. Abbildung 4 zeigt die wichtigsten Komponenten eines PLD-basierenden konfigurierbaren Netzwerk-Prozessor-Systems. Dabei können die Paket-Verarbeitungsprotokolle, die QoS-Algorithmen, die Verschlüsselungs- und Kompressions-Algorithmen im System modifiziert werden. Viele Elemente dieses Systemes können entsprechend den Anforderungen des endgültigen Systems neu konfiguriert werden. Auf Basis dieses Design ist es u.a. möglich ein Board zu entwickeln, dass verschiedene Kommunikationsstandards wie Gigabit Ethernet, ATM oder POS (Packet Over Sonet) unterstützt. Dabei ist nur eine einfache Neukonfiguration des PLDs erforderlich, wobei das MAC/PHY-Interface und der Block für die Frame-Verarbeitung durch die entsprechenden Funktionen ersetzt werden. Diese Art der Neukonfiguration kann bei der Fertigung, bei der Auslieferung oder auch erst im Feldeinsatz erfolgen. Um die steigenden Anforderungen im Hinblick auf differenzierte Dienste oder höhere Sicherheitsanforderungen zu erfüllen, kann es notwendig sein, das System für eine komplexere Paket-Verarbeitung neu zu konfigurieren. Damit kann eine derartige Neukonfiguration eine funktionelle Erweiterung des Systems darstellen. Die beschriebene Architektur bietet auch eine dynamische, hardware-beschleunigte Sicherheitsfunktion, indem – je nach Bedarf – zwischen verschiedenen Verschlüsselungs-Algorithmen (DES, 3DES, RSA, etc.) umgeschaltet werden kann. Dabei muss nur der entsprechende Funktionsblock für die Verschlüsselung/Kompression neu konfiguriert werden. Die CPU für das Konfigurations-Management ist ein On-board-Prozessor, der die entsprechende Neukonfiguration durchführt. Der Prozessor sammelt darüber hinaus auch die entsprechenden statistischen Informationen über den Datenverkehr von dem Packet-Buffer-Control- und Traffic-Managern. Diese Daten können an den Systemverwalter übertragen und als Basis für die QoS-Optimierung genutzt werden. Diese kann z.B. durch Neuordung der Prioritäten innerhalb des Queuing-Schemas erfolgen oder durch eine Änderung bzw. Neukonfiguration der Queuing- und/oder Policy-Algorithmen. Generell ermöglicht diese PLD- und Embedded-Prozessor-basierende Lösung ein leistungsfähiges Design mit einem hohen Grad an Flexibilität.
Fazit
Die Kombination aus der gestiegenen Komplexität und Funktionalität von PLDs mit ihrem traditionellen Vorteil der Neukonfigurierbarkeit ermöglich es den Entwicklern komplette Systeme auf einem Chip zu realisieren, die im System gemäß einer Vielfalt von Bedingungen modifiziert werden können. Der Einsatz von PLDs für rekonfigurierbare Desings bietet die dynamische Systemauslegung, wie man sie von den Software-Ansätzen kennt, aber mit der Leistungsfähigkeit von Hardware-Lösungen. Die Entwicklung von PLD-basierenden Systemen ist die Antwort auf die Forderungen des Marktes nach leistungsfähigen Lösungen, die insbesondere die Time-to-Market-Kriterien und die Flexibilität angesichts sich verändernder Standards erfüllen. Mit hochkomplexen PLDs, umfangreichen IP-Funktionen und nun auch Embedded-Prozessor-Cores sowie den entsprechenden Tools stehen alle notwendigen Zutaten für die entsprechenden Design-Lösungen zur Verfügung.
|
| |
|
 |
|