marți, 8 aprilie 2008

Generatii de calculatoare

Grigore Moisil spunea: "Calculatorul nu rezolva probleme, cum se spune. Problemele le rezolva omul, dar in rezolvarea lor omul se serveste nu numai de toc si hartie, ci si de calculator", subliniind faptul ca un calculator este un instrument de lucru, nu o "inteligenta" de sine statatoare. De altfel, acest principiu nu s-a schimbat nici chiar in noul domeniu al inteligentei artificiale, unde calculatorul poate fi facut sa "invete" lucruri noi pe baza anumitor informatii furnizate, impreuna cu niste reguli de deductie, dar in ultima instanta omul este cel care a implementat aceste mecanisme. Asadar, un calculator este (deocamdata) atat de "inteligent" cat il facem noi sa fie.
Lumea de astazi este invadata de produsele unui domeniu relativ nou, foarte dinamic si cu implicatii majore in toate domeniile activitatii umane. Este vorba de stiinta si ingineria calculatoarelor, care preocupa, intr-o masura necunoscuta pana In prezent de nici un alt domeniu, atat pe specialisti, cat si pe utilizatorii rezultatelor domeniului. Lumea doreste sa stie mai multe despre sistemele de calcul, care sunt posibilitatile lor, la ce pot fi folosite si la ce nu. Toti cei care au butonat macar odataun calculator cunosc, de exemplu, jocurile, mai mult sau mai putin amuzante, foarte usor de invatat, deci la indemana oricui. Totusi, foarte putini cunosc informatii despre aparitia calculatorului in lume.
Calculatoarele electronice sunt urmasele unor dispozitive de calcul mai rudimentare dar foarte ingenioase, nascute din pasiunea si ambitia oamenilor de a efectua calcule din ce in ce mai precise. Paradoxal insa, atat cei pasionati de calcule, intre care amintim ilustrele nume ale lui Ampere si Gauss, cat si cei carora le displaceau calculele (francezul de Condorcet, de exemplu, a impartit un premiu al Academiei din Berlin în 1774 cu astronomul Tempelhoff fiindca avea oroare de calcule) erau interesati de dezvoltarea dispozitivelor de calcul automate. Primele probleme de calcul erau exclusiv numerice, dar calculatoarele de astazi pot solutiona probleme complicate, prelucrand informatii complexe, de tipuri diverse.
Momentul initial al istoriei calculatoarelor este, de obicei legat de numele matematicianului englez Charles Babbage. El a propus in anul 1830 o Masina Analitica care a anticipat in mod fascinant structura calculatoarelor actuale. Ideile sale au devansat cu peste 100 de ani posibilitatiile tehnologice ale vremii sale. Inaintea au mai fost incercari in acest domeniu ale lui Leibnitz si Pascal (sec al XVII-lea) .
Următorul moment de referintă este anul 1937, cand Howard Aiken, de la Universitatea Harvard a propus Calculatorul cu secventa de Comanda Automata, bazat pe o combinatie intre ideile lui Babbage si calculatoarele elertromecanice, produse de firma IBM. Constructia acestuia a inceput in anul 1939 si s-a terminat in anul 1944, fiind denumit Mark I . El a fost in principal primul calculator electromecanic, fiind alcatuit din comutatoare si relee.
Inlocuirea releelor cu tuburi electronice a constituit un important pas inainte. Rezultatul a fost concretizat in calculatorul ENIAC ( Electronic Numerical Integrator And Computer ), primul calculator electronic digital. El contine circa 18.000 de tuburi electronice si executa 5.000 de adunari pe secunda, avand o memorie de 20 de numere reprezentate in zecimal. Programarea sa se realiza prin pozitionarea a circa 6.000 de comutatoare, cu mai multe pozitii. O semnificatie aparte o are faptul ca in arhitectura calculatoarelor Mark I si ENIAC, intrau mai multe elemente de calcul, ce lucrau in paralel la o problema comuna, fiind dirijate de o singura unitate de comanda . Aceasta solutie a fost aleasa datorita vitezei reduse a fiecarei unitati de calcul, in parte. La versiunea urmatoare s-a renuntat la aceasta structura paralela de calcul, deoarece s-a considerat ca viteza unei unităti de calcul, realizata cu circuite electronice, este suficienta . Solutia prelucrarii paralele a fost reluata ulterior dupa anii 80’ pentru marirea performantelor unui sistem de calcul; astfel in 1996 Firma INTEL a realizat un supercalculator ce foloseste peste 7000 de procesoare PENTIUM utilizand tehnica „de calcul masiv” (utilizat pentru simularea testelor nucleare, in cercetari genetice, spatiale, meteorologice).
De remarcat ca la realizarea primelor calculatoare, in calitate de consultant al echipei, a lucrat si matematicianul John von Neumann, unul dintre matematicienii importanti ai secolului XX. De altfel, la realizarea calculatorului EDVAC ( primul calculator cu circuite electronice ) el a stabilit 5 caracteristii principale ale calculatorului cu program memorat :

· Trebuie sa posede un mediu de intrare, prin intermediul caruia sa se poata introduce un numar nelimitat de operanzi si instructiuni .
· Trebuie sa posede o memorie, din care sa se citeasca instructiunile si operanzii si in care sa se poata memora rezultatele.
· Trebuie sa posede o sectiune de calcul, capabila sa efectueze operatii aritmetice si logice, asupra operanzilor din memorie.
· Trebuie de asemenea sa posede un mediu de iesire, prin intermediul caruia un numar nelimitat de rezultate sa poata fi obtinute de catre utilizator.
· Trebuie sa aiba o unitate de comanda , capabila sa interpreteze instructiunile aobtinute din memorie si capabila sa selecteze diferite moduri de desfasurare a activitatii calculatorului pe baza rezultatelor calculelor .
Primul calculator comercializat a fost UNIVAC (UNIversal Automatic Computer ) realizat pe structura calculatorului EDVAC, in anul 1951. In anii urmatori, dezvoltarea calculatoarelor a devenit exploziva, la mai putin de zece ani intervenind cate o schimbare care a fost interpretata drept aparitia unei noi generatii de calculatoare. Se poate remarca faptul cã dezvoltarea caracteristicilor fizice si performantelor calculatoarelor a fost extraordinar de dinamica; de fapt domeniul calculatoarelor, privit atat din punctul de vedere hard, cat si soft, a avut cea mai rapida evolutie dintre industriile si tehnologiile secolul nostru. Primele sisteme electronice de calcul, de dimensiuni considerabile, erau departe de performantele calculatoarelor moderne si exista toate motivele sa credem ca aceasta 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 mica: 50-30.000 operatii pe secunda iar memoria interna - 2KO. Aceste calculatoare aveau dimensiuni foarte mari si degajau o cantitate de caldura destul de mare, deci nu ofereau siguranta perfecta in 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, cantarind 30t.
Calulatoare : ENIAC, UNIVAC, IBM ;
Este de remarcat faptul ca informatica romaneasca a demarat cu cateva realizari notabile, inclusiv din punct de vedere tehnic. Dintre primele calculatoare romanesti amintim: Calculatorul Institutului de Fizica Atomica din Bucuresti (CIFA), Masina Electronica 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 inalt (Fortran, Cobol) prin existenta unor programe care le traduc in limbaj masina (compilatoare). Apare un paralelism intre activitatea unitatii de comanda si operatiile de intrare-iesire (dupa ce unitatea de comanda initiaza o operatie de intrare-iesire, controlul acesteia va fi preluat de un procesor specializat, ceea ce creste eficienta unitatii de comanda). In memoria calculatorului se pot afla mai multe programe - multiprogramare - desi la un moment dat se executa o singura instructiune.
Calculatoare : IBM 7040, NCR501
Dintre calculatoarele romanesti ale generatiei a doua, amintim DACICC-200, CIFA 101 si 102.

Generatia 3 (1964-1971) Principala tehnologie hard era reprezentata de circuitele integrate (circuite miniaturizate cu functii complexe), memoriile interne ale calculatoarelor fiind alcatuite din semiconductoare. Apar discurile magnetice ca suporturi de memorie externa 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 licenta franceza.
Cresc performantele circuitelor integrate si se standardizeaza. Apar circuitele cu integrare slaba (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 secunda iar memoria interna ajunge la 2MO. Se folosesc limbaje de nivel inalt (Pascal, Lisp).

Generatia 4 (1982-1989) Se folosesc circuite integrate pe scara larga (LSI – Large Scale of Integration) si foarte larga (VLSI – Very Large scale of Integration) (echivalentul a 50.000 de tranzistoare pe chip), memoria interna creste la 8MO iar viteza de lucru - la 30.000.000 de operatii pe secunda. Apar discurile optice si o noua directie in programare: programarea orientata pe obiecte.
Calculatoarele generatiilor I-IV respecta principiile arhitecturii clasice (von Neumann) si au fost construite pentru a realiza in general operatii numerice. Calculele matematice complicate, dupa algoritmi complecsi care sa furnizeze rezultate exacte (de exemplu integrare, limite, descompuneri de polinoame, serii), numite calcule simbolice, au aparut doar in ultimele decenii si nu au fost favorizate de constructia calculatoarelor, ci de un soft puternic, bazat pe algoritmi performanti.
Caculatoare : INDEPENDENT, CORAL, IBM (apar mai multe versiuni)
Pana in jurul anilor '80, evolutia calculatoarelor a fost preponderent bazata pe salturi tehnologice. Constatandu-se insa ca majoritatea programelor nu folosesc in intregime posibilitatile calculatoarelor dintr-o generatie, s-a incercat cresterea performantelor activitatii de creare a soft-ului, urmarind principiul evident ca activitatea umana nu se bazeaza pe prelucrari de date, ci de cunostinte intre care apar operatii logice de deductie. Ulterior, se va pune chiar problema gasirii unor arhitecturi performante care sa sustina noile concepte si cerinte de prelucrare a cunostintelor. Arhitectura urmatoarei generatii de calculatoare nu va mai respecta in mod necesar principiile von Neumann.

Generatia 5 (1990-) este generatia inteligentei artificiale, fiind in mare parte rezultatul proiectului japonez de cercetare pentru noua generatie de calculatoare. Principalele preocupari ale cercetatorilor din domeniul inteligentei artificiale se suprapun in 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), in conditiile in care aceste prelucrari devin preponderente in majoritatea domeniilor stiintifice. Din punct de vedere tehnic, se folosesc circuite VLSI (echivalentul a peste 1 milion de tranzistoare pe chip), atingandu-se o viteza de lucru foarte mare, pentru care apare o noua unitate de masura: 1LIPS (Logical Inferences Per Second) = 1000 de operatii pe secunda). Astfel, viteza noilor calculatoare se estimeaza la 100 M LIPS pânã la 1 G LIPS. Apare programarea logica, bazata pe implementarea unor mecanisme de deductie pornind de la anumite "axiome" cunoscute, al carei reprezentant este limbajul Prolog.


Bibliografie :
Programarea in limbaj de asamblare - Vasile Lungu, Editura Teora, 2001
http://www.imst.ro/
Era digitala – Nicholas Negroponte, editura All, 1999

Niciun comentariu: