SSD简介及其基本工作原理

上传人:添*** 文档编号:189761561 上传时间:2021-08-07 格式:DOC 页数:3 大小:158KB
返回 下载 相关 举报
SSD简介及其基本工作原理_第1页
第1页 / 共3页
SSD简介及其基本工作原理_第2页
第2页 / 共3页
SSD简介及其基本工作原理_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《SSD简介及其基本工作原理》由会员分享,可在线阅读,更多相关《SSD简介及其基本工作原理(3页珍藏版)》请在金锄头文库上搜索。

1、SSD基本工作原理SSD(Solid State Disk),即固态存储,它用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成,其一般可以分为两种方式:基于闪存的SSD(采用FLASH芯片作为存储介质)和基于DRAM的SSD(采用DRAM作为存储介质)。传统硬盘的机械特性严重限制了数据读取、写入的速度及性能;SSD采用FLASH存储介质,它内部没有机械结构,因此没有数据查找时间、延迟时间和寻道时间。对SSD而言,其读取数据的过程就是一个解析地址的过程,因此,其数据读取的速度非常快。SSD的写操作比较特殊,其最小写入单元为4KB,称为页(page),当写入空白位置时可以按照4KB的单位

2、写入,但是如果需要改写某个单元时,则需要一个额外的擦除动作,擦除的单位(块block)一般是128个page,如果向一个空白的page写入信息时,可以直接写入而无需擦除,但是如果需要改写某个存储单元的数据,必须首先将整个block读入缓存,然后修改数据,并擦除整个block的数据,最后将整个block写入,很显然,SSD改写数据的代价很高,SSD的这个特性,称之为erase-before-write。HOST是通过逻辑地址块(LBA)访问SSD的,每个LBA代表着一个Sector(一般为512B大小),操作系统一般以4K为单位访问SSD,把HOST访问SSD的基本单元称作用户页(Host Pa

3、ge)。而在SSD内部,SSD主控与FLASH之间是以FLASH Page为基本单元访问FLASH的,称FLASH Page为物理页(Physical Page)。HOST每写入一个Host Page,SSD主控会找Physical Page把Host数据写入,SSD内部同时记录了这样一条映射(Map)。有了这样一个映射关系后,下次HOST需要读某个Host Page 时,SSD就知道从FLASH的哪个位置把数据读取上来。HOST每写入一个Host Page,就会产生一个新的映射关系,这个映射关系会加入(第一次写)或者更改(覆盖写)Map Table;当读取某个Host Page时, SSD首

4、先查找Map Table中该Host Page对应的Physical Page,然后再访问Flash读取相应的HOST数据。随着数据的持续写入,FLASH存储空间慢慢变小,直到耗尽。如果不及时清除这些垃圾数据,HOST就无法写入。SSD内部都有垃圾回收机制,它的基本原理是把几个Block中的有效数据集中搬到一个新的Block上面去,然后再把这几个Block擦除掉,这样就产生新的可用Block了。如下图所示,原先将Block x和Block y上的数据移到Block z中,然后释放掉Block x和Block y的空间,以备之后使用。所以,SSD磁盘用了一段时间后,会感觉到磁盘的性能下降,就是因

5、为数据写入时会把若干个块上的数据擦除,再写入数据,这样会严重影响SSD性能。另外一个存在的问题如下所示:当磁盘Block较少时,要写入新的数据,要进行Block回收,找到Block x,首先将Block x上的数据搬移到Block z上,然后写入H,这样其实写入了4个Page,写入被放大了4倍。写入放大的倍数的计算公式为:写入放大的倍数=(闪存写入的数据量 / 主控写入的数据量)另一个需要了解的是预留空间(OP, Over Provisioning)的概念,如果磁盘被占满了,用户删除一些数据,然后写入,能够写入成功吗?不能,因为B如果要写入新的数据,必须要有可用的空闲Block,而垃圾回收的时

6、候,必须借助空闲的块(前面图中的Block z),然而此时连Block z都没有,所以就不能进行垃圾回收,也就不能写入新的数据。所以,SSD内部需要预留一部分的空间用于垃圾回收,这部分的空间,SSD内部的一些系统数据,也需要预留空间来存储,比如前面说到的映射表(Map Table)、SSD固件,以及其它的一些SSD系统管理数据。当某个单元长时间被反复擦写时,不仅会造成写入的性能问题,而且会大大缩短SSD的使用寿命。如果SSD集中对某几个Block进行擦写,那么这几个Block很快就寿命耗尽。比如有些数据是频繁需要更新,那么这些数据所在Block就需要频繁的进行擦写,这会造成这些Block的寿命就可能很快的耗尽。而有些数据用户是很少更新的,那么这些数据所在的Block擦写的次数就很少。随着用户对SSD的使用,就会形成一些Block有很高的PE数,而有些Block的PE数却很低的。在SSD内部,通过损耗均衡(Wear Leveling,WL)的机制来保证所有的Block均衡使用。WL有两种算法:动态WL和静态WL。所谓动态WL,就是在使用Block进行擦写操作的时候,优先挑选PE 数低的;所谓静态WL,就是把长期没有修改的数据从PE数低的Block当中搬出来,然后找个PE 数高的Block进行存放,这样,之前低PE数的Block就能拿出来使用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 存储

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号