Professional Documents
Culture Documents
Programiranje - Trendovi
Programiranje - Trendovi
Jedno od reenja se bazira na korienju koncepta istiskivanja (preemting), ili timesliced, multitasking operativnog sistema. Time-slice multithreading omoguava
projektantima da sakriju (uine nevidljivim) latencije koje se odnose na U/I aktivnosti,
preklapajui (interleaving) pri tome izvrenje veeg broja thread-ova. Ipak ovaj model ne
obezbeuje paralelno izvrenje, jer se samo jedan niz instrukcija, u datom trenutku, izvrava od
strane procesora.
Drugo reenje, koje je namenjeno za korienje pomenutog thread-level paralelizma,
zasniva se na poveanju broja fizikih procesora u raunaru. Multiprocesorski sistemi su ti koji
obezbeuju pravo paralelno izvrenje, tj. vei broj thread-ova ili procesa simultano se izvrava na
veem broja procesora. Kompromis koji je uinjen u ovom sluaju predstavlja vea vena sistema.
Projektanti procesorskih arhitektura koji su bili usvojili thread-level paralelizam kao dalji
pravac u razvoju, uoili su da, u najveem broju sluajeva, vei broj resursa savremenih procesora
ostaje neiskorien. No, da bi se pronalo bolje reenje, mora prvo da se razjasni ta predstavlja (na
ta se odnosi) pojam nit-izvrenja (thread of execution). Thread se moe definisati kao
osnovna jedinica iskorienje CPU-a. Pre svega thread sadri programski broja koji ukazuje na
tekuu instrukciju u nizu, ali thread takoe uva informaciju o stanju CPU-a, kao i druge resurse
kakvi su magacina (stack).
Fiziki procesor ini vei broj hardverskih resursa, ukljuujui arhitekturno stanje registri
CPU-a opte namene, registri kontrolera prekida, ke memorije, magistrale, izvrne funkcionalne
jedinice, i logiku za predikciju grananja. Kada se definie thread treba da se sagleda samo
arhitekturno stanje. To znai da se logiki procesor moe kreirati dupliciranjem arhitekturnog
stanja. Izvrni resursi se nakon toga dele izmeu razliitih logikih procesora. Ova tehnika je
poznata kao simultaneous multi-threading, ili SMT, ili HT (hyper threading)
technology. HT tehnologija ini da se single procesor, sa softverske take gledita vidi kao
vei broj logikih procesora. Ovakav koncept omoguava operativnim sistemima i aplikacijama da
planiraju izvrenje (schedule) veeg broja thread-ova ili logikih procesora kao to je to sluaj
kod multiprocesorskog sistema. Sa mikroarhitekturne perspektive, instrukcije logikih procesora su
perzistentne i simultano se izvravaju na deljivim izvrnim jedinicama. Drugim reima, mogue je
planirati izvrenje veeg broja thread-ova, ali poto su izvrne jedinice deljive, zadatak
mikroarhitekture se sastoji u tome kako da se odredi koliko i kada da se obavi preklapanje u
izvrenju dva thread-a. Kada se jedan thread zaustavi (stalls) drugom thread-u je
dozvoljeno napredovanje (progres). Dogaaji tipa zastoj odnose se na manipulacije kod ke
promaaja i pogrenih predikcij agrananja.
Naredni logiki korak u odnosu na SMT predstavlja multicore procesor. Multicore
procesori koriste chip-multiptocessing, CMP. Naime, umesto da se kod single core
procesora ponovo iskoriste (reuse) selektovani procesorski resursi, proizvoai procesora koriste
prednosti tehnologije gde implamentiraju dva ili vei broj izvrnih jezgara (execution cores)
u okviru jedinstvenog procesora. Ova dva jezgra u sutini predstavljaju dva individualna procesora
na monolitnom ipu. Execution-cores izvravaju sopstveni skup instrukcija i poseduju
sopstvene arhitekturne resurse. U zavisnosti od reenja procesori mogu da dele ili da ne dele onchip ke. Pored toga, individualna jezgra (core-ovi) se mogu kombinovati sa SMT; pa se na taj
nain efektivno poveava broj logikih procesora putem dupliciranja broja execution core-ova.
Razliite procesorske arhitekture prikazane su na slici 2.