Linux 当一个物理地址映射到不同的虚拟地址时,在后端的dcache上会发生什么?
我对arm的缓存问题感到困惑。 在这里,我映射了相同的块或物理内存,得到了两个不同的虚拟地址,没有O_SYNC,这两个地址都将被缓存: (假设我只访问两个字节中的前4个字节)Linux 当一个物理地址映射到不同的虚拟地址时,在后端的dcache上会发生什么?,linux,arm,memcached,Linux,Arm,Memcached,我对arm的缓存问题感到困惑。 在这里,我映射了相同的块或物理内存,得到了两个不同的虚拟地址,没有O_SYNC,这两个地址都将被缓存: (假设我只访问两个字节中的前4个字节) 如果我读取两个地址,将加载多少个dcache条目,一个或两个 若我在一个虚拟内存上写操作,有多少个dcache条目会被标记为脏的,一个或两个(若必须写dcache条目)?dcache条目的后端发生了什么 谢谢。最近的ARM被指定为具有物理标记的缓存(例如,由物理地址标识的缓存线),因此多个别名虚拟地址(即使在单独的进程中)
谢谢。最近的ARM被指定为具有物理标记的缓存(例如,由物理地址标识的缓存线),因此多个别名虚拟地址(即使在单独的进程中)应反映相同的物理缓存线
这并非普遍正确;ARM-v7A体系结构之前的旧ARM内核支持虚拟标记缓存。谢谢,我想我找到了