cpu中的核心和线程

时间:2012-02-13 20:13:16

标签: multithreading cpu

我有一个带有四个内核的CPU,但规范显示它有四个内核和八个线程。怎么可能?我可以实际并行运行八个线程吗?

5 个答案:

答案 0 :(得分:2)

根据CPU类型,每个核心可以有两个虚拟CPU(或者您放置的线程)。使用Hyperthreading实现效果。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

“技术上”你可以运行8个线程。注意引号。这项技术的主要目的是不要浪费CPU资源(例如,如果你的指令管道有四个指令的宽度,请确保它几乎总是得到指令,因为一个线程很少能实现这一点)。

但是,如果您的系统没有足够的资源来容纳线程完成的计算,那么您实际上没有任何好处,或者更糟糕的是,您的性能会降低。例如,假设您的CPU只有四个浮点单元,而所有八个线程都在进行浮点计算。在这种情况下,您不能具有并行性。另一种情况是所有线程都在进行内存密集型计算。从CPU到主内存的总线将饱和,并且八个线程肯定无法按预期并行执行其代码。有关HT的陷阱的更多信息,请查看以下文章:http://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/

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

答案 3 :(得分:0)

也许你应该看看超线程:

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

答案 4 :(得分:0)

它被称为superscalar CPU,其中管道在每个核心中重复,允许它并行分派多个指令。请注意,英特尔将其称为超线程,但它基本相同。