关于缓存策略,我有些困惑。 我有一些基本的理解是不够的。

对于带有write-allocate(WBWA)的写回:

1.当写/读未命中时,如果它是脏块,我们首先将其发送(写)到较低级别。 使用写分配,我们将转到下一级缓存以查找该块并将其取回,然后再次写入当前级别。 所以写未命中,然后是写命中。 问题是,对于独占缓存,如果我们在较低级别的缓存中找到丢失的块并将其带回并再次写入当前级别,则我们在两个级别中都有两个副本,这与独占策略矛盾。 我们是否需要使低级缓存中的该块无效,以确保仅存在一个副本?

#1楼 票数:0

我们一直都知道,顶级条目是正确的条目,因此使低级条目无效将是多余的

  ask by user3431800 translate from so

未解决问题?本站智能推荐:

1回复

在Intel CPU上设置写缓存策略以回写

我试图将我的CPU缓存写入策略设置为“回写”,因此我需要将CR0.NW设置为1。 我写了一个内核模块: 但这不起作用。 dmesg给我: 你知道发生了什么吗? 难道我不能更改CR0.NW吗? 我的CPU:i7-4770K
5回复

回写与直写缓存?

我的理解是,这两种方法的主要区别在于,在“直写”方法中,数据会立即通过缓存写入主内存,而在“回写”方法中,数据是在“稍后”写入的。 我们仍然需要在“后期”等待内存,那么“直写”有什么好处?
1回复

如果缓存有回写策略,将有多少字节写入内存?

数组 A 包含 256 个元素,每个元素 4 个字节。 它的第一个元素存储在物理地址 4096。数组 B 包含 512 个元素,每个元素 4 个字节。 它的第一个元素存储在物理地址 8192。假设只有数组 A 和 B 可以缓存在初始为空的、物理寻址的、物理标记的、直接映射的、具有 8 字节块大小的
2回复

通过缓存写什么?

我过去实现过缓存。 以下是我在存储库之上实现服务层时所遵循的模式: 注意:上述伪代码中不考虑线程安全问题 我遇到了这个词 - 通过缓存写,并希望了解更多。 以下是我的问题: 通过缓存写什么? 如何通过缓存写入与正常缓存不同? 通过缓存写入时应该使用?
2回复

对于回写高速缓存策略,为什么在写入高速缓存之前应首先从内存中读取数据?

具有回写高速缓存的高速缓存,对高速缓冲存储器执行写操作并立即返回。 仅当数据已存在于缓存中时才会这样。 如果数据不存在于高速缓存中,则首先从较低存储器中取出数据,然后将其写入高速缓存中。 我不明白为什么在写入之前首先从内存中获取数据很重要。 如果要写入数据,则无论如何都将变为无效。
1回复

缓存策略

浏览器缓存 全页缓存 边缘侧包含(ESI) 应用程序输出缓存 应用程序对象缓存 数据库查询缓存 一些缓存策略-除了应用程序对象缓存之外,我几乎都了解它们。 如何确定哪一个最好? 我只想找出一个好的组合-以获得良好的性能和可伸缩性。
2回复

缓存包含属性 - 多级缓存

我无法理解多级缓存中缓存包含属性的概念。 根据我的理解,如果我们有 2 级缓存,L1 和 L2,那么 L1 的内容必须是 L2 的子集。 这意味着 L2 必须至少与 L1 一样大。 此外,当 L1 中的一个块被修改时,我们必须在 L2 和内存两个地方进行更新。 这些概念正确吗?
1回复

在多级缓存上缓存未命中

缓存L1和L2有2个级别。 如果两个级别上都有高速缓存未命中,则正在从内存中读取数据。 从主存储器读取数据期间,是否将数据首先首先输入到L2和L1高速缓存中,然后处理器从L1高速缓存中读取数据,或者将数据更新到L1和L2,并且同时读取到处理器?