Anda di halaman 1dari 127

ARHITECTURA

CALCULATOARELOR

Lector Dr. Anca Vasilescu

PARTEA I

2007 2008

REPROGRAFIA UNIVERSITII TRANSILVANIA DIN BRAOV

1
ARHITECTURA CALCULATOARELOR Anca Vasilescu

CUVNT NAINTE

n societatea actual, n viaa de zi cu zi, suntem din ce n ce mai mult dependeni de


calculator. Aceast main pe care ne dorim s-o stpnim ct mai bine este n msur s fac n
locul nostru o mulime de operaii. n acest sens, principalul avantaj este ctigarea de timp liber
datorat vitezei cu care calculatorul ne rezolv problemele. Pentru a putea valorifica un sistem de
calcul la adevrata lui valoare, un utilizator trebuie s tie strictul necesar despre structura i
funcionarea calculatorului. Ulterior, pe baza acestui vocabular minimal, el poate s aprofundeze
un anumit domeniu, o anumit direcie de folosire a calculatorului, n direct concordan cu
propria sa activitate cotidian.
Acest curs i propune tocmai acest obiectiv final: s familiarizeze utilizatorul nceptor
cu principalele componente ale calculatorului, cu structura lor de baz i rolul fiecreia n sistem.
Materialul didactic scris pentru studeni este mprit n: (I) suport pentru activitile
tutoriale care conine considerentele teoretice corespunztoare capitolelor 1 i 3 din tematica
cursului i (II) suport pentru activitile aplicative care conine considerentele teoretice i
problemele rezolvate corespunztoare capitolului 2 din tematica cursului.
Bibliografia propus n acest suport de curs este una selectiv. Pentru pregtirea
laboratoarelor i a temelor individuale, studenii pot folosi orice material care trateaz tema n
discuie i care este potrivit nivelului de pregtire al fiecruia.
Termenele de predare a temelor individuale/temelor de cas se vor stabili de comun acord
cu studenii prezeni la activitile tutoriale i aplicative. Criteriile de evaluare a materialelor
predate ca tem de cas sunt: ncadrarea n subiect, originalitatea, bibliografia. Studenii vor
consulta cel puin trei referine bibliografice pentru realizarea fiecrei teme de cas.
Opional, studenii sunt invitai s realizeze practic circuite electonice pentru simularea
funcionrii circuitelor logice interne ale componentelor calculatorului. Pentru aceast tem,
studenii interesai vor lua legtura direct cu cadrul didactic.

OBIECTIVE

Acest curs i propune urmtoarele obiective educaionale:


1. Insuirea cunotinelor de baz referitoare la un sistem de calcul.
2. Familiarizarea cu arhitectura calculatoarelor personale IBM-PC.
3. Familiarizarea cu structura i modul de funcionare ale principalelor componente ale unui
sistem de calcul.
4. Deprinderea programrii n limbaj de asamblare.

NOTA FINAL

Nota final rezult ca medie ponderat ntre notele rezultate din: tratarea prii teoretice
la lucrarea final, rezolvarea problemelor din lucrarea final, evaluarea altor activiti din timpul
tutorialelor i laboratoarelor. Activitile opionale i suplimentare pot compensa greelile de la
tratarea lucrrii finale.

2
ARHITECTURA CALCULATOARELOR Anca Vasilescu

TEME DE CAS

TC1. De la ABAC la calculatorul cuantic. Evolutia arhitecturii mainilor de calcul


TC2. Pachet de soluii pentru descrierea la nivel logic digital a unor componente elementare
ale calculatorului

TEMATICA CURSULUI

Componentele de baz ale unui sistem de calcul


Noiuni introductive
Definiii. SC din diferite puncte de vedere. Structura unui sistem de calcul.
Performane. Clasificri. Principiile von Neumann. Modelul formal al unui
calculator.
Sistemul de intrare/ ieire. Dispozitive periferice.
Clasificri. Canalul de intrare/ ieire. Legarea perifericelor la SC.
Procesoare de intrare/ ieire. Structura unor clase de periferice.
Unitatea de memorie
Definiii. Structura fizic. Structura ierarhic de organizare a memoriei.
Tipuri de acces la memorii.
Abordarea la nivel logic-digital a componentelor calculatorului
Circuite logice
Pori logice. CLC. CLS. CLC aritmetice. CLC decodoare. CLC
multiplexoare. CLS bistabile. Circuite integrate.
Regitri
Regitri cu ncrcare paralel. Regitri de deplasare. Numrtoare binare.
Regitri de incrementare.
Structura de baz a unui calculator
Regitri de baz ai unui sistem de calcul. Unitatea de contorizare i control.
Transferul datelor pe magistral.
Unitatea central de prelucrare
Organizarea general a regitrilor. Organizarea stivei
Microoperaie. Instruciune. Program. Codurile instruciunilor
Moduri de adresare
Clasificarea instruciunilor
Instruciuni pentru transferul datelor. Instruciuni pentru prelucrarea datelor.
Instruciuni pentru controlul programului.
Prelucrarea instruciunilor unui program
Microprocesorul
Caracteristici. Setul de instruciuni. Modelarea funcionrii unui procesor.
Maina cu trei adrese. Maina cu o adres. Structura intern de baz a unui
micoprocesor I 80x86.
Introducere n utilizarea limbajului de asamblare. Sintaxa principalelor
instruciuni. Rezolvarea unor probleme elementare.
Multiprocesare. Coprocesoare matematice.

3
ARHITECTURA CALCULATOARELOR Anca Vasilescu

TEMATICA SEMINARULUI

AT1. Clasificarea resurselor fizice ale calculatoarelor moderne. Clasificarea resurselor logice ale
calculatoarelor moderne.
AT2. Calculul performanelor principalelor componente ale sistemelor de calcul moderne
AT3. Modelarea funcionrii circuitelor logice. Problem e cu CLC, CLS
AT4. Modelarea funcionrii circuitelor logice. Probleme cu CBB, registri
AT5. Descrierea la nivel logic-digital a structurii pricipalelor componente interne ale
calculatoarelor moderne

TEMATICA LABORATORULUI

AA1. Caracterizarea arhitecturii sistemelor de calcul moderne ale anului 2008


AA2. Concepte de baza in dezvoltarea calculatoarelor viitorului. Sisteme nesecventiale
AA3. Elemente de utilizare a unui produs software pentru editarea si simularea functionarii
circuitelor logice
AA4. Simularea funcionrii componentelor interne elementare ale calculatorului folosind un
produs software de editare si simulare a circuitelor logice
AA5. Simularea funcionrii unor componente interne complexe ale calculatorului folosind un
produs software de editare si simulare a circuitelor logice

4
ARHITECTURA CALCULATOARELOR Anca Vasilescu

BIBLIOGRAFIE GENERAL

[1] JOHN von NEUMANN


The Computer and the Brain, Yale University Press, New Haven, Conn. 1958
[2] MORRIS MANO M.
Computer System Architecture, Prentice Hall International, 1993
[3] BOIAN F.M.
De la aritmetic la calculatoare, Presa Universitar Clujean, 1996
[4] MUSCA G.
Programare n limbaj de asamblare, Editura Teora, Bucureti, 1998
[5] PATTERSON D.A., HENNESSY J.L.
Computer Organization and Design The Hardware / Software Interface, Morgan
Kaufmann Publishers, Inc., 1998 tradus i n romnete la Editura ALL, 2002
[6] BURILEANU C. .a.
Microprocesoarele x86 o abordare software, Casa de Editur Albastr, Grupul
Microinformatica, Cluj-Napoca, 1999
[7] TANENBAUM A.S.
Organizarea structurat a calculatoarelor, Computer Libris Agora, Cluj-Napoca,1999
traducere dup Structured Computer Organization, Prentice Hall International, 1990
[8] CHIOREAN L. .a.
PC iniiere hard i soft, Casa de Editur Albastr, Grupul Microinformatica, Cluj-
Napoca, 1999
[9] ENGLANDER I.
The Architecture of Computer Hardware and Systems Software, John Wiley & Sons,
Inc. 2000
[10] STEFAN GH. .a.
Circuite integrate digitale probleme proiectare, Casa de Editur Albastr, Grupul
Microinformatica, Cluj-Napoca, 2000
[11] BARUCH Z .F.
Sisteme de intrare/ieire ale calculatoarelor, Casa de Editur Albastr, Grupul
Microinformatica, Cluj-Napoca, 2000
[12] GORGAN D. .a.
Structura calculatoarelor, Casa de Editur Albastr, Grupul Microinformatica, Cluj-
Napoca, 2000
[13] LUNGU V.
Procesoare INTEL. Programare n Limbaj de asamblare, Editura Teora, Bucureti,
2000
[14] VASILESCU A.
Concepte de baz n tehnologia informaiei, Editura Universitii din Piteti, 2000
[15] EDER B., .a.
ABC-ul calculatoarelor, volumul 1 n seria Computer Driving Licence, Editura BIC
ALL, Bucureti, 2001
[16] Reviste de specialitate

5
ARHITECTURA CALCULATOARELOR Anca Vasilescu

COMPONENTELE DE BAZ
ALE SISTEMELOR DE CALCUL

CUPRINS

1.1. Sistemul de calcul -------------------------------- -------------------------------- ---------------- 7


1.1.1 Definiii -------------------------------- -------------------------------- -------------------------------- ----------------- 7
1.1.2 Sistemul de calcul din diferite puncte de vedere -------------------------------- ------------------------------ 7
1.1.3 Structura ierarhic de organizare a calculatorului -------------------------------- ------------------------------- 8
1.1.4 Structura funcional a unui sistem de calcul -------------------------------- -------------------------------- ---- 9
1.1.5 Principiile von Neumann -------------------------------- -------------------------------- -------------------------- 11
1.1.6 Evoluia sistemelor de calcul-------------------------------- -------------------------------- ---------------------- 11
1.2. Sistemul de intrare/ieire. Dispozitive periferice-------------------------------- ------------ 15
1.2.1 Clasificri -------------------------------- -------------------------------- -------------------------------- ------------ 15
1.2.2 Caracterizarea unor periferice -------------------------------- -------------------------------- -------------------- 16
1.2.2.1 Discurile dure. Hard-discul-------------------------------- -------------------------------- --------------------- 16
1.2.2.2 Discurile flexibile. Discheta-------------------------------- -------------------------------- -------------------- 17
1.2.2.3 Compact discurile-------------------------------- -------------------------------- -------------------------------- 17
1.2.2.4 Monitoarele (graphic display) -------------------------------- -------------------------------- ----------------- 17
1.2.2.5 Mouse-ul -------------------------------- -------------------------------- -------------------------------- ---------- 18
1.2.2.6 Reele de comunicare-------------------------------- -------------------------------- ---------------------------- 19
1.2.2.7 Placa de reea -------------------------------- -------------------------------- -------------------------------- ----- 19
1.2.2.8 Modemul -------------------------------- -------------------------------- -------------------------------- ---------- 19
1.2.3 Legarea perifericelor la SC. Unitile de interfa I/O -------------------------------- ------------------------ 20
1.2.4 Magistrale -------------------------------- -------------------------------- -------------------------------- ------------ 21
1.2.4.1 Clasificarea magistralelor -------------------------------- -------------------------------- ---------------------- 23
1.2.4.2 Standarde de magistral-------------------------------- -------------------------------- ------------------------- 25
1.3. Unitatea de memorie -------------------------------- -------------------------------- ------------ 27
1.3.1 Structura fizic a memoriei-------------------------------- -------------------------------- ------------------------ 27
1.3.2 Tehnologii de realizare a memoriilor. Memorii semiconductoare -------------------------------- ---------- 28
1.3.3 Structura ierarhic de organizare a memoriei -------------------------------- -------------------------------- -- 30
1.3.4 Memorii cache -------------------------------- -------------------------------- -------------------------------- ------- 33
1.4. Proiectarea calculatoarelor moderne -------------------------------- -------------------------- 34

6
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.1. Sistemul de calcul

1.1.1 Definiii
Sistemul de calcul (SC, System Computer sau calculator) este reprezentat de o structur
destinat prelucrrii datelor.
Adesea, un SC este descris prin cele dou subsisteme componente: hardware i sistemul
software.
Partea hardware const din toate componentele electronice care alctuiesc partea fizic a
SC. Sistemul software const din instruciuni i date pe care SC le prelucreaz pentru a executa
diversele cerine ale utilizatorului. O secven de instruciuni ale SC se numete program.
Datele prelucrate de SC constituie baza de date.
Totalitatea componentelor sistemului de calcul solicitate de programe pentru executarea
lor poart numele de resurse.
Concret, SC este format din: resurse fizice, resurse logice i resurse informaionale.
Avem urmtoarele corespondene:
1. hardware = resurse fizice, adic procesoare, memorii, dispozitive de intrare/ieire, .a.
O clasificare acoperitoare a resurselor fizice poate porni de la gradul de rspndire
(utilizare) a unei componente fizice a calculatorului la momentul la care se face
clasificarea. Rezult astfel: (a) resurse fizice care formeaz un sistem de calcul minimal,
(b) resurse fizice care formeaz un sistem de calcul uzual i (c) resurse fizice care
formeaz un sistem de calcul specializat.
2. software = resurse logice. Acestea se mpart n (a) software pentru sistem (systems
software) i (b) software pentru aplicaii (applications software). Soft-ul pentru sistem
const n aplicaiile sistem care ofer servicii pentru uz comun, n special pentru
gestionarea sistemului nsui i, eventual, a reelei/reelelor din care acesta face parte. Din
aceast categorie fac parte: sistemul de operare, drivere, servere s.a. Soft-ul pentru
aplicaii const n aplicaiile propriu-zise, adic: aplicaii i/sau medii de dezvoltare i
programare, aplicaii utilitare, aplicaii utilizator. Aplicaiile sistem sunt la grania dintre
hardware i aplicaiile propriu-zise.
Observaie. Trebuie precizat c aceast clasificare este una relativ deoarece un anumit
program nu este obligatoriu s fac parte exclusiv dintr-o astfel de categorie. De exemplu, un
compilator este o aplicaie sistem, dar, mai mult, poate face parte dintr-un sistem de operare,
dac este vndut mpreun cu acesta i depinde de acel sistem de operare.
Un sistem de operare este un set de programe care gestioneaz toate resursele sistemului
de calcul gazd, astfel nct programele care ruleaz pe acel sistem s se execute la parametri
maximi (utilizare complet i optim).
3. resurse informaionale, adic fiiere de date i fiierele utilizatorilor.

1.1.2 Sistemul de calcul din diferite puncte de vedere


Descrierea operaiilor unui SC la nivel de hardware difer n funcie de scopul
urmrit. Astfel, un SC poate fi privit cel puin din trei puncte de vedere:
organizarea componentelor;
construirea;
arhitectura intern.
Organizarea SC se refer la cunoaterea modului n care opereaz fiecare dintre
componentele hard i posibilitile lor de interconectare astfel nct s formeze SC performant.
Construirea SC (design) se refer la aciunea de determinare a tipului componentelor
hard care trebuiesc folosite i a tipurilor de interconectare a acestora, astfel nct SC construit s
rspund cerinelor utilizatorului.

7
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Arhitectura sistemului de calcul se refer la structura i comportarea SC vzut de


utilizator. Cnd ne referim la arhitectura unui SC trebuie s dm specificaiile diferitelor uniti
funcionale i conectrile fizice i logice dintre ele.
Conform DEX (Dicionarului Explicativ al limbii romne), arhitectura calculatoarelor
se refer la asamblarea subsistemelor funcionale ntr-un calculator numeric, pentru a obine
performanele impuse n condiii de cost avantajoase.
Conform [13], sintagma arhitectura calculatoarelor este adesea utilizat cu semnificaia
simpl de organizarea i proiectarea calculatoarelor. Detaliind din punct de vedere practic, ntr-
un sistem de calcul se pot distinge mai multe nivele de arhitectur (vezi figura urmtoare),
fiecare definit de legtura pe care o stabilete ntre subsistemele sistemului gazd.

Lumea exterioar

S OF T W AR E | HARDWARE
Arhitectur de sistem
Program de aplicaie
Arhitectur de limbaj de programare
Limbaje de nivel nalt
Arhitectur de sistem de operare
Control Control I/O
execuie
Arhitectur de set de instruciuni
Setul de instruciuni de baz (interpretare
i execuie)
Arhitectur de microcod
Microcod Procesor I/O
Arhitectur de nivel poart
Registre Memorie Controllere
UAL

In general, prin arhitectur de nivel ne referim la interfaa dintre dou astfel de module
funcionale. Arhitectura de sistem sau arhitectura sistemului de calcul este cea dintre
sistemul de calcul i mediul exterior lui. La limita dintre hardware i software se afl arhitectura
setului de instruciuni care reprezint nivelul elementar la care sunt decodificate i executate
instruciunile recunoscute de unitatea de prelucrare.

1.1.3 Structura ierarhic de organizare a calculatorului


Din punctul de vedere al rolului fiecrei resurse a sistemului de calcul putem privi
organizarea intern a calculatoarelor moderne pe dou sau mai multe nivele. Fiecare nivel este
construit pe baza predecesorului su i reprezint o abstractizare distinct, cu obiecte i operaii
specifice.
In general, se pot identifica urmtoarele ase nivele conceptuale:
Nivelul 0. Nivelul logic digital. La acest nivel intereseaz porile logice care intr n
structura fiecrei componente interne a calculatorului. Fiecare poart este construit dintr-un
numr mic de tranzistoare. Cteva pori pot fi combinate pentru a forma un bistabil (o memorie
de 1 bit), care poate stoca 0 sau 1. Memoriile de 1 bit pot fi combinate pentru a forma regitri. In
acest curs, nivelul logic digital este subiectul capitolului al doilea.
Nivelul 1. Nivelul microarhitecturii. La acest nivel calculatorul este o colecie de
regitri (care formeaz memoria local) i un circuit capabil s execute operaii aritmetice i
logice (numit UAL, unitate aritmetico-logic). Regitri sunt conectai la UAL pentru a forma o
cale de date (engl. datapath) prin care se transfer datele ntre regitrii i UAL. Operaia de baz
la nivelul cii datelor este selecia regitrilor asupra crora opereaz UAL. Dup felul n care este
controlat transferul datelor deosebim maini de calcul cu control microprogramat sau maini de
calcul cu control bazat i pe circuite ale componentelor hardware.

8
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Nivelul 2. Nivelul arhitecturii setului de instruciuni sau nivelul ISA (engl. Instruction
Set Architecture). Fiecare productor de calculatoare public un manual pentru mainile pe care
le vinde, manual care se refer la acest nivel ISA, dar nu i la nivelele de dedesubt. In acest
manual productorul descrie limbajul mainii pe care o vinde, adic setul de instruciuni main
recunoscute de maina respectiv i pe care, implicit, aceasta le poate executa. Aceast descriere
const n detalierea instruciunilor executate n mod interpretat de ctre componenta de control
(microprogram sau circuite hardware).
Nivelul 3. Nivelul main al sistemului de operare. La acest nivel se detaliaz structura
i funciile sistemului de operare al mainii. Fa de nivelul ISA, sunt adugate instruciuni noi,
exist o organizare diferit a memoriei, se remarc posibilitatea execuiei paralele i/sau
concurente a programelor (task-urilor).
Observaie. In general, nivelele de la 1 la 3 nu sunt proiectate pentru a fi utilizate de
programatorul obinuit. Ele sunt un suport pentru aplicaiile dezvoltate la nivele superioare de
ctre programatorii de aplicaii. O alt diferen important ntre nivelele 1-3 pe de o parte i
nivelele 4,5 pe de alt parte este natura limbajului oferit. Limbajele main ale nivelelor
inferioare sunt numerice (programele sunt secvene greoaie de numere binare), n timp ce
programele dezvoltate la nivelele superioare folosesc limbaje care conin cuvinte uzuale sau
abrevieri uor de neles.
Nivelul 4. Nivelul limbajului de asamblare. Acest nivel ofer programatorilor
posibilitatea de a scrie programe pentru nivelele inferioare ntr-o form simbolic, mai accesibil
dect formatul impus de limbajul main.
Nivelul 5. Nivelul limbajului orientat pe problem. La acest nivel sunt proiectate
limbaje pe care le vor folosi programatorii de aplicaii care au de rezolvat probleme specifice.
Astfel de limbaje sunt uzual numite limbaje de nivel nalt.
Mulimea de tipuri de date, operaii i caracteristici ale fiecrui nivel se numete
arhitectura nivelului respectiv. Cu alte cuvinte, arhitectura se refer la acele aspecte care sunt
vizibile pentru utilizatorul unui nivel.
Conform Tanenbaum [7] arhitectura calculatoarelor se refer la studiul proiectrii
acelor pri ale unui sistem de calcul care sunt vizibile programatorului. In general, arhitectura
calculatoarelor i organizarea calculatoarelor sunt sintagme sinonime.

1.1.4 Structura funcional a unui sistem de calcul


Intr-un SC, resursele fizice mpreun cu cele logice coopereaz pentru satisfacerea
cerinelor utilizatorilor n ceea ce privete: introducerea (recepionarea) datelor, memorarea
(conservarea) datelor i informaiilor, prelucrarea informaiilor, transmiterea informaiilor la
alte sisteme de calcul i regsirea informaiilor.
Indeplinirea acestor operaii cade n sarcina unor subsisteme, numite uniti funcionale
ale SC. Acestea sunt conectate fizic i logic ntre ele i se individualizeaz prin funcia specific
fiecreia n sistemul de calcul.
Dup funciile pe care le ndeplinesc, unitile funcionale se grupeaz n urmtoarele
clase, formnd structura fizic a sistemului de calcul:
uniti de schimb pentru recepionare i transmitere de informaie. Unitile de schimb
formeaz componenta de control i comand (UCC).
componentele unitii aritmetico-logice (UAL) pentru executarea operaiilor aritmetice
i logice. Acestea preiau din memorie valorile operanzilor i depun tot n memorie
rezultatele.
procesoare pentru prelucrarea datelor. Procesoarele din SC formeaz nucleul pentru
unitatea central de prelucrare (UCP sau CPU = Central Processing Unit).
Microprocesorul denumete o unitate central de prelucrare realizat ntr-un singur circuit
integrat.
memorii interne pentru stocarea datelor i instruciunilor;
9
ARHITECTURA CALCULATOARELOR Anca Vasilescu

dispozitive periferice pentru preluarea i/sau transmiterea informaiilor externe.


Perifericele formeaz sistemul de intrare/ieire.
Cu aceste componente se pot scrie ecuaiile care reprezint structura logic a sistemului
de calcul. Acestea sunt:

UCC+ UAL= UCtrlP


UCtrlP+Regitrii = UCP
UCP+ Memorii = UC
UC+ IOS = SC
UCtrlP este unitatea de control i prelucrare
UC este unitatea central
IOS este sistemul de intrare/ieire.
Primele trei ecuaii definesc box-ul calculatorului, n timp ce ultima ecuaie definete
legtura acestuia cu mediul exterior lui. UC este unitatea de control a ntregului sistem de calcul:
supervizeaz activitatea oricrei componente i decide n situaii conflictuale. Aceste
componente se regsesc i n figura urmtoare:

Orice component a sistemului de calcul poate fi ncadrat n una dintre categoriile:


MEMORII, INPUT, OUTPUT, CONTROL, DATAPATH. Relaiile de dependen ntre unitile
funcionale ale SC vor fi detaliate ulterior, n paragraful referitor la etapele prelucrrii
instruciunilor unui program. Prezentm n figura urmtoare numai schema orientativ a acestor
dependene.
De aici rezult c PROCESORul preia instruciunile i datele din memorie, n timp ce
CONTROLul trimite semnale care determin operaii pe DATAPATH, n MEMORII i pe
dispozitivele periferice. Datapath (calea datelor) include registre, UAL i mai multe magistrale
de legtur (vezi i exemplul de transfer al datelor pe Datapath din capitolul al treilea). Cu alte
cuvinte, datapath este acea parte a UCP care conine UAL i intrrile i ieirile acesteia.

CONTROL INPUT

DATAPATH OUTPUT

PROCESOR MEMORIE

UC
10
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.1.5 Principiile von Neumann


Incepnd cu 1940, dup apariia lucrrilor teoretice privind calculele automate, lucrri
datorate n principal lui Alan Turing, lumea cercettorilor a devenit tot mai preocupat de
construcia efectiv a unor calculatoare. Matematicianul american John von Neumann a intuit,
prin analogie cu anatomia creierului uman, principiile care ar trebui s stea la baza construciei
calculatoarelor.
Enumerm aceste principii, aa cum au fost formulate la vremea respectiv.
1. Deoarece maina este destinat calculelor, ea execut cele patru operaii
aritmetice. Se impune deci, existena unei componente specializate pentru calcule. (Astzi,
aceasta este numit unitatea aritmetico-logic. )
2. Operaiile se vor executa secvenial. Pentru a asigura elasticitatea i o relativ
universalitate, se impune o distincie ntre instruciunile necesare rezolvrii unei probleme
particulare i controlul general asupra unor instruciuni executate la un moment dat.
(Apare, astfel, ceea ce astzi numim component de control. )
3. Este necesar o component numit memorie intern n care se in minte
pentru un timp limitat att instruciunile, ct i datele nece sare rezolvrii problemei.
Cele trei componente, luate mpreun, sunt analoage neuronilor din sistemul nervos
central.
Se impune, continund analogia, s existe un senzor care s recepioneze semnalele
de orice fel provenite din exterior. Este necesar, de asemenea, un motor care s acioneze
asupra mediului exterior. (Astzi, acestea se numesc dispozitive de intrare/ieire. )
4. Este necesar o component care s in minte permanent, s nregistreze aa
cum omul i noteaz ceea ce nu dorete s uite. Aceast component o vom numi memorie
permanent. (Astzi, ne referim la aceast component prin memorie extern. )
Este necesar crearea posibilitii de trecere de la memoria intern la cea
permanent i reciproc.
Conform acestor principii, arhitectura von Neumann reprezint structura ierarhic de
organizare a unui calculator construit pe baza modelului von Neuman i care conine: o unitate
de memorie principal, o unitate central de prelucrare, o cale intern pentru transferul datelor i
dispozitive de intrare - ieire.
Cu cteva excepii, i calculatoarele actuale sunt construite pe baza acestor principii.
Totui, sistemele paralele, numite i arhitecturi non von Neumann, nu respect principiul
secvenialitii (2), n timp ce sistemele simbolice, utilizate n aplicaii complexe din domeniul
inteligenei artificiale, se bazeaz pe inferene logice, deci nu exclusiv pe calcule aritmetice (ca
n principiul 1).
Opinia multor cercuri tiinifice este c, n deceniul acesta, cele trei direcii fundamentale
de cercetare care vor prezenta interes vor fi: microprocesoarele, inteligena artificial i
prelucrarea distribuit. Se preconizeaz astfel o orientare preponderent spre arhitecturile non
von Neumann, mai noi i mai puin studiate

1.1.6 Evoluia sistemelor de calcul


De unde un ENIAC este echipat cu 18000 de tuburi electronice i cntrete 30 tone,
nseamn c computerele viitorului ar putea avea 1000 tuburi i, probabil, o greutate de 1,5
tone. "
Popular Machine, martie 1949
Dei este dificil de prezis performanele viitoarelor SC, este sigur c vor depi cu mult
caracteristicile celor actuale.

11
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Att creatorii de soft ct i cei de hard construiesc sistemele de calcul bazndu-se pe


structura ierarhic de organizare n care fiecare nivel cumuleaz caracteristicile nivelelor
inferioare.
Tehnologiile cheie pentru procesoarele moderne sunt compilatoarele i siliconul. In timp
ce siliconul permite mrirea capacitilor hard, noile idei n organizarea calculatoarelor
mbuntesc considerabil raportul pre / performan. Dintre aceste idei, dou sunt remarcabile:
exploatarea paralelismului procesoarelor (de obicei prin pipeline) i exploatarea accesului direct
la memorie (de obicei prin completarea cu memorie de tip cache).
J. Presper Eckert i John Mauchly de la coala Moore a Univ. Pennsylvania construiesc
prima main cu caracteristicile constructive i funcionale ale unui calculator electronic
operaional. Aceast main, numit ENIAC (Electronic Numerical Integrator and
Calculator) a fost finanat de SUA i folosit n timpul celui de-al doilea rzboi mondial, dar
nu a fost fcut public pn n 1946. ENIAC era folosit n special pentru calcularea tabelelor
atacului de artilerie. ENIAC avea 80 picioare lungime, 8,5 picioare nlime i cteva picioare
adncime. Fiecare dintre cei 20 regitri de 10 bii avea 2 picioare lungime. In total, ENIAC
folosea 18000 tuburi electronice. (1m = 3,2808 ft)
ENIAC executa salturi condiionate i era programabil. Programarea se fcea manual prin
cuplarea (plugging) cablurilor i setarea comutatoarelor, iar datele erau introduse pe cartele
perforate (punched cards). Programarea calculelor de baz dura ntre o jumtate de or i o zi
ntreag.
In 1944 John von Neumann a fost atras n proiectul ENIAC. Grupul vroia s
mbunteasc modalitatea de introducere a datelor i se discuta asupra memorrii programelor
ca o succesiune de numere. Von Neumann a contribuit la cristalizarea ideilor i a scris un memo
prin care propunea un calculator cu program memorat (program-stored computer), numit
EDVAC (Electronic Discrete Variable Automatic Computer). Acest memo este baza a ceea
ce i astzi numim calculator von Neumann (vezi Principiile von Neumann). Muli apreciaz c
aceast denumire acord prea mare credit lui von Neumann i neglijeaz aportul (inginerilor)
creatorilor Eckert i Mauchly
In 1946 Maurice Wilkes de la Universitatea Cambridge a vizitat Scoala Moore. Intors la
Cambridge, Wilkes s-a hotrt s demareze un proiect care s construiasc un calculator cu
program memorat, numit EDSAC (Electronic Delay Storage Automatic Calculator). EDSAC
a devenit funcional n 1949 i se consider primul calculator cu scopuri generale (engl., general
purpose calculator), operaional i cu program memorat din lume.
In timpul celui de-al doilea rzboi mondial au fost construite calculatoare specializate
pentru decodificarea mesajelor interceptate de englezi de la nemi. O echip de la Bletchley Park,
din care fcea parte i Alan Turing, a construit n 1943 calculatorul Colossus. Aceast main a
fost secret pn n 1970. Dup rzboi, acest grup a avut o oarecare influen asupra pieei
britanice de calculatoare.
In timp ce se lucra la ENIAC, Howard Aiken construia la Harvard un calculator electro-
mecanic numit Mark-I. Acesta a fost urmat de Mark-II i apoi de dou maini cu tuburi
electronice, Mark-III i Mark-IV. Fa de EDSAC, care folosea o singur memorie att pentru
instruciuni, ct i pentru date, Mark-III i Mark-IV aveau memorii separate pentru instruciuni i
pentru date. Aceste maini au fost considerate mpotriva calculatoarelor cu program memorat.
Pentru a respecta importana mainilor lui Howard, astzi, termenul de arhitectur Harvard
descrie maini cu o memorie principal unic, dar cu zone cache separate pentru date i
instruciuni.
In 1947 a fost demarat la MIT (Massachusetts Institute of Technology) proiectul
Whirlwind i avea ca scop realizarea unor aplicaii pentru procesarea n timp real a semnalelor
radar. Dei a condus la multe invenii, cea mai important rmne memoria bazat pe miez
(core) magnetic, care a fost baza sistemelor de memorare pentru urmtorii 30 de ani.
Firma IBM era implicat n afacerile cu cartele perforate i cu automatizarea sistemelor,
dar nu a construit calculatoare pn n anii 1950. Primul calculator IBM, IBM 701, a fost scos pe

12
ARHITECTURA CALCULATOARELOR Anca Vasilescu

pia n 1952 i a fost vndut n 19 exemplare. Imediat dup 1950 muli erau pesimiti n legtur
cu viitorul calculatoarelor, mai ales gndindu-se c piaa i oportunitatea pentru aceste maini
super specializate" trebuie s fie foarte limitat.
In 1964, dup o investiie de 5 miliarde de dolari, IBM a fcut un mare pas nainte cnd a
anunat calculatorul System/360. Acest sistem nsemna o mbuntire a tuturor performanelor
de pn atunci de cel puin 25 de ori.
Un an mai trziu, DEC (Digital Equipment Corporation) a scos PDP-8, primul
minicalculator comercial, la un pre sub 20.000 $. Minicalculatoarele au fost precursoarele
miniprocesoarelor: n 1971 Intel a creat primul microprocesor, Intel 4004.
In 1963 s-a anunat primul supercalculator, nu din partea companiilor mari sau a
centrelor super-tehnologizate. Seymour Cray a creat n Minnesota maina CDC 6600 (CDC =
Control Data Corporation). Aceast main includea multe din ideile regsite n
microprocesoarele de mai trziu.
Cray va prsi ulterior CDC pentru a forma Cray Research Inc. n Wisconsin. In 1976
Cray Research Inc. lanseaz Cray-1 care era n acelai timp i cea mai rapid din lume, i cea
mai scump, dar i calculatorul cu cel mai bun raport cost / performan pentru programele
tiinifice. n 1996 Cray Research este asimilat de Silicon Graphics.
In timp ce Cray crea cel mai scump calculator, alii se gndeau cum s foloseasc
microprocesorul pentru a crea un calculator att de scump" ct s poat fi cumprat pentru
acas. Au fost mai multe tentative de a lansa un calculator personal, dar remarcabil rmne
faptul c n 1977 Apple II (i.e. Steve Jobs i Steve Wozniak) a definit ce nseamn: pre sczut,
volum mare i calitate bun pentru ceea ce avea s devin industria calculatoarelor personale.
Dei cu un avans de patru ani, Apple va sfri pe locul al doilea Lansat n 1981, IBM
Personal Computer devine cel mai bine vndut calculator de orice tip. Succesul lui va da ctig
de cauz lui Intel pentru piaa de microprocesoare i lui Microsoft pentru sistemul de operare.
Chiar i astzi, cel mai popular CD al lui Microsoft este cel cu sistemul de operare (Windows),
chiar dac este de multe ori mai scump dect un CD cu muzic!

Rezumat.
In acest paragraf am definit principalele concepte necesare pentru o bun nelegere a
structurii i funcionrii calculatorului. Dintre acestea, se remarc prin importan definiia
pentru arhitectura calculatoarelor, pentru c acest concept d i titlul cursului.
Partea central a acestui prim paragraf din curs o constituie prezentarea structurii
sistemului de calcul n diferite abordri: (1) tipurile de resurse ale calculatorului modern, (2)
structura ierarhic de organizare a sistemului de calcul i (3) structura fizic i logic a
sistemului de calcul.
Paragrafele urmtoare vor trata n detaliu tocmai componentele principale puse n
eviden de structura logic a calculatorului, i anume: sistemul de intrare/ieire (dispozitivele
periferice) i unitatea de memorie, n capitolul nti, structura i rolul regitrilor i a UAL n
capitolul al doilea, capitolul al treilea i al patrulea fiind rezervate structurii i funcionrii
unitii centrale de prelucrare, concret a procesorului.
Cuvinte cheie.
sistem de calcul
hardware, software
arhitectura calculatoarelor, nivel conceptual de arhitectur
unitate funcional, ecuaie logic, UAL, UCP, memorie, IOS
Verificare.
1. Care sunt principalele dumneavoastr activiti curente n care folosii calculatorul?
2. Notai-v principalele componente (denumire i caracteristici) ale calculatorului pe care l
folosii n mod frecvent. Decidei care sunt elementele pe care le cunoatei, pe care le

13
ARHITECTURA CALCULATOARELOR Anca Vasilescu

putei descrie i care nu. Recitii aceast descriere din cnd n cnd, pe msur ce
parcurgei cursul i bifai elementele despre care tocmai ai nvat. Discutai n final cu
cadrul didactic ceea ce a rmas nebifat pe lista dumneavoastr.
3. Care este legtura ntre structura fizic i structura logic ale sistemului de calcul?
4. Stabilii-v n scris cteva repere cronologice n evoluia sistemelor de calcul.

NOTIE

14
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.2. Sistemul de intrare/ieire. Dispozitive periferice


Pentru a folosi SC, utilizatorul trebuie s introduc n calculator programele i datele
aplicaiei sale. De asemenea, dup rezolvarea tuturor sarcinilor primite, SC trebuie s ntiineze
utilizatorul asupra rezultatelor obinute.
Totalitatea unitilor funcionale capabile s organizeze i s memoreze informaii
externe, pe de o parte i s asigure schimbul de informaii ntre SC i mediul extern, pe de alt
parte, alctuiesc sistemul de intrare/ieire. Concret, acesta cuprinde dispozitivele periferice
sau, pe scurt, perifericele.
Principalele tipuri de dispozitive periferice legate la SC de tip IBM -PC sunt:
Consola (tastatura) prin intermediul creia utilizatorul introduce datele n calculator
foarte comod, sub form alfanumeric;
Mouse-ul un dispozitiv de manevrare a unui cursor grafic care permite folosirea comod a
interfeei grafice;
Imprimanta cu rol n transmiterea informaiilor din calculator pe hrtie. La SC recente,
imprimanta dispune de diferite seturi de caractere i de puternice faciliti grafice; exemple:
imprimante cu ace, cu jet de cerneal, cu laser.
Hard-discul ca principal dispozitiv de memorare a inform aiilor externe;
Unitatea de disc flexibil un SC poate avea una sau mai multe uniti de disc flexibil. La
nceput s-au folosit dischetele de 8". Au urmat cele de 5.25" i apoi unitile de 3.5".
Uniti de disc compact, pentru citirea CD-urilor. Sistemele moderne au incorporate uniti
de disc compact read-only.
Pe lng acestea, la SC se mai pot conecta i alte periferice, ntlnite mai rar n practic.
Ele sunt destinate unor categorii de utilizatori specializai n anumite operaii. Dintre acestea
amintim: plotter, scanner, unitate ZIP, overhead, CD-writer.
Parametrii care caracterizeaz performanele unui periferic sunt:
modul de acces;
timpul de acces;
rata de transfer al informaiei;
capacitatea;
costul.
n funcie de tipul fiecrui dispozitiv periferic, unii parametri pot s nu aib semnificaie.

1.2.1 Clasificri
Din punctul de vedere al direciei de transfer al informaiei, avem: periferice de
intrare (input device), periferice de ieire (output device) i periferice de intrare/ieire (I/O
device). Din aceast ultim categorie fac parte i reelele interne destinate comunicrii ntre
periferice.
Din punct de vedere funcional, dispozitivele periferice se mpart n:
1) periferice de schimb: imprimanta, plotter-ul, videoterminalele, reelele de
comunicare cu alte periferice;
2) periferice purttoare de informaii permanent pe medii magnetice: benzile
magnetice, discurile (hard-discurile, dischetele).
Preluarea datelor de pe aceste suporturi se face prin intermediul unui cap de citire.
Benzile magnetice sunt dispozitive cu acces secvenial la informaiile memorate. Capul de citire
are poziie fix i el citete la un moment dat coninutul benzii care este n dreptul su.
La discurile magnetice, informaia poate fi accesat n mod direct. Citirea se face prin
deplasarea capului de citire pn n dreptul zonei de pe disc unde este memorat informaia
cutat.

15
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Observaie. Discurile i benzile magnetice pot fi discutate i n contextul unitilor de


memorie auxiliar.
Din punctul de vedere al tipului de transfer al informaiei, avem: periferice bloc i
periferice caracter.
Perifericele bloc sunt caracterizate de faptul c organizeaz informaia n blocuri de
lungime fix, fiecare bloc avnd propria adres.
Unitatea logic de schimb dintre perifericele bazate pe suport magnetic i memoria
intern este blocul de informaie. Acesta este format din unul sau mai multe sectoare vecine,
care aparin aceleiai piste. Un bloc va conine, pe lng succesiunea propriu-zis de octei cu
informaie, un numr suplimentar de bii destinai verificrii corectitudinii informaiei memorate
n blocul respectiv. Pentru aceast completare sunt cunoscute dou metode: schema de codificare
polinomial-ciclic i schema cu bii de paritate ncruciat. Exemple: mediile de tip disc.
Perifericele caracter sunt caracterizate de faptul c furnizeaz sau primesc un flux de
octei, fr nici o structur de grupare a acestora. n consecin, octeii nu sunt adresabili i
fiecare octet este disponibil ca i caracter curent pn la apariia urmtorului caracter n/pe flux.
Exemple: imprimanta, terminalele cu tastatur i ecran, mouse-urile.
Din punctul de vedere al partenerului implicat n utilizarea perifericului respectiv,
avem: periferice care interacioneaz cu omul i periferice care i nteracioneaz cu maina.
O caracteristic important pentru aprecierea unui periferic este dat de rata de transfer.
Aceasta reprezint numrul de uniti de informaie pe care le poate transfera perifericul
respectiv ntr-o secund n cadrul comunicrii cu procesorul, cu memoriile sau cu alte periferice.

1.2.2 Caracterizarea unor periferice

1.2.2.1. Discurile dure. Hard-discul


Din punct de vedere fizic, un volum de disc magnetic are structura din figura urmtoare.
Volumul se monteaz pe o unitate de disc, unde se rotete cu o vitez constant.
Suprafaa de memorare a unui disc este structurat pe trei nivele (pist, cilindru, sector) i
depinde de patru constante de construcie.
Suprafaa fiecrei fee active de memorare este divizat logic n coroane circulare
concentrice numite piste. Numrul de piste de pe o fa este prima constant de construcie i ea
variaz ntre 30 i 800 piste/fa.

Sector

Cilindru 0
1
Pista
Capete
de
2 scriere /
3 citire
Fata
magnetizabila .
.
.
Furca

In cazul n care volumul conine mai mult de dou fee active, situaie frecvent ntlnit
n practic, atunci fiecare fa activ are acelai numr de piste i toate pistele cu aceeai raz

16
ARHITECTURA CALCULATOARELOR Anca Vasilescu

formeaz un cilindru. Numrul de fee active ale unui volum de disc este a doua constant de
construcie i ea variaz ntre 1 i zeci de fee active/volum.
Fiecare pist este mprit n mai multe sectoare. Numrul de sectoare pe pist este a
treia constant de construcie i ea variaz ntre 4 i cteva zeci de sectoare/pist. Sectorul este
unitatea de adresare a informaiei pe disc.
n fine, numrul de octei dintr-un sector este a patra constant de construcie. De regul,
acest numr este o putere a lui 2 i variaz ntre 128 i 4096 octei/sector.
Hard-discul este creat dup anul 1985 i rivalizeaz cu oricare dintre tipurile de discuri
cunoscute. Capacitatea lor de memorare depete capacitatea de memorare a altor discuri.

1.2.2.2. Discurile flexibile. Discheta


Un disc flexibil este format dintr-o folie magnetizabil pe ambele fee, mbrcat complet
n material plastic nedeformabil (la discurile de 3.5"). Principial, mbrcmintea are prevzute
patru obturaii (vezi figura urmtoare): una central pentru antrenare, una radial pentru
selectarea pistelor i un orificiu n apropierea celui de antrenare, destinat poziionrii capetelor
de scriere - citire.
Selectare piste

Pozitionare capete scriere - citire

Antrenare

Protectie la scriere

Al patrulea orificiu este n partea dreapt jos: dischetele de 3.5" dispun (n vederea
proteciei la scriere) de un comutator cu dou poziii: protejat la scriere, respectiv neprotejat.
Astfel, dac orificiul este nchis atunci este permis scrierea pe dischet, iar dac orificiul este
deschis, se interzice scrierea.
Pentru o dischet de 3.5 formatat la 1.44MB constantele de construcie sunt: 80 piste,
18 sectoare pe pist, 2 capete de scriere-citire, 300 rotaii pe minut, rat de transfer de 500Kbps
(kilobii pe secund).

1.2.2.3. Compact discurile


Pentru gestionarea unor baze de date mari, casele de software utilizeaz din ce
n ce mai mult discuri compacte, numite CD-ROM, ale cror capaciti depesc 1000
MO. In general, informaiile de pe CD-ROM-uri sunt de tip read-only i conin de regul
baze mari de date cu caracter de consultare public. Pe lng CD-urile read-only, ncep s se
rspndeasc pe pia i CD-urile reinscriptibile.
Primele astfel de discuri conineau baze de date documentare pe diverse domenii
tiinifice: informatic, electronic, matematic, enciclopedii, etc.

1.2.2.4. Monitoarele (graphic display)


Orice SC are un monitor (ecran) prin care comunic cu utilizatorii.
Funcionarea monitorului se bazeaz pe tehnologia de realizare a televizoarelor, adic
este folosit un tub catodic (CRT - cathode ray tube). Astfel, un fascicul de raze scaneaz
imaginea linie cu linie, de 30 - 75 ori pe secund. La aceast rat de scanare utilizatorul nu poate
observa raza pe ecran.
Imaginea poate fi interpretat ca o matrice de elemente luminoase elementare (picture
elements), numite pixeli. De aceea, imaginea poate fi reprezentat printr-o matrice de bii,
numit bit-map. Dimensiunile acestei matrice dau rezoluia ecranului. Cele mai simple

17
ARHITECTURA CALCULATOARELOR Anca Vasilescu

monitoare folosesc cte un bit pentru reprezentarea unui pixel i, astfel, pot reda numai imagini
alb-negru. Urmeaz monitoarele care folosesc 8 bii pentru un pixel, care pot reprezenta astfel
256 nuane de gri (256 = 2 8). In fine, monitoarele color folosesc 24 bii pentru reprezentarea unui
pixel i 8 bii pentru fiecare dintre culorile fundamentale, adic rou, verde i albastru (RGB -
Red, Green, Blue).
In particular, calculatoarele portabile au ecrane cu cristale lichide (LCD - liquid crystal
display). Diferena esenial este faptul c un pixel LCD nu este o surs de lumin.
Indiferent de tipul de monitor, componenta hardware pentru grafic conine mai multe
buffere de imagine (raster refresh buffer sau frame buffer) pentru a memora imaginea sub form
de bit map. Imaginea de reprezentat pe ecran este memorat n frame buffer i, conform cu rata
de actualizare a imaginii (refresh rate), fiecare bit al fiecrui pixel este citit, interpretat i reafiat
pe ecran conform cu noile caracteristici (valori). Scopul realizrii unui bit map este de a
reprezenta fidel imaginea.
Competiia ntre sistemele grafice se d pentru c ochiul uman detecteaz foarte bine
fiecare schimbare de pe ecran. De exemplu, este neplcut s se observe diferena dintre poriunea
de ecran pe care imaginea a fost actualizat, fa de cea neactualizat.
Un monitor poate lucra n regim text sau n regim grafic.
Pentru conectarea monitorului la calculator se folosesc dou modaliti: legarea serial
sau legarea prin adaptor video.
Ecranul poate lucra, dar nu simultan, fie n regim text, fie n regim grafic. n regim text
vede (de regul) 25 de linii a cte 80 de caractere fiecare, iar n modul grafic o matrice de pixeli,
ale crei dimensiuni depind de caracteristicile adaptorului video.
Evident c, pentru modul de lucru grafic memoria ecran este mult mai mare dect cea
necesar pentru modul de lucru text.
In memoria ecran, fiecrui caracter (n mod de lucru text) sau fiecrui pixel (n mod de
lucru grafic), i sunt ataate aa numitele atribute ale imaginii. Aceste atribute se refer la:
strlucirea punctului luminos (brightness);
la posibilitatea imaginii de a pulsa pe ecran (flashing);
la posibilitatea imaginii de a aprea n video invers ( adic situaia n care se schimb
culoarea fondului cu cea a punctelor luminoase);
la culoarea pixelului sau a caracterului.

1.2.2.5. Mouse-ul
Prin "mouse" ne referim la perifericul de pointare (pointing device) inventat n 1967 i
care a intrat n componena unui sistem de calcul de prin anii '80.
Principiul de funcionare se bazeaz pe utilizarea unei bile montat astfel nct s fie n
contact cu doi cilindri de dimensiuni foarte mici. Unul dintre aceti cilindri corespunde axei Ox,
adic direciei orizontale, n timp ce cellalt corespunde axei Oy, adic direciei verticale.
Cilindrii sunt manevrai mecanic sau (la modelele moderne) antreneaz cte o roti
dinat prin intermediul creia un LED (Light Emitting Diode) lumineaz un senzor foto.
Micarea fizic a mouse-ului pe pad determin nvrtirea bilei, care determin rotirea
cilindrilor Ox i Oy (dup cum mouse-ul este micat orizontal, vertical sau pe diagonal) i, n
continuare, actualizarea prin incrementare i/sau decrementare a unor contoare sistem. Aceste
contoare (numrtoare) au rolul de a nregistra ct de departe a fost micat mouse-ul i n ce
direcie.
Interfaa ntre mouse i sistem este asigurat prin una dintre variantele:
micarea mouse-ului genereaz impulsuri folosind LED-ul (vezi anterior) sau
micarea mouse-ului genereaz operaii de actualizare a valorilor unor contoare.
Periodic, procesorul semnaleaz impulsurile sau citete valorile contoarelor i determin
deplasarea relativ a mouse-ului de la citirea anterioar. Conform cu rezultatul obinut,
reprezentarea mouse-ului pe ecran este mutat proporional. Micarea reprezentrii mouse-ului

18
ARHITECTURA CALCULATOARELOR Anca Vasilescu

pe ecran este lent deoarece variaia poziiei mouse-ului este mai mic dect rata de citire i
interpretare a procesorului.
Mouse-ul este prevzut cu dou sau trei butoane. Operaia esenial n lucrul cu mouse-ul
este cea de eliberare a unuia dintre butoane.
Legtura dintre valorile contoarelor, poziia (starea) butoanelor i poziia reprezentrii
mouse-ului pe ecran se face prin mecanisme software. De obicei, aceste programe sunt grupate
n driver-ul de mouse i se cumpr mpreun cu perifericul. Deoarece exist acest soft,
utilizatorul poate seta diveri parametri de lucru cu mouse-ul: intervalul de timp caracteristic
unei operaii double-click, viteza de deplasare a reprezentrii mouse-ului pe ecran, s.a.
Pe de alt parte, interpretarea permanent a poziiei mouse-ului pe ecran asigur c
niciodat mouse-ul nu va sri din ecran". Metoda prin care sistemul primete informaii despre
mouse prin citirea i interpretarea semnalelor de la mouse se numete polling [pouli].

1.2.2.6. Reele de comunicare


Dac lum n discuie comunicarea prin reele atunci distingem dou tipuri de reele de
comunicare: reeaua intern a sistemului de calcul i reelele de comunicare ntre sisteme de
calcul.
Reeaua intern a unui SC interconecteaz componentele fizice interne ale sistemului,
concret, procesorul la memorii i la dispozitivele periferice.
Reelele de comunicare ntre mai multe SC rezult n urma interconectrii
componentelor a diferite calculatoare (sisteme multicalculator). Principalele avantaje ale
realizrii i utilizrii unei reele de calculatoare sunt: comunicarea rapid i facil, posibilitatea
partajrii resurselor, accesul la distan.

1.2.2.7. Placa de reea


Placa de reea este componenta fizic a unui sistem de calcul prin care acesta se poate
conecta la o reea de calculatoare. O plac de reea funcioneaz ca interfa fizic ntre
calculator i cablul de reea. Fiecare calculator din reea (staie) i server-ul reelei vor avea
instalat cte o plac de reea (fizic, ntr-un slot pe placa de baz sau incorporat direct n placa
de baz). Legtura fizic ntre calculator i restul reelei se stabilete dup ce cablul de reea se
conecteaz la portul plcii de reea.
Fiecare participare" a calculatorului n reea presupune un transfer de date ntre
calculator i placa de reea, deci un proces de comunicare. In cazul plcilor cu acces direct la
memorie, DMA Board (Direct Memory Access), calculatorul-staie aloc o parte din spaiul su
de memorie pentru placa de reea.

1.2.2.8. Modemul
Atunci cnd se pune problema ca dou calculatoare s comunice prin intermediul unei
linii telefonice este nevoie i de un dispozitiv numit modem. Necesitatea modemului rezult din
faptul c liniile telefonice pot transporta numai semnale analogice (sunet), n timp ce
calculatoarele comunic prin impulsuri digitale (semnale electronice). Un semnal digital este
unul discret, care are una din dou valori posibile: 0 sau 1. Un semnal analogic poate fi
reprezentat printr-o curb continu, avnd un domeniu infinit de valori.
Astfel, modemul apare ca un modulator-demodulator de semnale, care convertete
semnalele digitale n semnale analogice i invers.
Un modem include o interfa de comunicare serial (RS-232, vezi anterior Legarea
serial) i o interfa pentru linia telefonic, RJ-11 (adic o priz de telefon cu patru fire).
Modemurile sunt disponibile att ca modele interne, ct i externe. Un modem intern
este instalat ntr-un slot de extensie al calculatorului, la fel ca orice alt plac de interfa. Un
modem extern este ca o cutie conectat la calculator prin intermediul unui cablu serial (RS-
232), care face legtura ntre portul serial al calculatorului i conectorul de interfa serial al

19
ARHITECTURA CALCULATOARELOR Anca Vasilescu

modemului. In plus, indiferent de model, modemul folosete i un cablu cu conector RJ-11C


pentru a se conecta la priza telefonic de perete.

1.2.3 Legarea perifericelor la SC. Unitile de interfa I/O


Perifericele conectate la un SC au nevoie de linii speciale de comunicare pentru a se lega
la UCP. Concret, aceasta se realizeaz prin componente hardware numite uniti de interfa cu
rol n supervizarea i sincronizarea tuturor transferurilor de intrare / ieire.
Principalele funcii ale unitilor de interfa sunt:
conversia semnalelor specifice modului de operare pe suporturi magnetice n semnale de
lucru pe circuite electronice, adic de pe periferic magnetic n CPU;
sincronizarea ratelor de transfer de date de la viteza de lucru pe periferic la viteza de lucru
n CPU;
decodificarea/codificarea datelor de pe periferic n format specific n CPU;
delimitarea semnalelor unui periferic de ale altora dintre cele conectate la acelai SC.
n funcie de numrul semnalelor de date prin care se realizeaz transmiterea informaiei
dinspre periferic distingem interfee seriale i interfee paralele.
Comunicarea serial presupune c informaia circul ntr-o structur secvenial de bii n
care alterneaz biii de informaie cu biii de control. Numrul i semnificaia biilor de control
sunt conform cu protocolul de comunicare prin care se asigur transmisia datelor. n general,
avem un bit de start, unul sau doi bii de stop i un bit de paritate. n comunicarea paralel,
informaia circul n blocuri de 8 bii. Avantajul comunicrii paralele const n mrirea vitezei de
transfer i n eliminarea biilor de control.
n plus, comunicarea, respectiv transmisia datelor, poate fi cu sincronizare (sau sincron)
dac semnalele de date sunt completate de semnale de tact (sau de ceas). n acest caz, viteza de
transmisie a datelor depinde de frecvena de tact. Dac nu exist semnale de tact atunci
comunicarea este asincron i sincronizarea se poate realiza prin nsi structura datelor
transmise, de exemplu, comunicarea bazat pe caracter sau comunicarea bazat pe mesaj.
Pe lng interfa, fiecare periferic poate avea o unitate de control proprie, numit
controller, cu rol n supervizarea operaiilor specifice mecanismului de funcionare a
perifericului respectiv. De exemplu, controllerul propriu imprimantei gestioneaz deplasarea
hrtiei, timpul de listare i selectarea tipului de caracter de imprimat.
Controller-ul poate fi independent sau poate fi integrat fizic cu perifericul.

SC Interfa Controller Periferic

port

Punctul n care se conecteaz fizic interfaa la SC este un registru de date care se numete
port. Practic, portul este registrul prin care se realizeaz schimbul de informaii ntre sistem i
exterior. n funcie de tipul de interfa, acesta poate fi port de intrare, port de ieire sau port
de intrare / ieire.
Portul de intrare / ieire specific un canal prin care informaia circul ntre dispozitivele
hardware i UCP. Portul este identificat de UCP printr-o adres. Astfel, fiecare resurs hardware
din sistem trebuie s aib o alt adres de port I/O.
Concret, comunicarea ntre procesor i diferite periferice se face prin magistrala de
intrare / ieire (I/O Bus). Cuplarea perifericelor la sistemul de calcul presupune, pe de o parte,
adaptarea semnalelor specifice fiecrui echipament la semnalele de pe magistral i, pe de alt
parte, reglarea fluxului de date ntre calculator i periferice.
Din punct de vedere logic, legtura ntre dispozitivele periferice, memorii i UCP este
asigurat de o rutin de interfa care se va numi driver. Concret, un driver este o aplicaie
software care identific perifericul n sistem.

20
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Comunicarea ntre un periferic i UCP este permanent. In acest sens, procesorul citete
i interpreteaz periodic anumite date despre starea fiecrui periferic. Subsistemul de gestiune a
perifericelor poate testa periodic fiecare periferic la acelai interval de timp sau pe baza unui
sistem de prioriti. Tehnica sondrii" periodice de ctre procesor a strii perifericelor se
numete polling [pouli]. Testarea pe baza unui sistem de prioriti este o metod de ncredere
i poate fi cea mai potrivit soluie n sistemele mici. Tehnica polling este o metod
nerecomandat n sistemele puternic dependente de timp (time-critical) deoarece un eveniment
important poate aprea imediat ce perifericul su tocmai a fost testat; n acest caz evenimentul
este lsat n ateptare pn la urmtoarea testare, ceea ce nu este convenabil pentru un eveniment
important. O alternativ modern, deosebit de util n toate tipurile de sisteme, este folosirea
ntreruperilor.

1.2.4 Magistrale
Conform cu arhitectura von Neumann a sistemelor de calcul comunicarea ntre
componente se realizeaz prin legturi dedicate ntre perechi de componente. Aceasta este o
abordare rigid, care limiteaz scalabilitatea sistemului. Alternativa pentru aceast situaie este
soluia propus de firma DEC (Digital Equipment Corporation) care, la sfritul anilor 60, a
lansat pe pia primul calculator (i naume PDP 11) construit n jurul unei magistrale unice,
magistrala UniBus.
Conceptual, o magistral este un mediu comun de comunicare ntre componentele
sistemului de calcul. Din punct de vedere fizic, o magistral este un set de linii de semnal (date,
adrese, comenzi, control, ntreruperi, tact) care faciliteaz transferul de date i sincronizarea
componentelor conectate la magistrala respectiv.
Caracterul de sistem deschis al calculatoarelor moderne este susinut n mare msur de
standardizarea magistralelor. Astfel, avem astzi dou clase importante de magistrale: (1)
magistrale de sistem dezvoltate pentru conectarea UC (unitii centrale) la celelalte
componente ale calculatorului; exemple: MultiBus, ISA, EISA, PCI i USB; (2) magistrale
specializate dezvoltate pentru a optimiza transferul de date ctre/dinspre un anumit periferic;
exemple: VESA, SCSI, GPIB. In ultima perioad se observ o extindere a standardelor de
magistral pentru a rspunde cerinelor de comunicare ale noilor generaii de procesoare.
innd cont de componentele sistemelor de calcul introduse n paragrafele anterioare,
putem spune c o magistral conecteaz dispozitivele de intrare - ieire la procesor i la memorii.
Mai mult, o magistral reprezint calea de comunicare partajat care folosete un set de
conductori pentru a inter-conecta subsistemele respective. Magistrala reprezint interconectarea
electric ntre periferice, procesoare i memorii i, deci, definete protocolul de comunicare la
nivelul cel mai de jos (lowest level).
Un ansamblu tipic de periferice conectate la procesor i memorii se poate reprezenta ca n
figura urmtoare.
Intreruperi
Procesor

Cache

Magistral sistem

I/O Controller I/O Controller I/O Controller


Memorie
principal

Disk Disk Staie grafic Network

21
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Folosirea magistralelor de comunicare are n principal avantaje legate de flexibilitatea


conectrii componentelor. Astfel, pentru o schem deja definit se pot aduga cu uurin noi
tipuri de periferice i, mai mult, perifericele pot fi mutate de la un SC la altul, dac acestea
folosesc acelai tip de magistral.
In cazul n care magistrala este suprasolicitat, apare dezavantajul major al comunicrii
gtuite" (engl., bottlenecked). Aceast situaie poate fi evitat prin fixarea (i respectarea) unui
numr maxim de intrri (periferice conectate) pe magistral.
Performanele unei magistrale se apreciaz din dou puncte de vedere fundamentale:
viteza maxim de transfer a datelor pe acea magistral i numrul maxim de periferice pe care le
poate conecta. Scopul concret pentru care este construit fiecare model de magistral va decide
care dintre aceste criterii este prioritar i, n consecin, va valorifica la maximum acea
caracteristic, n detrimentul celeilalte. Proiectarea unui model este dificil, innd cont i de
faptul c viteza de transfer este limitat la rndul ei de factori fizici cum ar fi: numrul de
periferice conectate i lungimea magistralei.
Conform tipului de informaii care circul pe magistral avem: magistral de date,
magistral de adrese i magistral de control (comenzi). Generic, ansamblul tuturor acestor linii
este recunoscut ca magistral sistem. Numrul liniilor de un anumit tip este proporional cu
viteza transferului pe liniile respective.
Pe liniile de date se transfer informaii de la o entitate surs la o entitate destinaie.
Aceste informaii pot fi: date, comenzi sau adrese. Rolul liniilor de control este: s semnaleze
cererile, s precizeze tipul datelor de pe liniile de date, s implementeze protocolul de magistral.
Deoarece magistrala este partajat, trebuie stabilit un protocol care s decid univoc la fiecare
moment cine folosete magistrala la momentul urmtor. Operaia de baz cu care lucreaz un
protocol de magistral este tranzacia pe magistral, care const din trimiterea adresei, pe de o
parte i transmiterea i primirea datelor, pe de alt parte. O astfel de tranzacie este definit de
direcia de lucru cu memoria, rezultnd tranzacii de intrare i tranzacii de ieire.
Exemplu de utilizare a unei magistrale sistem. Dac un disc vrea s scrie date n
memorie de pe un anumit sector al su atunci liniile de date se vor folosi pentru a preciza adresa
din memorie la care se va face scrierea datelor i, ulterior, tot pe liniile de date se vor transfera i
datele propriu-zise de pe disc. In acest caz, liniile de control vor indica ce tip de date (adres sau
date propriu-zise) sunt pe liniile de date la fiecare moment al tranzaciei.
Observaie. Unele magistrale au dou seturi de linii de date pentru a separa datele de
adrese. In continuare este descris un model de transfer pe o magistral cu linii de date, de adres
i de control.
date propriu-zise

procesor adrese

control (comenzi)

interfa interfa interfa

monitor imprimant disc magnetic

Liniile de magistral I/O care pornesc de la procesor sunt legate la unitile de interfa
ale tuturor perifericelor. Pentru a comunica cu un anumit periferic, procesorul pune adresa
perifericului pe liniile de adres. Fiecare interfa conectat la magistrala I/O conine un

22
ARHITECTURA CALCULATOARELOR Anca Vasilescu

decodificator de adrese care gestioneaz liniile de adres. Cnd o interfa detecteaz propria sa
adres, deschide accesul ntre liniile de magistral i perifericul pe care l gestioneaz. Pentru
toate interfeele crora nu le corespunde adresa de pe magistral, perifericele respective sunt
inaccesibile.
Cnd procesorul pune adresa perifericului cutat pe liniile de adres, n acelai timp
furnizeaz pe liniile de control i codul unei funcii (function code). Interfaa selectat rspunde
acestui cod i determin execuia funciei. Codul acesta este o comand de intrare/ieire i
const ntr-o instruciune de executat de ctre interfa i perifericul asociat ei. Interpretarea
comenzii depinde de perifericul creia i este adresat. O interfa de periferic poate primi
urmtoarele patru tipuri de comenzi:
comenzi de control care activeaz perifericul sau l informeaz asupra urmtoarei
operaii;
comenzi de stare cu rol n testarea strii interfeei i a perifericului. Erorile care apar la
transferul datelor sunt semnalate prin valorile anumitor bii din registrul de stare.
Procesorul citete periodic acest registru, detectnd astfel situaia n care a aprut o eroare;
comenzi de ieire care constau n comenzi de transfer al datelor nspre exterior, adic
determin interfaa s rspund prin dirijare de date de pe magistral ntr-unul din regitrii
si de tranzit (buffer register);
comenzi de intrare care sunt opuse comenzilor de ieire. n acest caz, interfaa primete
un set de date de la periferic, pe care le depune ntrunul din regitrii si de tranzit.
Procesorul verific printr-o comand de stare dac datele sunt accesibile i apoi transmite o
comand de intrare. Interfaa depune datele pe liniile de date ale magistralei I/O de unde
sunt preluate de procesor.

1.2.4.1. Clasificarea magistralelor


Din punctul de vedere al componentelor conectate, avem:
magistrale procesor - memorie;
magistrale de intrare - ieire;
magistrale de extensie (backplane).
Magistralele procesor - memorie sunt, n general, scurte, dar de vitez mare i adaptate
sistemului de memorie, astfel nct s maximizeze lungimea de band procesor - memorie i,
implicit, cantitatea de informaie transmis simultan.
Magistralele de intrare - ieire (I/O Bus) pot fi suficient de lungi, pot conecta mai multe
tipuri de periferice i accept o varietate mare de lungimi de band pentru perifericele conectate.
Magistralele de intrare-ieire nu interacioneaz direct cu memoria ci se folosete o magistral
procesor - memorie sau una de extensie pentru conexiunea cu memoria.
Magistralele de extensie (backplane) sunt construite pentru ca procesoarele, memoriile
i perifericele s poat coexista pe aceeai magistral. Astfel, o magistral de extensie va
rspunde att cererilor de comunicare procesor - memorie, ct i cererilor de comunicare dintre
periferice i memorie. Se numesc de extensie tocmai pentru c permit adugarea n sistem a
diferitelor plci interschimbabile, prin inserarea acestor plci n conectorii de extensie ai
magistralei (sloturi).
Comparativ, putem spune c magistralele procesor - memorie au design specific i sunt,
n general, monopol al firmei productoare, n timp ce celelalte dou tipuri (de intrare - ieire i
de extensie) pot fi refolosite n diferite sisteme i sunt construite pe baza unor standarde de
magistral.
In figurile urmtoare reprezentm trei variante de interconectare a componenetelor SC
prin magistrale de comunicare.

23
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Magistrala de extensie
Procesor Memorie

Magistrala procesor - memorie


Procesor Memorie

Adaptor de Adaptor de Adaptor de


magistrala magistrala magistrala

I/O I/O I/O


Bus Bus Bus

Magistral procesor - memorie


Procesor Memorie

Adaptor de
magistral
I/O Bus
Adaptor de
magistral
Magistral
de extensie

I/O Bus
Adaptor de
magistral

Avantajele remarcabile ale variantei a treia, cea mai complex, ar fi:


1. magistrala procesor - memorie poate fi mult mai rapid dect magistralele de extensie sau
de intrare - ieire;
2. sistemul de intrare - ieire poate fi completat cu multe controller-e sau chiar cu
magistrale I/O pe magistrala de extensie ceea ce nu afecteaz viteza magistralei
procesor - memorie.
Din punctul de vedere al tipului de comunicare, avem:
magistrale sincrone;
magistrale asincrone.
O magistral sincron are pe liniile de control un ceas (generator de tact) care
controleaz un protocol bine definit pentru comunicare. De obicei, magistralele procesor -
memorie sunt magistrale sincrone, deoarece conecteaz puine componente i trebuie s lucreze
la vitez mare de transfer a datelor.
Observaie. Funcionarea unei magistrale sincrone poate fi simulat cu un automat finit
determinist.
Prezena ceasului impune restricii n construirea i funcionarea unei magistrale sincrone.
De exemplu, toate componentele conectate trebuie s funcioneze la aceeai frecven de tact. De
asemenea, datorit problemelor de sincronizare, o magistral sincron nu poate fi i lung i
rapid.
O magistral asincron nu este controlat de ceas, deci poate grupa o mai mare varietate
de periferice i poate fi orict de lung. In acest caz, pentru coordonarea transmiterii de date se

24
ARHITECTURA CALCULATOARELOR Anca Vasilescu

folosete un protocol de tip hand shaking (vezi i Moris Manno, pag. 393). Acesta const dintr-o
succesiune de pai n care sursa i destinatarul transferului de date trec la pasul urmtor numai de
comun acord. Acest protocol este practic implementat cu suplimentarea liniilor de control pe
magistral.
Observaie. Funcionarea unei magistrale asincrone poate fi simulat cu o pereche de
automate finit deterministe: o main trece n starea urmtoare numai dac cealalt a intrat ntr-o
anumit stare - test.

1.2.4.2. Standarde de magistral


Magistralele de intrare - ieire servesc ca o modalitate de a mbunti performaele SC
prin conectarea a noi periferice. Pentru a facilita aceast operaie, industria sistemelor de calcul a
dezvoltat o serie de standarde de magistral.
Un standard reprezint o specificare pentru un productor de component. Astfel, un
standard de magistral impune productorilor structura de baz a magistralei, astfel nct s
poat fi cunoscut i folosit priori de productorii perifericelor, cu compatibilitate maxim cu
maina gazd.
Un standard uzual de magistral este, de exemplu, SCSI Small Computer System
Interface. De obicei, o magistral de acest tip este o interfa fizic ctre o magistral de extensie
sau ctre o magistral procesor - memorie. Un controller SCSI coordoneaz transferurile de la
periferic, pe magistrala de intare - ieire, spre memorie, prin intermediul unei magistrale
procesor - memorie. Deci, magistralele de intrare - ieire sunt construite conform acestui
standard.
Pentru magistralele de extensie este recunoscut standardul ISA Industrial Standard
Architecture. Iniial au fost magistrale pe 8 bii i, ulterior, au fost extinse la 16 bii, ca standard
pentru IBM PC/AT. Limitat la o frecven de ceas de 8 MHz, aceast magistral a fost deja
insuficient pentru procesoarele 80386. Totui, o magistral ISA (sloturi de 8 bii sau de 16 bii)
rmne o opiune pentru conectarea imprimantelor prin porturi seriale, pentru controller-e de
mouse, dar sunt prea lente pentru discurile moderne sau pentru adaptoare video.
Standardul PCI Peripheral Component Interconnect a fost iniiat de Intel i dezvoltat
ulterior de alt concern industrial. Aceste magistrale sunt cele de mare vitez. PCI a fost prima
magistral care a rspuns cererilor de magistral pe 32 bii reclamate de procesoarele Pentium i
opera la frecvene de tact de 33 MHz sau 66 MHz, permind rate de transfer de 132 MB / sec
sau 264 MB / sec. PCI suport controlul total al magistralei (bus mastering). De obicei,
magistralele de extensie sunt magistrale PCI. Arhitectura magistralei PCI poate oferi facilitatea
Plug-and-Play (autoconfigurare). Aceast tehnologie const n adaptarea automat a
configuraiei calculatorului (fr intervenia utilizatorului) la caracteristicile componentei care
tocmai se instaleaz. Astfel, instalarea oricrui dispozitiv devine o operaie simpl i sigur. In
plus, autoconfigurarea face inutil setarea manual a configuraiei calculatorului. Sistemele de
operare Windows moderne recunosc facilitatea Plug-and-Play.
Calculatoarele personale dispun de patru tipuri de arhitecturi de magistral i anume:
ISA, EISA (Extended ISA), Micro Channel i PCI. Magistrala PCI este adecvat pentru ataarea
la calculator a perifericelor de vitez mare, dar este prea costisitor s existe cte o interfa PCI
pentru fiecare periferic de vitez sczut, de exemplu, tastatura, mouse-ul, camera foto/video
digital, scanner, telefon digital .a.m.d.. De aceea, pentru conectarea la calculator a
dispozitivelor periferice de vitez redus s-a impus un standard de magistral unanim acceptat,
anume USB (engl. Universal Serial Bus).

Rezumat.
Scopul acestui paragraf a fost prezentarea caracteristicilor eseniale ale principalelor
periferice conectate la un calculator modern, adic periferice standard (tastatur, mouse,
monitor) i periferice larg utilizate (discuri, imprimant, modem, plci de conexiune). Tratarea

25
ARHITECTURA CALCULATOARELOR Anca Vasilescu

acestor periferice s-a fcut din mai multe puncte de vedere: (1) identificarea diferitelor tipuri de
periferice (clasificri), (2) caracterizarea elementelor specifice fiecrui tip de periferic, (3)
caracterizarea perifericelor din perspectiva conectrii lor cu componentele cu care comunic
direct.
Cuvinte cheie.
dispozitiv periferic, sistemul de intrare/ieire
periferic de intrare, periferic de ieire, periferic de intrare/ieire
periferic de schimb, periferic de memorare
unitate de interfa, port
magistral, standard de magistral
Verificare.
1. Care sunt perifericele conectate la sistemul de calcul pe care l folosii n mod frecvent?
2. Explicai modul n care procesorul central stabilete comunicarea direct cu un anumit
periferic solicitat la un moment dat.

NOTIE

26
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.3. Unitatea de memorie


Unitatea de memorie este o colecie de componente destinate memorrii datelor i de
circuite asociate necesare transferului de informaii nspre i dinspre memorie.
n general, componentele de memorie au rolul de a stoca informaia utilizat de unitatea
central i de dispozitivele periferice.

1.3.1 Structura fizic a memoriei


Referitor la structura fizic a memoriei, avem c memoria este format dintr-un mediu
de memorare i sisteme de circuite electromagnetice pentru controlul gestiunii memoriei. La
rndul su, din 1919 subsistemul de memorare este alctuit dintr-o succesiune de bistabili
(circuite basculante bistabile) ce permit sau nu trecerea curentului, fiecare stabilind astfel
memorarea uneia dintre valorile 0 sau 1.
Observaie. Reprezentarea a dou stri posibile ale unui sistem prin 0 i 1 a determinat
folosirea n sistemele de calcul n special a bazei de numeraie 2 i a puterilor lui 2.
In general, cantitatea de informaie care se ctig prin precizarea strii unui sistem care
are dou stri posibile se numete bit de informaie. In particular pentru memorii, vom nelege
prin bit informaia referitoare la starea unui bistabil: 0 sau 1. Cu alte cuvinte, un bistabil
ndeplinete funcia de memorare a unui bit de informaie.
In memorie, un grup de bistabili se numete locaie de memorie. Pentru SC actuale, o
locaie are opt bii i se numete octet (O), sau byte (B), sau caracter. Aceast echivalen de
denumire provine de la faptul c un caracter se reprezint n memorie pe un octet.
Octeii sunt numerotai de la 0 la capacitatea maxim a memoriei. Astfel, capacitatea
memoriei este dat de cantitatea de informaie pe care aceasta o poate stoca, adic numrul de
octei dai eventual, multiplicativ: 1 KB (kilobyte) = 210B = 1024 octei, 1 MB (megabyte) =
210 KB = 220 octei, 1GB (gigabyte) = 210 MB = 230 octei (230 = (210)3 (103)3 = 109),
1TB (terrabyte) = 210 GB = 240 octei. Deoarece reprezentarea intern a datelor n memoria
sistemelor de calcul este binar i nu zecimal, productorii de calculatoare i-au nsuit aceste
estimri binare ale prefixelor din Sistemul Internaional de Uniti [Wikipedia, Since computer
memory comes in multiples of 2 rather than 10, the industry used binary estimates of the SI-
prefixed quantities. http://en.wikipedia.org/wiki/Byte].
Numrul octetului reprezint adresa de memorie a grupului respectiv. Aceast adres
joac un rol esenial n regsirea informaiei memorate i transmiterea ei ctre alte subsisteme.
De exemplu, dac unitatea central cere transmiterea unei informaii memorate atunci ea trebuie
s furnizeze att adresa octetului de unde se face transferul, ct i numrul de octei care se
transfer.
In terminologia modern, numim cuvnt orice succesiune de 2, 4 sau 8 octei. Astfel,
calculatoarele din primele generaii, pn la 80286 inclusiv, au cuvntul format din 2 octei,
ncepnd cu seria 80386, cuvntul este de 4 octei, iar la microcalculatoarele moderne avem
cuvntul de 32 bii = 4 octei sau 64 bii = 8 octei. Supercalculatoarele au cuvntul format din 8
octei. Lungimea cuvntului este o caracteristic a procesorului.
Biii unui cuvnt trebuiesc ordonai ntr-un mod unic. Pentru aceasta se folosete ordinea
puterilor lui 2. Toate tipurile de SC numeroteaz biii ncepnd cu 0. Dintre biii unui octet se
remarc:
bitul cel mai semnificativ, MSB, cel care corespunde puterii celei mai mari a lui 2;
bitul cel mai puin semnificativ, LSB, cel care corespunde puterii celei mai mici a lui 2.
In funcie de modelul de procesor, biii unui octet sunt numerotai cresctor de la stnga
la dreapta (format big endian, specific procesoarelor Motorola) sau de la dreapta la stnga
(format little endian, specific procesoarelor Intel).

27
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.3.2 Tehnologii de realizare a memoriilor. Memorii semiconductoare


Cronologic, principalele tehnologii de realizare a componentelor de memorare sunt: (1)
tambur magnetic, (2) inele de ferit, (3) discuri magnetice, (4) memorii semiconductoare, (5)
procedee optice.
Memoriile semiconductoare sunt circuite integrate bazate pe metale semiconductoare, de
obicei Siliciu. Fa de Germaniu, Siliciul este preferat deoarece i pstreaz conductibilitatea
chiar i la temperaturi nalte.
n sistemele de calcul binare, circuitele de memorie stocheaz informaia binar n celule
elementare de memorie cu capacitatea de 1 bit. Celulele de memorie sunt grupate n locaii de
memorie, care, n funcie de tipul de memorie, poate fi de 1, 2, 4 sau 8 celule de bit. Impactul
comercial pe care l-au avut procesoarele pe 8 bii n anii 80 a impus dimensiunea uzual de 8
bii pentru o locaie de memorie (un octet sau un byte). Fiecrei astfel de locaii i este asociat un
numr unic recunoscut ca adresa locaiei respective. Combinaia binar citit / nscris ntr-o
locaie de memorie reprezint coninutul locaiei respective i este un cuvnt-memorie.
Numrul total de locaii dintr-o component de memorare definete capacitatea circuitului de
memorie respectiv. Intervalul (domeniul) adreselor definete spaiul de adresare al circuitului
de memorie.
O memorie semiconductoare este caracterizat de urmtorii parametri:
geometria (sau modul de organizare a memoriei) se refer la: modul de dispunere a
celulelor bit, lungimea unui cuvnt-memorie, modul de adresare a cuvintelor;
capacitatea exprimat n numrul de cuvinte memorie; din punct de vedere practic,
capacitatea unei memorii este dat de cantitatea maxim de informaie care poate fi stocat
la un moment dat pe memoria respectiv, msurat n bytes;
timpul de acces reprezint diferena dintre momentul n care memoria primete (pe
liniile de intrare n circuit) adresa locaiei solicitate i momentul n care memoria
furnizeaz (pe liniile de ieire din circuit) datele coninute la adresa respectiv (t acces =
t DateOut t AdrIn); se msoar n ns sau s;
ciclul memoriei reprezint timpul necesar pentru citirea/scrierea coninutului unei
locaii; cu alte cuvinte, ciclul memoriei este intervalul de timp dintre dou aplicri
succesive de adrese pe liniile de intrare n circuitul de memorie; se msoar n ns sau s;
puterea consumat se msoar n W / bit;
volatilitatea o memorie este volatil dac i pierde coninutul n timp (memorii RAM
dinamice, DRAM) sau la decuplarea de la sursa de alimentare electric (memorii RAM
statice, SRAM); memoriile de tip ROM sunt nevolatile;
tehnologia de realizare din acest punct de vedere avem:
memorii bipolare: foarte rapide, dar cu densitate mic de integrare; principalele
tehnologii bipolare sunt: TTL (Transistor-Transistor Logic) i ECL (Emitter-
Coupled Logic);
memorii MOS (Metal-Oxide Semiconductor): cu densitate mare de integrare,
putere consumat mic, dar cu timp mai mare de acces dect memoriile bipolare;
memoriile de tip flash (USB flash drive) sunt realizate cu tehnologii de tip MOS.
Observaie. Din definiiile de mai sus se observ c timpul de acces la memorie i ciclul
memoriei caracterizeaz implicit i performanele operaionale ale unei memorii (concret, viteza
de execuie a operaiilor pe circuitul de memorie respectiv).
Principalele operaii efectuate de circuitele de memorii semiconductoare i modelele
corespunztoare de memorii sunt:
citire memorii ROM (Read Only Memory);
citire i scriere memorii RAM (Random Access Memory); n particular, avem:
memorii RAM statice menin informaia ct timp este meninut tensiunea de
alimentare; uzual, celula de bit a unei memorii RAM statice este un bistabil;

28
ARHITECTURA CALCULATOARELOR Anca Vasilescu

memorii RAM dinamice informaia se pierde n timp, chiar dac tensiunea de


alimentare nu se ntrerupe; uzual, celula de bit a unei memorii RAM dinamice
este un condensator (nu un bistabil).
programare memorii PROM (Programmable Read Only Memory);
regenerare operaie necesar, de exemplu n cazul memoriilor RAM dinamice;
regenerarea este o citire incomplet (i.e. datele citite nu se utilizeaz n exteriorul
circuitului ci, periodic, coninutul celulei de bit este selectat, citit i rescris intern n
circuitul de memorie); uzual, rata de regenerare este de ~2ms i nu depinde de capacitate.
Memoriile RAM sunt cu acces direct, deci informaiile pot fi accesate pentru transfer din
orice zon, aleas aleator. De aceea, procesul de localizare a unei date n RAM este acelai
pentru toate locaiile i cere un timp mediu egal, indiferent de poziia fizic n memorie a locaiei
respective. De aici provine numele de acces aleator. Astzi, i memoria ROM este cu acces
aleator la informaie, astfel c acronimul RAM caracterizeaz mai corect memoriile de tip
Read/Write.
O structur de memorie RAM de tip mxn este un tablou de celule binare organizate n m
cuvinte a cte n bii fiecare. Pentru m=2k avem un model standard de bloc de memorie RAM
prezentat n figura urmtoare:
n linii de date de intrare

k linii de adres
Unitate de memorie
Read k
cu 2 cuvinte i
Write n bii pe cuvnt

n linii de date de ieire

Comunicarea cu memoria RAM se face prin linii de date de intrare-ieire, linii de adres
i linii de comand (control) care precizeaz direcia de transfer a datelor (operaia Read sau
Write).
Cele k linii de adres furnizeaz un numr binar pe k bii care precizeaz care cuvnt s
fie ales din cei 2k existeni n memorie. Cele dou intrri de control (Read i Write) dau direcia
de transfer a datelor solicitate.
In sistemul de calcul, o memorie de tip ROM este uzual folosit pentru memorarea
programelor fixe (care nu se modific n timpul funcionrii SC) i a tabelelor de constante care
nu-i schimb valoarea n sistem.
Intr-o unitate de control, o memorie ROM poate fi folosit pentru conservarea
informaiilor codificate care reprezint secvene de variabile interne de control necesare pentru
activarea a diferite operaii n sistem. O unitate de control care folosete ROM pentru memorarea
informaiilor binare de control este numit unitate de control cu microprogram
(microprogrammed control unit).
Memoria ROM nu are nevoie de linii de control de tip Read deoarece n fiecare moment
cele n linii de ieire furnizeaz automat cei n bii ai cuvntului selectat prin valoarea adresei de
intrare. Mai mult, deoarece valorile biilor n ROM au valori fixe, acest tip de memorie nu are
nevoie de circuite proprii de stocare a datelor, aa cum ntlnim la RAM.
O structur de memorie ROM de tip mxn este un tablou de celule binare organizate n m
cuvinte a cte n bii fiecare. Pentru m=2k avem o memorie ROM de tipul:
k linii de intrare de adres
Unitate de memorie
k
cu 2 cuvinte i
n bii pe cuvnt

n linii de date de ieire

29
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Tehnologia circuitelor integrate s-a impus cu succes i n construcia memoriilor, astfel


nct spunem despre un ansamblu de bistabili dispui ntr-o ordine bine precizat c formeaz un
cip de memorie. Cele mai rspndite modele de cipuri sunt de tip SIMM (engl. Single Inline
Memory Module) sau DIMM (engl. Dual Inline Memory Module). O plac de memorie SIMM
sau DIMM este un grup de cipuri de memorie cablate pe o plac de dimensiuni reduse i vndute
ca o singur unitate (memorie). Deosebirea dintre SIMM i DIMM const n felul n care este
plasat seria de conectori (pini de contact) prin care memoria respectiv se conecteaz pe placa
de baz i anume dispunere pe o singur parte sau pe ambele pri ale plcii de memorie. Fiecare
conector are o funcie bine delimitat n transferul de date memorate, n adresare sau n controlul
memoriei respective. O configuraie tipic de SIMM este cu 8 cipuri de 32Mb (megabii) fiecare,
ceea ce nseamn 32MB (megabytes) de memorie.

1.3.3 Structura ierarhic de organizare a memoriei


In timpul execuiei lor, programele acceseaz n orice moment o zon relativ
mic a spaiului de adrese. Aceast observaie a condus la delimitarea a dou aspecte
fundamentale n utilizarea memoriei, care sunt recunoscute ca principiul localizrii.
Astfel, avem principiul localizrii temporale: dac este referit o entitate atunci este foarte
probabil ca aceasta s fie referit din nou, n curnd; i principiul localizrii spaiale: dac
este referit o entitate atunci este foarte probabil ca vecinii" ei s fie referii n curnd.
Aplicarea principiului localizrii a condus la organizarea ierarhic a memoriei. O
ierarhie de memorie const n nivele de memorii cu viteze de acces diferite i de dimensiuni
diferite.
Din punctul de vedere al unui utilizator, memoria se mparte n memorie extern i
memorie intern. Memoria extern este format din toate componentele destinate stocrii
informaiei care sunt auxiliare sistemului de calcul. Cele mai folosite memorii externe sunt
mediile de memorare bazate pe procedee optice (CD, DVD) i magnetice (hard-disc, dischet).
Toate celelalte componente de memorie ale sistemului de calcul formeaz memoria intern.
Datele din memoria extern ajung s fie prelucrate de UCP numai dup ce au fost transferate n
memoria intern.
Din punctul de vedere al unui programator, informaia stocat n memorie trebuie
corelat cu programul curent de executat. Identificarea nivelelor de memorie trebuie s in cont
att de tipul informaiei stocate (date propriu-zise sau programe), ct i de legturile dintre
informaia stocat i programul curent n execuie la nivelul UCP. In consecin, pentru un
programator, memoria este organizat ca memorie secundar i memorie principal. Memoria
secundar (extern sau auxiliar) este de capacitate mare, practic nelimitat, conine informaia
pstrat pentru o utilizare ulterioar i este format concret din periferice specializate. Memoria
principal (intern sau operativ) este de capacitate fix i conine informaia n curs de
prelucrare, adic programele n curs de execuie i datele programului curent. Memoria
principal este conectat direct la magistrala sistem pentru a permite o vitez mare de transfer al
informaiei.
innd cont de considerentele anterioare, memoria se poate prezenta ierarhic, pe nivele
succesive de descriere, aa cum rezult din figura urmtoare.
Sgeile de pe schema de mai sus arat c toate componentele de memorie comunic ntre
ele n ambele sensuri. In plus, memoria cache comunic direct cu UCP.
Cnd o dat este solicitat de UCP, ea este cutat succesiv n zonele de memorie
corespunztoare nivelelor de mai sus: memorie cache, memorie operativ, memorie secundar,
memorie de arhivare. Pentru regsirea rapid a datelor cutate, aceste memorii sunt construite
astfel nct viteza de acces cea mai mare este la memoria cache i scade pentru celelalte tipuri,
proporional cu distana fa de UCP. In acelai timp, crete capacitatea de memorare, astfel c
memoriile de arhivare ajung la capaciti suficiente pentru stocarea de baze de date mari i foarte
mari.

30
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Memoria de arhivare
Memorie extern
Memoria secundar

Memoria operativ
Memorie intern
Memoria cache

UCP

In continuare ne vom referi pe rnd la tipurile de memorie din ierarhia de mai sus.
Memoria de arhivare sau memoria auxiliar este dat de dispozitivele de memorare
care se conecteaz la sistemul de calcul (resurse informaionale). In memoria auxiliar se rein
programele ntre rulri. Acestea sunt gestionate de utilizator pentru folosirea eficient a datelor
depuse pe ele, de obicei fiiere i baze de date personale. Aceste suporturi de memorare sunt
nevolatile, de obicei discuri magnetice (din 1965).
Ca entitate fizic a SC, memoria se mai numete memorie real. Ca entitate de utilizare,
vom numi memoria virtual. Diferenele dintre acestea depind de modul de organizare fizic i
de complexitatea memoriei n discuie.
Memoria virtual este ntotdeauna considerat ca o succesiune de octei, n timp ce
fizic, poziia a doi octei vecini n memoria virtual poate s difere. Legtura dintre un octet
considerat n memoria virtual i corespondentul su fizic este fcut de mecanismul de adresare.
Memoria secundar apare la sistemele care cunosc mecanismul de memorie virtual.
Aceasta reprezint o extensie a memoriei operative. Incepnd cu 1985, dup ce a aprut sistemul
286 i modul de lucru protejat, calculatoarele IBM-PC au fost dotate cu memorie extins care
permite o adresare natural a spaiului de peste un megaoctet de memorie.
Memoria operativ conine datele i programele pentru toate procesele existente n
sistem. O dat cu ncheierea unui proces, automat se elibereaz zona din memoria operativ
alocat procesului respectiv.
Memoria cache (n englez, francez ascunztoare, depozit) este memorie intern ultra-
rapid, care comunic direct cu UCP. Este de capacitate mic, dar cu vitez de acces foarte mare.
In aceast zon sunt reinute n fiecare moment datele cele mai recent utilizate de UCP. Data
solicitat de UCP n prelucrarea curent este adus din zona de memorie n care a fost gsit i
depus n memoria cache mpreun cu un numr de locaii vecine datei solicitate, astfel nct,
mpreun, s umple memoria cache. Aceast metod este recunoscut ca principiul vecintii
i este justificat astfel: fa de data curent solicitat, este foarte probabil ca urmtoarea dat
solicitat de UCP s fie depus n memorie ntr-o locaie apropiat de data curent. O dat ce
data curent a fost adus n cache mpreun cu datele din locaii alturate, rezult c urmtoarea
regsire se va face rapid, direct din zona cache. Acest principiu este strns legat de principiul
localizrii.
In general, vom numi memorie principal acea zon care comunic direct cu UCP. Ea
va conine datele i programele frecvent utilizate de procesor. Memoria principal (primar) este
volatil, implementat cu memorii de tip DRAM.
31
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Schema urmtoare precizeaz legturile care se stabilesc ntre diferite componente ale
sistemului de calcul implicate n mecanismul de transfer al datelor ntre UCP i memorii.

Band magnetic
Memorie
Procesor I/O principal
Disc magnetic

UCP Memorie
cache
Din reprezentarea anterioar rezult c dac sistemul este recunoscut cu memorie cache
atunci aceasta preia funciile memoriei principale, fiind direct conectat la UCP i realiznd
totodat organizarea transferului de informaii ntre memoria principal i UCP.
Principalul rol al memoriei cache este de a compensa diferena ntre viteza de acces la
memoria principal i viteza de prelucrare a procesorului. De obicei, procesorul este mai rapid
dect memoria i, de aici, activitatea procesorului poate fi ncetinit nedorit.
De asemenea, se remarc prezena procesorului de intrare-ieire cu rolul de a gestiona
transferul datelor ntre memoria auxiliar i memoria principal. Se observ c memoria
auxiliar nu are acces direct la UCP.
Astzi exist trei tehnologii de baz folosite n construcia ierarhii lor de memorii:
1. memoria principal este implementat cu DRAM-uri memorii de vitez medie i
capacitate medie;
2. nivelele mai apropiate de UCP (memoriile cache) folosesc SRAM-uri (Static RAM)
memorii de vitez mare i capacitate mic;
3. nivelele de memorii lente, dar de capacitate mare folosesc discuri magnetice.
Memoriile de tip SRAM sunt ceva mai scumpe per bit dect memoriile de tip DRAM,
sunt mult mai rapide i consum mai puin energie electric.

Tehnologia de memorare Timp de acces standard $ / MB (1997)


SRAM 5 ns 25 ns 100$ 250$
DRAM 60 ns 120 ns 5$ 10$
Disc magnetic 10 ms 20 ms 0,1$ 0,2$

Uzual, nivelele de memorii interne realizate cu structuri de tip RAM sunt numite memorii
RAM. Astfel, spunem c memoria RAM este memoria intern n care se efectueaz prelucrrile,
n RAM se memoreaz cea mai mare parte a programelor, precum i datele care se modific n
timpul funcionrii sistemului de calcul. Volatilitatea structurilor de tip RAM impune executarea
de ctre programator a unei operaii explicite de salvare a programului utilizator n curs de
dezvoltare.
Intre discurile magnetice i memoria principal exist trei diferene eseniale:
discurile sunt nevolatile deoarece se bazeaz pe tehnologii de memorare prin magnetizare
(polarizare);
discurile au acces lent deoarece se bazeaz pe dispozitive mecanice;
discurile sunt mai ieftine pe Mega-Byte deoarece au capacitate de memorare mult mai
mare, la un pre rezonabil; n plus, preul de cost al unei seciuni de disc este mai mic dect
al unui circuit integrat (care st la baza construciei componentelor memoriei principale,
DRAM-uri).

32
ARHITECTURA CALCULATOARELOR Anca Vasilescu

La nivelul anului 1997, 1MB de disc era de 50 de ori mai ieftin dect 1MB de DRAM.
Aceasta confirm faptul c memoriile rapide sunt mai scumpe per bit dect memoriile lente, deci
memoriile rapide sunt de obicei de capacitate mai mic.

1.3.4 Memorii cache


La prima main comercial care avea un nivel intermediar de memorie ntre UCP i
memoria principal, acest nivel s-a numit cache. Astzi, dei acesta este nelesul propriu al
cuvntului cache, termenul este folosit pentru a ne referi i la ORICE tip de memorie gestionat
astfel nct s optimizeze accesul la locaia cutat. Deci, cache denumete o metod de obinere
a unui acces rapid la poriunile de cod i de date cele mai recent utilizate.
Memoria cache este organizat n blocuri de lungime fix, numite linii de cache. O astfel
de linie este o copie a unei zone din memoria din care a fost adus informaia n cache.
Proiectarea unei memorii cache trebuie s rspund la ntrebri de tipul:
care este dimensiunea optim a unei linii de cache?
cum se regsete informaia coninut n cache?
care linie se nlocuiete n cazul n care la un transfer memoria cache este plin?
In funcie de modurile de soluionare a acestor probleme, sunt recunoscute mai multe
arhitecturi de cache, cum ar fi: memorii cache cu mapare direct, memorii cache asociative,
memorii cache set asociative, memorii cache organizate pe sectoare.
In general, tehnicile prin care se implementeaz memoria cache i memoria virtual sunt
transparente pentru programele utilizator. Programele de aplicaie sunt scrise ca i cnd ar lucra
numai cu memoria principal.
Statistic, 90% din timpul rezervat pentru un program este utilizat pentru execuia numai
a 10% din codul surs al programului respectiv

33
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1.4. Proiectarea calculatoarelor moderne


Dup Patterson i Hennessy [5], se pot anuna patru principii de baz ale proiectrii
tehnologiei hardware, pe care le enumerm n continuare.
Principiul 1. Simplitatea favorizeaz uniformitatea [5, pag.97].
Principiul 2. Mai mic nseamn mai rapid [5, pag.99].
Principiul 3. Proiectarea bun necesit compromisuri bune [5, pag.108].
Principiul 4. Cazul frecvent trebuie fcut s aib execuie rapid [5, pag.13 3].

Rezumat.
Totalitatea componentelor destinate stocrii datelor formeaz unitatea de memorie a
sistemului de calcul. Acest paragraf detaliaz aspecte concrete legate de structura i organizarea
memoriei calculatoarelor moderne. Astfel, sunt abordate diferite puncte de vedere: (1) structura
fizic a memoriei, (2) structura ierarhic de organizare, (3) structura intern dependent de
tipologia memoriei.
Cuvinte cheie.
bit, bit de informaie, bistabil
locaie de memorie, octet, cuvnt
principiul localizrii, principiul vecintii, cache
memorie cu acces aleator, memorie read/write
Verificare.
1. Calculai capacitatea total de memorare (n megabytes) a unei dischete cu dou fee i
care este formatat cu urmtoarele constante: 80 piste (cilindri), 18 sectoare, 524 octei pe
bloc (un bloc const ntr-un sector de pe o pist). Capacitatea unui bloc este dat de 512
octei de date propriu-zise i 12 octei auxiliari (necesari marcrii nceputului blocului i
localizrii acestuia).
2. Uzual, o pagin de text are 40 linii cu 75 de caractere pe linie. Cte pagini de astfel de text
se pot memora pe un CD de 600MB?
3. Folosii principiile de organizare a memoriei cache pentru a justifica caracteristicile
acesteia.
4. Care este capacitatea unei memorii cu 12 linii de intrare de adres i 16 linii de ieire
(intrare) pentru date?
5. Incercai s justificai cele patru principii de baz ale proiectrii hardware enunate de
Patterson i Hennessy.

NOTIE

34
ARHITECTURA CALCULATOARELOR Anca Vasilescu

UNITATEA CENTRAL DE PRELUCRARE

CUPRINS

3.1. Structura de baz a UCP -------------------------------- -------------------------------- ------- 36


3.1.1. Registrele generale -------------------------------- -------------------------------- -------------------------------- --36
3.1.2. Unitatea de comand i control-------------------------------- -------------------------------- -------------------- 37
3.1.3. Calea datelor (engl., datapath) -------------------------------- -------------------------------- -------------------- 38
3.2. Organizarea stivei -------------------------------- -------------------------------- --------------- 42
3.3. Funcionarea UCP. Execuia programelor -------------------------------- ------------------- 45
3.3.1. Microoperaie. Instruciune. Program -------------------------------- -------------------------------- ------------ 45
3.3.2. Codurile instruciunilor -------------------------------- -------------------------------- ----------------------------- 45
3.3.3. Moduri de adresare -------------------------------- -------------------------------- -------------------------------- --49
3.3.4. Clasificarea instruciunilor -------------------------------- -------------------------------- ------------------------- 52
3.3.4.1. Instruciuni pentru transferul datelor -------------------------------- -------------------------------- -------52
3.3.4.2. Instruciuni pentru gestiunea datelor -------------------------------- -------------------------------- -------52
3.3.4.3. Instruciuni pentru controlul programului -------------------------------- -------------------------------- -52
3.4. Prelucrarea instruciunilor unui program -------------------------------- -------------------- 57
3.5. Microprocesorul -------------------------------- -------------------------------- ----------------- 58
3.5.1. Caracteristici -------------------------------- -------------------------------- -------------------------------- --------- 58
3.5.2. Setul de instruciuni ale microprocesorului -------------------------------- -------------------------------- -----59
3.5.3. Modelarea funcionrii unui procesor -------------------------------- -------------------------------- ------------ 60
3.5.3.1. Maina cu trei adrese -------------------------------- -------------------------------- ------------------------- 60
3.5.3.2. Maina cu o adres -------------------------------- -------------------------------- ---------------------------- 62
3.5.4. Structura intern de baz a unui microprocesor I 80x86 -------------------------------- ---------------------- 65
3.6. Multiprocesare -------------------------------- -------------------------------- ------------------- 68

35
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Componenta calculatorului care efectueaz cea mai mare parte a operaiilor de prelucrare
a datelor este numit unitatea central de prelucrare, prescurtat UCP (n englez, CPU,
Central Processing Unit).
Conform primelor dou ecuaii care definesc structura logic a sistemului de calcul (UAL
+ UCC = UctrlP i UctrlP + Registre = UCP) rezult c UCP const din trei pri fundamentale,
reprezentate n figura urmtoare:
Regitre generale
Controlul
funcionrii SC
UAL

In acest sistem unitar, rolul componentelor poate fi identificat astfel: (a) registrele
generale sunt registrele de la nivelul UCP i memoreaz datele intermediare folosite n timpul
executrii instruciunilor; (b) unitatea aritmeticologic, UAL, execut microoperaiile
solicitate; (c) unitatea de comand i control, UCC supervizeaz transferul informaiilor ntre
registre i anun UAL asupra urmtoarei operaii de efectuat.
In acest capitol ne propunem: (1) s descriem modul n care se realizeaz comunicarea
ntre componentele UCP prin intermediul liniilor de magistral, (2) s explicm mecanismul de
lucru cu stiva, (3) s descriem principalele tipuri de formate de instruciune, modurile de acces la
memorie i instruciunile care trebuie s existe n setul minimal al oricrui SC. In finalul
capitolului vom fi n msur s abordm componenta fizic fundamental a unui calculator,
procesorul.

3.1. Structura de baz a UCP


O unitate central de prelucrare minimal const din opt registre generale, o unitate de
comand i control, UCC i o unitate aritmetico-logic, UAL. Intre aceste componente trebuie s
existe linii de comunicare, care formeaz magistrale sau calea datelor (engl., datapath).
In acest paragraf vom lua n discuie aceste componente i mediul de comunicare dintre
ele.

3.1.1. Registrele generale


In sistemul de calcul, instruciunile de executat sunt memorate n locaii succesive i sunt
executate secvenial. Exist o unitate de control care citete o instruciune de la o adres
precizat din memorie, o execut, apoi citete urmtoarea instruciune, o execut, .a.m.d.
Registrele generale au rolul unor locaii rapide de memorie care, fie pstreaz: date,
rezultate intermediare, operanzi, alte informaii necesare programului n execuie, fie efectueaz
operaii elementare (microoperaii).
Numrul i funciile registrelor generale ale unei UCP difer n funcie de unitatea de
prelucrare propriu-zis. Structura minimal a registrelor generale ale unui sistem de calcul este
dat de:
1 DR Data register Reine un operand memorat
2 AR Address register Reine o adres de memorie
3 AC Accumulator Registru de prelucrare
4 IR Instruction register Reine cod de instruciune
5 PC Program counter Reine adresa unei instruciuni
6 TR Temporary register Reine date intermediare
7 INPR Input register Reine un caracter de intrare
8 OUTR Output register Reine un caracter de ieire
36
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Dac registrul DR are 32 bii rezult c n acest registru se vor putea reprezenta 2 32
combinaii binare, ceea ce nseamn c sistemul respectiv lucreaz cu date ale cror valori sunt
mai mici dect 232-1 (date reprezentabile pe 32 bii). Lungimea lui DR este egal cu lungimea
cuvntului sistemului de calcul.
Dac registrul AR are, de asemenea, 32 bii pentru a reprezenta o adres de memorie
atunci rezult c n registrul AR se pot memora 2 32 combinaii binare care reprezint adrese de
memorie distincte. Mai mult, aceasta nseamn c registrul AR poate adresa un spaiu de
memorie de 2 32 cuvinte de memorie.
Registrul acumulator AC este un registru general specializat n operaiile executate la
nivelul UAL. Registrul AC pstreaz unul din operanzi i rezultatul operaiei curente.
Registrul IR reine codul instruciunii nn execuie.
Registrul PC reine adresa urmtoarei instruciuni care trebuie citit din memorie dup ce
instruciunea curent va fi executat.
La fel ca i locaiile de memorie, registrele generale sunt identificate n codul de
instruciune printrun cod de adres registru. Spre deosebire de locaiile din memoria principal
(unde, la un moment dat, se permite accesul la o singur locaie), registrele generale pot fi
accesate smultan.

3.1.2. Unitatea de comand i control


Unitatea de comand i control UCC execut secvenial instruciunile care compun
programul curent al procesorului. Pentru a asigura funcia de comand, UCC are urmtoarele
componente:
1. IR, registru de instruciune (Instruction Register)
P
treaz codul instruciunii n curs de execuie
2. PC, registru numrtor de program (Program Counter)
pstreaz adresa urmtoarei instruciuni de executat a
3. FR, registru de stare (Flag Register)
Registrul de stare pstreaz n fiecare bit (flag) o informaie predefinit despre
contextul curent de lucru al procesorului
4. BCC, Blocul Circuitelor de Comand
genereaz semnalele de comand necesare execuiei instruciunilor conform
tipului de instruciune, fazei curente, informaiilor din FR;
toate microoperaiile i operaiile elementare care concur la execuia instruciunii
curente sunt comandate prin semnale (microcomenzi) generate de BCC;
toate microoperaiile care se execut n acelai timp definesc o stare n execuia
unei instruciuni, numit faz
5. GT, Generatorul de Tact
genereaz semnalul de tact pentru funcionarea sincron a tuturor componentelor
calculatorului;
frecvena generatorului de tact determin viteza de lucru a calculatorului;
cadena schimbrii de stare pentru toate circuitele secveniale sincrone din
structura calculatorului este dat de GT
6. GF, Generatorul de Faze
creeaz succesiunea specific de faze care compun o instruciune; faza urmtoare
depinde de faza curent, de tipul instruciunii i de informaiile de stare
Din enumerarea de mai sus rezult c cronometrarea i sincronizarea pentru toate
componentele sistemului de calcul este asigurat de o unitate (ceas) care genereaz impulsuri de
tact. Dar, un impuls de ceas nu schimb starea unui circuit sincron dect dac aceasta este o

37
ARHITECTURA CALCULATOARELOR Anca Vasilescu

operaie permis conform cu un semnal de control. La rndul lui, semnalul de control este
generat de unitatea de control a sistemului de calcul.
Exist dou tipuri de organizare a controlului: control bazat pe circuite i control
microprogramat. Controlul bazat pe circuite presupune implementarea semnalelor de control
prin pori logice, bistabili, decodoare, .a. Fiecare comand de control se regsete n sistem prin
starea circuitelor pe care le traverseaz. In organizarea microprogramat, informaia de control
este stocat n memorie. Aceast zon de memorie este programat s iniializeze secvena de
microoperaii de executat. Fiecare comand de control nseamn o actualizare a programului
memorat.
Funcia de control care specific o microoperaie este o variabil binar, numit variabil
de control. Una din valorile binare va corespunde executrii microoperaiei asociate, iar cealalt
valoare nu modific starea regitrilor din sistem. Intr-un sistem bazat pe comunicare pe
magistrale, semnalele de control care dau microoperaiile sunt grupuri de bii care selecteaz
intrrile n MUX, decodoare i n componentele UAL.
Unitatea de control iniializeaz executarea secvenial pentru seturi de microoperaii. La
un moment dat, anumite microoperaii au fost deja iniializate, n timp ce altele au rmas
inactive.
In orice moment, valorile curente ale variabilelor de control se reprezint printr-un ir de
bii, numit cuvnt de control. Astfel, cuvintele de control pot fi programate s execute diferite
operaii asupra componentelor sistemului.
O unitate de control ale crei variabile binare sunt stocate n memorie este o unitate de
control microprogramat. Zona de memorie care pstreaz variabilele de control se refer prin
memorie de control. Fiecare cuvnt din memoria de control reprezint o microinstruciune. O
microinstruciune reunete una sau mai multe microoperaii recunoscute n sistem. O secven de
microinstruciuni formeaz un microprogram.
Dac, odat ce unitatea de control este activat, microprogramul nu se mai modific
atunci memoria de control poate fi o memorie de tip ROM. In acest caz, coninutul cuvntului de
la o anumit adres din aceast zon de memorie reprezint o microinstruciune.

3.1.3. Calea datelor (engl., datapath)


Locaiile de memorie sunt necesare pentru a stoca pointeri, rezultate ale diferitelor
numrri, adrese de revenire, rezultate intermediare, produse pariale, .a.m.d. Pentru a scurta
timpul de acces la zonele de memorie care pstreaz aceste date, practic, acestea se memoreaz
n regitrii de prelucrare (processor registers). Cnd n UCP exist un numr mare de regitri,
se recomand ca acetia s fie conectai prin linii de magistral, de tip common bus system.
Organizarea unei magistrale pentru apte regitri UCP (conectai la UAL comun) ar
putea fi cea de pe pagina urmtoare.
Ieirea din fiecare registru este conectat la dou circuite MUX pentru a forma cele dou
magistrale A i B. Liniile de adres ale fiecrui MUX selecteaz un registru sau linia de date
pentru una dintre magistrale. Datele de pe magistralele A i B reprezint intrrile n UAL
comun. Operaia selectat n UAL determin tipul microoperaiei care se va efectua. Rezultatul
microoperaiei este disponibil pentru linia de date de ieire, care este legat la intrrile tuturor
regitrilor. Un decodor selecteaz registrul care va prelua informaia de pe Output i activeaz
intrarea de control Load pentru preluarea datelor n acel registru. Apoi, asigur transferul de date
ntre Output i intrarea n registru destinaie selectat.
Notm: SELA intrarea de selecie pentru MUX A, SELB intrarea de selcie pentru
MUX B, OPR selectorul de operaie pentru UAL i SELD selectorul registrului destinaie
pentru decodor.

38
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Input

R1
R2
R3
R4
R5
R6
66666
R7
66

Load
SELA MUX A MUX B
(7 linii) SELB

3x8 Bus A Bus B


Decodor

Unitatea aritmetico logica


SELD OPR
UAL

Output
In acest exemplu avem 14 intrri de selecie n circuit: 3 pentru SELA, 3 pentru SELB, 3
pentru SELD i 5 pentru OPR. Combinaia valorilor pe aceste intrri formeaz cuvntul de
control (control word). Acesta se reprezint astfel:
3 3 3 5
SELA SELB SEL OPR
D
Cei trei bii de pe intrrile SELA selecteaz registrul surs pentru intrarea A a UAL, iar
SELB selecteaz registrul surs pentru intrarea B a UAL. Cei trei bii ai SELD selecteaz
registrul destinaie folosind decodorul i cele 7 ieiri de validare a ncrcrii, Load. In concluzie,
cuvntul de control aplicat pe intrrile de selecie precizeaz o microoperaie, conform cu
urmtoarele tabele:

Registrul selectat de
Coninutul SELA SELB SELD
pentru
000 Input Input nimic
001 R1 R1 R1
010 R2 R2 R2
011 R3 R3 R3

39
ARHITECTURA CALCULATOARELOR Anca Vasilescu

100 R4 R4 R4
101 R5 R5 R5
110 R6 R6 R6
111 R7 R7 R7

Coninutul Operaia Simbolul


pentru OPR
00000 Transfer A TSFA
00001 Increment A INCA
00010 Add A + B ADD
00101 Substract A SUB
00110 B
Decrement A DECA
01000 AND A i B AND
01010 OR A i B OR
01100 XOR A i B XOR
01110 Complement COMA
10000 Shift A
right A SHRA
11000 Shift left A SHLA

Rezumat.
In acest paragraf sunt enumerate principalele registre care intr n structura unui
calculator elementar. Detalierea unor aspecte legate de structura i rolul n sistem a acestor
registre va face obiectul considerentelor din paragrafele urmtoare.
O partea important a acestui paragraf o constituie exemplul de transfer de date din
regitri pe magistral. Pentru acest exemplu studenii trebuie s poat justifica structura fiecrei
componente folosite (MUX, registru).
Acest paragraf conine, de asemenea, un exemplu de datapath (cale a datelor) pentru
comunicare ntre UAL i regitri. Scopul acestui exemplu este dublu: pe de o parte s
familiarizeze studenii cu un ansamblu complex de componente logice care include i linii de
comunicare (magistrale) i, pe de alt parte, s exemplifice conceptul de cuvnt de control
(structur i utilizare). Acest al doilea obiectiv este important n perspectiva nelegerii codului
de instruciune, respectiv a formatului de descriere a programului de executat la nivelul
procesorului.

Verificare.
1. Pentru exemplul de cale a datelor (engl. datapath) prezentat anterior, rspundei la
urmtoarele cerine:
a) justificai tipul decodorului 3x8;
b) cum se modific structura de date dac UAL reprezint codul operaiilor pe 7 bii?
c) este posibil s conectm la o astfel de magistral 3 regitri; cum se modific
dimensiunile componentelor logice n acest caz?
d) dimensiunea regitrilor este determinat? Depind alte dimensiuni de dimensiunea
regitrilor?
2. Pe modelul datapath anterior, se cere:
a) s se aleag valori concrete pentru coninutul celor apte regitri pe patru bii;
b) s se execute urmtorul program de control:

40
ARHITECTURA CALCULATOARELOR Anca Vasilescu

01010001100010
10001111101100
00111000110000
11100111100001

NOTIE

41
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.2. Organizarea stivei


O structur important care este inclus n unitatea central de prelucrare la majoritatea
SC este cea de stiv sau list de tip LIFO. Aici, prin stiv vom nelege o unitate de memorare
care se manipuleaz astfel nct ultima dat introdus este prima care se prelucreaz.
Intr-un sistem de calcul digital, stiva este n esen o unitate de memorie cu un registru de
adres SP care execut o singur operaie, anume cea de contorizare (numrare), dup ce a fost
ncrcat cu o valoare iniial. Registrul care pstreaz adresa pentru stiv se numete pointer de
stiv (stack pointer, SP). Valoarea acestuia ntotdeauna pointeaz spre entitatea considerat la
momentul curent n vrful stivei. Dimensiunea registrului SP depinde de capacitatea stivei, ceea
ce nseamn, cu alte cuvinte, c dimensiunea registrului SP trebuie s fie suficient pentru a
reprezenta toate adresele din spaiul de adres corespunztor stivei.
Operaiile care se pot efectua asupra unei stive sunt cele de inserare i tergere.
Inserarea se mai numete push, iar tergerea, pop.
Operaiile specifice pe stiva unui SC nu sunt inserarea i tergerea datelor ci aceste
operaii sunt simulate prin incrementarea i decrementarea valorii din regi strul SP.
Stiva SC poate fi depus ntr-o zon contigu de memorie sau poate fi organizat ca o
colecie finit de cuvinte de memorie sau de regitri. Pentru un registru de stiv cu 64 cuvinte de
memorie, reprezentarea schematic este:
Adresa

63

FULL EMPTY

SP C 3
B 2
A 1
0

DR

Registrul SP conine o valoare binar egal cu adresa cuvntului care este la momentul
respectiv n vrful stivei.
In acest exemplu avem trei entiti n stiv: A, B i C. C este n vrful stivei, astfel c n
SP avem valoarea 3.
Pentru a terge vrful stivei, se efectueaz o operaie pop pe stiv prin citirea cuvntului
de memorie de la adresa 3 i decrementarea coninutului lui SP. Astfel, SP memoreaz valoarea
2, adic pointeaz la B i coninutul B este considerat n vrful stivei. Practic, C a fost citit, nu
mai este n vrful stivei, dar nu a fost eliminat din stiv.
Pentru a insera un element n stiv se efectueaz o operaie push prin incrementarea
valorii lui SP i scrierea cuvntului la urmtoarea adres liber.
Pentru o stiv de 64 cuvinte de memorie, SP are 6 bii deoarece
64 = 26. Astfel, SP nu poate memora o valoare mai mare dect 63 = 111111. Cnd 63 este mrit
cu o unitate rezultatul este 0 deoarece
111111 + 1 = 1000000

42
ARHITECTURA CALCULATOARELOR Anca Vasilescu

i SP reine biii cel mai puin semnificativi, adic 000000.


Analog, cnd 000000 este decrementat cu 1, rezultatul este 111111.
Pentru analizarea acestor situaii particulare, se folosesc doi regitri speciali, fiecare de 1
bit, numii FULL i EMTY. Registrul FULL este setat pe 1 cnd stiva este plin, iar EMTY este
setat pe 1 cnd stiva este vid.
Registrul de date DR reine ceea ce se va scrie n stiv la urmtoarea operaie push sau
ceea ce s-a citit din stiv la ultima operaie pop.
Funcionarea stivei const n precizarea operaiilor elementare pentru push i pop.
Iniial, SP este ters, deci are valoare 0, EMTY este setat pe 1 i FULL este setat pe 0.
Astfel, SP pointeaz cuvntul de la adresa 0.
Dac stiva nu este plin atunci este permis o operaie push prin:
(SP) < (SP) + 1
[SP] < (DR)
IF (SP) = 0 THEN FULL < 1
EMTY < 0
Dac stiva nu este goal atunci este permis o operaie pop prin:
(DR) < [SP]
(SP) < (SP) 1
IF (SP) = 0 THEN EMTY < 1
FULL < 0
Observaie. Prin SP ne referim la adresa registrului SP, prin (SP) ne referim la coninutul
registrului SP, iar prin [SP] ne referim la coninutul de la adresa coninut de registrul SP.
Memoria rezervat pentru stiv poate fi o unitate individual sau poate fi implementat
ntr-un RAM ataat UCP. Implementarea unei stive n UCP se face prin asignarea unei zone de
memorie pentru operaiile pe stiv i prin folosirea unui registru de prelucrare care s
ndeplineasc funciile lui SP.
In reprezentarea de pe pagina urmtoare memoria SC este mprit n trei segmente:
segment de program, segment de date i stiva.
Registrul PC, Program Counter, pointeaz la adresa urmtoarei instruciuni din
programul de executat. Registrul de adres AR pointeaz un ir de date. SP pointeaz spre vrful
stivei. Cei trei regitri sunt conectai la o magistral comun de adrese i numai unul poate
depune o adres n memorie.
Registrul PC este folosit pentru a citi o instruciune de executat. AR este folosit n
execuie pentru a citi un operand. SP este folosit pentru a simula inserarea sau tergerea unui
element din stiv.
Adresa
1000
PC
Program
(instruciuni)
2000
Date
AR
(operanzi)
3000

SP
Stiva

...
3997
3998
3999

DR

43
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Cele mai multe SC nu au componente hardware care s verifice situaiile de operare pe


stiv n configuraii improprii, cum ar fi depirile de tip overflow, pentru stiv plin i
underflow, pentru stiv vid. Limitele stivei pot fi verificate prin mecanisme soft, de exemplu
prin folosirea a doi regitri de prelucrare: unul va memora adresa cea mai mic a cuvintelor de
memorie rezervate stivei, iar cellalt adresa cea mai mare. Cu acestea, dup o operaie push, SP
se va compara cu primul registru, iar dup o operaie pop, cu valoarea din al doilea registru.
Observaie. In exemplul stivei pe 64 cuvinte de memorie, o inserare n stiv corespunde
unei operaii de mrire a adresei la care se ncarc coninutul lui DR. In exemplul urmtor, n
care am reprezentat stiva pe o zon de memorie de la adresa 4001 la 3000, o inserare n stiv
corespunde unei micorri a adresei de memorie la care se ncarc coninutul registrului DR. De
acest aspect trebuie inut cont n scrierea instruciunilor care asigur utilizarea stivei, ncepnd
chiar cu valoarea cu care se iniializeaz SP. Aceasta trebuie s fie adresa rezervat zonei de
memorie de la baza stivei.
Avantajul lucrului cu stiva const n faptul c UCP poate referi memoria stivei fr s fie
nevoie s precizeze o anumit adres, deoarece adresa respectiv este ntotdeauna disponibil i
este automat actualizat n registrul de stiv, SP.

Rezumat.
Stiva, ca structur de date, face parte din tematica cursurilor de programare. In ceea ce
privete arhitectura calculatoarelor, intereseaz stiva sistemului de calcul ca zon de memorie
rezervat i organizat pe principiul stivei (LIFO). De asemenea, ca i n cazul paragrafului
precedent, conceptul este esenial pentru nelegerea modului n care procesorul (implicit,
programatorul prin programul pe care l scrie n limbaj de asamblare) lucreaz cu cele trei
segmente de memorie: stiv, date, cod.
In particular, pentru lucru cu segmentul de stiv, trebuie reinut rolul registrului SP n
efectuarea operaiilor pe stiv (ncrcare, descrcare).
Cuvinte cheie.
stiva sistemului de calcul
registrul SP, operaii specifice: ncrcare, descrcare
eroare de depire
Verificare.
Dac stiva de memorie a unui sistem de calcul are 256 de cuvinte, care trebuie s fie
capacitatea minim a registrului SP n acest caz?
Ce se poate spune despre rezultatul unei operaii push pe stiv dac n urma efecturii ei
coninutul registrului SP este nul?

NOTIE

44
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.3. Funcionarea UCP. Execuia programelor

3.3.1. Microoperaie. Instruciune. Program


Organizarea hardware intern a unui SC este bine definit dac se specific:
mulimea de regitri i funciile lor;
secvena de microoperaii de executat pentru informaiile binare depuse n fiecare
registru;
instruciunea care iniializeaz fiecare secven de microoperaii.
Pentru specificarea secvenelor de operaii de transfer de informaii ntre regitri se
folosete un simbolism, numit limbaj de transfer pe regitri (register transfer language).
Un SC digital este capabil s execute diferite microoperaii i, n plus, poate primi
instruciuni pentru precizarea urmtoarei secvene de microoperaii care trebuie executat.
Pentru SC, o instruciune este un cod binar care precizeaz o secven de microoperaii
de executat de ctre calculator.
Un program este un set de instruciuni care precizeaz operaiile, operanzii i legturile
dintre aceste elemente n execuie.
Exist o mare varietate de limbaje de programare pe care utilizatorul le poate folosi
pentru a scrie un program pentru calculator, n timp ce sistemul de calcul poate executa un
program numai dac este reprezentat intern n binar. De aceea, un program scris n orice limbaj
de programare trebuie nti translatat (tradus) n reprezentare binar.
Programele scrise pentru un calculator se pot ncadra ntr-una dintre urmtoarele
categorii:
1. cod binar, dat de o secven de instruciuni i operanzi binari care reproduce exact modul
de reprezentare n memorie a secvenei respective. Un astfel de program se va numi
program n cod main sau program n limbaj main;
2. cod octal sau hexazecimal, dat de o conversie a codului binar n octal sau hexa;
3. cod simbolic, dat de o reprezentare cu simboluri a codurilor instruciunilor. Fiecare
instruciune dat prin simboluri poate fi translatat
ntr-o instruciune n cod binar. Aceast translatare este fcut de un program special,
numit assembler. Deoarece un assembler traduce simboluri, aceste programe simbolice se
numesc programe n limbaj de asamblare;
4. limbaje de programare de nivel nalt. Un program care traduce un astfel de program n
binar se numete compilator.

Rezumat.
Acest paragraf definete conceptele de instruciune i program, n perspectiva
paragrafelor ulterioare i, n plus, pentru nelegerea noiunii de cod ca mod de reprezentare a
unui program. Astfel, n funcie de cunotinele i de preferinele programatorului, acesta poate
opta pentru una dintre variantele de scriere a codului surs al programului su: cod binar, cod
octal, cod simbolic sau cod n limbaj de programare de niv el nalt.

3.3.2. Codurile instruciunilor


Pentru un SC cu control programat, calculatorul citete fiecare instruciune din memorie
i o depune ntr-un registru de control. Unitatea de control interpreteaz acest cod i determin
execuia lui, prin iniializarea unei secvene de microoperaii.
Fiecare calculator posed un set propriu de instruciuni pe care le poate executa.
Capacitatea de a memora i de a executa instruciunile, precum i conceptul de program
memorat sunt proprietile principale ale unui calculator de uz general.

45
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Codul unei instruciuni este dat de un grup de bii care dirijeaz calculatorul pentru a
executa o anumit operaie. De obicei, acesta este delimitat n dou cmpuri, fiecare avnd o
semnificaie bine precizat: zona rezervat codului de operaie i zona de adres.
Cea mai mare parte a codului formeaz zona operaional, numit codul operaiei
(operation code). Acesta definete tipul operaiei, de exemplu: adunare, scdere, nmulire,
deplasare, complementare. Numrul de bii rezervai pentru codul operaiei depinde de numrul
total de instruciuni ale SC analizat.
Observaie. Este bine s precizm aici care este diferena ntre o operaie (computer
operation) i o microoperaie. O operaie este o parte dintr-o instruciune stocat n memorie. Ea
este dat de un cod binar care o identific n sistemul de calcul. Unitatea de control preia
instruciunea din memorie i i interpreteaz biii care reprezint codul operaiei. Apoi, genereaz
o secven de semnale de control pentru a iniializa microoperaiile corespunztoare n regitri
interni ai SC. Pentru fiecare cod de operaie, unitatea de control genereaz o secven de
microoperaii necesare executrii operaiei specificate. De aici, codul operaiei se numete de
multe ori macrooperaie deoarece specific un set de microoperaii.
Revenind, codul operaiei reprezint operaia de executat. Aceast operaie trebuie s
lucreze cu date memorate n regitrii de prelucrare sau direct n memorie. De aceea, codul unei
instruciuni trebuie s precizeze, nu numai operaia, ci i informaii cu privire la operanzi. Aceste
informaii formeaz zona de adres, care conine regitrii sau cuvintele de memorie unde se
gsesc operanzii i registrul sau cuvntul de memorie n care se depune rezultatul. Registrele de
prelucrare se regsesc prin ncrcarea n zona de adres a unui cod binar de k bii care s
identifice n mod unic unul dintre cei 2 k regitri din sistem. Cuvintele de memorie se dau n
codul instruciunii prin adresele lor.
Exist numeroase modaliti de a organiza codul binar al unei instruciuni. Fiecare SC are
propriul format al codului de instruciune. Acesta este conceput de designer-ul calculatorului,
adic de cel care precizeaz arhitectura SC. Lungimea codului de instruciune difer de la un
calculator la altul i nu este neaprat aceeai pentru toate instruciunile.
In continuare dm trei exemple de organizare a formatului instruciunilor, construite mai
mult pe considerente didactice dect cu referire la anumite sisteme de calcul.
Exemplul 1.
Cel mai simplu mod de a organiza un calculator este de a folosi un registru de prelucrare
i un cod de instruciune format din OpCode i o adres. Aceast adres de memorie indic
unitii de control unde gsete operandul pe care trebuie s-l foloseasc. Acest operand va fi
citit din memorie i valoarea rezultat va fi operat cu coninutul registrului de prelucrare.
Acest tip de organizare este prezentat n figura urmtoare:

Memory
4096 x 16
15 12 11 0
OpCode Address
Instructions
Instruction Format (program)

15 0 Operands
Binary Operand (data)

Processor Register
AC

46
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Instruciunile sunt depuse ntr-o zon de memorie distinct fa de cea n care sunt depuse
datele. Aici avem o memorie cu 4096 = 2 12 cuvinte, deci adresele lor se vor reprezenta pe 12 bii.
Dac codul unei instruciuni se reprezint pe 16 bii atunci rezervm 12 bii pentru adresa
unui operand i rmn 4 bii pentru codul operaiei, OpCode. Astfel, acest sistem va recunote un
set de 16 = 2 4 operaii.
Unitatea de control citete cei 16 bii ai codului unei instruciuni din zona de memorie
rezervat programului. Cei 12 bii ai zonei de adres a codului identific n zona de date locaia
din care s se citeasc operandul pe 16 bii necesar. Apoi, unitatea de control iniializeaz
operaia specificat de cei 4 bii ai OpCode. Aceasta se execut pe actualul coninut al registrului
de prelucrare (notat aici cu AC) i pe valoarea operandului citit din memorie.
Observaie. Uneori este util s folosim zona de adres a unei instruciuni nu cu
semnificaia unei adrese ci ca valoare a operandului de citit. Cnd partea a doua a unui cod de
instruciune reprezint un operand, spunem c instruciunea are operand transmis prin valoare.
Cnd zona de adres a unui cod de instruciune conine adresa la care se gsete n memorie
operandul necesar, spunem c operandul este transmis prin adres (direct).
O a treia posibilitate este ca la adresa din zona de adres a codului instruciunii s se
gseasc adresa de memorie a operandului. In acest caz, operandul este transmis prin adres
indirect.

Exemplul 2.
Pentru a face diferena ntre adresele directe i indirecte se poate rezerva n formatul
instruciunii un bit modal (de mod) care va avea o anumit valoare binar dac adresa este
indirect i valoarea complementar dac adresa este direct. Acesta se noteaz de obicei cu I
(indirect address mode bit) i se reprezint ca n figura urmtoare:

15 14 12 11 0
I OpCo Address
de
Exemplul 3.
Dac o operaie nu are nevoie de operand din memorie atunci zona de adres din codul
instruciunii poate fi folosit n alte scopuri, de exemplu pentru a preciza operaii suplimentare
recunoscute de sistem. Se obine astfel o instruciune cu referin la un registru de prelucrare
(register reference instruction).
In acest caz, n zona de adres a codulului instruciunii nu mai avem o adres ci o
operaie sau un test de efectuat asupra registrului de prelucrare.
15 12 11 0
OpCode Register operation

Rezumat.
Coninutul acestui paragraf este central n contextul capitolului al treilea. Aici se
definete codul de instruciune cu cele dou cmpuri ale sale: zona de cod al operaiei i zona
de adres. Zona de cod al operaiei definete operaia de executat, n timp ce zona de adres se
refer la operanzii implicai n efectuarea operaiei respective: date, adrese, modul de calcul al
adresei. Zona de adres poate s conin: (1) nici o adres; (2) o adres; (3) dou adrese
(registru-registru, registru-memorie sau memorie-memorie); (4) trei adrese (adresele operanzilor
i adresa rezultatului, caz n care fiecare adres poate referi un registru sau o locaie de
memorie).
Exemplele care se dau n acest paragraf sunt eseniale pentru nelegerea modurilor de
adresare. Astfel, fiecare exemplu reprezint o situaie particular, concret, pentru combinaiile

47
ARHITECTURA CALCULATOARELOR Anca Vasilescu

de valori (semnificaii) pe care le pot avea cele dou zone ale codului de instruciune: zona de
cod i zona de adres.
De asemenea, exemplele din acest paragraf anticipeaz formatul de instruciune folosit de
maina cu trei adrese, respectiv de maina cu o adres (vezi Modelarea funcionrii unui
procesor).

Verificare.
1. Pentru exemplul 1 anterior, care este lungimea minim a cuvntului pentru o memorie de
1024 cuvinte?
2. Refacei calculele de la exemplul 1 n cazul unei memorii de 64 cuvinte de 8 bii fiecare.
Cte operaii se pot defini pe o astfel de structur?

NOTIE

48
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.3.3. Moduri de adresare


In codul unei instruciuni, OpCode specific operaia de executat. Aceast operaie
trebuie executat asupra unei date salvate n memorie sau ntr-un registru. Felul n care este
regsit operandul depinde de coninutul zonei de adres a codului instruciunii, deci de modul de
adresare pentru fiecare instruciune. Acesta specific o regul pentru interpretarea i
modificarea cmpului adres a codului instruciunii nainte ca operandul s fie referit.
Pentru a nelege modurile de adresare trebuie cunoscut secvena de operaii pe care le
efectueaz unitatea de control pentru fiecare instruciune n parte. Aceasta const din urmtoarele
etape:
1. preluarea instruciunii din memorie (faza de extragere, engl., fetch),
2. decodificarea instruciunii (faza de decodificare, engl., decode),
3. executarea instruciunii (faza de execuie, engl., execute).
In calculator exist un registru special, PC, care pstreaz urma instruciunilor
programului memorat. PC reine adresa instruciunii care se va executa i este incrementat la
fiecare preluare a unei instruciuni din memorie.
Etapa de decodificare identific operaia de executat, modul de adresare a instruciunii i
localizeaz operandul.
Apoi, calculatorul execut instruciunea respectiv i revine la pasul 1 pentru a prelua
urmtoarea instruciune de executat.
Modul de adresare se poate regsi n codul instruciunii pe un bit sau pe mai muli. Intr-
un sistem de calcul se poate ca modul de adresare s difere de la o instruciune la alta sau, chiar
pentru o aceeai instruciune adresarea s fie combinat.
A. Pentru regsirea operandului, exist dou moduri de adresare care nu folosesc o
adres n cmpul al doilea al codului instruciunii. Acestea sunt modul implicit i modul
direct.
In modul implicit de adresare se presupune c operanzii sunt dai prin definiia
instruciunii, fr ambiguitate. In modul direct de adresare, operandul apare n codul
instruciunii, n cmpul de adres. Un exemplu de astfel de instruciuni sunt cele de iniializare a
coninutului unui registru cu o anumit valoare.
B. Cnd cmpul de adres al codului de instruciune specific un registru de
prelucrare, spunem c instruciunea este n mod registru. In acest caz operandul se afl n
registrul specificat i acesta va fi selectat din lista de identificare a regitrilor sistemului.
Un caz particular de adresare cu registru este situaia n care n registrul referit se afl
adresa cuvntului de memorie care reine operandul cutat. Spunem atunci c adresarea este
indirect.
Particulariznd n continuare, putem avea o instruciune care incrementeaz
(decrementeaz) valoarea din registru la fiecare accesare a memoriei. In acest caz avem
adresare indirect n mod registru cu autoincrementare (autodecrementare). Un exemplu
pentru aceast situaie sunt regitrii care refer o tabel de date depus n memorie.
Cmpul de adres al codului de instruciune este folosit de unitatea de control pentru a
obine valoarea operandului memorat. Uneori, valoarea dat n acest cmp este adresa
operandului (vezi situaiile anterioare), dar poate fi i adresa la care se determin (calculeaz)
adresa operandului. Spunem c avem adresa absolut a operandului dac ea reprezint adresa
de memorie la care se gsete operandul cutat.
In exemplele anterioare am anticipat modul de adresare direct i modul de adresare
indirect. In concluzie, putem spune c la adresarea direct adresa efectiv a operandului apare
n cmpul de adres al instruciunii. La adresarea indirect, cmpul de adres al instruciunii
cuprinde adresa la care este stocat n memorie adresa efectiv a operandului.
C. In alte situaii, modul de adresare impune ca valoarea memorat n cmpul de
adres s fie adunat cu coninutul unui anumit registru pentru a obine adresa efectiv a

49
ARHITECTURA CALCULATOARELOR Anca Vasilescu

operandului cutat. Un astfel de registru implicat n calcul de adrese poate fi PC, un registru
de index sau un registru de baz.
Dac este vorba de registrul PC atunci avem adresare relativ. Concret, cnd coninutul
din cmpul de adres este adunat cu coninutul registrului PC se obine o adres efectiv a crei
poziie n memorie este relativ la adresa urmtoarei instruciuni de executat (reinut n PC).
Exemplu. M[PC]=825, address=24. Instruciunea de la locaia 825 este citit din
memorie i PC < PC + 1 = 826. Rezult c se calculeaz adresa 826 + 24 = 850, care reprezint
a-24-a locaie de memorie de la adresa urmtoarei instruciuni de executat.
Avantajul acestei adresri este faptul c adresa relativ se reprezint pe o secven de bii
mai scurt dect adresa efectiv.
Dac pentru a obine adresa efectiv se adun coninutul cmpului de adres cu
coninutul unui registru de index atunci avem o adresare indexat. Un registru de index este un
registru de prelucrare special care conine o valoare de ordine sau de indexare (indiciere). Aici,
codul instruciunii cuprinde adresa de nceput a unui ir de date memorat i fiecare dat din ir se
regsete n memorie relativ la adresa de nceput. Diferena ntre adresa de nceput i adresa
efectiv a operandului este indexul (indicele) memorat n registrul de index.
Dac pentru a obine adresa efectiv se adun coninutul cmpului de adres cu
coninutul unui registru de baz atunci avem o adresare cu registru de baz. Diferena fa de
adresarea indexat const n tipul registrului implicat n calculul de adres. Aici, registrul de
baz conine o adres de baz i codul instruciunii d deplasamentul relativ la adresa de baz
respectiv.
Execuia repetat a secvenei extrage-decodific-execut aplicat pe instruciunile unui
program oarecare arat c un program poate fi executat de ctre un alt program, care va fi pentru
primul un interpretor. Din acest punct de vedere execuia unui program se poate face prin
hardware, caz n care procesorul este cel care execut efectiv programmul, sau prin software, n
cazul execuiei prin interpretor. Aceast echivalen ntre procesoarele hardware i interpretoare
are consecine foarte importante pentru structurarea i proiectarea sistemelor de calcul. Astfel,
dup specificarea limbajului main L al unui nou calculator, echipa de proiectare poate decide
dac va construi un procesor hardware care s execute direct programele scrise n limbajul L sau
dac va scrie un interpretor care s interpreteze programle scrise n L (adic s le traduc n
limbajul main al unui procesor hardware deja existent). Sunt posibile i construcii hibride, cu
o parte de execuie hardware i o parte de interpretare software.
Extragerea instruciunilor din memorie este un punct critic n viteza de execuie a
acestora. Pentru a rezolva aceast problem, calculatoarele aveau posibilitatea de a extrage n
avans instruciuni din memorie, astfel nct acestea s fie rapid disponibile atunci cnd erau
necesare. Aceste instruciuni erau pstrate ntr-un set de registre numit tamponul pentru
extragere n avans. In principiu, extragerea n avans mparte execuia instruciunii n dou
etape: extragerea i execuia propriu-zis. Conceptul benzii de asamblare a procesorului (engl.
pipeline) extinde strategia: n loc s se mpart execuia instruciunii n doar dou pri, de multe
ori aceasta este mprit n mai multe etape, de fiecare etap ocupndu-se o component
hardware dedicat acesteia, toate etapele putnd s fie executate n paralel. De exemplu, o band
de asamblare cu 5 segmente (etape) ar putea fi delimitat astfel:
1. unitatea de extragere a instruciunii;
2. unitatea de decodificare a instruciunii;
3. unitatea de extragere a operanzilor;
4. unitatea de execuie a instruciunii;
5. unitatea de scriere a rezultatului.

50
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezumat.
In funcie de coninutul concret al fiecreia dintre zonele din codul de instruciune, n
programul propriu-zis al procesorului, se deosebesc modurile de adresare. In acest paragraf am
dat o clasificare a modurilor de adresare n trei categorii:
(A) adresare fr adres
adresare implicit
adresare imediat (prin valoare)
(B) adresare cu adres
adresare direct (absolut) cu memoria
adresare registru
adresare indirect
(C) adresare cu registru de calcul
adresare relativ
adresare indexat procesoarele Intel au dou registre de index: SI i DI, ambele
cu autoindexare postinstruciune
adresare cu registru de baz procesoarele Intel au dou registre de baz pentru
date: BX i BP; de asemenea, registrele de segment CS, DS, ES i SS au rol de
registre de baz pentru segmentele pe care le reprezint

Cuvinte cheie.
mod de adresare
banda de asamblare a procesorului

Verificare.
1. Care este diferena dintre un interpretor i un compilator?
2. Identificai cele cinci etape ale pipeline-ului intern pentru un program de control scris
pentru exemplul de datapath de la nceputul capitolului.

NOTIE

51
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.3.4. Clasificarea instruciunilor


Dei setul de instruciuni difer de la un calculator la altul, toate sistemele de calcul
trebuie s aib un ansamblu minimal de instruciuni. Acestea se regsesc n urmtoarele trei
categorii:
A. instruciuni pentru transferul datelor asigur transferul datelor dintr-o locaie n alta, fr
modificarea coninutului;
B. instruciuni pentru manipularea datelor efectueaz operaiile aritmetice, logice i cele de
deplasare;
C. instruciuni de control al programului cu rol n luarea deciziilor i n dirijarea execuei
microprogramului.
In particular, unele sisteme de calcul au n plus instruciuni pentru operaii de transfer pe
regitri i / sau instruciuni care permit utilizatorului s intervin as upra microprogramului.

3.3.4.1. Instruciuni pentru transferul datelor


Cele mai uzuale transferuri se realizeaz:
ntre memorie i regitrii de prelucrare (instruciunea Load sau Store);
ntre regitrii de prelucrare i stiv (instruciunea Push sau Pop);
ntre regitrii de prelucrare i regitrii de intrare / ieire (instruciunea Input sau Output);
ntre doi regitri de prelucrare (instruciunea Move sau Exchange).
In funcie de coninutul zonei de adres a codului, instruciunea poate fi apelat cu diveri
parametri. Cunoaterea i utilizarea acestora in de limbajul de asamblare folosit i de sistemul de
calcul pe care se lucreaz.

3.3.4.2. Instruciuni pentru gestionarea datelor


Aceast clas de instruciuni reprezint posibilitile de calcul ale sistemului. Din aceast
categorie fac parte:
1. instruciunile aritmetice;
2. instruciunile logice i cele de prelucrare la nivel de bit;
3. instruciunile de deplasare.
In general, calculatoarele cunosc operaiile aritmetice de adunare, scdere, nmulire i
mprire. Este posibil ca unele sisteme s foloseasc numai adunarea i nmulirea sau chiar
numai adunarea i s simuleze i celelalte operaii. In funcie de operanzii pe care poate lucra o
instruciune aritmetic, aceasta poate avea diferite forme. De exemplu, nu sunt puine
calculatoarele care admit trei sau chiar mai multe instruciuni pentru adunare. Acestea pot fi:
ADDI, pentru operanzi binari ntregi, ADDF, pentru operanzi n virgul flotant sau ADDD,
pentru operanzi zecimali.
Instruciunile logice efectueaz operaii binare pe iruri de bii memorai n regitri.
Fiecare bit este considerat individual i tratat ca o variabil boolean. Operaiile binare
fundamentale sunt: setare pe 0, setare pe 1 i complementare.
La rndul lor, instruciunile de deplasare pot fi de tip logic, de tip aritmetic sau de
rotaie. De exemplu, deplasarea logic este util atunci cnd trebuie completate cu 0 poziiile
libere ale unei valori care nu ocup ntregul registru. Deplasarea aritmetic asigur fixarea pe
poziie corect a bitului de semn. Rotaia reprezint o deplasare circular, adic un bit eliminat la
o deplasare la dreapta este ncrcat n bitul cel mai semnificativ eliberat.

3.3.4.3. Instruciuni pentru controlul programului


Instruciunile sunt ntotdeauna memorate n locaii de memorie succesive. Ori de cte ori
o instruciune este preluat din memorie n vederea executrii ei, coninutul registrului PC este

52
ARHITECTURA CALCULATOARELOR Anca Vasilescu

incrementat, astfel nct n fiecare moment el conine adresa urmtoarei instruciuni de executat.
Dup executarea unei instruciuni de transfer de date sau de prelucrare de date, controlul revine
la programul care d succesiunea instruciunilor de executat.
Uneori, execuia programului de control poate schimba adresa coninut de PC i astfel,
s modifice succesiunea iniial de instruciuni de control de executat. Cu alte cuvinte,
instruciunile de control programat precizeaz i condiiile n care poate fi modificat coninutul
registrului PC, dac instruciunile de transfer sau de prelucrare solicit o astfel de modificare.
Schimbarea valorii reinute n PC ca rezultat al executrii unei instruciuni de control determin
o pauz (break) n secvena de instruciuni de executat. Aceasta este o idee important pentru
funcionarea sistemelor digitale deoarece determin controlarea fluxului de instruciuni, chiar cu
posibilitatea de a executa bucle sau un segment de program auxiliar.
Cele mai importante instruciuni ale unui program de control sunt: Branch, Jump, Skip,
Call, Return, Compare i Test.
Instruciunile Branch i Jump sunt similare i determin ncrcarea n PC a adreselor
transmise ca parametri. In acest fel se asigur c urmtoarea instruciune se va executa de la
adresa precizat, deci se poate realiza un salt n secvena de instruciuni predefinit. Aceste dou
instruciuni de control pot fi condiionate sau nu.
Instruciunea Skip determin salt peste instruciunea curent, fr ca aceasta s fie
executat. De asemenea, i aceast instruciune poate fi condiionat sau nu.
Instruciunile Call i Return se folosesc n contextul lucrului cu subrutine i vor fi
descrise ulterior.
Instruciunile Compare i Test modific indirect secvena instruciunilor de executat.
Astfel, ele execut operaii specifice de scdere i respectiv SI logic. Rezultatul aplicrii lor nu s e
reine, dar acesta modific n mod corespunztor un anumit bit din registrul de stare.
Registrul de stare. Atunci cnd s-a convenit ca circuitul UAL s fie completat cu un
registru de stare, biii acestuia vor fi utilizai n analiza contextului curent, nainte sau dup
executarea anumitor instruciuni. Biii registrului de stare se numesc bii de stare, sau bii de
condiionare a codului (condition-code bits), sau flag-uri.
In figura urmrtoare avem un registru de stare pe 4 bii, notai cu C (Carry), S (Sign), Z
(Zero) i V (Overflow). Aceti bii sunt setai (pui pe 1) sau resetai (pui pe 0) n urma
executrii unei operaii n UAL.
Semnificaia celor patru bii de stare este urmtoarea:
C = 1 dac bitul de transport C 8 este 1;
S = 1 dac bitul de ordin maxim (bitul de semn) F 7 este 1;
Z = 1 dac rezultatul furnizat de UAL este zero, adic conine numai zerouri;
V = 1 dac s-a obinut o depire. Aceasta se interpreteaz diferit, n funcie de
reprezentarea operanzilor n complement fa de 2 sau fa de 1.
A B
8 8
C7
8-bit ALU
C8
V Z S C
F7 F0
F7

Check for zero Output


8

Output F

53
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Apelul i revenirea din subrutine. O subrutin este o secven de instruciuni care


efectueaz o aciune de sine stttoare, bine delimitat. In timpul executrii unui program, o
subrutin poate fi apelat de mai multe ori pentru a fi executat n diferite puncte ale
programului principal. De fiecare dat cnd este apelat o subrutin, este executat automat o
instruciune branch de deviere spre prima instruciune din subrutin pentru a iniia executarea
instruciunilor subrutinei. Dup executarea tuturor instruciunilor subrutinei, se execut o
instruciune branch de revenire n programul principal.
Instruciunile care transfer controlul programului nspre i dinspre subrutin pot fi: call
subroutine, jump to subroutine, branch to subroutine sau branch and save address.
Apelul unei subrutine const n dou operaii:
adresa urmtoarei instruciuni (cea reinut de PC) este memorat ntr-o locaie temporar
astfel nct subrutina s tie unde s revin; aceasta va fi adresa de revenire return address;
controlul este transferat la nceputul subrutinei.
Ultima instruciune a oricrei subrutine, return from subroutine, realizeaz revenirea n
programul principal prin transferarea adresei de revenire din locaia temporar n PC.
Locaia de memorie temporar pentru adresa de revenire difer de la un SC la altul.
Unele SC folosesc pentru aceasta prima locaie de memorie a zonei rezervat subrutinei, altele
folosesc o locaie fix din memorie, altele un registru de prelucrare, iar altele folosesc o stiv de
memorie.
Varianta cea mai eficient este cea cu stiv de memorie. In acest caz, fiecare apel de
subrutin nseamn o operaie push pe stiv cu adresa de revenire din subrutina respectiv i
fiecare revenire nseamn o operaie pop de pe stiv pentru adresa respectiv. Avantajul apare la
apelul n cascad pentru mai multe subrutine deoarece organizarea memoriei ca stiv asigur c
revenirea se face ntotdeauna corect, adic n programul apelant (n ultimul program care a apelat
procedura respectiv).
Astfel, o instruciune de apel const n:
SP < SP 1
M[SP] < PC
PC < adresa efectiv a primei instruciuni a subrutinei
Dac o alt subrutin este apelat din subrutina n execuie atunci o nou adres de
revenire este depus pe stiv, s.a.m.d.
O instruciune de revenire va consta n:
PC < M[SP]
SP < SP + 1
Folosind stiva pentru lucrul cu subrutine, programatorul nu mai trebuie s se concentreze
asupra corectitudinii revenirii din subrutin n programul apelant.
Un al doilea avantaj al memorrii adreselor de revenire pe stiv apare la lucrul cu
subrutine recursive. Pe stiv nu intereseaz care adres este depus la un moment dat. Dac
sistemul ar lucra cu alt variant de memorare a adreselor de revenire atunci ar trebui avut n
vedere c este foarte posibil ca recursivitatea s se piard prin distrugerea adresei de revenire
memorate anterior pentru aceeai subrutin.
Intreruperea unui program. O ntrerupere este o excepie sau un semnal intern sau
extern transmis SC, prin care acestuia i se anun apariia unui eveniment neobinuit, adic ne-
conform cu secvena de instruciuni n curs de execuie. Atunci cnd evenimentul s-a produs, au
loc, n ordine, urmtoarele trei aciuni:
1. suspendarea programului n curs de desfurare;
2. lansarea n execuie a unui program de depanare (service program), adic a unei rutine
specializate, numit Rutin de Tratare a Intreruperii (RTI) sau Handler de
ntrerupere, care deservete ntreruperea;
3. reluarea execuiei programului suspendat.

54
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Cauzele producerii acestor evenimente pot fi externe sau interne.


Exemple de evenimente de natur extern:
apsarea unei anumite combinaii de taste, de exemplu CTRL/BREAK;
terminarea unei operaii de intrare/ieire desfurat n background (adic n timp ce
utilizatorul urmrete desfurarea altei aciuni);
De cele mai multe ori, n urma tratrii ntreruperii externe, se reia activitatea programului
suspendat.
Exemple de ntreruperi de natur intern:
* mprirea la zero;
* tentativa de adresare a unei zone de memorie care nu exist;
* tentativa de execuie a unei instruciuni avnd un cod inexistent;
* depirea capacitii de reprezentare a rezultatului unui calcul.
De cele mai multe ori, n urma tratrii ntreruperii interne, controlul este transmis SO, fr a
mai relua activitatea programului suspendat.
Intreruperile externe sau interne sunt nsoite de semnale ale componentelor hardware ale
SC. Fa de acestea, n SC pot aprea i evenimente iniiate de executarea unor instruciuni. Acestea
vor fi ntreruperi software. Corespunztor, avem rutine care deservesc apariia ntreruperilor interne
sau externe, care vor fi activate la apariia evenimentului, fr a se putea prevedea momentul
apariiei. Vom spune despre handler-ele din aceast categorie c sunt activate prin evenimente. n
schimb, cealalt parte a handler-elor ofer aceleai servicii ca o bibliotec de subprograme,
apelabile de ctre programele utilizator. Activarea lor are loc atunci cnd sunt solicitate prin
program. Handler-ele din aceast categorie sunt activate prin instruciuni speciale de apel de
ntreruperi.
La apariia unei ntreruperi SC trebuie, n ordine:
1) s determine tipul evenimentului care a generat ntreruperea (intern, extern);
2) s afle care este sursa (cauza) ntreruperii;
3) s determine adresa RTI (a rutinei de tratare a ntreruperii), adic n ce manier se poate
identifica handler-ul corespunztor.
Rezolvarea acestor probleme presupune c pentru fiecare tip de eveniment i pentru fiecare
cauz posibil a unei ntreruperi s existe cte un handler specific. Metoda cea mai folosit pentru
localizarea rapid a RTI este vectorizarea ntreruperilor. Aceasta const n a asocia, pentru fiecare
ntrerupere, o locaie de memorie cu adres fix. n aceast locaie fix se trece adresa RTI
corespunztoare ntreruperii. Deci, n momentul apariiei unei nteruperi, mai nti se preia din
locaia de memorie asociat ntreruperii adresa handlerului corespunztor ei i apoi se cedeaz
controlul de execuie handler-ului.
O parte dintre rutinele de tratare a ntreruperilor sunt furnizate o dat cu sistemul de calcul.
O alt parte sunt scrise de ctre proiectanii sistemului de operare. n sfrsit, utilizatorii pot s-i
scrie propriile lor RTI.
n proiectarea unui handler de ntrerupere trebuie respectate, n ordine, urmtoarele etape:
1) Salvarea contextului programului suspendat: regitri, flag-uri, stiva etc. De obicei, SC reine
contextul curent prin memorarea coninutului registrului PC i a cuvntului PSW program
status word. Acesta caracterizeaz UCP deoarece coine valorile curente ale biilor de stare.

55
ARHITECTURA CALCULATOARELOR Anca Vasilescu

2) Interzicerea tratrii ntreruperilor care pot perturba evoluia normal a handler-ului respectiv.
De exemplu, handler-ul care rezolv mprirea la zero poate s conin, eventual din greeal,
o mprire la zero. n acest caz ar trebui s nu fie apelat din nou acelai handler.
3) Rezolvarea situaiei care a generat ntreruperea, aceasta constituind partea esenial a handler-
ului.
4) Ridicarea restriciilor impuse la etapa 2.
5) Refacerea contextului salvat la etapa 1.
6) Predarea controlului ctre programul care a fost suspendat sau ctre sistemul de operare.
Regula unanim acceptat de ctre proiectanii sistemelor de ntreruperi este aceea c orice
ntrerupere este luat n considerare numai ntre execuiile a dou instruciuni main succesive.
Niciodat UCP nu rspunde unei ntreruperi pn cnd nu a ncheiat execuia instruciunii curente.
Inainte de fiecare faz de preluare a urmtoarei instruciuni din memorie, unitatea de control verific
i rezolv toate semnalele de ntrerupere. Dac apar simultan dou ntreruperi, circuitele hard ale SC
trebuie s decid care dintre ele va fi deservit prima.

Rezumat.
In acest paragraf sunt prezentate principalele instruciuni recunoscute de procesor ntr-un
program de control. Aceastea sunt grupate n funcie de rolul lor n sistem:
instruciuni pentru transferul datelor
transfer ntre memorie i regitri de prelucrare
transfer ntre regitri de prelucrare i stiv
transfer ntre doi regitri de prelucrare
instruciuni pentru gestionarea datelor
instruciuni aritmetice
instruciuni logice i de prelucrare la nivel de bit
instruciuni de deplasare
instruciuni de control al programului.

Cuvinte cheie.
instruciune
registru de stare
subrutin
ntrerupere, vectorizarea ntreruperilor, tratarea ntreruperilor

Verificare.
1. Ce este o subrutin? De ce este potrivit utilizarea stivei pentru gestionarea apelului i
revenirii dintr-o subrutin?
2. Ce este o ntrerupere? Ce se nelege prin vectorizarea ntreruperilor?

NOTIE

56
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.4. Prelucrarea instruciunilor unui program


Prelucrarea instruciunilor unui program de ctre UCP const n principal n urmtoarele
etape:

1. UCC emite semnale de comand ctre IN RAM


dispozitivul periferic de intrare pentru transferul
UAL UCC
de instruciuni i de date ctre memoria RAM;
2. UCC extrage instruciunile din memoria intern RAM
i le interpreteaz (decodific);
UAL UCC

3. n funcie de interpretarea fcut, UCC emite RAM


semnale de comand ctre UAL i RAM;
UAL UCC

4. datele auxiliare solicitate din RAM sunt


RAM
transferate n UAL, unde se execut, sub
supravegherea UCC, operaia aritmetic sau UAL UCC
logic decodificat;
5. rezultatele obinute n UAL sunt dirijate de UCC
RAM
ctre RAM;
UAL UCC

6. se repet etapele de la 1. la 5. pentru fiecare


instruciune;

7. Dup executarea tuturor instruciunilor, UCC RAM OUT


direcioneaz RAM s transfere rezultatele ctre
un dispozitiv periferic de ieire. UAL UCC

Verificare.
Identificai n structura fizic a sistemului de calcul unitile funcionale corespunztoare
componentelor implicate n acest paragraf.

NOTIE

57
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.5. Microprocesorul
Indiferent de structura sa intern, UCP este cea mai important component pentru
funcionarea unui SC. De aceea este numit i creierul sistemului de calcul. Deoarece UCP se
concretizeaz fizic n componente numite procesoare, rezult de aici c procesorul (n diversele
sale variante) este unitatea de prelucrare a sistemului, deci componenta fundamental a unui
sistem de calcul.
La supercalculatoare i la calculatoarele medii-mari, UCP poate fi construit prin circuite
structurate pe un cadru principal, numit mainframe, n timp ce, la microcalculatoare, UCP este
construit din circuite integrate structurate pe pastile de siliciu care vor forma
microprocesoarele. Un microprocesor este o UCP realizat ntrun singur circuit integrat.

3.5.1. Caracteristici
Puterea unui microcalculator este dat de:
viteza de executie,
memorie i
acurateea circuitelor electronice componente.
Un microprocesor se apreciaz n funcie de:
viteza cu care execut instruciunile i
cantitatea de memorie intern pe care o poate accesa n mod direct.
Viteza de execuie a unui microprocesor depinde, la rndul ei, de:
lungimea cuvntului i
viteza ceasului.
Lungimea cuvntului reprezint capacitatea registrului de baz, adic numrul de bii ce
poate fi prelucrat la un moment dat de microprocesor. Aceast valoare este invers proporional
cu viteza de execuie. Primele microprocesoare pe 8 bii au fost create de firma ZILOG i numite
Z80. Cronologic, urmeaz microprocesoarele din familia Intel care au lungimea cuvntului de 16
bii (I 8086, I 8088, I 80286), de 32 bii (I 80386, I 80486) sau de 64 bii pentru
microprocesoarele Pentium.
Viteza ceasului sau frecvena de tact reprezint numrul de impulsuri electronice pe care
le produce ceasul intern al microprocesorului ntr-o secund. Viteza ceasului este msurat n Hz
i multiplii informatici ai acestora. Actualmente, microprocesoarele produse au depit viteza
ceasului de 1,5 GHz.
Memoria intern pe care o poate accesa n mod direct depinde de lungimea
cuvntului. Astfel, pentru cuvnt de 16 bii microprocesorul va putea accesa 2 16 octei, n timp ce
pentru un cuvnt de 32 bii, microprocesorul va putea accesa 2 32 octei.
Deoarece este componenta fundamental a SC, microprocesorul este cel care determin i
denumirea calculatorului gazd. Prezentm n continuare microprocesoarele din familia Intel
I 80x86 i sistemele care le includ.
La apariia sa n 1978, procesorul 8086 era cu adevrat o unitate de prelucrare cu un
singur cip pe 16 bii. Proiectul lui 8086 era oarecum similar cu cel al lui 8080, dar nu integral
compatibil. Cipul 8086 a fost urmat de cipul 8088, care avea aceeai arhitectur ca i 8086 i rula
aceleai programe, dar avea o magistral pe 8 bii i nu pe 16 bii, fiind deci mai lant, dar mai
ieftin dect 8086. acest cip a devenit rapid standard pentru industria calculatoarelor personale
odat cu alegerea sa de ctre IBM pentru producerea sistemului iniial IBM PC.
Nici 8088, nici 8086 nu puteau adresa mai mult de 1MO de memorie. Astfel, la nceputul
anilor 80, Intel a proiectat 80286, o versiune mbuntit , compatibil cu 8086. urmtorul pas a
fost un adevrat procesor pe 32 bii i anume 80386, compatibil cu procesoarele anterioare.
Aceast compatibilitate era oun plus pentru cei care doreau s ruleze n continuare vechile soft-
uri i un inconvenient pentru cei care ar fi preferat o arhitectur simpl, modern, curat, fr
impedimentele greelilor i tehnologiile trecutului.

58
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Incercnd s rspund cerinelor pieii, n 1989 Intel scoate procesorul 80486: o versiune
mai rapid a lui 80386, cu coprocesorul matematic inclus i cu o memorie cache de 8KO inclus
pe cip. Procesorul 486 mai avea incorporat i suportul pentru multiprocesare, pentru a permite
productorilor de calculatoare s construiasc sisteme cu mai multe UCP.
Pentru generaia urmtoare de procesoare, Intel a avut surpriza s descopere c, de fapt,
numerele (ca 80486) nu pot fi mrci nregistrate. Astfelc, urmtoarea generaie de procesoare se
va numi Pentium, de la grecescul cinci. Spre deosebire de 80486 care avea o singur
band de asamblare intern (pipeline), Pentium are dou astfel de benzi, deci este de ori mai
rapid. Urmtoarea generaie de procesoare este Pentium Pro, o rupere clar fa de trecut pentru
c noul Pentium Pro avea o organizare intern total diferit i putea s execute pn la cinci
instruciuni simultan. In plus, memoria cache intern avea dou nivele: 8KB pentru instruciuni
i 8KB pentru date pe un nivel i nc 256KB pe al doilea nivel.
In continuarea seriei, noul procesor Intel a fost Pentium II, n fapt un Pentium Pro cu
extensii speciale pentru multimedia (MMX, MultiMedia eXtension). Aceste instruciuni aveau
rolul de a accelera calculele necesare pentru procesarea semnalelor audio i video, nlturnd
astfel nevoia unor coprocesoare speciale multimedia.
La nceputul anului 1998, Intel a introdus o linie nou de produse numit Celeron o
variant a procesorului Pentium II ieftin, cu performani sczute, destina t PC-urilor de duzin.

3.5.2. Setul de instruciuni ale microprocesorului


Un aspect important al arhitecturii unui SC este dat de setul de instruciuni recunoscute
de microprocesorul acelui sistem. De aceste instruciuni depinde construcia i folosirea
limbajului main al calculatorului n discuie.
La nceput, datorit posibilitilor reduse ale echipamentelor hardware, calculatoarele
lucrau cu instruciuni puine i simple. Ulterior, apariia circuitelor integrate a permis mrirea
numrului de instruciuni recunoscute de un microprocesor, ajungndu-se la sisteme cu 100 sau
chiar 200 de instruciuni n setul de baz. Implicit, aceste SC pot prelucra un numr mare de
tipuri de date i diverse moduri de adresare a memoriei.
In 1980, un grup de la Berkeley, condus de David Patterson i Carlo Squin, a mceput s
proiecteze cipuri VLSI pentru UCP fr interpretor. Ei au introdus termenul RISC pentru acest
concept i i-au numit cipul de unitate central RISC I, urmat la scurt timp de RISC II. Puin mai
trziu, n 1981, la Stanford, John Hennessy a proiectat i fabricat un cip ntructva diferit, pe care
l-a numit MIPS. Aceste cipuri au evoluat n produse comerciale importante, procesoarele
SPARC i respectiv MIPS. De fapt, acronimul MIPS este pentru Milioane de Instruciuni pe
Secund, procesorul MIPS fiind denumit astfel numai printr-un joc de cuvinte. Ulterior, structura
intern a acestui procesor a permis i o denumire potrivit: Microprocessor without Interlocked
Pipeline Stages.
Majoritatea microprocesoarelor folosite n prezent fac parte din familia CISC (Complex
Instruction Set Computer). Cele mai performante microprocesoare de acest tip sunt Pentium-
urile firmei Intel i M68040 al firmei Motorola, ultimul echipnd PC-urile de tip MacIntosh.
Tendina actual se ndreapt spre microprocesoarele de tip RISC (Reduced Instruction
Set Computer). In general, acestea lucreaz pe 64 bii, cu o vitez de pn la 200 MHz. La baza
arhitecturii RISC st intenia unor constructori de microprocesoare de a reduce timpul de
execuie a unui program prin simplificarea setului de instruciuni. Acetia au recomandat ca SC
s foloseasc mai puine instruciuni, care s aib structuri simple, astfel nct s poat fi
executate mai rapid n UCP, adesea fr un necesar de memorie su plimentar.
Procesoarele MIPS apar ca un caz particular de procesoare RISC i sunt folosite astzi n
special pe staiile de lucru Silicon Graphics.
Pe scurt, caracterizarea celor dou arhitecturi ar fi:

59
ARHITECTURA CALCULATOARELOR Anca Vasilescu

CISC 1. numr mare de instruciuni (100 250);


2. unele instruciuni execut aciuni specializate (se apeleaz rar);
3. numr mare de moduri de adresare a memoriei (5 20);
4. formatul instruciunilor nu are lungime fix;
5. exist instruciuni care prelucreaz operanzi direct n memorie;
RISC 1. relativ puine instruciuni;
2. relativ puine moduri de adresare a memoriei;
3. exist acces limitat la memorie pentru instruciunile Load i Store;
4. toate operaiile se efectueaz n regitrii UCP;
5. instruciunile au format fix (sunt uor de decodificat);
6. control bazat pe circuite (preferabil controlului microprogramat).

3.5.3. Modelarea funcionrii unui procesor


In acest paragraf vom prezenta principiile generale de funcionare ale unui procesor,
considernd dou modele, alese pe considerente didactice s reprezinte simplu i pe neles
procesorul. Aceast modalitate de prezentare a rezultat n urma unui proces de simplificare a
construciei unui procesor. De aceea, n practic nu se pot regsi aceste modele foarte simple, dar
ele constituie scheletul oricrui model de procesor.

3.5.3.1. Maina cu trei adrese


Modelul mainii cu trei adrese conine n memorie att datele cu care lucreaz, ct i
instruciunile care descriu programul de executat.
Zonele de date le vom identifica prin numele lor. Presupunem c fiecare dat ncape pe
un cuvnt.
Formatul instruciunilor.
O instruciune la maina cu trei adrese ocup patru cuvinte:

cod adr1 adr2 adr3


Semnificaia cuvintelor este:
cod indic codul operaiei de efectuat;
adr1, adr2, adr3 indic trei locaii din memoria mainii.
O astfel de instruciune se execut prin:
adr3 := (adr1) cod (adr2)
adic, ntre numrul coninut n locaia de memorie indicat de adr1 (ca prim operand) i
numrul coninut n locaia indicat de adr2 (ca al doilea operand) se efectueaz operaia indicat
de cod. Numrul obinut ca rezultat este depus n locaia indicat de adr3.
Instruciunile se execut n secven, una dup alta. Schimbarea ordinii de execuie a
instruciunilor se face cu ajutorul instruciunilor de salt.
Pentru a ne referi mai uor la ele, unele ins truciuni pot fi identificate printr-un nume:
nume: cod adr1 adr2 adr3

Instruciunile mainii cu trei adrese.


Maina cu trei adrese lucreaz cu trei tipuri de instruciuni:
1. instruciuni de calcul;
2. instruciuni de salt;
3. instruciuni speciale.
In continuare notm adresele de memorie cu litere mari (A, B, C etc.), att pentru
locaiile din zona de date ct i pentru cele din zona de instruciuni.

60
ARHITECTURA CALCULATOARELOR Anca Vasilescu

1. Maina cu trei adrese recunoate 7 instruciuni de calcul i anume, patru instruciuni pentru
operaiile aritmetice fundamentale i trei instruciuni pentru operaii unare uzuale:

+ A B C Adunare C:=A+B
A B C Scdere C:=AB
* A B C Inmulire C:=A*B
/ A B C Imprire C:=A/B
A - C Radical de ord 2 C:= A
|| A - C Valoare absolut C:=|A|
[] A - C Partea ntreag C:=[A]

2. Instruciunile de salt sunt de dou tipuri: de salt condiionat i de salt necondiionat.


Maina cu trei adrese recunoate o singur instruciune de salt necondiionat:

SN - - A Urmtoarea instruciune care se va executa este cea


de la adresa A

O instruciune de salt condiionat comand saltul la instruciunea de la adresa adr3 numai


dac numerele de la adresele adr1 i adr2 se afl n relaia de ordine specific instruciunii
respective. Maina cu trei adrese recunoate 6 instruciuni de salt con diionat:

< A B C Salt la instruiunea indicat prin C dac A < B


A B C Salt la instruiunea indicat prin C dac A B
> A B C Salt la instruiunea indicat prin C dac A > B
A B C Salt la instruiunea indicat prin C dac A B
= A B C Salt la instruiunea indicat prin C dac A = B
A B C Salt la instruiunea indicat prin C dac A B

3. Instruciunile speciale ale mainii cu trei adrese sunt: CIT, TIP i STOP.

CIT - - A Citete de la intrare valoarea unui numr i o


depune n locaia indicat prin adresa A
TIP - - A Afieaz la ieire valoarea coninut n locaia
indicat prin adresa A
STOP - - - Incheie execuia programului (oprire)

61
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.5.3.2. Maina cu o adres


Arhitectura mainii cu o adres este ceva mai complex dect a modelului prezentat
anterior, astfel c se apropie mai mult de construcia real a unui procesor.
A. Structura memoriei la maina cu o adres.
Principalele componente ale memoriei mainii cu o adres sunt:
1. regitrii generali;
2. zona de memorie rezervat pentru program;
3. zona de memorie rezervat pentru date;
4. zona de memorie rezervat pentru stiv.

1. Regitrii mainii cu o adres sunt trei:

1. registrul acumulator, A are capacitatea de un cuvnt;


reine la un moment dat unul dintre
operanzii operaiei ce urmeaz a fi
executat i dup execuie reine rezultatul
operaiei;
2. registrul index, I are capacitatea de un cuvnt;
este folosit pentru a accesa componentele
unui vector de numere memorat n zona de
date;
3. registrul de baz, B este utilizat pentru a se permite
comunicarea ntre diferite pri ale unui
program.
Observaie. Depunerea unui numr ntr-un registru face ca vechiul numr din registru s
se piard. In acelai timp, coninutul unui registru nu se pierde pn cnd nu se depune un nou
numr.
2. Zona de program conine instruciunile care urmeaz a fi executate.
O instruciune se reprezint pe dou cuvinte i are formatul:

nume: cod adr

Semnificaia cmpurilor din format este dat de:


A := (A) cod (adr)
adic, se execut operaia indicat de cod folosind coninutul curent al registrului acumulator, A
i coninutul locaiei de la adresa adr.
3. Zona de date este zona n care sunt memorate valorile variabilelor cu care lucreaz
programul. Fiecare variabil simpl se reprezint pe un cuvnt. Pe lng variabilele simple, la
aceast main se poate opera uor i cu variabile cu indici: vectori, matrice bidimensionale,
tablouri tridimensionale etc. Acestea din urm vor fi memorate element cu element n locaii
succesive.
Observaie. Depunerea unui numr ntr-o locaie face ca vechiul numr memorat s se
piard. In acelai timp, coninutul nu se pierde pn cnd nu se depune un nou numr.
4. Stiva este o zon de memorie pentru care accesul la locaii este gestionat de disciplina LIFO i
de urmtoarele reguli:
n fiecare moment se depune sau se extrage un singur cuvnt din stiv;
nu se poate extrage un numr din stiv dect dac nainte au fost deja depuse
numere n stiv;
62
ARHITECTURA CALCULATOARELOR Anca Vasilescu

la extragerea unui numr din stiv numrul respectiv se terge de pe stiv;


numerele neextrase din stiv i pstreaz valorile.
Observaie. Tentativele de efectuare a unei operaii de depunere ntr-o stiv plin sau de
extragere dintr-o stiv vid (situaiile de depire) conduc la oprirea mainii cu o adres.
B. Instruciunile mainii cu o adres.
Pentru prezentarea instruciunilor mainii cu o adres convenim s notm cu X o adres
oarecare din zona de date, sau o adres din zona de program, sau o constant.
Maina cu o adres recunoate 28 instruciuni considerate n patru grupe:
instruciuni pentru transferuri de date;
a) instruciuni de calcul;
b) instruciuni de salt;
c) instruciuni speciale.
Pentru maina cu o adres putem identifica o instruciune n mod unic i printr-un numr
de la 1 la 28.
In tabelele urmtoare, pentru fiecare instruciune precizm: numrul de ordine, codul,
adresa locaiei pe care se execut instruciunea i, eventual, comentarii specifice fiecrei
instruciuni.
a) Instruciunile pentru transferuri de date sunt:

1 X Valoarea indicat de X se depune n registrul acumulator A


2 X Valoarea din registrul acumulator A se depune n locaia din
zona de date indicat de X
3 I Coninutul registrului index I se depune n registrul acumulator A
4 I Coninutul registrului acumulator A se depune n registrul index I
5 B Coninutul registrului de baz B se depune n registrul
acumulator A
6 B Coninutul registrului acumulator A se depune n registrul de
baz B
7 X Valoarea indicat prin X este depus n vrful stivei; numrul
elementelor din stiv crete cu 1
8 X Este extras elementul din vrful stivei i este depus n locaia de
date indicat de X; numrul elementelor din stiv scade cu 1
9 Valoarea din registrul acumulator A este depus n vrful stivei;
numrul elementelor din stiv crete cu 1
10 Este extras elementul din vrful stivei i este depus n registrul
acumulator A; numrul elementelor din stiv scade cu 1

b) Instruciunile de calcul coincid cu cele recunoscute de maina cu trei adrese:

11 + X Adunare A:=A+X
12 X Scdere A:=AX
13 * X Inmulire A:=A*X
14 / X Imprire A:=A/X
15 X Radical de ord 2 A:= X

63
ARHITECTURA CALCULATOARELOR Anca Vasilescu

16 || X Valoare absolut A:=|X|


17 [] X Partea ntreag A:=[X]

c) Instruciunile de salt pot fi condiionate sau nu. Si maina cu o adres recunoate o


singur instruciune de salt necondiionat:

18 SN X Urmtoarea instruciune care se va executa este cea


de la adresa din zona de program indicat de X
Instruciunile de salt condiionat determin un salt la instruciunea indicat de X dac
coninutul acumulatorului A este ntr-o anumit relaie de ordine fa de zero. Avem urmtoarele
6 instruciuni de salt condiionat:

19 < X Salt la X dac A < 0


20 X Salt la X dac A 0
21 > X Salt la X dac A > 0
22 X Salt la X dac A 0
23 = X Salt la X dac A = 0
24 X Salt la X dac A 0
d) Instruciunile speciale ale mainii cu o adres completeaz cu o instruciune setul de
la maina cu trei adrese:

25 ADR X Determin adresa (nu valoarea) din zona de date a


variabilei indicate de X i depune aceast adres n
registrul acumulator A
26 CIT X Citete de la intrare valoarea unui numr i o depune n
locaia din zona de date indicat de X
27 TIP X Afieaz la ieire valoarea numrului aflat n locaia
din zona de date indicat de X
28 STOP Incheie execuia programului (oprire)

NOTIE

64
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.5.4. Structura intern de baz a unui microprocesor I 80x86


Complicnd modelele din paragraful anterior, prezentm aici schema unui microprocesor
din familia Intel 80x86 pe 16 bii.

Registre de
segment Interfata cu
Registre Sumator memoria
Contor de 20 biti
generale adrese interna
program
16 biti

Magistrala interna de 16 biti


Comanda de
magistrala 16 biti
Registre
temporare
Registru 6
UAL Comanda 8 biti
Bytes
UAL
Registru de
stare

Registrele generale sunt:


a) registrele de utilizare general se noteaz cu:
AX - registrul acumulator general
BX - registrul de baz
CX - registrul numrtor
DX - registrul de date.
Acestea pot fi adresate n dou moduri: direct pe 16 bii sau adresnd separat byte-ul
superior (primii 8 bii) i byte-ul inferior (urmtorii 8 bii). Corespuztor, cuvintele se vor numi:

15 7
8 0
AH AL
BH BL
CH CL
DH DL
b) registrul indicator de stiv de 16 bii. Acesta conine adresa vrfului stivei, SP (stack
pointer).
c) registrul indicator de baz de 16 bii. Acesta conine adresa de baz, BP (base
pointer).
d) registrele de index: SI (source index) i DI (destination index), de 16 bii fiecare.
Acetia particip la elaborarea adreselor, fiecare adres rezultnd prin nsumarea
diferitelor combinaii ntre adresa de baz, un indice relativ la poziia curent i o
deplasare (numita adres de offset).
Registrul de stare este registrul indicatorilor de condiie. Fiecare subrutin care folosete
registrul de flaguri va interpreta de o manier proprie valorile gsite. Cel mai des, indicatorii de
condiie sunt folosii n instruciunile de salt.
Cei 16 indicatori de condiie ai registrului de flag-uri au urmtoarea semnificaie:

65
ARHITECTURA CALCULATOARELOR Anca Vasilescu

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

X X X X OF DF IF TF SF ZF X AF X PF X CF

X - rezervai;
CF - indicator de transport din MSB al rezultatului;
PF - indicator de paritate;
AF - indicator de transport de la bitul 4 la bitul 5;
ZF - indicator de rezultat nul;
SF - indicator de semn negativ;
TF - indicator de ntrerupere intern;
IF - indicator de ntrerupere extern permis;
DF - indicator de decrementare / incrementare a regitrilor SI sau DI dup execuia unei operaii;
OF - indicator de depire aritmetic.

Registrele de segment ale microprocesorului permit adresarea memoriei interne, fiecare


avnd o capacitate de 16 bii. Acetia sunt:
CS - Cod Segment - segmentul pentru program (cod surs);
DS - Data Segment - segmentul pentru date;
SS - Stack Segment - segmentul pentru stiv;
ES - Extra Segment - segmentul pentru date auxiliare.
Contorul de program, PC sau IP (Instruction Pointer) are o capacitate de 16 bii i
conine o adres relativ (offset) a instruciunii curente din segmentul de program CS.
De exemplu, pentru o instruciune de salt, IP este salvat n vrful stivei i ncrcat cu
adresa relativ n segmentul program.
Registrul de 6 bytes conine instruciuni i are rolul de a mbunti viteza de prelucrare
prin dou mecanisme distincte:
datele preluate din memorie sunt plasate n acest registru n ordinea introducerii; astfel,
UAL poate s preia instruciunile fr s fie influenat de timpul de acces al memoriei;
la transferul operanzilor ntre memorie sau dispozitive periferice i UAL se genereaz i
adresele necesare.

Rezumat.
In prezentarea structurii organizatorice i funcionale a unui sistem de calcul un loc aparte
trebuie rezervat microprocesorului creierul calculatorului i reprezentarea fizic cea mai
important a UCP.
In prima parte a acestui paragraf este descris procesorul din diferite puncte de vedere:
istoric, caracteristici generale, caracteristici de performan. Apoi sunt tratate aspecte concrete
legate de cele trei tipuri de arhitecturi de procesoare existente pe pia: CISC, RISC i MIPS.
In pregtirea capitolului al patrulea, paragrafele 3.8.3 i 3.8.4 prezint trei nivele de
structuri de uniti de prelucrare microprogramate. Este vorba de modelul mainii cu trei adrese,
modelul mainii cu o adres i, n final, modelul larg rspndit al procesoarelor din familia Intel.
Aceste trei exemple reprezint totodat trei nivele de abstractizare (de la simplu la complex) a

66
ARHITECTURA CALCULATOARELOR Anca Vasilescu

structurii interne a unitii de prelucrare. Cel mai simplu model este cel al mainii cu trei adrese
pentru c toate instruciunile sunt n mod de adresare direct. La maina cu o adres, deja
modelul este mai complicat pentru c multe dintre instruciunile recunoscute de aceast main
lucreaz cu regitrii sau cu alte zone de memorie implicite.
Cuvinte cheie.
procesor
lungimea cuvntului, frecvena de tact
instruciune, cod de instruciune, setul de baz de instruciuni
arhitectur CISC, RISC, MIPS
Verificare.
1. Dac un procesor are frecvena de tact de 6MHz aceasta nseamn c poate executa 6
milioane de operaii ntr-o secund. Dac considerm c o astfel de operaie este o etap
din pipeline-ul intern al procesorului respectiv, s se calculeze viteza de prelucrare a
acestui procesor (n Mips). Se va considera c banda de asamblare este cu cinci faze.

67
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.6. Multiprocesare
Dac dou sau mai multe calculatoare sau procesoare coopereaz ntr-o manier oarecare
atunci totalitatea resurselor lor formeaz un sistem distribuit. De aici rezult imediat dou tipuri
de sisteme distribuite: sistemele multicalculator i sistemele multiprocesor.
Exist numeroase asemnri ntre sistemele multiprocesor i sistemele multicalculator.
Cele mai multe asemnri rezult din faptul c ambele tipuri suport operaii efectuate paralel i /
sau concurent.
Totui, exist o deosebire important ntre un sistem cu mai multe procesoa re i un sistem
cu mai multe calculatoare. Intr-un sistem multicalculator, calculatoarele sunt interconectate ntre
ele prin linii de comunicare formnd o reea de calculatoare. Intr-o reea avem mai multe
calculatoare autonome (independente) care pot sau nu s comunice fiecare cu fiecare.
Comparativ, un sistem multiprocesor este controlat de un acelai sistem de operare, care asigur
interconexiunea ntre procesoare i toate componentele care concur la realizarea sarcinilor.
Cu alte cuvinte, un sistem multiprocesor rezult din interconectarea a dou sau mai
multor procesoare cu memorii i echipament de intrare / ieire.
Din aceast definiie trebuie s nelegem c un procesor poate reprezenta o unitate UCP
sau poate fi un procesor IOP. Totui, calitatea de sistem multiprocesor apare cnd cel puin unul
dintre procesoare are proprieti de UCP i nu numai de comunicare de tip IOP.
Sistemele multiprocesor fac parte din categoria MIMD.
Un exemplu imediat de sistem multiprocesor este microprocesorul nsui, cel puin n
ceea ce privete integrarea coprocesorului matematic i dezvoltarea procesoarelor multi-core.
Pentru a spori viteza de execuie a operaiilor matematice, arhitectura intern a
microprocesoarelor s-a extins cu o unitate specializat n operaii cu numere reale exprimate n
virgul mobil, numit coprocesor matematic. Pentru utilizator, aceast unitate auxiliar este
integrat n microprocesorul printe prin interfaa coprocesorului. Cele dou componente sunt
conectate n paralel, astfel c fiecare poate s-i execute la un moment dat propriile sale
instruciuni.
Coprocesoarele matematice au urmat evoluia microprocesoarelor. Pn la
microprocesorul I80486SX coprocesorul este un chip distinct de microprocesor i preia numele
acestuia, schimbnd doar ultima cifr. Astfel, coprocesorul matematic ataat microprocesorului
I80x86 se va numi I 80x87. Dup varianta I80486SX, microprocesoarele I80486DX,
I80486DX2, I80486DX4 i Pentium au inclus coprocesorul matematic pe acelai chip cu
microprocesorul.
In absena coprocesoarelor, programele folosesc emulatoare de coprocesoare care sunt
conectate n locul microprocesoarelor prelund astfel controlul ntregului sistem.

Reelele locale sunt apreciate ca cele mai adecvate i rspndite suporturi fizice pentru
sistemele cu prelucrare distribuit.
Multiprocesarea crete fiabilitatea sistemului prin faptul c o eroare aprut ntr-o parte
are un efect limitat i nu influeneaz ntregul sistem. Mai mult, dac un procesor cade, procesele
lui pot fi dirijate spre execuie ctre un alt procesor.
Un avantaj fundamental al sistemelor multiprocesor const n posibilitatea procesrii
paralele a task-urilor n dou moduri:
mai multe sarcini independente pot fi executate n paralel sau
o aceeai sarcin poate fi mprit n mai multe task-uri de executat n paralel.
Rolul acestui paragraf este de a deschide noi orizonturi pentru studentul care i-a nsuit
noiunile elementare de arhitectura calculatoarelor prezentate n acest curs i care este astfel n
msur s neleag structuri mai complexe de organizare i realizare a conexiunilor inter-
calculatoare.
Multiprogramarea reprezint modul de exploatare a unui sistem de calcul cu un singur
procesor central, dar care presupune existena simultan n memoria intern a mai multor

68
ARHITECTURA CALCULATOARELOR Anca Vasilescu

programe care se execut concurent (procese concurente); astfel rezult o mai bun utilizare a
UCP i a memoriei.
Un task este unitatea elementar delimitat ntr-o secven de aciuni specifice pentru
atingerea unui anumit scop. Termenul de multitasking sau multiprelucrare se refer la
capacitatea unui calculator de a executa mai multe taskuri simultan. La o prezentare mai detaliat
a conceptului, caracteristica de multitasking se atribuie direct sistemului de operare. Astfel,
politica de alocare a taskurilor la unitile de prelucrare disponibile n sistem ine de organizarea
i gestionarea resurselor de ctre sistemul de operare gazd. Un task n execuie este un proces.
Dac, la un moment dat, sunt executate mai multe procese simultan atunci aceste sunt procese
paralele. Dac, n plus, aceste procese evolueaz cu interschimb de informaii ntre ele, atunci
ele sunt procese concurente. Din alt punct de vedere, dac sistemul gazd dispune de mai multe
uniti de prelucrare pentru a executa procesele paralele atunci paralelismul este efectiv. Altfel,
paralelismul este simulat prin diferite politici de alocare proces-procesor.
In ceea ce privete aspectele de paralelism la nivelul structurii interne a sistemului de
calcul, se poate spune c n arhitectura calculatorelor Mark I i ENIAC intrau n calcul la un
moment dat mai multe elemente de calcul ce lucrau n paralel la o problem comun, fiind
dirijate de o singur unitate de comand. La versiunile urmtoare s-a renunat la aceast
arhitectur paralel. Ulterior, n arhitectura procesoarelor Intel s-a revenit la paralelizarea
etapelor de prelucrare. Astfel, dac la 8086 erau doar dou uniti funcionale care lucrau n
paralel (EU i BIU), structura procesorului 286 conine 4 uniti funcionale paralele, n timp ce
procesorul 386 conine 6 astfel de uniti funcionale i anume:
1. unitatea de interfa cu magistrala (BIU, engl. Bus Interface Unit);
2. unitatea de citire n avans a instruciunilor (engl. Code Prefetch Unit);
3. unitatea de decodificare a instruciunii (engl. Instruction Decode Unit);
4. unitatea de execuie (EU, engl. Execution Unit);
5. unitatea de translatare a adreselor (engl. Segment Unit);
6. unitatea de paginare (engl. Paging Unit).
Mai multe detalii despre paralelismul intern la nivelul procesorului se pot consulta n
[Lungu, 2000].

Rezumat.
Acest paragraf a ncercat s atrag atenia studenilor c arhitectura calculatoarelor este
o poart care deschide reale perspective de documentare i nsuire de cunotine n domenii
moderne ca: reele de calculatoare, sisteme distribuite, prelucrare nesecvenial (paralel i/sau
concurent). Conceptele nu sunt tratate aici exhaustiv, fiecare dintre ele reprezentnd n fond
obiectul unei alte discipline de studiu.
Verificare.
1. Care sunt avantajele prelucrrii n paralel a sarcinilor de calcul i/sau de control?
2. Care sunt principalele uniti funcionale ale calculatorului care lucreaz n paralel?
3. Comparai structura benzii de asamblare a procesorului n cinci stagii (paragraful Moduri
de adresare) cu funciile celor ase uniti interne de prelucrare ale procesorului descrise n
finalul paragrafului.

NOTIE

69
ARHITECTURA
CALCULATOARELOR

Lector Dr. Anca Vasilescu

PARTEA a-II-a

2007 - 2008

1
ARHITECTURA CALCULATOARELOR Anca Vasilescu

CUVNT NAINTE

Materialul didactic scris pentru studeni este mprit n: (I) suport pentru activitile
tutoriale care conine considerentele teoretice corespunztoare capitolelor 1 i 3 din tematica
cursului i (II) suport pentru activitile aplicative care conine considerentele teoretice i
problemele rezolvate corespunztoare capitolului 2 din tematica cursului.

TEMATICA CURSULUI

Componentele de baz ale unui sistem de calcul


Noiuni introductive
Definiii. SC din diferite puncte de vedere. Structura unui sistem de calcul.
Performane. Clasificri. Principiile von Neumann. Modelul formal al unui
calculator.
Sistemul de intrare/ ieire. Dispozitive periferice.
Clasificri. Canalul de intrare/ ieire. Legarea perifericelor la SC.
Procesoare de intrare/ ieire. Structura unor clase de periferice.
Unitatea de memorie
Definiii. Structura fizic. Structura ierarhic de organizare a memoriei.
Tipuri de acces la memorii.
Abordarea la nivel logic-digital a componentelor calculatorului
Circuite logice
Pori logice. CLC. CLS. CLC aritmetice. CLC decodoare. CLC
multiplexoare. CLS bistabile. Circuite integrate.
Regitri
Regitri cu ncrcare paralel. Regitri de deplasare. Numrtoare binare.
Regitri de incrementare.
Structura de baz a unui calculator
Regitri de baz ai unui sistem de calcul. Unitatea de contorizare i control.
Transferul datelor pe magistral.
Unitatea central de prelucrare
Organizarea general a regitrilor. Organizarea stivei
Microoperaie. Instruciune. Program. Codurile instruciunilor
Moduri de adresare
Clasificarea instruciunilor
Instruciuni pentru transferul datelor. Instruciuni pentru prelucrarea datelor.
Instruciuni pentru controlul programului.
Prelucrarea instruciunilor unui program
Microprocesorul
Caracteristici. Setul de instruciuni. Modelarea funcionrii unui procesor.
Maina cu trei adrese. Maina cu o adres. Structura intern de baz a unui
micoprocesor I 80x86.
Introducere n utilizarea limbajului de asamblare. Sintaxa principalelor
instruciuni. Rezolvarea unor probleme elementare.
Multiprocesare. Coprocesoare matematice.

2
ARHITECTURA CALCULATOARELOR Anca Vasilescu

ABORDAREA LA NIVEL LOGIC-DIGITAL


A COMPONENTELOR UNUI CALCULATOR

2.1. Circuite logice -------------------------------- -------------------------------- --------------------- 4


2.1.1 Pori logice. CLC. CLS -------------------------------- -------------------------------- ------------------------------ 4
2.1.2 CLC aritmetice -------------------------------- -------------------------------- -------------------------------- -------- 6
2.1.2.1 CLC sumator -------------------------------- -------------------------------- -------------------------------- ------- 7
2.1.2.2 CLC scztor -------------------------------- -------------------------------- -------------------------------- ------10
2.1.2.3 CLC sumator cu comutare -------------------------------- -------------------------------- ---------------------- 12
2.1.3 CLC decodoare -------------------------------- -------------------------------- -------------------------------- ------14
2.1.4 CLC multiplexoare -------------------------------- -------------------------------- -------------------------------- --15
2.1.5 CLS bistabile -------------------------------- -------------------------------- -------------------------------- --------- 17
2.1.6 Circuite integrate -------------------------------- -------------------------------- -------------------------------- ----22
2.2. Registre -------------------------------- -------------------------------- --------------------------- 25
2.2.1 Registre de microoperaie -------------------------------- -------------------------------- -------------------------- 25
2.2.1.1 Registru cu ncrcare paralel -------------------------------- -------------------------------- ------------------ 25
2.2.1.2 Registru de deplasare -------------------------------- -------------------------------- ---------------------------- 26
2.2.1.3 Numrtoare binare -------------------------------- -------------------------------- ------------------------------ 28
2.2.1.4 Registru de incrementare -------------------------------- -------------------------------- ------------------------ 29
2.2.2 Transferul datelor din regitri pe magistral -------------------------------- -------------------------------- ----30

3
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Un sistem de calcul modern este un sistem digital, un ansamblu de componente digitale


care concur la prelucrarea datelor i la executarea instruciunilor primite. Aceste componente
constau din circuite logice, grupate n componente aritmetice, decodoare, regitrii .a. Conectate
la magistralele sistemului, aceste componente interacioneaz i astfel, ndeplinesc misiunea
primit de la utilizator.
In capitolul de fa vom decrie aceste componente interne al nivel logic-digital.

3.1. Circuite logice

3.1.1 Pori logice. CLC. CLS


Informaia binar este reprezentat n sistemul de calcul digital prin cantiti fizice,
numite semnale, care se transmit conform cu construcia intern a fiecrei componente. Cele mai
simple semnale electrice sunt de tip on / off.
Pentru descrierea funcionrii calculatorului este util s construim pentru componentele
de baz traseul semnalelor electrice, adic s prezentm componentele respective prin circuitele
logice interne.
Semnalele electrice sunt date de anumite tensiuni i se regsesc n sistem n una din dou
stri posibile. Aceste stri corespund valorilor unei variabile binare, adic 0 sau 1. De exemplu,
un SC particular poate lucra cu o tensiune de 3V pentru starea corespunztoare valorii 1 i o
tensiune de 0.5V pentru starea corespunztoare valorii 0. In acest caz, intrrile n CLC recunosc
tensiuni de 0.5V i 3V, iar la ieire circuitul rspunde cu o tensiune egal tot cu una dintre aceste
valori.
Pentru buna nelegere a celor ce urmeaz este util s introducem aici cteva noiuni.
Dac notm B2 = {0,1} i B2n = B2xB2x...xB 2 atunci sunt imediate urmtoarele definiii:
Definiia 1. Se numete funcie logic o aplicaie f : B2n > B2m.
Definiia 2. Dac m = 1 atunci funcia logic se numete scalar. Altfel, spunem c
avem o funcie logic vectorial.
Reprezentarea unei funcii logice se poate da prin tabel de valori (tabel de adevr), prin
expresie logic sau prin circuitul logic asociat.
In practic se remarc unele funcii, numite funcii logice elementare: I LOGIC
(conjuncia), SAU LOGIC (disjuncia), NU LOGIC (negarea sau complementarea). Circuitele
logice asociate acestor funcii se numesc pori logice elementare.
Convenim s notm conjuncia multiplicativ, disjuncia aditiv i negarea prin operatorul
apostrof.
Tabelele de valori pentru aceste funcii sunt:

a b ab a b a+b a a
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1

4
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Caracterizarea funciilor logice elementare este dat n tabelul urmtor:

Nume Simbol grafic Expresie logic

a
x x=a b
I LOGIC b
sau x = a b

a
x
SAU LOGIC b x=a+b

NU LOGIC a x x = a

Pe lng porile logice elementare, reprezentarea cu circuite apeleaz la porile logice ale
unor funcii uzuale. Acestea sunt: NAND, NOR, XOR i NXOR, definite i caracterizarte
conform cu urmtorul tabel:

Nume Simbol grafic Expresie logic

NAND
a
i nu x x = (a b)
b

NOR
a
x
sau nu b x = (a + b)

XOR a x = ab + ab =
x
sau exclusiv b =ab
(anticoinciden)
NXOR
a x
NOR exclusiv x = ab + ab =
b
(echivalen) = (a b)
(coinciden)

Funciile uzuale introduse anterior sunt definite de urmtoarele tabele de valori:

5
ARHITECTURA CALCULATOARELOR Anca Vasilescu

a b (a b) a b (a+b) a b ab a b (a b)
0 0 1 0 0 1 0 0 0 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0
1 0 1 1 0 0 1 0 1 1 0 0
1 1 0 1 1 0 1 1 0 1 1 1
Pentru simplificarea funciilor logice trebuiesc cunoscute un minim de identiti din
algebra boolean:

(1) a+0=a (1) a 0=0


(2) a+1=1 (2) a 1=a
(3) a+a=a (3) a a=a
(4) a + a = 1 (4) a a = 0
(5) a+b=b+a (5) ab = ba
(6) a + (b + c) = (a + b) + c (6) a(bc) = (ab)c
(7) a(b + c) = ab + ac (7) a + bc = (a + b)(a + c)
(8) (a + b) = ab (8) (ab) = a + b
(9) (a) = a

Definiia 3. Dac o funcie este reprezentat prin circuit logic atunci argumentele funciei
sunt intrri n circuit, iar valorile funciei, pentru fiecare combinaie a valorilor de intrare,
reprezint ieirile din circuit.
Definiia 4. Un circuit logic combinaional (CLC) este un circuit logic n care valorile
de pe ieiri depind numai de valorile de intrare n circuit. Altfel, dac ieirile depind i de intrri
i de strile intermediare ale componentelor interne ale circuitului, atunci avem un circuit logic
secvenial (CLS).
Prin convenie, un circuit logic combinaional cu n intrri i m ieiri se reprezint astfel:
1
1 2
2
.
.
CLC .
.
n . . m

In paragrafele urmtoare vom detalia analiza unor circuite logice care se remarc prin
importana pe care o au n sistemele de calcul.

3.1.2 CLC aritmetice


Pentru efectuarea operaiilor aritmetice sistemul de calcul este prevzut cu componente
specializate care alctuiesc unitatea aritmetico-logic, UAL. Structura intern a acestor
componente este dat de circuite logice combinaionale construite astfel nct s determine la
ieire rezultatul operrii valorilor de intrare.
In acest paragraf ne referim la componentele UAL pentru efectuarea operaiilor
aritmetice.

6
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.1.2.1 CLC sumator


Fie dou numere naturale A i B date n reprezentare binar pe n poziii prin:
A = anan 1a2a1a0 i
B = b nbn 1b2b1b0.
Observaie. Dac cifrele semnificative ale unuia dintre numere nu ocup toate cele n
poziii atunci acestea se ncarc prin aliniere la dreapta i zona neocupat se ncarc cu zerouri.
Notm cu S suma celor dou numere A i B. Reprezentarea binar a lui S este S = snsn
1 s 2 1 0.
s s
Scopul acestui paragraf este s construiasc un circuit logic combinaional care s aib ca
intrri valorile cifrelor binare ale operanzilor i ca ieiri cifrele binare ale sumei, numit CLC
sumator total. Schematic, acesta se reprezint astfel:

bn an bn-1 an-1 b1 a1 b0 a0

T n-1 T n-2 T1 T0
+
+ + ...
+ 2
Tn sn sn-1 s1 s0

Am notat cu Ti, i = 0, 1,n-1,n cifra de transport de la rangul i la rangul i + 1. Deoarece


cifra de transport de la ultimul rang, T n, face parte din rezultat, ieirea aceasta s-a legat la mas.
In consecin, ea va fi citit ca i cifr rezultat mpreun cu cifrele s 0, s1, , s n ale sumei S.
innd cont de ordinea n care se execut operaiile aritmetice, circuitul sumator
reprezentat n figura anterioar este un sumator secvenial cu ncrcare paralel.
In reprezentarea de mai sus se disting dou tipuri de circuite, i anume:
a) circuit de adunare cu dou intrri i dou ieiri, numit circuit semisumator i
b) circuit de adunare cu trei intrri i dou ieiri, numit circuit sumator complet.
Avem circuit semisumator pentru operare pe rangul zero, n care se adun cifrele
operanzilor i rezult cifra sumei i cifra de transport. In rest, pentru operarea pe celelalte
ranguri, avem circuite sumatoare complete, n care se adun cifrele operanzilor cu cifra de
transport de la rangul anterior i rezult cifra sumei i cifra de transport la rangul urmtor.
a) Circuitul semisumator se reprezint schematic astfel:

b0 a0

T0
+
2

s0

Fiecare ieire corespunde unei funcii logice. Pentru descrierea funcionrii circuitului
vom determina mai nti expresiile logice ale acestor funcii.
Tabla adunrii n baza 2 determin urmtorul tabel de valori pentru funciile s 0 i T 0:

7
ARHITECTURA CALCULATOARELOR Anca Vasilescu

a b a+b a0 b0 s0 T0
0 0 0 0 0 0 0
0 1 1 => 0 1 1 0
1 0 1 1 0 1 0
1 1 10 1 1 0 1
De aici putem deduce urmtoarele expresii logice:
s0 = a0b0 + a0b0 = a 0 b0 i
T0 = a 0b0.
Corespunztor, circuitul logic semisumator se reprezint prin urmtoarele pori logice:
a0 s0
b0
T0

b) Circuitul sumator complet pentru adunarea cifrelor binare de rang i se reprezint


schematic astfel:
bi ai

Ti T i-1
+
si

Pentru descrierea funcionrii circuitului vom proceda ca i n cazul circuitului


semisumator. Pentru nceput, determinm expresiile logice ale funciilor s i i T i de ieire.
Avem urmtorul tabel de valori pentru funciile s i i T i:

ai bi Ti-1 si Ti
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
De aici putem deduce urmtoarele expresii logice:
si = a ibiTi-1 + aibiTi-1 + aibiTi-1 + aibiTi-1 =
= (aibi + aibi) T i-1 + (a ibi + aibi) Ti-1 =
= (ai bi)T i-1 + (a i bi) Ti-1 =
= Ti-1 (ai bi)
i
8
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Ti = aibiTi-1 + aibiTi-1 + aibiTi-1 + aibiTi-1 =


= (aibi + aibi) T i-1 + aibi (Ti-1 + T i-1) =
= (ai bi) T i-1 + aibi =
= aibi + T i-1(ai bi).
Corespunztor, circuitul logic sumator complet se reprezint prin urmtoarele pori
logice:
ai b i
ai
bi
T i-1 si

Ti
ai b i

Pentru a reprezenta circuitul sumator total mai avem un singur pas, care const n
determinarea unei expresii pentru T i care s nu fie recursiv.
Notm
Pi := ai bi, () i= 0,1,2,, n i
Gi := aibi, () i= 0,1,2,, n.
Cu aceste notaii, sunt imediate urmtoarele relaii:
s0 = P 0 , T 0 = G 0 ,
i
T 1 = G 1 + P 1 T0 = G 1 + P 1G 0 ,
T 2 = G 2 + P 2 T1 = G 2 + P 2G 1 + P 2P 1 G 0 ,
T 3 = G 3 + P 3 G2 + P 3P 2 G1 + P 3 P2 P1 G 0 .
De aici, putem anuna c, pentru orice i, este verificat relaia
Ti = G i + P iG i -1 + P iPi -1G i -2 + + P iPi 1 P1G0.
Evident, relaia este complet justificat dup aplicarea unei inducii matematice.
Folosind aceast relaie pentru Ti, suntem acum n msur s construim circuitul sumator
total. Pentru simplitatea reprezentrii vom alege n=3, adic situaia n care fiecare operand are 4
poziii binare.

Expresiile logice pentru cifrele sumei sunt:


s 0 = P 0;
s1 = G 0 P 1 ;
s2 = (G 1 + P 1G0) P2;
s3 = (G 2 + P 2G1 + P 2P1G0) P3.

9
ARHITECTURA CALCULATOARELOR Anca Vasilescu

G0 P0 G1 P1 G2 P2 G3 P3
a0
b0 s0

s1
a1
b1

s2
a2
b2

s3
a3
b3

G0 P0 G1 P1 G2 P2 G3 P3

3.1.2.2 CLC scztor


Urmnd paii construciei din paragraful anterior, vom descrie aici circuitul logic
combinaional care determin diferena a dou numere naturale.
Fie cele dou numere naturale A i B date n reprezentare binar pe n poziii prin:
A = anan 1a2a1a0 i
B = b nbn 1b2b1b0.

Notm cu D diferena celor dou numere A i B. Reprezentarea binar a lui D este D =


dndn 1d2d1d0.
Circuitul logic combinaional scztor are ca intrri valorile cifrelor binare ale
operanzilor i ca ieiri cifrele binare ale diferenei.
Schematic, acesta se reprezint astfel:

bn an bn-1 an-1 b1 a1 b0 a0

I n-1 I n-2 I1 I0

...
2
In dn dn-1 d1 d0

10
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Am notat cu I i, i = 0, 1,n-1,n cifra de mprumut de la rangul i+1 la rangul i. Deoarece


cifra de mprumut pentru ultimul rang, I n, face parte din rezultat, ieirea aceasta s-a legat la mas.
In consecin, ea va fi citit ca i cifr rezultat mpreun cu cifrele d 0, d 1, , d n ale diferenei D.
In reprezentarea de mai sus se disting dou tipuri de circuite, i anume:
a) circuit de scdere cu dou intrri i dou ieiri, numit circuit semiscztor i
b) circuit de scdere cu trei intrri i dou ieiri, numit circuit scztor complet, cu
precizrile introduse la circuitul sumator.
a) Circuitul semiscztor se reprezint schematic astfel:
b0 a0

I0

2

d0

Pentru descrierea funcionrii circuitului vom determina expresiile ale funciilor logice de
ieire, I 0 i d0.
a0 b0 d0 I0
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
De aici putem deduce urmtoarele expresii logice:
d0 = a0b0 + a0b0 = a 0 b0 i
I 0 = a 0 b 0.
Corespunztor, circuitul logic semiscztor se reprezint prin u rmtoarele pori logice:
a0 d0
b0
I0

b) Circuitul scztor complet pentru scderea cifrelor binare de rang i se reprezint


schematic astfel:

bi ai

Ii I i-1

di

Expresiile logice ale funciilor de ieire d i i I i sunt date de urmtorul tabel de valori.
Calculul const n a i Ii 1 bi i rezult cifra d i a diferenei i mprumutul I i.

11
ARHITECTURA CALCULATOARELOR Anca Vasilescu

ai bi I i-1 di Ii
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
De aici putem deduce urmtoarele expresii logice:
di = a ibiI i-1 + aibiIi-1 + aibiIi-1 + aibiI i-1 =
= (aibi + aibi) I i-1 + (a ibi + aibi) Ii-1 =
= (ai bi)I i-1 + (a i bi) Ii-1 =
= I i-1 (ai bi)
i
I i = aibiI i-1 + aibiIi-1 + aibiI i-1 + aibiI i-1 =
= (aibi + aibi) I i-1 + aibi (Ii-1 + I i-1) =
= (ai bi) I i-1 + aibi =
= aibi + I i-1(ai bi).
Corespunztor, circuitul logic scztor complet se reprezint prin urmtoarele pori
logice:
ai b i
ai
bi
I i-1 di

Ii
aib i

3.1.2.3 CLC sumator cu comutare


Expresiile logice pentru funciile de ieire din circuitele aritmetice anterioa re au fost:
s0 = a 0 b 0 = d 0
si = T i-1 (ai bi), () i= 1..n
di = I i-1 (ai bi), () i= 1..n
i, respectiv,
T0 = a 0b0
I 0 = a0b0
Ti= aibi + T i-1(ai bi), () i= 1..n
12
ARHITECTURA CALCULATOARELOR Anca Vasilescu

I i= aibi + I i-1(ai bi), () i= 1..n.


Analiznd aceste formule i circuitele asociate lor, se observ o mare asemnare i faptul
c celula de scdere are n plus dou pori NU care genereaz termenii a i i (a i bi).
Pornind de la aceast observaie, se pune problema realizrii unui circuit capabil s
efectueze att adunri ct i scderi.
Construirea acestui circuit se bazeaz pe proprietatea de comutare a porii XOR, care
const n urmtoarea afirmaie. Dac se consider o poart XOR cu o intrare de date notat x i
cu a doua intrare notat c atunci funcionarea ei este dat de urmtoarea tabel de valori:

x c y=xc
0 0 0
0 1 1
1 0 1
1 1 0
i poate fi interpretat prin:
x, c 0
y = .
x , c 1
Astfel, putem denumi intrarea c ca fiind intrare de comutare (sau de condiie) deoarece
valoarea ei este cea care decide dac pe ieirea din poarta XOR avem valoarea de pe intrare sau
complementara (negarea) ei.
Cu acestea, se poate construi un circuit care s efectueze att adunare ct i scdere, pe
care l vom numi circuit sumator cu comutare. Dac pe intrarea c punem valoarea 0 atunci
circuitul funcioneaz ca sumator, iar pentru c = 1, ca scztor.
Semnificaiile pentru intrarea T i-1 / I i-1 i ieirile si / di, Ti / I i trebuiesc citite la
numrtor, respectiv la numitor. Astfel, dac c=0 atunci valoarea pus pe intrarea Ti-1/I i-1
reprezint cifr de transport (T i-1), iar pentru c=1 reprezint cifr de mprumut (I i-1). In
consecin, valorile pe ieiri se corespund astfel: s i i Ti pentru c=0 i respectiv di i I i pentru
c=1.
Intrarea de comutare este folosit de dou ori i anume pentru comutarea valorii lui a i i a
valorii ai bi. Prin comutarea valorii lui a i se asigur c, pentru c=0, la ieirea din poarta XOR
avem ai, iar pentru c=1, la ieirea din poarta XOR avem a i. In acest fel, formula pentru valoarea
depus pe ieirea a doua folosete pe ai, dac c=0 i pe ai, dac c=1. Acest mod de calcul este
corect i respect formulele logice pentru T i (T i = aibi + ), respectiv I i (I i = aibi + ).
Pentru operarea pe rangul i, acest circuit va consta din urmtoarele pori logice:
ai
bi si / d i
T i-1 / I i-1

(ai c)bi
(0/1)c
Ti / I i
(ai bi) c

13
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3.1.3 CLC decodoare


In sistemul de calcul informaia este reprezentat prin codificare binar. Un cod binar de
n bii poate s reprezinte pn la 2 n informaii codificate distincte.
Un decodor este un circuit logic combinaional care convertete informaia dat binar pe
n intrri n cele 2n ieiri posibile. Dac, dintre cele n intrri, unele sunt invalidate atunci
decodorul va avea mai puin de 2 n ieiri.
S considerm un decodor cu trei intrri, a, b, c, toate valide. Rezult c acesta va avea 8
= 23 ieiri. Algebric, funciile pentru cele 8 ieiri sunt date de expresiile celor 8 termeni canonici
de tip produs: abc, abc, abc, abc, abc, abc, abc, abc.
Un astfel de decodor se mai numete de tip 3x8.
a a b b c c

D0 = abc
a
D1 = abc

b D2 = abc

D3 = abc
c
D4 = abc

D5 = abc

D6 = abc

D7 = abc

a a b b c c

Deoarece termenii canonici implementai pe ieiri sunt disjunctivi, rezult c, indiferent


de combinaia valorilor pe intrri, o singur ieire va avea valoare 1 logic, celelalte avnd
valoarea 0 logic.
O aplicaie imediat a acestui decodor este conversia numerelor din binar n octal.
Concret, reprezentarea binar dat pe intrarea n decodor corespunde cifrei octale egal cu rangul
ieirii care are valoarea 1 logic.
abc D0 D1 D2 D3 D4 D5 D6 D7
000 1 0 0 0 0 0 0 0
001 0 1 0 0 0 0 0 0
010 0 0 1 0 0 0 0 0
011 0 0 0 1 0 0 0 0
100 0 0 0 0 1 0 0 0
101 0 0 0 0 0 1 0 0
110 0 0 0 0 0 0 1 0
111 0 0 0 0 0 0 0 1

14
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Pentru controlul funcionrii unui decodor, de multe ori acesta este prevzut cu o intrare
de validare (Enable). Dac pe aceast intrare avem 0 logic atunci circuitul nu funcioneaz
adic, toate ieirile sunt pe 0. Dac pe intrarea Enable avem 1 logic atunci circuitul funcioneaz
ca un decodor fr validare.
a a b b c c

D0 = abc
a
D1 = abc

b D2 = abc

D3 = abc
c
D4 = abc

D5 = abc

D6 = abc

D7 = abc

Enable a a b b c c

3.1.4 CLC multiplexoare


Un multiplexor este un circuit logic combinaional care primete informaie binar de pe
una din cele 2n linii de date de intrare i o direcioneaz spre ieirea sa unic. Linia de date este
selectat prin n linii de selecie (linii de adres).
Un multiplexor de tip 2nx1 are 2n linii de date de intrare i n linii de selecie, ale cror
combinaii de bii determin care dintre intrrile de pe liniile de date este selectat pentru ieirea
Y.
Selecia intrrii se face conform cu urmtoarea tabel (pe coloana a patra am trecut
monoamele elementare care definesc selectarea ieirii):

s1 s0 Y
0 0 I0 s1s0
0 1 I1 s1s0
1 0 I2 s1s0
1 1 I3 s 1 s0

In figura urmtoare considerm un multiplexor de tip 4x1. Acest multiplexor are 6 intrri
= 4 de date + 2 de selecie i o ieire.

15
ARHITECTURA CALCULATOARELOR Anca Vasilescu

I0 I1 I2 I3 s 0 s0 s1 s1
I0s1s0
I0
I1 I1s1s0
I2
Y
I3
I2s1s0

I 3 s1 s0

s0

s1

I0 I1 I2 I3 s 0 s0 s1 s1

Observaii. Datorit funciei de a selecta una dintre intrrile n circuit, un multiplexor se


mai numete i selector de date (data selector). Abrevierea pentru un multiplexor este MUX.

16
ARHITECTURA CALCULATOARELOR Anca Vasilescu

2.1.5 CLS bistabile


Cele mai multe dintre sistemele de calcul, pe lng circuitele combinaionale (CLC) au
nevoie (n special pentru componentele de memorare) i de circuite logice secveniale (CLS).
Dintre acestea, cele mai folosite sunt CLS sincrone sau cu sincronizare n timp. Un CLS sincron
lucreaz cu semnale care modific coninutul zonelor de memorie numai la momente de timp
discrete, bine determinate. Sincronizarea este asigurat de un generator de impulsuri de tact (de
ceas) care pune ciclic pe intrarea de tact valorile 0 i 1.
Un bistabil este o structur de memorare bazat pe CLS sin crone. Un bistabil memoreaz
un bit de informaie.
Un bistabil i menine starea binar curent pn cnd primete un impuls de ceas care
intr n ansamblul de pori logice i determin schimbarea de stare (eventual, schimbarea valorii
memorate). Trecerea dintro stare n alta se face numai la primirea unui impuls de tact extern.
Dac se ine cont de momentul n care se face efectiv schimbarea de stare a bistabilului
(schimbarea valorii memorate), atunci n [Tanenbaum, pag. 134] se deosebesc dou exemple de
circuite bistabile: circuite bistabile (engl., flip-flop) i CBB adic circuite basculante bistabile
(engl., latch). Pentru un bistabil schimbarea de stare are loc n timpul schimbrii valorii logice pe
intrarea de ceas, n timp ce pentru un CBB schimbarea de stare are loc numai cnd valoarea pe
intrarea de ceas este deja schimbat. Cu alte cuvinte, un bistabil face schimbarea de stare pe
durata transmiterii semnalului de tact (engl., edge-trigger), n timp ce un CBB face schimbarea
de stare cnd semnalul de tact a ajuns la nivel (engl., level-trigger).
In figura urmtoare dm reprezentarea standard propus de Tanenbaum pentru: (a)
bistabil cu tranziie pe front cresctor (schimbarea de stare are loc cnd valoarea de pe intrarea
de ceas trece din 0 n 1); (b) bistabil cu tranziie pe front descresctor (schimbarea de stare are
loc cnd valoarea de pe intrarea de ceas trece din 1 n 0); (c) CBB cu ncrcare pe 1 (schimbarea
de stare are loc cnd valoarea de pe intrarea de ceas este 1); (d) CBB cu ncrcare pe 0
(schimbarea de stare are loc cnd valoarea de pe intrarea de ceas este 0).

>Clock >Clock Clock Clock

(a) (b) (c) (d)


In cele ce urmeaz vom face referiri concrete la bistabilii cu tranziie pe frontul cresctor.
Bistabilii se difereniaz prin numrul de intrri i prin felul n care valorile de intrare
influeneaz starea bistabilului. Cele mai folosite tipuri de bistabili sunt: bistabil de tip SR;
bistabil de tip D; bistabil de tip JK; bistabil de tip T.
Pentru nceput vom prezenta aceste circuite n cazul asincron, urmnd ca, n final, s
prezentm i modelul sincron pentru bistabilul de baz, SR.
Bistabilul de tip SR are trei intrri notate respectiv cu: S pentru Setare, R pentru
Resetare i C pentru intrarea de ceas i o ieire, notat Q (quit). Auxiliar, un astfel de bistabil
poate avea o ieire suplimentar cu valoare egal cu ieirea principal negat.
Simbolic, acest bistabil se reprezint astfel:

17
ARHITECTURA CALCULATOARELOR Anca Vasilescu

S
Q
>C
Q'
R

Intrarea de ceas este marcat cu caracterul >. Un ceas este un circuit care emite o serie
de pulsuri cu o durat de puls precis i cu un interval precis ntre pulsuri succesive. Intervalul de
timp ntre fronturile corespunztoare a dou pulsuri succesive se numete durat de ciclu (engl.,
clock cycle time). Frecvenele de puls (numrul de pulsuri n unitatea de timp) sunt n general ntre 1 i
500 MHz, corespunznd perioadei de ceas de la 1000 ns la 2 ns.
Porile logice care asigur funcionarea acestui bistabil sunt dou pori NOR
interconectate. Prin interconectare nelegem c ieirile sunt repuse pe intrri prin bucle de
reacie. In figura urmtoare buclele de reacie sunt figurate cu linie punctat.

S Q

R Q

Notm cu Qt valoarea pe ieirea Q a bistabilului la momentul t i cu Qt+1 valoarea pe


aceeai ieire la momentul urmtor, t+1. Cu alte cuvinte, Q t d starea bistabilului nainte de
aplicarea semnalelor S i R pe intrare, iar Q t+1 d starea bistabilului dup aplicarea semnalelor
respective.
Datorit existenei buclelor de reacie, rezult c starea Q t+1 depinde de intrrile S i R,
dar i de starea anterioar, Q t.
Conform legrii porilor logice n reprezentarea de mai sus, expresia logic pentru Q t+1
este
Qt+1 = (R + (S + Q t)) = R (S + Q t) = RS + RQ t.
Aceast expresie determin urmtoarea tabel de valori pentru schimbarea de stare (Q t >
Qt+1) a bistabilului de tip SR:

S R Qt Qt+1
0 0 0 0 fr modificare de stare
0 0 1 1 (Qt+1 coincide cu Q t)
0 1 0 0 punere pe 0 (resetare)
0 1 1 0
1 0 0 1 punere pe 1 (setare)
1 0 1 1
1 1 0 0(*) stare nedeterminat
1 1 1 0(*) (comenzi interzise)

18
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Observaie. Pentru intrarea (1,1), funcionarea teoretic a circuitului determin valoarea


0 pentru Qt+1, indiferent de starea anterioar a bistabilului, Qt. Cu toate acestea, practic, datorit
ntrzierilor care apar n sistem la transmiterea semnalelor, starea Q t+1 este nedeterminat (nu se
stabilizeaz, chiar dup mai multe reveniri pe buclele de reacie). In acest caz spunem c
funcionarea bistabilului este ambigu.
Din tabelul anterior rezult cum depinde starea urmtoare Q t+1 de valorile puse pe
intrrile n bistabil, S i R.
S R Qt+1
0 0 Qt fr modificare de stare
0 1 0 resetare = punere pe 0
1 0 1 setare = punere pe 1
1 1 ? situaie imprecis (nedeterminat)
Din afirmaiile anterioare se poate trage concluzia c un bistabil de tip SR nu
funcioneaz ntotdeauna corect. De aceea, se impune stabilirea unei relaii pe care trebuie s o
verifice valorile puse pe intrrile S i R astfel nct bistabilul s nu intre ntr-o stare
nedeterminat. Aceast ecuaie este
SR = 0
i ea asigur c cel puin una dintre valorile de intrare este 0. Cu alte cuvinte, se evit tocmai
situaia n care ambele intrri sunt pe 1 logic.
Bistabilul de tip D (Data) este uor modificat fa de bistabilul SR. Acesta are o
singur intrare de date (D), intrarea de tact (C) i ieirile identice cu tipul SR. Pe intrarea D se
insereaz un inversor, astfel c se obin dou direcii care vor corespunde intrrilor S i R ale
tipului SR.
Simbolul este:

D
Q
>C
Q

Un bistabil de tip D se obine din SR prin urmtoarea modificare:

S
D Q
>C
Q
R

Din aceast modalitate de a lega intrarea D la intrrile S i R rezult:


a avea intrarea D n 0 logic este echivalent cu a avea 0 pe intra rea S i 1 pe intrarea R;
a avea intrarea D n 1 logic este echivalent cu a avea 1 pe intrarea S i 0 pe intrarea R.
Se observ c oricare ar fi valoarea pus pe intrarea n bistabilul de tip D, acesta
funcioneaz corect, deoarece este ntotdeauna verificat relaia
SR = 0.

19
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Funcionarea bistabilului de tip SR determin urmtoarea tabel de funcionare pentru


bistabilul de tip D:
D Qt+1
0 0 resetare = punere pe 0
1 1 setare = punere pe 1
Bistabilul de tip JK are dou intrri de date, J i K, intrarea de tact, C i ieirile identice
cu tipul SR.

J
Q
>C
Q
K

Din punctul de vedere al circuitelor interne, un bistabil JK este unul SR completat cu


dou pori AND i dou linii de reacie total. In figurile urmtoare liniile de reacie total sunt
marcate cu linie punctat. Prezentm structura bistabilului de tip JK la dou nivele de detaliere:

J S Q
(S) Q
>C
(R) Q'
K Q
R

J Q
(S)

(R)
K Q

Aceast structur intern determin schimbarea de stare Q t > Qt+1 conform cu urmtorul
tabel:
J K Qt Qt+1
0 0 0 0 fr modificare de stare
0 0 1 1 (Qt+1 coincide cu Q t)
0 1 0 0 punere pe 0 (resetare)
0 1 1 0
1 0 0 1 punere pe 1 (setare)
1 0 1 1
1 1 0 1 trecere n starea
1 1 1 0 complementar

20
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Corespunztor, tabela de funcionare pentru bistabilul de tip JK este urmtoarea:

J K Qt+1
0 0 Qt Fr modificare de stare
0 1 0 Resetare = punere pe 0
1 0 1 Setare = punere pe 1
1 1 Qt Trecere n starea
complementar
Observaie. Despre bistabilul de tip JK putem spune c este primul model de circuit
secvenial veritabil. Aceasta deoarece, cnd avem (1,1) pe intrrile J i K, starea urmtoare Q t+1
se poate determina numai dac se cunoate starea anterioar Q t.
Bistabilul de tip T (Toggle = piron, crj) este un model de bistabil care funcioneaz n
doi timpi. Aceast afirmaie va fi pe deplin neleas dup prezentarea funcionrii circuitului.
Simbolul de reprezentare este:

T
Q
>C
Q

Un bistabil de tip T se obine din unul JK prin legarea intrrilor J i K la aceeai intrare T,
astfel:
J
Q
T >C
Q
K

Din aceast construcie rezult c bistabilul de tip T are dou variante de funcionare,
care coincid cu tipul JK pentru J = K = 0 i J = K = 1:

T Qt+1
0 Qt Fr modificare de stare
1 Qt Trecere n starea
complementar
Observaie. Ct timp pe intrarea T avem 1 logic, circuitul intr n starea complementar
a strii curente i, apoi, la urmtoarea schimbare de stare, revine n starea iniial. De aceea, se
spune despre acest bistabil c funcioneaz n doi timpi.
In ncheierea paragrafului referitor la bistabili prezentm modelul sincron pentru
bistabilul de tip JK. Se va vedea c acesta completeaz modelul asincron cu dou pori SI care
preiau valoarea logic pus pe intrarea de tact, C.

21
ARHITECTURA CALCULATOARELOR Anca Vasilescu

(S)
J Q

(R)
K Q

In aceast reprezentare am pus n eviden i seciunile asincron i sincron ale


circuitului, care corespund celor dou componente de baz: un CLC i un CLS.

J Q
K CLC CLS Q
>

3.1.6 Circuite integrate


In anii 50 se descoper proprietile semiconductoare ale siliciului i apar astfel primele
dispozitive semiconductoare, numite tranzistoare. Generaia a treia de calculatoare (anii 1964-
1981) folosete circuite integrate obinute prin imprimarea tranzistorilor pe cipuri de siliciu.
Ulterior, perfecionarea circuitelor integrate a constat n creterea densitii de componente
incluse pe un cip.
Componentele digitale ale unui sistem de calcul sunt realizate cu circuite logice integrate.
Un circuit integrat (CI) este format dintr-un semiconductor de siliciu, de dimensiuni foarte
reduse, numit chip, care conine componentele porilor logice. Mai multe pori logice sunt
interconectate in interiorul chip-ului astfel nct s formeze circuitul cerut. Chip-ul este nchis
ntr-o carcas de ceramic sau de material plastic, iar conexiunile sunt sudate cu conductoare fine
de aur la pinii de ieire pentru a forma circuitul integrat. Numrul pinilor poate varia de la 14
pini la un pachet integrat mic, pn la 1000 sau mai muli la un circuit mare.
Conexiunile pastilei de siliciu pot fi la alte circuite, la sursele de tensiune, la masa
electric. In funcie de tensiunea care codific valorile logice, circuitul integrat lucreaz n logic
pozitiv sau n logic negativ. Un circuit lucreaz n logic pozitiv dac valoarea 1 logic
corespunde unei tensiuni pozitive (3V, 12V, 15V), iar 0 logic corespunde unui nivel cobort de
tensiune (0V, 12V, respectiv 15V). Un circuit lucreaz n logic negativ dac valoarea 1
logic corespunde unui novel sczut de tensiuine (0V, 12V, 15V), iar 0 logic corespunde unui
nivel ridicat de tensiune (3V, 12V, 15V).
O dat cu mbuntirea tehnologiilor de realizare a circuitelor integrate, a crescut
considerabil i numrul porilor care pot fi implementate pe un acelai chip (densitatea de
integrare). Dup acest criteriu, diferena ntre chip-urile care au cteva pori i cele care au sute
de pori componente se face prin numele acestora. Astfel, avem urmtoarele clase: CI pe scar
joas, CI pe scar medie, CI pe scar larg i CI pe scar foarte larg. Scara de integrare se refer
la numrul de componente electronice pe unitatea de suprafa a circuitului integrat .
Dm n tabelul urmtor cteva caracteristici pentru aceste clase:

22
ARHITECTURA CALCULATOARELOR Anca Vasilescu

SSI Small Scale Integration mai puin de IN-OUT sunt conectate


10 pori direct la pinii circuitului
MSI Medium Scale Integration 10-200 pori folosite n decodoare,
sumatoare, regitri
LSI Large Scale Integration 200-cteva includ procesoare, chipuri
sute de pori de memorie, module
programabile
VLSI Very Large Scale Integration mii de pori dimensiuni mici, pre
redus, deci foarte folosite
n sistemele moderne.

Circuitele logice integrate se pot clasifica i dup tehnologia de fabricare, rezultnd


familii de circuite logice. Fiecare familie logic de circuite este reprezentat de un tip de circuit
pe baza cruia se dezvolt toate circuitele din acea familie. Comercial vorbind, structurile care s-
au impus sunt: CI de tip TTL (Transistor transistor logic), CI de tip ECL (Emitter coupled
logic) i CI de tip MOS (Metal oxide semiconductor).
Tehnologia principal de realizare a circuitelor integrate moderne este TTL logic
pozitiv cu 0V pentru 0 logic i 3V pentru 1 logic.
Caracterizarea acestor tipuri de circuite integrate poate fi fcut astfel:

TTL originea = DTL (diode transistor logic) tensiunea maxim aplicabil este
care implementa poarta NAND cu diode de 5V, iar valorile logice 0 i 1
i tranzistori; ulterior s-au nlocuit corespund pentru 0V i respectiv
diodele cu tranzistori i, de aceea 3.5V;
repetm cuvntul trazistor n denumire
ECL folosite n sisteme de vitez foarte mare tranzistorii opereaz ntr-o stare
(supercalculatoare, procesoare de nesaturat, condiie care
semnale) determin o ntrziere n
propagarea semnalului de maxim
1-2 nanosecunde;
MOS este un tip de CI care folosete
tranzistori unipolari, fa de TTL i ECL
care folosesc tranzistori bipolari.

In funcie de numrul valorilor logice recunoscute la terminalele unui circuit integrat


avem:
circuitele integrate cu dou valori logice aceste valori sunt 0 i 1; astfel de circuite sunt
circuitele TTL standard;
circuite integrate cu trei valori logice aceste valori sunt 0, 1 i Z (starea de nalt
impedan; astfel de circuite sunt circuitele TSL (engl., Three State Logic) care permit
conectarea de tip magistral (ieirile i intrrile mai multor pori logice pot fi conectate la
aceleai linii de semnal).

23
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezumat.
Acest paragraf are ca obiectiv principal definirea principalelor circuite logice care intr n
structura unui circuit elementar de memorie (bistabil), a unui registru (vezi paragraful al doilea)
i/sau n structura unei UAL elementare. Tipurile de circuite sunt prezentate gradat, de la simplu
la complex, aa cum se poate vedea i din lista de cuvinte cheie.
Pentru toate aceste prezentri teoretice de modele, n culegerea de probleme sunt date
exemple concrete de utilizare i interconectare a circuitelor. Structura culegerii de probleme
urmrete paragraf cu paragraf cursul, astfel nct studenii pot rezolva problemele pas cu pas, pe
msur ce sunt parcurse la curs elementele teoretice. Ultimul paragraf al culegerii de probleme
conine o serie de exemple de sintez, unele fiind chiar modele concrete de circuite interne ale
calculatorului.
Cuvinte cheie.
circuit logic
poart logic, poart logic elementar, poart logic uzual
CLC, CLC aritmetic (sumator, scztor, sumator cu comutare),
decodor, multiplexor
CLS, CLS bistabil (SR, D, JK, T)
circuit integrat

NOTIE

24
ARHITECTURA CALCULATOARELOR Anca Vasilescu

2.2. Registre
Un registru pstreaz temporar o informaie codificat binar.
Un registru este un ansamblu de bistabili (circuite basculante bistabile, CBB) i,
eventual, pori logice care realizeaz schimbrile de stare ale bistabililor. Grupul de bistabili care
formeaz registrul pot fi ncrcai simultan, sub aciunea unui impuls de tact unic.
Un registru de n bii are n bistabili i poate memora orice informaie reprezentabil pe n
bii. In acest caz spunem c registrul este de capacitate n, respectiv c n este lungimea
cuvntului registru. Porile logice au rolul de a controla cnd i cum o informaie nou este
transferat n registru.
Componentele unui sistem digital sunt complet definite de regitrii pe care i conin i de
operaiile care se execut asupra datelor lor. In calculatoarele moderne registrele sunt folosite ca
locaii de memorie rapid, pstrnd informaii care urmeaz s fie prelucrate. Informaiile
memorate pot fi: date, adrese, coduri de instruciune, operanzi, rezultate ale unor operaii,
informaii de stare etc. Prelucrarea datelor la nivel de registru poate consta n efectuarea unor
operaii sau transferul de date ntre registre.
Operaiile executate asupra datelor memorate n regitri se numesc microoperaii.
Exemple: ncrcare (serial sau paralel), deplasare (la stnga sau la dreapta), rotaie (spre stnga
sau spre dreapta), numrare, tergere.
Pentru executarea fiecreia dintre aceste microoperaii exist structuri bine determinate
ale regitrilor respectivi. In paragrafele urmtoare vom descrie structurile unora dintre aceti
regitri.

3.2.1 Registre de microoperaie

3.2.1.1 Registru cu ncrcare paralel


Funcia unui registru cu ncrcare paralel este de a prelua valorile logice puse pe
intrrile de date, simultan pentru toate poziiile binare i la primirea aceluiai impuls de ceas.
Acest registru const din patru bistabili de tip D, legai prin pori logice de cele patru
intrri de date I0, I1, I2, I3 i de intrarea de validare, Load.
Rolul intrrii Load este de a dirija preluarea datelor de pe intrrile I 0, I1, I2, I3 numai la
primirea unui impuls de tact. Dac pe intrarea Load avem 0 logic atunci intrrile de date sunt
inhibate i intrrile D n bistabili sunt conectate respectiv cu ieirile Q. Dac pe Load avem 1
logic atunci valorile depuse pe intrrile I 0, I1, I2, I3, sunt ncrcate n registru.
Valorile logice considerate a fi memorate n registru n fiecare moment sunt cele de
pe liniile A 0, A1, A 2, A3.
Structura unui astfel de registru este dat n figura urmtoare.
Bistabilul de tip D nu are variant de funcionare fr modificare de stare ci, la fiecare
impuls de tact primit, valoarea preluat de bistabil pe intrarea D determin urmtoarea stare la
ieire. Pentru a pstra valoarea la ieire nemodificat, ct timp nu se primete impuls de tact, este
necesar s meninem intrarea D egal cu valoarea curent de pe ieire. Aceast funcionare este
asigurat de conexiunile de reacie, care leag fiecare ieire Q la intrarea corespunztoare n
poart logic I i, mai departe la intrarea D a aceluiai bistabil.

25
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Load

D Q A0
I0
>C

D Q A1
I1
>C

D Q A2
I2
>C

D Q A3
I3
>C

Clock
Impulsul de tact se aplic pe intrarea Clock conform cu frecvena generatorului de tact.
Cu toate acestea, dac circuitul este dotat cu o intrare de validare de tip Load, atunci ea este cea
care decide dac urmtorul impuls de ceas va determina ncrcarea simultan a datelor depuse pe
intrrile de date sau preluarea pe liniile de reacie a valorilor curente memorate n registru. Cu
alte cuvinte, intrarea Load decide dac registrul primete informaie nou sau informaia
memorat rmne nemodificat.

3.2.1.2 Registru de deplasare


Un registru capabil s deplaseze, adic s translateze cu o poziie informaia memorat de
bistabilii si se numte registru de deplasare. In funcie de construcia registrului, operaia de
mutare (shift) se poate face spre stnga, spre dreapta sau n ambele direcii.
Reprezentarea este:

Serial Input Serial Output


D Q D Q D Q D Q

>C >C >C >C

Clock

Se observ c ieirea dintr-un bistabil este intrare n urmtorul. In plus, funcionarea este
sincronizat prin faptul c toate intrrile de ceas sunt legate la aceeai surs. Astfel, toi bistabilii
vor primi la acelai moment impulsul de tact care determin deplasarea informaiei.

26
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Intrarea Serial Input conine informaia care se va memora n primul bistabil, iar ieirea
Serial Output va conine vechiul coninut al ultimului bistabil al registrului de deplasare analizat.
Detaliem acest tip de registru prezentnd n figura urmtoare structura intern a unui
registru pe 4 bii care poate executa sau o deplasare, sau o ncrcare paralel (simultan), n
funcie de valorile puse pe intrrile de selecie ale circuitului. Registrul const din patru
multiplexoare conectate la patru bistabili de tip D.

S0 S0
S1 S1 D Q A0

4x1 >C
0 MUX0
Serial Input 1
2
I0 3

S0
S1 D Q A1

4x1 >C
0 MUX1
1
2
I1 3

S0
S1 D Q A2

4x1 >C
0 MUX2
1
2
I2 3

S0
S1 D Q A3

4x1 >C
0 MUX 3
1
Serial Input 2
I3 3

Clock

Reamintim c valorile memorate n registru la un moment dat sunt cele de pe liniile A 0,


A1, A2, A3 i ele se modific numai simultan, la primirea unui nou impuls de tact. Cele dou
intrri Serial Input introduc valori noi n registru pe poziiile eliberate de operaia de deplasare.
Din schem se observ c:
fiecare MUX preia pe intrarea sa 0 valoarea curent din registru, transmis pe linia de reacie;

27
ARHITECTURA CALCULATOARELOR Anca Vasilescu

fiecare MUX preia pe intrarea sa 1 valoarea din locaia de rang cu 1 mai mic;
fiecare MUX preia pe intrarea sa 2 valoarea din locaia de rang cu 1 mai mare;
fiecare MUX preia pe intrarea sa 3 valoarea depus pe intrarea de date corespunztoare.
Aceast organizare este n concordan cu urmtoarea tabel de funcionare. In funcie de
valorile depuse pe intrrile de selecie S 0 i S1, avem:

S1 S0 Intrarea selectat de
fiecare MUX
0 0 0 Fr modificare de stare
0 1 1 Shift Right (down)
1 0 2 Shift Left (up)
1 1 3 Incrcare paralel

3.2.1.3 Numrtoare binare


O numrtoare este un registru care, la aplicarea impulsurilor de ceas, urmeaz o
succesiune predefinit de stri. Numrul de stri distincte definete modlul de numrare.
In particular, numrtoarele binare vor lucra pe secvene de valori binare. Aplicaiile
imediate ale unui registru numrtoare sunt:
contorizarea numrului de apariii ale unui eveniment;
cronometrarea necesar generrii semnalelor de control pentru secvenele de operaii de
executat n sistem.
In funcie de sensul de numrare, avem: numrtoare direct, numrtoare invers,
numrtoare reversibil, numrtoare ciclic.
Pentru o numrtoare binar pe 4 bii succesiunea de stri prin care trece este urmtoarea:
0000 > 0001 > 0010 > 0011 > 0100 > 0101 > 0110 > 0111 > 1000 > 1001 > 1010 >
1011 > 1100 > 1101 > 1110 > 1111.
Realizarea circuitului de numrare const n transcrierea cu pori logice a urmtoarei
observaii. Pentru a trece dintr-o stare n alta trebuie efectuate operaiile:
1. LSB (bitul cel mai puin semnificativ) se complementeaz;
2. fiecare dintre ceilali bii se complementeaz numai dac n configuraia anterioar a avut toi
biii de rang mai mic egali cu 1.
De aici rezult c acest registru trebuie s foloseasc bistabili care au posibilitatea de a
trece n starea complementar a strii curente, deci bistabili de tip JK sau T.
In figura urmtoare este reprezentat un registru de numrare pe patru bii.
Intrarea Count Enable este una de validare a funcionrii registrului, deci decide care sunt
impulsurile de tact care determin trecerea numrtoarei din starea curent n starea urmtoare.
Aa cum este construit circuitul, schimbarea de stare are loc cnd pe Count Enable avem 1 logic.
Conform cu operaia a doua care trebuie efectuat la orice schimbare de stare, valoarea
curent din fiecare locaie a registrului influeneaz valoarea ncrcat n fiecare dintre poziiile
de rang mai mare. Aceast proprietate este asigurat prin faptul c fiecare linie A i este legat n
cascad prin pori SI la intrrile n toi bistabilii de rang mai mare.

28
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Ieirea Output Carry are semnificaie de cifr de transport. Aceasta este folosit n
situaia n care configuraia curent este 1111 i numrtoarea ar trebui s treac n configuraia
urmtoare, 10000. Avnd numai patru bii, registrul va reine 0000, iar bitul 1 va fi transmis pe
ieirea de transport, Output Carry.

J Q A0
>C

Count Enable K

J Q A1
>C

J Q A2
>C

J Q A3
>C

Output carry

Clock

3.2.1.4 Registru de incrementare


Un registru de incrementare reprezint fizic microoperaia de incrementare. Prin aceasta,
valoarea urmtoare care se ncarc n registru este egal cu valoarea anterioar plus 1.
Pentru realizarea unui registru de incrementare se poate folosi structura unei numrtoare
binare sau se poate construi un CLC de incrementare.
Dac se efectueaz o microoperaie de incrementare pe n bii atunci circuitul logic
combinaional de incrementare este un sumator format din n semisumatoare, dintre care cel
corespunztor rangului zero are o intrare egal cu 1.
Pentru CLC de incrementare pe 4 bii reprezentarea este:

29
ARHITECTURA CALCULATOARELOR Anca Vasilescu

I3 I2 I1 I0 1

+ T2 + T1 + T0 +
2 2 2 2

T3 A3 A2 A1 A0

3.2.2 Transferul datelor din regitri pe magistral


Un calculator digital trebuie s fie prevzut cu ci de transfer pentru informaiile
memorate n regitri. Pentru aceasta, o schem eficient este sistemul cu magistral comun.
O structur de magistral const ntr-un set de linii comune, cte una pentru fiecare bit al
unui registru, prin care informaia binar este transferat la momente de timp predefinite. Pentru
fiecare transfer, se selecteaz un registru prin semnale de control depuse pe magistral.
O modalitate de a construi un sistem cu magistral comun folosete multiplexoare.
Acetia selectez informaia din registrul surs, care este apoi depus pe magistral.
Reprezentarea acestui sistem este dat n figura urmtoare:

S1
S0

4x1 4x1 4x1 4x1


MUX 3 MUX 2 MUX 1 MUX 0

D 3 C3 B 3 A3 D 2 C2 B 2 A2 D 1 C1 B 1 A] D 0 C0 B 0 A0

3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0

Registrul D Registrul C Registrul B Registrul A

Se observ c MUX0 multiplexeaz cei patru bii 0 ai regitrilor, MUX1, biii 1, MUX2
biii 2 i MUX3, biii 3. Ieirile celor patru multiplexoare folosite formeaz magistrala comun
cu patru linii de date.
In funcie de combinaiile pe intrrile de selecie, pe magistral se depune coninutul unui
registru sau al altuia astfel:

S1 S0 Register selected
0 0 A
0 1 B
1 0 C
1 1 D

30
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezumat.
Considernd cunoscute structurile de circuite introduse anterior, n acest paragraf sunt
descrise structurile interne la nivel de poart logic pentru principalii regi tri de microoperaie.
Pentru fiecare astfel de registru se va insista n mod special pe nelegerea modului de
funcionare ca circuit secvenial (Funcionarea unui circuit secvenial este corect definit ca o
secven de stri). De asemenea, un pas important n nelegerea acestor modele const n
identificarea rolului fiecrui circuit elementar n ansamblul constructiv al unui registru i, n plus,
studentul trebuie s poat rspunde concret, n fiecare caz n parte, la ntrebri de genul: care este
rolul n circuit a fiecrei componente, se poate nlocui o component intern cu o alta, care este
ctigul/pierderea n cazul unei astfel de nlocuiri .a.m.d.
Cuvinte cheie.
registru
microoperaie (ncrcare, deplasare, numrare, incrementare)
transfer de date

NOTIE

31
ARHITECTURA CALCULATOARELOR Anca Vasilescu

PROBLEME REZOLVATE

1. Introducere
In introducerea acestei mini-culegeri de probleme pentru disciplina ARHITECTURA
CALCULATOARELOR v amintim cteva dintre elementele de baz prezentate la curs.
In cele ce urmeaz, funciile logice elementare sunt reprezentate astfel:
o funcia SI multiplicativ;
o funcia SAU aditiv;
o funcia NU prin operatorul apostrof ataat variabilei care se neag.
Pentru funcia logic XOR (SAU EXCLUSIV) vom folosi simbolul .
Porile logice elementare, adic simbolurile grafice folosite pentru reprezentarea
circuitelor logice asociate funciilor logice elementare sunt:

Nume Simbol grafic Expresie logic


I LOGIC a x = ab
x
b
sau x = a b
SAU LOGIC a
x
x=a+b
b

NU LOGIC a x x = a

Porile logice asociate funciilor logice uzuale sunt:

Nume Simbol grafic Expresie logic


NAND a
x
x = (a b)
b
nu i
NOR a x = (a + b)
x
nu sau b

XOR x = ab + ab =
a
x
sau exclusiv b =ab
(anticoinciden)
NXOR
a x
NOR exclusiv x = ab + ab =
b
(echivalen) = (a b)
(coinciden)

32
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Simplificarea funciilor logice se bazeaz pe un minim de identiti din algebra boolean:

(1) a+0=a (9) a0=0


(2) a+1=1 (10) a 1 = a
(3) a+a=a (11) a a = a
(4) a + a = 1 (12) a a = 0
(5) a+b=b+a (13) ab = ba
(6) a + (b + c) = (a + b) + c (14) a(bc) = (ab)c
(7) a(b + c) = ab + ac (15) a + bc = (a + b)(a + c)
(8) (a + b) = ab (16) (ab) = a + b
(17) (a) = a

NOTIE

33
ARHITECTURA CALCULATOARELOR Anca Vasilescu

2. Probleme cu circuite logice combinaionale aritmetice

2.1. Problema 1
Se consider funcia majoritate pe trei variabile. Dac cele trei variabile de intrare sunt
notate a, b, c atunci expresia de definiie pentru funcia M, majoritate este urmtoarea:
1, dac majoritatea valorilor de intrare sunt 1
M(a,b,c) =
0, n rest.
Se cere:
a) s se completeze tabela de valori a funciei M;
b) s se deduc expresia logic a funciei M;
c) s se construiasc circuitul logic asociat funciei M.
Rezolvare
Tabela de valori a funciei majoritate M este:

A b c M
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Expresia logic a funciei M este:


M = abc + abc + abc + abc = (ab + ab)c + ab(c + c) = (ab)c + ab.

Circuitul logic pentru funcia M poate fi reprezentat astfel:

a
b M

Observaii
Expresia funciei M este unic abstracie fcnd de o permutare a variabilelor. Aceast
afirmaie este justificat de faptul c, n funcie de gruparea termenilor pentru simplificare,
expresia lui M poate fi:
M = (ab)c + ab = (bc)a + bc = (ca)b + ca.
Expresia funciei majoritate M este similar cu expresia cifrei de transport T i de la rangul
i la rangul i+1 pentru circuitul sumator complet.

2.2. Problema 2
Se consider funcia de paritate pe trei variabile. Dac cele trei variabile de intrare sunt
notate a, b, c atunci expresia de definiie pentru funcia P, de paritate este urmtoarea:
1, dac numrul valorilor de intrare egale cu 0 este par
P(a,b,c) =
0, n rest.

34
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Se cere:
a) s se completeze tabela de valori a funciei P;
b) s se deduc expresia logic a funciei P;
c) s se construiasc circuitul logic asociat funciei P.
Rezolvare
Tabela de valori a funciei de paritate P este: (considerm c 0 este numr par)

a b c P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

Expresia logic a funciei P este:


P = abc + abc + abc + abc = (ab + ab)c + (ab + ab)c =
= (ab)c + (ab)c = c (a b).
Circuitul logic pentru funcia P poate fi reprezen tat astfel:
a
P
b
c

Observaii
Expresia funciei P este unic abstracie fcnd de o permutare a variabilelor. Aceast
afirmaie este justificat de faptul c, n funcie de gruparea termenilor pentru simplificare,
expresia lui P poate fi:
P = c (a b) = a (b c) = b (c a).
Aceast observaie demonstreaz pe de o parte comutativitatea i asociativitatea
operaiei XOR i, pe de alt parte, ne-a permis s folosim o singur poart XOR
pentru a conecta toate cele trei intrri.
Expresia funciei de paritate P este similar cu expresia cifrei sumei si de la rangul i
pentru circuitul sumator complet.
Dac numrul de variabile de intrare este impar atunci aceast definiie a funciei de
paritate este echivalent cu urmtoarea:
1, dac numrul valorilor de intrare egale cu 1 este impar
P(a,b,c) =
0, n rest.
S se arate c dac prima definiie a funciei de paritate P se modific i se numr
valorile de intrare egale cu 1 atunci funcia rezultat este negarea funciei iniiale.

2.3. Problema 3
S se construiasc un circuit logic care primete pe intrare un numr natural A
reprezentat binar pe n poziii i pune pe ieire reprezentarea binar pe n poziii a valorii A div 2
(ctul mpririi lui A la 2).

35
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezolvare
Numrul n de poziii binare ale registrului de reprezentare determin puterea circuitului
soluie n sensul urmtor. Deoarece pe n poziii binare se pot reprezenta valorile naturale
zecimale de la 0 la 2n-1, rezult c, cu ct n este mai mare, cu att circuitul poate primi pe intrare
mai multe valori distincte, deci domeniul de definiie al funciei div considerate este mai mare.
Fie n=3. Rezult c vom putea avea pe intrare una din valorile 0, 1, 2, 3, 4, 5, 6, 7. Fie, de
asemenea, reprezentarea binar a lui A de forma a 2a1a0 i reprezentarea binar pentru A div 2 de
forma d 2d1d0.
Atunci tabela de valori a funciei este:
A A div 2 a2 a1 a0 d2 d1 d0
0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0
2 1 0 1 0 0 0 1
3 1 0 1 1 0 0 1
4 2 1 0 0 0 1 0
5 2 1 0 1 0 1 0
6 3 1 1 0 0 1 1
7 3 1 1 1 0 1 1
De aici se deduc cu uurin expresiile logice ale funciilor de ieire astfel: d 2= 0, d1= a2
i d0= a1.
Valoarea logic 0 poate fi exprimat convenabil cu una dintre expresiile: 0 = a0a0 = a1a1
= a2a2.
Cu acestea, se poate construi circuitul logic cerut:

d2
a2 d1

a1 d0
a0

Observaie
In aceast problem am considerat funcia div 2 i valorile de ieire au depins numai de
cifrele de rang 0 i 1 ale intrrii (valoarea 0 a lui d2 se putea construi tot cu a0 sau cu a1). Dac
se consider funcia modulo 2 (restul mpririi la 2) atunci se va vedea c singura poziie
important a intrrii este bitul cel mai puin semnificativ, adic cifra binar a0.

2.4. Problema 4
S se construiasc un circuit sumator complet folosind dou semisumatoare.
Rezolvare
Dac notm cu a i b intrrile n circuitul semisumator atunci expresiile funciilor de
ieire sunt:
s1(a, b) = a b
T1 (a,b) = ab.
Analog, dac intrrile n circuitul sumator complet sunt a, b, c atunci ieirile sunt
determinate de expresiile logice:
s2 (a, b, c)= c (a b)
T2 (a, b, c)= ab + c(a b).
Problema cere s construim ieirile s2 i T2 folosind dou semisumatoare.
Considernd expresiile anterioare ca notaii pentru s1 i T1 avem
s2 (a, b, c)= c s1(a, b) = s1(c, s1(a, b))
T2 (a, b, c)= T1(a, b) + c s1(a, b) = T1(a, b) + T1 (c, s1(a, b)).
Fie reprezentarea schematic a circuitului semisumator de forma:

36
ARHITECTURA CALCULATOARELOR Anca Vasilescu

a + T1
b 2 s1

Se observ din expresiile anterioare c a i b sunt intrri n primul circuit semisumator,


iar c i s1(a, b) sunt intrrile n al doilea circuit semisumator. Atunci reprezentarea final este:
T1
a + T2
s1
b 2 +
s2
2
c

2.5. Problema 5
S se construiasc un circuit logic combinaional pentru funcia f dat de urmtoarea
tabel de valori. Att valoarea de intrare n circuit, ct i valoarea de ieire se vor reprezenta pe
trei poziii binare, adic IN = xyz (2) i OUT = ABC (2).

IN OUT
0 1
1 2
2 3
3 4
4 3
5 4
6 5
7 6
Rezolvare
Tabela de valori binare pentru funcia f este urmtoarea:

x y z A B C
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 0 1 1
1 0 1 1 0 0
1 1 0 1 0 1
1 1 1 1 1 0

Conform cu aceast tabel de valori avem urmtoarele expresii logice pentru variabilele
de ieire A, B, C:
A = xyz + xyz + xyz + xyz = (x + x)yz + x(yz + yz) = yz + x (y z);
B = xyz + xyz + xyz + xyz = x(yz + yz) + x(yz + yz) =
= x(y z) + x(y z) = x (y z);
C = xyz + xyz + xyz + xyz = (xy + xy + xy + xy) z = (x + x) z = z.
Cea mai simpl reprezentare a acestui circuit folosete un sumator complet, innd cont
de urmtoarele observaii:
ieirea A este chiar cifra de transport a circuitului sumator complet;
ieirea B este chiar cifra sumei a circuitului sumator complet.

37
ARHITECTURA CALCULATOARELOR Anca Vasilescu

y
ai A
z Ti

x
bi
+ si
B
Ti-1
C

2.6. Problema 6
S se arate c funcia NAND poate unic generator pentru mulimea funciilor logice
elementare.
Rezolvare
Concret, aceast problem cere ca, folosind numai pori NAND, s se construiasc
circuite logice pentru funciile AND, OR, NOT.
Construcia circuitelor se bazeaz pe urmtoarele identiti:
((ab) (ab)) = (ab) = ab
((aa) (bb)) = (a b) = a + b
(aa) = a.

a ab
b

a a

a a
a+b

b b

Observaie
Aceeai problem se poate pune pentru funcia NOR.

NOTIE

38
ARHITECTURA CALCULATOARELOR Anca Vasilescu

3. Probleme cu circuite logice combina ionale decodoare,


multiplexoare i demultiplexoare

3.1. Problema 1
S se construiasc un circuit decodor folosind numai pori NOR.
Rezolvare
Considerm cazul unui decodor de tip 2x4, cu intrrile notate a i b. Construirea unui
circuit decodor poate nlocui porile AND cu pori NOR, pe baza identitilor urmtoare:
ab = (a + b)
ab = (a + b)
ab = (a + b)
ab = (a + b).
Reprezentarea porilor logice ale circuitului este:
a a b b
ab

a
ab

b
ab

ab

3.2. Problema 2
S se construiasc un decodor de tip 3x8 folosind dou decodoare de tip 2x4.
Rezolvare
Construcia care se cere n aceast problem se bazeaz pe urmtoarea observaie asupra
cuvintelor binare care reprezint ieirile din circuitul decodor.
Pentru decodorul de tip 2x4, ieirile corespund, IN ORDINE, secvenelor binare: 00 01
10 11. Pentru decodorul de tip 3x8 secvenele sunt: 000 001 010 011 100 101 110
111, unde am subliniat sufixele date de biii cei mai puin semnificativi. Comparnd secvenele
de la decodorul de tip 2x4 cu sufixele subliniate se vede c primele patru sufixe subliniate i
ultimile patru sufixe subliniate sunt tocmai secvenele corespunzetoare ieirilor din decodorul de
tip 2x4.
Corobornd aceast observaie cu structura intern de pori logice care formeaz circuitul
decodor, este justificat urmtoarea construcie soluie pentru decodorul de tip 3x8 (pentru care
notm intrrile cu a, b, c):
a abc
Enable
abc
b Dec-unu abc
c 2x4 abc

Enable abc
abc
Dec-doi abc
2x4 abc

39
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Intrarea a a decodorului de tip 3x8 este legat la intrri de validare n decodoarele de tip
2x4. Aceasta asigur c, n funcie de valoarea depus pe intrarea a, numai unul dintre
decodoarele de tip 2x4 va funciona, deci numai unul va depune o valoare 1 pe linii le de ieire.
Astfel, dac a = 0 atunci numai Dec-unu 2x4 aprinde una dintre ieiri, n funcie de
valorile primite pe intrrile de date, adic de pe intrrile b i c ale decodorului de tip 3x8. Dac a
= 1 atunci numai Dec-doi aprinde una dintre ieirile sale, deoarece pe intrarea de validare Dec-
unu 2x4 primete a = 0, deci nu funcioneaz.

3.3. Problema 3
S se foloseasc un multiplexor pentru a reprezenta circuitul logic asociat funciei f dat
prin urmtoarea tabel de valori binare:

x y z f
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Rezolvare
Multiplexorul care s reprezinte funcia f dat este:

I0
I1
I2
I3 MUX
I4 8x1 f
I5
I6
I7

0 1
x y dez selecie combinaia valorilor de intrare
Multiplexorul din acest circuit preia pe liniile
(x, y, z) curente ale funciei f i depune pe linia de ieire valoarea intrrii de date selectat de
combinaia curent (x, y, z).
Justificarea faptului c funcionarea acestui circuit calculeaz funcia f anterioar rezult
din analizarea valorilor puse pe liniile de intrare de date ale multiplexorului, aa cum se vede din
reprezentarea grafic i din urmtorul tabel:

X y z Intrarea f
selectat
0 0 0 I0 1
0 0 1 I1 0
0 1 0 I2 0
0 1 1 I3 1
1 0 0 I4 1
1 0 1 I5 0
1 1 0 I6 1
1 1 1 I7 1

40
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Observaie
Dac se modific valorile funciei f atunci trebuiesc modificate corespunztor
conexiunile ntre liniile de tensiune constant (care reprezint constant valorile logice 0 sau 1) i
liniile de intrare de date ale multiplexorului.

3.4. Problema 4
Fie functia f cu variabilele de intrare C = ( C0 , C1 ,C2 ) si D = ( D0 ,D1 ). Valoarea
calculata de functia f este y = f(C, D) definita prin:

C0 C1 C2 f(C,D)=y
0 0 0 D0
0 0 1 D0
0 1 0 D1
0 1 1 D1
1 0 0 D0D1
1 0 1 D0+D1
1 1 0 D0D1
1 1 1 (D0D1)
Se cere s se construiasc un circuit logic care s depun pe ieirea y valoarea logic
conform cu tabelul de valori alturat.
Rezolvare
Multiplexorul care sa reprezinte functia f data are pe liniile de selectie valorile curente ale
variabilelor C0 , C1, C2, iar pe liniile de intrare de date primeste valori calculate in functie de
D0 si D1 .

D0 I0
D1
I1
I2 f(C,D)
I3 MUX
I4 8X1
I5
I6
I7

D0 D1 C0 C1 C2

3.5. Problema 5
Pentru circuitul din reprezentarea urmatoare, se cere:
a) sa se deduca expresia logica a variabilei de iesire Y;
b) sa se simplifice expresia dedusa la a);
c) sa se reprezinte circuitul corespunzator expresiei de la b);
d) sa se reprezinte circuitul anterior folosind un multilexor.

41
ARHITECTURA CALCULATOARELOR Anca Vasilescu

In reprezentare anterioara fiecare simbol o reprezinta o negatie.


Rezolvare
Expresia logica pentru Y este:
Y = ((AS)) + (((SS)B))
Simplificam expresia anterioara tinand cont de relatiile : a= a si aa= a. Obtinem ca
Y= AS+ SB
Circuitul corespunzator acestei expresii simplificate a lui Y este:
A
S

Y
B

Pentru a justifica utilizarea multiplexorului in reprezentarea acestui circuit vom deduce o


alta forma de exprimare a valorii de ieisre Y.
Conform cu expresia Y= AS +SB, avem urmatoarea tabela de valori:

S A B Y
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

B, pentru S 0
Din aceasta tabela de valori se deduce ca Y =
A, pentru S 1
Aceasta exprimare este justificata pentru echivalenta circuitelor anterioare cu urmatorul
circuit cu multiplexor:
B 0 MUX Y
A 1 2X1

42
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Datorita acestei reprezentari finale, putem spune ca si circuitul initial este unul selector.
De aici si denumirea intrarii S- intrare de selectie: in functie de valoarea lui S, Y ia valoarea lui
B, sau valoarea lui A.Sa se construiasca un multiplexor de tip 16x1 folosind doua multiplexoare
de tip 8x1 si un multiplexor de tip 2x1.

3.6. Problema 6
Sa se construiasca un multiplexor de tip 16x1 folosind doua multiplexoare de tip 8x1 si
un multiplexor de tip 2x1.
Rezolvare
Credem ca experienta acumulata pana in acest moment va permite sa intelegeti acest
circuit, chiar fara explicatii suplimentare. Intrarile in multiplexorul solutie sunt notate cu: I0, I1,
I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15. Intrarile de selectie sunt: S0, S1, S2, S3,
iar iesirea este Y.

I0 0
I1 1
I2 2
I3 3 MUX
I4 4 8X1
I5 5
I6 6
I7 7 0 Y
S3 MUX
1 2X1
S2
S1 1
S0
I8 0
I9 1
I10 2
I11 3 MUX
I12 4 8X1
I13 5
I14 6
I15 7

3.7. Problema 7
Sa se construiasca diagrama logica a unui demultiplexor de 2 biti.
Un demultiplexor de tip 1x2n este un circuit logic combinational cu functionare duala
multiplexorului: in functie de combinatia de valori de pe cele n linii de selectie, depune pe una
din cele 2n linii de iesire valoarea primita pe un ica linie de intrare in circuit.
Rezolvare
Schematic, un demultiplexor pe 2 biti se reprezinta astfel:

43
ARHITECTURA CALCULATOARELOR Anca Vasilescu

O0
DMUX O1
I 1X4 O2
O3

S0 S1
O

Tabela de functionare determina indicele i al iesirii care va prelua valoarea pusa pe


intrarea de date I.
S0 S1 OUT
0 0 I -> O0 IS0S1
0 1 I -> O1 IS0S1
1 0 I -> O2 IS0S1
1 1 I -> O3 IS0S1

Circuitul corespunzator acestei tabele de valori se poate reprezenta astfel :

I S0S0S1S1
ISOS1

S0
IS0 S1=O1

S1

IS0S1 =O2

IS0S1=O3

NOTIE

44
ARHITECTURA CALCULATOARELOR Anca Vasilescu

4. Probleme cu circuite logice secventiale bistabile

4.1. Problema 1
Fie un circuit logic secvential cu o intrare, notata x si cu o iesire, notata y. Circuitul
consta din doi bistabili de tip D, pentru acre intrarile sunt notate D A, respectiv DB , iar iesirile cu
A, respectiv B.
Ecuatiile care definesc valorile puse pe liniile de circui sunt:
DA = Ax + Bx
DB = Ax
y = Ax + Bx
Sa se reprezinte grafic schema acestui circuit secvential.
Rezolvare
Reprezentarea cu porti a acestui circuit este:

DA
D Q A
X
C A

DB
D Q B
C

Clock

4.2. Problema 2
Fie un circuit secvential cu doi bistabili de tip D, ale caror intrari sunt numite DA si DB .
Circuitul are doua intrari, x si y si o iesire, z. Ecuatiile intrarilor in bistabili si expresia iesirii z
sunt:
DA = xy + xA
DB = xB + xA
z=B
a) Sa se deseneze diagrama logica a circuitului;

45
ARHITECTURA CALCULATOARELOR Anca Vasilescu

b) Sa se construiasca tabela de valori pentru functia z.


Rezolvare
Pentru a deduce tabela de valori asociata circuitului trebuie sa consideram toate perechile
de valori binare posibile pe intrarile x si y in circuit, combinate cu toate starile posibile ale
bistabililor. Tinand cont de faptul ca circuitul este unul secvential(deoarece are bistabili), rezulta
ca este justificata notatia A, B pentru starile curente ale bistabililor si A urmator, respectiv B
urmator pentru starile urmatoare.
Observatie
In general, pentru deducerea corecta a tabelei de valori asociata unui circuit secvential se
va tine seama de urmatoarele reguli:
1. la un acelasi impuls de tact se transmit toate valorile la intrarile in bistabili;
2. la urmatorul impuls de tact, simultan toate valorile de pe intrarile in bistabili trec prin
bistabilii respectivi, modificandu-le sau nu starea curenta.
Diagrama logica a circuitului este:

x DA A
D Q

y C

DB B=z
D Q

Clock

Pentru circuitul anterior, tabela de valori este:

x y A B A-urmator B-urmator
0 0 0 0 0 0
0 0 0 1 0 1
0 0 1 0 0 0
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 1 1
0 1 1 0 1 0
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 1 0 0
1 0 1 0 1 1
1 0 1 1 1 1
1 1 0 0 0 0
1 1 0 1 0 0
1 1 1 0 1 1
1 1 1 1 1 1

46
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Analizand valorile de pe liniile A, B si z se gaseste urmatoarea exprimare pentru aceste


variabile de iesire:
y, dacax 0
A-urmator=
A, dacax 1
B, dacax 0
Z=B-urmator=
A, dacax 1

4.3. Problema 3
Sa se reprezinte un circuit basculant bistbil de tip D folosind unul de tip JK.
Rezolvare
Tinand cont de tabelele de functionare pentru bistabilii de tip D si JK rezulta urmatoarea
constructie corecta:

J
D Q

Clock

NOTIE

47
ARHITECTURA CALCULATOARELOR Anca Vasilescu

5. Probleme cu registri

5.1. Problema 1
Continutul initial al unui registru de deplasare este 11011011 (registrul este pe 8 biti). Se
aplica de sase ori deplasarea la dreapta cu intrarea seriala 101101. Care este continutul registrului
respectiv dupa fiecare deplasare?
Rezolvare
11011011 este continutul initial al registrului;
11101101 este continutul dupa prima deplasare;
01110110 este continutul dupa a doua deplasare;
10111011 este continutul dupa a treia deplasare;
11011101 este continutul dupa a patra deplasare;
01101110 este continutul dupa a cincea deplasare;
10110111 este continutul dupa ultima deplasare;
In reprezentarea continutului registrului la fiecare pas am folosit urmatoarele conventii:
- bitul care intra pe intrarea seriala la fiecare pas este reprezentat cu caracter inclinat;
- bitii care se deplaseaza, dar au intrat de pe intrarea principala la pasii anteriori sunt
reprezentati cu caractere subliniate;
- bitii care se deplaseaza si fac parte din continutul initial al registrului sunr reprezentati
cu caractere ingrosate
Observatie
Aceeasi problema se poate pune considerand ca registrul executa o microoperatie de
deplasare la stanga. Care este in acest caz continutul final al registrului dupa sase deplasari?

5.2. Problema 2
Sa se analizeze functionarea circuitului urmator si sa se justifice faptul ca este un circuit
de deplasare.
Input Left Input Right
Shift Enable D0 D1 D2 D3

S0 S1 S2 S3

48
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezolvare
Acest circuit functioneaza conform cu urmatoarele reguli:
1) daca ShiftEnable = 0 atunci pe iesirile S 0, S1, S2, S3 avem respectiv, valorile de pe intrarile:
D1, D 2, D 3, InputRight. Se observa de aici ca circuitul functioneaza cu deplasare la dreapta.
2) daca ShiftEnable = 1 atunci pe iesirile S 0, S1, S2, S3 avem respectiv, valorile de pe intrarile:
InputLeft, D 1, D 2, D 3. Se observa de aici ca circuitul functioneaza cu deplasare la stanga.

5.3. Problema 3
Sa se deduca rolul urmatorului circuit:

A0 R0
B0

A1
R1
B1 Y

A2 R2
B2

A3 R3
B3

Rezolvare
Pentru fiecare i { 0, 1, 2, 3} tabela de valori pentru lini a R i = Ai Bi este:

Ai Bi AiBi
0 0 0
0 1 1
1 0 1
1 1 0
De aici putem da urmatoarea interpretare pentru valorile lui R i
0, A i Bi
R i=
1, Ai Bi
Valoarea Y este data de Y = NOR(R 0, R 1, R2 , R3), deci
1, cand R0 R1 R2 R3 0
Y=
0, in rest
Coroborand exprimarile pentru R i, i { 0, 1, 2, 3} si pentru Y, avem ca
1, candA B
Y=
0, candA B
unde, prin A B am inteles ca ( i { 0, 1, 2, 3} ) [ Ai = Bi ], adica continutul registrului A este
identic cu continutul registrului B.
In concluzie, putem spune ca circuitul propus este un circuit comparator pe 4 biti
deoarece compara continutul a doi registri A si B, fiecare pe 4 biti si transmite la ieisre valoarea
1 daca continuturile sunt identice si valoarea 0 daca continuturile difera cel putin printr -o pozitie.

5.4. Problema 4
Pornind de la reprezentarea logica a registrului de numarare binara prezentat la curs, sa se
construiasca un registru pentru microoperatia de numarare binara inversa.

49
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Rezolvare
Vom construi aceasta numaratoare pe 2 biti.
Pentru a deduce structura logica a registrului de numarare inversa trebuie sa determinam
mai intai starile succesive ale registrului. Daca starea initiala este 00 atunci starile urmatoare vor
fi: 11, 10, 01, 00, 11, 10, 01, s.a.m.d.
Se observa ca aceste strai se repeta cu o periodicitate de patru stari: 00, 11, 10, 01.
Regulile care se pot stabili pentru determinarea unica a starii urmatoare pornind de la starea
curenta sunt:
1) bitul cel mai putin semnificativ se complementeaza intotdeauna;
2) oricare dintre ceilalti biti se complementeaza numai daca toti bitii de rang mai mic sunt 0.
Observatie
Aceste reguli sunt analoage celor de la numaratoarea directa, cu deosebirea la regula a
doua ca bitul se complementeaza daca are numai 0 la dreapta si nu numai 1, ca la numaratoarea
directa.
Pe baza acestor reguli si a observatiei anterioare care da asemanarea cu registrul de
numarare directa, se poate construi circuitul logic folosind tot circuite basculante bistabile de tip
JK:

Count Enable
J Q A0
C

A1
J Q
C

K
Clock

NOTIE

50
ARHITECTURA CALCULATOARELOR Anca Vasilescu

6. Probleme recapitulative
Problemele propuse in acest capitol au un grad mai mare de dificultate. O astfel de
problema poate folosi cunostintele din mai multe dintre capitolele anterioare.

6.1. Problema 1
Sa se construiasca un convertor paralel serie.
Rezolvare
Ne propunem sa construim un atfel de circuit pe 8 biti. Un circuit convertor paralel
serie primeste simultan (in paralel) pe 8 lini de intrare de date valorile de intrare, pe care le
depune succesiv (in serie) pe unica iesire din circuit.
Un model imediat pentru un astfel de circuit foloseste un multiplexor de tip 8x1, pentru
care, configuratiile succesive ale valorilor de pe intrarile de selectie trebuie sa asigure ca MUX
depune pe iesire, in ordinea I0, I1,, I7, valorile primite pe intrarile de date. Pentru a asigura
aceste configuratii succesive pe intrarile de selectie, acestea isi vor prelua valorile dintr-un
registru de numarare de trei biti.

I0 0
I1 Registru 1
I2 2 Y
I3 cu
3 MUX
I4 incarcare 4 8X1
I5 5
I6 paralela 6
I7 7

S0 S1 S2

Registru de numarare
Enable

Starea initiala a registrului de numarare trebuie sa fie 000 pentru ca prima valoare depusa
de MUX pe iesire sa fie ceea ce primeste pe intrarea I0. Registrul de numarare va trece prin toate
starile distincte succesive, pana la starea 111, care corespunde momentului in care MUX depune
pe iesire valoarea primita pe intrarea I 7.
Valoarea de pe intrarea de validare Enable a functionarii circuitului va asigura ca:
la un anumit impuls de tact se incarca simultan (in paralel) valori pe liniile de date I0, I1,,
I7;
se initializeaza starea registrului de numarare cu configuratia 000;
atat timp cat registrul de numarare parcurge un ciclu de stari distincte (de la 000 la 111) nu
se incarca alte valori pe intrarile I ale multiplexorului.
In acest fel, MUX asigura depunerea pe iesirea Y a intrarilor I 0, I1,, I7 bit dupa bit.

6.2. Problema 2
Sa se construiasca un convertor serie paralel.
Rezolvare
De data aceasta se pune problema inversa fata de cazul din problema anterioara. De
aceea, este de asteptat ca circuitul corespunzator unui convertor serie paralel sa foloseasca un

51
ARHITECTURA CALCULATOARELOR Anca Vasilescu

demultiplexor. In plus, trebuie asigurata depunerea simultana (in paralel) a valorilor pe liniile de
iesire din circuit. Aceasta functiune este preluata de poarta AND legata la intrarea de validare
Load a circuitului cu incarcare paralela.

0
1 Registru
I 2
cu
DMUX 3
1X8 4 incarcare
5 paralela
6
7

Load
S0 S 1 S 2
Registru de numarare

6.3. Problema 3
Sa se construiasca un circuit logic secvential cu doua intrari notate E si x si care este
format din doua CBB-JK, ale caror iesiri sunt notate A si B. Valorile curente ale iesirilor A si B
determina la momentul respectiv starea circuitului.
Daca la momentul curent starea circuitului este notata Q t atunci starea urmatoarea, Q t+1,
rezulta din urmatoarea schema de functionare a circuitului:
1) daca E = 0 atunci Q t+1 = Qt;
2) daca E = 1 si x = 1 atunci circuitul functioneaza ca numaratoare directa;
3) daca E = 1 si x = 0 atunci circuitul functioneaza ca numaratoar e inversa.
Rezolvare
Daca A si B sunt valorile curente ale iesirilor din bistabilii de tip JK atunci notam cu A * si
B* respectiv valorile de pe iesiri la momentul urmator.
Deci Qt (A, B) si Q t+1 (A * , B*).
Conform cu tabela de valori, vom reprezenta circuitul pornind de la schemele de
reprezentare pentru registrele de numarare.
Tabela de valori pentru functionarea acestui circuit este urmatoarea:

E x A B A* B*
0 0 0 0 0 0


0 1 1 1 1 1
1 0 0 0 1 1
1 0 0 1 0 0
1 0 1 0 0 1
1 0 1 1 1 0
1 1 0 0 0 1
1 1 0 1 1 0
1 1 1 0 1 1
1 1 1 1 0 0

52
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Reprezentarea circuitului este:

E
J Q A

K
X

J Q B

6.4. Unitate aritmetico-logic pe 1 bit


Prezentm n continuare modelul unei UAL cu operanzii A i B reprezentai pe 1 bit.
T IN
Unitate logic

INV A
A
ENA
B
ENB

S
Sumator complet

F0

F1

Decodor T OUT

Semnificaia intrrilor:
intrri de date: A, B;
intrri de selecie: F 0, F1;
intrri de validare: ENA, ENB;
INVA intrare de inversare pentru valoarea de pe intrarea A;
Operaia de scdere se efectueaz ca adunarea desczutului cu opusul scztorului, unde
prin opus ne referim la complementul fa de 2 (se complementeaz toi biii i se adun 1 la
rezultat).
Inelegerea circuitului se poate testa prin completarea corect a valorilor de ieire pentru
diferite combinaii de intrare, ntr-un tabel cu structura urmtoare:

53
ARHITECTURA CALCULATOARELOR Anca Vasilescu

F0 F1 ENA ENB INVA INC OUT


0 1 1 0 0 0 A
0 1 0 1 0 0 B
0 1 1 0 1 0 (A 1) + 0 = A
1 0 0 1 0 0 B
1 1 1 1 0 0
...
1 1 1 0 1 1 (A1) +2 0 +2 1 = A + 2 1 = A
0 0 1 1 0 0
...

6.5. Memorie de tip 4x3


Urmtorul circuit reprezint o structur de memorie cu 4 cuvinte pe 3 bii fiecare.

Semnificaia liniilor de circuit:


Intrri de date: I0, I1, I2 valorile sunt folosite de funcia WRITE;
Intrri de selecie a cuvntului de memorie: A0, A1;
Intrri de validare: CS (engl., Chip Select)
RD (engl., ReaD)
OE (engl., Output Enable)
Ieiri: O0, O1, O2 valorile sunt returnate de funcia READ

54
ARHITECTURA CALCULATOARELOR Anca Vasilescu

Funcionarea acestui circuit de memorare se sintetizeaz n urmtoarele tabele de valori:

A0 A1 CS RD
0 0 Select cuvnt 0 0 NU 0 WRITE
0 1 Select cuvnt 1 1 DA 1 READ
1 0 Select cuvnt 2
1 1 Select cuvnt 3

NOTIE

55
ARHITECTURA CALCULATOARELOR Anca Vasilescu

7. Modelarea funcionrii procesorului

7.1. Maina cu trei adrese


Pentru a vedea cum funcioneaz maina cu trei adrese vom construi programul pentru
rezolvarea ecuaiei de gradul al doilea.
In zona de date trebuiesc trecute urmtoarele elemente:
coeficienii a, b, c ai ecuaiei de rezolvat;
constantele 0 i 2;
rezultatele intermediare b 2, 2*a, b;
Pentru acestea vom rezerva locaii de memorie denumite astfel:
A B C DOI ZERO T1 T2 T3 T4
a b c 2 0 b2 2*a b
Cuvntul T4 este rezervat pentru alte rezultate intermediare necesare programului.
Reprezentarea programului se face astfel: pe prima coloan vom trece numele
instruciunii de executat i pe a doua coloan operaia; urmeaz trei coloane pentru adrese i
ultima coloan pentru comentarii.
CIT A Citete coeficientul a
CIT B Citete coeficientul b
CIT C Citete coeficientul c
CIT DOI Citete constanta 2
DOI DOI ZERO Construiete constanta 0 (0=22)
* B B T1 T1:=b2
* DOI A T2 T2:=2*a
* DOI T2 T3 T3:=4*a
* T3 C T3 T3:=4*a*c
T1 T3 T1 T1:=
ZERO B T3 T3:=b
> T1 ZERO E1 Salt la E1 dac >0
= T1 ZERO E2 Salt la E2 dac =0
/ T3 T2 T3 Cazul <0: T3:= b/(2*a)
ZERO T1 T1 T1:=
T1 T1 T1:=
/ T1 T2 T1 T1:= /(2a)
TIP T3 Tiprete partea real
TIP T1 Tiprete partea imaginar
STOP
E2: / T3 T2 T3 T3:= b/(2a)
TIP T3 Tiprete rdcina comun
STOP
E1: T1 T1 T1:=
T3 T1 T4 T4:=T3T1
/ T4 T2 T4 T4:= x 1
TIP T4 Tiprete x 1
+ T3 T1 T4 T4:=T3+T1
/ T4 T2 T4 T4:= x 2
TIP T4 Tiprete x 2
STOP

56
ARHITECTURA CALCULATOARELOR Anca Vasilescu

7.2. Maina cu o adres


Vom construi programul pentru maina cu o adres care s rezolve ecuaia de gradul al
doilea.
Zona program ncepe cu locaia de adres 0 i se termin cu locaia de adres 83. Zona de
date ocup 6 locaii, de la 84 la 89, astfel: primele trei locaii (LA, LB, LC) rein coeficienii
ecuaiei, iar urmtoarele trei (T1, T2, T3) sunt folosite pentru memorarea unor rezultate
intermediare.
Vom descrie programul n paralel, att folosind codurile instruciunilor ct i folosind
numerele de ordine ale instruciunilor de executat.

CIT LA 0: 26 84
CIT LB Citirea coeficienilor 2. 26 85
CIT LC 4: 26 86
LA 6: 1 84
* 2 8: 13 2
T3 T3 :=2*a 10: 2 87
0 12: 1 0
LB 14: 12 85
/ T3 16: 14 89
T1 T1 := b/(2*a) 18: 2 87
T3 20: 1 89
* 2 22: 13 2
* LC 24: 13 86
T2 T2 := 4*a*c 26: 2 88
LB 28: 1 84
* LB 30: 13 85
T2 A := b 2 4*a*c 32: 12 88
/ T3 34: 14 89
/ T3 A:=(b2 4*a*c) / [(2*a) 2] 36: 14 89
> E1 Da, >0 38: 21 62
= E2 Da, =0 40: 23 56
TIP T1 Tiprete partea real 42: 27 87
0 Anuleaz val din A 44: 1 0
T2 46: 12 88
T2 48: 2 88
T2 A:=sqrt () 50: 15 88
T2 52: 2 88
TIP T2 Tiprete partea imaginar 54: 27 88
STOP 56: 28 0
E2: TIP T1 Tiprete soluia unic 58: 27 87
STOP 60: 28 0
E1: T2 A:= sqrt() 62: 15 88
T2 64: 2 88
T1 66: 1 87
T2 68: 12 88
T3 70: 2 89
TIP T3 Tiprete x 1=(b) / (2*a) 72: 27 89

57
ARHITECTURA CALCULATOARELOR Anca Vasilescu

T1 74: 1 87
+ T2 76: 11 88
T3 78: 2 89
TIP T3 Tiprete x 2=(b+) / (2*a) 80: 27 89
STOP 82: 28 0
LA: a 84:
LB: b 85:
LC: c 86:
T1: b / (2*a) 87:
T2: b2 4*a*c 88:
T3: 89:

In acest program s-au folosit unele modaliti de a reduce numrul de operaii


intermediare. Astfel, valorile unor subexpresii sunt memorate n locaii temporare (T1 sau T2) i
preluate de mai multe ori.
De asemenea, se poate observa c valoarea coninut n registrul acumulator A este
preluat de instruciunea care urmeaz n timp (din punct de vedere logic, conform secvenei de
instruciuni n execuie), chiar dac aceasta nu este urmtoarea instruciune scris n program.

58