• Procesor MC68040

03.04.2018 08:23, autor artykułu: Tomasz Magosa
odsłon: 7501, powiększ obrazki, wersja do wydruku,

Po premierze MC68030 stało się jasne, że pomimo dość dużej wydajności szybko postępujący rozwój komputerów osobistych będzie wymagał coraz większych mocy obliczeniowych. Również ogromny postęp w rozwoju procesorów pozwalał na znaczne zwiększenie wydajności poprzez zastosowanie nowych technologii. Aby zaspokoić wymagania rynku, Motorola opracowała znacznie szybszy procesor trzeciej generacji - Motorolę MC68040. Procesor został zapowiedziany 2 lata po premierze poprzednika w marcu 1989 roku, a w październiku zostały podane detale odnośnie samej konstrukcji. Premiera pierwszej wersji 25 MHz miała miejsce w styczniu 1990 roku, lecz pierwsze egzemplarze zostały wysłane do dystrybutorów dopiero w listopadzie 1990 roku. Szybsza wersja procesora 33 MHz pojawiła się w czerwcu 1992 roku, a 6 miesięcy później w grudniu najszybsza wersja 40 MHz. W marcu 1992 roku Motorola oznajmiła, że rezygnuje z wersji rozwojowej trzeciej generacji procesorów i nie będzie MC68050, a dział rozwoju skupi się na nowych procesorach czwartej generacji MC68060 oraz energooszczędnej wersji 040 zasilanej napięciem 3,3V. Tradycyjnie już Motorola zdecydowała się także na wyprodukowanie tańszych wersji MC68LC040 oraz MC68RC040 bez koprocesora i MMU. Znacznie później, prawdopodobnie w 1996 roku, pojawiła się energooszczędna wersja 040V o niższym poborze mocy i możliwości dynamicznej zmiany taktowania. Procesor podobnie jak poprzednik został wykonany w technologii HCMOS (High Density CMOS), natomiast wersja energooszczędna w technologii TLM (Triple Layer Metal).

Nowy MC68040 znalazł zastosowanie w serii komputerów Macintosh Quadra, Performa, pojawił się także w budżetowej linii Centris. Występował też w Amigach 4000 i 4000T oraz Alpha Microsystem czy NeXT. Był najszybszym procesorem z linii MC680x0 montowanym w komputerach Apple i zarazem ostatnim montowanym przez Commodore w komputerach Amiga.

Budowa procesora

Dzięki wdrożeniu nowoczesnych rozwiązań procesor zyskał znacznie na szybkości, ale ta rewolucja została okupiona znacznie bardziej skomplikowaną strukturą procesora, wzrosła też liczba tranzystorów przekraczając barierę 1 000 000. Efektem ubocznym wprowadzonych zmian była częściowa utrata kompatybilności, szczególnie dla koprocesora matematycznego. Ponadto zmieniono szynę danych, przez co w starszych komputerach potrzebny był interfejs zapewniający kompatybilność ze starszą szyną danych, ale wprowadzający także również dodatkowe opóźnienia.

A więc mamy tu:

  • 6-stopniowy potok przetwarzania, kompatybilny z MC68030
  • znacznie wydajniejszy koprocesor w miarę kompatybilny z MC68881/2, działający niezależne od pozostałych elementów procesora
  • 8 kB cache (4 kB dla instrukcji i 4 kB dla danych)
  • niezależne MMU dla instrukcji i danych
  • zachowano niskie opóźnienia w dostępie do pamięci
  • usprawniono możliwość budowania konfiguracji wieloprocesorowych
  • możliwość równoczesnej pracy wielu elementów procesora: UI, FPU, MMU i kontrolera szyny
  • 32-bitową szynę danych dla danych i adresową
  • możliwość zaadresowania do 4 GB pamięci


Rysunek 1. Schemat blokowy procesora MC68040

Najważniejsza zmiana mająca ogromny wpływ na wydajność procesora to znana wówczas z procesorów RISC implementacja potokowości. Potokowość (pipelining) pozwala na drastyczne zwiększenie instrukcji na takt (IPC) w stosunku do starszych konstrukcji, poprzez uzyskanie możliwości przetwarzaniu kilku instrukcji równocześnie. Gdy pierwszy instrukcja zostanie pobrana i przechodzi w stopień dekodowania, procesor pobiera już drugą instrukcja, w czasie dekodowania pierwszej, przy następnym trzecim takcie kolejna instrukcja jest pobierana, druga dekodowana a pierwsza wykonywana. Mimo że wykonanie jednej instrukcji zajmuje przynajmniej 6 cykli, to dzięki potokowości procesora w idealnych warunkach w każdym takcie mamy jeden wynik. Dla porównania MC68020/30 potrzebuje na tę samą operację około 3 taktów, gdyż w jednym czasie może przetwarzać tylko jedną instrukcję i w efekcie, co 3 takty, otrzymujemy wynik. Potok przetwarzania w MC68040 posiada 6 stopni i został zaprojektowany tak, aby jak najlepiej wykorzystać zalety i zminimalizować wady tego rozwiązania przy użyciu ówcześnie znanych technologii.

Wprowadzono szereg zmian, aby maksymalnie obciążyć pamięć RAM. Zdecydowano się zatem na znaczne zwiększenie pamięci podręcznej i mamy teraz 4 kB pamięci dla danych i 4 kB pamięci podręcznej na instrukcje, zaimplementowano nowy tryb pracy pamięci podręcznej „Copyback”, ponadto procesor obsługują pamięć podręczną drugiego poziomu. Wprowadzono też nowa instrukcję MOVE16 mogącą w pięciu taktach przesyłać 16-bajtowy blok danych do pamięci. Przy wszystkich zmianach procesor wciąż zachował szybki dostęp do pamięci RAM po poprzedniku, wraz z 32-bitową szyną danych i adresową tym razem jednak bez możliwości łatwego jej ograniczenia do 8 lub 16 bitów.

Wbudowany koprocesor to kolejny ogromny krok naprzód. Nowa zintegrowana jednostka jest nawet kilkanaście razy szybsza od poprzedników z linii MC68881/2. Dodatkowo korzystanie z koprocesora nie obciąża szyny danych, a sam koprocesor może być wykorzystywany niezależnie od pozostałych elementów koprocesora. Niestety według Wikipedii wskutek osiągnięcia limitu tranzystorów dla konstrukcji wbudowany koprocesor został pozbawiony kilku funkcji, wymuszając ich programową emulację powodującą znaczne spadki wydajności.

Zdecydowano się na implementacje dwóch niezależnych jednostek MMU dla instrukcji i danych, a sam procesor posiada kilka wewnętrznych szyn danych, aby uniknąć ograniczeń. Ostatnim zabiegiem mającym zwiększyć wydajność było podwojenie taktowania niektórych elementów procesora. Usprawniono także możliwość pracy kilku procesorów równocześnie. Zwiększono temperaturę pracy do 110 stopnie Celsjusza, a sam procesor wytrzyma napięcie nawet 7V.

Wersje MC68040

Pełna wersja MC68040 sprzedawana była tylko w wersjach 25, 33, 40 MHz, jednak istniały wersje 16 i 20 MHz wysłane przez Motorolę do testowania jako tak zwane próbki inżynierskie. Wersja LC040 nie posiadała koprocesora, natomiast wersja EC040 nie posiadała również MMU. 68040V była to energooszczędna wersja o obniżonym napięciu zasilania do 3,3V oraz pobierająca do 2W mocy. Aby umożliwić sterowanie stanami pracy, posiada dodatkowe 3 piny.

Wersja procesora

MC68030

MC68040

MC68LC040/EC040

i486DX

Początek produkcji

04/87

01/90

92(?)

4Q89

Taktowanie [MHz]

16, 20, 25, 33, 40, 50(RC)

25/33/40(RC)

20/25/33

16/20/25/33/40/50/66/75/100

Pamięć podręczna L1 I/D

256/256

4k/4k(4-way associative 16b)

4k/4k(4-way associative 16b)

8k współdzielona (4-way associative 16b)

Pamięć podręczna L2

opcjonalnie

opcjonalnie

opcjonalnie

opcjonalnie

Szyna danych

32

32

32

32

Szyna adresowa

32

32

32

32

Wydajność

18MIPS/50Mhz

43.8MIPS/40MHz

34.8MIPS/33MHz

77MIPS/100MHz

MMU

TAK

Tak dla instrukcji i danych

LC – TAK/EC - NIE

Tak

Liczba tranzystorów

273 000

1 170 000

777 092

1 180 235

Zasilanie [V]

5

5

5

5

Maksymalny pobór mocy [W]

2,5 (50Mhz)

7,2 (40MHz)

4,9 (33Mhz)

4,29 (DX4 100MHz -3,3V)

6.43 (DX2 66 W-B)


Rysunek 2. Różnice w budowie procesorów MC68LC040 oraz MC68040 maska E31F. Żródło: Wikipedia.

Obudowy MC68040

Motorola MC68040 występowała w dwóch obudowach: ceramicznej PGA oraz plastykowej CQFP. Ze względu na dość duży pobór mocy, zrezygnowano z obudowy z tworzywa w wersji PGA natomiast wersja QFP występowała tylko do 33 MHz. 1. PGA179 (Pin Grid Array)

  • MC68040RC - Ze względy na potrzebę oddania dużej ilości ciepła, MC68040 występował w posiadające lepsze parametry termiczne obudowie ceramicznej. Procesor występował w tej wersji z maksymalnym taktowaniu 40 MHz.

2. CQFP184/182 (Quad Flat Pack)

  • MC68040FE - Obudowa posiadała nieco gorsze parametry termiczne niż ceramiczna, dlatego też taktowanie maksymalne zostało ograniczone do 33 MHz. Niektóre MC68040V pakowane były także jako CQFP182. W portfolio Motoroli podano, że MC68040V jest pinowo kompatybilny ze standardową wersją. Należy jednak pamiętać o niższym napięciu zasilania.


Rysunek 3. MC68040 w obudowie PGA179, oraz w obudowie CQFP184. Żródło www.cpu-world.com.

Maski

Tabela 1. Lista procesorów MC68040

Maska

Proces technologiczny (μm)

Fabryka

Lata produkcji (jeśli znane) rr/tt

D43B

0,8

MOS8

9103-9115

D50D

0,8

MOS8

9150

D98D

0,8

MOS8

9209-9235

E31F

0,65

MOS11

93 – 2-Cze-95

E26A

0,65

MOS8(???)

92-95

E42K

0,65

MOS11

2-Cze-95 – 13-sie-00

K63H

0,57

TSC8

13-sie-00 – 23-lis-02

L88M

0,57

MOS11

23 Lis 2002 – 2004(?)


Tabela 2. Lista procesorów MC68EC040 i MC68LC040.

Maska

Proces technologiczny (μm)

Fabryka

Lata produkcji jeśli znane

D39H

0,8

MOS8

92

E23G

0,65

MOS11

9339 – 02-Cze-95

E71M

0,65

MOS11

02-Cze-95 – 17-Sty-00

J46X

0,57

TSC8

17-Sty-00 – 07-wrz-2002

L89M

0,57

MOS11

Od 07-wrz-2002


Tabela 3. Lista procesorów MC68040V i MC68EC040V.

Maska

Proces technologiczny (μm)

Fabryka

Lata produkcji jeśli znane

F54F

0,5

MOS11

9731 – 09-sie-2001

D33T

0,5

MOS11

Od 09-sie-2001


Pierwsze MC68040 zostały wyprodukowane w 1989 roku w procesie 0,8 μm pod oznaczeniami PC68040, a jako XC68040 w 1990 roku w pierwszym tygodniu. W 1993 roku przeniesiono produkcje do najnowocześniejszej wówczas na świecie nowej fabryce MOS11 w Austin Texas wybudowanej kosztem 1,5 mld dolarów, co w efekcie poskutkowało wprowadzeniem mniejszego procesu technologicznego i nowymi maskami. Wraz z wprowadzeniem masek E42K i E71M uporano się z ostatnimi znanymi błędami i Motorola zmieniła oznaczenie dla części z XC na MC w zależności od źródeł w drugim lub trzecim kwartale 1995 roku.


Rysunek 4. Jedna ze starszych wersji MC68040 z maską D43, jeszcze z oznaczeniem PC68040. W miarę usprawniania procesory zmieniały oznaczenie na XC i finalnie MC.

W 2000 roku ponownie zdecydowano o zmniejszeniu procesu technologicznego i przeniesieniu produkcji do Japonii do fabryki TCS8 (Tohoku, Sendai). Ostatnią maskę L88M wprowadzono po zamknięciu fabryki TCS8 w Sendai w Japonii w 2002 roku, redukując tym samym liczbę fabryk z dwudziestu dziewięciu w 1997 roku i zaledwie do ośmiu w 2003. Po podziale Motoroli produkcja była jeszcze kontynuowana przez Freescale, a ostatnie zamówienia można było składać do 11 października 2013, kiedy to zakończono produkcję.

Nazwa próbek zaczynała się od SPAK040RCA. Ostatnią literę w oznaczeniu wprowadzono w masce K62H zaznaczając w ten sposób, że procesor jest w pełni kompatybilny z poprzednimi wersjami.

Podczas projektowania Motoroli nie udało się zaprojektować wszystkiego bezbłędnie i niestety wczesne wersje posiadały błędy, które były usuwane w kolejnych wersjach procesora. We wczesnych MC68LC040 z maską 2E23G, spotykanych głównie we wczesnych wersjach Maca LC475, pojawił się dosyć znaczący i ówcześnie dość głośny błąd. Jedynym wyjściem na ominięcie błędu jest wymiana procesora. Błąd występuje, gdy dokonywany jest zapis oraz gdy w tym czasie wyzwolony jest wyjątek na linii F. Kolejny błąd występuje w rewizjach wcześniejszych niż 2E71M, gdy wykorzystany jest programowy emulator FPU. Czyli w praktyce, aby uniknąć błędów musimy zaopatrzyć się w ostatnią maskę E71M lub pełną wersję procesora najlepiej E42K lub nowszą.

Dla kolekcjonerów procesorów wyzwaniem może być zdobycie procesora z początków produkcji z 1989 lub 1990 roku. Dla pozostałych użytkowników taki procesor to raczej same kłopoty, duży pobór mocy i szereg błędów w konstrukcji. Oczywiście w takim przypadku warto zdobyć ostatnie wersje, szczególnie gdy konstrukcja starej komputera nie przewiduje takiego dużego poboru mocy, zatem polecane maski to K63H lub L88M.

Niestety kupując procesor możemy trafić na wersje podrabianą. Najczęściej są to stare wersje procesorów bez MMU lub FPU ze zeszlifowanymi starymi oznaczeniami i naniesionymi nowymi. Łatwo je odróżnić po zazwyczaj błędnych oznaczeniach, oraz ich kolorze i rozmieszczeniu.


Rysunek 5. Oryginalny MC68LC040 z 2007 roku od Freescale. Proszę zwrócić, że w późniejszych wersjach oznaczenia występowały w trzech kolorach jednocześnie oraz zawsze w tych samych miejscach. Obok MC68040RC33 ze zmienionymi oznaczeniami. Prawdopodobnie jest to stara wersja.

Wydajność MC68040

Wydajność MC68040, w porównaniu z poprzednikiem, to zupełnie inna liga. Przy tej samej częstotliwości procesor jest 2-3-krotnie wydajniejszy od MC68020/30. Nawet najszybsze 030 z bardzo szybkimi pamięciami i wyższym taktowaniem nie są w stanie pokonać najwolniejszych MC68040/25 MHz. MC68882 dla wbudowanego koprocesora MC68040 nie jest żadną konkurencją, będąc około 7-krotnie wolniejszy. Przy zastosowaniu szybkich pamięci różnica w wydajności pogłębi się na korzyść MC68040. Dodatkowo istnieje możliwość zastosowania pamięci podręcznej drugiego poziomu. W zasadzie wniosek jest jeden – wzrost wydajności procesorów Motoroli trzeciej generacji jest miażdżący.

Konkurencja

Intel 486DX, Intel DX2, Intel DX4
486DX to dość podobna konstrukcja, a wprowadzone zmiany w architekturze IA32 były podobne. Zatem mamy również potokowość tym razem jednak z pięciostopniowym potokiem przetwarzania, również znacznie podnoszącym wydajność względem poprzedniej generacji procesorów Intela. Podobnie jak w MC68040 obecna jest pamięć podręczna 8 kB, jednak w tym przypadku pamięć jest współdzielona, natomiast w kolejnych wersjach IntelDX4 podwojono pamięć podręczną aż do 16 kB. Wydajnościowo przy tym samym taktowaniu 486 wypada zauważalnie gorzej od 040. I tak, aby osiągnąć wydajność 68040/25 MHz, 486 musi być taktowany około 33 MHz, i486 posiada także znacznie mniej wydajny koprocesor jednak w pełni kompatybilny z poprzednikiem oraz ciągle wolniejszy dostęp do pamięci. W przeciwieństwie jednak do 68040, 486 jest bardzo podatny na wysokie taktowania i wersje od Intela pozwalały na taktowanie wewnętrznie nawet częstotliwością 100 MHz, natomiast posiadany potencjał przetaktowania, z którego często korzystali użytkownicy pozwalał na częstotliwości rzędu 120 MHz (3x 40 MHz). Kolejną przewagą był bardzo dynamiczny rozwój linii 486, co zaowocowało wersjami na napięcie 3,3 [V] znacznie ograniczając pobór mocy. Nieco później dostępne były także wersje 'write-back' usprawniające działanie pamięci podręcznej. W efekcie zmian i wysokiej częstotliwości taktowania 486 dorównywał procesorom kolejnej generacji, nawet mimo takich wąskich gardeł jak wolna pamięć RAM na 32 bitowej szynie. Oczywiście 486 miał też pewne wady i początkowo wersje z szyną 50 MHz, a nawet 40 MHz, miały problem z płytami głównymi i kartami rozszerzeń ISA, dlatego najczęściej ograniczano taktowanie szyny do 25-33 MHz co negatywnie odbijało się na wydajności całego podsystemu pamięci. Pomimo wolniejszej i mniej dopracowanej architektury to właśnie 486DX, a właściwe IntelDX jest zwycięzcą, pozwalając na bardzo wysokie taktowania, a w efekcie oferując znacznie lepszą ogólną wydajność od tego co mogła zaoferować MC68040, której najszybsze wersje taktowane zaledwie 40 MHz oferują wydajność na poziomie 486DX 50 MHz lub 486DX2 66 MHz.

AMD Am486
Podobnie jak z poprzednikiem produkt AMD wygrywa częstotliwością taktowania jeszcze bardziej. Mimo iż 68040 ma wydajniejszą architekturę, to nie może mierzyć się z najszybszymi 486 oferowanymi z taktowaniem 120 MHz a niektóre źródła podają o dostępnych wersjach taktowanych nawet 150 MHz i szynie 50 MHz.

Przetaktowanie

Procesor, choć dobrze się podkręcał, napotykał dość szybko granice przy taktowaniu powyżej 40 MHz, jednak nawet drobne przetaktowanie daje odczuwalny przyrost wydajności. Jeśli zależy nam na szybkości komputera, warto spróbować swoich sił, szczególnie że samo przetaktowanie zazwyczaj sprowadza się tylko do wymiany oscylatora. Należy też pamiętać, że procesor jest taktowany z połową częstotliwości oscylatora, a przetaktowany niestety bardziej się grzeje.

Najwolniejsze wersje 25 MHz zazwyczaj pozwalają na taktowanie 33 MHz, w przypadku nowszych masek, możemy spróbować nawet 40 MHz. Wersje 33 MHz zwykle pozwalają się przetaktować na 40 MHz i wreszcie wersje 40 MHz z najnowszych masek osiągają magiczne 50 MHz. Ciężko powiedzieć, czy da się z nich wykrzesać jeszcze kilka MHz i która wersja jest lepsza - K63H z Tohoku czy L88M z Teksasu. Warto wspomnieć, że niektórzy użytkownicy twierdzą, że wersja L88M nieco mniej się grzeje, co faworyzuje nieco wersje z Teksasu. Oczywiście należy pamiętać, że zawsze możemy trafić na słabszą sztukę, której możliwości przetaktowania będą mocno ograniczone. Wyższą możliwości przetaktowania mogą oferować wersie bez FPU, ze względu na niższy pobór mocy i niższą temperaturę pracy.

Przy przetaktowaniu warto pamiętać, że (upraszczając nieco) procesor przy taktowaniu 50 MHz będzie pobierał 2 razy więcej mocy niż przy taktowaniu 25 MHz i tym samym wydziela 2 razy więcej ciepła, dlatego należy zadbać o odpowiednie chłodzenie.

Podsumowanie

Procesor MC68040 to dość poważny krok w rozwoju architektury MC6080x0, zastosowanie w nim technologie jak potokowość znacznie zwiększyły wydajność procesora bez zwiększania taktowania. W porównaniu z poprzednikami pierwsze wersje procesora pobierały dość dużo mocy, bardzo się grzejąc i wymagając aktywnego chłodzenia, z czasem sytuacja się jednak poprawiła. Z czasem w miarę udoskonalania procesu produkcji i zmniejszania maski, naprawiano wykryte błędy oraz zmniejszał się apetyt procesora na energię, dzięki czemu ostatnie maski mogły działać już bez dodatkowego chłodzenia z każdą dostępną częstotliwością. Z racji dość wolnej pamięci RAM starano się zmniejszyć jej wpływ na procesor przez zastosowanie większej ilości pamięci podręcznej, pamięci podręcznej drugiego poziomu, jej tryby pracy, dodatkowe rozkazy jak MOVE16, należy jednak pamiętać, że szybkość pamięci i opóźnienia wciąż będą miały duży wpływ na wydajność procesora.

Ogromną wadą MC68040 jest niskie taktowanie kończące się na 40 MHz. Co prawda niektóre elementy są taktowane z pełną częstotliwością oscylatora, tj. nawet 80 MHz, niestety są to tylko niektóre elementy. Konkurencja z rodziny x86 poszła tu znacznie dalej pozwalając na taktowanie nawet 100 MHz całego procesora z wyłączeniem szyny danych, oferując w efekcie znacznie większą wydajność. Zapewne, gdyby procesor był dalej rozwijany w wersji MC68050 doczekalibyśmy się wersji z wyższym taktowaniem 50 MHz, a śledząc rozwój 486 moglibyśmy też spodziewać się podwojonej pamięci podręcznej i niższego napięcia zasilania. Niemniej MC68050 przy tym samym taktowaniu byłby niewiele szybszy od MC68040, ponadto trwały prace nad znacznie wydajniejszym MC68060, co powodowało brak sensu rozwoju linii MC68040. Kolejną wadą MC68040 jest tylko częściowa kompatybilność z poprzednikami. Motorola miała dość dziwną politykę usuwania rzadko używanych rozkazów, co powodowało brak kompatybilności ze starszym oprogramowaniem, będąc dość problematyczne ze strony użytkownika i niejako dość poważna wadą. Szczególnie poważnie ucierpiał tutaj koprocesor, który, pomimo że jest bardzo szybki, musi emulować niektóre funkcje, co powoduje poważne ograniczenie jego wydajności. Gwoździem do trumny była wysoka cena MC68040 oraz początkowo brak wersji energooszczędnej powodując dość spore rozczarowanie zwłaszcza wśród użytkowników przenośnych Macintoshy.

Motorola MC68040 to udany procesor, który po prostu posiada swoje wady, nieco też blednie na tle bardziej udanej konkurencji. Mimo wszystko jest to dość nowatorska konstrukcja warta uwagi i duży krok w świecie procesorów CISC wyznaczający nowe trendy rozwoju.

Źródła

https://en.wikipedia.org/wiki/Motorola_68040
MC68040 vs 486
486 TDP
Oficjalna strona NXP MC68040
Portfolio

 głosów: 9   tagi: procesor, mc68040, motorola
komentarzy: 18ostatni: 16.01.2022 17:18
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem