arhitectura sistemelor de calcul

15
ARHITECTURA SISTEMELOR DE CALCUL CURS1 CAP. 1. ORGANIZAREA SISTEMELOR DE CALCUL Calculatorul (numeric) este un sistem fizic ( alcatuit in principiu din circuite si dispozitive electronice ) ce are sarcina de a de a rezolva problemele pe baza unor programe. Din punct de vedere al organizarii interne a calculatoarelor numerice trebuie puse in evidenta doua aspecte complementare asociate acestora. In primul rand un sistem de calcul este caracterizat de structura sa, aceasta fiind reprezentata de totalitatea componentelor individuale si a subansamblurilor ce sunt necesare asigurarii functiilor specificate. Ex: circuite electronice , subansambluri electronice, componente electromecanice. Spre deosebire de aceasta arhitectura calculatorului se defineste ca totalitatea datelor acceptate a operatiilor ce pot fi efectuate respectiv a tuturor facilitatilor accesibile programatorilor. 1.1. O caracterizare sintetica a sistemelor cu microprocesor Structura principala a unui astfel de sistem este redata in fig.1 unde sunt puse in evidenta cele 3 entitati fundamentale a caror prezenta este impusa in orice calculator: a) U.C.P.- unitatea centrala de prelucrare b) M -memoria c) D.I.E. -dispozitivele de intrare iesire Aceste 3 entitati sunt interconectate la nivel magistral ASC

Upload: gabriel-ion

Post on 27-Nov-2015

4 views

Category:

Documents


1 download

DESCRIPTION

ebook

TRANSCRIPT

Page 1: Arhitectura Sistemelor de Calcul

ARHITECTURA SISTEMELOR DE CALCULCURS1

CAP. 1. ORGANIZAREA SISTEMELOR DE CALCUL

Calculatorul (numeric) este un sistem fizic ( alcatuit in principiu din circuite si dispozitive electronice ) ce are sarcina de a de a rezolva problemele pe baza unor programe. Din punct de vedere al organizarii interne a calculatoarelor numerice trebuie puse in evidenta doua aspecte complementare asociate acestora. In primul rand un sistem de calcul este caracterizat de structura sa, aceasta fiind reprezentata de totalitatea componentelor individuale si a subansamblurilor ce sunt necesare asigurarii functiilor specificate. Ex: circuite electronice , subansambluri electronice, componente electromecanice. Spre deosebire de aceasta arhitectura calculatorului se defineste ca totalitatea datelor acceptate a operatiilor ce pot fi efectuate respectiv a tuturor facilitatilor accesibile programatorilor.

1.1. O caracterizare sintetica a sistemelor cu microprocesor

Structura principala a unui astfel de sistem este redata in fig.1 unde sunt puse in evidenta cele 3 entitati fundamentale a caror prezenta este impusa in orice calculator: a) U.C.P.- unitatea centrala de prelucrare b) M -memoria c) D.I.E. -dispozitivele de intrare iesireAceste 3 entitati sunt interconectate la nivel magistral

ASC

Page 2: Arhitectura Sistemelor de Calcul

CONTROL ADRESE

DATE

Fig 1.Se poate remarca asocierea dintre U.C.P. si microprocesor acesta din urma reprezentand de fapt unitate centrala de prelucrare realizata fizic la nivelul unui unic circuit integrat.In ceea ce priveste subsistemul memorie este realizata o distinctie la nivel logic intre tipurile de date stocate astfel o diviziune a meoriei este destinata mamorarii programelor (reprezentarea de coduri numerice) asociate instructiunilor in timp ce o alta diviziune memoreaza datele necesare executiei programului. Obs! Din punct de vedere fizic nu exista nici o deosebire intre modul in care sunt memorate programul ,respectiv datele asociate. Din punct de vedere al modului extern calculatorul interactyioneaza cu asesta prin intermediul dispozitivelor de intrare iesire. Terminologia asociata desemneaza aceste cai de comunicatie ca fiind porturi de intrare iesire.

CURS 2

ASC

DATE PROGRAMUL MEMORIE

UNITATECENTRALADEPRELUCRARE

(microprocesor)

DISPOZITIVE DE INTRARE IESIRE

Page 3: Arhitectura Sistemelor de Calcul

Caracterizarea functionala a calculatorului

Sub aspect functional un calculator numeric respectiv un microprocesor se evidentiaza prin 5 aspecte:

1) Functia de intrare care permite existenta unui flux informational de la mediul exterior catre sistem

2) Functia de iesire care permite existenta unui flux informational de sens opus

3) Functia operationala ce permite efectuarea caculelor aritmetice si logice4) Functia de supervizare si comanda ce inglobeaza toate activitatile de

sincronizare si control ce se pot exercita asupra activitatii sistemului

Aceasta divizare nu este exclusiva deoarece in cazul diferitelor tipuri de calculatoare respectiv microprocesoareo parte din aceste functii se regasesc intr-o mai mare masura in timp ce altele pot fi mai putin prezente(bancomate).

Caracterizare din punct de vedere informational

In stransa legatura cu cele 5 functii anterior amintite la nivelul unui sistem de calcul ( respectiv a unui microprocesor) se stabileste un flux informational complex reprezentat principal in fig 2.Uzual informatia este preluata de subsistemul de intrare si pe baza comenzilor primite de la blocul de comanda si control informatia este depusa in memoria sistemului. Tot in urma comenzilor primite de la B.C.C. , informatia depusa in memorie este citita de microprocesor,decodificata,prelucrata ( se efectueaza calcule prin intermediul UAL).La finalul prelucrarilor rezultatele sunt depuse din nou in memorie.Tot la comanda data de BCC rezultatele depuse in memorie sunt transmise in exteriorul sistemului prin intermediul blocului de iesire.Se observa astfel la nivelul microprocesorului existenta celor 2 blocuri functionale importante. Blocul unitatii aritmetice-logice ce este o colectie de circuite complexe programabile capibile de a procesa date numerice pe baza unor instructiuni primite sub forma unui program .Blocul de comanda si control(BCC) decodifica programul genereaza si sincronizeaza toate semnalele necesare prelucrarii datelor si asigura transferul corespunzator al acestora in interiorul respectiv exteriorul calculatorului.

Caracterizare temporal secventiala

ASC

Page 4: Arhitectura Sistemelor de Calcul

Modul de interconectare precum si functionarea componentelor de baza ale unui calculator au la baza in general asa numita arhitectura von Neumann.In aceasta ipoteza unitatea centrala de prelucrare (microprocesor) executa o singura instructiune a programului la un moment de timp bine determinat. Acest fapt conduce la o incetinire a activitatii sistemului fata de sistemele cu executie paralela ( care permit procesarea a 2 sau mai multe instructiuni in acelasi timp). Pe de alta parte arhitectura von Neumann este extrem de fiabila, robusta in functionare si usor de implementat. De aceea marea majoritate a calculatoarelor din prezent subscriu acestei arhitecturi.Desfasurarea in timp a operatiilor efectuate de diferitele componente ale calculatorului este supervizata tot de catre sectiunea de control ; din acest punct de vedere functiile generale ale calculatorului sunt activate intr-o maniera adecvata pe intervale de timp fixe si prestabilite in functie de specificul operatiei efectuate. Un exemplu este prezentat in fig. 3Se observa ca in intervalul t1 informatia este preluata de sistemul de intrare memorata remarcandu-se activarea celor 2 blocuri.In perioada t2 instructiunile sunt extrase din memorie si prin executia lor de catre UAL se produc rezultate ce sunt la randul lor memorate.Ultima etapa (t3) se dezactiveaza unitatea aritmetico-logica controlul fiind predat sistemului de iesire.Sincronizarea acestor proceduri se realizeaza in concordanta cu asanumitul ceas de sistem (system clock) care este reprezentat practic de un generator de impulsuri (se poate considera ca fiecarui impuls I se asociaza o anumita activitate elementara simpla in calculator.

Curs 3

Caracterizarea executiva

Atribute executive

Datorita caracteristicilor anterior amintite sistemelor de calcul le este asociata in mod necesar o component executiva ; notiunea de executie este in mod necesar legata de

ASC

Page 5: Arhitectura Sistemelor de Calcul

conceptual de program. Astfel o suita de operatii ce se doresc a fi executate de catre calculator este reprezentata de o suita de instructiuni stocate in memoria sistemului impreuna cu datele necesare alcatuind un program.

Magistrale de sistem

Functionarea unui calculator presupune existent unor legaturi multiple si complexe intre diferitele blocuri functionale ale acestuia. Gruparile liniilor de semnal carora le sunt associate functii similar interconectand diferitele sectiuni ale unui calculator numeric poarta numele generic de magistrala. Practic o magistrala realizeaza punerea in corespondenta a semnalelor de date , adrese si control ale unui bloc functional cu semnalele omonime ale unui alt bloc functional. Din puct de vedere topologic la nivelul unui sistem exista 2 categorii de magistrale :

1. Magistrale interne reprezinta canalele de legatura stabilite intre diversele unitati functionale ale calculatorului

2. Magistrale externe ce reprezinta caile de comunicatie dintre sistemul de calcul si mediul extern.

Aceasta diferenta topologica poate fi extinsa si la nivelul microprocesorului unde putem distinge o magistrala interna a acestuia respective o magistrala externa a microprocesorului( ce corespunde de fapt cu o magistrala interna a calculatorului).Din punct de vedere al informatiei vehiculate magistralele pot fi impartite in 3 categorii:

Magistrale de date Magistrale de adrese Magistrale de control

Totusi la nivelulcalculatoarelor actuale aceste 3 tipuri de magistrale nu se mai regasesc in mod distinct ele reprezentand sectiuni ale magistralelor de sistem standard. O magistrala de comunicatiipoate fi constituita din mai multe linii de semnal permitand astfel transferal simultan al unui asa numit avant de informatii. In acest caz magistrala numindu se paralela. Reciproc in structura calculatorului se regasesc si magistrale seriale la care datele sunt transmise pe o linie unica de semnal bit cu bit in mod succesiv. Dezavantajul magistralei seriale este Acela ca ele prezintao viteza de transfer mult redusa in comparatie cu magistralele paralele. Pe de alta parte datorita particularitatilor de implementare orice magistrala serial prezinta avantajul de a asigura comunicatia pe distante mult mai mari fata de orice magistrala paralela. In consecinta magistralele paralele sunt folosite pentru conexiuni de viteza mare effectuate pe distante scurte (de exemplu intre blocurile functionale ale calculatorului) in timp ce magistralele seriale se folosesc in cazul transmisiilor mai lente effectuate pe distante medii sau mari (de exemplu teletransmisii). In fig.4 este prezenta o structura principal a conexiunilor stabilite intre sectiunile functionale ale calculatorului prin intermediul magistralei.

Observatie!Deoarece un microprocessor nu poate alimenta (din punct de vedere electric) un

numar prea mare de circuite exterioare este necesara o amplificare a semnalelor de pe magistralele sistemului. Acest lucru se realizeaza prin intermediul unor circuite

ASC

Page 6: Arhitectura Sistemelor de Calcul

specializate numite generic amplificatoare de magistrala ce indeplinesc rolul unor circuite intermediare de transfer (“buffer-e”) realizand totodata si refacerea calitatii semnalelor de pe magistrale.

Magistrale de date

Destinatia acesteia este reprezentata atat de efectuarea unui transfer unidirectional de la memorie catre processor cat si a transferului bidirectional dintre memorie , processor si echipamente intrare-iesire. De regula lungimea cuvantului de date asociat microprocesorului ( adica numaul de bit ice pot fi simultan prelucrat de microprocesor) determina numarul liniilor de semnal associate magistralei de date.

De exemplu un processor ce opereaza pe 32 biti va fi conectat la o magistrala de date avand 32 linii de semnal.

Curs 4

Magistrala de adrese

Rolul magistralei de adresa este Acela de a transporta coduri binare asociate adreselor de memorie unde sunt localizate atat instructiunile programelor aflate in ecuatie cat si datele necesare executiei acestora.

Tot la nivelul acestei magistrale este transportata informatia necesara localizarii sporturilor de intrare – iesire.

Adresabilitatea unui microprocesor se refera la cantitatea maxima de memorie pe care acesta o poate accesa. Acest atribut este asociat numarului de linii ale magistralei de adresa, deci implicit numarului de biti ai cuvantului de adresa.

Numarul maxim de adrese care pot circula pe magistrala de adrese este de 2n si tot atatea locatii de memorie pe care procesorul le poate accesa.

Deoarece prin intermediul a n biti se pot codifica 2n valori binare distincte , rezulta ca spatiul adresabil al unui procesor avand magistrala de adrese pe n biti , este similar cu 2n.

Magistrala de control

Aceasta transporta in sistem o serie de informatii necesare sincronizarii si coordonarii activitatii diverselor blocuri functionale ale calculatorului. Numarul de semnale asociat magistralei este acelasi cu numarul de semnale de control disponibile la nivelul miroprocesorului.

Exemple de semnale de control: Semnalul de ceas al calculatorului(sir de impulsuri furnizat de un circuit special-

toate operatiile din calculator se executra in timpul unui semnal de ceas). Semnalul de ceas nu se opreste decat intr-un caz special-daca temperature din sistem creste,astfel racindu-se procesorul.

Semnale care specifica tipul de transfer cu memoria(citire sau scriere)

ASC

Page 7: Arhitectura Sistemelor de Calcul

Semnale care specifica tipul de transfer cu memoria (citire sau scriere) Semnale care specifica sensul transferului cu sporturile(citire/scriere) Semnale de sincronizare

MicroprocesorulIn fig. 6 este propusa sructura generala a unui microprocesor standard pe baza

careia pot fi puse in evidenta functiile indeplinite de acesta.

1. Functia de supervizare:Microprocesorul ca sistem independent este operat prin intermediul unui program .

Programul insa nu poate el insusi sa furnizeze toate datele ( informatiile) necesare executiei sale.

De exemplu , atunci cand un program este incarcat in memorie, calculatorul trebuie sa fie informat asupra locatiei ce contine prima instructiune a programului. Acest fapt neputand fi realizat de catre programul in sine.

De asemenea o serie de semnale de control necesita o perfecta sincronizare in timp pentru ca sectiunile microprocesorului sa isi poata desfasura corespunzator activitatea fara interferente. Toate aceste cerinte sunt indeplinite de catre sectiunea de decodificare timing si control a microprocesorului, la nivelul acesteia realizandu-se toate procedurile de decodificare a instructiunilor active a subansamblelor microprocesorului,respective de desfasurare in timp a secventelor de operatii presupuse de instructiuni.

Ciclul de executie al microprocesorului

Asa cum am aratat , actiunile microprocesorului se desfasoara in mod secvential si repetitive. Toate operatiile desfasurandu-se in sincronism cu asa-numitul semnal de ceas.

Se defineste ciclul instructiunilor(ciclul de executie) al microprocesorului ca fiind secventa de operatii effectuate in vederea extragerii, decodificarii si executiei unei instructiuni din memorie.

Un astfel de ciclu-instructiune dureaza un numar variabil de perioade ceas in functie de tipul microprocesorului ,respective de tipul instructiunii implicate. Un ciclu-instructiune este divizat in subcicluri,fiecare dintre acestea corespund unor operatii fundamentale indivizibile (ex:citirea unui cod numeric din memorie, etc)-fig.7

Deoarece microprocesorul standard executa o singura instructiune la un moment de timp precizat, este necesara cunoasterea in permanenta a” numarului de ordine” asociat fie instructiunii curente, fie celei ce va fi executata la pasul urmator.

Aceasta informatie este memorata intr-o locatie interna a microprocesorului , numita registru contor de programare(pc-program counter).

Deoarece programul este in general memorat la adrese successive , contorul de program va fi actualizat prin incrementare dupa transferal fiecarei instructiuni intr-o alta locatie specializata din microprocesor numita registru de instructiuni(ir-instruction registers).

CURS 5

ASC

Page 8: Arhitectura Sistemelor de Calcul

Decodificarea instructiunilor si controlul activitatilor

In fig.9 este prezentata o schema functionala constructive a unei sectiuni de control specifica microprocesoarelor actuale.

MAR-registrul de adresare a memoriei (este o memorie temporara care inmagazineaza adresele ce vor fi trimise de microprocesor catre exterior)

PC-contor de programe (Program Counter –indicator al parcurgerii programului)IR- registru de instructiuni:Are rolul de a memora temporar codul numeric al

ultimei instructiuni extrase din memorieLa executia unui program microprocesorul plaseaza pe magistrala de adrese,

adresa urmatoarei instructiuni ce trebuie executata (aceasta adresa se fala initial in PC si este transmisa catre MAR ulterior codul instructiunii este preluat de pe magistrala de date si depozitat temporar in IR. Acest cod este transmis mai departe blocului decodificator care efectueaza o “recunoastere a codului instructiunii” in cadrul setului de instructiuni administrate de microprocesor.

Atunci cand instructiunea a fost recunoscuta (identificata) decodificatorul informeaza blocul generator de control asupra actiunilor ce trebuiesc effectuate in interiorul sau exteriorul microprocesorului in vederea executiei instructiunii.

In conformitate cu informatia primita si intr-o perfecta sincronizare cu semnalul de ceasal sistemului generatorul de control al sistemului trimite semnale de control ce activeaza/dezactiveaza,blocul functional,sincronizeaza blocuri functionale astfel instructiunea curenta sa fie executata . Tot acest ciclu se repeat pentru urmatoarele instructiuni ale programului.

2. Functia de memorare asociata microprocesoruluiMicroprocesorul in functie de destinatia sa poate contine integral pe acelasi circuit prpriile resurse de memorie de dimensiuni reduse insa fata de memoria principal a sistemului.

CURS 6

Resursele de memorare proprii microprocesoarelor sunt implementate la nivelul asa numitelor register. Un registru reprezinta practice o locatie de memorie care I identifica nu printr-o adresa ci printr-un nume fiecare microprocesor are propriul set de registre ce constituie practice memoria sa de lucru prin intermediul registrelor ce manipuleaza toate datele(respectiv operanti si rezultate associate executiei unui program).

La nivelul micrfoprocesorului regasim 2 categorii mari de registre: registru de uz general care se afla in intregime la dispozitia utilizatorului respective registre special care sunt registre cu functii bine stabilite in cadrul microprocesorului.

Registrele sunt folosite la stocarea diferitelor informatii utilizate atat in cadrul aplicatiilor software cat si pentru implementarea functiei de control. De exemplu,

ASC

Page 9: Arhitectura Sistemelor de Calcul

registrele generale contin datele frecvent accesate de catre programe ceea ce conduce la cresterea vitezei de lucru a sistemului deoarece timpii de acces la registre sunt sensibil mai mici decat timpii de acces la memoria externa a sistemului. Aceste registre sunt direct conectate atat la alte registre interne ale microprocesorului cat si la magistralele externe prin intermediul magistralelor interne ale microprocesorului respective a unor circuite tampon (fig 10).

Regula generalaOrice registru de acest tip este accesibil programatorului el fiind astfel un element

de arhitectura.Fiecare microprocesor are instructiuni specifice lucrului cu registrele prin

intermediul carora se pot inacrca valori numerice se pot aplica functii logice asupra continutului registrelor.

Accesul individual la registru se efectueaza in mod selective la nivelul sectiunii de control al microprocesorului.

Celelalte registre(speciale)au functii predefinite in funct.microprocesorului. ex: registrul control de program, registrul de instructiuni etc. Aceste registre nu sunt direct accesibile utilizatorului si in consecinta nu reprezinta atribute de Functia aritmetico logica sectiunea care efectueaza operatiile aritmetice si logice este compusa din unitatea aritmetico logica UAL ( avand rol de executie) si o serie de registre asociate functiei de memorare a operanzilor respectiv a rezultatelor (vezi fig 11)

UALIn fig 11 se remarca in primul rand prezenta a doua intrari de date ce furnizeaza

valorile operantilor. O alta intrare este reprezentata de intrarea de selectie a operatiei ce va fi executata. La iesirea UAL se regasesc ata rezultatul operatiei aritmetice avand o serie de indicatori (grupati int-un registru special ) ce funizeaza informatie despre starea interna a UAL respectiv eventualele evenimente aparute in functionarea sa (rezultat eronat).

Performantele microprocesorului sunt in primul rand datorate UAL in sarcina acesteia revenind efectuarea operatiilor de adunare si scadere liniara , operatii logice , deplasari la stanga si la dreapta a continutului etc.

Alte operatii mai complexe pot fi implementate prin succesiuni : de operatii ample. Un exemplu in acest sens fiind efectuarea inmultirileo si impartirilor prin adunari scaderi repetate.Una din cele 2 intrari este intodeauna conectata la cel mai utilizat registru de uz general numit registru acumulator.( in consecinta in mod firesc registru acumulator contine intodeauna unul din operanzi in plus tot registrul acumultaor este cel ce va contine valoarea rezultatului dupa incheierea operatiei ), deci operandul initial inscris in accumulator va fi intodeauna suprascris de catre operand.

Pentru memorarea temporala a celui de-al doilea operand precum si in vederea editarii efectului de cerc vicios ( autoalimentarea UAL cu prpriul rezultat in structura microprocesorului regasim o serie de registre auxiliare special . In fig 10 vom reprezenta registrul auxiliary pentru operandul 1 respectiv registru de date.

ASC

Page 10: Arhitectura Sistemelor de Calcul

CURS 7

3. Functia de intrare iesire

Asa cum s a aratat functia de intrare iesire se regaseste intr-o mai mica masura la nivelul microprocesorului ea fiind o caracteristica a calculatorului in ansamblu.

Singura exceptie in acest caz este reprezentata in acest caz de functia ce permite izolarea fizica a circuitului integrat a microprocesorului fata de mediul exterior ( aceasta functie este utila in situatiile in care apare necesara protejarea microprocesorului impotriva posibilelor defecte ale placii de baza). Pentru realizarea acestei functii microprcesorul este conectat la mediul exterior reprezentat de magistrale prin intermediul unor circuite tampon avand rol de izolare(fig 12).

Aceste circuite prezinta in functionare doua regimuri. In conditii obisnuite ele transfera la iesire valoarea aplicata la intrare. In conditiile producerii unor evenimente deosebite aceste circuite tampon primesc o comanda ce are ca effect intreruperea efectiva a oricarei legaturi dintre iesire si intrare. Practic aceste circuite au rolul unor microintrerupatoare implementate insa nu mechanic ci electric.

Sectiunea de control al microprocesorului este responsabila de activarea corespunzatore a circuitelor tampon . Astfel de circuite tampon se regasesc nu doar in cazul microprocesoarelor ele fiind prezente in cadrul tuturor circuitelor ce sunt cuplate pe magistralele comune ale calculatorului. In cazul acestor circuite izolarea lor fata de magistrale se produce atunci cand un alt circuit transfera date pe magistrala.

Microprogramare

Anterior s-a aratat ca fiecare instructiune recunoscuta de catre microprocesor determina executia unor microetape in interiorul microprocesorului. Aceste microetape corespund unor operatii fundamentale ( ex. Tranferul cu memoria, transferuri intre registrele microprocesorului etc)

Succesiunea acestor microetape reprezinta de fapt asa numitele microprograme. Aceste microprograme reprezinta practice firmware-ul procesorului ce este inscris intr-o memorie speciala in interiorul circuitului de catre fabricant.

Utilizatorul nu are practice acces la aceste microprograme in sensul de a le modifica. Mai mult, inlantuirea microinstructiunilor specifica executiei fiecarei instructiuni este o caracteristica asociata fiecarui microprocesor in parte implementata in structura hardware a acestuia de catre proiectant. Totusi exista o serie de microprocesoare speciale pentru care utilizatorul isi defineste singur setul de instructiuni pornind de la setul de microinstrucyiuni elementare acceptate de microprocesor. Desi aceasta implica o fiabilitate sporita solutia prezinta dezavantajul implementarii la nivel software a setului de instructiuni ceea ce duce la dificultati in programare.

ASC

Page 11: Arhitectura Sistemelor de Calcul

Fig 13 prezinta la nivel de principiu desfasurarea in timp la nivelul unui processor ipotetic a microinstructiunilor asociate instructiunii de adunare a doua numere din memorie cu pastrarea ulterioara a rezultatului intr-o alta locatie de memorie.

ASC