Despite how simple and limited the 6502 is, it's always interesting to see this almost 50-year-old architecture being stretched to new limits. 6502 cores are still found in some SoCs aimed at the ultra-low-cost high-volume market.
> 6502 cores are still found in some SoCs aimed at the ultra-low-cost high-volume market.
What's the reason behind that? Probably just keeping existing, working designs and thus saving R&D costs? Sounds like beating a 10 cent risc-v core would be hard.
Edit: When I first read your comment I had to chuckle a bit, because I got the image of a multicore SoC with 6502 6502 cores. That would be a fun project for my FPGA hmmmmmmmm ...
10c per part is incredibly high depending on how low-cost we're talking.
If your chip needs very basic processing, and you're going to sell it for less than a cent per chip, you need your core to be basically free.
Sure RISC-V is very inexpensive, but for parts like these risc is massive overkill and as a modern core, you'll be spending a lot of die area on a core that should really be an ASIC, but designing an ASIC is expensive so you can just slap a 6502 in that bad boy and call it a day.
On the other end of the scale, you'd be surprised to learn that many chips you don't ever interface with as a user contain even ARM cores. These are usually ASICs in high-end products.
16 registers * 32 bits * 4 transistors / cell = 2k transistors just for storing the bits alone, and that's not including the decoding and read/write circuitry.
There is a ton of code out there for pretty much any task you want.
I have the 16 bit successor, the 65816, on a variable speed expansion card in my Apple 2. I run it in 8 bit mode most of the time mostly because it works and most library code is 8 bit.
At those speeds, the chip is fast! Especially when one considers the simple model: ram clocked 1:1 with the cpu. In my case, I can run code over the 1Mhz bus, essentially turning most multi cycle ops into a single bus cycle per memory fetch.
Or, the card has a megabyte of RAM and that runs at CPU speed. (0.15 to 16 Mhz) When doing that, it is fast enough to run large programs, written in higher level languages, at a useful speed. Of course Assembly language is crazy fast.