Motorola 68000 processzorcsalád

A Motorola 680x0/m68000/68000 ill. m68k egy 32 bites CISC processzorcsalád. Ezek a processzorok igen népszerűek voltak az 1980-as években és az 1990-es évek elején a személyi számítógépek és a munkaállomások körében, a sorozat egy ideig az Intel x86 processzorcsaládjának legerősebb konkurense volt. Korai személyi számítógépekben, Unix munkaállomásokban, videójáték-konzolokban használták, származtatott változataikat PDA-kban, beágyazott rendszerekben és vezérlőegységekben továbbra is használják (ld. Felhasználás).

A család tagjai

A fejlesztés állomásai

68000

1979-ben jelent meg, az m68k sorozat első tagja. Eredetileg HMOS technológiával készült. „16/32 bitesként” emlegetik: belsőleg 32 bites, külső adatbusza 16 bites, címbusza 24 bites, 1979-től 1982-ig 4, 6, 8, 10, 12,5 és 16,67 MHz órajelű változatai készültek. Jellemzői:

68008

1982-ben jelent meg; az eredeti 68000-es változata, azzal teljesen tárgykód-kompatibilis, de lábkiosztása más (nem pin-kompatibilis). 32 bites processzor, 8 bites külső adatbusszal, címbusza 20 vagy 22 bites az egyes változatokban. Mivel az adatbusz fele olyan széles, mint a 68000-ben, az utasításlehívás több ciklust igényelt, ezért ez a processzor azonos órajelen lassabb volt, mint a 68000. A 8 bites Sinclair QL mikrogépben használták.

68010

1982-ben jelent meg, 32 bites CPU, 16 bites adatbusszal. A 68000 javított változata, azzal lábkompatibilis. A magot és a mikrokódot optimalizálták, azonos órajelen 10-20%-kal gyorsabb a 68000-nál. Felkészítették a virtuális memória kezelésére is, a "MOVE from SR" utasítás privilegizált lett, új utasításokat is kapott, így nem 100%-ban tárgykód-kompatibilis az eredeti 68000-rel.

68012

A Motorola 68012 (MC68012) egy 68010-kompatibilis processzor, 31 bitesre kiterjesztett címbusszal, virtuálismemória- és multiprocesszoros támogatással. 1982 és 1984 között jelent meg. A 68010 és a 68020 között áll.

68020

1984-ben jelent meg, a processzorcsalád második generációjának első tagja. Kompatibilis a család korábbi tagjaival. Címbuszát 32 bitesre bővítették, így 4 GiB memóriát címezhetett. Az adatbusza is 32 bites, de képes 8 és 16 bites adatbuszt használó módban is működni. Új utasításokkal és címzési módokkal bővítették. Megjelent benne a Motorola 68881 és 68882 matematikai koprocesszorok és a MC68851 PMMU (lapozó memóriakezelő) hardveres támogatása, a multiprocesszoros támogatás, a magba futószalag és utasítás-cache került. Multiprocesszoros konfigurációban összesen 8 db egység csatlakozhat a buszra, ezek közül bármelyik lehet FPU vagy CPU, de csak egyetlen MMU lehet; a processzorok a rendszerben aszinkron módon működnek.

68030

1987-ben jelent meg, a második generációs 68020 felújított változata. Újítások: belső 256 bájtos utasítás-cache és 256 bájtos adat-cache; chipre integrált MMU; 68881 és a gyorsabb 68882 használható külső matematikai koprocesszorként.

68040

1989-ben jelent meg a Motorola 68040, a harmadik generáció indító tagja. Chipre integrált MMU-t és beépített FPU-t is tartalmazott. Az adat- és az utasításcache méretét 4 KiB-ra növelték, 6 fokozatú futószalag került bele. A beépített FPU nem teljes értékű, bizonyos utasítások hiányoznak belőle, ezeket szoftveresen emulálják (operációs rendszerbe integrált integrált FPSP csomag). A 68040 ugyan jelentősen gyorsabb volt riválisánál, az Intel 486-nál, azonban melegedési problémákkal küzdött, ezért órajelét 40 MHz-en maximálták.

68060

1994-ben jelent meg a Motorola 68060 (MC68060) processzor, amit a 68040 utódjaként mutattak be. Ez volt a m68k család utolsó tagja. Sok hasonlóságot mutat az Intel Pentium / P5 mikroarchitektúrával: mindkettő sorrendi (in-order) végrehajtású szuperskalár, kettős futószalagot tartalmazó konfiguráció, utasítás-dekóderrel (ami az utasításokat egyszerűbb részutasításokra konvertálja a végrehajtás előtt). A 68060-ban az utasítás- és adatcache méretét 8 KiB-ra növelték, fejlett elágazás-előrejelző (branch prediction) egységgel látták el, belső utasítás-végrehajtó egysége RISC típusú. A 68060 FPU nem futószalagos, részleges, a hiányzó utasításokat emulációval pótolják: ezek miatt a lebegőpontos végrehajtás 3-szoros időigényű a Pentiuméhoz képest, más téren azonban gyorsabb, optimalizált utasításainak köszönhetően. 50-től 75 MHz-ig terjedő órajelű változatai készültek.

68050 és 68070

Nem létezett 68050 számú változat, bár volt ilyen projekt a Motorolánál. A 680x0 sorozatban a páratlan-x számú verziók mindig az előző páros-x verziókban jelentkezett hibák javítására jöttek létre, tehát várható volt, hogy a 68050-ben csökken a 68040-eshez képest az áramfelvétel és hőtermelés, javul a kivételkezelés az FPU-ban, csökken a csíkszélesség, és az utasítások mikrokódja jobb optimalizálást kap. A várakozások közül sok javítás belekerült a 68060-as processzorba, ezek a tervezési célok között szerepeltek. A 68050 tervezését megszakították, olyan okok miatt, mint pl. már tervezés alatt volt a 68060-as processzor; az Intel 80486 nem haladt olyan ütemben, ahogy azt a Motorola elképzelte; vagy akár az, hogy a 68060-as többet ígérő tervezet volt.

A fentiekhez hasonlóan nem volt a 68060-at követő revízió sem, mivel ekkor a Motorola már feladni készült a 68k és 88k processzorsorozatait az újabb PowerPC üzletág érdekében, így 68070-es sohasem készült.

A Motorola páros tízeseket használt a CPU magok főbb kiadásaihoz, így a 68000, 68020, 68040 és 68060 verziókhoz. A 68010 az előző 68000 egy javított változata volt, kisebb változtatásokkal a magban, és hasonlóan a 68030 is egy felújított 68020 volt néhány javított tulajdonsággal; egyik sem hozott jelentős változást a magban.

Létezett ugyan egy 68070 jelű processzor, a 16/32 bites 68000 egy licencelt változata; valamivel lassúbb volt, egyszerű DMA vezérlőt, I²C hostot és chipre integrált soros portot tartalmazott. A Philips CD-i fő processzoraként alkalmazták. Ezt a processzort a Philips gyártotta és nem tartozott a Motorola 680x0 sorozatába.

Az utolsó generáció

A negyedik generációs 68060 magán viseli az Intel Pentium P5 architektúra több jellemzőjét. A továbbfejlesztés valószínűleg egy Intel P6 mikroarchitektúrára hasonlító processzort eredményezett volna.

Egyéb változatok

A 68000-es processzorsorozat letűnése után a processzorcsaládot bizonyos fokig tovább használták mikrovezérlőkben és beágyazott mikroprocesszor-verziókban. Ezek a felsorolásban az „egyebek” alatt szereplő processzorok: a CPU32, azaz a 68330, a ColdFire, a QUICC és a DragonBall. További felhasználási mód volt a mind a Motorolától, mind a Commodore-tól független gyártó által készített ún. "Amiga gyorsító" (accelerator) kártyákban történő felhasználás is, melyhez újabban a Apollo 68080 processzorokat használják előszeretettel.

CPU32 (683xx)

A Freescale 683xx (ill. korábban Motorola 683xx) egy kompatibilis mikrokontroller család, amely a Freescale 68000-alapú magra épül. A családban két magot használnak, az egyik a 68EC000, a másik a CPU32.

A CPU32 utasításkészlete hasonlít a 68020 utasításkészletére, de hiányoznak belőle a "bit field" (BFxxx) utasítások, a CALLM, RTM, CAS, CAS2, cpxxx (koprocesszor-) és PACK, UNPK BCD utasítások; ezek helyett a processzor trap utasításokat hajt végre, lehetővé téve az emulációt. Speciális kiegészítő utasításokat is tartalmaz. A mag teljesen statikus, azaz képes változó órajelen működni, a teljes leállástól a maximális órajelig (25 vagy 33 MHz); tervezési szempontja a minimális tranzisztorszám melletti maximális teljesítmény volt. A mag mellett egyéb kiegészítő egységeket is tartalmazhat, akár hálózati interfész-processzort v. Ethernet-vezérlőt, az egylapkás rendszerekhez (SoC) hasonlóan.

Dragonball Motorola DragonBall EZ processzor

Az 1995-ben megjelent Motorola/Freescale Semiconductor DragonBall avagy MC68328 egy 68000-alapú 32 bites mikrovezérlő, ill. minden szükséges elemet tartalmazó egychipes számítógép. Adat- és címbusza 32 bites, bár a címbuszt egyes modellekben 24 bitesre korlátozták. Kis fogyasztású beágyazott rendszerekbe és PDA-kba szánták, pl. a korai Palm PDA-k ilyen chipekre épültek, míg a Palm OS 5-től kezdve kiszorította azokat az ARM-alapú Texas és Intel processzorok támogatása. Nem támogatja a 68020+ utasítások többségét. FPU-t nem, és csak minimális képességű MMU-t tartalmaz. Korai változataiban nem volt cache, a későbbi modellekbe kisméretű utasítás- és adatcache-t is integráltak.

ColdFire

Az 1994-ben indult Freescale ColdFire processzorcsalád alapjait szintén a Motorola 68000 processzorcsalád ill. architektúra képezi. A ColdFire chipek beágyazott rendszerekhez készülő mikrovezérlők, tárgykód szinten nem kompatibilisek a 68000 processzorral, a gyártó szerint a ColdFire utasításkészlet „assembly forrás” szintjén kompatibilis azzal. Az eredeti m68k utasításkészlettel összehasonlítva hiányzik belőle pl. a BCD támogatás, több ritkábban használt utasítás és sok utasítás kevesebb címzési módot támogat. A lebegőpontos adatformátum 64 bites, nem pedig 80, mint a 68881/68882 koprocesszoroknál. Az utasítások 16, 32, vagy 48 bitesek lehetnek. A ColdFire architektúrája erős RISC vonásokat mutat, amit a Motorola „változó hosszúságú RISC”-nek (variable-length RISC) nevezett. A processzorok eleinte kis teljesítményűek voltak: az MCF5102 16,67 – 33 MHz órajelű processzor 20 MHz-en 22 MIPS teljesítményt produkált, ez azonban mára megváltozott, a chipek több száz MHz-es órajeleken működnek és belső szerkezetük is sokkal nagyobb teljesítményt biztosít (pl. a 4. generációtól kezdve szuperskalár felépítéssel rendelkeznek). Kiegészítők változatos készletével kaphatók, az architektúrához változatos fejlesztőeszközök érhetők el.

Apollo 68080

Az Apollo által gyártott 68080-as processzor utasításkészlete 100%-ban kompatibilis a Motorola 68000-as processzorcsalád tagjaival, ugyanakkor számos tervezésbeli hiba, hiányosság javításra került és az évek során megjelent újításokat, fejlesztéseket is tartalmazza. A processzor FPGA tokozást kapott, így ennek az architektúrának minden előnyével rendelkezik. A Motorola által gyártott utolsó 68060-as processzor alkalmazásai is gond nélkül futnak rajta. Felhasználása főként a szintén az Apollo által kifejlesztett Vampire gyorsító kártyákban történik, melyek Amiga 500/600/2000/1200 típusokhoz készülnek és pl. egy Amiga 500 esetén a meglévő 68000 processzor eltávolítása után, annak foglalatába csatlakoztathatók. Az Apollo 68080 néhány alapvető jellemzője: Utasítás-futószalag, szuperskalár, elágazásbecslés, optimalizált gyorsítótár felhasználás, beépített FPU, 64bit támogatás.

Architektúra

A 68000-es család felépítése nagymértékben hasonlít a PDP-11 és VAX architektúrákhoz, hasonlóságok pl. az utasításkészlet ortogonalitása és a címzési módok hasonló volta. Egy jelentős eltérés az általános célú regiszterek adat- és címregiszterekre való bontása a 68000-nél.

Az utasításkészlet ortogonalitása lehetővé teszi az utasítások és az operandusok tetszőleges kombinációját, ellentétben pl. az Intel korabeli (8080) és későbbi (x86 család) processzorainál. Ez a tulajdonság megkönnyíti az emberi programozást és egyszerűbbé teszi a kódgenerátorok írását a fordítóprogramokhoz.

A 68000-es utasításkészlet nagy általánosságban a következő csoportokra osztható:

A 68000 processzor architektúráját részletesebben tárgyalja a cikk.

A versenytársak

Az 1980-as években és az 1990-es évek elején a 68000-est széles körben használták asztali gépekben, ekkor főleg az Intel x86-os architektúrával versengett, amely mára néhány kisebb kivételtől eltekintve (mint a Transmeta VLIW processzorai) szinte egyeduralkodóvá vált az asztali PC piacon. Az első generációs 68000 CPU-k a 16 bites 8086/8088 és 80286 processzorokkal versenyeztek. A második generáció versenytársa a 80386, az első 32 bites x86 processzor volt, a harmadik generációnak a 80486.

A negyedik generáció a Pentium sorozat P5 felépítésével versenyzett, de a negyedik generációs (68060-as) chipeket már messze nem használták olyan széles körben, mint elődeiket, mivel a korábbi 68k piac ekkorra szinte teljesen megszűnt, ahogy az Atari vagy a Next; vagy éppen újabb felépítésre váltott, ahogy a Macintosh és Amiga PowerPC platformra, a Sun SPARC, az SGI pedig MIPS platformra.

Beágyazott rendszerek

Jelenleg több tucat sikeres processzor-architektúra létezik a beágyazott rendszerek piacán. Néhány ezek közül a 68000-nél egyszerűbb, kisebb és olcsóbb mikrovezérlő, azonban bonyolultabbak is akadnak, amelyek összetett programok futtatására képesek. A beágyazott 68k alapú kontrollerek kihívói többek között a PowerPC, ARM, MIPS és SuperH architektúrákon alapuló processzorok.

Felhasználás

A 68000 processzorcsaládot eszközök sokaságában használták, a csúcsteljesítményű Texas Instruments számológépektől (mint pl. a TI-89, TI-92, Voyage 200 típusok) kezdve a Palm Pilot sorozat Palm OS 1.x-től 4.x verziót használó gépeiig, vagy a Space Shuttle sugárzásvédett kritikus vezérlőrendszereiig bezárólag. Jelen voltak az asztali számítógépes felhasználás terén is, pl. Apple Macintosh, Commodore Amiga, Sinclair QL, Atari ST és egyéb gépekben. A 68000-es volt 1980-ban a Sun Microsystems, a NeXT és a Silicon Graphics Unix munkaállomásainak és szervereinek processzora. Létezett CP/M verzió is a 68000-hez, a CP/M-68K, ám ez szinte észrevétlen maradt.

Felhasználásra került lézernyomtatókban, mivel az Adobe PostScript-értelmezőjének első verziói 68000 alapúak voltak; használták az Apple LaserWriter nyomtatók különböző verzióiban és Linotronic fényszedőgépekben. Később az Adobe inkább a RISC processzorokat kezdte preferálni.

Napjainkban az m68k processzorokat használó gépek elértek életciklusuk végére (mint pl. az Atari), vagy más processzorokat használnak (ilyenek pl. a Macintosh, Amiga, Sun és SGI). Ezek a gépek a legnagyobb piaci részesedésüket az 1980-as években érték el, így az operációs rendszerek gyártói nem támogatják ezt a processzortípust. A Linux, NetBSD és OpenBSD rendszerek azonban továbbra is tartalmazzák a 68000 processzortámogatást.

A m68k processzorok videójáték-konzolokban is megtalálhatók, pl. a Sega Mega Drive/Sega Genesis és SNK Neo Geo konzolok CPU-jaként, vagy Sega Saturn konzolokban audio- és I/O-processzor szerepében, vagy az Atari Jaguar konzolban vegyes szerepkörben. Játéktermi játékgép-alaplapok is gyakran 68000-alapúak, pl. a Capcom, SNK és Sega gyártott ilyeneket.

A 68000-ből származtatott mikrovezérlőket használnak az autóiparban, pl. CPU32 és ColdFire mikrovezérlők milliói találhatók autókban motorvezérlőként beépítve.

Összegzés

Az m68k család sokáig tervezési etalont képviselt a processzorok között, és az IBM kompatibilis PC-ken kívül gyakorlatilag mindenféle számítógépben és eszközben, a merevlemez-elektronikától az Unix-munkaállomásokig megtalálhatók voltak. Könnyű programozhatósága, rugalmas felépítése kedveltté tette a tervezők között. Bár a fejlesztés élvonalát ma már más processzorok képviselik, asztali felhasználásban pedig felváltották őket a PowerPC-k, az m68k család öröksége ma is él, többek között a ColdFire processzorokban, és azokban az alternatív gépekben, amelyeket egy-egy m68k alapú rendszer eleganciája, tiszta, átlátható felépítése ihletett.

Jegyzetek

  1. Motorola 68008 microprocessor family (angol nyelven). cpu-world.com, 2003-2010. (Hozzáférés: 2012)
  2. CPU World
  3. Motorola 68010 (MC68010) family (angol nyelven). cpu-world.com, 2003-2010. (Hozzáférés: 2012)
  4. a 68010 1982-es és a 68020 1984-es megjelenése között
  5. Motorola 68020 (angol nyelven). cpu-collection.de, 2003. (Hozzáférés: 2012)
  6. http://www.freescale.com/files/32bit/doc/ref_manual/MC68020UM.pdf Archiválva 2011. augusztus 6-i dátummal a Wayback Machine-ben MC68020 MC68EC020 MICROPROCESSORS USER’S MANUAL, Freescale Semiconductor, Inc., pdf
  7. http://www.physics.ucdavis.edu/Classes/Physics116/68060d.pdf Archiválva 2012. december 7-i dátummal a Wayback Machine-ben, pg. 2.; "Fixed format instructions are dispatched to dual four-stage pipelined RISC operand execution engines ..."
  8. MOTOROLA, INC., 1990, 1996: CPU32 Reference Manual (angol nyelven) (pdf) pp. 1-4. Freescale, 1997. február 4. . (Hozzáférés: 2012)
  9. Archivált másolat. . (Hozzáférés: 2012. augusztus 25.)
  10. Apollo 68080 overview (angol nyelven). apollo-core.com . (Hozzáférés: 2019. december 1.)
  11. Apollo 68080 features (angol nyelven). apollo-core.com . (Hozzáférés: 2019. december 1.)

Fordítás

Források

További információk