只要有想见面的人,自己就不再是孤单一人。 收藏本站
登陆 / 注册 搜索

阅读: 6.7K   回复: 3

CPU一级缓存是什么?

[复制链接]
小执念 古黑浩劫论坛大牛 2015-11-28 07:36 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员 五周年纪念
  一级缓存是相对于二级缓存来命名的,它是直接与CPU数据总线相连,传输速度接近于CPU处理速度。而二级缓存主要是进一步过度一级缓存和内存直接的传输速度差。
# |0 @1 G, k" |+ Q
" w7 `/ q+ ?, D, h( u
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾。

& o2 H1 E0 |9 R) N" B9 a$ i1 E8 {+ T6 B0 S$ K0 F
/ E5 e2 F: a) E% Z) D" ?7 P7 p# F
  缓存简介

# ]! u% e3 {" ?" B1 O! T9 I, p  缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
! `9 t7 e# {* i9 K# T2 B9 L
5 w# G' i+ l( l! o% h

6 Z' P' d* @2 B0 B; h* C6 l  缓存作用1 [  _+ e2 M: T" m; S
  在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存 内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。( Z& D# x. ~1 I7 e' G
  l9 l8 ?3 ^% q+ u4 F- N- @
# b! ~  Y, ~7 `; K' d" e
  工作原理# T! K3 u/ B7 i  x
  缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
( A) Q$ b, Z( U3 Z
. u. l, r+ F' X

* j% h4 J: I, Q7 T  正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存
3 }& d  p! N! C
! c1 m* A/ q5 K7 N( Z& d- `  性能优缺点
3 d/ p; x0 j8 ?. x/ F  X* R/ y
  目前缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静态存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将缓存容量做得太大的重要原因。

0 o! G1 p. f1 u( \3 x" X0 K! L0 Z

0 U" l5 d$ Y6 }. R3 x$ U/ J7 Z7 @  它的特点归纳如下:优点是节能、速度快、不必配合内存刷新电路、可提高整体的工作效率缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。
  O- H8 n8 \8 y' }9 ]- m! }" Y% K* y* J& V( a, f1 c- P1 U

$ h/ e! Q) T  m" k  一级缓存的重要性4 O. a# c2 b* `! d0 K% s2 {
  按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。" k# n- d' c. y1 D" D
8 J" Q2 I7 {/ h6 }' V
0 _7 W& h/ G( ?* ^1 }& w( w
当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。

. D, @0 d4 @1 L( s  n& L  u, V! I9 e' \' O6 w  K( C0 \
3 f, U5 t  ]8 i; O: S, Z8 g# j# W
  一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
( q7 I, n  x$ H2 A4 \& }
8 N  c  E+ Z$ `9 o
  ~1 V' J- c( e5 [$ ~- o1 `
  位置

2 \- y* C& D, A; n7 e2 L1 [  一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。' _2 \9 I6 q0 ]' _9 G$ V, U# z* t

0 W& y* [$ y3 z3 [

+ I5 d8 i  j; P: L# W* T  组成部分# |: x: F" x; j- H9 E4 g
  一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。
8 `( ]4 X9 A, H* q: |6 k
6 [! j& ^" Y  J

) N1 n1 S. E2 b  二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB 64KB来表示,其余的CPU的一级缓存表示方法以此类推。
& b/ U6 n7 @, t' o4 s% y
上一篇
下一篇

巴黎环抱的花海 「龙战于野」 2017-9-10 19:01 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

在遇到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于两汉的歌赋,我曾经惊讶于李杜的诗才,我曾经流连于宋元的词曲。但现在,我才知道我有多么浅薄!楼主,你的高尚情操太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。让我深深感受到了人性的伟大。楼主的帖子,就好比黑暗中刺裂夜空的闪电,又好比撕开乌云的阳光.
微雨黄昏 「出类拔萃」 2018-5-4 23:59 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

  
浅笑歌 「出类拔萃」 2018-5-6 07:31 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我真想亲口管你爷爷叫声:爹!
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表