-
Multiprozessorsystem mit einer sehr
großen Anzahl
von Mikroprozessoren
-
Die Erfindung betrifft ein Multiprozessorsystem
mit einer sehr großen
Anzahl von Mikroprozessoren.
-
Da serielle Hochleistungsbusse, auf
denen digitale Daten mit einer Geschwindigkeit von 2,4 Gbit/s übertragen
werden können,
nur sehr kurz sein können,
ist es sehr schwierig, etwa 100 oder mehr Mikroprozessoren an sie
anzuschließen.
-
Vernünftigerweise kann ein auf einem
heutigen parallelen Hochleistungsbus basierender Prozessor-Cluster
etwa 10 Mikroprozessoren ohne große Leistungseinbußen unterstützen.
-
Ein Problem bei Multiprozessorsystemen
ist die Aufrechterhaltung von Cache-Kohärenz.
-
Ein Benutzer des Systems möchte außerdem den
gesamten Speicher als ein "Virtually
Shared Memory System" empfinden.
-
Aus der
EP 587 918 A1 ist ein Multiprozessorsystem
bekannt, bei dem eine große
Anzahl von Prozessoren über
serielle Systembusse untereinander und mit Speichereinheiten verbunden
sind. Dabei wird vorgeschlagen, für jeden der seriellen Systembusse
einen Cache-Tag-Speicher vorzusehen, der nach dem Snooping-Prinzip
arbeitet.
-
In der
GB 22 72 545 A ist ein Rechnersystem beschrieben,
bei dem Ringe von durch serielle Bussysteme verbundenen Prozessoren
zu einem größeren Ring
zusammengeschlossen werden. Dabei wird in dieser Druckschrift davon
ausgegangen, daß es sich
um Kommunikationsverbindungen, insbesondere bei Prozessoren vom
Typ Transputer, handelt, bei dem gerade getrennte Adreßräume das
Designziel sind.
-
DE 36 21 321 A1 beschreibt Zwei-Ebenen-Caches
und verwendet zwei hierarchisch angeordnete Parallelbusse.
-
EP 0 461 926 A2 beschreibt die Organisation von
Zwei-Ebenen-Caches,
wobei in
1 deutlich erkennbar
ist, daß der
Cache der ersten Ebene noch nicht einmal an einem Parallelbus mit
mehreren Teilnehmern, sondern als Level-l-Cache in einer CPU, wie
sie insbesondere in der Intel basierenden PC-Technik üblich ist,
betrifft.
-
Aus Feng: A Survey of Interconnection
Networks, in: Computer, Dezember 1991, S. 12 bis 27, sind eine Vielzahl
von Möglichkeiten
für Computernetzwerktopologien
offenbart.
-
Der Erfindung liegt nunmehr die Aufgabe
zugrunde, eine Anordnung vorzusehen, die eine große Anzahl
von Prozessoren bei einheitlichem Adreßraum zu unterstützen vermag.
-
Diese Aufgabe ist erfindungsgemäß durch die
im Patentanspruch 1 angegebenen Maßnahmen gelöst. Hierbei ist ein Multiprozes sorsystem
vorgesehen, bei dem die einzelnen Prozessoren auf einem gemeinsamen
Speicheradreßraum
zugreifen können und
bei dem dir Prozessoren auf mehrere Cluster verteilt sind. Die Prozessoren
eines Cluster sind durch jeweils einen Parallelbus eines Clusters
untereinander verbunden, wobei jeder Prozessor über einen Cache-Speicher verfügt, dessen
Konsistenz über
Snooping gesichert wird. Die Cluster sind untereinander über serielle
Hochleistungsbusse verbunden, die an einer Anschlußgruppe
angeschlossen sind, die ihrerseits mit dem dem Parallelbus des jeweiligen
Clusters verbunden ist. In der Anschlußgruppe ist sowohl für den Parallelbus
als auch für
jeden seriellen Hochleistungsbus ein Cache-Tag-Speicher der zweiten
Ebene vorgesehen; der durch Snooping auf dem jeweiligen seriellen
Hochleistungsbus aktualisiert wird. Die Länge der seriellen Hochleistungsbusse
liegt in der selben Größenordnung
wie die der Parallelbusse.
-
Vorteilhafte Ausgestaltungen der
Erfindung sind Gegenstand von Unteransprüchen.
-
Danach sind die Mikroprozessoren
innerhalb eines Prozessor-Clusters über Parallelbusse
verbunden. Als Parallelbus können
beispielsweise Busse eingesetzt werden, die unter folgenden Namen
bekannt sind: SPbus und Futurebus+.
-
In einer weiteren vorteilhaften Ausgestaltung der
Erfindung sind den einzelnen Mikroprozessoren Cache-Speicher zugeordnet,
in denen sogenannte Tags abspeicherbar sind. Die Tags sind wichtig,
um eine Aufrechterhaltung der Kohärenz der Cache-Speicherinhalte
der einzelnen Mikroprozessoren zu gewährleisten.
-
Durch eine Realisierung der seriellen
Hochleistungsbusse als koaxialähnliche
Strukturen auf geätzten,
flexiblen Baugruppen lassen sich besonders kompakte Bauweisen eines
betreffenden Multiprozessorsystems erzielen.
-
Dem Anschluß eines Prozessor-Clusters
an die Vielzahl der seriellen Busse dient eine Anschlußsteuerung
pro Prozessor-Cluster, die für
n serielle Busse n Anschlüsse
aufweist, die in einem schnellen Tag-Speicher eine Kopie aller Tags
aller Caches eines zugehörigen
Prozessor-Clusters enthält
und die alle Transfers auf allen seriellen Bussen beobachtet und
sofern die im Prozessor-Cluster gehaltenen Cacheinhalte betroffen
sind, die die Kohärenz
erhaltenden Maßnahmen
nach einem der bekannten Protokolle mit "snooping" durchführt.
-
Ein Multiprozessorsystem mit in der
Größenordnung
von 100 Mikroprozessoren und den gewünschten Eigenschaften kann
damit aufgebaut werden.
-
Nachfolgend werden Ausführungsbeispiele der
Erfindung anhand einer Zeichnung näher erläutert.
-
Im einzelnen zeigen in der Zeichnung
jeweils in Anlehnung an die Erfindung
-
1 vier,
je einen Prozessor-Cluster darstellende Platter in einer Anordnung,
die den Anschluß dieser
Platter an mehrere, kurze Hochleistungsbusse erlaubt,
-
2 einen
Anschluß von
vier, je einen Prozessor-Cluster, enthaltenden Platter-Funktionseinheiten
an n Hochleistungsbusse,
-
3 eine
Anordnung von Abschlußwiderständen,
-
4 einen
Schrankeinbau für
drei Platter-Funktionseinheiten, die jeweils einen Prozessor-Cluster
enthalten,
-
5 acht
Prozessor-Cluster, die über
Anschlußbaugruppen,
die zum Platter coplanar angeordnet sind, an die Hochleistungsbusse
angeschlossen sind,
-
6 eine
coplanare Anschlußbaugruppe, die
im gesteckten Zustand an einen Platter angeschlossen ist,
-
7 Anschlußbaugruppen,
die bezüglich der
Stecker für
die Hochleistungsbusse spiegelbildlich ausgebildet Sind,
-
8 einen
Schrankeinbau für
acht Prozessor-Cluster, die über
Anschlußbaugruppen,
die zum Platter coplanar angeordnet sind, an die Hochleistungsbusse
angeschlossenen,
-
9 einen
Platter mit zwei coplanaren Steckerpositionen, und
-
10 eine
weitere Anordnung für
acht Prozessor-Cluster, die über
Anschlußbaugruppen,
die zum Platter coplanar angeordnet sind, an die Hochleistungsbusse
angeschlossen sind.
-
In den 1 und 2 können vier Prozessor-Cluster über nur
10 bis 12 cm lange, serielle Hochleistungsbusse verbunden werden.
Die Anschlußbaugruppen
ABG für
n Hochleistungsbusse müssen
eine passende Randposition einnehmen. Dabei sind die Anschlußbaugruppen
ABG für
n Hochleistungsbusse in den Plattern 0 Pltr0 und 3 Pltr3
in den von der Steckerseite her gesehenen am weitesten rechts liegenden
Einbauplätzen,
bei den Plattern 1 Pltr1 und 2 Pltr2 in den von
der Steckerseite her gesehenen am weitesten links liegenden Einbauplätzen gesteckt.
Platter 0 P1tr0 und 1 Pltr1, bzw. 2 Pltr2
und 3 Pltr3 sind möglichst
nahe nebeneinander plaziert; so daß der Abstand der jeweiligen
Anschlußbaugruppen
ABG einer üblichen
Platterteilung von 0,8 Zoll entspricht. Der Abstand der Frontseiten
der Platter 0 P1tr0 und 1 Pltr1 einerseits und 2 Pltr2
und 3 Pltr3 andererseits wird durch den Platz für verwendete
Frontstecker der jeweils anderen Baugruppen bestimmt. Wenn frontseitige
Baugruppenstecker gezogen oder gesteckt werden, müssen die
entsprechenden Platter zuvor, zum Beispiel mit einem Teleskop-Schienen-Mechanismus
von einander getrennt werden. Bei diesem Trennvorgang müssen gleichzeitig
die Anschlußstecker
an die multiplen Hochleistungsbusse getrennt und danach wieder automatisch
gesteckt werden. Gleiches gilt auch für das Ziehen und Stecken von
Flachbaugruppen. Flk gibt das Flachkabel für die n Hochleistungsbusse
an.
-
Bei einer Beschränkung auf nur 3 Prozessor-Cluster,
werden die oben beschriebenen Schwierigkeiten beim Bedienen der
Frontstecker und der Flachbaugruppen vermieden. In 3 ist eine entsprechende Anordnung wiedergegeben.
ABG bezeichnet wieder die Anschlußbaugruppen, AW bezeichnen
Abschlußwiderstände und
GFLP bezeichnet eine geätzte,
flexible Leiterplatte zur Aufnahme der Hochleistungsbusse.
-
Vorteilhaft ist es, den Platter 2 Pltr2
schwenkbar zu halten. Einen möglichen
Schrankeinbau zeigt 4.
Die Platter 0 P1tr0 und 1 Pltr1 sind fest eingebaut.
Der Schwenkbereich kann klein gehalten werden (< 90 Grad). SRK bezeichnet den Schrank.
-
Ein anderer Platteraufbau erlaubt
die Kopplung von bis zu 8 Prozessor-Clustern. Dabei wird
der Stecker für
die Anschlußbaugruppe
so vorgesehen, daß die
Anschlußbaugruppe
coplanar zum jeweiligen Platter Pltr liegt (5). cABG bezeichnet die coplanaren Anschlußbaugruppen.
HB bezeichnet die Hochleistungsbusse.
-
In 5 sind
die mit A bezeichneten Platterfunktionseinheiten in Normallage,
die mit B bezeichneten Platterfunktionseinheiten sind hingegen um 180
Grad gedreht, das heißt
sie stehen in der Zeichnung in der Draufsicht auf dem Kopf. Um die
Hochleistungsbusse gerade durchverbinden zu können, insbesondere wenn es
sich wie unten beschrieben, um mehrdrähtige Busse handelt, sind die
Busanschluß-Steckerleisten
der A-Anschlußbaugruppen spiegelbildlich
zu den B-Anschlußbaugruppen. 6 zeigt detailliert die
Anordnung der coplanaren Anschlußbaugruppe cABG für den Anschluß an n Hochleistungsbusse.
Pltr beschreibt den Platter, ST den Stecker für eine coplanare Anschlußbaugruppe cABG
und AST den Anschlußstecker
an die Hochleistungsbusse.
-
In der 7 sind
die zwei gespiegelten Anschluflbaugruppen wiedergegeben, erkennbar
an der unterschiedlich verlaufenden Zählrichtung der Steckerpins
der Anschlußstecker
AST für
n Hochleistungsbusse. PST bezeichnet den platterseitigen Stecker,
TA eine Anschlußbaugruppe
eines ersten Typs und TB eine Anschlußbaugruppe eines zweiten Typs.
-
Die 8 gibt
einen möglichen
Schrankeinbau in einen Schrank SRK wieder. Das Ziehen und Stecken
der Frontstecker und Flachbaugruppen in dieser Anordnung ist problemlos.
HB bezeichnet die Hochleistungsbusse.
-
Falls an den; die Prozessor-Cluster
beherbergenden Plattern an jeder Seite, also am rechten und am linken
Ende, ein Stecker für
die coplanare Anschlußbaugruppe
vorgesehen wird, kommt man mit einem Typ von Anschlußbaugruppen
aus. Bei denen im Kreis aufeinanderfolgenden Platterfunktionseinheiten
wird abwechselnd die linke und die rechte Position für die Anschlußbaugruppe
benützt.
Der Nachteil dieser Anordnung besteht darin, daß die räumliche Ausdehnung einer vollbestückten Platterfunktionseinheit,
bei der ein coplanarer Steckplatz für den Einbau einer allgemeinen
Baugruppe benutzt wird, größer ist
als wenn nur an einer Seite ein Stecker für coplanare Baugruppen angebracht
ist. 9 zeigt diesen
Sachverhalt. mP bezeichnet die möglichen
Positionen für
die Anschlußbaugruppe
ABG. Wenn eine solche Position durch eine Anschlußbaugruppe
besetzt wird, kann die andere für
eine andere Anschlußbaugruppe
verwendet werden. Das Stecken und Ziehen von Frontsteckern und Flachbaugruppen
in dieser Anordnung ist problemlos möglich.
-
Eine weitere Anordnung von 8 Plattern,
von denen nur eine bezeichnet ist, ist in der 10 gezeigt. Diese Anordnung hat den Vorteil,
daß nur
eine coplanare Steckerposition cSTP an jedem Platter angebracht
wird und auch keine spiegelbildliche Vertauschung an der Busanschlußseite der
coplanaren Anschlußbaugruppe
cABG nötig
ist. Alle Platter Pltr haben die gleiche Orientierung. Nicht ganz
so günstig ist,
daß es
beim Ziehen und Stecken der frontseitigen Stecker Schwierigkeiten
bei den Einbauplätzen
gibt, die nahe am coplanaren Stecker angeordnet sind. Flachbaugruppen
mit Frontsteckern, also insbesondere I/O-Baugruppen, sollten deshalb
an der dem coplanaren Stecker abgewandten Seite plaziert werden.
-
Bei einer bevorzugten Ausführungsform
sind die einzelnen Platter auf kreisförmig um den Systemmittelpunkt
gelegten Schienen beweglich angeordnet. Die Flexibilität der geätzten, flexiblen,
die Hoehleistungsbusse beherbergenden Flachbaugruppe ermöglicht das
Auseinanderschieben von Plattern, wenn weniger als die Maximalzahl,
also in diesem Beispiel weniger als 8, Platter im System
enthalten sind. Die Platter werden auf den Schienen ähnlich wie
Karteikarten in einer Rolodex-Kartei
verschoben. In der Kartei werden die Karten auseinandergeschoben,
um ihre Inhalte zu lesen, im geschilderten Multiprozessorsystem
werden Platter auseinandergeschoben, um Flachbaugruppen und Frontstecker
ziehen und stecken zu können.
In einem solchen System sind die Frontstecker und Flachbaugruppen leicht
zugänglich.
-
Bei einer anderen bevorzugten Ausführungsform
sind die coplanaren Anschlußbaugruppen
länger
als die normalen Baugruppen. Es können dann mehr als 8 Platter
sternförmig
um den Systemmittelpunkt gruppiert werden. Eine Verlängerung
der Länge
um den Faktor 1,74 (= ctg(360/12)) stellt 12 Platter-Plätze, von
denen wegen der Zugänglichkeitsprobleme
nicht alle besetzt werden, zur Verfügung.
-
Bei einer weiteren bevorzugten Ausführungsform
wird die Anschluß-Steuerung
auf zwei, durch Kabel, vorzugsweise Lichtleiter-Kabel, verbundene
Baugruppen aufgeteilt. Der eine Teil steckt im jeweiligen Cluster-Platter
und enthält
im wesentlichen die Systembus-Anschlußsteuerung und den Kabelanschluß für die Verbindung
zum anderen Teil. Der zweite Teil enthält im wesentlichen den Speicher für die Kopien
der Tags der Caches der im Cluster enthaltenen Mikroprozessoren,
die mehrfach vorhandenen Anschlüsse
für die
Hochleistungsbusse (Autobahnbus-Anschlüsse) und den Kabelanschluß für die Verbindung
zum ersten, oben erwähnten
Teil. Die Steuerungs-Baugruppen für die Hochleistungsbusse (Autobahn)
stecken ihrerseits in einem kurzen, mehrere koaxialkabelähnliche
Autobahnbusse enthaltenden Platter. So können mehr als 10 Cluster
zu einem Multiprozessorsystem vereinigt werden.
-
Die Arbitrierung wird dadurch gelöst, daß es mindestens
so viele serielle Hochleistungsbusse wie Prozessor-Cluster und für jeweils
einen seriellen Hochleistungsbus nur jeweils für einen Prozessor-Cluster permanente
Sendeerlaubnis gibt, das heißt,
er braucht konkurrierende, senden wollende Zugreifer an diesem Bus
nicht zu berücksichtigen,
da keine derartigen Konkurrenten existieren. In einer Anordnung
nach 1 bzw. 2 können natürlich noch mehr
als 4 Leitungspaare für
die serielle Hochleistungsbus-Technologie vorgesehen werden.
-
Bei den heute übliche Plattergrößen und
Steckerdichten kann man jedem Prozessor-Cluster a) mehr als einen
seriellen Hochleistungsbus für
seine Sendeaktivitäten
reservieren oder b) jedem seriellen Hochleistungsbus durch einen
mehr-bitbreiten Hochleistungsbus ersetzen, von denen man dann noch mindestens
so viele wie Prozessor-Cluster vorhanden sind, in der entsprechenden
Struktur unterbringen muß.
Nach a) hat man die Möglichkeit
pro Prozessor-Cluster mehrere Arbeitsspeicherzyklen gleichzeitig
durchzuführen.
Nach b) kann man bei einer 4-Prozessor-Cluster-Anordnung 4 je
32-bit-breite Hochleistungsbusse unterbringen. Damit stünde für diese
die Prozessor-Cluster verbindenden Busse eine Übertragungsrate von 32 ? 2,4
Gbit/s minus die Synchronisierungsverluste, also etwa 6–8 GByte/s pro
Bus zur Verfügung.
Bei einer 8-Prozessor-Cluster-Anordnung passen 8 je 16-bit-breite
Hochleistungsbusse mit einer Übertragungsrate
von je 3–4 GByte/s
pro Bus auf die Stecker.