首页 > 编程知识 正文

cache是干什么用的,Cache的作用

时间:2023-05-03 17:35:38 阅读:281347 作者:1827

cache是一种内存,叫高速缓存,英文单词的意思就是缓存。

从容量来说:CPU < 寄存器 < cache < DDR

从速度来说: CPU > 寄存器 > cache > DDR

从价格来说: CPU > 寄存器 > cache > DDR

cache的存在,是因为寄存器和DDR之间速度差异太大,DDR的速度远不能满足寄存器的需要(不能满足CPU的需要,所以没有cache会拉低整个系统的整体速度)

当然,cache是越大越好,如果cache足够大,DDR都可以不要了,而且系统还跑得飞快,但是cache贵啊,不可行。

整个系统中cpu的供应链由:寄存器+cache+DDR+硬盘/FLASH四阶组成,这是综合考虑了性能、成本后得到的妥协的结果。

Icache :指令缓存,用来缓存指令。(instruction cache)

Dcache : 数据缓存,用来缓存数据。与MMU有关系。

L2 cache  : 二级缓存

cache的意义:指令平时是放在硬盘/flash中的,运行时读取到DDR中,再从DDR中读给寄存器,再由寄存器送给cpu。但是DDR的速度和寄存器(代表的 就是CPU)相差太大,如果CPU运行完一句再去DDR读取下一句,那么CPU的速度完全就被DDR给拖慢了。解决方案就是icache。 icache工作时,会把我们CPU正在运行的指令的旁边几句指令事先给读取到icache中(cpu设计有一个基本原理:代码执行时,下一句执行当前一句代码旁边代码的可能性要大很多)。当下一句CPU要指令时,cache首先检查自己事先准备的缓存指令中有没有这句,如果有就直接拿给CPU,如果没有则需要从DDR中重新去读取拿给CPU,并同时做一系列的动作:清缓存、重新缓存。

icache的一切动作都是自动的,不需要人为干预。我们所需要做的就是打开/关闭icache。

icache关闭会使指令执行速度变慢。

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。