Upload
lbungalov
View
202
Download
6
Embed Size (px)
DESCRIPTION
Mikroracunar IA-32 arhitekturaSeminarski rad 1.Uvod 2. Opšta organizacija mikroprocesora3. Organizacija x86 procesora4. Primjer rada mikroprocesora5. Osnovni IA-32registri 6. Predstavnici Intel IA-32 arhitekture7. Literatura
Citation preview
Sadržaj:
1. Uvod 2
2. Opšta organizacija mikroprocesora 4
3. Organizacija x86 procesora 7
4. Primjer rada mikroprocesora 14
5. Osnovni IA-32registri 16
6. Predstavnici Intel IA-32 arhitekture 17
7. Literatura 24
1. Uvod
x86 ili 80x86 je opšte ime mikroprocesorske arhitekture koju je izumio i razvio Intel. Prvi
put je iskorištena u 8086 procesoru 1978. godine. Ova arhitektura dominira kod ličnih i
prenosnih računara, kao i na tržištu manjih servera od 1980-tih godina kada se pojavio
IBM PC. Iako postoje i neke jače arhitekture kao IBM-ova PowerPC, do sada nijedna nije
uspjela biti raširena kao x86.
Ime je dobila po najranijim procesorima Intelove familije čiji su se modeli završavali sa
86, kao što su 8086, 80186, 386, 486 i tako dalje. Zbog lakšeg označavanja Intel je od
486 modela usvojio komercijalna imena kao što je Pentium.
2
Tabela 1 Generacije mikroprocesora
PC CPUs Year Number
of transistors
1st. Generation 8086 and 8088 1978-81 29,000
2nd. Generation 80286 1984 134,000
3rd. Generation 80386DX and 80386SX 1987-88 275,000
4th. Generation 80486SX, 80486DX,
80486DX2 and
80486DX4
1990-92 1,200,000
5th. Generation Pentium
Cyrix 6X86
AMD K5
IDT WinChip C6
1993-95
1996
1996
1997
3,100,000
--
--
3,500,000
Improved
5th. Generation
Pentium MMX
IBM/Cyrix 6x86MX
IDT WinChip2 3D
1997
1997
1998
4,500,000
6,000,000
6,000,000
6th. Generation Pentium Pro
AMD K6
Pentium II
AMD K6-2
1995
1997
1997
1998
5,500,000
8,800,000
7,500,000
9,300,000
Improved 6th. Generation Mobile Pentium II
Mobile Celeron
Pentium III
AMD K6-3
Pentium III CuMine
1999 27,400,000
18,900,000
9,300,000
?
28,000,000
7th. Generation AMD original Athlon
AMD Athlon Thunderbird
Pentium 4
1999
2000
2001
22,000,000
37,000,000
42,000,000
3
Kako se hardver poboljšavao, arhitektura je sve više napredovala. Tako je 1985. godine
Intel predstavio 32 bitni 386 kao zamjenu za 16 bitni 286. Ta arhitektura je nazvana i386,
ali se danas češće zove x86-32 ili IA-32. AMD je bio prvi koji je 2003. predstavio 64
bitnu arhitekturu korištenu u njihovom Athlon 64 procesoru. Ta arhitektura ima više
imena kao što su x86-64, AMD64 (AMD-ovo ime), EM64T, IA-32e (Intel-ovo
označavanje) i x64 (neutralno označavanje koje koriste Microsoft i Sun). Ova AMD-ova
arhitektura nema veze sa IA-64 arhitekturom koju su razvili Intel i Hewlett-Packard za
Itanium i Itanium 2 procesore.
2. Opšta organizacija mikroprocesora
Svaki sastavni dio, a time i cijeli mikroprocesor, najbolje je opisan skupom registara i
njihovom funkcijom, putevima između registara, nizom operacija koje se izvode na binarnim
informacijama skladištenim u registrima, te upravljačkim funkcijama koje rukovode tim
operacijama. Skup registara, putevi između njih, organizacija i način djelovanja upravljačke
jedinice (a time i djelovanje mikroprocesora kao cjeline) određuje arhitekturu
mikroprocesora. Većina današnjih mikroprocesora istog je tipa arhitekture. Elementi te
standardne arhitekture su sljedeći:
- upravljačka jedinica,
- aritmetičko-logička jedinica,
- jedan ili više akumulatora, skup registara opšte namene,
- adresni registri, interne sabirnice.
4
Slika Opšta arhitektura procesora
Upravljačka jedinica generiše upravljačke signale i koordinira sve aktivnosti unutar
mikroprocesora. Ona pribavlja, dekodira i omogućuje izvođenje instrukcije. Upravljačka
jedinica takođe komunicira s ostalim komponentama mikroračunara preko ulazno-izlaznih
linija - upravljačke sabirnice.
Za vrijeme faze PRIBAVI upravljačka jedinica pribavlja instrukciju i dekodira operacijski
kod. U skladu s interpretacijom operacijskog koda, mijenja stanje mikroprocesora i šalje
upravljačke signale drugim elementima mikroprocesora i mikroračunara. Niz takvih
upravljačkih signala rukovodi izvršavanjem instrukcije pribavljene iz memorije. Element iz
niza upravljačkih signala se naziva mikroinstrukcija. Mikroinstrukcija je upravljačka riječ
koja je uzrok jedne ili više istovremenih operacija - mikrooperacija. Primjeri takvih
mikrooperacija su prenosi između registara, pomak sadržaja registara i slično. Instrukcija
pribavljena iz memorije mikroračunara (makroinstrukcija) obično uslovljava izvođenje
čitavog niza mikroinstrukcija.
Aritmetičko-logička jedinica je višefunkcijski digitalni kombinacioni sklop. Ona izvršava
osnovne aritmetičke i logičke operacije. U svom sastavu ima sklopove za komplementiranje,
5
pomak, sabiranje, inkrementiranje (povećanje za 1), dekrementiranje (smanjenje za 1) i
prenos. Aritmetičko-logičkoj jedinici pridružen je registar uslova sa zastavicama (bistabilima
dojave stanja). Mikroprocesor automatski postavlja ili briše odgovarajuće zastavice - dojavne
bistabile (C,V,N,Z,H,P) u registru uslova za vrijeme izvođenja instrukcije, u zavisnosti od
rezultata aritmetičko-logičke operacije.
Zastavica C, dojavni bit prenosa, element je registra uslova i ima dve funkcije. Pohranjuje
bit kod aritmetičkog prenosa (prenos sa najznačajnijeg mjesta). Na primjer, pri sabiranju dva
broja rezultat generiše prenos u 9-ti bit. Deveti bit je skladišten u zastavici C registra uslova i
može se ispitivati, - zastavica C upotrebljava se kao bit pri operacijama posmaka.
Adresni registri su 16-bitni registri za skladištenje adresa. Nazivaju se i brojači podataka
(datacounters ili pointers). Njihova bitna karakteristika je da su spojeni na adresnu sabirnicu,
te da im sadržaj preko adresnog međuregistra i spoljne adresne sabirnice određuje adresu
memorijske riječi.
Adresni registri su:
- programsko brojilo, pomoćno programsko brojilo (program counter PC)
- brojač podataka - registar podataka (data counter DC)
- pokazivač steka (stack pointer SP),
- indeksni registar.
Programski brojač (Program Counter – PC) – procesorski registar koji drži adresu
instrukcije koja se upravo izvršava ili one koja će se sljedeća izvršiti – indicira gdje se
procesor nalazi u sljedu instrukcija. Spojeno je na adresnu sabirnicu. Nakon što se
trenutna instrukcija izvrši i dohvati nova, vrijednost brojila se automatski poveća za
jedan, ili se, u slučaju skoka, u njega zapiše adresa sljedeće instrukcije
Stek LIFO (Last-In-First-Out) memorijska je struktura koja uključuje hronološku
komponentu najstariji je podatak na dnu stoga, dok je najmlađi na vrhu.
Dekoder instrukcija – interpretira i implementira (izvršava) instrukciju – govori
procesoru šta mu instrukcija nalaže da napravi i kako – gdje se podaci nalaze u memoriji,
koju operaciju treba izvršiti na njima i sl.
Instrukcijski registar (IR) - na njemu se nalazi instrukcija koje se trenutno izvršava.
Moderni procesori pomoću pipelining tehnologije omogućavaju paralelno izvršavanje
više instrukcija
6
3. Organizacija x86 procesora
Svi novi mikroprocesori za PC računare moraju da zadovoljavaju specifikaciju „Intelove”
arhitekture koja je definisana još 1980. godine sa Intelom 8086 koji je bio procesor u
prvom IBM PC-u. Izuzetak su „Appleovi” Macintosh racunari koji se zasnivaju na drugoj
arhitekturi koja je definisana sa PowerPC procesorima prije desetak godina. Osnovne
karakteristike jedne arhitekture su vrste instrukcija koje procesor koristi, kao i broj i vrsta
unutrašnjih registara, ali i mnogo drugih detalja. Jedinstvena arhitektura obezbjeđuje da
svi programi koji rade, na primer, na „Intelovim” procesorima, moraju da rade i na
AMDovim procesorima.
S jedne strane, arhitektura postoji samo na apstraktnom nivou, pošto se mikroprocesori
drastično razlikuju između sebe, ne samo između proizvođača, nego i u okviru modela
istog proizvođača. Konkretna realizacija procesora, tj. broj i vrste blokova koji
omogućavaju da on pravilno radi zove se mikroarhitektura. Dobar primjer razlika u
mikroarhitekturi i same prirode ovog pojma jeste broj tipova instrukcija koje procesor
7
može da izvrši istovremeno. Svi moderni procesori, uključujući Pentium 4, Pentium III,
Athlon, PowerPC mogu da izvršavaju više instrukcija u isto vrijeme. Na primjer, jedan
procesor može istovremeno da izvrši četiri bilo kakve instrukcije, drugi može samo tri, a
treći tri, od kojih samo jedna može da bude memorijska operacija itd. Inače, procesori
koji mogu da izvršavaju instrukcije paralelno zovu se superskalarni (superscalar). Drugi
parametar je koliko instrukcija procesor može odjednom da zahvati iz memorije itd.
Definicija mikroarhitekture je početna faza u razvoju novog modela mikroprocesora. Cilj
je, naravno, da se mikroarhitektura napravi tako da je procesor što brži i da je u stanju da
izvršava što više instrukcija u isto vrijeme. Mikroarhitektura se ne mijenja bitno za svaki
novi procesor, pošto to zahtijeva mnogo vremena (više godina) i napora (stotine ljudi).
Na primjer, Pentium 4 ima potpuno drugaciju mikroarhitekturu od PentiumaIII koji se ne
razlikuje mnogo od Pentiuma II i Pentiuma Pro, koji je izašao 1995. godine.
Pentium se, inace, potpuno razlikuje od svih prethodnih tipova. AMD Athlon se drastično
razlikuje od AMD K6 procesora, koji se opet potpuno razlikuje od AMD K5 procesora itd.
8
Slika Interna struktura Pentium procesora
Najvažnije funkcionalne komponente ovog procesora su:
Jedinica za pribavljanje instrukcija i instrukcioni red čekanja (Perfech Unit and
Instruction Queue) pribavlja instrukcije iz instrukcijskog keša i smješta ih jednu za
drugom na FIFO (First In First Out) principu u instrukcioni red čekanja. Dubina reda
9
čekanja je relativno mala i iznosi maksimalno do 64B. Iz instrukcionog reda čekanja
instrukcije se predaju jedinici za dekodiranje instrukcija.
Jedinica za dekodiranje (Decode Unit) dekodira instrukcije i predaje odgovarajuće
upravljacke signale jedinici CU. Imajuci u vidu da se današnji savremeni RISC procesori
realizuju kao superkanalni, ova jeidnica je u stanju da istovremeno dekodira veći broj
instrukcija.
Upravljacka jedinica (Control Unit-CU) kod današnjih procesora realizuje se na
principu mikroprogramskog upravljanja- ovakav pristup je standard kod CISC procesora
i direktnog upravljanja (hardwired control)- srećemo kod RISC procesora, a karakteriše
ga brži rad i efektivno vrijeme izvršavanja od jednog ciklusa za najveći broj instrukcija.
Keš memorija koja je locirana izmedu CPU i glavne memorije, značajno doprinosi
poboljšanju ukupnih performansi, jer dozvoljava da joj procesor pristupa za znatno kraći
period u odnosu na glavnu memoriju. Kapacitet interne (on chip) keš memorije može biti
64kB pa i više. Sa ciljem da se postigne brži rad, keš memorija se dijeli na dva dijela i to:
Instrukcioni keš, I keš, i keš podataka, D keš, kojima se pristupa različitim putevima.
Veliki broj procesora je opciono projektovan za rad sa keš memorijom drugog nivoa.
Uobicajeno, internu zovemo primarni keš, a keš memoriju koja je locirana na ploči
procesora zovemo sekundarni keš. Kapacitet sekundarne keš memorije može biti reda
MB, a vijreme pristupa nešto duže u odnosu na vrijeme pristupa primarnoj keš memoriji,
ali u svakom slucaju kraće od vremena pristupa glavnoj memoriji. CPU upravlja radom
sekundarne memorije preko specijalno projektovane interne interfejs logike. Pentium III
je opremljen sa 16 KB L1 cachea za instrukcije i 16 KB L1 cachea za podatke. Pentium 4
ima samo 8 KB podatkovnog L1 cachea, dok novi Execution Trace Cache zamjenjuje L1
instrukcijski cache Pentiuma III. Intel je smanjio veličinu L1 cachea za podatke kako bi
se postigla ekstremno mala latencija od samo 2 procesorska takta. Time se poboljšao i
omjer cijena/performanse.
Jedinica za upravljanje memorijom (Memory Menagment Unit-MMU) obavlja
funkcije - prevodenje logičkih (virtualnih) adresa u realne (fizičke), prenosi fizičke
adrese kakeš memoriji i preko BIU-a predaje fizičke adrese na spoljnu magistralu.
Zahvaljujući ugrađenoj jedinici straničenja (Paging Unit-PU), podržava mehanizam
straničenja koji je karakterističan za one sisteme kod kojih postoji virtuelna memorijska
10
organizacija. Kod sistema koji imaju ugrađenu segmentacionu jedinicu podržava rad
mahanizma segmentacije.
FPU (floating point unit) – dio procesora namjenjen brzom izvođenju matematičkih
operacija s decimalnim brojevima (s pomičnim zarezom). FPU se sastoji od nekoliko
složenih digitalnih krugova, uključujući i interne ALU jedinice.
Spoljna i interna magistrala. Sprega procesora sa okolinom se ostvaruje preko spoljne
magistrale. Spoljnu magistralu čine: magistrala za podatke; adresna magistrala;
upravljačka magistrala. Magistralu za podatke čini veci broj, k (k=1,2,3,4) magistrala.
Pošto je procesor 32-bitni tada se za prenos podataka koristi 32*1=32; 32*2=64;
32*3=96; 32*4=128 bitova.
U cilju postizanja većih brzina u radu, broj internih puteva za podatke je veći od spoljnih.
Spoljna adresna magistrala kod najveceg broja procesora je 32-bitna. Ovakva koncepcija
obezbjeđuje direktan pristup 4GB-skom prostoru. Neki sistemi su projektovani za pristup
većem adresnom prostoru, tj. imaju 32+j adresnih linija. Broj internih magistrala može
biti veći od spoljašnjih. Jedna interna magistala se može koristiti za pristup L1-kešu, a
druga L2-kešu.
Jedinica za spregu sa magistralom (Bus Interface Unit - BIU ili Bus Unit - BU) ima
za cilj da ostvari funkciju razdvajanja rada internih jedinica procesora sa jedne i spoljnjeg
okruženja sa druge strane. Sastavni dijelovi BU su sljedeća tri bloka:
Interfejs podataka - povezuje sistemsku magistralu podataka sa internim jedinicama
procesora. Radi postizanja većih brzina u prenosu podataka, veze prema control unit i keš
memorijom se izvode kao direktne, a prema ostalim jedinicama preko interne magistrale.
Interfejs adresa - adresu koju generiše MMU ovaj blok direktno prenosi na spoljnu
adresnu magistralu.
Interfejs upravljanja prima i predaje veći broj upravljačkih i statusnih signala od
procesora ka spoljnjem svijetu i od spoljnjeg svijeta ka internim jedinicama procesora.
Najveći broj upravljačkih redova se direkto vodi ka upravljačkoj jedinici CU.
Execution Trace Cache - za obradu neke instrukcije procesor treba prihvatiti,
dekodovati, izvršiti instrukciju i pohraniti rezultat u memoriju. To je tzv. fetch-decode-
execute-store petlja. Sve ove operacije se izvode u jednom taktu procesora.
11
Izvršne jedinice Pentium mikroprocesora direktno razumiju samo OP (Micro-
Operation/Operand) instrukcije. OP instrukcije su vrlo jednostavne, tako da ih procesor
može vrlo brzo obraditi. Za razliku od x86 instrukcija, OP instrukcije su definisane
veličine i zbog toga se lako mogu pohraniti u izvršni cjevovod. Dekoder prevodi pristiglu
x86 instrukciju u jednu ili više OP instrukcija. Kada su one jako kompleksne
(trigonometrijske instrukcije), Micro Instruction Sequencer mora proizvesti nešto duži niz
OP instrukcija koristeći Micro Code ROM. Ovi nizovi instrukcija se nazivaju tragovi
(trace).
Trace Cache se nalazi između faze dekodovanja i faze izvršavanja. Ondje se pohranjuju
instrukcije nakon faze prihvata i dekodovanja koje su spremne za izvršavanje - OP
instrukcije. Instrukcije se pohranjuju prema redosljedu izvršavanja. Trace Cache
spremnik može primiti otprilike 12 kB OP instrukcija. Trace Cache osigurava da se
procesorski cjevovod kontinuirano opskrbljuje sa instrukcijama i to sa 3 OP instrukcije
po taktu procesora.
Branch tree prediction - jedinica predviđanja grananja se nalazi uz execution trace
cache i sadrži napredne algoritme predviđanja. Procesor predviđa koji će biti rezultat
prve instrukcije i nastavlja sa izvršavanjem prema predviđanju. U slučaju pogrešnog
predviđanja - grananja, ne mora se ponavljati cijeli ciklus nego se iz trace cachea vade
instrukcije spremne za izvršavanje.
Advanced Dynamic Execution Engine je out-of-order spekulativni execution engine,
koji osigurava konstantno izvršavanje instrukcija u izvršnim jednicama Pentiuma, tako da
osigurava vrlo veliki buffer za instrukcije "u letu" (126 instrukcija), iz kojeg izvršne
jedinice mogu birati instrukcije za izvršavanje. Out-of-order execution logika, pomoću
ovog buffera sprečava zastoje koji mogu nastati kada se podaci čitaju iz memorije,
umjesto iz bržeg cachea.
Hyper Pipelined Technology - u cjevovod se pohranjuju dekodirane x86 instrukcije. Što
je cjevovod duži, veća je i brzina izvršavanja instrukcija (slika x). U Pentiumu 4 je
integrisan produženi sistem pipeline - cjevovoda. Dok Pentium III ima cjevovod dugačak
10 faza, Pentium 4 koristi 20-fazni cjevovod. Osnovna prednost u povećanom broju faza
je postizanje većeg radnog takta procesora. Što je svaka cjevovodna faza kraća, potrebno
je manje tranzistora, pa je veća brzina rada.
12
Slika Pipeline Intelovih procesora
Glavni nedostatak kod dugačkih cjevovoda je u tome, što se kod pogrešnog predviđanja
grananja cijeli cjevovod mora isprazniti i ponovno napuniti, za šta su potrebni dodatni
taktovi. Dakle, što je cjevovod duži, potreban je veći broj taktova da se ponovno dođe do
početne tačke, jer se instrukcije moraju izvršiti od početka cjevovoda. Kako bi se umanjio
ovaj problem kašnjenja kod pogrešnih predviđanja, koriste se instrukcijski bufferi.
Cjevovod Pentiuma 4 može pohraniti do 126 instrukcija "u letu" u svoj instrukcijski
međuspremnik. Međutim napredna jedinica predviđanja grananja ima oko 90%
uspješnosti, tako da se rijetko događaju pogreške koje je potrebno ispraviti.
Rapid Execution Engine - osnovni dio su dvije double pumped ALU i AGU jedinice.
ALU je aritmetičko-logička jedinica zadužena za aritmetičke operacije kao što su
sabirnje, množenje i dijeljenje, kao i logičke operacije kao što su OR, AND, ASL, ROL
itd. AGU je jedinica za generisanje adresa, i adresiranje (apsolutno, indirektno...). Svaka
od ove četiri jedinice radi na dvostrukom taktu procesora tako da mogu prihvaćati OP
instrukcije svaku polovinu takta.
13
Slika Izvršne jedinice Pentiuma
Međutim, većina instrukcija se ne može obraditi novim Rapid Execution jedinicama, već
se za obradu takvih instrukcija koristi spora ALU jedinica, koja nije "double pumped" tj.
koja radi na taktu procesora. Crvenom bojom na slici x je prikazan FPU dio izvršnih
jednica Pentiuma 4. Intel je smanjio broj MMX/SSE jedinica kod Pentium 4 procesora
tako da on ima samo jednu MMX i jednu SSE/SSE2 jedinicu dok Pentium 3 ima po dvije
MMX i SSE jedinice.
Slika Blok dijagram Pentium 4 procesora
14
4. Primjer rada mikroprocesora
Prema slici biće prikazano izvršavanje neke instrukcije kroz strukturu mikroprocesora po koracima
Slika Princip rada mikroprocesora
Korak 1. U PC registru se nalazi adresa naredne instrukcije u programu koju treba pribaviti. Ova adresa se smješta prvo u leč_A, a nakon toga kopira u MAR i postavlja na adresnu magistralu.Korak 2. Upravljačka logika generiše signal Mem-Read, čita se memorija, a podatak koji je prisutan na magistrali za podatke se kopira u registar MDR. Nakon toga, preko multipleksera MUX, aritmetičko-logičke jedinice ALU, i pomjerača SHIFTER, sadržaj registra MDR se kopira u registar IR.Korak 3. PC se zatim inkrementira za 1, kako bi ukazao na adresu naredne instrukcije, odnosno adresu podatka koje treba pribaviti.Korak 4. Sadržaj IR-a se dekoduje od strane upravljačke logike i određuje se tip instrukcije koju treba izvršiti.Korak 5. Ako instrukcija koristi memorijske operande, određuje se gdje su oni smješteni u memoriji.
15
Korak 6. Ako je specificirano instrukcijom, podaci koji se pribavljaju iz memorije smještaju se u interne registre CPU-a.Korak 7. Izvršava se instrukcija.Korak 8. Rezultat izračunavanja smješta se na specificiranu lokaciju (memoriju ili registar).Korak 9. Prelazi se na korak 1. da bi se počelo sa izvršavanjem naredne instrukcije u programu.
Na sljedećoj slici su prikazane aktivnosti mikroprocesora u toku ciklusa instrukcije.
Slika Aktivnosti mikroprocesora u toku ciklusa instrukcije
16
5. Osnovni IA-32registri
Skup osnovnih registara IA-32 arhitekture
Registri opšte namjene čini 8 registara dužine 32 bita, to su: EAX, EBX, ECX, EDX,
ESI, EDI, ESP, EBP, a koriste se za čuvanje aritmetičkih i logičkih operanada, kao i pri
izračunavanju memorijskih adresa. Svaki od ovih registara ima za neke instrukcije
specifičnu namjenu. Segmentni registri čini 6 registara dužine 16 bita CS, SS, DS, ES,
FS, GS, a služe kao podrška segmentnoj organizaciji pristupa memoriji.
Instructor pointer registar EIP je 32-bitni registar koji čuva adresu naredne instrukcije.
Statusni registar EFLAGS je 32-bitni registar koji sadrži vrijednosti raznih flegova.
Slika3 Osnovni registri IA-32 arhitekture
17
Kod Intel-ovih 8-bitnih procesora, registri su se zvali A, B, C, D. Kod 16-bitnih
procesora, registri su bili AX, BX, CX, DX, pri čemu su viši i niži bajtovi tih registara
bili identifikovani sa sufiksima H i L respektivno (umesto X). Tako je AH označavalo
gornji bajt registra AX, a BL donji bajt registra BX. Kod IA-32 nazivima registara se
dodaje prefiks E, koji označava proširivanje, pa se stoga u Intel-ovoj tehničkoj
dokumentaciji ovi registri nazivaju EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI.
Dizajn IA-32 procesora omogućuje da program napisan na mašinskom jeziku nekog
starijeg 16-bitnog procesora korektno radi na IA-32 procesoru, ako se stanje procesora
postavi u taj režim rada. Procesor IA-32 može dinamički da se prebacuje između 16-
bitnih i 32-bitnih operacija na osnovu bajtova koji predstavljaju prefiks instrukcije
Postoji i osam registara za rad sa brojevima u pokretnom zarezu, koji sadrže bilo
dvostruke, bilo četvorostruke riječi. Ovi registri sadrže i proširenje, koje omogućuje da se
tu smjeste riječi dužine 80 bitova.
Arhitektura IA-32 je zasnovana na memorijskom modelu koji različitim oblastima
memorije (nazvanim segmenti) pridružuje različite svrhe korišćenja. Segment koda sadrži
instrukcije programa. Segment steka sadrži stek procesora, a četiri segmenta podataka su
obezbjeđena radi čuvanja podataka programa. Segmentni registri sa prethodne slike
sadrže selektorske vrijednosti, koje mogu biti korišćene u lociranju ovih segmenata u
memorijskom adresnom prostoru. Treba istaći da 32-bitna adresa kod IA-32 procesora
obezbeđuje pristup ma kojoj memorijskoj lokaciji, bez obzira da li se radi o programu,
procesorskom steku ili podacima programa.
Specijalizovani registri procesora IA-32 su brojač naredbi i statusni registar.
IA-32 procesori su dizajnirani sa namjerom obezbjeđenja kompatibilnosti sa ranijim Intel
procesorima (8086 i 80286), pa i njihovi opšti registri dopuštaju način rada koji
karakteriše njihove prethodnike, kod kojih se moglo raditi samo sa riječi ili sa bajtom i
kod kojih su bila postavljena veća ograničenja na način korišćenja pojedinih registara.
Dizajn IA-32 procesora omogućuje da program napisan na mašinskom jeziku nekog
starijeg 16-bitnog procesora korektno radi na IA-32 procesoru, ako se stanje procesora
postavi u taj režim rada. Procesor IA-32 može dinamički da se prebacuje između 16-
bitnih i 32-bitnih operacija na osnovu bajtova koji predstavljaju prefiks instrukcije.
18
6. Predstavnici Intel IA-32 arhitekture
Prvi predstavnik Intelove IA-32 arhitekture bio je Intel 8086 procesor, predstavljen 1978.
Ovaj procesor je imao 16-bitne registre i 16-bitnu eksternu sabirnicu podataka (data).
Pomoću 20-bitnog adresiranja, ovaj procesor je mogao adresirati ukupno 1 MB adresnog
prostora. Intel je 1979. izbacio 8088 procesor koji je bio identičan prethodnom, osim što
je imao manju eksternu data sabirnicu od 8 bita. To je učinjeno kako bi se procesor
mogao prilagoditi tada postojećem i vrlo popularnom 8 bitnom hardveru. Prvi PC (1981.)
posjedovao je upravo ovaj procesor. Ova dva procesora su prvi koji su omogućavali
segmentno adresiranje pomoću 16-bitnih segmentnih registara, koji sadržavaju
pokazivače na segmente veličine 64 KB.
Sljedeći predstavnik IA-32 arhitekture, Intel286, procesor iz 1982., je takođe bio 16-bitni
procesor i prvi koji je omogućavao zaštićeni (protected) način rada. Ovaj način rada je
koristio sadržaj segmentnih registara kao pokazivače na opisne tablice. Opisne tablice su
sadržavale 24-bitne bazne adrese. Na taj način bilo je moguće adresirati do 16 MB fizičke
memorije. Ovaj procesor je imao podršku za rad sa virtuelnom memorijom pomoću
zamjene segmenata. Različiti mehanizni zaštite uključuju provjeru granice segmenata,
opcije ograničavanja segmenata samo za pisanje ili samo za čitanje, te četiri nivoa
prvenstava za zaštitu koda operativnog sistema od aplikacija ili korisničkih programa.
Dodatno hardversko prekidanje zadataka i lokalnih opisnih tablica je operativnom
sistemu omogućavalo zaštitu aplikacija ili korisničkih programa jednih od drugih. Intel
80286 procesor je prvo predstavljen u 6 MHz verziji, a kasnije u verzijama 8, 10 i 12
MHz. Ovaj procesor je ugrađivan u IBM PC-AT iz 1984. godine. Jedini operativni sistem
koji je koristio ove prednosti 80286 procesora bio je OS/2.
Intel386 procesor je prvi 32-bitni procesor u porodici IA-32 arhitekture. Predstavljen je
1985 godine. Posjedovao je 32-bitne registre koji se koriste i za pohranu operanada i za
adresiranje. Nižih 16 bitova svakog 32-bitnog registra zadržalo je svojstva 16-bitnih
procesora dvije prethodne generacije, kako bi se zadržala kompatibilnost. Intel386
procesor je imao 32-bitnu adresnu sabirnicu i podržavao do 4 GB fizičke memorije.
19
32-bitna arhitektura je podržavala segmentni memorijski model i "flat" memorijski model
u kojem segmentni registri pokazuju na istu adresu, tako da je programeru unutar svakog
segmenta dostupno svih 4 GB adresnog prostora. Dodane su nove instrukcije uključujući
i one za manipulaciju bitovima, a originalne 16-bitne instrukcije su poboljšane novim 32-
bitnim. Intel386 procesor je prvi procesor u IA-32 generaciji koji je omogućavao rad sa
"stranicama". Veličina stranice bila je fiksna i iznosila 4 KB. Ova metoda je jako korisna
za operativne sisteme i potpuno transparentna za aplikacije. Sa podrškom za virtuelno
adresno područje od 4 GB, zaštitu memorije i rad sa stranicama, Intel386 procesor je bio
pogodan za napredne operativne sisteme i razne aplikacije (multitasking). Intel386
procesor je prvi procesor koji je posjedovao šest paralelnih jedinica: jedinica sabirničkog
interfejsa (pristupa memoriji i I/O za druge jedinice); jedinica za prefetch (prima objektni
kod od sabirničkog sučelja i stavlja ga u 16-bitni red); jedinica za dekodovanje instrukcije
(dekoduje objektni kod iz jedinice za peddohvat u mikrokod); jedinica za izvršavanje
(izvršava mikrokodne instrukcije); segmentna jedinica (prevodi logičke adrese u linearne
adrese i vrši zaštitne provjere); jedinica za rad sa stranicama (prevodi linearne adrese u
fizičke adrese, vrši zaštitne provjere vezane uz stranice i sadržava cache sa informacijom
o do 32 zadnje pristupane stranice).
Intel386 procesor radio je na brzinama od 16, 20 i 33 MHz. Kasnije su Cyrix i AMD
pravili klonove koji su radili na 40 MHz. 80386 je bio prvi procesor na kojemu su dobro
radile prve verzije Microsoft Windows operativnih sistema.
Intel486 procesor izbačen je na tržište 1989 godine. Imao je proširene jedinice za
dekodovanje i izvršavanje instrukcija u obliku 5 faznog cjevovoda (pipeline), kod kojeg
svaka faza po potrebi radi paralelno sa drugim fazama, sa najviše 5 instrukcija u
različitim fazama izvođenja. Svaka faza može obaviti svoj posao na jednoj instrukciji u
svakom taktu. Dakle, Intel486 može izvršiti jednu instrukciju po ciklusu takta. Procesoru
je dodano 8 KB prvog nivoa (L1) keša (na čipu). Na ovom procesoru je po prvi put
integrisan x87 FPU (Floating-Point Unit - matematički koprocesor) i dodane nove nožice,
bitovi i instrukcije za podršku kompleksnijim i moćnijim sistemima (podrška za keš
drugog nivoa L2 i višeprocesorska podrška). Prije toga se koprocesor morao instalisati
kao dodatni 387 čip. Kasnije su u razvoju Intel486 procesora uvedeni načini rada
20
procesora koji su omogućavali nižu potrošnju i štednju energije. Performanse 486
procesora bile su dva puta bolje od prethodnog 386 procesora.
Intelov 486DX4 procesor predstavljao je poboljšanu 80486 seriju. Brzina je utrostručena
sa 25 na 75 Mhz (i na 83 MHz) i sa 33 na 100 MHz. Posjedovao je 16 KB internog keša i
radio je na 3.3 V. Starije DX i DX2 verzije procesora imale su samo 8 KB cachea i bio
im je potreban radni napon od 5V što je uzrokovalo probleme sa grijanjem.
Intel Pentium procesor (predstavljen 1993 godine.) je bio sljedeći procesor u IA-32
generaciji. Njemu je dodan drugi izvršni cjevovod za postizanje superskalarnih
performansi (dva cjevovoda poznata kao u i v zajedno mogu izvršiti dvije instrukcije po
taktu procesora). Udvostručen je i L1 cache sa 8 KB za program i drugih 8 KB za
podatke. Također je dodana i jedinica predviđanja grananja kako bi se povećale
performanse. Glavni registri su još uvijek 32-bitni, ali su dodani interni putevi podataka
od 128 i 256 bitova, kako bi se ubrzao prejenos internih podataka. Eksterna sabirnica
podataka je proširena na 64 bita. Dodan je i Advanced Programmable Interrupt Controller
(APIC) za podršku sistemima sa više Pentium procesora.
Zadnjim procesorima u Pentium seriji implementirana je Intel MMX tehnologija koja
koristi jedno-instrukcijski multidata (SIMD) izvršni model za izvođenje paralelnih
operacija nad cjelobrojnim podacima, koji se nalaze u 64-bitnim MMX registrima. Brzina
prvih Pentium procesora iznosila je 60 i 66 MHz (brzina sabirnice), a zahtijevali su radni
napon od 5V. Od pojave Pentium procesora, svi kasniji procesori imaju problem sa
pretjeranim grijanjem. Verzije procesora sa 60 MHz sabirnicom bile su: P90, P120, P150,
i P180, a sa 66 MHz sabirnicom: P100, P133, P166 i P200.
Intel je 1995. godine predstavio P6 porodicu procesora. Cilj je bio postići bolje
performanse od Pentium procesora koristeći postojeći proizvodni proces.
Intel Pentium Pro procesor je bio prvi procesor baziran na P6 mikro-arhitekturi. Mogao je
izvršiti do tri instrukcije po ciklusu takta. Kod ovog procesora je uveden koncept
dinamičkog izvršavanja (dynamic execution) u superskalarnoj izvedbi. Pentium Pro je
čisti RISC procesor.
Tri jedinice za dekodovanje instrukcije su radile paralelno da bi dekodovale objektni kod
u manje operacije nazvane micro-ops (micro-architecture op-codes). Ove mikro-operacije
se pohranjuju u instrukcijski bazen i mogu se izvršavati bez reda pomoću pet paralelnih
21
jedinica za izvršavanje (dvije cjelobrojne, dvije FPU i jedna jedinica memorijskog
prostora). Snaga Pentium Pro procesora je dodatno poboljšana kešom: imao je dva 8 KB
L1 keša na čipu kao i Pentium procesori, ali i 256 KB drugog nivoa (L2) cachea
integrisanog na procesoru koji je radio na punoj brzini procesora. L2 cache je podržavao
4 ravnopravna pristupa, a 64-bitna eksterna sabirnica podataka je bila transakcijski
orijentisana, što znači da se svaki pristup obrađivao kao odvojeni zahtjev ili odgovor.
Pentium Pro procesor je također imao proširenu 36-bitnu adresnu sabirnicu, koja je
omogućavala adresni prostor od 64 GB. Ovaj procesor je imao 5.5 miliona tranzistora i
radio je na naponu od 2.9 V. Imao je vrlo velike dimenzije i odgovarajuće podnožje -
Socket 8.
Intel Pentium II procesor je predstavljen 1997. godine. Dodao je Intel MMX tehnologiju
P6 porodici procesora. Procesorska jezgra je bila pakovana u SECC (Single Edge Contact
Cartridge) kućište (242 pina) za koje je postojao odgovarajući Slot One konektor. L1 data
i instrukcijski cache su povećani na 16 KB svaki. L2 cache je podržavao kapacitet od 256
KB, 512 KB i 1 MB ali je bio odvojen od procesora i radni takt mu je bio spušten na
polovinu radnog takta procesora. Podržani su i različiti načini štednje energije kada se
procesor nalazi u idle stanju. Prve verzije Pentium II procesora proizvodile su se u 0.35
mikronskoj tehnologiji i radile su na frekvencijama od 233 MHz i 300 MHz. Kasnije se
prešlo na 0.25 mikronsku tehnologiju i ostvarene su puno veće radne frekvencije.
Pentium II Xeon procesor je predstavljen tržištu 1998. godine kao procesor namijenjen
za ugradnju u servere. Kombinovao je nekoliko najboljih karakteristika prethodne
generacije Intelovih procesora, kao što su veća skalabilnost i 2 MB L2 cachea, koji je
radio na punoj brzini procesora. Također je imao jedinstveno pakovanje za koje je bio
potreban odgovarajući Slot 2 konektor.
Intel Celeron porodica procesora je bila namijenjena tržištu jeftinih računara. Prve
verzije su bile bez L2 cachea i zbog toga su imale vrlo slabe preformanse. Zbog toga je u
svim kasnijim verzijama Celeron procesor imao integrisano 128 KB L2 cachea koji je
radio na punoj brzini procesora. Celeron je upakovan u jeftino PPGA (Plastic Pin Grid
Array) kućište. Prve verzije Celeron procesora imale su radne frekvencije od 300 MHz i
333 MHz, rađene su u 0.25 mikronskom procesu i dolazile su u Slot 1 izvedbi. Imali su
sabirnicu ograničenu na 66 MHz. Najnoviji celeroni rađeni su u 0.18 mikronskom
22
procesu, te dolaze u Socket 370 izvedbi. 2001. godine na tržište je izbačena 1200 MHz
verzija Celeron procesora (Tualatin) sa 100 MHz sistemskom sabirnicom i 256 KB L2
cachea.
Intelova Pentium II porodica procesora je imala konkurenciju u AMD-ovim K6
procesorima (1997. godine). Ovi procesori su bili kompatibilni sa Pentium procesorima
(Socket 7). Imali su 32+32 KB L1 cachea i MMX set instrukcija. Sadržavali su 8.8
milijuna tranzistora. Procesor AMD K6-200 je zhtijevao radni napon od 2.9 V. Cyrix je
također imao odgovor na Intelovu Pentium II seriju sa svojom 6X86MX (M2) serijom.
Slika 1 P6 familija procesora
Ovi procesori su također bili u Socket 7 izvedbi i posjedovali integrisanu MMX
tehnologiju. Imali su i vrlo impresivnih 64 KB L1 cachea i bili su čisti CISC procesori.
Intel je u Pentium III procesor uveo nove SSE (Streaming SIMD Extensions) ekstenzije.
SSE proširuju SIMD izvršni model predstavljen kod Intel MMX tehnologije sa novim
setom 128-bitnih registara i sposobnošću izvođenja SIMD operacija nad vrijednostima sa
pokretnim zarezom i jednostrukom preciznošću. Ove instrukcije su trebale ubrzati rad
multimedijskih aplikacija (kao AMD-ov 3DNow!).
Kao odgovor na Intelov Pentum III, AMD je proizveo novi procesor pod imenom Athlon
i predstavio ga tržištu 1999. godine. Athlon je sadržavao 22 miliona tranzistora.
Posjedovao je 128 KB L1 cachea i od 512 KB do 8 MB L2 cachea. Prve verzije rade na
frekvenciji od 500 MHz. Radni takt sistemske sabirnice za prve verzije procesora iznosi
200 MHz, a kasnije 400 MHz. FPU dio ovoga procesora se može ravnopravno mjeriti sa
23
onim kod Pentiuma III. U procesor su ugrađene 3D Now! i MMX instrukcije. Podnožje
Athlona naziva se Slot A. Novije verzije Athlona sa Thunderbird jezgrom proizvedenom
u 0.18 mikronskoj tehnologiji s 256 KB L2 cachea i novim 462-pinskim Socket A
podnožjem sadrže 37 milijuna tranzistora, a radna frekvencija im se kreće do 1 GHz.
Pentium III Xeon procesor ima L2 cache ugrađen u jezgro procesora što je omogućeno
prelaskom na 0,18 mikronsku tehnologiju. L2 cache ovdje ponovno radi na punoj brzini
procesora.
Intel Pentium 4 je prvi predstavnik Intelove NetBurst arhitekture, a ujedno i (vjerovatno)
posljednji predstavnik IA-32 arhitekture. NetBurst arhitektura je 32-bitna mikro-
arhitektura koja omogućuje procesorima rad na puno većim brzinama takta.
Intel NetBurst arhitektura: 400 MHz sistemska sabirnica (FSB); napredni prenosni cache;
Advanced Transfer Cache (već poznat kod Pentiuma III); napredno dinamičko
izvršavanje - Advanced Dynamic Execution ( Execution Trace Cache); poboljšano
predviđanje grananja - Branch Tree Prediction); Hyper Pipelined Technology; Rapid
Execution Engine; Poboljšana aritmetika pokretnog zareza i multimedije; Streaming
SIMD extensions2 (SSE2).
Performanse procesora računaju se kao proizvod radne frekvencije procesora (u MHz) i
broja instrukcija po taktu (IPC – Instructions Per Clock): Performance = MHz x IPC .
IA-32 arhitektura podržava izvršavanje u sistemskom (izvršava se operativni sistem) i
aplikativnom (izvršavanje običnih programa) režimu. ovaj mehanizam je u Intelovoj
terminologiji primijenjen preko nivoa privilegija. IA-32 arhitektura podržava 4 nivoa
označena sa level 3, level 2, level 1 i level 0. Svi registri i instrukcije procesora su
dostupni samo ukoliko se neki kod izvršava u nivou 0. U ostalim nivoima pojedini
registri i instrukcije nisu dostupni.Operativni sistem može po volji koristiti nivoe
privilegija da implementira različite režime izvršavanja.
24
7. Literatura
http://www.tomshardware.com
http://www.karbosguide.com
IA-32 Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture.
25