[发明专利]一种高效验证固态存储垃圾回收的测试方法在审
申请号: | 202210393766.5 | 申请日: | 2022-04-15 |
公开(公告)号: | CN114758716A | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 刘忞斋;李瑞东;王璞;高美洲;孙大朋;郭泰;付凤之;范军朋 | 申请(专利权)人: | 山东华芯半导体有限公司 |
主分类号: | G11C29/14 | 分类号: | G11C29/14;G11C29/18 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 李桂存 |
地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 验证 固态 存储 垃圾 回收 测试 方法 | ||
本发明提供了一种高效验证固态存储垃圾回收的测试方法,用于进一步提高固态存储数据校验效率及校验范围。在执行数据校验前,基于固态存储物理容量、逻辑容量和用户待校验数据量,计算需要执行数据校验的LBA样本集合,在所有物理Block至少执行一次擦除操作后,校验样本集合中所有LBA关联数据,保证对所有参与数据搬移的Block完成数据校验。本发明通过研究垃圾回收原理,巧妙的设计测试负载及步骤,极大提高了验证垃圾回收的效率和质量,实现了高效验证。
技术领域
本发明涉及一种高效验证固态存储垃圾回收的测试方法,属于固态存储技术领域。
背景技术
对于固态存储,由于其存储介质的“Erase-Before-Write”特性,无法即时删除无效数据,需要在物理块(Block)所有区域被写满后,将其中有效数据读出并存入其他空白Block,再对原Block执行擦除操作,由此无效数据删除操作,该操作也称为“垃圾回收”(GC)。因为垃圾回收操作涉及数据搬移动作,如果数据搬移存在异常,就会导致用户数据被篡改或丢失的情况,因此需要对发生物理位置变更的用户数据进行针对性的测试。当前Linux系统中FIO工具支持数据校验,具体方式为每写入指定数量数据后,对写入数据执行读校验操作。由于可指定数据量较小,被校验数据通常还未在固态存储内部执行搬移操作,因此无法有效验证垃圾回收操作正确性。也可以预先设置指定数量的待校验数据并记录其对应的逻辑块地址(LBA),在完成长时间的随机写操作后,验证待校验数据正确性。此种测试方式无法保证所有待测试数据是否执行过物理Block搬移操作,同时也无法验证所有物理Block搬移的正确性。
发明内容
本发明目的是提供了一种高效验证固态存储垃圾回收的测试方法,通过研究垃圾回收原理,巧妙的设计测试负载及步骤,极大提高了验证垃圾回收的效率和质量,实现了高效验证。
本发明为实现上述目的,通过以下技术方案实现:
1)用户输入待校验逻辑Block数据量Nlblock_for_test,计算逻辑容量使用的物理Block数量Npblock_for_logic;具体公式如下:Npblock_for_logic=Nlblock/Nlblock_per_pblock;
2)计算每个物理Block需要存储的待校验数据量Ntest_lblock_per_pblock,计算公式如下:Ntest_lblock_per_pblock=Nlblock_for_test/Npblock_for_logic;
3)计算待校验数据LBA样本集合Slba={Si|0≤i<Npblock_for_logic},其中Si包含的LBA范围为[Li_start,Li_end];
4)执行一次全盘顺序写操作,对所有LBA按序执行写入操作,过程中记录Slba中LBA关联的数据信息;
5)执行随机写操作,过程中对Slba以外的所有LBA执行随机写入操作,数据写入量为Cphy×2;
6)判断写入数据量是否达到物理容量2倍,如果为否则返回步骤5,如果为是则校验样本集合中所有LBA数据正确性;
7)对Slba中所有LBA执行读取操作,校验读取数据正确性:全部校验成功,测试通过;存在校验失败数据,测试失败。
优选的,所述用户输入待校验逻辑Block数据量Nlblock_for_test,应大于Npblock_for_logic。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东华芯半导体有限公司,未经山东华芯半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210393766.5/2.html,转载请声明来源钻瓜专利网。