棋子 · 2019年12月16日

在Canvas中修改缓存参数的问题

我想修改系统画布中的缓存延迟参数,并使用 FVP_Base_Neoverse-N1来构建系统,因此像这样修改缓存参数是否正确?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月16日

默认情况下,快速模型/ FVP中禁用缓存建模。在大多数情况下,缓存的存在或不影响软件的功能,并且在程序员的视图模型(如快速模型)中对缓存进行建模会对模拟性能产生影响。但是,您确实需要打开高速缓存建模才能模拟高速缓存访​​问并具有计时参数以提高效率。

在诸如Neoverse-N1之类的基本FVP中,有一个称为“ cache_state_modelled”的顶级参数可以打开(或关闭)所有缓存的建模。可以分别启用或禁用平台中的每个缓存,但是通常您希望全部启用或全部禁用。有几种设置此参数的方法。运行FVP时,我通常使用命令行开关:“-C cache_state_modelled = 1”。

另一个选项是在“系统画布”中设置它并重建平台。去做这个:

打开项目
打开顶级LISA文件(FVP_Base_Neoverse-N1.lisa),然后单击“属性”
选择“参数”标签
将cache_state_modelled的默认值更改为1
保存
建立
现在,当您运行FVP缓存时,默认情况下将启用建模。然后,您可以根据需要通过在命令行中添加“ -C cache_state_modelled = 0”将其关闭。
向模型中的缓存事务添加延迟的第二阶段。Neoverse-N1具有:
l1 dcache,l1 icache,每个核心l2缓存
所有内核之间共享的l3缓存
其中每个参数都有一组命中/未命中,读/写,监听和维护延迟的参数。设置它们的方法与用于全局缓存状态建模参数的方法相同。
在命令行上,添加(例如)“-C cluster0.dcache-hit_latency = <值>”
通过以下方式编辑LISA中的值:
右键单击Neoverse模型(称为“ cluster0”)
选择“对象属性”
选择“参数”标签
编辑要分配延迟的所有缓存操作的值
(或者,您可以双击“ cluster0”模型以打开该模型的LISA并在源代码中编辑参数)
保存
重建
最后一步是运行FVP时识别这些值。默认情况下,运行快速模型时将忽略所有延迟。要启用它们,您需要设置一个名为FASTSIM_DISABLE_TA的环境变量。将其设置为“ 0”,以在运行FVP之前将其应用到仿真中。
快速模型时序注释的文档可在以下位置找到:developer.arm.com /.../timing-annotation 。

你的回答
关注数
1
收藏数
0
浏览数
2106
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息