Entwurf eines Multiprozessorsystems auf Microcontroller-Basis
| Beteiligte Mitarbeiter
| Kooperationspartner
| Projektbeschreibung | Struktur des Projekts | Software | Publikationen
|
Lehrstuhl für Rechnerarchitektur | |
Tobias Schubert, Dipl.-Inf. | |
Elke Mackensen, Dipl.-Ing. (FH) | |
Rolf Drechsler, Prof. Dr. | |
Nicole Drechsler, Dr. | |
| |
Lehrstuhl für Rechnerarchitektur | |
Thomas Albrecht | |
Christian Faller | |
Mark Jonas | |
Oliver Klerx | |
Timo Lakner |
In diesem Projekt wird ein PC-basiertes Multiprozessorsystem entwickelt. Die Grundrecheneinheiten des Multiprozessorsystems bilden kleine Prozessor-Nodes (RISC-CPUs), auf denen die Anwenderprogramme ablaufen. Die Prozessor-Nodes sind auf ein Trägerboard aufgesteckt. Bei dem Trägerboard handelt es sich um eine lange PC-ISA-Steckkarte. Bis zu 9 Prozessor-Nodes können auf einer solchen PC-ISA-Karte aufgesteckt sein. Mehrere dieser Karten können parallel in einem PC genutzt werden. Ausserdem ist die Verwendung mehrerer solcher PC-ISA-Karten ausserhalb des PCs in sogenannten Break-Out-Boxen möglich. Die Kommunikations-Leitungen zwischen den einzelnen Prozessor-Nodes werden dynamisch von einem Field Programmable Interconnection Device (FPID) geschaltet. Die Kontrolle dieses FPID geschieht durch einen Kommunikationsprozessor, der ebenfalls auf dem Trägerboard aufgesteckt ist.
Eigenschaften des Multiprozessorsystems:
Anzahl der Prozessoren skalierbar (max. 81 Stück)
Kommunikationstopologie (Stern, Ring, ...) per Software konfigurierbar
Kommunikationsprozessor und Prozessor-Nodes einzeln einsetzbar
Schnittstellen zwischen den Modulen flexibel definiert, d.h. Austausch von Prozessor-Nodes durch leistungsfähigere CPUs oder andere Module wie DA/AD-Wandler jederzeit möglich
Für kleinere Anwendungen ist eine Europa-Karte mit 4 Prozessor-Nodes vorhanden, die ausserhalb des PCs betrieben werden kann
Anwendungsmöglichkeiten:
Mess-, Steuer- und Regelungstechnik
Implementierung anderer Algorithmen, z.B. Genetische Algorithmen
Prozessor-Nodes
Die Prozessor-Nodes bilden die Grundrecheneinheiten des Multiprozessorsystems. Sie sind mit einem piplined RISC-Prozessor von Microchip, dem PIC17C43, ausgerüstet. Ein zusätzlicher externer RAM-Baustein ist für die Anwendungs-Programme reserviert. Die Prozessor-Nodes sind mit einer seriellen Schnittstelle ausgerüstet, über welche die Kommunikation zwischen den einzelnen Prozessor-Nodes abgewickelt wird.
Die Schnittstellen der Prozessor-Nodes zum Trägerboard und zum Kommunikationsprozessor sind so flexibel ausgelegt, daß diese durch andere Module, wie z.B. reine Speichermodule oder Module mit leistungsfähigerem Prozessor, ersetzt werden können.
Eigenschaften der Prozessor-Nodes:
Microchip PIC17C43 CPU
256 Byte lokales RAM und 4 KB lokales EPROM
Externe RAM-Bank 64K x 16 Bit
Programmierung in C oder Assembler
Kommunikationsprozessor
Die Hauptaufgabe des Kommunikationsprozessors liegt darin, die Kommunikations-Anfragen der Prozessor-Nodes zu steuern. Desweiteren muß der Kommunikationsprozessor mit den Kommunikationsprozessoren anderer Trägerboards Daten austauschen, den FPID-Baustein steuern und mit dem PC kommunizieren. Vom PC empfängt der Kommunikationsprozessor die Anwendungsprogramme für die Prozessor-Nodes, die dann an diese weitergeleitet werden.
Die hier verwendete CPU ist der CISC-Prozessor MC68340 von Motorola. Auch der Kommunikationsprozessor ist so modular ausgelegt, daß er leicht durch einen anderen CPU-Typ ersetzt werden kann.
Eigenschaften des Kommunikationsprozessors:
MC68340-CISC-Prozessor
128 KB externes EPROM
2 x 256 KB externes RAM
Programmierung in C oder Assembler
Software-Umgebung
Die Software des Multiprozessorsystemes kann in drei unterschiedliche Typen unterteilt werden: Software zum Programmieren der verschiedenen Module, Software zum Debugging der Module und Software zur Ausführung von Applikationen. Als Betriebssystem zur Programmierung wird DOS, Windows 3.11, Windows 95 oder Windows NT 4.0 verwendet.
Für die Programmierung und das Debugging der Module stehen von den jeweiligen Prozessor-Herstellern komfortable Tools zur Verfügung. Die Software zur Ausführung von Applikationen wird in Visual C++ entwickelt.
Eigenschaften der Software zur Ausführung von Applikationen:
Verwaltung mehrerer Trägerboards bzw. Prozessor-Nodes
Download von ausführbaren Programmen zu den Prozessor-Nodes
Konfiguration der Kommunikationstopologie
Ausgabe von Fehlern und Ergebnissen während der Ausführung von Anwendungen
Rolf Drechsler, Prof. Dr., Nicole Drechsler, Dr., Elke Mackensen, Dipl.-Ing. (FH), Tobias Schubert, Dipl.-Inf., Bernd Becker, Prof. Dr. Design Reuse by Modularity: A Scalable Dynamical (Re)Configurable Multiprocessor System Euromicro Conference, 2000 |
Tobias Schubert, Dipl.-Inf., Elke Mackensen, Dipl.-Ing. (FH), Nicole Drechsler, Dr., Rolf Drechsler, Prof. Dr., Bernd Becker, Prof. Dr. Specialized Hardware for Implementation of Evolutionary Algorithms Genetic and Evolutionary Computation Conference (GECCO), 2000 |
Peter Biermann, Rolf Drechsler, Prof. Dr., Bernd Becker, Prof. Dr. Modularity as key element in modern system design - a case study for industrial application of parallel processing European Design & Test Conf. User Forum, 1997 |