NAND Flash ECC

lin_jianren1982 2017-04-14 09:25:34
按我的理解,NAND Flash ECC的纠错能力完全由软件来决定, 软件决定用什么加密算法,软件生成ECC校验位后写入每个page的spare区域。每次读的时候软件读一个page,然后重新计算ECC校验位,跟spare区域的比较。 但是为什么NAND Flash硬件产商都要申明硬件适用的ECC位数呢? 这个ECC纠错到底是纯软件做的,还是有NAND控制器做的,还是NAND Flash硬件做的?
...全文
1354 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmajia 2017-10-17
  • 打赏
  • 举报
回复
SPARE区域大小是由NAND FLASH决定的,找个NAND FLASH 的DATASHEET看一下就明白,多少个字节数据,然后有多少字节的SPARE,是完全由NAND FLASH本身决定的。SPARE区域是不放有效数据的。所以ECC能放多少个BIT,不同型号的NAND FLASH,就决定了这个ECC的位数。 你的理解,整个NAND FLASH是一张纸,可以任意划分等大小的多少个块,然后每个块后面根据需要拿出空间存放ECC,这是不对的。 实际 上,每个BLOCK大小多大,NAND FLASH出厂就决定了,每个SPARE多大,也是一样。
1586874907 2017-04-19
  • 打赏
  • 举报
回复
1. ECC算法的纠错码长度与可纠的错误bit数相关,可纠的错误bit数约高,则纠错码越长; 2. ECC的纠错码存放在nand的spare空间,对于某一型号的nand,其spare空间时固定的,纠错码太长spare空间就放不下了; 3. Nand控制器在写nand的同时会计算该组数据的纠错码,并最终写到nand的spare空间,读操作恰恰相反,nand控制器先将所有数据读出来,再结合从spare空间读到的纠错码,检查读取的数据是否有错误bit及纠错; 4. 一般ECC纠错数据长度是以512Bytes或1024Bytes为单位,而不是以page为单位。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧