果然L2無法做共享式架構
自K7起,為了提高快取命中率,L1有的資料L2就不會有,讓快取浪費減至最低,K8自然承襲這項設計。
intel一直採用傳統式的設計,L1有的東西L2也會有,所以一直維持小L1也是為了避免浪費。
傳統設計到了多核心時代反而變成好東西,因為L1讀取資料後L2資料還在,所以L2可以共享不會發生事情。
而K7/K8的設計,L2就無法共享了,假設CPU1讀取了一筆資料到L1,於是L2將這筆資料刪除,然後當CPU2要同樣的資料時,發現L2沒有,於是啟動記憶體控制器去讀外部記憶體,這樣會造成性能下降。
看圖可以發現,L2快取小了很多,原本K8的L2是佔去一個核心一半以上的空間的,猜測K8L每個核心的L2大概是128KB。
說真的,這樣的設計跟intel比起來真是非常浪費,因為在同一時間四顆核心所要存取的資料其實差不多,AMD的大L1+L2的設計浪費了很多電晶體,這在四核心時代就會有點成本壓力了,到未來更多核心時代會越來越難塞核心。
遲早AMD要取消L2縮小L1的,但這樣就等於重新設計CPU了。在K10出來前,AMD會過得很辛苦
