NAND NOR FLASH闪存产品概述 随着国内对集成电路,特别是存储芯片的重视,前来咨询我们关于NOR Flash,NAND Flash,SD NAND, eMMC, Raw NAND的客户越来越多了 6*8mm,LGA-8封装; 4,擦写寿命长;5,耐高低温冲击;6,容量适宜(128MB~4GB) 具体可以可以看链接:http://www.longsto.com/product/31.html 我们把存储产品大概分为 E2PROM,NOR,NAND 3类,他们框架如下: 一,E2PROM 容量非常小,目前存在于一些MCU内部,遥控器,电风扇等小家电里。 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。 SLC(2bit)/MLC(4bit)/ TLC(8bit)/ QLC(16bit). 这样晶圆的存储密度会翻倍。
6*8mm,LGA-8封装; 4,擦写寿命长;5,耐高低温冲击;6,容量适宜(128MB~4GB) 具体可以可以看链接:http://www.longsto.com/product/31.html 我们把存储产品大概分为 E2PROM,NOR,NAND 3类,他们框架如下: 一,E2PROM 容量非常小,目前存在于一些MCU内部,遥控器,电风扇等小家电里。 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。 6*8mm,LGA-8封装; 4,擦写寿命长;5,耐高低温冲击;6,容量适宜(128MB~4GB) 具体可以可以看链接:http://www.longsto.com/product/31.html 我们把存储产品大概分为 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。
NAND FLASH,NAND为NOT AND(与非)之意,而NOR为NOT OR(或非)之意,该名称的命名是与两种FLAHS的架构有关的,如图所示: 两种Flash的架构对比 NAND FLASH 是把存储单元串行连在位线上,而 NOR FLASH 则是把存储单元并行的连到位线上。 所以 NOR 型的闪存存储器实现按位随机访问,而NAND 只能同时对多个存储单元同时访问。 对于 NOR FLASH,如果任意一个存储单元被相应的字线选中打开,那么对应的位线将变为 0,正是由于这种和 NOR 门电路相似的逻辑关系,使得这种结构的闪存被称为 NOR 型闪存,而 NAND FLASH 需要使一个位线上的所有存储单元都为 1,才能使得位线为 0,和 NAND 门电路相似的逻辑,故称之为NAND型闪存。
驱动修改 新的 uboot, kernel 驱动中都是支持的,配置下就可以了,如配置上 SPI_NOR_4B_OPCODES 。 如果在用的 nor 驱动没有支持,那可以自行根据 datasheet,在初始化的时候判断下容量,加个切换到 4 字节地址模式的操作,后续的读写命令等,也改用 4 字节地址。 注意事项 需要注意的是,一些芯片的 boot rom 无法支持 4 字节地址模式,只会用 3 字节地址模式跟 nor 通信。 所以切换到 4 字节地址模式后会导致直接重启无法正常启动。 但软件退出的缺点是,只能解决正常重启的情况,无法处理硬件 reset 主芯片的操作,因为 reset 主芯片并不会让 nor 也 reset,那么 nor 就仍处于 4 字节地址模式,不响应 boot 其他 nor 在 16M 这个容量是个分界点,不仅驱动上因为 4 字节地址模式的引入而更加复杂,价格上也是差别巨大,32M nor 远不止 16M nor 价格的两倍。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少。 NOR闪存是随机存储介质,用于数据量较小的场合;NAND闪存是连续存储介质,适合存放大的数据。 由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。 NOR闪存的可靠性要高于NAND闪存,这主要是因为NOR型闪存的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,因而一般用在对可靠性要求高的地方。 从使用角度来看,NOR闪存与NAND闪存是各有特点的:(1)NOR的存储密度低,所以存储一个字节的成本也较高,而NAND闪存的存储密度和存储容量均比较高; (2)NAND型闪存在擦、写文件(特别是连续的大文件
后来的这种闪存被统称为NOR闪存。它结合EPROM和EEPROM两项技术,并拥有一个SRAM接口。 第二种闪存称为NAND闪存。它由日立公司于1989年研制,并被认为是NOR闪存的理想替代者。 NAND闪存的写周期比NOR闪存短90%,它的保存与删除处理的速度也相对较快。NAND的存储单元只有NOR的一半,在更小的存储空间中NAND获得了更好的性能。 3. 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,而擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少。 可靠性方面,采用flash介质时一个需要重点考虑的问题是可靠性。 易于使用方面,NOR的闪存可以像其他存储器那样直接连接并运行代码,而NAND需要复杂的I/O接口,使用NAND器件时,必须先写入驱动程序。 4.
背景 支持一款nor flash时,出于性能考虑,一般会查看其nor支持的最高频率以及主控端spi控制器的最高频率,以选择一个合适的运行频率。 主控端的最高频率,可以查看主控的规格书,本文主要说下nor的频率限制。 让我们带着问题出发,假设我们的主控端最高spi clk为100M,那该怎么识别nor的限制,驱动又可以怎么处理? 正确识别频率限制 让我们打开nor的规格书,搜索 "freq", 很容易看到104M, 133M之类的字样 。 如图是几款flash的规格书截图 winbond: w15q128 [px6hkpo4t3.png] mxic: mx15l128 [n0sc4ki6pj.png] gd: gd25q127 [zp18em9sjq.png [8bmmd4dbu8.png] 解决手段 我们最开始的假定是,主控可以跑100M,那让主控跑100M的话,这些频率限制怎么解决呢?
闪存物理结构 闪存器件原理 前文已经讲过了固态硬盘的发展史,曾经的固态硬盘有过RAM等介质,但是目前绝大多数固态硬盘都是以闪存芯片为存储介质的。DRAM固态硬盘我们见得少,主要应用于特殊的场合。 现在已经有厂商在研发QLC,即一个存储单元存储4比特数据,本书不做介绍。 ? 图3-4是闪存芯片里面存储单元的阈值电压分布函数,横轴是阈值电压,纵轴是存储单元数量。其实在0或1的时候,并非所有的存储单元都是同样的阈值电压,而是以这个电压为中心的一个分布。 图1-4 SLC电压分布(来源:Inside NAND Flash Memory) 对MLC来说,如果一个存储单元存储4个状态,那么它只能存储2比特的数据。 同时,QLC也马上要量产了,每个存储单元存储4比特数据,比TLC还要慢,还要不可靠。之前怀疑TLC可靠性的人们,怎么看QLC? ---- 本文节选自《深入浅出SSD:固态存储核心技术、原理与实战》一书
下主面要介绍下nor flash写保护,这个是可以在驱动层面做的。 nor写保护 写保护是nor提供的功能,即可以通过配置一些寄存器,将某些区域保护起来。 BP保护 大多数nor flash支持使用BP位来配置写保护,这种保护的特点是其保护的数据是成片的,一般是从flash头部开始的一片数据,或者从flash尾部开始的一片数据。 winbond的这款flash就标注了 [dsqbmb9sln.png] [hulusse508.png] 从规格书可很容易看出,保护的范围是BP bit再结合其他的一些bit 一起决定的,可以保护1/2, 3/4, 不同厂家的保护bit设置都不太一样,涉及到BP bit,SEC bit, CMP bit等,每适配一款新的nor,都得重新查下规格书才行。 对于首尾两个block,还可以细致到sector(4KB)进行保护。
= IORESOURCE_MEM, }; 4.physmap_flash_driver static struct platform_driver physmap_flash_driver = { . 即4字节对齐,因为一般DDR的数据线都为16位,所以为了得到32位的数据,一般都是将2个DDR连在一起,它们的地址相同,所以对已DDR而言是一个地址对应4个字节(因为一个DDR对应2个字节,两个DDR就对因 4个字节),但是对于CPU而言一个地址只对应1个字节,所以这里就存在一个地址转换问题,即如何让1字节的地址和4字节的地址对应起来。 ->phys = 0; s3c_nor_map->size = 0x1000000; /* >= NOR的真正大小 */ s3c_nor_map->bankwidth = 2; s3c_nor_map s3c_nor_mtd) { iounmap(s3c_nor_map->virt); kfree(s3c_nor_map); return -EIO; } /* 4. add_mtd_partitions
後来,Intel发明的这类闪存被统称为NOR闪存。它结合EPROM和EEPROM两项技术,并拥有一个SRAM接口。 第二种闪存称为NAND闪存。 它由日立公司于1989年研制,并被认为是NOR闪存的理想替代者。NAND闪存的写周期比NOR闪存短90%,它的保存与删除处理的速度也相对较快。 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。 ● NOR的读速度比NAND稍快一些。 ● NAND的写入速度比NOR快很多。 ● NAND的4ms擦除速度远比NOR的5s快。 ● 大多数写入操作需要先进行擦除操作。 其他作用 驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。 4.
东芝也开始发力,陆续推出了全球首个4MB和16MB的NAND Flash。 1992年,英特尔占据了FLASH市场份额的75%。排在第二位的是AMD,只占了10%。 它采用的,就是NOR Flash闪存。 1994年,闪迪公司第一个推出CF存储卡(Compact Flash)。当时,这种存储卡基于Nor Flash闪存技术,用于数码相机等产品。 很快,三星开始发售NAND闪存,闪迪推出了采用MLC串行NOR技术的第一张闪存卡。 1997年,手机开始配置闪存。从此,闪存继数码相机之后,又打开了一个巨大的消费级市场。 NOR Flash属于代码型闪存芯片,凭借NOR+PSRAM的XiP架构(XiP,Execute In Place,芯片内执行,即应用程序不必再把代码读到系统RAM中,而是可以直接在Flash闪存内运行 参考资料: 1、《半导体行业存储芯片研究框架-NOR深度报告》,方正证券; 2、《杂谈闪存二:NOR和NAND Flash》,老狼,知乎; 3、《存储技术发展历程》,谢长生; 4、《闪存技术的50多年发展史
NAND Flash和NOR Flash的比较 NOR和NAND是现在市场上两种主要的非易失闪存技术。 但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 相”flash存储器”经常可以与相”NOR存储器”互换使用。 许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。 NOR是现在市场上主要的非易失闪存技术。 NOR一般只用来存储少量的代码;NOR主要应用在代码存储介质中。 ● NAND的4ms擦除速度远比NOR的5s快。 ● 大多数写入操作需要先进行擦除操作。 ● NAND的擦除单元更小,相应的擦除电路更少。
Framework:这层主要是处理不同厂家的NOR 物理特色差异,初始化SPINOR的工作状态,如工作线宽(1 线、2 线、4 线、8 线)、有效地址位(16M 以上的NOR 需要使用4 地址模式), 对应代码目录:drivers/mtd/spi-nor/spi-nor.c M25P80(generic SPI NOR controller driver):这层主要对SPI NOR Framework Flash NOR Flash 是一种非易失闪存技术,是Intel 在1988 年创建 MTD MTD(memory technology device 内存技术设备) 是用于访问memory 设备( =0 ;sample_mode =2 spi_sclk = port:PC00<4><0><2><default> spi_cs = port:PC01<4><1><2><default> spi0_ mosi = port:PC02<4><0><2><default> spi0_miso = port:PC03<4><0><2><default> spi0_wp = port:PC04<4><0><
闪存介绍 由于 HTTP 协议是无状态的,所以 Laravel 提供了一种用于临时保存用户数据的方法 - 会话(Session),并附带支持多种会话后端驱动,可通过统一的 API 进行使用。 image.png 在控制器中定义闪存: session()->flash('success', '欢迎,您将在这里开启一段新的旅程~'); 之后我们可以使用 session()->get('success
1.4.4 NOR FlashNOR Flash是一种快速、随机读写的闪存存储器,主要用于存储程序代码、固件等需要快速读取的数据。 1.4.4.1 QSPI FlashQSPI Flash(Quad SPI Flash)是一种串行外部闪存,采用了NOR闪存作为其存储介质。 具体来说,QSPI Flash内部包含了一个控制器和一个或多个NOR闪存芯片,控制器通过SPI接口与主机之间进行通信。 1.4.4.2 其他NOR Flash存储器其他使用Nor Flash存储器技术的存储器包括Parallel NOR Flash、SPI NOR Flash和XIP Flash等。 机械硬盘的容量通常较大,常见的容量有1TB、2TB、4TB等。机械硬盘的读写速度通常比软盘快得多,一般能够达到几百MB/s的速度。
Nor FlashNOR Flash是一种非易失闪存技术,是Intel在1988年创建。是市场上两种主要的非易失闪存技术之一。按照接口区分, Nor Flash也可以分为并行和串行两种。 由于并行Nor Flash易存在兼容性问题,现已逐渐淘汰,目前常用的Nor Flash通常指串行Flash,即SPI Flash,其接口定义和图3一致。 表1 NAND Flash &Nor Flash 存储介质对比表3. eMMCeMMC 本质上还是Nand flash ,数据接口支持1bit、4bit和8bit三种。 eMMC=Nand flash +闪存控制芯片+标准接口封装,其内部集成的闪存控制器具有读写协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能,极大降低了Nand-flash的使用难度 当主控制所需搭配的存储容量较高时(如4GB、8GB甚至32GB),选择eMMC将更具性价比。
最近研究了下nor flash的掉电问题,对nor的掉电有了更多的认识。总结分享如下 擦除从0变1,写入从1变0 nor flash的物理特性是,写入之前需要先进行擦除。 [ris4ygita2.png] 第二步骤:erase 全部写入0之后,就进行擦除,擦除是会将所有的0都变成0xFF,这个是4k的数据并行进行的,在这个过程中掉电,可以看到所有的数据都介于0-0xFF [un6qap4hij.png] 第三步骤:post-program all "FF" 这一步其实我没太理解,但从掉电后的数据特征看,有一种状态可能跟这一步没完成有关。 即4k的数据,处于不稳定的0xFF状态。不稳定的意思是,某次上电读出来为全0xFF,重新上电再读,可能就是夹杂着一些0xFD, 0xBF之类的数据。 本文链接:https://www.cnblogs.com/zqb-all/p/12207924.html 公众号:https://sourl.cn/2Cc4jB
TLC颗粒 QLC:QLC = Quad-Level Cell架构,即4bit/cell,支持16充电值,速度最慢寿命最短,早期QLC从他的实际表现要将其用于实际的企业业务中的确有点勉强,但随着技术的不断发展
之前有介绍过写保护,这里就不赘述了,可参考:https://www.cnblogs.com/zqb-all/p/12182920.html 但没有谈到开销,今天有同事问起,便记录一下 性能 不考虑写保护的nor