行情
HOME
行情
正文内容
nand flash写入次数 我们的数据存在固态硬盘上安全吗?
发布时间 : 2025-01-23
作者 : 小编
访问数量 : 23
扫码分享至微信

我们的数据存在固态硬盘上安全吗?

随着SSD应用的越来越广,我们的台式机、笔记本甚至服务器都被SSD占领。你有没有想过一个很细思极恐的问题:红旗到底能打多久——SSD硬盘能用多久?我们的数据安全吗?

生命周期

根据我们前文杂谈闪存二:NOR和NAND Flash

我们知道NAND Flash单元的寿命是由擦写(P/E)次数决定的,而目前大部分的SSD都是由MLC颗粒组成,一般的MLC只有3000次擦写寿命。如下图:

幸亏我们有FTL,提供了写平衡,整体SSD的寿命才没有仅仅3000次写操作。那么究竟我们写入多少数据才会把SSD写坏呢?

这个实际上和很多因素有关:容量的大小,OP的大小,主控的算法等等。很多SSD产品在出厂说明中都有标有品保的最大写入量,如Intel的 240GB 335系列,标称的最大写入量是22TB。据统计,平均硬盘写入量年均1500GB~2000GB, 我们做个简单的计算就可以知道可以用多久:22/2= 11年,似乎还不错。

Wait a Minute! 如果你把SSD硬盘用来做BT下载,假设我们以10MB/s的速度下载,一天就会下载10 × 60 × 60 × 24 / 1024 = 843GB,22 × 1024 / 843 = 26 天,还不到一个月!如果你是个勤奋的程序员,在进行安卓手机开发,为了build快点,你把程序放到SSD上并每过一个小时做一次clean build同时产生10G临时文件,那么你的SSD可以用 22 × 1024 / 240 = 94天!太糟糕了!当然,这些都是理论最差情况,实际情况是这样吗?

TechReport上有一期文章(The SSD Endurance Experiment: They're all dead) 作者找了5块市面上常见的SSD,它们是Corsair Neutron GTX 240GB, Intel 335 Series 240GB, KingstonHyperX 3K 240GB, Samsung 840 Series 250GB, and Samsung 840 Pro 256GB。

作者通过诙谐的文笔,详细描述了通过持续不断的写入数据,实际测试SSD硬盘的可靠性,推荐读者详细阅读。

我们这里就描述一下结论。首先要提的是所有的SSD都可以写入数百TB。在写入100TB数据以后,它们都安然无恙,这是一件了不起的事情,要知道,这远远超过它们所标称的写入量。

测试结果如下图:

写入200TB后,最先出问题的是三星的840系列,它已经出现可以记录的坏块。这和它是唯一的TLC(1000次P/E)是分不开的。在300TB后出现不可修正错误,严重影响了数据可靠性,应该被立刻换下。如果继续,在900TB就彻底挂掉了。

Intel的335表现比较平稳,在600TB出现问题后,在700TB后,SMART信息就发出了失败警告,但是使用起来仍然一切正常,闪存单元也几乎都是完整的。继续写入,仅仅只过了50TB,也就是到达750TB,最终就崩溃了。金士顿的HyperX 3K,在写入近800TB死掉,而海盗船则表现异常优秀,在1.1PB前都表现平稳。只有在1.2PB才由SMART报告大量错误,在重启后,就不认盘了。

我们以Intel 335为例再来算一下,BT用户可以用600TB × 1024 / 843 = 728天,程序员可用 600TB × 1024 / 240 = 2560天=7.11年,普通用户可以用600TB/2 = 300年!情况十分乐观!

数据持久性

NAND的数据存储是把电子禁锢在Gate里,这个可怜的囚徒会不会在无人监管时逃出来呢?就是说,我们把SSD断电放在柜子里,数据会不会丢失呢?

这个并不是多虑,实际上,温度越高,电子越活跃,越有可能跑掉一部分,当很多电子跑掉后,数据就有可能丢失。实际上JEDEC组织早已对SSD定下了标准,如下图:

即消费品在掉电情况下,在30度室温中需要保证1年数据不丢失。它的来源是一份Intel的研究报告:

在30度情况下,数据经过52周即有可能出现数据丢失。如果我们把温度提高到55度,2周数据就有可能丢失!多么可怕的数字。

当然这是最低标准,而且要求很破旧的SSD都要遵守的原则。实际情况会好的多,但是也为我们敲响了警钟:SSD放着不动,数据可能会丢失的!

结论

看了这么多的数字,我们能得出什么结论呢?

1. SSD作为一般用途不需要担心使用寿命的问题,但是千万不要把它当作BT等下载盘!

2. SSD不适合作为冷数据备份用途,还是磁带/硬盘等比较合适,毕竟SSD这么贵,经济上也划不来。还有不要把SSD放在暴晒的汽车内置之不理,数据可是无价的。

3. 如果妥善使用SSD,SSD还是十分可靠的。

4. SSD挂掉之前会有很多坏块产生,我们需要在发生坏块的时候就开始进行数据迁移。不要等不认盘的时候,就后悔晚矣。

SPI-Flash是什么?使用注意事项及常见问题

一.概念:

SPI:serial peripheral interface

串行接口设备,spi flash 就是通过串行的接口进行操作的flash存储设备

flash按照内部存储结构不同,分为两种:nor flash和nand flash。这里spi flash 属于 nor flash!

spi flash 读写较慢,次数有限制,一般用于不经常更改的存储。

早期Norflash的接口是parallel的形式,即把数据线和地址线并排与IC的管脚连接。但是后来发现不同容量的Norflash不能硬件上兼容(数据线和地址线的数量不一样),并且封装比较大,占用了较大的PCB板位置,所以后来逐渐被SPI(串行接口)Norflash所取代。同时不同容量的SPI Norflash管脚也兼容封装也更小。,至于现在很多人说起NOR flash直接都以SPI flash来代称。

二、SPI FLASH读写介绍

对flash芯片的操作,一般包括对flash芯片的擦除,编程和读取,各大厂商的SPI flash芯片都大同小异,操作命令基本是没什么变化的,当我们拿到一款芯片,要特别注意芯片的容量,操作分区等。

其实,无论是对芯片的擦除,编程还是读取操作,我们大致可以按照以下的套路来:写命令---写地址---写(读)数据。正如以下的时序图一样清晰明了,我们先把片选信号拉低,再依次写指令,地址和数据,就可以对FLASH芯片进行操作。

掌握以上方法,就可以轻松操作SPI flash芯片了,当然,对时序这种底层的操作,还需要不断学习和积累,不论是用FPGA还是MCU,最终都是为了产生时序信号,只要静下来认真理解了它,一切问题就迎刃而解了。

三.注意事项

1.不同的SPI FLASH芯片可能会提供的擦除方式:扇区擦除(4KBytes),半块擦除(32KBytes),块擦除(64KBytes),片擦除。

2.不同的SPI FLASH芯片可能会提供的编程方式(也就是写数据):页编程(256Bytes),扇区编程(4KBytes)。

3.SPI FLASH如果擦除过,在往里面写0xFF这样的数据意义不大,因为它的特性就是擦除后数据就是0xFF。

4.写入flash时,只能把数据(bit)从1该为0。

5.传统的EEPROM的特点就是可以随机访问和修改任何一个字节,可以往每个bit中写入0或1。而写入flash时,只能把数据(bit)从1该为0。但是传统的EEPROM容量因成本的缘故收到限制,绝少有超过有512K的。

6.Nor Flash容量相对小,成本高,基本没坏块,数据线和地址线分开,可以实现随机寻址,读取任何一个字节,擦除任然要按块来擦。NAND FLASH容量大,成本低,坏块经常出现,但可以标记坏块,使软件跳过,数据线和地址线复用,按块擦除按页读取。

四、项目实操中的问题

项目中需要用到SPI flash,在使用这个4MB 的SPI flash中出了三个问题让印象深刻,特记录下来以作提醒

问题1:我们知道SPI flash也分主从模式,一般master都是有MCU等器件担当的,而slave有SPI器件担任,笔者的这个小系统同样如此。

并且MCU是自带有SPI controler,接线方式依然是四线解法,SCK,CS,DO,DI,在看手册的过程因为自己的不注意,看到描述是“user can

decide the SPICS configuration in the master mode,if P_IO_Ctrl[10] set 1, the IOA[12] as GPIO function, if P_IO_Ctrl[10] set 0, the IOA[12] as SPICS hardware function” 我当时没有好好体会这句话的意思,简单的认为我在使用SPI flash之前就k肯定需要把P_IO_Ctrl[10]设置为 0, 其实这是错误的认识。

因为现在是通过MCU对slave SPI器件操作,首先肯定是需要MCU端来选中SPI器件,从master角度来讲,只需要一个GPIO信号线接到slave的CS端,同时输出低电平就相当了选中了这个slave了,之所以如此说法是因为这是从slave角度来说的,相当于MCU现在也作为一个slave,另一个MCU控制这个slave,则这时候SPI 初始化时就需要把 P_IO_Ctrl[10] set 0

问题2:需要一个烧录器向SPI flash中烧写内容,用的是西立特公司的superPro,但烧录步骤错误了,忘记了在编程之前必须要erase,

了解了一下,好像是和nor flash一样的介质,擦除会把所有bit置1,在编程的时候根据需要只可以把相应位置0.

问题3:在使用MCU上一个SPI 控制器接口接SPI flash时,没有交叉连接,即MCU 的DI应该接SPI 的DO,MCU 的DO应该接SPI 的DI。

相关问答

NANDflash 和NORflash的区别?

1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...

固态硬盘所谓的擦写 次数 是什么意思?

就是写入和抹除的次数,一般固态硬盘的芯片有SLC、MLC、TLC三种:SLC=Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约10万次......

为何SSD硬盘的 写入次数 只有数千次?

固态硬盘是有和优盘中一样的存储颗粒组成!不过固态硬盘容量大,是有很多颗粒的!他们叫Nandflash!Flash的内部存储是MOSFET,里面有个悬浮门(FloatingGate)...固.....

NorFlash与 NandFlash 的区别?

NorFlash和NandFlash是两种不同的闪存存储器,它们的主要区别在于其存储方式和应用场景。1.存储方式:NorFlash采用的是随机访问存储(RAM)方式,也就是说可以...

u盘反复删除和 写入 有害处吗?

当然会的~~反复的擦除和写入都会对U盘的寿命有影响U盘是按擦除和写入的默认次数而慢慢减少,到为0的时候,U盘就会出现硬件上的问题,就需要换里面的FLASH芯...

固态硬盘现在还有读取 写入 的寿命问题吗?-ZOL问答

目前的硬盘不管是SSD还是HDD都存在寿命写入问题,不过SSD的寿命要比HDD长很多,目前的SSD基本采用的是MLC颗粒,最大写入数量是100TB,擦写在10万次左右,一般SSD使用...

对于SSD来说缓存很重要吗?为什么许多SSD都没有缓存?

首先说明SSD带缓存比没带缓存的好,至于说很重要那倒没有,不过有总比没有的好。SSD上的缓存一般都是1或者2颗DRAM颗粒构成,起到数据交换缓冲作用。一款SSD产品...

flash 制作三分钟动画要多少? - XBYHcRuMb 的回答 - 懂得

如果按照25帧/秒算的话,4500帧第一步,在第一帧画出矩形,把矩形设置成图形元件第二步,点击矩形,选择自由变换工具,把中心圆点拉到一个顶点上第三步,...

哪位知道usb供电线路原理是什么_其他

[回答]1、Usb盘是采用Flash芯片存储的,Flash芯片属于电擦写电门。在通电以后改变状态,不通电就固定状态。所以断电以后资料能够保存。2、Flash芯片的擦写...

单词复数形式规律是什么?不同的单词结尾,有不同的复数形式,就...

[回答]一、绝大多数的可数名词的复数形式,是在该词末尾加上后辍-s。读音变化:结尾是清辅音读[s],结尾是浊辅音或元音读[z]。例:friend→friends;cat→c...

 民间资本  洛克王国火苗虎 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部