Motorola 68000 -sarja

Motorola 68000 (MC68000, m68k, 68k) on Motorolan valmistama mikroprosessorisarja, joka julkistettiin vuonna 1979. Se oli aikanaan suosittu suoritin.
Nimitystä 68000 käytetään sekä sarjan ensimmäisestä mallista että myös koko sarjasta ja sen toteuttamasta CISC-suoritinarkkitehtuurista.

Saman mallisarjan suorittimia ovat 68000, 68010, 68020, 68030, 68040, 68060 eri muunnoksineen. Prosessoreista on halvempia malleja käyttöön muun muassa sulautetuissa järjestelmissä.

Prosessoria käytettiin useissa Unix-työasemissa, muun muassa Sun Microsystemsin varhaisissa malleissa, Hewlett-Packardin HP 9000 -sarjassa, Silicon Graphicsin IRIS 1000 ja IRIS 2000 -sarjoissa, NeXTin NeXT Computer -tietokoneissa sekä Digital Equipment Corporationin VAXstation 100 -terminaalissa.
Kotitietokoneissa sitä käytettiin muun muassa Commodore Amiga, Atari ST, Apple Macintosh ja Sinclair  QL -tietokoneissa. 

1980-luvulla markkinoiden kaksi suurinta mikroprosessorivalmistajaa olivat Intel ja Motorola: Intelillä oli hallussaan 90 % henkilökohtaisten tietokoneiden markkinoista ja Motorolalla oli 90 % työasemamarkkinoista.

Ensimmäinen 68000-malli on sisäisesti 32-bittinen, jossa on 16-bittinen ulkoinen dataväylä ja 24-bittinen ulkoinen osoiteväylä. Myöhemmät saman sarjan mallit ovat myös ulkoisesti 32-bittisiä alkaen Motorola 68020-mallista. Motorola valmisti erillisiä liukulukulaskentaan tarkoitettuja matematiikkasuorittimia 68881 ja 68882, joita voitiin käyttää 68020:n ja 68030:n rinnalla. 68040 ja 68060 sisälsivät integroidun matematiikkasuorittimen.

Motorola päätti rikkoa yhteensopivuuden aiempaan Motorola 6800 -sarjaan kehittäessään 68000:n. Eduiksi on sanottu yksinkertaisuutta ja ortogonaalisuutta, joiden myötä assemblyn opettelu tuli yksinkertaiseksi.
Sarjan suorittimia valmistetaan vielä 2020-luvulla.

Prosessoriperheen mallit 
 Ensimmäinen sukupolvi (sisäisesti 32-bittinen, ulkoinen väylä riippuu mallista):
 Motorola 68000, 32-bittiset rekisterit, 16-bittinen dataväylä ja 24-bittinen osoiteväylä
 Motorola 68EC000, valinnainen 8- tai 16-bittinen dataväylä
 Motorola 68HC000, alhaisen virrankäytön HCMOS-versio
 Motorola 68HC001, alhaisen virrankäytön HCMOS-versio, valinnainen 8- tai 16-bittinen ulkoinen dataväylä
 Motorola 68008, 8-bittinen dataväylä ja 20- tai 22-bittinen osoiteväylä
 Motorola 68010, 16-bittinen dataväylä ja 24-bittinen osoiteväylä
 Motorola 68012, moniprosessoriversio 68010:stä, 31-bittinen osoiteväylä
 Toinen sukupolvi (täysin 32-bittinen)
 Motorola 68020
 Motorola 68EC020, 24-bittinen osoiteväylä
 Motorola 68030
 Motorola 68EC030, ei integroitua muistinhallintayksikköä (MMU)
 Kolmas sukupolvi (liukuhihna)
 Motorola 68040
 Motorola 68EC040, ei integroitua matematiikkasuoritinta (FPU) ja muistinhallintayksikköä (MMU)
 Motorola 68LC040, ei integroitua matematiikkasuoritinta (FPU)
 Neljäs sukupolvi (superskalaarinen suoritin)
 Motorola 68060
 Motorola 68EC060, ei integroitua matematiikkasuoritinta (FPU) ja muistinhallintayksikköä (MMU)
 Motorola 68LC060, ei integroitua matematiikkasuoritinta (FPU)
 Muita
 Motorola 68300 -mikrokontrollerit (käyttävät samaa ydintä)
 Freescale ColdFire, assembly-tasolla yhteensopiva suoritinsarja

Käyttökohteet

68000-sarjaa käytettiin aluksi kalliissa järjestelmissä, kuten monenkäyttäjän mikroissa ja yhden käyttäjän työasemissa.
 Sun Microsystemsin mallit Sun 1:stä Sun 3:een
 Hewlett-Packard HP 9000 -sarjassa
 Silicon Graphicsin SGI IRIS 1000, 2000 ja 3000 -sarjoissa 
 Digital Equipment Corporationin VAXstation 100 -terminaalissa
 Apollo Computerin Apollo/Domain -työasemissa
 NeXTin NeXT Computer -työasemissa
 Fujitsun FACOM G-100 -sarjan työasemissa
 Hitachin 3050-sarjan työasemissa
 NECin EWS4800-työasemissa
 Mitsubishi Electric ME1000-työasemissa

Kotitietokoneissa prosessoria käytettiin 1980-luvun alkupuolelta lähtien:
 Apple Lisa 
 Apple Macintosh 
 Commodore Amiga
 Atari ST
 Atari Falcon
 CST Thor
 Sharp X68000 
 Sinclair QL

Suoritinta käytettiin 1980- ja 1990-luvuilla useissa kolikkopelijärjestelmissä ja pelikonsoleissa kuten Sega Megadrive ja Neo-Geo. Kuuluisassa Segan Out Run -autopelissä (1986) oli kaksi M68k-prosessoria, joista toinen huolehti vain objektien skaalauksesta etäisyyden mukaan. Jotkut uudemmat konsolit kuten Sega Saturn ja Atari Jaguar käyttivät 68000:ta vielä apusuorittimena. Texas Instruments käytti 68000:aa TI-89 ja TI-92 laskimissaan.

68000-sarjaa käytettiin myös ohjaustehtävissä sulautetuissa järjestelmissä. Lasertulostimissa sitä käytettiin ohjaimena ensimmäistä kertaa jo vuonna 1981, läpi 1980-luvun yleisesti ja vielä pitkälle 1990-luvulla halvoissa malleissa. Sitä käytettiin ja käytetään edelleen paljon myös teollisuusjärjestelmissä ja ohjelmoitavissa logiikoissa.

Sarjan muistinhallintayksiköllä (MMU) varustettuja suorittimia 68030 ja 68040 käytettiin useissa Unix-työasemissa.

Suoritinarkkitehtuurin epäviralliseksi seuraajaksi tuli Applen, IBM:n ja Motorolan suunnittelema PowerPC, johon aiemmin m68k -suorittimia käyttänyt Applen Macintosh siirtyi vuonna 1994. Sitä käytetään myös useissa Amigan turbokorteissa.

Arkkitehtuuri ja käskykannan ominaisuuksia
Arkkitehtuurissa on kahdeksan 32-bittistä datarekisteriä ja kahdeksan 32-bittistä osoiterekisteriä. Datarekistereillä ei ole erityiskäyttöjä vaan ne ovat ohjelmoijan vapaasti käytettävissä lähteenä tai kohteena tavun (8-bit), sanan (16-bit) tai tuplasanan (32-bit) mitoissa. Osoiterekistereitä voi käsitellä 16- tai 32-bittisillä arvoilla. Osoiterekistereistä vain A7 on erityinen ja sitä käytetään pino-osoittimena.

32-bittiset osoiterekisterit mahdollistivat suuren muistimäärän suoran osoittamisen ilman segmentointeja, jolloin muistia pystyi osoittamaan suoraan. Kilpaileva x86 tarvitsi segmentointia yli 64 kilotavun käyttämiseen. Ensimmäisissä 68k-suorittimissa oli vain 24-bittinen ulkoinen osoiteväylä, ja muistiosoitteen kahdeksan ylintä bittiä olivat merkityksettömiä. Tämä johdosta jotkut ohjelmoijat käyttivät osoiterekisterien ylimpiä kahdeksaa bittiä ylimääräisen datan säilömiseen suorittimen käskykannan määrittelyn vastaisesti. Näin laaditut ohjelmat eivät enää toimineet suorittimien uudempien mallien kanssa, joissa oli leveämpi ulkoinen osoiteväylä tai virtuaalimuistia.
Näihin ohjelmiin kuului esimerkiksi Microsoftin kehittämä AmigaBASIC, joka ei toiminut enää AmigaOS 2.0:n alla.

Käskykanta on melko ortogonaalinen, eli siinä ei ole suuremmalti rajoituksia siinä, mitä rekisterejä pystyy käyttämään minkäkin käskyn yhteydessä, paitsi että osa käskyistä operoi vain datarekistereillä, osa vain osoiterekistereillä.
M68k:n käskykanta on muutenkin melko johdonmukainen ja siten assembly-kieleksi helppoa ohjelmoida, ja ohjelmoijat pitivät sille ohjelmoimisesta, mitä ei voinut sanoa kilpailevasta x86-arkkitehtuurista. Suuresta rekisterimäärästä ja käskykannan ortogonaalisuudesta johtuen konekieli vei enemmän tilaa kuin kilpailevan x86:n konekieli.

Motorola 68000 -sarjassa on supervisor-tila käyttöjärjestelmä ytimen suorittamista varten. Muut ohjelmat suoritetaan käyttäjätilassa. Supervisor-tilassa pino-osoitin A7-rekisterissä vaihtuu ja käytössä on toinen tilarekisteri. Käytössä on myös etuoikeutettuja käskyjä, jotka operoivat tilarekisterillä.
Prosessorin kaksi suoritustilaa vastaavat hyvin Unixin jakoa käyttäjän ja ytimen suoritustiloihin.

Katso myös 

 Motorola 68300, 68000-sarjan ydin

Lähteet

Kirjallisuutta 
Queyssac, Daniel: Mikrotietokoneet, perusteet, 1.  Infopress. ISBN 951-737-066-0
Parkkari, Vesa; Harju, Raimo: Mikrotietokoneet, EURO-6 käsikirja, 2.  Infopress. ISBN 951-737-074-1
Parkkari, Vesa: Mikrotietokoneet, Ohjelmointi, 3.  Infopress. ISBN 951-737-077-6

Aiheesta muualla 

Motorolan suorittimet
Suoritinarkkitehtuurit