Intel Hyper-Threading Technology(6)

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

Intel® Hypter-Thread (Enhencement)

超线程技术在后续各代微架构中的实现比较稳定,有时会做一些增强或改进。对于没有提及到的改变,则认为是与前代微架构一致,没有变化。对于分区使用的资源,例如读存缓冲区,写存缓冲区,重排序缓冲区等,如果容量在后代微架构中有所增大,则每个逻辑处理器可以使用的条目数也相应的增大。

Nehalem Microarchitecture Enhencement

Intel Nehalem微架构支持超线程(HT)技术,它的超线程在每个处理器核中实现了两个逻辑处理器,这两个逻辑处理器共享大多数的执行资源和高速缓存资源。与Intel NetBurst微架构的超线程技术相比,Intel Nehalem微架构的超线程实现在下列方面有所不同:

  • 被复制(即双份,每个线程使用一份)的资源:寄存器状态(即程序员可见的x86寄存器),重命名的返回栈缓冲区,大页ITLB
  • 分区(即静态地每个线程使用一半)的资源:load缓冲区,store缓冲区,重排序缓冲区ROB,小页ITLB(即4KB页面ITLB)
  • 竞争共享(即各线程争抢使用)的资源:预约站,各级高速缓存,行填充缓冲区,DTLB0和二级TLB。
  • 交替使用(即每个线程按周期交替使用)的资源:为了保持公平,前端(取指/译码)交替地轮流供两个逻辑处理器使用。
  • 对超线程无感知的资源:执行单元

Haswell Microarchitecture Enhencement

  • 微指令队列中的循环流侦测器LSD可以侦测最多达56条微指令的循环。如果开启了超线程,队列中56条微指令条目由两个逻辑处理器共享使用。

注:Sandy Bridge在单个处理器核中提供了复制的28条目的微指令队列供每个逻辑处理器使用。

Skylake (Client) Microarchitecture Enhencement

  • 译码后微指令缓存(DSB,即Decoded ICache)可以每周期发送6条微指令给微指令队列IDQ(Instruction decoded queue,即uop queue)。

对于IDQ,如果开启了超线程,每个逻辑处理器可以保存64条微指令,前代是28条。如果没有开启超线程,单个处理器核可以保存64条微指令,前代是56条。

英文原文如下:

注:Skylake微架构的超线程技术中,IDQ这个资源是被复制的部件,即每个逻辑处理器使用各自的IDQ;前代微架构是分区的部件,即两个逻辑处理器各使用一半。

  • IDQ中的循环流侦测器LSD可以探测最多达64条微指令的循环,不管是否开启了超线程。注:在Skylake Server微架构中,IDQ中的LSD不知何故被禁用了。

猜你喜欢

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