Zanimiva je primerjava sodobnega mikroprocesorja in mikroorganizma. Vsak del mikroorganizma ima svojo nalogo, vsi deli skupaj pa tvorijo celoto, ki je prilagodljiva na vplive okolja in se nanje hitro odziva. Neverjetno je, da se elektronika tu zgleduje po naravi, je pa nujno, saj so se elektronske komponente in tranzistorji, ki jih sestavljajo, pomanjšale že do meje fizikalnih možnosti, ko je edino z replikacijo in specializacijo procesorskih komponent še mogoče doseči pohitritev. To odražajo odmevna imena novih tehnologij, ki jih srečamo pri Intelovih mikroprocesorjih: Atom processor, Hypertreading, Virtualization technology, Quick Assist, Trusted Execution, Active Management in vPro.

MEJA MAJHNOSTI

Ob čedalje zmogljivejših procesorjih skoraj ne moremo mimo Moorovega zakona, ki v originalni različici pravi: »Kompleksnost komponent z minimalnimi cenami se je povečevala v grobem za faktor dve na leto. V kratkem razdobju lahko pričakujemo, da se bo to razmerje nadaljevalo, če ne povečalo. Na daljše obdobje je trend povečevanja nekoliko bolj negotov, čeprav ni razloga, da se ne bi obdržal vsaj naslednjih 10 let. To pomeni, da bo do leta 1975 število komponent na integriranem vezju z najnižjo ceno 65.000. Verjamem, da bo tako veliko vezje mogoče zgraditi na eni sami rezini.« Leta 1975 je Moore spremenil svojo napoved in izjavil, da se podvojitev dejansko zgodi vsaki dve leti, kar za Intelove procesorje med leti 1971 in 2004 tudi dejansko drži; čeprav mnogi mislijo, da je Moore napovedal podvojitev vsakih 18 mesecev. Kakorkoli, leta 2005 je Moore napovedal nepreklicen konec svojega »zakona« v desetih do petnajstih letih, saj naj bi imela vsaka fizikalna veličina, ki raste eksponentno tudi svoj konec. Citiral je tudi fizika Stephena Hawkinga, ki meni, da obstajajo osnovne omejitve v fiziki, hitrost omejitve v smislu hitrosti in atomska narava snovi v smislu velikosti struktur. Dodal je še, da nismo daleč od teh omejitev.

Intel je zloveščih napovedi začasno rešil eksotični element hafnij, ki so ga namesto silicija uporabili kot izolator v tranzistorjih. »Atomski« procesorji so izdelani z novo 45 nm tehnologijo, ki omogoča do 47 milijonov tranzistorjev na enem čipu, manjšem od 25 kvadratnih mm. Manjši tranzistorji prinašajo že znane izboljšave, med katerimi sta v primerjavi s 65 nm tehnologijo najpomembnejši 30 % zmanjšanje porabe energije in 20% večja hitrost delovanja. Kaj torej pomeni tehnologija »Atom processor«? Pomeni le prehod s 65 nm tranzistorske tehnologije na 45 nm? Dejansko ne dosti več od tega, je pa res, da omogoča več tranzistorjev na enem samem mikroprocesorskem čipu vdelavo več funkcijskih enot, več predpomnilnika in zmogljivejše krmilne enote (oziroma jedra), kar dokazuje tudi že četrti razširjen nabor paralelnih ukazov (SSE4).

OD MULTIRAČUNALNIKA DO HIPERNITNOSTI IN VEKTORSKIH UKAZOV

Danes so vsi računalniki vzporedni in potrebujejo za optimalno delovanje ustrezno paralelno programsko opremo, ki se sestojih iz več programov, od katerih ima lahko vsak po več programskih niti. Temu so se prilagodili tudi mikroprocesorji.

Sočasnost si najlažje predstavljamo, če vzamemo za primer dva računalnika, ki delujeta neodvisno. Vsakomur je jasno, da računalnika lahko neodvisno hkrati izvajata vsak svoj program. Če računalnika medsebojno povežemo z omrežjem, njuna programa pa napišemo tako, da skupaj rešujeta isti problem, tako da si izmenjujeta podatke prek omrežja, že lahko govorimo o multiračunalniku, ki je najšibkeje povezana vzporedna arhitektura. Če multiračunalnik izdelamo tako, da za vse računalnike, ki jim lahko rečemo tudi vozlišča, uporabimo skupno diskovno polje, ali skupen trdi disk, dobimo močneje sklopljen multiračunalnik, v katerem vozlišča tekmujejo za dostop do diska.

Jedro vsakega računalnika je seveda mikroprocesor. Zakaj ne bi imeli računalnike namesto enega po več glavnih procesorjev? Misel nas pripelje do večprocesorskega računalnika, katerega glavna značilnost je skupen glavni pomnilnik. Procesorji zdaj nimajo več vsak svojega glavnega pomnilnika, temveč tekmujejo za dostop do njega. Po eno strani je taka organizacija znotraj računalnika dobra, saj omogoča zalo hitro izmenjavo podatkov med procesorji; preko pomnilnika, po drugi pa se morajo procesorji čakati, kadar vsi dostopajo do istega kosa pomnilnika. Pohitritev dvoprocesorskega računalnika v primerjavi z enoprocesorskim je v povprečju približno 30%.

Omenjeni multiračunalniška in večprocesorska arhitektura pa nista edini. Hipernitnost je odgovor na vprašanje, ali lahko ena sama procesna enota izvaja več programov hkrati; ki je seveda pritrdilen. Da bi razumeli, kako je to mogoče, moramo poznati osnovne sestavne dele mikroprocesorja in njihovo delovanje. Mikroprocesor je znotraj razdeljen na več funkcijskih, od katerih vsaka opravlja določene naloge. Predstavljamo si, da jih imamo sedem: dve enoti za računanje s celimi števili, enoto za računanje z realnimi števili in dve enoti za računanje z naslovi in dve krmilni enoti. Krmila enota krmili tok ukazov in dodeljuje naloge izvajalnim enotam. Omenjeni procesor je hiperniten, saj ima dve krmilni enoti, oziroma jedri, ki tekmujeta za izvajalne enote. V kolikor je izvajalna enota zasedena, mora krmilna enota počakati z izvajanjem ukaza do sprostitve izvajalne enote. Zato je pohitritev pri hipernitnem procesorju z dvema jedroma v primerjavi z običajnim procesorjem, povprečno okoli 25%, kar je manj kot pri dvoprocesorskem računalniku.

Hipernitnost pa ni zadnji način za paralelnost. Poznamo še enega, na nivoju strojnih ukazov. Nabor t. i. vektorskih strojnih ukazov, ki so jih pri Intelu poimenovali SSE. Njihovo bistvo je, da delujejo nad podatkovnimi vektorji, kar je še posebej uporabno pri računalniški grafiki. Vektor je v matematiki spremenljivka, ki jo sestavlja več skalarnih vrednosti. Slednje pomeni, da lahko na primer z enim ukazom za seštevanje seštejemo dva vektorja s po 8 komponentami, pri čemer je izvedenih 8 paralelnih seštevanj. Če si predstavljamo, da bi moral klasični računalnik za isto operacijo izvesti 8 strojnih ukazov v zanki, lahko ugotovimo, da tudi na ta način pridemo do znatnih pohitritev.


Program in programska nit
Program je zaključena celota ukazov, ki potrebuje za svoje delovanje določen del pomnilnika, ločen od pomnilnika drugih programov. Programi si lahko izmenjujejo podatke prek posebnih skupnih delov pomnilnika, ki jih v ta namen ustvarimo. V nasprotju s tem je programska nit manj kot program, saj nima svojega pomnilnika in jo procesor izvaja v istem delu pomnilnika kot vzporedne programske niti istega programa.

TEHNOLOGIJA ZA VIRTUALIZACIJO

Da bi razumeli, kaj je tehnologija za virtualizacijo (virtualization technology), se moramo vrniti v devetdeseta leta, ko se je bila bitka med peceji in vsemi drugimi osebnimi računalniki, med katerimi so bili maci, amige, atariji … skratka vsi tisti, ki so imeli Motoroline mikroprocesorje. Najprej smo dobili simulatorje računalnikov, ki so znali v računalniku X poganjati programe računalnika Y, denimo v pecejih smo lahko posnemali delovanje amig, atarijev in macov ... A sčasoma so vsi osebni računalniki dobili Intelove ali združljive mikroprocesorje, s čemer je odpadla potreba po posnemanju. Toda osnovno idejo so razvili naprej. Dobili smo navidezne računalnike.

Navidezni računalnik posnema delovanje računalnika X v računalniku Y, ali bolje rečeno, delovanje peceja v peceju. Replikacija navideznih računalnikov je preprosta, dovolj je, da prekopiramo nekaj datotek v računalnik, ki ima nameščeno okolje za izvajanje navideznega računalnika, in navidezni računalnik že lahko zaženemo z vso nameščeno programsko opremo vred. To je pravo nasprotje dolgotrajnemu nameščanju programske opreme v fizični računalnik. Zato so navidezni računalniki dobrodošli tudi na računalniških izobraževalnih tečajih, saj je z njimi mogoče vsem slušateljem zagotoviti enako učno okolje z malo truda. Nekoliko drugačna vrsta uporabe je pri strežnikih, ko lahko z uporabo večjega števila navideznih računalnikov v enem samem fizičnem strežniku poganjamo večje število navideznih strežnikov in se s tem izognemo nakupu in postavitvi večjega števila fizičnih strežnikov.

Vse lepo in prav, toda kaj ima tehnologija za virtualizacijo z mikroprocesorji? V sodobne procesorje so vdelali strojno podporo za hitro izvajanje navideznih računalnikov. Denimo, kadar v enem fizičnem strežniku izvajamo več navideznih strežnikov, lahko veliko časa pridobimo s hitrimi preklopi med konteksti, ko se mora shraniti celotno stanje procesorja za posamezni navidezni računalnik, da bi se lahko v naslednji časovni rezini izvajal naslednji navidezni računalnik. S tehnologijo za virtualizacijo doseženo znatne pohitritve, zato je slednja vgrajena večinoma v procesorje za računalniške strežnike.

HITRA POMOČ

Ime tehnologije, Quick Assist, spominja na prvo pomoč za mikroprocesorje, kar na neki način tudi je. Znano je, da lahko poljuben algoritem enako dobro realiziramo z logičnim vezjem kot s programom. Vendar bo algoritem v logičnem vezju deloval 10- do 100-krat hitreje od programa.

V svetu strojne opreme že dolgo poznamo programirljiva logična vezja FPGA, v katera lahko shranimo različne algoritme v obliki modelov povezav med logičnimi vrati. Quick Assist je most za hitro komunikacijo med vezji FPGA in mikroprocesorjem preko prednjega procesorskega vodila (FSB). Če bo zamisel zaživela, lahko pričakujemo, da bodo programerjem pri računsko najzahtevnejših problemih v prihodnosti morali priskočiti na pomoč tudi dizajnerji logičnih vezij.

ZAUPANJE ZA IZVAJANJE

V sodobnem računalniku hkrati izvajamo več kot 100 programov, zato nikoli ne moremo biti povsem prepričani, da ni med njimi tudi črv, virus ali trojanski konj. Najnevarnejši so tisti programi, ki se lahko z vdorom v kako aplikacijo dokopljejo elektronskega certifikata, gesel ali drugih zaupnih podatkov. Programska zaščita proti temu sicer obstaja, a je nemalokrat premalo učinkovita. Zato so novi procesorji dobili tudi strojno podporo, imenovano Trusted Execution Technology, ki omogoča ustvarjanje zaščitenih delov pomnilnika, kamor lahko aplikacija umakne občutljive zaupne podatke in jih tako zaščiti pred drugimi aplikacijami.

AKTIVNO UPRAVLJANJE ALI VELIKI BRAT?

Aktivno upravljanje so sanje vsakega vestnega sistemskega skrbnika, ki mora voditi ažurno zbirko podatkov o stanju računalnikov v podjetju. Z uporabniki je malo drugače. Za večino je tehnologija vPro nevidna, razen za hekerje, ki pogosto prenarejajo programsko opremo.

Mikroprocesor s tehnologijo vPro deluje tudi med mirovanjem oziroma ko je računalnik ugasnjen (razen če napajalni kabel izvlečemo iz vtičnice). To omogoča delovanje posebni vgrajeni programski kodi na ravni BIOS-a, ki bdi nad delovanjem računalnika in za hrambo informacij o njegovem delovanju in trenutni zgradbi uporablja poseben pomnilnik, ki ne potrebuje napajanja. Poleg procesorja ni nikoli povsem izklopljena tudi omrežna kartica, na kateri je vzpostavljen poseben komunikacijski kanal, ki omogoča skrbniku informacijskega sistema, da na svojem računalniku spremlja stanje vseh računalnikov s tehnologijo vPro v omrežju, ne glede na to, ali v njih teče operacijski sistem, so ugasnjeni ali brez operacijskega sistema. Preko komunikacijskega kanala je mogoče tudi krmiljenje na daljavo: oddaljeni ponovni zagon, vklop in izklop računalnika, oddaljena obnova operacijskega sistema, branje sistemskih zapisov … Mogoče je celo prestrezanje vseh komunikacij računalnika prek interneta, s čimer lahko sistemski skrbnik prepreči dostop do določenih segmentov interneta ali prenos zlonamerne programske kode v računalnik že na ravni, nižji od operacijskega sistema.

S tehnologijo vPro naj bi se obseg dela sistemskemu skrbniku v velikem podjetju zmanjšal tudi za 50 % in več. Upajmo le, da se ne bodo čez čas v vlogi »skrbnikov« pojavili tudi hekerji in spremenili naše računalnike v prave zombije.

Objavljeno: Moj mikro, April 2008 | Simon Vavpotič |