Documente Academic
Documente Profesional
Documente Cultură
Capitolul 3
ARHITECTURA UNUI SISTEM DE
CALCUL SECVENIAL
3.1. Schema bloc a unui calculator (modelul von Neumann)
Prin arhitectura unui sistem de calcul se nelege totalitatea dispozitivelor
componente precum i a conexiunilor existente ntre aceste dispozitive.
Arhitectura sistemelor de calcul actuale provine din dezvoltarea unui model
introdus de matematicianul John von Neumann n 1945, numit i model sau
arhitectur von Neumann. Majoritatea calculatoarelor moderne respect acest
model, ceea ce difer fiind doar tehnologia utilizat n realizarea modulelor
componente, modalitile de conectare dintre module i performanele atinse.
Arhitectura von Neumann const din trei tipuri de dispozitive (fig. 3.1):
unitatea central de prelucrare UCP (CPU Central Processing Unit);
memoria;
dispozitive de intrare/ieire I/O.
Memorie
Unitate
central
de
prelucrare
Magistral de adrese
Magistral de date
Magistral de
comenzi/stari
Dispozitive
I/O
BPC-Curs
cuvnt memorie
Fig. 3.3 Model de organizare a memoriei unui sistem de calcul
n acest model, memoria este considerat ca o colecie de n locaii de memorie
consecutive. Toi productorii de calculatoare au adoptat standardul locaiei de
memorie de 8 bii (un octet sau byte), aceasta fiind cea mai mic unitate de
memorie adresabil. Octeii pot fi grupai n cuvinte de 16 bii, 32 bii sau 64
bii. Importana cuvntului provine din faptul c majoritatea instruciunilor unei
UCP opereaz cu cuvinte ntregi. Astfel, o unitate central de prelucrare pe 32
respectiv 64 de bii are registre de 32 respectiv 64 de bii.
Trebuie precizat c modelul de organizare liniar a locaiilor de memorie
este destul de simplist. n realitate, memoria unui calculator este structurat pe
mai multe nivele, fiecare nivel avnd anumite caracteristici i fiind implementat
cu tipuri diferite de circuite i dispozitive. Chiar n cadrul aceluiai nivel, de
obicei organizarea nu este liniar (cazul memoriilor de mare capacitate). Totui,
indiferent de dispozitivul sau componenta fizic folosit, informaia este
memorat n binar.
n-1
0
linii
c-1
0
1
2
l-1
locaie bm-1 b1
a)
b0
b)
BPC-Curs
La organizarea matriceal adresa unei locaii este format din adresa de linie i
adresa de coloan. n general, adresa unei locaii este format prin concatenarea
codurilor binare ale celor dou tipuri de adrese.
O locaie de memorie are o anumit capacitate de stocare dat de numrul
de bii ai locaiei de memorie. Capacitatea total a unui circuit de memorie se
obine nmulind numrul total de locaii de memorie cu capacitatea unei locaii.
Capacitatea unei memorii se poate exprima i n numrul de cuvinte de
memorie: 256 bii (cuvntul este un bit), 16 kilobii sau 16 kb, 32 kilooctei (ko)
sau 32 kB (kiloBytes) (cuvntul este un octet).
Dispozitivele de memorie se folosesc la stocarea sau extragerea de
informaie. Prin urmare, operaiile de baz realizate cu circuitele de memorie
sunt: citirea i scrierea. n plus, exist memorii care pot fi programate i
memorii la care informaia trebuie renscris pentru a nu se pierde, adic trebuie
realizat regenerarea.
Scrierea reprezint operaia prin care, precizndu-se o anumit adres de
locaie, se depune o informaie n memorie. Citirea reprezint operaia prin care
se regsete, pe baza unei adrese, o informaie stocat anterior ntr-o anumit
locaie de memorie. Informaia de adres este binar. Lungimea acestui cuvnt
de adres este funcie de numrul de locaii. Dac notm cu n numrul de locaii
de memorie, atunci lungimea cuvntului de adres (n binar), l , este cel mai mic
numr natural care satisface relaia:
l log 2 n . (rezult din 2l n )
De exemplu, dac dispunem de un circuit de memorie cu n = 1024 = 210 locaii
de memorie, atunci lungimea cuvntului de adres este l = log 2 1024 = 10 .
Avnd n vedere cele artate anterior, putem spune c un circuit de
memorie are, n general, urmtoarele conexiuni (fig. 3.5):
l
linii de adres
p
Circuit de
memorie
m
linii de date
linii de control
Fig. 3.5 Conexiunile unui circuit de memorie
-
linii de
adres
A0
A1
Memorie
1kB
A9
linii de
control
R /W
D0
D1
linii de
date
D7
CS
BPC-Curs
Circuitele de memorii realizate cu semiconductoare se difereniaz printro serie de proprieti, cum ar fi:
geometria sau modul de organizare a memoriei;
capacitatea memoriei;
timpul de acces la memorie: intervalul de timp dintre momentul n care se
apeleaz la dispozitivul de memorie i momentul n care informaia este
disponibil la ieire; se exprim n microsecunde ( s ) sau nanosecunde ( ns );
ciclul de citire sau scriere: timpul scurs ntre dou citiri sau scrieri
consecutive; se exprim de asemenea n s sau ns - este superior timpului de
acces;
puterea consumat, exprimat n W / bit ;
volatilitatea: pierderea informaiei n timp; la memoriile volatile
informaia se pierde odat cu decuplarea tensiunii de alimentare; volatilitatea
este determinat de tehnologia de realizare;
tehnologia de realizare: bipolare (TTL, TTL Shottky, ECL), MOS,
CMOS, I2L; circuitele bipolare sunt foarte rapide dar au o densitate mic de
integrare. Circuitele MOS sunt mai simple, deci au o densitate de integrare mai
mare, dar au o vitez mai mic dect cele bipolare.
3.2.1.2. Clasificarea circuitelor de memorie
Memoriile se pot clasifica dup mai multe criterii: tipul operaiilor
permise, modul cum pstreaz informaiile nscrise, etc.
n funcie de tipul operaiilor permise exist memorii:
de tip ROM (Read Only Memory): accept doar operaii de citire;
de tip RAM (Random Acces Memory): accept operaii de citire/scriere
aleatoare.
a). Memorii ROM
Memoriile ROM sunt folosite doar pentru citirea informaiei nscris
anterior, informaie ce este rezident permanent n cadrul sistemului. Memoriile
ROM sunt utilizate pentru:
- stocarea secvenelor de instruciuni ce nu se schimb, ca de exemplu secvene
de iniializare;
- memorarea unor tabele de valori;
- stocarea unor informaii privind caracteristicile unui sistem de calcul, etc.
Memoriile ROM genereaz un set fix de cuvinte, nscrise anterior, atunci
cnd aceste cuvinte sunt adresate. n funcie de cum sunt nscrise aceste cuvinte,
eventual terse, exist mai multe tipuri de memorii ROM:
A0
A1
cuvnt 1
celul de bit
Dec.
adr.
Al-1
cuvnt 2l 1
CS
PROG
OE
Logic de
control
Amplificatoare date
Dm-1 Dm-2
D1
D0
BPC-Curs
A0
A1
Dec.
adr.
Al-1
CS
R /W
2l 1
Logic de
control
Amplificare
Amplificare
la scriere
la citire
m
m
Circuite de intrare/ieire
Dm-1 Dm-2
D1
D0
Fig. 3.9 Schema bloc intern a unui circuit de memorie RAM static
9
0
RAS
Registru l/2
adres
linie
2l/2-1
0
1
2
Dec.
adr.
linie
2l/2-1
A0
A1 l/2
Al/2-1
Registru l/2
adres
coloan
Mux/Dmux
2l/2:1/1: 2l/2
OD
CAS
R /W
ID
BPC-Curs
Regenerarea se face simultan pentru toate celulele de pe o linie din matrice. Prin
urmare, la regenerare este activat numai semnalul RAS , nu i CAS . De
exemplu, n cazul unei memorii de capacitate 16kb, matricea de celule are 128
linii i 128 coloane. Adresa de linie sau de coloan are 7 bii. Sunt necesare 128
cicluri de regenerare care trebuie s se desfoare n 2 ms . Rezult aproximativ
15 s pentru regenerarea unei linii. n sistemele de calcul regenerarea are loc
simultan n toate circuitele unitii de memorie. Deci, indiferent de capacitatea
memoriei sistemului de calcul, regenerarea are perioada de 2 ms , egal cu
perioada de regenerare a unui circuit.
La circuitele cu capacitate mai mare dect 16kb, la regenerare matricea de
celule este vzut cu 128 de linii i cu mai mult de 128 coloane. n cazul
operaiilor de citire/scriere matricea este vzut ptrat.
Alte clasificri
Dup modul cum pstreaz informaiile nscrise, memoriile pot fi
clasificate n:
nevolatile nu i pierd coninutul la decuplarea tensiunii de alimentare.
Dintre aceste memorii amintim: memoriile de tip ROM, memorii RAM CMOS
cu baterie ncorporat. Tehnologia CMOS este o tehnologie MOS (metal-oxidsemiconductor) care folosete cupru. Aceste dispozitive au un consum foarte
mic. Datorit acestui fapt ele sunt conectate tot timpul la o baterie (cnd sistemul
este nchis). Se folosesc n special pentru a memora anumite caracteristici ale
sistemului de calcul.
volatile - i pierd coninutul odat cu oprirea tensiunii de alimentare:
RAM static, RAM dinamic.
3.2.1.3 Tehnologii noi de memorii DRAM
Creterea frecvenei de lucru i a vitezei de calcul a noilor generaii de
procesoare a impus gsirea unor soluii pentru reducerea timpului de acces la
memoriile de mare capacitate. Timpul de propagare a semnalului electric prin
submodulele unui circuit de memorie (decodificator, celula elementar de
memorie i amplificator final) are o limit fizic. Prin urmare, pentru
mbuntirea timpului de acces, soluia care rmne este gsirea unor noi
modaliti de organizare intern a circuitelor de memorie, care s elimine
anumite etape ale ciclului de transfer i care favorizeaz accesul paralel.
11
Segment
Locaie de
memorie
Adresa maxim
12
BPC-Curs
Un segment logic poate s aib mai multe atribute, cum ar fi: adresa de
nceput a segmentului, lungimea, drepturile de acces la segment, etc. Cu ajutorul
atributelor asociate unui segment se controleaz accesul la locaiile segmentului.
Se pot verifica tipurile de operaii permise (citire, citire/scriere), nivelul de
prioritate solicitat, depirea limitei maxime a segmentului.
Implementarea efectiv a segmentrii depinde de suportul hardware oferit
de unitatea central de prelucrare (procesor). n capitolul 4 se va prezenta modul
de soluionare al segmentrii la procesoarele familiei Intel x86. Amplasarea
segmentelor n spaiul de adresare disponibil i ncrcarea acestora n memoria
principal este realizat de sistemul de operare.
Paginarea
Scopul principal al paginrii este de a extinde memoria intern a unui
sistem de calcul peste memoria extern. n acest scop att memoria intern ct i
cea extern este divizat logic n blocuri de lungime fix, numite pagini.
Concret, memoria intern este divizat n pagini de memorie de o anumit
lungime. Fiecare program ce urmeaz a fi ncrcat n memoria intern din
memoria extern, este fragmentat ntr-un numr de pagini de program (pagini)
de dimensiunea paginii de memorie intern. n timpul execuiei programului
paginile sunt ncrcate n memoria intern numai dac se solicit informaii
coninute n acestea. Adresa absolut a unei locaii de memorie ntr-o pagin se
calculeaz pe baza adresei absolute a paginii de memorie i a adresei relative n
pagina de memorie. n acest fel spaiul efectiv necesar pentru execuia unui
program este mult mai mic.
Paginarea este realizat de sistemul de operare i mecanismul respectiv
este transparent pentru utilizator. O influen deosebit asupra eficienei
paginrii o are dimensiunea paginii de memorie. ncrcarea paginii n memoria
intern necesit un anumit timp, denumit timp de penalizare. Timpul de
penalizare depinde de dimensiunea paginii i de viteza de transfer ntre memoria
intern i memoria extern (disc). Dac dimensiunea paginii este mic, timpul
de penalizare este mic dar vor fi mai multe solicitri i deci sunt necesare tabele
de dimensiuni mai mari pentru gestiunea paginilor (tabele care pstreaz
corespondena dintre paginile unui program i paginile de memorie intern n
care sunt ncrcate). Dac dimensiunea este mare, n comparaie cu dimensiunea
memoriei interne, aceasta poate duce la nlocuirea repetat a paginilor, ceea ce
scade eficiena implementrii.
Organizarea sub form de stiv
n acest tip de organizare accesul nu se mai realizeaz dup adres ci dup
o relaie de ordine. n acest scop se folosete o informaie suplimentar care
precizeaz tot timpul vrful stivei. Exist dou modaliti de organizare a
memoriei sub form de stiv, modaliti ce corespund la dou relaii de ordine:
stive de tip FIFO (First In First Out primul intrat, primul ieit);
13
stive de tip LIFO (Last In First Out ultimul intrat, primul ieit).
Stivele de tip FIFO sunt cunoscute sub numele de cozi. n organizarea
memoriei sub form de coad, prima informaie venit este prima extras.
Informaia este introdus n coad pe la un capt iar extragerea este fcut pe la
cellalt capt (fig. 3.14).
extragere
depunere
ultima informaie
depus
prima informaie
extras
PUSH
adrese mici
vrful stivei
stiva
baza stivei
adrese mari
Fig. 3.15 Organizarea sub form de stiv
14
BPC-Curs
Memoria virtual
Memoria virtual este un concept arhitectural prin care memoria intern
este extins peste spaiul de adresare al memoriei externe. Memoria virtual se
poate implementa prin segmentare sau paginare. Aceste tehnici pot fi combinate
pentru extinderea virtual a spaiului de adresare. Mecanismul memoriei virtuale
este folosit mai ales n cazul sistemelor de operare multi-tasking i multiutilizator (de ex. Windows, Unix, etc.). Reamintim c n cazul ambelor tehnici
(segmentare sau paginare) memoria intern i extern este divizat n blocuri. La
execuia unui program se ncarc n memoria intern numai acele blocuri care
sunt necesare pentru execuie. Astfel spaiul ocupat efectiv de un program n
memoria intern este mult mai mic dect dimensiunile acestuia. n acest fel se
pot utiliza medii de programare a cror dimensiune depete cu mult
dimensiunea fizic a memoriei interne. De asemenea, pot fi ncrcate n
memoria intern mai multe programe sau taskuri.
3.2.3 Ierarhii de memorii
Memoria unui sistem de calcul trebuie s satisfac mai multe cerine,
adesea contradictorii: capacitate mare, timp de acces mic, cost rezonabil i
dimensiuni reduse. Aceste cerine nu pot fi ndeplinite simultan de un singur tip
de memorie. Cu tehnologia actual se pot realiza memorii de mare vitez dar de
capacitate mic (RAM static), memorii de capacitate mare i de vitez medie
(variante de memorii DRAM) i memorii de capacitate foarte mare dar cu timp
de acces mare (memorii externe pe suport magnetic sau optic).
n sistemele de calcul performante spaiul de memorare este structurat
ierarhic pe mai multe nivele, fiecare nivel avnd o capacitate mai mare dect
predecesorul, dar i un timp de acces la informaie mai mare. n figura 3.16 este
reprezentat organizarea ierarhic a memorie unui sistem de calcul.
Registre
Crete viteza
i costul
Memoria cache
Memoria principal
Crete timpul
de acces i
capacitatea
Memoria secundar
Fig. 3.16 Structura ierarhic a memoriei unui calculator
15
Procesor
(UCP)
Memoria
principal
Magistral
sistem
Memoria
cache
Fig. 3.17 Plasarea memoriei cache
BPC-Curs
gsete n memoria cache s fie identic cu cea din memoria intern. Prin
urmare, trebuie reactualizat informaia din memoria cache.
O caracteristic important o constituie plasarea informaiei n memoria
cache. Astfel exist dou variante:
- cu memorie cache unic: datele i instruciunile folosesc aceeai memorie
cache;
- cu memorie cache divizat: instruciunile sunt ntr-o memorie cache i datele
n alta.
n cazul procesoarelor Intel (pn n 2005, deoarece de la Intel 64 biti
Xeon apare L3) memoria cache era organizat pe dou nivele: L1 i L2. Nivelul
L1, cel mai apropiat de procesor, este subdivizat n dou blocuri de cte 16
koctei, unul pentru pstrarea instruciunilor i unul pentru pstrarea datelor.
Nivelul L2 este de dimensiune mai mare (256-512 koctei) i pstreaz att
instruciuni ct i date. La ultimele variante de procesoare memoria cache i
unitatea de management a acestei memorii sunt incluse n structura procesorului.
n prezent n cazul procesoarelor Intel multicore s-a ajuns la nivelul L4.
http://en.wikipedia.org/wiki/List_of_Intel_microprocessors#64-bit_processors:_IA-64
17
UCP
GT
GF
RI
DI + BCC
NP
RS
UCC
UAL
RG
A
R1
R2
RN
Magistrala sistem
Fig. 3.23 Structura unitii centrale de prelucrare (UCP)
18
BPC-Curs
R1
R2
R3
R1
R2
R3
R4
R5
R6
R4
R5
R6
a)
b)
R
n
A
n
UAL
20
BPC-Curs
Bn-1
Tn-1
An-1
n 1
Tn-2
B1
T1
A1
1
B0
T0
A0
0
Sn-1
S1
S0
Fig. 3.26 Schema bloc a unui sumator paralel pe n bii
Pentru operaiile logice sumatoarele elementare sunt nlocuite cu circuite
care realizeaz operaia SAU, NU sau I. Complementarea fa de 1 se face
printr-o simpl inversare a biilor operandului, iar complementarea fa de 2 este
o complementare fa de 1 urmat de o adunare cu 1.
3.4.3 Unitatea de comand i control
Unitatea de comand i control UCC aduce instruciunile din memoria
principal i determin tipul lor. O instruciune reprezint o codificare a unei
succesiuni de operaii elementare, numite i microoperaii. Semnalele care
comand aceste operaii elementare sunt referite ca mirocomenzi.
Microcomenzile sunt trimise elementelor de execuie din structura
calculatorului: registre, UAL, memorie, porturi, etc., care realizeaz operaii
elementare cum ar fi: nscriere, validare ieire, tergere, deplasare stnga, etc. O
instruciune este de fapt, o succesiune de microoperaii, care compun execuia
instruciunii. Toate microoperaiile care se execut n acelai timp definesc o
stare n execuia unei instruciuni, numit i faz. Unitatea de comand i control
descompune fiecare instruciune ntr-o succesiune de faze.
21
BPC-Curs
T
M1
extragere cod
instruciune
M2
citire din
memorie
M3
scriere n
memorie
ciclul instruciune
Fig. 3.27 Ciclul instruciune format din trei cicluri main
23
BPC-Curs
prima instruciune
execuie
fetch
fetch
a doua instruciune
execuie
P1
Unitatea de extragere
instruciune
P2
Unitatea de analiz
instruciune
P3
Unitatea de calcul a
adresei
P4
Unitatea de execuie
instruciune
P5
P1
P2
P3
P4
P5
1 2 3 4
1 2 3
1 2
1
5
4
3
2
1
6
5
4
3
2
7
6
5
4
3
8
7
6
5
4
b)
b1
b2
a1
a2
UAL
bn
an
Unitatea de extragere
date
c1
c2
UAL
cn
a)
c)
a)
COP
b)
COP
Adresa
c)
COP
Adresa 1
Adresa 2
d)
COP
Adresa 1
Adresa 2
Adresa 3
BPC-Curs
Ex:
DAA
AAA
ADD adr
MOV AX, BX
BPC-Curs
29
Semnale
de adres
Semnale
de date
Semnale de
comand
Semnale de
ntrerupere
Microprocesor
Semnale de arbitrare
a magistralei
Semnale de stare
Semnal de tact
Alte semnale
Alimentare
BPC-Curs
31