MC68000

© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Motorola 68000
Procesor 68000 z roku 1979

MC68000 to 16/32-bitowy mikroprocesor CISC amerykańskiej firmy Motorola, pierwszy z serii M68000 (znanej także jako 68k, Motorola 68k, sixty-eight-kay lub Teksański Karaluch[1]). Debiutował w roku 1979 i jest produkowany do dziś przez NXP Semiconductors[2]. Zasilany jest napięciem 5 V. Nazwa procesora 68000 pochodzi od liczby tranzystorów jaką posiadał pierwszy model tego mikroprocesora.

Opis

W projekcie procesora zaimplementowano 32-bitowy zestaw instrukcji, z 32-bitowymi rejestrami i 16-bitową wewnętrzną szyną danych[3]. Procesor posiada 24-bitową szynę adresową i nie używa segmentacji pamięci co uczyniło go popularnym wśród programistów. Procesor używa 16-bitowej jednostki arytmetycznej (ALU) danych oraz dwóch 16-bitowych jednostek arytmetycznych używanych głównie dla adresów[3] oraz posiada 16-bitową zewnętrzną szynę danych[4]. Z tego powodu Motorola określiła go jako procesor 16/32-bitowy. Szyna adresowa jest w rzeczywistości 23-bitowa, brakuje najmłodszego bitu. Z tego powodu mikroprocesor może generować („wystawiać”) tylko parzyste adresy. Magistrala danych jest wewnątrz CPU buforowana przez szesnastobitowy bufor, do którego wstępnie odczytywane są dane z pamięci. W przypadku żądania odczytu bajtu spod nieparzystego adresu procesor podejmuje przetwarzanie młodszej części tego bufora, starszej zaś w przeciwnym wypadku. Odczyt słowa spod nieparzystego adresu jest niemożliwy – wymagałoby to obecności dwóch buforów danych i rozłożenia całej operacji na kilka kroków, czego procesor 68000 nie potrafi. Dalsze modele procesorów z tej serii są pozbawione tej niedogodności.

Rejestry procesora MC68000

Procesor posiada cztery rodzaje rejestrów:

  • 8 32-bitowych rejestrów danych (ogólnego przeznaczenia): D0 - D7
  • 8 32-bitowych rejestrów adresowych A0 - A7, z których A7 (zrealizowany jako dwa rejestry sprzętowe) wykorzystywany jest jako specjalny wskaźnik stosu przy pracy w trybach użytkownika i nadzorcy
  • 32-bitowy rejestr licznika programu PC
  • 16-bitowy rejestr statusowy SR

Dostępne są następujące tryby adresowania:

  • bezpośredniego rejestru danych – Dn
  • bezpośredniego rejestru adresowego – An
  • pośredniego rejestrem adresowym – (An)
  • pośredniego rejestrem adresowym z postinkrementacją – (An)+
  • pośredniego rejestrem adresowym z predekrementacją – -(An)
  • pośredniego rejestrem adresowym z przesunięciem – w(An)
  • pośredniego rejestrem adresowym z indeksem – b(An,Dn.[L,W]); b(An,Am.[L,W])
  • absolutnego krótkiego – w
  • absolutnego długiego – l
  • licznikiem programu z przesunięciem – w(PC)
  • licznikiem programu z indeksem – b(PC,Dn.[L,W]); b(PC,An.[L,W])
  • natychmiastowe – #x
  • rejestru statusowego – SR
  • rejestru kodów warunków – CCR

Procesor ma dwa tryby pracy, użytkownika (user mode) i nadzorcy (supervisor mode). W trybie użytkownika wykonywane są programy aplikacyjne, w trybie nadzorcy – kod systemu operacyjnego. W porównaniu z trybem nadzorcy tryb użytkownika ma ograniczenia w dostępie do zasobów maszyny (niedostępne są krytyczne dla bezpieczeństwa systemu rejestry oraz obszary pamięci), dysponuje też nieco mniejszą listą rozkazów. Zestaw rejestrów nadzorcy i użytkownika jest ten sam z wyjątkiem wskaźnika stosu (są dwa oddzielne rejestry A7) oraz starszego bajtu rejestru statusu dostępnego tylko w trybie nadzorcy.

Wersje

Oryginalna wersja MC68000 nie jest już produkowana. Przez Freescale Semiconductor wytwarzane są wersje unowocześnione:

  • MC68HC000 – wersja CMOS procesora MC68000
  • MC68HC001 – wersja MC68000, która może pracować z 8-bitową i 16-bitową szyną danych
  • MC68SEC000 – niskonapięciowa wersja MC68000 (zasilana napięciem 3.3V)

Wykorzystywany w komputerach Amiga, Apple, Atari, wielu drukarkach, kopiarkach, faksach firm Adobe i Hewlett-Packard oraz urządzeniach sieciowych firmy Cisco.

Motorola 68000 w systemach komputerowych

Procesory tej rodziny zaliczane są do bardzo wydajnych produktów dostępnych ówcześnie na rynku w tej klasie cenowej. 32-bitowy zestaw instrukcji i relatywnie wysoka wydajność sprawiła, że procesor stał się popularny w latach 80. Był szeroko wykorzystywany w nowej generacji komputerów osobistych wykorzystujących graficzny interfejs użytkownika (GUI), w tym:

Komputery te umożliwiały wykonanie wszystkich tych czynności obliczeniowych co konkurencja, lecz dodatkowo oferowały bogate możliwości multimedialne oraz nowatorskie rozwiązania.

Procesor Motorola 68000 konkurował przede wszystkim z procesorem Intel 8088 wykorzystywanym w komputerach IBM PC i zgodnych jednak oferował wyższą wydajność.

Zobacz też

  • architektury komputerowe
  • XT/370 - IBM PC mogący pracować jako System/370 dzięki posiadaniu procesorów Motoroli 68000.

Przypisy

  1. Computer History Museum, "Oral History Panel on the Development and Promotion of the Motorola 68000", 27 lipca 2007.
  2. Low Cost 32-Bit Microprocessor (Including HC000, HC001, EC000 and SEC000)|NXP (ang.). [dostęp 2017-02-03].
  3. a b Thomas W. Starnes. „Byte (miesięcznik)”. 8 nr 4, Kwiecień 1983. 
  4. Motorola M68000 Family Programmer's Reference Manual, t. p. 1-1, Phoenix, Arizona: Motorola, 1992, ISBN 0-13-723289-6 [dostęp 2021-05-03] [zarchiwizowane z adresu 2015-09-24].

Media użyte na tej stronie

XC68000.agr.jpg
Autor: en:User:ArnoldReinhold, Licencja: CC-BY-SA-3.0
from en.wikipedia

w:Motorola 68000 microprocessor, pre-release version XC68000L with R9M mask, manufactured in December 1979. As with most integrated circuit packages of the era, the pins are spaced 0.1 inch apart.

This chip was used by w:Automatix to develop its first machine vision system, the Autovision I.

I took this photograph of an artifact in my possession.--agr 19:29, 15 Nov 2004 (UTC)
MC68000-rejestry.svg
Autor: Wersję rastrową wykonał użytkownik polskiego projektu wikipedii: Radekk, Zwektoryzował: Krzysztof Zajączkowski, Licencja: CC BY-SA 2.5
Rejestr MC68000
Nedap ESD1 - mainboard - Motorola MC68HC000FN8-0695.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Nedap ESD1 - mainboard - Motorola MC68HC000FN8 - microprocessor