图说超线程技术(Hyper-ThreadingTechnology)
在操作系统中,有多线程(multi-threading)的概念,这很好理解,因为线程是进程最⼩的调度单位,⼀个进程⾄少包含⼀个线程。本⽂将介绍CPU特有的超线程技术。简单来说就是,多线程⽐较软,超线程⽐较硬,⼆者本质上都是虚拟化。
1. 什么是超线程(hyper-threading)?
物理手抄报超线程(hyper-threading)其实就是同时多线程(simultaneous multi-theading),是⼀项允许⼀个CPU执⾏多个控制流的技术。它的原理很简单,就是把⼀颗CPU当成两颗来⽤,将⼀颗具有超线程功能的物理CPU变成两颗逻辑CPU,⽽逻辑CPU对操作系统来说,跟物理CPU并没有什么区别。因此,操作系统会把⼯作线程分派给这两颗(逻辑)CPU上去执⾏,让(多个或单个)应⽤程序的多个线程,能够同时在同⼀颗CPU上被执⾏。注意:两颗逻辑CPU共享单颗物理CPU的所有执⾏资源。因此,我们可以认为,超线程技术就是对CPU的虚拟化。
Hyper-Threading Technology is a form of simultaneous multithreading technology
introduced by Intel, while the concept behind the technology has been patented
by Sun Microsystems.萤火虫怎么画
超线程技术是同时多线程技术的⼀种实现形式,由Intel公司提出,⽽该技术背后的概念则是Sun公司的专利。Sun公司虽然倒下了,但它永远是⼀个伟⼤的公司。
建筑地基纵观计算机的历史,有两个需求是驱动计算机科技进步的持续动⼒。
第⼀,⼈类想让计算机做得更多;
第⼆,⼈类想让计算机跑得更快。
抓不住的温柔从这个意义上讲,那些把⼯程师当做机器的资本家或资本家豢养的打⼿在榨取程序员的剩余价值的时候,就是不断地追求上述两个需求。超线程技术的发明,就是基于这样的考虑,不榨⼲处理器的最后⼀滴油决不罢休。
常规的CPU需要⼤约两万个时钟周期做不同线程间的切换,⽽超线程的CPU可以在单个时钟周期的基础上决定要执⾏哪⼀个线程。这使得CPU能够更好地利⽤它的处理资源。例如:假设⼀个线程必须等到某些数据被装⼊到cache中,那么CPU就可以继续去执⾏另⼀个线程。o Intel公司的超线程技术
HT allows single processor to fetch and execute two parate code streams simultaneously. 超线程允许单个处理器在同⼀时刻并⾏地抓取和执⾏两个独⽴的代码流。
4. 超线程是如何⼯作的
软卧和硬卧
维基百科的解释如下:
In this high-level depiction of HTT, instructions are fetched from
RAM (differently colored boxes reprent the instructions of four
different programs), decoded and reordered by the front end (white
boxes reprent pipeline bubbles), and pasd to the execution core
知识与能力训练capable of executing instructions from two different programs during
the same clock cycle.
5. 超线程技术的好处
资料来源:
6. 实现超线程技术的前提条件
需要CPU⽀持
需要主板芯⽚组⽀持
需要BIOS⽀持
葫组词早饭的英文需要操作系统⽀持
需要应⽤软件⽀持
由此可见,超线程技术虽然很酷,但需要⽅⽅⾯⾯的⽀持,否则就玩不转。类似地,如果想最⼤可能地榨取程序员的剩余价值的话,给程序员提供实现超线程运⾏的软硬件环境也是必须地,否则⼀味地让他们拼体⼒(加班)实在不是个好办法,因为⼈毕竟不是机器,⼈只有需要休息好了才可能有创造⼒,疲惫的⼈们⼤多时候是在瞎折腾,往往事倍功半。
⼩结:超线程(hyper-threading)本质上就是CPU⽀持的同时多线程(simultaneous multi-threading)技术,简单理解就是对CPU的虚拟化,⼀颗物理CPU可以被操作系统当做多颗CPU来使⽤。