Text Derulant

20 dec. 2010

Arhitectura si principiul de functionare al calculatoarelor

21.Arhitectura si principiul de functionare al calculatoarelor

Functionarea unui calculator are ca principal obiectiv prelucrarea informatiei. Pentru a întelege modul în care este tratata informatia, vom vedea mai întâi cum este ea reprezentata într-un calculator.
Cea mai mica unitate de informatie folosita este bitul. Fara a intra în detalii, putem spune ca un bit reprezinta o entitate, teoretica sau materiala, care are doua stari distincte posibile; evident, la un moment dat entitatea se poate afla într-una singura din cele doua stari. Observam deci ca prin termenul de bit sunt desemnate atât conceptul teoretic, cât si implementarile sale fizice.Au existat mai multe forme de implementare practica a bitilor. Cele mai eficiente solutii s-au dovedit a fi cele bazate pe circulatia curentului electric, acestea prezentând avantajul unei viteze de operare mult mai mare decât în cazul sistemelor mecanice sau de alta natura. În circuitele electrice, cele doua stari care definesc un bit sunt usor de definit: putem asocia una dintre stari cu situatia în care curentul electric strabate o portiune de circuit, iar cealalta stare cu situatia în care curentul nu parcurge aceeasi portiune de circuit. (În practica, electronistii prefera sa discute despre cele doua stari în termenii nivelelor de tensiune din circuit, dar ideea este de fapt aceeasi). În timp au fost folosite dispozitive tot mai sofisticate, pornind de la comutatoare, coutinuând cu releele si diodele si ajungându-se astazi la utilizarea tranzistorilor. Toate însa se bazeaza pe acelasi principiu: permiterea trecerii curentului electric sau blocarea sa.Întrucât, asa cum am vazut mai sus, obiectivul urmarit este de a obtine circuite care sa permita efectuarea de calcule, este necesar ca bitii sa primeasca o semnificatie numerica. Prin conventie, celor doua stari ale unui bit le sunt asociate valorile 0 si respectiv 1. În acest mod, putem considera ca lucram de fapt cu cifre în baza 2, iar calculele devin posibile.
O prima consecinta a acestei abordari o constituie necesitatea gruparii bitilor. Într-adevar, o singura cifra, mai ales în baza 2, contine prea putina informatie pentru a fi utila. Deoarece în scrierea pozitionala numerele sunt siruri de cifre, apare imediat ideea de a reprezenta numerele prin siruri de biti. Desi pentru om lucrul în baza 2 pare mai dificil, datorita obisnuintei de a lucra în baza 10, în realitate nu exista diferente conceptuale majore între diferitele baze de numeratie.
(Putem raspunde aici unei întrebari care apare natural: de ce se prefera utilizarea bitilor, deci implicit a cifrelor în baza 2, daca omul prefera baza 10? Raspunsul este de natura tehnologica: nu exista o modalitate simpla de a realiza un dispozitiv cu 10 stari distincte, care sa permita implementarea cifrelor în baza 10.)
Pe de alta parte, într-un sistem de calcul trebuie sa existe o standardizare a dimensiunii sirurilor de biti prin care sunt reprezentate numerele. Creierul uman se poate adapta pentru a aduna, de exemplu, un numar de 3 cifre cu unul de 6 cifre, iar apoi poate trece imediat la adunarea unui numar de 8 cifre cu unul de 9 cifre; un calculator însa, fiind format din circuite fara inteligenta, nu poate fi atât de flexibil. Solutia este de a permite ca sirurile de biti sa aiba numai anumite dimensiuni prestabilite. Astfel, circuitele din calculator se pot întelege între ele, deoarece lucreaza cu operanzi de aceeasi dimensiune. Ajungem astfel la o alta unitate de informatie larg folosita, si anume octetul (în engleza byte). Acesta reprezinta un sir de 8 biti si se constituie într-un standard unanim respectat. Un octet poate avea 28 = 256 valori diferite, ceea ce este evident insuficient pentru unele tipuri de informatie vehiculate în calculator. Pentru a nu pierde avantajele standardizarii, se permite ca operanzii sa aiba si dimensiuni mai mari, dar numai multipli de dimensiunea octetului; mai mult, acesti multipli pot fi doar puteri ale lui 2. În functie de stadiile pe care le-a parcurs tehnologia de-a lungul timpului, dimensiunea maxima a operanzilor a fost de 16, 32 sau 64 biti (respectiv 2, 4 sau 8 octeti) si fara îndoiala va continua sa creasca. Aceasta dimensiune poarta denumirea de cuvânt. Dimensiunea unui circuit de memorie  sau a unui disc hard este mult mai mare decât un octet. Pentru a putea exprima aceste dimensiuni s-au introdus denumiri pentru multipli, într-un mod similar celui din lumea ştiinţifică. Reamintim că prefixul kilo- (reprezentat prin simbolul K) desemnează un multiplu egal cu 1000=103. În informatică se preferă exprimarea multiplilor în baza 2, care este cea utilizată în toate situaţiile. Astfel, prefixul kilo- are aici valoarea 210=1024, care este foarte apropiată de 1000. Un kilooctet (sau kilobyte) se notează deci Ko (sau KB). Analog se definesc şi ceilalţi multipli: mega- (1Mo=220 octeţi), giga- (1Go=230 octeţi), tera- (1To=240 octeţi). Pot fi definiţi şi multipli cu ordine de mărime superioare, dar pe moment practica nu face necesară utilizarea lor. După cum era de aşteptat, nu se definesc submultipli, care nu ar avea sens.
Facem observaţia că, spre deosebire de noţiunea de bit, a cărei definire are o solidă bază teoretică, octetul este doar un standard impus de practică. Nu există nici un motiv conceptual pentru a considera că dimensiunea de 8 biţi este specială. Pur şi simplu, la un moment dat în trecut s-a considerat că această dimensiune corespundea necesităţilor practice din acea vreme. O dată impus un standard pe scară largă, înlocuirea sa devine foarte dificilă. În plus, în acest caz, dacă dimensiunea 8 nu este neapărat mai "bună" decât alte variante, ea nu este nici mai "rea", deci o eventuală schimbare a standardului nu ar aduce nici un câştig. Alegerea unuia dintre multiplii octetului ca standard nu ar reprezenta decât o soluţie temporară, întrucât şi noua dimensiune ar deveni curând prea mică şi ar fi necesară utilizarea de multipli.
O problemă importantă provine din modul de implementare al biţilor. Dat fiind că valoarea unui bit este materializată în practică de o valoare de tensiune, devine clar că până şi operaţiile aritmetice cele mai simple, cum ar fi adunarea sau scăderea, nu au sens într-un circuit electric. Cu alte cuvinte, deşi avem posibilitatea fizică de a reprezenta numerele, trebuie să putem realiza şi operaţiile dorite.
Soluţia a fost găsită în lucrările matematicianului englez George Boole. În jurul anului 1850 (deci mult înainte de apariţia calculatoarelor), acesta a realizat că probleme matematice complexe pot fi rezolvate prin reducere la o serie de răspunsuri de tipul "adevărat"/"fals". Astfel, el a elaborat o teorie, numită logica Boole (sau logica booleană), care lucrează cu aceste două valori. Se observă imediat analogia cu noţiunea de bit, care permite tot două valori. Dacă, de exemplu, asociem valoarea "adevărat" din logica Boole cu cifra binară 1 şi valoarea "fals" cu cifra 0 (de altfel se poate şi invers), rezultatele logicii booleene pot fi folosite direct în sistemele de calcul.
Logica Boole defineşte un set de operaţii elementare (NOT, AND, OR etc.), cu ajutorul cărora poate fi descrisă orice funcţie. Din fericire, aceste operaţii elementare ale logicii Boole pot fi uşor implementate cu ajutorul tranzistorilor. Ca urmare, adunarea, scăderea şi celelalte operaţii aritmetice, care sunt în fond nişte funcţii matematice ca oricare altele, pot fi la rândul lor realizate practic. În concluzie, deşi obişnuim să spunem că un calculator lucrează doar cu numere, în realitate el lucrează cu şiruri de biţi, asupra cărora aplică o serie de prelucrări, pe care noi le numim adunare, înmulţire etc.; pentru circuitele din calculator, aceste operaţii nu au o semnificaţie specială, ci sunt nişte funcţii oarecare.
Pe baza conceptelor prezentate mai sus sunt create circuite din ce în ce mai complexe, capabile să îndeplinească sarcini tot mai dificile. Aceste circuite formează în cele din urmă sistemul de calcul.
 

Modelul de bază pentru arhitectura unui sistem de calcul a fost introdus de savantul american John von Neumann, ca rezultat al participării sale la construcţia calculatorului ENIAC, în anii 1944-1945. Acest model este cunoscut în literatura de specialitate ca arhitectura von Neumann.Potrivit acestui model informaţiile vehiculate în sistemul de calcul se împart în 3 categorii:
 

- date care trebuie prelucrate
- instrucţiuni care indică prelucrările ce trebuie efectuate asupra datelor (adunare,       scădere, comparare etc.)
- adrese care permit localizarea diferitelor date şi instrucţiuni
 

Simplist spus, sarcina unui sistem de calcul este de a executa instrucţiuni (grupate în secvenţe coerente, care urmăresc un obiectiv bine stabilit, numite programe) asupra datelor; adresele joacă un rol auxiliar, dar nu mai puţin important.
Arhitectura de tipul von Neumann a fost o inovaţie în logica maşinilor de calcul, deosebindu-se de cele care se construiseră până atunci prin faptul că sistemul trebuia să aibă o cantitate de memorie, similar creierului uman, în care să fie stocate atât datele, cât şi instrucţiunile de prelucrare (programul). Acest principiu al memoriei a reprezentat unul din fundamentele arhitecturale ale calculatoarelor. Diferenţa fundamentală consta în stocarea în memorie nu numai a datelor, ci şi a programelor.
A început astfel să apară din ce în ce mai clar care este aplicabilitatea memoriei. Datele numerice puteau fi tratate ca şi valori atribuite unor locaţii specifice ale memoriei. Aceste locaţii erau asemănate cu nişte cutii poştale care aveau aplicate etichete numerotate (de exemplu 1). O astfel de locaţie putea conţine o variabilă sau o instrucţiune. A devenit posibil ca datele stocate la o anumită adresă să se schimbe în decursul calculului, ca urmare a paşilor anteriori. Astfel, numerele stocate în memorie au devenit simboluri ale cantităţilor şi nu neapărat valori numerice, în acelaşi mod în care algebra permite manipularea simbolurilor x şi y fără a le specifica valorile. Cu alte cuvinte, se putea lucra cu entităţi abstracte.
Calculatoarele ulterioare şi mai târziu microprocesoarele au implementat această arhitectură, care a devenit un standard. În ciuda vechimii sale, arhitectura von Neumann nu a putut fi înlocuită până azi.
 

Microprocesor-ul contine un fel de memorie interna rapida, formata din totalitatea registrelor de care dispune acesta.
În arhitectura calculatoarelor, modul de adresare reprezintă felul în care se calculează adresa de memorie a unui operand în momentul execuției unei instrucțiuni de către procesor, folosind în acest scop informația aflată în registrele procesorului sau chiar în codul mașină al instrucțiunii.Un registru de procesor este o cantitate mică de spațiu de stocare disponibilă pe unitatea centrală de procesare, spațiu al cărui conținut poate fi accesat mai rapid decât datele aflate în altă parte (de exemplu, în memoria principală).Adresarea prin registre este similară cu cea imediată, prin aceea că nu implică accesarea memoriei, fiind un mod de adresare folosit tot pentru mărirea vitezei de execuție. Avantajul față de adresarea directă sau față de cea imediată îl reprezintă faptul că nu mai este necesar ca valoarea operandului să fie cunoscută la compilare, el fiind preluat dintr-un registru al procesorului, registru precizat în codul instrucțiunii.

Niciun comentariu:

Trimiteți un comentariu