Desi de-a lungul timpului au existat incercari de a realiza dispozitive capabile sa
realizeze in mod automat operatii de calcul, abia incepand aproximativ cu perioada
celui de-al doilea razboi mondial se poate vorbi de un efort concertat si directionat in
acest sens. Calculatoarele, in forma in care se prezinta astazi, isi datoreaza in mare
masura existenta rezultatelor obtinute in acea perioada de catre John von Neumann,
Alan Turing si Kurt Godel.
Odata stabilite principiile de baza, ultima jumatate de secol a cunoscut un efort
continuu de perfectionare a tehnologiilor folosite in constructia calculatoarelor. Din
fericire, dezvoltarea exploziva a domeniului electronicii a permis o crestere
exponentiala a puterii de calcul. Una dintre pesonalitatile domeniului, Gordon Moore
(cofondator al companiei Intel), a enuntat in urma cu circa 3 decenii legea care-i
poarta numele si care prevede ca puterea sistemelor de calcul se dubleaza la fiecare 18
luni. Desi este o lege empirica, bazata numai pe observatii practice si fara vreo
fundamentare teoretica, experienta i-a confirmat valabilitatea pana in zilele noastre.
Ca urmare a acestei rate deosebite a progresului, calculatoarele au invadat
practic toate domeniile de activitate. Astazi nu mai exista vreo ocupatie care sa nu
beneficieze de pe urma utilizarii tehnicii de calcul. O mentiune aparte trebuie facuta in
legatura cu extinderea retelelor de calculatoare pana la aparitia Internetului, care
astazi permite accesul tuturor la un volum de informatie nemaiintalnit in trecut.
In spatele tuturor acestor realizari impresionante sta munca depusa de
specialistii in domeniu. Un sistem de calcul are doua parti: hardware (circuitele fizice
care il compun) si software (programele care ruleaza pe acel sistem). Pentru o
functionare la parametrii optimi a calculatorului este necesara o buna conlucrare a
celor doua parti. Cel mai performant hardware este inutil in absenta programelor care
sa realizeze activitatile dorite. La randul lor, programele au nevoie de hardware pe
care sa ruleze. Astfel, performantele obtinute astazi sunt posibile numai ca urmare a
activitatii tuturor celor implicati in dezvoltarea echipamentelor si scrierea
programelor.
1.1. Elemente de baza
Activitatea principala a calculatorului, dupa cum o arata insusi numele sau, este
aceea de a efectua calcule. Cu toate acestea, orice persoana care a lucrat cel putin o
data cu un calculator intelege imediat ca o asemenea caracterizare este cu totul
insuficienta pentru a descrie sarcinile indeplinite de acesta. Intr-adevar, este greu de
acceptat ca semnificatia unui program de grafica, de exemplu, s-ar reduce la niste
simple calcule, desi aceste calcule au un rol cu adevarat foarte important. Intr-o
acceptiune mai generala, putem spune ca functionarea unui calculator are ca principal
obiectiv prelucrarea informatiei. Pentru a intelege modul in care este tratata
informatia, vom vedea mai intai cum este ea reprezentata intr-un calculator.
Cea mai mica unitate de informatie folosita este bitul. Fara a intra in 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 intr-una singura
din cele doua stari. Observam deci ca prin termenul de bit sunt desemnate atat
conceptul teoretic, cat 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
prezentand avantajul unei viteze de operare mult mai mare decat in cazul sistemelor
2
mecanice sau de alta natura. In circuitele electrice, cele doua stari care definesc un bit
sunt usor de definit: putem asocia una dintre stari cu situatia in care curentul electric
strabate o portiune de circuit, iar cealalta stare cu situatia in care curentul nu parcurge
aceeasi portiune de circuit. (In practica, electronistii prefera sa discute despre cele
doua stari in termenii nivelelor de tensiune din circuit, dar ideea este de fapt aceeasi).
In timp au fost folosite dispozitive tot mai sofisticate, pornind de la comutatoare,
coutinuand cu releele si diodele si ajungandu-se astazi la utilizarea tranzistorilor.
Toate insa se bazeaza pe acelasi principiu: permiterea trecerii curentului electric sau
blocarea sa.
Intrucat, 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. In acest mod, putem considera ca lucram de fapt cu cifre in baza 2, iar
calculele devin posibile.
O prima consecinta a acestei abordari o constituie necesitatea gruparii bitilor.
Intr-adevar, o singura cifra, mai ales in baza 2, contine prea putina informatie pentru a
fi utila. Deoarece in scrierea pozitionala numerele sunt siruri de cifre, apare imediat
ideea de a reprezenta numerele prin siruri de biti. Desi pentru om lucrul in baza 2 pare
mai dificil, datorita obisnuintei de a lucra in baza 10, in realitate nu exista diferente
conceptuale majore intre diferitele baze de numeratie.
(Putem raspunde aici unei intrebari care apare natural: de ce se prefera utilizarea
bitilor, deci implicit a cifrelor in 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 in baza 10.)
Pe de alta parte, intr-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 insa, fiind format din circuite fara inteligenta, nu poate fi atat de flexibil.
Solutia este de a permite ca sirurile de biti sa aiba numai anumite dimensiuni
prestabilite. Astfel, circuitele din calculator se pot intelege intre ele, deoarece lucreaza
cu operanzi de aceeasi dimensiune. Ajungem astfel la o alta unitate de informatie larg
folosita, si anume octetul (in engleza byte). Acesta reprezinta un sir de 8 biti si se
constituie intr-un standard unanim respectat. Un octet poate avea 28 = 256 valori
diferite, ceea ce este evident insuficient pentru unele tipuri de informatie vehiculate in
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. In 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 indoiala va continua sa creasca. Aceasta
dimensiune poarta denumirea de cuvant.
L. Henessy, D. A. Patterson, Computer Architecture - A Quantitative
Approach, Morgan Kaufmann Publishers, 1990.
D. A. Patterson, J. L. Henessy, Organizarea si proiectarea calculatoarelor.
Interfata hardware/software, Ed. All, 2002.
A. Tanenbaum, Organizarea structurata a calculatoarelor, Ed. Agora, 1999.
A. Tanenbaum, Modern Operating Systems, Prentice Hall, 2001.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.