[发明专利]一种具有压缩功能的固态存储系统FTL写入及读取方法有效
申请号: | 201310048661.7 | 申请日: | 2013-02-07 |
公开(公告)号: | CN103136109A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 刘伟 | 申请(专利权)人: | 中国科学院苏州纳米技术与纳米仿生研究所 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市铭粤知识产权代理有限公司 44304 | 代理人: | 杨林;李友佳 |
地址: | 215123 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 具有 压缩 功能 固态 存储系统 ftl 写入 读取 方法 | ||
技术领域
本发明主要涉及固态存储系统领域,尤其是涉及一种能够提高的固态存储系统的存储空间利用率的写入及读取方法。
背景技术
使用NAND Flash的固态存储系统逐渐成为一种新的广受欢迎的存储系统(Solid State Disk,SSD)。然而由于Flash的使用寿命是有限的(25nm MLC擦写次数在3000次左右),因此如何降低擦写Flash的次数是SSD中重要的研究方向。使用数据压缩技术,可以大大降低实际写入SSD的数据量,因此降低对Flash的擦写次数,延长其寿命。
比如,一般的可执行文件,文本文件,数据库文件,经过无损数据压缩之后,其体积一般能减少30%~60%,所需的存储空间大大降低。以下假设SSD内部处理数据的单元及数据压缩针对的数据单元大小均是4KB,即每8个区块(sector)为一组进行数据压缩,如果不足则用空数据填充。
但是,引入数据压缩之后,由于每一块数据的大小会发生不确定的变化,即数据块的大小从定长变为不定长。
未采用压缩技术前,举例说,假设每一个页“page”(8KB)可以存储两个4KB的数据块。这样,直接将每个4KB数据的物理页地址记录在地址映射表中就可以满足后续对该数据块的读写访问操作。
由于引入数据压缩,因此,每一个8KB的页“page”中存储的数据块的数量将可能发生变化,例如,在一个页“page”中存储了3个压缩后的数据块,同时留下了一个2KB大小的空洞,成为内部碎片(产生空洞的原因是后面一个即将写入的数据大于2KB(假设是3KB),因此该页“page”中已无法容纳该写入数据)。SSD只能另外开辟一个新的8KB页“page”来写入这个新的3KB大小的数据块。因此,这个内部碎片的2KB存储空间就被浪费掉了。
如何减少存储空间的浪费,提高固态存储系统的存储率成为亟待解决的技术难题。
发明内容
本发明的目的在于提供提高固态存储系统的存储空间利用率的写入及读取方法。
提供一种具有压缩功能的固态存储系统FTL写入方法,该固态存储系统包括压缩前缓存、数据压缩单元、压缩后缓存、地址映射表、数据压缩FTL,以及存储单元,该写入方法包括步骤:固态存储系统接收并解析写入指令;固态存储系统将待写入数据缓存到压缩前缓存中;数据压缩单元将压缩前缓存中的数据进行数据压缩,并将压缩完的数据存入压缩后缓存中;数据压缩FTL对压缩数据块进行地址映射管理、垃圾收集及损耗均衡操作;固态存储系统将该压缩后缓存中的数据写入该存储单元中。
根据本发明的一优选实施例,在步骤“数据压缩FTL对压缩数据块进行地址映射管理、垃圾收集、损耗均衡操作”中,如果待写入数据块压缩后无法正好填满一个完整的存储单元,则将待写入压缩数据块分为第一压缩数据块和第二压缩数据块,并将该第一压缩数据块写入一第一存储单元的尾部存储空间内,将该第二压缩数据块写入一第二存储单元的头部存储空间内,同时在该第一压缩数据块之后添加第一存储单元链接指针,在第二压缩数据块之前添加第二存储单元链接指针,该第一存储单元链接指针表示该第一压缩数据块对应的第二压缩数据块所在的存储单元的物理地址,该第二存储单元链接指针表示第二压缩数据块对应的第一压缩数据块所在的存储单元的物理地址。这样,第一压缩数据块(及其第一存储单元链接指针)就恰好填满一个完整的存储单元,避免了存储空间的浪费。
本发明还提供一种与上述固态存储系统FTL写入方法对应的读取方法,包括步骤:固态存储系统接收并解析读取指令;数据压缩FTL从地址映射表中查询待读取数据的逻辑地址所对应的存储单元的物理地址;固态存储系统将待读取的数据缓存到解压缩前缓存中;对存储于解压缩前缓存中的压缩数据块进行解压缩,解压缩后的数据存放到解压缩后缓存中;固态存储系统将解压缩后缓存中的数据传输至读取装置。
根据本发明的一优选实施例,在步骤“数据压缩TFL从地址映射表中查询待读取数据的逻辑地址所对应的存储单元的物理地址”中,如果所需读取的数据块只有压缩数据块的第一压缩数据块,则数据压缩FTL根据存储在该第一压缩数据块内的第一存储单元链接指针,找到包含对应的第二压缩数据块的存储单元,并读出第二压缩数据块到解压缩前缓存。
根据本发明的一优选实施例,在步骤“对存储于解压缩前缓存中的压缩数据块进行解压缩,解压缩后的数据存放到解压缩后缓存中”,包括解压缩该第一压缩数据块和该第二压缩数据块,并形成待读取数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院苏州纳米技术与纳米仿生研究所,未经中国科学院苏州纳米技术与纳米仿生研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310048661.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种混凝土预制梁起吊吊具
- 下一篇:一种排气管吊具