Motorola 68000
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.
Prosessoria käytettiin useissa Unix-työasemissa, mm. Sun Microsystemsin varhaisissa malleissa, Hewlett-Packard HP 9000 -sarjassa, Silicon Graphicsin IRIS 1000 ja IRIS 2000 -sarjoissa, NeXT-yhtiön NeXT Computer tietokoneissa sekä Digital Equipment Corporationin VAXstation 100 terminaalissa.
Kotitietokoneissa sitä käytettiin mm. Commodore Amiga, Atari ST, Apple Macintosh ja Sinclair QL -tietokoneissa.
Ensimmäinen 68000-malli on sisäisesti 32-bittinen ja käytti 16-bittistä muistiväylää. Myöhemmät saman sarjan mallit ovat myös ulkoisesti 32-bittisiä alkaen Motorola 68020-mallista.
Muita saman sarjan suorittimia ovat 68010, 68020, 68030, 68040, 68060 eri muunnoksineen. Prosessoreista on halvempia malleja käyttöön mm. sulautetuissa järjestelmissä.68000:ta käytettiin aluksi kalliissa järjestelmissä, kuten monenkäyttäjän mikroissa ja yhden käyttäjän työasemissa.
Kotitietokoneissa prosessoria käytettiin 1980-luvun alkupuolelta lähtien:
Suoritinta käyttivät jo 1980-luvun alkupuolelta useat kolikkopelijärjestelmät ja pelikonsolit, kuten Sega Megadrive ja Neo-Geo. Kuuluisassa Segan "Out Run" -autopelissä (1986) oli kaksi M68-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äyttää 68000:aa laskimissaan TI-89 ja TI-92.
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.
M68k-arkkitehtuurissa on kahdeksan 32-bittistä datarekisteriä sekä kahdeksan 32-bittistä osoiterekisteriä. 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ä.
32-bittiset osoiterekisterit mahdollistivat suuren muistimäärän suoran osoittamisen ilman hankalia segmentointeja, joita kilpaileva x86 tarvitsi 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 esim. Microsoftin kehittämä AmigaBASIC, joka ei toiminut enää AmigaOS 2.0:n alla.
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.
68000-mallin prosessoria on valmistettu HMOS-tekniikalla sekä myöhemmin HCMOS-tekniikalla.
68000-mallin prosessorista on valmistettu klooneja japanin markkinoille Hitachin ja Toshiban valmistamina. Esimerkki käyttökohteesta on Sharpin X68000 tietokone.
MC68EC000-mallista on Freescalen valmistama FLX68000 versio, joka on identtinen mutta "static" suunnittelu joka sallii suorittimen pysäyttämisen.