And I think the current top of the line ARMs may be the Cortex M3
In the microcontroller profile, yes, it's probably the most powerful. But there are more powerfull ones in the
"application profile" (see the wikipedia article
http://en.wikipedia.org/wiki/ARM_architecture#ARM_cores)
This leads to a crucial question: do you have any measurement of your needs? Without this, it's impossible to
tell which ARM you need. They are very versatile cores that come in all kind of different "profile" some are just high-end microcontrollers,
others can run a full blown OS and applications. Just an example: the ET-ARM Stamp Module uses the same core as a Game Boy Advanced (~ 60 MIPS at 60MHz)
The Cortex A9 MPCore features 2 to 4 cores, with frequency ranging from 600 MHz to 1GHz and 2.0 MIPS/Hz (~2000MIPS / core).
As you can see, it really depends on your application. My advice: write your core application in C on your desktop computer and profile it.
Get a set of "typical" data, like a few video frames, run it and measure the number of instructions (use gprof or any profiler for that). Of course
this will be approximate, since you will be measuring instruction count on a x86 machine, not an arm. But it will give you a general idea of what you
need. Ideally you would use a ISS (Instruction Set Simulator) of the ARM to measure this, but it is too expensive for hobby guys like us
If you code your application properly, you will be able to reuse most of it on your "final" embedded version (isolate core processing functions, it will also help profiling).
Chelmi.