缓存到内存映射

时间:2016-10-22 05:24:54

标签: caching processor

首次设计缓存时,它是随机映射到某些内存地址还是在开头是空的,只有在处理器加载或存储指令后才填充内存/低级缓存数据?

我有这个问题,因为我已经为L1 Cache设计了RTL。那么我应该把它留空并等待任何处理器请求读/写或者只是用一些内存映射数据填充它然后相应地理解命中/未命中?

1 个答案:

答案 0 :(得分:1)

首先设计?你的意思是先开机吗?通常的做法是开始时所有标签都无效(因此,数据阵列或其他任何地方的内容并不重要。)

如果缓存中的所有数据都是随机初始化的,那么容易想象错误,因此有些行有效,不脏,并且内容与RAM / ROM中的实际内容不同,显然你不应该这样做。例如对于引导ROM代码,在这个不同步的L1中命中将是不好的!

如果在启动已知内容(如全零)时初始化了内存的任何部分,理论上可以初始化缓存标记和数据,以便缓存该内存。

如果您将缓存初始化为适用于与内存中的内容不匹配的任何位置,则需要将其初始化为脏,这会在线路被驱逐时触发回写无论CPU实际需要什么,所以没有任何意义。