Úvodník
V dnešní části seriálu o architekturách počítačů se budeme zabývat další rodinou 32bitových mikroprocesorů s architekturou RISC. Jedná se o čipy Motorola řady 88000, které sice nebyly po komerční stránce tak úspěšné, jako například mikroprocesory MIPS, SPARC či PA-RISC, ovšem jejich návrh nepostrádal eleganci typickou i pro mnoho dalších čipů navržených v Motorole v letech 1974 až 1990.
Obsah
1. Mikroprocesory s architekturou RISC – čipy Motorola řady 88000
2. Motorola 88000 a další představitelé „kanonické“ architektury RISC
3. První generace řady 88000 – mikroprocesor Motorola 88100
4. Způsob zapojení čipů 88100 a 88200
6. Druhá generace řady 88000 – superskalární mikroprocesor Motorola 88110
7. Spekulativní provádění skoků (speculative execution)
8. Vykonávání instrukcí mimo pořadí (out of order execution)
1. Mikroprocesory s architekturou RISC – čipy Motorola řady 88000
V dnešní části seriálu o architekturách počítačů částečně navážeme na část předchozí, protože se taktéž budeme zabývat popisem méně známých a taktéž i méně úspěšných 32bitových mikroprocesorů s architekturou RISC. Minule jsme se bavili o čipech AMD 29000 (AMD 29k), dnes se zaměříme na mikroprocesory firmy Motorola řady 88000 (88k). Jedná se o 32bitové RISCové čipy s Harvardskou architekturou, tj. o integrované obvody s oddělenou pamětí programu od paměti dat. Původně měly tyto RISCové mikroprocesory nést označení 78000 připomínající velmi úspěšnou řadu CISCových mikroprocesorů Motorola 68000, ovšem později se až během vývoje číslo řady změnilo na 88000, zkracované též na 88k, podobně jako se 68000 běžně zkracuje na 68k. První provozuschopné čipy řady Motorola 88000 byly k dispozici v polovině roku 1988, což znamenalo, že se – podobně jako u minule popsané řady AMD 29000 (29k) – jednalo o zhruba tříleté zpoždění oproti čipům MIPS a přibližně jednoleté zpoždění oproti čipům SPARC (i tento fakt negativně ovlivnil pozdější úspěch či přesněji řečeno neúspěch celé řady).

Obrázek 1: Na samotném počátku „mikroprocesorové historie“ společnosti Motorola stál osmibitový mikroprocesor Motorola MC6800 z roku 1974, který spolu s konkurenčními čipy Intel 8080 a později též MOS 6502 a Zilog Z80 dosti zásadním způsobem ovlivnil vývoj mikropočítačů jak ve druhé polovině sedmdesátých let, tak i v začátcích osmdesátých let minulého století.
Firma Motorola použila při návrhu mikroprocesorů rodiny 88000 techniky využívané i prakticky všemi dalšími tehdejšími výrobci RISCových procesorů, takže by nás nemělo překvapit, že mikroprocesory 88000 byly vybaveny sadou třiceti dvou pracovních registrů, z nichž každý měl šířku 32 bitů, přičemž první registr R0 obsahoval neměnnou hodnotu 0. Formát instrukcí byl zvolen tak, aby všechny instrukce měly konstantní šířku (odpovídající samozřejmě šířce obou externích datových sběrnic, tj. 32 bitům) a při zpracování instrukcí se využívala instrukční pipeline, která měla u mikroprocesorů 88000 celkem pět fází (řezů), podobně jako například u čipů MIPS. U druhé generace čipů, tj. u mikroprocesorů 88110, se začaly používat i některé pokročilé technologie, zejména spekulativní provádění skoků (speculative execution) a provádění instrukcí mimo pořadí (out of order execution) popsané v dalších kapitolách. Navíc se v případě čipu 88100 jednalo o superskalární procesor, tj. o čip, který v jednom taktu dokázal dokončit více než jednu instrukci (to bylo umožněno například tím, že tento mikroprocesor obsahoval dvojici aritmeticko-logických jednotek).

Obrázek 2: Další mezník v historii mikroprocesorů – čip Motorola MC6809, který byl s velkou pravděpodobností nejvýkonnějším osmibitovým mikroprocesorem své éry.
2. Motorola 88000 a další představitelé „kanonické“ architektury RISC
Mapu různých architektur procesorů, která je zobrazená pod tímto odstavcem, jsme si již (i když v poněkud zjednodušené podobě) v seriálu o architekturách počítačů uváděli. Podle umístění názvu procesoru na horizontální ose lze určit, zda je tento procesor blíže k typické architektuře CISC se složitými instrukcemi s mnoha adresními režimy a mikroprogramovým řadičem, či naopak blíže ke „kanonické“ architektuře RISC s menším počtem instrukcí a typicky s větším počtem pracovních registrů. Na vertikální osu je jednoduše vynesena bitová šířka aritmeticko-logické jednotky a většinou i šířka interních sběrnic procesoru. Povšimněte si, že všechny doposud popsané RISCové procesory (R3000 až R10000, SPARC, PA-RISC, AMD 29000, Motorola 88100 i Motorola 88110) se skutečně nachází v pravém dolním rohu, naproti tomu jsou například čipy kompatibilní s x86 či x86_64 na levé straně mapy, počínaje původním tehdy ještě čistě šestnáctibitovým čipem Intel 8086.

Obrázek 3: Třetí mezník ve vývoji integrovaných obvodů firmy Motorola – jeden z vůbec prvních (osmibitových) mikrořadičů nesoucí jméno M68HC05.
(Zdroj: Freescale Semiconductor, Ltd. MC68HC05B6/D Rev. 4.1 08/2005)
Complex/ Simple/ CISC______________________________________________________________RISC | 14500B* | 4-bit | *Am2901 | | *4004 | | *4040 | 8-bit | 6800,650x *1802 | | 8051* * *8008 * SC/MP | | Z8 * * *F8 | | F100-L* 8080/5 2650 | | * *NOVA * *PIC16x | | MCP1600* *Z-80 *6809 IMS6100 | 16-bit| *Z-280 *PDP11 80C166* *M17 | | *8086 *TMS9900 | | *Z8000 *65816 | | *56002 | | 32016* *68000 ACE HOBBIT Clipper R3000 | 32-bit|432 96002 *68020 * * * * *AMD 29000 * *ARM | | * *VAX * 80486 68040 *PSC i960 *SPARC *SH | | Z80000* * * TRON48 PA-RISC | | PPro Pent* -- T9000 -*------- * *88100 | | * * -- 860 -*--*----- * *88110 | 64-bit|Rekurs POWER PowerPC * CDC6600 *R4000 | | x86-64* *620 U-SPARC * *R8000 *Alpha | | ------- IA-64 ------- R10000 | CISC______________________________________________________________RISC

Obrázek 4: 32bitový mikroprocesor Motorola M68000 patří mezi zástupce architektury CISC s téměř ortogonální instrukční sadou a poměrně velkou sadou pracovních registrů (rozdělených na registry datové a adresové). Jednalo se o jeden z nejúspěšnějších 32bitových mikroprocesorů vůbec, ale právě architektura CISC částečně znemožnila další vývoj této řady směrem k výkonnějším čipům (na druhou stranu se jedná o procesor z konce sedmdesátých let minulého století, takže jeho náhrada za novější čipy není zase tak překvapivá).
3. První generace řady 88000 – mikroprocesor Motorola 88100
Prvním komerčně vyráběným mikroprocesorem řady Motorola 88000 byl čip 88100 z roku 1989. Šlo o 32bitový mikroprocesor s mezní hodinovou frekvencí 33 MHz (vyráběla se však i varianta s 16 MHz a pravděpodobně i 20 MHz), který byl postavený na Harvardské architektuře, tj. měl implementován samostatný port pro data (datovou paměť) a samostatný port pro instrukce (paměť programu). Zatímco šířka datových sběrnic byla v obou případech rovna 32 bitům, měly adresové sběrnice šířku pouze 30 bitů, protože veškeré adresování bylo prováděno po 32bitových slovech zarovnaných v paměti na čtyři bajty (nejnižší dva bity adresy tedy byly vždy nulové). Zajímavá byla možnost volby mezi použitím řazení bajtů v 32bitových slovech podle Little-Endian či Big-Endian, v závislosti na tom, s jakými dalšími zařízeními měl mikroprocesor komunikovat. Samotný čip byl na svou dobu a dosahovaný výpočetní výkon poměrně jednoduchý, protože obsahoval pouze přibližně 165 tisíc tranzistorů, takže by se mohlo zdát, že cena počítačů vybavených mikroprocesorem 88100 bude taktéž nízká a tím i příznivá pro konstruktéry osobních počítačů i pracovních stanic.

Obrázek 5: Osobní mikropočítač Atari 520 ST postavený na 32bitových mikroprocesorech řady Motorola 68000.
Ve skutečnosti ovšem musel být samotný mikroprocesor doplněn čipem 88200 či 88204, který plnil jak funkci vyrovnávací paměti první úrovně (L1 cache) o kapacitě šestnácti kilobajtů (88200) až 64 kilobajtů (88204), tak i řízení přístupu do paměti a stránkování. Paměť byla pro tento účel rozdělena na stránky o velikosti 4 kB, přičemž 88200/88204 byl vybaven TLB, podobně jako například čipy řady x86. Toto řešení však nebylo zcela bezproblémové, protože při použití minimálně dvojice čipů (či dokonce trojice v případě úplného oddělení datové a instrukční paměti) se cena celého systému zvyšovala, už jen z toho důvodu, že mezi integrovanými obvody 88100 a 88200 bylo nutné na plošném spoji vytvořit adresovou, datovou i řídicí sběrnici, tj. přibližně 70 spojů (A31-A2, D31-D0, DBE0-DBE3, S/U, R/W a další, viz též schémata z další kapitoly). Čip 88200 byl dokonce složitější než samotný mikroprocesor, protože obsahoval přibližně 750 tisíc tranzistorů oproti již zmíněným 165 tisícům pro 88100.

Obrázek 6: Mikroprocesor Motorola 68030 na základní desce desce osobního počítače Macintosh Color Classic.
4. Způsob zapojení čipů 88100 a 88200
Konstruktéři mikroprocesoru 88100 řešili stejný problém, s jakým se potýkali i všichni tehdejší tvůrci dalších RISCových procesorů – jakým způsobem zajistit co nejrychlejší načítání a ukládání slov do operační paměti, aby na svoji dobu velmi rychlé procesory nebyly relativně pomalou pamětí zdržovány a mohly v každém hodinovém taktu do instrukční pipeline načíst další instrukci. V případě procesoru 88100 byl tento problém vyřešen oddělením paměti programu od paměti dat a současně i použitím vyrovnávacích pamětí první úrovně (oddělených pro kód a data). Z tohoto důvodu se k mikroprocesoru 88100 připojoval jeden či dva pomocné čipy 88200, které pracovaly jak ve funkci vyrovnávací paměti, tak i ve funkci stránkovací jednotky. Jak jsme si již řekli v předchozích kapitolách, měl procesor oddělenou sběrnici pro instrukce a pro data. Navíc se nepoužívalo multiplexování adresy a dat, což znamená, že procesor měl vyvedenou čtveřici sběrnic DA31-DA2 (adresa pro data, zarovnáno na slova), CA31-CA2 (adresa pro instrukce, zarovnáno na slova), D31-D0 (čtení či zápis datových slov) a C31-C0 (čtení instrukcí):
+---------------------+ napojení na | Motorola 88100 | napojení na řadič řadič paměti dat | | paměti instrukcí <---|DA31-DA2 CA31-CA2|---> | | --->|D31-D0 C31-C0|---> | _ _ | <---|DS/U CS/U |---> | _ | <---|DR/W CFETCH|---> ke vstupům, |_____ | DBE0-DBE3 <---|DLOCK | | | <---|DBE0 CR0|<--- <---|DBE1 CR1|<--- <---|DBE2 | <---|DBE3 ERR|---> | INT|---> <---|DR0 PCE|---> <---|DR1 ___ | | CLK RST PLLEN | +---------------------+ | | | | | |

Obrázek 7: Pracovní stanice Sun-1 vybavená buď čipem Motorola 68000 nebo 68010.
Způsob zapojení pomocného čipu Motorola 88200 ve funkci řízení paměti programu je následující (na levé straně jsou vstupní signály, na straně pravé signály výstupní):
+----------------------+ | Motorola 88200 | | | |řízení paměti programu| | | --->|A31-A2 CAD31-CAD0|---> | CADP3-CADP0|---> --->|D31-D0 CC6-CC0|---> | _ CCP|---> --->|S/U CST3-CST0|---> | _ ____ ___ | <---|CR/W CSS3-CSS0|---> |______ | <---|CDLOCK | | | --->|DBE0 CBR|---> --->|DBE1 CBA|---> --->|DBE2 CBG|---> --->|DBE3 ___| | CAB|---> <---|R0 ___| <---|R1 CBB|---> | | | | | CERR|---> | CPCE|---> | CMCE|---> | CSRAMMODE|---> | ____| | CPCS|---> | CTR1|---> | CTR0|---> | CTM1|---> | CTM0|---> | __ _ | | CLK RST PLLEN | +----------------------+ | | | | | |
V případě použití čipu Motorola 88200 pro řízení přístupu k datové paměti se funkce některých vstupních a výstupních pinů mění:
+----------------------+ | Motorola 88200 | | | | řízení datové paměti | | | --->|A31-A2 DAD31-DAD0|---> | DADP3-DADP0|---> --->|D31-D0 DC6-DC0|---> | _ DCP|---> --->|S/U DST3-DST0|---> | _ ____ ___ | --->|R/W DSS3-DSS0|---> |_____ | --->|DLOCK | | | --->|DBE0 DBR|---> --->|DBE1 DBA|---> --->|DBE2 DBG|---> --->|DBE3 ___| | DAB|---> --->|DR0 ___| --->|DR1 DBB|---> | | | | | DERR|---> | DPCE|---> | DMCE|---> | DSRAMMODE|---> | ____| | DPCS|---> | DTR1|---> | DTR0|---> | DTM1|---> | DTM0|---> | __ _ | | CLK RST PLLEN | +----------------------+ | | | | | |

Obrázek 8: Legendární počítač Amiga 500 obsahující čipset OCS a oblíbený mikroprocesor Motorola 68000, taktovaný na 7,14 MHz. V základní konfiguraci byl tento počítač osazen již 512 KB paměti, jež byla rozšiřitelná na 32 MB (Fast RAM). Naproti tomu byl model Amiga 500 Plus osazen 1 MB s možností rozšíření Chip RAM na 2 MB a Fast RAM až na 32 MB.
5. Použití mikroprocesoru Motorola 88100 v osobních počítačích, pracovních stanicích a dalších zařízeních
I přesto, že dnes celou rodinu Motorola 88000 považujeme za komerčně relativně neúspěšnou větev vývoje mikroprocesorů, byly čipy Motorola 88100 použity hned v několika výkonných počítačích (včetně několika multiprocesorových systémů a prototypu pracovní stanice NeXTstation) i v dalších elektronických zařízeních, především v X terminálech (jednalo se o jednu z forem tenkého klienta, v tomto případě o terminál vybavený klávesnicí, myší, monitorem a síťovým rozhraním, přičemž komunikace mezi X terminálem a nadřazeným počítačem probíhala pomocí X protokolu používaného ostatně dodnes). Mezi příčiny neúspěchu těchto mikroprocesorů patří jak špatná cenová politika (společnost Motorola se obávala, že bude konkurovat svému vlastnímu čipu 68000), tak i fakt, že k samotnému procesoru 88100 bylo nutné připojit – jak již víme – navíc i jednotky 88200, což celý návrh počítače dále zdražovalo a komplikovalo. Později sice došlo ke sloučení obou čipů do jednoho pouzdra spolu se zvýšením celkového výpočetního výkonu, ovšem i tak byla cena dosti vysoká (od 360 do 495 dolarů při objednávce minimálně 1000 kusů).

Obrázek 9: Počítač Data General AViiON vybavený RISCovými mikroprocesory řady 88000.
V následující tabulce jsou některá zařízení vybavená mikroprocesory Motorola 88100 vypsána:
1 | BBN Systems TC2000 |
2 | NUMA-multiprocessor MIMD: systém vybavený až 128 mikroprocesory Motorola 88110 |
3 | Data General AViiON (tento počítač byl po stránce architektury velmi zajímavý) |
4 | Encore 91, 93 Series |
5 | Harris Night Hawk |
6 | Motorola Delta Series 8000 |
7 | Motorola Series 900 |
8 | X terminály společnosti NCD (Network Computing Devices) |
9 | X terminály společnosti Tektronix (u několika modelů se jednalo pouze o prototypy) |
10 | Prototyp pracovní stanice NeXTstation |
11 | Omron LUNA88K |
12 | Tadpole TP8×xV |

Obrázek 10: X terminál firmy NCD (Network Computing Devices) vybavený RISCovým mikroprocesorem 88100.
Zdroj: Wikipedia
6. Druhá generace řady 88000 – superskalární mikroprocesor Motorola 88110
Některé nedostatky mikroprocesoru 88100 se společnosti Motorola podařilo odstranit ve druhé a současně i poslední generaci rodiny 88000. Jednalo se o mikroprocesor 88110, který byl poměrně zajímavý, a to hned z několika důvodů. Prvním důvodem bylo to, že se v jednom čipu sloučily funkce původních obvodů 88100 i 88200, což zjednodušilo a zlevnilo cenu počítačových systémů vybavených těmito mikroprocesory. Kapacita obou vyrovnávacích pamětí první úrovně se sice snížila na 8kB, i tak se však počet tranzistorů zvýšil na 1,4 milionu. Taktéž se zvýšila hodinová frekvence na 40 MHz, popř. na 50 MHz a byly zavedeny nové „grafické“ instrukce (pro rastrové operace – ROPs). Ovšem největším vylepšením bylo využití superskalární architektury. To znamenalo, že mikroprocesor 88200 dokázal v jednom taktu začít zpracovávat větší množství instrukcí, takže se ve výsledku dosahovalo zhruba trojnásobného až pětinásobného zvýšení výpočetního výkonu oproti první generaci mikroprocesorů 88100. Počet funkčních jednotek se zvýšil na deset (!), přičemž každá jednotka (kromě děličky) dokázala v každém taktu začít zpracovávat novou instrukci, ale instrukční jednotka omezovala rychlost provádění na dvě instrukce za takt (větší množství instrukčních kódů stejně nebylo možné tak rychle načíst z vyrovnávací paměti).

Obrázek 11: Pohled na zadní stranu X terminálu firmy NCD se všemi porty a rozhraními.
V následující tabulce je všech deset funkčních jednotek mikroprocesoru Motorola 88110 vypsáno:
# | Popis jednotky |
---|---|
1 | aritmeticko-logická jednotka číslo 1 (pro 32bitové operandy – celá čísla) |
2 | aritmeticko-logická jednotka číslo 2 (pro 32bitové operandy – celá čísla) |
3 | sčítačka pro 80bitová reálná čísla (FP) |
4 | násobička pro 64bitová celá čísla a 80bitová reálná čísla |
5 | dělička pro 64bitová celá čísla a 80bitová reálná čísla |
6 | bitové operace prováděné nad 32bitovými operandy |
7 | jednotka pro vyhodnocování a provádění skoků |
8 | datová cache |
9 | první jednotka pro provádění grafických operací s 64bitovými operandy |
10 | druhá jednotka pro provádění grafických operací s 64bitovými operandy |

Obrázek 12: Část základní desky X terminálu firmy NCD s mikroprocesorem Motorola 88100.
7. Spekulativní provádění skoků (speculative execution)
V případě, že je úspěšně vyřešena problematika rychlého přístupu k datům a instrukcím umístěným v operační paměti, stává se dalším „úzkým hrdlem“ mikroprocesorů s architekturou RISC provádění podmíněných skoků. Problém s podmíněnými skoky je snadno pochopitelný – k vyhodnocení podmínky skoku dojde až ve chvíli, kdy by mohly být v instrukční pipeline rozpracovány další dvě či tři instrukce, ovšem mikroprocesor dopředu neví, zda bude skok skutečně proveden či nikoli. U většiny RISCových procesorů se totiž podmínka vyhodnocuje až po výpočtu rozdílu dvou pracovních registrů a zjištění, zda je výsledek této operace kladný, záporný či nulový (otázkou je, zda by se použitím stavových bitů provádění programu v některých případech neurychlilo). V nejjednodušším případě tedy mikroprocesory při provádění instrukcí skoku přestanou naplňovat instrukční pipeline a počkají až do chvíle, kdy je jisté, zda se skok provede či nikoli.

Obrázek 13: Varianta mikroprocesoru Motorola 88100 v keramickém pouzdru.
To však vede ke zbytečnému zpomalování výpočtů, které se na straně překladače částečně řeší rozbalováním smyček a dalšími technikami majícími mnohdy negativní vliv na využití vyrovnávacích pamětí. Druhou možností je využití takzvaného branch delay slotu (instrukce ihned za skokem se provede kdykoli, nezávisle na tom, zda je skok proveden), popř. různých prediktorů skoků, o jejichž principu jsme se již zmínili v předchozích částech tohoto seriálu. Konstruktéři mikroprocesoru 88110 použili právě tuto technologii, s kterou se mimochodem můžeme v různé podobě setkat i u moderních mikroprocesorových architektur. Prediktor skoků byl vybaven tabulkou, v níž byly pro různé adresy skoků uloženy informace o tom, zda byl daný skok v minulosti proveden či nikoli. Díky této tabulce dokázal procesor 88110 po několika prvních iteracích správně předpovědět výsledek skoku i v případě, že se spouštěl kód ve vložených programových smyčkách, popř. často volaná subrutina se smyčkou či více smyčkami.

Obrázek 14: Další pohled na čip Motorola 88100.
8. Vykonávání instrukcí mimo pořadí (out of order execution)
Kromě využití paralelně pracujících funkčních jednotek (díky nimž se 88110 stal superskalárním procesorem) a prediktorů skoků se na relativně velkém výpočetním výkonu mikroprocesoru Motorola 88110 podílela i jednotka umožňující vykonávání instrukcí mimo pořadí (out of order execution). Jedná se o technologii, která sice umožňuje zvýšení výpočetního výkonu na superskalárních procesorech, ovšem za cenu komplikovanějšího i dražšího čipu, což je jeden z důvodů, proč tuto technologii nalezneme pouze u některých RISCových a CISCových mikroprocesorů, například u Power PC, MIPS R10000 či Intel Pentium Pro, zatímco například u procesorů UltraSPARC není využita. Zatímco u procesorů, které tuto technologii nevyužívají, se instrukce provádí přesně v takovém pořadí, v jakém jsou uloženy ve strojovém kódu (s výjimkou již zmíněných branch delay slotů), je situace v případě využití instrukcí mimo pořadí komplikovanější.

Obrázek 15: Interní struktura mikroprocesoru Motorola 88100.
Instrukce jsou běžně sekvenčním způsobem načítány z paměti a jejich operační kódy jsou ukládány do zvláštních instrukčních front, nazývaných také rezervační stanice (reservation stations) – jedná se tedy o fázi IF (instruction fetch) a částečně i o fázi ID (instruction decode). Z těchto front mohou být instrukce směrovány do některé z funkčních jednotek; v případě procesoru 88110 například do jedné ze dvou aritmeticko-logických jednotek, kde je instrukce vykonána (fáze EX, execute). Vykonání instrukce ovšem nastane až ve chvíli, kdy jsou pro danou instrukci dostupné všechny operandy, tj. většinou pracovní registry. Zajímavé je, že instrukce načtené ve frontě nemusí být prováděny přesně v tom pořadí, v jakém byly načteny; případné kolize jsou řešeny logikou mikroprocesoru. Výsledek spuštění instrukce je ukládán do další fronty a je ihned k dispozici instrukcím čekajícím na zpracování. Tato druhá fronta obsahuje nové hodnoty pracovních registrů, které však mohou být do skutečných registrů zapsány až ve chvíli, kdy jsou provedeny všechny starší instrukce – až v tomto okamžiku tedy dochází k finální synchronizaci (WB, write back), takže z pohledu programátora byly instrukce skutečně provedeny v takovém pořadí, v jakém byly zapsány v programu, i když ve skutečnosti byly instrukce rozdělovány mezi funkční bloky logikou implementovanou v procesoru.

Obrázek 16: Pro malé porovnání – interní struktura mikroprocesoru Motorola 68020.
9. Odkazy na Internetu
- Great Microprocessors of the Past and Present: Motorola 88000, Late but elegant (mid 1988) . . . .
http://www.unixhub.com/docs/misc/cpu.html#88000 - badabada.org (rozcestník s informacemi čipech Motorola 88000)
http://badabada.org/index.html - Motorola 88000 (Wikipedia)
http://en.wikipedia.org/wiki/Motorola_88000 - Motorola MC88100 (Wikipedia)
http://en.wikipedia.org/wiki/MC88100 - Motorola MC88110 (Wikipedia)
http://en.wikipedia.org/wiki/MC88110 - AMD Am29000 microprocessor family
http://www.cpu-world.com/CPUs/29000/ - AMD 29k (Streamlined Instruction Processor) ID Guide
http://www.cpushack.com/Am29k.html - AMD Am29000 (Wikipedia)
http://en.wikipedia.org/wiki/AMD_Am29000 - AMD K5 („K5“ / „5k86“)
http://www.pcguide.com/ref/cpu/fam/g5K5-c.html - Sixth Generation Processors
http://www.pcguide.com/ref/cpu/fam/g6.htm - Great Microprocessors of the Past and Present
http://www.cpushack.com/CPU/cpu1.html - Philip Koopman: Stack Computers: the new wave
http://www.ece.cmu.edu/~koopman/stack_computers/contents.html - Hewlett Packard PA-8800 RISC (LOSTCIRCUITS)
http://www.lostcircuits.com/mambo//index.php?option=com_content&task=view&id=42&Itemid=42 - PA-RISC 1.1 Architecture and Instruction Set Reference Manual
http://h21007.www2.hp.com/portal/download/files/unprot/parisc/pa1–1/acd.pdf - Fotografie mikroprocesorů HP PA (stránka 1)
http://www.chipdb.org/cat-pa-risc-592.htm - Fotografie mikroprocesorů HP PA (stránka 2)
http://www.chipdb.org/cat-pa-risc-592.htm?page=2 - Fotografie mikroprocesorů HP PA (stránka 2)
http://www.chipdb.org/cat-pa-risc-592.htm?page=3 - PA-RISC (Wikipedia)
http://en.wikipedia.org/wiki/PA-RISC - The Great CPU List: Part VI: Hewlett-Packard PA-RISC, a conservative RISC (Oct 1986)
http://jbayko.sasktelwebsite.net/cpu4.html - HP 9000/500 FOCUS
http://www.openpa.net/systems/hp-9000_520.html - HP FOCUS Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/HP_FOCUS - HP 3000 (Wikipedia)
http://en.wikipedia.org/wiki/HP_3000 - The SPARC Architecture Manual Version 8 (manuál v PDF formátu)
http://www.sparc.org/standards/V8.pdf - The SPARC Architecture Manual Version 9 (manuál v PDF formátu)
http://developers.sun.com/solaris/articles/sparcv9.pdf - SPARC Pipelining
http://www.academic.marist.edu/~jzbv/architecture/Projects/S2002/SPARC/pipelining.html - SPARC Instruction
http://www.academic.marist.edu/~jzbv/architecture/Projects/S2002/SPARC/inst_set.html - OpenSPARC
http://www.opensparc.net/ - History of SPARC systems 1987 to 2010
http://www.sparcproductdirectory.com/history.html - Sun-1 (Wikipedia)
http://en.wikipedia.org/wiki/Sun-1 - Sun-2 (Wikipedia)
http://en.wikipedia.org/wiki/Sun-2 - Sun-3 (Wikipedia)
http://en.wikipedia.org/wiki/Sun-3 - Sun386i (Wikipedia)
http://en.wikipedia.org/wiki/Sun386i - Sun 386i/250
http://sites.inka.de/pcde/site/sun386i.html - SPARC Instruction Set
http://www.academic.marist.edu/~jzbv/architecture/Projects/S2002/SPARC/inst_set.html - MIPS Architecture Overview
http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/mips.html - MIPS Technologies R3000
http://www.cpu-world.com/CPUs/R3000/ - CPU-collection: IDT R3010 FPU
http://www.cpu-collection.de/?tn=0&l0=co&l1=IDT&l2=R3010+FPU - The MIPS R2000 Instruction Set
http://suraj.lums.edu.pk/~cs423a05/Reference/MIPSCodeTable.pdf - Maska mikroprocesoru RISC 1
http://www.cs.berkeley.edu/~pattrsn/Arch/RISC1.jpg - Maska mikroprocesoru RISC 2
http://www.cs.berkeley.edu/~pattrsn/Arch/RISC2.jpg - The MIPS Register Usage Conventions
http://pages.cs.wisc.edu/~cs354–2/beyond354/conventions.html - C.E. Sequin and D.A.Patterson: Design and Implementation of RISC I
http://www.eecs.berkeley.edu/Pubs/TechRpts/1982/CSD-82–106.pdf - Berkeley RISC
http://en.wikipedia.org/wiki/Berkeley_RISC - Great moments in microprocessor history
http://www.ibm.com/developerworks/library/pa-microhist.html - Microprogram-Based Processors
http://research.microsoft.com/en-us/um/people/gbell/Computer_Structures_Principles_and_Examples/csp0167.htm - A Brief History of Microprogramming
http://www.cs.clemson.edu/~mark/uprog.html - Architecture of the WISC CPU/16
http://www.ece.cmu.edu/~koopman/stack_computers/sec4_2.html - Zásobníkový procesor WISC CPU/16 (Root.CZ)
http://www.root.cz/clanky/programovaci-jazyk-forth-a-zasobnikove-procesory-16/#k03 - Writable instruction set, stack oriented computers: The WISC Concept
http://www.ece.cmu.edu/~koopman/forth/rochester87.pdf - The Great CPU List: Part X: Hitachi 6301 – Small and microcoded (1983)
http://jbayko.sasktelwebsite.net/cpu2.html#Sec2Part10 - What is RISC?
http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/2000–01/risc/whatis/ - RISC vs. CISC
http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/2000–01/risc/risccisc/ - RISC and CISC definitions:
http://www.cpushack.com/CPU/cpuAppendA.html - The Evolution of RISC
http://www.ibm.com/developerworks/library/pa-microhist.html#sidebar1 - SPARC Processor Family Photo
http://thenetworkisthecomputer.com/site/?p=243 - SPARC: Decades of Continuous Technical Innovation
http://blogs.oracle.com/ontherecord/entry/sparc_decades_of_continuous_technical - The SPARC processors
http://www.top500.org/2007_overview_recent_supercomputers/sparc_processors - Maurice V. Wilkes Home Page
http://www.cl.cam.ac.uk/archive/mvw1/ - Papers by M. V. Wilkes (důležitá je především jeho práce číslo 35)
http://www.cl.cam.ac.uk/archive/mvw1/list-of-papers.txt - Microprogram Memory
http://free-books-online.org/computers/advanced-computer-architecture/microprogram-memory/ - First Draft of a report on the EDVAC
http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf - Introduction to Microcontrollers
http://www.pic24micro.com/cisc_vs_risc.html - Reduced instruction set computing (Wikipedia)
http://en.wikipedia.org/wiki/Reduced_instruction_set_computer - MIPS architecture (Wikipedia)
http://en.wikipedia.org/wiki/MIPS_architecture - Very long instruction word (Wikipedia)
http://en.wikipedia.org/wiki/Very_long_instruction_word - Classic RISC pipeline (Wikipedia)
http://en.wikipedia.org/wiki/Classic_RISC_pipeline - R2000 Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/R2000_(microprocessor) - R3000 Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/R3000 - R4400 Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/R4400 - R8000 Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/R8000 - R10000 Microprocessor (Wikipedia)
http://en.wikipedia.org/wiki/R10000 - SPARC (Wikipedia)
http://en.wikipedia.org/wiki/Sparc - SPARC Tagged Data – otázka
http://compilers.iecc.com/comparch/article/91–04–079 - SPARC Tagged Data – odpověď #1
http://compilers.iecc.com/comparch/article/91–04–082 - SPARC Tagged Data – odpověď #2
http://compilers.iecc.com/comparch/article/91–04–088 - CPU design (Wikipedia)
http://en.wikipedia.org/wiki/CPU_design - Control unit (Wikipedia)
http://en.wikipedia.org/wiki/Control_unit - Microcode (Wikipedia)
http://en.wikipedia.org/wiki/Microcode - Microsequencer (Wikipedia)
http://en.wikipedia.org/wiki/Microsequencer - Maurice Wilkes (Wikipedia)
http://en.wikipedia.org/wiki/Maurice_Wilkes - Micro-operation (Wikipedia)
http://en.wikipedia.org/wiki/Micro-operation - b16 stack processor
http://www.jwdt.com/~paysan/b16.html - Color Forth (Chuck Moore home page)
http://www.colorforth.com/ - colorForth Instructions
http://www.colorforth.com/inst.htm - SEAforth 40C18
http://www.intellasys.net/index.php?option=com_content&task=view&id=60&Itemid=75 - Bit slicing
http://en.wikipedia.org/wiki/Bit_slicing - Bitslice DES
http://www.darkside.com.au/bitslice/ - Great Microprocessors of the Past and Present: Part VII: Advanced Micro Devices Am2901, a few bits at a time …
http://www.cpushack.com/CPU/cpu1.html#Sec1Part7