当前位置: 华文星空 > 知识

二级缓存为什么不区分数据和指令?

2021-03-04知识

Cache都是要钱的。

L1D、L1I、L2从制造的角度上来说需要多花多少钱,通过缓存的面积和晶圆的报价、良率可以粗略估算,这里就不赘述了。

然后关键是,钱要花在刀刃上。

对于一般的benchmark和负载(比如SPECCPU),在Skylake级别的核心上,L1-I Miss + I-TLB Miss导致的性能损失只有4%不到,所以在L1I下面专门铺一层独立的L2I,是没有太大意义的。

所以L1I下面就直接接入L2,跟数据共享存储空间了。

然而,这个设计在数据中心服务器出货量快速增长的当下,是有挑战的。

我们看到的某top云计算厂商的几大核心业务,L1I Miss导致的性能损失可以达到接近10%,并且来自指令侧的压力是逐年加大的(因为code base也在逐年加大),所以圈内开始在讨论独立L2I的可能性,另外大家也可以看到Intel在RDT里面引入了LLC上的code和data划分存储(可以保障code占据缓存)