Temporal 多线程和超线程有什么区别?
What is the difference between the Temporal multithreading and Super-threading?
有两个术语:
Temporal multithreading: In fine-grained temporal multithreading, the main processor pipeline may contain multiple threads, with context switches effectively occurring between pipe stages (e.g., in the barrel processor)。桶式处理器是一个 CPU,它在每个周期的执行线程之间切换。
Super-threading: is a type of multithreading that enables different threads to be executed by a single processor without truly executing them at the same time.1 这将其限定为时间片或时间多线程,而不是同步多线程 (SMT)。它的动机是观察到由于长延迟事件,处理器的功能单元在执行来自一个线程的指令时偶尔会闲置。超线程试图通过执行来自另一个线程的指令来利用其他未使用的处理器周期,直到前一个线程准备好恢复执行。
是 TM 和 ST 之间的主要区别,时间多线程(细粒度)使用 C-slowing 并在每个周期的执行线程之间切换,但超线程不是每个周期都在线程之间切换,而是仅当处理器的功能单元因长延迟事件而在一个线程中执行指令时处于空闲状态?
临时多线程(细粒度)和超线程有什么区别?
时间多线程可以是细粒度或粗粒度多线程的形式。细粒度多线程以固定的细粒度间隔(例如每个周期)切换上下文。粗粒度多线程在长延迟事件(例如 LLC 缓存未命中)上切换上下文。
另一方面,同时多线程没有任何线程切换的概念。多个线程可以 运行 并发。
一图胜千言。查看幻灯片 5 到 7 here。它有所有 3 种方法的图片,并很好地比较了它们。
正如其他人所说,超线程不是一个常见的术语,在我看来它类似于粗粒度TM。
有两个术语:
Temporal multithreading: In fine-grained temporal multithreading, the main processor pipeline may contain multiple threads, with context switches effectively occurring between pipe stages (e.g., in the barrel processor)。桶式处理器是一个 CPU,它在每个周期的执行线程之间切换。
Super-threading: is a type of multithreading that enables different threads to be executed by a single processor without truly executing them at the same time.1 这将其限定为时间片或时间多线程,而不是同步多线程 (SMT)。它的动机是观察到由于长延迟事件,处理器的功能单元在执行来自一个线程的指令时偶尔会闲置。超线程试图通过执行来自另一个线程的指令来利用其他未使用的处理器周期,直到前一个线程准备好恢复执行。
是 TM 和 ST 之间的主要区别,时间多线程(细粒度)使用 C-slowing 并在每个周期的执行线程之间切换,但超线程不是每个周期都在线程之间切换,而是仅当处理器的功能单元因长延迟事件而在一个线程中执行指令时处于空闲状态?
临时多线程(细粒度)和超线程有什么区别?
时间多线程可以是细粒度或粗粒度多线程的形式。细粒度多线程以固定的细粒度间隔(例如每个周期)切换上下文。粗粒度多线程在长延迟事件(例如 LLC 缓存未命中)上切换上下文。
另一方面,同时多线程没有任何线程切换的概念。多个线程可以 运行 并发。
一图胜千言。查看幻灯片 5 到 7 here。它有所有 3 种方法的图片,并很好地比较了它们。
正如其他人所说,超线程不是一个常见的术语,在我看来它类似于粗粒度TM。