Sunteți pe pagina 1din 127

CAPITOLUL 1

Componentele de baz ale sistemelor de calcul

ARHITECTURA CALCULATOARELOR

CUPRINS
CAPITOLUL 1 ----------------------------------------------------------------------------------------------------- 1 1.1. SISTEMUL DE CALCUL ---------------------------------------------------------------------------------- 3 1.1.1. Definiii --------------------------------------------------------------------------------------------- 3 1.1.2. Aplicaiile sistemelor de calcul ------------------------------------------------------------------ 3 1.1.3. Sistemul de calcul din diferite puncte de vedere -------------------------------------------- 4 1.1.4. Structura ierarhic de organizare a calculatorului ------------------------------------------- 6 1.1.5. Structura funcional a unui sistem de calcul ------------------------------------------------- 7 1.1.6. Performanele unui sistem de calcul ------------------------------------------------------------ 9 1.1.7. Clasificri ------------------------------------------------------------------------------------------ 9 1.1.8. Principiile von Neumann ------------------------------------------------------------------------ 12 1.1.9. Modelul formal al unui calculator ------------------------------------------------------------- 13 1.1.10. Evoluia sistemelor de calcul ------------------------------------------------------------------- 14 1.2. SISTEMUL DE INTRARE/IEIRE. DISPOZITIVE PERIFERICE -------------------------------------- 18 1.2.1. Clasificri ----------------------------------------------------------------------------------------- 19 1.2.2. Caracterizarea unor periferice ----------------------------------------------------------------- 20 1.2.2.1. Discurile dure. Hard-discul---------------------------------------------------------------- 20 1.2.2.2. Discurile flexibile. Discheta--------------------------------------------------------------- 21 1.2.2.3. Compact discurile -------------------------------------------------------------------------- 22 1.2.2.4. Monitoarele (graphic display) ------------------------------------------------------------ 22 1.2.2.5. Principalele adaptoare video -------------------------------------------------------------- 24 1.2.2.6. Mouse-ul ------------------------------------------------------------------------------------- 25 1.2.2.7. Reele de comunicare ---------------------------------------------------------------------- 26 1.2.2.8. Placa de reea-------------------------------------------------------------------------------- 27 1.2.2.9. Modemul ------------------------------------------------------------------------------------ 28 1.2.3. Canalul de intrare / ieire ----------------------------------------------------------------------- 28 1.2.4. Legarea perifericelor la SC. Unitile de interfa ------------------------------------------ 28 1.2.5. Magistrale ----------------------------------------------------------------------------------------- 30 1.2.6. Transferul eficient de date. Procesoare specializate ---------------------------------------- 35 1.3. UNITATEA DE MEMORIE ------------------------------------------------------------------------------ 38 1.3.1. Structura fizic a memoriei --------------------------------------------------------------------- 38 1.3.2. Structura ierarhic de organizare a memoriei ----------------------------------------------- 39 1.3.3. Memorii cache ------------------------------------------------------------------------------------ 42 1.3.4. Memoria virtual --------------------------------------------------------------------------------- 43 1.3.5. Memorii cu acces aleator RAM i ROM ---------------------------------------------------- 45 1.4. PROIECTAREA CALCULATOARELOR MODERNE --------------------------------------------------- 47

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

1.1.
1.1.1.

Sistemul de calcul
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: hardware = resurse fizice, adic procesoare, memorii, dispozitive de intrare/ieire, software = resurse logice. Acestea se mpart n software pentru sistem (systems software) i software pentru aplicaii (applications software). Soft-ul pentru sistem const n aplicaiile sistem care ofer servicii pentru uz comun. Din aceast categorie fac parte: sistemul de operare, compilatoarele, asambloarele, s.a. Soft-ul pentru aplicaii const n aplicaiile propriu-zise, adic: programe utilitare, medii de programare, programele utilizatorilor. 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, astfel nct programele care funcioneaz pe acel sistem s se execute la parametrii maximi (utilizare complet i optim). resurse informaionale, adic suporturi de memorie extern pentru organizarea i stocarea datelor.

1.1.2.

Aplicaiile sistemelor de calcul

Pe bun dreptate se spune despre calculator c este maina care a revoluionat lumea. Aceast afirmaie o susinem n continuare artnd diversitatea domeniilor n care calculatorul / procesorul este nelipsit. Primul exemplu ar putea fi maina automat destinat tranzaciilor bancare (bancomatul). De neconceput n anii '50 cnd cel mai ieftin

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

calculator costa 500.000 $ astzi, bancomatele te ntmpin la tot pasul, oferind servicii sigure, toate operaiile fiind coordonate de un procesor central. In industria automobilelor, de cnd microprocesorul a sczut spectaculos n volum i i-au crescut realmente performanele (nceputul anilor '80), procesorul este nelipsit n sistemele destinate scderii polurii, a creterii randamentului conbustibililor i n controlul reaciei pungilor de aer n cazul coliziunilor vehiculelor (air-bag). Creterea performanelor calculatoarelor simultan cu micorarea dimensiunilor componentelor interne a condus la posibilitatea dezvoltrii unei industrii paralele, cea a calculatoarelor portabile (laptop-uri). In sfrit, dar nu n ultimul rnd, este de remarcat larga rspndire a calculatoarelor pe masa de lucru a tot mai multor persoane. La acest aspect a contribuit, credem n mare msur, i tentaia de a avea acces la populara reea de comunicare i informare care este Internet-ul. In general, reeaua Internet folosete aplicaii WWW (World Wide Web), adic un set de programe care formeaz un sistem de comunicare bazat pe informaii hypertext. WWW funcioneaz prin comunicare de date pe baza unui model client/server. Prin hypertext nelegem un sistem de grupare asociativ a informaiilor rezidente pe mai multe servere Web, astfel nct s ofere utilizatorului senzaia c el consult un singur document. Limbajul de descriere a hypertext-ului este HTML (HyperText Markup Language). Programele care permit vizualizarea (consultarea) paginilor Web sunt browser-ele. Un browser este deci un client Web care are acces la informaii multimedia i multiprotocol oferite de serverul Web accesat. Dintre aplicaiile frecvente ale WWW amintim: distribuirea tirilor, nscrierea ntr-un grup cu interese comune, consultarea unor note bibliografice sau referine tiinifice, comandarea i trimiterea cadourilor prin cataloage on-line, orientarea electronic pentru itinerariul de vacan, s.a.m.d. In plus, exist marele avantaj al accesului de pe calculatorul de acas pe orice alt calculator conectat la Internet. Astzi, nimeni nu mai car calculatoare

1.1.3.

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: 1. organizarea componentelor; 2. construirea; 3. 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. Concret, din acest punct de vedere, trebuiesc descrise: a) circuitele logice combinaionale, secveniale i/sau integrate care reprezint structura intern a fiecrei componente hard; b) modurile de reprezentare a datelor n memoria SC;
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

c) operaiile fundamentale ntr-un SC. 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. Concret, din acest punct de vedere, trebuie s ne referim la: a) modurile de reprezentare a instruciunilor; b) controlul instruciunilor prin programe; c) fundamentele limbajului main i ale limbajului de asamblare. 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 Program de aplicaie Limbaje de nivel Control execuie nalt Control I/O
Arhitectur de set de instruciuni Arhitectur de microcod Arhitectur de nivel poart

Arhitectur de sistem Arhitectur de limbaj de programare Arhitectur de sistem de operare

Setul de instruciuni de baz (interpretare i execuie) Microcod Registre UAL Procesor I/O Memorie Controllere

In general, prin arhitectur 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

1.1.4.

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. 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

ntr-o form simbolic, mai accesibil dect formatul impus de limbajul main. Acest nivel face obiectul capitolului al patrulea din curs. 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.5.

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). memorii interne pentru stocarea datelor i instruciunilor; 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


unde:
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

UCtrlP este unitatea de control i prelucrare UC este unitatea central IOS este sistemul de intrare/ieire. UC este unitatea de control a ntregului sistem de calcul: supervizeaz activitatea oricrei componente i decide n situaii conflictuale. Aceste componente se regsesc 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 aici numai schema orientativ a acestor dependene:

CONTROL

INPUT

DATAPATH PROCESOR MEMORIE

OUTPUT

UC De aici rezult c procesorul preia instruciunile i datele din memorie, n timp ce controlul trimite semnale care determin operaii pe Datapath, n
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

memorii i pe dispozitivele periferice. Datapath (calea datelor) include registre, UAL i mai multe magistrale de legtur (vezi i exemplul de organizare a registrelor). Cu alte cuvinte, datapath este acea parte a UCP care conine UAL i intrrile i ieirile acesteia.

1.1.6.

Performanele unui sistem de calcul


Performanele unui sistem de calcul se apreciaz n funcie de:

viteza de execuie, dat de numrul instruciunilor executate n unitatea de timp; capacitatea memoriei, dat de numrul de octei care pot fi memorai n sistem, att n memoria intern ct i n memoria extern; timpul de acces la memorie egal cu timpul necesar obinerii unei uniti de informaie memorat (octet, cuvnt) fiabilitatea, dat de numrul de defecte (hardware sau software) aprute ntr-un interval de timp; tipul arhitecturii reprezentat de modalitatea de funcionare a sistemelor (multiprogramare, timp partajat, timp real, acces la distan, multiprocesare).

1.1.7.

Clasificri

Calculatoarele se pot clasifica dup felul n care se memoreaz datele, dup structura lor arhitectural sau, o a treia variant, dup performan (mrime, posibiliti de prelucrare, pre i vitez de operare). Vom descrie n continuare grupele de calculatoare din aceste categorii. avem: Dup felul n care se memoreaz datele n sistemele de calcul

calculatoare numerice (la care ne vom referi n continuare). Datele i informaiile sunt codificate sub form numeric binar; calculatoare analogice: sistemul de calcul este reprezentat printr-un sistem fizic n care pot fi stabilite relaii matematice dinainte prescrise ntre variabilele continue ale sistemului fizic; spre deosebire de cazul digital, mainile analogice nu pot fi caracterizate numai prin dou stri. In general, o main analogic transform o problem matematic (teoretic sau practic) ntr-una bazat pe mrimi fizice (segmente, unighiuri, intensitatea curentului electric, variaii de potenial) pe baza unei analogii. In final se obine un rezultat aproximativ, dar convenabil din punct de vedere practic. Observaie. n aceast clasificare nu ne-am referit la sistemele analogice, caracterizate de semnale sau mrimi analogice (semnale sau mrimi care variaz continuu), cum este transmiterea semnalelor de telefonie. calculatoare hibride rezultate din cuplarea unui calculator numeric cu unul analogic. Din punct de vedere arhitectural, avem: sistem de calcul monoprocesor;
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

10

sistem de calcul multicalculator; sistem de calcul multiprocesor. Un sistem de calcul monoprocesor are o singur unitate central de prelucrare (CPU). Un sistem de calcul multicalculator include cel puin dou uniti centrale, fiecare dintre calculatoarele membre avnd un grad ridicat de independen. La multicalculatoare divizarea sarcinilor de prelucrare se face cu interaciune doar la nivelul datelor supuse prelucrrii. Modelul calculatoare. uzual al sistemelor multicalculator sunt reelele de

Un sistem de calcul multiprocesor conine cel puin dou uniti de prelucrare cu acces comun la memoria intern unic. Procesele membre ale sistemului interacioneaz att la nivel hard ct i la nivel soft, dar soft-ul de baz (sistemul de operare) este unic. Prin varianta arhitectural multiprocesor se asigur o mrire a capacitii de prelucrare prin posibilitatea de executare n paralel a unor sarcini distincte. Totalitatea resurselor unui sistem multicalculator sau a unuia multiprocesor formeaz un sistem distribuit. Analizate dup mrime, posibiliti de prelucrare, pre i vitez de operare distingem: supercalculatoare; sisteme de calcul medii-mari (main-frame); minicalculatoare; microcalculatoare. Supercalculatoarele conin mai mult de 8 UCP care pot s execute mai mult de un bilion de instruciuni pe secund. De aceea, ele sunt folosite n prelucrri extrem de complexe. De obicei sunt sisteme multiprocesor. Sistemele de calcul medii-mari (main frame) conin mai multe UCP alturi de uniti principale de intrare/ieire care opereaz cu vitez nalt. Astfel, aceste calculatoare sunt apreciate n aplicaiile care solicit vitez de operare foarte ridicat. Pentru folosirea acestor calculatoare sunt necesare instalaii i proceduri de meninere n funcionare permanent. Exemplu. n aceast categorie se ncadreaz calculatorele romneti din familia FELIX. Minicalculatoarele execut operaii specializate. Ele sunt folosite n aplicaii multiutilizator, n prelucrri de texte sau ca i componente ale mainilor de control numeric.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

11

Datorit facilitilor oferite n cadrul proceselor de comunicaii, minicalculatoarele sunt frecvent folosite n transmisii de date ntre sisteme dispersate geografic. Actualmente folosirea microcalculatoarelor. lor este n scdere datorit utilizrii

De obicei sunt sisteme interactive multiutilizator. Exemple. n Romnia s-au produs minicalculatoarele CORAL i INDEPENDENT. Sistemele VAX produse n Statele Unite sunt nc actuale prin noile lor variante. Microcalculatoarele (PC sau Personal Computer) au aprut datorit dezvoltrii tehnicii de calcul i a informaticii. La aceste sisteme de calcul unitatea central este implementat cu un microprocesor. Microcalculatoarele sunt sisteme interactive, monoutilizator. Calculatoarele personale cunosc o dezvoltare rapid i o diversificare continu datorit avantajelor fa de celelalte categorii, dintre care amintim: cunotinele de informatic necesare unui utilizator de PC sunt minimale; folosirea unui astfel de calculator pentru activiti zilnice se poate realiza chiar fr o pregtire de specialitate; aceasta i datorit interfeelor grafice ale sistemelor de operare i aplicaiilor care realizeaz legtura ntre utilizator i sistemul de calcul; au gabarit redus, pot fi chiar portabile; au aplicabilitate n orice domeniu de activitate. Exemple. Microcalculatoare produse n Romnia: aMIC, HC-85, TIM-S, CIP, HC-90, FELIX PC. n Marea Britanie s-au remarcat microcalculatoarele de tip Sinclair Spectrum, iar n Statele Unite, Commodore 64, Apple II i toate variantele de sisteme compatibile IBM PC. Prezentm n continuare clasificarea dat de Flynn n 1972 pentru SC. Aceasta privete calculatoarele din punctul de vedere al mrimii fluxului instruciunilor i mrimii fluxului datelor. Astfel, fluxurile pot fi: SISD (Single Instruction Single Data Stream) pentru toate sistemele de calcul cu o unitate central; SIMD (Single Instruction Multiple Data Stream) pentru unele supercalculatore i toate SC care au o singur unitate central cu n uniti aritmetico-logice i n module de memorie ataate unitii centrale interconectate; MISD (Multiple Instruction Single Data Stream): categorie vid, deoarece combinaia aceasta de fluxuri este ineficient; MIMD (Multiple Instruction Multiple Data Stream) pentru sistemele multiprocesor sau multicalculator. De exemplu, multe supercalculatoare i sistemele distribuite.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

12

Observaie. Dei Flynn a apreciat ineficient varianta MISD, astzi exist modele paralele care se ncadreaz n aceast categorie. Este vorba despre execuia n pipeline (linie de asamblare). n ncheierea acestui paragraf dm un tabel sintetic al generaiilor de calculatoare, aa cum au aprut ele cronologic (M = capacitate de memorie, V = vitez de prelucrare n instruciuni pe secund). Gen Perioada CPU I 1946 1956 Tuburi II Memorie Limbaje Memorie. CPU

electronice

1957 1963 Tranzistori

Tambur magnetic Inele de ferit

III

1964 1981 Circuite

integrate

Memorii semicond.; Discuri magnetice Memorii cu bule; Discuri optice Arhitecturi paralele

IV

1982 1989 Circuite

dup1990

integrate pe scar larg i foarte larg Circuite integrate pe scar extrem de larg; Masini LISP i PROLOG

Limbaj de asamblare Limbaje de nivel nalt: FORTRAN, COBOL Limbaje de nivel foarte nalt (PASCAL, LISP, limbaje grafice) ADA, limbaje orientate obiect Limbaje concurente; Limbajul natural; Limbaje funcionale (LISP); Limbaje logice (PROLOG)

M: 2KO; V: 1E4 i/s M: 32 KO; V: 2E5 i/s M: 2 MO; V: 5E6 i/s

M: 8MO; V: 3E7 i/s pentru supercalculatoare V: de la 1E9 i/s la 1E12 i/s; M: suficient pentru stocarea i prelucrarea cunostintelor (inteligena artificial); Tehnologia vorbirii

1.1.8.

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 aritmeticologic. ) 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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

13

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 necesare 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. ) 5. 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.9.

Modelul formal al unui calculator

De la empirismul lui von Neumann, s trecem acum la rigoarea matematic. Incercm s exprimm formal sarcinile unui SC. Notm cu M, P, D, C cele patru componente principale: memoria, procesorul, dispozitivele periferice i, respectiv, unitatea de control. Principalele funcii ale SC le vom nota astfel: r receive preluarea datelor de la un dispozitiv periferic i depunerea lor ntr-o zon de memorie; t transmit este operaia invers lui receive;

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

14

s store preia o informaie prelucrat de UCP i o depune n memorie; f fetch preia o dat din memorie i o transmite componentei UCP spre prelucrare; p processing prelucrarea propriu-zis a datelor i informaiilor. Astfel, un SC poate fi exprimat prin: SC = (M, P, D, C, r,t,s,f,p), unde domeniile i codomeniile celor cinci funcii sunt: r : D x C > M t : M x C > D s : P x C > M f : M x C > P p : M x P x C > M x P. Dup cum se poate observa, fiecare funcie are, ca i component a domeniului de definiie unitatea de control a SC.

1.1.10.

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. 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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

15

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 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

16

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! Producia de microprocesoare este n plin ascensiune. Iat o situaie la nivelul anului 1995: Tip 80x86 MIPS Power PC Sun SPARC HP PA-RISC DEC Alpha Nr de buc vndute 50.000.000 5.500.000 3.300.000 700.000 300.000 200.000

Dintre cele 5.500.000 microprocesoare MIPS (Microprocessor without Interlocked Pipelined Stages), numai 300.000 au fost folosite n SC. Celelalte au fost incorporate pentru jocuri video, imprimante laser .a.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

17

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 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

18

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 memoreze informaii externe, pe de o parte i s asigure schimbul informaii ntre SC i mediul extern, pe de alt parte, alctuiesc sistemul intrare/ieire. Concret, acesta cuprinde dispozitivele periferice sau, scurt, perifericele. sunt: s de de pe

Principalele tipuri de dispozitive periferice legate la SC de tip IBM-PC

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 informaiilor 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: 1) modul de acces; 2) timpul de acces; 3) rata de transfer al informaiei; 4) capacitatea; 5) costul. n funcie de tipul fiecrui dispozitiv periferic, unii parametri pot s nu aib semnificaie.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

19

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 magnetice: benzile magnetice, discurile (hard-discurile, dischetele). medii

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. 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 interacioneaz cu maina. O caracteristic important pentru aprecierea unui periferic este dat de rata de transfer. Aceasta reprezint numrul de uniti de informaie pe

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

20

care le poate transfera perifericul respectiv ntr-o secund n cadrul comunicrii cu procesorul, cu memoriile sau cu alte periferice. In tabelul urmtor enumerm cteva dintre cele mai folosite periferice i caracteristicile lor eseniale. Device Tastatur Mouse Cititor de voce Scanner Redare voce Imprimant pe linii Imprimant laser Monitor Modem Reea LAN Disk flexibil Disk optic (CD) Band magnetic Disk magnetic Tip intrare intrare intrare intrare ieire ieire ieire ieire intrare sau ieire intrare sau ieire memorare memorare memorare memorare Partener om om om om om om om om main main main main main main Rata de transfer (KB / sec) 0,01 0,02 0,02 400 0,6 1 200 60.000 2-8 500 - 6.000 100 1.000 2.000 2.000 - 10.000

1.2.2.
1.2.2.1.

Caracterizarea unor periferice


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. 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 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

21

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.

Sector

Cilindru Pista

0 1 Capete de scriere / citire

2 3 Fata magnetizabila . . . Furca

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

22

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 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 = 28). 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

23

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. A. Legarea serial Standardizat sub numele RS-232, acest mod de legare permite att legarea local ct i legarea la distan (geografic vorbind). Transmisia se efectueaz bit dup bit. Pentru fiecare bit transmis se verific un aa-numit protocol de comunicaie, n scopul asigurrii corectitudinii transmiterii. Viteza de transmisie variaz de la 300 bps (bii pe secund) la 19.200 bps. Att tastatura, ct i ecranul se supun acestui mod de conectare. B. Legarea prin adaptor video A doua mare categorie de monitoare sunt cele pentru care ecranul este legat la memoria calculatorului printr-o plac numit adaptor video. Acest adaptor nglobeaz n el un video-controller care genereaz continuu un flux de electroni. La atingerea ecranului, acetia se transform n puncte luminoase. De aceea, la legarea prin adaptor video, ecranul este parcurs permanent linie cu linie (fenomenul se numete baleiere ecran), activndu-se fiecare punct luminos n conformitate cu informaiile existente ntr-o poriune a memoriei operative numit memoria ecran. Actualizarea ecranului n aceast manier se desfoar n ritmul de 45-70 baleieri pe secund. Spre deosebire de legarea serial, aici o modificare a imaginii este un efect al modificrii memoriei ecran. Acest lucru elimin necesitatea verificrii prin protocoale a corectitudinii datelor, ceea ce face s creasc mult viteza de afiare. Acest sistem de lucru, ilustrat n figura urmtoare, este cunoscut i sub numele de legarea terminalelor cu memoria mapat.

CPU

Memorie

Placa adaptor video

MONITOR TERMINAL

Legatura seriala

TASTATURA TERMINAL

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

24

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. Principalele adaptoare video

Primul adaptor video disponibil pentru IBM-PC a fost unul pentru ecran monocrom. El s-a numit MDA (Monochrom Display Adapter) i a fost creat n 1981. Caracteristici: nu ofer faciliti grafice, poate s afieze numai caracterele ASCII standard i cele speciale din setul IBM. Adaptorul Hercules, prescurtat HGC, ( Hercules Graphics Card) a fost creat de firma cu acelai nume n 1982. HGC permite att afiare alfanumeric ct i afiare grafic. Tehnicienii de la Hercules au rezolvat cu aceast ocazie mbinarea textului cu grafica, iar standardul firmei s-a impus rapid pe pia. HGC permite comutarea ntre modul de lucru impus de MDA i modul grafic cu o rezoluie nalt: 720*348 pixeli. Adaptorul CGA (Color Graphics Adapter) a nceput s fie livrat n 1981. Pe lng modul de lucru alfanumeric (80*25 caractere), acesta permite un mod de lucru cu patru culori i o rezoluie de 320*200 pixeli. Calitatea afiajului nu este deosebit, datorit rezoluiei destul de reduse, n schimb se pot folosi culorile. Placa adaptor EGA (Enhanced Graphics Adapter) a aprut pe pia la nceputul anului 1985. Ea motenete modurile de lucru de la MDA i CGA, dar ofer posibiliti grafice mult mai mari. Astfel, pot fi utilizate simultan 16 culori din 64 posibile, cu o rezoluie de 640*350 pixeli. Evident, calitatea imaginii este mult mai bun dect cea oferit de adaptoarele precedente. Interfaa VGA (Video Graphics Array), aprut n 1987, aparine unui nou standard grafic. Este compatibil cu plcile anterioare, dar ofer posibiliti mult sporite fa de acestea. n mod grafic are o rezoluie de 640*480 pixeli cu 16 culori simultane din 262.144 posibile, sau 256 culori simultane cu 320*200 pixeli. n modul text caracterele sunt formate din 144 de pixeli (matrice de 9*16 pixeli pe caracter), fa de 64 la CGA, 112 la EGA, 126 la MDA i HGC. n momentul de fa exist mai multe variante mbuntite de plci VGA, cunoscute generic sub numele de SVGA (Super VGA).
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

25

1.2.2.6.

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: 1. micarea mouse-ului genereaz impulsuri folosind LED-ul (vezi anterior) sau 2. 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 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].

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

26

1.2.2.7.

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. O reea de calculatoare se caracterizeaz prin: distana ntre SC conectate: de la 10 m la mii de km; viteza de transfer a mesajelor: de la 1 Byte pe secuns (Bps) la sute de MBps; topologia reelei (organizarea SC conectate): bus, ring, star, tree etc. liniile de comunicare: fr linii de comunicare (reele de tip point-to-point) sau reele cu partajarea liniilor de comunicare (reele multidrop). Modele de reele: 1) LAN (Local Area Network), cu exemplul cel mai popular, reeaua Ethernet. Aceasta poate acoperi maxim 1 km, deci este potrivit pentru conectarea SC de la un etaj de cldire. Accept o vitez de transfer de 10Mbps (Megabii pe secund), fr control central. Mesajele transmise printr-o reea Ethernet (pachetele) sunt dirijate de-a lungul reelei n blocuri (64B/bloc 1518B/bloc). Variantele moderne ale modelului LAN Ethernet sunt Fast Ethernet (transfer 100Mbps) i Gigabit Ethernet. 2) Long-haul Network, cu varianta cea mai popular, ARPANET (Advanced Research Projects Agency of US Government). Modelul ARPANET acoper ntre 10 i 10.000 km, la un transfer de 56 Kb / sec. Este de tip point-to-point. Folosete linii dedicate, nchiriate de la companiile de comunicaii. ARPANET a fost precursor pentru Internet. Prin realizarea Internet s-a creat posibilitatea interconectrii mai multor reele de calculatoare. Mai mult, s-a standardizat aceast conectare la o singur familie de protocoale, i anume TCP/IP (Transmission Control Protocol / Internet Protocol). Componenta IP a acestor protocoale furnizeaz posibilitatea de adresare ntre dou gazde (host-uri) din Internet, dar nu garanteaz securitatea i sigurana transmisiilor. Partea TCP nseamn un protocol care poate garanta c toate pachetele sunt primite i c nu exist erori de transmitere.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

27

IP header Length

Source Destination Source Destination IP data TCP header Sequence number (length)

(0 65.516 B)

TCP data

32 bits Aceste dou protocoale (IP i TCP) lucreaz mpreun i formeaz o stiv de protocoale (protocol stack) n care pachetele TCP sunt ncapsulate n pachetele IP. Pentru a permite comunicarea ntre mai multe reele de caracteristici diferite, TCP/IP definete un format standard de pachet: un pachet IP (care conine informaiile de adresare IP) ncapsuleaz un pachet TCP (care conine att informaii de adresare interpretate de gazd, ct i datele care se comunic). 1.2.2.8. 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),
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

28

calculatorul-staie aloc o parte din spaiul su de memorie pentru placa de reea. 1.2.2.9. 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 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.

Canalul de intrare / ieire

Dezvoltarea arhitecturii a condus la apariia, ncepnd cu generaia a doua de calculatoare a canalului de intrare / ieire. Acesta este un procesor specializat pe operaii de I/O care poate funciona n paralel cu CPU. Pentru a fi lansat n execuie, canalul primete de la CPU o comand de efectuare a unei operaii de I/O. Dup lansare, cele dou procesoare i continu activitatea n paralel. La sfritul operaiei de I/O, canalul anun acest fapt CPU prin intermediul unei ntreruperi. n prezent, SC folosesc dou tipuri de canale: selector i multiplexor. Canalele de tip selector realizeaz schimbul dintre memorie i dispozitivele rapide (discuri, benzi). Acestea lucreaz la un moment dat cu un singur periferic. Canalele multiplexor lucreaz simultan cu mai multe periferice. Astfel, trebuie s decid, pentru fiecare octet schimbat, care este traseul acestuia ntre memorie i perifericele legate la el.

1.2.4.

Legarea perifericelor la SC. Unitile de interfa

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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

29

Principalele funcii ale unitilor de interfa sunt: 1) conversia semnalelor specifice modului de operare pe suporturi magnetice n semnale de lucru pe circuite electronice, adic de pe periferic magnetic n CPU; 2) sincronizarea ratelor de transfer de date de la viteza de lucru pe periferic la viteza de lucru n CPU; 3) decodificarea/codificarea datelor de pe periferic n format specific n CPU; 4) delimitarea semnalelor unui periferic de ale altora dintre cele conectate la acelai SC. n funcie de modul de transmitere a informaiei spre periferic distingem interfee seriale i interfee paralele. De obicei, un PC are o interfa paralel (LPT1) pentru imprimant i dou interfee seriale (COM1 i COM2) pentru tastatur i mouse. Comunicarea serial presupune c informaia circul ntr-o structur secvenial de bii n care alterneaz biii de informaie cu biii de control. 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. 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.
CS Interface Controller Peripheral Device

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 periferic legat printr-un port, 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). 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. 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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

30

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.5.

Magistrale

O magistral conecteaz dispozitivele de intrare - ieire la procesor i la memorii. O magistral reprezint o linie de comunicare partajat care folosete un set de conductori pentru a conecta mai multe subsisteme. 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.
Procesor Cache
Magistrala de comunicare

Intreruperi

Memorie principala

I/O Controler

I/O Controler

I/O Controler

Disk

Disk

Statie grafica

Network

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

31

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. In general, o magistral const n linii de date i linii de control. 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 liniilor unei magistrale. 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

interfata

interfata

interfata

monitor

imprimanta

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 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

32

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: 1) comenzi de control care activeaz perifericul sau l informeaz asupra urmtoarei operaii; 2) 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; 3) 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); 4) 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 ntr-unul 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. Clasificarea magistralelor. Din punctul de vedere al componentelor conectate, avem: 1) magistrale procesor - memorie; 2) magistrale de intrare - ieire; 3) 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 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 folosesc 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).
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

33

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.

Procesor

Magistrala de extensie

Memorie

Procesor

Magistrala procesor - memorie

Memorie

Adaptor de magistrala

Adaptor de magistrala

Adaptor de magistrala

I/O Bus

I/O Bus

I/O Bus

Procesor

Magistrala procesor - memorie

Memorie

Adaptor de magistrala Adaptor de magistrala I/O Bus

Magistrala de extensie
Adaptor de magistrala I/O Bus

Avantajele remarcabile ale variantei a treia, cea mai complex, ar fi: magistrala procesor - memorie poate fi mult mai rapid dect magistralele de extensie sau de intrare - ieire; 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: 1) magistrale sincrone;
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

34

2) magistrale asincrone. O magistral sincron are pe liniile de control un ceas 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 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. Standarde de magistrale. 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 a priori de productorii perifericelor, cu compatibilitate maxim cu maina gazd. Un standard 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,

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

35

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. Sistemul de operare Windows 95 (i ulterioarele) respect specificaiile Plug-and-Play. Calculatoarele personale dispun de patru tipuri de arhitecturi de magistral i anume: ISA, EISA (Extended ISA), Micro Channel i PCI. Pentru conectarea dispozitivelor periferice de vitez redus la calculator s-a impus un standard de magistral unanim acceptat, anume USB (engl. Universal Serial Bus).

1.2.6. Transferul eficient de date. Procesoare specializate


Funcia principal a unei interfee de intrare / ieire este transferul de date. In funcie de gradul de implicare a procesorului n controlul transferului de date, avem: 1. transfer prin program n care UCP se implic total n efectuarea transferului. Un astfel de program de control al transferului este o rutin de intrare / ieire. Pe parcursul transferului de date procesorul trebuie s se adapteze la viteza de lucru a perifericului (n general mult mai mic dect a procesorului); 2. transfer prin ntreruperi n care UCP poate s foloseasc timpul liber dintre dou transferuri consecutive pentru executarea altor secvene de program (execuie concurent); tratarea ntreruperilor va fi reluat n capitolul al treilea; 3. transfer prin acces direct la memorie (DMA, engl. Direct Memory Access), fr intervenia efectiv a procesorului; aceast metod de transfer necesit un circuit specializat (numit controller DMA) care are posibilitatea de a prelua controlul magistralei sistem n vederea efecturii transferului propriu-zis de date; 4. transfer prin procesor de intrare/ieire care confer procesorului cel mai mare grad de libertate deoarece sarcinile legate de transfer sunt preluate de ctre o alt unitate de tip procesor, numit procesor de intrare / ieire. Alegerea modului optim de transfer pentru o anumit interfa depinde de o serie de factori, printre care: viteza de transfer a perifericului la care se
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

36

conecteaz, complexitatea perifericului respectiv, restriciile de cost i timp de realizare a interfeei respective. Implicit, structura i modul de funcionare a interfeei depind de modul de transfer adoptat. Situaia descris n paragrafele anterioare, n care fiecare interfa comunic cu UCP, poate fi nlocuit cu aceea n care un SC are incorporate unul sau mai multe procesoare externe crora le ncredineaz sarcina de a comunica direct cu dispozitivele periferice ataate sistemului. Un astfel de procesor se va numi procesor de intrare/ieire, IOP. Ca un caz particular, un procesor care comunic cu terminale aflate la distan (remote terminals) prin telefon sau alte medii de comunicare serial se va numi DCP, data communication processor. El este specializat pentru distribuirea i colectarea datelor direct de pe reele de comunicaii. O reea de comunicaie este compus din dispozitive periferice de diferite tipuri: imprimante, videoterminale interactive, senzori digitali i/sau uniti de intermediere a comunicrii la distan. Folosind un DCP, SC poate rezolva cereri diferite din reea de o manier partajat, astfel c se poate comporta ca i cnd ar deservi mai muli utilizatori simultan. Aceasta este maniera n care SC este capabil s opereze eficient n timp partajat (time - sharing). Principala diferen ntre IOP i DCP const n felul n care procesorul comunic cu perifericele. Un IOP comunic cu dispozitivele I/O printr-o magistral I/O comun. Astfel, toate perifericele partajeaz magistrala comun i o folosesc pentru transferul de date nspre/dinspre IOP. Un DCP comunic cu fiecare periferic n parte printr-o singur pereche de conductori (a single pair of wires). Att datele ct i informaiile de control sunt transferate de o manier serial, astfel c rata de transfer este mult ncetinit. Sarcina unui DCP este s transmit i s colecteze informaii digitale nspre/ dinspre fiecare terminal. Totodat, trebuie s determine dac informaia este de tip dat sau este informaie de control i s rspund tuturor cererilor stabilite anterior prin proceduri de funcionare. Terminalele aflate la distan sunt conectate la DCP prin linii telefonice sau prin alte modaliti de comunicare publice sau nchiriate. Deoarece liniile telefonice au fost la origine destinate comunicrii prin voce i SC comunic prin semnale digitale, trebuie folosit o modalitate de conversie ntre cele dou tipuri de semnale. Aceste convertoare se numesc: data sets, acoustic couplers sau modems. 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 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

37

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

38

1.3.

Unitatea de memorie

Unitatea de memorie este o colecie de componente destinate memorrii datelor i de circuite asociate lor, necesare transferului de informaii nspre i dinspre memorie.

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. 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

39

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). 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.2.

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 pe suport magnetic, adic benzile i discurile magnetice de toate tipurile. 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

40

Din punctul de vedere al unui programator, memoria trebuie prezentat ierarhic, pe nivele succesive de descriere, aa cum rezult din schema urmtoare: Memoria de arhivare Memorie extern Memoria secundar

Memoria operativ Memorie intern Memoria cache

UCP
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. 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

41

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 (din 1975). 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.

Banda magnetica Disc magnetic Procesor I/O

Memorie principala

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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

42

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 ierarhiilor de memorii: 1. memoria principal este implementat cu DRAM-uri; 2. nivelele mai apropiate de UCP (memoriile cache) folosesc SRAM-uri (Static RAM); 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, dei sunt considerabil mai lente. Tehnologia de memorare SRAM DRAM Disc magnetic Timp de acces standard 5 ns 25 ns 60 ns 120 ns 10 ms 20 ms $ / MB (1997) 100$ 250$ 5$ 10$ 0,1$ 0,2$

Intre discurile magnetice i memoria principal exist trei diferene eseniale: 1. discurile sunt nevolatile deoarece se bazeaz pe tehnologii de memorare prin magnetizare (polarizare); 2. discurile au acces lent deoarece se bazeaz pe dispozitive mecanice; 3. 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). 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.3.

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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

43

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. tipul: Proiectarea unei memorii cache trebuie s rspund la ntrebri de 1. care este dimensiunea optim a unei linii de cache? 2. cum se regsete informaia coninut n cache? 3. 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.

1.3.4.

Memoria virtual

Dup cum memoria cache asigur accesul rapid la informaiile cel mai recent utilizate, memoria principal poate aciona ca un cache pentru memoria secundar. Aceast tehnic se numete memorie virtual. Astfel, memoria virtual este un mecanism folosit pentru a extinde limitele memoriei fizice. ntr-un sistem cu memorie virtual, aceasta apare utilizatorului ca i cum integral spaiul logic de adrese este disponibil pentru memorare. De fapt, n orice moment, numai cteva pagini din spaiul logic de adrese sunt mapate peste spaiul fizic. Alte pagini (nici) nu sunt prezente (nici) n memoria principal. n schimb, informaia din aceste pagini este memorat temporar ntr-o memorie secundar de tip disc (al crui cost pe bit este mult mai sczut). Ori de cte ori este accesat o pagin care lipsete, sistemul de operare ncarc pagina respectiv de pe disc i memoreaz pe disc o alt pagin, care nu a fost recent referit. Prin acest mecanism, utilizatorul are impresia unei memorii fizice uriae, dar mai lente. Exist dou funciuni majore pentru memoria virtual: 1. s permit partajarea eficient i sigur a memoriei ntre mai multe programe; 2. s permit unui program utilizator unic s mreasc logic dimensiunile memoriei primare (principale). Pentru justificarea primei motivaii considerm un set de programe care se execut simultan pe o main. Memoria total solicitat de toate aceste programe poate fi mult mai mare dect cantitatea de memorie principal disponibil pe main, dar, numai o parte din aceast memorie este EFECTIV folosit la un moment dat. Memoria principal are nevoie numai de secvenele active (procesele curente) ale programelor principale la fel cum n cache se gsete la un moment dat numai secvena activ (procesul curent) ale UNUI program. Evident, pentru a permite mai multor programe s partajeze aceeai memorie, trebuie ca programele s fi fost protejate unele de altele (un program poate s scrie sau s citeasc NUMAI zona de memorie care i-a fost asigurat).
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

44

De exemplu, la compilarea simultan a mai multor programe nu se poate ti care programe partajeaz memoria n fiecare moment. De fapt, programele care partajeaz se modific dinamic (n timpul execuiei). Datorit acestei interaciuni dinamice trebuie s se compileze fiecare program n propriul lui spaiu de adres. Acesta va fi o secven de zone de memorie separat, accesibil numai programului respectiv. Mecanismul de adresare asociat memoriei virtuale asigur translatarea spaiului de adres al unui program n adrese fizice. Acest proces de traducere impune protecia spaiilor de adrese ntre ele. Pentru justificarea celei de-a doua motivaii a utilitii memoriei virtuale considerm urmtoarea situaie. Formal, dac un program a devenit prea mare pentru memorie atunci este anunat programatorul. Pentru a determina cauza necesarului mare de memorie, programatorul mparte programul n secvene i identific poriunile de cod care se exclud reciproc. Aceste depiri (overlays) sunt sau nu ncrcate, sub controlul programului utilizator. Depirile de acest tip se organizeaz n module, fiecare coninnd att date ct i cod. Apelurile ntre procedurile aflate n module diferite pot sugera programatorului ncapsularea modulelor. Toate aceste responsabiliti sunt preluate din grija programatorului de ctre memoria virtual, care va gestiona automat nivelele de memorie principal (DRAM-uri) i memorie secundar (hard-discuri) din structura ierarhic de organizare a memoriei. In contextul memoriei virtuale, memoria principal se mai numete i memorie fizic. O adres din memoria principal este o adres fizic. Mulimea acestor adrese se va numi spaiu de adrese. In contextul memoriei virtuale, UCP lucreaz cu adrese virtuale, care sunt translatate (printr-un mecanism combinat hard i soft) n adrese fizice. O adres logic este o adres utilizat de un programator ntr-o instruciune. Adresele care pot fi utilizate de un program constituie spaiul de adrese logice. Organizarea acestui spaiu de adrese definete arhitectura memoriei. In plus, memoria virtual simplific tehnica de ncrcare a programelor pentru execuie prin introducerea relocrii. Relocarea aranjeaz adresele virtuale folosite de un program la diferite adrese fizice, INAINTE ca adresele s fie folosite pentru a accesa memoria. Acest mecanism de relocare permite ncrcarea programului n orice locaie a memoriei principale cu acelai consum de resurse. Exist dou tehnici independente de implementare a memoriei virtuale: segmentarea i paginarea. Cele dou tehnici pot fi combinate n scopul extinderii virtuale a spaiului de adrese i pentru un control mai eficient al alocrii spaiului de memorare. Ambele metode presupun divizarea spaiului de memorie (intern i extern) n blocuri. La execuia unui program se ncarc n memoria intern operativ numai acele blocuri care sunt necesare pentru execuie. Segmentarea presupune divizarea memoriei n zone compacte numite segmente. Acestea pot s aib lungime fix sau variabil. Ele pot s ocupe intervale disjuncte n spaiul de adrese sau pot s se suprapun total sau
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

45

parial. Adresarea unei locaii de memorie se face prin precizarea segmentului i a adresei relative n cadrul segmentului respectiv. Un segment este caracterizat de: adresa de nceput a sa, lungime, drepturi de acces. Incrcarea segmentelor n memorie i amplasarea acestora n spaiul de adrese disponibil sunt sarcini ale sistemului de operare. Locul fizic n care se afl o anumit variabil sau secven de program este n general transparent pentru programator. Implementarea efectiv a segmentrii depinde de suportul hardware oferit de procesor. De exemplu, la modelele moderne de procesoare Intel (ncepnd cu 80386), segmentele logice sunt definite prin descriptori. Paginarea presupune divizarea memoriei n zone de lungime fix numite pagini. Paginile sunt ncrcate n memoria intern operativ numai dac sunt solicitate informaii coninute n acestea. Paginarea este gestionat de sistemul de operare i este transparent pentru utilizator.

1.3.5.

Memorii cu acces aleator RAM i ROM

In sistemele de calcul sunt utilizate frecvent dou structuri constructive de memorie: RAM (random access memory) i ROM (read only memory). Memoria RAM este memorie intern n care se efectueaz prelucrrile. In RAM se memoreaz cea mai mare parte a programelor, precum i datele care se modific n timpul funcionrii sistemului de calcul. Acest tip de memorii sunt cu acces direct, deci informaiile din RAM 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. Memoria RAM este volatil, deci coninutul ei se pierde la deconectarea electric a sistemului. Din 1975, au reinut atenia memoriile DRAM (Dynamic RAM). Mai multe memorii DRAM sunt folosite mpreun pentru a reine datele i instruciunile programului n execuie. Un model de bloc de memorie RAM este prezentat n figura urmtoare.
n linii de date de intrare k linii de adresa Read Write Unitate de memorie 2 cuvinte n biti pe cuvant n linii de date de iesire

Comunicarea cu memoria RAM se face prin linii de date de intrareieire, linii de adres i linii de control care precizeaz direcia de transfer a datelor.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

46

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. Memoria ROM este de dimensiuni mici i permite numai citirea informaiilor din ea. Aceste informaii sunt scrise n memoria ROM printr-o tehnologie special de ctre firma productoare a calculatorului o dat pentru totdeauna. In sistemul de calcul, un ROM este 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 este nevolatil, deci coninutul ei este permanent, adic nu este influenat de deconectarea sistemului de la reeaua electric. O 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 adresa mxn ROM m=2

n linii de date de iesire

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. Observaie. Iniial, acronimul RAM era folosit pentru memorie cu acces aleator la informaia stocat. Astzi, el este folosit pentru memorii de tip Read/Write pentru a l diferenia de memoria ROM, care este i ea cu acces aleator la informaie.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

47

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.133]. 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 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 propriuzise 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

48

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

49

CAPITOLUL 2
Componentele digitale ale unui sistem de calcul

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

50

CUPRINS
CAPITOLUL 2 ---------------------------------------------------------------------------------------------------- 49 2.1. CIRCUITE LOGICE ------------------------------------------------------------------------------------- 51 2.1.1. Pori logice. CLC. CLS -------------------------------------------------------------------------- 51 2.1.2. CLC aritmetice------------------------------------------------------------------------------------ 54 2.1.2.1. CLC sumator -------------------------------------------------------------------------------- 54 2.1.2.2. CLC scztor -------------------------------------------------------------------------------- 58 2.1.2.3. CLC sumator cu comutare----------------------------------------------------------------- 61 2.1.3. CLC decodoare ----------------------------------------------------------------------------------- 63 2.1.4. CLC multiplexoare ------------------------------------------------------------------------------- 64 2.1.5. CLS bistabile -------------------------------------------------------------------------------------- 66 2.1.6. Circuite integrate --------------------------------------------------------------------------------- 71 2.2. REGITRI ------------------------------------------------------------------------------------------------ 74 2.2.1. Regitri cu ncrcare paralel ------------------------------------------------------------------ 74 2.2.2. Regitri de deplasare----------------------------------------------------------------------------- 75 2.2.3. Numrtoare binare ----------------------------------------------------------------------------- 77 2.2.4. Regitri de incrementare ------------------------------------------------------------------------ 79 2.3. STRUCTURA DE BAZ A UNUI CALCULATOR ------------------------------------------------------- 81 2.3.1. Regitrii principali ai unui sistem de calcul -------------------------------------------------- 81 2.3.2. Unitatea de contorizare i control ------------------------------------------------------------- 82 2.3.3. Transferul datelor pe magistral --------------------------------------------------------------- 82

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

51

Un sistem digital este un ansamblu de componente 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.

2.1.
2.1.1.

Circuite logice
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...xB2 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. Caracterizarea funciilor logice elementare este dat n tabelul urmtor:

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

52

Nume

Simbol grafic

Expresie logic

I LOGIC

a b

x=a b sau x = a b

SAU LOGIC NU LOGIC

a b

x=a+b x = a

Tabelele de valori pentru aceste funcii sunt: a 0 0 1 1 b 0 1 0 1 ab 0 0 0 1 a 0 0 1 1 b 0 1 0 1 a+b 0 1 1 1 a 0 1 a 1 0

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 NAND i nu NOR sau nu XOR sau exclusiv (anticoinciden) Simbol grafic Expresie logic

a b

x = (a b)

a b

x = (a + b) x = ab + ab = =ab

a b

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

53

NXOR NOR exclusiv (echivalen) (coinciden) Funciile uzuale introduse anterior sunt definite de urmtoarele tabele de valori: a 0 0 1 1 b 0 1 0 1 (a b) 1 1 1 0 a 0 0 1 1 b 0 1 0 1 (a+b) 1 0 0 0 a 0 0 1 1 b 0 1 0 1 ab 0 1 1 0 a 0 0 1 1 b 0 1 0 1 (a b) 1 0 0 1
a b x

x = ab + ab = = (a b)

Pentru simplificarea funciilor logice trebuiesc cunoscute un minim de identiti din algebra boolean: (1) (2) (3) (4) (5) (6) (7) (8) a+0=a a+1=1 a+a=a a + a = 1 a+b=b+a a + (b + c) = (a + b) + c a(b + c) = ab + ac (a + b) = ab (10) a 0 = 0 (11) a 1 = a (12) a a = a (13) a a = 0 (14) ab = ba (15) a(bc) = (ab)c (16) a + bc = (a + b)(a + c) (17) (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:

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

54

1 2 n
. . .

1 2

CLC

. . .

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

2.1.2.

CLC aritmetice

Pentru efectuarea operaiilor aritmetice sistemul de calcul este prevzut cu componente specializate care alctuiesc unitatea aritmeticologic, 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. 2.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 = bnbn 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 1s2s1s0. 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:
an Tn-1

bn

bn-1 an-1

b1 Tn-2 ... T1

a1 T0

b0

a0

+
Tn sn

+
sn-1

+
s1

+ 2
s0

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

55

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, Tn, face parte din rezultat, ieirea aceasta s-a legat la mas. In consecin, ea va fi citit ca i cifr rezultat mpreun cu cifrele s0, s1, , sn ale sumei S. 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 T0 a0

+ 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 s0 i T0: a 0 0 1 1 b 0 1 0 1 a+b 0 1 1 10 => a0 0 0 1 1 b0 0 1 0 1 s0 0 1 1 0 T0 0 0 0 1

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

56

a0 b0

s0 T0

b) Circuitul sumator complet pentru adunarea cifrelor binare de rang i se reprezint schematic astfel:
bi Ti ai Ti-1

+
si

Pentru descrierea funcionrii circuitului vom proceda ca i n cazul circuitului semisumator. Pentru nceput, determinm expresiile logice ale funciilor si i Ti de ieire. Avem urmtorul tabel de valori pentru funciile si i Ti: ai 0 0 0 0 1 1 1 1 bi 0 0 1 1 0 0 1 1 Ti-1 0 1 0 1 0 1 0 1 si 0 1 1 0 1 0 0 1 Ti 0 0 0 1 0 1 1 1

De aici putem deduce urmtoarele expresii logice: si = aibiTi-1 + aibiTi-1 + aibiTi-1 + aibiTi-1 = = (aibi + aibi) Ti-1 + (aibi + aibi) Ti-1 = = (ai bi)Ti-1 + (ai bi) Ti-1 = = Ti-1 (ai bi) i

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

57

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

ai bi Ti-1

Pentru a reprezenta circuitul sumator total mai avem un singur pas, care const n determinarea unei expresii pentru Ti 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 = P0, T0 = G0, i T1 = G1 + P1T0 = G1 + P1G0, T2 = G2 + P2T1 = G2 + P2G1 + P2P1G0, T3 = G3 + P3G2 + P3P2G1 + P3P2P1G0. De aici, putem anuna c, pentru orice i, este verificat relaia Ti = Gi + PiG i -1 + PiPi -1G
i -2

+ + PiPi 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

58

Expresiile logice pentru cifrele sumei sunt: s0 = P0; s1 = G0 P1; s2 = (G1 + P1G0) P2; s3 = (G2 + P2G1 + P2P1G0) P3.

G0 P0 G1 P1 G2 P2 G3 P3

a0 b0

s0

a1 b1

s1

s2

a2 b2

s3

a3 b3

G0 P0 G1 P1 G2 P2 G3 P3

2.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 = bnbn 1b2b1b0. Notm cu D diferena celor dou numere A i B. Reprezentarea binar a lui D este D = dndn 1d2d1d0.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

59

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 I n-1

bn-1 an-1

b1 ... I1

a1 I0

b0

a0

In dn

dn-1

I n-2

d1

2
d0

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, In, face parte din rezultat, ieirea aceasta s-a legat la mas. In consecin, ea va fi citit ca i cifr rezultat mpreun cu cifrele d0, d1, , dn 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 I0 a0

2
d0

Pentru descrierea funcionrii circuitului vom determina expresiile ale funciilor logice de ieire, I 0 i d0. a0 0 0 1 1
Anca Vasilescu vasilex@info.unitbv.ro

b0 0 1 0 1

d0 0 1 1 0

I0 0 1 0 0

ARHITECTURA CALCULATOARELOR

60

De aici putem deduce urmtoarele expresii logice: d0 = a0b0 + a0b0 = a0 b0 i I 0 = a0 b0. Corespunztor, circuitul urmtoarele pori logice:
a0 b0

logic

semiscztor

se

reprezint

prin

d0 I0

b) Circuitul scztor complet pentru scderea cifrelor binare de rang i se reprezint schematic astfel:
bi Ii ai I i-1

di

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

De aici putem deduce urmtoarele expresii logice: di = aibiI i-1 + aibiIi-1 + aibiIi-1 + aibiI i-1 = = (aibi + aibi) I i-1 + (aibi + aibi) Ii-1 = = (ai bi)I i-1 + (ai bi) Ii-1 = = I i-1 (ai bi)
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

61

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 bi di

ai bi I i-1

Ii aibi

2.1.2.3.

CLC sumator cu comutare

Expresiile logice pentru funciile de ieire din circuitele aritmetice anterioare au fost: s0 = a0 b0 = d0 si = T i-1 (ai bi), () i= 1..n di = I i-1 (ai bi), () i= 1..n i, respectiv, T0 = a0b0 I 0 = a0b0 Ti= aibi + Ti-1(ai bi), () i= 1..n 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 ai i (ai 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:

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

62

x 0 0 1 1 i poate fi interpretat prin:

c 0 1 0 1

y=xc 0 1 1 0

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. Pentru operarea pe rangul i, acest circuit va consta din urmtoarele pori logice:

ai bi Ti-1 / I i-1 (0/1)c (ai c)bi Ti / I i (ai bi) c si / di

Dac pe intrarea c punem valoarea 0 atunci circuitul funcioneaz ca sumator, iar pentru c = 1, ca scztor. Semnificaiile pentru intrarea Ti-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 (Ti-1), iar pentru c=1 reprezint cifr de mprumut (Ii-1). In consecin, valorile pe ieiri se corespund astfel: si i Ti pentru c=0 i respectiv di i I i pentru c=1. Intrarea de condiie este folosit de dou ori i anume pentru comutarea valorii lui ai i a valorii ai bi. Prin comutarea valorii lui ai se asigur c, pentru c=0, la ieirea din poarta XOR avem ai, iar pentru c=1, la ieirea din poarta XOR avem ai. 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 Ti (Ti = aibi + ), respectiv I i (I i = aibi + ).
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

63

2.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 2n 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 2n 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 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

64

abc 000 001 010 011 100 101 110 111

D0 1 0 0 0 0 0 0 0

D1 0 1 0 0 0 0 0 0

D2 0 0 1 0 0 0 0 0

D3 0 0 0 1 0 0 0 0

D4 0 0 0 0 1 0 0 0

D5 0 0 0 0 0 1 0 0

D6 0 0 0 0 0 0 1 0

D7 0 0 0 0 0 0 0 1

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 D2 = abc D3 = abc c D4 = abc D5 = abc D6 = abc D7 = abc Enable a a b b c c

2.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).

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

65

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. In figura urmtoare considerm un multiplexor de tip 4x1.
I0 I1 I2 I3 s 0 s0 s1 s1 I0 I1 I2 I3 I2s1s0 I1s1s0 Y

I0s1s0

I3s1s0

s0 s1 I0 I1 I2 I3 s 0 s0 s1 s1

Acest multiplexor are 6 intrri = 4 de date + 2 de selecie i o ieire. Selecia intrrii se face conform cu urmtoarea tabel: s1 0 0 1 1 s0 0 1 0 1 Y I0 I1 I2 I3 s1s0 s1s0 s1s0 s1s0

Pe coloana a patra am trecut monoamele elementare, care definesc selectarea ieirii aa cum rezult din reprezentarea circuitului. 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

66

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). Un circuit basculant bistabil (pe scurt CBB sau bistabil dac se ine cont de timpul de propagare a semnalului electric prin liniile de circuit, atunci termenii nu sunt sinonimi [Tanenbaum, pag. 134]) este o structur de memorare bazat pe CLS sincrone. 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. Trecerea dintr-o stare n alta se face numai la primirea unui impuls de tact extern. Fiecare bistabil este capabil s memoreze un bit de informaie. 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: CBB de tip SR; CBB de tip D; CBB de tip JK; CBB 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. CBB 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:

S >C R

Q Q'

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

67

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

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, Qt d starea bistabilului nainte de aplicarea semnalelor S i R pe intrare, iar Qt+1 d starea bistabilului dup aplicarea semnalelor respective. Datorit existenei buclelor de reacie, rezult c starea Qt+1 depinde de intrrile S i R, dar i de starea anterioar, Qt. Conform legrii porilor logice n reprezentarea de mai sus, expresia logic pentru Qt+1 este Qt+1 = (R + (S + Qt)) = R (S + Qt) = RS + RQt. Aceast expresie determin urmtoarea tabel de valori pentru schimbarea de stare (Qt > Qt+1) a bistabilului de tip SR: S 0 0 0 0 1 1 1 1 R 0 0 1 1 0 0 1 1 Qt 0 1 0 1 0 1 0 1 Qt+1 0 1 0 0 1 1 0(*) 0(*) stare nedeterminat (comenzi interzise) punere pe 1 (setare) fr modificare de stare (Qt+1 coincide cu Qt) punere pe 0 (resetare)

Observaie. Pentru intrarea (1,1), funcionarea teoretic a circuitului determin valoarea 0 pentru Qt+1, indiferent de starea anterioar a bistabilului,
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

68

Qt. Cu toate acestea, practic, datorit ntrzierilor care apar n sistem la transmiterea semnalelor, starea Qt+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 Qt+1 de valorile puse pe intrrile n bistabil, S i R. S 0 0 1 1 R 0 1 0 1 Qt+1 Qt 0 1 ? fr modificare de stare resetare = punere pe 0 setare = punere pe 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. CBB de tip D (Data) este uor modificat fa de CBB 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 >C Q Q

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

S D >C R

Q Q

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 intrarea S i 1 pe intrarea R;
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

69

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. Funcionarea bistabilului de tip SR determin urmtoarea tabel de funcionare pentru bistabilul de tip D: D 0 1 Qt+1 0 1 resetare = punere pe 0 setare = punere pe 1

CBB de tip JK are dou intrri de date, J i K, intrarea de tact, C i ieirile identice cu tipul SR.
J >C K Q Q

Din punctul de vedere al circuitelor interne, un bistabil JK este unul SR completat cu dou pori SI i dou linii de reacie total. In figura urmtoare liniile de reacie total sunt marcate cu linie punctat.

(S)

(R)

Aceast structur intern determin schimbarea de stare Qt > Qt+1 conform cu urmtorul tabel: J 0 0 0 0 K 0 0 1 1 Qt 0 1 0 1 Qt+1 0 1 0 0 fr modificare de stare (Qt+1 coincide cu Qt) punere pe 0 (resetare)

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

70

1 1 1 1

0 0 1 1

0 1 0 1

1 1 1 0

punere pe 1 (setare) trecere n starea complementar

Corespunztor, tabela de funcionare pentru bistabilul de tip JK este urmtoarea: J 0 0 1 1 K 0 1 0 1 Qt+1 Qt 0 1 Qt Fr modificare de stare Resetare = punere pe 0 Setare = punere pe 1 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 Qt+1 se poate determina numai dac se cunoate starea anterioar Qt. CBB 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 >C

Q Q

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

Q Q

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:
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

71

T 0 1

Qt+1 Qt Qt Fr modificare de stare 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.

J C

(S) Q

(R)

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 K Q

CLC > C

CLS

2.1.6.

Circuite integrate

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

72

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. O dat cu mbuntirea tehnologiilor de realizare a circuitelor integrate, a crescut considerabil i numrul porilor care pot fi implementate pe un acelai chip. 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: SSI MSI LSI Small Scale Integration Medium Scale Integration Large Scale Integration mai puin de IN-OUT sunt conectate 10 pori direct la pinii circuitului 10-200 pori folosite n decodoare, sumatoare, regitri

200-cteva includ procesoare, sute de pori chipuri de memorie, module programabile dimensiuni mici, pre redus, deci foarte folosite n sistemele moderne.

VLSI

Very Large Scale Integration mii de pori

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); CI de tip MOS (Metal oxide semiconductor); Caracterizarea acestor tipuri de circuite integrate poate fi fcut astfel: TTL originea = DTL (diode transistor logic) care implementa poarta NAND cu diode i tranzistori; ulterior s-au nlocuit diodele cu tranzistori i, de aceea repetm cuvntul trazistor n denumire tensiunea maxim aplicabil este de 5V, iar valorile logice 0 i 1 corespund pentru 0V i respectiv 3.5V;

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

73

ECL

folosite n sisteme de vitez foarte tranzistorii opereaz ntr-o mare (supercalculatoare, procesoare stare nesaturat, condiie care de semnale) determin o ntrziere n propagarea semnalului de maxim 1-2 nanosecunde; este un tip de CI care folosete tranzistori unipolari, fa de TTL i ECL care folosesc tranzistori bipolari.

MOS

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

74

2.2.

Regitri

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. 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. Operaiile executate asupra datelor memorate n regitrii se numesc microoperaii. Exemple: deplasare, numrare, ncrcare, tergere. Pentru executarea fiecreia dintre aceste microoperaii exist structuri bine determinate ale regitrilor respectivi. In paragrafele urmtoare vom descrie structurile unora dintre aceti regitri.

2.2.1.

Regitri cu ncrcare paralel


Structura unui astfel de registru este urmtoarea:

Load

D I0 >C

A0 Q

D I1 >C

A1 Q

D I2 >C

A2 Q

D I3 >C

A3 Q

Clock

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

75

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 I0, 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 I0, I1, I2, I3, sunt ncrcate n registru. Valorile logice considerate a fi memorate n registru n fiecare moment sunt cele de pe liniile A0, A1, A2, A3. 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 este cea care 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 SI i, mai departe la intrarea D a aceluiai bistabil. Impulsul de tact se aplic pe intrarea Clock n fiecare moment. 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.

2.2.2.

Regitri 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

D >C

D >C

D >C

D >C

Serial Output

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

76

la aceeai surs. Atfel, toi bistabilii vor primi la acelai moment impulsul de tact care determin deplasarea informaiei. 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 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 S1

S0 S1

D >C

A0

Serial Input I0

4x1 0 MUX0
1 2 3

S0 S1

D >C

A1

4x1 0 MUX1
I1 1 2 3

S0 S1

A2

0 I2

4x1 MUX2

>C

1 2
3

S0 S1

D >C

A3

4x1 0 MUX 3
Serial Input I3 Clock 1 2 3

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

77

Reamintim c valorile memorate n registru la un moment dat sunt cele de pe liniile A0, A1, A2, A3 i ele se modific numai simultan, la primirea unui nou impuls de tact. Din schem se observ c: fiecare MUX preia pe intrarea sa 0 valoarea curent din registru, transmis pe linia de reacie; 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 S0 i S1, avem: S1 0 0 1 1 S0 0 1 0 1 Intrarea selectat de fiecare MUX 0 1 2 3 Fr modificare de stare Shift Right (down) Shift Left (up) Incrcare paralel

Cele dou intrri Serial Input introduc valori noi n registru pe poziiile eliberate de operaia de deplasare.

2.2.3.

Numrtoare binare

O numrtoare este un registru care, la aplicarea impulsurilor de ceas, urmeaz o succesiune prefixat de stri. 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.

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:
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

78

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. Concret, un registru de numrare pe patru bii are urmtoarea structur:
J >C Count Enable Q

A0

J >C

A1

J >C

A2

J >C

A3

K Output carry

Clock

Intrarea Count Enable este una de validare a funcionrii registrului, deci decide care sunt impulsurile de tact care determin trecerea

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

79

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 Ai este legat n cascad prin pori SI la intrrile n toi bistabilii de rang mai mare. 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.

2.2.4.

Regitri 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:
I3 I2 T2 I1 T1 I0 T0 1

+ 2
T3 A3

+ 2
A2

+ 2
A1

+ 2
A0

Rezumat. Considernd cunoscute structurile de circuite introduse anterior, n acest paragraf sunt descrise structurile interne la nivel de poart logic pentru principalii regitri de microoperaie. Pentru fiecare astfel de registru se va insista n mod special pe nelegerea modului de funcionare ca circuit secvenial. 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

80

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)

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

81

2.3.

Structura de baz a unui calculator

Un calculator minimal const din 8 regitri de baz, o unitate de memorie i o unitate de contorizare i control. Intre aceste componente trebuie s existe linii de comunicare, care formeaz magistrale. In acest paragraf vom lua n discuie aceste componente, mai puin unitatea de memorie care a fost prezentat anterior.

2.3.1.

Regitrii principali ai unui sistem de calcul

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. Pentru o astfel de prelucrare, trebuie s existe: 1. o unitate de calcul care s determine n fiecare moment adresa de memorie a urmtoarei instruciuni de executat; 2. o unitate care s memoreze codul surs al instruciunii citite; 3. regitri de manipulare a datelor; 4. regitri de memorare a diferitelor adrese care intervin n program. Pentru aceste funcii, regitrii unui SC pe 16 bii sunt: Nr crt 1 2 3 4 5 6 7 8 Simbol DR AR AC IR PC TR INPR OUTR Nr. de bii 16 12 16 16 12 16 8 8 Nume Data register Address register Accumulator Instruction register Program counter Temporary register Input register Output register Funcie Reine un operand memorat Reine o adres de memorie Registru de prelucrare Reine cod de instruciune Reine adresa unei instruciuni Reine date intermediare Reine un caracter de intrare Reine un caracter de ieire

Deoarece registrul DR are 16 = 24 bii rezult c n acest registru se vor putea reprezenta 216 combinaii binare. Lungimea lui DR este egal cu lungimea cuvntului sistemului de calcul. Rezult c acest registru recunoate 216 : 24 = 212 = 4096 cuvinte (1 cuvnt = 2 octei = 16 bii = 24 bii). Registrul AR are 12 bii deoarece pe att se reprezint adresele de memorie. Registrul PC reine adresa urmtoarei instruciuni care trebuie citit din memorie dup ce instruciunea curent va fi executat.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

82

2.3.2.

Unitatea de contorizare i control

Cronometrarea pentru toate registrele sistemului este asigurat de o unitate (ceas) care genereaz impulsuri de tact. Un impuls de ceas nu schimb starea unui registru dect dac aceasta este o operaie permis conform cu un semnal de control. Acesta este generat de unitatea de control a sistemului de calcul. Exist dou tipuri de organizare a controlului: control bazat pe circuite i control microprogramat. Prima variant 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.

2.3.3.

Transferul datelor 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

83

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 MUX 3 D3 C3 B3 A3

4x1 MUX 2 D2 C2 B2 A2

4x1 MUX 1 D1 C1 B1 A]

4x1 MUX 0 D0 C0 B0 A0

3 2 1 0 Registrul D

3 2 1 0 Registrul C

3 2 1 0 Registrul B

3 2 1 0 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 0 0 1 1 Rezumat. In acest paragraf sunt enumerai principalii regitrii care intr n structura unui calculator elementar. Detalierea unor aspecte legate de structura i rolul n sistem a acestor regitrii va face obiectul capitolului al treilea i al patrulea. S0 0 1 0 1 Register selected A B C D

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

84

Partea central 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 (MUX, registru) folosite.

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

85

CAPITOLUL 3
Unitatea central de prelucrare

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

86

CUPRINS
CAPITOLUL 3 ---------------------------------------------------------------------------------------------------- 85 3.1. TRANSFERUL DATELOR (ENGL., DATAPATH) ------------------------------------------------------- 87 3.2. ORGANIZAREA STIVEI --------------------------------------------------------------------------------- 91 3.3. MICROOPERAIE. INSTRUCIUNE. PROGRAM ---------------------------------------------------- 95 3.4. CODURILE INSTRUCIUNILOR ----------------------------------------------------------------------- 96 3.5. MODURI DE ADRESARE------------------------------------------------------------------------------ 100 3.6. CLASIFICAREA INSTRUCIUNILOR ---------------------------------------------------------------- 102 3.6.1. Instruciuni pentru transferul datelor -------------------------------------------------------- 104 3.6.2. Instruciuni pentru manipularea datelor ---------------------------------------------------- 104 3.6.3. Instruciuni pentru controlul programului -------------------------------------------------- 105 3.7. PRELUCRAREA INSTRUCIUNILOR UNUI PROGRAM -------------------------------------------- 111 3.8. MICROPROCESORUL -------------------------------------------------------------------------------- 111 3.8.1. Caracteristici ----------------------------------------------------------------------------------- 112 3.8.2. Setul de instruciuni ale microprocesorului ------------------------------------------------- 114 3.8.3. Modelarea funcionrii unui procesor ------------------------------------------------------- 115 3.8.3.1. Maina cu trei adrese --------------------------------------------------------------------- 115 3.8.3.2. Maina cu o adres ----------------------------------------------------------------------- 118 3.8.4. Structura intern de baz a unui microprocesor I 80x86 --------------------------------- 122 3.9. COPROCESOARE MATEMATICE -------------------------------------------------------------------- 125 3.10. MULTIPROCESARE ----------------------------------------------------------------------------------- 125

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

87

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). UCP const din trei pri fundamentale, reprezentate n figura urmtoare: Registri Controlul functionarii SC UAL Regitrii memoreaz datele intermediare folosite n timpul executrii instruciunilor. Unitatea aritmetico logic, UAL, execut microoperaiile solicitate. Unitatea de control supervizeaz transferul informaiilor ntre regitrii i anun UAL asupra urmtoarei operaii de efectuat. In acest capitol vom descrie modul n care comunic regitrii cu UAL prin intermediul liniilor de magistral i vom explica mecanismul de lucru cu stiva. Apoi, vom descrie tipuri pentru formatele instruciunilor, moduri de acces la memorie i instruciuni care trebuiesc s existe n setul minimal al oricrui SC. In final, vom fi n msur s abordm componenta fizic fundamental a unui calculator, procesorul.

3.1.

Transferul 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 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

88

Input

R1 R2 R3 R4 R5 R6 6666 R7 666 Load (7 linii) MUX A MUX B

SELA

SELB

3x8 Decodor

Bus A

Bus B

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 SELA 3 SELB 3 SELD 5 OPR

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:

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

89

Registrul selectat de Coninutul pentru 000 001 010 011 100 101 110 111 SELA Input R1 R2 R3 R4 R5 R6 R7 SELB Input R1 R2 R3 R4 R5 R6 R7 SELD nimic R1 R2 R3 R4 R5 R6 R7

Coninutul pentru OPR


00000 00001 00010 00101 00110 01000 01010 01100 01110 10000 11000

Operaia
Transfer A Increment A Add A + B Substract A B Decrement A AND A i B OR A i B XOR A i B Complement A Shift right A Shift left A

Simbolul
TSFA INCA ADD SUB DECA AND OR XOR COMA SHRA SHLA

Rezumat. Acest paragraf conine 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:
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

90

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: 01010001100010 10001111101100 00111000110000 11100111100001

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

91

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 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 ncrcat n vrful stivei. Operaiile care se pot efectua asupra unei stive sunt cele de inserare i tergere. Inserarea se mai numete push, iar tergerea, pop. In stiva unui SC nu se insereaz i nu se terge nimic. Aceste operaii sunt simulate prin incrementarea i decrementarea valorii din registrul 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 EMTY

SP

C B A

3 2 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

92

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 = 2 . Astfel, SP nu poate memora o valoare mai mare dect 63 = 111111. Cnd 63 este mrit cu o unitate rezultatul este 0 deoarece
6

111111 + 1 = 1000000 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 dresa 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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

93

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. 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.
Adresa
1000

PC

Program
(instructiuni)
2000

AR

Date (operanzi)
3000

SP

Stiva

3997 3998 3999 4000 4001

DR

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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

94

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. 1. 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? 2. Ce se poate spune despre rezultatul unei operaii push pe stiv dac n urma efecturii ei coninutul registrului SP este nul?

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

95

3.3.

Microoperaie. Instruciune. Program


1. mulimea de regitri i funciile lor; 2. secvena de microoperaii de executat pentru informaiile binare depuse n fiecare registru; 3. instruciunea care iniializeaz fiecare secven de microoperaii.

Organizarea hardware intern a unui SC este bine definit dac se specific:

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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

96

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 nivel nalt.

3.4.

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. 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. 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 2k regitri din sistem. Cuvintele de memorie se dau n codul instruciunii prin adresele lor.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

97

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. 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:

15

12 11 Address

Memory 4096 x 16

OpCode

Instruction Format Instructions (program) 15 Binary Operand Operands (data) 0

Processor Register AC

Instruciunile sunt depuse ntr-o zon de memorie distinct fa de cea n care sunt depuse datele. Aici avem o memorie cu 4096 = 212 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 = 24 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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

98

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 I OpC ode 12 11 Address 0

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 Register operation 0

OpCode

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. Exemplele care se dau n acest paragraf sunt eseniale pentru nelegerea modurilor de adresare. Astfel, fiecare exemplu reprezint o situaie particular, concret, pentru combinaiile de valori (semnificaii) pe care le pot avea cele dou zone ale codului de instruciune: zona de cod i zona de adres.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

99

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

100

3.5.

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

101

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 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 instruciunile unui program oarecare arat c un program poate fi ctre un alt program, care va fi pentru primul un interpretor. Din de vedere execuia unui program se poate face prin hardware,
Anca Vasilescu vasilex@info.unitbv.ro

aplicat pe executat de acest punct caz n care

ARHITECTURA CALCULATOARELOR

102

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. 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 1. modul implicit 2. modul direct (B) adresare n mod registru 1. adresare indirect 2. adresare absolut (C) adresare cu registru de calcul 1. adresare relativ 2. adresare indexat 3. adresare cu registru de baz.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

103

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

104

3.6.

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: 1. instruciuni pentru transferul datelor asigur transferul datelor dintr-o locaie n alta, fr modificarea coninutului; 2. instruciuni pentru manipularea datelor efectueaz operaiile aritmetice, logice i cele de deplasare; 3. 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 asupra microprogramului.

3.6.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.6.2.

Instruciuni pentru manipularea datelor

Aceast clas de instruciuni reprezint posibilitile de calcul ale sistemului. Din aceast categorie fac parte: a) instruciunile aritmetice; b) instruciunile logice i cele de prelucrare la nivel de bit; c) 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

105

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.6.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 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 se 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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

106

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 C8 este 1; S = 1 dac bitul de ordin maxim (bitul de semn) F7 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 8 C7 8-bit ALU C8 V Z S C F7 Check for zero Output F7 F0 B 8

8 Output F

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: 1. 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; 2. controlul este transferat la nceputul subrutinei.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

107

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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

108

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 handlerelor 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 handlerului.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

109

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. 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 constituind partea esenial a handler-ului. 4) 5) generat ntreruperea, aceasta

Ridicarea restriciilor impuse la etapa 2. 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: (1) instruciuni pentru transferul datelor a) transfer ntre memorie i regitri de prelucrare b) transfer ntre regitri de prelucrare i stiv c) transfer ntre doi regitri de prelucrare (2) instruciuni pentru gestionarea datelor a) instruciuni aritmetice b) instruciuni logice i de prelucrare la nivel de bit c) instruciuni de deplasare (3) instruciuni de control al programului.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

110

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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

111

3.7.

Prelucrarea instruciunilor unui program

Prelucrarea instruciunilor unui program de ctre UCP const n principal n urmtoarele etape: 1. UCC emite semnale de comand ctre dispozitivul periferic de intrare pentru transferul de instruciuni i de date ctre memoria RAM; 2. UCC extrage instruciunile din memoria intern i le interpreteaz (decodific); 3. n funcie de interpretarea fcut, UCC emite semnale de comand ctre UAL i RAM; 4. datele auxiliare solicitate din RAM sunt transferate n UAL, unde se execut, sub supravegherea UCC, operaia aritmetic sau logic decodificat; 5. rezultatele obinute n UAL sunt dirijate de UCC ctre RAM; 6. se repet etapele de la 1. la 5. pentru fiecare instruciune; 7. Dup executarea tuturor instruciunilor, UCC direcioneaz RAM s transfere rezultatele ctre un dispozitiv periferic de ieire. Verificare. 1. Identificai n structura fizic a sistemului de calcul unitile funcionale corespunztoare componentelor implicate n acest paragraf.

IN

RAM UAL UCC

RAM UAL UCC

RAM UAL UCC

RAM UAL UCC

RAM UAL UCC

RAM UAL UCC

OUT

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

112

3.8.

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.

3.8.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 poate 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 216 octei, n timp ce pentru un cuvnt de 32 bii, microprocesorul va putea accesa 232 octei. In tabelul urmtor prezentm pe scurt evoluia cronologic a microprocesoarelor, precum i principalele caracteristici: -procesor I 8086
Anca Vasilescu vasilex@info.unitbv.ro

Anul 1978

Lg cuvnt 16

-MHz5-10

-Mips0,33

ARHITECTURA CALCULATOARELOR

113

I 8088 I 80286 I 80386 SX I 80386 DX I 80486 SX I 80486 DX I 80486 DX/2 I 80486 DX/4 Pentium

1981 1982 1985 1989

16 16 32 32 32 32 32 32

4 6 20 20 i 30 33 > 33 50 i 66 100 66

0,33 1,2 2,5 6 16,5 20 54 75 112

1993

64

Mips (Mega-instruciuni pe secund) este o caracteristic ce msoar capacitatea de prelucrare. 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. Microprocesor I 8086 I 8088 I 80286 I 80386 SX I 80386 DX I 80486 SX I 80486 DX I 80486 DX/2 I 80486 DX/4 XT - eXTended AT - Advanced Technology 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. Calculator personal IBM PC IBM PC XT IBM PC AT 286 IBM PC AT 386 SX IBM PC AT 386 DX IBM PC AT 486 SX IBM PC AT 486 DX IBM PC AT 486 DX2 IBM PC AT 486 DX4

IBM - International Business Machine (Big Blue)

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

114

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. 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, destinat PC-urilor de duzin.

3.8.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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

115

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

RISC

3.8.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.8.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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

116

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. 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 instruciuni pot fi identificate printr-un nume:
nume: cod adr1 adr2 adr3

O astfel de instruciune se execut prin:

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. 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:

+ *
Anca Vasilescu vasilex@info.unitbv.ro

A A A

B B B

C C C

Adunare Scdere Inmulire

C:=A+B C:=AB C:=A*B

ARHITECTURA CALCULATOARELOR

117

/ || []

A A A A

B -

C C C C

Imprire Radical de ord 2 Valoare absolut Partea ntreag

C:=A/B C:= A C:=|A| 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 condiionat: < > = A A A A A A B B B B B B C C C C C C Salt la instruiunea indicat prin C dac A < B Salt la instruiunea indicat prin C dac A B Salt la instruiunea indicat prin C dac A > B Salt la instruiunea indicat prin C dac A B Salt la instruiunea indicat prin C dac A = B Salt la instruiunea indicat prin C dac A B

3. Instruciunile speciale ale mainii cu trei adrese sunt: CIT, TIP i STOP. CIT TIP STOP A A Citete de la intrare valoarea unui numr i o depune n locaia indicat prin adresa A Afieaz la ieire valoarea coninut n locaia indicat prin adresa A Incheie execuia programului (oprire)

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

118

3.8.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. 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; are capacitatea de un cuvnt; este folosit pentru a accesa componentele unui vector de numere memorat n zona de date; este utilizat pentru a se permite comunicarea ntre diferite pri ale unui program.

2. registrul index, I

3. registrul de baz, B

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
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

119

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; 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. 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. grupe: Maina cu o adres recunoate 28 instruciuni considerate n patru instruciuni pentru transferuri de date; instruciuni de calcul; instruciuni de salt; instruciuni speciale.

a) b) c) d)

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 2 3 4 I I X Valoarea indicat de X se depune n registrul acumulator A X Valoarea din registrul acumulator A se depune n locaia din zona de date indicat de X Coninutul registrului index I se depune n registrul acumulator A Coninutul registrului acumulator A se depune n registrul index I

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

120

5 6 7 8

B B

Coninutul registrului de baz B se depune n registrul acumulator A Coninutul registrului acumulator A se depune n registrul de baz B X Valoarea indicat prin X este depus n vrful stivei; numrul elementelor din stiv crete cu 1 X Este extras elementul din vrful stivei i este depus n locaia de date indicat de X; numrul elementelor din stiv scade cu 1 Valoarea din registrul acumulator A este depus n vrful stivei; numrul elementelor din stiv crete cu 1 Este extras elementul din vrful stivei i este depus n registrul acumulator A; numrul elementelor din stiv scade cu 1

9 10

b) Instruciunile de calcul coincid cu cele recunoscute de maina cu trei adrese: 11 12 13 14 15 16 17 + * / || [] X X X X X X X Adunare Scdere Inmulire Imprire Radical de ord 2 Valoare absolut Partea ntreag A:=A+X A:=AX A:=A*X A:=A/X A:= X A:=|X| 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

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

121

20 21 22 23 24

> =

X X X X X

Salt la X dac A 0 Salt la X dac A > 0 Salt la X dac A 0 Salt la X dac A = 0 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 Citete de la intrare valoarea unui numr i o depune n locaia din zona de date indicat de X Afieaz la ieire valoarea numrului aflat n locaia din zona de date indicat de X Incheie execuia programului (oprire)

26 27 28

CIT TIP STOP

X X

NOTIE

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

122

3.8.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 generale

Registre de segment Contor de program

Sumator adrese
16 biti

20 biti

Interfata cu memoria interna

Magistrala interna de 16 biti

Comanda de magistrala Registre temporare UAL Registru de stare Comanda UAL


8 biti

16 biti

Registru 6 Bytes

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 8 AH BH CH DH AL BL CL DL 7 0

b) registrul indicator de stiv de 16 bii. Acesta conine adresa vrfului stivei, SP (stack pointer).
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

123

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: 15
X

14
X

13
X

12
X

11
OF

10
DF

9
IF

8
TF

7
SF

6
ZF

5
X

4
AF

3
X

2
PF

1
X

0
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.
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

124

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: 1) 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; 2) 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 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.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

125

3.9.

Coprocesoare matematice

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.

3.10.

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 procesoare 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. Reelele locale sunt apreciate ca cele mai adecvate i rspndite suporturi fizice pentru sistemele cu prelucrare distribuit.

Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

126

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: 1. mai multe sarcini independente pot fi executate n paralel sau 2. 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 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);
Anca Vasilescu vasilex@info.unitbv.ro

ARHITECTURA CALCULATOARELOR

127

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 [13]. 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

Anca Vasilescu vasilex@info.unitbv.ro

S-ar putea să vă placă și