4.7.9. hrut_ddr

hrut_ddr 是一个用于监控 DDR( Double Data Rate,双倍速率内存)带宽和性能的工具。它通过读取特定设备文件(如 /dev/axi_mon 或 /dev/ddrmonitor)中的数据,实时显示 DDR 的读写带宽、延迟等信息。

4.7.9.1. 语法说明

以下是执行 hrut_ddr -h 输出的 Usage

DDR MONITOR HELP INFORMATION
>>> -t/--type   sample type: cpu,bpu,vin,codec,gpu,sum,all
>>> -p/--period sample period: [1-1000] ms
>>> -r/--raw    print raw data

4.7.9.2. 参数选项说明

以下是 hrut_ddr 支持的选项及其说明:

  • -t/–type:指定要监控的 DDR 端口类型。可选值包括: 作用:指定要监控的 DDR 端口类型。 参数:

    • cpu: CPU 端口。

    • bpu: BPU0 ( BPU,硬件加速单元)端口。

    • vin: VIO( Video Input/Output)端口。

    • codec:编解码器端口。

    • gpu: GPU (Graphics Processing Unit,图形处理单元 ) 端口。

    • sum:显示所有端口的总和。

    • all:显示所有端口的详细信息。

  • -p/–period: 作用:设置采样周期。 参数:采样周期,单位为毫秒( ms),范围为 [1-1000]。

  • -r/–raw: 作用:以原始数据格式显示详细信息。

  • -h/–help: 作用:显示帮助信息,解释命令的使用方法。

4.7.9.3. 各项命令选项及其功能说明

显示帮助信息

命令:

hrut_ddr -h

功能:

显示帮助信息,解释命令的使用方法。

打印输出:

DDR MONITOR HELP INFORMATION
>>> -t/--type   sample type: cpu,bpu,vin,codec,gpu,sum,all
>>> -p/--period sample period: [1-1000] ms
>>> -r/--raw    print raw data

监控所有端口的 DDR 带宽

命令:

hrut_ddr -t all

功能:

监控所有 DDR 端口的读写带宽信息。

打印输出:

root@buildroot:/userdata/gmsl_test# hrut_ddr -t all
port_type:ALL
DDR type is: LPDDR4

Set sample period:10ms, 100 samples per seconds

Time 3546.680s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     19        0        0       12        0       31
Write:      7        0        0        0        0        7

Time 3546.690s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :      1        0        0       11        0       12
Write:      0        0        0        0        0        0

Time 3546.700s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :      0        0        0       11        0       11
Write:      0        0        0        0        0        0

Time 3546.710s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :      3        0        0       12        0       15
Write:      1        0       37        0        0       38

Time 3546.720s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :      3        0        0       13        0       16
Write:      0        0       77        0        0       77

Time 3546.730s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :      0        0        0       13        0       13
Write:      0        0       77        0        0       77

Time 3546.740s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     31        0      334       14        0      379
Write:     19        0      383        0        0      402

Time 3546.750s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :    342        0      563       14        0      919
Write:    323        0      607        0        0      930

Time 3546.760s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     40        0        0      518        0      558
Write:     10        0        0      271        0      281

结果解析:

  • Time:表示当前采样时间。

  • Read 和 Write:分别表示 DDR 的读操作和写操作的带宽信息。

  • P0:CPU、 P1:BPU 等:表示不同端口的带宽值,单位为 MB/s。

  • SUM:表示所有端口的总带宽。

监控特定端口的 DDR 带宽

命令:

hrut_ddr -t cpu

功能:

仅监控 CPU 端口的 DDR 带宽信息。

打印输出:

root@buildroot:/userdata/gmsl_test# hrut_ddr -t cpu
port_type:CPU
DDR type is: LPDDR4

Set sample period:10ms, 100 samples per seconds

Time 4521.998s       P0:CPU     SUM  MB/S
             Read :     20      638

             Write:     17      689

Time 4522.008s       P0:CPU     SUM  MB/S
             Read :    359      845

             Write:    331      747

以原始数据格式显示详细信息

命令:

hrut_ddr -t all -r

功能:

以原始数据格式显示所有 DDR 端口的详细信息,包括延迟、命令数等。

打印输出:

root@buildroot:/userdata/gmsl_test# hrut_ddr -t all -r
port_type:ALL
DDR type is: LPDDR4

Set sample period:10ms, 100 samples per seconds

Time 4651.868s
Read :
        CPU  (bw:    17 cmd_num:     0 max_lantency:  1679 min_lantency:    50 cmd_accomulative_latency:    253955 stop_ost:     2)
        BPU  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
        VIN  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
        CODEC(bw:    11 cmd_num:     0 max_lantency:  2147 min_lantency:    71 cmd_accomulative_latency:   2415530 stop_ost:     0)
        GPU  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
Write:
        CPU  (bw:     6 cmd_num:     0 max_lantency:    86 min_lantency:     8 cmd_accomulative_latency:      9142 stop_ost:     0)
        BPU  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
        VIN  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
        CODEC(bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)
        GPU  (bw:     0 cmd_num:     0 max_lantency:     0 min_lantency:     0 cmd_accomulative_latency:         0 stop_ost:     0)

Time 4651.878s

结果解析:

  • bw:表示带宽值,单位为 MB/s。

  • cmd_num:表示命令总数。

  • max_latency 和 min_latency:表示最大和最小延迟。

  • cmd_accomulative_latency:表示累积延迟。

  • stop_ost:表示停止时的时钟周期数。

设置采样周期

命令:

hrut_ddr -t all -p 100

功能:

设置采样周期为 100 毫秒,并监控所有 DDR 端口的带宽信息。

打印输出:

root@buildroot:/userdata/gmsl_test# hrut_ddr -t all -p 100
port_type:ALL
DDR type is: LPDDR4

Set sample period:100ms, 10 samples per seconds

Time 4942.393s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     42        0       90       64        0      196
Write:     35        0      118       28        0      181

Time 4942.493s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     39        0       90       64        0      193
Write:     33        0      118       28        0      179

Time 4942.593s
MB/S   P0:CPU   P1:BPU  P2:VIN  P3:CODEC  P4:GPU      SUM
Read :     38        0       90       64        0      192
Write:     32        0      118       28        0      178