SylixOS在ZYNQ7000上划分CACHE

匿名 (未验证) 提交于 2019-12-03 00:21:02
  1. 范围
    本文档介绍了SylixOS在Xilinx Zynq-7000开发板上如何进行L2 Cache划分。
    在AMP模式中,core 0与core 1共用512K L2 Cache,这势必会引起两个核的Cache竞争问题。
  2. 用处

    core 0的内存访问操作可能会清除core 1所使用的L2缓存内容,从而使core 1的软件性能有不确定性。

    尤其是架构为AMP时。

    如图 2.1、图 2.2为SMP与AMP架构图。

    图 2.1 SMP架构图

    图 2.2 AMP架构图
  3. 原理

    这让用户可以将L2 Cache的功能保留在特定的core上。
    Cache way是分区的宽度,Zynq的L2 Cache有8 Cache ways。

    如图 3.1所示,在Zynq 7000中,Cortex-A9 MP核的64个AXI被分为8个可以锁定的组。

    图 3.1分组
  4. 配置
    具体寄存器说明参照Xilinx 官方数据手册UG585。
    配置1:通常情况(L2 Cache 被core 0和core 1共享)。
    Reg9_d_lockdown0 = 0x0;
    Reg9_1_lockdown0 = 0x0;
    Reg9_d_lockdown1 = 0x0;
    Reg9_1_lockdown1 = 0x0;

    reg9_d_lockdown0 = 0xFFF0;
    reg9_1_lockdown0 = 0xFFF0;
    reg9_d_lockdown1 = 0xFF0F;
    reg9_1_lockdown1 = 0xFF0F;

    reg9_d_lockdown0 = 0xFFC0;
    reg9_1_lockdown0 = 0xFFC0;
    reg9_d_lockdown1 = 0xFF03;
    reg9_1_lockdown1 = 0xFF03;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!