GARTHWILSON wrote:
There shouldn't always be a link between the width of data that needs handling and the speed at which it needs to be handled.
Not necessarily, but today's technology can't do 10GHz over I/O pads, so that kind of speed is only useful if you do a bunch of internal calculations. And most real world calculations benefit from using 32 bit and some more registers.
Quote:
I expect the ARM has a PLL onboard too. And for the microcontrollers, memory and I/O too. I know almost nothing about ARM, but I get the idea they're mostly microcontrollers.
The ARM is just the core, just like a bare 6502, although they are typically made with peripherals and memory in the same die. The point is that the core is only a small part of the silicon, so keeping every else the same, substituting the 6502 for an ARM doesn't increase silicon cost all that much. On a small design, on a modern process, silicon area is mostly determined by number of I/O pads, because these require huge transistors, and ESD protection and space for the bond wires.
Quote:
If a 32-bit ARM does 500MIPS though, that's not going to match the performance of a 3GIPS '02 in situations where you only need to handle 8 bits at a time and the 32-bitter's extra power is in areas that are not useful.
Depends. In many cases, even solving 8 bit problems, you'll be using 16 bit pointers. A simple, common, sequence like this:
Code:
LDA (ptr), Y
INY
BNE
INC ptr+1
takes 10 cycles on the 6502 (and uses 2 out of 3 registers), but would only take 1 cycle on an ARM. Other things, like copying memory, benefit from 32 bit loads and stores, even if you're not doing calculations. The ARM has more registers, so less need to push/pop, or use slower memory. So, it's not so far fetched that a 500 MIPS ARM could match a 3GIPS 6502 for speed, even doing mostly 8 bit stuff. And 32 bit isn't just for talking cars. A simple application that benefits from 32 bit could be a sensorless brushless DC motor controller for a home appliance.