摘要:闪存是一种非易失性存储器。作为数据和系统存储的关键介质,它在嵌入式系统中发挥着重要作用。常见的Flash有NAND Flash、Nor Flash、eMMC等,本文将简单介绍不同Flash的区别和应用场景。
图1 HD6Q-CORE ARM核心板板载Flash
NAND Flash按照接口来划分。 NAND Flash分为串行和并行。串行意味着一次传输1 位,并行意味着一次传输多个位。下图中的并行Flash采用8位数据宽度,配合RE/WE等读写信号读写数据。 Serial Flash引脚较少,大多采用SPI或QSPI接口进行通信。一般来说,并行Flash的容量要高于串行Flash的容量。
图2 并行NAND Flash接口
图3 串行NAND Flash接口
根据颗粒密度,并行NAND Flash可分为SLC、MLC、TLC、QLC等,其中以SLC和MLC颗粒较为常用。
图4 SLC、MLC、TLC、QLC
第一代SLC(Single-Level Cell)每单元可存储1位数据(1bit/cell),性能好、寿命长,可承受10万次编程/擦除循环,但容量低、成本高。数量相对较少;第二代MLC(Multi-Level Cell)每单元可存储2位数据(2bits/cell)。其性能、寿命、容量、成本相对均衡,可承受10000次编程/擦除循环。目前主流核心板厂商大多配置该类型存储;第三代TLC(Trinary-Level Cell)每单元可存储3位数据(3bits/cell),但其性能和寿命有所恶化,只能承受3000次编程/擦写周期,但容量可做得更大,成本可以更低。是大多数固态硬盘的选择;第四代QLC(Quad-Level Cell)每单元可存储4位数据(4bits/cell),其性能、寿命进一步恶化,只能承受1000次编程/擦除周期,但容量更容易增加且成本持续降低。 Nor FlashNOR Flash是Intel于1988年创建的一种非易失性闪存技术。是市场上两种主要的非易失性闪存技术之一。根据接口区分,Nor Flash还可以分为并行和串行。由于并行Nor Flash容易出现兼容性问题,因此已逐渐被淘汰。目前常用的Nor Flash通常指的是串行Flash,即SPI Flash,其接口定义与图3一致。
与NAND Flash相比,Nor Flash容量较低,读写速度较慢,擦写速度较慢。与NAND Flash不同,NOR Flash支持Execute ON Chip,程序可以直接在Flash芯片中执行,因此非常适合作为嵌入式系统中的程序启动介质。
表1 NAND Flash Nor Flash存储介质对比表
eMMC本质上是Nand flash,数据接口支持1bit、4bit和8bit。 eMMC=Nand flash + 闪存控制芯片+ 标准接口封装。其内部集成闪存控制器,具有读写协议、擦写平衡、坏块管理、ECC验证、电源管理、时钟管理、数据访问等功能。极大的降低了Nand-flash的使用难度。
图5 eMMC架构
在嵌入式系统中,Flash除了存储数据外,还有一个重要的功能,就是存储uboot启动程序。一般来说,系统可以直接从NorFlash启动,但不能直接从NAND Flash启动。如果系统要从NAND Flash启动,需要将NAND Flash的低4K代码复制到CPU内部的SRAM中,然后从SRAM中驱动。然后将FLASH的剩余代码复制到SDRAM中,并从SDRAM中开始执行main函数。启动流程如下图所示。
图6 NAND Flash启动方法
一般来说,当主控所需的存储容量较低时(如256M、512M),通常选择Nand flash。当主控所需的存储容量比较高时(比如4GB、8GB甚至32GB),选择eMMC会更划算。
武汉万向奥科是国内嵌入式软硬件技术积累最全面的解决方案提供商之一。作为瑞萨、Microchip、新驰、NXP、ST等原厂厂商的国内重要技术合作伙伴,专注于嵌入式软硬件产品的开发。研发、定制、设计、生产。