Sunteți pe pagina 1din 6

Arhitectura calculatoarelor

Un calculator, numit și computer sau ordinator, este o mașină de prelucrat date și informații conform


unei liste de instrucțiuni numită program. Calculatoarele care sunt programabile liber și pot, cel puțin în
principiu, prelucra orice fel de date sau informații se numesc universale (engleză general purpose,
pentru scopuri generale). Calculatoarele actuale nu sunt doar mașini de prelucrat informații, ci și
dispozitive care facilitează comunicația între doi sau mai mulți utilizatori, de exemplu sub formă de
numere, text, imagini, sunet sau video, sau chiar toate deodată (multimedia).
Știința prelucrării informațiilor cu ajutorul calculatoarelor se numește informatică (engleză Computer
Science). Tehnologia necesară pentru folosirea lor poartă numele Tehnologia Informației, prescurtat TI
sau IT (de la termenul englezesc Information Technology).
În principiu, orice calculator care deține un anumit set minimum de funcții (altfel spus, care poate
emula o mașină Turing) poate îndeplini funcțiile oricărui alt asemenea calculator, indiferent că este
vorba de un PDA sau de un supercalculator. Această versatilitate a condus la folosirea calculatoarelor
cu arhitecturi asemănătoare pentru cele mai diverse activități, de la calculul salarizării personalului unei
companii până la controlul roboților industriali sau medicali (calculatoare universale).
Calculatoarele de astăzi vin în forme și prezentări diverse. Probabil cel mai familiar este calculatorul
personal și varianta sa portabilă (denumită în englezălaptop sau notebook). Însă cea mai răspândită
formă este acea a calculatorului integrat (engleză embedded), adică înglobat complet în dispozitivul pe
care îl comandă. Multe mașini și aparate, de la avioanele de luptă până la aparatele foto digitale, sunt
controlate de calculatoare integrate. Un alt exemplu estecalculatorul de bord al automobilelor.

Istoric

Cel mai vechi mecanism cunoscut care se pare că putea funcționa ca o mașină de calculat se consideră
a fi mecanismul din Antikythira, datând din anul 87 î.e.n. și folosit aparent pentru calcularea mișcărilor
planetelor. Tehnologia care a stat la baza acestui mecanism nu este cunoscută.
O dată cu revigorarea matematicii și a științelor în timpul Renașterii europene au apărut o succesiune
de dispozitive mecanice de calculat, bazate pe principiul ceasornicului, de exemplu mașina inventată
de Blaise Pascal. Tehnica de stocare și citire a datelor pe cartele perforate a apărut în secolul al XIX-
lea. În același secol, Charles Babbage este cel dintâi care proiectează o mașină de calcul complet
programabilă (1837), însă din păcate proiectul său nu va prinde roade, în parte din cauza limitărilor
tehnologice ale vremii.
În prima jumătate a secolului al XX-lea, nevoile de calcul ale comunității științifice erau satisfăcute de
calculatoare analoage, foarte specializate și din ce în ce mai sofisticate. Perfecționarea electronicii
digitale (datorată lui Claude Shannon în anii 1930) a condus la abandonarea calculatoarelor analogice
în favoarea celor digitale (numerice), care modelează problemele în numere (biți) în loc de semnale
electrice sau mecanice. Este greu de precizat care a fost primul calculator digital; realizări notabile au
fost: calculatorul Atanasoff-Berry, mașinile Z ale lui Konrad Zuse - de exemplu calculatorul
electromecanic Z3, care, deși foarte nepractic, a fost probabil cel dintîi calculator universal, apoi
calculatorul ENIAC cu o arhitectură relativ inflexibilă care cerea modificări ale cablajelor la fiecare
reprogramare, precum și calculatorul secret britanic Colossus, construit pe bază de lămpi și
programabil electronic.
Echipa de proiectare a ENIAC-ului, recunoscând neajunsurile acestuia, a elaborat o altă arhitectură,
mult mai flexibilă, care a ajuns cunoscută sub numele de arhitectura von Neumann sau „arhitectură cu
program memorat“. Aceasta stă la baza aproape tuturor mașinilor de calcul actuale. Primul sistem
construit pe arhitectura von Neumann a fost EDSAC.
În anii 1960 lămpile (tuburile electronice) au fost înlocuite de tranzistori, mult mai eficienți, mai mici,
mai ieftini și mai fiabili, ceea ce a dus la miniaturizarea și ieftinirea calculatoarelor. Din anii 1970,
adoptarea circuitelor integrate a coborât și mai mult prețul și dimensiunea calculatoarelor, permițând
printre altele și apariția calculatoarelor personale de astăzi.

Funcționarea arhitecturii von Neumann


Deși design-ul și performanțele calculatoarelor s-au îmbunătățit dramatic în comparație cu anii 1940,
principiile arhitecturii von Neumann sunt în continuare la baza aproape tuturor mașinilor de calcul
contemporane. Ea este denumită așa după renumitul matematician austro-ungar John von Neumann.
Această arhitectură descrie un calculator cu patru module importante: unitatea aritmetică-logică (UAL),
unitatea de control (UC), memoria centrală și dispozitivele de intrare/ieșire (prescurtat I/E). Acestea
sunt interconectate cu un mănunchi de fire numit magistrală pe care circulă datele de calcul și datele de
program (instrucțiuni) și sunt conduse în tactul unui ceas (șir de impulsuri continuu).
Conceptual, memoria unui calculator poate fi văzută ca o mulțime de „celule“ numerotate. Fiecare
celulă primește drept adresă un număr unic propriu; ele pot înmagazina o cantitate mică, prestabilită de
informație. Informația poate fi ori o instrucțiune, ori date propriu-zise. Instrucțiunile spun
calculatorului ce să facă, iar datele sunt acele informații care trebuie prelucrate conform cu
instrucțiunile. În principiu orice celulă poate stoca (memora) atât instrucțiuni cât și date. Interesant este
și cazul când una sau mai multe instrucțiuni, deja stocate în memorie, sunt privite de către alte
instrucțiuni drept date de prelucrat/modificat și sunt deci ele însele modificate dinamic („în mers“),
după necesitate.
UAL este din multe puncte de vedere „inima“ calculatorului. Aceasta este capabilă să efectueze mai
multe tipuri de operații, de exemplu operații aritmetice (adunare, înmulțire ș.a.), operații de comparație,
operații de manevrare a datelor (duplicare, mutare, trunchiere ș.a.).
Sistemele de I/E sunt dispozitive prin care calculatorul preia informații din lumea exterioară și
raportează înapoi rezultatele. Într-un calculator personal obișnuit, dispozitive de intrare sunt de
exemplutastatura și mausul, iar dispozitive de ieșire sunt monitorul și imprimanta. Există și dispozitive
I/E combinate, atât pentru intrare cât și pentru ieșire, de exemplu modemul, placa de rețea și discul
durmagnetic.
Unitatea de control este un modul central care comandă și leagă toate celelalte module între ele. Rolul
ei este să culeagă („citească“) instrucțiunile și datele din memorie sau de la dispozitivele I/E
(intrare/ieșire), să decodeze instrucțiunile, să ofere UAL (unității aritmetico-logice) date de intrare
corecte conform cu instrucțiunea, să comande UAL ce anume operație să efectueze asupra intrărilor,
precum și să trimită (scoată afară) rezultatele, adică să "scrie" în memorie sau către dispozitivele de
ieșire, „E”. O componentă cheie a unității de control este un contorul (numărătorul) de instrucțiuni. El
conține la orice moment adresa instrucțiunii curente din secvența de program în execuție, și numără
instrucțiunile, fiind astfel în permanentă schimbare. Fizic, începînd din anii 1980, UAL și unitatea de
control se plasează unitar în același circuit integrat numit "unitate centrală de procesare", (central
processing unit, CPU ) sau microprocesor sau și procesor. Miniaturizarea continuă a dus printre altele și
la apariția așa numitelor unități grafice de procesare, (graphic processing unit, GPU), care comandă și
coordonează toate operațiunile de afișare pe ecranul calculatorului - în locul plăcii de extensie pentru
grafică.
Pentru arhitectura calculatoarelor s-au adoptat numeroase standarde. Un prim standard de acest fel, care
mai este utilizat și în prezent, este ISA (Industry Standard Architecture), care a fost elaborat de IBM
odată cu primul IBM PC, apărut la începutul anilor '80.
Sistemele de calcul rapide pot avea înglobate mai multe procesoare, vezi și articolul supercomputer.
Fiecare procesor (CPU) include o unitate de control precum și unul sau mai multe nuclee de proces
logic-aritmetic, fiecare dispunînd de o UAL proprie.
Circuite digitale (hardware)
Principiile de mai sus pot fi implementate cu o varietate de tehnologii - de ex. mașina lui Babbage era
alcătuită din componente mecanice. Însă singura asemenea tehnologie care s-a dovedit suficient de
practică este cea a circuitelor digitale (numerice), circuite electronice care pot efectua operații
din algebra booleană și aritmetica binară. Dar primele „circuite” digitale foloseau relee electromecanice
pentru a reprezenta stările "0" (blocat) și "1" (conducție), aranjate în porți logice. Releele au fost repede
înlocuite cu lămpi electronice - tuburi electronice cu vid, dispozitive 100% electronice, folosite pînă
atunci în electronica analogă pentru proprietățile lor de amplificare, dar care au putut fi utilizate și drept
comutatoare (elemente de bază în construcția calculatoarelor) de stare, 1→0 sau 0→1.
Aranjînd corect porți logice binare , se pot construi circuite care execută și funcții mai complexe, de
exemplu sumatoare. Sumatorul electronic adună două numere folosind același procedeu (în termeni
informatici, algoritm) învățat de copii la școală: se adună fiecare cifră corespondentă, iar „transportul”
este transmis către cifrele din stînga. În consecință, reunind mai multe asemenea circuite, se pot obține
o UAL și o unitate de control complete. CSIRAC, unul din primele calculatoare bazate pe arhitectura
von Neumann și probabil cel mai mic asemenea calculator posibil, avea circa 2000 de lămpi (tuburi) -
deci chiar și pentru sisteme minimale e nevoie de un număr considerabil de componente.

Un circuit integrat văzut la microscop


Lămpile electronice erau caracterizate de cîteva limitări severe în folosirea lor pentru
construcția porților logice: erau scumpe, puțin fiabile, ocupau mult spațiu și consumau cantități mari de
curent. Deși erau incredibil de rapide față de releele electromecanice, aveau și ele totuși o viteză de
operare relativ limitată. Astfel că începînd din anii 1960 lămpile (tuburile electronice) au fost înlocuite
cu tranzistori, dispozitive ce funcționau asemănător, însă erau mult mai mici, mai rapide, mai fiabile,
mai puțin consumatoare de curent și mult mai ieftine.
Din anii 1960-'70, tranzistorul a fost și el înlocuit cu circuitul integrat, care conținea mai mulți
tranzistori, și firele de interconectare corespunzătoare, pe o singură plăcuță de siliciu (numită cip). Din
anii '70, UAL-urile combinate cu unități de control (UC) au fost produse unitar ca circuite integrate,
numitemicroprocesoare, sau CPU (Central Processing Unit/unitate de procesare centrală). În timp,
densitatea tranzistorilor din circuitele integrate a crescut incredibil, de la cîteva zeci, în anii 70, pînă la
peste 100 de milioane de tranzistoare pe circuit integrat, la procesoarele Intel și AMD din anul 2005.
Lămpile electronice și tranzistorii pot fi folosite și pentru memorie - așa-numitele circuite flip-flop sau
"basculante bistabile" (CBB ), și chiar sînt folosite pentru mici circuite de memorie de mare viteză,
numite „cu acces direct” . Însă puține designuri de calculatoare au folosit bistabile pentru grosul
nevoilor de memorie, memorii de amploare . Primele calculatoare foloseau tuburi Williams - în esență
proiectînd puncte pe un ecran TV și citindu-le din nou mai tîrziu, sau linii de mercur, în care datele erau
depozitate sub formă de unde sonore care parcurgeau tuburi cu mercur la viteză mică (comparativ cu
viteza de operare a mașinii). Aceste metode destul de neproductive au fost înlocuite cu dispozitive de
stocare (memorare) în mediu purtător magnetic, de exemplu memoria cu miezuri magnetice de formă
inelară, în care un curent electric era folosit pentru a induce un cîmp magnetic remanent (dar slab) într-
un material feros, care putea fi citit ulterior, după necesitate pentru a folosi datele. În cele din urmă a
apărut memoria dynamic random access memory , DRAM . DRAM-ul este format din bănci (mulțimi
grupate) de condensatori, componente electrice care pot reține o sarcină electrică pentru o anumită
durată de timp. Scrierea informației într-o astfel de memorie se face prin încărcarea condensatorilor cu
o anumită sarcină electrică, iar citirea prin determinarea („măsurarea”) sarcinii acestora (dacă este
încărcat sau descărcat).
„I/E” ("intrare-ieșire"), sau în engleză I/O (input/output), este termenul general pentru acele dispozitive
prin care un calculator primește informații din lumea exterioară, inclusiv instrucțiuni despre ce să facă,
sau trimite înapoi (în afară) rezultatele calculelor pe care le-a efectuat. Rezultatele pot fi destinate
oamenilor, sau pot fi folosite în dirijarea altor mașini; de exemplu în cazul unui robot industrial, cel mai
important dispozitiv de ieșire (dispozitiv E) al calculatorului înglobat în el creează comenzile detailate
necesare pentru toate operațiile (mișcările) mecanice ale robotului propriu-zis.
Prima generație de calculatoare era echipată cu o gamă de dispozitive I/E destul de limitată și cu viteză
de execuție redusă;de exemplu, pentru introducerea datelor de calcul și a instrucțiunilor de program se
folosea în principal un cititor de cartele perforate sau un dispozitiv asemănător, iar pentru afișarea
rezultatelor se folosea o imprimantă, de obicei un teleimprimator modificat de tip "telex". De-a lungul
timpului însă au apărut o imensă diversitate de dispozitive I/E. Pentru calculatorul personal de azi, cele
mai comune modalități de introducere directă a datelor sînt tastaturile și mausurile, iar principalul
mijloc prin care calculatorul prezintă informații către utilizator sînt monitoarele, deși imprimantele sau
dispozitivele de generat sunet sînt folosite și ele în mod obișnuit. Alte dispozitive sînt specializate
pentru numai anumite tipuri de intrări sau ieșiri, de exemplu aparatul foto digitalși scanner-ul.
Două categorii mai deosebite de dispozitive sînt:
 dispozitivele secundare de stocare, cum ar fi: dischetele, unitățile CD-ROM și DVD --
dispozitive cu o capacitate mult mai mare, în care se pot depozita informații pentru utilizare
ulterioară, discurile dure;
 precum și dispozitivele pentru conectarea la rețele de calculatoare. Posibilitatea de a
interconecta calculatoarele pentru a transfera date și informații între ele a deschis calea unei
mulțimi de noi aplicații. Internetul, și aici în special World Wide Web, permit miliardelor de
calculatoare de pe glob să se lege unele cu altele pentru a transfera între ele informații de toate
tipurile.
Programe
Programele de calculator sunt listele de instrucțiuni de executat de către un calculator. Acestea pot
număra de la câteva instrucțiuni, care îndeplinesc o sarcină simplă, pînă la milioane de instrucțiuni pe
program (unele din ele executate repetat), plus tabele de date. Un calculator personal curent din
anul 2008 din categoria sub 1.000 euro este capabil să execute peste 4 miliarde de instrucțiuni pe
secundă. Compunerea sau scrierea acestor programe este efectuată de către programatori profesioniști,
numiți și „softiști”.
În practică, programele nu se mai scriu demult în limbajul mașină al calculatorului. Scrierea în limbaj-
mașină era extrem de laborioasă și erorile se puteau strecura ușor, ceea ce putea provoca scăderea
productivității la programare. Actualmente programele dorite sînt de obicei descrise/scrise într-
un limbaj de programare de nivel mai ridicat (superior), care, înainte de a putea fi executat, este tradus
automat în limbaj-mașină de către programe specializate (interpretoare și compilatoare), adică într-o
„limbă” inteligibilă mașinii de calcul (computerului).
Unele limbaje de programare sînt foarte strîns legate de limbajul mașină de la baza calculatorului, ca de
ex. limbajul de asamblare, de aceea sînt numite limbaje de "nivel jos". La cealaltă extremă se situează
limbajele de "nivel înalt", de ex. C++, Java, Lisp, Visual Basic ș.a. Acestea oferă programatorilor
posibilitatea operării cu concepte foarte abstracte, complexe, a căror implementare concretă la nivelul
de jos nu mai interesează (dacă interpretorul sau compilatorul funcționează corect). Limbajul ales
pentru o anume problemă depinde în primul rînd chiar de natura problemei, de competența profesională
a programatorilor, de disponibilitatea uneltelor de proiectare precum și de bugetul disponibil.
Programele mai sunt numite și software, ele putând fi memorate permanent sau/și doar memorabile
temporar; însă software-ul poate include, pe lîngă programele propriu-zise, și material auxiliar, cum ar
fi date grafice, în cazul unui joc pe calculator.
Instrumentele moderne de proiectare software precum și tehnicile de programare ce pun accentul pe
reutilizarea codului (de ex. programarea orientată pe obiecte) fac posibilă realizarea unor programe
complexe, constituite din zeci de milioane de instrucțiuni; de exemplu browserul Firefox al organizației
Mozilla se compune din peste 2 milioane de linii de cod în limbajul C++. Gestiunea acestor programe
complexe face obiectul unei științe numite ingineria programării.
Biblioteci și sisteme de operare
Nu cu mult timp după dezvoltarea calculatorului s-a descoperit că aceleași rutine (părți de program
(subprograme) cu scop bine definit) se pot uneori folosi în mai multe programe diferite; un exemplu
fiind calcularea unor funcții matematice. Din motive de eficiență, versiunile standard ale acestor rutine
au început să fie adunate în biblioteci de programe (engleză: library, libraries) și puse la dispoziția
tuturor celor interesați. Un alt set foarte necesar de rutine s-a dovedit a fi comunicarea cu
diversele dispozitive de I/E (disp. periferice de intrare/ieșire).
În anii 1960, calculatoarele au început să fie folosite pe larg în industrie și economie, iar un calculator a
putut fi folosit la executarea simultană a multor sarcini, prin intercalare de programe de calcul și
comandă. Curînd a apărut și software specializat (sistem de program cu instrucțiuni) în automatizarea
planificării acestor sarcini. Combinația între un software gestionar/comandor al hardware-ului și un
software planificator de sarcini a devenit cunoscută sub numele de "sistem de operare"
(engleză: operating system ). Un prim exemplu de sistem de operare a fost sistemul OS/360 al
firmei IBM.
Următorul pas major a fost partajarea timpului (time sharing) , prin care mai mulți utilizatori (clienți)
pot folosi o mașină simultan. Pentru aceasta programele fiecăruia se păstrează în memorie, executîndu-
se pe rînd porțiuni din aceste programe pentru o perioadă scurtă de timp ("felie de timp"), astfel oferind
fiecărui utilizator (client) iluzia că computerul lucrează doar pentru el. Modul de stocare (memorare) a
datelor a evoluat și ea, apărînd conceptul de "sistem de fișiere" (file system), în care fișierele sînt
dispuse într-o structură ierarhică de "directoare" sau "dosare".
O adăugire majoră în domeniul sistemelor de operare a fost acum cîțiva ani o interfață grafică cu
utilizatorul (engleză: graphic user interface , GUI ).
În afara acestor funcții de bază, sistemele de operare conțin deseori și o trusă de unelte suplimentare,
care parțial sînt extrem de funcționale și complicate/sofisticate.
Calculatoarele integrate vin cu sisteme de operare mult mai mici și mai limitate în funcțiuni, unele
chiar fără sistem de operare, întrucît programul foarte specializat care le conduce efectuează chiar el
toate operațiile necesare.

Utilizare
Primele calculatoare electronice digitale, fiind foarte mari și scumpe, erau folosite la calcule științifice
complicate, de multe ori pentru scopuri militare. ENIAC-ul a fost proiectat pentru calculul tirurilor
deartilerie, dar a fost folosit și la calculul densităților transversale de neutroni, în proiectarea bombei cu
hidrogen. Multe din supercalculatoarele contemporane sunt folosite pentru simulări de arme nucleare.
Alte calculatoare au fost utilizate în criptanaliză, de exemplu primul calculator electronic programabil,
Colossus.
În ciuda concentrării de la început pe aplicații științifice și militare, calculatoarele au început repede să
fie adoptate și în alte domenii, precum cel al afacerilor. LEO, unul din primele calculatoare bazate pe
arhitectura von Neumann, era folosit la gestiunea stocurilor încă din anii 1950. O dată cu apariția
microprocesoarelor și ieftinirea semnificativă a calculatoarelor, acestea și-au găsit aplicare
încontabilitate, birotică, alcătuirea de previziuni meteo și de altă natură, în calculele matematice
repetitive precum și în calcul tabelar.
În domeniul artelor, calculatoarele sunt întrebuințate pentru generarea și editarea de sunet, imagini și
video. Astăzi aceste activități sunt efectuate aproape exclusiv pe calculator (computer). De asemenea,
industria jocurilor pe calculator este una foarte lucrativă.
Calculatoarele au putut fi folosite pentru comanda mecanismelor (dispozitivelor electromecanice) din
momentul în care au devenit suficient de mici și de ieftine pentru acest scop. Primele aplicații majore
pentru calculatoarelor integrate au fost ghidarea misiunilor Apollo și a rachetelor Minuteman. Astăzi se
întâlnesc din ce în ce mai rar echipamente mecanice care să nu fie comandate într-o formă sau alta de
un calculator. Unele din cele mai complexe asemenea echipamente sunt roboții industriali, mașini mai
mult sau mai puțin asemănătoare omului și aptitudinilor sale. Calculatoarele sunt din ce în ce mai mult
utilizate în domotică, pentru aplicații casnice de genul „dacă cineva e acasă, computerul deschide
televizorul la 7 seara“ sau „reduce căldura noaptea”.
Roboții industriali sunt o prezență obișnuită în producția de masă, însă roboții umanoizi încă nu au
ajuns la nivelul la care sunt portretizați în literatura de anticipație SF și sunt astăzi doar jucării sau
subiecte de cercetare. De asemenea, progresul inteligenței artificiale în crearea unui calculator cu
„inteligență” electronică la nivelul celei omenești a fost până acum extrem de lent, deși de-a lungul
timpului s-au dezvoltat metode care permit calculatoarelor să îndeplinească destul de bine sarcini
despre care inițial se bănuia că ar fi prin excelență umane, cum ar fi jocul de șah sau citirea scrisului de
mână (analogic).
Rețele de calculatoare și internetul
În anii 1970 inginerii de la institutele de cercetare militare din SUA au început să își interconecteze în
rețele calculatoarele folosind tehnologia telecomunicațiilor. O rețea de calculatoare are de regulă un
caracter coordonator-subordonator, adică structura respectivă are calculatoare „egale” dar care sunt
supuse controlului unui calculator principal, „dirijor”. Proiectul a fost sprijinit de către
agenția DARPAa ministerului apărării, iar rețeaua de calculatoare care a luat astfel naștere s-a
numit Arpanet.
În timp, rețeaua s-a extins enorm, dincolo de scopul ei inițial academic și militar și a devenit cunoscută
sub numele de internet. Evoluția rețelelor a adus cu sine o redefinire a naturii și limitelor unui
calculator. În cuvintele lui John Gage și Bill Joy (de la firma Sun Microsystems), „the network is the
computer“ — „rețeaua este calculatorul“. Sistemele de operare și aplicațiile computerelor s-au
modificat, incluzând acum capacitatea de a defini și accesa resurse de pe alte calculatoare din rețea (fie
informații, fie dispozitive conectate la ele), ca extensii ale resurselor locale. Inițial aceste facilități erau
disponibile numai celor care lucrau în medii de înaltă tehnologie, însă din anii 1990, o dată cu
răspândirea aplicațiilor ca de exemplu e-mail sau World Wide Web, și cu dezvoltarea tehnologiilor de
conectare în rețea ieftine și rapide precum Ethernet sau ADSL, rețelele de calculatoare au pătruns peste
tot, în toate domeniile vieții.

S-ar putea să vă placă și