Assembly 什么是处理器提示?

Assembly 什么是处理器提示?,assembly,x86,instructions,Assembly,X86,Instructions,在《英特尔64和IA-32体系结构软件开发人员手册》的上下文中,我想知道“提示”一词是什么意思 我在几个部分中看到: 在预取WT1的说明中-预取提示T1 带着写作的意图 在SSE4的介绍中说“该技术还提供了 提示,在读取时可以提高内存吞吐量 “不可缓存的WC内存类型。”这让我想到了WC内存 接下来,我阅读了SSE4指令中的一条,可以使用 “流”提示。这让我想到了 我发现提示可以是暂时的,也可以是非暂时的 流式加载提示指令本身MOVNTDQA “提供非暂时性提示” 进一步阅读手册,我发现事务同步

在《英特尔64和IA-32体系结构软件开发人员手册》的上下文中,我想知道“提示”一词是什么意思

我在几个部分中看到:

  • 预取WT1
    的说明中-预取提示T1 带着写作的意图

  • 在SSE4的介绍中说“该技术还提供了 提示,在读取时可以提高内存吞吐量 “不可缓存的WC内存类型。”这让我想到了WC内存

  • 接下来,我阅读了SSE4指令中的一条,可以使用 “流”提示。这让我想到了 我发现提示可以是暂时的,也可以是非暂时的

  • 流式加载提示指令本身
    MOVNTDQA
    “提供非暂时性提示”

  • 进一步阅读手册,我发现事务同步 扩展(TSX)在
    XACQUIRE
    中使用“前缀提示”
    XRELEASE

  • 在描述
    VGATHERPF0DPD
    和公司时的AVX 512位部分 (这些类型的指令中还有7种都带有/PS 选项)。在这些情况下,我们使用T0或T1提示 dword或qword索引

  • 我在手册中看到的最有见地的提示(此列表为 顺序)见第10.4.6.1节,其内容如下

  • “非时态 提示指示处理器将数据存储到内存,而无需 将数据写入缓存层次结构。”

    这在“可缓存性控制指令”部分中,涉及到
    MOVNTQ
    MOVNTPS
    MASKMOVQ
    ,因此临时提示是否会写入缓存线

    所以在这个时候,我开始觉得我理解了提示,它们似乎是“特殊指针”,但后来它们被称为指针,所以它们可能是指针的一部分?但当我读到这篇文章时,我甚至开始怀疑这一点。正如我在中看到的,这个词“hint”似乎用于更高层次的抽象

    唯一增加我怀疑的是,它说提示可以准备、丢弃或收回缓存线(也称为缓冲区?)。那么提示只是与缓存线相关的指令吗

    正如你所看到的,我感到困惑、迷茫和恐惧。有人能用类比来解释提示吗


    谢谢

    提示是指令操作的一部分,可能无法以所述方式实现。它可能根本没有实现,也可能以不同的方式实现。提示的具体作用可能取决于执行指令的特定环境。一般来说,提示的实现方式不会影响CPU的体系结构状态。对于与缓存相关的提示,这意味着缓存中最终的内容可能会有所不同,尽管对于当前处理器,至少缓存将保持一致状态。(其他处理器可能会看到当前处理器的内存访问顺序与普通x86内存顺序规则不一致,因为某些提示可能违反这些规则。)

    例如,非时态提示告诉处理器避免将缓存中的空间用于给定的内存引用。它们通常被使用,因为程序员认为CPU不会再次访问内存中的位置,所以使用缓存会浪费空间。写入视频内存是一个常见的例子,因为视频内存几乎总是被程序用作“只写”内存


    实际上,非时态提示的操作可能会有很大的不同,这取决于特定的CPU、是否使用了写组合(WC)内存、是读还是写以及特定的指令。查看有关非暂时性负载和正常内存的问题,了解一些可能的差异。还要注意的是,考虑到缓存的异步性质,任何缓存相关的确切行为都很难确定为预取,其他处理器的操作很容易意外地收回或引入缓存线。

    提示只是cpu可以用于优化的某些特定用法的额外信息。提示也可以忽略。提示是您提供的额外信息,用于在提供多个选项时帮助处理者做出正确决策,并且不能仅从上下文来决定(该术语并非特定于处理者)。例如,
    MOVNTDQA
    MOVDQA
    相同,只是它告诉处理器您不会重用该值。这就是“非暂时性暗示”。然后,cpu可以避免将数据加载到缓存中。(但您已经发现了这一点。)还有一些分支预测提示,可以告诉cpu是否需要跳转。
    MOVNTDQA
    本身不是一个提示。它有一个适当的功能:它进行数据传输。提示只是提供了有关如何使用数据的额外信息
    XACQUIRE/XRELEASE
    是提示,是应用于其他指令的前缀。另外,提示不需要处理缓存
    XACQUIRE
    不处理缓存。分支提示不处理缓存。提示是您可以传递给cpu的任何常规信息,以便cpu能够更好地完成其工作。在没有提示的情况下,它仍然可以执行相同的任务,但速度可能会慢一些。提示在这里被用作一个普通的英语单词,而不是一些特定于计算机的意思,因此除了这里的答案之外,一本普通的字典可能会有所帮助。