Você está na página 1de 19

Univerzitet u Beogradu

Fakultet organizacionih nauka

SEMINARSKI RAD

iz predmeta

ARHITEKTURA RAČUNARA
I OPERATIVNI SISTEMI

na temu:

ARHITEKTURA AMD PROCESORA

Student: Profesor:
Konstantin Simić, 151/04 dr. Dejan Simić

Beograd, januar 2006.


http://www.geocities.com/kostasyug 2
_______________________________________________________________________________

Sadržaj

1. O kompaniji AMD ................................................................................ 3


2. Arhitektura 32 bitnih procesora .......................................................... 5
2.1. AM486 DX familija procesora ........................................................ 5
2.1.1. Registri....................................................................................... 6
2.1.2. Instrukcije .................................................................................. 9
2.2. AMD Athlon procesor ................................................................... 10
2.2.1. 3D Now instrukcije .................................................................. 12
3. Arhitektura 64 bitnih procesora ........................................................ 13
3.1. AMD Athlon 64.............................................................................. 14
3.1.1. Registri..................................................................................... 15
3.1.2. Instrukcije ................................................................................ 17
4. Zaključak ............................................................................................. 18
5. Literatura............................................................................................. 19
http://www.geocities.com/kostasyug 3
_______________________________________________________________________________

1. O kompaniji AMD
„Ljudi su na prvom mestu, proizvodi i
profit će doći sami od sebe!“

(Jerry Sanders, osnivač AMD-a)

Kompanija AMD (Advanced Micro Devices) osnovana je 1. maja


1969. godine i njen tadašnji glavni cilj bio je izgradnja uspešne kompanije za
proizvodnju poluprovodnika. Njen osnivač bio je Jerry Sanders sa svojih 7
saradnika. Prvi AMD-ov proizvod (1969.) bio je AMD9300, tzv. „shift
registar“1.
Već pete godine poslovanja, AMD je brojao 1500 zaposlenih i tada je
proizvodio više od 200 različitih proizvoda. Godišnji profit AMD-a tada je
Slika 1.1 bio oko 26,5 miliona dolara. Godine 1975, AMD postaje poznat po svoja dva
proizvoda: svom prvom memorijskom čipu Am9102, kao i procesoru 8080A,
koji je predstavljao alternativu Intel-ovom procesoru 8080. Navedeni procesor je bio prvi AMD-ov
procesor. Drugi značajni proizvod koji datira iz iste godine jeste familija procesora Am2900, koja
pripada „bit-slice“2 familiji procesora. Za potrošače, Am2900 značio je smanjeno zagrevanje i
povećanu brzinu, zahvaljujući bipolarnoj čip tehnologiji. Za programere, ova familija procesora je
predstavljala mogućnost pisanja sopstvenih setova instrukcija za aplikacije, kao i značajno
povećanje fleksibilnosti programiranja. Te iste, 1975 godine, stopa rasta preduzeća premašila je 60
%.
Osamdesetih godina XX veka, AMD se orijentisao na proizvodnju visoko-kvalitetnih
klonova, odnosno alternativa, x86 procesora. Godine 1981, prodaja se više nego udvostručila u
odnosu na 1979. godinu. Tada je AMD uveo INT.STD.1000, u to vreme aktuelan standard za
kvalitet u proizvodnji.
Godine 1986, AMD je lansirao prvi EEPROM3 kapaciteta od milion bitova. Time je
povećana fleksibilnost i kapacitet jedne od najvažnijih računarskih
komponenti. Nešto kasnije, uspostavljena je saradnja sa Sony-jem, što je
doprinelo razvoju CMOS-a4.
Početkom 90-tih godina, AMD je uspeo da dobije licencu za
proizvodnju alternativnih rešenja na tržištu PC poluprovodnika. Godine
1991, AMD je proizveo procesor Am386 (sl. 1.1), koji predstavlja
alternativu 80386 procesora i karakteriše ga veći takt časovnika i manja
potrošnja energije od konkurenta. Godine 1994, na tržištu se pojavljuje
familija procesora Am486 koji su u svoje računare ugrađivali Compaq i Slika 1.2
drugi proizvođači računara.
U tom periodu, Flash memorija je počela masovno da se koristi, umesto dotadašnje
EEPROM, kao dominantno postojano memorijsko rešenje. Tada je AMD razvio sopstvene
algoritme za sigurnije skladištenje podataka.

1
Shift registar je elektronsko kolo koje se sastoji iz serije memorijskih lokacija. Tokom svakog ciklusa časovnika,
informacija iz svake lokacije se pomera (shiftuje) u susednu lokaciju.
2
Bit-slice predstavlja tehniku konstruisanja procesora iz modula, gde svaki procesira jedno bit-polje, odnosno „slice“
operanda.
3
EEPROM (eng. Electrically Erasable Programmable Read-Only Memory) predstavlja memoriju koju je moguće
brisati i reprogramirati.
4
CMOS (eng. Complementary Metal Oxide Semiconductor) je tehnologija za poluprovodničke elemente
sa veoma malom potrošnjom energije.
http://www.geocities.com/kostasyug 4
_______________________________________________________________________________

Godina 1997. je svakako značajna za razvoj kompanije AMD, jer je tada sklopila
partnerstvo sa NexGen-om, radi razvoja AMD-K6® procesora. Nakon objavljivanja ovog
procesora, povratak konkurencije na tržište računarskih komponenti uveo je novi koncept –
personalne računare koje po ceni mogu priuštiti i obični ljudi.
Godine 1998, AMD je izbacio AMD-K6-2 procesor koji je uveo 3DNow!™ tehnologiju. Ta
tehnologija je prva tehnologija kod x86 procesora koja znatno poboljšava performanse 3D grafike,
multimediju i ostale aplikacije koje koriste operacije sa pokretnim zarezom.
Sledeći cilj AMD-a bio je da proizvede sopstveni Windows kompatibilni procesor, za
razliku od prethodnih koji su, u stvari, bili klonovi Intel-ovih procesora. To se i ostvarilo 1999.
godine, kada je proizveden AMD Athlon™ procesor. To je prvi AMD-ov procesor koji je koristio
matične ploče i skupove čipova optimizovane specijalno za njega.
Naredne, 2000. godine, AMD razvija MirrorBit™ tehnologiju.
To je tehnologija koja omogućava da Flash memorija skladišti duplo više
podataka od standardne Flash memorije, bez gubitaka standardnih
performansi. MirrorBit tehnologija je od izuzetnog značaja za razvoj
mobilnih telefona i PDA uređaja. Iste godine proizveden je prvi Athlon
procesor koji radi na frekvenciji od 1 GHz. Tada je lansirana i Mobile
AMD-K6®-2+ familija procesora sa novom PowerNow!™
tehnologijom koja je omogućila tiši rad notebook sistema, uključujući i
duži vek trajanja baterije. Oktobra meseca 2000. godine, pojavio se skup
Slika 1.3 čipova AMD-760™, prva komercijalna PC platforma koja podržava
DDR (eng. Double Data Rate) memorijsku tehnologiju.
Godine 2001, AMD je objavio prvo svoje višeprocesorsko rešenje, zasnovano na Athlon™
MP procesoru i AMD-760™ MP skupu čipova. U oktobru iste godine, lansiran je procesor Athlon
XP koji se zasniva na AMD's QuantiSpeed™ arhitekturi i 3DNow!™ Professional tehnologiji.
Godine 2002, AMD je počeo da proizvodi Athlon procesore u 0.13 mikronskoj tehnologiji.
Tada je proizveden i AMD Alchemy™ Au1100™ procesor.
Godine 2003, AMD je proizveo svoj prvi 64 bitni procesor. To je bio Opteron™ (sl. 1.2),
predviđen prvenstveno za servere i radne stanice. Septembra 2003, AMD je proizveo Athlon™ 64
(sl. 1.3) koji ujedno predstavlja i prvi 64 bitni procesor namenjen krajnjim, kućnim korisnicima.
Veoma je bitno što je on zadržao kompatibilnost izvršavanja 32 bitnih aplikacija.
Jula 2004. godine, pojavljuje se procesor AMD Sempron™ (sl. 1.4), verziju Athlon 64
procesora nešto oslabljenih performansi. Sempron je, zbog svoje niže cene, prvenstveno namenjen
manje zahtevnim kućnim korisnicima. Narednog meseca, AMD objavljuje i prvi x86 procesor sa
dva jezgra.

Slika 1.4
http://www.geocities.com/kostasyug 5
_______________________________________________________________________________

2. Arhitektura 32 bitnih procesora


2.1. AM486 DX familija procesora

Procesori iz familije procesora AM486DX su 32 bitni, izrađeni u 0.7 mikronskoj tehnologiji


i baziraju se na RISC arhitekturi. Njih karakteriše 100 % kompatibilnost sa 386 arhitekturom (tzv.
downward compatibility). Navedeni procesori sadrže preko milion tranzistora. Često korišćene
instrukcije izvršavaju se u jednom ciklusu. U poređenju sa starijim procesorima, AM486 familiju
karakteriše write-back cache. To je metoda keširanja kod koje se promene u cache-memoriji ne
kopiraju u izvor keširanja (primarnu memoriju), sve dok to nije neophodno. Ova metoda se
razlikuje od write-through metode kod koje se podaci u primarnu memoriju i L1 cache upisuju
istovremeno. Takođe, ova familija procesora sadrži i jedinicu za rad sa operacijama sa pokretnim
zarezom. Kod ovih procesora, RISC arhitektura se koristi radi smanjenja broja ciklusa potrebnih za
izvršavanje instrukcije.
AM486 procesori mogu da rade u dva režima: real address mode (real mode) i virtual
address mode (protected mode). U real mode-u, AM486 procesor radi kao veoma brz 8086
procesor. On prvenstveno služi za podešavanje procesora za rad u protected mode-u. Protected
mode omogućava upravljanje memorijskim straničenjem (eng. paging).
Na slici 2.1.1 prikazan je blok dijagram rada AM486 DX procesora. Instrukcija iz cache
memorije kapaciteta 16 kilobajta prosleđuje se u Prefetcher, koji u stvari služi za kreiranje reda
čekanja sastavljenog od instrukcija koje treba da se analiziraju (dekodiraju), što se vrši u okviru dela
procesora koji se naziva Instruction Decode. Nakon toga, rezultati se upisuju u odgovarajuće
registre.

Slika 2.1.1
http://www.geocities.com/kostasyug 6
_______________________________________________________________________________

2.1.1. Registri

Treba napomenuti da AM486 procesori sadrže veliki broj registara koji mogu da se grupišu
u nekoliko grupa:

™ Osnovni registri
o Registri opšte namene
o Pokazivač instrukcija (Instruction Pointer)
o Registri sa flag-ovima
o Segmentni registri
™ System Level registri
o Kontrolni registri
o Registri sistemskih adresa
™ Registri za rad sa operacijama u pokretnom zarezu
o Registri podataka
o Tag Word
o Status Word
o Pokazivači na instrukcije i podatke (Instruction And Data Pointers)
™ Control Word
™ Debug i Test registri

Postoji osam registara opšte namene. Oni mogu da skladište adrese ili podatke. Podržavaju
operande podataka dužine od 1, 8, 16 ili 32 bita, dužina polja može biti između 1 i 32 bita. Adresni
operandi mogu biti 16 ili 32 bita. Registri opšte namene su: EAX, EBX, ECX, EDX, ESI, EDI,
EBP i ESP.
Pokazivač instrukcija je 32-bitan registar EIP i on sadrži adresu sledeće instrukcije koja će
biti izvršena. Drugačije se naziva brojač naredbi (Program Counter).
Procesorski flag-ovi skladište informacije o pojedinim procesorskim funkcijama. Oni se
nalaze u registrima sa flag-ovima. Kod AM486, naziv ovog registra je EFLAGS (sl. 2.1.2). On
kontroliše pojedine operacije i informiše o statusu procesora. Registar EFLAGS sadrži i podregistar
FLAGS (od 0. do 15. bita) koji se najviše koristi za izvršavanje 8086 i 80286 koda. Ukratko ćemo
analizirati pojedine bitove EFLAGS registra5.
AC (alignment check, bit 18) omogućava generisanje grešaka pri pozivanju adrese koja nije
složena (misaligned).
VM (virtual 8086 mode, bit 17), ukoliko se uključi (postavi na vrednost 1), omogućava 8086
virtuelni režim u Protected Mode-u rada procesora.
RM (resume flag, bit 16) se koristi kod breakpoint-a debug registra. Ukoliko se uključi,
svaka greška kod debug-ovanja se ignoriše pri izvršavanju sledeće instrukcije.
NT (nested task, bit 14) je flag koji se koristi u Protected Mode-u. On služi kao indikator da
li je trenutno izvršavan zadatak povezan sa nekim drugim zadatkom.
IOPL (Input/Output Privilege Level, bitovi 13 i 12) pokazuje najveću vrednost CPL (current
privilege level) dozvoljenu za izvršavanje ulazno-izlaznih instrukcija bez generisanja izuzetka broj
13 ili konsultovanja IO Permission Bitmape.
OF (overflow flag, bit 11) dobija vrednost 1 ukoliko se umesto rezultata operacije dobije
greška overflow. Do overflow greške može doći, recimo, pri traženju veoma velikog stepena nekog
broja.

5
Napomena: Kao što je prikazano na slici 2.1.2, bitovi 1, 3, 5, 15 i 19-35 su „nedefinisani“ i zbog toga nisu opisani u
daljem tekstu.
http://www.geocities.com/kostasyug 7
_______________________________________________________________________________

Slika 2.1.2

DF (direction flag, bit 10) definiše da li se ESI i/ili EDI registri inkrementiraju ili
dekrementiraju u toku izvršavanja string instrukcija.
IF (INTR enable flag, bit 9, kada je uključen, dozvoljava detekciju spoljnih prekida
signaliziranih na INTR pinu.
TF (trap enable flag, bit 8) kontroliše generalizaciju izuzetka 1 pri debugovanju.
SF (sign flag, bit 7) je uključen ako je prvi bit rezultata jedan (ako je rezultat negativan). U
protivnom, SF se resetuje.
ZF (zero flag, bit 6) ima vrednost jedan ukoliko su svi bitovi rezultata 0.
AF (auxilliary carry flag, bit 4) koristi se radi pojednostavljenja operacija sabiranja i
oduzimanja
PF (parity flags, bit 2) je uključen ukoliko je poslednjih osam bitova operacije sadržan
neparan broj jedinica.
CF (carry flag, bit 0) je uključen ako operacija rezultuje sabiranjem ili oduzimanjem u high-
order bitu.
Segmentni registri (ima ih 6, to su: CS, SS, DS, ES, FS i GS) skladišti vrednosti segment
selector-a koje identifikuju trenutno adresibilne segmente memorije.
System Level registri kontrolišu operacije na on-chip cache memoriji, zatim on-chip jedinici
za rad sa pokretnim zarezom, kao i mehanizme za straničenje i segmentaciju.
Set registara za rad sa operacijama u pokretnom zarezu (slika 2.1.3) sastoji se od registara
podataka, tag word registra, kontrolnog registra, statusnog registra i pokazivača na instrukcije i
podatke. Razmotrićemo neke od ovih registara.
http://www.geocities.com/kostasyug 8
_______________________________________________________________________________

Slika 2.1.3

Kao što se vidi na slici, postoji 8 registara podataka (od R0 do R7) dužine po 80 bita. Svaki
od ovih registara je podeljen na tri polja: znak (dužine 1 bita), eksponent (15 bitova) i mantisu (64
bita). FPU6 registrima je moguće pristupiti na dva načina: kao steku ili fiksnom setu registara gde se
instrukcije izvršavaju uz pomoć posebnih registara.
TOP polje statusne reči identifikuje trenutni registar vrha steka (sl. 2.1.4).

Slika 2.1.4

6
FPU (eng. Floating Point Unit) je jedinica za rad sa operacijama u pokretnom zarezu.
http://www.geocities.com/kostasyug 9
_______________________________________________________________________________

Operacija PUSH dekrementira TOP polje i učitava vrednost u novi registar na vrhu, a
operacija POP sklanja vrednost sa vrha steka i zatim inkrementira TOP.
Tag word obeležava sadržaj svakog numeričkog registra podataka. On prvenstveno služi da
optimizuje performanse FPU-a i upravljanja stekom tako što smanjuje razliku između praznih i
punih registarskih lokacija.
Status word (statusna reč) je 16-bitni registar koji ima ulogu da prati ukupno stanje rada
FPU.
Debug registri, kojih ima šest, omogućavaju on-chip podršku za debugovanje. Oni služe za
postavljanje breakpoint-a.

2.1.2. Instrukcije

Setovi instrukcija AM486 DX procesora mogu da se podele u jedanaest kategorija operacija:

™ Transferi podataka
™ Aritmetičke
™ Operacije pomeranja i rotiranja (Shift i Rotate)
™ Manipulacija sa stringovima
™ Manipulacija sa bitovima
™ Kontrolni transferi
™ Podrška viših programskih jezika
™ Podrška operativnog sistema
™ Kontrola procesora
™ Operacije za rad u pokretnom zarezu
™ Kontroler operacija za rad u pokretnom zarezu

Instrukcije AM486 procesora mogu da rade sa 0, 1, 2 ili 3 operanda, što u stvari znači da
mogu biti nulaadresne, jednoadresne, dvoadresne ili troadresne. Većina nulaadresnih instrukcija je
veličine od samo jednog bajta (npr. CLI, STI). Jednoadresne instrukcije obično su dužine 2 bajta, a
prosečna veličina instrukcija je 3.2 bajta. Pošto AM486 DX procesori imaju 32 bajtni red čekanja
instrukcija, odjednom se u proseku može uzeti deset instrukcija. Primeri opštih instrukcija sa dva
operanda su:

™ Register to Register
™ Memory to Register
™ Memory to Memory
™ Immediate to Register
™ Register to Memory
™ Immediate to Memory

Operandi mogu biti dužine od 8, 16 ili 32 bita. U opštem slučaju, pri izvršavanju 486 ili 386
mikroprocesorskog koda (32-bitni kod), operandi su osmobitni ili tridesetdvobitni, a pri izvršavanju
80286 ili 8086 instrukcija (16-bitni kod), operandi su osmobitni ili šesnaestobitni.
http://www.geocities.com/kostasyug 10
_______________________________________________________________________________

2.2. AMD Athlon procesor

Athlon procesor se zasniva na sedmoj generaciji x86 mikroarhitekture koju karakteriše


superpipeline paralelizam i superskalarna mikroarhitektura. Sa svojih 22 miliona tranzistora, Athlon
ima dvostruku cache memoriju prvog nivoa kapaciteta 128 KB, od toga 64 KB predstavlja cache za
instrukcije i još 64 KB cache za podatke. Kapacitet Level 2 cache memorije iznosi 512 KB i u
pitanju je dvostruko asocijativni cache. Ovaj procesor takođe poseduje dvosmernu tablicu
predviđanja (Prediction Table), koja služi za predviđanje grananja, odnosno skokova, zatim više
paralelnih dekodera x86 instrukcija, kao i više celobrojnih i decimalnih raspoređivača (Scheduler)
koji služe za nezavisno, superskalarno, out-of-order7 izvršavanje instrukcija.
Athlon je, kao K7 procesor, bio izgrađen u 0.25 mikronskoj tehnologiji. Međutim, jezgro
ovog procesora je, tokom razvoja, modifikovano. Postoji tri različita „modifikovana“ jezgra:
Thunderbird, Thoroughbred i Barton. Thunderbird jezgro je izgrađeno u 0.18 mikronskoj
tehnologiji, a Thoroughbred i Barton u 0.13 mikronskoj tehnologiji.
Athlon ima tri dekodera x86 instrukcija. Pošto Athlon, poput ostalih AMD procesora, ne
izvršava direktno x86 instrukcije, funkcija ovih dekodera je da prevedu x86 instrukcije u
makrooperacije8 fiksne dužine. Važno je to što su instrukcije iste dužine, jer to omogućava
jednostavnije korišćenje pipelining-a (slika 2.2.1). Ovo je dobro, zbog veće brzine dekodiranja u
odnosu na direktno dekodiranje x86 instrukcija, koje su promenljivih dužina (od 1 do 15 bita).

Slika 2.2.1

Blok šema Athlon procesora prikazana je na slici 2.2.2.


Kao što možemo videti, iz L1 cache memorije za instrukcije, x86 instrukcije „putuju“ do
dekodera. Zatim se proverava da li se sledeća instrukcija nalazi u L1 cache-u. Ukoliko ovo nije
slučaj, ta instrukcija se uzima iz L2 cache memorije i smešta u L1 cache. Kada smo uzeli
instrukciju, Predecode proces proverava da li instrukcija dovodi do grananja. Predecode cache je
kapaciteta 24 KB i on skladišti informacije o grananju, za čije se predviđanje koristi tablica
predviđanja grananja. Bitno je napomenuti da se kod pogrešnog predviđanja grananja gubi veliki
broj ciklusa rada procesora.

7
Termin out-of-order se koristi za instrukcije koje se izvršavaju bez nekog tačno utvrđenog reda.
8
To su RISC operacije. Termin je analogan Intel-ovom terminu mikrooperacije.
http://www.geocities.com/kostasyug 11
_______________________________________________________________________________

Slika 2.2.2

Za analiziranje instrukcija, postoji četiri dekodera, prikazana na slici 2.2.3. To su tri


identična, paralelna DIRECT PATH dekodera koji služe za dekodiranje jednostavnih instrukcija i
jedan VECTOR PATH dekoder koji je namenjen za dekodiranje složenijih instrukcija. Na osnovu
x86 ulaznih instrukcija, DIRECT PATH dekoderi generišu svaki po jednu izlaznu makrooperaciju.
Kod složenih x86 instrukcija, VECTOR PATH, uz pomoć MROM-a, generiše sekvencu koja se
razbija na tri makrooperacije.

Slika 2.2.3
http://www.geocities.com/kostasyug 12
_______________________________________________________________________________

Poslednja faza fetch-decode-execute ciklusa jeste izvršavanje instrukcija. Na Athlon


procesorima, ovo se radi pomoću jedinice koja se naziva Instruction Control Unit, ili skraćeno
ICU (vidi blok šemu). ICU ima memoriju za 72 ulazne makrooperacije. U zavisnosti da li je u
pitanju celobrojna ili decimalna operacija, makrooperacije se prosleđuju u odgovarajući
raspoređivač instrukcija.
Integer Scheduler, kapaciteta 18 makrooperacija, služi da bi konvertovao celobrojne
makrooperacije u elementarne RISC operacije. Nakon konvertovanja, ovaj raspoređivač prosleđuje
generisane RISC operacije komponentama IEU (Instruction Execution Unit) i AGU (Address
Generating Unit), kojih ima po 3, što omogućava istovremenu obradu tri RISC operacije. Sam
proces računanja sa celobrojnim brojevima vrši IEU, dok AGU služi za pristup memoriji. Rezultati
operacija se upisuju u Load/Store Queque jedinicu.
Za rad sa decimalnim brojevima, MMX i 3D NOW instrukcijama, zadužen je Float Point
Scheduler, kapaciteta od 36 makrooperacija. On raspoređuje operacije po principu out-of-order.
FPU registarski fajl kapaciteta 88 makrooperacija služi za čitanje operanada.
Najbitniji deo kod izvršavanja FP instrukcija se dešava u komponentama FADD (operacije
sabiranja i oduzimanja), FMUL (operacije množenja i deljenja) i FSTORE (skladištenje vrednosti).
Ove tri komponente rade paralelno.
Load/Store red čekanja (Load Store Queue) služi za upravljanje memorijom, kontroliše
uzimanje operanada i skladištenje rezultata. Pomoću funkcije reda čekanja, kapaciteta 44 mesta,
podaci se upisuju u cache memoriju. Memorijskim adresama, LSQ pristupa po out-order principu.

2.2.1. 3D Now instrukcije

Athlon procesori su obogaćeni setom instrukcija, nazvanim 3D Now Enhanced koji, pored
već postojeće 21 3D Now instrukcije (koje su koristile FP instrukcije u cilju ubrzavanja
(akceleracije) trodimenzionalne grafike), obuhvataju i 24 novih instrukcija, koje karakteriše sledeće:

™ Dvanaest instrukcija koje poboljšavaju multimedijalna celobrojna izračunavanja.


Ovo se primenjuje najviše u programima za prepoznavanje glasa i montažu video
materijala.
™ Sedam instrukcija koje ubrzavaju pomeranje podataka u cilju detaljnije grafike i
funkcionalnosti dodataka (plugins) za Internet browsere.
™ Pet instrukcija za procesiranje digitalnog video signala, što poboljšava performanse
komunikacionih aplikacija.
http://www.geocities.com/kostasyug 13
_______________________________________________________________________________

3. Arhitektura 64 bitnih procesora


Pojava 64 bitnih procesora u svakom slučaju predstavlja svojevrsnu revoluciju u svetu
računarskih tehnologija. Prvi 64-bitni procesor je bio R4000, proizvođača MIPS Technologies, koji
datira iz davne 1991. godine. On se koristio za SGI grafičke radne stanice i pokretao je 64-bitni
operativni sistem IRIX, zasnovan na UNIX-u. Nakon ovog procesora, kompanije kao što su IBM,
SUN i HP, napravile su svoje 64 bitne procesore. Međutim, oni su bili namenjeni velikim
serverskim sistemima. Možemo reći da su 64 bitni procesori počeli masovnije da se proizvode tek
kada je Intel 2001. objavio svoj serverski 64 bitni procesor Itanium. Godine 2003, AMD je proizveo
procesore Opteron i Athlon 64, koji je već namenjen za krajnje korisnike. Trenutno je to jedini 64-
bitni procesor za krajnje kućne korisnike.
Sada, kada je počeo proces migracije sa 32 bitne na 64 bitnu arhitekturu, susrećemo se sa
brojnim problemima. Prvo, većinu operativnih sistema je potrebno modifikovati da bi mogli da
upravljaju novom arhitekturom. Zatim, javlja se problem nekompatibilnosti starih, 32 bitnih
aplikacija. Ovaj problem je moguće rešiti na dva načina: pomoću režima hardverske
kompatibilnosti, što se rešava softverskom emulacijom, ili hardverskom implementacijom 32 bitnog
jezgra u 64 bitne procesore.
Iako nema sumnje da je primena 64 bitnih procesora značajna kod 64 bitnih programa koji
rade sa velikom količinom podataka (npr. rad sa velikim bazama podataka), još uvek je diskutabilno
da li se 32 bitne aplikacije brže izvršavaju na 32 bitnim procesorima ili na 64 bitnim (pokrenutim u
režimu kompatibilnosti).
64 bitna arhitektura se zasniva na korišćenju 64-bitnih registara umesto dosadašnjih 32-
bitnih. Upotreba većih registara dolazi do izražaja pri radu sa celim brojevima većim od 32 bita, što
je relativno neuobičajeno za današnji softver.
Kada je reč o FP operacijama, 64-bitni registri daju veću preciznost, jer može da stane više
brojeva iza decimalnog zareza. Međutim, kod x86 arhitekture, FP registri su 80-bitni (vidi sliku
2.1.3), tako da se ovde ne dobija prednost u odnosu na 32-bitnu arhitekturu.
Na slici 3.1 plastično je prikazana razlika između 32 bitne i 64 bitne arhitekture.

Slika 3.1
http://www.geocities.com/kostasyug 14
_______________________________________________________________________________

Crna polja predstavljaju kod, bela polja podatke, a siva polja rezultate. Crvena boja služi da
prikaže promenu u širini polja (kvadratići su 32 bitna polja, a pravougaonici 64 bitna polja).
Primećujemo da polja sa kodom ostaju nepromenjena, a polja sa podacima i rezultatima postaju
šira. Uočićemo da se i širina toka podataka udvostručila.
Dakle, postavlja se pitanje koja je svrha 64-bitne arhitekture? Odgovor leži u memoriji. Da
bi procesor pristupio nekom delu memorije radi čitanja ili upisivanja podataka, potrebno je da zna
adresu memorijske lokacije, predstavljenu celim brojem.
Prema tome, 32-bitni registri mogu pristupiti do 4.3 milijardi memorijskih adresa, što u
stvari predstavlja 4 GB fizičke memorije. 64-bitni procesor može da pristupi preko 18 petabajta9
fizičke memorije. To je naročito bitno kod rada sa velikim bazama podataka, gde je memorija od 4
GB bila premala.
Intel-ov i AMD-ov pristup 64-bitnoj arhitekturi je značajno drugačiji. Dok je Intel razvio
potpuno novu, drugačiju arhitekturu od x86, što bi primoralo programere da razvijaju nova
softverska rešenja ili da koriste emulacije, AMD je jednostavno proširio postojeću x86 arhitekturu
novim 64-bitnim registrima.

3.1. AMD Athlon 64

Slika 3.1.1 prikazuje osnovne komponente Athlon 64 procesora. To su: integrisani kontroler
DDR memorije, jezgro procesora, L1 cache za instrukcije, L1 cache za podatke, L2 cache i
implementirana HyperTransport tehnologija.

Slika 3.1.1

HyperTransport tehnologija predstavlja veoma brzu point-to-point10 vezu koja služi za


višestruko povećanje brzine između integrisanih kola, servera i telekomunikacionih komponenata u
odnosu na neke već postojeće tehnologije. Ova tehnologija omogućava smanjenje broja magistrala,
što može doprineti smanjenju uskih grla i što može omogućiti efikasnije korišćenje procesora u
multiprocesorskim sistemima.

9
Jedan petabajt iznosi 1024 terabajta, odnosno 10245 bajtova.
10
Point-to-point predstavlja tip veze sa samo dve završne tačke.
http://www.geocities.com/kostasyug 15
_______________________________________________________________________________

Značajne novine kod Athlon 64 procesora su sledeće:

™ 8 novih registara opšte namene (GPR)


™ Svih 16 GPR-a su 64-bitni
™ Postoji 8 novih XMM registara
™ Uniformno bajt-registarsko adresiranje GPR
™ Novi prefiks instrukcija (REX) pristupa proširenim registrima

Ovaj procesor podržava i 16-bitne i 32-bitne aplikacije, zahvaljujući svojim režimima rada,
koji su prikazani na tabeli 3.1.1.

Tabela 3.1.1

Dakle, postoji dva osnovna režima rada: Legacy Mode i Long Mode. Legacy Mode je
striktno kompatibilan 16-bitni, odnosno 32-bitni režim rada, što znači da pod ovim režimom ne
može da radi 64-bitan operativni sistem. O ovim režimima rada bilo je reči pri opisivanju AM486
procesora.
Long Mode je 64-bitni režim rada. U okviru njega, postoji dva podrežima rada: 64-bit Mode
i Compatibility Mode. U svakom slučaju, svaki od ovih podrežima radi pod 64-bitnim operativnim
sistemom, s tim što 64-Bit Mode radi sa 64-bitnim, a Compatibility Mode sa 32-bitnim, odnosno
16-bitnim aplikacijama.

3.1.1. Registri

Registri procesora Athlon 64 mogu se podeliti na dve velike grupe. To su registri za rad u
64-bitnom režimu rada i registri za rad u kompatibilnom, odnosno legacy režimu. Podela registara
po kategorijama prikazana je u tabeli 3.1.2.
http://www.geocities.com/kostasyug 16
_______________________________________________________________________________

Tabela 3.1.2

Legacy x86 arhitektura podržava 8 GPR registara. Međutim, u praksi, upotreba najmanje
četiri registra povlači kompromis, zato što oni u slučaju izvršavanja velikog broja instrukcija, vrše
specijalne funkcije.
U AMD 64 arhitekturi, dodato je 8 novih GPR registara. Takođe je povećana širina
registara sa 32 na 64 bita. Registri su šematski prikazani na slici 3.1.2

Slika 3.1.2
http://www.geocities.com/kostasyug 17
_______________________________________________________________________________

3.1.2. Instrukcije

AMD 64 arhitektura je potpuno kompatibilna sa x86 arhitekturom. Dodate su nove


instrukcije koje podržavaju long mode. Instrukcije su organizovane na sledeći način:

™ Instrukcije opšte namene (General Purpose Instructions) predstavljaju osnovne


celobrojne istrukcije koje se koriste u gotovo svim programima. Većina ovih
instrukcija učitava, skladišti ili manipuliše sa podacima koji se nalaze u GPR
registrima ili u memoriji.
™ 128-bitne medijske instrukcije. Postoje SMID proširene instrukcije (SSE, SSE 2,
SSE 3) koje učitavaju, skladište ili manipulišu podacima koji se prvenstveno nalaze
na 128-bitnim XMM registrima. One mogu da procesuiraju celobrojne i FP
operacije na vektorskim i skalarnim tipovima podataka. Pošto vektorske instrukcije
mogu nezavisno i istovremeno izvršavati jednu operaciju na više setova podataka,
po Flynn-ovoj klasifikaciji, možemo ih ubrojati u single instruction-multiple data
(SIMD) instrukcije.
™ 64-bitne medijske instrukcije predstavljaju tehnološke instrukcije za MMX
(MultiMedia eXtension) i 3D Now tehnološke instrukcije. One učitavaju podatke,
memorišu ih ili manipulišu sa podacima koji se prvenstveno nalaze na 64-bitnim
MMX registrima. Isto rade sa skalarnim i vektorskim tipovima podataka. Takođe, i
ove su instrukcije SIMD tipa i korisne su u medijskim aplikacijama koje rade sa
blokovima podataka.
™ X87 FP instrukcije su instrukcije korišćene u x87 aplikacijama. One učitavaju,
beleže ili manipulišu podacima u legacy x87 aplikacijama.

Neke od instrukcija povezuju dva ili više setova instrukcija. Na primer, postoje takve
instrukcije koje premeštaju podatke iz registara opšte namene u XMM ili MMX registre, a mnoge
celobrojne vektor instrukcije mogu raditi na XMM ili MMX registrima, iako ne istovremeno.

Medijske instrukcije, kao što su obrada slika ili prepoznavanje govora, imaju neke
zajedničke karakteristike:

™ Procesiraju velike količine podataka


™ Često nad podacima ponavljaju iste operacije
™ Podaci su često predstavljeni malim količinama, na primer 16 bita za audio snimak.

64-bitne i 128-bitne medijske instrukcije su napravljene da ubrzaju multimedijalne


aplikacije. Ove instrukcije koriste oblik vektorskog paralelnog procesiranja, poznatijeg kao Single
Instruction Multiple Date (SIMD). Ta vektorska tehnologija ima sledeće karakteristike:

™ Jedan registar može skladištiti više nezavisnih podataka.


™ Vektorska instrukcija može da manipuliše svim podacima u registru, nezavisno i
istovremeno.

128-bitne i 64-bitne medijske instrukcije u stvari predstavljaju jedan vid nadogradnje SIMD
vektor tehnologije, jer su uključene neke specijalne instrukcije koje pokreću česte operacije u
multimedijalnim programima. Na primer, podešavanje osvetljenja ekrana (brightness) u nekoj
grafičkoj aplikaciji se sada vrši uz pomoć aritmetičkih instrukcija.
http://www.geocities.com/kostasyug 18
_______________________________________________________________________________

4. Zaključak
U svetu mikroprocesora, Intel je imao apsolutni primat sve do kraja devedesetih godina
prošlog veka. Uprkos dugoj tradiciji kompanije, AMD je tek tada postao ozbiljan Intelov konkurent,
najviše zahvaljujući svojoj inovativnosti, za razliku od ranijeg „kopiranja proizvoda“. Ovde je na
jednom mestu bio prikazan kratak pregled arhitektura tri suštinsko različita procesora kompanije
AMD, od klona Intelovog procesora 80486 do savremenog procesora zasnovanog na AMD 64
arhitekturi, sa posebnim osvrtom na registre i instrukcije.
Prva decenija novog milenijuma je svakako na sve poznavaoce visokih tehnologija ostavila
utisak migracije na 64-bitnu procesorsku arhitekturu. Da li će prelazak na ovu arhitekturu značiti
svojevrsnu revoluciju, odnosno otkriće poput procesora 80386, kao prvog x86 32-bitnog procesora,
jedino će vreme pokazati.
http://www.geocities.com/kostasyug 19
_______________________________________________________________________________

5. Literatura

[1] Dejan Simić, Pavle Bataveljić : Organizacija računara i operativni


sistemi, FON, Beograd, 2004.
[2] Hari Njutn : Njutnov rečnik, Kompjuter biblioteka, Čačak, 2005.
[3] http://www.amd.com
[4] http://developer.amd.com
[5] http://www.amdzone.com
[6] http://www.ul.ie/~rinne/et4508.htm
[7] http://arstechnica.com/cpu/03q1/x86-64/x86-64-1.html
[8] http://www.pctechguide.com
[9] http://www.pcstats.com/articleview.cfm?articleID=1466
[10] http://titan.etf.bg.ac.yu/~gvozden/mips/radovi/pc_na_dlanu/procesori
/amd.html
[11] http://www.heise.de/ct/english/99/16/092/
[12] http://www.osdata.com/topic/language/asm/register.htm
[13] http://www.techweb.com
[14] http://www.wikipedia.com
[15] http://www.webopedia.com

Você também pode gostar