SD NAND,MKDV4GCL-ABB调试中发现性能下降的问题:
如下图:
以上图一是7.8Mbps随机写性能,图二是3Mbps的随机写性能,,,读写方式完全一样 都是0x0~0x4e2000地址范围的随机写。。性能ok的只要这么写就一直ok,一旦性能变差(只需要将随机写地址范围扩大,写性能就变差 即便地址范围缩小也再也回不去了) 需要格式化(必须是慢速格式化)才能恢复。
解决方法:
- 从SD卡内部的缓冲区满了,导致需要等待数据写入后才能释放,这可能导致长时间的busy状态。一种解决方法是建立一个能够保存足够数据的缓冲区,以应对SD卡内部缓冲区满的情况.尽量减少小文件的频繁读写,采用批量处理方式,这样可以减少写入操作的次数,降低拉busy的概率。
- 对于大文件或频繁读写的数据,可以考虑使用压缩技术,减少存储空间占用和读写时间,从而降低拉busy的概率。block不够,从而开始做垃圾回收。空间紧张时就会进行垃圾回收导致速度下降,频繁的读写操作SD卡中的垃圾数据(Dirty数据)增多,主控在进行垃圾回收(Garbage Collection)就会耗费更多时间,从而影响写入速度,写满就会往后搬运,然后就造成后面那块盘读写慢现象。垃圾回收是自动的,但操作系统可以通过发送TRIM命令来辅助SSD的垃圾回收过程。
- SD的垃圾回收并不是可以由用户或操作系统主动控制的。用户不能直接命令SD进行垃圾回收,因为这是由SD固件自动管理的内部处理过程。
- 用户数据的写入模式也会影响垃圾回收的速度。顺序写入时,垃圾数据比较集中,有利于垃圾回收的快速完成;而随机写入时,垃圾数据分散,垃圾回收相对较慢,性能也会受到影响。
随机读写的缺点:
与顺序读写相比,随机读写的速度通常较慢,尤其是在连续处理大量数据时。顺序读写在处理大文件和连续数据流时表现更佳,而随机读写则在处理大量小文件和需要快速访问特定数据的应用中更为有效。用户在选择SD卡时应根据自己的具体需求和应用场景来决定购买哪种类型的SD卡。
错误地侧重顺序读写或随机读写可能会导致性能不匹配用户的实际需求
侧重顺序读写:
如果用户的应用场景主要是处理小文件或者需要频繁随机访问数据(如频繁开关的应用程序、游戏加载、数据库操作等),而错误选择了主要优化顺序读写性能的SD卡,可能会导致性能不佳,因为顺序读写性能优势在这些场景下无法充分发挥。
侧重随机读写:
对于需要处理大文件传输的应用(如高清视频录制、大文件拷贝等),如果错误选择了主要优化随机读写性能的SD卡,可能会导致数据传输速度慢,影响用户体验。
附:
WS300集成了高性能32位RISC处理器、2.4G及BT/BLE双模5.4模块、24位高性能音频CODEC、 高性能电源管理模块、串口flash、USB接口、SD/TF、SPI LCD接口及灵活的常用外设接口。主要应用在智能手表、智能无线麦产品和游戏耳机产品上。