semnalelor .
Intrare
Procesor
I / O
Procesor
de control
Iesire
Retea de
Unitate de
Memorie
transfer
prelucrare
a datelor
Reeaua de transfer a datelor reprezint un bloc esenial n sistem; acest bloc poate
avea influene majore n viteza de prelucrare global a sistemului.
Resursele reelei de transfer a datelor includ: cile de rutare a datelor, lrgimea
busurilor de transfer a datelor, viteza de transmisie, posibilitatea de transfer pe blocuri de date.
Cerinele de control a retelei de transfer includ protocoalele de comunicaie i modurile de
adresare. Numrul de busuri reprezint o problem care diminueaz capacitatea de transfer a
datelor ntre blocurile din figura 1; nu este convenabil realizarea unei interconectri totale
ntre blocuri datorit complexittii tehnologice i a necesitii introducerii unor blocuri
suplimentare de arbitare a cererilor de acces multiple.
Resursele memoriilor includ: capacitatea de stocare , lrgimea cuvintului de date,
modurile de adresare i controlul general al memoriei ( decodificare , comenzi ).
Uniti aritmetice i de control pentru procesoare DSP
Unitatea aritmetica poate fi organizata n 3 moduri prezentate mai jos:
1.Unitate aritmetica fara multiplicator (numai sumator i shifter); este prezentat n figura 2.
Figura 2.
Notaii:
Acc - acumulator
Mux - multiplexor
n acest caz inmulirea se realizeaz prin deplasri i adunri (conform unui algoritm
secvenial de nmultire implementat prin program); solutia este foarte economic, dar de
vitez mica.
2.Unitate aritmetic cu multiplicator i sumator
a) structura n cascada (figura 3 a)
Structura este potrivit pentru sume de produse; se pot efectua nmuliri rapide. Timpul
de efectuare al unei sume de produs (nmulire i acumulare la suma anterior) este destul de
mare. Pentru mbunatirea performanelor acestei structuri se pot folosi n paralel nmultitorul
i sumatorul. Multiplicatorul se poate folosi n mod secvenial (se efectueaz cte un produs
apoi se face acumularea rezultatului) sau n timp ce se efectueaza un produs se acumuleaza
rezultatul anterior (utilizarea n paralel a multiplicatorului i a sumatorului).
Dezavantajele acestei structuri snt: efectuarea sumelor simple se face cu utilizarea
suplimentar a multiplicatorului (ceea ce mrete timpul de calcul) i efectuarea produselor
multiple se face cu utilizarea suplimentar a sumatorului.
Figura 3 a)
Figura 3 b)
Avantajul acestei structuri este posibilitatea efecturii unor calcule, de tip x.y+z, cu
vitez foarte mare datorit faptului ca sumatorul i multiplicatorul pot lucra paralel.
Dezavantajele structurii snt: numrul de busuri interne mare; pentru reducerea
numrului de busuri se alege varianta transferurilor pe busuri comune sumatorului
Figura 3 c)
Figura 3 d)
Caracteristici
-ciclul masin 13 33 ns
-memorie on-chip ( maxim 16 k x24 pentru program i 16 k x 16 pentru date,
adresabilitate direct, posibilitate de extindere prin overlay )
-porturi seriale ,timer
-stive hardware
-6-12 niveluri de ntrerupere
-aritmetic n virgul fix (C2)
-sumator pe 16 biti
-nmultitor 16 x 16 bii cu acumulare pe 40 de bii
-adresare direct, indirect, circular, bit-reverse
Caracteristici
-ciclul masin 30 ns
-memorie on chip
-port serial i port paralel (pe 8 biti)
-interfa paralel cu un microcalculator (PC)
-stiv hardware
-aritmetic n virgul fix
-operaii aritmetice pe 56 biti , logice pe 24 bii
-32 niveluri de ntrerupere
Caracteristici
-ciclu masin 20 ns
-memorie on chip
-porturi seriale
-stiv hardware
-aritmetic n virgula fix
-ALU pe 32 bii
-nmultitor 16 x 16 biti cu acumulare pe 32 biti
10
11
12
13
ADSP 2101
TMS 320C50
DSP 56000/1
DA
NU
DA
Multiplicarea ntr-un
singur ciclu
DA
NU
DA
DA
DA (n mod
repetitiv)
DA
Shiftare ntr-un
singur ciclu
0-32 biti
stinga/dreapta
0-16 biti
0-56 sau 0-24b
stnga/dreapta stnga/dreapta
Protecie la overflow
a acumulatorului
8 biti
1 bit
8 biti
DA
nu are mod
mixt
nu are mod
mixt
Multiplicri mod cu i
fara semn i mixt
14
Normalizri ntr-un
singur ciclu
DA
ADSP2101
NU
DA
TMS320C50
DSP56000/1
DA
NU
DA
Modificarea 2 adrese cu 2
valori diferite la fiecare ciclu
DA
NU
DA
Mod "bit-reverse"
DA
DA
DA
DA
numai cu
pas 1
DA
ADSP 2101
TMS 320C50
16
32x16 (globala
PC,bucle, etc.)
Bucle nlantuite
NU
DA n limita
stivei globale
Instructiuni aritmetice
condiionale
DA
NU
NU(numai
de transfer i salt)
DA
NU
NU (cu excepia
buclelor hardware)
DA
NU
Salturi i bucle fr
cicluri suplimentare
Salvare automat a
strii mainii la
ntrerupere
Vitezele de lucru ale
celor 3 procesoare DSP
(*)
DSP 56000
(*)
TMS 320C25
DA
ADSP 2101
1659ns
1800ns
1600ns
3,231ms
9,08ms
4,23ms
2800ns
3520ns
3280ns
15
DTMF
12 canale
LPC ord 10
0,36ms
ADPCM full-duplex
0,068ms
(implementate diferit ) i se adaug noi faciliti pentru realizarea unor structuri hardware i a
unor programe mai simple i mai flexibile.
16
Memorie
DAG1
Cache
DAG2
JTAG
FLAG
Secventor
de program
PMA
Timer
(24)
(32)
DMA
PMD
DMD
Multiplicator
FX/FP cu
acumulator FX
(48)
Interschimbare
(40)
Registre
Shifter
ALU
FX/FP
FX / FP
17
Controler
DMA
Registre
Porturi
seriale
Porturi
link
18
19
prelucrare sa fie utilizat n paralel cu alte uniti - acest lucru este posibil dac graful
aplicaiei este realizat cu un anumit grad de paralelism ). Ideea principal este aceea ca fiecare
unitate de prelucrare s posede un bloc de control propriu (pentru operaia specific ); blocul
de control centralizat se distribuie ctre fiecare unitate de prelucrare.
n funcie de complexitatea aplicaiei se poate opta pentru una din formele de procesor
de semnal prezentate anterior ( pipe-line , vectoriale , matriciale , paralele). Apar ins
probleme n ceea ce privete interconectarea elementelor funcionale n cadrul acestor
procesoare ( sincronizare, comunicaie ).
Pentru aplicaiile specifice n telecomunicaii ( cu excepia aplicaiilor multimedia )
sistemele "clasice" cu un procesor integrat specializat performant conduc la rezultate bune.
Exista doua categorii de arhitecturi de procesoare de semanl : organizate n timp (timeline) i organizate dup date ( data-driven).
Pentru arhitecturile organizate n timp execuia fiecrei operaii se realizeaz
ntr-un punct specificat al secvenei de prelucrare. Deoarece prelucrarea este modificat n
timp n sensul tergerii unor operaii sau inserrii unor operaii noi n secvena de prelucrare
rezult algoritmi de planificare i distribuire a operaiilor destul de complexi , ceea ce necesit
un timp de execuie mare; aplicaia poate s nu mai fie de timp real.
Arhitecturile organizate dup date preiau datele de intrare ntr-o coada de intrare ;
apariia datelor n cozile de intrare determin planificarea i distribuirea operaiilor ;
rezultatele sint plasate ntr-o coad de iesire. Daca dimensionarea cozilor este corect
caracterul de aplicaie de timp real se menine chiar i pentru secvene de operaii complexe.
n procesorul de semnal poate apare o intirziere ntre momentul n care unitatea de
prelucrare este pregatit de operare i momentul cnd ncepe execuia operaiei. Aceast
ntrziere apare n mod aleator datorit faptului c blocul de control este dinamic.
20
date
UCP
control
MMU
Cache
(acces
direct)
MP
(acces
indirect)
MA (auxiliara)
adrese logice
adrese fizice
Mecanismul de translatare, indiferent c se folosesc pagini sau segmente, se produce n faza de execuie a
programului i include printre altele, un tabel de translatare prin care se face corespondena ntre adrese
logice i adrese fizice (principiul este prezentat n fig. 2).
Memoria
principal
Tabel de
translatare
Adresa logic
de la UCP
M
L
Adresa
fizic
M
Cuvnt
adresat
n general schemele de adresare liniar sunt mai potrivite pentru manipularea structurilor mari de
date, n timp ce segmentarea faciliteaz programarea, permind programatorului s structureze programele
n module segment. n plus adresarea segmentat simplific protecia i relocarea obiectelor n memorie.
Segmentarea faciliteaz gestiunea memoriei n sistemele de calcul multiuser, multitasking.
TRANSLATAREA ADRESELOR
Indiferent de schema de organizare a memoriei (liniar sau segmentat) procesorul trebuie s aib
un mecanism de translatare a adreselor, util n implementarea memoriei virtuale. Acest mecanism este de
asemenea util pentru protejarea informaiei din memorie. Translatarea de adrese este un proces atribuire i
organizare (mapare) a adreselor logice n adrese fizice de memorie. Mecanismul de translatare mparte
memoria principal n blocuri (cadre pagin). Aa cum am amintit mai sus se folosesc 2 scheme de
translatare:
(1) translatare prin paginare
(2) translatare prin segmentare
n sistemele paginate, memoria principal este mprit n blocuri de lungime fix n timp ce n
sistemele segmentate blocurile sunt de lungime variabil.
Paginile au n general lungimi de ordinul 256 - 4096 cuvinte, n timp ce segmentele cu lungimea definit de
compilator sau programator au 64 K-cuvinte, sau mai mult. n sistemele cu multiprogramare i timesharing1, mai muli utilizatori folosesc aceleai programe cum sunt editoare, compilatoare, programe
utilitare, biblioteci de programe etc. Att sistemele cu paginare ct i cele cu segmentare permit mecanisme
de partajare, ntre procesele utilizator, a paginilor, respectiv a segmentelor. Aceste mecanisme se bazeaz pe
intrri n tabele de mapare de pagin (sau segment) n care intrrile diferitelor procese indic ctre acelai
bloc din memoria principal. Combinaia ntre segmente i pagini presupune c un segment conine una sau
mai multe pagini virtuale. Mecanismul de segmentare administreaz spaiul virtual, mprind programele n
segmente, n timp ce paginarea este destinat administrrii memoriei fizice care este mprit n cadre
pagina (blocuri). Vom descrie n continuare mecanismele folosite pentru maparea segmentelor i paginilor.
Maparea adreselor folosind pagini
n cazul paginrii, implementarea tabelului pentru maparea adreselor este simpl pentru c
informaia din spaiile de adresare i memorare este divizat n blocuri de dimensiune fix. Memoria fizic
este mprit logic n blocuri de aceeai dimensiune (64-4096 cuvinte fiecare). Termenul pagin se refera la
blocuri, de aceeai dimensiune, de adrese din spaiul de adresare. De exemplu, presupunem un calculator
care are 20 de bii de adres i folosete doar 32KB n memoria principal (memorie implementat fizic prin
circuite de memorie); dac o pagin, respectiv un bloc, au dimensiuni egale cu 1 kB, atunci spaiul de adrese
e divizat n 1024 pagini, iar spaiul de memorie e divizat n 32 de blocuri.
Se consider c i programele sunt mprite n pagini. Poriuni din programe sunt mutate din memoria
auxiliar n memoria principal n nregistrri egale cu mrimea paginii. n loc de bloc de memorie e folosit
uneori termenul de cadru pagin (page frame).
n cazul maprii prin paginare adresa virtual este reprezentat printr-un singur cuvnt de adres
mprit ntr-un cmp corespunztor numrului paginii (adresa paginii) i un cmp pentru deplasament. La
maparea prin segmentarea un singur cuvnt de adres nu mai este suficient; dimensiunea variabil a
segmentelor conduce la existena a dou cuvinte de adresare, n care primul indic numrul (adresa)
segmentului, iar cel de-al doilea deplasamentul n cadrul segmentului.
ntr-un calculator cu 2p cuvinte pe pagin, p bii sunt folosii pentru a specifica o adres de linie iar
cei mai semnificativi bii rmai n adresa virtual specific numrul de pagin. Fie de exemplu un sistem
simplu cu o adres virtual cu dimensiunea de 16 bii i pagini cu 4096 cuvinte. Pentru c o pagin are 212
cuvinte, cei patru bii mai semnificativi vor specifica una din cele 16 pagini, iar cei 12 bii mai puin
semnificativi indic adresa liniei n cadrul paginii.
Numr
pagin
Numr linie
1000000000000001
Adresa virtual
Adres
tabel
0000
Tabel
pagini
de
memorie
0001
0010
11
0011
00
0100
0101
0110
01
0111
1000
10
1001
1010
1011
1100
1101
1110
1111
Registru bloc
de memorie
10
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
Bit
prezen
Adresa fizic
(real) de memorie
principal
10 000000000001
Memoria principal
00
01
10
11
BLOCK 0
BLOCK 1
BLOCK 2
BLOCK 3
Sistemul de memorie
151
131071 (217 = 128 K) linii i doar 1024 locaii ar fi ocupate (cu bit de prezen 1), restul fiind goale,
neutilizate. O soluie a acestei probleme o constituie folosirea unei memorii asociative, ca n figura 4,
(tabel asociativ de pagini de memorie) cu numr de locaii egal cu numrul de blocuri din memoria
principal.
Adres logic
Numr pagin
1000
Numr linie
Registru argument
1111
00
Registru masc
0010
11
0011
00
0101
01
1000
10
Numr pagin
Numr bloc
Nr.segment
Offset
Adres fizic
segment
Adres logic
Adres liniar
(fizic)
Adresa de baz a
segmentului
Tabel de translatare
a segmentelor
Segment
Capitolul 6
158
3. S prevad un mecanism prin care UCP poate trece din mod utilizator (user) n mod supervizor i
viceversa. Primul sens de trecere este specific apelurilor sistem (system calls apeluri de servicii
oferite de SO), implementate ca instruciuni speciale care transfer temporar controlul la o locaie
precis din spaiul de cod al supervizorului. Registrul contor de program corespunztor locului unde
se face un apel sistem este salvat, iar UCP trece n mod supervizor. Revenirea la modul utilizator este
similar cu cea produs la o revenire din procedur.
Adresele de baz i limit constituie minimul unui sistem de protecie. Mecanismul memoriei virtuale
ofer alternative mai complexe i mai sigure dect modelul simplu prin baz i limit. Aa cum s-a vzut,
adresele virtuale sunt translatate n adrese fizice pe baza unor tabele de translatare. Acest mod de mapare,
prin tabele, ofer posibilitatea introducerii de informaii pentru controlul erorilor de program (intenionate
sau nu) care ncearc s treac peste mecanismele de protecie. Cea mai simpl cale este introducerea unor
indicatori de permisie pentru fiecare pagin sau segment. De exemplu pot exista indicatori care s permit
doar citire, doar execuie, sau care s interzic accesul unui proces utilizator la anumite pagini / segmente.
Fiecare proces poate face adresare doar ctre paginile proprii de memorie, procesul utilizator neavnd
dreptul s modifice tabelele sale de pagin / segment.
Protecia poate fi extins chiar pe mai mult dect dou niveluri (nu doar utilizator i supervizor),
privite ca i inele concentrice de protecie, n centru gsindu-se nivelul de protecie cel mai nalt. n aceast
ierarhie de niveluri de protecie un program poate accesa doar date de pe nivelul su de protecie i de pe
nivelurile inferioare n ierarhie. Poate face ns operaii de apelare (call) a serviciilor sistemului de operare,
servicii oferite de rutine ce se afl pe niveluri superioare de protecie. Adesea se face comparaia, n
oarecare msur nefericit, cu clasificri de tip militar ale sistemelor: top secret, secret, confidenial i
neclasificat. Programele utilizator (civilii n exemplul militar) au doar dreptul de acces la nivelul de
protecie cel mai de jos: ne-clasificat. La sistemele de protecie de tip inele concentrice, deosebirea fa de
exemplul anterior, este c se pot face apelri la rutine situate pe niveluri superioare de protecie, dac exist
chei de acces ctre acele niveluri. Poate exista dreptul de apelare a unor servicii ale sistemului de operare,
prin mecanismul de comutare a proceselor.
Aa cum am pomenit i mai sus, informaia de protecie este setat n registre speciale ataate fiecrei
intrri n tabelele de translatare, registre setate doar de rutine de control al sistemului de operare. Drepturile
de acces pot fi de tipul:
a. Atribuirea de privilegii complete de citire i scriere. Aceste drepturi se atribuie programului atunci cnd
execut propriile instruciuni.
b. Read-only (protecie la scriere). Protecia la scriere este util la operaiile de partajare a unor rutine de
sistem (utilitare, biblioteci, etc.).
c. Execute only (program protection). Protejeaz programul la copiere. Restricioneaz referirea la
segment doar n timpul fazei de fetch a instruciunii i nu i n timpul fazei de execuie. Asta permite
utilizatorului s execute instruciunile segmentului de program, dar nu permite citirea instruciunilor ca
date cu scopul de a copia coninutul lor.
Sistemul de protecie a memoriei, n sensul celor spuse mai sus, se construiete pentru:
(a) memorie (detecteaz orice eroare de adresare nainte ca aceasta s creeze erori accidentale sau
voite);
(b) programe (previne ca programele utilizator (de aplicaii) s fac modificri ilegale n rutinele SO);
(c) utilizatori (programele utilizatorilor ntre ele);
(d) securitate informaie (acces limitat la informaiile unde utilizatorul nu are drept de acces).
REG
DATE
IN
DATE
IN
SEL
SEL
REG
DATE
OUT
SEL
LD
c) Port de iesire
DATE
PI_0
PI_1
PI_2
PI_n
IORD/
A0
A1
A2
An
DATE
PO_0
PO_1
PO_2
PO_n
IOWR/
A0
A1
A2
An
In figura 4 a fost aleasa ca adresa de baza 2A0H (JP2, JP4, JP6 - inchise).
Tabelul de decodificare este:
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
IOR /
IOW
0
0
0
0
0
0
AEN
CS
Adresa
Port
0
0
0
0
0
0
CS0
CS1
CS2
CS3
CS4
CS5
2A0
2A1
2A2
2A3
2A4
2A5
PORT_0
PORT_1
PORT_2
PORT_3
PORT_4
PORT_5
Semnalul AEN/ este format din liniile de adresa superioare (A15 pina la A10) astfel:
UCP=
UC+ALU
Memorie
Interfata de
intrare iesire
(I/O)
Dispozitiv
periferic
sistemului au adrese unice. Aparitia unei anumite adrese va conduce la selectia unica a
portului dorit, care va fi activat si cu care va opera sistemul. Diferentierea intre memorie
si porturi cit si indicarea sensului transferului datelor (de la microprocesor inspre
memorie sau porturi - scriere; la microprocessor dinspre memorie sau porturi - citire) va
fi facuta prin semnale specifice ale sectiunii de control.
Porturile de la care se face citirea datelor se numesc porturi de intrare (INPUT).
Porturile la care se face scrierea datelor se numesc porturi de iesire (OUTPUT).
Se inlocuieste cu o
bucla de asteptare
pasiva sau cu alte
prelucrari in cazul
utilizarii intreruperilor
NU
DA
Port_stare =
READY ?
Citeste datele
(Port_data)
Stocheaza
datele
Incrementeaza
contor
Rutina de servire a
intreruperii (SCI)
daca se utilizeaza
intreruperi
DA
NU
Contor =
N?
Incheie
transferul
Magistrale de sistem
(Date, Adrese, Control)
UCP
(slave)
HiZ
Controler
DMA
(DMAC)
(master)
Memorie
Bus Grant
Dispozitiv
periferic
Bus Request
Figura 3. Principiul cererii si acceptarii magistralelor
Dupa programarea circuitului DMAC, acesta asteapta o cerere de transfer de la
dispozitivul periferic (REQ); cind aceasta este generata, DMAC confirma acceptarea
cererii (catre dispozitivul periferic) prin semnalul ACK si genereaza o cerere de
magistrala (Bus Request BR) catre UCP; se asteapta confirmarea cedarii
magistralelor de catre processor (prin semnalul Bus Grant BG), dupa care
procesorul isi trece magistralele in starea de inalta impedanta (HiZ) si devine slave in
system. Controlerul DMA este master in sistem si controleaza magistralele, efectuind
transferuri de date cu memoria sau dispozitivele periferice, fara interventia UCP (care
poate sa efectueze numai operatii ce nu necesita magistralele sistemului). Aceasta
situatie este mentinuta pina ciand semnalul de cerere de magistrala este inhibat, dupa
care UCP redevine master iar DMAC slave. Figura 4 ilustreaza etapele desfasurarii
transferului DMA.
UCP
Dispozitiv periferic
DMAC
REQ
master
BR
ACK
slave
BG
master
slave
slave
Transferul serial
Pentru a putea realiza transferuri pe distante mai mari se utilizeaza interfete speciale care
transforma informatia paralela - cuvintul de date - intr-o succesiune de impulsuri, transmise
pe un singur fir de legatura ca in figura 5.
Pentru distante foarte mari se pot utiliza in locul convertoarelor de nivel circuite
de tip modem (modulator demodulator) care transforma (moduleaza) sirul de
pulsuri in semnal analogic (mai putin modificat de canalul de comunicatie) care va fi
demodulat la receptie si refacut in forma binara.
Convertor
0-5V / 0 12V
Transmitator
Convertor
0-12V / 0 5V
Receptor
1 0 0
1 1
0 0
1 1
1 1 0
Transferul paralel
Transferul paralel al datelor se realizeaza prin transmiterea simultana a datelor prin
intermediul unui cablu format din N conductori, fiecare conductor purtind un bit, ca in figura
8.
Port de
iesire
RDY
0
RDY
Data
1
RDY
2
Transmitator
Date
Receptor
Data valida
RDY
Transmitator
Receptor
Date
Port de
intrare
Port de
iesire
REQ
0
REQ
REQ
1
Data
2
Transmitator
Receptor
REQ
Date
Data valida
Figura 10. Transfer paralel cu protocol asincron fara confirmare (transfer initiat de
receptor)
In cazul protocolului cu confirmare, de exemplu cu initierea transferului de catre
transmitator, acesta emite un semnal (RDY) care indica receptorului ca datele sunt
pregatite de transfer, plaseaza datele pe magistrala de date, dar nu se initiaza un nou
transfer pina cind transmitatorul nu receptioneaza un semnal de confirmare (ACK) emis
de receptor si care indica faptul ca datele au fost preluate. Protocolul cu confirmare se
mai numeste protocol cu hand-shaking.
Transmitator
Receptor
Date
Port de
intrare
Port de
iesire
RDY
ACK
0
RDY
Data
Genereaza
ACK
1
RDY
ACK
Asteapta
ACK
1
ACK
Transmitator
Date
Receptor
Data valida
RDY
ACK
10
Microarhitectura PENTIUM
Arhitectura Pentium a fost introdus de firma Intel pentru procesoarele IA-32.
Acest tip de arhitectur se regsete n procesoarele Pentium III ( arhitectura P6) i n
procesoarele Pentium IV ( arhitectura P4).
Arhitectura Pentium este o arhitectur superscalar i pipe-line.
Se utilizeaz tehnici de prelucrare paralel astfel nct, n medie, procesoarele
Pentium snt capabile s execute complet 3 instruciuni ntr-o perioad de tact.
Arhitectura Pentium utilizeaz o structur pipe-line cu 12 stagii.
Principalele caracteristici ale arhitecturii P6 snt urmtoarele:
1. Structura pipe-line a arhitecturii este divizat n 4 seciuni : memoria cache
(primul i al doilea nivel), ncrcare/decodificare (fetch/decode), unitatea de
execuie (inclusiv execuia instruciunilor out of order adic a
instruciunilor care nu urmeaz ordinea de la ncrcare ci se execut nainte de
instruciuni nccate anterior, dar care ateapt eliberarea anumitor resurse
pentru a fi ncheiate) i seciunea de asteptare (retirement) pentru
instruciunile completate care asteapta reasamblarea lor in fluxul normal de
instructiuni..
2. Exist dou nilele de memorie cache. Primul nivel ( 8ko de instruciuni i 8 ko
de date) este imediat lng structura pipe-line. Al doilea nivel (de dimensiune
256ko pn la 1Mo) este conectat direct cu procesorul printr-un bus de 64 de
bii.
3. Partea central a arhitecturii P6 este dat de mecanismul performant de
execuie a intruciunilor ( inclusiv a intruciunilor out of order) numit i
execuie dinamic. Execuia dinamic ncorporeaz trei concepte de procesare
a datelor:
-
predicia salturilor
analiza dinamic a fluxurilor de date i instruciuni
execuia speculativ
13-14
15-16
17
18
19
20
4.
Arhitectura P6 utilizeaz tehnica pipe line cu 14 stagii de prelucrare dup cum urmeaz:
Descriere
Stagiul
pipe
line
1
- determin valoare pointer-ului de instruciuni
- predicia dinamic a salturilor ( se utilizeaza un algoritm adaptive cu 2 niveluri :
primul nivel pe 4 biti al doilea nivel cu contor cu saturare pe 2 biti figura 1)
2-4
- ncrcarea instrucunii din mamoria cache ( maxim 2 instruciuni de 32 biti fiecare)
- determinarea limitelor fiecrei instruciuni
- transferul instruciunilor ctre decodorul de instruciuni ( n cuvinte de 16 bii)
5-6
- decodificarea instruciunilor ntr-o serie de micro-operaii
- pregtire pentru execuia out-of order
- trei decodificatoare opereaz n paralel :
- 2 decodificatoare simple ( pentru majoritatea operaiilor pe ntregi)
- 1 decodificator complex ( pentru instruciuni complexe)
- rezultatul final este o secven de micro-operaii
- fiecare micro-operaie conine 3 operanzi: 2 operanzi surs i 1 operand destinaie
- micro-operaiile au lungime mai mare dect n cazul arhitecturii RISC deoarece
trebuie s acopere i cazul operaiilor de virgul mobil
- majoritatea instruciunilor snt translatate n 1 pn la 4 micro-operaii
- dac snt necesare mai mult de 4 micro-operaii atunci instruciunea este transferat
la secvenorul de microinstruciuni ( Microcode Instruction Sequencer)
- se efectueaz predicia salturilor statice
7-8
- reasignarea registrelor logice cu registre fizice cu ajutorul unei tabele de asociere
- procesorul are doar 8 registre de ntregi i 8 registre de virgul mobil ca register
de uz general, vizibile de ctre programator
- redenumirea registrelor adaug 40 de registre de uz general
- micro-operaiile snt transferate n buffer-ul de reordodare ( Reorder Buffer)
- buffer-ul de reordonare (ROB) este o memorie adresabil prin coninut organizat
dup o politic FIFO
- micro-operaiile snt stocate n ROB n diferite stadii de execuie (n ateptarea
rezolvrii dependenei ntre instruciuni sau a eliberrii resurselor necesare)
- micro-operaiile snt transferate unitii de rezervare (reservation station)
9-10
- unitatatea de rezervare are 20 de intrri
- unitatea de rezervare distribuie micro-operaiile ctre 1 pn la 5 uniti de
execuie:
- dou uniti aritmetice pentru ntregi
- dou uniti de adresare a datelor ( pentru instruciuni load / store)
- o unitate aritmetic de virgul mobil
- unitatea de rezervare poate distribui micro-operaiile ntr-o perioad de ceas pna la
3 perioade de ceas ( dac unitile de calcul snt ocupate)
- distribuia micro-instruciunilor ctre unitile de calcul este determinat de biii de
stare din ROB
- dac mai mult de o singur micro-operaie este gata pentru transfer n unitatea de
rezervare, se vor allege acele micr-operaii care snt generate n secven
11
- se execut micro-operaiile
12-14
Predicia salturilor
Predicia salturilor este o cerin important n sistemele de calcul ce utilizeaz intens
tehnica pipe-line. Prin predicia salturilor se optimizeaz utilizarea structurii pipe-line
evitndu-se reiniializarea acesteia dac intruciunile corespunztoare saltului n program au
fost ncrcate n mod eronat.
n situaia unei instruciuni de salt condiionat instruciunea int nu poate fi ncarcat
n pipe-line dect dup ce s-a calculat adresa de salt i nu s-a evaluat condiia de salt. Pentru
salturile necondiionate trebuie calculat numai adresa de salt.
Pn cnd aceste informaii snt disponibile structura pipe-line ateapt sau ncarc o
instruciune tint posibil; n momentul cnd informaiile snt disponibile se poate decide o
reiniializare a structurii (n situaia n care n pipe-line s-au ncrcat instruciuni int n mod
eronat). n ambele situaii apare o degradare a performanei structurii pipe-line. Utilizarea
prediciei salturilor conduce la o atenuare a acestei degradri de performan datoritfaptului
c n majoritatea cazurilor instruciunile int snt ncrcate correct.
Instruciunile de salt se impart n dou categorii:
- salturi statice ( care se regsesc n codul binar i snt cunoscute nainte de execuia
programului)
- salturi dinamice ( care apar n urma execuiei i nu snt cunoscute nainte de
execuie)
Predicia salturilor dinamice este mai dificil dect predicia salturilor statice.
Ideea de baz a prediciei salturilor este memorarea istoriei fiecrui salt (dac s-a
efectuat sau nu s-a efectuat) i luarea deciziei (salt efectuat / salt ne-efectuat) pe baza acestei
istorii. Se definesc anumite tipare (pattern) de diferite lungimi care indic n timp dac saltul;
s-a efectuat sau nu. Aceste tipare snt dependente de tipul de program care se execut.
Exist mai multe tipuri de programe (task-uri):
T1 procesarea bazelor de date
T2 programe de cutare, editare, compilare i testare
T3 programe de rezervare hotelier, tranzacii bancare
T4 programe utilitare pentru manevrarea de date
n tabelul 1 snt prezentate numrul de isnstruciuni de salt pentru fiecare tip de task:
Numrul total de
instruciuni
Numrul salturilor
dinamice
Numrul salturilor
statice
T1
1,300,881
T2
1,325,359
T3
1,309,178
T4
1,667,468
285,528
321,441
312,865
359,550
19,176
27,878
21,202
15,491
n situaia n care procesorul ncarc mai mult de o singur instruciune ntr-un ciclu
atunci bufferul BTB trebuie accesat pe blocuri de date. Rata de predicie va scadea uor ca n
figura 3.
Tiparul (pattern)
Predicie
000
001
010
011
100
101
110
111
ne-efectuat (0)
ne-efectuat (0)
efectuat (1)
efectuat (1)
ne-efectuat (0)
efectuat (1)
efectuat (1)
efectuat (1)
Tabelul 1
Saltul urmator efectuat
este efectuat(%)
7.8
34.1
51.9
67.9
32.6
64.4
79.1
97.7
decizia cea mai veche. Construirea istoriei presupune ca bucla s se fi executat de un anumit
numr de ori timp n care saltul nu este predictibil).
Istoria fiecrui salt este stocat n bufferul BTB.
Analizele pe o gam variat de programe indic faptul c dac numrul de bii din
tipar crete rata de predicie crete. Totui prin adugarea unui bit ( de la o istorie cu 2 bii la o
istorie cu 3 bii) creterea nu este semnificativ.
Se poate utiliza, pentru fiecare salt, un contor de 2 bii care este incrementat ori de cite
ori saltul se efectueaz i este decrementat ori de cite ori saltul nu se efectueaz. Operaiile de
incrementare, respectiv decrementare, se efectueaz cu saturare astfel nct contorul ia valorile
0,1,2 sau 3. Predicia se efectueaz astfel : dac valoare contorului este 0 sau 1 saltul nu se
efectueaz, dac valoarea contorului este 2 sau 3 saltul se efectueaz. Aceast schem de
predicie poate fi asimilat unui automat cu 4 stri ca n figura 4.
Problema care apare pentru aceast metod de predicie este aceea informaiile pentru
diferite salturi interfer ntre ele.
Exist dou scheme pentru predicia global a salturilor: gselect i gshare.
Ambele metode ncearc s resolve problema interferrii informaiilor ntre salturi
printr-o adresare mai precis a saltului.
Metoda gselect este ilustrat n figura 10.
Registrul GR
0000 0000
0000 0000
1111 1111
1111 1111
0000 0001
0000 0000
0000 0000
1000 0000
Tabelul 3
Index n tabela de contori
(gselect)
0000 0001
0000 0000
1111 0000
1111 0000
Metoda gshare calculeaz indexul pentru tabela de contori ca un XOR logic ntre biii
din registrul GR i biii mai puin semnificativi ai adresei instruciunii de salt, ca n tabelul 4.
Registrul GR
0000 0000
0000 0000
1111 1111
1111 1111
0000 0001
0000 0000
0000 0000
1000 0000
Tabelul 4
Index n tabela de contori
(gshare )
0000 0001
0000 0000
1111 1111
0111 1111
Metoda gshare elimin situaiile n care indexul pentru tabela de contori ia aceeai
valoare pentru salturi diferite (tabelul 5).
Tabelul 5
Adresa instruciunii
Registrul GR
Index n tabela de Index n tabela de
de salt
contori (gselect )
contori (gshare )
0000 0000
0000 0001
0000 0001
0000 0001
0000 0000
0000 0000
0000 0000
0000 0000
1111 1111
0000 0000
1111 0000
1111 1111
1111 1111
1000 0000
1111 0000
0111 1111
Performanele metodelor de predicie global gselect i gshare snt illustrate n figurile
12. i 13.
Figura 14. Comparaie ntre predicia local cu BTB i predicia adaptiv cu 2 niveluri
(bimodal)
10
Figura 16. Comparaie ntre predicia local cu BTB, predicia adaptiv cu 2 niveluri
(bimodal), predicia global i metoda gselect
Figura 17. Comparaie ntre predicia local cu BTB, predicia adaptiv cu 2 niveluri
(bimodal), predicia global, metoda gselect i metoda gshare
11
Figura 18. Comparaie ntre predicia local cu BTB, predicia adaptiv cu 2 niveluri
(bimodal), predicia global, metoda gselect, metoda gshare i predicia selectiv
n concluzie predicia salturilor este influenat de urmtorii factori:
-
12
Sumator
Registre
generale
Reg. segment
Contor
program
Coprocesor
matematic
16 bii
20 bii
Logica de
comand de
magistral
Comanda
unitii de
1 2 3 4 5 6
execuie 8 bii
Registru
flag
Registrele generale
Registrele generale cuprind:
1) registre de utilizare general. AX, BX, CX, DX adresabile direct pe 16
bii, fiecare putnd servi ca destinaie a datelor (acumulator); registrele pot fi
adresate i pe bytes, prin specificarea byte-ului inferior (AL-ALow) sau
superior (AH-AHigh) corespunztoare biilor 0-7 (L), respectiv 8-15 (H).
ncepnd cu microprocesoarele I80386 i pn la Pentium, acestea se pot
adresa i pe dublu cuvnt (32 de bii) prin specificarea registrului precedat de
E (Extended): EAX, BOX, BCX, EOX. Registrele de ulilizare general au fost
proiectate s aib o destinaie specific, n concordan cu operaiile pe care le
execut:
(E - Extended - pentru microprocesoarele I80386 i ulterioare, care lucreaz
pe 32 de bii.)
AX - este utilizat pentru operaiile de nmulire i mprire, pe 16 bii,
respectiv pentru operaii de intrare/ieire pe 16 bii;
AL - este utilizat, pentru aceleai operaii ca i AX dar pe 8 bii; n plus se
utilizeaz pentru operaii BCO (binary coded decimal) i conversii de cod;
AH - este folosit pentru nmulire i mprire pe 8 bii;
BX - se utilizeaz n conversii de cod i ca registru de baz la adresare;
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
AH
BH
CH
DH
AL
BL
CL
DL
AX
BX
CX
DX
SP stack pointer
BP base pointer
SI source index
DI destination index
Registrele de segment
Registrele de segment permit microprocesorului s adreseze direct
memoria:
CS (Code Segment) pentru segmentul de program;
DS (Data Segment) pentru segmentul de date curent;
SS (Stack Segment) pentru segmentul de stiv;
ES (Extra Segment) pentru segmentul de date auxiliar;
FS, GS - segmente de date la microprocesoare ulterioare I 80386.
Aceste registre pot defini la un moment dat patru segmente de memorie de
cte 64 K fiecare (64 K = 26*210) n mod direct.
15
12 11
Reg. de segment
15
43 0
Sumator
19
16 15
11 10
8 7
4 3
Memorie intern
RAM de 1M
Registre
de
segment
15
CS
DS
SS
ES
IP
64k
offset
segment de
cod
64k
segment de
date
64k
segment de
stiv
00000
31
EIP
15
IP
15
0 31 (15) 0
offset
selector
(4)
Sumator
(3)
Registru
descriptor
segment
(4)
segment
selectat
(2)
(1)
adres fizic
baza segment
Descriptor
segment
Tabela
descriptori
de segment
15
Index
3 2 1 0
Ti RPL
RPL=11
RPL=10
RPL=01
RPL=00
15
8
Adres
de baz
segm.
Adres de baz
7 6 5
4 3
G D O
U
S
Lungime
segment
15 14
P
Lungimea
13 12 11
9 8 7
0
E
W
Adres de
RPL
S E D
A
baz
R
C
drepturi de acces
1 - segment de cod
0 - alt segment dect cod
{U S}
segment folosit de utilizator sau de sistemul de operare
Opentru compatibilitatea cu procesoarele ulterioare
D (dimension) =
0 - segment pe 16 bii
1 - segment pe 32 bii
G (granularity) =
0- lungimea segmentului este specificat n
bytes
1 - lungime exprimat n pagini (1 pag. = 4 K).
(2) Din tabelul de descriptori segmente, se ncarc automat registrul de
descriptor segment (fig. 10), avnd structura:
47
16 15
Adres
de baz
0 7
Lungime Drepturi
segment de acces
31
adres
liniar 32 bii
22 21
Director adrese
tabele pag.
12 11
Tabel
0
Offset
10
12
RAM
10
21
+
Adres
fizic de
baz
21
0
adres
fizic
pagin
selectat
adres fizic a
pag. selectare
adres de baz a
tabelelor de pagini
Selector
RPL
Registre de Segment
Adres efectiv
CS DS ES FS GS SS
15
2 1
Selector
Registre
descriptor
de segment
Offset
0
RPL
Memorie
Adres
liniar
Segment
selectat
Adres efectiv
31
Offset
Unitate de
segmentare
Adres virtual
sau
index descriptor
Adres
liniar
32 bii
Unitate de
paginare
Adres
fizic
32 bii
232
Memoria
fizic
RPL
15
2 1
Bibliografie
1. Anderson, D., Shanley, T., Pentium Pro and Pentium II System Architecture,
Addison-Wesley, Reading, MA, 1998.
2. Brey, B., The Intel Microprocessors, Fifth Edition, Prentice Hall, New Jersey,
2000.
3. Bryant, R., OHallaron, D., Computer Systems A Programmers Perspective, ,
Prentice Hall, New Jersey, 2003.
4. Mranu, R., Calculatoare persoanale-elemente arhitecturale, Editura BIC ALL,
Bucureti 2001.
6. Murdocca, M.J., Heuring, V.P., Principles of Computer Arhitecture, Prentice Hall,
1999.
7. Norton, P., Sectrete PC, Editura Teora, Bucureti 1998 (traducere dup SAMS
Publisluig, USA, 1995).
8. Patterson, D., Hennessy, J., Organizarea i proiectarea calculatoarelor: interfaa
hardwarw/software, Editura ALL, Bucureti, 2002.
9. Stallings, W., Computer Organization and Architecture, Fifth Edition, Prentice
Hall, New Jersey, 1999.
10. Tamenbaum, A. S., Organizarea structurat a calculatoarelor, Ediia a IVa,
Editura Agora, Tg. Mure, 1999.
11. Wilkinson, B., Computer Architecture, Second Edition, Prentice Hall Europe,
1996.
124