EDSAC

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
EDSAC

EDSAC (Electronic Delay Storage Automatic Calculator) byl britský počítač z poloviny 20. století. Tento počítač, inspirovaný John Von Neumannovým dokumentem First Draft of a Report on the EDVAC, sestavil Maurice Wilkers a jeho tým na Univerzitě v Cambridgi v Anglii. EDSAC byl první v praxi využitý počítač pracující s uloženým programem.[1]

Později projekt podporovala britská firma J. Lyons and Co., za což dostala k prvnímu komerčnímu využití počítač LEO I, vycházející z designu EDSAC. První programy byly na počítači EDSAC spuštěny 6. května 1949 a jednalo se o výpočet tabulky druhých mocnin[2] a sestavení seznamu prvočísel.

Technický přehled[editovat | editovat zdroj]

Fyzické komponenty[editovat | editovat zdroj]

Krátce po svém sestavení začal EDSAC sloužit univerzitě k výzkumným účelům. Žádná jeho součást nebyla experimentální. Používal rtuťovou zpožďovací linku pro paměť a elektronky pro logiku. Vstup se realizoval pomocí pětistopé děrné pásky a výstup přes dálnopis. Registry se zpočátku omezovaly pouze na akumulátor a násobič. V roce 1953 David Wheeler, který se právě vrátil ze stáže na univerzitě v Illinois, navrhl indexový registr jako rozšíření původního hardwaru EDSACu.

Paměť a příkazy[editovat | editovat zdroj]

Paměť EDSACu sestávala z 1024 sektorů, avšak zpočátku bylo implementováno pouze 512 z nich. Každý sektor paměti obsahoval 18 bitů, ale první bit byl nedostupný kvůli omezení časování, takže ve výsledku bylo použito pouze 17 bitů. Příkaz obsahoval pětibitový příkazový kód (znázorněný mnemotechnickým znakem, takže například příkaz Přičíst využíval bitový vzorec pro písmeno P), jeden nevyužitý volný bit, deset bitů pro adresu paměti a jeden bit, který řídil, zda příkaz funguje na čísle obsaženém v jednom nebo dvou slovech.

Vnitřně používal EDSAC binární čísla s dvojkovým doplňkem. Ta byla dlouhá buď 17 bitů (jedno slovo) nebo 35 bitů (dvě slova). Binární násobič pracoval s čísly jako se zlomky s pevnou řádovou čárkou v rozmezí -1 < x < 1, tj. dělící čárka se nacházela hned napravo od znaménka. Akumulátor mohl pojmout až 71 bitů, včetně znamének, takže umožňoval násobit spolu dvě dlouhá čísla (35 bitů) bez ztráty přesnosti.

Dostupné příkazy byly: Přičti, Odečti, Násob, Porovnej,[3] Přesuň vlevo, Přesuň vpravo, Načti násobič, Ulož (a případně Vymaž) zásobník, Podmíněný přesun, Čti vstupní pásku, Vytiskni znak, Zaokrouhli obsah zásobníku, Nedělej nic a Stop. Pro dělení žádný příkaz neexistoval (přestože bylo dostupných několik dělících podprocesů), ani nešlo přímo nahrát číslo do akumulátoru (musel se použít příkaz Ulož/vymaž akumulátor a následně příkaz Přičti).

Systémový software[editovat | editovat zdroj]

Vstupní příkazy byly napevno naprogramovány ve skupině vícepolohových přepínačů a při startu se nahrály do paměti. Do května roku 1949 vstupní příkazy zajišťovaly primitivní překladač, který využíval výhod mnemotechnického řešení popsaného výše. Toto byl první světový překladač a pravděpodobně stál u zrodu světového softwarového průmyslu. Na webu je k dispozici simulátor EDSACu a úplný popis vstupních příkazů a prvních programů.

Počítač také používali ostatní členové univerzity k řešení reálných problémů a přitom vzniklo mnoho technik, které jsou dodnes součástí operačních systémů. Uživatelé vytvářeli své programy děrováním papírové pásky. Brzy se také naučili sami číst kód z pásky tím, že ji drželi proti světlu. Když byl program připraven, pověsil se na šňůru u čtečky papírové pásky. Operátoři, kteří během dne počítač obsluhovali, vždy vzali další papírovou pásku z řady a vložili ji do EDSACu. Tento postup je dnes dobře znám jako fronta úloh. Pokud EDSAC něco vytiskl, výtisk i páska se vrátily uživateli, jinak byl uživatel informován v kterém úseku paměti nastala chyba. V té době sice ještě neexistovaly ladící programy, ale šlo nastavit připojený CRT monitor tak, aby zobrazoval obsah konkrétního místa v paměti. Toho se využívalo například při kontrole, zda číslo konverguje. Po úředních hodinách někteří „autorizovaní uživatelé“ směli využívat stroj pro vlastní účely, což zpravidla trvalo dlouho do večera.[4]

Technika programování[editovat | editovat zdroj]

První programátoři museli používat dnes již nepopulární techniky, zejména přepisování kódu. Protože ještě zdaleka neexistoval žádný indexový registr, jediná možnost přístupu do pole byla změna lokace v paměti, kam příslušný příkaz odkazoval.

Davidu Wheelerovi, který získal jako první na světě doktorát v oblasti počítačové vědy a který pracoval na tomto projektu, je připisován objev konceptu podprogramů. Uživatel napsal program, který zavolal podprogram tím, že přeskočil na začátek podprogramu s adresou čítače zvýšenou o jedna (Wheelerův skok). Toto podprogram tradičně očekával, a proto nejprve přepsal svůj konečný počet skoků původní adresou, takže se vrátil. Vícenásobné a vnořené podprogramy mohly být volány tak dlouho, dokud uživatel znal délku každého z nich, aby mohl určit místo kam podprogram přeskočí. Uživatel poté zkopíroval kód podprogramu z původní pásky na svou vlastní pásku, načež byl vlastní program ukončen.

Aplikační software[editovat | editovat zdroj]

Koncept podprogramů vedl k vytvoření bohaté knihovny podprogramů. Do roku 1951 bylo k dispozici 87 podprogramů v následujících kategoriích: počítání s plovoucí řádovou čárkou; počítání s komplexními čísly; kontrolování; dělení; umocňování; rutinní operace s funkcemi; diferenciální rovnice; zvláštní funkce; mocninné řady; logaritmy; tisk a schéma; numerická integrace; načtení (vstupu); n-tý kořen; goniometrická funkce; početní operace (simulace cyklů do-while, while-do, for); vektory a matice.

Použití EDSACu[editovat | editovat zdroj]

  • V roce 1950, Dr. M. V. Wilkes a Wheeler používali EDSAC k řešení diferenciálních rovnic týkajících se genové frekvence v práci Ronalda Fishera.[5] Bylo to první využití počítače k řešení problému na poli biologie.
  • V roce 1951, Miller a Wheeler použili stroj k objevení 79místného tehdy nejvyššího známého prvočísla.
  • V roce 1952, A. S. Douglas vyvinul OXO, verzi piškvorků pro EDSAC s grafickým výstupem na CRT. Možná to byla první počítačová hra.
  • V 60. letech byl EDSAC používán ke shromažďování numerických důkazů o řešení problému eliptických křivek.

Další vývoj[editovat | editovat zdroj]

Nástupce EDSACu, EDSAC 2, byl akreditován v roce 1958. V roce 1961 vyvinul David Hartley verze jazyků Autocode a ALGOL pro EDSAC 2. Jednalo se o jazyky na vyšší úrovni pro vědce a odborné techniky. V polovině 60. let byl plánován nástupce EDSACu 2, ale přednost dostal Titan, prototyp počítače Atlas 2. 13. ledna 2011 Computer Conservation Society (společnost pro zachování počítačů) oznámila, že schválila práce na funkční replice počítače EDSAC, která se staví v The National Museum of Computing (národní muzeum práce na počítači) v Anglii.

Reference[editovat | editovat zdroj]

  1. The Manchester Small-Scale Experimental Machine, nicknamed "Baby", predated EDSAC as a stored-program computer, but was built as a test bed for the Williams tube and not as a machine for practical use.
  2.  "Pioneer computer to be rebuilt"(Lent 2011). Cam 62.  To be precise, EDSAC's first program printed a list of the squares of the integers from 0 to 99 inclusive.
  3. This instruction added the bitwise AND of the specified memory word and the multiplier register to the accumulator.
  4. Professor David Barron, Emeritus Professor of the University of Southampton at a Cambridge Computer Lab seminar to mark the 60th anniversary May 6th 2009.
  5. Gene Frequencies in a Cline Determined by Selection and Diffusion, R. A. Fisher, Biometrics, Vol. 6, No. 4 (Dec., 1950), pp. 353-361

V tomto článku byl použit překlad textu z článku Electronic Delay Storage Automatic Calculator na anglické Wikipedii.