有两个术语:
Temporal multithreading:在细粒度的时间多线程中,主处理器流水线可以包含多个线程,上下文切换有效地发生在管道阶段之间(例如,在barrel processor中)。桶处理器是一个在每个周期内在执行线程之间切换的CPU。
Super-threading:是一种多线程,它允许单个处理器执行不同的线程,而无需同时真正执行它们。1这可以将其限定为时间分片或时间多线程而不是同时多线程(SMT)。观察到,由于长延迟事件,处理器的功能单元偶尔会在执行来自一个线程的指令时处于空闲状态。超线程试图通过执行另一个线程的指令来利用其他未使用的处理器周期,直到前一个线程准备好恢复执行为止。
TM和ST之间的主要区别是,时间多线程(细粒度)使用C-slowing并在每个周期之间切换执行线程,但是超线程在线程之间切换而不是每个周期都只在处理器的时候切换由于长延迟事件,功能单元在从一个线程执行指令时保持空闲状态?
时间多线程(细粒度)和超线程之间有什么区别?
答案 0 :(得分:2)
时间多线程可以是细粒度或粗粒度多线程的形式。细粒度多线程以固定的细粒度间隔(例如每个周期)切换上下文。粗粒度多线程切换长延迟事件(例如LLC高速缓存未命中)的上下文。
另一方面,同时多线程没有任何线程切换的概念。多个线程可以并发运行。一张图片胜过千言万语。看看幻灯片5到7 here。它有所有3种方法的图片,并且很好地比较它们。
正如其他人所说的那样,超级线程并不是一个常见的术语,它对我来说似乎与粗粒度TM类似。