cpu中的内核和线程

cpu中的内核和线程

问题描述:

我有一个有四个内核的CPU,但是规范显示它有四个内核和八个线程。这怎么可能?我可以平行运行八个线程吗?cpu中的内核和线程

+0

http://en.wikipedia.org/wiki/Hyper-threading or ... CPU的规格。 – 2012-02-13 20:14:47

+0

谷歌:超线程 – Mysticial 2012-02-13 20:14:51

+3

我总是惊讶地看到人们投票回答了一个问题,却不知道为什么。我知道这个问题很简单,可以通过简单的谷歌搜索来回答,但仍然可以。 – Nettogrof 2012-02-13 20:26:43

这个可以欺骗你。由于核心资源的虚拟重复,英特尔的HT技术确实允许操作系统为每个物理核心安排两个线程。

“技术上”,您可以运行八个线程。注意引号。这项技术的主要目的是不让CPU资源浪费(例如,如果你的指令流水线有四条指令的宽度,确保它几乎总是得到指令,因为一个线程很少能达到这个目的)。但是,如果您的系统没有足够的资源来适应您的线程完成的计算,那么实际上并没有任何好处,或者更糟糕的是,您的性能会降低。例如,假设您的CPU只有四个浮点单元,而您的八个线程都在进行浮点计算。在这种情况下,你不能有平行性。另一种情况是当你所有的线程都在进行内存密集型计算时。从CPU到主内存的总线将饱和,并且八个线程绝对不会像您期望的那样并行执行它们的代码。关于HT的缺陷检查这篇文章的更多信息:http://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/

此外,请确保您了解系统中的各种线程级别。我讨厌引用自己,但这里有:multithreading on dual core machine?

根据CPU类型的不同,每个内核可以有两个虚拟CPU(或线程)。效果使用Hyperthreading实现。

也许你应该在超线程看一看:

http://en.wikipedia.org/wiki/Hyper-threading

我猜你有一个超线程机器每个核心有两个处理器。

是的,它可以同时运行8个线程。

它被称为superscalarCPU,其中流水线在每个内核中被复制,允许它并行地分派多条指令。请注意,英特尔称之为超线程,但它基本上是一样的。