Documente Academic
Documente Profesional
Documente Cultură
Etaj 1
Ieire
Moment t0 t1
Etaj 1
X X
Etaj 3
t4
X
Etaj 2
Etaj 2
t2 t3
Etaj 3
5
b
Fig. 7.16
apar coliziuni.
Latena este dat de numrul unitilor de timp (ciclurilor de ceas) care
separ aplicarea la intrare a dou seturi de date. Va apare o coliziune dac dou
seturi de date de intrare sunt aplicate cu o laten egal cu distana ntre dou
semne x ntr-o linie a tabelei de rezervare. De exemplu, n tabela din figura 7.16
exist dou semne x consecutive n a doua linie. Astfel, dac al doilea set de
date este aplicat la intrare cu o laten de o unitate de timp dup primul, va apare
o coliziune n etajul 2.
7.7.2. Planificarea sistemelor pipeline statice
Planificarea sistemelor pipeline statice ncepe prin crearea unui set de liste a
latenelor interzise pe baza tabelelor de rezervare ale funciilor. Se obin apoi
vectorii de coliziune i se ntocmete diagrama strilor.
Lista latenelor interzise. Fiecare tabel de rezervare cu dou sau mai multe
semne x ntr-o anumit linie are una sau mai multe latene interzise, care, n
cazul n care nu sunt evitate, vor determina coliziunea datelor. Lista latenelor
interzise este un ir de numere ntregi care corespund acestor latene. Valoarea
zero este considerat ntotdeauna ca o laten interzis, deoarece nu este posibil
iniierea a dou taskuri n acelai moment. Un element al acestei liste se poate
determina calculnd distana ntre dou semne x dintr-o anumit linie. De
exemplu, lista latenelor interzise a tabelei de rezervare din figura 7.16 este (4, 1,
0).
Vectori de coliziune. Un vector de coliziune este un ir de cifre binare de
lungime N + 1 , unde N este latena interzis maxim din lista latenelor interzise.
Vectorul de coliziune iniial C este creat din lista latenelor interzise n felul
urmtor: fiecare element ci din C , pentru i = 0,..., N , este 1 dac i este un element
al listei latenelor interzise; n caz contrar ci este zero. Valorile zero din vectorul de
coliziune indic latene permise sau, altfel spus, momente n care aplicarea datelor
este permis.
In cazul listei precedente a latenelor interzise (4, 1, 0), unde pentru
i=0 exist o laten interzis;
i=1 exist o laten interzis;
i=2 latena este permis;
i=3 latena este permis;
i=4 exist o laten interzis,
se obine urmtorul vector de coliziune:
43 2 1 0
C = c4 c 3 c 2 c1 c 0
= (1 0 0 1 1)
In acest vector de coliziune, elementele c2 i c3 sunt egale cu 0 deoarece
latenele 2 i 3 sunt permise, n timp ce elementele c0, c1 i c4 sunt egale cu 1
deoarece latenele 0, 1 i 4 sunt interzise,.
Diagrama strilor. Diagramele de stri se utilizeaz pentru a indica diferitele
stri ale unui sistem pipeline pentru un interval de timp dat. Diagrama strilor,
permite evitarea coliziunilor printr-o planificare mai simpl a datelor de intrare.
a3
C0=C0 T2
i
10011
C0
C0=C0 T1
I=3
a2
I=2
a1
C1=C0 T0
C1
10111
Fig. 7.17
Pentru a se genera un nou vector de coliziune i o nou stare, se efectueaz
operaia SAU logic ntre vectorul de tranziie T0 i vectorul de coliziune C0. Dup
aceasta operaie se obine un nou vector de coliziune C1=(10111). Acestei tranziii
i corespunde n diagrama strilor din figura 7.17 arcul a1.
Pentru i=3, prin deplasarea la dreapta cu trei poziii a vectorului de coliziune
C1, se obine vectorul de tranziie T1=(00010). Aplicnd operatorul SAU vectorului
iniial C0 i T1 se obine vectorul de coliziune iniial C0. Acestei tranziii i
corespunde arcul a2.
Pentru i 5 vectorul de tranziie este T2=(00000) i, dup efectuarea operaiei
SAU cu vectorul C0, se obine tot vectorul C0 (arcul a3). Latena i 5 corespunde
situaiei n care noul set de date de intrare se aplic dup 5 sau mai multe cicluri
de ceas. Dup o perioad de timp mai mare sau egala cu 5 cicluri de ceas,
sistemul pipeline s-a golit i este evident c aplicarea unui nou set de date
gsete sistemul n faza iniial.
Procesul de generare a noilor vectori de coliziune continu pn cnd nu se
Intrare A
0
Etaj 1
Ieire B
5
3
Ieire A
Etaj 1
t1
Etaj 2
Moment
t2
t3
t4
A
A
Etaj 3
A
A
t0
Etaj 1
2
Intrare B
t0
Etaj 2
1
4
Moment
t1
t2
t3
t4
B
0
Etaj 2
Etaj 3
3
Etaj 3
B
B
Fig. 7.14
Listele latenelor interzise. In cazul unui sistem pipeline dinamic, numrul de
liste ale latenelor interzise este egal cu ptratul numrului seturilor de date care
partajeaz sistemul pipeline. In figura 7.18, numrul seturilor de date este 2,
notate cu A i B ; astfel, numrul de liste ale latenelor interzise este 4, acestea
fiind notate cu AA , AB , BA i BB . Acestea sunt:
AA = (3,0) , AB = ( 4,2,1,0) , BA = (2,1,0) , BB = (3,2,0)
Vectori de coliziune i matrice de coliziune. Vectorii de coliziune se
determin n acelai mod ca i pentru un sistem pipeline static; 0 indic o laten
permis, iar 1 indic o laten interzis. Pentru exemplul precedent, vectorii de
coliziune sunt urmtorii:
C AA = (01001)
C BA = (00111)
C AB = (10111)
C BB = (01101)
Vectorii de coliziune pentru unitatea funcional A formeaz matricea de
coliziune M A :
C
M A = AA
C AB
Vectorii de coliziune pentru unitatea funcional B formeaz matricea de
coliziune M B :
C
M B = BA
C BB
Pentru vectorii de coliziune din exemplul precedent, matricele de coliziune
sunt urmtoarele:
01001
00111
MB =
MA =
10111
01101
Diagrama strilor. Diagrama strilor pentru un sistem pipeline dinamic este
construit n acelai mod ca i pentru un sistem pipeline static. Diagrama rezultat
este mult mai complex dect diagrama strilor unui sistem pipeline static, datorit
numrului mai mare de coliziuni poteniale.
Ca un exemplu, considerm diagrama strilor din figura 7.19. Pentru nceput,
ne referim la matricea de coliziune M A . Exist dou tipuri de coliziuni: A cu A
(vectorul de sus) sau A cu B (vectorul de jos). Dac se alege prima laten
permis pentru vectorul C AA (n acest caz, 1), ntreaga matrice este deplasat la
dreapta cu o poziie, n poziiile din stnga fiind introduse zerouri. Apoi se execut
o operaie SAU logic ntre noua matrice i matricea de coliziune iniial M A ,
deoarece latenele interzise originale pentru unitatea funcional A trebuie luate n
considerare i n continuare.
Fig. 7.19
Dac se alege prima laten permis pentru vectorul C AB din matricea M A
(n acest caz, 3), ntreaga matrice este deplasat la dreapta cu trei poziii, n
poziiile din stnga fiind introduse zerouri. Apoi se execut o operaie SAU logic
ntre noua matrice i matricea de coliziune iniial pentru unitatea funcional B ,
deoarece coliziunile originale pentru unitatea funcional B sunt nc posibile i
trebuie luate n considerare. Operaia de deplasare i operaia SAU logic continu
pn cnd se iau n considerare toate latenele posibile i diagrama strilor va fi
complet.
Cap. 8. Arhitecturi RISC
8.1. Introducere
In general, arhitecturile calculatoarelor au evoluat progresiv spre o
complexitate mai ridicat ca, de exemplu, un numr mai mare de instruciuni, un
numr mai mare de moduri de adresare, o putere de calcul mai ridicat a
instruciunilor individuale, registre mai specializate. Calculatoarele care se
ncadreaz n asemenea tendine sunt numite calculatoare cu set complex de
instruciuni (CISC - Complex Instruction Set Computer).
S-a constatat la un moment dat c adugarea unei instruciuni complexe la
un set de instruciuni existent afecteaz eficiena i costul procesorului. Efectele
unei asemenea instruciuni trebuie evaluate nainte ca aceasta s fie adugat la
setul de instruciuni. Unele din instruciunile puse la dispoziie de procesoarele
CISC sunt utilizate rareori de compilatoare. Conceptul de baz de a nu se aduga
perioad mai scurt de proiectare. Timpul necesar pentru proiectarea unei noi
arhitecturi depinde de complexitatea arhitecturii. Timpul de proiectare este mai
lung pentru arhitecturile complexe (CISC). In cazul unei arhitecturi RISC, timpul
necesar pentru testarea i depanarea circuitelor rezultate este mai redus,
deoarece nu se utilizeaz microprogramarea i dimensiunea unitii de control
este redus. In cazul unei arhitecturi mai puin complexe, posibilitatea erorilor de
proiectare este mai redus. Deci, arhitecturile RISC au avantajul unor costuri de
proiectare mai reduse i al unei fiabiliti de proiectare mai ridicate.