Golden Cove的前端部分有了显著的加宽,此前苹果M1刚发布之际所有人还在大肆盛赞M1的架构有多宽。而且似乎基于AMD此前所述,x86变长指令做解码,要做前端拓宽是存在难度的。但Intel这次好像反手给了一记耳光。
Golden Cove的解码宽度从4-wide增加到了6-wide,以及解码宽度增加50%,虽然我们不清楚Intel具体是怎么做的,不过对x86而言这必然会增加前端电路的复杂度。此外配套fetch宽度每周期增至32字节,fetch带宽翻倍。
μop cache自2.25K条目增加至4K,发出从6μop/周期增至8μop/周期——跟上主流步伐的节奏,增加命中率并进一步减少需要走解码路径的开销。μop队列单线程队列容量跨越至144条目,开启超线程则小幅增至72条目。I-Cache仍为32KB,不过iTLB 4K页从128条目增至256条目,2M/4M页增至32条目,实现更大代码覆盖能力,针对大代码也能实现延迟表现的提升。
解码宽度加宽以后,指令预测机制自然也需要进一步优化,否则会面临预测错误后更大的惩罚。Intel提到有关这方面的努力,主要包括L2分支目标缓存(BTB)结构由5K条目增长至12K条目,近2.5倍的大幅提升,比隔壁家的Zen 3大了很多。Intel在这页PPT上标注“smarter”,意指分支预测精度提升。演讲中提到“更智能的代码预取机制”,“用机器学习算法,动态缩放其(BTB)尺寸,不需要的时候就关闭多余容量来节电,需要的时候开启额外容量以提升性能”。
接着说Golden Cove的存储子系统。新增了一个port 11执行端口,带load AGU,提升load操作带宽,每周期3x256bit load操作,针对数据中心维持从L1的2x512bit load操作。
为实现进一步的存储并行度,Intel提到其“内存子系统学习如何想必以前,以更高的效率识别独立的load和store操作。识别到冲突以后,可立即响应,实现极低限度扰乱下的恢复。”包括存储数据直接load操作的时延优化等,虽然具体的也没怎么细说。除此之外,L1-D TLB相比之前增大50%到96条目,L1-D cache本身可并行fetch更多25%的未命中。
另外load与store buffer增大,增大多少未知;L1-D fill buffer由12条目增多至16。L1-D prefetcher提升方面据说有很大幅度的提升(confidently lock on a stride patterns…extended its reach 8x compared to the previous generation);以及Page walker由2增至4,主要对大型、不规则数据集的工作负载有显著提升。