瀏覽單個文章
Adsmt
Golden Member
 
Adsmt的大頭照
 

加入日期: Feb 2004
您的住址: 從來處來
文章: 2,765
引用:
作者ianme
K8架構L1是2way,分成 Instruction跟Data,P4是8way的16KB data跟12Kups的trace(類似指令快取嗎??),L2方式也不同,資料存取首重效率,頻寬不見得是主因,這不是什麼單純比大小的東西吧?Intel好像也表示他們的L1做大不一定比較快。且K8是因為L2頻寬大約8xxxMB/s,記憶體就跑59xxMB/s(雙通DDR400),跟L2頻寬也差不了多少。相比之下P4就少很多了,從L2到memory差了不少。

這確實不只是頻寬的問題,而是 L1, L2 先天上的差異。
L1 是屬於 CPU 核心的一部份(現在 CPU 的 L2 也都是做在 die 裡,但並不屬於 CPU 核心),在速度上大約是 L2 的十倍左右,因此如果 access L1 miss 的話,就必須付出慘痛的代價(另外花十倍的時間去存取 L2),因此如果能有效地降低 L1 access 的 miss rate 對效能將有極大的影響。

看這裡的圖表
http://www.tomshardware.com/cpu/200...al_xeon-02.html
這張圖表很簡單地表示出了電腦各個記憶體階層的差異,就如在主記憶體上找不到資料而必須到硬碟上找時,因為硬碟的效能遠不如記憶體而必須付出慘痛的效能代價一樣。L1 的大小對於效能有決定性的影響,不過影響多少是很難一概而論的。因為光是 cache 的設計差異也會有很大的影響。(但至少以 P4, K8 的設計差異,L1 是有決定性的影響的,不然光是 pepeline stall 就足以造成 3GHz = 1.8GHz, 那 Intel 的那些工程師也太遜了點.......)

原則上 L1 越大越好是一定的,因為它是最快的,這個道理就像 RAM 愈大好愈好一樣。但前面講過 L1 的大小會影響核心時脈的提升,因此 L1 愈大,時脈提升會愈困難,反之亦然。這也是 P4, K8 所走的不同路線。
 
舊 2005-11-20, 10:39 AM #52
回應時引用此文章
Adsmt離線中