Not really a scam. Marketing needs and all-around misunderstanding of how CPU works I'd say.
WayWayTL;DR: That, and see the last few paragraphs, after all the long historical and near-technical ramblings.
It's the same issue as the whole "that's an 8-bits computer and that's a 16-bits computer and ...". CPU are complicated beasts, but people like simple measurement that can be fully ordered... I don't think anyone think the original Core i7 where 192-bits computers just because their external bus had 3 64-bits channels. Let alone than 5th gen AMD Epyc as 768-bits. "CPU frequency" is nearly as much an oversimplification and means not much (spoiler alert!).
Originally for personal computers, clocks were fairly low and no-one that wasn't ITB or a motivated hobbyist knew what a clock was - frequency what the thing you tuned to on the dial of the radio. And the width of the bus was a critical aspect for performance as everything went through that interface (no caches!) and doubling the width pretty much doubled the performance. Early home computers had a 8-bits bus because that was cheap. The other important thing was memory size; memory was expensive (the more things change...), so that was a critical aspect. If you look at early Apple II ads, they don't mention frequency (just "6502 processor"), they do mention the size of the RAM chips - both in KiB and physical: what package they use!. Frequency was in the datasheet and user manual so companies could build a system with those CPUs.
Originally it was a bus width war with the so-called "16-bits" (mostly the MC68000, though it now [w|sh]ould be considered a 32-bits CPU given the width of registers and pointers, plus some outliers like the TMS9900) system trying to push aside the 8-bits systems. But still, the thing that mattered was bus width and memory - even though the mention of clocks (after all the 8 MHz of the '000 could be mentioned against the common 2 to 4 MHz of the Z80, even if it didn't mean anything to anyone) was there now.
The frequency was didn't really pick up before the i80386, though the i80286 had started the discussion. There were machine with the smae CPU but two (or more) different levels of performance based on that new-fangled marketing buzzword, "CPU frequency"! That was marketed heavily, and that wouldn't stop for a couple of decades. But at that point, as @zigzagjoe said, the one advertized frequency was the one that mattered to system builders - the bus frequency. Whatever happened inside the CPU, stayed inside the CPU, same for the MC68040 as for its predecessors (spolier alert!).
Of course comparing clocks between microarchitectures is absurd, but that never stopped anyone doing it. There's plenty of benchmarks of the era where the ranking between microarchitectures is mostly independent of clock speed, even if clock speed allows for perfect ordering of a single micro-architecture (read: faster is better... for the same silicon).
Now back to the MC68040; it was originally sold with the bus frequency as its "CPU frequency". That's the frequency ssystem builders needed to target to build a system (timings of memory and other devices on the system bus), so it made sense. They just had to remember to add that pesky MC88916 for the PCLK... and at the time, nobody thought anything of it. The MC68040 was faster than the i80486, wasn't it? What else mattered? And what is that "clock for clock" mention there?!?
Well the marketing clock mattered, in particular after the introduction of the DX2 variant of the 486. So at some point people at Apple and/or Motorola (or somewhere) looked at the MC68040 user manual and saw this gem in it (section 7.1):
Meaning, at least some of the logic is running out of the phase-locked variant of PCLK (to the BCLK). Incidentally, the MC68040V and several other variants don't have a PCLK fed to them; some interpret this as meaning it's not used. Except the '040V still has all the PLL power pins, and odds are, the PLL is also acting as a built-in frequency multiplier in addition to the phase-locking in the '040V. That's just a small part of what the MC88916 could do that needed to be integrated, and the PLL was already there anyway.
So we ended up with the "33/66 MHz" "CPU frequency" advertising for the MC68040... and closing on four decades of discussion of whether that's legit or not. Which, to me, is discussing how many angels can dance on the head of a pin.
(a) some of the logic is clocked at PCLK (otherwise they wouldn't say so let alone have bothered with adding the pind and the PLL, that's some complicated analog stuff to add for no reason to a digital design), so it is correct
(b) some of the logic (e.g. at least the bus interface) is clocked at BCLK, so it is incorrect
(c) the exact same two arguments can be used for/against the i80486DX2 and DX4
The problem is that for the 486, it was probably fully synchronous to the bus clock originally (similar to what would later be called a "Brainiac" - do more each cycle, lower frequency) while the MC68040 had some parts running faster than the bus (similar to what would later be called a "Speed Demon", just push the clock by simplifying each stage of the pipeline). So when Intel added the ability to run at twice (later 2x and 4x) the bus speed, it was natural to keep the internal clock as the "CPU frequency" even if the bus clock was only half as much. But for Motorola, they had started advertising the bus clock as the "CPU frequency" with the internal clock being purely technical, and it felt like a cheat when it was added to the marketing material - this new number was double the old one, but that didn't change anything to performance because it had always been there...
As for measurremnt to figure out the "truth" (as if there was truth in marketing!), the only observable thing from the outside is the bus clock, so any measurement is going to return whole bus clock cycle values. Whether an instruction takes 5 BCLK cycles or 9 or 10 PCLK cycles, externally it will be observed identically. And it's likely Motorola did the pipelining with even number of stages for everything, as it makes things a lot easier if you always change clock domains between phase-locked clocks on the destination clock edges - no need for delays, resynchronization or CDC, just move from one to the other seemlessly (the curve25519 crypto engine does that with 3 clocks at nominal, nominal/2 and nominal*2).
Again, @zigzagjoe mentioned the MC68040 looks a lot like a clock-doubled MC68030 (with extra caches). One could esaily speculate it's because it's essentially what it is. Most of the instructions takes about half the number of cycles at BCLK on the '040 as they do on the '030... or maybe they didn't massively improve every aspect of the micro-architecture between generations, they just clocked most of the existing one with PCLK, and added a BCLK-clocked interface to the bus and maybe some internal part of the CPU that were too cumbersome to run at PCLK (maybe the caches, etc.). But thas is all speculation. If only Motorola had told us...
[actual answer starts here]
... which of course, they totally did. The explanation was published in 1990 in a IEEE conference.
From the proceedings (sorry, no OCR):
- Is she '040 ALU is effectively clock-doubled vs it's predecessors? Yes.
- So it is running at double the bus clock? No! It's just ... no longer running at half speed
View attachment 94848
[the '030 is essentially the same as the '020 for this]
The "fast" clock (CLK for the '020/'030, PCLK on the '040) is used for various timings between the internal ALU which is running at the slow clock (CLK/2 for the '020/'030, BCLK on the '040) and the bus which is running at the external clock (CLK for the '020/'030, BCLK for the '040).
So if the MC68030 @ 25 MHz is a 25 MHz processor, then is a MC68040 @ 25 Mhz a 50 MHz processor by virtue of running its ALU at double the frequency of the MC68030? Or is the lie that the MC68030 @ 25 MHz should have been called a 12.5 MHz all along?
How many angels can dance on the head of a pin? None, as there's no such things as angels.
What it the "CPU frequency" of a MC68040 ? None, as there's no such thing as a "CPU frequency".
Thank you for your in-depth exploration of the topic. I’ve learned something today.
Could the ‘040 then be alternatively thought of as an ‘030 DX2 (to use Intel’s marketing paradigm)?
One other thing, isn’t the 486 DX4 actually running at 3x the bus speed, rather than 4x? Another trick of marketing.
Last edited:



