我不确定英特尔的超线程(以及AMD的同等产品(有什么优势。假设在我的程序中,调度程序碰巧将两个线程放在一个核心上。如果核心是超线程的,有什么优势?假设两个线程都做相同的事情(相同的代码(,这会有区别吗。如果这种情况没有给超线程CPU带来优势,那么什么情况会呢?
在我们的程序中,我们使用操作系统线程,这是一种抽象。在硬件层面,它更为复杂。处理器需要做很多事情来运行命令,其中一些事情只是浪费了处理器的时间。
Wiki定义说超线程通过复制处理器的某些部分来工作,这些部分存储体系结构状态
所以我们可以很容易地想象这种情况:
- 处理器需要加载一些东西来注册
- 为了在加载更改执行上下文时不浪费时间到另一个线程,这样我们就可以赢得一定的处理器时间