Motorola 68040
De Motorola 68040 is een 32-bit microprocessor in de 68000-familie van de Amerikaanse elektronicaproducent Motorola, waarvan de halfgeleidertak in 2004 werd verzelfstandigd als Freescale Semiconductor. Het is de derde generatie in deze familie. Motorola bracht de processor op de markt in 1990 als opvolger van de 68030. De belangrijkste innovatie was een FPU op de chip. Motorola heeft naast de volledige versie ook een lage-kostenversie onder de naam 68LC040 en een speciale "EC"-variant onder de naam 68EC040 op de markt gebracht voor de markt van ingebedde systemen. In 1994 volgde de Motorola 68060 de 68040 op.

Verbeteringen 
Ten opzichte van zijn voorgangers is de 68040 de eerste processor met een eenheid voor drijvende-komma bewerkingen of Floating-point unit (FPU) geïntegreerd op de chip zelf. Deze functionaliteit is bij voorgaande versies slechts beschikbaar in een combinatie van de hoofdprocessor met een externe FPU zoals de Motorola 68882. Evenals de 68030 heeft de 68040 aparte caches voor instructies en gegevens. De 68040 beschikt echter over caches van ieder 4 kilobyte, tegenover 2x 256 bytes voor de 68030. De processor heeft een volledige pipeline-architectuur van zes stappen.

Ontwerpkeuzes 
Met de beschikbare technologie was het een zware uitdaging voor Motorola om de FPU op één chip te integreren, iets dat men vroeg in de ontwerpcyclus onderkende. Motorola wilde echter toch een eenchips-systeem met zeer hoge prestaties op drijvende-komma bewerkingen in de markt zetten. Een geïntegreerde oplossing voor de FPU betekende dat er - in tegenstelling tot de 2 chip oplossing 68030/ 68882- geen communicatie over de externe databus van de CPU hoefde plaats te vinden wat een voorwaarde was om de nagestreefde prestaties te kunnen realiseren.

Om de FPU toch te kunnen integreren deed Motorola enige concessies door het niet implementeren van zogenaamde transcedente functies rechtstreeks in de hardware zelf. Transcedente functies - sinus, cosinus, etc- waren onder andere van belang voor het uitrekenen van 3D projecties in CAD- en grafische programma's zoals ray-tracers. Omdat de transcedente functies wel in de externe 68881 en 68882 geïmplementeerd waren, implementeerde Motorola ze op de 68040 in de vorm van een software bibliotheek die door middel van een "trap" (interrupt die optreedt bij een niet in hardware aanwezige OP-code) werd aangeroepen. Hierdoor kon de 68040 oudere programma's geschreven voor de M68882 toch verwerken. Indien een toepassing de transcedente functies echter intensief nodig had, konden hierdoor in uitzonderlijke situaties de prestaties van de M68040 toch lager zijn dan die van de M68030/M68882. Voor de meeste applicaties -inclusief CAD en raytracing programma's- woog het snelheidsvoordeel echter ruimschoots op tegen het nadeel van de ontbrekende transcedente functies.

Warmteproductie 
De achilleshiel van de 68040 is de warmteproductie, veroorzaakt door de grote chipoppervlakte en de voor die tijd grote caches. Hierdoor was Motorola gedwongen de officiële maximumkloksnelheid van de processor beperkt te houden tot 40 MHz.

Toepassingen 
De 68040 vond toepassing in bepaalde duurdere versies van de Apple Macintosh personal computers, alsook in andere personal computers, zoals de Commodore Amiga 4000 en Amiga 4000T, in versies van de NeXT-computer en in enkele typen werkstations.

Marktpositie 
Belangrijkste concurrent van de Motorola 68040 in de markt van personal computers was de Intel 80486, welke ook in varianten met en zonder FPU op de markt gebracht werd. Intel volgde een andere strategie, namelijk die van het zo veel mogelijk opdrijven van de kloksnelheid. De 80486-processor leverde minder rekenkracht op per klokcyclus in vergelijking met de 68040, maar had niet te kampen met de warmteproblemen van de Motorola-processor. Hij kon daardoor op een aanmerkelijk hogere frequentie bedreven worden, tot 100 MHz voor de chip van Intel zelf. Hierdoor waren klanten die voor de Motorola 68000-lijn hadden gekozen soms gedwongen met de oudere 68030 verder te werken, terwijl hun concurrenten vooruitgang in hun markten konden boeken met de Intel 80486.

Varianten 
Naast de volledige versie uitgerust met FPU en MMU bracht Motorola de volgende varianten van de 68040 op de markt:
 68LC040. LC staat voor Low Cost: lage kosten. Deze processorvariant heeft geen FPU op de chip. Hij heeft echter wel de andere verbeteringen ten opzichte van de 68020, zoals de twee caches, waardoor hij beter presteert met minder energieverbruik en daardoor toch interessanter is dan zijn voorganger. Bepaalde versies van de 68LC040 zijn behept met een fout waardoor er problemen kunnen ontstaan voor vlottende-kommabewerkingen. In latere versies van de 68LC040 is dit probleem opgelost.
 68EC040. Voor toepassing in embedded systems, ofwel ingebedde systemen. Deze goedkoopste variant heeft geen FPU en ook geen MMU.

Motorola-processor