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的容量越大,面积越大,相应的边长的就越长(假设是正方形的话),总有离核远的。

(从网上找的资料,如有侵权请联系作者删除)

发布了31 篇原创文章 · 获赞 21 · 访问量 8409

猜你喜欢

转载自blog.csdn.net/weixin_42366630/article/details/103969949
今日推荐