SSD新手入门

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 奇维科技 刘俊杰

(声明文章素材来自奇维科技研发部,本人只做整理,在此特别感谢奇维科技研发部领导和同事!整理此文章的初衷在于能帮助大多数像我一样渴望加入SSD行业的小白们!

 

隔行如隔山,对于初入SSD行业的小白来说,刚开始的几周对工作绝对是懵逼的。不过,今天看了以下的SSD基础知识后,你就不会再在同时聊天时只会用尬笑来应付了!

 


 

  1. SSD的基本概念

 

SSD,即固态硬盘(英译:Solid State Drives),是用固态电子存储芯片阵列制成的存储硬盘,由控制单元存储单元(FLASH芯片、DRAM芯片)两部分组成。固态硬盘在接口的规范和定义、功能及使用方法以及产品外形和尺寸上与普通硬盘完全一致,现被广泛应用于军事、车载、工控、网络监控、电力、医疗、航空、导航设备等领域。

 


 

较之传统硬盘而言,固态硬盘芯片的工作温度范围较宽:商规产品温宽为0℃~70℃,工规产品温宽为-40℃~85℃(奇维科技宽温固态硬盘温宽可达:-55℃~90℃)。新一代的固态硬盘普遍采用SATA-2接口、SATA-3接口、SAS接口、m-SATA接口、PCI-E接口和C Fast接口等。

 

随着互联网科技飞速发展,市场对数据信息的存储需求不断提升,现在很多存储厂商都推出了携式固态硬盘,更有支持Type-C接口的移动固态硬盘和支持指纹识别、自毁、加密等多种功能的固态硬盘相继推出。

 

二.SSD的基本结构

 

基于闪存的固态硬盘是固态硬盘的主要类别,其内部构造也比较简单。固态硬盘内主体是一块PCB板(印刷电路板,英译:Printed Circuit Board),PCB板上最基本的固态硬盘配件就是控制芯片、缓存芯片(部分低端硬盘无缓存芯片)和用于存储数据的闪存芯片。主控芯片是固态硬盘的大脑,其作用一是合理调配数据在各个闪存芯片上的负荷,二则是承担了整个数据中转、连接闪存芯片及外部SATA等接口。

 


 

了解了SSD的基本构件结构之后,下面我们来进一步了解一下SSD的存储构架。首先我们看一下SSD的存储结构构架:

 

 

1.操作系统:就是我们常用的几种操作系统,比如Windows、Mac OS X、Linux等。

(1)文件系统:每个操作系统都有自己的文件系统,如Windows上常见的NTFS、FAT32等。

(2)底层驱动:驱动程序。没有驱动程序,计算机上的软件和硬件是无法交流的。

 

2.ATA接口:(Advanced Technology Attachment,硬盘接口技术)ATA数据通道接口标准。

 

3.外置缓存:目前很多SSD都带了一定容量的DRAM作为缓存的。缓存里面可以存放用户数据,也可以存放映射表之类的数据。

 

4.主机接口:用语和主机交流,控制数据传输的部分。

 

5.FTL闪存转换层:其内部包含许多个板块,例如坏块管理、磨损平衡、ECC纠错、交叉读写算法和最主要的逻辑物理地址转换功能。

 

6.NAND接口:主控和闪存之间的交流,控制数据传输的部分。

 

7.Legacy/ONFI/Toggly:闪存数据通道接口标准。

 

8.NAND闪存:我们日常工作中遇到的SLC和MLC闪存颗粒。

 

其实,大家已经发现SSD的硬件结构根本就不复杂,各种类别的SSD产品的差异化表现其实主要是有软件部分(即FTL闪存转换层)的影响而造成的。

 

三、重点概念

 

1.FTL

 

FTL,即闪存转换层(英译:Flash translation layer)。FTL其实就是一种LBA到PBA的映射。当文件系统发送指令要写入或者更新一个特定的逻辑页时,FTL实际上是把数据写入到一个不同的空闲的物理页并更新映射表,并把这个也上包含的”旧数据”标记为”无效”。正是因为有FTL的存在,操作系统才会把SSD当成HDD那样操作,因此FTL转换的性能也就直接影响到SSD的性能表现。

 

2.WL

 

WL,即磨损平衡(英译:wear leveling)。闪存的寿命是以Programming/Earsea次数来计算的,而WL就是确保闪存内每个块被写入的次数相等的一种机制。

 

用户在LBA(逻辑区块地址)空间里的数据更新速度是不同的,有的部分是经常需要更新的,而有些却长期不需要变更,因为没有WL的话,那些经常被更新的数据所在的闪存的寿命会首先被消耗完毕,而不需要怎么变更的数据所在的闪存损耗就要小得多。为了避免出现这种状况,便需要WL这个机制来保持SSD内每个闪存颗粒的磨损程度在相对一致的状态且最后同时报废,但由于颗粒本身也有其个体差异,因此这里说的也只是最理想的状态。

 

3.GC

 

GC,即垃圾回放(英译:Garbage collection)。所谓的GC就是把一个闪存块里的”有效”页数据复制到一个”空白”块里,然后把这个块完全擦除。GC是SSD里的一个非常关键的操作,其效率对性能有决定性影响。闪存块里”有效”页数量对GC效率有决定性的影响,因数量很少,需要复制的页就越少,花费的时间也越少,效率就高了。

 

4.Trim

 

Trim,即修剪(非正式翻译)。它其实就是一个ATA指令,并无正式中文名称,操作系统发送此指令给SSD主控,以通知它哪些数据占用的地址是”无效”的。

 

当我们在操作系统中删除一个文件时,系统并没有真正删除这个文件的数据,他只是把这些数据占用的地址标记为”空”,即可以覆盖使用。但这只是在文件系统层面的操作,硬盘本身并不知道那些地址已经的数据已经”无效”,除非系统通知它要在这些地址写入新的数据。

 

其实,大家只要牢记Trim只是一个指令,它让操作系统通知SSD主控某个页的数据已经”无效”后,任务就应经完成,并没有更多的操作。

 

5.WA

 

WA,即写入放大(英译:Write Amplification)

 

WA是闪存及SSD相关的一个极为重要的属性。由于闪存必须先擦除才能再写入的特性,在执行这些操作时,数据都会被移动超过1次。这些重复的操作不单会增加写入的数据量,还会减少闪存的寿命,更吃光山村的可用带宽而间接影响随机写入性能。

 

举个简单的例子:当要写入一个4KB的数据时,最坏的情况是一个块里已经没有干净的空间了,但有无效的数据可以擦除,所以主控就把所有的数据读到缓存,擦除块,缓存里更新整个块的数据,再把数据写回去,这个操作带来的写入放大就是:实际写4K的数据,造成了整个块(共1024KB)的写入操作,那就是放大了256倍。同时还带来了原本只需要简单一步写入4KB的操作变成:闪存读取(1024KB)、缓存改(4KB)、闪存擦除(1024KB)、闪存写入(1024KB)共四步操作,造成延迟大大增加,速度变慢。所以说WA是影响SSD随机写入性能和寿命的关键因素。

 

6.BBM

 

BBM,即坏块管理(英译:Bad Block Management)。何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦时数据的准确性。

 

坏块分出厂坏块和使用过程中出现的坏块,SSD有坏块表来管理坏块。出厂坏块在上面会有标记,所以很容易就会被识别,而使用过程中出现的坏块就要靠主控能力了。一般来说,越到闪存生命的后期(P/E数开始接近理论最大值),坏块就会开始大量出现。

 

7.ECC

 

ECC,即校验和纠错能力(英译:Error Checking and Correction)。其是一种用于差错检测和修正的算法。当前SSD内最普遍使用的ECC码是BCH码(一类重要的纠错码)。当数据写入的时候,控制器内部的ECC模块计算数据并生成ECC签名,一般来说这个步骤非常的快,因此并不会影响到整个SSD太多的性能表现。ECC的签名一般来说都保存在NAND页后部的SA区域,当数据从NAND读取的时候ECC模块回去读取ECC签名,并对照相同与否来发现出现的错误。

分类目录 SSD.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。