Dimitrios Chasapis, Georgios Vavouliotis, Daniel A. Jiménez, Marc Casas
Barcelona Supercomputing Center, Texas A&M University, Universitat Politècnica de Catalunya
ASPLOS 2025
Presenter: wzw
Date: 2026-03-29
iTP 在 shared STLB 中优先保留 instruction translation, xPTP 在 L2C 中优先保留 data-PTE block 来补偿额外 page walk。LRU, 单线程 +18.9%, SMT +11.4%; 代价仅是 STLB 每项 4 bit, L2C/L2C MSHR 每项 1 bit。ITLB/DTLB -> shared STLB -> page walk -> L2C/LLC/DRAM。STLB miss 不只是多查一级表, 而是会把多个 PTE 访存压到 cache hierarchy 上。STLB replacement 仍接近 LRU, 或像 CHiRP 一样不区分 instruction/data PTE。L2C/LLC。STLB 或 cache, 而是要做 cooperative replacement。
SPEC 基本不敏感, 因为其 code footprint 多数已装进 ITLB。
STLB 中让 instruction translation 站在 recency stack 的高位。L2C 中尽量别踢掉保存 data PTE 的 block。STLB MPKI > T1 才启用 xPTP, 否则退回 LRU。
LRUpos; instruction 放 MRUpos - N。MRUpos; data hit 只到 LRUpos + M。N=4, M=8。
xPTP 给 L2C block 和 L2C MSHR 加一个 Type bit, 标记该块是否存放 data PTE。LRU victim 与“不含 data PTE 的备选 victim”。victim = LRUpos if ALT_VICTIMpos >= LRUpos + K else ALT_VICTIMpos, 其中 K=8。L1 TLB miss 后访问 shared STLB。STLB miss, STLB MSHR 记录 Type, 然后启动 page walk。L2C miss, xPTP 把 Type 传播到 L2C MSHR 与最终 L2C block。iTP 按 Type/Freq 决定 translation 在 STLB 的插入位置。1000 条动态指令统计一次 STLB MPKI; 高于阈值 T1 才开启 xPTP。| 结构 | 新增元数据 | 作用 |
|---|---|---|
STLB entry |
1b Type + 3b Freq |
驱动 iTP |
STLB MSHR |
1b Type |
记录 miss 来源 |
L2C block |
1b Type |
标记 data PTE |
L2C MSHR |
1b Type |
传播 Type |
768B。ChampSim, 5-level radix-tree page table, split PSC, x86 page walker。64-entry ITLB, 64-entry DTLB, 1536-entry STLB, 512KB L2C, 2MB LLC/core。120 个单线程 Qualcomm server traces, 75 个双硬件线程组合; 另用 SPEC 2006/2017 做 motivation。TDRRIP, PTP, CHiRP, 以及这些方案与 iTP 的组合; 还测了 SHiP/Mockingjay 和 2MB page 场景。
iTP 单独只有 +2.2%: 只偏袒 instruction translation 还不够。xPTP 后, 单线程 geomean 到 +18.9%; 明显高于 TDRRIP 9.3%, PTP 7.1%, CHiRP ≈ 0%。+11.4%, 说明收益不只来自“理想单核”。
STLB MPKI: 1.8 -> 1.6, STLB miss latency: 170.9 -> 92.3。L2C MPKI 虽上升 30.6 -> 46.5, 但 LLC MPKI 同时下降 13.8 -> 8.4。xPTP 降低 data page walk 的 cache 代价。
2MB pages, STLB 压力下降, 所有方案的收益都变小。iTP+xPTP 仍有 单线程 10.1% / 双线程 8.4% 提升。2MB page, 双线程下仍有 4.2%; 说明设计不是只对 4KB-only 人造场景有效。iTP+xPTP 把 instruction-side 的翻译代价转移到 data-side, 再用 cache policy 把副作用收回来。RTL/timing/power 级别的实现证据, 对产品化风险交代不足。Type 扩展成更细的 translation criticality class, 或把 xPTP 与 code-aware L2 policy 联合。