Cahce是什么?有什么作用?

什么是Cache?

Cache即高速缓冲存储器,也是存储系统中的重要组成部分,它用来缓存一小部分内存中的内容。

我们知道,程序和数据都是存放在内存中的,CPU 要执行程序就要访问内存。内存一般是用 SDRAM 芯片做的,出于技术和成本问题无法让内存的速度和 CPU 的速度一样快,通常内存的速度比 CPU 的速度慢很多。于是内存的速度成了制约系统性能的关键。

人们观察到 CPU 访问内存并不是完全随机的。在某个时间段内,CPU 总是访问当前内存地址的相邻内存地址,想象一下指令顺序执行和循环执行的情景,这种情景就是著名的程序局部性原理,人们在 CPU 与内存之间加了一个小而快的存储器,它的速度和CPU 的速度差不多,事实上它还是慢那么一点点,但是它比内存快得多。它就是高速缓冲存储器即 Cache。

Cache在CPU中的位置大概如下图,以ARM920T内核为例:
在这里插入图片描述

Cache的工作机制

Cache把整个内存分成大小相同的块,块的大小因不同 Cache 芯片的实现而不同。因此Cache 内部的地址就是由块号和块内偏移组成的。

逻辑上 Cache 的工作机制,如下图所示。可能与具体的实现有所差别。
在这里插入图片描述

Cache 的运行如下。

第 1 步:Cache 收到 CPU 访问内存的地址。

第 2 步:Cache 的地址变换逻辑,把 CPU 访问内存的地址分解成块号和块内偏移。

第 3 步:用第 2 步中分解的块号去找 Cache 内部的 Cache 块。

第 4 步:如果用第 2 步中的块号找到一个 Cache 块,即表示命中,然后用第 2 步中分解的块内偏移去索引该块中的数据,如果 CPU 是读内存操作,就把这个数据返回给 CPU。如果 CPU 是写内存操作,根据 Cache 的类型不同 Cache 的动作也不同。

第 5 步&

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值