ser*_*dev 52 cpu windows-7 multi-core hyper-threading ubuntu
我的处理器是Intel Core i3-380m。如您所见,它有 2 个内核和 4 个线程。
尽管 Ubuntu 11.04 和 Windows 7 似乎都认为它是四核 CPU:


为什么是这样?是不是因为每个内核有 2 个线程,将 CPU 分成 4 个处理单元?
Kel*_*ari 48
原因是您的处理器支持超线程。超线程并不等同于额外的处理器,但可以真正提高多线程应用程序的性能。对于物理上存在的每个处理器内核,操作系统寻址两个虚拟处理器,并在可能的情况下在它们之间共享工作负载。
Mok*_*bai 43
如前所述,您有一个双核系统,每个内核有 2 个线程。
这是英特尔作为超线程销售的,并且多年来由不同的制造商以各种方式完成。
以最简单的形式解释它,每个 CPU 内核由一个“内核”和围绕该内核的各种架构组成,这些架构为每个线程保存状态和进程信息。单线程内核的架构可以一次保留 1 个线程的状态信息,超线程内核保留两组不同的状态信息,只要两个独立的进程需要内核的不同部分,就可以同时运行它们(这很可能发生,因为核心由多个不同类型的处理单元的多个单元组成)。
为了简化系统对 CPU 的看法,每个超线程都被视为一个单独的 CPU,因此双核、每核 2 线程的处理器显示为四核处理器。
操作系统也可以使用Core-parking(较新的 Intel 处理器中的一项功能)允许操作系统暂停超线程内核的一半,以便当不需要超线程的额外处理能力时,单线程性能增加,因为核心不再在 2 个线程之间共享它的缓存,现在可以将核心缓存完全专用于单个线程。
Joe*_*orn 12
事情比每一个时钟周期一条 CPU 指令的时代要复杂得多。
现在每个指令都有一个管道,由多个步骤组成。我听说过多达 41 个,尽管那是前一段时间,我不知道当前的 cpu 管道是什么样的。我确实知道,如果流水线足够长,您可以在最后一条指令完成之前沿着流水线开始一条新指令,有时在同一时钟周期内,这样您的单核就可以有效地同时做两件事。
不过,这里有一个技巧。您不能仅仅使用它来加快处理器咀嚼特定程序指令的速度。这涉及到一个正确性问题:下一条指令可能取决于前一条指令的尚未确定的结果。为了安全地利用长管道,芯片将向操作系统调度程序提供两个独立的处理器内核,并将交替指令发送到每个内核,以便同一“内核”的两条指令永远不会同时在管道中。这样我们就可以确保同时执行的任何指令不会相互干扰。这称为超线程。
这里值得注意的是,虽然超线程可以显着增加您从 CPU 中获得的工作量,但它远不如拥有那么多物理内核。根据您的工作量,这可能意味着 15% 的改进或 40% 的改进。在某些情况下,您甚至可能希望禁用该功能,以便其余内核对该内核的 L1/L2 缓存具有完全独占访问权限(有时这通过专用数据库服务器完成)。
当你的芯片标榜自己有 2 个内核和 4 个线程时,这意味着它是一个支持超线程的双核处理器。
| 归档时间: |
|
| 查看次数: |
13072 次 |
| 最近记录: |