认识SSD

您所在的位置:网站首页 磁盘存储器的最小读写单位 认识SSD

认识SSD

2024-07-10 15:59:02| 来源: 网络整理| 查看: 265

好记性不如烂笔头o(^▽^)o

认识SSD

认识SSD 定义FLASH颗粒 定义和分类SLC和MLC SSD的内部逻辑划分SSD的表项管理垃圾回收SSD的磨损均衡SSD使用寿命计算举例SSD和传统磁盘的对比 读方面写方面

定义

固态硬盘(Solid State Disk)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。 一块SSD,核心部件是一颗控制器和多颗Flash颗粒,一般还会有一些内存和超级电容。

-->控制器主要作用是提供高效的手段来访问这些Flash颗粒。 -->内存的作用主要是表项管理和读写CACHE。 -->超级电容的作用是在异常下电时保证关键数据不丢失。

而Flash颗粒是SSD最重要的器件,其相关特性决定了SSD的实现方式。

FLASH颗粒 定义和分类

闪存是一种不挥发性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

Flash颗粒是SSD最重要的器件,其相关特性决定了SSD的实现方式。目前业界主要有两种类型的Flash技术:NOR(Intel开发)和NAND(东芝开发)。由于这两种技术在如下方面的一些差异:

-->NOR的读取速度略快于NAND; -->NOR的写入速度远低于NAND; -->NOR的擦除速度远低于NAND; -->的擦写次数约为NAND的1/10; -->的单元尺寸约为NAND的2倍;

导致1~16M的闪存市场主要采用NOR颗粒(主要用于保存嵌入式设备的程序),而更大容量的数据存储(例如SSD)则主要选择NAND颗粒。

SLC和MLC

NAND FLASH芯片,flash颗粒有两种类型:SLC和MLC

SLC:Single Level Cell,每个存储单元均只能存储1个bit的数据。只包含0和1两个电压符。 MLC:Multi Level Cell,每个存储单元能够存储2个bit或者更多bit的数据。包含四个电压符(00,01,10,11)。

SLC和MLC的比较: MLC容量比SLC大,且价格便宜。 但在性能、使用寿命和稳定性上: 1、SLC更简单可靠; 2、SLC读取和写入的速度都比MLC更快; 3、SLC比MLC更耐用,MLC每单元可擦除1w次,而SLC可擦除10w次。

一般而言,SLC主要用于企业级市场,MLC主要用于消费级市场。下表显示了SLC和MLC两种Flash颗粒的一些性能指标:

比较项SLCMLC随机读25us50us擦除2ms2ms编程250us900us擦除次数100k10k SSD的内部逻辑划分

一颗NAND Flash颗粒,其内部被划分为若干block,每个block又包含若干page。page的大小一般为2k/4k/8k(同一颗Flash颗粒内的page大小是固定且相同的)。

Flash的一个特点是:不能对任意bit位进行0/1互转,只能按照一定的颗粒度进行擦除和编程操作;

-->擦除 —— 颗粒度为block,是将指定block中所有的bit位全部设置为1; -->编程 —— 颗粒度为page,是将指定page中指定的bit位设置为0;

因此,对SSD进行写的操作实际上对需要写的Page所在的Block全部完成“擦除”(全部bit位置1)后,才能对指定的Page进行“编程”(部分bit位置0)。PS:实际上SSD硬盘在出厂时,厂商都会把所有Block完成擦除操作。

SSD的表项管理

  每一个IO读写都是下发给一个地址,这个地址称为LBA(Logic Block Address),其真正对应在磁盘上的地址称为PBA(Physical Block Address),和传统机械硬盘中LBA到PBA的映射通过磁轨、磁道、扇区来进行唯一对应不同的是,SSD的LBA到PBA的映射通过一张映射表来记录。   LBA的粒度是扇区,而Flash颗粒的擦粒度是block,写粒度是page,均为扇区的若干倍,在这种条件下,如果仍以扇区为粒度进行映射,虽然理论上可行,但是显然是增加实现难度和性能的.   同时,如果强制以扇区为粒度进行映射,会导致所需要的映射表空间超过物理内存的限制,这就直接决定了不可能以扇区为粒度进行映射。   即使以page为粒度进行映射,也可能存在物理内存不够用的情况(现在正在使用的SSD盘即属于这种情况),所以需要以更大一些的粒度进行管理。   这个粒度成为”小块(Sub Block)“,是SSD进行擦除和编程的最小单位。每个block中,均包含多个sub block;每个sub block,由多个page组成;每个sub block,可能的状态包括:有效、垃圾、空白:

-->有效:该小块中的数据正在被引用; -->垃圾:该小块中的数据没有被引用; -->空白:该小块可用于写入新的数据; 垃圾回收

  SSD的写要先进行整个Block的擦除,然后才能对指定的Sub Block进行编程。实际上,如果某一个写操作需要修改一个Sub Block的内容,是无法直接进行修改的,而是写到一个新的Sub Block中,把该LBA的映射指向新的这个Sub Block,同时把原来数据所在的Sub Block标记为“垃圾”。   这样,随着SSD使用时间的越来越长,新的未被编程过的Sub Block越来越少,后面新的写请求则只能重新擦除所有Sub Block均为垃圾的Block才能再次写入,这样必然会造成写操作的性能降低,因此,在SSD内部引入了一个重要的机制——垃圾回收(Garbage Collection),用以提升SSD长期写入操作的性能。

垃圾回收的工作:

-->找出合适的block -->将该block中的有效小块迁移到别的地方,同时更改映射表 -->将该block擦除,并放入空白块表

  所谓“最合适进行回收的block”,是指这个block的垃圾小块足够多、有效/空白小块足够少。   垃圾回收算法是否高效,与该SSD的性能有很强的联系。

SSD的磨损均衡

  上面说过,每个Flash颗粒中Block的可擦除次数是有限制的,如果颗粒中的某些Block很快达到了擦除次数上限,而其他大部分都几乎没有被擦除过,则会很快的造成整个SSD失效。而磨损均衡(Wear Leveling)则是通过各种手段,保证整个SSD所有的block的擦除次数是相近的从而延长SSD的使用寿命。

磨损均衡分为 动态磨损均衡 和 静态磨损均衡:

动态磨损均衡,是指在外部力量的驱动下,自然完成磨损均衡。这里外部力量,包括写IO和垃圾回收。 静态磨损均衡,是指磨损均衡功能模块主动地查找那些长时间没有变化的数据,将这些数据搬移到其他位置,以便释放出擦除次数较少的block,使其投入到擦除/编程的循环之中。

SSD使用寿命计算举例

  虽然一个block擦写次数只有100k(SLC),但是因为动态映射、磨损均衡等机制的存在,使得SSD的寿命远不止写入100k个IO。 计算SSD寿命的方式,一般是先确认一个block在其生命周期内能够写入多少数据量,再乘以该SSD具有的block数量,再除以一个估计的写入带宽,最后得到寿命值。   以我司(你们猜o(^▽^)o)自研的100G SLC SSD为例,16片Flash颗粒,每片颗粒拥有32k个block,每个block拥有64个4k的page,每个block可以被擦除100k次:

16 x (32 x 1024) x 64 x (4 x 1024) x 100000 = 12500 TB

  12500 TB,这是当所有block同时达到擦除次数上限时,可以写入的数据总量。 按照用户平均每秒钟写入10MB的数据进行计算:

(12500 x 1024 x 1024) / (10 x 60 x 60 x 24 x 365.25) = 41.5 年

  41.5年,这是在10MB/s的压力下、持续不断地向SSD写入数据的使用寿命。   考虑到其他一些因素的影响,一块SLC SSD的使用寿命,10年是可以保证的。

SSD和传统磁盘的对比

  SSD与传统磁盘相比:   第一是没有机械装置;   第二是由磁介质改为了电介质。   在SSD内部有一个FTL(Flash Transalation Layer),它相当于磁盘中的控制器,主要功能就是作地址映射,将flash memory的物理地址映射为磁盘的LBA逻辑地址,并提供给OS作透明访问。

读方面

随机读   SSD没有传统磁盘的寻道时间和延迟时间,所以SSD可以提供非常高的随机读取能力。

类型参数SLC类型的SSD超过35000的IOPS传统15k的SAS磁盘最高160个IOPS。

连续读   SSD连续读的能力相比普通磁盘优势并不明显。传统磁盘连续读,并不需要寻道时间:

类型参数15k的SAS磁盘吞吐能力最高可达130MBSLC类型的SSD170-200MB 写方面

  Page为最小的读写单位,Block为最小的擦除/编程单位,其中1个Page为4KB,1个Block由256个Page组成,1个Plane由2048个Block组成,2个Plane组成1个Die,也就是最小的芯片(4GB)

  向一个空白的page写入信息时,可以直接写入而无需擦除,但是如果需要改写某个存储单元(page)的数据,必须首先将整个block读入缓存,然后修改数据,并擦除整个block的数据,最后将整个block写入。SSD改写数据的代价很高,SSD的这个特性,我们称之为erase-before-write。因为这个特性,引入“写放大”的概念。

  比如你想改写4K的数据,必须首先将整个擦除块(1024KB)中的数据读出到缓存中,改写后,将整个块一起写入,这时你实际写入了1024KB的数据,写入放大系数是256。写入放大最好的情况是1,就是不存在放大的情况。

  在长时间写入后,MLC随机写IO下降得非常厉害,而SLC表现则比较稳定,可以稳定在3000 IOPS,而MLC随机写IOPS甚至降低到300。

  当某个单元长时间被反复擦写时(比如Oracle redo),不仅会造成写入的性能问题,而且会大大缩短SSD的使用寿命。所以,引入磨损均衡算法(wear leveling)。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭