From what I see, there is a lot of confusion among people about what multicore CPUs mean.
All the desktop processors released by Intel and AMD up to 2005 were single core CPUs. However there were multi-processor systems before that; that technology is somewhat older (going back to Pentium 2 days).
What is a core?
Core is the actual processing unit of the CPU. It includes the Arithmatic and Logic Unit (ALU; which does pretty much all the operations), a lot of registers (which are super fast memory units, going up to a maximum of 8 bytes per register for a 64bit processor) and higher level cache (L1 most of the times).
So a core is pretty much like a complete processor.
When multiple cores are made in one single semeconductor die + lower level cache like L2 and L3, it is a multi-core CPU. (You can have separate dies and combine them from outside the dies, and this is how the first Quad Cores were made; they combined two Core 2 Duo dies and make a Quad Core; not putting all 4 cores into one die)
What is the difference between Multi-core and Multi-processor systems?
In Multi-core, it is one CPU. In Multi-Processor, it is many CPUs. There is resource sharing in a multi-core system. These resources are lower level cache (L2 or L3), Memory Bus and Memory too! In a Multi-Processor system, it is like two computers. Each processor has its own memory buses and its own memory.
So what is efficient? Multi-core! Why? Because it shares resources. (Weird how AMD's dual-core systems is faster than dual-processor system; maybe it has something to do with the Integrated Memory Controller and Super fast Hypertransport Bus)
Another important thing is that software developers consider multi-processor systems as multiple PCs! For example, you can install Windows XP Pro only up to a dual-processor system, but you can install it on a 1000-core system and more. The license for Windows XP Pro edition states that you can't install it on a system with more than 2 processors.
How do they differ from a single-core CPU when operating?
Processors execute instructions sequentially. They can't process anything simultaneously. You may feel like many things are happening at the same time, when you listen to music and browse the internet, but it doesn't. The CPU switches between the processes rapidly to serve them. How much it spends on one process is decided by the Operating System. Scheduling, which is the term used for this CPU resource allocation is an advanced topic that comes under Operating systems.
Anyway...like I said, instructions are executed sequentially, not parallely.
How can you make a new CPU faster?
Increasing the clock speed is not easy. It increases the power requirements, and the transistor switching times cannot be lowered easily. New researches need to be done on that. New transistors have to be developed with fast switching without sacrificing power.
Even if you increase the instructions per clock rate, it is still executing sequentially. It is efficient that increasing the clock speed because you get to keep the processor power consumption (which is predominently a function of voltage and clock speed) at a low level while getting the same performance.
Multi-core is the true winner, because you can design a system with very low clock speed, and which can shut down all the cores except one, to lower the power consumption. And you get true parallalism. Higher the parallelism, higher the responsiveness of the system, because there is enough resources left to do many things.
But remember, the software developers have a big role to play, because they have to design them to work in multiple threads, to get the advantage of SMT (Simutaneous Multi-Threading)
Many-core vs Multi-core
What? Is that different? Yeah! wtf!
Multi-core means that the cores are homogeneous (are exactly same). Many cores means the cores can be different. For example, CPU + GPU core system is a many core system. They are not called multicores.
Hyperthreading vs Multi-core
Hyperthreading is something Intel brought because of their vastly inferior netburst architecture on Pentium 4, to put some of the wasted CPU cycles for something useful. It achieves multithreading by duplication of certain units inside the CPU, but not the ALU as far as I know.
The operating system sees them as logical processors, not physical processors as in Multicore or Mutiprocessor systems. It doesn't really matter to the Operating System. The scheduling is done similar to a multicore system. It does speed up, because there is some degree of parallelism, but not as much as a multicore or multiprocessor system. Better than nothing
All the desktop processors released by Intel and AMD up to 2005 were single core CPUs. However there were multi-processor systems before that; that technology is somewhat older (going back to Pentium 2 days).
What is a core?
Core is the actual processing unit of the CPU. It includes the Arithmatic and Logic Unit (ALU; which does pretty much all the operations), a lot of registers (which are super fast memory units, going up to a maximum of 8 bytes per register for a 64bit processor) and higher level cache (L1 most of the times).
So a core is pretty much like a complete processor.
When multiple cores are made in one single semeconductor die + lower level cache like L2 and L3, it is a multi-core CPU. (You can have separate dies and combine them from outside the dies, and this is how the first Quad Cores were made; they combined two Core 2 Duo dies and make a Quad Core; not putting all 4 cores into one die)
What is the difference between Multi-core and Multi-processor systems?
In Multi-core, it is one CPU. In Multi-Processor, it is many CPUs. There is resource sharing in a multi-core system. These resources are lower level cache (L2 or L3), Memory Bus and Memory too! In a Multi-Processor system, it is like two computers. Each processor has its own memory buses and its own memory.
So what is efficient? Multi-core! Why? Because it shares resources. (Weird how AMD's dual-core systems is faster than dual-processor system; maybe it has something to do with the Integrated Memory Controller and Super fast Hypertransport Bus)
Another important thing is that software developers consider multi-processor systems as multiple PCs! For example, you can install Windows XP Pro only up to a dual-processor system, but you can install it on a 1000-core system and more. The license for Windows XP Pro edition states that you can't install it on a system with more than 2 processors.
How do they differ from a single-core CPU when operating?
Processors execute instructions sequentially. They can't process anything simultaneously. You may feel like many things are happening at the same time, when you listen to music and browse the internet, but it doesn't. The CPU switches between the processes rapidly to serve them. How much it spends on one process is decided by the Operating System. Scheduling, which is the term used for this CPU resource allocation is an advanced topic that comes under Operating systems.
Anyway...like I said, instructions are executed sequentially, not parallely.
How can you make a new CPU faster?
- You can increase the clock speed
- You can increase number of intructions executed per clock
- You can separate independent portions of a process, and execute them on separate resources, in this case multiple cores or processors
Increasing the clock speed is not easy. It increases the power requirements, and the transistor switching times cannot be lowered easily. New researches need to be done on that. New transistors have to be developed with fast switching without sacrificing power.
Even if you increase the instructions per clock rate, it is still executing sequentially. It is efficient that increasing the clock speed because you get to keep the processor power consumption (which is predominently a function of voltage and clock speed) at a low level while getting the same performance.
Multi-core is the true winner, because you can design a system with very low clock speed, and which can shut down all the cores except one, to lower the power consumption. And you get true parallalism. Higher the parallelism, higher the responsiveness of the system, because there is enough resources left to do many things.
But remember, the software developers have a big role to play, because they have to design them to work in multiple threads, to get the advantage of SMT (Simutaneous Multi-Threading)
Many-core vs Multi-core
What? Is that different? Yeah! wtf!

Multi-core means that the cores are homogeneous (are exactly same). Many cores means the cores can be different. For example, CPU + GPU core system is a many core system. They are not called multicores.
Hyperthreading vs Multi-core
Hyperthreading is something Intel brought because of their vastly inferior netburst architecture on Pentium 4, to put some of the wasted CPU cycles for something useful. It achieves multithreading by duplication of certain units inside the CPU, but not the ALU as far as I know.
The operating system sees them as logical processors, not physical processors as in Multicore or Mutiprocessor systems. It doesn't really matter to the Operating System. The scheduling is done similar to a multicore system. It does speed up, because there is some degree of parallelism, but not as much as a multicore or multiprocessor system. Better than nothing

Last edited:
he posted a nice article and all u can think abt is his avatar
