In the operating system, there is the concept of multi-threading (multi-threading), which is well understood, because a thread is the smallest scheduling unit of a process, and a process contains at least one thread. This article describes the CPU-specific hyper-Threading technology. In short, multithreading is softer, hyper-threading is hard, and both are inherently virtualized .
1. What is Hyper-threading (hyper-threading)?
Hyper-Threading (hyper-threading) is a simultaneous multithreading (simultaneous multi-theading), a technique that allows a single CPU to perform multiple control flows. Its principle is simple, is to use a CPU as two, a hyper-threading function of the physical CPU into two logical CPUs, and the logical CPU to the operating system, and the physical CPU is no different. Therefore, the operating system assigns the worker thread to the two (logical) CPUs to execute, allowing multiple threads (multiple or single) of the application to be executed simultaneously on the same CPU. Note: The two logical CPUs share all the execution resources of a single physical CPU. Therefore, we can assume that Hyper-Threading technology is the virtualization of CPUs .
2. The origin of Hyper-Threading Technology ( Source: https://en.wikipedia.org/wiki/Hyper-threading)
Intel Sun Microsystems.
Hyper-Threading technology is a form of implementation of simultaneous multithreading technology, proposed by Intel Corporation, and the concept behind the technology is Sun's patent. Although Sun has fallen, it is always a great company.
Throughout the history of computers, there are two requirements that drive the progress of computer technology.
- First, humans want to make computers do more;
- Second, humans want to make computers run faster.
In this sense, the thugs who put the engineers in the machine as capitalists or capitalists are constantly pursuing these two demands when they extract the surplus value of the programmer. The invention of Hyper-Threading technology is based on the consideration that the last drop of oil that does not squeeze dry processors will never stop.
3. Single thread v.s. Hyper-Threading ( image source: http://www.gethow.org/what-is-hyper-threading-technology-in-processors)
Regular CPUs require about 20,000 clock cycles to switch between different threads, whereas hyper-threaded CPUs can determine which thread to execute on a single clock cycle. This allows the CPU to make better use of its processing resources. For example, suppose a thread must wait until some data is loaded into the cache, then the CPU can continue to execute another thread.
O Intel Company's Hyper-Threading technology
Image source: Http://www.slideshare.net/am_sharifian/intel-hyper-threading-technology
HT allows single processor to fetch and execute separate code streams simultaneously. Hyper-Threading allows a single processor to crawl and execute two separate code streams in parallel at the same time.
4. How Hyper-Threading works
Image source: http://argentows.blogspot.com/2011/05/hyperthreading.html
Wikipedia explains the following:
In this high-level depiction of HTT, instructions is fetched fromram (differently colored boxes represent the INS Tructions of fourdifferent programs), decoded and reordered by the front end (whiteboxes represent pipeline B Ubbles), and passed to the execution corecapable of executing instructions from the different programs duringthe same Clock cycle.
Image source: Https://en.wikipedia.org/wiki/Hyper-threading#/media/File:Hyper-threaded_CPU.png
5. Benefits of Hyper-Threading Technology
Source: What is hyper-threading technology?
6. Prerequisites for implementing Hyper-Threading Technology
- CPU Support Required
- Motherboard chipset support Required
- Requires BIOS support
- Requires operating system support
- Requires application software support
This shows that, although hyper-threading technology is cool, but need all aspects of support, otherwise it will not play. If you are a capitalist (or a capitalist's thug) who wants to extract the greatest possible value from the programmer, think about whether or not to give programmers the hardware and software environment to run Hyper-threading, otherwise it is not a good idea to let them work overtime, because people are not machines, people only need to rest good to be creative, Most of the tired people are in the blind toss, often inefficient.
Summary: Hyper-Threading (hyper-threading) is essentially CPU-supported simultaneous multithreading (simultaneous multi-threading) technology, simple to understand is the CPU virtualization, A physical CPU can be used by the operating system as multiple CPUs.
Illustrated Hyper-Threading Technology (Hyper-threading Technology)