lmbench測試知識(自用)

定義:
lmbench:測內存延遲
memory:電腦存儲器。
cache: 是一種又小又快的高速緩衝存儲器。它存在的意義是彌合Memory與CPU之間的速度差距。
TLB:本質就是Cache中的page table。

單路雙路通常是指的線程數。
雙線程的意思就是一個物理CPU虛擬成兩個CPU.有兩個線程同時運行。相對來講性能會有所提升。而且在系統裏顯示CPU是兩個。


爲了加快存取速度,在Cache中,會創建一個最近常使用的page構成的table,相當於把page table的一部分內容放入Cache中,減少到內存中讀取page table的效能損耗。和page table不同的是,TLB將 virtual page number 存放在了tag中,data中放的就是physical page number,同樣也會有Dirty、ref、valid bit。TLB相當於page table的子集,如果Virtual address在TLB中hit,在page table中也一定hit。
CPU中有好幾個等級的緩存。通常L1和L2緩存都是每個CPU一個的, L1緩存有分爲L1i和L1d,分別用來存儲指令和數據。L2緩存是不區分指令和數據的。L3緩存多個核心共用一個,通常也不區分指令和數據。 還有一種緩存叫TLB,它主要用來緩存MMU使用的頁表,通常我們講緩存(cache)的時候是不算它的。

L1/L2 Cache都是用SRAM做爲存儲介質,爲什麼說L1比L2快呢?這裏面有三方面的原因:

  1. 存儲容量不同導致的速度差異

L1的容量通常比L2小,容量大的SRAM訪問時間就越長,同樣製程和設計的情況下,訪問延時與容量的開方大致是成正比的。

  1. 離CPU遠近導致的速度差異

通常L1 Cache離CPU核心需要數據的地方更近,而L2 Cache則處於邊緩位置,訪問數據時,L2 Cache需要通過更遠的銅線,甚至更多的電路,從而增加了延時。

L1 Cache分爲ICache(指令緩存)和DCache(數據緩存),指令緩存ICache通常是放在CPU核心的指令預取單遠附近的,數據緩存DCache通常是放在CPU核心的load/store單元附近。而L2 Cache是放在CPU pipeline之外的。

爲什麼不把L2 Cache也放在很近的地方呢?由於Cache的容量越大,面積越大,相應的邊長的就越長(假設是正方形的話),總有離核遠的。

(從網上找的資料,如有侵權請聯繫作者刪除)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章