next up previous contents
Nächste Seite: RISC-Architektur Aufwärts: Architekturerweiterung und moderne Konzepte Vorherige Seite: Cache   Inhalt

Parallelverarbeitung

Der Aspekt der Parallelverarbeitung ist schon bei der Zusammenarbeit von Prozessor und Numerik-Coprozessor angeklungen. Hier übernimmt der Prozessor z.B. die Befehlsdecodierung und Adreßberechnung sowie die Ausführung von Integer-Arithmetik, während der Coprozessor die komplizierte Fließkomma-Arithmetik übernimmt. Die beiden Prozessoren sind jedoch nicht gleichberechtigt. Eine strengere Definition von Parallelverarbeitung spricht von gleichzeitiger Verarbeitung eines Programms durch mehrere (gleichberechtigte) Prozessoren. Bei n Prozessoren ergibt sich in diesem Fall eine Beschleunigung der Verarbeitung um den Faktor n. Dies setzt jedoch voraus, daß sich das Programm so aufteilen läßt, daß die einzelnen Prozessoren ihre Teilaufgaben (Tasks) unabhängig voneinander bearbeiten können. Andernfalls müssen Prozessoren auf die Ergebnisse anderer Prozessoren warten. Methoden für die Zerlegung von Programmen existieren bisher kaum. Auch parallele Programmiersprachen befinden sich noch weitgehend in der Entwicklung.

Während der Abarbeitung müssen die einzelnen Tasks miteinander kommunizieren können, damit gegenseitige Synchronisation erreicht wird, Parameterwerte ausgetauscht werden können und Zugriff zu globalen Systemressourcen möglich ist. Neben der erheblichen Komplizierung der Software in Entwurf und Struktur müssen Betriebssysteme und Hardware die Parallelisierung unterstützen. Ein Mikroprozessor, der speziell für Parallelverarbeitung entwickelt wurde, ist der Transputer. Die Zielsetzungen waren hohe Verarbeitungsleistung und Geschwindigkeit für den Einsatz in Multiprozessoranwendungen und hohe Flexibilität, gekoppelt mit problemloser Einsatzmöglichkeit. Ein weiterer wichtiger Aspekt war, die Unterstützung einer höheren Programmiersprache durch den Prozessor zu erreichen. Hohe Verarbeitungsleistung wurde erreicht durch Übernahme von Konzepten der RISC-Architektur (siehe unten), und um das Problem der Zugriffszeiten auf externen Speicher zu umgehen, wurde ein schnelles RAM auf dem Prozessor integriert. Die Kommunikation zwischen Transputern in Multiprozessorsystemen wurde durch sogenannte Links erreicht, schnelle serielle Schnittstellen mit eigenen DMA-Controllern. Um ein hohes Maß an Parallelisierung zu erreichen, muß die Kommunikation zwischen den einzelnen Prozessoren optimiert werden. Das vorher verwendete Konzept, Prozessoren über einen gemeinsamen Bus zu verbinden, scheitert am Kommunikations-Overhead, der durch die notwendige Verständigung der Prozessoren über den Bus entsteht. Ab einer gewissen Anzahl von Prozessoren (ca. 4-6) läßt sich die Verarbeitungsgeschwindigkeit nicht mehr steigern; sie sinkt im Gegenteil dann, wenn die Prozessoren nur noch mit Verwaltungsoperationen beschäftigt sind. Der Fortschritt beim Transputer war die autonome Arbeit der Kommunikation auf dem Chip bei gleichzeitigem Datenaustausch. Das ermöglicht die Kopplung einer fast beliebigen Anzahl, so daß man bei linearer Leistungszunahme Systeme von mehreren tausend Transputern aufbauen kann. Das Problem der Programmierung von Transputern in solch hochkomplexen Rechnerstrukturen wurde durch Konzeption einer Hochsprache gelöst, die den Anforderungen der Parallelverarbeitung gerecht werden soll: OCCAM.

Der Prototyp des ersten Transputers T414 der Firma Inmos wurde 1984 entwickelt, der Chip wurde 1986 ausgeliefert. Er besitzt 4 Links, über die weitere Transputer angeschlossen werden können. Der 32-Bit-Prozessor wird getaktet mit 5 MHz, die intern auf 15 oder 20 MHz erhöht werden. Über den internen Bus kann er direkt ohne Wartezyklen auf das statische 2-kByte on-chip-RAM zugreifen. Der Transputer besitzt einen mikrocodierten Prozessorverteilungsmechanismus (process scheduler), der es einer beliebigen Anzahl von Prozessen erlaubt, gleichzeitig (quasi-parallel) auf dem Transputer abzulaufen und dessen Leistung unter sich aufzuteilen. Das erspart einen weitaus zeitaufwendigeren Software-Verteilungsmechanismus. Der 1987 vorgestellte Nachfolger des T414, der T800 ist anschluß- und softwarekompatibel. Er unterscheidet sich vom Vorgänger im wesentlichen in 3 Punkten: integrierte Fließkomma-Recheneinheit, kompletter Memory-Controler und auf 4 kByte erhöhte RAM-Kapazität. Außerdem wurde die Taktrate erhöht. Transputer können in fremde Rechnersysteme integriert werden. So gibt es Erweiterungskarten für PC's, mit denen man den PC-Prozessor durch sehr leistungsfähige Multi-Transputersysteme ergänzen kann. Wegen der unterschiedlichen Maschinensprachen muß der Programmcode jedoch prozessorspezifisch compiliert werden.


next up previous contents
Nächste Seite: RISC-Architektur Aufwärts: Architekturerweiterung und moderne Konzepte Vorherige Seite: Cache   Inhalt
Lars Tornow 2003-04-02