EDSAC - EDSAC

Automatická kalkulačka elektronického ukládání zpoždění (EDSAC)
EDSAC (19) .jpg
EDSAC I v červnu 1948
Vývojář Maurice Wilkes a jeho tým z matematické laboratoře University of Cambridge
Výrobce Univerzita v Cambridge
Generace 1
Datum vydání 6. května 1949 ; Před 72 lety ( 1949-05-06 )
Životnost 1949–1958
Přerušeno Ano
Jednotky odeslány 1
Operační systém Žádný
procesor Derated termionické ventily
Paměť 512 17bitových slov, upgradováno v roce 1952 na 1024 17bitových slov. ( teplotně stabilizované čáry zpoždění rtuti )
Zobrazit Dálnopis
Vstup děrovaná páska s pěti otvory
Napájení 11 kW
Zpětná
kompatibilita
Žádný
Nástupce EDSAC 2 a LEO I
Související články EDVAC

The Electronic delay storage automatic calculator ( EDSAC ) was an early British computer. Inspirován klíčovým prvním návrhem zprávy o EDVAC Johna von Neumanna , stroj zkonstruoval Maurice Wilkes a jeho tým z matematické laboratoře University of Cambridge v Anglii. EDSAC byl druhým elektronickým počítačem s digitálním uloženým programem, který byl uveden do pravidelného provozu.

Později byl projekt podpořen J. Lyons a Co. Ltd. , který má v úmyslu vyvinout komerčně Aplikovaná informatika a uspět v Lyonu vývoje Lev I. , která vychází z konstrukce EDSAC. Práce na EDSAC začaly v průběhu roku 1947 a své první programy spustily 6. května 1949, kdy vypočítal tabulku čtvercových čísel a seznam prvočísel . EDSAC byl nakonec ukončen dne 11. července 1958 poté, co byl nahrazen EDSAC 2 , který zůstal v provozu až do roku 1965.

Technický přehled

Fyzické složky

9palcové elektronky používané k monitorování
William Renwick s čtečkou pásek s 5 otvory a dálnopisem Creed

Jakmile byl EDSAC v provozu, začal sloužit výzkumným potřebám univerzity. Pro paměť používalo rtuťové zpožďovací linky a pro logiku redukované elektronky . Spotřeba energie byla 11 kW elektřiny. Doba cyklu byla 1,5 ms pro všechny běžné instrukce, 6 ms pro násobení. Vstup byl proveden pomocí děrované pásky s pěti dírami a výstup přes dálnopis .

Zpočátku byly registry omezeny na akumulátor a registr multiplikátorů. V roce 1953 David Wheeler , vracející se z pobytu na University of Illinois , navrhl rejstříkový registr jako rozšíření původního hardwaru EDSAC.

Magnetická pásková jednotka byla přidána v roce 1952, ale nikdy nefungovala dostatečně dobře, aby byla skutečně užitečná.

Do roku 1952 byla dostupná hlavní paměť (instrukce a data) pouze 512 18bitových slov a neexistoval žádný záložní obchod. Zpožďovací linky (neboli „tanky“) byly uspořádány do dvou baterií, z nichž každá poskytla 512 slov. Druhá baterie byla uvedena do provozu v roce 1952.

Kompletní 1024-slovový zpožďovací řádek nebyl k dispozici až do roku 1955 nebo na začátku roku 1956, což do té doby omezovalo programy na přibližně 800 slov.

John Lindley (student diplomů 1958–1959) zmínil „neuvěřitelnou obtížnost výroby jediného správného kusu papírové pásky pomocí surového a nespolehlivého domácího zařízení pro děrování, tisk a ověřování, které bylo k dispozici na konci 50. let“.

Paměť a pokyny

Maurice Wilkes kontroluje rtuťovou zpožďovací linku EDSAC ve výstavbě
Maurice Wilkes a Bill Renwick před kompletním EDSAC

Hlavní paměť EDSAC se skládala z 1024 míst, ačkoli původně bylo nainstalováno pouze 512 míst. Každý obsahoval 18 bitů, ale nejvyšší bit byl vždy nedostupný kvůli problémům s časováním, takže bylo použito pouze 17 bitů. Instrukce se skládala z pětibitového instrukčního kódu, jednoho náhradního bitu, desetibitového operandu (obvykle adresa paměti) a délkového bitu pro ovládání, zda instrukce používala 17bitový nebo 35bitový operand (dvě po sobě jdoucí slova , malý endian ). Všechny kódy instrukcí byly záměrně reprezentovány jedním mnemotechnickým písmenem, takže instrukce Add například používala kód znaku EDSAC pro písmeno A.

Interně EDSAC používal dvojková doplňková , binární čísla. Čísla byla buď 17 bitů (jedno slovo), nebo 35 bitů (dvě slova) dlouhá. Neobvykle byl multiplikátor navržen tak, aby považoval čísla za zlomky s pevným bodem v rozsahu −1 ≤ x <1, tj. Binární bod byl hned napravo od znaménka. Akumulátor mohla držet 71 bitů, včetně znaménka, která umožňuje dvě dlouhé (35-bit), čísla se násobí bez ztráty přesnosti.

Dostupné pokyny byly:

  • Přidat
  • Odčítat
  • Násobení a přidávání
  • AND-and-add (nazývané „Collate“)
  • Řazení vlevo
  • Aritmetický posun doprava
  • Načíst registr multiplikátoru
  • Uložte (a volitelně vymažte) akumulátor
  • Podmíněný přechod
  • Přečtěte si vstupní pásku
  • Vytiskněte znak
  • Kulatý akumulátor
  • Ne-op
  • Stop.

Neexistovala žádná instrukce dělení (ale byly dodávány různé podprogramy dělení) a žádný způsob, jak přímo načíst číslo do akumulátoru (k tomu bylo zapotřebí instrukce „sTore a nulový akumulátor“ následované instrukcí „Přidat“). Neexistovala žádná bezpodmínečná instrukce skoku, ani instrukce volání procedury - ještě nebyla vynalezena.

Maurice Wilkes diskutoval relativní způsoby adresování pro EDSAC v dokumentu publikovaném v roce 1953. Předkládal návrhy na usnadnění používání podprogramů .

Systémový software

Tyto počáteční objednávky byly napevno na sadu uniselector spínačů a vložen do nízkých slov paměti při spuštění. V květnu 1949 poskytly počáteční objednávky primitivního přemisťovacího montéra využívajícího výše popsaného mnemotechnického designu, vše v 31 slovech. Jednalo se o první assembler na světě a pravděpodobně o začátek globálního softwarového průmyslu. K dispozici je simulace EDSAC a úplný popis počátečních objednávek a prvních programů.

První výpočet provedený EDSAC byl program čtvercového čísla spuštěný dne 6. května 1949. Program napsala Beatrice Worsleyová, která přišla z Kanady studovat stroj.

Tento stroj používali ostatní členové univerzity k řešení skutečných problémů a bylo vyvinuto mnoho raných technik, které jsou nyní součástí operačních systémů. Uživatelé připravili své programy tak, že je (v assembleru) vyražili na papírovou pásku. Brzy se stali dobrými ve schopnosti držet papírovou pásku na světle a číst kódy. Když byl program připraven, byl zavěšen na délce řádku navlečené poblíž čtečky papírových pásek. Operátoři strojů, kteří byli přítomni během dne, vybrali další pásku z linky a načetli ji do EDSAC. To je dnes samozřejmě dobře známé jako fronty práce. Pokud něco vytisklo, pak byla páska a výtisk vráceny uživateli, jinak byli informováni, na kterém paměťovém místě se zastavil. Debuggery byly nějakou dobu pryč, ale obrazovku CRT bylo možné nastavit tak, aby zobrazovala obsah konkrétní části paměti. To se používalo například ke zjištění, zda se číslo sbíhá. K signálnímu bitu akumulátoru byl připojen reproduktor; zkušení uživatelé znali zdravé a nezdravé zvuky programů, zejména programů „zavěšených“ ve smyčce. Po úředních hodinách bylo některým „oprávněným uživatelům“ umožněno provozovat stroj pro sebe, což trvalo dlouho do noci, dokud nevyrazil ventil - což se obvykle stalo podle jednoho takového uživatele.

Technika programování

Monitorovací stůl EDSAC

První programátoři museli využívat dnes odsuzované techniky - zejména změnu kódu. Protože až mnohem později neexistoval žádný rejstříkový registr, jediným způsobem přístupu k poli bylo změnit umístění paměti, na které odkazovala konkrétní instrukce.

David Wheeler , který získal první doktorát z informatiky na světě, který pracoval na projektu, má zásluhu na vymyšlení konceptu podprogramu. Uživatelé psali programy, které volali rutinu, skokem na začátek podprogramu s návratovou adresou (tj. Místo plus jedna skoku samotného) v akumulátoru ( Wheeler Jump ). Podle konvence to podprogram očekával a první věcí, kterou udělal, bylo upravit jeho závěrečnou instrukci skoku na tuto zpáteční adresu. Bylo možné volat více a vnořených podprogramů, pokud uživatel znal délku každého z nich, aby vypočítal místo, kam má skočit; rekurzivní hovory byly zakázány. Uživatel poté zkopíroval kód podprogramu z hlavní pásky na vlastní pásku po skončení vlastního programu. (Turing však diskutoval podprogramy v dokumentu z roku 1945 o návrzích návrhu pro NPL ACE , přičemž jde tak daleko, že vynalezl koncept zásobníku návratové adresy, který by umožnil rekurzi.)

Absence rejstříku rejstříků také představovala problém pro zapisovatele podprogramu v tom, že nemohli předem vědět, kde v paměti bude podprogram načten, a proto nemohli vědět, jak řešit jakékoli oblasti kódu, které byly použity pro ukládání dat (tzv. „pseudoobjednávky“). To bylo vyřešeno použitím počáteční vstupní rutiny, která byla zodpovědná za načítání podprogramů z děrné pásky do paměti. Při načítání podprogramu by si to všimlo počátečního umístění a podle potřeby zvýšilo odkazy na vnitřní paměť. Jak tedy napsal Wilkes, „... kód používaný k reprezentaci objednávek mimo stroj se liší od kódu použitého uvnitř, rozdíly jsou dány různými požadavky programátora na jedné straně a řídicích obvodů stroje na jiný".

Programátoři EDSAC použili speciální techniky, aby co nejlépe využili omezenou dostupnou paměť. Například v okamžiku načítání podprogramu z děrné pásky do paměti se může stát, že bude nutné vypočítat konkrétní konstantu, konstantu, která by následně nepotřebovala přepočítávat. V této situaci by byla konstanta vypočítána jako "mezihra". Kód požadovaný pro výpočet konstanty bude dodán spolu s celým podprogramem. Poté, co počáteční vstupní rutina načte výpočetní kód, přenese řízení na tento kód. Jakmile byla konstanta vypočítána a zapsána do paměti, řízení se vrátí k počáteční vstupní rutině, která bude pokračovat v zapisování zbytku podprogramu do paměti, ale nejprve upraví svůj počáteční bod tak, aby přepsal kód, který měl vypočítal konstantu. To umožnilo provést poměrně komplikované úpravy podprogramu pro obecné účely, aniž by jeho konečná stopa v paměti byla větší, než kdyby byla přizpůsobena konkrétní situaci.

Aplikační software

Koncept podprogramu vedl k dostupnosti podstatné knihovny podprogramů. Do roku 1951 bylo pro obecné použití k dispozici 87 podprogramů v následujících kategoriích: aritmetika s pohyblivou řádovou čárkou ; aritmetické operace na komplexních číslech ; kontrola; divize; umocňování ; rutiny týkající se funkcí; diferenciální rovnice ; speciální funkce; výkonová řada ; logaritmy ; smíšený; tisk a rozvržení; kvadratura ; číst (vstup); n th kořen; goniometrické funkce ; operace počítání (simulace opakování do smyček , zatímco smyčky a pro smyčky ); vektory ; a matice .

Aplikace EDSAC

EDSAC byl navržen speciálně tak, aby tvořil součást podpůrné služby matematické laboratoře pro výpočet. První vědecký dokument, který byl publikován pomocí počítače pro výpočty, napsal Ronald Fisher . Wilkes a Wheeler použili EDSAC k vyřešení diferenciální rovnice týkající se genových frekvencí pro něj. V roce 1951 Miller a Wheeler pomocí stroje objevili 79místný prime- největší v té době známý .

Vítězové tří Nobelových cen: John Kendrew a Max Perutz (chemie, 1962), Andrew Huxley (medicína, 1963) a Martin Ryle (fyzika, 1974) těžili z revolučního výpočetního výkonu EDSAC. Ve svých projevech o převzetí ceny každý uznal úlohu, kterou v jejich výzkumu sehrál EDSAC.

Na počátku šedesátých let Peter Swinnerton-Dyer použil počítač EDSAC k výpočtu počtu bodů modulo p (označených N p ) pro velký počet prvočísel p na eliptických křivkách, jejichž hodnost byla známa. Na základě těchto numerických výsledků Birch & Swinnerton-Dyer (1965) usoudil, že N p pro křivku E s hodností r se řídí asymptotickým zákonem, Birchova a Swinnerton-Dyerova domněnka , považovaná od roku 2016 za jeden z nejlepších nevyřešených problémů v matematice .

„Mozek“ [počítač] se jednoho dne může dostat na naši úroveň [obyčejných lidí] a pomoci s našimi výpočty daně z příjmu a vedení účetnictví. To jsou ale spekulace a zatím po tom není ani stopy.

-  Britské noviny The Star ve zprávě z června 1949 o počítači EDSAC, dávno před érou osobních počítačů.

Hry

V roce 1952 vyvinul Sandy Douglas OXO , verzi hřebenů a křížů (tic-tac-toe) pro EDSAC, s grafickým výstupem do 6 " katodové trubice VCR97 . To mohla být vůbec první videohra na světě .

Další videohru vytvořil Stanley Gill a zahrnovala tečku (nazývanou ovce) blížící se k čáře, ve které by se dala otevřít jedna ze dvou bran. Hra Stanley Gill byla ovládána světelným paprskem čtečky papírových pásek EDSAC. Přerušení (například tím, že do něj hráč vloží ruku) by otevřelo horní bránu. Ponechání paprsku neporušeného by mělo za následek otevření spodní brány.

Další vývoj

Nástupce EDSAC , EDSAC 2 , byl uveden do provozu v roce 1958.

V roce 1961, An EDSAC 2 verze Autocode , což je Algol -jako vyšší programovací jazyk pro vědce a inženýry, byl vyvinut Davidem Hartley .

V polovině šedesátých let byl plánován nástupce EDSAC 2, ale místo toho byl přesunut na Titan , prototyp Atlas 2 vyvinutý z Atlas Computer z University of Manchester , Ferranti a Plessey .

Projekt repliky EDSAC

Replika EDSAC v říjnu 2018

Dne 13. ledna 2011 Computer Conservation Society oznámila, že plánuje postavit funkční repliku EDSAC v Národním muzeu výpočetní techniky (TNMoC) v Bletchley Parku pod dohledem Andrewa Herberta , který studoval pod Maurice Wilkesem. První části repliky byly zapnuty v listopadu 2014. Probíhající projekt je otevřen návštěvníkům muzea. V roce 2016 navštívili muzeum dva původní operátoři EDSAC, Margaret Marrs a Joyce Wheeler , aby projektu pomohli. V listopadu 2016 bylo uvedení plně dokončeného a provozního stavu repliky do provozu odhadováno na podzim roku 2017. Zpoždění projektu však odložilo její otevření a doufá se, že bude plně funkční na konci roku 2021. Několik pokynů (objednávky ) fungují na začátku roku 2021.

Viz také

Reference

Další čtení

externí odkazy