你了解FLASH吗?
@人人能科普,处处有新知FLASH的发展历史FLASH闪存是是一种非易失性( Non-Volatile )内存,其名字有闪耀,闪烁的意思,也体现了其读写快速的特点,“读写过程一闪而过”。
首先简单介绍一下FLASH的发展过程。
1.在计算机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。ROM内部的资料是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,就不能再作任何修改。并且由于ROM是在生产线上生产的,成本高,一般只用在大批量应用的场合。
2.由于ROM制造和升级的不便,后来人们发明了PROM(Programmable ROM,可编程ROM)。用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改。并且其成本比ROM还高,而且写入资料的速度比ROM的速度要慢,一般只适用于少量需求的场合或是ROM量产前的验证。
3.EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了ROM、PROM芯片只能写入一次的弊端。EPROM芯片可以重复的擦除和写入,但是EPROM的擦除和写入都需要专用的擦除器和编程器。
4.后来针对EPROM擦除写入必须使用专用设备的弊端,出现了EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。
5.FLASH ROM在使用上很类似EEPROM,因此,有些书籍上便把FLASH ROM作为EEPROM的一种,这可以称为广义EEPROM,而狭义的EEPROM则将二者分开。事实上,二者还是有差别的。FLASH ROM在擦除时,也要执行专用的刷新程序,但是在删除资料时,并非以Byte为基本单位,而是以Sector(又称Block)为最小单位,Sector的大小随厂商的不同而有所不同;只有在写入时,才以Byte为最小单位写入; FLASH ROM的存储容量普遍大于EEPROM。
FLASH的一些基本概念。
完整的FLASH芯片称为device一个device可能包含1个或多个die(LUN),die是具备完整flash芯片功能的模块,对比含1个die的device,区别在于没有封装的就是die,封装后的就是device。Die内可以含多个plane,每个plane具备独立的读、写、擦除功能,但多个plane可以公用控制逻辑寄存器,即在die内,可以同时对多个plane进行相同的操作Plane下最小擦除单元就是block,一个block包含多个page,所有串在同样BL下的page组成一个block。
Page是能够执行编程和读操作的最小单元,同一根WL上的所有数据即page,WL即page.Cell是Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit数据。
FLASH层次结构图
根据FLASH内部存储结构划分,可以将FLASH划分为两类:NOR型和NAND型。Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。
从字面意思理解,NOR就是NOT OR,就是或非门,因为对于NOR型FLASH来说,只有当字线和位线都为低时,对应的存储单元的数据才是高。
NAND就是NOT AND,就是与非门,因为只有当字线都为高时,位线才为低。对于什么是位线,什么是字线,请看下面两张图,
WORD对应的就是字线,Bit对应的就是位线。
NOR FLASH结构示意
NAND FLASH结构示意
对于FLASH的操作一般分为读、写、擦除,NOR和NAND型FLASH的操作方式上也是有所差异的。NOR型FLASH,采用的是沟道热电子注入(CHE)的方式来写入数据,F-N隧穿效应来擦除数据。而NAND型FLASH,写入和擦除都是利用F-N隧穿效应来实现的。
F-N隧穿效应涉及到很高深的量子理论,不过这个效应很早就被人发现了,是在1957年被日本人发现的。
NOR FLASH和NAND FLASH由于它们不同的存储结构,也表现出了很多不同的特点:
1、容量和成本NOR FLASH在1~4MB的小 容量时具有很高的成本效益NAND FLASH 在大容量场合单位容量成本低
2、性能差别NOR 擦除和写入慢,读取快,可以直接运行代码,NAND 擦除和写入快,读取慢,需要将程序先读入RAM再执行。
3、接口差别nor flash 的接口和RAM一样,而 nand flash 是使用I/O口来串行地存取数据。
4、易用性nor flash可以直接地使用基于 nor flash 地内存,可以直接在上面运行代码而使用 nand flash需要先写入驱动程序,还要将程序先读入RAM再执行。
5、耐用性在nand flash内存中的每个块的最大擦除写次数是100万次,而nor flash 的擦写次数是10万次。
6、主要用途两者的差异也就决定了它们的使用范围的不同,在BIOS、穿戴设备、汽车电子等不需要频繁擦除写入,并且容量要求低的场合,多使用NOR FLASH。而在人们常用的U盘、一些工业设备如PLC、HMI等,则一般使用NAND FLASH。综上,可以将二者的差异汇总为如下表格。
一文了解固态硬盘(SSD)
固态硬盘(SSD), Solid State Disk,固态硬盘是用固态电子存储芯片阵列而制成的硬盘,主要由两部分组成。(注:本文主要介绍主流产品)
1 主控单元:用来操作存储单元,并驻留一定固件,带有操作系统的部件。
2 存储阵列:闪存芯片(NAND FLASH),单片FLASH芯片有64GB/128GB/256GB,也有少量SSD存储芯片采用DRAM芯片制作而成。
SSD的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U盘等样式。这种SSD固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,适合于个人用户使用。
固态硬盘接口:
常见的固态硬盘内部如下图所示,主要由控制器、电源、NAND FLASH阵列、对外连接器组成。
对外接口主要保护以下:IDE、SATA、mSATA、PCIE、M.2,IDE接口的固态硬盘由于采用并行数据传输方式,数据线较多,且常常速度较慢已经逐步被淘汰;SATA2.0支持最大速率3Gbps,这类接口由于最大支持的速度有限,无法完全发挥出SSD的性能。SATA3.0支持最大速率达6Gbps(Gb per second)。而其最大的优点就是目前市场非常成熟,市场上很多硬盘都是这种接口。
m SATA 也称为mini-SATA,适用于对尺寸要求较高的场合,m SATA是一种小型化的SATA接口。
PCI-E接口也是最初出现的一种接口,开始主要应用于企业级SSD及其他数据传输场合,随着SATA接口速率瓶颈的到来, PCI-E硬盘才逐步开始在高端消费市场流行起来。
M.2原名是NGFF接口,这是为超级笔记本量身定做的新一代接口标准,主要用来取代mSATA接口。不管是从非常小巧的规格尺寸上讲,还是说从传输性能上讲,这种接口要比mSATA接口好很多。M.2可以同时支持SATA和PCIE接口,如今的M.2接口可支持PCI-E 3.0 x4通道,理论带宽达到了32Gbps,且该接口支持新的NVME标准,进一步提升了固态硬盘的数据传输性能。
NAND FLASH是如何存储信息的?
固态硬盘通常包含多片FLASH芯片,每一片FLASH内部可分为多个Plane,每个Plane又可分为多个Block。 通常使用的是2D的NAND FLASH,目前最新研制的3D NAND FLASH已经面试,采用立体堆叠的方式可以使得单片NAND FLASH的容量大大提升。
Block就是我们通常说的块,对某个块进行数据读写的操作。而每个Block上,又可分为多个Page,绝大多数的固态硬盘的单个Page由4Kb的数据区+128b的OOB组成。
OOB(out of band,带外数据)在 NAND Flash 中是附加数据空间,用于存放额外的 ECC 纠错码和元数据。
在数据读写的过程中,Page是最小单位,即写数据和删除数据时只能对整个Page进行操作。所以Nand Flash在硬件设计时候,对于每一片(Plane),都有一个对应的区域专门用于存放缓存数据,将要写入到物理存储单元中去的或者刚从存储单元中读取出来的数据放入这个数据缓存区,本质上就是一个缓存buffer,也叫做page register 。固态电子盘在读写数据时的数据流向如下。
存储颗粒是什么?
存储颗粒是存储数据的最小单元,目前主要有三种:SLC、MLC和TLC。
颗粒都是有寿命的,即固态硬盘是有寿命的,在达到固态硬盘寿命以后,FLASH 内部的坏块数量将以指数形式上升,很快使得硬盘不能使用。而直接影响寿命的因素就是存储颗粒的重复擦写次数。
其中SLC为30000~100000次;MLC为:3000~5000次;TLC为:500~1000次。市面上主流固态硬盘均为TLC 颗粒,容量大,价格低。在可靠性要求较高的场合可使用MLC颗粒,SLC通常应用于国防军工等高可靠性场合,通常单片64GB的SLC颗粒的FLASH价格可达几千元。
计算机中所有的信息都会回归到0和1上,因此只要能用来区分0和1的物体都可以用来记录数据,例如原来用绳子打结来计数的方式。
写入数据时,在CONTROL施加电压,电子由SOURCE流经DRAIN时就会有部分电子跃迁至FLOATING层。
擦除时,在底下的半导体施加电压,即可释放掉悬浮层中的电子,在没有外来电场的作用下,悬浮层中的电子由于上下两个SiO2层的作用使其无法逃离,电荷/数据可以保存十多年之久。
这种单个颗粒仅有高或者低两种状态的颗粒就是SLC的工作模式,由于在不断擦写的过程中,电子需要不断的穿越中间的SiO2衬底,会逐渐破坏其隔离电子通过的性能,直到颗粒彻底损坏。
SLC单个颗粒有两种电平,可以保存1bit数据,MLC可以保存2bit数据,TLC可以保存3bit数据,QLC可以保存4bit的数据,但是由于其寿命仅有一百余次,目前市面上很少见到这种产品出现。
固态硬盘的寿命保护机制:擦写次数不够,容量来凑。
1容量冗余操作:为什么我们买的512GB的硬盘到手只有四百多GB,除了部分用来存放SSD本身的固件外,还有一大部分用来备用,当某个Page颗粒坏掉以后,将其标记为不可用以后,用备用的区域来替代。
2 写数据均衡操作:你重复的写4KB数据到一块TLC颗粒的固态硬盘中1000次,盘会坏掉吗?答案当然是否定的,控制器会自动分配操作FLASH单元的物理地址,会尽量避免长时间对同一个BLOCK进行重复读写,以免影响寿命。
还有很多其他的保护操作,欢迎大家留言一起交流、讨论
相关问答
英语读后感600字_作业帮[回答]《小王子》TheLittlePrince–ATaleofLoveandnLifeTitle:TheLittlePrinceAuthor:AntoinedeSt-Ex...
东芝如何布局5-Bit-per-Cell Flash SSD?近日召开的国际闪存技术峰会(FlashMemorySummit)上,东芝公布的内容干货满满。不仅凭借着最新推出的XFMExpress标准赢得了今年的“BestofShow”(展会最佳)...
安卓2.3和安卓8.0有什么区别?这个问题你可以看看官网的解答,挺详细的。从安卓1.6-安卓8链接:https://www.android.com/history这里仅作为搬运回顾Android的发展历史,并了解Andro...