eMMC存储器基本原理简介

上传人:飞*** 文档编号:50719190 上传时间:2018-08-10 格式:PPTX 页数:31 大小:1.21MB
返回 下载 相关 举报
eMMC存储器基本原理简介_第1页
第1页 / 共31页
eMMC存储器基本原理简介_第2页
第2页 / 共31页
eMMC存储器基本原理简介_第3页
第3页 / 共31页
eMMC存储器基本原理简介_第4页
第4页 / 共31页
eMMC存储器基本原理简介_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《eMMC存储器基本原理简介》由会员分享,可在线阅读,更多相关《eMMC存储器基本原理简介(31页珍藏版)》请在金锄头文库上搜索。

1、eMMC存储器基本原理简介 eMMC (Embedded Multi Media Card) 嵌入式多媒体卡 MMC协会所订立的内嵌式存储器标准规格 主要应用于智能手机和移动嵌入式产品什么是eMMC 1、eMMC拥有存储以及取代Nor Flash的开机功能, 开机速度比传统的MCP要快几倍 2、eMMC可以很好的解决对MLC和TLC的管理, ECC除错机制、区块管理、平均抹写储存区块技术、 指令管理、低功耗管理等。 3、厂商不用再为不同的NAND Flash重新设计规格、 不用处理NAND Flash相容性和管理问题、缩短新品 上市周期、研发成本eMMC的优点 eMMC 结构由一个嵌入式存储解

2、决方案组成: 标准MMC封装接口 主控制器 (控制芯片) 快闪存储器设备(NAND Flash芯片 ) 这三部分封装在一个JEDEC(固态技术协会)标准的BGA上。 接口速度高达每秒52MB,eMMC具有快速、可升级的性 能。同时其接口电压可以是1.8v 或者是3.3v。eMMC的结构 看图说话 Core Regulator 核心稳压器eMMC的结构MemoryNAND Flash 存储介质控制信号数据总线MMC I/O BlockNAND I/O BlockCore Regulator (required for 3.3v)Core Logic BlockVCCVCCQRESETVDDiCL

3、K CMDDAT7:0 Creg1. I/O0 I/O7:用于输入地址/数据/命令, 输出数据,有可能16位,但高8位只用于数据 2. CLE: Command Latch Enable, 命令锁存使能, 在输入命令之前, 要先在模式寄存器中, 设置 CLE使能 3. ALE: Address Latch Enable, 地址锁存使能, 在输入地址之前, 要先在模式寄存器中, 设置ALE 使能 4. CE#: Chip Enable, 芯片使能, 在操作Nand Flash之前, 要先选中此芯片, 才能操作 5. RE#: Read Enable, 读使能, 在读取数据之前, 要先使CE#有效

4、。 6. WE#: Write Enable, 写使能, 在写取数据之前, 要先使WE#有效。 7. WP#: Write Protect, 写保护 8. R/B#: Ready/Busy Output,就绪/忙,主要用于在发送完编程/擦除命令后, 检测这些操作是否 完成: 忙, 表示编程/擦除操作仍在进行中, 就绪表示操作完成. 9. Vcc: Power, 电源 10. Vss: Ground, 接地 11. N.C: Non-Connection, 未定义, 未连接。 小常识 在数据手册中, 你常会看到, 对于一个引脚定义, 有些字母上面带一横杠的, 那是说明此引脚/ 信号是低电平有效,

5、 比如你上面看到的RE头上有个横线, 就是说明, 此RE是低电平有效, 此外, 为了书写方便, 在字母后面加“#”, 也是表示低电平有效,比如上面写的CE#;如果字母头 上啥都没有,就是默认的高电平有效,比如上面的CLE,就是高电平有效。Nand Flash引脚(Pin)的说明 1、SLC 和 MLC SLC每个存储单元只存储一个Bit数据 MLC每个存储单元可以存储多个Bit数据 根据电荷多少设定阀值,比如4V,可以用1234V分别表示数值 2、如何识别SLC和MLC 通过读取chip ID,chip ID 最少4个字节,可以更多 其中第3个字节中的信息如下 Bit1:0 内部芯片数 1、2

6、、4、8 Bit3:2 电平种类数 2、4、8、16 Bit5:4 可同时编程页1、2、4、8 Bit6 多芯片交替编程是否支持 0:不支持 Bit7 高速缓存编程(cache Program)是否支持 0:不支持Nand 的存储单元 Nand Flash 的核心部件是 Floating Gate FET(浮置栅场效应管) NAND Flash 的擦写均是基于隧道效应:电子从源极穿过浮置栅极与硅 基层之间的绝缘层,对浮置栅极充电(写数据 0)或放电(擦数据 1), Nand Flash 擦除以block为单位,写数据以page为单位。 清除Flash的数据是写1,这与硬盘正好相反。 Nor F

7、lash 则反过来,电流从浮置栅极到源极,称为热电子注入NAND 存储单元硬件原理 1、NAND的闪存单元比NOR要小 因为NOR的每个单元都需要独立的金属触点。 NAND的与硬盘驱动器类似,基于扇区(页Page),也存在坏的扇区 ,需要ECC纠错 2、因为单元小,所以NAND的写(编程)和擦除的速率快;而 NOR的优点是具有随机存取和对字节执行写操作的能力, NAND的则比较慢。Nand 和 Nor 物理上的区别 块(Block)是擦除操作的最小单位(相当于硬盘的扇区) 一个nand flash由很多个块(Block)组成,块的大小一般是128KB,256KB,512KB 页(Page)是编

8、程操作的最小单位 每个块里面又包含了很多页(page)。页的大小256B、512B、2KB、4KB 每一个页,对应还有一块区域,叫做空闲区域(spare area)/冗余区域(redundant area),而Linux系统中,一般叫做OOB(Out Of Band)。 这个区域,是最初基于Nand Flash的硬件特性:数据在读写时候相对容易错误,所 以为了保证数据的正确性,必须要有对应的检测和纠错机制,此机制被叫做 EDC(Error Detection Code)/ECC(Error Code Correction,或者Error Checking and Correcting),所以设

9、计了多余的区域,用于放置数据的校验值。 OOB的第6个Byte标记为非0xff时,表示坏块 ECC一般每256字节生成3字节ECC校验数据。(6bit列校验+16bit行校验+2bit保留) 页的编程只能顺序进行:Page1-Page2-Page3Nand Flash物理存储单元的阵列组 织结构Nand Flash物理存储单元的阵列组 织结构 以2Gb (128MB)NAND器件为例,它由2048个Block组成, 1Block = 64 Page(128KB) 1Page = 2048Bytes+64Bytes(见下图) 即128MB = 2048(Block)*64(Page)*2048B

10、ytes 页寄存器(Page Register):由于Nand Flash读取和编程操作来说,一般最 小单位是页,所以,nand flash在硬件设计时候,就考虑到这一特性,对于 每一片,都有一个对应的区域,专门用于存放,将要写入到物理存储单元 中去的或者刚从存储单元中读取出来 的,一页的数据,这个数据缓存区 ,本质上就是一个buffer,但是只是名字叫法不同,datasheet里面叫做Page Register,此处翻译为页寄存器,实际理解为页缓存,更为恰当些。Nand Flash中的特殊硬件结构 以三星的芯片为例: 1、配置寄存器(NFCONF)0x4E000000 2、命令寄存器(NFC

11、MD)0x4E000004 3、地址寄存器(NFADDR)0x4E000008 4、数据寄存器(NFDATA)0x4E00000C 5、状态寄存器(NFSTAT)0x4E000010 6、ECC校验寄存器(NFECC)0x4E000014Nand Flash中的特殊硬件结构Function1st Cycle地址周期数2nd Cycle忙碌时可用Read00h530hRead for Copy Back00h535hRead ID 90h1-ResetFFh-oPage Program80h510hTwo-Plane Page Program80h-11h81h-10hCopy-Back Pro

12、gram85h510hTwo-Plane Copy-Back Program85h-11h81h-10hBlock Erase60h3D0hTwo-Plane Block Erase60h-60hD0hRandom Data Input85h2-Random Data Output05h2E0hRead Status70h-0Read EDC Status7Bh-0Chip1 StatusF1h-0Chip2 StatusF2h-0Nand Flash 的命令合集(某款芯片) Nand flash的写操作叫做编程(Program),一般以页为单位的。 写操作只能在空页面或者已经被擦除的页面进行

13、(全0xFF) 擦除的步骤(以块为单位) 1、发送擦除设置命令 0x60 2、发送要擦除的块地址 3、发送开始擦除命令 0xD0 写操作的步骤(以页为单位) 1、发送写命令 0x80 2、发送要编程的页地址和数据(1个Page) 3、发送开始写命令 0x10NAND Flash 的编程操作(写) 步骤同写操作 1、发送写命令 0x00 2、发送要读取的页地址 3、发送开始写命令 0x30 4、查看寄存器状态,R/B#为ready(1)时,可以从缓存中取数据 时序图Nand Flash 的读操作 以K9K8G08U0A为例 此nand flash,一共有8192个块,每个块内有64页,每个页是

14、2K+64 Bytes 假设我们要访问第7000个块中的第25页中的1208字节的地址 物理地址=块号块大小+页号页大小+页内地址 =7000128K+252K+1208=0x36B0CCB8 (917556408) 计算地址的时候计算OOB的大小吗?不计算如何计算地址 1、地址周期的说明(不同的Flash可能会有不同) 0x36B0CCB8= 0011 0110 1011 0000 1100 1100 1011 1000 地址: 1、A7A0 :1011 1000 2、A11A8:0000 1100 (A10A0:100 1011 1000:1208 页地址) 3、A19A12:0000 1

15、100 (A16A11:011001:25页 ) 4、A27A20:0110 1011 5、A29A28:0000 0011(A29A17:11 0110 1011 000:7000Block) A10A0:页内地址 02047 ;A11用于表示20482112 OOB A16A11:页地址;A29A17:块地址 如何传输地址CycleI/O7I/O6I/O5I/O4I/O3I/O2I/O1I/O0FirstA7A6A5A4A3A2A1A0ColumnSecon dLOWLOWLOWLOWA11A10A9A8ColumnThirdA19A18A17A16A15A14A13A12RowFourthA27A26A25A24A23A22A21A20RowfifthLOWLOWLOWLOWLOWLOWA29A28Row 1、自从NAND结构被设计以来,标准规范中是允许存在坏块的,只 要坏块比例小于总容量的2%就是允许的。 2、坏块列表是被要求的,因为NAND Flash只能执行有限次数的读 和擦除次数(10w100w),所有的Flash存储器最终都会被磨损且不再 能使用,坏块列表用来跟踪记录坏块。 3、坏块分为两种: 1)生产过程中产生的 一般在该块的前两个Page的滴517字节处用非FF来标识(每页512字节) 2)使

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号