[citation][nom]JacekRing[/nom]I wish there was a utility that could take your multi-core system and make it run like a single core. Or at least let you specify how many cores to combine into a single core as a LOT of games still are not multi-threaded and run like shit because of it.[/citation]
That's not how cores work. You're literally asking for the impossible. Let's examine what would happen if you tried. We've got two cores, A and B.
1. A fetches an instruction to execute.
2. B fetches an instruction to execute.
3. A decodes the instruction
4. B decodes the instruction
5. A begins executing the instruction
6. B tries to execute the instruction, but realizes it needs output from A.
....
?. A finishes its instruction.
?. B can now begin executing its instruction now that A is done.
?. A fetches the next instruction, but needs B's output
And so on and so forth. What you end up with is a lot of communication between cores so each core has the necessary data (lots of overhead) and a huge number of stalls where one core can't do anything because it needs to wait on another one to finish. If you did manage to even make this work, it would be slower than just using a single core.
Yes, there are instructions which don't depend on each other (we say that these can be executed "out of order"), but modern processors can already execute those in parallel using only a single core. That's the benefit of a pipeline, you can execute a large number of instructions simultaneously, and can even have pipeline stages communicate with each other so you don't have to wait for an instruction to be completed before continuing (for example, use the output of a stage directly rather than wait for an operation to be written to the cache).
What little speedup there could be from this is already obtained by modern pipelines, which don't suffer the crippling problems of attempting to execute the same code across two cores simultaneously.