Documente Academic
Documente Profesional
Documente Cultură
Arhitectura Sistemelor de Calcul Curs 1 PDF
Arhitectura Sistemelor de Calcul Curs 1 PDF
DAAN
N ROT AR
OTAR
Cuprins
pag.
CAPITOLUL 1 5
BAZE DE NUMERAIE 5
1.1. Introducere 5
1.2. Baza de numeraie zece 6
1.3. Baza de numeraie doi 6
1.3.1. Conversia binar-zecimal 7
1.3.2. Conversia zecimal-binar 9
1.4. Baza de numeraie opt (sistemul octal) 11
1.5. Baza de numeraie aisprezece (sistemul hexazecimal) 12
CAPITOLUL 2
OPERAII ARITMETICE 13
2.1. Introducere 13
2.2. Operaii aritmetice cu numere binare 13
2.2.1. Adunarea 13
2.2.2. Scderea 14
2.2.3. nmulirea 15
2.2.4. mprirea ntrag 16
2.3. Operaii aritmetice cu numere reprezentate n octal i hexazecimal 17
2.3.1. Adunarea i scderea n octal 18
2.3.2. Adunarea i scderea n hexazecimal 19
CAPITOLUL 3
ARHITECTURA SISTEMELOR DE CALCUL 20
3.1. Introducere 20
3.2. Arhitectura von Neumann 21
3.3. Arhitectura Harvard 25
CAPITOLUL 4
UNITATEA CENTRAL 28
Introducere 28
4.2. Microprocesorul universal (structura general a unui microprocesor) 31
<2>
Arhitectura sistemelor de calcul
4.3. Caracteristicile principalelor tipuri de microprocesoare 32
4.3.1. Microprocesorul ZILOG Z80 32
4.3.2. Microprocesoarele INTEL 80x86 33
4.3.2.1. Microprocesorul INTEL 8086/8088 36
4.4. Procesoare de semnal digitale 50
4.4.1. Procesorul de semnal digital, TMS320F240 53
4.5. Microcalculatoare integrate, microcontrolere 57
4.5.1. Prezentare general 57
4.5.2. Microcontrolerul AT90S2313 58
4.5.3. Microcontrolerul PIC 16F877 61
CAPITOLUL 5
MEMORIA 75
5.1. Prezentare general 75
5.2. Aplicarea principiului "cache n sistemele de calcul 81
5.2.1. Memoria Cache 81
5.2.2. Cache-ul de disc 84
5.2.3. Cache-ul microprocesorului 85
5.2.4. Cache-ul cu adresare direct (direct mapped) 86
5.2.5. Cache-ul cu adresare asociativ (fully associative) 86
5.2.6. Cache-ul parial asociativ (set-associative) 87
5.3. Gruparea memoriilor 88
5.3.1. Creterea capacitii memoriei prin creterea numrului de linii de 90
date
5.3.2. Gruparea memoriilor pentru creterea numrului de linii de adres 91
5.3.3. Gruparea mixt 93
5.4. Adresarea memoriilor 93
5.4.1. Adresarea absolut 93
5.4.2. Adresarea relativ (redundant) 94
CAPITOLUL 6
PORTURI (INTERFEE)
6.1. Prezentare general 95
6.2. Interfaa serial programabil 8251 98
6.3. Interfaa logic programabil 8255 106
6.4. Interfaa USB (Universal Serial Bus) 114
6.4.1. Introducere 114
6.4.2. Prezentarea Universal Serial Bus 117
6.4.2.1. Vitezele USB 117
6.4.2.2. Conectorii 119
6.4.2.3. Caracteristici electrice 120
6.4.2.4. Identificarea vitezei 120
6.4.2.5. Alimentarea VBUS 122
6.4.2.6. Protocolul 122
6.5. Interfeele microcontrolerelor 124
6.5.1. Modulul convertor analog-digital (A/D) 125
<3>
Arhitectura sistemelor de calcul
6.5.1.1. Cerinele achziiei analog-digitale 129
6.5.1.2. Selecia ceasului conversiei analog-digitale 130
6.5.1.3. Conversia A/D 131
CAPITOLUL 7
CIRCUITE SPECIALE
7.1. Introducere
7.2. Controlerul de ntreruperi programabil 8259 132
7.3. ntreruperile microcontrolerului TMS320F240 138
7.3.1. ntreruperile managerului de evenimente (EV) 139
7.4. Accesul direct la memorie (DMA) 148
7.4.1. Circuitul 8257 pentru acces direct la memorie DMA 150
7.4.1.1. Conexiunile externe 150
7.4.1.2. Registrele interne ale 8257 152
7.4.1.3. Registrele de canal 153
7.4.1.4. Registrul de mod 154
7.4.1.5. Registrul de stare 155
7.4.1.6. Efectuarea transferurilor cu DMA 8257 156
7.5. Circuitul contor/periodizator programabil 8253 158
7.6. Circuitele timer ale microcontrolerelor 164
7.6.1. Timerele de uz general GPTimer 164
Bibliografie 185
<4>
Arhitectura sistemelor de calcul
CAPITOLUL 1
BAZE DE NUMERAIE
1.1. Introducere
Valorile numerelor pot fi exprimate n diferite baze de numeraie. Astfel, n
activitile umane obinuite baza de numeraie folosit este baza zece. Nu acelai lucru
se ntmpl n sistemele numerice. Din considerente tehnologice, n sistemele numerice
nu putem reprezenta dect dou numere: zero i unu. De regul valoarea zero este
asociat cu un nivel sczut de tensiune iar valoarea unu este asociat cu un nivel ridicat
de tensiune, diferena dintre tensiunea asociat valorii zero i cea asociat valorii unu
asigurnd securitatea la perturbaii a sistemului numeric (n sensul c dac diferena
ntre cele dou tensiuni crete, crete i imunitatea la perturbaii a sistemului numeric).
O baz de numeraie presupune existena unui numr de simboluri (numite
adesea cifre) cu ajutorul crora vor fi reprezentate numerele, un mod de scriere a
numerelor i o relaie de calcul a valorii numrului. Numrul simbolurilor utilizate ntr-
o baz de numeraie definete numele bazei de numeraie. Reprezentarea numerelor se
face n prezent n exclusivitate prin scrierea poziional adic poziia numrului exprim
i rangul acestuia (exponentul bazei de numeraie). Simbolul (cifra) cel mai din dreapta
reprezentrii numrului are rangul minim (zero) iar simbolul (cifra) cel mai din stnga
din reprezentarea numrului are rangul cel mai mare. Calculul valorii numrului se face
prin nmulirea valorii simbolului cu baza la puterea rangului. Atunci cnd se lucreaz
cu mai multe baze de numeraie simultan este obligatorie indicarea bazei de numeraie
la fiecare numr scris. Acest lucru se face prin scrierea valorii bazei de numeraie ca
indice. De exemplu: 1210 sau 1001101012 sau 1B2C16. Pentru indicarea bazei de
numeraie pot fi utilizate i litere astfel:
Exemplul de mai sus poate fi scris i: : 12z sau 100110101b sau 1B2Ch.
n continuare vor fi prezentate principalele baze de numeraie utilizate n
sistemele numerice.
<5>
Arhitectura sistemelor de calcul
1.2. Baza de numeraie zece
Aa cum s-a artat, baza de numeraie zece, cea utilizat n activitile umane,
presupune existena a zece simboluri distincte pentru reprezentarea numerelor. Aceste
simboluri sunt:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
rang: 43210
simbol: 75213
Valoarea numrului reprezentat mai sus este: apte zeci i cinci de mii dou sute
treisprezece. Aceasta valoare a rezultat din regula prezentat mai sus adic:
<6>
Arhitectura sistemelor de calcul
16 numere binare cu cele zecimale. Pentru acest tabel putem face urmtoarele
observaii:
o daca citim numerele binare din acest tabel pe coloan observm faptul c
succesiunea cifrelor zero i unu depinde de rangul cifrei. Astfel la rangul
zero ntlnim succesiunea 0,1,0,1,0,1, ... , la rangul unu succesiunea
0,0,1,1,0,0,1,1, ... , i aa mai departe;
o un numr zecimal putere a lui doi va determina o cifr binar cu un
singur simbol unu pe poziia exponentului puterii lui doi.
Este evident faptul ca atunci cnd se dorete conversia numerelor dintr-o baz n
alta este dificil de utilizat tabele, n special atunci cnd se lucreaz cu numere mari. Din
acest motiv se stabilesc anumii algoritmi de conversie pentru simplificarea translatrii
numerelor dintr-o baz n alta.
sau:
P1
P2
relaie din care rezult algoritmul conversiei numerelor ntregi binare n numere
zecimale:
EXEMPLU
<7>
Arhitectura sistemelor de calcul
1x2+0=2 P1 = 2
2x2+1=5 P2 = 5
5 x 2 + 1 = 11 P3 = 11
11 x 2 + 0 = 22 P4 = 22
22 x 2 + 1 = 45 P5 = 45
45 x 2 + 1 = 91 P6 = 91
91 x 2 + 0 = 182 P7 = 182
182 x 2 + 1 = 365 P8 = 365
365 x 2 + 1 = 731 P9 = 731
731 x 2 + 1 = 1463 P8 = 1463
Q = 2-1 (b-1 + 2-1 { b-2 + 2-1 [b-3 + .... + 2-1 (b-m+1 + 2-1b-m)]})
EXEMPLU
1 : 2 + 1 = 1,5 Q1 = 1,5
1,5 : 2 + 1 = 1,75 Q2 = 1,75
1,75 : 2 + 1 = 1,875 Q3 = 1,875
1,875 : 2 + 0 = 0,9375 Q4 = 0,9375
0,9375 : 2 + 1 = 1,46875 Q5 = 1,46875
1,46875 : 2 + 1 = 1,734375 Q6 = 1,734375
1,734375 : 2 + 0 = 0,8671875 Q7 = 0,8671875
<8>
Arhitectura sistemelor de calcul
0,8671875 : 2 + 0 = 0.4335937 Q8 = 0,4335937
0,4335937 : 2 + 0 = 0,2167968 Q9 = 0,2167968
Dac se cere conversia unui numr binar care are att parte ntreag ct i parte
fracionar n echivalentul su zecimal, se aplic prii ntregi algoritmul corespunztor
conversiei numerelor ntregi, iar prii fracionare algoritmul corespunztor prii
fracionare.
sau:
Din ultima egalitate rezult c cifra cea mai semnificativ a0 din reprezentarea binar a
numrului N constituie restul mpririi lui N cu 2.
n mod analog, numrul N1 se poate exprima prin :
Adic a1, care reprezint cifra semnificativ de rang imediat urmtor n reprezentare
binar, constituie restul mpririi lui N1 cu 2.
De aici rezult algoritmul conversiei numerelor ntregi zecimale n numere
binare:
EXEMPLU
53 : 2 = 26 + 1 a0 = 1
26 : 2 = 13 + 0 a1 = 0
<9>
Arhitectura sistemelor de calcul
13 : 2 = 6+1 a2 = 1
6:2= 3+0 a3 = 0
3:2= 1+1 a4 = 1
1:2= 0+1 a5 = 1
Ct n Ct (n 1) Ct (n 2) .... Ct 2 Ct 1 Numr
Rest n Rest (n-1) .... Rest 3 Rest 2 Rest 1
0 1 3 6 13 26 53
1 1 0 1 0 1
partea dreapt a egalitii fiind format din numrul ntreg a-1, care reprezint cifra cea
mai semnificativ a numrului binar subunitar i fracia M1. Aplicnd acelai procedeu
lui M1, rezult:
adic se obine urmtoarea cifr semnificativ a-2 a numrului fracionar binar i fracia
M2 .
Cu aceasta, algoritmul conversiei numerelor fracionare zecimale n numere
fracionare binare este urmtorul:
< 10 >
Arhitectura sistemelor de calcul
o se contiun acest operaie pn cnd Mm devine egal cu zero sau ne
limitm la un numr de cifre binare n funcie de precizia impus.
EXEMPLU
EXEMPLU
< 11 >
Arhitectura sistemelor de calcul
Prin folosirea sistemului octal, calculele binare sau structura informaiei din
interiorul calculatorului nu se schimb, structur care poate fi verificat cu uurin din
exterior. Din acest motiv, calculatoarele din prima i a doua generaie aveau o lungime a
cuvntului egal cu un multiplu a lui 3, obinuit 24, 36 sau 42 de bii, pentru a facilita
trecerea din sistemul octal n binar sau invers.
Se menioneaz c pentru transformarea numerelor din baza de numeraie 10 n
baza de numeraie 8 sau invers, cu calculele fcute n baza 10, toi algoritmii dedui
anterior rmn valabili, cu observaia c nmulirile, respectiv mpririle prin 2 se
nlocuiesc cu nmuliri, respectiv mpriri, cu 8.
A zece
B unsprezece
C doisprezece
D treisprezece
E paisprezece
F cincisprezece.
Pentru conversia din baza 10 n 16 sau invers, sunt utilizate aceleai metode,
fcndu-se calculele n baza 10.
Conversia binar-hexazecimal i hexazecimal-binar se face n mod similar celei
binar-octale, respectiv octal-binare, cu observaia c se vor lua grupe de cte 4 cifre
binare n loc de 3.
< 12 >
Arhitectura sistemelor de calcul
CAPITOLUL 2
OPERAII ARITMETICE
2.1. Introducere
n acest capitol se vor prezenta operaiile aritmetice simple realizate cu numere
binare (numere reprezentate n baza doi), numere octale (numere reprezentate n baza
opt) sau hexazecimale (numere reprezentate n baza saisprezece).
Pentru exemplificarea operaiilor efectuate se vor folosi numai numere ntregi
pozitive (numere naturale) deoarece acesta este modul de baz al reprezentrii
informaiei ntr-un sistem de calcul numeric.
EXEMPLE
transport 111
110111 +
101
111100
putem efectua verificarea in zecimal: 110111b = 55z, 101b = 5z, 111100b = 60z.
Verificarea este imediat. Se observ c dac trebuie s adunm un sir de n cifre
unu n binar, rezultatul pe rangul respectiv va fi zero dac numrul de cifre unu adunate
este par sau unu dac numrul de cifre adunate este impar iar transportul se face peste
< 13 >
Arhitectura sistemelor de calcul
n:2 (mprire ntreag) ranguri pornind de la rangul respectiv (cel la care se efectueaza
adunarea).
transport 1111
11111 +
1
100000
De fapt rezultatul poate fi vzut imediat dac ne uitm la tabelul 1.1. Dupa un
numar cu o succesiune de cifre unu urmeaz un numr binar care are o cifr unu
urmat de o succesiune de cifre zero. Numrul cifrelor zero este egal cu numrul
cifrelor unu al numrului care se adun. De exemplu 1111b + 1b = 10000b.
2.2.2. Scderea
EXEMPLE
mprumut 11
11001
11
10110
Verificarea in zecimal: 11001b = 25z, 11b = 3z, 10110b = 22z. 25z 3z = 22z.
mprumut 111
11001
1011
01110
Verificarea in zecimal: 11001b = 25z, 1011b = 11z, 1110b = 14z. 25z 11z = 14z.
< 14 >
Arhitectura sistemelor de calcul
Se pot face observaii similare cu cele de la adunare.
2.2.3. nmulirea
0 x 0 = 0; 0 x 1 = 0; 1 x 0 = 0; 1 x 1 = 1.
Operaia de nmulire se efectueaz identic cu cea din baza zece. Vom analiza n
continuare cteva exemple.
EXEMPLE
110101 x
1101
110101
000000
110101
110101
1010110001
Verificarea n zecimal: 110101b = 53z, 1101b = 13z, 1010110001b = 689z.
Rezult 53z x 13z = 689z.
< 15 >
Arhitectura sistemelor de calcul
2.2.4. mprirea ntreag
0 : 0 = 0; 0 : 1 = 0; 1 : 0 = imposibil; 1 : 1 = 1.
Operaia de mprire se efectueaz identic cu cea din baza zece. Vom analiza n
continuare cteva exemple.
EXEMPLE
11010110101 1011
1011 10011100
0010011
1011
10000
1011
001011
1011
000001
Rezultatul este: 10011100 rest 1. Verificarea n zecimal: 11010110101b = 1717z,
1011b = 11z, 10011100b = 156z. 1717z : 11z = 156z rest 1.
111101101
101
010 - rezultatul scderii este pozitiv deci se continu cu valoarea
rmas n urma scderii i se face o deplasare la dreapta; ct = 1
< 16 >
Arhitectura sistemelor de calcul
010101101
101
0000 - rezultatul scderii este zero deci se continu cu valoarea rmas
n urma scderii i se face o deplasare la dreapta; ct = 11
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 110
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 1100
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 11000
000001101
101
001 - rezultatul scderii este pozitiv deci se continu cu valoarea
rmas n urma scderii i se face o deplasare la dreapta; ct =
110001
000000011
101 - rezultatul scderii este negativ deci nu se efectueaz scderea;
ct = 1100010 iar restul este 11 deoarece s-a incercat scderea din
cifra de rang zero a demparitului.
Verificarea n zecimal: 111101101b = 493z, 101b = 5z, 1100010b = 98z, 11b = 3z.
493z : 5z = 98z rest 3z.
< 17 >
Arhitectura sistemelor de calcul
2.3.1. Adunarea i scderea n octal
Adunarea, exemple
transport 1
723o +
523o
1446o
n rangul doi, la adunarea cifrelor 7o cu 5o se produce un transport deoarece 7z +
5z = 12z este o valoare mai mare dect valoarea bazei care este 8. n acest caz se
procedeaz astfel: se scade din valoarea obinut valoarea bazei 12z 8z = 4z,
valoarea respectiv se scrie pe rangul doi i avem un transport la rangul 3.
Trebuie inut cont de faptul c n octal: 7o + 1o = 10o.
transport 11
375o +
276o
673o
Scderea, exemple
mprumut 1
532o
251o
261o
La scderea de pe rangul unu: 3o 5o, trebuie s se efectueze un mprumut din
rangul superior. O cifr mprumutat din rangul superior nseamna opt uniti n
rangul inferior. Deci, n urma mprumutului, avem: 8z + 3z 5z = 6z.
mprumut 11
453o
264o
167o
Vrificarea n zecimal este imediat dac se face conversia din baza opt n baza
zece utiliznd relaia:
< 18 >
Arhitectura sistemelor de calcul
unde: o0, o1, o2, , on sunt cifrele numrului n baza opt.
Avnd n vedere faptul c operaiile sunt similare cu cele din octal, cu excepia
faptului c baza are valoarea aisprezece, vom prezenta numai cte un exemplu pentru
adunare i unul pentru scdere.
Adunare, exemplu
transport 111
2A57h +
57B9h
8210h
n acest caz depirea se produce cnd suma este mai mare dect aisprezece. De
exemplu, 7z + 9z = 16z = 10h
Scdere, exemplu
mprumut 11
5C2Bh
3ACFh
215Ch
< 19 >
Arhitectura sistemelor de calcul
CAPITOLUL 3
< 20 >
Arhitectura sistemelor de calcul
ntre aceste dou tipuri de calculatoare exist deosebiri eseniale dei amndou
sunt destinate prelucrrii informaiei. Primul aspect se refer la tipul informaiei
prelucrate. Dac la calculatoarele analogice informaia trebuie s aib un anumit nivel al
suportului energetic pentru ca aceasta s poat fi prelucrat, la calculatoarele numerice
informaia este lipsit de suportul energetic fiind reprezentat de elemente abstracte cum
sunt numerele. Acest lucru aduce o serie de avantaje importante n favoarea
calculatoarelor numerice ceea ce face ca utilizarea acestora s fie din ce n ce mai
rspndit.
Pentru a lmuri lucrurile vom considera un exemplu simplu. Un instrument de
msur a tensiunii (voltmetru) poate fi considerat ca un sistem de calcul foarte simplu.
Un astfel de instrument preia o informaie dein mediul extern (tensiunea electric), o
adapteaz la formatul acceptat la intrare (de regul printr-un divizor de tensiune),
prelucreaz informaia (prin comparare cu un element etalon) i furnizeaz la ieire o
informaie compatibil cu aplicaia (n cazul cel mai simplu afind rezultatul
msurtorii ntr-un anumit fel). n cazul unui voltmetru analogic (cu instrument de
msur) informaia de intrare trebuie s furnizeze o anumit energie pentru ca
msurtoarea s poat fi efectuat (aceast energie preluat de la semnalul msurat va
determina o deplasare a acului indicator prorional cu mrimea msurat). n cazul
unui voltmetru numeric prelucrarea informaiei se face n principal prin transformarea
acesteia ntr-o valoare numeric. Din acest motiv energia preluat de la semnalul de
intrare va fi cu mult mai mic (aceast energie nemaijucnd nici un rol n prelucrarea
semnalelor). Vom aminti numai dou din concluziile ce pot fi desprinse din acest
exemplu: msurtoarea efectuat cu un instrument numeric este mai precis prin
scderea cantitii de energie preluate de la semnalul de intrare (cunoscndu-se faptul c
preluarea unei anumite cantiti de energie din semnalul de msurat duce la alterarea
acestuia) i mrimile reprezentate prin numere cum sunt cele de la voltmetrul numeric
nu pot fi influenate de condiiile de mediu (temperatur, presiune, umiditate etc) cum
sunt cele analogice prezente n cazul voltmetrului analogic.
Aa cum s-a afirmat, n interiorul sistemului de calcul se realizeaz o anumit
prelucrare a informaiei. Este important de vzut n ce fel anume se realizeaz aceast
prelucrare. Dac ne gndim la exemplul de mai sus este limpede c voltmetrul analogic
ndeplinete o anumit funcie prin modul n care este construit adic prin conexiunile
electrice existente ntre elementele componente. Un astefel de sistem se numete cu
logic cablat adic modul de prelucrare a informaiei este determinat de modul
< 21 >
Arhitectura sistemelor de calcul
perticular de conectare a elementelor componente. Acelai lucru se poate realiza i n
cazul unui sistem numeric i deci i astfel de sisteme pot fi n logic cablat. Un sistem
realizat n logic cablat nu va putea ndeplini dect o anumit funcie (n exemplul
nostru, nu ne vom putea gndi s folosim voltmetrul la altceva dect la msurarea
tensiunii) cea pentru care s-a realizat un anumit mod de conectare ntre elementele
componente. Rezult c un sistem n logic cablat este lipsit de flexibilitate,
modificarea funciei ndeplinite presupunnd (cel puin) modificarea conexiunilor
existente i (eventual) necesitatea adugrii unor componente noi. Un astfel de sistem
are totui avantajul simplitii n sensul c el nu va conine dect elementele
componente strict necesare apicaiei particulare pentru care este destinat.
Sistemele numerice prin faptul c prelucreaz informaia sub form numeric
permit realizarea unor structuri generale, independente de aplicaia pentru care vor fi
folosite. n aceast situaie prelucrarea intern a informaiei nu mai este legat de
coneziunile existente ntre elementele structurii fizice. Pe aceast structur fizic
generic (independent de aplicaie) prelucrarea informaiei se va face pe baza unui
program (list de comenzi) ce se va afla n memoria sistemului de calcul. Astfel de
sisteme se numesc cu logic programat. Ele sunt flexibile (schimbarea programului
nseamn schimbarea sau modificarea aplicaiei pentru care sunt destinate) dar i
redundante n sensul c structura fizic general poate avea mai multe elemente dect
sunt necesare pentru o anumit aplicaie.
Calculatoarele analogice nu pot fi construite dect n logic cablat pe cnd cele
numerice pot fi construite att n logic cablat ct i n logic programat. Trebuie
precizat aici faptul c, dei n cazul calculatoarelor numerice n logic programat se
vorbete de o structur fizic general, aceasta nu poate fi total independent de
aplicaia (sau familia de aplicaii) pentru care este folosit calculatorul respectiv.
Dei varianta de sistem de calcul n logic programat prezint o serie de
avantaje ce au dus la dezvoltarea rapid i extinderea aplicrii acesteia n cele mai
variate domenii, calculatoarele analogice rmn importante i cu aplicaii extinse.
Revenind la structura unui sistem de calcul n logic programat, existena
programului indic faptul c trebuie s existe un element care s poat nelege i
executa comenzile existente n acest program. Acest element se numete unitate
central i pe lng funciile amintite va mai avea i alte sarcini n sistemul de calcul.
Din cele prezentate s-a conturat o structur general a unui sistem de calcul
numeric n logic programat i care trebuie s conin: unitatea central, memoria i
interfeele.
Intern, un calculator prelucreaz mai multe fluxuri de informaie dintre care
principalele fluxuri sunt reprezentate de datele numerice i de instruciunile
programului. Dup modul de prelucrare al acestor fluxuri informaionale calculatoarele
se pot clasifica n:
< 22 >
Arhitectura sistemelor de calcul
maini de tip MIMD (Multiple Instruction Multiple Data) care
prelucreaz la un moment dat mai multe instruciuni program i mai
multe date numerice.
Mainile de tip SIMD sau MIMD fac parte din categoria calculatoarelor paralele
care pot prelucra n paralel mai multe fluxuri de informaie.
Din punct de vedere al puterii de calcul, n prezent calculatoarele se clasific
astfel:
< 23 >
Arhitectura sistemelor de calcul
3.2. Arhitectura von Neumann
Cea mai simpl structur (structura minimal) a unui sistem de calcul este
prezentat n figura 3.1.
n Magistrala de adrese
UNITATE m Magistrala de date
CENTRAL p Magistrala de comenzi
MEMORIE PORTURI
(INTERFEE)
Sistem de calcul q
Mediul extern
PERIFERICE
< 24 >
Arhitectura sistemelor de calcul
magistral (bus). Avem trei tipuri principale de magistrale: magistrala de adrese,
magistrala de date i magistrala de comenzi. Fiecare din aceste magistrale este alctuit,
aa cum s-a artat, din mai multe conexiuni electrice. n figura noastr, magistrala de
adrese are n linii, magistrala de date are m linii iar magistrala de comenzi are p linii.
Perifericele nu aparin structurii sistemului de calcul dar sunt menionate aici
deoarece sunt indispensabile funcionrii unui calculator. Vorbind la modul general, un
periferic realizeaz conversia unei anumite forme de energie n energie electric. Spre
exemplu, tastatura, care este un periferic transform energia mecanic cu care apsm
tastele ntr-un semnal electric care este preluat de ctre interfa i adaptat formatului
intern propriu sistemului de calcul, iar monitorul (display-ul) transform energia
electric n energie luminoas.
Se observ c interfeele sunt legate la rndul lor la periferice prin intermediul
unor magistrale (de dimensiune q n figura noastr). Aceste magistrale sunt de diferite
tipuri, au diferite dimensiuni i poart diferite denumiri legate de tipul interfeei la care
sunt legate.
Elementele care alctuiesc structura sistemului de calcul se mpart n dou
categorii: elemente de comand (master) i elemente comandate (slave). ntr-o structur
de calcul vom recunoate uor elementele de comand prin faptul c acestea pot genera
adrese (sensul sgeii magistralei de adrese este dinspre modulele de comand spre cele
comandate).
MEMORIE
DE MEMORIE PORTURI
PROGRAM DE DATE
Microcontroler q
PERIFERICE
< 25 >
Arhitectura sistemelor de calcul
creterea corespunztoare a vitezei de lucru. De asemenea astfel de sisteme folosesc
cuvinte de lungimi diferite pentru codul instruciunii i pentru date (de exemplu, coduri
de instruciuni pe 14 bii i date pe 8 bii) ceea ce permite utilizarea unui set complex de
instruciuni.
Utilizarea memoriilor cu destinaii diferite presupune existena unei magistrale
de adrese de program i a unei magistrale de adrese de date i, de asemenea, existena
unei magistrale de date pentru program pe care sunt aduse codurile de instruciune i
a unei magistrale de date pentru datele programului (fiecare dintre aceste magistrale
putnd avea dimensiune diferit).
O astfel de arhitectur este utilizat cu precdere n structura procesoarelor de
semnal (DSP Digital Signal Processor) sau a microcontrolerelor de tip Microchip PIC,
Atmel AVR etc.
n astfel de sisteme, programul i datele acestuia sunt stocate n memorii diferite.
De regul memoria program este o memorie de tip FLASH n aa fel nct programul s
nu se tearg la ntreruperea tensiunii de alimentare iar datele sunt stocate n memorii de
tip RAM static i memorii de tip EEPROM.
Asfel de sisteme reprezint microcalculatoare integrate care au unitatea central,
memoria i porturile realizate pe un singur circuit integrat.
Un calculator poate avea mai multe magistrale de acelai tip care se deosebesc
prin viteza de variaie (frecvena) a semnalelor care parcurg aceste magistrale,
dimensiunea i destinaia acestora. Din cauz c diferitele elemente conectate la
magistral au viteze de lucru diferite, elementele mai lente (cu vitez de lucru mai
sczut), vor impune frecvena maxim pe magistrale. Pentru creterea performanelor
unui calculator, magistralele se realizeaz pe mai multe nivele cu frecvene de lucru
diferite. Astfel, pe magistrala cu viteza cea mai mare se conecteaz de obicei unitatea
central i memoriile rapide iar pe magistralele cu vitez mai sczut se conecteaz
memoriile lente i porturile. Comunicaia ntre magistralele ce lucreaz la frecvene
diferite se realizeaz cu ajutorul unor circuite integrate specializate numite controlere de
magistral. Rezult c un criteriu de performan a unui calculator este reprezentat de
frecvena maxim a magistralelor interne.
Diferitele structuri particulare de calculatoare pot conine i alte elemente n
afar de cele prezentate n figura 3.1, n scopul creterii performanelor calculatorului
sau datorit destinaiei acestuia. Dintre aceste elemente suplimentare cele mai uzuale
sunt: circuitul de acces direct la memorie (DMA), controlerul de ntreruperi, controlerul
video i controlerul de comunicaie. Este de remarcat aici faptul c n cazul
calculatoarelor de proces apar n plus ceasul de timp real i ceasul de gard (watchdog
timer) necesare rulrii n timp real a aplicaiilor. n figura 3.3 este prezentat schema
bloc a unui calculator de proces. n aceast figur se vede c sistemul este organizat n
jurul a mai multor magistrale. Pe magistrala A se afl sistemul de calcul propriu-zis iar
pe magistrala B se afl circuitele de interfa cu procesul. Fiecare dintre magistrale sunt
alctuite, la rndul lor, din mai multe magistrale care nu sunt artate n figurr.
Pentru a evita confuziile, trebuie menionat faptul c n figura 3.3, printr-un abuz
de limbaj, unitate central este denumit placa electronic, notat cu 880-P, ce conine
att unitatea central propriu-zis ct i porturi de intrare/ieire. Tot aa, prin extinderea
acestei expresii, unitate central este denumit cutia sau dulapul n care se afl aceast
component din structura sistemului de calcul.
< 26 >
Arhitectura sistemelor de calcul
< 27 >
Arhitectura sistemelor de calcul
CAPITOLUL 4
UNITATEA CENTRAL
4.1. Introducere
< 28 >
Arhitectura sistemelor de calcul
relativ redus de instruciuni i uniti centrale de tip CISC (Complex Instruction Set
Computer) cu un numr mare de tipuri de instruciuni.
Unitile de tip RISC sunt ieftine i foarte rapide din cauz c setul simplu de
instruciuni le permite execuia cu vitez mare a programului. Unitile centrale de tip
CISC au avantajul posibilitilor extinse de lucru datorit setului complex de
instruciuni iar n ultimul timp, ele sunt un concurent serios, la vitez, al unitilor
centrale de tip RISC. Cunoscutul microprocesor al firmei INTEL, Pentium, este
considerat ca fiind o unitate central de tip CISC dei conine n arhitectura sa multe
elemente ale unei maini RISC. n figura 2.4 este prezentat microprocesorul INTEL
486.
Numrul de bii prelucrai simultan de unitatea central reprezint de fapt
limea magistralei de date din cauz c pe aceast magistral sunt vehiculate date i
instruciuni. Limea magistralei de date este de regul un multiplu de opt, n prezent
fiind ntlnite n mod uzual uniti centrale ce lucreaz pe 8, 16, 34, 64, 128 sau 256 de
bii.
Frecvena semnalului de tact (semnalul de ceas) aplicat unitii centrale
reprezint de asemenea un criteriu de performan a acesteia. Avnd n vedere faptul c
o instruciune este executat de unitatea central n una sau mai multe perioade de ceas,
rezult c viteza de calcul crete odat cu creterea frecvenei de ceas. n prezent
calculatoarele personale performante utilizeaz frecvene de tact de pn la 600MHz cu
perspective de a ajunge la 1GHz.
Aceste criterii de performan nu sunt absolute din cauz c ele depind n mare
msur de arhitectura unitii centrale. Astfel, spre exemplu, dou uniti centrale cu
aceeai frecven de ceas, pot merge cu viteze diferite, datorit structurii interne, cu
pn la de 20 de ori.
Un alt criteriu de performan l reprezint dimensiunea memoriei interne,
memoria cache, a unitii centrale. Memoria cache este o memorie foarte rapid care
este folosit ca intermediar ntre unitatea central i memoria principal a sistemului.
Aceast memorie poate fi att intern (n structura unitii centrale) ct i extern. Din
acest motiv se spune c memoria cache este organizat pe nivele. Cu ct dimensiunea
memoriei cache interne este mai mare, cu att performanele unitii centrale vor fi mai
bune.
Alte criterii de performan ce pot fi luate n considerare n cazul unitilor centrale
sunt: numrul maxim adresabil de porturi de intrare/iesire, numrul i dimensiunea
registrelor interne, i modalitile de adresare.
O unitate central execut o instruciune n unul sau mai muli ciclii main. Un
ciclu main reprezint o activitate elementar a unitii centrale (extragerea din memorie a
codului operaiei, citire/scriere din/n memorie, citire/scriere din/n port, achitare cerere
ntrerupere etc. Un ciclu main poate dura una sau mai multe perioade a ceasului de
comand al unitii centrale.
Pentru determinarea performanelor unitilor centrale se folosete o metod
bazat pe detrminarea numrului de operaii n virgul mobil (floating-point operatins)
executate de aceasta ntr-o secund. Unitatea de msur este FLOPS (FLoating-point
Operations per Second), n mod obinuit performanele unitilor centrale fiind msurate
n megaFLOPS sau gigaFLOPS.
< 29 >
Arhitectura sistemelor de calcul
La punerea sub tensiune unitatea central pornete dintr-o stare iniial
cunoscut ncepnd s execute programul aflat n memorie de la o adres bine precizat.
Pe timpul execuiei unui program unitatea central poate ajunge dintr-un motiv sau altul
ntr-o stare nedorit care s afecteze modul corect de funcionare al calculatorului. n
aceste situaii unitatea central trebuie readus n starea iniial. Acest lucru se face fie
n mod automat de ctre circuitele specializate ale calculatorului fie de ctre utilizator
prin apsarea unui buton (RESET). Este evident faptul c iniializarea unitii centrale
poate fi fcut i prin ntreruperea tensiunii de alimentare dar acest lucru este
nerecomandabil de cele mai multe ori pentru c se pot pierde informaii n curs de
prelucrare de ctre periferice i/sau informaii legate de prelucrrile curente. De
asemenea ocurile termice i de tensiune ce apar la pornirea calculatorului nu
recomand folosirea acestui procedeu pentru reiniializarea unitii centrale. Butonul de
iniializare a unitii centrale (RESET) este marcat uneori i cu simbolul: .
Datorit dezvoltrii spectaculoase a microsistemelor i datorit faptului c
unitile centrale a acestora, microprocesoarele, beneficiaz de o ntreag gam de
inovaii tehnologice, ne vom concentra atentia asupra unitailor centrale de tip
microprocesor
Principalele avantaje oferite de microsisteme fa de sistemele convenionale sunt:
< 30 >
Arhitectura sistemelor de calcul
cazul microcontrolerelor ntr-o singur component sunt integrate pe lng unitatea
central i o parte din elementele microsistemului. Dei microcontrolerele prezint o
flexibilitate mai redus ele prezint avantajul miniaturizrii i a preului de cost sczut.
< 31 >
Arhitectura sistemelor de calcul
instruciuni, generate din RI ctre AC i prin intermediul MUX, ctre
RALU;
indicatori, generai de ALU din RALU ctre RS;
date - reprezint un bus intern bidirecional pe care sunt cuplate
RALU, RS i RI (unidirecional);
adrese - cale de adrese ce se emite n exterior din RALU pentru
controlul dispozitivelor de memorare exteroare microprocesorului.
Semnalele la bornele microprocesorului sunt urmtoarele:
adrese - cale unidirecional;
date - cale bidirecional;
semnale de sincronizare:
- READ - semnal ce comand citirea de la adres configuraiei
binare de pe calea date;
- WRITE - semnal ce comand la adres a configuraiei binare de
pe calea date;
- WAIT - semnal recepionat ce impune trecerea
microprocesorului ntr-o stare de ateptare drept urmare a unei
comenzi READ sau WRITE ce nu a fost nc executat;
- INT - semnal de ntrerupere a crui recepionare stopeaz
procesul curent de calcul pentru a da curs unui eveniment
exterior sistemului;
- INTA - semnal ce indic luarea n consideraie a semnalului de
ntrerupere INT; ca urmare a acestui semnal, dispozitivul ce a
activat INT va genera pe date o configuraie binar specific;
- RESET - semnal de iniializare a funcionrii microprocesorului.
< 32 >
Arhitectura sistemelor de calcul
Microprocesorul Z80 mpreun cu componentele sale auxiliare formeaz o familie
tipic pentru generaia de microprocesoare de 8 bii. Componentele din familie asigur
posibilitatea realizrii tuturor funciilor clasice ale unui sistem cu microprocesor.
Principalele caracteristici ale acestui microprocesor sunt:
< 33 >
Arhitectura sistemelor de calcul
Microprocesorul 80386 pe 32 de bii a fost proiectat pentru utilizarea n aplicaii
intensive complexe. Datorit celor 32 de bii de adrese, spaiul adreselor fizice este de 4Go
iar spaiul adreselor logice de 64To. Este prevzut cu microcod care suport direct aplicaii
care utilizeaz ntregi mari, structuri complexe de date i un numr mare de programe.
Microprocesorul are patru moduri distincte de funcionare: real, virtual 8086, protejat 286
i nativ 386. n figura 4.4 este prezentat schema bloc a microprocesorului 80386.
MODUL REAL. Acest mod este cel n care se intr dup iniializarea
microprocesorului. De regul, sub sistemul de operare DOS microprocesorul se afl n
modul real. Specific acestui mod de funcionare este faptul c microprocesorul nu poate
rula dect un singur program odat. Exist posibilitatea rulrii programelor sub sistemul
de operare DOS i n alte moduri ale microprocesorului, dar acest lucru necesit extensii
ale sistemului de operare (existnd n acest sens programe specifice).
< 34 >
Arhitectura sistemelor de calcul
MODUL PROTEJAT. n acest mod, microprocesorul emuleaz funcionarea
unui microprocesor de tip 80286 n mod protejat. Modul protejat prezint un mecanism
sofisticat pentru protejarea datelor, integritatea sistemului, concurena taskurilor i
gestiunea memoriei incluznd i cea a memoriei virtuale. n modul protejat, n cazul
microprocesorului 80286, spaiul adreselor fizice este mrit de la 1 Moctet la 16
Moctei, n timp ce spaiul adreselor virtuale a fost mrit la 1 Goctet. n acest mod,
programele folosesc adrese virtuale, translatarea lor n adrese fizice fcndu-se automat
pe baza unor tabele cu descriptori de segmente. Acest mecanism permite implementarea
eficient a sistemelor cu memorie virtual n care utilizatorul vede memoria intern i
cea extern ca o singur memorie. Modul protejat permite implementarea sistemelor
multitasking, oferind cte un segment de stare ataat fiecrui task, care sunt structuri
manevrate hardware i conin strile curente (incluznd toi regitrii) ale taskurilor.
Selectoarele acestor segmente de stare identific unic taskul ataat. De asemenea, este
facilitat i comutarea taskurilor, care poate fi invocat printr-o singur instruciune.
Fiecare task din sistem poate avea propriul lui spaiu de adrese logice, existnd de
asemenea un mecanism evoluat pentru comunicarea ntre taskuri, sincronizarea lor,
partajarea memoriei etc.
< 35 >
Arhitectura sistemelor de calcul
corespunztoare ramurii la care se va face saltul. Utilizarea tehnicii de prevedere a
ramificrii unui program permite microprocesorului s menin n funcionare la vitez
maxim, cele dou canale pentru execuia instruciunilor.
Principalele caracteristici ale microprocesorului Pentium sunt:
< 36 >
Arhitectura sistemelor de calcul
sistem de ntreruperi hardware i software;
posibilitatea funcionrii n sisteme multiprocesor;
posibilitatea efecturii operaiilor aritmetice (inclusiv nmulire i
mprire) i operaii logice;
frecven de tact 6MHz.
Microprocesorul 8086 este un microprocesor pe 16 bii i memorie adresabil
direct de 1Mo. Structura unitii centrale, cu elementele accesibile programatorului, este
prezentat n figura 4.5.
20
AH AL
BH BL 16
CH CL CODE SEGMENT
Registre
DH DL de uz
DATA SEGMENT
SP general STACK SEGMENT
BP EXTRA SEGMENT
DI IP
SI EU REGISTRE INTERNE
20
16
Bus LOGICA DE 16
COMANDA
BIU DE BUS
REGISTRE TEMPORARE BUS AD 0 AD 15
MULTIPLEXAT
COMANDA
ALU
EU 8 1 2 3 4 5 6 8
COADA DE INSTRUCTIUNI
< 37 >
Arhitectura sistemelor de calcul
EU calculeaz adresele efective ale operanzilor, conform modului de scheme
utilizat. Adresa efectiv pe 16 bii, BIU genereaz adresa fizic cu 20 de bii, selectarea
adresei efective, generate de EU.
Dac Q este plin i EU nu solicit transferuri pe bus apar cicluri n rotire
(ateptare).
Exemplu: T1 T2 T3 T4 TI TI ... TI TI T1 T2 T3 T4 ... TI = Idle State.
Modul minim MN / MX = 1
Semnale de comand: ALE, DT/K, DEN, M/IO, WR, INTA, HOLD, HOLDA.
Folosit n sisteme mici, de regul monoprocesor. n figura alturat circuitele
bufferde tip 8286 pot lipsi dac ncrcarea electric a bus-ului este redus.
Modul maxim MN / MX =0
UCP genereaz ctre controlerul de sistem I 8288 semnale de stare identificare
ale ciclului de bus, n rest genereaz semnale corespunztoare pe bus-ul de comand.
AX = (AH, AL)
BX = (BH, BL) fiecare din ele poate servi ca destinaie a datelor
CX = (CH, CL) (accumulator)
DX = (DH, DL)
< 38 >
Arhitectura sistemelor de calcul
Utilizrile implicite ale registrelor sunt:
AX: utilizat pentru operaii aritmetice (*), (/) pe 16 bii i pentru operaii de
I/E pe 16 bii; n mod analog AL este utilizat pe 8 bii i n plus pentru
aritmetic zecimal i conversii de cod; AH este utilizat la (*) i (/) pe 8
bii;
BX: utilizat n conversii de cod i ca registru de baz de adrese;
CX: utilizat n operaii cu iruri, cu rol de contor de cicluri;
CL: utilizat n deplasri (stnga, dreapta cu un numr de pai dai ca
parametru de valoare lui CL);
DX: utilizat la (*), (/) pe 16 bii i ca registru de adresare indirect la porile
de intrare ieire (I/E);
SP: utilizat implicit n toate operaiile cu stiva;
SI, DI: utilizate n operaiile asupra irurilor de date;
CF = C, PF = P, AF = H, ZF = Z, SF = S semnificaii obinuite :
CF = "carry flag": depire aritmetic;
PF = parity flag: paritate;
AF = auxiliary flag: transport ntre bitul 3 i 4;
ZF = "zero flag: valoare zero;
SF = sign flag: semnul.
TF = trip flag; TF = 1 determin UCP s lucreze n mod pas cu pas(single
step), n care CA genereaz o ntrerupere intern dup fiecare execuie a
unei instruciuni;
IF = masca pentru ntreruperi externe (IF =1 => validarea ntreruperilor; IF =0
=> invalidarea ntreruperilor);
DF = direction flag- indic direcia deplasrii adresei la operaiile cu iruri de
date (DF =1 => autodecrementare, DF =0 => autoincrementare, dup o
operaie elementar);
OF = V (depire).
CS, DS, SS, ES = sunt registre segment care conin adresele de baz ale
segmentelor logice de cod, date, stiv i extrasegment;
IP = Instruction Printer = contor de program, cu 16 bii. Valoare ce reprezint
adresa relativ (offset-ul) a instruciunii curente n segmentul de cod
(relativ la CS). n cazul unei instruciuni de salt, IP este salvat n vrful
< 39 >
Arhitectura sistemelor de calcul
stivei (mpreun cu CS, deci saltul este inter-segment) i apoi ncrcat cu
adresa relativ n segmentul de cod a instruciunii int ;
Posibilitile de lucru n sisteme multiprocesor
Arhitectura familiei I8086 conlucrarea ntre dou tipuri de procesoare:
independente (execut propriile secvene de instruciuni) ;
coprocesoare care obin instruciuni din memoria unui procesor
gazd (host), urmrind ciclurile FETCHale gazdei, le recunosc pe
cele destinate lor i le execut. Efectul obinut este extinderea setului
de instruciuni al gazdei.
Organizarea ierarhic a bus-urilor
Familia admite dou tipuri de bus-uri: locale i de sistem. Ambele pot fi
multimaster (mai multe UCP conectate la bus). ntre bus-ul local i cel de sistem se
conecteaz interfee.
Conexsiunile externe ale I8086
n modul "maxim" UCP livreaz controlerului de sistem I 8288, n fiecare ciclu
de bus, un cuvnt de comand (S0, S1, S2), pe care acesta l decodific i genereaz
semnale de comand pe magistral (bus). n acest mod se pot conecta mai multe UCP la
bus.
Semnalele externe ale microprocesorului I8086 sunt prezentate n figura 4.6.
Semnificaie n modul
maxim ( MX = 0 )
MN/ MX
A16 / S3
BHE / S7
A17 / S4
M / IO
A18 / S5
DT / R (S2)
A19 / S6
DEN (S1)
AD 15 (S0)
READY
AD 0 16 RD
8086 WR ( LOCK )
Vcc
CLK
HOLD ( RQ / GT0 )
GHD
HOLDA ( RQ / GT1 )
ALE
RESET
INTA
TEST ( QS0 )
INTR ( QS1 )
NMI
< 40 >
Arhitectura sistemelor de calcul
nct s poata fi generate toate semnalele pe aceti pini (adrese 20 de semnale, date
16 semnale, comenzi i alimentare), cele 16 linii de adres A15 A0 fiind
multiplexate cu cele 16 linii de date D15 D0.
TABELUL 4.1.
Simbol Nr. pin Semnificaie Tip
AD15 216,
AD0 39 Adresa n T1/D este n T2, T3, Tw, T4 I/O, Z
A19 / S6
A18 / S5 Adresa n T1 / semnele de stare n T2, T3, Tw,
35 38
A17 / S4 T4
A16 / S3
FIXE
RQ / GT1 30
Comenzi cerere/cedare pentru arbitraj de bus I/O
RQ / GT0 31
Indicator c 8086 nu va ceda bus-ul altui
LOCK 29 O
master
QS1 Starea cozii de instruciuni din interfaa cu bus-
24, 25 O
QS0 ul a UCP
unde: I = intrri; O = ieiri; Z = impedan mare;
< 41 >
Arhitectura sistemelor de calcul
Observaii:
cu Tn se noteaz ciclurile unitii centrale (T1 ciclul de extragere
cod operaie etc.)
AD15 AD0 : genereaz adrese n intervalul T1, devin intrri / ieiri
de date n T2 T4 i trec n impedan mare n timpul ciclurilor
INTA, sau dac UCP a cedat bus-ul (HDLA = 1);
A19 / S6 A16 / S3: genereaz adrese n intervalul T1 (cu valoare
0dac ciclul de transfer este I/E) i semnale de stare n T2 T4.
o S6 = 0 indic ocuparea bus-ului de ctre UCP;
o S5 = IF copieaz starea flag-ului de intrerupere. Astfel, starea
de validare / invalidare se poate citi hardware din exteriorul
UCP.
S4 S3
0 0 Alternate data Indic registrul segment curent
0 1 Stack utilizat pentru adresare.
1 0 Code or home
1 1 Data
< 42 >
Arhitectura sistemelor de calcul
7 Ciclu inactiv.
Pinii S2, S1, S0 trec n starea Z n intervalele n care UCP cedeaz
bus-ul.
Liniile bidirecionale RQ / GT, (RQ/GT0 au prioritate fa de
RQ/GT1) i sunt utilizate de alte module masterde pe bus-ul local
pentru pentru a cere bus-ul de la UCP. Cererea se face prin RQ = 0
(intrare); la sfritul ciclului main curent UCP cedeaz bus-ul i
genereaz GT = 0 (GranT). Semnalul LOCK = 0 indic faptul c
UCP nu va ceda bus-ul deoarece execut o seciune de transfer
nentreruptibil ce trebuie terminat.
Semnalele QS0 i QS1 indic starea cozii de instruciuni existente n
unitatea de interfa de bus a UCP.
< 43 >
Arhitectura sistemelor de calcul
< 44 >
Arhitectura sistemelor de calcul
8 bii (octei)
16 bii (cuvinte)
32 bii (cuvinte duble sau pointer-i)
Nu exist restricii privind plasarea acestor date n memorie (ele pot ncepela
orice adres). n funie de plasarea datelor la scheme pare sau impare UCP va executa
automat numrul de cicluri necesare pentru citirea lor.
Convenia de reprezentare a datelor multi-cuvnt n memorie este cea standard la
microprocesoarele INTEL: octeii mai puin semnificativi sunt plasai la adrese mai mici
(n grupul de octei alocat cuvntului).
Memoria lui I 8086 este segmentat.
Pentru generarea adresei fizice AF, BIU execut operaia dat de relaia:
AF = S x 24 + O (4.1)
OFFSET
Registrul
Tipul de referire la Alte registre (adresa relativ n
segment
memorie utilizate cadrul
utilizat implicit
segmentului)
FETCH CS _ IP
* Operaii cu stiva SS _ SP
* Date variabile (cu
DS CS, SS, ES Adresa efectiv
excepiile de mai jos)
* Sursa la operaiile cu
DS CS, SS, ES SI
iruri
* Destinaia la operaiile
ES _ DI
cu iruri
* BP folosit ca registru de
SS CS, DS, ES Adresa efectiv
baz
< 45 >
Arhitectura sistemelor de calcul
Memoria stiv
Stiva sistemului se organizeaz n memoria principal. ntr-o aplicaie pot exista
mai multe stive (fiecare cu dimensiunea maxim de 64Ko). Adresa de baz a stivei
(valoarea iniial a registrului SP ntr-un program) este diferit de adresa de baz a
segmentului de memorie alocat stivei.
Modul de organizare al stivei microprocesorului I8086 este artat n figura 4.9.
8 bii
: SS Adresa de baz a
segmentului de memorie
alocat stivei
Stiv de dimensiune
64 Ko
: :
locaii ocupate n stiv
la un moment dat
Animite zone din memoria principal a sistemului sunt rezervate pentru diferite utilizri
de ctre unitatea central.
Adrese rezervate:
< 46 >
Arhitectura sistemelor de calcul
ntreeserea ciclurilor de acces la bus a diverselor module master
se face la nivel de ciclu de bus (i nu la nivel de ciclu de
instruciune).
LOCK = 0 indic faptul c 8086 execut o instruciune ce nu poate fi
ntrerupt (instruciunea e prefixat LOCK ex. actualizarea unui
pointer de 4 octei).
Utilizarea liniilor RQ/GT0 i RQ/GT1
Liniile RQ/GT0 i RQ/GT1 bidirecionale permit controlul accesului
la un bus local comun mai multor procesoare. Protocolul de
cerere/cedare a bus-ului decurge astfel:
o procesorul solicitator cere acces prin generarea unui impuls
(RQ=0) ctre UCP;
o UCP (la sfritul ciclului main curent) cedeaz bus-ul i
rspunde prin impulsul (GT=0);
o dup terminarea accesului, cellalt procesor elibereaz bus-ul
informnd asupra acestui fapt printr-un nou impuls (GT=0).
Sistemul de ntreruperi
Clasificarea ntreruperilor
ntreruperile interne (software)
Servirea ntreruperilor
Tipul unei ntreruperi este utilizat de ctre UCP ca adres relativ ntr-un tablou
de pointer-i, amplasat n memoria principal ntre adresele 03FFH (256x4 octei).
< 47 >
Arhitectura sistemelor de calcul
Un pointer conine adresa logic pentru servirea ntreruperii. Pentru a efectua saltul la
aceast adres se efectueaz urmtoarele operaii:
IP 0
TIPO (DIV)
CS 2
TIP I 4
(SINGLE STEP) 6
TIP 2 (NMI) 8
A
ntreruperea break
TIP 3 (INSTR DE INTR C
E
point destinat
CU 1 OCTET)
10H depanrii programelor
TIP 4 (INTO) 12H
Zoa rezervat
pentru compatibiliti
cu alte produse INTEL 7EH
. 8OH
.
.
3FEH
Figura 4.10. Tabel de pointer-i pentru ntreruperi
< 48 >
Arhitectura sistemelor de calcul
Completeaz
instruciunea
curent
intreruperi Da
interne
NU
Da
NMI ?
NU
Da
INTR ?
NU Da
NU IF=1 ?
TF=1 ?
Confirm receptarea
ntreruperii (primul ciclu
INTA)
Execut
instruciunea
urmtoare Citete tipul ntreruperii
(al doile ciclu INTA)
Da
NMI ?
NU
* TEMP = variabil intern pentru Da
memorarea valorii lui TF (TEST FLAG) TEMP=1
NU
(definit de Procedeu de servire a
programator) ntreruperii
< 49 >
Arhitectura sistemelor de calcul
HALT (la apariia instruciunii) stopeaz toate activitile UCP pn
ce apare o ntrerupere sau semnal RESET. n aceast sare o cerere de
bus este (HOLD=1) este recunoscut i i acceptat de ctre UCP.
Intrarea TEST este testat de instruciunea WAIT i dac TEST 0,
atunci procesorulateapt (ntr-o stare inactiv) pn ce TEST 0.
n acest timp, se pot servi ntreruperile aprute la intrri, dup care se
reia ateptarea. Intrarea TEST poate servi pentru sincronizarea UCP
cu evenimente externe.
Activitile unui dispozitiv DSP impun efectuarea unor operaii specifice cum
sunt: (figura 4.12):
adunri i nmuliri;
< 50 >
Arhitectura sistemelor de calcul
ntrziri;
manipulari de matrici.
c[0] adunri
Z-1
ntrzieri c[1] nmuliri
ntrzierile sunt folosite pentru reinerea unei valori pentru utilizare ulterioar.
Manipularea matricilor este necesar pentru:
< 51 >
Arhitectura sistemelor de calcul
Utilizarea matricilor permite ca datele s poat fi manevrate eficient n locaii
succesive de memorie. Acest lucru necesit generarea adresei de memorie unde se
gsete valoarea urmtoare i pentr aceasta dispozitivele DSP au regitrii de adrese ce
sunt folosii pentru pstrarea adresei i care permit generarea adresei urmtoare n mod
eficient.
magistral unic
conversie de tip
P S
s0
nmulirea i adunarea s1
lucreaz n paralel s2
s3
Fig. 4.13. Fluxul de date la realizarea inmulirii i adunrii
TABELUL 4.2.
Simbol Adresare Observaii
*rP adresare indirect este citit data din memorie indicat de adresa coninut
prin registru n registrul rP
*rP++ postincrementare dup citirea datei din memorie, adresa din registrul rP
este incrementat, n aa fel nct s indice adresa
urmtoarei date din matrice
*rP-- postdecrementare dup citirea datei din memorie, adresa din registrul rP
este decrementat, n aa fel nct s indice adresa
urmtoarei date din matrice
*rP++r postincrementare dup citirea datei din memorie, adresa coninut n
I n funcie de registrul rP este incrementat cu valoarea coninut de
registru registrul rl, adresa obinut indicnd noua valoare ce
urmeaz a fi citit din memorie further down the array
*rP++r cu bii inversai dup citirea datei din memorie, valoarea ce indic adresa
Ir este incrementat pentru a indica valoarea urmtoare din
matrice, biii adresei fiind aezai n ordine invers
< 52 >
Arhitectura sistemelor de calcul
extragerii sau stocrii datelor. Procesoarele DSP au un set bogat de instruciuni pentru
generarea adreselor. Un exemplu de astfel de instruciuni este dat n tabelul 4.2.
Sintaxa n limbaj de asamblare pentru instruciunile prezentate n tabelul 4.2 este
foarte asemntoare cu limbajul C. De cte ori un operand este extras din memorie prin
utilizarea modului de adresare indirect prin regitrii, registrul de adres poate fi
incrementat pentru a indica urmtoarea valoare necesar din matrice. Incrementarea
adresei este liber nu sunt implicate resurse pentru calculul adresei i mai multe
astfel de adrese pot fi generate ntr-o singur instruciune. Generarea adreselor este un
factor important n creterea vitezei procesoarelor DSP i a operaiilor specializate ale
acestora.
Ultimul mod de adresare cu bii inversai arat ct de specializate pot fi
procesoarele DSP. Adresarea cu inversare de bii este necesar atunci cnd un tabel de
valori este reordonat prin inversarea ordinii biilor de adres astfel:
intrri/ieiri numerice;
convertoare analog-numerice (CAN);
convertoare numeric-analogice (CNA);
comparatoare;
numrtoare programabile;
interfae seriale sincrone de mare vitez pentru conectarea
perifericelor externe sau a dispozitivelor DSP;
interfee seriale standard de tip RS-232 pentru lucrul pe port serial
asincron.
Circuitul DSP de tip TMS320F240 este un circuit integrat pe scar foarte larg
n tehnologie CMOS i se compune din trei uniti funcionale: unitatea central de tip
C2xx DSP, memoria intern i unitatea circuitelor periferice. De asemenea, n afar de
aceste uniti funcionale sunt prevzute o serie de faciliti sistem care se refer la
gestionarea memoriei, initializarea blocurilor, intreruperi, controlul intrrilor/ieirilor,
generearea ceasului intern i comutarea n regim de consum redus. Circuitul
TMS320F240 utilizeaz o arhitectur Harvard avansat pe folosirea a dou magistrale
separate: de date i de program.
< 53 >
Arhitectura sistemelor de calcul
n continuare sunt prezentate foarte sumar principalele faciliti oferite de
circuitul DSP n scopul formrii unei imagini asupra structurii complexe a acestuia:
Modul interfa de
sistem
Magistrala perifericelor
< 54 >
Arhitectura sistemelor de calcul
Schema bloc simplificat a circuitului DSP de tip TMS320F240 este prezentat
n figura 4.14.
Prezena celor dou magistale, magistrala de date i magistrala de program
permite prelucrarea simultan a instruciunilor de program i a datelor.
Organizarea memoriei procesorului este prezentat n tabelele 4.3, 4.4 i 4.5.
Bitul CNF care se gsete n registrul de stare ST1 permite activarea memoriei
RAM cu acces dublu on chip, blocul 0 (CNF = 1) sau a memoriei externe (CNF = 0).
Organizarea memoriei de date este artat n tabelul 4.5. Se observ c n
memoria de date vom gsi corespondentul regitrilor unitii centrale i a perifericelor
ceea ce permite lucrul cu acetia identic cu lucrul cu orice alt locaie de memorie.
Acest fapt duce la creterea vitezei de execuie i simplitatea programrii.
mprirea memoriei n dou tipuri: memorie de program i memorie de date
impune ca orice program s fie alctut din dou segmente corespunztoare acestor
tipuri, amestecarea instruciunilor cu datele nefiind permis.
< 55 >
Arhitectura sistemelor de calcul
< 56 >
Arhitectura sistemelor de calcul
4.5. Microcalculatoare integrate, microcontrolere
4.5.1. Prezentare general
< 57 >
Arhitectura sistemelor de calcul
trei circuite de ceas programabile, de 16 bii fiecare;
un oscilator pilot.
43 de tipuri de instruciuni;
124 de registre de uz general, 4 registre de I/E, 16 registre de
control i configurare;
32 de linii de intrare/ieire;
un circuit de intrare/ieire serie;
2 circuite de ceas (fiecare ceas avnd un divizor programabil de 8
bii i un predivizor de 6 bii);
6 ntreruperi vectorizate, mascabile i aranjabile n ir de
prioriti;
timp de execuie mediu a instruciunilor de 2,2 s.
< 58 >
Arhitectura sistemelor de calcul
o temporizator Watchdog programabil cu oscilator ncorporat in chip;
o interfa serial SPI pentru programarea In-system;
o port serial UART full duplex.
Funcii speciale ale microcontrolerului:
o consum redus n caz de inactivitate precum i power-down de
economisire a energiei;
o surse de nrerupere extern i intern.
Specificatii:
o tehnologie CMOS - consum redus, vitez mare;
o mod de operare complet static.
Consum de energie la 4 MHz, 3V, 25C:
o activ: 2.8 mA;
o inactiv: 0.8 mA;
o power-down: <1 A.
Intrri/Ieiri i Capsula:
o 15 linii de intrare/iesire programabile;
o capsula PDIP si SOIC de 20 pini.
Tensiuni de operare:
o 2.7 - 6.0V (AT90S2313-4);
o 4.0 - 6.0V (AT90S2313-10).
Viteza de operare:
o 0 - 4 MHz (AT90S2313-4);
o 0 - 10 MHz (AT90S2313-10).
Configuraia pinilor:
< 59 >
Arhitectura sistemelor de calcul
serversc ca intrare pozitiv (AIN0) i intrare negativ (AIN1), pentru
comparatorul analogic in chip. Portul B furnizeaz la ieire un curent
de 20 mA asftel nct poate fi legat direct la un afior LED. Atunci
cnd pinii PB0 la PB7 sunt utilizai ca intrri i din exterior sunt
comandai cu semnal digital LOW, ei vor consuma energie daca
rezitenele interne de pull-up sunt activate. Dupa un Reset pinii
Portului B vor fi n starea de inalt impedan chiar dac semnalul de
ceas nu este activ.
Portul D (PD6..PD0). Portul D posed apte pini bidirecionali de I/O
(curent debitat de 20 mA) cu rezistene pull-up. Pinii portulul D intr
n starea de inalt impedan n cazul acionrii Resetului.
< 60 >
Arhitectura sistemelor de calcul
RESET. Pin de intrare. Un semnal LOW pe acest pin pe o durat de
50 ns va genera un Reset, chiar daca semnalul de clock nu este activ.
Un semnal mai scurt nu garanteaza conditia de Reset.
XTAL1. Intrare inversat pe un oscilator amplificat i intrare n
circuitul de semnal de ceas.
XTAL2. Ieire inversat de la un amplificator oscilator.
< 61 >
Arhitectura sistemelor de calcul
Power-on Reset (POR) reset la aplicarea tensiunii de alimentare;
Power-up Timer (PWRT) temporizare la aplicarea tensiunii de
alimentare, i Oscillator Start-up Timer (OST) stabilizarea
oscilatorului la pornire;
Wtchdog Timer (WDT) cu propriul oscilator RC on-chip pentru
funcionare sigur;
mecanism de protecie a codului programabil;
mod SLEEP pentru economisirea energiei;
opiuni selectabile pentru oscilator;
tehnologie CMOS FLASH/EEPROM de consum redus i de vitez
ridicat;
circuitul este n ntregime de tip static;
In-Circuit Serial Programming (ICSP) - programarea serial direct a
circuituui prin intermediul a doi pini;
posibilitate de programare serial cu o singur tensiune de 5V;
In-Circuit Debugging depanare direct la circuit prin intermediul
a doi pini;
acces scriere/citire a procesorului la memoria de program;
domeniul tensiunilor de alimentare: 2,0V la 5,5V;
curent maxim absorbit: 25mA;
Conexiunile externe
< 62 >
Arhitectura sistemelor de calcul
Microcontrolerele PIC16F876/873 au 28 de pini iar microcontrolerele
PIC16F877/874 au 40 de pini. Portul paralel slave nu este implementat la dispozitivele
cu 28 de pini.
< 63 >
Arhitectura sistemelor de calcul
RB5 38 42 I/O TTL Pin cu generarea unei ntreruperi
la schimbare sau pin In-Circuit
RB6/PGC 39 43 I/O TTL/ST(2) Debugger. Ceasul programrii
seriale.
Pin cu generarea unei ntreruperi
la schimbare sau pin In-Circuit
Debugger. Datele programrii
RB7/PGD 40 44 I/O TTL/ST(2) seriale.
< 64 >
Arhitectura sistemelor de calcul
RE1 sau comanda de scriere
RE1/WR/AN6 9 10 I/O ST/TTL(3) pentru portul paralel slave sau
intrarea analogic 6
RE2 sau comanda de selacie
pentru portul paralel slave sau
RE2/CS/AN7 10 11 I/O ST/TTL(3) intrarea analogic 7
VSS 12,31 13,34 P - Masa (referina de tensiune) pentru
pinii digitali I/O
VDD 11,32 12,35 P - Tensiunea de alimentare pozitiv
prntru pinii digitali I/O
NC - 1,17, - Aceti pini nu sunt conectai
28,40 intern. Aceti pini trebuie s
rmn neconectai
Not:
1: acest buffer este o intrare trigger Schmitt cnd este configurat ca ntrerupere
extern;
2: acest buffer este o intrare trigger Schmitt cnd este folosit n modul de
programare serial;
3: acest buffer este o intrare trigger Schmitt cnd este configurat I/O de uz general
i ca intrare TTL cnd este folosit n modul port paralel slave (pentru interfaarea
cu magistrala unui microprocesor);
4: aceast buffer este o intrare trigger Schmitt cnd este configurat n modul
oscilator RC i intrare CMOS n celelalte cazuri.
< 65 >
Arhitectura sistemelor de calcul
USART USART USART USART
Comunicaie paralel - PSP - PSP
Modul de conversie
5 canale 8 canale 5 canale 8 canale
analog-digital pe 10 bii
35 35 35 35
Set de instruciuni
instruciuni instruciuni instruciuni instruciuni
Organizarea memoriei
Microcontrolerul are 3 blocuri de memorie. Memoria de program i memoria de
date au magistrale separate i deci se pote realiza accesul simultan la date i la program.
Contorul de program are 13 bii ce poate adresa un spaiu de memorie program
de 8K x 14 bii. Accesarea locaiilor n afara spaiului fizic al memoriei implementate va
produce o adresare wraparound.
Vectorul RESET este 0000h iar vectorul de ntrerupere este 0004h.
Memoria este paginat iar paginile sunt:
RP1:RP0 Bank
00 0
01 1
10 2
11 3
Fiecare bank din memoria static are 128 de octei (7Fh). Locaiile la adresele
mici sunt rezervate regitrilor funciilor speciale (SFR) iar sub acestea se gsesc regitrii
de uy general (GPR). Fiecare bank are proprii regitrii SFR dar anumii regitrii SFR
dintr-un bank se pot gsi i ntr-un alt bank pentru reducerea dimensiunii codului i
pentru acces mai rapid la aceti regitrii.
Regitrii de uz general pot fi accesai att n mod direct ct i indirect prin
intermediul regitrilor de selecie: File Select Register (FSR).
< 66 >
Arhitectura sistemelor de calcul
Harta regitrilor microcontrolerelor PIC16F877/876
Bank 0 Bank 1 Bank 2 Bank 3
Adresa Registrul Adresa Registrul Adresa
Registrul din Adresa Registrul din
de din de din de
memorie de mem. memorie
mem. memorie mem. memorie mem.
adresare adresare adresare adresare
00h 80h 100h 180h
indirect(*) indirect(*) indirect(*) indirect(*)
01h TMR0 81h OPTION_REG 101h TMR0 181h OPTION_REG
02h PCL 82h PCL 102h PCL 182h PCL
03h STATUS 83h STATUS 103h STATUS 183h STATUS
04h FSR 84h FSR 104h FSR 184h FSR
05h PORTA 85h TRISA 105h 185h
06h PORTB 86h TRISB 106h PORTB 186h TRISB
07h PORTC 87h TRISC 107h 187h
08h PORTD(1) 88h TRISD(1) 108h 188h
09h PORTE(1) 89h TRISE(1) 109h 189h
0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah PCLATH
0Bh INTCON 8Bh INTCON 10Bh INTCON 18Bh INTCON
0Ch PIR1 8Ch PIE1 10Ch EEDATA 18Ch EECON1
0Dh PIR2 8Dh PIE2 10Dh EEADR 18Dh EECON2
0Eh TMR1L 8Eh PCON 10Eh EEDATH 18Eh rezervat(2)
0Fh TMR1H 8Fh 10Fh EEADRH 18Fh rezervat(2)
10h T1CON 90h 110h 190h
11h TMR2 91h SSPCON2 111h 191h
12h T2CON 92h PR2 112h 192h
13h SSPBUF 93h SSPADD 113h 193h
14h SSPCON 94h SSPSTAT 114h 194h
15h CCPR1L 95h 115h 195h
16h CCPR1H 96h 116h 196h
17h CCP1CON 97h 117h 197h
Regitrii de Regitrii de uz
18h RCSTA 98h TXSTA 118h 198h
uz general general 16
19h TXREG 99h SPBRG 119h 16 octei 199h octei
1Ah RCREG 9Ah 11Ah 19Ah
1Bh CCPR2L 9Bh 11Bh 19Bh
1Ch CCPR2H 9Ch 11Ch 19Ch
1Dh CCP2CON 9Dh 11Dh 19Dh
1Eh ADRESH 9Eh ADRESL 11Eh 19Eh
1Fh ADCON0 9Fh ADCON1 11Fh 19Fh
20h A0h 120h 1A0h
Regitrii de uz Regitrii de Regitrii de uz
Regitrii general 80 uz general general 80
EFh
de uz octei 80 octei octei
7Fh 16Fh 1EFh
general
F0h 170h 1F0h
96 octei acces acces acces
70h-7Fh 70h-7Fh 70h-7Fh
FFh 17Fh 1FFh
< 67 >
Arhitectura sistemelor de calcul
Biii de configurare (directiva __CONFIG)
;==============================================================
;
; Configuration Bits
;
;==============================================================
< 68 >
Arhitectura sistemelor de calcul
_WRT_256 EQU H'3DFF' ; First 256 prog memmory write
protected
_WRT_1FOURTH EQU H'3BFF' ; First quarter prog memmory write
protected
_WRT_HALF EQU H'39FF' ; First half memmory write
protected
_CPD_OFF EQU H'3FFF'
_CPD_ON EQU H'3EFF'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_RC_OSC EQU H'3FFF'
_HS_OSC EQU H'3FFE'
_XT_OSC EQU H'3FFD'
_LP_OSC EQU H'3FFC'
R/P-1 U-0 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-0 U-0 R/P-1 R/P-1 R/P-1
CP - DEBUG WRT1 WRT0 CPD LVP BORDEN - - PWRTEN WDTEN F0SC1 F0SC0
Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
< 69 >
Arhitectura sistemelor de calcul
bit 10-9 WRT1:WRT0 bii de validare a scrierii memoriei de program
FLASH
1 = PWRT dezactivat
0 = PWRT activat
1 = WDT activat
0 = WDT dezactivat
11 = oscilator RC
10 = oscilator HS
01 = oscilator XT
< 70 >
Arhitectura sistemelor de calcul
00 = oscilator LP
Valoarea
Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 n: POR,
BOR
Bank 0
(3) Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
0h INDF 0000 0000
adresa memoria de date (nu este un registru fizic)
01h TMR0 Registrul Timer0 xxxx xxxx
02h(3) PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
03h(3) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
04h(3) FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
05h PORTA - - Memorare date PORTA la scriere, pini PORTA la citire --0x 0000
06h PORTB Memorare date PORTB la scriere, pini PORTB la citire xxxx xxxx
07h PORTC Memorare date PORTC la scriere, pini PORTC la citire xxxx xxxx
08h(4) PORTD Memorare date PORTD la scriere, pini PORTD la citire xxxx xxxx
09h(4) PORTE - - - - - RE2 RE1 RE0 ---- -xxx
Buffer de scriere a celor mai semnificativi 5 bii
0Ah(1,3) PCLATH - - - ---0 0000
ai contorului de program (PC)
0Bh(3) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
0Ch PIR1 PSPIF(3) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000
0Dh PIR2 - CMIF - EEIF BCLIF - - CCP2IE -0-0 00
Registrul de stocare al celui mai puin semnificativ octet al registrului de 16
0Eh TMR1L xxxx xxxx
bii al TMR1
Registrul de stocare al celui mai semnificativ octet al registrului de 16 bii al
0Fh TMR1H xxxx xxxx
TMR1
T1OSC
10h T1CON - - T1CKPS1 T1CKPS0 EN
T1SYNC TMR1CS TMR1ON --00 0000
11h TMR2 Registrul Timer2 1111 1111
TOUTP
12h T2CON - TOUTPS3 TOUTPS2 TOUTPS1 S1
TMR2ON T2CKPS1 T2CKPS0 -000 0000
13h SSPBUF Registrul de transmisie/buffer de recepie a portului serial sincron xxxx xxxx
14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000
15h CCPR1L Registrul 1 (LSB) Captur/Comparare/PWM 0000 0000
16h CCPR1H Registrul 1 (MSB) Captur/Comparare/PWM -
CCP1
17h CCP1CON - - CCP1X CCP1Y CCP1M2 CCP1M2 CCP1M0 --00 0000
M3
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x
19h TXREG Registrul datelor de transmis al USART 0000 0000
1Ah RCREG Registrul datelor recepionate al USART 0000 0000
1Bh CCPR2L Registrul 2 (LSB) Captur/Comparare/PWM xxxx xxxx
1Ch CCPR2H Registrul 2 (MSB) Captur/Comparare/PWM xxxx xxxx
CCP2
1Dh CCP2CON - - CCP2X CCP2Y CCP2M2 CCP2M1 CCP2M0 --00 0000
M3
1Eh ADRESH Registrul rezultat al octetului cel mai semnificativ al conversiei A/D xxxx xxxx
GO/
1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 DONE - ADON 0000 00-0
< 71 >
Arhitectura sistemelor de calcul
Not: 1. Cel mai semnificativ octet al contorului de program nu este accesibil
direct. Registrul PCLATH conine biii PC<12:8> care vor fi transferai
n octetul cel mai semnificativ al contorului de program.
2. Biii PSPIE i PSPIF sunt rezervai la PIC16F873A/876A i trebuie
meninui teri.
3. Aceti regitrii pot fi adresai din orice bank.
4. PORTD, PORTE, TRISD i TRISE nu sunt implementai la
PIC16F873A/876A i la citire sunt zero.
5. Bitul 4 al EEADRH este implementet numai la PIC16F876A/877A.
Valoarea
Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 n: POR,
BOR
Bank 1
(3) Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
80h INDF 0000 0000
adresa memoria de date (nu este un registru fizic)
OPTION_
81h RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111
REG
(3)
82h PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
83h(3) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
84h(3) FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
85h TRISA - - Registru direcie PORTA --11 1111
86h TRISB Registru direcie PORTB 1111 1111
87h TRISC Registru direcie PORTC 1111 1111
88h(4) TRISD Registru direcie PORTD 1111 1111
89h(4) TRISE IBF OBF IBOV PSPMODE - Bii direcie PORTE 0000 -111
(1,3) Buffer de scriere a celor mai semnificativi 5 bii
8Ah PCLATH - - - ---0 0000
ai contorului de program (PC)
TMR0I
8Bh(3) INTCON GIE PEIE INTE RBIE TMR0IF INTF RBIF 0000 000x
E
(2)
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000
8Dh PIE2 - CMIE - EEIE BCLIE - - CCP2IE -0-0 00
8Eh PCON - - - - - - POR BOR ---- --qq
8Fh - Neimplementat -
90h - Neimplementat -
91h SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000
92h PR2 Registru de perioada al Timer2 1111 1111
93h SSPADD Registrul de adres al portului serial sincron (mod I2C) 0000 0000
94h SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000
95h - Neimplementat -
96h - Neimplementat -
97h - Neimplementat -
98h TXSTA CSRC TX9 TXEN SZNC - BRGH TRMT TX9D 0000 -010
99h SPBRG Registrul generator Baud Rate 0000 0000
9Ah - Neimplementat -
9Bh - Neimplementat -
9Ch CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0111
9Dh CVRCON CVREN CVROE CVRR - CVR3 CVR2 CVR1 CVR0 000- 0000
9Eh ADRESL Registrul octetului cel mai puin semnificativ al conversiei A/D xxxx xxxx
9Fh ADCON1 ADFM ADCS2 - - PCFG3 PCFG2 PCFG1 PCHG1 0--- 0000
< 72 >
Arhitectura sistemelor de calcul
neimplementat se citete zero, r = rezervat
Not: 1. Cel mai semnificativ octet al contorului de program nu este accesibil
direct. Registrul PCLATH conine biii PC<12:8> care vor fi transferai
n octetul cel mai semnificativ al contorului de program.
2. Biii PSPIE i PSPIF sunt rezervai la PIC16F873A/876A i trebuie
meninui teri.
3. Aceti regitrii pot fi adresai din orice bank.
4. PORTD, PORTE, TRISD i TRISE nu sunt implementai la
PIC16F873A/876A i la citire sunt zero.
5. Bitul 4 al EEADRH este implementet numai la PIC16F876A/877A.
Valoarea
Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 n: POR,
BOR
Bank 2
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
100h(3) INDF 0000 0000
adresa memoria de date (nu este un registru fizic)
101h TMR0 Registrul Timer0 xxxx xxxx
102h(3) PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
103h(3) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
104h(3) FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
105h - Neimplementat
106h PORTB Memorare date PORTB la scriere, pini PORTB la citire xxxx xxxx
107h - Neimplementat -
108h - Neimplementat -
109h - Neimplementat -
(1,3) Buffer de scriere a celor mai semnificativi 5 bii
10Ah PCLATH - - - ---0 0000
ai contorului de program (PC)
(3)
10Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
10Ch EEDATA Octetul cel mai puin semnificativ (L) al registrului de date al EEPROM xxxx xxxx
10Dh EEADR Octetul cel mai puin semnificativ (L) al registrului de adres al EEPROM xxxx xxxx
Octetul cel mai semnificativ (H) al registrului de date al
10Eh EEDATH - - --xx xxxx
EEPROM
(5) Octetul cel mai semnificativ (H) al
10Fh EEADRH - - - - ---- xxxx
registrului de adres al EEPROM
Bank 3
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
180h(3) INDF 0000 0000
adresa memoria de date (nu este un registru fizic)
OPTION
181h RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111
_REG
(3)
182h PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
183h(3) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
184h(3) FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
185h - Neimplementat
186h TRISB Registru de direcie a datelor PORTB xxxx xxxx
187h - Neimplementat -
188h - Neimplementat -
189h - Neimplementat -
(1,3) Buffer de scriere a celor mai semnificativi 5 bii
18Ah PCLATH - - - ---0 0000
ai contorului de program (PC)
18Bh(3) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
18Ch EECON1 EEPGD - - - WRERR WREN WR RD x--- x000
< 73 >
Arhitectura sistemelor de calcul
18Dh EECON2 Registrul de control 2 (nu este un registru fizic) EEPROM ---- ----
18Eh - Rezervat, trebuie meninut ters 0000 0000
18Fh - Rezervat, trebuie meninut ters 0000 0000
< 74 >
Arhitectura sistemelor de calcul
CAPITOLUL 5
MEMORIA
5.1. Prezentare general
Memoria unui calculator are rolul de a stoca temporar sau permanent date sau
programe. Durata de stocare a datelor se refer la timpul ct memoria este alimentat la
tensiunea electric. O memorie poate stoca permanent date dac informaia memorat
nu se pierde la ntreruperea tensiunii de alimentare a memoriei. n caz contrar, atunci
cnd memoria stocheaz informaia numai pe durata de timp ct este alimentat cu
energie electric, se spune c informaia este memorat temporar. Este momentul sa
precizm faptul c un calculator numeric nu prelucreaz dect numere. Din acest motiv
mprirea informaiei n date i instruciuni are caracter pur convenional. Astfel, ntr-o
locaie de memorie se poate afla numrul (10110110B = 182Z) care pentru unitatea
central poate nsemna fie o valoare numeric egal cu 128 fie codul unei instruciuni de
tipul: aduna numarul a cu numarul b. Unitatea central decide dac numrul citit din
memorie reprezint o valoare numeric (dat) sau o comand (instruciune program).
Prin convenie, la pornire sau dup iniializare (RESET) unitatea central consider c
valoarea citit din memorie reprezint o comand. S presupunem ca acesta comanda
este: aduna numarul a cu numarul b. Asta nseamna ca urmatoarele dou valoari citite
din memorie se vor considera ca reprezentnd valoarile numerelor a i b. Dup
executarea adunrii unitatea central va citi o nou valoare din memorie pe care o va
considera n mod automat ca reprezentnd codul numeric al unei instruciuni de
program. Rmne deci responsabilitatea programatorului ca n memorie s fie nscris o
succesiune corect de date care reprezint numere sau coduri de instruciuni.
Dup modul n care sunt stocate datele n memorie se poate face o prim
clasificare a acestora:
< 75 >
Arhitectura sistemelor de calcul
central imediat dup pornire sau la iniializare. Acest program se mumete program
monitor sau program de boot. Dac n calculator s-ar folosi numai memorie de tip RAM
problema pornirii calculatorului nu ar putea fi rezolvat. La punerea sub tensiune o
memorie RAM are un coninut aleator care nu poate ajuta la pornirea calculatorului;
cum unitatea central, dup iniializare ateapt o comand valid, rezult c trebuie
folosit o memorie care s nu-i piard coninutul atunci cnd tensiunea de alimentare
este mtrerupt.
Structura unei memorii este similar cu cea a unei matrici. Vom considera un
exemplu n care n fiecare element al matricii se afl
Memorie
A0 un modul elementar de memorie care nu poate
C0 C1 memora dect un bit adic o valoare numeric egal
D cu zero sau cu unu. Cea mai simpl structur de
A1 memorie este prezentat n figura 5.1. Localizarea
C2 C3
celulei elementare de memorie care va fi citit sau
scris la un moment dat se face cu ajutorul
A2 A3 semnalelor de adres iar valoarea citit sau valoarea
Fig. 5.1. Structura unei memorii de nscris n memorie este disponibil pe respectiv
este depus pe magistrala de date. n acest fel se
spune c selecia unei celule de memorie se face cu ajutorul semnalelor de pe magistrala
de adrese iar valoarea citit din memorie sau nscris n memorie se face cu ajutorul
semnalelor de pe magistrala de date.
n figura 5.1, C0, C1, C2 i C3 reprezint celulele elementare de memorie, D
magistrala de date (o singur linie) iar A0, A1, A2 i A3 magistrala de adrese (patru
linii). Traseul datelor a fost
TABELUL 5.1.
reprezentat cu linie punctat iar
A3 A2 A1 A0 D
cel al adreselor cu linie continu.
0 1 0 1 Coninutul celulei C0
Din cauz c la un moment dat
1 0 0 1 Coninutul celulei C1
numai una din celulele elementare
0 1 1 0 Coninutul celulei C2 de memorie este activat, pentru
1 0 1 0 Coninutul celulei C3 date este suficient o singur
linie. Considerm c o celul
elementar de memorie este activat pentru citire sau scriere dac ea se afl la
intersecia liniilor de adres pe care se afl simultan cifra unu. Funcionarea memoriei,
n acest caz este dat n tabelul 5.1. Dac pe magistrala de adrese se aplic, de exemplu,
numrul 0101 (n succesiunea A3,A2,A1,A0) atunci pe magistrala de date se gsete
coninutul celulei C0 la citire sau poate fi nscris celula C0 cu valoarea plasat pe
magistrala de date, la scriere.
Din cauz c folosirea a patru linii de adres este neeconomic n acest caz, n
realitate la o astfel de memorie nu se afl dect dou linii de adres din cauz c se pot
obine patru combinaii distincte numai cu dou numere binare (00, 01, 10, 11).
Translatarea de la cele patru combinaii binare la cele patru adrese de selacie a celulelor
de memorie se face n interiorul memoriei cu ajutorul unui circuit de decodificare.
Pentru a obine mai multe date simultan la ieire memoriile se conecteaz n
paralel aa cum este reprezentat schematic n figura 5.2.
n structura din figura 5.2 dac se aplic la intrare (pe liniile de adres)
combinaia 0101 (n succesiunea A3,A2,A1,A0), atunci vor fi selectate simultan celulele
< 76 >
Arhitectura sistemelor de calcul
de memorie C00 i C01, C00 fiind conectat la linia de date D0 iar C01 la D1. Toate
celulele elementare de memorie selectate simultan, formeaz o celul de memorie care
permite manipularea simultana a mai multor bii.
Din cele prezentate pn acum rezult c att magistrala de adrese ct i cea de
date furnizeaz informaii legate de dimensiunea (capacitatea memoriei).
Pentru a
msura capacitatea
A0
C01 C11 D1 (dimensiunea)
memoriei se folosete
A1 ca unitate de baz bitul
C21 C31
(b) care reprezint
cantitatea elementar
de informaie. Spre
C00 C10 D0 exemplu, vom
considera
experimentul aruncrii
C20 C30 unei monezi. n urma
acestui experiment
A2 A3 nlturm o
incertitudine de 50%
Fig.5.2. Structura unei memorii cu dou planuri pentru c nainte de
aruncarea monezii
existau numai dou posibiliti ale rezultatului (una din feele monezii). Astfel,
probabilitatea de obinere a unui rezultat este de 1/2 din cauz c din cele dou rezultate
posibile s-a obinut unul. Cantitatea de informaie pe care o primim dup efectuarea
acestui experiment se exprim cu relaia:
Dac asociem celor dou fee ale monedei valorile binare 0 i 1, cantitatea de
informaie stocat ntr-o celul elementar de memorie (care poate memora una din
valorile 1 sau 0) este de un bit. Bitul are ca multiplii kilobitul (kb), megabitul (Mb),
gigabitul (Gb) i terabitul (Tb) cu urmtoarele relaii ntre ele:
< 77 >
Arhitectura sistemelor de calcul
la un moment dat avnd acces la o singur celul. Similar, memoria din figura 5.2 are o
capacitate de 4x2 bii din cauz c, la un moment dat, avem acces la dou celule
elementare de memorie simultan.
Aa cum s-a artat n capitolul 4, unitile centrale pot lucra cu 8, 16, 32, 64, ...
bii de date simultan. Din acest motiv un grup de opt bii se numete octet (byte, 1
byte=8 bits). Daca se utilizeaz 16 bii simultan adic doi octei, acetia formeaz un
cuvnt (word) iar dou cuvinte formeaz un pointer. n tabelul 5.2 sunt sintetizate
modurile de notare a grupurilor de bii.
TABELUL 5.2.
1 octet (byte) = 8 bii (bites)
1 cuvnt (word) = 2 octei (bytes) = 16 bii (bites)
1 pointer (poiner) = 2 cuvinte (words) = 4 octei (bytes) = 32 bii (bits)
< 78 >
Arhitectura sistemelor de calcul
un anumit timp pe magistrala de date, pentru ca memoria s fie capabil s le transfere
n celula de memorare corespunztoare. Este evident faptul c este de dorit ca timpul de
acces al unei memorii s fie ct mai mic n aa fel nct ea s poat rspunde suficient
de repede solicitrilor unitii centrale. n prezent memoriile utilizate n calculatoare au
timpi de acces ntre 70ns i 10ns. Din pcate cu ct timpul de acces al unei memorii este
mai mic preul acesteia este mai mare i din acest motiv, n cele mai multe cazuri,
memoria unui sistem este realizat dintr-o combinaie de memorii rapide i memorii
lente. Astfel, memoria RAM ntr-un calculator este realizat pe cel puin trei nivele. Pe
primul nivel este memoria cea mai rapid, care se afl chiar n interiorul unitii
ceantrale. Aceast memorie se numeste memorie cache pe nivelul 1 (cache level 1). n
aceast memorie se aduc poriunile de program care sunt rulate la un moment dat,
unitatea central lucrnd practic numai cu memoria cache de pe nivelul 1. Atunci cnd
este necesar execuia unei instruciuni care nu este n memoria cache de pe nivelul 1,
un circuit de control al memoriei aduce poriunea respectiv de program, din memoria
extern mai lent, n memoria cache de pe nivelul 1. Microprocesoarele actuale au o
memorie cache intern ntre 128ko i 512ko, iar la microprocesoarele foarte puternice
destinate staiilor de lucru, memoria cache poate ajunge pn la 2Mo. n exteriorul
unitii centrale exist un al doilea nivel al memoriei cache (cache level 2) cu acelai rol
ca i memoria cache level 1. Mecanismul memoriei cache este prezentat 1n figura 5.4.
Controlerul de memorie are sarcina de a transfera datele de pe un nivel pe altul n aa fel
nct n memoria cache de pe nivelul 1 s se afle ntotdeauna poriunea de program
necesar unitii centrale.
Performanele unui calculator vor fi cu att mai bune cu ct dimensiunea
memoriei cache este mai mare.
< 79 >
Arhitectura sistemelor de calcul
memorii EPROM (Erasable Programmable Read-Only
Memory) care sunt memorii de tip ROM programabile. Ele
pot fi sterse si nscrise (programate) de mai multe ori.
Stergerea memoriei se face cu ajutorul unui flux de lumin
ultraviolet, n acest scop capsula circuitului integrat fiind
prevzut cu un geam din sticl de cuar (vezi figura 4.1), iar
nscrierea se face cu ajutorul unor dispozitive speciale prin
metode electrice la tensiuni mai mari dect cele de funcionare
normal;
memorii de tip EEPROM (Electrically Erasable
Programmable Read-Only Memory) care sunt memorii ROM
programabile ce pot fi terse i renscrise exclusiv prin
mijloace electrice. Avantajul acestui tip de memorii este
reprezentat de faptul c ele nu trebuie scoase din circuitul n
care au fost montate pentru a fi terse i renscrise. Acest tip
de memorie necesit tensiuni mai mari dect cele de
funcionare obinuit, pentru tergere i programare;
memorii de tip flash (flash memory), ultima generaie de
memorii de tip ROM care dei pstreaz informaia i dup
ntreruperea tensiunii de alimentare, pot fi sterse si programate
similar cu memoriile RAM. Singura particularitate este
reprezentat de faptul c memoriile flash necesit algoritmi
speciali de tergere i programare, aceast operaiune fiind
fcut pe blocuri, n trei faze.
< 80 >
Arhitectura sistemelor de calcul
Pentru cresterea performanelor de vitez ale memoriilor RAM, n prezent sunt
utilizate o serie de tehnici care au dus la apariia mai multor tipuri de memorii RAM
dinamice:
< 81 >
Arhitectura sistemelor de calcul
n limba englez deoarece majoritatea termenilor din domeniul arhitecturii
calculatoarelor provin din aceast limb.
Memoria cache reprezint mai degrab un principiu: n sistemul de calcul se vor
folosi dou tipuri de memorie principal o memorie lent de dimensiuni mari i o
memorie rapid de dimensiuni mai mici. Acest lucru se ntmpl din cauz c memoria
rapid este mult mai scump dect cea lent i atunci mecanismul memoriei cache se
folosete n scopul cresterii performantelor sistemului n condiii de pre acceptabile.
Functionarea memoriei cache se bazeaz pe aducerea anumitor secvene de
program, secvene ce sunt necesare la un moment dat, din memoria lent n memoria
rapid (memoria cache) figura 5.6.
< 82 >
Arhitectura sistemelor de calcul
Datorit faptului c eficiena memoriei cache depinde n bun msur de
programul executat, pentru determinarea performanelor memoriei cache se fac mai
multe determinri cu ajutorul diferitelor tipuri de programe i apoi se realizeaz o
medie.
Eficiena unui cache se msoar n procentajul de situaii cnd datele cutate se
gsesc n cache H (hit ratio): din 100 de accese, cte gsesc datele n cache? Opusul
acestei valori este miss ratio M (rateuri). Procentajele astea se msoar rulnd o mulime
de programe i fcnd media. Avem desigur, dac socotim 33% ca 1/3:
H=1-M
Dac timpul de citire din cache este Tc (``hit time''), iar timpul pe care l
pierdem cnd ratm este Tm (``miss time'') atunci putem msura timpul mediu de acces
la memoria cu cache cu urmtoarea formul:
T = Tc x H + Tm x M
Trebuie observat faptul c timpul unei ratri (Tm) nu este neaprat egal cu timpul de
citire din memoria lent (Tl), pentru c n cazul unei ratri, nti trebuie s ne dm seama
dac datele sunt n cache, iar dac nu sunt s accesm memoria lent. Cache-ul va fi
eficient dac T < Tl.
Valoarea mrimii H depinde de mrimea cache-ului: pentru un cache de
mrimea memoriei lente (caz limit), toate datele pot fi inute n memoria rapid, i vom
avea H=1. Pentru un cache de mrime 0, H=0, pentru c niciodat datele nu se gsesc n
el. Relaia ntre mrimea cache-ului, a memoriei lente i H nu este o linie dreapt, ci
crete repede la nceput (figura 5.7). Din cauza asta un cache relativ mic ca mrime are
o importan mare ca eficien.
< 83 >
Arhitectura sistemelor de calcul
Eficiena depinde i de raportul dintre Tc i Tm; n anumite cazuri Tm este de ordinul a
10000 x Tc, deci chiar un H mic poate s nsemne mult.
Pe lng dimensiuni i timpi de acces, exist o mulime de detalii prin care
cache-urile difer ntre ele, datorate faptului c mediile de stocare a informaiei nu se
comport chiar la fel. Iat unele dintre posibilele diferene:
Orice sistem de operare modern (mai puin MS-DOS) are un cache de disc.
(Chiar i pentru MS-DOS exist smartdrive sau ncache de la Norton). Cache-ul de
disc este probabil una din cele mai mari surse de eficien ntr-un sistem de operare.
Acesta se datorete faptului c diferena ntre timpul de acces la disc i cel la memorie
este uria (timpul de acces al unei memorii este de circa 60-70 de nanosecunde, adic
60x10-9 s, iar timpul de acces al unui disc este de ordinul a 10 milisecunde, adic 10x10-
3 s. Cache-ul de disc este o structur de date care conine un vector de blocuri de
< 84 >
Arhitectura sistemelor de calcul
mrime egal. Discul este la rndul lui mprit n blocuri de aceeai dimensiune. Cnd
utilizatorul cere un octet de pe disc, blocul care conine acel octet este ncrcat n cache,
eventual scond un alt bloc afar.
Din cele 5 puncte de vedere indicate anterior, un cache de disc are urmtoarele
caracteristici:
< 85 >
Arhitectura sistemelor de calcul
5.2.4. Cache-ul cu adresare direct (direct mapped)
De obicei chiar structura adresei este folosit la cutare. Figura 5.8 arat cum
este plasat un anume bloc n cache: biii de la sfritul adresei blocului dau i posibila
poziie a blocului n cache. Biii din nceputul adresei blocului constituie verificarea
< 86 >
Arhitectura sistemelor de calcul
Un cache asociativ folosete o memorie asociativ pentru a memora adresele
externe ale blocurilor care corespund fiecrui bloc din cache.
Un bloc poate acum ocupa orice poziie n cache; cnd este cutat memoria
asociativ spune unde se afl.
Politica de nlocuire va fi ns ceva mai complicat, oricare din schemele nirate
fiind un candidat.
< 87 >
Arhitectura sistemelor de calcul
5.3. Gruparea memoriilor
Aa cum s-a artat, una din caracteristicile importante ale memoriei este
reprezentat de capacitatea acesteia. Capacitatea reflect cantitatea de informaie ce se
poate stoca ntr-o memorie i este strns legat de structura acesteia. Gruparea
memoriilor reprezint metoda de cretere a capacitii de stocare prin conectarea
mpreun a mai multor memorii de capacitate mai mic. Pentru a vedea care sunt
metodele de grupare a memoriilor vom studia mai nti semnalele unei memorii.
O memorie are nevoie de mai multe semnale de intrare i poate furniza mai
multe semnale de ieire. Aa cum s-a artat n paragraful 5.1, o memorie este alctuit
din mai multe celule de o anumit dimensiune (un anumit numr de bii) care sunt
identificate prin adres. Din acest punct de vedere, o memorie necesit un anumit numr
de adrese cu ajutorul crora se identific fiecare celul de memorie n parte. Semnalele
de adres sunt semnale binare (pot avea valoarea zero sau unu), fiecare celul de
memorie fiind identificat de o combinaie unic de pe magistrala de adrese. Astfel,
dac o memorie are, spre exemplu, opt celule de memorie, atunci sunt necesare opt
combinaii distincte de cifre zero sau unu. Cele opt combinaii distincte pot fi obinute
cu ajutorul a log2 8 = 3 cifre binare. Altfel spus, cu ajutorul a trei cifre binare se pot
obine 23 = 8 combinaii distincte: 000, 001, 010, 011, 100, 101, 110 i 111.
Celula de memorie selectat permite citirea sau scrierea simultan a tuturor
biilor pe care aceasta i conine. Din acest motiv, o memorie necesit pe lng liniile de
adres i un anumit numr de linii de date, numrul liniilor de date fiind egal cu
numrul de bii ai celulei de memorie. Liniile de date trebuie s fie bidirecionale (ca sa
permit citirea sau scrierea biilor celulei de memorie) cu trei stri (s poat trece n
starea de nalt impedan) pentru a permite conectarea n paralel a mai multor memorii.
Este evident c n cazul memoriilor ROM liniile de date nu sunt bidirecionale din cauz
c aceste memorii nu pot fi dect citite dar trebuie, de asemenea s aib starea de nalt
impedan pentru a putea fi conectate la magistrala de date a sistemului.
Cea de a treia categorie de semnale necesare unei memorii sunt semnalele de
comand. Semnalele de comand principale ale unei memoriei sunt:
< 88 >
Arhitectura sistemelor de calcul
de memorie, selectate de combinaia aflat pe magistrala de
adrese;
o R / W = 0 , n memorie se scrie, sensul magistralei de date fiind
din exterior spre memorie; la un moment dat se scriu biii celulei
de memorie, selectate de combinaia aflat pe magistrala de
adrese;
Pe lng aceste semnale, mai exist o serie de semnale de comand diverse, cum
ar fi semnalele de remprosptare, care nu sunt implicate n funcionarea de baz a
memoriei.
Memoria, ca matrice, este definit de declaraia:
capacitatea = 2numrul de linii de adres (n+1) x numrul de linii de date (m+1) (5.1)
De exemplu, capacitatea unei memorii cu zece linii de adres i opt linii de date va fi:
< 89 >
Arhitectura sistemelor de calcul
celule elementare de memorie cu dimensiunea de un bit (de exemplu 1ko), valoare care
ins nu ne mai d informaii asupra structurii. O memorie de 1ko poate fi: o memorie de
1024 x 1 octet sau o memorie de 2048 x 4 bii.
Gruparea memoriilor poate face n trei moduri:
Creterea numrului de linii de date este necesar, spre exemplu, atunci cnd
dispunem de memorii cu opt linii de date (un octet) i dorim s le conectm la un sistem
care are o magistral de date cu 16 linii (un cuvnt word).
Vom exemplifica modul de grupare pe acest exemplu. Presupunem c avem
nevoie de o memorie de 8kw (8 kilo word 8 kilo cuvinte) i nu dispunem dect de
memorii de 8kb (8 kilo byte 8 kilo octei). Se observ faptul c ntre memoriile
disponibile i cele necesare nu difer dect numrul de linii de date (necesar 16, existent
8), numrul de linii de adres fiind acelai (8192 de celule nseamn log 2 8192 = 13 linii
de adres: A0 la A12). Vom determina mai nti cte memorii sunt necesare. Capacitatea
absolut a memoriei ce trebuie obinut este:
< 90 >
Arhitectura sistemelor de calcul
Se observ c pentru gruparea memoriilor n vederea extinderii numrului de
linii de date, liniile de adres i liniile de comand se leag n paralel iar liniile de date
se pun mpreun formnd magistrala de date a memoriei rezultate.
U1
A0 10 11 A0
A1 9 A0 D0 12 A0
A2 8 A1 D1 13 A0
A3 7 A2 D2 15 A0
A4 6 A3 D3 16 A0
A5 5 A4 D4 17 A0
A6 4 A5 D5 18 A0
A7 3 A6 D6 19 A0
A8 25 A7 D7 A0
A9 24 A8 A0
A10 21 A9 A0
A11 23 A10 A0
A12 2 A11 A0
A12 A0
CS1 20 A0
CS2 26 CS1 A0
OE 22 CS2
WE 27 OE
WE
5962-38294
U2
10 11
9 A0 D0 12
8 A1 D1 13
7 A2 D2 15
6 A3 D3 16
5 A4 D4 17
4 A5 D5 18
3 A6 D6 19
25 A7 D7
24 A8
21 A9
23 A10
2 A11
A12
20
26 CS1
22 CS2
27 OE
WE
5962-38294
MEMORIE DE 8K X 16 BITI
< 91 >
Arhitectura sistemelor de calcul
Vom analiza acum modul de adresare al celulelor de memorie. Fiecare celul a
memoriei este adresat n mod univoc de ctre o combinaie binar de pe magistrala de
adrese aa cum se arat n tabelul 5.3. Din acest tabel se observ faptul c cele patru
combinaii ale liniilor de adres A1A0 se
TABELUL 5.3.
repet de dou ori la memoria de 8 x 1 bit, o
memorie 4x1bit memorie 8 x 1bit
dat pentru A2 = 0 i o dat pentru A2 = 1.
A1 A0 A2 A1 A0
Rezult c este posibil s realizm memoria
0 0 0 0 0 de 8 x 1 bit cu ajutorul a dou memorii de 4 x
0 1 0 0 1 1 bit este necesar sa selectam una din
1 0 0 1 0 memoriile de 4 x 1 bit cnd A2 = 0 i s
1 1 0 1 1 selectm cealalta memorie de 4 x 1 bit cnd
1 0 0 A2 = 1. Rezult c semnalele de selacie a
1 0 1 memoriilor de 4 x 1 bit vor fi folosite pentru
1 1 0 crearea liniei de adres A2 i va trebui sa
1 1 1 creem un nou semnal de selecie pentru
memoria rezultata. Vom exemplifica pe
acelai tip de memorie de 8k x 1 octet. Prin gruparea acestora n scopul creterii
numrului de linii de adres (creterea numrului de celule de opt bii) se va crea o noua
linie de adres (A13) memoria obinut avnd 16k x 1 octet.
n acest caz, liniile de date se cupleaz n paralel deoarece dimensiunea celulei
de memorie rmne nemodificat (figura 5.12). Memoria inactiv la un moment dat are
D0
U1 D1
A0 10
A0 D0
11 D2
A1 9
A1 D1
12 D3
A2 8
A2 D2
13 D4
A3 7
A3 D3
15 D5
A4 6
A4 D4
16 D6
A5 5
A5 D5
17 D7
A6 4
A6 D6
18
A7 3
A7 D7
19
A8 25
A8
A9 24
A9
A10 21
A10
A11 23
A11
A12 2
A12
A13
20
CS1
CS1 26
CS2
OE 22
OE
WE 27
WE
CS2
5962-38294
U2
U5A U3A 10 11
1 21 9 A0 D0 12
3 8 A1 D1 13
2
74LS04 7 A2 D2 15
6 A3 D3 16
74LS08 5 A4 D4 17
4 A5 D5 18
U4A 3 A6 D6 19
1 25 A7 D7
3 24 A8
2 21 A9
23 A10
74LS08 2 A11
A12
20
26 CS1
22 CS2
27 OE
WE
5962-38294
MEMORIE DE 8K X 1 OCTET
< 92 >
Arhitectura sistemelor de calcul
liniile de date n starea de nalt impedan (prin comanda seleciei ciruitului respectiv)
i n acest fel liniile de date ale celor dou memorii pot fi cuplate mpreun.
OBSERVAIE: din cele dou exemple prezentate anterior rezult valoarea capacitii
memoriei finale este multiplu ntreg de valoarea capacitii memoriei finale.
< 93 >
Arhitectura sistemelor de calcul
Vom explica adresarea
adrese pentru
adrese pentru selecia unei absolut printr-un exemplu.
selecia celule din Considerm c ntr-un sistem
memoriei de 1k memoria de 1k magistrala de adrese are 16 linii (A0,
valoare n A1, , A15) deci spaiul maxim de
zecimal A15A14A13A12A11A10A9A8 A1A0
adresare este de 64 k (216 = 65536).
0 0 0 0 0 0 0 x x x x
Pe acest magistral dorim s
1 0 0 0 0 0 1 x x x x
conectm o memorie de 1k
2 0 0 0 0 1 0 x x x x
(dimensiunea datelor nu are
. .
importan aici). Pentru adresarea
. .
celor 1024 de celule de memorie din
. .
memoria de 1k avem nevoie de 10
63 1 1 1 1 1 1 x x x x
linii de adres (A0, A1, , A9) restul
x x x x -> orice combinaie ntre de 6 linii de adres (A15, A14, ,
0000 i 11 11 A10) fiind folosii la selecia
circuitului. Astfel adresele A0, A1,
Figura 5.13. Posibilitile de adresare absolut a
unei memorii de 1k.
, A9 se leag la liniile de adres ale
memoriei iar adresele A10, A11, ,
A15 se leag printr-un circuit de selecie la intrarea CS a memoriei. n acest fel memoria
poate fi aezat la una din cele 64 de adrese posibile din memorie (figura 5.13).
Prin adresarea absolut, o locaie de memorie se gsete la o singur adres de
memorie.
< 94 >
Arhitectura sistemelor de calcul
CAPITOLUL 6
PORTURI (INTERFEE)
6.1. Prezentare general
Porturile sunt module destinate conectrii sistemului de calcul cu dispozitivele
externe care sunt numite generic
dispozitive periferice. La porturi se
conecteaz att dispozitivele generale de
intrare/ieire (tastatur, monitor) ale
calculatorului ct i cele specifice. De
asemenea dou porturi de aceeai natur se
pot conecta ntre ele n scopul transmiterii
informaiei de la un sistem de calcul la
altul. Porturile sunt n general circuite de
viteze mic, ele fiind conectate la
magistralele de vitez mai redus ale
calculatorului. O parte din porturile
sistemului de calcul au destinaii specifice
i poart denumirea de controlere. Dintre
Fig. 6.1. Conectorii pentru porturi n cazul acestea mai importante sunt: controlerul de
unui calculator personal tastatur, controlerul video, controlerul
discului dur (hard disc), controlerul
discului flexibil (floppy disc) i controlerul de reea. Alte porturi au destinaii generale,
la aceste porturi putnd fi conectate diferite dispozitive periferice; dintre porturile de uz
general mai importante fiind portul serial, portul paralel, portul SCSI (Small Computer
System Interface) i portul USB (Universal Serial Bus). Datorit faptului c, n general,
un port trebuie s realizeze att conversia semnalelor dispozitivelor periferice la
semnale compatibile cu semnalele sistemului de calcul, ct i invers, asigurnd
circulaia informaiei n ambele sensuri, acestea se mai numesc i interfee. Prin
interfa se nelege un ansamblu format din echipamente i programe destinat cuplrii
ntre dou sisteme cu caracteristici diferite. Dispozitivele periferice se conecteaz la
porturi prin intermediul unor conectori, un exemplu fiind prezentat n figura 6.1.
Fiecare port are alocat o adres (un numr) pe care unitatea central o folosete
pentru identificarea portului respectiv n schimbul de date cu acesta. Este foarte
important ca toate porturile dintr-un calculator s aib adrese diferite. Dac dou porturi
au aceeai adres, atunci apare un conflict din cauz c unitatea central nu va fi
capabil s disting de la care port sosesc informaiile.
n general activitatea de atribuire a adreselor tuturor porturilor dintr-un sistem de
calcul se face n mod automat de ctre sistemul de operare. Uneori, dac numrul
< 95 >
Arhitectura sistemelor de calcul
perifericelor este mare sau din generaii diferite, se poate ntmpla ca sistemul de
operare s nu poat realiza alocarea corect a adreselor perifericelor. n acest caz
alocarea adreselor se poate face manual de ctre operator.
Porturile fiind n general
componente lente ale sistemului de calcul,
este neeconomic ca unitatea central s
lucreze la un moment dat numai cu un
port. Modul de lucru cu un port se
desfoar simplificat n felul urmtor:
unitatea central trimite o comand la un
port dup care continu rezolvarea altor
sarcini. n momentul n care portul este
capabil s rspund solicitrii, ntrerupe
activitatea curent a unitii centrale,
primete o nou comand, dup care
unitatea central nu se mai ocup de port
pn la o nou ntrerupere. n felul acesta
orict de lent este un port el nu scade
viteza de lucru a unitii centrale. Acest
mecanism necesit, pe lng alocarea unei
adrese i alocarea unei ntreruperi (un
Fig. 6.2. Alocarea adresei i ntreruperii la numr) fiecrui port n aa fel nct n
portul serial COM1 momentul lansrii unei cereri de
ntrerupere, unitatea central a
calculatorului s poat determina care este
portul care a cerut ntreruperea. Evident
c i n cazul ntreruperii este bine ca
fiecare port s dispun de o ntrerupere
separat. Dei aceast condiie nu este la
fel de restrictiv ca cea n cazul adresei, n
unele cazuri mai multe porturi putnd
avea alocat aceeai ntrerupere, n marea
majoritate a cazurilor numrul ntreruperii
trebuie s fie diferit de la un port la altul.
Din cele artate rezult c un port
necesit alocarea din partea sistemului de
operare sau a programatorului a dou
numere: adresa i numrul ntreruperii,
fapt ce-l individualizeaz fa de celelalte
porturi din sistem. n figura 6.2 este
prezentat modul n care sistemul de
operare Windows95 ofer informaii
Fig. 6.3. Parametrii portului serial despre setrile unui port. Din aceast
figur se vede c portul de comunicaii
COM1 are alocate adresele de la 03F8h la 03FFh i ntreruperea 04.
< 96 >
Arhitectura sistemelor de calcul
Portul serial al calculatorului necesit o atenie special din cauz c el este n
general portul de comunicaii. Prin intermediul acestui port se pot transmite date la
distan n mod serial asincron. Transmisia serial este metoda cea mai ieftin de a
schimba date ntre dou echipamente numerice aflate la distan. Dei transmisiile
seriale nu sunt transmisii de date de vitez mare ele prezint avantajul c datele sunt
transmise pe un singur canal de comunicaie i deci nu sunt necesare cheltuieli mari.
Modul serial de transmisie presupune ca la un moment dat s se transmit un singur bit.
Asta nseamn c biii unui octet vor fi transmii la opt intervale de timp distincte. n
cazul transmisiei seriale este necesar ca att echipamentul care transmite datele
(emitorul) ct i echipamentul care primete datele (receptorul) s aib aceeai
parametrii ai transmisiei. Pentru transmisia serial asincron parametrii transmisiei
sunt: viteza de transmisie care se msoar n bii pe secund (bps), numrul de bii
transmii ntr-un cadru, paritatea, numrul de bii de stop i protocolul de control al
fluxului de date. n figura 6.3 este prezentat un exemplu de stabilire ai parametrilor
transmisiei. Standardul adoptat pentru interfaa seriala este standardul RS 232.
Porturile sunt n general dispozitive programabile. Asta nseamn c ele accept
prin nscrierea unor cuvinte de comand n port. Din acest motiv, pentru funcionarea
corect a unui port nu sunt suficiente numai alocarea adresei i a ntreruperii ci este
necesar i programarea portului. Pentru simplificarea programrii i utilizrii portului
se folosesc nite programe specifice numite drivere. Aceste programe sunt ncrcate n
memorie de ctre sistemul de operare i
ele constituie o interfa ntre
programele utilizatorului i port. n
figura 6.4 este reprezentat schematic
modul de funcionare a unui driver.
Programele driver sunt furnizate de
ctre productorii de echipamente
periferice i asigur funcionarea
optim a acestora. Din acest motiv
utilizatorul unui sistem de calcul nu are
dect sarcina de a obine de la
productorii de echipamente periferice
Fig. 6.4. Funcionarea unui program driver
pentru un port
a versiunilor noi ale driverelor i s le
instaleze pe calculator.
Noua tehnologie de realizare a porturilor inteligente s-a extins tot mai mult. Cu
ajutorul acestei tehnologii, utilizatorul este degrevat de sarcina de a mai configura
porturile sistemului, acestea fiind recunoscute automat i programate corespunztor de
ctre programele cu care este nzestrat sistemul de calcul. Aceast tehnologie numit
PnP (Plug and Play) permite utilizatorului s realizeze extinderi ale sistemului de calcul
simplu i comod, aa cum arat i numele tehnologiei, prin simpla montare a
componentei noi n sistemul de calcul, fr a mai fi necesare alte operaii suplimentare.
n continuare vor fi prezentate porturile dezvoltate de firma Intel pentru sistemul
de calcul prevzut cu unitatea central I8086. Datorit faptului c aceste dispozitive au
fost larg rspndite ele au devenit un standard "de facto" pentru circuitele dezvoltate
ulterior.
< 97 >