美文网首页RTOS和GUI_基于英飞凌tc2x及stm32开发板
Tricore的cache使用仿真实验--Apple的学习笔记

Tricore的cache使用仿真实验--Apple的学习笔记

作者: applecai | 来源:发表于2022-09-03 10:50 被阅读0次

    一,前言

    理论需要结合实际,这样可以验证对理论的理解是否正确,形成闭环。关于Tricore Memory及访问速度--Apple的学习笔记已经完成了初步的理论理解,所以接着就是做实验及再进行深入的理解。

    二,带着问题来看的芯片手册

    问题1,Dcache如何设置使能?

    答:芯片手册上没找到清晰的步骤描述,我直接example参考代码是有的。

    问题2,Dcache的地址段在哪里?

    答:手册上可以清晰的找到。


    image.png

    问题3,某个变量对应的cache地址我怎么才能知道?

    答:首先我想到的是类似Linux中的MMU的TBL表作为对应规则,这是猜测的。按计算机组成原理cache和主存有3种地址映射方式(全相关,直接映射,组相关)。但是芯片手册就看到块大小为256字节。具体地址映射规则之后需要研究下。

    问题4,coreID怎么有6的,5号没有的?

    答:看上去确实是这样,另外CoreID及对应的base地址。这样一看就能背出来,而之前看memoryMap的表内容太多反而记不住重点。下图有利于记忆,很棒。


    image.png

    三,实验:拿mcal的example代码来调试cache

    注释掉原有的example功能,自己添加测试代码。
    在如下有bypass的宏定义可以设置值,等于先不开cache。将值写特殊功能寄存器PCON。然后main函数的while(1)循环中添加1000字节数组赋值,然后读取到另外的数组中。

        /* Enable/ Disable the caches depending on the configuration. At this point cache are invalidated */
        {
            Ifx_CPU_PCON0 pcon0;
            pcon0.U       = 0;
            pcon0.B.PCBYP = IFX_CFG_SSW_ENABLE_TRICORE0_PCACHE ? 0 : 1; /* depending on the enable bypass bit is reset/set */
            Ifx_Ssw_MTCR(CPU_PCON0, pcon0.U);
            Ifx_Ssw_ISYNC();
        }
    
        {
            Ifx_CPU_DCON0 dcon0;
            dcon0.U       = 0;
            dcon0.B.DCBYP = IFX_CFG_SSW_ENABLE_TRICORE0_DCACHE ? 0 : 1; /* depending on the enable bypass bit is reset/set */
            Ifx_Ssw_MTCR(CPU_DCON0, dcon0.U);
            Ifx_Ssw_ISYNC();
    }
    

    编译后数组的默认地址是core0的DSPR。
    打开Dache。定义变量到cache段。编译后看到数组testval保存在了segment8就是0x90000000开始的带cache段。
    0x70000000 0x700007cf 2000 g testRead dsram0 .CPU0.bss .bss Objs/Cpu0_Main.o
    0x90000000 0x900007cf 2000 g testval cpu0_dlmu .mycache .mycache Objs/Cpu0_Main.o
    打开DCON0设置了使能DCACHE。到DCACHE的地址段0xD0000000开始查看到值。说明cache开始使用了。实验成功。

    image.png
    补充说明:但是我又关闭了cache,仅设置DCON0,居然0xD0000000也有数据。这个后续研究,这个cache开关寄存器的理解估计有误。

    四,小结

    至少cache我可以观察到数据了,又有了进一步的认知,但是还有2个问题,就是cache的映射规则和cache的开关寄存器控制,之后要继续研究下,也可能我是sim仿真所以效果不真实。

    相关文章

      网友评论

        本文标题:Tricore的cache使用仿真实验--Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/uqjunrtx.html