目录
一、Cache基本概述
CPU的读取指令速度很快,主存的速度很慢,如果快速的CPU每一次都从主存读取数据,会被主存拖累,降低执行效率。
Cache:解决主存和CPU速度不匹配问题
1.Cache :
Cache会将CPU经常访问的数据复制一份,由于Cache的读写速度更快,CPU可以直接从Cache当中直接读取相应的数据指令。现在的计算机Cache通常被集成到CPU的内部,使用SRAM实现,提升速度的同时增加了成本。正因为SRAM的集成度很低,在芯片的大小做的不能太大的情况下,导致在一定大小上我们的Cache存储容量不会很大,会远小于主存。那怎样使CPU能从存储容量如此小的Cache中读到相应的数据呢?
2.局部性原理
Cache(高速缓存)的工作原理正是基于局部性原理。Cache位于CPU和主存之间,容量小但速度快,用于存储当前最活跃的程序和数据。当CPU需要访问数据时,会首先检查Cache中是否存在该数据。如果Cache中命中(即数据存在),则CPU可以直接从Cache中读取数据,从而大大缩短访问时间;如果Cache中未命中(即数据不存在),则CPU需要从主存中读取数据,并将其加载到Cache中。
Cache的局部性原理主要包括时间局部性原理和空间局部性原理两个方面。
① 时间局部性原理
时间局部性原理指的是,如果一个数据项正在被访问,那么在近期它很可能会被再次访问。这意味着在相邻的时间里,CPU很可能会重复访问同一个数据项。这种原理是基于程序执行的连续性,即程序在执行过程中,会多次访问同一数据或执行同一段代码。(参考for循环)
② 空间局部性原理
空间局部性原理则是指,在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的。换句话说,CPU在访问某个存储单元时,其附近的存储单元也很可能会被访问。这种原理是基于程序和数据在存储空间上的布局特点,即程序和数据往往以连续或接近连续的方式存储在内存中。
二、Cache性能分析:
tc:为访问一次Cache所需时间
tm:访问一次主存所需要时间
命中率H:CPU欲访问的信息已在Cache中的比率
缺失(未命中)率M=1-H
Cache-主存系统的平均访问时间t为
t1 = Htc+(1-H)(tc+ tm) (先访问cache,未命中后再访问主存)或者
t2 = Htc+(1-H)tm(同时访问Cache和主存,若Cache存在立刻停止访问主存)
由此可见使用t2这种方式访问效率更高
标签:主存,Cache,基本概念,访问,原理,局部性,CPU,高速缓冲存储器 From: https://blog.csdn.net/2202_76092587/article/details/142489769