分类: LINUX
2011-08-31 11:31:05
相应CP15协处理器的寄存器,可从ARM体系结构中得知,但此处用的并不多。
CP15 中的寄存器 C7 用于控制 cache 和写缓冲区。它是一个只写的寄存器,使用 MCR 指令
来写该寄存器,具体格式如下:
MCR P15, 0,
其中,
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
C0 4 等待中断激活 0
C5 0 使用无效整个Cache 0
C5 1 使无效指令Cache 中的某块 虚地址
C5 2 使无效指令Cache 中的某块 组号/组内序号
C5 4 清空预取缓冲区 0
C5 6 清空整个跳转目标Cache 0
C5 7 清空跳转目标Cache中的某块 生产商定义
C6 0 使无效整个数据Cache 0
C6 1 使无效数据Cache 中的某块 虚地址
C6 2 使无效数据Cache 中的某块 组号/组内序号
C7 0 使数据Cache 和指令Cache 无效 0
C7 1 使无效整个Cache 中的某块 虚地址
C7 2 使无效整个Cache 中的某块 组号/组内序号
C8 2 等待中断激活 0
C10 1 清空数据Cache 中某块 虚地址
C10 2 清空数据Cache 中某块 组号/组内序号
C10 4 清空写缓冲区 0
C11 1 清空整个Caceh 中某块 虚地址
C11 2 清空整个Caceh 中某块 组号/组内序号
C13 1 预取指令Cache 中某块 虚地址
C14 1 清空并使无效数据Cache中某块 虚地址
C14 2 清空并使无效数据Cache中某块 组号/组内序号
C15 1 清空并使无效整个Cache中某块 虚地址
C15 2 清空并使无效整个Cache中某块 组号/组内序号
----------------------------------------------------------------------------------
MCR P15, 0,
其中
----------------------------------------------------------------------------------
指令
----------------------------------------------------------------------------------
MCR P15,0,Rd,C8,C7,0 0b0000 0b0111 0 DCache,ICache 无效
MCR P15,0,Rd,C8,C7,1 0b0000 0b0111 虚地址 整个Cache 中单个地址变换条目无效
MCR P15,0,Rd,C8,C5,0 0b0000 0b0101 0 整个Cache无效
MCR P15,0,Rd,C8,C5,1 0b0000 0b0101 虚地址 指令Cache 中单个地址变换条目无效
MCR P15,0,Rd,C8,C6,0 0b0000 0b0110 0 整个数据Cache无效
MCR P15,0,Rd,C8,C6,1 0b0000 0b0110 虚地址 数据Cache 中单个地址变换条目无效