There's No Such Thing as a General-purpose Processor (2014)
queue.acm.org
queue.acm.org
I respectfully beg to differ. A microcontroller is distinctive in its integration of onboard peripherals; the processor is a primitive element of a microcontroller.
I don't think there's any real definitive measure for microcontroller vs microprocessor.
My car is a general purpose transportation device. Does that mean it is an all-purpose transportation device? Of course not.
It solves almost all of the problems I have related to transportation, though. But there are times I explicitly want to pick a different mode of transportation:
1. I need to cross an ocean: Choose a plane/boat
2. I need to go where there are no roads: Choose legs
3. I need to haul significant quantities: Train/Truck
4. I need to prioritize speed: plane
5. I need to prioritize attention: choose a subway/bus
Does this mean the car is the best form of transportation? Also no. But it's still very much a generalized means of transportation within our current context. It handles a user's daily and most consistent needs.
This is also true of our current processors.
The author's definition of "General-purpose" appears to be impossible, which makes his title both true and useless.
There is ProjectOberon http://www.projectoberon.com/ which has an FPGA based CPU (which requires only money to turn it into a real CPU), using 20 instructions.
The PIC32MZ micro-controller runs a MIPS32 core at 200Mhz, with MMU and FPU. This core or an earlier one like it, was used on the SGI Iris Indigo workstations back in the day ...
"General purpose" means I can do what I want with it, as opposed to the manufacturer lets me do what they want me to do with it.
Caches are going to get super thrashed in those situations and just cleaning and reloading for the next application will destroy performance.