Multiprozessor
Englisch: multiprocessor
Ein Rechner mit mehreren CPUs oder Ausführungseinheiten unter integrierter Kontrolle.
Multiprozessor: mehrere CPUs arbeiten als eine Maschine
Ein Multiprozessor-System enthält zwei oder mehr Prozessorkerne oder CPUs, die über einen gemeinsamen Speicherbus verbunden und von einem einzigen Betriebssystem gesteuert werden. Anders als bei einem Netz von separaten Computern haben alle Prozessoren direkten Zugriff auf denselben Arbeitsspeicher und die Peripherie, sodass sie ihre Arbeit ohne Netzwerk-Overhead koordinieren können. In industriellen Anwendungen bewältigen Multiprozessoren Echtzeit-Regeltasks, hochfrequente Datenerfassung und Bildverarbeitung, wo Latenz und Synchronisation kritisch sind.
Multiprozessor-Architekturen lassen sich grob in zwei Klassen einteilen: symmetrisches Multiprocessing (SMP) und asymmetrisches Multiprocessing (AMP). Bei SMP-Systemen sind alle CPUs identisch und jeder Prozessor kann jede Aufgabe ausführen; das Betriebssystem verteilt die Arbeit dynamisch auf die verfügbaren Kerne. AMP-Systeme weisen bestimmte Tasks bestimmten Prozessoren zu; beispielsweise führt ein Kern die sicherheitskritische Regelschleife aus, während ein anderer die Datenspeicherung übernimmt. Industrielle Geräte nutzen AMP oft, wenn Zuverlässigkeit und Deterministik höher zu bewerten sind als Flexibilität.
Gemeinsamer Speicher und Cache-Komplexität
Die größte Designherausforderung in Multiprozessor-Systemen ist die Cache-Kohärenz. Wenn jeder Prozessor seinen eigenen L1- und L2-Cache hat, sind Schreibzugriffe eines Prozessors für andere möglicherweise nicht sofort sichtbar. Hardware-Kohärenzprotokolle (wie MESI oder MOESI) halten die Caches synchron, verursachen aber zusätzliche Latenz und Stromverbrauch. In echtzeitkritischen Industrieanwendungen können Cache-Misses während kritischer Operationen zu Timingverletzungen führen. Manche Designs nutzen Write-Through-Caching oder sperrbasierte Zugriffe auf gemeinsame Datenstrukturen, um Konsistenz zu gewährleisten.
Dual- und Quad-Core-Prozessoren dominieren heute industrielle eingebettete Systeme. Ein typischer Industrial-PC könnte einen Dual-Core Intel Atom oder einen Quad-Core ARM Cortex-A-Prozessor mit einem Echtzeit-Kernel wie VxWorks oder QNX nutzen. Höhere Kernanzahlen (8, 16 oder mehr) finden sich in Bildverarbeitungssystemen und Motion-Control-Koordinatoren, wobei die Software-Engineering-Komplexität über vier Kerne hinaus deutlich anwächst.
Der Begriff Multiprozessor unterscheidet sich von Multicore. Streng genommen nutzt ein Multiprozessor-System separate CPU-Chips oder diskrete Prozessormodule; ein Multicore-System integriert mehrere Ausführungseinheiten auf einem einzelnen Die. In moderner Industrieterminologie ist die Unterscheidung verwischt, und beide Konfigurationen werden oft als Multiprozessor bezeichnet. Wenn Sie Geräte spezifizieren, klären Sie, ob Sie echte Redundanz (zwei separate Prozessormodule mit unabhängigen Stromversorgungen) oder einfach parallele Rechenleistung auf einem Chip benötigen.