ENIAC

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Dr. Jon Nese (stânga) şi echipa sa (dreapta) programează ENIAC în clădirea BRL 328 (fotografie a armatei SUA).
Codificatoarele Betty Jean Jennings (stânga) și Fran Bilas (dreapta) operează panoul principal de control al ENIAC la Școala Moore de Inginerie Electrică. (fotografie a armatei americane din arhivele ARL Technical Library)

ENIAC, prescurtat de la Electronic Numerical Integrator And Computer[1][2] (Calculator și Integrator Electronic Numeric), a fost primul calculator electronic de uz general. Era un calculator numeric (digital), Turing-complet, capabil de a fi reprogramat pentru a rezolva o gamă largă de probleme calculatorii.[3] ENIAC a fost proiectat și construit pentru a calculat tabele balistice pentru laboratorul de cercetări balistice armatei americane.

Când a fost anunțată terminarea sa în 1946, presa l-a etichetat drept un „creier uriaș”. Avea o viteză de calcul de o mie de ori mai mari decât mașinile electromecanice, salt în domeniul puterii de calcul neegalat de atunci de nicio mașină. Această putere matematică, împreună cu programabilitatea sa, a satisfăcut necesitățile oamenilor de știință și industriașilor. Inventatorii ENIAC au promovat răspândirea ideilor lor printr-o serie de cursuri de arhitectura calculatoarelor.

Proiectul și construcția ENIAC au fost finanțate de armata SUA în timpul celui de-al doilea război mondial. Contractul de construcție a fost semnat la 5 iunie 1943, iar lucrul a început la Școala Moore de Inginerie Electrică din Universitatea Pennsylvania din luna următoare, sub numele de cod „Proiectul PX”. Mașina terminată a fost arătată la 14 februarie 1946 la Universitatea Pennsylvania, ea costând 500.000 de dolari. A fost primită oficial de U.S. Army Ordnance Corps în iulie 1946. ENIAC a fost oprit la 9 noiembrie 1946 pentru o extindere de memorie și alte modificări și a fost transferat la Aberdeen Proving Ground, Maryland, în 1947. Acolo, la 29 iulie 1947, a fost pornit și a funcționat în permanență până la 2 octombrie 1955, ora 11:45 seara.

ENIAC a fost conceput și proiectat de John Mauchly și J. Presper Eckert de la Universitatea Pennsylvania.[4] Echipa de ingineri proiectanți era formată, printre alții, de Bob Shaw (tablouri funcționale), Chuan Chu (împărțire/rădăcină pătrată), Kite Sharpless (programator principal), Arthur Burks (înmulțire), Harry Huskey (citire/imprimare), Jack Davis (acumulatori) și Iredell Eachus Jr.[5]

Structură și performanțe[modificare | modificare sursă]

ENIAC era un calculator modular, compus din panouri separate care efectuau diferite funcții. Douăzeci de astfel de module reprezentau acumulatorii, pe care se puteau efectua adunări și scăderi și care puteau stoca un număr de zece cifre zecimale. Între aceste unități, numerele erau transfrate prin mai multe magistrale generice. Pentru a funcționa la viteză mare, panourile trebuia să trimită și să primească numere, să calculeze, să salveze răspunsul și să declanșeze următoarea operație — toate fără componente în mișcare. Cheia versatilității sale era capabilitatea de ramificație; ENIAC putea declanșa operații diferite în funcție de semnul unui răspuns calculat.

Pe lângă viteză, cel mai remarcabil fapt la ENIAC era dimensiunea și complexitatea sa. ENIAC avea 17.468 de tuburi electronice, 7.200 diode cu cristal, 1.500 relee, 70.000 de rezistoare, 10.000 de condensatoare și aproximativ 5 milioane de conexiuni lipite manual. Cântărea 27 t, și avea aproximativ 2,6 m pe 0,9 m pe 26 m), ocupa 63 m², și consuma 150 kW.[6] Intrările de date se făceau printr-un cititor de cartele perforate IBM și un perforator de cartele IBM reprezenta principalul dispozitiv de ieșire. Aceste cartele se puteau folosi pentru a produce separat rezultate tipărite cu ajutorul unui dispozitiv IBM cum ar fi IBM 405.

ENIAC utiliza numărătoare ciclice cu zece poziții pentru a stoca numerele; fiecare cifră folosea 36 de tuburi electronice, din care 10 erau triodele duale ce compuneau bistabilii numărătorului. Operațiile aritmetice se efectuau prin numărarea impulsurilor în numărătoarele ciclice și generarea de impulsuri de transport în cazul în care numărătorul aflat la valoarea maximă era incrementat și se reseta la 0, ideea fiind cea de a emula prin electronică funcționarea roților cu numere ale unui sumator mecanic. ENIAC avea douăzeci de acumulatori pe zece cifre cu semn care utilizau reprezentarea în complement față de zece și puteau efectua 5000 de adunări sau scăderi simple între oricare dintre ele și sursă (de exemplu, un alt acumulator, sau o constantă) pe secundă. Se puteau conecta mai mulți acumulatori simultan, astfel că viteza maximă de funcționare putea fi mai mare datorită funcționării în paralel.

Se putea cabla transportul unui acumulator la un alt acumulator pentru a efectua calcule cu dublă precizie, dar limitările circuitului de sincronizare al transportului împiedica legarea mai multor acumulatori pentru mai multă precizie. ENIAC utiliza patru acumulatori controlați de o unitate specială de înmulțire, pentru a efectua 385 de înmulțiri pe secundă; de asemenea, folosea cinci acumulatori, controlați de o unitate de împărțire și extragere de radicali, pentru a efectua până la patruzeci de împărțiri pe secundă sau trei extrageri de radicali pe secundă.

Celelalte nouă unități ale ENIAC erau Unitatea de integrare (care pornea și oprea mașina), Unitatea de ciclare (folosită pentru sincronizarea celorlalte unități), Programatorul Master (care controla secvențierea buclelor), Cititorul (care controla un cititor de cartele perforate IBM), Imprimatorul (care controla perforatorul de cartele), Transmițătorul de constante, și trei Tablouri funcționale.

Cap. Herman Goldstein (în faţă) setează comutatoarele unuia dintre tablourile funcţionale ale ENIAC la Şcoala Moore de Inginerie Electrică. (foto: Armata SUA)

Ciclul de bază al mașinii era de 200 microsecunde (20 cicluri ale ceasului de 100 kHz al unității de ciclare), sau 5000 de cicluri pe secundă pentru operațiile pe numere de 10 cifre. Într-unul din aceste cicluri, ENIAC putea să scrie un număr într-un registru, să citească un număr dintr-un registru, să adune sau să scadă două numere. O înmulțire a unui număr de 10 cifre cu un număr de d cifre (pentru d până la 10) dura d+4 cicluri, astfel că o înmulțire a două numere pe 10 cifre dura 14 cicluri, sau 2800 microsecunde—o viteză de 357 pe secundă. Dacă un număr avea mai puțin de 10 cifre, înmulțirea se realiza mai repede. Împărțirea și radicalul durau 13(d+1) cicluri, unde d este numărul de cifre al rezultatului (câtul sau radicalul). Deci, o împărțire sau un radical durau 143 de cicluri, sau 28.600 μs—o viteză de 35 pe secundă. (Wilkes 1956:20[7] arată că o împărțire cu un cât de 10 cifre dura 6 milisecunde.) Dacă rezultatul avea mai puțin de zece cifre, se obținea mai repede.

Fiabilitatea[modificare | modificare sursă]

Detaliu al părţii din spate a unei secţiuni din ENIAC, pe care se văd tuburile electronice

ENIAC utiliza tuburi radio cu opt pini folosite la acea vreme; registrele acumulatoare erau compuse din bistabili 6SN7, iar în implementarea funcțiilor logice se foloseau bistabili 6L7, 6SJ7, 6SA7 și 6AC7. Numeroase tuburi 6L6 și 6V6 controlau liniile electrice, trimițând impulsuri între diversele carcase.

Unii experți în electronică au prezis că defectările tuburilor vor fi atât de frecvente încât mașina n-ar fi fost deloc utilă. Predicția a fost parțial corectă: aproape în fiecare zi se ardeau câteva tuburi, lăsând calculatorul nefuncțional aproape jumătate din timp. Tuburi speciale cu fiabilitate mare au devenit disponibile abia în 1948. Majoritatea acestor defectări, însă, aveau loc în perioadele de încălzire și răcire, atunci când stresul termic asupra catozilor tuburilor și dispozitivelor de încălzire era maxim. Prin simpla (deși costisitoarea) soluție de a nu mai opri mașina deloc, inginerii au redus rata defectărilor tuburilor ENIAC la nivelul mai acceptabil de un tub în medie la două zile. Conform unui interviu acordat în 1989 de Eckert, povestea defectărilor continue ale tuburilor era mai ales un mit: „Se ardea câte un tub cam la fiecare două zile și problema putea fi localizată în 15 minute.”[8] În 1954, cea mai lungă perioadă de funcționare fără defect a fost de 116 ore (aproape cinci zile).

Programabilitatea[modificare | modificare sursă]

ENIAC putea fi programat să efectueze secvențe complexe de operații, inclusiv bucle, ramificări și subrutine. Misiunea de a lua o problemă și de a programa mașina să o rezolve era complexă, și de regulă dura câteva săptămâni. După ce programul era dezvoltat pe hârtie, urma procesul de a introduce programul în ENIAC prin manevrarea cablurilor și comutatoarelor acestuia, etapă care mai dura câteva zile. După aceasta, urma o perioadă de verificare și de debugging, cu ajutorul capabilității de rulare „single step” a mașinii.

Cele șase femei care se ocupau de programarea ENIAC au fost introduse în 1997 în Women in Technology International Hall of Fame.[9][10] În 1946, ele se numeau Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas și Ruth Lichterman.[11][12]

ENIAC a fost un proiect unicat și nu a mai fost repetat. Înghețarea designului în 1943 a avut drept consecință mai multe lipsuri care nu făceau parte din proiect, mai ales inabilitatea de a stoca un program. Eckert și Mauchly au demarat lucru la un nou proiect, care ulterior a fost denumit EDVAC, care avea să fie și mai simplu și mai puternic. În particular, în 1944, Eckert a scris descrierea unei unități de memorie (linia de întârziere cu mercur) care avea să stocheze atât datele cât și programul. John von Neumann, care era consultant pentru Școala Moore pe proiectul EDVAC a luat parte la ședințele de la Școala Moore în care s-a dezvoltat conceptul de program stocat, și a scris un set de notițe (First Draft of a Report on the EDVACPrima schiță de raport asupra EDVAC) cu intenția de a-l folosi ca memorandum intern prin care se descrie și se elaborează în limbaj logic formal ideile dezvoltate în ședințe. Herman Goldstine a distribuit copii ale acestui raport mai multor instituții guvernamentale și educaționale, declanșând un interes larg privind construcția unei noi generații de mașini electronice de calcul, inclusiv EDSAC și SEAC.

După 1948 mașinii ENIAC i s-au adus mai multe îmbunătățiri, printre care un mecanism de stocare read-only a programelor[13] utilizând tablourile funcționale ca ROM de program, o idee inclusă în patentul ENIAC și propusă independent de Dr. Richard Clippinger de la BRL. Dick Clippinger s-a consultat cu John von Neumann asupra setului de instrucțiuni. Clippinger gândea o arhitectură cu 3 adrese în vreme ce von Neumann o arhitectură cu o adresă, mai simplu de implementat. Trei cifre ale unui acumulator (6) erau utilizate drept contor program, un alt acumulator (15)era cel principal, un al treilea (8) era utilizat ca pointer de adresă pentru citirea datelor din tablourile funcționale, și majoritatea celorlalte acumulatoare (1-5, 7, 9-14, 17-19) erau utilizate pentru stocarea datelor. Introducerea programului stocat pentru ENIAC era efectuată de Betty Jennings, Dick Clippinger și Adele Goldstine. Prima rulare a lui ENIAC cu program stocat a avut loc la 16 septembrie 1948, cu execuția unui program scris de Adele Goldstine pentru John von Neumann. Această modificare a redus viteza lui ENIAC de șase ori și a eliminat capabilitatea de calcul paralel, dar a redus și timpul de reprogramare de la ordinul zilelor la cel al orelor, și astfel pierderea de performanță a fost considerată acceptabilă. Datorită diferențelor între viteza electronicii de calcul și cea a dispozitivelor electromecanice de intrare/ieșire, aproape orice problemă practică din lumea reală era complet dependentă de timpul de intrare/ieșire, chiar dacă nu se utiliza paralelismul inițial al mașinii și chiar în condițiile vitezei reduse. La începutul lui 1952, s-a adăugat un registru rapid cu deplasare, care a îmbunătățit viteza deplasărilor de cinci ori. În iulie 1953, s-a adăugat o extensie de 100 de cuvinte de memorie principală, folosind reprezentarea BBCD, excess-3. Pentru a suporta această extensie, ENIAC a fost echipat cu un selector ale tablourilor funcționale, un selector de adrese de memorie, circuite de formare a impulsurilor.

Comparație cu alte calculatoare ale vremii[modificare | modificare sursă]

Mașini de calcul mecanice și electrice s-au folosit din secolul al XIX-lea, dar în deceniile anilor 1930 și 1940 a început era calculatoarelor moderne.

  • Calculatorul german Z3 (funcțional în mai 1941) a fost proiectat de Konrad Zuse. Acesta a fost primul calculator numeric generic, dar era electromecanic, și nu electronic, utilizând relee pentru toate funcțiile. El efectua calcule logice în matematică binară. Era programabil prin cartele perforate, dar îi lipsea o instrucțiune de ramificare. A fost distrus cu ocazia bombardării Berlinului în decembrie 1941.
  • Calculatorul american Atanasoff–Berry (ABC) (funcțional în vara lui 1941) a fost prima mașină electronică de calcul. Ea implementa calcule binare cu tuburi electronice dar nu era generic, fiind limitat la rezolvarea de sisteme de ecuații liniare. El nu exploata viteza de calcul a circuitelor electronice, fiind limitat de o memorie cu tambur rotativ și un sistem de intrări-ieșiri realizat cu scopul de a tipări rezultatele pe cartele de hârtie. Era controlat manual și neprogramabil.
  • Calculatoarele Colossus, britanice (utilizate de criptanaliști începând cu 1943) au fost proiectate de Tommy Flowers. Calculatoarele Colossus (din care au fost construite zece exemplare) erau complet electronice, numerice, și puteau fi reprogramate prin recablare, dar erau dedicate spargerii codurilor criptografice și nu generice.[14]
  • Calculatorul Harvard Mark I al lui Howard Aiken, produs în 1944, era programat prin bandă perforată și utiliza relee. El calcula funcții matematice generale, dar nu efectua ramificări.
  • ENIAC putea, ca și Z3 și Mark I, să ruleze o secvență arbitrară de operații matematice, dar nu le citea de pe o bandă. Ca și Colossus, operațiile se efectuau cu viteza circuitelor electronice. ENIAC combina programabilitatea Turing-completă cu viteza electronică.

ABC, ENIAC și Colossus utilizau tuburi electronice. Registrele ENIAC efectuau calcule în aritmetica zecimală, și nu în cea binară ca Z3 sau Calculatorul Atanasoff-Berry.

Până în 1948, ENIAC trebuia se programa prin recablare, ca și Colossus. Ideea unui calculator cu program stocat, în a cărui memorie să se poată reține atât cod cât și date a fost concepută în timpul dezvoltării ENIAC, dar nu s-a implementat atunci din cauză că prioritățile impuse de al doilea război mondial cereau realizarea mașinii cât mai repede, iar cele 20 de puncte de stocare erau prea puțin pentru a ține și programele și datele.

Cunoașterea de către public[modificare | modificare sursă]

Z3 și Colossus au fost dezvoltate independent unul de altul și independent de ABC și de ENIAC în timpul celui de-al doilea război mondial. Z3 a fost distrus de bombardamentele aliaților asupra Berlinului în 1944. Mașinile Colossus au făcut parte din efortul de război al Regatului Unit, și au fost demontate în 1945 pentru păstrarea secretului. Existența lor a fost cunoscută abia în anii 1970, deși informații despre capabilitățile acestora dețineau doar angajații guvernului britanic și invitații americani. ABC a fost demontat de Universitatea Statului Iowa, după ce John Atanasoff a fost chemat la Washington, D.C. pentru a face cercetări în fizică pentru marina SUA. Spre deosebire de acestea, ENIAC a fost prezentat presei în 1946, și mediatizat.[15]

Patentul[modificare | modificare sursă]

Din mai multe motive (inclusiv examinarea de către Mauchly în iunie 1941 a calculatorului Atanasoff-Berry, al cărui prototip fusese realizat în 1939 de John Atanasoff și Clifford Berry), patentul ENIAC, acordat în 1964, a fost anulat printr-o decizie din 1973 în cazul Honeywell v. Sperry Rand, care a plasat invenția calculatorului electronic numeric în domeniul public și a recunoscut meritele lui Atanasoff ca inventator al primului calculator electronic numeric.

Părți expuse[modificare | modificare sursă]

Patru panouri ENIAC şi unul din cele trei tablouri funcţionale, expuse la Şcoala de Inginerie şi Ştiinţe Aplicate din Universitatea Pennsylvania

Școala de Inginerie și Științe Aplicate din Universitatea Pennsylvania are patru dintre cele patruzeci de panouri originale și unul dintre cele trei tablouri funcționale ale ENIAC. Smithsonian are cinci panouri la Muzeul Național de Istorie Americană din Washington D.C. Muzeul Științei din Londra are expusă o unitate receptor. Muzeul Istoriei Calculatoarelor din Mountain View, California are și el un panou expus. Universitatea Michigan din Ann Arbor are patru panouri, recuperate de Arthur Burks. U.S. Army Ordnance Museum de la Aberdeen Proving Ground, Maryland, unde a fost folosit ENIAC, are un tablou funcțional. Un panou este expus și la Perot Systems, Plano Texas.

La nivelul anului 2004, o pastilă pătrată de siliciu cu latura de 0,5 mm are aceeași capacitate de calcul ca ENIAC, care ocupa o cameră întreagă.

Note[modificare | modificare sursă]

  1. ^ Goldstine, Herman H. (1972). The Computer: from Pascal to von Neumann. Princeton, New Jersey: Princeton University Press. ISBN 0-691-02367-0 
  2. ^ The ENIAC Story”. Ftp.arl.mil. http://ftp.arl.mil/~mike/comphist/eniac-story.html. Accesat la 22 septembrie 2008. 
  3. ^ Shurkin, Joel, Engines of the Mind: The Evolution of the Computer from Mainframes to Microprocessors, 1996, ISBN 0-393-31471-5
  4. ^ Wilkes 1956
  5. ^ Gazette Alumni: Obituaries (Iredell Eachus Jr.). http://www.upenn.edu/gazette/0506/obits.html. Accesat la 11 septembrie 2008. „Conform familiei sale, J. Presper Eckert EE’41 GEE’43 Hon’64 a fost cel mai bun prieten al său în colegiu. În calitate de ofițer în marina americană în timpul celui de-al doilea război mondial, a fost delegat direct de Președintele Franklin D. Roosevelt la munca de cercetare în Washington, unde a fost implicat în dezvoltarea de tehnologii pentru sistemele de armament, radar, și dispozitivele de comunicații. Apoi a devenit membru al echipei ENIAC la Penn. Conform Main Line Times; el credea că circuitele logice ale mașinii fuseseră mai degrabă descoperite decât inventate.” 
  6. ^ http://ed-thelen.org/comp-hist/BRL-e-h.html. http://ed-thelen.org/comp-hist/BRL-e-h.html. Accesat la 23 mai 2008. 
  7. ^ Wilkes 1956
  8. ^ Alexander Randall 5th (14 februarie 2006). „A lost interview with ENIAC co-inventor J. Presper Eckert”. Computer World. http://www.computerworld.com/printthis/2006/0,4814,108568,00.html. Accesat la 9 aprilie 2009. 
  9. ^ WITI — Hall of Fame. http://www.witi.com/center/witimuseum/halloffame/1997/eniac.php. 
  10. ^ Wired: Women Proto-Programmers Get Their Just Reward”. Arhivat din original la 5 decembrie 2012. https://archive.is/vHPZ. 
  11. ^ ENIAC Programmers Project. http://eniacprogrammers.org/. 
  12. ^ ABC News: First Computer Programmers Inspire Documentary. http://abcnews.go.com/Technology/story?id=3951187&page=1. 
  13. ^ A Logical Coding System Applied to the ENIAC. http://ftp.arl.mil/~mike/comphist/48eniac-coding/. 
  14. ^ B. Jack Copeland (editor), Colossus: The Secrets of Bletchley Park's Codebreaking Computers, 2006, Oxford University Press, ISBN 0-19-284055-X.
  15. ^ Kleiman, Kathryn A. (1997). „WITI Hall of Fame: The ENIAC Programmers. http://www.witi.com/center/witimuseum/halloffame/1997/eniac.php. Accesat la 12 iunie 2007. 

Bibliografie[modificare | modificare sursă]

  • Goldstine, H. H. and A. Goldstine, The Electronic Numerical Integrator and Computer (ENIAC), 1946 (retipărit în The Origins of Digital Computers: Selected Papers, Springer-Verlag, New York, 1982, pp. 359-373)
  • Eckert, J. Presper, The ENIAC (in Nicholas Metropolis, J. Howlett, Gian-Carlo Rota, (editors), A History of Computing in the Twentieth Century, Academic Press, New York, 1980, pp. 525-540)
  • Mauchly, John W., The ENIAC (in Metropolis, Nicholas, Jack Howlett, Gian-Carlo Rota, 1980, A History of Computing in the Twentieth Century, Academic Press, New York, ISBN 0-12-491650-3, pp. 541-550, „Versiunile originale ale acestor lucrări au fost prezentate la Conferința Internațională de Cercetare în domeniul Istoriei Calculatoarelor, ținută la Laboratorul Științific Los Alamos, 10-15 iunie 1976.")
  • Burks, Arthur W. și Alice R. Burks, The ENIAC: The First General-Purpose Electronic Computer (in Annals of the History of Computing, Vol. 3 (No. 4), 1981, pp. 310-389; comentariu pp. 389-399)
  • W. Barkley Fritz, The Women of ENIAC (in IEEE Annals of the History of Computing, Vol. 18, 1996, pp. 13-28)
  • Eckert, J. Presper and John Mauchly, 1946, Outline of plans for development of electronic computers, 6 pagini. (Documentul fondator al industriei calculatoarelor electronice.)
  • Raúl Rojas și Ulf Hashagen, editori, The First Computers: History and Architectures, 2000, MIT Press, ISBN 0-262-18197-5.
  • Wilkes, M. V. (1956), Automatic Digital Computers, New York: John Wiley & Sons, pp. 305 pagini, QA76.W5 1956 

Legături externe[modificare | modificare sursă]

Commons
Wikimedia Commons conține materiale multimedia legate de ENIAC