Email or username:

Password:

Forgot your password?
Vertigo #$FF

It really bugs the shit out of me when arm-chair engineers go on and on about how companies, like Texas Instruments with their TMS9900, made (to paraphrase) bone-headed mistakes in their processor architectures back in the mid- to late-70s.

Like, seriously, the design of the TMS9900 seemed very reasonable back when it was made. We were just coming out of the era of magnetic core memory and starting to see the benefits of semiconductor memory (both SRAM and DRAM). Memory speeds were ramping up and up, much faster than core CPU speeds were by far, so it literally made sense to consider putting registers in external memory. This is the same reasoning why Data General, Motorola, DEC, and MOS Technology all put "zero page" addressing modes on (at least some of) their respective products as well.

Nobody foresaw that CPU core speeds would improve like they did, rendering the technique obsolete. That Zilog, Intel, and Motorola chose to keep registers architectural and in local memory for their 16-bit parts was almost an accident in design. 8086 did it because the 8080 did (and for no other reason than that). Motorola 68K and Zilog Z8000 did it because that's how the PDP-11 and System/370 (resp.) worked. Literally, accidents that just happened to work in their favor.

Now that the victors have won the CPU wars, however, we get these arm-chair processor architects who try to push their views on processor architecture as literal fact instead of acknowledging it as an opinion. A recent case in point, I just read someone claim that registers were better because, "there's many more things you can do with registers than you can with external memory." Yeah, true, but those come at a cost too! The Z80 needed to adapt a 4-bit ALU to make room for those extra features, for example. Or, that registers are just oh-so-much faster than external memory. Yeah, OK, let's put that hypothesis to the test, shall we? To compare apples to apples, let's see how an Intel 80286 competes with a 65816 clocked at the exact same clock speed. If the 6502 vs 8086 competition is any indication (yes, that's an 8-bit vs 16-bit processor comparison), it doesn't end well for Intel. And, I suspect that anyone who's used an Apple IIgs to run DeluxePaint at a "mere" 2.8MHz will know that it's quite capable of keeping up with the 7.15MHz Commodore-Amiga 1000 running the same software. It's not perfect; the Amiga is still faster......slightly....

You can always tell an arm-chair architect, because they never weigh the finer points of interconnect design. And, frankly, that just frustrates the hell out of me.

The 6502 and 65816 are still being deployed in tons of deep-embedded designs today because, against all odds, contemporary versions of these cores can still keep up with its competition. When your memory subsystem is literally simple enough to allow zero-page to couple directly to your ALU, then zero-page is your register file. Period.

Sigh.

1 comment
Patrick Georgi
@vertigo While this is an interesting* treatise on the subject (thank you!), I'm a bit worried about how much you care about the opinions of arm-chair internet users. They won't even notice when you're all riled up about their bullshit.

* so interesting, in fact, that I filed it in my personal archive for future food for thought on CPU design
Go Up