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无关了。

spinand之data buffer的更多相关文章

  1. [Oracle]跨越 DBLINK 访问表时,数据缓存在何处的Data Buffer 中?

    结论是存储在 remote 端,这其实也很好理解.在远端能高效率地计算,当然应当在远端完成缓存和检索. ■ Before query execution via DBLINK: =========== ...

  2. SSIS Data Flow 的 Execution Tree 和 Data Pipeline

    一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...

  3. SSIS ->> Control Flow And Data Flow

    In the Control Flow, the task is the smallest unit of work, and a task requires completion (success, ...

  4. Buffer cache 的调整与优化

    Buffer cache 的调整与优化 -============================== -- Buffer cache 的调整与优化(一) --==================== ...

  5. Exchanger, Changing data between concurrent tasks

    The Java concurrency API provides a synchronization utility that allows the interchange of data betw ...

  6. bulkTransfer通讯必须注意的问题:bulk buffer size(16K)

    Android USB host与HID使用bulkTransfer通讯接收和发送的数据长度不会超过16384,这个问题困扰了我很长一段时间,终于发现问题所在,不是出在我的程序设计,也不是硬件的发送/ ...

  7. About USB Data Link Cable API

    About USB Data Link Cable API The text on this webpage is licensed under the Creative Commons Attrib ...

  8. CVE-2016-10191 FFmpeg RTMP Heap Buffer Overflow 漏洞分析及利用

    作者:栈长@蚂蚁金服巴斯光年安全实验室 一.前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFmpeg三个堆溢出漏洞分别为CVE-2016-10190 ...

  9. Linux设备驱动之IIO子系统——Triggered buffer support触发缓冲支持

    Triggered buffer support触发缓冲支持 在许多数据分析应用中,能够基于某些外部信号(触发器)捕获数据是比较有用的. 这些触发器可能是: 数据就绪信号 连接到某个外部系统的IRQ线 ...

随机推荐

  1. css实现对勾

    <!DOCTYPE html><html> <head> <meta charset=%;background-color: #2ac845;} %;back ...

  2. luogu P1759 通天之潜水

    题目背景 直达通天路·小A历险记第三篇 题目描述 在猴王的帮助下,小A终于走出了这篇荒山,却发现一条波涛汹涌的河拦在了自己的面前.河面上并没有船,但好在小A有n个潜水工具.由于他还要背重重的背包,所以 ...

  3. 数据库Oracle的select用法(部分)

    Oracle的select用法(部分): 1.查询所有: select * from employees; 2.加上where子句:用选择限制行 select * from employees whe ...

  4. Spring代理模式(CGLIB动态代理模式)

    jdk动态代理和CGLIB动态代理 没什么太大的区别,CGLIB动态代理不需要接口,但是需要导入jar包. 房东出租房子的方法: package com.bjsxt.proxy2; public cl ...

  5. HDU3666-THE MATRIX PROBLEM(差分约束-不等式解得存在性判断 对数转化)

    You have been given a matrix C N*M, each element E of C N*M is positive and no more than 1000, The p ...

  6. 强化学习环境OpenAi搭建,从虚拟机到Gym、Mujoco和mujoco-py的完整安装

    平时不怎么写博客,这次是因为环境的配置花费了我大概一个星期的时间.所以简单的记录一下搭建的整个过程,其中有些部分我直接推荐别人的博客的基本教程,都是我亲自尝试过成功的.同时,也希望这篇博客可以帮到您. ...

  7. 纯手工搭建K8s(单节点)

    准备说明: 因为为纯手动搭建,所以针对安装时需要的一些安装包需提前下载好 cfssl_linux-amd64. cfssljson_linux-amd64. cfssl-certinfo_linux- ...

  8. LNMP架构的搭建

    第9章 LNMP架构的搭建 9.1 什么是LNMP 9.1.1 LNMP的组成 L                linux N                nginx:实现静态的服务处理 M    ...

  9. sql service 从创建访问用户到数据库访问 【SQL】

    create login [LoginMame] with password=[Pwd]--创建数据库登陆用户 create user [DBLoginName] for login [LoginMa ...

  10. [ Coding七十二绝技 ] 如何利用Java异常快速分析源码

    前言 异常一个神奇的东西,让广大程序员对它人又爱又恨.爱它,通过它能快速定位错误,经过层层磨难能学到很多逼坑大法.恨他,快下班的时刻,周末的早晨,它踏着七彩云毫无征兆的来了. 今天,要聊的是它的一项神 ...