基于大容量固态硬盘的映射表管理方法、装置和计算机设备与流程

未命名 08-05 阅读:181 评论:0


1.本发明涉及固态硬盘技术领域,特别是涉及一种基于大容量固态硬盘的映射表管理方法、装置、计算机设备和存储介质。


背景技术:

2.ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd,从可靠性和性能方面为用户提供较好的体验。
3.ssd内部使用nand进行数据存储,由于nand的特殊性,数据写入后不能直接在nand原地修改,而必须将对应的物理块擦除后才能重新写入。基于此需求,对于新写入的数据,ssd内部会分配新的空白物理块/页进行写入,并使用一个映射表跟踪主机逻辑数据到nand物理地址的映射,记为l2p,其索引为lpa,由主机访问盘的逻辑地址lba转换而来;其值gppa,则为nand物理地址。
4.典型地,主机访问盘的逻辑地址lba颗粒度为512b,连续的8个lba对应一个lpa(4k,比如lba 0-7对应lpa0)。为了跟踪在nand上的存储位置,则需要4b来表征lpa存放的物理地址,对应的寻址物理空间范围为(4gb/4)*4kb=4tb。然而,随着ssd单盘容量越来越大,此空间已经不足以支撑,故而l2p的值必然超过32bit,则对于32bit系统来说,映射表的维护复杂度/空间大小均会成为问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种基于大容量固态硬盘的映射表管理方法、装置、计算机设备和存储介质。
6.一种基于大容量固态硬盘的映射表管理方法,所述方法包括:
7.提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;
8.等待nand读操作请求完成,此时数据会加载到nand cache register中;
9.传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;
10.ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,所述系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;
11.根据匹配的lpa在数组内的偏移,获取到对应数据在物理页内的偏移;
12.传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。
13.在其中一个实施例中,在所述系统数据区内包括:
14.时间戳,用于表征多次写入的相同逻辑地址数据新旧;
15.lpa[n],用于记录当前物理页内存放的n个lpa索引;
[0016]
valid_bitmap[n],用于标记n个lpa内各个lba是否有效;
[0017]
校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。
[0018]
在其中一个实施例中,在所述提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求的步骤之前还包括:
[0019]
获取主机下发读命令,所述读命令中携带lba访问范围;
[0020]
通过ssd前端模块将命令lba地址分割成映射单元;
[0021]
提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;
[0022]
提交每个映射单元的操作请求到映射表管理模块;
[0023]
通过映射表管理模块将逻辑地址转换成物理地址。
[0024]
在其中一个实施例中,在所述传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验的步骤之后还包括:
[0025]
传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。
[0026]
一种基于大容量固态硬盘的映射表管理装置,所述装置包括:
[0027]
请求模块,所述请求模块用于提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;
[0028]
数据加载模块,所述数据加载模块用于等待nand读操作请求完成,此时数据会加载到nand cache register中;
[0029]
第一传输模块,所述第一传输模块用于传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;
[0030]
匹配模块,所述匹配模块用于ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,所述系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;
[0031]
获取模块,所述获取模块用于根据匹配的lpa在数组内的偏移,获取到对应数据在物理页内的偏移;
[0032]
第二传输模块,所述第二传输模块用于传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。
[0033]
在其中一个实施例中,在所述系统数据区内包括:
[0034]
时间戳,用于表征多次写入的相同逻辑地址数据新旧;
[0035]
lpa[n],用于记录当前物理页内存放的n个lpa索引;
[0036]
valid_bitmap[n],用于标记n个lpa内各个lba是否有效;
[0037]
校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。
[0038]
在其中一个实施例中,所述装置还包括前端执行模块,所述前端执行模块用于:
[0039]
获取主机下发读命令,所述读命令中携带lba访问范围;
[0040]
通过ssd前端模块将命令lba地址分割成映射单元;
[0041]
提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;
[0042]
提交每个映射单元的操作请求到映射表管理模块;
[0043]
通过映射表管理模块将逻辑地址转换成物理地址。
[0044]
在其中一个实施例中,所述装置还包括循环处理模块,所述循环处理模块用于:
[0045]
传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。
[0046]
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
[0047]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0048]
上述基于大容量固态硬盘的映射表管理方法、装置、计算机设备和存储介质,ssd内部逻辑到物理地址的映射颗粒度维持4kb级别,以保证相应的4kb随机读写性能要求。ssd内部逻辑到物理地址的映射表仅跟踪到较大并发读单元,例如物理page或者可并发读的物理page集合。ssd内部在较大并发读单元的系统数据区描述其内所存储的lpa分布。在可并发的读单元内,通过俩次传输,第一次传输系统数据获取lpa偏移,第二次传输获取对应lpa数据,从而使得在整体时间无显著增加的基础上,有效降低了l2p表的位宽需求。
附图说明
[0049]
图1为现有的典型nand page组成的示意图;
[0050]
图2为现有的典型ssd读流程的示意图;
[0051]
图3为一个实施例中基于大容量固态硬盘的映射表管理方法的流程示意图;
[0052]
图4为一个实施例中nand page组成的示意图;
[0053]
图5为另一个实施例中基于大容量固态硬盘的映射表管理方法的流程示意图;
[0054]
图6为一个实施例中基于大容量固态硬盘的映射表管理装置的结构框图;
[0055]
图7为另一个实施例中基于大容量固态硬盘的映射表管理装置的结构框图;
[0056]
图8为再一个实施例中基于大容量固态硬盘的映射表管理装置的结构框图;
[0057]
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
[0058]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0059]
如图1所示的典型nand page组成的示意图,为便于说明,以一个16kb的物理页进行说明如下:其内划分为4个独立的lpa存储区域,各自存放相关的用户/系统数据。以第一个lpa a为例,其数据组成如下:
[0060]
用户数据:来自主机写入的数据,为关联的n个连续lba(如lba 0-7对应lpa0;lba8
ꢀ‑
15对应lpa1

)。
[0061]
系统数据:ssd内部管理数据,包括时间戳:数据写入的时间戳,对于主机多次写入的相同lba数据,判断新旧。lpa:当前lpa的索引,如a。valid bitmap:用来表述lpa内n个lba,哪些是有效的。校验数据:对用户数据以及系统数据进行保护,典型使用ecc等成熟算法。
[0062]
ssd内部的l2p表,其索引即为lpa,而值(gppa)则为对应nand上存放该笔数据的4kb地址,故该gppa值需要精确描述到page内的4kb级别。
[0063]
如图2所示的典型ssd的读流程,其流程主要包括:主机提交读命令到ssd的前端模块;ssd前端模块将命令lba地址分割成映射单元(lpa,典型如4kb);提交每个映射单元的操作请求到缓冲区管理模块,分配读缓冲区;提交每个映射单元的操作请求到映射表管理模块;映射表管理模块负责把逻辑地址(lpa)转换成nand物理地址(gppa);提交操作请求到后
端模块,后端模块根据物理地址发起对nand读请求;等待nand读操作请求完成,此时数据会加载到nand cache register中;数据ready后,选择page内对应的gppa 4kb数据从nand cache register到主机的传输。
[0064]
在此过程中,l2p表的值(gppa)描述到page内4kb级别,ssd内部读取对应page,并选择性地传输页内对应4kb数据到主机。
[0065]
基于此,本方案提出一种基于大容量固态硬盘的映射表管理方法,旨在可以解决大容量ssd映射表的开销,降低l2p表的位宽需求。
[0066]
在一个实施例中,如图3所示,提供了一种基于大容量固态硬盘的映射表管理方法,该方法包括:
[0067]
步骤302,提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;
[0068]
步骤304,等待nand读操作请求完成,此时数据会加载到nand cache register中;
[0069]
步骤306,传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;
[0070]
步骤308,ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;
[0071]
步骤310,根据匹配的lpa在数组内的偏移,获取到对应数据在物理页内的偏移;
[0072]
步骤312,传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。
[0073]
在本实施例中,提供了一种基于大容量固态硬盘的映射表管理方法,该方法中ssd内部逻辑到物理地址的映射颗粒度维持4kb级别,以保证相应的4kb随机读写性能要求。ssd内部逻辑到物理地址的映射表仅跟踪到较大并发读单元(如物理page或者可并发读的物理page集合)。ssd内部在较大并发读单元的系统数据区描述其内所存储的lpa分布。主机读取数据时,根据逻辑到物理地址的映射表查询所处读单元,并优先加载/解析其内系统数据区,获取对应的lpa信息后再加载对应的数据返回主机。该方法在保障ssd性能的基础上,有效降低了大容量ssd的映射表维护复杂度以及容量需求,节约了成本。
[0074]
在一个实施例中,在系统数据区内包括:时间戳,用于表征多次写入的相同逻辑地址数据新旧;lpa[n],用于记录当前物理页内存放的n个lpa索引;valid_bitmap[n],用于标记n个lpa内各个lba是否有效;校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。
[0075]
具体地,可参考图4所示的nand page组成的示意图,本实施例中针对大容量而引入的映射表管理方法,为便于说明,此处以单个物理页(其内可存储4个lpa用户数据)进行说明。需要注意的是,此可以扩展到任意的可并发读的单元,如die 0/1/2

的一组page集合,其可以并行完成数据读出。
[0076]
物理页内的组织形式如下:
[0077]-系统数据:物理页内各个lpa的系统管理数据,包含如下:
[0078]
时间戳:数据写入时间戳,用以表征多次写入的相同逻辑地址数据新旧。
[0079]
lpa[n]:当前物理页内存放的n个lpa索引,如图中的a/b/x/y。
[0080]
valid_bitmap[n]:n个lpa内各个lba是否有效的标记。
[0081]
校验数据:系统数据的ecc parity,用以对系统数据进行纠错/校验。
[0082]-lpaa:存放第一个lpa的用户数据以及校验数据。
[0083]-lpa b:存放第二个lpa的用户数据以及校验数据。
[0084]-lpax:存放第三个lpa的用户数据以及校验数据。
[0085]-lpa y:存放第四个lpa的用户数据以及校验数据。
[0086]
其中,映射表l2p的值,指向对应的物理页,而非物理页内的偏移。
[0087]
nand的数据读取分为俩部分:一部分是内部cell读,将物理页数据加载到nand cache register;一部分是将cache register中数据传输到ssd控制器缓冲区。
[0088]
耗时比较长的是内部cell读操作,一旦完成cell读,整个物理页的数据即可加载到nand的cache register,然后即可按需多次传输到ssd控制器缓冲区。
[0089]
在本实施例中,将系统数据单独存储以及校验数据保护,故而使得在单次cell读完成后,可以先将系统数据传输到ssd控制器,对其进行解析,寻址目标lpa在lpa[n]的位置。进而,根据其位置,即可知道其在物理页/并发读单元内的偏移。而此时数据均已经加载到cache register中,只需要传输对应偏移的lpa数据到控制器缓冲区进行解码,然后传输给主机即可。
[0090]
由此可知,在可并发的读单元内,通过俩次传输,第一次传输系统数据获取lpa偏移,第二次传输获取对应lpa数据,从而使得在整体时间无显著增加的基础上,有效降低了l2p表的位宽需求。
[0091]
在本实施例中,ssd内部逻辑到物理地址的映射颗粒度维持4kb级别,以保证相应的4kb随机读写性能要求。ssd内部逻辑到物理地址的映射表仅跟踪到较大并发读单元,例如物理page或者可并发读的物理page集合。ssd内部在较大并发读单元的系统数据区描述其内所存储的lpa分布。在可并发的读单元内,通过俩次传输,第一次传输系统数据获取lpa偏移,第二次传输获取对应lpa数据,从而使得在整体时间无显著增加的基础上,有效降低了l2p表的位宽需求。
[0092]
在一个实施例中,提供了一种基于大容量固态硬盘的映射表管理方法,该方法在提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求的步骤之前还包括:
[0093]
获取主机下发读命令,所述读命令中携带lba访问范围;
[0094]
通过ssd前端模块将命令lba地址分割成映射单元;
[0095]
提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;
[0096]
提交每个映射单元的操作请求到映射表管理模块;
[0097]
通过映射表管理模块将逻辑地址转换成物理地址。
[0098]
在一个实施例中,提供了一种基于大容量固态硬盘的映射表管理方法,该方法在传输对应偏移的lpa数据,并利用系统数据区的校验数据完成数据纠错校验的步骤之后还包括:
[0099]
传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。
[0100]
在本实施例中,提供了一种基于大容量固态硬盘的映射表管理方法,参考图5所示,其具体的执行步骤如下:
[0101]
步骤5.1、主机下发读命令,携带lba访问范围[lba_start,lba_end]。
[0102]
步骤5.2、ssd前端模块将命令lba地址分割成映射单元[lpa_start,lpa_end]。步骤5.3、提交每个映射单元的操作请求到缓冲区管理模块,分配读缓冲区步骤5.4、提交每个映射单元的操作请求到映射表管理模块。
[0103]
步骤5.5、映射表管理模块负责把逻辑地址(lpa)转换成nand物理地址(gppa)。
[0104]
步骤5.6、提交操作请求到后端模块,后端模块根据物理地址发起对nand读请求。
[0105]
步骤5.7、等待nand读操作请求完成,此时数据会加载到nand cache register中。
[0106]
步骤5.8、传输对应物理页的系统数据区内容到soc,并利用其内的校验数据完成数据纠错/校验。
[0107]
步骤5.9、基于其内的lpa[n]数组记录的lpa索引,和本次映射单元的lpa地址进行匹配。
[0108]
步骤5.10、基于匹配的lpa在数组内的偏移,获取到其数据在物理页内的偏移。
[0109]
步骤5.11、传输对应偏移的lpa数据,并利用其内的校验数据完成数据纠错/校验。
[0110]
步骤5.12、传输数据到主机,循环处理,直到处理完[lpa_start,lpa_end]内所有映射单元读请求。
[0111]
在本实施例中,通过ssd内部逻辑到物理地址的映射表仅跟踪到较大并发读单元,例如:物理page或者可并发读的物理page集合,可以维持l2p的值在32bit,但是可寻址的物理空间至少可以扩展到16tb,有效地解决了大容量ssd映射表的开销,降低了成本和设计复杂度。
[0112]
应该理解的是,虽然图1-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0113]
在一个实施例中,如图6所示,提供了一种基于大容量固态硬盘的映射表管理装置600,该装置包括:
[0114]
请求模块601,所述请求模块用于提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;
[0115]
数据加载模块602,所述数据加载模块用于等待nand读操作请求完成,此时数据会加载到nand cache register中;
[0116]
第一传输模块603,所述第一传输模块用于传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;
[0117]
匹配模块604,所述匹配模块用于ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,所述系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;
[0118]
获取模块605,所述获取模块用于根据匹配的lpa在数组内的偏移,获取到对应数据在物理页内的偏移;
[0119]
第二传输模块606,所述第二传输模块用于传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。
[0120]
在一个实施例中,在所述系统数据区内包括:
[0121]
时间戳,用于表征多次写入的相同逻辑地址数据新旧;
[0122]
lpa[n],用于记录当前物理页内存放的n个lpa索引;
[0123]
valid_bitmap[n],用于标记n个lpa内各个lba是否有效;
[0124]
校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。
[0125]
在一个实施例中,如图7所示,提供了一种基于大容量固态硬盘的映射表管理装置600,该装置还包括前端执行模块607,所述前端执行模块用于:
[0126]
获取主机下发读命令,所述读命令中携带lba访问范围;
[0127]
通过ssd前端模块将命令lba地址分割成映射单元;
[0128]
提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;
[0129]
提交每个映射单元的操作请求到映射表管理模块;
[0130]
通过映射表管理模块将逻辑地址转换成物理地址。
[0131]
在一个实施例中,如图8所示,提供了一种基于大容量固态硬盘的映射表管理装置600,该装置还包括循环处理模块608,所述循环处理模块用于:
[0132]
传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。
[0133]
关于基于大容量固态硬盘的映射表管理装置的具体限定可以参见上文中对于基于大容量固态硬盘的映射表管理方法的限定,在此不再赘述。
[0134]
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于大容量固态硬盘的映射表管理方法。
[0135]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0136]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
[0137]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
[0138]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一种非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程
rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0139]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0140]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种基于大容量固态硬盘的映射表管理方法,所述方法包括:提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;等待nand读操作请求完成,此时数据会加载到nand cache register中;传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,所述系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;根据匹配的lpa在数组内的偏移,获取到对应数据在物理页内的偏移;传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。2.根据权利要求1所述的基于大容量固态硬盘的映射表管理方法,其特征在于,在所述系统数据区内包括:时间戳,用于表征多次写入的相同逻辑地址数据新旧;lpa[n],用于记录当前物理页内存放的n个lpa索引;valid_bitmap[n],用于标记n个lpa内各个lba是否有效;校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。3.根据权利要求2所述的基于大容量固态硬盘的映射表管理方法,其特征在于,在所述提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求的步骤之前还包括:获取主机下发读命令,所述读命令中携带lba访问范围;通过ssd前端模块将命令lba地址分割成映射单元;提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;提交每个映射单元的操作请求到映射表管理模块;通过映射表管理模块将逻辑地址转换成物理地址。4.根据权利要求3所述的基于大容量固态硬盘的映射表管理方法,其特征在于,在所述传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验的步骤之后还包括:传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。5.一种基于大容量固态硬盘的映射表管理装置,其特征在于,所述装置包括:请求模块,所述请求模块用于提交操作请求到后端模块,后端模块根据物理地址发起对nand读操作请求;数据加载模块,所述数据加载模块用于等待nand读操作请求完成,此时数据会加载到nand cache register中;第一传输模块,所述第一传输模块用于传输物理页的系统数据区内容到soc,并利用所述系统数据区内包含的校验数据完成数据纠错校验;匹配模块,ssd内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的lpa分布,所述匹配模块用于所述系统数据区内包含当前物理页内存放的n个lpa索引,将索引和本次映射单元的lpa地址进行匹配;获取模块,所述获取模块用于根据匹配的lpa在数组内的偏移,获取到对应数据在物理
页内的偏移;第二传输模块,所述第二传输模块用于传输对应偏移的lpa数据,并利用所述系统数据区的校验数据完成数据纠错校验。6.根据权利要求5所述的基于大容量固态硬盘的映射表管理装置,其特征在于,在所述系统数据区内包括:时间戳,用于表征多次写入的相同逻辑地址数据新旧;lpa[n],用于记录当前物理页内存放的n个lpa索引;valid_bitmap[n],用于标记n个lpa内各个lba是否有效;校验数据,系统数据的ecc parity,用于对系统数据进行纠错校验。7.根据权利要求6所述的基于大容量固态硬盘的映射表管理装置,其特征在于,所述装置还包括前端执行模块,所述前端执行模块用于:获取主机下发读命令,所述读命令中携带lba访问范围;通过ssd前端模块将命令lba地址分割成映射单元;提交每个映射单元的操作请求到缓冲区管理模块并分配读缓冲区;提交每个映射单元的操作请求到映射表管理模块;通过映射表管理模块将逻辑地址转换成物理地址。8.根据权利要求7所述的基于大容量固态硬盘的映射表管理装置,其特征在于,所述装置还包括循环处理模块,所述循环处理模块用于:传输数据到主机,进行循环处理直到处理完所有映射单元的读请求。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

技术总结
本申请涉及一种基于大容量固态硬盘的映射表管理方法、装置、计算机设备和存储介质,其中该方法包括:等待NAND读操作请求完成,此时数据会加载到NAND Cache Register中;传输物理页的系统数据区内容到SOC,并利用系统数据区内包含的校验数据完成数据纠错校验;SSD内部逻辑到物理地址映射表仅跟踪到较大并发读单元,并在较大并发读单元的系统数据区描述所存储的LPA分布,系统数据区内包含当前物理页内存放的N个LPA索引,将索引和本次映射单元的LPA地址进行匹配;根据匹配的LPA在数组内的偏移,获取到对应数据在物理页内的偏移;传输对应偏移的LPA数据,并利用系统数据区的校验数据完成数据纠错校验。本发明有效降低了L2P表的位宽需求。的位宽需求。的位宽需求。


技术研发人员:王猛 徐伟华 韩道静 李建
受保护的技术使用者:苏州忆联信息系统有限公司
技术研发日:2023.05.31
技术公布日:2023/8/4
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐