SSD的FTL——深入浅出SSD笔记

本文深入探讨了SSD的FTL,包括其在设备端和主机端的角色,地址映射、垃圾回收、Trim、磨损平衡、掉电恢复、坏块管理和SLC缓存等功能。FTL对于优化SSD性能和延长闪存寿命至关重要,同时涉及读扰动和数据保留问题。介绍了Host-Based FTL和Device-Based FTL的区别。
摘要由CSDN通过智能技术生成

了解硬件特性有助于我们针对特性进行进一步的探索与优化;本文主要介绍SSD的FTL(Flash Translation Layer);

FTL所在的位置:

在设备端:

 在主机端:

Interface Adapter——接口适配: 

        在内部FTL中主要关联eMMC/SCSI/SATA/PCIe/NVMe等接口,而在外部FTL中主要关联Linux Block Device。

Address Translation——映射管理

        地址映射,也可以叫做mapping,负责逻辑地址和物理地址之间的映射,多技术模块都以该机制为核心进行。众所周知,Nand Flash具有写时擦除的特性,因此写入数据时不得不异地更新。

Garbage Collection——垃圾回收

        垃圾回收,简称GC,回收异地更新产生的脏数据所占空间的回收工作。

 Trim

        Trim是一种用来增加GC垃圾回收效率的算法。

        没有Trim的话,会出现这样一种情况:在操作系统删除一个文件,实际上数据在物理层面上并没有被删除。

Wear Leveling——磨损平衡

        缩短不同块之间的擦写次数差别,均衡闪存块的寿命;分为动态磨损平衡和静态磨损平衡;

掉电恢复——Power off Recovery: 

        掉电恢复,简称POR。正常掉电,SSD会把缓存中的数据刷新到闪存,重新加载保存的数据即可。如果是异常掉电,因为某些人为或自然外力的原因导致数据没有成功写入到Nand中,掉电恢复要恢复到掉电前的安全状态,比如恢复RAM中的数据和Address Translation中的映射表。

Error Handler——坏块管理

        处理读写操作中遇到的Fatal Error或ECC Error状况,以及Bad Block或Weak Block的管理。略过坏块或者跳过坏块;

SLC cache

        SLC cache是把MLC或者TLC的一部分闪存块,配置为更优速度优势的SLC模式来作为Cache使用,让SSD具有更好的突发性能。不过一般主要用于消费级SSD或者移动存储中,主要原因是SLC Cache具有更好的突然性能,但是企业级SSD更追求稳定的速度;

RD & DR

        RD指的是Read Disturb,DR指的是Data Retention。两者都能导致数据丢失,但原理和固件处理方式都不一样;

        RD——对一个闪存块来说,每次读其中的一个闪存页,都需要在其他字线(Wordline)上加较高的电压以保证晶体管导通。这个操作有点类似于轻量的写操作;长期会导致比特翻转;因此需要在达到读阈值之前对这个闪存块上的数据进行刷新;

        DR——电子从浮栅极跑出,导致比特翻转;由FTL定期扫描,翻转超出阈值进行数据刷新,避免数据丢失;

Host Based FTL

        SSD有Host Based FTL和Device Based FTL两种模式。

        Host Based把FTL放在主机驱动程序中,Device Based则是把FTL放在SSD主控内部。

        Host Based SSD一般的模式是把闪存的读写接口直接开放给驱动程序,这样驱动程序就能自行管理闪存内部资源。控制器大都采用可编程逻辑器件FPGA,功能比较简单,主要实现ECC纠错和闪存时序控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值