5

有两个方面:时间多线程和超线程之间有什么区别?

  • Temporal multithreading:在细粒度多线程时间,主处理器流水线可以包含多个主题,使用上下文切换管道级之间有效地存在的(例如,在barrel processor)。桶式处理器是在每个周期之间在执行线程之间切换的CPU。

  • Super-threading:是一种多线程技术,它使不同的线程能够被单个处理器执行,而不会同时真正执行它们。 1这可以将其定义为时间分割或时间多线程,而不是同时多线程(SMT)。它的动机是由于长时间延迟事件,处理器的功能单元在执行来自一个线程的指令时偶尔处于空闲状态。超线程试图通过执行来自另一线程的指令来使用未使用的处理器周期,直到前一线程准备好恢复执行为止。

是TM和ST之间的主要区别,在于时空多线程(精细)使用C-slowing和执行的线程之间的切换在每个周期中,但线程间超级线程交换机并不是每一个循环,只有当处理器由于长时间延迟事件,功能单元在执行来自一个线程的指令时处于空闲状态?

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

+3

从一个*非常简短的*搜索(和*一些*熟悉计算机体系结构)看来,超线程首次在Shuichi Sakai等人的“Super-threading:Architecture and Software Mechanisms for Optimizing Parallel Computation “具有更广泛的线程硬件支持意识。这个术语在计算机体系结构社区中并不常用(据我所知)。时间多线程包括粗粒度(通常为开机事件MT)和细粒度(包括桶式处理和更灵活的逐周期调度)。 –

+0

@Paul A. Clayton ST很少使用。是否有可能是因为超线程(ST)仅为一个流水线(ALU)提供指令,但为多个流水线(ALU)提供同时多线程(SMT)?即ST仅利用失速(高速缓存未命中,分支错误预测或数据依赖性),但现代CPU也是超标量体系结构,而不是ST使用SMT来利用超标量体系结构。例如超线程 - 是英特尔专有的同步多线程(SMT)。 – Alex

回答

2

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

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

一张图片胜过千言万语。看看幻灯片5至7 here。它有所有3种方法的图片并且很好地进行比较。正如其他人所说,超线程并不是一个常见术语,它似乎与我的粗粒TM相似。

+0

谢谢,是的,这是很好的幻灯片。我们可以认为超线程与时态多线程(粗粒)相同。即多线程的类型如下所示 - 从CPU-core之间的共享任务到共享线程之间:**无**(完全软件多线程),** TM(细粒度)**桶式处理器**,TM (超线程)**,** SMT ** - 超线程,** CMT **(芯片多线程) - 具有共享昂贵资源的多核(某些内核中的单个FPU),** CMP **(芯片多处理器) - 具有共享最终级缓存和互连的多核。 – Alex

+0

我们可以说,现代的英特尔CPU,例如英特尔酷睿i7既是CMP又是SMT? – Alex

+1

@Alex,据我所知,是的。现在几乎所有的x86处理器都是CMP(我想不出任何单核x86 CPU)。 SMT也是如此。有些是2路SMT,有些是4路SMT。请注意,英特尔使用术语超线程来表示SMT。顺便说一句,看看斯坦福CPU数据库供您参考。 http://cpudb.stanford.edu/ – aminfar

相关问题