Notes about Intel Hyper-Threading Technology
本文将记录下作者对intel 超线程(Hyper-Threading)技术的理解。
Overview
根据sdm的描述,同一个core上的两个超线程其实是共享execution engine的。
每个超线程拥有独立的通用寄存器。每个超线程的具体资源状态需要查询spec,本文不在此赘述。
Execution Engine
Execution Engine涉及到具体的微架构。接下来将以Ice Lake Client microarchitecture为例来介绍下Execution Engine。
Execution Unit是需要额外关注的。由上图可知,在一个Execution Engine内拥有4个ALU,1个Slow Int。
- 同一个core上的两个超线程想同时执行
add
指令,这理论上是可行的,因为Execution Engine中有四个ALU Execution Unit(ALU可运行add
指令)。 - 同一个core上的两个超线程想同时执行
mul
指令,这理论上是不可行的,因为Execution Engine中只有一个Slow Int Execution Unit(Slow Int可运行mul
指令)。
参考资料: