Documente Academic
Documente Profesional
Documente Cultură
control proprii numit controler, ce transform comenzile primite n semnale specifice unitilor
slave pe care le controleaz.
Un singur controler poate gestiona mai multe uniti slave. Pentru fiecare unitate slave,
controlerul respectiv are aceeai denumire, putnd fi implementat c o component distinct sau
integrat n unitatea slave respectiv. Un controler poate gestiona o gam divers de uniti slave
de acelai tip, astfel are mai mult moduri de lucru i poate fi programat s funcioneze n modul
dorit, fie la iniatializarea calculatorului, fie ulterior, de ctre sistemul de operare sau programele
utilizator. n timpul unui transfer, unitatea master indic tipul unitii slave cu care dorete s
lucreze.
Identificarea unitilor slave se face prin intermediul unui numr unic asignat numit
adres: adresa de memorie sau adresa de port I/O. Unitile slave pot fi dedicate unei singure
uniti master, caz n care transferurile de informaie se fac doar cu unitatea master respectiv sau
partajate ntre mai multe mastere. Procesul de partajare a resurselor unui sistem de calcul are loc
prin dialoguri suplimentare ntre unitile master. Pentru realizarea funciilor de baz ale unui
calculator componenta hardware are 3 subsisteme diferite interconectate prin intermediul
magistralelor:
- subsistemul unitilor centrale;
- subsistemul de memorie;
- subsistemul de intrare-iesire.
Dispozitivele i elementele suplimentare asigur: alimentarea cu energie a subsistemelor
componente, interconectarea subsistemelor, msurarea i disiparea temperaturii. Componenta
hardware este protejat prin brevete de invenie, acestea se obin greu deoarece trebuie s fie o
concepie unic, i expir dup 17 ani. n plus, componenta hardware este uor de copiat datorit
existenei pe pia a seturilor specifice de circuite integrate.
3. Componenta software a unui calculator.
Orice calculator are doua componente majore: componenta hardware si componenta
software.
Componenta software reprezinta ansamblul de programe, realizate pe baza setului de
instructiuni al unitatii centrale, ce pot fi rulate pe calculatorul resprectiv. Cuprinde programe
necesare, atat operarii si intretinerii componentei hardware, cat si rezolvarii problemelor
utilizator.
Programele componentei software pot fi grupate functional in trei categorii:
- sistem de operare
- programele utilitare si de test
- programe utilizator
Sistemul de operare asigura functionarea calculatorului, prin gestionarea judicioasa a
resurselor acestuia, si rezolva problemele de interfata ce apar in dialogurile cu operatorul uman
sau cu un alt calculator. SO este transferat in memoria primara de catre programul incarcator al
sistemului si apoi este lansat in executie, astfel detine controlul absolut asupra resurselor
calculatorului. In absenta SO calculatorul nu poate fi utilizat. Componenta BIOS este parte a SO.
Ea este dependenta de structura hardware si contine un ansamblu de drivere software, prin
intermediul carora controleaza porturile I/O. La initializarea calculatorului, accesul la resursele
acestuia este asigurat de o componenta BIOS, memorata intr-un circuit de memorie nevolatila
[2]
ROM. Aceasta componenta mai este numita ROM-BIOS, fiind utilizata de programul incarcator
al SO, precum si de sistemele de operare monotasking. Un sistem de operare multitasking, dupa
ce este incarcat in memoria primara, foloseste propria componenta BIOS.
Programele utilitare si de test sunt necesare testarii performantelor si intretinerii in bune
conditii de functionare a calculatorului. In aceasta categorie intra si o parte din programele
memorate in circuitul de memorie nevolatila ROM, ce sunt lansate in executie o singura data, la
alimentarea calculatorului sau dupa RESET, atunci cand memoria primara nu contine niciun
program valid.
Programele utilizator reprezinta aplicatiile ce se doresc a fi rulate pentru rezolvarea
problemelor utilizatorului, constituind scopul existentei unui calculator. Initial, utilizatorul era
fortat sa-si scrie programele de aplicatie de la inceput pana la sfarsit, folosind un anumit limbaj
de programare, de nivel scazut sau de nivel inalt. Pentru a putea realiza programe performate, el
era nevoit sa cunoasca foarte bine atat componenta hardware, cat si comenzile limbajului utilizat.
Ulterior, accentul s-a mutat spre fabricantii de software, care pun la dispozitie
componente soft foarte dezvoltate. Cu ajutorul lor, utilizatorul isi poate construi propria aplicatie
intr-o maniera facila, apeland la biblioteci de functii, de unde poate prelua module de program
predefinite, fara sa cunoasca in detaliu componenta hardware si fara a fi nevoit sa invete toate
comenzile specifice unui limbaj de programare.
4. Interdependentele hard-soft
Intre componentele hardware a unui calculator si componenta software exista o stransa
interdependenta, ce se manifesta permanent pe multiple planuri, afectand performantele de
ansamblu ale sistemului. De aceea, programele sunt in general optimizate pentru fiecare tip de
arhitectura in parte.
Performantele programelor utilizator depind esential de SO instalat pe calculatorul
respectiv.
Interdependenta hard-soft este exemplificata in continuare pentru trei situatii distincte:
1. Un program nu poate rula daca nu are suport hardware adecvat sau daca nu primeste
acces la resurse, din partea SO.
2. Acelasi program rula pe calculatoare compatibile, dar cu arhitecturi diferite, va
conduce la performante diferite.
3. Doua programe similare, rulate pe acelasi calculator, vor avea performante complet
diferite, in functie de gradul de optimizare a lor in raport cu componentele hardware a
arhitecturii considerate.
In plus, modificari majore ale componentei hardware determina transformari ale
componentei software, care la randul ei genereaza necesitati de modificare a primei
componente. Cunoasterea acestor conditionari constituie un suport important pentru
utilizarea eficienta a oricarui calculator si dezvoltarea de aplicatii cat de complexe.
[3]
paritatii si un multiplu de 9 cand se utilizeaza calculul paritatii, pentru fiecare octet adaugandu-se
un bit de paritate.
Din punct de vedere functional, informatiile vehiculate intr-un calculator pot fi:
- informatii primare, ce reprezinta informatiile utile care se doresc a fi transmise
intre unitatile componente ale unui sistem de calul. Ele pot fi instructiuni sau date;
- informatii secundare, ce reprezinta informatii suplimentare, necesare obtinerii
informatiilor primare. Acestea pot fi adrese de memorie sau porturi I/O, comenzi, stari. Semnalele
de comanda si stare sunt numite generic semnale de control.
Instructiunile sunt secvente binare de comanda, care indica unitatii centrale, ce trebuie sa
execute aceasta. Ele sunt grupate intr-o structura logica in cadrul unui program, fiind preluate din
memorie de catre unitatea centrala, intr-o succesiune determinata. In memorie, secventele de
instructiuni sunt pastrate in zone distincte fiecarui program, numite zone de cod. Acestea sunt
doar citite, de catre unitatea centrala ce executa programul, si de aceea, ele sunt declarate de tip
read-only de catre SO multitasking, evitandu-se astfel de operatiuni ilegale de modificare a lor in
memorie.
Datele reprezinta obiectul instructiunilor, fiind secvente binare asupra carora unitatea
centrala poate efectua toate tipurile de operatii. Sunt organizate in structuri mai complexe si sunt
pastrate in memorie in zone separate ale programului respectiv, numite zone de date, care pot fi si
scrise si citite. Datele pot fi de doua tipuri: numerice sau nenumerice. Datele numerice reprezinta
operanzi cu semn sau fara semn, exprimati in valori binare sau zecimale codificate binar. Ele pot
fi reprezentate in doua formate diferite: virgula fixa sau virgula mobila. Datele nenumerice
reprezinta siruri de caractere, fiecare caracter fiind codificat sub forma unei secvente binare, cu
ajutorul codurilor de caractere.
7. Concepte de arhitectura si structura unui sistem de calcul
Conceptele de arhitectura si structura a unui sistem de calcul permit caracterizarea in
ansamblu a sistemului respectiv si descrierea amanuntita a subsistemelor componente. Ele sunt
utilizate pentru definirea performantelor unui calculator, precum si pentru compararea diferitelor
tipuri de calculatoare intre ele.
Arhitectura unui sistem de calcul precizeaza tipul susbsistemelor componente si modul
concret de interconectare a lor, in vederea obtinerii ansamblului de functii pe care subsistemele
trebuie sa si le ofere unul altuia.
Structura unui sistem de calcul precizeaza modul concret de realizare a fiecarui subsistem
component, conform cerintelor de performanta si pret. Cu cat numarul functiilor oferite de
subsistemele componente este mai mare, cu atat sistemul rezultate este mai flexibil, dar
arhitectura va fi mai complicata. Multe dintre elementele de arhitectura sunt comune tuturor
sistemelor de calcul, fiind elemente definitorii ale sistemelor digitate de ordin patru. Altele sunt
comune, doar sistemelor de calcul programabile. In ambele cazuri insa, ele se regasesc in
arhitectura unui calculator. Descrierea unei arhitecturi presupune definirea subsistemelor
[5]
componente si a modului in care acestea sunt interconectate. Prima arhitectura a unui calculator
electronic de uz general, numita arhitectura von Neumann, a fost descrisa in anul 1946 de John
von Neumann si colegii sai de la Institulul de studii avansate al Universitatii Princeton. Lucrarea
descria principiile logice de proiectare a unui calculator electronic de uz general, numit, ECI.
Spre deosebire de predecesoarele sale, ECI folosea o memorie comuuna pentru program si date,
si putea prelucra paralele operanzi binari pe 40 biti.
ECI cuprindea patru subsisteme:
- memoria comuna pentru program si date avea o capacitate de 4096 de cuvinte de
40 biti, fiind adresata cu 12 linii de adresa. Memoria era realizata cu 40 tuburi catodice de cate
4096 biti fiecare.
- unitatea aritmetica putea efectua cele patru operatii de baza asupra unor operanzi
binari de 40 biti, care reprezentau numere cu semn exprimate in virgula fixa in intervalul (-1,1),
valorile negative fiind codificate in codul complement fata de 2.
- unitatea de control realiza controlul operarii celorlalte trei unitati prin executarea
instructiunilor citite din memorie. Puteau executa 21 de instructiuni diferite, al caror format era
pe 20 biti, ceea ce permitea memorarea a doua instructiuni in acelasi cuvant de memorie.
- subsistemul de intrare-iesire continea unitati de meorie secundara de tip fir
magnetic, precum si dispozitive pentru comunicarea cu operatorul uman: teleimprimator pentru
introducerea datelor si tiparirea rezultatelor si display pentru vizualizarea informatiilor.
In subsistemul I/O, informatiile erau transmise serial. In timp, arhitectura de baza a
cunoscut diverse modificari si adaugiri. Functiile unitatii de control au fost distribuite catre
celalalte subsisteme, majoritatea fiind inglobate in unitatea centrala. De asemenea, dezvoltarea
tehnologica a permis cresterea complexitatii si performantelor fiecarui subsistem component si
implicit ale calculatorului in ansamblu.
8. Masina Turing: definitie, componente
Primul model abstract de calculator a fost introdus de matematicianul englez Alan Turing,
in anul 1936, model cunoscut sub numele de masina Turing. Acesta a pornit de la definirea unei
operatii de calcul cu ajutorul calculatorului, introducand notiunea de executie secventiala. Masina
Turing are doua componente principale: procesorul si memoria. Procesorul este un sistem
secvential cu numar finit de stari de unde rezulta ca acesta va avea un set finit de instructiuni.
Memoria masinii Turing este o banda de lungime infinita, impartita in locatii de memorie. Fiecare
locatie poate fi goala sau poate contine un simbol t i, dintr-un set finit de simboluri. Masina Turing
are si un cap de citire/scriere, cu ajutorul caruia procesorul poate citi simbolul din locatia de
memorie aflata in dreptul capului, poate rescrie locatia respectiva sau poate muta banda de
memorie o latie la stanga sau la dreapta fata de pozitia curenta a capului.
[6]
Turing M se opreste dupa un numai finit de pasi. Fie functia rationala f H (M,X), numita functia de
oprire a masinii Turing, definita pentru toate masinile Turing M si datele de intrare X specificate,
de forma:
FH (M,X) =
1 daca (M,X) se opreste
0 daca (M,X) nu se opreste
Se poate arata ca functia rationala fH nu este calculabila, ceea ce inseamna ca nu se poate
determina o metoda algoritmica generala prin care sa se cunoasca apriori daca masina Turing se
opreste sau nu, oricare ar fi masina M si datele de intrare X. Exista foarte multe probleme inrudite
cu fH care nu au solutii.
2. Exista probleme care ar putea fi rezolvate cu masina Turing, dar care, in principiu nu pot fi
rezolvate cu calculatoarele reale.
Procesorul masinii Turing are un numar finit de stari si implicit are un set finit de
instructiuni. Insa, banda de memorie are un numar infinit de locatii de memorie si de aceea
masina Turing este o masina cu stari infinite. Calculatoarele reale au un numar finit de locatii de
memorie si sunt masini cu stari finite. Ele nu pot lucra cu numere oricat de mari, deci toate
problemele care opereaza cu numere foarte mari nu pot fi rezolvate doar cu masina Turing.
3. Exista probleme ce sunt rezolvabile cu calculatoarele reale intr-un numar finit de pasi, dar care
practic nu se pot rezolva deoarece necesita o cantitate prea mare de memorie, fie un timp de
calcul prea lung.
Presupunem o probleme P ce se poate rezolva cu un calculator prin executarea unui
algoritm A. Referitor la dificulatea algoritmului trebuie precizate doua aspecte cantitative:
- ce spatiu de memorie este necesar pentru rezolvarea algoritmului
- cat timp dureaza executia acestuia.
Cele doua cantitati sunt greu de masurat deoarece depind de dimensiunea datelor de
intrare n. Totusi pentu a putea caracteriza gradul de dificultate al unui algoritm, se definesc doua
marimi, al caror expresii depind de n:
- complexitatea de spatiu a algoritmului A
- complexitatea de timp a algoritmului A
Limitarile impuse de timp sunt mult mai restrictive decat cele ale spatiului de memorie.
10. Complexitatea de timp a unui algoritm
Limitarile impuse de timp sunt mult mai restrictive decat cele ale spatiuliu de memorie.
Un algoritm A are complexitatea de timp o (f(n)) daca numarul de pasi p necesari pentru
rezolvarea algoritmului este proportional cu f(n) p=c*f(n), unde c este o constanta, iar f este o
functie oarecare, iar n reprezinta dimensiunea datelor de intrare.
O problema se numeste tratabila cu un anumit calculator daca ea poate fi rezolvata exact
intr-un timp rezonabil, oricare ar fi dimensiunea datelor de intrare n specificata. In general se
admine ca o problema este tratabila, daca si numai daca exista un algoritm de rezolvare a ei, care
are complexitatea de timp o(p(n)), unde p este o functie polinimiala de n. Reciproc, o problema
nu este tratabila daca toti algoritmii de rezolvare au complexitatea de timp o(k n), timpul de
executie crescand exponential cu dimensiunea datelor de intrare.
[8]
Daca o problema nu este tratabila, atunci ea va putea fi rezolvata exact intr-un timp
rezonabil, doar daca dimensiunea datelor de intrare n este mai mica sau egala cu o valoare
maxima m. Astfel o problema netratabila poate deveni tratabila doar pentru n m.
Valoarea lui m depinde de viteza de lucru s a calculatorului care rezolva problema. Cu cat
s este mai mare, cu atat m va fi mai mare, dar dependenta nu este direct proportionala pentru toti
algoritmii.
11. Influenta vitezei de calcul asupra dimensiunii maxime a
datelor de intrare
Cresterea vitezei de calcul (s) a unui calculator s-a facut, in general prin perfectionarea
tehnologiilor de fabricatie a unitatilor de memorie si a cricuitelor de comutatie. Dezvoltarea
tehnologica a condus la o crestere medie a vitezei de lucru a unui calculator, de 100 de ori pe zi
pe decada, in ultimii 70 de ani. Presupunand rata de crestere constanta si in viitor, vom arata ca m
n u depinde direct proportional de s, pentru toti algoritmii. Fie un calculator M cu o viteza de
calcul s, care ruleaza un interval de timp T, efectuand un numar de pasi p. Cu cat calculatorul este
mai rapid si viteza de calcul s este mai mare, cu atat numarul de pasi p, executati in interval de
timp T, este mai mare.
Calculatorul ruleaza un algoritm A cu complexitatea de timp o(f(n)). In intervalul de timp
T, acesta va putea procesa o dimensiune maxima a datelor de intrare m, dependenta de viteza de
calcul s. Pentru ca algoritmul A cu complexitatea o(f(n)) sa fie rezolvat in intervalul de timp T,
trebuie ca numarul de masi necesari rezolvarii lui sa fie c*f(n) p, pentru orice dimensiune a
datelor de intrare n m.
Pentru n=m => p=c*f(n).
Presupunem ca in urmatoarea decada, viteza de operare a calculatoarelor creste de 100 de
ori. Consideram un nou calculator M cu o viteza de calcul s=100s si care efectueaza, in acelasi
interval de timp T, un numar de pasi p=100p. Avand o viteza mai mare si ruland algoritmul A,
calculatorul va putea procesa o dimensiune maxima a datelor de intrare m mai mare.
Similar vom avea:
p c*f(n), oricare ar fi n m
P= c*f(m), n=m
Dorim sa determinam noua valoare m a algoritmului A, la cresterea vitezei de calcul de
100 de ori. Sintetizand rezultatele anterioare, rezulta urmatorul sistem din care se obtine m:
p=c*f(m)
p=c*f(m)
=> f(m)=100*f(m)
p=100p
De la un algoritm la altul, m va avea valori diferite
Exemplu: f(m)=100*f(m)
[9]
Numarul de linii pe care le contine magistrala este indicat printr-un numar plasat deasupra
simbolului, iar sensul de transfer este indicat prin sageti. Pentru identificarea tuturor magistralelor
ce pot exista intr-un sistem de calcul, acestea primesc cate un nume, care apare trecut langa
simbol. Grosimea magistralei simbolizate poate depinde de numarul de linii incluse:
Liniile componente ale unei magistrale pastreaza numele sau initiala magistralei
respective, langa nume fiind trecut numarul liniei. Acest numar reprezinta puterea bazei 2
corespunzatoare pozitiei liniei in configuratia binara care se transfera.
[10]
Daca magistrala nu are ceas propriu, atunci transferurile vor fi sincronizate cu semnalele
de ceas ale unitatilor conectate la magistrala. Frecventa ceasului magistralei poate sa fie fixa
pentru magistralele la care se conecteaza unitati ce contin circuite dinamice sau poate fi
modificata de la 0 la valoarea maxima pentru magistralele la care se conecteaza unitati cu circuite
complet statice. Frecventa maxima a ceasului de magistrala depinde de lungimea fizica a
magistralei si de numarul de unitati conectate la aceasta. Cu cat magistrala este mai lunga si la ea
se pot conecta mai multe unitati, cu atat frecventa semnalului de ceas trebuie sa fie mai mica.
Determinarea frecventei semnalului de ceas se face tinandu-se cont de posibilitatile de transfer
ale unitatilor conectate la magistrala si de frecventa transferurilor, astfel incat sa se obtina o
functionare optima.
t , unde t = timpul minim al celui mai lent transfer.
T
CLK
tTif i
frecvente.
tTM =
tTi
tTM =
i=1
i=1
fi
i=1
Cu cat frecventele de aparitie ale transferurilor lente usnt mai mari, cu atat valoarea medie
va fi mai mare. Este de dorit ca transferurile cu unitatile lente sa fie cat mai rare.
* timpul de transfer cumulat (tTC) reprezinta timpul necesar realizarii tuturor transferurilor
considerate, fiind definit similar timpului de transfer mediu.
N
tTM =
t Ti = N*tTM
i=1
tTC =
t Tif i = tTM * f i
i=1
i=1
[13]
liniilor de legatura dintre subsisteme dar informatiile primare se transfera succesiv pe aceeasi
magistrala unica, ceea ce paote micsora performantele globale ale sistemului de calcul.
Dup rata de transfer i implicit dup numrul de uniti conectate, putem avea:
- magistrale locale, care sunt amplasate n apropierea unitilor foarte rapide, cum este, de
e xemplu, procesorul. Aceste magistrale sunt caracterizate de o rat mare de transfer i un numr
mic de uniti ce pot fi conectate la ele. Ca exemple, pot fi date: magistrala local a procesorului,
magistrala local a memoriei;
- magistrale de extensie (magistrale I/O), care sunt magistrale accesibile
utilizatorului, fiind terminate cu conectoare de extensie. Magistralele de extensie sunt
amplasate mai departe de procesor i sunt caracterizate de o rat mai mic de transfer i un
numr relativ mare de uniti ce pot fi conectate la ele.
Dup modul de control al transferului de informaii, magistralele pot fi:
- magistrale sincrone. Toate operaiile magistralelor sincrone sunt sincronizate de un
semnal de ceas i orice transfer dureaz un numr ntreg de perioade de ceas, numite cicluri de
magistrala. In cazul acestor magistrale, dac un transfer se termin naintea unui numr ntreg
de cicluri, urmtorul transfer poate ncepe numai dup sfritul ciclului n curs de
desfurare. Aceast situaie conduce la ntrzieri inutile.
- magistrale asincrone. O magistral asincron elimin dezavantajele magistralelor
sincrone. In locul semnalului de ceas se utilizeaz un protocol logic ntre emitor i
receptor (numit handshake). In cadrul acestui protocol are loc un schimb de informaii
ntre unitatea master i unitatea slave care permit corelarea i coordonarea transferului de
date. Fiecare aciune a celor doi participani la transfer este condiionat de o aciune
anterioar i nu de un impuls de ceas.
17. Conectarea unitatilor la magistrale
Conectarea unitatilor componente ale unui sistem de calcul la o magistrala se face prin
intermediul unor circuite separatoare. Acestea permit partajarea magistralei intre diverse unitati,
prin multiplexare in timp, unitatile inactive la un moment dat fiind separate de magistrala. In
cazut defectarii unei unitati magistrala de semnale poate sa ramana functionala datorita circuitelor
separatoare.
Din punct de vedere al rolului pe care il au la transferul pe magistrale, unitatile conectate
la acestea pot fi: unitati receptoare sau unitati emitatoare de semnal. Unitatile emitatoare trebuie
sa aiba circuite de iesire cu trei stari sau cu colector in gol pentru ca, la conectarea in paralel a
iesirilor aceste circuite sa nu se defecteze. Circuitele de iesire cu trei stari trebuie sa fie active
alternativ. Cele mai utilizate circuite sunt circuitele de iesire de tip tri-state, care permit separarea
de magistrala cand unitatile sunt inactive, prin trecerea iesirilor in cea de-a treia stare logica,
starea HZ. Daca la o magistrala sunt conectate mai multe unitati emitatoare, cel mult una trebuie
sa fie activa pe magistrala la un moment dar, celelalte fiind inactive. Toate unitatile emitatoare
pot fi inactive simultan, caz in care magistrala este nefolosita si nu se efectueaza niciun transfer
de informatii. Daca la o magistrala sunt conectate mai multe unitati receptoare, acestea pot fi
active independent la un moment dat. Unitatea emitatoare transmite semnale catre toate unitatile
repectoare, semnale care sunt utilizate doar de unitatile active. Conectarea mai multor unitati care
pot fi succesiv emitatoare si receptoare trebuie realizata prin intermediul unei magistrale
bidirectionale. Toate unitatile pot fi emitatoare sau receptoare, conditia este ca la un moment dat,
[14]
cel mult o unitate sa fie de tip emitator. Dintre unitatile ramase, unele pot fi receptoare, iar restul
pot fi inactive pe durata transferului respectiv, caz in care acestea vor fi separate de magistrala.
In situatia in care la o magistrala sunt conectate prea multe unitati emitatoare, se paote
intampla ca magistrala sa fie tot timpul ocupata si unele unitati sa nu poata fi servite in timp util.
Daca la magistrala se conecteaza prea putine unitati emitatoare exista riscul ca magistrala sa stea
mai mult timp nefolosita. De aceea trebuie determinat un optim intre caracteristicile magistralei si
numarul si tipul unitatilor conectate la aceasta. Daca unitatile ce se doresc a fi interconectate au
viteze de operare mult diferite prin conectarea la aceeasi magistrala, unitatile rapide ar trebui sa
astepte unitatile lente, introducand stari de asteptare, iar transferurile rapide ar putea fi intarziate.
Ocuparea magistralei pentru efectuarea transferurilor lente poate reduce performantele
ssitemului, mai ales daca acestea au avut loc frecvent. Unitatile trebuie mai intai grupate in
functie de vitezele lor de operare si apoi conectate la magistrale cu rate de transfer apropiate de
aceste viteze. Transferurile de informatii intre unitatile conectate la magistrale diferite trebuie sa
se faca intr-un mod transparent pentru cele doua unitati, prin intermediul unor punti (circuite
specializate). Puntile asigura sincronizarea transferurilor intre cele doua magistrale astfel incat
transferurile pe magistrala mai rapida sa nu fie blocate de magistrala mai lenta.
Pentru transferul de la o unitate mai rapida catre una mai lenta, de obicei puntea contine
un latch conectat la magistrala mai rapida, care joaca rol de memorie tampon intre unitati. Astfel
transferul se poate realiza cu vitezele proprii celor doua unitati.
18. Circuite de iesire normale: schema
functionare, conectarea in paralel.
de
principiu,
Scot la iesire doar doua niveluri logice 0L sau 1L, comandand cele 2 tranzistoare de iesire
in antifaza cu un singur semnal de comanda.
[15]
[16]
b) Uc1=1L
Uc2=0L
T1 saturat
T2 blocat
T1 blocat
T2 saturat
de
principiu,
19.
Circu
ite
de
iesire cu
functionare,
[17]
Uc1 = 0L |
Uc2 = 0L | => T2,T2 saturate => U0L = 0L (functioneaza corect)
Uc1 = 1L |
| T2 blocat
Uc2 = 0L | => | T2 saturat => U0L = 0L
Uc1 = 0L |
| T2 saturat
Uc2 = 1L | => | T2 blocat => U0L = 0L
Uc1 = 1L |
Uc2 = 1L | => T2,T2 blocate => U0H = 1L (prin R)
Iesirile circuitelor open collector pot fi conectate in paralel pe magistrale. Pot functiona
simultan asincron, iar rezultatul este conform functiei si cablat.
20. Circuite de iesire cu trei-stari: schema de principiu,
functionare, conectarea in paralel.
Circuitul tri-state perminte obtinerea la iesire a 3 niveluri logice diferite 0L, 1L, HZ.
Circuitul tri-state va avea 2 tranzistoare la iesire, ca si circuitul normal, T 1 si T2 cu
deosebirea ca pentru a obtine la iesire 3 valori logice diferite comanda trebuie facuta cu 2 biti,
cate unul pentru fiecare baza. Astfel va dispare circuitul inversor.
[18]
Uc1 = 0L |
| T1 blocat
Uc2 = 1L | => | T2 saturat => U0 = 0L
Uc1 = 1L |
| T1 saturat
Uc2 = 0L | => | T2 blocat => U0 = 1L
Uc1 = 0L |
Uc2 = 0L | => T1,T2 blocate => U0 = HZ
Uc1 = 1L |
Uc2 = 1L | => T1,T2 saturate
Functionarea normala la iesire se face cu un semnal de comanda
OE
= 1L iesirile se invalideaza, iar U0 = HZ.
Uc
OE
0
0
1
0
1
X
Uc1
Uc2
Uc1 = Uc * OE
0
1
0
1
0
0
Uc2 =
Uc
= Uc * OE
* OE
Conectare in paralel
[19]
Uc
* OE
OE
= 0L. Daca
OE 1=1 L
OE 2=1 L
| =>
OE 1=0 L
OE 2=0 L
| =>
U01=U02=HZ
OE 1=0 L
OE 2=1 L
OE 1=1 L
OE 2=0 L
Circuitele tri-state pot fi conectate in paralel pe aceeasi magistrala, dar cel mult un singur
circuit sa fie activ, iar celelalte in HZ, la un moment dat.
21. Buffer unidirectional tri-state
Bufferul unidirectional tri-state este folosit pentru interfatarea magistralelor
unidirectionale si poate fi inversor sau neinversor. Iesirea este validata cu ajutorul semnalului
OE , activ pe 0L. Daca se doreste refacerea fronturilor semnalelor, buffer-ul poate fi de tip
trigger Schimitt.
[20]
Daca magistralele contin n linii, pentru fiecare linie se utilizeaza un buffer unidirectional,
iar semnalele de validare a iesirilor sunt legate impreuna.
Se obtine astfel un buffer unidirectional pe n biti, care poate fi utilizat: ca circuit de iesire
tri-state pentru o unitate emitatoare de semnale sau ca circuit de separare intre magistrale, cand se
doreste realizarea unei magistrale locale unidirectionale.
Avantajele buffer-ului unidirectional:
* cand este utilizat ca circuit de iesire pentru o unitate emitatoare, pentru conectarea in
paralel, pe aceeasi magistrala, a mai multor circuite cu iesiri tri-state;
* permite separarea magistralelor, realizand la iesire o noua magistrala locala
unidirectionala, care poate avea caracteristici diferite fata de magistrala initiala;
* reface fan-out-ul magistralei locale de la iesire, incarcand intrarea in fan-out numai cu 1.
Principalul dezavantaj il constituie introducerea unui timp de intarziere suplimentar,
datorita intarzierii de propagare a semnalelor de la intrare la iesire.
22. Buffer-ul bidirectional tri-state
Buffer-ul bidirectional tri-state este folosit pentru interfatarea magistralelor bidirectionale,
avand structura realizata cu doua buffere unidirectionale.
[21]
Cele doua buffere unidirectionale trebuie sa fie comandate pe rand pentru evitarea
realizarii buclelor locale. Semnalele de validare a iesirilor sunt conectate prin intermediul unui
inversor. Buffer-ele componente pot fi de tip inversor sau neinversor. Semnalul de validare a
iesirilor stabileste de fapt sensul de transfer, fiind numit SENS. Cand SENS=1, buffer-ul de sus
este comandat deschis, cel de jos are iesire in HZ, iar transferul se face de la A la B. Cand
SENS=0, buffer-ul de jos este comandat deschis, cel de sus are iesirea in HZ, iar transferul se face
de la B la A. Daca magistralele contin n linii, pentru fiecare linie se utilizeaza un buffer
bidirectional, iar semnalele SENS sunt legate impreuna.
CE
activ pe 0L.
Acest semnal permite un consum mic de energie atunci cand buffer-ul nu este folosit. La unele
buffere valoarea 1L a semnalului de validare forteaza circuitele de iesire sa treaca in HZ,
indiferent de valoarea semnalului SENS. Un astfel de buffer are semnale separate pentru cele
doua sensuri de transfer, SENS1 si SENS2.
Ele sunt generate de logica de control interna:
SENS1= CE*SENS
SENS2=CE* SENS
23. Subsistemul
actiune.
de
memorie:
definitie,
obiectiv,
cai
de
locatii de memorie propriu-zise cat si circuitele necesare pentru adresarea locatiilor si controlul
operatiilor de citire si scriere. O parte din aceste circuite se gasesc in unitatea de memorie
respectiva, altele sunt externe, fiind de obicei integrate in controlerul unitatii de memorie.
Obiectivul principal in proiectarea oricarui subsistem de memorie este realizarea unei capacitati
de memorare adecvata sistemului de calcul, cu un nivel acceptabil de performante, la un cost
rezonabil. Trebuie subliniat faptul ca nu intotdeauna obiectivul este acela de a obtine o capacitate
de memorare cat mai mare.
Pentru atingerea acestui obiectiv, exista mai multe cai de actiune:
* folosirea unui numar diferit de unitati de memorie, cu diferite raporturi
cost/performanta, organizate astfel incat sa se obtina un nivel ridicat al performantei, la un cost
mic am cuvantului de informatie memorat. Aceste unitati de memorie formeaza o ierarhie in
subsistemul de memorie.
* dezvoltarea conceptelor de memorie virtuala, pentru a elibera utilizatorul de gestionarea
spatiului de memorie si pentru a realiza programe independente de configuratia fizica a
subsistemului de memorie.
* folosirea mai eficienta a spatiului de memorie disponibil prin dezvoltarea unore metode
de alocare automata a spatiului de memorie.
* realizarea unor legaturi de comunicatie cu subsistemul de memorie, astfel incat unitatile
master conectate la acestea sa poata operacat mai aproape de viteza lor de lucru. Aceasta cale
poate fi realizata prin cresterea numarului de legaturi simultane pentru transferuri, cat si prin
cresterea dimensiunii cuvantului transferat intre memorie si unitatea master.
24. Caracteristici ale unitatilor de memorie: capacitatea de
memorare, timpul si rata de acces
Timpul de acces variaza foarte mult, in functie de tipul unitatilor de memorie. El depinde
de caracteristicile fizice ale mediului de memorare, de tehnologia de fabricatie, de modul de
acces.
[23]
Timpul de revenire (tr=tc-tA) reprezinta timpul minim necesar pentru inactivarea primei
comenzi pana la activarea celei de-a doua. tA este mai restrictiv decat tc, deoarece tA reprezinta un
timp de asteptare pentru unitatea master, dupa lansarea comenzii.
Rata de transfer (rT) este inversa timpului de ciclu si reprezinta cantitatea maxima de
informatie care poate fi transferata la/de la memorie intr-o secunda.
rT = 1/tc [cuv/s]
Costul (cT) include pe langa costul celulelor de memorie propriu-zise si costul circuitelor
de acces la aceste celule. Pentru compararea diverselor unitati de memorie intre ele, se utilizeaza
costul unitar (Cu), ce reprezinta costul de memorare a unui cuvant de informatie. Costul unitar se
determina prin raportarea costului total (CT) la capacitatea de memorare (CM).
CU = CT/CM [cost/cuv]
Cu cat memoria este mai rapida, cu atat costul unitar este mai mare.
Modul de acces arata ordinea in care informatia memorata poate fi accesata. Acesta poate
fi serial sau paralel.
Daca locatiile de memorie pot fi accesate in orice ordine, iar timpul de acces este
independent de locatia accesata, atunci accesul este aleator, iar unitatea de memorie se numeste
memorie cu acces aleator. In general memoriile semiconductoare sunt memorii cu acces aleator.
Daca locatiile de memorie pot fi accesate doar intr-o secventa predeterminata, iar timpul
de acces depinde de locatia accesata, atunci accesul este serial, iar memoria se numeste memorie
cu acces serial.
[24]
[25]
[26]
3. In interiorul circuitului de memorie, adresa primita din exterior este impartita in doua campuri.
Acestea permit selectarea unei linii de celule de memorie, prin intermediul unui decodificator si a
coloanei locatiei dorite, din aria de locatii de memorie, printr-un multiplexor sau demultiplexor.
Daca aria de locatii de memorie este patratam atunci cele doua campuri contin un numar egal de
linii de adresa.
4. Pentru conectarea mai multor circuite de memorie la aceeasi magistrala, acestea trebuie sa
dispuna de circuite de iesire de tip tri-state. Pe aceeasi magistrala, memoriile vor fi active pe rand,
cand una este accesata, celelalte vor avea circuite de iesire trecute in starea HZ. Rezulta ca
memoriile vor avea un semnal specific de validare a iesirilor circuitului de memorie, numit
generic OE . Daca OE=0 , iesirile memoriei sunt activate si informatiile ajung pe
magistrala de date. Suplimentar exista un semnal specific de validare a circuitului, activ pe 0L, ce
permite un consum mic de energie atunci cand memoria nu este folosita, numit CE sau CS
.
5. Memoriile RWM au doua cicluri de memorie diferite, citire si scriere, diferentiate printr-un
semnal activ pe 0L, numit WE . Daca WE=0 , atunci se realizeaza un ciclu de scriere in
memorie, iar pentru WE=1 , ciclul este de citire.
32. Memoria ROM: simbol,
diagrama ciclului de citire.
[29]
schema
bloc,
functionare,
Memoria ROM este o memorie nevolatila cu acces aleator, care poate fi doar citita de o
unitate master. Deoarece ROM are un singur ciclu de memorie, numit ciclu de iesire, magistrala
de date este unidirectionala, de iesire din circuit.
validarea iesirilor memoriei, care permite scoaterea informatiilor pe magistrala de date sau
trecerea iesirilor in HZ si separarea de magistrala. Daca memoria poate fi programata de
utilizator, ea contine si un semnal de intrare pe care se aplica ternsiunea de programare.
Memoria ROM are o structura de circuit logic combinational. Schema bloc, pentru
simplitate, s-a presupus ca are celulele de memorie dispuse intr-o arie patrata de locatii de
memorie, fiecare locatie memorand un cuvant de m biti.
[30]
cuvantului din linie se face prin m multiplexoare cu 2 n/2 intrari si o iesire, care formeaza blocul
MUX.
Diagrama de semnale pentru ciclul de citire din ROM cuprinde cele doua semnale de
comanda si liniile magistralelor de adrese si de date. Liniile de adresa comuta simultan si apoi
raman stabile pe durata intregului ciclu de citire.
Semnalul
CE
OE
memorie, prin adresa transmisa pe magistrala de adrese ADR. Cei doi timpi reprezentati in fugira
sunt timpul de acces si timpul de ciclu la ROM.
Se observa ca datele devin stabile la iesire, dupa un anumite timp de la activarea
semnalelor de comanda. Datorita timpilor de intarziere de propagare prin circuitul de iesire,
liniile de date devin stabile la momente de timp diferite, mai devreme sau mai tarziu, dar nu mai
tarziu de o valoare limita impusa de foaie de catalog prin timpul de acces. Dupa transferul datelor
semnalul de comanda se inactiveaza simultan.
33. Memoria ROM: simbol, celula de memorie, circuit de
iesire, variante de comanda
Memoria ROM este o memorie nevolatila cu acces aleator, care poate fi doar citita de o
unitate master. Deoarece ROM are un singur ciclu de memorie, numit ciclu de iesire, magistrala
de date este unidirectionala, de iesire din circuit.
[31]
validarea iesirilor memoriei, care permite scoaterea informatiilor pe magistrala de date sau
trecerea iesirilor in HZ si separarea pe magistrala. Daca memoria poate fi programata de
utilizator, ea contine si un semnal de intrare pe care se aplica tensiunea de programare.
Celele de memorie difera de la un tip de memorie la altul, fiind realizate cu 1 sau 2
tranzistoare. Ele au o structura simpla in care tranzistoarele joaca rol de comutatoare. Celulele de
memorie pot fi conectate la coloane astfel incat randurile si coloana respectiva sa formeze o
functie cablata din cele 4 functii logice de baza. Structurile SI-NU sunt mai lente decat cele SAUNU, dar permit densitati de integrare mai mari.
Cand comutatoarele sunt inchise prin selectarea randului, ele transfera la iesire o valoare
logica bine definita, care poate fi 0L sau 1L. Daca acestea sunt permanent deschise ele nu
modifica valoarea logica implicita a coloanei. Valorile memorate sunt trecute in dreptul celulelor.
Atunci cand celula este selectata, prin activarea liniei corespunzatoare es transfera la iesire,
valoarea prestabilita, conform functiei locice sau nu modifica iesire si coloana pastreaza valoarea
logica im....
Circuitul de iesire din ROM este cu trei stari si permite scoaterea datelor pe magistrala sau
separarea memoriei de
magistrala de date.
CE
OE
Circuit de iesire
Comanda circuitului de
iesire se face prin
urmatoarea logica de 1
control:
X
HZ
0
1
HZ
0
0
DATA
Cand memoria ROM nu este validata, ea trebuie sa fie separata de magistrala. De aceea
CE=1 forteaza circuitul de iesire sa treaca in HZ, indiferent de valoarea semnalului OE .
Logica de control inactiveaza blocurile interne, ceea ce permite un consum mic de energie. Daca
CE=0 circuitul de iesire este comandat doar de semnalul OE . Cand OE=1 , iesirile
sunt trecute in HZ si memoria este separata de magistrala de date, iar cand
iesire permite scoaterea informatiilor pe magistrala.
[32]
OE=0 , circuitul de
De obicei, semnalul
CE
OE , pentru a permite
curcuitelor interne sa selecteze o data valida si sa o transfere spre iesire, inainte de activarea
circuitului de iesire. Astfel magistrala de date este ocupata doar cat timp se efectueaza transferul
propriu-zi, nu si in timpul selectarii celulei de memorie, timp care poate fi mascat printr-un
transfer suplimentar pe magistrala, intre alte unitati conectate la aceasta.
Comanda memoriei ROM, pentru accesul la magistrala de date, se face intr-o maniera
simplificata, utilizandu-se un singur semnal de comanda din exterior, corespunzator lui OE ,
respectiv CE
CE
0
0
OE
1
0
Exista
memoria ROM
Circuit de iesire
HZ
CE
DATA
1
0
OE
1
0
Circuit
iesire
HZ
DATA
de
doua variante diferite prin care
poate fi comandata din exterior
In primul caz, circuitul de memorie este validat permanent, ceea ce conduce la un consum
mare de energie, in special daca memoria este accesata rar. Totusi timpul de acces poate fi
micsorat fata de comanda cu semnale separate, deoarece in orice moment de timp exista o linie
deja selectata si transferata spre iesire. In plus, magistrala de date este ocupata doar cat timp se
efectueaza transferul propriu-zis.
In cel de-al doilea caz, circuitul de iesire se activeaza simultan cu memoria, la comanda
semnalului CE , moment in care amgistrala de date trebuie sa fie deja libera.
Pe magistrala vor apare initial date invalide deoarece circuitul de iesire este deja activat si
dupa selectarea celulei de memorie, se vor obtine la iesire date valide si stabile.
[33]
In functie de tehnologia de realizare bipolara sau MOS, celulele contin cate o singura
componenta, dioda sau tranzistor bipolar sau tranzistor MOS. Datorita modificarilor frecvente
care au loc in componenta software a unui calculator, aceste memorii sunt folosite din ce in ce
mai putin ca circuite distincte. Domeniul de aplicabilitate se rezuma doar la sistemele de calcul
simple sau integrate in alte circuite digitale.
PROM (Programable ROM) este o memorie care poate fi scrisa o singura data de catre
utilizator, prin aplicarea unui ciclu de programare specific. Celulele de memorie sunt de acelasi
tip cu cele ale MROM. Toate comutatoarele sunt plantate si conectate la coloane, prin fuzibile de
polisiliciu. In procesul de programare unele fuzibile sunt arse printr-un curent mare, datorat unei
tensiuni de programare mai mari decat cea de alimentare. Odata arsa, fuzibila nu mai poate fi
refacuta. In general continutul memoriei PROM este pastrat de utilizator intr-un fisier. Pentru
programare, acesta este transmis unui programator de memorii. Programarea se face la nivel de
cuvant si de aceea pot exista sesiuni multiple de programare a aceleiasi memorii, atat timp cat se
ard noi fuzibile. Memoria PROM neprogramata memoreaza in toate locatiile valoarea 1L. Prin
programare se scriu valori de 0L in locatiile de memorie unde se doreste acest lucru prin arderea
fuzibilelor. O locatie de memorie scrisa cu Ol nu poate fi reprogramata cu 1L insa valorile 0L pot
si programate in mai multe sesiuni.
EPROM (Erasable PROM) este o memorie care poate fi scrisa si stearsa de mai multe ori
(sute-mii de cicluri) de catre utilizator. Scrierea se face intr-un programator de memorii si
necesita o tensiune de programare mai mare decat cea de alimentare, aplicata prin exterior.
Memoria este realizata in tehnologie MOS, iar celulelele contin cate un singur tranzistor n-MOS
cu dublu poarta, una pentru comanda si una izolata. Programarea celulei consta in aplicarea unei
tensiuni mari pe poarta de comanda, care are ca efect atragerea de electroni pe poarta izolata, din
canalul n. Acest fenomen, numit injectie de electroni duce la acumularea de sarcini-electrice
negative pe poarta izolata si la blocarea tranzistorului respectiv. Programarea se mentine un timp
indelungat, cel putin 10 ani, dar este sensibila la radiatiile luminoase. Stergerea se face simultan
[34]
pentru toate locatiile de memorie, prin expunerea memoriei la radiatii ultraviolete. Pentru aceasta,
circuitul de memorie este incapsulat in ceramica si are o fereastra de cuart. Daca nu are fereastra
de cuart, memoria poate fi programata o singura data si se numeste OTPROM (One Time
PROM). Stergerea dureaza aproximativ 20 min.
35. Tipuri constructive de memorii ROM: EEPROM, FLASH
ROM
EEPROM (Electrically EPROM) este o memorie care poate fi stearsa si programata
electric de catre utilizator, folosind o tensiune mai mare decat cea de alimentare, generata intern.
De aceea memoria EEPROM poate fi programata si stearsa in sistemul de calcul in care se
foloseste, fara a fi necesar un programator de memorii, dar e scumpa. Este o memorie realizata in
tehnologie MOS ca si EPROM, dar are o densitate de integrare mai mica deoarece necesita doua
tranzistoare pe celula de memorie. Unul este pentru memorare, fiind de acelasi tip ca la EPROM,
al doilea este de acces.
Atat stergerea cat si programarea se pot face aleator la nivel de cuvant. Numarul ciclurilor
de programare si de stergere este mult mai mare decat la memoria EPROM (zeci-sute de mii de
cicluri). Totusi aceste cicluri sunt foarte lente si de aceea memoria este considerata tot de tip
ROM. Unele memorii indica in exterior printr-un semnal specific, cand se executa un ciclu de
scriere. Programarea este realizata prin intermediul unei porti ezolate, fie prin injectie de
electroni, ca la EPROM, fie prin efect tunel Fowler-Nordheim, in functie de modul de comanda a
tranzistoarelor. Programarea se mentine timp indelungat (zeci-sute de ani). Stergerea se realizeaza
electric, la nivel de cuvant, tot prin efect tunel.
Pentru compatibilitate electrica, logica interna a celor doua tipuri de memorii este astfel
realizata incat celulele sterse sa contina 1L, iar cele programate sa memoreze 0L. Programarea
sau stergerea sunt comandate in functie de modul in care este aplicata tensiunea de programare pe
cele doua tranzistoare ale celulei de memorie. Tensiunea de programare este generata intern si
este mai mare decat tensiunea de alimentare.
FLASH ROM (numita si FLASH) este o memorie careimbina avantajele memoriilor
EPROM si EEPROM, permitand o viteza de stergere mai mare, o densitate mai mare de integrare
si un cost unitar mai mic. Totodata numarul ciclurilor de programare si de stergere este mai mare
decat la EEPROM. Stergerea este mult mai rapida deoarece nu se face individual, la nivel de
cuvant, ci pentru toata memoria odata sau pe blocuri mari de cuvinte, Procesul de stergere
dureaza mai putin de 1s. Celulele de memorie sunt realizate ca la EPROM, cu cate un singur
tranzistor de tip n-MOS cu dublu poarta, ceea ce asigura o densitate mai mare de integrare.
Operatiile de citire sunt realizate la fel ca la EPROM. Fara tensiunea de programare, memoria
FLASH functioneaza ca o memorie EPROM standard. De asemenea, operatiile de programare
sunt similare, realizate la nivel de cuvant, fie prin injectie de electroni in poarta izolata, fie prin
efect tunel Fowler-Nordheim.
Tensiunea de programare este mult mai mare decat cea de alimentare, si poate fi generata
intern sau furnizata din exterior. Algoritmul de programare a fiecarui cuvant este de obicei insotit
de operatia de verificare, iar in cazut in care programarea nu a fost facuta corect, aceasta este
reluata. Mecanismul de stergere este inca diferit fata de celelalte memorii, realizandu-se prin
efect tunel Fowler-Nordheim. Acest proces are loc in sens invers programarii. Algoritmul de
[35]
stergere presupune mai intai programarea integrala a blocului respectiv cu 0L si este de asemenea
insotit de operatia de verificare. Datorita organizarii pe blocuri de informatii, memoria FLASH
permite integrarea unor mecanisme hardware de protectie a informatiilor care restrictioneaza
accesul la anumite blocuri, in operatiile de programare sau stergere.
Deoarece circuitul de iesire este activ doar in ciclurile de citire din memorie, functia
semnalului OE poate fi inglobata in celelalte doua semnale de comanda, in special la
memoriile cu magistrale separate de date, de intrare si de iesire.
Memoria SRAM poate fi:
* SRAM asincrona: nu necesita semnal de ceas pentru sincronizarea cu unitatea
master. Memoriile asincrone sunt mai lente decat cele sincrone, dar sunt mai ieftine si au consum
de energie mic.
* SRAM sincrona: necesita un semnal de ceas pentru validarea semnalelor de
control. Ceasul primit din exterior permite operarea memoriei, sincron cu unitatea master.
Memoriile sincrone sunt foarte rapide, cu timpi de acces sub 10ns, pot functiona la tensiuni de
alimentare mici, dar sunt scumpe. Pot fi: PBS (Pipelined Burst Synchronous), FTS (Floro
Through Synchronous), ZBT (Zero Bus Turnaround) SRAM.
Celulele de memorie SRAM sunt realizate cu circuite basculante bistabile, cate unul
pentru fiecare bit de informatie memorat. Pentru a face diferenta intre operatiile de citire si
scriere celula are doua linii de bit.
[36]
Memoria SRAM are o densitate de integrare mica deorece foloseste un numar relativ
mare de tranzistoare pentru fiecare locatie de memorie. Particularitatile constructive ale celulelor
de memorie genereaza dezavantaje: densitate de integrare mica, consum energetic mare, pret
unitar mare pe cuvantul de informatie memorat.
37. Memorii SRAM: schema
diagrame de semnale
[37]
bloc,
ciclurile
de
memorie,
Celulele de memorie sunt dispuse intr-o arie patrata de locatii de memorie, fiecare locatie
memorand un cuvant de m biti. Semnalele de comanda actioneaza prin intermediul logicii de
control. Magistrala de date este bidirectionala. Daca memoria SRAM este organizata la nivel de
bit magistrala de date este plementata pe linii separate de intrare si de iesire.
Locatiile de memorie sunt accesate prin intermediul adreselor, trimise pe magistrala de
adrese intr-o maniera similara cu accesarea locatiilor la memoria ROM. Adresa primita din
exterior este impartita in doua campuri, de cate n/2 linii de adresa. Primul camp permite
selectarea unei linii de celule de memorie din cele 2 n/2 linii, prin intermediul unui decodificator.
Al doilea camp selecteaza coloana locatiei dorite, din cele 2 n/2 coloane de m biti ale liniei de
locatii de memorie selectata de DCD.
Circuitul MUX/DMUX functioneaza ca multiplexor in ciclurile de citire si ca
demultiplexor in ciclurile de scriere. In operatiile de citire linia selectata este transmisa la intrarea
MUX, prin intermediul amplificatoarelor de sens, iar apoi coloana selectata este transmisa pe
magistrala de date, prin circuitul de iesire. In operatiile de scriere, cuvantul din exterior este
transmis prin DMUX, pe coloana selectata de al doilea camp de adrese. Cuvantul este inscris in
celula de memorie din linia selectata cu ajutorul smplificatoarelor de scriere, care pozitioneaza
liniile de bit ale celulei.
Diagrama de semnale pentru ciclul de citire din memoria SRAM asincrona este similar cu
cea a memoriei ROM.
La memoriile asincrone o noua operatie poate incepe dupa timpul de ciclu. La memoriile
sincrone, adresele sunt memorate intern, ceea ce permite ca operatiile de acelasi tip, citire sau
[38]
scriere, la adrese succesive sa se faca prin incrementarea interna a adresei, fiind astfel mai rapide.
Diagrama de semnale pentru ciclul de scriere in memoria SRAM asincrona:
Se observa ca magistrala de date este ocupata mai mult timp decat in cazul anterior.
Semnalul WE nu trebuie activat dupa semnalul CE , deoarece, in timpul scrierii, s-ar activa
circuitul de iesire din SRAM.
38. Memorii DRAM: caracterizare, simbol, functionarea celulei
de memorie 3T DRAM
Memoria DRAM este o memorie volatila cu acces aleator, care memoreaza informatia in
mod dinamic. Este realizata in tehnologie CMOS, cu consum foarte mic de energie. Datorita
particularitatilor constructive ale celulelor de memorie, informatia 0L este memorata stabil, dar
informatia 1L se pierde in timp si necesita improspatarea periodica a memoriei, de unde si
denumirea acesteia. Memoria DRAM este mult mai lenta decat memoria SRAM, din cauza
mecanismului specific de memorare a informatiilor. Timpul de acces la DRAM este de 2-10 ori
mai mare decat de SRAM si variaza in functie de tipul accesului la memorie. In acces aleator,
timpul de acces este mare, dar scade foarte mult daca se restrictioneaza accesul in mod pagina si
poate ajunge doar de 2 ori mai mare decat al memoriei SRAM.
[39]
Celula de memorie este mult mai mica decat la memoria SRAM ceea ce permite
realizarea unor densitati mari de integrare. Circuitele de memorie DRAM au capacitati de
memorare mari si implicit un numar mare de linii de adresa. Pentru micsorarea numarului de
legaturi cu exteriorul si implicit al costului unitar, memoria DRAM se conecteaza in exterior, pe
magistrala de adrese, doar cu jumatate din liniile de adresa. Cele n linii ale magistralei de adrese
necesare accesarii memoriei sunt impartite in doua mappuri de cate n/2 linii, numite adresa de
rand, respectiv adresa de coloana. Ele sunt introduse in memoria DRAM in doi pasi succesivi,
fiind memorate in registre interne separate, cu ajutorul a doua semnale de comanda. Acestea sunt
active pe 0L si sunt numite dupa adresa pe care o memoreaza: RAS (Row Adress Strobe) si
CAS (Column Address Strobe).
O particularitate a circuitelor de memorie DRAM, il constituie faptul ca numarul liniilor
de adresa este totdeauna par pentru a permite impartirea adresei in doua campuri egale. Rezulta
ca la circuitele de memorie DRAM, capacitatile de memorie cresc exponential cu baza 4. Unele
memorii DRAM dispun de semnal de validare a iesirilor ( OE ), ceea ce permite o conectare
mai judicioasa la magistrala de date. Fiecare bit de informatie este memorat prin incarcarea sau
descarcarea unui condensator. Cand condensatorul este incarcat, spunem ca se memoreaza
valoarea 1L, iar cand acesta este descarcat, valoarea memorata de 0L. Mecanismul de memorare
nu presupune consum de curent de la sursa de alimentare.
Celula 3T DRAM contine doar 3 tranzistoare din celula SRAM. Mecanismele de citire si
scriere sunt usor de implementat, insa celula contine multe conductoare, deoarece necesita linii
separate de bit si pentru selectia randului, in citire sau scriere.
deschise, iar T3 este izolat. Daca pe poarta lui T3 exista un potential de 0V condensatorul este
descarcat si isi pastreaza starea un timp nedefinit. Daca este memorata valoarea 1L, atunci
condensatorul este incurcat la un anumit potential care tinde sa scada spre zero. Celula de
memorie este accesata prin selectarea intregului rand de celule de memorie, activandu-se linia de
selectie a randului respectiv, corespunzatoare operatiei de citire sau de scriere. In operatiile de
citire comutatorul T1 se inchide si permite scoaterea pe linia de bit de citire, a valorii logice
corespunzatoare starii lui T3: daca este memorat 1L, T3 se inchide si trece linia de bit de citire in
0L, iar daca este memorat 0L, T3 este blocat si linia de bit pastreaza valoarea implicita 1L.
Valoarea liniei de bit este transmisa amplificatorului de sens, care o inverseaza si genereaza
valoarea logica memorata. Operatia de citire este nedistructiva. In operatiile de scriere,
amplificatorul de scriere pozitioneaza linia de bit de scriere in conformitate cu valoarea logica ce
se doreste a fi memorata. Prin inchiderea lui T 2, potentialul de pe linia de bit de scriere este
transmis pe poarta lui T3 incarcand sau descarcand capacitatea parazita. Apoi comutatorul T2 se
deschide.
39. Memorii DRAM: caracterizare, functionarea celulei de
memorie 1T DRAM, simbol
Celula 1T DRAM contine doar un singur tranzistor, cu rol de comutator pentru accesul la
celula si un condensator de stocare a sarcinilor, ca element de memorare. Dimensiunea celulei
este redusa la maxim, avand numar minim de tranzistoare si conductoare, dar mecanismele de
citire si scriere sunt mai complexe. Densitatea de integrare este foarte mare, ceea ce permite
realizarea unor circuite de memorie DRAm ieftine si cu capacitati de memorare mari. Celula 1T
DRAM este mai mare decat celula memoriei ROM, doarece necesita in pus un condensator. De
aceea densitatea de integrare este mai mica decat a memoriei ROM.
Daca celula nu este accesata, T1 este blocat si se comporta ca un comutator deschis.
Condensatorul CS este izolat, iar tensiunea dintre armaturi arata valoarea logica memorata. Cand
celula memoreaza 0L, condensatorul CS este descarcat si isi pastreaza starea un timp nedefinit.
Cand este memorata valoarea 1L, C S este incarcat la o anumita tensiune care tinde sa scada spre
zero. Celula este accesata prin activarea liniei de selectie a
randului respectiv, care duce la inchiderea tuturor comutatoarelor
T1 si la conectarea condensatoarelor CS de pe linia selectata, la
liniile de bit corespunzatoare. Operatiile de citire si scriere au loc
prin transferul de sarcini electrice, intre linia de bit si
condensatorul celulei.
Operatia de scriere intr-o celula 1T DRAM este mai
simpla decat citirea, ciind similara cu cea de la celula 3T DRAM.
Amplificatorul de scriere pozitioneaza tensiunea pe linia de bit in
conformitate cu valoarea logica, care se doreste a fi memorata.
Prin activarea liniei de selectii a randului, comutatorul T1 se
inchide si tensiunea de pe linia de bit forteaza incarcarea sau
descarcarea condensatorului CS. Apoi comutatorul T1 se deschide
si izoleaza celula. In operatiile de citire, prin inchiderea lui T1 se
realizeaza un transfer de sarcini electrice intre condensatorul celulei si capacitatea parazita a liniei
[41]
de bit. Capacitatea CB este preincarcata la jumatate din tensiunea de alimentare, fiind de 10-100
ori mai mare decat capacitatea condensatorului CS. Transferul de sarcini electrice genereaza o
mica variatie a tensiunii pe linia de bit, detectata si amplificata de amplificatorul de sens.
Daca celula memoreaza 1L, tensiunea pe CS este mai mare decat pe CB si va apare un
transfer de sarcini de la CS la CB, care tinde sa creasca tensiunea pe linia de bit peste valoarea
VDD/2. Amplificatorul de sens sesizeaza aceasta variatie si o amplifica generand la iesire 1L.
Daca este memorata valoarea 0L, tensiunea pe CS este mai mica decat pe CB si va apare un
transfer de sarcini de la CB la CS. Aceasta tinde sa scada linia de bit, sub valoarea V DD/2, iar
amplificatorul de sens genereaza la iesire 0L.
Spre deosebire de celula 3T DRAM, citirea este distructiva in acest caz, deoarece
transferul de sarcini duce la modificarea tensiunii condensatorului celulei. De aceea celula trebuie
improspatata dupa fiecare citire. Amplificatoarele de scriere comanda rescrierea tuturor celulelor
de memorie de pe randul selectat, cu valorile generate de amplificatoarele de sens.
40. Memorii DRAM: schema bloc, functionare, ciclurile de
citire si scriere.
Celulele de memorie sunt dispuse intr-o arie patrata sau dreptunghiulara de locatii de
memorie, fiecare locatie memorand un cuvant de m biti. Semnalele de comanda actioneaza prin
intermediul logicii de control. Eventual, memoria DRAM poate avea circuit intern de
improspatare, care presupune un numar de adrese de rand si un ceas de timp real.
Locatiile de memorie sunt accesate prin intermediul adreselor primite din exterior pe
magistrala de adrese, in doi pasi succesivi. Mai intai apar adresele de rand, care sunt memorate in
latch-ul adreselor de rand, cu ajutorul semnalului de comanda RAS , activ pe 0L. Ele permit
selectarea unei linii de celule de memorie, prin intermediul decodificatorului. Ulterior sunt
trimise adresele de coloana, care sunt memorate in latch-ul adreselor de coloana cu ajutorul
semnalului de comanda CAS , activ pe 0L. Aceste adrese selecteaza coloana locatiei dorite
pentru efectuarea transferului, din linia selectata, prin intermediul circuitului MUX/DMUX.
Circuitul MUX/DMUX functioneaza ca multiplexor in ciclurile de citire si ca
demultiplexor in ciclurile de scriere. In operatiile de citire, intregul continut al liniei selectate este
transmis la intrarea MUX, prin intermediul amplificatoarelor de sens. Apoi coloana selectata de
multiplexor este transmisa pe magistrala de date, prin circuitul de iesire. In operatiile de scriere
cuvantul din exterior este transmis prin DMUX, pe coloanma selectata de adresa de coloana.
Cuvantul este inscris in celula de memorie din linia selectata, cu ajutorul amplificatoarelor de
scriere. Circuitul I/O este similar cu cel de la memoria SRAM. Magistrala de date este
bidirectionala: daca memoria DRAM este organizata la nivel de bit, magistrala de date este
implementata pe linii separate, de intrare si de iesire.
Diagrama de semnale pentru ciclul de citire din memoria DRAM, in acces aleator contine
semnalele de comanda si cele doua magistrale de adrese si date. Pentru ca memorarea adreselor
sa fie corecta, adresele de rand si de coloana trebuie sa fie stabile un intervat de timp inainte si
dupa momentul activarii semnalelor de comanda corespunzatoare, RAS si CAS . Acestea,
dupa activare, trebuie sa ramana active pana la sfarsitul ciclului, deoarece, prin logica de control,
ele au si rol de validare a circuitului de memorie si a iesirilor.
[42]
Datele se obtin la iesire dupa tA, care este putin mai mare decat tRAC. In general tRAC este
timpul de referinta pentru accesele aleatoare la DRAM. Timpul de ciclu este aproape dublu,
deoarece in timpul de revenire se realizeaza improspatarea celulelor de memorie ale liniei
selectate.
Diagrama de semnale pentru ciclul de scriere in DRAM, in acces aleator:
[43]
Deoarece memoria DRAM este vazuta ca unitate slave, improspatarea trebuie realizata de
catre o unitate master, care poate fi externa memoriei sau interna. Aceasta nu trebuie sa fie
unitatea centrala. In mod normal, un ciclu de improspatare nu poate fi intrerupt daca este
controlat de o unitate master externa. Insa pentru memoriile DRAm cu circuit intern de
improspatare, acest ciclu poate fi intrerupr, pentru a permite accesul din exterior, la celulele de
memorie.
In functie de tipul memoriei DRAM, ciclurile de improspatare pot si realizate in trei
moduri:
* ROR (Ras Only Refresh) este o metoda de improspatare din exterior prin care se
transmit memoriei adresa de rand si semnalul RAS , fara a se activa semnalul CAS .
Unitatea master externa este anuntata poeriodic sa faca refresh, de catre un ceas de timp real care
este programat software de catre SO.
* CBR (CAS Before RAS) este tot o metoda de improspatare din exterior prin care se
transmit semnalele CAS si RAS , activate in aceasta ordine. Memoria dispune de un
numarator de adrese intern, pentru indicarea liniei ce trebuie improspatata, fara a fi nevoie de
transmiterea adresei din exterior. De asemenea, perioada de repetitie a ciclurilor de refresh este
determinata de un ceas de timp real extern.
* Auto-improspatare cu ajutorul circuitelor interne memoriei DRAM. In interior, memoria
contine un numarator de adrese de rand, un ceas de timp real si logica de control pentru generarea
semnalelor CAS si RAS , conform metodei CBR.
Ciclul de improspatare prin metoda ROR se realizeaza ca un ciclu de citire incomplet si
nu necesita introducerea unor semnale de comanda suplimentare.
Deoarece timpul total de improspatare depinde de numarul de linii din aria de celule de
memorie, aceasta va avea o organizare dreptunghiulara cu mai putine linii si mai multe coloane.
Daca memorie DRAM este dispusa pe mai multe module si improspatarea se face din exterior,
atunci ciclul de refresh poate fi initiat pentru toate modulele simultan.
[44]
Modulele de memorie pot avea capacitati de memorare diferite si pot memora cuvinte de
dimensiuni diferite.
Cuvintul de memorie reprezinta cea mai mica unitate de informatie, care poate fi adresata
individual in memorie, prin magistrala de adrese, de catre o unitate master. Nu este necesar ca
dimensiunea cuvantului de memorie sa fie egala cu dimensiunea registrelor UC. Cuvantul de
memorie se alege de dimensiunea celui mai mic operand pe care UC il poate transfera cu MP.
Modulele de memorie sunt astfel organizate incat pot transfera mai multe cuvinte de memorie in
paralel, intr-un singur ciclu de memorie. Mecanismul de adresare al microprocesorului permite
selectarea si transferul unor operanzi mai mari, pe mai multe cuvinte de memorie simultan, aflate
la adrese de memorie succesive.
Operanzii formati din mai multi octeti trebuie sa fie memorati in MP, incepand de la
anumite adrese, pentru a se putea face transferul tuturor octetilor simultan, intr-un singur ciclu de
memorie. In acest caz, operanzii sunt aliniati in memorie. Daca operanzii au octetii memorati la
adrese succesive, dar incepand de la alte adrese, transferul este mai lent si dureaza doua cicluri de
memorie, iar operanzii se numesc nealiniati in memorie.
In timpul executarii programelor, pentru ca transferurile cu MP sa fie cat mai rapide, este
important ca blocurile de informatii din MP sa fie aliniate. UC poate transfera cu MP un numai
maxim de octeti simultan, in fiecare ciclu de memorie. La scrierea programelor trebuie rezolvata
problema alinierii informatiilor in memorie.
44. Functia de adresare: definitie, proprietati
Pe cele n linii de adresa ale magistralei de adrese pot fi transmise 2 n combinatii binare
diferite, care pot selecta la un moment dat 2n locatii de memorie, diferite sau nu.
Spatiul adreselor fizice reprezinta multimea adreselor fizice care pot fi trimise pe
magistrala de adrese.
Spatiul locatiilor de memorie reprezinta multimea locatiilor de memorie existente in
sistem, care pot fi adresate prin magistrala de adrese si care apartin diferitelor circuite integrate
de memorie. La proiectarea sistemului de calcul se pun in corespondenta cele doua multimi, P si
M, asignandu-se fiecare locatii din M cel putin o adresa fizica din P.
Astfel se implementeaza hardware, prin intermediul circuitului de selectie a modulelor o
functie fad numita functie de adresare de forma fad: P ->M.
Expresia functiei de adresare poate fi modificata software, sub controlul SO.
Proprietati:
1. O adresa din P trebuie sa selecteze o singura locatie de memorie din M la un
moment dat. Insa utilizand un mecanism de comutare a blocurilor de
memorie, acceasi adresa din P poate selectam la momente de timp diferite
locatii de memorie diferite.
2. fad trebuie sa fie surjectiva:
[46]
m M , a P , a . i . f ad ( a )=m
3. fad poate fi sau nu injectiva: doua adrese diferite din P pot selecta sau nu o
aceeasi locatie de memorie din M.
45. Harta de memorie: definire, exemple
Harta de memorie permite specificarea functiei de adresare, totala sau partiala, intr-un
mod grafic condensat. Harta de memorie este o reprezentare dreptunghiulara care cuprinde pe
latura verticala, spatiu liniar al adreselor fizice, iar pe latura orizontala se simbolizeaza lungimea
cuvantului memorat. Adresele sunt trecute in ordine crescatoare de la baza spre varf si sunt
exprimate in valoari hexazecimale. Numarul cifrelor hexa depinde de numarul liniilor de adresa
pe care se face adresarea memoriei respective.
Ex.
1. dim MP = 1Mo = 220o => 20 linii de adresa => AF cu 5 cifre hexa
2. dim MP = 128Mo = s27o => 27 linii de adresa
dim I = dim II = dim III = dim IV = 32Mo = 225o => 25 linii de adresa
=> 2 linii de selectie modul
46. Marimea dimensiunii MP peste limita de adresare a UC
comutarea blocurilor de memorie
Marimea dimensiunii MP peste limita de adresare a UC se poate face folosind
mecanismul de comutare a blocurilor de memorie, intr-un acelasi spatiu de adrese fizice din P.
Acest mecanism presupune 3 pasi:
1. In P se defineste o zona continua de adrese, de dimensiune fixa, notata Pc, care va fi
folosita pentru comutarea blocurilor de memorie. Spatiul de adrese ramas se va nota
cu P.
2. In M se separa o zona de locatii de memorie M : dim P = dim M
Spatiul locatiilor de memorie ramas se noteaza M.
3. Zona M se imparte in k blocuri de dimensiuni egale cu cona Pc, notate B1....Bk.
La comutarea blocurilor nu se realizeaza niciun transfer de informatii intre locatiile de
memorie.
Procesorul elementar (PE) este un sistem digital de ordinul 3 si se obtine prin conectarea
in bucla de reactie a doua automate finite particulare:
a) Un automat de control cu memorie ROM, numit controler cu ROM, prescurtat
CROM
b) O unitate aritmetico-logica cu registre pentru prelucrarea datelor de tip RALU
[49]
dimensiunea
[50]
in
functie
de
Magistrala de adrese, ADR, este unidirectionala, de linii de iesire, prin care uP indica
adresa unitatii slave cu care lucreaza la un moment dat.
n linii de adresa => dim P=2n
Magistrala de date, DATA, este bidirectionala si pe ea uP transfera informatii cu
exteriorul. Pe magistrala de date se transfera atat instructiuni cat si date. Dimensiunea magistralei
de date m indica dimensiunea maxima a cuvintelor pe care le transfera uP. Magistrala de comenzi
[51]
si stari este bidirectionala pe linii separate, prin care uP dialogheaza cu exteriorul sau.
Microprocesorul mai contine o serie de pini necesari functionarii normale: pini de alimentare,
pini pentru semnalul de ceas, semnalul de REST.
57. Moduri de dialog ale unui microprocesor cu exteriorul
1. Dialogul master-slave este un dialog initiat de catre uP prin generarea catre unitatea slave a unei
comenzi pentru efectuarea unui transfer pe magistrala de date. Comenzile identifica tipul de
unitate slave, precum si sensul de transfer. Simultan pe magistrala de adrese uP trimite adresa
unitatii pe care doreste sa o selecteze. Daca unitatea slave este suficient de rapida pentru a incheia
transferul in timpul unui ciclu masina al uP controlerul unitatii activeaza un semnal de raspuns,
READY, indicand ca este gata efectuarea transferului, iar ciclul masina se incheie. Daca unitatea
este mai lenta, controlerul ei va inactiva semnalul READY, indicand uP-ului ca ciclul masina
trebuie prelungit. uP prelungeste ciclul masina cu un numar intreg de stari de ceas si testeaza in
permanenta semnalul READY. Cand semnalul devine activ, ciclul masina se incheie.
2. Dialogul slave-master este un dialog initiat de o unitate slave de tip port I/O, prin generarea unei
cereri de tratare a ei de catre uP. Daca accepta aceasta cerere, el isi va intrerupe temporar executia
programului, initiind o procedura specifica pentru tratarea cererii respective. Deoarece proceduta
este initiata prin intreruperea programului, aceasta se numeste cerere de intrerupere. Cand uP
accepta aceasta intrerupere, el va raspunde cu un semnal specific de asteptare a cererii de
intrerupere, care va ajunge simultan la toate unitatile slave. Unitatea slave care a generat cererea
de intrerupere are prioritatea cea mai mare, va furniza uP-ului pe magistrala de date o informatie,
necesara initierii procedurii de testare a intreruperii.
3. Dialogul master-master are loc atunci cand in sistem exista mai multe unitati master care
partajeaza resurse comune. Dialogul este initiat de o alta unitate master, care activeaza o cerere de
magistrala catre uP, semnificand faptul ca doreste sa ocupe magistralele sistemului pentru a lucra
cu resursele acestuia. Aceasta cerere nu poate fi refuzata de catre uP, dar poate fi intarziata pana
la terminarea instructiunii curente, daca aceasta este marcata de catre utilizator ca o instructiune
ce nu poate fi intrerupta. Cand uP accepta cererea isi trece propriile magistrale in HZ si raspunde
cu semnal specific de acceptare a cererii de magistrale. Unitatea master apelanta, dupa ce a primit
acceptul, ocupa magistrala sistemului tinand activa cererea de magistrala pana la terminarea
lucrului cu unitatea slave dorita. Apoi isi trece propriile magistrale in HZ si inactiveaza cererea de
magistrala, moment in care uP ocupa din nou magistralele sistemului.
[52]