本
文
摘
要
缓存又称为高速缓存,是计算机存储器的一种,也是现代计算机硬件系统中重要的一环。
在CPU执行命令的时候,有时执行完一条指令,就要从内存中读取下一条指令。但是在内存中读取指令的速度,相对于计算机执行指令的速度太慢了,往往会造成这样一种现象:CPU运行时有99%以上的时间没有在计算,而是把时间花费在了等待从内存中读取的命令上。这样就造成了大量的资源浪费。
那么怎么解决这种资源浪费呢?生产一种高速内存,让他能够跟上CPU的指令执行速度呢?
当然可以,但是只是这样做的话,内存的生产成本就会随着速度的提高,呈指数上升,这就太得不偿失了。
那么有没有方法既可以控制成本,又可以提高速度呢?
答案就是在普通内存的上层,添加一个高速的内存,只不过这个高速内存容量十分的小,只能用来存储程序执行时最常用的指令。虽然高速内存的单位成本比普通内存高,但是因为新添加的告诉内存十分的小,价钱也是十分的合理。这个一小点高速的内存,就是缓存。
缓存把最常用的CPU指令存储起来,以备取用,当CPU开始读取指令时,会最先在缓存中查询,如果缓存中恰好有CPU要执行的指令,CPU就会在缓存中读取,这个过程叫做高速缓存命中,如果没有的话,才会把查询转到内存中去。
现代的CPU一般都有多级缓存,缓存随着级数的变大,容量越来越大,速度也越来越慢,一级缓存(L1)一般用来把已经解码的内存指令点入CPU的执行引擎,二级缓存(L2)一般用来存放最近使用过的内存字。访问一级缓存的时候,没有任何的延迟,但是随着缓存的级数增高,延迟越来越大。