IBM a sedm trpaslíků (pátá část)

20. 1. 2011
Doba čtení: 24 minut

Sdílet

V dnešní části seriálu o historii se opět budeme zabývat počítači značky UNIVAC. Tentokrát si popíšeme především sálové počítače série UNIVAC 1101, které vycházely z návrhu počítačů Atlas a ERA 1101. Z této řady elektronkových počítačů z roku 1950 byly později odvozeny modernější počítače založené na polovodičích.

Obsah

1. Od BINACu k UNIVACu I

2. UNIVAC II – evoluce, nikoli revoluce

3. Poslední model původní řady UNIVAC – sálový počítač UNIVAC III

4. Počítače série UNIVAC 1101

5. Vznik společnosti ERA (Engineering Research Associates)

6. Základní parametry počítače UNIVAC 1101

7. Instrukční sada UNIVACu 1101

8. Další historie vývoje bubnových pamětí

9. Odkazy na Internetu

1. Od BINACu k UNIVACu I

V dnešní části seriálu o historii výpočetní techniky dokončíme popis počítačů, které nesly kdysi slavné jméno UNIVAC, což byla původně zkratka znamenající „UNIVersal Automatic Computer“. Již v předchozí čtveřici článků jsme se zabývali tím, jakým způsobem vlastně tyto počítače vznikly. Připomeňme si, že firmu Eckert-Mauchly Computer Corporation (EMCC), tj. výrobce počítačů UNIVAC, založili J. P. Eckert a John Mauchly, kteří se v letech 1943 až 1946 podíleli i na vzniku známého elektronického počítače ENIAC, jenž byl sestrojen na Pennsylvánské universitě. Prvním počítačem, který byl ve firmě EMCC navržen a sestrojen, byl BINAC, neboli celým jménem „BINary Automatic Computer“. Poznávacím prvkem tohoto počítače byla konstrukce jeho operační paměti, která byla sestavena z takzvaných akustických zpožďovacích linek vynalezených jedním ze zakladatelů firmy EMCC – J.P.Eckertem, který tuto technologii odvodil od zpožďovacích linek použitých v radarech.

Obrázek 1: Fotografie elektronického počítače BINAC.

V jednotlivých zpožďovacích linkách neustále „cirkuloval“ akustický a elektrický signál nesoucí stavy 1003 bitů uspořádaných do 32 slov po 31 bitech, ke kterým bylo přidáno dalších jedenáct bitů tvořících mezeru (32×31+11=1003). Tento signál bylo možné sledovat na připojeném osciloskopu, což je vymoženost, kterou u dnešních osobních počítačů postrádáme :-). Celková kapacita tímto poněkud zvláštním způsobem zkonstruované operační paměti činila 512×31 bitů, což není z dnešního pohledu mnoho a právě omezená kapacita operační paměti zapříčinila, že úlohy programované pro první generaci elektronických počítačů byly v naprosté většině případů orientovány na dávkové zpracování dat, která musela být postupně načítána a prakticky ihned ukládána na vhodná paměťová média (například řazení se provádělo v několika krocích setřiďováním dat ze dvou pásek na další dvojici pásek). Jako externí paměťová média se používaly buď magnetické pásky (preferované na počítačích UNIVAC díky jejich úspěšnému perifernímu zařízení UNISERVO) či děrné štítky nebo děrné pásky (preferované naopak na sálových počítačích firmy IBM, jež byla v minulosti zaměřena právě na vývoj třídicích strojů s děrnými štítky).

Obrázek 2: Fotografie elektronkového počítače UNIVAC-1

Následovníkem BINACu byl sálový počítač UNIVAC I vyráběný v první polovině padesátých let minulého století společností Remington Rand, která zakoupila firmu EMCC. Operační paměť tohoto počítače byla, podobně jako u jeho předchůdce, taktéž sestavena z akustických zpožďovacích linek. Naproti tomu se při konstrukci aritmeticko-logické jednotky a řadiče (tvořících společně CPU) počítače UNIVAC I využila hybridní technologie celkem osmnácti tisíc polovodičových diod a více než 5600 elektronek. Význam tohoto stroje tkví především v tom, že se jednalo o první komerčně dostupný (a taktéž z komerčního hlediska relativně úspěšný) počítač, který si samozřejmě mohly pořídit nebo alespoň pronajmout pouze ty nejbohatší firmy v USA – automobilky, banky či pojišťovací společnosti, ale i to představovalo velkou změnu oproti v té době více obvyklým státním a armádním zakázkám, které byly zadávány zejména tehdejšímu lídru na poli rodící se výpočetní techniky – společnosti IBM. Dalším zajímavou vlastností počítače UNIVAC I byl jeho formát instrukcí, který byl navržen takovým způsobem, že operační kód instrukce byl snadno čitelný a editovatelný, čímž se zjednodušila jak tvorba programů (bez použití plnohodnotného assembleru, protože se „assembling“ prováděl ručně na papíře), tak i jejich ladění.

Obrázek 3: Pohled na jeden tank operační paměti počítače UNIVAC-1 se zpožďovacími linkami.

2. UNIVAC II – evoluce, nikoli revoluce

I přes komerční úspěch počítače UNIVAC I (který v té době ještě neměl žádné pořadové číslo, jelikož to bylo pro rozlišení jednotlivých modelů dodáno později) se stále častěji ukazovalo, že pro některé typy úloh je nutné použít počítač s rychlejším procesorem a s rozsáhlejší operační pamětí. Právě kvůli velmi malé kapacitě operační paměti UNIVACu I (jednalo se pouze o 1000 slov s adresami od 000 do 999) byla většina programů navržena takovým způsobem, aby se z několika magnetických pásek postupně načítala vhodně uspořádaná data, která se po zpracování ukládala na další magnetickou pásku či pásky, takže operační paměť sloužila – kromě oblasti pro uložení vlastního programu – především jako vyrovnávací paměť, popř. paměť pro ta nejdůležitější a často používaná data. Výsledkem snah o konstrukci nového výkonnějšího typu sálového počítače byl model UNIVAC II, který se od svých dvou předchůdců odlišoval především v tom, že jeho operační paměť již nebyla zkonstruována z akustických zpožďovacích linek, ale byla pro ni využita feritová paměť, podobně jako na konkurenčních strojích firmy IBM (modely řady 7×x).

Obrázek 4: Instalace UNIVACu u zákazníků v jejich výpočetním centru.

Díky tomuto významnému technologickému pokroku bylo možné řádově zvýšit jak kapacitu operační paměti z jednoho tisíce na deset tisíc slov (to odpovídá 120 000 znakům, tj. v dnešních jednotkách cca 87 kilobajtům), tak i urychlit přístup k datům, který musel původně být u paměti sestavené z akustických zpožďovacích linek prováděn sériově (přesněji řečeno bit po bitu), protože bity v tomto typu paměti neustále „kroužily“ v uzavřené smyčce tvořené vlastní trubicí naplněné rtutí, piezoelektrickými měniči (senzory), synchronizačními obvody a zesilovači. Pokrok v možnostech počítače UNIVAC II ovšem nebyl jen kvantitativní, ale i kvalitativní, protože především díky větší kapacitě operační paměti bylo možné psát programy ve vyšších programovacích jazycích. Zatímco na strojích firmy IBM se postupně přecházelo od různých typů autokódů (jedná se o assemblery doplněné o makra, možnost zápisu výrazů, podmínek, smyček atd.) k programovacímu jazyku Fortran, byla situace na počítačích UNIVAC odlišná.

Obrázek 5: Titulní stránka manuálu k programovacímu jazyku FLOW-MATIC.

Zde se totiž původně používaly překladače A-2 a MATH-MATIC, které vznikly z prvního překladače na světě nazvaného jednoduše A-0 (Arithmetic Language version 0). Autorkou obou těchto překladačů byla Grace Hopperová, která ovšem nevytvořila pouze tyto dva programovací jazyky, ale postupně navrhla a implementovala i jazyk B-0 (Business Language version 0) a především jeho pokračovatele FLOW-MATIC. V obou případech se jednalo o jazyky určené převážně pro hromadné zpracování dat, provádění bankovních operací, fakturací či pro výpočty mezd (a taktéž tvorbu tiskových sestav), což je velký rozdíl oproti výše zmíněným jazykům A-0 a MATH-MATIC, které byly orientovány zejména na provádění numerických výpočtů (což je ostatně zřejmé i z jejich názvu) s velkým množstvím výrazů, podmínek a programových smyček. V neposlední řadě se Grace Hopperová podílela i na vzniku COBOLu, což je programovací jazyk ideově vycházející jak z B-0, tak i z FLOW-MATICu.

ibm6

Obrázek 6: Program typu „Hello World!“ zapsaný v COBOLu. Tento screenshot ukazuje obrazovku terminálu připojeného k mainframu firmy IBM.

3. Poslední model původní řady UNIVAC – sálový počítač UNIVAC III

Firma Remington Rand v roce 1962 přivedla na trh nástupce počítačů UNIVAC I a UNIVAC II, který (jak všichni víceméně očekávali) nesl označení UNIVAC III. Tento počítač však nebyl binárně kompatibilní s jeho předchůdci, protože se jeho konstruktéři inspirovali především strojem LARC navrženého divizí firmy Sperry Rand. Nekompatibility byly způsobeny jak mnohem větší kapacitou operační paměti (což vedlo k nutnosti rozšíření adresové části instrukčního kódu), tak i zcela novým formátem zpracovávaných dat, odlišnou šířkou slova (25 bitů) a taktéž použitím indexových registrů, pro něž bylo nutné v instrukčním slovu taktéž najít několik bitů, které by určovaly, které indexové registry se mají při adresování operandů použít. Při konstrukci řadiče a aritmeticko-logické jednotky tohoto počítače již byly použity polovodičové tranzistory a jeho operační paměť s kapacitou 8192 až 32768 slov byla zkonstruována z feritových jader – na rozdíl od bubnových pamětí i pamětí vytvořených pomocí akustické zpožďovací linky se jednalo o paměť se skutečně náhodným přístupem.

Obrázek 7: Horní část řídicího panelu počítače UNIVAC III.
Autor fotografie: Jim a Shirley Stephensovi

Operační paměť zkonstruovaná z feritových jader byla navíc doplněna bubnovou pamětí o kapacitě 4 až 24 milionů slov. Při návrhu počítače UNIVAC III se použila modulární architektura, která umožnila poměrně rychle lokalizovat chyby v elektronických obvodech a posléze chybný modul nahradit modulem novým – snahou konstruktérů samozřejmě bylo, aby byl strojový čas počítače co nejlépe využitý, protože někteří zákazníci si nekupovali celý stroj (i s potřebnými techniky, periferními zařízeními a dalším nezbytným vybavením), ale „pouze“ předem známý a zaplacený čas, který počítač mohl strávit při zpracovávání předem připravených a většinou i teoreticky otestovaných dávkových úloh. I přes větší kapacitu operační paměti (8192 až 32768 25bitových slov) i vyšší rychlost výpočtů (součet dvou čísel mohl být proveden za osm mikrosekund, vynásobení dvou čísel za 48 až 724 mikrosekund) se však UNIVAC III nedočkal takového úspěchu, jaký byl vedením společnosti Remington Rand očekáván.

Obrázek 8: V těchto „kostkách“ byla umístěna operační paměť sestavená z feritových jader. Každá kostka o rozměrech cca 7×7×7 palců měla kapacitu 4096 slov (každé slovo 25 bitů + 2 paritní bity + 2 náhradní bity).
Autor fotografie: Jim a Shirley Stephensovi

Komerční neúspěch UNIVACu III byl kromě jeho více než dvouletého zpoždění způsobem především tím, že poměr cena/výkon začal být v případě tohoto modelu nevýhodný a mnoho zákazníků firmy Remington Rand dalo raději přednost nové řadě mainframů firmy IBM. Společnost Remington Rand z těchto důvodů po několika letech celou řadu sálových počítačů UNIVAC I, II, III opustila. Ovšem to v žádném případě neznamená, že by již žádné počítače pojmenované UNIVAC nevznikly, protože firma Remington Rand (a později i další firmy, které tuto společnost v následujících letech zakoupily) kromě původních UNIVACů navrhovala a vyráběla i další modely počítačů, které sice neměly s originálními UNIVACy příliš mnoho společných vlastností, ovšem jednalo se již o zavedenou a všeobecně známou značku, které se firma z marketingových důvodů držela. Totéž platí i pro páskové jednotky pojmenované Uniservo, které se díky své kvalitě a schopnostem (automatický posuv pásky oběma směry s možností zastavení na jakémkoli místě) staly jedním z typických příslušenství dalších počítačů.

Obrázek 9: Uchladit statisíce diskrétních součástek, ze kterých byl počítač UNIVAC III sestaven, vyžadovalo výkonnou klimatizaci.

4. Počítače série UNIVAC 1101

Paralelně navrhovaná a vyráběná řada mainframů nesoucích jméno UNIVAC zahrnovala počítače UNIVAC 1101 (původně se jednalo o počítač ERA 1101, komerčně dostupný od roku 1950) až UNIVAC 1105, který byl uveden na trh v roce 1958. Na tuto řadu navazovala další řada označovaná většinou jako UNIVAC 1100 series. První počítač z této řady – UNIVAC 1107 – začal být komerčně nabízen v roce 1962 a poslední model UNIVAC 1100/90 o celých dvacet let později, tj. v roce 1982. V tomto období samozřejmě došlo, a to dokonce několikrát, ke změně použité technologie elektronických součástek i technologie operačních pamětí a pamětí externích, což vedlo ke zvýšení rychlosti počítače i kapacity jeho pamětí v rozsahu několika řádů. V následujícím textu se nejdříve seznámíme s modely UNIVAC 1101 až UNIVAC 1105, které mají mnoho společných vlastností.

Obrázek 10: Zrekonstruovaný dešifrovací stroj Colossus Mark.

Sálový počítač UNIVAC 1101 ve skutečnosti nebyl navržen přímo ve firmě Remington Rand, ale společností Engineering Research Associates, známé spíše pod zkratkou ERA. Základy této společnosti můžeme najít již v období druhé světové války. Původně se totiž jednalo o skupinu vědců a inženýrů pracujících pro námořnictvo USA v divizi, která se soustředila především na kryptoanalýzu. Po ukončení druhé světové války se společnost Engineering Research Associates – ERA (nyní již zcela v soukromých rukou) dále zaobírala kryptoanalýzou prováděnou na základě smluv uzavřených s námořnictvem, což s sebou samozřejmě přinášelo i nutnost návrhu a následné konstrukce elektromechanických a později i čistě elektronických počítačů, které by byly schopné urychlit luštění šifer.

Obrázek 11: Další dešifrovací stroj – tentokrát (Cryptographic) Bomb z USA.

Použití počítačů či specializovaných strojů konstrukčně podobných počítačům (které ovšem většinou nebyly Turingovsky kompletní) v této oblasti ostatně nebylo nic nového, protože podobné specializované počítače byly používány již prakticky od začátku druhé světové války (v Polsku pravděpodobně ještě dříve). Patrně nejznámějším z těchto počítačů je britský stroj Colossus Mark I a Colossus Mark II použitý pro dešifrování zpráv kryptovaných Lorenzovým strojem, nebo elektronicko-mechanický počítač nazvaný (kryptografická) Bomba zkonstruovaný v Polsku, který byl použitý při luštění zpráv zašifrovaných některými modely slavného šifrovacího stroje Enigma či dešifrovací stroj se shodným názvem „bomba“ (resp. bomb), jenž byl ovšem provozován v USA.

Obrázek 12: Společnost ERA se poměrně intenzivně zabývala i vývojem bubnových pamětí. Na této fotografii je zobrazen první typ bubnové paměti, který tato společnost vytvořila.

5. Vznik společnosti ERA (Engineering Research Associates)

Jeden ze specializovaných počítačů vytvořených ve firmě ERA byl i stroj nazvaný Demon, který byl navržen takovým způsobem, aby dokázal dešifrovat kód používaný v tom období v SSSR. Ovšem v roce 1949 se tato šifra změnila, takže se počítač Demon stal nepoužitelným (jednalo se totiž o stroje, které nebylo možné programovat – z dnešního pohledu se tedy tyto stroje neřadí mezi plnohodnotné počítače). Právě na příkladu počítače Demon se ukázalo, že pro kryptoanalýzu i další s ní spojené činnosti by bylo vhodnější použít univerzální programovatelné počítače. Námořnictvo USA na základě této (ostatně zcela správné) úvahy uzavřelo se společností ERA zakázku na nový typ počítače – mělo se jednat o stroj s programem uloženým v operační paměti, což by v budoucnosti umožnilo takový počítač použít pro různé typy šifer. Společnost ERA skutečně takový stroj navrhla – jednalo se o počítač nazvaný Atlas, který pro uložení programů i dat používal bubnovou paměť.

Obrázek 13: Výměna jednoho modulu počítače Atlas.

Firma ERA začala záhy tento počítač komerčně nabízet pod názvem ERA 1101, přičemž 1101 v názvu tohoto počítače značí binárně zapsanou hodnotu 13 (13 totiž bylo číslo kontraktu mezi námořnictvem a firmou ERA). Vzhledem k tomu, že ERA dostávala jak zakázky zadávané námořnictvem, tak měla i příjmy z její komerční aktivity, by se mohlo zdát, že její budoucnost bude plná samých pozitiv a sociálních jistot :-) Ve skutečnosti se však firma ERA dostala do několika soudních sporů, mj. i proto, že prý její vlastníci neoprávněně využili svých zkušeností získaných ze státních zakázek z doby války.

Obrázek 14: Při celkovém pohledu na počítač ERA 1101 je zřejmé, proč se těmto strojům říkalo sálové počítače.

Výsledkem několika soudních procesů (nezávisle na jejich výsledku) bylo to, že se ERA dostala do finančních potíží a v roce 1952 byla koupena společností Remington Rand, toho času výrobcem sálových počítačů UNIVAC. Již v předchozích článcích jsme si řekli, že značka UNIVAC byla mezi veřejností již dostatečně známá (mj. i kvůli přesné predikci výsledků prezidentských voleb spočítaných UNIVACem před televizními kamerami), takže nepřekvapí, že se počítače ERA 1101 začaly prodávat pod „zvučnějším“ jménem UNIVAC 1101. Patrně jen málo pozdějších vlastníků nějakého stroje série UNIVAC 1101 vědělo, že číslo 1101 původně znamenalo dekadickou hodnotu 13 zapsanou v binární soustavě, ostatně později se na binární číslo 1101 pohlíželo jako na číslo dekadické, což začalo již modelem 1102.

Obrázek 15: Další pohled na jeden z modelů bubnové paměti navržené inženýry ze společnosti ERA.

6. Základní parametry počítače UNIVAC 1101

Sálový počítač UNIVAC 1101 byl v porovnání s některými dalšími stroji své éry poměrně jednoduchý – jeho logické obvody, tj. řadič a aritmeticko-logická jednotka, byly sestaveny z 2700 elektronek a několika tisíc pasivních součástek. Zatímco operační paměť původních počítačů firmy EMCC, tj. zejména paměť BINACu a UNIVACu I, byla vyrobena s využitím akustických zpožďovacích trubic, byla u UNIVACu 1101 namísto toho použita takzvaná bubnová paměť, tj. buben o poloměru přibližně 22 cm pokrytý feromagnetickou vrstvou, který rotoval rychlostí 3500 otáček za minutu. Na tento buben byla data zaznamenávána 200 kombinovanými hlavičkami umožňujícími provádět čtení i zápis. Hlavičky se u bubnových pamětí nepohybovaly a měly přímý fyzický kontakt s povrchem bubnu, na rozdíl od pozdějších pevných disků. Celá bubnová paměť měla u UNIVACu 1101 kapacitu 16384 slov, přičemž každé slovo mělo šířku 24 bitů (není tedy těžké vypočítat, že celková kapacita bubnové paměti počítače UNIVAC 1101 byla při použití dnešních jednotek rovna 48 kilobajtům).

Obrázek 16: Součástí počítačů první generace (mezi něž patřil i UNIVAC 1101) byly i klopné obvody sestavené z elektronek.

V závislosti na aktuálním natočení bubnu vůči čtecím/zápisovým hlavičkám se doba přístupu k jednotlivým slovům pohybovala v rozsahu 32 mikrosekund až 17 milisekund. V předchozím odstavci jsme si řekli, že operační paměť byla rozdělená na 16384 slov, kde každé slovo mělo šířku 24 bitů. Celá konstrukce řadiče i aritmeticko-logické jednotky tedy byla orientována na zpracování 24bitových slov a v některých případech (týkalo se to především akumulátoru) i slov s dvojnásobnou šířkou, tj. 48 bitů. Podobně jako prakticky všechny ostatní sálové počítače éry padesátých let minulého století, ani UNIVAC 1101 nedokázal pracovat s menším blokem dat, než odpovídalo šířce slova, tj. oněm 24 bitům (to je v přímém kontrastu s dnešními počítači a jejich mikroprocesory, které i přes svoji 32bitovou či 64bitovou architekturu stále ještě dokáží adresovat i jednotlivé bajty, i když se jedná v mnoha případech o operace pomalé či jiným způsobem nevýhodné).

Obrázek 17: Část původního schématu počítače ERA 1101/UNIVAC 1101 (pravděpodobně se jedná o obvod řídicí bubnovou paměť).

7. Instrukční sada UNIVACu 1101

V předchozí kapitole jsme si řekli, že počítač UNIVAC 1101 pracoval se slovy, které měly šířku 24 bitů. Právě s takto širokými slovy mohla pracovat jeho aritmeticko-logická jednotka, ovšem s jednou výjimkou – akumulátor (registr označovaný v assembleru písmenem A) měl dvojnásobnou šířku, tj. 48 bitů. Vzhledem k tomu, že se při načítání či ukládání hodnoty akumulátoru z/do operační paměti pracovalo pouze s 24 bity, byly některé výpočty optimalizovány takovým způsobem, aby se aritmetické operace prováděly pouze v akumulátoru, tj. bez uložení mezivýsledků do operační paměti (mimochodem – širší akumulátor mají i některé moderní digitální signálové procesory). Kromě akumulátoru disponoval počítač UNIVAC 1101 dalšími dvěma pracovními registry – 24bitovým registrem X a taktéž 24bitovým registrem Q. Většina instrukcí pracovala s jedním nebo dvěma pracovními registry a taktéž s obsahem jednoho slova uloženého v paměti.

Obrázek 18: Starší typ bubnové paměti z Polska.

Všechny číselné hodnoty uložené v operační paměti nebo v registrech X a Q, používaly reprezentaci v jedničkovém doplňku, tj. kladné číslo a se od své opačné hodnoty -a odlišovalo tak, že jeho bity 0–23 byly invertovány. Tato reprezentace celých čísel sice vedla ke zjednodušení aritmeticko-logické jednotky (v porovnání s použitím dvojkového doplňku), na druhou stranu to však znamenalo, že nulová hodnota mohla být reprezentována buď slovem, jehož bity byly nastavené na nulu („kladná“ nula) nebo naopak na jedničku („záporná“ nula). Všechny instrukce měly stejnou bitovou šířku, jako byla šířka zpracovávaných slov – 24 bitů. Z těchto 24 bitů bylo 6 bitů vyhrazeno pro operační kód (teoreticky tedy mohlo existovat 26=64 instrukcí, ve skutečnosti jich bylo pouze 38), 4 bity představovaly hodnotu skip, o kterou se měl navíc zvýšit čítač instrukcí a v následujících 14 bitech byla uložena adresa paměťové buňky, se kterou instrukce pracovala (14 bitů v tomto případě dostačuje, neboť jsme si již řekli, že bubnová paměť měla kapacitu 16384 slov).

Následuje tabulka s příkladem některých instrukcí počítače UNIVAC 1101. Povšimněte si, že se operační kód zapisuje v osmičkové soustavě, což je zde výhodné, protože je nutné zapsat pouze 6 bitů, tj. dvě osmičkové číslice. Taktéž si povšimněte, že 14bitová adresa, která je součástí každé instrukce, má dva významy – buď se jedná o adresu operandu (konstanty) nebo o cílovou adresu skoku:

Operační kód (oct) Instrukce Význam
11 LOAD do registru A se uloží konstanta z adresované paměťové buňky
12 ADD přičtení hodnoty z paměťové buňky k registru A
35 STORE uložení registru A do paměti na zadanou adresu
42 ADD přičtení hodnoty registru Q k registru A (akumulátoru)
43 MOVE přesun hodnoty z registru A do registru Q
45 JUMP skok na adresu (adresa v instrukci je cílovou adresou)
47 IF podmíněný skok na adresu v případě, že A je nenulové
55 STOP ukončení programu

Obrázek 19: Zrestaurovaná bubnová paměť novějšího typu vystavená v muzeu. Základem dobré funkce bubnové paměti bylo přesné vyvážení bubnu a taktéž jeho dokonale válcový povrch, protože při otáčkách převyšujících cca 3000 otáček za minutu a hlavách dotýkajících se povrchu bubnu by každá mechanická nepřesnost vedla minimálně ke ztrátě dat, většinou však i ke zničení celého zařízení.

Podívejme se nyní, jak by mohl vypadat jednoduchý demonstrační program, který sečte prvních 50 lichých čísel. Zdrojový kód tohoto programu byl získán na adrese https://wiki.cc­.gatech.edu/fol­klore/index.php/En­gineering_Rese­arch_Associates_an­d_the_Atlas_Com­puter_(UNIVAC_1101). Instrukční kódy jsou zapisovány v osmičkové soustavě, což znamená, že osm číslic vyjadřuje hodnotu 8×3=24 bitů. Ve druhém sloupci je zapsána hodnota 24bitového slova tak, jak je toto slovo uložené v operační paměti. V následujících třech sloupcích tabulky je toto slovo rozděleno na operační kód instrukce, hodnotu skip (přeskočení) a adresní část instrukce. Povšimněte si především toho, jakým způsobem se muselo pracovat s konstantami – ty nebyly součástí instrukce, ale musely být načítány z operační paměti přes zadanou adresu:

Adresa (oct) Instrukce (oct) Operační kód Skip Adresa Popis instrukce
37777 11010020 11 0 10020 Load A register with constant at address 10020
00000 35010022 35 0 10022 Store it into address 10022 to be counter value
00001 11010016 11 0 10016 Load A register with the value 1 (from address 10016)
00002 35010021 35 0 10021 Store current sum into address 10021
00003 43000000 43 0 00000 Transfer the value (1) in A register into Q register
00004 11010017 11 0 10017 Load a 2 (from address 10017) into A register
00005 42000000 42 0 00000 Add value in Q register to value in A register
00006 43000000 43 0 00000 Transfer this total from A register to Q register
00007 12010021 12 0 10021 Add previous sum from address 10021 to value in A register
00010 35010021 35 0 10021 Store new sum into address 10021
00011 11010022 11 0 10022 Load A register with counter from address 10022
00012 47000014 47 0 00014 If A is non-zero jump (47) to address 00014 (decrement A by 1)
00013 55000000 55 0 00000 Stop
00014 35010022 35 0 10022 Store reduced counter into address 10022
00015 45000004 45 0 00004 Jump to address 00004
10016 00000001 00 0 00001 The value 1 (nejde o instrukci)
10017 00000002 00 0 00002 The value 2 (nejde o instrukci)
10020 00000060 00 0 00060 The value 48 (octal 60)
10021 00000000 00 0 00000 Storage location for sum (nejde o instrukci)
10022 00000000 00 0 00000 Storage location for counter (nejde o instrukci)

8. Další historie vývoje bubnových pamětí

S bubnovými paměťmi navrhovanými společností ERA a použitými mj. i v sálových počítačích UNIVAC 1101, je spojen ještě jeden zajímavý příběh. Vzhledem k tomu, že ERA měla ještě z doby druhé světové války poměrně velké zkušenosti s návrhem a výrobou bubnových pamětí, nabídla jí firma IBM zakázku na konstrukci bubnové paměti vhodné pro jejich (později velmi úspěšný) počítač IBM 650, se kterým se ještě podrobněji seznámíme v některé následující části tohoto seriálu. Vývoj této bubnové paměti skutečně začal, ale zhruba v době, kdy byla společnost ERA kvůli svým finančním problémům zakoupena firmou Remington Rand (prosinec roku 1951) začala IBM interně vyvíjet vlastní verzi bubnové paměti – inženýři z IBM, kteří se na vývoji podíleli, přitom byli instruováni, aby jimi navržená bubnová paměť neporušovala žádné patenty držené firmou ERA, popř. po její akvizici drženými společností Remington Rand.

Obrázek 20: Jeden z prvních modelů bubnové paměti, tentokrát pocházející z Velké Británie.

ict ve školství 24

Z tohoto důvodu se bubnová paměť použitá v sálovém počítači IBM 650 (viz též fotografie) v mnoha detailech odlišovala od bubnových pamětí používaných v počítačích UNIVAC (princip práce zůstal samozřejmě stejný, ostatně bubnová paměť byla vynalezena již na počátku třicátých let minulého století, tj. dlouho před založením firmy ERA). Ovšem společnost Remington Rand na bubnové paměti nezanevřela – naopak navázala na zkušenosti získané svými inženýry pracujícími původně v ERA a vyvíjela další typy magnetických pamětí. Výsledkem jejich práce byla například obří několikatunová paměť nazvaná poněkud eufemisticky FASTRAND. Jednalo se vlastně o určitý hybrid mezi bubnovou pamětí a pevným diskem, protože ve FASTRAND byl sice použitý rotující buben pokrytý magnetickou vrstvou, ale kombinované čtecí/zápisové hlavičky (jichž bylo pouze 64, ne několik set jako u klasické bubnové paměti) se již mohly přesouvat mezi jednotlivými stopami. Rychlost přesouvání hlaviček sice nebyla nijak vysoká, což však bylo nahrazeno poměrně velkou kapacitou – jednalo se o přibližně 90 megabajtů. S tímto (podle pamětníků nezapomenutelným) typem paměti se ještě podrobněji seznámíme v následující části seriálu.

Obrázek 21: Konstrukčně odlišný typ bubnové paměti, kde je počet záznamových stop snížen, ovšem na druhou stranu je prodloužena jejich délka.

9. Odkazy na Internetu

  1. ERA 1101 Documents
    http://ed-thelen.org/comp-hist/ERA-1101-documents.html
  2. Ukázkový program pro UNIVAC 1101/ERA 1101
    https://wiki.cc­.gatech.edu/fol­klore/index.php/En­gineering_Rese­arch_Associates_an­d_the_Atlas_Com­puter_(UNIVAC_1101)
  3. UNIVAC I Computer System
    http://univac1­.0catch.com/
  4. UNIVAC I Computer System
    http://univac1­.0catch.com/y­ellowpage.htm
  5. UNIVAC (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­nivac
  6. UNIVAC I (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_I
  7. UNIVAC II – Universal Automatic Computer Model II
    http://ed-thelen.org/comp-hist/BRL61-u4.html
  8. UNIVAC II (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_II
  9. UNIVAC III (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_III
  10. UNIVAC 1101 (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_1101
  11. UNISYS History Newsletter
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Ma­in_Page
  12. UNIVAC Solid State (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_Solid_Sta­te
  13. Bi-quinary coded decimal (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bi-quinary_coded_de­cimal
  14. UNIVAC III Data Processing System
    http://ed-thelen.org/comp-hist/BRL61-u4.html#UNIVAC-III
  15. The UNIVAC III Computer
    https://wiki.cc­.gatech.edu/fol­klore/index.php/The_U­NIVAC_III_Com­puter
  16. UNIVAC III Photos
    http://jwstep­hens.com/univac3/pa­ge01.htm
  17. A History of Unisys Computers (kniha)
    http://www.lu­lu.com/produc­t/hardcover/a-history-of-unisys-computers/4627477
  18. UNIVAC III Instructions Reference Card
    http://www.bit­savers.org/pdf/u­nivac/univac3/UT-2455_UNIVACII­I_RefCd61.pdf
  19. Index register (Wikipedia)
    http://en.wiki­pedia.org/wiki/In­dex_register
  20. FLOW-MATIC, COBOL's Roots, Birth of COBOL…
    http://www.inf.fu-berlin.de/leh­re/SS01/hc/pl/co­bol.htm
  21. FLOW-MATIC
    http://en.wiki­pedia.org/wiki/FLOW-MATIC
  22. FLOW-MATIC Manual
    http://archive­.computerhisto­ry.org/resources/tex­t/Remington_Ran­d/Univac.Flow­matic.1957.102646140­.pdf
  23. Grace Murray Hopper
    http://cs-www.cs.yale.e­du/homes/tap/Fi­les/hopper-story.html
  24. Grace Hopper
    http://en.wiki­pedia.org/wiki/Gra­ce_Hopper
  25. Biographies of Women Mathematicians: Grace Murray Hopper
    http://www.ag­nesscott.edu/lrid­dle/women/hop­per.htm
  26. A-0 System
    http://en.wiki­pedia.org/wiki/A-0_programming_lan­guage
  27. Rosetta Code – Category:COBOL
    http://rosetta­code.org/wiki/Ca­tegory:COBOL
  28. COmmon Business Oriented Language
    http://foldoc­.org/COBOL
  29. COBOL Compilers
    http://www-01.ibm.com/sof­tware/awdtool­s/cobol/
  30. Cobol: Not Dead Yet
    http://www.com­puterworld.com/s/ar­ticle/266156/C­obol_Not_Dead_Y­et?intsrc=kc_rfavs
  31. The future's bright … the future's Cobol
    http://features­.techworld.com/ap­plications/3056/the-futures-bright–the-futures-cobol/
  32. COBOL Example Programs
    http://www.csis­.ul.ie/COBOL/e­xamples/defau­lt.htm
  33. Introduction to COBOL
    http://www.csis­.ul.ie/COBOL/Cou­rse/COBOLIntro­.htm
  34. COBOL programming – tutorials, lectures, exercises, examples
    http://www.csis­.ul.ie/COBOL/
  35. Wikipedia: COBOL
    http://en.wiki­pedia.org/wiki/CO­BOL
  36. Humor on Computers, Systems and Programming
    http://www-crypto.htw-saarland.de/we­ber/misc/program­ming.html
  37. OpenCOBOL
    http://en.wiki­pedia.org/wiki/O­penCOBOL
  38. OpenCOBOL.org
    http://openco­bol.org/
  39. OpenCOBOL FAQ
    http://openco­bol.add1tocobol­.com/
  40. TinyCOBOL
    http://tiny-cobol.sourcefor­ge.net/
  41. TinyCOBOL FAQ
    http://tiny-cobol.sourcefor­ge.net/docs/faq/
  42. JTC1/SC22/WG4 – COBOL
    http://ra.dku­ug.dk/jtc1/sc2­2/wg4/
  43. COBOL on COGS
    http://www.co­boloncogs.org/IN­DEX.HTM
  44. Cobol Coders: Going, Going, Gone?
    http://www.com­puterworld.com/s/ar­ticle/266228/C­obol_Coders_Go­ing_Going_Gone_
  45. BUNCH
    http://en.wiki­pedia.org/wiki/BUN­CH
  46. The Colossus That Works
    http://www.ti­me.com/time/ma­gazine/article/0,9171,9­49693–5,00.html
  47. Mainframe computer
    http://en.wiki­pedia.org/wiki/Ma­inframe_compu­ter
  48. United States Census Bureau
    http://en.wiki­pedia.org/wiki/U­nited_States_Cen­sus_Bureau
  49. Slideshow – More Core Memories
    http://spectrum­.ieee.org/com­puting/hardwa­re/slideshow-more-core-memories
  50. UNIVAC I Mercury Delay Line Memory
    http://ed-thelen.org/comp-hist/vs-univac-mercury-memory.html
  51. Digital Number System Part-III
    http://www.asic-world.com/digi­tal/numbering3­.html
  52. Excess-3 – Definition
    http://www.wor­diq.com/defini­tion/Excess-3
  53. Excess-3
    http://en.wiki­pedia.org/wiki/Ex­cess-3
  54. Method of complements
    http://en.wiki­pedia.org/wiki/Met­hod_of_comple­ments
  55. Univac documentation
    http://www.bit­savers.org/pdf/u­nivac/univac1/
  56. UNISERVO
    http://en.wiki­pedia.org/wiki/U­NISERVO
  57. John Mauchly
    http://en.wiki­pedia.org/wiki/Joh­n_Mauchly
  58. J. Presper Eckert
    http://en.wiki­pedia.org/wiki/J­._Presper_Eckert
  59. BINAC
    http://en.wiki­pedia.org/wiki/BI­NAC
  60. Delay line memory
    http://en.wiki­pedia.org/wiki/De­lay_line_memo­ry
  61. Paměť se zpožďovací linkou
    http://cs.wiki­pedia.org/wiki/Pa­měť_se_zpožďo­vací_linkou
  62. Description of the BINAC
    http://www.pa­losverdes.com/las­thurrah/binac-description.html
  63. UNIVersal Automatic Computer
    http://www.thoc­p.net/hardware/u­nivac.htm
  64. IBM 36-bit computers
    http://www.36bit­.org/ibm/
  65. Symbolics 36-bit computers
    http://www.36bit­.org/symbolic­s/
  66. IBM System 360/370 Compiler and Historical Documentation
    http://www.edel­web.fr/Simula/
  67. Who Was Who in IBM's Programming Research? Early FORTRAN Days
    http://www.tra­iling-edge.com/~bob­bemer/PRORES.HTM
  68. Control Data Corporation (CDC) 6600: 1966–1977
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/6600­.jsp
  69. Control Data Corporation (CDC) 7600: 1971–1983
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/7600­.jsp
  70. Cray History
    http://www.cra­y.com/About/His­tory.aspx?404;http:­//www.cray.com:80/a­bout_cray/his­tory.html
  71. Cray Historical Timeline
    http://www.cra­y.com/Assets/PDF/a­bout/CrayTime­line.pdf
  72. Company: Cray Research, Inc. (Computer History)
    http://www.com­puterhistory.or­g/brochures/com­panies.php?al­pha=a-c&company=com-42b9d5d68b216
  73. PDP-1 Web Pages
    http://www.pdp-1.org/
  74. PDP-1 Restoration Process
    http://pdp-1.computerhis­tory.org/pdp-1/
  75. Programmed Data Processor
    http://en.wiki­pedia.org/wiki/Pro­grammed_Data_Pro­cessor
  76. Digital Equipment Corporation
    http://en.wiki­pedia.org/wiki/Di­gital_Equipmen­t_Corporation
  77. PDP-1
    http://en.wiki­pedia.org/wiki/PDP-1
  78. Ancient Computing Machinery
    http://www.ee­.ryerson.ca/~el­f/ancient-comp/index.html
  79. Spacewar – The first computer video game. Really!
    http://www3.sym­patico.ca/mau­ry/games/space/spa­cewar.html
  80. Programmed Data Processor-1 Handbook
    http://www.dbit­.com/~greeng3/pdp1/pdp1­.html

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.