i i “1174-Gustin-0” — 2010/7/19 — 11:53 — page 1 — #1 i i i i i i List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 21 (1993/1994) Številka 3 Strani 148–153 Veselko Guštin: ENIAC – PRVI ELEKTRONSKI RAČUNALNIK Ključne besede: računalništvo. Elektronska verzija: http://www.presek.si/21/1174-Gustin.pdf c© 1993 Društvo matematikov, fizikov in astronomov Slovenije c© 2010 DMFA – založništvo Vse pravice pridržane. Razmnoževanje ali reproduciranje celote ali posameznih delov brez poprejšnjega dovoljenja založnika ni dovo- ljeno. ENIAC - PRVI ELEKTRONSKI RAČUNALNIK 1. Uvod Dolgo sem razmišljal, ali je tovrstni prispevek primeren za današnji čas . Ker se zelo radi vračamo k takšnim in drugačnim dogodkom iz preteklosti, menim, da je potreben pogled tudi v ta del zgodovine. Letos mineva 36 let od smrti madžarskega matematika Janosa Neumanna (1903 - 1957), bolj poz- nanega kot Johna von Neumanna, ki je veliko pripomogel k uspešni realizaciji matematičnih operacij v ENIACu. Kar zadeva samo delovanje računalnika, priznajmo, da bi nam tovrstni pristop tudi danes delal precejšnje težave. Načrtovalci vezij so se odločili za vzporedni način prenašanja impulzov in računanja z njimi. Le-to jim je omogočilo preslikavo "mehanskega števnika" , kakršnega si je že pred več kot 150 leti zamislil Anglež Charles Babbage (1792 - 1871), v elektronski pomikaini števni register. Sicer pa moramo vedeti , da je bil ENIAC plod tako teoretičnega kot strokovnega dela. Načrtovalci pa tudi znanstveniki so želeli svoja obširna znanja potrditi in preizkusiti. ENIAC ni bil samo model, ki bi doživel žalosten konec v kotu kakega laboratorija, pač pa stroj, ki so ga uporabljali še dobrih 5 let, čeprav bi ga danes uspešno nadomestil že nekoliko boljši žepni računalnik. ENIAC danes uživa zasluženi počitek . Njegove dele lahko občudujerno po raznih muzejih, med drugim tudi v British Science Museum v Londonu. Opisali bomo, kakšen je bil leta 1946 namen načrtovalcev prvega elek- tronskega računalnika ENIAC (elektronski numerični integrator in računalnik) in kakšne vrste problemov je znal reševati. Z gradnjo r a č u n a l n i ka so začeli na Univerzi v Pensylvaniji v ZDA pod vodstvom Johna Presperja Eckerta in svetovanjem Johna Mauchlyja. Odgovor je naslednji : ENIAC je reševal probleme, ki se jih je dalo spre- meniti v niz preprostih računskih operacij - toje v končna zaporedja seštevanj, odštevanj, množenj, deljenj, kvadriranj in korenjenj . Tako je znal računati di- ference in integrirati . Znal je numerično reševati sisteme algebraičnih in tran- scendentnih enačb ter sisteme parcialnih diferenc ialnih enačb. Hitrost raču­ nanja je bila pri tem zelo pomembna, kajti veliko je problemov, ki jih je bilo možno hitro in preprosto formulirati, a se jih je dalo rešiti le z veliko truda . Diferencialne enačb e balistike projektila so že tak primer, saj je bil ENIAC prvotno načrtovan za reševanje prav tovrstnih enačb . Žal nekaterih funkcij, ki rešijo te enačb e, ni moč preprosto matematično izraziti. Za uporabo jih lahko podamo le v obliki tabel. ki jih dobimo z eksperi- 149 mentalnimi meritvami (na primer izstreljenih projektilov) ali pa z numeričnim reševanjem pripadajočih enačb . Slika 1. Elekronski računalnik ENIAC Numerična rešitev diferencialne enačb e je dala podatke o poti izstrelka v obliki tabele. Vsaka taka pot se je imenovala trajektorija . Izdelava ene željene poti izstrelka je zahtevala izračun nekaj sto trajektorij za različne začetne parametre (na primer hitrost in kot izstrelitve). Tako je na primer specialni balistični elektro-mehanski računalnik, ki so ga imeli takrat na razpolago, iz računal 60- sekundno trajektorijo v dvajsetih urah . Le so uporabili diferencialni analizator (nekakšen elektronski analogni r a ču n a l n i k ) , so jo lahko izračunali v petnajstih minutah , ENIAC pa je to naredil v nekaj sekundah. Torej je znal izračunati trajektorijo hitreje, kot je projektil letel. Se več ! ENIAC je bil veliko bolj natančen kot diferencialni ana lizator, saj je vrnil rezultat v obliki deset ali dvajsetmestnih števil. Bil pa je tudi 1000-krat hitrejši kot katerakoli takratna naprava, ki je računala z enako natančnostjo. . 150 2. Navodila načrtovalcem vez ij Druga svetovna vojna je zahtevala gradnjo ENIACa s kar n aj več ob i čaj­ nimi elekt ronskimi vezji (komponen tami) in s či m manj novostmi. Te zahteve skupaj z željami po veliki hit rosti , zmogljivosti in zan esljivost i ra ču nanja so imele za posledico izjemno obse žno elektron sko napravo. ENIACje uporablj al 18000 elekt ronk , 70000 uporov , 10000 konden za to rjev in 6000 relejev. Napra- va je v dolžino me rila 30 ,5 m, visoka j e bila 3 m in široka 0,9 m. Potrebovala je 80 kW moči , od tega je bilo samo za hlajenje pot rebnih 20 kW moči. Za uspešno delovanje "izuma" z 18000 elekt ronkami so bile pot rebne izredno zaneslji ve komponente. To je še kako veljalo za digitaln i račun a l nik, saj bi okvara ene same elektron ke povz roči la nap ako ene števke in s tem tudi napačen rezultat. Načrtovalci ENIACa so se držal i dveh na čel , ki sta zagotavljali zanesljivost delovanja : - Vezja so bila izdelana iz komponent, ki so bile izbrane ročno in izredno pazljivo. Bila so tudi skrbno testirana v območj i h delovanja, ki so bila (običajno) pod predpisanimi vrednost mi. Tako je na primer naprava , ki je sicer delovala pri napetosti 6,3 V, bila p riklju čen a na 5,7 V. N ajvečkra t se ni izklapljala, saj seje tako povečala njena življenjska doba. Napajalne (anod ne) napetosti in zaslo ni so deloval i le s čet rti no prvot no predpisane moči . - Uporab ili so take metode, pri kate rih na predpis ano natančnost ra čuna­ nja ni vplivala raznolikost izbranih komponen t. Tako, na primer , je bila izbira elekt ronk še poseb no pestra . Not ranje upornost i so se spreminjale tu di do ± 40%, zato so vse elektron ke delale le kot stika la: ali so prevajale ali pa ne. ENIAC je deloval kot sinhron sist em , ki ga je vodila cent ralna ura . Dopušča l je manjše časovne zamike, ki so bili posledica kasnit ev različno dolgih povezav . 3. Vrste računalniških vezij Pred seboj res nimamo na črtov vezij , ki so bila v ENIACu. Teh tud i ne pot rebujemo za razumevanje osnov delovanja elektronskega računalnika . Sicer pa ENIACova vezja niso bila sesta vljena po že znanih n ačrti h. Na prvem mestu so bila vezja za pomnjenje. Tako digit alni podatki kot programski ukazi so morali biti shranjeni. Ra čuna l ni k si je zapomnil št evke, s katerimi je raču nal, in (številske) kode ukazov za operacijo, ki jo je bilo potrebno opravi ti. V ENIACu so bile t ri vrste pomnilniških vezij , ki so se med seboj razlikovala po hit rosti pisanja informacije vanje in branja le-te iz njih: 151 a) Najprej omenimo bistabilno pomnil no celico ali f1ip-f1op . Informacija se je vanjo lahko vpisala in iz nje prebrala elektronsko , in to z veliko hitrostjo . Ta vezja pa so bila draga, saj so zahtevala tri elektron ke za bit. b) Tabele funkcijsk ih vrednosti so bile shranjene z matrikami uporov, ki so bili povezani tako , da so hranil i informacijo. To je bila veliko bolj eko- nomična vrsta pomnilniškega vezja kot f1ip-flop. Ker je bilo potrebno ročno prevezovanje uporov, je bil zapis informacije počasen , medtem ko je bilo elektronsko čitanje relativno hitro . Funkcijske tabele so v ENIACu uporabljali za shranjevanje tabel množenja in vrednosti pomožnih funkcij . c) Posebno obliko pomnilniškega vezja so predstavljala stikala in pove- zave . Enote ENIACa so bile povezane tako , da so izvajale razne operacije. Kako so se operacije seštevanje, odštevanje, množenje, deljenje, korenjenje in iskanje funkcijskih vrednosti v tabeli izvajale in v kakšnem vrstnem redu , je bilo odvisno predvsem od tega , kako so bile enote povezane in kako so bila postavljena razna stikala . Nastavljanje stika l je bilo ročno in zato počasno. ENIACje bil najuspešnejši pri reševanju problemov, pri katerih so se operacije, potem ko smo s stikali nastavili njihov vrstni red, ponavljale. ENIAC so namreč programirali tako , da so z ustreznimi stikali nastavili zaporedje programskih ukazov . Na drugem mestu so bila tista vezja v elektronskem računalniku, ki so bila sposobna seštevati desetiške števke. Seštevanje je bilo izvedeno z elektronskimi števni ki - krožnimi pomikaln imi registri. Ti so vsebovali f1ip- flope, ki so bili povezani tako , da so šteli (pomikali) skupine impulzov, kjer je vsaka skupina pomenila desetiško števko. Trdimo lahko, da so bila elektronska vezja za pomnjenje in seštevanje os- novni del računalnika . Ostala vezja so jih le krmilila , tako da smo z večkratnim seštevanjem dobili še odštevanje, deljenje in korenjenje . Krmiljenje so oprav- ljala preprosta vezja , kot so "in", "ali" ter "ne" . Logični operaciji "in" in "ne" so naredili z eno stikalno elektronko, operacijo "ali" pa z dvema . 4. Sestavni deli ENIACa ENIAC je sestavljalo trideset posameznih enot , pri čemer je vsaka vse- bovala od 500 do 1500 elektronk . Devet elektronskih enot je bilo takih , da so samostojno izvajale nekatere operacije, ostale enote pa so služile za krmi- ljenje. Predstavitev (programiranje) problema je seveda vplivala na izvajanje in število posameznih operacij . Enote so bile postavljene v obliki črke U. Povezane so bile s koaksia lnimi kabli, ki so bili speljani pred enotami . Enajst 152 takih linij je od ene enote k drugi posredovalo "vlak" impulzov, ki je pomenil predzna ceno desetiško števko. To so bile "podatkovne linije". Dodatna "programska linija" pa je povezovala prvo enoto z drugo , drugo s tretjo itd. Enote , kot so hitri množilnik, delilnik in vezja za izračun kvadratnega korena , so izvajale aritrnetične operacije s podatki , ki so jih dobile iz dvaj- setih akumulatorjev. Vsak akumulator je bil sposoben hraniti desetmestno desetiško predznačeno število, sprejeti prav tolikšno število impulzov ter j ih dodati k hranjeni vrednosti , ali pa oddati hranjeno število v obliki zapored- nih impulzov . Seštevanje dveh števil je zahtevalo hkratno delovanje dveh akumulatorjev: prvi je pretvoril hranjeno desetiško števi lo v zaporedni niz im- pulzov, ki jih je drugi sprejel po liniji ter jih dodal (prištel) k obstojeei vsebini. Seštevanje je trajalo samo 1/5000 s. Perioda enega seštevanja , 200 j.LS, S6 je imenovala "cas enega seštevanja" ali "seštevaini cas" . Akumulatorji so imeli vlogo tako seštevalnikov kot pomnilnih registrov , zato jih je tudi bilo tol iko. Uporabljali so jih tudi množilniki, ki so v njih hranili vrednost množenca in množitelja ter vanje shranjevali (akumulirali) delne produ kte. Delilniki in vezja za r a č u n aj e korenov so v njih hranili imenovalce, števce, korene in kvociente . Operacija tabeliranja je pošiljala iz akumulatorja argument, vanj pa je sprejela funk cijsko vrednost. Tiskalnik je vakum ulatorjih hranil število, ki ga je s pomoejo relejev zluknjal na trak . Akumulator se je uporabl jal tudi kot odštevalnik . Ker so njegova števna vezja delovala samo veni smeri (niso mogla šteti, pom ikati nazaj) , se je odštevanje izvajalo tako , da so vezja štela le naprej, mimo ničle , do vrednosti , kamor naj bi števnik prišel, ce bi štel nazaj. Pri tem so si pomagali z zapisom števila v komplementu . Negativna števila so bila predstavljena kot komplement glede na število 1010 . Tako je bilo -x zapisano kot 101O-x s pred- znakom, ki je povedal , da je gre za komplement . Pri dvajsetmestnih številih se je komplement jemal od števila 1020 . Le je bil akumulator programiran tako, da je odšteval števila , je namesto števila pošiljal njegov komplement. Vse enote v ENIACu so bile programirane tako , da so lahko hranile pozitivna št evila ali njihove komplemente . Hitro množiino vezje j e bilo sposobno zmnožiti dvoje lO-mestnih števil (pri eemer je bil zmnožek 20-mestno število) v 13 seštevalnih casih ali v 2.6 ms . Vezji za deljenje in korenjenje sta prav tako uporabljali akumulatorje. Do rezultatov sta prišli z večkratnim ponavljanjem odštevanja in seštevanja . Tako računanje je trajalo kar nekaj casa in je bilo odvisno od vrednosti števi l. V povprečju je bilo potrebnih 125 seštevalnih casov oziroma 25 ms za deljenje dveh lO-mestnih števil. Opisans enote so vasbovale 5e vezja za krmiljenje. be-ta MI imela do- l o h o Wevilo programskih linij, k i 8o bile povuane s stitikali ra ixbiro Zeljcne opcracijt. T a b je bilo, na primer, krmitjanjc akurnutatorja nastavljmo na " d c j in zbril" ali pa na %prejmi.l. KO je PO programski liniji priM irnpuiz, jet zahteval, da enota operacijo (nastavljeno na stikalih) iwda ter ob koncu p d j e signal naprej. Izhodni irnpuk jc potoval do krmilna mote, ki je palala nov ukaz. Froblam so ENlACu posrdovali tako, da so pwcrali vhode z izhedi ter nastarili ustruna stikala. Enota ENfACa so ddovalc bmvno usklajtno. Vsaka strota je bila kr- rniljena z nizom h ~ n r n i h impulzw, ki jfh jc pdirjala centralna urina enota. Glavni razlog zs tako krmiljahje je bila zanesljivost izvcdba operacije. Med prenalnjem irnpulrov od ene enote k drugi SQ st clektriZSni imputzi popaali po vclikwti in takasnli. t e bi taki impulzi patovati od enote do mote napr~j, b i poparenja l a b b m o ogrorilo ranerljivo delovanje. Pri obibjnem delovanju ENIACa je ccntralna ura stalno pdl ja la impulze motam raZunalnika, v m i red inrejanja ukazov pa jt krmilila pmgramaka anots. Zaredi zanasfjivosti, iskanja ckvar in prevsrjanja ddwanja mote js bila ENlAGwa centralna ura sposobna oddati tudi sn pwsgmuen imputz ali pa niz impultov za (ano) aeEtevanjs. 4. Za kljuhk Od zaEetka dclwanja 15, fcbruarja 1946 je ENlAC izratunal tabat ne- praccnijivc vrednorti, tab no taardiEnem kot na uparabnem nivoju. Ncdvo- mno ja pottdil prirnernrrst upwabljcnc ctcktronike xa raEunanje. ce odrnklimm zaEatno poskrrsno abratovanjt, je bila pogostost okvar Ir 2 do 3 ure na tsdtn. Najvd t&av je pwxroblo pregravanje elektronk. (5eprav j e El ENlAC obsden, so okvara zelo hitro odkrivali izurjmi opwatsrji. ENlAC jt zdrdcval hitrost in zanssljivost raEunanja in j e bil r m d e n r+&tvenja problemw v znawsti. Z njim st ja zaZSdo n o w obdobje, obdobja elebrondtih ral5unaInikov. Vasdko GuJtin