一、Cache-高速缓存
1、Cache的位置
-
在主存和CPU之间;
![](https://i-blog.csdnimg.cn/blog_migrate/a87060dc0266336028ded80de1d63e90.png)
2、Cache出现的原因
-
为了突破 冯诺依曼体系的瓶颈;
-
CPU速度很快,而存储器主存的速度比CPU慢很多;如果用 冯诺依曼体系的话,CPU的性能很难得到充分的发挥;
-
所以设计出了多级存储中的 高速缓存,放在主存和CPU之间;有利于CPU发挥其性能;
二、Cache的组成
1、控制部分+高速缓存=Cache
2、
控制部分:负责控制信息;比如负责地址映射等相关的一些功能;
3、
高速缓存:负责相关数据的一些存储;
4、
Cache之所以可以突破冯诺依曼的瓶颈,主要是因为利用了计算机程序在运行时候的 一些局部性原理,有效的提高了CPU的性能;
-
举例理解:
-
例如一个for循环语句,循环运行1000次;在运行for循环的这段时间中,只会影响自身的程序,其他的程序是不受影响的,这就是执行时的局部性原理;利用计算机执行时的局部性原理,有效的提高了相关的执行效率;
-
就是说计算机刚执行、访问过的地方的数据,接下来这个刚访问的数据的访问效率会比较高;刚访问过的空间,接下来再访问时的效率会比较高,这就是计算机的局部性原理;
三、计算机执行指令的过程
![](https://i-blog.csdnimg.cn/blog_migrate/c7fdfc57aee8c018e948adf036deb1ec.png)
1、当CPU在运行的过程中需要数据的时候,会发出指令;这个指令会同时到Cache和主存;
2、如果CPU需要的数据在高速缓存中有(这个过程称为命中),如果高速缓存被命中了,就会把数据返回给CPU;因为告诉缓存的效率比主存快很多,所以CPU就会很快的获得所需数据,接着执行下面的程序;
3、如果CPU发出需要数据的指令后,高速缓存中没有所需数据,也就是没有命中,这是就只能是主存将数据返回给CPU了;
4、主存在将数据返回给CPU的过程中,会同时将数据在高速缓存中保留一份;这样CPU在下一次有需要访问相同数据时,就能直接从高速缓存中拿到所需的数据,这就提高了CPU的执行效率;
四、考法1:Cache的原理
![](https://i-blog.csdnimg.cn/blog_migrate/547d936bc2f71440127bfea07c7bb1fe.png)