1、什么是Flash,有什么种类?
Flash就是一种存储器芯片,就是一种用来存储程序和数据的部件。
按照掉电还能否保持数据来分:易失性和非易失性。
易失性:SRAM、DRAM(SDRAM、DDR-SDRAM),适合做主存储。
非易失性:ROM(PROM、EPROM、EEPROM、Flash ROM)、Flash(NOR、NAND),适合做辅助存储。
以下主要是比较NOR Flash和NAND Flash:
2、程序能否在芯片内执行?
NOR Flash可以在芯片内运行,即应用程序可以在闪存内运行,不必再把代码写入到RAM当中,传输效率高,但是本身写速度和擦除速度很慢,而且擦除之前还必须先将目标块内所有位清零。
NAND Flash不能片内执行,但存储单元密度很高,写入与擦除速度也很快,擦除操作也很简单。
3、擦除块大小和执行时间?
NOR Falsh擦除是从64~128K的块内进行,执行时间为5s。
NAND Falsh擦除是从8~32K的块内进行的,执行时间只需要4ms,擦除单元更小,擦除速度更快,需要的擦除电路更少。
4、读取数据方式?
NOR Falsh带有SRAM接口,有足够的地址引脚来寻址,因此可以容易读取内部的每一个字节。
NAND Falsh用复杂的IO来串行读取数据,各个产品和厂商的方法可能不一样。
5、主要用途?
NOR Flash 可在片内运行程序,读取速度快,读取数据容易,写取速度慢,擦除速度也慢,因此可以应用在代码存储介质上。
NAND Flash 不能片内执行,容量大,写取速度快,擦除数据也快,读取速度慢,读写采用512字节的块,单元尺寸几乎是NOR的一半,生产过程比较简单,在给定尺寸内可提高容量,减低成本,因此可用于取代硬盘之类的设备。
6、耐用性?
NOR Flash支持擦写次数十万次。
NAND Flash擦写次数,一百万次,因为尺寸比NOR小八倍,因此在给定时间内删除次数要少一些。
7、位反转?
flash器件都会有的,发生在NAND Flash比较多,一个位会发生反转,可能认为一个位并不起什么作用,但是如果发生在关键文件上,就可能会导致系统停机。可用EDC/ECC数据校验算法来解决此问题。
8、坏块处理?
坏块是随机分布的,需要对介质进行初始化扫描,并将坏块标记为不可以,如果不进行这项处理,将会导致高故障率。
9、是否需要软件支持?
NOR Flash的使用不需要任何软件支持,可直接运行代码。
NAND Flash 使用之前需要先写入内存技术驱动程序,然后才可以写入操作,写入时千万不能向坏块写入,也就是意味着NAND器件必须时时刻刻进行虚拟映射。
10、 NAND Flash的一些概念:chip,die, Block, plane,page
(1)chip是指芯片,一个封装好的芯片就是一个chip;
(2)die是晶圆上的小方块,一个芯片里可能封装若干个die,由于flash的工艺不一样,技术不一样,由此产生了die,一个chip包含N个die;
(3)Block是NANDFlash的最小写入单位,一个Block包含了64个Page;
(4)plane就是一个存储矩阵,包含若干个Block;
(5). Page是NANDFlash的最小读写单位,一个Page包含若干个Byte,有512(small page)、2018、4096、8192,目前最常见的是2048字节(large page);
11、NAND Flash有哪些种类?
SLC:一个存储单元存放1bit数据,只放0和1;
MLC:一个存储单元存放2bit数据;
TLC:一个存储单元存放3bit数据;
12、什么情况下会导致坏块?
1、出厂就有坏块;
2、擦除失败产生的坏块;
3、写操作失败产生的坏块;
13、空闲区域有什么用?
每一个page,都有一块空闲区域,之所以设计了多余的区域,是用来存放数据的校验值
这片区域一般是给ECC/EDC用的,该操作是随着页一起完成的。
每一个page除了2K字节外,还有64字节的空闲区域(2K + 64)。