NAND Flash分类

SLC(Single-Level Cell)架构:单一储存单元(Cell)可储存1bit data

MLC(Multi-Level Cell)架构:单一储存单元(Cell)可储存2bit data 

SLC

「Small page (528 Byte)Large page (2112 Byte)」

在每个储存单元(Cell)内储存1个资讯位元(bit),称为单阶储存单元(single-level cell, SLC),使用这种储存单元的快闪记忆体也称为单阶储存单元快闪记忆体(SLC flash memory),或简称SLC快闪记忆体。SLC快闪记忆体的优点是传输速度更快,功率消耗更低和储存单元的寿命更长。然而,由于每个储存单元包含的资讯较少,其每百万位元组需花费较高的成本来生产。

Small page (SLC) : 1 page =512 + 16 bytes

Large page (SLC) : 1 page =2048 + 64 bytes

MLC

「Large page (2112 Byte)Large page (4224 Byte)」

多阶储存单元快闪记忆体(Multi-level cell flash memory, MLC flash memory)可以在每个储存单元内储存2个以上的资讯位元 ,其「多阶」指的是电荷充电有多组电压值,如此便能储存多个位元的值于每个储存单元中。因为每个储存单元可储存更多的位元,所以MLC快闪记忆体的每单位储存成本较为低廉。早期比起SLC快闪记忆体,MLC传输速度较慢,功率消耗较高和储存单元的寿命较低为其缺点,但科技日新月异,良率问题持续改善,现今市面上的NAND Flash多数都为MLC架构。

Large page (MLC 2K/Page) : 1 page =2048 + 64 bytes

Large page (MLC 4K/Page) : 1 page =4096 + 128 bytes

NAND Flash 资料结构

NAND Flash Invalid Block 

NAND Flash 在出厂时都会作严格的测试编程,以确认每一个Block(区块、轨区)是否正常,测试不通过的Block 会被标上记号,这些Block 就叫 Initial Invalid Block(潜在的Bad Block)。这些 Initial Invalid Block的资讯很重要,不可以轻易删除,因为有些Block经过Erase后Invalid block 的资讯就会不见,这时使用者自己使用编程器或烧录器厂商都是无法再找出这些 Invalid block 。Invalid Block 的标示位置,在SLC、MLC 上会不一样需注意(厂牌不同也会有差异)。

Bad Block Management

Bad Block Management;BBM,坏轨管理-即控制IC的故障区块管理机制,是用来侦测并标示NAND Flash中的坏轨,避免资料存入坏轨中,用以提升资料存取的可靠性。

NAND Flash中的坏轨可分为Early Bas Block与Latter Bad Block。Early Bad Block是NAND Flash在制造过程中,因制程或技术因素所产生的故障区块,一般约占NAND Flash总容量的1%以内;Latter Bad Block则是在NAND Flash被使用的过程中所产生,一般被IC业者控制在NAND Flash总容量的5%以内。

NAND Flash首次被启用时,控制IC的故障轨区管理程式会逐一检查NAND Flash内每个区块,若有发现坏轨,便将之记录至Bad Block Table;BBT(故障区块表)中,以防止日后资料被写入这些坏轨中。

建立BBT后,随著NAND Flash在使用的过程中,如果有区块在抹写时发生错误,同样也会被记录至BBT中,并将抹写失败的资料内容重新移植到新的有效区块中,以避免因抹写过程的错误导致资料流失或资料异常。

编程器NAND Flash 技术入门的更多相关文章

  1. nand flash详解及驱动编写

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

  2. NAND FLASH 物理结构分析

    转自:http://blog.51cto.com/hardywang/2053915 NAND Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁 ...

  3. 如何编写linux下nand flash驱动-2

    [Nand Flash引脚(Pin)的说明] 图3.Nand Flash引脚功能说明 上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下: 1.       I/O0 ~ ...

  4. A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory

    背景 1.2012年左右的数据SLC.MLC.TLC闪存芯片的区别:SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万 ...

  5. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  6. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

  7. NOR flash和NAND flash区别,RAM 和ROM区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

  8. NOR flash和NAND flash区别,RAM 和ROM区别d

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

  9. 【Zigbee技术入门教程-01】Zigbee无线组网技术入门的学习路线

    [Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院  欧浩源 一.引言    在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感 ...

随机推荐

  1. linux查看端口占用

    今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用. 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat ...

  2. 关于JPA多数据源的部署persistence.xml文件配置以及对应实现类注入

      <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http: ...

  3. NOIP2012模拟试题【圆圈舞蹈( circle)

    2.圆圈舞蹈( circle) [问题描述] 熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到B的距离为A顺 ...

  4. iOS定位与地图

    定位: 手机上定位的实现主要有三种方式:基站(附近基站的位置),wifi(所连接路由器的位置),卫星(最准确,也最耗能). iOS的定位功能主要是由CLLocationManager类来完成的.这个类 ...

  5. php将xml文件转化为数组:simplexml_load_string

    <?php $str = <<<XML <?xml version="1.0" encoding="ISO-8859-1"?> ...

  6. Silverlight并行下载与串行下载

    思路清晰后仅仅只需百来行代码便可轻松编写出一套完整的资源动态下载组件- SerialDownloader和ParallelDownloader,它们共用一个完成资源表,且串行下载集成了优先机制(Dow ...

  7. C语言如何定义结构体

    原文地址 1. struct与typedef struct区别 struct是结构体的关键字,用来声明结构体变量如 struct  student {   char  num[10];      ch ...

  8. 黑马程序员-- C语言交换两个整数变量值几种函数比较

    总结了C语言中几种交换两个整数数值的函数,欢迎交流 #include <stdio.h> 使用多种交换变量值的函数比较 方法一:使用第三方临时变量 这种函数a,b只是值传递,实质上不能修交 ...

  9. 内存(MRC)

    一.计数器的基本操作1> retain : +1, 方法返回的是对象本身2> release :-13> retainCount : 获得计数器4> dealloc  * 当一 ...

  10. ADO.NET入门

    什么是ADO.NET ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类用类操作文件一样, System.Data.这组类是用来操作数据库(不光是MS ...