Mikroprocesory s architekturou ARM

6. 3. 2012
Doba čtení: 15 minut

Sdílet

Dnes se budeme zabývat popisem dalších typů mikroprocesorů patřících do rodiny RISC. Bude se jednat o mikroprocesory s architekturou ARM, které sice byly navrženy již v polovině osmdesátých let, ale to neznamená, že by se jednalo o zastaralou technologii – ve skutečnosti je tomu právě naopak.

Obsah

1. Mikroprocesory s architekturou ARM

2. Vznik mikroprocesorů ARM

3. Od projektu RISC I k mikroprocesorům ARM

4. Základní technické parametry mikroprocesorů ARM

5. Výpočetní výkon mikroprocesorů ARM

6. Výpočetní výkon je však jen jedním z důležitých parametrů

7. Instrukční sada v pracovním režimu ARM

8. Instrukční sada Thumb

9. Odkazy na Internetu

1. Mikroprocesory s architekturou ARM

V dnešní části snad nikdy nekončícího :) seriálu o architekturách počítačů si popíšeme další typ mikroprocesorů s architekturou RISC (Reduced Instruction Set Computers). Jedná se o mikroprocesory ARM, jejichž historie vzniku sice sahá až do první poloviny osmdesátých let minulého století, ovšem moderní varianty těchto čipů se dodnes používají v mnoha různých elektronických zařízeních; dokonce můžeme v některých oblastech sledovat prudce zvýšený zájem o použití těchto čipů, a to i u společností, které se v minulosti spoléhaly především na mikroprocesory s odlišnou architekturou (řada i386 doplněná o x86_64 apod.). Mezi jednu z největších předností čipů ARM patří nízká energetická náročnost a taktéž to, že větší a bohatší firmy si mohou zakoupit licenci na použití jádra mikroprocesorů ARM ve svých integrovaných obvodech, kde lze (přímo na čipu) zkombinovat mikroprocesor s dalšími moduly, například GPU, řadičem sítě, řadičem LCD atd.

Obrázek 1: Osmibitový mikropočítač Acorn BBC Micro.

V současnosti se můžeme s integrovanými obvody obsahujícími jádro mikroprocesoru ARM setkat v celé řadě různých elektronických zařízení, počínaje (možná poněkud nadneseně řečeno) ovladačem výtahu přes různě výkonné smartphony, tablety, kapesní herní konzole, netbooky až po, což je možná na první pohled poněkud překvapivé, různé typy serverů určených zejména pro nasazení do dnes populárních cloudů. U všech těchto zařízení se ukazuje být velkou předností poměrně malá energetická náročnost mikroprocesorů ARM, a to i v případě serverů, protože s tím, jak cena za hardware obecně postupně klesá, tak současně i celosvětově stoupá cena za elektřinu, která se postupně stává poměrně zásadním faktorem při provozování serverovny či cloudového centa (i když je veřejným tajemstvím, že ve skutečnosti vypadá celý slavný „cloud“ nějak takto :-).

Obrázek 2: Dobový plakát s počítačem Acorn BBC Micro.

2. Vznik mikroprocesorů ARM

Jak jsem se již zmínil v předchozí kapitole, mají mikroprocesory ARM, či možná poněkud lépe řečeno procesory s architekturou ARM, za sebou poměrně dlouhý vývoj, který začal již v první polovině osmdesátých let minulého století. Celá historie vlastně začala ve společnosti, kterou si dnes s informatikou ani příliš nespojujeme. Jednalo se o britskou BBC, jež na počátku osmdesátých let minulého století, tedy zhruba v době kralování počítačů firmy Sinclair na britských ostrovech, chtěla vytvořit počítač vhodný pro výuku, který by bylo možné rozšířit jak mezi školy, tak i na právě vznikající trh s domácími osmibitovými mikropočítači. Ovšem vzápětí se ukázalo, že samotná BBC nemá prostředky na to, aby sama v rozumném čase navrhla a následně masově vyráběla počítač, který by mohl svými parametry i cenou konkurovat domácím osmibitovým počítačům vyráběným specializovanými firmami, které právě začaly poměrně překotným způsobem vznikat (popř. se jednalo o divize již zavedených technologických firem). Z tohoto důvodu BBC vypsala tendr, z něhož nakonec vyšla vítězně firma Acorn Computers z Cambridge.

Obrázek 3: Programovací jazyk BBC BASIC byl portován dokonce i na osobní počítače PC s nainstalovaným operačním systémem Microsoft Windows.

Výsledkem spolupráce společnosti BBC s firmou Acorn Computers byly nejdříve počítače nazvané Acorn BBC Micro vybavené mj. i programovacím jazykem nesoucím název BBC BASIC. Jednalo se, resp. stále se jedná, o velmi rozšířený dialekt BASICu, který je dnes dostupný na několika desítkách historických i současných platforem (samotný interpret byl totiž přepsán z assembleru do portabilního C a C++). Počítače Acorn BBC Micro byly vybavené levným a ve své době i dostatečně výkonným osmibitovým mikroprocesorem MOS 6502. Tento procesor výkonově dostačoval pro jednodušší úlohy naprogramované v BASICu či ve strojovém kódu (hry), ovšem společně se snahou o vytvoření operačního systému s grafickým uživatelským rozhraním se ukázalo, že výkon osmibitového mikroprocesoru nebude pro tyto účely dostatečný. Nyní stála společnosti Acorn na určitém rozcestí: buď mohla pro své novější počítače použít některý 16/32bitový mikroprocesor nabízený dalšími firmami (Motorola 68000, Intel 80×86), nebo se mohla pokusit navrhnout a implementovat procesor vlastní. Nakonec bylo rozhodnuto o návrhu vlastního mikroprocesoru (což bylo možná poněkud riskantní), ale díky velmi dobře navržené architektuře se tyto nové procesory – ARM – rozšířily a začaly se těšit stále rostoucí popularitě.

Obrázek 4: Screenshot obrazovky původního BBC BASICu spuštěného v emulátoru počítače Acorn BBC Micro.

3. Od projektu RISC I k mikroprocesorům ARM

Při návrhu nového typu mikroprocesoru, který měl být pojmenovaný ARM 1, se jeho tvůrci Steve Furber a Sophie Wilson nejprve zaměřili na studium publikací o konstrukci mikroprocesorů, které byly v osmdesátých letech dostupné. Nakonec se nechali inspirovat velmi elegantní a současně i poměrně jednoduchou architekturou RISC I. O projektu RISC I, který vznikl na univerzitě v Berkeley, jsme se v tomto seriálu již zmiňovali, konkrétně se jednalo o část číslo 147. Připomeňme si, že konečný návrh architektury RISC I byl zveřejněn již v roce 1981 a způsobil mezi lidmi zabývajícími se návrhem a konstrukcí počítačů velký zájem, protože se tvůrcům RISCu I (vývojový tým se navíc skládal převážně ze studentů) podařilo na jediném čipu s přibližně 44 tisíci tranzistory a 31 instrukcemi dosáhnout výpočetního výkonu VAXu 11/780 (5 MHz).

Obrázek 5: Osobní počítač firmy Acorn, který byl vybavený mikroprocesorem ARM s architekturou­ RISC.

Navíc se RISC I mohl hravě srovnávat s v té době nejpoužívanějšími 16ti a 32bitovými mikroprocesory typu Motorola 68000 či Intel 8086 (čip Intel 80286 byl komerčně dostupný až o rok později, ale i ten nijak výkonově nevynikal nad architekturou RISC I ). Steve Furber a Sophie Wilson si řekli, že pokud dokáže skupina studentů a několik profesorů vyrobit čip minimálně srovnatelný s výrobky zavedených profesionálních firem, neměla by s tím mít větší problémy ani firma Acorn, samozřejmě za předpokladu, že se jí podaří navrhnout mikroprocesor typu RISC, který bude implementačně jednoduchý a přitom díky velkému množství pracovních registrů a víceřezové pipeline i dostatečně výkonný. Tyto myšlenky byly realizovány v čipu ARM 1, v němž můžeme vidět jak inspiraci v RISC I, tak i v konkurenčních mikroprocesorech MIPS. Velkým rozdílem však je způsob řešení problematiky podmíněných skoků, který je v případě ARM odlišný (a to dosti podstatným způsobem) od řešení, ke kterému se uchýlili konstruktéři jiných typů mikroprocesorů typu RISC.

Obrázek 6: Hra Zarch od známého programátora Davida Brabena (který je spoluautorem slavné hry Elite) pro počítač Acorn Archimedes.

4. Základní technické parametry mikroprocesorů ARM

Čipy ARM 1 byly založeny na pipeline se třemi řezy rozdělujícími vykonání každé instrukce do tří fází: fetch (načtení operačního kódu), decode (dekódování a příprava operandů) a execute (vykonání instrukce a zpětný zápis). Interní i externí datová sběrnice měly šířku 32 bitů a i všechny instrukce v instrukční sadě ARM 1 měly tutéž šířku 32 bitů. Díky tomu se zjednodušila řídicí logika v čipu, navíc bylo možné měnit obsah čítače instrukcí PC (r15) již ve chvíli, kdy se vykonávala fáze decode (výjimku samozřejmě tvořily skoky). Vzhledem k tomu, že procesory s architekturou RISC používají při přístupu do operační paměti pouze instrukce typu Load a Store, musí být tyto čipy vybaveny poměrně velkým počtem pracovních registrů. V případě ARM 1 bylo na čipu umístěno celkem 37 registrů, z nichž každý měl pevnou šířku 32 bitů. Některé registry byly pracovní, jiné měly speciální význam, například v nich byly uloženy různé bitové příznaky. Zajímavé je, že namísto registrových oken použitých u jiných procesorů typu RISC se v případě ARM 1 objevuje rozdělení registrů do skupin, podle toho, v jakém stavu se mikroprocesor v daném okamžiku nacházel.

Obrázek 7: Jedna z alternativ k ARM: mikroprocesor s instrukční sadou MIPS. Čipy obsahující jádra těchto RISCových mikroprocesorů se v současnosti používají v mnoha vestavěných zařízeních, například přehrávačích videa, routerech atd. I když se jedná o málo známou skutečnost, patří mikroprocesory MIPS mezi jedny z nejrozšířenějších typů procesorů současnosti a možná i překonávají v celkovém počtu prodaných kusů architekturu i386/x86_64.

První testovací várka mikroprocesorů ARM 1 byla dokončena 26.4.1985. Traduje se, že hned první série těchto čipů fungovala bez chyby, a to dokonce bez nutnosti průběžného testování při výrobě. Vzhledem k tomu, že se jednalo o čipy určené pouze pro demonstrační účely, nesetkáme se s nimi v žádných historických počítačích. Ovšem společnosti Acorn výpočetní výkon i další vlastnosti čipu ARM 1 ukázaly, že se jedná o správnou cestu vývoje, takže již v roce 1986 spatřil světlo světa mikroprocesor ARM 2. Ten se od svého předchůdce lišil především přidáním hardwarové násobičky, která byla, jak je ostatně u procesorů s architekturou RISC zvykem, oddělena od vlastní aritmeticko-logické jednotky a pracovala nezávisle a paralelně s ALU. Mezi další vylepšení patřilo zvýšení hodinové frekvence na 8 MHz, která již například stačila na to, aby mikroprocesor dokázal programově a v reálném čase zobrazit jednodušší 3D scény do framebufferu s rozlišením přibližně 640×400 pixelů vykreslené s využitím trojúhelníků s flat stínováním (a v případě velké snahy i Gouraudovým stínováním).

Obrázek 8: Maska použitá při výrobě mikroprocesoru RISC I.
Zdroj: C.E. Sequin and D.A.Patterson: Design and Implementation of RISC I

5. Výpočetní výkon mikroprocesorů ARM

V předchozí kapitole jsme se zmínili o poměrně vysokém výpočetním výkonu čipu ARM 2. Pojďme si nyní pro zajímavost tento výpočetní výkon porovnat s konkurenčními čipy instalovanými do tehdy populárních osobních počítačů i některých pracovních stanic. Prvním z těchto čipů je Intel 80286, který na stejné hodinové frekvenci 8 MHz dosahoval výpočetního výkonu přibližně 1,2 MIPS (špičkově 1,5 MIPS) pro 16bitové operace, přičemž 32bitové operace nebyly nativně podporovány. Konkurenčním čipem byl taktéž slavný mikroprocesor Motorola 68000 (68k), který na shodné frekvenci 8 MHz měl výpočetní výkon přibližně 1 MIPS pro 16bitové operace (2 MIPS v syntetických testech) a 1/2 MIPS pro 32bitové operace. Naproti tomu dosahoval výpočetní výkon mikroprocesoru ARM 2 při použití 8 MHz hodin hodnoty 4 MIPS(!) což je mimochodem výpočetní výkon, kterého dosahoval mikroprocesor Motorola 68020, ovšem při použití hodinové frekvence 20 MHz a nikoli jen 8 MHz:

CPU Frekvence MIPS 16bit MIPS 32bit
Intel 80286 8 MHz 1,2 ×
Motorola 68000 8 MHz 1,0 0,5
ARM 2 8 MHz × 4,0

Obrázek 9: Mikroprocesor řady UltraSPARC – jednalo se o alternativu k procesorům ARM v segmentu výkonných desktopů a serverů.

6. Výpočetní výkon je však jen jedním z důležitých parametrů

Jak již možná tušíte, není poměrně velký výpočetní výkon jediným kladem čipů ARM 2. Druhou předností je malý počet tranzistorů nutných pro implementaci čipu. Pokračujme tedy v porovnávání. Mikroprocesor Motorola 68000 byl realizován s využitím přibližně 68 000 tranzistorů, z čehož se taktéž podle některých zdrojů odvozuje jeho číselné označení (spíše je to však náhoda a označení odkazuje na vůbec první mikroprocesor Motoroly – čip M6800). Na konstrukci mikroprocesoru Intel 80286 firma Intel skutečně nešetřila, protože na jeho čip umístila celých 134 000 tranzis­torů. A jak je na tom výpočetně mnohem výkonnější mikroprocesor ARM 2? Jeho konstruktéři si vystačili s pouhými přibližně 30 000 tranzistory (!), z čehož nutně vyplývá, že tyto tranzistory byly mnohem lépe využity, než u obou předchozích čipů. Právě nízký počet tranzistorů nutných pro implementaci jádra ARM se stal jedním z důvodů malé spotřeby těchto mikroprocesorů na jedné straně a na straně druhé to umožnilo na jeden čip umístit vedle vlastního mikroprocesoru i další moduly, například GPU.

Na tomto místě možná není na škodu si připomenout, že mikroprocesor RISC I (ideový předchůdce čipů ARM) z roku 1980 obsahoval pouze 44 tisíc tranzistorů a přesto bylo na ploše čipu implementováno celkem sedmdesát osm 32bitových pracovních registrů. Jeho následovník RISC II byl dokonce implementován pouze s využitím 39000 tranzistorů, což je již porovnatelné s ARMy. Zajímavé je porovnání těchto čipů s typickým zástupcem architektury CISC, tj. procesory firmy Intel, především s osmibitovou řadou Intel 8008/8080, na níž navazuje řada šestnáctibitových mikroprocesorů Intel 80×86 a posléze i řada IA-64 s procesory Itanium:

Mikroprocesor Bitů Datum Tranzistorů Frekvence [MHz] Šířka spojů [nm]
4004 4 1971 2 250 0.1 10 000
8008 8 1972 3 500 0.2 10 000
8080 8 1974 6 000 2.0 6 000
8088 16/8 1979 29 000 8.0 3 000
8086 16 1978 29 000 8.0 3 000
80286 16 1982 134 000 12.5 1 500
80386 32 1985 275 000 20.0 1 500
80486 32 1989 1 200 000 25.0 1 000
Pentium 32 1993 3 100 000 66.0 800
Pentium 32 1994 3 300 000 75.0 600
Pentium 32 1995 3 300 000 120.0 350
Pentium II 32 1997 7 500 000 233.0 350
Pentium II 32 1998 7 500 000 300.0 250
Pentium III 32 1999 9 500 000 450.0 250
Pentium III 32 2000 28 000 000 533.0 180
Pentium 4 32 2000 42 000 000 1500.0 180
Pentium 4 32 2002 55 000 000 2200.0 130
Pentium 4 32 2004 125 000 000 2800.0 90
Pentium 4 32 2006 188 000 000 3200.0 65
Itanium 64 2001 25 000 000 733.0 180
Itanium 2 64 2003 220 000 000 900.0 180
Itanium 2 64 2004 592 000 000 1300.0 130
Itanium 2 64 2006 1 720 000 000 1400.0 90
Core 2 64 2006 291 000 000 1860.0 65
Core 2 64 2008 800 000 000   45

Z této tabulky je patrné, že první generace 32bitových mikroprocesorů ARM či RISC I/II byla implementována zhruba se stejným počtem tranzistorů, jako šestnáctibitový mikroprocesor 8086 s mnohem menším výpočetním výkonem.

7. Instrukční sada v pracovním režimu ARM

Mikroprocesory ARM byly zpočátku vybaveny jedinou instrukční sadou, v níž se nacházely instrukce o konstantní šířce 32 bitů. Vzhledem k tomu, že šířka externí datové sběrnice byla rovna taktéž 32 bitům a instrukce musely být zarovnané na celá slova, znamenalo to, že se celá instrukce vždy načetla jedinou operací, což je velký rozdíl oproti typickým mikroprocesorům s architekturou CISC, u nichž je délka instrukcí proměnná a mnohdy může přesahovat hranici slov (což ve svém důsledku vedlo k nutnosti vytvoření takzvané „fronty instrukcí“, jejíž vlastnosti se mj. využívaly či spíše zneužívaly při tvorbě virů, které nešlo odhalit debuggerem). Tuto instrukční sadu lze na procesorech ARM používat dodnes a její největší předností je možnost uvést u každé instrukce podmínku, při jejímž splnění se má instrukce provést (podrobnosti si řekneme příště). Díky tomuto řešení je možné eliminovat velké množství skoků, jejichž provedení je samozřejmě problematické, a to nejenom na architektuře RISC, ale i na procesorech CISC.

bitcoin školení listopad 24

8. Instrukční sada Thumb

I přes mnohé přednosti 32bitové instrukční sady ARM se však v některých případech projevují její nevýhody. Jedná se především o to, že použití 32bitových instrukcí může zmenšovat „hustotu“ kódu, což se projevuje větší délkou binárních souborů, větší pravděpodobností výpadku stránky z vyrovnávací paměti a taktéž (obecně) vyšší cenou za zařízení v případě, že je mikroprocesor použit ve funkci mikrořadiče (zde se již může projevit cena za každý ušetřený kilobajt paměti ROM/EPROM/Flash s programovým kódem). Z tohoto důvodu jsou procesory ARM patřící do novějších rodin vybaveny navíc další instrukční sadou pojmenovanou Thumb. Jedná se o instrukční sadu obsahující podmnožinu instrukcí vybranou na základě analýzy strojových programů generovaných překladači jazyků C a C++. Dále se v této instrukční sadě neobjevují bity určené pro podmíněné provádění instrukcí, což znamená, že je nutné se vrátit k použití podmíněných skoků. Na druhou stranu se však délka všech instrukcí zkrátila na šestnáct bitů, což dovoluje dosažení větší „hustoty“ kódu.

Zavedení nové instrukční sady není v tomto případě tak složité, jak by se možná mohlo zdát, protože převod instrukce Thumb na původní instrukci ARM je záležitostí jednoduchého dekodéru, který může být například umístěn v interní paměti ROM či přímo „zadrátován“ na čipu. Jedná se tedy o řádově jednodušší technologii, než jaká je použita na procesorech x86 pro překlad CISC instrukcí do sekvence interních RISC-like instrukcí (zde se může jediná instrukce CISC rozložit na sekvenci několika instrukcí RISC, popř. dokonce na celý podprogram). A ta nejlepší zpráva na konec – s využitím speciální instrukce skoku je možné se přepínat mezi instrukční sadou Thumb a původní instrukční sadou ARM, a to dokonce i v rámci jednotlivých funkcí. Programátor či překladač tedy může využívat předností obou instrukčních sad. Na závěr poznamenejme, že ještě existuje druhá verze instrukční sady Thumb 2, v níž je možné kombinovat 32bitové a 16bitové instrukce. I tyto instrukční sady si podrobněji popíšeme v následujících částech tohoto seriálu.

9. Odkazy na Internetu

  1. Processors – ARM
    http://www.ar­m.com/products/pro­cessors/index­.php
  2. The ARM Instruction Set
    http://simple­machines.it/doc/ar­m_inst.pdf
  3. ARM Architecture (Wikipedia)
    http://en.wiki­pedia.org/wiki/AR­M_architecture
  4. BBC BASIC
    http://www.bbcba­sic.co.uk/bbcba­sic.html
  5. BBC BASIC
    http://mdfs.net/Sof­tware/BBCBasic/
  6. BBC BASIC (Z80) for the ZX Spectrum
    http://mdfs.net/Sof­tware/BBCBasic/Spec­trum/
  7. BBC BASIC (Wikipedia CZ)
    http://en.wiki­pedia.org/wiki/BBC_BA­SIC
  8. MIPS-3D® ASE
    http://www.mip­s.com/products/ar­chitectures/mips-3d-ase/
  9. An introduction to SPARC's SIMD offerings
    http://mikebu­rrell.wordpres­s.com/2007/12­/14/an-introduction-to-sparcs-simd-offerings/
  10. MIPS64TM Architecture for Programmers Volume IV-c: The MIPS-3DTM Application-Specific Extension to the MIPS64TM
    http://www.we­blearn.hs-bremen.de/ris­se/RST/docs/MIP­S/MD00099–2B-MIPS3D64-AFP-01.11.pdf
  11. Visual Instruction Set
    http://www.eno­tes.com/topic/Vi­sual_Instructi­on_Set
  12. NEON
    http://www.ar­m.com/products/pro­cessors/techno­logies/neon.php
  13. Architecture and Implementation of the ARM Cortex-A8 Microprocessor
    http://www.design-reuse.com/arti­cles/11580/ar­chitecture-and-implementation-of-the-arm-cortex-a8-microprocessor­.html
  14. Multimedia Acceleration eXtensions (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mul­timedia_Accele­ration_eXtensi­ons
  15. AltiVec (Wikipedia)
    http://en.wiki­pedia.org/wiki/Al­tiVec
  16. Visual Instruction Set (Wikipedia)
    http://en.wiki­pedia.org/wiki/Vi­sual_Instructi­on_Set
  17. MAJC (Wikipedia)
    http://en.wiki­pedia.org/wiki/MAJC
  18. MDMX (Wikipedia)
    http://en.wiki­pedia.org/wiki/MDMX
  19. MIPS Multiply Unit
    http://program­medlessons.or­g/AssemblyTuto­rial/Chapter-14/ass14_3.html
  20. Silicon Graphics Introduces Enhanced MIPS Architecture
    http://bwrc.e­ecs.berkeley.e­du/CIC/otherpr/en­hanced_mips.html
  21. MIPS-3D (Wikipedia)
    http://en.wiki­pedia.org/wiki/MIPS-3D
  22. MIPS Technologies, Inc. announces new MIPS-3D technology to provide silicon-efficient 3D graphics acceleration
    http://www.design-reuse.com/new­s/2057/mips-mips-3d-technology-silicon-efficient-3d-graphics-acceleration.html
  23. MIPS-3D Built-in Function (gcc.gnu.org)
    http://gcc.gnu­.org/onlinedoc­s/gcc/MIPS_002d3D-Built_002din-Functions.html
  24. Baha Guclu Dundar:
    Intel MMX, SSE, SSE2, SSE3/SSSE3/SSE4 Architectures
  25. SSE (Streaming SIMD Extentions)
    http://www.son­gho.ca/misc/sse/sse­.html
  26. Timothy A. Chagnon: SSE and SSE2
    http://www.cs­.drexel.edu/~tc365/mpi-wht/sse.pdf
  27. Intel corporation: Extending the Worldr's Most Popular Processor Architecture
    http://downlo­ad.intel.com/techno­logy/architec­ture/new-instructions-paper.pdf
  28. SIMD architectures:
    http://arstechni­ca.com/old/con­tent/2000/03/sim­d.ars/
  29. Tour of the Black Holes of Computing!: Floating Point
    http://www.cs­.hmc.edu/~geof­f/classes/hmc­.cs105…/slides/clas­s02_floats.ppt
  30. 3Dnow! Technology Manual
    AMD Inc., 2000
  31. Intel MMXTM Technology Overview
    Intel corporation, 1996
  32. MultiMedia eXtensions
    http://softpi­xel.com/~cwrig­ht/programmin­g/simd/mmx.phpi
  33. AMD K5 („K5“ / „5k86“)
    http://www.pcgu­ide.com/ref/cpu­/fam/g5K5-c.html
  34. Sixth Generation Processors
    http://www.pcgu­ide.com/ref/cpu­/fam/g6.htm
  35. Great Microprocessors of the Past and Present
    http://www.cpushac­k.com/CPU/cpu­1.html
  36. Very long instruction word (Wikipedia)
    http://en.wiki­pedia.org/wiki/Ve­ry_long_instruc­tion_word
  37. CPU design (Wikipedia)
    http://en.wiki­pedia.org/wiki/CPU_de­sign
  38. Control unit (Wikipedia)
    http://en.wiki­pedia.org/wiki/Con­trol_unit
  39. Cray History
    http://www.cra­y.com/About/His­tory.aspx?404;http:­//www.cray.com:80/a­bout_cray/his­tory.html
  40. Cray Historical Timeline
    http://www.cra­y.com/Assets/PDF/a­bout/CrayTime­line.pdf
  41. Computer Speed Claims 1980 to 1996
    http://homepa­ge.virgin.net/ro­y.longbottom/mip­s.htm
  42. Superpočítače Cray
    http://www.ro­ot.cz/clanky/su­perpocitace-cray/
  43. Superpočítače Cray (druhá část)
    http://www.ro­ot.cz/clanky/su­perpocitace-cray-druha-cast/
  44. Superpočítače Cray (třetí část)
    http://www.ro­ot.cz/clanky/su­perpocitace-cray-treti-cast/
  45. Superpočítače Cray (čtvrtá část)
    http://www.ro­ot.cz/clanky/su­perpocitace-cray-ctvrta-cast/
  46. Superpočítače Cray (pátá část): architektura Cray X-MP
    http://www.ro­ot.cz/clanky/su­perpocitace-cray-pata-cast-architektura-pocitace-cray-x-mp-a-jeho-pouziti-ve-filmovem-prumyslu/

Autor článku

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