第六章 FTL—映射管理

FTL的映射种类?

1、块映射(以为闪存块为映射粒度)

        优点:块映射只需要存储逻辑块到闪存物理块的映射,映射表所用的空间较小。有较好的连续大尺寸的读写性能。

        缺点:块映射对小尺寸的数据写入性能较差,当只需要修改一个逻辑页的数据的时候,也需要把整个闪存块的数据读出,改变逻辑页的内存,然后再写入整个闪存块。

2、页映射(以闪存页为映射粒度)

        优点:在随机写入性能上突出。

        缺点:因为一个闪存块包含几百甚至几千的闪存页,因此,需要更多的空间存储映射表。

在实际使用中,一个闪存页可以对应多个逻辑区。主流的SSD基本使用的都是页映射。

3、混合映射(逻辑块对应闪存物理块,逻辑块内分逻辑页,逻辑页和闪存物理块中的任意闪存页对应)

                映射表所占空间和读写性能介于块映射和页映射之间。

映射表的基本原理?

        用户是通过LBA(逻辑块地址)访问SSD的,每写入一个逻辑页SSD固件会找一个物理页把用户的数据写入,并记录逻辑地址和物理地址的映射关系,记录这个映射关系的结构就是映射表L2P。

一张映射表有多大?

        假如逻辑页大小为4KB,256GB的大小的SSD,那么用户空间一共需要256GB/4KB=64MB个逻辑页,也就需要容纳64MB条映射关系的映射表,假设映射表中每个单元存储的物理地址用4B表示,那么映射表的大小即为4Bx64M=256MB,也就是SSD的千分之一。(前提是逻辑页的大小是4KB,物理地址用4B表示)

二级映射表的基本原理?

        eMMC和UFS处于成本和功耗的考虑,通常采用,DRAM-less的设计,就是不带DRAM,这样的设计的映射表多采用多级映射。

        一级映射表常驻SRAM,二级映射表少部分在SRAM,大部分在闪存中。一级映射表存储映射表在闪存的物理地址,二级映射表存储的是L2P映射表

                对于DRAM-less的SSD,读取闪存数据,首先要看与逻辑页对应的映射关系是否在SRAM中,如果在就直接根据映射关系直接读取闪存;如果不在,就需要先从闪存中读出映射关系(映射块),再根据映射关系,从闪存中读取数据。

HMB——Host Memory Buffer

        映射表表除了可以放在device端的DRAM、片上SRAM和闪存中,还可以放在主机内存中。NVME1.2后一个重要的功能,就是HMB——Host Memory Buffer,主机在内存中专门划分出一部分内存给SSD使用,SSD可以把它当做自己的DRAM使用。

映射表的写入?

        SSD掉电前要把映射表写入闪存,下次上电,再把映射表从闪存加载到SSD缓存(DRAM或SRAM)。随着SSD写入,映射关系不断增加,为防止意外掉电映射关系丢失,SSD固件不仅在正常掉电的时候写入映射关系,在SSD运行过程中按照以下策略将映射表写入缓存:

  1. 新的映射关系累计到一定阈值
  2. 用户写入的数据量达到一定阈值
  3. 用户写完一个闪存块
  4. 其他

写入策略有全部更新增量更新,全量更新固件实现简单,增量更新需要知道那些映射关系式干净的那些事不干净的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值