《Inside Solid State Device》读书笔记

这周我看了《Inside Solid State Device》一书,了解了解SSD做为软件的补充。算法

固态硬盘区别于将数据以磁形式存储的机械硬盘,使用了一种名为NAND的闪存颗粒,以电信号的形式存储数据。存储介质利用半导体的特性,以高低电平来标记数据的类型。NAND颗粒又以最小存储单元的堆叠形式不一样而分为SLC(single-level cell)颗粒、MLC (multi-level cell)颗粒和TLC(triple-level cell)颗粒。单个slc存储单元有0和1两种充电值,(高电平记为“1”,标记为空白,低电平标为“0”,标记为存储)可存储1bit的数据;单个mlc存储单元有四种充电值——00、0一、10和11,可存储2bit数据;以此类推,单个tlc存储单元有8种充电值,可存储3bit数据。slc颗粒的结构简单、稳定,具备高速、安全、使用寿命长的特色,(寿命约为100000次彻底Program/Erase)而mlc颗粒相比slc颗粒,拥有更高的存储密度,也由于结构的复杂,须要牺牲必定的速度和使用寿命(寿命约10000次彻底P/E),tlc则同理,存储密度相比slc有了很大的提高,但速率和使用寿命也大幅降低。(寿命约为500-2000次彻底P/E)缓存

2012年开始,民用固态硬盘规模迎来了一次井喷,缘由是MLC颗粒的商用开始成熟,解决了传统的SLC颗粒生产成本高的问题,将这种高速安全的存储介质带入民用市场。一样,2015年,解决了使用寿命问题的TLC颗粒凭借成本优点开始逐步取代MLC颗粒。目前,市场在售的大部分固态硬盘都是用TLC颗粒生产而来。安全

机械硬盘的读写原理是经过机械马达带动机械臂上的磁头对磁碟片进行读取和写入,而这种方式最大的弊端就是寻址要花费至少10ms的时间,从而带来了巨大的延迟,影响了用户的体验。固态硬盘则不存在这样的问题,闪存颗粒的寻址只须要花费约0.1ms。可是固态硬盘也存在自然的缺陷,经过电信号存储数据的方式虽然读写速度快,可是一旦存储颗粒出现问题,数据恢复的概率几乎为0。存储颗粒出现故障的概率随着其读写次数的增多也在不断增长。数据的安全问题彷佛是固态硬盘的死穴,特别是随着大量TLC颗粒的固态硬盘的上市,人们愈来愈关注如何延长固态硬盘的使用寿命(以提升彻底读写次数这种方式为主),下降使用时的故障率,保持寿命内的读写速度。目前,固态硬盘中有几种方式来实现这一目的。ide

首先是磨损均衡(wear leveling)性能

因为系统在向固态硬盘写入文件时,并不全是彻底的顺序写入,大部分时间都是随机写入,文件在系统中体现的逻辑位置和在固态硬盘中的物理位置经过LBA(Logical Block Addressing)表格一一对应,而当固态硬盘的主控发现某些区块的颗粒已经进行了相对屡次的擦写,某些区块只进行了相对少次的擦写,会将文件写入相对少次的区块,以平衡各区块间的磨损程度,不导致某些区块提早透支使用寿命,使固态硬盘提早报废。优化

trimip

机械硬盘对删除后从新写入的过程,仅须要磁柱头直接改变碟片上的磁信号,不存在擦除的过程。而固态硬盘对“删除”的理解,则只是在LBA表格中删除对应文件的逻辑位置信息,使系统找不到这个文件从而认为该文件已删除。当该物理区块又有文件写入时,则会先对对应写入的区块进行擦除,而后再写入。若该区块中还包含其余有效的文件,还须要先将该区块中的有效文件复制改写到其余区块中,而后擦除该区块,再进行写入。原本单纯的写入过程却变成了复杂的过程,下降了总体的响应速度。trim就是为解决这一问题而生的。微软在Windows7系统中开始加入对固态硬盘的trim指令。它的做用是,当系统在逻辑层面对文件进行删除时,固态硬盘在物理层面也对对应区块进行擦除,其中的有效文件会提早进行转移改写,保证了使用的速度。内存

垃圾回收(Garbage Collection)it

因为大量的随机写入,固态硬盘中存在着一些小的有效数据,它们分布在不一样的区块中,文件大小不足以占用整个区块。固态硬盘的主控会在系统空闲时,将这一部分的文件复制入系统内存中,自动缓存的固态硬盘会复制入自带的缓存中,而后将这一部分文件写入其余的区块,再将原区块擦除,保证原区块的写入性能。这一机制相似于机械硬盘的磁盘碎片整理。io

预留空间

由于固态硬盘的垃圾回收机制和改写机制会占用其余空白的区块,因此在必定程度上来讲,预留的空白空间越大,对保持固态硬盘的读写速度越有利。

静动数据分离

固态硬盘主控会识别LBA中数据的读写次数,对不常常写入的静态数据(系统文件,软件安装文件)和常常写入的动态数据进行归类分离,在有文件写入时,会主动写入存有动态数据的区块,避免改写静态数据形成性能浪费。

总结

固态硬盘的主控在整个固态硬盘中起到了重要做用,甚至能够说一个主控的优秀与否决定了这个固态硬盘的寿命和性能。竞争激烈的市场上,主控性能的提升也带来了强大的竞争力。在即将到来QLC颗粒上更须要依靠主控严格的纠错和算法的优化,才能保证必要的性能。

相关文章
相关标签/搜索