Sunteți pe pagina 1din 87

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor

Un calculator modern reprezint un sistem complex care nglobeaz n construcia sa tehnologii diverse: electronice, magnetice, electromecanice, electrono-optice etc. Astfel, n prezent, pentru realizarea unitii centrale a unui calculator, care asigur stocarea programului i a datelor pe termen scurt, secvenierea instruciunilor i efectuarea operaiilor de calcul, se utilizeaz, cu precdere, tehnologii microelectronice. Pentru stocarea datelor i a programelor pe termen lung se folosesc suporturi magnetice sub form de benzi sau discuri, bazate pe diverse tehnologii magnetice/optice. Pentru implementarea operaiilor de intrare/ieire sunt folosite in principal tehnologiile electronice si electromecanice.

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor


z z

Evoluia calculatoarelor este strns legat de progresele nregistrate de tehnologiile amintite mai sus. Cercetrile efectuate pentru realizarea de calculatoare ct mai performante au impulsionat aprofundarea unor noi aspecte n cadrul acestor tehnologii. Calculatoarele moderne reprezint rezultatul unui ndelungat proces de cutri ale unor mijloace tehnice adecvate pentru mecanizarea i automatizarea operaiilor de calcul. n evoluia mijloacelor de tehnic de calcul se pot evidenia mai multe etape. 1. Etapa instrumentelor de calcul. Secolul 12 en., China - abacul. Sfarsitul sec. 17 si inceputul sec.18 -rigla de calcul.

z z z

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor


2. z

z z z

z z z z z z z

Etapa mainilor mecanice de calcul Aceste maini aveau la baz angrenaje cu roi dinate, roata dinat fiind considerat un element cu mai multe stri stabile. Fiecare stare codific o cifr zecimal. 1642. B. Pascal realizeaz o main de adunat. 1694. Leibniz construiete o main de adunat i nmulit. 1823. Babbage proiecteaz primul calculator cu execuie automat a programului. Proiectul prevedea principalele elemente ale calculatoarelor moderne: unitate de memorie; unitate de calcul; unitate de comand; uniti de intrare, ieire. 1872 - se realizeaz prima main de calcul cu imprimanta. 1892. - se construiete o main de calcul pentru birou perfecionat. 1912. - se ncepe producia de mas a mainilor mecanice de calculat, cu patru operaii aritmetice.

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor


3. Maini electromecanice de calculat
z z

Aceste maini sunt bazate pe roi dinate angrenate, acionate electric. 1930. se ncepe producia de mas a mainilor electromecanice de calculat prevzute cu operaiile: adunare, scdere, nmulire, mprire, rdcin ptrat, subtotal etc. 1937 - 1945. apar mainile electromecanice de calculat, bazate pe relee electromagnetice (Mark I ), cu program cablat. Releele electromagnetice i contactele lor joac rolul elementelor bistabile. Cu ajutorul lor se pot codifica cifrele sistemului de numeraie binar. In 1937 la Universitatea Harward, s-a propus proiectul Calculatorului cu Secven Automat de Comand. Acesta folosea principiile enunate de Ch. Babbage i tehnologia de implementare pentru calculatoarele electromecanice produse de IBM. Construcia calculatorului Mark I a nceput n 1939 i s-a terminat la 7 august 1944, dat ce marcheaz nceputul erei calculatoarelor.

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor


z

4. Mainile electronice de calcul cu program memorat Acestea au fost bazate pe: tuburi electronice; tranzistori; circuite integrate;
z z z z z

z
z z z

pe scara simpla (SSI: sub 20 de tranzistori pe pastila de Si); pe scara medie (MSI: 20 - 1000 de tranzistori pe pastila de Si); pe scara larga (LSI: 1000 50.000 de tranzistori pe pastila de SI); pe scara foarte larga (VLSI: 50.000 100.0000 de tranzistori pe pastila de Si); pe scara ultra larga (ULSI: peste 1.000.000 de tranzistori pe pastila de Si).

Primele calculatoare realizate cu tuburi electronice


z

1943: la Universitatea din Pennsylvania a nceput construcia primului calculator bazat pe tuburi electronice ENIAC (Electronic Numerical Integrator And Computer). Cu aceast ocazie s-a folosit ideea de a stoca n aceeai memorie, att datele, ct i programul, ceea ce a permis modificarea relativ uoara a programului; 1945: a nceput construcia unui alt calculator electronic EDVAC (Electronic Discrete Variable Automatic Computer) pe baza lucrrii lui J. von Neumann. Dup elaborarea structurii logice de baza a calculatorului cu program memorat, au fost stabilite entitile funcionale care concurau la realizarea acestuia:
z z z z z

un mediu de intrare care s permit introducerea unui numr nelimitat de operanzi i instruciuni; o memorie din care se citesc operanzi sau instruciuni i n care se pot introduce, n ordinea dorit, rezultatele; o seciune de calcul, capabil s efectueze operaii aritmetice sau logice asupra operanzilor citii din memorie; un mediu de ieire, care s permit livrarea unui numr nelimitat de rezultate ctre utilizator; o unitate de comand, capabil s interpreteze instruciunile citite din memorie i s selecteze diverse variante de desfurare a operaiilor, n funcie de rezultatele obinute pe parcurs.

Generaii
z z z

Marea majoritate a calculatoarelor construite pan n prezent se bazeaz pe aceste principii, purtnd numele de calculatoare de tip von Neumann. Pornind de la calculatorul EDVAC, in 1951, s-a realizat primul calculator comercial UNIVAC 1. n 1951, la Universitatea Princeton, von Neumann a coordonat realizarea calculatorului IAS, care dispunea de posibilitatea de a-i modifica partea de adres din instruciune. Aceast facilitate asigura reducerea spaiului ocupat n memorie de ctre program, ceea ce permite prelucrarea unor seturi mai mari de date. Avnd n vedere tehnologiile utilizate in construcia calculatoarelor, ncepnd cu anul 1946, se pot evidenia cinci generaii de calculatoare. Generatia I (1946-1956).
z z z z

Hardware calculatoare: relee, tuburi electronice, tambur magnetic, tub catodic. Software calculatoare: programe cablate, cod main, autocod. Exemple de calculatoare: ENIAC, EDVAC, UNIVAC 1, IBM 650, i produse n Romnia: CIFA 1-4, CIFA 101-102, MARICCA, MECIPT-1 . Performantele calculatoarelor: capacitate memorie 2 Koct, viteza de operare 10.000 instr/s.

Generaii
z

Generatia a II-a ( 1957 - 1963 ). z Hardware calculatoare: tranzistoare, memorii cu ferite, cablaj imprimat, discuri magnetice. z Software calculatoare: limbaje de nivel nalt (Algol, FORTRAN). z Exemple de calculatoare: NCR 501, IBM 7094, CDC 6600, DACICC1/2 i din Romnia CET 500/501, MECIPT-2,DACICC-200. z Performantele calculatoarelor: capacitatea memoriei 32 Koct, viteza de operare 2.000.000 instr/s. Generatia a III-a (1964 -1981) z Hardware calculatoare: circuite integrate, memorii semiconductoare, cablaj imprimat multistrat, microprocesoare, discuri magnetice, minicalculatoare. z Software calculatoare: limbaje de nivel foarte inalt, programare structurata, LISP, sisteme de operare orientate pe limbaje ( Algol, Pascal ),timp partajat, grafica pe calculator, baze de date. z Exemple de calculatoare: IBM 360-370, PDP11/XX, Spectra 70, Honeywell 200, Cray-1, Illiac IV, Cyber 205, RIAD 1-2, i din Romnia Felix C-256/512/1024, Independent 100/102F, Coral 4001/4030. z Performantele calculatoarelor: capacitatea memoriei 2 Moct, viteza de operare 5 mil.

Generaii
z

Generatia a IV-a (1982 - 1989). z Hardware calculatoare: VLSI, sisteme distribuite, discuri optice, microcalculatoare de 16/32 bii, superminicalculatoare, supercalculatoare. z Software calculatoare: sisteme de operare evoluate, ADA, pachete de programe de larg utilizare, sisteme expert, limbaje orientate pe obiecte, baze de date relaionale. z Exemple de calculatoare: IBM-43xx, VAX-11/7xx, IBM-308x, RIAD3, i produse n Romnia: Coral 4021, Independent 106, Felix 5000, Coral 8730. z Performantele calculatoarelor: capacitatea memoriei 8 Moct, viteza de operare 30 mil.instr/s

Generaii
z

Generatia a V-a ( 1990 - ). z Hardware calculatoare: tehnici evoluate de mpachetare i interconectare, ULSI, proiectare circuite integrate 3D, componente optice, arhitecturi paralele pentru prelucrarea inferenelor, reele neuronale. z Software calculatoare: sisteme de operare cu interfa evoluat cu utilizatorul, limbaje concurente, programare funcional, prelucrare simbolic (limbaje naturale, recunoaterea formelor: imagini/voce), Prolog, baze de cunotine, sisteme expert evoluate, CAD, CAM, CAE, multimedia, realitate virtuala, web. z Exemple de calculatoare: staii de lucru, super-calculatoare, reele de supercalculatoare, z Performantele calculatoarelor: capacitatea memoriei zecisute Moct, viteza de operare 1 Ginstr - 1 Tinstr/s.

Scurt istoric privind dezvoltarea echipamentelor de prelucrare a datelor


z

n prezent pentru circuitele integrate folosite in calculatoarele electronice se folosesc numeroase tehnologii care se pot grupa in tehnologii bipolare si tehnologii MOS. Circuitele integrate care se folosesc n construcia calculatoarelor se plaseaz n categoriile: standard, specifice aplicaiilor (ASIC - Application Specific Integrated Circuits ) i programabile/configurabile. Se amintete c tranzistorul a fost inventat in anul 1947 si c primele exemplare ocupau o suprafata de 3,5 mm2. La sfritul anilor 50 a aprut circuitul integrat care, grupnd pe aceeai pastil mai muli tranzistori, a avut o evoluie spectaculoas n sensul dublrii numrului de componente pe pastil, la fiecare 18 luni. Aceasta s-a datorat n primul rnd numeroaselor perfecionri ale proceselor tehnologice, care permit rezoluii de ordinul a 2,5m 0,18 m. In continuare se vor da unele date privind tehnologiile circuitelor VLSI, in general, evolutia memoriilor si a procesoarelor.

Elemente introductive privind informaia


z

Memorarea, regsirea i prelucrarea informaiei reprezint operaii de baz ntlnite n studiul oricrui capitol al tiinei calculatoarelor. n acest context informaia poate fi definit drept materialul nregistrat sau comunicat, care are asociat, cu reprezentarea lui, simbolic o anumita semnificaie . Sub forma cea mai generala informaia este considerat ca un element de nlturare/eliminare a incertitudinii. Se consider un sistem care reprezint o mulime format din n obiecte, avnd proprietatea c fiecare obiect i posed o probabilitate independent pi de apariie. Incertitudinea H, asociata acestui sistem, este definita ca:
H = pi log 2 ( pi )
i =1 n

Elemente introductive privind informaia


z

Presupunem existena unei urne cu bile numerotate de la 1 la 8. Probabilitatea de a extrage o cifra data, in urma unei trageri, este egala cu 1/8. Incertitudinea medie asociat cu numrul selectat poate fi calculat cu ajutorul formulei de mai sus:
8

z
z

H = - (1/8).log 2 (1/8) = - log2 (1/8) = log2 (8) = 3 bii.


i=1

Pentru a msura incertitudinea asociat sistemului s-a folosit o unitate de msur numit bit. Un bit este o msur a incertitudinii sau a informaiei asociate unei condiii cu dou stri: fals/adevrat, nchis/deschis etc. Cantitatea de informaie care se ctiga este egal cu cantitatea de incertitudine nlturat (in cazul de fa prin aflarea numrului extras din urn). n situaia numrului selectat din urn, s-a calculat c sunt necesari trei bii de informaie pentru a afla numrul de pe bila extras. Din punctul de vedere al definiiei bitului, aceasta nseamn c este permis punerea a trei ntrebri cu rspuns de tipul Da - Nu, pentru a cunoate numrul extras:

Elemente introductive privind informaia


z

Pentru a identifica o bil putem forma un mesaj (cod) alctuit din trei bii.

Elemente introductive privind informaia


z

n tabelul de mai jos se prezint dou scheme posibile de mesaje reprezentnd cele opt numere nscrise pe bilele din urn:

Se constat c, pentru a specifica identitatea unui numr nscris pe bila extras, se pot folosi mai multe scheme de mesaje. Legtura dintre mesaj i informaie reprezint o aplicaie c, care asociaz (pune n coresponden) mesajului M i informaia I.

Elemente introductive privind informaia


z z

Corespondena c poart numele de schem de codificare (cod, regula, de interpretare, cifru , cheie etc.). In orice schema de codificare, reprezentnd o mulime cu n elemente, cu probabiliti egale de selectare, cel puin unul din coduri trebuie s aib o lungime egal sau mai mare dect msura informaiei asociat mulimii date, adic:
m

z z

H = -
i=1

pi log 2(pi)

Astfel, n cazul unui sistem fizic, care se poate afla n 13 stri distincte, codificarea strilor se va realiza cu mesaje avnd lungimea de 4 bii. Mesajele de 4 bii lungime vor putea codifica 16 stri distincte. Selectarea celor 13 mesaje pentru codificarea strilor sistemului se va face pe baza unor criterii legate de: creterea fiabilitii, simplitatea implementrii etc.

Elemente introductive privind operarea i organizarea unui sistem numeric


z

Un calculator numeric este constituit dintr-un ansamblu de resurse fizice ( hardware ) i de programe de sistem (software de baza), care asigura prelucrarea automata a informaiilor, n conformitate cu algoritmii specificai de ctre utilizator, prin programele de aplicaii (software de aplicaii - utilizator). Conform principiilor stabilite de John von Neumann un calculator trebuie sa posede urmtoarele elemente: z un mediu de intrare, pentru instruciuni i date ( operanzi ); z memorie n care se stocheaz programul, datele iniiale, rezultatele pariale i finale; z un ansamblu de prelucrare, capabil sa efectueze operaii aritmetice i logice, n conformitate cu un algoritm dat, specificat prin program; z un mediu de ieire, pentru extragerea rezultatelor i prezentarea acestora ntr-o forma accesibila utilizatorului; z un element de decizie care, pe baza rezultatelor pariale obinute pe parcursul prelucrrii, va selecta una din opiunile posibile de continuare a calculelor.

Elemente introductive privind operarea i organizarea unui sistem numeric


z

Programul elaborat, pentru un calculator numeric, reprezint descrierea algoritmului de rezolvare a unei probleme (clase de probleme) date, cu ajutorul instruciunilor pe care le poate executa calculatorul respectiv. Conform propunerii lui von Neumann, datele i programul sunt plasate n aceeai memorie, ceea ce a permis, la calculatoarele din generaia I-a, efectuarea unor operatii aritmetice sau logice asupra unor cmpuri din instruciune, n vederea reducerii dimensiunilor programelor. Funcionarea calculatorului are un caracter secvenial, constnd n citiri i execuii succesive ale instruciunilor programului. Intr-un calculator pot fi evideniate, pe parcursul execuiei unui program, doua fluxuri de informaii: fluxul datelor, care se prelucreaz, i fluxul instruciunilor, care controleaz, comanda procesul de calcul. Calculatoarele bazate pe principiile amintite mai sus se numesc calculatoare de tip von Neumann sau convenionale, fiind comandate de fluxul de instruciuni.

Elemente introductive privind operarea i organizarea unui sistem numeric


z

z z z

n prezent se studiaz i realizeaz sub forma de modele de laborator noi tipuri de calculatoare, neconvenionale, bazate pe fluxul de date i fluxul de cereri. n primul caz sunt amorsate, la un moment dat, toate operaiile din program pentru care sunt disponibile datele implicate. n al doilea caz necesitatea unui rezultat activeaz toate operaiile de calcul asociate. ntruct un calculator numeric este folosit, n esen, pentru implementarea automata a unui algoritm, se reamintete c un algoritm reprezint un set finit de reguli, care precizeaz o secven de operaii, pentru soluionarea unei clase date de probleme. Un algoritm poseda cinci elemente mai importante: z caracter finit: trebuie sa se termine dup un numr finit de pai; z caracter determinist: fiecare pas al unui algoritm trebuie definit n mod precis, aciunile care se execut trebuie sa fie specificate riguros, fr ambiguiti, pentru fiecare caz.

Elemente introductive privind operarea i organizarea unui sistem numeric


z z

intrare: un algoritm are una sau mai multe intrri, reprezentnd datele iniiale; ieire: un algoritm are una sau mai multe ieiri, care reprezint rezultatele, aflate ntr-o anumita relaie cu intrrile; eficacitate: un algoritm trebuie sa se execute exact i intr-un interval finit de timp. Printre altele, analiza algoritmilor are ca scop determinarea performantelor acestora, n sensul ca, daca pentru o problema exista mai muli algoritmi, trebuie s se decid care din ei este mai potrivit, sub aspectul numrului de operaii, al spaiului de memorie necesare si, uneori, al puterii consumate, pentru implementare.

Teoria algoritmilor trateaz, n principal, problemele existentei sau nonexistenei algoritmilor eficieni, pentru efectuarea unor calcule particulare.

Elemente introductive privind operarea i organizarea unui sistem numeric


z

nainte de a ncerca o descriere formala a unei metode de calcul se vor preciza unele noiuni: z variabilele de stare reprezint mrimi primare, care presupun unele valori bine definite (ele pot reprezenta parametrii unui sistem fizic); z un ansamblu de variabile de stare, n care fiecare poart un nume, reprezint mulimea variabilelor de stare; z o atribuire dat de valori pentru toate variabilele mulimii variabilelor de stare poarta numele de stare a mulimii sau o stare presupune o valoare dat fiecrei variabile de stare; z ansamblul tuturor strilor posibile, pentru o mulime dat de variabile de stare, formeaz spaiul strilor pentru acea mulime; z un calcul n spaiul strilor reprezint o secven de stri n acel spaiu, primul element al secvenei reprezint starea iniial, iar ultimul constituie starea final.

I Q

Elemente introductive privind operarea i organizarea unui sistem numeric


z

z z z z z

Din punct de vedere formal, metoda de calcul reprezinta un cuadruplu: < Q, I, E, f >, n care s-au fcut urmtoarele notaii: Q -mulimea strilor calculului, I - mulimea intrrilor, E -mulimea ieirilor, f - mulimea funciilor de calcul, definite n Q. n plus: I Q i E Q , iar pentru q , q E , f trebuie s lase nemodificate elementele mulimii E, adic: f(q) = q, Fiecare intrare x n mulimea I definete o secven de calcul: x0, x1, x2,..,xk,...., dup cum urmeaz: x0 = x i x(k+1) = f(xk), pentru k > 0. Se poate spune c secvena de calcul se termin n k pai, daca k este cel mai mic ntreg pentru care xk este n E. n acest caz se spune ca intrarea x produce ieirea xk. Se observa ca daca xk E, la fel i x(k+1) E, ntruct, conform definiiei date mai sus, x(k+1) = xk.

Elemente introductive privind operarea i organizarea unui sistem numeric


z z

Unele secvene de calcul pot avea o lungime infinit. Un algoritm reprezint o metod de calcul care se termin dup un numr finit (eventual foarte mare) de pai, pentru toate intrrile x I. Exemplu: Algoritmul MAX. Acest algoritm gsete elementul cu valoarea cea mai mare al mulimii { A(i) }, unde 1 i n, i o atribuie ieirii MAX. n cele ce urmeaz operatorul "=" specifica atribuirea unei valori variabilei de stare din membrul stng, obinut prin evaluarea funciei din membrul drept al expresiei. Se vor folosi doua variabile de stare pentru calcul: xc ( xcurent ), xm (x-maxim ).

z z z

Elemente introductive privind operarea i organizarea unui sistem numeric


z z z z z z z z z z z z z z

ALGORITM: MAX. intrri: { A(i) }, 1 i n, ieiri: MAX, Var de stare: { xc, xm }. f: secvena de calcul: if (n < 1) go to STOP if (n == 1) { MAX=A(1); go to 9 (STOP)} xm =A(1); xc =A(2); if (xm < xc ) xm = xc xc-=A(i) i = i+1 if( i > n) {MAX= xm; go to STOP} go to 4 STOP

Elemente introductive privind operarea i organizarea unui sistem numeric


z

Mecanizarea acestui algoritm presupune existenta unui modul, care dispune de urmtoarele resurse hardware: z RC: registru n care se aduce valoarea curenta A(i); z RM: registru n care se plaseaz valoarea curenta maxima A(j); z N i UNU: registre n care se pstreaz constantele n i 1; z CNT: contor pentru indexul i; z RD: registru n care se plaseaz rezultatul scderii; z MAX: registru de ieire ( coincide ca nume cu ieirea MAX ); z START: bistabil n care se nregistreaz comanda externa start; z SUM/DIF: unitate logica combinaional, care efectueaz adunarea / scderea; z un automat cu 10 stri distincte.

Modaliti de reprezentare a calculatoarelor


z z

Un calculator poate fi examinat, att sub aspect funcional, cat si structural. Din punct de vedere funcional, sub forma cea mai generala, un calculator se poate reprezenta prin tripletul: < I, E, C >, unde:
z z z

I constituie mulimea intrrilor, E corespunde mulimii ieirilor, C I x E reprezint o submulime a produselor carteziene intre elementele mulimii I si elementele mulimii E. C realizeaz aplicaii din mulimea intrrilor I, in mulimea ieirilor E.

Pentru a facilita studiul unui calculator sub aspect funcional, adesea se recurge la reprezentarea lui sub forma unei ierarhii de niveluri imbricate. Un nivel este constituit din mulimea aplicailor asupra elementelor mulimii de intrare pentru nivelul dat, ct i asupra elementelor mulimilor de intrare i ieire de la nivelul inferior, imbricat. Aplicaiile de la un nivel dat pot constitui aplicaii si pentru nivelul superior urmtor.

Modaliti de reprezentare a calculatoarelor


z

O posibilitate de reprezentare este data mai jos unde se pot distinge trei niveluri imbricate:
z

z z

aplicaiile/funciile primitive ale mainii de baza implementate in hardware, capabila sa execute operaii elementare, funciile standard / predefinite reprezentate prin nivelul instruciunilor mainii convenionale, funciile construite de utilizator, pe baza instruciunilor mainii convenionale, pentru diverse tipuri de aplecaii concrete.

Modaliti de reprezentare a calculatoarelor


z

reprezentarea unui calculator sub forma unei ierarhii de niveluri imbricate.

Modaliti de reprezentare a calculatoarelor


z z z z z z z

La nivelul mainii convenionale se definete noiunea de arhitectura a unui calculator numeric prin cvadruplul: A = < PI,PE,RG,I > unde: PI = { PI0,....,PIi } este mulimea porturilor de intrare, PE = { PE0,....,PEj } este mulime porturilor de ieire, RG = { RG0,....,RGk } este ansamblul registrelor generale din unitatea de execuie, I = { I0, ,Il } este setul instruciunilor calculatorului. Porturile de intrare i ieire sunt utilizate pentru schimbul de informaii cu mediul nconjurtor, prin intermediul echipamentelor periferice, in timp ce registrele generale sunt folosite pentru stocarea diferitelor variabile de stare. Sub forma unui prim exemplu se prezint mai jos arhitectura microprocesorului Intel 8080.

Modaliti de reprezentare a calculatoarelor


z

Arhitectura microprocesorului Intel 8080.

Modaliti de reprezentare a calculatoarelor


z z z z

Att porturile de intrare PI0, ...... ,PI255, ct i porturile de ieire PE0,....,PE255 au cte 8 bii. In cadrul registrelor generale se ntlnesc i o serie de registre cu caracter specializat in ceea ce privete utilizarea: A este registrul acumulator principal, folosit in cele mai multe operaii aritmetice i logice; B, C, D, E, H, L sunt registre de uz general, dei unele au i utilizri speciale ( H i L sunt folosite adesea pentru formarea unor adrese de operanzi pe 16 bii ); F este registrul indicatorilor de condiii, furnizai de unitatea de execuie dup fiecare operaie ( CY - transport in afara rangului de semn, AC - transport auxiliar octetului rezultat, S - semnul rezultatului, Z - indicator de rezultat zero, P - indicator privind paritatea numrului de uniti din rezultat ).

Modaliti de reprezentare a calculatoarelor


z

Poziiile ocupate de aceti indicatori de codiii in registrul F sunt date mai jos:

z z

SP este indicatorul de stiv, care asigura accesul la o structura de tip stiva organizata in memorie; PC contor program, pentru adresarea instruciunilor din memorie. Lista de instruciuni a microprocesorului 8080 conine 78 de instruciuni.

Modaliti de reprezentare a calculatoarelor


z

Un alt exemplu l constituie arhitectura microprocesorului 8086:

Modaliti de reprezentare a calculatoarelor


z

Semnificaiile indicatorilor de condiii sunt urmtoarele: O - depire aritmetic, D - direcia la explorarea irurilor, I - activare/dezactivare ntreruperi, T - capcana pentru lucrul pas cu pas, S -semn, Z - zero, A transport auxiliar, P - paritate, C - transport in afara rangului de semn.

Modaliti de reprezentare a calculatoarelor


z

Microprocesorul 8086 mai poseda cate doua tablouri de porturi de intrare/ieire, a cate 65536 octei fiecare:

z z

Nota: Porturile de I/E pot fi organizate i pe cuvinte de 16 bii, la dimensiunea de 32768 cuvinte fiecare tablou de porturi. innd seama de toate modurile de adresare, microprocesorul 8086 dispune peste 300 de instruciuni diferite.

Modaliti de reprezentare a calculatoarelor


z

z z z

Cunoscnd arhitectura unui calculator ( porturile de I/E, setul registrelor generale, indicatorii de condiii, lista de instruciuni inclusiv modurile de calcul pentru adresa efectiva- ) se pot scrie programe la nivelul mainii convenionale ( in limbaj de asamblare). Reprezentarea structurala a unui calculator pleac de la ideea ca acesta reprezint un agregat/sistem, care consta din componente primitive ( primitive funcionale ) interconectate ntr-o maniera data, pentru a putea executa operaii specifice, de prelucrare a informaiei. Componentele se caracterizeaz printr-o serie de atribute, iar atributele - prin valori. Informaia poate fi msurata in bii, ranguri zecimale, caractere alfanumerice etc. Pe lng funciile specifice de prelucrare a informaiei, componentele primitive se mai caracterizeaz prin debit de transfer i capacitate de stocare ale informaiilor.

Modaliti de reprezentare a calculatoarelor


z

Aceste caracteristici prezint important pentru studiul sistemelor de calcul cu ajutorul metodelor cercetrii operaionale, in numeroase aplecaii ( multiprogramare, multiprelucrare, timp divizat, reele de calculatoare etc. ), in care intervin congestii, cozi de ateptare, zone tampon ( buffer), debite de transfer al datelor etc. Din punct de vedere structural sistemul de calcul poate fi descompus in:
z z z

unitatea de intrare ( UI ), unitatea centrala ( UCe ), unitatea de ieire ( UE ).

Unitile de intrare i de ieire asigura legtura sistemului cu echipamentele periferice primare (traductoarele/ elementele de execuie) care preiau informaia din mediul extern i o furnizeaz in sistem sau care executa diferite aciuni asupra mediului extern, ca urmare a interpretrii informaie prelucrate de calculator.

Modaliti de reprezentare a calculatoarelor

z z

Unitatea centrala asigura stocarea programului, a datelor i realizeaz prelucrarea automata a acestora pe baza interpretrii programului dat. Pentru a putea nelege organizarea i operarea unor sisteme complexe cum sunt calculatoarele se impune descompunerea lor in uniti funcionale mai simple, cu precizarea semnalelor manipulate i al modului lor de dialog. Astfel, rafinarea structurii sistemului de calcul evideniaz in zonele UI i UE: z subsistemul de intrare ( i ), z subsistemul de ieire ( SE ), z echipamentele periferice de intrare ( EPI ) i echipamentele periferice de ieire ( EPE ). EPI au rolul de a prelua datele de la diverse traductoare, eventual stocata pe diveri purttorii fizici, i a le aduce la o forma compatibila cu intrrile i (ca natur fizic, format de reprezentare etc ).

Modaliti de reprezentare a calculatoarelor


z

EPE au funcia de a prelua datele prelucrate, furnizate prin SE, i de a le aduce la o forma corespunztoare destinaiei: semnale specifice diferitelor elemente de execuie (in cazul conducerii proceselor tehnologice) sau de a le plasa pe un anumit suport fizic etc. Subsistemele de I/E asigura transferul, autonom sau sub controlul UCe, al informaiilor intre UCe i EP prin realizarea unei adaptri de debite de transfer ( vitezele de operare ale acestora difer cu mai multe ordine de mrime). Uneori sunt implementate i alte operaii: modificarea formatului de reprezentare a datelor, validri, verificri etc. La nivelul UCe se pot distinge urmtoarele uniti funcionale: z unitatea de memorie ( UM ), z unitatea de execuie ( UE ), z unitatea de comanda ( UC ).

Modaliti de reprezentare a calculatoarelor

___ date /adrese -.-.-.- instruciuni -..-..-..comenzi, _ _ _ condiii/indicatori de stare/stri.

Modaliti de reprezentare a calculatoarelor


z

Unitatea de memorie are funcia de stocare a datelor iniiale, a programului, a rezultatelor intermediare i finale. In sistemele moderne ea poate opera autonom, att cu SI/SE, cat i cu procesorul (ansamblul unitate de comanda - unitate de execuie). Unitatea de memorie are o organizare liniara, constnd in celule de stocare a informaie, al cror coninut poate fi manipulat prin specificarea adresei celulei date.

Modaliti de reprezentare a calculatoarelor


z z

z z

Adresa ia valori cuprinse intre 0 i 2 (m-1) unde m este numrul de ranguri binare ale registrului de adrese. Unitatea de execuie asigura, sub controlul unitii de comanda, o succesiune de operaii aritmetice i logice asupra datelor preluate din unitatea de memorie sau din memoria local-proprie (implementata sub forma unor registre generale -RG-), rezultatele fiind returnate in unitatea de memorie sau in registrele generale. Dup fiecare operaie UE actualizeaz starea unor indicatori de condiii, care reflecta caracteristicile rezultatului curent ( < 0, > 0, = 0, paritate, transport, depire etc. ). Unitatea de comanda prelucreaz fluxul de instruciuni, care constituie programul. Ea furnizeaz semnale de comanda pentru celelalte uniti, coordonnd funcionarea lor in conformitate cu cerinele programului. UC poate examina, in cadrul execuiei unei instruciuni date, informaia de stare asociata fiecrei uniti, lund in continuare deciziile corespunztoare pentru execuia corecta a programului.

Modaliti de reprezentare a calculatoarelor


z

z z z

z z

Unitatea de comanda se poate implementa sub forma convenional ( ca automat secvenial cu stri codificate sau cu stri complet decodificate ) sau sub forma microprogramata (cu stocarea semnalelor de comanda, in maniera statica, ntr-o memorie rapida ). n unele cazuri UC este denumita i unitate de prelucrare a instruciunilor - unitatea I, iar unitile de execuie i de memorie sunt notate cu E i respectiv cu M. Astfel, un calculator C ( unitatea centrala ) poate fi reprezentat prin expresia: C = I [ E - M ]. In cadrul notaiei structurale PMS (in care sunt folosite drept componente primitive: P -procesorul, M - memoria, S - comutatorul, D operatorul asupra datelor, K - operatorul de comanda, L - legtura, T terminalul/traductorul ) un calculator C se descrie prin formula: C = M - P T. Prima notaie este utila in cazul sistemelor constituite din mai multe uniti de execuie i memorii asociate, controlate de o singura unitate de comanda (Sisteme cu un singur Flux de Instruciuni i mai Multe Fluxuri de Date - SIMD - Single Instruction Stream Multiple Data Stream ).

Modaliti de reprezentare a calculatoarelor


z

Sistemele obinuite au un singur flux de instruciuni i un singur flux de date SISD - Single Instruction Stream Single Data Stream ). n rezumat se poate observa c:
z z z

ansamblul: UE + UC = P ( Procesor sau Unitate Centrala de Prelucrare UCP sau CPU ), ansamblul: P + M = UC ( Unitate Centrala ), ansamblul: UC + i + SE + Software = Sistem de calcul.

z z

In continuare se vor prezenta cteva exemple de sisteme de calcul, folosind notaia PMS: sistem de calcul n care terminalele ( echipamentele de I/E ) transfera datele cu memoria prin intermediul procesorului:

Modaliti de reprezentare a calculatoarelor


z

sistem de calcul n care unele terminale (echipamentele de I/E) transfera date cu memoria direct (T1) sau prin intermediul procesorului ( T2, T3 ):

Modaliti de reprezentare a calculatoarelor


z z

Instruciunile calculatorului reprezint o colecie de informaii privind operaiile care se pot efectua ntr-un calculator dat. Sub forma cea mai generala instruciunile se mpart n doua categorii: z instruciuni operaionale i de transfer al informaiilor, inclusiv instruciunile de I/E; z instruciuni cu caracter de decizie, care modifica secvena de execuie a programului n mod condiionat de o serie de indicatori sau n mod necondiionat. Instruciunile sunt formate din mai multe cmpuri, dintre care se menioneaz urmtoarele: z codul de operaie/funcia, care specifica operaia/aciunea elementara evocata de instruciune: aritmetica, logica, transfer de date, transfer al comenzii etc.; z adresa operandului/instruciuni, care specifica locaia de memorie cu care se face transferul de date sau de la care se citete o instruciune.

Modaliti de reprezentare a calculatoarelor


z

In cazul instruciunilor cu caracter operaional, structura instruciunii poate conine, pe ling cmpul codului de operaie, unul sau mai multe cmpuri pentru adrese. Instruciunea cu o adresa:

Instruciunea cu dou adrese:

Instruciunea cu dou adrese:

Modaliti de reprezentare a calculatoarelor


z

z z z

In primul caz instruciunea specifica adresa unui singur operand, cel de-al doilea operand (in cazul operaiilor ce implica doi operanzii) fiind deja adus n UE. De regula, rezultatul rmne in UE. In cazul al doilea sunt prezente adresele celor doi operanzi (adresa operandului destinaie si adresa operandului sursa rezultatul operaiei se stocheaz la adresa operandului destinaie). Cmpul ADRESA3, n cel de-al treilea caz, poate specifica adresa la care se trimite rezultatul. Instruciunile cu trei adrese sunt extrem de rar ntlnite. Cmpul de adresa din instruciune poate avea mai multe semnificaii: z conine chiar operandul, n cazul operandului imediat; z reprezint adresa unui operand din memorie, n situaia adresrii directe; z reprezint adresa unei celule de memorie n care se afla adresa unui operand, n cazul adresrii indirecte.

Modaliti de reprezentare a calculatoarelor


z

In unele situaii, la coninutul cmpului de adresa din instruciune se aduna coninuturile unor registre speciale: z registrele baza, la adresarea bazata; z registrele index, la adresarea indexata. Cu ajutorul acestor faciliti se pot adresa diverse date stocate n memorie, care sunt structurate sub forma de masive, multidimensionale, n cazuri particulare: matrici i vectori. Registrul baza conine adresa de start (baza) a structurii, adresa din instruciune reprezint o deplasare n structura data, iar registrul index asigura adunarea unei cantiti variabile (incrementabile/decrementabile eventual automat). Adresa obinut n urma unor asemenea operaii, adesea combinate, poarta numele de adresa efectiva.

Modaliti de reprezentare a calculatoarelor


z

z z

In consecin, instruciunea va conine cmpuri adiionale, care vor specifica adresarea bazata, indirecta, indexata etc, deci modul de calcul al adresei efective. Aceste artificii sunt impuse de faptul ca, n calculatoarele convenionale, memoria este organizata liniar, n cadrul ei informaia fiind stocata sub forma unor structuri date. Diversele moduri de adresare faciliteaz accesul la componentele acestor structuri. Trebuie menionat faptul ca listele de instruciuni pentru cele mai multe calculatoare conin i instruciuni fr adresa. Acestea se bazeaz pe facilitile implementate n hardware care permit adresarea i manipularea datelor plasate ntr-o structura speciala numita stiva ( stack - LIFO -Last n Last Out ), organizata n memorie sau ( mai rar ) n asamblaje de registre aflate n unitatea de execuie ( microprocesorul Intel 8008 ).

Modaliti de reprezentare a calculatoarelor


z

Accesul la informaia plasata n stiva se realizeaz numai prin intermediul vrfului stivei, folosind doua operaii de baza: plasarea unui nou cuvnt n stiva (PUSH) i extragerea cuvntului din vrful stivei ( POP ). Adresa celulei ocupate din vrful stivei este stocata ntr-un registru indicator de stiva ( Stack Pointer - SP ) al crui coninut este automat incrementat dup o operaie POP i respectiv - decrementat, dup o operaie PUSH. Instruciunile, care afecteaz execuia programului, trebuie sa specifice n cmpul codului de operaie condiiile testate, iar n cmpul de adresa deplasarea necesara calculului adresei efective. i n acest caz adresa efectiva se poate obine direct, indirect, bazat, indexat sau ca urmare a unor operaii combinate.

Elemente de proiectare a sistemelor numerice


z

Un sistem numeric poate fi descris prin dou componente:


z z

seciunea de date (unitatea de execuie); seciunea de comanda (unitatea de comanda).

Elemente de proiectare a sistemelor numerice


z

Unitatea de execuie asigur prelucrarea datelor, reprezentate sub forma unor vectori binari, prin transferul acestora ntre registrele surs i registrele destinaie. Transferul se efectueaz prin intermediul unor reele/circuite logice combinaionale. Transferurile ntre registre ntruct prelucrarea datelor are la baza transferul ntre registre, proiectarea unui sistem numeric, n vederea execuiei unui algoritm, const ntr-o planificare, ce va defini fiecare transfer, prin specificarea ordinii/temporizrii (timing) n care aceste transferuri vor avea loc. n continuare se vor prezenta mecanismele hardware de implementare a transferurilor ntre registre si notaiile corespunztoare folosite. Registrele vor fi notate cu majuscule.

z z

Transferurile ntre registre


z

Transferul coninutului unui registru surs ntr-un registru destinaie, fr a afecta coninutul sursei, se noteaz astfel: AC RD Daca registrul AC are patru bii, anularea /forarea n unu a tuturor bistabililor se pot nota dup cum urmeaz: AC 0,0,0,0 AC 1,1,1,1 Implementarea registrelor se bazeaz pe bistabili JK si D, cu intrri de sincronizare de ceas, CLK, i cu intrri de tip PRESET/CLR. Transferurile sincrone au loc sub controlul semnalului de ceas pe fronturile anterior, pentru bistabilii de tip D, sau pe frontul posterior, pentru bistabilii master-slave, de tip JK. Transferurile implementate prin semnale de comand aplicate pe intrrile PRESET/CLR au, n general, caracter asincron.

BISTABILUL D
z

n continuare, se vor descrie reprezentarea simbolica si diagrama temporala de operare, pentru cazul unui bistabil D controlat pe frontul anterior al semnalului de ceas. Se observ c datele la intrarea D sunt stabile naintea apariiei frontului cresctor al semnalului de ceas, cnd are loc forarea datei n bistabil. Ieirea va lua valoarea corespunztoare intrrii cu o anumita ntrziere n raport cu frontul cresctor al semnalului de ceas.

BISTABILUL D
z

Q(t+1)=D(t)

Bistabilului JK.
z

In cazul bistabililor de tip master-slave forarea datelor are loc pe frontul anterior al semnalului de ceas, iar apariia lor la ieire se constat pe frontul posterior al ceasului. Mai jos se prezint simbolul i diagrama temporal pentru operarea bistabilului JK. Q(t+1)=JQ(t)+KQ(t)

Unitatea de comand
z z

In continuare se va descrie seciunea de comand i seciunea de date prin elemente bistabile de tip master-slave, Un circuit secvenial de comand furnizeaz, pentru seciunea de date, diverse semnale de comand, sincrone cu ceasul sistemului, cu perioade egale cu durata unei perioade de ceas sau cu multipli ai acesteia. Acestea sunt semnalele de comanda de tip nivel. Semnalele de Comand de tip Nivel (SCN) vor avea un sufix numeric i ce va specifica numrul ieirii de comand a automatului (SCNi). Semnalele SCNi pot fi strobate/ eantionate cu semnalul curent de ceas, pentru a forma Semnale de Comanda de tip Impuls (SCIi), cu durata activ corespunztoare semnalului curent de ceas.

Unitatea de comand

Unitatea de comand
z

z z

Presupunem c n etapa i (pasul i al implementrii /execuiei) algoritmului trebuie s se efectueze transferul coninutului registrului de doi bii RA[2], numerotai de la 0 la 1 ( RA0:1 ), n registrul destinaie RB[2] ( RB0:1 ): i. RB0:1 A 0:1 Considernd, n continuare, c se vor folosi numai bistabile master-slave JK sau D (se face presupunerea c i bistabii de tip D opereaz n maniera master-slave ), schemele hardware pentru implementarea acestui transfer vor fi urmtoarele:

Unitatea de comand

Unitatea de comand
z

Diagrama de timp care arata modul in care noua informaie se transfera in RB este data mai jos:

Transfer ntre registre


z z

Adesea, intr-un registru trebuie sa se transfere, n momente diferite, vectori diferii, de la diverse surse. Fie registrele sursa: RA, RB si registrul destinaie RC. Se cere implementarea, la momentele 1, 2 a urmtoarelor transferuri: RC RA RC RB sub controlul semnalelor SCN1, SCN2.

z z z

Transfer ntre registre

Transfer ntre registre


z z z z z

z z

Se cere implementarea hardware a transferurilor: RA 1,1 RA 0,0 RA RB Pentru a stabili expresia funciei logice combinaionale, care reprezint intrarea Di a bistabilului destinaie RAi, se utilizeaz diagrama Karnaugh, cu variabila RBi introdusa in diagrama: Funcia de excitaie Di este data de expresia: Di = SCN1 U RBi .SCN3

Transfer ntre registre


z

Aceasta va duce la urmtoarea implementare:

Transfer ntre registre


z z

n cazul in care se urmrete implementarea operaiei elementare: j. RAi RBi.RCi se poate folosi schema de mai jos:

Componentele combinaionale
z z

z z

Reprezentarea componentelor constructive logice combinaionale i secveniale (SSI/MSI). n realizarea practic a unui sistem numeric de complexitate mic/medie (n afara cazurilor cnd se folosesc circuite programabile FPGA/FPLD) sunt utilizate att componente logice combinaionale, ct i secveniale standard, integrate pe scara simpla si medie. Componentele combinaionale. Sub forma cea mai generala o component combinaional (Circuit Logic Combinaional CLC) se poate reprezenta sub forma unei cutii negre avnd m intrri de date X[m], p intrri de comanda C[p] si n ieiri Z[n]. Intrrile si ieirile se pot reprezenta sub forma unor vectori binari X[m], C[p], Z[n], iar operarea componentei/circuitului poate fi descrisa cu ajutorul unei tabele.

Componentele combinaionale

Se poate observa ca ieirea Z este prezent att timp ct sunt prezente intrrile X si C, fapt menionat prin utilizarea semnului = ntre termenii din dreapta i stnga, n coloana Descriere. Ieirea Z este definit, ca funcie de intrarea X, pentru cele 2p valori pe care le poate lua vectorul de comanda C. n continuare se vor prezenta cteva cazuri particulare.

Circuitul AND (7408)

Circuitul de mai sus poate fi reprezentat n condiiile n care intrrile A[4] sunt controlate de ctre acelai semnal i devin, astfel, intrri de comanda:

Circuitul sumator 7483

Circuitul XOR (7486)

Ca si in cazul circuitului AND (7408), pentru circuitul XOR (7486) intrrile A[4] pot fi controlate de ctre acelai semnal de comanda, ceea ce va permite implementarea pe 4 bii a funciilor TRUE si NEG, conform tabelului de mai jos.

Multiplexorul 74157

Intrrile active pe nivel cobort sunt marcate cu un cerc.

Circuite secveniale
z

n cazul circuitelor secveniale intervine i semnalul de ceas, pe lng semnalul de comand. Pentru a marca faptul ca ieirea circuitului i pstreaz valoarea i dup dispariia datelor de la intrare, atribuirea valorii expresiei logice din termenul din dreapta variabilei din termenul din stnga se specifica prin . Intrrile de ceas sunt marcate printr-un vrf de sgeata.

Circuit bistabil JK (7473)

Contor binar 74163

Registru de deplasare 74178

In cazul in care intrarea SER este folosit drept intrare de comand se realizeaz funciile din tabelul de mai jos:

Registru de deplasare 74178

Registru cu doua intrri multiplexate 74298

Scheme combinate Schema unui sumator/scztor


z

Schema se bazeaz pe utilizarea a doua circuite: XOR (7486) si ADD (7483)

zn

funcie de valoarea 0/1 a semnalului de comanda D, schema efectueaz adunarea / scderea. zSchema se poate extinde uor pentru operaiile pe 8 bii. zn acest mod se pot realiza structuri complexe, noi blocuri constructive, a cror operare poate fi descrisa concis cu ajutorul tabelelor.

Conexiuni prin magistrale


z

z z z z z z z z

n numeroase cazuri implementarea in hardware a unui algoritm de prelucrare a datelor impune, la diverse etape ale execuiei sale, conectarea unor registre-surs la anumite registre-destinaie. Conexiunile directe ofer posibilitatea unui nalt grad de paralelism al transferurilor de date. In schimb sunt neeconomice sub aspectul consumului de circuite logice. Pentru exemplificare se vor considera, pe de-o parte, doua registresursa: RA si RB, iar pe de alta parte doua registre-destinaie: RC si RD, intre care se realizeaz urmtoarele transferuri: RC RA RD RB RC RB RD RA RC RA RD RB RC RD RC RA

Conexiuni prin magistrale


z

Aceste transferuri se vor realiza sub controlul semnalelor de comanda de tip nivel: SCN1, SCN2, SCN3, SCN4, SCN5, SCN6 si al semnalelor de comanda de tip impuls: SCI1, SCI2, SCI3, SCI4, SCI5, SCI6. O ilustrare a implementrii transferurilor de mai sus este prezentata n continuare, considernd, pentru simplificare, registre de cate un bit.

Conexiuni prin magistrale


z

z z

Considernd ca sunt s registre-sursa, avnd n biti, si d registredestinaie, de cte n bii se poate stabili o funcie de cost, pe baza numrului de pori SI, SAU si a numrului de bii al fiecrui registru. Astfel, numarul de porti SI = s.d.n, numarul de porti SAU = d.n Rezulta o functie de cost n.d.(s + 1) Pentru a reduce costul conexiunilor ntre surse i destinaii se utilizeaz magistralele. Acestea reprezint, de regul, trasee metalice/fire pe circuite imprimate sau la nivelul structurilor integrate pe siliciu. Modelul conexiunilor, prin intermediul magistralei, este ilustrat n continuare.

Modelul conexiunilor, prin intermediul magistralei

Conexiuni prin magistrale


z

z z z z z

Se poate observa ca porile SI, care conecteaz ieirile registrelor RA si RB, la magistrala sunt de tipul colector deschis OC. Conexiunile Registrelor RA si RB, la magistrala MAG/BUS se realizeaz sub controlul unor semnale de comanda de tip nivel, specificate n desen prin expresiile: MAG/BUS = RA i MAG/BUS = RB. Forarea coninutului magistralei MAG/BUS in registrele RC si RD are loc sub controlul semnalelor de comanda de tip impuls, specificate in desen prin expresiile: RC MAG/BUS i RD MAG/BUS. Magistrala joaca rolul unui circuit SAU, conform figurii prezentate n continuare. Transferurile nu se mai pot efectua n paralel, de la surse la destinaii. Ele vor avea un caracter secvenial. Astfel, transferul: 1. RC RA, se va efectua prin operaiile: 1. MAG/BUS = RA; RC MAG/BUS, unde simbolul = reprezint o conexiune, pe durata unui semnal de comanda de tip nivel.

Conexiuni prin magistrale

Conexiuni prin magistrale


z

z z

Funcia de cost va fi data de numrul porilor I, al porilor SAU, ct i de numrul de bii ai vectorilor transferai: numrul de pori SI = s.n, numrul de pori SAU = n Rezulta o funcie de cost n.(s + 1) De cele mai multe ori conexiunile registrelor-sursa la magistral se realizeaz prin circuite Tri-state, care nlocuiesc circuitele de tip OC.