【问题标题】:What will happen on dcache in backends when one physical address mapped different virtual address?当一个物理地址映射不同的虚拟地址时,后端的 dcache 会发生什么?
【发布时间】:2017-09-16 11:52:46
【问题描述】:

我对 arm 的缓存问题感到困惑。 在这里,我映射了相同的块或物理内存,并在没有 O_SYNC 的情况下获得了两个不同的虚拟地址,这两个都将被缓存: (假设我只访问两者的前 4 个字节)

  1. 如果我读取两个地址,将加载多少个 dcache 条目,一个还是两个?
  2. 如果我在一个虚拟内存上进行了写操作,有多少 dcache 条目会被标记为脏,一个或两个(如果必须有 dcache 条目)? dcache 条目的后端发生了什么?

谢谢。

【问题讨论】:

    标签: linux arm memcached


    【解决方案1】:

    最近的 ARM 被指定为好像缓存被物理标记(例如,由物理地址标识的缓存行),因此多个别名虚拟地址(即使在单独的进程中)应该反映相同的物理缓存行。

    这不是普遍正确的; ARM-v7A 架构之前的旧 ARM 内核支持虚拟标记缓存。

    【讨论】:

    • 谢谢,我想我明白了
    猜你喜欢
    • 2012-02-18
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    相关资源
    最近更新 更多