Dom > Izložba > Sadržaj

Mikroarhitektonski koncepti Multiprocesiranje i multithreading

Mar 09, 2019

Računalni arhitekti postali su zapriječeni rastućom neusklađenošću u radnim frekvencijama CPU-a i vremenu pristupa DRAM-u. Nijedna od tehnika koje su koristile paralelizam na razini instrukcija (ILP) unutar jednog programa nije mogla nadoknaditi dugačke staje koji su se dogodili kada su podaci morali biti izvučeni iz glavne memorije. Osim toga, veliki broj tranzistora i visoke radne frekvencije potrebne za naprednije ILP tehnike zahtijevaju razine rasipanja snage koje se više ne mogu jeftino hladiti. Zbog toga su nove generacije računala počele iskorištavati više razine paralelizma koje postoje izvan jednog programskog ili programskog niza.


Taj je trend ponekad poznat i kao propusno računanje. Ta je ideja nastala na mainframe tržištu gdje je online obrada transakcija naglašavala ne samo brzinu izvršenja jedne transakcije, već i sposobnost rješavanja velikog broja transakcija. Uz transakcijske aplikacije poput mrežnog usmjeravanja i web-mjesta koje uvelike raste u posljednjem desetljeću, računalna industrija ponovno je istaknula probleme s kapacitetom i propusnošću.


Jedna tehnika kako se postiže ovaj paralelizam je kroz višeprocesorske sustave, računalne sustave s više procesora. Jednom rezerviran za vrhunske mainframeove i superračunala, mali (2-8) višeprocesorski poslužitelji postali su uobičajena pojava za tržište malih poduzeća. Za velike korporacije, višestruki (16-256) multiprocesori su uobičajeni. Čak se i osobna računala s više procesora pojavljuju od 1990-ih.


S daljnjim smanjenjem veličine tranzistora koje je dostupno s napretkom tehnologije poluvodiča, pojavili su se višestruki procesori u kojima je na istom silicijskom čipu implementirano više procesora. U početku se koristio u čipovima koji su ciljali ugrađena tržišta, gdje bi jednostavniji i manji procesori omogućili višestruke instancije da stanu na jedan dio silikona. Do 2005. tehnologija poluvodiča omogućila je proizvodnju dvostrukih stolnih procesora CMP čipova. Neki dizajni, kao što je UltraSPARC T1 tvrtke Sun Microsystems, vratili su se na jednostavnije (skalarne, redoslijedne) dizajne kako bi se na jedan dio silikona smjestilo više procesora.


Još jedna tehnika koja je postala popularnija u posljednje vrijeme je multithreading. U višedretvenoj obradi, kada procesor mora dohvatiti podatke iz spore memorije sustava, umjesto da odugovlači da dođe do podataka, procesor se prebacuje na drugi program ili nit programa koji je spreman za izvršenje. Iako to ne ubrzava određeni program / nit, povećava ukupnu propusnost sustava smanjujući vrijeme u kojem je procesor u stanju mirovanja.


Konceptualno, višedretvenost je ekvivalentna prekidaču konteksta na razini operacijskog sustava. Razlika je u tome što višenitni CPU može napraviti prekidač niti u jednom CPU ciklusu umjesto stotinama ili tisućama CPU ciklusa koje kontekstualni prekidač obično zahtijeva. To se postiže repliciranjem stanja hardvera (kao što je datoteka registra i brojača programa) za svaku aktivnu nit.


Daljnje poboljšanje je istovremena multithreading. Ova tehnika omogućuje superskalarnim procesorima izvršavanje uputa iz različitih programa / niti istovremeno u istom ciklusu.