Upload
benam-hodzic
View
60
Download
0
Tags:
Embed Size (px)
DESCRIPTION
seminarski rad procesori
Citation preview
0
TEHNIĈKA ŠKOLA RUĐERA BOŠKOVIĆA
GETALDIĆEVA 4, ZAGREB
PROCESORI
UĈENIK: Jurica Galović
RAZRED: 4.H
U zagrebu, 22. oţujka 2011.
1
SADRŢAJ:
1. UVOD…………………...……….............………..………………...……...2
2. RAD…………………...………................……..…………………...……...4 1. Povjesni razvitak procesora.........................................................................................4
1.0 Uvod u povjest procesora..................................................................................4
1.1 Brz razvitak procesora.......................................................................................5
1.2 Priruĉne ( cache ) memorija...............................................................................7
1.3 Povjest procesora u superraĉunalima...............................................................11
1.4 Arhitektura seta instrukcija..............................................................................12
2. Tipovi, oznake i karakteristike procesora.............................................................14
2.0 Tipovi procesora..............................................................................................14
2.1 Karakteristike procesora..................................................................................15
2.2 Oznake procesora............................................................................................18
3. Višejezgreni procesori...............................................................................................19
3.0 Što je višejezgreni processor?.…….....….……....……....…….......................19
3.1 Razlike izmeĊu jednojezgrenih i višejezgrenih procesora...............................20
3.2 Loše strane višejezgrenih procesora.................................................................21
3.3 Dobre strane višejezgrenih procesora...............................................................22
3.4 Zakoni povezani s višejezgrenim procesorima.................................................23
3.4.0 Mooreov zakon.............................................................................23
3.4.1 Amdahlov zakon...........................................................................24
3.5 Noviteti uvedeni višejezgrenim procesorima...................................................25
3.6 Problemi koji ĉekaju rješenje...........................................................................25
3.6.0 Vrijeme pristupa memoriji............................................................26
3.6.1 Paralelno programiranje................................................................26
3.6.2 Suša podataka................................................................................26
3.6.3 Homogenost i heterogenost jezgri.................................................27
3. SAŢETAK….…...………..…………………………….…..……….…..…28
4. LITERATURA….…...…...…..………………..………….……………….29
2
UVOD
Da bi se procesori, kvalitetniji od manje kvalitetnih, mogli razlikovati postoje tipovi, oznake i
karakteristike procesora. U današnjim trgovinama vidimo enormne razlike u cijeni procesora, a ĉesto nam
njihova imena i karakteristike ništa ne znaĉe, mislimo da ako kupujemo skuplje kupujemo i bolje, no to nije
uvijek sluĉaj. Za raspoznavanje i pravljenje selekcije izmeĊu dobrih i onih lošijih procesora se sluţimo sa
tipom procesora, njegovim karakteristikama i oznakama. Većina ljudi koji kupuju raĉunalo ne znaju koliko
je CPU ( procesor ) u stvari bitna komponenta i ne znaju raspoznati izmeĊu dobrih i loših procesora.
Većinom se tipovi procesora dijele na po mnogima glavnu podjelu CPU-a po tipu na power CPU ( vaţna je
snaga procesora i analogno tome je skuplji, ali vjerojatno i kvalitetniji ) i budget CPU ( vaţna je cijena
procesora, traţi se ekonomiĉnije riješenje ). Druga vrlo vaţna podjela je ta po tipu socketa kojeg neki
procesor koristi jer ako imamo procesor, a nemam odgovarajuće podnoţje, taj procesor nam ne vrijedi ništa
jer ga mi nećemo biti u mogućnosti koristiti. Karakteristike procesora nam govore kakv je taj dotiĉni
procesor. U većini sluĉajeva, bar što se procesora tiĉe što su veći bojevi u njegovim karakteristikama znaĉi
da je taj procesor bolji, brţi, jaĉi i sve što se još od njega oĉekuje. U karakteristike spadaju brzina sabirnice
( FSB- Front Side Bus ), cache memorija ( L1, L2, L3 ), clock mnoţitelj, napon napajanja, napon U/I
jedinica, broj tranzistora, veliĉina internog registra ( u bitovima ) i još mnoge druge, no te su najosnovnije
karakteristike. Oznaka procesora je njegovo ime koje sadrţi ime firme koja je proizvela taj procesor i naziv
modela tog procesora ( npr. AMD Athlon ) uz koji još moţe biti dodatna šifra ( broj modela ) koja oznaĉava
da je to noviji/stariji model toga istog modela procesora ( npr. AMD Athlon 1500+ ).
Potreba za jaĉim i brţim procesorima jaĉala je sa usavršavanjem drugih komponenti koje su za
izvoĊenje svojih instrukcija i procesa zahtjevale bolje procesore, tj. brţe izvoĊenje naredbi. Najveći trag u
procesorskoj povijesti ostavila je tvrtka Intel sa svojim 32 bit-nim procesorom Intel 80386 1985. Godine,
koji je takoĊer prvi 32 bit-ni procesor u povijesti i sa Intel Pentium procesorima koji su raĉunalu olakšali
povezivanje „stvarnog svijeta“ kao govor, zvuk, fotografije i rukopis i ubrzo postali svjetski poznati brand,
te tvrtka IBM koja je uvela prvi 64-bitni procesor već 1961. godine. 1971. godine proizveden je
mikroprocesor 4004 koji je oznaĉio poĉetak ere procesora, slijedeće godine na trţište je izašao
mikroprocesor 8008 koji je bio duplo jaĉi i brţi od 4004. 1974. godine izašao je Intel 8080 koji je postao
mozak prvog PC-a Altair. 1985. godine izašao je prvi 32-bitni procesor Intel 80386 koji je imao 100 puta
više tranzistora od mikroprocesora 4004 te je mogao obavljati „multi-tasking“. 1989. godine, izašao je
Intel486™ DX CPU mikroprocesor koji je prvi procesor koji je ponudio da se matematiĉki koprocesor
ugradi u njega kako bi olakšao matematiĉke funkcije izvoĊene u CPU-u i tako ubrzao rad raĉunala. 1993.
godine izašao je prvi Intel procesor sa Pentium oznakom. 1995. godine Intel® Pentium® Pro procesor je
prvi procesor koji ima cache memoriju koja dodatno ubrzava rad procesora. 2000. godine izašao je procesor
koji će promijeniti cijelu povijest procesora, Intel® Pentium® 4, uveo je mnoge nove procedure kao što su:
istovremeni rad više multimedijskih programa i interneta, dekodiranje glazbe za MP3, raĉunalo moţe
izraditi kvalitetni video i mnoge druge znaĉajke.
64-bitni procesori postoje još od 1970-ih u superraĉunalima Cray-1 ( 1975.g ), CDC 6000 Series ( 1964.g,
60-bitni ). Sredinom 1990-ih neke tvrke ( HAL Computer Systems, Hawlett Packard, IBM, Silicon Graphics
) su razvile arhitekturu i tehnologiju 64-bitne radne stanice. 2006. godine u proizvodnju je izdan prvi
dvojezgreni procesor. On radi na temelju virtualnih jezgri, zapravo nema dvije jezgre, već je jedna jezgra
podjeljena na dvije virtualne kako bi se procesi i zadaće procesora podijelile i brţe izvodile. U današnje
vrijeme se koriste Quad Core procesori koji se sastoje od dva procesora od kojih je svaki podijeljen na dvije
3
jezgre. Povjesni razvoj procesora je bio iznimno brz, naime procesori su u 30 godina sa brzine od 108kHz
došli na brzinu od 5GHz, da se automobilska industrija tako razvijala sada bi od San Francisca do New
Yorka doputovali za 13 sekundi ( 2500km ).
Teško je povjerovati da se sve do nedavno nije uopće niti znalo za pojam višejezgreni procesori jer
oni tada nisu ni postojali. No u današnje vrijeme teško je zamisliti procesor koji nije višejezgreni jer se takvi
gotovo pa i ne proizvode više. Kada kaţemo rijeĉ procesor, prvo pitanje koje nam padne napamet je koliko
je jezgreni i da li je Intel-ov ili AMD-ov. Do prije svega par godina bio je luksuz imati višejezgreni
procesor, a danas se taj luksuz pretvorio u komercijalu, tj. ĉesto se samo nabijaju jezgre procesorima jer je
ljudska zabluda da procesor koji ima više jezri je nuţno bolji, brţi i snaţniji. U ovom radu probat ću saznati
da li je to istina, ili pak s druge strane nije i da li ovisi o više faktora. Svakim danom se nove tehnologije i
novi trendovi razvijaju u vezi višejezgrenih procesora, kao i ostatka raĉunalnih komponenti. Višejezgreni
procesori su podignuli mnogo prašine u raĉunalnom svijetu, no donjeli su i mnoga pitanja, mnoge nove
kvalitete, mnoge nove izazove kako za raĉunalne arhitekte tako i za programere. Naravno da je bolje imati
što više jezgra jer se posao tada dijeli na više manjih dijelova i izvodi se brţe. No da li se izvodi brţe
onoliko puta koliko ima jezgri i da li je toliko puta snaţniji, toliko puta skuplji i tako u nedogled... Na ta i još
neka pitanja ću pokušati dati adekvatan odgovor u ovom seminarskom radu.
4
1. Povjesni razvitak procesora
1.0 Uvod u povjest procesora
Kao što znamo procesor je glavni dio raĉunala koji provodi aritmetiĉke i logiĉke operacije i dio bez
kojega nijedno raĉunalo nebi imalo svrhu. Povjest procesora seţe od 1970-ih godina i povezana je sa
sadašnjošću jer bez te povjesti i razvitka nebi imali mogućnosti koristiti današnja raĉunala na naĉine na koje
ih koristimo ( raĉunalne igre, profesionalna upotreba, razni player za filmove, glazbu, itd. ) 1970-ih godina
raĉunala su još bila monstruoznih proporcija i zahtjevala cijelu veću sobu za mogućnosti hlaĊenja i
normalnog rada. Potrebni su bili najbolji tehniĉari svijeta da ih upravljaju i odrţavaju. U to vrijeme CPU
( Central Processing Unit ) je bio veliĉine današnjih hladnjaka i pun ploĉa sa strujnim krugovima koji su bili
popunjeni tranzistorima. Centralna je jedinica jer sva memorija i ulazno/izlazne jedinice moraju biti
povezane sa CPU-om. Procesna jedinica se naziva iz razloga što procesuira ( provodi ) sve zadaće koje su
potrebne da raĉunalo radi ispravno. Na slici je prikazan ENIAC, prvo raĉunalo koje su ljudi koristili,
zahtjevalo je cijelu prostoriju samo da bi moglo raditi i ta prostorija je trebala biti strogo odrţavana i
klimatizirana.
Nedavno, prije 1970. godine su se elektronske cijevi zamijenile sa tranzistorima koji su sluţili za mijenjanje
stanja, te tada tehnologija nije bila dovoljno razvijena da bi se tranzistori dodatno smanjili i bilo je
nezamislivo da tisuće, pa i milijuni tranzistora stanu na malu elektriĉnu ploĉu, tj. ĉip kao u današnje
vrijeme.
5
Jedno od prvih raĉunala koje je koristilo tranzistore za mjenjanje stanja bilo je EDVAC. Generelano
raĉunala sa tranzistorima su pouzdanija, ali su sporija, no kada bi se uzelo u obzir da je tada izmena samo
jedne komponente trajala i do osam sati, pouzdana raĉunala su bila puno poţeljnija od brţih. Na slici je
prikazan matematiĉar John Von Neumann koji je 1940-ih zajedno sa druga dva matematiĉara J. Presper
Eckert-om i John Mauchly-em smislio prvi koncept digitalnog raĉunala sa spremljenim instrukcijama. Prije
toga otkrića raĉunala su bila programirana tako da prespajaju svoje elektriĉne krugove i tako obavljaju istu
operaciju više puta.
CPU je komponenta raĉunala koja doziva podatke i instrukcije iz memorija raĉunala i provodi
instrukcije u smislu manipuliranja i kontroliranja podataka sa kojima radi. Za takav proces ( manipuliranja i
kontroliranja ) potrebno je dozivanje instrukcija i naĉin na koji procesor doziva instrukcije je programsko
brojilo ( PC-Program Counter ) koje sadrţi adresu slijedeće instrukcije koja se treba izvršiti. PC radi krug u
kojem iz memorije vraća instrukcije u programsko brojilo. Zatim opet radi krug i donosi podatke iz
memorije potrebne za izvršavanje zadane instrukcije,te na kraju sprema rezultat u zadanu adresu u memoriji.
PC je povezano sa adresom slijedeće instrukcije te objašnjeni krug zapoĉinje ponovo za tu slijedeću
instrukciju.
1.1 Brz razvitak procesora
1971. godine dok su još vladala raĉunala ogromnih proporcija u Silikonskoj dolini u blizini San
Francisca, mala firma je dobila posao da za Busicom napravi integrirani krug. Završeni projekt nije bio
monstruozno raĉunalo prepuno ţica tipiĉno za tadašnja raĉunala već za tadašnje vrijeme netipiĉni,vrlo
maleni ĉip nalik današnjima. To je bio CPU koji je bio programibilan da izvodi gotovo sve operacije. Takav
dizajn je zahtjevao puno vremena i novaca, no isplatio se i 1971. godine velike procesore je zamijenio 4004
mikroprocesor sa instrukcijama spremljenim u zasebnom ROM ( Read Only Memory-memorija koja se
moţe samo ) ĉipu. Ako je bio potreban drugaĉiji ĉip samo se trebao programirati novi ROM ĉip. Takvu je
revoluciju pokrenula gigantska firma Intel.
6
4004 mikroprocesor je bio 4-bitni, znaĉi da nam je omogućavao raĉunanje sa 16 brojeva, takvo raĉunanje u
današnjici nije dovoljno te su se procesori vrlo brzo razvijali. Na slici ispod prikazana je unutrašnjost i
vanjština mikroprocesora 4004.
Drugi problem je taj što procesor takoĊer izvršava još jednu vrstu raĉunanja, a to je da procesor mora
izraĉunati gdje u memoriji se nalaze instrukcije koje on mora izvršiti ( mora izraĉunati memorijske lokacije).
Zbog toga raĉunanja je došlo do potrebe za povećanjem broja bitova u procesorima te se u sadašnjosti
većinom koriste 32-bitni i 64-bitni procesori.
Prvi 8-bitni procesor izašao je 1972. godine, takoĊer ga je proizveo Intel i nazvan je Mikroprocesor 8008.
Bio je dvostruko jaĉi i brţi od svoga prethodnika Mikroprocesora 4004. Mikroprocesor 8008 bio je
ograniĉen na 16 kilobita adresnog prostora, no u tadašnje vrijeme nitko si nije mogao priuštiti toliko RAM-a.
1974. godine Intel je na trţište izbacio procesor koji će revolucionarizirati razvitak procesora, taj procesor je
Mikroprocesor 8080 koji je imao 64 kilobajta memorijskog prostora i povećao je efikasnost procesora deset
puta prema 8008 mikroprocesoru. U tadašnje vrijeme Motorola je takoĊer proizvela svoj mikroprocesor,
nazvan 6800 koji je imao sliĉnosti sa Intelovim 8080 mikroprocesorom. 8080 je postao kralješnica oko koje
su se razvijali svi budući procesori te je 1979. godine doveo do 16-bitnog Intel 8088 mikroprocesora koji se
koristio u prvom kućnom raĉunalu ( PC-Personal Computer ) koje je proizveo IBM, dok je motorolin 6800
bio korišten u Apple II Personal Computer.
No godinu prije, 1978. godine, proizveden je Intele 8086 koji je imao jedan megabajt memorijskog
adresiranja te je procesor mogao puno brţe pronaći potrebnu adresu podatka i instrukcije, analogno tome i
procesi su se brţe odvijali. Navedeni procesori su procesori prve generacije. Na slici je prikazan Intel 8080
mikroprocesor.
7
1.2 Priruĉna memorija
Iako su se procesori, njihova brzina i memorijski prostor vrlo brzo razvijali, problem je stvarao
razvitak memorije, koji je bio znatno sporiji od razvitka memorije i brzine procesora. Velike, nisko-
naponske memorije nisu mogle doseći brzinu kao veliki RAM ĉipovi. Da bi brzi mikroprocesori mogli raditi
bez da ih memorija koĉi, inţenjeri su umetali par malenih i brzih memorijskih ĉipova izmeĊu glavne RAM
memorije i mikroprocesora. Namjena tih malenih memorijskih ĉipova je bila da zadrţe instrukcije koje će
procesor koristiti više puta. Ta, malena memorija se naziva cache memorija i omogućava mikroprocesoru da
radi punom brzinom. Što je veća priruĉna memorija, veći postotak priruĉne memorije se koristi i
mikroprocesor će biti u stanju raditi brţe. Kad se neka instrukcija ne nazalzi u priruĉnoj memoriji, tada
mikroprocesor mora tu instrukciju pronaći u glavnoj memoriji raĉunala i izvršiti ju, za vrijeme pronalaska te
instrukcije mikroprocesor stoji i ĉeka. Prvi procesor koji je imao eksternu (Level 2 ) priruĉnu memoriju bio
je Intel Pentium Pro. Ideja i potreba za priruĉnom memorijom je rasla proporcionalno sa zahtjevima i
karakteristikama raĉunala i procesora. Primjerice, Intel Pentium 4 mikroprocesor ima dva megabajta
priruĉnog RAM-a ugraĊenog u ĉip, što je više nego duplo veća svota od cijele adresne memorije 8088
mikroprocesora koji je korišten u prvom kućnom raĉunalu, IBM-ovom PC-u.
1969. godine utemeljena je firma koja je u današnjici glavni konkurent Intel-u, tzv. AMD ( Advanced
Micro Devices ). Tvrtka je zapoĉela svoj rad kao proizvoĊaĉ logiĉkih ĉipova, te je 1975. godine ušla u posao
RAM ĉipova i mikroprocesora. U veljaĉi 1982. godine AMD je potpisao ugovor sa Intel-om i tako postao
licencirani proizvoĊaĉ 8086 i 8088 mikroprocesora. Vaţan podatak za razvitak AMD-a je taj da je 1985.
godine potpisao ugovor sa ATI firmom koja proizvodi grafiĉke kartice i grafiĉka suĉelja te tako podigla
svoju zaradu za vrlo veliku svotu i omoguć ila si brţi razvitak i uhvatila korak sa Intel-om.
8
Ali vratimo se na opću povjest procesora. 1985. godine Intel je na trţište izbacio svoj Intel 80386
mikroprocesor koji je imao 100 puta više tranzistora od mikroprocesora 4004 te je bio prvi mikroprocesor
koji je imao mogućnost obavljati „multi-tasking“. Sa tom mogućnošću je ubrzana brzina mikroprocesora jer
je mikroprocesor obavljao više instrukcija istovremeno.
U stvarnosti, raĉunalo ne izvršava više programa istovremeno, već naše raĉunalo radi tako brzo da obavlja
svaki program kratki period vremena, a zatim prelazi na izvršavanje instrukcija slijedećeg programa, pa
slijedećeg, itd. i tako dok se ne izvrše instrukcije u programima koje koristimo ili dok taj program ne
iskljuĉimo. Prije Intel 80386, ili kako se kraće naziva 386 mikroprocesora, da bi se izvršavao „multi-
tasking“, software je trebao biti posebno programiran, ali takvi software-i u stvarnosti bi rijetko funkcionirali
kako je za njih to bilo planirano i kako bi trebali raditi po kodu koji je bio napisan za njih. Mikroprocesor
386 mogao je zaustaviti program dok je on bio u uporabi i preći na izvršavanje drugog programa, te se
poslije vratiti na poĉetni program i nastaviti rad od toĉke gdje ga je zaustavio kao da se nije ni zaustavljao taj
program. Takav naĉin „multi-tasking“-a se naziva preventivni multi-tasking i otvorio je put operacijskim
sustavima kao što su Microsoft Windows,Linux i mnogi drugi.Mikroprocesor 80386 je takoĊer bio prvi 32-
bitni mikroprocesor izbaĉen u proizvodnju. Intel486™ DX CPU mikroprocesor je prvi mikroprocesor koji je
imao ugraĊen matematiĉki koprocesor koji je znatno ubrzavao izraĉunavanje memorijskih adresa itd. i prvi
koji je imao preko jednog milijuna tranzistora u sebi. Predstvalja ĉetvrtu generaciju binarno kompatibilnih
mikroprocesora.
1997. godine Intel je „upoznao“ svijet sa novitetom, MMX karakteristikom u Pentium II
mikroprocesoru. Koristi je tzv. SIMD ( Single Instruction,Multiple Dana ) tehnologiju dizajniranja. Na
Intelov Pentium II MMX mikroprocesor AMD je uzvratio sa 3Dnow! SIMD dizajnom. Slijedeće godine
Intel je na trţište izbacio Intel Pentium III koji je koristio SSE SMD dizajn koje su još poboljšale MMX
dizajn sa registrima koji su dosezali do 128 bita, što ne znaĉi da je procesor bio 128-bitni!! Vaţno je znati da
SIMD nije „multi-tasking“, nego ga samo vrsni programer moţe napisati koristeći specijalne instrukcije.
Podaci moraju biti striktno organizirani da bi mogli biti pohranjeni u SIMD registre.2003. godine VIA
Technoligies je poĉeo razvijati 64-bitnu tehnologiju.
9
Poĉeli su od nule, tj. poĉeli su bez ikakvih podataka o arhitekturi, dizajnu, itd. i 2008. godine, nakon pet
godina razvijanja i istraţivanja, njihov odjel za procesore ( Centaur Technology ) na trţište je izbacio VIA
NANO procesor koji je prvi 64-bitni procesor za kućna raĉunala ( PC ). Na slici ispod prikazan je VIA
NANO procesor.
U novom milenijumu posebno se istraţuju tranzistori i napajanje procesora, tj. smanjenje njihovih
dimenzija, odnosno iznosa. Tvrtke poput Intel, AMD i VIA Technologies centraliziraju svoje resurse na
istraţivanje boljih performansi i napajanja procesora. Procesori su uvijek bili veliki potrošaĉi struje, a za to
je bilo potrebno i veliko napajanje. Veliki se novci ulaţu u istraţivanja kojima je svrha smanjiti potrošnju
procesora ( bolje iskoristiti postojeće napajanje ), a istovremeno odrţati njegove karakteristike i
performanse.
Kao što sam već prije spomenuo, manje memorije se adresiraju brţe, ĉak i fiziĉka veliĉina memorije
moţe smanjiti brzni adresiranja. Inţenjeri mikroprocesora su odluĉili priruĉnoj memoriji dodati njezinu
priruĉnu memoriju i tako još povećati priruĉnu memoriju za pohranjivanje instrukcija. Sada imamo tzv. L1 i
L2 priruĉnu memoriju. Veća, L2 priruĉna memorija je uobiĉajeno ona memorija koju išĉitavamo sa
karakteristika procesora kada ga kupujemo. Malen broj vrlo kvalitetnih procesora, kao Intel Itanium II je
imao 3 priruĉne memorije. Treba znati da brojevi koje dobijemo o priruĉnoj RAM memoriji i broj slojeva
koliko ih ima ne znaĉe toliko o njezinom radu i kvaliteti, dokaz tome je taj što Intel-ovi super clockani
procesori nemaju tolikonadmoćne performanse nad ostalima, analogno toj tvrdnji ni procesori sa više
priruĉne RAM memorije ili više slojeva priruĉne RAM memorije neće tako znaĉajno utjecati na rad i brzinu
procesora kako mi to mislimo, nema proporcionalnosti. Na slici je prikazana shema AMD-ovog 64-bitnog
procesora sa 2-slojnom priruĉnom RAM memorijom.
10
L1- a) instrukcijska priruĉna memorija
b) podatkovna priruĉna memorija
L2- karakteristiĉna priruĉna memorija
Priruĉna memorija je bila prijeko potrebna u raĉunalima da bi ona brţe funkcionirala jer su se procesori
( pogotovo frenkvencija njihovog rada ) znatno ubrzali svoj rad dok je brzina memorija bila skoro na
poĉetku. Procesori sa svojom brzinom su ĉekali memoriju, znatno su brţe radili nego otvaranje memorije, te
i danas takoĊer znatno brţe rade, ali se taj jaz izmeĊu brzine memorije i procesora smanjio tako što se uvela
priruĉna memorija koja je znatno brţa od obiĉne memorije raĉunala. Koristi se puno sporije memorije u
kombinaciji sa malo priruĉne memorije kako bi se brzina procesora i memorije dovela do manjih razlika,
iako su one i dalje velike.
11
1.3 Povjest procesora u superraĉunalima
Povjest superraĉunala seţe još od doba ENIAC-a koji je koristio elektronske cijevi koje su tranzistori
iskorijenili iz upotrebe. Danas, superraĉunala i dalje zauzimaju veliĉinu velike sobe, ali u današnje vrijeme
karakteristike superraĉunala su daleko bolje i raĉunala su puno naprednija nego prije. Procesori u
superraĉunalima su najvaţniji dio jer superraĉunala su dobile svoj prefiks super zato što izraĉunavaju
enorman broj instrukcija i izraĉuna. Najbrţe raĉunalo svijeta je Jaguar XT5. Proizveo ga je Cray, koji je
takoĊer proizveo i Cray-1 i Cray-2 superraĉunalo. Jaguar XT5 koristi AMD Opteron 2435 procesor, njih
preko 150 tisuća. 2010. godine napravljeno je superraĉunalo koje je brţe od Jaguar XT5 superraĉunala,
napravili su ga kinezi i nazvali Tianhe-1A koje je proglašeno najjaĉim raĉunalom svih vremena i uvršteno u
TOP500 superraĉunala svih vremena. Na slici je prikazano Jaguar XT5 superraĉunalo Oak Ridge
nacionalnom laboratoriju u Sjedinjenim Ameriĉkim Drţavama.
IBM je ušao u projekt nazvan Cyclops64 arhitektura kojemu je cilj napraviti superraĉunalo na samo jednom
ĉipu, iako mnogi misle da je to samo nadobudna fantazija. Najveću ulogu u proizvodnji superraĉunala imala
je tvrtka IBM koja ih je najviše proizvela i par puta bila na vrhu sa najbrţim superraĉunalom svijeta. Većina
superraĉunala koriste Intel-ove procesore, tj. mikroprocesore, iako se u zadnje vrijeme sve više i više koriste
AMD-ovi procesori.
12
1.4Arhitektura seta instrukcija
Još jedan vaţan podatak je taj da procesor koristi arhitekturu seta instrukcija x86 koji je kralješnica
svih ostalih arhitektura instrukcijskih setova kao x86-64,x87,IA-32,P6,MMX,SSE,SSE2,SSE3, SSSE3,
SSE4,SSE5,AVX. Prvi put x86 je uveden sa Intelovim 16-bitnim procesorom Intel 8086 1978. godine.
Naziv, tj. broj 86 je nastao tako što su prijašnji Intel-ovi procesori 8086 koji su bili vrlo uspješni, te je tako
dodjeljen naziv tome setu instrukcija. Mnogi su se dodaci dodavali setu instrukcija x86, ali on je uĉinjen
kompatibilnim za sve procesore i sa tim dodanim instrukcijama.
Arhitektura korištena u x86 primjenjena je u u procesorima od Intel, AMD, VIA, i mnoge druge firme. U
nadogradnjama kao x86-16, x86-32 i x86-64 prvi nam broj govori da se radi o x86 arhitekturi seta
instrukcija, a drugi nam broj govori koliko je bitni instrukcijski set ( 16-bitni, 32-bitni ili 64-bitni ). U
današnje vrijeme arhitektura seta instrukcija x86 se koristi u kućnom, ali i u prijenosnom raĉunalu
( laptopu ). Većina operacijskih sustava kao DOS, Windows, Linux, BSD, Solaris i Mac OS Xpodrţavaju
x86-bazirane softweare-e.
Na slici dolje prikazan je Intel 8086 mikroprocesor koji je prvi mikroprocesor koji je koristio arhitekturu
seta instrukcija x86.
Danas procesori sa x86 arhitekturom seta instrukcija instrukcije rastavljaju na više manjih dijelova koji se
tada predaju upravljaĉkoj jedinici koja ih rasporeĊuje u skladu sa x86 arhitekturom, takav dizajn se naziva
superskalar. Današnja arhitektura se razlikuje većinom u prijevodu instrukcija u mikro-operacije koji se
danas dogaĊa asinkrono.
Procesori su komponente bez kojih bi raĉunala, a i naše strpljenje bilo na velikom iskušenju, i jako bi
dugo ĉekali da se i najjednostavnija matematiĉka jednadţba riješi. Vjerojatno bi ju prije mi riješili u glavi,
13
nego kalkulator sa lošim procesorom. Procesori nas okruţuju, svaki ureĊaj ili mašina koja obraĊuje neke
podatke ima u sebi ugraĊen procesor i bez procesora bi bila beskorisna isto kao i ljudi bez svojega
„procesora“,tj. mozga.
14
2. Tipovi, oznake i karakteristike procesora
2.0 Tipovi procesora
Procesori su podjeljeni u tipove kako bi lakše sa njima baratali i kako bi lakše znali što moţemo
oĉekivati od procesora kojeg imamo, što od nekog drugog, a što od onog kojeg namjeravamo u budućnosti
imati. U svrhu toga jedna od podjela procesora je na power CPU i na budget CPU koje sam u uvidu već
spomenuo. Power CPU tip procesora se odnosi i oslanja na njegovu snagu, bez obzira na cijenu i bilo što
drugo, dakle u toj podjeli su vaţne samo performanse procesora ( npr. Intel Core 2 Quad,AMD Phenom
Quad ) dok je kod budget CPU tipa najvaţnije ekonomiĉnost i cijena procesora u skladu sa njegovim
performansama ( npr. Intel Celeron, AMD Sempron ), dakle cilj je dobiti što bolji procesor za što manju
potrošnju ( struje, novaca, i drugi razlozi koji su pojedincu vaţni ). To je bila najprostija podjela tipova
procesora.
Procesori se takoĊer mogu podjeliti i po vrsti socketa ( podnoţja za procesor ) kojeg koriste. Naime,
odreĊeni procesor ima odreĊene nastavke i odreĊene je veliĉine, pa po toj logici ne moţe biti umetnut na
svaki socket na matiĉnoj ploĉi. Svaka matiĉna ploĉa ima po jedan socket. Vrste socketa se mijenjaju
popriliĉno brzo, većinom kada nova generacija procesora izaĊe na trţište. Ĉak i ako procesor fiziĉki stane na
socket to nije garancija da će on funkcionirati jer je potreban odreĊen software da bi procesor funkcionirao
na tom odreĊenom socketu. Po takvoj podjeli na tipove procesora postoji 18 socketa koje koriste sve vrste
procesora, naravno ne koriste svi procesori isti socket, tj. isto podnoţje za procesor. Primjerice Intelovi
procesori većinom koriste Socket T, Slot 1 i Socket 370, dok AMD procesori većinski koriste Socket A,
Socket AM2+ i Socket AM3. Iako postoji još dvanaest vrsta socketa po kojima se dijele tipovi procesora
ovih šest nabrojanih su najvaţniji i najupotrebljavaniji u današnjici što nije garancija da će oni takvi biti i u
budućnosti.
Slijedeća velika podjela o kojoj sam poĉeo pisati u uvodu su ARM tipovi. Naime, ARM je tvrtka
koja je procesore poĉela proizvoditi u travnju 1985. godine na samom poĉetku procesora i osobnih raĉunala.
ARM tipovi su slijedeći: ARM1 ( v1 ), ARM2 ( v2 ), ARM3 ( v2as2 ), ARM250 ( v2as2 ), ARM250
mezzanine, ARM4 i ARM5, ARM610 ( v3 ), ARM710 ( v3 ), ARM7500, ARM7500 FE,
StrongARM/SA110 ( v4 ) i SA1100 variant. Svi ARM procesori su 32-bitni. Naime ARM1 ( v1 ) je prvi tip
procesora koji je bio komercijalan, analogno tome to je prci komercijalni procesor. Još je vaţno reći da je
ARM610 ( v3 ) prvi 32-bitni komercijalni procesor.
Isto tako tipovi procesora se mogu podijeliti i na broj njihovih jezgri na jednojezgrene procesore,
dvojezgrene procesore, ĉetverojezgrene procesore i od nedavno na šesterojezgrene procesore ( samo AMD
ima proizveden šesterojezgreni procesor za trţište ). Takva podjela je vaţna jer nam istovremeno govori o
kvaliteti procesora i o njegovoj cijeni. Što procesor ima više jezgri to će biti brţi jer će se njegove instrukcije
i zadaci dijeliti na više jezgri, ali će biti i to skuplji.
Dakle zakljuĉak za tipove procesora je slijedeći, da bi znali koji tip procesora nam treba trebamo
znati što oĉekujemo od procesora i za koje novce namjeravamo kupiti procesorsku jedinicu. Naravno da nije
svejedno da li ćemo dati veliku svotu novaca za lošiji procesor kada smo u mogućnosti kupiti bolji procesor
za manje novaca.
15
Usprkos tome na trţištu procesora se vrlo teško probiti jer AMD i Intel su suvereni „vladari“ trţišta i ljudi će
većinom dati više novaca za AMD ili Intel makar oni bili lošiji od nekog procesora nekog nepoznatog
proizvoĊaĉa, iako su AMD i Intel u vrlo malom postotku sluĉajeva lošiji od drugih maje poznatih
proizvoĊaĉa.
2.1 Karakteristike procesora
Karakteristike procesora odreĊuju njegovo ponašanje i njegovu produktivnost u radu raĉunala.
Najvaţnije karakteristike procesora su njegova brzina, brzina sabirnice, priruĉna memorija, clock mnoţitelj,
napon napajanja, napon U/I jedinica, broj tranzistora, veliĉina interog registra ( u bitovima ) i još mnoge
druge. Što su brzine veće, mnoţitelji veći, veliĉina memorije veća i napon veći to će procesor biti
kvalitetniji, ali i izloţen većem naporu. Brzina sabirnice je, kao i sve ostale karakteristike procesora, sa
samih poĉetaka procesora poĉela drastiĉno rasti te u današnjim procesorima iznosi ĉak do 200MHz. Clock
mnoţitelj je u većini sluĉajeva oko x6.5, no u nekim procesorima on iznosi ĉak x10, usprkos tome postoji
ţelja za over-clockanjem procesora da bi taj mnoţitelj iznosio još više te da bi procesor obraĊivao više
informacija, ali over-clockanje dovodi do velik naprezanja procesora i njegovog pregrijavanja ako se
pretjera. Napon napajanja procesora iznosi od 1.65V do 3.33V, iako je 3.33V u većini procesora korišteno.
U/I napon u velikoj većini procesora iznosi 3.33V.
Brzina procesora ( eng. clock rate ) je za mnoge najvaţniji podatak i podatak na koji obraćaju najviše
paţnje pri kupnji procesora. Brzina procesora se mjeri u broju bitova po sekundi,tj. u Hertzu ( Hz ). Prvi
komercijalni procesor ( Intel 8080 ) imao je frekvenciju rada 2MHz dok najbrţi komercijalni procesor
današnjice ( IBM zEnterprice 196 ) radi na brzini od 5.2GHz. No uz tako veliku frenkvenciju rada procesora
se stvara i više topline koja je nepotrebna i zagrijava raĉunalo. Inţenjeri rade nove arhitekture procesora ne
samo zato da bi procesor brţe radio, već zato da pri istoj brzini kao i prijašnji modeli procesora novi modeli
mogu riješiti više instrukcija u istom vremenskom intervalu kao i stariji modeli.
Priruĉna memorija je isto tako znatno napredovala i isto tako je vrlo poţeljno da ona bude što veća.
Kao što sam spomenuo u prošlom seminarskom radu, u današnje vrijeme se priruĉne memorije dijeli na tzv.
L1 koja iznosi do 256KB i L2 koja iznosi do ĉak 2048KB. TakoĊer je vrlo vaţna krakteristika procesora,
koja u biti i najviše pridonosi brzini procesora, brzina njegove jezgre koja iznosi u današnje vrijeme do
4.8GHz. Ona sluţi za pohranjivanje nekih od naredbi i instrukcija procesora koje se ĉesto koriste te ih tako
ĉini dostupnima CPU-u kad ih on zatreba. Kako brzina procesora i RAM-a nije standardizirana i razliĉita je,
tako priruĉna memorija smanjuje razliku izmeĊu tih dviju brzina te ih ĉini kompatibilnijim. Priruĉna
memorija je iznimno brza pa sa svojom brzinom tu razliku još dodatno smanjuje. Priruĉna memorija se
nalazi unutar CPU-a ( unutarnja priruĉna memorija ) i na matiĉnoj ploĉi ( vanjska priruĉna memorija ).
Postoje tri razine priruĉne memorije:
1) L1- nalazi se na procesorskom ĉipu
2) L2- nalazi se na matiĉnoj ploĉi ( stariji sustav )
3) L3- priruĉna memorija na matiĉnoj ploĉi ( u novijim sustavima )
16
Na slici ispod je prikazan primjer priruĉne memorije.
Broj jezgri koje ima procesor takoĊer spada pod njegove karakteristike. U jednojezgrenim
procesorima procesor je limitiran na vrijeme koje mu je potrebno da komunicira sa priruĉnom memorijom i
RAM-om. Gotovo 75% vremena koje procesor troši na ĉekanje je to da dobije rezultate od ulaza u
memoriju. Da bi se to vrijeme smanjilo, i povećala produktivnost procesora oni su se u pocetku clockali, ali
to je podizalo toplinu u procesoru te je bilo potrebno drugo riješenje...a to je dovelo do višejezgrenih
procesora. Kod takve arhitekture jezgre dijele zadatke, no ne znaĉi da dvojezgreni procesor radi duplo brţe,
ili ĉetverojezgreni ĉetiri puta brţe, to znaĉi da jezgre dijele zadatke i podatke i da se izvršavanje zadataka
ubrzava za odreĊeno vrijeme. Dvojezgreni procesor takoĊer i troši manje energije nego što bi trošile dvije
razdvojene jezgre koje nisu integrirane kao što su dvojezgrene ili ĉetverojezgrene ili šesterojezgrene...
Na slici ispod je primjer Intel-ovog Xeon dvojezgrenog procesora.
Clock mnoţitelj mnoţi frekvenciju na kojoj radi procesor i za taj mnoţitelj ubrzava interni clock
procesora. Tako primjerice procesor koji ima eksterni clock 133 MHz i clock mnoţitelj x10 ce imati interni
clock procesora 1.33GHz ( 10x133MHz=1.33GHz ). U današnje vrijeme većina procesora ima clock
mnoţitelj veći od pet, pa tako brzinu rada procesora ograniĉava većinom njegova propusnost i latentnost.
17
Broj tranzistora je u prošlosti odreĊivao veliĉinu procesora. No to više nije sluĉaj, tehnologija je
napredovala i tranzistori su integrirani na procesorski ĉip i veliĉine su mjerila nm ( nanometara ). Prva
raĉunala su bila veliĉine cijele velike sobe, a procesori su bili njihovi najveći dijelovi. Danas su procesori
meĊu najmanjim vaţnijim dijelovima raĉunala, koriste nanotehnologiju i svakim danom imaju sve vise
tranzistora, a nastavljaju se smanjivati.
Na slici je primjer Intel-ovog procesora koji je proglašen najmanjim procesorom na svijetu.
Iako bi procesorska jedinica trebala zamijeniti djelovanje ljudskog mozga u raĉunalima to neće
nikada biti moguće, vjerojatno ni sa najboljim karakteristikama procesora jer procesoru se mora zadati
zadatak i instrukcija koje bi on trebao izvršiti, a u tom dijelu je ĉovjek nezamjenjiv i još dugi period
vremena će vjerojatno i ostati tako kako je.
18
2.2 Oznake procesora
Oznaka procesora nam govori koji je proizvoĊaĉ proizveo taj procesor te koji je to model i koji mu je
broj modela. Najpoznatiji su proizvoĊaĉi procesora Intel i AMD ( Advanced Micto Devices ) pa su analogno
tome i njihove oznake najpoznatije. Tako primjerice Intelov procesor Intel Pentium4 sadrzţi slijedeće:
oznaku ( Intel ), model ( Pentium ) i broj modela ( 4 ). Oznake su nam vrlo baţne kako bi mogli raspoznati
proizvoĊaĉa i kvalitetu procesora jer većinom poznatiji proizvoĊaĉi kao AMD i Intel imaju i najkvalitetnije
procesorske jedinice. Poznavaocima procesora i njihovih kretanja oznake znaĉe jako puno. Po oznakama
znaju koji je procesor noviji od nekog drugog ili stariji od nekog trećeg. TakoĊer kod Intelovih dual core
procesora postoje oznake kao: T2350, 5500, 5600...koje nam govore performance rating odreĊenog
procesora.
Takve oznake ( T2350, 5500, 5600... ) nam mogu govorit i za koje je posluţitelje namjenjen procesor
pa tako primjerice Intel Xeon 5000 je namjenjen posluţiteljima sa do dva procesora dok je Intel Xeon 7000
namjenjen posluţiteljima sa do ĉetiri procesora, serija 9000 je namjenjena svim posluţiteljima Intel Itanium
procesora. Dakle zakljuĉak toga je da Intel oznaĉava svoje procesorske jedinice vezano uz njihove
mogućnosti za razliku od dosadašnjeg oznaĉavanja koje je bilo vezano uz njihov radni takt ( brzinu
procesora).
Nove oznake takoĊer je uveo i AMD. AMD-ov Athlon X2 BE-2350 je prvi komercijalni procesor
koji je izašao iz tvornica sa novom slovno-brojĉanom oznakom. Oznaku ĉine dva slova i ĉetiri znamenke.
Dva slova oznaĉavaju klasu procesora i u ovom sluĉaju E znaĉi da se radi o štedljivom modelu ( Efficient ),
dok ĉetiri znamenke funkcioniraju na slijedeći naĉin: prva je oznaka obitelji/trţišnog segmenta, dok
preostale tri daju ukupni relativnu sredinu performansi i mogućnosti ( što je broj veći to su performanse i
mogućnosti bolje ). Mnogo puta kad vidimo naziv i oznaku procesora ne znamo ĉemu sluţe brojevi koji su
iza naziva ( broj modela ).
Kod AMD-a kako sam i objasnio to znaĉi da je taj model jaĉi, brţi i skuplji od onoga kojemu je taj
broj manji, dok kod Intel-a to ne mora biti sluĉaj. Kod Intel-ovih procesora taj broj modela nam većinom
govori da li je taj model noviji ( što je broj veći to je model noviji ), ali to nije uvjet da taj model procesora
bude bolji, brţi, jaĉi i skuplji od modela koji taj broj modela imaju manji od toga procesora.
19
3. Višejezgreni procesori
3.0 Što je višejezgreni procesor?
Mislim da je najbolje poĉeti sa malo povijesti i razvojem višejezgrenih procesora. Prvi višejezgreni
procesor za kućna raĉunala datira iz 2005. godine i proizveo ga je AMD i nazvao AMD Athlon 64 X2.
Nanovo je dizajniran i proizveden od poĉetka, odnosno korišten je novi dizajn i nova arhitektura. Koristio je
tehniku u kojoj se više zadataka izvodi istovremeno. Koristeći dvije jezgre na istoj ploĉi Athlon 64 X2 je
skoro poduplao efikasnost te tehnike, drugim rijeĉima efikasnost procesora. TakoĊer je uveo mnoge novitete
bez koji su u današnje vrijeme višejezgreni procesori praktiĉki nezamislivi. No uz sve te dobre strane,
cijena proizvodnje ovog procesora je bila znatno skuplja, pa je analogno tome i cijena samog procesora bila
veća u usporedbi sa jednojezgrenim modelima. Višejezgreni procesor je u biti jedna komponenta ( procesor )
sa dva ili više zasebna integrirana procesora unutar sebe koji se nazivaju jezgre ( core ). Zasada su u
komercijalnoj prodaji većinom dvojezgreni ( dual-core ), ĉetverojezgreni ( quad-core ) i šesterojezgreni (
hexa-core ) procesori. Jezgre unutar samog procesora ne moraju obavezno dijeliti u tom odreĊenom trenutku
istu priruĉnu memoriju i podatke koji su pribavljeni jer mogu u tom trenutku raditi razliĉite poslove
( multi-tasking ).
Uzmimo za primjer dvojezgreni procesor u kojem ću pokušati laiĉki objasniti djelovanje
višejezgrenog procesora. Dvojezgreni procesor moţemo zamisliti kao da se u jednom raĉunalu nalaze dva
procesora istih karakteristika, ali su oni integrirani na jedan ĉip pa je njihova komunikacija ubrzana jer su
bliţe. U teoriji dvojezgreni procesor bi trebao biti gotovo duplo brţi od jednojezgrenog, ali u praksi to nije
istina. U praksi je dvojezgreni procesor otprilike 50% brţi od jednojezgrenog ( svaka jezgra je sporija od
jednojezgrenog procesora s istim karakteristikama ) i oko jedan i pol puta jaĉi od istog. U sluĉaju
dvojezgrenog procesora, obje jezgre prihvaćaju dolazeće podatke istovremeno i obraĊuju ih kako bi povećali
efikasnost. Zamislimo da jedna jezgra izvršava neku zadanu instrukciju dok druga na primjer dohvaća
podatke potrebne kako bi ona izvršila zadanu instrukciju. U tom trenutku se u priruĉnoj memoriji nalaze
podaci potrebni jezgri koja trenutno izvršava instrukcije. No, kada druga jezgra poĉne izvršavati svoje
instrukcije, u priruĉnoj memoriji se trebaju nalaziti podaci potrebni drugoj jezgri, a ne podaci koje je
koristila ili u cache prenjela prva jezgra.
Ovo su sami neki mali detalji koji bi nas trebali uvesti u svijet višejezgrenih procesora. Naravno, u
tom svijetu ima puno više ĉimbenika, ureĊaja, komponenti, zakona i još mnogih drugi stvari koje ja neću ni
dotaknuti jer su mi preopširne i komplicirane za shvatiti. MeĊutim, neke od tih stvari su mi razumljive i prije
sam ĉuo za njih i tad su me zaintrigirale. U nastavku rada sam pokušao pojasniti neke od tih tehnologija,
noviteta i zakona.
20
3.1 Razlike izmeĊu jednojezgrenih i višejezgrenih procesora
Razlika nema vrlo puno, ali s druge strane te razlike su krucijalne. Prvenstveno, razlika je u
arhitekturi i dizajnu izmeĊu ovih dviju vrsta procesora. Raĉunalcima je opće poznata ĉinjenica da procesor,
kao i većina komponenti raĉunala, mora komunicirati sa memorijom. Kod jednojezgrenih procesora to nije
problem, jer samo jedna jezgra ( procesor ) komunicira sa memorijom, dok u sluĉaju višejezgrenih procesora
svaka jezgra mora imati mogućnost komunikacije sa memorijom, pa ĉak i mogućnost istovremene
komunikacije. To se postiţe pomoću dvije metode.
Prva metoda je pomoću komunikacijske sabirnice. Dakle, svaka jezgra ( koliko god ih ima ) je
spojena na komunikacijsku sabirnicu koja je spojena na memoriju i na ulaz/izlaz . Sabirnica se koristi uz tzv.
model zajedniĉke memorije. Predpostavlja se da je ova metoda efikasna kod procesora koji imaju manje od
32 jezgre, a kada je broj jezgri veći od 32 tada dolazi do preopterećenja sabirnice što dovodi do smanjenja
performansi procesora. Dakle, ova metoda komunikacije izmeĊu jezgri je odreĊena sa brojem jezgri. Ispod
teksta se nalazi schema ove metode.
Druga metoda je pomoću meĊusobnog povezivanja mreţa. Ova metoda jest drugaĉije u tome što je
memorija spojena na jednu mreţu i preko te mreţe meĊusobno komuniciraju jezgre procesora. Ova metoda
je utolika bolja što se podaci uzimaju sa jednog mjesta, sa jedne mreţe. Ako zamislimo da je ta mreţa jedna
sabrinica, kao i u prošlom sluĉaju, tada bi mogli zamisliti da svaka jezgra komunicira samo sa tom
sabirnicom koja ne komunicira sa memorijom niti sa ulazom i izlazom. Slika ispod testa prikazuje schemu
ove metode.
Višejezgreni procesori neutraliziraju nedostatke jednojezgrenih procesora. Naime, višejezgreni
procesori povećavaju propusnost, a u isto vrijeme smanjuju potrošnju elektriĉne energije. U nekim
sluĉajevima, pri kontroliranim uvjetima i pri niţim frekvencijama rada, propusnost je povećana ĉak za 10
21
puta, dok je potrošnja energije smanjena 4 puta ( zahvaljujući niţim frenkvencijama rada i jedinicama za
kontrolu potrošnje energije koje gase neaktivne jezgre). No problem koji je znatno izraţeniji kod
višejezgrenih procesora je povećanje temperature. Logiĉno je da ako imamo više jezgri ( procesora ) da će i
temperatura biti povećana. Mnogi kaţu da je to najveći problem kod takve vrste procesora i problem koji
zahtjeva najviše paţnje.
3.2 Loše strane višejezgrenih procesora
Postojanje više jezgri na jednom procesorskom ĉipu stvara brojne probleme i izazove za arhitekte i
dizajnere procesora. Snaga i temperatura su dvije vrijednosti koje rastu eksponencijalno i izazivaju mnoga
pitanja i izazove kako ih se treba riješiti. Povezanost radne memorije i priruĉne memorije i njihova
meĊusobna komunikacija je još jedan od brojnih izazova. Još jedna loša strana je pitanje maksimalne
iskoristivosti višejezgrenog procesora. Ako programeri ne pišu aplikacije i programe koji će iskoristiti
prednost procesora sa više jezgri onda nema koristi imati takav procesor i ne postoji nikakva dobit od njih. S
tim mislim reći da programeri moraju pisati programe koji neće imati direktno vezane dijelove, odnosno
programe u kojima ne postoje veze izmeĊu dijela koji se trenutaĉno izvršava i izmeĊu nekog drugog dijela
koda.
Povezanost priruĉne memorije i radne memorije je jedno od problematiĉnijih podruĉja jer moţe za
najgoru posljedicu imati ĉak i pad raĉunalnog sustava. Do ovog problema dolazi jer svaka jezgra ima svoju
zasebnu priruĉnu memoriju ( L1 i L2 ). Naime, podatak unutar priruĉne memorije jedne od jezgri moţe biti
zastarjeo. Zamislimo da se isti podatak nalazi u priruĉnoj memoriji svih jezgri i da jedna od jezgri obradi taj
podatak. Nakon toga ostale jezgre će imati zastarjelu verziju tog podatka. Kako do toga nebi došlo postoje
dvije scheme rješavanja tog problema. Jedna schema je tzv. prateći protokol. Taj protokol funkcionira samo
u sluĉaju kada procesor za komunikaciju izmeĊu jezgri koristi komunikacijsku sabirnicu. U ovom protokolu
se koristi više stanja kako bi se zakljuĉilo da li je potrebno aţurirati podatke unutar priruĉne memorije ili
nije potrebno. Druga schema je protokol baziran na direktoriju. Ovaj protokol se moţe koristiti na
proizvoljnoj mreţi i zbog toga je skalabilan mnogim procesorima i jezgrama, što s druge strane prateći
protokol nije. U ovom protokolu direktorij se koristi kako bi se došlo do informacije koja procesoru govori
koje se memorijske lokacije dijele izmeĊu više cache memorija,a koje koristi iskljuĉivo samo jedna cache
memorija jedne jezgre. Direktorij zna kad se cache treba aţurirati ili ukinuti!
Kako maksimalno iskoristiti višejezgreni procesor? To pitanje je moţda i najĉešće pitanje koje
programerima pada napamet. Pisanje aplikacija i programa kako bi dosegle maksimalnu efektivnost na
višejezgrenim procesorima je veliki posao, odnosno gotovo cijeli kod treba biti nanovo napisan kako bi se
do tog cilja došlo. Autori koda moraju pisati aplikacije koje sadrţe potprograme sposobne za rad na
razliĉitim jezgrama. Programi i aplikacije bi trebali biti uravnoteţeni. Sa tim ţelim reći da ako je jedna
jezgra korištena više od druge, tada program koji se izvršava ne izvlaĉi maksimalnu uĉinkovitost iz svih
jezgri, odnosno višejezgrenog sustava. Manjina tvrtki je napisala programe za višejezgreno djelovanje, ali
neke od tih tvrtki su Microsoft i Apple ĉiji su operacijski sustavi napisani tako da mogu funkcionirati na
procesorima koji imaju 4 jezgre ili manje.
22
3.3 Dobre strane višejezgrenih procesora
Razvojem raĉunala povećavala se frekvencija rada procesora, te se na taj naĉin omogućavao veći
broj operacija u jednom radnom taktu. Višejezgreni procesori omogućavaju obavljanje više zadataka
istovremeno ( multi-tasking ), a rad sa moguĉnošću multi-taskinga je 1.5 puta brţi od rada jednojezgrenog
procesora istih karakteristika, ali imaju i odreĊene potrebe koje proizlaze iz te tehnologije kao što je
konstantna aktivnost svih jezgri, te zajedniĉka cache memorija. Donose niţe radne taktove po jezgri ( manja
frekvencija rada ), manje zagrijavanje, ali i manju potrošnju energije. Jedna od vaţnijih dostignuća u
višejezgrenoj tehnologiji su bolja iskoristivost dostupnih tranzistora, povećanje propusnosti, brţa
komunikacija komponenti, iskljuĉivanje neaktivnih jezgri, i još mnoga druga dostignuća.
Jedna od dobrih strana veišejezgrenih procesora je i ta da je komunikacija izmeĊu komponenti brţa.
Do tog efekta dolazi ponajviše zbog blizine jezgri procesora, tj. jezgre su integrirane na jednom ĉipu pa je
posljedica toga ta da je smetnja ( šum ) na signalu izrazito smanjena jer signal prelazi znatno manji put. Ti
kvalitetniji signali omogućuju slanje više podataka u istom vremenskom intervalu što konzekventno ubrzava
komunikaciju izmeĊu jezgri procesora, što ubrzava baratanje jezgri sa priruĉnom memorijom, što ubrzava
izvoĊenje instrukcija i naredbi, što ubrzava sveukupan rad procesora i raĉunala kao cjeline.
Iako je dizajn višejezgrenih procesora općenito gledano kompliciraniji, postoje dijelovi koji su lakši
za izvesti. Tako primjera radi jezgre dijele odreĊene vodove, kao što je onaj koji vodi na L2 priruĉnu
memoriju i na FSB ( Front Side Bus ). U odnosu na konkurentne tehnologije za dostupna silikonska
podruĉja na ĉipu, višejezgreni procesori mogu iskoristiti već provjerene dizajne procesorskih biblioteka
kako bi proizveli produkt koji ima manji rizik dizajnerskih pogrešaka nego li osmišljavanje potpuno novog
dizajna za jezgre.
Kada bi se dvije jezgre integrirale na jedan ĉip, tada bi,u teoriji, taj ĉip trošio dvostruko više energije
i generirao puno više topline od istog takvog jednojezgrenog procesora. Kako bi se smanjila potrošnja
energije većina ĉipova u sebi ima ugraĊenu jedinicu za kontrolu potrošnje energije ( PCU- Power Control
Unit ) koja ima dozvolu iskljuĉiti jezgre koje nisu u upotrebi kako bi smanjila ili limitirala potrošnju
energije. Ekonomiĉnijoj potrošnji energije ide na ruku i to što su jezgre na istom ĉipu pa se signali ne moraju
odvoditi izvan ĉipa. S druge strane, kako bi se smanjilo generiranje topline ĉip je dizajniran tako da se
smanji broj vrućih podruĉja i da se generirana toplina raspodjeli podjednako po cijelom ĉipu. Još jedna
naprava koja prati temperature u višejezgrenim procesorima je ureĊaj za praćenje temperature ( TMU-
Temperature Monitoring Unit ) koji se sastoji od 11 senzora osjetljivih na temperaturne razlike.
23
3.4 Zakoni povezani s višejezgrenim procesorima
3.4.0 Mooreov zakon
Gordon E. Moore je suosnivaĉ Intela po kojem je nazvan temeljni zakon o razvitku procesora.
Naime, taj zakon govori da bi se svake dvije godine broj tranzistora u procesorima trebao udvostruĉiti.
Trend na trţištu prati ovaj zakon već duţe od pola stoljeća i predpostavlja se da bi tako trebalo biti do 2020.
godine. Ovaj zakon se koristi i u poluvodiĉkoj industriji kako bi se okvirno predvidio razvitak trţišta. No sa
dolaskom višejezgrenih procesora taj period od dvije godine u Mooreovom zakonu više nije bio dovoljno
precizan, te je Moore promijenio, odnosno smanjio taj period za pola godine i sada iznosi 18 mjeseci. Na
slici ispod je prikazana krivulja koja prikazuje djelovanje Mooreovog zakona. Vidljivo je da je sa dolaskom
višejezgrenih procesora, nešto prije 2005. godine došlo do naglog porasta broja tranzistora u kraćem
periodu.
Zanimljivo je za znati da je i sam Gordon E. Moore rekao u intervjuu 2005. godine da ovaj zakon ne
moţe trajati vjeĉno, te da će tranzistori kad tad biti atomske veliĉine. S tim je mislio reći da ovaj zakon nije
savršen, te da ga se uskoro više neće moći pratiti, tj. da neće biti adekvatan i toĉan kao dosada. Glavni razlog
tome je, kao što je i Moore naveo, drastiĉno povećanje broja tranzistora od kojih je procesor većinski i
napravljen. Ukoliko se tehnologija nastavi ovako brzo razvijati, Moore će biti u pravu i neće se moći
odrediti brzina rasta broja tranzistora na procesorskim ĉipovima.
24
3.4.1 Amdahlov zakon
Gene M. Amdahl je raĉunalni arhitekt najbolje poznat po slijedećem zakonu. Naime, Amdahl je
donio zakon koji nam govorio o ovisnosti broja jezgri procesora i ubrzanja rada sa všejezgrenim
procesorom. Amdahlov zakon se najĉešće koristi kod paralelnog raĉunalstva, tj. grane raĉunalstva u kojoj se
brojna raĉunanja izvode istovremeno. Do ovog zakona je došao pomoći niza algoritama. Mnogi podrţavaju
ovaj zakon i prihvaćaju ga. S druge strane naišao je i na brojne kritike, od kojih je najteţa bila ona od John
L. Gustafsona koji je donio zakon koji je kontradiktoran Amdahlovom zakonu. Graf ispod teksta prikazuje
djelovanje Amdahlovog zakonu u teoriji:
Iz grafa je vidljivo da faktor ubrzanja rada i broja jezgri nije isti, odnosno da ovisnost ne raste linearno i da
faktori nisu proporcionalni, a to jasno pokazuje i ĉinjenica da bi nam za ubrzanje od 20 puta po
Amdahlovom zakonu trebao otprilike 2050 jezgreni procesor!!
Logiĉno je da ima još pregršt zakona u ovako velikom podruĉju djelovanja kao što je podruĉje
višejezgrenih procesora, no sa mojim skromnim i limitiranim znanjem o ovoj temi zakljuĉio sam da su ova
dva zakona temeljni zakoni i zakoni koji su najupotrebljivaniji u novijoj povjesti raĉunalstva u svhru
odreĊivanja razvijanja ovog podruĉja. Nadalje, odabrao sam ova dva zakona zato što mislim da su najtoĉnije
predvidjeli razvitak višejezgrenih procesora i da su višejezgreni procesori takoĊer najviše utjecali na
Mooreov i Amdahlov zakon.
25
3.5 Noviteti uvedeni višejezgrenim procesorima
Brojne nove tehnologije su uvedene sa pojavom višejegrenih procesora i uvode se gotovo
svakodnevno. U ovom podnaslovu ću pokušati obraditi one za koje ja smatram da su najviše utjecali na
razvoj tehnologije i boljitak karakteristika višejezgrenih procesora.
Zasigurno je jedna od najvaţnijih novih tehnologija koja je uvedena sa višejezgrenim procesorima
multi-tasking. To je metoda u kojoj se više procesa ( task ), koji djele iste resurse ( kao npr. procesor ),
izvršava istovremeno. Multi-tasking rješava problem izvoĊenja samo jednog procesa u vremenu tako što
planira raspored izvoĊenja više procesa istovremeno, odnosno odreĊuje do kad će se jedan proces izvršavati
dok drugi ĉeka i kad će se drugi proces nastaviti izvršavati. Procedura koja govori procesoru do kad će se
jedan proces izvršavati, a drugi ĉekati i obratno se naziva context switch. U tom procesu se pohranjuju i
obnavljaju stanja procesora kako bi se izvršavanje moglo nastaviti od mjesta gdje je prekinuto, ali u drugom
vremenu. Taj proces je vaţan jer on omogućuje da više procesa dijeli istu jezgru. Kada se promjena stanja
procesora dogaĊa dovoljno brzo dolazi do paralelizma, odnosno do izvršavanja velikog broja raĉuna
istovremeno. Najveći problem kod multi-taskinga je dijeljenje istih resursa izmeĊu procesa. Ali tijekom
godina multi-tasking se razvio dovoljno da to više ne bude problem, te sada operacijski sustavi imaju u sebi
ugraĊen mehanizam za dodjeljivanje prioriteta procesima.
Najvaţniji novitet koji je znatno poboljšao ekonomiĉnost višejezgrenih procesora je jedinica za
kontrolu potrošnje energije ( PCU ). Kako bi se smanjila potrošnja energije većina ĉipova u sebi ima
ugraĊenu jedinicu za kontrolu potrošnje energije koja ima dozvolu iskljuĉiti jezgre koje nisu u upotrebi kako
bi se smanjila ili barem limitirala potrošnja energije. PCU, koji smanjuje potrošnju energije, konzekventno i
smanjuje nepotrebno grijanje procesora zbog gašenja neaktivnih jezgri. Nerijetko bi potrošnja energije bila
ĉak i poduplana da nema jedinice za kontrolu potrošnje energije.
Intel je uveo novitet koji je nazvao hyperthreading. Uglavnom, tu se radi o tome da za svaku fiziĉku
jezgru operacijski sustav adresira dvije virtualne i izmeĊu njih dijeli rad kad je to moguće. Intel je izjavio da
procesori koji koriste ovu tehnologiju zauzimaju 5% više mjesta na ĉipu, ali da su zato 15-30% kvalitetniji i
bolji. Iako operacijski sustavi u praksi većinom ne podrţavaju hyperthreading, najave su takve da će manje
više svi operacijski sustavi u svojim budućim izdanjima podrţavati ovu novu obećavajuću tehnologiju.
3.6 Problemi koji ĉekaju rješenje
Sa većim brojem jezgri na istom ĉipu raste i potreba za većom memorijom. 32- bitni procesori mogu
adresirati do 4GB glavne memorije. U današnje vrijeme jezgre koriste 64- bitne adrese i rezultat toga je
gotovo beskonaĉno veliko adresiranje memorije. Poboljšani memorijski sustav je praktiĉki obvezan, takoĊer
je potrebno više glavne memorije i veće priruĉne memorije za obavljanje zadaća koje višejezgreni procesori
mogu raditi istovremeno.
26
3.6.0 Vrijeme pristupa memoriji
Povećanje memorije je beskorisno ako se i vrijeme pristupa memoriji ne ubrza. Brţa mreţa izmeĊu
jezgri znaĉi i manje kašnjenje izmeĊu jezgri i brţi prijenos podataka izmeĊu istih. Kao što sam već objasnio
dvije metode koje se koriste pri komunikaciji izmeĊu jezgri, metodu koja koristi jednu sabirnicu za
komunikaciju istraţuje i unapreĊuje Intel, dok metodu sa zajedniĉkom mreţom istraţuje firma Tilera koja
koristi takav princip u svom TILE64 procesoru. Pitanje koje se treba postaviti je to da li je za višejezgrene
procesore bolja metoda pomoću sabirnice, metoda pomoću zajedniĉke mreţe ili pak nekakav hibrid izmeĊu
to dvoje?
3.6.1 Paralelno programiranje
Kako se broj jezgri podupla svakih 18 mjeseci tako bi se i sofware koji radi na tim jezgrama trebao
razvijati. Svojevremeno, programeri moraju nauĉiti pisati programe koji će imati mogućnost dijeljenja koda
na više dijelova i izvršavanja istovremeno na više jezgri umjesto pokušavanja eksploatiranja jednojezgrenog
hardwarea. Takvi programi su pisani tehnikom paralelnog programiranja. Razvijanje softwarea za
višejezgrene procesore podiţe neke prikrivene probleme. Neki od tih problema su slijedeći:
1) Kako programer osigura da visoko prioritetan zadatak dobije prioritet
u cijelom procesoru, a ne samo u jednoj zegri?
2) Kako moţemo doći do toga da cijeli sustav stane kada je to
potrebno, a ne samo jezgra u kojoj se izvodi program?
3) Kako osigurati da budući programeri imaju dovoljno znanje o
paralelnom programiranju?
To su samo neka od pitanja koja se trebaju riješiti kako bi paralelno programiranje moglo napredovati, a
zajedno sa njim i efikasnost i boljitak višejezgrenih procesora. Kada se ta pitanja riješe na adekvatan naĉin,
praćene Mooreovog zakona će biti mnogo lakše i jednostavnije sa strane softwarea.
3.6.2 Suša podataka
Suša podataka je problem koji se javlja u slijedećem obliku. Ako program nije dobro dizajniran i
adekvatno razvijen za rad u višejegrenom okruţenju tada jednoj ili više jezgri moţe ponestati podataka. Ovu
pojavu moţemo primijetiti u sluĉaju da program koji je napisan za jednojezgrene procesore pokrenemo u
višejezgrenom sustavu. Tada bi taj program izvršavala samo jedna jezgra dok bi druge jezgra bila
neiskorištena jer nebi mogla doći do potrebnih podataka za izvršavanje tog programa. Sa dijeljenom
priruĉnom memorijom i bez adekvatne zamjene u programu, jedna jezgra moţe doţivjeti sušu podataka i u
tom sluĉaju će podatke traţiti u glavnoj memoriji, što je na kraju sporije i skuplje. Ovaj problem se pojaĉano
pojavljuje kod većeg broja jezgri i raste proporcionalno sa brojem jezgri, tj. što je veći broj jezgri to je ovaj
problem takoĊer veći.
27
3.6.3 Homogenost i heterogenost jezgri
Arhitekti procesora ĉesto postavljaju pitanje da li bi jezgre procesora trebale biti homogene ili
heterogene, ali i dalje ne postoji adekvatan odgovor na to pitanje. Homogene jezgre su u potpunosti iste,
odnosno rade na istoj frekvenciji, imaju istu veliĉinu priruĉne memorije, istih su funkcija itd. S druge strane
svaka jezgra u heterogenom principu moţe imati drukĉiju funkciju, frekvenciju, model memorije itd. U
principu su svi dizajni sa homogenim jezgrama.
Višejezgreni procesori sa homogenim jezgrama su lakši za proizvodnju jer koriste isti set instrukcija i
svaka jezgra je proizvedena od istog hardwarea. Ali pitanje je da li su homogene jezgre najefikasniji izraz
korištenja višejezgrene tehnologije?
Svaka jezgra u heterogenom principu moţe imati drukĉiju funkciju u cjelokupnom sustavu. Sa tim
mislim reći da moţe biti najbolja za izvršavanje odreĊenih procesa i zadataka. Tako recimo u
ĉetverojezgrenom procesoru najbolja jezgra moţe biti korištena za visoko prioritetne zadatke kao što je
izvršavanje procesa operacijskog sustava, druga jezgra moţe biti korištena za grafiĉke procese, treća jezgra
za komunikaciju i audio dio, ĉetvrta jezgra za kriptografske aktivnosti ( šifriranje i dešifriranje ). Ovaj
princip i dizajn je kompliciraniji, ali moţe dovesti do poboljšanja efikasnosti, potrošnje energije, boljih
toplinskih karakteristika koje bi na kraju prevladale tu kompleksnost dizajna i isplatile se.
Iako brojne firme rade testiranja na oba od ovih vrsta arhitekture još nije dobiven odgovor da li je
bolji jedan ili drugi dizajn ili je moguće spojiti ih u nekakav njihov hibrid. Sa dobrim i lošim stranama oba
dizajna i sa „velikim“ proizvoĊaĉima koji proizvode oba principa, biti će zanimljivo vidjeti koji će dizajn u
budućnosti biti bolje prihvaćen i uzet kao onaj koji će se većinski proizvoditi i koristiti.
28
SAŢETAK
Potreba za lakšim raĉunanjem i za olakšanjem ţivota dovela je do raĉunala, a samim time i do
procesora. Mnogi znanstvenici istiĉu mikroprocesor 8080 kao najzasluţniji za tako drastiĉan razvoj
procesora jer je on prvi mikroprocesor u prvom PC-u. Nagovjestio je razvoj procesora i 32-bitne procesore
koji su došli odmah nakon 8080. PredviĊa se još brţi razvoj procesora, uvod sve više i više jezgrenih
procesora, bolja iskoristivost napajanja i jezgri i još mnogi noviteti koji su predviĊeni uz razvoj tehnologije.
U zadnje vrijeme, uz razvitak nano tehnologije, mikroprocesori su takoĊer postali još manji, neki su već
dobili predznak nano uz svoj naziv. NagaĊa se da će do 2030. godine superraĉunala biti toliko razvijena da
će moći bezgrešno prognozirati vrijeme na cijeloj Zemlji do dva tjedna unaprijed dok danas mogu najviše do
dva dana uz mogućnost pogreške Uz pametno ulaganje i struĉnost, nakon odreĊenog vremena, kućna
raĉunala bi mogla postati zvijeri kao što su današnja superraĉunala.
Da bi mogli raspoznati koji procesor bi trebali kupiti trebamo znati što od njega oĉekujemo i što
ţelimo, a da bi to znanje mogli usavršiti i dobiti što oĉekujemo od tog procesora moramo poznavati njegove
osnovne karakteristike, njegov tip i oznaku jer kada to troje uskladimo sa našim znanjem i oĉekivanjem od
procesora kojeg kupimo bit ćemo zadovoljni sa našim procesorom. Procesor se ne sastoji samo od jezgre, ili
samo od priruĉne memorije ili od sabirnica već procesor ĉine mnoge komponente koje sa usklaĊenim radom
izvršavaju instrukcije i zadatke zadane procesoru. Analogno tome, moţemo zakljuĉiti da procesor jedino
moţe kvalitetno raditi kad mu sve komponente rade sinkronizirano i zajedno. Iz karakteristika procesora
moţemo dobiti uvid kako će se on ponašati u našem sustavu, koliko će dobro i brzo raditi, okvirno moţemo
znati kolika će mu biti cijena i još mnoge druge stvari. Iz oznake procesora zakljuĉujemo da li je taj procesor
poznat diljem svijeta, da li povijest firme i proizvoĊaĉa toga procesora garantiraju njegovu kvalitetu, da li je
taj procesor bio uspješan i još mnoge druge stvari. Iz tipa procesora moţemo išĉitati za kakvo je on trţište
predviĊen, što od njega proizvoĊaĉi oĉekuju, što mi moţemo oĉekivati od takvog procesora. Uz znanje iz svih
tih podruĉja i kombinirano praćenje procesorskog trţišta moţemo odabrati takav procesor da on bude u
potpunosti kompatibilan sa našim raĉunalom i da ga znatno ubrzava.
Prije pojave višejezgrenih procesora, napredak u karakteristika je bio evidentan, pogotovo što se tiĉe
frekvencije rada. No naţalost, takav model nije mogao trajati vjeĉno jer su visoke frekvencije dovele do
povećane potrošnje energije i pretjeranog pregrijavanja procesora. Ti su se problemi riješili uvoĊenjem
višejezgrenih procesora koji rade na niţim frekvencijama. S druge strane, višejezgreni procesori imaju i
svoje loše strane, od kojih su se neke uspješno riješile, a nekima se još traţi rješenje. Višejezgreni procesori
su vrlo vaţno otkriće u raĉunalnom svijetu, no još nisu dovoljno razvijeni kako bi radili na maksimalnoj
efikasnosti. Vaţno je da programeri usvoje znanje paralelnog programiranja kako bi kodovi aplikacija i
programa koji se izvršavaju mogli izvući maksimalnu efikasnost iz višejezgrenog procesora. No to nije
jedini problem koji se javlja kod ove relativno neistraţene tehnologije. Adaptacija softwarea je samo jedan
od problema, još neki od problema su arhitektura procesora, suša podataka, povezanost priruĉne memorije i
radne memorije i još mnogi drugi. Ali kada se ti problemi uspješno riješe, ova će tehnologija biti puno
naprednija, efikasnija, brţa i općenito bolja od jednojezgrenih procesora..U godinama koje nam dolaze
prisustvovat ćemo razvitku ove tehnologije jer svaki dan saznajemo nešto novo, nešto što bi moglo još malo
poboljšati rad procesora sa više jezgri, nešto što bi moglo još malo poboljšati rad programa i aplikacija na
višejezgrenim procesorima, nešto što bi moglo još malo ubrzati rad procesora i sveukupan doţivljaj
korisnika raĉunala. Moram reći da se radujem tim godinama i budućim saznanjima jer me stvarno intrigira i
zanima kako će se razvijati procesori sa više jezgri, a najviše od svega me zanima koja će od dviju
arhitektura biti bolje prihvaćena i produktivnija, homogena ili heterogena arhitektura procesora?
29
LITERATURA
http://www.tayloredge.com/museum/processor/processorhistory.html
http://www.geeks.com/techtips/2005/techtips-NOV22-05.htm
http://en.wikipedia.org/wiki/Advanced_Micro_Devices
http://www.geeks.com/techtips/2005/techtips-DEC01-05.htm
http://en.wikipedia.org/wiki/VIA_Nano
http://en.wikipedia.org/wiki/TOP500
http://en.wikipedia.org/wiki/Jaguar_%28computer%29
http://en.wikipedia.org/wiki/X86
http://bs.wikipedia.org/wiki/Procesor
http://www.pantherproducts.co.uk/Articles/What_is/What_is_CPU.shtml#Types%20of%20CPU
http://www.mytechsupport.ca/content/view/30/194/
http://www.heyrick.co.uk/assembler/proctype.html
http://en.wikipedia.org/wiki/CPU_multiplier
http://en.wikipedia.org/wiki/Clock_rate
http://www.sqa.org.uk/e-learning/HardOSSupp01CD/page_19.htm
http://www.sqa.org.uk/e-learning/HardOSSupp01CD/page_15.htm
http://en.wikipedia.org/wiki/Multi-core_processor
http://en.wikipedia.org/wiki/Moore%27s_law
http://en.wikipedia.org/wiki/Amdahl%27s_law
http://en.wikipedia.org/wiki/Parallel_computing
http://en.wikipedia.org/wiki/Hyper-threading
http://www.windowsnetworking.com/articles_tutorials/Multi-Core-CPUs.html
http://www.csa.com/discoveryguides/multicore/review.pdfţ