缓存控制指令

✍ dations ◷ 2025-08-23 00:44:00 #缓存控制指令

在计算中,缓存控制指令是嵌入处理器指令流中的提示,旨在利用程序员或编译器提供的关于内存访问模式的信息来提高硬件缓存的性能。 它们可以通过更好地控制工作集来减少缓存污染(英语:Cache pollution)、减少带宽需求、绕过延迟。大多数缓存控制指令不会影响程序的语义,尽管有些可以。

此类指令受多个处理器指令集架构的支持,例如ARM、MIPS、PowerPC和x86。

也称为,其效果是请求加载与给定地址关联的缓存行。这是由x86指令集中的PREFETCH指令执行的。一些变体绕过更高级别的缓存层次结构(英语:Cache hierarchy),这在“流式”上下文中对于遍历一次而不是保存在工作集中的数据很有用。预取应该发生得足够早,以减轻内存访问的延迟,例如在使用循环来线性遍历内存时。 GCC内置函数__builtin_prefetch可用于在编程语言C或C++中调用。

预取的一种变体,适用于指令缓存。

此提示用于在完全覆盖内容之前准备缓存行。在这个例子中,CPU 不需要从主内存加载任何东西。语义效果等同于使用对齐的memset,将缓存行大小的块设为零,但操作实际上是实现释放。

此提示用于丢弃缓存行,而不将其内容提交到主内存。该指令可能会带来不正确的运行结果,因此需要谨慎使用。与其他缓存提示不同,这条缓存提示会极大地改变程序语义。这与allocate zero一起用于管理临时数据。这节省了不需要的主内存带宽,避免缓存污染。

此提示请求立即牺牲一个缓存行,为即将发生的分配让路。当已知数据不再是工作集的一部分时使用它。

一些处理器支持加载-存储指令的变体,这些指令也包含缓存提示。一个例子是PowerPC指令集中的load last ,这表明数据只会被使用一次,即相应缓存行可能会被送到等待牺牲的队列的头部。

最近,英特尔和ARM开发的越发先进的应用处理器将更多的晶体管用于加速用传统语言编写的代码,例如执行自动预取、使用硬件来动态检测线性访问模式。因而缓存控制指令变得不那么流行了。然而,这些技术可能对面向吞吐量的处理器仍然有效,它们具有不同的吞吐量-延迟的侧重性,并且可能更倾向将更多区域用于执行单元。

一些处理器支持将临时文件放入暂存器(英语:scratchpad memory),并使用直接存储器访问(DMA)在需要时将数据传入传出主内存。 Cell 处理器和一些嵌入式系统使用这种方法。这些允许更好地控制内存流量和位置(因为工作集由显式传输管理),并消除了对多核机器中昂贵的缓存一致性的需求。

缺点是它需要使用截然不同的编程技术。很难改写用传统语言(如 C 和 C++)编写的程序,这些语言向程序员提供了一个大地址空间的统一视角(这是通过缓存模拟出来的错觉)。传统的微处理器可以更轻松地运行遗留代码,然后可以通过缓存控制指令对其进行加速,而基于暂存器的机器则需要从头开始进行专门编写,直至能实现相同功能。缓存控制指令特定于某个缓存行大小,在实践中,同一体系结构系列中的处理器各代之间可能不同。缓存还可以帮助从不可预测的访问模式(例如,在材质贴图的过程)中合并读取和写入,而暂存器 DMA 需要重新设计算法以实现更可预测的“线性”遍历。

此类暂存器通常更难与传统编程模型一起使用,不过对于资料流模型(例如TensorFlow)而言可能更合适。

向量处理器(例如现代图形处理单元(GPU) 和Xeon Phi)使用大规模并行计算来实现高吞吐量,同时解决内存延迟问题(减少预取的需要)。许多读取操作是并行发出的,用于计算内核的后续调用;计算可能会暂停以等待后续的数据,而执行单元则尽力处理来自过去收到的请求的数据。对于程序员来说,这种模式更容易与适当的编程模型(内核函数)结合使用,但更难应用于通用编程。

缺点是临时状态的许多副本可能保存在处理元素的本地内存中,等待传输中的数据。

相关

  • 解放犹太解放运动(英语:Jewish emancipation)是欧洲犹太人权利自18世纪起从外在和内在同时争取的这一进程。包括同等公民权利的认定,以及个人公民身份的授予等。成果来自于社区内的
  • 凯瑟琳·德纳芙凯瑟琳·德纳芙(法语:Catherine Deneuve,1943年10月22日-)法国女影星,从1960年代活跃至今。出生于法国巴黎,13岁从影。有法国第一美人之称。成名作电影是“秋水伊人”,代表作是阐释
  • 女同性恋女同性恋女性主义(英语:Lesbian feminism)是20世纪70年代至80年代初(主要是北美和西欧)女性主义运动中的重要流派之一,鼓励女性将性倾向转向女性,将女同性恋视为女性主义运动的重要
  • 小行星13059小行星13059(13059 Ducuroir)是一颗绕太阳运转的小行星,为主小行星带小行星。该小行星于1991年1月18日发现。小行星13059的轨道半长轴为2.5885567 UA,离心率为0.094。
  • 本·威士肖本杰明·约翰·“本”·威士肖(英语:Benjamin John "Ben" Whishaw,1980年10月14日-)是一位英国演员。他曾就读皇家戏剧艺术学院,著名作品是舞台剧《哈姆雷特》,剧集《司法正义》和
  • 阿里·苏阿维阿里·苏阿维(土耳其语:Ali Suavi,1839年-1878年):64是奥斯曼帝国的作家、思想家。他曾参与改革派的新奥斯曼人的组织,但之后与其分道扬镳。苏阿维的政治观点倾向开明专制,对当时欧
  • Intel Extreme GraphicsIntel Extreme Graphics是Intel的整合型显示核心,于2002年5月推出。当时,Intel发布了Pentium 4 533MHz外频版本,和支援该款处理器的芯片组,i845G和i845E。当中的i845G就是整合了
  • 王彝王彝(?—1374年),字常宗,别号妫蜼子。明代诗文家。其先蜀人,本姓陈氏,父王事元,为昆山州儒学教授,遂徒嘉定(今属上海)。少孤贫,读书于天台山,从学于孟梦恂,故其文特醇雅。时杨维桢以文雄于
  • 两港大道两港大道,北段又名两港公路,奉贤区段称两港西大道,位于中华人民共和国上海市浦东新区、奉贤区,西抵新四平公路,北至申嘉湖高速公路,是一条连结浦东机场与芦潮港之间的的道路。该道路于2005年10月10日建成通车。2018年,该道路北段(申嘉湖高速公路两港互通—规划X9路,即两港公路)编入上海省道229;同年,该道路拟建设的西段(新四平公路以西)被编入中华人民共和国228国道。2019年10月20日,“两港大道快速化先行启动工程”开工。两港大道西段和北段将进行快速化改造,西段将铺设高架桥。2021年7月5日,两
  • 福特蒙迪欧福特蒙迪欧(Ford Mondeo),是福特汽车公司在世界多个市场出售的一款中型轿车,福特以创汽车界纪录的六十亿美元开发此一车系。蒙迪欧是从拉丁文的“世界”(mundus)演变而来。蒙迪欧是欧洲福特开发的车型,第一代车型原本为了同时销售全球市场,车身尺寸较同级车小,在美国市场被视为缺点。第二代车型之后主攻欧洲市场,在欧洲被分类为大型家用车,1993年推出时获选为欧洲年度风云车(Car of the year);直至第四代因“一个福特”(One Ford)的全球化策略下与美国的Fusion合并关系,蒙迪欧再