Sunteți pe pagina 1din 9

7.7.

Controlul sistemelor pipeline


Dup cum se tie exist dou tipuri de sisteme pipeline: statice i dinamice.
Un sistem pipeline static poate executa o singur operaie la un moment dat, n
timp ce un sistem pipeline dinamic poate executa mai multe operaii. Controlul
secvenierii operaiilor prezentate unui sistem pipeline pentru execuie este foarte
important pentru creterea eficienei acestuia. Astfel dac se iniiaz dou operaii
care necesit acelai etaj pipeline n acelai timp, apare o coliziune, care nu este
de dorit. Pentru evitarea unor astfel de situaii este necesar planificarea
sistemelor pipeline.
In continuare este prezentat o metod de control pentru planificarea unui
sistem pipeline.
7.7.1. Planificarea
Pentru a nelege aceast metod mai nti trebuie definite conceptele de
tabel de rezervare i laten.
O tabel de rezervare indic momentele n care etajele unui sistem pipeline
sunt utilizate pentru o anumit funcie. Fiecrui etaj i se aloc o linie n tabela de
rezervare. Fiecare linie este mprit n coloane, cte una pentru fiecare ciclu de
ceas. Numrul de coloane indic numrul total al unitilor de timp necesare
pentru execuia unei anumite funcii. Pentru a indica faptul c un anumit etaj E
este utilizat la momentul de timp ti este plasat un semn x la intersecia liniei cu
coloana momentului de timp respectiv din tabel.
Intrare

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

Figura 7.16 reprezint o tabel de rezervare pentru un sistem pipeline static


cu trei etaje. Momentele de timp t 0 , t1 , t 2 , t3 i t 4 indic cinci cicluri de ceas
consecutive. In exemplul considerat poziia semnelor x indic faptul c, pentru a
produce rezultatul scontat datele de intrare trebuie s treac succesiv prin etajele
1, 2, 2, 3 i 1. Tabela de rezervare este utilizat pentru a determina diferenele de
timp necesare ntre aplicarea unor date succesive la intrare astfel nct s nu

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.

Diagrama strilor unui sistem pipeline ncepe ntotdeauna cu vectorul de


coliziune iniial. Figura 7.17 reprezint o diagram de stri pentru sistemul pipeline
din figura 7.16. Vectorul de coliziune 10011 reprezint starea iniial. Deoarece
latenele permise sunt 2 i 3, un nou set de date poate fi aplicat la intrare dup
dou sau trei cicluri de ceas ( i = 2 sau i = 3 ). Pentru aceste latene, prin
deplasarea la dreapta a vectorului de coliziune curent cu i poziii, se obine un
vector de tranziie. Pe poziiile din stnga rmase libere n urma deplasrii se
introduc zerouri. In acest fel pentru i=2 din vectorul de coliziune iniial C0=(10011)
se obine vectorul de tranziie T0=(00100).

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

mai pot genera noi vectori.


Latena medie. Latena medie se determin pentru un anumit ciclu din
diagrama strilor. Un ciclu ntr-o diagram a strilor este o secven format de
vectori de coliziune i arce, C0 , a1, C1,..., an , C0 , n care fiecare arc ai conecteaz
vectorul de coliziune Ci 1 cu Ci i toi vectorii de coliziune sunt distinci cu excepia
primului i ultimului. In diagrama din figura 7.17 exist ciclurile C0 , a1 , C1 , a2 , C0 i
C0a3C0.
Pentru simplitate, un ciclu poate fi reprezentat printr-o secven de latene
ale arcelor sale. Astfel ciclul C0 , a1 , C1 , a2 , C0 , poate fi reprezentat ca ciclul
C = (2,3) , unde 2 i 3 sunt latenele arcelor a1 , respectiv a2 . Lungimea unui ciclu
este dat de numrul arcelor din care este constituit. Astfel C0 , a1 , C1 , a2 , C0 are
lungimea 2, iar ciclul C0 , a3 , C0 are lungimea 1.
Latena medie pentru un ciclu se determin prin adunarea latenelor arcelor
ciclului i mprirea sumei cu numrul total de arce din ciclu. De exemplu, n
figura 7.17 ciclul C = (2,3) are latena medie:
(2 + 3) / 2 = 2,5
Latena medie minim. Un sistem pipeline poate avea mai multe latene
medii asociate cu diferite cicluri. Latena medie minim este latena cu valoarea
cea mai mic din acestea. De exemplu, pentru diagrama din figura 7.17, latenele
medii sunt urmtoarele:
(2 + 3)/2 = 2.5
din ciclul C0 , a1 , C1 , a2 , C0
5/1=5
din ciclul C0 , a3 , C0
Astfel, latena medie minim (LMM) este 2,5. Dei ciclul cu latena medie
minim maximizeaz rata de transfer a sistemului pipeline, uneori, pentru a se
reduce complexitatea implementrii circuitului de control, se poate alege un ciclu
mai puin eficient. De exemplu, pentru ciclul C = (2, 3), cu valoarea LMM egal cu
2.5, este necesar un circuit de comand care s contorizeze dou uniti de timp,
apoi trei uniti de timp, din nou dou uniti de timp i aa mai departe. Dac ns
se accept s se aplice un set de date de intrare la fiecare trei uniti de timp,
complexitatea circuitului de comand va fi mai redus. Astfel, latena minim
pentru acest sistem pipeline este 3.
7.7.3. Planificarea sistemelor pipeline dinamice
La planificarea unui sistem pipeline static, trebuie evitate doar coliziunile
ntre diferitele date de intrare pentru o anumit unitate funcional. In cazul unui
sistem pipeline dinamic, este posibil ca diferitele seturi de date de intrare
necesitnd uniti funcionale diferite s fie prezente n sistemul pipeline n acelai
timp. Pentru acest motiv, trebuie s se ia n considerare i coliziunile ntre aceste
date. Ca i n cazul sistemelor pipeline statice, planificarea sistemelor pipeline
dinamice ncepe cu determinarea unui set de liste a latenelor interzise pe baza
tabelelor de rezervare ale funciilor. In continuare se obin vectorii de coliziune, iar
n final se reprezint diagrama strilor.

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

instruciuni utilizate rar la setul de instruciuni reprezint un concept inovativ al


arhitecturilor de calculatoare, numit calculator cu set redus de instruciuni (RISC Reduced Instruction Set Computer). Filozofia de proiectare a arhitecturilor RISC
este de a se aduga la setul de instruciuni numai acele instruciuni care
determin un ctig de performan.
Caracteristicile comune ale majoritii acestor calculatoare sunt urmtoarele:
- Un set de instruciuni limitat i simplu;
- Un numr mare de registre generale sau memorii cache aflate n aceeai
capsul cu procesorul;
- Un compilator care maximizeaz utilizarea registrelor i minimizeaz astfel
accesurile la memoria principal;
- Accentul pus pe optimizarea sistemului pipeline de instruciuni.
8.2. Cauze ale complexitii arhitecturale crescute
Exist mai multe motive ale tendinei spre o complexitate progresiv mai
ridicat a arhitecturilor de calculatoare. Acestea cuprind urmtoarele deziderate:
- Facilitarea utilizrii limbajelor de nivel nalt. Pe parcursul anilor, mediul de
programare a evoluat de la programarea n limbaj de asamblare la programarea n
limbaje de nivel nalt, astfel nct proiectanii au prevzut instruciuni mai puternice
pentru a facilita codificarea eficient a programelor scrise n limbaje de nivel nalt.
Aceste instruciuni au determinat nu numai creterea dimensiunii setului de
instruciuni ci i creterea complexitii acestuia, datorit puterii de calcul relativ
ridicate a instruciunilor.
- Migrarea funciilor de la implementarea prin software la implementarea prin
hardware. O instruciune care este implementat prin hardware va fi mai eficient
dect una implementat prin software, realizat printr-o secven de instruciuni
mai simple, datorit numrului mare de accesuri la memorie i a diferenei dintre
vitezele UCP i ale memoriei. Pentru a crete viteza de procesare a
calculatoarelor, a avut loc un fenomen de migrare a funciilor de la implementarea
prin software la cea prin firmware i de la implementarea prin firmware la cea prin
hardware. (Firmware reprezint o secven de microinstruciuni.) Aceast migrare
a implementrii funciilor din domeniul software n domeniul hardware crete
dimensiunea setului de instruciuni, rezultnd o complexitate global crescut a
calculatoarelor.
- Compatibilitatea n sus. Compatibilitatea n sus este utilizat adesea de
ctre productori ca o strategie de marketing cu scopul de a prezenta
calculatoarele lor ca fiind mai performante dect alte modele existente. Ca rezultat
al acestei strategii de marketing, uneori productorii cresc numrul de instruciuni
i puterea de calcul a acestora, indiferent de utilizarea efectiv a acestui set
complex de instruciuni. Compatibilitatea n sus este un mod de a mbunti un
sistem prin adugarea unor faciliti noi i, de obicei, mai complexe. Ca rezultat,
noul set de instruciuni este un superset al celui vechi.
8.3. Avantajele arhitecturilor RISC
Exist totui unele criterii care reprezint obiective universal acceptate de

ctre proiectanii de calculatoare pentru toate sistemele:


1. Maximizarea vitezei de execuie sau minimizarea timpului de execuie.
2. Minimizarea costului de proiectare.
O posibilitate de a ndeplini primul obiectiv const n a mbunti tehnologia
componentelor, obinnd funcionarea acestora la frecvene mai ridicate.
Viteza mrit poate fi obinut i prin minimizarea numrului mediu al
ciclurilor de ceas pe instruciune i/sau execuia simultan a mai multor
instruciuni. Arhitecturile RISK au mers pe calea reducerii numrului de instruciuni
i a formatelor acestora, a simplificrii modurilor de adresare, obinnd n acest fel
un circuit de comand simplu i de dimensiuni mai reduse. Aceste opiuni au avut
ca rezultat reducerea suprafeei ocupate de circuitul de comand de la 40-60%
din suprafaa microprocesorului n cazul arhitecturilor CISC la numai 10% din
aceasta n cazul arhitecturilor RISC. Suprafaa rmas n cazul unei arhitecturi
RISC poate fi utilizat pentru alte componente, cum sunt memorii cache n
aceeai capsul i seturi mai mari de registre, prin care performanele
procesorului pot fi mbuntite.
In continuare sunt prezentate avantajele arhitecturilor RISC.
1. Un prim avantaj al arhitecturilor RISC const n ridicarea vitezei de calcul
a sistemului prin:
- Utilizarea sistemelor pipeline. Arhitecturile RISC sunt mai potrivite pentru
utilizarea sistemelor pipeline de instruciuni, deoarece majoritatea instruciunilor au
o dimensiune uniform i o durat egal a execuiei. Aceste caracteristici reduc
perioadele de inactivitate n cadrul sistemului pipeline.
- Implementarea unitii de comand prin hardware. Un sistem cu o unitate
de control cablat va fi, n general, mai rapid dect unul microprogramat.
- Numrul mare de registre i memoriile cache n cadrul capsulei vor reduce
numrul accesurilor la memorie deoarece datele mai frecvent utilizate pot fi
pstrate n registre. Registrele pot pstra, de asemenea, parametrii care trebuie
transmii procedurilor apelate. Spaiul eliberat, prin reducerea dimensiunilor
circuitului de comand, poate fi utilizat i pentru introducerea memoriei cache n
interiorul capsulei microprocesorului. Aceast memorie cache are, de obicei, o
dimensiune mai redus dect memoria cache de pe plac i reprezint primul
nivel al memoriilor cache. Memoria cache de pe plac, care este apropiat de
procesor, reprezint al doilea nivel al memoriilor cache. In general, aceste dou
niveluri de memorii cache mbuntesc performanele comparativ cu cazul
utilizrii unui singur nivel de memorie cache. Uneori fiecare memorie cache este
divizat n dou memorii cache: o memorie cache de instruciuni i o memorie
cache de date. Procesoarele care au memorii cache separate pentru instruciuni i
date sunt numite arhitecturi Harvard, dup calculatorul Harvard Mark I, care a
utilizat pentru prima dat aceasta opiune. Utilizarea a dou memorii cache, una
pentru instruciuni i una pentru date, poate mbunti n mod considerabil timpul
de acces i, n consecin, mbuntete performanele unui procesor, n special
al unuia care utilizeaz n mod extensiv tehnica pipeline, cum este un procesor
RISC.
2. Un alt avantaj al arhitecturilor RISC const n faptul c acestea necesit o

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.

S-ar putea să vă placă și