更新时间: 2023-11-01
2.3 SPARE区和ECC校验
Flash中每个页里的每个字节都是没有任何差别的,物理上并没有data区和spare区的区别,具体怎样划分data区和spare区,可由用户自己决定。本设计采用的划分办法如图4所示,这样,每个扇区和一个spare区相连,故可方便连续读出,并进行校验纠错。
本设计采用的划分办法
图4中同时给出了Spare的区定义,其中两字节用于标识本物理块所对应的母块;两字节用于标识本物理块对应的逻辑块;一字节用于标识本物理页对应的逻辑页,一字节用于标识连续逻辑页数(表示上面连续逻辑页的个数,此域可以辅助加快建立页映射表的时间),余下的10字节用于存放ECC,这样可以达到4字节错误的纠错能力。一般情况下,前面的4个字节是建立块地址映射表的关键,其次,后面两个字节则是建立页地址映射表的关键。
2.4 页映射表建立时间的优化
因为建立页映射表需要读取母块和子块中各物理页spare区以判定该物理页对应的逻辑页,而每个物理页的读取都要花费大约50μs的时间。因此,如果对每个物理页都读取,建立页映射表就会比较费时。为了加快建立页映射表的速度,一般只希望能读取一个物理页,而免于读取其他若干页,以便加快建表速度。因为很多时候都是连续写,而连续的几个物理页在逻辑上也是连续的,因此可以考虑在spare区加入连续逻辑页号,这样,重新建表时,就可根据连续页号知道连续几个物理页对应的逻辑页,从而加快建表的速度。