为了加速CPU获取指令和数据的速度,开发过程中,会选择开启Cached(缓存)功能。
即:CPU访问Segment 8上的PF0和访问
1、PFlash指令和数据读取
对于CPU来说,如果想让其正确的干活,首先需要去目标地址拿到指令,之后再拿到需要处理的数据,按照指令处理数据。CPU不管拿指令还是数据都需要去内存中获取,如果CPU想获取(资料图)
由上图可以看出,CPU访问自身关联的内存区相对比较直接。eg:访问PCache/DCache、PSPR、DSPR、DLMU、LPB。如果CPUx需要访问CPUy的内存空间,则需要借助对应的Interface。CPU内存访问路径
对于英飞凌tx3xx系列,多核内存之间的访问通过SRI(Shared Resource Interconnect Bus)交互,这种多主多从访问方式,可以提高数据的访问效率,示意如下所示:
以CPU0访问数据为例,数据的访问需要通过DMI(Data Memory Interface),如下所示:
每个CPUx的DSPRx位于各自的DMI内部,如果CPUx需要访问CPUy的则使用最大的Cache空间,每个CPU的DCache和PCache空间大小默认全部使用。
DCON2寄存器配置D-Cache和DSPR使用的空间大小,如下所示:同样,PCON2寄存器配置P-Cache和PSPR使用的空间大小。
DCache/PCache空间
当DCache/PCache使能以后,会有额外的一段内存空间启用。以CPU0为例,如果CPU0的DCache/PCache使能,则对应的0x7003C000~0x7003FFFF(16Kbyte)、0x70110000~0x70117FFF(32Kbyte)可以使用,如下所示:
提示:其他核类似,不同核,可以使用的Cache空间大小可能不同。
参考资料
(1)Infineon-AURIX_TC3xx_Part1-UserManual-v01_00-EN.pdf
(2)https://mp.weixin.qq.com/s/zmKeRCUShEJV4aSRXMIgvQ
标签: