Você está na página 1de 45

ARHITEKTURA I ORGANIZACIJA

RAUNARA
Dr. Velizar Pavlovi dipl. Ing.
Predavanje 11
Protoni sistemi

Kako bolje, bre i jeftinije projektovati efikasan


raunar ?
Jo od pojave prvih raunara koji su sekvencijalno izvravali naredbe
projektanti su teili da pronadju nove tehnike, metode i algoritme za bre i
efikasnije izvrenje programa

1000 = 10 * 10 * 10
Pretpostavimo da smo dobili zadatak da konstruiemo mainu koja e imati 1000 puta
bolje performanse u odnosu na neku sekvencijalnu koju tekue koristimo.
Pitanje se postavlja: Kako emo ostvariti taj cilj ?
Kao prvo, bolje performanse za 10 puta moemo ostvariti zahvaljujui prednostima
koje se nude od strane nove tehnologije (bra taktna frekvencija, nova tehnilogija
izrade tranzistora, ...)
jo 10 puta superiornije performanse mogu se ostvariti boljom arhitekturnom
organizacijom (ugradnjom ke memorije, ugradnjom akceleratora, protonom
obradom, ...)
konano, jo 10 puta bolje performanse mogu se postii korienjem paralelizma
2

Serijsko, protono i paralelno izvrenje


Dve kljune tehnike za poveanje brzine serijskog naina izvrenja
instrukcije zasnivaju se na korienju protonosti i paralelizma

Kod protonih sistema


hardver koji obavlja
odredjenu operaciju je
podeljen na stepene
Kod paralelnih sistema
hardver se replicira tako
da se po nekoliko
operacija mogu
istovremeno izvravati

Koja obrada je bolja: protona


ili paralelna ?
Nezavisno od toga to je protonost
superiornija tehnika u odnosu na
paralelizam iz razloga to ne zahteva
multipliciranje hardvera nego samo
ubacivanje leeva izmedju stepena, ipak
savremene arhitekture da bi ostvarile
bolje performanse koriste kombinaciju
protonosti i paralelizma kakav je
sluaj sa super raunarima iz serije
Cray
Dobitna kombinacija je:
protonost + paralelizam
4

Protona obrada instrukcija


Protonost (pipelining) je standardna hardverska tehnika koja se kod
raunara koristi za postizanje boljih performansi
Kada se govori o izvrenju instrukcija ono se ostvaruje na taj nain to se
obrada instrukcije deli na vei broj fiksnih koraka koji se izvravaju
sekvencijalno
Protonu realizaciju funkcije ine nekoliko hardverskih stepena S1, ...., Sn,
medjusobno razdvojenih leevima
Kako instrukcija prolazi kroz protoni sistem, hardver svakog stepena obavlja
odredjeni tip obrade
Kada instrukcija napusti protoni sistem ona je u potpunosti izvrena
Dobre performanse kod protone obrade postiu se zahvaljujui paralelizmu.
Paralelizam se odnosi na istovremenu obradu nekoliko insrtrukcija od kojih se
svaka izvrava u razliitom stepenu

Podela izvrenja instrukcije


Izvrenje instrukcije ini sekvencu akcija
Akcije se specificiraju semantikom instrukcije
Neke od karakteristinih akcija, koje se obino u toku izvrenja instrukcije
javljaju, su:
Pribavljanje instrukcije IF (Instruction Fetch)
Dekodiranje instrukcije ID ( Instruction Decode)
Pribavljanje operanada OF (Operands Fetch)
Izvrenje instrukcije EX (Instruction

Execution)

Pristup memoriji ME (Memory Access)


Upis rezultata WB (Write-Back)
...
6

Tro-, etvoro-, i peto-stepena protona obrada

Preklapanje, plitka i duboka protonost

Na tritu su se prvo pojavile


maine koje su se zasnivale
na preklapanju aktivnosti
kod izvrenja instrukcija
(overlaping)

Protonost se deli na:


1.

plitku od 5 do 6 stepeni

2.

duboku vie od 9 stepeni

Peto-stepena protona obrada


najtipinija protona obrada

Taktni period odredjuje propusnost


(throughput) i ukazuje na brzinu sa
kojom se izvravaju instrukcije
Vreme potrebno jednoj instrukciji da
prodje kroz sve blokove protonog
sistema zove se latencija

Talasna protonost kao jedna od superiornijih tehnika

10

Klase procesora
Postoje sledee klase procesora:
Mikrorontroleri
RISC procesori
CISC procesori
VLIW procesori
Digitalni Signal Procesori (DSP)
Multimedia procesori
Aplikaciono Specifini Instruction Set Processors (ASIP)
Druge klase
U daljem izlaganju ograniavamo se na izuavanje RISC i CISC procesora
11

ta znae skraenice RISC i CISC ?

RISC je skraenica od Reduced Instruction Set


Computer to znai procesor sa redukovanim
skupom naredbi broj naredbi reda 100

CISC je skraenica od Complex Instruction Set


Computer to znai procesor sa sloenim skupom
naredbi broj naredbi reda nekoliko stotina (600
800)
12

Prelazak sa CISC na RISC CISC koncepti


RISC i CISC koncepti predstavljaju dve kole koje se odnose na ISA
Osnovne arhitekturne karakteristike klasinih CISC procesora su:
Ranije CISC arhitekture imale su:
Jedinstveni ke u kome se uvaju instrukcije i podaci.
Isti put za podatke/instrukcije i koristile malo registarsko polje
(RF-register file).
Mikroprogramski upravljanu memoriju za implementiranje
velikog skupa naredbi

Noviji CISC procesori kakvi su MC68030 i MC68040 koriste:


Posebne keeve za podatke i instrukcije.
Reenja koja se okreu ka direktnom upravljanju.
13

Klasini CISC procesor

Klasini CISC
procesori koriste
jedinstveni put za
pristup memoriji
podataka i memoriji
instrukcija. Ovakav
tip arhitekture se
naziva Princeton
arhitektura

14

Prelazak sa CISC na RISC RISC koncepti


Keevi za podatke i instrukcije su izdvojeni, a takodje su razliiti i putevi
preko kojih se pristupa ovim memorijama (Harvard arhitektura).
Kod RISC-ova se koristi registarsko polje neto veeg obima
Upravljaka jedinica je bazirana na direktnom upravljanju.
Mogue je postii CPI reda jedan ciklus.

Arhitektura kod koje


postoje posebni putevi
za pristup podacima i
instrukcijama naziva se
Harvard arhitektura
15

Globalni blok dijagram procesora

16

Klasini RISC procesor

17

Pristup I-keu i D-keu

18

Smernice razvoja kod CISC-ova


Reprezenti su procesori iz serije Intel x86, Motorola MC 68xxx, Digital VAX serija,
i neke IBM maine.
Porast skupa instrukcija je bio stimulisan popularnou mikroprogramskog
upravljanja 60-tih i 70-tih godina prolog veka.
Jedan tipian CISC procesor ima vie od 300 instrukcija.
Koriste promenljive formate instrukcija/podataka, pri emu obim tipinih rei
mo`e biti 8-, 16-, 32-, i 64-bita.
Koristi se relativno mali skup registara opte namene, od 8 do 24.
Postoji veliki broj operacija obraanja memoriji, koje koriste na desetinu adresnih
naina rada (oko 20), ukljuujui indeksno i indirektno adresiranje.
Skoro svi veliki proizvodjai mikroprocesorskih ipova imali su znaajne investicije
u razvoju CISC arhitektura od kasnih 60-tih do pojave prvih RISC ipova
19

Razlika izmedju CISC i RISC pristupa u pogledu


memorije
Protona obrada kod CISC
maina kada se vreme pristupa
memoriji u toku faze IF obavljalo
za vei broj ciklusa

CISC procesori kod kojih se vreme


pristupa memoriji u toku faze IF
obavlja za jedan ciklus

Tajming RISC procesora pod


uslovom da ne postoje zavisnosti

20

RISC izazovi
Nakon tri decenije razvoja CISC arhitektura, korisnici raunara su poeli da
procenjuju odnos izmedju ISA i dostupnih hardversko/softverskih tehnologija.
Analizama programa (uglavnom sprovedenih trasiranjem) ustanovljeno je da:
25% od svih raspoloivih kompleksnih instrukcija troi 95% od ukupnog vremena
potrebnog za izvrenje programa
ostalih 75% hardversko-podr`avanih
programa (manje od 5%).

instrukcija retko koristi u toku izvrenja

Tako se i rodila ideja o RISC-ovima koja se bazira na sledeoj injenici:

Uini ono to se najvie koristi najbr`im.


Kao posledica ovakvog pristupa ostvarilo se dramatino poveanje performansi u
odnosu na CISC dizajn.
21

Klasino pitanje
Zbog ega troiti veliki deo povrine ipa na instrukcije koje se retko koriste ?

Odgovor
Kompleksne instrukcije, nakon procene njihovog pojavljivanja u programima, treba
kada je njihov procenat mali implementirati softverski (u vidu potprograma), a ne
hardverski kakva je bila dotada{nja praksa kod CISC procesora.
Implementacija retko korienih instrukcija u softveru omoguava da se skoro svi
gradivni blokovi procesora smeste na jedinstveni VLSI ip. ta vie, u okviru jednog
RISC procesorskog ipa, na dana{njem nivou tehnologije, mogue je ugraditi sada onchip ke kao i ve}i broj FP jedinica.
Skup instrukcija RISC procesora je manji od 100 instrukcija, pri emu su instrukcije
obima 32- ili 64- bita, ali ne oba formata istovremeno.
Koriste se od tri do pet adresnih naina rada. Arhitektura RISC-a je tipa Load/Store.
To znai da sve instrukcije pribavljaju operande iz registara i smetaju rezultate i registre
(register-based), a da su Load i Store jedine dve naredbe pomou kojih se procesor obraa
memoriji.
22

RISC procesor esto koristi dva posebna registarska polja:


Jedno polje ine 32 registra za manipulisanje sa celobrojnim vrednostima i
adresama (integer register file),
Drugo polje se sastoji od 32 registra koji se koriste kod manipulisanja brojeva u
pokretnom zarezu (floating point register file).

Neki od RISC procesora koriste i vie od 100 registara.


Pored korienja registarskih polja velikog obima, podeljeni keevi za
instrukcije i podaci dodatno i znaajno skrauju vreme pristupa memoriji.
Osnovna ideja RISC-a je da se najvei broj instrukcija izvri za jedan
ciklus to se postie pribavljanjem operanda direktnim putem iz registara,
bafera preuredjenja ili kea podataka, a ne kao kod CISC-ova iz memorije.
23

CISC
protiv
RISC

24

ta je donela dvo-decenijska ISA debata ?


Korienjem velikog registarskog polja, bafera podataka, i izdvojenih
keeva za instrukcije i podatke, imalo je povoljan efekat na interno
prosledjivanje podataka kroz CPU, kao i eliminisanju nepotrebnih
memorisanja medjurezultata operacija.
Smanjenom kompleksnou skupa instrukcija, RISC procesor se moe
lake projektovati i realizovati kao jedinstveni VLSI ip.
Prednost ovog pristupa su:
rad na viim frekvencijama,
nii proseni CPI koji se mo`e posti}i,
ni`i procenat ke promaaja koji se moe ostvariti,
bolje mogunosti koje stoje na raspolaganju za optimizaciju kompilatora
25

Prelazak sa CISC na RISC koncept predstavljao je radikalan preokret u


arhitekturi.
Glavna rtva je predstavljala gubitak binarne kompatibilnosti sa
tradicionalnim CISC aplikacionim programima.
Postoje}i programi kreirani za neku od CISC ma{ina nisu mogli
vi{e da se sada izvravaju na RISC mainama.
Istra`ivanja koja su se odnosila na trasiranje osobina programa
pokazala su da konverzija sa CISC programa na ekvivalnetni RISC program
podrazumeva poveanje duine programa (broj instrukcija) za oko 40%.
Negativni efekat poveanja duine RISC programa, sa aspekta
vremena izvrenja, je ipak ini se manji u odnosu na pozitivne
efekte koji se postiu poveanjem taktne frekvencije i smanjenjem
prosenog broja CPI-a kod RISC procesora.
26

Ko je dobio, a ko izgubio ?
Debata izmedju projektanata RISC i CISC procesora, oko toga koji je
pristup bolji, po svemu izgleda je sada zavrena.
Obe strane u proteklom periodu nauile su i prihvatile jedna od druge puno
dobrih i korisnih sugestija i reenja.
Na dananjem nivou razvoja po svemu sude}i te granice su postale takorei
nevidljive.
Veliki broj procesora danas se implementira u istoj tehnologiji
ugradjivanjem hibridnih reenja koje uzimaju u obzir dobre osobine kako
RISC tako i CISC procesora.

Verovatno je kompromis, kao i uvek, najboje reenje.


27

Zavisnosti kod protone obrade


Zavisnost je okolnost koja potencijalno spreava da CPU izvrava instrukciju
svojom maksimalnom specificiranom brzinom

Kada protoni sistem izvrava dve instrukcije izmedju kojih postoje zavisnosti tada
moe da dodje do zastoja ili nekorektnog rada sistema pa se takva situacija naziva
hazard (opasna situacija)

Hazardi se uglavnom javljaju zbog medjusobne zavisnosti dve instrukcije kada su


one u redosledu izvrenja suvie bliske jedna drugoj

Zavisnost moe da dovede do hazarda, ali ne mora


28

Tri klase zavisnosti/hazarda


Razlikujemo tri klase zavisnosti/hazarda:
Strukturni nastaju zbog konflikta kod korienja
resursa, tj kada dve ili vie instrukcija koje se nalaze u
razliitim fazama obrade zahtevaju angaovanje istog
hardverskog resursa
Po podacima tipino ih sreemo u situacijama kada
dalje izvrenje instrukcije zavisi od rezultata koji generie
prethodna instrukcija
Upravljaki uslovljeni su od strane instruikcija
grananja i svih drugih instrukcija koje menjaju sadraj
programskog brojaa (PC)
29

Zavisnosti po podacima
Ove zavisnosti se esto nazivaju i programske zavisnosti

30

Upravljake zavisnosti/hazardi

Primer

Ii
Ii+1

Procesor sa
estostepenom
protonom
obradom

Ii+2

;granaj se na Ij

Ii+3
.
.
.

Ij
Ij+1
.
.

niz instrukcija

31

Performansne mere protoni sistem


Osnovna ideja protone obrade je da se ostvari preklapanje u izvrenju
izmedju sukcesivnih instrukcija ime se tedi na vremenu i poveava
propusnost.
Skoro svi dananji savremeni procesori koriste tehniku protone obrade
ime na jedan indirektan nain postiu bolje performanse u odnosu na strogo
sekvencijalno izvrenje.
Definiimo dva pojma koja se odnose na protoni dizajn:
Protoni ciklus (alternativni pojmovi su procesorski ciklus ili taktni period): perioda
taktnog signala, Cp kojim se pobudjuje protoni sistem. Perioda je odredjena od
najdueg vremenskog kanjenja potrebnog da se izvri jedna operacija kroz neki od
protonih stepena. Tekui protoni procesori operiu sa procesorskim ciklusom koji je
reda od 200 ps - 20 ns (tj. 5 GHz 50 MHz)

Latencija iniciranja instrukcija:


instrukcija broj procesorskih ciklusa izmedju iniciranja dve
susedne instrukcije u programskoj sekvenci.
32

Tehnika projektovanja protonog procesora


Skup instrukcija koje izvrava protoni procesor ima veoma veliki
uticaj na njegovu strukturu i funkcionisanje.
Jo u fazi projektovanja protonog procesora mora prvo da se sagleda
na koji nain se razliite klase mainskih instrukcija preslikavaju, tj.
uklapaju, u protonu strukturu.
Klasifikovaemo instrukcije na osnovu sledeeg kriterijuma:
Kakav je i gde se ostvaruje tok podataka u toku izvrenja instrukcije ?
Shodno odabranom kriterijumu mogue je identifikovati sledea tri tipa
instrukcija:
ALU aritmetiko/logike
Load/Store punjenje registra iz memorije/upis stanja registra u memoriju
Branch grananja, mogu biti uslovna i bezuslovna
33

ALU instrukcije
Analizira}emo prvo kakva treba da bude struktura 32-bitnog
procesora kada on izvrava aritmetike instrukcije tipa registar-u-registar.
U konkretnom sluaju analiziraemo etvoro-stepeni protoni sistem,
FX-4P, koga ine stepeni IF, ID, EX i WB, ispunjava postavljene zahteve.

Operacija koja se izvrava je tipa

Add R1,R2,R3

(R1) (R2) + (R3)


34

Format ALU instrukcije-ADD

Format instrukcije Add ine polja:


Rs1 = Rs2 = Rd svi obima po 5 bitova (RF polje ine 32 registra),
opkd polje obima 6 bitova (mogue je kodirati do 64 razliite instrukcije)
polje ostalo veliine 11 bitova

35

Potrebna
struktura
FX-4P za
ADD

memorija
za
instrukcije

adresa

(PC)
instrukcija

1. IF

32

PC

32

+4
Inc 4

(PC)+4

32

L1
Add

R2

R1

R3
5

5
6

2. ID

ostalo

RF
polje
(multiport
memory)

5
32
32

L2

Add R1,R2,R3

Add

R1

(R2)

(R3)
32

32
6

3. EX

dekoder

ALU op
add

ALU

(R2)+(R3)
32

L3
R1

(R2)+(R3)

4. WB

32

reg-write

data-in

RF polje

multi-port polje

36

Instrukcije tipa Load i Store


Kod instrukcija tipa Load i Store u okviru aktivnosti koje obavljaju protoni stepeni
vri se pristup memorijama za podatke.
Saglasno ovome moe se izvesti jedan alternativni nain prikazivanja rada protonog
sistema koji za odgovarajui protoni stepen u prvi plan postavlja pristup memoriji
(keu) za podatke

37

Karakteristike Load i Store instrukcija


Dananji RISC procesori se realizuju kao Load/Store maine, pa je pogodno kod
ovakvih maina da postoji jo jedan protoni stepen koji bi obavljao aktivnost tipa
pristup-memoriji.
Memorijske adrese za obe, Load i Store, operacije izraunavale bi se putem
registarsko indirektnog naina adresiranja.
Ovakav pristup nalae da protoni sistem ine sledeih pet stepeni:
S1: FI pribavljanje instrukcije
S2: DI dekodiranje/pribavaljanje operanada iz RF polja
S3: EX izvrenje ALU operacije ili izraunavanje efektivne adrese
S4: MA pristup memoriji radi upisa podataka ili itanje memorijskog operanda
S5: WB upis rezultata operacije u RF polje

38

Peto-stepeni protono organizovan sistem FX-5P.

Aktivnosti stepena od S1 do S5

39

Iskorienost stepeni kod FX-5P za razliite instruckije

40

Format instrukcije Load

Format instrukcije Load ine polja:


Rd = Rs oba obima po 5 bitova (RF polje ine 32 registra),
opkd polje obima 6 bitova (mogue je kodirati do 64 razliite instrukcije)
polje imm veliine 16 bitova definie konstantu
Operacija koja se izvrava je tipa

Lw

R1,100(R2)

; (R1) M(100+R2)
41

Format instrukcije Store

Format instrukcije Store ine polja:


Rd = Rs oba obima po 5 bitova (RF polje ine 32 registra),
opkd polje obima 6 bitova (mogue je kodirati do 64 razliite instrukcije)
polje imm veliine 16 bitova definie konstantu
Operacija koja se izvrava je tipa

Sw R4,200(R3)

(R4) M(200+R3)
42

Potrebna
struktura
FX-5P za
Store

memorija
za
instrukcije

adresa

(PC)
instrukcija

1. IF

32

PC

32

+4
Inc 4

(PC)+4

32

L1
Sw

R3

R4

200

reg_Read

reg_Read

data_out
6

2. ID

data_out

RF
polje

16

sign_ext
32

32
32

L2
Sw

(R4)

(R3)

200
32

32

Sw

R4,200(R3)

32

3. EX

dekoder

ALU_op
add

ALU

32

L3
(R4)

(R3)+200
32

32
data_in

4. MA

mem_Write_adr

memorija
podataka

L4

5. WB
RF polje

43

Instrukcije tipa Branch


Instrukcije grananja (Branch) formiraju razliitu klasu instrukcija u
odnosu na aritmetiko/logike i Load/Store instrukcije.
Razlika se sastoji u tome to instrukcije tipa Branch upisuju novu
vrednost u programski broja, PC.
Instrukcije grananja mogu biti:
uslovne, pa ih tada nazivamo Bcc (Branch Conditional)

bezulsovne, poznate kao Jump (Jump Unconditional)

44

MIPS procesor

MIPS xx je jedan od najpoznatijih 32-bitnih RISC procesora koji se


karaterie sledeim osobinama
CPU poseduje tridesetdva 32-bitna registra opte namene R0
do R31 koji ine RF polje. U R0 se uvek uva konstanta 0
Mmeorija je bajt adresibilna, koriste se BE nain rada sa 32bitnim adresama
Sve instrukcije su 32-bitne i poravnjane su
Novije generacije MIPS procesora imaju i tridesetdva 32bitna FP registra

45

Você também pode gostar