It was thus said that the Great Alexey Toptygin once stated:
On Mon, 20 Feb 2012, Dave McGuire wrote:
Nobody is putting x86_64s on tiny boards embedded
in vending machines
talking to GSM modems. (something I'm in the process of doing right
now!)
OK, but why do your GSM modems need to be talking to 2+ interlinked cores
rather than one core that is 2+ times as fast? What are you doing with
them that makes controllling them with a single fast core impractical?
One core for handling traffic out, another one for handling traffic coming
in. It makes the code easier to write. Handling traffic for both
directions, without using threads, means you end up writing a cooperative
multitasking system where you have to manage all the state information.
It's not impossible, but it tends to turn the code inside out (as it's event
driven) and (at least to me) harder to follow.
If the system provides threads, then you still have overhead of task
switching, so a single CPU running at 2X does not match two CPUs running at
X.
-spc (Has to deal with event driven code at work, and personally, I don't
like it)