當前位置: 華文星空 > 知識

二級緩存為什麽不區分數據和指令?

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占據緩存)