频繁擦写SPI FLASH是否要加入平衡擦写算法

2019-07-21 04:57发布

RT,最近一个项目要用频繁使用到SPIFLASH(W25Q32),看了它的DATASHEET似乎没有在平衡擦写这块给出太多说明,所以问下大家,在频繁使用SPIFLASH时候都是如何处理的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
xiaoyan
1楼-- · 2019-07-21 08:17
加入比较好,每次写数据的开始地址,是上一个数据的结束地址,空间不够的时候,再从头开始。这个实现起来应该不难。
倒拔萝卜
2楼-- · 2019-07-21 12:01
我了解一个叫做电梯调度算法的,linux内核里用于nand flash读写的。

大概好像是这样:有一个队列,队列里缓存了这段时间里将要对块设备的读或者写操作,

比如此时队列是这样的: write, read, read, read, write, read, write, read,write...

当调度到块设备读写时,如果块设备处理程序直接就按照这个队列进行处理的话,那么就要频繁的切换调用读和写,如果使用电梯调度算法进行调整,那么队列就变成: write, write, write, wriite, ... read, read, read, read...  ,也就是把读操作都合并到一起,写操作也合并到一起,相同扇区的操作合并成一次读或者写,这样大大减少了读写的次数。

就好像爬电梯,上升的时候尽量把所有要上去的人都载上去,下来的时候尽可能的把所有要下来的人也给载下来。

一周热门 更多>