华为存储学习笔记-4

固态硬盘

固态硬盘概述

SSD盘并不像传统硬盘那样采用磁性材料来存储数据,而是采用基础单位被称为cell(存储单元)的NAND flash来存储数据。NAND Flash是一种非易失性随机访问存储介质,其特点是断电后数据不消失,这种技术可以很快很紧凑存储数字信息。

SSD无高速旋转部件,性能高,功耗低,无噪音。

SSD没有内部机械部件,但是,这并不意味着他们的生命周期是无限的。由于NAND Flash是非易失性介质,在写入新数据之前必须擦除原有数据,再写入数据。但是每个cell的擦写次数是有限的,当被擦写次数达到极限,则该cell就不能继续读或写数据了。

固态硬盘架构

在这里插入图片描述

  • 主机接口:主机访问SSD的协议和物理接口,如SATA、SAS和PCIe。
  • SSD控制器:负责主机到后端介质的读写访问和协议转换,表项管理、数据缓存及校验等,是SSD的核心部件。
  • DRAM:FTL(Flash translation layer,闪存转换层)表项和数据的缓存,以提供数据访问性能。
  • NAND FLASH:数据存储的物理器件,是一种非易失性随机访问存储介质。
  • 多通道并发,通道内Flash颗粒复用时序。支持TCQ/NCQ,一次响应多个IO请求。

NAND Flash

NAND Flash内部存储单元组成包括:LUN、Plane、Block、Page、Cell。

NAND Flash存储原理:NAND Flash采用浮栅晶体管存储数据,其工作原理是利用浮栅上是否储存有电荷或储存电荷的多少来改变晶体管的阈值电压,通过读取到的晶体管阈值电压来实现数据信息的表征。

  • LUN:能够独立封装的最小物理单元,通常包含多个plane。
  • Plane:拥有独立的Page寄存器,通常LUN包含1K或2K奇数Block或偶数Block。
  • Block:能够执行擦除操作的最小单元,通常由多个Page组成。
  • Page:能够执行编程和读操作的最小单元,通常大小为16KB等。
  • Cell:Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit。

编程和读的基本操作单位是Page,擦除的基本单位是Block。

擦写过程会对浮栅晶体管的绝缘层造成一定程度的损坏,在擦除失败或编程失败后会置操作的Block为坏块,厂商定义当坏块数量达到一定程度(4%以内)的时候,则认为NAND Flash达到使用寿命上限。

SLC、MLC、TLC和QLC

在这里插入图片描述

NAND Flash的颗粒可根据Cell储存bit数据位的不同分为四类:

  • SLC (Single Level Cell),单层式存储单元,在SLC中,1个cell能够存储1位数据:0或1。
  • MLC (Multi Level Cell),多层式存储单元,在MLC中,1个cell能够存储2位数据:00,01,10和11。
  • TLC (Triple Level
    Cell),三层式存储单元,在TLC中,1个cell可以存储3位数据:000,001,010,011,100,101,110和111。
  • QLC(Quad Level
    Cell),四层式存储单元,在QLC中,1个cell可以存储4位数据:0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111。

四种不同的类型的cell,虽然存储的数据量不同,但是成本却是大致相同的,这也是SSD的容量不断增大的一个原因。最初的SSD只有64GB或更小,而现在最大TLC型的SSD盘可以存储多达2TB的数据。不过,不同类型的SSD盘的抗磨损的能力不同,导致硬盘的可靠性不同。SSD盘的抗磨损能力也是选择SSD盘的一个重要参数。

闪存颗粒数据关系

以一片Flash芯片(Toshiba 3D-TLC)为例:

  • 每18336*8=146688个Cell逻辑上形成一个Page,每个Page中可以存放16KB的内容和1952B的ECC校验数据,Page也是Flash芯片IO的最小单位。
  • 每768个Page组成一个Block。每1478个Block组成一个区域Plane。
  • 一整片Flash芯片由两个区域组成,一个区域存储奇数序号的Block,另一个存储偶数序号的Block,两个Plane可以并行操作。

考虑到要对存入NAND FLASH中的数据做ECC,NAND FLASH中的Page大小并非16KB整数,而是多出一部分Bytes。如16K Page实际大小为16384+1952Bytes,16384Bytes是用于存储数据,而1952Bytes则用于存放ECC数据校验码。

地址映射管理

LBA:Logical Block Address,逻辑区块地址,可以指某个数据区块的地址或者某个地址上所指向的数据区块。

PBA:Physics Block Address,物理区块地址。

Host是通过LBA访问SSD的,每个LBA代表着一个Sector(一般为512B大小),操作系统一般以4K为单位访问SSD,把Host访问SSD的基本单元叫做用户页(Host Page)。

在SSD内部,SSD主控与Flash之间是Flash Page为基本单元访问Flash的,称Flash Page为物理页(Physical Page)。Host每写入一个Host Page,SSD主控会找一个Physical Page把Host数据写入,SSD内部同时记录了这样一条映射(Map)。

有了这样一个映射关系后,下次Host需要读取某个Host Page时,SSD就知道从Flash的哪个位置把数据读取上来。

SSD数据读写过程

SSD数据写入过程:
在这里插入图片描述
在这里插入图片描述

  • 主控通过8通道连接8个Flash
    DIE,为方便解释,这里只画了每个DIE里的一个Block,其中每个小方块表示一个Page(假设大小为4KB)。
  • Host写入4KB数据:往channel 0的Block里写入了一个4KB(占1Page);
  • Host继续写入16KB数据:往channel 1-4的Block里各写入4KB; Host继续写入,最后整个Block都写满。
  • 当所有Channel上的Block都写满的时候,SSD主控会挑选下一个Block以同样的方式继续写入。
  • 绿色方块代表有效数据,红色方块代表无效数据。Block中的数据变老或者无效,是指没有任何映射关系指向它们,用户不会访问到这些FLASH空间,它们被新的映射关系所取代。
  • 比如有一个Host Page A,开始它存储在FLASH空间的X,映射关系为A->X。后来,HOST重写了该Host
    Page,由于FLASH不能覆盖写,SSD内部必须寻找一个没有写过的位置写入新的数据,假设为Y,这个时候新的映射关系建立:A->Y,之前的映射关系解除,位置X上的数据变老失效,我们把这些数据叫垃圾数据。
  • 随着HOST的持续写入,FLASH存储空间慢慢变小,直到耗尽。如果不及时清除这些垃圾数据,HOST就无法写入。

SSD数据读取过程:
在这里插入图片描述

  • 速度是不是8倍提升取决于要读的数据是不是平均分布在每个channel的Block里,如果32KB数据是存储在channel1-4的Block的,那么读取就最多只有4倍的提升了,这也就是为什么文件越小传输率越低的。

SSD性能优势

响应时间短:传统硬盘的机械特性导致大部分时间浪费在寻道和机械延迟上,数据传输效率受到严重制约。而SSD硬盘内部没有机械运动部件,省去了寻道时间和机械延迟,可更快捷的响应读写请求。

读写效率高:机械硬盘在进行随机读写操作时,磁头不停地移动,导致读写效率低下。而SSD通过内部控制器计算出数据的存放位置,并进行读写操作,省去了机械操作时间,大大提高了读写效率。

较少的硬盘功耗优势不是很明显,但是当使用大量的硬盘数量的时候,功耗所产生的成本差别就比较大,也成为企业在选择方案时候的一个考虑因素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值