第 1 章 编写驱动之前要了解的知识

目录

1.1. 一些相关的名词的解释
1.1.1. Non-Volatile Memory非易失性存储器
1.1.2. OTP一次性可编程存储器
1.1.3. NDA 保密协议
1.1.4. Datasheet数据手册和Specification规范
1.1.5. Nand Flash相关的一些名词解释
1.1.5.1. (Bad) Block Management(坏)块管理
1.1.5.2. Wear-Leveling负载平衡
1.1.5.3. ECC错误校验码
1.2. 硬件特性
1.2.1. 什么是Flash
1.2.1.1. Flash的硬件实现机制
1.2.2. 什么是Nand Flash
1.2.2.1. Nand Flash的详细分类
1.2.3. SLC和MLC的实现机制
1.2.3.1. SLC(Single Level Cell)
1.2.3.2. MLC(Multi Level Cell)
1.2.3.3. 关于如何识别SLC还是MLC
1.2.4. Nand Flash数据存储单元的整体架构
1.2.5. Nand Flash的物理存储单元的阵列组织结构
1.2.5.1. Block块
1.2.5.2. Page页
1.2.5.3. oob / Redundant Area / Spare Area
1.2.6. Flash名称的由来
1.2.7. Flash相对于普通设备的特殊性
1.2.8. Nand Flash的位反转特性
1.2.8.1. Nand Flash位反转的原因
1.2.8.2. Nand Flash位反转的影响
1.2.8.3. Nand Flash位反转的类型和解决办法
1.2.9. Nand Flash引脚(Pin)的说明
1.2.9.1. 为何需要ALE和CLE
1.2.9.2. Nand Flash只有8个I/O引脚的好处
1.2.9.2.1. 减少外围连线
1.2.9.2.2. 提高系统的可扩展性
1.2.10. Nand Flash的一些典型(typical)的特性
1.2.11. Nand Flash控制器与Nand Flash芯片
1.2.12. Nand Flash中的特殊硬件结构
1.2.13. Nand Flash中的坏块(Bad Block)
1.2.13.1. 坏块的分类
1.2.13.2. 坏块的标记
1.2.13.3. 坏块的管理
1.2.13.4. 坏块的比例
1.2.14. Nand Flash中页的访问顺序
1.2.15. 常见的Nand Flash的操作
1.2.15.1. 页编程(Page Program)注意事项
1.2.15.2. 读(Read)操作过程详解
1.2.15.2.1. 需要使用何种命令
1.2.15.2.2. 发送命令前的准备工作以及时序图各个信号的具体含义
1.2.15.2.3. 如何计算出我们要传入的行地址和列地址
1.2.15.2.4. 读操作过程的解释
1.2.16. Nand Flash的一些高级特性
1.2.16.1. Nand Flash的Unique ID
1.2.16.1.1. 什么是Unique ID唯一性标识
1.2.16.1.2. 不同Nand Flash厂商的对Unique ID的不同的实现方法
1.2.16.1.2.1. Toshiba东芝的Nand的Unique ID
1.2.16.1.2.2. 读取Toshiba的Nand的Unique ID
1.2.16.1.3. Samsung三星的Nand的Unique ID
1.2.16.1.3.1. 读取Samsung的Nand的Unique ID
1.2.16.1.4. 遵循ONFI规范的厂商的Nand的Unique ID
1.2.16.1.4.1. 读取遵循ONFI的厂商的Nand的Unique ID
1.2.16.2. 片选无关(CE don’t-care)技术
1.2.16.3. 带EDC的拷回操作以及Sector的定义(Copy-Back Operation with EDC & Sector Definition for EDC)
1.2.16.4. 多片同时编程(Simultaneously Program Multi Plane)
1.2.16.5. 交错页编程(Interleave Page Program)
1.2.16.6. 随机输出页内数据(Random Data Output In a Page)
1.3. 软件方面
1.3.1. Nand Flash相关规范 – ONFI和LBA
1.3.1.1. ONFI是什么
1.3.1.1.1. ONFI Block Abstracted NAND
1.3.1.1.2. ONFI的好处
1.3.1.2. LBA规范是什么
1.3.1.3. 为何会有ONFI和LBA
1.3.1.3.1. 技术层面的解释
1.3.1.3.2. 现实层面的解释
1.3.1.4. ONFI和LBA的区别和联系
1.3.1.4.1. ONFI和LBA的区别
1.3.1.4.2. ONFI和LBA的联系
1.3.2. 内存技术设备,MTD(Memory Technology Device)
1.3.2.1. Linux MTD中检测不同类型Nand Flash的ID部分的代码
1.3.3. 读操作的硬件到软件的映射
1.3.4. Nand flash驱动工作原理

摘要