MAESTRI AI INGINERIEI CALCULATOARELOR Pagini de istorie – (Compilate de) Lucian N. Vintan
Data: 16-31 august 2007
La 12 mai 1941, ing. Konrad Zuse face la Berlin o demonstratie de lucru a calculatorului Z3 proiectat de catre el. Calculatorul este considerat primul calculator automat, programabil in mod flexibil si deci universal (citea programele de pe banda de celuloid perforata). Totusi, nu avea instructiuni de salt conditionat si deci posibilitatea buclelor de program. Era binar si lucra cu numere in virgula mobila pe 22 biti. Continea cca 2000 de relee electromagnetice si avea o frecventa de tact de 5-10 Hz [Zuse]. Fara sa stie de celebra teza de masterat a lui Claude Shannon de la MIT, intitulata A Symbolic Analysis of Relay and Switching Circuits (1937), Zuse mapeaza si el algebra logica a lui Boole si aritmetica binara in circuite logice cu relee. Z3 a fost distrus in bombardamentele din Berlin in anul 1944. O copie a lui Z3, construita ulterior chiar de catre Zuse, se afla la Muzeul Tehnicii din München. Inca din anul 1936 Zuse a trimis spre aprobare un patent in care se explica ideea programului memorat. Brevetul a fost respins!
In perioada 1939 – 1942, dr. John Vincent Atanasoff de la Iowa State College, SUA, construieste impreuna cu fostul sau student Clifford Berry, probabil primul calculator (partial) electronic, binar, numit ABC (Atanasoff Berry Computer). Proiectarea lui incepe inca din anul 1937. Nu a fost niciodata complet functional. Totusi, a fost primul calculator partial electronic (comanda electromecanica, calcul electronic) care a implementat reprezentarea binara a datelor (50 biti in virgula fixa) si care a separat memoria de partea computationala. Avea o memorie regenerabila pe baza de condensatori (o precursoare a DRAM-urilor de azi), functiona cu un tact de frecventa retelei de alimentare (60 Hz) si efectua 30 de adunari / scaderi pe secunda [Atanasoff]. Exploata paralelismul datelor in rezolvarea unor ecuatii liniare. Totusi nu avea implementata ideea programului memorat, fiind un calculator dedicat. In iunie 1941 Mauchly examineaza calculatorul, ulterior prilej de controverse asupra adevaratului parinte al ideii de calculator electronic digital.
In decembrie 1943 (prototipul)/februarie 1944 (functionare), inginerul britanic Tommy Flowers si colectivul sau proiecteaza si construiesc calculatorul electronic binar (dedicat) numit Colossus, utilizat la decriptarea de catre britanici a mesajelor germanilor pe timpul razboiului. Era implementat cu tuburi electronice. Era partial reprogramabil prin modificari ale comutatoarelor hardware [Colossus]. A fost primul calculator care a implementat in hardware registre de deplasare si retele sistolice utilizate pentru decodari simultane.
In 1944, Harvard Mark I (initial s-a numit Automatic Sequence Controlled Calculator – ASCC) a fost primul calculator numeric automat din SUA, realizat cu relee si comutatoare (contactoare). Citea programele de pe banda perforata, iar datele le stoca in registre (de aici termenul de memorie Harvard, adica avand spatii distincte pentru instructiuni si date). A fost proiectat de catre fizicianul dr. Howard Hathaway Aiken de la Harvard, cu finantare IBM. (A fost construit efectiv la IBM si trimis la Harvard in februarie 1944.) Nu avea salturi conditionate, ceea ce implica programe lungi. Lucra cu numere zecimale pe 23 de digiti si realiza 3 adunari/scaderi pe secunda [Mark].
In 1943 – 1946, fizicianul dr. J. Presper Eckert si inginerul John Mauchly (Universitatea din Pennsylvania, Moore School) au initiat constructia primului calculator electronic pe scara larga, de uz general, complet operational, numit ENIAC (Electronic Numerical Integrator and Calculator), finantat de armata SUA, utilizat la calculul tabelelor balistice de artilerie, proiectarea bombei cu hidrogen etc. La proiect au mai participat si alti ingineri straluciti [ENIAC]. Avea cca 18000 de tuburi electronice, 20 de registre pe 10 digiti. O adunare dura 200 ?s (?5000 de adunari/s, fata de cateva sute de milioane azi, pe calculatoare personale!), avea instructiuni de salt conditionat, consuma 150 kW! Avea unitati speciale pentru adunare, inmultire, impartire, extragere radical etc. Era partial programabil prin switch-uri manuale, datele se citeau de pe cartele perforate IBM, iar rezultatele se tipareau [Hennessy]. Performante: 5000 de adunari pe secunda, 385 de inmultiri pe secunda etc. Constructia sa a fost initiata prin proiectul secret Project PX intre armata SUA si Universitatea Pennsylvania (5 iunie 1943). Primele procesari s-au realizat inca din 1944.
La 30 iunie 1945 se publica celebrul raport al lui John von Neumann intitulat First Draft of a Report on the EDVAC (EDVAC – Electronic Discrete Variable Automatic Computer), Moore School of Electrical Engineering, care continea 43 de pagini. John von Neumann – stralucit matematician – este atras inca din 1944 la proiectul ENIAC. Este prima lucrare care defineste procesarea programelor intr-un calculator electronic digital (binary digit = bit). Printre altele, lucrarea contine: structura unui calculator de uz general (all purpose) cu programe memorate (idee noua) pe baza a 5 module interconectate (Computer Arithmetic, Central Control, Memory – stocheaza programe si date, Input si Output), proiectate sa proceseze sincron, in special probleme matematice de interes (sisteme neliniare de ecuatii diferentiale, sortari, probleme statistice etc.), elaborarea aritmeticii binare si a circuitelor aferente (cu exploatarea paralelismelor aritmetice), transferul si procesarea informatiilor, modelate detaliat pe baza analogiei cu neuronii artificiali ai lui W. J. MacCulloch si W. Pitts (E-elements; intrari excitatoare – 1, inhibatoare – 0 si iesire), definirea tipurilor de instructiuni masina (orders) si a actiunilor acestora asupra modulelor componente [Neumann]. Von Neumann, Mauchly, Eckert si Herman Goldstine au adus contributii esentiale in conceperea acestui memoriu (calculator electronic cu programe memorate), care a fertilizat domeniul calculatoarelor pe scara larga. EDVAC devine operational abia in 1952.
In 1946, Maurice V. Wilkes (Univ. Cambridge) participa la Moore School la niste cursuri de calculatoare. Intr-o noapte citeste raportul lui von Neumann asupra lui EDVAC (nu existau facilitati de fotocopiere si a trebuit sa-l returneze a doua zi.) Reintors la Cambridge, construieste calculatorul EDSAC (Electronic Delay Storage Automatic Computer), definitivat in mai 1949 – primul calculator electronic complet echipat, operational, cu programe memorate (un mic prototip, Manchester Small Scale Experimental Machine, s-a realizat totusi anterior, la Universitatea Manchester in 1948, sub conducerea prof. F. Williams). Alte inovatii ale lui Wilkes: microprogramarea ca tehnica de proiectare a unitatii de comanda (1951, aplicata de IBM abia la inceputul anilor ’60), bibliotecile de programe si macroinstructiunile, memoriile cache (primul articol in 1965), sistemele de operare cu time-sharing si acces controlat la resurse etc. Wilkes a obtinut Premiul Turing, cel mai prestigios in stiinta calculatoarelor.
In 1946, Arthur Burks, H. Goldstine, J. V. Neumann publica lucrarea intitulata Preliminary discussions of the logical design of an electronic computer, Institute for Advanced Study (IAS), Princeton University. Raportul acesta a fost unul extraordinar; din el deriva marea majoritate a conceptelor moderne de arhitectura a calculatoarelor. Raportul conduce la construirea calculatorului IAS de catre Julian Bigelow (coordonator von Neumann), la Princeton. Avea 1024x40 biti de memorie si era de 10 ori mai rapid decat ENIAC! Calculatorul IAS a stat la baza primului calculator comercial al IBM, celebrul IBM-701 (1952).
In august 1949, Eckert-Mauchly Computer Corporation produce primul calculator electronic comercial numit BINAC, pentru o companie, Remington Rand, care il cumpara in 1950. In iunie 1951 apare UNIVAC I, primul calculator electronic comercial de mare succes, derivat din BINAC. Costa 250 000 $ si s-au construit 48 de sisteme!
In 1957, ing. Victor Toma (n. 1922, viitor membru de onoare al Academiei Romane) creeaza primul calculator electronic digital din Romania (CIFA-1, cca 1500 de tuburi electronice si cilindru magnetic de memorie, realizat la Institutul de Fizica al Academiei, Magurele). Romania este a 8-a tara din lume care construieste un asemenea calculator si a doua dintre fostele tari socialiste, dupa fosta URSS [Draganescu]. Au urmat: CIFA-2 cu 800 de tuburi electronice (1959), CIFA-3 pentru Centrul de calcul al Universitatii din Bucuresti (1961), CIFA-4 (1962).
In 1959 – 1961, Iosif Kaufmann si ing. Wilhelm Lowenfeld construiesc MECIPT-1, primul calculator conceput si realizat intr-o universitate romaneasca (Institutul Politehnic din Timisoara). Avea peste 2000 de tuburi electronice, 20 000 de rezistori si condensatori, peste 30 km de conductori, registre pe 31 biti, memorie rezidenta pe tambur magnetic – 1024 x 31 biti (unica), 50 de operatii pe secunda, programare in cod masina. Codul instructiunii era pe 5 biti (32 instructiuni), iar adresa pe 10 biti. Consum: 10 kW. Microprogramat (sub influenta lucrarilor lui M. V. Wilkes): scaderea, inmultirea, impartirea erau microprogramate. Prof. A. Geier sustinea deja cursuri de programare (pentru cadre didactice), inclusiv pe MECIPT-1 [Farcas].
Aplicatii realizate pe MECIPT-1 [Farcas]:
• Proiectare cupola pavilion expozitional Bucuresti, actual Romexpo (acad. D. Mateescu, programator ing. V. Baltac)
• Proiectare baraj Vidraru (18 zile in loc de 9 luni manual)
• Simulare hidrocentrala, dimensionare retea apa Arad, calcule rezistenta, controlul statistic al calitatii productiei etc.
• 1964, program de simulare a unor retele neuronale (D. Farcas)
• 1965 – 1967, simulator de automate autoinstruibile (D. Farcas, sub influenta prof. Kuseliov de la Moscova)
• Translator Algol 60 – limbaj masina (1966)
• Practica studenti (inclusiv unii din Bucuresti, Cluj, Iasi)
In 1961 este realizat IBM 7030, primul calculator cu procesare pipeline a instructiunilor (4 niveluri). Alte inovatii arhitecturale: multiprogramare, protectia memoriei, intreruperi, aducere anticipata a instructiunilor, memorii cu acces intretesut (pentru procesari vectoriale). A fost cel mai rapid calculator din lume intre 1961-1964.
In 1962 – 1963, prof. Al. Rogojan de la I. P. Timisoara sustine un curs general despre calculatoare electronice digitale. Din 1963, Kaufmann, Lowenfeld, V. Baltac, D. Farcas sustin cursuri despre MECIPT. In 1964 se infiinteaza la I. P. Timisoara o specializare de calculatoare in cadrul Sectiei de electromecanica, anul 4.
In 1963 apare calculatorul DACICC-1, dezvoltat la Institutul de Calcul din Cluj inca din anul 1959 (coordonator acad. Tiberiu Popoviciu; in 1959 s-a construit tot aici un calculator cu relee, numit MARICA). Folosea atat tuburi cat si tranzistoare. Memoriile erau din ferite. Printre inginerii care l-au construit se numara: Gh. Farkas, M. Bocu, Azzola Bruno. In 1968 s-a lansat DACICC 200, complet tranzistorizat [DACICC].
In 1964 este realizat CET-500 (Calculatorul Electronic Tranzistorizat proiectat de catre ing. V. Toma, primul complet tranzistorizat din tara). In 1960, in SUA, companiile IBM si CDC lanseaza productia de serie a primelor calculatoare tranzistorizate [Anonymous]. A urmat CET-501, cu performante superioare in privinta vitezei, a capacitatii memoriei operative, a setului de instructiuni si a echipamentelor periferice folosite (1966). Semnificativa pentru folosirea acestor calculatoare este si lucrarea intitulata Colectie de programe pentru calculatorul CET-500, Editura Academiei, 1967, prefatata de catre acad. Miron Nicolescu, presedintele Academiei Romane la acea vreme. Lucrarea de 850 de pagini a fost elaborata de catre 41 de autori si prezinta probleme rezolvate efectiv din 15 domenii tehnico-stiintifice [Toma].
In 1964 se lanseaza supercomputerul CDC 6600 (pipeline, unitati multiple de executie, vectorial). Printre proiectanti se numara Thornton si Cray.
In 1966 apare calculatorul IBM 360/91, primul calculator cu procesari multiple si out of order a instructiunilor. Desi nu avea implementata predictia dinamica a branch-urilor si deci posibilitatea de executii speculative, arhitectura sa era asemanatoare cu cea a microprocesoarelor Pentium III, IV. Printre proiectanti amintim pe Michael Flynn (arhitecturi paralele, aritmetica binara) si R. Tomasulo, celebru pentru algoritmul de procesare a instructiunilor care-i poarta numele [Vintan]. Ambii cercetatori sunt laureati ai prestigiosului Premiu Eckert Mauchly, acordat pentru excelenta in arhitectura calculatoarelor de ACM.
In 1965 apare MECIPT-2 (tranzistorizat, memorie pe inele de ferita, cuvinte instructiune pe 40 de biti). MECIPT-3 n-a mai fost realizat.
In 1966 se infiinteaza, tot la I. P. Timisoara, prima specializare de calculatoare electronice in cadrul Facultatii de Electrotehnica (prestigiul MECIPT a fost esential). Prof. Rogojan obtine dreptul de conducere de doctorate in calculatoare. Ing. V. Baltac obtine o specializare de 10 luni la Universitatea Cambridge, in cadrul celebrului Mathematical Laboratory din Cambridge, coordonat de catre prof. Maurice V. Wilkes; aici se lucra pe supercalculatorul ATLAS, considerat primul din lume [Baltac]. Era tranzistorizat si a devenit complet operational in 1962. Implementa memorie virtuala prin paginare si procesare pipeline a instructiunilor. Avea un sistem de operare cu time sharing, dezvoltat la Cambridge.
In 1971 este realizat primul microprocesor comercial (peste 2000 de tranzistori per chip), care a facilitat intrarea intr-o noua era a procesarii informatiei (Intel Co, dr. Marcian Edward „Ted” Hoff Jr., 4 biti).
In 1972, prof. Alexandru Rogojan finalizeaza calculatorul CETA, utilizat si in procesul didactic. Prof. Rogojan publica un curs de „calculatoare numerice“ (3 volume) in care elaboreaza o metoda simpla si sistematica de proiectare a unitatii de comanda cablate, cu specificarea comenzilor pe faze (cicli) si impulsuri de „orologiu“ (tact), functie de starea anumitor semnale de conditie.
In 1976 se lanseaza supercomputerul Cray 1, de departe cel mai performant din lume la acea vreme. Seymour Roger Cray (28 septembrie 1925 – 5 octombrie 1996) a fost un mare pionier al supercomputerelor, autor al unor inovatii arhitecturale de notorietate.
In 1980 apare primul calculator RISC (Reduced Instruction Set Computer), numit IBM 801, gandit de catre dr. John Cocke. Ideea este dezvoltata ulterior de grupul profesorului David Patterson de la Berkeley, care construieste primul microprocesor RISC in 1981 (lui Patterson i se datoreaza, ulterior, si structurile RAID – Redundant Arrays of Inexpensive Disks). La inceputul anilor 1980, dr. John Cocke de la IBM lanseaza ideea executiilor paralele ale instructiunilor (Instruction Level Parallelism) si termenul de superscalar. S-a implementat o masina superscalara cu doua instructiuni in paralel (Cheetah) si, respectiv, cu 4 (America). Apoi IBM lanseaza sistemul IBM RS/6000, un mare succes comercial si tehnic. Cocke a obtinut Premiul Turing, cel mai prestigios posibil in stiinta si ingineria calculatoarelor [Hennessy]. A adus contributii fertile si in dezvoltarea tehnicilor de compilare optimizata a programelor in vederea minimizarii timpului de executie. In legatura cu procesorul superscalar America, in celebra carte de arhitectura calculatoarelor a lui J. Hennessy si D. Patterson [Hennessy] exista urmatorul motto: Who’s first? America. Who’s second? Sir, there is no second!
In 1995 este lansat supercomputerul Cray 4: 64 de procesoare vectoriale de tip vector-registru (SIMD) operand la un tact de 1 GHz. Avea cativa GB de memorie interna si era realizat in tehnologie GaAs (arsenura de galiu). Avea performante de 32 Gflops. Intrebat ce CAD-uri a folosit la proiectarea lui Cray-1, a spus ca a folosit trei creioane si niste topuri de hartie. Cand i s-a spus ca cei de la Apple au achizitionat un Cray pentru proiectarea viitorului calculator personal Apple Macintosh, a replicat ca el si-a cumparat de curand un Macintosh ca sa proiecteze viitorul Cray. Influenta supercomputerelor Cray apare chiar si in cazul recentului IBM BlueGene (2005), care contine 65536 de noduri de procesare conectate intr-o topologie de tip retea 3 D toroidala. Fiecare nod este interconectat la alte 6 noduri situate simetric pe directia sistemului ortogonal XYZ centrat in respectivul nod. Un nod contine 80 de procesoare multithread cu memorii DRAM implementate on chip (conceptul arhitectural PIM – Processing In Memory). Aceste 80 de procesoare sunt interconectate printr-o retea matriciala de tip crossbar. Supercomputerul contine in plus 1024 de noduri de intrare-iesire si atinge performante de cca 207 Tflops pe programe numerice! Bariera de 1 Pentaflop este aproape de a fi atinsa...La cele anterior enumerate succint, as trage o singura concluzie, situata poate in usor dezacord cu opinia majoritara de azi: ideile arhitecturale importante in calculatoare sunt, totusi, relativ vechi.
Bibliografie selectiva
[Anonymous] Anonymous, History of Computer Developments in Romania, IEEE Annals of the History of Computing, July-September 1999 (Vol. 21, No. 3), pg. 58-60
[Atanasoff] http://en.wikipedia.org/wiki/Atanasoff-Berry_Computer, o istorie a calculatorului ABC al lui V. Atanasoff
[Baltac] Baltac V., MECIPT – Masina electronica de calcul a Institutului Politehnic din Timisoara. Evocari si documente, Bucuresti, octombrie 2005 (PDF)
[Colossus] http://en.wikipedia.org/wiki/Colossus_computer, o istorie a calculatorului Colossus
[DACICC] http://www.ieseanul.ro/articol/ziar/iasi/stramosul-pentium-ului/8286/268/print/, o istorie a calculatoarelor DACICC
[Draganescu] Draganescu M., Perspectivele societatii cunoasterii in Romania, e-preprint, PDF
[ENIAC] http://en.wikipedia.org/wiki/ENIAC, o istorie a calculatorului ENIAC
[Farcas] Farcas D. D., MECIPT o istorie subiectiva, Bucuresti, aprilie 2005 (PDF)
[Hennessy] Hennessy, J. L., Patterson, D. A., Computer Architecture: A Quantitative Approach, Morgan Kaufmann (Elsevier Sience), 3-rd Edition, 2003
[Mark] http://en.wikipedia.org/wiki/Harvard_Mark_I, o istorie a calculatorului Mark I
[Neumann] Von Neumann J., First Draft of a Report on the EDVAC, Moore School of Electrical Engineering, University of Pennsylvania, June 30, 1945
[Toma] http://www.academiaromana.ro/sectii/sectia14_informatica/doc/rez_vtoma.doc, un scurt CV al ing. V. Toma
[Vintan] Vintan Lucian, Prediction Techniques in Advanced Computing Architectures (in limba engleza), Matrix Rom Publishing House, Bucharest, ISBN 978-973-755-137-5, 2007
[Zuse] http://en.wikipedia.org/wiki/Z3, o istorie a calculatorului Z3 construit de catre Konrad Zuse