什么是超线程,它如何工作?


Answers:


38

超线程是您的处理器假装有2个物理处理器核心的地方,但只有1个和一些额外的垃圾。

超线程的要点是,当您在处理器中执行代码时,很多时候处理器的某些部分处于空闲状态。通过包括一组额外的CPU寄存器,处理器可以像具有两个内核一样工作,因此可以并行使用处理器的所有部分。当两个内核都需要使用处理器的一个组件时,那么一个内核当然会等待。这就是为什么它不能代替双核等处理器。


6
+1应该补充说,超线程特定于Intel的SMT实现,例如SPARC处理器实现了不同形式的SMT,但目标相似。
sybreon

@Earlz您是否建议通过将内核一分为二来使处理器运行两个线程?还是现实中实现的并行性导致超线程导致处理器从一个线程切换到另一个线程?
Doopy Doo 2012年

4
@DoopyDoo都不是。基本上,处理器具有两个“执行核心”,即指令的流水线,并具有两组寄存器和其他必要的东西。超线程和常规双核之间的区别是,有些东西不是重复的。例如,可能只有一个ALU。因此,这意味着双核处理器可以同时将两个独立的数字集相加,而超线程处理器将不得不让其中一个虚拟核等待,直到轮到ALU为止。当然,这是一个简化的示例
Earlz 2012年

12

超线程是两个线程能够在一个单线程内核上运行的地方。当有问题的内核上的线程停止或处于暂停状态时,超线程使内核可以在第二个线程上工作。

超线程使操作系统认为处理器的核数增加了一倍,通常可以提高性能,但总体上只能提高15-30%-尽管在某些情况下,实际上可能会对性能造成影响(= <20%)。

当前,大多数Atom芯片和所有i7(以及与Xeon等效的芯片)都具有超线程功能,一些较旧的P4也具有超线程功能。对于Atom,这是在不增加功耗的情况下提高性能的绝望尝试。对于i7s,它将它们与i5系列芯片区分开来。

复杂的处理工作不会从HT中受益很多,但是某些(简单的,高度多线程的)任务(例如视频编码)也会从HT中受益。实际上,里面没有太多...


95%正确。如果正常铁芯= A + B则超线程核心更像A + 2×B.它们可以同时只要两个线程不需要A.执行两个线程
文森特Vancalbergh

5

当单核可以充当双核时

这是超线程

详细

英特尔对同时多线程的实现被称为超线程技术或HT技术。

从软件的
角度来看,HT Technology使单个处理器看起来像多个逻辑处理器。这允许操作系统和应用程序像
在多处理器系统上一样调度多个线程到逻辑处理器。


超线程允许单处理器同时执行两个线程,但不能在所有条件下都执行。

超线程不会使系统性能提高一倍,它可以通过更好地利用空闲资源来提高性能,从而为某些重要的工作负载类型带来更高的吞吐量。在繁忙的内核的一个逻辑处理器上运行的应用程序可以期望其在非超线程处理器上单独运行时获得的吞吐量略高于一半。超线程性能的提高高度依赖于应用程序,并且某些应用程序可能会因为超线程而导致性能下降,因为许多处理器资源(例如缓存)在逻辑处理器之间共享。

英特尔超线程技术使每个内核可以有两个逻辑处理器,它们共享内核的大部分资源,例如内存缓存和功能单元

主功能

超线程的目的是增加管道中独立指令的数量;它利用了超标量架构的优势,在该架构中,多条指令可并行处理单独的数据

英特尔表示,超线程非常高效,因为它使用的资源本来是空闲的或未充分利用的。

链接:

Wikipedia
StackOverflow
多核编程Digital_Edition第8页

在此处输入图片说明

英特尔映像


3

为了扩展已有的说法,超线程意味着单个CPU内核可以维护两个单独的执行上下文,并可以在它们之间快速切换,从而在硬件级别有效地模拟了两个内核。

与普通的单核相比,您在多线程工作负载方面获得了适度的速度优势。但是,拥有两个独立的内核的好处无处不在。在性能方面,您最好将其视为单个内核上多线程性能的小提升,而不是性能接近两个内核。速度提升的大小根据工作负载而有所不同-实际上,对于某些工作负载而言,性能提升是相当不错的。

超线程内核仅具有一个主执行单元,但是与用于处理和维护执行状态的准备指令相关联的CPU的某些其他部分是重复的。

处理器内核具有一条指令管道-将来要执行的指令队列,该队列将不断更新,以使CPU准备在该队列的开头执行指令。CPU通过查看这些将来的指令并在可能的情况下对它们进行一些简单的低级预处理来使用它们来优化执行速度(此类优化包括“乱序执行”和“分支预测”)。

超线程内核具有双指令流水线,并且这与第二组寄存器一起使您从多线程工作负载中获得了速度优势。在线程上下文之间进行切换不会抛出流水线或寄存器,并且另一个线程的流水线和寄存器仍处于就绪状态并处于“热”状态,因此可以将它们切换并立即使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.