Multithreading 为什么超线程或多线程CPU很重要?

Multithreading 为什么超线程或多线程CPU很重要?,multithreading,cpu,Multithreading,Cpu,因为单个CPU一次只能执行一条指令。基本上,多线程CPU所做的是在单核内的多个线程之间来回切换。既然单线程和单核CPU可以通过进程间的上下文切换来完成多任务,那么为什么多线程CPU很重要呢?您在这里混淆了很多东西。。。 首先:硬件线程与软件线程几乎没有共同之处。据我所知,CPU上只能有n硬件线程,而n是真实或虚拟CPU内核的数量(例如ALU) 上下文切换是为了在单个核上实现并行性的幻觉。 现在:由于不再有没有没有几个核心的CPU了,每个CPU都支持MT,这有效地实现了某种程度上的实时并行性-可以

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

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

上下文切换是为了在单个核上实现并行性的幻觉。 现在:由于不再有没有没有几个核心的CPU了,每个CPU都支持MT,这有效地实现了某种程度上的实时并行性-可以同时进行多个计算,但结果必须是流水线的


现代CPU甚至可以模拟额外的内核-这是可能的,因为在结果交付和命令调度之间有一个时间间隔,AFAIR-这可以用于额外的计算。。。这就是所谓的超读。
。HT只是下一级ILP——不是从单个线程提取指令之间的并行性,而是多个线程之间的并行性。为什么汉堡王在繁忙时间雇佣不止一名出纳?你不能让一个出纳在一个寄存器之间运行吗?首先,处理器可以并行执行多条指令。第二,即使在标量处理器中,单个执行线程也会遇到来自的暂停。第三,软件上下文切换比同等硬件慢得多,因此往往只用于与I/O相关的很长的暂停。