Skylake处理器是否具备Loop Stream Detector(循环流检测器)?
Skylake处理器是否具备Loop Stream Detector?
Skylake确实具备Loop Stream Detector(LSD),对应Agner Fog《微架构手册》中提到的Loopback buffer,相关描述如下:
该处理器具备一个循环缓冲区,可直接从µop队列(每线程64个条目)中回收µop。该循环缓冲区很少会占用队列全部64个条目,但包含最多30个µop(有时可达40个)的小循环可从中获益。据测试,对于极小循环,无论指令长度如何,该循环缓冲区均可提供稳定的4µop/时钟周期吞吐量。
你提到的uiCA模拟中Skylake的LSD未生效、但Ice Lake正常工作的情况,大概率是模拟工具的实现差异,或是测试循环未满足Skylake LSD的启用条件——Skylake的LSD对循环的µop数量、分支类型等有特定限制,若测试循环未触发这些条件,LSD就不会被激活。
uiCA模拟结果对比
Skylake模拟输出
┌───────────────────────┬────────┬───────┬───────────────────────────────────────────────────────────────────────┬───────┐ │ MITE MS DSB LSD │ Issued │ Exec. │ Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Port 6 Port 7 │ Notes │ ├───────────────────────┼────────┼───────┼───────────────────────────────────────────────────────────────────────┼───────┤ │ 1 │ 1 │ 1 │ 1 │ │ sub ecx, 0x1 │ │ │ │ │ M │ jnz 0xfffffffffffffffd ├───────────────────────┼────────┼───────┼───────────────────────────────────────────────────────────────────────┼───────┤ │ 1 │ 1 │ 1 │ 1 │ │ Total └───────────────────────┴────────┴───────┴───────────────────────────────────────────────────────────────────────┴───────┘
Ice Lake模拟输出
┌───────────────────────┬────────┬───────┬─────────────────────────────────────────────────────────────────────────────────────────┬───────┐ │ MITE MS DSB LSD │ Issued │ Exec. │ Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Port 6 Port 7 Port 8 Port 9 │ Notes │ ├───────────────────────┼────────┼───────┼─────────────────────────────────────────────────────────────────────────────────────────┼───────┤ │ 1 │ 1 │ 1 │ 0.5 0.5 │ │ sub ecx, 0x1 │ │ │ │ │ M │ jnz 0xfffffffffffffffd ├───────────────────────┼────────┼───────┼─────────────────────────────────────────────────────────────────────────────────────────┼───────┤ │ 1 │ 1 │ 1 │ 0.5 0.5 │ │ Total └───────────────────────┴────────┴───────┴─────────────────────────────────────────────────────────────────────────────────────────┴───────┘
内容的提问来源于stack exchange,提问作者platelet
相关产品推荐
相关产品推荐

