【问题标题】:Why does hyper threaded or Multi-threaded CPU matter?为什么超线程或多线程 CPU 很重要?
【发布时间】:2014-08-30 01:20:02
【问题描述】:

由于单个 CPU 一次只能执行一条指令。基本上,多线程 CPU 所做的就是在单核内的多个线程之间来回切换。既然单线程和单核 CPU 可以通过进程之间的上下文切换来进行多任务处理,那么为什么多线程 CPU 很重要?

【问题讨论】:

  • 这个问题不适合 SO。 HT 只是一个下一级 ILP——它不是从单个线程中提取指令之间的并行性,而是在多个线程之间。
  • 为什么汉堡王在高峰期雇佣不止一名收银员?难道你不能让一个收银员从一个收银台跑到另一个收银台吗?
  • 首先,superscalar 处理器可以并行执行多条指令。其次,即使在标量处理器中,单个执行线程也会遇到来自hazards 的停顿。第三,软件上下文切换比硬件等价物慢得多,因此往往只用于与 I/O 相关的非常长的停顿。

标签: multithreading cpu


【解决方案1】:

你在这里混淆了很多东西...... 首先:硬件线程与软件线程几乎没有共同之处。据我所知,CPU 上只能有 n 硬件线程,而 n 是实际或虚拟 CPU 内核的数量(例如 ALU)

上下文切换允许错觉并行在一个单一的核心。 现在:由于不再有没有多个内核的 CPU,每个 CPU 都支持 MT,这有效地实现了一定程度的真正并行性 - 可以同时进行多个计算,但结果必须流水线化。

现代 CPU 甚至可以模拟额外的内核 - 这是可能的,因为结果交付和命令调度之间存在时间间隔,AFAIR - 这可以用于额外的计算......这就是所谓的hyperthreading可以 稍微提升你的表现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2013-07-23
    • 2014-07-21
    相关资源
    最近更新 更多