Motorola 68040: Difference between revisions

Content deleted Content added
YurikBot (talk | contribs)
m robot Adding: fi:Motorola 68040
mNo edit summary
 
(172 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|32-bit microprocessor}}
[[Image: Motorola_68040.jpg|thumb|right|250px|A Motorola 68040 Microprocessor]]
{{More citations needed|date=May 2023}}
The '''Motorola 68040''' is a [[microprocessor]] from [[Motorola]], released in [[1990]]. It is the successor to the [[68030]] and is followed by the [[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 stripped-down version of the 68040 that lacks the FPU is the [[Motorola 68LC040|68LC040]].
{{Use dmy dates|date=July 2022}}
{{Infobox CPU
| name = Motorola 68040
| designfirm = Motorola
| produced-start= 1990
| arch = [[Motorola 68000 series]]
| data-width = 32 bits
| address-width = 32 bits
| slowest = 25
| slow-unit = MHz
| fastest = 40
| fast-unit = MHz
| l1cache = 4096 bytes each for instruction and data with independent MMU and TLB<ref name=arfc>{{cite web|url=http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68040|title=MC68040 Product Summary Page|archive-url=https://web.archive.org/web/20120114072057/http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68040|archive-date=14 January 2012}}</ref>
| pack1 = 179 pin ceramic [[Pin grid array|PGA]] and 184 pin [[Quad Flat Package|QFP]]
| transistors = ~1,200,000
| variant = 68LC040 and 68EC040
| predecessor = [[Motorola 68030]]
| successor = [[Motorola 68060]]
}}
[[Image:KL Motorola XC68040.jpg|thumb|180px|A Motorola 68040 microprocessor]] [[Image:Motorola 68040 die.JPG|thumb|180px|Motorola 68040 die shot with FPU on the left]]
 
The '''Motorola 68040''' ("''sixty-eight-oh-forty''") is a [[32-bit microprocessor]] in the [[Motorola 68000 series]], released in 1990.<ref name="computerworld19900122_68040">{{ cite magazine | url=https://archive.org/details/sim_computerworld_1990-01-22_24_4/page/133/mode/1up | title=Motorola introduces 68040 high-end chip | magazine=Computerworld | last1=Daly | first1=James | date=22 January 1990 | access-date=3 March 2024 | pages=133 }}</ref> It is the successor to the [[Motorola 68030|68030]] and is followed by the [[Motorola 68060|68060]], skipping the 68050. In keeping with general Motorola naming, the 68040 is often referred to as simply the '040 (pronounced ''oh-four-oh'' or ''oh-forty'').
In [[Apple Macintosh|Macintosh]] computers, the 68040 was found mainly in the high-end [[Macintosh Quadra|Quadra]]s. The fastest 68040 processor was clocked at 40 MHz and it was only used in the Quadra 840AV. The more expensive models in the (short-lived) mid-high [[Macintosh Centris|Centris]] also used the 68040, while the cheaper Centris and [[Macintosh Performa|Performas]] used the [[Motorola 68LC040|68LC040]]. The 68040 was also used in other [[personal computers]] such as the [[Amiga 4000]], as well as a number of [[Workstation]]s and later versions of the [[NeXT]] computers.
 
The 68040 iswas the first [[Motorola 68000 family|680x0 family]] member with an on-chip [[FPUFloating-point unit|Floating-Point Unit]] (floating point unitFPU). It thus includesincluded all of the functionality that previously required external chips, namely the FPU and [[Memory management unit|MMUMemory Management Unit]] (MMU), which was added in the 030)68030. It also hashad split instruction and data caches of 4 [[kilobyte|kilobytes]]s each. It iswas fully [[Instruction pipeline|pipelined]], with six stages.<ref>{{FOLDOC|Motorola+68040}}</ref>
 
Versions of the 68040 were created for specific market segments, including the [[Motorola 68040#68LC040|68LC040]], which removed the FPU, and the [[Motorola 68040#68EC040|68EC040]], which removed both the FPU and MMU. Motorola had intended the EC variant for embedded use, but embedded processors during the 68040's time did not need the power of the 68040, so EC variants of the 68020 and 68030 continued to be common in designs.
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 [[Motorola 68020]]. The FPU in the 68040 was thus made incapable of IEEE [[transcendental function]]s, 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.
 
Motorola produced several speed grades. The 16&nbsp;MHz and 20&nbsp;MHz parts were never qualified (XC designation) and used as prototyping samples. 25&nbsp;MHz and 33&nbsp;MHz grades featured across the whole line, but until around 2000 the 40&nbsp;MHz grade was only for the "full" 68040. A planned 50&nbsp;MHz grade was canceled after it exceeded the [[Thermal Design Power|thermal design envelope]].
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 40 MHz. A 50 MHz 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. However, the 80486 had the ability to be clocked significantly faster and it did not suffer from overheating problems.
 
==Usage==
Versions of the '040' were created for specific market segments, including the [[Freescale 68LC040|68LC040]] which removed the FPU, and the [[Freescale 68EC040|68EC040]] which removed both the FPU and MMU.
In [[Macintosh|Apple Macintosh]] computers, the 68040 was introduced in the [[Macintosh Quadra]], which was named for the chip. The fastest 68040 processor was clocked at 40&nbsp;MHz and it was used only in the [[Quadra 840AV]]. The more expensive models in the (short-lived) [[Macintosh Centris]] line also used the 68040, while the cheaper Quadra, Centris, [[Macintosh Performa|Performa]], and some late-model [[Macintosh LC|LC]] used the [[Motorola 68LC040|68LC040]].
 
The 68040 was also used in other [[personal computer]]s, such as the [[Amiga 4000]] and [[Amiga 4000T]], as well as a number of [[workstation]]s, [[Alpha Microsystems]] servers, the [[HP 9000]]/400 series, [[NCR Corporation]]'s TOWER 32/750, 32/825 and 32/850,<ref>{{cite magazine |last=Fitzgerald |first=Michael |date=May 6, 1991 |title=NCR promises Tower line lives |magazine=Computerworld |url=https://archive.org/details/sim_computerworld_1991-05-06_25_18/page/n115 |access-date=31 Mar 2023}}</ref> [[Apollo Computer]]'s [[Apollo/Domain|DN5500]],<ref>{{cite web|url=https://web-docs.gsi.de/~kraemer/COLLECTION/www.hunkler.com/aegis/aegis_sg.html|title=Survival Guide for Apollo Workstations|author=Tim Hunkler|date=July 1996|access-date=2022-10-13}}</ref> and later versions of the [[NeXT]] computer.
For more information on the instructions and architecture, see [[Motorola 68000]].
 
The 68040 processor is used in the [[Flight management system|flight management computers]] (FMC) aboard many [[Boeing 737]] aircraft, including all [[Boeing 737 Next Generation|Next Generation]] and [[Boeing 737 MAX|MAX]] models.<ref>{{Cite web |last=Brady |first=Chris |title=The Boeing 737 Flight Management Computer |url=http://www.b737.org.uk/fmc.htm |access-date=24 June 2022 |website=The Boeing 737 Technical Site}}</ref>
 
==Design==
The 68040 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 [[Motorola 68881|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 instead of the more profitable full "RC" unit. (For information on Motorola's multiprocessing model with the 680x0 series, see [[Motorola 68020]].) The FPU in the 68040 was incapable of IEEE [[transcendental function]]s, 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, heavy use of the transcendental functions caused severe performance penalties.
 
Heat was always a problem throughout the 68040's life. While it delivered over four times the per-clock performance of the 68020 and 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 was never able to run with a clock rate exceeding 40&nbsp;MHz. A 50&nbsp;MHz variant was planned, but canceled. [[Overclocking]] enthusiasts reported success reaching 50&nbsp;MHz using a 100&nbsp;MHz oscillator instead of an 80&nbsp;MHz part and the then novel technique of adding oversized heat sinks with fans.
 
The 68040 offered the same features as the [[Intel 80486]], but on a clock-for-clock basis could significantly outperform the Intel chip in integer and floating-point instructions.<ref>{{cite web|title=CISC: The Intel 80486 vs. The Motorola MC68040|url=http://textfiles.meulie.net/computers/486vs040.txt|access-date=20 May 2013|date=July 1992}}</ref><ref>{{cite web|url=http://www.bbs.ingedigit.com.ve/TechInfo/68040.Microprocessor.html|title=68040 Microprocessor|archive-url=https://web.archive.org/web/20120216013510/http://www.bbs.ingedigit.com.ve/TechInfo/68040.Microprocessor.html|archive-date=16 February 2012}}</ref> However, the 80486 had the ability to be clocked significantly faster without suffering from overheating problems, and also quickly spawned a mobile derivative for laptops. Newer-generation [[Intel 80486]]-based PC laptops were introduced in 1992, resulting in the 100-series PowerBook being stuck with the aging [[Motorola 68030|68030]] which were no longer competitive, and Apple was unable to ship a 68040-equipped PowerBook until the [[PowerBook Duo|PowerBook Duo 280]] and [[PowerBook 500 series]] in 1994. <ref>"Kunkel, Paul, AppleDesign: The work of the Apple Industrial Design Group, with photographs by Rick English, New York: Graphis, 1997, p.30</ref><ref>{{cite web | url = http://lowendmac.com/2016/birth-of-the-powerbook-how-apple-took-over-the-portable-market-in-1991/ | publisher = Low End Mac | title = Birth of the Powerbook | date = July 12, 2016 | access-date = March 18, 2018 | archive-date = September 15, 2022 | archive-url = https://web.archive.org/web/20220915134928/https://lowendmac.com/2016/birth-of-the-powerbook-how-apple-took-over-the-portable-market-in-1991/ | url-status = live }}</ref>
 
==Variants==
===68EC040===
The ''68EC040'' is a version of the Motorola 68040 microprocessor, intended for embedded controllers (EC). It differs from the 68040 in that it has neither an FPU nor an MMU. This makes it less expensive and it draws less power. The 68EC040 was used in Cisco switch [[Supervisor Engine (Cisco)|Supervisor Engine I]] that is the heart of models 2900, 2948G, 2980G, 4000, 4500, 5000, 5500, 6000, 6500 and 7600.
 
===68LC040===
[[Image:Motorola68040die.jpg|thumb|180px|Die of a Motorola 68LC040]]
The ''68LC040'' is a ''low cost'' version of the Motorola 68040 [[microprocessor]] with no FPU. This makes it less expensive and it draws less power. Although the CPU now fits into a feature chart more like the Motorola 68030, it continues to include the 68040's [[CPU cache|caches]] and [[Pipeline (computing)|pipeline]] and is thus significantly faster than the 68030.
 
Some [[stepping level|mask revisions]] of the 68LC040 contained a [[Software bug|bug]] that prevents the chip from operating correctly when a software FPU [[emulator]] is used. According to Motorola's errata,<ref>{{cite web|title=Documentation Clarification for MC68040|url=http://www.freescale.com/files/microcontrollers/doc/errata/MC68040DE_D.txt|website=Freescale|access-date=20 May 2013|archive-url=https://web.archive.org/web/20120314132128/http://www.freescale.com/files/microcontrollers/doc/errata/MC68040DE_D.txt|archive-date=14 March 2012}}</ref> any chip with a mask set 2E71M or later does not contain the bug. This new mask was introduced in mid-1995 and converted the 68LC040 chip to MC status.<ref>{{cite web|url=http://www.freescale.com/files/shared/doc/pcn/PCNR00274.html |title=E71M and E42K MC-Qualified Mask Sets |website=Freescale |access-date=24 July 2012|archive-url=https://web.archive.org/web/20120302145418/http://www.freescale.com/files/shared/doc/pcn/PCNR00274.html|archive-date=2 March 2012}}</ref>
 
The buggy revisions are typically found in 68LC040-based [[Apple Macintosh]] computers. Chips with mask set 2E23G (as used in the LC 475) have been confirmed to be faulty. The fault relates to pending writes being lost when the F-line exception is triggered.<ref>{{cite web|url=http://gnats.netbsd.org/13078 |title=NetBSD Problem Report #13078: Mac 68LC040 problem |publisher=Gnats.netbsd.org |access-date=24 July 2012}}</ref> The 68040 cannot update its microcode in the manner of modern x86 chips. This means that the only way to use software that requires floating-point functionality is to replace the buggy 68LC040 with a later revision, or a full 68040.
 
===Feature table===
{| class="wikitable"
|-
! Variant !! [[Memory management unit|MMU]] !! [[Floating-point unit|FPU]]
|-
| 68040 || {{Yes}} || {{Yes}}
|-
| 68'''LC'''040 || {{Yes}} || {{No}}
|-
| 68'''EC'''040 || {{No}} || {{No}}
|}
 
== Technical data ==
{| class="wikitable"
|-
| CPU [[clock rate]]
| 25, 33, 40&nbsp;MHz
|-
| Production process
| static [[CMOS]] {{nowrap|0.8 μm}}, {{nowrap|0.65 μm}}, Freescale {{nowrap|0.57 μm}}
|-
| [[Chip carrier]]
| 179 ceramic [[Pin grid array|PGA]] and 184 [[Quad Flat Package|QFP]]
|-
| Address bus
| 32 bit
|-
| Data bus
| 32 bit
|-
| [[Instruction set]]
| [[Complex instruction set computing|CISC]]
|-
| Transistors
| {{nowrap|~1,200,000}}
|-
|}
 
== See also ==
* [[List of Mac models grouped by CPU type]]
 
==References==
{{FOLDOCReflist}}
 
==Further reading==
{{Motorola_processors}}
* {{cite web |title=The Decimal Floating-Point Standard |at=Other Recent Decimal Floating-Point Formats |author-first=John J. G. |author-last=Savard |date=2018 |orig-year=2007 |work=quadibloc |url=http://www.quadibloc.com/comp/cp020302.htm |access-date=16 July 2018 |url-status=live |archive-url=https://web.archive.org/web/20180703002322/http://www.quadibloc.com/comp/cp020302.htm |archive-date=3 July 2018}}
 
==External links==
[[Category:68k microprocessors]]
* {{webarchive|url=https://web.archive.org/web/20120304011635/http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68040|title=MC68040 Product Summary Page|date=4 March 2012}}
* [https://www.nxp.com/docs/en/product-brief/MC68040V.pdf MC68040V Third-Generation 32-Bit Low-Power Microprocessor (PDF)]
* [https://www.nxp.com/docs/en/data-sheet/M68040UM.pdf M68040 Microprocessors User's Manual (PDF)]
 
[[cs:{{Motorola 68040]]processors}}
 
[[de:Motorola 68040]]
[[Category:68k microprocessors]]
[[fr:Motorola 68040]]
[[Category:Computer-related introductions in 1990]]
[[it:Motorola 68040]]
[[Category:32-bit microprocessors]]
[[ja:MC68040]]
[[pl:MC68040]]
[[fi:Motorola 68040]]