Você está na página 1de 64

ASC Dan Olaru

Lecii ASC
Scurt istoric
Trebuie remarcat deosebirea ntre cei doi termeni, care n limba romn sunt cunoscui ca maina
de calcul i sistem de calcul echivalent cu calculator programabil sau mai simplu, calculator.
Pentru acestea, n limba englez se utilizeaz termenii de calculator, respectiv computer (cu
pronunia englez). Prima noiune reprezint o main de socotit, sau calculat, pentru tipuri de
operaii stabilite dinainte, aa cum este un calculator de buzunar, ne-programabil. Cea de-a doua
noiune reprezint o main secvenial, a crei funcionare este guvernat de un program format
din instruciuni aritmetice sau logice, eventual chiar cu caracter simbolic sau cu elemente de
inteligen artificial.
Primele ncercri teoretice de a concepe o main de calcul sunt datorate lui Leibnitz i Pascal.
Primul proiect nerealizat, dar care a evideniat bazele structurii unui calculator i aparine lui
Charles Babbage, nc din secolul IX (1830). Mult mai trziu, n 1937 Howard Aiken de la
Universitatea Harvard construiete primul sistem de calcul (deci programabil) denumit
Calculator cu secven de comand automat, realizarea avnd mai mult un caracter
demonstrativ.
n apropierea celui de-al doilea rzboi mondial, necesitile calcul i de prelucrare a informaiei
sunt accelerate de dezvoltarea tehnologiei i chiar de imperativele apropierii rzboiului. Astfel, n
acest scop, n SUA au fost create colective specializate, i finanate care au pus la punct ntre
1939 i 1944 primul calculator, n sensul n care este acceptat astzi, denumit Mark1. Acesta era
realizat cu elemente de comutaie electro-mecanice (comutatoare cu relee) i avea performane
foarte reduse. n perioada imediat urmtoare a fost realizat primul calculator electronic denumit
ENIAC, cu titulatura englez: Electronic Numerical Integrator and Comparator, determinat de
funciile pentru care era destinat. Acesta coninea 18000 de tuburi cu vid electronice, realiza 5000
de adunri pe secund, avea o memorie de 20 de numere cu reprezentare zecimal i era
programat cu ajutorul a 6000 de comutatoare mecanice.
Dezvoltarea ulterioar a calculatoarelor a fost marcat de caracterul de universalitate dat de
structura conceput de matematicianul John von Neumann, care s-a implicat i n proiectele
viitoare. Aceasta permitea dezvoltarea unei funcionaliti flexibile, destinat prelucrrii
informaiei (datelor) ntr-o manier generalizat i universal, pstrndu-i actualitatea pn n
prezent. Astfel, un sistem de calcul trebuie s conin uniti funcionale care s asigure
urmtoarele funcii: 1) preluarea datelor de intrare (dispozitive de intrare); 2) memorarea datelor
(memoria); 3) prelucrarea datelor i calculul rezultatelor (unitatea de calcul aritmetic i logic); 4)
transmisia la ieire a rezultatelor (dispozitive de ieire); 5) comanda ntregului sistem (unitatea de
comand). Aceste concepte au permis realizarea calculatorului EDVAC i apoi, n anul 1951,
prima form comercial de calculator, sub denumirea de UNIVAC (Universal Automatic
Computer).
n istoria claculatoarelor acestea au cptat diferite forme i moduri de realizare, n funcie de
modurile de lucru i mijloacele tehnice disponibile la momentul respectiv. Astfel, perioada anilor
1960-1970 a fost dominat de calculatoarele denumite main frame realizate cu tranzistori sau
circuite integrate simple a cror configuraie coninea mai multe dulapuri i ocupa o sal rcit cu
instalaii de climatizare. Pe msura miniaturizrii dispozitivelor electronice au fost dezvoltate
apoi minisistemele (1970-1980) cu o configuraie concentrat ntr-unul sau mai multe dulapuri de
format mic, pn la calculatoarele personale, staiile de lucru sau serverele din prezent.

ASC Dan Olaru

Evoluia calculatoarelor poate fi clasificat, mai ales urmrind considerente tehnologice, att
hardware ct i software n mai multe generaii de calculatoare, punctnd anumite caracteristici
pentru: hardware (HD), software (SW), memorie (MM) i viteza de procesare (VP):
Generaia I (1946-1956): HW relee i tuburi electronice; SW program cablat (forma
neintegrat a memoriilor ROM), programare n cod main i limbaj de asamblare; MM 2 KB
(kilo-bytes sau kilo-octei); VP 10000 operaii/sec.
Generaia II (1957-1963): HW tranzistori, memorii cu innele de ferit, cablaj imprimat; SW
programare n limbaj ALGOL, FORTRAN, etc.; MM 32KB; VP 200000 op/sec.
Generaia III (1964-1981): HW circuite integrate, cablaj multistrat, discuri magnetice mai
performante, microprocesoare (P) simple; SW programare n limbaje de nivel foarte nalt,
programare structurat, baze de date, prelucrri grafice; MM 1-2 MB; VP 5M Instr/sec.
Generaia IV (1982-1989): HW circuite VLSI, sisteme distribuite, P pe 16/32 bii; SW
pachete de programe (medii de programare), sisteme expert, programe orientate pe obiecte, baze
relaionale; MM 8-10MB; VP 30 M Instr/sec.
Generaia V (n dezvoltare): HW circuite ULSI (ultra large scale integration), eventual
configuraii 3D; arhitecturi paralele, reele neorale; SW limbaje concurente dezvoltate,
programare funcional, programare simbolic, baze de cunotine, sisteme expert evoluate; MM
sute, chiar mii MB; VP 1G, 1T instr/sec.
Puterea de calcul, caracteristic unui anumit sistem este determinat de mai muli factori, printre
care pot fi enumerai:
- frecvena maxim de lucru a dispozitivelor de comutaie i a cilor de date (MHz GHz);
- numrul de bii ai unui cuvnt (32 64);
- arhitectura unitii centrale, a cilor de comunicaie i a dispozitivelor periferice;
- volumul de memorie i viteza de acces a acesteia (MB GB);
- performanele de calcul cu virgul flotant (Mflop).
1. Elemente de baz - operatorul binar
Sistemul de calcul (calculator/ordinator) este destinat s prelucreze informaie. n acceptiunea
actual acesta este o main programabil. Terminologia main este larg utilizat, dei n acest
caz aceasta este constituit, n principal de circuite electronice. Acestea lucreaz, de regul, cu
nivele de tensiune, aflate n starea sus pentru nivelul de tensiune superior sau n starea jos
pentru nivelul de tensiune inferior.
Funcionarea se bazeaz pe parcurgerea unei mulimi de stri (main secvenial/main
algoritmic de stri - algoritmic state machine). Trecerea dintr-o stare n alta se face sub
controlul programului, reinut n memorie. Acesta, la rndul lui, este definit de strile
dispozitivelor de memorare.
Deci, calculatorul conine o parte fizic (hardware) alctuit din dispozitive electronice sau
electromecanice i o parte constituit din programe (software). Este important de reinut c
programul coordoneaz sau comand funcionarea prii fizice i, realizarea acelorai funcii se
poate face cu structuri diferite hardware sau software, cu grade de complexitate diferite, care pot
fi concentrate, mai mult, fie ntr-o zon, fie n cealalt.

ASC Dan Olaru

nelegerea noiunii de informaie este foarte important. Din punct de vedre fizic aceasta este
reprezentat de strile mainii, deci simbolic poate fi reprezintat ca o mulime de cifre binare.
Acesta, la rndul ei poate fi structurat n cuvinte (grupuri de cifre binare). Cu ajutorul acestora
se pot reprezenta (codifica) simboluri, texte, numere, grafice, programe, funcii, etc. Sistemul de
calcul poate realiza funcii diferite, referitoare la memorarea, transmisia i prelucrarea
informaiei. Aceasta poate aparine, de exemplu, domeniului ingineresc (referitoare la calcule,
proiectare, etc.) sau domeniului informatic (referitoare la prelucrarea fielor, nregistrrilor de
date, etc.).
Dac informaia este reprezentat binar, deci cu cifre binare (bit, prescurtare de la binary digit),
prelucrarea acesteia se bazeaz pe operatori binari (dac au dou variabile de intrare), sau unari
(n cazul unei singure variabile). Cifrele binare pot reprezenta numere (cte obiecte are o
mulime), dar i valoarea de adevr a unei propoziii logice. De exemplu, se poate spune c dac
o afirmaie este adevrat, are valoarea logic 1, iar dac este fals are valoarea logic 0. De
aceea aceti operatori se mai numesc operatori logici, dei ei pot realiza i funcii aritmetice cu
numere sau cifre reprezentate binar.
Atunci cnd n+1 cifre binare reprezint un numr (deci n baza 2), scris sub forma:
cncn-1c3c2c0, valoarea zecimal a acestuia poate fi calculat astfel:
Val. zecimal = c020+c121+c222+c323++cn2n

(1)

Din punct de vedere abstract (simbolic), tipurile i caracteristicile operatorilor binari sunt descrise
de Algebra lui Boole. Printre operatorii binari (logici) simpli pot fi enumerai: non, i, sau, i-nu,
sau-nu, etc. Datorit corespondenei cu teoria mulimilor, operatorul i poate fi simbolizat cu ,
iar operatorul sau poate fi simbolizat cu . Simbolul a fost ales datorit similitudinii cu
noiunea de intersecie de mulimi cnd elementul rezultant aparine i unei mulimi i
celeilalte. Simbolul a fost ales datorit similitudinii cu noiunea de reuniune de mulimi
cnd elementul rezultant aparine sau unei mulimi sau celeilalte.
Aa cum s-a spus aceti operatori pot avea o semnificaie numeric sau logic. Astfel, avem
urmtoarea coresponden:
Operator
funcie logic
funcie aritmetic
---------------------------------------------------------------------------------------------non
negare logic
schimbarea bitului de semn
i
=1 dac ambele intrri =1
nmulire aritmetic binar
altfel =0
sau
=1 dac cel puin o intrare =1
adunare aritmetic binar
altfel =0
Dac valoarea ieirii depinde exclusiv de valorile instantanee ale intrrilor, se spune c operatorul
este de tip combinaional. Dac valoarea ieirii depinde i de evoluia precedent a intrrilor se
spune c operatorul este de tip secvenial. Este interesant faptul c operatorii secveniali pot fi
construii pe baza operatorilor combinaionali.
Operatorii pot fi complet defeinii de tabelul de adevr asociat. Cel mai simplu caz este cel al
operatorilor combinaionali, cnd sunt descrise valorile ieirilor (out) pentru toate combinaiile de

ASC Dan Olaru

la intrri. Acestea pot fi parcurse dac se folosesc chiar codurile binare ale numerelor naturale.
De exemplu pentru operatorii i (AND), respectiv sau (OR) avem:
In1
In2
Out (AND)
--------------------------0
0
0
0
1
0
1
0
0
1
1
1

In1
--0
0
1
1

In2
Out (OR)
----------------------------0
0
1
0
0
0
1
1

Sistemul de calcul trebuie s fie capabil s memoreze, s transmit i s prelucreze informaie. De


aceea, structura lui trebuie s conin elemente de memorie i dispozitive de prelucrare
(operatori). Pentru o anumit soluie tehnic (implementare) structura hardware are la baz un
dispozitiv electronic elementar, care realizeaz o funcie de operator binar, numit poart logic.
Aceasta este structura cea mai simpl, avnd dou intrri i o ieire i poate realiza o operaie
binar. Se arat c cu ajutorul unui anumit de poart logic se pot construi att operatori unari sau
binari, de diferite tipuri dar i operatori secveniali. Rezult c ntreaga structur hardware a
calculatorului poate avea la baz un singur tip de poart logic (sau eventual un numr foarte
redus de tipuri). Acesta este un aspect tehnologic i economic deosebit de important, deoarece
orice structur poate fi implementat folosind acelai element de baz, i realizat cu aceeai
tehnologie. De aceea, tehnicile care folosesc operatori logici sau digitali (digit - cifr) au avut n
ultimul timp o evoluie impresionant. Dei proiectarea dispozitivelor este mai uor de efectuat i
de organizat, complexitatea circuitelor poate crete mult mai ales datorit reprezentrii numerice
a unor mrimi cu evoluie continu. Totui, tehnicile moderne de integrare a circuitelor
electronice a permis evoluia i dominana tehnicilor digitale. Deoarece un rol hotrtor n acest
domeniu l-au avut, mai ales la nceput, companiile din SUA, terminologia englez s-a impus n
acest domeniu i este recomandat. De asemenea, simbolistica folosit pentru reprezentarea
circuitelor digitale s-a rspndit n forma american (mai intuitiv), dei nu este neaprat
standard.
De exemplu, operatorul sau poarta i-Nu (i cu ieire negat) pe care s-a bazat evoluia primei
serii de circuite integrate digitale are simbolul i tabelul de adevr de forma urmtoare:
In1
A
A
B

In2 Out (NAND)


___
B
AB
-------------------------------

___
AB

0
0
1
1

0
1
0
1

1
1
1
0

Se observ c, atunci cnd semnalul la una dintre intrri este 0 logic (jos), starea ieirii va fi
forat n starea jos (trecut n mod necondiionat n starea jos). Dac ns semnalul la o intrare
este n starea logic 1, starea ieirii va fi determinat n mod direct de cea de-a doua intrare i
deci poarta NAND se va comporta ca un circuit inversor. Se poate spune astfel, c acest tip de

ASC Dan Olaru

operator, are intrrile active pe zero. Acest mod de interpretare se poate extinde, n general,
pentru orice tip de dispozitiv, schem sau circuit. Astfel, starea logic a unui semnal de intrare
care duce la aciuni sau schimbri de stare semnificative va fi considerat ca stare activ. De
exemplu, dac scrierea unei memorii (memorarea datelor) are loc atunci cnd semnalul de
comand (WRITE) este 0, atunci se spune c acesta este activ pe zero i se noteaz prescurtat n
schem cu W .
Avnd n vedere c un operator (poart) logic este realizat cu componente electronice, poate fi
caracterizat de mrimi electrice. Aceste dispozitive trebuie alimentate de la o surs de tensiune
(5V, de obicei), se comport la ieire ca o surs de tensiune (ne-ideal) i pentru intrrile,
comandate n tensiune, sunt caracterizate de anumite impedane. Dac o surs de tensiune este
ideal, impedana ei ar fi nul, deci ar putea susine un curent de valoare orict de mare. n
realitate ieirea unei pori nu poate comanda oricte intrri ale altor pori. De aceea, pentru un
anumit tip de poart, este definit un numr maxim de pori care pot fi comandate (fan-out).
Aceste mrimi electrice definesc, alturi de timpul de propagare, performanele porii. Timpul de
propagare se refer la timpul necesar stabilizrii tensiunii de ieire, dup ce la intrri a fost
schimbat nivelul de tensiune. Acest timp va caracteriza viteza de lucru a calculatorului.
Impedanele de intrare determin curentul absorbit, i implicit puterea absorbit. Structura porii
trebuie s conin tranzistori, care joac rolul dispozitive de amplificare (active) pentru a
compensa atenuarea semnalului de tensiune care se transmite prin aceasta. Acetia necesit la
rndul lor putere consumat, uneori chiar n lipsa tranziiilor. Puterea consumat devine un
parametru deosebit de important atunci cnd numrul de dispozitive integrate este foarte mare,
depind, n prezent, ordinul milioanelor.
Trebuie menionat c aceste dispozitive nu trebuie s funcioneze n regim liniar, adic semnalul
de ieire s depind proporional de semnalul de intrare. Pentru a se mri imunitatea la zgomot,
adic la semnale perturbatoare, suprapuse peste semnalul util, starea ieirii trebuie s se schimbe
numai dac tensiunea de la intrri depete anumite nivele. La ieire, nivelul de tensiune trebuie
s corespund nivelului standard pentru starea sus (high) sau jos(low).
Rezult c implementarea (realizarea fizic) a unui operator (poart) ntr-o form ideal trebuie
s ndeplineasc anumite condiii oarecum contradictorii: putere consumat aproape nul, vitez
de propagare ct mai mare, imunitate la zgomot ct mai mare. Acest deziderat a fost atins ntr-o
anumit msur de circuitele integrate VLSI (very large scale integration) bazate pe tehnologia
C-MOS (complementary metal-oxide-semiconductor field-effect-transistor).
Operatorul binar unic
Din punct de vedere tehnologic, folosirea n majoritate a unei singure structuri de circuit
electronic este foarte eficient. Astfel, ntregul sistem poate fi alctuit din circuite coninnd
diferite scheme coninnd combinaii ale unui acelai circuit de baz. Rezult c, odat pus la
punct, aceeai structur semiconductoare va fi multiplicat la nivelul ntregului sistem, diferitele
funciile fiind realizate prin diferite scheme de conexiune.
n algebra binar, bazat pe cifrele 0 i 1 necesit numai trei operaii: adunarea, nmulirea i
negarea (negaia). Adunarea i nmulirea sunt operatori binari (cu doi operanzi), negaia fiind
operator unar (transform 0 n 1 sau invers). Deci, circuitele logice (cu dou stri) ar necesita un
operator SAU (pentru adunare), unul I (pentru nmulire) i unul pentru negaie (NON). Dac

ASC Dan Olaru

este utilizat un operator de tip NAND (I-NU), cu o intrare fixat la 1 logic, se poate obine
operatorul de negaie, datorit echivalenei:
echivalent cu:
1
Funcia I se realizeaz simplu prin negarea ieirii operatorului NAND:
1

A
B

AB

__
AB

Relaiile De Morgan, permit transformarea sumelor n produse i invers, ca n exemplul de mai


jos, considernd nite variabile binare oarecare a i b:
respectiv
a+ b = a b
a b = a+ b
Astfel, innd cont c dubla negaie nu are nici un efect, expresia de la ieirea unui operator
NAND poate fi pus sub forma:
A B = A+ B = A+ B
Rezult c operatorul NAND joac rolul unui operator SAU pentru variabilele de intrare negate.
Astfel, pentru a realiza un operator SAU mai este necesar negarea intrrilor:
_
A

A
1
1
B

A+B

_
B

Din cele artate mai sus decurge concluzia important c implementarea unui circuit logic
oarecare se poate realiza cu un singurtip de operator (n cazul nostru de tip NAND).
Este interesant de remarcat c dac ntr-o configuraie oarecare avem mai multe nivele de
operatori acetia realizeaz funcii I, respectiv SAU, n mod alternativ. Astfel, n exemplul de
mai jos, care conine dou nivele de operatori de tip NAND, operatorii de pe primul nivel joac
rolul de operatori I, iar cei de pe nivelul urmtor joac rolul de operatori SAU:
__
AB

A
B
C
D

AB CD = AB + CD

__
CD

Aceasta se poate justifica dac expresia de la ieirea operatorului combinat este adus la o form
de tip sum, cu ajutorul relaiilor De Morgan. Considernd ca intrri variabilele AB i CD , i
innd cont c dubla negaie nu are nici un efect, se obine:

AB CD = AB CD = AB + CD = AB + CD
2. Principii de funcionare pentru un sistem de calcul
Aa cum s-a menionat un sistem de calcul trebuie s realizeze funcii referitoare la memorarea,
trasmisia i prelucrarea informaiei. Deci, informaia trebuie structurat i vehiculat ntre

ASC Dan Olaru

diferitele uniti (pri componente) ale calculatorului n vederea memorrii sau prelucrrii ei.
Rezult c structura unui calculator trebuie s conin ci de comunicaie i dispozitive
specializate. Structura de comunicaie principal este numit magistral (BUS) i trebuie s fac
legtura cu pile principale ale calculatorului, destinate comunicaiei cu exteriorul, memorrii
programelor sau datelor i prelucrrii informaiei.
n forma simplificat, aceast configuraie poart denumirea de main von Neumann dup
numele unuia dintre pionierii n domeniul teoriei calculatoarelor, i are forma:

Unitate
central

Memorie
principal
+ HD

Dispozitive
de intrare
i ieire

n cazul unui calculator personal (PC), magistrala este realizat la nivelul plcii de baz (motherboard), rolul unitii centrale este jucat de propcesor (micro-procesor), memoria principal se
gsete concentrat la nivelul RAM-ului (random-access-memory) i este extins la nivelului
discurilor (hard-disk) iar dispozitivele de intrare-ieire sunt constituite de tastatur i monitor
(diplay), din unitile de CD (DVD) i floppydisk, din dispozitivele grafice de intrare sau de
ieire, de porturile de comunicaie (paralel pentru imprimant, seial, USB, etc.).
Magistrala asigur transmisia datelor ntre diferitele dispozitive, de regul, ntr-o manier
bidirecional, adic att ntr-un sens, ct i n cellalt. Acest mod de lucru este oarecum firesc n
cazul comunicaiei dintre procesor i memorie, dar se dovedete util chiar n cazul dispozitivelor
de intrare sau de ieire.
Unitatea central conine setul de operatori, necesari prelucrrii datelor, dar i dispozitive de
memorie local, necesare funcionrii sau creterii performanelor (ca memoria Cache, de
exemplu).
Memoria RAM, implementat cu circuite integrate este volatil (nu i conserv coninutul la
dispariia tensiunii de alimentare) i are timp de acces redus, totui relativ mare fa de memoria
Cache i registrele procesorului. Memoria de mas (cu capacitate foarte) mare se afl la nivelul
discului magnetic dur (hard-disk), este nevolatil (dipolii magnetici i conserv starea n lipsa
tensiunii de alimentare) i are timp de acces relativ ridicat fa de memoria RAM..
Dispozitivele de intrare ieire au cunoscut de-a lungul evoluiei calculatoarelor o evoluie
dinamic i interesant, ncepnd cu dispozitivele cu band perforat sau disc flexibil i
ndreptndu-se ctre dispozitive optice (CD, DVD) sau memorii Flash.
Dei unitatea elementar de informaie este reprezentat de un bit este mai firesc i eficient ca la
nivelul calculatorului informaia s fie prelucrat i vehiculat sub form de cuvinte structurate,
n funcie de tipul calculatorului pe un numr de 8, 16, 32, sau 64 de bii. Numrul de bii ales
pentru reprezentarea unui cuvnt este de regul o putere a lui 2 (8=2 3, 16=24, 32=25, 64=26).

ASC Dan Olaru

Alturi de bit (o cifr binar), octetul (cuvntul de 8 bii) este larg utilizat ca unitate intermediar
de reprezentare a informaiei.
Este important ca numarul de bii ai unui cuvnt s fie o putere a lui pentru a avea o mai bun
coresponden ntre valoarea unui cuvnt i modul de selecie a biilor acestuia. Selecia se poate
face cu circuite de tip selector sau decodificator (DEC), reprezentat n figura de mai jos. Acest
circuit i activeaz: ieirile B0, B1 sau B2 n funcie de valoarea codului reprezentat de cele 8
intrri: A0,, A7. Astfel, dac la intrri avem codul 101, va fi activat ieirea a 5-a, adic B 4,
corespunztoare valorii: 1 2 2 + 0 21 + 1 2 0 = 4 + 1 = 5

A0
A1
A2

B0
DEC

B7

Este evident c numrul de ieiri ale unui decodificator cu n intrri va fi egal cu 2n. n structura
circuitelor unui calculator, n mod frecvent este folosit procesul de selecie (pentru adresarea
memoriei, selecia liniilor magistralei, transferul de date n cadrul procesorului, etc.). Deoarece
cile de date sunt grupate la nivel de cuvnt, trebuie s existe o coresponden ntre numrul cii
de date i bitul corespunztor. Rezult c este firesc ca numrul de selecii posibile s corespund
unei puteri a lui doi. Altfel, o parte din circuitele i ieirile decodificatoarelor vor rmne
nefolosite.
Alturi de decodificatoare, un rol foarte important n structura unui sistem calculator l au
circuitele destinate dirijrii fluxurilor de date, necesesare pentru comunicaia cu magistrala, dar
mai ales pentru asigurarea funcionrii unitii centrale i tuturor dispozitivelor destinate
transferului sau prelucrrii datelor (cuploare, interfee, controlere de memorie sau magistral,
dispozitive specializate pentru calcul numeric sau prelucrri grafice, etc.).
n scopul dirijrii fluxurilor de date se utilizeaz circuite multiplexoare (MUX) i circuite
demultiplexoare (DMUX). Ambele circuite conin linii de comand pentru selectarea fluxurilor
de date. n funcie de codul acestora, multiplexorul plaseaz pe liniile de ieire nivelele logice
corespunztoare cii de date selectate, iar demultiplexorul transfer datele de pe liniile de intrare
pe calea de date de ieire selectat. Ca i n cazul decodificatorului, pentru o implementare mai
eficient, multiplexoarele i demultiplexoarele sunt dotate cu un numr de ci de date
corespunztoare unei puteri a lui doi.

ASC Dan Olaru

Ci de
intrare

Ieire
date
MUX

Selecie

Intrare
date
DMUX

Ci de
ieire

Selecie

Fig.*. Schema de principiu pentru circuitul multiplexor i demultiplexor

Pentru ca un operator s poat calcula rezultatul corespunztor a dou variabile, acestea trebuie s
corespund semnalelor (valorilor tensiunilor) de la intrrile dispozitivului electronic respectiv.
Deci, pentru a obine un rezultat corect este necesar ca att intrrile dispozitivului (operatorului)
ct i ieirile acestuia s se gseasc ntr-o stare stabil. Rezult c, n afara operatorilor propriuzii, unitatea central trebuie s conin elemente de memorie care s asigure, pe de o parte intrri
stabile i pe de alt parte reinerea (stocarea) rezultatului n intervalul de stabilitate. Deci, este
necesar ca unitatea central s conin, n afara operatorilor, elemente de memorie (registre de
memorie) care s furnizeze datele la intrarea operatorilor i s memoreze rezultatele de la ieire.
Dispozitivele periferice, indiferent pe ce principiu lucreaz, din punctul de vedere al comunicaiei
cu procesorul, sunt vzute sau identificate ca locaii de memorie, sub forma aa-ziselor porturi de
comunicaie, specifice fiecrui dispozitiv. Acestea, de fapt, sunt registre de memorie care pot fi
citite, scrise sau i scrise, i scrise.
Fiecare dispozitiv periferic (de intrare/ieire) conine pe de o parte o structur constructiv
specific (tastatur, monitor, imprimant, etc.), aflat, de regul, la distan de calculatorul
propriu-zis i o structur electronic dedicat, care asigur comunicaia cu magistrala (cuplor,
interfa, etc.). Uneori pot fi conectate mai multe uniti identice, cuplate pe o magistral
dedicat, la acelai cuplor cum este cazul unitilor de hard-disk i a celor de CD/DVD (Fig.*)
sau chiar al plcilor de memorie RAM.

ASC Dan Olaru

Magistrale externe dedicate penru RAM, HD,CD

Unitatea
central

Banc 1
memorie

Unitate
HD 2

Unitate
CD 2

Banc 1
memorie

Unitate
HD 1

Unitate
CD 1

Cuplor
memorie
RAM

Cuplor
discuri (HD)

Cuplor
CD, DVD

Magistrala principal
Fig.*. Exemplu de utilizare a magistralelor externe pentru uniti identice
Trebuie menionat c de-a lungul evoluiei calculatoarelor modurile de implementare a
schematicii i modurile de realizare au fost foarte diferite. n special, dac ne referim la unitatea
central care conine majoritatea dispozitivelor electronice, schimbrile au fost spectaculoase.
Dac primele calculatoare foloseau dispozitive de comutaie cu relee sau tuburi electronice cu
vid, n prezent, tehnologia planar a siliciului a permis integrarea pe un singur cip a unor structuri
de procesoare complexe bazate pe milioane de dispozitive semiconductoare.
Magistrala de comunicaie
1. Rolul i amplasarea magistralei
Magistrala (Bus) calculatorului realizeaz conexiunea ntre diferitele dispozitive ale configuraiei
i asigur comunicaia dintre acestea, referitoare la transmisia datelor i informaiilor de comand
i stare. Fizic magistrala este implementat la nivelul plcii de baz (cazul PC), iar, mai rar la
anumite tipuri de calculatoare poate conine segmente flexibile, pentru legatura ntre plci
electronice sau subansamble de plci (configurate n sertare sau dulapuri).
Performanele magistralei se refer la cantitatea de informaie care poate fi transmis la un
moment dat (numr de linii de semnal) i viteza de transmisie respectiv.
Magistrala propriu-zis conine cile cile de transmisie a semnalelor electrice (conexiuni).
Pentru funcionarea acesteia sunt necesare dispozitive specifice (circuite integrate), grupate sub
denumirea de cipset care au rolul de a asigura trasmisia efectiv a semnalelor electrice, dar i
funcionarea protocolului de comunicaie, pentru diferite regimuri de funcionare.
Comunicaia pe magistral este diferit de simpla transmisie unor semnale electrice pe o linie
(conductor electric). n cazul liniei se consider c la un capt al liniei se gsete un emitor, sau
transmitor, iar la cellalt capt se gsete un receptor. Primul se comport ca o surs de energie,

ASC Dan Olaru

iar cellal ca un receptor. Dac emitorul este o surs de tensiune, acesta va debita curent ctre
receptor.
n cazul magistralei nu este important energia, ci informaia trasmis. Deci, n acest caz
transmitorul trebuie s furnuzeze suficient energie (de fapt suficient curent, pentru c
emitorul se comport ca o surs de tensiune) pentru ca starea receptorului s se schimbe. Deci
puterea transmis pe magistral trebuie s fie capabil s comande receptorul ntr-o manier
corect, deci s asigure imunitatea la zgomotul electric care apare datorit cuplajelor capacitive
sau inductive cu alte surse.
Dac un dispozitiv nu este capabil s susin curentul cerut este necesar ca pe linia de transmisie
s fie intercalat un amplificator de curent (buffer).
Spre deosebire de o linie electric care transmite semnale continui, transmisia pe magistral se
realizeaz n impulsuri, ntr-o manier secvenial. Adic, la anumite momente de timp
transmitorul i schimb starea ieirii, avnd drept consecin schimbarea strii receptorului.
Aceast comunicaie trebuie s dureze un timp ct mai scurt. De aceea apariia acestui eveniment
(schimbarea de stare) trebuie memorat la nivelul receptorului, permind astfel ca emitorul s
nu mai fie activ (s nu mai necesite semnal de comand). Astfel circuitele de comand ale
emitorului pot realiza alte funcii. n plus, pentru ca circuitele de comand ale emitorului s
nu depind de viteza de transmisie pe magistral, informaia (schimbarea de stare) furnizat
acestuia trebuie, la rndul ei, memorat la nivelul emitorului. Rezult c dispozitivele care sunt
conectate la magistral trebuie dotate cu circuire de memorare (registre de memorie tampon, sau
registre latch), att la emisie ct i la recepie. Deci magistrala trebuie s asigure transmisia
informaiei de schimbare de stare, de la emitor la receptor. Starea unei linii (low sau high), de
fapt reprezint semnificaia unei cifre binare, 0 sau 1 (bit). n acest fel se poate spune c pe
magistral sunt transmise date, purttoare de informaie. Astfel, starea dispozitivului emitor este
transmis receptorului. n realitate, pe magistral se transmit simultan grupuri de stri (sau bii),
corespunztoare cuvintelor de date prin care este codificat informaia. Deci, zona transmisiei de
date a magistralei conine un numr de linii corespunztor lungimii cuvntului de date (8, 16,32,
64 de bii).
Pentru ca dispozitivele conectate la magistral s funcioneze ntr-o manier flexibil, acestea
trebuie identificate, i la un moment dat trebuie stabilit calitatea de emitor sau receptor (pentru
c un anumit dispozitiv poate transmite sau primi date).
Identificarea dispozitivelor sau zonelor de memorie ntre care se realizeaz comunicaia se face
prin codul de adres. Pe liniile de adres ale magistralei va fi trasmis un cod care va activa un
anumit dispozitiv, registru sau o anumit zon (cuvnt sau locaie) de memorie.
Stabilirea calitii de emitor sau receptor se face cu ajutorul unor semnale de control (comand),
trasmise pe anumite linii speciale. Dispozitivul care controleaz magistrala (secvena de
comunicaie) poart denumirea de master. Este posibil ca alt dispozitiv s cear controlul
magistralei (deci s obin calitatea de master).
nceperea unei secvene de comunicaie impune ca magistrala s fie liber. Dac se impun
comunicaii urgente sau datorate unor evenimente exterioare imprevizibile (asincrone), cererea de
comunicaie este transmis pe linii de comand speciale (linii de ntrerupere) ctre procesor, care
joac rolul de master n majoritatea timpului.
Este posibil ca, la un moment dat, s existe mai multe cereri de ntrerupere simultane. n acest
caz, trebuie stabilit care dintre comunicaii va fi realizat prim, prin intermediul unui disapozitiv
numit arbitru de prioriti.

ASC Dan Olaru

Protocolul de comunicaie pe magistral reunete totalitatea tipurilor de secvenelor de


comunicaie, de ncepere, ncheiere i sincronizare a acestora. Protocoalele de comunicaie sunt
specifice tipului de calculator, plcii de baz i dispozitivelor conectate la aceasta.
Tot n cadrul magistralei pot fi considerate anumite circuite speciale de comunicaie ca, de
exemplu, circuitul DMA (Direct Memory Access). Acesta poate asigura controlul magistaralei,
sincronizarea, generarea secvenelor de nceput i sfrit, pentru realizarea transmisiei de
informaie, cu vitez mare, sub forma pachetelor (masivelor) de date ntre diferite dispozitive i
memorie (RAM), fr implicarea procesorului. De regul, acest tip de transfer se face ntre harddisk i memoria RAM.
Conform celor artate, magistrala de comunicaie, considerat ca ansamblul de ci de semnal i
circuite electronice de control trebuie s conin urmtoarele componente (organizate sub form
de circuite integrate mai mult sau mai puin distribuite):
- amplificatoare de magistral (buffer);
- registre tampon (latch);
- arbitru de prioriti;
- circuite de sincronizare.
Semnalele transmise pe magistral au de regul urmtoarea funcie semnificaie i notaie (pentru
calculator cu un cuvnt de date i de adres de 32 de bii):
- conexiunile de date (D0,D1,,D31)
- conexiunile de adres (A0,A1,,A31)
- linii de comand
- scriere i citire n memorie sau regitri (R i W);
- cerere control magistral (BUSRQ BusRequest);
- acceptare control magistral (BUSAQ BusAcknowledge);
- cerere de ntrerupere (IRQ Interrupt Request);
- acceptare cerere de ntrerupere (IAQ Interrupt Acknowledge);
- semnale de identificatre a strilor procesorului, pentru primul ciclu masin, de exemplu.
Un dispozitiv din configuraia calculatorului va fi conectat la magistral dup urmtoarea
schem:

ASC Dan Olaru

Conexiuni interne

Latch
date
Receptori
adres

Buffer
date

Receptori
comenzi

Linii adres
Linii date
Linii comand

Fig.*. Conexiunile unui dispozitiv la magistral


Fiecare dispozitiv trebuie dotat cu registre Latch i circuite electronice pentru transmisie i
recepie. Acestea sunt amplificatoare cu ieirea pe magistral, capabile s susin curentul de
comand a altor dispozitive. De asemenea trebuie dotat cu circuite receptoare, conectate cu
intrarea la linia magistralei.
Conexiunile la liniile de date trebuie s fie bidirecionale pentru orice dispozitiv care transfer
date n ambele sensuri. Trebuie menionat c datele transmise nu reprezint numai informaiile
necesare execuiei programului, dar i cele legate de starea sau comanda unui dispozitiv.
Conexiunea la liniile de adrese se face numai cu circuite de emisie n cazul dispozitivelor de tip
master i cu circuite de recepie pentru cele care nu au niciodat aceast calitate. Registrul de tip
latch se comport ca un grup de celule de memorie corespunztoare unui grup de bii (cuvnt).
ntreaga structur a calculatorului se bazeaz pe celule de memorie care au capabilitatea de a
transmite date ntre ele. Acestea sunt organizate fie n cadrul unui banc de memorie (circuit
integrat utilizat numai ca memorie), fie sub forma registrelor prezente la nivelul procesorului sau
a altor dispozitive. Conexiunile se fac fie la magistral, fie n interiorul dispozitivului. Fiecare
celul conine, de fapt o celula de tip latch i circuite (amplificatoare) de emisie/recepie.
Carcateristic pentru conexiunea de tip magistral este posibilitatea de comunicaie n ambele
sensuri i posibilitatea ca mai multe dispozitive s fie conectate mpreun, pe aceleai linii. De
exemplu, dac am avea dou dispozitive A i B conectate la o linie, atunci cnd A transmite
informaie lui B, A se va comporta ca un emitor i B ca receptor. Dac se dorete comunicaia
invers, de la B la A rolurile se vor schimba. Rezult c, pentru a fi posibil acest lucru, trebuie ca
la linia respectiv s fie conectate (n acelai timp) ambele emitoare i ambele receptoare.
Conectarea simultan a receptoarelor nu este o problem deoarece intrrile acestora au impedan
de intrare de valoare mare i nivelul de tensiune al liniei nu este afectat. Conectarea simultan a
dou emitoare nu este ns permis deoarece ele reprezint surse de tensiune comandate. Dac
iesirea unui emitor se afl la un moment dat n starea sus, iar a celuilalt n starea jos, primul va
debita un curent important care va trece prin circuitul de ieire al celui de-al doilea, lucru

ASC Dan Olaru

nepermis. Rezult c emitoarele trebuie realizate i comandate astfel nct acest lucru s nu se
ntmple. Soluia tehnic este utilizarea ieirii cu trei stri (three state), i anume: starea Jos (nivel
de tensiune sczut), starea Sus (nivel de tensiune ridicat), ambele cu impedan redus, deci
capabile s furnizeze sau s absoarb curent, i starea izolat (a treia stare) atunci cnd impedana
de ieire este ridicat i nu mai influeneaz nivelul de tensiune al liniei.
Rezult c transferul bidirecional al informaiei se poate realiza prin activarea, la un moment dat,
a unui singur circuit de emisie (avnd starea Sus sau Jos) i dezactivarea celorlalte emitoare
conectate la linia respectiv, prin trecerea lor n starea a treia (izolat). Atunci cnd un
transmitor este activ, poate avea loc o operaie de scriere (write) ntr-o celul de memorie, dac,
bineneles exist i o comand intern de memorare (scriere) pentru celula respectiv. n acest
caz se spune c n celula receptoare are loc o operaie de citire (read). Atunci un circuit de tip
latch i schim starea, conform cu nivelul de tensiune de la intrare.
Intrare date
Comand
memorare

b0

b1

b2

b3

b4

b5

b6

b7

Ieire date

Fig.*. Registru Latch (paralel) pentru 1 octet (byte)

Conexiunea la
magistrala intern

Memorare
recepie

Buffer
emisie-recepie
(pt.magistral)

Latch recepie

Magistrala
calculatorului
(Magistrala
extern)

Latch emisie
Memorare
emisie

Conexiune
intern
Comand scriere
Pe magitral

Fig.*. Structura conexiunilor unei celule de memorie la magistrala intern i extern


n mod obisnuit magistrala realizeaz comunicaii bidirecionale. Exist totui cazuri cnd din
motive tehnice sau economice este mai avantajos ca transmisia de informaie s se fac ntr-un
singur sens. n acest caz (magistral de tip Daisy-chain), dispozitivele au intrri i ieiri separate
att pentru emitorul i receptorii liniei de adres (EA, RA1, RA2, RA3) ct i pentru emitorii i
receptorii liniilor de date (ED1, ED2, ED3, ED4 i RD1, RD2, RD3, RD4). O asemenea soluie este

ASC Dan Olaru

folosit uneori pentru dispozitivele conectate la acelai cuplor (sau interfa) cum ar fi unitile de
memorie pe disc.
Linii de adrese

EA

RD1

RA2

RA1

ED1

RD2

ED2

RD3 ED3

RA3

RD4

ED4

Linii de date

Fig.*. Magistrala de tip unidirecional (Daisy-chain)


Dac lungimea magistralei este scurt n raport cu viteza de propagare a semnalului (i
stabilizarea nivelului de tensiune), atunci se poate considera c transmisia strilor este instantanee
i c n secvena semnalelor sau comenzilor nu trebuie s fie introduse ntrzieri, sau timpi de
ateptare (magistral sincron).
Un caz special apare atunci cnd nu exist ntrzieri datorit propagrii, dar viteza de rspuns a
anumitor circuite este mai redus. De exemplu, timpul de memorare poate fi mai lung dect
timpul scurs ntre dou schimbri de stare a procesorului. Cnd acest lucru este cunoscut,
cuplorul de memorie trebuie s introduc semnale de ateptare (wait) care s prelungeasc starea
de la ieirea procesorului.
Astfel, secvena de scriere n memorie (folosind semnalul de scriere Write) poate decurge ca n
Fig.*
n cazul cnd timpul de propagare pe magistral este relativ mare, din punctul de vedere al
procesorului (sau dispozitivului emitor), nu poate fi cunoscut cu precizie momentul cnd
semnalele sunt stabile la intrrile unui dispozitiv. De exemplu, procesorul poate dezactiva
semnalul de scriere nainte ca acesta s se fi propagat pn la intrarea memoriei. Atunci sunt
necesare conexiuni i semnale suplimentare pentru confirmarea sosirii informaiei de schimbare
de stare la nivelul receptoarelor (magistral asincron). n Fig.* este dat un exemplu simplificat
de magistral cu protocol de tip hand shake (strngere de mn). Acesta este asemntor salutului
prin strngere de mn. Pentru aceasta sunt folosite semnalele de sincronizare suplimentare:
SendData, DataSent, DataAcepted, BusClear.

ASC Dan Olaru


Send data

Dispozitiv
master

Data sent
Data acepted

Dispozitiv
slave

Bus clear

Fig.*. Semnalele de sincronizare pentru magistrala hand-shake


Astfel, dispozitivul Master transmite semnalul de cerere de date SendData (ntinde mna).
Atunci cnd dispozitivul Slave primete acest semnal (dup timpul de propagare respectiv)
valideaz (emite) datele pe liniile corespunzatoare i rspunde cu semnalul DataSent (ntinde i
el mna). Cnd semnalul DataSent ajunge (dup un timp de propagare) la dispozitivul Master,
acesta ia la cunotiin c datele sunt stabile la intrrile lui i i poate comanda circuitele Latch
pentru memorare. Dup aceasta datele nu mai sunt necesare la intrrile lui i este cazul s
ntineze dispozitivul transmitor (care are calitatea de Slave) c acesta poate s elibereze
magistrala, adic s i comande ieirile n starea a treia (de impedan mare). Astfel, dispozitivul
Master transmite semnalul DataAccepted (i retrage mna). Atunci cnd dispozitivul Slave l
primete, acesta va avea confirmarea c datele transmise au fost memorate i elibereaz
magistrala, odat cu transmiterea semnalului BusClear care ntineaz dispozitivul master c
poate utiliza magistrala. Dup receptionarea acestui semnal, eliberarea magistralei este
confirmat i din acest moment Master-ul poate utiliza magistrala, activnd emitoarele proprii,
care pn atunci au fost meninute n starea a treia.
Noiunea de magistral ocupat sau liber se refer, pe de o parte la starea electric a liniilor, iar
pe de alt, parte la existena unei secvene de comunicaie. n primul caz, toate emitoarele
dispozitivelor conectate la magistral sunt n starea a treia (izolat), potenialul liniei este
flotant, adic este la discreia oricrei surse de tensiune (emitor) care poate fi activat. Deci,
n aceast stare, un dispozitiv poate commanda magistrala, dac aceasta se doreste. n cel de-al
doilea caz, magistrala este considerat ocupat dac o secven de comunicaie este n curs i
liber n situaia contrar. n lipsa unor semnale speciale care s indice c exist o asemenea
secven, situaia magistralei poate fi detectat fie prin analiza evoluiei semnalelor electrice, fie
prin alocarea calitii de Master unui singur dispozitiv, la un moment dat.
Performanele calculatorului sunt determinate, printre altele, de numrul de conexiuni ale
magistralei. Putem folosi denumirea de spaiu de adres sau zon de adres pentru numrul de
linii utilizate pentru adresare i spaiu de date sau zon de date pentru cele de date. Cu ct avem
un spaiu de adres mai mare, cu att pot fi adresate mai multe locaii (cuvinte) de memorie, deci
poate fi accesat o memorie RAM mai voluminoas. Cu ct avem un spaiu de date mai mare, cu
att valorile numerelor care pot fi reprezentate cu un cuvnt sunt mai mari, deci nu este nevoie ca
reprezentarea numerelor ntregi sau zecimale mari s fie departajat pe mai multe cuvinte.
Modul de calcul pentru numrul maxim de adrese, ca i pentru valoarea maxim reprezentat de
un cuvnt, este acelai ca pentru evaluarea unui numr binar. Ca i la reprezentarea binar, pentru

ASC Dan Olaru

o procesare mai uoar, numrul de conexiuni folosit reprezint, de regul, o putere a lui 2. De
exemplu, o magistral care conine 16 linii de adres poate accesa: 216-1 = 65536 cuvinte de
memorie. Analog, o magistral care conine 32 linii de date poate transmite cuvinte cu valoarea
maxim: 232-1 =4294967296. Pentru a lucra mai uor cu aceste numere, se obinuiete ca s fie
exprimate n multipli de bii, octei (bytes) sau cuvinte specifice unui anumit calculator. De
asemenea se folosete prescurtarea b pentru bii, B pentru bytes i W (word) pentru
cuvinte. n aceast convenie, multiplu kilo nu reprezint 1000 de uniti, ci 1024 de uniti,
corespunztor puterii 10 a lui 2, adic 210=1024. Rezult c 65536 cuvinte reprezint de fapt 64k
cuvinte, pentru c: 65536 = 64*1024.
Trebuie remarcat c n cazul calculatoarelor complexe, n aceast categorie putnd fi considerate
i anumite configuraii de PC, structura de magistral poate evolua ctre arhitecturi de magistrale
multiple, care lucreaz cu numr de linii i viteze diferite. De exemplu, se pot utiliza magistrale
separate pentru perifericele rapide (cuplorul de discuri sau placa video), i respectiv magistrale cu
vitez redus pentru perifericele lente (cuplor de imprimant, interfee seriale, etc), ca n Fig.*.
Bineneles c nici legtura cu memoria RAM, nici conexiunea DMA nu este necesar magistrale
separate. Totui aceast structur permite ca unitatea central s poat da comenzi unor
dispozitive, n timp ce are loc un transfer DMA i, de asemenea, s comunice cu memoria cu un
protocol mai eficient i cu o vitez mai mare dect cea permis de magistrala rapid.
n cazul unei structuri cu o singur magistral, realizarea ciclurilor DMA trebuie s nu interfereze
cu aciunea procesorului i, n acelai timp, s-i pstreze eficiena. Astfel, sunt utilizate cteva
strategii ca, de exemplu, metodele: ********

Cuplor
imprimant

Interfa
serial

Periferie
lent

Magitral lent

CPU

Magitral rapid

Controler
DMA

Plac video

Cuplor
discuri

Periferie rapid
Magitral uniti de disc

RAM

Conexiune DMA

Fig.*.Structur de magistral multipl.


Transferul DMA
Pentru transferurile de tip DMA se utilizeaz un controler special, care poate fi integrat n cadrul
cip-setului plcii de baz. Pentru analiza funcionrii DMA se va lua n consideraie o structur
mai simpl (Intel 8257), specific unui microsistem cu procesorul Z-80, dezvoltat naintea
apariiei IBM-PC.

ASC Dan Olaru

-I/OR
-I/OW
-MEMR
-MEMW
MARK
READY
HLDA
ADSTB
AEN
HRQ
-CS
CLK
RESET
-DACK2
-DACK3
DRQ3
DRQ2
DRQ1
DDRQ0
GND

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

A7
A6
A5
A4
TC
A3
A2
A1
A0
Vcc
D0
D1
D2
D3
D4
-DACK0
-DACK1
D5
D6
D7

DB 0-7

Ampli
Date

Can 0

-IOR
-IOW
CLK
RESET
A0
A1
A2
A3
-CS

Can 1
DRQ1
DACK1

Bloc R/W

Can 2
DRQ2
DACK2

A4
A5
A6
A7

Can 3
DRQ3
DACK3

Ready
HRQ
HLDA
-MEMR
-MEMW
AEN
ADSTB

DRQ0
DACK0

Bloc C-d

Arbitru
prioriti

TC
MARK

Fig.* Schema bloc a controlerului DMA


Controlerul 8257 poate asigura transferul DMA, simultan (n mod time-sharing) ntre memorie i
patru porturi. Sincronizarea operaiilor de citire sau scriere se face prin semnale de eantionare,
care comand memorarea datelor, dup ce acestea ajung la nivele stabile pe magistral.
Semnificaia semnalelor utilizate este urmtoarea (semnul minus arat c sunt active pe 0):
-IOR de la/spre magistral, pentru eantionarea datelor citite din port;
-IOW de la/spre magistral, pentru eantionarea datelor scrise n port;
-MEMR - de la/spre magistral, pentru eantionarea datelor citite din locaia de memorie
adresat;
-MEMW - de la/spre magistral, pentru eantionarea datelor scrise n locaia de memorie
adresat;
MARK semnal emis la fiecare al 128-lea octet transferat;
READY semnal care permite introducerea unor stri de ateptare, SW, naintea ncheierii
transferului, avnd portul i locaia de memorie selectate;
READY semnal primit de la magistral, indicnd eliberarea acesteia, n vederea transferurilor
DMA;
ADDSTB semnal de eantionare pentru ncrcarea unui port adiional (de tip 8212) cu octetul
cel mai semnificativ al adresei de memorie;
AEN semnal indicator al ocuprii magistralei pentru transferuri DMA, care valideaz emiterea
octetului cel mai semnificativ de adres din portul adiional;

ASC Dan Olaru

HRQ semnal de solicitare a magistralei, n vederea eliminrii procesorului;


-CS - semnal de selecie a controlerului, invalid n timpul ciclurilor DMA;
CLK - semnal de sincronizare (tact sau ceas);
RESET - semnal de iniializare a controlerului;
-DACK0,1,2,3 - semnal de selecie pentru porturile corespunztoare canalelor 0,1,2,3. Se emite
dup obinerea magistralei, n vederea selectrii portului, pentru efectuarea transferului;
DRQ0,1,2,3 semnal care semnalizeaz controlerului DMA c este necesar un transfer pe
canalele 0,1,2,3;
TC semnalizeaz sfritul transferului irului de octei. Se emite n timpul ultimului transfer.
Memoria calculatorului
Memoria sistemului de calcul are rolul pe de o parte de a stoca programele i datele de sistem i
de aplicaie i pe de alt parte de a facilita i mbunti comunicaia i operarea la nivelul
calculatorului. Alturi de elementele de memorie distribuite la nivelul unitii centrale sau
dispozitivelor periferice (registre Latch sau registre ale unitii centrale) sistemul de calcul este
dotat cu blocuri de memorie cu capaciti i viteze de acces diferite, implementate i realizate sub
diferite forme tehnologice. Trebuie menionat c n cadrul comfiguraiei sistemului anumite
periferice pot fi considerate ca dispozitive de intrare-ieire, desi, n esen sunt dispozitive de
memorare pe un suport amovibil, destinat trasportului de informaie n exteriorul calculatorului,
ca de exemplu: discurile de tip disc flexibil (Floppy disc), CD (Compact disk), DVD (Digital
Video disk), memoriile Stick sau Flash, etc.
Din punct de vedere tehnologic, pentru dispozitivele de memorie sunt folosite soluii tehnice
diferite, cu caracteristici diferite. Deoarece memoria ocup un loc esenial n funcionarea
calculatorului, de-a lungul evoluie calculatoarelor s-a acordat o mare atenie gsirii unor soluii
tehnice ct mai eficiente i cu caracteristici ct mai performante.
Este important c sistemul de calcul trebuie s conin, n mod necesar, mcar parial, memorii
nevolatile care i pot pstra coninutul atunci cnd dispare tensiunea de alimentare (calculatorul
nu mai este alimentat electric), spre deosebire de memoria volatil, care i pierde coninutul n
lipsa tensiunii de alimentare. n alt ordine de idei, funcionarea calculatorului necesit, pe de alt
parte, o memorie cu vitez de acces ridicat, dar care poate avea o capacitate mai redus i poate
fi volatil, utilizat de unitatea central n timpul execuiei programelor (memoria prinsipal sau
RAM) i pe de alt, o memorie de mas, cu capacitate foarte mare, nevolatil, care conine
cantiti foarte mari de informaie.
Este important de menionat c memoria principal terbuie s permit accesul rapid i imediat la
nivelul fiecrei uniti de date memorate (cuvnt de date), denumit i memorie cu acces aleator
(random access memory - RAM), n sensul c accesul se poate face la orice cuvnt, oricare ar fi
acesta. Spre deosebire de aceasta, memoria de mas poate avea un caracter secvenial, adic poate
permite accesul la un anumit cuvnt de date numai dup ce a fost citit, cuvnt cu cuvnt, o
anumit zon de date n care se afl cuvntul respectiv. Acest mod de lucru apare deoarece
posibilitile de sincronizare, adic de identificarea sau regsirea unor elemente de informaie se
poate face numai numai la nivelul unor iruri sau blocuri de informaie nregistrat, urmnd ca
identificarea informaiei n cadrul irului s se fac prin citirea succesiv a coninutilui acestuia.

ASC Dan Olaru

n acest mod se lucrez cu blocurile nregistrate pe band magnetic sau cu sectoarele


nregistrate pe pistele circulare ale discurilor.
nc din perioada timpurie a evoluiei calculatoarelor s-a observat c materialele magnetice au
proprieti corespunztoare unei memorii nevolatile, adic dac sunt magnetizate ntr-un anumit
sens, atunci cnd sunt plasate n cmpul magnetic produs de trecerea unui curent electric, acestea
i pstreaz aceast proprietate (magnetizaie) pn cnd are loc un nou proces de magnetizare n
sens opus.
La nceputul evoluiei calculatoarelor, memoria RAM era realizat cu ajutorul unor matrici,
coninnd n noduri inele de ferit (folosite ca dipoli magnetici), parcurse de o reea de
conductoare electrice, folosite att pentru magnetizare, dar i pentru citire, utiliznd anumite
procese de regim tranzitoriu. Pentru memoria de mas se folosea tamburul magnetic, discul
magnetic, banda magnetic. n perioada modern a calculatoarelor, marcat de utilizarea
circuitelor integrate, memoria RAM este realizat cu dispozitive semiconductoare, iar memoria
de mas folosete discuri etane (hard-disk HD), care permit densiti mari de informaie prin
eliminarea prafului i impuritilor.
Pentru anumite scopuri sunt necesare chiar memorii nevolatile a cror coninut nu se schimb,
dup procesul de fabricaie sau configurare a calculatotului, utilizate, de exemplu, pentru stocarea
programului de ncrcare a sistemului de operare sau pentru zona BIOS. Acestea sunt memorii de
tip ROM (read only memory), realizate de regul, sub form de matrice conductoare, avnd n
noduri diode. Totui, pentru necesiti de reconfigurare, s-au dovedit utile uniti de memorie
ROM programabile sau reprogramabile, realizate n diferite tehnologii: PROM (programable
ROM, EPROM (erasable PROM), EEPROM (electric EPROM).
Din punct de vedere tehnologic s-a dovedit c se pot realiza memorii cu capaciti mult mai mari
(deci cu densitate de componente pe cip mai mare) dac, n loc de circuite bistabile (pe care se
bazeaz memoriile statice), se folosesc elemente de memorie bazate pe stocarea informaiei n
capacitatea de poart a unui tranzistor MOS, cunoscute sub denumirea de memorii dinamice.
Folosirea memoriilor statice este mai simpl, n sensul c, o dat ce informaia a fost scris n
memorie, aceasta se pstreaz un timp nelimitat (dac exist tensiune de alimentare). Memoria
dinamic, avnd un caracter capacitiv, i pierde n timp coninutul dac nu au loc procese
repetate de renscriere a informaiei (cicluri de refrech), comandate de procesor sau alt circuit
spacializat.
Totui, pentru memoria Cache, care lucreaz, de regul, cu acceeai frecven de tranziie ca i
procesorul, se prefer utilizarea dispozitivelor statice, permind eliminarea ciclurilor de
renprosptare care necesit un timp preios pentru transferul de informaie cu procesorul.
Organizarea i modul de acces la memorie este diferit n funcie de tipul i funcionalitatea
acesteia.
Astfel, memoria RAM conine, de regul mai multe bancuri implementate cu circuite integrate
(cipuri) care pot fi activate separat, cu semnalul CS (cip select) i ale cror ieiri pot fi activate cu
semnalul OE (output enable). Fiecare cuvnt de date este accesat separat, corespunztor unui cod
plasat la intrrile de adres.
Un sistem poate funciona cu o memorie RAM cu o capacitate adresabil mai mare dect este
permis de numrul de conexiuni disponibile ale procesorului sau dispozitivului Master care
comand liniile de adres. n acest caz, se spune c memoria este paginat hardware (deoarece se
refer la schema de conexiuni). Atunci, o parte din informaia de adres provine de la un registru

ASC Dan Olaru

de tip latch, iar restul de la magistrala de adres. Astfel, este necesar ca procesul de adresare s se
execute n dou etape (secvene). n prima, n registrul latch este nscris informaia numrului de
pagin. Pentru aceasta sunt folosite o parte din conexiunile magistralei de adrese, n funcie de
numrul de pagini. La ieirile circuitului Latch se va menine aceast informaie, n a doua etap,
cnd se va produce adresarea propriu-zis. De regul, din motive tehnologice, memoria este
constituit din mai multe bancuri, implementate cu circuite integrate (cipuri) diferite.
Selecia fiecruia se face cu semnalele de cip select produse la ieirea decodificatorului (DEC).
Acesta activeaz cte o singur ieire (pentru starea corespunztoare seleciei cipului de
memorie), n funcie de codul binar furnizat de registrul Latch.
Metoda de adresare paginat, pentru magistrale de adres i date cu cte opt conexiuni (8 bii de
adres i 8 bii de date), pentru o memorie implementat cu patru cipuri este schiat n Fig.*.
Cele patru cipuri de memorie sunt identice i au cte ase intrri de adres i opt linii de date. Se
observ, c n acest caz numrul de pagini adresate, prin intermediul circuitului Latch este egal cu
numrul de cipuri utilizate pentru implementarea memoriei. Bineneles c ntr-o schem
oarecare, se pot folosi diferite combinaii ntre numrul de pagini adresate i numrul de cipuri
folosite pentru implementarea memoriei, cu condiia ca numrul de pagini s poat fi codificat cu
numrul de bii corespunztori liniilor de adres.
A0-A5
A5
A4

latch

DEC
CS A0-A5
W

Write
Read

M0

OE D0-D7

CS

A0-A5

M1

OE D0-D7

CS
W

A0-A5

M2

OE D0-D7

CS A0-A5
W

M3

OE D0-D7

D0-D7

Fig.*. Schema de adresare paginat pentru o memorie implementat cu 4 cipuri.


n afara memoriei RAM care a existat totdeauna n structura unui calculator, s-a dovedit c este
util folosirea unei memorii speciale, cunoscut sub denumirea de Cache (sau memorie
intermediar). Aceasta poate avea dou funcii principale. Pe de o parte poate fi utilizat ca
memorie tampon n care sunt aduse pagini din memoria RAM, care conin date acesate de
procesor la un moment dat. Pe de alt parte, (aa cum este considerat de obicei) este utilizat
pentru stocarea datelor (sau instruciunilor de program) cel mai des utilizate de procesor, pe

ASC Dan Olaru

parcursul execuiei unui program, indiferent de ordinea n care sunt plasate n memoria RAM.
Pentru a realiza aceast funcie, memoria Cache trebuie s stocheze att cuvinte de date din
memoria RAM, dar i informaii asupra codului de adres unde se gsesc acestea (etichete sau
Tag-uri). Astfel, datele sunt cutate n memoria Cache ntr-o manier asociativ, adic nu dup
adresa acestora, ci dup coninutul acestora, dup principiul urmtor. nainte ca procesorul s
fac acces la o anumit la o anumit adres din RAM, verific dac, nu cumva, codul acestei
adrese (sau eventual partea de adres din cadrul paginii curente) nu se gsete n memoria Cache.
Dac da, datele sunt citite (foarte rapid) numai din memoria Cache. Dac nu, datele se citesc din
memoria RAM (relativ mai lent), dar acestea sunt copiate i n memoria Cache, ntr-o locaie
stabilit dup un algoritm care s permit meninerea datelor utilizate cel mai des. Cutarea
datelor, n mod asociativ (printr-un proces de comparare succesiv) se face, de asemenea dup
algoritmi care urmresc criterii de performan.
Constructiv, memoria Cache se gsete ct mai aproape de procesor, eventual chiar pe acelai cip
i lucreaz la o frecven maxim comparabil sau identic procesorului. Spre deosebire de
memoria RAM aceasta are un mod de conectare, special construit, pentru mrirea performanelor
de procesare. De regul, este conectat cu procesorul prin mai multe magistrale dedicate, care
permit adresri simultane i cicluri de citire/scriere simultane pentru mai multe zone ale
memoriei. Capacitatea memoriei cache este n general redus fa de memoria RAM, n special
din motive economice, constructive dar i pentru a putea mri viteza de cutare n mod asociativ.
Memoria total a calculatorului este distribuit sub urmtoarele forme:
- setul de registre ale unitii centrale (procesorului);
- memoria Cache (memorie temporar);
- memorie ROM (continnd programele BIOS);
- memoria pe discuri.
Unitatea central
Unitatea central (procesorul) are rolul de a coordona ntreaga activitate a calculatorului
(transferul de informaie i comanda dispozitivelor) i de a efectua execuia programelor prin
calcule i prelucrri asupra datelor de intrare. Procesorul este, de obicei dispozitivul Master
asigurnd adresarea memoriei i comunicaia cu dispozitivele. Toat activitatea acestuia se
bazeaz pe execuia instruciunilor de program. Funciile de sistem sunt ndeplinite de programele
(procedurile) sistemului de operare sau BIOS-ului. Programele de aplicaie, n timpul execuiei
preiau controlul procesorului care execut instruciunile acestora. Execuia unei instruciuni se
bazeaz pe mai multe cicluri main, fiecare dintre ele fiind compus din mai multe faze sau stri.
Cicli main se refer n general la etapele de execuie a unei instruciuni, de exemplu: ncrcarea
instruciunii (etapa de fetch), decodificarea acesteia, calculele aritmetice, memorarea
rezultatelor.
Unitatea central conine un automat sau main secvenial (cu mai multe stri) care realizeaz
transferurile de date i comanda magistralei. Calculele propriu-zise sunt efectuate n unitatea sau
operatorul aritmetic. Tranziia strilor mainii secveniale are loc sub comanda unor impulsuri
(de tact) generate de oscilatorul (ceasul) sistemului plast la nivelul plcii de baz sau, de obicei,
integrat n structura procesorului.

ASC Dan Olaru

Procesorul conine, n principal, registre cu rol de memorii tampon, pentru cte un cuvnt de date
i unul sau mai muli operatori aritmetici i logici. Operatorii aritmetici (i logici) au o structur
combinaional adic, atunci cnd la intrarea lor sunt plasate anumite date de intrare (sub form
de nivele de tensiune) la ieire se obine codul corespunztor rezultatului. n realitate stabilizarea
datelor la ieire nu este instantanee datorit timpului necesar propagrii semnalelor electrice prin
structura electronic. Se poate arta c orice operator aritmetic se poate realiza ca o structur de
pori, de obicei bazat, n principal, pe acelai tip de poart, care corespunde cel mai bine unei
anumite tehnologii de fabricaie. Asa cum s-a mai artat mai sus, n algebra binar (Boolean) din
punct de vedere formal (adic dup modul de reprezentate) nu exist deosebire ntre operaiile
aritmetice sau logice, la nivelul unui singur bit (cifr binar). Dei operaiile aritmetice implic
numere (care arat numrul de elemente ale unei mulimi), iar operaiile logice implic valori de
adevr (corespunztoare unor afirmaii logice subnelese), modul de operare este similar i se
bazeaz pe operatori tip poart. n realitate calculele aritmetice implic grupuri de bii (cuvinte)
care reprezint coduri numerice binare. i operaiile logice se pot face la nivelul grupurilor de
bii, de exemplu, operaiile de negare cuvnt (schimbare din 0 n 1 i din 1 n zero pentru toi
biii), deplasare n cadrul unui cuvnt (poziiile biilor sunt translatate la stnga sau la dreapta),
comparare ntre dou cuvinte (bitul rezultatului va fi zero dac biii corespondeni sunt diferii).
Automatul secveial al unitii centrale trebuie s genereze semnale corespunztoare diferitelor
stri. Principiul de lucru se bazeaz pe utilizarea semnalului de ceas (impulsuri cu o anumit
frecven) i generarea unor semnale diferite n funcie de numrul strii, corespunztor
numrului de ordine al impulsului curent (Fig.*).

Oscilator

Impulsuri
de tact

Numrtor
A

Cod binar

Decodificator
(de stri)
Semnale activare stri
O0 O1 O2 O3 O4 O5 O6 O7

Fig.*. Principiul de generare al semnalelor de stare


Circuitul numrtor genereaz la ieire un cod corespunztor numrului impulsului de la intrare
(reprezentat de biii: A, B, C). Aceasta se poate efectua dac tranziia strilor este produs nu de
palierele impulsurilor, ci de fronturile acestora. n Fig.* sunt prezentate, pentru cazul unui
numrtor cu patru stri, formele de und corespunztoare impulsurilor de intrare i strii ieirilor
(A i B) ale numrtorului. n funcie de acestea, decodificatorul va activa cte o ieire (O 0, O1,
O2, sau O3) cu numrul de ordine dat de codul de la ieirea numrtorului, aceasta trecnd n
starea 1, restul ieirilor rmnnd n starea 0.
Pentru cazul din Fig.*, tabelele de adevr corespunztoare numrtorului de trei bii (cu opt stri)
i decodificatorului cu opt ieiri, sunt urmtoarele:

ASC Dan Olaru

Tabelul 1
Numrul
impulsului
0
1
2
3
4
5
6
7

Ieiri: ABC
(numrtor)
0 0 0
0 0 1
0 1 0
0 1 1
100
101
110
111

Ieiri: O0 O1 O2 O3 O4 O5 O6 O7
(decodificator)
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1

Impulsuri la intrarea numrtorului


Strile ieirii B a numrtorului

Strile ieirii A a numrtorului

00

01

10

11

A=0
B=0

A=0
B=1

A=1
B=0

A=1
B=1

O0=1

O1=1

O2=1

O3=1

Codurile corespunztoare strilor A i B

Ieirea activ a decodificatorului


(cu nivelul 1, restul avnd nivelul 0)

Fig.* Formele de und i strile la intrarea i ieirile unui numrtor de 2 bii (patru stri).
Bineneles, dup un anumit numr de impulsuri ciclul main se reia. n realitate coninutul i
succesiunea strilor depinde i de codul instruciunii active. Deci, n locul unui numrtor simplu
aciuneaz, de fapt, un circuit de secven ale crei tranziii de stri sunt comandate de
impulsurile de tact.
In cadrul procesorului, semnalele corespunztoare fiecrei stri active comand direcia fluxurilor
de date i ncrcarea registrelor cu operanzi de intrare, rezultate de ieire sau date transferate, de
la, sau ctre, magistralele interne sau externe. Dirijarea fluxurilor de date este guvernat de
circuite multiplexoare care dirijaz semnalele, corespunztoare datelor de intrare, ctre un grup
sau alt grup de ieiri, n funcie de nivelul semnalului de selecie.
Structura minimal a unitii centrale
Unitatea central, n principal, are rolul de a executa operaii artmetice i logice cu date
(organizate n cuvinte) stocate n memoria RAM. Aceasta se ralizeaz conform unei anumite

ASC Dan Olaru

secvene de lucru, specifice unei anumite instruciuni. Deci, n principiu, aa cum s-a artat mai
sus, procesorul trebuie s conin o unitate de comand (UC), cu rol de automat secvenial, i o
unitate aritmetic-logic (ALU- aritmetic logic unit), cu rol de operator efectiv. Pentru ca datele
s fie procesate, trebuie s fie prezente la intrrile unitii aritmetic-logice. Dac comunicaia cu
memoria RAM se realizeaz (ca de obicei) printr-o singur magistral, rezult c, chiar dac un
operand ar fi preluat direct de pe magistral, trebuie s existe cel puin un registru care s
stocheze cellalt operand i cel puin un registru Latch n care s fie depus rezultatul, care apoi
urmeaz s fie transferat tot n acumulator. Plasarea operanzilor trebuie specificat la nivelul
instruciunilor de program. Astfel, procesorul trebuie s conin, cel puin, un registru de
manevr, cu rol de memorie temporar, numit Acumulator care s poat fi referit i de
instruciunile main. Aceastea fac parte din limbajul de asamblare ale crei instruciuni
corespund, n mod direct, cu secvenele de lucru ale procesorului.
Pentru aducerea fiecrei instruciuni din memorie (prin ciclul de fetch), sub forma codului
corespunztor, reprezentat pe unul sau mai multe cuvinte, este necesar adresarea ei. Prin aceasta
se nelege citirea cuvintelor de cod de la adresele corespunztoare din RAM. Rezult c este
necesar s existe un registru care s conin adresa instruciunii urmtoare, numit contor de
program (PC-program counter) sau numrtor de instruciuni. Cuvintele de cod pariale ale
instruciunii, dac este cazul, vor fi citite automat, n mod succesiv, avnd ca referin adresa din
rmn.
n cadrul funcionrii unui procesor este necesar ca anumite informaii simple s fie transmise de
la o instruciune la alta. Acestea, de regul, pot fi reprezentate cu cte un singur bit i sunt
memorate ntr-un set de bistabili care formeaz registrul de stare al procesorului, numit de
regul, PSW (program status word). Aceste informaii de cte un bit se numesc indicatori de
stare sau Flag-uri (fanion). Ca exemplu de indicatori de stare pot fi enumerai: bitul (Flagul) de
Transport sau mprumut, necesar operaiilor aritmetice pe mai multe cifre binare, bitul de Zero,
activat atunci cnd rezultatul unei operaii aritmetice sau de comparare este zero, bitul de
ntrerupere care indic activarea ntreruperilor hardware, etc.
Rezult c structura minimal a unui procesor trebuie s conin, alturi de ALU i UC registrele
PC, AC i PSW. n Fig.* sunt reprezentate conexiunile dindre acestea, care pot avea un caracter
bidirecional: AC-ALU-MD (pentru transferul operanzilor), PSW-ALU, PSW-UC (pentru
transferul biilor de stare sau unidirecional UC-MC (pentru transmisia comenzilor), UC-PC
(pentru ncrcarea numrtorului de instruciuni), MD-UC (pentru ncrcarea codului
instruciunilor), UC-ALU (pentru transmisia codului de operaie). Trebuie menionat c
decodificarea codului instruciunii se efectueaz la nivelul unitii de comand, care n funcie de
aceasta stabilete secvena de lucru.
Pentru funcionarea eficient a unui calculator mai sunt necesare, chiar n structurile minimale,
implementate la nivelul celor mai simple procesoare, registre indicator (RI) de stiv (SP-stack
pointer) i registre de tip Index. Indicatorul de stiv conine adresa (relativ) a vrfului de stiv.
Utilizarea stivei este foarte eficient, mai ales atunci cnd se lucreaz cu mai multe programe
simultan, cnd este necesar ntreruperea reciproc a acestora, n timpul execuiei prin partajare
n timp (time sharing). n acest caz este necesar salvarea (memorarea) informaiilor de stare a
programului ntrerupt (coninutul PC i PSW) pentru a putea fi reluat dup terminarea procesului
de ntrerupere. Adresarea stivei este foarte simpl (numai prin coninutul SP), pentru c datele
sunt memorate la adrese succesive i apoi sunt extrase n ordine invers. Aceasta permite, ntr-o

ASC Dan Olaru

manier eficient, lucrul cu mai multe programe, care se pot ntrerupe reciproc, informaiile de
stare respective fiind memorate n stiv n ordinea n care au avut loc ntreruperile.
Registrele de tip Index sunt foarte utile atunci cnd se utilizeaz adresarea idexat. n acest caz
adresa cuvntului de date cutat se gsete, la rndul ei, ntr-o locaie descris de o alt adres.
Adresarea indexat se folosete cnd se lucreaz n acelai segment de memorie. n acest caz
adresa bazei segmentului rmne aceeai i se schimb, pe parcursul execuiei numai adresa
relativ din interiorul segmentului. Deci, fiecare adres absolut (propriu-zis) va fi format din
adresa bazei segmentului suplimentat cu adresa relativ. Astfel, este mai efucient ca contorul de
program (PC) s lucreze numai cu adresa relativ, iar adresa bazei s fie memorat n registrul
index (RI).
Procesoarele performante, de regul, conin mai multe regisre index i mai multe registre de
manevr cu funcii multiple, numite i registre generale pentru a putea lucra simultan cu mai
multe programe. Aparent, ar fi benefic ca dimensiunea setului de registre s fie ct mai mare,
pentru a putea crete viteza de transfer i operare a datelor. Totui, actualizarea lor cu datele
aflate n memoria RAM devine dificil i dureaz mai mult, mai ales c aceasta trebuie fcut
prin instruciuni mai multe i mai complicate. De aceea se prefer utilizarea memoriei Cache care
realizeaz transferulri rapide i este manevrat, n mod automat de ctre procesor.
INT

Bistabil
ntrerupere

Unitate de
Comand
UC
PC
AC

PSW

ALU
Magistral comenzi (MC)
Magistral adrese (MA)
Magistral date (MD)

Clasificarea structurilor de procesoare


Dac se ine seama de explicaiile de mai sus, rezult c structurile de memorie temporar sau de
manevr, la care are acces procesorul pot fi diferite i cu dimensiuni diferite. Astfel, putem avea o
configuraie dominat de un set registre mai evoluat, de utilizarea mai intensiv a stivei sau de
folosirea mai intens a acumulatorului. Aceste variante nu numai c marcheaz complexitatea i

ASC Dan Olaru

costul sistemului de calcul dar influeneaz n mod direct structura i modul de realizare al
programelor. De regul, un calculator mai complex hardware va putea avea instruciuni main
mai complexe, o programare mai eficient i o putere de calcul mai mare. Dac structura
hardware este mai simpl, funciile calculatorului trebuie compensate, la nivel de program, adic
prin software, programarea devenind mai puin eficient i timpul de lucru mai lung.
n aceast ordine de idei, se poate face urmtoarea clasificare a configuraiilor de calculator:
structuri de calculatoare orientate pe acumulator, structuri orientate pe stiv sau structuri
orientate pe registre generale.
Unitatea central cu un singur tact
Este cunoscut faptul c, pentru realizarea operaiilor la nivelul unitii centrale sunt necesare
transferuri de date ntre registre (accesibile sau nu prin instruciunile limbajului main) sau la
nivelul magistralei, ctre memorie sau echipamentele de intrare/ieire. Aceste transferuri necesit,
de fapt, activarea unor stri ale procesorului, prin semnalele produse de decodificatorul de stri.
Este deci necesar ca execuia unei instruciuni s conin un numr de stri main organizate sub
form de cicli masin i faze de execuie.
Totui, pentru nelegerea mai uoar a funcionrii unitii centrale este util considerarea unei
structuri ct mai simple, dar care s ofere aceeai funcionalitate. Aceasta este reprezentat de un
procesor modelat de maina cu un singur tact.
n mod convenional, se poate considera c prelucrarea datelor la nivelul unui sistem de calcul
const, de fapt, n modificarea succesiv a coninutului unei memorii la care cile de intrare (date
scrise) i cile de ieire (date citite) sunt separate i au linii de adres individuale. Aceast
memorie ar conine, la nceput, alturi de program, i datele de intrare corespunztoare, iar dup
execuie, datele de ieire ale programului.
La fiecare pas de execuie, operatorul ALU (aritmetic-logic unit) calculeaz un rezultat pe baza
operatorilor de intrare i a codului de operaie. Semnalul de tact ccomand scrierea simultan a
informaiilor n registru de adrese, memorie i registru tampon. Se consider c registrul de
adrese i registrul tampon au o vitez de scriere sporit fa de memorie. Astfel, datele vor putea
fi stocate n registrul tampon, nainte ca starea ieirilor memoriei s se schimbe. Registrul de
adres asigur stabilitatea codului de adres pe durata scrierii n memorie. Se observ c n
aceast configuraie o instruciune de salt poate aciona dect dup execuia instruciunii care o
urmeaz.
Se observ c acest model ipotetic de calculator se folsete un singur semnal de comand, deci
reprezint o main de stri cu un singur impuls de tact. Funcionarea este posibil datorit
timpului de propagare la nivelul memoriei. Concluzia este c aceast construcie este posibil, dar
nu este eficient datorit intervalelor de siguran care trebuie s existe ntre valorile timpilor de
tranziie, deci nu poate fi folosit frecvena maxim de lucru specific unei anumite tehnologii.

ASC Dan Olaru

Registru de adrese
Program + operanzi

Salt instruciune urmtoare

Adrese instruciuni,
operanzi i rezultate

Tact scriere

Memorie
program,
date de intrare,
date de ieire

Rezultate

Cod operaie, valori


operanzi i rezultate
Registru tampon

Operator ALU
(aritmetic i logic)
Fig.*. Schema convenional a unei maini cu un singur tact
Mai interesant ar fi s se considere tot o structur ipotetic de calculator, dar la care s poat fi
individualizate structura cuvintelor de date i a semnalelor de comand. Dei este mai realist, nici
acest concept nu se folosete n realitate, dar este important pentru c evideniaz modul de
funcionare a unui model de procesor care utilizeaz un numr minimal de blocuri i semnale
interne.
Pentru a putea fi generate semnalele utilizate n scheme, trebuie s fie cunoscut structura codului
instruciunii de program. Tipurile de instruciuni decodificate i interpretate de unitatea central
corespund unui anumit limbaj main sau limbaj de asamblare. Acesta face referire chiar la
componentele (care joac rolul de argumente sau variabile), modul de funcionare i operatorii
specifici structurii electronice a unui anumit tip de procesor. Spre deosebire de limbajul main,
limbajele de nivel nalt, destinate, de obicei utilizatorilor, folosesc instruciuni specifice unui
anumit mod de operare sau unui anumit tip de variabile, care nu are legtur cu structura
procesorului. De aceea, pentru a putea fi executate este necesar ca fiecare instruciune s fie
transformat (translatat sau compilat) n mai multe instruciuni main, cu o structur mai
simpl, prin aciunea unui porogram numit translator sau compilator.
O instruciune main este reprezentat de un cod binar care este interpretat de ctre logica
electronic (circuitele logice) a unitii centrale. Trebuie menionat c limbajul de asamblare
coorespunde limbajului main dar, pentru a fi mai uor de utilizat, reprezentarea se face cu
ajutorul unor denumiri textuale, numite mnemonice.
Instruciunile main sunt stocate n memoria de program i decodificate de catre circuitele
combinaionale ale decodificatorului de instruciuni. Acesta permite identificarea cmpurilor (sau
zonelor) codului instruciunii, generarea semnalelor de comand, a codurilor de operaie, i a
codurilor de identificare a operanzilor.

ASC Dan Olaru

n general, se poate considera, n mod pur convenional, c un cod de instruciune poate conine
trei cmpuri, ca mai jos.
Cod operaie

Cod operand A

Cod operand B

Codul de operaie specific tipul operaiei aritmetice, logice sau de transfer care trebuie realizat.
Codul operanzilor furnizeaz informaiile de identificare pentru primul i al doilea operand de
intrare, dar i pentru plasarea rezultatului care va fi suprapus peste operandul A. Trebuie
specificat c, n funcie de codul de operaie, codurile operanzilor vor putea reprezenta: adrese ale
operanzilor, coduri pariale de adres (adres relativ, adres n interiorul unui segment, etc.),
coduri referitoare la regitre, adrese de salt sau indicaii de translatare a adresei curente (Offset).
Schema mainii cu un singur tact trebuie s conin, pe de o parte logica de operare a datelor de
intrare i pe de alt parte logica de adresare a instruciunii urmtoare, respectiv cea de
decodificare i generare a semnalelor de comand. Prin termenul logic, n acest context se
nelege ansamblul de circuite electronice binare sau logice a structurii respective.
Pentru a reduce restriciile legate de diferenele ntre timpii de tranziie a strilor memoriei sau
registrelor se va considera c modelul de procesor este de tip Load/Store adic utilizeaz
instruciuni speciale i separate pentru accesele la memorie adic pentru operaii de ncrcare din
memorie (Load) i, respectiv, scriere n memorie (Store).
Schema de operare a datelor de intrare (Fig.*) conine urmtoarele componente (blocuri):
- operatorul aritmetic-logic (ALU);
- blocul registrelor generale (REG);
- blocul memoriei de date (MemD);
- multiplexorul datelor de intrare (MuxD);
- multiplexorul datelor de ieire (MuxR);
R1 R2 Rd

OpIm
DatIm

WR

Load

MuxD

CK
CRd

CodOp

REG

CR1

ALU

CR2

WM
CK

AdrM

MuxR

MEMD

Fig.*.Schema de operare a datelor de intrare


Principiu de funcionare este urmtorul. La intrarea operatorului aritmetic (ALU), comandat de
codul de operaie (CodOp) operanzii sunt furnizai, fie direct de ctre setul de registre generale
(REG) fie de multiplexorul MuxD. Dac semnalul OpIm este activ, nseamn c este vorba de un

ASC Dan Olaru

operand imediat, adic specificat chiar n codul instruciunii. Atunci multiplexorul va prelua
operandul direct de la decodificatorul de instruciuni. n caz c operanzii implic setul de registre,
numele (codurile) registrelor care vor conine operanzii respectivi, specificate n codul
instruciunii, vor fi identificate de semnalele R1, R2 i Rd obinute tot prin decodificatorul de
instruciuni. Acestea indic registrii operanzilor de intrare (RG1, RG2) i registrul destinaie
pentru rezultat (RGd). Astfel, la ieirile CR1 i CR2 va fi transmis coninutul registrelor RG1i
RG2, iar coninutul de la intrarea CRd va fi nscris n registrul RGd.
Rezultatul, selectat prin multiplexorul MuxR (atunci cnd semnalul Load nu este activ) va fi
nscris n registrul destinaie, specificat cu codul RGd, la apariia semnalului de tact sau de ceas
(CKclock). Se presupune c operaia de scriere este suficient de rapid, astfel nct, starea
celorlalte circuite s nu se schimbe.
Aa cum s-a spus mai sus aceast schem corespunde unei maini (procesor) de tip Load/Store
care are instruciuni speciale i separate pentru accesul la memorie (de date). n cazul
instruciunilor de prelucrare a datelor, acestea utilizeaz numai setul de registre, fr a implica
memoria de date. Atunci cnd apar instruciuni de tip Load, de ncrcare din memoria de date,
semnalul Load este activat i multiplexorul MuxR selecteaz ieirea memoriei de date.
Coninutul (cuvntul) de la adresa specificat de semnalele Adr va fi transmis, prin multiplexor,
ctre setul de registre i nscris, atunci cnd semnalul CK devine activ, ntr-unul din regitrii
pentru operanzi. Operandului respectiv va deveni utilizabil, la o instruciune de operare
urmtoare. Atunci cnd apar instruciuni de tip Store, de nscriere din memoria de date, odat cu
apariia semnalului CK, coninutul cuvntului ce va fi scris va fi preluat din setul de regitrii. Este
interesant c, dei, att setul de registre ct i memoria de date folosesc acelai semnal de
comand pentru scriere (CK), nu apare nici un conflict de transfer datorit faptului c sunt
folosite instruciuni diferite, care vor activa, fie semnalul WR, fie semnalul WM.
Logica de determinare a adresei instruciunii urmtoare este dat de schema din Fig.* i conine
urmatoarele componente:
- blocul memoriei de program (MemPrg);
- registrul numrtor de instruciuni (PC);
- multiplexorul de adres (MuxA);
- sumatorul de incrementare (SumI);
- sumatorul de adresare (SumA).

ASC Dan Olaru

SumI

Salt
MuxA

LCod

Adr

PC

SumA

Date

MemPrg

PrgDec

CK

AdrJ
AbsJ

Fig.*. Schema de calcul a adresei instruciunii urmtoare.


Principiul de funcionare este urmtorul. Dac instruciunea precedent nu este una de salt, atunci
adresei instruciunii urmtoare se calculeaz prin incrementare (adunare) cu un numr
corespunztor numrului de cuvinte de cod ale instruciunii precedente (LCod), cu ajutorul
sumatorului SumI. De exemplu, dac aceasta se ntinde pe dou cuvinte, se va aduga valoarea
doi. n caz c instruciunea precedent este una de salt la alt adres n program, atunci adresa
urmtoare se calculeaz adunnd la adresa precedent valoarea specificat n instruciunea de salt
(AdrJ), cu ajutorul sumatorului SumA. Se lucreaz aa deoarece deoarece, n mod obinuit,
salturile se realizeaz ntr-o manier relativ fa de adresa precedent. n caz c apare o
instruciune de salt care conine o adres absolut, sumatorul va aduna valoarea zero. Adresa
instruciunii urmtoare va fi ncrcat n registrul numrtor de instruciuni (PC), la activarea
semnalului CK i va fi folosit de memoria de program. Scrierea acesteia se face numai prin
procedura de ncrcare a programului, naintea nceperii execuiei. Timpul de tranziie al
numrtorului de instruciuni trebuie s fie mult mai scurt dect cel de citire din memorii sau cel
de propagare prin circuitele de operare sau de control al fluxului de date.
La ieirea memoriei de program va apare codul instruciunii, corespunztor adresei respective.
Acesta este introdus n Decodificatorul de instruciuni (PrgDec) din Fig.*, care furnizeaz la
ieire semnalele de comand sau codurile necesare celor dou scheme.
MemPrg

PrgDec
Load WR WM

R1 R2 Rd AdrM CodOp OpIm DatIm

Salt AdrJ AbsJ LCod

ASC Dan Olaru

Procesoarele microprogramate
Aa cum s-a artat, unitatea central (procesorul) poate fi partajat n dou seciuni principale, i
anume, unitatea de comand (UC) i unitatea aritmetic i logic (ALU). Unitatea de comand
sau automatul secvenial, prin strile care le parcurge, realizeaz transferurile de date interne sau
externe (prin comanda magistralei). Transferurile interne sunt efectuate fie ntre regitrii
accesibili de utilizator, prin instruciunile main, fie ntre registre Latch cu rol de memorii
tampon pentru funcionarea corect a unitii aritmetice/logice. Unitatea de comand poate s fie
implementat cu o reea de pori i circuite bistabile, fr ca acestea s aib destinaii privilegiate,
sau poate s aib la rndul ei o structur de main von Neumann (Fig.*). Atunci fiecare
instruciune main este considerat ca element de program la intrarea unui subansamblu, cu
structur de calculator. Astfel, execuia fiecrei instruciuni este realizat printr-o secven de
microprogram, care conine operaii (microinstruciuni) mai simple. Instruciunea main este
preluat din zona de program a memoriei, adresat prin registrul PC i este plasat ntr-un
registru de instruciuni. n funcie de codul acesteia, unitatea de secven de microprogram aduce
din memoria de microprogram secvena necesar de prelucrare a instruciunii, prin intermediul
unitii aritmetice-logice de microprogram.
Trebuie menionat c, dei microinstruciunile conin operaii mai simple, totui n anumite cazuri
lungimea unei microinstruciuni poate fi mai mare dect lungimea unei instruciuni main.
Astfel, ntr-o microinstruciune pot fi inclui toi operanzii i execuia acesteia se poate realiza
mai repede, eventual ntr-un singur ciclu de tact, folosind eventual subuniti de prelucrare care
acioneaz n paralel.
Memoria de instruciuni
(instruciuni main)

PC

Registru instruciuni
Adres
microprogram
Memoria de
microprogram

Cod
microprogram

Unitatea de secven
microprogramat

ALU
microprogram

Magistral
de date

Comunicarea cu perifericele
Comunicaia cu dispozitivele perifericele prin intermediul magistralei poate fi controlat i
comandat numai de un dispozitiv cu calitatea de Master. n afar de procesor, de regul, cel mai
important dispozitiv de acest tip este Controlerul DMA.
Trebuie remarcat faptul c dispozitivele periferice propriu-zise sau echipamentele exterioare
calculatorului nu comunic direct pe magistral ci utilizeaz un subansamblu electronic, numit
controler, interfa, cuplor sau plac. Aceasta asigur transferul, eventual memorarea
temporar a datelor, i realizeaz trecerea de la protocolul de comunicaie pe magistral (mai
rapid i mai performant) la cel al dispozitivului cuplat cu calculatorul.

ASC Dan Olaru

n cele de mai sus au fost analizat funcionarea intern a unei uniti centrale, rezumat la
execuia instruciunilor, preluate din memoria de program i prelucrarea datelor aflate n memoria
de date. ns, pentru a putea comunica cu dispozitivele conectate pe magistral trebuie utilizate
semnale de comand specifice. Trebuie remarcat c, semnalele utilizate pot avea un caracter
sincron sau asincron. Un semnal este sincron dac este generat conform unei anumite secvene
sau protocol. Deci, acesta este generat ntr-un moment de timp corelat sau aflat n
interdependen cauzal cu semnalele care identific sau genereaz fazele de funcionare a
procesorului. n caz c apariia semnalului este independent, deci poate apare la un moment de
timp oarecare, eventual datorit unui eveniment exterior, se consider c semnalul este de tip
asincron.
n mod obinuit, comunicaia sincron se realizeaz pe parcursul ciclurilor de citire sau scriere n
memorie. Acestea folosesc semnalele de citire sau Read (R) i de scriere Write (W). Trebuie
remarcat c spaiul de adresare a dispozitivelor periferice este mult mai restrns dect cel al
memoriei (RAM). La un periferic spaiul de adresare se refer, de regul, la adresele registrelor
interfeei respective, destinate transferului de date, biilor de stare sau mesajelor de comand.
Acestea au un numr de adrese mai restrns i este firesc ca adresarea s se realizeze separat,
pentru memoria RAM i pentru periferice, cu un numr de bii mai redus n ultimul caz. Pentru a
putea departaja cele dou tipuri de adrese, sunt utilizate semnalele suplimentare de selecie,
notate de regul cu MEM i I/O.
Pentru comunicaia ntre procesor i celelate dispozitive, eventual chiar de tip Master poate
necesita, da la caz la caz identificarea unor cicluri de funcionare a procesorului. Cel mai des se
utilizeaz un semnal, (notat M1) sau eventual dou semnale (notate S1,S2).
Necesitatea controlerului DMA apare atunci cnd este necesar realizarea i coordonarea unei
transmisiei rapide (de exemplu, ntre memorie i unitatea de disc) a unor cantiti importante de
date (masive de date) printr-un protocol special numit DMA (direct memory acces). Acesta
necesit cteva faze preliminare de programare la nivelul controlerului DMA a informaiilor de
adres a dispozitivelor surs i destinaie, de lungime de mesaj, de prioritate a transferului i de
obinere a controlului magistralei. Pentru aceasta sunt emise, ctre procesor, semnale de cerere a
controlului magistralei (BUSRQ). Dac este posibil eliberarea magistralei (prin terminarea
transferurilor n curs), procesorul rspunde cu semnalul BUSAQ. Atunci ieirile circuitului DMA
va putea controla liniile de adres sau de date.
Exist situaii cnd activitatea procesorului trebuie iniializat, ntrziat, sau chiar oprit. n acest
scop sunt folosite semnalele: RESET, WAIT i HOLD.
n primul caz, semnalul RESET poate fi primit de procesor ntr-o manier asincron, de regul
dup conectarea la tensiunea de alimentare sau dup generarea unei erori grave care impune
trecerea tuturor circuitelor ntr-o stare iniial bine definit. Aceasta, de obicei, implic ncrcarea
cu bii zero a anumitor registre (n primul rnd numrtorul de instruciuni PC), fixarea
bistabililor de stare i control ntr-o anumit stare i declanarea, dup un anumit timp a secvenei
de ncrcare a primei instruciuni de program.
Semnalul WAIT, aa cum s-a amintit i mai sus are rorul de a prelungi durata ciclului main,
pentru ca anumite dispozitive mai lente s poat prelua date sau s execute comenzi, procese care
implic, de fapt, o operaie de scriere n registrele acestuia.

ASC Dan Olaru


RESET
HOLD
HOLDA
WAIT
BUSRQ
BUSAQ
INT
INTAQ

CPU

M1
MEM
I/O
R
W

Fig.*. Conexiunile i semnalele de comand la nivelul unitii centrale.


Comunicaia sincron este avantajoas atunci dispozitivul Master este acela care iniiaz i
termin comunicaia cu un dispozitiv care primete comenzi sau este implicat ntr-un proces de
scriere sau citire. Exist ns cazuri, foarte frecvente n modul de lucru al calculatorului cnd
dispozitivul Slave este acela care trebuie s iniieze sau s determine sfritul procesului de
comunicaie, datorit unui eveniment exterior calculatorului sau intern dispozitivului Slave. De
exemplu, n cazul unui defect de tiprire, imprimanta este aceea care trebuie s cear oprirea
transferului de date. Dac problema se rezolv, tot imprimanta este aceea care trebuie s cear
reluarea comunicaiei. Foarte interesant, da asemenea, este comunicaia cu dispozitivele de
memorare pe disc. La acestea, unitatea central coordoneaz comunicaia, ns transferul de date
nu se poate face imediat, ca n cazul memoriilor electronice (de tip RAM) i nici ne este eficient
ntrzierea cu semnale de tip WAIT.
Dispozitivele cu disc sunt caracterizate de un transfer de date rapid, mai ales la hard-disk, rata de
transfer fiind determinat de viteza de rotaie a discului (de fapt viteza periferic n dreptul
capului de citire/scriere). Totui, datorit modului de organizare a datelor pe disc, procesul global
de comunicaie implic manevre intermediare. Astfel, poziionarea capetelor de citire/scriere,
cutarea cilindrului (pistei) i sectorului pe care se gsesc datele, sincronizarea fluxului de date cu
poziia de nceput i sfrit de sector, etc., necesit comenzi suplimentare, la care dispozitivul
poate rspunde relativ lent. n plus, se pot utiliza uniti de disc multiple, conectate printr-o
magistral special, care pot comunica aparent simultan, cnd fiecare dintre ele poate realiza
funcii diferite i se poate afla n stri diferite. Deci n timp ce una dintre uniti realizeaz o
anumit manevr, alt unitate poate transfera date sau primi comenzi. n plus, chiar nre
intervalele de timp necesare pentru realizarea comenzilor intermediare, procesorul poate executa
poriuni din alte programe.
Rezult c folosirea semnalelor de tip WAIT este total ioportun i mai avantajoas este
utilizarea unui mod de lucru prin care dispozitivul Slave s poat ntina dispozitivul Master
asupra strii lui i asupra inteniilor care le are n legtur cu iniierea sau oprirea unui proces

ASC Dan Olaru

de comunicaie. n acest scop pot fi folosite dou modaliti. Fie, procesorul (sau Master-ul)
testeaz periodic starea dispozitivului Slave, fie acesta transmite un semnal de informare asupra
unei schimbri semnificative de stare. Dac a aprut o schimbare stare, dispozitivul Master poate
iniia o procedur de interogare a strii, dup care s iniieze un transfer de date sau o transmisie
de comenzi. Este evident c a doua soluie este mai eficient deoarece dialogul ntre dispozitive
ia natere numai n momentul unei schimbri de stare. Testarea reciproc a strii consum timp
preios, mai ales pentru procesor, care are vitez mare de lucru i poate realiza alte funcii n acest
interval.
Primul procedeu poart denumirea de poling, adic Master-ul interogheaz periodic starea
dispozitivului, pn cnd se produce evenimentul ateptat. Acest mod de lucru este ineficient i
rar utilizat, numai n cazuri speciale.
Al doilea procedeu, numit mod de lucru n ntreruperi este specific modului de operare al
procesorului. Denumirea arat c acest mod de comunicaie degreveaz procesorul de o sarcin
permanent (cum este poling-ul), acesta ntrerupndu-i activitatea curent numai la cerere. n
acest caz, atunci cnd apare o schimbare de stare semnificativ, perifericul (dispozitivul Slave)
transmite un semnal de ntrerupere (notat de regul cu INT), pe o linie special de comand a
magistralei, ctre o intrare special a procesorului, care va rspunde cu un semnal de aceptare a
ntreruperii, notat IAQ (interrupt acknowledge). Apariia acestui semnal este memorat de un
bistabil special care va da natere la o secven de ntrerupere. Aceasta intr n aciune dup
terminarea execuiei instruciunii aflate n curs, i va avea ca efect urmtoarele operaii:
- procesorul elibereaz magistrala de date (ieirile trec n starea izolat);
- procesorul transmite semnalul IAQ (interrupt acknowledge);
- perifericul transmite vectorul de ntrerupere pe magistrala de date;
- procesorul citete vectorul de ntrerupere i calculeaz adresa procedurii de serviciu;
- procesorul execut procedura de serviciu a ntreruperii.
Vectorul de ntrerupere reprezint adresa (sau adresa relativ) a locaiei de memorie unde se
gsete procedura (programul) care conine instruciunile ce trebuie executate n urma apariiei
ntreruperii. Trebuie menionat c aceste ntreruperi sunt de tip hardware, pentru c utilizeaz
semnale i circuite electronice specializate, spre deosebire de ntreruperile de tip software,
reprezentate de instruciuni de salt la o alt adres, corespunztoare unei anumite proceduri
speciale, n timpul execuiei unui program.
n realitate, un calculator utilizeaz mai multe linii pe care pot fi transmise semnale de
ntrerupere, dotate cu diferite nivele de prioritate. Acestea indic prioritatea sau ordinea de
servire a unei ntreruperi, atunci cnd sunt emise simultan mai multe semnale de ntrerupere.
Prioritatea ntreruperilor poate fi stabilit, pe de o parte prin identificarea intrrii de ntrerupere,
atunci cnd nu se utilizeaz o intrare unic. Atunci cnd numrul de periferice care pot lansa
semnale de ntrerupere depete numrul de intrri respective, situaie care poate apare frecvent,
este necesar stabilirea prioritii prin modul de conexiune al perifericelor la liniile de
ntrerupere, corespunztor unei anumite soluii constructive. Cel mai utilizat este modul de
conectare lan sau n cascad, exemplificat n Fig.*, pentru trei dispozitive periferice.

ASC Dan Olaru

INT

Procesor

IAQ

DP1

DP2

DP3

RIA1 EIA1

RIA2 EIA2

RIA3 EIA3

Magistral de date

Fig.*. Asigurarea prioritilor de ntrerupere prin conexiune lan.


n aceast schem semnalul de acceptare a ntreruperii, IAQ emis de ctre procesor trece prin
circuite electronice specializate, la nivelul dispozitivelor periferice. Fiecare periferic este dotat cu
cte un receptor (RIA1, RIA2, RIA3) i cu cte un emitor (EIA1, EIA2, EIA3) de semnal. Acestea
sunt comandate electronic, astfel nct dac un periferic nu a transmis nici un semnal de
ntrerupere INT pe linia comun, atunci transmite mai departe semnalul IAQ, iar dac un
periferic a transmis un semnal de ntrerupere, atunci semnalul IAQ nu este transmis mai departe,
ctre urmtorul periferic. Rezult c, dac mai multe periferice transmit simultan cereri de
ntrerupere, propagarea semnalului de confirmare, ntre periferice va fi oprit de dispozitivul care a
transmis semnal INT, aflat cel mai apropiat de procesor. Deci, prioritatea de ntrerupere este
stabilit de modul de aezare a perifericelor n conexiunea cascad.
Conexiunea UC Controler - Periferic
Orice comunicaie ntre unitatea central i un dispozitiv periferic se realizeaz prin intermediul
unei interfee (cuplor), care poate fi integrat pe placa de baz, conectat direct la magistrala
calculatorului. Dispozitivul periferic poate face parte din configuraia calculatorului (n aceeai
carcas), cum sunt, de regul, unitaile de discuri sau se poate afla n exterior (ca de exemplu,
imprimanta). n orice caz, legtura dintre cuplor i periferic se face printr-o conexiune special,
diferit, ca mod de funcionare i performane, de magistrala calculatorului.
SO + INT
Unitate
central

PSI
Controler
ntreruperi

Magistral adrese

Registre
stare

Magistral date

Registre
comenzi

Magistral comenzi
R/W, sincronizri

Cerere de
ntrerupere

Registre
date (mem)
Generator
ntreruperi

Conexiune
dedicat

Periferic

ASC Dan Olaru

n general, indiferent de tipul de periferic, legtura cu unitatea central folosete anumite


concepte i mijloace specifice. Funciile de baz trebuie s asigure: transmisia datelor (de regul
bidirecional), determinarea strii perifericului i comanda acestuia. Funciile de interogare a
strii i de comand implic, de fapt, tot transmisii de date, dar cu un caracter i semnificaie
special. La nivelul cuplorului exist elemente de memorie, configurate de regul sub forma unor
registre sau zone restrnse de memorie (buffer). Acestea sunt identificate prin coduri de adres,
aflate de obicei n zona de adrese dedicate periferiei (Intrri/Ieiri).
Comunicaia cu perifericul are loc sub forma unor secvene tipice. Unitatea central d comenzi
sau transmite date, innd cont de starea cuplorului, prin interogarea (citirea) registrului de stare.
Atunci cnd apar evenimente independente de funcionarea calculatorului (n mod asincron),
cuplorul genereaz ntreruperi (hardware), care determin saltul n subprograme speciale de
servire a perifericului (PSI programe de servire a ntreruperilor). ntrega coordonare a
perifericului este subordonat sistemului de operare (SO) i sistemului de ntreruperi software
(INT) prin care perifericul asigur diferite funcii i servicii.
Conexiunea dedicat cu perifericul, n general are caracteristici similare unei magistrale, dar cu
posibiliti i performane mai restrnse.
Arhitecturi complexe
Pentru mrirea performanelor procesoarelor, n afara alegerea unei anumite arhitecturi interne,
optimizate dintr-un anumit punct de vedere, se utilizeaz diferite strategii bazate pe conceptul
prelucrrii paralele. Aceasta se refer, fie la execuia simultan a unor instruciuni diferite (cazul
calculatoarelor vectoriale sau paralele), fie la realizarea simultan a unor operaii pariale,
necesare prelucrrii instruciunilor (cazul calculatoarelor pipe-line). n primul caz, unitatea
central conine mai multe procesoare identice, destinate execuiei paralele a instruciunilor.
Chiar dac acestea exist, ele nu pot fi utilizate eficient dect dac succesiunea instruciunilor
este cunoscut i dac acestea sunt independente, adic o instruciune nu trebuie s conin ca
operanzi de intrare date rezultate din execuia altor instruciuni.
Din punct de vedere istoric, elemente de prelucrare paralel s-au folosit odat cu apariia coprocesoarelor numerice i a procesoarelor de date grafice. Primele erau capabile s execute, n
mod independent, instruciuni de calcul cu virgul flotant, deci cu numere zecimale, care altfel
ar fi trebuit realizate prin proceduri complexe la nivelul procesorului propriu-zis. Procesoarele
grafice erau destinate execuiei unor instruciuni de tip grafic (translaii sau rotaii geometrice, de
exemplu), efectund operaii identice asupra unor operanzi vectoriali cu cte trei componente,
corespunztor celor trei axe de coordonate ale spaiului cu trei dimensiuni.
n realitate, pe de o parte, succesiunea instruciunilor nu este cunoscut deoarece pe parcursul
execuiei programului pot apare instruciuni de salt care pot depinde de rezultate obinute pe
parcurs. Pe de alt parte, independena instruciunilor, de obicei, nu poate fi garantat. De aceea,
procesarea paralel propriu-zis nu poate fi fcut dect dac programul este construit ntr-o
form particular i conine directive speciale pentru directarea instruciunilor ctre procesoarele
paralele. Aceasta duce la o cretere a preului de rezolvare a aplicaiilor i la necesitatea rescrierii
programelor existente.
O soluie aplicabil pentru orice program este utilizarea structurii denumite Pipe-line (conduct)
sau band de asamblare. n acest caz, structura procesorului este divizat n mai multe
subuniti destinate prelucrrii instructiunii la diferite nivele, n intervale de timp diferite. Fiecare

ASC Dan Olaru

dintre subuniti este comandat de tactul (semnalul de ceas) propriu i conine memorii tampon
sub form de registre Latch. n acestea vor fi stocate coduri, corespunztoare instruciunilor,
aflate la diferite nivele de prelucrare, organizate sub form de cozi de ateptare. Structura de
coad furnizeaz la ieire datele care au fost memorate la nceputul formrii segmentului
respectiv (conceptul primul intrat primul ieit sau first in first out). Memoriile tampon
permit ca subunitile s nu atepte date de intrare, chiar dac ciclurile lor de prelucrare necesit
timpi diferii.
Prelucrarea unei instruciuni poate fi departajat, spre exemplu, ntr-o manier primar, n fazele
de: ncrcare din memorie (operaia de fetch), decodificare, execuie propriu-zis (sau calcul)
i nscrierea rezultatelor n memorie. Execuia unei instruciuni implic mai muli cicli main,
coninnd la rndul lor mai multe faze de execuie (perioade de tact sau ceas). n maniera clasic,
cnd nu este ncrcat alt instruciune, pn nu se termin execuia celei precedente, execuia
complet a unei instruciuni va necesita un anumit numr de cicli de ceas.
Dac procesorul este departajat n subuniti, spre exemplu, atunci cnd o instruciune se afl n
faza de execuie propriu-zis, alt instruciune poate intra n faza de decodificare, i respectiv,
alt instruciune poate fi ncrcat din memorie. Se poate spune c, n acest caz, c un procesor de
tip Pipe-line conine, n diferite faze de execuie, trei instruciuni diferite.
Dac subunitile sunt realizate astfel nct s poat prelucra codul intermediar ntr-un singur
ciclu de tact, rezulta c, la fiecare ciclu de ceas, pe de o parte, va fi ncrcat cte o instruciune
i, pe de alt parte, vor fi disponibile rezultatele n memorie.
Procesoare din familia Intel
Dezvoltarea calculatoarelor a fost determinat i accelerat de realizarea i evoluia microprocesoarelor. Acestea reprezint uniti centrale integrate ntr-o singur capsul. Astfel a putut fi
revoluionat proiectarea, tehnologia, realizarea efectiv, ntreinerea (mentenana) i fiabilitatea
calculatoarelor, mai ales din punctul de vedere al costurilor i timpului de realizare. Trebuie
menionat c, nainte de utilizarea -procesoarelor, costurile i eforurile de proiectare,
construcie, punere n funciune, depanare i ntreinere erau uriae i, de regul, calculatoarele
puteau fi utilizate i ntreinute numai n intreprinderi specializate (centre de calcul) dotate cu
personalul i mijloacele adecvate. n prezent, -procesorul a devenit o component universal cu
funcionalitate i fiabilitate garantat. Astfel sunt excluse problemele generate de conexiunile
dintre componentele discrete (ne-integrate), funciile procesorului fiind testate nainte de
nceperea fabricaiei, prin programe de simulare complexe. Trebuie menionat c, n structura
integrat, ansamblul de componente electronice realizate pe acelai cip de siliciu se comport ca
un tot unitar, cu proprieti de fiabilitate comparabile cu cele specifice unei singure componente.
Este interesant c, la nceput, cnd mijloacele tehnologice nu erau suficient de dezvoltate, ideea
realizrii unor dispozitive programabile integrate (logic programat) nu prea tentant i nici
viabil din punct de vedere economic. Prima realizare reuit de -procesor s-a datorat, de fapt,
ncercrii de construcie, ntr-o form mai compact, nu a unui calculator, ci a unui terminal
video (monitor sau diasplay), destinat unui calculator clasic deja existent.
Evoluia -procesoarelor a fost caracterizat de apariia, aplicarea sau dezvoltarea unor concepte
specifice arhitecturii calculatoarelor i funcionrii acestora la nivelele de baz. Dei piaa de

ASC Dan Olaru

procesoare se afl n plin evoluie, foarte interesant este evoluia -procesoarelor dezvoltate de
firma american INTEL (Integrated Electronics fondat n 1960).
Enumerarea, pe scurt, a caracteristicilor produselor reprezentative ale firmei, realizate de-a lungul
timpului, ofer o perspectiv interesant asupra evoluiei structurii i performanelor
procesoarelor.
Intel 8086 (1979): Conexiuni pentru 16 bii de date, 20 bii de adres (1MB adresai direct);
Memorie segmentat cu 16 segmente de memorie, a cte 64 kB; 2 uniti de procesare paralele;
sistem de operare MS-DOS (Micro Soft Disk Operating Sistem).
Intel 80286 (1982): 16 bii de date, 24 bii de adres (16MB adresai direct); Memorie cu
segmente de lungime variabil: 16 seg.x (1-64 kB) = 1GB pentru fiecare task (program n
execuie); Execuie Multi-task, Memorie virtual = 4GB pentru 4 task-uri procesate n paralel;
Mod de lucru protejat cu 4 nivele i comutare de task-uri; 4 uniti paralele; Utilizarea unui coprocesor matematic pentru realizarea calculelor n virgul mobil; A stat la baza configuraiei
IBM PC AT.
Intel 80386 (1986): 32 bii de date, 32 bii de adres (4GB adresai direct); 16 seg.x (1-4 GB) =
64TB; Memorie virtual = 64 TB /task; Memorie paginat, 1 pagin = 4kB; Mod de lucru real
i virtual; 4 nivele de protecie; Spaiu de memorie liniar protejat (lungimea unui segment =
spaiul adresabil); 6 uniti paralele; Co-procesor matematic extern.
Intel 80486 (1989): Configuraie analoag lui Intel 80386; Memorie Cache=8 kB (nivel L1), cu
acces ntr-un ciclu de de ceas (1CK); Arhitectur RISC (1CK); Structur Pipe-Line (1CK) cu 5
nivele pentru unitile de decodificare i execuie; Co-procesor matematic intern.
Intel Pentium I(1994): 64 bii de date, 32 bii de adres; Dou memorii Cache, pe nivelul L1, n
arhitectur MESI, separat pentru instruciuni program i date, de cte 8 kB; Dou structuri PipeLine paralele (denumite U i V), asigurnd procesarea a cte dou instruciuni pe fiacare ciclu de
ceas (CK); Ci de date interne extinse (128 respectiv 256 bii), necesare transferurilor paralele;
Estimator pentru instruciunile de salt (Branch Prediction); Registru pentru evidena
instruciunilor de salt (Branch Target Buffer); Faciliti multiproces APIC (Advanced Program
Interupt Control)
Pentium I MMX (Multi Media Extension): Conine faciliti pentru prelucrarea datelor de tip
multimedia (semnale Audio, Video), cu ajutorul instruciunilor de tip SIMD (Single Instruction
Multiple Data) i registrelor de tip DSP (Digital Signal Processor) care acioneaz asupra unor
structuri de date de tip vectorial; Memorie Cache L1 dublat la 32kB.
Pentium I PRO: 64 bii de date, 36 bii de adres (64 GB adresai direct); Structur superscalar
cu trei tronsoane Pipe-Line, putnd executa simultan 3 instruciuni pe fiecare ciclu de ceas;
Execuie dinamic a programului, avnd urmtoarele faciliti: Analiza fluxului de
microinstruciuni; Execuia instruciunilor n alt ordine (succesiunii din program), pentru a putea
reduce dependena reciproc; Prezicerea instruciunilor de salt; Execuie speculativ (prin
estimarea salturilor); Trei uniti paralele de decodificare care genereaz cte o secven de
micro-cod (micro-program); Memorie tampon pentru instruciuni (Instruction Pool); Cinci uniti
de execuie paralel (2 pentru instruciuni ntregi, 2 pentru instruciuni n virgul mobil); Unitate
de retragere-extragere a instruciunilor (Retirement Unit), pentru a reface ordinea dat de
program; Dou nivele de memorie Cache: dou pe nivelul L1, cu conexiune Dual-port, a cte
8kB (pentru cod i date) i 256kB pentru nivelul L2, avnd o magistral separat de 64 bii.

ASC Dan Olaru

Pentium II : const, n esen, ntr-un procesor Pentium-Pro, cu toate facilitile structurii MMX,
la care s-a dublat nivelul L1 al memoriei Cache.
Pentium III : const, n esen, ntr-un procesor Pentium II la care s-a extins setul de instruciuni
(70 de instruciuni suplimentare), cu noi instruciuni de tip SIMD n virgul mobil pe 32 de bii,
acionnd asupra unor pachete de date de 128 bii.
Memoria
Memoria, alturi de procesor determin n mod hotrtor performanele calculatorului. Cu ct
viteza de acces la datele sau instruciunile programului n execuie este mai mare, cu att
procesorul poate aciona (opera) mai eficient. Din motive tehnologice, aa cum s-a amintit, exist
departajarea sub forma de memorie principal (RAM) implementat cu circuite integrate
semiconductoare i sub form de memorie de mas (Hard Disc). Trebuie menionat c au existat
i ncercri de implementare a memoriei de mas cu ajutorul unor dispozitive statice (fr
micare mecanic), prin folosirea unui material cu dipoli magnetici mobili (memorie cu bule).
De-a lungul istoriei calculatoarelor, pentru memoria de mas s-au folosit diferite suporturi
(tambur magnetic, benzi magnetice, discuri magnetice demontabile, etc.). Deosebirea esenial
ntre memoria RAM i memoria de mas este modul de acces al datelor. n cazul RAM (random
acces memory) accesul se poate realiza la orice locaie (cuvnt) de memorie, dup codul de
adres. n cazul memoriei de mas accesul se face secvenial (pe banda magnetic) sau pseudosecvenial (pe disc). Astfel, datele nu pot fi citite sau scrise individual, ci numai sub form de
pachete, care includ i informaiile de sincronizare cu micarea benzii sau discului. Acest mod de
lucru permite transferul mai rapid a unor masive mari de date, pe care suportul respectiv le poate
nregistra. n cazul discului accesul este secvenial numai la nivelul sectoarelor (segmente
circulare de pist), poziionarea pe piste fiind fcut ntr-o manier aleatoare. Este astfel evident
c, din motive de vitez, n timpul execuiei parogramelor trebuie s se fac accese numai n zona
de memorie RAM. Totui, pentru a extinde spaiul de memorie zone din RAM pot fi transferate
(mapate) pe disc.
Tot aspecte de ordin tehnologic fac ca viteza de transfer la nivelul procesorului s fie mult
superioar vitezei de lucru al memoriei RAM. Aceasta face necesar ca o parte din date s fie
transferate (ntr-o manier ciclic) la nivelul memoriei Cache (memorie temporar), plasat, de
regul, pe cipul procesorului i avnd o vitez de lucru comparabil cu acesta. Deci, din punct de
vedere funcional, n mod obinuit, memoria RAM conine codul i datele programelor aflate n
execuie, care de altfel sunt memorate pe disc, iar memoria Cache conine secvene de program,
la care se fac acese mai frecvente. Astfel, este necesar ca cele trei nivele de memorie s aib
caracteristici i moduri de lucru diferite, uneori relativ complexe.
Modul de organizare a memoriilor este esenial att pentru eficiena procesrii datelor, dar i
pentru ordonarea proceselor care au loc.
Structura i adresarea memoriei
Modul de organizare a memoriei, prin identificarea anumitor structuri de date, este determinat de
fapt de modul de adresare. n acest sens sunt utilizai anumii termeni specifici.
Memoria fizic este reprezentat chiar de implementarea hardware, iar codul de adres (adresa
fizic) coincide cu semnalele de pe magistral.
Memoria logic este o reprezentare, ntr-o anumit msur, simbolic deoarece codul de adres
(adresa logic), folosit la nivelul software (deci, n program) nu mai coincide cu cel fizic, legtura

ASC Dan Olaru

realizndu-se printr-un anumit procedeu de calcul (de exemplu, translatarea adreselor). Aceasta
permite n program s poat fi utilizate adrese convenionale care s nu depind direct de
structura calculatorului i de modul de execuie a programului. Calculul adreselor propriu-zise
(fizice) se va realiza prin intervenia Sistemului de operare.
Dac n cadrul unei zone de memorie logic codurile de adres sunt consecutive, spunem c
memoria sau adresarea este liniar.
Pentru a mri eficiena lucrului, dar i pentru a asigura evidena operaiilor efectuate, memoria
poate fi structurat, cptnd atributele sau caracteristicile de : Memorie paginat, Memorie
segmentat i Memorie virtual.
Memoria este paginat atunci cnd sunt definite anumite zone, de regul cu lungime fix
(corespunztoare spaiului adresabil). Acestea sunt identificate printr-o adres de pagin, n
interiorul crora se lucreaz cu o adres relativ, avnd ca referin adresa de nceput de pagin.
mprirea n pagini nu ine cont de coninutul zonelor de memorie. Aceasta este ns avantajoas
pentru uurarea transferurilor de date ntre diferitele dispozitive de memorare. Deoarece, de
regul, execuia unui program utilizeaz cu predilecie anumite zone continui de memorie este
firesc, ca atunci cnd este cerut accesul la o anumit adres s se tranfere, ntr-o manier
temporar (n cache sau de pe disc) i pagina care o conine.
Memoria este segmentat dac se lucreaz cu segmente de memorie, corespunztoare unor
anumitor structuri de date (instruciuni de program, date, zone alocate execuiei unui program,
etc.). i n acest caz, codul de adres este departajat n adresa de segment i adresa relativ din
cadrul segmentului respectiv (adres efectiv). Totui, mprirea pe segmente este legat de
structura programelor i nu de forma blocurilor de date transferate.
Memoria este virtual dac spaiul de adrese depete ca dimensiune pe cel al memoriei fizice.
Astfel, n mod aparent ar apare adrese care nu pot s aib coresponden n memoria RAM. Calea
de rezolvare depinde de context. Dac zonele aparin mai multor programe care se afl n
execuie simultan (n modul time sharing), acestea sunt mapate n memoria RAM numai pe
durata de timp alocat programului respectiv. Dac un anumit program necesit o zon de
memorie mai mare dect cea disponibil n RAM, aceasta va fi extins pe disc sub forma unei
structuri asemntoare celei din RAM (RAM virtual).
Mecanismele de gestionare a memoriei au ca scop mrirea eficienei execuiei programelor.
Totui, din motive de portabilitate (independena fa de configuraia hardware i software a
calculatorului) coninutul acestora nu trebuie s conin informaii referitoare la utilizarea i
structura memoriei. De aceeea, fie gestionarea memoriei trebuie realizat la nivelul procesorului,
ntr-o manier automat, transparent pentru utilizator, fie indicaiile de organizare a memoriei
trebuie obinute prin procesul de compilare (transformarea codului surs, conceput de utilizator,
n cod executabil) sau s fie incluse n procedurile sistemului de operare. Astfel, structura
segmentelor de memorie, necesar execuiei unui program, este stabilit de compilator (de
exemplu, lungimea i adresele relative ale segmentelor de cod, date i stiv). Modelul memoriei
virtuale este implementat la nivelul sistemului de operare. Lucrul cu memoria Cache i
mecanismele de paginare sunt realizate, de regul, automat de ctre pri specializate ale

ASC Dan Olaru

procesorului. Acest mod de lucru este cel mai avantajos, eficient i nu implic un efort de
programare suplimentar.
Mecanismul de paginare este o problem mai simpl i urmrete optimizarea transferurilor ntre
diferite structuri de memorie. De exemplu, majoritatea structurilor de date se gsesc stocate la
nivelul memoriei de mas (disc). Atunci cnd procesorul cere accesul la o anumit informaie,
dac aceasta nu se gsete n memoria RAM este transferat ntreaga pagin care o conine.
Memoria Cache lucreaz ntr-o manier similar, numai c, de regul transferul se face la nivel
de linie (o succesiune de bytes).
Funcionarea memoriei Cache este mult mai complex, mai ales datorit necesitilor de
actualizare ntr-o manier eficient. Scopul urmrit este aducerea n zona Cache a datelor cel mai
frecvent utilizate. De obicei, datele deja aflate n Cache sunt nlocuite atunci cnd nu mai este
spaiu pentru noile date accesate.
Memoria Cache lucreaz dup urmtorul principiu de baz. Atunci cnd procesorul are nevoie de
date ncearc s le obin din memoria Cache. Dac acestea sunt disponibile (situaia de Hit) nu
se mai face acces la memoria RAM.ele sunt transferate. Dac nu sunt disponibile, se face
transferul din memoria RAM i imediat datele sunt copiate i n Cache, pentru a putea fi utilizate
cu alt ocazie. Problema scrierii n memorie este ns mai coplicat. Procesorul va efectua, de
regul, scrierea numai n memoria Cache, actualizarea memoriei RAM urmnd s fie realizat
dup anumii algoritmi de eficien, astfel nct gradul de ocupare al procesorului s fie minim.
Tot din motive de eficien stocarea i cutarea n memoria Cache se efectueaz ntr-o manier
mai special. Astfel, datele aduse n Cache nu sunt ordonate (ntr-o manier liniar) dup codul
de adres aa cum se lucreaz n RAM. Acestea sunt transferate n Cache n funcie de modul de
acces controlat de program. Deci, aceste date vor corespunde unor adrese diferite (din RAM),
care nu se afl ntr-o anumit ordine prestabilit. Astfel, nu exist nici o legtur ntre adresele
din Cache, unde sunt pstrate temporar datele i adresele din RAM, corespunztoare funcionrii
programului. Totui, procesorul face accese urmrind codul de adres, specific programului. De
aceea, pentru a putea fi cutate, n memoria Cache trebuie pstrate i informaii suplimentare,
referitoare la adresa real din memoria RAM, plasate n vecintatea datelor propriu-zise (n
structura Cache) n locaii cunoscute sub numele de Tag (etichet). Deoarece execuia unui
program se face, de regul, n zone relativ localizate de memorie informaia din Tag nu conine
ntreaga adres din RAM, ci numai o parte a acesteia, corespunztoare unei anumite zone de
adrese.
Astfel, cutarea datelor n Cache trebuie fcut dup codul adresei reale, memorat odat cu datele
transferate din RAM n locaiile de Tag. Deci, operaia de cutare se face prin comparaia adresei
cutate cu cele disponibile deja n Cache. De aceea, se spune c memoria Cache este o memorie
asociativ.
Pentru a mri eficiena de transfer pentru structura memoriei Cache sunt utilizate diferite structuri
pentru liniile de date, corespunztoare unui datelor transferate ntr-un singur ciclu i diferite
moduri (algoritme) de asociativitate. Alegerea dimensiunii liniilor, blocurilor sau grupurilor
urmrete criterii de eficien corespunztoare vitezei de lucru ale memoriei i procesorului i
structurii ciclurilor main.
Asociativitatea total permite ca orice locaie din Cache s stocheze coninutul oricrei adrese din
RAM. Aceasta presupune, ca la fiecare operaie de cutare, s fie comparate toate codurile de
adres, fiind necesar un timp inacceptabil, mai ales n cazul memoriilor Cache voluminoase.

ASC Dan Olaru

De exemplu, structura unei memorii Cache de 512 octei, asociata procesoarelor I 386/486, cu 32
bii de adres fizic este urmtoarea. Cei 2 bii, mai puin semnificativi selecteaz numrul
octetului dintr-o linie coninnd cte 4 octei. Biii 2, pn la 31 reprezint cte un tag, necesar
pentru cutarea asociativ, ntr-o list cu 128 de valori (512/4=128).
Asociativitatea direct lucreaz pe blocuri, structurile de date aduse n Cache corespunznd unor
zone cu adrese consecutive. n acest mod numrul de comparaii este mult mai redus. Dei
aparent mai expansiv, ocuparea memoriei Cache este eficient deoarece programele lucreaz cu
zone realtiv localizate de memorie.
De exemplu, pentru un Cache de 64 kB, putem folosi biii 2-15 ai adresei fizice ca Index n
cadrul zonei (blocului cu adrese consecutive) corespunztoare aceluiai Tag, pentru care vor fi
folosii biii 16-31.
Asociativitatea parial combin flexibilitatea celei totale cu simplitatea celei directe. Memoria
Cache este structurat pe grupuri, care lucreaz n paralel, fiecare lucrnd n maniera direct.
De exemplu, un Cache de 64 kB poate fi organizat n 2 grupuri a cte 32kB. Pentru cmpul index,
n cadrul fiecarui bloc, utilizm 13 bii (biii 2-14), cu care va fi selectat una dintre cele 8kB de
locaii posibile, din fiecare dintre cele dou grupe. Cmpul Tag va avea 17 bii (biii 15-31) i va
fi simultan (n acelai ciclu) comparat cu cele 2 cmpuri Tag corespunztoare celor 2 grupuri.
n cazul cnd, la o ncercare de acces, datele nu se gsesc n memoria Cache (situaia de MissCache), acestea trebuie preluate din memoria RAM i imediat trebuie fcut actualizarea n
Cache. Deoarece, n mod obinuit, zona Cache este complet ocupat trebuie stabilit un mod de
alegere a datelor care vor fi substituite, corespunzator unui algoritm de nlocuire.
Algoritmul LRU (Least Recent Used) realizeaz nlocuirea datei cel mai puin recent utilizate.
Metoda este cea mai performant, dar necesit un indicator al vechimii acceselor i un
mecanism de actualizare a acestuia.
Algoritmul FIFO (First In, First Out) - realizeaz nlocuirea n ordine. Vechimea unui acces este
memorat cu ajutorul unui numrtor asociat grupului respectiv.
Algoritmul de nlocuire aleatoare (Random) i aceast metod poate folosi numrtoare, cu
deosebirea c, acestea pot fi incrementate de evenimente exterioare, cum ar fi un semnal de ceas
sau alte aciuni de nlocuire.
n situaia n care un anumit rezultat (sau date) trebuie memorat, procesorul va iniia o operaie de
scriere n memoria Cache, urmnd ca apoi s se fac actualizarea n RAM, algoritmul de transferl
urmrind anumite criterii de optim.
Algoritmul de scriere imediat (Write through) execut scrierea n RAM dup fiecare scriere n
Cache, angajnd procesorul n operaii de scriere repetate, expansive ca timp de lucru.
Algoritmul de scriere cu buffer (Buffered Write through) memoreaz informaia care trebuie
scris n RAM ntr-o memorie tampon (buffer). Realizarea scrierii necesit circuite specializate,
dar permite procesorului s efectueze alte operaii, n paralel.
Algoritmul de scriere cu ntoarcere (Write Back) execut scrierea mai trziu, fr intervenia
direct a procesorului, ntr-un moment ales dup criterii de performan. Scrierea n memoria
RAM se poate face mai eficient dac se ateapt copletarea unui ntreg bloc de date. Dac ns
exist o alt cerere de scriere la o intrare deja utilizat, salvarea datelor precedente este
obligatorie, fiind nevoie de un ciclu de scriere artificial, neiniiat de procesor, care ns pentru
performane optime necesit circuite hardware speciale.

ASC Dan Olaru

Trebuie menionat c, atunci cnd actualizarea scrierii n memoria RAM nu se face imediat, vor
putea apare locaii invalide (dirty cells), care vor putea furniza date eronate, fr coresponden
cu cele din Cache.
Arhitectura procesorului Intel 80286 (I 286)
Interfaa cu magistrala
Latch-uri
Drivere
Adrese

Unitate gestionare memorie (AU)


Sumator
adr. fizic
Baz, Dim.
Limit Seg.

Offset

Unitate
Extragere

Interf.
CoProc.

Control
Magistrala
Amplif.
Date

ALU
Registre

Coad
Instr.Ext.

UC

Unitate de execuie (EU)


NMI
INTR

BUSY
ERROR

Coad
Instr.Dec.

DEC
Instr.

Unit. tratare instruc.(Q)

Concepte Pentium
Procesorul Intel Pentium I a deschis seria procesoarelor superscalare, caracterizate prin existena
a dou structuri Pipe-Line paralele (U i V), la care se adaog i o unitate de calcul n virgul
mobil, pentru numerele reprezentate zecimal.
Dezideratul principal al structurii Pipe-Line este execuia unei instruciuni ntr-un singur ciclu de
ceas. Aceasta nu nseamn c pe durata unui ciclu de ceas sau tact (definit de impulsul notat CK)
se ncrc codul instruciunii i se obine rezultatul n memorie. De fapt, este vorba de aciunea
mediat asupra unui ir de instruciuni, prin care la fiecare ciclu de ceas, la intrare este
ncrcat cte o instruciune i la ieire se obin rezultatele execuiei altei instruciuni, care a fost
ncrcat mai devreme.
Acest mod de lucru ar fi posibil, ntr-o manier simplist, dac operatorul aritmetic-logic (ALU)
ar fi combinaional la intrare caruia ar fi disponibil instruciunea n forma complet (cod de
operaie, plus operanzi). n realitate ns, pe de o parte, operanzii se pot afla la adrese de memorie
diferite ntre ele i diferite de cea a codului instruciunii, iar pe de alt parte operatorul
procesorului, din motive tehnice, nu poate avea o structur combinaional.
Rezolvarea primei probleme se face prin intermediul memoriei Cache, conectate la procesor prin
mai multe ci de date, similare unei magistrale multiple, care permite accesul simultan al
operanzilor. Cea de-a doua problem se rezolv prin scindarea prelucrrii unei instruciuni n mai
multe faze de lucru i prin suprapunerea n timp a fazelor de execuie de la mai multe instruciuni.
Pentru ca fiecare subunitate a procesorului s funcioneze optim, este necesar ca s nu apar timpi
de ateptare la intrare i aceasta s intre n funciune imediat ce este eliberat, dup o faz de
execuie. Aceast problem se rezolv prin utilizarea cozilor de ateptare, plasate n memorii

ASC Dan Olaru

tampon speciale, care conin coduri sau operanzi aflai n faze de execuie intermediare. Aceast
metod asigur i sincronizarea atunci cnd duratele de prelucrare, pentru fazele intermediare,
sunt diferite.
n cazul unei funcionri optime, structura superscalar ar trebui s permit execuia simultan a
mai multor instruciuni, pe durata unui singur ciclu de ceas. Rezult o prelucrare n paralel a
instruciunilor unui program oarecare, care nu conine restricii specifice procesrii paralele.
nseamn c pot apare diferite dependene, n sensul c o instruciune poate folosi, ca operand de
intrare, rezultatul execuiei altei instruciuni. Pe de alt parte, succesiunea instruciunilor nu poate
fi, de la nceput, cunoscut deoarece pot apare instruciuni de salt, dependente la rndul lor de alte
rezultate intermediare.
n alt ordine de idei, disponibilitile hardware ale procesorului nu sunt totdeauna aceleai, la
orice moment de timp. Astfel, prelucrarea unei instruciuni poate necesita la un moment dat
aciunea unui subansamblu sau operator care este implicat n procesarea altei instruciuni.
Pentru rezolvarea acestor probleme, abordarea structurilor suprscalare a necesitat dezvoltarea mai
multor categorii de concepte noi, prezentate mai jos.
Execuia dinamic (Dynamic Execution) Codul operaiei este scindat n mai multe microoperaii de lungime fix, care dup o rearanjare corespunztoare se execut simultan, ntr-un
singur ciclu de ceas.
Execuia speculativ (Speculative Execution) Instruciunile sunt executate n alt ordine dect
cea impus de program. n acest fel este evitat aciunea salturilor. Rezultatele temporare sunt
stocate temporar ntr-o zon de memorie tampon, urmnd ca apoi s fie supuse unei operaii de
rearanjare. n cazul apariiei unei instruciuni de salt, chiar nainte ca aceasta s fie complet
executat, procesorul continu ncrcarea de instruciuni pentru a completa coada de ateptare de
la intrare. Alegerea adreselor de ncrcare a instruciunilor este estimat (speculat), urmnd ca
apoi, s fie verificat i confirmat. Dac adresa de salt nu a fost corect estimat, coada de
instruciuni deja ncarcate este golit i se reia procesul de ncrcare de la adresa corect.
Execuie n orice ordine (Out of order execution) Execuia instruciunilor se face n paralel, fr
a ine cont de execuia lor secvenial din program. Dac apare o indisponibilitate a unei resurse
hardware, procesorul va executa instruciunea urmtoare, care nu intr n conflict cu precedenta,
urmnd s revin ulterior la instruciunea peste care a srit.
Reordonare (utilizarea ROB Re-Order-Buffer) Rezultatele temporare, obinute dup execuia
speculativ a unui numr de microinstruciuni de lungime fix, sunt stocate ntr-o zon tampon
(ROB). Rezultatele finale trebuie aranjate apoi n ordinea corespunzatoare.
Predicia salturilor (Branch Prediction)- Este o procedur prin care sunt estimate adresele de salt,
pentru a permite ncrcarea de instruciuni n coada de ateptare, nainte de execuia complet a
instruciunii de salt. Estimarea are loc pe baza informaiilor obinute, ntr-o manier statistic, de
la execuiile anterioare ale instruciunilor de salt, care au avut loc ntr-o perioad relativ recent,
folosind o memorie tampon.
Detecia dependenelor Determinarea dependenelor, la nivelul operanzilor, ntre instruciuni.
Cu ajutorul unui set de comparatoare se determin dac registrul de scriere a unei instruciuni,
aflate ntr-o etap mai avansat, este folosit, ca intrare, de alte instruciuni aflate n fazele de
prelucrare precedente. Dac se ntmpl aa, prelucrarea instruciunii respective (din faza
precedent) este blocat pn la obinerea datelor necesare.
Modul de naintare (Forward) Este folosit atunci cnd rezultatele obinute n urma execuiei
unei instruciuni, conform programului, trebuie plasate ntr-un registru, pentru a fi folosite de o

ASC Dan Olaru

instruciune urmtoare. Pentru mrirea eficienei, circuite specializate transfer rezultatul ctre
instruciunea urmtoare, cnd aceasta se afl nc n faza de decodificare, fr a mai efectua
transferuri intermediare cu regitri.
Branch
Target
Buffer

Instr.Cache

Prefetch Buffer

Data
Bus

Instr. Decode

Microcode
ROM

Addr
Bus
Ctrl.

Ctrl
Mag

Control Unit
Adr.Gen (U)

Page
Unit

Adr.Gen (V)

FPU
Control

Int. Reg. File


ALU (U)

ALU (V)

Shifter

FP. Reg. File


Add
Multiply

Data Cache
TLB

Divide

Fig.*. Schema de principiu a microprocesorului Pentium I.


Adresarea memoriei
Funcionarea procesorului, n orice moment, este guvernat de un program care const n
instruciuni (comenzi) main, care pot fi ncrcate i executate prin intermediul circuitelor
electronice (hardware) aferente. Deci, orice program, scris ntr-un anumit limbaj, trebuie
transformat (compilat) n limbaj de asamblare, bazat numai pe istruciunile specifice procesorului
utilizat. Codul unei instruciuni (determinat de formatul instruciunii) specific tipul operaiei i
informaiile necesare identificrii operanzilor de intrare i de ieire, care se gsesc iniial n
memoria RAM (memoria principal) sau care, eventual, au fost transferai n registrele
procesorului. Deoarece pe parcursul execuiei programului sunt efectuate numeroase accese la
memorie, din motive de eficien (vitez de lucru) i de simplitate n scrierea programelor exist
mai multe moduri de specificare a locaiei unde se gsesc operanzii, cunoscute ca moduri de
adresare a memoriei. Tot din motive de eficien dimensiunea (mrimea) locaiilor adresate
trebuie s corespund volumului datelor stocate. De aceea, adresarea memoriei, i chiar a
registrelor procesorului se poate face la nivel de octet (byte), cuvnt sau dublu-cuvnt. Acest mod

ASC Dan Olaru

de lucru permite, pe de alt parte compatibilitatea cu programele mai vechi, scrise pentru
procesoare cu o dimensiune mai redus a cuvntului de date.
Adresarea imediat (direct) Operandul este un octet sau un cuvnt coninut n codul
instruciunii.
Adresarea direct la registru Operandul este coninutul unui registru, specificat n codul
instruciunii.
Adresarea direct la memorie Operandul se afl n memorie la adresa efectiv (offset)
specificat n codul instruciunii.
Adresarea indirect la memorie prin registru Operandul se afl n memorie la adresa efectiv
dat de coninutul unui registru (de baz sau index).
Adresarea indirect la memorie prin registru cu deplasare Operandul se afl n memorie la o
adres efectiv dat de suma ntre coninutul unui registru de baz sau index, i un deplasament
specificat n codul instruciunii.
Adresarea indirect la memorie prin dou registre Operandul se afl n memorie la adresa
efectiv dat de suma coninuturilor registrelor de baz i index, specificate n codul instruciunii.
Adresarea indirect la memorie prin dou registre cu deplasare La adresa operandului,
calculat ca mai sus, se adaog o valoare corespunztoare unui deplasament, specificat n codul
instruciunii.
Setul de registre
Familia de microprocesoare produse de firma Intel, desemnat prescurtat I 80X86, identificate
prin indicativele: 8086, 8088, 80186, 80286, 80386, 80486, conine acelai set de baz de registre
generale. Pentru tipurile mai recente au foste aduse diferite mbuntiri, pstrnd
compatibilitatea cu cele precedente. Dezvoltrile ulterioare, cunoscute sub denumirea de
Pentium, s-au bazat, de asemenea, pe aceleai concepte.
a) Grupul de Registre generale se poate mpri, la rndul lui, n dou subgrupuri:
Registre de date: AX, BX, CX, DX se caracterizeaz prin faptul c pot fi adresate i la nivel de
octet, care poate ocupa jumtatea inferioar (AL, de exemplu) sau superioar (AH, de exemplu) a
unui registru. Dei aceste registre sunt considerate ca registre generale, exist i instruciuni
aritmetice care le acord anumite semnificaii speciale, aa ca mai jos:
AX operaii de intrare/ieire pe 16 bii (un cuvnt) sau registru implicit (cnd nu este specificat
n instruciunea respectiv) pentru nmuliri i mpriri pe 16 bii;
AL - operaii de intrare/ieire pe 8 bii i registru implicit n aritmetica BCD, nmuliri i mpriri
pe 8 bii;
AH - registru implicit pentru nmuliri i mpriri pe 8 bii;
BX operaii cu memoria, adresare indirect;
CX - registru implicit pentru operaii cu iruri i bucle;
CL operaii de deplasare sau rotaie a poziiei biilor n cadrul registrului;
DX - operaii de intrare/ieire cu adresare indirect i registru implicit pentru nmuliri i mpriri
pe 16 bii.
Registre de adresare care pot fi clasificate n:
Registre indicatoare de adres n stiv:
SP (Stack Pointer) conine adresa curent n stiv;
BP registru implicit, coninnd adresa de baz pentru adresarea indirect a stivei;
Registre indicatoare de adres index pentru iruri:

ASC Dan Olaru

DI registru index pentru irul destinaie (operator de intrare);


SI - registru index pentru irul surs. (operator de ieire).
Registrele de adresare, de asemenea, pot fi utilizate n anumite instruciunui aritmetice sau logice
pentru date de 16 bii.
b)
-

Registrele de segment pot conine informaia de adres pentru:


Segmentul de program CS (code segment);
Segmentul de date curent DS (data segment);
Segmentul de date suplimentar EX (exttra segment);
Segmentul de stiv SS (stack segment).

Astfel adresa complet a codului instruciunii este format din coninutul registrului CS i
deplasamentul (offsetul) numrtorului de program IP (Instruction Pointer). Registrul DS conine
de obicei adresa bazei segmentului de date. n cazuri speciale sunt folosite registrele BP, SP sau
DI. De obicei, segmentul de stiv este identificat prin SS. Atunci cnd sunt utilizate n mod
implicit sau explicit registrele BP i SP se consider c segmentul de date este definit explicit
prin coninutul registrului ES.
Configuraia unui Cipset
n cadrul arhitecturilor timpurii ale plcilor de baz ale calculatoarelor PC, datorit posibilitilor
de integrare mai modeste, se foloseau circuite integrate specializate pentru anumite funcii. Pe
msura dezvoltrii tehnologice, aceste funcii au fost cumulate i integrate ntr-un numr redus de
cipuri, utiliznd de regul dou cipuri de capacitate mare destinate transferurilor de date cu vitez
mare i vitez moderat sau lent. De obicei, acestea pstreaz modul i caracteristicile de
funcionare ale componentelor iniiale, care au devenit clasice.
Pentru a putea urmri modul de lucru se va considera, ca exemplu, structura unei plci de baz de
la nceputul dezvoltrii PC, bazat pe procesorul Intel 80386, foarte sugestiv pentru studiul unei
arhitecturi de baz, la care pot fi identificate elementele componente.
Cipsetul CS 8230 destinat calculatorului AT/386 coonine apte cipuri VLSI i conine, aproape
n ntregime circuitele logice necesare unei arhitecturi iAPX386, acesta oferind o soluie PC AT
compatibil. Arhitectura acestuia conine elemente flexibile, care permite implementarea unor
staii de lucru specializate (CAD/CAE, sisteme de birou, industriale sau financiare). Combinat cu
controlerul de periferice integrat 82C206 se obine un sistem complet, compatibil PC AT,
coninnd 40 de componente, plus dispozitivele de memorie.
Cipsetul CS 80230 conine componente din seria 82xxx i au funciile urmtoare.
82C301 Controler de magistral;
82C302 Controler de memorie;
82A303 sau 82A304 Interfa (latch i driver) pentru magistrala de adrese;
82A305 - Interfa (driver) pentru magistrala de date;
82A306 Buffer (driver) pentru semnalele de control.
Se observ c aceste cipuri realizeaz funcii specifice lucrului cu magistrala. Printre acestea
sunt: amplificarea n curent a semnalelor de adrese sau de date (funcia de driver); generarea
respectiv amplificarea semnalelor de control i eventual memorarea temporar a informaiilor de
adres sau date, atunci cnd se lucreaz cu blocuri de memorie sau cu tronsoane de magistral

ASC Dan Olaru

multiplexate (pe care se transmit succesiv informaii referitoare la zonele de adres sau coduri de
adres i date).
Cipsetul CS 80230 admite o magistral local pentru procesor (CPU), un sistem de memorie de
32 de bii i magistralele secifice arhitecturii AT (advanced technology), corespunztor Fig.*.
Cipurile 82C301 i 82A306 asigur generarea i sincronizarea semnalelor de control pentru toate
magistralele. Circuitul 82C301 suport, de asemenea, un semnal de ceas independent i permite
alegerea dinamic a semnalului de ceas pentru procesor. Circuitul 82A306 conine amplificatoare
(buffer) pentru semnalele de control de magistral i circuite necesare altor funcii logice.
Circuitul 82C302 permite funcionarea subsistemului de memorie n regim de memorie paginat.
Circuitele 82A303 i 82A304 asigur interfaarea ntre toate magistralele de adres, genereaz
semnalele de adres RAS/CAS pentru sistemul de memorie i adresele necesare pentru transferul
ntre cile de date. Dou circuite sunt folosite pentru interfaarea ntre sistemul de memorie local
i magistralele de date. De asemenea, poate realiza transferul ntre ci de date cu parametrii
diferii.
Sistemul bazat pe cipsetul CS 80230 conine patru magistrale, i anume: magistrala local a
procesorului (A i D - adrese i date), magistrala sistemului de memorie (MA i MD), magistrala
canalelor de intrare-ieire (I/O SA i SD), magistrala extins X-bus (XA si XD). Magistrala
sistemului de memorie este utilizat pentru interfaarea controlerului DRAM cu circuitul 82C302.
Magistrala canalelor de intrare-ieire (I/O) este destinat cuploarelor compatibile magistralei AT,
pentru dispozitive funcionnd pe 8 sau 16 bii. Magistrala X este utilizat pentru periferice
atunci cnd ntr-o structur IBM PC AT sunt prezente controlere DMA i de temporizare (Timer).
Aceasta contine numai ci de date de 8 bii. Termenul de magistral AT (AT bus) se refer la
magistrala canalelor I/O i magistrala X. Sunt prevzute, de asemenea, extensii ale magistralei
I/O pentru 32 de bii.

ASC Dan Olaru

Local Bus
32 D

System Memory Bus

32 A

36 MD

I/O Channel

32 MA

16 SD

Peripheral Bus

24 SA

8 XD 24 XA

82A303
82A304
Adress
Buffers
80287
80387

80386

82C301
82A306

Control

82A305
(x2)
Data
Buffers

Control
82C302
(x2)
Memory
Control

ROM BIOS

AT
Add-on
Boards

Buffers

82A206
Integrated
Peripheral
Controller

8042
Keyboard
Controller

DRAM

Fig.*. Schema bloc a sistemului AT/386

Sistemul AT/386 a rezultat dezvoltrii sistemului AT/286, bazat pe un cipset coninnd


componentele urmtoare.
82C201 controler de sistem, destinat generrii majoritii semnalelor de ceas i a semnalelor de
control necesare funcionrii ntregului sistem. Semnalele produse de 82C201 sunt utilizate n
toat structura sistemului pentru comanda i controlul circuitelor logice. Toate ciclurile de
magistral sunt coordonate, decodate sau temporizate de catre acest dispozitiv. Acesta reprezint
una dintre componentele care asigur functionarea unitar a sistemului.
82C202 realizeaz funciile de decodificare i selecie necesare circuitelor de memorie RAM
sau ROM i a unei pri a circuitelor de intrare-ieire (I/O). Circuitul 82C202 folosete semnalele
RAS/CAS i genereaz semnalele de selecie pentru diferite tipuri de cipuri de memorie. De
asemenea, conine circuite auxiliare pentru comanda ceasului de timp real (care genereaz
coordonata de timp) i pentru semnalelor de selecie a controlerului de tastatur (Keyboard
controller) i a Portului B (system control/status port).
82C203 realizeaz memorarea temporar a codului de adres (latching) i amplificarea
semnalelor aferente (buffering). Semnalele de control generate de circuitul 82C201 sunt
amplificate de 82C203 dotat cu ieiri cu trei stri. De asemenea, n circuitul 82C203 este integrat
portul de stare i control al sistemului, referit ca Port B.

ASC Dan Olaru

82A204 conine amplificatoarele (driver) pentru liniile de adres inferioare pentru magistrala
extins, pentru magistrala I/O i magistrala memorie. n afar de amplificarea (buffering)
semnalelor de adres pentru memorie, 82A204 mai realizeaz multiplexarea pe linii i coloane la
memorie i numrarea ciclurilor de renprospatare (refrech).
82A205 reprezint amplificatorul (buffer-ul) sistemului pentru liniile magistralei de date. De
asemenea, circuitul mai realizeaz nc dou funcii suplimerntare. Prima, se refer la trasferul de
date de la procesorul pe 16 bii la dispozitivele pe 8 bii. n acest caz este necesar memorarea
(latching) unui byte (jumtate de cuvnt) i translatarea byte-ul inferior sau superior. Cea de-a
doua funcie se refer la generarea bitului de paritate i verificarea transferurilor de date n
sistem. De asemenea, circuitul conine i logica de detecie i semnalare a erorilor.
Elemente constructive
Dispozitive electronice de comutaie
Operatorii logici, deci cu dou stri posibile la ieire, conin, de fapt, dispozitive electronice de
comutaie, care se pot afla fie n stare de conducie, caracterizat prin trecerea curentului, fie n
stare blocat, cnd curentul este aproape nul. De regul, sunt folosii tranzistori (denumirea
provine de la sintagma trans-rezistor) bipolari sau MOS (care utilizeaz tehnologia metal-oxidsemiconductor).
Tranzistorul bipolar (Fig.*) intr n conducie cnd curentul prin baz are o valoare i polaritate
corespunztoare tipului de tranzistor (npn sau pnp). Analog, se pot realiza tranzistori MOS (cu
canal indus) care intr n conducie atunci cnd poarta este polarizat corespunztor tipului de
tranzistor (tip n sau tip p). Simbolurile pentru tranzistorul bipolar npn i tranzistorului MOS de
tip p sunt date n (Fig.*). Pentru cazurile pnp sau tip n sensurile curenilor, i polaritilor se vor
schimba.
drena

colector
poarta

baza
emitor

sursa

Din punct de vedere constructiv, tranzistorii se bazeaz pe jonciuni ntre materiale


semiconductoare, de tip n sau de tip p, create prin procese de difuzie, la temperatur ridicat.
Materialul semiconductor folosit n circuitele logice este Siliciul. Acesta se spune c este de tip n
dac este dopat cu o substan care creeaz electroni n exces sau c este de tip p dac este dopat
cu o substan care creeaz goluri n exces. Materialul de tip n conine n reeaua cristalin
electroni suplimentari, fa de reeaua iniial, iar materialul de tip p conine lipsuri de electroni
(goluri) fa de reeaua iniial. Cu toate acestea, sarcina global rmne neutr deoarece
electronii sau golurile suplimentare sunt asociate nucleelor din substana dopant, care la rndul
lor conin protoni (deci sarcin) suplimentari.
ntr-o jonciune pn, pentru stabilirea echilibrului forelor de legtur ntre particule, aceste
difuzeaz ctre prile opuse ale jonciunii, unde se creeaz cte o sarcin spaial. Procesul de

ASC Dan Olaru

difuzie se oprete n momentul cnd cmpul electric generat de sarcinile spaiale echilibreaz
forele care au generat difuzia.
n lipsa aplicrii unei tensiuni exterioare, pe laturile jonciunii, nu exist conducie electric
deoarece deplasarea sarcinii spaiale este oprit de cmpul rezultat, care se opune procesului de
difuzie al purttorilor. Dac ns este aplicat o tensiune exterioar, contrar cmpului creat de
sarcini (jonciunea este polarizat direct), aceasta va reduce influena cmpului i purttorii de
sarcin vor putea migra mai departe. Dac prin bornele jonciunii pot circula cureni, acetia vor
alimenta permanent jonciunea cu purttori, meninndu-se astfel un circuit electric prin
jonciune.
Dispozitivul electronic cu o singur jonciune reprezint o diod. Datorit mecanismului
prezentat mai sus aceasta poate conduce curentul numai ntr-un singur sens. Principiul de
funcionare al tranzistorului bipolar se bazeaz pe o structur cu dou jonctiuni (npn de exemplu),
n care grosimea zonei dintre jonciuni este foarte redus. Astfel, un curent n jonciunea bazemitor (polarizat direct) poate alimenta cu purttori jonciunea vecin (baz-colector) care este
polarizat invers. Se dovedete astfel c jonciunea baz-colector este blocat n lipsa unui curent
de baz, iar atunci cnd acesta este prezent, curentul prin jonciune baz-colector este comandat
de curentul de baz . Acest fenomen poate avea loc datorit modulrii zonei de sarcin spaial
din zona bazei, vecin colectorului, prin intermediul curentului de baz care curge spre emitor.
Deci, la un tranzistor bipolar tensiunea baz-emitor, care este polarizat direct, are variaii reduse,
comanda realizndu-se prin intermediul curentului de baz.
Funcionarea tranzistorului MOS este mult diferit. Dei avem o structur de jonciuni care pare
asemntoare, comanda curentului dren-surs se realizeaz diferit. Constructiv, tranzistorul (de
tip p, de exemplu) este realizat pe o structur de tip p, zonele corespunztoare sursei i drenei
fiind de tip n (Fig.*). Deasupra zonei de legtur ntre dren i surs se gsete electrodul de
poart, izolat de structura semiconductoare printr-un strat, extrem de subire, de oxid de siliciu
(SiO2). Dac electrodul de poart nu este polarizat, circulaia curentului ntre surs i dren este
blocat de una dintre cele dou jonciuni, care este polarizat invers. Atunci cnd ntre electrodul
de poart i cel al sursei se aplic o diferen de potenial, aceasta creeaz un cmp electric
deasupra zonei de legtur dintre surs i dren. Cnd acest cmp este destul de puternic, acesta
extrage purttori de sarcin din structura semiconductoare, care devin liberi. Acetia vor asigura
procesul de conducie ntre surs i dren.

emitor
p

n
substrat

baz

colector

poarta

sursa
n

E
canal de purttori

drena
n

Structur p

Elemente de circuit
Circuite de multiplexare i demultiplexare
n cazul cnd cile de date conin numai o singur linie, corespunztoare transferului unui singur
bit de date, pentru selecie este necesar numai o singur conexiune. Schema multiplexorului (a)

ASC Dan Olaru

poate fi implementat cu trei pori i-Nu (NAND) i un inversor. n funcie de starea intrrii va fi
validat numai una dintre pori, care se va comporta ca un inversor. Starea celeilalte va fi forat
pe nivelul 1. Rezult c poarta de la ieire se va comporta tot ca un inversor, pentru datele
transmise. Se observ c porile de la intrare joac rolul unor operatori de tip I (nmulire
binar), iar poarta de la ieire joac rolul unui operator SAU (adunare binar). Deci, porile de la
intrare pot permite sau nu transferul datelor, iar poarta de ieire transmite la ieire numai
contribuia intrrii porii validate, indiferent de nivelul logic al celeilalte intrri. Tabelul de
adrevr pentru aceast structur de multiplexor este Tab.1.
n schema demultiplexorului (b), valoarea de la intrare este distribuit ctre cele dou pori de
validare a trasferului. n funcie de nivelul conexiunii de selecie, va fi validat numai o singur
poart, care va juca rol de inversor, iar cealalt va fi forat n starea 1. Inversoarele de la ieire
au rolul de a restabii nivelul de la intrare (ne-inversat). Dac acestea sunt de tip trei-stri, la
ieirea inactiv vom avea impedan mare (nivel flotant). n caz contrar, ieirea inactiv va fi
poziionat pe 0. Tabelul de adevr Tab.2 corespunde ieirilor cu dou nivele logice, iar Tab.3
celor cu trei-stri. Dei demultiplexoarele integrate separate nu au, de regul, ieiri cu trei-stri,
totui aceast schem este foarte util n cazul structurilor complexe cu multe nivele de conexiuni
sau magistrale interne multiple.
Tab.1
Selecie A
0
0
0
1
1
x
1
x

B
x
x
0
1

Tab.2
Selecie IN QA QB
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1

Q
0
1
0
1

QA
Q

IN

(a)

Tab.3
Selecie IN QA QB
0
0
0
x
0
1
1
x
1
0
x
0
1
1
x
1

QB
Selecie

(b)
Selecie

Fig.*. Schema multiplexorului i demultiplexorului cu cte dou ci selectate

Circuite de memorie
Circuitele de memorie au un rol esenial n alctuirea i funcionarea unui sistem de calcul.
Acestea sunt prezente nu numai la nivelul dispozitivelor propriu-zise de memorie (RAM, Cache),
dar i la nivelul procesorului sau dispozitivelor periferice (cuploare), sub forma registrelor de
memorie (Latch) sau a elementelor bistabile.
Memoriile sau regitrii de tip static conin colecii de circuite bistabile interconectate. Acestea
sunt elemente de memorie cu dou stri care pot memora o unitate de informaie (un bit). Astfel,

ASC Dan Olaru

circuitul trece n starea logic corespunztoare intrrii (prin operaia de scriere) spunem c acesta
memoreaz informaia de la intrare, pn cnd are loc o nou operaie de scriere.
Cu ajutorul circuitelor bistabile se pot construi circuite secveniale. Acestea sunt caracterizate de
mai multe stri, specifice strilor individuale ale bistabililor din care sunt alctuite. De exemplu,
dac un circuit secvenial conine trei bistabili, acesta va putea avea cel mult 8 stri,
corespunztoare tuturor combinaiilor de stri ale celor trei bistabili. Astfel, dac codificm
(reprezentm) starea fiecrui bistabil cu cte un bit, care poate fi 0 sau 1, rezult c starea global
a circuitului secvenial poate fi reprezentat de trei bii. Un numr cu trei bii poate avea valori (n
zecimal) de la 0 la 7, deci n total 8 valori sau 8 stri. Este important c acestea nu mai depind
direct de strile (valorile logice) de la intrare. De fapt, la un moment dat, starea global a
circuitului secvenial depide de starea iniial a acestuia (la punerea n funciune), de starea
instantanee a intrrilor dar i de istoria (evoluia) intrrilor pn n acel moment. Cu toate
aceestea se poate arta c un circuit secvenial poate fi construit cu operatori combinaionali, de
tipul porilor logice. Funcionarea circuitului, bazat pe stri stabile, care nu sunt direct
dependente de intrri se poate realiza prin folosirea unor bucle de reacie pozitiv (conexiuni de
la ieiri ctre intrri).
Un exemplu simplu de circuit bistabil poate fi implementat cu dou pori NAND (Fig.*).
SA

SB

QA
QB

Pentr aceast conexiune, strile la ieire sunt determinate n modul urmtor. Dac, de exemplu,
intrarea SA are starea logic 0, ieirea corespunztoare QA va trece obligatoriu n starea 1,
conform modului de lucru al porii NAND. Cealalt ieire, QB va fi determinat de intrarea SB i
iesirea QA. Dac SB are starea logic 0, QB va trece obligatoriu n starea 1, iar QA va depinde de
starea intrrii SA i ieirii QB. Dac ambele intrri sunt n starea 0, ambele ieiri vor fi forate n 1,
iar dac ambele intrri sunt n starea 1, aceste nu vor influena porile NAND, starea lor
rmnnd cea precedent. Rezult funcionarea descris de tabelului *.
Tabelul *
Intrarea SA
0
0
1
1

Intrarea SB
0
1
0
1

Ieirea QA
1
1
0
St. prec.

Ieirea QB
1
0
1
St. prec.

Se observ c acest circuit bistabil poate fi folosit ca o celul de memorie. Atunci cnd la intrri
se aplic valori logice complementare, acestea vor determina starea bistabilului, similar unei
operaii de scriere. Aceast stare va fi meninut, chiar dac nu mai avem informaie la intrri, cu
condiia ca acestea s fie trecute n starea logic 1. Astfel, o celul de memorie, n forma cea mai

ASC Dan Olaru

simpl, poate fi construit dac adugm circuitului bistabilul dou pori pentru validarea
operaiei de scriere i un circuit inversor, pentru obinerea intrrilor cu valori logice
complementare (Fig.*). Dac semnalul de scriere Write este n starea 0, ieirile porilor de
validare vor avea valoarea 1, iar bistabilul i va pstra starea precedent, care va putea fi citit la
ieire. Dac semnalul de scriere are valoarea logic 1, porile de validare vor inversa i vor aplica
la intrrile bistabilului semnalele complementare de la intrarea i de la ieirea inversorului.
Astfel, dac la intrare avem starea 0, respectiv 1 logic, aceasta se va regsi la ieire dup operaia
de scriere.
Intrare

Ieire
Write

Fig.*. Celula de memorie


Celula de memorie de tip dinamic nu se bazeaz pe un circuit bistabil. n acest caz informaia
(valoarea sau starea descris de un bit) corespunde strii de ncrcat sau descrcat a capacitii
de poart a unui tranzistor MOS (Fig.*). Avantajul major al acestei structuri este faptul c pentru
stocarea informaiei este necesar un singur tranzistor, deci densitatea celulelor de memorie pe cip
i implicit capacitatea total ve memorie este mult mai mare.

Date ieire

Date intrare

selecie

Fig.*. Structura unei celule de memorie dinamic


Aceast schem de principiu a celulei de memorie conine trei tranzistori MOS. Capacitatea de
poart a celui din mijloc reprezint elementul de stocare. Ceilali doi tranzistori joac rol de
elemente de comutaie. Capacitatea de stocare poate fi ncrcat sau descrcat dac tranzistorul
de la intrare este n stare de conducie. Datele sunt acesibile pentru citire dac tranzistorul de
ieire este n conducie.
n realitate, se utilizeaz o schem mai eficient (Fig.*), la care fiecare celul de memorie
(corespunztoare unui bit) conine numai doi tranzistori MOS, unul pentru obinerea capacitii
de stocare, figurat cu un condensator, iar cellalt pentru conectarea acestuia la o reea de
conexiuni, cu o structur matriceal (figurat printr-un comutator).

ASC Dan Olaru

Memoria RAM dinamic, dei poate oferi capaciti mult mai mari, pentru acelai numr de
componente, pune dou probleme. Prima se refer la pierderea, n timp a sarcinii din capacitatea
de stocare. De aceea, pentru ca memoria s-i pstreze coninutul, sunt necesare cicluri de
remprosptare sau Refresh prin care este regenerat sarcina capacitilor de stocare.
n al doilea rnd, capacitatea tranzistorilor MOS, de dimensiuni foarte reduse (de ordinul
micronului) este foarte mic i sarcina stocat n aceasta nu este capabil s comande
amlificatoarele de magistral.
Atunci cnd memoria dinamic este n funciune, datorit prezenei unor circuite suplimentare,
ciclurile de Refresh, de fapt, sunt realizate odat cu operaiile de scriere sau citire. Aceasta se
impune datorit faptului c prin operaia de scriere sau citire sarcina stocat se pierde, fiind
distribuit pe intrrile comparatoarelor. Astfel, este necesar o secven de lucru special, care
permite detecia prezenei sarcinii de stocare, la nivelul tranzistorilor MOS i care acioneaz n
modul urmtor:
- nainte de fiecare operaie de citire, comutatoarele de la nivelul superior genereaz o
secven de prencrcare care se obine o sarcin electric, la nivelul liniei de bit,
localizat de fapt n porile tranzistoarelor MOS de la intrarea comparatoarelor;
- n momentul cnd un comutator de legtur cu o capacitate de stocare intr n conducie
(comandat de linia de cuvnt), sarcinile de prencrcare se redistribuie n funcie de
starea de ncrcare a capacitii de stocare. n funcie de aceast redistribuire se va obine
o anumit valoare pentru potenialul la intrarea comparatoarelor, care vor comanda linia
de ieire n starea Sus sau Jos;
- refacerea sarcinilor de stocare se face prin nchiderea comutatoarelor de Refresh. Dac
este vorba de o operaie de citire, semnalul este luat de la ieirea comparatoarelor,
bineneles dup invalidarea intrrilor i memorarea temporar a strii acestora. n cazul
unei operaii de scriere, semnalul este preluat chiar de pe magistral.
Acest mod de lucru este necesar deoarece, pe de o parte, sarcina de stocare este foarte redus i
nu este capabil, singur, s comande intrrile comparatoarelor i, pe de alt parte, valoarea
potenialului obinut prin redistribuirea sarcinii poate fi mai bine controlat.
Att liniile de prencrcare ca i liniile de cuvnt sunt comandate corespunztor cuvntului
selectat prin codul de adres. Trebuie menionat ns, c pentru a mri eficiena procesului de
Refresh operaia de citire se poate extinde la nivelul unui grup de cuvinte, corespunztor unei
anumite structuri matriceale de partiionare a memoriei, selecia cuvntului citit pe magistral
facndu-se prin intermediul unui multiplexor (MUX).

ASC Dan Olaru


Vcc/2

Prencrcare

Celula
de 1 bit

Linie cuvnt

Linie de bit
Vcc/2
Refresh

Vcc/2

Vcc/2
Comparatoare

MUX

Fig.*. Structura memoriei RAM dinamice.


Din punct de vedere hardware, memoria este organizat n plci (card-uri) care conin mai multe
circuite integrate. Fiecare dintre acestea conin un anumit numr de celule de memorie. Fiecare
celul poate memora cte un bit. Totui funcionarea calculatorului i adresarea datelor se
bazeaz pe transferuri de grupuri de bii (cuvinte). Deci cipul de memorie trebuie s conin
circuite electronice suplimentare care s permit adresarea la citire sau scriere a cte unui grup de
celule de memorie, corespunztoare cuvntului adresat. De asemenea, sunt necesare circuite
amplificatoare de curent, la ieiri, i circuite de recepie, pentru transferul datelor ctre celulele de
memorie. Dac liniile de ieire trebuie s fie comune cu liniile de intrare, aa cum se ntmpl n
cazul conexiunii directe la magistral, fr intervenia unui controler de memorie,
amplificatoarele de ieire trebuie s fie cu trei-stri i s fie activate numai n timpul operaiei de
citire, prin de semnalul Read.
n Fig.* este descris o structur care conine 16 celule de memorie, organizate n patru cuvinte.
Pentru adresarea celulelor de memorie este utilizat un circuit decodificator, care pentru fiecare
cod de adres selecteaz cte o linie de celule de memorie, corespunztoare unui cuvnt. Pentru
citirea datelor pe magistral este activat semnalul CitireDate sau Read care valideaz
amplificatoarele de ieire, care n caz contrar rmn n starea-a-treia (izolat).

ASC Dan Olaru

Cod Adres
b

DEC

Reea de
celule de
memorie

Citire date
Data
In

D3
D2
D1
D0

D3
D2
D1
D0

Data
Out

Fig.*. Structura memoriei de adresare a memoriei.

Amplificator
(buffer) de intrare

CK

CK

CK

CK

Reprezentarea
simbolic

Amplificator
(buffer) de ieire

Fig.*. Schema de principiu a unui bistabil de tip Latch n implementare CMOS.

ASC Dan Olaru


QA
IN
QB

(b)

Selecie

OE

Circuite secveniale i bistabilul Maser-Slave (Stpn-Sclav)


Acest bistabil este o component de baz a circuitelor secveniale larg utilizate n toat structura
unui sistem de calcul. Modul de lucru Master-Slave permite ca diferite categorii de circuite s fie
acionate de ctre frontul (cresctor sau descresctor) al unui impuls de comand. Astfel, poate fi
redus timpul de comand i stabilizare, identificndu-se mai uor momentul tranziiei. De regul,
toate schimbrile de stare ale circuitelor secveniale sunt comandate de fronturile impulsurilor de
ceas generare de un oscilator cu und dreptunghiular.
Circuitul numrtor
Acesta produce la ieiri un cod corespunztor numrului impulsului aplicat la intrare (bineneles,
ntr-o manier ciclic). Prin adugarea unui decodificator pot fi activate diferite conexiuni,
corespunztor la diferite momentele de timp. n acest fel pot fi configurate circuite (secveniale)
care s parcurg o anumit mulime de stri.
Circuitele de numrare conin un grup de bistabili comandai pe frontul impulsului de tact (T). n
cazul numrtorului asincron acetia sunt comandai din aproape n aproape, iar n cazul
numrtorului sincron sunt comandai simultan, schimbrile de stare avnd loc in funcie de
ieirile bistabililor precedeni i a intrrii conectate la ieirea final sau una de transport. Dei are
o construcie mai complex, numrtorul sincron este superior deoarece schimbrile de stare se
produc simultan, iar viteza de lucru este mai mare deoarece nu mai este necesar timpul de
propagare a informaiei de la intrare ctre ieire.
T
T

T
Q0

Q1

In
Q2

Q0

Q1

Q2

Fig.*. Conexiunea numrtorului asincron, respectiv sincron

Registrul de deplasare (serial)


Acest tip de registru de deplasare este foarte utilizat n cadrul operaiilor aritmetice care necesit
deplasarea poziional a numererlor (cazul algoritmului de nmulire, de exemplu) sau n cadrul
interfeelor care folosesc transferul de date serial. n ultimul caz, registrul este ncrcat paralel, cu
cuvntul de date preluat de pe o magistral, i apoi acesta este transformat ntr-o succesiune de
impulsuri, la ieirea unui registru de deplasare.
Schema de principiu a unui registru de deplasare se bazeaz pe un set de bistabili master-slave
(M-S) cu ieirile conectate la intrrile urmtoare. Astfel dup fiecare impuls de tact, informaia
(date de un singur bit) se deplaseaz de la un bistabil la bistabilul urmtor. Circuitele master-

ASC Dan Olaru

slave permit ca funcionarea s fie stabil, deoarece pe frontul cresctor seciunea master preia
datele de la bistabilul precedent, la care starea seciunii master rmne stabil, iar pe frontul
descresctor este modificat starea seciunii master a tuturor bistabililor.
Atunci cnd registrul este folosit la deplasarea datelor datelor (biilor) unui cuvnt ncrcarea se
face paralel, la comanda semnalului de ncrcare (Load), apoi este comandat deplasarea cu un
numr de poziii i apoi datele se obin la ieirile paralele. Registrul poate fi configurat astfel
nct datele s fie deplasate att la stnga ct i la dreapta, n acest caz folosidu-se dou semnale
de tact separate. De asemenea, deplasarea se poate face ciclic, atunci cnd ultima ieire este
conectat la intrarea serial sau poziiile rmase libere n urma deplasrii pot fi completate cu 0
sau 1 n funcie de starea intrarii seriale.
Registrul poate, de asemenea, s fie folosit la transformarea datelor din forma paralel (ca pe
magistral, de exemplu) n forma serial (ca la portul serial, de exemplu), atunci cnd se
utilizeaz intrrile paralele i ieirea serial (SO) sau la transformarea datelor din forma serial n
forma paralel atunci cnd se utilizeaz intrarea serial (SI) i ieirile paralele.
Intrri de date paralele

L
SI

M-S

M-S

M-S

M-S

SO

T (CK)
Ieiri de date paralele

Structura circuitului bistabil Maser-Slave


Schema de principiu pentru un bistabil master-slave implementat, n forma cea mai simpl,
coninnd numai intrarea de tact i la care s-a renunat la intrarea de iniializare (Clear) este dat
n Fig.*. Circuitul poate fi mbuntit prin adugarea a dou intrri speciale, J i K obinndu-se
bistabilul de tip J-K Master-Slave. Acesta reprezint o form general, care prin diferite
conexiuni ale intrrilor J i K se pot funcii particulare ca cele de ntrziere, memorare (Latch)
sau comutaie pe fronturile impulsului de tact. Pentru claritate n implementare s-au utilizat
numai pori I-NU (NAND).
Schema de baz conine dou circuite bistabile, corespunztor seciunilor Slave i Master. Ieirile
Q, Q ale ntregii structuri master-slave comut la apariia fronturilor cztoare (descresctoare)
ale semnalului de comand T. Principiul de funcionare este redat n tabelul de mai jos.
Simbolurile cu majuscule reprezint ieirile porilor logice independente (A,B,C,D) sau
configurate ca bistabili de tip R-S (P, P ,Q, Q ). Pentru o scriere mai compact, strile ieirilor
grupurilor de pori au fost grupate. De exemplu, n coloana corespunztoare grupului de ieiri A
A
i B, figurat prin
sunt indicate cele dou stri dup fiecare schimbare a nivelului impulsului
B
de tact.
S considerm c, n starea iniial, ieirile schemei au strile Q = 0 i Q = 1, iar intrarea de tact
se afl pe nivelul zero (T = 0). tiind c ieirea unei pori NAND este 0 numai dac ambele
intrri au nivelul 1 rezult: A = 1 i B = 1. Aceste nivele nu schimb strile ieirilor primului

ASC Dan Olaru

bistabil, care rmn la nivelele: P = 0 i P = 1. mpreun cu ieirile A i B acestea determin


starea porilor C i D: C = 1 i D = 0 determinnd strile stabile (presupuse la nceput) pentru
ieirile Q, Q ale celui de-al doilea bistabil.
S considerm c intrarea de tact trece pe nivelul unu (T = 1), n timp ce ieirile Q, Q se afl nc
n strile precedente (Q = 0, Q = 1). Rezult noua stare a porilor A i B: A = 0 i B = 1. Acestea
vor determina trecerea ieirilor primului bistabil n strile: P = 1, P = 0. mpreun cu A i B,
acestea determin nivelele pentru C i D (C = 1 i D = 1) care vor conserva starea bistabilului de
la ieire (Q = 0, Q = 1).
S considerm revenirea nivelului intrrii de tact n starea 0. Astfel, ieirile A i B vor fi forate
pe nivelul 1: A = 1, B =1. Acestea vor lsa nemodificat starea primului bistabil (P=1, P =0).
Combinaiile de la intrri va trece porile C i D pe nivelele: C = 0 , D = 1. Acestea vor fora
schimbarea strii bistabilului de ieire: Q = 1, Q = 0.
Din cele artate mai sus rezult c modul de lucru al bistabilului Master-Slave se bazeaz pe
urmtoarele faze de funcionare:
- atunci cnd intrarea de tact comut pe nivelul 1 primul bistabil schimb starea, deci se
poate spune c informaia de la intrare a fost memorat de seciunea Slave;
- atunci cnd intrarea de tact revine pe nivelul 0, bistabilul din seciunea Slave i
conserv starea, iar cel din seciunea Master comut;
- dac intrarea de tact trece iar pe nivelul 1, bistabilul Slave comut, n timp ce bistabilul
master i conserv starea pn la revenirea intrrii pe nivelul 0.
Se observ c, pentru aceasta configuraie, bistabilul Slave comut pe frontul cresctor al
impulsului de intrare, iar bistabilul Master comut pe frontul cztor al acestuia.

Q
T

0
1
0

A
B
1
1
0
1
1
1

P
P
0
1
1
0
1
0

C
D
1
0
1
1
0
1

Q
Q
0
1
0
1
1
0

C
P

P
B

T
Fig.*.Schema de principiu a unui bistabil master-slave

ASC Dan Olaru

Sumatorul
n cadrul sistemului de calcul datele sunt reprezentate cu cifre binare. Un numr binar poate
conine mai multe cifre binare, valoarea acestuia fiind dat de o sum de puteri ale lui doi avnd
drept coeficieni cifrele binare ale numrului.
Suma a dou numere binare trebuie fcut cifr cu cifr, transmind transportul de la o operaie
la alta.
Combinaiile de adunare pentru numere reprezentate de cte o cifr binar sunt:
0
0
1
1
termenul(A)
+ 0
+1
+ 0
+1
termenul(B)
0
1
1
10
transportul(C) si suma (S)
n cazul IV cifra 0 reprezint suma iar cifra 1 din stnga ei reprezint transportul (carry) care
trebuie adogat la suma cifrelor plasate la stnga dac numerele adunate au mai multe cifre. Se
observ c valoarile sumei i transportului se pot obine cu urmtoarele expresii de algebr
binar:
C = AB
S = AB + AB
Tabelul de adevr pentru cele dou expresii este:
Termenul A Termenul B Suma S Transportul C
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Schema logic a sumatorului poate fi implementat astfel:
A
B
S
A
B
A
B

Dac numrul binar conine maimulte cifre, pentru calculul sumei i transportului se pot utiliza
urmtoarele expresii logice:
S = ABC n 1 + AB C n 1 + ABC n 1 + ABC n 1
C = BC n 1 + AC n 1 + AB
Regula de sumare pentru fiecare ordin al cifrelor binare, pentru toate valorile posibile ale
termenilor i transportului se va conforma tabelului de adevr de mai jos:
Intrri
Ieiri
Transportul Cn-1 Termenul A Termenul B Suma Transportul Cn
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0

ASC Dan Olaru

0
1
1
1
1

1
0
0
1
1

1
0
1
0
1

0
1
0
0
1

1
0
1
1
1

Componentele unui sumator complet pentru numere cu cte dou cifre binare este descris de
urmtoarele scheme logice:
A
B
Cn-1

B
Cn-1
A
S

Cn

ASC Dan Olaru

Plan
1. Concepte de baz, Circuite de comutaie, Algebra Boolean
Disp.de comutaie generaiile calculatoarelor;
Semnificaia logic i aritmetic a cifrei binare (bit);
Reprezentarea numerelor zecimal, binar, hexa, (ASCII).
2. Elemente de baz a arhitecturii calculatoarelor
Magistrala (conectare paralel-trei stri, sensul de transmisie, comenzi;
Operatorul NAND, el.combinaionale:DEC (selectorul), MUX, DMUX,
el.secveniale: Bistabilul (M-S), registrul (MEM), Numrtorul, Maina secvenial.
3. Principii de funcionare
Transmisia datelor, Operaii aritmetice, Secvena de program;
Instruciunea main, format, operanzi, cod operaie.
4. Memoria
RAM, ROM, CACHE, Registre, Fiiere (CD, DVD, Flash).
5. Procesorul
Maina cu un tact;
Arhitecturi evoluate.
6. Periferice
Porturi, ntreruperi (hard, soft), Programe de serviciu (Drivere).

Sumatorul,

Você também pode gostar