Calculatoare
De la Publicitate Enciclopedica
Bibliografie
Un istoric al aparitiei calculatoarelor
Calculatoarele electronice sunt urmasele unor dispozitive de calcul mai rudimentare dar foarte ingenioase, nãscute din pasiunea si ambitia oamenilor de a efectua calcule din ce în ce mai precise. Paradoxal însã, atât cei pasionati de calcule, între care amintim ilustrele nume ale lui Ampere si Gauss, cât si cei cãrora le displãceau calculele (francezul de Condorcet, de exemplu, a împãrtit un premiu al Academiei din Berlin în 1774 cu astronomul Tempelhoff fiindcã avea oroare de calcule) erau interesati de dezvoltarea dispozitivelor de calcul automate. Primele probleme de calcul erau exclusiv numerice, dar calculatoarele de astãzi pot solutiona probleme complicate, prelucrând informatii complexe, de tipuri diverse.
Vom enumera în continuare etapele evolutiei dispozitivelor de calcul pânã la aparitia calculatoarelor moderne, enumerând, cu titlu informativ, si mai ales pentru ingeniozitatea lor, câteva dintre acestea Cam75.
Dispozitive de calcul simple
John Napier (1550-1617) a inventat un dispozitiv cu bastonase prismatice pe care erau înscrise produsele cu 1,2,...,9 ale cifrelor de la 1 la 9 pentru simplificarea înmultirii.
E. Gunter (1581-1626) a construit scara logaritmicã, reducând înmultirea a douã numere la operatia de adunare a douã segmente prin folosirea formulei log(a x b)=log(a)+log(b).
E. Wingate (1593-1656) a perfectionat scara logaritmicã cu douã rigle gradate care pot aluneca una de-a lungul celeilalte, creând rigla logaritmicã ce se mai foloseste si astãzi.
De remarcat cã dispozitivele amintite mai sus nu efectueazã adunãri si necesitã operare exclusiv manualã.
În 1642, Blaise Pascal (1623-1662) a inventat o masinã de adunat mecanicã pentru a-si ajuta tatãl, care era administrator financiar. Masina consta din sase cilindri ce aveau reprezentate cifrele 0,1,...,9 pe câte o bandã. La fiecare rotatie cu 1/10 din lungimea cercului corespunzãtor, se schimba cifra iar fiecare 10 atins de un cilindru determina trecerea automatã, pe cilindrul urmãtor, a unei unitãti de ordin superior. Astfel, suma a douã numere rezulta în urma rotatiilor succesive fãcute pentru primul si al doilea numãr. Masina lui Pascal a fost simplificatã de Lepine (1725) iar în 1851, V. Schilt a prezentat la Londra o masinã de adunat în care cifrele se înscriau pe clape.
Gottfried von Leibniz (1646-1716) a construit masini de adunat si înmultit (1694, 1704) inventând un cilindru suplimentar care permitea repetarea adunãrilor în vederea efectuãrii unei înmultiri (antrenorul). Dispozitivele de calcul descrise de el pentru efectuarea celor patru operatii aritmetice au aplicatii si astãzi.
Thomas de Colmar a creat în 1820 prima masinã de adunat si înmultit care a intrat în viata economicã.
Charles Babbage a proiectat, între 1834 si 1854, o masinã care, folosind rotite de calcul zecimal, urma sã execute o adunare într-o secundã dar care n-a fost, din pãcate, complet realizatã. Munca lui Babbage a fost încurajatã de ideile inovatoare ale Adei Byron, numele celor doi rãmânând de referintã în pionieratul informaticii prin intuirea unor principii general valabile în informaticã, cum ar fi separarea memoriei si unitãtii de executie în construirea unui calculator sau posibilitatea utilizãrii acestuia pentru rezolvarea unor probleme complexe.
P. L. Cebîsev (1821-1894) a construit o masinã de adunat si înmultit cu miscare continuã, care semnala sonor momentul de stopare a manivelei.
Viteza de lucru a acestor masini va creste pânã la câteva zeci de operatii pe secundã prin înlocuirea învârtirii manuale a manivelei cu operatii electrice.
La expozitia de la Paris din anul 1920, Torres y Quevedo a prezentat o masinã care efectua înmultiri si împãrtiri, numerele fiind introduse prin apãsarea pe clape.
2) În prima jumãtate a secolului al XX-lea au fost inventate masini analogice care transformau o problemã matematicã (teoreticã sau practicã) într-una bazatã pe mãrimi fizice (segmente, unghiuri, intensitatea curentului electric, variatii de potential) pe baza unei analogii. În final se obtinea un rezultat aproximativ dar convenabil din punct de vedere practic. Un exemplu de transpunere a unei probleme numerice în termeni analogici este reducerea înmultirii a douã numere la adunarea a douã segmente folosind scara logaritmicã.
3) Cãtre mijlocul secolului al XX-lea apar calculatoarele electronice (care pot fi si ele numerice sau analogice), capabile sã rezolve probleme complexe. Structura acestora este prezentatã în Arhitectura generalã a sistemelor de calcul
Pe scurt, orice calculator trebuie sã fie capabil sã memoreze informatii (date si programe), deci contine un dispozitiv de memorie, sã comande executia operatiilor, deci contine un dispozitiv de comandã si sã le execute (dispozitiv aritmetico-logic).Aceste componente sunt interconectate pentru buna functionare a calculatorului. În scopul realizãrii legãturilor dintre calculator si exterior, apar dispozitive de introducere a datelor, respectiv extragere a rezultatelor.
Grigore Moisil spunea: "Calculatorul nu rezolvã probleme, cum se spune. Problemele le rezolvã omul, dar în rezolvarea lor omul se serveste nu numai de toc si hârtie, ci si de calculator", subliniind faptul cã un calculator este un instrument de lucru, nu o "inteligentã" de sine stãtãtoare. De altfel, acest principiu nu s-a schimbat nici chiar în noul domeniu al inteligentei artificiale, unde calculatorul poate fi fãcut sã "învete" lucruri noi pe baza anumitor informatii furnizate, împreunã cu niste reguli de deductie, dar în ultimã instantã omul este cel care a implementat aceste mecanisme. Asadar, un calculator este (deocamdatã) atât de "inteligent" cât îl facem noi sã fie.
Dupã cum probabil s-a dedus deja, dispozitivul fizic (hardware, din limba englezã) reprezentat de calculator nu este suficient pentru exploatarea sa eficientã; mai este nevoie de un sistem de programe (software) care ne permite sã folosim resursele fizice pentru rezolvarea problemelor dorite. În absenta acestora, calculatorul ar fi, dacã nu inutil, în orice caz foarte dificil de folosit (exclusiv în limbaj masinã, precum primele calculatoare apãrute). Pãrtile hard si soft ale unui calculator alcãtuiesc împreunã sistemul de calcul.
Primul calculator electronic a fost construit în 1943 în Statele Unite (Philadelphia) si s-a numit ENIAC. Acesta folosea procedeele de calcul aplicate la calculatoarele mecanice dar, datoritã pieselor electronice, avea o vitezã mai mare: 32.000 de operatii aritmetice pe secundã. Era de dimensiuni mari, componentele sale principale fiind o memorie pentru date, una pentru instructiuni si o unitate de comandã pentru executia instructiunilor.
În 1947, John von Neumann stabileste principiile de bazã pentru calculatoarele clasice (arhitecturã von Neumann), valabile pânã astãzi: la un moment dat, unitatea centralã a calculatorului executã o singurã instructiune, instructiunile programului fiind retinute în memoria internã calculatorului.
Evolutia cronologicã a calculatoarelor electronice este descrisã în continuare sub forma generatiilor de calculatoare [GEN5]. Se poate remarca faptul cã dezvoltarea caracteristicilor fizice si performantelor calculatoarelor a fost extraordinar de dinamicã; de fapt domeniul calculatoarelor, privit atât din punctul de vedere hard, cât si soft, a avut cea mai rapidã evolutie dintre industriile si tehnologiile secolul nostru. Primele sisteme electronice de calcul, de dimensiuni considerabile, erau departe de performantele calculatoarelor moderne si existã toate motivele sã credem cã aceastã evolutie va continua.
Generatia 1 (1943-1956)
Principalele componente fizice ale acestor calculatoare erau tuburile electronice pentru circuitele logice si tamburul magnetic rotativ pentru memorie. Viteza de lucru era micã: 50-30.000 operatii pe secundã iar memoria internã - 2KO. Aceste calculatoare aveau dimensiuni foarte mari si degajau o cantitate de cãldurã destul de mare, deci nu ofereau sigurantã perfectã în utilizare. Programarea acestor calculatoare era dificilã, folosindu-se limbajul masinã si ulterior limbajul de asamblare. Reprezentantul cel mai cunoscut al acestei generatii este calculatorul ENIAC. Enumerarea caracteristicilor sale fizice este foarte sugestivã pentru a crea o imagine asupra primelor tipuri de calculatoare: el continea 18.000 de tuburi electronice, 7.500 de relee, 7.000.000 de rezistente si ocupa 145m2, cântãrind 30t.
Este de remarcat faptul cã informatica româneascã a demarat cu câteva realizãri notabile, inclusiv din punct de vedere tehnic. Dintre primele calculatoare românesti amintim: Calculatorul Institutului de Fizicã Atomicã din Bucuresti (CIFA), Masina Electronicã de Calcul a Institutului Politehnic Timisoara (MECIPT), Dispozitivul Automatic de Calcul al Institutului de Calcul din Cluj (DACICC-1).
Generatia 2 (1957-1963)
Principalele tehnologii hard erau reprezentate de tranzistori (diode semiconductoare) si memorii din ferite, viteza de lucru atinsã fiind de 200.000 de operatii pe secundã iar memoria internã - de aproximativ 32KO. Echipamentele periferice de introducere/extragere de date au evoluat si ele; de exemplu, de la masini de scris cu 10 caractere pe secundã s-a trecut la imprimante rapide (pentru acea perioadã) cu sute de linii pe minut. Programarea acestor calculatoare se putea face si în limbaje de nivel înalt (Fortran, Cobol) prin existenta unor programe care le traduc în limbaj masinã (compilatoare). Apare un paralelism între activitatea unitãtii de comandã si operatiile de intrare-iesire (dupã ce unitatea de comandã initiazã o operatie de intrare-iesire, controlul acesteia va fi preluat de un procesor specializat, ceea ce creste eficienta unitãtii de comandã). În memoria calculatorului se pot afla mai multe programe - multiprogramare - desi la un moment dat se executã o singurã instructiune.
Dintre calculatoarele românesti ale generatiei a doua, amintim DACICC-200, CIFA 101 si 102.
Generatia 3 (1964-1971)
Principala tehnologie hard era reprezentatã de circuitele integrate (circuite miniaturizate cu functii complexe), memoriile interne ale calculatoarelor fiind alcãtuite din semiconductoare. Apar discurile magnetice ca suporturi de memorie externã iar viteza de lucru creste la 5 milioane de operatii pe secundã. Cel mai cunoscut reprezentant al generatiei este IBM 360 iar dintre calculatoarele românesti - familia FELIX, calculatoare universale realizate sub licentã francezã.
Generatia 3.5(1971-1981)
Cresc performantele circuitelor integrate si se standardizeazã. Apar circuitele cu integrare slabã (SSI – Simple Scale of Integration) si medie (MSI – Medium Scale of Integration), echivalentul a 100 de tranzistoare pe chip. Viteza de lucru este de 15.000.000 de operatii pe secundã iar memoria internã ajunge la 2MO. Se folosesc limbaje de nivel înalt (Pascal, Lisp).
Generatia 4 (1982-1989)
Se folosesc circuite integrate pe scarã largã (LSI – Large Scale of Integration) si foarte largã (VLSI – Very Large scale of Integration) (echivalentul a 50.000 de tranzistoare pe chip), memoria internã creste la 8MO iar viteza de lucru - la 30.000.000 de operatii pe secundã. Apar discurile optice si o nouã directie în programare: programarea orientatã pe obiecte [Par92].
Calculatoarele generatiilor I-IV respectã principiile arhitecturii clasice (von Neumann) si au fost construite pentru a realiza în general operatii numerice. Calculele matematice complicate, dupã algoritmi complecsi care sã furnizeze rezultate exacte (de exemplu integrare, limite, descompuneri de polinoame, serii), numite calcule simbolice, au apãrut doar în ultimele decenii si nu au fost favorizate de constructia calculatoarelor, ci de un soft puternic, bazat pe algoritmi performanti [And97].
Pânã în jurul anilor '80, evolutia calculatoarelor a fost preponderent bazatã pe salturi tehnologice. Constatându-se însã cã majoritatea programelor nu folosesc în întregime posibilitãtile calculatoarelor dintr-o generatie, s-a încercat cresterea performantelor activitãtii de creare a soft-ului, urmãrind principiul evident cã activitatea umanã nu se bazeazã pe prelucrãri de date, ci de cunostinte între care apar operatii logice de deductie. Ulterior, se va pune chiar problema gãsirii unor arhitecturi performante care sã sustinã noile concepte si cerinte de prelucrare a cunostintelor. Arhitectura urmãtoarei generatii de calculatoare nu va mai respecta în mod necesar principiile von Neumann.
Generatia 5 (1990-)
este generatia inteligentei artificiale, fiind în mare parte rezultatul proiectului japonez de cercetare pentru noua generatie de calculatoare. Principalele preocupãri ale cercetãtorilor din domeniul inteligentei artificiale se suprapun în cea mai mare parte cu functiile noii generatii de calculatoare, care sunt prezentate mai jos. Aceste calculatoare sunt bazate pe prelucrarea cunostintelor (Knowledge Information Processing System - KIPS), în conditiile în care aceste prelucrãri devin preponderente în majoritatea domeniilor stiintifice. Din punct de vedere tehnic, se folosesc circuite VLSI (echivalentul a peste 1 milion de tranzistoare pe chip), atingându-se o vitezã de lucru foarte mare, pentru care apare o nouã unitate de mãsurã: 1LIPS (Logical Inferences Per Second) = 1000 de operatii pe secundã). Astfel, viteza noilor calculatoare se estimeazã la 100 M LIPS pânã la 1 G LIPS. Apare programarea logicã, bazatã pe implementarea unor mecanisme de deductie pornind de la anumite "axiome" cunoscute, al cãrei reprezentant este limbajul Prolog.
Functiile de bazã ale noii generatii de calculatoare sunt:
interfata inteligentã între om si calculator: Se urmãreste implementarea unor functii similare celor umane (auz, vãz, folosirea limbajului) prin mecanisme de recunoasterea formelor, exprimare prin imagini si studiul limbajului natural (directie importantã a inteligentei artificiale). Astfel, utilizatorii calculatoarelor, mai ales nespecialisti, vor avea la dispozitie un instrument de lucru mult mai agreabil.
gestiunea cunostintelor: Cunostintele trebuie sã poatã fi memorate sub forme care sã permitã un acces optim la bazele de cunostinte (asociativ) si întretinerea bazei de cunostinte prin introducerea de cunostinte noi, eliminarea inconsistentelor, chiar învãtare de cunostinte (caracteristicã inteligentei artificiale).
realizarea de inferente (deductii) si predictii: Acestor actiuni, similare gândirii umane, li se poate asocia în mod cert atributul de «inteligent». Problemele de inteligentã artificialã se vor rezolva uzual folosind bazele de cunostinte asupra cãrora se aplicã regulile de deductie. Se folosesc metode si tehnici care permit generarea automatã a unor programe si testarea corectitudinii programelor. Omul va fi asistat în obtinerea de cunostinte noi prin simularea unor situatii concrete, necunoscute încã. Aceste tipuri de probleme sunt foarte complexe si necesitã instrumente de abordare adecvate: programare logicã, metode de programare euristice care sã furnizeze solutii bune (chiar dacã nu optime) într-un timp scurt; tehnicile enumerate, care permit gãsirea solutiei într-un spatiu de cãutare de dimensiuni foarte mari, sunt dezvoltate tot în cadrul inteligentei artificiale [Lug97]. Un caz special de deductie este predictia (prevederea unor evolutii pe baza anumitor cunostinte date), care se implementeazã folosind mecanisme ce încearcã sã simuleze functionarea creierului uman prin intermediul retelelor neuronale. O altã tehnicã inspiratã din lumea biologicului în inteligenta artificialã o constituie algoritmii genetici, care au caracteristici de adaptabilitate la context, similar cu adaptarea la mediu a populatiilor biologice.
Generatia 6 apare deocamdatã doar în literaturã, sub forma conceptului ipotetic de "calculator viu", despre care se filozofeazã si despre care oamenii se întreabã dacã va putea fi obtinut în viitor prin atasarea unei structuri de tip ADN la un calculator neuronal.[1]