之前做了S3C6410 ATA接口的性能测试,发现在UDMA66模式下,FLX6410的2.5寸机械硬盘的读写速度大概在36MB/S 左右,离UDMA66的最大理论传输66MB/S还有一定的差距,为了验证这个是否跟CPU的IO处理能力有关,这次把原来800MHz的FLX6410 超频到1GHz,如果真的是和CPU的IO处理能力有关的话,随着CPU主频的提高,硬盘的传输速度也会跟着有明显幅度的提高,结果到底如何呢? 要测试,先超频。为了使FLX6410能在1GHz频率下稳定可靠的运行,需要提高CPU的核心电压,由于板上设有PMIC,提高核电压就是通过I2C修 改个PMIC寄存器的值就可以了,这个可以直接在uboot下面操作,免去改代码的麻烦;超频到1GHz同样也可以在uboot中通过命令修改 S3C6410的相关寄存器实现。 在原来bootcmd的环境变量前加入“imw 0x16 0x10 0xff;mw 0x7e00f00c 0xc1f40301;”就可以在uboot启动内核前把CPU的核心电压提高到1.35V,主频超到1GHz了。启动内核,查看输出信息: 确认FLX6410已经运行在1GHz的主频上了。板子启动后通过ssh登录,再确认一下板子运行的频率: OK,测试可以正式开始了,结果如下: 对比之前800MHz时的 36MB/S的速度,这个42MB/S的速度整整提高了16.7%,已经排除了测试误差造成的了。由此基本可以说明S3C6410的ATA接口在 UDMA66模式下的最大传输速率最终受限于CPU本身的IO处理能力。在1GHz的主频,512MB mDDR333,2.6.38.2的linux内核的条件下,S3C6410的ATA接口的最大吞吐量是42MB/S,是UDMA66理论极限的 63.6%,这个对于S3C6410这种主要针对手持设备的嵌入式SOC来说,应该是个很不错的结果了,该速度完全可以把6410的其他外设接口给秒了。 而对6410来说,这么个高性能的接口竟然被当成了摆设,除了可惜还能说啥呢。 (sdecat) |