单核中同时执行线程是否有限制?因为,在英特尔处理器的规格中,他们提到如果处理器有4个内核,则可以同时执行8个线程。请澄清,如果它完全是abusrd,那就好好承担
答案 0 :(得分:1)
4核处理器只能同时运行4个线程......
... ...技术上
......或者至少过去是真实的。
[现代] CPU的管道有几个存储操作的站。例如,当一个将存储器提取到寄存器中的指令出现时,它被分配给具有所有依赖性和诸如此类的所有的站。向该数字添加1的后续指令存储时依赖于获取操作,该操作占用该站,直到获取完成为止。
当指令被送入CPU时,它们被分配给站。但是,只有很多内存提取站,所以如果提取进入但是提取站被占用,它会等到提取完成。
这是一个线程发生的事情。
然而,通常情况下,两个线程正在做不同的事情:一个可能正在做一堆内存获取操作,然后是整数算术操作,然后是内存存储操作,而另一个线程可能只想做一堆浮点算术运算...如果只允许第一个线程执行,则浮点算术运算站将处于空闲状态,未使用。
那么为什么不使用它们?
简而言之,这就是超线程。
因此,如果你有线程做同样的操作,你实际上有四个线程在任何给定的时间运行。
如果线程执行不同的操作,则可以将吞吐量提高到理论上最多可以在任何给定时间运行的八个线程。
您的线程越相似,越接近4;你的线程越不同,你就越接近8。