首页 > 代码库 > or1200中IMMU分析(续)
or1200中IMMU分析(续)
以下内容摘自《步步惊芯——软核处理器内部设计分析》一书
2 IMMU中的特殊寄存器
OR1200处理器中的IMMU包含第2组特殊寄存器,如表10.1所示。
ITLBW0MRx是指令TLB匹配寄存器,其格式如表10.2所示。
表10.2是OpenRISC 1000规范中的定义,实际在OR1200处理器中只实现了其中一部分字段,包括VPN(Virtual Page Number)的一部分、V(Valid标志位)。ITLBW0MRx对应图10.7中MR_RAM的表项,每一个表项对应一个ITLBW0MRx,表项中“有效地址的19-31位”对应ITLBW0MRx的19-31位,表项中的V对应ITLBW0MRx中的V。如图10.8所示。
ITLBW0TRx是指令TLB翻译寄存器,其格式如表10.3所示。
表10.3是OpenRISC 1000规范中的定义,实际在OR1200中也只实现了其中一部分字段,包括PPN(Physical Page Number)的一部分、UXE、SXE、CI。ITLBW0TRx对应图10.7中TR_RAM的表项,每一个表项对应一个ITLBW0TRx,具体的对应关系也很直接。如图10.9所示。
ITLB最大可配置有128项,所以ITLBW0MRx、ITLBW0TRx的x是从0-127,默认ITLB只配置有64项,此时ITLBW0MRx、ITLBW0TRx中的x只有0-63是有效的。
3 OR1200中关于IMMU的一些配置
在or1200_defines.v中有一些与IMMU相关的宏定义,用户可以通过修改宏定义实现对IMMU的配置,主要宏定义如下: