AMP nebo ASMP (z angličtiny: Asymmetric multiprocessing , rusky: Asymmetric multiprocessing nebo Asymmetric multiprocessing ) je typ architektury víceprocesorového počítačového systému, který se používal před vytvořením technologie symetrického multiprocesingu (SMP). Používá se také jako levnější alternativa na systémech, které podporovaly SMP.
V systému s asymetrickým multiprocesingem nehrají všechny procesory stejnou roli. Systém může například používat (buď na úrovni hardwaru nebo na úrovni operačního systému) pouze jeden procesor k provádění kódu operačního systému nebo přiřadit pouze jeden procesor k provádění I/O operací. V jiných systémech AMP mohou všechny procesory provádět kód operačního systému a I/O operace, takže se z této strany chovají jako symetrický víceprocesorový systém, ale určité periferie lze připojit pouze k jednomu procesoru, takže ze strany práce s tímto systém vypadá asymetricky s hardwarem.
V 60. a 70. letech 20. století jste mohli zvýšit výpočetní výkon počítače jednoduše přidáním dalšího procesoru. Přidání dalšího identického procesoru bylo levnější než nákup nového počítače, který byl dvakrát rychlejší. Pouhé přidání dalšího procesoru bylo také výhodnější než nákup druhého celého počítače, který vyžadoval samostatnou počítačovou místnost, další periferní zařízení a personál údržby.
První systémy, ke kterým mohl být přidán druhý procesor, byly Burroughsův B5000, DECsystem-1055 a IBM System/360 model 65MP. Některé univerzity navíc postavily také experimentální počítače s duálními procesory [1] .
Problém s přidáním procesoru však byl v tom, že tehdejší operační systémy byly navrženy pouze pro jednoprocesorové počítače a provádění změn tak, aby spolehlivě podporovaly dva procesory, bylo časově náročné. Aby se tento problém obešel, operační systémy s podporou jednoho procesoru byly jen mírně upraveny, aby poskytovaly minimální podporu pro druhý procesor. „Minimální podpora“ znamenala, že operační systém běžel na „zaváděcím procesoru“ (spouštěcím procesoru) a na druhém procesoru byly spouštěny pouze uživatelské programy. Například v Burroughs B5000 druhý procesor neměl schopnost provádět „řídící kód“ v hardwaru [2] .
V jiných systémech mohl operační systém běžet na kterémkoli z procesorů, ale buď byly všechny periferie připojeny pouze k jednomu procesoru, nebo bylo možné přes každý procesor přistupovat pouze k určitým periferiím.
Burroughs B5000 [2] může volitelně přidat „procesor B“. Tento druhý procesor na rozdíl od „Procesoru A“ neměl přístup k periferiím, ale oba procesory měly přístup ke sdílené paměti. Operační systém běžel pouze na procesoru A a uživatelská úloha běžela na procesoru B. Když uživatelská úloha potřebovala přístup k funkcím operačního systému, procesor B vydal systémové volání kódu operačního systému na procesoru A, zastavil se a čekal na kód operačního systému. zpracovat systémové volání a teprve po obdržení výsledku zpracování systémového volání pokračovat v práci. [3] .
Control Data Corporation nabízela dvě varianty v „řadě CDC 6000“, která měla dva procesory: CDC 6500 [4] dvouprocesorový CDC 6400 a CDC 6700, což byl superpočítač CDC 6600 s přidaným procesorem CDC 6400. .
Tyto systémy byly postaveny poněkud odlišně než ostatní víceprocesorové systémy uvedené v tomto článku. Operační systém zde fungoval pouze na periferních procesorech a uživatelská úloha fungovala na centrálních procesorech. Tyto systémy tedy de facto nemohou být ani systémy AMP, ani systémy SMP .
Společnost Digital Equipment Corporation (DEC) nabídla zákazníkům verzi jejich počítače DECsystem-1050 se dvěma procesory KA10 [5] [6] . Pak byla stejná možnost přítomna v řadě počítačů PDP-10.
Společnost Digital Equipment Corporation vyvinula, ale nikdy nepřinesla na trh, víceprocesorovou verzi počítače PDP-11 , PDP-11/74 [7] , která provozovala víceprocesorovou verzi operačního systému RSX-11M [8] . V tomto systému mohl kterýkoli z procesorů spouštět kód operačního systému a provádět I/O, ale ne všechny periferie byly dostupné pro každý z procesorů – většina periferií byla připojena pouze k jednomu procesoru, takže procesor bez periferií pro práci jakýkoli procesor-soused zařízení musí odeslat speciální požadavek [8] .
První víceprocesorový počítač DEC VAX , VAX-11/782, byl asymetrický. (Pouze první procesor měl přístup k I/O zařízením [9] .)
Do počítače Univac 1108-II a jeho následných variant bylo možné osadit až tři procesory [10] [11] . Na těchto počítačích běžel operační systém UNIVAC EXEC 8, ale z dostupné dokumentace není zřejmé, do jaké míry operační systém podporoval asymetrický nebo symetrický multiprocessing.
Přidání druhého procesoru k IBM System/370 model 168 bylo nabízeno dvěma způsoby [12] . První se nabízel v podobě speciálního modulu IBM 3062 Attached Processing Unit , ve kterém procesor neměl přístup k I/O kanálům a fungoval tedy podobně jako „Procesor B“ v počítači Burroughs B5000, popř. jako druhý procesor v DEC VAX-11/782. Ve druhé možnosti se mělo zapojit plnohodnotný procesor, který byl podobný 65MP modelu z předchozí řady System / 360 .
V listopadu 1989 společnost Compaq oznámila uvedení prvního multiprocesorového serveru Compaq SystemPro x86 se dvěma 33 MHz procesory Intel 80386 [13] . Pozdější modely byly vydány s procesorem Intel 80486, když vstoupil na trh. Compaq SystemPro byl asymetrický víceprocesorový systém - druhý procesor byl instalován na rozšiřující desce kromě standardního a spouštěl pouze uživatelské programy, zatímco první procesor obsluhoval přerušení, systémová volání a zaváděl operační systém. To umožnilo používat různé procesory v jednom systému, například přidat Intel 486 k prvnímu Intel 386 na rozšiřující desce a naopak.
V té době pouze operační systémy Novell NetWare , Microsoft LAN Manager a SCO UNIX/386 [14] podporovaly multiprocesing na architektuře x86 .
Ze všech modelů v řadě SystemPro byl pouze pozdější model, SystemPro XL, nabízen se standardní schopností symetrického víceprocesoru, dokud nebyl na podzim roku 1993 nahrazen řadou SMP serverů Compaq ProLiant .