Arhitektura mikroprocesora AMD ATHNLON

19
Univerzitet u Beogradu Fakultet organizacionih nauka S E M I N A R S K I R A D 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.

description

Arhitektura mikroprocesora AMD ATHNLON prezentacija

Transcript of Arhitektura mikroprocesora AMD ATHNLON

  • Univerzitet u Beogradu Fakultet organizacionih nauka

    S E M I N A R S K I R A D

    iz predmeta

    ARHITEKTURA RAUNARA 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

    Sadraj

    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. Zakljuak............................................................................................. 18 5. Literatura............................................................................................. 19

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

    3

    1. O kompaniji AMD

    Kompanija AMD (Advanced Micro Devices) osnovana je 1. maja 1969. godine i njen tadanji glavni cilj bio je izgradnja uspene kompanije za proizvodnju poluprovodnika. Njen osniva bio je Jerry Sanders sa svojih 7 saradnika. Prvi AMD-ov proizvod (1969.) bio je AMD9300, tzv. shift registar1.

    Ve pete godine poslovanja, AMD je brojao 1500 zaposlenih i tada je proizvodio vie od 200 razliitih proizvoda. Godinji profit AMD-a tada je 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 znaajni proizvod koji datira iz iste godine jeste familija procesora Am2900, koja pripada bit-slice2 familiji procesora. Za potroae, Am2900 znaio je smanjeno zagrevanje i poveanu brzinu, zahvaljujui bipolarnoj ip tehnologiji. Za programere, ova familija procesora je predstavljala mogunost pisanja sopstvenih setova instrukcija za aplikacije, kao i znaajno poveanje fleksibilnosti programiranja. Te iste, 1975 godine, stopa rasta preduzea premaila je 60 %.

    Osamdesetih godina XX veka, AMD se orijentisao na proizvodnju visoko-kvalitetnih klonova, odnosno alternativa, x86 procesora. Godine 1981, prodaja se vie nego udvostruila 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 poveana fleksibilnost i kapacitet jedne od najvanijih raunarskih komponenti. Neto kasnije, uspostavljena je saradnja sa Sony-jem, to je doprinelo razvoju CMOS-a4.

    Poetkom 90-tih godina, AMD je uspeo da dobije licencu za proizvodnju alternativnih reenja na tritu PC poluprovodnika. Godine 1991, AMD je proizveo procesor Am386 (sl. 1.1), koji predstavlja alternativu 80386 procesora i karakterie ga vei takt asovnika i manja potronja energije od konkurenta. Godine 1994, na tritu se pojavljuje familija procesora Am486 koji su u svoje raunare ugraivali Compaq i drugi proizvoai raunara.

    U tom periodu, Flash memorija je poela masovno da se koristi, umesto dotadanje EEPROM, kao dominantno postojano memorijsko reenje. Tada je AMD razvio sopstvene algoritme za sigurnije skladitenje 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 mogue brisati i reprogramirati. 4 CMOS (eng. Complementary Metal Oxide Semiconductor) je tehnologija za poluprovodnike elemente sa veoma malom potronjom energije.

    Ljudi su na prvom mestu, proizvodi i profit e doi sami od sebe!

    (Jerry Sanders, osniva AMD-a)

    Slika 1.1

    Slika 1.2

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

    4

    Godina 1997. je svakako znaajna za razvoj kompanije AMD, jer je tada sklopila partnerstvo sa NexGen-om, radi razvoja AMD-K6 procesora. Nakon objavljivanja ovog procesora, povratak konkurencije na trite raunarskih komponenti uveo je novi koncept personalne raunare koje po ceni mogu priutiti i obini 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 poboljava performanse 3D grafike, multimediju i ostale aplikacije koje koriste operacije sa pokretnim zarezom.

    Sledei 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 matine ploe i skupove ipova optimizovane specijalno za njega.

    Naredne, 2000. godine, AMD razvija MirrorBit tehnologiju. To je tehnologija koja omoguava da Flash memorija skladiti duplo vie podataka od standardne Flash memorije, bez gubitaka standardnih performansi. MirrorBit tehnologija je od izuzetnog znaaja za razvoj mobilnih telefona i PDA ureaja. 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 omoguila tii rad notebook sistema, ukljuujui i dui vek trajanja baterije. Oktobra meseca 2000. godine, pojavio se skup ipova AMD-760, prva komercijalna PC platforma koja podrava DDR (eng. Double Data Rate) memorijsku tehnologiju.

    Godine 2001, AMD je objavio prvo svoje vieprocesorsko reenje, 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 poeo 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), predvien 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, kunim korisnicima. Veoma je bitno to je on zadrao kompatibilnost izvravanja 32 bitnih aplikacija.

    Jula 2004. godine, pojavljuje se procesor AMD Sempron (sl. 1.4), verziju Athlon 64 procesora neto oslabljenih performansi. Sempron je, zbog svoje nie cene, prvenstveno namenjen manje zahtevnim kunim korisnicima. Narednog meseca, AMD objavljuje i prvi x86 procesor sa dva jezgra.

    Slika 1.3

    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, izraeni u 0.7 mikronskoj tehnologiji i baziraju se na RISC arhitekturi. Njih karakterie 100 % kompatibilnost sa 386 arhitekturom (tzv. downward compatibility). Navedeni procesori sadre preko milion tranzistora. esto koriene instrukcije izvravaju se u jednom ciklusu. U poreenju sa starijim procesorima, AM486 familiju karakterie write-back cache. To je metoda keiranja kod koje se promene u cache-memoriji ne kopiraju u izvor keiranja (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. Takoe, ova familija procesora sadri i jedinicu za rad sa operacijama sa pokretnim zarezom. Kod ovih procesora, RISC arhitektura se koristi radi smanjenja broja ciklusa potrebnih za izvravanje instrukcije.

    AM486 procesori mogu da rade u dva reima: 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 slui za podeavanje procesora za rad u protected mode-u. Protected mode omoguava upravljanje memorijskim stranienjem (eng. paging).

    Na slici 2.1.1 prikazan je blok dijagram rada AM486 DX procesora. Instrukcija iz cache memorije kapaciteta 16 kilobajta prosleuje se u Prefetcher, koji u stvari slui za kreiranje reda ekanja sastavljenog od instrukcija koje treba da se analiziraju (dekodiraju), to se vri u okviru dela procesora koji se naziva Instruction Decode. Nakon toga, rezultati se upisuju u odgovarajue registre.

    Slika 2.1.1

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

    6

    2.1.1. Registri

    Treba napomenuti da AM486 procesori sadre veliki broj registara koji mogu da se grupiu u nekoliko grupa:

    Osnovni registri o Registri opte 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 Pokazivai na instrukcije i podatke (Instruction And Data Pointers)

    Control Word Debug i Test registri

    Postoji osam registara opte namene. Oni mogu da skladite adrese ili podatke. Podravaju operande podataka duine od 1, 8, 16 ili 32 bita, duina polja moe biti izmeu 1 i 32 bita. Adresni operandi mogu biti 16 ili 32 bita. Registri opte namene su: EAX, EBX, ECX, EDX, ESI, EDI, EBP i ESP.

    Pokaziva instrukcija je 32-bitan registar EIP i on sadri adresu sledee instrukcije koja e biti izvrena. Drugaije se naziva broja naredbi (Program Counter).

    Procesorski flag-ovi skladite 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 kontrolie pojedine operacije i informie o statusu procesora. Registar EFLAGS sadri i podregistar FLAGS (od 0. do 15. bita) koji se najvie koristi za izvravanje 8086 i 80286 koda. Ukratko emo analizirati pojedine bitove EFLAGS registra5.

    AC (alignment check, bit 18) omoguava generisanje greaka pri pozivanju adrese koja nije sloena (misaligned).

    VM (virtual 8086 mode, bit 17), ukoliko se ukljui (postavi na vrednost 1), omoguava 8086 virtuelni reim u Protected Mode-u rada procesora.

    RM (resume flag, bit 16) se koristi kod breakpoint-a debug registra. Ukoliko se ukljui, svaka greka kod debug-ovanja se ignorie pri izvravanju sledee instrukcije.

    NT (nested task, bit 14) je flag koji se koristi u Protected Mode-u. On slui kao indikator da li je trenutno izvravan zadatak povezan sa nekim drugim zadatkom.

    IOPL (Input/Output Privilege Level, bitovi 13 i 12) pokazuje najveu vrednost CPL (current privilege level) dozvoljenu za izvravanje 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 greka overflow. Do overflow greke moe doi, recimo, pri traenju 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) definie da li se ESI i/ili EDI registri inkrementiraju ili dekrementiraju u toku izvravanja string instrukcija.

    IF (INTR enable flag, bit 9, kada je ukljuen, dozvoljava detekciju spoljnih prekida signaliziranih na INTR pinu.

    TF (trap enable flag, bit 8) kontrolie generalizaciju izuzetka 1 pri debugovanju. SF (sign flag, bit 7) je ukljuen 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 ukljuen ukoliko je poslednjih osam bitova operacije sadran

    neparan broj jedinica. CF (carry flag, bit 0) je ukljuen ako operacija rezultuje sabiranjem ili oduzimanjem u high-

    order bitu. Segmentni registri (ima ih 6, to su: CS, SS, DS, ES, FS i GS) skladiti vrednosti segment

    selector-a koje identifikuju trenutno adresibilne segmente memorije. System Level registri kontroliu operacije na on-chip cache memoriji, zatim on-chip jedinici

    za rad sa pokretnim zarezom, kao i mehanizme za stranienje 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 pokazivaa na instrukcije i podatke. Razmotriemo 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) duine po 80 bita. Svaki

    od ovih registara je podeljen na tri polja: znak (duine 1 bita), eksponent (15 bitova) i mantisu (64 bita). FPU6 registrima je mogue pristupiti na dva naina: kao steku ili fiksnom setu registara gde se instrukcije izvravaju uz pomo posebnih registara.

    TOP polje statusne rei 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 uitava vrednost u novi registar na vrhu, a operacija POP sklanja vrednost sa vrha steka i zatim inkrementira TOP.

    Tag word obeleava sadraj svakog numerikog registra podataka. On prvenstveno slui da optimizuje performanse FPU-a i upravljanja stekom tako to smanjuje razliku izmeu 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, omoguavaju on-chip podrku za debugovanje. Oni slue za postavljanje breakpoint-a.

    2.1.2. Instrukcije

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

    Transferi podataka Aritmetike Operacije pomeranja i rotiranja (Shift i Rotate) Manipulacija sa stringovima Manipulacija sa bitovima Kontrolni transferi Podrka viih programskih jezika Podrka 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 znai da mogu biti nulaadresne, jednoadresne, dvoadresne ili troadresne. Veina nulaadresnih instrukcija je veliine od samo jednog bajta (npr. CLI, STI). Jednoadresne instrukcije obino su duine 2 bajta, a prosena veliina instrukcija je 3.2 bajta. Poto AM486 DX procesori imaju 32 bajtni red ekanja instrukcija, odjednom se u proseku moe uzeti deset instrukcija. Primeri optih 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 duine od 8, 16 ili 32 bita. U optem sluaju, pri izvravanju 486 ili 386 mikroprocesorskog koda (32-bitni kod), operandi su osmobitni ili tridesetdvobitni, a pri izvravanju 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 karakterie 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 takoe poseduje dvosmernu tablicu predvianja (Prediction Table), koja slui za predvianje grananja, odnosno skokova, zatim vie paralelnih dekodera x86 instrukcija, kao i vie celobrojnih i decimalnih rasporeivaa (Scheduler) koji slue za nezavisno, superskalarno, out-of-order7 izvravanje instrukcija.

    Athlon je, kao K7 procesor, bio izgraen u 0.25 mikronskoj tehnologiji. Meutim, jezgro ovog procesora je, tokom razvoja, modifikovano. Postoji tri razliita modifikovana jezgra: Thunderbird, Thoroughbred i Barton. Thunderbird jezgro je izgraeno u 0.18 mikronskoj tehnologiji, a Thoroughbred i Barton u 0.13 mikronskoj tehnologiji.

    Athlon ima tri dekodera x86 instrukcija. Poto Athlon, poput ostalih AMD procesora, ne izvrava direktno x86 instrukcije, funkcija ovih dekodera je da prevedu x86 instrukcije u makrooperacije8 fiksne duine. Vano je to to su instrukcije iste duine, jer to omoguava jednostavnije korienje pipelining-a (slika 2.2.1). Ovo je dobro, zbog vee brzine dekodiranja u odnosu na direktno dekodiranje x86 instrukcija, koje su promenljivih duina (od 1 do 15 bita).

    Blok ema Athlon procesora prikazana je na slici 2.2.2. Kao to moemo videti, iz L1 cache memorije za instrukcije, x86 instrukcije putuju do

    dekodera. Zatim se proverava da li se sledea instrukcija nalazi u L1 cache-u. Ukoliko ovo nije sluaj, ta instrukcija se uzima iz L2 cache memorije i smeta u L1 cache. Kada smo uzeli instrukciju, Predecode proces proverava da li instrukcija dovodi do grananja. Predecode cache je kapaciteta 24 KB i on skladiti informacije o grananju, za ije se predvianje koristi tablica predvianja grananja. Bitno je napomenuti da se kod pogrenog predvianja grananja gubi veliki broj ciklusa rada procesora.

    7 Termin out-of-order se koristi za instrukcije koje se izvravaju bez nekog tano utvrenog reda. 8 To su RISC operacije. Termin je analogan Intel-ovom terminu mikrooperacije.

    Slika 2.2.1

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

    11

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

    identina, paralelna DIRECT PATH dekodera koji slue za dekodiranje jednostavnih instrukcija i jedan VECTOR PATH dekoder koji je namenjen za dekodiranje sloenijih instrukcija. Na osnovu x86 ulaznih instrukcija, DIRECT PATH dekoderi generiu svaki po jednu izlaznu makrooperaciju. Kod sloenih x86 instrukcija, VECTOR PATH, uz pomo MROM-a, generie sekvencu koja se razbija na tri makrooperacije.

    Slika 2.2.3

    Slika 2.2.2

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

    12

    Poslednja faza fetch-decode-execute ciklusa jeste izvravanje instrukcija. Na Athlon procesorima, ovo se radi pomou jedinice koja se naziva Instruction Control Unit, ili skraeno ICU (vidi blok emu). ICU ima memoriju za 72 ulazne makrooperacije. U zavisnosti da li je u pitanju celobrojna ili decimalna operacija, makrooperacije se prosleuju u odgovarajui rasporeiva instrukcija.

    Integer Scheduler, kapaciteta 18 makrooperacija, slui da bi konvertovao celobrojne makrooperacije u elementarne RISC operacije. Nakon konvertovanja, ovaj rasporeiva prosleuje generisane RISC operacije komponentama IEU (Instruction Execution Unit) i AGU (Address Generating Unit), kojih ima po 3, to omoguava istovremenu obradu tri RISC operacije. Sam proces raunanja sa celobrojnim brojevima vri IEU, dok AGU slui za pristup memoriji. Rezultati operacija se upisuju u Load/Store Queque jedinicu.

    Za rad sa decimalnim brojevima, MMX i 3D NOW instrukcijama, zaduen je Float Point Scheduler, kapaciteta od 36 makrooperacija. On rasporeuje operacije po principu out-of-order. FPU registarski fajl kapaciteta 88 makrooperacija slui za itanje operanada.

    Najbitniji deo kod izvravanja FP instrukcija se deava u komponentama FADD (operacije sabiranja i oduzimanja), FMUL (operacije mnoenja i deljenja) i FSTORE (skladitenje vrednosti). Ove tri komponente rade paralelno.

    Load/Store red ekanja (Load Store Queue) slui za upravljanje memorijom, kontrolie uzimanje operanada i skladitenje rezultata. Pomou 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 obogaeni setom instrukcija, nazvanim 3D Now Enhanced koji, pored ve postojee 21 3D Now instrukcije (koje su koristile FP instrukcije u cilju ubrzavanja (akceleracije) trodimenzionalne grafike), obuhvataju i 24 novih instrukcija, koje karakterie sledee:

    Dvanaest instrukcija koje poboljavaju multimedijalna celobrojna izraunavanja.

    Ovo se primenjuje najvie u programima za prepoznavanje glasa i montau 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 poboljava performanse komunikacionih aplikacija.

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

    13

    3. Arhitektura 64 bitnih procesora

    Pojava 64 bitnih procesora u svakom sluaju predstavlja svojevrsnu revoluciju u svetu raunarskih tehnologija. Prvi 64-bitni procesor je bio R4000, proizvoaa MIPS Technologies, koji datira iz davne 1991. godine. On se koristio za SGI grafike 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. Meutim, oni su bili namenjeni velikim serverskim sistemima. Moemo rei da su 64 bitni procesori poeli 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 kune korisnike.

    Sada, kada je poeo proces migracije sa 32 bitne na 64 bitnu arhitekturu, susreemo se sa brojnim problemima. Prvo, veinu operativnih sistema je potrebno modifikovati da bi mogli da upravljaju novom arhitekturom. Zatim, javlja se problem nekompatibilnosti starih, 32 bitnih aplikacija. Ovaj problem je mogue reiti na dva naina: pomou reima hardverske kompatibilnosti, to se reava softverskom emulacijom, ili hardverskom implementacijom 32 bitnog jezgra u 64 bitne procesore.

    Iako nema sumnje da je primena 64 bitnih procesora znaajna kod 64 bitnih programa koji rade sa velikom koliinom podataka (npr. rad sa velikim bazama podataka), jo uvek je diskutabilno da li se 32 bitne aplikacije bre izvravaju na 32 bitnim procesorima ili na 64 bitnim (pokrenutim u reimu kompatibilnosti).

    64 bitna arhitektura se zasniva na korienju 64-bitnih registara umesto dosadanjih 32-bitnih. Upotreba veih registara dolazi do izraaja pri radu sa celim brojevima veim od 32 bita, to je relativno neuobiajeno za dananji softver.

    Kada je re o FP operacijama, 64-bitni registri daju veu preciznost, jer moe da stane vie brojeva iza decimalnog zareza. Meutim, 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 plastino je prikazana razlika izmeu 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 slui da prikae promenu u irini polja (kvadratii su 32 bitna polja, a pravougaonici 64 bitna polja). Primeujemo da polja sa kodom ostaju nepromenjena, a polja sa podacima i rezultatima postaju ira. Uoiemo da se i irina toka podataka udvostruila.

    Dakle, postavlja se pitanje koja je svrha 64-bitne arhitekture? Odgovor lei 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 fizike memorije. 64-bitni procesor moe da pristupi preko 18 petabajta9 fizike memorije. To je naroito 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 znaajno drugaiji. Dok je Intel razvio potpuno novu, drugaiju arhitekturu od x86, to bi primoralo programere da razvijaju nova softverska reenja ili da koriste emulacije, AMD je jednostavno proirio postojeu 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 slui za

    viestruko poveanje brzine izmeu integrisanih kola, servera i telekomunikacionih komponenata u odnosu na neke ve postojee tehnologije. Ova tehnologija omoguava smanjenje broja magistrala, to moe doprineti smanjenju uskih grla i to moe omoguiti efikasnije korienje procesora u multiprocesorskim sistemima.

    9 Jedan petabajt iznosi 1024 terabajta, odnosno 10245 bajtova. 10 Point-to-point predstavlja tip veze sa samo dve zavrne take.

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

    15

    Znaajne novine kod Athlon 64 procesora su sledee:

    8 novih registara opte namene (GPR) Svih 16 GPR-a su 64-bitni Postoji 8 novih XMM registara Uniformno bajt-registarsko adresiranje GPR Novi prefiks instrukcija (REX) pristupa proirenim registrima

    Ovaj procesor podrava i 16-bitne i 32-bitne aplikacije, zahvaljujui svojim reimima rada,

    koji su prikazani na tabeli 3.1.1.

    Dakle, postoji dva osnovna reima rada: Legacy Mode i Long Mode. Legacy Mode je

    striktno kompatibilan 16-bitni, odnosno 32-bitni reim rada, to znai da pod ovim reimom ne moe da radi 64-bitan operativni sistem. O ovim reimima rada bilo je rei pri opisivanju AM486 procesora.

    Long Mode je 64-bitni reim rada. U okviru njega, postoji dva podreima rada: 64-bit Mode i Compatibility Mode. U svakom sluaju, svaki od ovih podreima 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 reimu rada i registri za rad u kompatibilnom, odnosno legacy reimu. Podela registara po kategorijama prikazana je u tabeli 3.1.2.

    Tabela 3.1.1

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

    16

    Tabela 3.1.2

    Legacy x86 arhitektura podrava 8 GPR registara. Meutim, u praksi, upotreba najmanje

    etiri registra povlai kompromis, zato to oni u sluaju izvravanja velikog broja instrukcija, vre specijalne funkcije.

    U AMD 64 arhitekturi, dodato je 8 novih GPR registara. Takoe je poveana 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 podravaju long mode. Instrukcije su organizovane na sledei nain:

    Instrukcije opte namene (General Purpose Instructions) predstavljaju osnovne

    celobrojne istrukcije koje se koriste u gotovo svim programima. Veina ovih instrukcija uitava, skladiti ili manipulie sa podacima koji se nalaze u GPR registrima ili u memoriji.

    128-bitne medijske instrukcije. Postoje SMID proirene instrukcije (SSE, SSE 2, SSE 3) koje uitavaju, skladite ili manipuliu podacima koji se prvenstveno nalaze na 128-bitnim XMM registrima. One mogu da procesuiraju celobrojne i FP operacije na vektorskim i skalarnim tipovima podataka. Poto vektorske instrukcije mogu nezavisno i istovremeno izvravati jednu operaciju na vie setova podataka, po Flynn-ovoj klasifikaciji, moemo ih ubrojati u single instruction-multiple data (SIMD) instrukcije.

    64-bitne medijske instrukcije predstavljaju tehnoloke instrukcije za MMX (MultiMedia eXtension) i 3D Now tehnoloke instrukcije. One uitavaju podatke, memoriu ih ili manipuliu sa podacima koji se prvenstveno nalaze na 64-bitnim MMX registrima. Isto rade sa skalarnim i vektorskim tipovima podataka. Takoe, i ove su instrukcije SIMD tipa i korisne su u medijskim aplikacijama koje rade sa blokovima podataka.

    X87 FP instrukcije su instrukcije koriene u x87 aplikacijama. One uitavaju, belee ili manipuliu podacima u legacy x87 aplikacijama.

    Neke od instrukcija povezuju dva ili vie setova instrukcija. Na primer, postoje takve

    instrukcije koje premetaju podatke iz registara opte 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

    zajednike karakteristike:

    Procesiraju velike koliine podataka esto nad podacima ponavljaju iste operacije Podaci su esto predstavljeni malim koliinama, 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 sledee karakteristike:

    Jedan registar moe skladititi vie nezavisnih podataka. Vektorska instrukcija moe da manipulie 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 ukljuene neke specijalne instrukcije koje pokreu este operacije u multimedijalnim programima. Na primer, podeavanje osvetljenja ekrana (brightness) u nekoj grafikoj aplikaciji se sada vri uz pomo aritmetikih instrukcija.

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

    18

    4. Zakljuak

    U svetu mikroprocesora, Intel je imao apsolutni primat sve do kraja devedesetih godina prolog veka. Uprkos dugoj tradiciji kompanije, AMD je tek tada postao ozbiljan Intelov konkurent, najvie zahvaljujui svojoj inovativnosti, za razliku od ranijeg kopiranja proizvoda. Ovde je na jednom mestu bio prikazan kratak pregled arhitektura tri sutinsko razliita 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 znaiti svojevrsnu revoluciju, odnosno otkrie 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 raunara i operativni sistemi, FON, Beograd, 2004.

    [2] Hari Njutn : Njutnov renik, Kompjuter biblioteka, aak, 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