在L2驱逐中从L1缓存中缓存驱逐

时间:2013-02-05 10:55:46

标签: caching computer-architecture memory-size

我对内存系统遵循的策略有一个基本的问题。

考虑具有私有L1和L2缓存的核心。在L2缓存之后,我们有一条总线,在该总线上运行一致性流量。现在,如果地址(X)的缓存行从L2缓存中逐出,是否有必要从L1缓存中逐出该地址?

驱逐的原因可能是它有助于维持一致性协议的不变性[如果l2中的一行显示无效,则此核心不包含此地址]。

1 个答案:

答案 0 :(得分:12)

three different designs并且都在使用。

  1. 独占:L1缓存中的数据永远不会出现在L2缓存中。 L2缓存中的数据永远不会出现在L1缓存中。

  2. 包含:L1缓存中的数据也必须位于L2缓存中。

  3. 两者都没有:L1缓存中的数据可能存在也可能不存在于L2缓存中。

  4. 这些都有优点和缺点。包含方案允许高速缓存一致性协议忽略L1高速缓存 - 如果数据不在L2高速缓存中,则它不在L1高速缓存中。但独家方案最有效地利用了宝贵的缓存。

    包容性设计正变得越来越流行,因为更快的核心间同步变得比具有稍大的有效高速缓存大小更重要。