【原创】TI C2833x介绍---系统的初始化(12)
0赞
发表于 2012/10/21 17:57:00
阅读(16909)
写-读保护模式:
假设现在我们需要进行下面这样的操作:首先,向一个外设的寄存器写入值(例如写入控制寄存器);然后,从同一个外设的另一个寄存器读出值(例如读状态寄存器的值),如果CPU按照通常的流水线模式来执行,则首先执行读操作,然后再执行写操作,这与我们的本意相反了。所以在C28x内核的DSP中,CPU流水线提供了一种写-读保护模式(W-R),在启用该模式的情况下,读操作将延迟3个流水线阶段,从而保证指令顺序的正确执行;显然,这种模式在读写不同地址时启用才有意义。
写-读保护模式有PROTSTART与PROTRANGE寄存器来配置,顾名思义,PROT即protect保护的意思,start为受保护地址的起始值,range为受保护地址的长度。默认情况下,被保护的地址范围是0x4000到0x7FFF,即28335片上RAM映射空间中的3个外设帧PF1,2,3以及外部空间XINTF的区域0。默认情况下PF0(主要映射PIE向量)是不被保护的,因为读-写机制的原因,如果保护PF0则RAM中的M0与M1区域也将被写-读保护,大量的读操作被延时将显著降低程序的运行性能,因为外设映射在PF1,2,3里的外设寄存器不会被连续的频繁读写,而M0与M1区域经常存放一下变量、函数等,每一个变量的读写操作都被强制延迟3个流水线阶段,大量变量的操作延迟就可想而知有多么巨大了。