Motorola řady 68000 - Motorola 68000 series
Návrhář | Motorola |
---|---|
Bity | 32bitové |
Představeno | 1979 |
Design | CISC |
Větvení | Kód podmínky |
Endianness | Velký |
Registry | |
Tyto série Motorola 68000 (také známý jako 680x0 , m68000 , m68k , nebo 68k ) je rodina 32-bitový komplexní instrukční sadu počítače (CISC) mikroprocesory . Během 1980 a brzy 1990, oni byli populární v osobních počítačů a pracovních stanic a byly hlavními konkurenty Intel ‚s x86 mikroprocesory. Byly nejlépe známé jako procesory používané na počátku Apple Macintosh , Sharp X68000 , Commodore Amiga , Sinclair QL , Atari ST , Sega Genesis (Mega Drive), Capcom System I (Arcade), AT&T UnixPC , modely Tandy 16/16B/6000 , Sun Microsystems Sun-1 , Sun-2 a Sun-3 , počítač NeXT , kalkulačky Texas Instruments TI-89 / TI-92 , Palm Pilot (všechny modely se systémem Palm OS 4) .x nebo starší) a raketoplán . Ačkoli žádné moderní stolní počítače nejsou založeny na procesorech řady 680x0, derivační procesory jsou v integrovaných systémech stále široce používány .
Motorola ukončila vývoj architektury řady 680x0 v roce 1994 a nahradila ji architekturou PowerPC RISC , která byla vyvinuta ve spolupráci s IBM a Apple Computer jako součást aliance AIM .
Členové rodiny
- Generace jedna (interně 16/32bitová a vyráběná s 8- , 16- a 32bitovými rozhraními)
- Generace dvě (interně plně 32bitová)
- Generace tři ( pipelined )
- Generace čtyři ( superskalární )
- Ostatní
- Freescale 683XX (CPU32 aka 68330, 68360 aka QUICC )
- Freescale ColdFire
- Freescale Dragonball
- Philips 68070
Historie vylepšení
68010 :
- Podpora virtuální paměti (restartovatelné pokyny)
- 'smyčkový režim' pro rychlejší primitiva knihoven řetězců a paměti
- instrukce násobení využívá o 14 hodin méně
68020 :
- 32bitová adresa a aritmetická logická jednotka (ALU)
- Třístupňové potrubí
- Mezipaměť instrukcí 256 bajtů
- Neomezený přístup k datům slov a dlouhých slov (viz zarovnání )
- 8 × multiprocesní schopnost
- Větší pokyny pro násobení (32 × 32 -> 64 bitů) a dělení (64 ÷ 32 -> 32 bitů a zbývající 32 bitů) a manipulace s bitovým polem
- Režimy adresování přidaly škálované indexování a další úroveň přesměrování
- Nízké náklady, EC = 24bitová adresa
68030 :
- Rozdělit instrukce a data cache 256 bajtů každého
- Jednotka pro správu paměti na čipu (MMU) (68851)
- Nízké náklady EC = bez MMU
- Rozhraní sériové paměti
68040 :
- Instrukční a datová cache 4 KB každý
- Šestistupňové potrubí
- Jednotka s pohyblivou řádovou čárkou (FPU) na čipu
- FPU postrádá schopnost transcendentálních funkcí IEEE
- Emulace FPU funguje s 2E71M a novějšími revizemi čipů
- Nízké náklady LC = bez FPU
- Nízké náklady EC = bez FPU nebo MMU
68060 :
- Keše instrukcí a dat po 8 kB
- 10stupňové potrubí
- Dvoucyklová celočíselná multiplikační jednotka
- Předpověď větve
- Duální instrukční potrubí
- Pokyny v jednotce generování adres (AGU) a tím dodejte výsledek dva cykly před ALU
- Nízké náklady LC = bez FPU
- Nízké náklady EC = bez FPU nebo MMU
Mapa funkcí
Rok | procesor | Balík | Frekvence (max.) [V MHz] | Bity adresové sběrnice | MMU | FPU |
---|---|---|---|---|---|---|
1979 | 68 000 | 64pinový dvojitý řadový řadič (DIP) , 68pinový LCC , 68pinový kolíkový rastr (PGA) | 8–20 | 24 | - | - |
1982 | 68010 | 64pinový DIP , 68pinový PLCC , 68pinový PGA | 8–16,67 | 24 | 68451 | - |
1984 | 68020 | 114kolíkový PGA | 12,5–33,33 | 32 | 68851 | 68881 |
- | 68 EC 020 | 100-pin Quad Flat Package (QFP) | 16.7–25 | 24 | - | - |
1987 | 68030 | 132kolíkový QFP (max. 33 MHz ), 128pinový PGA | 16–50 | 32 | MMU | 68881 |
68 EC 030 | 132kolíkový QFP , 128pinový PGA | 25 | 32 | - | 68881 | |
1991 | 68040 | 179pinový PGA , 184pinový QFP | 20–40 | 32 | MMU | FPU |
68 LC 040 | PGA , 184pinový QFP | 20–33 | 32 | MMU | - | |
68 EC 040 | 20–33 | 32 | - | - | ||
1994 | 68060 | 206kolíkový PGA | 50–75 | 32 | MMU | FPU |
68 LC 060 | 206kolíkový PGA , 208pinový QFP | 50–75 | 32 | MMU | - | |
68 EC 060 | 206kolíkový PGA | 50–75 | 32 | - | - |
Hlavní použití
Řada procesorů 680x0 byla použita v celé řadě systémů, od moderních špičkových kalkulaček Texas Instruments (řady TI-89 , TI-92 a Voyage 200 ) až po všechny členy řady Palm Pilot, na kterých běží Palm OS 1.x až 4.x (OS 5.x je založený na ARM ) a dokonce i radiačně tvrzené verze v kritických řídicích systémech raketoplánu .
Rodina procesorů 680x0 se však nejvíce proslavila jako procesory pohánějící pokročilé stolní počítače a herní konzole , jako jsou Apple Macintosh , Commodore Amiga , Sinclair QL , Atari ST , SNK NG AES / Neo Geo CD , Atari Jaguar , Commodore CDTV a několik dalších. 680x0 byly také procesory volby v 80. letech pro unixové pracovní stanice a servery , jako jsou UNIX PC AT & T , Tandy's Model 16/16B/6000 , Sun Microsystems ' Sun-1 , Sun-2 , Sun-3 , NeXT Computer , Silicon Graphics (SGI) a mnoho dalších. Existovala 68000 verze CP/M s názvem CP/M-68K, která byla původně navržena jako operační systém Atari ST, ale Atari místo toho zvolila Atari TOS . K dispozici bylo mnoho systémově specifických portů CP/M-68K, například TriSoft nabízel port CP/M-68K pro Tandy Model 16/16B/6000.
Také, a možná nejvýznamněji, prvních několik verzí překladačů Adobe PostScript bylo založeno na 68 000. 68 000 v Apple LaserWriter a LaserWriter Plus bylo taktováno rychleji než verze používaná tehdy v počítačích Macintosh. Rychlý překladač 68030 v pozdějších jazycích PostScript, včetně standardního rozlišení LaserWriter IIntx, IIf a IIg (také 300 dpi), řady LaserWriter Pro 600 s vyšším rozlišením (obvykle 600 dpi, ale omezeno na 300 dpi s nainstalovanou minimální RAM) a velmi vysoké rozlišení sázecích zařízení Linotronic , 200PS (1500+ dpi) a 300PS (2500+ dpi). Poté společnost Adobe obecně upřednostňovala RISC pro svůj procesor, protože její konkurenti se svými klony PostScript již odešli s RISC, často řadou AMD 29000. Prvních 68 000 interpretů Adobe PostScript a jejich hardware bylo pojmenováno pro americké rakety a rakety studené války -Atlas, Redstone atd.
Dnes jsou tyto systémy buď end-of-line (v případě Atari), nebo používají různé procesory (v případě Macintosh, Amiga, Sun a SGI). Protože tyto platformy měly v 80. letech svůj špičkový podíl na trhu, jejich původní výrobci buď již nepodporují operační systém pro tento hardware, nebo jsou mimo provoz. Nicméně, Linux , NetBSD a OpenBSD operační systémy stále patří podpora pro 68000 procesorů.
68000 procesorů bylo také použito v konzolách Sega Genesis (Mega Drive) a SNK Neo Geo jako hlavní CPU. Jiné konzoly, jako například Sega Saturn, používaly 68000 pro zpracování zvuku a další I/O úkoly, zatímco Atari Jaguar obsahoval 68000, který byl určen pro základní ovládání systému a zpracování vstupu, ale vzhledem k neobvyklému sortimentu heterogenních procesorů Jaguaru byl také často používané pro provozování logiky hry. Mnoho arkádových desek také používalo 68 000 procesorů, včetně desek Capcom, SNK a Sega.
Mikrokontroléry odvozené z rodiny 68000 byly použity v obrovské řadě aplikací. Například mikrokontroléry CPU32 a ColdFire byly vyrobeny v milionech jako ovladače motorů automobilů.
Mnoho proprietárních systémů pro úpravu videa používalo 68 000 procesorů. V této kategorii můžeme jmenovat MacroSystem Casablanca, což byla černá skříňka se snadno použitelným grafickým rozhraním (1997). Byl určen pro trh amatérských a hobby kameramanů. Za povšimnutí stojí také jeho dřívější, větší a profesionálnější obdoba s názvem „DraCo“ (1995), průkopnická řada systému Quantel Paintbox raného 24bitového systému barev a efektů, který byl původně vydán v roce 1981 a během svého života používal téměř celá řada 68000 rodinných procesorů, s jedinou výjimkou 68060, která nikdy nebyla implementována do svého designu. Další uchazeč ve video aréně, systém Abekas 8150 DVE, používal 680EC30 a Trinity Play, později přejmenovaný na Globecaster, používá několik 68030. Videografický systém Bosch FGS-4000/4500 vyráběný společností Robert Bosch Corporation, později BTS (1983), používal jako hlavní procesor 68000; několik dalších to přimělo provádět 3D animaci v počítači, který by mohl snadno aplikovat Gouraudovo a Phongovo stínování. Běžel na upraveném operačním systému Motorola Versados.
Architektura
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Lidé, kteří znají PDP-11 nebo VAX , se s řadou 68000 obvykle cítí dobře. S výjimkou rozdělení obecných registrů do specializovaných datových a adresních registrů je architektura 68000 v mnoha ohledech 32bitovým PDP-11.
Měl více ortogonálních instrukčních sad než mnoho procesorů, které přicházely před (např. 8080) a po (např. X86). To znamená, že bylo obvykle možné volně kombinovat operace s operandy, nikoli omezovat používání určitých režimů adresování s určitými pokyny. Tato vlastnost poměrně snadno programovala pro lidi a také usnadnila psaní generátorů kódu pro překladače.
Řada 68000 má osm 32bitových univerzálních datových registrů (D0-D7) a osm adresních registrů (A0-A7). Poslední registr adres je ukazatel zásobníku a montéři akceptují označení SP jako ekvivalent A7.
Navíc má 16bitový stavový registr. Horní 8 bitů je systémový bajt a jeho modifikace je privilegovaná. Dolních 8 bitů je uživatelský byte, známý také jako registr kódových podmínek (CCR), a jeho modifikace není privilegovaná. Porovnávací, aritmetické a logické operace 68000 upravují kódy podmínek tak, aby zaznamenávaly jejich výsledky pro použití při pozdějších podmíněných skocích. Bity kódu podmínky jsou „nula“ (Z), „nést“ (C), „přetečení“ (V), „roztažení“ (X) a „záporné“ (N). Zvláštní zmínku si zaslouží příznak „extend“ (X), protože je oddělený od vlajky carry . To umožňuje, aby extra bit z aritmetických, logických a posunových operací byl oddělen od přenosu pro tok řízení a propojení.
Zatímco 68000 mělo 'režim dohledu', nesplňovalo požadavky na virtualizaci Popek a Goldberg kvůli jediné instrukci 'MOVE from SR', která kopíruje stavový registr do jiného registru, je neprivilegovaná, ale citlivá. V Motorola 68010 a novější to bylo privilegováno, aby lépe podporovalo virtualizační software.
Řada 68000 instrukční sadu lze rozdělit do následujících hlavních kategorií:
- Načíst a uložit (MOVE)
- Aritmetika (ADD, SUB, MULS, MULU, DIVS, DIVU)
- Bitové řazení (ASL, ASR, LSL, LSR)
- Bitová rotace (ROR, ROL, ROXL, ROXR)
- Logické operace (AND, OR, NOT, EOR)
- Převod typu ( bajt na slovo a naopak )
- Podmíněné a nepodmíněné větve (BRA, Bcc - BEQ, BNE, BHI, BLO, BMI, BPL atd.)
- Vyvolání a vrácení podprogramu (BSR, RTS)
- Správa zásobníku (LINK, UNLK, PEA)
- Způsobování přerušení a reakce na ně
- Zpracování výjimek
- Neexistuje žádný ekvivalent instrukce x86 CPUID k určení, jaký CPU nebo MMU nebo FPU je k dispozici.
Motorola 68020 přidány některé nové pokyny, které obsahují některé drobné vylepšení a rozšíření do stavu supervizora, několik instrukce pro softwarový management jednoho multi-processing systému (které byly odstraněny do 68060), určitou podporu pro jazyky na vysoké úrovni, které neměly zvyknout moc (a byl odstraněn z budoucích procesorů 680x0), pokyny pro větší násobení (32 × 32 → 64 bitů) a dělení (64 ÷ 32 → 32 bitů a zbývající 32 bitů) a manipulace s bitovým polem.
Standardní režimy adresování jsou:
- Zaregistrujte se přímo
- datový registr, např. "D0"
- registr adres, např. "A0"
- Zaregistrujte se nepřímo
- Jednoduchá adresa, např. (A0)
- Adresa s dodatečným přírůstkem, např. (A0)+
- Adresa s předběžným snížením, např.-(A0)
- Adresa s 16bitovým podepsaným ofsetem, např. 16 (A0)
- Registrace nepřímá pomocí indexového registru a 8bitového podepsaného posunu, např. 8 (A0, D0) nebo 8 (A0, A1)
- Všimněte si, že pro (A0)+ a - (A0) je skutečná hodnota přírůstku nebo úbytku závislá na velikosti operandu: bajtový přístup upravuje registr adres o 1, slovo o 2 a dlouhý o 4.
- PC (programový čítač) relativní s posunem
- Relativní 16bitový podepsaný offset, např. 16 (PC). Tento režim byl velmi užitečný pro kód nezávislý na poloze.
- Relativní s 8bitovým podepsaným ofsetem s indexem, např. 8 (PC, D2)
- Absolutní umístění paměti
- Buď číslo, např. „4000 $“, nebo symbolické jméno přeložené assemblerem
- Většina montérů použila symbol „$“ pro hexadecimální namísto „0x“ nebo koncové H.
- Existovalo 16 a 32bitové verze tohoto režimu adresování
- Okamžitý režim
- Data uložená v instrukci, např. „#400“
- Rychlý okamžitý režim
- 3bitové bez znaménka (nebo 8bitové podepsané pomocí moveq) s hodnotou uloženou v operačním kódu
- V addq a subq je 0 ekvivalentní 8
- např. moveq #0, d0 bylo rychlejší než clr.l d0 (i když obě dělaly D0 rovno 0)
Plus: přístup do stavového registru a v novějších modelech k dalším speciálním registrům.
Motorola 68020 přidala zmenšený režim adresování indexování a přidala další úroveň indirection do mnoha z již existujících režimů.
Většina pokynů má přípony s tečkami a písmeny, což umožňuje operace na 8bitových bajtech („.b“), 16bitových slovech („.w“) a 32bitových délkách („.l“).
Většina pokynů je dyadická , to znamená, že operace má zdroj a cíl a cíl se změní. Pozoruhodné pokyny byly:
- Aritmetika: ADD, SUB, MULU (násobení bez znaménka), MULS (násobení se znaménkem), DIVU, DIVS, NEG (aditivní negace) a CMP (druh srovnání provedeného odečtením argumentů a nastavením stavových bitů, ale neukládá se výsledek)
- Binární kódovaná desítková aritmetika: ABCD, NBCD a SBCD
- Logika: EOR (exkluzivní nebo), AND, NOT (logické ne), NEBO (včetně nebo)
- Řazení: (logické, tj. Posuny doprava dávají nulu do nejvýznamnějšího bitu) LSL, LSR, ( aritmetické posuny , tj. Znaménko prodlužuje nejvýznamnější bit) ASR, ASL, (rotuje přes eXtend a ne) ROXL, ROXR, ROL, ROR
- Bitový test a manipulace v paměti nebo datovém registru: BSET (nastaveno na 1), BCLR (vymazáno na 0), BCHG (invertováno) a BTST (beze změny). Všechny tyto instrukce nejprve otestují cílový bit a nastaví (zruší) bit CCR Z, pokud je cílový bit 0 (1).
- Řízení více procesů : TAS, test-and-set , provedl nedělitelnou operaci sběrnice, což umožňuje použití semaforů k synchronizaci několika procesorů sdílejících jednu paměť
- Tok řízení: JMP (skok), JSR (skok na podprogram), BSR (skok na relativní adresu na podprogram), RTS (návrat z podprogramu ), RTE (návrat z výjimky , tj. Přerušení), TRAP (spuštění softwarové výjimky podobné k přerušení softwaru), CHK (podmíněná softwarová výjimka)
- Obor: Skrytá kopie (kde "kopie" specifikovalo jeden ze 14 testů stavových kódů ve stavovém registru: stejné, větší než, menší než, přenos a většina kombinací a logických inverzí, dostupné ze stavového registru). Zbývající dvě možné podmínky (vždy pravdivé a vždy nepravdivé) mají oddělené instrukční mnemotechnické pomůcky, BRA (větev vždy) a BSR (větev na podprogram).
- Decrement-and-branch: DBcc (where "cc" was as for the branch instructions), which, if the condition was false , decrement the low word of a D-register and, if the result was not -1 ($ FFFF) , rozvětvený na místo určení. Toto použití −1 místo 0 jako ukončovací hodnoty umožnilo snadné kódování smyček, které neměly co dělat, pokud byl počet 0 na začátku, bez nutnosti další kontroly před vstupem do smyčky. To také usnadnilo vnoření DBcc.
68050 a 68070
Nebylo 68050, ačkoli v jednom okamžiku to byl projekt v rámci Motorola. Lichá vydání vždy byla reakcí na problémy nastolené v předchozí sudé části; proto se obecně očekávalo, že 68050 sníží spotřebu energie (a tím i odvod tepla) 68040, zlepší manipulaci s výjimkami v FPU, použije menší velikost funkcí a optimalizuje mikrokód v souladu s použitím pokynů programu. Mnoho z těchto optimalizací bylo zahrnuto v 68060 a bylo součástí jeho návrhových cílů. Z mnoha důvodů, pravděpodobně ve vývoji 68060, v tom, že Intel 80486 nepostupoval tak rychle, jak Motorola předpokládala, a že 68060 byl náročný projekt, byl 68050 na počátku vývoje zrušen.
Rovněž nedochází k revizi 68060 , protože Motorola přecházela z řady procesorů 68000 a 88k do svého nového podnikání PowerPC , takže 68070 nebyl nikdy vyvinut. Kdyby to bylo, bylo by to revidované 68060, pravděpodobně s vynikající FPU (na Usenetu se široce spekulovalo o potrubí).
Motorola hlavně používala sudá čísla pro velké revize jádra CPU, jako 68000, 68020, 68040 a 68060. 68010 byla revidovaná verze 68000 s drobnými úpravami jádra a podobně 68030 byl revidovaný 68020 s některými výkonnějšími funkce, žádná z nich není natolik významná, aby byla klasifikována jako hlavní upgrade jádra.
Existoval CPU s označením 68070 , což byla licencovaná a poněkud pomalejší verze 16/32 bitů 68000 se základním řadičem DMA, hostitelem I²C a sériovým portem na čipu. Tento 68070 byl použit jako hlavní CPU v Philips CD-i . Tento procesor byl však vyroben společností Philips a nebyl oficiálně součástí řady Motorola 680x0.
Poslední generace
Čtvrtá generace 68060 poskytovala ekvivalentní funkce (i když ne kompatibilitu architektury sady instrukcí) s většinou funkcí mikroarchitektury Intel P5 .
Jiné varianty
Sálové počítače kompatibilní s IBM IBM Personal Computers XT/370 a AT/370 na bázi PC obsahovaly každý dva upravené procesory Motorola 68000 s vlastním mikrokódem pro emulaci sálových pokynů S/370 .
Po zániku hlavních procesorů 68000 byla rodina 68000 do určité míry použita ve verzích s mikrokontroléry a vestavěnými mikroprocesory. Mezi tyto čipy patří čipy uvedené pod „jinými“ výše, tj. CPU32 (aka 68330 ), ColdFire , QUICC a DragonBall .
S příchodem technologie FPGA mezinárodní tým vývojářů hardwaru znovu vytvořil 68000 s mnoha vylepšeními jako jádro FPGA. Jejich jádro je známé jako 68080 a používá se v urychlovačích Amiga pod značkou Vampire.
Magnetické svitky používaly podmnožinu pokynů 68000 jako základ pro virtuální stroj při jejich textových dobrodružstvích .
Konkurenti
plocha počítače
Během 80. a počátku 90. let, kdy byl 68000 široce používán ve stolních počítačích, soutěžil hlavně s architekturou Intel x86 používanou v kompatibilních počítačích IBM PC . Generace 1 68 000 CPU konkurovala hlavně 16bitovým 8086 , 8088 a 80286 . Generace 2 soutěžila s 80386 (první 32bitový procesor x86) a generace 3 s 80486 . Čtvrtá generace soutěžila s řadou P5 Pentium , ale nebyla zdaleka tak široce používána jako její předchůdci, protože velká část starého trhu 68000 byla buď zaniklá, nebo téměř (jak tomu bylo u Atari a NeXT), nebo přecházela na novější architektury ( PowerPC pro Macintosh a Amiga , SPARC pro Sun a MIPS pro Silicon Graphics (SGI)).
Vestavěný
Ve vestavěných systémech existují desítky procesorových architektur, které jsou úspěšné . Některé jsou mikrokontroléry, které jsou mnohem jednodušší, menší a levnější než 68 000, zatímco jiné jsou poměrně sofistikované a mohou provozovat složitý software. Vestavěné verze 68000 často soutěží s architekturami procesorů založených na PowerPC , ARM , MIPS , SuperH a dalších.
Reference
Bibliografie
- Howe, Dennis, ed. (1983). Zdarma online slovník počítačů . Imperial College v Londýně. http://foldoc.org . Citováno 4. září 2007.