zoukankan      html  css  js  c++  java
  • spinand之data buffer

    data buffer简介

    spinand一般会有一个内置的data buffer。
    以W25N01GV为例,一个page是2048bytes外加64bytes的spare数据,其data buffer就有2048+64=2112bytes。

    data buffer与读写

    在写数据到spinand时,需要分为两步。
    第一步,Load Program Data (02h),将数据写到data buffer中。此时spinand除了会将接收到spi的波形解码出来写到buffer,还会计算对应的ecc校验码,并覆盖到spare区域的指定位置。即在buffer中准备好要写入cell的数据。
    第二步,Program Execute (10h),将数据从data buffer真正写到cell中,固化起来。

    在从spinand中读数据时,也需要分为两步
    第一步,Page Data Read (13h),将数据从cell中读取到data buffer中。此时spinand会读取cell数据,并计算ecc,进行纠错。如果cell中发生了位翻转,那么经过ecc纠错后写到data buffer中的就已经是正确的数据了
    第二步,Read Data (03h),将数据从data buffer中读出来。

    可以看到,data buffer是读写的必经之路。

    data buffer 读写测试

    当出现flash数据读写错误,可以专门构建一个buffer读写测试。

    简单来讲,就是只执行上述读写步骤的第一步,把数据写到buffer,但不写入cell,而是直接再读出校验。
    这样的实验,省去了读写cell的时间,效率很高。且不会真正读写cell,因此对flash的寿命是没有影响的。可以帮助快速复现排查问题。
    如果buffer读写测试可以复现问题,那么就可以确认问题跟cell无关了。

  • 相关阅读:
    Linux6
    大小超过2t的分区规划 parted命令
    fdisk命令磁盘分区
    扩展
    磁盘管理
    在Linux中如何手动创建一个用户
    Linux5
    Linux4
    19_权限和分组
    18_django的用户模型和扩展django的用户模型
  • 原文地址:https://www.cnblogs.com/zqb-all/p/10965050.html
Copyright © 2011-2022 走看看