1975 metais G. Mooreo paskelbta hipotezė, kad lustuose tranzistorių skaičius dvigubės kas dvejus metus, galioja iki šiol. Tačiau visiškai tikėtina, jog būtent šis „dėsnis“ ir neleido toliau tobulinti procesorių darbo dažnio. Prieš trejus metus kompanija „Intel“ 2010-aisiais mums žadėjo 10 GHz procesorius, tačiau 2004 m. procesorių gamintojai pasiekė tik 3–4 GHz spartos ribą ir jos niekaip neįstengia perkopti.
Du dirbs sparčiau nei vienas
Vienas iš spartos didinimo būdų žinomas jau seniai: duomenys apdorojami keliais procesoriais. Juk dviem kibirais vandens atsineši dukart daugiau nei vienu. Taigi „Intel“ pažadai pasikeitė – 2010 m. ji mums žada net 32 branduolių sistemas.
Iki šiol tokios sistemos buvo rengiamos tik tarnybinėse ir didelės spartos darbo stotyse, mat paprastiems vartotojams skirtos operacinės sistemos ir programinė įranga nebuvo suderintos su keleto procesorių sistemomis. Be to, kompiuteriai su keletu atskirų procesorių buvo ir yra gerokai brangesni už vieną procesorių turinčius analogus. Tačiau dabar lustų gamyba patobulėjo taip, kad keli branduoliai jau telpa įprastame procesoriuje, viename luste, o procesorius vienu metu gali vykdyti keletą instrukcijų („Intel HyperThreading“).
Dar viena iš priežasčių, dėl kurių gamintojai pasuko keleto branduolių sistemų link, yra ta, kad „Microsoft“ pagaliau „numarino“ senas DOS pagrindu veikusias operacines sistemas (OS). Visos naujosios „Microsoft“ OS yra suderinamos su keleto procesorių sistemomis.
Ne taip paprasta
Tačiau procesoriai – ne kibirai, o duomenys – ne vanduo. Vietoj vieno procesoriaus sumontavus du, darbo sparta tikrai nepadidės dukart. Ji gali net sumažėti.
Viena svarbiausių to priežasčių – taikomoji programinė įranga nepritaikyta keleto procesorių sistemoms. Nepaisant OS gebėjimo skirstyti užduotis, vienas instrukcijų srautas (thread) gali būti vykdomas tik vienu procesoriumi. Tad jei programa yra vienasrautė (singlethreaded), jos instrukcijas gali vykdyti tik vienas procesorius.
Tarnybinėms stotims šis ribojimas neaktualus, nes jose paprastai veikia bent keletas programų, reikalaujančių daug procesoriaus išteklių. Vartotojų kompiuteriuose paprastai pluša viena pagrindinė programa (vaizdo grotuvas, žaidimas, biuro programa), o likusioms tuo metu sužadintoms programoms reikia 5–10 proc. procesoriaus išteklių.
Sprendžiamų uždavinių specifika taip pat kelia papildomų keblumų. Kai kurie jų reikalauja nuoseklumo, tad programuojant gana sudėtinga išlaikyti idealų balansą. Tarkim, užduotis suskirstoma į tris etapus: skaičiavimas; įvesties ir išvesties operacija (I/O); laukimas (kol bus pašalinta laukimo žyma). Vieno procesoriaus kompiuteris gali pradėti skaičiuoti naują duomenų porciją vos prasidėjus I/O operacijai. Per penkis darbo taktus procesorius gali atlikti 7,67 operacijos. Papildomas procesorius pajėgus atlikti daugiau užduočių, tačiau laukimo žyma yra tik viena. Kol kuri nors užduotis jos nepašalina, naujos užduoties vykdyti negalima. Todėl per tą patį laikotarpį du procesoriai įvykdys 14 komandų, t. y. sistemos plėtra (scalability) sieks 1,83.
Du procesoriai – gerai ar blogai?
Kito pasirinkimo lyg ir nėra. Bendrovė AMD oficialiai paneigė gandus apie planus kurti procesorių, kuris OS bei programinei įrangai būtų matomas kaip vienas, bet viduje nuoseklus instrukcijų srautas būtų išskaidytas atskiriems skaičiavimo įrenginiams.
Šiuolaikinės „Windows“, „Linux“, „OS X“ operacinės sistemos puikiai susidoroja su keletu užduočių, todėl nėra prasmės tuo nepasinaudoti. Ar netrukus pajusime daugelio procesorių galią, priklauso tik nuo programinės įrangos gamintojų. Nors ir nenoriai, tačiau jie jau pradeda taikyti savo programas daugelio procesorių sistemoms.
O kol kas nereikėtų leistis mulkinamiems ir neskubėti aklai pirkti kai kuriose Lietuvos bendrovėse jau siūlomus kompiuterius su „Intel Dual Core 6,4 (3,2+3,2)“ procesoriais. Jei procesorių dažnius būtų galima sumuoti, „Cell“ dažnis siektų 28,8 GHz (9 branduoliai, veikiantys 3,2 GHz dažniu), o „Sun UltraSPARC T1“ – net 38,8 GHz.
Pirmieji daugiabranduoliniai procesoriai buvo labai dideli ir eikvojo daug elektros energijos. Aštuonių branduolių „IBM Power5“ procesoriaus galingumas siekė 167 W, įtaisas svėrė bemaž kilogramą.