我正在处理器中使用Cortex-A35(Armv8-A),并且正在寻找能够允许L2统一缓存支持正在运行的进程之间进行分区的任何技术(出于安全原因,它们之间不存在干扰;例如,为256KB)处理1和处理2的256K)。
换句话说,我正在寻找一种方法来确切知道特定进程可以使用哪些缓存集和方法,并确保在此进程执行期间不会驱逐或使用其他缓存集。这样可以避免刷新和失效的麻烦,而这需要一些时间。
根据Armv8-A,我发现了Cache锁定,但是根据该论坛上的一些帖子,此功能很少在特定内核上实现(并且在Cortex-A35中未实现)。
我还发现了一些技巧:
set-partitioning:仅当核心具有高速缓存锁定机制时才可行
方式划分:仅当核心具有 缓存锁定机制时,才可行
页面着色:在Armv6和Armv7上似乎是可行的,而且由于我找不到有关Armv8的任何信息,这使我认为在Armv8上也不可能。
但是我可能错过了文档中的某些内容。
如果有人知道实现此目标的方法或知道显然不可能,那将有所帮助。 |