下面内容摘自《步步惊芯——软核处理器内部设计分析》一书
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的配置,主要宏定义例如以下: