Difference Between Cores and Threads


When you study the computer processor comparison charts, one specification, besides the clocking frequency, which will catch your eye, is the one mentioning number of 'Cores' and 'Threads'. In this Buzzle article, my aim is to clearly define the concept of a core and thread and identify the difference between the two.

What is a Processor Core?
The speed of a computer processor is defined by the clocking frequency at which it may work. To achieve higher clocking frequencies, chip manufacturers initially went on improving fabrication technology to add more and more number of transistors to a chip. Till a point, clocking frequencies went on increasing until they hit a 'thermal' wall that made addition of more transistors impossible. That's what prompted them to put more than one chip together on the same circuit, to achieve superior performance, leading to 'multicore' processors.

So what's a core? A core is basically a physically distinct CPU (central processing unit) or a completely independent processor. A multicore processor is a single piece of computer hardware with multiple cores or processors put together. Each core can function independently and shares resources with the other cores. Every independent core has its own L1 processor cache, while the L2 and L3 caches are shared. Older processors like the Pentium 4 had only one core, while today's Intel processors come with dual, quad and even six cores. Multiple cores can improve multitasking power, by sharing the processing workload between each other. The day is not far away when processors with sixteen or twenty cores will see the light of the day!

What is a Processor Thread?
A thread is a part of the process, or a set of instructions that are executed by a core of a processor. A single process is broken down into multiple threads that may be executed by any of the multiple cores that make up modern Intel and AMD processors. Multithreading is the ability of a CPU to handle multiple processing threads.

There are many ways in which threads may be shared among the cores that make up a processor. Simultaneous multithreading or hyper-threading enables two threads to be simultaneously executed on a single core, which is a part of a dual, quad or six core processors. So when you see 8 threads specified in a processor's parameters, it means that the chip can handle 8 processing tasks simultaneously.

How are Cores Different From Threads?
So how are cores different from threads? Cores are hardware specifications, providing the number of independent processors functional in the processor, while threads are software related specifications, talking about the number of programming sequences which the processor can simultaneously execute. Cores are the central processing units that process threads to provide a desired computer functionality.

To summarize everything, a core is a distinct CPU or chip integrated with other chips to form an integrated circuit, which we call a multicore processor, while a thread is a set of instructions from a computer process that is executed by the core. Hyper-Threading - the technology that makes it possible for every core in an i5 or i7 multicore processor to handle two separate process threads simultaneously, is the reason behind Intel's triumph over AMD in recent times. As software developers catch up with the multicore processor revolution and make the utilization of all cores possible through multithreading, the true advantage of having a multicore processor will be made apparent.

Blog Archive