【发布时间】:2020-08-23 23:01:27
【问题描述】:
内存地址可以加载到缓存中但不能加载到主存中吗?换句话说,如果缓存想将数据写入主内存,那会在Linux的x86-64中产生页面错误吗?
【问题讨论】:
标签: linux cpu-architecture paging cpu-cache page-fault
内存地址可以加载到缓存中但不能加载到主存中吗?换句话说,如果缓存想将数据写入主内存,那会在Linux的x86-64中产生页面错误吗?
【问题讨论】:
标签: linux cpu-architecture paging cpu-cache page-fault
不,缓存是透明的(和in x86-64 caches by physical address)。只有加载或存储指令(和代码获取)会发生页面错误,并且会同步发生(在违规指令上),而不是稍后的某个随机时间。
当然,对 L1d 缓存的实际提交会延迟 (by the store buffer),直到从乱序执行后端退出之后。但是检查错误是在加载/存储执行单元中完成的(用于存储,将数据和地址写入存储缓冲区,以便它确定发生并在一段时间后变得可见。)
【讨论】: