gpt4 book ai didi

assembly - 处理器是否将数据从 'L1 code' 缓存切换到 'L1 data' 缓存?

转载 作者:行者123 更新时间:2023-12-02 00:28:19 25 4
gpt4 key购买 nike

我想知道,微处理器(比如在长模式下的 SandyBridge 架构上)如何将数据从“L1 代码”缓存切换到“L1 数据”缓存,反之亦然?假设一个页面用于数据存储,因此它被缓存在 L1 缓存中。然后,在OS执行过程中,指令指针跳转(发出JMP指令)到当前缓存在L1数据缓存中的内存位置。处理器是否将数据从 L1 数据迁移到 L1 代码缓存?当数据管理指令在存储在 L1 代码缓存中的地址上发出时的相同问题(即该地址变得适合数据存储,而不是代码执行)处理器如何处理这些问题?

我问这个是因为我正在研究自修改代码,如果您有任何其他信息可以让我阅读有关代码缓存的详细信息,请发布链接/引用。

最佳答案

查看最新intel programmer's manual ,第 3 卷,系统编程,具体是这些部分:

  • 8.1.3 处理自修改和交叉修改代码
  • 11.6 自修改代码

我认为您不想了解并依赖于特定 CPU 型号的行为,因为这会使您的代码在不同或更新的 CPU 上不稳定。只需遵循有关如何设计和执行自修改代码和交叉修改代码的官方指南即可。

而且您不希望在运行时进行大量代码修改,因为缓存失效会导致相关的性能损失。

关于assembly - 处理器是否将数据从 'L1 code' 缓存切换到 'L1 data' 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com