When you think of an MMU — a memory management unit — you probably think of a modern 32-bit computer. But [Jeff Truck] has a surprise. His new RCA 1802 computer has bank switching, allowing the plucky little processor to address 256K of RAM. This isn’t just the usual bank-switching design, either.
The machine has several unique features. For example, an Arduino onboard can control the CPU so that you can remotely control the bus. It does not, apparently, stand in for any of the microprocessor support chips. It also doesn’t add additional memory or control its access.
The 256K of memory is under the control of the MMU board. This board generates two extra address bits by snooping the executing instruction and figures out what register is involved in any memory access. Memory in the MMU stores a table that lets you set different memory pages for each register. This works even if the register is not explicit and also for the machine’s DMA and instruction fetch cycles. If you know about the RCA “standard call and return technique,” which also needed a little patching for the MMU. [Jeff] covers that at the end of the video below.
This is a very simple version of a modern MMU and is an impressive trick for a 50-something-year-old CPU. We were surprised to hear — no offense to [Jeff] — that the design worked the first time. Impressive! There’s also some 3D printing and other tips to pick up along the way. But we were super impressed with the MMU. You might never have to do this yourself (although you could), but you can still marvel that it can be done at all.
We have a soft spot for the 1802s, real or emulated. The original ELF was great, but 256K is a lot better than the original 256 bytes!
Wow! I wire wrapped two 8k RAM boards to be able to use Quest Basic on my 1802 back in 1980. But this amount would have been amazing! My Life program could have followed so many more generations before having to chop the edges!
Can we still say “modern 32 bit computer”?
Good question. The Compaq Deskpro 386 was released in late 1986, the N64 console in 1996 and the AMD64 instruction set entered desktop PCs about 20 years ago..
Also, isn’t 32-Bit “dead”?! (IMHO: Yes!)
https://hackaday.com/2021/06/06/is-32-bits-really-dead/
On the other hand hand.
In relation to an 1802, any 32-Bit computer is very modern.
But so is an 80286-based IBM PC/AT from 1984 running OS/2 1.x.
Which uses an MMU, too, along with full memory protection. 🙂
That being said, the 1802 was a neat circuit. Very limited, but neat. It’s unique ability to run with various voltages is still awesome. No other circuit I know of was that flexible. Even in the non-hardened version the 1802 was a beast!💪😃
Moto rola wus first, yo.
“This is a very simple version of a modern MMU” – doesn’t actually have any similarity to modern MMUs in functionality. But it’s not strictly just bank switching either, so I guess calling it MMU makes some sense.
In the NES/Famicom scene, this would be called a “mapper” maybe.
32 may be dead on the desktop, but there’s a 32bit processor in a vehicle taking humans to the moon. And the demise of 32bit support in Linux actually causes a bit of headache for the software team.
Thanks Al for the article! I spent quite a bit of time designing the circuit. It was very exciting to see it come to life. I’m having fun now writing an editor to take advantage of all of the memory that my 1802 has access to.