cache的基本概念cache管理的操作禁用(invalidata )整个缓存或缓存行。 缓存中的数据将被销毁
清除整个高速缓存或高速缓存行。 相应的高速缓存线被标记为脏,并将数据写回下一级高速缓存或主存储器。
“清零”操作通常会影响预取和加速。 例如,程序需要很大的内存,内存需要清零。 高速缓存控制器通常向相应的高速缓存线写入零数据。 如果程序主动使用清零指令,内部总线的带宽将大幅减少。
整个cache管理的对象ALL:缓存
VA:虚拟地址
set/way:特定的缓存线或组和路径
cache管理的范围PoC
PoU
shareability inner
cache的指令格式
cache的枚举(cache discovery)当我们管理cache命令时,需要了解以下信息:
系统支持多少级cache?
cache line多少钱?
对于每个一级高速缓存,其set和way是多少?
对于zero操作,您需要知道zeroed可以使用的数据数量
与armv8对应的cache寄存器
cachelevelidregister(CLIdr,CLIDR_EL1 ) :描述了level的cache数量
chetyperegister(CTR,CRT_EL0 ):cache线大小
setsandways :需要访问寄存器才能获取
告知cachesizeselectionregister (CSS elr,CSSELR_EL1 ) )您要联系哪个cache
从cachesizeidregister(CCSIDR,CCSIDR_EL1 ) )读取相关信息
datacachezeroidregister (dcz id _ el0 ) ) ) ) ) ) ) ) ) )。