第4章 SSD核心技术:FTL 4.1-4.2

 LBA(Logical Block Address),逻辑区块地址。

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

SSD中的操作系统--FTL(闪存转换层)_ftl层_Ashore2022的博客-CSDN博客

一般,FTL中有三个表:

 (1)FTL映射表:记录每个LBA对应的物理页位置;

(2)Valid Page Bit Map(VPBM):记录每个物理块上哪个页有有效数据;

(3)Valid Page Count(VPC):记录每个物理块上的有效页个数。

4.1 FTL综述

          FTL(Flash Translation Layer),即闪存转换层,完成主机(或用户)逻辑地址空间到闪存(Flash)物理地址空间的映射(Mapping)。

        SSD每把一笔用户逻辑数据写入闪存地址空间,就会记录下该逻辑地址到物理地址的映射关系。当主机想读取该数据时,SSD便会根据这个映射,从闪存读取数据后返回给用户。

        CPU要对SSD执行读写操作时,只需对LBA进行操作,FTL会根据LBA从映射表(Mapping Table)中找到相应的PBA,然后对存储单元进行操作

    闪存具有一些特性,FTL根据这些特性表现出了一些作用,如下:

闪存FTL
Block需先擦除才能写入,不能覆盖写FTL实现逻辑地址到物理地址的映射;闪存空间不够用时,FTL做垃圾回收(GC),即把若干个Block上的有效数据搬出,写到某个新的Block上,再把之前的Block擦除,得到可用的Block
Block具有一定寿命期望所有Block均摊数据的写入,故FTL要做磨损平衡(Wear Leveling),让数据写入均摊到每个Block上
Block的读的次数有限,读的次数多了,会产生读干扰(Read Disturb)处理读干扰问题,即Block读的次数即将到达阈值时,FTL需将数据从该Block搬走,避免数据出错
闪存的数据保持(Data Retention)问题SSD上电后,FTL会执行扫描闪存等操作,以发现是否存在数据保持问题。若有,则需搬动数据
闪存有坏块,随着SSD使用,又会产生新的坏块FTL执行坏块管理
MLC或TLC存在Lower Page corruption问题FTL存在机制避免Lower Page corruption问题
MLC或TLC的读写速度不如SLC,但它们可配成SLC模式来使用好的FTL,会利用该特性改善SSD的性能和可靠性

        即,FTL除了完成基本的地址映射外,还需处理垃圾回收(GC)、磨损平衡(Wear Leveling)、坏块管理、读干扰(Read Disturb)管理、数据保持(Data Retention)处理等事情

      FTL分为Host Based(基于主机)和Device Based(基于设备),如下:

      (1)Host Based 表示的是,FTL是在主机(Host)端实现的,用的是计算机的CPU和内存资源。

       (2)Device Based 表示的是,FTL是在设备(Device)端实现的,用的是SSD上的控制器和RAM资源。

        FTL的初衷是完成逻辑地址到物理地址的映射,下面首先接收FTL的映射。

4.2 映射管理

4.2.1 映射种类

        根据映射粒度的不同,FTL映射有基于块的映射、基于页的映射以及混合映射(Hybrid Mapping)。

  1. 块映射

        块映射以闪存块为映射粒度,一个用户逻辑块可以映射到任意一个闪存物理块,但是映射前后,每个页在块中的偏移保持不变

    优点:存储映射表所需的空间小;连续大尺寸数据的读写性能好。

    缺点:性能差,尤其是小尺寸数据的写性能(原因:即使只写入一个逻辑页,也需要将整个物理数据块先读出来,再改变那个逻辑页的数据,最后再整个块写入)。

        

      块映射中,用户空间被划分为一个个逻辑区域(Region),每个区域和闪存块大小相同。

   2. 页映射

        页映射中,以闪存的页为映射粒度。一个逻辑页可以映射到任意一个物理页中,因此每一个页都有一个对应的映射关系。

      优点:性能好,尤其是随机写上面。

      缺点:闪存页远比闪存块多,因此需要更多的空间来存储映射表。

    页映射中,用户空间被划分为一个个逻辑区域(Region),每个区域和闪存页大小相同。

  3. 混合映射

        混合映射是块映射和页映射的结合。

        一个逻辑块映射到任意一个物理块,但在块中,每个页的偏移并不是固定的,块内采用页映射的方式,一个逻辑块中的逻辑页可以映射到对应物理块中的任意页。因此,它的映射表所需的空间以及性能都是介于块映射和页映射之间的。

        混合映射中,用户空间划分成一个个逻辑区域,逻辑区域和闪存块大小相同。每个逻辑块对应一个闪存块,但逻辑块内部又分为一个个逻辑页,与对应闪存块中的闪存页随意对应。

 

4.2.2 映射基本原理

        用户通过LBA访问SSD,每个LBA代表着一个逻辑块(大小一般为512B / 4KB / 8KB)。用户访问SSD的基本单元成为逻辑页;SSD内部,主控是以闪存页为基本单元读写闪存的,称闪存页为物理页

 

         大多数SSD上,都有板载DRAM,其主要作用就是存储映射表

 

4.2.3 HMB

        映射表除了可以放在板载DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)和闪存中,还可以放在主机的内存中。

        HMB(Host Memory Buffer),即主机高速缓冲存储器:主机在内存中专门划出一部分空间给SSD用,SSD可以把它当成自己的DRAM使用。因此,映射表完全可以放到主机端的内存中去

      性能上:它介于带DRAM和不带DRAM(映射表绝大多数存放在闪存)之间,因为SSD访问主机端DRAM的速度比访问SSD端DRAM的速度慢,但比访问闪存的速度快。

    总结:SSD有以下两种设计

   (1)带DRAM的。DRAM用于缓存数据和存放映射表。

             优缺点:性能好,映射表完全放在DRAM中,查找和更新迅速。SSD成本高,功耗大。

   (2)不带DRAM(DRAM-Less)的。缓存数据用主控上的SRAM,映射表采用两级映射----一级映射和少量的二级映射放在SRAM中,二级映射数据大多数存放在闪存上。

            优缺点:成本和功耗相对较低。性能差。

以随机读为例:

        (1)不带DRAM的SSD,访问映射表的时间是读闪存的时间;

        (2)带DRAM的SSD,访问映射表的时间是读DRAM的时间;

        (3)带HMB的SSD,访问映射表的时间是访问主机DRAM的时间。

4.2.4 映射表刷新

      什么时候会触发映射表的写入呢?

        (1)新产生的映射关系达到一定的阈值;

        (2)用户写入的数据量达到一定的阈值;

        (3)闪存写完闪存块的数量达到一定的阈值;

        (4)其他。

      写入策略有:全部更新和增量更新。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值