首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是处理器提示?

什么是处理器提示?
EN

Stack Overflow用户
提问于 2019-07-30 12:57:52
回答 1查看 862关注 0票数 6

Intel 64和IA-32架构软件开发人员手册的上下文中,处理器“提示”究竟是什么?

我在几个章节中看到:

  1. 在对PREFETCHWT1的描述中,-Prefetch提示T1打算编写。
  2. 在“SSE4简介”中,该技术还提供了一个提示,当从不可缓存的WC内存类型读取时,可以提高内存吞吐量。这导致我这个答案有关WC内存,但没有明确描述什么是提示。
  3. 接下来,我阅读了一个SSE4指令,它可以执行带有“流”提示的加载。这使我来到了SSE4编程参考,在那里我发现提示可以是时态的,也可以是非时态的。
  4. 流加载提示指令本身MOVNTDQA“提供非时态提示”。
  5. 在手册中,我发现事务同步扩展(TSX)在XACQUIREXRELEASE中使用了“前缀提示”
  6. 在AVX512位部分中,当描述VGATHERPF0DPD和其他部分时(还有7种其他类型的指令,全部带有/PS选项)。在这种情况下,我们可以使用dword或qword索引获得T0或T1提示。
  7. 我在手册中看到的最有洞察力的提示(这个列表是按顺序排列的)出现在10.4.6.1节中。

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

这是在涉及MOVNTQMOVNTPSMASKMOVQ的“可缓存控制指令”部分,那么一个时态提示会写入缓存行吗?我推断这好像是非时间暗示的对立面?

我在试图拼凑处理器提示的含义时使用的其他链接:

缓存线上的Wikipedia页面 ...says提示可以准备、丢弃或排除缓存行(也称为缓冲区?)。那么,提示只是与缓存行相关的指令吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-07-30 19:05:42

提示是指令操作的一部分,该指令不能以所描述的方式实现。它可能根本没有实现,也可能以不同的方式实现。提示的具体操作可能取决于执行指令的具体情况。一般来说,提示的实现方式不会影响CPU的体系结构状态。对于与缓存相关的提示,这意味着缓存中的确切结果可能会有所不同,尽管对于当前处理器来说,缓存至少将保持一致状态。(其他处理器可能会看到当前处理器根据正常的x86内存排序规则以不一致的顺序进行的内存访问,因为一些提示可能违反这些规则。)

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

实际上,非时态提示在它们的操作中可能会有很大的差异,这取决于特定的CPU、是否使用写组合(WC)内存、是否是读或写、以及特定的指令。有关非时态负载和正常内存的问题,请参见BeeOnRope的回答,以了解一些可能的差异。还请注意,由于缓存的异步性质,任何与缓存相关的行为都很难确定为预取,而且其他处理器的操作可以很容易地意外地排除或引入缓存行。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57272289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档