行情
HOME
行情
正文内容
nand flash interface 闪存芯片NOR Flash,NAND Flash傻傻分不清楚 ICMAX帮你搞定
发布时间 : 2025-04-04
作者 : 小编
访问数量 : 23
扫码分享至微信

闪存芯片NOR Flash、NAND Flash傻傻分不清楚 ICMAX帮你搞定

通过前天的文章介绍,我们知道eMMC 是 Flash Memory 的一类,eMMC的内部组成是NAND flash+主控IC,那什么是Flash Memory、NOR Flash、NAND Flash,宏旺半导体就和大家好好捋一捋它们几者之间的关系。

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。另外,绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质。

1. Flash Memory 的主要特性

与传统的硬盘存储器相比,Flash Memory 具有质量轻、能耗低、体积小、抗震能力强等的优点,但也有不少局限性,主要如下:

需要先擦除再写入

Flash Memory 写入数据时有一定的限制,它只能将当前为 1 的比特改写为 0,而无法将已经为 0 的比特改写为 1,只有在擦除的操作中,才能把整块的比特改写为 1。

块擦除次数有限

Flash Memory 的每个数据块都有擦除次数的限制(十万到百万次不等),擦写超过一定次数后,该数据块将无法可靠存储数据,成为坏块。

为了最大化的延长 Flash Memory 的寿命,在软件上需要做擦写均衡(Wear Leveling),通过分散写入、动态映射等手段均衡使用各个数据块。同时,软件还需要进行坏块管理(Bad Block Management,BBM),标识坏块,不让坏块参与数据存储。(注:除了擦写导致的坏块外,Flash Memory 在生产过程也会产生坏块,即固有坏块。)

读写干扰

由于硬件实现上的物理特性,Flash Memory 在进行读写操作时,有可能会导致邻近的其他比特发生位翻转,导致数据异常,这种异常可以通过重新擦除来恢复,Flash Memory 应用中通常会使用 ECC 等算法进行错误检测和数据修正。

电荷泄漏

存储在 Flash Memory 存储单元的电荷,如果长期没有使用,会发生电荷泄漏,导致数据错误,不过这个时间比较长,一般十年左右,此种异常是非永久性的,重新擦除可以恢复。

2. NOR Flash 和 NAND Flash

根据硬件上存储原理的不同,Flash Memory 主要可以分为 NOR Flash 和 NAND Flash 两类。 主要的差异如下所示:

· NAND Flash 读取速度与 NOR Flash 相近,根据接口的不同有所差异;

· NAND Flash 的写入速度比 NOR Flash 快很多;

· NAND Flash 的擦除速度比 NOR Flash 快很多;

· NAND Flash 最大擦次数比 NOR Flash 多;

· NOR Flash 支持片上执行,可以在上面直接运行代码;

· NOR Flash 软件驱动比 NAND Flash 简单;

· NOR Flash 可以随机按字节读取数据,NAND Flash 需要按块进行读取。

· 大容量下 NAND Flash 比 NOR Flash 成本要低很多,体积也更小;

(注:NOR Flash 和 NAND Flash 的擦除都是按块块进行的,执行一个擦除或者写入操作时,NOR Flash 大约需要 5s,而 NAND Flash 通常不超过 4ms。)

2.1 NOR Flash

NOR Flash 根据与 CPU 端接口的不同,可以分为 Parallel NOR Flash 和 Serial NOR Flash 两类。

Parallel NOR Flash 可以接入到 Host 的 SRAM/DRAM Controller 上,所存储的内容可以直接映射到 CPU 地址空间,不需要拷贝到 RAM 中即可被 CPU 访问,因而支持片上执行。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通过 SPI 接口与 Host 连接。

图片: Parallel NOR Flash 与 Serial NOR Flash

鉴于 NOR Flash 擦写速度慢,成本高等特性,NOR Flash 主要应用于小容量、内容更新少的场景,例如 PC 主板 BIOS、路由器系统存储等。

2.2 NAND Flash

NAND Flash 需要通过专门的 NFI(NAND Flash Interface)与 Host 端进行通信,如下图所示:

图片:NAND Flash Interface

NAND Flash 根据每个存储单元内存储比特个数的不同,可以分为 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三类。其中,在一个存储单元中,SLC 可以存储 1 个比特,MLC 可以存储 2 个比特,TLC 则可以存储 3 个比特。

NAND Flash 的一个存储单元内部,是通过不同的电压等级,来表示其所存储的信息的。在 SLC 中,存储单元的电压被分为两个等级,分别表示 0 和 1 两个状态,即 1 个比特。在 MLC 中,存储单元的电压则被分为 4 个等级,分别表示 00 01 10 11 四个状态,即 2 个比特位。同理,在 TLC 中,存储单元的电压被分为 8 个等级,存储 3 个比特信息。

图片: SLC、MLC 与 TLC

NAND Flash 的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。下图 中,给出了特定工艺和技术水平下的成本和寿命数据。

相比于 NOR Flash,NAND Flash 写入性能好,大容量下成本低。目前,绝大部分手机和平板等移动设备中所使用的 eMMC 内部的 Flash Memory 都属于 NAND Flash,PC 中的固态硬盘中也是使用 NAND Flash。

3. Raw Flash 和 Managed Flash

由于 Flash Memory 存在按块擦写、擦写次数的限制、读写干扰、电荷泄露等的局限,为了最大程度的发挥 Flash Memory 的价值,通常需要有一个特殊的软件层次,实现坏块管理、擦写均衡、ECC、垃圾回收等的功能,这一个软件层次称为 FTL(Flash Translation Layer)。

在具体实现中,根据 FTL 所在的位置的不同,可以把 Flash Memory 分为 Raw Flash 和 Managed Flash 两类。

图片: Raw Flash 和 Managed Flash

Raw Flash

在此类应用中,在 Host 端通常有专门的 FTL 或者 Flash 文件系统来实现坏块管理、擦写均衡等的功能。Host 端的软件复杂度较高,但是整体方案的成本较低,常用于价格敏感的嵌入式产品中。通常我们所说的 NOR Flash 和 NAND Flash 都属于这类型。

Managed Flash

Managed Flash 在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、ECC校验等功能。相比于直接将 Flash 接入到 Host 端,Managed Flash 屏蔽了 Flash 的物理特性,对 Host 提供标准化的接口,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 Flash 进行特殊的处理。eMMC、SD Card、UFS、U 盘等产品是属于 Managed Flash 这一类。

看完这篇文章,相信对Flash memory都会有一个全面的了解,无论是其原理,还是NOR Flash 和 NAND Flash、Raw Flash 和 Managed Flash 之间的异同,欢迎关注宏旺半导体,会持续带来存储领域更专业的文章。

UFS深入浅出 第二章 UFS结构 第四节 UFS分块图解

Section 4 UFS block diagram

第四节 UFS分块图解

In this section, we will have a high-level view of UFS block diagram. Meanwhile we will also have a data flow overview in-between each block. Detail of each block will be covered in the following chapter.

在这一节里,我们会比较笼统的看一下UFS的分块图解。同时,我们也会看一些各个块之间的数据流动。每个块的具体细节会在接下来的章节里面涵盖。

On left of the diagram is Host, is composed by SoC, RAM and UFS Host Controller. The Host here does not simply mean UFS host, but the host of the whole system. While the UFS device is on the right side, which contains UFS Device Controller with embedded SRAM and standalone NAND Flash media.

在分解图的左边是Host,由SoC,RAM和UFS 主机控制器组成。这里的主机不是简单的指UFS 主机,而是整个系统的主机。UFS器件则在右边,包括了UFS 器件控制器以及内嵌的SRAM和独立的NAND Flash 闪存。

If you look into detail of UFS Host Controller and UFS Device Controller, you will find they are quite similar like each other with the same internal layer structures. The difference is that there is a UFS Host Controller Interface called UFS HCI in Host Diagram to communicate with Host SoC, while UFS device controller has got a NAND interface to connect with NAND in which Logic Unit and Registers physically reside. The same part in both sides is defined in the JEDEC UFS specification (latest one is JESD220F UFS4.0). JEDEC also has a HCI Specification (latest one is JESD223E UFSHCI4.0) for UFS Host Controller Interface. Regarding NAND interface, JEDEC absorbs ONFI (Open NAND Flash Interface), and this part will be covered in the article NAND Step by Step.

如果你仔细看UFS 主机控制器和UFS 器件控制器,你会发现他们彼此非常相像,都有着一样的内部层结构。不同的地方是UFS 主机控制器里面有一个叫做UFS HCI的UFS 主机控制器接口与主机SoC通讯。而UFS 器件控制器则有一个NAND接口与保存逻辑单元和寄存器的NAND 闪存通讯。两边相同的地方是在JEDEC UFS规范(最新的是JESD220F UFS4.0)。JEDEC还有一个给UFS 主机控制器接口的HCI规范(最新的是JESD3F UFSHCI4.0)

Usually in a traditional small system, there will be a CPU, RAM, and Disk. When we take a full picture of this diagram, the SoC (System on Chip) here acts as CPU in embedded system, RAM here refers volatile Dynamic RAM memory normally,either DDR RAM or LPDDR (Low Power DDR) RAM,for high-speed code or data access. Disk here is our leading role UFS device, which is a non-volatile memory to store the code and data without power supply. Please take a note that, Disk here is not an accurate name. Disk originally refers to Hard Disk Drive (aka HDD) which uses magnetic material for data non-volatile storage. Now we use this terminology simply for all non-volatile memory for easy understanding.

通常在一个传统的小型系统里面会有CPU,RAM和Disk。当我们整体来看分解图的时候,SoC(片上系统)在嵌入式系统里面扮演了CPU的角色。RAM这里通常是指易失的动态RAM存储器,可以是DDD RAM或者是LPDDR(低功耗DDR)RAM,主要是为了高速代码或者数据的访问。这里的Disk是我们的主角UFS器件,不需要电的非易失存储器。请注意这里的Disk不是一个准确的名字。Disk原本指的是为了数据的非易失存储而使用磁存储介质的硬盘驱动器(也叫HDD)。为了便于理解,现在我们用这个术语简单指代所有非易失存储器。

If we zoom in to focus only on UFS device side, the internal SoC (Yes, there is one SoC inside UFS device controller as well, invisible in this Diagram)of UFS Device controller will be CPU, controller internal SRAM will act as volatile RAM, and NAND flash is non-volatile Disk. Since in this article, we illustrate UFS protocol only, hence we will not go deeper into UFS device small system.

如果我们放大聚焦在UFS器件这边,UFS器件控制器里面的 SoC (是的,在UFS器件控制器里面也有SoC,这个图解里面不可见) 是CPU,控制器内嵌的SRAM是易失的RAM,而NAND闪存就是非易失的Disk。因为这篇文章我们只解释UFS协议,所以我们不会深入探究UFS器件的小系统。

Back to the small system SoC, DRAM, UFS, the main function of Flash is to store data since it is non-volatile memory and could keep data inside without power supply. But in order to load and save data into the NAND Flash, Host SoC need go all the way down through each layer of the UFS host Controller to the physical signals and goes up back through the correlative layers of UFS Device Controller to communicate with NAND Flash. This is the way that we use NAND Flash to save data, the opposite direction is load data.

回到SoC,DRAM和UFS的小系统,Flash的主要功能是存储数据,因为它是非易失存储器,可以在没有电供应的情况下保持数据。但是为了提取和保存数据,主机SoC需要一路向下穿过UFS主机控制器的每一层直到物理信号,然后再往上穿过相对应的UFS器件控制器的每一层去和NAND闪存通讯。这个是我们用NAND闪存存数数据的方式,相反的方向则是提取数据的方向。

We could also use dot line with arrow to see how they communicate with each other logically. On the top is the pair of Host SoC and NAND Flash for read and write operation. In the very beginning, Host SoC do access NAND Flash directly, but limitation is quite obvious. NAND 8-bit parallel I/O is not good to increase data rate for long distance transmission. NAND is born with bit errors for cost effective higher density, hence ECC (Error Correction Code), BBM (Bad Block Management) which bring extra burden for SoC. It does not count WL(wear-leveling)for overcoming limited NAND Flash P/E(Program/Erase) characteristic and FTL (File Transfer Layer) of easily use NAND Flash which need be access by pages but not bit. This is the reason why NAND controller and complex protocol needed for higher and higher data rate.

我们还可以给每一层用虚线箭头来展示逻辑上它们是怎么互相联系的。在最上面是读写操作的一对,主机SoC和NAND闪存。在最开始,主机SoC确实是直接访问NAND的,但是局限性也非常明显。NAND的8比特并行I/O不利于在长距离传输提高数据传输率。NAND天生就是为了更高容量节省成本而有比特错误,所以ECC(错误纠正码),BBM(坏块管理)会给SoC额外的负担。这个还没算为了克服有限的NAND闪存的P/E(编程/擦除)特性而使用的WL (磨损均衡),以及为了方便管理NAND闪存这种使用页而不是比特访问而使用的FTL(文件转换层)。这个也是为了越来越高的速度需要使用NAND控制器以及复杂的协议的原因。

UCS (UFS Command Set) block use CDB (Command Descriptor block) for communication. CDB is defined by SCSI specification which implement not only read/write command but also other functional commands.

UCS(UFS指令集)模块用CDB(命令描述符块)来做通讯。CDB是SCSI协议定义的用来实现读写命令以及其它功能命令。

These commands CDB are embedded in in the next lower UTP (UFS transport Protocol) layer‘s UPIU (UFS Protocol Information Unit) Frame. Besides the communication to the peer layer, UPIU is also used internally by Task Manager block and Device Manager block.

这些命令CDB会嵌入到下面低一层的UTP(UFS传输层)的UPIU(UFS协议信息单元)帧里面。除了用于与对面对应层的通讯,UPIU也被用于内部的任务管理块和器件管理块。

Go deeper to UIC (UFS InterConnect) layer, UniPro is a software stack to hand so called credit-based flow control data transmission. PDU (Protocol data Unit) is the common name for the data packet in UniPro, each sub layer has its specific PDU name. UPIU from upper UTP layer will be divided here to fit for the PDU format. Device Manger block could skip UTP layer to access directly the DME (Device Manager Entity) in UniPro. This is like the internal employee private path for better control low level configuration.

在深一点去到UIC层, UniPro是一个软件协议栈用于处理被称为基于信用的流控数据传输。PDU (协议数据单元) 是UniPro里数据包的通用名字,每一个子层都有各自的专用PDU命名。从上面UTP层来的包在这里会被拆分来适配PDU格式。器件管理块能够越过UTP层直接访问UniPro里的DME(器件管理实体)。这个就像是内部员工的私人通道来更好地控制底层配置。

M-PHY in the UIC will finally encoded sending data or decoded receiving data into symbols and turn it to or from physical signals in the lane. M-PHY use 8b/10 line encoding to turns 8bit data into 10bit symbol for both High-Speed and Low-Speed. Regarding binary encoding,M-PHY for UFS use PWM (Pulse Width Modulation) for low Speed, while NRZ (Non Returned to Zero) for High Speed.

UIC里的M-PHY最终会把发送数据编码或者把接收数据编码成字符,然后转化成通道上的物理信号。高速或者低速M-PHY都使用8b/10b的线路编码把8比特字节转换成10比特的字符。而二进制编码,UFS的M-PHY的低速使用PWM(脉宽调制),高速则使用NRZ(非归零)。

The access point of in-between each diagram block is called SAP (Service Access Point), this could be thought of as logical API (Application Programming Interface).

在各个块之间的访问点被叫做SAP(服务访问点),这个可以被想象成为逻辑API(应用编程接口)。

SoC will utilize the system RAM to maintain the Task Manager request list and Command Transfer request list. These will notify UFS host controller for dispatching instructions by doorbell register which reside in UFS HCI. The name doorbell is quite vivid as if someone is knocking your door to tell you, hey, the tasks and commands are waiting for you to execute them. UFS device controller also maintains the task and command queue in its internal SRAM which is not defined in UFS specification and should be implemented by UFS device vendors.

SoC会使用系统RAM来维护任务管理请求列表和命令传输请求列表。这个会通过UFS HCI里面的门铃寄存器来通知UFS主机控制器分发指令。门铃寄存器这个名字非常生动,好像是有人正在敲门告诉你,嘿,任务和命令已经准备好等你执行了。UFS器件控制器同样在它内部的SRAM维护了任务和命令队列,这个在UFS规范里面没有定义,需要UFS器件厂家自己实现。

相关问答

NANDflash 和NORflash的区别?

1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...

flash 类型怎么选择?

在选择Flash类型之前,需要考虑以下几个因素:1.存储容量:Flash存储器通常有不同的容量规格,从几MB到几TB不等。因此,你需要根据自己的需要来确定所需的存储...

网页没法打开,显示不支持此接口-ZOL问答

如果还是不行装一个虚拟机吧SUN虚拟机是免费的有用(0)回复wujunlin540重装系统看看有用(0)回复dsghdhgfhjf没得解是公司问题有用(0)回复我刚刚测.....

flash 插件是什么东西 - 159****1806 的回答 - 懂得

分为以下几种1、最常见的是ActiveX控件,负责网上视频的播放。因为网上视频绝大多数是flv(flash的数据流视频格式)的。2、一些视频网站为了视频观看...

msd6a 848和amlogic t972参数对比?

以下是MSD6A848和AmlogicT972的参数对比:1.CPU:-MSD6A848:六核ARMCortex-A55,最高主频2.0GHz-AmlogicT972:四核A...

flash 芯片和mcu的区别?

FLASH的全称是FLASHEEPROM。MCU是微控制单元,又称单片微型计算机或单片机,是把中央处理器CPU频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、DMA等...

emmc与 nand flash 哪个好?

1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...

arm内部数据怎么保存到 flash ?

ARM处理器内部的数据可以通过特定的指令或编程接口保存到外部的Flash存储器中。以下是一些可能的方法:使用ARMCortex-M系列处理器的STM(StoretoFlash)指...

miflash无法启动服务?

主要是下面的原因造成的:1.Miflash是小米专用的刷机工具,在刷机前必须安装匹配的驱动。建议卸载原来的驱动,到官网下载专门的驱动,重新安装。2.连接不稳定。...

u盘加 Flash 是什么意思?-ZOL问答

大家常见的U盘标识flashdisk,这是指U盘中数据存储的方式,有些人叫闪存。另一...回复wushuangwuyu362首先先把u盘格式化,然后电脑查毒,全面清查,最后才是手机...

 李瑶媛资料  小米mix alpha 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部