|
Symmetrische Multiprozessor Systeme (SMPs)
Die
klassische Rechnerarchitektur für komplexe Real-Time
Anwendungen ist der Symmetrische Multiprozessor, ein Model,
das die Hauptteile des Systems (CPUs, Speicher und I/O-Module)
über einen sehr schnellen Systembus miteinander verbindet.
Die Hauptvorteile von SMP-Systemen liegen in
der dynamischen Lastenverteilung (dadurch wird die gesamte
CPU-Leistung ohne zusätzlichen Programmieraufwand optimal
ausgenutzt), sowie dem symmetrischen Zugriff auf die System
Ressourcen (dies führt zu kurzen und deterministischen
Zugriffszeiten).
Allerdings ist die dynamische Lastenverteilung
für Real-Time Anwendungen nur bedingt ein Vorteil. Denn
einerseits kommt sie der Dynamik einer komplexen Real-Time
Applikation voll entgegen, andererseits könnte sie zu
undeterministischen Latenzen führen. Deswegen wird die
dynamische Lastenverteilung in manchen Real-Time Applikationen
wenigstens zum Teil außer Kraft gesetzt, typischerweise
durch die Bindung der einzelnen Tasks an dedizierte Prozessoren.
SMP-Systeme sind nicht unbegrenzt erweiterbar.
Da die Entwicklung von noch leistungsfähigeren Bussystemen
mit der Entwicklung von noch leistungsfähigeren CPUs
nicht Schritt halten konnte, wird mit der wachsenden Anzahl
der CPUs der Systembus zum Engpaß. Dies hat zur Folge,
daß der Anschluß einer zusätzlichen CPU nicht
den erwarteten Leistungszuwachs bringt, er kann sogar die
Leistung der übrigen CPUs negativ beeinflussen, d.h.
das System ist nicht mehr skalierbar.
Da der Systembus den Engpaß darstellt,
könnte man dem Ziel der absoluten Skalierbarkeit näher
kommen, in dem man private Bussysteme zwischen jeder CPU und
jedem Memory Modul einbaut. So z.B. verwendete Concurrent´s
MAXION einen "Crosspoint", der solche private Pfade
zwischen allen CPUs und allen Speichermodulen des Systems
einschaltet. Andere Systeme benutzen "Crossbars",
eine vereinfachte Variante des "Crosspoints", die
größere CPU-Konfigurationen ermöglicht, allerdings
mit Abstrichen, was die Skalierbarkeit angeht.
Grundsätzlich führen solche Lösungen
zu proprietären Systemen, die sich in hohen Anschaffungs-
und Wartungskosten widerspiegeln. Hinzu kommt, daß häufig
die benötigte Rechenleistung einer komplexen, nicht monotonen
Real-Time-Anwendung nicht genau berechnet werden kann, was
zu überdimensionierten Systemen (d.h. wiederum zusätzlichen
Kosten) führt. In einem solchen Fall wird die gesamte
Rechenleistung eines großen SMP-Systems gar nicht optimal
ausgenutzt!
Deswegen stellt sich die Frage: Wieviel Symmetrie
braucht die Anwendung tatsächlich?
Closely-Coupled Systeme (CCS)
Das Closely-Coupled Konzept ist Concurrent´s
sinnvolle, und gleichzeitig ökonomische Alternative zu
großen Symmetrischen Multiprozessor-Systemen (SMPs).
Die meisten komplexen Real-Time-Anwendungen
sind nicht monolithisch. Sie bestehen aus Aufgaben mit sehr
intensiver Interaktion und anderen, die weniger oder gar nicht
miteinander kommunizieren. Eine solche Anwendung könnte
man logisch in Subsysteme einteilen, die auf einem Concurrent
Closely-Coupled Multiprozessor-System laufen können.
Ein Closely-Coupled System entsteht durch die
intelligente Kopplung von leistungsfähigen SMP-Knoten
(auch SBCs Single Board Computer genannt). Als SBCs
eignen sich alle Power Hawk Series 700 Modelle.

Jeder SBC führt eine eigene Kopie des PowerMAX
OS Betriebssystems sowie mehrere Tasks aus. Innerhalb des
SBC ist die dynamische Lastenverteilung und die optimale Kommunikation
zwischen den Tasks gewährleistet.
Die SBCs werden über ein offenes Bus-System
(VMEbus) verbunden. Der erste SBC übernimmt das Boot-Laden
und die File Server Funktion für die restlichen SBCs.
Während die dynamische Lastenverteilung
nur für Tasks innerhalb eines SBCs möglich ist,
können Tasks auf verschiedenen SBCs jedoch über
die typischen Intertask-Mechanismen kommunizieren (Shared
Memory, Signale, Posix.1b Message Queues, Posix.1b Semaphore),
so daß die gesamte Software logisch so entwickelt werden
kann, als ob sie auf einem reinen SMP laufen würde.
Standartmäßig wird der VMEbus für
die Kommunikation zwischen den SBCs benutzt. Verschiedene
Anschluß-Optionen für die Platten zielen darauf,
Disk-Transfers vom VMEbus fern zu halten. So z.B. darf jeder
SBC private Disks verwenden. Außerdem dürfen mehrere
SBCs auf gemeinsame Disks über eigene SCSI-Busse anstatt
über den VMEbus zugreifen.
Die direkte P0-PCI Kopplung bietet bei 264
MB/Sekunde einen zusätzlichen, sehr schnellen Kommunikationspfad
zwischen den SBCs an.
Die schnellste Kommunikation zwischen den SBCs
schafft das Real-Time Clock & Interrupt Module (RCIM),
eine von Concurrent speziell entwickelte Platine. RCIM kann
Interrupt-Signale von SBCs oder auch von externen Quellen
aufnehmen und an andere SBCs weiterleiten. Dies schließt
u.a. auch die Möglichkeit ein, die gesamte Applikation
auf allen SBCs von einem zentralen Taktgeber zu synchronisieren
bzw. bei der Anwendung der NightStar Tools, die Applikation
in ihrer Gesamtheit zu steuern, zu analysieren und zu optimieren.
Loosely-Coupled Systeme (LCS)
Mehrere Closely-Coupled Systeme (Cluster) können
über Ethernet verbunden werden. Concurrent nennt diese
Art Kopplung "loosely-coupled", da zwischen den
Clustern nur Boot-Laden und File Server Funktionen möglich
sind. Dadurch entsteht eine weitere hierarchische Ebene, die
sehr große Rechner-Konfigurationen ermöglicht.
Für weitere
Fragen stehen selbstverständlich unsere
Mitarbeiter gerne zur Verfügung.
.
|