1. 根据物理结构上的区别,Nand Flash主要分为:

SLC(Single Level Cell): 单层式存储

MLC(Multi Level Cell): 多层式存储

TLC(Triple Level Cell): 三层式存储

注:SLC在存储格上只存一位数据(2个状态),MLC存放两位数据(4个状态),TLC存放三位数据(8个状态)。

2. Nand Flash 地址结构

注:

①Row Address即页地址,Column Address即页内偏移

②正常页内容读取用Column Address(A0-A10),共11位,最大索引地址为2^11 = 2048

③OOB区域索引用Column Address(A0- A12),共12位,可以索引2048后面的地址

3. Nand Flash 信号引脚

①CLE(Command Latch Enable): 命令锁存允许

②ALE(Address Latch Enable): 地址锁存允许

③CE: 片选

④RE: 读允许

⑤WE: 写允许

⑥WP: 在写或者擦期间,提供写保护

⑦R/B: 读/忙

注:

现代一些SOC都自带Nand Flash控制器,软件工程师只需配置一些控制寄存器,然后按照顺序填写命令寄存器、地址寄存器,操作数据寄存器读写数据。

4. Nand Flash 命令集

5. ECC校验

① ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法

② 校验码生成算法:ECC校验每次对256字节的数据进行操作,包含列校验和行校验

列校验:

注:CP0~CP5为6个Bit位,表示Column Parity(列极性)

行校验:

注:RP0~RP15为16个Bit,表示Row Parity(行极性)

综上,对256字节的数据共生成了6个Bit的列校验结果,16个Bit的行校验结果,共22个Bit

Nand Flash 基础的更多相关文章

  1. Nand Flash基础知识与坏块管理机制的研究

    概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...

  2. NAND FLash基础概念介绍

    一.引脚介绍 引脚名称 引脚功能 CLE 命令锁存功能 ALE 地址锁存功能 /CE 芯片使能 /RE 读使能 /WE 写使能 /WP 写保护 R/B 就绪/忙输出信号 Vcc 电源 Vss 地 N. ...

  3. SAM4E单片机之旅——16、NAND Flash读写

    这次大概介绍了一下NAND Flash,以及在ASF中使用它的方法. 一. 接线 这个开发板搭载了一个256 MB,8位的NAND Flash(MT29F2G08ABAEA).引脚接线如下: 偷个懒, ...

  4. ECC校验原理以及在Nand Flash中的应用

         本篇文章主要介绍ECC基本原理以及在Nand Flash中的应用,本文记录自己对ECC校验原理的理解和学习. ECC介绍      ECC,全称为Error Correcting Code, ...

  5. NAND Flash中常用的纠错方式(ECC算法)

    Hanming,RS,BCH —— NAND Flash中常用的纠错方式 因为闪存中会有出错的可能,如果没有使用ECC模块,读出的数据和写入的数据会有不匹配的可能,也许一个文件中只有一两个bit不匹配 ...

  6. linux2.6.30.4内核移植(2)——Nand Flash驱动移植

    内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/36696 ...

  7. kernel下nand flash的文件系统总结

    1.FLASH转换层(FTL) EXt2/EXT3/EXT4文件系统可以通过FTL实现对flash的支持,因为FTL可以将闪存flash模拟成磁盘结构. 在ext2文件系统的基础上上,为了保证数据的一 ...

  8. 说说NAND FLASH以及相关ECC校验方法

    Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将 ...

  9. nand flash详解及驱动编写

    https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...

随机推荐

  1. [cf557d]Vitaly and Cycle(黑白染色求奇环)

    题目大意:给出一个 n 点 m 边的图,问最少加多少边使其能够存在奇环,加最少边的情况数有多少种. 解题关键:黑白染色求奇环,利用数量分析求解. 奇环:含有奇数个点的环. 二分图不存在奇环.反之亦成立 ...

  2. easyui layout 折叠之后显示标题

    方法一:重载扩展panel收缩事件 (function($){ var buttonDir = {north:'down',south:'up',east:'left',west:'right'}; ...

  3. Ubuntu,kubuntu与xubuntu的差别 Ubuntu各版本主要差异

    Ubuntu各版本主要差异 Ubuntu官方考虑到使用者的不同需求,提供各种不同的发行版.虽然发布了几种版本的Ubuntu系统,但是它们的核心系统是一模一样的.可以这么说不同发行版的Ubuntu的区别 ...

  4. 10.model/view实例(4)

    任务:给表单的每一列添加列名. 思考: 1.只需要添加一个函数 headerData(). 横向方面添加列名 代码如下: QVariant MyModel::headerData(int sectio ...

  5. Jtabbedpane设置透明、Jpanel设置透明

    摘自 https://zhidao.baidu.com/question/983204331427010139.html java中如何设置Jtabbedpane为透明 20 在Jtabbedpane ...

  6. java IO的总结

    1: fileChannel 没有bufferedreader快, bufferedreader 可设置缓冲大小和编码 2: bufferedreader 的readline 遇到回车也换行

  7. 《Linux内核设计与实现》读书笔记(五)- 系统调用

    主要内容: 什么是系统调用 Linux上的系统调用实现原理 一个简单的系统调用的实现 1. 什么是系统调用 简单来说,系统调用就是用户程序和硬件设备之间的桥梁. 用户程序在需要的时候,通过系统调用来使 ...

  8. IIS如何避免子web应用程序中继承根目录web.config配置

    1.一种方式,需要改动根目录的web.config(不是很推荐) <?xml version="1.0"?> <configuration> <loc ...

  9. SQLServer数据库,表内存,实例名分析SQL语句

    --数据库内存分析 USE master go DECLARE @insSize TABLE(dbName sysname,checkTime VARCHAR(19),dbSize VARCHAR(5 ...

  10. Java为何这么难学?

    在学校的时候,就开始接触Java,哪个时候学的是基础的语法.毕业之后,由于没有找到实习工作且没有从事Java开发,慢慢的就把Java给丢了.从学校出来的几个同事,有的进入了项目实施行业,做了项 目经理 ...