Motorola 68040
El Motorola 68040 es un microprocesador de Motorola, lanzado en 1990. Fue el sucesor del 68030 y a su vez fue sucedido por el 68060 (el 68050 fue un proyecto abandonado y nunca presentado, el cual era una mejora del 68040, presentando una reducción en tamaño y en caché). Manteniendo las denominaciones de Motorola, el 68040 es llamado a veces solo 040.
En los ordenadores Macintosh el 68040 fue usado principalmente en los Quadra de gama alta. El 68040 más rápido tiene el reloj a 40 MHz y fue utilizado únicamente en el Quadra 840AV. Los modelos más caros en la gama media-alta Centris, la cual duró poco, también usó el 68040, mientras que los Centris más económicos y los Performa usaban el 68LC040. El 68040 también fue empleado en otros ordenadores personales como el Commodore Amiga 4000, al igual que en algunas estaciones de trabajo y en las últimas versiones de los ordenadores NeXT.
El 68040 es el primer miembro de la familia 68000 con una FPU incluida en el chip. Esto resulta en la integración en el mismo chip de funcionalidades anteriormente externas al chip, como la propia FPU y la MMU, la cual fue añadida en el 030. También separa la caché en dos bloques de 4 kilobytes, uno de instrucciones y el otro de datos. Así mismo consta de segmentación de instrucciones de seis etapas.
Desafortunadamente el 040 llegó al límite de coste de los transistores muy pronto en su diseño. Aunque la MMU no usa muchos transistores (de hecho, ubicarla en la misma pastilla que la CPU ahorra transistores) la FPU sí lo hace. La FPU externa 68882 es conocida por sus altas prestaciones y Motorola no quiso arriesgarse a que los integradores usaran la versión "LC" con un 68882 en lugar de la versión "RC", más provechosa económicamente. La FPU del 68040 vio eliminada su capacidad para realizar funciones trascendentes del IEEE, las cuales son soportadas tanto por el 68881 como por el 68882, siendo usadas en programas populares de generación de fractales y poco más. El paquete de soporte de coma flotante (FPSP) de Motorola emulaba esas instrucciones por software mediante interrupciones. Al ser un manejador de excepciones, la sobreutilización de las funciones trascendentes causa una gran penalización en las prestaciones.
El calor ha sido siempre un problema del 68040, pero sus prestaciones cuadriplican las del 68020 y 68030 a igualdad de reloj, por lo que se estima que es 4 veces más rápido que sus predecesores, sin embargo la complejidad del chip y los requerimientos de potencia eran debidos al tamaño del mismo y a las grandes cachés. Esto afectó el escalado del procesador, evitando que llegara a pasar de los 40 MHz. Una versión de 50 MHz fue planificada, pero se desechó. Sin embargo los overclockers mostraron resultados exitosos en la versión de 40MHZ usando disipadores con ventilador, algo no muy común en aquel momento y llegando a los 50 MHz utilizando un oscilador de 100 en vez del 80 original, llegando a alcanzar la misma velocidad del 68060/50mhz. El 68040 estaba igualado en características con el Intel 80486 pero lo sobrepasaba ampliamente a misma frecuencia. Pero, el 80486 podía ser acelerado significativamente más sin sufrir sobrecalentamiento.
Para más información sobre las instrucciones y la arquitectura véase Motorola 68000.
Otras versiones
editarFreescale/Motorola 68LC040
editarEl 68LC040, también conocido como LC40, es una versión barata (Low Cost) del 68040 al cual se le ha eliminado la FPU. Esto permite reducir el precio y el consumo. Aunque la CPU entra así en una pastilla normal, al igual que el 68020, sigue teniendo las mismas cachés y segmentación que el 040, siendo así significativamente más rápido que el 020.
Algunas revisiones de la máscara del 68LC040 contenían un error que impide que varios emuladores por software funcionen correctamente. Estas revisiones se encuentran normalmente en los Apple Macintosh que incorporan el 68LC040. El error se presenta si la instrucción de la FPU que debería disparar una excepción reside al final de una página y la siguiente página es enviada a la memoria virtual. En ese caso, la CPU presentará un error de paginación con el PC apuntando a esa instrucción de la FPU, fallando al disparar la excepción de la FPU, provocando una variedad de errores.
Freescale 68EC040
editarEl 68EC040, también llamado EC40, es una versión del 68040 pensado para controladores integrados (Embedded Controllers). Se diferencia del 68040 en no tener FPU ni MMU. Esto lo hace más barato y reduce el consumo.