0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FTL算法的好坏,直接决定了SSD在性能

SSDFans 来源:未知 作者:李倩 2018-10-09 16:20 次阅读

FTL算法的好坏,直接决定了SSD在性能(Performance)、可靠性(Reliability)、耐用性(Endurance)等方面的好坏,FTL可以说是SSD固件的核心组成。

大家天天在说FTL,也知道FTL的重要性,那么什么是FTL?FTL是Flash Translation Layer的缩写,完成主机(或者用户,Host)逻辑地址空间到闪存(Flash)物理地址空间的翻译(Translation),或者说是映射(Mapping)。SSD每把一笔用户逻辑数据写入到闪存地址空间,便记录下该逻辑地址到物理地址的映射关系,下次主机想读取该数据,SSD根据这个映射,便能从闪存上把这笔数据读上来然后返回给用户。

完成逻辑地址空间到物理地址空间的映射,这是FTL最原始也是最基本的功能。事实上,现在SSD中的FTL,要做的事情还有很多。SSD使用的存储介质一般是NAND Flash。

SSD的存储介质除了Flash,还有RAM,还有3D XPoint等新型存储介质。如无特别说明,后面说的SSD存储介质都是指NAND Flash,翻译为“闪存”。

闪存有一些特性,比如:

l 闪存块(block)需先擦除才能写入,不能覆盖写(Update in place);

由于不能覆盖写,当写入一笔新的数据,不能直接在老地方直接更改(闪存不允许在一个闪存页(page)上重复写入,一次擦除只能写入一次),必须写到一个新的位置,因此,FW(Firmware,固件)需要维护一张逻辑地址到物理地址的映射表;另外,往一个新的位置写入数据,会导致老位置上的数据变成无效,这些数据就是垃圾数据。垃圾数据会占用闪存空间,当闪存可用空间不够时,FTL需要做垃圾回收,即把若干个闪存块上的有效数据搬出写到某个新的闪存块,然后把这些闪存块擦除,得到可用的闪存块。这就是GC(Garbage Collection,垃圾回收),是FTL需要做的一件重要事情。

l 闪存块都是有一定寿命的;

每擦除一次闪存块,都会对闪存块有磨损,因此闪存块都是有寿命的,用PE(Program/Erase Count)数衡量。我们不能集中往某几个闪存块上写数据,不然这几个块很快就会因PE耗尽而死亡,这不是我们想看到的。我们期望所有闪存块都来均摊数据的写入,而不是有些块累死,而其他块眼瞅着那些闪存块死亡而无动于衷;FTL需要做Wear Leveling,让数据写入均摊到每个闪存块上,即让每个块磨损都差不多,从而保证SSD具有最大的数据写入量。

l 每个闪存块读的次数也是有限的,读的太多了,上面的数据也是会出错,也就是读干扰(Read Disturb)的问题;

FTL需要处理读干扰问题,当某个闪存块读的次数快达到一定阈值时,FTL需要把这些数据从该闪存块上搬走,从而避免数据出错。

l 还有就是闪存的数据保持(Data Retention)问题;

由于电荷的流失,存储在闪存上的数据会丢失。这个时间长则十多年,短则几年甚至几月,甚至更短。(这是在常温下,如果高温的话,电荷流失速度会加快,数据保存的时间就更短了。)

如果SSD不上电,FTL对此也是毫无办法,有劲使不出呀(根本没有运行机会)。但一旦上电,FTL就需要对此做点什么,比如扫描闪存,发现是否存在数据保持问题,如果存在,则需要搬动数据,防患于未然。好的FTL,就需要有处理数据保持问题的能力。

l 闪存天生就有坏块,另外,随着SSD的使用,也会产生新的坏块;

坏块的症状是擦写失败,或者读失败(ECC不能纠正数据错误)。坏块管理也是FTL的一大任务。

l 对MLC或者TLC来说,存在Lower Page corruption的问题;

即在对Upper Page/Extra Page (和Lower Page共享存储单元的闪存页)写入时,如果发生异常掉电,也会把之前Lower Page上成功写入的数据破坏掉。好的FTL,应该有机制尽可能避免这个问题;

l MLC或者TLC的读写速度都不如SLC,但它们都可以配成SLC模式来使用。

好的FTL,会利用这个特性,去改善SSD的性能和可靠性。

上面说的这些问题是闪存的共性,对不同的闪存,还有其自身的问题。FTL除了完成基本的地址映射,还需要帮闪存擦屁股,去做垃圾回收(GC)、磨损平衡(Wear Leveling)、坏块管理、读干扰(Read Disturb)处理、数据保持(Data Retention)处理等事情。随着闪存质量变差,FTL除了完成上述的常规处理,还需要针对具体闪存特性,去做一些特殊处理以获得好的性能和高的可靠性。

FTL有Host Based和Device Based两种:

Host Based的意思是说,FTL的实现是在Host(主机)端的,用的是你计算机的CPU和内存资源。

除了大名鼎鼎的Fusion-IO使用Host Based FTL,据我所知,业界还有方一信息科技、宝存、CNEXLabs等公司在做Host Based FTL。

相反,Device Based的意思是说FTL是在Device(设备)端实现的,用的是SSD上的控制器和RAM资源。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 闪存
    +关注

    关注

    16

    文章

    1688

    浏览量

    114224
  • 存储介质
    +关注

    关注

    0

    文章

    23

    浏览量

    11879
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2688

    浏览量

    115475

原文标题:SSD核心技术:FTL

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA高性能NVMe SSD主机控制器,NVMe Host Controller IP

    ,从而可实现更高存储性能和存储容量。无需CPU,NVMe Host Controller IP自动执行对PCIe SSD的PCIe设备枚举和配置、NVMe控制器识别和初始化、NVMe队列设置和初始化
    发表于 03-27 17:23

    手机芯片好坏对手机有什么影响

    手机芯片是手机的核心组件,它的好坏对手机的性能、功能和用户体验有着直接的影响。
    的头像 发表于 02-19 13:50 1668次阅读

    绕线功率电感如何判断好坏

    绕线功率电感如何判断好坏 编辑:谷景电子 绕线功率电感是电子电路中非常重要的一种电感元件,它的好坏直接影响到电路的正常运作。很多人想知道怎样判断绕线功率电感的好坏,那么今天我们就来大致
    的头像 发表于 12-15 10:47 331次阅读

    NVMe SSD性能影响因素一探究竟(下)

    IO Pattern会对SSD性能产生严重影响,主要表现在如下几个方面
    的头像 发表于 12-09 11:38 889次阅读
    NVMe <b class='flag-5'>SSD</b><b class='flag-5'>性能</b>影响因素一探究竟(下)

    电脑电源质量好坏判断的指标有哪些?

    电脑电源作为电脑的关键部件直接影响到电脑的性能和寿命,因此选择一个好的电源至关重要。那么要如何判断电脑电源的好坏呢?判断的指标都有哪些呢?
    的头像 发表于 11-29 15:23 908次阅读
    电脑电源质量<b class='flag-5'>好坏</b>判断的指标有哪些?

    NVMe SSD性能影响因素分析

    NVMe SSD 厂商Spec给出的性能非常完美,前面也给出了NVMe SSD和磁盘之间的性能对比,NVMe SSD
    的头像 发表于 11-13 11:39 616次阅读
    NVMe <b class='flag-5'>SSD</b><b class='flag-5'>性能</b>影响因素分析

    如何判断LED显示屏单元板性能好坏

    LED全彩屏都是由最为基础的LED单元板所组成,而LED单元板的好坏可以说决定了LED全彩屏效果的好与坏。如果单元板出现问题就会直接影响整个LED全彩显示屏的显示效果,甚至会直接导致黑
    的头像 发表于 11-10 13:38 638次阅读
    如何判断LED显示屏单元板<b class='flag-5'>性能</b>的<b class='flag-5'>好坏</b>

    如何辨别电感的好坏

      电感作为电路中非常重要的电子元器件,选择的是否合适,已经它的质量好坏都将对使用产生直接影响。很多人在问如何辨别电感的好坏?电感好坏的辨别是一件比较复杂的工作,很多时候很难能够在短时
    发表于 10-19 17:00 0次下载

    SSD1306数据表

    128*64 OLED的驱动芯片SSD1306的数据手册0.96oled一般用ssd1306驱动,ssd1306的指令丰富,但是平常显示使用默认的初始化命令,之后就是读写显示数据
    发表于 09-27 07:59

    PCIe 5.0 SSD不用风扇会怎么样?

    PCIe 4.0 SSD初期就面临严重的发热问题,但至少被动散热片都可以搞定。PCIe 5.0 SSD更是直接飞起,首批产品几乎清一色都用上了主动风扇,性能也无法满血。
    发表于 09-15 10:38 218次阅读
    PCIe 5.0 <b class='flag-5'>SSD</b>不用风扇会怎么样?

    升级版PCIe 5.0 SSD深度评测解析

    LPDDR4内存颗粒 ),用于存放记录数据位置的FTL映射表。SSD的读写操作都需要查询这张记录表,要想读写速度快,就需要把这张映射表存放在高性能的DRAM内存颗粒中,从而有效提升SSD
    发表于 09-12 11:01 537次阅读
    升级版PCIe 5.0 <b class='flag-5'>SSD</b>深度评测解析

    企业级SSD性能和功耗模型

    谈到数据中心对企业级SSD的需求,一般会讲到高性能、稳定、可靠、数据安全及其他等需求,但SSD能耗比(性能/功耗)在数据中心越来越受到用户的关注。这如同不断升级的手机芯片,提供更高的能
    的头像 发表于 08-28 10:20 753次阅读
    企业级<b class='flag-5'>SSD</b><b class='flag-5'>性能</b>和功耗模型

    晶振怎么测量好坏?怎么选

    其实,对于测试晶振好坏的话,可以直接使用专业仪器进行测试就行了。对于技术人员可以直接使用万能表进行测试,还有的是利用晶振本身的特点进行判断的。目前测试晶振好坏的方式多种多样,若是大家想
    的头像 发表于 07-31 15:29 795次阅读
    晶振怎么测量<b class='flag-5'>好坏</b>?怎么选

    ZNS SSD设计架构及性能优化

    ZNS使基于闪存的固态硬盘具有更高的性能和更低的每字节成本。通过将管理擦除块内数据组织的责任从FTL转移到主机软件,ZNS消除了设备内LBA到页的映射、垃圾回收和OP空间。
    发表于 06-29 09:34 630次阅读
    ZNS <b class='flag-5'>SSD</b>设计架构及<b class='flag-5'>性能</b>优化

    Micrium全家桶之uC-FS: 0x01 NAND FTL

    这一篇我们来讲讲Micrium全家桶的uC-FS。文件系统是一个比较庞大的组件,我们以从下往上的顺序介绍,即先以一个具体的设备:NAND为例,讲其FTL的原理和实现,然后再讲FS部分。本文先讲NAND驱动(FTL)部分的基本原理和代码使用,后面会分几篇详细介绍其实现。
    的头像 发表于 06-08 10:58 887次阅读
    Micrium全家桶之uC-FS: 0x01 NAND <b class='flag-5'>FTL</b>