AMP eller ASMP (från engelska: Asymmetric multiprocessing , ryska: Asymmetric multiprocessing eller Asymmetric multiprocessing ) är en typ av multiprocessor-datorsystemarkitektur som användes innan symmetrisk multiprocessing (SMP)-teknik skapades. Används även som ett billigare alternativ på system som stöder SMP.
I ett system med asymmetrisk multiprocessing spelar inte alla processorer samma roll. Till exempel kan ett system använda (antingen på hårdvaran eller på operativsystemnivå) endast en processor för att exekvera operativsystemkod, eller tilldela endast en processor att utföra I/O-operationer. I andra AMP-system kan alla processorer utföra operativsystemkod och I/O-operationer, så från den här sidan beter de sig som ett symmetriskt multiprocessorsystem, men viss kringutrustning kan bara anslutas till en processor, så från sidan av att arbeta med detta systemet verkar asymmetriskt med hårdvaran.
På 1960- och 1970-talen kunde du öka en dators processorkraft helt enkelt genom att lägga till en annan processor till den. Att lägga till en annan identisk processor var billigare än att köpa en ny dator som var dubbelt så snabb. Att bara lägga till ytterligare en processor var också mer lönsamt än att köpa en andra hel dator, vilket krävde ett separat datorrum, ytterligare kringutrustning och underhållspersonal.
De första systemen som en andra processor kunde läggas till var Burroughs B5000, DECsystem-1055 och IBM System/360 modell 65MP. Dessutom har vissa universitet också byggt experimentdatorer med dubbla processorer [1] .
Problemet med att lägga till en processor var dock att dåtidens operativsystem endast var designade för datorer med en processor, och att göra ändringar för att tillförlitligt stödja två processorer var tidskrävande. För att komma runt denna svårighet modifierades operativsystem med stöd för en processor endast något för att ge minimalt stöd för en andra processor. "Minimalt stöd" innebar att operativsystemet körde på "startprocessorn" (bootprocessorn), och endast användarprogram kördes på den andra processorn. Till exempel, i Burroughs B5000, hade den andra processorn inte förmågan att exekvera "kontrollkod" i hårdvaran [2] .
I andra system kunde operativsystemet köras på vilken som helst av processorerna, men antingen var all kringutrustning ansluten till bara en processor, eller så kunde bara vissa kringutrustning nås via varje processor.
Burroughs B5000 [2] kan valfritt lägga till en "processor B". Denna andra processor hade, till skillnad från "Processor A", inte tillgång till kringutrustning, men båda processorerna hade tillgång till delat minne. Operativsystemet körde endast på processor A, och användaruppgiften kördes på processor B. När användaruppgiften behövde tillgång till operativsystemets funktioner, skickade processor B ett systemanrop till OS-koden på processor A, stoppade och väntade på OS-koden för att bearbeta systemanropet, och först efter att ha fått resultatet av bearbetningen av systemanropet, fortsatte arbetet. [3] .
Control Data Corporation erbjöd två varianter i "CDC 6000-serien", som hade två processorer: CDC 6500 [4] dubbelprocessor CDC 6400, och CDC 6700, som var en CDC 6600 superdator med en CDC 6400-processor tillagd till den .
Dessa system byggdes något annorlunda än de andra multiprocessorsystem som nämns i denna artikel. Operativsystemet här fungerade bara på perifera processorer, och användaruppgiften fungerade på de centrala processorerna. Så dessa system kan de facto inte vara varken AMP-system eller SMP- system .
Digital Equipment Corporation (DEC) erbjöd kunder en version av deras DECsystem-1050-dator med två KA10-processorer [5] [6] . Då fanns samma alternativ i PDP-10-serien med datorer.
Digital Equipment Corporation utvecklade, men kom aldrig till marknaden, en multiprocessorversion av PDP-11- datorn , PDP-11/74 [7] , som körde en multiprocessorversion av operativsystemet RSX-11M [8] . I det här systemet kunde vilken som helst av processorerna köra operativsystemkod och utföra I/O, men inte all kringutrustning var tillgänglig för var och en av processorerna - de flesta kringutrustningen var kopplade till endast en processor, så processorn utan kringutrustning att arbeta med någon enhetsprocessor-granne som krävs för att skicka en särskild begäran [8] .
DEC:s första VAX -multiprocessordator , VAX-11/782, var asymmetrisk. (Endast den första processorn hade tillgång till I/O-enheter [9] .)
Upp till tre processorer kunde installeras i Univac 1108-II-datorn och dess efterföljande varianter [10] [11] . Dessa datorer körde operativsystemet UNIVAC EXEC 8, men det framgår inte av den tillgängliga dokumentationen i vilken utsträckning operativsystemet stödde asymmetrisk eller symmetrisk multiprocessing.
Tillägget av en andra processor till IBM System/370 modell 168 erbjöds på två sätt [12] . Den första erbjöds i form av en specialmodul IBM 3062 Attached Processing Unit , där processorn inte hade tillgång till I/O-kanaler och därför fungerade på liknande sätt, som "Processor B" i Burroughs B5000-datorn, eller som en andra processor i DEC VAX-11/782. I det andra alternativet var det meningen att den skulle ansluta en fullfjädrad processor, som liknade 65MP-modellen från den tidigare System / 360 -linjen .
I november 1989 tillkännagav Compaq lanseringen av den första Compaq SystemPro x86 multiprocessorservern med två 33 MHz Intel 80386-processorer [13] . Senare modeller släpptes med Intel 80486-processorn när den kom in på marknaden. Compaq SystemPro var ett asymmetriskt multiprocessorsystem - den andra processorn installerades på expansionskortet förutom standarden och körde endast användarprogram, medan den första processorn hanterade avbrott, systemanrop och laddade operativsystemet. Detta gjorde det möjligt att använda olika processorer i ett system, till exempel lägga till en Intel 486 till den första Intel 386:an på ett expansionskort och vice versa.
Vid den tiden var det bara Novell NetWare , Microsoft LAN Manager och SCO UNIX/386 [14] som stödde multiprocessing på x86-arkitekturen .
Av alla modellerna i SystemPro-serien erbjöds bara den senare modellen, SystemPro XL, med standard symmetrisk multiprocessorkapacitet tills den ersattes av Compaq ProLiant -serien med SMP-servrar hösten 1993 .