0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用AXI performance monitors(APM)測試MPSoC DDR訪問帶寬

李林 ? 來源:wanglq2011 ? 作者:wanglq2011 ? 2022-08-02 14:20 ? 次閱讀

MPSoC的DDR控制器的數(shù)據(jù)通道上集成了 AXI performance monitors (APM)。具體情況,可以參考Xilinx UG1085 (v2.2)中Chapter 15的“Figure 15‐1: PS Interconnect”或者Figure 17-1。

1. APM驅(qū)動程序
對于AXI performance monitors (APM),xilinx提供的驅(qū)動程序是drivers\uio\uio_xilinx_apm.c,相關(guān)匹配字符串和主要數(shù)據(jù)結(jié)構(gòu)如下:

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驅(qū)動程序最終會注冊UIO設(shè)備。

在每個(gè)單板的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啟動后,能查詢到對應(yīng)的UIO設(shè)備。

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

2. APM用戶態(tài)程序
對于AXI performance monitors (APM),xilinx也提供了用戶態(tài)程序,是apm_main.elf。使用apm_main.elf,可以查詢APM監(jiān)視到的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

上述設(shè)備“/dev/uio1”代表DDR APM1。在使用VCU TRD進(jìn)行1080p編碼時(shí),port 4寫帶寬331.25 MBps,port 5讀帶寬667.25 MBps,port 5寫帶寬320.66 MBps。每個(gè)DDR port對應(yīng)的硬件模塊,請參考ug1085的Figure 17-1。port 4連接到了HP 1/HP 2。port 5連接到了HP 3。

pYYBAGGYH22AMdu4AAHhJWeVIiM619.png
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • APM
    APM
    +關(guān)注

    關(guān)注

    1

    文章

    71

    瀏覽量

    13010
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    24283
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16631
收藏 人收藏

    評論

    相關(guān)推薦

    使用AXI-Full接口的IP進(jìn)行DDR的讀寫測試

    首先對本次工程進(jìn)行簡要說明:本次工程使用AXI-Full接口的IP進(jìn)行DDR的讀寫測試。在我們的DDR讀寫IP中,我們把讀寫完成和讀寫錯(cuò)誤信號關(guān)聯(lián)到PL端的LED上,用于指示
    的頭像 發(fā)表于 07-18 09:53 ?5254次閱讀
    使用<b class='flag-5'>AXI</b>-Full接口的IP進(jìn)行<b class='flag-5'>DDR</b>的讀寫<b class='flag-5'>測試</b>

    Zynq MPSoC系列器件的AXI總線介紹

    MPSoC有六個(gè)PL側(cè)高性能(HP)AXI主接口連接到PS側(cè)的FPD(PL-FPD AXI Masters),可以訪問PS側(cè)的所有從設(shè)備。這些高帶寬
    發(fā)表于 07-22 09:25 ?3246次閱讀

    Designing High-Performance Video Systems with the AXI Interconnect

    Designing High-Performance Video Systems with the AXI InterconnectHigh-performance video systems
    發(fā)表于 01-26 18:57

    如何實(shí)現(xiàn)從microblaze端訪問ARM DDR?

    如附圖中所示,我需要ARM進(jìn)行圓頂計(jì)算并將結(jié)果存儲到其DDR中,我希望這些數(shù)據(jù)可以通過AXI_GP或AXI_HP(在這種情況下,使用S_AXI_GP)通過微網(wǎng)格
    發(fā)表于 10-31 07:49

    AXI流量生成器不會驅(qū)動QoS線路怎么辦

    我目前正在使用ZCU102板測試Zync Ultrascale + MPSoC。并要求使用APM檢查DDR子系統(tǒng)性能。令人驚訝的是,AXI
    發(fā)表于 05-21 14:00

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

      如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用
    發(fā)表于 01-07 16:02

    一文詳解MPSoC芯片

    ,是高性能/帶寬AXI4標(biāo)準(zhǔn)的接口,總共有四個(gè),PL模塊作為主設(shè)備連接。主要用于PL訪問PS上的存儲器(DDR和FPD Main Switch)  S_
    發(fā)表于 01-07 17:11

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發(fā)表于 01-22 06:29

    XILINX MPSOC系列FPGA視頻教程

    AXI總線開發(fā)34_AXI總線協(xié)議介紹35_PL讀寫PS端DDR之Vivado創(chuàng)建過程36_PL讀寫PS端DDR之Vitis工程創(chuàng)建及聯(lián)合調(diào)試37_PS與PL交互之BRAM讀寫Viv
    發(fā)表于 07-21 10:34

    Arm AMBA協(xié)議集中AHB與AXI相比訪問DDR效率帶寬會差很大

    Arm AMBA協(xié)議集中,AHB沒有outstanding, 只有burst。 與AXI 相比訪問DDR 效率,帶寬會差很大?
    發(fā)表于 09-14 11:44

    Arm中AHB與AXI相比訪問DDR效率帶寬會差很大

    Arm AMBA協(xié)議集中,AHB 沒有outstanding, 只有burst。與AXI 相比 訪問DDR 效率,帶寬會差很大?
    發(fā)表于 09-27 11:59

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在 Zynq UltraScale+ MPSoC EV 部件上與 Zynq
    發(fā)表于 02-23 06:00 ?15次下載
    如何調(diào)試 Zynq UltraScale+ <b class='flag-5'>MPSoC</b> VCU <b class='flag-5'>DDR</b> 控制器?

    更新的AXI performance monitors(APM)測試工具

    在博客文章 使用 AXI performance monitors (APM)測試MPSoC
    發(fā)表于 08-02 14:52 ?871次閱讀

    AMD MPSoC PS PCIe使用要點(diǎn)

    有客戶需要通過PCie從Windows系統(tǒng)訪問MPSoCDDR,從而使X86和A53通過共享DDR內(nèi)存的方式交互大量數(shù)據(jù)
    的頭像 發(fā)表于 07-10 16:52 ?925次閱讀
    AMD <b class='flag-5'>MPSoC</b> PS PCIe使用要點(diǎn)

    基于AXI總線的DDR3讀寫測試

    本文開源一個(gè)FPGA項(xiàng)目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡單用戶接口的讀寫方式:《DDR3讀寫測試》,如果在某些
    的頭像 發(fā)表于 09-01 16:20 ?4564次閱讀
    基于<b class='flag-5'>AXI</b>總線的<b class='flag-5'>DDR</b>3讀寫<b class='flag-5'>測試</b>