FTL

1.百度百科

http://baike.baidu.com/link?url=HJ94Rz2Td83V8OW-6dD_h_P8CZb9VFR6HznPDopY_SFdfXDaMriYcBm1Xwpwrsnnv1HB1kSlFkYX0EjfNTcOfa

2.一些概念

http://www.pceva.com.cn/topic/Plextor/index.html

3.wiki :Flash memory controller

http://en.wikipedia.org/wiki/Flash_translation_layer

4.PCM等闪存

http://blog.sina.com.cn/s/blog_4b9eab320100y7up.html

5.

http://blog.csdn.net/shenbin1430/article/details/4391566

1.概念

FTL是Flash translation layer的英文缩写,FTL是一种软件中间层,最初是由intel提出的,用于将闪存模拟成为虚拟块设备,从而能够在闪存上实现FAT等等块设备类文件系统。

Flash translation layer(FTL) is a middle layer of software, originally proposed by the intel for the flash simulate a virtual block device, enabling FAT file system, and so block device class on the flash.

(图,百度百科)

FTL首先构造数据“虚拟”块,这些虚拟块独立于Flash设备的物理可擦除块,接着FTL管理Flash上的数据,使其看起来像原地更新(write in place),事实上这些数据被存储在Flash中不同的位置,最后FTL管理Flash物理块,进行垃圾回收,使得系统有一些已经被擦除过的、干净的空闲块用于存储数据。如果系统中存在多个Flash芯片,FTL通过编程模式将这些芯片组织成为一块“逻辑”芯片。

FTL first construct data "virtual" block, these virtual block device-independent Flash erasable physical blocks, then FTL Flash on the management of data, to make it look like write in place, the fact that these data are stored in a different location in Flash, last FTL management Flash physical blocks, garbage collection, so that the system has some had already been erased, clean free blocks for storing data. If there are multiple Flash chip systems, FTL mode by programming these chips will be organized into a "logic" chips.

(图,百度百科)

2.必要性

闪存的读写单位为页,而页的大小一般为4KB或8KB,但我们的操作系统读写数据是按HDD的扇区尺寸进行的(512Byte(字节)),更麻烦的是闪存擦除以块作单位,而且未擦除就无法写入,这导致操作系统现在使用的文件系统根本无法管理SSD,需要更换更先进、复杂的文件去解决这个问题,但这样就会加重操作系统的负担。而为了不加重操作系统的负担,SSD采用软件的方式把闪存的操作虚拟成磁盘的独立扇区操作,这就是FTL。因FTL存在于文件系统和物理介质(闪存)之间,操作系统只需跟原来一样操作LBA即可,而LBA到PBA的所有转换工作,就全交由FTL负责。

Flash memory read and write in pages, but generally 4KB page size or 8KB, but our operating system to read and write data is carried out according to the size of the HDD sector (512Byte (bytes)), more trouble is flash erase block as a unit, but did not erase it can not be written, it causes the file system is now used by the operating system simply can not manage SSD, need to be replaced more advanced, complex file to solve this problem, but this will increase the burden of the operating system . In order not to increase the burden of the operating system, SSD using software approach to the operation of the virtual memory operations into separate sectors of the disk, which is FTL. Because FTL exists between the file system and the physical media (flash) in the operating system just as with the original LBA can operate, and LBA to PBA all conversion work, on the whole by FTL responsible.

(图:SSD)

3.组成

一个FTL算法应提供以下功能:

逻辑地址到物理地址的映射:一个FTL算法的主要功能是把文件系统中的逻辑地址转换成闪存中的物理地址。

断电恢复:即使在FTL操作时突然断电,FTL的数据结构也应该被保存,数据应保证一致性。

损耗均衡:FTL应包括磨损均衡功能使得尽可能均匀地磨损各内存块。

(1)WL(Wear leveling)磨损平衡:http://www.pceva.com.cn/topic/Plextor/index-jc-3.html

(2)GC(Garbagecollection)垃圾回收:()同上

(3)

……

(细述)

4.分类

(一)根据其地址映射、映射信息管理和RAM表的大小进行分类的

(1)页映射,每个逻辑扇区被映射到一个对应的物理扇区

(2)块映射,物理块内的物理扇区的偏移量与逻辑块中的逻辑扇区的偏移量相同。

(3)混合映射

(图,文---》论文)

5.缺点

(1)当实现一个FTL算法,有必要考虑一个方案来存储映射信息。为了能够重建在上电过程中,映射信息的映射表不应该迷失在突然断电的事件,因此,此信息必须在某处被持续保存在闪存内存。该技术用于存储映射信息中闪光 
存储器可以被分为两类:(the map block method and the per block method)

(2)综述3.1.1硬件接口问题,中断问题——循环解决

(3)

6.改变:wiki

FTL方面综述的更多相关文章

  1. eMMC ext4综述【转】

    本文转载自:https://blog.csdn.net/lieye_leaves/article/details/78214410 eMMC ext4综述一.系统的引导启动1.1系统的引导启动http ...

  2. Python爬虫入门一之综述

    大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...

  3. Using FreeMarker templates (FTL)- Tutorial

    Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ...

  4. Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormessage.ftl"

    初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错.

  5. deep learning 的综述

    从13年11月初开始接触DL,奈何boss忙or 各种问题,对DL理解没有CSDN大神 比如 zouxy09等 深刻,主要是自己觉得没啥进展,感觉荒废时日(丢脸啊,这么久....)开始开文,即为记录自 ...

  6. paper 96:计算机视觉-机器学习近年部分综述

    计算机视觉和机器学习领域 近两年部分综述文章,欢迎推荐其他的文章,不定期更新.   [2015]   [1].    E.Sariyanidi, H. Gunes, A. Cavallaro, Aut ...

  7. [Freemarker] - 使用struts的component调用freemarker的ftl模板方法

    struts中的component标签,可以用来调用freemarker的ftl模板文件,使用component标签传参可以这样写: 使用property方式写法: <s:component t ...

  8. ftl文件格式化jsp形式显示

    通过myeclipse设置ftl的编辑器为jsp的编辑器,达到效果. Myeclipse->windows->preferences 1\ 2\ 3\ 完成后即可.

  9. 性能分析之-- JAVA Thread Dump 分析综述

    性能分析之-- JAVA Thread Dump 分析综述       一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工 ...

随机推荐

  1. 【DES加密解密】 C#&JAVA通用

    DES加密解密 C# Code /// <summary> /// DES加密解密帮助类 /// </summary> public static class DESHelpe ...

  2. springboot中使用spring security,登录url就出现403错误

    参考链接:https://segmentfault.com/q/1010000012743613 有两个controller,一个是所有用户可以访问的@RequestMapping("use ...

  3. POJ2182 Lost Cows 树状数组

    题意:有编号1~n乱序排列的奶牛,给出了每一个奶牛前小于自己编号的奶牛数目 维护一个树状数组,下标是编号,值为$0/1$标识是否存在,很显然最后一个牛的编号是知道的,我们在树状数组上二分出前缀和为小于 ...

  4. qt install (1)

    直接在命令行安装 sudo apt-get install qt5-default qtcreator 命令行安装的卸载 sudo apt-get remove qt5-default qtcreat ...

  5. HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )

    题目链接 题意 : 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 分析 : 直觉是DP 不过当时看到 n 很大.但 ...

  6. 数据结构实验之求二叉树后序遍历和层次遍历(SDUT 2137)

    Problem Description 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历. Input 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据. ...

  7. 利用Python+Redis实现分布式锁

    class MyDLock(object): def __init__(self, lockID,timeout): self.connection = redis.Redis(host=cfg.RE ...

  8. Django基础之render()

    结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象. 参数: request: 用于生成响应的请求对象 template_name: 要使用的模板的完整名称, ...

  9. HDU 2177 —— (威佐夫博弈)

    威佐夫博弈奇异态(必败态)的条件是a[k]=[k*(sqrt(5.0)+1.0)/2.0].暴力找出必败态即可. 代码如下: #include <stdio.h> #include < ...

  10. HTTP之简析

    1. 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议.HTTP 通常架构在 TCP 传 ...