Multiprocesor (z anglického multiprocessor, multiprocessing [1] ) je podtřída víceprocesorových počítačových systémů, kde existuje několik procesorů a jeden adresní prostor , viditelný pro všechny procesory. V Flynnově taxonomii patří multiprocesory do třídy strojů SM-MIMD . Na multiprocesoru běží jedna kopie operačního systému s jednou sadou tabulek, včetně těch, které sledují, které stránky paměti jsou volné.
Podle rolí, které procesory hrají ve víceprocesorovém systému, rozlišují: symetrické multiprocesory (SMP) - všechny procesory hrají stejnou roli a mají stejný přístup k paměti a periferiím a asymetrické multiprocesory (AMP) - procesory hrají různé role popř . přistupovat k periferiím odlišně.zařízení. Technologie AMP byla pouze přechodná v 60. letech, dokud nebyla vyvinuta technologie SMP.
Existuje několik typů multiprocesorů podle způsobu adresování paměti, včetně: UMA (Uniform Memory Access), NUMA (Non Uniform Memory Access) a COMA (Cache Only Memory Access).
Kromě toho mohou být multiprocesory homogenního typu, kdy jsou všechny procesory v systému stejné, nebo heterogenního typu, kdy jsou procesory v systému různých typů.
Při programování multiprocesorů lze použít dva programovací modely : multithreading , kdy je na každém procesoru spuštěno vlákno provádění a vyměňují si data mezi sebou prostřednictvím sdílených proměnných ve sdílené paměti, nebo (složitější) předávání zpráv , kdy je na každém procesoru je spuštěn proces a komunikují spolu výměnou zpráv. Multithreading se používá buď explicitně (v kompilovaných programovacích jazycích prostřednictvím systémových API (např. v C / C++ přes POSIX Threads a prostřednictvím boost::thread nebo std::thread v C++ od standardu C++11), v interpretovaných jazycích ( Java a C# ) pomocí jazykových konstrukcí, a to buď implicitně ( deklarativně pomocí direktiv kompilátoru ( OpenMP ) nebo automaticky samotným kompilátorem ( High Performance Fortran )).
Víceprocesorové stroje (SMP/UMA) byly uvedeny na trh počátkem osmdesátých a devadesátých let, zpočátku jako mini-superpočítače ( například produkty od Alliant , Convex , Sequent , Encore a Synapse ) . ) , poté jako zpracování dat. servery a rychle získal popularitu na trhu serverového hardwaru . První multiprocesory s architekturou x86 založenou na procesorech Intel 80386 a Intel 486 byly servery Compaq SystemPro, které vstoupily na trh koncem roku 1989 - začátkem roku 1990. Růst nabídek na trhu x86 multiprocesorových serverů vedl Intel k vytvoření specifikace MultiProcessor Specification [2] , která se na mnoho let stala de facto standardem pro x86 SMP stroje .
Příklady systémů SMP/UMA v roce 1998 [3]Systém | procesor | Maximum procesorů |
---|---|---|
SGI Power Challenge | MIPS R10000 | 36 |
DEC AlphaServer 8400 | Alfa 21164 | čtrnáct |
Sun E6000 | UltraSPARC II | třicet |
Slunce E10000 | UltraSPARC II | 64 |
HP/konvexní příklad | PA-8000 | 16 |
Cray-T90 | Cray vektor | 32 |
Prvními multiprocesory typu ccNUMA byly v polovině 80. let počítač KSR1 společnosti Kendall Square Research a Denelcor HEP společnosti Denelcor .
Příklady systémů ccNUMA v roce 1998 [4]Systém | procesor | Procesory na uzel | Maximum procesorů |
---|---|---|---|
Data General AV-20000 | Pentium | čtyři | 32 |
Následný NUMA-Q 2000 | Pentium | čtyři | 32 |
SGI Origin 2000 | MIPS R10000 | 2 | 128 |
HP Exemplar X-Class | PA-8000 | 16 | 256 |
HP 9000 V-Class |
Byly také vytvořeny multiprocesory bez koherence mezipaměti (nccNUMA):
Příklady systémů nccNUMA v roce 1998 [5]Systém | procesor | Procesory na uzel | Maximum procesorů |
---|---|---|---|
Cray-T3E | Alfa 21164 | 2 | 2048 |
BBN TC-2000 | Motorola MC88100 | jeden | 256 |
BBN TC-2000 | Motorola 604 | 2 | 512 |
Rozvoj miniaturizace ve výpočetní elektronice umožnil umístit několik procesorů do jednoho pouzdra nebo na jeden čip (anglicky chip-level multiprocessing, CMP), čímž vznikly vícejádrové procesory . To umožnilo zvýšit výkon procesorů prostým zvýšením počtu výpočetních jader jednoduché konstrukce, namísto tradičních pokusů zvýšit takt nebo komplikovat výpočetní pipeline jednojádrového procesoru. Vícejádrové procesory přitom využívají paměť efektivněji, pracují s vícevláknovými aplikacemi, spotřebovávají málo energie a nerozptylují mnoho energie, což je ideální pro škálování datových center.
Přibližně od roku 2005 jsou všechny procesory pro trh spotřebitelských počítačů vydávány ve vícejádrové verzi , to znamená, že jde v podstatě o miniaturní multiprocesory (přesněji o SMP stroje s přístupem do paměti UMA, s určitými výhradami). Další vývoj tohoto směru vedl ke vzniku vícejádrových multiprocesorů - systémů, kde je několik procesorů a tyto procesory zase obsahují několik jader. Nejrozšířenější verzí serverů v datových centrech pro rok 2016 je server se dvěma 8jádrovými procesory třídy Intel Xeon , Oracle SPARC nebo IBM POWER , které navíc podporují současné spouštění více vláken v hardwaru .
procesorů | Technologie digitálních|||||||||
---|---|---|---|---|---|---|---|---|---|
Architektura | |||||||||
Architektura instrukční sady | |||||||||
strojové slovo | |||||||||
Rovnoběžnost |
| ||||||||
Implementace | |||||||||
Komponenty | |||||||||
Řízení spotřeby |