Temporal多线程和超线程有什么区别?

Ale*_*lex 5 parallel-processing cpu concurrency multithreading cpu-architecture

有两个术语:

  • 时间多线程:在细粒度时间多线程中,主处理器流水线可以包含多个线程,其中上下文切换有效地发生在管道级之间(例如,在桶处理器中).桶处理器是在每个周期内在执行线程之间切换的CPU.

  • 超线程:是一种多线程,它允许单个处理器执行不同的线程,而无需同时真正执行它们.1这将其定性为时间切片或时间多线程而非同步多线程(SMT).观察到,由于长延迟事件,处理器的功能单元偶尔会在执行来自一个线程的指令时处于空闲状态.超线程试图通过执行来自另一个线程的指令来利用其他未使用的处理器周期,直到前一个线程准备好恢复执行.

TM和ST之间的主要区别在于,时间多线程(细粒度)使用C-slowing并在每个周期的执行线程之间切换,但是超线程在线程之间切换而不是每个周期并且仅在处理器的功能单元处于空闲状态时切换由于长延迟事件而从一个线程执行指令?

时间多线程(细粒度)和超线程之间有什么区别?

ami*_*far 2

时间多线程可以是细粒度或粗粒度多线程的形式。细粒度多线程以固定的细粒度间隔(例如每个周期)切换上下文。粗粒度多线程在长延迟事件(例如 LLC 缓存未命中)上切换上下文。

另一方面,同时多线程没有任何线程切换的概念。多个线程可以并发运行。

一张图片胜过千言万语。请查看此处的幻灯片 5 至 7 。它有所有 3 种方法的图片,并对它们进行了很好的比较。

正如其他人所说,超线程不是一个常用术语,对我来说它似乎类似于粗粒度TM。