14.02.2015 Views

1. Prelazak sa RISC na CISC koncept

1. Prelazak sa RISC na CISC koncept

1. Prelazak sa RISC na CISC koncept

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>1.</strong> <strong>Prelazak</strong> <strong>sa</strong> <strong>RISC</strong> <strong>na</strong> <strong>CISC</strong> <strong>koncept</strong><br />

Zadnjih 25 godi<strong>na</strong> prelazak <strong>sa</strong> <strong>CISC</strong> <strong>na</strong> <strong>RISC</strong> <strong>koncept</strong> doveo je do radikalnih prome<strong>na</strong><br />

kod ISA (Instruction Set Architecture). U cilju boljeg <strong>sa</strong>gledavanja ove problematike u daljem<br />

tekstu ukazaćemo <strong>na</strong> ključne razlike izmedju ove dve arhitekture.<br />

Kao što smo ranije ukazali ISA raču<strong>na</strong>r specificira primitivne komande koje se direktno<br />

izvršavaju od strane hardvera. Drugim rečima, ISA specificira izvršive mašinske instrukcije<br />

za dati tip procesora. Kompleksnost ISA zavisi od formata instrukcija, formata podataka,<br />

adresnih <strong>na</strong>či<strong>na</strong> rada, registara opšte <strong>na</strong>mene, specifikacije opkoda, i mehanizmima za<br />

upravljanje tokom izvr{enja programa. U zavisnosti od različitih izbora koji se tiču ovih<br />

osobi<strong>na</strong>, <strong>RISC</strong> i <strong>CISC</strong> <strong>koncept</strong>i predstavljaju dve škole koje se odnose <strong>na</strong> ISA. Tekuće <strong>na</strong><br />

tržištu postoji oko 60 različitih arhitektura, koji su plod razvoja velikih kompanija, i <strong>na</strong> stotinu<br />

implementacija koje se izradjuju (fabrikuju) <strong>na</strong> osnovu licenci ovih arhitektura.<br />

<strong>1.</strong>1 Arhitekturne razlike<br />

Osnovne arhitekturne razlike izmedju pravih <strong>RISC</strong> i klasičnih <strong>CISC</strong> procesora prikazane<br />

su <strong>na</strong> Slici <strong>1.</strong><br />

Ranije <strong>CISC</strong> arhitekture imale su unificirani (jedinstveni) keš u kome se čuvaju<br />

instrukcije i podaci. Ove arhitekture imaju isti put za podatke/instrikcije i koriste malo<br />

registarsko polje (RF-register file). Noviji <strong>CISC</strong> procesori kakvi su MC68030 i MC68040<br />

koriste posebne keševe za podatke i instrukcije. Za implementiranje velikog skupa <strong>na</strong>redbi<br />

<strong>CISC</strong> procesori koriste mikroprogramski upravljanu memoriju. Ipak novija rešenja okreću se<br />

ka direktnom upravljanju.<br />

malo polje registara<br />

(small registar file)<br />

upravlja~ka jedinica<br />

(control unit)<br />

instrukcija/staza podataka<br />

instruction/data path<br />

upravlja~ka memorija<br />

(control memory)<br />

jedinstveni ke{<br />

(unified cashe)<br />

glav<strong>na</strong> memorija<br />

(main memory)<br />

a) klasi~an <strong>CISC</strong> procesor


veliko polje registara<br />

(large registar file)<br />

upravlja~ka jedinica <strong>sa</strong><br />

direktnim upravljanjem<br />

(hardwired control unit)<br />

staza podataka<br />

(data path)<br />

instrukcioni ke{<br />

(instruction cashe)<br />

ke{ podataka<br />

(data cashe)<br />

instrukcije<br />

(instruction)<br />

glav<strong>na</strong> memorija (main memory)<br />

podaci<br />

(data)<br />

a) pravi <strong>RISC</strong> procesor<br />

Slika 1 Arhitekturne razlike izmedju <strong>RISC</strong> i <strong>CISC</strong> procesora<br />

Kod <strong>RISC</strong> procesora, keševi za podatke i instrukcije su izdvojeni, a takodje su različiti i<br />

putevi preko kojih se pristupa ovim memorijama. Naglasimo da se kod <strong>RISC</strong>-ova koristi<br />

registarsko polje nešto većeg obima. Upravljačka jedinica <strong>RISC</strong>-a je bazira<strong>na</strong> <strong>na</strong> direktnom<br />

upravljanju. Ovakvim pristupom, za slučaj da u programskom toku ne postoji veliki broj<br />

instrukcija gra<strong>na</strong>nja ili prekida (interrupts), moguće je postići CPI reda jedan ciklus.<br />

<strong>1.</strong>2 Smernice razvoja kod <strong>CISC</strong>-ova<br />

Prvi raču<strong>na</strong>ri bili su veoma jednostavni i posedovali su ograničeni skup <strong>na</strong>redbi. Tokom<br />

vreme<strong>na</strong>, i usled brzog razvoja raču<strong>na</strong>ra, kompleksnost instrukcija se povećavala čini se još<br />

brže, ili kako se to popularno ka`e ''koracima od sedam milja''. Razlog ovome, za duži<br />

vremenski period, je bio <strong>na</strong>gli pad cene hardvera, <strong>sa</strong> jedne, a poveća<strong>na</strong> ce<strong>na</strong> softvera, <strong>sa</strong> druge<br />

strane. Krajnji efekat ovog trenda je bio takav da se sve veći broj funkcija podržavao od strane<br />

hardvera, što je dovelo do toga da je skup instrukcija kod ovih procesora postao ogroman, a<br />

takodje se z<strong>na</strong>čajno povećao i broj složenih instrukcija koje ti procesori mogu da izvršavaju.<br />

Najbolji reprezenti <strong>CISC</strong> kocepta su procesori iz serije Intel x86, Motorola MC 68xxx, Digital<br />

VAX serija, i neke IBM mašine. Porast skupa instrukcija je bio stimuli<strong>sa</strong>n popularnošću<br />

mikroprogramskog upravljanja 60-tih i 70-tih godi<strong>na</strong> prošlog veka. Jedan tipičan <strong>CISC</strong><br />

procesor ima više od 300 instrukcija. Pri ovome treba <strong>na</strong>glasiti i korišćenje promenljivih<br />

formata instrukcija/podataka, pri čemu obim tipičnih reči mo`e biti 8-, 16-, 32-, i 64-bita.<br />

Relativno mali skup registara opšte <strong>na</strong>mene, od 8 do 24, se koristi kod <strong>CISC</strong>-ova. Kod<br />

<strong>CISC</strong>-ova postoji veliki broj operacija obraćanja (referenciranja) memoriji, koje koriste <strong>na</strong><br />

desetinu adresnih <strong>na</strong>či<strong>na</strong> rada (oko 20), uključujući indeksno i indirektno adresiranje. Skoro<br />

svi veliki proizvodjači mikroprocesorskih čipova imali su z<strong>na</strong>čajne investicije u razvoju <strong>CISC</strong>


arhitektura od kasnih 60-tih do pojave prvih <strong>RISC</strong> čipova, a to je bilo ranih 80-tih godi<strong>na</strong><br />

prošlog veka.<br />

<strong>1.</strong>3. <strong>RISC</strong> izazovi<br />

Nakon takoreći, tri decenije razvoja <strong>CISC</strong> arhitektura, korisnici raču<strong>na</strong>ra su počeli da<br />

procenjuju (evaluiraju) odnos izmedju ISA i dostupnih hardversko/softverskih tehnologija. Na<br />

osnovu a<strong>na</strong>liza programa (uglavnom sprovedenih trasiranjem) ustanovljeno je da <strong>sa</strong>mo 25%<br />

od svih raspoloživih kompleksnih instrukcija troši 95% od ukupnog vreme<strong>na</strong> potrebnog za<br />

izvršenje programa. To, drugim rečima, z<strong>na</strong>či da se ostalih 75% hardversko-podr`avanih<br />

instrukcija retko koristi u toku izvršenja programa (manje od 5%). Tako se i rodila ideja o<br />

<strong>RISC</strong>-ovima koja se bazira <strong>na</strong> sledećoj činjenici: Učini ono što se <strong>na</strong>jviše koristi <strong>na</strong>jbr`im.<br />

Kao posledica ovakvog pristupa ostvarilo se dramatično povećanje performansi u odnosu <strong>na</strong><br />

<strong>CISC</strong> dizajn. Klasično pitanje koje se, projektantima <strong>RISC</strong>-ova, <strong>sa</strong>da postavlja je sledeće:<br />

Zbog čega tro{iti veliki deo površine čipa <strong>na</strong> instrukcije koje se retko koriste Odgovor bi bio<br />

sledeći: Kompleksne instrukcije, <strong>na</strong>kon procene njihovog pojavljivanja u programima, treba<br />

kada je njihov proce<strong>na</strong>t mali implementirati softverski (u vidu potprograma), a ne hardverski<br />

kakva je bila dotada{nja prak<strong>sa</strong> kod <strong>CISC</strong> procesora. Implementacija retko korišćenih<br />

instrukcija u softveru omogućava da se skoro svi gradivni blokovi procesora smeste <strong>na</strong><br />

jedinstveni VLSI čip. Šta više, u okviru jednog <strong>RISC</strong> procesorskog čipa, <strong>na</strong> da<strong>na</strong>{njem nivou<br />

tehnologije, moguće je ugraditi <strong>sa</strong>da on-chip keš kao i ve}i broj FP jedinica. Obično, skup<br />

instrukcija <strong>RISC</strong> procesora je manji od 100 instrukcija, pri čemu su instrukcije obima 32- ili<br />

64- bita, ali ne oba formata istovremeno. U principu se koriste od tri do pet adresnih <strong>na</strong>či<strong>na</strong><br />

rada. Arhitektura <strong>RISC</strong>-a je tipa Load/Store. To z<strong>na</strong>či da sve instrukcije pribavljaju operande<br />

iz registara i smeštaju rezultate i registre (register-based), a da su Load i Store jedine dve<br />

<strong>na</strong>redbe pomoću kojih se procesor obraća memoriji.<br />

<strong>RISC</strong> procesor često koristi dva poseb<strong>na</strong> registarska polja. Jedno polje čine 32 registra<br />

za manipuli<strong>sa</strong>nje <strong>sa</strong> celobrojnim vrednostima i adre<strong>sa</strong>ma (integer register file), a drugo polje<br />

se <strong>sa</strong>stoji od 32 registra koji se koriste kod manipuli<strong>sa</strong>nja brojeva u pokretnom zarezu<br />

(floating point register file). Neki od <strong>RISC</strong> procesora koriste i više od 100 registara. Pored<br />

korišćenja registarskih polja velikog obima, podeljeni keševi za instrukcije i podaci dodatno i<br />

z<strong>na</strong>čajno skraćuju vreme pristupa memoriji.<br />

Osnov<strong>na</strong> ideja <strong>RISC</strong>-a je da se <strong>na</strong>jveći broj instrukcija izvrši za jedan ciklus što se<br />

postiže pribavljanjem operanda direktnim putem iz registara, bafera preuredjenja ili keša<br />

podataka, a ne kao kod <strong>CISC</strong>-ova iz memorije. Na Slici 2 uporedno su prikazane ključne<br />

karakteristike pravih <strong>RISC</strong> i klasičnih <strong>CISC</strong> procesora. Napredkom tehnologije, u budućnosti,<br />

neke arhitekturne razlike <strong>sa</strong> Slike 2 sigurno će nestati.


karakteristike klasi~<strong>na</strong> <strong>CISC</strong> arhitektura prava <strong>RISC</strong> arhitektura<br />

format instrukcije promenljivi format 8,16,32i fiks<strong>na</strong> 32-bitne instrukcije<br />

64 bita<br />

takt<strong>na</strong> frekvencija 100-500 MHz 200-400 MHz<br />

polje registara<br />

8-24 registara op{te nemene 32-192 registara op{te<br />

<strong>na</strong>mene, izdvojeni integer i<br />

FP registri<br />

broj instrukcija i tipovi<br />

oko 300, <strong>sa</strong> preko<br />

~etrdesetak varijanti<br />

instrukcionih tipova<br />

oko 100, <strong>na</strong>jve}i broj su<br />

registarsko zasnovani <strong>sa</strong><br />

izuzetkom Load/Store<br />

adresni <strong>na</strong>~ini rada<br />

dizajn ke{a<br />

CPI, i prose~ni CPI<br />

upravlja~ka jedinica CPU-a<br />

tipi~ni reprezentativni<br />

rocesori<br />

<strong>na</strong> desetinu (reda 20)<br />

uklju~uju}i indeksno/<br />

indirektno adresiranje<br />

raniji modeli su koristili<br />

jedinstveni ke{, noviji<br />

koriste razdvojene ke{eve za<br />

instrukcije i podatke<br />

1-20 ciklu<strong>sa</strong>, u proseku 4<br />

ciklu<strong>sa</strong><br />

<strong>na</strong>jve}i broj koristi<br />

mikroprogramsko<br />

upravljanje, a kod nekih<br />

imamo i direktno<br />

Intel x86, VAX 8600,<br />

IBM 390, MC 68040,<br />

Intel Pentium, AMD 486,<br />

Cyrix 686<br />

ograni~eno <strong>na</strong> 3-5, <strong>sa</strong>mo<br />

Load/Store adresiraju<br />

meoriju<br />

<strong>na</strong>jve}i broj koristi podeljeni<br />

ke{ za instrukcije i podatke<br />

1 ciklus za jednostavne<br />

operacije, 1,5 ciklus u<br />

proseku<br />

<strong>na</strong>jve}i broj koristi direktno<br />

upravljanje bez upravlja~ke<br />

memorije<br />

Sun UltraSparc,<br />

MIPS R10000,<br />

Power PC 604, HP PA-<br />

8000, Digital 21264<br />

Slika 2. Karakteristike klasičnih <strong>CISC</strong> i pravih <strong>RISC</strong> arhitektura<br />

<strong>1.</strong>3 Šta je donela dvo-decenijska ISA debata<br />

Korišćenjem velikog registarskog polja, bafera podataka, i izdvojenih keševa za<br />

instrukcije i podatke, imalo je povoljan efekat <strong>na</strong> interno prosledjivanje podataka kroz CPU,<br />

kao i elimini<strong>sa</strong>nju nepotrebnih memori<strong>sa</strong>nja (pamćenja) medjurezultata operacija. Sa z<strong>na</strong>čajno<br />

smanjenom kompleksnošću skupa instrukcija, <strong>RISC</strong> procesor se može lakše projektovati i<br />

realizovati kao jedinstveni VLSI čip. Prednost ovog pristupa su rad <strong>na</strong> višim frekvencijama,<br />

niži prosečni CPI koji se mo`e posti}i, ni`i proce<strong>na</strong>t keš promašaja koji se može ostvariti, i<br />

bolje mogućnosti koje stoje <strong>na</strong> raspolaganju za optimizaciju kompilatora.<br />

Ipak prelazak <strong>sa</strong> <strong>CISC</strong> <strong>na</strong> <strong>RISC</strong> <strong>koncept</strong> predstavljao je radikalan preokret u arhitekturi.<br />

Glav<strong>na</strong> žrtva je predstavljala gubitak bi<strong>na</strong>rne kompatibilnosti <strong>sa</strong> tradicio<strong>na</strong>lnim <strong>CISC</strong><br />

aplikacionim programima. Naime, postoje}i programi kreirani za neku od <strong>CISC</strong> ma{i<strong>na</strong> nisu<br />

mogli vi{e da se <strong>sa</strong>da izvršavaju <strong>na</strong> <strong>RISC</strong> maši<strong>na</strong>ma. Sprovede<strong>na</strong> istra`ivanja koja su se<br />

odnosila <strong>na</strong> trasiranje osobi<strong>na</strong> programa pokazala su da konverzija <strong>sa</strong> <strong>CISC</strong> programa <strong>na</strong><br />

ekvivalnetni <strong>RISC</strong> program podrazumeva povećanje dužine programa (broj instrukcija) za<br />

oko 40%. Negativni efekat povećanja dužine <strong>RISC</strong> programa, <strong>sa</strong> aspekta vreme<strong>na</strong> izvršenja,


je ipak ~ini se manji u odnosu <strong>na</strong> pozitivne efekte koji se postižu povećanjem taktne<br />

frekvencije i smanjenjem prosečnog broja CPI-a kod <strong>RISC</strong> procesora.<br />

Debata izmedju projekta<strong>na</strong>ta <strong>RISC</strong> i <strong>CISC</strong> procesora, oko toga koji je pristup bolji, po<br />

svemu izgleda je <strong>sa</strong>da završe<strong>na</strong>. Obe strane u proteklom periodu <strong>na</strong>učile su i prihvatile jed<strong>na</strong><br />

od druge puno dobrih i korisnih sugestija i rešenja. Na da<strong>na</strong>šnjem nivou razvoja po svemu<br />

sude}i te granice su postale takoreći nevidljive. Veliki broj procesora da<strong>na</strong>s se implementira u<br />

istoj tehnologiji ugradjivanjem hibridnih rešenja koje uzimaju u obzir dobre osobine kako<br />

<strong>RISC</strong> tako i <strong>CISC</strong> procesora. Verovatno je kompromis, kao i uvek, <strong>na</strong>jboje rešenje.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!