CP15 中的寄存器

 

CP15 中的寄存器 C7 用于控制 cache 和写缓冲区。它是一个只写的寄存器,使用 MCR 指令
      来写该寄存器,具体格式如下:

          MCR P15, 0, <Rd>, <c7>, <CRm>, <opcode_2>

      其中, <Rd> 中为将写入 C7 中的数据; <CRm>, <opcode_2> 的不同组合决定执行不同的操作:

      ----------------------------------------------------------------------------------
      <CRm>        <opcode_2>        含义                                   数据
      ----------------------------------------------------------------------------------
      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, <Rd>, <C8>, <CRm>, <opcode_2>

    其中 <Rd> 中为将写入 C8中的数据; <CRm>, <opcode_2> 的不同组合决定指令执行不同的操作
    
      ----------------------------------------------------------------------------------
      指令                           <opcode_2>   <CRm>   <Rd>    含义
      ----------------------------------------------------------------------------------
      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 中单个地址变换条目无效

你可能感兴趣的:(c,cache,crm)