The Motorola 68040 is a microprocessor from Motorola. It is the successor to the Motorola 68030 and is followed by the Motorola 68060 (the 68050 was an abandoned project and never shipped, the 050 was to the 040 what the 030 was to the 020, a simple die shrink and cache size increase). In keeping with general Motorola naming, the 68040 is often referred to as simply the 040.
The 68040 is the first 680x0 family member with an on-chip FPU (floating point unit). It thus includes all of the functionality that previously required external chips, namely the FPU and MMU (which was added in the 030). It also has split instruction and data caches of 4 kilobytes each. It is fully pipelined, with six stages.
Unfortunately the '040 ran into the transistor budget limit early in design. While the MMU did not take many transistors (indeed, having it on the same die as the CPU actually saved on transistors) the FPU certainly did. Motorola's 68882 external FPU was known as a very high performance unit and Motorola did not wish to risk integrators using the "LC" version with a 68882 rather than the more profitable full "RC" unit. For information on Motorola's multiprocessing model with the 680x0 series, see 68020. The FPU in the 68040 was thus made incapable of IEEE transcendental functions, which had been supported by both the 68881 and 68882 and were used by the popular fractal generating software of the time and little else. The Motorola floating point support package (FPSP) emulated these instructions in software under interrupt. As this was an exception handler, over-use of the transcendental functions caused severe performance penalties.
Heat was always a problem throughout the 68040's life. While it delivered over double the per-clock performance of the old-when-released 68030 the chip's complexity and power requirements came from a large die and large caches. This affected the scaling of the processor and it never made it past 40MHz. A 50MHz variant was planned, but scrapped. Proto-overclockers reported success using the then-hardcore heatsinks with fans. The 68040 was feature-parity with the Intel 80486 but outperformed it quite significantly on a clock for clock basis.
Versions of the '040' were created for specific market segments, including the 68LC040 which removed the FPU, and the 68EC040 which removed both the FPU and MMU. Various versions were used in the Amiga and Apple Macintosh Quadra series of personal computers, as well as being used in a number of Workstations and later versions of the NeXT computers.
For more information on the instructions and architecture, see Motorola 68000.
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.