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