SSD原理

一、固态硬盘的构成
固态硬盘(SSD)主要有主控芯片(黄圈),缓存(蓝圈),闪存颗粒(红圈)三部分组成。

主控芯片在SSD中的地位就相当于电脑中的CPU,其作用一是合理调配数据在各个闪存芯片上的负荷,作用二是承担了整个数据中转,连接闪存芯片和外部SATA接口。目前主流的有Intel主控,SandForce主控,Marvell主控。

缓存用于存放临时数据之用,是内存和SSD的中转站。

闪存颗粒(NAND)是SSD的数据处,有MLC和SLC的区分,SLC全称为Single-Level Cell,MLC全称为Multi-Level Cell.两者均为不同类型的NAND颗粒.其中SLC可定义为单层单元闪存,而MLC则是多层单元闪存.两者的主要区别是SLC每一个单元储存一位数据,而MLC通过使用大量的电压等级,每一个单元储存两位数据,数据密度比较大.在实际使用当中,SLC拥有更多的擦写次数,一般为MLC的10倍左右,这就意味着使用寿命要远远高于使用MLC颗粒的SSD,不过由于SLC颗粒目前的良品率并不高导致基于SLC颗粒的SSD价格昂贵,通常只有行业领域才会考虑配置SLC颗粒的SSD.


固态硬盘(Solid State Disk、IDE FLASH DISK)是由控制单元和存储单元(FLASH芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘(目前最大容量为32GB),固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,.在产品外形和尺寸上也完全与普通硬盘一致。

简单来说就是一读取速度非常快的大号U盘。

固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。

基于闪存的固态硬盘    
  
基于闪存的固态硬盘(IDE FLASH DISK、Serial ATA Flash Disk):采用FLASH芯片作为存储介质,这也是我们通常所说的SSD。它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、优盘等样式。这种SSD固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,但是使用年限不高,适合于个人用户使用。在基于闪存的固态硬盘中,存储单元又分为两类:SLC(Single Layer Cell 单层单元)和MLC(Multi-Level Cell多层单元)。SLC的特点是成本高、容量小、但是速度快,而MLC的特点是容量大成本低,但是速度慢。MLC的每个单元是2bit的,相对SLC来说整整多了一倍。不过,由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行错误修正,这个动作导致其性能大幅落后于结构简单的SLC闪存。此外,SLC闪存的优点是复写次数高达100000次,比MLC闪存高10倍。此外,为了保证MLC的寿命,控制芯片都校验和智能磨损平衡技术算法,使得每个存储单元的写入次数可以平均分摊,达到100万小时故障间隔时间(MTBF)。

基于DRAM的固态硬盘

  基于DRAM的固态硬盘:采用DRAM作为存储介质,目前应用范围较窄。它仿效传统硬盘的设计、可被绝大部分操作系统的文件系统工具进行卷设置和管理,并提供工业标准的PCI和FC接口用于连接主机或者服务器。应用方式可分为SSD硬盘和SSD硬盘阵列两种。它是一种高性能的存储器,而且使用寿命很长,美中不足的是需要独立电源来保护数据安全。

二、固态硬盘越用越慢的原因
固态硬盘会越用越慢,这和固态硬盘的工作原理有很大的关系。固态硬盘使用闪存(NAND)作为储存介质,在数据写入时是以一个页面为单元(通常是4K)。但在数据擦除时却是以块为单位。一般来说,一个块相当于128个页面单元,即512KB。例如,在X块中有A,B,C,D等页面单元。当要擦除A页面单元数据时,SSD会把整个X块的数据从闪存芯片中读出并写入缓存,随后擦除缓存中X块内的A页面数据,然后擦除闪存芯片中的X块,最后用缓存中不包含A页面的新X块数据重新写入闪存中。也就是说虽然擦除的只是A页面数据,但B,C,D页面数据也要重新擦除写入。因此即便只要擦除4KB的数据,SSD也要进行512KB的数据搬运工作。这个擦除过程包括:缓存从闪存内读取指定数据—擦除闪存中原有的指定数据—在缓存中修改指定数据—将缓存中修改完成的指定数据写入闪存。


SSD的基本架构

在SSD的优势一章中,我们对比过HDD和SSD的内部区别。现在,我们再谈一下SSD的基本架构。
            SSD原理_第1张图片
       上图为一款典型的SSD架构图解,各部分的解释如下:
       操作系统:即我们使用的操作系统,如:WINDOWS,MAC OS,LINUX等。
       文件系统:每个操作系统都有自己的文件系统,如WINDOWS上常见的NTFS,FAT32等。
       底层驱动:就是驱动程序,没有它,硬件是无法和软件交流的。
       ATA接口:ATA数据通道接口标准。(这部分后面会有详细介绍) 外置缓存:目前很多SSD都带了一定容量的DRAM作为缓存的缓存里面可以存放用户数据,也可以存放映射表之类的数据
       NAND控制器(此处即SSD主控),它包含: 
       A.主机接口:用于和主机交流,控制数据传输的部分。
       B.FTL闪存转换层:内部包含许多模块,例如坏块管理,磨损平衡,ECC纠错,交叉读写算法和最主要的逻辑物理地址转换功能,请参考相关的章节。
       C.NAND接口:主控和闪存交流,控制数据传输的部分。
       Legacy/ONFI/Toggly:闪存数据通道接口标准。(这部分后面会详细介绍)
       NAND闪存:我们平日看到的SLC,MLC闪存颗粒。
SSD的硬件架构并不复杂,各种SSD产品的差异表现,主要都是由软件部分(即FTL)的影响而造成


三、固态硬盘使用的注意事项

2.分区方法:小分区、少分区
SSD有一种技术叫做“垃圾回收机制”,前面已经讲过Trim是系统用来告诉SSD主控哪些数据所占据的地址是“无效”的,而“垃圾回收机制”就是SSD内部对这些“无效”数据进行清理的过程。
SSD中的擦除只能是“将无效数据所在的整个区域摧毁”,不能像机械硬盘那样实现“点对点精确定位打击”,因此“垃圾回收机制”过程也显得很繁琐—先把区域内的有效数据集中起来,转移到空闲的位置,然后把“问题区域”整个清除,清除出来的地方可以作为下次垃圾回收时的转移地点。
所以“小分区”的概念就出来了。所谓“小分区”就是不要把SSD的容量都分满,保留一部分容量作为“空闲位置”,用于SSD内部的优化操作,如磨损平衡、垃圾回收和坏块映射。一般情况下这一步骤厂商已经帮我们设定好了,例如NAND容量128G的SSD,厂家会标称120G,剩下的部分就被设置成了预留空间。当然如果你十分注重SSD性能,也可以在此基础上继续增加预留空间,在分区的时候只分100G或者更少

“少分区”则是另外一种概念,关系到4k对齐对SSD的影响。一方面现在主流SSD容量都不是很大,分区越多意味着浪费的空间越多(每个分区总有那么些空间是用不到的),另一方面分区太多容易导致分区错位,在分区边界的磁盘区域SSD性能可能受到影响。


3.不要使用碎片整理

消费级固态硬盘使用的MLC NAND FLASH作为储存介质,这种芯片一般只有5000~10000次的擦写寿命(P/E),碎片整理需要对硬盘频繁擦写,会大大减少SSD的使用寿命,其实,SSD自带的垃圾回收机制就已经是一种很好的“磁盘整理”,再多的整理完全没必要。

4.禁用win7的预读(Superfetch)和快速搜索(Windows Search)功能,在SSD平台这两个功能的实用意义不大,通过禁用这两项功能降低硬盘读写频率。

5.4.刷新固件:最有效的提速方法
“固件”好比主板上的BIOS,固态硬盘的一切内部操作都要依靠固件来控制,可以说固件质量的好坏直接关系到SSD的性能表现。优秀的固件包含先进的算法能减少固态硬盘不必要的写入,从而减少闪存芯片的磨损,维持性能的同时也延长了固态硬盘的寿命。因此及时更新官方发布的最新固件显得十分重要。









你可能感兴趣的:(计算机基础,linux/unix,C/C++)