棋子 · 2020年01月08日

Cortex-A35缓存分区

我正在处理器中使用Cortex-A35(Armv8-A),并且正在寻找能够允许L2统一缓存支持正在运行的进程之间进行分区的任何技术(出于安全原因,它们之间不存在干扰;例如,为256KB)处理1和处理2的256K)。

换句话说,我正在寻找一种方法来确切知道特定进程可以使用哪些缓存集和方法,并确保在此进程执行期间不会驱逐或使用其他缓存集。这样可以避免刷新和失效的麻烦,而这需要一些时间。

根据Armv8-A,我发现了Cache锁定,但是根据该论坛上的一些帖子,此功能很少在特定内核上实现(并且在Cortex-A35中未实现)。

我还发现了一些技巧:

set-partitioning:仅当核心具有高速缓存锁定机制时才可行
方式划分:仅当核心具有 缓存锁定机制时,才可行
页面着色:在Armv6和Armv7上似乎是可行的,而且由于我找不到有关Armv8的任何信息,这使我认为在Armv8上也不可能。
但是我可能错过了文档中的某些内容。

如果有人知道实现此目标的方法或知道显然不可能,那将有所帮助。

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2020年01月08日

L1和L2高速缓存都在物理上进行了索引,因此高速缓存着色应该是可能的。

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