一种I/O请求处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:31581601 阅读:20 留言:0更新日期:2021-12-25 11:25
本申请公开了一种I/O请求处理方法、装置、设备及可读存储介质。本申请提供了1个主映射表和N个子映射表,在这些映射表中,能够找到一个可以直接完成非对齐I/O的子映射表,无需从硬盘读取相邻数据对非对齐I/O进行补齐,也无需写入大于当前非对齐I/O的大小的数据,从而降低硬盘的读写放大,能够提升非对齐I/O的性能和硬盘的使用寿命。相应地,本申请提供的一种I/O请求处理装置、设备及可读存储介质,也同样具有上述技术效果。样具有上述技术效果。样具有上述技术效果。

【技术实现步骤摘要】
一种I/O请求处理方法、装置、设备及可读存储介质


[0001]本申请涉及计算机
,特别涉及一种I/O请求处理方法、装置、设备及可读存储介质。

技术介绍

[0002]目前,硬盘中的映射表以固定大小的映射粒度写入数据,例如:映射表的映射粒度为4K,那么要求以4K大小写入数据。当要写入小于4K的数据(如1K数据)时,就需要先从硬盘读取4K大小的数据,然后将此时要写入的1K数据合并到所读取的4K数据中,之后写入合并后的4K数据至硬盘,以完成1K数据的写入。可见,原本仅需写入1K数据,但上述过程不仅先从硬盘中读取了4K数据,又写入了4K数据到硬盘,因此存在读放大和写放大,降低了盘的使用寿命。
[0003]因此,如何降低硬盘的读放大和写放大,是本领域技术人员需要解决的问题。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种I/O请求处理方法、装置、设备及可读存储介质,以降低硬盘的读放大和写放大。其具体方案如下:
[0005]第一方面,本申请提供了一种I/O请求处理方法,应用于固态硬盘,包括:
[0006]接收主机发送的I/O请求;
[0007]若基于主映射表的主映射粒度从所述I/O请求中拆分出非对齐I/O,则由高级别至低级别逐一查询预设的N个级别的子映射表;其中,主映射表为最高级别子映射表的上一级别映射表,所述主映射表和任一子映射表中的任一映射项与物理地址或下一级别映射表中的所有映射项存在映射关系;N为不小于1的正整数;
[0008]若首次查询到子映射粒度不大于非对齐I/O的大小的目标子映射表,则判断所述非对齐I/O的大小是否为所述目标子映射表的子映射粒度的整数倍;
[0009]若是,则写入所述非对齐I/O至目标物理地址,并在所述目标子映射表中记录所述非对齐I/O的目标逻辑地址与所述目标物理地址之间的映射关系。
[0010]优选地,还包括:
[0011]若首次查询到所述目标子映射表,但所述非对齐I/O的大小不是所述子映射粒度的整数倍,则从所述非对齐I/O中确定目标I/O;所述目标I/O的大小为所述目标子映射表的子映射粒度的整数倍;
[0012]写入所述目标I/O至相应物理地址,并在所述目标子映射表中记录所述目标I/O的逻辑地址与相应物理地址之间的映射关系;
[0013]将所述非对齐I/O中除所述目标I/O之外的剩余I/O作为所述非对齐I/O,并继续查询所述目标子映射表的下一级别映射表,直至完成所述非对齐I/O的写入。
[0014]优选地,还包括:
[0015]若查询完所有子映射表后所述非对齐I/O未完成写入,则在所有子映射表中确定
最低级别子映射表;
[0016]为所述最低级别子映射表创建下一级别子映射表;创建所得的下一级别子映射表的子映射粒度能够被所述非对齐I/O的大小整除;
[0017]写入所述非对齐I/O至相应物理地址,并在创建所得的下一级别子映射表中记录所述非对齐I/O的逻辑地址与相应物理地址之间的映射关系。
[0018]优选地,所述为所述最低级别子映射表创建下一级别子映射表,包括:
[0019]在所述最低级别子映射表中确定所述非对齐I/O对应的可更新映射项;
[0020]创建目标表,并确定所述目标表中的映射项的个数;
[0021]初始化所述目标表中的所有映射项,并将所述可更新映射项指向的物理地址更新为所述目标表中的所有映射项;
[0022]将所述目标表确定为创建所得的下一级别子映射表。
[0023]优选地,所述确定所述目标表中的映射项的个数,包括:
[0024]确定所述目标表的子映射粒度,并将所述可更新映射项的大小与所述目标表的子映射粒度的比值,确定为所述目标表中的映射项的个数。
[0025]优选地,还包括:
[0026]若基于所述主映射粒度从所述I/O请求中拆分出所述非对齐I/O,且N个级别的子映射表中存在子映射粒度能够被所述非对齐I/O的大小整除的对象子映射表,则写入所述非对齐I/O至相应物理地址,并在所述对象子映射表中记录所述非对齐I/O的逻辑地址与相应物理地址之间的映射关系。
[0027]优选地,还包括:
[0028]将任意子映射表中的所有映射项指向的物理地址中的数据垃圾回收至其他物理地址后,释放该子映射表占用的内存资源,并将该子映射表的上一级别映射表中的相应映射项指向所述其他物理地址。
[0029]优选地,还包括:
[0030]若基于所述主映射粒度从所述I/O请求中拆分出对齐I/O,则写入所述对齐I/O至相应物理地址,并在所述主映射表中记录所述对齐I/O的逻辑地址与相应物理地址之间的映射关系。
[0031]第二方面,本申请提供了一种I/O请求处理装置,应用于固态硬盘,包括:
[0032]接收模块,用于接收主机发送的I/O请求;
[0033]拆分模块,用于若基于主映射表的主映射粒度从所述I/O请求中拆分出非对齐I/O,则由高级别至低级别逐一查询预设的N个级别的子映射表;其中,主映射表为最高级别子映射表的上一级别映射表,所述主映射表和任一子映射表中的任一映射项与物理地址或下一级别映射表中的所有映射项均存在映射关系;N为不小于1的正整数;
[0034]非对齐I/O处理模块,用于若首次查询到子映射粒度不大于非对齐I/O的大小的目标子映射表,则判断所述非对齐I/O的大小是否为所述目标子映射表的子映射粒度的整数倍;若是,则写入所述非对齐I/O至目标物理地址,并在所述目标子映射表中记录所述非对齐I/O的目标逻辑地址与所述目标物理地址之间的映射关系。
[0035]第三方面,本申请提供了一种电子设备,包括:
[0036]存储器,用于存储计算机程序;
[0037]处理器,用于执行所述计算机程序,以实现前述公开的I/O请求处理方法。
[0038]第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的I/O请求处理方法。
[0039]通过以上方案可知,本申请提供了一种I/O请求处理方法,应用于固态硬盘,包括:接收主机发送的I/O请求;若基于主映射表的主映射粒度从所述I/O请求中拆分出非对齐I/O,则由高级别至低级别逐一查询预设的N个级别的子映射表;其中,主映射表为最高级别子映射表的上一级别映射表,所述主映射表和任一子映射表中的任一映射项与物理地址或下一级别映射表中的所有映射项存在映射关系;N为不小于1的正整数;若首次查询到子映射粒度不大于非对齐I/O的大小的目标子映射表,则判断所述非对齐I/O的大小是否为所述目标子映射表的子映射粒度的整数倍;若是,则写入所述非对齐I/O至目标物理地址,并在所述目标子映射表中记录所述非对齐I/O的目标逻辑地址与所述目标物理地址之间的映射关系。
[0040]可见,本申请提供的固态硬盘中设有一个主映射表和N个子映射表,这些映射表按照级别或映射粒度大小(本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种I/O请求处理方法,其特征在于,应用于固态硬盘,包括:接收主机发送的I/O请求;若基于主映射表的主映射粒度从所述I/O请求中拆分出非对齐I/O,则由高级别至低级别逐一查询预设的N个级别的子映射表;其中,主映射表为最高级别子映射表的上一级别映射表,所述主映射表和任一子映射表中的任一映射项与物理地址或下一级别映射表中的所有映射项均存在映射关系;N为不小于1的正整数;若首次查询到子映射粒度不大于非对齐I/O的大小的目标子映射表,则判断所述非对齐I/O的大小是否为所述目标子映射表的子映射粒度的整数倍;若是,则写入所述非对齐I/O至目标物理地址,并在所述目标子映射表中记录所述非对齐I/O的目标逻辑地址与所述目标物理地址之间的映射关系。2.根据权利要求1所述的I/O请求处理方法,其特征在于,还包括:若首次查询到所述目标子映射表,但所述非对齐I/O的大小不是所述子映射粒度的整数倍,则从所述非对齐I/O中确定目标I/O;所述目标I/O的大小为所述目标子映射表的子映射粒度的整数倍;将所述目标I/O写入至相应物理地址,并在所述目标子映射表中记录所述目标I/O的逻辑地址与相应物理地址之间的映射关系;将所述非对齐I/O中除所述目标I/O之外的剩余I/O作为所述非对齐I/O,并继续查询所述目标子映射表的下一级别映射表,直至完成所述非对齐I/O的写入。3.根据权利要求2所述的I/O请求处理方法,其特征在于,还包括:若查询完所有子映射表后所述非对齐I/O未完成写入,则在所有子映射表中确定最低级别子映射表;为所述最低级别子映射表创建下一级别子映射表;创建所得的下一级别子映射表的子映射粒度能够被所述非对齐I/O的大小整除;写入所述非对齐I/O至相应的物理地址,并在创建所得的下一级别子映射表中记录所述非对齐I/O的逻辑地址与相应物理地址之间的映射关系。4.根据权利要求3所述的I/O请求处理方法,其特征在于,所述为所述最低级别子映射表创建下一级别子映射表,包括:在所述最低级别子映射表中确定所述非对齐I/O对应的可更新映射项;创建目标表,并确定所述目标表中的映射项的个数;初始化所述目标表中的所有映射项,并将所述可更新映射项指向的物理地址更新为所述目标表中的所有映射项;将所述目标表确定为创建所得的...

【专利技术属性】
技术研发人员:刘元兵陈祥
申请(专利权)人:深圳大普微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1