缓存控制指令

✍ dations ◷ 2025-11-15 06:55:49 #缓存控制指令

在计算中,缓存控制指令是嵌入处理器指令流中的提示,旨在利用程序员或编译器提供的关于内存访问模式的信息来提高硬件缓存的性能。 它们可以通过更好地控制工作集来减少缓存污染(英语: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)使用大规模并行计算来实现高吞吐量,同时解决内存延迟问题(减少预取的需要)。许多读取操作是并行发出的,用于计算内核的后续调用;计算可能会暂停以等待后续的数据,而执行单元则尽力处理来自过去收到的请求的数据。对于程序员来说,这种模式更容易与适当的编程模型(内核函数)结合使用,但更难应用于通用编程。

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

相关

  • 宗教心理学宗教心理学(英语:Psychology of religion)是一种把心理方法及解释框架应用于宗教传统、宗教本身及个人的科学。这门科学尝试透过心理学来准确描述宗教思想及行为的本身、起源及
  • 李拉赫·阿尔康莉拉·奥尔康(英语:Leelah Alcorn,1997年10月15日-2014年12月28日)是美国一名跨性别女孩,她的自杀事件造成了国际影响。奥尔康在她的Tumblr博客上写了一封自杀遗书,写的是社会标准
  • 第一代新古典主义经济学第一代新古典主义经济学(英语:Neoclassical economics),又称第一代新古典派经济学、新古典派经济学,兴起于二十世纪初期的经济主义思潮。他们是个松散的团体,继承了古典经济学的立
  • 郝定郝定(12世纪?-1216年),兖州泗水人,金国末年红袄军起义领袖。原为红袄军领袖刘二祖部下,刘二祖死后,率部攻克泰安州(今山东泰安)、滕州、兖州、单州(今山东单县)、莱芜、新泰等州县在邳州
  • 马尔科·潘特利奇马尔科·潘特利奇(塞尔维亚语:Марко Пантелић,1978年9月15日-),一名已退役的塞尔维亚足球运动员。2005年8月31日,潘特利奇以25万欧元租借到柏林赫塔,在2005-06赛季的德
  • 桂应祥沙里院农业大学桂应祥沙里院农业大学(韩语:계응상사리원농업대학)是位于朝鲜民主主义人民共和国的黄海北道之道府沙里院市的一所大学。它设有全日制及函授教育课程,专门培育农业生产及农业科技
  • 法来善主教法来善主教(Apostolic Bishop Salvator Peter Walleser),德国weiden人,生于1874年10月22日。1898年10月4日加入方济嘉布遣会,1901年8月15日晋升铎品。1912年8月21日教廷任命为太平洋马里亚纳和加罗林群岛代牧区主教,并于同年12月8日祝圣。1919年6月23日受命辞职。1922年3月28日赴中国甘肃天水天主教陇南监牧区任第三任宗座监牧。法来善在天水任职较前两位主教时间长,达24年之久,是一个多有建树和为传教事业献身的人。任职期间确立了教区传教
  • 人名学人名学(Anthroponymy),与地名学同属专有名词学的范畴。人名学研究人名的分类、来源历史、型态改变、地理分布、文化意涵等。早期的人名学以人名的来源和变化为主要研究对象,以语源学为基本工具,对语言学有所贡献。因其对地理分布、文化意涵的研究,也影响了历史学、民俗学、人口学,甚至与心理学、社会学、法学都有关连。人名学的子学科有:
  • 伊斯兰堡首都区伊斯兰堡首都区(乌尔都语:وفاقی دارالحکومت‎‎)是巴基斯坦的一个省级行政区,包含首都伊斯兰堡市及周边地区。首都区面积1,165.5 km² (450 mi²) ,其中伊斯兰堡市区面积906 km² (349.8 mi²) 。2012年调查首都区总人口115万1868人 ,其中66%位于伊斯兰堡市区。1960年,由西北边境省与旁遮普省的部分地区析置为伊斯兰堡首都区。伊斯兰堡首都区辖有20个联合委员会。坐标:33°41′N 73°05′E / 33.683°N 73.083°E / 33
  • 陈名岳陈名岳(?-?),福建兴化府莆田县人,盐籍,明朝政治人物。万历二十二年(1594年)甲午科福建乡试举人,二十九年(1601年)辛丑科进士,授行人司行人,三十一年五月与太常寺少卿赵崇善一起奉使往江西,封益府安义、罗川二王。三十三年再次为副使,册封唐府安阳王妃胡氏,三十四年七月奉命护送首辅沈一贯归乡养病。