Sunteți pe pagina 1din 7

Istoric[modificare | modificare surs]

Articol principal: Istoria mainilor de calcul


Cel mai vechi mecanism cunoscut care se pare c putea func iona ca o main de calculat se
consider a fi mecanismul din Antikythira, datnd din anul 87 .e.n. i folosit aparent pentru
calcularea micrilor planetelor. Tehnologia care a stat la baza acestui mecanism nu este
cunoscut.
O dat cu revigorarea matematicii i a tiinelor n timpul Renaterii europene au aprut o
succesiune de dispozitive mecanice de calculat, bazate pe principiulceasornicului, de exemplu
maina inventat de Blaise Pascal. Tehnica de stocare i citire a datelor pe cartele perforate a
aprut n secolul al XIX-lea. n acelai secol,Charles Babbage este cel dinti care proiecteaz o
main de calcul complet programabil (1837), ns din pcate proiectul su nu va prinde roade,
n parte din cauza limitrilor tehnologice ale vremii.
n prima jumtate a secolului al XX-lea, nevoile de calcul ale comunitii tiinifice erau
satisfcute de calculatoare analoage, foarte specializate i din ce n ce mai sofisticate.
Perfecionarea 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 (bii) n loc de semnale electrice sau mecanice. Este greu de precizat
care a fost primul calculator digital; realizri notabile au fost: calculatorul Atanasoff-Berry,
mainile Z ale germanlui Konrad Zuse - de exemplu calculatorul electromecanic Z3, care, dei
foarte nepractic, a fost probabil cel dinti calculator universal, apoi calculatorul ENIAC cu o
arhitectur relativ inflexibil care cerea modificri ale cablajelor la fiecare reprogramare, precum
i calculatorul secret britanic Colossus, construit pe baz de lmpi i programabil electronic.
Echipa de proiectare a ENIAC-ului, recunoscnd neajunsurile acestuia, a elaborat o alt
arhitectur, mult mai flexibil, care a ajuns cunoscut sub numele dearhitectura 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 lmpile (tuburile electronice) au fost nlocuite de tranzistori, mult mai eficieni, mai
mici, mai ieftini i mai fiabili, ceea ce a dus la miniaturizarea i ieftinirea calculatoarelor. Din anii
1970, adoptarea circuitelor integrate a cobort i mai mult preul i dimensiunea calculatoarelor,
permind printre altele i apariiacalculatoarelor personale de acum.

Arhitectura von Neumann[modificare | modificare surs]


Articol principal: Arhitectura von Neumann

Dei design-ul i performanele calculatoarelor s-au mbuntit dramatic n compara ie cu


anii 1940, principiile arhitecturii von Neumann sunt n continuare la baza aproape tuturor
mainilor de calcul contemporane. Ea este denumit aa dup renumitul matematician
austro-ungar John von Neumann.
Aceast arhitectur descrie un calculator cu patru module importante: unitatea aritmeticlogic (UAL), unitatea de control (UC), memoria central i dispozitivele de intrare/ieire
(prescurtat I/E). Acestea sunt interconectate cu un mnunchi 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 vzut ca o mulime de celule numerotate.
Fiecare celul primete drept adres un numr unic propriu; ele pot nmagazina o cantitate
mic, prestabilit de informaie. Informaia poate fi ori o instruc iune, ori date propriu-zise.
Instruciunile spun calculatorului ce s fac, iar datele sunt acele informaii care trebuie
prelucrate conform cu instruciunile. n principiu orice celul poate stoca (memora) att
instruciuni ct i date. Interesant este i cazul cnd una sau mai multe instruc iuni, deja
stocate n memorie, sunt privite de ctre alte instruciuni drept date de prelucrat/modificat i
sunt deci ele nsele modificate dinamic (n mers), dup necesitate.
Alte arhitecturi ntrebuinate la calculatoarele de uz general sunt de exemplu arhitectura
Harvard i arhitectura Dataflow.

Circuite digitale (hardware)[modificare | modificare surs]


Principiile de mai sus pot fi implementate cu o varietate de tehnologii - de ex. maina lui
Babbage era alctuit din componente mecanice. ns singura asemenea tehnologie care sa dovedit suficient de practic este cea a circuitelor digitale (numerice), circuite electronice
care pot efectua operaii din algebra boolean i aritmetica binar. Dar primele circuite
digitale foloseau relee electromecanice pentru a reprezenta strile "0" (blocat) i "1"
(conducie), aranjate n pori logice. Releele au fost repede nlocuite cu lmpi electronice tuburi electronice cu vid, dispozitive 100% electronice, folosite pn atunci n electronica
analog pentru proprietile lor de amplificare, dar care au putut fi utilizate i drept
comutatoare (elemente de baz n construcia calculatoarelor) de stare, 10 sau 01.
Aranjnd corect pori logice binare , se pot construi circuite care execut i func ii mai
complexe, de exemplu sumatoare. Sumatorul electronic adun dou numere folosind
acelai procedeu (n termeni informatici, algoritm) nvat de copii la coal: se adun
fiecare cifr corespondent, iar transportul este transmis ctre cifrele din stnga. n
consecin, reunind mai multe asemenea circuite, se pot obine 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 lmpi (tuburi) - deci
chiar i pentru sisteme minimale e nevoie de un numr considerabil de componente.

Un circuit integrat vzut la microscop

Lmpile electronice erau caracterizate de cteva limitri severe n folosirea lor pentru
construcia porilor logice: erau scumpe, puin fiabile, ocupau mult spaiu i consumau
cantiti mari de curent. Dei erau incredibil de rapide fa de releele electromecanice,
aveau i ele totui o vitez de operare relativ limitat. Astfel c ncepnd din anii 1960
lmpile (tuburile electronice) au fost nlocuite cu tranzistori, dispozitive ce funcionau
asemntor, ns erau mult mai mici, mai rapide, mai fiabile, mai puin consumatoare de
curent i mult mai ieftine.
Din anii 1960-'70, tranzistorul a fost i el nlocuit cu circuitul integrat, care coninea mai muli
tranzistori, i firele de interconectare corespunztoare, pe o singur plcu de siliciu
(numit cip). Din anii '70, UAL-urile combinate cu uniti de control (UC) au fost produse
unitar ca circuite integrate, numite microprocesoare, sau CPU (Central Processing
Unit/unitate de procesare central). n timp, densitatea tranzistorilor din circuitele integrate a
crescut incredibil, de la cteva zeci, n anii 70, pn la peste 100 de milioane de tranzistoare
pe circuit integrat, la procesoarele Intel i AMD din anul 2005.

Memorare de date[modificare | modificare surs]


Lmpile electronice i tranzistorii pot fi folosite i pentru construirea de memorii - aanumitele circuite flip-flop sau basculante bistabile (CBB), i chiar sunt folosite pentru mici
circuite de memorie de mare vitez, numite cu acces direct. ns puine designuri de
calculatoare au folosit bistabile pentru grosul nevoilor de memorie, memorii de amploare.
Primele calculatoare foloseau tuburi Williams - n esen proiectnd puncte pe un ecran TV
i citindu-le din nou mai trziu, 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 mainii). Aceste metode destul de neproductive au fost nlocuite cu dispozitive de
stocare (memorare) n mediu purttor magnetic, de exemplu memoria cu miezuri

magnetice de form inelar, n care un curent electric era folosit pentru a induce un cmp
magnetic remanent (dar slab) ntr-un material feros, care putea fi citit ulterior, dup
necesitate pentru a folosi datele. n cele din urm a aprut memoria dynamic random
access memory , DRAM. DRAM-ul este format din bnci (mulimi grupate) de condensatori,
componente electrice care pot reine o sarcin electric pentru o anumit durat de timp.
Scrierea informaiei ntr-o astfel de memorie se face prin ncrcarea condensatorilor cu o
anumit sarcin electric, iar citirea prin determinarea (msurarea) sarcinii acestora (dac
este ncrcat sau descrcat).

Periferice de intrare/ieire[modificare | modificare surs]


I/E (intrare-ieire), sau n englez I/O (de la input/output), este termenul general pentru
acele dispozitive prin care un calculator primete informaii din lumea exterioar, inclusiv
instruciuni despre ce s fac, sau trimite napoi (n afar) rezultatele calculelor sau
operaiilor logice pe care le-a efectuat. Rezultatele pot fi destinate ca informa ii oamenilor,
sau pot fi folosite n mod direct (nemijlocit) drept decizii n dirijarea altor maini; de exemplu
n cazul unui robot industrial, cel mai important dispozitiv de ieire (dispozitiv E) al
calculatorului (de robot) nglobat n el creeaz comenzile detailate necesare pentru toate
operaiile (micrile) mecanice ale robotului propriu-zis.
Prima generaie de calculatoare era echipat cu o gam de dispozitive I/E destul de limitat
i cu vitez de execuie redus; de exemplu, pentru introducerea datelor de calcul i
a instruciunilor de program se folosea n principal un cititor de cartele perforate sau un
dispozitiv asemntor, iar pentru afiarea rezultatelor se folosea o imprimant, de obicei
un teleimprimator modificat de tip telex. De-a lungul timpului ns au aprut o imens
diversitate de dispozitive I/E. Pentru calculatorul personal de azi, cele mai comune
modaliti de introducere direct a datelor sunt tastaturile i mausurile, iar principalul mijloc
prin care calculatorul prezint informaii ctre utilizator sunt monitoarele,
dei imprimantele sau dispozitivele de generat sunet sunt folosite i ele n mod obinuit. Alte
dispozitive sunt specializate pentru numai anumite tipuri de intrri sau ieiri, de
exemplu aparatul foto digital i scanerul.
Dou categorii principale de dispozitive sunt:

dispozitivele secundare de stocare: dischetele, unitile CD, DVD, discurile dure i


altele; capacitile de stocare a datelor pot diferi foarte mult ntre ele.

precum i dispozitivele pentru conectarea la reele de calculatoare. Posibilitatea de a


interconecta calculatoarele pentru a transfera date i informaii ntre ele a deschis calea
unei mulimi de noi aplicaii. 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 informaii de toate tipurile.

Instruciuni (software)[modificare | modificare surs]


Vezi articolul principal Software
Instruciunile interpretate de ctre unitatea de control i executate de UAL nu seamn
deloc cu limbajul uman. Calculatorul cunoate prin construc ie un set relativ mic de
instruciuni elementare, care sunt simple, bine definite i neambigue. Exemple de
instruciuni sunt: copiaz coninutul celulei de memorie 5 i plaseaz rezultatul n celula
10, adun coninutul celulei 7 cu coninutul celulei 13 i plaseaz rezultatul n celula
6, dac coninutul celulei 999 este 0 (zero), urmtoarea instruc iune de executat se
gsete memorat n celula 30, dac nu, se urmeaz secvena (irul de instruc iuni)
mai departe.
Instruciunile calculatorului se mpart n patru mari categorii:
1. mutare de date dintr-o locaie n alta (instruciuni de transfer),
2. executare de operaii aritmetice i logice asupra datelor (instruc iuni aritmetice,
instruciuni logice),
3. testare a unor condiii, de exemplu conine celula de memorie nr. 999 un 0?
(instruciuni de testare sau de condiie),
4. modificare a secvenei (irului) de operaii (instruciuni de comand propriuzise).
n calculator instruciunile externe sunt memorate i deci reprezentate n cod binar, la
fel ca i toate celelalte date de calcul (numere, litere, simboluri). De exemplu, codul n
limbaj-main pentru una din operaiile de copiere ntr-un microprocesor fabricat de
firma Intel este 10110000, 1 i 0 fiind cele dou valori logice binare n elese
de microprocesor (computer, main). n completarea exemplului de mai sus, se poate
intui c o instruciune de adunare n respectivul Intel-microprocesor trebuie s fie
reprezentat altfel dect cea de copiere, de exemplu 01001110. Mul imea
de instruciuni implementate ntr-un calculator (computer) formeaz i este
numit limbajul main al acelui calculator.
Simplificat vorbind, dac dou calculatoare au CPU-uri (uniti centrale de procesare)
care rspund la fel la acelai set de instruciuni, programele (executabile) scrise pentru

unul pot rula i pe cellalt aproape fr modificri, dar de exemplu cu viteze diferite.
Uurina portabilitii este o motivaie pentru proiectanii de calculatoare ca ei s nu
modifice radical design-urile existente, dect pentru motive serioase.

Programe[modificare | modificare surs]


Programele de calculator sunt listele de instruciuni de executat de ctre un calculator.
Acestea pot numra de la cteva instruciuni, care ndeplinesc o sarcin simpl, pn la
milioane de instruciuni 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 instruciuni pe secund. Compunerea sau
scrierea acestor programe este efectuat de ctre programatori, care pot fi profesioniti,
semiprofesioniti sau i amatori, n funcie de temele de rezolvat i mediul de
dezvoltare.
n practic, programele nu se mai scriu demult n limbajul main al calculatorului.
Scrierea n limbaj-main era extrem de laborioas i erorile se puteau strecura uor,
ceea ce putea provoca scderea productivitii la programare. Actualmente programele
dorite sunt 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-main de
ctre programe specializate (interpretoare i compilatoare), adic ntr-o limb
inteligibil mainii de calcul (computerului).
Unele limbaje de programare sunt foarte strns legate de limbajul main de la baza
calculatorului, ca de ex. limbajul de asamblare, de aceea sunt 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 operrii cu concepte foarte
abstracte, complexe, a cror implementare concret la nivelul de jos nu mai intereseaz
(dac interpretorul sau compilatorul funcioneaz corect). Limbajul ales pentru o anume
problem depinde n primul rnd chiar de natura problemei, de competena profesional
a programatorilor, de disponibilitatea uneltelor de proiectare precum i de bugetul
disponibil.
Programele mai sunt numite i software, ele putnd fi memorate permanent sau/i doar
memorabile temporar; ns software-ul poate include, pe lng 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
instruciuni; de exemplu browserul Firefox al organizaiei Mozilla se compune din peste

2 milioane de linii de cod n limbajul C++. Gestiunea acestor programe complexe face
obiectul unei tiine numite ingineria programrii.