Intel Hyper-Threading Technology(2)

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85850343

Intel® Hypter-Thread (initial)

通过在单个物理处理器封装中实现多个逻辑处理器(即最早期的超线程技术),或者在物理处理器的核中实现多个逻辑处理器(即多核时代的超线程技术),Intel®超线程技术使得软件可以利用任务级别,或线程级别的并行性。

在最初的超线程实现中,单个物理处理器封装在软件角度上看起来是两个(或多个)逻辑处理器。在基于Knights Landing微架构的Intel Xeon Phi处理器中,每个处理器核可以支持4个逻辑处理器。绝大多数支持超线程技术的IA架构处理器,在每个处理器核中或者早期的单个物理处理器封装中,实现两个逻辑处理器。

在Intel的超线程实现中,每个逻辑处理器各自有一套完整的架构寄存器,同时共享单个物理器的资源(注:主要是执行引擎资源)。通过维护两个逻辑处理器的架构状态(即程序员可见的处理器状态,主要是架构寄存器),超线程技术使得软件(包括操作系统与应用程序)看起来像是在两个(物理)处理器上运行。换句话说,通常情况下,软件并不能感知到超线程技术的存在,软件并不知道自己是在两个物理处理器上运行,还是在两个逻辑处理器上运行。

在峰值计算需求时,通过在两个逻辑处理器间共享资源,使得超线程技术尤其适用于多处理器系统,与传统的未采用超线程的多处理器系统相比,可以在吞吐量方面提供额外的提升。

下图展示了一个典型的基于总线共享方式的对称多处理器系统(SMP),但是处理器采用了超线程技术。每个逻辑处理器可以执行一个软件线程,这样就允许两个软件线程同时运行在单个物理处理器上。这里“两个软件线程同时运行”指的是在同一个时钟周期内,逻辑处理器0上的线程可以执行“add”操作,同时逻辑处理器1上的线程可以执行另一个“add”操作和“load”操作;这些操作都在共享的执行引擎中同时运行。

在最初的超线程技术实现中,物理执行资源是共享的;架构状态是双份的,每个逻辑处理器一份。顺便提一下,高级可编程中断控制器APIC也是两个,每个逻辑处理器一个。

超线程技术能够带来的性能潜力主要取决于:

  • 操作系统与应用程序能否将进程或线程同时调度到逻辑处理器上执行。
  • 比起单线程(即指令级别)使用执行资源,能否在更高的级别上(即任务级别,或线程级别)使用片上执行资源;更高级别的资源利用率可以有更好的系统吞吐量。

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/85850343