Chip-Design

Inhalt

 
Eines der Ziele des Teilprojektes C5 liegt in der praktischen Umsetzung der innerhalb des SFB 376 gewonnenen Ergebnisse und dem prototypischen Aufbau eines realzeitfähigen parallelen Datenservers. Der Server soll dabei als eingebettetes System, bestehend aus einem Netzwerk von aktiven Routingknoten (s. Abb. 1), aufgebaut werden. Zentrale Forschungsaspekte bei dem Entwurf des aktiven Routingknotens sind Verfahren für den Entwurf hochintegrierter Schaltkreise, mit denen die Größe des Designs beherrschbar bleibt und die eine Testbarkeit des Systems gewährleisten. Die technische Herausforderung für den anvisierten Routingknoten ist die ressourceneffiziente Integration aller spezifizierten Funktionen auf nur einem sogenannten System-on-Chip (SoC). Wichtige Fragestellungen waren hierbei der durchgängige Entwurf von Soft- und Hardwareeinheiten als universell verwendbare Module im SoC-Entwurf, die Einbindung rekonfigurierbarer Hardwareblöcke zur Unterstützung der programmierbaren Einheiten, sowie die Standardisierung der Modulschnittstellen hinsichtlich einer einfacheren Einbettung der Hardware-Module und die Bereitstellung der notwendigen Verbindungsinfrastruktur.


Abbildung 1: Komponenten des aktiven Routingknotens.



Anwendungsspezifische, rekonfigurierbare Hardware-Unterstützung

Eine Möglichkeit zur Entlastung der programmierbaren Einheiten auf einem hochintegrierten Baustein ist die Einbettung und Nutzbarmachung von anwendungsspezifischen, rekonfigurierbaren Hardwareblöcken. Bei der Betrachtung von rekonfigurierbaren Strukturen kann man dabei zwischen feingranularer Rekonfigurierbarkeit auf Gatterebene und grobgranularer Rekonfigurierbarkeit auf der Ebene von Modulen unterscheiden. Im Rahmen dieses Projektes haben wir dabei den Schwerpunkt auf die feingranulare Rekonfigurierbarkeit gelegt, für die z.B. feldprogrammierbare Bausteine (FPGA's) ein bekanntes Beispiel sind.

Die Anbindung von rekonfigurierbaren Einheiten kann dabei durch eine lose Kopplung über einen Systembus, aber auch über eine direkte Kopplung an den Prozessorbus stattfinden. Eine lose Kopplung wurde mit Hilfe des am Fachgebiet Schaltungstechnik entworfenen Raptor Prototyping-Systems evaluiert (s. Abb. 2). Das Raptor-System verfügt über alle wichtigen Komponenten, um komplexe Schaltungs- und Systementwürfe zu realisieren. Hierzu kann das Raptor-System über den PCI-Bus betriebssystem- und rechnerunabhängig mit einem Hostrechner gekoppelt werden. Zur Kommunikation der verschiedenen Systemkomponenten auf dem Prototypen-Board wurde ein unabhängiges Multi-Master-Bussystem implementiert, das über einen eigenen Arbiter und eine eigene Speicherverwaltung verfügt. Die rekonfigurierbare Logik kann auf zwei unabhängig konfigurierbaren Xilinx FPGAs implementiert werden, wobei die Funktionalität von bis zu 500.000 Transistoren emuliert werden kann. Der Vorteil dieser Realisierung liegt in der Universalität des Ansatzes. Die Anbindung von Erweiterungskarten über den PCI-Bus wird von allen gängigen Systemen im PC-Bereich und von vielen Systemen im eingebetteten Bereich unterstützt. Als Nachteil ist jedoch die durch den PCI-Bus bedingte hohe Latenz beim Zugriff auf die Prototypen-Karte zu nennen. Die Ausführungsdauer der Erweiterungen auf der Prototypenkarte muß eine gewisse Zeit überschreiten, um die Latenzen beim Zugriff über den PCI-Bus zu rechtfertigen und zu einer Geschwindigkeitserhöhung des Gesamtsystems zu führen.

Abbildung 2: Die Raptor Prototyping-Umgebung.

Um diese Nachteile zu umgehen, wurde eine zweite Prototypenentwicklung vorgenommen, die eine direkte Kopplung zwischen dem Prozessor und der rekonfigurierbaren Hardware ermöglicht (s. Abb.3). Grundlage dieser Umgebung ist eine Platine mit zwei Xilinx FPGAs, die im Gegensatz zu dem Raptor-Board auch als Stand-Alone Version lauffähig ist und über eine größere Anzahl an Verbindungsleitungen zwischen den FPGAs verfügen. Kernkomponente dieses Designs ist ein auf einem FPGA abgebildeter Prozessorkern, der über einen AMBA AHB-Bus an externe Einheiten angebunden ist. Die applikationsspezifische, rekonfigurierbare Einheit kann über den zweiten FPGA direkt an den Prozessor angebunden werden. Weiterhin besteht die Möglichkeit, über eine spezielle Co-Prozessor-Schnittstelle den Befehlssatz des Prozessors um feingranulare Befehle zu erweitern.

Abbildung 3: Prototypenumgebung zur direkten Kopplung von Prozessor und Rekonfigurierbarer Hardware.

Ein untersuchtes Teilgebiet in diesem Zusammenhang ist die Unterstützung von lokalitätsabhängigen Aufgaben innerhalb des Routingknotens durch rekonfigurierbare Logik. Ein Beispiel hierfür ist in Abb. 4 gegeben. Je nach Lage des aktiven Routingknotens innerhalb des gelevelten Netzwerkes werden der rekonfigurierbaren Einheit unterschiedliche Aufgabenstellungen zugeordnet. So kann z.B. ein Knoten an dem Zugang zu einem lokalen Netzwerk den Prozessor um protokollspezifische Aufgabenstellungen entlasten. Sind Sicherheitsaspekte für die Anbindung an die externen Einheiten von Bedeutung, kann in einer weiteren Schicht eine Kryptographie-Einheit eingeführt werden. In Zusammenarbeit mit dem Teilprojekt B1 haben wir untersucht, wie die Komprimierung von Daten durch eine rekonfigurierbare Einheit unterstützt werden kann. Dabei wurden verschiedene Varianten untersucht, die sich durch den Anteil der von dem Prozessor ausgelagerten Funktionalität unterscheiden. Als ein Ergebnis konnte festgestellt werden, daß bereits mit heute erhältlichen feldprogrammierbaren Bausteinen mehrere MByte Daten pro Sekunde effizient komprimiert werden können.

Abbildung 4: Prototypenumgebung zur direkten Kopplung von Prozessor und Rekonfigurierbarer Hardware.

Verbindungsstrukturen für SoC-Bausteine

Die heutigen Fertigungstechnologien mit minimalen Strukturgrößen weit unter einem Mikrometer ermöglichen die Integration einer großen Anzahl von Komponenten auf einem hochintegrierten Baustein. Mit der zunehmenden Anzahl und Komplexität der in diesen sogenannten System-on-Chips (SoC) integrierbaren Modulen gewinnen die Verbindungsstrukturen auf dem Baustein immer mehr an Bedeutung. Um bei der Schaltungsentwicklung die richtige Entscheidung bezüglich der einzusetzenden Verbindungsstrukturen möglichst früh treffen zu können, ist es notwendig, die Leistungsfähigkeit, den Flächenverbrauch und die Leistungsaufnahme der Verbindungsstrukturen auf einer möglichst hohen Abstraktionsebene abschätzen zu können.

Im Rahmen dieses Projektes wurden analytische Modelle entwickelt und durch umfangreiche Simulationen validiert, die den Flächen und Energieverbrauch von verschiedenen Verbinungsstrukturen abschätzen. Dabei wurden neben Bussen, Multiplexern und geswitchten Verbindungen auch hierarchischen Strukturen untersucht. Im Gegensatz zu anderen Arbeiten beziehen sich unsere Untersuchungen auf Standardzellenentwürfe. Mit Hilfe unserer analytischen Modelle können auf einem hohen Abstraktionsniveau Abschätzungen über den zu erwartenden Energie- und Flächenverbrauch der Verbindungsstruktur einer Schaltung gemacht werden. Eingabeparameter sind die Anzahl der Module, ihre ungefähre Größe und die Breite der Schnittstelle zu der Verbindungsstruktur. Die analytischen Modelle sind durch Simulationen mit einer 0,6 µm Standardzellenbibliothek verifiziert worden.

Aufbau des aktiven Routers

Grundlage unseres Prototypen ist der ARM Prozessor. Die ARM-Architektur kann als eine Referenzplattform im Bereich der eingebetteten Bausteine angesehen werden und wird besonders in Netzwerkkontrollern eingesetzt. Unsere Prototypenumgebung basiert auf dem EBSA 285-Evaluierungsboard der Firma Intel, das eine Ankopplung des StrongARM-Prozessors an den PCI-Bus bereitstellt (siehe Abb. 5). Über den PCI-Bus können weitere Funktionalitäten in das System integriert werden. Für unseren Prototypen haben wir zusätzliche Fast Ethernet- und SCSI-Karten in das System eingebunden. Die rekonfigurierbare Hardwareeinheit innerhalb des Systems wird durch das Raptor-Board realisiert. Eine dedizierte Routingeinheit befindet sich zur Zeit noch in der Fertigstellung.

Abbildung 5: Aufbau der diskreten Prototypen-Umgebung.

Parallel zum Aufbau der diskreten Umgebung wurde bereits mit der Integration des aktiven Routingknotens auf einem hochintegrierten Baustein begonnen. Dabei konnten bereits in diesem Antragszeitraum mehrere Module des aktiven Routingknotens in der Hardwarebeschreibungssprache VHDL implementiert und getestet werden. Die Grundlage der Evaluierung der erzielten Forschungsergebnisse und der Implementierung des aktiven Routingknotens bildet ein zum Motorola M-Core kompatibler Prozessorkern (siehe Abb. 6). Bei dem Prozessorkern handelt es sich um einen 32 Bit RISC Prozessor, der ähnlich wie die ARM-Architektur für den Einsatz in eingebetteten Systemen ausgelegt ist. Sein Befehlssatz ermöglicht aufgrund seiner nur 16 Bit breiten Befehlsworte und seiner konsequenten Load-Store Architektur eine hohe Programmdichte, einen geringen Flächenverbrauch und u.a. dadurch bedingt eine hohe Energieeffizienz. Auf Basis der VHDL-Beschreibung ist es möglich, die Anbindung des Kontrollers an die umgebende Peripherie zu manipulieren und somit verschiedene Architekturprinzipien miteinander zu vergleichen (s. auch Kooperation mit B1). Darüberhinaus ist es auch möglich, den Befehlssatz des Prozessorkerns zu manipulieren und auf die hier vorgestellte Problematik hin zu optimieren. Gemeinsam mit dem Entwurf der Medienzugangsschicht eines Ethernetkontrollers nach dem IEEE 802.3µ-Standard kann bereits zum jetzigen Zeitpunkt eine Teilfunktionalität des aktiven Routingknotens auf einem applikationsspezifischen Baustein integriert werden. Das erfolgreiche Zusammenspiel der beiden Komponenten konnte mit Hilfe der von uns entwickelten Prototypen-Boards nachgewiesen werden.

Abbildung 6: Aufbau des M-Core Prozessor-Kerns.

Als eine weitere Komponente des aktiven Routingknotens haben wir einen serielle Transceiver entwickelt, der als analoge Komponente im Full-Custom Verfahren entworfen wurde. Der Transceiver wurde im Rahmen des Europractice-Programms in einer 0,6 µm Technologie gefertigt. Der Baustein hat eine maximale Übertragungsrate von 900 MBit/s bei einer Versorgungsspannung von 3,3 Volt und einer Stromaufnahme von 90 mA. Der eigentliche Kern des Transceivers hat eine Fläche von nur 410 x 200 µm für den Receiver und von 320 x 530 µm für den Transmitter . Auf jedem der hochintegrierten Bausteine sind zu Testzwecken zwei Transceiver integriert, die gemeinsam mit den Anschlußpads eine Fläche von 10 mm2 einnehmen. Durch seine kompakten Ausmaße und seinen geringen Stromverbrauch ist er optimal für eine spätere Integration in den aktiven Routingknoten geeignet.

Die für den Test des Transceivers entworfene Platine (s. Abb. 7) kann in die am Fachgebiet Schaltungstechnik entwickelte Prototypen-Umgebung Presto eingebungen werden. Somit ist auch möglich, die Testplatine in den diskreten Prototypen des aktiven Routingknotens zu verwenden.

Abbildung 7: Transceiver-Baustein auf einer Test-Platine.

Grundlage der Realisierung des Softwaresystems war die Verwendung des pSOS-Betriebssystems für eingebettete Systeme. Die Verwendung eines eingebetteten Betriebssystems auf dem Prototypenboard ermöglichte es uns, bereits zu einem frühen Zeitpunkt in dieser Antragsphase mit der Implementierung von Basisfunktionalitäten zu beginnen. Weiterhin ist es möglich, auf Basis des Betriebssystems die in diesem Teilprojekt für den Prototypen implementierten Algorithmen mit wenig Aufwand auf die hochintegrierte Version des aktiven Routingknotens zu portieren. In diesem Zusammenhang ist nur die Anpassung der Treibermodule notwendig.

Bei der Implementierung wurde ein mehrschichtiges Konzept verfolgt. Auf der untersten Ebene wurden verschiedene Treiber für eigene Hardwarekomponenten entwickelt und ein SCSI-Treiber für unsere Umgebung portiert. Auf dieser Treiberebene aufsetzend wurde die Basisfunktionalität des Datenservers implementiert. Diese umfasst einige der bereits in unserer Simulationsumgebung untersuchten Algorithmen zur Datenplazierung, zum Scheduling und zum Wegefinden.

Die Anbindung an externe Server erfolgt im Rahmen der Zusammenarbeit mit dem Lehrstuhl von Herrn Y. Birk am Technion in Haifa (Israel. Dort wurde eine Schnittstelle in den Linux-Kernel integriert, die Anfragen an die SCSI-Schnittstelle des Rechners auf das lokale Netzwerk und somit an unseren Datenserver umleiten kann. Mit Hilfe dieser Schnittstelle ist es möglich, direkt Blockanfragen an unseren Datenserver zu versenden. Weiterhin haben wir auf unserem Datenserver einen HTTP-Server integriert. Dieser ermöglicht es dem Betreiber des Systems, eine benutzerfreundliche Konfiguration des Datenservers durchzuführen. Desweiteren dient der HTTP-Server als Benutzer- und Monitoringschnittstelle. Auf der Datenserverebene haben wir eine Streamingsoftware aufgesetzt, die es erlaubt, den Datenserver auch als Videoserver zu verwenden. Durch die Verwedung des RTSP-Protokolls ist es möglich, den Videoserver an gängige Abspieleinheiten auf PCs und Unix-Rechnern anzubinden. Die Auswahl und die Steuerung der Videosoftware erfolgt wiederum über den HTTP-Server.

Navigationshilfe:



André Brinkmann, 17.08.2000