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

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

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

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

李林 ? 來(lái)源: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ū)動(dòng)程序
對(duì)于AXI performance monitors (APM),xilinx提供的驅(qū)動(dòng)程序是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ū)動(dòng)程序最終會(huì)注冊(cè)UIO設(shè)備。

在每個(gè)單板的device tree里,會(huì)支持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啟動(dòng)后,能查詢(xún)到對(duì)應(yīng)的UIO設(shè)備。

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

2. APM用戶(hù)態(tài)程序
對(duì)于AXI performance monitors (APM),xilinx也提供了用戶(hù)態(tài)程序,是apm_main.elf。使用apm_main.elf,可以查詢(xún)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寫(xiě)帶寬331.25 MBps,port 5讀帶寬667.25 MBps,port 5寫(xiě)帶寬320.66 MBps。每個(gè)DDR port對(duì)應(yīng)的硬件模塊,請(qǐng)參考ug1085的Figure 17-1。port 4連接到了HP 1/HP 2。port 5連接到了HP 3。

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

    關(guān)注

    1

    文章

    70

    瀏覽量

    12937
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

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

    關(guān)注

    1

    文章

    127

    瀏覽量

    16510
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    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端訪問(wèn)ARM DDR?

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

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

    我目前正在使用ZCU102板測(cè)試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 控制器是一款專(zhuān)用
    發(fā)表于 01-07 16:02

    一文詳解MPSoC芯片

    ,是高性能/帶寬AXI4標(biāo)準(zhǔn)的接口,總共有四個(gè),PL模塊作為主設(shè)備連接。主要用于PL訪問(wèn)PS上的存儲(chǔ)器(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總線開(kāi)發(fā)34_AXI總線協(xié)議介紹35_PL讀寫(xiě)PS端DDR之Vivado創(chuàng)建過(guò)程36_PL讀寫(xiě)PS端DDR之Vitis工程創(chuàng)建及聯(lián)合調(diào)試37_PS與PL交互之BRAM讀寫(xiě)Viv
    發(fā)表于 07-21 10:34

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

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

    Arm中AHB與AXI相比訪問(wèn)DDR效率帶寬會(huì)差很大

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

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

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專(zhuān)用 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)測(cè)試工具

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

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

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

    基于AXI總線的DDR3讀寫(xiě)測(cè)試

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