qinyunti 发表于 2022-7-25 22:51

米尔MYC-YT507开发板测评:性能测试之三:存储性能测试

<h1><b>前言</b></h1>

<p style="">对于越来越高端的嵌入式芯片,尤其用于汽车人机,AI,边缘计算等场景的高性能CPU,其综合性能是一个关注点,我们之前已经进行过CPU的coremark测试,其性能和国际主流芯片大厂类似芯片是差不多的,板子的性能不仅仅和CPU相关,综合来看的画存储部分也是一个很重要的部分,所以我们针对存储部分进行性能测试。</p>

<h1 style=""><b>RAM性能测试</b></h1>

<p style="">WSL中</p>

<p style="">&nbsp;</p>

<p style="">git clone <a href="https://github.com/qinyunti/STREAM.git"><u>https://github.com/qinyunti/STREAM.git</u></a></p>

<p style="">&nbsp;</p>

<p style="">cd STREAM/</p>

<p style="">&nbsp;</p>

<p style="">export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin</p>

<p style="">&nbsp;</p>

<p style="">aarch64-linux-gnu-gcc&nbsp;-O3 stream.c -o stream</p>

<p style="">&nbsp;</p>

<p style="">cp stream /mnt/e 导出到WINDOWS下,下载到开发板</p>

<p style="">&nbsp;</p>

<p style="">chmod +x stream</p>

<p style="">&nbsp;</p>

<p style="">./stream &nbsp;</p>

<p style="">&nbsp;</p>

<p style="">运行结果如下</p>

<p style=""> &nbsp;</p>

<p style="">参考https://www.cs.virginia.edu/stream/ref.html</p>

<h1 style=""><b>RAM压力测试</b></h1>

<p style="">参考 <a href="https://pyropus.ca./software/memtester/"><u>https://pyropus.ca./software/memtester/</u></a></p>

<p style="">&nbsp;</p>

<p style="">wget <a href="https://pyropus.ca./software/memtester/old-versions/memtester-4.5.1.tar.gz"><u>https://pyropus.ca./software/memtester/old-versions/memtester-4.5.1.tar.gz</u></a></p>

<p style="">&nbsp;</p>

<p style="">tar -xvf memtester-4.5.1.tar.gz</p>

<p style="">&nbsp;</p>

<p style="">cd memtester-4.5.1/</p>

<p style="">&nbsp;</p>

<p style="">export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin</p>

<p style="">&nbsp;</p>

<p style="">aarch64-linux-gnu-gcc&nbsp;-O3 memtester.c tests.c -o memtester</p>

<p style="">&nbsp;</p>

<p style="">cp memtester /mnt/e</p>

<p style="">&nbsp;</p>

<p style="">导出到WINDOWS下,下载到开发板</p>

<p style="">&nbsp;</p>

<p style="">chmod +x memtester</p>

<p style="">&nbsp;</p>

<p style="">./memtester</p>

<p style="">&nbsp;</p>

<p style="">运行结果如下,默认一直测试下去,可以最后指定测试次数</p>

<p style="">比如</p>

<p style="">./memtester 512M&nbsp;1</p>

<p style="">512M表示测试RAM大小</p>

<p style="">1表示测试一次</p>

<p style="">另外也可以-p直接指定物理地址,适合在板子开发阶段裸机代码直接指定物理地址测试。</p>

<p style=""> &nbsp;</p>

<p style="">&nbsp;</p>

<p style="">对于RAM我们一般会关注其可靠性,一般会考虑在不同温度,电磁环境等进行对比测试,我这里条件有限不再测试。</p>

<p style="">&nbsp;</p>

<h1 style=""><b>EMMC性能测试</b></h1>

<p style="">&nbsp;</p>

<h3 align="justify" style=""><b>查EMMC版本</b></h3>

<p align="justify" style="">&nbsp;</p>

<p align="justify" style=""> &nbsp;</p>

<p align="justify" style="">其中mmc0: new high speed MMC card at address 0001表示emmc 设备支持的时钟模式:</p>

<table style="border-collapse:collapse; border:none;Times New Roman&quot;">
        <tbody>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:1px solid #dddddd; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">Speed Mode</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:1px solid #dddddd; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">clock (MHz)</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">Default Speed</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">26</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">Hight Speed SDR</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">52</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">Hight Speed DDR</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">52</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">HS200</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">200</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:1px solid #dddddd" valign="center">
                        <p align="justify" style="">HS400</p>
                        </td>
                        <td style="border-bottom:1px solid #dddddd; border-top:none; border-right:1px solid #dddddd; border-left:none" valign="center">
                        <p align="justify" style="">200</p>
                        </td>
                </tr>
        </tbody>
</table>

<p align="justify" style="">SDR : 单边沿采样</p>

<p align="justify" style="">DDR : 双边沿采样</p>

<p align="justify" style="">&nbsp;</p>

<p align="justify" style="">其中mmcblk0boot0,mmcblk0boot1,mmcblk0rpmb为物理分区</p>

<p style="">所以我们这里x8-bit理论最大吞吐量应该是52MB/S。</p>

<p style="">&nbsp;</p>

<p style="">输入df回车</p>

<p style="">我们看到EMMC有两个分区</p>

<p style="">/dev/mmcblk0p4</p>

<p style="">/dev/mmcblk0p8</p>

<p style="">&nbsp;</p>

<p style=""> &nbsp;</p>

<p style="">&nbsp;</p>

<p style="">输入mount回车</p>

<p style=""> &nbsp;</p>

<p style="">我们看到两个分区分别挂载在</p>

<p style="">/根目录</p>

<p style="">和</p>

<p style="">/media</p>

<p style="">&nbsp;</p>

<p style="">ls /media查看里面没有文件</p>

<p style="">我们就拿/media &nbsp;/dev/mmcblk0p8作为测试</p>

<p style="">&nbsp;</p>

<p style="">测试命令</p>

<p style="">&nbsp;</p>

<p style="">读</p>

<p style="">dd if=/dev/mmcblk0p8 of=/dev/null bs=块大小 count=块数量</p>

<p style="">写</p>

<p style="">dd if=/dev/zero of=/media/test.bin bs=块大小 count=块数量</p>

<p style="">测试记录如下</p>

<p style=""> &nbsp;</p>

<p style=""> &nbsp;</p>

<p style=""> &nbsp;</p>

<p style="">&nbsp;</p>

<p style=""> &nbsp;</p>

<p style=""> &nbsp;</p>

<p style=""> &nbsp;</p>

<table style="border-collapse:collapse; border:none;Times New Roman&quot;">
        <tbody>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">&nbsp;</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">bs/count &nbsp;1GB</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">指令</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">结果</p>
                        </td>
                </tr>
                <tr>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">读</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">16k/65536</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/mmcblk0p8 of=/dev/null bs=16k count=65536</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">45.124MB/S</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">4k/262144</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/mmcblk0p8 of=/dev/null bs=4k count=262144</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">45.118MB/S</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">1k/1048576</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/mmcblk0p8 of=/dev/null bs=1k count=1048576</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">45.096MB/S</p>
                        </td>
                </tr>
                <tr>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">写</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">16k/65536</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/zero of=/media/test.bin bs=16k&nbsp;count=65536</p>

                        <p style="">&nbsp;</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">33.524MB/S</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">4k/262144</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/zero of=/media/test.bin bs=4k&nbsp;count=262144</p>

                        <p style="">&nbsp;</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">33.379MB/S</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">1k/1048576</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">time dd if=/dev/zero of=/media/test.bin bs=1k&nbsp;count=1048576</p>

                        <p style="">&nbsp;</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top">
                        <p style="">32.395MB/S</p>
                        </td>
                </tr>
        </tbody>
</table>

<p style="">&nbsp;</p>

<p style="">从上测试来看读与最大52MB/S的吞吐量差不太多,写的速率也有33MB/S性能是不错的。</p>

<h1 style=""><b>SD卡性能测试</b></h1>

<p style="">与EMMC测试方法类似,并且和SD速率相关这里不再测试。</p>

<p style="">&nbsp;</p>

<h1 style=""><b>总结</b></h1>

<p style="">RAM和EMMC等关键存储器件性能也是不错的,可以满足边缘计算,人机交互,车载等各类高性能应用场景需求。</p>

<p style="">&nbsp;</p>

<p style="">&nbsp;</p>

<p style="">&nbsp;</p>
页: [1]
查看完整版本: 米尔MYC-YT507开发板测评:性能测试之三:存储性能测试