本文是基于韦东山视频的学习笔记
cache的由来
先写一个函数,功能是,输出从1加到100的总和,我们来看一下反汇编是怎样的。
没错,函数使用for循环实现的。可以看到,在for循环里面,CPU在不断地读取类似的数据和指令(如ldr r3, [fp, #-16]等等)。
问题是,CPU不断地操作的sdram速度很慢啊,而且数据空间临近,命令也相似。可不可以说,先把类似的数据和指令放在一个高速缓冲区,然后CPU就和他交接(速度都很快嘛),从而加快速度呢?
答案是有的,那就是cache。
cache的流程
首先CPU首次读数据或写指令时,先看下cache有没有,没有就把数据包括附近的数据都存进cache,方便下次读取。