代码之家  ›  专栏  ›  技术社区  ›  platelet

Skylake有环流探测器吗?

  •  1
  • platelet  · 技术社区  · 1 年前

    在阿格纳雾中 microarchitecture manual ,Skylake有一个环回缓冲区,根据描述,我猜这就是环流检测器。

    处理器有一个循环缓冲区,它只是从操作队列中回收操作,该队列具有 每个线程64个条目。循环缓冲区很少会使用队列的所有64个条目,但最多30个操作,有时最多40个操作的小循环将受益于循环缓冲区。根据我的测量,无论微小循环的指令长度如何,循环缓冲区都能提供每时钟4个操作的稳定吞吐量。

    当我使用uiCA模拟Skylake时,环形流检测器不起作用,但它在冰湖上起作用。

    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
    └───────────────────────┴────────┴───────┴───────────────────────────────────────────────────────────────────────┴───────┘
    

    uiCA(冰湖)

    ┌───────────────────────┬────────┬───────┬─────────────────────────────────────────────────────────────────────────────────────────┬───────┐
    │ 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
    └───────────────────────┴────────┴───────┴─────────────────────────────────────────────────────────────────────────────────────────┴───────┘
    

    Skylake有环流探测器吗?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Peter Cordes    1 年前

    几年前,Skylake的一次微码更新禁用了LSD,以修复一个涉及AH合并uop的角案例的正确性问题,即勘误表SKL150。Agner Fog写的东西是正确的,但还没有更新,也没有JCC的勘误表。