Vad är symmetrisk multiprocessing?

Symmetrisk multiprocessing (SMP) är en typ av datorarkitektur där två eller flera centralprocessorer (CPU) delar en gemensam länk till samma minne. Den utvecklades ursprungligen på 1960-talet och har använts i olika konfigurationer sedan dess. Vilken processor som helst i ett SMP-system kan komma åt och köra programvara från vilken del av det delade minnet. Populariteten för denna installation har fluktuerat under året i takt med att tekniken har utvecklats och marknadsplatserna har förändrats, men det är fortfarande en av de vanligaste formerna av multiprocessorteknik.

SMP uppstod i början av 1960-talet som ett sätt att ansluta flera processorer över en höghastighetsanslutning och göra det möjligt för dem att få tillgång till samma uppsättning minnesmoduler. Eftersom minnet delas mellan processorer kan SMP-hårdvara vara billigare än andra tekniker som kan dedikera minne till varje processor. Många varianter av denna inställning har använts, med några som använder en enkel tvärbalk för att ansluta två processorer, medan andra använde mer sofistikerade sammankopplingar mellan så många som 32 processorer. Alla symmetriska multiprocessingssystem kan hållas tillbaka av hastigheten och kapaciteten hos denna sammankoppling; ett system med 32 processorer kommer inte nödvändigtvis att vara 32 gånger snabbare eftersom den gemensamma länken mellan dessa processorer och systemminnet kan bli överbelastat.

En viktig fördel som symmetrisk multiprocessing har jämfört med andra tekniker är att ett SMP-system mer eller mindre behandlar alla sina processorer lika, vilket ger var och en av samma kvalitet på åtkomst till annan datorhårdvara. Detta innebär att vilken processor som helst i systemet kan läsa och utföra instruktioner från program oavsett var dessa program finns i datorns minne. Många program är nu uppdelade i mindre bitar som kallas trådar; när dessa program körs på ett SMP-system kan varje processor köra en tråd av programmet och därigenom öka den totala prestandan ytterligare. Programvara på användarnivå behöver inte modifieras för att köras på ett system som stöder symmetrisk multiprocessing, men det underliggande operativsystemet måste stödja tekniken.

Populariteten för symmetrisk multiprocessing har avtagit och ökat under åren i takt med att andra tekniker har utvecklats och nya arkitekturer har utforskats. Publicitet om teknikens möjliga inverkan på datoranvändning dök upp i början av 1990-talet; ett antal företag, framför allt Sequent Computer Systems, började specialisera sig på att bygga avancerade SMP-system. Sequent, som förvärvades av IBM 1999, fick beröm för sin design men kunde aldrig effektivt konkurrera med jättarna inom datorindustrin. Nyare multibearbetningstekniker som icke-uniform minnesåtkomst (NUMA) har delvis ersatt SMP i avancerade system.

Datortillverkare har experimenterat med symmetrisk multiprocessing i hårdvara på konsumentnivå genom åren; förutom dyr entusiasthårdvara saknar dock de flesta persondatorer tekniken. Nya tekniker för att göra system med enkel processor effektivare, såsom simultan multithreading eller ”hyperthreading”, tillsammans med framväxten av flerkärnig teknologi har ökat datorernas prestanda utan den extra kostnaden för SMP. Det är dock möjligt att kombinera dessa teknologier, och de mest kraftfulla stationära datorerna kan innehålla flera flerkärniga processorer anslutna via SMP, vilket skapar ett system med enorma mängder beräkningskraft.