Você está na página 1de 71

Arhitectura calculatoarelor, 2002 /2003

Arhitectura calculatoarelor, 2002 /2003 Note de Curs


Introducere Evoluia calculatoarelor Unitatea central de prelucrare Unitatea aritmetic i logic Unitatea de control Organizarea memoriei Metode de extindere a capacitii de memorie Memorii asociative Memorii cache Microprocesorul 80386 Registre de uz general Registre segment Flaguri Registre speciale Tehnici de adresare Adresare n mod real Adresare n mod protejat Bibliografie Anderson D., Shanley T.: Pentium Processor System Architecture. MindShare Press, Richardson , Tx, 1993. Hayes J.: Computer Architecture and Organization. McGraw-Hill, New York, 1978. Hockney R.W., Jesshope C.R.: Calculatoare paralele. Editura Technic, Bucureti, 1991. Lam H, O'Malley J.: Fundamentals of Computer Engineering. John Willy & Sons, New York, 1988. Nmeth G. Horvth L.: Szmtgp architektrk. Akadmiai Kiad, Budapest, 1991. Pappas C., Murray W.: 80386 Microprocessor Handbook. McGraw-Hill, New York, 1988. Punescu F., Goleteanu D. P.: Sisteme cu prelucrare distribuit i aplicaiile lor. Editura Tehnic, Bucureti, 1993. Singh A., Triebel W.: 16 bit and 32 bit Microprocessors Architecture, Software and Interfacing Technique. Prentice-Hall, Englewood Cliffs, N. J., 1991. Tili K., Tth E.: Szmtgpek. Mszaki Egyetem, Budapest, 1992. Tanenbaum A.: Structured Computer Organization. Prentice-Hall, Englewood Cliffs, N. J., 1990. Tanenbaum A.: Computer Networks. Prentice-Hall, Englewood Cliffs, N. J., 1989. 1. Introducere nc din cele mai vechi timpuri, omul a fost nevoit s efectueze calcule. Odat cu creterea complexitii calculelor, s-au pus n eviden dou deficiene majore ale calculului manual: - viteza de efectuare a calculelor, care este limitat, astfel anumite probleme nu pot fi rezolvate ntr-un timp rezonabil; - greeala, care intervine iminent la calculele umane. Putem compara pentru nceput procesul de calcul manual (a) i cel al mainii (b): Cuprins Multitasking i protecie Modul virtual Sistemul de intrare/ieire Comunicaii prin magistral Metode de determinare ale prioritilor ntreruperi Transfer de date cu acces direct la memorie Comunicaii la distan Reele de calculatoare Reele locale Tipuri caracteristice de reele Sistemul de operare n reea Arhitecturi speciale Sisteme multiprocesor Sisteme cu siguran ridicat Calculatoare vectoriale Masive de procesoare

Lector Dr. Ing. Adrian A. Adscliei

Arhitectura calculatoarelor, 2002 /2003

Hrtia este folosit pentru stocarea informaiei care poate fi algoritm, respectiv dat. Putem distinge clar cele dou funcii ale creierului uman: cel de interpretare a informaiei i executarea diverselor funcii, aceasta din urm putnd fi preluat de diferite echipamente ajuttoare (abac, calculatoare mecanice, calculatoare de buzunar etc). Elementele caracteristice ale calculatoarelor snt similare cu cele din modelul uman. Unitatea de memorie stocheaz instruciuni i date. Unitatea central de prelucrare conine o unitate de control, care interpreteaz i realizeaz secvenierea instruciunilor, i o unitate aritmetic i logic, care execut secvene de instruciuni. Diferena major dintre cele dou sisteme const n reprezentarea informaiei. Omul folosete un limbaj cu un numr foarte mare de simboluri, i reprezint numerele (n mod uzual) n baza 10. Calculatoarele moderne, pornind de la natura fizic a elementelor electronice, reprezint informaia n baza 2, i reduce numrul simbolurilor n mod esenial. Comunicarea dintre main i om, conversia informaiei din limbajul main n limbajul uman este realizat de echipamentul de intrare-ieire. Pe baza acestor componente putem construi un model abstract.
Lector Dr. Ing. Adrian A. Adscliei 2

Arhitectura calculatoarelor, 2002 /2003

Semnul este un element, obiect sau fenomen capabil de a reflecta nsuirile altor obiecte, s in locul acestora. Sintaxa precizeaz regulile de mbinare ale semnelor pentru a forma mesaje. Semantica reprezint ansamblul regulilor de reprezentare, de interpretare a cuvintelor unui limbaj. Sistemul interpretor i schimb starea n funcie de mesajul primit i a strii curente. n sistemul interpretor putem distinge sistemul reprezentor, care reprezint toate semnele i mesajele primite; i sistemul procesor, care realizeaz transformrile n sistemul reprezentor. Un model abstract de calcul reprezint maina Turing.

Sistemul reprezentor sau memoria calculatorului este o band magnetic fr capete, mprit n uniti de dimensiune egal, capabil de a stoca un numr finit de semne. Procesorul este un circuit secvenial cu numr finit de stri. Instruciunile pe care le poate efectua i care alctuiesc setul de instruciuni, snt urmtoarele: - schimb simbolul de pe band de la poziia curent; - poziionez capul de citire cu o poziie la dreapta; - poziionez capul de citire cu o poziie la stnga; - oprete sistemul. Pentru a realiza un calcul cu aceast main, se nscriu datele ntr-un cod convenabil, i se descompune algoritmul de calcul n funcie de modul de reprezentare a datelor ntr-o secven de instruciuni ale mainii. Ultima instruciune este cea de oprire a mainii, la care banda trebuie s conin rezultatul calculului. Exemplu : Adunarea a dou numere naturale cu maina Turing. Orice numr natural n poate fi reprezentat cu un ir alctuit din n uniti. Numerele snt separate de spaii. Cele dou numere ce urmeaz a fi adunate snt stocate unul dup altul pe banda magnetic. Adunarea lor
Lector Dr. Ing. Adrian A. Adscliei 3

Arhitectura calculatoarelor, 2002 /2003

const n nlocuirea spaiului delimitator dintre ele cu o unitate, iar ultima unitate va fi nlocuit de un spaiu. Din studiul acestui model abstract rezult urmtoarele limitri ale sistemelor de calcul: - maina nu poate stoca rspunsul la toate problemele posibile, are un numr finit de stri; - spaiul de stocare al datelor este finit; - timpul de execuie trebuie s fie finit. 2. Evoluia calculatorelor Primul calculator funcional a fost construit n anul 1642 de filozoful Blaise Pascal (n cinstea lui un limbaj de programare i poart numele). Aceasta era o main cu contoare mecanice care efectua adunri i scderi n baza zece. n jurul anului 1671, filozoful Gottfried Leibniz a adugat mainii lui Pascal un modul de nmulire-mprire, dar acest calculator mecanic cu patru operaii a rmas o curiozitate tiinific pn n secolul XIX, cnd a nceput producia n serie a calculatoarelor de acest gen. n 1823, matematicianul Charles Babbage a nceput construcia mainii difereniale, care a fost conceput pentru realizarea automat a tabelelor matematice necesare n navigaie. Principiul de funcionare a acestor maini era aproximarea funciilor pe baza diferenelor finite. Calculatorul era capabil de a rula un singur algoritm. Din necesitatea de a crea un calculator de uz general, n 1834 el a conceput maina analitic. Acesta consta din 4 uniti: unitatea de stocare, unitatea de calcul, unitatea de intrare (cartele), unitatea de ieire (imprimanta i perforatorul de cartele). Unitatea de calcul putea efectua cele 4 operaii de baz, dar operaia urmtoare n fiecare pas era citit de pe cartelele de operaii, iar operanzii corespunztori snt selectai din memorie pe baza adresei date de cartelele de variabile.

Marea descoperire a lui Babbage a fost implementarea instruciunii de salt condiionat, precum i crearea mecanismului de control al cartelelor care s asigure saltul nainte sau napoi. Prima programatoare a mainii lui Babbage a fost Ada Lovelace (amintirea fiicei lordului Byron a fost pstrat i de limbajul ce i poart prenumele). n 1938, Konrad Zuse a construit calculatorul electromecanic Z1, care difer de cel al lui Babbage prin faptul c lucra n baza 2. Zuse, n 1941, a construit maina Z3, care efectua operaii n virgul flotant. Independent de el, n USA, Howard Aiken a propus structura unui calculator electromecanic de uz general (1937). Acesta a devenit operaional n 1944, sub numele de Harward Mark. Mark I, produs de firma IBM, coninea 3304 de relee, iar durata medie a unei operaii era de 1 secund. Al II-lea rzboi mondial a reprezentat un stimulent important pentru apariia calculatoarelor electronice. n 1943, John Mauchley i Presper Eckert au nceput construcia calculatorului electronic cu tuburi, denumit ENIAC. Terminat n 1946, nu mai putea fi folosit n rzboi, dar a fost prezentat celor interesai n cadrul unei coli de var. Calculatorul coninea o memorie de lucru format din 20 de acumulatoare (capabil de a lucra n baza 10), unitate de adunare, nmulire, extragerea rdcinii ptratice. Calculatorul era programat manual cu ajutorul comutatoarelor, care realizau o legtur ntre dou elemente, dac era
Lector Dr. Ing. Adrian A. Adscliei 4

Arhitectura calculatoarelor, 2002 /2003

necesar comunicarea. Era alctuit din 18000 tuburi i 1500 relee, cntrind 30 de tone. Executa 300 de nmuliri pe secund. Pornind de la ENIAC, al crui consultant a fost, Jnos Neumann a proiectat primul calculator cu program memorat, n 1945. Programul era reprezentat n form digital i nscris n aceeai memorie cu datele. Acest arhitectur denumit i main von Neumann a determinat direcia de evoluie a calculatoarelor. Primul calculator construit pe acest principiu a fost EDVAC, care a devenit operaional n 1951.

nainte de execuia unui program, toate instruciunile i datele trebuiau transferate din memoria secundar (band magnetic sau cartele) n memoria principal. Instruciunile aritmetice aveau urmtorul format: A1 A2 A3 A4 OP, unde A1 i A2 reprezint adresa operanzilor din memoria principal, A3 adresa rezultatului, A4 adresa instruciunii urmtoare, iar OP operaia codificat. n cazul instruciunilor de salt, cmpurile primesc o alt semnificaie. Dac coninutul locaiei de memorie adresat de A1 este mai mare sau egal ca cel adresat de A2, adresa instruciunii urmtoare este A3, n caz contrar A4. n anul 1946 Neumann i colegii lui de la Princeton Institute au construit un nou calculator, denumit IAS, care ulterior a fost considerat calculator de generaia I. Instruciunile pentru acest calculator conineau un singur cmp de adrese, formatul lor fiind OP A. Din acest motiv, se foloseau registre pentru stocarea operanzilor, a rezultatului i a adresei instruciunilor ulterioare. Execuia instruciunilor se realizeaz n unitatea aritmetic i logic, care primete operanzii din acumulator (AC), din registrul de multiplicare (MQ), respectiv din registrul de date (RD). Rezultatul va fi stocat n acumulator. Circuitul de control primete date din registrul de instruciuni (RI) pe care le decodific. Operaiile din sistem snt sincronizate de un ceas intern. Registrul de adrese (RA) conine adresa operandului, care va fi transferat totdeauna prin intermediul registrului de date (RD). Se presupune la operare c instuciunile unui program snt depuse la locaii consecutive de memorie. Numrtorul de program (PC) conine adresa instruciunii urmtoare, care n mod normal este incrementat dup fiecare operaie, iar n cazul operaiei de salt, va fi ncrcat din registrul de adrese. Deoarece se extrag dou instruciuni deodat pentru a reduce numrul de accese la memorie, instruciunea care nu va fi imediat executat se stocheaz n registrul buffer instruciuni (RBI), iar cealalt instruciune n registrul de instruciuni, unde va fi decodificat.

Lector Dr. Ing. Adrian A. Adscliei

Arhitectura calculatoarelor, 2002 /2003

Setul de instruciuni poate fi clasificat n urmtoarele tipuri: - instruciuni de transfer (ex. MOV AC,MQ - transfer coninutul registrului MQ n acumulator); - instruciuni aritmetice (ex. ADD AC,adr - adun coninutul acumulatorului cu locaia de memorie a crei adres s-a specificat n instruciune i depune rezultatul n acumulator); - instruciuni logice (ex. OR AC,adr - funcia sau ntre acumulator i locaia de memorie a crei adres s-a specificat n instruciune i depune rezultatul n acumulator); - salt necondiionat (ex. JMP adr - sare la instruciunea de la adresa specificat); - salt condiionat (ex. JZ adr - sare la instruciunea de la adresa specificat dac coninutul acumulatorului este zero). Un ciclu instruciune se descompune n dou faze: faza de extragere i faza de execuie. Faza de extragere este comun tuturor instruciunilor, fiind alctuit din urmtorii pai: -se transfer adresa instruciunii din numrtorul de program n registrul de adrese; -se extrage instruciunea din memorie, i se depune n registrul de date; -se transfer codul instruciunii n registrul de instruciuni; -numrtorul de program este incrementat pentru a indica adresa instruciunii urmtoare, n acelai timp se decodific instruciunea din RI. Faza de execuie difer n funcie de tipul instruciunii.
Lector Dr. Ing. Adrian A. Adscliei 6

Arhitectura calculatoarelor, 2002 /2003

ADD AC,adr -se extrage adresa operandului din codul instruciunii, i se depune n registrul de adrese; -se extrage operandul din memorie i se depune n registrul de date; -se realizeaz operaia de adunare. JMP adr -se extrage adresa de salt din codul instruciunii, i se depune n registrul de adrese; -se realizeaz saltul. Fiecare instruciune const deci dintr-o secven de microoperaii. O microoperaie implic un singur transfer ntre registre. Unitatea de control realizeaz secvenierea instruciunilor n funcie de tipul acestora (elaboreaz secvena corespunztoare de microoperaii) i genereaz semnale de control pentru fiecare microoperaie. n 1948 a fost inventat tranzistorul, care a revoluionat construcia calculatoarelor. Ca rezultat, au aprut calculatoarele din generaia a II-a. La aceste calculatoare reprezentarea informaiei se face att n virgul fix, ct i n virgul flotant, i snt nglobate instruciuni aritmetice n virgul flotant. S-a ntrodus adresarea indirect, adic adresa fizic se calculeaz ca suma dintre coninutul registrului de adres i registrul index. Aceast facilitate duce la creterea capacitii de adresare prin blocuri suprapuse, precum i la posibilitatea de ncrcare a unui program la diferite adrese. Existena mai multor registre index uureaz lucrul cu tabele. Sistemul este organizat n jurul unei magistrale, care reprezint o serie de conexiuni electrice ntre mai multe componente, dintre care la un moment dat numai unul comand magistrala (master).

O parte dintre operaiile de intrare/ieire au fost preluate de la unitatea central de prelucrare (UCP) de procesoarele de intrare/ieire, astfel s-a redus timpul de ateptare al UCP. Procesoarele de intrare/ieire supervizeaz transferul datelor dintre memorie i echipamente de intrare/ieire. Ele execut programe speciale stocate n memorie. Execuia unei secvene de program este iniiat de UCP, dup care cele dou programe ruleaz n paralel. Terminarea operaiei de intrare/ieire este semnalizat printr-un semnal de ntrerupere dat de procesorul de intrare/ieire ctre UCP. La calculatoarele din generaia a II-a au fost incluse instruciuni de tip apel de subrutin (CALL adr), care au dus la apariia limbajelor de nivel nalt (FORTRAN, ALGOL, COBOL), precum i a compilatoarelor, care transform diferitele limbaje n limbaj main. Aceste instruciuni au cerut o organizare special a unei zone din memorie, denumit stiv, care permite salvarea adresei de revenire, precum i comunicarea parametrilor ntre proceduri. Din punct de vedere logic, stiva este o list de tip LIFO (Last In First Out - ultimul intrat primul ieit), care are un singur indicator (SP), artnd prima poziie liber. Putem defini operaia de depunere n stiv (PUSH), care nscrie valoarea la adresa indicat de SP, i incrementeaz aceasta; precum i operaia de scoatere din stiv (POP), care decrementeaz SP, i returneaz valoarea de la adresa indicat de SP. Instuciunea CALL depune automat n stiv adresa de revenire, instruciunea de revenire din subrutin (RETURN) va scoate din stiv adresa de revenire corespunztoare. n cazul apelurilor succesive, adresele de revenire vor fi extrase n ordinea corect din stiv datorit organizrii acestuia. Apariia circuitelor integrate n 1965 a dus la realizarea calculatoarelor din generaia a III-a. Dezvoltarea lor a urmat dou direcii: cea a minicalculatoarelor, care permiteau accesul concomitent a
Lector Dr. Ing. Adrian A. Adscliei 7

Arhitectura calculatoarelor, 2002 /2003

mai multori utilizatori, i cea a microcalculatoarelor, care prin pre i uurarea muncii utilizatorilor au fost ntroduse n toate domeniile de activitate uman. n cazul minicalculatoarelor s-au ntrodus tehnici de procesare concurent sau paralel, cum ar fi multiprocesarea, multiprogramarea (programe care se execut n paralel, mprind acelai spaiu de memorie) avnd ca obiectiv creterea vitezei de execuie efectiv, prin folosirea activ a timpilor de ateptare dup echipamentele de intrare/ieire. n anii '70 au fost realizate mai multe tipuri de microprocesoare (din familia Intel i Motorola). Ele au fost utilizate n cadrul microcalculatoarelor. O caracteristic important a calculatoarelor din generaia a III-a a fost costrucia modular, care a permis integrarea uoar a noilor echipamente de intrare/ieire. Sistemele de operare dezvoltate n aceast perioad au rolul de a gestiona resursele comune, cum ar fi procesorul, memoria sau echipamentele de intrare/ieire, folosite de mai muli utilizatori (la minicalculatoare), i mascarea arhitecturii calculatorului pentru utilizatorul care nu este specialist n domeniu. Dup o jumtate de secol de la apariia primului calculator electronic, azi sute de milioane de calculatoare lucreaz n cele mai variate domenii. Dezvoltarea lor a urmat dou direcii principale: creterea vitezei i a capacitii memoriei la calculatoarele personale, realizarea supercalculatoarelor (Cray) cu arhitecturi paralele folosite n simulri i prognoz, caracterizate de o vitez de prelucrare de 1 Gflops (109 instruciuni n virgul flotant pe secund). Problema actual este legarea n reea a diferitelor tipuri de calculatoare, pentru a crea un sistem unitar de calculatoare. Prin rezolvarea lui, fiecare utilizator devine beneficiar al datelor i capacitilor celorlaltor calculatoare. Azi exist deja tehnica necesar: fibrele optice snt capabile de a transmite 109 bii pe secund; iar comunicaiile prin satelit permit chiar i conectarea calculatoarelor portabile la sistem. Datorit acestei direcii de dezvoltare, prognozele prevd apariia aa-numitelor pericalculatoare, care vor avea dimensiuni i pre redus, i o singur funcie - de a se lega de sistem. Cerinele pieii legate de pericalculatoare: s fie uor de comandat (verbal), iar afiarea imaginii-rspuns s fie de calitate ridicat. Spre aceast direcie arat staiile multimedia dezvoltate n ultimii ani. 3. Unitatea central de prelucrare Funcia principal a unitii centrale de prelucrare (UCP) este de a executa o secven de instruciuni, stocat n memorie. Un ciclu instruciune are dou faze: cea de extragere a instruciunii din memorie ntrun registru intern al UCP i cea de execuie. Faza de execuie include decodificarea instruciunii, extragerea operanzilor, efectuarea operaiei specificate n codul instruciunii i depunerea rezultatului n memorie dac este cazul. Un ciclu instruciune poate fi definit ca o secven de microoperaii, fiecare dintre ele reprezentnd un transfer ntre registre (vezi fig. 3.1.). UCP, totodat, supervizeaz celelalte componente ale sistemului prin liniile de control. De ex.: controleaz direct sau indirect operaiile de intrare/ieire, deci transferul datelor dintre periferice i memorie. UCP-ul este rar solicitat pentru astfel de operaii, din care cauz echipamentele de intrare/ieire iniiaz cererea de date prin ntreruperi. Cnd apare o cerere de ntrerupere (pe o linie de control al UCP), UCP-ul suspend execuia programului curent dup terminarea instruciunii n curs de execuie, i trece la rutina de tratare a ntreruperii. La terminarea acestei rutine (instruciunea RETI), se revine la programul curent n punctul n care a fost ntrerupt. Testarea liniei de ntrerupere are loc la sfritul fiecrui ciclu instruciune. UCP-ul este un bloc legat de sistem prin cele trei magistrale. Magistrala de date bidirecional este folosit pentru transferul instruciunilor i datelor n i din UCP. Prin magistrala de adrese, UCP transmite adresa datelor din memorie sau echipamente de intrare/ieire, pentru a realiza transferul. Liniile magistralei de control pot fi: - linii de control al transferului de date - comand operaiile de acces la memorie, respectiv la echipamentele de intrare/ieire; - linii de cerere de ntrerupere - de la echipamente de I/O la UCP; - linii de acceptare a cererii de ntrerupere - de la UCP la I/O; - linii de arbitrare a magistralei - folosite pentru cazurile n care exist mai multe procesoare n sistem, pentru determinarea celui care va controla transferul de date. UCP-ul poate fi divizat n dou pri componente: cea de procesare i cea de control. Partea de procesare const dintr-un set de registre interconectate prin circuite combinaionale.

Lector Dr. Ing. Adrian A. Adscliei

Arhitectura calculatoarelor, 2002 /2003

Regitrii (R) stocheaz operanzii i instruciunea. Magistrala intern este un ansamblu de linii, care asigur transferul datelor dintr-un registru n altul, astfel realizndu-se o structur foarte flexibil. Unitatea funcional este un circuit combinaional, care realizeaz operaiile aritmetice i logice. Partea de control trebuie s asigure secvena semnalelor de control (c), corespunztoare instruciunii descompuse n microoperaii. Aceste semnale de control selecteaz cile de date i operaia cerut din unitatea funcional. Semnalele de control acioneaz prin blocarea- deschiderea cilor de date n punctele de control indicate prin cerc pe schem.

Realizarea fizic a magistralelor interne a) prin pori:

b) folosind registre cu ieiri tri-state:


Lector Dr. Ing. Adrian A. Adscliei 9

Arhitectura calculatoarelor, 2002 /2003

Structura de baz a UCP este cea propus de Neumann (fig. 2.3.), care conine un set minim de registre i circuite adiionale, capabil de a executa un set redus de instruciuni cu un singur mod de adresare. Acumulatorul (un registru al UCP) joac un rol central, coninnd unul dintre operanzi i rezultatul operaiei. Structura Neumann a putut fi extins prin urmtoarele ci: 1. Includerea mai multor registre de uz general, capabile de a stoca operanzi i adrese. Aceste registre pot fi cuplate la mai multe magistrale interne.

Lector Dr. Ing. Adrian A. Adscliei

10

Arhitectura calculatoarelor, 2002 /2003

Aceast structur permite o realizare mai rapid a operaiilor, prin stocarea operanzilor n registre, reducndu-se considerabil timpii de acces la memorie. Posibilitatea de calcul al adreselor faciliteaz implementarea diferitelor moduri de adresare, folosite mai ales de limbajele de nivel nalt. 2. Extinderea unitilor aritmetice i logice cu nmulire i mprire n virgul fix i operaii n virgul flotant. 3. Includerea unui buffer de instruciuni capabil de a stoca cteva nstruciuni extrase, dar nc nedecodificate. Astfel apare posibilitatea de a prelucra simultan mai multe instruciuni, prin extragerea unei instruciuni n timpul execuiei unei alte instruciuni care nu lucreaz cu memoria. Aceast operaie reduce considerabil timpul de execuie. Se realizeaz cu procesoare cu structur pipeline, care const dintr-o secven de uniti de procesare, denumite segmente. n fiecare segment se realizeaz o procesare parial, iar rezultatul final se obine dup ce data a parcurs toate segmentele pipeline-ului. La UCP se poate defini o structur pipeline pentru instruciuni, care are ca scop suprapunerea fazei de execuie a instruciunii. Cea mai simpl structur de pipeline are dou segmente (extragerea instruciunii i execuia instruciunii). Din cauza timpilor inegale de parcurgere a segmentor, ntre cele dou segmente se intercaleaz un buffer de instruciuni extrase i nc nedecodificate. Timpul de execuie al instruciunilor fiind foarte variabil, urmtoarea structur este mai eficient (structura pipeline este folosit la capacitatea maxim):

Lector Dr. Ing. Adrian A. Adscliei

11

Arhitectura calculatoarelor, 2002 /2003

Extragerea instruciunii se realizeaz numai dac microoperaia n curs de execuie nu lucreaz cu magistrala exterioar. n cazul instruciunii de salt, apel de subrutin sau revenire din subrutin trebuie golite bufferele. 4. Implementarea instruciunii de apel de subrutin prin salvarea adresei de revenire automat n stiv. 5. ntroducerea posibilitii de prelucrare paralel prin structuri de tip SIMD (singur instruciune, date multiple) i tip MIMD (multiple instruciuni, multiple date). Primul are o singur unitate de control, i lucreaz simultan asupra elementelor unui vector, prin multiplicarea unitilor aritmetice i logice, toate executnd aceeai operaie. Al doilea este capabil de a executa simultan programe independente (denumite i structuri multiprocesor). Unitatea aritmetic i logic Implementarea unitii logice cu patru operaii se realizeaz n modul urmtor:

Realizarea instruciunilor de salt condiionat cu ajutorul flagului 0:


Lector Dr. Ing. Adrian A. Adscliei 12

Arhitectura calculatoarelor, 2002 /2003

Circuite de adunare Snt realizate cu sumatoare pe un bit, definite de urmtoarele relaii: zi = xi XOR yi XOR ci+1 ci = xiyi + xici+1 + yici+1 n care ieirile snt suma (zi) i transportul (ci), iar intrrile datele (xi, yi), i transportul de la rangul inferior (ci+1).

Pentru a aduna dou numere de lungime arbitrar, putem folosi sumatoare seriale.

Lector Dr. Ing. Adrian A. Adscliei

13

Arhitectura calculatoarelor, 2002 /2003

Biii de intrare se aplic sumatorului la fiecare semnal de tact, ncepnd cu rangul cel mai puin semnificativ. Transportul generat se stocheaz ntr-un bistabil D, i se aplic la sumator n tactul urmtor. Pentru a realiza o adunare mai rapid, se folosesc sumatoare paralele:

Transportul generat de un sumator reprezint intrare n urmtorul element, din care motiv timpul de calcul este egal cu timpul de propagare al transportului prin ntregul lan de sumatoare. Pentru a mrii viteza de calcul, se folosesc circuite speciale de calcul al tranportului anticipat, alctuite din circuite combinaionale, care genereaz simultan transportul pentru mai multe sumatoare. Aceste circuite se bazeaz pe urmtoarele ecuaii: gi = xiyi pi = xi XOR yi c3 = g3 + p3cin c2 = g2 + p2g3 + p2p3cin c1 = g1 + p1g2 + p1p2g3 + p1p2p3cin c0 = g0 + p0g1 + p0p1g2 + p0p1p2g3 + p0p1p2p3cin Acest principiu poate fi extins pentru mai muli bii, dar circuitul devine mult mai complex. n acest caz circuitul nu se mai poate realiza cu pori, ci cu PLA-uri.

Circuite de nmulire Pentru un numr redus de bii, circuitele de nmulire pot fi realizate cu circuite combinaionale, obinndu-se astfel viteze mari de calcul. Fig. 3.12. reprezint circuitul care realizeaz nmulirile pe un bit, a cror ieiri se aplic sumatoarelor din fig. 3.13. pentru a obine rezultatul nmulirii a dou numere pe trei bii.

Lector Dr. Ing. Adrian A. Adscliei

14

Arhitectura calculatoarelor, 2002 /2003

Pentru a realiza un circuit de nmulire pe mai muli bii, se folosete o structur secvenial, care are o construcie mai simpl, dar o vitez de calcul mai redus fa de implementarea cu circuite combinaionale. nmulirea este realizat prin adunri i deplasri repetate, analog cu calculul manual. Registrul M conine multiplicandul, iar registrul Q multiplicatorul. Acumulatorul (A) este conectat cu registrul Q, i au posibilitatea de a deplasa la dreapta rezultatul intermediar. Unitatea de control primete un semnal de start de la UCP pentru a iniia procesul de nmulire, precum i un semnal de tact. Totodat are rolul de a genera semnalele de control interne, conform organigramei din fig. 3.14.b.

Lector Dr. Ing. Adrian A. Adscliei

15

Arhitectura calculatoarelor, 2002 /2003

Aceast structur poate fi folosit pentru operaii de adunare, scdere, nmulire i mprire. UCP va trimite ctre unitatea de control, n afara liniilor START i TACT, patru linii, prin care se va selecta operaia dorit. Unitatea de control trebuie s conin algoritmii i pentru aceste operaii. Operaii n virgul flotant Pornind de la reprezentarea numerelor n virgul flotant n urmtoarea form: X = XM *2XE unde XM este mantisa n complementul fa de 2 n form normalizat, XE exponentul n complementul fa de 2, putem definii operaiile aritmetice n forma: X + Y = (XM*2XE - YE + YM) * 2YE X - Y = (XM*2XE - YE - YM) * 2YE X *Y = (XM * YM) *2XE + YE X : Y = (XM : YM) * 2XE - YE (pentru adunare i scdere s-a presupus XE > YE). Datorit faptului c numerele snt stocate n forma normalizat, dup efectuarea operaiei cerute trebuie normalizat rezultatul. Astfel operaia de adunare poate fi descompus n urmtorii pai: a) compararea exponenilor prin scdere pentru a obine exponentul mai mic; b) alinierea mantiselor prin hiftare, astfel ca exponenii s fie egali; c) adunarea mantiselor; d) normalizarea rezultatului. Exponenii stocai n regitrii E1, E2 vor fi comparai prin scdere, exponentul mai mic va fi pstrat ca fiind cel comun, iar mantisa corespunztoare exponentului mai mare va fi deplasat cu E1-E2 poziii. Mantisa astfel obinut va fi nsumat cu cealalt mantis, nemodificat. Rezultatul sumei este depus n registrul temporar R, i un circuit special, denumit detector de zerouri, va numra zerourile nesemnificative de la nceputul mantisei (R). Acest numr este folosit pentru deplasarea mantisei (aducerea n form normalizat), i se scade din exponent. n caz c R=0 se seteaz i exponentul pe zero.

Lector Dr. Ing. Adrian A. Adscliei

16

Arhitectura calculatoarelor, 2002 /2003

Pentru a mrii viteza de calcul, se folosesc pipeline-uri aritmetice. Aceste devin rentabile, dac snt alimentate continuu cu operanzi, de exemplu n cazul prelucrrii vectorilor. Cei patru pai ai adunrii pot fi implementai ca patru nivele ale unui structuri pipeline. Diferena fa de structura precedent reprezint regitrii care au fost ntrodui pentru a separa nivelele. Aceast structur permite prelucrarea simultan a patru perechi de operanzi (fiecare pereche realizeaz un alt pas al adunrii), i obinerea unui rezultat la fiecare pas. Regitrii avnd capacitatea de a stoca un operand, trecerea de la un nivel la altul se realizeaz comandat de un semnal de tact, obinndu-se un pipeline sincron. Frecvena semnalului de tact este determinat de timpul cel mai lung de parcurgere al unui nivel, motiv pentru care sumatoarele, circuitele de deplasare i circuitul detector de zero trebuie realizate n versiunea cea mai rapid i pe ct posibil cu timp de parcurgere egal, pentru a evita timpii de ateptare.

Lector Dr. Ing. Adrian A. Adscliei

17

Arhitectura calculatoarelor, 2002 /2003

Unitatea de control Rolul unitii de control este de a extrage instruciunea din memorie, de a o interpreta i de a trimite semnalele de control corespunztoare unitii de procesare. Se pot identifica dou funcii ale unitii de control: secvenierea instruciunilor (metodele prin care se selecteaz instruciunea ce urmeaz a fi executat) i interpretarea instruciunilor (metode de activare a semnalelor de control corespunztoare instruciunii decodificate). Secvenierea instruciunilor Majoritatea instruciunilor unui program au un singur succesor. Din acest motiv, cea mai simpl metod de implementare a secvenierii instruciunilor se realizeaz prin numrtoare de program (PC), care se incrementeaz automat dup decodificarea unei instruciuni. n aceast situaie nu este necesar specificarea adresei instruciunii urmtoare n codul instruciunii, dect n situaii speciale: instruciuni de salt, apel de subrutin, ntreruperi. n cazul instruciunii de salt, unitatea de control asigur ncrcarea paralel a numrtorului de program cu adresa specificat n formatul instruciunii. Cnd se apeleaz o subrutin, adresa instruciunii urmtoare apelului de subrutin este salvat automat n stiv de unitatea de control, se ncarc numrtorul de program cu adresa de nceput a subrutinei; la instruciunea de revenire din subrutin (RETURN), unitatea de control scoate adresa salvat n stiv, i o ncarc n numrtorul de program. Interpretarea instruciunilor Se pot defini patru categorii de semnale: - C''in - semnale de intrare de la alte uniti de control sau de la sistemul supervizor - dac exist (semnalele de tip START, STOP i cele de sincronizare cu alte componente); - C''out - semnale de ieire spre alte uniti de control, indicnd starea UCP-ului (operaie n curs, operaie terminat); - C'in - semnale de intrare de la unitatea de procesare, care influeneaz direct semnalele de ieire (semnale de eroare, flaguri, depire); - C'out - semnale de ieire care controleaz fluxul de date i selecteaz operaia prin unitatea de procesare. Funcia de baz a unitii de control este generarea acestor semnale C'out.

Unitatea de control cablat Una dintre metodele de implementare se bazeaz pe numrtoare secveniale, care constau dintr-un numrtor modulo k, a crui ieiri au fost conectate la un decodificator. Decodificatorul genereaz la ieire k impulsuri consecutive, decalate cu o perioad de tact, denumite faze. Exist posibilitatea de pornire a numrtorului prin semnalul Start (ncepnd cu faza F1), i de oprire prin semnalul Stop, care cauzeaz tergerea numrtorului.

Lector Dr. Ing. Adrian A. Adscliei

18

Arhitectura calculatoarelor, 2002 /2003

Realizarea unitii de control al multiplicatorului cu numrtoare secveniale pornete de la urmtoarea schem logic:

Se numeroteaz strile (Si), i se completeaz organigrama cu semnalele de ieire Ci. Bucla cea mai lung conine trei stri, care vor fi repetate de opt ori. Se realizeaz un numrtor secvenial modulo 3, care genereaz trei faze. Paii care nu snt inclui n bucl, vor fi sincronizai tot cu aceleai faze. Cele trei bistabile FFi vor face distincia dintre pai. Toate semnalele care apar n blocuri de decizie, reprezint intrri de la unitatea de procesare.

Lector Dr. Ing. Adrian A. Adscliei

19

Arhitectura calculatoarelor, 2002 /2003

Varianta simplificat a unitii de control pentru UCP interpreteaz urmtorul set de instruciuni: - LOAD X - transfer coninutul locaiei de memorie de la adresa X n acumulator; - STORE X - transfer coninutul acumulatorului n memorie la adresa X; - ADD X - adun acumulatorul cu coninutul locaiei de memorie de la adresa X; - AND X - i logic ntre acumulator i coninutul locaiei de memorie de la adresa X; - JMP X - salt necondiionat la adresa X; - JZ X - salt la adresa X dac coninutul acumulatorului este 0; - NOT - complementarea coninutului acumulatorului; - RSHIFT - deplasare spre dreapta a coninutului acumulatorului. Pentru a realiza unitatea de control, se descomune fiecare instruciune n microoperaii, se determin semnalele de control i numrul de stri pe baza organigramei din fig. 3.21. Se presupune c durata fiecrei microoperaii este egal cu un ciclu, exceptnd READ M i WRITE M, care au lungimea de doi ciclii. Instruciunea cea mai lung are 8 cicli.

Lector Dr. Ing. Adrian A. Adscliei

20

Arhitectura calculatoarelor, 2002 /2003

Semnalele de control care rezult din organigram snt distribuite dup schem de jos:

Unitatea de control este realizat cu un numrtor secvenial modulo 8, care va fi resetat dup i pai n cazul instruciunilor care dureaz i ciclii (i < 8). Pe baza organigramei se scriu ecuaiile pentru fiecare semnal de control ci, implementat de circuitul combinaional. Pentru semnalul de citire din memorie (c3): c3 = F2 + F6 (LOAD + ADD + AND).

Lector Dr. Ing. Adrian A. Adscliei

21

Arhitectura calculatoarelor, 2002 /2003

Unitatea de control microprogramat Dac numrul de instruciuni crete, sau structura UCP-ului devine mai complex, realizarea cablat a unitii de control este dificil. Orice modificare ulterioar (pentru a corecta o eroare sau a modifica setul de instruciuni) cere reproiectarea unitii de control. Microprogramarea nseamn stocarea semnalelor de control i de secveniere ntr-o memorie cu acces aleator - denumit memorie de control. Semnalele de control care snt activate la un moment dat, formeaz o microinstruciune, i snt extrase din memoria de control n mod asemntor extragerii instruciunilor unui program din memoria principal. Un set de microinstruciuni alctuiesc un microprogram. Sistemele astfel realizate snt mult mai flexibile, permind modificri ulterioare, dar snt mai lente dect cele cablate. Fiecare instruciune al UCP constituie un microprogram, i este interpretat n timp real. Emulatorul este un set de microprograme care interpreteaz totalitatea instruciunilor unui procesor. Cea mai simpl form a unei microinstruciuni conine dou cmpuri: cmpul de control (totalitatea liniilor de control care se activeaz) i cmpul de adres (adresa urmtoarei microinstruciuni). Fiecare bit al cmpului de control corespunde unui semnal de control, i valoarea 1 reprezint starea activ a liniei. Pornind de la organigrama care urmeaz s fie realizat, se numr i se codific strile i intrrile. Acestea vor reprezenta liniile de adrese. Numrul liniilor de date este suma liniilor de stare i a celor de control. Se alege un ROM de dimensiune corespunztoare i un registru de adrese care asigur secvenierea instruciunilor. Exemplu: Proiectarea unitii de control al multiplicatorului. Cele apte stri pot fi codificate pe trei bii, care mpreun cu cele dou intrri (Q(7), Num.) vor forma cele cinci linii de adrese. Din zece linii de date apte reprezint semnale de control, iar trei semnale de stare. Se alege un ROM cu 32 (25) de locaii cu 10 bii, i un registru de adrese (cu 5 bii), a crei ieiri se modific sincron cu semnalul de tact.

Lector Dr. Ing. Adrian A. Adscliei

22

Arhitectura calculatoarelor, 2002 /2003

Exist dou ci de a reduce dimensiunea ROM-ului din structura de baz prezentat: - prin codificarea informaiilor de control; - prin schimbarea modului de adresare. Formatul necodificat, denumit microinstruciune orizontal, are avantajul de a genera direct semnalul de control, dar cere o dimensiune mare pentru cmpul de control. Prin codificarea complet a cmpului de control se reduce considerabil numrul liniilor de date ale ROM-ului. Astfel se obin microinstruciuni verticale; semnalele de control vor fi decodificate, adic la un moment dat va fi activ un singur semnal de control. n majoritatea situaiilor trebuie asigurat activarea simultan a mai multor semnale de control, care se obine prin codificarea parial a cmpului de control. Pornind de la organigram, se citete numrul maxim de semnale de control care apar simultan, formnd tot attea grupuri distincte, n aa fel nct n nici un grup s nu existe semnale care apar simultan. Fiecrui grup se ataeaz un decodificator.

Un numr mare de intrri are ca urmare creterea numrului de locaii n ROM. Intrrile fiind relativ rar testate, valoarea lor n majoritatea strilor este indiferent. Din acest motiv coninutul mai multor locaii din memorie este identic. O alt posibilitate pentru a specifica adresa memoriei este folosirea numrtorului de microprogram (mPC). Astfel adresa instruciunii urmtoare va fi coninut de mPC, i nu trebuie specificat n mod explicit, dect la instruciunile de salt. Testarea intrrilor n cazul instruciunilor de salt condiionat se realizeaz cu ajutorul unui multiplexor (MUX), condiia de selectare fiind nscris n microinstruciune. Exemplu: Specificarea condiiei de selectare pentru dou instruciuni de salt condiionat. s0 s1 interpretare 0 0 fr salt, numrtorul de mPC va fi incrementat automat 0 1 salt dac intrarea v1 = 1 1 0 salt dac intrarea v2 = 1 1 1 salt necondiionat n cazul instruciunilor de salt, dac condiia este indeplinit, mPC va fi ncrcat paralel cu adresa de salt specificat n microinstruciune. Datorit faptului c instruciunile de salt nu conin cmpuri de control, cmpul de adrese i cmpul de control pot fi suprapuse.
Lector Dr. Ing. Adrian A. Adscliei 23

Arhitectura calculatoarelor, 2002 /2003

Pentru a reduce dimensiunea ROM-ului, structura unitii de control al multiplicatorului trebuie modificat.

Se va alege un ROM cu 16 locaii a 6 bii, care va fi nscris conform tabelului, locaiile nespecificate reprezentnd situaii de eroare, care se vor nscrie cu condiia de oprire.

Unitatea de control pentru UCP simplificat (vezi fig. 3.22.) reprezint de fapt un emulator al celor opt tipuri de instruciuni. Fiecare dintre ele are o parte comun de extragere, realizat de microprogramul de la adresa FETCH, dup care microprogramul se continu de la o adres care este dependent de coninutul registrului de instruciuni. Se poate folosi, de exemplu, un PLA care genereaz adresa de intrare a microprogramului, n funcie de tipul instruciunii. Un bit al cmpului de selecie asigur microinstruciunea salt la IR. n cazul n care se extinde setul de instruciuni, de exemplu cu o instruciune de tergere a acumulatorului (CLEAR), nu trebuie modificat structura hardware, ci se adaug doar o secven la microprogram:
Lector Dr. Ing. Adrian A. Adscliei 24

Arhitectura calculatoarelor, 2002 /2003

4. Organizarea memoriei Memoria unui sistem de calcul poate fi de trei tipuri: - memoria intern a procesorului - cu dimensiuni foarte reduse, este cea mai rapid - se folosete la stocarea temporar a instruciunilor i datelor (de ex. registre); - memoria principal (RAM) - folosit la stocarea instruciunilor i datelor, fiind activ doar n timp ce calculatorul lucreaz - CPU are acces direct la locaiile lui; - memoria secundar - are capacitate mare de stocare, dar este foarte lent - conine datele care snt folosite temporar (de ex. disc magnetic). Dup modul de acces, se pot distinge: - memorii cu acces aleator (RAM) - timpul de acces la orice locaie de memorie este acelai, indiferent de poziie (adres); - memorii cu acces serial - accesul la o locaie de memorie se realizeaz ntr-o ordine predeterminat, timpul de acces difer n funcie de poziie, i snt caracterizate de timpul de cutare.

Lector Dr. Ing. Adrian A. Adscliei

25

Arhitectura calculatoarelor, 2002 /2003

RAM-ul este organizat pe cuvinte. Citirea i scrierea datelor se realizeaz simultan la toi biii care formeaz cuvntul. O structur posibil pentru RAM este prezentat n fig. 4.1. Semnalul de selecie (CS), format din restul liniilor de adrese, condiioneaz operaiile de citire i scriere pentru ntreaga memorie. Liniile de adrese (A0, A1) selecteaz cuvntul dorit. Ieirile vor fi realizate cu circuite three-state, astfel pot fi cuplate direct pe magistrala de date. Semnmalele de citire i scriere (RD, WR) snt generate de procesor la executarea instruciunilor corespunztoare.

Lector Dr. Ing. Adrian A. Adscliei

26

Arhitectura calculatoarelor, 2002 /2003

Adresa locaiei ce urmeaz a fi citit sau scris trebuie trimis pe magistrala de adrese de ctre UCP nainte de a genera semnalele de comand corespunztoare, pentru a putea fi decodificate. Datorit diferenei vitezei de lucru dintre UCP i memorii, exist situaii cnd memoria nu poate fi citit n timpul cerut. n aceste cazuri memoria poate cere intercalarea unor stri de ateptare prin activarea liniei READY. Aceast linie este testat de UCP n T2. Dac este activ, se intercaleaz o stare de ateptare (TW), la sfritul creia linia este din nou testat. Ciclul se repet pn cnd memoria dezactiveaz aceast linie, dup care urmeaz citirea propriu-zis. Exist posibilitatea ca dou procesoare s aib acces la aceai locaie de memorie printr-o organizare special, denumit memorii cu dublu port.

Construcia acestor memorii permite citirea lor simultan de ctre dou procesoare, prin dublarea registrelor de ieire. Dac un procesor a nceput s scrie n memorie, se blocheaz scrierea sau citire de ctre cellalt procesor, care va intra n stare de ateptare prin activarea liniei READY. Logica de generare a ntreruperilor este opional, i este folosit pentru sincronizarea procesoarelor. n cazul n care un procesor a scris o locaie de memorie, cellat procesor va primi un semnal de ntrerupere pentru a iniia citirea mesajului. Metode de extindere a capacitii de memorie Dac spaiul de memorie adresat direct de UCP este prea mic (16 linii de adrese - 64 kbyte), exist mai multe metode de extindere a capacitii de memorie. Organizare n pri suprapuse (overlay; rezolvare prin soft) Programul i datele snt mprite de programator pentru a le organiza n modul overlay. Partea principal a programului, care rspunde i de gestionarea prilor, este permanent n memoria operativ, dar la un moment dat doar un singur overlay este ncrcat n memoria principal, restul fiind stocate n memoria secundar. Cnd se cere o dat dintr-o parte extern, programatorul va avea n vedere ca aceea parte s fie ncrcat n memoria principal. Dac se modific datele din memoria principal, aceea parte trebuie suprascris i n memoria principal. Organizare n blocuri suparpuse (rezolvare prin hard)
Lector Dr. Ing. Adrian A. Adscliei 27

Arhitectura calculatoarelor, 2002 /2003

Exist mai multe blocuri de memorii fizice, toate cuplate la aceleai adrese. O logic de selectare a blocurilor va asigura adresarea doar unui singur bloc de memorie la un moment dat. Acest circuit de selectare este cuplat de UCP ca un periferic, adic operaia de selectare este realizat de o instruciune OUT.

Dezavantajul acestei metode, ca urmare a mpririi rigide n blocuri, este lipsa posibilitii de comunicare ntre blocuri. Datele dintr-un bloc nu pot fi citite de un program care se afl ntr-un alt bloc. Din acest motiv, doar o parte a memoriei principale va fi organizat n acest mod, iar partea care este comun asigur comunicarea. Adresare indexat Fa de metoda precedent, la acest organizare a memoriei, logica de selectare a blocurilor este realizat de UCP prin schimbarea modului de adresare. Adresa logic va fi mprit n dou cmpuri: index i deplasament. Prin cmpul index se selecteaz una dintre registrele index din UCP. Registrul selectat conine adresa de nceput al unui bloc de memorie. Deplasamentul va indica adresa locaiei din cadrul blocului de memorie selectat.

Adresare virtual prin paginare Baza adresrii virtuale este definirea unui spaiu de adrese (denumit memorie virtual), care nseamn de fapt o memorie secundar, i este mult mai mare ca memoria operativ. Memoria virtual este mprit n pagini de dimensiuni egale. n memoria operativ exist un tabel de pagini, care conine informaii despre fiecare pagin: adresa paginii din memoria operativ - dac a fost ncrcat - i biii de stare (drepturile de acces la pagin, prezena paginii n memoria operativ, existena modificrilor, ordinea de acces al paginilor). O adres virtual (cea vzut de utilizator) este format din numrul paginii i un deplasament. Procesorul, prin unitatea de gestionare a memoriei, caut n tabel informaiile corespunztoare numrului de pagin. Dac pagina este prezent n memoria principal, scoate adresa de nceput al paginii, i, adugnd deplasamentul, formeaz adresa fizic a informaiei cerute. Totodat modific biii de stare care indic ordinea de acces al paginilor. Dac n memoria principal nu este prezent pagina, aceasta va fi
Lector Dr. Ing. Adrian A. Adscliei 28

Arhitectura calculatoarelor, 2002 /2003

ncrcat din memoria secundar, completnd totdat i tabela de pagini. Exist posibilitatea ca n memoria principal s nu fie spaiu pentru ncrcarea paginii. n acest caz pagina cea mai demult folosit este nlocuit cu pagina cerut. Dac n ea au survenit modificri, va fi copiat n memoria secundar. ntreaga operaie este realizat de unitatea de gestionare a memoriei, fr intervenia utilizatorului, care simte doar ncetinirea rulrii programului. Posibiliti de a reduce timpul de acces la o dat care nu se afl n memoria operativ: - realizarea tabelei de pagini n unitatea de gestionare a memoriei, sau cel puin a unei pari a tabelei, care conine informaiile despre paginile din memoria operativ; - ntroducerea unei tehnici mai complicate n alegerea paginii care va fi nlocuit, pentru a alege, pe ct posibil, o pagin care nu a fost modificat, evitnd astfel copierea ei. Adresare virtual prin segmentare La aceast metod memoria virtual este mprit n segmente de lungimi variabile. mprirea este executat de sistemul de operare i/sau de utilizator, urmrind mai flexibil structura programului. Tabela de segmente, n afara celor prezentate mai sus, conine i lungimea segmentului. Problema apare la nlocuirea unui segment din memoria operativ, datorit diferenelor de lungimi. Dac segmentul care trebuie ncrcat este mai mic dect cel nlocuit, n memoria operativ rmne un gol. n cazul n care nu exist un segment mai mare care poate fi nlocuit, se nlocuiesc mai multe segmente. Dup o serie de nlocuiri, memoria principal devine fragmentat datorit multitudinii de goluri. Cnd un segment nicicum nu mai poate fi ntrodus din cauza golurilor, automat se reorganizeaz memoria principal, micnd toate segmentele pentru compactare. Operaia, numit relocare dinamic, necesit i actualizarea tabelei de segmente.

Aceast reorganizare dureaz n timp, dar poate fi evitat prin combinarea metodei de segmentare i paginare. n acest caz segmentele snt compuse din mai multe pagini mici, de aceeai dimensiuni. Memorii asociative Una din problemele importante este cutarea unei date n memorie. La memoriile clasice, aceasta se realizeaz prin citirea succesiv a fiecrei locaii de memorie, i compararea lui cu data cutat. Memoriile asociative, adresabile prin coninut, asigur cutarea simultan a datei cerute n ntreaga zon de memorie. De obicei, numai o parte a coninutului (cmpul cheie) este folosit n cutare, restul informaiei poate fi citit dup ce s-au gsit locaiile. Un circuit de selectare va asigura citirea secvenial a locaiilor la care s-a constatat cioncidena cmpului cheie. Celula de 1 bit al memoriei asociative const dintr-un bistabil de tip RS, folosit pentru stocarea datei, i un circuit de detectare a coincidenei.

Lector Dr. Ing. Adrian A. Adscliei

29

Arhitectura calculatoarelor, 2002 /2003

nscrierea se realizeaz prin aplicarea adresei (A), a datelor de intrare (I), activarea liniilor de validare nscriere (WR) i validare intrare (C). La citire se aplic adresa i se dezactiveaz liniile de validare intrare i validare nscriere, i se obine data la ieire (O). Data cutat se aplic la intrare, se activeaz linia de validare intrare, adresele i validare nscriere snt dezactivate, iar la ieirea de coinciden (M) se obine 0 dac coninutul celulei corespunde cu cea cutat. Ieirea de coinciden provine de la o poart cu colector n gol, pentru a putea fi legat mpreun cu ieirile asemntoare din celelalte celule, realiznd un I cablat. Pentru a realiza din celule pe 1 bit o memorie asociat organizat pe cuvinte de lungime fix, liniile de adres, de validare nscriere i de coinciden al unui cuvnt vor fi legate mpreun; la fel i liniile de validare intrare, de intrare i de ieire de acelai rang de la toate locaiile memoriei.

Liniile de validare intrare C0, C1, C2 vor fi activai numai pentru bitul care intervine n cutare. Liniile de coinciden vor fi n zero logic numai dac toi biii unui cuvnt care intervin n cutare vor coincide cu coninutul locaiei.

Lector Dr. Ing. Adrian A. Adscliei

30

Arhitectura calculatoarelor, 2002 /2003

Cutarea unui cuvnt se realizeaz simultan la toate cuvintele memoriei. Registrul masc va activa liniile de validare intrare numai la biii corespunztori cuvntului cheie. Circuitul de selecie are rolul de a genera adrese succesive n cazul n care exist mai multe locaii a cu un coninut identic cu cel cutat. Registrul de ieire va avea nscris, pe rnd, coninutul complet al locaiilor la care s-a gsit coinciden. Memoriile asociative snt folosite pentru implementarea tabelelor de pagini sau de segmente n adresarea virtual. Astfel aceste operaii devin mai rapide. Memorii cache Dezvoltarea tehnologiilor a condus la crearea unitilor centrale de prelucrare foarte rapide (microprocesoare cu frecven de tact de peste 60 MHz). RAM-urile dinamice, folosite pentru realizarea memoriei principale, nu au putut rspunde cerinelor de vitez, fiecare ciclu de citire fiind lungit prin intercalarea strilor de ateptare. RAM-urile statice, care au nlturat aceste neajunsuri, snt foarte costisitoare, i au dimensiuni mult mai mari la aceleai capaciti de stocare. O soluie de compromis este intercalarea ntre procesor i memorie principal a RAM-urilor statice (numite memorii cache). Memoria cache, de dimensiune mult mai redus, conine copia datelor din memoria principal, care snt cel mai frecvent folosite. Copierea datelor n memoria cache se realizeaz pe blocuri (eventual pe pagini), i nu la nivel de octei. Dac datele snt n interiorul aceluia bloc, timpul de acces se reduce foarte mult (aproximativ de 10 ori), n caz contrar, datorit copierilor succesive, timpul de acces crete. ntr-un sistem pot apare dou tipuri de memorii cache: una pentru instruciuni i una pentru date. Memoria cache pentru instruciuni nu se modific, deci controlerul ei nu va urmrii coninutul ei, ci doar instruciunile da salt, cnd cachul trebuie golit, i rencrcat de la o adresa nou. Problema neconcordanei dintre cele dou memorii n cazul memoriei cache pentru date poate fi rezolvat prin: - transcrierea imedat a modificrilor aprute n una din memorii n cealalt; - transcrierea prin intermediul unui buffer (modificarea aprut este rapid transcris n buffer, din care va fi ulterior transferat, cnd magistrala este liber - orice cerere venit de la un alt procesor va fi interzis n timpul transferului); - transcrierea condiionat de o cerere venit de la un alt procesor pentru o locaie care a fost modificat, sau de nlocuirea blocului modificat din cache. Exist dou posibiliti de conectare a memoriilor cache: ele se pot lega de procesor sau de memoria operativ.

Lector Dr. Ing. Adrian A. Adscliei

31

Arhitectura calculatoarelor, 2002 /2003

n cazul legrii cache-ului de procesor operaiile de intrare/ieire sau accesul unui alt procesor la memoria principal, pot fi suprapuse cu operaiile de citire/scriere a procesorului 1. n aceast situaie coninutul blocului din memoria cache i din memoria operative trebuie s corespund. Orice modificare survenit n una din memorii se va nscrie n cealalt memorie, astfel controlerul cache devine foarte complex.

Dac cache-ul se leag de memorie, ea este comun pentru toate procesoarele. Astfel magistrala sistemului nu va fi eliberat, dar orice modificare n memoria cache va fi vzut de toate procesoarele, deci blocul trebuie transcris numai dac se va nlocui. Cnd se cere o dat, se verific dac este sau nu ncrcat deja n cache, cutnd adresa ei ntr-o tabel. Tabela de coresponden a adreselor din memoria cache i memoria operativ poate fi realizat cu memorii asociative.

n anumite situaii, ntreaga memorie cache poate fi memorie asociativ. n acest caz memoria cache este organizat pe cuvinte, de lungimi egale. Data cerut va fi cutat rapid n memoria cache, i dac ea nu exist, va fi adus din memoria operativ.
Lector Dr. Ing. Adrian A. Adscliei 32

Arhitectura calculatoarelor, 2002 /2003

5. Microprocesorul 80386 Este un procesor cu o magistral de date i de adrese pe 32 de bii, capabil de a adresa 4 Gbyte (232) memorie fizic i 64 Tbyte (246) memorie virtual. Are nglobat o unitate de gestionare a memoriei i mecanisme de protecie, care faciliteaz sistemele de operare multi- user. i-a pstrat compatibilitatea cu toate procesoarele precedente ale familiei 80X86. Are o structur pipeline cu ase nivele, care permite simultanetinatea extragerii, decodificrii, executrii instruciunilor, gestionrii memoriei i controlului magistralei. Unitatea de control al magistralei realizeaz legtura ntre microprocesor i mediu, gestionnd cererile de date, de cod sau predarea magistralei. Unitatea de extragere a instruciunilor stocheaz instruciunile primite de la unitatea de control al magistralei ntr-o coad de ateptare de 16 byte. Instruciunile snt decodificate, descompuse n microoperaii, i stocate ntr-o alt coad de ateptere. Unitatea de execuie conine un set de registre, subuniti de adunare i de nmulire. Unitile de segmentare i paginare transform adresele logice n adrese fizice.

Registre de uz general Microprocesorul conine opt registre de 32 bii (EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI), accesul pe ultimii doi byi putndu-se realiza i separat (AX, BX, CX, DX, SP, BP, SI, DI). Patru dintre ele (AX, BX, CX, DX) formeaz o pereche de dou registre (AH i AL).

Registrele ESP, EBP snt folosite ca indicatoare de stiv, iar ESI, EDI pentru indexare i operaii cu iruri. Registre segment Procesorul are 6 registre segment denumite CS, DS, SS, ES, FS, GS, care permit separarea segmentelor de cod, date, stiv i un segment definit de utilizator, asigurnd modularitatea programelor: - CS - adresa segment al programului n execuie; - DS - adresa segmentului de date curent; - SS - adresa segment al stivei; - ES, FS, GS - conin adresa a 3 segmente (numite extrasegment) definite de utilizator, folosite concurent. Flaguri Procesorul conine un registru de 32 de bii pentru flaguri, avnd urmtoarea structur:

Lector Dr. Ing. Adrian A. Adscliei

33

Arhitectura calculatoarelor, 2002 /2003

- CF (transport) - se nscrie n urma operaiilor aritmetice pe 8 sau 16 bii, dac apare transport sau mprumut, folosit de asemenea n operaiile de shiftare sau rotire; - PF (paritate) - valoarea '1' indic paritate impar; - AF (transport auxiliar) - folosit n aritmetica BCD, indicnd un transport de la bitul al 4-lea; - ZF (zero) - insciindu-se indic 0 ca rezultat al operaiei aritmetice; - SF (semn) - are valoarea '1' pentru numere negative; - OF (depire) - operaia aritmetic a depit capacitatea prevzut; - TF (trap) - permite executarea pas cu pas al instruciunilor; - IF (ntrerupere) - valideaz ntreruperile externe dac este setat pe '1'; - DF (direcie) - indic direcia operaiilor pe iruri, incremental pentru '0' sau decremental pentru '1'; - VM (mod virtual) - trecerea procesorului din mod protejat n mod real; - IOPL (nivelul de privilegiu al operaiilor de I/O) - garanteaz dreptul la operaiile de intrare-ieire; - NT - valoarea '1' indic necesitatea taskului curent de a se rentoarce la taskul apelant; - RF - folosit n depanare pentru a fora executarea unei instuciuni, este ters dac operaia s-a executat cu succes. Registre speciale Registrele care conin adresa de nceput a celor patru tabele de descriptori segment snt: - TR - registrul stare task; - IDTR - registrul tabelei de descriptori ai ntreruperilor; - GDTR - registrul tabelei descriptorilor globali; - LDTR - registrul tabelei descriptorilor locali. Registrele de control, CR0, CR1, CR2, CR3 definesc starea procesorului. CR0 conine cuvntul stare main, avnd urmtoarea structur:

- PE - trecerea n mod protejat; - MP - folosit mpreun cu bitul TS pentru a determina, dac instruciunea WAIT va genera o ntrerupere intern de 'coprocesor nu este prezent'; - EM - emulare coprocesor - dac are valoare '1' va genera o intrerupere intern ('coprocesor nu este prezent') pentru fiecare instruciune coprocesor permind astfel emularea; pentru '0' va executa instruciunile respective pe un 80287 sau 80387; - ET - tipul coprocesorului (80287 sau 80387); - TS - schimbare taskuri. CR1 este rezervat, iar CR2 i CR3 folosit de mecanismul de paginare. Registrele de depanare snt: - DR0, DR1, DR2, DR3 - conin adresa a 4 puncte de oprire; - DR4, DR5 - rezervate; - DR6 - registru de control al punctelor de oprire; - DR7 - registru stare al punctelor de oprire.

Tehnici de adresare Setul de instruciuni a procesorului 80386 conine informaii asupra tipului operandului, precum i a adresei acestuia. Tipul operandului poate fi bit, octet, cuvnt, cuvnt dublu, cuvnt cu trei, patru i zece octei. Modurile de adresare snt:
Lector Dr. Ing. Adrian A. Adscliei 34

Arhitectura calculatoarelor, 2002 /2003

- adresarea imediat - codul instruciunii conine operandul (MOV AL,4; MOV EBX,0ABCDFFFFH); - adresarea prin registru - operandul este stocat ntr-un registru intern al microprocesorului (MOV EBX,EAX); - adresarea direct a memoriei - codul instruciunii conine partea de offset a adresei operandului, registrul segment folosit este DS (MOV AX,adr); - adresarea indirect prin registru - partea de offset a adresei operandului se afl n una din registrele SI, DI, BX, BP (MOV EAX,[BX]); - adresarea relativ la baz - adresa efectiv a operandului se calculeaz adunnd coninutul registrului BX sau BP cu deplasamentul specificat n codul instruciunii, schimbnd coninutul registrului de baz, avem acces la acelai cmp al diferitelor nregistrri (MOV CX,[EBX+4]); - adresarea indexat - adresa efectiv a operandului se calculeaz adunnd deplasamentul cu coninutul registrului index, unde deplasamentul indic adresa de nceput a tabelei, iar coninutul registrului index selecteaz elementul din structur (MOV EAX,ARAY1[SI]); - adresarea indexat relativ la baz - adresa efectiv a operandului se calculeaz adunnd deplasamentul cu coninutul registrului index i cu coninutul registrului de baz (MOV EAX,[BX+ARAY1+SI]); - adresarea unui bit - se realizeaz prin instruciuni speciale.

Adresare n mod real Dup pornire sau dup reset, microprocesorul intr automat n mod real de lucru, i rmne n acest mod pn cnd va fi trecut n mod protejat prin program. Lucreaz ca un 8086 cu performan ridicat, cu set extins de instruciuni i cu registre de 32 de bii. Spaiul de adresare al procesorului este acelai ca la 8086, adic de 1 Mbyte pentru memorii i 64 kbyte pentru operaii de intrare/ieire. Lungimea maxim al unui segment este de 64 kbyte i pot fi folosite simultan 6 segmente. Formarea adreselor fizice se realizeaz conform formulei: AF = (reg. segment) x 16 + offset Descompunerea adreselor fizice n adrese logice nu este unic. Offsetul reprezint adresa n cadrul segmentului, dar nceputul de segment poate fi definit oriunde (cu restricia ca adresa lui s fie multiplu de 16). Pentru operaii de I/O nu este nevoie de registru segment. Adresa segment se afl totdeauna ntrun registru segment, iar locul offsetului depinde de modul de adresare. Registrul segment care va fi folosit este nscris tot n codul instruciunii, dar poate fi schimbat cu un prefix. Tratarea ntreruperilor Vectorul de ntrerupere (provenind din surs intern sau extern) se nmulete cu 4, astfel se obine un index n tabela descriptorilor de ntrerupere, unde snt stocate adresele (segmentul i offsetul) rutinelor de servire al ntreruperilor. Adresa de nceput i lungimea acestei tabele snt definite n registrul IDTR. Dup reset, adresa de baz are valoarea 0, iar lungimea este de 3FFh, pentru a pstra compatibilitatea cu procesorul 8086. Ea poate fi modificat la microprocesorul 80386, dar fixarea unor valori incorecte va cauza ntreruperi interne. Intreruperile interne n mod real snt: 0 divizare cu 0; 1 executare pas cu pas; 3 puncte de oprire; 4 depire aritmetic; 5 depirea limitelor la instruciunea BOUND; 6 cod invalid; 7 coprocesorul nu este prezent la instruciunea WAIT sau ESC; 8 limita tabelei descriptorilor de intrerupere este prea mic; 13 depirea segmentului. Schimbarea modurilor de lucru Trecerea n mod protejat se realizeaz prin setarea bitului PE din registrul CR0, iar revenirea n mod real prin tergerea aceluiai bit. La revenirea n mod real, trebuie urmrit folosirea corect a adreselor. Dac a fost activat i opiunea de paginare, se va verifica dac pagina respectiv se afl n memoria operativ sau nu. Trebuie dezactivat opiunea de paginare (prin resetarea bitului PG din CR0), i ncrcat 0 n registrul CR3 pentru a terge cache-ul de pagin. Noul segment trebuie s aib limita egal cu 64 kbyte, s fie prezent n memoria operativ, i s aib drept de scriere. Procedura de revenire dezactiveaz
Lector Dr. Ing. Adrian A. Adscliei 35

Arhitectura calculatoarelor, 2002 /2003

ntreruperile, ncarc registrul IDTR cu valoarea corect, resetez bitul PE, execut o instruciune JMP (pentru a goli lista instruciunilor extrase i decodificate). Adresare n mod protejat n modul protejat, procesorul permite adresarea memoriei virtuale, paginarea, protecia datelor i asigur posibilitile de multitasking. Spaiul de adresare crete la 4 Gbyte, mprit n segmente de lungime variabil (fiind posibile i segmente mai mari de 64 kbyte). Adresa logic este format dintr-un selector de 16 bii, aflat ntr-un registru segment i un offset pe 32 de bii. Cu ajutorul selectorului (ca index), din tabela descriptorilor de segment se scoate adresa de nceput al segmentului, lungimea lui, precum i drepturile de acces al utilizatorului. Offsetul reprezint adresa operandului n cadrul segmentului selectat. Pentru a asigura i mecanismele de protecie, se definesc 3 tabele de descriptori, fiecare avnd asociat un registru, care conine adresa de nceput al tabelei.

Tabela de descriptori globali este o resurs al sistemului folosit de fiecare task, care conine descriptori system. Registrul GDTR (48 bii) definete lungimea tabelei de descriptori globali pe 16 bii (lungimea maxim de 65536 byte), i adresa de baz a tabelei, care poate fi poziionat oriunde n cei 4 Gbyte. Registrul GDTR trebuie ncrcat nainte de a trece la modul protejat, i de regul nu este modificat n acest mod.

Lector Dr. Ing. Adrian A. Adscliei

36

Arhitectura calculatoarelor, 2002 /2003

Tabela de descriptori de ntrerupere este definit asemntor, dar cu ajutorul registrului IDTR. Aceast tabel conine descriptori de poart de ntrerupere (interrupt gates), cu adresa de nceput a rutinei de servire al ntreruperii. Lungimea acestei tabele poate fi de 65536 byte, dar microprocesorul accept doar 256 de ntreruperi, deci lungimea maxim va fi de 8x256=4096 byte. IDTR se ncarc nainte de a trece la modul protejat, i nu se mai modific.

Fiecare task poate avea acces la tabela de descriptori globali i la o tabel proprie, denumit tabela de descriptori locali.

Lector Dr. Ing. Adrian A. Adscliei

37

Arhitectura calculatoarelor, 2002 /2003

Ea conine decriptori segment de cod i date pentru taskul respectiv, din care rezult posibilitatea de a defini n sistem mai multe tabele locale. Registrul LDTR de 16 bii nu definete direct tabela de descriptori locali; ea conine un selector care arat ctre un descriptor din tabela de descriptori globali. De fiecare dat cnd LDTR este ncrcat cu un selector transparent din tabela de descriptori globali, descriptorul corespunztor va fi ncrcat n memoria cache ataat acestui registru, definind astfel tabela de descriptori locali (adresa de nceput, lungimea i drepturile de acces). Mecanismul de calcul al adreselor n modul protejat este foarte complex, dar microprocesorul conine o unitate de gestionare a memoriei, care realizeaz transpunerea adreselor virtuale (logice) n adrese fizice. n modul protejat, calculatorul lucreaz cu adrese virtuale (logice) de 48 bii, compus din partea de selector (16 bii) i offset (32 bii). Lungimea unui segment poate fi definit de la 1 byte la 4 Gbyte. Selectorul conine 2 bii, care reprezint nivelul de privilegiu cerut al segmentului, i este folosit n mecanismele de protecie, nu intr deci n calculul adreselor. Pentru a forma adrese virtuale, rmn 46 de bii, care reprezint un spaiu de adresare de 246=64 terabyte. Un alt bit al selectorului (TI) va selecta ntre tabela de descriptori locali i cel global, deci spaiul de adresare virtual se mparte n 32 terabyte spaiu de adresare global i 32 terabyte spaiu de adresare local. Magistrala de adres fiind de 32 bii, spaiul fizic de adresare este de 4 Gbyte. Acest lucru permite echiparea sistemului cu un mediu de stocare extern (de ex. hard disk), vzut ca un ntreg din punct de vedere al adreselor. Segmentele care nu snt folosite la un moment dat, vor fi stocate aici. Unitatea de gestionare a memoriei determin existena segmentului cerut n memoria fizic; cazul contrar se va semnala print-o ntrerupere intern. Sistemul de operare poate iniia n acest caz ncrcarea segmentului de pe suportul extern, i eventual salvarea unui segment din memorie pe suportul extern. Calculul adreselor fr paginare Selectorul se afl ntr-un registru segment al procesorului. Fiecare registru segment are ataat un registru cache de 64 bii, care conine descriptorul corespunztor selectorului, i care este ncrcat automat din tabela de descriptori (local sau global dup cum indic bitul TI al selectorului). Offsetul care se afl ntrun registru, sau direct n instruciune, va selecta operandul din segmentul indicat de registrul segment corespunztor.

Lector Dr. Ing. Adrian A. Adscliei

38

Arhitectura calculatoarelor, 2002 /2003

Calculul adreselor cu paginare Dac a fost activat mecanismul de paginare (bitul PG din registrul CR0 a fost setat), spaiul fizic de adresare va fi mprit n pagini de lungimi egale (4096 byte fiecare). Adresa liniar de 32 bii obinut dup algoritmul percedent va fi transpus cu ajutorul mecanismului de paginare. Aceast adres liniar va fi compus din trei cmpuri: 10 bii directorul, 10 bii pagina, 12 bii offsetul n cadrul paginii. Locul tabelei directorilor va fi indicat de registrul CR3, i directorul corespunztor va fi selectat din aceast tabel. Fiecare director are definit o tabel de pagini, de unde se selecteaz pagina corespunztoare. Offsetul va identifica locul operandului n pagina astfel obinut. Microprocesorul este prevzut cu un buffer intern, folosit de mecanismul de translatare a paginii, capabil de a stoca 32 de intrri de pagini distincte, la care accesul poate fi realizat direct.

Structura descriptorilor Fiecrui segment de memorie i corespunde un descriptor, care se afl n tabela de descriptori globali, locali sau de ntrerupere. Fiecare descriptor are o lungime de 8 byte i are urmtoarea structur:

Lector Dr. Ing. Adrian A. Adscliei

39

Arhitectura calculatoarelor, 2002 /2003

20 bii definesc lungimea segmentului, 32 bii adresa de nceput al segmentului, iar restul tipul i drepturile de acces. Putem distinge descriptori segment (cod sau date) i descriptori sistem. Biii care definesc drepturile de acces snt: A 0 - nu a existat acces la segment; 1 - selectorul de segment a fost ncrcat ntr-un registru segment; S 0 - descriptor sistem; 1 - descriptor segment; DPL - nivelul de privilegiu al descriptorului; P 1 - segmentul este prezent n memoria fizic; E 0 - segment de date; 1 - segment de cod; G 0 - lungimea segmentului exprimat n byte; 1 - lungimea segmentului exprimat n pagini. O parte a biilor de acces pot avea semnificaii diferite n funcie de tipul segmentului. Pentru segmentele de cod, biii pot fi: W/R 0 - segmentul nu poate fi citit; 1 - segmentul poate fi citit; C 1 - segmentul de cod poate fi executat dac CPL DPL i CPL rmne neschimbat, iar pentru segment de date: W/R 0 - segmentul nu poate fi scris; 1 - segmentul poate fi scris; C 0 - offsetul trebuie s fie mai mic ca limita; 1 - offsetul trebuie s fie mai mare ca limita. Multitasking i protecie Microprocesorul 80386 permite prin structura lui hard coexistena a mai multor taskuri care vor fi executate divizate n timp. Controlul va fi schimbat de la un task la altul dup trecerea unui interval de timp fixat. Taskul curent executat va trece la sfritul listei taskurilor ce ateapt execuia. Taskul poate fi definit ca o colecie de proceduri care execut o sarcin specificat. Are implementat un mecanism de schimbare a taskurilor, care la un procesor ce ruleaz la o frecven de 16 MHz dureaz 19 microsecunde. Fiecare task va avea acces la memoria global, i definete o memorie local la care are acces numai el. n acest sistem protecia la acces incorect sau neautorizat a zonelor de memorie devine necesar. Procesorul include i aceste mecanisme de protecie. Segmentarea, paginarea i descriptorii fac parte din acest mecanism de protecie. Segmentul este unitatea de memorie cea mai mic care posed drepturi de acces. Acestea snt definite n descriptorul segmentului conform celor prezentate anterior. La citirea/scrierea unei date se testeaz posibilitatea de acces de la nivelul de privilegiu curent la segmentul cerut. Dac tipul segmentului nu corespunde cu registrul segment folosit, dreptul de scriere citire este violat, sau offsetul depete limitele, se genereaz o ntrerupere intern, i accesul nu este permis. Modelul de protecie permite 4 nivele de privilegiu pentru fiecare task, nivelul 0 fiind cel mai privilegiat, iar nivelul 3 cel mai puin privilegiat. Partea de kernel a sistemului de operare, funciile de intrare/ieire, secvenierea taskurilor, gestionarea memoriei ruleaz la nivelul de privilegiu 0. Nivelul 1 conine servicii sistem, cum ar fi accesul la fiiere. La nivelul 2 ruleaz diverse rutine care apeleaz funcii sistem, iar la nivelul 3 ruleaz aplicaiile utilizatorilor. Taskuri mai puin prioritare pot apela rutine mai privilegiate, dar nu le pot modifica. Pentru a descrie mecanismul de protecie, trebuie s definim urmtorii termeni: - DPL - nivelul de privilegiu al descriptorului (practic al segmentului) care este nscris n descriptor; - CPL - nivelul de privilegiu curent, nscris n registrul cache ataat registrului segment cod; - RPL - nivelul de privilegiu cerut, nscris n selectorul segmentului ce urmeaz s fie selectat. Un program poate avea acces direct la date care snt la acelai nivel de privilegiu, sau mai puin privilegiate. Dac nivelul de privilegiu curent este 1, se poate realizeaz acces la date de pe nivelele de privilegiu 1,2,3 (DPL CPL, RPL). Accesul la stiv prin registrul SS reprezint o excepie, deoarece DPL = CPL (fiecare nivel de privilegiu are stiv proprie). Schimbarea segmentului de cod se obine n urma operaiilor de salt, de apel de subrutin, de revenire din subrutin, de ntrerupere i de schimbare de task. Dac DPL = CPL, transferul se realizeaz fr nici o
Lector Dr. Ing. Adrian A. Adscliei 40

Arhitectura calculatoarelor, 2002 /2003

problem. Dac DPL > CPL, i segmentul este conform (bitul C al descriptorului este setat), se execut rutina, fr a schimba nivelul de privilegiu (astfel se evit trecerea de la un nivel mai puin privilegiat la unul mai privilegiat la instruciunea de revenire din subrutin). Dac DPL < CPL, trecerea la noul segment este permis prin intermediul unui descriptor sistem special, denumit descriptor de poart.

Descriptorii de poart pot fi de tip CALL, TASK, INTERRUPT sau TRAP, dup instruciunea la care snt folosite. Conin selectorul i offsetul destinaiei la care se va realiza transferul, offsetul indicnd instruciunea ce urmeaz a fi executat. Cnd se execut o instruciune CALL, offsetul acestuia va fi ignorat, iar selectorul va arta ctre un descriptor de poart, care va determina segmentul i offsetul instruciunii. La revenire (RET), se restabilete nivelul de privilegiu al programului care coninea instruciunea CALL.

Schimbare de taskuri Fiecrui task i este asociat un selector care se afl n registrul TR, i arat ctre un descriptor stare task din tabela de descriptori globali. De fiecare dat cnd se schimb un task, starea lui curent trebuie salvat n segmentul stare task (TSS) ataat acestuia, i starea noului task va fi ncrcat din segmentul corespunztor n registre. Structura segmentului stare task:

Lector Dr. Ing. Adrian A. Adscliei

41

Arhitectura calculatoarelor, 2002 /2003

Schimbarea se realizeaz n modul urmtor: exist un task curent, care ruleaz i face apel la un alt task (JMP sau CALL), seteaz bitul NT din flaguri; taskul curent va fi suspendat, iar regitrii vor fi salvai n TSS; taskul 2 va fi marcat n descriptorul lui ca fiind ocupat (pentru a nu fi apelat de un alt task), i starea lui va fi ncrcat din TSS n regitrii; se execut instruciunea indicat de CS i EIP. Dac se trece la un nivel mai privilegiat prin schimbare de task, aceasta se realizeaz prin descriptor de poart TASK, care conine un selector ctre TSS -ul noului task.

Sistemul de ntreruperi Tabela descriptorilor de ntrerupere poate fi plasat oriunde n memorie, adresa lui de nceput fiind specificat de IDTR. n mod protejat tot 256 de ntreruperi pot fi tratate. Tabela va conine descriptori de poart de ntrerupere, de task sau de trap. Schimbarea nivelului de privilegiu este posibil deoarece ntreruperile se execut totdeauna prin descriptori de poart. La apariia unei ntreruperi, selectorul va fi calculat nmulind cu 8 numrul ntreruperii. Cu ajutorul acestui selector din tabela descriptorilor de ntrerupere se scoate un descriptor poart. Dac descriptorul este de tip ntrerupere, se reseteaz bitul IF (dezactivnd astfel ntreruperile externe), i se transfer controlul unei rutine din taskul curent. Dac descriptorul este de tip task, se realizeaz schimbare de task, dar acesta nefiind reentrant, trebuie asigurat s nu apar o nou ntrerupere nainte de a se termina ntreruperea n curs. Dac segmentul de cod, care conine rutina de tratare a ntreruperii, este conform, nu
Lector Dr. Ing. Adrian A. Adscliei 42

Arhitectura calculatoarelor, 2002 /2003

se schimb nivelul de privilegiu; n aceast situaie se salveaz n stiv EFLAG, CS, EIP. n situaia n care se schimb nivelul de privilegiu, se schimb i stiva, deci vechiul indicator de stiv va fi salvat.

Operaii de intrare/ieire O operaie de intrare/ieire n mod protejat se va executa dac CPL este mai mare ca IOPL nscris n EFLAG. Fiecare segment stare task (TSS) poate conine o hart a permisiunilor pentru operaii de I/O. Pentru fiecare adres de I/O corespunde un bit, care pentru valoarea 0 permite executarea operaiei de I/O la adresa respectiv, iar pentru valoarea 1 inhib operaia. Dimensiunea acestei hri poate varia, nu exist restriciunea de a o defini pn la capt, dar totdeauna ncepe cu adresa 0. Testarea biilor de protecie se realizeaz numai n situaia n care CPL este mai mic ca IOPL. Accesul la o adres care nu este cuprins n hart va genera o nrerupere intern. Modul virtual Permite executarea programelor scrise pentru 8086 n modul protejat, fr modificarea lor. Deoarece 8086 adresez doar 1 Mbyte memorie, devine posibil simularea mai multor procesoare 8086 n regim multitasking. Se pot executa simultan i programe n mod protejat, iar schimbarea din mod protejat n mod virtual i invers se realizeaz de un program special, denumit monitor virtual. n modul virtual se trece setnd pe 1 bitul VM din EFLAG, dar numai n mod protejat. Aceast setare nu se efectueaz direct, ci prin schimbare de task sau ntrerupere, amndou modificnd EFLAG. Ieirea se face n mod asemntor. Testarea bitului VM se realizaez n urmtoarele dou condiii: 1. cnd se ncarc un registru segment pentru a vedea dac adresa trebuie calculat ca la 8086; 2. cnd este vorba de o instruciune de intrare/ieire. n mod virtual registrul segment este tratat ca n mod real, i va forma mpreun cu offsetul o adres liniar; aceasta va fi transpus ntr-o adres fizic prin mecanismul de paginare. Adresa fizic poate fi oriunde n spaiul de adrese de 4 Gbyte. Instruciunile CLI, STI, PUSHF, POPF, INT, IRET, IN, INS, OUT, OUTS n mod protejat snt sensibile la nivelul de privilegiu dat de IOPL. Nivelul de privilegiu curent (CPL) n cazul rulrii n mod virtual este 3, iar dac IOPL este mai mic ca 3 oricare dintre instruciunile mai sus amintite vor genera o intrerupere intern, astfel asigurnd posibilitatea interceptrii i emulrii lor. 6. Sistemul de intrare/ieire n funcie de distana dintre componentele unui sistem de calcul, putem distinge comunicaii prin magistral (comunicaii paralele) i comunicaii la distan (comunicaii seriale). Comunicaii prin magistral La comunicaiile paralele, toi biii de date vor fi transmise simultan pe linii separate. Se pot distinge comunicaii prin magistrale sincrone i asincrone. La comunicaiile sincrone transferul se realizeaz ntrun ciclu (sau multiplu ntreg). Sursa i destinaia trebuie s aib acelai semnal de tact, sau n cazul n care au ceasuri diferite, un semnal de sincronizare al ceasurilor trebuie transmis periodic. La comunicaiile asincrone exist linii de control distincte, pe care se transmit mpreun cu datele i semnalele de sincronizare (destinaie pregtit, date valide, acceptare date). n aceast situaie, fiecare echipament trebuie s fie capabil de a interpreta i de a genera aceste semnale de control. O metod de conectare a componentelor este formarea unei magistrale unice n sistem.
Lector Dr. Ing. Adrian A. Adscliei 43

Arhitectura calculatoarelor, 2002 /2003

Magistrala de sistem conine liniile de adrese, de date i de control. Fiecare component urmrete magistrala de adrese; n cazul n care decodific propriile adrese, transmite sau recepioneaz date, n funcie de semnalele de control genereate de UCP. Perifericul cel mai lent va ocupa un timp ndelungat magistrala, meninnd procesorul n stare de ateptare. n aceste situaii este mult mai avantajos cuplarea perifericelor la o magistral extern, care va comuica cu restul sistemului printr-un procesor de intrare/ieire care lucreaz n paralel cu UCP.

Indiferent de modul de interconectare, spaiul de adrese al echipamentelor de intrare/ieire poate fi suprapus cu memoria. Operaiile de acces la memorie vor fi folosite i pentru periferice. n cazul n care perifericele au un spaiu de adresare distinct de cel al memoriei, unitatea central de prelucrare va avea operaii speciale (IN, OUT) i linii de control corespunztoare. Cea mai simpl metod de comunicare se realizeaz prin operaii directe de intrare/ieire (IN, OUT). Procesorul selecteaz perifericul prin liniile de adrese, genereaz semnalele de control corespunztoare direciei de transfer (IOR, IOW) i realizeaz comunicarea prin magistrala de date. Perifericul trebuie s fie totdeauna pregtit pentru transfer; dac instruciunea dorit nu se poate realiza ntr-un ciclu, perifericul, asemntor memoriilor, poate cere intercalarea unor stri de ateptare. Aplicaii tipice: citirea unor comutatoare, comanda afiajelor. Datorit faptului c majoritatea perifericelor nu pot fi permanent n stare pregtit, se aplic transferuri condiionate, dar trebuie s se asigure sincronizarea echipamentelor care comunic. Metod condiionat bazat pe flaguri La aceast metod numai procesorul rspunde de sincronizare, el fiind ntotdeauna n stare pregtit, iar starea periferiei poate fi citit dintr-un flag.

Testarea flagului de stare poate fi realizat prin citire periodic de ctre procesor sau prin generarea unei ntreruperi. Metod condiionat bazat pe semafoare (handshake) n cazul acestei metode procesorul i periferia se sincronizeaz reciproc. Avem informaii att n legtur cu nceperea, ct i cu terminarea operaiei.

Lector Dr. Ing. Adrian A. Adscliei

44

Arhitectura calculatoarelor, 2002 /2003

La dialogul iniiat de surs, se trimit datele mpreun cu semnalul de validare a datelor (STROBE), iar preluarea datelor va fi semnalizat prin activarea liniei READY, dup care poate urma un nou transfer.

La dialogul iniiat de destinaie, aceasta indic starea lui pregtit prin linia READY, dar transferul de date are loc numai cnd apare semnalul de validare.

Combinnd cele dou tipuri de dialog, se poate obine un dialog cu interblocare complet. Transmisia datelor va fi nceput numai dac destinaia este pregtit (READY activ), iar terminarea prelurii datelor este semnalizat tot de destinaie (ACKNOWLEDGE).

Forma sincron al dialogului cu interblocare complet permite dezactivarea simultan al semnalelor de validare i acceptare, astfel obinndu-se un ciclu mai scurt. Dezavantajul metodei este necesitatea de a sincroniza sursa i destinaia pe acelai semnal de tact.

Lector Dr. Ing. Adrian A. Adscliei

45

Arhitectura calculatoarelor, 2002 /2003

Metode de determinare ale prioritilor n cazul cuplrii mai multor echipamente pe magistral, exist posibilitatea cererilor simultane, dar la un moment dat doar o singur surs poate fi legat la magistral. Metodele de determinare al prioritilor asigur selectarea sursei care va fi cuplat la magistral. Legare n cascad (daisy-chaining) Toate echipamentele se cupleaz la o singur linie de cerere (REQUEST). Cnd una din echipamente a primit acces la magistral, activeaz linia BUSY indicnd starea ocupat a magistralei. O nou cerere va fi luat n considerare numai dup dezactivarea liniei BUSY. Deoarece linia de acceptare a cererii (GRANT) parcurge n serie toate echipamentele, n cazul cererilor simultane, se va accepta echipamentul care fizic este mai aproape de unitatea de control al magistralei. Ordinea de prioritate este determinat de locul fiecrui echipament, i nu poate fi schimbat. Dac un echipament se defecteaz, blocheaz restul lanului. Exist posibilitatea, ca ultimul element al lanului s nu primeasc acces la magistral. Avantajul metodei const n numrul redus de linii (3).

Numrtoare (polling) Difer de metoda precedent prin schimbarea liniei de acceptare prin liniile de ieire al unui numrtor reprezentnd o adres. Fiecare echipament are o adres unic. n cazul cererilor simultane, echipamentul care detecteaz mai repede adresa proprie va primi accesul la magistral, i numrtorul va fi oprit. La dezactivarea linie BUSY, numrtorul va fi incrementat n continuare. Prioritatea poate fi schimbat prin ncrcarea sau iniializarea numrtorului. Defectarea unui echipament nu are implicaii asupra funcionrii restului sistemului. Dezavantajul metodei const n limitarea numrului de echipamente ce pot fi cuplate de capacitatea numrtorului.

Lector Dr. Ing. Adrian A. Adscliei

46

Arhitectura calculatoarelor, 2002 /2003

Cereri independente Fiecare echipament va fi cuplat de unitatea de control al magistralei cu o linie proprie de cerere i acceptare. Prioritatea va fi determinat de unitatea de control prin program. Sistemul astfel realizat este foarte rapid i flexibil din punctul de vedere al prioritilor, dar cere multe linii de interconectare n cazul unui numr mare de componente.

ntreruperi n cazul unei ntreruperi provenite de la o surs intern sau extern, UCP transfer temporar controlul de la programul n curs de execuie la o secven special de tratare a ntreruperii. ntreruperile externe provenite de la echipamentele de intrare/ieire elibereaz procesorul de urmrirea strii lor, i vor iniia un transfer de fiecare dat cnd snt pregtite. Ele pot indica terminarea unei operaii iniiate de UCP, apariia unei erori la echipamentul de intrare/ieire sau iniierea unui nou transfer. Generearea ntreruperii se realizeaz prin activarea liniei de control corespunztoare (INT), legat de un registru al UCP-ului. Unitatea central de prelucrare la terminarea fiecrui ciclu de instruciune testeaz starea registrului. Etapele prelucrrii unei ntreruperi snt: - identificarea sursei cererii de ntreruperi; - obinerea adresei rutinei de servire; - salvarea numrtorului de program (adres de revenire) i a informaiilor de stare al UCP; - executarea rutinei de tratare a ntreruperii pn la instruciunea de revenire din ntrerupere (RETI); - refacerea numrtorului de program i a strii salvate, revenirea la programul ntrerupt. UCP-urile snt prevzute, de regul, cu instruciuni speciale pentru activarea, dezactivarea i mascarea ntreruperilor. Aceastea snt necesare n seciunile critice ale programului, cnd apariia unei ntreruperi ar afecta funcionarea ntregului sistem (de ex. n cazul programrii unei componente a sistemului). Sistemele de calcul pot fi prevzute i cu linii speciale de cerere de ntrerupere care nu pot fi dezactivate, denumite ntreruperi nemascabile. Acestea se folosesc pentru detectarea unor erori critice (de ex. scderea tensiunii de alimentare). Metodele de determinare al prioritilor n cazul ntreruperilor multiple (provenite de la mai multe echipamente) snt similare cu cele din cadrul cererilor de magistral. Cea mai simpl metod const dintro unic linie de ntrerupere, iar n cazul acceptrii cererii, echipamentul corespunztor trebuie s trimit adresa rutinei de tratare prin magistrala de date.

n cazul n care echipamentul de intrare/ieire nu poate trimite o adres, se folosete schema cu ntreruperi multiple, n care fiecare echipament este conectat cu propria linie de cerere a ntreruperii. Adresa rutinei de ntrerupere va fi generat de UCP n funcie de linia de cerere activat. Determinarea prioritilor se realizeaz tot de UCP.

Lector Dr. Ing. Adrian A. Adscliei

47

Arhitectura calculatoarelor, 2002 /2003

Pentru a reduce numrul de date transmise de periferic, n locul adreselor se trimite un vector de ntrerupere. UCP-ul va scoate adresa rutinei de tratare din tabela vectorilor de ntrerupere aflat n memorie. Metoda are avantajul schimbrii rutinelor de ntrerupere ataate unui periferic.

De obicei, mai multe periferice vor folosi un singur circuit de generare a vectorilor de ntrerupere. Circuitul poate deservi mai multe linii de ntrerupere provenite de la diferite echipamente de intrare/ieire. Cererile vor fi stocate ntr-un registru de ntrerupere. Registrul masc de ntrerupere permite sau interzice trecerea unei ntreruperi. Codificatorul prioritar genereaz o unic ntrerupere ctre UCP, i formeaz vectorul de ntrerupere corespunztor cererii deservite. Sistemul de ntreruperi va fi dezactivat automat dac a fost acceptat o ntrerupere. Ea trebuie activat prin program. Dac exist ntreruperi mai prioritare care trebuie tratate n timpul servirii unei cereri, se seteaz bitul corespunztor din registrul masc, i se activeaz sistemul de ntreruperi la nceputul rutinei de servire. n caz contrar, activarea sistemului de ntreruperi se realizaeaz la sfritul rutinei. Transfer de date cu acces direct la memorie (DMA) n mod obinuit, transferul de date dintre memorie i periferic se realizeaz prin intermediul UCP-ului cu dou instruciuni: se citesc datele din memorie n UCP de unde se transmit la echipamentul de intrare/ieire. UCP-ul trebuie s testeze linia de stare al perifericului, pentru a realiza sincronizarea cu aceasta. Exist posibilitatea ca un circuit special s realizeze transferul direct al datelor.

Procesorul trimite adresa de nceput i lungimea blocului ce urmeaz s fie transferat, precum i direcia. Acestea vor fi nscrise n registre speciale. Circuitul DMA va incrementa adresa automat dup fiecare
Lector Dr. Ing. Adrian A. Adscliei 48

Arhitectura calculatoarelor, 2002 /2003

transfer, i va decrementa numrtorul ce a fost nscris iniial cu lungimea blocului. Cnd numrtorul ajunge la 0, circuitul va semnaliza procesorului terminarea operaiei de transfer printr-o ntrerupere. UCPul nscrie registrul de adrese i numrtorul din acest circuit cu operaii de intrare/ieire clasice. Transferul de date dintre memorie i echipamentul de intrare/ieire se realizeaz direct, datele nu trec prin circuitul DMA. Fiecare periferic are un canal propriu de DMA. Cnd un periferic cere date (DRQ), circuitul DMA care este deja programat va cere accesul la magistral. La acceptarea cererii (DACK), va trimite adresa locaiei de memorie pe magistrala de adrese, iar prin magistrala de date se realizeaz legtura direct ntre locaia de memorie selectat i perifericul legat la canalul respectiv. Un controler DMA poate avea mai multe canale a cror prioritate este programabil. Canalele snt folosite i pentru transferul dintr-o zon de memorie n alta, dar aceast operaie se realizeaz cu dou accese la magistral, iar data citit va fi stocat temprorar n registrul de date. n acest caz transferul este iniiat de UCP prin programare. Exist dou moduri de transfer: - n rafal - UCP suspend operaiile n timpul transferului unui bloc, dup care preia ciclul de instruciune din punctul n care s-a suspendat; - prin furt de ciclu - DMA are acces la memorie tot timpul cnd UCP nu folosete magistrala.

Comunicaii la distan n cazul comunicaiilor seriale, biii de date vor fi transmise succesiv, pe o singur linie. Formatul datelor poate fi sincron sau asincron. La forma asincron, fiecrui caracter se adaug informaia de cadru, care const dintr-un bit de start i unul sau doi bii de stop. Bitul de star indic receptorului nceputul procesului de asamblare a unui caracter din fluxul serial de bii care urmeaz, precum i sincronizarea cu transmitorul. Sincronizarea are loc pe durata transmisiei unui singur caracter. La forma sincron, caracterele se asambleaz sub forma unor mesaje, adugndu-se caractere de sincronizare. Transmisia serial poate fi sincron sau asincron. Transmisia asincron se realizeaz cu modemuri asincrone care folosesc semnale de frecven diferite pentru 1, respectiv 0 logic. La transmisia sincron, modemul furnizeaz semnalul de sincronizare ctre terminal, i impune ca datele s fie transmise sincron cu acest semnal. n unele cazuri, cnd se urmrete creterea vitezei, fr a schimba protocolul, se opereaz ntr-un mod hibrid, datele cu format asincron fiind transmise sincron. Aceast transmisie este denumit izosincron. Elementele caracteristice transmisiei la distan snt: - suportul informaiei; - modul de organizare a datelor n cadrul unui caracter transmis; - vitezele de transmisie, standardizate, fiind msurate n baud (bit/sec); - sensul de transmisie; - detecia erorii. Suportul informaiei este specific terminalului, impunnd de regul viteza de transfer i modul de organizare a datelor. Vitezele maxime snt: - prin cablu coaxial 56 kbaud; - prin fibre optice 1,5 Mbaud; - prin satelit 50 Mbaud. Organizarea datelor n mod caracter const din fixarea numrului de cifre utile pe numrul total de bii (5/7, 7/9, 8/10, 8/11), numrului biilor de stop (1 sau 2) i a paritii (par, impar i fr paritate).
Lector Dr. Ing. Adrian A. Adscliei 49

Arhitectura calculatoarelor, 2002 /2003

Transmisia datelor n mod mesaj implic gruparea caracterelor n blocuri de lungime variabil i anexarea unui antet care conine date referitoare la lungimea i destinaia blocului. Caracterele de control n cazul unui mesaj snt: - SYN - sincronizare; - SOH - nceput antet; - STX - nceput text; - ETX - sfrit text; - EOT - sfrit transmisie; - ENQ - interogare; - ACK - acceptare date; - NAK - refuzare date; - DLE - suspendare.

Lector Dr. Ing. Adrian A. Adscliei

50

Arhitectura calculatoarelor, 2002 /2003

n ambele situaii, staia central va iniia transmisia prin selectarea staiei terminale. Retransmisia informaiei n caz de eroare are loc n urmtoarele situaii: - lips de rspuns (Timeout); - bloc incorect (caracterul NAK recepionat); - bloc invalid; - secven de recepie incorect. Detecia erorii const n verificarea paritii la nivel de caracter, i verificarea sumei de control la nivel de bloc. Exist i protocoale cu retransmisie permanent (tot blocul va fi retransmis la surs pentru a realiza o siguran ridicat). Textul nu poate conine caractere de control sau dac acestea apar, trebuie prefixate cu DLE (de ex. DLE ETX, DLE EOT). Sensul de transmisie poate fi semiduplex (alternativ n ambele sensuri) sau duplex (simultan n ambele sensuri).

Lector Dr. Ing. Adrian A. Adscliei

51

Arhitectura calculatoarelor, 2002 /2003

Dispozitive specifice cuplrii la distan

Cuplarea terminalelor pn la 3-5 km se pot realiza i fr modemuri. Concentratoarele cupleaz mai multe terminale care lucreaz n mod caracter, i transmit mai departe n mod mesaj. Cuplorul accept transmisiile de la UCP, asambleaz informaia n format prestabilit, transmite informaia pe calea stabilit. La recepia datelor de la terminale, verific existena erorilor, dezasambleaz informaia, gestioneaz i recunoate caracterele de control, transmite secvena de acceptare sau neacceptare ctre terminal i transmite informaia recepionat i dezasamblat ctre UCP. Cuplorul trebuie s realizeze o interfa standard cu canalul de comunicaie, permind posibilitatea de a programa parametrii comunicaiei. Modemurile asigur modularea i demodularea semnalului.

Semnalul emis, condiionat de existena cererii de emisie este aplicat modulatorului. Semnalul de cerere emisie este returnat ctre echipamentul emitor. La recepie, blocul de detecie a purttoarei va indica
Lector Dr. Ing. Adrian A. Adscliei 52

Arhitectura calculatoarelor, 2002 /2003

prezena semnalului. Att la emisie, ct i la recepie, semnalele de tact snt furnizate de modem ctre echipamentul de date.

7. Reele de calculatoare Reelele de calculatoare se impun n locurile unde se necesit comunicarea datelor ntre sisteme de calcul sau posibilitatea corelrii datelor provenite de la calculatoare independente. Cea mai important caracteristic este mprirea surselor, adic accesul la programe, date i echipamente, pentru fiecare utilizator, indiferent de locul unde se afl. Un alt avantaj al reelelor este posibilitatea accesului simultan, prin duplicarea fiierelor. Dup distana la care snt distribuite componentele, putem distinge: - reele locale (LAN) - de la 10 m la 1 km; - reele teritoriale (WAN); - superreea (Internetworking) - reeaua care leag mai multe reele teritoriale. Reelele locale snt acele sisteme la care timpul de propagare a semnalelor, comparativ cu durata de transmisie a unui singur bit, este mai mare, iar comparativ cu durata tipic a unui mesaj, este mai mic. Snt independente de sistemele publice de telecomunicaie existente, i pot folosi medii de comunicaii private. Mediile de transmisie asigur o rat de eroare foarte redus. Nu au comutatoare de pachete, ns fiecare element de prelucrare va poseda o interfa de reea. La aceast interfa pot fi conectate terminale inteligente, calculatoare personale, micro- i minicalculatoare. Reelele locale trebuie concepute ntr-un mod care permite interconectarea cu reelele teritoriale. Reelele teritoriale utilizeaz un subsitem de comunicaie, deci funciile de comunicaie snt fizic separate de cele de prelucrare, i snt implementate ca noduri de comunicaie interconectate. Comunicaia se bazeaz pe tehnica comutrii de pachete care asigur partajarea eficient a resurselor de comunicaie. Fiecare mesaj se mparte n pachete care se transmit independent. Un pachet trebuie s conin suficiente informaii de control, ca dirijarea sa prin reea s se realizeze independent de celelalte pachete. Rolul nodurilor este gestionarea i realizarea rutei pentru fluxul de pachete. Dorina de a realizara o superreea la care snt conectate toate calculatoarele existente a aprut n anii '80. n cadrul ei, reelele teritoriale snt legate prin satelite. Reelele de calculatoare au fost concepute ntr-o maniera stratificat ierarhic, ca o succesiune de nivele. Sub egida ISO s-a elaborat Modelul de Referin pentru interconectarea Sistemelor Deschise. Obiectivele de baz ale acestui model snt legate doar de comportamentul extern al sistemelor interconectate, caracterul deschis al unui sistem nu este legat de organizarea particular i funcionarea intern specific sistemului, doar de schimbul de informaii i de cooperarea dintre sistemele interconectate. A fost conceput pentru reele teritoriale, dar se aplic, cu anumite particulariti, reelelor locale. Dou principii eseniale stau la baza conceptului de arhitectur stratificat: - valorificarea serviciilor asigurate de nivelurile inferioare pentru fiecare nivel, astfel nct celui mai nalt nivel s-i fie oferit setul de servicii necesare pentru realizarea unei aplicaii distribuite; - asigurarea independenei fiecrui nivel, prin definirea serviciilor ctre nivelul urmtor, independent de modul de realizare a acestora. Nivelul este compus conceptual din subsistemele de acelai rang ale tuturor sistemelor interconectate. Se utilizeaz termenul de protocol pentru desemnarea comunicaiei dintre entitile aparinnd aceluiai
Lector Dr. Ing. Adrian A. Adscliei 53

Arhitectura calculatoarelor, 2002 /2003

nivel, i cel de interfa pentru comunicaia dintre nivele la aceai entitate. Detaliile unei interfee reprezint n general o opiune local de implementare. Nivelele trebuie astfel concepute ca fluxul de date prin interfee s fie minim, i schimbarea implementrii unui nivel s nu afecteze i interfaa. Un nivel poate lipsi dintr-un sistem n intregime, dac funciile lui nu snt folosite. Modelul de referin OSI descrie apte nivele funcionale, care, mpreun cu mediul fizic, asigur un set complet de servicii de comunicaie.

Aceast arhitectur poate fi conceput ca fiind compus din dou pri diferite: - partea de suport (1, 2, 3); - partea de utilizator (5, 6, 7). Cele dou pri snt separate de nivelul de transport, care are rolul de a ascunde detaliile constructive ale comunicaiei. Nivelul fizic asigur mijloacele mecanice, electrice funcionale i procedurale pentru accesul la mediul fizic. Totodat realizeaz transmisia la nivel de bit al informaiei. Problemele caracteristice ale nivelului snt: codificarea informaiei, modul de transmisie, cuplarea- decuplarea echipamentelor, nivelul semnalelor, modul de conexie i configuraia pinilor. Legtura de date, prin organizarea biilor n blocuri, asigur posibilitatea detectrii i corectrii erorilor care apar la nivel fizic. Cuprinde facilitile de sincronizare pentru comunicaii semiduplex i duplex. Nivelul de reea se preocup de dirijare mesajelor ntre dou noduri intermediare folosind blocuri speciale de control, care conine adresa destinaiei. Acest nivel va alege ruta pe care informaia va ajunge la destinaie i va aduga adresele nodurilor intermediare. Nivelul transport realizeaz transferul datelor de la surs la destinaie pe ruta stabilit de nivelul precedent cu o integritate ridicat. Se utilizeaz protocoale bazate pe confirmare, care implic transmisia, retransmisia i recuperarea datelor eronate. Transportul este de la cap la cap, programul de pe calculatorul surs conversnd cu un program similar de pe calculatorul destinaie. La acest nivel canalelor logice se asociaz adrese fizice. Nivelul sesiune permite legarea utilizatorului la un calculator central care lucreaz cu divizarea timpului (time sharing) i transmiterea fiierelor prin funciile de stabilire i eliberare de conexiuni, sincronizare, raportare ntrerupere. Pentru a evita repetarea ntregului transfer n caz de eroare, nsereaz periodic puncte de control de la care poate fi reluat transmisia. Nivelul de prezentare are rolul de a elibera aplicaiile de diferenele existente n reprezentarea datelor. Asigur totodat codificarea datelor ntr-un standard corespunztor aplicaiei. n cazul n care la
Lector Dr. Ing. Adrian A. Adscliei 54

Arhitectura calculatoarelor, 2002 /2003

transmisie se folosesc date comprimate pentru a reduce timpul de transfer, acest nivel rezolv comprimarea i decomprimarea datelor. Nivelul aplicaie permite funcionarea concurent a proceselor n vederea realizrii unui obiectiv definit de utilizator, fr ca acesta s cunoasc locul unde se afl procesele. Funciile asigurate de acest nivel snt: lansarea programelor, vizualizarea i transferul fiierelor de pe ntregul sistem, pota electronic (Email).

Reele locale (LAN) n comparaie cu modelul de referin, reelele locale au urmtoarele particulariti: - la legtura de date exist un singur canal fizic de comunicaie, care este cerut i eliberat n mod dinamic de ctre elementele interconectate, folosind un protocol de acces multiplu la canal; - nivelul reea este opional, pentru c nu exist probleme de rutare - ea poate fi folosit pentru comunicaii inter-reea; Factorii de care se ine cont la alegerea unui LAN potrivit: numrul de puncte care trebuie conectate, aria fizic acoperit i distana maxim dintre puncte, posibilitatea de extindere a reelei, performanele dorite, siguran i securitatea datelor, posibilitatea de comunicare n afara reelei. Reeaua local, n general, este realizat pe baza urmtoarelor elemente hardware: mediul fizic de transmisie, setul de mecanisme de acces i transmisie pe mediu, interfaa de reea. Interfaa de reea trebuie s funcioneze n paralel cu elemetul de prelucrare gazd. Elementele de prelucrare snt toal indepedente de schema de interconectare. Elementele pasive (imprimante, scannere etc.) conectate n reea snt asociate pe o anumit cale cu elementele active. Comunicaiile cu elemetele pasive vor avea loc prin intermediul elementelor gazd asociate. Este necesar adoptarea unei proceduri administrative, care s permit gestiunea alocrii de adrese la dispozitivele conectate n reea. Cea mai simpl metod de a aloca adrese unice globale este cea a partiionrii spaiului de adrese pe blocuri. Adresarea de grup sau multipl permite trimiterea mesajelor sau a pachetelor la mai multe destinaii. Alocarea dinamic asigur o adresare flexibil, i nu cere implicarea utilizatorului. Ci fizice, topologii de baz Calea multipunct global conduce la o topologie de tip magistral, i permite conectarea unui nod simultan cu toate celelalte. Poate fi bidirecional (fig. 7.2. a) sau unidirecional (fig. 7.2. b). Prima este realizat cu un singur cablu coaxial, prevzut cu conectori de cuplare bidirecionali. Buna funcionare a reelei este condiionat de respectarea lungimilor derivaiilor i a spaiilor ce le separ, pentru a evita pierderile i reflexiile de semnal. n cazul celei de a doua, emisia fiecrui nod este conectat la una dintre ramurile topologiei, numit i canal de emisie, iar recepia la cealalt ramur, denumit i canal de recepie. Reflexiile de semnal, datorat dezadaptrii de impedan, vor sosi la nivelul receptorilor cu o amplitudine neglijabil. Acest tip va permite tolerarea unor defecte de cablu i de conector, ct i extragerea unui nod din reea. n cazul topologiei de tip inel (fig. 7.2. c), fiecare nod este legat la dou noduri vecine, n scopul constituirii unui inel unidirecional. Fiecare nod poate aciona ca un simplu repetor al informaiei sau ca emitor activ. Reduce timpii de acces, dar defectarea unui element conduce la cderea reelei. Metodele de evitare snt utilizarea liniilor punct la punct redunante sau folosirea unui inel de rezerv. Topologia de tip stea (fig. 7.2. d), format din ci punct la punct, realizeaz conexiuni unice ntre perechi de noduri. Necesit implementarea unor strategii de rutare (nodul central).

Lector Dr. Ing. Adrian A. Adscliei

55

Arhitectura calculatoarelor, 2002 /2003

Protocoale de comunicaie pentru reele locale n inel Permisiunea de a utiliza inelul de transmise este transferat secvenial i unidirecional de la un nod la altul. Metoda dreptului de control circulant (token passing) const n utilizarea unei combinaii specifice de bii (jeton de control sau token) identificat de reea, care n absena traficului circul continuu pe inel. Posesorul jetonului are acces la inel. Dac nu are nimic de transmis, trimite mai departe jetonul; n caz contrar, jetonului i se anexeaz mesajul. nlturarea mesajului de pe inel se realizeaz de nodul surs (cel care a transmis mesajul), care n acest moment verific identitatea datelor trimise cu cele sosite. Poate fi realizat cu un singur mesaj sau cu tren de mesaje. O situaie particular apare la pornirea sistemului, sau la alterarea jetonului, cnd fiecare nod va asculta inelul pe o durat proprie, dup care prima dintre ele va genera un jeton. Metoda accesului prin competiie se deosebete de metoda dreptului circulant prin lipsa jetonului cnd nu exist trafic n reea. n cazul n care o staie are de transmis, verific dac n momentul respectiv trece sau nu un mesaj n faa lui. Dac nu, transmite mesajul i un jeton la sfritul acestuia. Cnd mesajul revine la staia surs, se va nltura mpreun cu jetonul. Dac staia observ existena unui trafic, ateapt recepionarea jetonului pe care o va transforma n conector de pachete, i nsereaz pachetul propriu. Metoda containerului gol urmrete nbuntirea utilizrii inelului prin divizarea benzii de trecere a canalului disponibil ntr-un numr ntreg de secvene de bii de lungime fix (denumite container), delimitate ntre ele. Containerele snt permanent circulate unidirecional pe inel, i n ele pot fi plasate pachete de date mpreun cu adresa de destinaie. Un bit de control al containerului indic starea de ocupat sau gol al acestuia. Un mesaj va fi mprit n pachete de lungimea unui container, astfel diferitele poriuni ale inelului vor transmite pachetele aceluiai mesaj. Destinatarul unui pachet extrage pachetul, i marcheaz containerul ca fiind gol, el putnd fi utilizat deja de nodul curent. Aceast tehnic poate conduce la dominarea inelului de anumite noduri (dialog ntre dou noduri). Pentru a avita aceast deficien, se utilizeaz dou tehnici: primul const n copierea coninutului la destinaie, iar marcarea containerului va fi realizat de un nod special, numit controler de inel; al doilea realizeaz copierea coninutului la destinaie, dar containerul se elibereaz la surs. Metoda inseriei de registru realizeaz ncrcarea mesajului care trebuie transmis ntr-un registru de deplasare de lungime variabil. Acest registru este localizat n interfaa de inel, i are posibilitatea de a fi conectat n serie cu inelul, fiind parcurs de traficul curent din reea. Cnd un nod al reelei are un mesaj de transmis, acesta va fi ncrcat n registrul de transmisie (TSR) din interfaa proprie, care se va nsera n reea doar cnd inelul de transmisie este liber (poz. 2 a comutatorului). Mesajul este circulat n reea; n acest timp orice alt mesaj care sosete este ntrziat, i nscris n registrul de recepie (RSR). Dup transmiterea mesajului propriu, se comut la registrul de recepie (poz. 3), pn cnd i acesta va fi golit, dup care se reface configuraia iniial a inelului (poz. 1).

Lector Dr. Ing. Adrian A. Adscliei

56

Arhitectura calculatoarelor, 2002 /2003

Un nou mesaj poate fi transmis de acelai nod numai dup golirea celor dou registre. Protocoale de comunicaie pentru reele locale cu magistral de difuzare Snt caracterizate de necesitatea alocrii unei resurse unice (canal de comunicare) la o multitudine de surse de mesaje. Competiia din interiorul acestor sisteme este provocat nu numai de natura lor aleatoare, ci i de imposibilitatea utilizatorilor de a se observa reciproc pe msura apariiei cererilor de utilizare. Informaia de control trebuie transferat pe acelai canal cu informaia propriu-zis. Exist dou tipuri de strategii: - strategii cu competiie (cu acces aleator); - strategii cu consultare (acces fr coliziuni). n cadrul strategiilor cu competiie apar dou probleme: rezolvarea coliziunilor (prin tehnicile adaptive i neadaptive) i controlul accesului (prin tehnicile transmite surd, ascult i transmite, ascult, transmite i ascult transmisia). Dac fiecare nod implicat ar fi capabil s aleag un moment de retransmisie care s difere de momentele alese de ceilali, problema coliziunilor ar fi simplificat. Tehnicile neadaptive nu in cont de traficul curent n reea, planificarea ntrzierilor fiind fixe. Snt adecvate numai n sisteme cu numr redus de surse. n cazul tehnicilor adaptive, fiecare utilizator blocat ntr-o coliziune ncearc s evalueze numrul utilizatorilor blocai n reea, i s ajusteze rata de retransmisie n mod corespunztor. De obicei, acest lucru se realizeaz cu ajutorul unui controler unic de reea. Tehnica trasmite surd (ALOHA) asigur transmiterea pachetului n momentul generrii sale, fr nici o restricie. Sursa trebuie s atepte un interval de timp prestabilit sosirea confirmrii recepiei. n cazul lipsei confirmrii, se va retransmite tot mesajul. Coliziunea care ar afecta cea mai mic fraciune din timpul de transmisie, va avea acelai efect ca o interferen complet de pachete. Prin urmare, timpul maxim nefolosit din cauza coliziunilor este de dou ori timpul de transmisie. Aceast tehnic este nbuntit prin discretizarea timpului. Alegerea momentelor de acces la canal nu va fi total asincron. O cuant de timp este egal cu durata de transmisie a unui pachet. Prin tehnica ascult i transmite (CSMA) s-a realizat ascultarea canalului nainte de transmisie de fiecare surs. Dac sursa detecteaz o transmisie n curs, i va amna propria transmisie pn cnd canalul va fi gsit liber. Coliziunea de pachete poate s apar i n cazul transmisiei pe canalul aparent liber, datorit timpilor de propagare. Tehnica se bazeaz pe ipoteza fundamental conform creia ntrzierea maxim de propagare este mic n raport cu durata maxim de transmisia unui pachet. Tehnica ascult, transmite i ascult transmisia (CSMA/CD) nbuntete pe cea precedent prin detectarea ferm a coliziunilor. Sursa, dup ce transmite pachetul, ateapt un interval foarte scurt de timp (dependent de ntrzierea din sistem), dup care i ascult propria transmisie. Dac detecteaz o diferen ntre informaia transmis i cea recepionat, transmite un mesaj specific de bruiaj, ca toate sursele implicate s fie informate. La strategiile cu consultare se definete un inel logic dreptul de a transmite pe magistral se transfer succesiv de la o staie la alta. Inelul logic se refer doar la dreptul de emisie al staiilor, neavnd nici un rol la recepia mesajelor. Toate staiile pot s asculte orice mesaj transmis, dar numai cele care fac parte din inelul logic vor iniia transmisii. Dac staia n recepioneaz mesajul transfer de jeton de la staia n - 1, va considera c are dreptul la emisie. Tipuri caracteristice de reele
Lector Dr. Ing. Adrian A. Adscliei 57

Arhitectura calculatoarelor, 2002 /2003

ETHERNET Prezint o structur cu magistral de difuzare, folosind tehnica ascult, transmite i ascult transmisia pentru controlul accesului.

Legturile se realizeaz prin cablu coaxial cu impedan de 50 ohmi, i lungimea maxim a segmentului de 500 m, la care snt conectate elementele de prelucrare prin transceiver i controler. Transceiverul are rolul de detectare a purttoarei i a coliziunilor. n cazul sesizrii coliziunilor, va genera semnalul de bruiaj specific. Transceiverul multiport realizeaz legtura mai multor elemente de prelucrare (maxim 8). Cablul de legtur dintre transceiver i controler nu poate depi 50 m. Controlerul asigur algoritmii necesari accesului la canal, recunoaterea adreselor, constituirea pachetelor, codificarea i decodificarea datelor, precum i serializarea i deserializarea informaiei. Exist controlere cu procesor i buffer propriu, i variante cu DMA. Sistemul include n mod opional i repetoare, pentru extinderea ariei de ntindere a reelei. Permite conectarea a dou segmente adiacente prin intermediul transeiverilor. TOKEN RING Este o reea extrem de vast i fiabil, cu topologie hibrid stea-inel, folosind tehnica jetonului circular. Configuraia minimal este alctuit dintr-un singur inel, realizat din cablu coaxial care leag interfeele de reea. Numrul maxim de staii pe inel este de 250. Datorit numrului mare de repetri a semnalului circulant, pot apare desincronizri la nivel de bit. Dac nodurile snt distribuite pe distane mari, este preferabil s se realizeze mai multe inele interconectate prin puni. Puntea este un calculator echipat cu cte o interfa pentru fiecare inel.

Lector Dr. Ing. Adrian A. Adscliei

58

Arhitectura calculatoarelor, 2002 /2003

Sistemul de operare are ca scop gestiunea resurselor aflate n reea. Cea mai important funcie a lui este mprirea numelor i adreselor n sistem, asigurnd o compatibilitate cu mai multe tipuri de reele i mai multe sisteme de operare. Asigur configurarea i reconfigurare a resurselor, precum i a parametrilor reelei, iar la identificarea unor erori activeaz sau dezactiveaz anumite surse. Funcia de monitorizare permite urmrirea evenimentelor din reea. Gestiunea securitii cuprinde controlul accesului (creaz conturi, atribuiri de parole, restricii la folosirea anumitor staii, determin numrul de staii folosite simultan de un utilizator, eventual timpul maxim de utilizare) i protecia resurselor, care atribuie unui utilizator sau unui grup dreptul de a folosi o resurs sau se aplic un atribut resursei (citire, scriere, creare, cutare). Gestiunea fiierelor trebuie s asigure fiecrui utilizator accesul la toate datele din sistem, indiferent de modul de reprezentare al acestora. La reele locale, uzual, toate datele vor fi pstrate pe un fileserver, care va pstra toate datele din sistem. Acest lucru impune msuri de siguran n plus. De obicei se dubleaz tabela de directoare, dar exist situaii cnd ntregul volum de date este dublat. Serviciile suplimentare ale reelei snt: transmisia mesajelor electronice, gestiunea contabil, gestiunea listrilor.

8. Arhitecturi speciale Procesoare cu set redus de instruciuni Urmrind evoluia calculatoarelor se observ c tendina de dezvoltare este de a creea procesoare cu set complex de instruciuni, cu multe moduri de adresare, care faciliteaz compilarea programelor scrise n limbaj de nivel nalt. Odat cu dezvoltarea tehnicii microprogramate acesta a devenit i mai atrgtoare. Unitile de control microprogramate s- au rspndit deoarece prezint cteva avantaje: - setul de instruciuni este uor de realizat - costurile de realizare snt mult mai sczute dect la varianta cablat - permite adugarea noilor instruciuni sau modificarea celor existente relativ uor - dezvoltarea i depanarea instruciunilor este mai uoar. Realiznd o analiz a programelor scrise n diferite limbaje de nivel nalt s-a constatat c instruciunile de asignare i apel de procedur reprezint 85% din totalul folosit. i mai interesant este distribuia numrului de termeni ce apar n operaii de asignare, numrul de parametrii locali, precum i numrul pe pararmetrii de apel. Majoritatea operaiilor de asignare ( 80%) conin o singur variabil i sub 1% folosesc mai mult de 5 variabile. 22% din proceduri nu definesc nici o variabil local iar 80% conin mai puin de 5 variabile local i doar 8% transfer mai mult de 5 parametrii. Aceste rezultate conduc la concluzia c majoritatea variabilelor ar putea fi definite n registre. Setul complex de instruciuni canduce la compilatoare mai complicate i mai puin eficiente, precum i la decodificarea mai lent a instruciunilor. Toate acestea au condus la reactualizarea conceptului de RISC: - instruciunile snt mai simple - instruciunile au lungimi egale i format unic - exist un singur mod de adresare - numai instruciunile LOAD i STORE vor lucra cu memoria - conine puine tipuri de date de ex. ntreg i real
Lector Dr. Ing. Adrian A. Adscliei 59

Arhitectura calculatoarelor, 2002 /2003

- fiecare instruciune se execut ntr-un singur ciclu - unitatea de control se implementeaz cablat - conine multe registre. Acesta nu reprezint un standard, dar majoritatea procesoarelor prezint proprietile enumerate. Considernd modul de implementare al acestor procesoare cea mai important caracteristic este c instruciunile constau dintr-o singur microoperaie. Se extrag cei doi operanzi din registru, trec prin ALU, se stocheaz rezultatul n registru ntr-un singur ciclu. Instruciunile n virgul flotant se execut de un coprocesor (poate fi nglobat n procesor) n mod asemntor. Instruciunile au un format fix iar cmpul operand este folosit direct de un decodificator pentru a genera semnalele de control al fluxului de date. ntreaga unitate de control este cablat sau implementat cu PLA. Dac se crete numrul de instruciuni decodificatorul este mai complex i timpul de execuie crete. Un bit al instruciunii (C) arat dac instruciunea afecteaz sau nu Flagurile. Cte 5 bii snt rezervai pentru a selecta una dintre registrele surs i destinaie iar 1 bit pentru a indica dac cmpul offset va fi interpretat ca un operand direct.

Acest format asigur urmtoarele moduri de adresare pentru operaii aritmetice: - registrul 0 reprezint valoarea 0 - bitul I setat inseamn c offsetul este interpretat ca cel de al doilea operand - bitul I resetat - ultimii 5 bii ai offsetului vor selecta registrul ce conine al doilea operand. Pentru instruciunile LOAD/STORE acelai format se interpreteaz astfel: - offsetul se adun la registrul surs pentru a forma adresa efectiv; adresare indexat - dac offsetul este 0 ; adresare indirect prin registru - dac registrul este 0 se adreseaz direct primul 8k memorie direct. Deoarece instruciunile se execut ntr-un singur ciclu se folosete o structur pipeline cu dou nivele de extragere i de execuie. Instruciunile de referire a memoriei nu pot fi executate ntr-un singur ciclu. n aceast situaie se va ncepe execuia urmtoarei instruciuni fr ca operaia cu memoria s-ar fi terminat. Compilatorul trebuie s asigure reorganizarea instruciunilor astfel nct instruciunea urmtoare s nu foloseasc rezultatele referirii la memorie. n situaia n care nu este posibil se intercaleaz instruciunea NOP. Acest efect este denumit incrcare ntrziat. Unele procesoare asigur i un blocaj hard n situaia n care registrul care este implicat n operaii cu memoria este folosit. Asemntor se rezolv i instruciunile de salt i apel de subrutin. Pentru a crete viteza de prelucrare arhitectura procesoarelor prezint urmtoarele caracteristici: - nu permit automodificarea programului, adica accesul de scriere n zona program - au ci separate pentru date i program - are registre separate pentru ntregi i reali precum i uniti de prelucrare separai - posed memorii cache separai pentru date i program - asigur transferul de parametrii prin registre suprapuse - asigur ncrcarea simultan a mai multor registre cu elementele unui ir - are i instruciuni pentru prelucrarea vectorilor. Compilatoarele joac un rol important. Un compilator suboptimal conduce la rezultate mult mai slabe ca la CISC. Rolul compilatoarelor RISC este de a reorganiza secvena de cod astfel ca s foloseasc la maximum paralelismul unitii centrale de prelucrare; folosirea eficient a intrzierilor create dup instruciunile de ncrcare i salt fr intercalarea NOP- urilor; alocarea corect a registrelor. Un rol important joac modul de organizare al registrelor, realizat n parte de compilator dar cu ajutorul unor mecanisme hard. Cele mai multe operaii cu memoria vor fi efectuate n cazul apelrii unei proceduri i transmiterea parametrilor. In aceast situaie de obicei se salveaz regitrii i adresa de revenire n stiv, i se schimb parametrii tot prin stiv. Acesta se rezolv la RISC-uri prin ferestre de registre suprapuse.

Lector Dr. Ing. Adrian A. Adscliei

60

Arhitectura calculatoarelor, 2002 /2003

Procesorul conine un numr vast de registre dar la un moment dat vor fi folosite doar 32 dintre ele. Acestea vor fi mprite n 4 grupe egale sau inegale. Primul grup va conine variabile globale primul registru fiind rezervat pentru a conine 0. Al doilea grup conine parametrii de apel (intrare) ai unei proceduri. urmtorul grup este rezervat pentru parametrii locali iar ultimul pentru parametrii de ieire. In cazul n care parametrii nu ncap n numrul de registre rezervat restul vor fi definii n stiv n modul obinuit. n majoritatea situaiilor ns este acest spaiu suficient. Spaiul de registre globali va fi folosit de orice procedur. Restul regitrilor vor fi relativi la indicatorul ferestrei curente (CWP). Cnd procedura A apeleaz procedura B CWP va fi incrementat cu 16. Astfel regitrii de intrare pentu procedura B vor fi de fapt registrii de ieire pentru procedura A, deci se evit mutarea parametrilor dintr-un loc n altul i nu se face acces nici la memorie. Compilatorul va respecta cteva reguli: - primul parametru se depune n registrul R24 - ultimul parametru in registrul R30 - R31 este rezervat pentru adresa de revenire - dac snt mai muli parametrii restul se transfer prin stiv - va schimba coninutul CWP la ficare apel i reface la revenire. Pentru a optimiza folosirea registrelor compilatorul va determina timpul de folosire al unei variabile pentru a determina posibilitile de reutilizare al unui registru. n prezent exist argumente n favoarea celor dou tipuri de procesoare n egal msur. Adepii CISC-urilor enumer urmtoarele: - operaiile implementate n microcod se execut mai repede ca programul - setul complex de instruciuni nu crete preul de producie - este mai uor de realizat compatibilitatea cu componentele precedente din aceeai familie - simplific realizarea compilatoarelor. Evoluia tehnologic a diminuat unele din aceste avantaje prin realizarea memoriilor cu timp de acces redus. ntroducerea memoriilor cache a condus la creterea considerabil a vitezei de transfer ntre memorii i procesor. n concluzie putem enumera urmtoarele avantaje ale RISC-urilor: - structura hard fiind mai simpl, snt mai rapide - compilatoarele pot crea un cod optim - permit ntroducera paralelismului n unitatea de control.

Calculatoare vectoriale Performana unui calculator poate fi nbuntit introducnd instruciuni asupra vectorilor. Prin extragerea unei singure instruciuni, vor fi prelucrate un ir de date. Structurile pipeline asigur suprapunerea secvenelor de prelucrare pentru mai multe elemente ale aceluiai vector. Lungimea pipeline-ului determin numrul de componente care pot fi prelucrate simultan. Dac aceai structur trebuie s prelucreze i date scalare, performanele scad. Din acest motiv, calculatoarele vectoriale snt prevzute cu uniti separate pentru calcul vectorial i scalar. Pentru a asigura alimentarea continu a pipeline-ului cu date, se ntroduc registre vectoriale, care vor fi ncrcate din memoria operativ. Principalele tehnici de realizare a supercomputerelor vor fi:
Lector Dr. Ing. Adrian A. Adscliei 61

Arhitectura calculatoarelor, 2002 /2003

- uniti de control cu structura pipeline, - mai multe uniti funcionale cu arhitecturi pipeline care vor lucra n paralel, - bancuri de memorie ntreesute, - memorii cache independente pentru date i instruciuni, - mai multe magistrale independente pentru transferul datelor. Arhitectura calculatoarelor vectoriale de tip CRAY-2 prezint patru uniti centrale de prelucrare, cuplate la o memorie comun de 8Mword. O unitate central de prelucrare este compus din opt registre pentru adrese, opt registre scalare de 64 bii, opt registre vectoriale (fiecare avnd posibilitatea de a memora 64 de elemente a 64 de bii). Operaiile n virgul mobil se execut n trei uniti pipeline pentru nmulire, adunare i calculul inversului, care primesc operanzii din registrele scalare sau vectoriale. Un registru de 7 bii specific numrul elementelor implicate ntr-o operaie vectorial, iar un registru de 64 bii (VM) are un bit pentru fiecare element al unui registru vectorial, i este folosit pentru mascarea anumitor elemente n sensul neparticiprii la o operaie vectorial. Exist uniti separate pentru prelucrri scalare i pentru calculul adreselor. Memoria local are rolul de a stoca temporar scalarii i vectorii n cursul calculelor. Transferul ntre registre i memoria comun se realizeaz pe trei ci de date. Perioada ceasului este de 4,1 ns. Performana maxim a unui procesor este de dou rezultate n virgul mobil la fiecare perioad de ceas, adic 500 Mflop/s. Poate aprea un conflict de simultanitate cnd un bloc de memorie este accesat simultan pe linii independente de ctre diferite CPU. Acesta se rezolv prin atribuirea unei prioriti diferite UCP-urilor la fiecare 4 perioade. Conflictul pe linie apare la acelai procesor cnd dou sau mai multe ci solicit acces la aceeai zon de memorie. Snt rezolvate prin atribuirea prioritii mai mari operaiilor vectoriale, sau prin intercalarea strilor de ateptare la transferuri scalare. Fiecare CPU are 4 buffere pentru instruciuni cu capacitatea de 128 cuvinte. Bufferele snt ncrcate ciclic din memoria operativ. Dac o instruciune nu se afl n buffer se ncarc urmtorul.

Toate unitile funionale snt pipeline, i pot accepta un nou set de argumente la fiecare perioad de ceas. O instruciune poate fi lansat n execuie dac unitatea nu este ocupat cu o operaie, i dac registrele necesare pentru operanzi i rezultat nu snt rezervate de alte instruciuni n curs de execuie. O instruciune vectorial (de ex. adunarea a doi vectori) rezerv registrele pentru toat durata operaiei. Dac o instruciune vectorial folosete un registru scalar, el nu se rezerv, deoarece unitatea funcional pstreaz o copie a lui. Astfel n perioada de ceas ce urmeaz lansrii n execuie a instruciunii, coninutul lui poate fi modificat. Similar, valoarea registrului ce conine lungimea vectorului poate fi modificat imediat dup trecerea instruciunii. Instruciunile cu vectori de lungimi diferite se pot executa

Lector Dr. Ing. Adrian A. Adscliei

62

Arhitectura calculatoarelor, 2002 /2003

concurent. n cazul instruciunilor scalare, instruciunea rezerv numai registrul pentru rezultat, astfel previne citirea lui de alte instruciuni. O caracteristic important a arhitecturii este posibilitatea de a inlnui o serie de operaii vectoriale, astfel nct s poat opera mpreun ca un pipeline continuu. Seciunea de intercomunicaii conine 3 grupe de registre comune, care pot fi accesate de ctre toate CPU pentru comunicaii i sincronizare. De asemenea exist un ceas comun. Are aproximativ 128 de instruciuni. Toate unitile funionale lucreaz numai cu registre, deci fiecare instruciune va conine doar 3 bii pentru definirea sursei i a destinaiei.

Arhitecturi paralele Sistemele multiprocesor reprezint structuri de interconectare a mai multor procesoare care ruleaz n mod paralel pri ale aceluiai algoritmi, realiznd astfel o unic sarcin. Aceste arhitecturi permit o prelucrare mai rapid i o siguran ridicat n funcionare. Dup modul de distribuire al sarcinilor la procesoare putem distinge sisteme cu distribuire dinamic i distribuire static. La sistemele cu distribuire dinamic, toate procesoarele snt de acelai tip, i pot prelua orice sarcin general. n cazul defectrii unui procesor, sistemul poate fi reconfigurat, localiznd eroarea fr a afecta funcionarea corect a ntregului sistem. Pentru utilizarea eficient a resurselor trebuie s existe un sistem unic de operare care mparte sarcinile pe procesoare. n cazul sistemelor cu distribuire static, fiecare procesor are o sarcin specific, putnd fi adaptat pentru acesta. Sistemul de operare devine mult mai simplu, dar n cazul apariiei unei defeciuni, ntregul sistem poate fi afectat. Sistemele cu multiprocesor trebuie s asigure comunicarea i sincronizarea proceselor care ruleaz pe diferite procesoare. Deoarece nu exist un ceas unic n sistem, se definete un ceas logic, care este actualizat i citit periodic de fiecare procesor prin mesaje. Reeaua de interconectare realizeaz legtura ntre procesoarele i unitile de memorie distribuite. Este folosit n mod tipic pentru: - schimbarea semnalelor de control ntre procesoare, - conectarea procesoarelor la diferite bancuri de memorie, - schimbarea mesajelor ntre procesoare, - realizarea transferului de date, - conectarea procesoarelor de echipamente de I/O. Elementele interconectate vor fi denumite noduri ce pot fi legate prin comutare de circuite sau comutare de pachete. La reelele cu comutare de circuite se stabilete legtura ntre noduri pe toat durata transferului de date. La reelele cu comutare de pachete fiecare pachet va urma calea proprie prin reeaua de interconectare, iar nodurile vor avea buffere pentru reasamblarea mesajelor. Dup modul de comunicare dintre procesoare, putrem distinge sisteme slab cuplate i sisteme strns cuplate. La sistemele slab cuplate, comunicarea se realizeaz prin canale de intrare/ieire speciale.

Aceast metod de interconectare permite comunicarea procesoarelor care snt cuplate prin canale directe.
Lector Dr. Ing. Adrian A. Adscliei 63

Arhitectura calculatoarelor, 2002 /2003

Fiecare procesor are resurse proprii, i ruleaz o copie a sistemului de operare, care se afl n memoria proprie. Comunicaiile snt relativ lente, dar viteza poate fi mrit, folosind canale cu acces direct la memorie. Reconfigurarea sistemului, dei fiecare procesor este identic, necesit transmisia unui volum mare de date. Sistemele strns cuplate se bazeaz pe conectarea tuturor procesoarelor pe o magistral unic, la care comunicarea se realizeaz prin memoria comun cuplat la magistral.

Un procesor depune datele n memoria comun, i semnalizeaz prin linia de ntrerupere a magistralei comune terminarea operaiei respective. Performana sistemului este mult influenat de capacitatea de trecere a magistralei comune, acesta reprezentnd un punct de strangulare n sistem. Din acest motiv, fiecare element procesare dispune i de o memorie proprie, i numai datele care se comunic vor fi depuse n memoria comun. Pot exista i echipamente de intrare/ieire cuplate la magistrala comun, pentru a putea fi utilizate de fiecare procesor, dar acesta contribuie n plus la ncrcarea magistralei. Legtura la magistrala comun se realizeaz prin cuploare care trebuie s asigure evitarea conflictelor de magistral, i determinarea prioritilor n cazul cererilor multiple. Sisteme strns cuplate pot fi implementate i cu ajutorul reelelor de comutare.

Lector Dr. Ing. Adrian A. Adscliei

64

Arhitectura calculatoarelor, 2002 /2003

O alt problem la sistemele multiprocesor este protecia datelor mpotriva accesului simultan din partea a mai multor procesoare. Magistrala comun va fi prevzut cu linii speciale de blocare, care nu permit cedarea magistralei la un alt procesor pn la terminarea operaiei ncepute. Procesorul care a blocat magistrala, rspunde de deblocarea lui la terminarea operaiei critice. Pentru a reduce timpii de ateptare datorate magistralei comune, fiecrui procesor i se ataeaz o memorie cache proprie, care conine o parte a datelor din memoria comun. Trebuie s se asigure existena copiei corecte a datelor n memoriile cache, astfel orice modificare n memoria comun se va sesiza de fiecare controler, i se va modifica copia n cazul n care exist n cache-ul propriu.

Sisteme cu siguran ridicat Sistemele cu siguran ridicat trebuie s asigure o funcionare permanent fr erori. Imposibilitatea excluderii erorilor de proiectare hard i soft a impus ca sistemele s fie prevzute cu faciliti de autotestare i autodiagnoz. Aceste sisteme pot fi construite prin dublarea anumitor componente critice (redundan). Sistemele multiprocesor lucreaz cu o siguran mai ridicat prin testare reciproc. Cea mai simpl metod de constatare a erorii se realizeaz prin temporizri. Procesorul care lucreaz, periodic va iniializa un monostabil care trebuie reiniializat nainte de expirarea temporizrii. Dac acest lucru nu se realizeaz, sistemul nu a ajuns n punctul dorit; deci se presupune o eroare, i comut la cellalt procesor. n acelai timp, pentru a asigura preluarea datelor de noul procesor, se genereaz o ntrerupere.

Aceast metod prezint un dezavantaj datorit faptului c comutarea nu se realizeaz n momentul defectrii; astfel datele eronate pot fi preluate. Magistrala extern comun mpiedic testarea complet a sistemului, deoarece se presupune c eroarea nu apare pe aceasta, i nici n memoria legat de ea. n cazul n care se cere un sistem care comand o periferie i n situaia n care un modul se defecteaz, se folosete o alt structur.

Lector Dr. Ing. Adrian A. Adscliei

65

Arhitectura calculatoarelor, 2002 /2003

Circuitul majoritar asigur comanda periferiei dac cel puin dou sisteme cer acest lucru. Cele trei procesoare lucreaz sincron, i execut aceai secven. Problema cea mai important este sincronizarea procesorului la care s-a eliminat eroarea. Procesorul trebuie adus la aceai stare cu celelalte, i memoria proprie va fi ncrcat cu datele corespunztoare. Pentru a evita punctele critice din sistem, att circuitul de sincronizare, ct i circuitul de ncrcare date vor fi realizate cu circuite majoritare.

Singura restricie a sistemului este evitarea apariiei unei erori noi n timpul coreciei celei precedente. Sistemul asigur o flexibilitate mare n timpul depanrii, prin comanda permanent a periferiei. Masive de procesoare Calculatoarele vectoriale prezint avantaje n cazul instruciuilor complexe, dar exist situaii n care se cer operaii simple asupra unui foarte mare numr de componente. n aceste situaii se folosesc procesoare
Lector Dr. Ing. Adrian A. Adscliei 66

Arhitectura calculatoarelor, 2002 /2003

simple interconectate ntre ele, care alctuiesc un masiv. Interconectarea prin magistral producnd strangulri, comunicarea dintre procesoare se realizeaz cu o reea de comutare. Diferenele dintre arhitecturile astfel obinute depind de: - dimensiunea masivului i puterea procesorului individual; - complexitatea reelelor de comutare; - distribuia controlului sistemului (masivul poate fi condus de procesor central, sau fiecare procesor are controlerul lui); - forma de control al sistemului. Control cu flux de date (data flow) n cadrul modelului, o instruciune nu se execut sub influena numrtorului de program, numai dac toi operanzii ei snt disponibili. Un program poate fi descris ca un graf orientat, dealungul cruia circul date (token), ieirea unei operaii fiind conectat la operaiile care i consum rezultatul. O instruciune conine cmpuri de identificatori pentru operanzi. n cursul execuiei, identificatorii din instruciuni snt comparai cu cele ale datelor sosite, i cnd toi operanzii unei instruciuni snt disponibili, instruciunea este plasat ntr-o coad de ateptare pentru execuie. Un astfel de sistem conine un controler al fluxului de date, un sistem de comunicare i elementele individuale de prelucrare.

Unitatea de control al fluxului de date repartizeaz instruciunile la procesoarele individuale, dup care asigur circulaia datelor n sistem. n cazul n care o dat intervine n mai multe instruciuni, se genereaz mai multe copii ale acestuia, atand identificatorii corespunztori. Paralelismul problemelor va fi exploatat automat, fr ca acesta s fie prescris de programator. Un procesor elementar conine un comutator de intrare care primete datele din sistemul de comunicare, i dac acestea nu se refer la procesorul propriu, le trimite la urmtorul element prin comutatorul de ieire. Cuplorul verific dac pachetul sosit reprezint o instruciune sau un operand, genereaz adresa corespunztoare i le depune n bufferul de instruciuni sau n memoria de date. n acelai timp, acest element va declana execuia unei instruciuni n cazul n care au sosit operanzii corespunztori.

Lector Dr. Ing. Adrian A. Adscliei

67

Arhitectura calculatoarelor, 2002 /2003

Connection Machine Nu reprezint o unitate de sine stttoare ci este cuplat la una sau mai multe calculatoare gazd.Const din patru pri identice fiecare avnd 16384 de procesoare.Fiecare parte are 2 canale de comunicare pentru operaii de I/O. Programul va fi secveniat de calculatorul gazd i transmis instruciune cu instruciune la procesoarele de prelucrare. Fiecare procesor va executa aceeai instruciune. Procesoarele nu au memorie program local. Cele patru pri pot fi configurate a rula programe independente sau pot forma un singur sistem.

Un procesor const dintr-o unitate aritmetic i logic pe un bit, 64kbit memorie local, 4 bii de flag, interfaa cu memoria, cu canalele de I/O i un router.

Lector Dr. Ing. Adrian A. Adscliei

68

Arhitectura calculatoarelor, 2002 /2003

n fiecare ciclu instruciune un procesor va extrage 2 bii din memoria privat i un bit din registrul flag. n urma execuiei unei instruciuni se obin 2 bii ca rezultat, care pot fi stocai in memoria privat sau n flaguri. Un procesor are definit 256 de funii distincte, iar rezultatul unei operaii se obine dintr-o tabel de adevr.

Cmpurile A i B vor adresa sursele respectiv destinaia (A), urmtoarele 2 cmpuri selecteaz bitul surs i cel destinaie din flaguri. Exist posibilitatea ca un procesor s nu execute o instruciune n funie de starea unui bit al flagului. Urmtoarele cmpuri vor selecta acest bit, precum i starea activ a acestuia. Procesoarele snt legate intre ele formnd un hipercub cu 12 laturi. Fiecare procesor poate comunica direct cu 12 vecini i transmite mai departe informaia prin circuitele router nglobate. Limea canalului de I/O este de 64 bii. Control cu procesor central - sistemul DAP Sistemul DAP care utilizeaz metoda controlului cu procesor central, const dintr-o o unitate de control master i un masiv bidimensional de 1024 procesoare pe 1 bit. Masivul este secionat dup dou direcii ortogonale, iar unitatea de control are registre de 64 bit pentru fiecare direcie. Se folosesc dou magistrale de date care strbat liniile i coloanele de elemente procesoare. Astfel elementul de prelucrare i, j va avea o magistral pe 1 bit legat direct de biii i i j ai registrelor unitii de control.

Lector Dr. Ing. Adrian A. Adscliei

69

Arhitectura calculatoarelor, 2002 /2003

Fiecare procesor este legat direct de cei patru vecini, iar conexiunile de la marginea masivului snt definite de instruciunea n curs de execuie. ntr-un procesor exist trei registre pe un bit, dou multiplexoare i un sumator complet. Registrul A asigur controlul programat al procesorului, deoarece anumite instruciuni de transfer snt executabile dac acest registru este setat. Are intrarea comandat de pori, care permit realizarea funciei I ntre registru i intrare, realiznd astfel mti de control. Sumatorul adun registrul Q, C i data de la intrare, producnd suma i transportul, care vor fi memorate n registrul corespunztor. Dac o instruciune este n interiorul unui ciclu, extragerea instruciunilor se execut o singur dat pentru cele N iteraii ale buclei. Instruciunea de ciclare trebuie s specifice lungimea buclei (max. 60 instruciuni) i numrul de iteraii (max 254). Tipurile de instruciuni posibile la DAP snt: - adunare pe 1 bit; - adunare vectorial; - adunare serial; - transfer registru registru n cadrul unui procesor; - transfer registru al unitii de control masiv; - transfer registru la unitii de control memorie; - operaii logice cu registrele unui procesor; - operaii logice cu registrele unitii de control. Modul normal de funcionare al calculatorului DAP este serial pe bit, paralel pe 4096 cuvinte. Mecanismul de adresare va folosi posibilitatea hard de execuie a buclelor prin accesul consecutiv la biii de date memorai continuu. Alternativ, elementele de calcul pot fi configurate pentru a forma un sumator paralel, astfel pot fi prelucrate n paralel 64 cuvinte a 64 bii. Cnd datele nu corespund structurii calculatorului DAP, naintea execuiei calculelor, datele trebuie reorganizate. Masive de procesoare reconfigurabile Aceste tipuri de masive i pot adapta structura fizic ntr-o oarecare msur structurilor de date. Snt similare sistemelor DAP n cea ce privete structura i controlul comun. Diferena const n posibilitatea modificrii locale a unei instruciuni prin distribuirea cuvintelor de control n masiv. Acesta permite ca la un moment dat un procesor elementar s execute o alt instruciune. Un astfel de masiv poate fi vzut ca o memorie inteligent al unui alt sistem de calcul. Procesoarele pot lucra ntr-un mod diferit, dar preprogramat local, astfel masivul permite o implemetare eficient a operaiilor de manipulare a datelor, inclusiv cele cu structuri neregulate (arbori sau grafuri).

Lector Dr. Ing. Adrian A. Adscliei

70

Arhitectura calculatoarelor, 2002 /2003

Elementul procesor are dou magistrale pe doi bii, pentru rezultat i operand, astfel permind transferul simultan a patru valori. ALU execut operaii logice i aritmetice, folosind numai operanzi locali. Mecanismul de selecie al vecinului permite transferul datelor de la un procesor la altul. operaiile aritmetice paralele snt realizate prin folosirea ALU i a seleciei vecinului, care mpreun formeaz un sumator rapid. Cmpurile prestabilite de control, nscrise n registrul R, snt folosite la programarea comutatoarelor la operaiile aritmetice i de deplasare. Exist posibilitatea conectrii directe a intrrilor la ieire. Aceste conexiuni snt folosite pentru distribuirea datelor tuturor elementelor procesoare, sau pentru ocolirea unui procesor, implementnd structuri arborescente. Memoria intern a unui element funcioneaz ca o stiv. Stiva de activitate este folosit pentru decuplarea condiionat a elementului procesor. Memoria de date, funcionnd ca o stiv pentru cuvinte, realizeaz conversia paralel-serie i serie-paralel a datelor. Stiva poate fi scris sau citit condiional n funie de stiva de activitate. Setul de instruciuni pentru un masiv cuprind: - operaii logice binare (dou operaii independente pot fi executate ntr-un singur ciclu); - deplasri ciclice; - copierea unui bit de ctre toi ceilali; - operaii aritmetice cu transport anticipat; - nmulire prin folosirea adunrilor multiple.

Lector Dr. Ing. Adrian A. Adscliei

71

Você também pode gostar