Saturday, April 09, 2005

Generatii de calculatoare

Diana Colibaba 29 martie 2005
Anul III, gr. I A




Generatii de calculatoare



In decurs de peste un secol, se poate observa dezvoltarea surprinzatoare a masinilor de calcul de la o simpla idee transformata in ceea ce vedem astazi – V.I.P.-urile lumii informatiei.
Evolutia masinilor de calcul porneste din secolul al XVII-lea cu Schickard (1624), Pascal (1642) si Leibnitz (1672). Urmatoarea etapa a fost gandita si aproape realizata de catre matematicianul si actuarul Charles Babbage (1792-1871) care a inteles perfect care trebuie sa fie planul unei masini complexe, capabila nu numai sa combine numerele conform uneia din cele patru operatii aritmetice, ci sa asocieze aceste operatii intr-o ordine data corespunzatoare unei formule. El a propus în anul 1830 o „Maşină Analitică”, care a anticipat în mod fascinant structura calculatoarelor actuale. Ideile sale au devansat cu peste 100 de ani posibilităţiile tehnologice ale vremii sale. Înaintea a mai fost încercări în acest domeniu ale lui Leibnitz şi Pascal. Datorita unei subventii, Babbage a reusit sa fabrice diferitele piese ale unei astfel de masini, care nu au fost niciodata reunite desi a fost prezentata la Expozitia universala de la Londra (1851). O astfel de masina nu ar fi functionat niciodata corect datorita dificultatilor mecanice, independente de conceptia sa. In 1879, Lord Kelvin a aratat posibilitatea de a rezolva ecuatii diferentiale cu o masina, schema fiind reluata in 1923 de L. Wainwright. In 19925 V. Bush a fabricat un prim analizator diferential, iar in 1942 i-a incorporat un program de calcul.
Următorul moment de referinţă este anul 1937, când Howard Aiken, de la Universitatea Harvard a propus „Calculatorul cu secvenţă de Comandă Automată”, bazat pe o combinaţie între ideile lui Babbage şi calculatoarele elertromecanice, produse de firma IBM. Construcţia acestuia a început în anul 1939 şi s-a terminat în anul 1944, fiind denumit Mark I . El a fost în principal primul calculator electromecanic, fiind alcătuit din comutatoare şi relee.
Înlocuirea releelor cu tuburi electronice a constituit un important pas înainte. Rezultatul a fost concretizat în calculatorul ENIAC ( Electronic Numerical Integrator And Computer ), primul calculator electronic digital. El conţine circa 18.000 de tuburi electronice şi executa 5.000 de adunări pe secundă, având o memorie de 20 de numere reprezentate în zecimal. Programarea sa se realiza prin poziţionarea a circa 6.000 de comutatoare, cu mai multe poziţii. O semnificaţie aparte o are faptul că în arhitectura calculatoarelor Mark I şi ENIAC, intrau mai multe elemente de calcul, ce lucrau în paralel la o problemă comună, fiind dirijate de o singură unitate de comandă . Această soluţie a fost aleasă datorită vitezei reduse a fiecărei unităţi de calcul, în parte. La versiunea următoare s-a renunţat la această structură paralelă de calcul, deoarece s-a considerat că viteza unei unităţi de calcul, realizată cu circuite electronice, este suficientă. Soluţia prelucrării paralele a fost reluată ulterior după anii 80’ pentru mărirea performanţelor unui sistem de calcul. Astfel în 1996 Firma INTEL a realizat un supercalculator ce foloseşte peste 7000 de procesoare PENTIUM utilizând tehnica „de calcul masiv”. Aceasta tehnica este utilizata pentru simularea testelor nucleare, în cercetări genetice, spaţiale, meteorologice.
Numeratia binara, recomandata inca din 1938 de L. Coffignal, apare la timp pentru a simplifica operatiile ce se efectueaza in interiorul unei masini de calcul. Ea se putea realiza prin intermediul oricarui dispozitiv de comutatie.
In 1936 A.M. Turing a definit ceea ce se numesc “masinile Turing’, ceea ce nu reprezinta aparate efectiv construite, ci modelul abstract general si general al tuturor masinilor pentru tratarea informatiei. Turing a aratat intai ca masinile sale puteau sa apartina la tipuri diferite, dar formand o multime numarabila, astfel incat multimea lor desi infinita, sa nu formeze decat o mica parte din multimea numerelor intregi. El a mai stabilit ca este posibil realizarea unei “masini Turing”universala capabila sa ia aceleasi decizii ca si o masina Turing particulara oarecare, a carei structura si instructiuni ar putea fi totdeauna descrise cu ajutorul codului si sintaxei masinii universale.
In acelasi an 1936, Church si Kleene, Kalmar si Post au furnizat raspunsuri echivalente cu cel al lui Turing, desi au fost prezentate intr-un mod care nu scotea in evidenta posibilitatea de a aplica aceste idei la rezolvarea problemei gandirii automate. Aceasta problema a fost rezolvata inca din 1934 cand Godel H. reprezenta culmea cea mai inalta a istoriei geometriilor neeuclidiene si a axiomatizarii matematici la care ele au condus.
Matematicienii erau indispensabili pentru a conduce masinile de calcul urias si pentru a concepe altele mai perfectionate.
Masinile pentru demonstrarea teoremelor matematice, reprezinta un amestec de deductiv cu inductiv, teoriile acestor masini fiind puse de Newell, Shaw, Simon, Minsky (1961), J. Pitrat (1962).
La realizarea primelor calculatoare, în calitate de consultant al echipei, a lucrat şi matematicianul John von Neumann, unul dintre matematicienii importanţi ai secolului al XX-lea. Lui J. von Neumann i se datoreaza ideea inregistrarii nu numai a datelor numerice ale unei probleme, ci si a instructiunilor care sa permita rezolvarea ei: trierea datelor operatii aritmetice sau comparatii, punerea in rezerva provizorie a unor rezultate partiale. De altfel, la realizarea calculatorului EDVAC ( primul calculator cu circuite electronice ) el a stabilit cinci caracteristii principale ale calculatorului cu program memorat :

Trebuie să posede un mediu de intrare, prin intermediul căruia să se poată introduce un număr nelimitat de operanzi şi instrucţiuni .
Trebuie să posede o memorie, din care să se citească instrucţiunile şi operanzii şi în care să se poată memora rezultatele.
Trebuie să posede o secţiune de calcul, capabilă să efectueze operaţii aritmetice şi logice, asupra operanzilor din memorie.
Trebuie de asemenea să posede un mediu de ieşire, prin intermediul căruia un număr nelimitat de rezultate să poată fi obţinute de către utilizator.
Trebuie să aibă o unitate de comandă , capabilă să interpreteze instrucţiunile obţinute din memorie şi capabilă să selecteze diferite moduri de desfăşurare a activităţii calculatorului pe baza rezultatelor calculelor.

Primul calculator comercializat a fost UNIVAC (UNIversal Automatic Computer ) realizat pe structura calculatorului EDVAC, în anul 1951. În anii următori, dezvoltarea calculatoarelor a devenit explozivă, la mai puţin de zece ani intervenind câte o schimbare care a fost interpretată drept apariţia unei noi generaţii de calculatoare. Ele pot fi clasificate astfel :

Generatia intai (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 a doua (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. Calculatoarele românesti ale generatiei a doua sunt DACICC-200, CIFA 101 si 102.
Generatia a treia (1964-1981). 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ă. 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 a patra (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. 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. 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 a cincea (1990-pana in prezent) 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. 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 a sasea 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.














Bibliografie:

Lungu Vasile, Programarea în limbaj de asamblare, Editura Teora, 2001

Tatou Renee, Istoria Stiintelor Ed., CHIP, ianuarie 2003

0 Comments:

Post a Comment

<< Home