Ear*_*rlz 48
超线程是您的处理器假装有 2 个物理处理器内核,但只有 1 个和一些额外的垃圾。
超线程的要点在于,当您在处理器中执行代码时,很多时候处理器的某些部分是空闲的。通过包含一组额外的 CPU 寄存器,处理器可以像拥有两个内核一样运行,从而并行使用处理器的所有部分。当两个核心都需要使用处理器的一个组件时,当然一个核心最终会等待。这就是为什么它不能替代双核之类的处理器。
CJM*_*CJM 16
超线程是两个线程能够在一个单线程内核上运行的地方。当有问题的内核上的线程停止或处于暂停状态时,超线程使内核能够在第二个线程上工作。
超线程使操作系统认为处理器具有两倍的内核数,并且通常会产生性能提升,但总体上仅在 15-30% 的范围内 - 尽管在某些情况下,实际上可能会出现性能下降(= <20%)。
目前,大多数 Atom 芯片和所有 i7(和 Xeon 等效芯片)都具有超线程,一些较旧的 P4 也是如此。就 Atom 而言,这是一种在不增加太多功耗的情况下提高性能的绝望尝试;就 i7s 而言,它将它们与 i5 系列芯片区分开来。
复杂的处理工作不会从 HT 中受益太多,但某些(简单的、高度多线程的)任务,例如视频编码,会从 HT 中受益。其实里面的东西不多。。。
为了扩展已经说过的内容,超线程意味着单个 CPU 内核可以维护两个独立的执行上下文并在它们之间快速切换,从而在硬件级别有效地模拟两个内核。
与普通的单核相比,多线程工作负载的速度优势不大。然而,这远不及拥有两个独立内核的好处。在性能方面,您最好将其视为单核多线程性能的小幅提升,而不是接近两个核的性能。速度提升的大小因工作负载而异——实际上,对于某些工作负载,性能提升相当不错。
超线程核心只有一个主执行单元,但与准备处理和维护执行状态的指令相关的 CPU 的某些其他部分是重复的。
处理器内核有一个指令管道——一个未来要执行的指令队列,该队列不断更新,为 CPU 执行该队列头部的指令做好准备。CPU 通过查看这些未来指令并在可能的情况下对它们进行一些简单的低级预处理(此类优化包括“乱序执行”和“分支预测”)来使用这些来优化执行速度。
超线程内核具有双指令流水线,这与第二组寄存器一起是您获得多线程工作负载速度优势的地方。
假设您的系统同时运行多个不同的线程。您的系统将每个线程分配给一个虚拟处理器,该线程将与其他线程共享虚拟处理器,但是每次虚拟处理器在这些线程之间切换时,它基本上都必须丢弃该线程的整个执行上下文并加载另一个线程的。
但是通过超线程,您的核心在任何给定时间只能保留一个线程的状态,您可以获得该核心同时保留两个线程的执行状态的能力,因此您可以在这两个线程之间切换惩罚是因为它不会丢弃管道或寄存器,并且另一个线程的管道和寄存器保持就绪和“热”状态,因此它们可以立即切换和使用。如果您运行的线程数多于虚拟处理器,您仍然需要进行硬切换,但频率较低,因为在给定时间您有更多的线程,其执行状态被保留。
小智 6
当单核可以用作双核时
它是超线程
英特尔的同步多线程实施被称为超线程技术或 HT 技术。
HT 技术使单个处理器从软件的
角度表现为多个逻辑处理器。这允许操作系统和应用程序将多个线程调度到逻辑处理器,就像
在多处理器系统上一样。
超线程允许单个处理器同时执行两个线程,但不是在所有条件下。
超线程不会使系统性能翻倍,它可以通过更好地利用空闲资源来提高某些重要工作负载类型的吞吐量,从而提高性能。在繁忙核心的一个逻辑处理器上运行的应用程序可以预期其吞吐量的一半多于它在非超线程处理器上单独运行时获得的吞吐量。超线程性能改进高度依赖于应用程序,并且由于许多处理器资源(例如缓存)在逻辑处理器之间共享,因此某些应用程序可能会因超线程而导致性能下降。
英特尔超线程技术使每个内核可以有两个逻辑处理器,共享内核的大部分资源,例如内存缓存和功能单元
超线程的目的是增加流水线中独立指令的数量;它利用了超标量架构,其中多条指令并行操作单独的数据
英特尔表示,超线程非常高效,因为它使用了原本闲置或未充分利用的资源。
链接:
维基百科
StackOverflow
多核编程 Digital_Edition 第 8 页
| 归档时间: |
|
| 查看次数: |
48282 次 |
| 最近记录: |