IBM a sedm trpaslíků 18 - superpočítač CDC 7600 (dokončení)

23. 6. 2011
Doba čtení: 16 minut

Sdílet

V dnešní části seriálu o historii vývoje výpočetní techniky dokončíme popis superpočítače CDC 7600 navrženého a sestrojeného v šedesátých letech minulého století Seymourem Crayem. Popíšeme si architekturu operační paměti tohoto počítače, strukturu jeho výpočetních jednotek i to, jakým způsobem se pro tento ve své době velmi úspěšný stroj psaly a optimalizovaly aplikace.

Obsah

1. Superpočítač CDC 7600 – předchůdce slavného Craye-1

2. Inovativní tvar a modulová stavba superpočítače CDC 7600

3. Operační paměť počítače CDC 7600

4. Výpočetní jednotky počítače CDC 7600

5. Instrukční a datové pipeline

6. Délky trvání základních aritmetických operací na počítači CDC 7600

7. Optimalizace aplikací pro CDC 7600

8. Další vývoj superpočítačů sestrojených Seymourem Crayem

9. Odkazy na Internetu

1. Superpočítač CDC 7600 – předchůdce slavného Craye-1

I visited Livermore in 1971 and they showed me a CDC 7600. I had just designed a character generator for a high-resolution CRT with 27 ns pixels, which I thought was pretty fast. It was a schock to realize that the 7600 could do a floating-point multiply for every dot that I could display!
Butler Lampson

V dnešní části seriálu o historii vývoje výpočetní techniky navážeme na část předchozí, v níž jsme si řekli základní informace o superpočítači CDC 7600 sestrojeného Seymourem Crayem v polovině šedesátých let minulého století. Připomeňme si, že se jednalo o nejvýkonnější superpočítač své éry a dokonce se jednalo o stroj, který se prozatím (tj. po zhruba padesátiletou historii superpočítačů a distribuovaných výpočetních sítí) udržel na světové špičce nejdéle ze všech ostatních superpočítačů. Buďme však konkrétní: CDC 7600 byl nejvýkonnějším počítačem na světě od roku 1969 až do roku 1976, kdy byl překonán svým nepřímým následovníkem – superpočítačem Cray 1. Špičkový výkon počítače CDC 7600 dosahoval pro ručně optimalizované programy až 10 MFLOPS a teoretický výpočetní výkon při práci všech dále popsaných funkčních jednotek a při provedení jedné instrukce v každém taktu mohl dosahovat až ve své době takřka neuvěřitelné hodnoty 36 MFLOPS.

Obrázek 1: Celkový pohled na superpočítač CDC 7600.

I hodinová frekvence používaná devíti procesorovými jednotkami tohoto počítače (tato frekvence samozřejmě přímo souvisí s MFLOPS) převýšila frekvence používané u jiných dobových počítačů, protože dosahovala hodnoty 36,4 MHz (délka trvání jednoho cyklu = 27,5 nanosekund), zatímco u většiny mainframů hodinová frekvence nepřekročila 10 MHz a u mnoha mainframů se dokonce pohybovala pod hranicí jednoho MHz. I další údaje o superpočítači CDC 7600 jsou zajímavé: jeho cena dosahovala v základním vybavení 5,1 milionu dolarů (což však nebyla pro potenciální zákazníky cena nijak závratná, zejména při přepočtu ceny na jeden MFLOPS), procesorové jednotky a řadiče byly sestaveny z 3360 vyměnitelných a samostatně testovatelných modulů a pro vzájemné propojení těchto modulů bylo použito přibližně 193 kilometrů (120 mil) vodičů. Ovšem pravděpodobně nejdůležitější novinkou, která byla při konstrukci tohoto počítače využita, byla instrukční a datová pipeline, která poměrně zásadním způsobem umožnila zvýšit jeho výpočetní výkon.

Obrázek 2: Detailní pohled na jednotku superpočítače CDC 7600.

2. Inovativní tvar a modulová stavba superpočítače CDC 7600

V tomto seriálu jsme se již zabývali superpočítači Cray 1, Cray X-MP, Cray Y-MP a Cray 2. Většina lidí seznámených s výpočetním výkonem těchto strojů byla při jejich shlédnutí překvapena, jak jsou tyto počítače ve skutečnosti malé, především v porovnání s konkurenčními superpočítači. Miniaturizace byla jedním z důvodů, proč Seymour Cray dokázal konstruovat počítače s velmi krátkými strojovými cykly – při malé vzdálenosti mezi jednotlivými moduly docházelo jen k minimálnímu zpoždění (poněkud paradoxní je, že se Cray poměrně dlouho obešel bez nutnosti využití integrovaných obvodů CMOS). Ovšem Cray se snažil o miniaturizaci a využití poměrně inovativního tvaru počítače (zejména jeho půdorysu) již u dnes popisovaného stroje CDC 7600. Jednotky tohoto stroje byly půdorysně uspořádány do tvaru hranatého písmene C, což umožnilo zkrátit a tím pádem i urychlit přenos dat mezi jednotlivými jednotkami (u později zkonstruovaných počítačů Cray se jejich tvar stal ještě zajímavější, a to i po designové stránce). Pokud by se všechny jednotky počítače CDC 7600 umístily vedle sebe, vznikl by útvar dlouhý zhruba 7,5 metru.

Obrázek 3: Pohled na jeden z modulů, z nichž byly sestaveny jednotlivé procesory počítače CDC 7600.
Autor: Eric Foxley

Seymour Cray při stavbě superpočítače CDC 7600 využil unifikované moduly (což byla jeho oblíbená a časem prověřená technologie), kterých bylo použito celkem 3360. Každý modul byl tvořen oboustranným plošným spojem s konektorem na jedné straně a několika piny určenými pro testování a měření na straně druhé – viz též obrázky číslo 3 a 4, na nichž je na levé straně zobrazen šestnáctipinový konektor a na straně pravé šestice pinů určených pro testovací účely. Základními elektronickými součástkami použitými při konstrukci počítače CDC 7600 se staly rezistory a polovodičové (bipolární) tranzistory, z nichž se skládaly jak klopné obvody, tak i veškerá kombinační logika. Zvětšený pohled na jeden z modulů počítače CDC 7600 je vyobrazen na obrázcích číslo 5 a 7. Z unifikovaných modulů byly sestaveny jak procesorové jednotky (kterých bylo celkem devět), tak i I/O procesory používané pro ovládání periferních zařízení. Taktéž všechny registry byly zapojeny jako klopné obvody sestavené z unifikovaných modulů.

Obrázek 4: Zadní strana jednoho z modulů počítače CDC 7600.
Autor: Eric Foxley

3. Operační paměť počítače CDC 7600

Při konstrukci superpočítače CDC 7600 bylo využito hierarchické struktury operační paměti, což je technologie, která se osvědčila a je ve své vylepšené podobě používaná i v moderních počítačích. Seymour Cray se totiž rozhodl, že hlavní operační paměť nazvaná Small Core Memory (SCM) bude mít kapacitu pouze 65536 slov, přičemž každé slovo bude mít šířku šedesát bitů. To je přesně poloviční kapacita operační paměti, než jakou se v maximální konfiguraci pyšnil jeho předchůdce CDC 6600. Toto řešení samozřejmě mnoha lidem připadalo minimálně nerozumné, ovšem ve skutečnosti se díky menší kapacitě operační paměti mohla její kapacita rozdělit mezi 32 modulů pracujících částečně paralelně, což v důsledku vedlo k tomu, že špičková přenosová rychlost mezi pamětí SCM a procesorovými jednotkami dosahovala na svou dobu neuvěřitelné hodnoty 1152 milionu slov za sekundu (pro počítač pracující rychlostí 36 MFLOPS se jednalo o dostačující rychlost).

Obrázek 5: Základní součástky všech modulů: rezistory a polovodičové tranzistory.
Autor: Eric Foxley

Vzhledem k tomu, že kapacita SCM pro mnoho aplikací (pracujících například s rozměrnými maticemi) nedostačovala, byla tato paměť doplněna blokem nazvaným příznačně Large Core Memory (LCM). Kapacita této paměti již dosahovala 514288 slov (512k slov), ovšem přístupová doba byla poněkud horší – pro přenos dat mezi SCM a LCM se používaly datové pakety o šířce osm slov, jejichž přenos trval 64 strojových cyklů. Přenos dat mezi SCM a LCM mohl být částečně zautomatizován. Dnes nás tento způsob rozdělení paměti na dvě části pravděpodobně nepřekvapí, protože jakýkoli stolní počítač obsahuje kromě relativně pomalé operační paměti i datovou a instrukční vyrovnávací paměť (cache), která svou funkcí zhruba odpovídá SCM.

Obrázek 6: Jednotka s částí operační paměti superpočítače CDC 7600.

4. Výpočetní jednotky počítače CDC 7600

Superpočítač CDC 7600 obsahoval celkem devět výpočetních jednotek, z nichž každá byla určena pro provádění jiného typu operací. Většina těchto jednotek s výjimkou děličky pro čísla s pohyblivou řádovou čárkou obsahovala pipeline. To znamenalo, že v každém strojovém cyklu mohlo v každé jednotce začít zpracování nové operace (jen u násobičky byla další operace zdržena o dva takty). Názvy a význam všech devíti výpočetních jednotek jsou uvedeny v tabulce pod tímto odstavcem. Zajímavá je především existence samostatné jednotky pro výpočet Hammingovy váhy, tj. počtu bitů, které jsou v jednom slově (registru) nastaveny na jedničku. V pozdním stadiu vývoje chtěl Seymour Cray tuto jednotku odstranit, ovšem na žádost NSA zůstala tato jednotka zachována, což vedlo k domněnce, že se výpočet Hammingovy váhy v NSA s velkou pravděpodobností využíval pro kryptoanalýzu (což je skutečně jedna z možností, jak tuto operaci využít).

Obrázek 7: Další zvětšený pohled na jeden z modulů superpočítače CDC 7600.

# Název jednotky Význam
1 Increment sčítačka a odčítačka celých čísel, použito pro adresování operandů v operační paměti
2 Population-Count výpočet Hammingovy váhy (počtu jedničkových bitů ve slově)
3 Normalize normalizace po provedení jiných aritmetických operací
4 Shift provádění aritmetických a bitových posuvů
5 Boolean vyčíslení veškerých logických operací
6 Long add sčítačka a odčítačka hodnot s pevnou řádovou čárkou (integer 60 bitů)
7 Floating point add sčítačka a odčítačka hodnot s plovoucí řádovou čárkou (float 60 bitů)
8 Floating point divide dělička hodnot s plovoucí řádovou čárkou
9 Floating point multiply násobička hodnot s plovoucí řádovou čárkou

Obrázek 8: Fotografie z dobových materiálů o superpočítači CDC 7600.

5. Instrukční a datové pipeline

Již v předchozí kapitole jsme se zmínili o tom, že jednotlivé výpočetní jednotky obsahovaly pipeline. Právě využití pipeline (zřetězení operací) bylo hlavní příčinou vysoké výpočetní rychlosti počítače CDC 7600, zatímco u jeho předchůdce CDC 6600 se spíše využívala relativně jednoduchá forma instrukčního paralelismu – připomeňme si například existenci dvojice výpočetních jednotek Multiply #1 a Multiply #2, popřípadě Increment #1 a Increment #2. Tato forma paralelismu nebyla u CDC 7600 použita, na rozdíl od jeho plánovaného nástupce CDC 8600, který měl obsahovat čtveřici identických procesorových jednotek. U superpočítače Cray-1, který je vzdálenějším nástupcem CDC 7600, se využívalo jedné formy datového paralelismu – vektorových operací. Ovšem pipeline ve funkčních jednotkách byla doplněna ještě jednou technologií, která byla v době konstrukce počítače CDC 7600 taktéž žhavou novinkou.

Obrázek 9: Prototyp počítače CDC 8600.

Jednalo se o instrukční pipeline, protože instrukční slova (obsahující kód instrukce i všechny operandy) se nenačítala přímo z operační paměti do procesoru (resp. do instrukčního dekodéru). Mezi operační pamětí a instrukčním dekodérem byla vytvořena fronta o délce dvanácti šedesátibitových slov (tato fronta byla paradoxně nazývána zásobník instrukčních slov). Do této fronty se instrukce postupně načítaly z operační paměti a následně bylo možné libovolnou načtenou instrukci zpracovat. To mj. znamenalo, že krátké programové smyčky, které bylo možné zakódovat do dvanácti slov o šířce šedesát bitů (což zhruba odpovídá dvaceti až třiceti instrukcím, viz též popis instrukčního formátu uvedený v předchozích částech tohoto seriálu), mohly probíhat velmi vysokou rychlostí bez nutnosti čtení dat z operační paměti. Ještě rychlejší bylo zpracování těchto programových smyček v případě, že všechny jejich operandy byly umístěny v pracovních registrech. Ostatně sada pracovních registrů zůstala prakticky stejná, jako tomu bylo v případě počítače CDC 6600:

Pojmenování Počet registrů Bitová šířka Funkce
X0, X1 … X7 8 60 provádění aritmetických instrukcí
A0, A1 … A7 8 18 adresování
B0, B1 … B7 8 18 adresování, přičtení či odečtení od dalších typů registrů, počitadla smyček

Obrázek 10: První část grafu znázorňujícího vývojovou řadu počítačů, jejichž architektura byla ovlivněna Seymourem Crayem. Po roce 1956 se vývoj rozdělil na dvě větve: řadu Univac a novou řadu počítačů CDC.

6. Délky trvání základních aritmetických operací na počítači CDC 7600

V tabulce zobrazené pod tímto odstavcem jsou pro zajímavost vypsány délky trvání některých základních aritmetických operací. Jedná se o počet cyklů nutných pro provedení celé operace, do této doby se však nepočítá čas nutný pro načtení instrukce z operační paměti (předpokládá se tedy, že instrukce je umístěna v instrukční pipeline, jinými slovy, že před instrukcí nebyl proveden skok). V tabulce si povšimněte především jedné zajímavosti – násobení a dělení celých čísel (integer) je o několik taktů pomalejší, než násobení a dělení čísel s pohyblivou řádovou čárkou s jednoduchou přesností (float), i když se v prvním případě jistě jedná o jednodušší operaci (není zapotřebí pracovat s exponenty ani provádět normalizaci výsledku). Vysvětlení této „anomálie“ je snadné, protože superpočítač CDC 7600 neobsahoval samostatnou násobičku a děličku pro celá čísla, takže se před provedením násobení či dělení musely provádět konverze na hodnoty s pohyblivou řádovou čárkou.

Obrázek 11: Druhá část grafu znázorňujícího vývojovou řadu počítačů ovlivněných Seymourem Crayem. Pokud se zaměříme na nejvýkonnější superpočítače, jedná se vlastně o slepou větev vývoje.

Nyní již následuje slíbená tabulka:

# Operace Datový typ Výraz ve Fortranu Počet cyklů Doba trvání (ns)
1 Součet celých čísel integer I=M+N 12 330
2 Rozdíl celých čísel integer I=M-N 12 330
3 Součin celých čísel integer I=M*N 18 495
4 Podíl celých čísel integer I=M/N 39 1073
5 Součet FP čísel single A=B+C 16 440
6 Rozdíl FP čísel single A=B-C 16 440
7 Součin FP čísel single A=B*C 15 413
8 Podíl FP čísel single A=B/C 30 825
9 Součet FP čísel double A=B+C 48 1320
10 Rozdíl FP čísel double A=B-C 48 1320
11 Součin FP čísel double A=B*C 49 1348
12 Podíl FP čísel double A=B/C 145 3988

Obrázek 12: Třetí část grafu znázorňujícího vývojovou řadu počítačů ovlivněných Seymourem Crayem. Právě na této větvi vznikly počítače s nejzajímavější architekturou i designem.

7. Optimalizace aplikací pro CDC 7600

Poměrně zajímavé a současně i pro nás pojídače koláčů poučné je studium optimalizací, které museli programátoři provádět při psaní výpočetně náročných aplikací pro superpočítač CDC 7600. Prakticky všechny aplikace byly tvořeny ve Fortranu (což je ostatně jazyk používaný v této oblasti dodnes), ovšem pro počítač CDC 7600 původně existoval pouze překladač, který neprováděl žádné optimalizace. To s sebou přinášelo výhody i nevýhody, ovšem jasnou výhodou bylo to, že programátoři přesně věděli, jakým způsobem se která programová konstrukce přeloží a jak ji lze optimalizovat se znalostí funkce jednotlivých výpočetních jednotek, o nichž jsme se zmínili v předchozím textu. Původní překladač Fortranu – na rozdíl mnoha současných programovacích jazyků – například překládal výrazy se závorkami takovým způsobem, že se podvýraz v závorce skutečně začal fyzicky provádět dříve, než zbytek výrazu.

Obrázek 13: Celkový pohled na superpočítač Cray-1.

Programátor tedy mohl se znalostí funkce výpočetních jednotek nahradit výraz:

(A*B*C)/D

za výraz:

A*B*(C/D)

protože věděl, že časově náročná operace dělení C/D začne být prováděna před operací násobení A*B a celkový čas pro vyhodnocení výrazu se tedy o zhruba 10 taktů zkrátí (násobení se začne provádět paralelně s dělením v jiné jednotce). Dalším způsobem urychlení vykonávání programů bylo „ruční“ rozbalení krátké programové smyčky (přibližně s deseti iteracemi, poté se již úzkým hrdlem stal přístup do operační paměti):

   DO 10 I=1,6
10 A(I)=B(I)*X

za sekvenci příkazů:

A(1)=B(1)*X
A(2)=B(2)*X
A(3)=B(3)*X
A(4)=B(4)*X
A(5)=B(5)*X
A(6)=B(6)*X

O takových „samozřejmostech“, jako je ruční přesun invariant cyklů před vlastní programovou smyčku, úpravě podmínek takovým způsobem, aby se podmínka s větší pravděpodobností nesplnila atd., se asi netřeba zmiňovat :-) Programátoři museli taktéž znát strukturu operační paměti a navrhovat algoritmy – většinou tu část, kde se přistupovalo do polí – takovým způsobem, aby nedocházelo k opakovanému čtení pouze z jednoho paměťového modulu.

Obrázek 14: Detail spodní části superpočítače CRAY-1S, kde můžeme mj. vidět i jeho chladicí systém.

8. Další vývoj superpočítačů sestrojených Seymourem Crayem

„The goal as you might imagine is for me to get rid of all the official functions – paper signing and things. That was accomplished well with the contract simply because I don't have to sign anything anymore. I'm still very involved in the company, and I think there's a feeling that it's a mutually satisfactory arrangement.“

Po uvedení superpočítače CDC 7600 na trh se začal Seymour Cray věnovat vývoji dalšího typu superpočítače CDC 8600, který měl mít podle prvních návrhů čtyři samostatně pracující procesorové jednotky a dobu trvání strojového cyklu pouze osm nanosekund. Ovšem firma CDC začala mít kvůli soudnímu sporu s IBM finanční problémy a i z těchto důvodů (navíc kvůli nespokojenosti s bující byrokracií a krácením financí na další vývoj) Seymour Cray firmu Control Data Corporation nakonec v roce 1972 opustil a založil Cray Research a později i Cray Computer Corporation (zajímavé je, že ředitel CDC do těchto firem sám investoval zhruba čtvrt milionu dolarů). Po odchodu Seymoura Craye z firmy CDC projekt počítače CDC 8600 ještě dva roky skomíral a nakonec byl v roce 1974 ukončen a firma CDC se namísto toho zaměřila na vývoj počítačů CDC STAR-100 (konstrukci vedl Jim Thornton), jejichž popisem se budeme zabývat v některém z dalších pokračování tohoto seriálu.

Obrázek 15: Superpočítač Cray-2 – pohled na výpočetní moduly a moduly s operační pamětí.
(zdroj: Cray Research)

bitcoin školení listopad 24

V následující tabulce jsou pro úplnost vypsány základní parametry superpočítačů nesoucích jméno Cray:

Systém/série Architektura Počet CPU Cyklus (ns) Paměť (Mslov) MFLOPS Rok výroby
CRAY 1 PVP 1 až 2 12,5 1 až 4 160 1977
CRAY 2 PVP 1 až 4 4,1 64 až 4096 488 až 1951 1985
CRAY 3 PVP 1 až 16 2,11 64 až 4096 948 až 15168 1993
             
CRAY X-MP PVP 1 až 4 9,5 8 až 16 200 až 800 1986
CRAY X-MP EA PVP 1 až 4 8,5 8 až 16 235 až 942 1987
CRAY Y-MP PVP 1 až 8 6,0 32 až 4096 333 až 2664 1989
CRAY C90 PVP 1 až 16 4,2 64 až 1024 1000 až 15238 1992
CRAY T90 PVP 1 až 32 2,2 64 až 1024 1800 až 57600 1995
             
CS6400 SMP 4 až 64 11,8 32 až 2048    
             
CRAY Y-MP EL PVP 2 až 8 30,0 32 až 512 133 až 532 1991
CRAY J90 PVP 4 až 32 10,0 32 až 1024    
             
CRAY T3D MPP 32 až 2048 6,7 8/CPU    
CRAY T3E MPP 16 až 2048 3,3 8 až 64/CPU    
             
CRAY XT5 (Jaguar) MPP 224 256 0,38 16GB/CPU 1750000000 2009

Obrázek 16: Osm plošných spojů obsazených čipy, které tvoří jeden modul počítače Cray-2. Mezi plošnými spoji můžeme vidět propojky (takzvané z-pins).
(zdroj: http://bobody­ne.com/web-docs/robots/cra­y2/)

9. Odkazy na Internetu

  1. CONTROL DATA 6400/6500/6600 COMPUTER SYSTEMS Reference Manual
    http://ed-thelen.org/comp-hist/CDC-6600-R-M.html#P2–1
  2. CDC 7600 FORTRAN Optimizing Techniques (odkaz na PDF)
    http://www.os­ti.gov/bridge/pur­l.cover.jsp?pur­l=/4466164-oepxe4/
  3. CDC 7600 (rozcestník)
    http://wn.com/CDC_7600
  4. IBM 7302 Oil Core Memory
    http://www.pi­ercefuller.com/li­brary/img00085­.html?id=img00085
  5. IBM 7302 Air Core Memory
    http://www.pi­ercefuller.com/li­brary/img00090­.html?id=img00090
  6. Control Data Corporation (CDC) 6600: 1966–1977
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/6600­.jsp
  7. Control Data Corporation (CDC) 7600: 1971–1983
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/7600­.jsp
  8. John Mauchly
    http://en.wiki­pedia.org/wiki/Joh­n_Mauchly
  9. J. Presper Eckert
    http://en.wiki­pedia.org/wiki/J­._Presper_Eckert
  10. BINAC
    http://en.wiki­pedia.org/wiki/BI­NAC
  11. Description of the BINAC
    http://www.pa­losverdes.com/las­thurrah/binac-description.html
  12. UNIVersal Automatic Computer (UNIVAC)
    http://www.thoc­p.net/hardware/u­nivac.htm
  13. BUNCH
    http://en.wiki­pedia.org/wiki/BUN­CH
  14. Mainframe computer
    http://en.wiki­pedia.org/wiki/Ma­inframe_compu­ter
  15. Cray History
    http://www.cra­y.com/About/His­tory.aspx?404;http:­//www.cray.com:80/a­bout_cray/his­tory.html
  16. Cray Historical Timeline
    http://www.cra­y.com/Assets/PDF/a­bout/CrayTime­line.pdf
  17. Company: Cray Research, Inc. (Computer History)
    http://www.com­puterhistory.or­g/brochures/com­panies.php?al­pha=a-c&company=com-42b9d5d68b216
  18. General Electric GE-400
    http://www.feb-patrimoine.com/PRO­JET/ge400/ge-400.htm
  19. GE-400 Time-sharing information systems:
    http://www.com­puterhistory.or­g/collections/ac­cession/102646147
  20. GE 225 vs. IBM 1401
    http://ed-thelen.org/GE225-IBM1401.html
  21. A GE-225 is found
    http://ed-thelen.org/comp-hist/GE225.html
  22. G.E. 200 Series Computers
    http://www.smec­c.org/g_e__200_s­eries_computer­s.htm
  23. GE-200 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-200_series
  24. GE-400 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-400_series
  25. GE-600 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-600_series
  26. Mainframe – Introduction
    http://www.thoc­p.net/hardware/ma­inframe.htm
  27. Honeywell 800 (1958)
    http://www.cs­.clemson.edu/~mar­k/h800.html
  28. Real Machines with 24-bit and 48-bit words
    http://www.qu­adibloc.com/com­p/cp0303.htm
  29. Honeywell ARGUS
    http://en.wiki­pedia.org/wiki/Ho­neywell_ARGUS
  30. Honeywell Datamatic 1000
    http://www.smec­c.org/honeywe­ll_datamatic_1000­.htm
  31. Honeywell
    http://en.wiki­pedia.org/wiki/Ho­neywell
  32. Whatever Happened to IBM and the Seven Dwarfs? Dwarf Four: Honeywell
    http://www.dvo­rak.org/blog/ibm-and-the-seven-dwarfs-dwarf-four-honeywell/
  33. Datamatic 1000 by DATAmatic Corporation (1955)
    http://www.com­putermuseum.li/Tes­tpage/Datamatic-1000.html
  34. Burroughs – Third Generation Computers
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Bu­rroughs_Third-Generation_Com­puters
  35. Burroughs B5000, B5500 and B5700 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B5000_55­00_5700/
  36. Burroughs B6500 and B6700 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B6500_67­00/
  37. Burroughs B8500 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B8500/
  38. ERA 1101 Documents
    http://ed-thelen.org/comp-hist/ERA-1101-documents.html
  39. 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)
  40. UNIVAC I Computer System
    http://univac1­.0catch.com/
  41. UNIVAC I Computer System
    http://univac1­.0catch.com/y­ellowpage.htm
  42. UNIVAC (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­nivac
  43. UNIVAC I (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_I
  44. UNIVAC II – Universal Automatic Computer Model II
    http://ed-thelen.org/comp-hist/BRL61-u4.html
  45. UNIVAC II (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_II
  46. UNIVAC III (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_III
  47. UNIVAC 1101 (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_1101
  48. UNISYS History Newsletter
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Ma­in_Page
  49. UNIVAC Solid State (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_Solid_Sta­te
  50. Bi-quinary coded decimal (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bi-quinary_coded_de­cimal
  51. UNIVAC III Data Processing System
    http://ed-thelen.org/comp-hist/BRL61-u4.html#UNIVAC-III
  52. The UNIVAC III Computer
    https://wiki.cc­.gatech.edu/fol­klore/index.php/The_U­NIVAC_III_Com­puter
  53. UNIVAC III Photos
    http://jwstep­hens.com/univac3/pa­ge01.htm
  54. A History of Unisys Computers (kniha)
    http://www.lu­lu.com/produc­t/hardcover/a-history-of-unisys-computers/4627477
  55. UNIVAC III Instructions Reference Card
    http://www.bit­savers.org/pdf/u­nivac/univac3/UT-2455_UNIVACII­I_RefCd61.pdf

Autor článku

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