36
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

Mikroracunari IA-32 arhitektura seminarski

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

Page 1: Mikroracunari IA-32 arhitektura seminarski

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

Page 2: Mikroracunari IA-32 arhitektura seminarski

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

Page 3: Mikroracunari IA-32 arhitektura seminarski

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

Page 4: Mikroracunari IA-32 arhitektura seminarski

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

Page 5: Mikroracunari IA-32 arhitektura seminarski

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

Page 6: Mikroracunari IA-32 arhitektura seminarski

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

Page 7: Mikroracunari IA-32 arhitektura seminarski

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

Page 8: Mikroracunari IA-32 arhitektura seminarski

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

Page 9: Mikroracunari IA-32 arhitektura seminarski

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

Page 10: Mikroracunari IA-32 arhitektura seminarski

č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

Page 11: Mikroracunari IA-32 arhitektura seminarski

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

Page 12: Mikroracunari IA-32 arhitektura seminarski

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

Page 13: Mikroracunari IA-32 arhitektura seminarski

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

Page 14: Mikroracunari IA-32 arhitektura seminarski

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

Page 15: Mikroracunari IA-32 arhitektura seminarski

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

Page 16: Mikroracunari IA-32 arhitektura seminarski

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

Page 17: Mikroracunari IA-32 arhitektura seminarski

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

Page 18: Mikroracunari IA-32 arhitektura seminarski

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

Page 19: Mikroracunari IA-32 arhitektura seminarski

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

Page 20: Mikroracunari IA-32 arhitektura seminarski

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

Page 21: Mikroracunari IA-32 arhitektura seminarski

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

Page 22: Mikroracunari IA-32 arhitektura seminarski

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

Page 23: Mikroracunari IA-32 arhitektura seminarski

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

Page 24: Mikroracunari IA-32 arhitektura seminarski

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

Page 25: Mikroracunari IA-32 arhitektura seminarski

7. Literatura

http://www.tomshardware.com

http://www.karbosguide.com

IA-32 Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture.

25