Last Updated:

All About Hyper-Threading? (Part I)

Kushal Raut
Kushal Raut

Every time when you look at the specifications of any laptop, you would have noticed that at times onto the specifications it is mentioned as Core i5 with Hyper-Threading; and what you do is scratch your head and think what is this Hyper-Threading exactly? We’ve have got it covered for you in a simple language. Just make sure to read the whole post and you will understand what is Hyper-Threading and for whom Hyper-Threading beneficial and also which kind of tasks are made easier with Hyper-Threading Technology.

HYPER-THREADING

Hyper-Threading which is abbreviated as HT or HTT is Intel’s own proprietary simultaneous multi-threading (SMT) implementation for doing multiple tasks at once on x86 based processors. Initially, Hyper-Threading was started by Intel in the year 2002 on Xeon Server Processors and then further included it in Atom and Core “I” Series CPU’S

[video width="1280" height="720" mp4="http://192.168.0.105/wp-content/uploads/2018/02/Intel-HyperThreading.mp4"][/video]

PAST WORKING

In the past, at the time when there were old microprocessors i.e CPUs, we know that CPUs had various different units inside them. The ones who have done any computer basic course or have knowledge about hardware would be knowing about this. If you don’t know, don’t worry. Inside a CPU there are units such as ALU (Arithmetic and Logic Unit) which does all the logical and arithmetical tasks, CU (Control Unit) which decides which units have to work, FPU (Floating Point Unit), MMU (Memory Management Unit) and much more. What CPU does it that it fetches instruction, then decodes it followed by the utilization of required units to do the task. This goes on in a cycle.

As a result of this if you closely look at the traditional methods you would come to know that; even if the CPU has many Units, when it is running a task or set of instruction, most of the units are idle. Eg: When an instruction deals with integers only the ALU is used and other units mentioned above are idle. So they came up with a technology named as Superscalar. However, we don’t have to discuss superscalar. But I would say that even that Superscalar technology had a drawback because there were some situations where more than one instructions needed the same unit or even the second instruction needed the result of the first one. Even there were problems of cache invalidations.

PRESENT DAY

But now as we moved further and the technology evolved, and we got using the dual and quad-core processor in our daily lives. The even operating system started supporting multi-processing which was a common problem. Various enhancements went on into multi-user and multi-core systems and behold – the Superscalar System was removed and reconfigured into CPU to pretend that they have two cores.

Now you have a question that why to pretend to the operating system that it has two cores. See, when the operating system sees that there two CPU cores, it orders them to execute two separate programs at the same time. Two set of instructions from different programs are fed to it at the same time. But we have only one core. Boom! That’s when Hyper-Threading dives in as a saviour for us. Now think properly with concentration, when instructions are fed to the same single core it makes the core to utilize all the different units at the same times. You might say that this is like Superscalar but no it’s not because earlier there were only instructions from one and only one program but now as the technologies, has progressed and the operating system supports multiple processing power, the instructions are different and don’t rely on each other’s result to be processed. As a result of this, the all of units keep on working which in earlier case were always idle. There is decreased the chance of two instructions using same units as two programs mostly have a different set of instructions to be performed.

Want to know more? Head on over to the second part.

Comments