极术小姐姐 · 7 小时前

缓存和自修改代码使用线程

image.png

很多年前,我曾写过一篇关于自修改代码同步缓存的必要性,以及如何使用 __clear_cache 这样的函数来实现同步缓存的文章。最近,我又介绍了实际的实现方法。然而,这些文章忽略了一个重要的考虑因素:如果您生成的代码将(或可能)由不同的 CPU 内核执行,会发生什么情况?

脱离单线程执行环境会增加复杂性,而且有许多可能的应用,其约束条件和目标也各不相同。

在一个极端,执行完全同步是可以接受的。这是最容易证明正确性的方法,Arm ARM 列出了合适的代码序列[1],但它要求执行线程明确配合同步过程,而这并不总是可取的。

作者:Jacob Bramley
文章来源:https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/caches-self-modifying-code-working-with-threads

欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区 Arm 技术专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
23598
内容数
1045
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息