对于越来越高端的嵌入式芯片,尤其用于汽车人机,AI,边缘计算等场景的高性能CPU,其综合性能是一个关注点,我们之前已经进行过CPU的coremark测试,其性能和国际主流芯片大厂类似芯片是差不多的,板子的性能不仅仅和CPU相关,综合来看的画存储部分也是一个很重要的部分,所以我们针对存储部分进行性能测试。
WSL中
git clone https://github.com/qinyunti/STREAM.git
cd STREAM/
export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin
aarch64-linux-gnu-gcc -O3 stream.c -o stream
cp stream /mnt/e 导出到WINDOWS下,下载到开发板
chmod +x stream
./stream
运行结果如下
参考https://www.cs.virginia.edu/stream/ref.html
参考 https://pyropus.ca./software/memtester/
wget https://pyropus.ca./software/memtester/old-versions/memtester-4.5.1.tar.gz
tar -xvf memtester-4.5.1.tar.gz
cd memtester-4.5.1/
export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin
aarch64-linux-gnu-gcc -O3 memtester.c tests.c -o memtester
cp memtester /mnt/e
导出到WINDOWS下,下载到开发板
chmod +x memtester
./memtester
运行结果如下,默认一直测试下去,可以最后指定测试次数
比如
./memtester 512M 1
512M表示测试RAM大小
1表示测试一次
另外也可以-p直接指定物理地址,适合在板子开发阶段裸机代码直接指定物理地址测试。
对于RAM我们一般会关注其可靠性,一般会考虑在不同温度,电磁环境等进行对比测试,我这里条件有限不再测试。
其中mmc0: new high speed MMC card at address 0001表示emmc 设备支持的时钟模式:
Speed Mode |
clock (MHz) |
Default Speed |
26 |
Hight Speed SDR |
52 |
Hight Speed DDR |
52 |
HS200 |
200 |
HS400 |
200 |
SDR : 单边沿采样
DDR : 双边沿采样
其中mmcblk0boot0,mmcblk0boot1,mmcblk0rpmb为物理分区
所以我们这里x8-bit理论最大吞吐量应该是52MB/S。
输入df回车
我们看到EMMC有两个分区
/dev/mmcblk0p4
/dev/mmcblk0p8
输入mount回车
我们看到两个分区分别挂载在
/根目录
和
/media
ls /media查看里面没有文件
我们就拿/media /dev/mmcblk0p8作为测试
测试命令
读
dd if=/dev/mmcblk0p8 of=/dev/null bs=块大小 count=块数量
写
dd if=/dev/zero of=/media/test.bin bs=块大小 count=块数量
测试记录如下
|
bs/count 1GB |
指令 |
结果 |
读 |
16k/65536 |
time dd if=/dev/mmcblk0p8 of=/dev/null bs=16k count=65536 |
45.124MB/S |
4k/262144 |
time dd if=/dev/mmcblk0p8 of=/dev/null bs=4k count=262144 |
45.118MB/S |
|
1k/1048576 |
time dd if=/dev/mmcblk0p8 of=/dev/null bs=1k count=1048576 |
45.096MB/S |
|
写 |
16k/65536 |
time dd if=/dev/zero of=/media/test.bin bs=16k count=65536
|
33.524MB/S |
4k/262144 |
time dd if=/dev/zero of=/media/test.bin bs=4k count=262144
|
33.379MB/S |
|
1k/1048576 |
time dd if=/dev/zero of=/media/test.bin bs=1k count=1048576
|
32.395MB/S |
从上测试来看读与最大52MB/S的吞吐量差不太多,写的速率也有33MB/S性能是不错的。
与EMMC测试方法类似,并且和SD速率相关这里不再测试。
RAM和EMMC等关键存储器件性能也是不错的,可以满足边缘计算,人机交互,车载等各类高性能应用场景需求。