performance - 确定与英特尔存储相关的 L1 填充缓冲区占用率
问题描述
要确定与load相关的 L1D 填充缓冲区占用率,可以使用L1D_PEND_MISS
事件,特别是L1D_PEND_MISS.PENDING
,记录如下:
计算未完成的 L1D 未命中的持续时间,即需求读取所需的未完成填充缓冲区 (FB) 的每个周期数。FB 要么由需求负载持有,要么由非需求负载持有并至少被需求击中一次。有效的未完成间隔通过以下方式之一定义直到 FB 解除分配:从 FB 分配,如果 FB 是按需求分配的 从需求 Hit FB,如果它是通过硬件或软件预取分配的。注意:在 L1D 中,a需求读取包含可缓存或不可缓存的需求负载,包括由于任何请求类型导致的页面遍历而导致缓存行拆分和读取的负载。
解析本段的第二部分有点困难,但关键方面似乎是该事件仅计算每个周期以某种方式由需求负载所需的占用填充缓冲区的数量。
例如,在没有负载的商店流的场景中,有没有办法确定 L1 填充缓冲区的占用率?
解决方案
推荐阅读
- visual-studio-code - Visual Studio Code - 终端历史记录保存在哪里?
- c# - 在 Unity 2D 中用 2 个图像翻转对象的问题
- android - Firestore 是否会在每次打开 Fragment 时提取文档?
- vb.net - 使用 while 循环重复该任务,直到用户单击“否”按钮?
- bluedata - BlueData - Kibana 服务器尚未准备好
- php - 如何查看由 foreach 循环定义的常量数组?
- dc.js - 如何在 dc.js 中绘制帕累托图
- wpf - 使用在初始化时在 shell viewmodel 的模块中注册的服务(WPF、Prism)
- node.js - 一个节点 js 应用程序作为用户向 React 应用程序提供的服务实例
- php - 我的 json 对象只输出一个对象,但我的 xml 文件中有更多对象