cache的基本原理

cache的基本原理

cpu从内存一条一条取指令

但是cpu速度很快,内存速度很慢

我们把使用频率高的代码读取到cache里与cpu交互,因为cache速度很快,这样内存和cpu的速度矛盾会被缓和

内存大概37GB/s

cache大概1000GB/s

如今的cache被集成在cpu内部,用sram实现,由于集成度不高,没法做的很大,因此容量肯定不会很大

空间局部性

在最近的未来要用到的信息,可能是与现在正在使用的信息在存储空间上邻近

时间局部性

在最近的未来要用到的信息,可能是现在正在用到的信息

cache命中率

cpu要找到某个功能的代码,

有两种情况

会同时在cache和内存中找

此时设cache的命中率为H

查找时间为t

那么查找时间为

\[t=Ht_c+(1-H)t_m \]

如果不是同时,而是先找cache,再去内存找

\[t=Ht_c+(1-H)(t_c+t_m) \]

![image-20250910211036273](/Users/tusier/Library/Application Support/typora-user-images/image-20250910211036273.png)

局部性的规则

将主存分,如每1KB为1块,主存和cache之间以块为单位进行信息交换

在操作系统中,这样一个也被称为“页/页面/页框” cache的也被叫做cache行

![image-20250910211605436](/Users/tusier/Library/Application Support/typora-user-images/image-20250910211605436.png)

posted @ 2025-09-11 08:48  是我,米老鼠  阅读(4)  评论(0)    收藏  举报