FTL(闪存转换层)基础

FTL(Flash Translation Layer)译为闪存转换层,是Flash Memory(存储介质)与Device Controller(设备主控器)之间的连接关系。
在整个储存体系中,FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。在进行地址转换的同时,FTL还兼顾Flash的管理,不仅需要对Flash上的各个Block进行擦写次数控制(磨损均衡),还需要管理Flash上的无用数据(垃圾回收)。
下面简单介绍这三个点。

1. 地址映射管理概念

不同于机械硬盘的磁头直接进行数据读写,SSD或者其它以Flash作为储存介质的硬盘无法直接进行数据读写操作。解决这个问题的办法,就是FTL层管理几张逻辑映射表做一个中间转换,Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。

2. 磨损均衡概念

以Flash为储存介质,其可编程次数是必须考虑的重点。拿目前的固态举例,多以TLC Flash为储存介质,其编程次数在1000-1500次之间,若对TLC Flash上的某些block擦除次数超过了次数限制,那么将导致坏块产生,所以FTL须实现磨损均衡,协调整个Flash上的Block,将使用次数少的Block拿出来分担使用次数多的Block的压力。通俗的说,磨损均衡就是以相对最优的选择使Flash上每个Block的擦除次数尽可能相同,以避免有些Block擦除次数过多成为坏块致使用户可用容量变小的问题。

3. 垃圾回收概念

因为储存原理的不同,删除SSD等以Flash为储存介质的硬盘上的数据时,只是删除了Host端的逻辑地址,而实际数据存在Flash的物理地址上,依旧霸占着空间(所以不要以为你的数据删除了就安全了,没进行垃圾回收时,他们依旧可以找回),后续数据写进来只能写到其他Block(Page)上,这就可能造成一个Block上的8M数据只有2M是有效数据,其他的都是被删除了逻辑地址的“假数据”,久而久之,就会导致空Block不够用了。解决这个问题呢,就靠垃圾回收(GC)了,它功能就是找一个空Block(目的Block),然后把那些“假数据”比较多的Block(源Block)上的有效数据搬移过来,再把源Block释放擦除,这样,一个目的Block可以容纳多个源Block的数据,达到强行一换多的目的,给用户腾出了更多的空间。

FTL(闪存转换层)简单介绍相关推荐

  1. [SSD核心技术:FTL 13] 不求同生,但求同死?固态硬盘闪存磨损均衡技术详解

    声明 主页: 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载. 内容摘要 前言 FTL闪存转换层 Wear Leveling磨损均衡 前言 一块2T ...

  2. Linux文件系统与持久性内存介绍:块设备、闪存(NAND/NOR)、NVDIMM(非易失性内存)、PMEM(PMDK)- ndctl

    <持久内存开发套件(Persistent Memory Development Kit-PMDK) - pmem.io: PMDK> <PMDK介绍> <PMDK(NVM ...

  3. 闪存文件系统(Flash File System)

    最近调研了一下闪存文件系统,部分结果展示如下,如有错误欢迎评论指正~ 一.背景 闪存(flash memory),是一种电子式可清除程序化存储器的形式,允许在操作中被多次擦或写的存储器. 随着现在闪存 ...

  4. 闪存数据库概念与技术

    闪存数据库概念与技术 中国高校第一本闪存数据库研究专著 历时两年,倾心之作  内容原创,品质保证 网络发布,免费共享  版权所有,侵权必究 243页,40余万字,系统研究闪存数据库 (点击这里下载专著 ...

  5. ECB:在固态硬盘通过使用专用闪存控制器实现一种有效的Copy-Back操作策略 阅读总结

    <An Efficient Copy-Back Operation Scheme Using Dedicated Flash Memory Controller in Solid-State D ...

  6. 内存、外存、硬盘、磁盘、闪存,傻傻分不清?

    引言   平时我们买手机,关注最多的配置就是内存了,比如6G+64G.8G+128G等等.但是很多人容易弄混这两个概念.之前我遇到有人问我,说买平板是64G内存,还是128G内存好,128G有点贵,6 ...

  7. SSD初识与闪存颗粒结构

    第一期:初步认识固态硬盘 主控,闪存,外置缓存 主控:SSD的CPU,还包括小容量外置缓存,内存控制器(用于沟通外置大容量缓存所需的内存控制器) 缓存:固态硬盘的内存,主要功能是存储FTL(闪存转换层 ...

  8. NAND闪存基础知识

    SSD主控主要有三大部分组成:与Host对接的界面(Host interface), 闪存转换层FTL以及闪存对接界面(Flash interface). 再把SSD主控的架构图请上来展示一下: 目前 ...

  9. IBM发布业界速度最快的Project Quicksilver闪存

    IBM公司日前宣布他们在闪存方面的一项研究计划取得重大的突破性进展,Project Quicksilver闪存的闪存数据传输速度超越每秒100万输入/输出操作,比目前业界速度最快的磁盘存储还要快出2. ...

  10. (20)Zynq FPGA Quad-SPI闪存控制器介绍

    1.1 Zynq FPGA Quad-SPI闪存控制器介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Zynq FPGA Quad-SPI闪存控制器介绍: 5)结束 ...

最新文章

  1. 如何正确访问 redis 中的海量数据?避免事故产生
  2. 金蝶云星空操作手册_金蝶国际CFO林波谈云业务:金蝶云·星空预计今年可以实现盈利...
  3. matlab求解复杂复数方程,用matlab求解一个两重积分方程(未知数在积分下限,含复数积分)...
  4. Code Review工具Jupiter介绍
  5. centos linux7 login,CentOS 7 本地终端Login Incorrect
  6. 怎么用php配合js编写动态页面_JavaScript_JavaScript教程:用JS脚本实现Web页面信息交互范例,要实现动态交互,必须掌握有 - phpStudy...
  7. Mysql的IF()函数:如果返回True值,返回第一个值,为False值,返回第二个值
  8. java 提交界面_使用javascript如何实现页面加载时自动提交表单
  9. 云服务器 ECS > 标签与资源 > 标签 > 标签概述
  10. ReentrantLock 源码解析
  11. SqlServer得到生日(闰月考虑)
  12. vector public member function
  13. Fij/imageJ下载使用
  14. html如何让窗口不在任务栏显示,小编教你任务栏不显示打开的窗口怎么解决
  15. 亚马逊卖家运营必备八大工具
  16. php 计算今天周几,php如何计算当前日期是周几
  17. matlab 单位脉冲响应,滤波器系数、单位脉冲响应、频率响应等概念笔记
  18. CS和IP寄存器的作用及执行分析
  19. OR1200处理器的计时器模块TT介绍
  20. C语言初学者需要知道的十句话,听说不知道的人都没学好编程

热门文章

  1. 游戲外挂,其實是一種網絡藝術
  2. thinkpad 自带软件的设置
  3. 【数据可视化应用】绘制风玫瑰图(附Python代码)
  4. Scrapy爬取当当网畅销图书保存csv格式!最详细的教程!
  5. matlab交流电路仿真,单相交流调压电路Matlab仿真
  6. 新库上线 | CnOpenData境外投资企业(机构)名录数据
  7. 病毒周报(080630至080706)
  8. python数据清洗
  9. 二次开发时,css中 @font-face 的处理方法
  10. oracle11g dos卸载,Oracle 11G 完全卸载