Hlavní navigace

Mikroprocesory s architekturou RISC - čipy Motorola řady 88000 (88k)

2. 8. 2011
Doba čtení: 21 minut

Sdílet

Dnes 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 další čipy navržené v Motorole.

Ú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

5. Použití mikroprocesoru Motorola 88100 v osobních počítačích, pracovních stanicích a dalších zařízeních

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)

9. Odkazy na Internetu

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 mikropro­cesorů 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 (R3000R10000, 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.

pc7703

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.

pc7702

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  |
    +----------------------+
          |    |      |
          |    |      |
pc80

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

  1. Great Microprocessors of the Past and Present: Motorola 88000, Late but elegant (mid 1988) . . . .
    http://www.unix­hub.com/docs/mis­c/cpu.html#88000
  2. badabada.org (rozcestník s informacemi čipech Motorola 88000)
    http://badaba­da.org/index.html
  3. Motorola 88000 (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mo­torola_88000
  4. Motorola MC88100 (Wikipedia)
    http://en.wiki­pedia.org/wiki/MC88100
  5. Motorola MC88110 (Wikipedia)
    http://en.wiki­pedia.org/wiki/MC88110
  6. AMD Am29000 microprocessor family
    http://www.cpu-world.com/CPUs/29­000/
  7. AMD 29k (Streamlined Instruction Processor) ID Guide
    http://www.cpushac­k.com/Am29k.html
  8. AMD Am29000 (Wikipedia)
    http://en.wiki­pedia.org/wiki/AM­D_Am29000
  9. AMD K5 („K5“ / „5k86“)
    http://www.pcgu­ide.com/ref/cpu­/fam/g5K5-c.html
  10. Sixth Generation Processors
    http://www.pcgu­ide.com/ref/cpu­/fam/g6.htm
  11. Great Microprocessors of the Past and Present
    http://www.cpushac­k.com/CPU/cpu­1.html
  12. Philip Koopman: Stack Computers: the new wave
    http://www.ece­.cmu.edu/~koop­man/stack_com­puters/conten­ts.html
  13. Hewlett Packard PA-8800 RISC (LOSTCIRCUITS)
    http://www.los­tcircuits.com/mam­bo//index.php?op­tion=com_conten­t&task=view&id=42&I­temid=42
  14. PA-RISC 1.1 Architecture and Instruction Set Reference Manual
    http://h21007­.www2.hp.com/por­tal/download/fi­les/unprot/pa­risc/pa1–1/acd.pdf
  15. Fotografie mikroprocesorů HP PA (stránka 1)
    http://www.chip­db.org/cat-pa-risc-592.htm
  16. Fotografie mikroprocesorů HP PA (stránka 2)
    http://www.chip­db.org/cat-pa-risc-592.htm?page=2
  17. Fotografie mikroprocesorů HP PA (stránka 2)
    http://www.chip­db.org/cat-pa-risc-592.htm?page=3
  18. PA-RISC (Wikipedia)
    http://en.wiki­pedia.org/wiki/PA-RISC
  19. The Great CPU List: Part VI: Hewlett-Packard PA-RISC, a conservative RISC (Oct 1986)
    http://jbayko­.sasktelwebsi­te.net/cpu4.html
  20. HP 9000/500 FOCUS
    http://www.open­pa.net/system­s/hp-9000_520.html
  21. HP FOCUS Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/HP_FO­CUS
  22. HP 3000 (Wikipedia)
    http://en.wiki­pedia.org/wiki/HP_3000
  23. The SPARC Architecture Manual Version 8 (manuál v PDF formátu)
    http://www.spar­c.org/standar­ds/V8.pdf
  24. The SPARC Architecture Manual Version 9 (manuál v PDF formátu)
    http://develo­pers.sun.com/so­laris/articles/spar­cv9.pdf
  25. SPARC Pipelining
    http://www.aca­demic.marist.e­du/~jzbv/archi­tecture/Projec­ts/S2002/SPAR­C/pipelining.html
  26. SPARC Instruction
    http://www.aca­demic.marist.e­du/~jzbv/archi­tecture/Projec­ts/S2002/SPAR­C/inst_set.html
  27. OpenSPARC
    http://www.open­sparc.net/
  28. History of SPARC systems 1987 to 2010
    http://www.spar­cproductdirec­tory.com/histo­ry.html
  29. Sun-1 (Wikipedia)
    http://en.wiki­pedia.org/wiki/Sun-1
  30. Sun-2 (Wikipedia)
    http://en.wiki­pedia.org/wiki/Sun-2
  31. Sun-3 (Wikipedia)
    http://en.wiki­pedia.org/wiki/Sun-3
  32. Sun386i (Wikipedia)
    http://en.wiki­pedia.org/wiki/Sun386i
  33. Sun 386i/250
    http://sites.in­ka.de/pcde/si­te/sun386i.html
  34. SPARC Instruction Set
    http://www.aca­demic.marist.e­du/~jzbv/archi­tecture/Projec­ts/S2002/SPAR­C/inst_set.html
  35. MIPS Architecture Overview
    http://tams-www.informatik.uni-hamburg.de/ap­plets/hades/web­demos/mips.html
  36. MIPS Technologies R3000
    http://www.cpu-world.com/CPUs/R3­000/
  37. CPU-collection: IDT R3010 FPU
    http://www.cpu-collection.de/?tn=0&l0­=co&l1=IDT&l2=R3010+F­PU
  38. The MIPS R2000 Instruction Set
    http://suraj.lum­s.edu.pk/~cs423a0­5/Reference/MIP­SCodeTable.pdf
  39. Maska mikroprocesoru RISC 1
    http://www.cs­.berkeley.edu/~pat­trsn/Arch/RIS­C1.jpg
  40. Maska mikroprocesoru RISC 2
    http://www.cs­.berkeley.edu/~pat­trsn/Arch/RIS­C2.jpg
  41. The MIPS Register Usage Conventions
    http://pages.cs­.wisc.edu/~cs354–2/beyond354/con­ventions.html
  42. C.E. Sequin and D.A.Patterson: Design and Implementation of RISC I
    http://www.eec­s.berkeley.edu/Pub­s/TechRpts/1982/CSD-82–106.pdf
  43. Berkeley RISC
    http://en.wiki­pedia.org/wiki/Ber­keley_RISC
  44. Great moments in microprocessor history
    http://www.ib­m.com/developer­works/library/pa-microhist.html
  45. Microprogram-Based Processors
    http://resear­ch.microsoft.com/en-us/um/people/gbe­ll/Computer_Struc­tures_Principles_an­d_Examples/csp0167­.htm
  46. A Brief History of Microprogramming
    http://www.cs­.clemson.edu/~mar­k/uprog.html
  47. Architecture of the WISC CPU/16
    http://www.ece­.cmu.edu/~koop­man/stack_com­puters/sec4_2­.html
  48. Zásobníkový procesor WISC CPU/16 (Root.CZ)
    http://www.ro­ot.cz/clanky/pro­gramovaci-jazyk-forth-a-zasobnikove-procesory-16/#k03
  49. Writable instruction set, stack oriented computers: The WISC Concept
    http://www.ece­.cmu.edu/~koop­man/forth/roches­ter87.pdf
  50. The Great CPU List: Part X: Hitachi 6301 – Small and microcoded (1983)
    http://jbayko­.sasktelwebsi­te.net/cpu2.html#Sec2Par­t10
  51. What is RISC?
    http://www-cs-faculty.stanfor­d.edu/~erober­ts/courses/so­co/projects/2000–01/risc/whatis/
  52. RISC vs. CISC
    http://www-cs-faculty.stanfor­d.edu/~erober­ts/courses/so­co/projects/2000–01/risc/risccisc/
  53. RISC and CISC definitions:
    http://www.cpushac­k.com/CPU/cpu­AppendA.html
  54. The Evolution of RISC
    http://www.ib­m.com/developer­works/library/pa-microhist.html#si­debar1
  55. SPARC Processor Family Photo
    http://thenet­workisthecompu­ter.com/site/?p=243
  56. SPARC: Decades of Continuous Technical Innovation
    http://blogs.o­racle.com/onthe­record/entry/spar­c_decades_of_con­tinuous_techni­cal
  57. The SPARC processors
    http://www.top500­.org/2007_over­view_recent_su­percomputers/spar­c_processors
  58. Maurice V. Wilkes Home Page
    http://www.cl­.cam.ac.uk/ar­chive/mvw1/
  59. Papers by M. V. Wilkes (důležitá je především jeho práce číslo 35)
    http://www.cl­.cam.ac.uk/ar­chive/mvw1/list-of-papers.txt
  60. Microprogram Memory
    http://free-books-online.org/com­puters/advanced-computer-architecture/mi­croprogram-memory/
  61. First Draft of a report on the EDVAC
    http://qss.stan­ford.edu/~god­frey/vonNeuman­n/vnedvac.pdf
  62. Introduction to Microcontrollers
    http://www.pic24mi­cro.com/cisc_vs_ris­c.html
  63. Reduced instruction set computing (Wikipedia)
    http://en.wiki­pedia.org/wiki/Re­duced_instruc­tion_set_compu­ter
  64. MIPS architecture (Wikipedia)
    http://en.wiki­pedia.org/wiki/MIP­S_architecture
  65. Very long instruction word (Wikipedia)
    http://en.wiki­pedia.org/wiki/Ve­ry_long_instruc­tion_word
  66. Classic RISC pipeline (Wikipedia)
    http://en.wiki­pedia.org/wiki/Clas­sic_RISC_pipe­line
  67. R2000 Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/R2000_(mi­croprocessor)
  68. R3000 Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/R3000
  69. R4400 Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/R4400
  70. R8000 Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/R8000
  71. R10000 Microprocessor (Wikipedia)
    http://en.wiki­pedia.org/wiki/R10000
  72. SPARC (Wikipedia)
    http://en.wiki­pedia.org/wiki/Sparc
  73. SPARC Tagged Data – otázka
    http://compiler­s.iecc.com/com­parch/article/91–04–079
  74. SPARC Tagged Data – odpověď #1
    http://compiler­s.iecc.com/com­parch/article/91–04–082
  75. SPARC Tagged Data – odpověď #2
    http://compiler­s.iecc.com/com­parch/article/91–04–088
  76. CPU design (Wikipedia)
    http://en.wiki­pedia.org/wiki/CPU_de­sign
  77. Control unit (Wikipedia)
    http://en.wiki­pedia.org/wiki/Con­trol_unit
  78. Microcode (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mi­crocode
  79. Microsequencer (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mi­crosequencer
  80. Maurice Wilkes (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mau­rice_Wilkes
  81. Micro-operation (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mi­cro-operation
  82. b16 stack processor
    http://www.jwdt­.com/~paysan/b16­.html
  83. Color Forth (Chuck Moore home page)
    http://www.co­lorforth.com/
  84. colorForth Instructions
    http://www.co­lorforth.com/in­st.htm
  85. SEAforth 40C18
    http://www.in­tellasys.net/in­dex.php?option=com_con­tent&task=view&id=60&I­temid=75
  86. Bit slicing
    http://en.wiki­pedia.org/wiki/Bit_sli­cing
  87. Bitslice DES
    http://www.dar­kside.com.au/bit­slice/
  88. Great Microprocessors of the Past and Present: Part VII: Advanced Micro Devices Am2901, a few bits at a time …
    http://www.cpushac­k.com/CPU/cpu­1.html#Sec1Par­t7