ELEMENTE HARDWARE ALE CALCULATOARELOR
Structura generala a unui calculator
Toate sistemele de calcul reprezinta o combinatie între calculatorul propriu-zis si echipamente suport. Prin calculator, de cele mai multe ori se întelege ansamblul format din unitatea centrala (sau unitatea centrala de prelucrare-UCP) si memoria interna. Aceste module sunt de obicei montate împreuna, în acelasi sertar sau pe aceeasi placa, astfel ca asocierea este sugerata mai mult din punct de vedere constructiv decât functional. Echipamentele suport sau periferice sunt acelea care permit introducerea datelor si programelor catre UCP, recuperarea rezultatelor sau memorarea unor informatii pentru diverse scopuri. Deci, putem spune ca aceste dispozitive realizeaza în sistem operatii de intrare-iesire si stocare. Ele sunt cuplate cu calculatorul în doua moduri:
on-line - atunci când operatiile mentionate sunt efectuate sincron cu functionarea UC;
off-line - atunci când operatiile se executa asincron, independent de functionarea UC.
Cu aceste delimitari, structura generala a unui sistem de calcul, de cele mai multe ori asimilata cu structura unui calculator electronic, este cea din figura 2.1. Rolul functional al fiecarui modul din figura este precizat astfel:
Unitatea de intrare (UI) converteste informatiile (date si programe) dintr-un format extern uzual de reprezentare, în cel intern al calculatorului, asfel încât ele sa poata fi prelucrate de catre UC. Prin formate uzuale externe întelegem reprezentarile alfanumerice, grafice, video sau audio ale informatiei. Formatul intern este întotdeauna cel binar (am subliniat ca circuitele logice ale calculatoru 848g65i lui nu prelucreaza decât semnale electrice - numite binare, digitale sau discrete - echivalente cu nivelele logice booleene 0 si 1).
Exemple
de echipamente suport de intrare sunt: cititorul
de cartele perforate (apartinând deja istoriei calculatoarelor), tastatura alfanumerica, mouse-ul, scanerul de imagini,
joy-stick-ul, creionul optic s.a.m.d.
Figura 2.1. Modulele functionale ale unui calculator electronic
Unitatea de iesire (UE) realizeaza conversia inversa a informatiei - în general dupa prelucrarea ei de catre UC - din formatul intern binar de reprezentare, într-o forma externa, accesibila omului. La o prima vedere, rezultatele ar putea fi prezentate utilizatorului chiar în binar, însa ne putem da seama de efortul imens necesar "decriptarii" mesajelor primite ca siruri interminabile de cifre 0 si 1. De aceea s-au construit dispozitive care convertesc datele într-o forma alfanumerica sau grafica, în imagini sau chiar sunete, astfel încât rezultatele prelucrarii sa fi imediat accesibile beneficiarului uman.
Exemple de echipamente de iesire sunt: perforatorul de cartele (astazi si el obiect de muzeu, alaturi de cititor), monitorul cu ecran, imprimantele, plotterul, amplificatoarele audio etc.
Unitatea centrala (UC) este alcatuita din doua componente: unitatea aritmetica si logica (UAL) si unitatea de comanda (UCd).
Prima componenta - UAL - executa asupra datelor operatiile aritmetice uzuale (adunare, scadere, înmultire, împartire), logice (si, sau, nu, sau exclusiv s. a.), de comparare, de rotatie si de deplasare. Din combinarea acestor operatii elementare rezulta posibilitatea efectuarii unor prelucrari oricât de complexe ale informatiilor reprezentate prin respectivele date.
A doua componenta - UCd - genereaza si gestioneaza traficul semnalelor de comanda si control. Acestea circula între ansamblul UC si celelalte module functionale ale sistemului, sincronizând functionarea acestora în scopul realizarii sarcinilor de calcul impuse.
Se poate pune întrebarea: cum "stie" UC ce fel de operatii de prelucrare sa efectueze pentru rezolvarea unei probleme. Vom încerca a da în acest moment un raspuns mai mult intuitiv, care va fi completat în aceasa lucrare cu unele reveniri ulterioare. Dupa cum am subliniat, succesiunea operatiilor de calcul este indicata de catre utilizator printr-un program, scris într-un anumit limbaj, de obicei de nivel înalt. Dupa ce instructiunile componente ale programului sunt "traduse" în binar (sau în exprimare echivalenta - în cod masina), ele sunt stocate în memoria interna. Tot acolo au fost depuse datele ce urmeaza a fi prelucrate si vor fi înregistrate rezultatele intermediare si finale.
Revenind la întrebarea la care ne - am propus sa raspundem, rezulta ca pentru executia unui program, UC trebuie sa efectueze ciclic urmatoarele activitati:
n calculul adresei de memorie unde se gaseste instructiunea curenta de program, adica aceea care trebuie tratata la momentul respectiv;
n aducerea acestei instructiuni din memorie în UC si interpretarea ei (identificarea codului instructiunii, care indica ce operatie va fi executata);
n calculul adreselor de memorie ale operanzilor (adica a datelor asupra carora vor fi efectuate calcule de catre aceasta instructiune) si transferul acestora în UC;
n executia propriu -zisa de catre UAL a operatiilor de calcul indicate de instructiune;
n transferarea rezultatelor înapoi în MI.
Pentru a duce la bun sfârsit aceste actiuni, UC are o structura si o functionare specifica. Structural, UC contine un numar de registre interne, care sunt mici memorii destinate pastrarii datelor (instructiuni, operanzi, rezultate intermediare) care sunt tratate la un moment dat. Registrele pot fi de uz general (pot stoca orice tip de data, în functie de context) sau specializate (sunt destinate stocarii numai a anumitor tipuri de informatii).
Registrele specializate specifice majoritatii arhitecturilor de calculatoare sunt urmatoarele:
n registrul contor de program (PC)-contine adresa de memorie a instructiunii din program urmatoare celei curente;
n registrul de instructiuni (IR) - contine codul binar al instructiunii curente, adica al aceleia care este tratata în acel moment;
n registrul de adrese al memoriei (RAM) - contine adresa locatiei de unde se aduce o anumita data (citire din memorie), sau unde se depune acea data (scriere în memorie);
n registrul de date al memoriei (RDM) - contine data care a fost citita sau cea care va fi scrisa din/în memorie;
n registrul acumulator (RA) - contine fie unul din operanzii asupra carora se efectueaza calculul, fie rezultatul final al acestuia;
n registrul indicatorilor de conditie (al flag - urilor, IC) - contine informatii privitoare la modul cum s-au terminat operatiile aferente instructiunii curente, efectuate de UAL. Acestea vor fi necesare UC sau programului, pentru fundamentarea deciziilor de continuare a lucrului;
n registrul de întreruperi (RI)-semnaleaza UC anumite cereri care sosesc de la echipamentele periferice;
Functional, prelucrarea unei instructiuni de catre UC se desfasoara în mai multi pasi. Ansamblul acestora se numeste ciclul de executie al instructiunii, divizat în doua sectiuni:
citirea si interpretarea instructiunii - I - ciclu;
executia propriu -zisa a instructiunii - E-ciclu.
Figura 2.2. Ciclul de executie al unei instructiuni
Conform figurii 2.2, etapele distincte ale acestor doua subcicluri sunt:
q pentru I-ciclu:
citirea din memorie a instructiunii ce trebuie executata si depunerea ei în registrul IR al UC;
decodificarea instructiunii;
calculul adreselor operanzilor implicati în instructiune.
q pentru E-ciclu:
aducerea operanzilor din memorie în registrele de uz general ale UC, pe baza calculului de adrese de mai sus;
executia propriu-zisa a calculelor de catre UAL;
depunerea rezultatului în RA, urmata de scrierea lui în memorie.
Viteza cu care este executat de catre UC un ciclu de instructiune reprezinta unul din principalele criterii care stau la baza determinarii nivelului de performanta al calculatorului. Aceasta viteza este determinata, la rândul sau, de durata ciclului - masina sau a ciclului de ceas al sistemului de calcul, deoarece un ciclu de instructiune este format dintr-un numar întreg de cicli - masina.
Durata ciclului - masina este determinata, asa cum vom discuta în capitolul III, de frecventa ceasului intern. Ea poate lua valori larg variabile, de la milisecunde la calculatoarele lente (milioane de instructiuni pe secunda la calculatoarele lente) pâna la nano si picosecunde pentru supercalculatoare (1010 sau 1012 operatii/secunda). Cu alte cuvinte, calculatoarele pot efectua milioane sau miliarde de cicluri -masina pe secunda. Uzual, aprecierea vitezei de calcul se face utilizând ca unitate de masura fie mips (milioane de instructiuni pe secunda), fie mflops (milioane de intructiuni de calcul în virgula flotanta pe secunda). Valorile obtinute furnizeaza indicii destul de importante pentru aprecierea performantei calculatorului, însa ele trebuie totdeauna coroborate si cu alte criterii si indicatori.
Dupa cum am mentionat, memoria interna (MI) este acea componenta a sistemului de calcul care stocheaza informatiile ce urmeaza a fi prelucrate imediat de catre UC. Conform rolului sau functional, MI are o organizarea specifica. Astfel, din punct de vedere logic, memoria interna poate fi vazuta ca o tabela, formata dintr - un ansamblu de "celule" cu aceeasi dimensiune, numite locatii. Fiecare din aceste locatii este unic identificata printr-o adresa numerica. Asfel, orice informatie stocata în memorie poate fi regasita, apelând la un mecanism relativ similar cu numerotarea caselor de pe o strada. În ceea ce priveste dimensiunea unei locatii (care reprezinta cea mai mica unitate transferabila a memoriei), aceasta este de obicei stabilita la 8 biti.
Informatiile continute de majoritatea acestor locatii sunt temporare. Dupa prelucrarea unui program, continutul memoriei se modifica, în vederea procesarii altuia. Se poate face si acum o comparatie intuitiva, de data asta cu ansamblul casutelor postale ale unui oficiu: pe când numarul acestora ramâne constant, continutul se schimba permanent, prin extragerea scrisorilor sosite si introducerea altora noi. Acesta particularitate impune urmatoarea divizare fizica a memoriei interne:
n memoria RAM (Random Acces Memory) - poate fi scrisa sau citita, este volatila, cu acces direct si aleator. Accesul aleator înseamna ca datele pot fi stocate oriunde în spatiul liber disponibil, iar termenul direct arata ca adresele locatiilor care contin datele nu au legatura cu continutul acestora. Informatiile continute în memoria RAM se sterg la scoaterea de sub tensiune a calculatorului, de aceea se spune ca este volatila (temporara).
n memoria ROM (Read Only Memory) - este organizata similar cu RAM - ul, dar este în schimb permanenta (sau remanenta) si poate fi numai citita. Datele înscrise în ea nu se mai pierd la scoaterea de sub tensiune. De obicei, în circuitele de memorie ROM este înscris de catre producatori softul reprezentând componente din nucleul sistemului de operare al calculatorului, cunoscut si sub numele de firmware.
Principalele tipuri de memorii ROM sunt:
ROM propriu-zis - module care pot fi strict numai citite;
PROM (ROM programabil) - module ROM initial "nescrise", care - cu ajutorul unui dispozitiv special - pot fi scrise o singura data de catre utilizator;
EPROM (ROM reprogamabil) - module similare cu cele PROM, exceptând faptul ca o data înscrise, pot fi "sterse" prin expunere la radiatii ultraviolete, iar ulterior rescrise.
EEPROM (Electric EPROM) - versiune EPROM mai noua, care poate fi stearsa si rescrisa prin metode electrice. Astfel de module sunt folosite si ca memorii ale caselor de marcat din supermagazine.
Am amintit de mai multe ori pâna acum ca în memorie se stocheaza informatii. Este interesant sa putem masura "câte" informatii încap în memorie, deci sa definim o unitate de masura. În teoria informatiei s-a stabilit ca aceasta unitate de masura se numeste bit (binary digit). Conform acestei teorii, un bit (prescurtat - b) este cantitatea de informatie furnizata de un eveniment cu doua stari.
Spre exemplu, considerând ca un astfel de eveniment este aruncarea unei monezi, cantitatea de informatie rezultanta este de un bit: 0 - "cap", 1 - "pajura". Oricât de bogata ar fi informatia furnizata de o stare de fapt (un ansamblu de evenimente), ea poate fi reprezentata - eventual si stocata - printr-un numar de biti corespunzator de mare. Cum un bit are doua stari distincte - 0 si 1 - cu ajutorul unui grup de n biti se pot forma 2n combinatii binare distincte (de exemplu, cu trei biti se pot obtine combinatiile: 000, 001, 010, 011, 100, 101, 110, 111). În consecinta, daca un eveniment are N realizari (stari), atunci el va fi complet caracterizat prin n biti, conform relatiei:
N 2n
Spre deosebire de alte unitati de masura, bitul nu are decât multipli. Primul dintre ei este byte-ul sau octetul, definit cu relatia:
1 byte (B) = 8 biti (b)
În continuare, urmeaza multiplii obisnuiti: kilobyte (KB), megabyte (MB), gigabyte (GB) si terrabyte (TB). Daca în mod normal prin kilo se întelege multiplicarea cu 1000, având în vedere ca în informatica este uzuala aritmetica binara, se poate face o aproximare a acestei valori cu 210 (210 = 1024). Se obtin astfel relatiile particulare pentru multiplii byte-ului:
1 KB = 210 B = 1024 x 8 b
1 MB = 210 KB = 220 B
1 GB = 210 MB = 220 KB etc.
Dimensiunile memoriei interne variaza între limite foarte largi, în functie de tipul si destinatia calculatorului, însa ele cresc în permanenta. De exemplu, volumul de memorie interna pentru PC-urile obisnuite este astazi de 32, 64 sau 128 MB.
Este
util sa subliniem ca datele stocate în memorie pot fi atât numere, dar si caractere alfanumerice (litere, cifre, semne de punctuatie,
caractere speciale). Reprezentarea interna a numerelor e usor de
intuit: ele sunt transformate (prin intermediul dispozitivelor de intrare) din
baza uzuala 10 în baza 2. Algoritmii pentru astfel de conversii
sunt cunoscuti din matematica. Cum sunt însa reprezentate
sirurile de caractere? O solutie simpla si imediata
este aceea de a asocia un cod binar fiecarui caracter. Evident, aceste
coduri de corespondenta pot fi alese în nenumarate feluri, ceea
ce însa poate duce la aparitia unor serioase
incompatibilitati între sistemele de calcul ce utilizeaza
reprezentari diferite. În consecinta, codificarea binara a
caracterelor alfanumerice a fost standardizata, propunându-se doua
sisteme: codificarea EBCDIC si cea ASCII (figura 2.4).
Astazi s-a impus cu autoritate codul ASCII. În standardul ASCII restrâns, caracterele
alfanumerice se reprezinta pe 7 biti (128 de combinatii, de la 0
la 127). Codurile 33 - 127 desemneaza caracterele tiparibile. Standardul
ASCII extins propune reprezentarea
pe 8 biti a caracterelor alfanumerice,
codurile
suplimentare 128 - 255 desemnând caracterele semigrafice.
Figura 2.4. Standardul ASCII
Ultimul modul functional din structura generala a unui calculator electronic este memoria externa (ME). Aceasta componenta este de asemenea destinata stocarii informatiilor, însa a acelora dintre care nu sunt destinate prelucrarii imediate. În plus, ea compenseaza capacitatea mai scazuta de stocare a memoriei interne (la calculatoarele personale - de exemplu - suportii de memorie externa pot stoca de la câteva zeci pâna la câteva sute de ori mai multe date decât memoria lor interna). Informatiile din ME nu sunt volatile (nu se pierd la scoaterea sistemului de sub tensiune). Un dezavantaj al acestui modul este ca viteza de transfer a informatiilor catre MI sau UC este mult mai scazuta decât transferul direct între aceste doua componente.
Prezenta unei a doua unitati de stocare a datelor nu este o necesitate functionala pentru un calculator, ea fiind introdusa din considerente practice si economice. Explicatia este simpla: memoria unui sistem de calcul performant ar trebui sa poata stoca un volum cât mai mare de date, iar transferul acestora catre UC ar trebui sa se faca cu viteze cât mai ridicate. O astfel de solutie implica serioase complicatii tehnologice si costuri ridicate. Este cu mult mai simplu si ieftin ca memoria sa fie divizata în doua: modulul intern va fi rapid, dar cu o capacitate de stocare mai mica, pe când cel extern va fi mai lent, dar cu capacitate mult mai mare.
Principalii suporti de ME sunt constituiti din mediile de stocare magnetice (mai concret, benzi si discuri magnetice) si optice (în principal CD-ROM-ul). Vom furniza detalii despre aceste echipamente în capitolul III.
Descrierea structurii generale a unui calculator nu ar fi completa fara prezentarea modalitatilor în care diferitele module comunica între ele. Pentru primele calculatoare s-a utilizat solutia interfetelor specializate între componentele functionale. Arhitecturile moderne ale computerelor utilizeaza astazi comunicatia bazata pe magistrala. O magistrala de comunicatie este o cale comuna, unica, la care se cupleza în paralel diferitele componente ale calculatorului si pe care se transporta informatiile care sunt procesate de catre sistemul de calcul (figura 2.5.).
Conectarea la magistrala a dispozitivelor de calcul se face prin intermediul placilor de interfata si a porturilor de intrare - iesire, care contin circuite speciale pentru generarea unor functii specifice echipamentului (imprimante, mouse, scanner etc.). Astfel, pentru conectarea unui display, se utilizeaza o placa adaptoare video, pentru extinderea capacitatii memoriei RAM, o placa de extensie, pentru legarea cu calculatoare la distanta, o placa de retea etc. Exista si placi de interfata multifunctionale, iar frecvent aceste interfete sunt standardizate.
Figura 2.5. Comunicatia pe magistrala
Conectarea la magistrala a dispozitivelor de calcul se face prin intermediul placilor de interfata si a porturilor de intrare - iesire, care contin circuite speciale pentru generarea unor functii specifice echipamentului (imprimante, mouse, scanner etc.). Astfel, pentru conectarea unui display, se utilizeaza o placa adaptoare video, pentru extinderea capacitatii memoriei RAM, o placa de extensie, pentru legarea cu calculatoare la distanta, o placa de retea etc. Exista si placi de interfata multifunctionale, iar frecvent aceste interfete sunt standardizate.
Arhitecturile de comunicatie bazate pe magistrale permit extensii ale configuratiei hardware si de aceea se numesc deschise (open architectures). Gratie acestor arhitecturi deschise, calculatoarele actuale se construiesc flexibil, cu configuratii care pot fi usor modificate, extinse sau modernizate. Acest ultim proces poarta numele de up - grade.
|