You are on page 1of 8

Univerzitet u Beogradu

ki fakultet
Matematic

Seminarski rad iz predmeta:


unarske
Uvod u operativne sisteme i rac
mre
ze

Fizi
cka i logi
cka jezgra
procesora

Student:
- orde Parovic 60/2011
D

Novembar, 2014

Profesor:

Miroslav Maric

Uvod
Fizicko jezgro je bas to sto mu ime kaze jezgro procesora koje se fizicki nalazi
unutar CPUa. Svako fizicko jezgro ima svoje strujno kolo i svoju L1 (a cesto i
L2) kes memoriju iz koje se mogu citati i izvrsavati naredbe nezavisno od drugih
jezgara. Pojam logicko jezgro je vise programerska apstrakcija nego fizicki entitet.
Jednostavna definicija logickog jezgra bi bila da je to procesorska jedinica koja je
sposobna da izvrsava svoju nit paralelno sa ostalim logickim jezgrima. Zapravo,
logicko jezgro je isto sto i nit.
Moguce je imati vise logickih jezgara na jednom fizickom jezgru. Uostalom, logicka
jezgra dele resurse sa ostalim logickim jezgrima na istom fizickom jezgru, pa posedovanje vise logickih jezgara ne mora obavezno obezbediti poboljsanje performansi
kao vise fizickih jezgara.
Kod Intel hypertheading tehnologije dodeljuju se dva logicka jezgra na jedno fizicko
jezgro. Tako quad-core i7 (4 fizicka jezgra) ima 8 logickih jezgara. Medutim, dva
logicka jezgra unutar jednog fizickog jezgra ne mogu izvrsavati naredbe potpuno
paralelno, u pravom smislu te reci, vec dok se izvrsavaju naredbe unutar jednog
logickog jezgra drugo ceka, cekajuci podatke iz memorije, iz kesa...
Na sta se onda misli kada se kaze da logicka jezgra rade paralelno?
Ispostavlja se da logicka jezgra svoje naredbe izvrsavaju skoro paralelno jer tokom
izvrsavanja jedne niti na jednom jezgru skoro nikada se ne izvrsavaju naredbe
neprekidno bez cekanja na svaki takt procesora, cesto se niz naredbi unutar niti
prekida cekanjem necega, i tada umesto da jedno logicko jezgro (nit) ceka, drugo
logicko jezgro dobija priliku da izvrsava svoje naredbe. I tako u krug.

Za
sto vi
se jezgara?
Poboljsanje performansi procesora u proslosti se postizalo ubrzanjem frekvencije
procesora (jednog fizickog jezgra). Medutim, takva ubrzanja su postala znatno
manja nego u pocetku razvoja, jer su procesori trebali da rade na toliko visokim frekvencijama da se znacajno povecala potrosnja elektricne energije kao
i izrazeno zagrejavanje, pa su arhitekti procesora morali da pronadu drugi pristup
ubrzanju performansi. Dodatno jezgro unutar procesora, u teoriji, bi rezultiralo duplo vecom brzinom procesora. U praksi brzina bilo kog jezgra je manja
od najbrzeg jednojezgarnog procesora. Prednost ovakvog pristupa je znacajno
poboljsanje brzine procesora bez potrebe da jezgra rade na ogromnim frekvencijama. (Povecanjem brzine jezgra za 400MHz povecava se potrosnja elektricne
energije za oko 60% - IEE Review)
Vise jezgara u jednom procesoru nije nov koncept, jer je ta ideja odavno pronasla
svoje mesto u nekim ugradenim sistemima sa posebnim primenama. Odnedavno
(zadnjih 7-8 godina) je ta tehnologija postala glavni tok razvoja procesora jer su
Intel i AMD ponudili veci broj komercijalno dostupnih procesora sa vecim brojem
jezgara.
Bilo je dosta predvidanja o tome koliko ce biti jezgara unutar jednog procesora, kao primer navodim jedno iz 2008 godine (R. Merritt, CPU Designers Debate Multi-core Future, EETimes Online, February 2008, http://www.eetimes.
com/showArticle.jhtml?articleID=206105179) koje kaze da ce do 2017. go1

dine ugradeni sistemi brojati do 4096 jezgara, serverski procesori 256, a desktop
racunari bi mogli brojati 128 jezgara.

Broj jezgara kroz istoriju


Sledi lista nekih procesora. Izabrao sam Intel kao prezentujuci uzorak.
Procesor
Intel Pentium
Intel Pentium PRO
Intel Pentium MMX
Intel Pentium II
Intel Celeron
Intel Xeon
Intel Pentium III
Pentium 4
Pentium Extreme Edition
Pentium M
Pentium D/EE
Intel Core
Intel Pentium Dual Core
Intel Core 2
Intel Atom
Intel Core i7
Intel Core i5
Intel Core i3
Intel Core i7
...
Intel Core i7-5960X

Vreme proizvodnje
1993 - 1999
1995 - 1998
1996 - 1999
1997 - 1999
1998 - danas
1998 - danas
1999 - 2003
2000 - 2008
2000 - 2008
2003 - 2008
2005 - 2008
2006 - 2008
2006 - 2009
2006 - 2011
2008 - danas
2008 - danas
2009 - danas
2010 - danas
2011 - danas
...
2014-danas

Broj procesora
1
1
1
1
1,2
1,2,4,6,8
1
1
1
1
2
1,2
2
1,2,4
1,2
4
2,4
2
4,6,8
...
8

Posmatrajuci broj jezgara u listi kucnih (poslovnih) racunara vidimo da se ne


desava nista narocito interesantno, napredak se dogadao u kvalitetu tih jezgara, a
broj jezgara je slican. Ne ulazeci u dublju raspravu o kvalitetu jezgara, razlozima
veceg broja, itd. sledi lista malo zanimljivijih procesora (ne koriste se svi za
racunare):
Procesor
AMD Radeon
and FireStream multi-core GPU/GPGPU
ASOCS ModemX
Azul Systems Vega 1
Azul Systems Vega 2
Azul Systems Vega 3
Azul Systems CSX700
IBM Xenon
Kalray MPPA-256
2

Broj jezgara Napomena


10
128
24
48
54
192
3
256

proizveden 2005
proizveden 2006
proizveden 2008
proizveden 2008
Koristen za Xbox

Osim veceg broja jezgara unutar procesora, razlikuju se i procesori sa homogenim


i heterogenim jezgrima.
Ukoliko su jezgra deo homogenog okruzenja to znaci da su sva jezgra unutar
procesora jednaka, sto pojednostavljuje postupak izrade procesora koristi se isti
skup naredbi, iste funkcije, iste memorije... ali je pitanje da li je to najefikasnije
resenje.
Kod heterogenih sistema prednost je sto bi svako jezgro moglo da vrsi poseban
skup instrukcija na najefikasniji nacin.

Zaklju
cana jezgra
Proizvodaci neke svoje modele procesora prodaju sa limitiranim performansama
tako sto procesori rade na manjoj frekvenciji nego su u mogucnosti, ili pojedina
jezgra su neaktivna tokom rada procesora. Postoji vise razloga za ovakav pristup:
dogada se da se neki model (zbog potrebe da se isprati konkurencija) mora pojaviti
na trzistu, a proizvod nije u stabilnoj fazi. Primer takvih procesora su Phenom II
X3/X2 i Athlon II X3, kod njih je bila zakljucana L3 kes memorija i jezgro zbog
toga sto su sa maksimalnim performansama dovodili do nestabilnosti sistema.
AMD je poznat po tome da zakljucava neka jezgra na svojim procesorima kada je
znatno veca potraznja za procesorima sa manje jezgara. Postoje razne tehnike za
otkljucavanje tih jezgara, kao i povecanje frekvencije procesora (ukoliko je procesor
sposoban to da podnese). Sa druge strane, i Intel se koristi slicnim tehnikama, ali
su Intelovi procesori, u praksi, komplikovaniji za otkljucavanje.

Paralelno programiranje
Posto razvoj hardvera ide u pravcu povecanja jezgara procesora, postavljaju se
i novi zadaci pred ljude koji razvijaju softver. Potrebno je sto bolje iskoristiti
raspolozive resurse, a to podrazumeva u programiranju koristiti tehnike koje ce
izvrsavanje programa ravnopravno rasporediti po svim jezgrima procesora. Da
bi se to postiglo, potrebno je koristiti niti, pri cemu se mnogo cesce dolazi gresaka
koje nije lako uociti. U maju 2007. godine, Shekhar Borkar je izjavio da i softver
treba da prati Murov zakon, u smislu da se svake dve godine udvostruci podrzanost
paralelizma. Do nedavno (2010. g.) je mali broj aplikacija potpuno iskoriscavao
potencijal hardvera.
Na sledecim slikama se moze videti razlicita iskoriscenost dostupnih resursa
u zavisnosti od kvaliteta softvera (kao i mogucnosti da se odredeni posao paralelizuje).

Slika 1: Losa iskoriscenost dostupnih resursa

Slika 2: Zadovoljavajuca iskoriscenost dostupnih resursa

Slika 3: Odlicna iskoriscenost dostupnih resursa


Kada rade istovremeno, vise jezgara unutar procesora mogu uveliko ubrzati rad
vise procesa, ili bar odredene delove nekog procesa. To se naziva task threading
ili jednostavno threaded execution, kada se delovi posla izvrsavaju u razlicitim
nitima paralelno. Ako je racunar konfigurisan tako da optimizuje performanse koristeci vise jezgara procesora, sve vise i vise aplikacija ce se izvrsavati brzinom koja
je proporcionalna broju jezgara u racunaru. To znaci da je moguce da ce se neki
program na 8-jezgarnom sistemu izvrsavati oko 4 puta brze nego na dvojezgarnom.
Stvarno ubrzanje koje se postize na visejezgarnim sistemima znacajno zavisi
i od ogranicenja koja postavlja memorija (vise jezgara se nadmece da pristupi
memoriji), sinhronizacije razlicitih niti, ali i od sposobnosti programera nije lako
pisati kod koji treba da podrzava veci broj procesora istovremeno. Takav kod je i
sklon greskama koje se teze uocavaju, sto smanjuje garanciju da ce program raditi
korektno. Neki programi ce raditi istom brzinom na jednojezgarnom, dvojezgar5

nom, ili procesoru sa vise jezgara, jer se neki poslovi ne mogu paralelizovati. Zbog
slozenosti pisanja programa koji ce se izvrsavati priblizno N puta brze na procesoru
sa N jezgara u odnosu na jedno jezgro, i dalje veliki broj aplikacija neke poslove
ne izvrsava optimalnom brzinom. Primer je cuvanje fajla u Photoshop programu,
gde taj proces izvrsava samo jedno jezgro, a osim toga od korisnika se zahteva da
ceka dok se ta operacija izvrsi dok u tom periodu ne moze da koristi program,
iako nema jasnog razloga zasto korisnik ne bi mogao da obraduje jednu sliku dok
se druga cuva na disk. Verovatno ce u buducnosti ovakvi problemi biti kvalitetnije
reseni, kada cemo moci potpuno iskoriscavati dostupne resurse racunara.

Izvori
http://www.tomshardware.co.uk/forum/318101-28-which-maximum-cores-cores
http://www.csa.com/discoveryguides/multicore/review6.php#hom
http://www.csa.com/discoveryguides/multicore/review2.php
https://software.intel.com/en-us/articles/parallel-programming-with-c?
language=ru
http://msdn.microsoft.com/en-us/library/ms228963%28v=vs.110%29.aspx
http://macperformanceguide.com/Optimizing-Cores.html

You might also like