一、什么是缓存?
缓存是介于中央处理器和主存储器之间的高速小容量存储器,不属于主存的一部分。 (速度快、容量小、由硬件实现)
缓存用来存储一些常用或即将用到的数据或指令,当CPU需要这些数据或指令的时候直接从缓存中读取,这样比CPU到内存甚至硬盘中读取要快得多,能够大幅度提升CPU的处理速度(节省时间/提高效率)。
二、为什么要有缓存?
由于CPU的存取速度很快,而内存的速度很慢,为了不让CPU每次都在运行相对缓慢的内存中操作,缓存就作为一个中间者出现了。有些常用的数据或是地址,就直接存在缓存中,这样,下一次调用的时候就不需要再去内存中去找了,CPU首先会在Cache中读,如果Cache命中,也叫Cache hit,CPU就可以极快的得到该地址处的值。如果cache miss 也就是没有命中,它就会通过总线在内存中去读,并把连续的一块单元加载到Cache中,下次好使用。
缓存的大小也是很小的,不能存放大量的数据,并且缓存中存放的数据会因为CPU的访问而被替代,比如某个数据开始被cpu频繁访问,但后来不再频繁,那这个数据的空间会被其他访问频繁的数据所占据。缓存又可以分为一级和二级缓存,一级的速度大于二级的速度。
因此CPU在访问数据时,先到缓存中看有没有,没有的话再到内存中读取。
形象比喻:做手术时,医生(CPU)从护士手里取手术刀等器件