`

SSD的工作原理

阅读更多
http://www.itbyte.net/2011/0525/483037_2.html
http://tagche.blog.51cto.com/649757/191290

SSD的工作原理和基本寿命

  但是,就算是这样的SSD,也是有缺点的。就像前面说的那样一是每MB的价格要远远高于HDD硬盘。二则是SSD有着重写次数的限制,而且其实该问题的最根本原因则在于,SSD更本无法进行重新写入。
  既然是无法进行重新写入,却又为何存在着与此自相矛盾的重写次数限制呢?原因在于在NAND闪存上写有数据的页面是无法直接进行重新写入的。如果需要进行重新写入的话,则必须分2步进行,首先进行数据擦除(ERASE),随后在写入新的数据(PROGRAM)。ERASE的操作就是将所有的bit都回复成1,而PROGRAM的操作,则是把其中需要的bit写为0。
  下图基本上标明了SSD的构造,通过向左边名为 POLY1 FLOATING GATE 的区域注入和提取电子来保存数据。FLOATING GATE中没有电子的部分为1,已经被注入电子的部分则是0。已经注入的电子,通过被称为Tunnel Oxide的绝缘膜来保持电子的通电状态。但是,在不断反复的对FLOATING GATE进行电子操作的过程中,Tunnel Oxide部分会产生老化。随后就无法保证已注入电子的通电状态。这就是SSD存在着重写次数限制的理由。
转发到微博
  如果把这重写次数限制的问题在进行近一步的说明的话,就会发现ERASE和 PROGRAM 之间的工作单位并不相同。在NAND闪存中ERASE是以区块为单位,而PROGRAM则是以页面为单位。实际的页面大小和区块大小根据NAND闪存的容量和种类的不同而有所差异。以最常见的2Gbit SLC NAND闪存为例,页面大小为2KB(由2048byter的数据空间和64bit的空闲空间合计2112bytes),区块大小则为64页面(2112bytes×64),一块闪存芯片由2048个区块组成合计2Gb(64×2048=131072页面)(下图)
转发到微博
  当数据进行PROGRAM的时候以一个页面2KB为最小单位,进行ERASE时则是64页面为最小单位。普通的SLC芯片的重写次数为10万次左右,MLC则为1万次。我们将进行一次ERASE和PROGRAM看作为消耗一次重写次数。这样如果说一个16GB的SSD由2Gb的SLC NAND闪存构成的话,总计需要64个闪存芯片。64个闪存芯片合计的页面数为8388608。其中每一个页面可以重写10万次,总计则可以进行8300亿次。换作是重写次数少以为的MLC闪存芯片的话,基本就是830亿次(MLC的页面大小和区块大小的算法基本和SLC是不同的,所以这里只是提出一个单纯的计算结果)
  需要重写的数据如果比较大的话,则一次性要使用很多个页面,尽管只是重写的那些页面的寿命降低,但也不是个小数目。如果以每日写入10GB来计算的话,10GB约等于500万个页面,用8300亿来计算的话SLC SSD 完全使用殆尽需要花上16万6000天以上,也就是说能够使用454年(达到这个时间的前提是该SSD要使用能够完全控制不在同一场所反复擦写的控制芯片以及软件)从这个计算来看,更本就不用担心什么使用寿命的嘛。但是实际的情况则完全不同。

http://tagche.blog.51cto.com/649757/191290

通常,对于一个存储介质需了解以下相关内容:
   数字信息"1"和"0"是如何表示的;
   读操作;
   写操作;
   删除操作;
   存储信息单元;
   如何编址;
   信息存储可靠性;
   读写性能;
   使用寿命;
   存储设备的体系结构;

参考网址:http://www.sandisk.com     

SSD Academy:
http://www.sandisk.com/business-solutions/ssd/academy.aspx

the principles of flash operation :
http://www.sandisk.com/business-solutions/ssd/movie-3-principles-of-flash-operation---flash-technology-tutorial-.aspx

         固态硬盘(Solid State Disk或Solid State Drive),也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元(DRAM或FLASH芯片)组成的硬盘。
  固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的相同,在产品外形和尺寸上也与普通硬盘一致。由于固态硬盘没有普通硬盘的旋转介质,因而抗震性极佳。其芯片的工作温度范围很宽(-40~85摄氏度)。
        SSD工作原理
  下面是一个关于NAND闪盘的原理图。从下图我们可以看到,每一个“单元”就是由一个这样的晶体管组成的。

  在单级单元(SLC,single level cell)闪存设备中,一个晶体管可容纳1比特数据。您通过电子通道将数据写入单元;将足够高的电压加于两端,创造一个足够强大的电场,电子将穿透氧化物进入浮动门。消除电压,电子将继续停留在浮动门。将电压穿越通道而不施加到门上,扭转偏压,电子将向另一个方向移动。
  简单的说,这就是闪盘的工作原理-你有两种状态,0和1,即使单元没有电了,状态也会维持住,因此对存储设备来说是非常理想的。
  编程闪存是一个反复的过程。该控制器将电压施于门(或通道)上,允许一些电子穿过并检查单元的临界电压。当临界电压已达到一些预定的值时,就开始编程并储存数据了。

          MLC与SLC的区别
  目前SSD硬盘使用两种形式的NAND闪存:单级单元(SLC)和多级单元(MLC)。两者之间的差别是每单元存储的数据量,SLC每单元存储1比特而MLC每单元存储2比特。关键在于,SLC和MLC占据了相同大小的芯片面积。因此,在同样的价格下,MLC可以有两倍容量的效果。
  英特尔的SLC和MLC闪存实际上使用了相同的晶体管,不同之处在于怎样读/写这两个闪存。SLC只有两个电压符,因为它只有两个状态(0或1)。MLC却有四个状态(00,01,10 ,11),因此需要花费较长的时间来访问,因为你不想意外写入错误的数据;您已有了相同的最大、最小电压,您现在仅仅有它们两者之间更多的刻度:

SLC (left) vs. MLC (right)
  下面是一个关于SLC和MLC性能基本数据的表格:

  SLC和MLC的擦除性能是一样的,MLC闪存的读取性能需花费两倍长的时间,写入性能需花费四倍长的时间。如果您以前听说过有人抱怨MLC写入速度,这就是部分原因。不过一定要记住,我们在这里谈论的这些数字低得离谱——甚至900微秒写入MLC闪存的速度都远远超过向普通机械硬盘的写入速度。
  SLC的最大优势不在于它的性能好而在于它的使用寿命长。要了解闪存的耐用性,我们首先需要看看存储设备的内部构造。

         闪存层次和数据丢失
  我们已经证实了一个闪存单元可以储存一个还是两个比特取决于它是SLC还是MLC设备。把一群单元聚集到一起,就得到了一个page。page是您可以编程(写入)NAND闪存装置最小的结构。
  大部分MLC NAND闪存的每一page是4KB。一个block是由许多page组成的,在英特尔的MLC SSD中一个block包含128 pages(128 pages x 4KB/page = 512KB/block = 0.5MB。Block是您可以擦除得最小结构。
  因此,当您写入SSD时,您一次可写入4KB数据;但是当您从SSD擦除数据时,您一次不得不删除512KB。过会儿,我会进一步探讨这个问题,但现在让我们看看当您从一个SSD删除数据时会发生什么事情。

  无论何时您将数据写入闪存,我们都会反复经历同样的编程过程。创建一个电场,电子穿过氧化物并储存电荷。擦除数据会导致同样的事情发生,但却向着相反的方向。问题是电子穿过氧化物的次数越多,就会变的越弱,最终将电压也不能再阻止电子的自由活动了。这时候,SSD的这个单元就发生故障了。

  大约经过一万次擦除/编程周期后,MLC闪存才会最终出现那个问题。而SLC可使用十万次,这得益于它的简单设计。
  由于寿命有限,所以SSD必须非常小心地选择擦除/编程每个单元的时间和方式。请注意,您可以从一个单元里读取数据,多少次都行,这并不减少单元存储数据的能力。只有擦除/编程周期才会降低了寿命。
  此外需要注意的是,因为SSD没有擦除block这个概念,唯一擦除block的时候就是写入新数据的时候。如果您删除Windows里的一个文件而没有创建新的文件,SSD实际上并没有从闪存中移走这个数据,除非您准备好写入新的数据。


        SSD如何保证使用寿命
  现在回到编程和擦除SSD数据之间方式的差异上来。您在page上编程,在block上擦除数据。假设您保存了一个8KB的文件,之后决定要删除它,这可能是您写给自己的简单便条,表示您不再需要了。
  您保存该文件时,它会以2 pages的形式保存在闪存记忆体中;您将其删除时,SSD会标记pages为无效,但实际上并不会删除该block。SSD将等到block中一定比例的pages被标记为无效时,才会复制一些有效的数据到新的pages里去并擦除该block。SSD这样做是为了限制了每个block擦除的次数,从而延长驱动器寿命。
  但是并非所有的SSD都采用同样的方式来处理删除请求,因此,从硬盘原理上来说,如何处理删除请求对SSD安全性产生较大的影响。
  我们已经从概况的角度介绍了SLC SSD与MLC SSD的不同,并且阐述了一般SSD的设计者如何通过编程和算法来保证SSD的性能和安全性,下文我们将详细阐述Intel X-25M SSD硬盘如何应付数据丢失。
本文出自 “石头(老牛耕田)” 博客,请务必保留此出处http://tagche.blog.51cto.com/649757/191290

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics