Q:

How to compare CPUs given CPU frequency and Number of cores?

I am currently working on a comparison between several single-board microcontrollers and I am trying to compare them according to several aspects (CPU, RAM, Price and features).
When it comes to CPUs, it gets a bit more tricky as some boards have 1 core and others are Quad-Core.
How can I compare CPUs given CPU frequency and the number of cores?
More precisely, how can I show, in a proper way, that a 1.7 GHz single core is better/worse than a 1.4 GHz Quad-core?

A:

There's not perfect answer to this question but I can try to give you some guidelines on how to choose. What CPU is best really depends on the type of software you are trying to run on it. If it has been written to run perfectly in parallel the quad core processor will be better because it can use all 4 cores at the same time to run computations. If the software is not written to run in parallel (all of your computations must be run one after another) the single core processor will run it better because it has a higher clock rate. 
If your software is perfectly optimized to run in parallel you can calculate how many instructions per second your microcontroller can calculate using
number_of_cores * frequency_of_computations = instructions_per_second

For the two examples you listed above in the case that the software can be run perfectly in parallel
Single Core 1.7Ghz
1 core * 1.7 GHz = 1.7 billion instructions per second

Quad Core 1.4 Ghz
4 cores * 1.4 GHz = 5.6 billion instructions per second

But if the software must be run in sequential order then the number of intructions you can run per second is simply the clock frequency
For the two examples above in the case that the instrcuction must be run in sequential order
Single Core 1.7GHz
1.7 billion instructions per second

Quad core 1.4 GHz
1.4 billion instructions per second

As you can see, depending on the software running on the system, either microcontroller could be the better one. This is where you, as a designer have to make a decision. You have to ask yourself: How will the software interact with the hardware? Based on your answer to this question you will need to make a decision on which type of hardware you'd like to use.  

