热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

norflash和nandflash的区别_【存储器家族你我他(1)——Flash】

图片来源于网络,侵删昨晚都在回家的路上了,突然接到老大电话。老大:新项目为什么飞了一根线?我:灯的控制线漏接了
c9d30786edc1682bc6be334ed92ac31c.png

图片来源于网络,侵删

昨晚都在回家的路上了,突然接到老大电话。

老大:新项目为什么飞了一根线?

我:灯的控制线漏接了。

老大:(叹气)不是说一版定板吗?

我:(小声bb)我是说尽量啊。。。

算了算了,自己线没接,说什么都是错的。。。

5d36f0d96852df84770f8d527bc9ccc3.png


好了,进入今天的主题,存储器,是半导体行业三大支柱之一。对于我们身边的手机、平板、PC、笔记本和可穿戴等所有电子产品来说,存储器就类似于钢铁之于现代工业,是名副其实的电子行业“原材料”。

我们做电子产品,不免要跟存储类产品打交道,也就是我们说的Memory,Memory从类别上可以分两类:RAM和ROM。

目前消费类电子中的ROM几乎都是Flash型的,主要有Nand和NOR两大类,还有极小一部分是EPROM或者EEPROM的Flash。而RAM多是SDRAM或者DDRx SDRAM型的。
9f4626d025f950c8292ec724f8a67768.png

实际上还有一类Memory,也是手机产品通常采用的:MCP。为什么叫MCP呢?

因为它实际上是把RAM和ROM包在一起了。而根据内部包的东西,可以分为Nand+SDRAM型、NOR+SDRAM型,eMMC+SDRAM型。这里边eMMC就是Nand型的一种,只不过它里边包了Nand、SDRAM和相应的Nand接口控制器。(看到这里,差不多也晕了吧,晕就对了~~~嘻嘻!)

小提示:想要了解ROM和RAM究竟有何区别吗?建议大家可以查阅小何以前的文章,里面写的更详细! 聊聊存储器EMMC与DDR的那些事儿~~~

Memory具体分类见下图:
d697437eb9e05cc1828d6c4fcb3c1aac.png

Memory家族分类

我们先来说Flash。

通常,手机类嵌入式系统里的Flash相当于电脑的硬盘,用来做硬件启动、 软件数据存储和一些用户数据存储的。

NOR Flash的特点是传输效率高、容量小、贵。

NOR Flash实行的是芯片内执行,应用程序可以直接跑在NOR上面,而不用把代码取到RAM再读。由于它自身结构特点,很难把NOR Flash做大,目前能做的最大的就是128MB的,做到这么大的巨贵无比。。。一般都是4MB、8MB以下的应用场景会使用NOR Flash较多。基于它的特点,手机上已经早已看不见NOR Flash了。

6f4996d21570ca45d68c8d7156ff214d.png

NandFlash的特点是高的写入和擦除速度、容量大、便宜。

一个8MB的NOR Flash 比一个128MB的NandFlash便宜不了几毛钱,可想而知这个价格差距是有多大。但是Nand有自己的缺点:就是在使用过程中会产生坏块,并且容易产生位反转(NOR也会发生位反转,但概率不高)。这就要求Nand在使用时候CPU要有针对它相应的坏块管理和ECC校验位检测。

Nand还能往下分类,分为SLC、MLC和TLC的,它们是单层单元、多层单元和三层单元。这这里我说下大概原理。

SLC一个晶圆根据它的电压储存一个位,内容为0或1两个数字,MLC一个晶圆能存两位,内容为00、01、10、11四个,TLC就是能存三位了,表示八个数字。可以发现相同晶圆的TLC要比SLC容量多了7倍,但是,MLC是根据电压来分成八位的,存在很多不稳定因素,可靠性极差,擦写次数也很少,大概寿命500次擦写左右,因此一般来讲很少会用MLC。

相对来讲SLC的品质就很高,品质好的寿命可以达到上万次的擦写。我们通常使用的以SLC居多,MLC也有少量。现在,由于工艺的提高,要求元器件尺寸越来越小,Nand和NOR的大尺寸不能满足生产需要,于是一种SPI Nand/NOR Flash应运而生。

24c304d48932ae055081ca1c1bd646ed.png

512K SPI FLASH

顾名思义,它的本质还是Nand/NOR,只不过接口改用了SPI接口。现在很多CPU都会兼容SPI Nand/NOR的FLASH,让选择可以更多一些。而SPI NandFlash由于做了接口处理,所以也有相应的坏块管理功能在里面,减少了CPU的内存资源。

多说一句,我们通常说的SPI Flash默认指的就是SPI NOR Flash,如果你想要Nand的话一定要特别强调说出来是SPI NandFlash。


未完待续。。。

备注:以上内容为公众号(硬件女工程师的日常)原创作品,版权归作者所有,本头条号已获作者授权发布。

欢迎关注工程师小何,如果您觉得本文有点小用,可以点击右上角“…”转发或者扩散到朋友圈~~~



推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 乐视手机S1 Pro发布,声称手机真不卡,外观酷似iPhone
    乐视宣布即将发布乐视手机S1 Pro,搭载虎贲T7510芯片,声称手机真不卡。该手机外观与iPhone 14 Pro相似,采用居中药丸式挖孔屏和方形三摄模组。官方定位该手机为便宜的5G手机,售价预计在千元价位。 ... [详细]
  • 显卡驱动对游戏的影响及其提升效果的研究
    本文研究了显卡驱动对游戏体验的提升效果,通过比较新旧驱动加持下的RTX 2080Ti显卡在游戏体验上的差异。测试平台选择了i9-9900K处理器和索泰RTX 2080Ti玩家力量至尊显卡,以保证数据的准确性。研究结果表明,显卡驱动的更新确实能够带来近乎50%的性能提升,对于提升游戏体验具有重要意义。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 记录一次es集群load过高问题(待更新)
    toptop-H-ppid按shiftp以cpu来排序按shiftm以memory来排序将10进制线程pid转为16进制printf%x\npidjstackjstackP ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
author-avatar
斌仔151
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有