linux – 以编程方式禁用AMD系统上的硬件预取

linux – 以编程方式禁用AMD系统上的硬件预取,第1张

概述有没有办法在AMD系统上以编程方式禁用硬件预取器,就像在 this topic中讨论的英特尔系统一样 专门针对AMD Opteron Barcelona或Istanbul架构. 所有AMD系列10h处理器(包括巴塞罗那和伊斯坦布尔)都有两个不同的硬件预取器. >第一个是传统的数据缓存预取程序,它可以识别连续的缓存行访问升序或降序流.可以通过将MSRC001_1022的第13位设置为“1”来禁用它. 有没有办法在AMD系统上以编程方式禁用硬件预取器,就像在 this topic中讨论的英特尔系统一样

专门针对AMD Opteron barcelona或Istanbul架构.

解决方法 所有AMD系列10h处理器(包括巴塞罗那和伊斯坦布尔)都有两个不同的硬件预取器.

>第一个是传统的数据缓存预取程序,它可以识别连续的缓存行访问升序或降序流.可以通过将MSRC001_1022的第13位设置为“1”来禁用它.
>其他硬件预取器是“内存控制器预取器”.这是一个更通用的预取器,但仅在内存控制器内运行(即,它不会将预取数据发送到核心 – 它只是使内存控制器在核心请求时更快地返回它).

>此预取器的主要控制是PCI配置空间,功能2,偏移11Ch,功能2中的附加控制,巴塞罗那后处理器的偏移1B0h.
>通过/ dev / mem设备驱动程序更新PCI配置空间中的值,我成功地在“实时”barcelona系统上禁用和重新启用此预取器. (不要在家里试试!)
>内存控制器预取程序的活动由硬件性能计数器事件1F0h显示,UnitMasks 02和04.
>请注意,上海/伊斯坦布尔/ MagnyCours的内存控制器预取器“连贯”运行(意味着缓存一致性探测 *** 作与内存预取一起发布),而巴塞罗那的内存控制器预取器不发出缓存一致性 *** 作(它们不是’ t发出,直到核心对高速缓存行的请求到达内存控制器).

以上内容记录在BIOS和Kernel Developer’s GuIDe for Family 10h处理器:http://support.amd.com/us/Processor_TechDocs/31116.pdf中

总结

以上是内存溢出为你收集整理的linux – 以编程方式禁用AMD系统上的硬件预取全部内容,希望文章能够帮你解决linux – 以编程方式禁用AMD系统上的硬件预取所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存