Motorola 68020
Motorola 68020 (na obrázku prototyp verze XC68020RC12) je 32-bitový mikroprocesor z rodiny Motorola 680x0, představený v roce 1984 jako přímý nástupce modelu 68010. Jedná se o první procesor této řady s plně 32-bitovou architekturou - má 32-bitovou externí adresovou i datovou sběrnici a 32-bitové registry, což mu umožňuje adresovat až 4 GB paměti (oproti limitu 16 MB u předchůdce 68000).
Oproti starším modelům přinesl výrazná vylepšení: mimo jiné integrovanou instrukční cache o velikosti 256 bajtů a třístupňovou pipeline pro zřetězené zpracování instrukcí, které společně zvyšují výkon procesoru.
Prototyp verze procesoru XC68020RC12.
Díky těmto novinkám došlo ke zrychlení vykonávání mnoha instrukcí a k výraznému zvýšení celkové efektivity oproti 16 / 32-bitovému procesoru 68000. Čip Motorola 68020 obsahuje přibližně 190 000 tranzistorů a v době uvedení na trh byl považován za „superčip“ - jeho představení bylo významnou událostí v oboru polovodičů. Motorola 68020 se v praxi dočkal širokého nasazení (např. v počítačích Apple Macintosh II a Commodore Amiga) a pomohl posunout možnosti osobních počítačů i pracovních stanic na novou úroveň. Ačkoliv byl model 68020 poměrně brzy nahrazen vylepšeným procesorem Motorola 68030 (uvedeným koncem roku 1986), představuje důležitý milník ve vývoji počítačových procesorů své doby.
Detailní technická specifikace
Architektura a sběrnicová struktura
Procesor Motorola 68020 má plně 32-bitovou architekturu - zahrnuje 32-bitovou aritmeticko-logickou jednotku (ALU), 32-bitové registry a 32-bitové externí sběrnice (adresovou i datovou). To znamená, že může přímo adresovat 4 GB paměti a pracovat s 32-bitovými datovými jednotkami najednou.
Pro srovnání, původní 68000 měl externí 16-bitovou datovou a 24-bitovou adresovou sběrnici, což omezovalo adresovatelnou paměť na 16 MB a při přenosu 32-bitových slov paměti vyžadovalo dva cykly sběrnice. Model 68020 tyto limity odstranil - díky 32-bitové adresové sběrnici mohl využít plnou šíři 32-bitových adresových registrů a zpřístupnit celý 32-bitový adresní prostor bez omezení. Zároveň 32-bitová datová sběrnice zdvojnásobila teoretickou propustnost při čtení / zápisu z paměti oproti 16-bitovým předchůdcům.
Pro zachování kompatibility je sběrnicová architektura procesoru poměrně flexibilní - 68020 umí v případě potřeby pracovat i s užšími sběrnicemi (8-bitovými či 16-bitovými) tak, že přenos 32-bitových dat rozdělí do více cyklů. Díky tomu mohl být použit i v systémech, kde z důvodu nákladů nebo návrhu nebyla plná 32-bitová datová sběrnice implementována (například Macintosh LC využíval 68020 s pouze 16-bitovou systémovou sběrnicí).
Pro paměťový model procesoru 68020 je charakteristická možnost neomezeného 32-bitového adresování. To kladlo nové nároky na software - programy musely být „32bit-clean“, tedy nespoléhat na nevyužité vyšší bity 32-bitových adres. Některý starší software využíval u procesorů 68000 / 68010 nejvyšších 8 bitů adresy pro vlastní účely (tyto procesory fyzicky adresovaly jen 24 bitů, vyšší bity ignorovaly).
S příchodem 68020 a plných 32-bitových adres tak bylo nutné tyto programy upravit, aby správně fungovaly v rozšířeném adresovém prostoru. Procesor 68020 také odstranil omezení předchozích modelů, které vyžadovaly zarovnaný přístup k paměti pro víceslovná data - 68020 dovoluje čtení a zápis nezarovnaných 16-bitových a 32-bitových operandů na libovolných adresách (i když za cenu mírného zpomalení kvůli dodatečným cyklům sběrnice).
Registrový soubor a režimy
Registrový soubor procesoru 68020 vychází z architektury 68000. Obsahuje celkem 16 univerzálních 32-bitových registrů, rozdělených na 8 datových registrů D0 - D7 a 8 adresových registrů A0 - A7.
Adresový registr A7 slouží implicitně jako ukazatel zásobníku (Stack Pointer) a procesor rozlišuje uživatelský a privilegovaný režim - tomu odpovídají dva oddělené zásobníkové registry (USP a SSP) pro uživatelský a supervisor mód. Programový čítač (PC) je 32-bitový a spolu s 32-bitovou adresovou sběrnicí umožňuje přímý přístup k celému 4GB rozsahu adres.
Stavový registr (SR) je 16-bitový a obsahuje kromě stavových a řídicích bitů také sadu příznaků (CCR - Condition Code Register) indikujících výsledky instrukcí, jako je nula, přenos, záporný výsledek, přetečení apod. Motorola 68020 podporuje více privilegovaných režimů běhu (uživatelský a supervisor) a s tím související systémové registry pro řízení výjimek, adresování a další pokročilé funkce. Oproti starším modelům byly zavedeny některé nové řídicí registry, například pro správu cache paměti a podporu multiprocesorových operací.
Instrukční sada a pipeline
Procesor 68020 zachovává zpětnou kompatibilitu instrukční sady s procesory 68000 / 68010, zároveň však přidává řadu nových instrukcí a adresních režimů rozšiřujících možnosti programátora.
Byly zavedeny tři nové adresovací režimy: nepřímé adresování přes paměť (Memory Indirect), škálované indexové adresování (Scaled Index) umožňující násobit indexový registr koeficientem 2,4,8, a také větší rozsahy posunutí (displacement) u adresace.
Tyto nové režimy zvyšují flexibilitu při práci s datovými strukturami a poli v paměti. Instrukční sada byla rozšířena o množství nových instrukcí - přibyly například bitové operace pro práci s bitovými poli, instrukce pro vícenásobné porovnání a atomické operace pro multiprocesing (např. CAS/CAS2 - Compare and Swap), dále instrukce pro podporu vysokoúrovňových jazyků (např. CALLM - volání modulů, později však byly v dalších generacích odstraněny) a také instrukce pro balení / rozbalení BCD čísel (Pack/Unpack BCD) pro podporu desetinné aritmetiky.
Vylepšeny byly i aritmetické operace - 68020 umí provádět 32×32bitové násobení s 64-bitovým výsledkem a 64÷32-bitové dělení (s 32-bitovým podílem a zbytkem), což je výrazné zlepšení oproti 16×16→32-bitovému násobení u 68000.
Celkově se Motorola 68020 řadí mezi procesory typu CISC (Complex Instruction Set Computer) s velmi bohatou instrukční výbavou, která umožňovala efektivní zápis složitých operací i na relativně nízké frekvenci.
Za účelem zvýšení výkonu zavedla Motorola 68020 poprvé v této rodině instrukční pipeline o třech stupních a jednoduchou instrukční cache. Pipeline umožňuje překryvné zpracování až tří instrukcí současně - zatímco jedna instrukce se vykonává, další se dekóduje a třetí se přivádí z paměti, což zvyšuje propustnost procesoru beze změny taktovací frekvence.
Procesor 68010 sice měl experimentální tzv. „loop mode“ pro zrychlení malých smyček, ale ten umožňoval uložit v pouflech jen dvě instrukce a příliš se neosvědčil. Naproti tomu 68020 obsahuje plnohodnotnou cache paměť pro instrukce o kapacitě 256 bajtů (jedná se o přímé mapování 64 řádků × 4 bajty). Tato L1 cache sice byla z dnešního pohledu velmi malá, ale už i tak přinesla citelné zrychlení běhu programů díky snížení počtu přístupů do pomalejší operační paměti. Účinek se projevil zejména v systémech s častým DMA přístupem do paměti (snížením zátěže sběrnice).
Kombinace širší sběrnice, pipeline a cache dávala modelu 68020 výrazně vyšší výkon - například Apple Macintosh II s 16MHz 68020 dosahoval přibližně 3-4× vyšší rychlosti než původní Macintosh Plus s 8MHz procesorem 68000 (díky dvojnásobnému taktu, dvojnásobné šířce sběrnice a efektivnější mikroarchitektuře).
Procesor 68020 se vyráběl v řadě variant taktovacích frekvencí; typické modely pracovaly na 12, 16, 20, 25 či 33 MHz (přičemž minimální garantovaná frekvence byla 8 MHz pro pomalejší vestavné aplikace).
Podpora koprocesorů (FPU a MMU)
Ačkoliv 68020 sám o sobě neobsahuje jednotku pro operace v plovoucí řádové čárce (FPU) ani jednotku pro správu paměti (MMU), je navržen tak, aby s takovými koprocesory mohl hladce spolupracovat. Motorola 68020 disponuje speciálním koprocesorovým rozhraním, které umožňuje připojit až osm externích koprocesorů. V praxi byly definovány dva hlavní typy: matematický koprocesor (FPU) a paměťový management unit (MMU).
Pro výpočty v plovoucí čárce bylo možné osadit volitelný čip Motorola 68881 nebo pozdější rychlejší variantu 68882, které výrazně urychlovaly výpočty náročné na matematiku (např. operace s reálnými čísly).
Pro potřeby virtuální paměti byl určen samostatný paged MMU Motorola 68851, který zajišťoval správu stránkované paměti a podporu multitaskových operačních systémů s virtuální pamětí.
Rozhraní mezi procesorem 68020 a jeho koprocesory funguje asynchronně - instrukce určené pro koprocesor jsou dekódovány jako tzv. F-line instrukce (opcode začínající binárně 1111) a procesor je předává přes speciální cykly na sběrnici připojenému koprocesoru k provedení. Samotný 68020 tedy rozpozná instrukce pro FPU / MMU, předá je koprocesoru a po dobu výpočtu může pokračovat v práci na dalších úlohách (pokud to daná instrukce umožňuje). Lze taktu koprocesoru nezávisle na CPU - například FPU 68881 mohl běžet i na jiné frekvenci než samotný 68020. Běžně se však využíval maximálně jeden matematický koprocesor a jeden MMU v systému (zapojení více koprocesorů stejného typu se neujalo).
Díky podpoře externího MMU a FPU mohly systémy s 68020 dosáhnout funkcionality srovnatelné s modernějšími procesory - např. běh pokročilých operačních systémů (Unix, Amiga Unix, AUX aj.) vyžadujících virtuální paměť, nebo akcelerace grafických a vědeckých výpočtů pomocí FPU. (Následující generace Motorola 68030 již integrovala paměťovou jednotku přímo na čipu a u modelu 68040 byla integrována i jednotka FPU, čímž odpadla nutnost samostatných koprocesorů.)
Použití v praxi
Procesory Motorola 68020 a 68EC020 si našly uplatnění v celé řadě výpočetních systémů konce 80. let. V oblasti osobních počítačů patřily k nejznámějším jejich nasazením počítače Apple Macintosh. Konkrétně model Macintosh II uvedený v roce 1987 byl prvním Macem postaveným na procesoru 68020 (takt 16 MHz) a zároveň prvním modulárním Macintoshem s otevřenou architekturou - i díky výkonu 68020 přinesl do světa Apple podporu barevné grafiky, větší paměti a rozšiřujících slotů.
Macintosh II uvedený v roce 1987
Dalším zástupcem byl Macintosh LC (1990), cenově dostupný model, který rovněž používal 16MHz 68020, avšak z nákladových důvodů pouze s 16-bitovou datovou sběrnicí na základní desce.
Macintosh LC uvedený v roce 1990
Také firma Commodore využila 68020 ve svých populárních domácích počítačích řady Amiga - například model Amiga 1200 (1992) obsahoval levnější variantu 68EC020 na frekvenci 14 MHz. Tato varianta měla omezenou 24-bitovou adresovou sběrnici (max. 16 MB paměti) a neobsahovala instruktivní cache, což však v prostředí Amigy nevadilo a přispělo to ke snížení ceny systému.
Amiga 1200 uvedená v roce 1992
(Zajímavostí je, že Motorola původně zamýšlela 68EC020 pro zcela jiné využití - jako procesor pro spotřební elektroniku, například videopřehrávače či pračky.)
Vyšší modely Amigy, jako Amiga 2500 / 2500UX, nabízely i rozšiřující karty s procesorem 68020 - tzv. akcelerátor A2620 obsahoval 68020 doplněný o 68881 FPU a 68851 MMU, což umožnilo provozovat na Amize profesionální systém Amiga Unix (AMIX) vyžadující procesor s MMU.
Amiga 2500 uvedená v roce 1989
Procesory řady 68020 byly velmi oblíbené i v pracovních stanicích a systémech s Unixem v 80. letech. Firma Sun Microsystems použila Motorolu 68020 v několika modelech svých stanic Sun-3, které patřily k prvním 32-bitovým unixovým workstationům.
Počítačový pracovní stůl se třemi pracovními stanicemi UNIX, ta vpravo je Sun 3/60.
Podobně počítače Apollo DN3000/DN4000 od firmy Apollo Computer nebo systémy HP 9000/320 a 9000/330 od Hewlett-Packard využívaly 68020 jako hlavní procesor. Tyto stroje typicky kombinovaly 68020 s externím MMU 68851 a někdy i FPU 68881, aby nabídly kompletní podporu multitaskingu s virtuální pamětí a rychlé výpočty v plovoucí čárce.
K dalším zajímavým zařízením patřil např. Alpha Microsystems AM-2000 (minipočítač s OS AMOS) či speciální upgrade Sinclair QL (Super Gold Card), který nahrazoval původní procesor 68008 výkonnějším 68020.
Mikroprocesor 68020 se uplatnil i v řadě profesionálních a embedded zařízení. Byl osazen například v měřicích přístrojích, jako jsou digitální osciloskopy LeCroy 9300 / 9400 či Tektronix TDS z konce 80. let, kde zajišťoval řídicí funkce a zpracování naměřených dat (vyšší modely později přešly na 68EC030). Velmi náročné požadavky na spolehlivost splňoval 68020 v telekomunikacích - byl použit jako hlavní procesor ústředen Nortel DMS-100. Kuriozitou je nasazení procesoru 68020 v dopravní technice - ve francouzských vysokorychlostních vlacích TGV sloužil k dekódování signálů řízení jízdy a v bojovém letounu Eurofighter Typhoon byl využit v systémech řízení letu a radaru.
Levnější varianta 68EC020 se kromě zmíněné Amigy 1200 objevila i v herní konzoli Commodore CD32 (1993) a v některých arkádových automatech - například systém Namco System 22 nebo Taito F3 využívaly tento procesor pro řízení hry. Široké rozšíření procesoru 68020 v různých typech zařízení svědčí o jeho tehdejší výkonnosti a všestrannosti.
Význam a vliv na vývoj výpočetní techniky
Procesor Motorola 68020 představuje významný mezník ve vývoji mikroprocesorů. Svým přechodem na plně 32-bitovou architekturu zásadně navázal na úspěch původního 68000 a odstranil jeho klíčová omezení. Možnost adresovat výrazně větší paměť (až 4 GB) a vyšší výkon díky pipeline a cache otevřely cestu k softwarově náročnějším aplikacím a operačním systémům.
Například na platformě Apple Macintosh umožnil 68020 (v kombinaci s MMU) příchod pokročilého operačního systému A/UX (Unix pro Macintosh) a teprve s nástupem 32-bitově adresovatelných procesorů mohl klasický Mac OS plně využít více než 8 MB RAM (tzv. 32-bitová čistota systému byla dosažena až počátkem 90. let).
V unixovém světě 80. let se 68020 stal srdcem mnoha pracovních stanic a serverů, čímž přispěl k rozvoji grafických uživatelských rozhraní a síťových řešení na těchto platformách. Svými vlastnostmi byl 68020 důstojným soupeřem tehdejších procesorů Intel - plně 32-bitový čip Motorola byl uveden dříve než Intel 80386 a nabízel elegantní architekturu vhodnou pro multitasking a komplexní operační systém, což výrobcům počítačů poskytovalo atraktivní alternativu k x86 platformě.
Neméně důležitá byla zpětná kompatibilita a kontinuita vývoje řady 680x0. Motorola 68020 zachoval kompatibilitu se softwarem pro 68000, takže existující programy bylo možné snadno přenést a zároveň bylo možné dále optimalizovat pro nové instrukce. Tento evoluční přístup usnadnil přijetí nového procesoru na trhu.
68020 také přinesl některé koncepty, které se staly standardem v pozdějších procesory - například použití on-chip cache paměti, pipeline pro zpracování instrukcí nebo podpora atomických instrukcí pro víceprocesorové synchronizace. Tyto prvky se s rozvojem technologie objevily i u jiných architektur (včetně x86, POWER aj.) a pomohly zvýšit výkon a možnosti mikroprocesorů obecně.
I když byl 68020 na konci 80. let rychle vystřídán výkonnějším modelem 68030 a následně dalšími generacemi (68040, 68060), jeho vliv přetrvával. Mnoho počítačových systémů postavených na 68020 sloužilo řadu let a koncepty zavedené tímto procesorem se promítly do následujících konstrukcí.
Řada 680x0 si vydobyla pověst spolehlivé a dobře navržené architektury, což vyvrcholilo jejím využitím i v kritických aplikacích (vojenské a průmyslové systémy). Dokonce ještě dlouho po ukončení výroby Motorolou byl o tyto čipy zájem - například v roce 2014 obnovila společnost Rochester Electronics produkci procesoru 68020 pro účely náhradních dílů a dlouhodobé podpory zařízení.
Motorola 68020 tak zanechal trvalou stopu v historii výpočetní techniky: jako výkonný a pokročilý procesor své éry přispěl k rozvoji osobních počítačů i profesionálních pracovních stanic a připravil půdu pro pozdější technologické inovace.
Specifikace
| Plná verze | EC verze | |
| Rok: | 1984 | 1984 |
| Napájení: | 5V | 5V |
| Datová sběrnice: | 32-bitů | 32-bitů |
| Adresová sběrnice: | 32-bitů | 24-bitů |
| Instrukční cache: | 256 bajtů | - |
| Datová cache: | - | - |
| MMU: | Ne | Ne |
| FPU: | Ne | Ne |
| Velikost paměti: | 4GB | 16MB |
| Počet tranzistorů: | 190.000 | 190.000 |
| Vyráběno v rychlostech (MHz): | 12, 16, 25, 28, 33 | |



