Analytický motor - Analytical Engine

Část počítacího stroje s tiskovým mechanismem Analytical Engine, postaveného Charlesem Babbageem, jak je zobrazeno ve Vědeckém muzeu (Londýn)

Analytical Engine byl navržený mechanický general-purpose počítače navržený anglický matematik a počítačový průkopník Charles Babbage . Poprvé byl popsán v roce 1837 jako nástupce Babbageova rozdílového motoru , který byl návrhem pro jednodušší mechanický počítač.

Analytical Engine začlenil aritmetickou logickou jednotku , řídící tok ve formě podmíněného větvení a smyček a integrovanou paměť , což z něj činí první návrh pro univerzální počítač, který lze moderně popsat jako Turing-Complete . Jinými slovy, logická struktura Analytical Engine byla v podstatě stejná jako ta, která dominovala počítačovému designu v elektronické éře. Analytical Engine je jedním z nejúspěšnějších počinů Charlese Babbage.

Babbage nebyl nikdy schopen dokončit stavbu žádného ze svých strojů kvůli konfliktům s jeho hlavním inženýrem a nedostatečným financováním. Až v roce 1941 postavil Konrad Zuse první počítač pro všeobecné použití Z3 , více než sto let poté, co Babbage v roce 1837 navrhl průkopnický analytický motor.

Design

K programování stroje byly použity dva typy děrných štítků . Popředí: „provozní karty“ pro zadávání pokynů ; pozadí: 'variabilní karty', pro zadávání dat

Babbageův první pokus o mechanické výpočetní zařízení, Difference Engine , byl účelový stroj navržený pro tabelaci logaritmů a goniometrických funkcí vyhodnocením konečných rozdílů k vytvoření aproximujících polynomů . Stavba tohoto stroje nebyla nikdy dokončena; Babbage měl konflikty se svým hlavním inženýrem Josephem Clementem a nakonec britská vláda stáhla financování projektu.

Během tohoto projektu si Babbage uvědomil, že je možný mnohem obecnější design, Analytical Engine. Práce na konstrukci analytického motoru byly zahájeny v c. 1833.

Vstup, skládající se z programů („vzorců“) a dat, měl být stroji poskytován pomocí děrných karet , což byla v té době metoda, která směrovala mechanické tkalcovské stavy , jako je žakárový tkalcovský stav . Pro výstup by stroj měl tiskárnu, křivkový plotter a zvonek. Stroj by byl také schopen vysekat čísla na karty, aby je bylo možné přečíst později. Používal obyčejnou aritmetiku s pevným bodem o základně 10 .

Měl existovat obchod (tj. Paměť) schopný pojmout 1 000 čísel po 40 desetinných číslicích (přibližně 16,6 kB ). Aritmetická jednotka (dále jen „mlýn“) by měl být schopen provádět všechny čtyři aritmetické operace , plus srovnávání a případně druhé odmocniny . Zpočátku (1838) byl koncipován jako rozdílový motor zakřivený zpět na sebe, v obecně kruhovém uspořádání, přičemž dlouhý sklad vystupoval na jednu stranu. Pozdější kresby (1858) zobrazují regularizované rozložení mřížky. Stejně jako centrální procesorová jednotka (CPU) v moderním počítači by mlýn spoléhal na své vlastní vnitřní postupy , které by byly uloženy ve formě kolíků vložených do rotujících bubnů zvaných „sudy“, aby provedly některé složitější pokyny uživatelský program může určit.

Programovací jazyk, který mají používat uživatelé, byl podobný moderním montážním jazykům . Smyčky a podmíněné větvení byly možné, a tak jazyk, jak byl koncipován, by byl Turing-úplný, jak později definoval Alan Turing . Byly použity tři různé typy děrovacích karet: jeden pro aritmetické operace, jeden pro numerické konstanty a jeden pro operace načítání a ukládání, přenos čísel z úložiště do aritmetické jednotky nebo zpět. Pro tři typy karet existovaly tři samostatné čtečky. Babbage vyvinul asi dvě desítky programů pro Analytical Engine v letech 1837 až 1840 a o jeden program později. Tyto programy zpracovávají polynomy, iterační vzorce, Gaussovu eliminaci a Bernoulliho čísla .

V roce 1842 zveřejnil italský matematik Luigi Federico Menabrea popis motoru ve francouzštině na základě přednášek, které Babbage přednesl při návštěvě Turína v roce 1840. V roce 1843 byl popis přeložen do angličtiny a rozsáhle komentován Adou Lovelace , která se začala zajímat. v motoru o osm let dříve. Jako uznání jejích dodatků k Menabreaině papíru, který zahrnoval způsob výpočtu Bernoulliho čísel pomocí stroje (široce považován za první kompletní počítačový program), byla popsána jako první počítačový programátor .

Konstrukce

Henry Babbage's Analytical Engine Mill, postavený v roce 1910, ve Vědeckém muzeu (Londýn)

Pozdě v životě hledal Babbage způsoby, jak postavit zjednodušenou verzi stroje, a před smrtí v roce 1871 sestavil jeho malou část.

V roce 1878 výbor Britské asociace pro rozvoj vědy popsal Analytický motor jako „zázrak mechanické vynalézavosti“, ale nedoporučoval jej stavět. Výbor uznal užitečnost a hodnotu stroje, ale nedokázal odhadnout náklady na jeho stavbu a nebyl si jistý, zda bude stroj po stavbě správně fungovat.

Přerušovaně od roku 1880 do roku 1910 stavěl Babbageův syn Henry Prevost Babbage část mlýna a tiskařského aparátu. V roce 1910 byl schopen vypočítat (chybný) seznam násobků . To představovalo pouze malou část celého motoru; nebylo to programovatelné a nemělo to žádné úložiště. (Populární obrázky této sekce byly někdy chybně označeny, což naznačuje, že to byl celý mlýn nebo dokonce celý motor.) „Analytický motorový mlýn“ Henryho Babbageho je vystaven ve Vědeckém muzeu v Londýně. Henry také navrhl sestrojit demonstrační verzi plného motoru s menší skladovací kapacitou: „pro první stroj by to možná udělalo deset (sloupců), v každém patnáct kol“. Taková verze by mohla manipulovat s 20 čísly po 25 číslicích a to, co by jí bylo řečeno, aby s těmi čísly dělalo, mohlo být stále působivé. „Je to jen otázka karet a času,“ napsal Henry Babbage v roce 1888, „... a není důvod, proč by (dvacet tisíc) karet nemělo být v případě potřeby použito v analytickém stroji pro účely matematika ".

V roce 1991 londýnské vědecké muzeum postavilo kompletní a funkční exemplář Babbageova rozdílového motoru č. 2 , designu, který začlenil upřesnění, která Babbage objevil během vývoje analytického motoru. Tento stroj byl postaven s použitím materiálů a technických tolerancí, které by byly k dispozici pro Babbage, což potlačilo tvrzení, že Babbageovy návrhy nemohly být vyrobeny pomocí výrobní technologie své doby.

V říjnu 2010 zahájil John Graham-Cumming kampaň „Plán 28“ na získání finančních prostředků „veřejným předplatným“ s cílem umožnit seriózní historické a akademické studium Babbageových plánů s cílem poté vybudovat a otestovat plně funkční virtuální design, který následně zase umožnit konstrukci fyzického analytického motoru. V květnu 2016 nebyla provedena skutečná stavba, protože z původních návrhových výkresů Babbage nebylo dosud možné získat konzistentní porozumění. Zejména nebylo jasné, zda dokáže zpracovat indexované proměnné, které byly vyžadovány pro program Bernoulli společnosti Lovelace. Do roku 2017 úsilí „Plán 28“ hlásilo, že je k dispozici prohledávatelná databáze veškerého katalogizovaného materiálu a byla dokončena počáteční revize objemných Babbageových knih Scribbling.

Mnoho původních Babbageových kreseb bylo digitalizováno a jsou veřejně dostupné online.

Instrukční sada

Plánový diagram analytického motoru z roku 1840

Není známo, že by Babbage zapsal explicitní sadu instrukcí pro motor na způsob moderní příručky procesoru. Místo toho ukázal své programy jako seznamy stavů během jejich provádění a ukazoval, jaký operátor byl spuštěn v každém kroku, s malým náznakem, jak bude řízen řídicí tok.

Allan G. Bromley předpokládá, že balíček karet lze číst v dopředném a zpětném směru jako funkci podmíněného větvení po testování podmínek, což by způsobilo Turingovo dokončení motoru:

... karty mohly být nařízeny k pohybu vpřed a vzad (a tedy ke smyčce) ...

Představení poprvé, v roce 1845, uživatelských operací pro různé servisní funkce, včetně, co je nejdůležitější, efektivního systému pro uživatelské ovládání smyčky v uživatelských programech. Neexistuje žádný údaj o tom, jak je určen směr otáčení operace a proměnných karet. Při absenci dalších důkazů jsem musel přijmout minimální výchozí předpoklad, že jak operační, tak variabilní karty lze otočit pouze zpět, jak je nutné k implementaci smyček používaných ve vzorových programech Babbage. S umístěním směru pohybu pod kontrolou uživatele by nebyly žádné mechanické ani mikroprogramovací potíže.

Fourmilab ve svém emulátoru motoru říká:

Čtečka karet motoru není omezena na to, aby karty od začátku do konce jednoduše zpracovávaly jedna za druhou. Kromě toho může být řízen samotnými kartami, které čte, a radit, zda je aktivována páka rozběhu mlýna, buď posunout řetěz karet dopředu, přeskočit zasahující karty nebo dozadu, což způsobí, že dříve načtené karty budou zpracovány jednou znovu.

Tento emulátor poskytuje písemnou symbolickou sadu instrukcí, i když ji vytvořili její autoři, nikoli na základě Babbageových původních děl. Faktoriální program by byl například napsán jako:

N0 6
N1 1
N2 1
×
L1
L0
S1
–
L0
L2
S0
L2
L0
CB?11

kde CB je instrukce podmíněné větve nebo „kombinovaná karta“ použitá k přeskočení řídicího toku, v tomto případě zpět o 11 karet.

Vliv

Předvídaný vliv

Babbage pochopil, že existence automatického počítače by vzbudila zájem v oblasti nyní známé jako algoritmická účinnost , ve svých pasážích ze života filozofa píše: „Jakmile bude existovat analytický stroj, bude nezbytně řídit budoucí průběh věda. Kdykoli je jeho pomocí hledán jakýkoli výsledek, vyvstane otázka - jakým průběhem výpočtu může tyto výsledky dosáhnout stroj v nejkratším čase ? "

Počítačová věda

Od roku 1872 Henry pilně pokračoval v práci svého otce a poté přerušovaně v důchodu v roce 1875.

Percy Ludgate psal o motoru v roce 1914 a publikoval svůj vlastní návrh analytického motoru v roce 1908. Byl vypracován podrobně, ale nikdy nebyl postaven a kresby nebyly nikdy nalezeny. Ludgate se motor bude mnohem menší (asi 8 kubických stop (230  L )) než Babbage je, a hypoteticky by byl schopen násobení dvou 20-desetinného-čísla číslice asi za šest sekund.

Leonardo Torres y Quevedo psal o Babbageových motorech v Eseje o automatizaci (1913). Kniha obsahuje návrh pro elektromechanický stroj schopný vypočítat hodnotu funkce zcela automaticky a zahrnovala také myšlenku aritmetiky s pohyblivou řádovou čárkou . Torres dvakrát prokázal, v roce 1914 a v roce 1920, že všechny funkce ozubeného kola počítacího stroje, jako je Babbage, lze implementovat pomocí elektromechanických částí. Jeho analytický stroj z roku 1914 používal malou paměť s elektromagnety; jeho stroj 1920 používal psací stroj k přijímání příkazů a tisku jeho výsledků.

Vannevar Bushův papír Instrumentální analýza (1936) obsahoval několik odkazů na Babbageovu práci. Ve stejném roce zahájil projekt Rapid Arithmetical Machine, aby prozkoumal problémy při konstrukci elektronického digitálního počítače.

Navzdory tomuto základu se Babbageova práce dostala do historické nejasnosti a Analytický stroj nebyl znám stavitelům elektromechanických a elektronických výpočetních strojů ve 30. a 40. letech 20. století, když začali pracovat, což vedlo k potřebě znovu objevit mnoho architektonických inovací Babbage navrhl. Howard Aiken , který v letech 1937 až 1945 sestrojil rychle zastaralou elektromechanickou kalkulačku Harvard Mark I , ocenil Babbageovu práci pravděpodobně jako způsob, jak zlepšit jeho vlastní postavu, ale během stavby Mark I nevěděl nic o architektuře Analytical Engine a jeho návštěvu konstruované části Analytického stroje považoval za „největší zklamání mého života“. Mark I nevykazoval žádný vliv Analytical Engine a postrádal nejpředvídanější architektonický rys Analytical Engine, podmíněné větvení . J. Presper Eckert a John W. Mauchly si podobně nebyli vědomi podrobností práce Babbage's Analytical Engine před dokončením jejich návrhu prvního elektronického univerzálního počítače ENIAC .

Srovnání s jinými ranými počítači

Pokud by byl postaven Analytical Engine, byl by digitální , programovatelný a Turingův . Bylo by to však velmi pomalé. Luigi Federico Menabrea ve Sketch of the Analytical Engine uvedl : „Pan Babbage věří, že podle svého motoru dokáže za tři minuty vytvořit součin dvou čísel, z nichž každé obsahuje dvacet číslic“. Pro srovnání, Harvard Mark I mohl provést stejný úkol za pouhých šest sekund. Moderní počítač dokáže totéž za méně než miliardtinu sekundy.

název První funkční Číselný systém Výpočetní mechanismus Programování Turing dokončen Paměť
Diferenční motor Postaven až v roce 1990 (design 1820s) Desetinný Mechanické Není programovatelný; počáteční numerické konstanty polynomických rozdílů nastaveny fyzicky Ne Fyzikální stav kol v osách
Analytický motor Není postaven (design 1830s) Desetinný Mechanické Program řízený děrnými kartami Ano Fyzikální stav kol v osách
Ludgate 's Analytical Engine Nestavěno (design 1909) Desetinný Mechanické Program řízený děrnými kartami Ano Fyzikální stav tyčí
Zuse Z1 (Německo) 1939 Binární plovoucí desetinná čárka Mechanické Programově řízen děrované 35 mm filmový skladem Ne Fyzikální stav tyčí
Bombe (Polsko, Velká Británie, USA) 1939 ( polský ), březen 1940 (britský), květen 1943 (USA) Výpočty postav Elektromechanický Není programovatelný; nastavení šifrového vstupu určeného propojovacími kabely Ne Fyzikální stav rotorů
Zuse Z2 (Německo) 1940 Binární plovoucí desetinná čárka Elektromechanický ( mechanická paměť) Programově řízen děrované 35 mm filmový skladem Ne Fyzikální stav tyčí
Zuse Z3 (Německo) Května 1941 Binární plovoucí desetinná čárka Elektromechanický Programově řízen děrované 35 mm filmový skladem V zásadě Mechanická relé
Atanasoff – Berry Computer (USA) 1942 Binární Elektronický Není programovatelný; vstupy lineárních systémových koeficientů pomocí děrných karet Ne Paměť regeneračního kondenzátoru
Colossus Mark 1 (Velká Británie) Prosince 1943 Binární Elektronický Programově řízený propojovacími kabely a přepínači Ne Termionické ventily (vakuové trubice) a tyratrony
Harvard Mark I  - IBM ASCC (USA) Května 1944 Desetinný Elektromechanický Programově řízený 24kanálovou děrovanou papírovou páskou (ale bez podmíněné větve) Ne Mechanická relé
Zuse Z4 (Německo) Březen 1945 (nebo 1948) Binární plovoucí desetinná čárka Elektromechanický Programově řízen děrované 35 mm filmový skladem Ano Mechanická relé
ENIAC (USA) Července 1946 Desetinný Elektronický Programově řízený propojovacími kabely a přepínači Ano Žabky triode vakuové trubice
Manchester Baby (Velká Británie) 1948 Binární Elektronický Binární program zadávaný do paměti pomocí klávesnice (první elektronický počítač s digitálním uloženým programem) Ano Williamsova katodová trubice
EDSAC (Spojené království) 1949 Binární Elektronický Pětibitový operační kód a operand s proměnnou délkou (první počítač s uloženým programem nabízející výpočetní služby široké komunitě). Ano Mercury zpožďovací linky

V populární kultuře

  • Tyto cyberpunkové romanopisci William Gibson a Bruce Sterling spoluautorem steampunk román alternativní historie s názvem The Difference Engine , v němž Babbage rozdíl a analytické motory byly k dispozici na viktoriánské společnosti. Román zkoumá důsledky a důsledky raného zavedení výpočetní technologie.
  • Moriarty by Modem , povídka Jacka Nimersheima, popisuje alternativní historii, kde byl Babbageův analytický motor skutečně dokončen a byl britskou vládou považován za vysoce klasifikovaný. Postavy Sherlocka Holmese a Moriartyho byly ve skutečnosti souborem prototypových programů napsaných pro Analytical Engine. Tato povídka sleduje Holmese, jak je jeho program implementován na moderních počítačích, a on je nucen znovu soupeřit se svým nepřítelem v moderních protějšcích Babbageova analytického stroje.
  • Podobné nastavení používá Sydney Padua ve webcomicu The Thrilling Adventures of Lovelace and Babbage . Obsahuje alternativní historii, kde Ada Lovelace a Babbage postavili Analytical Engine a používají jej k boji proti zločinu na žádost královny Viktorie . Komiks je založen na důkladném výzkumu životopisů a korespondence mezi Babbageem a Lovelace, který je poté zkroucen pro humorný efekt.
  • Na rameno Orion on-line projekt představuje Machina Babbagenseii , plně vnímající Babbage inspirované mechanické počítače. Každý z nich má velikost velkého asteroidu, který je schopen přežít pouze v podmínkách mikrogravitace, a zpracovává data rychlostí 0,5% rychlosti lidského mozku.

Reference

Bibliografie

externí odkazy