MXSTATUS 是机器模式扩展状态寄存器
64ba4f58-fe96-40b4-9d79-9d26ed7b1769-image.png

地址定义:
490a6343-234e-4b41-a2ce-3a42045ef849-image.png

其设置方法如下:

(0:1) CACHE_SEL=2’b11时,选中指令和数据高速缓存
(4) INV=1时高速缓存进行无效化
(16) BHT_INV=1时分支历史表内的数据进行无效化
(17) TB_INV=1时分支目标缓冲器内的数据进行无效化
csr_write(CSR_MCOR, 0x70013);

(0) IE=1时Icache打开
(1) DE=1时Dcache打开
(2) WA=1时数据高速缓存为write allocate模式 (c906不支持)
(3) WB=1时数据高速缓存为写回模式 (c906固定为1)
(4) RS=1时返回栈开启
(5) BPE=1时预测跳转开启
(6) BTB=1时分支目标预测开启
(8) WBR=1时支持写突发传输写 (c906固定为1)
(12) L0BTB=1时第一级分支目标预测开启
csr_write(CSR_MHCR, 0x11ff);

(15) MM为1时支持非对齐访问,硬件处理非对齐访问
(16) UCME为1时,用户模式可以执行扩展的cache操作指令
(17) CLINTEE为1时,CLINT发起的超级用户软件中断和计时器中断可以被响应
(21) MAEE为1时MMU的pte中扩展地址属性位,用户可以配置页面的地址属性
(22) THEADISAEE为1时可以使用C906扩展指令集
csr_set(CSR_MXSTATUS, 0x638000);

(2) DPLD=1,dcache预取开启
(3,4,5,6,7) AMR=1,时,在出现连续3条缓存行的存储操作时后续连续地址的存储操作不再写入L1Cache
(8) IPLD=1ICACHE预取开启
(9) LPE=1循环加速开启
(13,14) DPLD为2时,预取8条缓存行
csr_write(CSR_MHINT, 0x16e30c);

这些C906核心的寄存器资料均位于《Xuantie_C906_R1S0_User_Manual.pdf》 文档中,可以前往平头哥开源芯片平台下载。