Motorola řady 68000 - Motorola 68000 series

Motorola řady 68000
Návrhář Motorola
Bity 32bitové
Představeno 1979 ; Před 42 lety ( 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

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 :

68030 :

68040 :

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í

Sega Genesis použito 68.000 taktovaný na 7,67 MHz jako jeho hlavní CPU.

Ř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

Registry řady Motorola 68000
3 1 ... 2 3 ... 1 5 ... 0 7 ... 0 0 (bitová pozice)
Datové registry
D0 Data 0
D1 Údaje 1
D2 Údaje 2
D3 Data 3
D4 Údaje 4
D5 Údaje 5
D6 Údaje 6
D7 Data 7
Registry adres
A0 Adresa 0
A1 Adresa 1
A2 Adresa 2
A3 Adresa 3
A4 Adresa 4
A5 Adresa 5
A6 Adresa 6
Ukazatele zásobníku
A7 / USP Ukazatel zásobníku (uživatel)
A7 ' / SSP Ukazatel zásobníku (supervizor)
Počitadlo programů
PC Počitadlo programů
Registrace stavu
  1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (bitová pozice)
  T S M 0 0 0 0 X N. Z PROTI C SR

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í:

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.

externí odkazy