0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用AXI performance monitors(APM)测试MPSoC DDR访问带宽

李林 来源:wanglq2011 作者:wanglq2011 2022-08-02 14:20 次阅读

MPSoC的DDR控制器的数据通道上集成了 AXI performance monitors (APM)。具体情况,可以参考Xilinx UG1085 (v2.2)中Chapter 15的“Figure 15‐1: PS Interconnect”或者Figure 17-1。

1. APM驱动程序
对于AXI performance monitors (APM),xilinx提供的驱动程序是drivers\uio\uio_xilinx_apm.c,相关匹配字符串和主要数据结构如下:

static const struct of_device_id xapm_of_match[] = {
        { .compatible = "xlnx,axi-perf-monitor", },
        { /* end of table*/ }
};

MODULE_DEVICE_TABLE(of, xapm_of_match);
static struct platform_driver xapm_driver = {
        .driver = {
                 .name = "xilinx-axipmon",
                 .of_match_table = xapm_of_match,
                 .pm = &xapm_dev_pm_ops,
        },
        .probe = xapm_probe,
        .remove = xapm_remove,
};

APM驱动程序最终会注册UIO设备。

在每个单板的device tree里,会支持DDR的APM。比如,在VCU TRD里,为DDR的APM定义了下面字段。

 perf-monitor@fd0b0000 {
                    compatible = "xlnx,axi-perf-monitor";
                    reg = <0x00 0xfd0b0000 0x00 0x10000> ;
                    interrupts = <0x00 0x7b 0x04> ;
                    interrupt-parent = <0x04> ;
                    xlnx,enable-profile = <0x00> ;
                    xlnx,enable-trace = <0x00> ;
                    xlnx,num-monitor-slots = <0x06> ;
                    xlnx,enable-event-count = <0x01> ;
                    xlnx,enable-event-log = <0x00> ;
                    xlnx,have-sampled-metric-cnt = <0x01> ;
                    xlnx,num-of-counters = <0x0a> ;
                    xlnx,metric-count-width = <0x20> ;
                    xlnx,metrics-sample-count-width = <0x20> ;
                    xlnx,global-count-width = <0x20> ;
                    xlnx,metric-count-scale = <0x01> ;
                    clocks = <0x03 0x1c> ;
                    phandle = <0x9b> ;
         };

     perf_monitor_ddr = "/amba/perf-monitor@fd0b0000";

OCM、CCI等模块也有APM。

perf_monitor_ocm = "/amba/perf-monitor@ffa00000";
     perf_monitor_cci = "/amba/perf-monitor@fd490000";
     perf_monitor_lpd = "/amba/perf-monitor@ffa10000";

单板Linux启动后,能查询到对应的UIO设备。

root@vcu_trd:~# ls /dev/uio*
/dev/uio0  /dev/uio1  /dev/uio2  /dev/uio3  /dev/uio4

2. APM用户态程序
对于AXI performance monitors (APM),xilinx也提供了用户态程序,是apm_main.elf。使用apm_main.elf,可以查询APM监视到的DDR带宽利用情况。

root@vcu_trd:~# chmod +x apm_main.elf
root@vcu_trd:~# ./apm_main.elf -d /dev/uio0
AXI PMON is in Advanced Mode
port 1 read: 0 0.00 MBps
port 1 write: 0 0.00 MBps
port 2 read: 0 0.00 MBps
port 2 write: 0 0.00 MBps
port 4 read: 0 0.00 MBps
port 4 write: 0 0.00 MBps
port 5 read: 0 0.00 MBps
port 5 write: 0 0.00 MBps
root@vcu_trd:~#
root@vcu_trd:~# ./apm_main.elf -d /dev/uio1
AXI PMON is in Advanced Mode
port 1 read: 12523440 12.52 MBps
port 1 write: 7564856 7.56 MBps
port 2 read: 13290992 13.29 MBps
port 2 write: 7493209 7.49 MBps
port 4 read: 0 0.00 MBps
port 4 write: 331253760 331.25 MBps
port 5 read: 667254864 667.25 MBps
port 5 write: 320656878 320.66 MBps
root@vcu_trd:~# ./apm_main.elf -d /dev/uio2
AXI PMON is in Advanced Mode
port 1 read: 0 0.00 MBps
port 1 write: 0 0.00 MBps
port 2 read: 0 0.00 MBps
port 2 write: 0 0.00 MBps
port 4 read: 0 0.00 MBps
port 4 write: 0 0.00 MBps
port 5 read: 0 0.00 MBps
port 5 write: 0 0.00 MBps
root@vcu_trd:~# ./apm_main.elf -d /dev/uio3
AXI PMON is in Advanced Mode
port 1 read: 0 0.00 MBps
port 1 write: 0 0.00 MBps
port 2 read: 0 0.00 MBps
port 2 write: 0 0.00 MBps
port 4 read: 0 0.00 MBps
port 4 write: 0 0.00 MBps
port 5 read: 0 0.00 MBps
port 5 write: 0 0.00 MBps

上述设备“/dev/uio1”代表DDR APM1。在使用VCU TRD进行1080p编码时,port 4写带宽331.25 MBps,port 5读带宽667.25 MBps,port 5写带宽320.66 MBps。每个DDR port对应的硬件模块,请参考ug1085的Figure 17-1。port 4连接到了HP 1/HP 2。port 5连接到了HP 3。

pYYBAGGYH22AMdu4AAHhJWeVIiM619.png
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • APM
    APM
    +关注

    关注

    0

    文章

    69

    浏览量

    12862
  • MPSoC
    +关注

    关注

    0

    文章

    194

    浏览量

    24113
  • AXI
    AXI
    +关注

    关注

    1

    文章

    126

    浏览量

    16291
收藏 人收藏

    评论

    相关推荐

    使用AXI-Full接口的IP进行DDR的读写测试

    首先对本次工程进行简要说明:本次工程使用AXI-Full接口的IP进行DDR的读写测试。在我们的DDR读写IP中,我们把读写完成和读写错误信号关联到PL端的LED上,用于指示
    的头像 发表于 07-18 09:53 4061次阅读
    使用<b class='flag-5'>AXI</b>-Full接口的IP进行<b class='flag-5'>DDR</b>的读写<b class='flag-5'>测试</b>

    Zynq MPSoC系列器件的AXI总线介绍

    MPSoC有六个PL侧高性能(HP)AXI主接口连接到PS侧的FPD(PL-FPD AXI Masters),可以访问PS侧的所有从设备。这些高带宽
    发表于 07-22 09:25 2644次阅读

    Designing High-Performance Video Systems with the AXI Interconnect

    Designing High-Performance Video Systems with the AXI InterconnectHigh-performance video systems
    发表于 01-26 18:57

    如何实现从microblaze端访问ARM DDR

    如附图中所示,我需要ARM进行圆顶计算并将结果存储到其DDR中,我希望这些数据可以通过AXI_GP或AXI_HP(在这种情况下,使用S_AXI_GP)通过微网格
    发表于 10-31 07:49

    玩转Zynq连载38——[ex57] Zynq AXI HP总线带宽测试

    ` 1概述用于PL与DDR3交互的AXI HP总线,它的性能到底如何?吞吐量是否能满足我们的应用?必须4个通道同时使用?还是只使用1个通道?时钟频率的高低对AXI HP总线的带宽有什么
    发表于 11-28 10:11

    AXI流量生成器不会驱动QoS线路怎么办

    我目前正在使用ZCU102板测试Zync Ultrascale + MPSoC。并要求使用APM检查DDR子系统性能。令人惊讶的是,AXI
    发表于 05-21 14:00

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

      如何调试Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+ MPSoC VCU DDR 控制器是一款专用
    发表于 01-07 16:02

    一文详解MPSoC芯片

    ,是高性能/带宽AXI4标准的接口,总共有四个,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和FPD Main Switch)  S_
    发表于 01-07 17:11

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

    如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    发表于 01-22 06:29

    XILINX MPSOC系列FPGA视频教程

    AXI总线开发34_AXI总线协议介绍35_PL读写PS端DDR之Vivado创建过程36_PL读写PS端DDR之Vitis工程创建及联合调试37_PS与PL交互之BRAM读写Viv
    发表于 07-21 10:34

    Arm AMBA协议集中AHB与AXI相比访问DDR效率带宽会差很大

    Arm AMBA协议集中,AHB没有outstanding, 只有burst。 与AXI 相比访问DDR 效率,带宽会差很大?
    发表于 09-14 11:44

    Arm中AHB与AXI相比访问DDR效率带宽会差很大

    Arm AMBA协议集中,AHB 没有outstanding, 只有burst。与AXI 相比 访问DDR 效率,带宽会差很大?
    发表于 09-27 11:59

    ZCU10中MPSoCDDR复位信号设计

    Xilinx的开发板ZCU102支持休眠到内存(suspend-to-ram)。休眠到内存时,DDR进入自刷新,MPSoC被关电,完全不耗电。唤醒时,MPSoC根据外部输入信号判断出不是上电启动而是
    的头像 发表于 11-04 17:02 2471次阅读
    ZCU10中<b class='flag-5'>MPSoC</b>对<b class='flag-5'>DDR</b>复位信号设计

    更新的AXI performance monitors(APM)测试工具

    在博客文章 使用 AXI performance monitors (APM)测试MPSoC
    发表于 08-02 14:52 633次阅读

    基于AXI总线的DDR3读写测试

    本文开源一个FPGA项目:基于AXI总线的DDR3读写。之前的一篇文章介绍了DDR3简单用户接口的读写方式:《DDR3读写测试》,如果在某些
    的头像 发表于 09-01 16:20 2291次阅读
    基于<b class='flag-5'>AXI</b>总线的<b class='flag-5'>DDR</b>3读写<b class='flag-5'>测试</b>