Dom > Razstava > Vsebine

Mikroarhitekturni koncepti Multiprocesiranje in večnitnost

Mar 09, 2019

Računalniški arhitekti so postali oteženi zaradi naraščajočega neskladja v frekvencah delovanja CPU in časih dostopa DRAM. Nobena od tehnik, ki so uporabljale vzporednost na ravni navodil (ILP) v enem programu, ne bi mogla nadomestiti dolgih stojnic, do katerih je prišlo, ko je bilo treba podatke pridobiti iz glavnega pomnilnika. Poleg tega je bilo za velike tranzistorje in visoke obratovalne frekvence, ki so potrebne za naprednejše tehnike ILP, potrebne stopnje izgube moči, ki jih ni bilo mogoče poceni ohladiti. Iz teh razlogov so nove generacije računalnikov začele izkoriščati višje ravni vzporednosti, ki obstajajo izven posameznega programskega ali programskega niza.


Ta trend je včasih znan kot prepustnost. Ta ideja je nastala na trgu mainframe, kjer spletna obdelava transakcij ni poudarjala le hitrosti izvajanja ene transakcije, temveč tudi sposobnost obravnavanja velikega števila transakcij. Z aplikacijami, ki temeljijo na transakcijah, kot sta omrežno usmerjanje in spletna stran, ki v zadnjem desetletju močno raste, je računalniška industrija ponovno poudarila težave z zmogljivostjo in prepustnostjo.


Ena od tehnik, kako je ta paralelnost dosežena, je preko večprocesnih sistemov, računalniških sistemov z več procesorji. Ko so rezervirani za vrhunske glavne računalnike in superračunalnike, so majhni (2-8) večprocesorski strežniki postali običajni na trgu malih podjetij. Za velike korporacije so velikoprocesorji velikega obsega (16–256) skupni. Tudi osebni računalniki z več procesorji so se pojavili od devetdesetih let prejšnjega stoletja.


Z nadaljnjimi zmanjšanji velikosti tranzistorjev, ki so na voljo s polprevodniško tehnologijo, so se pojavile večjedrne procesorje, kjer je na isti silicijev čip uporabljeno več procesorjev. Sprva se je uporabljal v čipih, namenjenih vgrajenim trgom, kjer bi enostavnejši in manjši procesorji omogočili, da bi se več primerkov ujemalo z enim kosom silicija. Do leta 2005 je tehnologija polprevodnikov omogočila proizvodnjo dvojnih visoko zmogljivih namiznih CPU čipov CMP. Nekateri modeli, kot je UltraSPARC T1 podjetja Sun Microsystems, so se vrnili na preprostejše (skalarne, urejene) modele, da bi lahko na en sam kos silicija namestili več procesorjev.


Druga tehnika, ki je v zadnjem času postala bolj priljubljena, je multithreading. Pri večnitnem procesiranju, ko mora procesor prenesti podatke iz počasnega sistemskega pomnilnika, procesor preklopi na drug program ali nit programa, ki je pripravljen za izvajanje, namesto da bi zaustavil podatke. Čeprav to ne pospeši določenega programa / niti, poveča celotno prepustnost sistema, saj skrajša čas mirovanja CPE.


Konceptualno je multithreading enakovredno preklopu konteksta na ravni operacijskega sistema. Razlika je v tem, da lahko večnitna CPE preklopi nit v enem ciklu CPU namesto na stotine ali tisoče ciklov CPE, ki jih običajno zahteva stikalo konteksta. To se doseže s posnemanjem stanja strojne opreme (kot je registrska datoteka in programski števec) za vsako aktivno nitko.


Nadaljnja izboljšava je hkratna večnitnost. Ta tehnika omogoča superskalarnim CPU-jem izvrševanje navodil iz različnih programov / niti istočasno v istem ciklu.