当前位置:网站首页 > 职业软技能 > 正文

j-flash是什么软件(flash是哪个软件)



1 存储介质种类

存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称为内存储器(简称内存),辅助存储器又称为外存储器(简称外存)。

2 Flash分类

NOR闪存是由Intel公司开发的,是一种随机访问设备,具有专用的地址和数据线(和SRAM类似),但容量相对较小,价格相对更高,以字节的方式进行读写,允许对存储器当中的任何位置进行访问;NAND闪存则没有专用的地址线,不能直接寻址,成本相对较低,容量也大得多,是通过一个间接的、类似I/O的接口来发送命令和地址来进行控制的,这就意味着NAND闪存只能够以页的方式进行访问。NOR Flash可以像其他存储器那样连接并在上面直接运行代码,而NARD Flash必须先写入驱动程序,才能正常使用,因此需要频繁的随机存取的系统使用NOR Flash比较合适,通常用于代码存储,直接在Flash中运行,而NAND Flash通常用于存储数据。

两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的工作原理相同,主要是利用电场的效应来控制源极与漏极之间的通断,栅极的电流消耗极小,不同的是场效应管为单栅极结构,而FLASH为双栅极结构,在栅极与硅衬底之间增加了一个浮置栅极。

浮置栅极是由氮化物夹在两层二氧化硅材料之间构成的,中间的氮化物就是可以存储电荷的电荷势阱。上下两层氧化物绝缘层的厚度大于50埃,以避免发生击穿。

储存原理

浮栅的充放电

向数据单元内写入数据的过程就是向电荷势阱注入电荷的过程,写入数据有两种技术,热电子注入(hot electron injection)和F-N隧道效应(Fowler Nordheim tunneling),NAND型闪存的擦和写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的氧化物绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据)。而NOR型闪存擦除数据仍是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时则是采用热电子注入方式(电流从浮置栅极到源极)。

在写入新数据之前,必须先将原来的数据擦除,这点跟硬盘不同,也就是将浮栅的电荷放掉,两种FLASH都是通过F-N隧道效应放电。

浮置栅极状态:0和1

这方面两种FLASH一样,向浮栅中注入电荷表示写入了’0’,没有注入电荷表示’1’,所以对 FLASH 清除数据是写 1 的,这与硬盘正好相反;

对于浮栅中有电荷的单元来说,由于浮栅的感应作用,在源极和漏极之间将形成带正电的空间电荷区,这时无论控制极上有没有施加偏置电压,晶体管都将处于导通状态。而对于浮栅中没有电荷的晶体管来说只有当控制极上施加有适当的偏置电压,在硅基层上感应出电荷,源极和漏极才能导通,也就是说在没有给控制极施加偏置电压时,晶体管是截止的。 如果晶体管的源极接地而漏极接位线,在无偏置电压的情况下,检测晶体管的导通状态就可以获得存储单元中的数据,如果位线上的电平为低,说明晶体管处于导通状态,读取的数据为0,如果位线上为高电平,则说明晶体管处于截止状态,读取的数据为1。由于控制栅极在读取数据的过程中施加的电压较小或根本不施加电压,不足以改变浮置栅极中原有的电荷量,所以读取操作不会改变 FLASH 中原有的数据。

连接和编址方式

两种FLASH具有相同的存储单元,工作原理也一样,为了缩短存取时间并不是对每个单元进行单独的存取操作,而是对一定数量的存取单元进行集体操作,NAND型FLASH各存储单元之间是串联的,而NOR型FLASH各单元之间是并联的;为了对全部的存储单元有效管理,必须对存储单元进行统一编址。

NAND的全部存储单元分为若干个块,每个块又分为若干个页,每个页是512byte,就是512个8位数,就是说每个页有512条位线,每条位线下 有8个存储单元;那么每页存储的数据正好跟硬盘的一个扇区存储的数据相同,这是设计时为了方便与磁盘进行数据交换而特意安排的,那么块就类似硬盘的簇;容量不同,块的数量不同,组成块的页的数量也不同。 在读取数据时,当字线和位线锁定某个晶体管时,该晶体管的控制极不加偏置电压,其它的7 个都加上偏置电压 而导通,如果这个晶体管的浮栅中有电荷就会导通使位线为低电平,读出的数就是 0,反之就是 1。

NOR 的每个存储单元以并联的方式连接到位线,方便对每一位进行随机存取;具有专用的 地址线,可以实现一次性的直接寻址;缩短了 FLASH 对处理器指令的执行时间。

差异对比

    在写数据和擦除大量数据时,由于NAND flash 支持整块操作,因此NAND比NOR快得多,两者相差近千倍;而且NOR flash则要求在进行擦除前先要将目标块内所有的位都写为1,但是数据量小的时候,比如几个字节,Nor Flash比NAND flash 擦写速度快,因为对NAND flash的读写操作,虽然只是几个字节的操作,也需要重写整个数据块;

    由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。读取数据时,NOR比NAND快,NOR以字或字节为单位进行读取,NAND要先向芯片发送地址信息进行寻址,才能开始读数据。

      在面积和工艺相同的情况下,NAND FLASH容量比NOR要大得多,生产成本低,也更容易生产大容量的芯片,因此加个相对比较便宜;

      NOR FLASH每个存储单元与位线相连,增加了芯片内位线的数量,不利于存储密度的提高。

        NAND FLASH的I/O端口采用复用的数据线和地址线,必须先通过寄存器串行地进行数据存取,各个产品或厂商对信号的定义不同,增加了应用的难度。NAND Flash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息,操作时序比较复杂,一般CPU最好集成NAND控制器;

        NOR FLASH有专门的地址引脚来寻址,较容易与其他芯片进行连接,另外还支持本地执行,应用程序可以直接在FLASH内部运行,可以简化产品设计。

          一般NAND擦写次数100万次,NOR擦写10万次。但是NOR的可靠性要高于NAND,这主要是因为NOR型的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,因而一般用在对可靠性要求高的地方。相反的,NAND型接口和操作均相对复杂,位交换操作也很多,关键性数据更是需安错误探测/错误更正〔EDC/ECC)算法来确保数据的完整性,因此出现问题的几率要大得多,坏区块也是不可避免的,而且由于坏区块是随机分布的,连纠错也无法做到。

            NOR Flash的升级较为麻烦,因为不同容量的NOR Flash的地址线需求不一样,所以在更换不同容量的NOR Flash芯片时不方便。通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NOR Flash。

            而不同容量的Nand Flash的接口是固定的,所以升级简单。

              Linux系统中采用MTD来管理不同类型的Flash芯片,包括Nand Flash和NOR Flash。支持在Flash上运行的常用文件系统有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs文件系统是只读文件系统。

              如果想在Flash上实现读写操作,通常在NorFlash上我们会选取jffs及jffs2文件系统,在NAND Flash上选用yaffs或yaffs2文件系统。Yaffs2文件系统支持大页(大于512字节/页)的NAND Flash存储器。

                保存数据的可靠性是任何存储设备的重要性能指标。闪存会遭遇称为位翻转的现象,其中一些位可以被反转。这种现象在NAND闪存中比在NOR闪存中更常见。出于产量考虑,NAND闪存随附着散布的坏块,随着擦除和编程周期在NAND闪存的整个生命周期中持续,更多的存储器单元变坏。因此,坏块处理是NAND闪存的强制性功能。另一方面,NOR闪存带有零坏块,在存储器的使用寿命期间具有非常低的坏块累积。因此,当涉及存储数据的可靠性时,NOR Flash具有优于NAND Flash的优势。

                可靠性的另一个方面是数据保留,这方面,NOR Flash再次占据优势,例如,NOR Flash闪存S70GL02GT提供20年的数据保留,最高可达1K编程/擦除周期,NAND闪存S34ML04G2提供10年的典型数据保留。

                  NOR闪存在初始上电期间通常需要比NAND闪存更多的电流。但是,NOR Flash的待机电流远低于NAND Flash。两个闪存的瞬时有功功率相当。因此,有效功率由存储器活动的持续时间决定。NOR Flash在随机读取方面具有优势,而NAND Flash在擦除,写入和顺序读取操作中消耗的功率相对较低。

                    所有flash器件都受位交换现象的困扰。在某些情况下(NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法,这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。

                    在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

                      当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。

                      在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。

                      使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。

                      驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。

                        NAND和NOR芯片的共性首先表现在向芯片中写数据必须先将芯片中对应的内容清空,然后再写入,也就是通常说的“先擦后写”。只不过NOR芯片只用擦写一个字,而NAND需要擦写整个块。其次,闪存擦写的次数都是有限的.当闪存的使用接近使用寿命的时候,经常会出现写操作失败;到达使用寿命时,闪存内部存放的数据虽然可以读,但是不能再进行写操作了所以为了防止上面问题的发生,不能对某个特定的区域反复进行写操作。通常NAND的可擦写次数高于NOR芯片,但是由于NAND通常是整块擦写,块内的页面中如果有一位失效整个块就会失效,而且由于擦写过程复杂,失败的概率相对较高,所以从整体上来说NOR的寿命较长。

                        另一个共性是闪存的读写操作不仅仅是一个物理操作,实际上在闪存上存放数据必须使用算法实现,这个模块一般在驱动程序的MTD(Memory Technology Drivers)模块中或者在FTLZ (Flash Translation Layer)层内实现,具体算法和芯片的生产厂商以及芯片型号有关系。

                        NOR-FLASH 基本结构

                        l 基本单位是 MOSFET(晶体场效应管)

                        l Floating Gate:浮动栅极

                        l DRAIN:漏极

                        l p-well:硅基

                        l GATE:栅极

                        一个页面通常由256或512字节的内存(2048或4096位)组成。硅的制造工艺要求所有的存储单元都建立在一个共同的基础上,称为基板。为了使存储操作更易于管理,在衬底中注入了一系列p-well。这些p-well相互之间是电绝缘的,称为普通p-well。

                        3 擦除的物理过程

                        一个高的正电压(大约+8V)加到普通的p-well,将电荷吸引在MOSFET的浮动栅极内。同时,一个高的负电压(-10V)加到MOSFET的栅极,将负电荷排斥掉。这两个电压叠加在一起,形成一个巨大的电场,使电子“隧道”穿过氧化物屏障。通过这个过程,浮动栅极的电子被耗尽,从而降低了它们的阈值电压。如果只看单个单元的话(通常在nA范围内),电流是微小的。由于电流非常小,电场必须维持很长时间才能提取足够数量的电子,使得擦除操作相对缓慢。

                        4 擦除的代码实现

                        Flash编程只能将1写为0,不能将0写为1,而擦除才可以将0写为1。所以在Flash编程之前,必须将对应的Page擦除,而擦除就是把所有位都写为1,直到Flash里都是0XFFFFFFFF才能被写入。并且需要注意:

                          擦除一个page的数据流程如下:

                          (1)设置寄存器为page擦除状态

                          (2)加载一个无效数据dummy,任意值到目标区域上

                          (3)激活寄存器高电平状态

                          (4)加一个while死循环,等待高电平状态消失,高电平状态消失说明擦写完成

                          (5)使能寄存器的鉴别模式

                          (6)读出所有数据和0XFFFFFFFF比较

                          (7)数据相符,关闭寄存器verify模式,返回success。失败重复上面所有步骤

                          (8)失败次数达到门限值,关闭寄存器verify模式,返回fail

                          Note:在高电平操作之后,硬件已经记住了目标的擦除page,所以只会是目标page是表现出verify模式。

                          5 读出的物理过程

                          当浮动栅极中没有电子时,Gate和Source两端的电压远小于VTREF,Drain和Source之间可以产生电流。当浮动栅中有电子时,Gate和Source两端的电压大于VTREF,Drain和Source之间就不能产生电流。

                          6 写入的物理过程

                          MOSFET连接到一个大的正电压(+9V)。同时漏极正偏置到大约+4V,导致电子从源极流向漏极。电子从源极到漏极,从正偏压浮栅下面通过,由于施加在栅极上的强正电场,一些电子被“拉入”浮动栅极。一旦进入,这些电子就不再有逃逸所需的能量。

                          7 写入的代码实现

                          需要注意:

                          1.以word为写入单位

                          2.写前需要提前擦除,写入前,必须是0XFFFFFFFF。

                          实现目标写一个buffer的数据(需要注意操作的时候要按照具体芯片文档说明来操作,比如关闭一些时钟和中断)

                          流程:

                          (1)设置底层寄存器为写状态

                          (2)加载一个word的数据到buffer上

                          (3)通过设置寄存器设置为高电平状态

                          (4)等待高电平状态消失,判定为写结束

                          (5)数据比对,比对成功则写成功

                          (6)重复前面的步骤进行第二个一直到第n个word的写操作

                          7.1 Flash更新的代码实现

                          Write是目标区域是空白,然后写入数据;Update是在目标区域已经存在数据的情况下,把目标区域的数据给覆盖更新成新数据

                          按照已知的特点,flash是无法一次擦除,多次写入的。要想写入数据必须重新对目标区域进行擦除。擦除是按整个Page来擦除的,因此需要对数据进行备份到Ram中,再擦除,再写入。把Flash的擦和写结合就是Update。

                          Update n个word流程如下:

                          (1)目标地址dst,Update数据来源地址src,长度n个word,计算目标地址和page起始地址的偏移长度offset

                          (2)复制备份数据到ram中

                          (3)在ram中把数据update掉

                          (4)擦除page

                          (5)把ram buffer中的数据到目标区域,整个page都重新写入

                          8 Flash读写存在的潜在风险

                          随着写入与擦除次数的增多,电子在浮动栅极和隧穿氧化层之间反复进出,浮动栅极存储电子的能力就逐渐减弱,所需的擦除电压也逐渐降低。Erase margin和Program margin的区别会越来越小,当两者相交时,就会造成存储的数据错乱。

                          8.1 Flash的过擦问题

                          外加高温等物理环境可以放大漏极电流等因素的影响---过擦问题

                          Flash擦除的实际动作有三个步骤:

                          为了可靠的操作(在编程单元和擦除单元之间有一个裕度),以确保在长时间的使用中,电荷不会从“0”翻转到“1”。集成内存控制器执行迭代算法,确保每次程序和擦除之间电压有足够的边距。实际上的擦除动作有Pre-Program->Erase Phase-->Recovery Phase;

                          那么在这个三步操作过程中如果出现异常断电、程序异常打断擦除过程就可能会使得FLASH存在不确定的状态,出现过擦问题。

                          红外图像处理系统中,对于两点非均匀校正算法,需要预先采集黑体数据,计算并存储非均匀性校正的增益和偏移系数,同时对于盲元替换,需要预先检测盲元位置并存储位置信息,Flash的作用是作为FPGA配置程序和存储校正参数信息的存储介质,所以NOR Flash更合适。

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                           

                          到此这篇j-flash是什么软件(flash是哪个软件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

                          版权声明


                          相关文章:

                        1. onenet论文(论文写作软件 onenote)2025-08-24 10:09:09
                        2. xp系统安装虚拟打印机(xp系统安装虚拟打印机软件)2025-08-24 10:09:09
                        3. 文件对比查重软件(文件查重程序)2025-08-24 10:09:09
                        4. u盘启动盘制作软件以及对应操作流程(u盘制作启动盘用啥软件)2025-08-24 10:09:09
                        5. pcap文件解析工具(pcap解析软件)2025-08-24 10:09:09
                        6. 线上小程序制作软件(线上小程序怎么做)2025-08-24 10:09:09
                        7. 电脑剪辑视频的软件哪个好用(电脑剪辑视频最好用的软件)2025-08-24 10:09:09
                        8. u盘虚拟软盘(虚拟 u盘)2025-08-24 10:09:09
                        9. pem文件是干嘛的(pem文件用什么软件打开)2025-08-24 10:09:09
                        10. aippt免费生成软件(ppt免费制作app)2025-08-24 10:09:09
                        11. 全屏图片