硬件多线程概念:
在处理器中多开辟几份线程状态,当线程发生切换时,处理器切换到对应的线程状态执行,在瞬间即可完成,这种方式叫做硬件多线程(Hardware Multithreading)。
硬件多线程分类:
1. 粗粒度(Coarse grained)
当处理器发现一个线程被长时间中断时,如Cache miss,这时处理器就切换到其他线程去执行。如下所示:
2. 细粒度
细粒度的硬件多线程是处理器每个cycle轮流发射(issue)不同线程的指令。下面是一个细粒度硬件多线程的调度示例:
细粒度优势:多线程直接的指令是不相关的,可以乱序并行执行。
3. 同时多线程
不管是粗粒度还是细粒度的硬件多线程,多线程都是分时发射的。在超标量处理器中,处理器能一次发射多条指令,如果这多条指令来自于不同的线程,即多个线程的指令同时被发射,那么这种工作方式就叫同时多线程(SMT,Simultaneous Multi Threading)。下面是一个同时多线段调度示例: