NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在Flash 闪存内运行,不必再把代码读到系统RAM中。 NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理和需要特殊的系统接口。

OneNand是针对消费类电子和下一代移动手机市场而设计的,一种高可靠性嵌入式存储设备。随着过去几十年的Nand技术的发展,一些公司,基于原先的NAND的架构,设计出一种理想的单存储芯片,其集成了SRAM的缓存和逻辑接口。OneNand既实现NOR Flash的高速读取速度,又保留了Nand Flash的大容量数据存储的优点。

NAND Flash

One Nand

NOR Flash

结构

串行

串行

并行

总线

复用

复用

分离的地址线和数据线

尺寸

1/8

典型单位1

坏块

随机分布

快速随机读取

快速顺序读取

快速写编程

同时擦除多个块

√ (最大64个块)

擦除的挂起/恢复

写回

√(错误检测)

√ (错误检测与纠正)

锁/解锁/紧锁

错误纠正

外部 (硬件/软件)

内置

不需要

扩展性

OneNAND结合了NAND存储密度高、写入速度快和NOR读取速度快的优点,整体性能完全超越常规的NAND和NOR。不过三星并不是希望它快速取代传统的NAND,而是将其作为NOR的竞争者。在具体实现上,OneNAND其实并不复杂,三星并不是采用另起炉灶的方式来设计它,而是巧妙地将NAND与NOR的结构融为一体。OneNAND采用NAND逻辑结构的存储内核和NOR的控制接口,并直接在系统内整合一定容量SRAM静态随即存储器作为高速缓冲区。这样,OneNAND就可以在容量指标上与NAND闪存靠拢,目前它的最高密度指标达到4Gb,虽然在容量上略不如NAND但比NOR闪存要高出许多。

NAND内核并不具备本地执行代码(XIP)的能力,但这项功能对各种需要快速程序运行终端设备来说非常重要。三星作出的解决办法就是依靠高速SRAM缓存—在存储器家族中,SRAM(静态随机存储器)的读写速度最快,CPU内的L1 Cache和L2 Cache采用的就是SRAM逻辑,可具备与CPU等速运行的能力。当OneNAND执行程序时,代码必须从OneNAND存储核心载入到SRAM,然后在SRAM上执行。由于SRAM的速度优势,数据载入动作几乎可以在瞬间完成,用户感觉不到迟滞现象,加上SRAM被直接封装在OneNAND芯片内部,外界看起来就好像是OneNAND也具备程序的本地执行功能。这种工作模式非常巧妙,并可收到与NOR相同的效果,但缺点是SRAM逻辑的晶体管利用效率非常低,无法实现较大的容量,三星在OneNAND中只是集成1KB容量的SRAM,因此OneNAND暂时只支持1KB代码长度的XIP—在这方面,OneNAND显然还无法与NOR闪存相媲美。

不过,OneNAND的读写性能相当出众,三星最新的OneNAND产品拥有高达108MBps的数据读取带宽,这已达到与NOR闪存相当的水准—这个速度也远远超过了现在的7200转桌面硬盘。相比之下,常规NAND闪存的读取性能只有区区17MBps,两者存在巨大的性能差异。其次,OneNAND的数据写入速度达到9.3MBps,虽然远远不如108MBps的读取速度,但相比NAND闪存的6.8MBps也已经有长足的进步了。与之形成鲜明对比的是,NOR闪存的写入速度只有可怜的0.14MBps,几乎称得上是慢如蜗牛。在数据擦除方面,OneNAND与NAND的指标相同,都达到64MBps,而NOR闪存更只有区区0.11MBps,与前两者完全无法相比。从性能角度来看,OneNAND无论读、写还是擦除都明显凌驾于NAND之上,NOR在写入/擦除方面的性能与之根本不具可比性,对嵌入式设备厂商来说,选择简单的OneNAND来代替NOR+NAND组合的方案是非常可行的。

由于OneNAND采用与NAND相同的存储内核,它也会遭遇存储坏块的问题。如果只是用在数据存储,这个问题似乎没什么大不了,但OneNAND必须用于系统代码的装载和执行,一旦出现存储坏区且该区正在执行代码访问,造成的后果便是设备死机或者关机,这其实也是NAND进入NOR应用领域的主要障碍。为了解决这个难题,三星公司为OneNAND闪存量身定做了一款名为“Datalight OneBoot”的嵌入式控制软件。Datalight OneBoot具有高度灵活的特性,可被简单地整合到各种类型的嵌入式系统中。在实际运行时,OneBoot允许设备像使用硬盘一样来调用OneNAND资源,读写操作的具体算法由OneBoot在底层直接实现。而在关键的坏块管理上,OneBoot通过实时扫描、瞬间屏蔽的方式来隐藏坏块。扫描工作一般在系统闲置时进行,如果OneBoot检测到存储区的某处存在坏块,那么OneBoot就对该区域作上标注,将坏块屏蔽起来,这样代码运行或数据读写时就不会访问到这个区域,保证系统运行及个人数据存储的可靠性。这种机制非常有效,往往是坏块刚刚产生就被OneBoot检测到并屏蔽,没有什么机会被程序或用户所访问。因此尽管OneNAND仍在物理上具备类似NAND的不可靠性缺陷,但三星的OneBoot嵌入式控制软件在很大程度上可以将之消除,该套系统的可靠性完全可以同搭载NOR闪存的系统相媲美。为了让OneNAND能进入更多领域,三星还在OneBoot基础上发展出增强的“OneBoot+File”技术,后者除了具备OneBoot所有的功能特性外,还能够明显加快系统的启动速度。OneBoot+File的启动加速技术有些类似于计算机的“休眠”,它在运行时可以自动保存系统的工作状态,在下一次启动时直接从该状态恢复。三星表示,采用OneBoot+File控制软件,系统的启动速度可比常规方式快出88%,几乎是即开即用。鉴于掌上设备日趋复杂化,软件功能增加,启动时间也相应延长,而选择三星的OneNAND闪存与OneBoot+File控制软件方案可很好缓解这些问题,这在智能手机、掌上电脑、高性能数码相机等产品中尤其具有积极意义。

OneNand、Nand和Nor三种Flash的区别相关推荐

  1. Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  2. 电路常识性概念(6)-VCC、VDD和VSS三种标号的区别

    电路常识性概念(6)-VCC.VDD和VSS三种标号的区别 在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即 ...

  3. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  4. 函数参数三种传递方式的区别

    函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...

  5. 服务器UDIMM, LRDIMM,RDIMM三种内存的区别

    服务器UDIMM, LRDIMM,RDIMM三种内存的区别 UDIMM RDIMM LRDIMM 区别与应用 随着应用程序的不断增长,内存被迫承担着更大压力.目前不管是服务器租用还是PC领域, DDR ...

  6. a commit git 参数是什么意思_Git中的git reset的三种参数的区别

    我们平时在使用git的时候,经常会遇到需要撤销上次操作的需求,这时候需要用到git reset的这个命令,他的使用就是 "git-reset – Reset current HEAD to ...

  7. 5分钟理解Iass Pass SasS三种云服务区别

    5分钟理解Iass Pass SasS三种云服务区别 其实搞懂这个问题也不难,我们可以把云计算理解成一栋大楼,而这栋楼又可以分为顶楼.中间.低层三大块. 那么我们就可以把Iass(基础设施).Pass ...

  8. 西门子哪款plc支持c语言,西门子PLC三种语言的区别

    原标题:西门子PLC三种语言的区别 PLC是机器人重要的一部分,下面小编就为大家介绍一些3种语言的区别,帮助大家学习. 一.梯形图 梯形图作为简单易读通俗易懂基本属于新人学习PLC的首选,而且调试的时 ...

  9. MySQL 不等于的三种使用及区别

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ MySQL中常用到判断符 ...

最新文章

  1. 提升用户体验的根本是内容
  2. Eclipse插件使用links目录的用法
  3. 算法—详细讲解单向链表的实现(python)
  4. Excel基础操作(二)
  5. 数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题
  6. Spring Cloud Alibaba发布第二个版本,Spring 发来贺电 1
  7. linux 修改密码和端口号_WINDOWS/LINUX系统修改管理员密码方法
  8. busybox的编译和使用
  9. MapGuide Windows编译
  10. 美萍车辆业务管理系统
  11. 易语言制作计算软件简单步骤_情侣头像制作 一款简单又好玩的头像制作软件...
  12. 苹果怎么信任企业级开发者_苹果企业签名是什么意思?
  13. 服务器声卡硬件安装,虚拟声卡,详细教您怎么安装虚拟声卡
  14. 图片怎么批量压缩?这两个方法有掌握吗
  15. 推荐一款高颜值网易云播放器
  16. mysql语句转为oracle语句
  17. Jquery生成条形码到网页以及打印条形码
  18. Python网站导航项目-2.项目创建与环境配置
  19. OpenCV--014: 图像插值
  20. google账号登录第三方平台实现

热门文章

  1. Qt线程间通信-信号与槽通信
  2. 反汇编基础-数组和指针的反汇编代码分析
  3. Qt学习笔记-简单的UDP广播包聊天室
  4. HTML期末作业-网上书城网上书店
  5. php post aspx,PHP模拟POST aspx页面不成功
  6. Python中append和extend的区别
  7. linux18.0.4安装mysql
  8. lisp提取长方形坐标_语义SLAM | 深度学习用于特征提取 : SuperPoint(一)
  9. 计算机网络之物理层:4、编码和调制
  10. C语言重难点总结:printf和scanf