SSD内部详解

1、ssd的基本架构

直接上图,给出一个简单SSD的内部基本架构
在这里插入图片描述
从这个图中可以看到FTL层主要是三个功能:地址映射表、损耗均衡、垃圾回收
在这里插入图片描述
地址映射表:顾名思义,把文件系统的逻辑地址,映射到flash的物理地址上。
损耗均衡:进行损耗的调度,让所有快的差不多一起写坏,而不是其中某一块很快写坏,影响整体的性能。
垃圾回收:前面说的异地更新的问题,主要完成有效页的搬移。

2、FTL层的详细功能

在这里插入图片描述
下面来看一下映射表:
首先是页映射
在这里插入图片描述
逻辑页到物理页,直接查表映射即可,一对一的逻辑物理页的映射。但是存在一个问题,问题是当容量做的很大的时候,需要大量的表去存起来,很不划算,而且也没有这么大的sram。
基于这个弊端,后来采用的是块映射
在这里插入图片描述
将物理上的页组成一个块,以块的形式存表,这样存表的大小就大大减小了,逻辑地址就对应着块表的内部的偏移地址。
对应图举例说明可以知道:当写入的逻辑页的地址是9的时候,9%4=1,9/4=2,也就是说在第二个块,块内偏移地址是1,即可完成逻辑地址到物理地址的映射。
缺点是这样会有查表的转换时间损耗,表很大的时候会很长时间。

基于这个缺陷,采用了混合映射表,完成了两个折中的功能:
在这里插入图片描述
混合映射表示表有两种映射方式混合,一种映射方式是块映射,另外一种映射方式是页映射,当对数据量下的是可以采用页映射对物理页进行读写操作,但是当数据量大的时候要采用页映射,页映射表满的时候可以将数据搬移到块映射对应的表上,这样页映射表便重新更新了,就可以再次使用了。

三种映射表资源的对比:
在这里插入图片描述
显然,混合映射是组好的方式,占用sram存表的空间是最小的

3、损耗均衡和垃圾回收

在这里插入图片描述
从垃圾回收这个图可以看出来,首先把 有效块复制空白页上,然后对无效的block全部擦除,然后在写入有效信息,垃圾回收的过程。
在这里插入图片描述
坏块管理:很明显,由于flash在出厂的时候就有坏块,FTL层要对坏块进行一个标记,读写的时候跳过坏块,提高读写的效率。
请求调度:并行合并IO读写,将IO读写操作的顺序进行调度,将一个plane读写的放在一起,增加并行性,提高读写效率。

4、flash配置

目前来说flash有两种基本的配置,一种是emc flash,这种flash的主控也被打包在芯片里面,体积小便于封装。还有一种就是上面说的ssd,各种不同架构的ssd.
在这里插入图片描述
关于ssd,各种不同的厂家有自己的架构,下面就几种典型的结构进行说明:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、硬件平台

目前对ssd的硬件平台主要分为以下4种:
在这里插入图片描述
第一种是有厂家提供的,不知道内部具体参数,只能用于测试。
第二种是自己定制向上面说的架构。
第三种是进行ssd的仿真,测试其仿真参数。
第四种是开源的openssd实验平台。

猜你喜欢

转载自blog.csdn.net/u012414189/article/details/85063465
ssd
今日推荐