DDR带宽(Double Data Rate Bandwidth)是指DDR内存在一秒内可以传输的数据量,通常以 GB/s(Gigabytes per second) 为单位。它是衡量内存系统性能的重要指标,直接影响系统的数据吞吐能力。
1. 如何计算DDR带宽
计算DDR理论带宽的公式为:
其中,位宽 (bit width)指的是内存总线的位宽,例如64位、128位、16bit、32bit等,bit意为"位"或"比特"。
主频指的是DDR内存的实际主频,而不是DDR内存的倍频频率。因此,在计算理论带宽时,需要将DDR主频和位宽相乘即可。例如,以2400MHz主频,64bit位宽为例,计算公式为:
这里的Mbit/s指的是兆比特每秒,MB/s指的是兆字节每秒,GB/s指的是千兆字节每秒。
需要注意的是,这里的理论带宽是指DDR内存的最大传输速率,实际带宽会受到多种因素的影响,例如内存控制器效率、内存延迟等。
2. DDR data rate和DDR主频
DDR data rate和DDR主频是一个意思吗?
DDR data rate和DDR主频不是一个意思。DDR data rate指的是内存传输数据的速率,单位通常为Mbps。
DDR主频指的是内存控制器的时钟频率,单位是MHz。
两者之间的关系是DDR data rate = DDR主频 * 2,例如DDR4-3200内存的DDR data rate为3200Mbps,而DDR主频为1600MHz。
这个“2”哪来的?接着往下看。
3. Mbps和Mhz
Mbps和Mhz是一个意思吗?
Mbps和MHz不是一个意思。Mbps指的是数据传输速率,即每秒传输的数据量,单位为兆比特每秒。而MHz指的是时钟频率,即每秒钟的时钟周期数,单位为兆赫兹。
在DDR内存中,数据传输是在时钟周期的上升沿和下降沿都进行一次采样,因此DDR data rate是DDR主频的两倍。
4. 带宽计算示例
bit width,2x32bit,max data rate 8567Mbps
问DDR带宽是多少?
5. J6上实测带宽占用情况
带宽占用可以拆分为三类来源:VIO 视频通路带宽占用、BPU 算法模型带宽占用、CPU 应用程序带宽占用,地平线提供的带宽监测工具hrut_ddr或hrt_ucp_monitor支持以一定的频率抓取DDR实时的数据,通过对数据进行统计分析得到整体带宽的平均占用和峰值占用,以及各个模块的带宽占用。下面我们来看一下hrt_ucp_monitor监控带宽的用法示例。
hrt_ucp_monitor 是一个监控硬件 IP 占用率和内存信息的工具。支持的内存信息包括DDR读写带宽,ION内存,进程内存。考虑到本文的主题,我们只关注DDR读写带宽的情况。
工具准备:将工具链OpenExplorer开发包中hrt_ucp_monitor传到开发板上即可。
运行hrt_ucp_monitor时,如果不指定参数,则使用默认参数运行。默认开启所有硬件IP监控,以交互模式运行, BPU 和 DSP 每秒采样 500 次,硬件 IP 占用率每 1000ms 刷新一次。如果想要修改,可以参考工具链的用户手册,或运行 hrt_ucp_monitor -h 获取工具的使用详情。
在A终端运行程序,在B终端运行命令:hrt_ucp_monitor,即可看到对应的监控信息:


