SSD基础知识二
2016-11-18 22:33
316 查看
1、SSD的数据操作:读:从page中读取数据到寄存器。写/编程:将寄存器内地数据编程进可编程的page。擦除:读和写都是以page为单位,擦除是以block为单位。
2、SSD原理——FTL:即Flash translation layer(闪存转换层),是一种软件中间层,它包含了地址映射,垃圾回收,损耗均衡等几方面的内容。
FTL首先构造数据“虚拟”块,这些虚拟块独立于Flash设备的物理可擦除块,接着FTL管理Flash上的数据,使其看起来像原地更新(write in place),事实上这些数据被存储在Flash中不同的位置,最后FTL管理Flash物理块,进行垃圾回收,使得系统有一些已经被擦除过的、干净的空闲块用于存储数据。如果系统中存在多个Flasf芯片,FTL通过编程模式将这些芯片组织成为一块“逻辑”芯片。
2.1地址映射:包括页映射(page mapping)、块映射(block mapping)、混合映射(hybrid mapping)。
页映射:
•在mappingtable中,每一个LBA(Logical block addres,逻辑地址快),都映射到某一个PGA,所以要找到某一个LBA中的内容只需要查找mappingtable即可。
块映射:
类似于cache中的直接映射,LBA被分为俩个部分,前一部分被用作索引block号,后一部分索引block内的page号。
混合映射:
•类似cache中的setassociation,LBA被放置到每个page的隐藏数据区,需要读取某一个LBA的数据时,需要读取整个block的每一个page中的隐藏数据区的值进行比对,直到找到该LBA。
对比:
•Page mapping需要大的ram,但灵活性高,可以做损耗均衡等等。
• Block mapping的ram需求量小,但是会导致性能的下降,不灵活。
混合映射即使一种折中,但是读取某个page需要读取block中的page进行LBA的比较
2、SSD原理——FTL:即Flash translation layer(闪存转换层),是一种软件中间层,它包含了地址映射,垃圾回收,损耗均衡等几方面的内容。
FTL首先构造数据“虚拟”块,这些虚拟块独立于Flash设备的物理可擦除块,接着FTL管理Flash上的数据,使其看起来像原地更新(write in place),事实上这些数据被存储在Flash中不同的位置,最后FTL管理Flash物理块,进行垃圾回收,使得系统有一些已经被擦除过的、干净的空闲块用于存储数据。如果系统中存在多个Flasf芯片,FTL通过编程模式将这些芯片组织成为一块“逻辑”芯片。
2.1地址映射:包括页映射(page mapping)、块映射(block mapping)、混合映射(hybrid mapping)。
页映射:
•在mappingtable中,每一个LBA(Logical block addres,逻辑地址快),都映射到某一个PGA,所以要找到某一个LBA中的内容只需要查找mappingtable即可。
块映射:
类似于cache中的直接映射,LBA被分为俩个部分,前一部分被用作索引block号,后一部分索引block内的page号。
混合映射:
•类似cache中的setassociation,LBA被放置到每个page的隐藏数据区,需要读取某一个LBA的数据时,需要读取整个block的每一个page中的隐藏数据区的值进行比对,直到找到该LBA。
对比:
•Page mapping需要大的ram,但灵活性高,可以做损耗均衡等等。
• Block mapping的ram需求量小,但是会导致性能的下降,不灵活。
混合映射即使一种折中,但是读取某个page需要读取block中的page进行LBA的比较
相关文章推荐
- 一些flash memory/SSD的基础知识
- Flash Memory/SSD的基础知识
- SSD基础知识
- SSD基础知识,给大家充充电!
- SSD基础知识三
- SSD基础知识一
- 网盘系列(二):基础知识——磁盘、ATAM,SCSI,SSD概述
- HDD&&SSD基础知识总结
- Apache-Ant 基础知识
- 面向 PHP 开发人员的 CouchDB 基础知识 —— 从 PHP 开发人员的角度看 CouchDB
- OSPF协议基础知识(一)
- JAVA编程语言的基础知识(1)
- 1.5 基础知识——GP2.3 提供资源(Resources) 与 GP2.4 分配职责(Responisbility)
- 计算机10大基础知识点(一)
- 图像处理基础知识之二
- ASP.NET中Cookie编程的基础知识
- 存储基础知识(八):备份技术(上)
- {传智播客} (学习笔记)--Oracle使用需要掌握的基础知识
- 程序员自我修养第一章基础知识总结
- 学习Spring必学的Java基础知识(3)----PropertyEditor