Asymmetrische Multiprozessierung

Ein Asymmetrische Multiprozessierung (AMPERE oder ASMP) System ist a Multiprozessor Computersystem, bei dem nicht alle mehreren miteinander verbundenen zentralen Verarbeitungseinheiten (CPUs) gleich behandelt werden. Zum Beispiel kann ein System zulassen (entweder in der Hardware oder Betriebssystem Stufe) Nur eine CPU zum Ausführen von Betriebssystemcode oder ermöglicht möglicherweise nur eine CPU, E/A -Operationen auszuführen. Andere AMP -Systeme können es jeder CPU ermöglichen, Betriebssystemcode auszuführen und E/A -Operationen auszuführen, sodass sie in Bezug auf Prozessorrollen symmetrisch waren, aber einige oder alle Peripheriegeräte an bestimmte CPUs angeschlossen haben, so dass sie in Bezug auf die Peripherie asymmetrisch waren Anhang.

Die asymmetrische Multiprozessierung war die einzige Methode zum Umgang mit mehreren CPUs zuvor Symmetrische Multiprozessierung (SMP) war verfügbar. Es wurde auch verwendet, um günstigere Optionen zu bieten[1] auf Systemen, in denen SMP verfügbar war.

Asymmetrische Multiprozessierung

Hintergrund und Geschichte

Für die Computer-Computer der 1960er und 1970er Jahre bestand eine kostengünstige Möglichkeit zur Erhöhung der Rechenleistung darin, eine zweite CPU hinzuzufügen. Da diese Computer bereits am schnellsten verfügbar waren (nahe der Spitze des Preis-Leistungs-Verhältnisses), waren zwei Standardgeschwindigkeits-CPUs viel günstiger als eine CPU, die doppelt so schnell lief. Das Hinzufügen einer zweiten CPU war außerdem günstiger als ein zweiter vollständiger Computer, der ihre eigenen Peripheriegeräte benötigen und somit viel mehr Platz und ein erhöhtes Betriebspersonal erfordern würde.

Bemerkenswerte frühe Verstärkungsangebote von Computerherstellern waren die Burroughs B5000, das Decsystem-1055, und die IBM System/360 Modell 65MP. Es wurden auch Dual-CPU-Maschinen an Universitäten gebaut.[2]

Das Problem beim Hinzufügen einer zweiten CPU zu einem Computersystem bestand darin, dass das Betriebssystem für Single-CPU-Systeme entwickelt wurde und die Ausweitung mehrerer CPUs effizient und zuverlässig lange dauerte. Um diese Lücke zu schließen, wurden die für einzelne CPUs vorgesehenen Betriebssysteme zunächst erweitert, um eine minimale Unterstützung für eine zweite CPU zu bieten. Bei dieser minimalen Unterstützung lief das Betriebssystem auf dem „Boot“ -Prozessor, wobei die anderen nur Benutzerprogramme ausführen durften. Im Fall des Burroughs B5000 war die Hardware des zweiten Prozessors nicht in der Lage, den Code "Steuerungsstatus" auszuführen.[3]

Andere Systeme ermöglichten es dem Betriebssystem, auf allen Prozessoren auszuführen, wobei sie jedoch entweder alle Peripheriegeräte an einen Prozessor oder an bestimmte Prozessoren angeschlossen wurden.

Burroughs B5000 und B5500

Eine Option auf dem Burroughs B5000 war „Prozessor B“. Dieser zweite Prozessor hatte im Gegensatz zu „Prozessor A“ keine Verbindung zu den Peripheriegeräten, obwohl die beiden Prozessoren den Hauptspeicher gemeinsam hatten und der Prozessor B nicht im Kontrollstatus laufen konnte.[3] Das Betriebssystem lief nur auf Prozessor A. Wenn ein Benutzerjob ausgeführt werden musste, kann es auf dem Prozessor B ausgeführt werden. Wenn dieser Job jedoch versuchte, auf das Betriebssystem zuzugreifen wurde dann auf Prozessor A geführt.

Auf dem B5500 kann entweder der Prozessor A oder der Prozessor B als Prozessor 1 von einem Schalter des Ingenieur -Panels bezeichnet werden, wobei der andere Prozessor Prozessor 2 ist. Beide Prozessoren hatten den Hauptspeicher und hatten Hardwarezugriff auf die E/A -Prozessoren, daher konnten nur der Prozessor 1 auf periphere Interrupts reagieren.[4] Wenn ein Job auf dem Prozessor 2 einen Betriebssystemdienst erforderte, wurde er auf Prozessor 1 verschoben, was sowohl für die Initiierung von E/A -Prozessoraktivitäten als auch auf die Reaktion auf Interrupts verantwortlich war, die angeben. In der Praxis bedeutete dies, dass Benutzerjobs zwar entweder auf Processor 1 oder Processor 2 ausgeführt werden konnten und auf intrinsische Bibliotheksroutinen zugreifen konnten, für die kein Kernel -Support erforderlich war, das Betriebssystem sie nach Möglichkeit auf letzterem planen konnte.[5]

CDC 6500 und 6700

Die Steuerungsdatengesellschaft bot zwei Konfigurationen von ITS an CDC 6000 -Serie Das enthielt zwei zentrale Prozessoren. Die CDC 6500[6] war ein CDC 6400 mit zwei zentralen Prozessoren. Der CDC 6700 war ein CDC 6600, wobei der CDC 6400 Central -Prozessor hinzugefügt wurde.

Diese Systeme waren ganz unterschiedlich als die anderen Multiprozessoren in diesem Artikel. Das Betriebssystem lief auf dem periphere Prozessoren, während die Anwendung des Benutzers auf dem CPUs lief. Daher gelten die Begriffe ASMP und SMP nicht ordnungsgemäß für diese Multiprozessoren.

Decsystem-10

Digital Equipment Corporation (Dez.) bot eine Dual-Processor-Version seiner an Decsystem-1050 die zwei Ka10 -Prozessoren verwendeten; Alle Peripheriegeräte wurden an einen Prozessor, den Primärprozessor, und der primäre Prozessor den Betriebssystemcode durchgesetzt.[7] Dieses Angebot wurde auf die KL-10- und KS-10-Prozessoren in der PDP-10-Linie ausgedehnt. In diesen Systemen wird die Boot -CPU als "Richtlinien -CPU" bezeichnet, die den Befehlsinterpreter ausführt, die Arbeitsplätze in und außerhalb des Gedächtnisses ausschaltet und einige andere Funktionen ausführt. Andere Betriebssystemfunktionen und E/A können von einem der Prozessoren ausgeführt werden, und wenn der Richtlinienprozessor fehlschlägt, übernimmt ein anderer Prozessor den Richtlinienprozessor.[8]

PDP-11/74

Digital Equipment Corporation entwickelt, aber nie veröffentlicht, ein Multiprozessor PDP-11, die PDP-11/74,,[9] Ausführen einer Multiprozessor -Version von RSX-11m.[10] In diesem System konnte jeder Prozessor den Betriebssystemcode ausführen und E/A ausführen, aber nicht alle Peripheriegeräte waren für alle Prozessoren zugänglich. Die meisten Peripheriegeräte wurden dem einen oder anderen des CPUs angehängt, so dass ein Prozessor, an den ein Peripheral nicht angeschlossen war Um den Vorgang auszuführen.[10]

VAX-11/782

Der erste Mehrprozessor von Dez. Vax Das System, das VAX-11/782, war ein asymmetrisches Dual-Processor-System; Nur der erste Prozessor hatte Zugriff auf die E/A -Geräte.[11]

IBM System/370 Modell 168

Zwei Optionen waren für die verfügbar IBM System/370 Modell 168 zum Anbringen eines zweiten Prozessors.[12] Einer war der IBM 3062 Angehängte Verarbeitungseinheit, in dem der zweite Prozessor keinen Zugriff auf die Kanäle hatte und daher dem Prozessor B oder dem zweiten Prozessor des B5000 auf einem VAX-11/782 ähnelte. Die andere Option bot eine vollständige zweite CPU und war daher eher dem System/360 Modell 65MP.

Siehe auch

Anmerkungen

  1. ^ IBM (Dezember 1976). IBM System/370 Systemzusammenfassung (PDF). Siebte Ausgabe. S. 6–12, 6-15-6.16.1. GA22 · 7001 · 6.
  2. ^ Frühe Computer in Stanford: Der Doppelprozessor -Computer im AI Labor
  3. ^ a b "Betriebsmerkmale der Prozessoren für die Burroughs B5000" (PDF). Burroughs.
  4. ^ "Eine narrative Beschreibung des B5500 MCP" (PDF). p. 18.
  5. ^ Eine narrative Beschreibung des B5500 MCP, Seiten 29 (Routine initiieren) und 40 (ein Hinweis zur parallelen Verarbeitung)
  6. ^ "Steuerungsdaten 6400/6500/6600 Computersysteme Referenzhandbuch" (PDF).
  7. ^ "1.4 Decsystem-10 Multiprocessing". Einführung in die Decsystem-10-Software (PDF). Dec-10-mzdc-d.
  8. ^ Decsystem-10 Technische Zusammenfassung (PDF). 1981. p. 2-1.
  9. ^ "(PDP-11) Multiprozessor-FAQ".[Permanent Dead Link]
  10. ^ a b "RSX-11M Multiprocessing" (PDF). Digital Equipment Corporation.
  11. ^ Vax Product Sales Guide, Seiten 1-23 und 1-24: Der VAX-11/782 wird 1982 als asymmetrisches Multiprozesssystem beschrieben
  12. ^ IBM (Januar 1976). IBM System/370 Modell 168 Funktionseigenschaften (PDF). Fünfte Ausgabe. GA22 · 7010-4.

Verweise

  • Bell, C. Gordon, Mudge, J. Craig, McNamara John E. "Die PDP-10-Familie". (1979). Teil V von Computertechnik: Ein DEC -Ansicht des Hardware -Systemdesigns. Digital Equipment Corp.
  • Rajkumar Buyya (Herausgeber): Hochleistungscluster Computing: Architekturen und Systeme, Band 1, ISBN0-13-013784-7, Prentice Hall, NJ, USA, 1999.
  • Rajkumar Buyya (Herausgeber): Hochleistungscluster Computing: Programmierung und Anwendungen, Band 2, ISBN0-13-013785-5, Prentice Hall, NJ, USA, 1999.

Externe Links