首页 > 其他分享 >SSD核心技术——FTL(1)

SSD核心技术——FTL(1)

时间:2023-07-18 11:33:06浏览次数:33  
标签:闪存 核心技术 写入 SSD 数据 FTL Block

FTL综述

什么是FTL

FTL是Flash Translation Layer(闪存转换器)的缩写,完成主机(或用户)逻辑地址空间到内存(Flash)物理地址空间的翻译(Translation),或者说映射(Mapping)。SSD每吧一笔用户逻辑数据写入内存地址,便记录下该逻辑地址到物理地址的映射关系。当主机想读取该数据时,SSD便会根据这个映射,从闪存读取这笔数据然后返回给用户。
完成逻辑地址空间到物理地址空间的映射,这是 FTL 最原始且基本的功能。事实上,SSD 中的 FTL 还有很多事情可做。SSD 使用的存储介质一般是 NAND Flash。

闪存块的重要特性

  1. 闪存块(Block)需要先擦除才能写入,不能覆盖写(Update in Place)
    当写入一笔新的数据时,不能直接在老地方更改(闪存不允许在一个闪存页上重复写入,一次擦除只能写入一次),必须写到一个新的位置,因此FW(FirmWare,固件)需要维护一张逻辑地址到物理地址的映射表。
    另外,往一个新的位置写入数据,会导致原本位置上的数据无效,这些数据需要被回收,FTL会把若干个闪存块上的有效数据搬出,写到某个新的闪存块,然后把之前存储无效数据的闪存块擦除,得到可用的闪存块,这就是GC(Garbage Collection,垃圾回收),是FTL需要做的一件重要的事情。
    GC如下图所示:
    在这里插入图片描述
    在Block x和Block y上有很多垃圾数据,其中Block x上的A、B、C 为有效数据,Block y上的D、E、F、G 为有效数据。垃圾回收就是把一个或者几个 Block上的有效数据搬出来集中写到某个空闲 Block 上(比如 Block z)。当这些Block上的有效数据都搬走后,FTL 便能擦除这些 Block,然后又能把这些 Block 拿出来供 SSD 写入新的数据了。
  2. 闪存块都是有一定寿命的。
    每擦除一次闪存块,都会对闪存块造成磨损,因此闪存块都是有寿命的,可以用PE(Program/EraseCount)数衡量。我们不能集中往某几个闪存块上写数据,不然这几块很快就会因 PE 耗尽而死亡,这不是我们想看到的。我们期望所有闪存块都用来均摊数据的写入,而不是有些块飞快磨损,而其他块毫无作为。所以 FTL需要做 Wear Leveling,让数据写入均摊到每个闪存块上,即让每个块磨损都差不多,从而保证 SSD 具有最大的数据写入量。
  3. 每个闪存块读的次数是有限的,读得太多,上面的数据会出错,造成读干扰(Read Disturb)问题
    FTL 需要处理读干扰问题,当某个闪存块读的次数将要达到一定阈值时,FTL 需要把这些数据从该闪存块上搬走,从而避免数据出错。
  4. 闪存的数据保持(Data Retention)问题
    由于电荷的流失,存储在闪存上的数据是会丢失的。这个时间长则十多年,短则几年、几个月,甚至更短(这是在常温下,如果是在高温环境下,电荷流失速度会加快,数据保存的时间就更短了)。
    如果 SSD 不上电,FTL 对此也是毫无办法,因为没有运行机会。但一旦上电,FTL就需要对此做点什么,比如扫描闪存,发现是否存在数据保持问题,如果存在,则需要搬动数据,防患于未然。好的 FTL,就需要有处理数据保持问题的能力。
  5. 闪存天生就有坏块。另外,随着 SSD 的使用,也会产生新的坏块。
    坏块的症状是擦写失败或者读失败(ECC 不能纠正数据错误)。坏块管理也是 FTL的一大任务。
  6. 对 MLC 或 TLC 来说,存在 Lower Page corruption 的问题。
    即在对 Upper Page/ExtraPage(和 Lower Page 共享存储单元的闪存页)写入时,如果发生异常掉电,也会把之前 Lower Page 上成功写入的数据破坏掉。好的 FTL,应该有机制尽可能避免这个问题;
  7. MLC 或 TLC 的读写速度都不如 SLC,但它们都可以配成 SLC 模式来使用。
    好的 FTL,会利用该特性去改善 SSD 的性能和可靠性。
    上面说的这些特性是闪存的共性,不同的闪存间还会有各自的问题。FTL 除了完成基本的地址映射,还需要处理垃圾回收(GC)、磨损平衡(Wear Leveling)、坏块管理、读干扰(ReadDisturb)处理、数据保持(Data Retention)处理等事情。
    随着闪存质量变差,FTL 除了完成上述常规处理,还需要针对具体闪存特性,去做一些特殊处理以获得好的性能和高的可靠性。

FTL 分为 Host Based(基于主机)和 Device Based(基于设备)。Host Based 表示的是,FTL 是在 Host(主机)端实现的,用的是自己计算机的 CPU 和内存资源:
在这里插入图片描述
相反,Device Based 表示的是,FTL 是在 Device(设备)端实现的,用的是 SSD上的控制器和 RAM 资源:
在这里插入图片描述
目前主流 SSD 都是 Device Based FTL。

标签:闪存,核心技术,写入,SSD,数据,FTL,Block
From: https://www.cnblogs.com/i-rong/p/17562424.html

相关文章

  • 初识GaussDB——GaussDB的发展历程、部署方式和企业案例
    初识GaussDB——GaussDB的发展历程、部署方式和企业案例姜殿斌2020-02-1734311.GaussDB的命名和品牌GaussDB的热点话题名字的由来:GaussDB是华为数据库产品品牌名,致敬数学家高斯(Gauss)GaussDB的品类:GaussDBT和GaussDBAGaussDBT的里程碑发布时间:2019年5......
  • SSD概述
    写在前面:我们知道信息存储设备随着我们社会的发展在不断发展,从光盘->磁盘->半导体存储设备,就这样一步一步改进,技术的进步影响着我们的生活,作为普通人,最直观的感受应该就是电脑开机速度的提升,下图就是SSD开机时间统计对比最近在学习有关SSD方面的知识,随便也做一些记录,以备后续查......
  • SSD结构介绍
    二、SSD结构介绍a)    逻辑结构三大模块:前端、中端FTL层、后端 前端(SSD接口层):负责通过相关标准协议与主机PC进行通信,接受串行比特数据流,转换为数字信号给后续模块使用,协议有SATA、SAS、PCIe等;中端FTL层:负责完成主机逻辑地址空间到闪存物理地址空间的映射、坏块管理、......
  • 树莓派CM4_Ultra扩展板硬件资源介绍原生千兆 2.5G以太网 USB3.0 WiFi6 5G SSD固态硬盘
    关键词:树莓派CM4  Ultra扩展板  原生千兆2.5G以太网  USB3.0  5G蜂窝WiFi6  SSD固态硬盘概述:CM4_Ultra扩展板是一款基于树莓派CM4核心板设计的PCIE扩展底板。本扩展板将CM4的原生PCIE接口通过PCIEPacketSwitch芯片一扩为四,分别用来连接M.2Akey接口的WiFi6、M.......
  • java核心技术电子
    Java核心技术电子Java是一种广泛应用于软件开发的高级编程语言。它的特点是简单、易学、跨平台和安全。Java核心技术电子是一本经典的Java编程书籍,涵盖了Java语言的方方面面。在本文中,我们将通过代码示例来探索Java核心技术的一些重要概念和功能。Java的基本结构Java程序由类(cla......
  • 数据安全没保证?GaussDB(for Redis)为你保驾护航
    摘要:GaussDB(forRedis)通过账号管理、权限隔离、高危命令禁删/重命名、安全IP免密登录、实例回收站等企业级特性,保障用户数据库数据和信息安全。本文分享自华为云社区《数据安全没保证?GaussDB(forRedis)为你保驾护航》,作者:GaussDB数据库。近日,一些用户反馈使用的开源Redis......
  • NBD(Network Block Device)是一种用于网络存储的协议和技术。NBD服务器是一种提供网络块
    NBD(NetworkBlockDevice)是一种用于网络存储的协议和技术。NBD服务器是一种提供网络块设备服务的服务器,它允许用户通过网络连接来访问和管理块设备(如硬盘、SSD等),就像本地设备一样。NBD服务器的工作原理如下:NBD服务器将物理或虚拟块设备暴露为网络上的NBD设备。客户端使用NBD客......
  • 华为云GaussDB圈层活动走进香港,以技术创新构筑金融政企数智发展基石
    摘要:近日,华为云GaussDB圈层活动在中国·香港如期举办,活动聚集了22家香港金融政企客户和合作伙伴。本文分享自华为云社区《华为云GaussDB圈层活动走进香港,赋能金融政企数字化转型》,作者:GaussDB数据库。近日,华为云GaussDB圈层活动在中国·香港如期举办,活动聚集了22家香港金融政企......
  • 从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生
    摘要:随着云计算的兴起和渗透,云数仓成为了数仓技术演进的新阶段,并且逐渐成为了众多企业的共同选择。本文分享自华为云社区《从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生》,作者:华为云头条。数据驱动着现代商业的发展今天,无论在制造、零售、物流还是在互联网、金融等行业......
  • 系统下查看SSD生命周期方法
    SSD生命周期说明固态硬盘中的储存介质为NAND闪存。而NAND闪存主要是一个有两个栅极的CMOS管:分别是控制栅极、浮栅。其中浮栅的主要作用则是对电荷进行储存,而栅与沟道之间的氧化层的好坏程度则决定了浮栅储存电荷是否可靠,这也是决定了NAND闪存的寿命。而在NAND闪存中,P/ECycle则称之......